From c5cd32855d2e9232fbe53eb6281f28eab72c06fc Mon Sep 17 00:00:00 2001 From: sairish2001 Date: Fri, 27 Nov 2020 21:22:51 +0530 Subject: [PATCH] Rajinderpal Singh --- MeriendaOne-Regular.ttf | Bin 0 -> 29140 bytes contact.html | 53 + css/animista.css | 219 + css/bootstrap-grid.css | 3899 ++++ css/bootstrap-grid.css.map | 1 + css/bootstrap-grid.min.css | 7 + css/bootstrap-grid.min.css.map | 1 + css/bootstrap-reboot.css | 327 + css/bootstrap-reboot.css.map | 1 + css/bootstrap-reboot.min.css | 8 + css/bootstrap-reboot.min.css.map | 1 + css/bootstrap.css | 10224 +++++++++++ css/bootstrap.css.map | 1 + css/bootstrap.min.css | 7 + css/bootstrap.min.css.map | 1 + css/materialize.min.css | 1 + css/materializecustom.css | 42 + css/style.css | 177 + displaymath.js | 186 + dropdownlogo.png | Bin 0 -> 7852 bytes error.html | 20 + error.jpg | Bin 0 -> 63891 bytes favourite.png | Bin 0 -> 2958 bytes fonts/ARIAL.TTF | Bin 0 -> 1036584 bytes fonts/BadScript-Regular.ttf | Bin 0 -> 50768 bytes fonts/Childrensans-7BOGR.ttf | Bin 0 -> 21484 bytes fonts/Grandstander-Regular.ttf | Bin 0 -> 104896 bytes fonts/JosefinSans-Medium.ttf | Bin 0 -> 58560 bytes fonts/JosefinSans-SemiBold.ttf | Bin 0 -> 58580 bytes fundrawing.html | 150 + helpjavascript.html | 20 + icons/backspace-arrow.png | Bin 0 -> 4054 bytes icons/calculator.png | Bin 0 -> 8173 bytes icons/loupe.png | Bin 0 -> 3238 bytes icons/menu.png | Bin 0 -> 12892 bytes index.html | 1093 ++ jquery.min.js | 2 + jqueryforscical.js | 2798 +++ js/bootstrap.bundle.js | 7134 ++++++++ js/bootstrap.bundle.js.map | 1 + js/bootstrap.bundle.min.js | 7 + js/bootstrap.bundle.min.js.map | 1 + js/bootstrap.js | 4521 +++++ js/bootstrap.js.map | 1 + js/bootstrap.min.js | 7 + js/bootstrap.min.js.map | 1 + js/dynamic.js | 53 + js/materialize.min.js | 12373 +++++++++++++ js/math.min.js | 43 + js/matrixlogic.js | 1593 ++ js/plotly-1.35.2.min.js | 7 + js/speechreco.js | 111 + js/speechrecoforall.js | 36 + js/two.min.js | 1 + js/url.js | 39 + katex/contrib/auto-render.js | 350 + katex/contrib/auto-render.min.js | 1 + katex/contrib/auto-render.mjs | 226 + katex/contrib/copy-tex.css | 14 + katex/contrib/copy-tex.js | 213 + katex/contrib/copy-tex.min.css | 1 + katex/contrib/copy-tex.min.js | 1 + katex/contrib/copy-tex.mjs | 85 + katex/contrib/mathtex-script-type.js | 137 + katex/contrib/mathtex-script-type.min.js | 1 + katex/contrib/mathtex-script-type.mjs | 24 + katex/contrib/mhchem.js | 3241 ++++ katex/contrib/mhchem.min.js | 1 + katex/contrib/mhchem.mjs | 3109 ++++ katex/contrib/render-a11y-string.js | 870 + katex/contrib/render-a11y-string.min.js | 1 + katex/contrib/render-a11y-string.mjs | 753 + katex/fonts/KaTeX_AMS-Regular.ttf | Bin 0 -> 70936 bytes katex/fonts/KaTeX_AMS-Regular.woff | Bin 0 -> 36912 bytes katex/fonts/KaTeX_AMS-Regular.woff2 | Bin 0 -> 31136 bytes katex/fonts/KaTeX_Caligraphic-Bold.ttf | Bin 0 -> 15416 bytes katex/fonts/KaTeX_Caligraphic-Bold.woff | Bin 0 -> 9376 bytes katex/fonts/KaTeX_Caligraphic-Bold.woff2 | Bin 0 -> 8392 bytes katex/fonts/KaTeX_Caligraphic-Regular.ttf | Bin 0 -> 14908 bytes katex/fonts/KaTeX_Caligraphic-Regular.woff | Bin 0 -> 9148 bytes katex/fonts/KaTeX_Caligraphic-Regular.woff2 | Bin 0 -> 8248 bytes katex/fonts/KaTeX_Fraktur-Bold.ttf | Bin 0 -> 24400 bytes katex/fonts/KaTeX_Fraktur-Bold.woff | Bin 0 -> 16208 bytes katex/fonts/KaTeX_Fraktur-Bold.woff2 | Bin 0 -> 13912 bytes katex/fonts/KaTeX_Fraktur-Regular.ttf | Bin 0 -> 23904 bytes katex/fonts/KaTeX_Fraktur-Regular.woff | Bin 0 -> 15880 bytes katex/fonts/KaTeX_Fraktur-Regular.woff2 | Bin 0 -> 13668 bytes katex/fonts/KaTeX_Main-Bold.ttf | Bin 0 -> 59972 bytes katex/fonts/KaTeX_Main-Bold.woff | Bin 0 -> 35056 bytes katex/fonts/KaTeX_Main-Bold.woff2 | Bin 0 -> 29932 bytes katex/fonts/KaTeX_Main-BoldItalic.ttf | Bin 0 -> 42872 bytes katex/fonts/KaTeX_Main-BoldItalic.woff | Bin 0 -> 24500 bytes katex/fonts/KaTeX_Main-BoldItalic.woff2 | Bin 0 -> 21244 bytes katex/fonts/KaTeX_Main-Italic.ttf | Bin 0 -> 46028 bytes katex/fonts/KaTeX_Main-Italic.woff | Bin 0 -> 25352 bytes katex/fonts/KaTeX_Main-Italic.woff2 | Bin 0 -> 22076 bytes katex/fonts/KaTeX_Main-Regular.ttf | Bin 0 -> 68880 bytes katex/fonts/KaTeX_Main-Regular.woff | Bin 0 -> 37856 bytes katex/fonts/KaTeX_Main-Regular.woff2 | Bin 0 -> 32312 bytes katex/fonts/KaTeX_Math-BoldItalic.ttf | Bin 0 -> 42300 bytes katex/fonts/KaTeX_Math-BoldItalic.woff | Bin 0 -> 23980 bytes katex/fonts/KaTeX_Math-BoldItalic.woff2 | Bin 0 -> 21192 bytes katex/fonts/KaTeX_Math-Italic.ttf | Bin 0 -> 44484 bytes katex/fonts/KaTeX_Math-Italic.woff | Bin 0 -> 24668 bytes katex/fonts/KaTeX_Math-Italic.woff2 | Bin 0 -> 21668 bytes katex/fonts/KaTeX_SansSerif-Bold.ttf | Bin 0 -> 32588 bytes katex/fonts/KaTeX_SansSerif-Bold.woff | Bin 0 -> 17988 bytes katex/fonts/KaTeX_SansSerif-Bold.woff2 | Bin 0 -> 15296 bytes katex/fonts/KaTeX_SansSerif-Italic.ttf | Bin 0 -> 29860 bytes katex/fonts/KaTeX_SansSerif-Italic.woff | Bin 0 -> 17044 bytes katex/fonts/KaTeX_SansSerif-Italic.woff2 | Bin 0 -> 14484 bytes katex/fonts/KaTeX_SansSerif-Regular.ttf | Bin 0 -> 28708 bytes katex/fonts/KaTeX_SansSerif-Regular.woff | Bin 0 -> 15712 bytes katex/fonts/KaTeX_SansSerif-Regular.woff2 | Bin 0 -> 13300 bytes katex/fonts/KaTeX_Script-Regular.ttf | Bin 0 -> 23520 bytes katex/fonts/KaTeX_Script-Regular.woff | Bin 0 -> 12992 bytes katex/fonts/KaTeX_Script-Regular.woff2 | Bin 0 -> 11792 bytes katex/fonts/KaTeX_Size1-Regular.ttf | Bin 0 -> 11932 bytes katex/fonts/KaTeX_Size1-Regular.woff | Bin 0 -> 6300 bytes katex/fonts/KaTeX_Size1-Regular.woff2 | Bin 0 -> 5332 bytes katex/fonts/KaTeX_Size2-Regular.ttf | Bin 0 -> 11080 bytes katex/fonts/KaTeX_Size2-Regular.woff | Bin 0 -> 6012 bytes katex/fonts/KaTeX_Size2-Regular.woff2 | Bin 0 -> 5080 bytes katex/fonts/KaTeX_Size3-Regular.ttf | Bin 0 -> 7028 bytes katex/fonts/KaTeX_Size3-Regular.woff | Bin 0 -> 4148 bytes katex/fonts/KaTeX_Size3-Regular.woff2 | Bin 0 -> 3400 bytes katex/fonts/KaTeX_Size4-Regular.ttf | Bin 0 -> 10008 bytes katex/fonts/KaTeX_Size4-Regular.woff | Bin 0 -> 5820 bytes katex/fonts/KaTeX_Size4-Regular.woff2 | Bin 0 -> 4720 bytes katex/fonts/KaTeX_Typewriter-Regular.ttf | Bin 0 -> 34560 bytes katex/fonts/KaTeX_Typewriter-Regular.woff | Bin 0 -> 19700 bytes katex/fonts/KaTeX_Typewriter-Regular.woff2 | Bin 0 -> 16868 bytes katex/katex.css | 1035 ++ katex/katex.js | 17308 ++++++++++++++++++ katex/katex.min.css | 1 + katex/katex.min.js | 1 + listening.gif | Bin 0 -> 424801 bytes loading.gif | Bin 0 -> 269157 bytes logicjavascript.js | 1254 ++ logicjquery.js | 86 + nerdamer/Algebra.js | 3983 ++++ nerdamer/Calculus.js | 2569 +++ nerdamer/Extra.js | 591 + nerdamer/Solve.js | 1463 ++ nerdamer/nerdamer.core.js | 11968 ++++++++++++ pictures/circle.png | Bin 0 -> 9719 bytes pictures/rectangle.png | Bin 0 -> 2954 bytes pictures/righttriangle.png | Bin 0 -> 8234 bytes pictures/square.png | Bin 0 -> 5350 bytes pictures/whatsapplogo.png | Bin 0 -> 6015 bytes popper.js | 2616 +++ popper.min.js | 5 + scrollbarstyle.css | 21 + searchbar.css | 43 + searchbar.js | 189 + settings.html | 0 simplecal.css | 97 + simplecallogic.js | 185 + speechlogo.png | Bin 0 -> 17994 bytes speechlogostatic.png | Bin 0 -> 6961 bytes speechstop.png | Bin 0 -> 41632 bytes splashanimated.gif | Bin 0 -> 305199 bytes test.html | 24 + unfavourite.png | Bin 0 -> 5035 bytes 164 files changed, 97635 insertions(+) create mode 100644 MeriendaOne-Regular.ttf create mode 100644 contact.html create mode 100644 css/animista.css create mode 100644 css/bootstrap-grid.css create mode 100644 css/bootstrap-grid.css.map create mode 100644 css/bootstrap-grid.min.css create mode 100644 css/bootstrap-grid.min.css.map create mode 100644 css/bootstrap-reboot.css create mode 100644 css/bootstrap-reboot.css.map create mode 100644 css/bootstrap-reboot.min.css create mode 100644 css/bootstrap-reboot.min.css.map create mode 100644 css/bootstrap.css create mode 100644 css/bootstrap.css.map create mode 100644 css/bootstrap.min.css create mode 100644 css/bootstrap.min.css.map create mode 100644 css/materialize.min.css create mode 100644 css/materializecustom.css create mode 100644 css/style.css create mode 100644 displaymath.js create mode 100644 dropdownlogo.png create mode 100644 error.html create mode 100644 error.jpg create mode 100644 favourite.png create mode 100644 fonts/ARIAL.TTF create mode 100644 fonts/BadScript-Regular.ttf create mode 100644 fonts/Childrensans-7BOGR.ttf create mode 100644 fonts/Grandstander-Regular.ttf create mode 100644 fonts/JosefinSans-Medium.ttf create mode 100644 fonts/JosefinSans-SemiBold.ttf create mode 100644 fundrawing.html create mode 100644 helpjavascript.html create mode 100644 icons/backspace-arrow.png create mode 100644 icons/calculator.png create mode 100644 icons/loupe.png create mode 100644 icons/menu.png create mode 100644 index.html create mode 100644 jquery.min.js create mode 100644 jqueryforscical.js create mode 100644 js/bootstrap.bundle.js create mode 100644 js/bootstrap.bundle.js.map create mode 100644 js/bootstrap.bundle.min.js create mode 100644 js/bootstrap.bundle.min.js.map create mode 100644 js/bootstrap.js create mode 100644 js/bootstrap.js.map create mode 100644 js/bootstrap.min.js create mode 100644 js/bootstrap.min.js.map create mode 100644 js/dynamic.js create mode 100644 js/materialize.min.js create mode 100644 js/math.min.js create mode 100644 js/matrixlogic.js create mode 100644 js/plotly-1.35.2.min.js create mode 100644 js/speechreco.js create mode 100644 js/speechrecoforall.js create mode 100644 js/two.min.js create mode 100644 js/url.js create mode 100644 katex/contrib/auto-render.js create mode 100644 katex/contrib/auto-render.min.js create mode 100644 katex/contrib/auto-render.mjs create mode 100644 katex/contrib/copy-tex.css create mode 100644 katex/contrib/copy-tex.js create mode 100644 katex/contrib/copy-tex.min.css create mode 100644 katex/contrib/copy-tex.min.js create mode 100644 katex/contrib/copy-tex.mjs create mode 100644 katex/contrib/mathtex-script-type.js create mode 100644 katex/contrib/mathtex-script-type.min.js create mode 100644 katex/contrib/mathtex-script-type.mjs create mode 100644 katex/contrib/mhchem.js create mode 100644 katex/contrib/mhchem.min.js create mode 100644 katex/contrib/mhchem.mjs create mode 100644 katex/contrib/render-a11y-string.js create mode 100644 katex/contrib/render-a11y-string.min.js create mode 100644 katex/contrib/render-a11y-string.mjs create mode 100644 katex/fonts/KaTeX_AMS-Regular.ttf create mode 100644 katex/fonts/KaTeX_AMS-Regular.woff create mode 100644 katex/fonts/KaTeX_AMS-Regular.woff2 create mode 100644 katex/fonts/KaTeX_Caligraphic-Bold.ttf create mode 100644 katex/fonts/KaTeX_Caligraphic-Bold.woff create mode 100644 katex/fonts/KaTeX_Caligraphic-Bold.woff2 create mode 100644 katex/fonts/KaTeX_Caligraphic-Regular.ttf create mode 100644 katex/fonts/KaTeX_Caligraphic-Regular.woff create mode 100644 katex/fonts/KaTeX_Caligraphic-Regular.woff2 create mode 100644 katex/fonts/KaTeX_Fraktur-Bold.ttf create mode 100644 katex/fonts/KaTeX_Fraktur-Bold.woff create mode 100644 katex/fonts/KaTeX_Fraktur-Bold.woff2 create mode 100644 katex/fonts/KaTeX_Fraktur-Regular.ttf create mode 100644 katex/fonts/KaTeX_Fraktur-Regular.woff create mode 100644 katex/fonts/KaTeX_Fraktur-Regular.woff2 create mode 100644 katex/fonts/KaTeX_Main-Bold.ttf create mode 100644 katex/fonts/KaTeX_Main-Bold.woff create mode 100644 katex/fonts/KaTeX_Main-Bold.woff2 create mode 100644 katex/fonts/KaTeX_Main-BoldItalic.ttf create mode 100644 katex/fonts/KaTeX_Main-BoldItalic.woff create mode 100644 katex/fonts/KaTeX_Main-BoldItalic.woff2 create mode 100644 katex/fonts/KaTeX_Main-Italic.ttf create mode 100644 katex/fonts/KaTeX_Main-Italic.woff create mode 100644 katex/fonts/KaTeX_Main-Italic.woff2 create mode 100644 katex/fonts/KaTeX_Main-Regular.ttf create mode 100644 katex/fonts/KaTeX_Main-Regular.woff create mode 100644 katex/fonts/KaTeX_Main-Regular.woff2 create mode 100644 katex/fonts/KaTeX_Math-BoldItalic.ttf create mode 100644 katex/fonts/KaTeX_Math-BoldItalic.woff create mode 100644 katex/fonts/KaTeX_Math-BoldItalic.woff2 create mode 100644 katex/fonts/KaTeX_Math-Italic.ttf create mode 100644 katex/fonts/KaTeX_Math-Italic.woff create mode 100644 katex/fonts/KaTeX_Math-Italic.woff2 create mode 100644 katex/fonts/KaTeX_SansSerif-Bold.ttf create mode 100644 katex/fonts/KaTeX_SansSerif-Bold.woff create mode 100644 katex/fonts/KaTeX_SansSerif-Bold.woff2 create mode 100644 katex/fonts/KaTeX_SansSerif-Italic.ttf create mode 100644 katex/fonts/KaTeX_SansSerif-Italic.woff create mode 100644 katex/fonts/KaTeX_SansSerif-Italic.woff2 create mode 100644 katex/fonts/KaTeX_SansSerif-Regular.ttf create mode 100644 katex/fonts/KaTeX_SansSerif-Regular.woff create mode 100644 katex/fonts/KaTeX_SansSerif-Regular.woff2 create mode 100644 katex/fonts/KaTeX_Script-Regular.ttf create mode 100644 katex/fonts/KaTeX_Script-Regular.woff create mode 100644 katex/fonts/KaTeX_Script-Regular.woff2 create mode 100644 katex/fonts/KaTeX_Size1-Regular.ttf create mode 100644 katex/fonts/KaTeX_Size1-Regular.woff create mode 100644 katex/fonts/KaTeX_Size1-Regular.woff2 create mode 100644 katex/fonts/KaTeX_Size2-Regular.ttf create mode 100644 katex/fonts/KaTeX_Size2-Regular.woff create mode 100644 katex/fonts/KaTeX_Size2-Regular.woff2 create mode 100644 katex/fonts/KaTeX_Size3-Regular.ttf create mode 100644 katex/fonts/KaTeX_Size3-Regular.woff create mode 100644 katex/fonts/KaTeX_Size3-Regular.woff2 create mode 100644 katex/fonts/KaTeX_Size4-Regular.ttf create mode 100644 katex/fonts/KaTeX_Size4-Regular.woff create mode 100644 katex/fonts/KaTeX_Size4-Regular.woff2 create mode 100644 katex/fonts/KaTeX_Typewriter-Regular.ttf create mode 100644 katex/fonts/KaTeX_Typewriter-Regular.woff create mode 100644 katex/fonts/KaTeX_Typewriter-Regular.woff2 create mode 100644 katex/katex.css create mode 100644 katex/katex.js create mode 100644 katex/katex.min.css create mode 100644 katex/katex.min.js create mode 100644 listening.gif create mode 100644 loading.gif create mode 100644 logicjavascript.js create mode 100644 logicjquery.js create mode 100644 nerdamer/Algebra.js create mode 100644 nerdamer/Calculus.js create mode 100644 nerdamer/Extra.js create mode 100644 nerdamer/Solve.js create mode 100644 nerdamer/nerdamer.core.js create mode 100644 pictures/circle.png create mode 100644 pictures/rectangle.png create mode 100644 pictures/righttriangle.png create mode 100644 pictures/square.png create mode 100644 pictures/whatsapplogo.png create mode 100644 popper.js create mode 100644 popper.min.js create mode 100644 scrollbarstyle.css create mode 100644 searchbar.css create mode 100644 searchbar.js create mode 100644 settings.html create mode 100644 simplecal.css create mode 100644 simplecallogic.js create mode 100644 speechlogo.png create mode 100644 speechlogostatic.png create mode 100644 speechstop.png create mode 100644 splashanimated.gif create mode 100644 test.html create mode 100644 unfavourite.png diff --git a/MeriendaOne-Regular.ttf b/MeriendaOne-Regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..10242f913de168df2daa9160d13e188cb87b00cf GIT binary patch literal 29140 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 Wj1m4*DSE23m{RcEQ2 + + + + + + Contact Us + + + + + + +
+
+ +
+
+ + + \ No newline at end of file diff --git a/css/animista.css b/css/animista.css new file mode 100644 index 000000000..a9ec510fb --- /dev/null +++ b/css/animista.css @@ -0,0 +1,219 @@ +.shake-bottom { + -webkit-animation: shake-bottom 0.8s cubic-bezier(0.455, 0.030, 0.515, 0.955) both; + animation: shake-bottom 0.8s cubic-bezier(0.455, 0.030, 0.515, 0.955) both; +} +/* ---------------------------------------------- + * Generated by Animista on 2020-9-2 19:16:28 + * Licensed under FreeBSD License. + * See http://animista.net/license for more info. + * w: http://animista.net, t: @cssanimista + * ---------------------------------------------- */ + +/** + * ---------------------------------------- + * animation shake-bottom + * ---------------------------------------- + */ +@-webkit-keyframes shake-bottom { + 0%, + 100% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + -webkit-transform-origin: 50% 100%; + transform-origin: 50% 100%; + } + 10% { + -webkit-transform: rotate(2deg); + transform: rotate(2deg); + } + 20%, + 40%, + 60% { + -webkit-transform: rotate(-4deg); + transform: rotate(-4deg); + } + 30%, + 50%, + 70% { + -webkit-transform: rotate(4deg); + transform: rotate(4deg); + } + 80% { + -webkit-transform: rotate(-2deg); + transform: rotate(-2deg); + } + 90% { + -webkit-transform: rotate(2deg); + transform: rotate(2deg); + } +} +@keyframes shake-bottom { + 0%, + 100% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + -webkit-transform-origin: 50% 100%; + transform-origin: 50% 100%; + } + 10% { + -webkit-transform: rotate(2deg); + transform: rotate(2deg); + } + 20%, + 40%, + 60% { + -webkit-transform: rotate(-4deg); + transform: rotate(-4deg); + } + 30%, + 50%, + 70% { + -webkit-transform: rotate(4deg); + transform: rotate(4deg); + } + 80% { + -webkit-transform: rotate(-2deg); + transform: rotate(-2deg); + } + 90% { + -webkit-transform: rotate(2deg); + transform: rotate(2deg); + } +} + + +.blink-1 { + -webkit-animation: blink-1 0.6s both; + animation: blink-1 0.6s both; +} +/* ---------------------------------------------- + * Generated by Animista on 2020-9-2 19:33:6 + * Licensed under FreeBSD License. + * See http://animista.net/license for more info. + * w: http://animista.net, t: @cssanimista + * ---------------------------------------------- */ + +/** + * ---------------------------------------- + * animation blink-1 + * ---------------------------------------- + */ +@-webkit-keyframes blink-1 { + 0%, + 50%, + 100% { + opacity: 1; + } + 25%, + 75% { + opacity: 0; + } +} +@keyframes blink-1 { + 0%, + 50%, + 100% { + opacity: 1; + } + 25%, + 75% { + opacity: 0; + } +} +.tracking-in-contract-bck { + -webkit-animation: tracking-in-contract-bck 1s cubic-bezier(0.215, 0.610, 0.355, 1.000) both; + animation: tracking-in-contract-bck 1s cubic-bezier(0.215, 0.610, 0.355, 1.000) both; +} +/* ---------------------------------------------- + * Generated by Animista on 2020-10-18 20:12:3 + * Licensed under FreeBSD License. + * See http://animista.net/license for more info. + * w: http://animista.net, t: @cssanimista + * ---------------------------------------------- */ + +/** + * ---------------------------------------- + * animation tracking-in-contract-bck + * ---------------------------------------- + */ +@-webkit-keyframes tracking-in-contract-bck { + 0% { + letter-spacing: 1em; + -webkit-transform: translateZ(400px); + transform: translateZ(400px); + opacity: 0; + } + 40% { + opacity: 0.6; + } + 100% { + -webkit-transform: translateZ(0); + transform: translateZ(0); + opacity: 1; + } +} +@keyframes tracking-in-contract-bck { + 0% { + letter-spacing: 1em; + -webkit-transform: translateZ(400px); + transform: translateZ(400px); + opacity: 0; + } + 40% { + opacity: 0.6; + } + 100% { + -webkit-transform: translateZ(0); + transform: translateZ(0); + opacity: 1; + } +} + +.tracking-in-contract{ + -webkit-animation: tracking-in-contract 0.8s cubic-bezier(0.215, 0.610, 0.355, 1.000) both; + animation: tracking-in-contract 0.8s cubic-bezier(0.215, 0.610, 0.355, 1.000) both; +} + +@-webkit-keyframes tracking-in-contract { + 0% { + letter-spacing: 1em; + opacity: 0; + } + 40% { + opacity: 0.6; + } + 100% { + letter-spacing: normal; + opacity: 1; + } +} +@keyframes tracking-in-contract { + 0% { + letter-spacing: 1em; + opacity: 0; + } + 40% { + opacity: 0.6; + } + 100% { + letter-spacing: normal; + opacity: 1; + } +} + + +.swirl-in-fwd{-webkit-animation:swirl-in-fwd .6s ease-out both;animation:swirl-in-fwd .6s ease-out both} + +@-webkit-keyframes swirl-in-fwd{0%{-webkit-transform:rotate(-540deg) scale(0);transform:rotate(-540deg) scale(0);opacity:0}100%{-webkit-transform:rotate(0) scale(1);transform:rotate(0) scale(1);opacity:1}}@keyframes swirl-in-fwd{0%{-webkit-transform:rotate(-540deg) scale(0);transform:rotate(-540deg) scale(0);opacity:0}100%{-webkit-transform:rotate(0) scale(1);transform:rotate(0) scale(1);opacity:1}} + +.slide-in-elliptic-left-fwd{-webkit-animation:slide-in-elliptic-left-fwd .7s cubic-bezier(.25,.46,.45,.94) both;animation:slide-in-elliptic-left-fwd .7s cubic-bezier(.25,.46,.45,.94) both;animation-delay: 1s;} +@-webkit-keyframes slide-in-elliptic-left-fwd{0%{-webkit-transform:translateX(-800px) rotateY(30deg) scale(0);transform:translateX(-800px) rotateY(30deg) scale(0);-webkit-transform-origin:-100% 50%;transform-origin:-100% 50%;opacity:0}100%{-webkit-transform:translateX(0) rotateY(0) scale(1);transform:translateX(0) rotateY(0) scale(1);-webkit-transform-origin:1800px 50%;transform-origin:1800px 50%;opacity:1}}@keyframes slide-in-elliptic-left-fwd{0%{-webkit-transform:translateX(-800px) rotateY(30deg) scale(0);transform:translateX(-800px) rotateY(30deg) scale(0);-webkit-transform-origin:-100% 50%;transform-origin:-100% 50%;opacity:0}100%{-webkit-transform:translateX(0) rotateY(0) scale(1);transform:translateX(0) rotateY(0) scale(1);-webkit-transform-origin:1800px 50%;transform-origin:1800px 50%;opacity:1}} + +.slide-in-elliptic-right-fwd{-webkit-animation:slide-in-elliptic-right-fwd .7s cubic-bezier(.25,.46,.45,.94) both;animation:slide-in-elliptic-right-fwd .7s cubic-bezier(.25,.46,.45,.94) both} +@-webkit-keyframes slide-in-elliptic-right-fwd{0%{-webkit-transform:translateX(800px) rotateY(-30deg) scale(0);transform:translateX(800px) rotateY(-30deg) scale(0);-webkit-transform-origin:-100% 50%;transform-origin:-100% 50%;opacity:0}100%{-webkit-transform:translateX(0) rotateY(0) scale(1);transform:translateX(0) rotateY(0) scale(1);-webkit-transform-origin:-1800px 50%;transform-origin:-1800px 50%;opacity:1}}@keyframes slide-in-elliptic-right-fwd{0%{-webkit-transform:translateX(800px) rotateY(-30deg) scale(0);transform:translateX(800px) rotateY(-30deg) scale(0);-webkit-transform-origin:-100% 50%;transform-origin:-100% 50%;opacity:0}100%{-webkit-transform:translateX(0) rotateY(0) scale(1);transform:translateX(0) rotateY(0) scale(1);-webkit-transform-origin:-1800px 50%;transform-origin:-1800px 50%;opacity:1}} + +.swirl-in-fwd{-webkit-animation:swirl-in-fwd .6s ease-out both;animation:swirl-in-fwd .6s ease-out both} +@-webkit-keyframes swirl-in-fwd{0%{-webkit-transform:rotate(-540deg) scale(0);transform:rotate(-540deg) scale(0);opacity:0}100%{-webkit-transform:rotate(0) scale(1);transform:rotate(0) scale(1);opacity:1}}@keyframes swirl-in-fwd{0%{-webkit-transform:rotate(-540deg) scale(0);transform:rotate(-540deg) scale(0);opacity:0}100%{-webkit-transform:rotate(0) scale(1);transform:rotate(0) scale(1);opacity:1}} + +.puff-in-center{-webkit-animation:puff-in-center .7s cubic-bezier(.47,0.000,.745,.715) both;animation:puff-in-center .7s cubic-bezier(.47,0.000,.745,.715) both;animation-delay: .5s;} +@-webkit-keyframes puff-in-center{0%{-webkit-transform:scale(2);transform:scale(2);-webkit-filter:blur(4px);filter:blur(4px);opacity:0}100%{-webkit-transform:scale(1);transform:scale(1);-webkit-filter:blur(0);filter:blur(0);opacity:1}}@keyframes puff-in-center{0%{-webkit-transform:scale(2);transform:scale(2);-webkit-filter:blur(4px);filter:blur(4px);opacity:0}100%{-webkit-transform:scale(1);transform:scale(1);-webkit-filter:blur(0);filter:blur(0);opacity:1}} \ No newline at end of file diff --git a/css/bootstrap-grid.css b/css/bootstrap-grid.css new file mode 100644 index 000000000..259a9e2c6 --- /dev/null +++ b/css/bootstrap-grid.css @@ -0,0 +1,3899 @@ +/*! + * Bootstrap Grid v4.4.1 (https://getbootstrap.com/) + * Copyright 2011-2019 The Bootstrap Authors + * Copyright 2011-2019 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + */ +html { + box-sizing: border-box; + -ms-overflow-style: scrollbar; +} + +*, +*::before, +*::after { + box-sizing: inherit; +} + +.container { + width: 100%; + padding-right: 15px; + padding-left: 15px; + margin-right: auto; + margin-left: auto; +} + +@media (min-width: 576px) { + .container { + max-width: 540px; + } +} + +@media (min-width: 768px) { + .container { + max-width: 720px; + } +} + +@media (min-width: 992px) { + .container { + max-width: 960px; + } +} + +@media (min-width: 1200px) { + .container { + max-width: 1140px; + } +} + +.container-fluid, .container-sm, .container-md, .container-lg, .container-xl { + width: 100%; + padding-right: 15px; + padding-left: 15px; + margin-right: auto; + margin-left: auto; +} + +@media (min-width: 576px) { + .container, .container-sm { + max-width: 540px; + } +} + +@media (min-width: 768px) { + .container, .container-sm, .container-md { + max-width: 720px; + } +} + +@media (min-width: 992px) { + .container, .container-sm, .container-md, .container-lg { + max-width: 960px; + } +} + +@media (min-width: 1200px) { + .container, .container-sm, .container-md, .container-lg, .container-xl { + max-width: 1140px; + } +} + +.row { + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + margin-right: -15px; + margin-left: -15px; +} + +.no-gutters { + margin-right: 0; + margin-left: 0; +} + +.no-gutters > .col, +.no-gutters > [class*="col-"] { + padding-right: 0; + padding-left: 0; +} + +.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col, +.col-auto, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm, +.col-sm-auto, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md, +.col-md-auto, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg, +.col-lg-auto, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl, +.col-xl-auto { + position: relative; + width: 100%; + padding-right: 15px; + padding-left: 15px; +} + +.col { + -ms-flex-preferred-size: 0; + flex-basis: 0; + -ms-flex-positive: 1; + flex-grow: 1; + max-width: 100%; +} + +.row-cols-1 > * { + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; +} + +.row-cols-2 > * { + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50%; +} + +.row-cols-3 > * { + -ms-flex: 0 0 33.333333%; + flex: 0 0 33.333333%; + max-width: 33.333333%; +} + +.row-cols-4 > * { + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25%; +} + +.row-cols-5 > * { + -ms-flex: 0 0 20%; + flex: 0 0 20%; + max-width: 20%; +} + +.row-cols-6 > * { + -ms-flex: 0 0 16.666667%; + flex: 0 0 16.666667%; + max-width: 16.666667%; +} + +.col-auto { + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: auto; + max-width: 100%; +} + +.col-1 { + -ms-flex: 0 0 8.333333%; + flex: 0 0 8.333333%; + max-width: 8.333333%; +} + +.col-2 { + -ms-flex: 0 0 16.666667%; + flex: 0 0 16.666667%; + max-width: 16.666667%; +} + +.col-3 { + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25%; +} + +.col-4 { + -ms-flex: 0 0 33.333333%; + flex: 0 0 33.333333%; + max-width: 33.333333%; +} + +.col-5 { + -ms-flex: 0 0 41.666667%; + flex: 0 0 41.666667%; + max-width: 41.666667%; +} + +.col-6 { + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50%; +} + +.col-7 { + -ms-flex: 0 0 58.333333%; + flex: 0 0 58.333333%; + max-width: 58.333333%; +} + +.col-8 { + -ms-flex: 0 0 66.666667%; + flex: 0 0 66.666667%; + max-width: 66.666667%; +} + +.col-9 { + -ms-flex: 0 0 75%; + flex: 0 0 75%; + max-width: 75%; +} + +.col-10 { + -ms-flex: 0 0 83.333333%; + flex: 0 0 83.333333%; + max-width: 83.333333%; +} + +.col-11 { + -ms-flex: 0 0 91.666667%; + flex: 0 0 91.666667%; + max-width: 91.666667%; +} + +.col-12 { + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; +} + +.order-first { + -ms-flex-order: -1; + order: -1; +} + +.order-last { + -ms-flex-order: 13; + order: 13; +} + +.order-0 { + -ms-flex-order: 0; + order: 0; +} + +.order-1 { + -ms-flex-order: 1; + order: 1; +} + +.order-2 { + -ms-flex-order: 2; + order: 2; +} + +.order-3 { + -ms-flex-order: 3; + order: 3; +} + +.order-4 { + -ms-flex-order: 4; + order: 4; +} + +.order-5 { + -ms-flex-order: 5; + order: 5; +} + +.order-6 { + -ms-flex-order: 6; + order: 6; +} + +.order-7 { + -ms-flex-order: 7; + order: 7; +} + +.order-8 { + -ms-flex-order: 8; + order: 8; +} + +.order-9 { + -ms-flex-order: 9; + order: 9; +} + +.order-10 { + -ms-flex-order: 10; + order: 10; +} + +.order-11 { + -ms-flex-order: 11; + order: 11; +} + +.order-12 { + -ms-flex-order: 12; + order: 12; +} + +.offset-1 { + margin-left: 8.333333%; +} + +.offset-2 { + margin-left: 16.666667%; +} + +.offset-3 { + margin-left: 25%; +} + +.offset-4 { + margin-left: 33.333333%; +} + +.offset-5 { + margin-left: 41.666667%; +} + +.offset-6 { + margin-left: 50%; +} + +.offset-7 { + margin-left: 58.333333%; +} + +.offset-8 { + margin-left: 66.666667%; +} + +.offset-9 { + margin-left: 75%; +} + +.offset-10 { + margin-left: 83.333333%; +} + +.offset-11 { + margin-left: 91.666667%; +} + +@media (min-width: 576px) { + .col-sm { + -ms-flex-preferred-size: 0; + flex-basis: 0; + -ms-flex-positive: 1; + flex-grow: 1; + max-width: 100%; + } + .row-cols-sm-1 > * { + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; + } + .row-cols-sm-2 > * { + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50%; + } + .row-cols-sm-3 > * { + -ms-flex: 0 0 33.333333%; + flex: 0 0 33.333333%; + max-width: 33.333333%; + } + .row-cols-sm-4 > * { + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25%; + } + .row-cols-sm-5 > * { + -ms-flex: 0 0 20%; + flex: 0 0 20%; + max-width: 20%; + } + .row-cols-sm-6 > * { + -ms-flex: 0 0 16.666667%; + flex: 0 0 16.666667%; + max-width: 16.666667%; + } + .col-sm-auto { + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: auto; + max-width: 100%; + } + .col-sm-1 { + -ms-flex: 0 0 8.333333%; + flex: 0 0 8.333333%; + max-width: 8.333333%; + } + .col-sm-2 { + -ms-flex: 0 0 16.666667%; + flex: 0 0 16.666667%; + max-width: 16.666667%; + } + .col-sm-3 { + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25%; + } + .col-sm-4 { + -ms-flex: 0 0 33.333333%; + flex: 0 0 33.333333%; + max-width: 33.333333%; + } + .col-sm-5 { + -ms-flex: 0 0 41.666667%; + flex: 0 0 41.666667%; + max-width: 41.666667%; + } + .col-sm-6 { + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50%; + } + .col-sm-7 { + -ms-flex: 0 0 58.333333%; + flex: 0 0 58.333333%; + max-width: 58.333333%; + } + .col-sm-8 { + -ms-flex: 0 0 66.666667%; + flex: 0 0 66.666667%; + max-width: 66.666667%; + } + .col-sm-9 { + -ms-flex: 0 0 75%; + flex: 0 0 75%; + max-width: 75%; + } + .col-sm-10 { + -ms-flex: 0 0 83.333333%; + flex: 0 0 83.333333%; + max-width: 83.333333%; + } + .col-sm-11 { + -ms-flex: 0 0 91.666667%; + flex: 0 0 91.666667%; + max-width: 91.666667%; + } + .col-sm-12 { + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; + } + .order-sm-first { + -ms-flex-order: -1; + order: -1; + } + .order-sm-last { + -ms-flex-order: 13; + order: 13; + } + .order-sm-0 { + -ms-flex-order: 0; + order: 0; + } + .order-sm-1 { + -ms-flex-order: 1; + order: 1; + } + .order-sm-2 { + -ms-flex-order: 2; + order: 2; + } + .order-sm-3 { + -ms-flex-order: 3; + order: 3; + } + .order-sm-4 { + -ms-flex-order: 4; + order: 4; + } + .order-sm-5 { + -ms-flex-order: 5; + order: 5; + } + .order-sm-6 { + -ms-flex-order: 6; + order: 6; + } + .order-sm-7 { + -ms-flex-order: 7; + order: 7; + } + .order-sm-8 { + -ms-flex-order: 8; + order: 8; + } + .order-sm-9 { + -ms-flex-order: 9; + order: 9; + } + .order-sm-10 { + -ms-flex-order: 10; + order: 10; + } + .order-sm-11 { + -ms-flex-order: 11; + order: 11; + } + .order-sm-12 { + -ms-flex-order: 12; + order: 12; + } + .offset-sm-0 { + margin-left: 0; + } + .offset-sm-1 { + margin-left: 8.333333%; + } + .offset-sm-2 { + margin-left: 16.666667%; + } + .offset-sm-3 { + margin-left: 25%; + } + .offset-sm-4 { + margin-left: 33.333333%; + } + .offset-sm-5 { + margin-left: 41.666667%; + } + .offset-sm-6 { + margin-left: 50%; + } + .offset-sm-7 { + margin-left: 58.333333%; + } + .offset-sm-8 { + margin-left: 66.666667%; + } + .offset-sm-9 { + margin-left: 75%; + } + .offset-sm-10 { + margin-left: 83.333333%; + } + .offset-sm-11 { + margin-left: 91.666667%; + } +} + +@media (min-width: 768px) { + .col-md { + -ms-flex-preferred-size: 0; + flex-basis: 0; + -ms-flex-positive: 1; + flex-grow: 1; + max-width: 100%; + } + .row-cols-md-1 > * { + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; + } + .row-cols-md-2 > * { + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50%; + } + .row-cols-md-3 > * { + -ms-flex: 0 0 33.333333%; + flex: 0 0 33.333333%; + max-width: 33.333333%; + } + .row-cols-md-4 > * { + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25%; + } + .row-cols-md-5 > * { + -ms-flex: 0 0 20%; + flex: 0 0 20%; + max-width: 20%; + } + .row-cols-md-6 > * { + -ms-flex: 0 0 16.666667%; + flex: 0 0 16.666667%; + max-width: 16.666667%; + } + .col-md-auto { + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: auto; + max-width: 100%; + } + .col-md-1 { + -ms-flex: 0 0 8.333333%; + flex: 0 0 8.333333%; + max-width: 8.333333%; + } + .col-md-2 { + -ms-flex: 0 0 16.666667%; + flex: 0 0 16.666667%; + max-width: 16.666667%; + } + .col-md-3 { + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25%; + } + .col-md-4 { + -ms-flex: 0 0 33.333333%; + flex: 0 0 33.333333%; + max-width: 33.333333%; + } + .col-md-5 { + -ms-flex: 0 0 41.666667%; + flex: 0 0 41.666667%; + max-width: 41.666667%; + } + .col-md-6 { + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50%; + } + .col-md-7 { + -ms-flex: 0 0 58.333333%; + flex: 0 0 58.333333%; + max-width: 58.333333%; + } + .col-md-8 { + -ms-flex: 0 0 66.666667%; + flex: 0 0 66.666667%; + max-width: 66.666667%; + } + .col-md-9 { + -ms-flex: 0 0 75%; + flex: 0 0 75%; + max-width: 75%; + } + .col-md-10 { + -ms-flex: 0 0 83.333333%; + flex: 0 0 83.333333%; + max-width: 83.333333%; + } + .col-md-11 { + -ms-flex: 0 0 91.666667%; + flex: 0 0 91.666667%; + max-width: 91.666667%; + } + .col-md-12 { + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; + } + .order-md-first { + -ms-flex-order: -1; + order: -1; + } + .order-md-last { + -ms-flex-order: 13; + order: 13; + } + .order-md-0 { + -ms-flex-order: 0; + order: 0; + } + .order-md-1 { + -ms-flex-order: 1; + order: 1; + } + .order-md-2 { + -ms-flex-order: 2; + order: 2; + } + .order-md-3 { + -ms-flex-order: 3; + order: 3; + } + .order-md-4 { + -ms-flex-order: 4; + order: 4; + } + .order-md-5 { + -ms-flex-order: 5; + order: 5; + } + .order-md-6 { + -ms-flex-order: 6; + order: 6; + } + .order-md-7 { + -ms-flex-order: 7; + order: 7; + } + .order-md-8 { + -ms-flex-order: 8; + order: 8; + } + .order-md-9 { + -ms-flex-order: 9; + order: 9; + } + .order-md-10 { + -ms-flex-order: 10; + order: 10; + } + .order-md-11 { + -ms-flex-order: 11; + order: 11; + } + .order-md-12 { + -ms-flex-order: 12; + order: 12; + } + .offset-md-0 { + margin-left: 0; + } + .offset-md-1 { + margin-left: 8.333333%; + } + .offset-md-2 { + margin-left: 16.666667%; + } + .offset-md-3 { + margin-left: 25%; + } + .offset-md-4 { + margin-left: 33.333333%; + } + .offset-md-5 { + margin-left: 41.666667%; + } + .offset-md-6 { + margin-left: 50%; + } + .offset-md-7 { + margin-left: 58.333333%; + } + .offset-md-8 { + margin-left: 66.666667%; + } + .offset-md-9 { + margin-left: 75%; + } + .offset-md-10 { + margin-left: 83.333333%; + } + .offset-md-11 { + margin-left: 91.666667%; + } +} + +@media (min-width: 992px) { + .col-lg { + -ms-flex-preferred-size: 0; + flex-basis: 0; + -ms-flex-positive: 1; + flex-grow: 1; + max-width: 100%; + } + .row-cols-lg-1 > * { + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; + } + .row-cols-lg-2 > * { + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50%; + } + .row-cols-lg-3 > * { + -ms-flex: 0 0 33.333333%; + flex: 0 0 33.333333%; + max-width: 33.333333%; + } + .row-cols-lg-4 > * { + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25%; + } + .row-cols-lg-5 > * { + -ms-flex: 0 0 20%; + flex: 0 0 20%; + max-width: 20%; + } + .row-cols-lg-6 > * { + -ms-flex: 0 0 16.666667%; + flex: 0 0 16.666667%; + max-width: 16.666667%; + } + .col-lg-auto { + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: auto; + max-width: 100%; + } + .col-lg-1 { + -ms-flex: 0 0 8.333333%; + flex: 0 0 8.333333%; + max-width: 8.333333%; + } + .col-lg-2 { + -ms-flex: 0 0 16.666667%; + flex: 0 0 16.666667%; + max-width: 16.666667%; + } + .col-lg-3 { + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25%; + } + .col-lg-4 { + -ms-flex: 0 0 33.333333%; + flex: 0 0 33.333333%; + max-width: 33.333333%; + } + .col-lg-5 { + -ms-flex: 0 0 41.666667%; + flex: 0 0 41.666667%; + max-width: 41.666667%; + } + .col-lg-6 { + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50%; + } + .col-lg-7 { + -ms-flex: 0 0 58.333333%; + flex: 0 0 58.333333%; + max-width: 58.333333%; + } + .col-lg-8 { + -ms-flex: 0 0 66.666667%; + flex: 0 0 66.666667%; + max-width: 66.666667%; + } + .col-lg-9 { + -ms-flex: 0 0 75%; + flex: 0 0 75%; + max-width: 75%; + } + .col-lg-10 { + -ms-flex: 0 0 83.333333%; + flex: 0 0 83.333333%; + max-width: 83.333333%; + } + .col-lg-11 { + -ms-flex: 0 0 91.666667%; + flex: 0 0 91.666667%; + max-width: 91.666667%; + } + .col-lg-12 { + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; + } + .order-lg-first { + -ms-flex-order: -1; + order: -1; + } + .order-lg-last { + -ms-flex-order: 13; + order: 13; + } + .order-lg-0 { + -ms-flex-order: 0; + order: 0; + } + .order-lg-1 { + -ms-flex-order: 1; + order: 1; + } + .order-lg-2 { + -ms-flex-order: 2; + order: 2; + } + .order-lg-3 { + -ms-flex-order: 3; + order: 3; + } + .order-lg-4 { + -ms-flex-order: 4; + order: 4; + } + .order-lg-5 { + -ms-flex-order: 5; + order: 5; + } + .order-lg-6 { + -ms-flex-order: 6; + order: 6; + } + .order-lg-7 { + -ms-flex-order: 7; + order: 7; + } + .order-lg-8 { + -ms-flex-order: 8; + order: 8; + } + .order-lg-9 { + -ms-flex-order: 9; + order: 9; + } + .order-lg-10 { + -ms-flex-order: 10; + order: 10; + } + .order-lg-11 { + -ms-flex-order: 11; + order: 11; + } + .order-lg-12 { + -ms-flex-order: 12; + order: 12; + } + .offset-lg-0 { + margin-left: 0; + } + .offset-lg-1 { + margin-left: 8.333333%; + } + .offset-lg-2 { + margin-left: 16.666667%; + } + .offset-lg-3 { + margin-left: 25%; + } + .offset-lg-4 { + margin-left: 33.333333%; + } + .offset-lg-5 { + margin-left: 41.666667%; + } + .offset-lg-6 { + margin-left: 50%; + } + .offset-lg-7 { + margin-left: 58.333333%; + } + .offset-lg-8 { + margin-left: 66.666667%; + } + .offset-lg-9 { + margin-left: 75%; + } + .offset-lg-10 { + margin-left: 83.333333%; + } + .offset-lg-11 { + margin-left: 91.666667%; + } +} + +@media (min-width: 1200px) { + .col-xl { + -ms-flex-preferred-size: 0; + flex-basis: 0; + -ms-flex-positive: 1; + flex-grow: 1; + max-width: 100%; + } + .row-cols-xl-1 > * { + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; + } + .row-cols-xl-2 > * { + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50%; + } + .row-cols-xl-3 > * { + -ms-flex: 0 0 33.333333%; + flex: 0 0 33.333333%; + max-width: 33.333333%; + } + .row-cols-xl-4 > * { + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25%; + } + .row-cols-xl-5 > * { + -ms-flex: 0 0 20%; + flex: 0 0 20%; + max-width: 20%; + } + .row-cols-xl-6 > * { + -ms-flex: 0 0 16.666667%; + flex: 0 0 16.666667%; + max-width: 16.666667%; + } + .col-xl-auto { + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: auto; + max-width: 100%; + } + .col-xl-1 { + -ms-flex: 0 0 8.333333%; + flex: 0 0 8.333333%; + max-width: 8.333333%; + } + .col-xl-2 { + -ms-flex: 0 0 16.666667%; + flex: 0 0 16.666667%; + max-width: 16.666667%; + } + .col-xl-3 { + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25%; + } + .col-xl-4 { + -ms-flex: 0 0 33.333333%; + flex: 0 0 33.333333%; + max-width: 33.333333%; + } + .col-xl-5 { + -ms-flex: 0 0 41.666667%; + flex: 0 0 41.666667%; + max-width: 41.666667%; + } + .col-xl-6 { + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50%; + } + .col-xl-7 { + -ms-flex: 0 0 58.333333%; + flex: 0 0 58.333333%; + max-width: 58.333333%; + } + .col-xl-8 { + -ms-flex: 0 0 66.666667%; + flex: 0 0 66.666667%; + max-width: 66.666667%; + } + .col-xl-9 { + -ms-flex: 0 0 75%; + flex: 0 0 75%; + max-width: 75%; + } + .col-xl-10 { + -ms-flex: 0 0 83.333333%; + flex: 0 0 83.333333%; + max-width: 83.333333%; + } + .col-xl-11 { + -ms-flex: 0 0 91.666667%; + flex: 0 0 91.666667%; + max-width: 91.666667%; + } + .col-xl-12 { + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; + } + .order-xl-first { + -ms-flex-order: -1; + order: -1; + } + .order-xl-last { + -ms-flex-order: 13; + order: 13; + } + .order-xl-0 { + -ms-flex-order: 0; + order: 0; + } + .order-xl-1 { + -ms-flex-order: 1; + order: 1; + } + .order-xl-2 { + -ms-flex-order: 2; + order: 2; + } + .order-xl-3 { + -ms-flex-order: 3; + order: 3; + } + .order-xl-4 { + -ms-flex-order: 4; + order: 4; + } + .order-xl-5 { + -ms-flex-order: 5; + order: 5; + } + .order-xl-6 { + -ms-flex-order: 6; + order: 6; + } + .order-xl-7 { + -ms-flex-order: 7; + order: 7; + } + .order-xl-8 { + -ms-flex-order: 8; + order: 8; + } + .order-xl-9 { + -ms-flex-order: 9; + order: 9; + } + .order-xl-10 { + -ms-flex-order: 10; + order: 10; + } + .order-xl-11 { + -ms-flex-order: 11; + order: 11; + } + .order-xl-12 { + -ms-flex-order: 12; + order: 12; + } + .offset-xl-0 { + margin-left: 0; + } + .offset-xl-1 { + margin-left: 8.333333%; + } + .offset-xl-2 { + margin-left: 16.666667%; + } + .offset-xl-3 { + margin-left: 25%; + } + .offset-xl-4 { + margin-left: 33.333333%; + } + .offset-xl-5 { + margin-left: 41.666667%; + } + .offset-xl-6 { + margin-left: 50%; + } + .offset-xl-7 { + margin-left: 58.333333%; + } + .offset-xl-8 { + margin-left: 66.666667%; + } + .offset-xl-9 { + margin-left: 75%; + } + .offset-xl-10 { + margin-left: 83.333333%; + } + .offset-xl-11 { + margin-left: 91.666667%; + } +} + +.d-none { + display: none !important; +} + +.d-inline { + display: inline !important; +} + +.d-inline-block { + display: inline-block !important; +} + +.d-block { + display: block !important; +} + +.d-table { + display: table !important; +} + +.d-table-row { + display: table-row !important; +} + +.d-table-cell { + display: table-cell !important; +} + +.d-flex { + display: -ms-flexbox !important; + display: flex !important; +} + +.d-inline-flex { + display: -ms-inline-flexbox !important; + display: inline-flex !important; +} + +@media (min-width: 576px) { + .d-sm-none { + display: none !important; + } + .d-sm-inline { + display: inline !important; + } + .d-sm-inline-block { + display: inline-block !important; + } + .d-sm-block { + display: block !important; + } + .d-sm-table { + display: table !important; + } + .d-sm-table-row { + display: table-row !important; + } + .d-sm-table-cell { + display: table-cell !important; + } + .d-sm-flex { + display: -ms-flexbox !important; + display: flex !important; + } + .d-sm-inline-flex { + display: -ms-inline-flexbox !important; + display: inline-flex !important; + } +} + +@media (min-width: 768px) { + .d-md-none { + display: none !important; + } + .d-md-inline { + display: inline !important; + } + .d-md-inline-block { + display: inline-block !important; + } + .d-md-block { + display: block !important; + } + .d-md-table { + display: table !important; + } + .d-md-table-row { + display: table-row !important; + } + .d-md-table-cell { + display: table-cell !important; + } + .d-md-flex { + display: -ms-flexbox !important; + display: flex !important; + } + .d-md-inline-flex { + display: -ms-inline-flexbox !important; + display: inline-flex !important; + } +} + +@media (min-width: 992px) { + .d-lg-none { + display: none !important; + } + .d-lg-inline { + display: inline !important; + } + .d-lg-inline-block { + display: inline-block !important; + } + .d-lg-block { + display: block !important; + } + .d-lg-table { + display: table !important; + } + .d-lg-table-row { + display: table-row !important; + } + .d-lg-table-cell { + display: table-cell !important; + } + .d-lg-flex { + display: -ms-flexbox !important; + display: flex !important; + } + .d-lg-inline-flex { + display: -ms-inline-flexbox !important; + display: inline-flex !important; + } +} + +@media (min-width: 1200px) { + .d-xl-none { + display: none !important; + } + .d-xl-inline { + display: inline !important; + } + .d-xl-inline-block { + display: inline-block !important; + } + .d-xl-block { + display: block !important; + } + .d-xl-table { + display: table !important; + } + .d-xl-table-row { + display: table-row !important; + } + .d-xl-table-cell { + display: table-cell !important; + } + .d-xl-flex { + display: -ms-flexbox !important; + display: flex !important; + } + .d-xl-inline-flex { + display: -ms-inline-flexbox !important; + display: inline-flex !important; + } +} + +@media print { + .d-print-none { + display: none !important; + } + .d-print-inline { + display: inline !important; + } + .d-print-inline-block { + display: inline-block !important; + } + .d-print-block { + display: block !important; + } + .d-print-table { + display: table !important; + } + .d-print-table-row { + display: table-row !important; + } + .d-print-table-cell { + display: table-cell !important; + } + .d-print-flex { + display: -ms-flexbox !important; + display: flex !important; + } + .d-print-inline-flex { + display: -ms-inline-flexbox !important; + display: inline-flex !important; + } +} + +.flex-row { + -ms-flex-direction: row !important; + flex-direction: row !important; +} + +.flex-column { + -ms-flex-direction: column !important; + flex-direction: column !important; +} + +.flex-row-reverse { + -ms-flex-direction: row-reverse !important; + flex-direction: row-reverse !important; +} + +.flex-column-reverse { + -ms-flex-direction: column-reverse !important; + flex-direction: column-reverse !important; +} + +.flex-wrap { + -ms-flex-wrap: wrap !important; + flex-wrap: wrap !important; +} + +.flex-nowrap { + -ms-flex-wrap: nowrap !important; + flex-wrap: nowrap !important; +} + +.flex-wrap-reverse { + -ms-flex-wrap: wrap-reverse !important; + flex-wrap: wrap-reverse !important; +} + +.flex-fill { + -ms-flex: 1 1 auto !important; + flex: 1 1 auto !important; +} + +.flex-grow-0 { + -ms-flex-positive: 0 !important; + flex-grow: 0 !important; +} + +.flex-grow-1 { + -ms-flex-positive: 1 !important; + flex-grow: 1 !important; +} + +.flex-shrink-0 { + -ms-flex-negative: 0 !important; + flex-shrink: 0 !important; +} + +.flex-shrink-1 { + -ms-flex-negative: 1 !important; + flex-shrink: 1 !important; +} + +.justify-content-start { + -ms-flex-pack: start !important; + justify-content: flex-start !important; +} + +.justify-content-end { + -ms-flex-pack: end !important; + justify-content: flex-end !important; +} + +.justify-content-center { + -ms-flex-pack: center !important; + justify-content: center !important; +} + +.justify-content-between { + -ms-flex-pack: justify !important; + justify-content: space-between !important; +} + +.justify-content-around { + -ms-flex-pack: distribute !important; + justify-content: space-around !important; +} + +.align-items-start { + -ms-flex-align: start !important; + align-items: flex-start !important; +} + +.align-items-end { + -ms-flex-align: end !important; + align-items: flex-end !important; +} + +.align-items-center { + -ms-flex-align: center !important; + align-items: center !important; +} + +.align-items-baseline { + -ms-flex-align: baseline !important; + align-items: baseline !important; +} + +.align-items-stretch { + -ms-flex-align: stretch !important; + align-items: stretch !important; +} + +.align-content-start { + -ms-flex-line-pack: start !important; + align-content: flex-start !important; +} + +.align-content-end { + -ms-flex-line-pack: end !important; + align-content: flex-end !important; +} + +.align-content-center { + -ms-flex-line-pack: center !important; + align-content: center !important; +} + +.align-content-between { + -ms-flex-line-pack: justify !important; + align-content: space-between !important; +} + +.align-content-around { + -ms-flex-line-pack: distribute !important; + align-content: space-around !important; +} + +.align-content-stretch { + -ms-flex-line-pack: stretch !important; + align-content: stretch !important; +} + +.align-self-auto { + -ms-flex-item-align: auto !important; + align-self: auto !important; +} + +.align-self-start { + -ms-flex-item-align: start !important; + align-self: flex-start !important; +} + +.align-self-end { + -ms-flex-item-align: end !important; + align-self: flex-end !important; +} + +.align-self-center { + -ms-flex-item-align: center !important; + align-self: center !important; +} + +.align-self-baseline { + -ms-flex-item-align: baseline !important; + align-self: baseline !important; +} + +.align-self-stretch { + -ms-flex-item-align: stretch !important; + align-self: stretch !important; +} + +@media (min-width: 576px) { + .flex-sm-row { + -ms-flex-direction: row !important; + flex-direction: row !important; + } + .flex-sm-column { + -ms-flex-direction: column !important; + flex-direction: column !important; + } + .flex-sm-row-reverse { + -ms-flex-direction: row-reverse !important; + flex-direction: row-reverse !important; + } + .flex-sm-column-reverse { + -ms-flex-direction: column-reverse !important; + flex-direction: column-reverse !important; + } + .flex-sm-wrap { + -ms-flex-wrap: wrap !important; + flex-wrap: wrap !important; + } + .flex-sm-nowrap { + -ms-flex-wrap: nowrap !important; + flex-wrap: nowrap !important; + } + .flex-sm-wrap-reverse { + -ms-flex-wrap: wrap-reverse !important; + flex-wrap: wrap-reverse !important; + } + .flex-sm-fill { + -ms-flex: 1 1 auto !important; + flex: 1 1 auto !important; + } + .flex-sm-grow-0 { + -ms-flex-positive: 0 !important; + flex-grow: 0 !important; + } + .flex-sm-grow-1 { + -ms-flex-positive: 1 !important; + flex-grow: 1 !important; + } + .flex-sm-shrink-0 { + -ms-flex-negative: 0 !important; + flex-shrink: 0 !important; + } + .flex-sm-shrink-1 { + -ms-flex-negative: 1 !important; + flex-shrink: 1 !important; + } + .justify-content-sm-start { + -ms-flex-pack: start !important; + justify-content: flex-start !important; + } + .justify-content-sm-end { + -ms-flex-pack: end !important; + justify-content: flex-end !important; + } + .justify-content-sm-center { + -ms-flex-pack: center !important; + justify-content: center !important; + } + .justify-content-sm-between { + -ms-flex-pack: justify !important; + justify-content: space-between !important; + } + .justify-content-sm-around { + -ms-flex-pack: distribute !important; + justify-content: space-around !important; + } + .align-items-sm-start { + -ms-flex-align: start !important; + align-items: flex-start !important; + } + .align-items-sm-end { + -ms-flex-align: end !important; + align-items: flex-end !important; + } + .align-items-sm-center { + -ms-flex-align: center !important; + align-items: center !important; + } + .align-items-sm-baseline { + -ms-flex-align: baseline !important; + align-items: baseline !important; + } + .align-items-sm-stretch { + -ms-flex-align: stretch !important; + align-items: stretch !important; + } + .align-content-sm-start { + -ms-flex-line-pack: start !important; + align-content: flex-start !important; + } + .align-content-sm-end { + -ms-flex-line-pack: end !important; + align-content: flex-end !important; + } + .align-content-sm-center { + -ms-flex-line-pack: center !important; + align-content: center !important; + } + .align-content-sm-between { + -ms-flex-line-pack: justify !important; + align-content: space-between !important; + } + .align-content-sm-around { + -ms-flex-line-pack: distribute !important; + align-content: space-around !important; + } + .align-content-sm-stretch { + -ms-flex-line-pack: stretch !important; + align-content: stretch !important; + } + .align-self-sm-auto { + -ms-flex-item-align: auto !important; + align-self: auto !important; + } + .align-self-sm-start { + -ms-flex-item-align: start !important; + align-self: flex-start !important; + } + .align-self-sm-end { + -ms-flex-item-align: end !important; + align-self: flex-end !important; + } + .align-self-sm-center { + -ms-flex-item-align: center !important; + align-self: center !important; + } + .align-self-sm-baseline { + -ms-flex-item-align: baseline !important; + align-self: baseline !important; + } + .align-self-sm-stretch { + -ms-flex-item-align: stretch !important; + align-self: stretch !important; + } +} + +@media (min-width: 768px) { + .flex-md-row { + -ms-flex-direction: row !important; + flex-direction: row !important; + } + .flex-md-column { + -ms-flex-direction: column !important; + flex-direction: column !important; + } + .flex-md-row-reverse { + -ms-flex-direction: row-reverse !important; + flex-direction: row-reverse !important; + } + .flex-md-column-reverse { + -ms-flex-direction: column-reverse !important; + flex-direction: column-reverse !important; + } + .flex-md-wrap { + -ms-flex-wrap: wrap !important; + flex-wrap: wrap !important; + } + .flex-md-nowrap { + -ms-flex-wrap: nowrap !important; + flex-wrap: nowrap !important; + } + .flex-md-wrap-reverse { + -ms-flex-wrap: wrap-reverse !important; + flex-wrap: wrap-reverse !important; + } + .flex-md-fill { + -ms-flex: 1 1 auto !important; + flex: 1 1 auto !important; + } + .flex-md-grow-0 { + -ms-flex-positive: 0 !important; + flex-grow: 0 !important; + } + .flex-md-grow-1 { + -ms-flex-positive: 1 !important; + flex-grow: 1 !important; + } + .flex-md-shrink-0 { + -ms-flex-negative: 0 !important; + flex-shrink: 0 !important; + } + .flex-md-shrink-1 { + -ms-flex-negative: 1 !important; + flex-shrink: 1 !important; + } + .justify-content-md-start { + -ms-flex-pack: start !important; + justify-content: flex-start !important; + } + .justify-content-md-end { + -ms-flex-pack: end !important; + justify-content: flex-end !important; + } + .justify-content-md-center { + -ms-flex-pack: center !important; + justify-content: center !important; + } + .justify-content-md-between { + -ms-flex-pack: justify !important; + justify-content: space-between !important; + } + .justify-content-md-around { + -ms-flex-pack: distribute !important; + justify-content: space-around !important; + } + .align-items-md-start { + -ms-flex-align: start !important; + align-items: flex-start !important; + } + .align-items-md-end { + -ms-flex-align: end !important; + align-items: flex-end !important; + } + .align-items-md-center { + -ms-flex-align: center !important; + align-items: center !important; + } + .align-items-md-baseline { + -ms-flex-align: baseline !important; + align-items: baseline !important; + } + .align-items-md-stretch { + -ms-flex-align: stretch !important; + align-items: stretch !important; + } + .align-content-md-start { + -ms-flex-line-pack: start !important; + align-content: flex-start !important; + } + .align-content-md-end { + -ms-flex-line-pack: end !important; + align-content: flex-end !important; + } + .align-content-md-center { + -ms-flex-line-pack: center !important; + align-content: center !important; + } + .align-content-md-between { + -ms-flex-line-pack: justify !important; + align-content: space-between !important; + } + .align-content-md-around { + -ms-flex-line-pack: distribute !important; + align-content: space-around !important; + } + .align-content-md-stretch { + -ms-flex-line-pack: stretch !important; + align-content: stretch !important; + } + .align-self-md-auto { + -ms-flex-item-align: auto !important; + align-self: auto !important; + } + .align-self-md-start { + -ms-flex-item-align: start !important; + align-self: flex-start !important; + } + .align-self-md-end { + -ms-flex-item-align: end !important; + align-self: flex-end !important; + } + .align-self-md-center { + -ms-flex-item-align: center !important; + align-self: center !important; + } + .align-self-md-baseline { + -ms-flex-item-align: baseline !important; + align-self: baseline !important; + } + .align-self-md-stretch { + -ms-flex-item-align: stretch !important; + align-self: stretch !important; + } +} + +@media (min-width: 992px) { + .flex-lg-row { + -ms-flex-direction: row !important; + flex-direction: row !important; + } + .flex-lg-column { + -ms-flex-direction: column !important; + flex-direction: column !important; + } + .flex-lg-row-reverse { + -ms-flex-direction: row-reverse !important; + flex-direction: row-reverse !important; + } + .flex-lg-column-reverse { + -ms-flex-direction: column-reverse !important; + flex-direction: column-reverse !important; + } + .flex-lg-wrap { + -ms-flex-wrap: wrap !important; + flex-wrap: wrap !important; + } + .flex-lg-nowrap { + -ms-flex-wrap: nowrap !important; + flex-wrap: nowrap !important; + } + .flex-lg-wrap-reverse { + -ms-flex-wrap: wrap-reverse !important; + flex-wrap: wrap-reverse !important; + } + .flex-lg-fill { + -ms-flex: 1 1 auto !important; + flex: 1 1 auto !important; + } + .flex-lg-grow-0 { + -ms-flex-positive: 0 !important; + flex-grow: 0 !important; + } + .flex-lg-grow-1 { + -ms-flex-positive: 1 !important; + flex-grow: 1 !important; + } + .flex-lg-shrink-0 { + -ms-flex-negative: 0 !important; + flex-shrink: 0 !important; + } + .flex-lg-shrink-1 { + -ms-flex-negative: 1 !important; + flex-shrink: 1 !important; + } + .justify-content-lg-start { + -ms-flex-pack: start !important; + justify-content: flex-start !important; + } + .justify-content-lg-end { + -ms-flex-pack: end !important; + justify-content: flex-end !important; + } + .justify-content-lg-center { + -ms-flex-pack: center !important; + justify-content: center !important; + } + .justify-content-lg-between { + -ms-flex-pack: justify !important; + justify-content: space-between !important; + } + .justify-content-lg-around { + -ms-flex-pack: distribute !important; + justify-content: space-around !important; + } + .align-items-lg-start { + -ms-flex-align: start !important; + align-items: flex-start !important; + } + .align-items-lg-end { + -ms-flex-align: end !important; + align-items: flex-end !important; + } + .align-items-lg-center { + -ms-flex-align: center !important; + align-items: center !important; + } + .align-items-lg-baseline { + -ms-flex-align: baseline !important; + align-items: baseline !important; + } + .align-items-lg-stretch { + -ms-flex-align: stretch !important; + align-items: stretch !important; + } + .align-content-lg-start { + -ms-flex-line-pack: start !important; + align-content: flex-start !important; + } + .align-content-lg-end { + -ms-flex-line-pack: end !important; + align-content: flex-end !important; + } + .align-content-lg-center { + -ms-flex-line-pack: center !important; + align-content: center !important; + } + .align-content-lg-between { + -ms-flex-line-pack: justify !important; + align-content: space-between !important; + } + .align-content-lg-around { + -ms-flex-line-pack: distribute !important; + align-content: space-around !important; + } + .align-content-lg-stretch { + -ms-flex-line-pack: stretch !important; + align-content: stretch !important; + } + .align-self-lg-auto { + -ms-flex-item-align: auto !important; + align-self: auto !important; + } + .align-self-lg-start { + -ms-flex-item-align: start !important; + align-self: flex-start !important; + } + .align-self-lg-end { + -ms-flex-item-align: end !important; + align-self: flex-end !important; + } + .align-self-lg-center { + -ms-flex-item-align: center !important; + align-self: center !important; + } + .align-self-lg-baseline { + -ms-flex-item-align: baseline !important; + align-self: baseline !important; + } + .align-self-lg-stretch { + -ms-flex-item-align: stretch !important; + align-self: stretch !important; + } +} + +@media (min-width: 1200px) { + .flex-xl-row { + -ms-flex-direction: row !important; + flex-direction: row !important; + } + .flex-xl-column { + -ms-flex-direction: column !important; + flex-direction: column !important; + } + .flex-xl-row-reverse { + -ms-flex-direction: row-reverse !important; + flex-direction: row-reverse !important; + } + .flex-xl-column-reverse { + -ms-flex-direction: column-reverse !important; + flex-direction: column-reverse !important; + } + .flex-xl-wrap { + -ms-flex-wrap: wrap !important; + flex-wrap: wrap !important; + } + .flex-xl-nowrap { + -ms-flex-wrap: nowrap !important; + flex-wrap: nowrap !important; + } + .flex-xl-wrap-reverse { + -ms-flex-wrap: wrap-reverse !important; + flex-wrap: wrap-reverse !important; + } + .flex-xl-fill { + -ms-flex: 1 1 auto !important; + flex: 1 1 auto !important; + } + .flex-xl-grow-0 { + -ms-flex-positive: 0 !important; + flex-grow: 0 !important; + } + .flex-xl-grow-1 { + -ms-flex-positive: 1 !important; + flex-grow: 1 !important; + } + .flex-xl-shrink-0 { + -ms-flex-negative: 0 !important; + flex-shrink: 0 !important; + } + .flex-xl-shrink-1 { + -ms-flex-negative: 1 !important; + flex-shrink: 1 !important; + } + .justify-content-xl-start { + -ms-flex-pack: start !important; + justify-content: flex-start !important; + } + .justify-content-xl-end { + -ms-flex-pack: end !important; + justify-content: flex-end !important; + } + .justify-content-xl-center { + -ms-flex-pack: center !important; + justify-content: center !important; + } + .justify-content-xl-between { + -ms-flex-pack: justify !important; + justify-content: space-between !important; + } + .justify-content-xl-around { + -ms-flex-pack: distribute !important; + justify-content: space-around !important; + } + .align-items-xl-start { + -ms-flex-align: start !important; + align-items: flex-start !important; + } + .align-items-xl-end { + -ms-flex-align: end !important; + align-items: flex-end !important; + } + .align-items-xl-center { + -ms-flex-align: center !important; + align-items: center !important; + } + .align-items-xl-baseline { + -ms-flex-align: baseline !important; + align-items: baseline !important; + } + .align-items-xl-stretch { + -ms-flex-align: stretch !important; + align-items: stretch !important; + } + .align-content-xl-start { + -ms-flex-line-pack: start !important; + align-content: flex-start !important; + } + .align-content-xl-end { + -ms-flex-line-pack: end !important; + align-content: flex-end !important; + } + .align-content-xl-center { + -ms-flex-line-pack: center !important; + align-content: center !important; + } + .align-content-xl-between { + -ms-flex-line-pack: justify !important; + align-content: space-between !important; + } + .align-content-xl-around { + -ms-flex-line-pack: distribute !important; + align-content: space-around !important; + } + .align-content-xl-stretch { + -ms-flex-line-pack: stretch !important; + align-content: stretch !important; + } + .align-self-xl-auto { + -ms-flex-item-align: auto !important; + align-self: auto !important; + } + .align-self-xl-start { + -ms-flex-item-align: start !important; + align-self: flex-start !important; + } + .align-self-xl-end { + -ms-flex-item-align: end !important; + align-self: flex-end !important; + } + .align-self-xl-center { + -ms-flex-item-align: center !important; + align-self: center !important; + } + .align-self-xl-baseline { + -ms-flex-item-align: baseline !important; + align-self: baseline !important; + } + .align-self-xl-stretch { + -ms-flex-item-align: stretch !important; + align-self: stretch !important; + } +} + +.m-0 { + margin: 0 !important; +} + +.mt-0, +.my-0 { + margin-top: 0 !important; +} + +.mr-0, +.mx-0 { + margin-right: 0 !important; +} + +.mb-0, +.my-0 { + margin-bottom: 0 !important; +} + +.ml-0, +.mx-0 { + margin-left: 0 !important; +} + +.m-1 { + margin: 0.25rem !important; +} + +.mt-1, +.my-1 { + margin-top: 0.25rem !important; +} + +.mr-1, +.mx-1 { + margin-right: 0.25rem !important; +} + +.mb-1, +.my-1 { + margin-bottom: 0.25rem !important; +} + +.ml-1, +.mx-1 { + margin-left: 0.25rem !important; +} + +.m-2 { + margin: 0.5rem !important; +} + +.mt-2, +.my-2 { + margin-top: 0.5rem !important; +} + +.mr-2, +.mx-2 { + margin-right: 0.5rem !important; +} + +.mb-2, +.my-2 { + margin-bottom: 0.5rem !important; +} + +.ml-2, +.mx-2 { + margin-left: 0.5rem !important; +} + +.m-3 { + margin: 1rem !important; +} + +.mt-3, +.my-3 { + margin-top: 1rem !important; +} + +.mr-3, +.mx-3 { + margin-right: 1rem !important; +} + +.mb-3, +.my-3 { + margin-bottom: 1rem !important; +} + +.ml-3, +.mx-3 { + margin-left: 1rem !important; +} + +.m-4 { + margin: 1.5rem !important; +} + +.mt-4, +.my-4 { + margin-top: 1.5rem !important; +} + +.mr-4, +.mx-4 { + margin-right: 1.5rem !important; +} + +.mb-4, +.my-4 { + margin-bottom: 1.5rem !important; +} + +.ml-4, +.mx-4 { + margin-left: 1.5rem !important; +} + +.m-5 { + margin: 3rem !important; +} + +.mt-5, +.my-5 { + margin-top: 3rem !important; +} + +.mr-5, +.mx-5 { + margin-right: 3rem !important; +} + +.mb-5, +.my-5 { + margin-bottom: 3rem !important; +} + +.ml-5, +.mx-5 { + margin-left: 3rem !important; +} + +.p-0 { + padding: 0 !important; +} + +.pt-0, +.py-0 { + padding-top: 0 !important; +} + +.pr-0, +.px-0 { + padding-right: 0 !important; +} + +.pb-0, +.py-0 { + padding-bottom: 0 !important; +} + +.pl-0, +.px-0 { + padding-left: 0 !important; +} + +.p-1 { + padding: 0.25rem !important; +} + +.pt-1, +.py-1 { + padding-top: 0.25rem !important; +} + +.pr-1, +.px-1 { + padding-right: 0.25rem !important; +} + +.pb-1, +.py-1 { + padding-bottom: 0.25rem !important; +} + +.pl-1, +.px-1 { + padding-left: 0.25rem !important; +} + +.p-2 { + padding: 0.5rem !important; +} + +.pt-2, +.py-2 { + padding-top: 0.5rem !important; +} + +.pr-2, +.px-2 { + padding-right: 0.5rem !important; +} + +.pb-2, +.py-2 { + padding-bottom: 0.5rem !important; +} + +.pl-2, +.px-2 { + padding-left: 0.5rem !important; +} + +.p-3 { + padding: 1rem !important; +} + +.pt-3, +.py-3 { + padding-top: 1rem !important; +} + +.pr-3, +.px-3 { + padding-right: 1rem !important; +} + +.pb-3, +.py-3 { + padding-bottom: 1rem !important; +} + +.pl-3, +.px-3 { + padding-left: 1rem !important; +} + +.p-4 { + padding: 1.5rem !important; +} + +.pt-4, +.py-4 { + padding-top: 1.5rem !important; +} + +.pr-4, +.px-4 { + padding-right: 1.5rem !important; +} + +.pb-4, +.py-4 { + padding-bottom: 1.5rem !important; +} + +.pl-4, +.px-4 { + padding-left: 1.5rem !important; +} + +.p-5 { + padding: 3rem !important; +} + +.pt-5, +.py-5 { + padding-top: 3rem !important; +} + +.pr-5, +.px-5 { + padding-right: 3rem !important; +} + +.pb-5, +.py-5 { + padding-bottom: 3rem !important; +} + +.pl-5, +.px-5 { + padding-left: 3rem !important; +} + +.m-n1 { + margin: -0.25rem !important; +} + +.mt-n1, +.my-n1 { + margin-top: -0.25rem !important; +} + +.mr-n1, +.mx-n1 { + margin-right: -0.25rem !important; +} + +.mb-n1, +.my-n1 { + margin-bottom: -0.25rem !important; +} + +.ml-n1, +.mx-n1 { + margin-left: -0.25rem !important; +} + +.m-n2 { + margin: -0.5rem !important; +} + +.mt-n2, +.my-n2 { + margin-top: -0.5rem !important; +} + +.mr-n2, +.mx-n2 { + margin-right: -0.5rem !important; +} + +.mb-n2, +.my-n2 { + margin-bottom: -0.5rem !important; +} + +.ml-n2, +.mx-n2 { + margin-left: -0.5rem !important; +} + +.m-n3 { + margin: -1rem !important; +} + +.mt-n3, +.my-n3 { + margin-top: -1rem !important; +} + +.mr-n3, +.mx-n3 { + margin-right: -1rem !important; +} + +.mb-n3, +.my-n3 { + margin-bottom: -1rem !important; +} + +.ml-n3, +.mx-n3 { + margin-left: -1rem !important; +} + +.m-n4 { + margin: -1.5rem !important; +} + +.mt-n4, +.my-n4 { + margin-top: -1.5rem !important; +} + +.mr-n4, +.mx-n4 { + margin-right: -1.5rem !important; +} + +.mb-n4, +.my-n4 { + margin-bottom: -1.5rem !important; +} + +.ml-n4, +.mx-n4 { + margin-left: -1.5rem !important; +} + +.m-n5 { + margin: -3rem !important; +} + +.mt-n5, +.my-n5 { + margin-top: -3rem !important; +} + +.mr-n5, +.mx-n5 { + margin-right: -3rem !important; +} + +.mb-n5, +.my-n5 { + margin-bottom: -3rem !important; +} + +.ml-n5, +.mx-n5 { + margin-left: -3rem !important; +} + +.m-auto { + margin: auto !important; +} + +.mt-auto, +.my-auto { + margin-top: auto !important; +} + +.mr-auto, +.mx-auto { + margin-right: auto !important; +} + +.mb-auto, +.my-auto { + margin-bottom: auto !important; +} + +.ml-auto, +.mx-auto { + margin-left: auto !important; +} + +@media (min-width: 576px) { + .m-sm-0 { + margin: 0 !important; + } + .mt-sm-0, + .my-sm-0 { + margin-top: 0 !important; + } + .mr-sm-0, + .mx-sm-0 { + margin-right: 0 !important; + } + .mb-sm-0, + .my-sm-0 { + margin-bottom: 0 !important; + } + .ml-sm-0, + .mx-sm-0 { + margin-left: 0 !important; + } + .m-sm-1 { + margin: 0.25rem !important; + } + .mt-sm-1, + .my-sm-1 { + margin-top: 0.25rem !important; + } + .mr-sm-1, + .mx-sm-1 { + margin-right: 0.25rem !important; + } + .mb-sm-1, + .my-sm-1 { + margin-bottom: 0.25rem !important; + } + .ml-sm-1, + .mx-sm-1 { + margin-left: 0.25rem !important; + } + .m-sm-2 { + margin: 0.5rem !important; + } + .mt-sm-2, + .my-sm-2 { + margin-top: 0.5rem !important; + } + .mr-sm-2, + .mx-sm-2 { + margin-right: 0.5rem !important; + } + .mb-sm-2, + .my-sm-2 { + margin-bottom: 0.5rem !important; + } + .ml-sm-2, + .mx-sm-2 { + margin-left: 0.5rem !important; + } + .m-sm-3 { + margin: 1rem !important; + } + .mt-sm-3, + .my-sm-3 { + margin-top: 1rem !important; + } + .mr-sm-3, + .mx-sm-3 { + margin-right: 1rem !important; + } + .mb-sm-3, + .my-sm-3 { + margin-bottom: 1rem !important; + } + .ml-sm-3, + .mx-sm-3 { + margin-left: 1rem !important; + } + .m-sm-4 { + margin: 1.5rem !important; + } + .mt-sm-4, + .my-sm-4 { + margin-top: 1.5rem !important; + } + .mr-sm-4, + .mx-sm-4 { + margin-right: 1.5rem !important; + } + .mb-sm-4, + .my-sm-4 { + margin-bottom: 1.5rem !important; + } + .ml-sm-4, + .mx-sm-4 { + margin-left: 1.5rem !important; + } + .m-sm-5 { + margin: 3rem !important; + } + .mt-sm-5, + .my-sm-5 { + margin-top: 3rem !important; + } + .mr-sm-5, + .mx-sm-5 { + margin-right: 3rem !important; + } + .mb-sm-5, + .my-sm-5 { + margin-bottom: 3rem !important; + } + .ml-sm-5, + .mx-sm-5 { + margin-left: 3rem !important; + } + .p-sm-0 { + padding: 0 !important; + } + .pt-sm-0, + .py-sm-0 { + padding-top: 0 !important; + } + .pr-sm-0, + .px-sm-0 { + padding-right: 0 !important; + } + .pb-sm-0, + .py-sm-0 { + padding-bottom: 0 !important; + } + .pl-sm-0, + .px-sm-0 { + padding-left: 0 !important; + } + .p-sm-1 { + padding: 0.25rem !important; + } + .pt-sm-1, + .py-sm-1 { + padding-top: 0.25rem !important; + } + .pr-sm-1, + .px-sm-1 { + padding-right: 0.25rem !important; + } + .pb-sm-1, + .py-sm-1 { + padding-bottom: 0.25rem !important; + } + .pl-sm-1, + .px-sm-1 { + padding-left: 0.25rem !important; + } + .p-sm-2 { + padding: 0.5rem !important; + } + .pt-sm-2, + .py-sm-2 { + padding-top: 0.5rem !important; + } + .pr-sm-2, + .px-sm-2 { + padding-right: 0.5rem !important; + } + .pb-sm-2, + .py-sm-2 { + padding-bottom: 0.5rem !important; + } + .pl-sm-2, + .px-sm-2 { + padding-left: 0.5rem !important; + } + .p-sm-3 { + padding: 1rem !important; + } + .pt-sm-3, + .py-sm-3 { + padding-top: 1rem !important; + } + .pr-sm-3, + .px-sm-3 { + padding-right: 1rem !important; + } + .pb-sm-3, + .py-sm-3 { + padding-bottom: 1rem !important; + } + .pl-sm-3, + .px-sm-3 { + padding-left: 1rem !important; + } + .p-sm-4 { + padding: 1.5rem !important; + } + .pt-sm-4, + .py-sm-4 { + padding-top: 1.5rem !important; + } + .pr-sm-4, + .px-sm-4 { + padding-right: 1.5rem !important; + } + .pb-sm-4, + .py-sm-4 { + padding-bottom: 1.5rem !important; + } + .pl-sm-4, + .px-sm-4 { + padding-left: 1.5rem !important; + } + .p-sm-5 { + padding: 3rem !important; + } + .pt-sm-5, + .py-sm-5 { + padding-top: 3rem !important; + } + .pr-sm-5, + .px-sm-5 { + padding-right: 3rem !important; + } + .pb-sm-5, + .py-sm-5 { + padding-bottom: 3rem !important; + } + .pl-sm-5, + .px-sm-5 { + padding-left: 3rem !important; + } + .m-sm-n1 { + margin: -0.25rem !important; + } + .mt-sm-n1, + .my-sm-n1 { + margin-top: -0.25rem !important; + } + .mr-sm-n1, + .mx-sm-n1 { + margin-right: -0.25rem !important; + } + .mb-sm-n1, + .my-sm-n1 { + margin-bottom: -0.25rem !important; + } + .ml-sm-n1, + .mx-sm-n1 { + margin-left: -0.25rem !important; + } + .m-sm-n2 { + margin: -0.5rem !important; + } + .mt-sm-n2, + .my-sm-n2 { + margin-top: -0.5rem !important; + } + .mr-sm-n2, + .mx-sm-n2 { + margin-right: -0.5rem !important; + } + .mb-sm-n2, + .my-sm-n2 { + margin-bottom: -0.5rem !important; + } + .ml-sm-n2, + .mx-sm-n2 { + margin-left: -0.5rem !important; + } + .m-sm-n3 { + margin: -1rem !important; + } + .mt-sm-n3, + .my-sm-n3 { + margin-top: -1rem !important; + } + .mr-sm-n3, + .mx-sm-n3 { + margin-right: -1rem !important; + } + .mb-sm-n3, + .my-sm-n3 { + margin-bottom: -1rem !important; + } + .ml-sm-n3, + .mx-sm-n3 { + margin-left: -1rem !important; + } + .m-sm-n4 { + margin: -1.5rem !important; + } + .mt-sm-n4, + .my-sm-n4 { + margin-top: -1.5rem !important; + } + .mr-sm-n4, + .mx-sm-n4 { + margin-right: -1.5rem !important; + } + .mb-sm-n4, + .my-sm-n4 { + margin-bottom: -1.5rem !important; + } + .ml-sm-n4, + .mx-sm-n4 { + margin-left: -1.5rem !important; + } + .m-sm-n5 { + margin: -3rem !important; + } + .mt-sm-n5, + .my-sm-n5 { + margin-top: -3rem !important; + } + .mr-sm-n5, + .mx-sm-n5 { + margin-right: -3rem !important; + } + .mb-sm-n5, + .my-sm-n5 { + margin-bottom: -3rem !important; + } + .ml-sm-n5, + .mx-sm-n5 { + margin-left: -3rem !important; + } + .m-sm-auto { + margin: auto !important; + } + .mt-sm-auto, + .my-sm-auto { + margin-top: auto !important; + } + .mr-sm-auto, + .mx-sm-auto { + margin-right: auto !important; + } + .mb-sm-auto, + .my-sm-auto { + margin-bottom: auto !important; + } + .ml-sm-auto, + .mx-sm-auto { + margin-left: auto !important; + } +} + +@media (min-width: 768px) { + .m-md-0 { + margin: 0 !important; + } + .mt-md-0, + .my-md-0 { + margin-top: 0 !important; + } + .mr-md-0, + .mx-md-0 { + margin-right: 0 !important; + } + .mb-md-0, + .my-md-0 { + margin-bottom: 0 !important; + } + .ml-md-0, + .mx-md-0 { + margin-left: 0 !important; + } + .m-md-1 { + margin: 0.25rem !important; + } + .mt-md-1, + .my-md-1 { + margin-top: 0.25rem !important; + } + .mr-md-1, + .mx-md-1 { + margin-right: 0.25rem !important; + } + .mb-md-1, + .my-md-1 { + margin-bottom: 0.25rem !important; + } + .ml-md-1, + .mx-md-1 { + margin-left: 0.25rem !important; + } + .m-md-2 { + margin: 0.5rem !important; + } + .mt-md-2, + .my-md-2 { + margin-top: 0.5rem !important; + } + .mr-md-2, + .mx-md-2 { + margin-right: 0.5rem !important; + } + .mb-md-2, + .my-md-2 { + margin-bottom: 0.5rem !important; + } + .ml-md-2, + .mx-md-2 { + margin-left: 0.5rem !important; + } + .m-md-3 { + margin: 1rem !important; + } + .mt-md-3, + .my-md-3 { + margin-top: 1rem !important; + } + .mr-md-3, + .mx-md-3 { + margin-right: 1rem !important; + } + .mb-md-3, + .my-md-3 { + margin-bottom: 1rem !important; + } + .ml-md-3, + .mx-md-3 { + margin-left: 1rem !important; + } + .m-md-4 { + margin: 1.5rem !important; + } + .mt-md-4, + .my-md-4 { + margin-top: 1.5rem !important; + } + .mr-md-4, + .mx-md-4 { + margin-right: 1.5rem !important; + } + .mb-md-4, + .my-md-4 { + margin-bottom: 1.5rem !important; + } + .ml-md-4, + .mx-md-4 { + margin-left: 1.5rem !important; + } + .m-md-5 { + margin: 3rem !important; + } + .mt-md-5, + .my-md-5 { + margin-top: 3rem !important; + } + .mr-md-5, + .mx-md-5 { + margin-right: 3rem !important; + } + .mb-md-5, + .my-md-5 { + margin-bottom: 3rem !important; + } + .ml-md-5, + .mx-md-5 { + margin-left: 3rem !important; + } + .p-md-0 { + padding: 0 !important; + } + .pt-md-0, + .py-md-0 { + padding-top: 0 !important; + } + .pr-md-0, + .px-md-0 { + padding-right: 0 !important; + } + .pb-md-0, + .py-md-0 { + padding-bottom: 0 !important; + } + .pl-md-0, + .px-md-0 { + padding-left: 0 !important; + } + .p-md-1 { + padding: 0.25rem !important; + } + .pt-md-1, + .py-md-1 { + padding-top: 0.25rem !important; + } + .pr-md-1, + .px-md-1 { + padding-right: 0.25rem !important; + } + .pb-md-1, + .py-md-1 { + padding-bottom: 0.25rem !important; + } + .pl-md-1, + .px-md-1 { + padding-left: 0.25rem !important; + } + .p-md-2 { + padding: 0.5rem !important; + } + .pt-md-2, + .py-md-2 { + padding-top: 0.5rem !important; + } + .pr-md-2, + .px-md-2 { + padding-right: 0.5rem !important; + } + .pb-md-2, + .py-md-2 { + padding-bottom: 0.5rem !important; + } + .pl-md-2, + .px-md-2 { + padding-left: 0.5rem !important; + } + .p-md-3 { + padding: 1rem !important; + } + .pt-md-3, + .py-md-3 { + padding-top: 1rem !important; + } + .pr-md-3, + .px-md-3 { + padding-right: 1rem !important; + } + .pb-md-3, + .py-md-3 { + padding-bottom: 1rem !important; + } + .pl-md-3, + .px-md-3 { + padding-left: 1rem !important; + } + .p-md-4 { + padding: 1.5rem !important; + } + .pt-md-4, + .py-md-4 { + padding-top: 1.5rem !important; + } + .pr-md-4, + .px-md-4 { + padding-right: 1.5rem !important; + } + .pb-md-4, + .py-md-4 { + padding-bottom: 1.5rem !important; + } + .pl-md-4, + .px-md-4 { + padding-left: 1.5rem !important; + } + .p-md-5 { + padding: 3rem !important; + } + .pt-md-5, + .py-md-5 { + padding-top: 3rem !important; + } + .pr-md-5, + .px-md-5 { + padding-right: 3rem !important; + } + .pb-md-5, + .py-md-5 { + padding-bottom: 3rem !important; + } + .pl-md-5, + .px-md-5 { + padding-left: 3rem !important; + } + .m-md-n1 { + margin: -0.25rem !important; + } + .mt-md-n1, + .my-md-n1 { + margin-top: -0.25rem !important; + } + .mr-md-n1, + .mx-md-n1 { + margin-right: -0.25rem !important; + } + .mb-md-n1, + .my-md-n1 { + margin-bottom: -0.25rem !important; + } + .ml-md-n1, + .mx-md-n1 { + margin-left: -0.25rem !important; + } + .m-md-n2 { + margin: -0.5rem !important; + } + .mt-md-n2, + .my-md-n2 { + margin-top: -0.5rem !important; + } + .mr-md-n2, + .mx-md-n2 { + margin-right: -0.5rem !important; + } + .mb-md-n2, + .my-md-n2 { + margin-bottom: -0.5rem !important; + } + .ml-md-n2, + .mx-md-n2 { + margin-left: -0.5rem !important; + } + .m-md-n3 { + margin: -1rem !important; + } + .mt-md-n3, + .my-md-n3 { + margin-top: -1rem !important; + } + .mr-md-n3, + .mx-md-n3 { + margin-right: -1rem !important; + } + .mb-md-n3, + .my-md-n3 { + margin-bottom: -1rem !important; + } + .ml-md-n3, + .mx-md-n3 { + margin-left: -1rem !important; + } + .m-md-n4 { + margin: -1.5rem !important; + } + .mt-md-n4, + .my-md-n4 { + margin-top: -1.5rem !important; + } + .mr-md-n4, + .mx-md-n4 { + margin-right: -1.5rem !important; + } + .mb-md-n4, + .my-md-n4 { + margin-bottom: -1.5rem !important; + } + .ml-md-n4, + .mx-md-n4 { + margin-left: -1.5rem !important; + } + .m-md-n5 { + margin: -3rem !important; + } + .mt-md-n5, + .my-md-n5 { + margin-top: -3rem !important; + } + .mr-md-n5, + .mx-md-n5 { + margin-right: -3rem !important; + } + .mb-md-n5, + .my-md-n5 { + margin-bottom: -3rem !important; + } + .ml-md-n5, + .mx-md-n5 { + margin-left: -3rem !important; + } + .m-md-auto { + margin: auto !important; + } + .mt-md-auto, + .my-md-auto { + margin-top: auto !important; + } + .mr-md-auto, + .mx-md-auto { + margin-right: auto !important; + } + .mb-md-auto, + .my-md-auto { + margin-bottom: auto !important; + } + .ml-md-auto, + .mx-md-auto { + margin-left: auto !important; + } +} + +@media (min-width: 992px) { + .m-lg-0 { + margin: 0 !important; + } + .mt-lg-0, + .my-lg-0 { + margin-top: 0 !important; + } + .mr-lg-0, + .mx-lg-0 { + margin-right: 0 !important; + } + .mb-lg-0, + .my-lg-0 { + margin-bottom: 0 !important; + } + .ml-lg-0, + .mx-lg-0 { + margin-left: 0 !important; + } + .m-lg-1 { + margin: 0.25rem !important; + } + .mt-lg-1, + .my-lg-1 { + margin-top: 0.25rem !important; + } + .mr-lg-1, + .mx-lg-1 { + margin-right: 0.25rem !important; + } + .mb-lg-1, + .my-lg-1 { + margin-bottom: 0.25rem !important; + } + .ml-lg-1, + .mx-lg-1 { + margin-left: 0.25rem !important; + } + .m-lg-2 { + margin: 0.5rem !important; + } + .mt-lg-2, + .my-lg-2 { + margin-top: 0.5rem !important; + } + .mr-lg-2, + .mx-lg-2 { + margin-right: 0.5rem !important; + } + .mb-lg-2, + .my-lg-2 { + margin-bottom: 0.5rem !important; + } + .ml-lg-2, + .mx-lg-2 { + margin-left: 0.5rem !important; + } + .m-lg-3 { + margin: 1rem !important; + } + .mt-lg-3, + .my-lg-3 { + margin-top: 1rem !important; + } + .mr-lg-3, + .mx-lg-3 { + margin-right: 1rem !important; + } + .mb-lg-3, + .my-lg-3 { + margin-bottom: 1rem !important; + } + .ml-lg-3, + .mx-lg-3 { + margin-left: 1rem !important; + } + .m-lg-4 { + margin: 1.5rem !important; + } + .mt-lg-4, + .my-lg-4 { + margin-top: 1.5rem !important; + } + .mr-lg-4, + .mx-lg-4 { + margin-right: 1.5rem !important; + } + .mb-lg-4, + .my-lg-4 { + margin-bottom: 1.5rem !important; + } + .ml-lg-4, + .mx-lg-4 { + margin-left: 1.5rem !important; + } + .m-lg-5 { + margin: 3rem !important; + } + .mt-lg-5, + .my-lg-5 { + margin-top: 3rem !important; + } + .mr-lg-5, + .mx-lg-5 { + margin-right: 3rem !important; + } + .mb-lg-5, + .my-lg-5 { + margin-bottom: 3rem !important; + } + .ml-lg-5, + .mx-lg-5 { + margin-left: 3rem !important; + } + .p-lg-0 { + padding: 0 !important; + } + .pt-lg-0, + .py-lg-0 { + padding-top: 0 !important; + } + .pr-lg-0, + .px-lg-0 { + padding-right: 0 !important; + } + .pb-lg-0, + .py-lg-0 { + padding-bottom: 0 !important; + } + .pl-lg-0, + .px-lg-0 { + padding-left: 0 !important; + } + .p-lg-1 { + padding: 0.25rem !important; + } + .pt-lg-1, + .py-lg-1 { + padding-top: 0.25rem !important; + } + .pr-lg-1, + .px-lg-1 { + padding-right: 0.25rem !important; + } + .pb-lg-1, + .py-lg-1 { + padding-bottom: 0.25rem !important; + } + .pl-lg-1, + .px-lg-1 { + padding-left: 0.25rem !important; + } + .p-lg-2 { + padding: 0.5rem !important; + } + .pt-lg-2, + .py-lg-2 { + padding-top: 0.5rem !important; + } + .pr-lg-2, + .px-lg-2 { + padding-right: 0.5rem !important; + } + .pb-lg-2, + .py-lg-2 { + padding-bottom: 0.5rem !important; + } + .pl-lg-2, + .px-lg-2 { + padding-left: 0.5rem !important; + } + .p-lg-3 { + padding: 1rem !important; + } + .pt-lg-3, + .py-lg-3 { + padding-top: 1rem !important; + } + .pr-lg-3, + .px-lg-3 { + padding-right: 1rem !important; + } + .pb-lg-3, + .py-lg-3 { + padding-bottom: 1rem !important; + } + .pl-lg-3, + .px-lg-3 { + padding-left: 1rem !important; + } + .p-lg-4 { + padding: 1.5rem !important; + } + .pt-lg-4, + .py-lg-4 { + padding-top: 1.5rem !important; + } + .pr-lg-4, + .px-lg-4 { + padding-right: 1.5rem !important; + } + .pb-lg-4, + .py-lg-4 { + padding-bottom: 1.5rem !important; + } + .pl-lg-4, + .px-lg-4 { + padding-left: 1.5rem !important; + } + .p-lg-5 { + padding: 3rem !important; + } + .pt-lg-5, + .py-lg-5 { + padding-top: 3rem !important; + } + .pr-lg-5, + .px-lg-5 { + padding-right: 3rem !important; + } + .pb-lg-5, + .py-lg-5 { + padding-bottom: 3rem !important; + } + .pl-lg-5, + .px-lg-5 { + padding-left: 3rem !important; + } + .m-lg-n1 { + margin: -0.25rem !important; + } + .mt-lg-n1, + .my-lg-n1 { + margin-top: -0.25rem !important; + } + .mr-lg-n1, + .mx-lg-n1 { + margin-right: -0.25rem !important; + } + .mb-lg-n1, + .my-lg-n1 { + margin-bottom: -0.25rem !important; + } + .ml-lg-n1, + .mx-lg-n1 { + margin-left: -0.25rem !important; + } + .m-lg-n2 { + margin: -0.5rem !important; + } + .mt-lg-n2, + .my-lg-n2 { + margin-top: -0.5rem !important; + } + .mr-lg-n2, + .mx-lg-n2 { + margin-right: -0.5rem !important; + } + .mb-lg-n2, + .my-lg-n2 { + margin-bottom: -0.5rem !important; + } + .ml-lg-n2, + .mx-lg-n2 { + margin-left: -0.5rem !important; + } + .m-lg-n3 { + margin: -1rem !important; + } + .mt-lg-n3, + .my-lg-n3 { + margin-top: -1rem !important; + } + .mr-lg-n3, + .mx-lg-n3 { + margin-right: -1rem !important; + } + .mb-lg-n3, + .my-lg-n3 { + margin-bottom: -1rem !important; + } + .ml-lg-n3, + .mx-lg-n3 { + margin-left: -1rem !important; + } + .m-lg-n4 { + margin: -1.5rem !important; + } + .mt-lg-n4, + .my-lg-n4 { + margin-top: -1.5rem !important; + } + .mr-lg-n4, + .mx-lg-n4 { + margin-right: -1.5rem !important; + } + .mb-lg-n4, + .my-lg-n4 { + margin-bottom: -1.5rem !important; + } + .ml-lg-n4, + .mx-lg-n4 { + margin-left: -1.5rem !important; + } + .m-lg-n5 { + margin: -3rem !important; + } + .mt-lg-n5, + .my-lg-n5 { + margin-top: -3rem !important; + } + .mr-lg-n5, + .mx-lg-n5 { + margin-right: -3rem !important; + } + .mb-lg-n5, + .my-lg-n5 { + margin-bottom: -3rem !important; + } + .ml-lg-n5, + .mx-lg-n5 { + margin-left: -3rem !important; + } + .m-lg-auto { + margin: auto !important; + } + .mt-lg-auto, + .my-lg-auto { + margin-top: auto !important; + } + .mr-lg-auto, + .mx-lg-auto { + margin-right: auto !important; + } + .mb-lg-auto, + .my-lg-auto { + margin-bottom: auto !important; + } + .ml-lg-auto, + .mx-lg-auto { + margin-left: auto !important; + } +} + +@media (min-width: 1200px) { + .m-xl-0 { + margin: 0 !important; + } + .mt-xl-0, + .my-xl-0 { + margin-top: 0 !important; + } + .mr-xl-0, + .mx-xl-0 { + margin-right: 0 !important; + } + .mb-xl-0, + .my-xl-0 { + margin-bottom: 0 !important; + } + .ml-xl-0, + .mx-xl-0 { + margin-left: 0 !important; + } + .m-xl-1 { + margin: 0.25rem !important; + } + .mt-xl-1, + .my-xl-1 { + margin-top: 0.25rem !important; + } + .mr-xl-1, + .mx-xl-1 { + margin-right: 0.25rem !important; + } + .mb-xl-1, + .my-xl-1 { + margin-bottom: 0.25rem !important; + } + .ml-xl-1, + .mx-xl-1 { + margin-left: 0.25rem !important; + } + .m-xl-2 { + margin: 0.5rem !important; + } + .mt-xl-2, + .my-xl-2 { + margin-top: 0.5rem !important; + } + .mr-xl-2, + .mx-xl-2 { + margin-right: 0.5rem !important; + } + .mb-xl-2, + .my-xl-2 { + margin-bottom: 0.5rem !important; + } + .ml-xl-2, + .mx-xl-2 { + margin-left: 0.5rem !important; + } + .m-xl-3 { + margin: 1rem !important; + } + .mt-xl-3, + .my-xl-3 { + margin-top: 1rem !important; + } + .mr-xl-3, + .mx-xl-3 { + margin-right: 1rem !important; + } + .mb-xl-3, + .my-xl-3 { + margin-bottom: 1rem !important; + } + .ml-xl-3, + .mx-xl-3 { + margin-left: 1rem !important; + } + .m-xl-4 { + margin: 1.5rem !important; + } + .mt-xl-4, + .my-xl-4 { + margin-top: 1.5rem !important; + } + .mr-xl-4, + .mx-xl-4 { + margin-right: 1.5rem !important; + } + .mb-xl-4, + .my-xl-4 { + margin-bottom: 1.5rem !important; + } + .ml-xl-4, + .mx-xl-4 { + margin-left: 1.5rem !important; + } + .m-xl-5 { + margin: 3rem !important; + } + .mt-xl-5, + .my-xl-5 { + margin-top: 3rem !important; + } + .mr-xl-5, + .mx-xl-5 { + margin-right: 3rem !important; + } + .mb-xl-5, + .my-xl-5 { + margin-bottom: 3rem !important; + } + .ml-xl-5, + .mx-xl-5 { + margin-left: 3rem !important; + } + .p-xl-0 { + padding: 0 !important; + } + .pt-xl-0, + .py-xl-0 { + padding-top: 0 !important; + } + .pr-xl-0, + .px-xl-0 { + padding-right: 0 !important; + } + .pb-xl-0, + .py-xl-0 { + padding-bottom: 0 !important; + } + .pl-xl-0, + .px-xl-0 { + padding-left: 0 !important; + } + .p-xl-1 { + padding: 0.25rem !important; + } + .pt-xl-1, + .py-xl-1 { + padding-top: 0.25rem !important; + } + .pr-xl-1, + .px-xl-1 { + padding-right: 0.25rem !important; + } + .pb-xl-1, + .py-xl-1 { + padding-bottom: 0.25rem !important; + } + .pl-xl-1, + .px-xl-1 { + padding-left: 0.25rem !important; + } + .p-xl-2 { + padding: 0.5rem !important; + } + .pt-xl-2, + .py-xl-2 { + padding-top: 0.5rem !important; + } + .pr-xl-2, + .px-xl-2 { + padding-right: 0.5rem !important; + } + .pb-xl-2, + .py-xl-2 { + padding-bottom: 0.5rem !important; + } + .pl-xl-2, + .px-xl-2 { + padding-left: 0.5rem !important; + } + .p-xl-3 { + padding: 1rem !important; + } + .pt-xl-3, + .py-xl-3 { + padding-top: 1rem !important; + } + .pr-xl-3, + .px-xl-3 { + padding-right: 1rem !important; + } + .pb-xl-3, + .py-xl-3 { + padding-bottom: 1rem !important; + } + .pl-xl-3, + .px-xl-3 { + padding-left: 1rem !important; + } + .p-xl-4 { + padding: 1.5rem !important; + } + .pt-xl-4, + .py-xl-4 { + padding-top: 1.5rem !important; + } + .pr-xl-4, + .px-xl-4 { + padding-right: 1.5rem !important; + } + .pb-xl-4, + .py-xl-4 { + padding-bottom: 1.5rem !important; + } + .pl-xl-4, + .px-xl-4 { + padding-left: 1.5rem !important; + } + .p-xl-5 { + padding: 3rem !important; + } + .pt-xl-5, + .py-xl-5 { + padding-top: 3rem !important; + } + .pr-xl-5, + .px-xl-5 { + padding-right: 3rem !important; + } + .pb-xl-5, + .py-xl-5 { + padding-bottom: 3rem !important; + } + .pl-xl-5, + .px-xl-5 { + padding-left: 3rem !important; + } + .m-xl-n1 { + margin: -0.25rem !important; + } + .mt-xl-n1, + .my-xl-n1 { + margin-top: -0.25rem !important; + } + .mr-xl-n1, + .mx-xl-n1 { + margin-right: -0.25rem !important; + } + .mb-xl-n1, + .my-xl-n1 { + margin-bottom: -0.25rem !important; + } + .ml-xl-n1, + .mx-xl-n1 { + margin-left: -0.25rem !important; + } + .m-xl-n2 { + margin: -0.5rem !important; + } + .mt-xl-n2, + .my-xl-n2 { + margin-top: -0.5rem !important; + } + .mr-xl-n2, + .mx-xl-n2 { + margin-right: -0.5rem !important; + } + .mb-xl-n2, + .my-xl-n2 { + margin-bottom: -0.5rem !important; + } + .ml-xl-n2, + .mx-xl-n2 { + margin-left: -0.5rem !important; + } + .m-xl-n3 { + margin: -1rem !important; + } + .mt-xl-n3, + .my-xl-n3 { + margin-top: -1rem !important; + } + .mr-xl-n3, + .mx-xl-n3 { + margin-right: -1rem !important; + } + .mb-xl-n3, + .my-xl-n3 { + margin-bottom: -1rem !important; + } + .ml-xl-n3, + .mx-xl-n3 { + margin-left: -1rem !important; + } + .m-xl-n4 { + margin: -1.5rem !important; + } + .mt-xl-n4, + .my-xl-n4 { + margin-top: -1.5rem !important; + } + .mr-xl-n4, + .mx-xl-n4 { + margin-right: -1.5rem !important; + } + .mb-xl-n4, + .my-xl-n4 { + margin-bottom: -1.5rem !important; + } + .ml-xl-n4, + .mx-xl-n4 { + margin-left: -1.5rem !important; + } + .m-xl-n5 { + margin: -3rem !important; + } + .mt-xl-n5, + .my-xl-n5 { + margin-top: -3rem !important; + } + .mr-xl-n5, + .mx-xl-n5 { + margin-right: -3rem !important; + } + .mb-xl-n5, + .my-xl-n5 { + margin-bottom: -3rem !important; + } + .ml-xl-n5, + .mx-xl-n5 { + margin-left: -3rem !important; + } + .m-xl-auto { + margin: auto !important; + } + .mt-xl-auto, + .my-xl-auto { + margin-top: auto !important; + } + .mr-xl-auto, + .mx-xl-auto { + margin-right: auto !important; + } + .mb-xl-auto, + .my-xl-auto { + margin-bottom: auto !important; + } + .ml-xl-auto, + .mx-xl-auto { + margin-left: auto !important; + } +} +/*# sourceMappingURL=bootstrap-grid.css.map */ \ No newline at end of file diff --git a/css/bootstrap-grid.css.map b/css/bootstrap-grid.css.map new file mode 100644 index 000000000..8661e3e35 --- /dev/null +++ b/css/bootstrap-grid.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../scss/bootstrap-grid.scss","bootstrap-grid.css","../../scss/_grid.scss","../../scss/mixins/_grid.scss","../../scss/mixins/_breakpoints.scss","../../scss/_variables.scss","../../scss/mixins/_grid-framework.scss","../../scss/utilities/_display.scss","../../scss/utilities/_flex.scss","../../scss/utilities/_spacing.scss"],"names":[],"mappings":"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Z;ELw1BlB;EKv1BM;IAAwB,iBADZ;IACY,QADZ;EL21BlB;EK11BM;IAAwB,iBADZ;IACY,QADZ;EL81BlB;EK71BM;IAAwB,iBADZ;IACY,QADZ;ELi2BlB;EKh2BM;IAAwB,iBADZ;IACY,QADZ;ELo2BlB;EKn2BM;IAAwB,iBADZ;IACY,QADZ;ELu2BlB;EKt2BM;IAAwB,iBADZ;IACY,QADZ;EL02BlB;EKz2BM;IAAwB,iBADZ;IACY,QADZ;EL62BlB;EK52BM;IAAwB,kBADZ;IACY,SADZ;ELg3BlB;EK/2BM;IAAwB,kBADZ;IACY,SADZ;ELm3BlB;EKl3BM;IAAwB,kBADZ;IACY,SADZ;ELs3BlB;EK/2BQ;IHRR,cAA4B;EF03B5B;EKl3BQ;IHRR,sBAA8C;EF63B9C;EKr3BQ;IHRR,uBAA8C;EFg4B9C;EKx3BQ;IHRR,gBAA8C;EFm4B9C;EK33BQ;IHRR,uBAA8C;EFs4B9C;EK93BQ;IHRR,uBAA8C;EFy4B9C;EKj4BQ;IHRR,gBAA8C;EF44B9C;EKp4BQ;IHRR,uBAA8C;EF+4B9C;EKv4BQ;IHRR,uBAA8C;EFk5B9C;EK14BQ;IHRR,gBAA8C;EFq5B9C;EK74BQ;IHRR,uBAA8C;EFw5B9C;EKh5BQ;IHRR,uBAA8C;EF25B9C;AACF;;AMx8BM;EAAwB,wBAA0B;AN48BxD;;AM58BM;EAAwB,0BAA0B;ANg9BxD;;AMh9BM;EAAwB,gCAA0B;ANo9BxD;;AMp9BM;EAAwB,yBAA0B;ANw9BxD;;AMx9BM;EAAwB,yBAA0B;AN49BxD;;AM59BM;EAAwB,6BAA0B;ANg+BxD;;AMh+BM;EAAwB,8BAA0B;ANo+BxD;;AMp+BM;EAAwB,+BAA0B;EAA1B,wBAA0B;ANw+BxD;;AMx+BM;EAAwB,sCAA0B;EAA1B,+BAA0B;AN4+BxD;;AG37BI;EGjDE;IAAwB,wBAA0B;ENi/BtD;EMj/BI;IAAwB,0BAA0B;ENo/BtD;EMp/BI;IAAwB,gCAA0B;ENu/BtD;EMv/BI;IAAwB,yBAA0B;EN0/BtD;EM1/BI;IAAwB,yBAA0B;EN6/BtD;EM7/BI;IAAwB,6BAA0B;ENggCtD;EMhgCI;IAAwB,8BAA0B;ENmgCtD;EM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A0C;ARurDpD;;AQrrDQ;;EAEE,yBAAsC;ARwrDhD;;AQvsDQ;EAAgC,0BAA4B;AR2sDpE;;AQ1sDQ;;EAEE,8BAAoC;AR6sD9C;;AQ3sDQ;;EAEE,gCAAwC;AR8sDlD;;AQ5sDQ;;EAEE,iCAA0C;AR+sDpD;;AQ7sDQ;;EAEE,+BAAsC;ARgtDhD;;AQ/tDQ;EAAgC,yBAA4B;ARmuDpE;;AQluDQ;;EAEE,6BAAoC;ARquD9C;;AQnuDQ;;EAEE,+BAAwC;ARsuDlD;;AQpuDQ;;EAEE,gCAA0C;ARuuDpD;;AQruDQ;;EAEE,8BAAsC;ARwuDhD;;AQvvDQ;EAAgC,uBAA4B;AR2vDpE;;AQ1vDQ;;EAEE,2BAAoC;AR6vD9C;;AQ3vDQ;;EAEE,6BAAwC;AR8vDlD;;AQ5vDQ;;EAEE,8BAA0C;AR+vDpD;;AQ7vDQ;;EAEE,4BAAsC;ARgwDhD;;AQ/wDQ;EAAgC,yBAA4B;ARmxDpE;;AQlxDQ;;EAEE,6BAAoC;ARqxD9C;;AQnxDQ;;EAEE,+BAAwC;ARsxDlD;;AQpxDQ;;EAEE,gCAA0C;ARuxDpD;;AQrxDQ;;EAEE,8BAAsC;ARwxDhD;;AQvyDQ;EAAgC,uBAA4B;AR2yDpE;;AQ1yDQ;;EAEE,2BAAoC;AR6yD9C;;AQ3yDQ;;EAEE,6BAAwC;AR8yDlD;;AQ5yDQ;;EAEE,8BAA0C;AR+yDpD;;AQ7yDQ;;EAEE,4BAAsC;ARgzDhD;;AQ/zDQ;EAAgC,qBAA4B;ARm0DpE;;AQl0DQ;;EAEE,yBAAoC;ARq0D9C;;AQn0DQ;;EAEE,2BAAwC;ARs0DlD;;AQp0DQ;;EAEE,4BAA0C;ARu0DpD;;AQr0DQ;;EAEE,0BAAsC;ARw0DhD;;AQv1DQ;EAAgC,2BAA4B;AR21DpE;;AQ11DQ;;EAEE,+BAAoC;AR61D9C;;AQ31DQ;;EAEE,iCAAwC;AR81DlD;;AQ51DQ;;EAEE,kCAA0C;AR+1DpD;;AQ71DQ;;EAEE,gCAAsC;ARg2DhD;;AQ/2DQ;EAAgC,0BAA4B;ARm3DpE;;AQl3DQ;;EAEE,8BAAoC;ARq3D9C;;AQn3DQ;;EAEE,gCAAwC;ARs3DlD;;AQp3DQ;;EAEE,iCAA0C;ARu3DpD;;AQr3DQ;;EAEE,+BAAsC;ARw3DhD;;AQv4DQ;EAAgC,wBAA4B;AR24DpE;;AQ14DQ;;EAEE,4BAAoC;AR64D9C;;AQ34DQ;;EAEE,8BAAwC;AR84DlD;;AQ54DQ;;EAEE,+BAA0C;AR+4DpD;;AQ74DQ;;EAEE,6BAAsC;ARg5DhD;;AQ/5DQ;EAAgC,0BAA4B;ARm6DpE;;AQl6DQ;;EAEE,8BAAoC;ARq6D9C;;AQn6DQ;;EAEE,gCAAwC;ARs6DlD;;AQp6DQ;;EAEE,iCAA0C;ARu6DpD;;AQr6DQ;;EAEE,+BAAsC;ARw6DhD;;AQv7DQ;EAAgC,wBAA4B;AR27DpE;;AQ17DQ;;EAEE,4BAAoC;AR67D9C;;AQ37DQ;;EAEE,8BAAwC;AR87DlD;;AQ57DQ;;EAEE,+BAA0C;AR+7DpD;;AQ77DQ;;EAEE,6BAAsC;ARg8DhD;;AQx7DQ;EAAwB,2BAA2B;AR47D3D;;AQ37DQ;;EAEE,+BAA+B;AR87DzC;;AQ57DQ;;EAEE,iCAAiC;AR+7D3C;;AQ77DQ;;EAEE,kCAAkC;ARg8D5C;;AQ97DQ;;EAEE,gCAAgC;ARi8D1C;;AQh9DQ;EAAwB,0BAA2B;ARo9D3D;;AQn9DQ;;EAEE,8BAA+B;ARs9DzC;;AQp9DQ;;EAEE,gCAAiC;ARu9D3C;;AQr9DQ;;EAEE,iCAAkC;ARw9D5C;;AQt9DQ;;EAEE,+BAAgC;ARy9D1C;;AQx+DQ;EAAwB,wBAA2B;AR4+D3D;;AQ3+DQ;;EAEE,4BAA+B;AR8+DzC;;AQ5+DQ;;EAEE,8BAAiC;AR++D3C;;AQ7+DQ;;EAEE,+BAAkC;ARg/D5C;;AQ9+DQ;;EAEE,6BAAgC;ARi/D1C;;AQhgEQ;EAAwB,0BAA2B;ARogE3D;;AQngEQ;;EAEE,8BAA+B;ARsgEzC;;AQpgEQ;;EAEE,gCAAiC;ARugE3C;;AQrgEQ;;EAEE,iCAAkC;ARwgE5C;;AQtgEQ;;EAEE,+BAAgC;ARygE1C;;AQxhEQ;EAAwB,wBAA2B;AR4hE3D;;AQ3hEQ;;EAEE,4BAA+B;AR8hEzC;;AQ5hEQ;;EAEE,8BAAiC;AR+hE3C;;AQ7hEQ;;EAEE,+BAAkC;ARgiE5C;;AQ9hEQ;;EAEE,6BAAgC;ARiiE1C;;AQ3hEI;EAAmB,uBAAuB;AR+hE9C;;AQ9hEI;;EAEE,2BAA2B;ARiiEjC;;AQ/hEI;;EAEE,6BAA6B;ARkiEnC;;AQhiEI;;EAEE,8BAA8B;ARmiEpC;;AQjiEI;;EAEE,4BAA4B;ARoiElC;;AG7iEI;EKlDI;IAAgC,oBAA4B;ERomElE;EQnmEM;;IAEE,wBAAoC;ERqmE5C;EQnmEM;;IAEE,0BAAwC;ERqmEhD;EQnmEM;;IAEE,2BAA0C;ERqmElD;EQnmEM;;IAEE,yBAAsC;ERqmE9C;EQpnEM;IAAgC,0BAA4B;ERunElE;EQtnEM;;IAEE,8BAAoC;ERwnE5C;EQtnEM;;IAEE,gCAAwC;ERwnEhD;EQtnEM;;IAEE,iCAA0C;ERwnElD;EQtnEM;;IAEE,+BAAsC;ERwnE9C;EQvoEM;IAAgC,yBAA4B;ER0oElE;EQzoEM;;IAEE,6BAAoC;ER2oE5C;EQzoEM;;IAEE,+BAAwC;ER2oEhD;EQzoEM;;IAEE,gCAA0C;ER2oElD;EQzoEM;;IAEE,8BAAsC;ER2oE9C;EQ1pEM;IAAgC,uBAA4B;ER6pElE;EQ5pEM;;IAEE,2BAAoC;ER8pE5C;EQ5pEM;;IAEE,6BAAwC;ER8pEhD;EQ5pEM;;IAEE,8BAA0C;ER8pElD;EQ5pEM;;IAEE,4BAAsC;ER8pE9C;EQ7qEM;IAAgC,yBAA4B;ERgrElE;EQ/qEM;;IAEE,6BAAoC;ERirE5C;EQ/qEM;;IAEE,+BAAwC;ERirEhD;EQ/qEM;;IAEE,gCAA0C;ERirElD;EQ/qEM;;IAEE,8BAAsC;ERirE9C;EQhsEM;IAAgC,uBAA4B;ERmsElE;EQlsEM;;IAEE,2BAAoC;ERosE5C;EQlsEM;;IAEE,6BAAwC;ERosEhD;EQlsEM;;IAEE,8BAA0C;ERosElD;EQlsEM;;IAEE,4BAAsC;ERosE9C;EQntEM;IAAgC,qBAA4B;ERstElE;EQrtEM;;IAEE,yBAAoC;ERutE5C;EQrtEM;;IAEE,2BAAwC;ERutEhD;EQrtEM;;IAEE,4BAA0C;ERutElD;EQrtEM;;IAEE,0BAAsC;ERutE9C;EQtuEM;IAAgC,2BAA4B;ERyuElE;EQxuEM;;IAEE,+BAAoC;ER0uE5C;EQxuEM;;IAEE,iCAAwC;ER0uEhD;EQxuEM;;IAEE,kCAA0C;ER0uElD;EQxuEM;;IAEE,gCAAsC;ER0uE9C;EQzvEM;IAAgC,0BAA4B;ER4vElE;EQ3vEM;;IAEE,8BAAoC;ER6vE5C;EQ3vEM;;IAEE,gCAAwC;ER6vEhD;EQ3vEM;;IAEE,iCAA0C;ER6vElD;EQ3vEM;;IAEE,+BAAsC;ER6vE9C;EQ5wEM;IAAgC,wBAA4B;ER+wElE;EQ9wEM;;IAEE,4BAAoC;ERgxE5C;EQ9wEM;;IAEE,8BAAwC;ERgxEhD;EQ9wEM;;IAEE,+BAA0C;ERgxElD;EQ9wEM;;IAEE,6BAAsC;ERgxE9C;EQ/xEM;IAAgC,0BAA4B;ERkyElE;EQjyEM;;IAEE,8BAAoC;ERmyE5C;EQjyEM;;IAEE,gCAAwC;ERmyEhD;EQjyEM;;IAEE,iCAA0C;ERmyElD;EQjyEM;;IAEE,+BAAsC;ERmyE9C;EQlzEM;IAAgC,wBAA4B;ERqzElE;EQpzEM;;IAEE,4BAAoC;ERszE5C;EQpzEM;;IAEE,8BAAwC;ERszEhD;EQpzEM;;IAEE,+BAA0C;ERszElD;EQpzEM;;IAEE,6BAAsC;ERszE9C;EQ9yEM;IAAwB,2BAA2B;ERizEzD;EQhzEM;;IAEE,+BAA+B;ERkzEvC;EQhzEM;;IAEE,iCAAiC;ERkzEzC;EQhzEM;;IAEE,kCAAkC;ERkzE1C;EQhzEM;;IAEE,gCAAgC;ERkzExC;EQj0EM;IAAwB,0BAA2B;ERo0EzD;EQn0EM;;IAEE,8BAA+B;ERq0EvC;EQn0EM;;IAEE,gCAAiC;ERq0EzC;EQn0EM;;IAEE,iCAAkC;ERq0E1C;EQn0EM;;IAEE,+BAAgC;ERq0ExC;EQp1EM;IAAwB,wBAA2B;ERu1EzD;EQt1EM;;IAEE,4BAA+B;ERw1EvC;EQt1EM;;IAEE,8BAAiC;ERw1EzC;EQt1EM;;IAEE,+BAAkC;ERw1E1C;EQt1EM;;IAEE,6BAAgC;ERw1ExC;EQv2EM;IAAwB,0BAA2B;ER02EzD;EQz2EM;;IAEE,8BAA+B;ER22EvC;EQz2EM;;IAEE,gCAAiC;ER22EzC;EQz2EM;;IAEE,iCAAkC;ER22E1C;EQz2EM;;IAEE,+BAAgC;ER22ExC;EQ13EM;IAAwB,wBAA2B;ER63EzD;EQ53EM;;IAEE,4BAA+B;ER83EvC;EQ53EM;;IAEE,8BAAiC;ER83EzC;EQ53EM;;IAEE,+BAAkC;ER83E1C;EQ53EM;;IAEE,6BAAgC;ER83ExC;EQx3EE;IAAmB,uBAAuB;ER23E5C;EQ13EE;;IAEE,2BAA2B;ER43E/B;EQ13EE;;IAEE,6BAA6B;ER43EjC;EQ13EE;;IAEE,8BAA8B;ER43ElC;EQ13EE;;IAEE,4BAA4B;ER43EhC;AACF;;AGt4EI;EKlDI;IAAgC,oBAA4B;ER67ElE;EQ57EM;;IAEE,wBAAoC;ER87E5C;EQ57EM;;IAEE,0BAAwC;ER87EhD;EQ57EM;;IAEE,2BAA0C;ER87ElD;EQ57EM;;IAEE,yBAAsC;ER87E9C;EQ78EM;IAAgC,0BAA4B;ERg9ElE;EQ/8EM;;IAEE,8BAAoC;ERi9E5C;EQ/8EM;;IAEE,gCAAwC;ERi9EhD;EQ/8EM;;IAEE,iCAA0C;ERi9ElD;EQ/8EM;;IAEE,+BAAsC;ERi9E9C;EQh+EM;IAAgC,yBAA4B;ERm+ElE;EQl+EM;;IAEE,6BAAoC;ERo+E5C;EQl+EM;;IAEE,+BAAwC;ERo+EhD;EQl+EM;;IAEE,gCAA0C;ERo+ElD;EQl+EM;;IAEE,8BAAsC;ERo+E9C;EQn/EM;IAAgC,uBAA4B;ERs/ElE;EQr/EM;;IAEE,2BAAoC;ERu/E5C;EQr/EM;;IAEE,6BAAwC;ERu/EhD;EQr/EM;;IAEE,8BAA0C;ERu/ElD;EQr/EM;;IAEE,4BAAsC;ERu/E9C;EQtgFM;IAAgC,yBAA4B;ERygFlE;EQxgFM;;IAEE,6BAAoC;ER0gF5C;EQxgFM;;IAEE,+BAAwC;ER0gFhD;EQxgFM;;IAEE,gCAA0C;ER0gFlD;EQxgFM;;IAEE,8BAAsC;ER0gF9C;EQzhFM;IAAgC,uBAA4B;ER4hFlE;EQ3hFM;;IAEE,2BAAoC;ER6hF5C;EQ3hFM;;IAEE,6BAAwC;ER6hFhD;EQ3hFM;;IAEE,8BAA0C;ER6hFlD;EQ3hFM;;IAEE,4BAAsC;ER6hF9C;EQ5iFM;IAAgC,qBAA4B;ER+iFlE;EQ9iFM;;IAEE,yBAAoC;ERgjF5C;EQ9iFM;;IAEE,2BAAwC;ERgjFhD;EQ9iFM;;IAEE,4BAA0C;ERgjFlD;EQ9iFM;;IAEE,0BAAsC;ERgjF9C;EQ/jFM;IAAgC,2BAA4B;ERkkFlE;EQjkFM;;IAEE,+BAAoC;ERmkF5C;EQjkFM;;IAEE,iCAAwC;ERmkFhD;EQjkFM;;IAEE,kCAA0C;ERmkFlD;EQjkFM;;IAEE,gCAAsC;ERmkF9C;EQllFM;IAAgC,0BAA4B;ERqlFlE;EQplFM;;IAEE,8BAAoC;ERslF5C;EQplFM;;IAEE,gCAAwC;ERslFhD;EQplFM;;IAEE,iCAA0C;ERslFlD;EQplFM;;IAEE,+BAAsC;ERslF9C;EQrmFM;IAAgC,wBAA4B;ERwmFlE;EQvmFM;;IAEE,4BAAoC;ERymF5C;EQvmFM;;IAEE,8BAAwC;ERymFhD;EQvmFM;;IAEE,+BAA0C;ERymFlD;EQvmFM;;IAEE,6BAAsC;ERymF9C;EQxnFM;IAAgC,0BAA4B;ER2nFlE;EQ1nFM;;IAEE,8BAAoC;ER4nF5C;EQ1nFM;;IAEE,gCAAwC;ER4nFhD;EQ1nFM;;IAEE,iCAA0C;ER4nFlD;EQ1nFM;;IAEE,+BAAsC;ER4nF9C;EQ3oFM;IAAgC,wBAA4B;ER8oFlE;EQ7oFM;;IAEE,4BAAoC;ER+oF5C;EQ7oFM;;IAEE,8BAAwC;ER+oFhD;EQ7oFM;;IAEE,+BAA0C;ER+oFlD;EQ7oFM;;IAEE,6BAAsC;ER+oF9C;EQvoFM;IAAwB,2BAA2B;ER0oFzD;EQzoFM;;IAEE,+BAA+B;ER2oFvC;EQzoFM;;IAEE,iCAAiC;ER2oFzC;EQzoFM;;IAEE,kCAAkC;ER2oF1C;EQzoFM;;IAEE,gCAAgC;ER2oFxC;EQ1pFM;IAAwB,0BAA2B;ER6pFzD;EQ5pFM;;IAEE,8BAA+B;ER8pFvC;EQ5pFM;;IAEE,gCAAiC;ER8pFzC;EQ5pFM;;IAEE,iCAAkC;ER8pF1C;EQ5pFM;;IAEE,+BAAgC;ER8pFxC;EQ7qFM;IAAwB,wBAA2B;ERgrFzD;EQ/qFM;;IAEE,4BAA+B;ERirFvC;EQ/qFM;;IAEE,8BAAiC;ERirFzC;EQ/qFM;;IAEE,+BAAkC;ERirF1C;EQ/qFM;;IAEE,6BAAgC;ERirFxC;EQhsFM;IAAwB,0BAA2B;ERmsFzD;EQlsFM;;IAEE,8BAA+B;ERosFvC;EQlsFM;;IAEE,gCAAiC;ERosFzC;EQlsFM;;IAEE,iCAAkC;ERosF1C;EQlsFM;;IAEE,+BAAgC;ERosFxC;EQntFM;IAAwB,wBAA2B;ERstFzD;EQrtFM;;IAEE,4BAA+B;ERutFvC;EQrtFM;;IAEE,8BAAiC;ERutFzC;EQrtFM;;IAEE,+BAAkC;ERutF1C;EQrtFM;;IAEE,6BAAgC;ERutFxC;EQjtFE;IAAmB,uBAAuB;ERotF5C;EQntFE;;IAEE,2BAA2B;ERqtF/B;EQntFE;;IAEE,6BAA6B;ERqtFjC;EQntFE;;IAEE,8BAA8B;ERqtFlC;EQntFE;;IAEE,4BAA4B;ERqtFhC;AACF;;AG/tFI;EKlDI;IAAgC,oBAA4B;ERsxFlE;EQrxFM;;IAEE,wBAAoC;ERuxF5C;EQrxFM;;IAEE,0BAAwC;ERuxFhD;EQrxFM;;IAEE,2BAA0C;ERuxFlD;EQrxFM;;IAEE,yBAAsC;ERuxF9C;EQtyFM;IAAgC,0BAA4B;ERyyFlE;EQxyFM;;IAEE,8BAAoC;ER0yF5C;EQxyFM;;IAEE,gCAAwC;ER0yFhD;EQxyFM;;IAEE,iCAA0C;ER0yFlD;EQxyFM;;IAEE,+BAAsC;ER0yF9C;EQzzFM;IAAgC,yBAA4B;ER4zFlE;EQ3zFM;;IAEE,6BAAoC;ER6zF5C;EQ3zFM;;IAEE,+BAAwC;ER6zFhD;EQ3zFM;;IAEE,gCAA0C;ER6zFlD;EQ3zFM;;IAEE,8BAAsC;ER6zF9C;EQ50FM;IAAgC,uBAA4B;ER+0FlE;EQ90FM;;IAEE,2BAAoC;ERg1F5C;EQ90FM;;IAEE,6BAAwC;ERg1FhD;EQ90FM;;IAEE,8BAA0C;ERg1FlD;EQ90FM;;IAEE,4BAAsC;ERg1F9C;EQ/1FM;IAAgC,yBAA4B;ERk2FlE;EQj2FM;;IAEE,6BAAoC;ERm2F5C;EQj2FM;;IAEE,+BAAwC;ERm2FhD;EQj2FM;;IAEE,gCAA0C;ERm2FlD;EQj2FM;;IAEE,8BAAsC;ERm2F9C;EQl3FM;IAAgC,uBAA4B;ERq3FlE;EQp3FM;;IAEE,2BAAoC;ERs3F5C;EQp3FM;;IAEE,6BAAwC;ERs3FhD;EQp3FM;;IAEE,8BAA0C;ERs3FlD;EQp3FM;;IAEE,4BAAsC;ERs3F9C;EQr4FM;IAAgC,qBAA4B;ERw4FlE;EQv4FM;;IAEE,yBAAoC;ERy4F5C;EQv4FM;;IAEE,2BAAwC;ERy4FhD;EQv4FM;;IAEE,4BAA0C;ERy4FlD;EQv4FM;;IAEE,0BAAsC;ERy4F9C;EQx5FM;IAAgC,2BAA4B;ER25FlE;EQ15FM;;IAEE,+BAAoC;ER45F5C;EQ15FM;;IAEE,iCAAwC;ER45FhD;EQ15FM;;IAEE,kCAA0C;ER45FlD;EQ15FM;;IAEE,gCAAsC;ER45F9C;EQ36FM;IAAgC,0BAA4B;ER86FlE;EQ76FM;;IAEE,8BAAoC;ER+6F5C;EQ76FM;;IAEE,gCAAwC;ER+6FhD;EQ76FM;;IAEE,iCAA0C;ER+6FlD;EQ76FM;;IAEE,+BAAsC;ER+6F9C;EQ97FM;IAAgC,wBAA4B;ERi8FlE;EQh8FM;;IAEE,4BAAoC;ERk8F5C;EQh8FM;;IAEE,8BAAwC;ERk8FhD;EQh8FM;;IAEE,+BAA0C;ERk8FlD;EQh8FM;;IAEE,6BAAsC;ERk8F9C;EQj9FM;IAAgC,0BAA4B;ERo9FlE;EQn9FM;;IAEE,8BAAoC;ERq9F5C;EQn9FM;;IAEE,gCAAwC;ERq9FhD;EQn9FM;;IAEE,iCAA0C;ERq9FlD;EQn9FM;;IAEE,+BAAsC;ERq9F9C;EQp+FM;IAAgC,wBAA4B;ERu+FlE;EQt+FM;;IAEE,4BAAoC;ERw+F5C;EQt+FM;;IAEE,8BAAwC;ERw+FhD;EQt+FM;;IAEE,+BAA0C;ERw+FlD;EQt+FM;;IAEE,6BAAsC;ERw+F9C;EQh+FM;IAAwB,2BAA2B;ERm+FzD;EQl+FM;;IAEE,+BAA+B;ERo+FvC;EQl+FM;;IAEE,iCAAiC;ERo+FzC;EQl+FM;;IAEE,kCAAkC;ERo+F1C;EQl+FM;;IAEE,gCAAgC;ERo+FxC;EQn/FM;IAAwB,0BAA2B;ERs/FzD;EQr/FM;;IAEE,8BAA+B;ERu/FvC;EQr/FM;;IAEE,gCAAiC;ERu/FzC;EQr/FM;;IAEE,iCAAkC;ERu/F1C;EQr/FM;;IAEE,+BAAgC;ERu/FxC;EQtgGM;IAAwB,wBAA2B;ERygGzD;EQxgGM;;IAEE,4BAA+B;ER0gGvC;EQxgGM;;IAEE,8BAAiC;ER0gGzC;EQxgGM;;IAEE,+BAAkC;ER0gG1C;EQxgGM;;IAEE,6BAAgC;ER0gGxC;EQzhGM;IAAwB,0BAA2B;ER4hGzD;EQ3hGM;;IAEE,8BAA+B;ER6hGvC;EQ3hGM;;IAEE,gCAAiC;ER6hGzC;EQ3hGM;;IAEE,iCAAkC;ER6hG1C;EQ3hGM;;IAEE,+BAAgC;ER6hGxC;EQ5iGM;IAAwB,wBAA2B;ER+iGzD;EQ9iGM;;IAEE,4BAA+B;ERgjGvC;EQ9iGM;;IAEE,8BAAiC;ERgjGzC;EQ9iGM;;IAEE,+BAAkC;ERgjG1C;EQ9iGM;;IAEE,6BAAgC;ERgjGxC;EQ1iGE;IAAmB,uBAAuB;ER6iG5C;EQ5iGE;;IAEE,2BAA2B;ER8iG/B;EQ5iGE;;IAEE,6BAA6B;ER8iGjC;EQ5iGE;;IAEE,8BAA8B;ER8iGlC;EQ5iGE;;IAEE,4BAA4B;ER8iGhC;AACF;;AGxjGI;EKlDI;IAAgC,oBAA4B;ER+mGlE;EQ9mGM;;IAEE,wBAAoC;ERgnG5C;EQ9mGM;;IAEE,0BAAwC;ERgnGhD;EQ9mGM;;IAEE,2BAA0C;ERgnGlD;EQ9mGM;;IAEE,yBAAsC;ERgnG9C;EQ/nGM;IAAgC,0BAA4B;ERkoGlE;EQjoGM;;IAEE,8BAAoC;ERmoG5C;EQjoGM;;IAEE,gCAAwC;ERmoGhD;EQjoGM;;IAEE,iCAA0C;ERmoGlD;EQjoGM;;IAEE,+BAAsC;ERmoG9C;EQlpGM;IAAgC,yBAA4B;ERqpGlE;EQppGM;;IAEE,6BAAoC;ERspG5C;EQppGM;;IAEE,+BAAwC;ERspGhD;EQppGM;;IAEE,gCAA0C;ERspGlD;EQppGM;;IAEE,8BAAsC;ERspG9C;EQrqGM;IAAgC,uBAA4B;ERwqGlE;EQvqGM;;IAEE,2BAAoC;ERyqG5C;EQvqGM;;IAEE,6BAAwC;ERyqGhD;EQvqGM;;IAEE,8BAA0C;ERyqGlD;EQvqGM;;IAEE,4BAAsC;ERyqG9C;EQxrGM;IAAgC,yBAA4B;ER2rGlE;EQ1rGM;;IAEE,6BAAoC;ER4rG5C;EQ1rGM;;IAEE,+BAAwC;ER4rGhD;EQ1rGM;;IAEE,gCAA0C;ER4rGlD;EQ1rGM;;IAEE,8BAAsC;ER4rG9C;EQ3sGM;IAAgC,uBAA4B;ER8sGlE;EQ7sGM;;IAEE,2BAAoC;ER+sG5C;EQ7sGM;;IAEE,6BAAwC;ER+sGhD;EQ7sGM;;IAEE,8BAA0C;ER+sGlD;EQ7sGM;;IAEE,4BAAsC;ER+sG9C;EQ9tGM;IAAgC,qBAA4B;ERiuGlE;EQhuGM;;IAEE,yBAAoC;ERkuG5C;EQhuGM;;IAEE,2BAAwC;ERkuGhD;EQhuGM;;IAEE,4BAA0C;ERkuGlD;EQhuGM;;IAEE,0BAAsC;ERkuG9C;EQjvGM;IAAgC,2BAA4B;ERovGlE;EQnvGM;;IAEE,+BAAoC;ERqvG5C;EQnvGM;;IAEE,iCAAwC;ERqvGhD;EQnvGM;;IAEE,kCAA0C;ERqvGlD;EQnvGM;;IAEE,gCAAsC;ERqvG9C;EQpwGM;IAAgC,0BAA4B;ERuwGlE;EQtwGM;;IAEE,8BAAoC;ERwwG5C;EQtwGM;;IAEE,gCAAwC;ERwwGhD;EQtwGM;;IAEE,iCAA0C;ERwwGlD;EQtwGM;;IAEE,+BAAsC;ERwwG9C;EQvxGM;IAAgC,wBAA4B;ER0xGlE;EQzxGM;;IAEE,4BAAoC;ER2xG5C;EQzxGM;;IAEE,8BAAwC;ER2xGhD;EQzxGM;;IAEE,+BAA0C;ER2xGlD;EQzxGM;;IAEE,6BAAsC;ER2xG9C;EQ1yGM;IAAgC,0BAA4B;ER6yGlE;EQ5yGM;;IAEE,8BAAoC;ER8yG5C;EQ5yGM;;IAEE,gCAAwC;ER8yGhD;EQ5yGM;;IAEE,iCAA0C;ER8yGlD;EQ5yGM;;IAEE,+BAAsC;ER8yG9C;EQ7zGM;IAAgC,wBAA4B;ERg0GlE;EQ/zGM;;IAEE,4BAAoC;ERi0G5C;EQ/zGM;;IAEE,8BAAwC;ERi0GhD;EQ/zGM;;IAEE,+BAA0C;ERi0GlD;EQ/zGM;;IAEE,6BAAsC;ERi0G9C;EQzzGM;IAAwB,2BAA2B;ER4zGzD;EQ3zGM;;IAEE,+BAA+B;ER6zGvC;EQ3zGM;;IAEE,iCAAiC;ER6zGzC;EQ3zGM;;IAEE,kCAAkC;ER6zG1C;EQ3zGM;;IAEE,gCAAgC;ER6zGxC;EQ50GM;IAAwB,0BAA2B;ER+0GzD;EQ90GM;;IAEE,8BAA+B;ERg1GvC;EQ90GM;;IAEE,gCAAiC;ERg1GzC;EQ90GM;;IAEE,iCAAkC;ERg1G1C;EQ90GM;;IAEE,+BAAgC;ERg1GxC;EQ/1GM;IAAwB,wBAA2B;ERk2GzD;EQj2GM;;IAEE,4BAA+B;ERm2GvC;EQj2GM;;IAEE,8BAAiC;ERm2GzC;EQj2GM;;IAEE,+BAAkC;ERm2G1C;EQj2GM;;IAEE,6BAAgC;ERm2GxC;EQl3GM;IAAwB,0BAA2B;ERq3GzD;EQp3GM;;IAEE,8BAA+B;ERs3GvC;EQp3GM;;IAEE,gCAAiC;ERs3GzC;EQp3GM;;IAEE,iCAAkC;ERs3G1C;EQp3GM;;IAEE,+BAAgC;ERs3GxC;EQr4GM;IAAwB,wBAA2B;ERw4GzD;EQv4GM;;IAEE,4BAA+B;ERy4GvC;EQv4GM;;IAEE,8BAAiC;ERy4GzC;EQv4GM;;IAEE,+BAAkC;ERy4G1C;EQv4GM;;IAEE,6BAAgC;ERy4GxC;EQn4GE;IAAmB,uBAAuB;ERs4G5C;EQr4GE;;IAEE,2BAA2B;ERu4G/B;EQr4GE;;IAEE,6BAA6B;ERu4GjC;EQr4GE;;IAEE,8BAA8B;ERu4GlC;EQr4GE;;IAEE,4BAA4B;ERu4GhC;AACF","file":"bootstrap-grid.css","sourcesContent":["/*!\n * Bootstrap Grid v4.4.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 The Bootstrap Authors\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n\nhtml {\n box-sizing: border-box;\n -ms-overflow-style: scrollbar;\n}\n\n*,\n*::before,\n*::after {\n box-sizing: inherit;\n}\n\n@import \"functions\";\n@import \"variables\";\n\n@import \"mixins/breakpoints\";\n@import \"mixins/grid-framework\";\n@import \"mixins/grid\";\n\n@import \"grid\";\n@import \"utilities/display\";\n@import \"utilities/flex\";\n@import \"utilities/spacing\";\n","/*!\n * Bootstrap Grid v4.4.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 The Bootstrap Authors\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\nhtml {\n box-sizing: border-box;\n -ms-overflow-style: scrollbar;\n}\n\n*,\n*::before,\n*::after {\n box-sizing: inherit;\n}\n\n.container {\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n\n@media (min-width: 576px) {\n .container {\n max-width: 540px;\n }\n}\n\n@media (min-width: 768px) {\n .container {\n max-width: 720px;\n }\n}\n\n@media (min-width: 992px) {\n .container {\n max-width: 960px;\n }\n}\n\n@media (min-width: 1200px) {\n .container {\n max-width: 1140px;\n }\n}\n\n.container-fluid, .container-sm, .container-md, .container-lg, .container-xl {\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n\n@media (min-width: 576px) {\n .container, .container-sm {\n max-width: 540px;\n }\n}\n\n@media (min-width: 768px) {\n .container, .container-sm, .container-md {\n max-width: 720px;\n }\n}\n\n@media (min-width: 992px) {\n .container, .container-sm, .container-md, .container-lg {\n max-width: 960px;\n }\n}\n\n@media (min-width: 1200px) {\n .container, .container-sm, .container-md, .container-lg, .container-xl {\n max-width: 1140px;\n }\n}\n\n.row {\n display: flex;\n flex-wrap: wrap;\n margin-right: -15px;\n margin-left: -15px;\n}\n\n.no-gutters {\n margin-right: 0;\n margin-left: 0;\n}\n\n.no-gutters > .col,\n.no-gutters > [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n}\n\n.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col,\n.col-auto, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm,\n.col-sm-auto, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md,\n.col-md-auto, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg,\n.col-lg-auto, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl,\n.col-xl-auto {\n position: relative;\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n}\n\n.col {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n}\n\n.row-cols-1 > * {\n flex: 0 0 100%;\n max-width: 100%;\n}\n\n.row-cols-2 > * {\n flex: 0 0 50%;\n max-width: 50%;\n}\n\n.row-cols-3 > * {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n}\n\n.row-cols-4 > * {\n flex: 0 0 25%;\n max-width: 25%;\n}\n\n.row-cols-5 > * {\n flex: 0 0 20%;\n max-width: 20%;\n}\n\n.row-cols-6 > * {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n}\n\n.col-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n}\n\n.col-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n}\n\n.col-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n}\n\n.col-3 {\n flex: 0 0 25%;\n max-width: 25%;\n}\n\n.col-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n}\n\n.col-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n}\n\n.col-6 {\n flex: 0 0 50%;\n max-width: 50%;\n}\n\n.col-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n}\n\n.col-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n}\n\n.col-9 {\n flex: 0 0 75%;\n max-width: 75%;\n}\n\n.col-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n}\n\n.col-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n}\n\n.col-12 {\n flex: 0 0 100%;\n max-width: 100%;\n}\n\n.order-first {\n order: -1;\n}\n\n.order-last {\n order: 13;\n}\n\n.order-0 {\n order: 0;\n}\n\n.order-1 {\n order: 1;\n}\n\n.order-2 {\n order: 2;\n}\n\n.order-3 {\n order: 3;\n}\n\n.order-4 {\n order: 4;\n}\n\n.order-5 {\n order: 5;\n}\n\n.order-6 {\n order: 6;\n}\n\n.order-7 {\n order: 7;\n}\n\n.order-8 {\n order: 8;\n}\n\n.order-9 {\n order: 9;\n}\n\n.order-10 {\n order: 10;\n}\n\n.order-11 {\n order: 11;\n}\n\n.order-12 {\n order: 12;\n}\n\n.offset-1 {\n margin-left: 8.333333%;\n}\n\n.offset-2 {\n margin-left: 16.666667%;\n}\n\n.offset-3 {\n margin-left: 25%;\n}\n\n.offset-4 {\n margin-left: 33.333333%;\n}\n\n.offset-5 {\n margin-left: 41.666667%;\n}\n\n.offset-6 {\n margin-left: 50%;\n}\n\n.offset-7 {\n margin-left: 58.333333%;\n}\n\n.offset-8 {\n margin-left: 66.666667%;\n}\n\n.offset-9 {\n margin-left: 75%;\n}\n\n.offset-10 {\n margin-left: 83.333333%;\n}\n\n.offset-11 {\n margin-left: 91.666667%;\n}\n\n@media (min-width: 576px) {\n .col-sm {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-sm-1 > * {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-sm-2 > * {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-sm-3 > * {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-sm-4 > * {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-sm-5 > * {\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-sm-6 > * {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-sm-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-sm-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-sm-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-sm-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-sm-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-sm-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-sm-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-sm-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-sm-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-sm-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-sm-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-sm-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-sm-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-sm-first {\n order: -1;\n }\n .order-sm-last {\n order: 13;\n }\n .order-sm-0 {\n order: 0;\n }\n .order-sm-1 {\n order: 1;\n }\n .order-sm-2 {\n order: 2;\n }\n .order-sm-3 {\n order: 3;\n }\n .order-sm-4 {\n order: 4;\n }\n .order-sm-5 {\n order: 5;\n }\n .order-sm-6 {\n order: 6;\n }\n .order-sm-7 {\n order: 7;\n }\n .order-sm-8 {\n order: 8;\n }\n .order-sm-9 {\n order: 9;\n }\n .order-sm-10 {\n order: 10;\n }\n .order-sm-11 {\n order: 11;\n }\n .order-sm-12 {\n order: 12;\n }\n .offset-sm-0 {\n margin-left: 0;\n }\n .offset-sm-1 {\n margin-left: 8.333333%;\n }\n .offset-sm-2 {\n margin-left: 16.666667%;\n }\n .offset-sm-3 {\n margin-left: 25%;\n }\n .offset-sm-4 {\n margin-left: 33.333333%;\n }\n .offset-sm-5 {\n margin-left: 41.666667%;\n }\n .offset-sm-6 {\n margin-left: 50%;\n }\n .offset-sm-7 {\n margin-left: 58.333333%;\n }\n .offset-sm-8 {\n margin-left: 66.666667%;\n }\n .offset-sm-9 {\n margin-left: 75%;\n }\n .offset-sm-10 {\n margin-left: 83.333333%;\n }\n .offset-sm-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 768px) {\n .col-md {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-md-1 > * {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-md-2 > * {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-md-3 > * {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-md-4 > * {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-md-5 > * {\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-md-6 > * {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-md-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-md-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-md-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-md-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-md-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-md-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-md-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-md-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-md-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-md-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-md-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-md-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-md-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-md-first {\n order: -1;\n }\n .order-md-last {\n order: 13;\n }\n .order-md-0 {\n order: 0;\n }\n .order-md-1 {\n order: 1;\n }\n .order-md-2 {\n order: 2;\n }\n .order-md-3 {\n order: 3;\n }\n .order-md-4 {\n order: 4;\n }\n .order-md-5 {\n order: 5;\n }\n .order-md-6 {\n order: 6;\n }\n .order-md-7 {\n order: 7;\n }\n .order-md-8 {\n order: 8;\n }\n .order-md-9 {\n order: 9;\n }\n .order-md-10 {\n order: 10;\n }\n .order-md-11 {\n order: 11;\n }\n .order-md-12 {\n order: 12;\n }\n .offset-md-0 {\n margin-left: 0;\n }\n .offset-md-1 {\n margin-left: 8.333333%;\n }\n .offset-md-2 {\n margin-left: 16.666667%;\n }\n .offset-md-3 {\n margin-left: 25%;\n }\n .offset-md-4 {\n margin-left: 33.333333%;\n }\n .offset-md-5 {\n margin-left: 41.666667%;\n }\n .offset-md-6 {\n margin-left: 50%;\n }\n .offset-md-7 {\n margin-left: 58.333333%;\n }\n .offset-md-8 {\n margin-left: 66.666667%;\n }\n .offset-md-9 {\n margin-left: 75%;\n }\n .offset-md-10 {\n margin-left: 83.333333%;\n }\n .offset-md-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 992px) {\n .col-lg {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-lg-1 > * {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-lg-2 > * {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-lg-3 > * {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-lg-4 > * {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-lg-5 > * {\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-lg-6 > * {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-lg-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-lg-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-lg-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-lg-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-lg-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-lg-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-lg-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-lg-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-lg-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-lg-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-lg-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-lg-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-lg-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-lg-first {\n order: -1;\n }\n .order-lg-last {\n order: 13;\n }\n .order-lg-0 {\n order: 0;\n }\n .order-lg-1 {\n order: 1;\n }\n .order-lg-2 {\n order: 2;\n }\n .order-lg-3 {\n order: 3;\n }\n .order-lg-4 {\n order: 4;\n }\n .order-lg-5 {\n order: 5;\n }\n .order-lg-6 {\n order: 6;\n }\n .order-lg-7 {\n order: 7;\n }\n .order-lg-8 {\n order: 8;\n }\n .order-lg-9 {\n order: 9;\n }\n .order-lg-10 {\n order: 10;\n }\n .order-lg-11 {\n order: 11;\n }\n .order-lg-12 {\n order: 12;\n }\n .offset-lg-0 {\n margin-left: 0;\n }\n .offset-lg-1 {\n margin-left: 8.333333%;\n }\n .offset-lg-2 {\n margin-left: 16.666667%;\n }\n .offset-lg-3 {\n margin-left: 25%;\n }\n .offset-lg-4 {\n margin-left: 33.333333%;\n }\n .offset-lg-5 {\n margin-left: 41.666667%;\n }\n .offset-lg-6 {\n margin-left: 50%;\n }\n .offset-lg-7 {\n margin-left: 58.333333%;\n }\n .offset-lg-8 {\n margin-left: 66.666667%;\n }\n .offset-lg-9 {\n margin-left: 75%;\n }\n .offset-lg-10 {\n margin-left: 83.333333%;\n }\n .offset-lg-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 1200px) {\n .col-xl {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-xl-1 > * {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-xl-2 > * {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-xl-3 > * {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-xl-4 > * {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-xl-5 > * {\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-xl-6 > * {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-xl-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-xl-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-xl-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-xl-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-xl-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-xl-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-xl-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-xl-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-xl-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-xl-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-xl-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-xl-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-xl-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-xl-first {\n order: -1;\n }\n .order-xl-last {\n order: 13;\n }\n .order-xl-0 {\n order: 0;\n }\n .order-xl-1 {\n order: 1;\n }\n .order-xl-2 {\n order: 2;\n }\n .order-xl-3 {\n order: 3;\n }\n .order-xl-4 {\n order: 4;\n }\n .order-xl-5 {\n order: 5;\n }\n .order-xl-6 {\n order: 6;\n }\n .order-xl-7 {\n order: 7;\n }\n .order-xl-8 {\n order: 8;\n }\n .order-xl-9 {\n order: 9;\n }\n .order-xl-10 {\n order: 10;\n }\n .order-xl-11 {\n order: 11;\n }\n .order-xl-12 {\n order: 12;\n }\n .offset-xl-0 {\n margin-left: 0;\n }\n .offset-xl-1 {\n margin-left: 8.333333%;\n }\n .offset-xl-2 {\n margin-left: 16.666667%;\n }\n .offset-xl-3 {\n margin-left: 25%;\n }\n .offset-xl-4 {\n margin-left: 33.333333%;\n }\n .offset-xl-5 {\n margin-left: 41.666667%;\n }\n .offset-xl-6 {\n margin-left: 50%;\n }\n .offset-xl-7 {\n margin-left: 58.333333%;\n }\n .offset-xl-8 {\n margin-left: 66.666667%;\n }\n .offset-xl-9 {\n margin-left: 75%;\n }\n .offset-xl-10 {\n margin-left: 83.333333%;\n }\n .offset-xl-11 {\n margin-left: 91.666667%;\n }\n}\n\n.d-none {\n display: none !important;\n}\n\n.d-inline {\n display: inline !important;\n}\n\n.d-inline-block {\n display: inline-block !important;\n}\n\n.d-block {\n display: block !important;\n}\n\n.d-table {\n display: table !important;\n}\n\n.d-table-row {\n display: table-row !important;\n}\n\n.d-table-cell {\n display: table-cell !important;\n}\n\n.d-flex {\n display: flex !important;\n}\n\n.d-inline-flex {\n display: inline-flex !important;\n}\n\n@media (min-width: 576px) {\n .d-sm-none {\n display: none !important;\n }\n .d-sm-inline {\n display: inline !important;\n }\n .d-sm-inline-block {\n display: inline-block !important;\n }\n .d-sm-block {\n display: block !important;\n }\n .d-sm-table {\n display: table !important;\n }\n .d-sm-table-row {\n display: table-row !important;\n }\n .d-sm-table-cell {\n display: table-cell !important;\n }\n .d-sm-flex {\n display: flex !important;\n }\n .d-sm-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 768px) {\n .d-md-none {\n display: none !important;\n }\n .d-md-inline {\n display: inline !important;\n }\n .d-md-inline-block {\n display: inline-block !important;\n }\n .d-md-block {\n display: block !important;\n }\n .d-md-table {\n display: table !important;\n }\n .d-md-table-row {\n display: table-row !important;\n }\n .d-md-table-cell {\n display: table-cell !important;\n }\n .d-md-flex {\n display: flex !important;\n }\n .d-md-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 992px) {\n .d-lg-none {\n display: none !important;\n }\n .d-lg-inline {\n display: inline !important;\n }\n .d-lg-inline-block {\n display: inline-block !important;\n }\n .d-lg-block {\n display: block !important;\n }\n .d-lg-table {\n display: table !important;\n }\n .d-lg-table-row {\n display: table-row !important;\n }\n .d-lg-table-cell {\n display: table-cell !important;\n }\n .d-lg-flex {\n display: flex !important;\n }\n .d-lg-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 1200px) {\n .d-xl-none {\n display: none !important;\n }\n .d-xl-inline {\n display: inline !important;\n }\n .d-xl-inline-block {\n display: inline-block !important;\n }\n .d-xl-block {\n display: block !important;\n }\n .d-xl-table {\n display: table !important;\n }\n .d-xl-table-row {\n display: table-row !important;\n }\n .d-xl-table-cell {\n display: table-cell !important;\n }\n .d-xl-flex {\n display: flex !important;\n }\n .d-xl-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media print {\n .d-print-none {\n display: none !important;\n }\n .d-print-inline {\n display: inline !important;\n }\n .d-print-inline-block {\n display: inline-block !important;\n }\n .d-print-block {\n display: block !important;\n }\n .d-print-table {\n display: table !important;\n }\n .d-print-table-row {\n display: table-row !important;\n }\n .d-print-table-cell {\n display: table-cell !important;\n }\n .d-print-flex {\n display: flex !important;\n }\n .d-print-inline-flex {\n display: inline-flex !important;\n }\n}\n\n.flex-row {\n flex-direction: row !important;\n}\n\n.flex-column {\n flex-direction: column !important;\n}\n\n.flex-row-reverse {\n flex-direction: row-reverse !important;\n}\n\n.flex-column-reverse {\n flex-direction: column-reverse !important;\n}\n\n.flex-wrap {\n flex-wrap: wrap !important;\n}\n\n.flex-nowrap {\n flex-wrap: nowrap !important;\n}\n\n.flex-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n}\n\n.flex-fill {\n flex: 1 1 auto !important;\n}\n\n.flex-grow-0 {\n flex-grow: 0 !important;\n}\n\n.flex-grow-1 {\n flex-grow: 1 !important;\n}\n\n.flex-shrink-0 {\n flex-shrink: 0 !important;\n}\n\n.flex-shrink-1 {\n flex-shrink: 1 !important;\n}\n\n.justify-content-start {\n justify-content: flex-start !important;\n}\n\n.justify-content-end {\n justify-content: flex-end !important;\n}\n\n.justify-content-center {\n justify-content: center !important;\n}\n\n.justify-content-between {\n justify-content: space-between !important;\n}\n\n.justify-content-around {\n justify-content: space-around !important;\n}\n\n.align-items-start {\n align-items: flex-start !important;\n}\n\n.align-items-end {\n align-items: flex-end !important;\n}\n\n.align-items-center {\n align-items: center !important;\n}\n\n.align-items-baseline {\n align-items: baseline !important;\n}\n\n.align-items-stretch {\n align-items: stretch !important;\n}\n\n.align-content-start {\n align-content: flex-start !important;\n}\n\n.align-content-end {\n align-content: flex-end !important;\n}\n\n.align-content-center {\n align-content: center !important;\n}\n\n.align-content-between {\n align-content: space-between !important;\n}\n\n.align-content-around {\n align-content: space-around !important;\n}\n\n.align-content-stretch {\n align-content: stretch !important;\n}\n\n.align-self-auto {\n align-self: auto !important;\n}\n\n.align-self-start {\n align-self: flex-start !important;\n}\n\n.align-self-end {\n align-self: flex-end !important;\n}\n\n.align-self-center {\n align-self: center !important;\n}\n\n.align-self-baseline {\n align-self: baseline !important;\n}\n\n.align-self-stretch {\n align-self: stretch !important;\n}\n\n@media (min-width: 576px) {\n .flex-sm-row {\n flex-direction: row !important;\n }\n .flex-sm-column {\n flex-direction: column !important;\n }\n .flex-sm-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-sm-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-sm-wrap {\n flex-wrap: wrap !important;\n }\n .flex-sm-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-sm-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-sm-fill {\n flex: 1 1 auto !important;\n }\n .flex-sm-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-sm-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-sm-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-sm-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-sm-start {\n justify-content: flex-start !important;\n }\n .justify-content-sm-end {\n justify-content: flex-end !important;\n }\n .justify-content-sm-center {\n justify-content: center !important;\n }\n .justify-content-sm-between {\n justify-content: space-between !important;\n }\n .justify-content-sm-around {\n justify-content: space-around !important;\n }\n .align-items-sm-start {\n align-items: flex-start !important;\n }\n .align-items-sm-end {\n align-items: flex-end !important;\n }\n .align-items-sm-center {\n align-items: center !important;\n }\n .align-items-sm-baseline {\n align-items: baseline !important;\n }\n .align-items-sm-stretch {\n align-items: stretch !important;\n }\n .align-content-sm-start {\n align-content: flex-start !important;\n }\n .align-content-sm-end {\n align-content: flex-end !important;\n }\n .align-content-sm-center {\n align-content: center !important;\n }\n .align-content-sm-between {\n align-content: space-between !important;\n }\n .align-content-sm-around {\n align-content: space-around !important;\n }\n .align-content-sm-stretch {\n align-content: stretch !important;\n }\n .align-self-sm-auto {\n align-self: auto !important;\n }\n .align-self-sm-start {\n align-self: flex-start !important;\n }\n .align-self-sm-end {\n align-self: flex-end !important;\n }\n .align-self-sm-center {\n align-self: center !important;\n }\n .align-self-sm-baseline {\n align-self: baseline !important;\n }\n .align-self-sm-stretch {\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 768px) {\n .flex-md-row {\n flex-direction: row !important;\n }\n .flex-md-column {\n flex-direction: column !important;\n }\n .flex-md-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-md-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-md-wrap {\n flex-wrap: wrap !important;\n }\n .flex-md-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-md-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-md-fill {\n flex: 1 1 auto !important;\n }\n .flex-md-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-md-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-md-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-md-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-md-start {\n justify-content: flex-start !important;\n }\n .justify-content-md-end {\n justify-content: flex-end !important;\n }\n .justify-content-md-center {\n justify-content: center !important;\n }\n .justify-content-md-between {\n justify-content: space-between !important;\n }\n .justify-content-md-around {\n justify-content: space-around !important;\n }\n .align-items-md-start {\n align-items: flex-start !important;\n }\n .align-items-md-end {\n align-items: flex-end !important;\n }\n .align-items-md-center {\n align-items: center !important;\n }\n .align-items-md-baseline {\n align-items: baseline !important;\n }\n .align-items-md-stretch {\n align-items: stretch !important;\n }\n .align-content-md-start {\n align-content: flex-start !important;\n }\n .align-content-md-end {\n align-content: flex-end !important;\n }\n .align-content-md-center {\n align-content: center !important;\n }\n .align-content-md-between {\n align-content: space-between !important;\n }\n .align-content-md-around {\n align-content: space-around !important;\n }\n .align-content-md-stretch {\n align-content: stretch !important;\n }\n .align-self-md-auto {\n align-self: auto !important;\n }\n .align-self-md-start {\n align-self: flex-start !important;\n }\n .align-self-md-end {\n align-self: flex-end !important;\n }\n .align-self-md-center {\n align-self: center !important;\n }\n .align-self-md-baseline {\n align-self: baseline !important;\n }\n .align-self-md-stretch {\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 992px) {\n .flex-lg-row {\n flex-direction: row !important;\n }\n .flex-lg-column {\n flex-direction: column !important;\n }\n .flex-lg-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-lg-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-lg-wrap {\n flex-wrap: wrap !important;\n }\n .flex-lg-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-lg-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-lg-fill {\n flex: 1 1 auto !important;\n }\n .flex-lg-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-lg-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-lg-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-lg-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-lg-start {\n justify-content: flex-start !important;\n }\n .justify-content-lg-end {\n justify-content: flex-end !important;\n }\n .justify-content-lg-center {\n justify-content: center !important;\n }\n .justify-content-lg-between {\n justify-content: space-between !important;\n }\n .justify-content-lg-around {\n justify-content: space-around !important;\n }\n .align-items-lg-start {\n align-items: flex-start !important;\n }\n .align-items-lg-end {\n align-items: flex-end !important;\n }\n .align-items-lg-center {\n align-items: center !important;\n }\n .align-items-lg-baseline {\n align-items: baseline !important;\n }\n .align-items-lg-stretch {\n align-items: stretch !important;\n }\n .align-content-lg-start {\n align-content: flex-start !important;\n }\n .align-content-lg-end {\n align-content: flex-end !important;\n }\n .align-content-lg-center {\n align-content: center !important;\n }\n .align-content-lg-between {\n align-content: space-between !important;\n }\n .align-content-lg-around {\n align-content: space-around !important;\n }\n .align-content-lg-stretch {\n align-content: stretch !important;\n }\n .align-self-lg-auto {\n align-self: auto !important;\n }\n .align-self-lg-start {\n align-self: flex-start !important;\n }\n .align-self-lg-end {\n align-self: flex-end !important;\n }\n .align-self-lg-center {\n align-self: center !important;\n }\n .align-self-lg-baseline {\n align-self: baseline !important;\n }\n .align-self-lg-stretch {\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 1200px) {\n .flex-xl-row {\n flex-direction: row !important;\n }\n .flex-xl-column {\n flex-direction: column !important;\n }\n .flex-xl-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-xl-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-xl-wrap {\n flex-wrap: wrap !important;\n }\n .flex-xl-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-xl-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-xl-fill {\n flex: 1 1 auto !important;\n }\n .flex-xl-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-xl-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-xl-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-xl-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-xl-start {\n justify-content: flex-start !important;\n }\n .justify-content-xl-end {\n justify-content: flex-end !important;\n }\n .justify-content-xl-center {\n justify-content: center !important;\n }\n .justify-content-xl-between {\n justify-content: space-between !important;\n }\n .justify-content-xl-around {\n justify-content: space-around !important;\n }\n .align-items-xl-start {\n align-items: flex-start !important;\n }\n .align-items-xl-end {\n align-items: flex-end !important;\n }\n .align-items-xl-center {\n align-items: center !important;\n }\n .align-items-xl-baseline {\n align-items: baseline !important;\n }\n .align-items-xl-stretch {\n align-items: stretch !important;\n }\n .align-content-xl-start {\n align-content: flex-start !important;\n }\n .align-content-xl-end {\n align-content: flex-end !important;\n }\n .align-content-xl-center {\n align-content: center !important;\n }\n .align-content-xl-between {\n align-content: space-between !important;\n }\n .align-content-xl-around {\n align-content: space-around !important;\n }\n .align-content-xl-stretch {\n align-content: stretch !important;\n }\n .align-self-xl-auto {\n align-self: auto !important;\n }\n .align-self-xl-start {\n align-self: flex-start !important;\n }\n .align-self-xl-end {\n align-self: flex-end !important;\n }\n .align-self-xl-center {\n align-self: center !important;\n }\n .align-self-xl-baseline {\n align-self: baseline !important;\n }\n .align-self-xl-stretch {\n align-self: stretch !important;\n }\n}\n\n.m-0 {\n margin: 0 !important;\n}\n\n.mt-0,\n.my-0 {\n margin-top: 0 !important;\n}\n\n.mr-0,\n.mx-0 {\n margin-right: 0 !important;\n}\n\n.mb-0,\n.my-0 {\n margin-bottom: 0 !important;\n}\n\n.ml-0,\n.mx-0 {\n margin-left: 0 !important;\n}\n\n.m-1 {\n margin: 0.25rem !important;\n}\n\n.mt-1,\n.my-1 {\n margin-top: 0.25rem !important;\n}\n\n.mr-1,\n.mx-1 {\n margin-right: 0.25rem !important;\n}\n\n.mb-1,\n.my-1 {\n margin-bottom: 0.25rem !important;\n}\n\n.ml-1,\n.mx-1 {\n margin-left: 0.25rem !important;\n}\n\n.m-2 {\n margin: 0.5rem !important;\n}\n\n.mt-2,\n.my-2 {\n margin-top: 0.5rem !important;\n}\n\n.mr-2,\n.mx-2 {\n margin-right: 0.5rem !important;\n}\n\n.mb-2,\n.my-2 {\n margin-bottom: 0.5rem !important;\n}\n\n.ml-2,\n.mx-2 {\n margin-left: 0.5rem !important;\n}\n\n.m-3 {\n margin: 1rem !important;\n}\n\n.mt-3,\n.my-3 {\n margin-top: 1rem !important;\n}\n\n.mr-3,\n.mx-3 {\n margin-right: 1rem !important;\n}\n\n.mb-3,\n.my-3 {\n margin-bottom: 1rem !important;\n}\n\n.ml-3,\n.mx-3 {\n margin-left: 1rem !important;\n}\n\n.m-4 {\n margin: 1.5rem !important;\n}\n\n.mt-4,\n.my-4 {\n margin-top: 1.5rem !important;\n}\n\n.mr-4,\n.mx-4 {\n margin-right: 1.5rem !important;\n}\n\n.mb-4,\n.my-4 {\n margin-bottom: 1.5rem !important;\n}\n\n.ml-4,\n.mx-4 {\n margin-left: 1.5rem !important;\n}\n\n.m-5 {\n margin: 3rem !important;\n}\n\n.mt-5,\n.my-5 {\n margin-top: 3rem !important;\n}\n\n.mr-5,\n.mx-5 {\n margin-right: 3rem !important;\n}\n\n.mb-5,\n.my-5 {\n margin-bottom: 3rem !important;\n}\n\n.ml-5,\n.mx-5 {\n margin-left: 3rem !important;\n}\n\n.p-0 {\n padding: 0 !important;\n}\n\n.pt-0,\n.py-0 {\n padding-top: 0 !important;\n}\n\n.pr-0,\n.px-0 {\n padding-right: 0 !important;\n}\n\n.pb-0,\n.py-0 {\n padding-bottom: 0 !important;\n}\n\n.pl-0,\n.px-0 {\n padding-left: 0 !important;\n}\n\n.p-1 {\n padding: 0.25rem !important;\n}\n\n.pt-1,\n.py-1 {\n padding-top: 0.25rem !important;\n}\n\n.pr-1,\n.px-1 {\n padding-right: 0.25rem !important;\n}\n\n.pb-1,\n.py-1 {\n padding-bottom: 0.25rem !important;\n}\n\n.pl-1,\n.px-1 {\n padding-left: 0.25rem !important;\n}\n\n.p-2 {\n padding: 0.5rem !important;\n}\n\n.pt-2,\n.py-2 {\n padding-top: 0.5rem !important;\n}\n\n.pr-2,\n.px-2 {\n padding-right: 0.5rem !important;\n}\n\n.pb-2,\n.py-2 {\n padding-bottom: 0.5rem !important;\n}\n\n.pl-2,\n.px-2 {\n padding-left: 0.5rem !important;\n}\n\n.p-3 {\n padding: 1rem !important;\n}\n\n.pt-3,\n.py-3 {\n padding-top: 1rem !important;\n}\n\n.pr-3,\n.px-3 {\n padding-right: 1rem !important;\n}\n\n.pb-3,\n.py-3 {\n padding-bottom: 1rem !important;\n}\n\n.pl-3,\n.px-3 {\n padding-left: 1rem !important;\n}\n\n.p-4 {\n padding: 1.5rem !important;\n}\n\n.pt-4,\n.py-4 {\n padding-top: 1.5rem !important;\n}\n\n.pr-4,\n.px-4 {\n padding-right: 1.5rem !important;\n}\n\n.pb-4,\n.py-4 {\n padding-bottom: 1.5rem !important;\n}\n\n.pl-4,\n.px-4 {\n padding-left: 1.5rem !important;\n}\n\n.p-5 {\n padding: 3rem !important;\n}\n\n.pt-5,\n.py-5 {\n padding-top: 3rem !important;\n}\n\n.pr-5,\n.px-5 {\n padding-right: 3rem !important;\n}\n\n.pb-5,\n.py-5 {\n padding-bottom: 3rem !important;\n}\n\n.pl-5,\n.px-5 {\n padding-left: 3rem !important;\n}\n\n.m-n1 {\n margin: -0.25rem !important;\n}\n\n.mt-n1,\n.my-n1 {\n margin-top: -0.25rem !important;\n}\n\n.mr-n1,\n.mx-n1 {\n margin-right: -0.25rem !important;\n}\n\n.mb-n1,\n.my-n1 {\n margin-bottom: -0.25rem !important;\n}\n\n.ml-n1,\n.mx-n1 {\n margin-left: -0.25rem !important;\n}\n\n.m-n2 {\n margin: -0.5rem !important;\n}\n\n.mt-n2,\n.my-n2 {\n margin-top: -0.5rem !important;\n}\n\n.mr-n2,\n.mx-n2 {\n margin-right: -0.5rem !important;\n}\n\n.mb-n2,\n.my-n2 {\n margin-bottom: -0.5rem !important;\n}\n\n.ml-n2,\n.mx-n2 {\n margin-left: -0.5rem !important;\n}\n\n.m-n3 {\n margin: -1rem !important;\n}\n\n.mt-n3,\n.my-n3 {\n margin-top: -1rem !important;\n}\n\n.mr-n3,\n.mx-n3 {\n margin-right: -1rem !important;\n}\n\n.mb-n3,\n.my-n3 {\n margin-bottom: -1rem !important;\n}\n\n.ml-n3,\n.mx-n3 {\n margin-left: -1rem !important;\n}\n\n.m-n4 {\n margin: -1.5rem !important;\n}\n\n.mt-n4,\n.my-n4 {\n margin-top: -1.5rem !important;\n}\n\n.mr-n4,\n.mx-n4 {\n margin-right: -1.5rem !important;\n}\n\n.mb-n4,\n.my-n4 {\n margin-bottom: -1.5rem !important;\n}\n\n.ml-n4,\n.mx-n4 {\n margin-left: -1.5rem !important;\n}\n\n.m-n5 {\n margin: -3rem !important;\n}\n\n.mt-n5,\n.my-n5 {\n margin-top: -3rem !important;\n}\n\n.mr-n5,\n.mx-n5 {\n margin-right: -3rem !important;\n}\n\n.mb-n5,\n.my-n5 {\n margin-bottom: -3rem !important;\n}\n\n.ml-n5,\n.mx-n5 {\n margin-left: -3rem !important;\n}\n\n.m-auto {\n margin: auto !important;\n}\n\n.mt-auto,\n.my-auto {\n margin-top: auto !important;\n}\n\n.mr-auto,\n.mx-auto {\n margin-right: auto !important;\n}\n\n.mb-auto,\n.my-auto {\n margin-bottom: auto !important;\n}\n\n.ml-auto,\n.mx-auto {\n margin-left: auto !important;\n}\n\n@media (min-width: 576px) {\n .m-sm-0 {\n margin: 0 !important;\n }\n .mt-sm-0,\n .my-sm-0 {\n margin-top: 0 !important;\n }\n .mr-sm-0,\n .mx-sm-0 {\n margin-right: 0 !important;\n }\n .mb-sm-0,\n .my-sm-0 {\n margin-bottom: 0 !important;\n }\n .ml-sm-0,\n .mx-sm-0 {\n margin-left: 0 !important;\n }\n .m-sm-1 {\n margin: 0.25rem !important;\n }\n .mt-sm-1,\n .my-sm-1 {\n margin-top: 0.25rem !important;\n }\n .mr-sm-1,\n .mx-sm-1 {\n margin-right: 0.25rem !important;\n }\n .mb-sm-1,\n .my-sm-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-sm-1,\n .mx-sm-1 {\n margin-left: 0.25rem !important;\n }\n .m-sm-2 {\n margin: 0.5rem !important;\n }\n .mt-sm-2,\n .my-sm-2 {\n margin-top: 0.5rem !important;\n }\n .mr-sm-2,\n .mx-sm-2 {\n margin-right: 0.5rem !important;\n }\n .mb-sm-2,\n .my-sm-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-sm-2,\n .mx-sm-2 {\n margin-left: 0.5rem !important;\n }\n .m-sm-3 {\n margin: 1rem !important;\n }\n .mt-sm-3,\n .my-sm-3 {\n margin-top: 1rem !important;\n }\n .mr-sm-3,\n .mx-sm-3 {\n margin-right: 1rem !important;\n }\n .mb-sm-3,\n .my-sm-3 {\n margin-bottom: 1rem !important;\n }\n .ml-sm-3,\n .mx-sm-3 {\n margin-left: 1rem !important;\n }\n .m-sm-4 {\n margin: 1.5rem !important;\n }\n .mt-sm-4,\n .my-sm-4 {\n margin-top: 1.5rem !important;\n }\n .mr-sm-4,\n .mx-sm-4 {\n margin-right: 1.5rem !important;\n }\n .mb-sm-4,\n .my-sm-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-sm-4,\n .mx-sm-4 {\n margin-left: 1.5rem !important;\n }\n .m-sm-5 {\n margin: 3rem !important;\n }\n .mt-sm-5,\n .my-sm-5 {\n margin-top: 3rem !important;\n }\n .mr-sm-5,\n .mx-sm-5 {\n margin-right: 3rem !important;\n }\n .mb-sm-5,\n .my-sm-5 {\n margin-bottom: 3rem !important;\n }\n .ml-sm-5,\n .mx-sm-5 {\n margin-left: 3rem !important;\n }\n .p-sm-0 {\n padding: 0 !important;\n }\n .pt-sm-0,\n .py-sm-0 {\n padding-top: 0 !important;\n }\n .pr-sm-0,\n .px-sm-0 {\n padding-right: 0 !important;\n }\n .pb-sm-0,\n .py-sm-0 {\n padding-bottom: 0 !important;\n }\n .pl-sm-0,\n .px-sm-0 {\n padding-left: 0 !important;\n }\n .p-sm-1 {\n padding: 0.25rem !important;\n }\n .pt-sm-1,\n .py-sm-1 {\n padding-top: 0.25rem !important;\n }\n .pr-sm-1,\n .px-sm-1 {\n padding-right: 0.25rem !important;\n }\n .pb-sm-1,\n .py-sm-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-sm-1,\n .px-sm-1 {\n padding-left: 0.25rem !important;\n }\n .p-sm-2 {\n padding: 0.5rem !important;\n }\n .pt-sm-2,\n .py-sm-2 {\n padding-top: 0.5rem !important;\n }\n .pr-sm-2,\n .px-sm-2 {\n padding-right: 0.5rem !important;\n }\n .pb-sm-2,\n .py-sm-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-sm-2,\n .px-sm-2 {\n padding-left: 0.5rem !important;\n }\n .p-sm-3 {\n padding: 1rem !important;\n }\n .pt-sm-3,\n .py-sm-3 {\n padding-top: 1rem !important;\n }\n .pr-sm-3,\n .px-sm-3 {\n padding-right: 1rem !important;\n }\n .pb-sm-3,\n .py-sm-3 {\n padding-bottom: 1rem !important;\n }\n .pl-sm-3,\n .px-sm-3 {\n padding-left: 1rem !important;\n }\n .p-sm-4 {\n padding: 1.5rem !important;\n }\n .pt-sm-4,\n .py-sm-4 {\n padding-top: 1.5rem !important;\n }\n .pr-sm-4,\n .px-sm-4 {\n padding-right: 1.5rem !important;\n }\n .pb-sm-4,\n .py-sm-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-sm-4,\n .px-sm-4 {\n padding-left: 1.5rem !important;\n }\n .p-sm-5 {\n padding: 3rem !important;\n }\n .pt-sm-5,\n .py-sm-5 {\n padding-top: 3rem !important;\n }\n .pr-sm-5,\n .px-sm-5 {\n padding-right: 3rem !important;\n }\n .pb-sm-5,\n .py-sm-5 {\n padding-bottom: 3rem !important;\n }\n .pl-sm-5,\n .px-sm-5 {\n padding-left: 3rem !important;\n }\n .m-sm-n1 {\n margin: -0.25rem !important;\n }\n .mt-sm-n1,\n .my-sm-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-sm-n1,\n .mx-sm-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-sm-n1,\n .my-sm-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-sm-n1,\n .mx-sm-n1 {\n margin-left: -0.25rem !important;\n }\n .m-sm-n2 {\n margin: -0.5rem !important;\n }\n .mt-sm-n2,\n .my-sm-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-sm-n2,\n .mx-sm-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-sm-n2,\n .my-sm-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-sm-n2,\n .mx-sm-n2 {\n margin-left: -0.5rem !important;\n }\n .m-sm-n3 {\n margin: -1rem !important;\n }\n .mt-sm-n3,\n .my-sm-n3 {\n margin-top: -1rem !important;\n }\n .mr-sm-n3,\n .mx-sm-n3 {\n margin-right: -1rem !important;\n }\n .mb-sm-n3,\n .my-sm-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-sm-n3,\n .mx-sm-n3 {\n margin-left: -1rem !important;\n }\n .m-sm-n4 {\n margin: -1.5rem !important;\n }\n .mt-sm-n4,\n .my-sm-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-sm-n4,\n .mx-sm-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-sm-n4,\n .my-sm-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-sm-n4,\n .mx-sm-n4 {\n margin-left: -1.5rem !important;\n }\n .m-sm-n5 {\n margin: -3rem !important;\n }\n .mt-sm-n5,\n .my-sm-n5 {\n margin-top: -3rem !important;\n }\n .mr-sm-n5,\n .mx-sm-n5 {\n margin-right: -3rem !important;\n }\n .mb-sm-n5,\n .my-sm-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-sm-n5,\n .mx-sm-n5 {\n margin-left: -3rem !important;\n }\n .m-sm-auto {\n margin: auto !important;\n }\n .mt-sm-auto,\n .my-sm-auto {\n margin-top: auto !important;\n }\n .mr-sm-auto,\n .mx-sm-auto {\n margin-right: auto !important;\n }\n .mb-sm-auto,\n .my-sm-auto {\n margin-bottom: auto !important;\n }\n .ml-sm-auto,\n .mx-sm-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 768px) {\n .m-md-0 {\n margin: 0 !important;\n }\n .mt-md-0,\n .my-md-0 {\n margin-top: 0 !important;\n }\n .mr-md-0,\n .mx-md-0 {\n margin-right: 0 !important;\n }\n .mb-md-0,\n .my-md-0 {\n margin-bottom: 0 !important;\n }\n .ml-md-0,\n .mx-md-0 {\n margin-left: 0 !important;\n }\n .m-md-1 {\n margin: 0.25rem !important;\n }\n .mt-md-1,\n .my-md-1 {\n margin-top: 0.25rem !important;\n }\n .mr-md-1,\n .mx-md-1 {\n margin-right: 0.25rem !important;\n }\n .mb-md-1,\n .my-md-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-md-1,\n .mx-md-1 {\n margin-left: 0.25rem !important;\n }\n .m-md-2 {\n margin: 0.5rem !important;\n }\n .mt-md-2,\n .my-md-2 {\n margin-top: 0.5rem !important;\n }\n .mr-md-2,\n .mx-md-2 {\n margin-right: 0.5rem !important;\n }\n .mb-md-2,\n .my-md-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-md-2,\n .mx-md-2 {\n margin-left: 0.5rem !important;\n }\n .m-md-3 {\n margin: 1rem !important;\n }\n .mt-md-3,\n .my-md-3 {\n margin-top: 1rem !important;\n }\n .mr-md-3,\n .mx-md-3 {\n margin-right: 1rem !important;\n }\n .mb-md-3,\n .my-md-3 {\n margin-bottom: 1rem !important;\n }\n .ml-md-3,\n .mx-md-3 {\n margin-left: 1rem !important;\n }\n .m-md-4 {\n margin: 1.5rem !important;\n }\n .mt-md-4,\n .my-md-4 {\n margin-top: 1.5rem !important;\n }\n .mr-md-4,\n .mx-md-4 {\n margin-right: 1.5rem !important;\n }\n .mb-md-4,\n .my-md-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-md-4,\n .mx-md-4 {\n margin-left: 1.5rem !important;\n }\n .m-md-5 {\n margin: 3rem !important;\n }\n .mt-md-5,\n .my-md-5 {\n margin-top: 3rem !important;\n }\n .mr-md-5,\n .mx-md-5 {\n margin-right: 3rem !important;\n }\n .mb-md-5,\n .my-md-5 {\n margin-bottom: 3rem !important;\n }\n .ml-md-5,\n .mx-md-5 {\n margin-left: 3rem !important;\n }\n .p-md-0 {\n padding: 0 !important;\n }\n .pt-md-0,\n .py-md-0 {\n padding-top: 0 !important;\n }\n .pr-md-0,\n .px-md-0 {\n padding-right: 0 !important;\n }\n .pb-md-0,\n .py-md-0 {\n padding-bottom: 0 !important;\n }\n .pl-md-0,\n .px-md-0 {\n padding-left: 0 !important;\n }\n .p-md-1 {\n padding: 0.25rem !important;\n }\n .pt-md-1,\n .py-md-1 {\n padding-top: 0.25rem !important;\n }\n .pr-md-1,\n .px-md-1 {\n padding-right: 0.25rem !important;\n }\n .pb-md-1,\n .py-md-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-md-1,\n .px-md-1 {\n padding-left: 0.25rem !important;\n }\n .p-md-2 {\n padding: 0.5rem !important;\n }\n .pt-md-2,\n .py-md-2 {\n padding-top: 0.5rem !important;\n }\n .pr-md-2,\n .px-md-2 {\n padding-right: 0.5rem !important;\n }\n .pb-md-2,\n .py-md-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-md-2,\n .px-md-2 {\n padding-left: 0.5rem !important;\n }\n .p-md-3 {\n padding: 1rem !important;\n }\n .pt-md-3,\n .py-md-3 {\n padding-top: 1rem !important;\n }\n .pr-md-3,\n .px-md-3 {\n padding-right: 1rem !important;\n }\n .pb-md-3,\n .py-md-3 {\n padding-bottom: 1rem !important;\n }\n .pl-md-3,\n .px-md-3 {\n padding-left: 1rem !important;\n }\n .p-md-4 {\n padding: 1.5rem !important;\n }\n .pt-md-4,\n .py-md-4 {\n padding-top: 1.5rem !important;\n }\n .pr-md-4,\n .px-md-4 {\n padding-right: 1.5rem !important;\n }\n .pb-md-4,\n .py-md-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-md-4,\n .px-md-4 {\n padding-left: 1.5rem !important;\n }\n .p-md-5 {\n padding: 3rem !important;\n }\n .pt-md-5,\n .py-md-5 {\n padding-top: 3rem !important;\n }\n .pr-md-5,\n .px-md-5 {\n padding-right: 3rem !important;\n }\n .pb-md-5,\n .py-md-5 {\n padding-bottom: 3rem !important;\n }\n .pl-md-5,\n .px-md-5 {\n padding-left: 3rem !important;\n }\n .m-md-n1 {\n margin: -0.25rem !important;\n }\n .mt-md-n1,\n .my-md-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-md-n1,\n .mx-md-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-md-n1,\n .my-md-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-md-n1,\n .mx-md-n1 {\n margin-left: -0.25rem !important;\n }\n .m-md-n2 {\n margin: -0.5rem !important;\n }\n .mt-md-n2,\n .my-md-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-md-n2,\n .mx-md-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-md-n2,\n .my-md-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-md-n2,\n .mx-md-n2 {\n margin-left: -0.5rem !important;\n }\n .m-md-n3 {\n margin: -1rem !important;\n }\n .mt-md-n3,\n .my-md-n3 {\n margin-top: -1rem !important;\n }\n .mr-md-n3,\n .mx-md-n3 {\n margin-right: -1rem !important;\n }\n .mb-md-n3,\n .my-md-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-md-n3,\n .mx-md-n3 {\n margin-left: -1rem !important;\n }\n .m-md-n4 {\n margin: -1.5rem !important;\n }\n .mt-md-n4,\n .my-md-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-md-n4,\n .mx-md-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-md-n4,\n .my-md-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-md-n4,\n .mx-md-n4 {\n margin-left: -1.5rem !important;\n }\n .m-md-n5 {\n margin: -3rem !important;\n }\n .mt-md-n5,\n .my-md-n5 {\n margin-top: -3rem !important;\n }\n .mr-md-n5,\n .mx-md-n5 {\n margin-right: -3rem !important;\n }\n .mb-md-n5,\n .my-md-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-md-n5,\n .mx-md-n5 {\n margin-left: -3rem !important;\n }\n .m-md-auto {\n margin: auto !important;\n }\n .mt-md-auto,\n .my-md-auto {\n margin-top: auto !important;\n }\n .mr-md-auto,\n .mx-md-auto {\n margin-right: auto !important;\n }\n .mb-md-auto,\n .my-md-auto {\n margin-bottom: auto !important;\n }\n .ml-md-auto,\n .mx-md-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 992px) {\n .m-lg-0 {\n margin: 0 !important;\n }\n .mt-lg-0,\n .my-lg-0 {\n margin-top: 0 !important;\n }\n .mr-lg-0,\n .mx-lg-0 {\n margin-right: 0 !important;\n }\n .mb-lg-0,\n .my-lg-0 {\n margin-bottom: 0 !important;\n }\n .ml-lg-0,\n .mx-lg-0 {\n margin-left: 0 !important;\n }\n .m-lg-1 {\n margin: 0.25rem !important;\n }\n .mt-lg-1,\n .my-lg-1 {\n margin-top: 0.25rem !important;\n }\n .mr-lg-1,\n .mx-lg-1 {\n margin-right: 0.25rem !important;\n }\n .mb-lg-1,\n .my-lg-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-lg-1,\n .mx-lg-1 {\n margin-left: 0.25rem !important;\n }\n .m-lg-2 {\n margin: 0.5rem !important;\n }\n .mt-lg-2,\n .my-lg-2 {\n margin-top: 0.5rem !important;\n }\n .mr-lg-2,\n .mx-lg-2 {\n margin-right: 0.5rem !important;\n }\n .mb-lg-2,\n .my-lg-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-lg-2,\n .mx-lg-2 {\n margin-left: 0.5rem !important;\n }\n .m-lg-3 {\n margin: 1rem !important;\n }\n .mt-lg-3,\n .my-lg-3 {\n margin-top: 1rem !important;\n }\n .mr-lg-3,\n .mx-lg-3 {\n margin-right: 1rem !important;\n }\n .mb-lg-3,\n .my-lg-3 {\n margin-bottom: 1rem !important;\n }\n .ml-lg-3,\n .mx-lg-3 {\n margin-left: 1rem !important;\n }\n .m-lg-4 {\n margin: 1.5rem !important;\n }\n .mt-lg-4,\n .my-lg-4 {\n margin-top: 1.5rem !important;\n }\n .mr-lg-4,\n .mx-lg-4 {\n margin-right: 1.5rem !important;\n }\n .mb-lg-4,\n .my-lg-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-lg-4,\n .mx-lg-4 {\n margin-left: 1.5rem !important;\n }\n .m-lg-5 {\n margin: 3rem !important;\n }\n .mt-lg-5,\n .my-lg-5 {\n margin-top: 3rem !important;\n }\n .mr-lg-5,\n .mx-lg-5 {\n margin-right: 3rem !important;\n }\n .mb-lg-5,\n .my-lg-5 {\n margin-bottom: 3rem !important;\n }\n .ml-lg-5,\n .mx-lg-5 {\n margin-left: 3rem !important;\n }\n .p-lg-0 {\n padding: 0 !important;\n }\n .pt-lg-0,\n .py-lg-0 {\n padding-top: 0 !important;\n }\n .pr-lg-0,\n .px-lg-0 {\n padding-right: 0 !important;\n }\n .pb-lg-0,\n .py-lg-0 {\n padding-bottom: 0 !important;\n }\n .pl-lg-0,\n .px-lg-0 {\n padding-left: 0 !important;\n }\n .p-lg-1 {\n padding: 0.25rem !important;\n }\n .pt-lg-1,\n .py-lg-1 {\n padding-top: 0.25rem !important;\n }\n .pr-lg-1,\n .px-lg-1 {\n padding-right: 0.25rem !important;\n }\n .pb-lg-1,\n .py-lg-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-lg-1,\n .px-lg-1 {\n padding-left: 0.25rem !important;\n }\n .p-lg-2 {\n padding: 0.5rem !important;\n }\n .pt-lg-2,\n .py-lg-2 {\n padding-top: 0.5rem !important;\n }\n .pr-lg-2,\n .px-lg-2 {\n padding-right: 0.5rem !important;\n }\n .pb-lg-2,\n .py-lg-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-lg-2,\n .px-lg-2 {\n padding-left: 0.5rem !important;\n }\n .p-lg-3 {\n padding: 1rem !important;\n }\n .pt-lg-3,\n .py-lg-3 {\n padding-top: 1rem !important;\n }\n .pr-lg-3,\n .px-lg-3 {\n padding-right: 1rem !important;\n }\n .pb-lg-3,\n .py-lg-3 {\n padding-bottom: 1rem !important;\n }\n .pl-lg-3,\n .px-lg-3 {\n padding-left: 1rem !important;\n }\n .p-lg-4 {\n padding: 1.5rem !important;\n }\n .pt-lg-4,\n .py-lg-4 {\n padding-top: 1.5rem !important;\n }\n .pr-lg-4,\n .px-lg-4 {\n padding-right: 1.5rem !important;\n }\n .pb-lg-4,\n .py-lg-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-lg-4,\n .px-lg-4 {\n padding-left: 1.5rem !important;\n }\n .p-lg-5 {\n padding: 3rem !important;\n }\n .pt-lg-5,\n .py-lg-5 {\n padding-top: 3rem !important;\n }\n .pr-lg-5,\n .px-lg-5 {\n padding-right: 3rem !important;\n }\n .pb-lg-5,\n .py-lg-5 {\n padding-bottom: 3rem !important;\n }\n .pl-lg-5,\n .px-lg-5 {\n padding-left: 3rem !important;\n }\n .m-lg-n1 {\n margin: -0.25rem !important;\n }\n .mt-lg-n1,\n .my-lg-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-lg-n1,\n .mx-lg-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-lg-n1,\n .my-lg-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-lg-n1,\n .mx-lg-n1 {\n margin-left: -0.25rem !important;\n }\n .m-lg-n2 {\n margin: -0.5rem !important;\n }\n .mt-lg-n2,\n .my-lg-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-lg-n2,\n .mx-lg-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-lg-n2,\n .my-lg-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-lg-n2,\n .mx-lg-n2 {\n margin-left: -0.5rem !important;\n }\n .m-lg-n3 {\n margin: -1rem !important;\n }\n .mt-lg-n3,\n .my-lg-n3 {\n margin-top: -1rem !important;\n }\n .mr-lg-n3,\n .mx-lg-n3 {\n margin-right: -1rem !important;\n }\n .mb-lg-n3,\n .my-lg-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-lg-n3,\n .mx-lg-n3 {\n margin-left: -1rem !important;\n }\n .m-lg-n4 {\n margin: -1.5rem !important;\n }\n .mt-lg-n4,\n .my-lg-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-lg-n4,\n .mx-lg-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-lg-n4,\n .my-lg-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-lg-n4,\n .mx-lg-n4 {\n margin-left: -1.5rem !important;\n }\n .m-lg-n5 {\n margin: -3rem !important;\n }\n .mt-lg-n5,\n .my-lg-n5 {\n margin-top: -3rem !important;\n }\n .mr-lg-n5,\n .mx-lg-n5 {\n margin-right: -3rem !important;\n }\n .mb-lg-n5,\n .my-lg-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-lg-n5,\n .mx-lg-n5 {\n margin-left: -3rem !important;\n }\n .m-lg-auto {\n margin: auto !important;\n }\n .mt-lg-auto,\n .my-lg-auto {\n margin-top: auto !important;\n }\n .mr-lg-auto,\n .mx-lg-auto {\n margin-right: auto !important;\n }\n .mb-lg-auto,\n .my-lg-auto {\n margin-bottom: auto !important;\n }\n .ml-lg-auto,\n .mx-lg-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 1200px) {\n .m-xl-0 {\n margin: 0 !important;\n }\n .mt-xl-0,\n .my-xl-0 {\n margin-top: 0 !important;\n }\n .mr-xl-0,\n .mx-xl-0 {\n margin-right: 0 !important;\n }\n .mb-xl-0,\n .my-xl-0 {\n margin-bottom: 0 !important;\n }\n .ml-xl-0,\n .mx-xl-0 {\n margin-left: 0 !important;\n }\n .m-xl-1 {\n margin: 0.25rem !important;\n }\n .mt-xl-1,\n .my-xl-1 {\n margin-top: 0.25rem !important;\n }\n .mr-xl-1,\n .mx-xl-1 {\n margin-right: 0.25rem !important;\n }\n .mb-xl-1,\n .my-xl-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-xl-1,\n .mx-xl-1 {\n margin-left: 0.25rem !important;\n }\n .m-xl-2 {\n margin: 0.5rem !important;\n }\n .mt-xl-2,\n .my-xl-2 {\n margin-top: 0.5rem !important;\n }\n .mr-xl-2,\n .mx-xl-2 {\n margin-right: 0.5rem !important;\n }\n .mb-xl-2,\n .my-xl-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-xl-2,\n .mx-xl-2 {\n margin-left: 0.5rem !important;\n }\n .m-xl-3 {\n margin: 1rem !important;\n }\n .mt-xl-3,\n .my-xl-3 {\n margin-top: 1rem !important;\n }\n .mr-xl-3,\n .mx-xl-3 {\n margin-right: 1rem !important;\n }\n .mb-xl-3,\n .my-xl-3 {\n margin-bottom: 1rem !important;\n }\n .ml-xl-3,\n .mx-xl-3 {\n margin-left: 1rem !important;\n }\n .m-xl-4 {\n margin: 1.5rem !important;\n }\n .mt-xl-4,\n .my-xl-4 {\n margin-top: 1.5rem !important;\n }\n .mr-xl-4,\n .mx-xl-4 {\n margin-right: 1.5rem !important;\n }\n .mb-xl-4,\n .my-xl-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-xl-4,\n .mx-xl-4 {\n margin-left: 1.5rem !important;\n }\n .m-xl-5 {\n margin: 3rem !important;\n }\n .mt-xl-5,\n .my-xl-5 {\n margin-top: 3rem !important;\n }\n .mr-xl-5,\n .mx-xl-5 {\n margin-right: 3rem !important;\n }\n .mb-xl-5,\n .my-xl-5 {\n margin-bottom: 3rem !important;\n }\n .ml-xl-5,\n .mx-xl-5 {\n margin-left: 3rem !important;\n }\n .p-xl-0 {\n padding: 0 !important;\n }\n .pt-xl-0,\n .py-xl-0 {\n padding-top: 0 !important;\n }\n .pr-xl-0,\n .px-xl-0 {\n padding-right: 0 !important;\n }\n .pb-xl-0,\n .py-xl-0 {\n padding-bottom: 0 !important;\n }\n .pl-xl-0,\n .px-xl-0 {\n padding-left: 0 !important;\n }\n .p-xl-1 {\n padding: 0.25rem !important;\n }\n .pt-xl-1,\n .py-xl-1 {\n padding-top: 0.25rem !important;\n }\n .pr-xl-1,\n .px-xl-1 {\n padding-right: 0.25rem !important;\n }\n .pb-xl-1,\n .py-xl-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-xl-1,\n .px-xl-1 {\n padding-left: 0.25rem !important;\n }\n .p-xl-2 {\n padding: 0.5rem !important;\n }\n .pt-xl-2,\n .py-xl-2 {\n padding-top: 0.5rem !important;\n }\n .pr-xl-2,\n .px-xl-2 {\n padding-right: 0.5rem !important;\n }\n .pb-xl-2,\n .py-xl-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-xl-2,\n .px-xl-2 {\n padding-left: 0.5rem !important;\n }\n .p-xl-3 {\n padding: 1rem !important;\n }\n .pt-xl-3,\n .py-xl-3 {\n padding-top: 1rem !important;\n }\n .pr-xl-3,\n .px-xl-3 {\n padding-right: 1rem !important;\n }\n .pb-xl-3,\n .py-xl-3 {\n padding-bottom: 1rem !important;\n }\n .pl-xl-3,\n .px-xl-3 {\n padding-left: 1rem !important;\n }\n .p-xl-4 {\n padding: 1.5rem !important;\n }\n .pt-xl-4,\n .py-xl-4 {\n padding-top: 1.5rem !important;\n }\n .pr-xl-4,\n .px-xl-4 {\n padding-right: 1.5rem !important;\n }\n .pb-xl-4,\n .py-xl-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-xl-4,\n .px-xl-4 {\n padding-left: 1.5rem !important;\n }\n .p-xl-5 {\n padding: 3rem !important;\n }\n .pt-xl-5,\n .py-xl-5 {\n padding-top: 3rem !important;\n }\n .pr-xl-5,\n .px-xl-5 {\n padding-right: 3rem !important;\n }\n .pb-xl-5,\n .py-xl-5 {\n padding-bottom: 3rem !important;\n }\n .pl-xl-5,\n .px-xl-5 {\n padding-left: 3rem !important;\n }\n .m-xl-n1 {\n margin: -0.25rem !important;\n }\n .mt-xl-n1,\n .my-xl-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-xl-n1,\n .mx-xl-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-xl-n1,\n .my-xl-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-xl-n1,\n .mx-xl-n1 {\n margin-left: -0.25rem !important;\n }\n .m-xl-n2 {\n margin: -0.5rem !important;\n }\n .mt-xl-n2,\n .my-xl-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-xl-n2,\n .mx-xl-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-xl-n2,\n .my-xl-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-xl-n2,\n .mx-xl-n2 {\n margin-left: -0.5rem !important;\n }\n .m-xl-n3 {\n margin: -1rem !important;\n }\n .mt-xl-n3,\n .my-xl-n3 {\n margin-top: -1rem !important;\n }\n .mr-xl-n3,\n .mx-xl-n3 {\n margin-right: -1rem !important;\n }\n .mb-xl-n3,\n .my-xl-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-xl-n3,\n .mx-xl-n3 {\n margin-left: -1rem !important;\n }\n .m-xl-n4 {\n margin: -1.5rem !important;\n }\n .mt-xl-n4,\n .my-xl-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-xl-n4,\n .mx-xl-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-xl-n4,\n .my-xl-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-xl-n4,\n .mx-xl-n4 {\n margin-left: -1.5rem !important;\n }\n .m-xl-n5 {\n margin: -3rem !important;\n }\n .mt-xl-n5,\n .my-xl-n5 {\n margin-top: -3rem !important;\n }\n .mr-xl-n5,\n .mx-xl-n5 {\n margin-right: -3rem !important;\n }\n .mb-xl-n5,\n .my-xl-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-xl-n5,\n .mx-xl-n5 {\n margin-left: -3rem !important;\n }\n .m-xl-auto {\n margin: auto !important;\n }\n .mt-xl-auto,\n .my-xl-auto {\n margin-top: auto !important;\n }\n .mr-xl-auto,\n .mx-xl-auto {\n margin-right: auto !important;\n }\n .mb-xl-auto,\n .my-xl-auto {\n margin-bottom: auto !important;\n }\n .ml-xl-auto,\n .mx-xl-auto {\n margin-left: auto !important;\n }\n}\n\n/*# sourceMappingURL=bootstrap-grid.css.map */","// Container widths\n//\n// Set the container width, and override it for fixed navbars in media queries.\n\n@if $enable-grid-classes {\n // Single container class with breakpoint max-widths\n .container {\n @include make-container();\n @include make-container-max-widths();\n }\n\n // 100% wide container at all breakpoints\n .container-fluid {\n @include make-container();\n }\n\n // Responsive containers that are 100% wide until a breakpoint\n @each $breakpoint, $container-max-width in $container-max-widths {\n .container-#{$breakpoint} {\n @extend .container-fluid;\n }\n\n @include media-breakpoint-up($breakpoint, $grid-breakpoints) {\n %responsive-container-#{$breakpoint} {\n max-width: $container-max-width;\n }\n\n @each $name, $width in $grid-breakpoints {\n @if ($container-max-width > $width or $breakpoint == $name) {\n .container#{breakpoint-infix($name, $grid-breakpoints)} {\n @extend %responsive-container-#{$breakpoint};\n }\n }\n }\n }\n }\n}\n\n\n// Row\n//\n// Rows contain your columns.\n\n@if $enable-grid-classes {\n .row {\n @include make-row();\n }\n\n // Remove the negative margin from default .row, then the horizontal padding\n // from all immediate children columns (to prevent runaway style inheritance).\n .no-gutters {\n margin-right: 0;\n margin-left: 0;\n\n > .col,\n > [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n }\n }\n}\n\n// Columns\n//\n// Common styles for small and large grid columns\n\n@if $enable-grid-classes {\n @include make-grid-columns();\n}\n","/// Grid system\n//\n// Generate semantic grid columns with these mixins.\n\n@mixin make-container($gutter: $grid-gutter-width) {\n width: 100%;\n padding-right: $gutter / 2;\n padding-left: $gutter / 2;\n margin-right: auto;\n margin-left: auto;\n}\n\n\n// For each breakpoint, define the maximum width of the container in a media query\n@mixin make-container-max-widths($max-widths: $container-max-widths, $breakpoints: $grid-breakpoints) {\n @each $breakpoint, $container-max-width in $max-widths {\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n max-width: $container-max-width;\n }\n }\n}\n\n@mixin make-row($gutter: $grid-gutter-width) {\n display: flex;\n flex-wrap: wrap;\n margin-right: -$gutter / 2;\n margin-left: -$gutter / 2;\n}\n\n@mixin make-col-ready($gutter: $grid-gutter-width) {\n position: relative;\n // Prevent columns from becoming too narrow when at smaller grid tiers by\n // always setting `width: 100%;`. This works because we use `flex` values\n // later on to override this initial width.\n width: 100%;\n padding-right: $gutter / 2;\n padding-left: $gutter / 2;\n}\n\n@mixin make-col($size, $columns: $grid-columns) {\n flex: 0 0 percentage($size / $columns);\n // Add a `max-width` to ensure content within each column does not blow out\n // the width of the column. Applies to IE10+ and Firefox. Chrome and Safari\n // do not appear to require this.\n max-width: percentage($size / $columns);\n}\n\n@mixin make-col-auto() {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%; // Reset earlier grid tiers\n}\n\n@mixin make-col-offset($size, $columns: $grid-columns) {\n $num: $size / $columns;\n margin-left: if($num == 0, 0, percentage($num));\n}\n\n// Row columns\n//\n// Specify on a parent element(e.g., .row) to force immediate children into NN\n// numberof columns. Supports wrapping to new lines, but does not do a Masonry\n// style grid.\n@mixin row-cols($count) {\n & > * {\n flex: 0 0 100% / $count;\n max-width: 100% / $count;\n }\n}\n","// Breakpoint viewport sizes and media queries.\n//\n// Breakpoints are defined as a map of (name: minimum width), order from small to large:\n//\n// (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px)\n//\n// The map defined in the `$grid-breakpoints` global variable is used as the `$breakpoints` argument by default.\n\n// Name of the next breakpoint, or null for the last breakpoint.\n//\n// >> breakpoint-next(sm)\n// md\n// >> breakpoint-next(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// md\n// >> breakpoint-next(sm, $breakpoint-names: (xs sm md lg xl))\n// md\n@function breakpoint-next($name, $breakpoints: $grid-breakpoints, $breakpoint-names: map-keys($breakpoints)) {\n $n: index($breakpoint-names, $name);\n @return if($n != null and $n < length($breakpoint-names), nth($breakpoint-names, $n + 1), null);\n}\n\n// Minimum breakpoint width. Null for the smallest (first) breakpoint.\n//\n// >> breakpoint-min(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 576px\n@function breakpoint-min($name, $breakpoints: $grid-breakpoints) {\n $min: map-get($breakpoints, $name);\n @return if($min != 0, $min, null);\n}\n\n// Maximum breakpoint width. Null for the largest (last) breakpoint.\n// The maximum value is calculated as the minimum of the next one less 0.02px\n// to work around the limitations of `min-` and `max-` prefixes and viewports with fractional widths.\n// See https://www.w3.org/TR/mediaqueries-4/#mq-min-max\n// Uses 0.02px rather than 0.01px to work around a current rounding bug in Safari.\n// See https://bugs.webkit.org/show_bug.cgi?id=178261\n//\n// >> breakpoint-max(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 767.98px\n@function breakpoint-max($name, $breakpoints: $grid-breakpoints) {\n $next: breakpoint-next($name, $breakpoints);\n @return if($next, breakpoint-min($next, $breakpoints) - .02, null);\n}\n\n// Returns a blank string if smallest breakpoint, otherwise returns the name with a dash in front.\n// Useful for making responsive utilities.\n//\n// >> breakpoint-infix(xs, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"\" (Returns a blank string)\n// >> breakpoint-infix(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"-sm\"\n@function breakpoint-infix($name, $breakpoints: $grid-breakpoints) {\n @return if(breakpoint-min($name, $breakpoints) == null, \"\", \"-#{$name}\");\n}\n\n// Media of at least the minimum breakpoint width. No query for the smallest breakpoint.\n// Makes the @content apply to the given breakpoint and wider.\n@mixin media-breakpoint-up($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n @if $min {\n @media (min-width: $min) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media of at most the maximum breakpoint width. No query for the largest breakpoint.\n// Makes the @content apply to the given breakpoint and narrower.\n@mixin media-breakpoint-down($name, $breakpoints: $grid-breakpoints) {\n $max: breakpoint-max($name, $breakpoints);\n @if $max {\n @media (max-width: $max) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media that spans multiple breakpoint widths.\n// Makes the @content apply between the min and max breakpoints\n@mixin media-breakpoint-between($lower, $upper, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($lower, $breakpoints);\n $max: breakpoint-max($upper, $breakpoints);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($lower, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($upper, $breakpoints) {\n @content;\n }\n }\n}\n\n// Media between the breakpoint's minimum and maximum widths.\n// No minimum for the smallest breakpoint, and no maximum for the largest one.\n// Makes the @content apply only to the given breakpoint, not viewports any wider or narrower.\n@mixin media-breakpoint-only($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n $max: breakpoint-max($name, $breakpoints);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($name, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($name, $breakpoints) {\n @content;\n }\n }\n}\n","// Variables\n//\n// Variables should follow the `$component-state-property-size` formula for\n// consistent naming. Ex: $nav-link-disabled-color and $modal-content-box-shadow-xs.\n\n// Color system\n\n$white: #fff !default;\n$gray-100: #f8f9fa !default;\n$gray-200: #e9ecef !default;\n$gray-300: #dee2e6 !default;\n$gray-400: #ced4da !default;\n$gray-500: #adb5bd !default;\n$gray-600: #6c757d !default;\n$gray-700: #495057 !default;\n$gray-800: #343a40 !default;\n$gray-900: #212529 !default;\n$black: #000 !default;\n\n$grays: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$grays: map-merge(\n (\n \"100\": $gray-100,\n \"200\": $gray-200,\n \"300\": $gray-300,\n \"400\": $gray-400,\n \"500\": $gray-500,\n \"600\": $gray-600,\n \"700\": $gray-700,\n \"800\": $gray-800,\n \"900\": $gray-900\n ),\n $grays\n);\n\n$blue: #007bff !default;\n$indigo: #6610f2 !default;\n$purple: #6f42c1 !default;\n$pink: #e83e8c !default;\n$red: #dc3545 !default;\n$orange: #fd7e14 !default;\n$yellow: #ffc107 !default;\n$green: #28a745 !default;\n$teal: #20c997 !default;\n$cyan: #17a2b8 !default;\n\n$colors: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$colors: map-merge(\n (\n \"blue\": $blue,\n \"indigo\": $indigo,\n \"purple\": $purple,\n \"pink\": $pink,\n \"red\": $red,\n \"orange\": $orange,\n \"yellow\": $yellow,\n \"green\": $green,\n \"teal\": $teal,\n \"cyan\": $cyan,\n \"white\": $white,\n \"gray\": $gray-600,\n \"gray-dark\": $gray-800\n ),\n $colors\n);\n\n$primary: $blue !default;\n$secondary: $gray-600 !default;\n$success: $green !default;\n$info: $cyan !default;\n$warning: $yellow !default;\n$danger: $red !default;\n$light: $gray-100 !default;\n$dark: $gray-800 !default;\n\n$theme-colors: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$theme-colors: map-merge(\n (\n \"primary\": $primary,\n \"secondary\": $secondary,\n \"success\": $success,\n \"info\": $info,\n \"warning\": $warning,\n \"danger\": $danger,\n \"light\": $light,\n \"dark\": $dark\n ),\n $theme-colors\n);\n\n// Set a specific jump point for requesting color jumps\n$theme-color-interval: 8% !default;\n\n// The yiq lightness value that determines when the lightness of color changes from \"dark\" to \"light\". Acceptable values are between 0 and 255.\n$yiq-contrasted-threshold: 150 !default;\n\n// Customize the light and dark text colors for use in our YIQ color contrast function.\n$yiq-text-dark: $gray-900 !default;\n$yiq-text-light: $white !default;\n\n// Characters which are escaped by the escape-svg function\n$escaped-characters: (\n (\"<\",\"%3c\"),\n (\">\",\"%3e\"),\n (\"#\",\"%23\"),\n) !default;\n\n\n// Options\n//\n// Quickly modify global styling by enabling or disabling optional features.\n\n$enable-caret: true !default;\n$enable-rounded: true !default;\n$enable-shadows: false !default;\n$enable-gradients: false !default;\n$enable-transitions: true !default;\n$enable-prefers-reduced-motion-media-query: true !default;\n$enable-hover-media-query: false !default; // Deprecated, no longer affects any compiled CSS\n$enable-grid-classes: true !default;\n$enable-pointer-cursor-for-buttons: true !default;\n$enable-print-styles: true !default;\n$enable-responsive-font-sizes: false !default;\n$enable-validation-icons: true !default;\n$enable-deprecation-messages: true !default;\n\n\n// Spacing\n//\n// Control the default styling of most Bootstrap elements by modifying these\n// variables. Mostly focused on spacing.\n// You can add more entries to the $spacers map, should you need more variation.\n\n$spacer: 1rem !default;\n$spacers: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$spacers: map-merge(\n (\n 0: 0,\n 1: ($spacer * .25),\n 2: ($spacer * .5),\n 3: $spacer,\n 4: ($spacer * 1.5),\n 5: ($spacer * 3)\n ),\n $spacers\n);\n\n// This variable affects the `.h-*` and `.w-*` classes.\n$sizes: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$sizes: map-merge(\n (\n 25: 25%,\n 50: 50%,\n 75: 75%,\n 100: 100%,\n auto: auto\n ),\n $sizes\n);\n\n\n// Body\n//\n// Settings for the `` element.\n\n$body-bg: $white !default;\n$body-color: $gray-900 !default;\n\n\n// Links\n//\n// Style anchor elements.\n\n$link-color: theme-color(\"primary\") !default;\n$link-decoration: none !default;\n$link-hover-color: darken($link-color, 15%) !default;\n$link-hover-decoration: underline !default;\n// Darken percentage for links with `.text-*` class (e.g. `.text-success`)\n$emphasized-link-hover-darken-percentage: 15% !default;\n\n// Paragraphs\n//\n// Style p element.\n\n$paragraph-margin-bottom: 1rem !default;\n\n\n// Grid breakpoints\n//\n// Define the minimum dimensions at which your layout will change,\n// adapting to different screen sizes, for use in media queries.\n\n$grid-breakpoints: (\n xs: 0,\n sm: 576px,\n md: 768px,\n lg: 992px,\n xl: 1200px\n) !default;\n\n@include _assert-ascending($grid-breakpoints, \"$grid-breakpoints\");\n@include _assert-starts-at-zero($grid-breakpoints, \"$grid-breakpoints\");\n\n\n// Grid containers\n//\n// Define the maximum width of `.container` for different screen sizes.\n\n$container-max-widths: (\n sm: 540px,\n md: 720px,\n lg: 960px,\n xl: 1140px\n) !default;\n\n@include _assert-ascending($container-max-widths, \"$container-max-widths\");\n\n\n// Grid columns\n//\n// Set the number of columns and specify the width of the gutters.\n\n$grid-columns: 12 !default;\n$grid-gutter-width: 30px !default;\n$grid-row-columns: 6 !default;\n\n\n// Components\n//\n// Define common padding and border radius sizes and more.\n\n$line-height-lg: 1.5 !default;\n$line-height-sm: 1.5 !default;\n\n$border-width: 1px !default;\n$border-color: $gray-300 !default;\n\n$border-radius: .25rem !default;\n$border-radius-lg: .3rem !default;\n$border-radius-sm: .2rem !default;\n\n$rounded-pill: 50rem !default;\n\n$box-shadow-sm: 0 .125rem .25rem rgba($black, .075) !default;\n$box-shadow: 0 .5rem 1rem rgba($black, .15) !default;\n$box-shadow-lg: 0 1rem 3rem rgba($black, .175) !default;\n\n$component-active-color: $white !default;\n$component-active-bg: theme-color(\"primary\") !default;\n\n$caret-width: .3em !default;\n$caret-vertical-align: $caret-width * .85 !default;\n$caret-spacing: $caret-width * .85 !default;\n\n$transition-base: all .2s ease-in-out !default;\n$transition-fade: opacity .15s linear !default;\n$transition-collapse: height .35s ease !default;\n\n$embed-responsive-aspect-ratios: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$embed-responsive-aspect-ratios: join(\n (\n (21 9),\n (16 9),\n (4 3),\n (1 1),\n ),\n $embed-responsive-aspect-ratios\n);\n\n// Typography\n//\n// Font, line-height, and color for body text, headings, and more.\n\n// stylelint-disable value-keyword-case\n$font-family-sans-serif: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\" !default;\n$font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace !default;\n$font-family-base: $font-family-sans-serif !default;\n// stylelint-enable value-keyword-case\n\n$font-size-base: 1rem !default; // Assumes the browser default, typically `16px`\n$font-size-lg: $font-size-base * 1.25 !default;\n$font-size-sm: $font-size-base * .875 !default;\n\n$font-weight-lighter: lighter !default;\n$font-weight-light: 300 !default;\n$font-weight-normal: 400 !default;\n$font-weight-bold: 700 !default;\n$font-weight-bolder: bolder !default;\n\n$font-weight-base: $font-weight-normal !default;\n$line-height-base: 1.5 !default;\n\n$h1-font-size: $font-size-base * 2.5 !default;\n$h2-font-size: $font-size-base * 2 !default;\n$h3-font-size: $font-size-base * 1.75 !default;\n$h4-font-size: $font-size-base * 1.5 !default;\n$h5-font-size: $font-size-base * 1.25 !default;\n$h6-font-size: $font-size-base !default;\n\n$headings-margin-bottom: $spacer / 2 !default;\n$headings-font-family: null !default;\n$headings-font-weight: 500 !default;\n$headings-line-height: 1.2 !default;\n$headings-color: null !default;\n\n$display1-size: 6rem !default;\n$display2-size: 5.5rem !default;\n$display3-size: 4.5rem !default;\n$display4-size: 3.5rem !default;\n\n$display1-weight: 300 !default;\n$display2-weight: 300 !default;\n$display3-weight: 300 !default;\n$display4-weight: 300 !default;\n$display-line-height: $headings-line-height !default;\n\n$lead-font-size: $font-size-base * 1.25 !default;\n$lead-font-weight: 300 !default;\n\n$small-font-size: 80% !default;\n\n$text-muted: $gray-600 !default;\n\n$blockquote-small-color: $gray-600 !default;\n$blockquote-small-font-size: $small-font-size !default;\n$blockquote-font-size: $font-size-base * 1.25 !default;\n\n$hr-border-color: rgba($black, .1) !default;\n$hr-border-width: $border-width !default;\n\n$mark-padding: .2em !default;\n\n$dt-font-weight: $font-weight-bold !default;\n\n$kbd-box-shadow: inset 0 -.1rem 0 rgba($black, .25) !default;\n$nested-kbd-font-weight: $font-weight-bold !default;\n\n$list-inline-padding: .5rem !default;\n\n$mark-bg: #fcf8e3 !default;\n\n$hr-margin-y: $spacer !default;\n\n\n// Tables\n//\n// Customizes the `.table` component with basic values, each used across all table variations.\n\n$table-cell-padding: .75rem !default;\n$table-cell-padding-sm: .3rem !default;\n\n$table-color: $body-color !default;\n$table-bg: null !default;\n$table-accent-bg: rgba($black, .05) !default;\n$table-hover-color: $table-color !default;\n$table-hover-bg: rgba($black, .075) !default;\n$table-active-bg: $table-hover-bg !default;\n\n$table-border-width: $border-width !default;\n$table-border-color: $border-color !default;\n\n$table-head-bg: $gray-200 !default;\n$table-head-color: $gray-700 !default;\n\n$table-dark-color: $white !default;\n$table-dark-bg: $gray-800 !default;\n$table-dark-accent-bg: rgba($white, .05) !default;\n$table-dark-hover-color: $table-dark-color !default;\n$table-dark-hover-bg: rgba($white, .075) !default;\n$table-dark-border-color: lighten($table-dark-bg, 7.5%) !default;\n\n$table-striped-order: odd !default;\n\n$table-caption-color: $text-muted !default;\n\n$table-bg-level: -9 !default;\n$table-border-level: -6 !default;\n\n\n// Buttons + Forms\n//\n// Shared variables that are reassigned to `$input-` and `$btn-` specific variables.\n\n$input-btn-padding-y: .375rem !default;\n$input-btn-padding-x: .75rem !default;\n$input-btn-font-family: null !default;\n$input-btn-font-size: $font-size-base !default;\n$input-btn-line-height: $line-height-base !default;\n\n$input-btn-focus-width: .2rem !default;\n$input-btn-focus-color: rgba($component-active-bg, .25) !default;\n$input-btn-focus-box-shadow: 0 0 0 $input-btn-focus-width $input-btn-focus-color !default;\n\n$input-btn-padding-y-sm: .25rem !default;\n$input-btn-padding-x-sm: .5rem !default;\n$input-btn-font-size-sm: $font-size-sm !default;\n$input-btn-line-height-sm: $line-height-sm !default;\n\n$input-btn-padding-y-lg: .5rem !default;\n$input-btn-padding-x-lg: 1rem !default;\n$input-btn-font-size-lg: $font-size-lg !default;\n$input-btn-line-height-lg: $line-height-lg !default;\n\n$input-btn-border-width: $border-width !default;\n\n\n// Buttons\n//\n// For each of Bootstrap's buttons, define text, background, and border color.\n\n$btn-padding-y: $input-btn-padding-y !default;\n$btn-padding-x: $input-btn-padding-x !default;\n$btn-font-family: $input-btn-font-family !default;\n$btn-font-size: $input-btn-font-size !default;\n$btn-line-height: $input-btn-line-height !default;\n$btn-white-space: null !default; // Set to `nowrap` to prevent text wrapping\n\n$btn-padding-y-sm: $input-btn-padding-y-sm !default;\n$btn-padding-x-sm: $input-btn-padding-x-sm !default;\n$btn-font-size-sm: $input-btn-font-size-sm !default;\n$btn-line-height-sm: $input-btn-line-height-sm !default;\n\n$btn-padding-y-lg: $input-btn-padding-y-lg !default;\n$btn-padding-x-lg: $input-btn-padding-x-lg !default;\n$btn-font-size-lg: $input-btn-font-size-lg !default;\n$btn-line-height-lg: $input-btn-line-height-lg !default;\n\n$btn-border-width: $input-btn-border-width !default;\n\n$btn-font-weight: $font-weight-normal !default;\n$btn-box-shadow: inset 0 1px 0 rgba($white, .15), 0 1px 1px rgba($black, .075) !default;\n$btn-focus-width: $input-btn-focus-width !default;\n$btn-focus-box-shadow: $input-btn-focus-box-shadow !default;\n$btn-disabled-opacity: .65 !default;\n$btn-active-box-shadow: inset 0 3px 5px rgba($black, .125) !default;\n\n$btn-link-disabled-color: $gray-600 !default;\n\n$btn-block-spacing-y: .5rem !default;\n\n// Allows for customizing button radius independently from global border radius\n$btn-border-radius: $border-radius !default;\n$btn-border-radius-lg: $border-radius-lg !default;\n$btn-border-radius-sm: $border-radius-sm !default;\n\n$btn-transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n\n// Forms\n\n$label-margin-bottom: .5rem !default;\n\n$input-padding-y: $input-btn-padding-y !default;\n$input-padding-x: $input-btn-padding-x !default;\n$input-font-family: $input-btn-font-family !default;\n$input-font-size: $input-btn-font-size !default;\n$input-font-weight: $font-weight-base !default;\n$input-line-height: $input-btn-line-height !default;\n\n$input-padding-y-sm: $input-btn-padding-y-sm !default;\n$input-padding-x-sm: $input-btn-padding-x-sm !default;\n$input-font-size-sm: $input-btn-font-size-sm !default;\n$input-line-height-sm: $input-btn-line-height-sm !default;\n\n$input-padding-y-lg: $input-btn-padding-y-lg !default;\n$input-padding-x-lg: $input-btn-padding-x-lg !default;\n$input-font-size-lg: $input-btn-font-size-lg !default;\n$input-line-height-lg: $input-btn-line-height-lg !default;\n\n$input-bg: $white !default;\n$input-disabled-bg: $gray-200 !default;\n\n$input-color: $gray-700 !default;\n$input-border-color: $gray-400 !default;\n$input-border-width: $input-btn-border-width !default;\n$input-box-shadow: inset 0 1px 1px rgba($black, .075) !default;\n\n$input-border-radius: $border-radius !default;\n$input-border-radius-lg: $border-radius-lg !default;\n$input-border-radius-sm: $border-radius-sm !default;\n\n$input-focus-bg: $input-bg !default;\n$input-focus-border-color: lighten($component-active-bg, 25%) !default;\n$input-focus-color: $input-color !default;\n$input-focus-width: $input-btn-focus-width !default;\n$input-focus-box-shadow: $input-btn-focus-box-shadow !default;\n\n$input-placeholder-color: $gray-600 !default;\n$input-plaintext-color: $body-color !default;\n\n$input-height-border: $input-border-width * 2 !default;\n\n$input-height-inner: add($input-line-height * 1em, $input-padding-y * 2) !default;\n$input-height-inner-half: add($input-line-height * .5em, $input-padding-y) !default;\n$input-height-inner-quarter: add($input-line-height * .25em, $input-padding-y / 2) !default;\n\n$input-height: add($input-line-height * 1em, add($input-padding-y * 2, $input-height-border, false)) !default;\n$input-height-sm: add($input-line-height-sm * 1em, add($input-padding-y-sm * 2, $input-height-border, false)) !default;\n$input-height-lg: add($input-line-height-lg * 1em, add($input-padding-y-lg * 2, $input-height-border, false)) !default;\n\n$input-transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n$form-text-margin-top: .25rem !default;\n\n$form-check-input-gutter: 1.25rem !default;\n$form-check-input-margin-y: .3rem !default;\n$form-check-input-margin-x: .25rem !default;\n\n$form-check-inline-margin-x: .75rem !default;\n$form-check-inline-input-margin-x: .3125rem !default;\n\n$form-grid-gutter-width: 10px !default;\n$form-group-margin-bottom: 1rem !default;\n\n$input-group-addon-color: $input-color !default;\n$input-group-addon-bg: $gray-200 !default;\n$input-group-addon-border-color: $input-border-color !default;\n\n$custom-forms-transition: background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n$custom-control-gutter: .5rem !default;\n$custom-control-spacer-x: 1rem !default;\n$custom-control-cursor: null !default;\n\n$custom-control-indicator-size: 1rem !default;\n$custom-control-indicator-bg: $input-bg !default;\n\n$custom-control-indicator-bg-size: 50% 50% !default;\n$custom-control-indicator-box-shadow: $input-box-shadow !default;\n$custom-control-indicator-border-color: $gray-500 !default;\n$custom-control-indicator-border-width: $input-border-width !default;\n\n$custom-control-label-color: null !default;\n\n$custom-control-indicator-disabled-bg: $input-disabled-bg !default;\n$custom-control-label-disabled-color: $gray-600 !default;\n\n$custom-control-indicator-checked-color: $component-active-color !default;\n$custom-control-indicator-checked-bg: $component-active-bg !default;\n$custom-control-indicator-checked-disabled-bg: rgba(theme-color(\"primary\"), .5) !default;\n$custom-control-indicator-checked-box-shadow: none !default;\n$custom-control-indicator-checked-border-color: $custom-control-indicator-checked-bg !default;\n\n$custom-control-indicator-focus-box-shadow: $input-focus-box-shadow !default;\n$custom-control-indicator-focus-border-color: $input-focus-border-color !default;\n\n$custom-control-indicator-active-color: $component-active-color !default;\n$custom-control-indicator-active-bg: lighten($component-active-bg, 35%) !default;\n$custom-control-indicator-active-box-shadow: none !default;\n$custom-control-indicator-active-border-color: $custom-control-indicator-active-bg !default;\n\n$custom-checkbox-indicator-border-radius: $border-radius !default;\n$custom-checkbox-indicator-icon-checked: url(\"data:image/svg+xml,\") !default;\n\n$custom-checkbox-indicator-indeterminate-bg: $component-active-bg !default;\n$custom-checkbox-indicator-indeterminate-color: $custom-control-indicator-checked-color !default;\n$custom-checkbox-indicator-icon-indeterminate: url(\"data:image/svg+xml,\") !default;\n$custom-checkbox-indicator-indeterminate-box-shadow: none !default;\n$custom-checkbox-indicator-indeterminate-border-color: $custom-checkbox-indicator-indeterminate-bg !default;\n\n$custom-radio-indicator-border-radius: 50% !default;\n$custom-radio-indicator-icon-checked: url(\"data:image/svg+xml,\") !default;\n\n$custom-switch-width: $custom-control-indicator-size * 1.75 !default;\n$custom-switch-indicator-border-radius: $custom-control-indicator-size / 2 !default;\n$custom-switch-indicator-size: subtract($custom-control-indicator-size, $custom-control-indicator-border-width * 4) !default;\n\n$custom-select-padding-y: $input-padding-y !default;\n$custom-select-padding-x: $input-padding-x !default;\n$custom-select-font-family: $input-font-family !default;\n$custom-select-font-size: $input-font-size !default;\n$custom-select-height: $input-height !default;\n$custom-select-indicator-padding: 1rem !default; // Extra padding to account for the presence of the background-image based indicator\n$custom-select-font-weight: $input-font-weight !default;\n$custom-select-line-height: $input-line-height !default;\n$custom-select-color: $input-color !default;\n$custom-select-disabled-color: $gray-600 !default;\n$custom-select-bg: $input-bg !default;\n$custom-select-disabled-bg: $gray-200 !default;\n$custom-select-bg-size: 8px 10px !default; // In pixels because image dimensions\n$custom-select-indicator-color: $gray-800 !default;\n$custom-select-indicator: url(\"data:image/svg+xml,\") !default;\n$custom-select-background: escape-svg($custom-select-indicator) no-repeat right $custom-select-padding-x center / $custom-select-bg-size !default; // Used so we can have multiple background elements (e.g., arrow and feedback icon)\n\n$custom-select-feedback-icon-padding-right: add(1em * .75, (2 * $custom-select-padding-y * .75) + $custom-select-padding-x + $custom-select-indicator-padding) !default;\n$custom-select-feedback-icon-position: center right ($custom-select-padding-x + $custom-select-indicator-padding) !default;\n$custom-select-feedback-icon-size: $input-height-inner-half $input-height-inner-half !default;\n\n$custom-select-border-width: $input-border-width !default;\n$custom-select-border-color: $input-border-color !default;\n$custom-select-border-radius: $border-radius !default;\n$custom-select-box-shadow: inset 0 1px 2px rgba($black, .075) !default;\n\n$custom-select-focus-border-color: $input-focus-border-color !default;\n$custom-select-focus-width: $input-focus-width !default;\n$custom-select-focus-box-shadow: 0 0 0 $custom-select-focus-width $input-btn-focus-color !default;\n\n$custom-select-padding-y-sm: $input-padding-y-sm !default;\n$custom-select-padding-x-sm: $input-padding-x-sm !default;\n$custom-select-font-size-sm: $input-font-size-sm !default;\n$custom-select-height-sm: $input-height-sm !default;\n\n$custom-select-padding-y-lg: $input-padding-y-lg !default;\n$custom-select-padding-x-lg: $input-padding-x-lg !default;\n$custom-select-font-size-lg: $input-font-size-lg !default;\n$custom-select-height-lg: $input-height-lg !default;\n\n$custom-range-track-width: 100% !default;\n$custom-range-track-height: .5rem !default;\n$custom-range-track-cursor: pointer !default;\n$custom-range-track-bg: $gray-300 !default;\n$custom-range-track-border-radius: 1rem !default;\n$custom-range-track-box-shadow: inset 0 .25rem .25rem rgba($black, .1) !default;\n\n$custom-range-thumb-width: 1rem !default;\n$custom-range-thumb-height: $custom-range-thumb-width !default;\n$custom-range-thumb-bg: $component-active-bg !default;\n$custom-range-thumb-border: 0 !default;\n$custom-range-thumb-border-radius: 1rem !default;\n$custom-range-thumb-box-shadow: 0 .1rem .25rem rgba($black, .1) !default;\n$custom-range-thumb-focus-box-shadow: 0 0 0 1px $body-bg, $input-focus-box-shadow !default;\n$custom-range-thumb-focus-box-shadow-width: $input-focus-width !default; // For focus box shadow issue in IE/Edge\n$custom-range-thumb-active-bg: lighten($component-active-bg, 35%) !default;\n$custom-range-thumb-disabled-bg: $gray-500 !default;\n\n$custom-file-height: $input-height !default;\n$custom-file-height-inner: $input-height-inner !default;\n$custom-file-focus-border-color: $input-focus-border-color !default;\n$custom-file-focus-box-shadow: $input-focus-box-shadow !default;\n$custom-file-disabled-bg: $input-disabled-bg !default;\n\n$custom-file-padding-y: $input-padding-y !default;\n$custom-file-padding-x: $input-padding-x !default;\n$custom-file-line-height: $input-line-height !default;\n$custom-file-font-family: $input-font-family !default;\n$custom-file-font-weight: $input-font-weight !default;\n$custom-file-color: $input-color !default;\n$custom-file-bg: $input-bg !default;\n$custom-file-border-width: $input-border-width !default;\n$custom-file-border-color: $input-border-color !default;\n$custom-file-border-radius: $input-border-radius !default;\n$custom-file-box-shadow: $input-box-shadow !default;\n$custom-file-button-color: $custom-file-color !default;\n$custom-file-button-bg: $input-group-addon-bg !default;\n$custom-file-text: (\n en: \"Browse\"\n) !default;\n\n\n// Form validation\n\n$form-feedback-margin-top: $form-text-margin-top !default;\n$form-feedback-font-size: $small-font-size !default;\n$form-feedback-valid-color: theme-color(\"success\") !default;\n$form-feedback-invalid-color: theme-color(\"danger\") !default;\n\n$form-feedback-icon-valid-color: $form-feedback-valid-color !default;\n$form-feedback-icon-valid: url(\"data:image/svg+xml,\") !default;\n$form-feedback-icon-invalid-color: $form-feedback-invalid-color !default;\n$form-feedback-icon-invalid: url(\"data:image/svg+xml,\") !default;\n\n$form-validation-states: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$form-validation-states: map-merge(\n (\n \"valid\": (\n \"color\": $form-feedback-valid-color,\n \"icon\": $form-feedback-icon-valid\n ),\n \"invalid\": (\n \"color\": $form-feedback-invalid-color,\n \"icon\": $form-feedback-icon-invalid\n ),\n ),\n $form-validation-states\n);\n\n// Z-index master list\n//\n// Warning: Avoid customizing these values. They're used for a bird's eye view\n// of components dependent on the z-axis and are designed to all work together.\n\n$zindex-dropdown: 1000 !default;\n$zindex-sticky: 1020 !default;\n$zindex-fixed: 1030 !default;\n$zindex-modal-backdrop: 1040 !default;\n$zindex-modal: 1050 !default;\n$zindex-popover: 1060 !default;\n$zindex-tooltip: 1070 !default;\n\n\n// Navs\n\n$nav-link-padding-y: .5rem !default;\n$nav-link-padding-x: 1rem !default;\n$nav-link-disabled-color: $gray-600 !default;\n\n$nav-tabs-border-color: $gray-300 !default;\n$nav-tabs-border-width: $border-width !default;\n$nav-tabs-border-radius: $border-radius !default;\n$nav-tabs-link-hover-border-color: $gray-200 $gray-200 $nav-tabs-border-color !default;\n$nav-tabs-link-active-color: $gray-700 !default;\n$nav-tabs-link-active-bg: $body-bg !default;\n$nav-tabs-link-active-border-color: $gray-300 $gray-300 $nav-tabs-link-active-bg !default;\n\n$nav-pills-border-radius: $border-radius !default;\n$nav-pills-link-active-color: $component-active-color !default;\n$nav-pills-link-active-bg: $component-active-bg !default;\n\n$nav-divider-color: $gray-200 !default;\n$nav-divider-margin-y: $spacer / 2 !default;\n\n\n// Navbar\n\n$navbar-padding-y: $spacer / 2 !default;\n$navbar-padding-x: $spacer !default;\n\n$navbar-nav-link-padding-x: .5rem !default;\n\n$navbar-brand-font-size: $font-size-lg !default;\n// Compute the navbar-brand padding-y so the navbar-brand will have the same height as navbar-text and nav-link\n$nav-link-height: $font-size-base * $line-height-base + $nav-link-padding-y * 2 !default;\n$navbar-brand-height: $navbar-brand-font-size * $line-height-base !default;\n$navbar-brand-padding-y: ($nav-link-height - $navbar-brand-height) / 2 !default;\n\n$navbar-toggler-padding-y: .25rem !default;\n$navbar-toggler-padding-x: .75rem !default;\n$navbar-toggler-font-size: $font-size-lg !default;\n$navbar-toggler-border-radius: $btn-border-radius !default;\n\n$navbar-dark-color: rgba($white, .5) !default;\n$navbar-dark-hover-color: rgba($white, .75) !default;\n$navbar-dark-active-color: $white !default;\n$navbar-dark-disabled-color: rgba($white, .25) !default;\n$navbar-dark-toggler-icon-bg: url(\"data:image/svg+xml,\") !default;\n$navbar-dark-toggler-border-color: rgba($white, .1) !default;\n\n$navbar-light-color: rgba($black, .5) !default;\n$navbar-light-hover-color: rgba($black, .7) !default;\n$navbar-light-active-color: rgba($black, .9) !default;\n$navbar-light-disabled-color: rgba($black, .3) !default;\n$navbar-light-toggler-icon-bg: url(\"data:image/svg+xml,\") !default;\n$navbar-light-toggler-border-color: rgba($black, .1) !default;\n\n$navbar-light-brand-color: $navbar-light-active-color !default;\n$navbar-light-brand-hover-color: $navbar-light-active-color !default;\n$navbar-dark-brand-color: $navbar-dark-active-color !default;\n$navbar-dark-brand-hover-color: $navbar-dark-active-color !default;\n\n\n// Dropdowns\n//\n// Dropdown menu container and contents.\n\n$dropdown-min-width: 10rem !default;\n$dropdown-padding-y: .5rem !default;\n$dropdown-spacer: .125rem !default;\n$dropdown-font-size: $font-size-base !default;\n$dropdown-color: $body-color !default;\n$dropdown-bg: $white !default;\n$dropdown-border-color: rgba($black, .15) !default;\n$dropdown-border-radius: $border-radius !default;\n$dropdown-border-width: $border-width !default;\n$dropdown-inner-border-radius: subtract($dropdown-border-radius, $dropdown-border-width) !default;\n$dropdown-divider-bg: $gray-200 !default;\n$dropdown-divider-margin-y: $nav-divider-margin-y !default;\n$dropdown-box-shadow: 0 .5rem 1rem rgba($black, .175) !default;\n\n$dropdown-link-color: $gray-900 !default;\n$dropdown-link-hover-color: darken($gray-900, 5%) !default;\n$dropdown-link-hover-bg: $gray-100 !default;\n\n$dropdown-link-active-color: $component-active-color !default;\n$dropdown-link-active-bg: $component-active-bg !default;\n\n$dropdown-link-disabled-color: $gray-600 !default;\n\n$dropdown-item-padding-y: .25rem !default;\n$dropdown-item-padding-x: 1.5rem !default;\n\n$dropdown-header-color: $gray-600 !default;\n\n\n// Pagination\n\n$pagination-padding-y: .5rem !default;\n$pagination-padding-x: .75rem !default;\n$pagination-padding-y-sm: .25rem !default;\n$pagination-padding-x-sm: .5rem !default;\n$pagination-padding-y-lg: .75rem !default;\n$pagination-padding-x-lg: 1.5rem !default;\n$pagination-line-height: 1.25 !default;\n\n$pagination-color: $link-color !default;\n$pagination-bg: $white !default;\n$pagination-border-width: $border-width !default;\n$pagination-border-color: $gray-300 !default;\n\n$pagination-focus-box-shadow: $input-btn-focus-box-shadow !default;\n$pagination-focus-outline: 0 !default;\n\n$pagination-hover-color: $link-hover-color !default;\n$pagination-hover-bg: $gray-200 !default;\n$pagination-hover-border-color: $gray-300 !default;\n\n$pagination-active-color: $component-active-color !default;\n$pagination-active-bg: $component-active-bg !default;\n$pagination-active-border-color: $pagination-active-bg !default;\n\n$pagination-disabled-color: $gray-600 !default;\n$pagination-disabled-bg: $white !default;\n$pagination-disabled-border-color: $gray-300 !default;\n\n\n// Jumbotron\n\n$jumbotron-padding: 2rem !default;\n$jumbotron-color: null !default;\n$jumbotron-bg: $gray-200 !default;\n\n\n// Cards\n\n$card-spacer-y: .75rem !default;\n$card-spacer-x: 1.25rem !default;\n$card-border-width: $border-width !default;\n$card-border-radius: $border-radius !default;\n$card-border-color: rgba($black, .125) !default;\n$card-inner-border-radius: subtract($card-border-radius, $card-border-width) !default;\n$card-cap-bg: rgba($black, .03) !default;\n$card-cap-color: null !default;\n$card-height: null !default;\n$card-color: null !default;\n$card-bg: $white !default;\n\n$card-img-overlay-padding: 1.25rem !default;\n\n$card-group-margin: $grid-gutter-width / 2 !default;\n$card-deck-margin: $card-group-margin !default;\n\n$card-columns-count: 3 !default;\n$card-columns-gap: 1.25rem !default;\n$card-columns-margin: $card-spacer-y !default;\n\n\n// Tooltips\n\n$tooltip-font-size: $font-size-sm !default;\n$tooltip-max-width: 200px !default;\n$tooltip-color: $white !default;\n$tooltip-bg: $black !default;\n$tooltip-border-radius: $border-radius !default;\n$tooltip-opacity: .9 !default;\n$tooltip-padding-y: .25rem !default;\n$tooltip-padding-x: .5rem !default;\n$tooltip-margin: 0 !default;\n\n$tooltip-arrow-width: .8rem !default;\n$tooltip-arrow-height: .4rem !default;\n$tooltip-arrow-color: $tooltip-bg !default;\n\n// Form tooltips must come after regular tooltips\n$form-feedback-tooltip-padding-y: $tooltip-padding-y !default;\n$form-feedback-tooltip-padding-x: $tooltip-padding-x !default;\n$form-feedback-tooltip-font-size: $tooltip-font-size !default;\n$form-feedback-tooltip-line-height: $line-height-base !default;\n$form-feedback-tooltip-opacity: $tooltip-opacity !default;\n$form-feedback-tooltip-border-radius: $tooltip-border-radius !default;\n\n\n// Popovers\n\n$popover-font-size: $font-size-sm !default;\n$popover-bg: $white !default;\n$popover-max-width: 276px !default;\n$popover-border-width: $border-width !default;\n$popover-border-color: rgba($black, .2) !default;\n$popover-border-radius: $border-radius-lg !default;\n$popover-inner-border-radius: subtract($popover-border-radius, $popover-border-width) !default;\n$popover-box-shadow: 0 .25rem .5rem rgba($black, .2) !default;\n\n$popover-header-bg: darken($popover-bg, 3%) !default;\n$popover-header-color: $headings-color !default;\n$popover-header-padding-y: .5rem !default;\n$popover-header-padding-x: .75rem !default;\n\n$popover-body-color: $body-color !default;\n$popover-body-padding-y: $popover-header-padding-y !default;\n$popover-body-padding-x: $popover-header-padding-x !default;\n\n$popover-arrow-width: 1rem !default;\n$popover-arrow-height: .5rem !default;\n$popover-arrow-color: $popover-bg !default;\n\n$popover-arrow-outer-color: fade-in($popover-border-color, .05) !default;\n\n\n// Toasts\n\n$toast-max-width: 350px !default;\n$toast-padding-x: .75rem !default;\n$toast-padding-y: .25rem !default;\n$toast-font-size: .875rem !default;\n$toast-color: null !default;\n$toast-background-color: rgba($white, .85) !default;\n$toast-border-width: 1px !default;\n$toast-border-color: rgba(0, 0, 0, .1) !default;\n$toast-border-radius: .25rem !default;\n$toast-box-shadow: 0 .25rem .75rem rgba($black, .1) !default;\n\n$toast-header-color: $gray-600 !default;\n$toast-header-background-color: rgba($white, .85) !default;\n$toast-header-border-color: rgba(0, 0, 0, .05) !default;\n\n\n// Badges\n\n$badge-font-size: 75% !default;\n$badge-font-weight: $font-weight-bold !default;\n$badge-padding-y: .25em !default;\n$badge-padding-x: .4em !default;\n$badge-border-radius: $border-radius !default;\n\n$badge-transition: $btn-transition !default;\n$badge-focus-width: $input-btn-focus-width !default;\n\n$badge-pill-padding-x: .6em !default;\n// Use a higher than normal value to ensure completely rounded edges when\n// customizing padding or font-size on labels.\n$badge-pill-border-radius: 10rem !default;\n\n\n// Modals\n\n// Padding applied to the modal body\n$modal-inner-padding: 1rem !default;\n\n// Margin between elements in footer, must be lower than or equal to 2 * $modal-inner-padding\n$modal-footer-margin-between: .5rem !default;\n\n$modal-dialog-margin: .5rem !default;\n$modal-dialog-margin-y-sm-up: 1.75rem !default;\n\n$modal-title-line-height: $line-height-base !default;\n\n$modal-content-color: null !default;\n$modal-content-bg: $white !default;\n$modal-content-border-color: rgba($black, .2) !default;\n$modal-content-border-width: $border-width !default;\n$modal-content-border-radius: $border-radius-lg !default;\n$modal-content-inner-border-radius: subtract($modal-content-border-radius, $modal-content-border-width) !default;\n$modal-content-box-shadow-xs: 0 .25rem .5rem rgba($black, .5) !default;\n$modal-content-box-shadow-sm-up: 0 .5rem 1rem rgba($black, .5) !default;\n\n$modal-backdrop-bg: $black !default;\n$modal-backdrop-opacity: .5 !default;\n$modal-header-border-color: $border-color !default;\n$modal-footer-border-color: $modal-header-border-color !default;\n$modal-header-border-width: $modal-content-border-width !default;\n$modal-footer-border-width: $modal-header-border-width !default;\n$modal-header-padding-y: 1rem !default;\n$modal-header-padding-x: 1rem !default;\n$modal-header-padding: $modal-header-padding-y $modal-header-padding-x !default; // Keep this for backwards compatibility\n\n$modal-xl: 1140px !default;\n$modal-lg: 800px !default;\n$modal-md: 500px !default;\n$modal-sm: 300px !default;\n\n$modal-fade-transform: translate(0, -50px) !default;\n$modal-show-transform: none !default;\n$modal-transition: transform .3s ease-out !default;\n$modal-scale-transform: scale(1.02) !default;\n\n\n// Alerts\n//\n// Define alert colors, border radius, and padding.\n\n$alert-padding-y: .75rem !default;\n$alert-padding-x: 1.25rem !default;\n$alert-margin-bottom: 1rem !default;\n$alert-border-radius: $border-radius !default;\n$alert-link-font-weight: $font-weight-bold !default;\n$alert-border-width: $border-width !default;\n\n$alert-bg-level: -10 !default;\n$alert-border-level: -9 !default;\n$alert-color-level: 6 !default;\n\n\n// Progress bars\n\n$progress-height: 1rem !default;\n$progress-font-size: $font-size-base * .75 !default;\n$progress-bg: $gray-200 !default;\n$progress-border-radius: $border-radius !default;\n$progress-box-shadow: inset 0 .1rem .1rem rgba($black, .1) !default;\n$progress-bar-color: $white !default;\n$progress-bar-bg: theme-color(\"primary\") !default;\n$progress-bar-animation-timing: 1s linear infinite !default;\n$progress-bar-transition: width .6s ease !default;\n\n\n// List group\n\n$list-group-color: null !default;\n$list-group-bg: $white !default;\n$list-group-border-color: rgba($black, .125) !default;\n$list-group-border-width: $border-width !default;\n$list-group-border-radius: $border-radius !default;\n\n$list-group-item-padding-y: .75rem !default;\n$list-group-item-padding-x: 1.25rem !default;\n\n$list-group-hover-bg: $gray-100 !default;\n$list-group-active-color: $component-active-color !default;\n$list-group-active-bg: $component-active-bg !default;\n$list-group-active-border-color: $list-group-active-bg !default;\n\n$list-group-disabled-color: $gray-600 !default;\n$list-group-disabled-bg: $list-group-bg !default;\n\n$list-group-action-color: $gray-700 !default;\n$list-group-action-hover-color: $list-group-action-color !default;\n\n$list-group-action-active-color: $body-color !default;\n$list-group-action-active-bg: $gray-200 !default;\n\n\n// Image thumbnails\n\n$thumbnail-padding: .25rem !default;\n$thumbnail-bg: $body-bg !default;\n$thumbnail-border-width: $border-width !default;\n$thumbnail-border-color: $gray-300 !default;\n$thumbnail-border-radius: $border-radius !default;\n$thumbnail-box-shadow: 0 1px 2px rgba($black, .075) !default;\n\n\n// Figures\n\n$figure-caption-font-size: 90% !default;\n$figure-caption-color: $gray-600 !default;\n\n\n// Breadcrumbs\n\n$breadcrumb-font-size: null !default;\n\n$breadcrumb-padding-y: .75rem !default;\n$breadcrumb-padding-x: 1rem !default;\n$breadcrumb-item-padding: .5rem !default;\n\n$breadcrumb-margin-bottom: 1rem !default;\n\n$breadcrumb-bg: $gray-200 !default;\n$breadcrumb-divider-color: $gray-600 !default;\n$breadcrumb-active-color: $gray-600 !default;\n$breadcrumb-divider: quote(\"/\") !default;\n\n$breadcrumb-border-radius: $border-radius !default;\n\n\n// Carousel\n\n$carousel-control-color: $white !default;\n$carousel-control-width: 15% !default;\n$carousel-control-opacity: .5 !default;\n$carousel-control-hover-opacity: .9 !default;\n$carousel-control-transition: opacity .15s ease !default;\n\n$carousel-indicator-width: 30px !default;\n$carousel-indicator-height: 3px !default;\n$carousel-indicator-hit-area-height: 10px !default;\n$carousel-indicator-spacer: 3px !default;\n$carousel-indicator-active-bg: $white !default;\n$carousel-indicator-transition: opacity .6s ease !default;\n\n$carousel-caption-width: 70% !default;\n$carousel-caption-color: $white !default;\n\n$carousel-control-icon-width: 20px !default;\n\n$carousel-control-prev-icon-bg: url(\"data:image/svg+xml,\") !default;\n$carousel-control-next-icon-bg: url(\"data:image/svg+xml,\") !default;\n\n$carousel-transition-duration: .6s !default;\n$carousel-transition: transform $carousel-transition-duration ease-in-out !default; // Define transform transition first if using multiple transitions (e.g., `transform 2s ease, opacity .5s ease-out`)\n\n\n// Spinners\n\n$spinner-width: 2rem !default;\n$spinner-height: $spinner-width !default;\n$spinner-border-width: .25em !default;\n\n$spinner-width-sm: 1rem !default;\n$spinner-height-sm: $spinner-width-sm !default;\n$spinner-border-width-sm: .2em !default;\n\n\n// Close\n\n$close-font-size: $font-size-base * 1.5 !default;\n$close-font-weight: $font-weight-bold !default;\n$close-color: $black !default;\n$close-text-shadow: 0 1px 0 $white !default;\n\n\n// Code\n\n$code-font-size: 87.5% !default;\n$code-color: $pink !default;\n\n$kbd-padding-y: .2rem !default;\n$kbd-padding-x: .4rem !default;\n$kbd-font-size: $code-font-size !default;\n$kbd-color: $white !default;\n$kbd-bg: $gray-900 !default;\n\n$pre-color: $gray-900 !default;\n$pre-scrollable-max-height: 340px !default;\n\n\n// Utilities\n\n$displays: none, inline, inline-block, block, table, table-row, table-cell, flex, inline-flex !default;\n$overflows: auto, hidden !default;\n$positions: static, relative, absolute, fixed, sticky !default;\n\n\n// Printing\n\n$print-page-size: a3 !default;\n$print-body-min-width: map-get($grid-breakpoints, \"lg\") !default;\n","// Framework grid generation\n//\n// Used only by Bootstrap to generate the correct number of grid classes given\n// any value of `$grid-columns`.\n\n@mixin make-grid-columns($columns: $grid-columns, $gutter: $grid-gutter-width, $breakpoints: $grid-breakpoints) {\n // Common properties for all breakpoints\n %grid-column {\n position: relative;\n width: 100%;\n padding-right: $gutter / 2;\n padding-left: $gutter / 2;\n }\n\n @each $breakpoint in map-keys($breakpoints) {\n $infix: breakpoint-infix($breakpoint, $breakpoints);\n\n // Allow columns to stretch full width below their breakpoints\n @for $i from 1 through $columns {\n .col#{$infix}-#{$i} {\n @extend %grid-column;\n }\n }\n .col#{$infix},\n .col#{$infix}-auto {\n @extend %grid-column;\n }\n\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n // Provide basic `.col-{bp}` classes for equal-width flexbox columns\n .col#{$infix} {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n\n @for $i from 1 through $grid-row-columns {\n .row-cols#{$infix}-#{$i} {\n @include row-cols($i);\n }\n }\n\n .col#{$infix}-auto {\n @include make-col-auto();\n }\n\n @for $i from 1 through $columns {\n .col#{$infix}-#{$i} {\n @include make-col($i, $columns);\n }\n }\n\n .order#{$infix}-first { order: -1; }\n\n .order#{$infix}-last { order: $columns + 1; }\n\n @for $i from 0 through $columns {\n .order#{$infix}-#{$i} { order: $i; }\n }\n\n // `$columns - 1` because offsetting by the width of an entire row isn't possible\n @for $i from 0 through ($columns - 1) {\n @if not ($infix == \"\" and $i == 0) { // Avoid emitting useless .offset-0\n .offset#{$infix}-#{$i} {\n @include make-col-offset($i, $columns);\n }\n }\n }\n }\n }\n}\n","// stylelint-disable declaration-no-important\n\n//\n// Utilities for common `display` values\n//\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n @each $value in $displays {\n .d#{$infix}-#{$value} { display: $value !important; }\n }\n }\n}\n\n\n//\n// Utilities for toggling `display` in print\n//\n\n@media print {\n @each $value in $displays {\n .d-print-#{$value} { display: $value !important; }\n }\n}\n","// stylelint-disable declaration-no-important\n\n// Flex variation\n//\n// Custom styles for additional flex alignment options.\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n .flex#{$infix}-row { flex-direction: row !important; }\n .flex#{$infix}-column { flex-direction: column !important; }\n .flex#{$infix}-row-reverse { flex-direction: row-reverse !important; }\n .flex#{$infix}-column-reverse { flex-direction: column-reverse !important; }\n\n .flex#{$infix}-wrap { flex-wrap: wrap !important; }\n .flex#{$infix}-nowrap { flex-wrap: nowrap !important; }\n .flex#{$infix}-wrap-reverse { flex-wrap: wrap-reverse !important; }\n .flex#{$infix}-fill { flex: 1 1 auto !important; }\n .flex#{$infix}-grow-0 { flex-grow: 0 !important; }\n .flex#{$infix}-grow-1 { flex-grow: 1 !important; }\n .flex#{$infix}-shrink-0 { flex-shrink: 0 !important; }\n .flex#{$infix}-shrink-1 { flex-shrink: 1 !important; }\n\n .justify-content#{$infix}-start { justify-content: flex-start !important; }\n .justify-content#{$infix}-end { justify-content: flex-end !important; }\n .justify-content#{$infix}-center { justify-content: center !important; }\n .justify-content#{$infix}-between { justify-content: space-between !important; }\n .justify-content#{$infix}-around { justify-content: space-around !important; }\n\n .align-items#{$infix}-start { align-items: flex-start !important; }\n .align-items#{$infix}-end { align-items: flex-end !important; }\n .align-items#{$infix}-center { align-items: center !important; }\n .align-items#{$infix}-baseline { align-items: baseline !important; }\n .align-items#{$infix}-stretch { align-items: stretch !important; }\n\n .align-content#{$infix}-start { align-content: flex-start !important; }\n .align-content#{$infix}-end { align-content: flex-end !important; }\n .align-content#{$infix}-center { align-content: center !important; }\n .align-content#{$infix}-between { align-content: space-between !important; }\n .align-content#{$infix}-around { align-content: space-around !important; }\n .align-content#{$infix}-stretch { align-content: stretch !important; }\n\n .align-self#{$infix}-auto { align-self: auto !important; }\n .align-self#{$infix}-start { align-self: flex-start !important; }\n .align-self#{$infix}-end { align-self: flex-end !important; }\n .align-self#{$infix}-center { align-self: center !important; }\n .align-self#{$infix}-baseline { align-self: baseline !important; }\n .align-self#{$infix}-stretch { align-self: stretch !important; }\n }\n}\n","// stylelint-disable declaration-no-important\n\n// Margin and Padding\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n @each $prop, $abbrev in (margin: m, padding: p) {\n @each $size, $length in $spacers {\n .#{$abbrev}#{$infix}-#{$size} { #{$prop}: $length !important; }\n .#{$abbrev}t#{$infix}-#{$size},\n .#{$abbrev}y#{$infix}-#{$size} {\n #{$prop}-top: $length !important;\n }\n .#{$abbrev}r#{$infix}-#{$size},\n .#{$abbrev}x#{$infix}-#{$size} {\n #{$prop}-right: $length !important;\n }\n .#{$abbrev}b#{$infix}-#{$size},\n .#{$abbrev}y#{$infix}-#{$size} {\n #{$prop}-bottom: $length !important;\n }\n .#{$abbrev}l#{$infix}-#{$size},\n .#{$abbrev}x#{$infix}-#{$size} {\n #{$prop}-left: $length !important;\n }\n }\n }\n\n // Negative margins (e.g., where `.mb-n1` is negative version of `.mb-1`)\n @each $size, $length in $spacers {\n @if $size != 0 {\n .m#{$infix}-n#{$size} { margin: -$length !important; }\n .mt#{$infix}-n#{$size},\n .my#{$infix}-n#{$size} {\n margin-top: -$length !important;\n }\n .mr#{$infix}-n#{$size},\n .mx#{$infix}-n#{$size} {\n margin-right: -$length !important;\n }\n .mb#{$infix}-n#{$size},\n .my#{$infix}-n#{$size} {\n margin-bottom: -$length !important;\n }\n .ml#{$infix}-n#{$size},\n .mx#{$infix}-n#{$size} {\n margin-left: -$length !important;\n }\n }\n }\n\n // Some special margin utils\n .m#{$infix}-auto { margin: auto !important; }\n .mt#{$infix}-auto,\n .my#{$infix}-auto {\n margin-top: auto !important;\n }\n .mr#{$infix}-auto,\n .mx#{$infix}-auto {\n margin-right: auto !important;\n }\n .mb#{$infix}-auto,\n .my#{$infix}-auto {\n margin-bottom: auto !important;\n }\n .ml#{$infix}-auto,\n .mx#{$infix}-auto {\n margin-left: auto !important;\n }\n }\n}\n"]} \ No newline at end of file diff --git a/css/bootstrap-grid.min.css b/css/bootstrap-grid.min.css new file mode 100644 index 000000000..6533f319a --- /dev/null +++ b/css/bootstrap-grid.min.css @@ -0,0 +1,7 @@ +/*! + * Bootstrap Grid v4.4.1 (https://getbootstrap.com/) + * Copyright 2011-2019 The Bootstrap Authors + * Copyright 2011-2019 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + */html{box-sizing:border-box;-ms-overflow-style:scrollbar}*,::after,::before{box-sizing:inherit}.container{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container{max-width:540px}}@media (min-width:768px){.container{max-width:720px}}@media (min-width:992px){.container{max-width:960px}}@media (min-width:1200px){.container{max-width:1140px}}.container-fluid,.container-lg,.container-md,.container-sm,.container-xl{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}.row{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col,.col-1,.col-10,.col-11,.col-12,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-auto,.col-lg,.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-auto,.col-md,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-auto,.col-sm,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-auto{position:relative;width:100%;padding-right:15px;padding-left:15px}.col{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-first{-ms-flex-order:-1;order:-1}.order-last{-ms-flex-order:13;order:13}.order-0{-ms-flex-order:0;order:0}.order-1{-ms-flex-order:1;order:1}.order-2{-ms-flex-order:2;order:2}.order-3{-ms-flex-order:3;order:3}.order-4{-ms-flex-order:4;order:4}.order-5{-ms-flex-order:5;order:5}.order-6{-ms-flex-order:6;order:6}.order-7{-ms-flex-order:7;order:7}.order-8{-ms-flex-order:8;order:8}.order-9{-ms-flex-order:9;order:9}.order-10{-ms-flex-order:10;order:10}.order-11{-ms-flex-order:11;order:11}.order-12{-ms-flex-order:12;order:12}.offset-1{margin-left:8.333333%}.offset-2{margin-left:16.666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.333333%}.offset-5{margin-left:41.666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.333333%}.offset-8{margin-left:66.666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.333333%}.offset-11{margin-left:91.666667%}@media (min-width:576px){.col-sm{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-sm-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-sm-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-sm-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-sm-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-sm-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-sm-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-sm-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-sm-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-sm-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-sm-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-sm-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-sm-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-sm-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-sm-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-sm-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-sm-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-sm-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-sm-first{-ms-flex-order:-1;order:-1}.order-sm-last{-ms-flex-order:13;order:13}.order-sm-0{-ms-flex-order:0;order:0}.order-sm-1{-ms-flex-order:1;order:1}.order-sm-2{-ms-flex-order:2;order:2}.order-sm-3{-ms-flex-order:3;order:3}.order-sm-4{-ms-flex-order:4;order:4}.order-sm-5{-ms-flex-order:5;order:5}.order-sm-6{-ms-flex-order:6;order:6}.order-sm-7{-ms-flex-order:7;order:7}.order-sm-8{-ms-flex-order:8;order:8}.order-sm-9{-ms-flex-order:9;order:9}.order-sm-10{-ms-flex-order:10;order:10}.order-sm-11{-ms-flex-order:11;order:11}.order-sm-12{-ms-flex-order:12;order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.333333%}.offset-sm-2{margin-left:16.666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.333333%}.offset-sm-5{margin-left:41.666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.333333%}.offset-sm-8{margin-left:66.666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.333333%}.offset-sm-11{margin-left:91.666667%}}@media (min-width:768px){.col-md{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-md-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-md-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-md-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-md-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-md-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-md-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-md-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-md-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-md-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-md-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-md-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-md-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-md-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-md-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-md-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-md-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-md-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-md-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-md-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-md-first{-ms-flex-order:-1;order:-1}.order-md-last{-ms-flex-order:13;order:13}.order-md-0{-ms-flex-order:0;order:0}.order-md-1{-ms-flex-order:1;order:1}.order-md-2{-ms-flex-order:2;order:2}.order-md-3{-ms-flex-order:3;order:3}.order-md-4{-ms-flex-order:4;order:4}.order-md-5{-ms-flex-order:5;order:5}.order-md-6{-ms-flex-order:6;order:6}.order-md-7{-ms-flex-order:7;order:7}.order-md-8{-ms-flex-order:8;order:8}.order-md-9{-ms-flex-order:9;order:9}.order-md-10{-ms-flex-order:10;order:10}.order-md-11{-ms-flex-order:11;order:11}.order-md-12{-ms-flex-order:12;order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.333333%}.offset-md-2{margin-left:16.666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.333333%}.offset-md-5{margin-left:41.666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.333333%}.offset-md-8{margin-left:66.666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.333333%}.offset-md-11{margin-left:91.666667%}}@media (min-width:992px){.col-lg{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-lg-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-lg-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-lg-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-lg-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-lg-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-lg-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-lg-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-lg-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-lg-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-lg-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-lg-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-lg-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-lg-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-lg-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-lg-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-lg-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-lg-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-lg-first{-ms-flex-order:-1;order:-1}.order-lg-last{-ms-flex-order:13;order:13}.order-lg-0{-ms-flex-order:0;order:0}.order-lg-1{-ms-flex-order:1;order:1}.order-lg-2{-ms-flex-order:2;order:2}.order-lg-3{-ms-flex-order:3;order:3}.order-lg-4{-ms-flex-order:4;order:4}.order-lg-5{-ms-flex-order:5;order:5}.order-lg-6{-ms-flex-order:6;order:6}.order-lg-7{-ms-flex-order:7;order:7}.order-lg-8{-ms-flex-order:8;order:8}.order-lg-9{-ms-flex-order:9;order:9}.order-lg-10{-ms-flex-order:10;order:10}.order-lg-11{-ms-flex-order:11;order:11}.order-lg-12{-ms-flex-order:12;order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.333333%}.offset-lg-2{margin-left:16.666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.333333%}.offset-lg-5{margin-left:41.666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.333333%}.offset-lg-8{margin-left:66.666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.333333%}.offset-lg-11{margin-left:91.666667%}}@media (min-width:1200px){.col-xl{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-xl-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-xl-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-xl-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-xl-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-xl-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-xl-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-xl-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-xl-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-xl-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-xl-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-xl-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-xl-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-xl-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-xl-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-xl-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-xl-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-xl-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-xl-first{-ms-flex-order:-1;order:-1}.order-xl-last{-ms-flex-order:13;order:13}.order-xl-0{-ms-flex-order:0;order:0}.order-xl-1{-ms-flex-order:1;order:1}.order-xl-2{-ms-flex-order:2;order:2}.order-xl-3{-ms-flex-order:3;order:3}.order-xl-4{-ms-flex-order:4;order:4}.order-xl-5{-ms-flex-order:5;order:5}.order-xl-6{-ms-flex-order:6;order:6}.order-xl-7{-ms-flex-order:7;order:7}.order-xl-8{-ms-flex-order:8;order:8}.order-xl-9{-ms-flex-order:9;order:9}.order-xl-10{-ms-flex-order:10;order:10}.order-xl-11{-ms-flex-order:11;order:11}.order-xl-12{-ms-flex-order:12;order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.333333%}.offset-xl-2{margin-left:16.666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.333333%}.offset-xl-5{margin-left:41.666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.333333%}.offset-xl-8{margin-left:66.666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.333333%}.offset-xl-11{margin-left:91.666667%}}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:-ms-flexbox!important;display:flex!important}.d-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}@media (min-width:576px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:-ms-flexbox!important;display:flex!important}.d-sm-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:768px){.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:-ms-flexbox!important;display:flex!important}.d-md-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:992px){.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:-ms-flexbox!important;display:flex!important}.d-lg-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:1200px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:-ms-flexbox!important;display:flex!important}.d-xl-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:-ms-flexbox!important;display:flex!important}.d-print-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}.flex-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-center{-ms-flex-align:center!important;align-items:center!important}.align-items-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}@media (min-width:576px){.flex-sm-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-sm-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-sm-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-sm-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-sm-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-sm-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-sm-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-sm-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-sm-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-sm-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-sm-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-sm-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-sm-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-sm-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-sm-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-sm-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-sm-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-sm-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-sm-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-sm-center{-ms-flex-align:center!important;align-items:center!important}.align-items-sm-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-sm-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-sm-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-sm-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-sm-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-sm-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-sm-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-sm-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-sm-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-sm-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-sm-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-sm-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-sm-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-sm-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:768px){.flex-md-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-md-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-md-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-md-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-md-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-md-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-md-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-md-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-md-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-md-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-md-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-md-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-md-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-md-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-md-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-md-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-md-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-md-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-md-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-md-center{-ms-flex-align:center!important;align-items:center!important}.align-items-md-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-md-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-md-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-md-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-md-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-md-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-md-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-md-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-md-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-md-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-md-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-md-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-md-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-md-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:992px){.flex-lg-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-lg-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-lg-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-lg-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-lg-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-lg-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-lg-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-lg-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-lg-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-lg-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-lg-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-lg-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-lg-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-lg-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-lg-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-lg-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-lg-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-lg-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-lg-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-lg-center{-ms-flex-align:center!important;align-items:center!important}.align-items-lg-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-lg-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-lg-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-lg-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-lg-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-lg-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-lg-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-lg-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-lg-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-lg-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-lg-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-lg-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-lg-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-lg-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:1200px){.flex-xl-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-xl-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-xl-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-xl-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-xl-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-xl-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-xl-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-xl-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-xl-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-xl-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-xl-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-xl-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-xl-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-xl-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-xl-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-xl-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-xl-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-xl-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-xl-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-xl-center{-ms-flex-align:center!important;align-items:center!important}.align-items-xl-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-xl-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-xl-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-xl-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-xl-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-xl-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-xl-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-xl-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-xl-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-xl-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-xl-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-xl-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-xl-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-xl-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}.m-0{margin:0!important}.mt-0,.my-0{margin-top:0!important}.mr-0,.mx-0{margin-right:0!important}.mb-0,.my-0{margin-bottom:0!important}.ml-0,.mx-0{margin-left:0!important}.m-1{margin:.25rem!important}.mt-1,.my-1{margin-top:.25rem!important}.mr-1,.mx-1{margin-right:.25rem!important}.mb-1,.my-1{margin-bottom:.25rem!important}.ml-1,.mx-1{margin-left:.25rem!important}.m-2{margin:.5rem!important}.mt-2,.my-2{margin-top:.5rem!important}.mr-2,.mx-2{margin-right:.5rem!important}.mb-2,.my-2{margin-bottom:.5rem!important}.ml-2,.mx-2{margin-left:.5rem!important}.m-3{margin:1rem!important}.mt-3,.my-3{margin-top:1rem!important}.mr-3,.mx-3{margin-right:1rem!important}.mb-3,.my-3{margin-bottom:1rem!important}.ml-3,.mx-3{margin-left:1rem!important}.m-4{margin:1.5rem!important}.mt-4,.my-4{margin-top:1.5rem!important}.mr-4,.mx-4{margin-right:1.5rem!important}.mb-4,.my-4{margin-bottom:1.5rem!important}.ml-4,.mx-4{margin-left:1.5rem!important}.m-5{margin:3rem!important}.mt-5,.my-5{margin-top:3rem!important}.mr-5,.mx-5{margin-right:3rem!important}.mb-5,.my-5{margin-bottom:3rem!important}.ml-5,.mx-5{margin-left:3rem!important}.p-0{padding:0!important}.pt-0,.py-0{padding-top:0!important}.pr-0,.px-0{padding-right:0!important}.pb-0,.py-0{padding-bottom:0!important}.pl-0,.px-0{padding-left:0!important}.p-1{padding:.25rem!important}.pt-1,.py-1{padding-top:.25rem!important}.pr-1,.px-1{padding-right:.25rem!important}.pb-1,.py-1{padding-bottom:.25rem!important}.pl-1,.px-1{padding-left:.25rem!important}.p-2{padding:.5rem!important}.pt-2,.py-2{padding-top:.5rem!important}.pr-2,.px-2{padding-right:.5rem!important}.pb-2,.py-2{padding-bottom:.5rem!important}.pl-2,.px-2{padding-left:.5rem!important}.p-3{padding:1rem!important}.pt-3,.py-3{padding-top:1rem!important}.pr-3,.px-3{padding-right:1rem!important}.pb-3,.py-3{padding-bottom:1rem!important}.pl-3,.px-3{padding-left:1rem!important}.p-4{padding:1.5rem!important}.pt-4,.py-4{padding-top:1.5rem!important}.pr-4,.px-4{padding-right:1.5rem!important}.pb-4,.py-4{padding-bottom:1.5rem!important}.pl-4,.px-4{padding-left:1.5rem!important}.p-5{padding:3rem!important}.pt-5,.py-5{padding-top:3rem!important}.pr-5,.px-5{padding-right:3rem!important}.pb-5,.py-5{padding-bottom:3rem!important}.pl-5,.px-5{padding-left:3rem!important}.m-n1{margin:-.25rem!important}.mt-n1,.my-n1{margin-top:-.25rem!important}.mr-n1,.mx-n1{margin-right:-.25rem!important}.mb-n1,.my-n1{margin-bottom:-.25rem!important}.ml-n1,.mx-n1{margin-left:-.25rem!important}.m-n2{margin:-.5rem!important}.mt-n2,.my-n2{margin-top:-.5rem!important}.mr-n2,.mx-n2{margin-right:-.5rem!important}.mb-n2,.my-n2{margin-bottom:-.5rem!important}.ml-n2,.mx-n2{margin-left:-.5rem!important}.m-n3{margin:-1rem!important}.mt-n3,.my-n3{margin-top:-1rem!important}.mr-n3,.mx-n3{margin-right:-1rem!important}.mb-n3,.my-n3{margin-bottom:-1rem!important}.ml-n3,.mx-n3{margin-left:-1rem!important}.m-n4{margin:-1.5rem!important}.mt-n4,.my-n4{margin-top:-1.5rem!important}.mr-n4,.mx-n4{margin-right:-1.5rem!important}.mb-n4,.my-n4{margin-bottom:-1.5rem!important}.ml-n4,.mx-n4{margin-left:-1.5rem!important}.m-n5{margin:-3rem!important}.mt-n5,.my-n5{margin-top:-3rem!important}.mr-n5,.mx-n5{margin-right:-3rem!important}.mb-n5,.my-n5{margin-bottom:-3rem!important}.ml-n5,.mx-n5{margin-left:-3rem!important}.m-auto{margin:auto!important}.mt-auto,.my-auto{margin-top:auto!important}.mr-auto,.mx-auto{margin-right:auto!important}.mb-auto,.my-auto{margin-bottom:auto!important}.ml-auto,.mx-auto{margin-left:auto!important}@media (min-width:576px){.m-sm-0{margin:0!important}.mt-sm-0,.my-sm-0{margin-top:0!important}.mr-sm-0,.mx-sm-0{margin-right:0!important}.mb-sm-0,.my-sm-0{margin-bottom:0!important}.ml-sm-0,.mx-sm-0{margin-left:0!important}.m-sm-1{margin:.25rem!important}.mt-sm-1,.my-sm-1{margin-top:.25rem!important}.mr-sm-1,.mx-sm-1{margin-right:.25rem!important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem!important}.ml-sm-1,.mx-sm-1{margin-left:.25rem!important}.m-sm-2{margin:.5rem!important}.mt-sm-2,.my-sm-2{margin-top:.5rem!important}.mr-sm-2,.mx-sm-2{margin-right:.5rem!important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem!important}.ml-sm-2,.mx-sm-2{margin-left:.5rem!important}.m-sm-3{margin:1rem!important}.mt-sm-3,.my-sm-3{margin-top:1rem!important}.mr-sm-3,.mx-sm-3{margin-right:1rem!important}.mb-sm-3,.my-sm-3{margin-bottom:1rem!important}.ml-sm-3,.mx-sm-3{margin-left:1rem!important}.m-sm-4{margin:1.5rem!important}.mt-sm-4,.my-sm-4{margin-top:1.5rem!important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem!important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem!important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem!important}.m-sm-5{margin:3rem!important}.mt-sm-5,.my-sm-5{margin-top:3rem!important}.mr-sm-5,.mx-sm-5{margin-right:3rem!important}.mb-sm-5,.my-sm-5{margin-bottom:3rem!important}.ml-sm-5,.mx-sm-5{margin-left:3rem!important}.p-sm-0{padding:0!important}.pt-sm-0,.py-sm-0{padding-top:0!important}.pr-sm-0,.px-sm-0{padding-right:0!important}.pb-sm-0,.py-sm-0{padding-bottom:0!important}.pl-sm-0,.px-sm-0{padding-left:0!important}.p-sm-1{padding:.25rem!important}.pt-sm-1,.py-sm-1{padding-top:.25rem!important}.pr-sm-1,.px-sm-1{padding-right:.25rem!important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem!important}.pl-sm-1,.px-sm-1{padding-left:.25rem!important}.p-sm-2{padding:.5rem!important}.pt-sm-2,.py-sm-2{padding-top:.5rem!important}.pr-sm-2,.px-sm-2{padding-right:.5rem!important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem!important}.pl-sm-2,.px-sm-2{padding-left:.5rem!important}.p-sm-3{padding:1rem!important}.pt-sm-3,.py-sm-3{padding-top:1rem!important}.pr-sm-3,.px-sm-3{padding-right:1rem!important}.pb-sm-3,.py-sm-3{padding-bottom:1rem!important}.pl-sm-3,.px-sm-3{padding-left:1rem!important}.p-sm-4{padding:1.5rem!important}.pt-sm-4,.py-sm-4{padding-top:1.5rem!important}.pr-sm-4,.px-sm-4{padding-right:1.5rem!important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem!important}.pl-sm-4,.px-sm-4{padding-left:1.5rem!important}.p-sm-5{padding:3rem!important}.pt-sm-5,.py-sm-5{padding-top:3rem!important}.pr-sm-5,.px-sm-5{padding-right:3rem!important}.pb-sm-5,.py-sm-5{padding-bottom:3rem!important}.pl-sm-5,.px-sm-5{padding-left:3rem!important}.m-sm-n1{margin:-.25rem!important}.mt-sm-n1,.my-sm-n1{margin-top:-.25rem!important}.mr-sm-n1,.mx-sm-n1{margin-right:-.25rem!important}.mb-sm-n1,.my-sm-n1{margin-bottom:-.25rem!important}.ml-sm-n1,.mx-sm-n1{margin-left:-.25rem!important}.m-sm-n2{margin:-.5rem!important}.mt-sm-n2,.my-sm-n2{margin-top:-.5rem!important}.mr-sm-n2,.mx-sm-n2{margin-right:-.5rem!important}.mb-sm-n2,.my-sm-n2{margin-bottom:-.5rem!important}.ml-sm-n2,.mx-sm-n2{margin-left:-.5rem!important}.m-sm-n3{margin:-1rem!important}.mt-sm-n3,.my-sm-n3{margin-top:-1rem!important}.mr-sm-n3,.mx-sm-n3{margin-right:-1rem!important}.mb-sm-n3,.my-sm-n3{margin-bottom:-1rem!important}.ml-sm-n3,.mx-sm-n3{margin-left:-1rem!important}.m-sm-n4{margin:-1.5rem!important}.mt-sm-n4,.my-sm-n4{margin-top:-1.5rem!important}.mr-sm-n4,.mx-sm-n4{margin-right:-1.5rem!important}.mb-sm-n4,.my-sm-n4{margin-bottom:-1.5rem!important}.ml-sm-n4,.mx-sm-n4{margin-left:-1.5rem!important}.m-sm-n5{margin:-3rem!important}.mt-sm-n5,.my-sm-n5{margin-top:-3rem!important}.mr-sm-n5,.mx-sm-n5{margin-right:-3rem!important}.mb-sm-n5,.my-sm-n5{margin-bottom:-3rem!important}.ml-sm-n5,.mx-sm-n5{margin-left:-3rem!important}.m-sm-auto{margin:auto!important}.mt-sm-auto,.my-sm-auto{margin-top:auto!important}.mr-sm-auto,.mx-sm-auto{margin-right:auto!important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto!important}.ml-sm-auto,.mx-sm-auto{margin-left:auto!important}}@media (min-width:768px){.m-md-0{margin:0!important}.mt-md-0,.my-md-0{margin-top:0!important}.mr-md-0,.mx-md-0{margin-right:0!important}.mb-md-0,.my-md-0{margin-bottom:0!important}.ml-md-0,.mx-md-0{margin-left:0!important}.m-md-1{margin:.25rem!important}.mt-md-1,.my-md-1{margin-top:.25rem!important}.mr-md-1,.mx-md-1{margin-right:.25rem!important}.mb-md-1,.my-md-1{margin-bottom:.25rem!important}.ml-md-1,.mx-md-1{margin-left:.25rem!important}.m-md-2{margin:.5rem!important}.mt-md-2,.my-md-2{margin-top:.5rem!important}.mr-md-2,.mx-md-2{margin-right:.5rem!important}.mb-md-2,.my-md-2{margin-bottom:.5rem!important}.ml-md-2,.mx-md-2{margin-left:.5rem!important}.m-md-3{margin:1rem!important}.mt-md-3,.my-md-3{margin-top:1rem!important}.mr-md-3,.mx-md-3{margin-right:1rem!important}.mb-md-3,.my-md-3{margin-bottom:1rem!important}.ml-md-3,.mx-md-3{margin-left:1rem!important}.m-md-4{margin:1.5rem!important}.mt-md-4,.my-md-4{margin-top:1.5rem!important}.mr-md-4,.mx-md-4{margin-right:1.5rem!important}.mb-md-4,.my-md-4{margin-bottom:1.5rem!important}.ml-md-4,.mx-md-4{margin-left:1.5rem!important}.m-md-5{margin:3rem!important}.mt-md-5,.my-md-5{margin-top:3rem!important}.mr-md-5,.mx-md-5{margin-right:3rem!important}.mb-md-5,.my-md-5{margin-bottom:3rem!important}.ml-md-5,.mx-md-5{margin-left:3rem!important}.p-md-0{padding:0!important}.pt-md-0,.py-md-0{padding-top:0!important}.pr-md-0,.px-md-0{padding-right:0!important}.pb-md-0,.py-md-0{padding-bottom:0!important}.pl-md-0,.px-md-0{padding-left:0!important}.p-md-1{padding:.25rem!important}.pt-md-1,.py-md-1{padding-top:.25rem!important}.pr-md-1,.px-md-1{padding-right:.25rem!important}.pb-md-1,.py-md-1{padding-bottom:.25rem!important}.pl-md-1,.px-md-1{padding-left:.25rem!important}.p-md-2{padding:.5rem!important}.pt-md-2,.py-md-2{padding-top:.5rem!important}.pr-md-2,.px-md-2{padding-right:.5rem!important}.pb-md-2,.py-md-2{padding-bottom:.5rem!important}.pl-md-2,.px-md-2{padding-left:.5rem!important}.p-md-3{padding:1rem!important}.pt-md-3,.py-md-3{padding-top:1rem!important}.pr-md-3,.px-md-3{padding-right:1rem!important}.pb-md-3,.py-md-3{padding-bottom:1rem!important}.pl-md-3,.px-md-3{padding-left:1rem!important}.p-md-4{padding:1.5rem!important}.pt-md-4,.py-md-4{padding-top:1.5rem!important}.pr-md-4,.px-md-4{padding-right:1.5rem!important}.pb-md-4,.py-md-4{padding-bottom:1.5rem!important}.pl-md-4,.px-md-4{padding-left:1.5rem!important}.p-md-5{padding:3rem!important}.pt-md-5,.py-md-5{padding-top:3rem!important}.pr-md-5,.px-md-5{padding-right:3rem!important}.pb-md-5,.py-md-5{padding-bottom:3rem!important}.pl-md-5,.px-md-5{padding-left:3rem!important}.m-md-n1{margin:-.25rem!important}.mt-md-n1,.my-md-n1{margin-top:-.25rem!important}.mr-md-n1,.mx-md-n1{margin-right:-.25rem!important}.mb-md-n1,.my-md-n1{margin-bottom:-.25rem!important}.ml-md-n1,.mx-md-n1{margin-left:-.25rem!important}.m-md-n2{margin:-.5rem!important}.mt-md-n2,.my-md-n2{margin-top:-.5rem!important}.mr-md-n2,.mx-md-n2{margin-right:-.5rem!important}.mb-md-n2,.my-md-n2{margin-bottom:-.5rem!important}.ml-md-n2,.mx-md-n2{margin-left:-.5rem!important}.m-md-n3{margin:-1rem!important}.mt-md-n3,.my-md-n3{margin-top:-1rem!important}.mr-md-n3,.mx-md-n3{margin-right:-1rem!important}.mb-md-n3,.my-md-n3{margin-bottom:-1rem!important}.ml-md-n3,.mx-md-n3{margin-left:-1rem!important}.m-md-n4{margin:-1.5rem!important}.mt-md-n4,.my-md-n4{margin-top:-1.5rem!important}.mr-md-n4,.mx-md-n4{margin-right:-1.5rem!important}.mb-md-n4,.my-md-n4{margin-bottom:-1.5rem!important}.ml-md-n4,.mx-md-n4{margin-left:-1.5rem!important}.m-md-n5{margin:-3rem!important}.mt-md-n5,.my-md-n5{margin-top:-3rem!important}.mr-md-n5,.mx-md-n5{margin-right:-3rem!important}.mb-md-n5,.my-md-n5{margin-bottom:-3rem!important}.ml-md-n5,.mx-md-n5{margin-left:-3rem!important}.m-md-auto{margin:auto!important}.mt-md-auto,.my-md-auto{margin-top:auto!important}.mr-md-auto,.mx-md-auto{margin-right:auto!important}.mb-md-auto,.my-md-auto{margin-bottom:auto!important}.ml-md-auto,.mx-md-auto{margin-left:auto!important}}@media (min-width:992px){.m-lg-0{margin:0!important}.mt-lg-0,.my-lg-0{margin-top:0!important}.mr-lg-0,.mx-lg-0{margin-right:0!important}.mb-lg-0,.my-lg-0{margin-bottom:0!important}.ml-lg-0,.mx-lg-0{margin-left:0!important}.m-lg-1{margin:.25rem!important}.mt-lg-1,.my-lg-1{margin-top:.25rem!important}.mr-lg-1,.mx-lg-1{margin-right:.25rem!important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem!important}.ml-lg-1,.mx-lg-1{margin-left:.25rem!important}.m-lg-2{margin:.5rem!important}.mt-lg-2,.my-lg-2{margin-top:.5rem!important}.mr-lg-2,.mx-lg-2{margin-right:.5rem!important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem!important}.ml-lg-2,.mx-lg-2{margin-left:.5rem!important}.m-lg-3{margin:1rem!important}.mt-lg-3,.my-lg-3{margin-top:1rem!important}.mr-lg-3,.mx-lg-3{margin-right:1rem!important}.mb-lg-3,.my-lg-3{margin-bottom:1rem!important}.ml-lg-3,.mx-lg-3{margin-left:1rem!important}.m-lg-4{margin:1.5rem!important}.mt-lg-4,.my-lg-4{margin-top:1.5rem!important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem!important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem!important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem!important}.m-lg-5{margin:3rem!important}.mt-lg-5,.my-lg-5{margin-top:3rem!important}.mr-lg-5,.mx-lg-5{margin-right:3rem!important}.mb-lg-5,.my-lg-5{margin-bottom:3rem!important}.ml-lg-5,.mx-lg-5{margin-left:3rem!important}.p-lg-0{padding:0!important}.pt-lg-0,.py-lg-0{padding-top:0!important}.pr-lg-0,.px-lg-0{padding-right:0!important}.pb-lg-0,.py-lg-0{padding-bottom:0!important}.pl-lg-0,.px-lg-0{padding-left:0!important}.p-lg-1{padding:.25rem!important}.pt-lg-1,.py-lg-1{padding-top:.25rem!important}.pr-lg-1,.px-lg-1{padding-right:.25rem!important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem!important}.pl-lg-1,.px-lg-1{padding-left:.25rem!important}.p-lg-2{padding:.5rem!important}.pt-lg-2,.py-lg-2{padding-top:.5rem!important}.pr-lg-2,.px-lg-2{padding-right:.5rem!important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem!important}.pl-lg-2,.px-lg-2{padding-left:.5rem!important}.p-lg-3{padding:1rem!important}.pt-lg-3,.py-lg-3{padding-top:1rem!important}.pr-lg-3,.px-lg-3{padding-right:1rem!important}.pb-lg-3,.py-lg-3{padding-bottom:1rem!important}.pl-lg-3,.px-lg-3{padding-left:1rem!important}.p-lg-4{padding:1.5rem!important}.pt-lg-4,.py-lg-4{padding-top:1.5rem!important}.pr-lg-4,.px-lg-4{padding-right:1.5rem!important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem!important}.pl-lg-4,.px-lg-4{padding-left:1.5rem!important}.p-lg-5{padding:3rem!important}.pt-lg-5,.py-lg-5{padding-top:3rem!important}.pr-lg-5,.px-lg-5{padding-right:3rem!important}.pb-lg-5,.py-lg-5{padding-bottom:3rem!important}.pl-lg-5,.px-lg-5{padding-left:3rem!important}.m-lg-n1{margin:-.25rem!important}.mt-lg-n1,.my-lg-n1{margin-top:-.25rem!important}.mr-lg-n1,.mx-lg-n1{margin-right:-.25rem!important}.mb-lg-n1,.my-lg-n1{margin-bottom:-.25rem!important}.ml-lg-n1,.mx-lg-n1{margin-left:-.25rem!important}.m-lg-n2{margin:-.5rem!important}.mt-lg-n2,.my-lg-n2{margin-top:-.5rem!important}.mr-lg-n2,.mx-lg-n2{margin-right:-.5rem!important}.mb-lg-n2,.my-lg-n2{margin-bottom:-.5rem!important}.ml-lg-n2,.mx-lg-n2{margin-left:-.5rem!important}.m-lg-n3{margin:-1rem!important}.mt-lg-n3,.my-lg-n3{margin-top:-1rem!important}.mr-lg-n3,.mx-lg-n3{margin-right:-1rem!important}.mb-lg-n3,.my-lg-n3{margin-bottom:-1rem!important}.ml-lg-n3,.mx-lg-n3{margin-left:-1rem!important}.m-lg-n4{margin:-1.5rem!important}.mt-lg-n4,.my-lg-n4{margin-top:-1.5rem!important}.mr-lg-n4,.mx-lg-n4{margin-right:-1.5rem!important}.mb-lg-n4,.my-lg-n4{margin-bottom:-1.5rem!important}.ml-lg-n4,.mx-lg-n4{margin-left:-1.5rem!important}.m-lg-n5{margin:-3rem!important}.mt-lg-n5,.my-lg-n5{margin-top:-3rem!important}.mr-lg-n5,.mx-lg-n5{margin-right:-3rem!important}.mb-lg-n5,.my-lg-n5{margin-bottom:-3rem!important}.ml-lg-n5,.mx-lg-n5{margin-left:-3rem!important}.m-lg-auto{margin:auto!important}.mt-lg-auto,.my-lg-auto{margin-top:auto!important}.mr-lg-auto,.mx-lg-auto{margin-right:auto!important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto!important}.ml-lg-auto,.mx-lg-auto{margin-left:auto!important}}@media (min-width:1200px){.m-xl-0{margin:0!important}.mt-xl-0,.my-xl-0{margin-top:0!important}.mr-xl-0,.mx-xl-0{margin-right:0!important}.mb-xl-0,.my-xl-0{margin-bottom:0!important}.ml-xl-0,.mx-xl-0{margin-left:0!important}.m-xl-1{margin:.25rem!important}.mt-xl-1,.my-xl-1{margin-top:.25rem!important}.mr-xl-1,.mx-xl-1{margin-right:.25rem!important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem!important}.ml-xl-1,.mx-xl-1{margin-left:.25rem!important}.m-xl-2{margin:.5rem!important}.mt-xl-2,.my-xl-2{margin-top:.5rem!important}.mr-xl-2,.mx-xl-2{margin-right:.5rem!important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem!important}.ml-xl-2,.mx-xl-2{margin-left:.5rem!important}.m-xl-3{margin:1rem!important}.mt-xl-3,.my-xl-3{margin-top:1rem!important}.mr-xl-3,.mx-xl-3{margin-right:1rem!important}.mb-xl-3,.my-xl-3{margin-bottom:1rem!important}.ml-xl-3,.mx-xl-3{margin-left:1rem!important}.m-xl-4{margin:1.5rem!important}.mt-xl-4,.my-xl-4{margin-top:1.5rem!important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem!important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem!important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem!important}.m-xl-5{margin:3rem!important}.mt-xl-5,.my-xl-5{margin-top:3rem!important}.mr-xl-5,.mx-xl-5{margin-right:3rem!important}.mb-xl-5,.my-xl-5{margin-bottom:3rem!important}.ml-xl-5,.mx-xl-5{margin-left:3rem!important}.p-xl-0{padding:0!important}.pt-xl-0,.py-xl-0{padding-top:0!important}.pr-xl-0,.px-xl-0{padding-right:0!important}.pb-xl-0,.py-xl-0{padding-bottom:0!important}.pl-xl-0,.px-xl-0{padding-left:0!important}.p-xl-1{padding:.25rem!important}.pt-xl-1,.py-xl-1{padding-top:.25rem!important}.pr-xl-1,.px-xl-1{padding-right:.25rem!important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem!important}.pl-xl-1,.px-xl-1{padding-left:.25rem!important}.p-xl-2{padding:.5rem!important}.pt-xl-2,.py-xl-2{padding-top:.5rem!important}.pr-xl-2,.px-xl-2{padding-right:.5rem!important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem!important}.pl-xl-2,.px-xl-2{padding-left:.5rem!important}.p-xl-3{padding:1rem!important}.pt-xl-3,.py-xl-3{padding-top:1rem!important}.pr-xl-3,.px-xl-3{padding-right:1rem!important}.pb-xl-3,.py-xl-3{padding-bottom:1rem!important}.pl-xl-3,.px-xl-3{padding-left:1rem!important}.p-xl-4{padding:1.5rem!important}.pt-xl-4,.py-xl-4{padding-top:1.5rem!important}.pr-xl-4,.px-xl-4{padding-right:1.5rem!important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem!important}.pl-xl-4,.px-xl-4{padding-left:1.5rem!important}.p-xl-5{padding:3rem!important}.pt-xl-5,.py-xl-5{padding-top:3rem!important}.pr-xl-5,.px-xl-5{padding-right:3rem!important}.pb-xl-5,.py-xl-5{padding-bottom:3rem!important}.pl-xl-5,.px-xl-5{padding-left:3rem!important}.m-xl-n1{margin:-.25rem!important}.mt-xl-n1,.my-xl-n1{margin-top:-.25rem!important}.mr-xl-n1,.mx-xl-n1{margin-right:-.25rem!important}.mb-xl-n1,.my-xl-n1{margin-bottom:-.25rem!important}.ml-xl-n1,.mx-xl-n1{margin-left:-.25rem!important}.m-xl-n2{margin:-.5rem!important}.mt-xl-n2,.my-xl-n2{margin-top:-.5rem!important}.mr-xl-n2,.mx-xl-n2{margin-right:-.5rem!important}.mb-xl-n2,.my-xl-n2{margin-bottom:-.5rem!important}.ml-xl-n2,.mx-xl-n2{margin-left:-.5rem!important}.m-xl-n3{margin:-1rem!important}.mt-xl-n3,.my-xl-n3{margin-top:-1rem!important}.mr-xl-n3,.mx-xl-n3{margin-right:-1rem!important}.mb-xl-n3,.my-xl-n3{margin-bottom:-1rem!important}.ml-xl-n3,.mx-xl-n3{margin-left:-1rem!important}.m-xl-n4{margin:-1.5rem!important}.mt-xl-n4,.my-xl-n4{margin-top:-1.5rem!important}.mr-xl-n4,.mx-xl-n4{margin-right:-1.5rem!important}.mb-xl-n4,.my-xl-n4{margin-bottom:-1.5rem!important}.ml-xl-n4,.mx-xl-n4{margin-left:-1.5rem!important}.m-xl-n5{margin:-3rem!important}.mt-xl-n5,.my-xl-n5{margin-top:-3rem!important}.mr-xl-n5,.mx-xl-n5{margin-right:-3rem!important}.mb-xl-n5,.my-xl-n5{margin-bottom:-3rem!important}.ml-xl-n5,.mx-xl-n5{margin-left:-3rem!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}} +/*# sourceMappingURL=bootstrap-grid.min.css.map */ \ No newline at end of file diff --git a/css/bootstrap-grid.min.css.map b/css/bootstrap-grid.min.css.map new file mode 100644 index 000000000..1b393db3e --- /dev/null +++ b/css/bootstrap-grid.min.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../scss/bootstrap-grid.scss","dist/css/bootstrap-grid.css","../../scss/_grid.scss","../../scss/mixins/_grid.scss","../../scss/mixins/_breakpoints.scss","../../scss/mixins/_grid-framework.scss","../../scss/utilities/_display.scss","../../scss/utilities/_flex.scss","../../scss/utilities/_spacing.scss"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Bootstrap Grid v4.4.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 The Bootstrap Authors\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n\nhtml {\n box-sizing: border-box;\n -ms-overflow-style: scrollbar;\n}\n\n*,\n*::before,\n*::after {\n box-sizing: inherit;\n}\n\n@import \"functions\";\n@import \"variables\";\n\n@import \"mixins/breakpoints\";\n@import \"mixins/grid-framework\";\n@import \"mixins/grid\";\n\n@import \"grid\";\n@import \"utilities/display\";\n@import \"utilities/flex\";\n@import \"utilities/spacing\";\n","/*!\n * Bootstrap Grid v4.4.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 The Bootstrap Authors\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\nhtml {\n box-sizing: border-box;\n -ms-overflow-style: scrollbar;\n}\n\n*,\n*::before,\n*::after {\n box-sizing: inherit;\n}\n\n.container {\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n\n@media (min-width: 576px) {\n .container {\n max-width: 540px;\n }\n}\n\n@media (min-width: 768px) {\n .container {\n max-width: 720px;\n }\n}\n\n@media (min-width: 992px) {\n .container {\n max-width: 960px;\n }\n}\n\n@media (min-width: 1200px) {\n .container {\n max-width: 1140px;\n }\n}\n\n.container-fluid, .container-sm, .container-md, .container-lg, .container-xl {\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n\n@media (min-width: 576px) {\n .container, .container-sm {\n max-width: 540px;\n }\n}\n\n@media (min-width: 768px) {\n .container, .container-sm, .container-md {\n max-width: 720px;\n }\n}\n\n@media (min-width: 992px) {\n .container, .container-sm, .container-md, .container-lg {\n max-width: 960px;\n }\n}\n\n@media (min-width: 1200px) {\n .container, .container-sm, .container-md, .container-lg, .container-xl {\n max-width: 1140px;\n }\n}\n\n.row {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n margin-right: -15px;\n margin-left: -15px;\n}\n\n.no-gutters {\n margin-right: 0;\n margin-left: 0;\n}\n\n.no-gutters > .col,\n.no-gutters > [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n}\n\n.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col,\n.col-auto, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm,\n.col-sm-auto, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md,\n.col-md-auto, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg,\n.col-lg-auto, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl,\n.col-xl-auto {\n position: relative;\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n}\n\n.col {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%;\n}\n\n.row-cols-1 > * {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n}\n\n.row-cols-2 > * {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n}\n\n.row-cols-3 > * {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n}\n\n.row-cols-4 > * {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n}\n\n.row-cols-5 > * {\n -ms-flex: 0 0 20%;\n flex: 0 0 20%;\n max-width: 20%;\n}\n\n.row-cols-6 > * {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n}\n\n.col-auto {\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n}\n\n.col-1 {\n -ms-flex: 0 0 8.333333%;\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n}\n\n.col-2 {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n}\n\n.col-3 {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n}\n\n.col-4 {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n}\n\n.col-5 {\n -ms-flex: 0 0 41.666667%;\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n}\n\n.col-6 {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n}\n\n.col-7 {\n -ms-flex: 0 0 58.333333%;\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n}\n\n.col-8 {\n -ms-flex: 0 0 66.666667%;\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n}\n\n.col-9 {\n -ms-flex: 0 0 75%;\n flex: 0 0 75%;\n max-width: 75%;\n}\n\n.col-10 {\n -ms-flex: 0 0 83.333333%;\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n}\n\n.col-11 {\n -ms-flex: 0 0 91.666667%;\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n}\n\n.col-12 {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n}\n\n.order-first {\n -ms-flex-order: -1;\n order: -1;\n}\n\n.order-last {\n -ms-flex-order: 13;\n order: 13;\n}\n\n.order-0 {\n -ms-flex-order: 0;\n order: 0;\n}\n\n.order-1 {\n -ms-flex-order: 1;\n order: 1;\n}\n\n.order-2 {\n -ms-flex-order: 2;\n order: 2;\n}\n\n.order-3 {\n -ms-flex-order: 3;\n order: 3;\n}\n\n.order-4 {\n -ms-flex-order: 4;\n order: 4;\n}\n\n.order-5 {\n -ms-flex-order: 5;\n order: 5;\n}\n\n.order-6 {\n -ms-flex-order: 6;\n order: 6;\n}\n\n.order-7 {\n -ms-flex-order: 7;\n order: 7;\n}\n\n.order-8 {\n -ms-flex-order: 8;\n order: 8;\n}\n\n.order-9 {\n -ms-flex-order: 9;\n order: 9;\n}\n\n.order-10 {\n -ms-flex-order: 10;\n order: 10;\n}\n\n.order-11 {\n -ms-flex-order: 11;\n order: 11;\n}\n\n.order-12 {\n -ms-flex-order: 12;\n order: 12;\n}\n\n.offset-1 {\n margin-left: 8.333333%;\n}\n\n.offset-2 {\n margin-left: 16.666667%;\n}\n\n.offset-3 {\n margin-left: 25%;\n}\n\n.offset-4 {\n margin-left: 33.333333%;\n}\n\n.offset-5 {\n margin-left: 41.666667%;\n}\n\n.offset-6 {\n margin-left: 50%;\n}\n\n.offset-7 {\n margin-left: 58.333333%;\n}\n\n.offset-8 {\n margin-left: 66.666667%;\n}\n\n.offset-9 {\n margin-left: 75%;\n}\n\n.offset-10 {\n margin-left: 83.333333%;\n}\n\n.offset-11 {\n margin-left: 91.666667%;\n}\n\n@media (min-width: 576px) {\n .col-sm {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-sm-1 > * {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-sm-2 > * {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-sm-3 > * {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-sm-4 > * {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-sm-5 > * {\n -ms-flex: 0 0 20%;\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-sm-6 > * {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-sm-auto {\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-sm-1 {\n -ms-flex: 0 0 8.333333%;\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-sm-2 {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-sm-3 {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-sm-4 {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-sm-5 {\n -ms-flex: 0 0 41.666667%;\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-sm-6 {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-sm-7 {\n -ms-flex: 0 0 58.333333%;\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-sm-8 {\n -ms-flex: 0 0 66.666667%;\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-sm-9 {\n -ms-flex: 0 0 75%;\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-sm-10 {\n -ms-flex: 0 0 83.333333%;\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-sm-11 {\n -ms-flex: 0 0 91.666667%;\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-sm-12 {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-sm-first {\n -ms-flex-order: -1;\n order: -1;\n }\n .order-sm-last {\n -ms-flex-order: 13;\n order: 13;\n }\n .order-sm-0 {\n -ms-flex-order: 0;\n order: 0;\n }\n .order-sm-1 {\n -ms-flex-order: 1;\n order: 1;\n }\n .order-sm-2 {\n -ms-flex-order: 2;\n order: 2;\n }\n .order-sm-3 {\n -ms-flex-order: 3;\n order: 3;\n }\n .order-sm-4 {\n -ms-flex-order: 4;\n order: 4;\n }\n .order-sm-5 {\n -ms-flex-order: 5;\n order: 5;\n }\n .order-sm-6 {\n -ms-flex-order: 6;\n order: 6;\n }\n .order-sm-7 {\n -ms-flex-order: 7;\n order: 7;\n }\n .order-sm-8 {\n -ms-flex-order: 8;\n order: 8;\n }\n .order-sm-9 {\n -ms-flex-order: 9;\n order: 9;\n }\n .order-sm-10 {\n -ms-flex-order: 10;\n order: 10;\n }\n .order-sm-11 {\n -ms-flex-order: 11;\n order: 11;\n }\n .order-sm-12 {\n -ms-flex-order: 12;\n order: 12;\n }\n .offset-sm-0 {\n margin-left: 0;\n }\n .offset-sm-1 {\n margin-left: 8.333333%;\n }\n .offset-sm-2 {\n margin-left: 16.666667%;\n }\n .offset-sm-3 {\n margin-left: 25%;\n }\n .offset-sm-4 {\n margin-left: 33.333333%;\n }\n .offset-sm-5 {\n margin-left: 41.666667%;\n }\n .offset-sm-6 {\n margin-left: 50%;\n }\n .offset-sm-7 {\n margin-left: 58.333333%;\n }\n .offset-sm-8 {\n margin-left: 66.666667%;\n }\n .offset-sm-9 {\n margin-left: 75%;\n }\n .offset-sm-10 {\n margin-left: 83.333333%;\n }\n .offset-sm-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 768px) {\n .col-md {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-md-1 > * {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-md-2 > * {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-md-3 > * {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-md-4 > * {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-md-5 > * {\n -ms-flex: 0 0 20%;\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-md-6 > * {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-md-auto {\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-md-1 {\n -ms-flex: 0 0 8.333333%;\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-md-2 {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-md-3 {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-md-4 {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-md-5 {\n -ms-flex: 0 0 41.666667%;\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-md-6 {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-md-7 {\n -ms-flex: 0 0 58.333333%;\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-md-8 {\n -ms-flex: 0 0 66.666667%;\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-md-9 {\n -ms-flex: 0 0 75%;\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-md-10 {\n -ms-flex: 0 0 83.333333%;\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-md-11 {\n -ms-flex: 0 0 91.666667%;\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-md-12 {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-md-first {\n -ms-flex-order: -1;\n order: -1;\n }\n .order-md-last {\n -ms-flex-order: 13;\n order: 13;\n }\n .order-md-0 {\n -ms-flex-order: 0;\n order: 0;\n }\n .order-md-1 {\n -ms-flex-order: 1;\n order: 1;\n }\n .order-md-2 {\n -ms-flex-order: 2;\n order: 2;\n }\n .order-md-3 {\n -ms-flex-order: 3;\n order: 3;\n }\n .order-md-4 {\n -ms-flex-order: 4;\n order: 4;\n }\n .order-md-5 {\n -ms-flex-order: 5;\n order: 5;\n }\n .order-md-6 {\n -ms-flex-order: 6;\n order: 6;\n }\n .order-md-7 {\n -ms-flex-order: 7;\n order: 7;\n }\n .order-md-8 {\n -ms-flex-order: 8;\n order: 8;\n }\n .order-md-9 {\n -ms-flex-order: 9;\n order: 9;\n }\n .order-md-10 {\n -ms-flex-order: 10;\n order: 10;\n }\n .order-md-11 {\n -ms-flex-order: 11;\n order: 11;\n }\n .order-md-12 {\n -ms-flex-order: 12;\n order: 12;\n }\n .offset-md-0 {\n margin-left: 0;\n }\n .offset-md-1 {\n margin-left: 8.333333%;\n }\n .offset-md-2 {\n margin-left: 16.666667%;\n }\n .offset-md-3 {\n margin-left: 25%;\n }\n .offset-md-4 {\n margin-left: 33.333333%;\n }\n .offset-md-5 {\n margin-left: 41.666667%;\n }\n .offset-md-6 {\n margin-left: 50%;\n }\n .offset-md-7 {\n margin-left: 58.333333%;\n }\n .offset-md-8 {\n margin-left: 66.666667%;\n }\n .offset-md-9 {\n margin-left: 75%;\n }\n .offset-md-10 {\n margin-left: 83.333333%;\n }\n .offset-md-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 992px) {\n .col-lg {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-lg-1 > * {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-lg-2 > * {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-lg-3 > * {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-lg-4 > * {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-lg-5 > * {\n -ms-flex: 0 0 20%;\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-lg-6 > * {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-lg-auto {\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-lg-1 {\n -ms-flex: 0 0 8.333333%;\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-lg-2 {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-lg-3 {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-lg-4 {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-lg-5 {\n -ms-flex: 0 0 41.666667%;\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-lg-6 {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-lg-7 {\n -ms-flex: 0 0 58.333333%;\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-lg-8 {\n -ms-flex: 0 0 66.666667%;\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-lg-9 {\n -ms-flex: 0 0 75%;\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-lg-10 {\n -ms-flex: 0 0 83.333333%;\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-lg-11 {\n -ms-flex: 0 0 91.666667%;\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-lg-12 {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-lg-first {\n -ms-flex-order: -1;\n order: -1;\n }\n .order-lg-last {\n -ms-flex-order: 13;\n order: 13;\n }\n .order-lg-0 {\n -ms-flex-order: 0;\n order: 0;\n }\n .order-lg-1 {\n -ms-flex-order: 1;\n order: 1;\n }\n .order-lg-2 {\n -ms-flex-order: 2;\n order: 2;\n }\n .order-lg-3 {\n -ms-flex-order: 3;\n order: 3;\n }\n .order-lg-4 {\n -ms-flex-order: 4;\n order: 4;\n }\n .order-lg-5 {\n -ms-flex-order: 5;\n order: 5;\n }\n .order-lg-6 {\n -ms-flex-order: 6;\n order: 6;\n }\n .order-lg-7 {\n -ms-flex-order: 7;\n order: 7;\n }\n .order-lg-8 {\n -ms-flex-order: 8;\n order: 8;\n }\n .order-lg-9 {\n -ms-flex-order: 9;\n order: 9;\n }\n .order-lg-10 {\n -ms-flex-order: 10;\n order: 10;\n }\n .order-lg-11 {\n -ms-flex-order: 11;\n order: 11;\n }\n .order-lg-12 {\n -ms-flex-order: 12;\n order: 12;\n }\n .offset-lg-0 {\n margin-left: 0;\n }\n .offset-lg-1 {\n margin-left: 8.333333%;\n }\n .offset-lg-2 {\n margin-left: 16.666667%;\n }\n .offset-lg-3 {\n margin-left: 25%;\n }\n .offset-lg-4 {\n margin-left: 33.333333%;\n }\n .offset-lg-5 {\n margin-left: 41.666667%;\n }\n .offset-lg-6 {\n margin-left: 50%;\n }\n .offset-lg-7 {\n margin-left: 58.333333%;\n }\n .offset-lg-8 {\n margin-left: 66.666667%;\n }\n .offset-lg-9 {\n margin-left: 75%;\n }\n .offset-lg-10 {\n margin-left: 83.333333%;\n }\n .offset-lg-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 1200px) {\n .col-xl {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-xl-1 > * {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-xl-2 > * {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-xl-3 > * {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-xl-4 > * {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-xl-5 > * {\n -ms-flex: 0 0 20%;\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-xl-6 > * {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-xl-auto {\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-xl-1 {\n -ms-flex: 0 0 8.333333%;\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-xl-2 {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-xl-3 {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-xl-4 {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-xl-5 {\n -ms-flex: 0 0 41.666667%;\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-xl-6 {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-xl-7 {\n -ms-flex: 0 0 58.333333%;\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-xl-8 {\n -ms-flex: 0 0 66.666667%;\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-xl-9 {\n -ms-flex: 0 0 75%;\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-xl-10 {\n -ms-flex: 0 0 83.333333%;\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-xl-11 {\n -ms-flex: 0 0 91.666667%;\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-xl-12 {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-xl-first {\n -ms-flex-order: -1;\n order: -1;\n }\n .order-xl-last {\n -ms-flex-order: 13;\n order: 13;\n }\n .order-xl-0 {\n -ms-flex-order: 0;\n order: 0;\n }\n .order-xl-1 {\n -ms-flex-order: 1;\n order: 1;\n }\n .order-xl-2 {\n -ms-flex-order: 2;\n order: 2;\n }\n .order-xl-3 {\n -ms-flex-order: 3;\n order: 3;\n }\n .order-xl-4 {\n -ms-flex-order: 4;\n order: 4;\n }\n .order-xl-5 {\n -ms-flex-order: 5;\n order: 5;\n }\n .order-xl-6 {\n -ms-flex-order: 6;\n order: 6;\n }\n .order-xl-7 {\n -ms-flex-order: 7;\n order: 7;\n }\n .order-xl-8 {\n -ms-flex-order: 8;\n order: 8;\n }\n .order-xl-9 {\n -ms-flex-order: 9;\n order: 9;\n }\n .order-xl-10 {\n -ms-flex-order: 10;\n order: 10;\n }\n .order-xl-11 {\n -ms-flex-order: 11;\n order: 11;\n }\n .order-xl-12 {\n -ms-flex-order: 12;\n order: 12;\n }\n .offset-xl-0 {\n margin-left: 0;\n }\n .offset-xl-1 {\n margin-left: 8.333333%;\n }\n .offset-xl-2 {\n margin-left: 16.666667%;\n }\n .offset-xl-3 {\n margin-left: 25%;\n }\n .offset-xl-4 {\n margin-left: 33.333333%;\n }\n .offset-xl-5 {\n margin-left: 41.666667%;\n }\n .offset-xl-6 {\n margin-left: 50%;\n }\n .offset-xl-7 {\n margin-left: 58.333333%;\n }\n .offset-xl-8 {\n margin-left: 66.666667%;\n }\n .offset-xl-9 {\n margin-left: 75%;\n }\n .offset-xl-10 {\n margin-left: 83.333333%;\n }\n .offset-xl-11 {\n margin-left: 91.666667%;\n }\n}\n\n.d-none {\n display: none !important;\n}\n\n.d-inline {\n display: inline !important;\n}\n\n.d-inline-block {\n display: inline-block !important;\n}\n\n.d-block {\n display: block !important;\n}\n\n.d-table {\n display: table !important;\n}\n\n.d-table-row {\n display: table-row !important;\n}\n\n.d-table-cell {\n display: table-cell !important;\n}\n\n.d-flex {\n display: -ms-flexbox !important;\n display: flex !important;\n}\n\n.d-inline-flex {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n}\n\n@media (min-width: 576px) {\n .d-sm-none {\n display: none !important;\n }\n .d-sm-inline {\n display: inline !important;\n }\n .d-sm-inline-block {\n display: inline-block !important;\n }\n .d-sm-block {\n display: block !important;\n }\n .d-sm-table {\n display: table !important;\n }\n .d-sm-table-row {\n display: table-row !important;\n }\n .d-sm-table-cell {\n display: table-cell !important;\n }\n .d-sm-flex {\n display: -ms-flexbox !important;\n display: flex !important;\n }\n .d-sm-inline-flex {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 768px) {\n .d-md-none {\n display: none !important;\n }\n .d-md-inline {\n display: inline !important;\n }\n .d-md-inline-block {\n display: inline-block !important;\n }\n .d-md-block {\n display: block !important;\n }\n .d-md-table {\n display: table !important;\n }\n .d-md-table-row {\n display: table-row !important;\n }\n .d-md-table-cell {\n display: table-cell !important;\n }\n .d-md-flex {\n display: -ms-flexbox !important;\n display: flex !important;\n }\n .d-md-inline-flex {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 992px) {\n .d-lg-none {\n display: none !important;\n }\n .d-lg-inline {\n display: inline !important;\n }\n .d-lg-inline-block {\n display: inline-block !important;\n }\n .d-lg-block {\n display: block !important;\n }\n .d-lg-table {\n display: table !important;\n }\n .d-lg-table-row {\n display: table-row !important;\n }\n .d-lg-table-cell {\n display: table-cell !important;\n }\n .d-lg-flex {\n display: -ms-flexbox !important;\n display: flex !important;\n }\n .d-lg-inline-flex {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 1200px) {\n .d-xl-none {\n display: none !important;\n }\n .d-xl-inline {\n display: inline !important;\n }\n .d-xl-inline-block {\n display: inline-block !important;\n }\n .d-xl-block {\n display: block !important;\n }\n .d-xl-table {\n display: table !important;\n }\n .d-xl-table-row {\n display: table-row !important;\n }\n .d-xl-table-cell {\n display: table-cell !important;\n }\n .d-xl-flex {\n display: -ms-flexbox !important;\n display: flex !important;\n }\n .d-xl-inline-flex {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n }\n}\n\n@media print {\n .d-print-none {\n display: none !important;\n }\n .d-print-inline {\n display: inline !important;\n }\n .d-print-inline-block {\n display: inline-block !important;\n }\n .d-print-block {\n display: block !important;\n }\n .d-print-table {\n display: table !important;\n }\n .d-print-table-row {\n display: table-row !important;\n }\n .d-print-table-cell {\n display: table-cell !important;\n }\n .d-print-flex {\n display: -ms-flexbox !important;\n display: flex !important;\n }\n .d-print-inline-flex {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n }\n}\n\n.flex-row {\n -ms-flex-direction: row !important;\n flex-direction: row !important;\n}\n\n.flex-column {\n -ms-flex-direction: column !important;\n flex-direction: column !important;\n}\n\n.flex-row-reverse {\n -ms-flex-direction: row-reverse !important;\n flex-direction: row-reverse !important;\n}\n\n.flex-column-reverse {\n -ms-flex-direction: column-reverse !important;\n flex-direction: column-reverse !important;\n}\n\n.flex-wrap {\n -ms-flex-wrap: wrap !important;\n flex-wrap: wrap !important;\n}\n\n.flex-nowrap {\n -ms-flex-wrap: nowrap !important;\n flex-wrap: nowrap !important;\n}\n\n.flex-wrap-reverse {\n -ms-flex-wrap: wrap-reverse !important;\n flex-wrap: wrap-reverse !important;\n}\n\n.flex-fill {\n -ms-flex: 1 1 auto !important;\n flex: 1 1 auto !important;\n}\n\n.flex-grow-0 {\n -ms-flex-positive: 0 !important;\n flex-grow: 0 !important;\n}\n\n.flex-grow-1 {\n -ms-flex-positive: 1 !important;\n flex-grow: 1 !important;\n}\n\n.flex-shrink-0 {\n -ms-flex-negative: 0 !important;\n flex-shrink: 0 !important;\n}\n\n.flex-shrink-1 {\n -ms-flex-negative: 1 !important;\n flex-shrink: 1 !important;\n}\n\n.justify-content-start {\n -ms-flex-pack: start !important;\n justify-content: flex-start !important;\n}\n\n.justify-content-end {\n -ms-flex-pack: end !important;\n justify-content: flex-end !important;\n}\n\n.justify-content-center {\n -ms-flex-pack: center !important;\n justify-content: center !important;\n}\n\n.justify-content-between {\n -ms-flex-pack: justify !important;\n justify-content: space-between !important;\n}\n\n.justify-content-around {\n -ms-flex-pack: distribute !important;\n justify-content: space-around !important;\n}\n\n.align-items-start {\n -ms-flex-align: start !important;\n align-items: flex-start !important;\n}\n\n.align-items-end {\n -ms-flex-align: end !important;\n align-items: flex-end !important;\n}\n\n.align-items-center {\n -ms-flex-align: center !important;\n align-items: center !important;\n}\n\n.align-items-baseline {\n -ms-flex-align: baseline !important;\n align-items: baseline !important;\n}\n\n.align-items-stretch {\n -ms-flex-align: stretch !important;\n align-items: stretch !important;\n}\n\n.align-content-start {\n -ms-flex-line-pack: start !important;\n align-content: flex-start !important;\n}\n\n.align-content-end {\n -ms-flex-line-pack: end !important;\n align-content: flex-end !important;\n}\n\n.align-content-center {\n -ms-flex-line-pack: center !important;\n align-content: center !important;\n}\n\n.align-content-between {\n -ms-flex-line-pack: justify !important;\n align-content: space-between !important;\n}\n\n.align-content-around {\n -ms-flex-line-pack: distribute !important;\n align-content: space-around !important;\n}\n\n.align-content-stretch {\n -ms-flex-line-pack: stretch !important;\n align-content: stretch !important;\n}\n\n.align-self-auto {\n -ms-flex-item-align: auto !important;\n align-self: auto !important;\n}\n\n.align-self-start {\n -ms-flex-item-align: start !important;\n align-self: flex-start !important;\n}\n\n.align-self-end {\n -ms-flex-item-align: end !important;\n align-self: flex-end !important;\n}\n\n.align-self-center {\n -ms-flex-item-align: center !important;\n align-self: center !important;\n}\n\n.align-self-baseline {\n -ms-flex-item-align: baseline !important;\n align-self: baseline !important;\n}\n\n.align-self-stretch {\n -ms-flex-item-align: stretch !important;\n align-self: stretch !important;\n}\n\n@media (min-width: 576px) {\n .flex-sm-row {\n -ms-flex-direction: row !important;\n flex-direction: row !important;\n }\n .flex-sm-column {\n -ms-flex-direction: column !important;\n flex-direction: column !important;\n }\n .flex-sm-row-reverse {\n -ms-flex-direction: row-reverse !important;\n flex-direction: row-reverse !important;\n }\n .flex-sm-column-reverse {\n -ms-flex-direction: column-reverse !important;\n flex-direction: column-reverse !important;\n }\n .flex-sm-wrap {\n -ms-flex-wrap: wrap !important;\n flex-wrap: wrap !important;\n }\n .flex-sm-nowrap {\n -ms-flex-wrap: nowrap !important;\n flex-wrap: nowrap !important;\n }\n .flex-sm-wrap-reverse {\n -ms-flex-wrap: wrap-reverse !important;\n flex-wrap: wrap-reverse !important;\n }\n .flex-sm-fill {\n -ms-flex: 1 1 auto !important;\n flex: 1 1 auto !important;\n }\n .flex-sm-grow-0 {\n -ms-flex-positive: 0 !important;\n flex-grow: 0 !important;\n }\n .flex-sm-grow-1 {\n -ms-flex-positive: 1 !important;\n flex-grow: 1 !important;\n }\n .flex-sm-shrink-0 {\n -ms-flex-negative: 0 !important;\n flex-shrink: 0 !important;\n }\n .flex-sm-shrink-1 {\n -ms-flex-negative: 1 !important;\n flex-shrink: 1 !important;\n }\n .justify-content-sm-start {\n -ms-flex-pack: start !important;\n justify-content: flex-start !important;\n }\n .justify-content-sm-end {\n -ms-flex-pack: end !important;\n justify-content: flex-end !important;\n }\n .justify-content-sm-center {\n -ms-flex-pack: center !important;\n justify-content: center !important;\n }\n .justify-content-sm-between {\n -ms-flex-pack: justify !important;\n justify-content: space-between !important;\n }\n .justify-content-sm-around {\n -ms-flex-pack: distribute !important;\n justify-content: space-around !important;\n }\n .align-items-sm-start {\n -ms-flex-align: start !important;\n align-items: flex-start !important;\n }\n .align-items-sm-end {\n -ms-flex-align: end !important;\n align-items: flex-end !important;\n }\n .align-items-sm-center {\n -ms-flex-align: center !important;\n align-items: center !important;\n }\n .align-items-sm-baseline {\n -ms-flex-align: baseline !important;\n align-items: baseline !important;\n }\n .align-items-sm-stretch {\n -ms-flex-align: stretch !important;\n align-items: stretch !important;\n }\n .align-content-sm-start {\n -ms-flex-line-pack: start !important;\n align-content: flex-start !important;\n }\n .align-content-sm-end {\n -ms-flex-line-pack: end !important;\n align-content: flex-end !important;\n }\n .align-content-sm-center {\n -ms-flex-line-pack: center !important;\n align-content: center !important;\n }\n .align-content-sm-between {\n -ms-flex-line-pack: justify !important;\n align-content: space-between !important;\n }\n .align-content-sm-around {\n -ms-flex-line-pack: distribute !important;\n align-content: space-around !important;\n }\n .align-content-sm-stretch {\n -ms-flex-line-pack: stretch !important;\n align-content: stretch !important;\n }\n .align-self-sm-auto {\n -ms-flex-item-align: auto !important;\n align-self: auto !important;\n }\n .align-self-sm-start {\n -ms-flex-item-align: start !important;\n align-self: flex-start !important;\n }\n .align-self-sm-end {\n -ms-flex-item-align: end !important;\n align-self: flex-end !important;\n }\n .align-self-sm-center {\n -ms-flex-item-align: center !important;\n align-self: center !important;\n }\n .align-self-sm-baseline {\n -ms-flex-item-align: baseline !important;\n align-self: baseline !important;\n }\n .align-self-sm-stretch {\n -ms-flex-item-align: stretch !important;\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 768px) {\n .flex-md-row {\n -ms-flex-direction: row !important;\n flex-direction: row !important;\n }\n .flex-md-column {\n -ms-flex-direction: column !important;\n flex-direction: column !important;\n }\n .flex-md-row-reverse {\n -ms-flex-direction: row-reverse !important;\n flex-direction: row-reverse !important;\n }\n .flex-md-column-reverse {\n -ms-flex-direction: column-reverse !important;\n flex-direction: column-reverse !important;\n }\n .flex-md-wrap {\n -ms-flex-wrap: wrap !important;\n flex-wrap: wrap !important;\n }\n .flex-md-nowrap {\n -ms-flex-wrap: nowrap !important;\n flex-wrap: nowrap !important;\n }\n .flex-md-wrap-reverse {\n -ms-flex-wrap: wrap-reverse !important;\n flex-wrap: wrap-reverse !important;\n }\n .flex-md-fill {\n -ms-flex: 1 1 auto !important;\n flex: 1 1 auto !important;\n }\n .flex-md-grow-0 {\n -ms-flex-positive: 0 !important;\n flex-grow: 0 !important;\n }\n .flex-md-grow-1 {\n -ms-flex-positive: 1 !important;\n flex-grow: 1 !important;\n }\n .flex-md-shrink-0 {\n -ms-flex-negative: 0 !important;\n flex-shrink: 0 !important;\n }\n .flex-md-shrink-1 {\n -ms-flex-negative: 1 !important;\n flex-shrink: 1 !important;\n }\n .justify-content-md-start {\n -ms-flex-pack: start !important;\n justify-content: flex-start !important;\n }\n .justify-content-md-end {\n -ms-flex-pack: end !important;\n justify-content: flex-end !important;\n }\n .justify-content-md-center {\n -ms-flex-pack: center !important;\n justify-content: center !important;\n }\n .justify-content-md-between {\n -ms-flex-pack: justify !important;\n justify-content: space-between !important;\n }\n .justify-content-md-around {\n -ms-flex-pack: distribute !important;\n justify-content: space-around !important;\n }\n .align-items-md-start {\n -ms-flex-align: start !important;\n align-items: flex-start !important;\n }\n .align-items-md-end {\n -ms-flex-align: end !important;\n align-items: flex-end !important;\n }\n .align-items-md-center {\n -ms-flex-align: center !important;\n align-items: center !important;\n }\n .align-items-md-baseline {\n -ms-flex-align: baseline !important;\n align-items: baseline !important;\n }\n .align-items-md-stretch {\n -ms-flex-align: stretch !important;\n align-items: stretch !important;\n }\n .align-content-md-start {\n -ms-flex-line-pack: start !important;\n align-content: flex-start !important;\n }\n .align-content-md-end {\n -ms-flex-line-pack: end !important;\n align-content: flex-end !important;\n }\n .align-content-md-center {\n -ms-flex-line-pack: center !important;\n align-content: center !important;\n }\n .align-content-md-between {\n -ms-flex-line-pack: justify !important;\n align-content: space-between !important;\n }\n .align-content-md-around {\n -ms-flex-line-pack: distribute !important;\n align-content: space-around !important;\n }\n .align-content-md-stretch {\n -ms-flex-line-pack: stretch !important;\n align-content: stretch !important;\n }\n .align-self-md-auto {\n -ms-flex-item-align: auto !important;\n align-self: auto !important;\n }\n .align-self-md-start {\n -ms-flex-item-align: start !important;\n align-self: flex-start !important;\n }\n .align-self-md-end {\n -ms-flex-item-align: end !important;\n align-self: flex-end !important;\n }\n .align-self-md-center {\n -ms-flex-item-align: center !important;\n align-self: center !important;\n }\n .align-self-md-baseline {\n -ms-flex-item-align: baseline !important;\n align-self: baseline !important;\n }\n .align-self-md-stretch {\n -ms-flex-item-align: stretch !important;\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 992px) {\n .flex-lg-row {\n -ms-flex-direction: row !important;\n flex-direction: row !important;\n }\n .flex-lg-column {\n -ms-flex-direction: column !important;\n flex-direction: column !important;\n }\n .flex-lg-row-reverse {\n -ms-flex-direction: row-reverse !important;\n flex-direction: row-reverse !important;\n }\n .flex-lg-column-reverse {\n -ms-flex-direction: column-reverse !important;\n flex-direction: column-reverse !important;\n }\n .flex-lg-wrap {\n -ms-flex-wrap: wrap !important;\n flex-wrap: wrap !important;\n }\n .flex-lg-nowrap {\n -ms-flex-wrap: nowrap !important;\n flex-wrap: nowrap !important;\n }\n .flex-lg-wrap-reverse {\n -ms-flex-wrap: wrap-reverse !important;\n flex-wrap: wrap-reverse !important;\n }\n .flex-lg-fill {\n -ms-flex: 1 1 auto !important;\n flex: 1 1 auto !important;\n }\n .flex-lg-grow-0 {\n -ms-flex-positive: 0 !important;\n flex-grow: 0 !important;\n }\n .flex-lg-grow-1 {\n -ms-flex-positive: 1 !important;\n flex-grow: 1 !important;\n }\n .flex-lg-shrink-0 {\n -ms-flex-negative: 0 !important;\n flex-shrink: 0 !important;\n }\n .flex-lg-shrink-1 {\n -ms-flex-negative: 1 !important;\n flex-shrink: 1 !important;\n }\n .justify-content-lg-start {\n -ms-flex-pack: start !important;\n justify-content: flex-start !important;\n }\n .justify-content-lg-end {\n -ms-flex-pack: end !important;\n justify-content: flex-end !important;\n }\n .justify-content-lg-center {\n -ms-flex-pack: center !important;\n justify-content: center !important;\n }\n .justify-content-lg-between {\n -ms-flex-pack: justify !important;\n justify-content: space-between !important;\n }\n .justify-content-lg-around {\n -ms-flex-pack: distribute !important;\n justify-content: space-around !important;\n }\n .align-items-lg-start {\n -ms-flex-align: start !important;\n align-items: flex-start !important;\n }\n .align-items-lg-end {\n -ms-flex-align: end !important;\n align-items: flex-end !important;\n }\n .align-items-lg-center {\n -ms-flex-align: center !important;\n align-items: center !important;\n }\n .align-items-lg-baseline {\n -ms-flex-align: baseline !important;\n align-items: baseline !important;\n }\n .align-items-lg-stretch {\n -ms-flex-align: stretch !important;\n align-items: stretch !important;\n }\n .align-content-lg-start {\n -ms-flex-line-pack: start !important;\n align-content: flex-start !important;\n }\n .align-content-lg-end {\n -ms-flex-line-pack: end !important;\n align-content: flex-end !important;\n }\n .align-content-lg-center {\n -ms-flex-line-pack: center !important;\n align-content: center !important;\n }\n .align-content-lg-between {\n -ms-flex-line-pack: justify !important;\n align-content: space-between !important;\n }\n .align-content-lg-around {\n -ms-flex-line-pack: distribute !important;\n align-content: space-around !important;\n }\n .align-content-lg-stretch {\n -ms-flex-line-pack: stretch !important;\n align-content: stretch !important;\n }\n .align-self-lg-auto {\n -ms-flex-item-align: auto !important;\n align-self: auto !important;\n }\n .align-self-lg-start {\n -ms-flex-item-align: start !important;\n align-self: flex-start !important;\n }\n .align-self-lg-end {\n -ms-flex-item-align: end !important;\n align-self: flex-end !important;\n }\n .align-self-lg-center {\n -ms-flex-item-align: center !important;\n align-self: center !important;\n }\n .align-self-lg-baseline {\n -ms-flex-item-align: baseline !important;\n align-self: baseline !important;\n }\n .align-self-lg-stretch {\n -ms-flex-item-align: stretch !important;\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 1200px) {\n .flex-xl-row {\n -ms-flex-direction: row !important;\n flex-direction: row !important;\n }\n .flex-xl-column {\n -ms-flex-direction: column !important;\n flex-direction: column !important;\n }\n .flex-xl-row-reverse {\n -ms-flex-direction: row-reverse !important;\n flex-direction: row-reverse !important;\n }\n .flex-xl-column-reverse {\n -ms-flex-direction: column-reverse !important;\n flex-direction: column-reverse !important;\n }\n .flex-xl-wrap {\n -ms-flex-wrap: wrap !important;\n flex-wrap: wrap !important;\n }\n .flex-xl-nowrap {\n -ms-flex-wrap: nowrap !important;\n flex-wrap: nowrap !important;\n }\n .flex-xl-wrap-reverse {\n -ms-flex-wrap: wrap-reverse !important;\n flex-wrap: wrap-reverse !important;\n }\n .flex-xl-fill {\n -ms-flex: 1 1 auto !important;\n flex: 1 1 auto !important;\n }\n .flex-xl-grow-0 {\n -ms-flex-positive: 0 !important;\n flex-grow: 0 !important;\n }\n .flex-xl-grow-1 {\n -ms-flex-positive: 1 !important;\n flex-grow: 1 !important;\n }\n .flex-xl-shrink-0 {\n -ms-flex-negative: 0 !important;\n flex-shrink: 0 !important;\n }\n .flex-xl-shrink-1 {\n -ms-flex-negative: 1 !important;\n flex-shrink: 1 !important;\n }\n .justify-content-xl-start {\n -ms-flex-pack: start !important;\n justify-content: flex-start !important;\n }\n .justify-content-xl-end {\n -ms-flex-pack: end !important;\n justify-content: flex-end !important;\n }\n .justify-content-xl-center {\n -ms-flex-pack: center !important;\n justify-content: center !important;\n }\n .justify-content-xl-between {\n -ms-flex-pack: justify !important;\n justify-content: space-between !important;\n }\n .justify-content-xl-around {\n -ms-flex-pack: distribute !important;\n justify-content: space-around !important;\n }\n .align-items-xl-start {\n -ms-flex-align: start !important;\n align-items: flex-start !important;\n }\n .align-items-xl-end {\n -ms-flex-align: end !important;\n align-items: flex-end !important;\n }\n .align-items-xl-center {\n -ms-flex-align: center !important;\n align-items: center !important;\n }\n .align-items-xl-baseline {\n -ms-flex-align: baseline !important;\n align-items: baseline !important;\n }\n .align-items-xl-stretch {\n -ms-flex-align: stretch !important;\n align-items: stretch !important;\n }\n .align-content-xl-start {\n -ms-flex-line-pack: start !important;\n align-content: flex-start !important;\n }\n .align-content-xl-end {\n -ms-flex-line-pack: end !important;\n align-content: flex-end !important;\n }\n .align-content-xl-center {\n -ms-flex-line-pack: center !important;\n align-content: center !important;\n }\n .align-content-xl-between {\n -ms-flex-line-pack: justify !important;\n align-content: space-between !important;\n }\n .align-content-xl-around {\n -ms-flex-line-pack: distribute !important;\n align-content: space-around !important;\n }\n .align-content-xl-stretch {\n -ms-flex-line-pack: stretch !important;\n align-content: stretch !important;\n }\n .align-self-xl-auto {\n -ms-flex-item-align: auto !important;\n align-self: auto !important;\n }\n .align-self-xl-start {\n -ms-flex-item-align: start !important;\n align-self: flex-start !important;\n }\n .align-self-xl-end {\n -ms-flex-item-align: end !important;\n align-self: flex-end !important;\n }\n .align-self-xl-center {\n -ms-flex-item-align: center !important;\n align-self: center !important;\n }\n .align-self-xl-baseline {\n -ms-flex-item-align: baseline !important;\n align-self: baseline !important;\n }\n .align-self-xl-stretch {\n -ms-flex-item-align: stretch !important;\n align-self: stretch !important;\n }\n}\n\n.m-0 {\n margin: 0 !important;\n}\n\n.mt-0,\n.my-0 {\n margin-top: 0 !important;\n}\n\n.mr-0,\n.mx-0 {\n margin-right: 0 !important;\n}\n\n.mb-0,\n.my-0 {\n margin-bottom: 0 !important;\n}\n\n.ml-0,\n.mx-0 {\n margin-left: 0 !important;\n}\n\n.m-1 {\n margin: 0.25rem !important;\n}\n\n.mt-1,\n.my-1 {\n margin-top: 0.25rem !important;\n}\n\n.mr-1,\n.mx-1 {\n margin-right: 0.25rem !important;\n}\n\n.mb-1,\n.my-1 {\n margin-bottom: 0.25rem !important;\n}\n\n.ml-1,\n.mx-1 {\n margin-left: 0.25rem !important;\n}\n\n.m-2 {\n margin: 0.5rem !important;\n}\n\n.mt-2,\n.my-2 {\n margin-top: 0.5rem !important;\n}\n\n.mr-2,\n.mx-2 {\n margin-right: 0.5rem !important;\n}\n\n.mb-2,\n.my-2 {\n margin-bottom: 0.5rem !important;\n}\n\n.ml-2,\n.mx-2 {\n margin-left: 0.5rem !important;\n}\n\n.m-3 {\n margin: 1rem !important;\n}\n\n.mt-3,\n.my-3 {\n margin-top: 1rem !important;\n}\n\n.mr-3,\n.mx-3 {\n margin-right: 1rem !important;\n}\n\n.mb-3,\n.my-3 {\n margin-bottom: 1rem !important;\n}\n\n.ml-3,\n.mx-3 {\n margin-left: 1rem !important;\n}\n\n.m-4 {\n margin: 1.5rem !important;\n}\n\n.mt-4,\n.my-4 {\n margin-top: 1.5rem !important;\n}\n\n.mr-4,\n.mx-4 {\n margin-right: 1.5rem !important;\n}\n\n.mb-4,\n.my-4 {\n margin-bottom: 1.5rem !important;\n}\n\n.ml-4,\n.mx-4 {\n margin-left: 1.5rem !important;\n}\n\n.m-5 {\n margin: 3rem !important;\n}\n\n.mt-5,\n.my-5 {\n margin-top: 3rem !important;\n}\n\n.mr-5,\n.mx-5 {\n margin-right: 3rem !important;\n}\n\n.mb-5,\n.my-5 {\n margin-bottom: 3rem !important;\n}\n\n.ml-5,\n.mx-5 {\n margin-left: 3rem !important;\n}\n\n.p-0 {\n padding: 0 !important;\n}\n\n.pt-0,\n.py-0 {\n padding-top: 0 !important;\n}\n\n.pr-0,\n.px-0 {\n padding-right: 0 !important;\n}\n\n.pb-0,\n.py-0 {\n padding-bottom: 0 !important;\n}\n\n.pl-0,\n.px-0 {\n padding-left: 0 !important;\n}\n\n.p-1 {\n padding: 0.25rem !important;\n}\n\n.pt-1,\n.py-1 {\n padding-top: 0.25rem !important;\n}\n\n.pr-1,\n.px-1 {\n padding-right: 0.25rem !important;\n}\n\n.pb-1,\n.py-1 {\n padding-bottom: 0.25rem !important;\n}\n\n.pl-1,\n.px-1 {\n padding-left: 0.25rem !important;\n}\n\n.p-2 {\n padding: 0.5rem !important;\n}\n\n.pt-2,\n.py-2 {\n padding-top: 0.5rem !important;\n}\n\n.pr-2,\n.px-2 {\n padding-right: 0.5rem !important;\n}\n\n.pb-2,\n.py-2 {\n padding-bottom: 0.5rem !important;\n}\n\n.pl-2,\n.px-2 {\n padding-left: 0.5rem !important;\n}\n\n.p-3 {\n padding: 1rem !important;\n}\n\n.pt-3,\n.py-3 {\n padding-top: 1rem !important;\n}\n\n.pr-3,\n.px-3 {\n padding-right: 1rem !important;\n}\n\n.pb-3,\n.py-3 {\n padding-bottom: 1rem !important;\n}\n\n.pl-3,\n.px-3 {\n padding-left: 1rem !important;\n}\n\n.p-4 {\n padding: 1.5rem !important;\n}\n\n.pt-4,\n.py-4 {\n padding-top: 1.5rem !important;\n}\n\n.pr-4,\n.px-4 {\n padding-right: 1.5rem !important;\n}\n\n.pb-4,\n.py-4 {\n padding-bottom: 1.5rem !important;\n}\n\n.pl-4,\n.px-4 {\n padding-left: 1.5rem !important;\n}\n\n.p-5 {\n padding: 3rem !important;\n}\n\n.pt-5,\n.py-5 {\n padding-top: 3rem !important;\n}\n\n.pr-5,\n.px-5 {\n padding-right: 3rem !important;\n}\n\n.pb-5,\n.py-5 {\n padding-bottom: 3rem !important;\n}\n\n.pl-5,\n.px-5 {\n padding-left: 3rem !important;\n}\n\n.m-n1 {\n margin: -0.25rem !important;\n}\n\n.mt-n1,\n.my-n1 {\n margin-top: -0.25rem !important;\n}\n\n.mr-n1,\n.mx-n1 {\n margin-right: -0.25rem !important;\n}\n\n.mb-n1,\n.my-n1 {\n margin-bottom: -0.25rem !important;\n}\n\n.ml-n1,\n.mx-n1 {\n margin-left: -0.25rem !important;\n}\n\n.m-n2 {\n margin: -0.5rem !important;\n}\n\n.mt-n2,\n.my-n2 {\n margin-top: -0.5rem !important;\n}\n\n.mr-n2,\n.mx-n2 {\n margin-right: -0.5rem !important;\n}\n\n.mb-n2,\n.my-n2 {\n margin-bottom: -0.5rem !important;\n}\n\n.ml-n2,\n.mx-n2 {\n margin-left: -0.5rem !important;\n}\n\n.m-n3 {\n margin: -1rem !important;\n}\n\n.mt-n3,\n.my-n3 {\n margin-top: -1rem !important;\n}\n\n.mr-n3,\n.mx-n3 {\n margin-right: -1rem !important;\n}\n\n.mb-n3,\n.my-n3 {\n margin-bottom: -1rem !important;\n}\n\n.ml-n3,\n.mx-n3 {\n margin-left: -1rem !important;\n}\n\n.m-n4 {\n margin: -1.5rem !important;\n}\n\n.mt-n4,\n.my-n4 {\n margin-top: -1.5rem !important;\n}\n\n.mr-n4,\n.mx-n4 {\n margin-right: -1.5rem !important;\n}\n\n.mb-n4,\n.my-n4 {\n margin-bottom: -1.5rem !important;\n}\n\n.ml-n4,\n.mx-n4 {\n margin-left: -1.5rem !important;\n}\n\n.m-n5 {\n margin: -3rem !important;\n}\n\n.mt-n5,\n.my-n5 {\n margin-top: -3rem !important;\n}\n\n.mr-n5,\n.mx-n5 {\n margin-right: -3rem !important;\n}\n\n.mb-n5,\n.my-n5 {\n margin-bottom: -3rem !important;\n}\n\n.ml-n5,\n.mx-n5 {\n margin-left: -3rem !important;\n}\n\n.m-auto {\n margin: auto !important;\n}\n\n.mt-auto,\n.my-auto {\n margin-top: auto !important;\n}\n\n.mr-auto,\n.mx-auto {\n margin-right: auto !important;\n}\n\n.mb-auto,\n.my-auto {\n margin-bottom: auto !important;\n}\n\n.ml-auto,\n.mx-auto {\n margin-left: auto !important;\n}\n\n@media (min-width: 576px) {\n .m-sm-0 {\n margin: 0 !important;\n }\n .mt-sm-0,\n .my-sm-0 {\n margin-top: 0 !important;\n }\n .mr-sm-0,\n .mx-sm-0 {\n margin-right: 0 !important;\n }\n .mb-sm-0,\n .my-sm-0 {\n margin-bottom: 0 !important;\n }\n .ml-sm-0,\n .mx-sm-0 {\n margin-left: 0 !important;\n }\n .m-sm-1 {\n margin: 0.25rem !important;\n }\n .mt-sm-1,\n .my-sm-1 {\n margin-top: 0.25rem !important;\n }\n .mr-sm-1,\n .mx-sm-1 {\n margin-right: 0.25rem !important;\n }\n .mb-sm-1,\n .my-sm-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-sm-1,\n .mx-sm-1 {\n margin-left: 0.25rem !important;\n }\n .m-sm-2 {\n margin: 0.5rem !important;\n }\n .mt-sm-2,\n .my-sm-2 {\n margin-top: 0.5rem !important;\n }\n .mr-sm-2,\n .mx-sm-2 {\n margin-right: 0.5rem !important;\n }\n .mb-sm-2,\n .my-sm-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-sm-2,\n .mx-sm-2 {\n margin-left: 0.5rem !important;\n }\n .m-sm-3 {\n margin: 1rem !important;\n }\n .mt-sm-3,\n .my-sm-3 {\n margin-top: 1rem !important;\n }\n .mr-sm-3,\n .mx-sm-3 {\n margin-right: 1rem !important;\n }\n .mb-sm-3,\n .my-sm-3 {\n margin-bottom: 1rem !important;\n }\n .ml-sm-3,\n .mx-sm-3 {\n margin-left: 1rem !important;\n }\n .m-sm-4 {\n margin: 1.5rem !important;\n }\n .mt-sm-4,\n .my-sm-4 {\n margin-top: 1.5rem !important;\n }\n .mr-sm-4,\n .mx-sm-4 {\n margin-right: 1.5rem !important;\n }\n .mb-sm-4,\n .my-sm-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-sm-4,\n .mx-sm-4 {\n margin-left: 1.5rem !important;\n }\n .m-sm-5 {\n margin: 3rem !important;\n }\n .mt-sm-5,\n .my-sm-5 {\n margin-top: 3rem !important;\n }\n .mr-sm-5,\n .mx-sm-5 {\n margin-right: 3rem !important;\n }\n .mb-sm-5,\n .my-sm-5 {\n margin-bottom: 3rem !important;\n }\n .ml-sm-5,\n .mx-sm-5 {\n margin-left: 3rem !important;\n }\n .p-sm-0 {\n padding: 0 !important;\n }\n .pt-sm-0,\n .py-sm-0 {\n padding-top: 0 !important;\n }\n .pr-sm-0,\n .px-sm-0 {\n padding-right: 0 !important;\n }\n .pb-sm-0,\n .py-sm-0 {\n padding-bottom: 0 !important;\n }\n .pl-sm-0,\n .px-sm-0 {\n padding-left: 0 !important;\n }\n .p-sm-1 {\n padding: 0.25rem !important;\n }\n .pt-sm-1,\n .py-sm-1 {\n padding-top: 0.25rem !important;\n }\n .pr-sm-1,\n .px-sm-1 {\n padding-right: 0.25rem !important;\n }\n .pb-sm-1,\n .py-sm-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-sm-1,\n .px-sm-1 {\n padding-left: 0.25rem !important;\n }\n .p-sm-2 {\n padding: 0.5rem !important;\n }\n .pt-sm-2,\n .py-sm-2 {\n padding-top: 0.5rem !important;\n }\n .pr-sm-2,\n .px-sm-2 {\n padding-right: 0.5rem !important;\n }\n .pb-sm-2,\n .py-sm-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-sm-2,\n .px-sm-2 {\n padding-left: 0.5rem !important;\n }\n .p-sm-3 {\n padding: 1rem !important;\n }\n .pt-sm-3,\n .py-sm-3 {\n padding-top: 1rem !important;\n }\n .pr-sm-3,\n .px-sm-3 {\n padding-right: 1rem !important;\n }\n .pb-sm-3,\n .py-sm-3 {\n padding-bottom: 1rem !important;\n }\n .pl-sm-3,\n .px-sm-3 {\n padding-left: 1rem !important;\n }\n .p-sm-4 {\n padding: 1.5rem !important;\n }\n .pt-sm-4,\n .py-sm-4 {\n padding-top: 1.5rem !important;\n }\n .pr-sm-4,\n .px-sm-4 {\n padding-right: 1.5rem !important;\n }\n .pb-sm-4,\n .py-sm-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-sm-4,\n .px-sm-4 {\n padding-left: 1.5rem !important;\n }\n .p-sm-5 {\n padding: 3rem !important;\n }\n .pt-sm-5,\n .py-sm-5 {\n padding-top: 3rem !important;\n }\n .pr-sm-5,\n .px-sm-5 {\n padding-right: 3rem !important;\n }\n .pb-sm-5,\n .py-sm-5 {\n padding-bottom: 3rem !important;\n }\n .pl-sm-5,\n .px-sm-5 {\n padding-left: 3rem !important;\n }\n .m-sm-n1 {\n margin: -0.25rem !important;\n }\n .mt-sm-n1,\n .my-sm-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-sm-n1,\n .mx-sm-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-sm-n1,\n .my-sm-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-sm-n1,\n .mx-sm-n1 {\n margin-left: -0.25rem !important;\n }\n .m-sm-n2 {\n margin: -0.5rem !important;\n }\n .mt-sm-n2,\n .my-sm-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-sm-n2,\n .mx-sm-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-sm-n2,\n .my-sm-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-sm-n2,\n .mx-sm-n2 {\n margin-left: -0.5rem !important;\n }\n .m-sm-n3 {\n margin: -1rem !important;\n }\n .mt-sm-n3,\n .my-sm-n3 {\n margin-top: -1rem !important;\n }\n .mr-sm-n3,\n .mx-sm-n3 {\n margin-right: -1rem !important;\n }\n .mb-sm-n3,\n .my-sm-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-sm-n3,\n .mx-sm-n3 {\n margin-left: -1rem !important;\n }\n .m-sm-n4 {\n margin: -1.5rem !important;\n }\n .mt-sm-n4,\n .my-sm-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-sm-n4,\n .mx-sm-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-sm-n4,\n .my-sm-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-sm-n4,\n .mx-sm-n4 {\n margin-left: -1.5rem !important;\n }\n .m-sm-n5 {\n margin: -3rem !important;\n }\n .mt-sm-n5,\n .my-sm-n5 {\n margin-top: -3rem !important;\n }\n .mr-sm-n5,\n .mx-sm-n5 {\n margin-right: -3rem !important;\n }\n .mb-sm-n5,\n .my-sm-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-sm-n5,\n .mx-sm-n5 {\n margin-left: -3rem !important;\n }\n .m-sm-auto {\n margin: auto !important;\n }\n .mt-sm-auto,\n .my-sm-auto {\n margin-top: auto !important;\n }\n .mr-sm-auto,\n .mx-sm-auto {\n margin-right: auto !important;\n }\n .mb-sm-auto,\n .my-sm-auto {\n margin-bottom: auto !important;\n }\n .ml-sm-auto,\n .mx-sm-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 768px) {\n .m-md-0 {\n margin: 0 !important;\n }\n .mt-md-0,\n .my-md-0 {\n margin-top: 0 !important;\n }\n .mr-md-0,\n .mx-md-0 {\n margin-right: 0 !important;\n }\n .mb-md-0,\n .my-md-0 {\n margin-bottom: 0 !important;\n }\n .ml-md-0,\n .mx-md-0 {\n margin-left: 0 !important;\n }\n .m-md-1 {\n margin: 0.25rem !important;\n }\n .mt-md-1,\n .my-md-1 {\n margin-top: 0.25rem !important;\n }\n .mr-md-1,\n .mx-md-1 {\n margin-right: 0.25rem !important;\n }\n .mb-md-1,\n .my-md-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-md-1,\n .mx-md-1 {\n margin-left: 0.25rem !important;\n }\n .m-md-2 {\n margin: 0.5rem !important;\n }\n .mt-md-2,\n .my-md-2 {\n margin-top: 0.5rem !important;\n }\n .mr-md-2,\n .mx-md-2 {\n margin-right: 0.5rem !important;\n }\n .mb-md-2,\n .my-md-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-md-2,\n .mx-md-2 {\n margin-left: 0.5rem !important;\n }\n .m-md-3 {\n margin: 1rem !important;\n }\n .mt-md-3,\n .my-md-3 {\n margin-top: 1rem !important;\n }\n .mr-md-3,\n .mx-md-3 {\n margin-right: 1rem !important;\n }\n .mb-md-3,\n .my-md-3 {\n margin-bottom: 1rem !important;\n }\n .ml-md-3,\n .mx-md-3 {\n margin-left: 1rem !important;\n }\n .m-md-4 {\n margin: 1.5rem !important;\n }\n .mt-md-4,\n .my-md-4 {\n margin-top: 1.5rem !important;\n }\n .mr-md-4,\n .mx-md-4 {\n margin-right: 1.5rem !important;\n }\n .mb-md-4,\n .my-md-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-md-4,\n .mx-md-4 {\n margin-left: 1.5rem !important;\n }\n .m-md-5 {\n margin: 3rem !important;\n }\n .mt-md-5,\n .my-md-5 {\n margin-top: 3rem !important;\n }\n .mr-md-5,\n .mx-md-5 {\n margin-right: 3rem !important;\n }\n .mb-md-5,\n .my-md-5 {\n margin-bottom: 3rem !important;\n }\n .ml-md-5,\n .mx-md-5 {\n margin-left: 3rem !important;\n }\n .p-md-0 {\n padding: 0 !important;\n }\n .pt-md-0,\n .py-md-0 {\n padding-top: 0 !important;\n }\n .pr-md-0,\n .px-md-0 {\n padding-right: 0 !important;\n }\n .pb-md-0,\n .py-md-0 {\n padding-bottom: 0 !important;\n }\n .pl-md-0,\n .px-md-0 {\n padding-left: 0 !important;\n }\n .p-md-1 {\n padding: 0.25rem !important;\n }\n .pt-md-1,\n .py-md-1 {\n padding-top: 0.25rem !important;\n }\n .pr-md-1,\n .px-md-1 {\n padding-right: 0.25rem !important;\n }\n .pb-md-1,\n .py-md-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-md-1,\n .px-md-1 {\n padding-left: 0.25rem !important;\n }\n .p-md-2 {\n padding: 0.5rem !important;\n }\n .pt-md-2,\n .py-md-2 {\n padding-top: 0.5rem !important;\n }\n .pr-md-2,\n .px-md-2 {\n padding-right: 0.5rem !important;\n }\n .pb-md-2,\n .py-md-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-md-2,\n .px-md-2 {\n padding-left: 0.5rem !important;\n }\n .p-md-3 {\n padding: 1rem !important;\n }\n .pt-md-3,\n .py-md-3 {\n padding-top: 1rem !important;\n }\n .pr-md-3,\n .px-md-3 {\n padding-right: 1rem !important;\n }\n .pb-md-3,\n .py-md-3 {\n padding-bottom: 1rem !important;\n }\n .pl-md-3,\n .px-md-3 {\n padding-left: 1rem !important;\n }\n .p-md-4 {\n padding: 1.5rem !important;\n }\n .pt-md-4,\n .py-md-4 {\n padding-top: 1.5rem !important;\n }\n .pr-md-4,\n .px-md-4 {\n padding-right: 1.5rem !important;\n }\n .pb-md-4,\n .py-md-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-md-4,\n .px-md-4 {\n padding-left: 1.5rem !important;\n }\n .p-md-5 {\n padding: 3rem !important;\n }\n .pt-md-5,\n .py-md-5 {\n padding-top: 3rem !important;\n }\n .pr-md-5,\n .px-md-5 {\n padding-right: 3rem !important;\n }\n .pb-md-5,\n .py-md-5 {\n padding-bottom: 3rem !important;\n }\n .pl-md-5,\n .px-md-5 {\n padding-left: 3rem !important;\n }\n .m-md-n1 {\n margin: -0.25rem !important;\n }\n .mt-md-n1,\n .my-md-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-md-n1,\n .mx-md-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-md-n1,\n .my-md-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-md-n1,\n .mx-md-n1 {\n margin-left: -0.25rem !important;\n }\n .m-md-n2 {\n margin: -0.5rem !important;\n }\n .mt-md-n2,\n .my-md-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-md-n2,\n .mx-md-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-md-n2,\n .my-md-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-md-n2,\n .mx-md-n2 {\n margin-left: -0.5rem !important;\n }\n .m-md-n3 {\n margin: -1rem !important;\n }\n .mt-md-n3,\n .my-md-n3 {\n margin-top: -1rem !important;\n }\n .mr-md-n3,\n .mx-md-n3 {\n margin-right: -1rem !important;\n }\n .mb-md-n3,\n .my-md-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-md-n3,\n .mx-md-n3 {\n margin-left: -1rem !important;\n }\n .m-md-n4 {\n margin: -1.5rem !important;\n }\n .mt-md-n4,\n .my-md-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-md-n4,\n .mx-md-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-md-n4,\n .my-md-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-md-n4,\n .mx-md-n4 {\n margin-left: -1.5rem !important;\n }\n .m-md-n5 {\n margin: -3rem !important;\n }\n .mt-md-n5,\n .my-md-n5 {\n margin-top: -3rem !important;\n }\n .mr-md-n5,\n .mx-md-n5 {\n margin-right: -3rem !important;\n }\n .mb-md-n5,\n .my-md-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-md-n5,\n .mx-md-n5 {\n margin-left: -3rem !important;\n }\n .m-md-auto {\n margin: auto !important;\n }\n .mt-md-auto,\n .my-md-auto {\n margin-top: auto !important;\n }\n .mr-md-auto,\n .mx-md-auto {\n margin-right: auto !important;\n }\n .mb-md-auto,\n .my-md-auto {\n margin-bottom: auto !important;\n }\n .ml-md-auto,\n .mx-md-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 992px) {\n .m-lg-0 {\n margin: 0 !important;\n }\n .mt-lg-0,\n .my-lg-0 {\n margin-top: 0 !important;\n }\n .mr-lg-0,\n .mx-lg-0 {\n margin-right: 0 !important;\n }\n .mb-lg-0,\n .my-lg-0 {\n margin-bottom: 0 !important;\n }\n .ml-lg-0,\n .mx-lg-0 {\n margin-left: 0 !important;\n }\n .m-lg-1 {\n margin: 0.25rem !important;\n }\n .mt-lg-1,\n .my-lg-1 {\n margin-top: 0.25rem !important;\n }\n .mr-lg-1,\n .mx-lg-1 {\n margin-right: 0.25rem !important;\n }\n .mb-lg-1,\n .my-lg-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-lg-1,\n .mx-lg-1 {\n margin-left: 0.25rem !important;\n }\n .m-lg-2 {\n margin: 0.5rem !important;\n }\n .mt-lg-2,\n .my-lg-2 {\n margin-top: 0.5rem !important;\n }\n .mr-lg-2,\n .mx-lg-2 {\n margin-right: 0.5rem !important;\n }\n .mb-lg-2,\n .my-lg-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-lg-2,\n .mx-lg-2 {\n margin-left: 0.5rem !important;\n }\n .m-lg-3 {\n margin: 1rem !important;\n }\n .mt-lg-3,\n .my-lg-3 {\n margin-top: 1rem !important;\n }\n .mr-lg-3,\n .mx-lg-3 {\n margin-right: 1rem !important;\n }\n .mb-lg-3,\n .my-lg-3 {\n margin-bottom: 1rem !important;\n }\n .ml-lg-3,\n .mx-lg-3 {\n margin-left: 1rem !important;\n }\n .m-lg-4 {\n margin: 1.5rem !important;\n }\n .mt-lg-4,\n .my-lg-4 {\n margin-top: 1.5rem !important;\n }\n .mr-lg-4,\n .mx-lg-4 {\n margin-right: 1.5rem !important;\n }\n .mb-lg-4,\n .my-lg-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-lg-4,\n .mx-lg-4 {\n margin-left: 1.5rem !important;\n }\n .m-lg-5 {\n margin: 3rem !important;\n }\n .mt-lg-5,\n .my-lg-5 {\n margin-top: 3rem !important;\n }\n .mr-lg-5,\n .mx-lg-5 {\n margin-right: 3rem !important;\n }\n .mb-lg-5,\n .my-lg-5 {\n margin-bottom: 3rem !important;\n }\n .ml-lg-5,\n .mx-lg-5 {\n margin-left: 3rem !important;\n }\n .p-lg-0 {\n padding: 0 !important;\n }\n .pt-lg-0,\n .py-lg-0 {\n padding-top: 0 !important;\n }\n .pr-lg-0,\n .px-lg-0 {\n padding-right: 0 !important;\n }\n .pb-lg-0,\n .py-lg-0 {\n padding-bottom: 0 !important;\n }\n .pl-lg-0,\n .px-lg-0 {\n padding-left: 0 !important;\n }\n .p-lg-1 {\n padding: 0.25rem !important;\n }\n .pt-lg-1,\n .py-lg-1 {\n padding-top: 0.25rem !important;\n }\n .pr-lg-1,\n .px-lg-1 {\n padding-right: 0.25rem !important;\n }\n .pb-lg-1,\n .py-lg-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-lg-1,\n .px-lg-1 {\n padding-left: 0.25rem !important;\n }\n .p-lg-2 {\n padding: 0.5rem !important;\n }\n .pt-lg-2,\n .py-lg-2 {\n padding-top: 0.5rem !important;\n }\n .pr-lg-2,\n .px-lg-2 {\n padding-right: 0.5rem !important;\n }\n .pb-lg-2,\n .py-lg-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-lg-2,\n .px-lg-2 {\n padding-left: 0.5rem !important;\n }\n .p-lg-3 {\n padding: 1rem !important;\n }\n .pt-lg-3,\n .py-lg-3 {\n padding-top: 1rem !important;\n }\n .pr-lg-3,\n .px-lg-3 {\n padding-right: 1rem !important;\n }\n .pb-lg-3,\n .py-lg-3 {\n padding-bottom: 1rem !important;\n }\n .pl-lg-3,\n .px-lg-3 {\n padding-left: 1rem !important;\n }\n .p-lg-4 {\n padding: 1.5rem !important;\n }\n .pt-lg-4,\n .py-lg-4 {\n padding-top: 1.5rem !important;\n }\n .pr-lg-4,\n .px-lg-4 {\n padding-right: 1.5rem !important;\n }\n .pb-lg-4,\n .py-lg-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-lg-4,\n .px-lg-4 {\n padding-left: 1.5rem !important;\n }\n .p-lg-5 {\n padding: 3rem !important;\n }\n .pt-lg-5,\n .py-lg-5 {\n padding-top: 3rem !important;\n }\n .pr-lg-5,\n .px-lg-5 {\n padding-right: 3rem !important;\n }\n .pb-lg-5,\n .py-lg-5 {\n padding-bottom: 3rem !important;\n }\n .pl-lg-5,\n .px-lg-5 {\n padding-left: 3rem !important;\n }\n .m-lg-n1 {\n margin: -0.25rem !important;\n }\n .mt-lg-n1,\n .my-lg-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-lg-n1,\n .mx-lg-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-lg-n1,\n .my-lg-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-lg-n1,\n .mx-lg-n1 {\n margin-left: -0.25rem !important;\n }\n .m-lg-n2 {\n margin: -0.5rem !important;\n }\n .mt-lg-n2,\n .my-lg-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-lg-n2,\n .mx-lg-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-lg-n2,\n .my-lg-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-lg-n2,\n .mx-lg-n2 {\n margin-left: -0.5rem !important;\n }\n .m-lg-n3 {\n margin: -1rem !important;\n }\n .mt-lg-n3,\n .my-lg-n3 {\n margin-top: -1rem !important;\n }\n .mr-lg-n3,\n .mx-lg-n3 {\n margin-right: -1rem !important;\n }\n .mb-lg-n3,\n .my-lg-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-lg-n3,\n .mx-lg-n3 {\n margin-left: -1rem !important;\n }\n .m-lg-n4 {\n margin: -1.5rem !important;\n }\n .mt-lg-n4,\n .my-lg-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-lg-n4,\n .mx-lg-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-lg-n4,\n .my-lg-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-lg-n4,\n .mx-lg-n4 {\n margin-left: -1.5rem !important;\n }\n .m-lg-n5 {\n margin: -3rem !important;\n }\n .mt-lg-n5,\n .my-lg-n5 {\n margin-top: -3rem !important;\n }\n .mr-lg-n5,\n .mx-lg-n5 {\n margin-right: -3rem !important;\n }\n .mb-lg-n5,\n .my-lg-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-lg-n5,\n .mx-lg-n5 {\n margin-left: -3rem !important;\n }\n .m-lg-auto {\n margin: auto !important;\n }\n .mt-lg-auto,\n .my-lg-auto {\n margin-top: auto !important;\n }\n .mr-lg-auto,\n .mx-lg-auto {\n margin-right: auto !important;\n }\n .mb-lg-auto,\n .my-lg-auto {\n margin-bottom: auto !important;\n }\n .ml-lg-auto,\n .mx-lg-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 1200px) {\n .m-xl-0 {\n margin: 0 !important;\n }\n .mt-xl-0,\n .my-xl-0 {\n margin-top: 0 !important;\n }\n .mr-xl-0,\n .mx-xl-0 {\n margin-right: 0 !important;\n }\n .mb-xl-0,\n .my-xl-0 {\n margin-bottom: 0 !important;\n }\n .ml-xl-0,\n .mx-xl-0 {\n margin-left: 0 !important;\n }\n .m-xl-1 {\n margin: 0.25rem !important;\n }\n .mt-xl-1,\n .my-xl-1 {\n margin-top: 0.25rem !important;\n }\n .mr-xl-1,\n .mx-xl-1 {\n margin-right: 0.25rem !important;\n }\n .mb-xl-1,\n .my-xl-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-xl-1,\n .mx-xl-1 {\n margin-left: 0.25rem !important;\n }\n .m-xl-2 {\n margin: 0.5rem !important;\n }\n .mt-xl-2,\n .my-xl-2 {\n margin-top: 0.5rem !important;\n }\n .mr-xl-2,\n .mx-xl-2 {\n margin-right: 0.5rem !important;\n }\n .mb-xl-2,\n .my-xl-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-xl-2,\n .mx-xl-2 {\n margin-left: 0.5rem !important;\n }\n .m-xl-3 {\n margin: 1rem !important;\n }\n .mt-xl-3,\n .my-xl-3 {\n margin-top: 1rem !important;\n }\n .mr-xl-3,\n .mx-xl-3 {\n margin-right: 1rem !important;\n }\n .mb-xl-3,\n .my-xl-3 {\n margin-bottom: 1rem !important;\n }\n .ml-xl-3,\n .mx-xl-3 {\n margin-left: 1rem !important;\n }\n .m-xl-4 {\n margin: 1.5rem !important;\n }\n .mt-xl-4,\n .my-xl-4 {\n margin-top: 1.5rem !important;\n }\n .mr-xl-4,\n .mx-xl-4 {\n margin-right: 1.5rem !important;\n }\n .mb-xl-4,\n .my-xl-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-xl-4,\n .mx-xl-4 {\n margin-left: 1.5rem !important;\n }\n .m-xl-5 {\n margin: 3rem !important;\n }\n .mt-xl-5,\n .my-xl-5 {\n margin-top: 3rem !important;\n }\n .mr-xl-5,\n .mx-xl-5 {\n margin-right: 3rem !important;\n }\n .mb-xl-5,\n .my-xl-5 {\n margin-bottom: 3rem !important;\n }\n .ml-xl-5,\n .mx-xl-5 {\n margin-left: 3rem !important;\n }\n .p-xl-0 {\n padding: 0 !important;\n }\n .pt-xl-0,\n .py-xl-0 {\n padding-top: 0 !important;\n }\n .pr-xl-0,\n .px-xl-0 {\n padding-right: 0 !important;\n }\n .pb-xl-0,\n .py-xl-0 {\n padding-bottom: 0 !important;\n }\n .pl-xl-0,\n .px-xl-0 {\n padding-left: 0 !important;\n }\n .p-xl-1 {\n padding: 0.25rem !important;\n }\n .pt-xl-1,\n .py-xl-1 {\n padding-top: 0.25rem !important;\n }\n .pr-xl-1,\n .px-xl-1 {\n padding-right: 0.25rem !important;\n }\n .pb-xl-1,\n .py-xl-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-xl-1,\n .px-xl-1 {\n padding-left: 0.25rem !important;\n }\n .p-xl-2 {\n padding: 0.5rem !important;\n }\n .pt-xl-2,\n .py-xl-2 {\n padding-top: 0.5rem !important;\n }\n .pr-xl-2,\n .px-xl-2 {\n padding-right: 0.5rem !important;\n }\n .pb-xl-2,\n .py-xl-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-xl-2,\n .px-xl-2 {\n padding-left: 0.5rem !important;\n }\n .p-xl-3 {\n padding: 1rem !important;\n }\n .pt-xl-3,\n .py-xl-3 {\n padding-top: 1rem !important;\n }\n .pr-xl-3,\n .px-xl-3 {\n padding-right: 1rem !important;\n }\n .pb-xl-3,\n .py-xl-3 {\n padding-bottom: 1rem !important;\n }\n .pl-xl-3,\n .px-xl-3 {\n padding-left: 1rem !important;\n }\n .p-xl-4 {\n padding: 1.5rem !important;\n }\n .pt-xl-4,\n .py-xl-4 {\n padding-top: 1.5rem !important;\n }\n .pr-xl-4,\n .px-xl-4 {\n padding-right: 1.5rem !important;\n }\n .pb-xl-4,\n .py-xl-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-xl-4,\n .px-xl-4 {\n padding-left: 1.5rem !important;\n }\n .p-xl-5 {\n padding: 3rem !important;\n }\n .pt-xl-5,\n .py-xl-5 {\n padding-top: 3rem !important;\n }\n .pr-xl-5,\n .px-xl-5 {\n padding-right: 3rem !important;\n }\n .pb-xl-5,\n .py-xl-5 {\n padding-bottom: 3rem !important;\n }\n .pl-xl-5,\n .px-xl-5 {\n padding-left: 3rem !important;\n }\n .m-xl-n1 {\n margin: -0.25rem !important;\n }\n .mt-xl-n1,\n .my-xl-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-xl-n1,\n .mx-xl-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-xl-n1,\n .my-xl-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-xl-n1,\n .mx-xl-n1 {\n margin-left: -0.25rem !important;\n }\n .m-xl-n2 {\n margin: -0.5rem !important;\n }\n .mt-xl-n2,\n .my-xl-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-xl-n2,\n .mx-xl-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-xl-n2,\n .my-xl-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-xl-n2,\n .mx-xl-n2 {\n margin-left: -0.5rem !important;\n }\n .m-xl-n3 {\n margin: -1rem !important;\n }\n .mt-xl-n3,\n .my-xl-n3 {\n margin-top: -1rem !important;\n }\n .mr-xl-n3,\n .mx-xl-n3 {\n margin-right: -1rem !important;\n }\n .mb-xl-n3,\n .my-xl-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-xl-n3,\n .mx-xl-n3 {\n margin-left: -1rem !important;\n }\n .m-xl-n4 {\n margin: -1.5rem !important;\n }\n .mt-xl-n4,\n .my-xl-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-xl-n4,\n .mx-xl-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-xl-n4,\n .my-xl-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-xl-n4,\n .mx-xl-n4 {\n margin-left: -1.5rem !important;\n }\n .m-xl-n5 {\n margin: -3rem !important;\n }\n .mt-xl-n5,\n .my-xl-n5 {\n margin-top: -3rem !important;\n }\n .mr-xl-n5,\n .mx-xl-n5 {\n margin-right: -3rem !important;\n }\n .mb-xl-n5,\n .my-xl-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-xl-n5,\n .mx-xl-n5 {\n margin-left: -3rem !important;\n }\n .m-xl-auto {\n margin: auto !important;\n }\n .mt-xl-auto,\n .my-xl-auto {\n margin-top: auto !important;\n }\n .mr-xl-auto,\n .mx-xl-auto {\n margin-right: auto !important;\n }\n .mb-xl-auto,\n .my-xl-auto {\n margin-bottom: auto !important;\n }\n .ml-xl-auto,\n .mx-xl-auto {\n margin-left: auto !important;\n }\n}\n/*# sourceMappingURL=bootstrap-grid.css.map */","// Container widths\n//\n// Set the container width, and override it for fixed navbars in media queries.\n\n@if $enable-grid-classes {\n // Single container class with breakpoint max-widths\n .container {\n @include make-container();\n @include make-container-max-widths();\n }\n\n // 100% wide container at all breakpoints\n .container-fluid {\n @include make-container();\n }\n\n // Responsive containers that are 100% wide until a breakpoint\n @each $breakpoint, $container-max-width in $container-max-widths {\n .container-#{$breakpoint} {\n @extend .container-fluid;\n }\n\n @include media-breakpoint-up($breakpoint, $grid-breakpoints) {\n %responsive-container-#{$breakpoint} {\n max-width: $container-max-width;\n }\n\n @each $name, $width in $grid-breakpoints {\n @if ($container-max-width > $width or $breakpoint == $name) {\n .container#{breakpoint-infix($name, $grid-breakpoints)} {\n @extend %responsive-container-#{$breakpoint};\n }\n }\n }\n }\n }\n}\n\n\n// Row\n//\n// Rows contain your columns.\n\n@if $enable-grid-classes {\n .row {\n @include make-row();\n }\n\n // Remove the negative margin from default .row, then the horizontal padding\n // from all immediate children columns (to prevent runaway style inheritance).\n .no-gutters {\n margin-right: 0;\n margin-left: 0;\n\n > .col,\n > [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n }\n }\n}\n\n// Columns\n//\n// Common styles for small and large grid columns\n\n@if $enable-grid-classes {\n @include make-grid-columns();\n}\n","/// Grid system\n//\n// Generate semantic grid columns with these mixins.\n\n@mixin make-container($gutter: $grid-gutter-width) {\n width: 100%;\n padding-right: $gutter / 2;\n padding-left: $gutter / 2;\n margin-right: auto;\n margin-left: auto;\n}\n\n\n// For each breakpoint, define the maximum width of the container in a media query\n@mixin make-container-max-widths($max-widths: $container-max-widths, $breakpoints: $grid-breakpoints) {\n @each $breakpoint, $container-max-width in $max-widths {\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n max-width: $container-max-width;\n }\n }\n}\n\n@mixin make-row($gutter: $grid-gutter-width) {\n display: flex;\n flex-wrap: wrap;\n margin-right: -$gutter / 2;\n margin-left: -$gutter / 2;\n}\n\n@mixin make-col-ready($gutter: $grid-gutter-width) {\n position: relative;\n // Prevent columns from becoming too narrow when at smaller grid tiers by\n // always setting `width: 100%;`. This works because we use `flex` values\n // later on to override this initial width.\n width: 100%;\n padding-right: $gutter / 2;\n padding-left: $gutter / 2;\n}\n\n@mixin make-col($size, $columns: $grid-columns) {\n flex: 0 0 percentage($size / $columns);\n // Add a `max-width` to ensure content within each column does not blow out\n // the width of the column. Applies to IE10+ and Firefox. Chrome and Safari\n // do not appear to require this.\n max-width: percentage($size / $columns);\n}\n\n@mixin make-col-auto() {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%; // Reset earlier grid tiers\n}\n\n@mixin make-col-offset($size, $columns: $grid-columns) {\n $num: $size / $columns;\n margin-left: if($num == 0, 0, percentage($num));\n}\n\n// Row columns\n//\n// Specify on a parent element(e.g., .row) to force immediate children into NN\n// numberof columns. Supports wrapping to new lines, but does not do a Masonry\n// style grid.\n@mixin row-cols($count) {\n & > * {\n flex: 0 0 100% / $count;\n max-width: 100% / $count;\n }\n}\n","// Breakpoint viewport sizes and media queries.\n//\n// Breakpoints are defined as a map of (name: minimum width), order from small to large:\n//\n// (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px)\n//\n// The map defined in the `$grid-breakpoints` global variable is used as the `$breakpoints` argument by default.\n\n// Name of the next breakpoint, or null for the last breakpoint.\n//\n// >> breakpoint-next(sm)\n// md\n// >> breakpoint-next(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// md\n// >> breakpoint-next(sm, $breakpoint-names: (xs sm md lg xl))\n// md\n@function breakpoint-next($name, $breakpoints: $grid-breakpoints, $breakpoint-names: map-keys($breakpoints)) {\n $n: index($breakpoint-names, $name);\n @return if($n != null and $n < length($breakpoint-names), nth($breakpoint-names, $n + 1), null);\n}\n\n// Minimum breakpoint width. Null for the smallest (first) breakpoint.\n//\n// >> breakpoint-min(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 576px\n@function breakpoint-min($name, $breakpoints: $grid-breakpoints) {\n $min: map-get($breakpoints, $name);\n @return if($min != 0, $min, null);\n}\n\n// Maximum breakpoint width. Null for the largest (last) breakpoint.\n// The maximum value is calculated as the minimum of the next one less 0.02px\n// to work around the limitations of `min-` and `max-` prefixes and viewports with fractional widths.\n// See https://www.w3.org/TR/mediaqueries-4/#mq-min-max\n// Uses 0.02px rather than 0.01px to work around a current rounding bug in Safari.\n// See https://bugs.webkit.org/show_bug.cgi?id=178261\n//\n// >> breakpoint-max(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 767.98px\n@function breakpoint-max($name, $breakpoints: $grid-breakpoints) {\n $next: breakpoint-next($name, $breakpoints);\n @return if($next, breakpoint-min($next, $breakpoints) - .02, null);\n}\n\n// Returns a blank string if smallest breakpoint, otherwise returns the name with a dash in front.\n// Useful for making responsive utilities.\n//\n// >> breakpoint-infix(xs, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"\" (Returns a blank string)\n// >> breakpoint-infix(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"-sm\"\n@function breakpoint-infix($name, $breakpoints: $grid-breakpoints) {\n @return if(breakpoint-min($name, $breakpoints) == null, \"\", \"-#{$name}\");\n}\n\n// Media of at least the minimum breakpoint width. No query for the smallest breakpoint.\n// Makes the @content apply to the given breakpoint and wider.\n@mixin media-breakpoint-up($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n @if $min {\n @media (min-width: $min) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media of at most the maximum breakpoint width. No query for the largest breakpoint.\n// Makes the @content apply to the given breakpoint and narrower.\n@mixin media-breakpoint-down($name, $breakpoints: $grid-breakpoints) {\n $max: breakpoint-max($name, $breakpoints);\n @if $max {\n @media (max-width: $max) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media that spans multiple breakpoint widths.\n// Makes the @content apply between the min and max breakpoints\n@mixin media-breakpoint-between($lower, $upper, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($lower, $breakpoints);\n $max: breakpoint-max($upper, $breakpoints);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($lower, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($upper, $breakpoints) {\n @content;\n }\n }\n}\n\n// Media between the breakpoint's minimum and maximum widths.\n// No minimum for the smallest breakpoint, and no maximum for the largest one.\n// Makes the @content apply only to the given breakpoint, not viewports any wider or narrower.\n@mixin media-breakpoint-only($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n $max: breakpoint-max($name, $breakpoints);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($name, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($name, $breakpoints) {\n @content;\n }\n }\n}\n","// Framework grid generation\n//\n// Used only by Bootstrap to generate the correct number of grid classes given\n// any value of `$grid-columns`.\n\n@mixin make-grid-columns($columns: $grid-columns, $gutter: $grid-gutter-width, $breakpoints: $grid-breakpoints) {\n // Common properties for all breakpoints\n %grid-column {\n position: relative;\n width: 100%;\n padding-right: $gutter / 2;\n padding-left: $gutter / 2;\n }\n\n @each $breakpoint in map-keys($breakpoints) {\n $infix: breakpoint-infix($breakpoint, $breakpoints);\n\n // Allow columns to stretch full width below their breakpoints\n @for $i from 1 through $columns {\n .col#{$infix}-#{$i} {\n @extend %grid-column;\n }\n }\n .col#{$infix},\n .col#{$infix}-auto {\n @extend %grid-column;\n }\n\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n // Provide basic `.col-{bp}` classes for equal-width flexbox columns\n .col#{$infix} {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n\n @for $i from 1 through $grid-row-columns {\n .row-cols#{$infix}-#{$i} {\n @include row-cols($i);\n }\n }\n\n .col#{$infix}-auto {\n @include make-col-auto();\n }\n\n @for $i from 1 through $columns {\n .col#{$infix}-#{$i} {\n @include make-col($i, $columns);\n }\n }\n\n .order#{$infix}-first { order: -1; }\n\n .order#{$infix}-last { order: $columns + 1; }\n\n @for $i from 0 through $columns {\n .order#{$infix}-#{$i} { order: $i; }\n }\n\n // `$columns - 1` because offsetting by the width of an entire row isn't possible\n @for $i from 0 through ($columns - 1) {\n @if not ($infix == \"\" and $i == 0) { // Avoid emitting useless .offset-0\n .offset#{$infix}-#{$i} {\n @include make-col-offset($i, $columns);\n }\n }\n }\n }\n }\n}\n","// stylelint-disable declaration-no-important\n\n//\n// Utilities for common `display` values\n//\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n @each $value in $displays {\n .d#{$infix}-#{$value} { display: $value !important; }\n }\n }\n}\n\n\n//\n// Utilities for toggling `display` in print\n//\n\n@media print {\n @each $value in $displays {\n .d-print-#{$value} { display: $value !important; }\n }\n}\n","// stylelint-disable declaration-no-important\n\n// Flex variation\n//\n// Custom styles for additional flex alignment options.\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n .flex#{$infix}-row { flex-direction: row !important; }\n .flex#{$infix}-column { flex-direction: column !important; }\n .flex#{$infix}-row-reverse { flex-direction: row-reverse !important; }\n .flex#{$infix}-column-reverse { flex-direction: column-reverse !important; }\n\n .flex#{$infix}-wrap { flex-wrap: wrap !important; }\n .flex#{$infix}-nowrap { flex-wrap: nowrap !important; }\n .flex#{$infix}-wrap-reverse { flex-wrap: wrap-reverse !important; }\n .flex#{$infix}-fill { flex: 1 1 auto !important; }\n .flex#{$infix}-grow-0 { flex-grow: 0 !important; }\n .flex#{$infix}-grow-1 { flex-grow: 1 !important; }\n .flex#{$infix}-shrink-0 { flex-shrink: 0 !important; }\n .flex#{$infix}-shrink-1 { flex-shrink: 1 !important; }\n\n .justify-content#{$infix}-start { justify-content: flex-start !important; }\n .justify-content#{$infix}-end { justify-content: flex-end !important; }\n .justify-content#{$infix}-center { justify-content: center !important; }\n .justify-content#{$infix}-between { justify-content: space-between !important; }\n .justify-content#{$infix}-around { justify-content: space-around !important; }\n\n .align-items#{$infix}-start { align-items: flex-start !important; }\n .align-items#{$infix}-end { align-items: flex-end !important; }\n .align-items#{$infix}-center { align-items: center !important; }\n .align-items#{$infix}-baseline { align-items: baseline !important; }\n .align-items#{$infix}-stretch { align-items: stretch !important; }\n\n .align-content#{$infix}-start { align-content: flex-start !important; }\n .align-content#{$infix}-end { align-content: flex-end !important; }\n .align-content#{$infix}-center { align-content: center !important; }\n .align-content#{$infix}-between { align-content: space-between !important; }\n .align-content#{$infix}-around { align-content: space-around !important; }\n .align-content#{$infix}-stretch { align-content: stretch !important; }\n\n .align-self#{$infix}-auto { align-self: auto !important; }\n .align-self#{$infix}-start { align-self: flex-start !important; }\n .align-self#{$infix}-end { align-self: flex-end !important; }\n .align-self#{$infix}-center { align-self: center !important; }\n .align-self#{$infix}-baseline { align-self: baseline !important; }\n .align-self#{$infix}-stretch { align-self: stretch !important; }\n }\n}\n","// stylelint-disable declaration-no-important\n\n// Margin and Padding\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n @each $prop, $abbrev in (margin: m, padding: p) {\n @each $size, $length in $spacers {\n .#{$abbrev}#{$infix}-#{$size} { #{$prop}: $length !important; }\n .#{$abbrev}t#{$infix}-#{$size},\n .#{$abbrev}y#{$infix}-#{$size} {\n #{$prop}-top: $length !important;\n }\n .#{$abbrev}r#{$infix}-#{$size},\n .#{$abbrev}x#{$infix}-#{$size} {\n #{$prop}-right: $length !important;\n }\n .#{$abbrev}b#{$infix}-#{$size},\n .#{$abbrev}y#{$infix}-#{$size} {\n #{$prop}-bottom: $length !important;\n }\n .#{$abbrev}l#{$infix}-#{$size},\n .#{$abbrev}x#{$infix}-#{$size} {\n #{$prop}-left: $length !important;\n }\n }\n }\n\n // Negative margins (e.g., where `.mb-n1` is negative version of `.mb-1`)\n @each $size, $length in $spacers {\n @if $size != 0 {\n .m#{$infix}-n#{$size} { margin: -$length !important; }\n .mt#{$infix}-n#{$size},\n .my#{$infix}-n#{$size} {\n margin-top: -$length !important;\n }\n .mr#{$infix}-n#{$size},\n .mx#{$infix}-n#{$size} {\n margin-right: -$length !important;\n }\n .mb#{$infix}-n#{$size},\n .my#{$infix}-n#{$size} {\n margin-bottom: -$length !important;\n }\n .ml#{$infix}-n#{$size},\n .mx#{$infix}-n#{$size} {\n margin-left: -$length !important;\n }\n }\n }\n\n // Some special margin utils\n .m#{$infix}-auto { margin: auto !important; }\n .mt#{$infix}-auto,\n .my#{$infix}-auto {\n margin-top: auto !important;\n }\n .mr#{$infix}-auto,\n .mx#{$infix}-auto {\n margin-right: auto !important;\n }\n .mb#{$infix}-auto,\n .my#{$infix}-auto {\n margin-bottom: auto !important;\n }\n .ml#{$infix}-auto,\n .mx#{$infix}-auto {\n margin-left: auto !important;\n }\n }\n}\n"]} \ No newline at end of file diff --git a/css/bootstrap-reboot.css b/css/bootstrap-reboot.css new file mode 100644 index 000000000..91b0fc4c8 --- /dev/null +++ b/css/bootstrap-reboot.css @@ -0,0 +1,327 @@ +/*! + * Bootstrap Reboot v4.4.1 (https://getbootstrap.com/) + * Copyright 2011-2019 The Bootstrap Authors + * Copyright 2011-2019 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md) + */ +*, +*::before, +*::after { + box-sizing: border-box; +} + +html { + font-family: sans-serif; + line-height: 1.15; + -webkit-text-size-adjust: 100%; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); +} + +article, aside, figcaption, figure, footer, header, hgroup, main, nav, section { + display: block; +} + +body { + margin: 0; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; + font-size: 1rem; + font-weight: 400; + line-height: 1.5; + color: #212529; + text-align: left; + background-color: #fff; +} + +[tabindex="-1"]:focus:not(:focus-visible) { + outline: 0 !important; +} + +hr { + box-sizing: content-box; + height: 0; + overflow: visible; +} + +h1, h2, h3, h4, h5, h6 { + margin-top: 0; + margin-bottom: 0.5rem; +} + +p { + margin-top: 0; + margin-bottom: 1rem; +} + +abbr[title], +abbr[data-original-title] { + text-decoration: underline; + -webkit-text-decoration: underline dotted; + text-decoration: underline dotted; + cursor: help; + border-bottom: 0; + -webkit-text-decoration-skip-ink: none; + text-decoration-skip-ink: none; +} + +address { + margin-bottom: 1rem; + font-style: normal; + line-height: inherit; +} + +ol, +ul, +dl { + margin-top: 0; + margin-bottom: 1rem; +} + +ol ol, +ul ul, +ol ul, +ul ol { + margin-bottom: 0; +} + +dt { + font-weight: 700; +} + +dd { + margin-bottom: .5rem; + margin-left: 0; +} + +blockquote { + margin: 0 0 1rem; +} + +b, +strong { + font-weight: bolder; +} + +small { + font-size: 80%; +} + +sub, +sup { + position: relative; + font-size: 75%; + line-height: 0; + vertical-align: baseline; +} + +sub { + bottom: -.25em; +} + +sup { + top: -.5em; +} + +a { + color: #007bff; + text-decoration: none; + background-color: transparent; +} + +a:hover { + color: #0056b3; + text-decoration: underline; +} + +a:not([href]) { + color: inherit; + text-decoration: none; +} + +a:not([href]):hover { + color: inherit; + text-decoration: none; +} + +pre, +code, +kbd, +samp { + font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; + font-size: 1em; +} + +pre { + margin-top: 0; + margin-bottom: 1rem; + overflow: auto; +} + +figure { + margin: 0 0 1rem; +} + +img { + vertical-align: middle; + border-style: none; +} + +svg { + overflow: hidden; + vertical-align: middle; +} + +table { + border-collapse: collapse; +} + +caption { + padding-top: 0.75rem; + padding-bottom: 0.75rem; + color: #6c757d; + text-align: left; + caption-side: bottom; +} + +th { + text-align: inherit; +} + +label { + display: inline-block; + margin-bottom: 0.5rem; +} + +button { + border-radius: 0; +} + +button:focus { + outline: 1px dotted; + outline: 5px auto -webkit-focus-ring-color; +} + +input, +button, +select, +optgroup, +textarea { + margin: 0; + font-family: inherit; + font-size: inherit; + line-height: inherit; +} + +button, +input { + overflow: visible; +} + +button, +select { + text-transform: none; +} + +select { + word-wrap: normal; +} + +button, +[type="button"], +[type="reset"], +[type="submit"] { + -webkit-appearance: button; +} + +button:not(:disabled), +[type="button"]:not(:disabled), +[type="reset"]:not(:disabled), +[type="submit"]:not(:disabled) { + cursor: pointer; +} + +button::-moz-focus-inner, +[type="button"]::-moz-focus-inner, +[type="reset"]::-moz-focus-inner, +[type="submit"]::-moz-focus-inner { + padding: 0; + border-style: none; +} + +input[type="radio"], +input[type="checkbox"] { + box-sizing: border-box; + padding: 0; +} + +input[type="date"], +input[type="time"], +input[type="datetime-local"], +input[type="month"] { + -webkit-appearance: listbox; +} + +textarea { + overflow: auto; + resize: vertical; +} + +fieldset { + min-width: 0; + padding: 0; + margin: 0; + border: 0; +} + +legend { + display: block; + width: 100%; + max-width: 100%; + padding: 0; + margin-bottom: .5rem; + font-size: 1.5rem; + line-height: inherit; + color: inherit; + white-space: normal; +} + +progress { + vertical-align: baseline; +} + +[type="number"]::-webkit-inner-spin-button, +[type="number"]::-webkit-outer-spin-button { + height: auto; +} + +[type="search"] { + outline-offset: -2px; + -webkit-appearance: none; +} + +[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} + +::-webkit-file-upload-button { + font: inherit; + -webkit-appearance: button; +} + +output { + display: inline-block; +} + +summary { + display: list-item; + cursor: pointer; +} + +template { + display: none; +} + +[hidden] { + display: none !important; +} +/*# sourceMappingURL=bootstrap-reboot.css.map */ \ No newline at end of file diff --git a/css/bootstrap-reboot.css.map b/css/bootstrap-reboot.css.map new file mode 100644 index 000000000..701f6715c --- /dev/null +++ b/css/bootstrap-reboot.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../scss/bootstrap-reboot.scss","bootstrap-reboot.css","../../scss/_reboot.scss","../../scss/_variables.scss","../../scss/vendor/_rfs.scss","../../scss/mixins/_hover.scss"],"names":[],"mappings":"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","file":"bootstrap-reboot.css","sourcesContent":["/*!\n * Bootstrap Reboot v4.4.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 The Bootstrap Authors\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)\n */\n\n@import \"functions\";\n@import \"variables\";\n@import \"mixins\";\n@import \"reboot\";\n","/*!\n * Bootstrap Reboot v4.4.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 The Bootstrap Authors\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)\n */\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\nhtml {\n font-family: sans-serif;\n line-height: 1.15;\n -webkit-text-size-adjust: 100%;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n\narticle, aside, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block;\n}\n\nbody {\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #212529;\n text-align: left;\n background-color: #fff;\n}\n\n[tabindex=\"-1\"]:focus:not(:focus-visible) {\n outline: 0 !important;\n}\n\nhr {\n box-sizing: content-box;\n height: 0;\n overflow: visible;\n}\n\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: 0.5rem;\n}\n\np {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nabbr[title],\nabbr[data-original-title] {\n text-decoration: underline;\n text-decoration: underline dotted;\n cursor: help;\n border-bottom: 0;\n text-decoration-skip-ink: none;\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: 700;\n}\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0;\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\nb,\nstrong {\n font-weight: bolder;\n}\n\nsmall {\n font-size: 80%;\n}\n\nsub,\nsup {\n position: relative;\n font-size: 75%;\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -.25em;\n}\n\nsup {\n top: -.5em;\n}\n\na {\n color: #007bff;\n text-decoration: none;\n background-color: transparent;\n}\n\na:hover {\n color: #0056b3;\n text-decoration: underline;\n}\n\na:not([href]) {\n color: inherit;\n text-decoration: none;\n}\n\na:not([href]):hover {\n color: inherit;\n text-decoration: none;\n}\n\npre,\ncode,\nkbd,\nsamp {\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n font-size: 1em;\n}\n\npre {\n margin-top: 0;\n margin-bottom: 1rem;\n overflow: auto;\n}\n\nfigure {\n margin: 0 0 1rem;\n}\n\nimg {\n vertical-align: middle;\n border-style: none;\n}\n\nsvg {\n overflow: hidden;\n vertical-align: middle;\n}\n\ntable {\n border-collapse: collapse;\n}\n\ncaption {\n padding-top: 0.75rem;\n padding-bottom: 0.75rem;\n color: #6c757d;\n text-align: left;\n caption-side: bottom;\n}\n\nth {\n text-align: inherit;\n}\n\nlabel {\n display: inline-block;\n margin-bottom: 0.5rem;\n}\n\nbutton {\n border-radius: 0;\n}\n\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible;\n}\n\nbutton,\nselect {\n text-transform: none;\n}\n\nselect {\n word-wrap: normal;\n}\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\nbutton:not(:disabled),\n[type=\"button\"]:not(:disabled),\n[type=\"reset\"]:not(:disabled),\n[type=\"submit\"]:not(:disabled) {\n cursor: pointer;\n}\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n box-sizing: border-box;\n padding: 0;\n}\n\ninput[type=\"date\"],\ninput[type=\"time\"],\ninput[type=\"datetime-local\"],\ninput[type=\"month\"] {\n -webkit-appearance: listbox;\n}\n\ntextarea {\n overflow: auto;\n resize: vertical;\n}\n\nfieldset {\n min-width: 0;\n padding: 0;\n margin: 0;\n border: 0;\n}\n\nlegend {\n display: block;\n width: 100%;\n max-width: 100%;\n padding: 0;\n margin-bottom: .5rem;\n font-size: 1.5rem;\n line-height: inherit;\n color: inherit;\n white-space: normal;\n}\n\nprogress {\n vertical-align: baseline;\n}\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type=\"search\"] {\n outline-offset: -2px;\n -webkit-appearance: none;\n}\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n::-webkit-file-upload-button {\n font: inherit;\n -webkit-appearance: button;\n}\n\noutput {\n display: inline-block;\n}\n\nsummary {\n display: list-item;\n cursor: pointer;\n}\n\ntemplate {\n display: none;\n}\n\n[hidden] {\n display: none !important;\n}\n\n/*# sourceMappingURL=bootstrap-reboot.css.map */","// stylelint-disable at-rule-no-vendor-prefix, declaration-no-important, selector-no-qualifying-type, property-no-vendor-prefix\n\n// Reboot\n//\n// Normalization of HTML elements, manually forked from Normalize.css to remove\n// styles targeting irrelevant browsers while applying new styles.\n//\n// Normalize is licensed MIT. https://github.com/necolas/normalize.css\n\n\n// Document\n//\n// 1. Change from `box-sizing: content-box` so that `width` is not affected by `padding` or `border`.\n// 2. Change the default font family in all browsers.\n// 3. Correct the line height in all browsers.\n// 4. Prevent adjustments of font size after orientation changes in IE on Windows Phone and in iOS.\n// 5. Change the default tap highlight to be completely transparent in iOS.\n\n*,\n*::before,\n*::after {\n box-sizing: border-box; // 1\n}\n\nhtml {\n font-family: sans-serif; // 2\n line-height: 1.15; // 3\n -webkit-text-size-adjust: 100%; // 4\n -webkit-tap-highlight-color: rgba($black, 0); // 5\n}\n\n// Shim for \"new\" HTML5 structural elements to display correctly (IE10, older browsers)\n// TODO: remove in v5\n// stylelint-disable-next-line selector-list-comma-newline-after\narticle, aside, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block;\n}\n\n// Body\n//\n// 1. Remove the margin in all browsers.\n// 2. As a best practice, apply a default `background-color`.\n// 3. Set an explicit initial text-align value so that we can later use\n// the `inherit` value on things like `` elements.\n\nbody {\n margin: 0; // 1\n font-family: $font-family-base;\n @include font-size($font-size-base);\n font-weight: $font-weight-base;\n line-height: $line-height-base;\n color: $body-color;\n text-align: left; // 3\n background-color: $body-bg; // 2\n}\n\n// Future-proof rule: in browsers that support :focus-visible, suppress the focus outline\n// on elements that programmatically receive focus but wouldn't normally show a visible\n// focus outline. In general, this would mean that the outline is only applied if the\n// interaction that led to the element receiving programmatic focus was a keyboard interaction,\n// or the browser has somehow determined that the user is primarily a keyboard user and/or\n// wants focus outlines to always be presented.\n//\n// See https://developer.mozilla.org/en-US/docs/Web/CSS/:focus-visible\n// and https://developer.paciellogroup.com/blog/2018/03/focus-visible-and-backwards-compatibility/\n[tabindex=\"-1\"]:focus:not(:focus-visible) {\n outline: 0 !important;\n}\n\n\n// Content grouping\n//\n// 1. Add the correct box sizing in Firefox.\n// 2. Show the overflow in Edge and IE.\n\nhr {\n box-sizing: content-box; // 1\n height: 0; // 1\n overflow: visible; // 2\n}\n\n\n//\n// Typography\n//\n\n// Remove top margins from headings\n//\n// By default, `

`-`

` all receive top and bottom margins. We nuke the top\n// margin for easier control within type scales as it avoids margin collapsing.\n// stylelint-disable-next-line selector-list-comma-newline-after\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: $headings-margin-bottom;\n}\n\n// Reset margins on paragraphs\n//\n// Similarly, the top margin on `

`s get reset. However, we also reset the\n// bottom margin to use `rem` units instead of `em`.\np {\n margin-top: 0;\n margin-bottom: $paragraph-margin-bottom;\n}\n\n// Abbreviations\n//\n// 1. Duplicate behavior to the data-* attribute for our tooltip plugin\n// 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n// 3. Add explicit cursor to indicate changed behavior.\n// 4. Remove the bottom border in Firefox 39-.\n// 5. Prevent the text-decoration to be skipped.\n\nabbr[title],\nabbr[data-original-title] { // 1\n text-decoration: underline; // 2\n text-decoration: underline dotted; // 2\n cursor: help; // 3\n border-bottom: 0; // 4\n text-decoration-skip-ink: none; // 5\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: $dt-font-weight;\n}\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0; // Undo browser default\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\nb,\nstrong {\n font-weight: $font-weight-bolder; // Add the correct font weight in Chrome, Edge, and Safari\n}\n\nsmall {\n @include font-size(80%); // Add the correct font size in all browsers\n}\n\n//\n// Prevent `sub` and `sup` elements from affecting the line height in\n// all browsers.\n//\n\nsub,\nsup {\n position: relative;\n @include font-size(75%);\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub { bottom: -.25em; }\nsup { top: -.5em; }\n\n\n//\n// Links\n//\n\na {\n color: $link-color;\n text-decoration: $link-decoration;\n background-color: transparent; // Remove the gray background on active links in IE 10.\n\n @include hover() {\n color: $link-hover-color;\n text-decoration: $link-hover-decoration;\n }\n}\n\n// And undo these styles for placeholder links/named anchors (without href).\n// It would be more straightforward to just use a[href] in previous block, but that\n// causes specificity issues in many other styles that are too complex to fix.\n// See https://github.com/twbs/bootstrap/issues/19402\n\na:not([href]) {\n color: inherit;\n text-decoration: none;\n\n @include hover() {\n color: inherit;\n text-decoration: none;\n }\n}\n\n\n//\n// Code\n//\n\npre,\ncode,\nkbd,\nsamp {\n font-family: $font-family-monospace;\n @include font-size(1em); // Correct the odd `em` font sizing in all browsers.\n}\n\npre {\n // Remove browser default top margin\n margin-top: 0;\n // Reset browser default of `1em` to use `rem`s\n margin-bottom: 1rem;\n // Don't allow content to break outside\n overflow: auto;\n}\n\n\n//\n// Figures\n//\n\nfigure {\n // Apply a consistent margin strategy (matches our type styles).\n margin: 0 0 1rem;\n}\n\n\n//\n// Images and content\n//\n\nimg {\n vertical-align: middle;\n border-style: none; // Remove the border on images inside links in IE 10-.\n}\n\nsvg {\n // Workaround for the SVG overflow bug in IE10/11 is still required.\n // See https://github.com/twbs/bootstrap/issues/26878\n overflow: hidden;\n vertical-align: middle;\n}\n\n\n//\n// Tables\n//\n\ntable {\n border-collapse: collapse; // Prevent double borders\n}\n\ncaption {\n padding-top: $table-cell-padding;\n padding-bottom: $table-cell-padding;\n color: $table-caption-color;\n text-align: left;\n caption-side: bottom;\n}\n\nth {\n // Matches default `` alignment by inheriting from the ``, or the\n // closest parent with a set `text-align`.\n text-align: inherit;\n}\n\n\n//\n// Forms\n//\n\nlabel {\n // Allow labels to use `margin` for spacing.\n display: inline-block;\n margin-bottom: $label-margin-bottom;\n}\n\n// Remove the default `border-radius` that macOS Chrome adds.\n//\n// Details at https://github.com/twbs/bootstrap/issues/24093\nbutton {\n // stylelint-disable-next-line property-blacklist\n border-radius: 0;\n}\n\n// Work around a Firefox/IE bug where the transparent `button` background\n// results in a loss of the default `button` focus styles.\n//\n// Credit: https://github.com/suitcss/base/\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0; // Remove the margin in Firefox and Safari\n font-family: inherit;\n @include font-size(inherit);\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible; // Show the overflow in Edge\n}\n\nbutton,\nselect {\n text-transform: none; // Remove the inheritance of text transform in Firefox\n}\n\n// Remove the inheritance of word-wrap in Safari.\n//\n// Details at https://github.com/twbs/bootstrap/issues/24990\nselect {\n word-wrap: normal;\n}\n\n\n// 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`\n// controls in Android 4.\n// 2. Correct the inability to style clickable types in iOS and Safari.\nbutton,\n[type=\"button\"], // 1\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button; // 2\n}\n\n// Opinionated: add \"hand\" cursor to non-disabled button elements.\n@if $enable-pointer-cursor-for-buttons {\n button,\n [type=\"button\"],\n [type=\"reset\"],\n [type=\"submit\"] {\n &:not(:disabled) {\n cursor: pointer;\n }\n }\n}\n\n// Remove inner border and padding from Firefox, but don't restore the outline like Normalize.\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n box-sizing: border-box; // 1. Add the correct box sizing in IE 10-\n padding: 0; // 2. Remove the padding in IE 10-\n}\n\n\ninput[type=\"date\"],\ninput[type=\"time\"],\ninput[type=\"datetime-local\"],\ninput[type=\"month\"] {\n // Remove the default appearance of temporal inputs to avoid a Mobile Safari\n // bug where setting a custom line-height prevents text from being vertically\n // centered within the input.\n // See https://bugs.webkit.org/show_bug.cgi?id=139848\n // and https://github.com/twbs/bootstrap/issues/11266\n -webkit-appearance: listbox;\n}\n\ntextarea {\n overflow: auto; // Remove the default vertical scrollbar in IE.\n // Textareas should really only resize vertically so they don't break their (horizontal) containers.\n resize: vertical;\n}\n\nfieldset {\n // Browsers set a default `min-width: min-content;` on fieldsets,\n // unlike e.g. `

`s, which have `min-width: 0;` by default.\n // So we reset that to ensure fieldsets behave more like a standard block element.\n // See https://github.com/twbs/bootstrap/issues/12359\n // and https://html.spec.whatwg.org/multipage/#the-fieldset-and-legend-elements\n min-width: 0;\n // Reset the default outline behavior of fieldsets so they don't affect page layout.\n padding: 0;\n margin: 0;\n border: 0;\n}\n\n// 1. Correct the text wrapping in Edge and IE.\n// 2. Correct the color inheritance from `fieldset` elements in IE.\nlegend {\n display: block;\n width: 100%;\n max-width: 100%; // 1\n padding: 0;\n margin-bottom: .5rem;\n @include font-size(1.5rem);\n line-height: inherit;\n color: inherit; // 2\n white-space: normal; // 1\n}\n\nprogress {\n vertical-align: baseline; // Add the correct vertical alignment in Chrome, Firefox, and Opera.\n}\n\n// Correct the cursor style of increment and decrement buttons in Chrome.\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type=\"search\"] {\n // This overrides the extra rounded corners on search inputs in iOS so that our\n // `.form-control` class can properly style them. Note that this cannot simply\n // be added to `.form-control` as it's not specific enough. For details, see\n // https://github.com/twbs/bootstrap/issues/11586.\n outline-offset: -2px; // 2. Correct the outline style in Safari.\n -webkit-appearance: none;\n}\n\n//\n// Remove the inner padding in Chrome and Safari on macOS.\n//\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n//\n// 1. Correct the inability to style clickable types in iOS and Safari.\n// 2. Change font properties to `inherit` in Safari.\n//\n\n::-webkit-file-upload-button {\n font: inherit; // 2\n -webkit-appearance: button; // 1\n}\n\n//\n// Correct element displays\n//\n\noutput {\n display: inline-block;\n}\n\nsummary {\n display: list-item; // Add the correct display in all browsers\n cursor: pointer;\n}\n\ntemplate {\n display: none; // Add the correct display in IE\n}\n\n// Always hide an element with the `hidden` HTML attribute (from PureCSS).\n// Needed for proper display in IE 10-.\n[hidden] {\n display: none !important;\n}\n","// Variables\n//\n// Variables should follow the `$component-state-property-size` formula for\n// consistent naming. Ex: $nav-link-disabled-color and $modal-content-box-shadow-xs.\n\n// Color system\n\n$white: #fff !default;\n$gray-100: #f8f9fa !default;\n$gray-200: #e9ecef !default;\n$gray-300: #dee2e6 !default;\n$gray-400: #ced4da !default;\n$gray-500: #adb5bd !default;\n$gray-600: #6c757d !default;\n$gray-700: #495057 !default;\n$gray-800: #343a40 !default;\n$gray-900: #212529 !default;\n$black: #000 !default;\n\n$grays: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$grays: map-merge(\n (\n \"100\": $gray-100,\n \"200\": $gray-200,\n \"300\": $gray-300,\n \"400\": $gray-400,\n \"500\": $gray-500,\n \"600\": $gray-600,\n \"700\": $gray-700,\n \"800\": $gray-800,\n \"900\": $gray-900\n ),\n $grays\n);\n\n$blue: #007bff !default;\n$indigo: #6610f2 !default;\n$purple: #6f42c1 !default;\n$pink: #e83e8c !default;\n$red: #dc3545 !default;\n$orange: #fd7e14 !default;\n$yellow: #ffc107 !default;\n$green: #28a745 !default;\n$teal: #20c997 !default;\n$cyan: #17a2b8 !default;\n\n$colors: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$colors: map-merge(\n (\n \"blue\": $blue,\n \"indigo\": $indigo,\n \"purple\": $purple,\n \"pink\": $pink,\n \"red\": $red,\n \"orange\": $orange,\n \"yellow\": $yellow,\n \"green\": $green,\n \"teal\": $teal,\n \"cyan\": $cyan,\n \"white\": $white,\n \"gray\": $gray-600,\n \"gray-dark\": $gray-800\n ),\n $colors\n);\n\n$primary: $blue !default;\n$secondary: $gray-600 !default;\n$success: $green !default;\n$info: $cyan !default;\n$warning: $yellow !default;\n$danger: $red !default;\n$light: $gray-100 !default;\n$dark: $gray-800 !default;\n\n$theme-colors: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$theme-colors: map-merge(\n (\n \"primary\": $primary,\n \"secondary\": $secondary,\n \"success\": $success,\n \"info\": $info,\n \"warning\": $warning,\n \"danger\": $danger,\n \"light\": $light,\n \"dark\": $dark\n ),\n $theme-colors\n);\n\n// Set a specific jump point for requesting color jumps\n$theme-color-interval: 8% !default;\n\n// The yiq lightness value that determines when the lightness of color changes from \"dark\" to \"light\". Acceptable values are between 0 and 255.\n$yiq-contrasted-threshold: 150 !default;\n\n// Customize the light and dark text colors for use in our YIQ color contrast function.\n$yiq-text-dark: $gray-900 !default;\n$yiq-text-light: $white !default;\n\n// Characters which are escaped by the escape-svg function\n$escaped-characters: (\n (\"<\",\"%3c\"),\n (\">\",\"%3e\"),\n (\"#\",\"%23\"),\n) !default;\n\n\n// Options\n//\n// Quickly modify global styling by enabling or disabling optional features.\n\n$enable-caret: true !default;\n$enable-rounded: true !default;\n$enable-shadows: false !default;\n$enable-gradients: false !default;\n$enable-transitions: true !default;\n$enable-prefers-reduced-motion-media-query: true !default;\n$enable-hover-media-query: false !default; // Deprecated, no longer affects any compiled CSS\n$enable-grid-classes: true !default;\n$enable-pointer-cursor-for-buttons: true !default;\n$enable-print-styles: true !default;\n$enable-responsive-font-sizes: false !default;\n$enable-validation-icons: true !default;\n$enable-deprecation-messages: true !default;\n\n\n// Spacing\n//\n// Control the default styling of most Bootstrap elements by modifying these\n// variables. Mostly focused on spacing.\n// You can add more entries to the $spacers map, should you need more variation.\n\n$spacer: 1rem !default;\n$spacers: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$spacers: map-merge(\n (\n 0: 0,\n 1: ($spacer * .25),\n 2: ($spacer * .5),\n 3: $spacer,\n 4: ($spacer * 1.5),\n 5: ($spacer * 3)\n ),\n $spacers\n);\n\n// This variable affects the `.h-*` and `.w-*` classes.\n$sizes: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$sizes: map-merge(\n (\n 25: 25%,\n 50: 50%,\n 75: 75%,\n 100: 100%,\n auto: auto\n ),\n $sizes\n);\n\n\n// Body\n//\n// Settings for the `` element.\n\n$body-bg: $white !default;\n$body-color: $gray-900 !default;\n\n\n// Links\n//\n// Style anchor elements.\n\n$link-color: theme-color(\"primary\") !default;\n$link-decoration: none !default;\n$link-hover-color: darken($link-color, 15%) !default;\n$link-hover-decoration: underline !default;\n// Darken percentage for links with `.text-*` class (e.g. `.text-success`)\n$emphasized-link-hover-darken-percentage: 15% !default;\n\n// Paragraphs\n//\n// Style p element.\n\n$paragraph-margin-bottom: 1rem !default;\n\n\n// Grid breakpoints\n//\n// Define the minimum dimensions at which your layout will change,\n// adapting to different screen sizes, for use in media queries.\n\n$grid-breakpoints: (\n xs: 0,\n sm: 576px,\n md: 768px,\n lg: 992px,\n xl: 1200px\n) !default;\n\n@include _assert-ascending($grid-breakpoints, \"$grid-breakpoints\");\n@include _assert-starts-at-zero($grid-breakpoints, \"$grid-breakpoints\");\n\n\n// Grid containers\n//\n// Define the maximum width of `.container` for different screen sizes.\n\n$container-max-widths: (\n sm: 540px,\n md: 720px,\n lg: 960px,\n xl: 1140px\n) !default;\n\n@include _assert-ascending($container-max-widths, \"$container-max-widths\");\n\n\n// Grid columns\n//\n// Set the number of columns and specify the width of the gutters.\n\n$grid-columns: 12 !default;\n$grid-gutter-width: 30px !default;\n$grid-row-columns: 6 !default;\n\n\n// Components\n//\n// Define common padding and border radius sizes and more.\n\n$line-height-lg: 1.5 !default;\n$line-height-sm: 1.5 !default;\n\n$border-width: 1px !default;\n$border-color: $gray-300 !default;\n\n$border-radius: .25rem !default;\n$border-radius-lg: .3rem !default;\n$border-radius-sm: .2rem !default;\n\n$rounded-pill: 50rem !default;\n\n$box-shadow-sm: 0 .125rem .25rem rgba($black, .075) !default;\n$box-shadow: 0 .5rem 1rem rgba($black, .15) !default;\n$box-shadow-lg: 0 1rem 3rem rgba($black, .175) !default;\n\n$component-active-color: $white !default;\n$component-active-bg: theme-color(\"primary\") !default;\n\n$caret-width: .3em !default;\n$caret-vertical-align: $caret-width * .85 !default;\n$caret-spacing: $caret-width * .85 !default;\n\n$transition-base: all .2s ease-in-out !default;\n$transition-fade: opacity .15s linear !default;\n$transition-collapse: height .35s ease !default;\n\n$embed-responsive-aspect-ratios: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$embed-responsive-aspect-ratios: join(\n (\n (21 9),\n (16 9),\n (4 3),\n (1 1),\n ),\n $embed-responsive-aspect-ratios\n);\n\n// Typography\n//\n// Font, line-height, and color for body text, headings, and more.\n\n// stylelint-disable value-keyword-case\n$font-family-sans-serif: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\" !default;\n$font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace !default;\n$font-family-base: $font-family-sans-serif !default;\n// stylelint-enable value-keyword-case\n\n$font-size-base: 1rem !default; // Assumes the browser default, typically `16px`\n$font-size-lg: $font-size-base * 1.25 !default;\n$font-size-sm: $font-size-base * .875 !default;\n\n$font-weight-lighter: lighter !default;\n$font-weight-light: 300 !default;\n$font-weight-normal: 400 !default;\n$font-weight-bold: 700 !default;\n$font-weight-bolder: bolder !default;\n\n$font-weight-base: $font-weight-normal !default;\n$line-height-base: 1.5 !default;\n\n$h1-font-size: $font-size-base * 2.5 !default;\n$h2-font-size: $font-size-base * 2 !default;\n$h3-font-size: $font-size-base * 1.75 !default;\n$h4-font-size: $font-size-base * 1.5 !default;\n$h5-font-size: $font-size-base * 1.25 !default;\n$h6-font-size: $font-size-base !default;\n\n$headings-margin-bottom: $spacer / 2 !default;\n$headings-font-family: null !default;\n$headings-font-weight: 500 !default;\n$headings-line-height: 1.2 !default;\n$headings-color: null !default;\n\n$display1-size: 6rem !default;\n$display2-size: 5.5rem !default;\n$display3-size: 4.5rem !default;\n$display4-size: 3.5rem !default;\n\n$display1-weight: 300 !default;\n$display2-weight: 300 !default;\n$display3-weight: 300 !default;\n$display4-weight: 300 !default;\n$display-line-height: $headings-line-height !default;\n\n$lead-font-size: $font-size-base * 1.25 !default;\n$lead-font-weight: 300 !default;\n\n$small-font-size: 80% !default;\n\n$text-muted: $gray-600 !default;\n\n$blockquote-small-color: $gray-600 !default;\n$blockquote-small-font-size: $small-font-size !default;\n$blockquote-font-size: $font-size-base * 1.25 !default;\n\n$hr-border-color: rgba($black, .1) !default;\n$hr-border-width: $border-width !default;\n\n$mark-padding: .2em !default;\n\n$dt-font-weight: $font-weight-bold !default;\n\n$kbd-box-shadow: inset 0 -.1rem 0 rgba($black, .25) !default;\n$nested-kbd-font-weight: $font-weight-bold !default;\n\n$list-inline-padding: .5rem !default;\n\n$mark-bg: #fcf8e3 !default;\n\n$hr-margin-y: $spacer !default;\n\n\n// Tables\n//\n// Customizes the `.table` component with basic values, each used across all table variations.\n\n$table-cell-padding: .75rem !default;\n$table-cell-padding-sm: .3rem !default;\n\n$table-color: $body-color !default;\n$table-bg: null !default;\n$table-accent-bg: rgba($black, .05) !default;\n$table-hover-color: $table-color !default;\n$table-hover-bg: rgba($black, .075) !default;\n$table-active-bg: $table-hover-bg !default;\n\n$table-border-width: $border-width !default;\n$table-border-color: $border-color !default;\n\n$table-head-bg: $gray-200 !default;\n$table-head-color: $gray-700 !default;\n\n$table-dark-color: $white !default;\n$table-dark-bg: $gray-800 !default;\n$table-dark-accent-bg: rgba($white, .05) !default;\n$table-dark-hover-color: $table-dark-color !default;\n$table-dark-hover-bg: rgba($white, .075) !default;\n$table-dark-border-color: lighten($table-dark-bg, 7.5%) !default;\n\n$table-striped-order: odd !default;\n\n$table-caption-color: $text-muted !default;\n\n$table-bg-level: -9 !default;\n$table-border-level: -6 !default;\n\n\n// Buttons + Forms\n//\n// Shared variables that are reassigned to `$input-` and `$btn-` specific variables.\n\n$input-btn-padding-y: .375rem !default;\n$input-btn-padding-x: .75rem !default;\n$input-btn-font-family: null !default;\n$input-btn-font-size: $font-size-base !default;\n$input-btn-line-height: $line-height-base !default;\n\n$input-btn-focus-width: .2rem !default;\n$input-btn-focus-color: rgba($component-active-bg, .25) !default;\n$input-btn-focus-box-shadow: 0 0 0 $input-btn-focus-width $input-btn-focus-color !default;\n\n$input-btn-padding-y-sm: .25rem !default;\n$input-btn-padding-x-sm: .5rem !default;\n$input-btn-font-size-sm: $font-size-sm !default;\n$input-btn-line-height-sm: $line-height-sm !default;\n\n$input-btn-padding-y-lg: .5rem !default;\n$input-btn-padding-x-lg: 1rem !default;\n$input-btn-font-size-lg: $font-size-lg !default;\n$input-btn-line-height-lg: $line-height-lg !default;\n\n$input-btn-border-width: $border-width !default;\n\n\n// Buttons\n//\n// For each of Bootstrap's buttons, define text, background, and border color.\n\n$btn-padding-y: $input-btn-padding-y !default;\n$btn-padding-x: $input-btn-padding-x !default;\n$btn-font-family: $input-btn-font-family !default;\n$btn-font-size: $input-btn-font-size !default;\n$btn-line-height: $input-btn-line-height !default;\n$btn-white-space: null !default; // Set to `nowrap` to prevent text wrapping\n\n$btn-padding-y-sm: $input-btn-padding-y-sm !default;\n$btn-padding-x-sm: $input-btn-padding-x-sm !default;\n$btn-font-size-sm: $input-btn-font-size-sm !default;\n$btn-line-height-sm: $input-btn-line-height-sm !default;\n\n$btn-padding-y-lg: $input-btn-padding-y-lg !default;\n$btn-padding-x-lg: $input-btn-padding-x-lg !default;\n$btn-font-size-lg: $input-btn-font-size-lg !default;\n$btn-line-height-lg: $input-btn-line-height-lg !default;\n\n$btn-border-width: $input-btn-border-width !default;\n\n$btn-font-weight: $font-weight-normal !default;\n$btn-box-shadow: inset 0 1px 0 rgba($white, .15), 0 1px 1px rgba($black, .075) !default;\n$btn-focus-width: $input-btn-focus-width !default;\n$btn-focus-box-shadow: $input-btn-focus-box-shadow !default;\n$btn-disabled-opacity: .65 !default;\n$btn-active-box-shadow: inset 0 3px 5px rgba($black, .125) !default;\n\n$btn-link-disabled-color: $gray-600 !default;\n\n$btn-block-spacing-y: .5rem !default;\n\n// Allows for customizing button radius independently from global border radius\n$btn-border-radius: $border-radius !default;\n$btn-border-radius-lg: $border-radius-lg !default;\n$btn-border-radius-sm: $border-radius-sm !default;\n\n$btn-transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n\n// Forms\n\n$label-margin-bottom: .5rem !default;\n\n$input-padding-y: $input-btn-padding-y !default;\n$input-padding-x: $input-btn-padding-x !default;\n$input-font-family: $input-btn-font-family !default;\n$input-font-size: $input-btn-font-size !default;\n$input-font-weight: $font-weight-base !default;\n$input-line-height: $input-btn-line-height !default;\n\n$input-padding-y-sm: $input-btn-padding-y-sm !default;\n$input-padding-x-sm: $input-btn-padding-x-sm !default;\n$input-font-size-sm: $input-btn-font-size-sm !default;\n$input-line-height-sm: $input-btn-line-height-sm !default;\n\n$input-padding-y-lg: $input-btn-padding-y-lg !default;\n$input-padding-x-lg: $input-btn-padding-x-lg !default;\n$input-font-size-lg: $input-btn-font-size-lg !default;\n$input-line-height-lg: $input-btn-line-height-lg !default;\n\n$input-bg: $white !default;\n$input-disabled-bg: $gray-200 !default;\n\n$input-color: $gray-700 !default;\n$input-border-color: $gray-400 !default;\n$input-border-width: $input-btn-border-width !default;\n$input-box-shadow: inset 0 1px 1px rgba($black, .075) !default;\n\n$input-border-radius: $border-radius !default;\n$input-border-radius-lg: $border-radius-lg !default;\n$input-border-radius-sm: $border-radius-sm !default;\n\n$input-focus-bg: $input-bg !default;\n$input-focus-border-color: lighten($component-active-bg, 25%) !default;\n$input-focus-color: $input-color !default;\n$input-focus-width: $input-btn-focus-width !default;\n$input-focus-box-shadow: $input-btn-focus-box-shadow !default;\n\n$input-placeholder-color: $gray-600 !default;\n$input-plaintext-color: $body-color !default;\n\n$input-height-border: $input-border-width * 2 !default;\n\n$input-height-inner: add($input-line-height * 1em, $input-padding-y * 2) !default;\n$input-height-inner-half: add($input-line-height * .5em, $input-padding-y) !default;\n$input-height-inner-quarter: add($input-line-height * .25em, $input-padding-y / 2) !default;\n\n$input-height: add($input-line-height * 1em, add($input-padding-y * 2, $input-height-border, false)) !default;\n$input-height-sm: add($input-line-height-sm * 1em, add($input-padding-y-sm * 2, $input-height-border, false)) !default;\n$input-height-lg: add($input-line-height-lg * 1em, add($input-padding-y-lg * 2, $input-height-border, false)) !default;\n\n$input-transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n$form-text-margin-top: .25rem !default;\n\n$form-check-input-gutter: 1.25rem !default;\n$form-check-input-margin-y: .3rem !default;\n$form-check-input-margin-x: .25rem !default;\n\n$form-check-inline-margin-x: .75rem !default;\n$form-check-inline-input-margin-x: .3125rem !default;\n\n$form-grid-gutter-width: 10px !default;\n$form-group-margin-bottom: 1rem !default;\n\n$input-group-addon-color: $input-color !default;\n$input-group-addon-bg: $gray-200 !default;\n$input-group-addon-border-color: $input-border-color !default;\n\n$custom-forms-transition: background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n$custom-control-gutter: .5rem !default;\n$custom-control-spacer-x: 1rem !default;\n$custom-control-cursor: null !default;\n\n$custom-control-indicator-size: 1rem !default;\n$custom-control-indicator-bg: $input-bg !default;\n\n$custom-control-indicator-bg-size: 50% 50% !default;\n$custom-control-indicator-box-shadow: $input-box-shadow !default;\n$custom-control-indicator-border-color: $gray-500 !default;\n$custom-control-indicator-border-width: $input-border-width !default;\n\n$custom-control-label-color: null !default;\n\n$custom-control-indicator-disabled-bg: $input-disabled-bg !default;\n$custom-control-label-disabled-color: $gray-600 !default;\n\n$custom-control-indicator-checked-color: $component-active-color !default;\n$custom-control-indicator-checked-bg: $component-active-bg !default;\n$custom-control-indicator-checked-disabled-bg: rgba(theme-color(\"primary\"), .5) !default;\n$custom-control-indicator-checked-box-shadow: none !default;\n$custom-control-indicator-checked-border-color: $custom-control-indicator-checked-bg !default;\n\n$custom-control-indicator-focus-box-shadow: $input-focus-box-shadow !default;\n$custom-control-indicator-focus-border-color: $input-focus-border-color !default;\n\n$custom-control-indicator-active-color: $component-active-color !default;\n$custom-control-indicator-active-bg: lighten($component-active-bg, 35%) !default;\n$custom-control-indicator-active-box-shadow: none !default;\n$custom-control-indicator-active-border-color: $custom-control-indicator-active-bg !default;\n\n$custom-checkbox-indicator-border-radius: $border-radius !default;\n$custom-checkbox-indicator-icon-checked: url(\"data:image/svg+xml,\") !default;\n\n$custom-checkbox-indicator-indeterminate-bg: $component-active-bg !default;\n$custom-checkbox-indicator-indeterminate-color: $custom-control-indicator-checked-color !default;\n$custom-checkbox-indicator-icon-indeterminate: url(\"data:image/svg+xml,\") !default;\n$custom-checkbox-indicator-indeterminate-box-shadow: none !default;\n$custom-checkbox-indicator-indeterminate-border-color: $custom-checkbox-indicator-indeterminate-bg !default;\n\n$custom-radio-indicator-border-radius: 50% !default;\n$custom-radio-indicator-icon-checked: url(\"data:image/svg+xml,\") !default;\n\n$custom-switch-width: $custom-control-indicator-size * 1.75 !default;\n$custom-switch-indicator-border-radius: $custom-control-indicator-size / 2 !default;\n$custom-switch-indicator-size: subtract($custom-control-indicator-size, $custom-control-indicator-border-width * 4) !default;\n\n$custom-select-padding-y: $input-padding-y !default;\n$custom-select-padding-x: $input-padding-x !default;\n$custom-select-font-family: $input-font-family !default;\n$custom-select-font-size: $input-font-size !default;\n$custom-select-height: $input-height !default;\n$custom-select-indicator-padding: 1rem !default; // Extra padding to account for the presence of the background-image based indicator\n$custom-select-font-weight: $input-font-weight !default;\n$custom-select-line-height: $input-line-height !default;\n$custom-select-color: $input-color !default;\n$custom-select-disabled-color: $gray-600 !default;\n$custom-select-bg: $input-bg !default;\n$custom-select-disabled-bg: $gray-200 !default;\n$custom-select-bg-size: 8px 10px !default; // In pixels because image dimensions\n$custom-select-indicator-color: $gray-800 !default;\n$custom-select-indicator: url(\"data:image/svg+xml,\") !default;\n$custom-select-background: escape-svg($custom-select-indicator) no-repeat right $custom-select-padding-x center / $custom-select-bg-size !default; // Used so we can have multiple background elements (e.g., arrow and feedback icon)\n\n$custom-select-feedback-icon-padding-right: add(1em * .75, (2 * $custom-select-padding-y * .75) + $custom-select-padding-x + $custom-select-indicator-padding) !default;\n$custom-select-feedback-icon-position: center right ($custom-select-padding-x + $custom-select-indicator-padding) !default;\n$custom-select-feedback-icon-size: $input-height-inner-half $input-height-inner-half !default;\n\n$custom-select-border-width: $input-border-width !default;\n$custom-select-border-color: $input-border-color !default;\n$custom-select-border-radius: $border-radius !default;\n$custom-select-box-shadow: inset 0 1px 2px rgba($black, .075) !default;\n\n$custom-select-focus-border-color: $input-focus-border-color !default;\n$custom-select-focus-width: $input-focus-width !default;\n$custom-select-focus-box-shadow: 0 0 0 $custom-select-focus-width $input-btn-focus-color !default;\n\n$custom-select-padding-y-sm: $input-padding-y-sm !default;\n$custom-select-padding-x-sm: $input-padding-x-sm !default;\n$custom-select-font-size-sm: $input-font-size-sm !default;\n$custom-select-height-sm: $input-height-sm !default;\n\n$custom-select-padding-y-lg: $input-padding-y-lg !default;\n$custom-select-padding-x-lg: $input-padding-x-lg !default;\n$custom-select-font-size-lg: $input-font-size-lg !default;\n$custom-select-height-lg: $input-height-lg !default;\n\n$custom-range-track-width: 100% !default;\n$custom-range-track-height: .5rem !default;\n$custom-range-track-cursor: pointer !default;\n$custom-range-track-bg: $gray-300 !default;\n$custom-range-track-border-radius: 1rem !default;\n$custom-range-track-box-shadow: inset 0 .25rem .25rem rgba($black, .1) !default;\n\n$custom-range-thumb-width: 1rem !default;\n$custom-range-thumb-height: $custom-range-thumb-width !default;\n$custom-range-thumb-bg: $component-active-bg !default;\n$custom-range-thumb-border: 0 !default;\n$custom-range-thumb-border-radius: 1rem !default;\n$custom-range-thumb-box-shadow: 0 .1rem .25rem rgba($black, .1) !default;\n$custom-range-thumb-focus-box-shadow: 0 0 0 1px $body-bg, $input-focus-box-shadow !default;\n$custom-range-thumb-focus-box-shadow-width: $input-focus-width !default; // For focus box shadow issue in IE/Edge\n$custom-range-thumb-active-bg: lighten($component-active-bg, 35%) !default;\n$custom-range-thumb-disabled-bg: $gray-500 !default;\n\n$custom-file-height: $input-height !default;\n$custom-file-height-inner: $input-height-inner !default;\n$custom-file-focus-border-color: $input-focus-border-color !default;\n$custom-file-focus-box-shadow: $input-focus-box-shadow !default;\n$custom-file-disabled-bg: $input-disabled-bg !default;\n\n$custom-file-padding-y: $input-padding-y !default;\n$custom-file-padding-x: $input-padding-x !default;\n$custom-file-line-height: $input-line-height !default;\n$custom-file-font-family: $input-font-family !default;\n$custom-file-font-weight: $input-font-weight !default;\n$custom-file-color: $input-color !default;\n$custom-file-bg: $input-bg !default;\n$custom-file-border-width: $input-border-width !default;\n$custom-file-border-color: $input-border-color !default;\n$custom-file-border-radius: $input-border-radius !default;\n$custom-file-box-shadow: $input-box-shadow !default;\n$custom-file-button-color: $custom-file-color !default;\n$custom-file-button-bg: $input-group-addon-bg !default;\n$custom-file-text: (\n en: \"Browse\"\n) !default;\n\n\n// Form validation\n\n$form-feedback-margin-top: $form-text-margin-top !default;\n$form-feedback-font-size: $small-font-size !default;\n$form-feedback-valid-color: theme-color(\"success\") !default;\n$form-feedback-invalid-color: theme-color(\"danger\") !default;\n\n$form-feedback-icon-valid-color: $form-feedback-valid-color !default;\n$form-feedback-icon-valid: url(\"data:image/svg+xml,\") !default;\n$form-feedback-icon-invalid-color: $form-feedback-invalid-color !default;\n$form-feedback-icon-invalid: url(\"data:image/svg+xml,\") !default;\n\n$form-validation-states: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$form-validation-states: map-merge(\n (\n \"valid\": (\n \"color\": $form-feedback-valid-color,\n \"icon\": $form-feedback-icon-valid\n ),\n \"invalid\": (\n \"color\": $form-feedback-invalid-color,\n \"icon\": $form-feedback-icon-invalid\n ),\n ),\n $form-validation-states\n);\n\n// Z-index master list\n//\n// Warning: Avoid customizing these values. They're used for a bird's eye view\n// of components dependent on the z-axis and are designed to all work together.\n\n$zindex-dropdown: 1000 !default;\n$zindex-sticky: 1020 !default;\n$zindex-fixed: 1030 !default;\n$zindex-modal-backdrop: 1040 !default;\n$zindex-modal: 1050 !default;\n$zindex-popover: 1060 !default;\n$zindex-tooltip: 1070 !default;\n\n\n// Navs\n\n$nav-link-padding-y: .5rem !default;\n$nav-link-padding-x: 1rem !default;\n$nav-link-disabled-color: $gray-600 !default;\n\n$nav-tabs-border-color: $gray-300 !default;\n$nav-tabs-border-width: $border-width !default;\n$nav-tabs-border-radius: $border-radius !default;\n$nav-tabs-link-hover-border-color: $gray-200 $gray-200 $nav-tabs-border-color !default;\n$nav-tabs-link-active-color: $gray-700 !default;\n$nav-tabs-link-active-bg: $body-bg !default;\n$nav-tabs-link-active-border-color: $gray-300 $gray-300 $nav-tabs-link-active-bg !default;\n\n$nav-pills-border-radius: $border-radius !default;\n$nav-pills-link-active-color: $component-active-color !default;\n$nav-pills-link-active-bg: $component-active-bg !default;\n\n$nav-divider-color: $gray-200 !default;\n$nav-divider-margin-y: $spacer / 2 !default;\n\n\n// Navbar\n\n$navbar-padding-y: $spacer / 2 !default;\n$navbar-padding-x: $spacer !default;\n\n$navbar-nav-link-padding-x: .5rem !default;\n\n$navbar-brand-font-size: $font-size-lg !default;\n// Compute the navbar-brand padding-y so the navbar-brand will have the same height as navbar-text and nav-link\n$nav-link-height: $font-size-base * $line-height-base + $nav-link-padding-y * 2 !default;\n$navbar-brand-height: $navbar-brand-font-size * $line-height-base !default;\n$navbar-brand-padding-y: ($nav-link-height - $navbar-brand-height) / 2 !default;\n\n$navbar-toggler-padding-y: .25rem !default;\n$navbar-toggler-padding-x: .75rem !default;\n$navbar-toggler-font-size: $font-size-lg !default;\n$navbar-toggler-border-radius: $btn-border-radius !default;\n\n$navbar-dark-color: rgba($white, .5) !default;\n$navbar-dark-hover-color: rgba($white, .75) !default;\n$navbar-dark-active-color: $white !default;\n$navbar-dark-disabled-color: rgba($white, .25) !default;\n$navbar-dark-toggler-icon-bg: url(\"data:image/svg+xml,\") !default;\n$navbar-dark-toggler-border-color: rgba($white, .1) !default;\n\n$navbar-light-color: rgba($black, .5) !default;\n$navbar-light-hover-color: rgba($black, .7) !default;\n$navbar-light-active-color: rgba($black, .9) !default;\n$navbar-light-disabled-color: rgba($black, .3) !default;\n$navbar-light-toggler-icon-bg: url(\"data:image/svg+xml,\") !default;\n$navbar-light-toggler-border-color: rgba($black, .1) !default;\n\n$navbar-light-brand-color: $navbar-light-active-color !default;\n$navbar-light-brand-hover-color: $navbar-light-active-color !default;\n$navbar-dark-brand-color: $navbar-dark-active-color !default;\n$navbar-dark-brand-hover-color: $navbar-dark-active-color !default;\n\n\n// Dropdowns\n//\n// Dropdown menu container and contents.\n\n$dropdown-min-width: 10rem !default;\n$dropdown-padding-y: .5rem !default;\n$dropdown-spacer: .125rem !default;\n$dropdown-font-size: $font-size-base !default;\n$dropdown-color: $body-color !default;\n$dropdown-bg: $white !default;\n$dropdown-border-color: rgba($black, .15) !default;\n$dropdown-border-radius: $border-radius !default;\n$dropdown-border-width: $border-width !default;\n$dropdown-inner-border-radius: subtract($dropdown-border-radius, $dropdown-border-width) !default;\n$dropdown-divider-bg: $gray-200 !default;\n$dropdown-divider-margin-y: $nav-divider-margin-y !default;\n$dropdown-box-shadow: 0 .5rem 1rem rgba($black, .175) !default;\n\n$dropdown-link-color: $gray-900 !default;\n$dropdown-link-hover-color: darken($gray-900, 5%) !default;\n$dropdown-link-hover-bg: $gray-100 !default;\n\n$dropdown-link-active-color: $component-active-color !default;\n$dropdown-link-active-bg: $component-active-bg !default;\n\n$dropdown-link-disabled-color: $gray-600 !default;\n\n$dropdown-item-padding-y: .25rem !default;\n$dropdown-item-padding-x: 1.5rem !default;\n\n$dropdown-header-color: $gray-600 !default;\n\n\n// Pagination\n\n$pagination-padding-y: .5rem !default;\n$pagination-padding-x: .75rem !default;\n$pagination-padding-y-sm: .25rem !default;\n$pagination-padding-x-sm: .5rem !default;\n$pagination-padding-y-lg: .75rem !default;\n$pagination-padding-x-lg: 1.5rem !default;\n$pagination-line-height: 1.25 !default;\n\n$pagination-color: $link-color !default;\n$pagination-bg: $white !default;\n$pagination-border-width: $border-width !default;\n$pagination-border-color: $gray-300 !default;\n\n$pagination-focus-box-shadow: $input-btn-focus-box-shadow !default;\n$pagination-focus-outline: 0 !default;\n\n$pagination-hover-color: $link-hover-color !default;\n$pagination-hover-bg: $gray-200 !default;\n$pagination-hover-border-color: $gray-300 !default;\n\n$pagination-active-color: $component-active-color !default;\n$pagination-active-bg: $component-active-bg !default;\n$pagination-active-border-color: $pagination-active-bg !default;\n\n$pagination-disabled-color: $gray-600 !default;\n$pagination-disabled-bg: $white !default;\n$pagination-disabled-border-color: $gray-300 !default;\n\n\n// Jumbotron\n\n$jumbotron-padding: 2rem !default;\n$jumbotron-color: null !default;\n$jumbotron-bg: $gray-200 !default;\n\n\n// Cards\n\n$card-spacer-y: .75rem !default;\n$card-spacer-x: 1.25rem !default;\n$card-border-width: $border-width !default;\n$card-border-radius: $border-radius !default;\n$card-border-color: rgba($black, .125) !default;\n$card-inner-border-radius: subtract($card-border-radius, $card-border-width) !default;\n$card-cap-bg: rgba($black, .03) !default;\n$card-cap-color: null !default;\n$card-height: null !default;\n$card-color: null !default;\n$card-bg: $white !default;\n\n$card-img-overlay-padding: 1.25rem !default;\n\n$card-group-margin: $grid-gutter-width / 2 !default;\n$card-deck-margin: $card-group-margin !default;\n\n$card-columns-count: 3 !default;\n$card-columns-gap: 1.25rem !default;\n$card-columns-margin: $card-spacer-y !default;\n\n\n// Tooltips\n\n$tooltip-font-size: $font-size-sm !default;\n$tooltip-max-width: 200px !default;\n$tooltip-color: $white !default;\n$tooltip-bg: $black !default;\n$tooltip-border-radius: $border-radius !default;\n$tooltip-opacity: .9 !default;\n$tooltip-padding-y: .25rem !default;\n$tooltip-padding-x: .5rem !default;\n$tooltip-margin: 0 !default;\n\n$tooltip-arrow-width: .8rem !default;\n$tooltip-arrow-height: .4rem !default;\n$tooltip-arrow-color: $tooltip-bg !default;\n\n// Form tooltips must come after regular tooltips\n$form-feedback-tooltip-padding-y: $tooltip-padding-y !default;\n$form-feedback-tooltip-padding-x: $tooltip-padding-x !default;\n$form-feedback-tooltip-font-size: $tooltip-font-size !default;\n$form-feedback-tooltip-line-height: $line-height-base !default;\n$form-feedback-tooltip-opacity: $tooltip-opacity !default;\n$form-feedback-tooltip-border-radius: $tooltip-border-radius !default;\n\n\n// Popovers\n\n$popover-font-size: $font-size-sm !default;\n$popover-bg: $white !default;\n$popover-max-width: 276px !default;\n$popover-border-width: $border-width !default;\n$popover-border-color: rgba($black, .2) !default;\n$popover-border-radius: $border-radius-lg !default;\n$popover-inner-border-radius: subtract($popover-border-radius, $popover-border-width) !default;\n$popover-box-shadow: 0 .25rem .5rem rgba($black, .2) !default;\n\n$popover-header-bg: darken($popover-bg, 3%) !default;\n$popover-header-color: $headings-color !default;\n$popover-header-padding-y: .5rem !default;\n$popover-header-padding-x: .75rem !default;\n\n$popover-body-color: $body-color !default;\n$popover-body-padding-y: $popover-header-padding-y !default;\n$popover-body-padding-x: $popover-header-padding-x !default;\n\n$popover-arrow-width: 1rem !default;\n$popover-arrow-height: .5rem !default;\n$popover-arrow-color: $popover-bg !default;\n\n$popover-arrow-outer-color: fade-in($popover-border-color, .05) !default;\n\n\n// Toasts\n\n$toast-max-width: 350px !default;\n$toast-padding-x: .75rem !default;\n$toast-padding-y: .25rem !default;\n$toast-font-size: .875rem !default;\n$toast-color: null !default;\n$toast-background-color: rgba($white, .85) !default;\n$toast-border-width: 1px !default;\n$toast-border-color: rgba(0, 0, 0, .1) !default;\n$toast-border-radius: .25rem !default;\n$toast-box-shadow: 0 .25rem .75rem rgba($black, .1) !default;\n\n$toast-header-color: $gray-600 !default;\n$toast-header-background-color: rgba($white, .85) !default;\n$toast-header-border-color: rgba(0, 0, 0, .05) !default;\n\n\n// Badges\n\n$badge-font-size: 75% !default;\n$badge-font-weight: $font-weight-bold !default;\n$badge-padding-y: .25em !default;\n$badge-padding-x: .4em !default;\n$badge-border-radius: $border-radius !default;\n\n$badge-transition: $btn-transition !default;\n$badge-focus-width: $input-btn-focus-width !default;\n\n$badge-pill-padding-x: .6em !default;\n// Use a higher than normal value to ensure completely rounded edges when\n// customizing padding or font-size on labels.\n$badge-pill-border-radius: 10rem !default;\n\n\n// Modals\n\n// Padding applied to the modal body\n$modal-inner-padding: 1rem !default;\n\n// Margin between elements in footer, must be lower than or equal to 2 * $modal-inner-padding\n$modal-footer-margin-between: .5rem !default;\n\n$modal-dialog-margin: .5rem !default;\n$modal-dialog-margin-y-sm-up: 1.75rem !default;\n\n$modal-title-line-height: $line-height-base !default;\n\n$modal-content-color: null !default;\n$modal-content-bg: $white !default;\n$modal-content-border-color: rgba($black, .2) !default;\n$modal-content-border-width: $border-width !default;\n$modal-content-border-radius: $border-radius-lg !default;\n$modal-content-inner-border-radius: subtract($modal-content-border-radius, $modal-content-border-width) !default;\n$modal-content-box-shadow-xs: 0 .25rem .5rem rgba($black, .5) !default;\n$modal-content-box-shadow-sm-up: 0 .5rem 1rem rgba($black, .5) !default;\n\n$modal-backdrop-bg: $black !default;\n$modal-backdrop-opacity: .5 !default;\n$modal-header-border-color: $border-color !default;\n$modal-footer-border-color: $modal-header-border-color !default;\n$modal-header-border-width: $modal-content-border-width !default;\n$modal-footer-border-width: $modal-header-border-width !default;\n$modal-header-padding-y: 1rem !default;\n$modal-header-padding-x: 1rem !default;\n$modal-header-padding: $modal-header-padding-y $modal-header-padding-x !default; // Keep this for backwards compatibility\n\n$modal-xl: 1140px !default;\n$modal-lg: 800px !default;\n$modal-md: 500px !default;\n$modal-sm: 300px !default;\n\n$modal-fade-transform: translate(0, -50px) !default;\n$modal-show-transform: none !default;\n$modal-transition: transform .3s ease-out !default;\n$modal-scale-transform: scale(1.02) !default;\n\n\n// Alerts\n//\n// Define alert colors, border radius, and padding.\n\n$alert-padding-y: .75rem !default;\n$alert-padding-x: 1.25rem !default;\n$alert-margin-bottom: 1rem !default;\n$alert-border-radius: $border-radius !default;\n$alert-link-font-weight: $font-weight-bold !default;\n$alert-border-width: $border-width !default;\n\n$alert-bg-level: -10 !default;\n$alert-border-level: -9 !default;\n$alert-color-level: 6 !default;\n\n\n// Progress bars\n\n$progress-height: 1rem !default;\n$progress-font-size: $font-size-base * .75 !default;\n$progress-bg: $gray-200 !default;\n$progress-border-radius: $border-radius !default;\n$progress-box-shadow: inset 0 .1rem .1rem rgba($black, .1) !default;\n$progress-bar-color: $white !default;\n$progress-bar-bg: theme-color(\"primary\") !default;\n$progress-bar-animation-timing: 1s linear infinite !default;\n$progress-bar-transition: width .6s ease !default;\n\n\n// List group\n\n$list-group-color: null !default;\n$list-group-bg: $white !default;\n$list-group-border-color: rgba($black, .125) !default;\n$list-group-border-width: $border-width !default;\n$list-group-border-radius: $border-radius !default;\n\n$list-group-item-padding-y: .75rem !default;\n$list-group-item-padding-x: 1.25rem !default;\n\n$list-group-hover-bg: $gray-100 !default;\n$list-group-active-color: $component-active-color !default;\n$list-group-active-bg: $component-active-bg !default;\n$list-group-active-border-color: $list-group-active-bg !default;\n\n$list-group-disabled-color: $gray-600 !default;\n$list-group-disabled-bg: $list-group-bg !default;\n\n$list-group-action-color: $gray-700 !default;\n$list-group-action-hover-color: $list-group-action-color !default;\n\n$list-group-action-active-color: $body-color !default;\n$list-group-action-active-bg: $gray-200 !default;\n\n\n// Image thumbnails\n\n$thumbnail-padding: .25rem !default;\n$thumbnail-bg: $body-bg !default;\n$thumbnail-border-width: $border-width !default;\n$thumbnail-border-color: $gray-300 !default;\n$thumbnail-border-radius: $border-radius !default;\n$thumbnail-box-shadow: 0 1px 2px rgba($black, .075) !default;\n\n\n// Figures\n\n$figure-caption-font-size: 90% !default;\n$figure-caption-color: $gray-600 !default;\n\n\n// Breadcrumbs\n\n$breadcrumb-font-size: null !default;\n\n$breadcrumb-padding-y: .75rem !default;\n$breadcrumb-padding-x: 1rem !default;\n$breadcrumb-item-padding: .5rem !default;\n\n$breadcrumb-margin-bottom: 1rem !default;\n\n$breadcrumb-bg: $gray-200 !default;\n$breadcrumb-divider-color: $gray-600 !default;\n$breadcrumb-active-color: $gray-600 !default;\n$breadcrumb-divider: quote(\"/\") !default;\n\n$breadcrumb-border-radius: $border-radius !default;\n\n\n// Carousel\n\n$carousel-control-color: $white !default;\n$carousel-control-width: 15% !default;\n$carousel-control-opacity: .5 !default;\n$carousel-control-hover-opacity: .9 !default;\n$carousel-control-transition: opacity .15s ease !default;\n\n$carousel-indicator-width: 30px !default;\n$carousel-indicator-height: 3px !default;\n$carousel-indicator-hit-area-height: 10px !default;\n$carousel-indicator-spacer: 3px !default;\n$carousel-indicator-active-bg: $white !default;\n$carousel-indicator-transition: opacity .6s ease !default;\n\n$carousel-caption-width: 70% !default;\n$carousel-caption-color: $white !default;\n\n$carousel-control-icon-width: 20px !default;\n\n$carousel-control-prev-icon-bg: url(\"data:image/svg+xml,\") !default;\n$carousel-control-next-icon-bg: url(\"data:image/svg+xml,\") !default;\n\n$carousel-transition-duration: .6s !default;\n$carousel-transition: transform $carousel-transition-duration ease-in-out !default; // Define transform transition first if using multiple transitions (e.g., `transform 2s ease, opacity .5s ease-out`)\n\n\n// Spinners\n\n$spinner-width: 2rem !default;\n$spinner-height: $spinner-width !default;\n$spinner-border-width: .25em !default;\n\n$spinner-width-sm: 1rem !default;\n$spinner-height-sm: $spinner-width-sm !default;\n$spinner-border-width-sm: .2em !default;\n\n\n// Close\n\n$close-font-size: $font-size-base * 1.5 !default;\n$close-font-weight: $font-weight-bold !default;\n$close-color: $black !default;\n$close-text-shadow: 0 1px 0 $white !default;\n\n\n// Code\n\n$code-font-size: 87.5% !default;\n$code-color: $pink !default;\n\n$kbd-padding-y: .2rem !default;\n$kbd-padding-x: .4rem !default;\n$kbd-font-size: $code-font-size !default;\n$kbd-color: $white !default;\n$kbd-bg: $gray-900 !default;\n\n$pre-color: $gray-900 !default;\n$pre-scrollable-max-height: 340px !default;\n\n\n// Utilities\n\n$displays: none, inline, inline-block, block, table, table-row, table-cell, flex, inline-flex !default;\n$overflows: auto, hidden !default;\n$positions: static, relative, absolute, fixed, sticky !default;\n\n\n// Printing\n\n$print-page-size: a3 !default;\n$print-body-min-width: map-get($grid-breakpoints, \"lg\") !default;\n","// stylelint-disable property-blacklist, scss/dollar-variable-default\n\n// SCSS RFS mixin\n//\n// Automated font-resizing\n//\n// See https://github.com/twbs/rfs\n\n// Configuration\n\n// Base font size\n$rfs-base-font-size: 1.25rem !default;\n$rfs-font-size-unit: rem !default;\n\n// Breakpoint at where font-size starts decreasing if screen width is smaller\n$rfs-breakpoint: 1200px !default;\n$rfs-breakpoint-unit: px !default;\n\n// Resize font-size based on screen height and width\n$rfs-two-dimensional: false !default;\n\n// Factor of decrease\n$rfs-factor: 10 !default;\n\n@if type-of($rfs-factor) != \"number\" or $rfs-factor <= 1 {\n @error \"`#{$rfs-factor}` is not a valid $rfs-factor, it must be greater than 1.\";\n}\n\n// Generate enable or disable classes. Possibilities: false, \"enable\" or \"disable\"\n$rfs-class: false !default;\n\n// 1 rem = $rfs-rem-value px\n$rfs-rem-value: 16 !default;\n\n// Safari iframe resize bug: https://github.com/twbs/rfs/issues/14\n$rfs-safari-iframe-resize-bug-fix: false !default;\n\n// Disable RFS by setting $enable-responsive-font-sizes to false\n$enable-responsive-font-sizes: true !default;\n\n// Cache $rfs-base-font-size unit\n$rfs-base-font-size-unit: unit($rfs-base-font-size);\n\n// Remove px-unit from $rfs-base-font-size for calculations\n@if $rfs-base-font-size-unit == \"px\" {\n $rfs-base-font-size: $rfs-base-font-size / ($rfs-base-font-size * 0 + 1);\n}\n@else if $rfs-base-font-size-unit == \"rem\" {\n $rfs-base-font-size: $rfs-base-font-size / ($rfs-base-font-size * 0 + 1 / $rfs-rem-value);\n}\n\n// Cache $rfs-breakpoint unit to prevent multiple calls\n$rfs-breakpoint-unit-cache: unit($rfs-breakpoint);\n\n// Remove unit from $rfs-breakpoint for calculations\n@if $rfs-breakpoint-unit-cache == \"px\" {\n $rfs-breakpoint: $rfs-breakpoint / ($rfs-breakpoint * 0 + 1);\n}\n@else if $rfs-breakpoint-unit-cache == \"rem\" or $rfs-breakpoint-unit-cache == \"em\" {\n $rfs-breakpoint: $rfs-breakpoint / ($rfs-breakpoint * 0 + 1 / $rfs-rem-value);\n}\n\n// Responsive font-size mixin\n@mixin rfs($fs, $important: false) {\n // Cache $fs unit\n $fs-unit: if(type-of($fs) == \"number\", unit($fs), false);\n\n // Add !important suffix if needed\n $rfs-suffix: if($important, \" !important\", \"\");\n\n // If $fs isn't a number (like inherit) or $fs has a unit (not px or rem, like 1.5em) or $ is 0, just print the value\n @if not $fs-unit or $fs-unit != \"\" and $fs-unit != \"px\" and $fs-unit != \"rem\" or $fs == 0 {\n font-size: #{$fs}#{$rfs-suffix};\n }\n @else {\n // Variables for storing static and fluid rescaling\n $rfs-static: null;\n $rfs-fluid: null;\n\n // Remove px-unit from $fs for calculations\n @if $fs-unit == \"px\" {\n $fs: $fs / ($fs * 0 + 1);\n }\n @else if $fs-unit == \"rem\" {\n $fs: $fs / ($fs * 0 + 1 / $rfs-rem-value);\n }\n\n // Set default font-size\n @if $rfs-font-size-unit == rem {\n $rfs-static: #{$fs / $rfs-rem-value}rem#{$rfs-suffix};\n }\n @else if $rfs-font-size-unit == px {\n $rfs-static: #{$fs}px#{$rfs-suffix};\n }\n @else {\n @error \"`#{$rfs-font-size-unit}` is not a valid unit for $rfs-font-size-unit. Use `px` or `rem`.\";\n }\n\n // Only add media query if font-size is bigger as the minimum font-size\n // If $rfs-factor == 1, no rescaling will take place\n @if $fs > $rfs-base-font-size and $enable-responsive-font-sizes {\n $min-width: null;\n $variable-unit: null;\n\n // Calculate minimum font-size for given font-size\n $fs-min: $rfs-base-font-size + ($fs - $rfs-base-font-size) / $rfs-factor;\n\n // Calculate difference between given font-size and minimum font-size for given font-size\n $fs-diff: $fs - $fs-min;\n\n // Base font-size formatting\n // No need to check if the unit is valid, because we did that before\n $min-width: if($rfs-font-size-unit == rem, #{$fs-min / $rfs-rem-value}rem, #{$fs-min}px);\n\n // If two-dimensional, use smallest of screen width and height\n $variable-unit: if($rfs-two-dimensional, vmin, vw);\n\n // Calculate the variable width between 0 and $rfs-breakpoint\n $variable-width: #{$fs-diff * 100 / $rfs-breakpoint}#{$variable-unit};\n\n // Set the calculated font-size.\n $rfs-fluid: calc(#{$min-width} + #{$variable-width}) #{$rfs-suffix};\n }\n\n // Rendering\n @if $rfs-fluid == null {\n // Only render static font-size if no fluid font-size is available\n font-size: $rfs-static;\n }\n @else {\n $mq-value: null;\n\n // RFS breakpoint formatting\n @if $rfs-breakpoint-unit == em or $rfs-breakpoint-unit == rem {\n $mq-value: #{$rfs-breakpoint / $rfs-rem-value}#{$rfs-breakpoint-unit};\n }\n @else if $rfs-breakpoint-unit == px {\n $mq-value: #{$rfs-breakpoint}px;\n }\n @else {\n @error \"`#{$rfs-breakpoint-unit}` is not a valid unit for $rfs-breakpoint-unit. Use `px`, `em` or `rem`.\";\n }\n\n @if $rfs-class == \"disable\" {\n // Adding an extra class increases specificity,\n // which prevents the media query to override the font size\n &,\n .disable-responsive-font-size &,\n &.disable-responsive-font-size {\n font-size: $rfs-static;\n }\n }\n @else {\n font-size: $rfs-static;\n }\n\n @if $rfs-two-dimensional {\n @media (max-width: #{$mq-value}), (max-height: #{$mq-value}) {\n @if $rfs-class == \"enable\" {\n .enable-responsive-font-size &,\n &.enable-responsive-font-size {\n font-size: $rfs-fluid;\n }\n }\n @else {\n font-size: $rfs-fluid;\n }\n\n @if $rfs-safari-iframe-resize-bug-fix {\n // stylelint-disable-next-line length-zero-no-unit\n min-width: 0vw;\n }\n }\n }\n @else {\n @media (max-width: #{$mq-value}) {\n @if $rfs-class == \"enable\" {\n .enable-responsive-font-size &,\n &.enable-responsive-font-size {\n font-size: $rfs-fluid;\n }\n }\n @else {\n font-size: $rfs-fluid;\n }\n\n @if $rfs-safari-iframe-resize-bug-fix {\n // stylelint-disable-next-line length-zero-no-unit\n min-width: 0vw;\n }\n }\n }\n }\n }\n}\n\n// The font-size & responsive-font-size mixin uses RFS to rescale font sizes\n@mixin font-size($fs, $important: false) {\n @include rfs($fs, $important);\n}\n\n@mixin responsive-font-size($fs, $important: false) {\n @include rfs($fs, $important);\n}\n","// Hover mixin and `$enable-hover-media-query` are deprecated.\n//\n// Originally added during our alphas and maintained during betas, this mixin was\n// designed to prevent `:hover` stickiness on iOS-an issue where hover styles\n// would persist after initial touch.\n//\n// For backward compatibility, we've kept these mixins and updated them to\n// always return their regular pseudo-classes instead of a shimmed media query.\n//\n// Issue: https://github.com/twbs/bootstrap/issues/25195\n\n@mixin hover() {\n &:hover { @content; }\n}\n\n@mixin hover-focus() {\n &:hover,\n &:focus {\n @content;\n }\n}\n\n@mixin plain-hover-focus() {\n &,\n &:hover,\n &:focus {\n @content;\n }\n}\n\n@mixin hover-focus-active() {\n &:hover,\n &:focus,\n &:active {\n @content;\n }\n}\n"]} \ No newline at end of file diff --git a/css/bootstrap-reboot.min.css b/css/bootstrap-reboot.min.css new file mode 100644 index 000000000..5308df61a --- /dev/null +++ b/css/bootstrap-reboot.min.css @@ -0,0 +1,8 @@ +/*! + * Bootstrap Reboot v4.4.1 (https://getbootstrap.com/) + * Copyright 2011-2019 The Bootstrap Authors + * Copyright 2011-2019 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md) + */*,::after,::before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex="-1"]:focus:not(:focus-visible){outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent}a:hover{color:#0056b3;text-decoration:underline}a:not([href]){color:inherit;text-decoration:none}a:not([href]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg{overflow:hidden;vertical-align:middle}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}select{word-wrap:normal}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important} +/*# sourceMappingURL=bootstrap-reboot.min.css.map */ \ No newline at end of file diff --git a/css/bootstrap-reboot.min.css.map b/css/bootstrap-reboot.min.css.map new file mode 100644 index 000000000..b8551f7c0 --- /dev/null +++ b/css/bootstrap-reboot.min.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../scss/bootstrap-reboot.scss","../../scss/_reboot.scss","dist/css/bootstrap-reboot.css","../../scss/vendor/_rfs.scss","bootstrap-reboot.css","../../scss/mixins/_hover.scss"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Bootstrap Reboot v4.4.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 The Bootstrap Authors\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)\n */\n\n@import \"functions\";\n@import \"variables\";\n@import \"mixins\";\n@import \"reboot\";\n","// stylelint-disable at-rule-no-vendor-prefix, declaration-no-important, selector-no-qualifying-type, property-no-vendor-prefix\n\n// Reboot\n//\n// Normalization of HTML elements, manually forked from Normalize.css to remove\n// styles targeting irrelevant browsers while applying new styles.\n//\n// Normalize is licensed MIT. https://github.com/necolas/normalize.css\n\n\n// Document\n//\n// 1. Change from `box-sizing: content-box` so that `width` is not affected by `padding` or `border`.\n// 2. Change the default font family in all browsers.\n// 3. Correct the line height in all browsers.\n// 4. Prevent adjustments of font size after orientation changes in IE on Windows Phone and in iOS.\n// 5. Change the default tap highlight to be completely transparent in iOS.\n\n*,\n*::before,\n*::after {\n box-sizing: border-box; // 1\n}\n\nhtml {\n font-family: sans-serif; // 2\n line-height: 1.15; // 3\n -webkit-text-size-adjust: 100%; // 4\n -webkit-tap-highlight-color: rgba($black, 0); // 5\n}\n\n// Shim for \"new\" HTML5 structural elements to display correctly (IE10, older browsers)\n// TODO: remove in v5\n// stylelint-disable-next-line selector-list-comma-newline-after\narticle, aside, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block;\n}\n\n// Body\n//\n// 1. Remove the margin in all browsers.\n// 2. As a best practice, apply a default `background-color`.\n// 3. Set an explicit initial text-align value so that we can later use\n// the `inherit` value on things like `` elements.\n\nbody {\n margin: 0; // 1\n font-family: $font-family-base;\n @include font-size($font-size-base);\n font-weight: $font-weight-base;\n line-height: $line-height-base;\n color: $body-color;\n text-align: left; // 3\n background-color: $body-bg; // 2\n}\n\n// Future-proof rule: in browsers that support :focus-visible, suppress the focus outline\n// on elements that programmatically receive focus but wouldn't normally show a visible\n// focus outline. In general, this would mean that the outline is only applied if the\n// interaction that led to the element receiving programmatic focus was a keyboard interaction,\n// or the browser has somehow determined that the user is primarily a keyboard user and/or\n// wants focus outlines to always be presented.\n//\n// See https://developer.mozilla.org/en-US/docs/Web/CSS/:focus-visible\n// and https://developer.paciellogroup.com/blog/2018/03/focus-visible-and-backwards-compatibility/\n[tabindex=\"-1\"]:focus:not(:focus-visible) {\n outline: 0 !important;\n}\n\n\n// Content grouping\n//\n// 1. Add the correct box sizing in Firefox.\n// 2. Show the overflow in Edge and IE.\n\nhr {\n box-sizing: content-box; // 1\n height: 0; // 1\n overflow: visible; // 2\n}\n\n\n//\n// Typography\n//\n\n// Remove top margins from headings\n//\n// By default, `

`-`

` all receive top and bottom margins. We nuke the top\n// margin for easier control within type scales as it avoids margin collapsing.\n// stylelint-disable-next-line selector-list-comma-newline-after\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: $headings-margin-bottom;\n}\n\n// Reset margins on paragraphs\n//\n// Similarly, the top margin on `

`s get reset. However, we also reset the\n// bottom margin to use `rem` units instead of `em`.\np {\n margin-top: 0;\n margin-bottom: $paragraph-margin-bottom;\n}\n\n// Abbreviations\n//\n// 1. Duplicate behavior to the data-* attribute for our tooltip plugin\n// 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n// 3. Add explicit cursor to indicate changed behavior.\n// 4. Remove the bottom border in Firefox 39-.\n// 5. Prevent the text-decoration to be skipped.\n\nabbr[title],\nabbr[data-original-title] { // 1\n text-decoration: underline; // 2\n text-decoration: underline dotted; // 2\n cursor: help; // 3\n border-bottom: 0; // 4\n text-decoration-skip-ink: none; // 5\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: $dt-font-weight;\n}\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0; // Undo browser default\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\nb,\nstrong {\n font-weight: $font-weight-bolder; // Add the correct font weight in Chrome, Edge, and Safari\n}\n\nsmall {\n @include font-size(80%); // Add the correct font size in all browsers\n}\n\n//\n// Prevent `sub` and `sup` elements from affecting the line height in\n// all browsers.\n//\n\nsub,\nsup {\n position: relative;\n @include font-size(75%);\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub { bottom: -.25em; }\nsup { top: -.5em; }\n\n\n//\n// Links\n//\n\na {\n color: $link-color;\n text-decoration: $link-decoration;\n background-color: transparent; // Remove the gray background on active links in IE 10.\n\n @include hover() {\n color: $link-hover-color;\n text-decoration: $link-hover-decoration;\n }\n}\n\n// And undo these styles for placeholder links/named anchors (without href).\n// It would be more straightforward to just use a[href] in previous block, but that\n// causes specificity issues in many other styles that are too complex to fix.\n// See https://github.com/twbs/bootstrap/issues/19402\n\na:not([href]) {\n color: inherit;\n text-decoration: none;\n\n @include hover() {\n color: inherit;\n text-decoration: none;\n }\n}\n\n\n//\n// Code\n//\n\npre,\ncode,\nkbd,\nsamp {\n font-family: $font-family-monospace;\n @include font-size(1em); // Correct the odd `em` font sizing in all browsers.\n}\n\npre {\n // Remove browser default top margin\n margin-top: 0;\n // Reset browser default of `1em` to use `rem`s\n margin-bottom: 1rem;\n // Don't allow content to break outside\n overflow: auto;\n}\n\n\n//\n// Figures\n//\n\nfigure {\n // Apply a consistent margin strategy (matches our type styles).\n margin: 0 0 1rem;\n}\n\n\n//\n// Images and content\n//\n\nimg {\n vertical-align: middle;\n border-style: none; // Remove the border on images inside links in IE 10-.\n}\n\nsvg {\n // Workaround for the SVG overflow bug in IE10/11 is still required.\n // See https://github.com/twbs/bootstrap/issues/26878\n overflow: hidden;\n vertical-align: middle;\n}\n\n\n//\n// Tables\n//\n\ntable {\n border-collapse: collapse; // Prevent double borders\n}\n\ncaption {\n padding-top: $table-cell-padding;\n padding-bottom: $table-cell-padding;\n color: $table-caption-color;\n text-align: left;\n caption-side: bottom;\n}\n\nth {\n // Matches default `` alignment by inheriting from the ``, or the\n // closest parent with a set `text-align`.\n text-align: inherit;\n}\n\n\n//\n// Forms\n//\n\nlabel {\n // Allow labels to use `margin` for spacing.\n display: inline-block;\n margin-bottom: $label-margin-bottom;\n}\n\n// Remove the default `border-radius` that macOS Chrome adds.\n//\n// Details at https://github.com/twbs/bootstrap/issues/24093\nbutton {\n // stylelint-disable-next-line property-blacklist\n border-radius: 0;\n}\n\n// Work around a Firefox/IE bug where the transparent `button` background\n// results in a loss of the default `button` focus styles.\n//\n// Credit: https://github.com/suitcss/base/\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0; // Remove the margin in Firefox and Safari\n font-family: inherit;\n @include font-size(inherit);\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible; // Show the overflow in Edge\n}\n\nbutton,\nselect {\n text-transform: none; // Remove the inheritance of text transform in Firefox\n}\n\n// Remove the inheritance of word-wrap in Safari.\n//\n// Details at https://github.com/twbs/bootstrap/issues/24990\nselect {\n word-wrap: normal;\n}\n\n\n// 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`\n// controls in Android 4.\n// 2. Correct the inability to style clickable types in iOS and Safari.\nbutton,\n[type=\"button\"], // 1\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button; // 2\n}\n\n// Opinionated: add \"hand\" cursor to non-disabled button elements.\n@if $enable-pointer-cursor-for-buttons {\n button,\n [type=\"button\"],\n [type=\"reset\"],\n [type=\"submit\"] {\n &:not(:disabled) {\n cursor: pointer;\n }\n }\n}\n\n// Remove inner border and padding from Firefox, but don't restore the outline like Normalize.\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n box-sizing: border-box; // 1. Add the correct box sizing in IE 10-\n padding: 0; // 2. Remove the padding in IE 10-\n}\n\n\ninput[type=\"date\"],\ninput[type=\"time\"],\ninput[type=\"datetime-local\"],\ninput[type=\"month\"] {\n // Remove the default appearance of temporal inputs to avoid a Mobile Safari\n // bug where setting a custom line-height prevents text from being vertically\n // centered within the input.\n // See https://bugs.webkit.org/show_bug.cgi?id=139848\n // and https://github.com/twbs/bootstrap/issues/11266\n -webkit-appearance: listbox;\n}\n\ntextarea {\n overflow: auto; // Remove the default vertical scrollbar in IE.\n // Textareas should really only resize vertically so they don't break their (horizontal) containers.\n resize: vertical;\n}\n\nfieldset {\n // Browsers set a default `min-width: min-content;` on fieldsets,\n // unlike e.g. `

`s, which have `min-width: 0;` by default.\n // So we reset that to ensure fieldsets behave more like a standard block element.\n // See https://github.com/twbs/bootstrap/issues/12359\n // and https://html.spec.whatwg.org/multipage/#the-fieldset-and-legend-elements\n min-width: 0;\n // Reset the default outline behavior of fieldsets so they don't affect page layout.\n padding: 0;\n margin: 0;\n border: 0;\n}\n\n// 1. Correct the text wrapping in Edge and IE.\n// 2. Correct the color inheritance from `fieldset` elements in IE.\nlegend {\n display: block;\n width: 100%;\n max-width: 100%; // 1\n padding: 0;\n margin-bottom: .5rem;\n @include font-size(1.5rem);\n line-height: inherit;\n color: inherit; // 2\n white-space: normal; // 1\n}\n\nprogress {\n vertical-align: baseline; // Add the correct vertical alignment in Chrome, Firefox, and Opera.\n}\n\n// Correct the cursor style of increment and decrement buttons in Chrome.\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type=\"search\"] {\n // This overrides the extra rounded corners on search inputs in iOS so that our\n // `.form-control` class can properly style them. Note that this cannot simply\n // be added to `.form-control` as it's not specific enough. For details, see\n // https://github.com/twbs/bootstrap/issues/11586.\n outline-offset: -2px; // 2. Correct the outline style in Safari.\n -webkit-appearance: none;\n}\n\n//\n// Remove the inner padding in Chrome and Safari on macOS.\n//\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n//\n// 1. Correct the inability to style clickable types in iOS and Safari.\n// 2. Change font properties to `inherit` in Safari.\n//\n\n::-webkit-file-upload-button {\n font: inherit; // 2\n -webkit-appearance: button; // 1\n}\n\n//\n// Correct element displays\n//\n\noutput {\n display: inline-block;\n}\n\nsummary {\n display: list-item; // Add the correct display in all browsers\n cursor: pointer;\n}\n\ntemplate {\n display: none; // Add the correct display in IE\n}\n\n// Always hide an element with the `hidden` HTML attribute (from PureCSS).\n// Needed for proper display in IE 10-.\n[hidden] {\n display: none !important;\n}\n","/*!\n * Bootstrap Reboot v4.4.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 The Bootstrap Authors\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)\n */\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\nhtml {\n font-family: sans-serif;\n line-height: 1.15;\n -webkit-text-size-adjust: 100%;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n\narticle, aside, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block;\n}\n\nbody {\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #212529;\n text-align: left;\n background-color: #fff;\n}\n\n[tabindex=\"-1\"]:focus:not(:focus-visible) {\n outline: 0 !important;\n}\n\nhr {\n box-sizing: content-box;\n height: 0;\n overflow: visible;\n}\n\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: 0.5rem;\n}\n\np {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nabbr[title],\nabbr[data-original-title] {\n text-decoration: underline;\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n cursor: help;\n border-bottom: 0;\n -webkit-text-decoration-skip-ink: none;\n text-decoration-skip-ink: none;\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: 700;\n}\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0;\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\nb,\nstrong {\n font-weight: bolder;\n}\n\nsmall {\n font-size: 80%;\n}\n\nsub,\nsup {\n position: relative;\n font-size: 75%;\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -.25em;\n}\n\nsup {\n top: -.5em;\n}\n\na {\n color: #007bff;\n text-decoration: none;\n background-color: transparent;\n}\n\na:hover {\n color: #0056b3;\n text-decoration: underline;\n}\n\na:not([href]) {\n color: inherit;\n text-decoration: none;\n}\n\na:not([href]):hover {\n color: inherit;\n text-decoration: none;\n}\n\npre,\ncode,\nkbd,\nsamp {\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n font-size: 1em;\n}\n\npre {\n margin-top: 0;\n margin-bottom: 1rem;\n overflow: auto;\n}\n\nfigure {\n margin: 0 0 1rem;\n}\n\nimg {\n vertical-align: middle;\n border-style: none;\n}\n\nsvg {\n overflow: hidden;\n vertical-align: middle;\n}\n\ntable {\n border-collapse: collapse;\n}\n\ncaption {\n padding-top: 0.75rem;\n padding-bottom: 0.75rem;\n color: #6c757d;\n text-align: left;\n caption-side: bottom;\n}\n\nth {\n text-align: inherit;\n}\n\nlabel {\n display: inline-block;\n margin-bottom: 0.5rem;\n}\n\nbutton {\n border-radius: 0;\n}\n\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible;\n}\n\nbutton,\nselect {\n text-transform: none;\n}\n\nselect {\n word-wrap: normal;\n}\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\nbutton:not(:disabled),\n[type=\"button\"]:not(:disabled),\n[type=\"reset\"]:not(:disabled),\n[type=\"submit\"]:not(:disabled) {\n cursor: pointer;\n}\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n box-sizing: border-box;\n padding: 0;\n}\n\ninput[type=\"date\"],\ninput[type=\"time\"],\ninput[type=\"datetime-local\"],\ninput[type=\"month\"] {\n -webkit-appearance: listbox;\n}\n\ntextarea {\n overflow: auto;\n resize: vertical;\n}\n\nfieldset {\n min-width: 0;\n padding: 0;\n margin: 0;\n border: 0;\n}\n\nlegend {\n display: block;\n width: 100%;\n max-width: 100%;\n padding: 0;\n margin-bottom: .5rem;\n font-size: 1.5rem;\n line-height: inherit;\n color: inherit;\n white-space: normal;\n}\n\nprogress {\n vertical-align: baseline;\n}\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type=\"search\"] {\n outline-offset: -2px;\n -webkit-appearance: none;\n}\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n::-webkit-file-upload-button {\n font: inherit;\n -webkit-appearance: button;\n}\n\noutput {\n display: inline-block;\n}\n\nsummary {\n display: list-item;\n cursor: pointer;\n}\n\ntemplate {\n display: none;\n}\n\n[hidden] {\n display: none !important;\n}\n/*# sourceMappingURL=bootstrap-reboot.css.map */","// stylelint-disable property-blacklist, scss/dollar-variable-default\n\n// SCSS RFS mixin\n//\n// Automated font-resizing\n//\n// See https://github.com/twbs/rfs\n\n// Configuration\n\n// Base font size\n$rfs-base-font-size: 1.25rem !default;\n$rfs-font-size-unit: rem !default;\n\n// Breakpoint at where font-size starts decreasing if screen width is smaller\n$rfs-breakpoint: 1200px !default;\n$rfs-breakpoint-unit: px !default;\n\n// Resize font-size based on screen height and width\n$rfs-two-dimensional: false !default;\n\n// Factor of decrease\n$rfs-factor: 10 !default;\n\n@if type-of($rfs-factor) != \"number\" or $rfs-factor <= 1 {\n @error \"`#{$rfs-factor}` is not a valid $rfs-factor, it must be greater than 1.\";\n}\n\n// Generate enable or disable classes. Possibilities: false, \"enable\" or \"disable\"\n$rfs-class: false !default;\n\n// 1 rem = $rfs-rem-value px\n$rfs-rem-value: 16 !default;\n\n// Safari iframe resize bug: https://github.com/twbs/rfs/issues/14\n$rfs-safari-iframe-resize-bug-fix: false !default;\n\n// Disable RFS by setting $enable-responsive-font-sizes to false\n$enable-responsive-font-sizes: true !default;\n\n// Cache $rfs-base-font-size unit\n$rfs-base-font-size-unit: unit($rfs-base-font-size);\n\n// Remove px-unit from $rfs-base-font-size for calculations\n@if $rfs-base-font-size-unit == \"px\" {\n $rfs-base-font-size: $rfs-base-font-size / ($rfs-base-font-size * 0 + 1);\n}\n@else if $rfs-base-font-size-unit == \"rem\" {\n $rfs-base-font-size: $rfs-base-font-size / ($rfs-base-font-size * 0 + 1 / $rfs-rem-value);\n}\n\n// Cache $rfs-breakpoint unit to prevent multiple calls\n$rfs-breakpoint-unit-cache: unit($rfs-breakpoint);\n\n// Remove unit from $rfs-breakpoint for calculations\n@if $rfs-breakpoint-unit-cache == \"px\" {\n $rfs-breakpoint: $rfs-breakpoint / ($rfs-breakpoint * 0 + 1);\n}\n@else if $rfs-breakpoint-unit-cache == \"rem\" or $rfs-breakpoint-unit-cache == \"em\" {\n $rfs-breakpoint: $rfs-breakpoint / ($rfs-breakpoint * 0 + 1 / $rfs-rem-value);\n}\n\n// Responsive font-size mixin\n@mixin rfs($fs, $important: false) {\n // Cache $fs unit\n $fs-unit: if(type-of($fs) == \"number\", unit($fs), false);\n\n // Add !important suffix if needed\n $rfs-suffix: if($important, \" !important\", \"\");\n\n // If $fs isn't a number (like inherit) or $fs has a unit (not px or rem, like 1.5em) or $ is 0, just print the value\n @if not $fs-unit or $fs-unit != \"\" and $fs-unit != \"px\" and $fs-unit != \"rem\" or $fs == 0 {\n font-size: #{$fs}#{$rfs-suffix};\n }\n @else {\n // Variables for storing static and fluid rescaling\n $rfs-static: null;\n $rfs-fluid: null;\n\n // Remove px-unit from $fs for calculations\n @if $fs-unit == \"px\" {\n $fs: $fs / ($fs * 0 + 1);\n }\n @else if $fs-unit == \"rem\" {\n $fs: $fs / ($fs * 0 + 1 / $rfs-rem-value);\n }\n\n // Set default font-size\n @if $rfs-font-size-unit == rem {\n $rfs-static: #{$fs / $rfs-rem-value}rem#{$rfs-suffix};\n }\n @else if $rfs-font-size-unit == px {\n $rfs-static: #{$fs}px#{$rfs-suffix};\n }\n @else {\n @error \"`#{$rfs-font-size-unit}` is not a valid unit for $rfs-font-size-unit. Use `px` or `rem`.\";\n }\n\n // Only add media query if font-size is bigger as the minimum font-size\n // If $rfs-factor == 1, no rescaling will take place\n @if $fs > $rfs-base-font-size and $enable-responsive-font-sizes {\n $min-width: null;\n $variable-unit: null;\n\n // Calculate minimum font-size for given font-size\n $fs-min: $rfs-base-font-size + ($fs - $rfs-base-font-size) / $rfs-factor;\n\n // Calculate difference between given font-size and minimum font-size for given font-size\n $fs-diff: $fs - $fs-min;\n\n // Base font-size formatting\n // No need to check if the unit is valid, because we did that before\n $min-width: if($rfs-font-size-unit == rem, #{$fs-min / $rfs-rem-value}rem, #{$fs-min}px);\n\n // If two-dimensional, use smallest of screen width and height\n $variable-unit: if($rfs-two-dimensional, vmin, vw);\n\n // Calculate the variable width between 0 and $rfs-breakpoint\n $variable-width: #{$fs-diff * 100 / $rfs-breakpoint}#{$variable-unit};\n\n // Set the calculated font-size.\n $rfs-fluid: calc(#{$min-width} + #{$variable-width}) #{$rfs-suffix};\n }\n\n // Rendering\n @if $rfs-fluid == null {\n // Only render static font-size if no fluid font-size is available\n font-size: $rfs-static;\n }\n @else {\n $mq-value: null;\n\n // RFS breakpoint formatting\n @if $rfs-breakpoint-unit == em or $rfs-breakpoint-unit == rem {\n $mq-value: #{$rfs-breakpoint / $rfs-rem-value}#{$rfs-breakpoint-unit};\n }\n @else if $rfs-breakpoint-unit == px {\n $mq-value: #{$rfs-breakpoint}px;\n }\n @else {\n @error \"`#{$rfs-breakpoint-unit}` is not a valid unit for $rfs-breakpoint-unit. Use `px`, `em` or `rem`.\";\n }\n\n @if $rfs-class == \"disable\" {\n // Adding an extra class increases specificity,\n // which prevents the media query to override the font size\n &,\n .disable-responsive-font-size &,\n &.disable-responsive-font-size {\n font-size: $rfs-static;\n }\n }\n @else {\n font-size: $rfs-static;\n }\n\n @if $rfs-two-dimensional {\n @media (max-width: #{$mq-value}), (max-height: #{$mq-value}) {\n @if $rfs-class == \"enable\" {\n .enable-responsive-font-size &,\n &.enable-responsive-font-size {\n font-size: $rfs-fluid;\n }\n }\n @else {\n font-size: $rfs-fluid;\n }\n\n @if $rfs-safari-iframe-resize-bug-fix {\n // stylelint-disable-next-line length-zero-no-unit\n min-width: 0vw;\n }\n }\n }\n @else {\n @media (max-width: #{$mq-value}) {\n @if $rfs-class == \"enable\" {\n .enable-responsive-font-size &,\n &.enable-responsive-font-size {\n font-size: $rfs-fluid;\n }\n }\n @else {\n font-size: $rfs-fluid;\n }\n\n @if $rfs-safari-iframe-resize-bug-fix {\n // stylelint-disable-next-line length-zero-no-unit\n min-width: 0vw;\n }\n }\n }\n }\n }\n}\n\n// The font-size & responsive-font-size mixin uses RFS to rescale font sizes\n@mixin font-size($fs, $important: false) {\n @include rfs($fs, $important);\n}\n\n@mixin responsive-font-size($fs, $important: false) {\n @include rfs($fs, $important);\n}\n","/*!\n * Bootstrap Reboot v4.4.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 The Bootstrap Authors\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)\n */\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\nhtml {\n font-family: sans-serif;\n line-height: 1.15;\n -webkit-text-size-adjust: 100%;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n\narticle, aside, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block;\n}\n\nbody {\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #212529;\n text-align: left;\n background-color: #fff;\n}\n\n[tabindex=\"-1\"]:focus:not(:focus-visible) {\n outline: 0 !important;\n}\n\nhr {\n box-sizing: content-box;\n height: 0;\n overflow: visible;\n}\n\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: 0.5rem;\n}\n\np {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nabbr[title],\nabbr[data-original-title] {\n text-decoration: underline;\n text-decoration: underline dotted;\n cursor: help;\n border-bottom: 0;\n text-decoration-skip-ink: none;\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: 700;\n}\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0;\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\nb,\nstrong {\n font-weight: bolder;\n}\n\nsmall {\n font-size: 80%;\n}\n\nsub,\nsup {\n position: relative;\n font-size: 75%;\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -.25em;\n}\n\nsup {\n top: -.5em;\n}\n\na {\n color: #007bff;\n text-decoration: none;\n background-color: transparent;\n}\n\na:hover {\n color: #0056b3;\n text-decoration: underline;\n}\n\na:not([href]) {\n color: inherit;\n text-decoration: none;\n}\n\na:not([href]):hover {\n color: inherit;\n text-decoration: none;\n}\n\npre,\ncode,\nkbd,\nsamp {\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n font-size: 1em;\n}\n\npre {\n margin-top: 0;\n margin-bottom: 1rem;\n overflow: auto;\n}\n\nfigure {\n margin: 0 0 1rem;\n}\n\nimg {\n vertical-align: middle;\n border-style: none;\n}\n\nsvg {\n overflow: hidden;\n vertical-align: middle;\n}\n\ntable {\n border-collapse: collapse;\n}\n\ncaption {\n padding-top: 0.75rem;\n padding-bottom: 0.75rem;\n color: #6c757d;\n text-align: left;\n caption-side: bottom;\n}\n\nth {\n text-align: inherit;\n}\n\nlabel {\n display: inline-block;\n margin-bottom: 0.5rem;\n}\n\nbutton {\n border-radius: 0;\n}\n\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible;\n}\n\nbutton,\nselect {\n text-transform: none;\n}\n\nselect {\n word-wrap: normal;\n}\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\nbutton:not(:disabled),\n[type=\"button\"]:not(:disabled),\n[type=\"reset\"]:not(:disabled),\n[type=\"submit\"]:not(:disabled) {\n cursor: pointer;\n}\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n box-sizing: border-box;\n padding: 0;\n}\n\ninput[type=\"date\"],\ninput[type=\"time\"],\ninput[type=\"datetime-local\"],\ninput[type=\"month\"] {\n -webkit-appearance: listbox;\n}\n\ntextarea {\n overflow: auto;\n resize: vertical;\n}\n\nfieldset {\n min-width: 0;\n padding: 0;\n margin: 0;\n border: 0;\n}\n\nlegend {\n display: block;\n width: 100%;\n max-width: 100%;\n padding: 0;\n margin-bottom: .5rem;\n font-size: 1.5rem;\n line-height: inherit;\n color: inherit;\n white-space: normal;\n}\n\nprogress {\n vertical-align: baseline;\n}\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type=\"search\"] {\n outline-offset: -2px;\n -webkit-appearance: none;\n}\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n::-webkit-file-upload-button {\n font: inherit;\n -webkit-appearance: button;\n}\n\noutput {\n display: inline-block;\n}\n\nsummary {\n display: list-item;\n cursor: pointer;\n}\n\ntemplate {\n display: none;\n}\n\n[hidden] {\n display: none !important;\n}\n\n/*# sourceMappingURL=bootstrap-reboot.css.map */","// Hover mixin and `$enable-hover-media-query` are deprecated.\n//\n// Originally added during our alphas and maintained during betas, this mixin was\n// designed to prevent `:hover` stickiness on iOS-an issue where hover styles\n// would persist after initial touch.\n//\n// For backward compatibility, we've kept these mixins and updated them to\n// always return their regular pseudo-classes instead of a shimmed media query.\n//\n// Issue: https://github.com/twbs/bootstrap/issues/25195\n\n@mixin hover() {\n &:hover { @content; }\n}\n\n@mixin hover-focus() {\n &:hover,\n &:focus {\n @content;\n }\n}\n\n@mixin plain-hover-focus() {\n &,\n &:hover,\n &:focus {\n @content;\n }\n}\n\n@mixin hover-focus-active() {\n &:hover,\n &:focus,\n &:active {\n @content;\n }\n}\n"]} \ No newline at end of file diff --git a/css/bootstrap.css b/css/bootstrap.css new file mode 100644 index 000000000..8eac957a5 --- /dev/null +++ b/css/bootstrap.css @@ -0,0 +1,10224 @@ +/*! + * Bootstrap v4.4.1 (https://getbootstrap.com/) + * Copyright 2011-2019 The Bootstrap Authors + * Copyright 2011-2019 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + */ +:root { + --blue: #007bff; + --indigo: #6610f2; + --purple: #6f42c1; + --pink: #e83e8c; + --red: #dc3545; + --orange: #fd7e14; + --yellow: #ffc107; + --green: #28a745; + --teal: #20c997; + --cyan: #17a2b8; + --white: #fff; + --gray: #6c757d; + --gray-dark: #343a40; + --primary: #007bff; + --secondary: #6c757d; + --success: #28a745; + --info: #17a2b8; + --warning: #ffc107; + --danger: #dc3545; + --light: #f8f9fa; + --dark: #343a40; + --breakpoint-xs: 0; + --breakpoint-sm: 576px; + --breakpoint-md: 768px; + --breakpoint-lg: 992px; + --breakpoint-xl: 1200px; + --font-family-sans-serif: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; + --font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; +} + +*, +*::before, +*::after { + box-sizing: border-box; +} + +html { + font-family: sans-serif; + line-height: 1.15; + -webkit-text-size-adjust: 100%; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); +} + +article, aside, figcaption, figure, footer, header, hgroup, main, nav, section { + display: block; +} + +body { + margin: 0; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; + font-size: 1rem; + font-weight: 400; + line-height: 1.5; + color: #212529; + text-align: left; + background-color: #fff; +} + +[tabindex="-1"]:focus:not(:focus-visible) { + outline: 0 !important; +} + +hr { + box-sizing: content-box; + height: 0; + overflow: visible; +} + +h1, h2, h3, h4, h5, h6 { + margin-top: 0; + margin-bottom: 0.5rem; +} + +p { + margin-top: 0; + margin-bottom: 1rem; +} + +abbr[title], +abbr[data-original-title] { + text-decoration: underline; + -webkit-text-decoration: underline dotted; + text-decoration: underline dotted; + cursor: help; + border-bottom: 0; + -webkit-text-decoration-skip-ink: none; + text-decoration-skip-ink: none; +} + +address { + margin-bottom: 1rem; + font-style: normal; + line-height: inherit; +} + +ol, +ul, +dl { + margin-top: 0; + margin-bottom: 1rem; +} + +ol ol, +ul ul, +ol ul, +ul ol { + margin-bottom: 0; +} + +dt { + font-weight: 700; +} + +dd { + margin-bottom: .5rem; + margin-left: 0; +} + +blockquote { + margin: 0 0 1rem; +} + +b, +strong { + font-weight: bolder; +} + +small { + font-size: 80%; +} + +sub, +sup { + position: relative; + font-size: 75%; + line-height: 0; + vertical-align: baseline; +} + +sub { + bottom: -.25em; +} + +sup { + top: -.5em; +} + +a { + color: #007bff; + text-decoration: none; + background-color: transparent; +} + +a:hover { + color: #0056b3; + text-decoration: underline; +} + +a:not([href]) { + color: inherit; + text-decoration: none; +} + +a:not([href]):hover { + color: inherit; + text-decoration: none; +} + +pre, +code, +kbd, +samp { + font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; + font-size: 1em; +} + +pre { + margin-top: 0; + margin-bottom: 1rem; + overflow: auto; +} + +figure { + margin: 0 0 1rem; +} + +img { + vertical-align: middle; + border-style: none; +} + +svg { + overflow: hidden; + vertical-align: middle; +} + +table { + border-collapse: collapse; +} + +caption { + padding-top: 0.75rem; + padding-bottom: 0.75rem; + color: #6c757d; + text-align: left; + caption-side: bottom; +} + +th { + text-align: inherit; +} + +label { + display: inline-block; + margin-bottom: 0.5rem; +} + +button { + border-radius: 0; +} + +button:focus { + outline: 1px dotted; + outline: 5px auto -webkit-focus-ring-color; +} + +input, +button, +select, +optgroup, +textarea { + margin: 0; + font-family: inherit; + font-size: inherit; + line-height: inherit; +} + +button, +input { + overflow: visible; +} + +button, +select { + text-transform: none; +} + +select { + word-wrap: normal; +} + +button, +[type="button"], +[type="reset"], +[type="submit"] { + -webkit-appearance: button; +} + +button:not(:disabled), +[type="button"]:not(:disabled), +[type="reset"]:not(:disabled), +[type="submit"]:not(:disabled) { + cursor: pointer; +} + +button::-moz-focus-inner, +[type="button"]::-moz-focus-inner, +[type="reset"]::-moz-focus-inner, +[type="submit"]::-moz-focus-inner { + padding: 0; + border-style: none; +} + +input[type="radio"], +input[type="checkbox"] { + box-sizing: border-box; + padding: 0; +} + +input[type="date"], +input[type="time"], +input[type="datetime-local"], +input[type="month"] { + -webkit-appearance: listbox; +} + +textarea { + overflow: auto; + resize: vertical; +} + +fieldset { + min-width: 0; + padding: 0; + margin: 0; + border: 0; +} + +legend { + display: block; + width: 100%; + max-width: 100%; + padding: 0; + margin-bottom: .5rem; + font-size: 1.5rem; + line-height: inherit; + color: inherit; + white-space: normal; +} + +progress { + vertical-align: baseline; +} + +[type="number"]::-webkit-inner-spin-button, +[type="number"]::-webkit-outer-spin-button { + height: auto; +} + +[type="search"] { + outline-offset: -2px; + -webkit-appearance: none; +} + +[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} + +::-webkit-file-upload-button { + font: inherit; + -webkit-appearance: button; +} + +output { + display: inline-block; +} + +summary { + display: list-item; + cursor: pointer; +} + +template { + display: none; +} + +[hidden] { + display: none !important; +} + +h1, h2, h3, h4, h5, h6, +.h1, .h2, .h3, .h4, .h5, .h6 { + margin-bottom: 0.5rem; + font-weight: 500; + line-height: 1.2; +} + +h1, .h1 { + font-size: 2.5rem; +} + +h2, .h2 { + font-size: 2rem; +} + +h3, .h3 { + font-size: 1.75rem; +} + +h4, .h4 { + font-size: 1.5rem; +} + +h5, .h5 { + font-size: 1.25rem; +} + +h6, .h6 { + font-size: 1rem; +} + +.lead { + font-size: 1.25rem; + font-weight: 300; +} + +.display-1 { + font-size: 6rem; + font-weight: 300; + line-height: 1.2; +} + +.display-2 { + font-size: 5.5rem; + font-weight: 300; + line-height: 1.2; +} + +.display-3 { + font-size: 4.5rem; + font-weight: 300; + line-height: 1.2; +} + +.display-4 { + font-size: 3.5rem; + font-weight: 300; + line-height: 1.2; +} + +hr { + margin-top: 1rem; + margin-bottom: 1rem; + border: 0; + border-top: 1px solid rgba(0, 0, 0, 0.1); +} + +small, +.small { + font-size: 80%; + font-weight: 400; +} + +mark, +.mark { + padding: 0.2em; + background-color: #fcf8e3; +} + +.list-unstyled { + padding-left: 0; + list-style: none; +} + +.list-inline { + padding-left: 0; + list-style: none; +} + +.list-inline-item { + display: inline-block; +} + +.list-inline-item:not(:last-child) { + margin-right: 0.5rem; +} + +.initialism { + font-size: 90%; + text-transform: uppercase; +} + +.blockquote { + margin-bottom: 1rem; + font-size: 1.25rem; +} + +.blockquote-footer { + display: block; + font-size: 80%; + color: #6c757d; +} + +.blockquote-footer::before { + content: "\2014\00A0"; +} + +.img-fluid { + max-width: 100%; + height: auto; +} + +.img-thumbnail { + padding: 0.25rem; + background-color: #fff; + border: 1px solid #dee2e6; + border-radius: 0.25rem; + max-width: 100%; + height: auto; +} + +.figure { + display: inline-block; +} + +.figure-img { + margin-bottom: 0.5rem; + line-height: 1; +} + +.figure-caption { + font-size: 90%; + color: #6c757d; +} + +code { + font-size: 87.5%; + color: #e83e8c; + word-wrap: break-word; +} + +a > code { + color: inherit; +} + +kbd { + padding: 0.2rem 0.4rem; + font-size: 87.5%; + color: #fff; + background-color: #212529; + border-radius: 0.2rem; +} + +kbd kbd { + padding: 0; + font-size: 100%; + font-weight: 700; +} + +pre { + display: block; + font-size: 87.5%; + color: #212529; +} + +pre code { + font-size: inherit; + color: inherit; + word-break: normal; +} + +.pre-scrollable { + max-height: 340px; + overflow-y: scroll; +} + +.container { + width: 100%; + padding-right: 15px; + padding-left: 15px; + margin-right: auto; + margin-left: auto; +} + +@media (min-width: 576px) { + .container { + max-width: 540px; + } +} + +@media (min-width: 768px) { + .container { + max-width: 720px; + } +} + +@media (min-width: 992px) { + .container { + max-width: 960px; + } +} + +@media (min-width: 1200px) { + .container { + max-width: 1140px; + } +} + +.container-fluid, .container-sm, .container-md, .container-lg, .container-xl { + width: 100%; + padding-right: 15px; + padding-left: 15px; + margin-right: auto; + margin-left: auto; +} + +@media (min-width: 576px) { + .container, .container-sm { + max-width: 540px; + } +} + +@media (min-width: 768px) { + .container, .container-sm, .container-md { + max-width: 720px; + } +} + +@media (min-width: 992px) { + .container, .container-sm, .container-md, .container-lg { + max-width: 960px; + } +} + +@media (min-width: 1200px) { + .container, .container-sm, .container-md, .container-lg, .container-xl { + max-width: 1140px; + } +} + +.row { + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + margin-right: -15px; + margin-left: -15px; +} + +.no-gutters { + margin-right: 0; + margin-left: 0; +} + +.no-gutters > .col, +.no-gutters > [class*="col-"] { + padding-right: 0; + padding-left: 0; +} + +.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col, +.col-auto, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm, +.col-sm-auto, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md, +.col-md-auto, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg, +.col-lg-auto, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl, +.col-xl-auto { + position: relative; + width: 100%; + padding-right: 15px; + padding-left: 15px; +} + +.col { + -ms-flex-preferred-size: 0; + flex-basis: 0; + -ms-flex-positive: 1; + flex-grow: 1; + max-width: 100%; +} + +.row-cols-1 > * { + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; +} + +.row-cols-2 > * { + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50%; +} + +.row-cols-3 > * { + -ms-flex: 0 0 33.333333%; + flex: 0 0 33.333333%; + max-width: 33.333333%; +} + +.row-cols-4 > * { + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25%; +} + +.row-cols-5 > * { + -ms-flex: 0 0 20%; + flex: 0 0 20%; + max-width: 20%; +} + +.row-cols-6 > * { + -ms-flex: 0 0 16.666667%; + flex: 0 0 16.666667%; + max-width: 16.666667%; +} + +.col-auto { + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: auto; + max-width: 100%; +} + +.col-1 { + -ms-flex: 0 0 8.333333%; + flex: 0 0 8.333333%; + max-width: 8.333333%; +} + +.col-2 { + -ms-flex: 0 0 16.666667%; + flex: 0 0 16.666667%; + max-width: 16.666667%; +} + +.col-3 { + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25%; +} + +.col-4 { + -ms-flex: 0 0 33.333333%; + flex: 0 0 33.333333%; + max-width: 33.333333%; +} + +.col-5 { + -ms-flex: 0 0 41.666667%; + flex: 0 0 41.666667%; + max-width: 41.666667%; +} + +.col-6 { + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50%; +} + +.col-7 { + -ms-flex: 0 0 58.333333%; + flex: 0 0 58.333333%; + max-width: 58.333333%; +} + +.col-8 { + -ms-flex: 0 0 66.666667%; + flex: 0 0 66.666667%; + max-width: 66.666667%; +} + +.col-9 { + -ms-flex: 0 0 75%; + flex: 0 0 75%; + max-width: 75%; +} + +.col-10 { + -ms-flex: 0 0 83.333333%; + flex: 0 0 83.333333%; + max-width: 83.333333%; +} + +.col-11 { + -ms-flex: 0 0 91.666667%; + flex: 0 0 91.666667%; + max-width: 91.666667%; +} + +.col-12 { + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; +} + +.order-first { + -ms-flex-order: -1; + order: -1; +} + +.order-last { + -ms-flex-order: 13; + order: 13; +} + +.order-0 { + -ms-flex-order: 0; + order: 0; +} + +.order-1 { + -ms-flex-order: 1; + order: 1; +} + +.order-2 { + -ms-flex-order: 2; + order: 2; +} + +.order-3 { + -ms-flex-order: 3; + order: 3; +} + +.order-4 { + -ms-flex-order: 4; + order: 4; +} + +.order-5 { + -ms-flex-order: 5; + order: 5; +} + +.order-6 { + -ms-flex-order: 6; + order: 6; +} + +.order-7 { + -ms-flex-order: 7; + order: 7; +} + +.order-8 { + -ms-flex-order: 8; + order: 8; +} + +.order-9 { + -ms-flex-order: 9; + order: 9; +} + +.order-10 { + -ms-flex-order: 10; + order: 10; +} + +.order-11 { + -ms-flex-order: 11; + order: 11; +} + +.order-12 { + -ms-flex-order: 12; + order: 12; +} + +.offset-1 { + margin-left: 8.333333%; +} + +.offset-2 { + margin-left: 16.666667%; +} + +.offset-3 { + margin-left: 25%; +} + +.offset-4 { + margin-left: 33.333333%; +} + +.offset-5 { + margin-left: 41.666667%; +} + +.offset-6 { + margin-left: 50%; +} + +.offset-7 { + margin-left: 58.333333%; +} + +.offset-8 { + margin-left: 66.666667%; +} + +.offset-9 { + margin-left: 75%; +} + +.offset-10 { + margin-left: 83.333333%; +} + +.offset-11 { + margin-left: 91.666667%; +} + +@media (min-width: 576px) { + .col-sm { + -ms-flex-preferred-size: 0; + flex-basis: 0; + -ms-flex-positive: 1; + flex-grow: 1; + max-width: 100%; + } + .row-cols-sm-1 > * { + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; + } + .row-cols-sm-2 > * { + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50%; + } + .row-cols-sm-3 > * { + -ms-flex: 0 0 33.333333%; + flex: 0 0 33.333333%; + max-width: 33.333333%; + } + .row-cols-sm-4 > * { + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25%; + } + .row-cols-sm-5 > * { + -ms-flex: 0 0 20%; + flex: 0 0 20%; + max-width: 20%; + } + .row-cols-sm-6 > * { + -ms-flex: 0 0 16.666667%; + flex: 0 0 16.666667%; + max-width: 16.666667%; + } + .col-sm-auto { + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: auto; + max-width: 100%; + } + .col-sm-1 { + -ms-flex: 0 0 8.333333%; + flex: 0 0 8.333333%; + max-width: 8.333333%; + } + .col-sm-2 { + -ms-flex: 0 0 16.666667%; + flex: 0 0 16.666667%; + max-width: 16.666667%; + } + .col-sm-3 { + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25%; + } + .col-sm-4 { + -ms-flex: 0 0 33.333333%; + flex: 0 0 33.333333%; + max-width: 33.333333%; + } + .col-sm-5 { + -ms-flex: 0 0 41.666667%; + flex: 0 0 41.666667%; + max-width: 41.666667%; + } + .col-sm-6 { + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50%; + } + .col-sm-7 { + -ms-flex: 0 0 58.333333%; + flex: 0 0 58.333333%; + max-width: 58.333333%; + } + .col-sm-8 { + -ms-flex: 0 0 66.666667%; + flex: 0 0 66.666667%; + max-width: 66.666667%; + } + .col-sm-9 { + -ms-flex: 0 0 75%; + flex: 0 0 75%; + max-width: 75%; + } + .col-sm-10 { + -ms-flex: 0 0 83.333333%; + flex: 0 0 83.333333%; + max-width: 83.333333%; + } + .col-sm-11 { + -ms-flex: 0 0 91.666667%; + flex: 0 0 91.666667%; + max-width: 91.666667%; + } + .col-sm-12 { + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; + } + .order-sm-first { + -ms-flex-order: -1; + order: -1; + } + .order-sm-last { + -ms-flex-order: 13; + order: 13; + } + .order-sm-0 { + -ms-flex-order: 0; + order: 0; + } + .order-sm-1 { + -ms-flex-order: 1; + order: 1; + } + .order-sm-2 { + -ms-flex-order: 2; + order: 2; + } + .order-sm-3 { + -ms-flex-order: 3; + order: 3; + } + .order-sm-4 { + -ms-flex-order: 4; + order: 4; + } + .order-sm-5 { + -ms-flex-order: 5; + order: 5; + } + .order-sm-6 { + -ms-flex-order: 6; + order: 6; + } + .order-sm-7 { + -ms-flex-order: 7; + order: 7; + } + .order-sm-8 { + -ms-flex-order: 8; + order: 8; + } + .order-sm-9 { + -ms-flex-order: 9; + order: 9; + } + .order-sm-10 { + -ms-flex-order: 10; + order: 10; + } + .order-sm-11 { + -ms-flex-order: 11; + order: 11; + } + .order-sm-12 { + -ms-flex-order: 12; + order: 12; + } + .offset-sm-0 { + margin-left: 0; + } + .offset-sm-1 { + margin-left: 8.333333%; + } + .offset-sm-2 { + margin-left: 16.666667%; + } + .offset-sm-3 { + margin-left: 25%; + } + .offset-sm-4 { + margin-left: 33.333333%; + } + .offset-sm-5 { + margin-left: 41.666667%; + } + .offset-sm-6 { + margin-left: 50%; + } + .offset-sm-7 { + margin-left: 58.333333%; + } + .offset-sm-8 { + margin-left: 66.666667%; + } + .offset-sm-9 { + margin-left: 75%; + } + .offset-sm-10 { + margin-left: 83.333333%; + } + .offset-sm-11 { + margin-left: 91.666667%; + } +} + +@media (min-width: 768px) { + .col-md { + -ms-flex-preferred-size: 0; + flex-basis: 0; + -ms-flex-positive: 1; + flex-grow: 1; + max-width: 100%; + } + .row-cols-md-1 > * { + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; + } + .row-cols-md-2 > * { + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50%; + } + .row-cols-md-3 > * { + -ms-flex: 0 0 33.333333%; + flex: 0 0 33.333333%; + max-width: 33.333333%; + } + .row-cols-md-4 > * { + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25%; + } + .row-cols-md-5 > * { + -ms-flex: 0 0 20%; + flex: 0 0 20%; + max-width: 20%; + } + .row-cols-md-6 > * { + -ms-flex: 0 0 16.666667%; + flex: 0 0 16.666667%; + max-width: 16.666667%; + } + .col-md-auto { + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: auto; + max-width: 100%; + } + .col-md-1 { + -ms-flex: 0 0 8.333333%; + flex: 0 0 8.333333%; + max-width: 8.333333%; + } + .col-md-2 { + -ms-flex: 0 0 16.666667%; + flex: 0 0 16.666667%; + max-width: 16.666667%; + } + .col-md-3 { + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25%; + } + .col-md-4 { + -ms-flex: 0 0 33.333333%; + flex: 0 0 33.333333%; + max-width: 33.333333%; + } + .col-md-5 { + -ms-flex: 0 0 41.666667%; + flex: 0 0 41.666667%; + max-width: 41.666667%; + } + .col-md-6 { + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50%; + } + .col-md-7 { + -ms-flex: 0 0 58.333333%; + flex: 0 0 58.333333%; + max-width: 58.333333%; + } + .col-md-8 { + -ms-flex: 0 0 66.666667%; + flex: 0 0 66.666667%; + max-width: 66.666667%; + } + .col-md-9 { + -ms-flex: 0 0 75%; + flex: 0 0 75%; + max-width: 75%; + } + .col-md-10 { + -ms-flex: 0 0 83.333333%; + flex: 0 0 83.333333%; + max-width: 83.333333%; + } + .col-md-11 { + -ms-flex: 0 0 91.666667%; + flex: 0 0 91.666667%; + max-width: 91.666667%; + } + .col-md-12 { + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; + } + .order-md-first { + -ms-flex-order: -1; + order: -1; + } + .order-md-last { + -ms-flex-order: 13; + order: 13; + } + .order-md-0 { + -ms-flex-order: 0; + order: 0; + } + .order-md-1 { + -ms-flex-order: 1; + order: 1; + } + .order-md-2 { + -ms-flex-order: 2; + order: 2; + } + .order-md-3 { + -ms-flex-order: 3; + order: 3; + } + .order-md-4 { + -ms-flex-order: 4; + order: 4; + } + .order-md-5 { + -ms-flex-order: 5; + order: 5; + } + .order-md-6 { + -ms-flex-order: 6; + order: 6; + } + .order-md-7 { + -ms-flex-order: 7; + order: 7; + } + .order-md-8 { + -ms-flex-order: 8; + order: 8; + } + .order-md-9 { + -ms-flex-order: 9; + order: 9; + } + .order-md-10 { + -ms-flex-order: 10; + order: 10; + } + .order-md-11 { + -ms-flex-order: 11; + order: 11; + } + .order-md-12 { + -ms-flex-order: 12; + order: 12; + } + .offset-md-0 { + margin-left: 0; + } + .offset-md-1 { + margin-left: 8.333333%; + } + .offset-md-2 { + margin-left: 16.666667%; + } + .offset-md-3 { + margin-left: 25%; + } + .offset-md-4 { + margin-left: 33.333333%; + } + .offset-md-5 { + margin-left: 41.666667%; + } + .offset-md-6 { + margin-left: 50%; + } + .offset-md-7 { + margin-left: 58.333333%; + } + .offset-md-8 { + margin-left: 66.666667%; + } + .offset-md-9 { + margin-left: 75%; + } + .offset-md-10 { + margin-left: 83.333333%; + } + .offset-md-11 { + margin-left: 91.666667%; + } +} + +@media (min-width: 992px) { + .col-lg { + -ms-flex-preferred-size: 0; + flex-basis: 0; + -ms-flex-positive: 1; + flex-grow: 1; + max-width: 100%; + } + .row-cols-lg-1 > * { + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; + } + .row-cols-lg-2 > * { + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50%; + } + .row-cols-lg-3 > * { + -ms-flex: 0 0 33.333333%; + flex: 0 0 33.333333%; + max-width: 33.333333%; + } + .row-cols-lg-4 > * { + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25%; + } + .row-cols-lg-5 > * { + -ms-flex: 0 0 20%; + flex: 0 0 20%; + max-width: 20%; + } + .row-cols-lg-6 > * { + -ms-flex: 0 0 16.666667%; + flex: 0 0 16.666667%; + max-width: 16.666667%; + } + .col-lg-auto { + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: auto; + max-width: 100%; + } + .col-lg-1 { + -ms-flex: 0 0 8.333333%; + flex: 0 0 8.333333%; + max-width: 8.333333%; + } + .col-lg-2 { + -ms-flex: 0 0 16.666667%; + flex: 0 0 16.666667%; + max-width: 16.666667%; + } + .col-lg-3 { + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25%; + } + .col-lg-4 { + -ms-flex: 0 0 33.333333%; + flex: 0 0 33.333333%; + max-width: 33.333333%; + } + .col-lg-5 { + -ms-flex: 0 0 41.666667%; + flex: 0 0 41.666667%; + max-width: 41.666667%; + } + .col-lg-6 { + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50%; + } + .col-lg-7 { + -ms-flex: 0 0 58.333333%; + flex: 0 0 58.333333%; + max-width: 58.333333%; + } + .col-lg-8 { + -ms-flex: 0 0 66.666667%; + flex: 0 0 66.666667%; + max-width: 66.666667%; + } + .col-lg-9 { + -ms-flex: 0 0 75%; + flex: 0 0 75%; + max-width: 75%; + } + .col-lg-10 { + -ms-flex: 0 0 83.333333%; + flex: 0 0 83.333333%; + max-width: 83.333333%; + } + .col-lg-11 { + -ms-flex: 0 0 91.666667%; + flex: 0 0 91.666667%; + max-width: 91.666667%; + } + .col-lg-12 { + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; + } + .order-lg-first { + -ms-flex-order: -1; + order: -1; + } + .order-lg-last { + -ms-flex-order: 13; + order: 13; + } + .order-lg-0 { + -ms-flex-order: 0; + order: 0; + } + .order-lg-1 { + -ms-flex-order: 1; + order: 1; + } + .order-lg-2 { + -ms-flex-order: 2; + order: 2; + } + .order-lg-3 { + -ms-flex-order: 3; + order: 3; + } + .order-lg-4 { + -ms-flex-order: 4; + order: 4; + } + .order-lg-5 { + -ms-flex-order: 5; + order: 5; + } + .order-lg-6 { + -ms-flex-order: 6; + order: 6; + } + .order-lg-7 { + -ms-flex-order: 7; + order: 7; + } + .order-lg-8 { + -ms-flex-order: 8; + order: 8; + } + .order-lg-9 { + -ms-flex-order: 9; + order: 9; + } + .order-lg-10 { + -ms-flex-order: 10; + order: 10; + } + .order-lg-11 { + -ms-flex-order: 11; + order: 11; + } + .order-lg-12 { + -ms-flex-order: 12; + order: 12; + } + .offset-lg-0 { + margin-left: 0; + } + .offset-lg-1 { + margin-left: 8.333333%; + } + .offset-lg-2 { + margin-left: 16.666667%; + } + .offset-lg-3 { + margin-left: 25%; + } + .offset-lg-4 { + margin-left: 33.333333%; + } + .offset-lg-5 { + margin-left: 41.666667%; + } + .offset-lg-6 { + margin-left: 50%; + } + .offset-lg-7 { + margin-left: 58.333333%; + } + .offset-lg-8 { + margin-left: 66.666667%; + } + .offset-lg-9 { + margin-left: 75%; + } + .offset-lg-10 { + margin-left: 83.333333%; + } + .offset-lg-11 { + margin-left: 91.666667%; + } +} + +@media (min-width: 1200px) { + .col-xl { + -ms-flex-preferred-size: 0; + flex-basis: 0; + -ms-flex-positive: 1; + flex-grow: 1; + max-width: 100%; + } + .row-cols-xl-1 > * { + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; + } + .row-cols-xl-2 > * { + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50%; + } + .row-cols-xl-3 > * { + -ms-flex: 0 0 33.333333%; + flex: 0 0 33.333333%; + max-width: 33.333333%; + } + .row-cols-xl-4 > * { + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25%; + } + .row-cols-xl-5 > * { + -ms-flex: 0 0 20%; + flex: 0 0 20%; + max-width: 20%; + } + .row-cols-xl-6 > * { + -ms-flex: 0 0 16.666667%; + flex: 0 0 16.666667%; + max-width: 16.666667%; + } + .col-xl-auto { + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: auto; + max-width: 100%; + } + .col-xl-1 { + -ms-flex: 0 0 8.333333%; + flex: 0 0 8.333333%; + max-width: 8.333333%; + } + .col-xl-2 { + -ms-flex: 0 0 16.666667%; + flex: 0 0 16.666667%; + max-width: 16.666667%; + } + .col-xl-3 { + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25%; + } + .col-xl-4 { + -ms-flex: 0 0 33.333333%; + flex: 0 0 33.333333%; + max-width: 33.333333%; + } + .col-xl-5 { + -ms-flex: 0 0 41.666667%; + flex: 0 0 41.666667%; + max-width: 41.666667%; + } + .col-xl-6 { + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50%; + } + .col-xl-7 { + -ms-flex: 0 0 58.333333%; + flex: 0 0 58.333333%; + max-width: 58.333333%; + } + .col-xl-8 { + -ms-flex: 0 0 66.666667%; + flex: 0 0 66.666667%; + max-width: 66.666667%; + } + .col-xl-9 { + -ms-flex: 0 0 75%; + flex: 0 0 75%; + max-width: 75%; + } + .col-xl-10 { + -ms-flex: 0 0 83.333333%; + flex: 0 0 83.333333%; + max-width: 83.333333%; + } + .col-xl-11 { + -ms-flex: 0 0 91.666667%; + flex: 0 0 91.666667%; + max-width: 91.666667%; + } + .col-xl-12 { + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; + } + .order-xl-first { + -ms-flex-order: -1; + order: -1; + } + .order-xl-last { + -ms-flex-order: 13; + order: 13; + } + .order-xl-0 { + -ms-flex-order: 0; + order: 0; + } + .order-xl-1 { + -ms-flex-order: 1; + order: 1; + } + .order-xl-2 { + -ms-flex-order: 2; + order: 2; + } + .order-xl-3 { + -ms-flex-order: 3; + order: 3; + } + .order-xl-4 { + -ms-flex-order: 4; + order: 4; + } + .order-xl-5 { + -ms-flex-order: 5; + order: 5; + } + .order-xl-6 { + -ms-flex-order: 6; + order: 6; + } + .order-xl-7 { + -ms-flex-order: 7; + order: 7; + } + .order-xl-8 { + -ms-flex-order: 8; + order: 8; + } + .order-xl-9 { + -ms-flex-order: 9; + order: 9; + } + .order-xl-10 { + -ms-flex-order: 10; + order: 10; + } + .order-xl-11 { + -ms-flex-order: 11; + order: 11; + } + .order-xl-12 { + -ms-flex-order: 12; + order: 12; + } + .offset-xl-0 { + margin-left: 0; + } + .offset-xl-1 { + margin-left: 8.333333%; + } + .offset-xl-2 { + margin-left: 16.666667%; + } + .offset-xl-3 { + margin-left: 25%; + } + .offset-xl-4 { + margin-left: 33.333333%; + } + .offset-xl-5 { + margin-left: 41.666667%; + } + .offset-xl-6 { + margin-left: 50%; + } + .offset-xl-7 { + margin-left: 58.333333%; + } + .offset-xl-8 { + margin-left: 66.666667%; + } + .offset-xl-9 { + margin-left: 75%; + } + .offset-xl-10 { + margin-left: 83.333333%; + } + .offset-xl-11 { + margin-left: 91.666667%; + } +} + +.table { + width: 100%; + margin-bottom: 1rem; + color: #212529; +} + +.table th, +.table td { + padding: 0.75rem; + vertical-align: top; + border-top: 1px solid #dee2e6; +} + +.table thead th { + vertical-align: bottom; + border-bottom: 2px solid #dee2e6; +} + +.table tbody + tbody { + border-top: 2px solid #dee2e6; +} + +.table-sm th, +.table-sm td { + padding: 0.3rem; +} + +.table-bordered { + border: 1px solid #dee2e6; +} + +.table-bordered th, +.table-bordered td { + border: 1px solid #dee2e6; +} + +.table-bordered thead th, +.table-bordered thead td { + border-bottom-width: 2px; +} + +.table-borderless th, +.table-borderless td, +.table-borderless thead th, +.table-borderless tbody + tbody { + border: 0; +} + +.table-striped tbody tr:nth-of-type(odd) { + background-color: rgba(0, 0, 0, 0.05); +} + +.table-hover tbody tr:hover { + color: #212529; + background-color: rgba(0, 0, 0, 0.075); +} + +.table-primary, +.table-primary > th, +.table-primary > td { + background-color: #b8daff; +} + +.table-primary th, +.table-primary td, +.table-primary thead th, +.table-primary tbody + tbody { + border-color: #7abaff; +} + +.table-hover .table-primary:hover { + background-color: #9fcdff; +} + +.table-hover .table-primary:hover > td, +.table-hover .table-primary:hover > th { + background-color: #9fcdff; +} + +.table-secondary, +.table-secondary > th, +.table-secondary > td { + background-color: #d6d8db; +} + +.table-secondary th, +.table-secondary td, +.table-secondary thead th, +.table-secondary tbody + tbody { + border-color: #b3b7bb; +} + +.table-hover .table-secondary:hover { + background-color: #c8cbcf; +} + +.table-hover .table-secondary:hover > td, +.table-hover .table-secondary:hover > th { + background-color: #c8cbcf; +} + +.table-success, +.table-success > th, +.table-success > td { + background-color: #c3e6cb; +} + +.table-success th, +.table-success td, +.table-success thead th, +.table-success tbody + tbody { + border-color: #8fd19e; +} + +.table-hover .table-success:hover { + background-color: #b1dfbb; +} + +.table-hover .table-success:hover > td, +.table-hover .table-success:hover > th { + background-color: #b1dfbb; +} + +.table-info, +.table-info > th, +.table-info > td { + background-color: #bee5eb; +} + +.table-info th, +.table-info td, +.table-info thead th, +.table-info tbody + tbody { + border-color: #86cfda; +} + +.table-hover .table-info:hover { + background-color: #abdde5; +} + +.table-hover .table-info:hover > td, +.table-hover .table-info:hover > th { + background-color: #abdde5; +} + +.table-warning, +.table-warning > th, +.table-warning > td { + background-color: #ffeeba; +} + +.table-warning th, +.table-warning td, +.table-warning thead th, +.table-warning tbody + tbody { + border-color: #ffdf7e; +} + +.table-hover .table-warning:hover { + background-color: #ffe8a1; +} + +.table-hover .table-warning:hover > td, +.table-hover .table-warning:hover > th { + background-color: #ffe8a1; +} + +.table-danger, +.table-danger > th, +.table-danger > td { + background-color: #f5c6cb; +} + +.table-danger th, +.table-danger td, +.table-danger thead th, +.table-danger tbody + tbody { + border-color: #ed969e; +} + +.table-hover .table-danger:hover { + background-color: #f1b0b7; +} + +.table-hover .table-danger:hover > td, +.table-hover .table-danger:hover > th { + background-color: #f1b0b7; +} + +.table-light, +.table-light > th, +.table-light > td { + background-color: #fdfdfe; +} + +.table-light th, +.table-light td, +.table-light thead th, +.table-light tbody + tbody { + border-color: #fbfcfc; +} + +.table-hover .table-light:hover { + background-color: #ececf6; +} + +.table-hover .table-light:hover > td, +.table-hover .table-light:hover > th { + background-color: #ececf6; +} + +.table-dark, +.table-dark > th, +.table-dark > td { + background-color: #c6c8ca; +} + +.table-dark th, +.table-dark td, +.table-dark thead th, +.table-dark tbody + tbody { + border-color: #95999c; +} + +.table-hover .table-dark:hover { + background-color: #b9bbbe; +} + +.table-hover .table-dark:hover > td, +.table-hover .table-dark:hover > th { + background-color: #b9bbbe; +} + +.table-active, +.table-active > th, +.table-active > td { + background-color: rgba(0, 0, 0, 0.075); +} + +.table-hover .table-active:hover { + background-color: rgba(0, 0, 0, 0.075); +} + +.table-hover .table-active:hover > td, +.table-hover .table-active:hover > th { + background-color: rgba(0, 0, 0, 0.075); +} + +.table .thead-dark th { + color: #fff; + background-color: #343a40; + border-color: #454d55; +} + +.table .thead-light th { + color: #495057; + background-color: #e9ecef; + border-color: #dee2e6; +} + +.table-dark { + color: #fff; + background-color: #343a40; +} + +.table-dark th, +.table-dark td, +.table-dark thead th { + border-color: #454d55; +} + +.table-dark.table-bordered { + border: 0; +} + +.table-dark.table-striped tbody tr:nth-of-type(odd) { + background-color: rgba(255, 255, 255, 0.05); +} + +.table-dark.table-hover tbody tr:hover { + color: #fff; + background-color: rgba(255, 255, 255, 0.075); +} + +@media (max-width: 575.98px) { + .table-responsive-sm { + display: block; + width: 100%; + overflow-x: auto; + -webkit-overflow-scrolling: touch; + } + .table-responsive-sm > .table-bordered { + border: 0; + } +} + +@media (max-width: 767.98px) { + .table-responsive-md { + display: block; + width: 100%; + overflow-x: auto; + -webkit-overflow-scrolling: touch; + } + .table-responsive-md > .table-bordered { + border: 0; + } +} + +@media (max-width: 991.98px) { + .table-responsive-lg { + display: block; + width: 100%; + overflow-x: auto; + -webkit-overflow-scrolling: touch; + } + .table-responsive-lg > .table-bordered { + border: 0; + } +} + +@media (max-width: 1199.98px) { + .table-responsive-xl { + display: block; + width: 100%; + overflow-x: auto; + -webkit-overflow-scrolling: touch; + } + .table-responsive-xl > .table-bordered { + border: 0; + } +} + +.table-responsive { + display: block; + width: 100%; + overflow-x: auto; + -webkit-overflow-scrolling: touch; +} + +.table-responsive > .table-bordered { + border: 0; +} + +.form-control { + display: block; + width: 100%; + height: calc(1.5em + 0.75rem + 2px); + padding: 0.375rem 0.75rem; + font-size: 1rem; + font-weight: 400; + line-height: 1.5; + color: #495057; + background-color: #fff; + background-clip: padding-box; + border: 1px solid #ced4da; + border-radius: 0.25rem; + transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; +} + +@media (prefers-reduced-motion: reduce) { + .form-control { + transition: none; + } +} + +.form-control::-ms-expand { + background-color: transparent; + border: 0; +} + +.form-control:-moz-focusring { + color: transparent; + text-shadow: 0 0 0 #495057; +} + +.form-control:focus { + color: #495057; + background-color: #fff; + border-color: #80bdff; + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25); +} + +.form-control::-webkit-input-placeholder { + color: #6c757d; + opacity: 1; +} + +.form-control::-moz-placeholder { + color: #6c757d; + opacity: 1; +} + +.form-control:-ms-input-placeholder { + color: #6c757d; + opacity: 1; +} + +.form-control::-ms-input-placeholder { + color: #6c757d; + opacity: 1; +} + +.form-control::placeholder { + color: #6c757d; + opacity: 1; +} + +.form-control:disabled, .form-control[readonly] { + background-color: #e9ecef; + opacity: 1; +} + +select.form-control:focus::-ms-value { + color: #495057; + background-color: #fff; +} + +.form-control-file, +.form-control-range { + display: block; + width: 100%; +} + +.col-form-label { + padding-top: calc(0.375rem + 1px); + padding-bottom: calc(0.375rem + 1px); + margin-bottom: 0; + font-size: inherit; + line-height: 1.5; +} + +.col-form-label-lg { + padding-top: calc(0.5rem + 1px); + padding-bottom: calc(0.5rem + 1px); + font-size: 1.25rem; + line-height: 1.5; +} + +.col-form-label-sm { + padding-top: calc(0.25rem + 1px); + padding-bottom: calc(0.25rem + 1px); + font-size: 0.875rem; + line-height: 1.5; +} + +.form-control-plaintext { + display: block; + width: 100%; + padding: 0.375rem 0; + margin-bottom: 0; + font-size: 1rem; + line-height: 1.5; + color: #212529; + background-color: transparent; + border: solid transparent; + border-width: 1px 0; +} + +.form-control-plaintext.form-control-sm, .form-control-plaintext.form-control-lg { + padding-right: 0; + padding-left: 0; +} + +.form-control-sm { + height: calc(1.5em + 0.5rem + 2px); + padding: 0.25rem 0.5rem; + font-size: 0.875rem; + line-height: 1.5; + border-radius: 0.2rem; +} + +.form-control-lg { + height: calc(1.5em + 1rem + 2px); + padding: 0.5rem 1rem; + font-size: 1.25rem; + line-height: 1.5; + border-radius: 0.3rem; +} + +select.form-control[size], select.form-control[multiple] { + height: auto; +} + +textarea.form-control { + height: auto; +} + +.form-group { + margin-bottom: 1rem; +} + +.form-text { + display: block; + margin-top: 0.25rem; +} + +.form-row { + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + margin-right: -5px; + margin-left: -5px; +} + +.form-row > .col, +.form-row > [class*="col-"] { + padding-right: 5px; + padding-left: 5px; +} + +.form-check { + position: relative; + display: block; + padding-left: 1.25rem; +} + +.form-check-input { + position: absolute; + margin-top: 0.3rem; + margin-left: -1.25rem; +} + +.form-check-input[disabled] ~ .form-check-label, +.form-check-input:disabled ~ .form-check-label { + color: #6c757d; +} + +.form-check-label { + margin-bottom: 0; +} + +.form-check-inline { + display: -ms-inline-flexbox; + display: inline-flex; + -ms-flex-align: center; + align-items: center; + padding-left: 0; + margin-right: 0.75rem; +} + +.form-check-inline .form-check-input { + position: static; + margin-top: 0; + margin-right: 0.3125rem; + margin-left: 0; +} + +.valid-feedback { + display: none; + width: 100%; + margin-top: 0.25rem; + font-size: 80%; + color: #28a745; +} + +.valid-tooltip { + position: absolute; + top: 100%; + z-index: 5; + display: none; + max-width: 100%; + padding: 0.25rem 0.5rem; + margin-top: .1rem; + font-size: 0.875rem; + line-height: 1.5; + color: #fff; + background-color: rgba(40, 167, 69, 0.9); + border-radius: 0.25rem; +} + +.was-validated :valid ~ .valid-feedback, +.was-validated :valid ~ .valid-tooltip, +.is-valid ~ .valid-feedback, +.is-valid ~ .valid-tooltip { + display: block; +} + +.was-validated .form-control:valid, .form-control.is-valid { + border-color: #28a745; + padding-right: calc(1.5em + 0.75rem); + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e"); + background-repeat: no-repeat; + background-position: right calc(0.375em + 0.1875rem) center; + background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); +} + +.was-validated .form-control:valid:focus, .form-control.is-valid:focus { + border-color: #28a745; + box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25); +} + +.was-validated textarea.form-control:valid, textarea.form-control.is-valid { + padding-right: calc(1.5em + 0.75rem); + background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem); +} + +.was-validated .custom-select:valid, .custom-select.is-valid { + border-color: #28a745; + padding-right: calc(0.75em + 2.3125rem); + background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right 0.75rem center/8px 10px, url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e") #fff no-repeat center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); +} + +.was-validated .custom-select:valid:focus, .custom-select.is-valid:focus { + border-color: #28a745; + box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25); +} + +.was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label { + color: #28a745; +} + +.was-validated .form-check-input:valid ~ .valid-feedback, +.was-validated .form-check-input:valid ~ .valid-tooltip, .form-check-input.is-valid ~ .valid-feedback, +.form-check-input.is-valid ~ .valid-tooltip { + display: block; +} + +.was-validated .custom-control-input:valid ~ .custom-control-label, .custom-control-input.is-valid ~ .custom-control-label { + color: #28a745; +} + +.was-validated .custom-control-input:valid ~ .custom-control-label::before, .custom-control-input.is-valid ~ .custom-control-label::before { + border-color: #28a745; +} + +.was-validated .custom-control-input:valid:checked ~ .custom-control-label::before, .custom-control-input.is-valid:checked ~ .custom-control-label::before { + border-color: #34ce57; + background-color: #34ce57; +} + +.was-validated .custom-control-input:valid:focus ~ .custom-control-label::before, .custom-control-input.is-valid:focus ~ .custom-control-label::before { + box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25); +} + +.was-validated .custom-control-input:valid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-valid:focus:not(:checked) ~ .custom-control-label::before { + border-color: #28a745; +} + +.was-validated .custom-file-input:valid ~ .custom-file-label, .custom-file-input.is-valid ~ .custom-file-label { + border-color: #28a745; +} + +.was-validated .custom-file-input:valid:focus ~ .custom-file-label, .custom-file-input.is-valid:focus ~ .custom-file-label { + border-color: #28a745; + box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25); +} + +.invalid-feedback { + display: none; + width: 100%; + margin-top: 0.25rem; + font-size: 80%; + color: #dc3545; +} + +.invalid-tooltip { + position: absolute; + top: 100%; + z-index: 5; + display: none; + max-width: 100%; + padding: 0.25rem 0.5rem; + margin-top: .1rem; + font-size: 0.875rem; + line-height: 1.5; + color: #fff; + background-color: rgba(220, 53, 69, 0.9); + border-radius: 0.25rem; +} + +.was-validated :invalid ~ .invalid-feedback, +.was-validated :invalid ~ .invalid-tooltip, +.is-invalid ~ .invalid-feedback, +.is-invalid ~ .invalid-tooltip { + display: block; +} + +.was-validated .form-control:invalid, .form-control.is-invalid { + border-color: #dc3545; + padding-right: calc(1.5em + 0.75rem); + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e"); + background-repeat: no-repeat; + background-position: right calc(0.375em + 0.1875rem) center; + background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); +} + +.was-validated .form-control:invalid:focus, .form-control.is-invalid:focus { + border-color: #dc3545; + box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25); +} + +.was-validated textarea.form-control:invalid, textarea.form-control.is-invalid { + padding-right: calc(1.5em + 0.75rem); + background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem); +} + +.was-validated .custom-select:invalid, .custom-select.is-invalid { + border-color: #dc3545; + padding-right: calc(0.75em + 2.3125rem); + background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right 0.75rem center/8px 10px, url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e") #fff no-repeat center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); +} + +.was-validated .custom-select:invalid:focus, .custom-select.is-invalid:focus { + border-color: #dc3545; + box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25); +} + +.was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label { + color: #dc3545; +} + +.was-validated .form-check-input:invalid ~ .invalid-feedback, +.was-validated .form-check-input:invalid ~ .invalid-tooltip, .form-check-input.is-invalid ~ .invalid-feedback, +.form-check-input.is-invalid ~ .invalid-tooltip { + display: block; +} + +.was-validated .custom-control-input:invalid ~ .custom-control-label, .custom-control-input.is-invalid ~ .custom-control-label { + color: #dc3545; +} + +.was-validated .custom-control-input:invalid ~ .custom-control-label::before, .custom-control-input.is-invalid ~ .custom-control-label::before { + border-color: #dc3545; +} + +.was-validated .custom-control-input:invalid:checked ~ .custom-control-label::before, .custom-control-input.is-invalid:checked ~ .custom-control-label::before { + border-color: #e4606d; + background-color: #e4606d; +} + +.was-validated .custom-control-input:invalid:focus ~ .custom-control-label::before, .custom-control-input.is-invalid:focus ~ .custom-control-label::before { + box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25); +} + +.was-validated .custom-control-input:invalid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-invalid:focus:not(:checked) ~ .custom-control-label::before { + border-color: #dc3545; +} + +.was-validated .custom-file-input:invalid ~ .custom-file-label, .custom-file-input.is-invalid ~ .custom-file-label { + border-color: #dc3545; +} + +.was-validated .custom-file-input:invalid:focus ~ .custom-file-label, .custom-file-input.is-invalid:focus ~ .custom-file-label { + border-color: #dc3545; + box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25); +} + +.form-inline { + display: -ms-flexbox; + display: flex; + -ms-flex-flow: row wrap; + flex-flow: row wrap; + -ms-flex-align: center; + align-items: center; +} + +.form-inline .form-check { + width: 100%; +} + +@media (min-width: 576px) { + .form-inline label { + display: -ms-flexbox; + display: flex; + -ms-flex-align: center; + align-items: center; + -ms-flex-pack: center; + justify-content: center; + margin-bottom: 0; + } + .form-inline .form-group { + display: -ms-flexbox; + display: flex; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + -ms-flex-flow: row wrap; + flex-flow: row wrap; + -ms-flex-align: center; + align-items: center; + margin-bottom: 0; + } + .form-inline .form-control { + display: inline-block; + width: auto; + vertical-align: middle; + } + .form-inline .form-control-plaintext { + display: inline-block; + } + .form-inline .input-group, + .form-inline .custom-select { + width: auto; + } + .form-inline .form-check { + display: -ms-flexbox; + display: flex; + -ms-flex-align: center; + align-items: center; + -ms-flex-pack: center; + justify-content: center; + width: auto; + padding-left: 0; + } + .form-inline .form-check-input { + position: relative; + -ms-flex-negative: 0; + flex-shrink: 0; + margin-top: 0; + margin-right: 0.25rem; + margin-left: 0; + } + .form-inline .custom-control { + -ms-flex-align: center; + align-items: center; + -ms-flex-pack: center; + justify-content: center; + } + .form-inline .custom-control-label { + margin-bottom: 0; + } +} + +.btn { + display: inline-block; + font-weight: 400; + color: #212529; + text-align: center; + vertical-align: middle; + cursor: pointer; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + background-color: transparent; + border: 1px solid transparent; + padding: 0.375rem 0.75rem; + font-size: 1rem; + line-height: 1.5; + border-radius: 0.25rem; + transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; +} + +@media (prefers-reduced-motion: reduce) { + .btn { + transition: none; + } +} + +.btn:hover { + color: #212529; + text-decoration: none; +} + +.btn:focus, .btn.focus { + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25); +} + +.btn.disabled, .btn:disabled { + opacity: 0.65; +} + +a.btn.disabled, +fieldset:disabled a.btn { + pointer-events: none; +} + +.btn-primary { + color: #fff; + background-color: #007bff; + border-color: #007bff; +} + +.btn-primary:hover { + color: #fff; + background-color: #0069d9; + border-color: #0062cc; +} + +.btn-primary:focus, .btn-primary.focus { + color: #fff; + background-color: #0069d9; + border-color: #0062cc; + box-shadow: 0 0 0 0.2rem rgba(38, 143, 255, 0.5); +} + +.btn-primary.disabled, .btn-primary:disabled { + color: #fff; + background-color: #007bff; + border-color: #007bff; +} + +.btn-primary:not(:disabled):not(.disabled):active, .btn-primary:not(:disabled):not(.disabled).active, +.show > .btn-primary.dropdown-toggle { + color: #fff; + background-color: #0062cc; + border-color: #005cbf; +} + +.btn-primary:not(:disabled):not(.disabled):active:focus, .btn-primary:not(:disabled):not(.disabled).active:focus, +.show > .btn-primary.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(38, 143, 255, 0.5); +} + +.btn-secondary { + color: #fff; + background-color: #6c757d; + border-color: #6c757d; +} + +.btn-secondary:hover { + color: #fff; + background-color: #5a6268; + border-color: #545b62; +} + +.btn-secondary:focus, .btn-secondary.focus { + color: #fff; + background-color: #5a6268; + border-color: #545b62; + box-shadow: 0 0 0 0.2rem rgba(130, 138, 145, 0.5); +} + +.btn-secondary.disabled, .btn-secondary:disabled { + color: #fff; + background-color: #6c757d; + border-color: #6c757d; +} + +.btn-secondary:not(:disabled):not(.disabled):active, .btn-secondary:not(:disabled):not(.disabled).active, +.show > .btn-secondary.dropdown-toggle { + color: #fff; + background-color: #545b62; + border-color: #4e555b; +} + +.btn-secondary:not(:disabled):not(.disabled):active:focus, .btn-secondary:not(:disabled):not(.disabled).active:focus, +.show > .btn-secondary.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(130, 138, 145, 0.5); +} + +.btn-success { + color: #fff; + background-color: #28a745; + border-color: #28a745; +} + +.btn-success:hover { + color: #fff; + background-color: #218838; + border-color: #1e7e34; +} + +.btn-success:focus, .btn-success.focus { + color: #fff; + background-color: #218838; + border-color: #1e7e34; + box-shadow: 0 0 0 0.2rem rgba(72, 180, 97, 0.5); +} + +.btn-success.disabled, .btn-success:disabled { + color: #fff; + background-color: #28a745; + border-color: #28a745; +} + +.btn-success:not(:disabled):not(.disabled):active, .btn-success:not(:disabled):not(.disabled).active, +.show > .btn-success.dropdown-toggle { + color: #fff; + background-color: #1e7e34; + border-color: #1c7430; +} + +.btn-success:not(:disabled):not(.disabled):active:focus, .btn-success:not(:disabled):not(.disabled).active:focus, +.show > .btn-success.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(72, 180, 97, 0.5); +} + +.btn-info { + color: #fff; + background-color: #17a2b8; + border-color: #17a2b8; +} + +.btn-info:hover { + color: #fff; + background-color: #138496; + border-color: #117a8b; +} + +.btn-info:focus, .btn-info.focus { + color: #fff; + background-color: #138496; + border-color: #117a8b; + box-shadow: 0 0 0 0.2rem rgba(58, 176, 195, 0.5); +} + +.btn-info.disabled, .btn-info:disabled { + color: #fff; + background-color: #17a2b8; + border-color: #17a2b8; +} + +.btn-info:not(:disabled):not(.disabled):active, .btn-info:not(:disabled):not(.disabled).active, +.show > .btn-info.dropdown-toggle { + color: #fff; + background-color: #117a8b; + border-color: #10707f; +} + +.btn-info:not(:disabled):not(.disabled):active:focus, .btn-info:not(:disabled):not(.disabled).active:focus, +.show > .btn-info.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(58, 176, 195, 0.5); +} + +.btn-warning { + color: #212529; + background-color: #ffc107; + border-color: #ffc107; +} + +.btn-warning:hover { + color: #212529; + background-color: #e0a800; + border-color: #d39e00; +} + +.btn-warning:focus, .btn-warning.focus { + color: #212529; + background-color: #e0a800; + border-color: #d39e00; + box-shadow: 0 0 0 0.2rem rgba(222, 170, 12, 0.5); +} + +.btn-warning.disabled, .btn-warning:disabled { + color: #212529; + background-color: #ffc107; + border-color: #ffc107; +} + +.btn-warning:not(:disabled):not(.disabled):active, .btn-warning:not(:disabled):not(.disabled).active, +.show > .btn-warning.dropdown-toggle { + color: #212529; + background-color: #d39e00; + border-color: #c69500; +} + +.btn-warning:not(:disabled):not(.disabled):active:focus, .btn-warning:not(:disabled):not(.disabled).active:focus, +.show > .btn-warning.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(222, 170, 12, 0.5); +} + +.btn-danger { + color: #fff; + background-color: #dc3545; + border-color: #dc3545; +} + +.btn-danger:hover { + color: #fff; + background-color: #c82333; + border-color: #bd2130; +} + +.btn-danger:focus, .btn-danger.focus { + color: #fff; + background-color: #c82333; + border-color: #bd2130; + box-shadow: 0 0 0 0.2rem rgba(225, 83, 97, 0.5); +} + +.btn-danger.disabled, .btn-danger:disabled { + color: #fff; + background-color: #dc3545; + border-color: #dc3545; +} + +.btn-danger:not(:disabled):not(.disabled):active, .btn-danger:not(:disabled):not(.disabled).active, +.show > .btn-danger.dropdown-toggle { + color: #fff; + background-color: #bd2130; + border-color: #b21f2d; +} + +.btn-danger:not(:disabled):not(.disabled):active:focus, .btn-danger:not(:disabled):not(.disabled).active:focus, +.show > .btn-danger.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(225, 83, 97, 0.5); +} + +.btn-light { + color: #212529; + background-color: #f8f9fa; + border-color: #f8f9fa; +} + +.btn-light:hover { + color: #212529; + background-color: #e2e6ea; + border-color: #dae0e5; +} + +.btn-light:focus, .btn-light.focus { + color: #212529; + background-color: #e2e6ea; + border-color: #dae0e5; + box-shadow: 0 0 0 0.2rem rgba(216, 217, 219, 0.5); +} + +.btn-light.disabled, .btn-light:disabled { + color: #212529; + background-color: #f8f9fa; + border-color: #f8f9fa; +} + +.btn-light:not(:disabled):not(.disabled):active, .btn-light:not(:disabled):not(.disabled).active, +.show > .btn-light.dropdown-toggle { + color: #212529; + background-color: #dae0e5; + border-color: #d3d9df; +} + +.btn-light:not(:disabled):not(.disabled):active:focus, .btn-light:not(:disabled):not(.disabled).active:focus, +.show > .btn-light.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(216, 217, 219, 0.5); +} + +.btn-dark { + color: #fff; + background-color: #343a40; + border-color: #343a40; +} + +.btn-dark:hover { + color: #fff; + background-color: #23272b; + border-color: #1d2124; +} + +.btn-dark:focus, .btn-dark.focus { + color: #fff; + background-color: #23272b; + border-color: #1d2124; + box-shadow: 0 0 0 0.2rem rgba(82, 88, 93, 0.5); +} + +.btn-dark.disabled, .btn-dark:disabled { + color: #fff; + background-color: #343a40; + border-color: #343a40; +} + +.btn-dark:not(:disabled):not(.disabled):active, .btn-dark:not(:disabled):not(.disabled).active, +.show > .btn-dark.dropdown-toggle { + color: #fff; + background-color: #1d2124; + border-color: #171a1d; +} + +.btn-dark:not(:disabled):not(.disabled):active:focus, .btn-dark:not(:disabled):not(.disabled).active:focus, +.show > .btn-dark.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(82, 88, 93, 0.5); +} + +.btn-outline-primary { + color: #007bff; + border-color: #007bff; +} + +.btn-outline-primary:hover { + color: #fff; + background-color: #007bff; + border-color: #007bff; +} + +.btn-outline-primary:focus, .btn-outline-primary.focus { + box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5); +} + +.btn-outline-primary.disabled, .btn-outline-primary:disabled { + color: #007bff; + background-color: transparent; +} + +.btn-outline-primary:not(:disabled):not(.disabled):active, .btn-outline-primary:not(:disabled):not(.disabled).active, +.show > .btn-outline-primary.dropdown-toggle { + color: #fff; + background-color: #007bff; + border-color: #007bff; +} + +.btn-outline-primary:not(:disabled):not(.disabled):active:focus, .btn-outline-primary:not(:disabled):not(.disabled).active:focus, +.show > .btn-outline-primary.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5); +} + +.btn-outline-secondary { + color: #6c757d; + border-color: #6c757d; +} + +.btn-outline-secondary:hover { + color: #fff; + background-color: #6c757d; + border-color: #6c757d; +} + +.btn-outline-secondary:focus, .btn-outline-secondary.focus { + box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5); +} + +.btn-outline-secondary.disabled, .btn-outline-secondary:disabled { + color: #6c757d; + background-color: transparent; +} + +.btn-outline-secondary:not(:disabled):not(.disabled):active, .btn-outline-secondary:not(:disabled):not(.disabled).active, +.show > .btn-outline-secondary.dropdown-toggle { + color: #fff; + background-color: #6c757d; + border-color: #6c757d; +} + +.btn-outline-secondary:not(:disabled):not(.disabled):active:focus, .btn-outline-secondary:not(:disabled):not(.disabled).active:focus, +.show > .btn-outline-secondary.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5); +} + +.btn-outline-success { + color: #28a745; + border-color: #28a745; +} + +.btn-outline-success:hover { + color: #fff; + background-color: #28a745; + border-color: #28a745; +} + +.btn-outline-success:focus, .btn-outline-success.focus { + box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5); +} + +.btn-outline-success.disabled, .btn-outline-success:disabled { + color: #28a745; + background-color: transparent; +} + +.btn-outline-success:not(:disabled):not(.disabled):active, .btn-outline-success:not(:disabled):not(.disabled).active, +.show > .btn-outline-success.dropdown-toggle { + color: #fff; + background-color: #28a745; + border-color: #28a745; +} + +.btn-outline-success:not(:disabled):not(.disabled):active:focus, .btn-outline-success:not(:disabled):not(.disabled).active:focus, +.show > .btn-outline-success.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5); +} + +.btn-outline-info { + color: #17a2b8; + border-color: #17a2b8; +} + +.btn-outline-info:hover { + color: #fff; + background-color: #17a2b8; + border-color: #17a2b8; +} + +.btn-outline-info:focus, .btn-outline-info.focus { + box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5); +} + +.btn-outline-info.disabled, .btn-outline-info:disabled { + color: #17a2b8; + background-color: transparent; +} + +.btn-outline-info:not(:disabled):not(.disabled):active, .btn-outline-info:not(:disabled):not(.disabled).active, +.show > .btn-outline-info.dropdown-toggle { + color: #fff; + background-color: #17a2b8; + border-color: #17a2b8; +} + +.btn-outline-info:not(:disabled):not(.disabled):active:focus, .btn-outline-info:not(:disabled):not(.disabled).active:focus, +.show > .btn-outline-info.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5); +} + +.btn-outline-warning { + color: #ffc107; + border-color: #ffc107; +} + +.btn-outline-warning:hover { + color: #212529; + background-color: #ffc107; + border-color: #ffc107; +} + +.btn-outline-warning:focus, .btn-outline-warning.focus { + box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5); +} + +.btn-outline-warning.disabled, .btn-outline-warning:disabled { + color: #ffc107; + background-color: transparent; +} + +.btn-outline-warning:not(:disabled):not(.disabled):active, .btn-outline-warning:not(:disabled):not(.disabled).active, +.show > .btn-outline-warning.dropdown-toggle { + color: #212529; + background-color: #ffc107; + border-color: #ffc107; +} + +.btn-outline-warning:not(:disabled):not(.disabled):active:focus, .btn-outline-warning:not(:disabled):not(.disabled).active:focus, +.show > .btn-outline-warning.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5); +} + +.btn-outline-danger { + color: #dc3545; + border-color: #dc3545; +} + +.btn-outline-danger:hover { + color: #fff; + background-color: #dc3545; + border-color: #dc3545; +} + +.btn-outline-danger:focus, .btn-outline-danger.focus { + box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5); +} + +.btn-outline-danger.disabled, .btn-outline-danger:disabled { + color: #dc3545; + background-color: transparent; +} + +.btn-outline-danger:not(:disabled):not(.disabled):active, .btn-outline-danger:not(:disabled):not(.disabled).active, +.show > .btn-outline-danger.dropdown-toggle { + color: #fff; + background-color: #dc3545; + border-color: #dc3545; +} + +.btn-outline-danger:not(:disabled):not(.disabled):active:focus, .btn-outline-danger:not(:disabled):not(.disabled).active:focus, +.show > .btn-outline-danger.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5); +} + +.btn-outline-light { + color: #f8f9fa; + border-color: #f8f9fa; +} + +.btn-outline-light:hover { + color: #212529; + background-color: #f8f9fa; + border-color: #f8f9fa; +} + +.btn-outline-light:focus, .btn-outline-light.focus { + box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5); +} + +.btn-outline-light.disabled, .btn-outline-light:disabled { + color: #f8f9fa; + background-color: transparent; +} + +.btn-outline-light:not(:disabled):not(.disabled):active, .btn-outline-light:not(:disabled):not(.disabled).active, +.show > .btn-outline-light.dropdown-toggle { + color: #212529; + background-color: #f8f9fa; + border-color: #f8f9fa; +} + +.btn-outline-light:not(:disabled):not(.disabled):active:focus, .btn-outline-light:not(:disabled):not(.disabled).active:focus, +.show > .btn-outline-light.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5); +} + +.btn-outline-dark { + color: #343a40; + border-color: #343a40; +} + +.btn-outline-dark:hover { + color: #fff; + background-color: #343a40; + border-color: #343a40; +} + +.btn-outline-dark:focus, .btn-outline-dark.focus { + box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5); +} + +.btn-outline-dark.disabled, .btn-outline-dark:disabled { + color: #343a40; + background-color: transparent; +} + +.btn-outline-dark:not(:disabled):not(.disabled):active, .btn-outline-dark:not(:disabled):not(.disabled).active, +.show > .btn-outline-dark.dropdown-toggle { + color: #fff; + background-color: #343a40; + border-color: #343a40; +} + +.btn-outline-dark:not(:disabled):not(.disabled):active:focus, .btn-outline-dark:not(:disabled):not(.disabled).active:focus, +.show > .btn-outline-dark.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5); +} + +.btn-link { + font-weight: 400; + color: #007bff; + text-decoration: none; +} + +.btn-link:hover { + color: #0056b3; + text-decoration: underline; +} + +.btn-link:focus, .btn-link.focus { + text-decoration: underline; + box-shadow: none; +} + +.btn-link:disabled, .btn-link.disabled { + color: #6c757d; + pointer-events: none; +} + +.btn-lg, .btn-group-lg > .btn { + padding: 0.5rem 1rem; + font-size: 1.25rem; + line-height: 1.5; + border-radius: 0.3rem; +} + +.btn-sm, .btn-group-sm > .btn { + padding: 0.25rem 0.5rem; + font-size: 0.875rem; + line-height: 1.5; + border-radius: 0.2rem; +} + +.btn-block { + display: block; + width: 100%; +} + +.btn-block + .btn-block { + margin-top: 0.5rem; +} + +input[type="submit"].btn-block, +input[type="reset"].btn-block, +input[type="button"].btn-block { + width: 100%; +} + +.fade { + transition: opacity 0.15s linear; +} + +@media (prefers-reduced-motion: reduce) { + .fade { + transition: none; + } +} + +.fade:not(.show) { + opacity: 0; +} + +.collapse:not(.show) { + display: none; +} + +.collapsing { + position: relative; + height: 0; + overflow: hidden; + transition: height 0.35s ease; +} + +@media (prefers-reduced-motion: reduce) { + .collapsing { + transition: none; + } +} + +.dropup, +.dropright, +.dropdown, +.dropleft { + position: relative; +} + +.dropdown-toggle { + white-space: nowrap; +} + +.dropdown-toggle::after { + display: inline-block; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0.3em solid; + border-right: 0.3em solid transparent; + border-bottom: 0; + border-left: 0.3em solid transparent; +} + +.dropdown-toggle:empty::after { + margin-left: 0; +} + +.dropdown-menu { + position: absolute; + top: 100%; + left: 0; + z-index: 1000; + display: none; + float: left; + min-width: 10rem; + padding: 0.5rem 0; + margin: 0.125rem 0 0; + font-size: 1rem; + color: #212529; + text-align: left; + list-style: none; + background-color: #fff; + background-clip: padding-box; + border: 1px solid rgba(0, 0, 0, 0.15); + border-radius: 0.25rem; +} + +.dropdown-menu-left { + right: auto; + left: 0; +} + +.dropdown-menu-right { + right: 0; + left: auto; +} + +@media (min-width: 576px) { + .dropdown-menu-sm-left { + right: auto; + left: 0; + } + .dropdown-menu-sm-right { + right: 0; + left: auto; + } +} + +@media (min-width: 768px) { + .dropdown-menu-md-left { + right: auto; + left: 0; + } + .dropdown-menu-md-right { + right: 0; + left: auto; + } +} + +@media (min-width: 992px) { + .dropdown-menu-lg-left { + right: auto; + left: 0; + } + .dropdown-menu-lg-right { + right: 0; + left: auto; + } +} + +@media (min-width: 1200px) { + .dropdown-menu-xl-left { + right: auto; + left: 0; + } + .dropdown-menu-xl-right { + right: 0; + left: auto; + } +} + +.dropup .dropdown-menu { + top: auto; + bottom: 100%; + margin-top: 0; + margin-bottom: 0.125rem; +} + +.dropup .dropdown-toggle::after { + display: inline-block; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0; + border-right: 0.3em solid transparent; + border-bottom: 0.3em solid; + border-left: 0.3em solid transparent; +} + +.dropup .dropdown-toggle:empty::after { + margin-left: 0; +} + +.dropright .dropdown-menu { + top: 0; + right: auto; + left: 100%; + margin-top: 0; + margin-left: 0.125rem; +} + +.dropright .dropdown-toggle::after { + display: inline-block; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0.3em solid transparent; + border-right: 0; + border-bottom: 0.3em solid transparent; + border-left: 0.3em solid; +} + +.dropright .dropdown-toggle:empty::after { + margin-left: 0; +} + +.dropright .dropdown-toggle::after { + vertical-align: 0; +} + +.dropleft .dropdown-menu { + top: 0; + right: 100%; + left: auto; + margin-top: 0; + margin-right: 0.125rem; +} + +.dropleft .dropdown-toggle::after { + display: inline-block; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; +} + +.dropleft .dropdown-toggle::after { + display: none; +} + +.dropleft .dropdown-toggle::before { + display: inline-block; + margin-right: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0.3em solid transparent; + border-right: 0.3em solid; + border-bottom: 0.3em solid transparent; +} + +.dropleft .dropdown-toggle:empty::after { + margin-left: 0; +} + +.dropleft .dropdown-toggle::before { + vertical-align: 0; +} + +.dropdown-menu[x-placement^="top"], .dropdown-menu[x-placement^="right"], .dropdown-menu[x-placement^="bottom"], .dropdown-menu[x-placement^="left"] { + right: auto; + bottom: auto; +} + +.dropdown-divider { + height: 0; + margin: 0.5rem 0; + overflow: hidden; + border-top: 1px solid #e9ecef; +} + +.dropdown-item { + display: block; + width: 100%; + padding: 0.25rem 1.5rem; + clear: both; + font-weight: 400; + color: #212529; + text-align: inherit; + white-space: nowrap; + background-color: transparent; + border: 0; +} + +.dropdown-item:hover, .dropdown-item:focus { + color: #16181b; + text-decoration: none; + background-color: #f8f9fa; +} + +.dropdown-item.active, .dropdown-item:active { + color: #fff; + text-decoration: none; + background-color: #007bff; +} + +.dropdown-item.disabled, .dropdown-item:disabled { + color: #6c757d; + pointer-events: none; + background-color: transparent; +} + +.dropdown-menu.show { + display: block; +} + +.dropdown-header { + display: block; + padding: 0.5rem 1.5rem; + margin-bottom: 0; + font-size: 0.875rem; + color: #6c757d; + white-space: nowrap; +} + +.dropdown-item-text { + display: block; + padding: 0.25rem 1.5rem; + color: #212529; +} + +.btn-group, +.btn-group-vertical { + position: relative; + display: -ms-inline-flexbox; + display: inline-flex; + vertical-align: middle; +} + +.btn-group > .btn, +.btn-group-vertical > .btn { + position: relative; + -ms-flex: 1 1 auto; + flex: 1 1 auto; +} + +.btn-group > .btn:hover, +.btn-group-vertical > .btn:hover { + z-index: 1; +} + +.btn-group > .btn:focus, .btn-group > .btn:active, .btn-group > .btn.active, +.btn-group-vertical > .btn:focus, +.btn-group-vertical > .btn:active, +.btn-group-vertical > .btn.active { + z-index: 1; +} + +.btn-toolbar { + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + -ms-flex-pack: start; + justify-content: flex-start; +} + +.btn-toolbar .input-group { + width: auto; +} + +.btn-group > .btn:not(:first-child), +.btn-group > .btn-group:not(:first-child) { + margin-left: -1px; +} + +.btn-group > .btn:not(:last-child):not(.dropdown-toggle), +.btn-group > .btn-group:not(:last-child) > .btn { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.btn-group > .btn:not(:first-child), +.btn-group > .btn-group:not(:first-child) > .btn { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.dropdown-toggle-split { + padding-right: 0.5625rem; + padding-left: 0.5625rem; +} + +.dropdown-toggle-split::after, +.dropup .dropdown-toggle-split::after, +.dropright .dropdown-toggle-split::after { + margin-left: 0; +} + +.dropleft .dropdown-toggle-split::before { + margin-right: 0; +} + +.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split { + padding-right: 0.375rem; + padding-left: 0.375rem; +} + +.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split { + padding-right: 0.75rem; + padding-left: 0.75rem; +} + +.btn-group-vertical { + -ms-flex-direction: column; + flex-direction: column; + -ms-flex-align: start; + align-items: flex-start; + -ms-flex-pack: center; + justify-content: center; +} + +.btn-group-vertical > .btn, +.btn-group-vertical > .btn-group { + width: 100%; +} + +.btn-group-vertical > .btn:not(:first-child), +.btn-group-vertical > .btn-group:not(:first-child) { + margin-top: -1px; +} + +.btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle), +.btn-group-vertical > .btn-group:not(:last-child) > .btn { + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} + +.btn-group-vertical > .btn:not(:first-child), +.btn-group-vertical > .btn-group:not(:first-child) > .btn { + border-top-left-radius: 0; + border-top-right-radius: 0; +} + +.btn-group-toggle > .btn, +.btn-group-toggle > .btn-group > .btn { + margin-bottom: 0; +} + +.btn-group-toggle > .btn input[type="radio"], +.btn-group-toggle > .btn input[type="checkbox"], +.btn-group-toggle > .btn-group > .btn input[type="radio"], +.btn-group-toggle > .btn-group > .btn input[type="checkbox"] { + position: absolute; + clip: rect(0, 0, 0, 0); + pointer-events: none; +} + +.input-group { + position: relative; + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + -ms-flex-align: stretch; + align-items: stretch; + width: 100%; +} + +.input-group > .form-control, +.input-group > .form-control-plaintext, +.input-group > .custom-select, +.input-group > .custom-file { + position: relative; + -ms-flex: 1 1 0%; + flex: 1 1 0%; + min-width: 0; + margin-bottom: 0; +} + +.input-group > .form-control + .form-control, +.input-group > .form-control + .custom-select, +.input-group > .form-control + .custom-file, +.input-group > .form-control-plaintext + .form-control, +.input-group > .form-control-plaintext + .custom-select, +.input-group > .form-control-plaintext + .custom-file, +.input-group > .custom-select + .form-control, +.input-group > .custom-select + .custom-select, +.input-group > .custom-select + .custom-file, +.input-group > .custom-file + .form-control, +.input-group > .custom-file + .custom-select, +.input-group > .custom-file + .custom-file { + margin-left: -1px; +} + +.input-group > .form-control:focus, +.input-group > .custom-select:focus, +.input-group > .custom-file .custom-file-input:focus ~ .custom-file-label { + z-index: 3; +} + +.input-group > .custom-file .custom-file-input:focus { + z-index: 4; +} + +.input-group > .form-control:not(:last-child), +.input-group > .custom-select:not(:last-child) { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.input-group > .form-control:not(:first-child), +.input-group > .custom-select:not(:first-child) { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.input-group > .custom-file { + display: -ms-flexbox; + display: flex; + -ms-flex-align: center; + align-items: center; +} + +.input-group > .custom-file:not(:last-child) .custom-file-label, +.input-group > .custom-file:not(:last-child) .custom-file-label::after { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.input-group > .custom-file:not(:first-child) .custom-file-label { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.input-group-prepend, +.input-group-append { + display: -ms-flexbox; + display: flex; +} + +.input-group-prepend .btn, +.input-group-append .btn { + position: relative; + z-index: 2; +} + +.input-group-prepend .btn:focus, +.input-group-append .btn:focus { + z-index: 3; +} + +.input-group-prepend .btn + .btn, +.input-group-prepend .btn + .input-group-text, +.input-group-prepend .input-group-text + .input-group-text, +.input-group-prepend .input-group-text + .btn, +.input-group-append .btn + .btn, +.input-group-append .btn + .input-group-text, +.input-group-append .input-group-text + .input-group-text, +.input-group-append .input-group-text + .btn { + margin-left: -1px; +} + +.input-group-prepend { + margin-right: -1px; +} + +.input-group-append { + margin-left: -1px; +} + +.input-group-text { + display: -ms-flexbox; + display: flex; + -ms-flex-align: center; + align-items: center; + padding: 0.375rem 0.75rem; + margin-bottom: 0; + font-size: 1rem; + font-weight: 400; + line-height: 1.5; + color: #495057; + text-align: center; + white-space: nowrap; + background-color: #e9ecef; + border: 1px solid #ced4da; + border-radius: 0.25rem; +} + +.input-group-text input[type="radio"], +.input-group-text input[type="checkbox"] { + margin-top: 0; +} + +.input-group-lg > .form-control:not(textarea), +.input-group-lg > .custom-select { + height: calc(1.5em + 1rem + 2px); +} + +.input-group-lg > .form-control, +.input-group-lg > .custom-select, +.input-group-lg > .input-group-prepend > .input-group-text, +.input-group-lg > .input-group-append > .input-group-text, +.input-group-lg > .input-group-prepend > .btn, +.input-group-lg > .input-group-append > .btn { + padding: 0.5rem 1rem; + font-size: 1.25rem; + line-height: 1.5; + border-radius: 0.3rem; +} + +.input-group-sm > .form-control:not(textarea), +.input-group-sm > .custom-select { + height: calc(1.5em + 0.5rem + 2px); +} + +.input-group-sm > .form-control, +.input-group-sm > .custom-select, +.input-group-sm > .input-group-prepend > .input-group-text, +.input-group-sm > .input-group-append > .input-group-text, +.input-group-sm > .input-group-prepend > .btn, +.input-group-sm > .input-group-append > .btn { + padding: 0.25rem 0.5rem; + font-size: 0.875rem; + line-height: 1.5; + border-radius: 0.2rem; +} + +.input-group-lg > .custom-select, +.input-group-sm > .custom-select { + padding-right: 1.75rem; +} + +.input-group > .input-group-prepend > .btn, +.input-group > .input-group-prepend > .input-group-text, +.input-group > .input-group-append:not(:last-child) > .btn, +.input-group > .input-group-append:not(:last-child) > .input-group-text, +.input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle), +.input-group > .input-group-append:last-child > .input-group-text:not(:last-child) { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.input-group > .input-group-append > .btn, +.input-group > .input-group-append > .input-group-text, +.input-group > .input-group-prepend:not(:first-child) > .btn, +.input-group > .input-group-prepend:not(:first-child) > .input-group-text, +.input-group > .input-group-prepend:first-child > .btn:not(:first-child), +.input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child) { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.custom-control { + position: relative; + display: block; + min-height: 1.5rem; + padding-left: 1.5rem; +} + +.custom-control-inline { + display: -ms-inline-flexbox; + display: inline-flex; + margin-right: 1rem; +} + +.custom-control-input { + position: absolute; + left: 0; + z-index: -1; + width: 1rem; + height: 1.25rem; + opacity: 0; +} + +.custom-control-input:checked ~ .custom-control-label::before { + color: #fff; + border-color: #007bff; + background-color: #007bff; +} + +.custom-control-input:focus ~ .custom-control-label::before { + box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25); +} + +.custom-control-input:focus:not(:checked) ~ .custom-control-label::before { + border-color: #80bdff; +} + +.custom-control-input:not(:disabled):active ~ .custom-control-label::before { + color: #fff; + background-color: #b3d7ff; + border-color: #b3d7ff; +} + +.custom-control-input[disabled] ~ .custom-control-label, .custom-control-input:disabled ~ .custom-control-label { + color: #6c757d; +} + +.custom-control-input[disabled] ~ .custom-control-label::before, .custom-control-input:disabled ~ .custom-control-label::before { + background-color: #e9ecef; +} + +.custom-control-label { + position: relative; + margin-bottom: 0; + vertical-align: top; +} + +.custom-control-label::before { + position: absolute; + top: 0.25rem; + left: -1.5rem; + display: block; + width: 1rem; + height: 1rem; + pointer-events: none; + content: ""; + background-color: #fff; + border: #adb5bd solid 1px; +} + +.custom-control-label::after { + position: absolute; + top: 0.25rem; + left: -1.5rem; + display: block; + width: 1rem; + height: 1rem; + content: ""; + background: no-repeat 50% / 50% 50%; +} + +.custom-checkbox .custom-control-label::before { + border-radius: 0.25rem; +} + +.custom-checkbox .custom-control-input:checked ~ .custom-control-label::after { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3e%3c/svg%3e"); +} + +.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before { + border-color: #007bff; + background-color: #007bff; +} + +.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::after { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e"); +} + +.custom-checkbox .custom-control-input:disabled:checked ~ .custom-control-label::before { + background-color: rgba(0, 123, 255, 0.5); +} + +.custom-checkbox .custom-control-input:disabled:indeterminate ~ .custom-control-label::before { + background-color: rgba(0, 123, 255, 0.5); +} + +.custom-radio .custom-control-label::before { + border-radius: 50%; +} + +.custom-radio .custom-control-input:checked ~ .custom-control-label::after { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e"); +} + +.custom-radio .custom-control-input:disabled:checked ~ .custom-control-label::before { + background-color: rgba(0, 123, 255, 0.5); +} + +.custom-switch { + padding-left: 2.25rem; +} + +.custom-switch .custom-control-label::before { + left: -2.25rem; + width: 1.75rem; + pointer-events: all; + border-radius: 0.5rem; +} + +.custom-switch .custom-control-label::after { + top: calc(0.25rem + 2px); + left: calc(-2.25rem + 2px); + width: calc(1rem - 4px); + height: calc(1rem - 4px); + background-color: #adb5bd; + border-radius: 0.5rem; + transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-transform 0.15s ease-in-out; + transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-transform 0.15s ease-in-out; +} + +@media (prefers-reduced-motion: reduce) { + .custom-switch .custom-control-label::after { + transition: none; + } +} + +.custom-switch .custom-control-input:checked ~ .custom-control-label::after { + background-color: #fff; + -webkit-transform: translateX(0.75rem); + transform: translateX(0.75rem); +} + +.custom-switch .custom-control-input:disabled:checked ~ .custom-control-label::before { + background-color: rgba(0, 123, 255, 0.5); +} + +.custom-select { + display: inline-block; + width: 100%; + height: calc(1.5em + 0.75rem + 2px); + padding: 0.375rem 1.75rem 0.375rem 0.75rem; + font-size: 1rem; + font-weight: 400; + line-height: 1.5; + color: #495057; + vertical-align: middle; + background: #fff url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right 0.75rem center/8px 10px; + border: 1px solid #ced4da; + border-radius: 0.25rem; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; +} + +.custom-select:focus { + border-color: #80bdff; + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25); +} + +.custom-select:focus::-ms-value { + color: #495057; + background-color: #fff; +} + +.custom-select[multiple], .custom-select[size]:not([size="1"]) { + height: auto; + padding-right: 0.75rem; + background-image: none; +} + +.custom-select:disabled { + color: #6c757d; + background-color: #e9ecef; +} + +.custom-select::-ms-expand { + display: none; +} + +.custom-select:-moz-focusring { + color: transparent; + text-shadow: 0 0 0 #495057; +} + +.custom-select-sm { + height: calc(1.5em + 0.5rem + 2px); + padding-top: 0.25rem; + padding-bottom: 0.25rem; + padding-left: 0.5rem; + font-size: 0.875rem; +} + +.custom-select-lg { + height: calc(1.5em + 1rem + 2px); + padding-top: 0.5rem; + padding-bottom: 0.5rem; + padding-left: 1rem; + font-size: 1.25rem; +} + +.custom-file { + position: relative; + display: inline-block; + width: 100%; + height: calc(1.5em + 0.75rem + 2px); + margin-bottom: 0; +} + +.custom-file-input { + position: relative; + z-index: 2; + width: 100%; + height: calc(1.5em + 0.75rem + 2px); + margin: 0; + opacity: 0; +} + +.custom-file-input:focus ~ .custom-file-label { + border-color: #80bdff; + box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25); +} + +.custom-file-input[disabled] ~ .custom-file-label, +.custom-file-input:disabled ~ .custom-file-label { + background-color: #e9ecef; +} + +.custom-file-input:lang(en) ~ .custom-file-label::after { + content: "Browse"; +} + +.custom-file-input ~ .custom-file-label[data-browse]::after { + content: attr(data-browse); +} + +.custom-file-label { + position: absolute; + top: 0; + right: 0; + left: 0; + z-index: 1; + height: calc(1.5em + 0.75rem + 2px); + padding: 0.375rem 0.75rem; + font-weight: 400; + line-height: 1.5; + color: #495057; + background-color: #fff; + border: 1px solid #ced4da; + border-radius: 0.25rem; +} + +.custom-file-label::after { + position: absolute; + top: 0; + right: 0; + bottom: 0; + z-index: 3; + display: block; + height: calc(1.5em + 0.75rem); + padding: 0.375rem 0.75rem; + line-height: 1.5; + color: #495057; + content: "Browse"; + background-color: #e9ecef; + border-left: inherit; + border-radius: 0 0.25rem 0.25rem 0; +} + +.custom-range { + width: 100%; + height: 1.4rem; + padding: 0; + background-color: transparent; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; +} + +.custom-range:focus { + outline: none; +} + +.custom-range:focus::-webkit-slider-thumb { + box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25); +} + +.custom-range:focus::-moz-range-thumb { + box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25); +} + +.custom-range:focus::-ms-thumb { + box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25); +} + +.custom-range::-moz-focus-outer { + border: 0; +} + +.custom-range::-webkit-slider-thumb { + width: 1rem; + height: 1rem; + margin-top: -0.25rem; + background-color: #007bff; + border: 0; + border-radius: 1rem; + -webkit-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + -webkit-appearance: none; + appearance: none; +} + +@media (prefers-reduced-motion: reduce) { + .custom-range::-webkit-slider-thumb { + -webkit-transition: none; + transition: none; + } +} + +.custom-range::-webkit-slider-thumb:active { + background-color: #b3d7ff; +} + +.custom-range::-webkit-slider-runnable-track { + width: 100%; + height: 0.5rem; + color: transparent; + cursor: pointer; + background-color: #dee2e6; + border-color: transparent; + border-radius: 1rem; +} + +.custom-range::-moz-range-thumb { + width: 1rem; + height: 1rem; + background-color: #007bff; + border: 0; + border-radius: 1rem; + -moz-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + -moz-appearance: none; + appearance: none; +} + +@media (prefers-reduced-motion: reduce) { + .custom-range::-moz-range-thumb { + -moz-transition: none; + transition: none; + } +} + +.custom-range::-moz-range-thumb:active { + background-color: #b3d7ff; +} + +.custom-range::-moz-range-track { + width: 100%; + height: 0.5rem; + color: transparent; + cursor: pointer; + background-color: #dee2e6; + border-color: transparent; + border-radius: 1rem; +} + +.custom-range::-ms-thumb { + width: 1rem; + height: 1rem; + margin-top: 0; + margin-right: 0.2rem; + margin-left: 0.2rem; + background-color: #007bff; + border: 0; + border-radius: 1rem; + -ms-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + appearance: none; +} + +@media (prefers-reduced-motion: reduce) { + .custom-range::-ms-thumb { + -ms-transition: none; + transition: none; + } +} + +.custom-range::-ms-thumb:active { + background-color: #b3d7ff; +} + +.custom-range::-ms-track { + width: 100%; + height: 0.5rem; + color: transparent; + cursor: pointer; + background-color: transparent; + border-color: transparent; + border-width: 0.5rem; +} + +.custom-range::-ms-fill-lower { + background-color: #dee2e6; + border-radius: 1rem; +} + +.custom-range::-ms-fill-upper { + margin-right: 15px; + background-color: #dee2e6; + border-radius: 1rem; +} + +.custom-range:disabled::-webkit-slider-thumb { + background-color: #adb5bd; +} + +.custom-range:disabled::-webkit-slider-runnable-track { + cursor: default; +} + +.custom-range:disabled::-moz-range-thumb { + background-color: #adb5bd; +} + +.custom-range:disabled::-moz-range-track { + cursor: default; +} + +.custom-range:disabled::-ms-thumb { + background-color: #adb5bd; +} + +.custom-control-label::before, +.custom-file-label, +.custom-select { + transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; +} + +@media (prefers-reduced-motion: reduce) { + .custom-control-label::before, + .custom-file-label, + .custom-select { + transition: none; + } +} + +.nav { + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + padding-left: 0; + margin-bottom: 0; + list-style: none; +} + +.nav-link { + display: block; + padding: 0.5rem 1rem; +} + +.nav-link:hover, .nav-link:focus { + text-decoration: none; +} + +.nav-link.disabled { + color: #6c757d; + pointer-events: none; + cursor: default; +} + +.nav-tabs { + border-bottom: 1px solid #dee2e6; +} + +.nav-tabs .nav-item { + margin-bottom: -1px; +} + +.nav-tabs .nav-link { + border: 1px solid transparent; + border-top-left-radius: 0.25rem; + border-top-right-radius: 0.25rem; +} + +.nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus { + border-color: #e9ecef #e9ecef #dee2e6; +} + +.nav-tabs .nav-link.disabled { + color: #6c757d; + background-color: transparent; + border-color: transparent; +} + +.nav-tabs .nav-link.active, +.nav-tabs .nav-item.show .nav-link { + color: #495057; + background-color: #fff; + border-color: #dee2e6 #dee2e6 #fff; +} + +.nav-tabs .dropdown-menu { + margin-top: -1px; + border-top-left-radius: 0; + border-top-right-radius: 0; +} + +.nav-pills .nav-link { + border-radius: 0.25rem; +} + +.nav-pills .nav-link.active, +.nav-pills .show > .nav-link { + color: #fff; + background-color: #007bff; +} + +.nav-fill .nav-item { + -ms-flex: 1 1 auto; + flex: 1 1 auto; + text-align: center; +} + +.nav-justified .nav-item { + -ms-flex-preferred-size: 0; + flex-basis: 0; + -ms-flex-positive: 1; + flex-grow: 1; + text-align: center; +} + +.tab-content > .tab-pane { + display: none; +} + +.tab-content > .active { + display: block; +} + +.navbar { + position: relative; + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + -ms-flex-align: center; + align-items: center; + -ms-flex-pack: justify; + justify-content: space-between; + padding: 0.5rem 1rem; +} + +.navbar .container, +.navbar .container-fluid, .navbar .container-sm, .navbar .container-md, .navbar .container-lg, .navbar .container-xl { + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + -ms-flex-align: center; + align-items: center; + -ms-flex-pack: justify; + justify-content: space-between; +} + +.navbar-brand { + display: inline-block; + padding-top: 0.3125rem; + padding-bottom: 0.3125rem; + margin-right: 1rem; + font-size: 1.25rem; + line-height: inherit; + white-space: nowrap; +} + +.navbar-brand:hover, .navbar-brand:focus { + text-decoration: none; +} + +.navbar-nav { + display: -ms-flexbox; + display: flex; + -ms-flex-direction: column; + flex-direction: column; + padding-left: 0; + margin-bottom: 0; + list-style: none; +} + +.navbar-nav .nav-link { + padding-right: 0; + padding-left: 0; +} + +.navbar-nav .dropdown-menu { + position: static; + float: none; +} + +.navbar-text { + display: inline-block; + padding-top: 0.5rem; + padding-bottom: 0.5rem; +} + +.navbar-collapse { + -ms-flex-preferred-size: 100%; + flex-basis: 100%; + -ms-flex-positive: 1; + flex-grow: 1; + -ms-flex-align: center; + align-items: center; +} + +.navbar-toggler { + padding: 0.25rem 0.75rem; + font-size: 1.25rem; + line-height: 1; + background-color: transparent; + border: 1px solid transparent; + border-radius: 0.25rem; +} + +.navbar-toggler:hover, .navbar-toggler:focus { + text-decoration: none; +} + +.navbar-toggler-icon { + display: inline-block; + width: 1.5em; + height: 1.5em; + vertical-align: middle; + content: ""; + background: no-repeat center center; + background-size: 100% 100%; +} + +@media (max-width: 575.98px) { + .navbar-expand-sm > .container, + .navbar-expand-sm > .container-fluid, .navbar-expand-sm > .container-sm, .navbar-expand-sm > .container-md, .navbar-expand-sm > .container-lg, .navbar-expand-sm > .container-xl { + padding-right: 0; + padding-left: 0; + } +} + +@media (min-width: 576px) { + .navbar-expand-sm { + -ms-flex-flow: row nowrap; + flex-flow: row nowrap; + -ms-flex-pack: start; + justify-content: flex-start; + } + .navbar-expand-sm .navbar-nav { + -ms-flex-direction: row; + flex-direction: row; + } + .navbar-expand-sm .navbar-nav .dropdown-menu { + position: absolute; + } + .navbar-expand-sm .navbar-nav .nav-link { + padding-right: 0.5rem; + padding-left: 0.5rem; + } + .navbar-expand-sm > .container, + .navbar-expand-sm > .container-fluid, .navbar-expand-sm > .container-sm, .navbar-expand-sm > .container-md, .navbar-expand-sm > .container-lg, .navbar-expand-sm > .container-xl { + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; + } + .navbar-expand-sm .navbar-collapse { + display: -ms-flexbox !important; + display: flex !important; + -ms-flex-preferred-size: auto; + flex-basis: auto; + } + .navbar-expand-sm .navbar-toggler { + display: none; + } +} + +@media (max-width: 767.98px) { + .navbar-expand-md > .container, + .navbar-expand-md > .container-fluid, .navbar-expand-md > .container-sm, .navbar-expand-md > .container-md, .navbar-expand-md > .container-lg, .navbar-expand-md > .container-xl { + padding-right: 0; + padding-left: 0; + } +} + +@media (min-width: 768px) { + .navbar-expand-md { + -ms-flex-flow: row nowrap; + flex-flow: row nowrap; + -ms-flex-pack: start; + justify-content: flex-start; + } + .navbar-expand-md .navbar-nav { + -ms-flex-direction: row; + flex-direction: row; + } + .navbar-expand-md .navbar-nav .dropdown-menu { + position: absolute; + } + .navbar-expand-md .navbar-nav .nav-link { + padding-right: 0.5rem; + padding-left: 0.5rem; + } + .navbar-expand-md > .container, + .navbar-expand-md > .container-fluid, .navbar-expand-md > .container-sm, .navbar-expand-md > .container-md, .navbar-expand-md > .container-lg, .navbar-expand-md > .container-xl { + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; + } + .navbar-expand-md .navbar-collapse { + display: -ms-flexbox !important; + display: flex !important; + -ms-flex-preferred-size: auto; + flex-basis: auto; + } + .navbar-expand-md .navbar-toggler { + display: none; + } +} + +@media (max-width: 991.98px) { + .navbar-expand-lg > .container, + .navbar-expand-lg > .container-fluid, .navbar-expand-lg > .container-sm, .navbar-expand-lg > .container-md, .navbar-expand-lg > .container-lg, .navbar-expand-lg > .container-xl { + padding-right: 0; + padding-left: 0; + } +} + +@media (min-width: 992px) { + .navbar-expand-lg { + -ms-flex-flow: row nowrap; + flex-flow: row nowrap; + -ms-flex-pack: start; + justify-content: flex-start; + } + .navbar-expand-lg .navbar-nav { + -ms-flex-direction: row; + flex-direction: row; + } + .navbar-expand-lg .navbar-nav .dropdown-menu { + position: absolute; + } + .navbar-expand-lg .navbar-nav .nav-link { + padding-right: 0.5rem; + padding-left: 0.5rem; + } + .navbar-expand-lg > .container, + .navbar-expand-lg > .container-fluid, .navbar-expand-lg > .container-sm, .navbar-expand-lg > .container-md, .navbar-expand-lg > .container-lg, .navbar-expand-lg > .container-xl { + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; + } + .navbar-expand-lg .navbar-collapse { + display: -ms-flexbox !important; + display: flex !important; + -ms-flex-preferred-size: auto; + flex-basis: auto; + } + .navbar-expand-lg .navbar-toggler { + display: none; + } +} + +@media (max-width: 1199.98px) { + .navbar-expand-xl > .container, + .navbar-expand-xl > .container-fluid, .navbar-expand-xl > .container-sm, .navbar-expand-xl > .container-md, .navbar-expand-xl > .container-lg, .navbar-expand-xl > .container-xl { + padding-right: 0; + padding-left: 0; + } +} + +@media (min-width: 1200px) { + .navbar-expand-xl { + -ms-flex-flow: row nowrap; + flex-flow: row nowrap; + -ms-flex-pack: start; + justify-content: flex-start; + } + .navbar-expand-xl .navbar-nav { + -ms-flex-direction: row; + flex-direction: row; + } + .navbar-expand-xl .navbar-nav .dropdown-menu { + position: absolute; + } + .navbar-expand-xl .navbar-nav .nav-link { + padding-right: 0.5rem; + padding-left: 0.5rem; + } + .navbar-expand-xl > .container, + .navbar-expand-xl > .container-fluid, .navbar-expand-xl > .container-sm, .navbar-expand-xl > .container-md, .navbar-expand-xl > .container-lg, .navbar-expand-xl > .container-xl { + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; + } + .navbar-expand-xl .navbar-collapse { + display: -ms-flexbox !important; + display: flex !important; + -ms-flex-preferred-size: auto; + flex-basis: auto; + } + .navbar-expand-xl .navbar-toggler { + display: none; + } +} + +.navbar-expand { + -ms-flex-flow: row nowrap; + flex-flow: row nowrap; + -ms-flex-pack: start; + justify-content: flex-start; +} + +.navbar-expand > .container, +.navbar-expand > .container-fluid, .navbar-expand > .container-sm, .navbar-expand > .container-md, .navbar-expand > .container-lg, .navbar-expand > .container-xl { + padding-right: 0; + padding-left: 0; +} + +.navbar-expand .navbar-nav { + -ms-flex-direction: row; + flex-direction: row; +} + +.navbar-expand .navbar-nav .dropdown-menu { + position: absolute; +} + +.navbar-expand .navbar-nav .nav-link { + padding-right: 0.5rem; + padding-left: 0.5rem; +} + +.navbar-expand > .container, +.navbar-expand > .container-fluid, .navbar-expand > .container-sm, .navbar-expand > .container-md, .navbar-expand > .container-lg, .navbar-expand > .container-xl { + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; +} + +.navbar-expand .navbar-collapse { + display: -ms-flexbox !important; + display: flex !important; + -ms-flex-preferred-size: auto; + flex-basis: auto; +} + +.navbar-expand .navbar-toggler { + display: none; +} + +.navbar-light .navbar-brand { + color: rgba(0, 0, 0, 0.9); +} + +.navbar-light .navbar-brand:hover, .navbar-light .navbar-brand:focus { + color: rgba(0, 0, 0, 0.9); +} + +.navbar-light .navbar-nav .nav-link { + color: rgba(0, 0, 0, 0.5); +} + +.navbar-light .navbar-nav .nav-link:hover, .navbar-light .navbar-nav .nav-link:focus { + color: rgba(0, 0, 0, 0.7); +} + +.navbar-light .navbar-nav .nav-link.disabled { + color: rgba(0, 0, 0, 0.3); +} + +.navbar-light .navbar-nav .show > .nav-link, +.navbar-light .navbar-nav .active > .nav-link, +.navbar-light .navbar-nav .nav-link.show, +.navbar-light .navbar-nav .nav-link.active { + color: rgba(0, 0, 0, 0.9); +} + +.navbar-light .navbar-toggler { + color: rgba(0, 0, 0, 0.5); + border-color: rgba(0, 0, 0, 0.1); +} + +.navbar-light .navbar-toggler-icon { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(0, 0, 0, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); +} + +.navbar-light .navbar-text { + color: rgba(0, 0, 0, 0.5); +} + +.navbar-light .navbar-text a { + color: rgba(0, 0, 0, 0.9); +} + +.navbar-light .navbar-text a:hover, .navbar-light .navbar-text a:focus { + color: rgba(0, 0, 0, 0.9); +} + +.navbar-dark .navbar-brand { + color: #fff; +} + +.navbar-dark .navbar-brand:hover, .navbar-dark .navbar-brand:focus { + color: #fff; +} + +.navbar-dark .navbar-nav .nav-link { + color: rgba(255, 255, 255, 0.5); +} + +.navbar-dark .navbar-nav .nav-link:hover, .navbar-dark .navbar-nav .nav-link:focus { + color: rgba(255, 255, 255, 0.75); +} + +.navbar-dark .navbar-nav .nav-link.disabled { + color: rgba(255, 255, 255, 0.25); +} + +.navbar-dark .navbar-nav .show > .nav-link, +.navbar-dark .navbar-nav .active > .nav-link, +.navbar-dark .navbar-nav .nav-link.show, +.navbar-dark .navbar-nav .nav-link.active { + color: #fff; +} + +.navbar-dark .navbar-toggler { + color: rgba(255, 255, 255, 0.5); + border-color: rgba(255, 255, 255, 0.1); +} + +.navbar-dark .navbar-toggler-icon { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(255, 255, 255, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); +} + +.navbar-dark .navbar-text { + color: rgba(255, 255, 255, 0.5); +} + +.navbar-dark .navbar-text a { + color: #fff; +} + +.navbar-dark .navbar-text a:hover, .navbar-dark .navbar-text a:focus { + color: #fff; +} + +.card { + position: relative; + display: -ms-flexbox; + display: flex; + -ms-flex-direction: column; + flex-direction: column; + min-width: 0; + word-wrap: break-word; + background-color: #fff; + background-clip: border-box; + border: 1px solid rgba(0, 0, 0, 0.125); + border-radius: 0.25rem; +} + +.card > hr { + margin-right: 0; + margin-left: 0; +} + +.card > .list-group:first-child .list-group-item:first-child { + border-top-left-radius: 0.25rem; + border-top-right-radius: 0.25rem; +} + +.card > .list-group:last-child .list-group-item:last-child { + border-bottom-right-radius: 0.25rem; + border-bottom-left-radius: 0.25rem; +} + +.card-body { + -ms-flex: 1 1 auto; + flex: 1 1 auto; + min-height: 1px; + padding: 1.25rem; +} + +.card-title { + margin-bottom: 0.75rem; +} + +.card-subtitle { + margin-top: -0.375rem; + margin-bottom: 0; +} + +.card-text:last-child { + margin-bottom: 0; +} + +.card-link:hover { + text-decoration: none; +} + +.card-link + .card-link { + margin-left: 1.25rem; +} + +.card-header { + padding: 0.75rem 1.25rem; + margin-bottom: 0; + background-color: rgba(0, 0, 0, 0.03); + border-bottom: 1px solid rgba(0, 0, 0, 0.125); +} + +.card-header:first-child { + border-radius: calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0; +} + +.card-header + .list-group .list-group-item:first-child { + border-top: 0; +} + +.card-footer { + padding: 0.75rem 1.25rem; + background-color: rgba(0, 0, 0, 0.03); + border-top: 1px solid rgba(0, 0, 0, 0.125); +} + +.card-footer:last-child { + border-radius: 0 0 calc(0.25rem - 1px) calc(0.25rem - 1px); +} + +.card-header-tabs { + margin-right: -0.625rem; + margin-bottom: -0.75rem; + margin-left: -0.625rem; + border-bottom: 0; +} + +.card-header-pills { + margin-right: -0.625rem; + margin-left: -0.625rem; +} + +.card-img-overlay { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + padding: 1.25rem; +} + +.card-img, +.card-img-top, +.card-img-bottom { + -ms-flex-negative: 0; + flex-shrink: 0; + width: 100%; +} + +.card-img, +.card-img-top { + border-top-left-radius: calc(0.25rem - 1px); + border-top-right-radius: calc(0.25rem - 1px); +} + +.card-img, +.card-img-bottom { + border-bottom-right-radius: calc(0.25rem - 1px); + border-bottom-left-radius: calc(0.25rem - 1px); +} + +.card-deck .card { + margin-bottom: 15px; +} + +@media (min-width: 576px) { + .card-deck { + display: -ms-flexbox; + display: flex; + -ms-flex-flow: row wrap; + flex-flow: row wrap; + margin-right: -15px; + margin-left: -15px; + } + .card-deck .card { + -ms-flex: 1 0 0%; + flex: 1 0 0%; + margin-right: 15px; + margin-bottom: 0; + margin-left: 15px; + } +} + +.card-group > .card { + margin-bottom: 15px; +} + +@media (min-width: 576px) { + .card-group { + display: -ms-flexbox; + display: flex; + -ms-flex-flow: row wrap; + flex-flow: row wrap; + } + .card-group > .card { + -ms-flex: 1 0 0%; + flex: 1 0 0%; + margin-bottom: 0; + } + .card-group > .card + .card { + margin-left: 0; + border-left: 0; + } + .card-group > .card:not(:last-child) { + border-top-right-radius: 0; + border-bottom-right-radius: 0; + } + .card-group > .card:not(:last-child) .card-img-top, + .card-group > .card:not(:last-child) .card-header { + border-top-right-radius: 0; + } + .card-group > .card:not(:last-child) .card-img-bottom, + .card-group > .card:not(:last-child) .card-footer { + border-bottom-right-radius: 0; + } + .card-group > .card:not(:first-child) { + border-top-left-radius: 0; + border-bottom-left-radius: 0; + } + .card-group > .card:not(:first-child) .card-img-top, + .card-group > .card:not(:first-child) .card-header { + border-top-left-radius: 0; + } + .card-group > .card:not(:first-child) .card-img-bottom, + .card-group > .card:not(:first-child) .card-footer { + border-bottom-left-radius: 0; + } +} + +.card-columns .card { + margin-bottom: 0.75rem; +} + +@media (min-width: 576px) { + .card-columns { + -webkit-column-count: 3; + -moz-column-count: 3; + column-count: 3; + -webkit-column-gap: 1.25rem; + -moz-column-gap: 1.25rem; + column-gap: 1.25rem; + orphans: 1; + widows: 1; + } + .card-columns .card { + display: inline-block; + width: 100%; + } +} + +.accordion > .card { + overflow: hidden; +} + +.accordion > .card:not(:last-of-type) { + border-bottom: 0; + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} + +.accordion > .card:not(:first-of-type) { + border-top-left-radius: 0; + border-top-right-radius: 0; +} + +.accordion > .card > .card-header { + border-radius: 0; + margin-bottom: -1px; +} + +.breadcrumb { + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + padding: 0.75rem 1rem; + margin-bottom: 1rem; + list-style: none; + background-color: #e9ecef; + border-radius: 0.25rem; +} + +.breadcrumb-item + .breadcrumb-item { + padding-left: 0.5rem; +} + +.breadcrumb-item + .breadcrumb-item::before { + display: inline-block; + padding-right: 0.5rem; + color: #6c757d; + content: "/"; +} + +.breadcrumb-item + .breadcrumb-item:hover::before { + text-decoration: underline; +} + +.breadcrumb-item + .breadcrumb-item:hover::before { + text-decoration: none; +} + +.breadcrumb-item.active { + color: #6c757d; +} + +.pagination { + display: -ms-flexbox; + display: flex; + padding-left: 0; + list-style: none; + border-radius: 0.25rem; +} + +.page-link { + position: relative; + display: block; + padding: 0.5rem 0.75rem; + margin-left: -1px; + line-height: 1.25; + color: #007bff; + background-color: #fff; + border: 1px solid #dee2e6; +} + +.page-link:hover { + z-index: 2; + color: #0056b3; + text-decoration: none; + background-color: #e9ecef; + border-color: #dee2e6; +} + +.page-link:focus { + z-index: 3; + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25); +} + +.page-item:first-child .page-link { + margin-left: 0; + border-top-left-radius: 0.25rem; + border-bottom-left-radius: 0.25rem; +} + +.page-item:last-child .page-link { + border-top-right-radius: 0.25rem; + border-bottom-right-radius: 0.25rem; +} + +.page-item.active .page-link { + z-index: 3; + color: #fff; + background-color: #007bff; + border-color: #007bff; +} + +.page-item.disabled .page-link { + color: #6c757d; + pointer-events: none; + cursor: auto; + background-color: #fff; + border-color: #dee2e6; +} + +.pagination-lg .page-link { + padding: 0.75rem 1.5rem; + font-size: 1.25rem; + line-height: 1.5; +} + +.pagination-lg .page-item:first-child .page-link { + border-top-left-radius: 0.3rem; + border-bottom-left-radius: 0.3rem; +} + +.pagination-lg .page-item:last-child .page-link { + border-top-right-radius: 0.3rem; + border-bottom-right-radius: 0.3rem; +} + +.pagination-sm .page-link { + padding: 0.25rem 0.5rem; + font-size: 0.875rem; + line-height: 1.5; +} + +.pagination-sm .page-item:first-child .page-link { + border-top-left-radius: 0.2rem; + border-bottom-left-radius: 0.2rem; +} + +.pagination-sm .page-item:last-child .page-link { + border-top-right-radius: 0.2rem; + border-bottom-right-radius: 0.2rem; +} + +.badge { + display: inline-block; + padding: 0.25em 0.4em; + font-size: 75%; + font-weight: 700; + line-height: 1; + text-align: center; + white-space: nowrap; + vertical-align: baseline; + border-radius: 0.25rem; + transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; +} + +@media (prefers-reduced-motion: reduce) { + .badge { + transition: none; + } +} + +a.badge:hover, a.badge:focus { + text-decoration: none; +} + +.badge:empty { + display: none; +} + +.btn .badge { + position: relative; + top: -1px; +} + +.badge-pill { + padding-right: 0.6em; + padding-left: 0.6em; + border-radius: 10rem; +} + +.badge-primary { + color: #fff; + background-color: #007bff; +} + +a.badge-primary:hover, a.badge-primary:focus { + color: #fff; + background-color: #0062cc; +} + +a.badge-primary:focus, a.badge-primary.focus { + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5); +} + +.badge-secondary { + color: #fff; + background-color: #6c757d; +} + +a.badge-secondary:hover, a.badge-secondary:focus { + color: #fff; + background-color: #545b62; +} + +a.badge-secondary:focus, a.badge-secondary.focus { + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5); +} + +.badge-success { + color: #fff; + background-color: #28a745; +} + +a.badge-success:hover, a.badge-success:focus { + color: #fff; + background-color: #1e7e34; +} + +a.badge-success:focus, a.badge-success.focus { + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5); +} + +.badge-info { + color: #fff; + background-color: #17a2b8; +} + +a.badge-info:hover, a.badge-info:focus { + color: #fff; + background-color: #117a8b; +} + +a.badge-info:focus, a.badge-info.focus { + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5); +} + +.badge-warning { + color: #212529; + background-color: #ffc107; +} + +a.badge-warning:hover, a.badge-warning:focus { + color: #212529; + background-color: #d39e00; +} + +a.badge-warning:focus, a.badge-warning.focus { + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5); +} + +.badge-danger { + color: #fff; + background-color: #dc3545; +} + +a.badge-danger:hover, a.badge-danger:focus { + color: #fff; + background-color: #bd2130; +} + +a.badge-danger:focus, a.badge-danger.focus { + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5); +} + +.badge-light { + color: #212529; + background-color: #f8f9fa; +} + +a.badge-light:hover, a.badge-light:focus { + color: #212529; + background-color: #dae0e5; +} + +a.badge-light:focus, a.badge-light.focus { + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5); +} + +.badge-dark { + color: #fff; + background-color: #343a40; +} + +a.badge-dark:hover, a.badge-dark:focus { + color: #fff; + background-color: #1d2124; +} + +a.badge-dark:focus, a.badge-dark.focus { + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5); +} + +.jumbotron { + padding: 2rem 1rem; + margin-bottom: 2rem; + background-color: #e9ecef; + border-radius: 0.3rem; +} + +@media (min-width: 576px) { + .jumbotron { + padding: 4rem 2rem; + } +} + +.jumbotron-fluid { + padding-right: 0; + padding-left: 0; + border-radius: 0; +} + +.alert { + position: relative; + padding: 0.75rem 1.25rem; + margin-bottom: 1rem; + border: 1px solid transparent; + border-radius: 0.25rem; +} + +.alert-heading { + color: inherit; +} + +.alert-link { + font-weight: 700; +} + +.alert-dismissible { + padding-right: 4rem; +} + +.alert-dismissible .close { + position: absolute; + top: 0; + right: 0; + padding: 0.75rem 1.25rem; + color: inherit; +} + +.alert-primary { + color: #004085; + background-color: #cce5ff; + border-color: #b8daff; +} + +.alert-primary hr { + border-top-color: #9fcdff; +} + +.alert-primary .alert-link { + color: #002752; +} + +.alert-secondary { + color: #383d41; + background-color: #e2e3e5; + border-color: #d6d8db; +} + +.alert-secondary hr { + border-top-color: #c8cbcf; +} + +.alert-secondary .alert-link { + color: #202326; +} + +.alert-success { + color: #155724; + background-color: #d4edda; + border-color: #c3e6cb; +} + +.alert-success hr { + border-top-color: #b1dfbb; +} + +.alert-success .alert-link { + color: #0b2e13; +} + +.alert-info { + color: #0c5460; + background-color: #d1ecf1; + border-color: #bee5eb; +} + +.alert-info hr { + border-top-color: #abdde5; +} + +.alert-info .alert-link { + color: #062c33; +} + +.alert-warning { + color: #856404; + background-color: #fff3cd; + border-color: #ffeeba; +} + +.alert-warning hr { + border-top-color: #ffe8a1; +} + +.alert-warning .alert-link { + color: #533f03; +} + +.alert-danger { + color: #721c24; + background-color: #f8d7da; + border-color: #f5c6cb; +} + +.alert-danger hr { + border-top-color: #f1b0b7; +} + +.alert-danger .alert-link { + color: #491217; +} + +.alert-light { + color: #818182; + background-color: #fefefe; + border-color: #fdfdfe; +} + +.alert-light hr { + border-top-color: #ececf6; +} + +.alert-light .alert-link { + color: #686868; +} + +.alert-dark { + color: #1b1e21; + background-color: #d6d8d9; + border-color: #c6c8ca; +} + +.alert-dark hr { + border-top-color: #b9bbbe; +} + +.alert-dark .alert-link { + color: #040505; +} + +@-webkit-keyframes progress-bar-stripes { + from { + background-position: 1rem 0; + } + to { + background-position: 0 0; + } +} + +@keyframes progress-bar-stripes { + from { + background-position: 1rem 0; + } + to { + background-position: 0 0; + } +} + +.progress { + display: -ms-flexbox; + display: flex; + height: 1rem; + overflow: hidden; + font-size: 0.75rem; + background-color: #e9ecef; + border-radius: 0.25rem; +} + +.progress-bar { + display: -ms-flexbox; + display: flex; + -ms-flex-direction: column; + flex-direction: column; + -ms-flex-pack: center; + justify-content: center; + overflow: hidden; + color: #fff; + text-align: center; + white-space: nowrap; + background-color: #007bff; + transition: width 0.6s ease; +} + +@media (prefers-reduced-motion: reduce) { + .progress-bar { + transition: none; + } +} + +.progress-bar-striped { + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-size: 1rem 1rem; +} + +.progress-bar-animated { + -webkit-animation: progress-bar-stripes 1s linear infinite; + animation: progress-bar-stripes 1s linear infinite; +} + +@media (prefers-reduced-motion: reduce) { + .progress-bar-animated { + -webkit-animation: none; + animation: none; + } +} + +.media { + display: -ms-flexbox; + display: flex; + -ms-flex-align: start; + align-items: flex-start; +} + +.media-body { + -ms-flex: 1; + flex: 1; +} + +.list-group { + display: -ms-flexbox; + display: flex; + -ms-flex-direction: column; + flex-direction: column; + padding-left: 0; + margin-bottom: 0; +} + +.list-group-item-action { + width: 100%; + color: #495057; + text-align: inherit; +} + +.list-group-item-action:hover, .list-group-item-action:focus { + z-index: 1; + color: #495057; + text-decoration: none; + background-color: #f8f9fa; +} + +.list-group-item-action:active { + color: #212529; + background-color: #e9ecef; +} + +.list-group-item { + position: relative; + display: block; + padding: 0.75rem 1.25rem; + background-color: #fff; + border: 1px solid rgba(0, 0, 0, 0.125); +} + +.list-group-item:first-child { + border-top-left-radius: 0.25rem; + border-top-right-radius: 0.25rem; +} + +.list-group-item:last-child { + border-bottom-right-radius: 0.25rem; + border-bottom-left-radius: 0.25rem; +} + +.list-group-item.disabled, .list-group-item:disabled { + color: #6c757d; + pointer-events: none; + background-color: #fff; +} + +.list-group-item.active { + z-index: 2; + color: #fff; + background-color: #007bff; + border-color: #007bff; +} + +.list-group-item + .list-group-item { + border-top-width: 0; +} + +.list-group-item + .list-group-item.active { + margin-top: -1px; + border-top-width: 1px; +} + +.list-group-horizontal { + -ms-flex-direction: row; + flex-direction: row; +} + +.list-group-horizontal .list-group-item:first-child { + border-bottom-left-radius: 0.25rem; + border-top-right-radius: 0; +} + +.list-group-horizontal .list-group-item:last-child { + border-top-right-radius: 0.25rem; + border-bottom-left-radius: 0; +} + +.list-group-horizontal .list-group-item.active { + margin-top: 0; +} + +.list-group-horizontal .list-group-item + .list-group-item { + border-top-width: 1px; + border-left-width: 0; +} + +.list-group-horizontal .list-group-item + .list-group-item.active { + margin-left: -1px; + border-left-width: 1px; +} + +@media (min-width: 576px) { + .list-group-horizontal-sm { + -ms-flex-direction: row; + flex-direction: row; + } + .list-group-horizontal-sm .list-group-item:first-child { + border-bottom-left-radius: 0.25rem; + border-top-right-radius: 0; + } + .list-group-horizontal-sm .list-group-item:last-child { + border-top-right-radius: 0.25rem; + border-bottom-left-radius: 0; + } + .list-group-horizontal-sm .list-group-item.active { + margin-top: 0; + } + .list-group-horizontal-sm .list-group-item + .list-group-item { + border-top-width: 1px; + border-left-width: 0; + } + .list-group-horizontal-sm .list-group-item + .list-group-item.active { + margin-left: -1px; + border-left-width: 1px; + } +} + +@media (min-width: 768px) { + .list-group-horizontal-md { + -ms-flex-direction: row; + flex-direction: row; + } + .list-group-horizontal-md .list-group-item:first-child { + border-bottom-left-radius: 0.25rem; + border-top-right-radius: 0; + } + .list-group-horizontal-md .list-group-item:last-child { + border-top-right-radius: 0.25rem; + border-bottom-left-radius: 0; + } + .list-group-horizontal-md .list-group-item.active { + margin-top: 0; + } + .list-group-horizontal-md .list-group-item + .list-group-item { + border-top-width: 1px; + border-left-width: 0; + } + .list-group-horizontal-md .list-group-item + .list-group-item.active { + margin-left: -1px; + border-left-width: 1px; + } +} + +@media (min-width: 992px) { + .list-group-horizontal-lg { + -ms-flex-direction: row; + flex-direction: row; + } + .list-group-horizontal-lg .list-group-item:first-child { + border-bottom-left-radius: 0.25rem; + border-top-right-radius: 0; + } + .list-group-horizontal-lg .list-group-item:last-child { + border-top-right-radius: 0.25rem; + border-bottom-left-radius: 0; + } + .list-group-horizontal-lg .list-group-item.active { + margin-top: 0; + } + .list-group-horizontal-lg .list-group-item + .list-group-item { + border-top-width: 1px; + border-left-width: 0; + } + .list-group-horizontal-lg .list-group-item + .list-group-item.active { + margin-left: -1px; + border-left-width: 1px; + } +} + +@media (min-width: 1200px) { + .list-group-horizontal-xl { + -ms-flex-direction: row; + flex-direction: row; + } + .list-group-horizontal-xl .list-group-item:first-child { + border-bottom-left-radius: 0.25rem; + border-top-right-radius: 0; + } + .list-group-horizontal-xl .list-group-item:last-child { + border-top-right-radius: 0.25rem; + border-bottom-left-radius: 0; + } + .list-group-horizontal-xl .list-group-item.active { + margin-top: 0; + } + .list-group-horizontal-xl .list-group-item + .list-group-item { + border-top-width: 1px; + border-left-width: 0; + } + .list-group-horizontal-xl .list-group-item + .list-group-item.active { + margin-left: -1px; + border-left-width: 1px; + } +} + +.list-group-flush .list-group-item { + border-right-width: 0; + border-left-width: 0; + border-radius: 0; +} + +.list-group-flush .list-group-item:first-child { + border-top-width: 0; +} + +.list-group-flush:last-child .list-group-item:last-child { + border-bottom-width: 0; +} + +.list-group-item-primary { + color: #004085; + background-color: #b8daff; +} + +.list-group-item-primary.list-group-item-action:hover, .list-group-item-primary.list-group-item-action:focus { + color: #004085; + background-color: #9fcdff; +} + +.list-group-item-primary.list-group-item-action.active { + color: #fff; + background-color: #004085; + border-color: #004085; +} + +.list-group-item-secondary { + color: #383d41; + background-color: #d6d8db; +} + +.list-group-item-secondary.list-group-item-action:hover, .list-group-item-secondary.list-group-item-action:focus { + color: #383d41; + background-color: #c8cbcf; +} + +.list-group-item-secondary.list-group-item-action.active { + color: #fff; + background-color: #383d41; + border-color: #383d41; +} + +.list-group-item-success { + color: #155724; + background-color: #c3e6cb; +} + +.list-group-item-success.list-group-item-action:hover, .list-group-item-success.list-group-item-action:focus { + color: #155724; + background-color: #b1dfbb; +} + +.list-group-item-success.list-group-item-action.active { + color: #fff; + background-color: #155724; + border-color: #155724; +} + +.list-group-item-info { + color: #0c5460; + background-color: #bee5eb; +} + +.list-group-item-info.list-group-item-action:hover, .list-group-item-info.list-group-item-action:focus { + color: #0c5460; + background-color: #abdde5; +} + +.list-group-item-info.list-group-item-action.active { + color: #fff; + background-color: #0c5460; + border-color: #0c5460; +} + +.list-group-item-warning { + color: #856404; + background-color: #ffeeba; +} + +.list-group-item-warning.list-group-item-action:hover, .list-group-item-warning.list-group-item-action:focus { + color: #856404; + background-color: #ffe8a1; +} + +.list-group-item-warning.list-group-item-action.active { + color: #fff; + background-color: #856404; + border-color: #856404; +} + +.list-group-item-danger { + color: #721c24; + background-color: #f5c6cb; +} + +.list-group-item-danger.list-group-item-action:hover, .list-group-item-danger.list-group-item-action:focus { + color: #721c24; + background-color: #f1b0b7; +} + +.list-group-item-danger.list-group-item-action.active { + color: #fff; + background-color: #721c24; + border-color: #721c24; +} + +.list-group-item-light { + color: #818182; + background-color: #fdfdfe; +} + +.list-group-item-light.list-group-item-action:hover, .list-group-item-light.list-group-item-action:focus { + color: #818182; + background-color: #ececf6; +} + +.list-group-item-light.list-group-item-action.active { + color: #fff; + background-color: #818182; + border-color: #818182; +} + +.list-group-item-dark { + color: #1b1e21; + background-color: #c6c8ca; +} + +.list-group-item-dark.list-group-item-action:hover, .list-group-item-dark.list-group-item-action:focus { + color: #1b1e21; + background-color: #b9bbbe; +} + +.list-group-item-dark.list-group-item-action.active { + color: #fff; + background-color: #1b1e21; + border-color: #1b1e21; +} + +.close { + float: right; + font-size: 1.5rem; + font-weight: 700; + line-height: 1; + color: #000; + text-shadow: 0 1px 0 #fff; + opacity: .5; +} + +.close:hover { + color: #000; + text-decoration: none; +} + +.close:not(:disabled):not(.disabled):hover, .close:not(:disabled):not(.disabled):focus { + opacity: .75; +} + +button.close { + padding: 0; + background-color: transparent; + border: 0; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; +} + +a.close.disabled { + pointer-events: none; +} + +.toast { + max-width: 350px; + overflow: hidden; + font-size: 0.875rem; + background-color: rgba(255, 255, 255, 0.85); + background-clip: padding-box; + border: 1px solid rgba(0, 0, 0, 0.1); + box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.1); + -webkit-backdrop-filter: blur(10px); + backdrop-filter: blur(10px); + opacity: 0; + border-radius: 0.25rem; +} + +.toast:not(:last-child) { + margin-bottom: 0.75rem; +} + +.toast.showing { + opacity: 1; +} + +.toast.show { + display: block; + opacity: 1; +} + +.toast.hide { + display: none; +} + +.toast-header { + display: -ms-flexbox; + display: flex; + -ms-flex-align: center; + align-items: center; + padding: 0.25rem 0.75rem; + color: #6c757d; + background-color: rgba(255, 255, 255, 0.85); + background-clip: padding-box; + border-bottom: 1px solid rgba(0, 0, 0, 0.05); +} + +.toast-body { + padding: 0.75rem; +} + +.modal-open { + overflow: hidden; +} + +.modal-open .modal { + overflow-x: hidden; + overflow-y: auto; +} + +.modal { + position: fixed; + top: 0; + left: 0; + z-index: 1050; + display: none; + width: 100%; + height: 100%; + overflow: hidden; + outline: 0; +} + +.modal-dialog { + position: relative; + width: auto; + margin: 0.5rem; + pointer-events: none; +} + +.modal.fade .modal-dialog { + transition: -webkit-transform 0.3s ease-out; + transition: transform 0.3s ease-out; + transition: transform 0.3s ease-out, -webkit-transform 0.3s ease-out; + -webkit-transform: translate(0, -50px); + transform: translate(0, -50px); +} + +@media (prefers-reduced-motion: reduce) { + .modal.fade .modal-dialog { + transition: none; + } +} + +.modal.show .modal-dialog { + -webkit-transform: none; + transform: none; +} + +.modal.modal-static .modal-dialog { + -webkit-transform: scale(1.02); + transform: scale(1.02); +} + +.modal-dialog-scrollable { + display: -ms-flexbox; + display: flex; + max-height: calc(100% - 1rem); +} + +.modal-dialog-scrollable .modal-content { + max-height: calc(100vh - 1rem); + overflow: hidden; +} + +.modal-dialog-scrollable .modal-header, +.modal-dialog-scrollable .modal-footer { + -ms-flex-negative: 0; + flex-shrink: 0; +} + +.modal-dialog-scrollable .modal-body { + overflow-y: auto; +} + +.modal-dialog-centered { + display: -ms-flexbox; + display: flex; + -ms-flex-align: center; + align-items: center; + min-height: calc(100% - 1rem); +} + +.modal-dialog-centered::before { + display: block; + height: calc(100vh - 1rem); + content: ""; +} + +.modal-dialog-centered.modal-dialog-scrollable { + -ms-flex-direction: column; + flex-direction: column; + -ms-flex-pack: center; + justify-content: center; + height: 100%; +} + +.modal-dialog-centered.modal-dialog-scrollable .modal-content { + max-height: none; +} + +.modal-dialog-centered.modal-dialog-scrollable::before { + content: none; +} + +.modal-content { + position: relative; + display: -ms-flexbox; + display: flex; + -ms-flex-direction: column; + flex-direction: column; + width: 100%; + pointer-events: auto; + background-color: #fff; + background-clip: padding-box; + border: 1px solid rgba(0, 0, 0, 0.2); + border-radius: 0.3rem; + outline: 0; +} + +.modal-backdrop { + position: fixed; + top: 0; + left: 0; + z-index: 1040; + width: 100vw; + height: 100vh; + background-color: #000; +} + +.modal-backdrop.fade { + opacity: 0; +} + +.modal-backdrop.show { + opacity: 0.5; +} + +.modal-header { + display: -ms-flexbox; + display: flex; + -ms-flex-align: start; + align-items: flex-start; + -ms-flex-pack: justify; + justify-content: space-between; + padding: 1rem 1rem; + border-bottom: 1px solid #dee2e6; + border-top-left-radius: calc(0.3rem - 1px); + border-top-right-radius: calc(0.3rem - 1px); +} + +.modal-header .close { + padding: 1rem 1rem; + margin: -1rem -1rem -1rem auto; +} + +.modal-title { + margin-bottom: 0; + line-height: 1.5; +} + +.modal-body { + position: relative; + -ms-flex: 1 1 auto; + flex: 1 1 auto; + padding: 1rem; +} + +.modal-footer { + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + -ms-flex-align: center; + align-items: center; + -ms-flex-pack: end; + justify-content: flex-end; + padding: 0.75rem; + border-top: 1px solid #dee2e6; + border-bottom-right-radius: calc(0.3rem - 1px); + border-bottom-left-radius: calc(0.3rem - 1px); +} + +.modal-footer > * { + margin: 0.25rem; +} + +.modal-scrollbar-measure { + position: absolute; + top: -9999px; + width: 50px; + height: 50px; + overflow: scroll; +} + +@media (min-width: 576px) { + .modal-dialog { + max-width: 500px; + margin: 1.75rem auto; + } + .modal-dialog-scrollable { + max-height: calc(100% - 3.5rem); + } + .modal-dialog-scrollable .modal-content { + max-height: calc(100vh - 3.5rem); + } + .modal-dialog-centered { + min-height: calc(100% - 3.5rem); + } + .modal-dialog-centered::before { + height: calc(100vh - 3.5rem); + } + .modal-sm { + max-width: 300px; + } +} + +@media (min-width: 992px) { + .modal-lg, + .modal-xl { + max-width: 800px; + } +} + +@media (min-width: 1200px) { + .modal-xl { + max-width: 1140px; + } +} + +.tooltip { + position: absolute; + z-index: 1070; + display: block; + margin: 0; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; + font-style: normal; + font-weight: 400; + line-height: 1.5; + text-align: left; + text-align: start; + text-decoration: none; + text-shadow: none; + text-transform: none; + letter-spacing: normal; + word-break: normal; + word-spacing: normal; + white-space: normal; + line-break: auto; + font-size: 0.875rem; + word-wrap: break-word; + opacity: 0; +} + +.tooltip.show { + opacity: 0.9; +} + +.tooltip .arrow { + position: absolute; + display: block; + width: 0.8rem; + height: 0.4rem; +} + +.tooltip .arrow::before { + position: absolute; + content: ""; + border-color: transparent; + border-style: solid; +} + +.bs-tooltip-top, .bs-tooltip-auto[x-placement^="top"] { + padding: 0.4rem 0; +} + +.bs-tooltip-top .arrow, .bs-tooltip-auto[x-placement^="top"] .arrow { + bottom: 0; +} + +.bs-tooltip-top .arrow::before, .bs-tooltip-auto[x-placement^="top"] .arrow::before { + top: 0; + border-width: 0.4rem 0.4rem 0; + border-top-color: #000; +} + +.bs-tooltip-right, .bs-tooltip-auto[x-placement^="right"] { + padding: 0 0.4rem; +} + +.bs-tooltip-right .arrow, .bs-tooltip-auto[x-placement^="right"] .arrow { + left: 0; + width: 0.4rem; + height: 0.8rem; +} + +.bs-tooltip-right .arrow::before, .bs-tooltip-auto[x-placement^="right"] .arrow::before { + right: 0; + border-width: 0.4rem 0.4rem 0.4rem 0; + border-right-color: #000; +} + +.bs-tooltip-bottom, .bs-tooltip-auto[x-placement^="bottom"] { + padding: 0.4rem 0; +} + +.bs-tooltip-bottom .arrow, .bs-tooltip-auto[x-placement^="bottom"] .arrow { + top: 0; +} + +.bs-tooltip-bottom .arrow::before, .bs-tooltip-auto[x-placement^="bottom"] .arrow::before { + bottom: 0; + border-width: 0 0.4rem 0.4rem; + border-bottom-color: #000; +} + +.bs-tooltip-left, .bs-tooltip-auto[x-placement^="left"] { + padding: 0 0.4rem; +} + +.bs-tooltip-left .arrow, .bs-tooltip-auto[x-placement^="left"] .arrow { + right: 0; + width: 0.4rem; + height: 0.8rem; +} + +.bs-tooltip-left .arrow::before, .bs-tooltip-auto[x-placement^="left"] .arrow::before { + left: 0; + border-width: 0.4rem 0 0.4rem 0.4rem; + border-left-color: #000; +} + +.tooltip-inner { + max-width: 200px; + padding: 0.25rem 0.5rem; + color: #fff; + text-align: center; + background-color: #000; + border-radius: 0.25rem; +} + +.popover { + position: absolute; + top: 0; + left: 0; + z-index: 1060; + display: block; + max-width: 276px; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; + font-style: normal; + font-weight: 400; + line-height: 1.5; + text-align: left; + text-align: start; + text-decoration: none; + text-shadow: none; + text-transform: none; + letter-spacing: normal; + word-break: normal; + word-spacing: normal; + white-space: normal; + line-break: auto; + font-size: 0.875rem; + word-wrap: break-word; + background-color: #fff; + background-clip: padding-box; + border: 1px solid rgba(0, 0, 0, 0.2); + border-radius: 0.3rem; +} + +.popover .arrow { + position: absolute; + display: block; + width: 1rem; + height: 0.5rem; + margin: 0 0.3rem; +} + +.popover .arrow::before, .popover .arrow::after { + position: absolute; + display: block; + content: ""; + border-color: transparent; + border-style: solid; +} + +.bs-popover-top, .bs-popover-auto[x-placement^="top"] { + margin-bottom: 0.5rem; +} + +.bs-popover-top > .arrow, .bs-popover-auto[x-placement^="top"] > .arrow { + bottom: calc(-0.5rem - 1px); +} + +.bs-popover-top > .arrow::before, .bs-popover-auto[x-placement^="top"] > .arrow::before { + bottom: 0; + border-width: 0.5rem 0.5rem 0; + border-top-color: rgba(0, 0, 0, 0.25); +} + +.bs-popover-top > .arrow::after, .bs-popover-auto[x-placement^="top"] > .arrow::after { + bottom: 1px; + border-width: 0.5rem 0.5rem 0; + border-top-color: #fff; +} + +.bs-popover-right, .bs-popover-auto[x-placement^="right"] { + margin-left: 0.5rem; +} + +.bs-popover-right > .arrow, .bs-popover-auto[x-placement^="right"] > .arrow { + left: calc(-0.5rem - 1px); + width: 0.5rem; + height: 1rem; + margin: 0.3rem 0; +} + +.bs-popover-right > .arrow::before, .bs-popover-auto[x-placement^="right"] > .arrow::before { + left: 0; + border-width: 0.5rem 0.5rem 0.5rem 0; + border-right-color: rgba(0, 0, 0, 0.25); +} + +.bs-popover-right > .arrow::after, .bs-popover-auto[x-placement^="right"] > .arrow::after { + left: 1px; + border-width: 0.5rem 0.5rem 0.5rem 0; + border-right-color: #fff; +} + +.bs-popover-bottom, .bs-popover-auto[x-placement^="bottom"] { + margin-top: 0.5rem; +} + +.bs-popover-bottom > .arrow, .bs-popover-auto[x-placement^="bottom"] > .arrow { + top: calc(-0.5rem - 1px); +} + +.bs-popover-bottom > .arrow::before, .bs-popover-auto[x-placement^="bottom"] > .arrow::before { + top: 0; + border-width: 0 0.5rem 0.5rem 0.5rem; + border-bottom-color: rgba(0, 0, 0, 0.25); +} + +.bs-popover-bottom > .arrow::after, .bs-popover-auto[x-placement^="bottom"] > .arrow::after { + top: 1px; + border-width: 0 0.5rem 0.5rem 0.5rem; + border-bottom-color: #fff; +} + +.bs-popover-bottom .popover-header::before, .bs-popover-auto[x-placement^="bottom"] .popover-header::before { + position: absolute; + top: 0; + left: 50%; + display: block; + width: 1rem; + margin-left: -0.5rem; + content: ""; + border-bottom: 1px solid #f7f7f7; +} + +.bs-popover-left, .bs-popover-auto[x-placement^="left"] { + margin-right: 0.5rem; +} + +.bs-popover-left > .arrow, .bs-popover-auto[x-placement^="left"] > .arrow { + right: calc(-0.5rem - 1px); + width: 0.5rem; + height: 1rem; + margin: 0.3rem 0; +} + +.bs-popover-left > .arrow::before, .bs-popover-auto[x-placement^="left"] > .arrow::before { + right: 0; + border-width: 0.5rem 0 0.5rem 0.5rem; + border-left-color: rgba(0, 0, 0, 0.25); +} + +.bs-popover-left > .arrow::after, .bs-popover-auto[x-placement^="left"] > .arrow::after { + right: 1px; + border-width: 0.5rem 0 0.5rem 0.5rem; + border-left-color: #fff; +} + +.popover-header { + padding: 0.5rem 0.75rem; + margin-bottom: 0; + font-size: 1rem; + background-color: #f7f7f7; + border-bottom: 1px solid #ebebeb; + border-top-left-radius: calc(0.3rem - 1px); + border-top-right-radius: calc(0.3rem - 1px); +} + +.popover-header:empty { + display: none; +} + +.popover-body { + padding: 0.5rem 0.75rem; + color: #212529; +} + +.carousel { + position: relative; +} + +.carousel.pointer-event { + -ms-touch-action: pan-y; + touch-action: pan-y; +} + +.carousel-inner { + position: relative; + width: 100%; + overflow: hidden; +} + +.carousel-inner::after { + display: block; + clear: both; + content: ""; +} + +.carousel-item { + position: relative; + display: none; + float: left; + width: 100%; + margin-right: -100%; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + transition: -webkit-transform 0.6s ease-in-out; + transition: transform 0.6s ease-in-out; + transition: transform 0.6s ease-in-out, -webkit-transform 0.6s ease-in-out; +} + +@media (prefers-reduced-motion: reduce) { + .carousel-item { + transition: none; + } +} + +.carousel-item.active, +.carousel-item-next, +.carousel-item-prev { + display: block; +} + +.carousel-item-next:not(.carousel-item-left), +.active.carousel-item-right { + -webkit-transform: translateX(100%); + transform: translateX(100%); +} + +.carousel-item-prev:not(.carousel-item-right), +.active.carousel-item-left { + -webkit-transform: translateX(-100%); + transform: translateX(-100%); +} + +.carousel-fade .carousel-item { + opacity: 0; + transition-property: opacity; + -webkit-transform: none; + transform: none; +} + +.carousel-fade .carousel-item.active, +.carousel-fade .carousel-item-next.carousel-item-left, +.carousel-fade .carousel-item-prev.carousel-item-right { + z-index: 1; + opacity: 1; +} + +.carousel-fade .active.carousel-item-left, +.carousel-fade .active.carousel-item-right { + z-index: 0; + opacity: 0; + transition: opacity 0s 0.6s; +} + +@media (prefers-reduced-motion: reduce) { + .carousel-fade .active.carousel-item-left, + .carousel-fade .active.carousel-item-right { + transition: none; + } +} + +.carousel-control-prev, +.carousel-control-next { + position: absolute; + top: 0; + bottom: 0; + z-index: 1; + display: -ms-flexbox; + display: flex; + -ms-flex-align: center; + align-items: center; + -ms-flex-pack: center; + justify-content: center; + width: 15%; + color: #fff; + text-align: center; + opacity: 0.5; + transition: opacity 0.15s ease; +} + +@media (prefers-reduced-motion: reduce) { + .carousel-control-prev, + .carousel-control-next { + transition: none; + } +} + +.carousel-control-prev:hover, .carousel-control-prev:focus, +.carousel-control-next:hover, +.carousel-control-next:focus { + color: #fff; + text-decoration: none; + outline: 0; + opacity: 0.9; +} + +.carousel-control-prev { + left: 0; +} + +.carousel-control-next { + right: 0; +} + +.carousel-control-prev-icon, +.carousel-control-next-icon { + display: inline-block; + width: 20px; + height: 20px; + background: no-repeat 50% / 100% 100%; +} + +.carousel-control-prev-icon { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3e%3c/svg%3e"); +} + +.carousel-control-next-icon { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3e%3c/svg%3e"); +} + +.carousel-indicators { + position: absolute; + right: 0; + bottom: 0; + left: 0; + z-index: 15; + display: -ms-flexbox; + display: flex; + -ms-flex-pack: center; + justify-content: center; + padding-left: 0; + margin-right: 15%; + margin-left: 15%; + list-style: none; +} + +.carousel-indicators li { + box-sizing: content-box; + -ms-flex: 0 1 auto; + flex: 0 1 auto; + width: 30px; + height: 3px; + margin-right: 3px; + margin-left: 3px; + text-indent: -999px; + cursor: pointer; + background-color: #fff; + background-clip: padding-box; + border-top: 10px solid transparent; + border-bottom: 10px solid transparent; + opacity: .5; + transition: opacity 0.6s ease; +} + +@media (prefers-reduced-motion: reduce) { + .carousel-indicators li { + transition: none; + } +} + +.carousel-indicators .active { + opacity: 1; +} + +.carousel-caption { + position: absolute; + right: 15%; + bottom: 20px; + left: 15%; + z-index: 10; + padding-top: 20px; + padding-bottom: 20px; + color: #fff; + text-align: center; +} + +@-webkit-keyframes spinner-border { + to { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); + } +} + +@keyframes spinner-border { + to { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); + } +} + +.spinner-border { + display: inline-block; + width: 2rem; + height: 2rem; + vertical-align: text-bottom; + border: 0.25em solid currentColor; + border-right-color: transparent; + border-radius: 50%; + -webkit-animation: spinner-border .75s linear infinite; + animation: spinner-border .75s linear infinite; +} + +.spinner-border-sm { + width: 1rem; + height: 1rem; + border-width: 0.2em; +} + +@-webkit-keyframes spinner-grow { + 0% { + -webkit-transform: scale(0); + transform: scale(0); + } + 50% { + opacity: 1; + } +} + +@keyframes spinner-grow { + 0% { + -webkit-transform: scale(0); + transform: scale(0); + } + 50% { + opacity: 1; + } +} + +.spinner-grow { + display: inline-block; + width: 2rem; + height: 2rem; + vertical-align: text-bottom; + background-color: currentColor; + border-radius: 50%; + opacity: 0; + -webkit-animation: spinner-grow .75s linear infinite; + animation: spinner-grow .75s linear infinite; +} + +.spinner-grow-sm { + width: 1rem; + height: 1rem; +} + +.align-baseline { + vertical-align: baseline !important; +} + +.align-top { + vertical-align: top !important; +} + +.align-middle { + vertical-align: middle !important; +} + +.align-bottom { + vertical-align: bottom !important; +} + +.align-text-bottom { + vertical-align: text-bottom !important; +} + +.align-text-top { + vertical-align: text-top !important; +} + +.bg-primary { + background-color: #007bff !important; +} + +a.bg-primary:hover, a.bg-primary:focus, +button.bg-primary:hover, +button.bg-primary:focus { + background-color: #0062cc !important; +} + +.bg-secondary { + background-color: #6c757d !important; +} + +a.bg-secondary:hover, a.bg-secondary:focus, +button.bg-secondary:hover, +button.bg-secondary:focus { + background-color: #545b62 !important; +} + +.bg-success { + background-color: #28a745 !important; +} + +a.bg-success:hover, a.bg-success:focus, +button.bg-success:hover, +button.bg-success:focus { + background-color: #1e7e34 !important; +} + +.bg-info { + background-color: #17a2b8 !important; +} + +a.bg-info:hover, a.bg-info:focus, +button.bg-info:hover, +button.bg-info:focus { + background-color: #117a8b !important; +} + +.bg-warning { + background-color: #ffc107 !important; +} + +a.bg-warning:hover, a.bg-warning:focus, +button.bg-warning:hover, +button.bg-warning:focus { + background-color: #d39e00 !important; +} + +.bg-danger { + background-color: #dc3545 !important; +} + +a.bg-danger:hover, a.bg-danger:focus, +button.bg-danger:hover, +button.bg-danger:focus { + background-color: #bd2130 !important; +} + +.bg-light { + background-color: #f8f9fa !important; +} + +a.bg-light:hover, a.bg-light:focus, +button.bg-light:hover, +button.bg-light:focus { + background-color: #dae0e5 !important; +} + +.bg-dark { + background-color: #343a40 !important; +} + +a.bg-dark:hover, a.bg-dark:focus, +button.bg-dark:hover, +button.bg-dark:focus { + background-color: #1d2124 !important; +} + +.bg-white { + background-color: #fff !important; +} + +.bg-transparent { + background-color: transparent !important; +} + +.border { + border: 1px solid #dee2e6 !important; +} + +.border-top { + border-top: 1px solid #dee2e6 !important; +} + +.border-right { + border-right: 1px solid #dee2e6 !important; +} + +.border-bottom { + border-bottom: 1px solid #dee2e6 !important; +} + +.border-left { + border-left: 1px solid #dee2e6 !important; +} + +.border-0 { + border: 0 !important; +} + +.border-top-0 { + border-top: 0 !important; +} + +.border-right-0 { + border-right: 0 !important; +} + +.border-bottom-0 { + border-bottom: 0 !important; +} + +.border-left-0 { + border-left: 0 !important; +} + +.border-primary { + border-color: #007bff !important; +} + +.border-secondary { + border-color: #6c757d !important; +} + +.border-success { + border-color: #28a745 !important; +} + +.border-info { + border-color: #17a2b8 !important; +} + +.border-warning { + border-color: #ffc107 !important; +} + +.border-danger { + border-color: #dc3545 !important; +} + +.border-light { + border-color: #f8f9fa !important; +} + +.border-dark { + border-color: #343a40 !important; +} + +.border-white { + border-color: #fff !important; +} + +.rounded-sm { + border-radius: 0.2rem !important; +} + +.rounded { + border-radius: 0.25rem !important; +} + +.rounded-top { + border-top-left-radius: 0.25rem !important; + border-top-right-radius: 0.25rem !important; +} + +.rounded-right { + border-top-right-radius: 0.25rem !important; + border-bottom-right-radius: 0.25rem !important; +} + +.rounded-bottom { + border-bottom-right-radius: 0.25rem !important; + border-bottom-left-radius: 0.25rem !important; +} + +.rounded-left { + border-top-left-radius: 0.25rem !important; + border-bottom-left-radius: 0.25rem !important; +} + +.rounded-lg { + border-radius: 0.3rem !important; +} + +.rounded-circle { + border-radius: 50% !important; +} + +.rounded-pill { + border-radius: 50rem !important; +} + +.rounded-0 { + border-radius: 0 !important; +} + +.clearfix::after { + display: block; + clear: both; + content: ""; +} + +.d-none { + display: none !important; +} + +.d-inline { + display: inline !important; +} + +.d-inline-block { + display: inline-block !important; +} + +.d-block { + display: block !important; +} + +.d-table { + display: table !important; +} + +.d-table-row { + display: table-row !important; +} + +.d-table-cell { + display: table-cell !important; +} + +.d-flex { + display: -ms-flexbox !important; + display: flex !important; +} + +.d-inline-flex { + display: -ms-inline-flexbox !important; + display: inline-flex !important; +} + +@media (min-width: 576px) { + .d-sm-none { + display: none !important; + } + .d-sm-inline { + display: inline !important; + } + .d-sm-inline-block { + display: inline-block !important; + } + .d-sm-block { + display: block !important; + } + .d-sm-table { + display: table !important; + } + .d-sm-table-row { + display: table-row !important; + } + .d-sm-table-cell { + display: table-cell !important; + } + .d-sm-flex { + display: -ms-flexbox !important; + display: flex !important; + } + .d-sm-inline-flex { + display: -ms-inline-flexbox !important; + display: inline-flex !important; + } +} + +@media (min-width: 768px) { + .d-md-none { + display: none !important; + } + .d-md-inline { + display: inline !important; + } + .d-md-inline-block { + display: inline-block !important; + } + .d-md-block { + display: block !important; + } + .d-md-table { + display: table !important; + } + .d-md-table-row { + display: table-row !important; + } + .d-md-table-cell { + display: table-cell !important; + } + .d-md-flex { + display: -ms-flexbox !important; + display: flex !important; + } + .d-md-inline-flex { + display: -ms-inline-flexbox !important; + display: inline-flex !important; + } +} + +@media (min-width: 992px) { + .d-lg-none { + display: none !important; + } + .d-lg-inline { + display: inline !important; + } + .d-lg-inline-block { + display: inline-block !important; + } + .d-lg-block { + display: block !important; + } + .d-lg-table { + display: table !important; + } + .d-lg-table-row { + display: table-row !important; + } + .d-lg-table-cell { + display: table-cell !important; + } + .d-lg-flex { + display: -ms-flexbox !important; + display: flex !important; + } + .d-lg-inline-flex { + display: -ms-inline-flexbox !important; + display: inline-flex !important; + } +} + +@media (min-width: 1200px) { + .d-xl-none { + display: none !important; + } + .d-xl-inline { + display: inline !important; + } + .d-xl-inline-block { + display: inline-block !important; + } + .d-xl-block { + display: block !important; + } + .d-xl-table { + display: table !important; + } + .d-xl-table-row { + display: table-row !important; + } + .d-xl-table-cell { + display: table-cell !important; + } + .d-xl-flex { + display: -ms-flexbox !important; + display: flex !important; + } + .d-xl-inline-flex { + display: -ms-inline-flexbox !important; + display: inline-flex !important; + } +} + +@media print { + .d-print-none { + display: none !important; + } + .d-print-inline { + display: inline !important; + } + .d-print-inline-block { + display: inline-block !important; + } + .d-print-block { + display: block !important; + } + .d-print-table { + display: table !important; + } + .d-print-table-row { + display: table-row !important; + } + .d-print-table-cell { + display: table-cell !important; + } + .d-print-flex { + display: -ms-flexbox !important; + display: flex !important; + } + .d-print-inline-flex { + display: -ms-inline-flexbox !important; + display: inline-flex !important; + } +} + +.embed-responsive { + position: relative; + display: block; + width: 100%; + padding: 0; + overflow: hidden; +} + +.embed-responsive::before { + display: block; + content: ""; +} + +.embed-responsive .embed-responsive-item, +.embed-responsive iframe, +.embed-responsive embed, +.embed-responsive object, +.embed-responsive video { + position: absolute; + top: 0; + bottom: 0; + left: 0; + width: 100%; + height: 100%; + border: 0; +} + +.embed-responsive-21by9::before { + padding-top: 42.857143%; +} + +.embed-responsive-16by9::before { + padding-top: 56.25%; +} + +.embed-responsive-4by3::before { + padding-top: 75%; +} + +.embed-responsive-1by1::before { + padding-top: 100%; +} + +.flex-row { + -ms-flex-direction: row !important; + flex-direction: row !important; +} + +.flex-column { + -ms-flex-direction: column !important; + flex-direction: column !important; +} + +.flex-row-reverse { + -ms-flex-direction: row-reverse !important; + flex-direction: row-reverse !important; +} + +.flex-column-reverse { + -ms-flex-direction: column-reverse !important; + flex-direction: column-reverse !important; +} + +.flex-wrap { + -ms-flex-wrap: wrap !important; + flex-wrap: wrap !important; +} + +.flex-nowrap { + -ms-flex-wrap: nowrap !important; + flex-wrap: nowrap !important; +} + +.flex-wrap-reverse { + -ms-flex-wrap: wrap-reverse !important; + flex-wrap: wrap-reverse !important; +} + +.flex-fill { + -ms-flex: 1 1 auto !important; + flex: 1 1 auto !important; +} + +.flex-grow-0 { + -ms-flex-positive: 0 !important; + flex-grow: 0 !important; +} + +.flex-grow-1 { + -ms-flex-positive: 1 !important; + flex-grow: 1 !important; +} + +.flex-shrink-0 { + -ms-flex-negative: 0 !important; + flex-shrink: 0 !important; +} + +.flex-shrink-1 { + -ms-flex-negative: 1 !important; + flex-shrink: 1 !important; +} + +.justify-content-start { + -ms-flex-pack: start !important; + justify-content: flex-start !important; +} + +.justify-content-end { + -ms-flex-pack: end !important; + justify-content: flex-end !important; +} + +.justify-content-center { + -ms-flex-pack: center !important; + justify-content: center !important; +} + +.justify-content-between { + -ms-flex-pack: justify !important; + justify-content: space-between !important; +} + +.justify-content-around { + -ms-flex-pack: distribute !important; + justify-content: space-around !important; +} + +.align-items-start { + -ms-flex-align: start !important; + align-items: flex-start !important; +} + +.align-items-end { + -ms-flex-align: end !important; + align-items: flex-end !important; +} + +.align-items-center { + -ms-flex-align: center !important; + align-items: center !important; +} + +.align-items-baseline { + -ms-flex-align: baseline !important; + align-items: baseline !important; +} + +.align-items-stretch { + -ms-flex-align: stretch !important; + align-items: stretch !important; +} + +.align-content-start { + -ms-flex-line-pack: start !important; + align-content: flex-start !important; +} + +.align-content-end { + -ms-flex-line-pack: end !important; + align-content: flex-end !important; +} + +.align-content-center { + -ms-flex-line-pack: center !important; + align-content: center !important; +} + +.align-content-between { + -ms-flex-line-pack: justify !important; + align-content: space-between !important; +} + +.align-content-around { + -ms-flex-line-pack: distribute !important; + align-content: space-around !important; +} + +.align-content-stretch { + -ms-flex-line-pack: stretch !important; + align-content: stretch !important; +} + +.align-self-auto { + -ms-flex-item-align: auto !important; + align-self: auto !important; +} + +.align-self-start { + -ms-flex-item-align: start !important; + align-self: flex-start !important; +} + +.align-self-end { + -ms-flex-item-align: end !important; + align-self: flex-end !important; +} + +.align-self-center { + -ms-flex-item-align: center !important; + align-self: center !important; +} + +.align-self-baseline { + -ms-flex-item-align: baseline !important; + align-self: baseline !important; +} + +.align-self-stretch { + -ms-flex-item-align: stretch !important; + align-self: stretch !important; +} + +@media (min-width: 576px) { + .flex-sm-row { + -ms-flex-direction: row !important; + flex-direction: row !important; + } + .flex-sm-column { + -ms-flex-direction: column !important; + flex-direction: column !important; + } + .flex-sm-row-reverse { + -ms-flex-direction: row-reverse !important; + flex-direction: row-reverse !important; + } + .flex-sm-column-reverse { + -ms-flex-direction: column-reverse !important; + flex-direction: column-reverse !important; + } + .flex-sm-wrap { + -ms-flex-wrap: wrap !important; + flex-wrap: wrap !important; + } + .flex-sm-nowrap { + -ms-flex-wrap: nowrap !important; + flex-wrap: nowrap !important; + } + .flex-sm-wrap-reverse { + -ms-flex-wrap: wrap-reverse !important; + flex-wrap: wrap-reverse !important; + } + .flex-sm-fill { + -ms-flex: 1 1 auto !important; + flex: 1 1 auto !important; + } + .flex-sm-grow-0 { + -ms-flex-positive: 0 !important; + flex-grow: 0 !important; + } + .flex-sm-grow-1 { + -ms-flex-positive: 1 !important; + flex-grow: 1 !important; + } + .flex-sm-shrink-0 { + -ms-flex-negative: 0 !important; + flex-shrink: 0 !important; + } + .flex-sm-shrink-1 { + -ms-flex-negative: 1 !important; + flex-shrink: 1 !important; + } + .justify-content-sm-start { + -ms-flex-pack: start !important; + justify-content: flex-start !important; + } + .justify-content-sm-end { + -ms-flex-pack: end !important; + justify-content: flex-end !important; + } + .justify-content-sm-center { + -ms-flex-pack: center !important; + justify-content: center !important; + } + .justify-content-sm-between { + -ms-flex-pack: justify !important; + justify-content: space-between !important; + } + .justify-content-sm-around { + -ms-flex-pack: distribute !important; + justify-content: space-around !important; + } + .align-items-sm-start { + -ms-flex-align: start !important; + align-items: flex-start !important; + } + .align-items-sm-end { + -ms-flex-align: end !important; + align-items: flex-end !important; + } + .align-items-sm-center { + -ms-flex-align: center !important; + align-items: center !important; + } + .align-items-sm-baseline { + -ms-flex-align: baseline !important; + align-items: baseline !important; + } + .align-items-sm-stretch { + -ms-flex-align: stretch !important; + align-items: stretch !important; + } + .align-content-sm-start { + -ms-flex-line-pack: start !important; + align-content: flex-start !important; + } + .align-content-sm-end { + -ms-flex-line-pack: end !important; + align-content: flex-end !important; + } + .align-content-sm-center { + -ms-flex-line-pack: center !important; + align-content: center !important; + } + .align-content-sm-between { + -ms-flex-line-pack: justify !important; + align-content: space-between !important; + } + .align-content-sm-around { + -ms-flex-line-pack: distribute !important; + align-content: space-around !important; + } + .align-content-sm-stretch { + -ms-flex-line-pack: stretch !important; + align-content: stretch !important; + } + .align-self-sm-auto { + -ms-flex-item-align: auto !important; + align-self: auto !important; + } + .align-self-sm-start { + -ms-flex-item-align: start !important; + align-self: flex-start !important; + } + .align-self-sm-end { + -ms-flex-item-align: end !important; + align-self: flex-end !important; + } + .align-self-sm-center { + -ms-flex-item-align: center !important; + align-self: center !important; + } + .align-self-sm-baseline { + -ms-flex-item-align: baseline !important; + align-self: baseline !important; + } + .align-self-sm-stretch { + -ms-flex-item-align: stretch !important; + align-self: stretch !important; + } +} + +@media (min-width: 768px) { + .flex-md-row { + -ms-flex-direction: row !important; + flex-direction: row !important; + } + .flex-md-column { + -ms-flex-direction: column !important; + flex-direction: column !important; + } + .flex-md-row-reverse { + -ms-flex-direction: row-reverse !important; + flex-direction: row-reverse !important; + } + .flex-md-column-reverse { + -ms-flex-direction: column-reverse !important; + flex-direction: column-reverse !important; + } + .flex-md-wrap { + -ms-flex-wrap: wrap !important; + flex-wrap: wrap !important; + } + .flex-md-nowrap { + -ms-flex-wrap: nowrap !important; + flex-wrap: nowrap !important; + } + .flex-md-wrap-reverse { + -ms-flex-wrap: wrap-reverse !important; + flex-wrap: wrap-reverse !important; + } + .flex-md-fill { + -ms-flex: 1 1 auto !important; + flex: 1 1 auto !important; + } + .flex-md-grow-0 { + -ms-flex-positive: 0 !important; + flex-grow: 0 !important; + } + .flex-md-grow-1 { + -ms-flex-positive: 1 !important; + flex-grow: 1 !important; + } + .flex-md-shrink-0 { + -ms-flex-negative: 0 !important; + flex-shrink: 0 !important; + } + .flex-md-shrink-1 { + -ms-flex-negative: 1 !important; + flex-shrink: 1 !important; + } + .justify-content-md-start { + -ms-flex-pack: start !important; + justify-content: flex-start !important; + } + .justify-content-md-end { + -ms-flex-pack: end !important; + justify-content: flex-end !important; + } + .justify-content-md-center { + -ms-flex-pack: center !important; + justify-content: center !important; + } + .justify-content-md-between { + -ms-flex-pack: justify !important; + justify-content: space-between !important; + } + .justify-content-md-around { + -ms-flex-pack: distribute !important; + justify-content: space-around !important; + } + .align-items-md-start { + -ms-flex-align: start !important; + align-items: flex-start !important; + } + .align-items-md-end { + -ms-flex-align: end !important; + align-items: flex-end !important; + } + .align-items-md-center { + -ms-flex-align: center !important; + align-items: center !important; + } + .align-items-md-baseline { + -ms-flex-align: baseline !important; + align-items: baseline !important; + } + .align-items-md-stretch { + -ms-flex-align: stretch !important; + align-items: stretch !important; + } + .align-content-md-start { + -ms-flex-line-pack: start !important; + align-content: flex-start !important; + } + .align-content-md-end { + -ms-flex-line-pack: end !important; + align-content: flex-end !important; + } + .align-content-md-center { + -ms-flex-line-pack: center !important; + align-content: center !important; + } + .align-content-md-between { + -ms-flex-line-pack: justify !important; + align-content: space-between !important; + } + .align-content-md-around { + -ms-flex-line-pack: distribute !important; + align-content: space-around !important; + } + .align-content-md-stretch { + -ms-flex-line-pack: stretch !important; + align-content: stretch !important; + } + .align-self-md-auto { + -ms-flex-item-align: auto !important; + align-self: auto !important; + } + .align-self-md-start { + -ms-flex-item-align: start !important; + align-self: flex-start !important; + } + .align-self-md-end { + -ms-flex-item-align: end !important; + align-self: flex-end !important; + } + .align-self-md-center { + -ms-flex-item-align: center !important; + align-self: center !important; + } + .align-self-md-baseline { + -ms-flex-item-align: baseline !important; + align-self: baseline !important; + } + .align-self-md-stretch { + -ms-flex-item-align: stretch !important; + align-self: stretch !important; + } +} + +@media (min-width: 992px) { + .flex-lg-row { + -ms-flex-direction: row !important; + flex-direction: row !important; + } + .flex-lg-column { + -ms-flex-direction: column !important; + flex-direction: column !important; + } + .flex-lg-row-reverse { + -ms-flex-direction: row-reverse !important; + flex-direction: row-reverse !important; + } + .flex-lg-column-reverse { + -ms-flex-direction: column-reverse !important; + flex-direction: column-reverse !important; + } + .flex-lg-wrap { + -ms-flex-wrap: wrap !important; + flex-wrap: wrap !important; + } + .flex-lg-nowrap { + -ms-flex-wrap: nowrap !important; + flex-wrap: nowrap !important; + } + .flex-lg-wrap-reverse { + -ms-flex-wrap: wrap-reverse !important; + flex-wrap: wrap-reverse !important; + } + .flex-lg-fill { + -ms-flex: 1 1 auto !important; + flex: 1 1 auto !important; + } + .flex-lg-grow-0 { + -ms-flex-positive: 0 !important; + flex-grow: 0 !important; + } + .flex-lg-grow-1 { + -ms-flex-positive: 1 !important; + flex-grow: 1 !important; + } + .flex-lg-shrink-0 { + -ms-flex-negative: 0 !important; + flex-shrink: 0 !important; + } + .flex-lg-shrink-1 { + -ms-flex-negative: 1 !important; + flex-shrink: 1 !important; + } + .justify-content-lg-start { + -ms-flex-pack: start !important; + justify-content: flex-start !important; + } + .justify-content-lg-end { + -ms-flex-pack: end !important; + justify-content: flex-end !important; + } + .justify-content-lg-center { + -ms-flex-pack: center !important; + justify-content: center !important; + } + .justify-content-lg-between { + -ms-flex-pack: justify !important; + justify-content: space-between !important; + } + .justify-content-lg-around { + -ms-flex-pack: distribute !important; + justify-content: space-around !important; + } + .align-items-lg-start { + -ms-flex-align: start !important; + align-items: flex-start !important; + } + .align-items-lg-end { + -ms-flex-align: end !important; + align-items: flex-end !important; + } + .align-items-lg-center { + -ms-flex-align: center !important; + align-items: center !important; + } + .align-items-lg-baseline { + -ms-flex-align: baseline !important; + align-items: baseline !important; + } + .align-items-lg-stretch { + -ms-flex-align: stretch !important; + align-items: stretch !important; + } + .align-content-lg-start { + -ms-flex-line-pack: start !important; + align-content: flex-start !important; + } + .align-content-lg-end { + -ms-flex-line-pack: end !important; + align-content: flex-end !important; + } + .align-content-lg-center { + -ms-flex-line-pack: center !important; + align-content: center !important; + } + .align-content-lg-between { + -ms-flex-line-pack: justify !important; + align-content: space-between !important; + } + .align-content-lg-around { + -ms-flex-line-pack: distribute !important; + align-content: space-around !important; + } + .align-content-lg-stretch { + -ms-flex-line-pack: stretch !important; + align-content: stretch !important; + } + .align-self-lg-auto { + -ms-flex-item-align: auto !important; + align-self: auto !important; + } + .align-self-lg-start { + -ms-flex-item-align: start !important; + align-self: flex-start !important; + } + .align-self-lg-end { + -ms-flex-item-align: end !important; + align-self: flex-end !important; + } + .align-self-lg-center { + -ms-flex-item-align: center !important; + align-self: center !important; + } + .align-self-lg-baseline { + -ms-flex-item-align: baseline !important; + align-self: baseline !important; + } + .align-self-lg-stretch { + -ms-flex-item-align: stretch !important; + align-self: stretch !important; + } +} + +@media (min-width: 1200px) { + .flex-xl-row { + -ms-flex-direction: row !important; + flex-direction: row !important; + } + .flex-xl-column { + -ms-flex-direction: column !important; + flex-direction: column !important; + } + .flex-xl-row-reverse { + -ms-flex-direction: row-reverse !important; + flex-direction: row-reverse !important; + } + .flex-xl-column-reverse { + -ms-flex-direction: column-reverse !important; + flex-direction: column-reverse !important; + } + .flex-xl-wrap { + -ms-flex-wrap: wrap !important; + flex-wrap: wrap !important; + } + .flex-xl-nowrap { + -ms-flex-wrap: nowrap !important; + flex-wrap: nowrap !important; + } + .flex-xl-wrap-reverse { + -ms-flex-wrap: wrap-reverse !important; + flex-wrap: wrap-reverse !important; + } + .flex-xl-fill { + -ms-flex: 1 1 auto !important; + flex: 1 1 auto !important; + } + .flex-xl-grow-0 { + -ms-flex-positive: 0 !important; + flex-grow: 0 !important; + } + .flex-xl-grow-1 { + -ms-flex-positive: 1 !important; + flex-grow: 1 !important; + } + .flex-xl-shrink-0 { + -ms-flex-negative: 0 !important; + flex-shrink: 0 !important; + } + .flex-xl-shrink-1 { + -ms-flex-negative: 1 !important; + flex-shrink: 1 !important; + } + .justify-content-xl-start { + -ms-flex-pack: start !important; + justify-content: flex-start !important; + } + .justify-content-xl-end { + -ms-flex-pack: end !important; + justify-content: flex-end !important; + } + .justify-content-xl-center { + -ms-flex-pack: center !important; + justify-content: center !important; + } + .justify-content-xl-between { + -ms-flex-pack: justify !important; + justify-content: space-between !important; + } + .justify-content-xl-around { + -ms-flex-pack: distribute !important; + justify-content: space-around !important; + } + .align-items-xl-start { + -ms-flex-align: start !important; + align-items: flex-start !important; + } + .align-items-xl-end { + -ms-flex-align: end !important; + align-items: flex-end !important; + } + .align-items-xl-center { + -ms-flex-align: center !important; + align-items: center !important; + } + .align-items-xl-baseline { + -ms-flex-align: baseline !important; + align-items: baseline !important; + } + .align-items-xl-stretch { + -ms-flex-align: stretch !important; + align-items: stretch !important; + } + .align-content-xl-start { + -ms-flex-line-pack: start !important; + align-content: flex-start !important; + } + .align-content-xl-end { + -ms-flex-line-pack: end !important; + align-content: flex-end !important; + } + .align-content-xl-center { + -ms-flex-line-pack: center !important; + align-content: center !important; + } + .align-content-xl-between { + -ms-flex-line-pack: justify !important; + align-content: space-between !important; + } + .align-content-xl-around { + -ms-flex-line-pack: distribute !important; + align-content: space-around !important; + } + .align-content-xl-stretch { + -ms-flex-line-pack: stretch !important; + align-content: stretch !important; + } + .align-self-xl-auto { + -ms-flex-item-align: auto !important; + align-self: auto !important; + } + .align-self-xl-start { + -ms-flex-item-align: start !important; + align-self: flex-start !important; + } + .align-self-xl-end { + -ms-flex-item-align: end !important; + align-self: flex-end !important; + } + .align-self-xl-center { + -ms-flex-item-align: center !important; + align-self: center !important; + } + .align-self-xl-baseline { + -ms-flex-item-align: baseline !important; + align-self: baseline !important; + } + .align-self-xl-stretch { + -ms-flex-item-align: stretch !important; + align-self: stretch !important; + } +} + +.float-left { + float: left !important; +} + +.float-right { + float: right !important; +} + +.float-none { + float: none !important; +} + +@media (min-width: 576px) { + .float-sm-left { + float: left !important; + } + .float-sm-right { + float: right !important; + } + .float-sm-none { + float: none !important; + } +} + +@media (min-width: 768px) { + .float-md-left { + float: left !important; + } + .float-md-right { + float: right !important; + } + .float-md-none { + float: none !important; + } +} + +@media (min-width: 992px) { + .float-lg-left { + float: left !important; + } + .float-lg-right { + float: right !important; + } + .float-lg-none { + float: none !important; + } +} + +@media (min-width: 1200px) { + .float-xl-left { + float: left !important; + } + .float-xl-right { + float: right !important; + } + .float-xl-none { + float: none !important; + } +} + +.overflow-auto { + overflow: auto !important; +} + +.overflow-hidden { + overflow: hidden !important; +} + +.position-static { + position: static !important; +} + +.position-relative { + position: relative !important; +} + +.position-absolute { + position: absolute !important; +} + +.position-fixed { + position: fixed !important; +} + +.position-sticky { + position: -webkit-sticky !important; + position: sticky !important; +} + +.fixed-top { + position: fixed; + top: 0; + right: 0; + left: 0; + z-index: 1030; +} + +.fixed-bottom { + position: fixed; + right: 0; + bottom: 0; + left: 0; + z-index: 1030; +} + +@supports ((position: -webkit-sticky) or (position: sticky)) { + .sticky-top { + position: -webkit-sticky; + position: sticky; + top: 0; + z-index: 1020; + } +} + +.sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + white-space: nowrap; + border: 0; +} + +.sr-only-focusable:active, .sr-only-focusable:focus { + position: static; + width: auto; + height: auto; + overflow: visible; + clip: auto; + white-space: normal; +} + +.shadow-sm { + box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important; +} + +.shadow { + box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important; +} + +.shadow-lg { + box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important; +} + +.shadow-none { + box-shadow: none !important; +} + +.w-25 { + width: 25% !important; +} + +.w-50 { + width: 50% !important; +} + +.w-75 { + width: 75% !important; +} + +.w-100 { + width: 100% !important; +} + +.w-auto { + width: auto !important; +} + +.h-25 { + height: 25% !important; +} + +.h-50 { + height: 50% !important; +} + +.h-75 { + height: 75% !important; +} + +.h-100 { + height: 100% !important; +} + +.h-auto { + height: auto !important; +} + +.mw-100 { + max-width: 100% !important; +} + +.mh-100 { + max-height: 100% !important; +} + +.min-vw-100 { + min-width: 100vw !important; +} + +.min-vh-100 { + min-height: 100vh !important; +} + +.vw-100 { + width: 100vw !important; +} + +.vh-100 { + height: 100vh !important; +} + +.stretched-link::after { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1; + pointer-events: auto; + content: ""; + background-color: rgba(0, 0, 0, 0); +} + +.m-0 { + margin: 0 !important; +} + +.mt-0, +.my-0 { + margin-top: 0 !important; +} + +.mr-0, +.mx-0 { + margin-right: 0 !important; +} + +.mb-0, +.my-0 { + margin-bottom: 0 !important; +} + +.ml-0, +.mx-0 { + margin-left: 0 !important; +} + +.m-1 { + margin: 0.25rem !important; +} + +.mt-1, +.my-1 { + margin-top: 0.25rem !important; +} + +.mr-1, +.mx-1 { + margin-right: 0.25rem !important; +} + +.mb-1, +.my-1 { + margin-bottom: 0.25rem !important; +} + +.ml-1, +.mx-1 { + margin-left: 0.25rem !important; +} + +.m-2 { + margin: 0.5rem !important; +} + +.mt-2, +.my-2 { + margin-top: 0.5rem !important; +} + +.mr-2, +.mx-2 { + margin-right: 0.5rem !important; +} + +.mb-2, +.my-2 { + margin-bottom: 0.5rem !important; +} + +.ml-2, +.mx-2 { + margin-left: 0.5rem !important; +} + +.m-3 { + margin: 1rem !important; +} + +.mt-3, +.my-3 { + margin-top: 1rem !important; +} + +.mr-3, +.mx-3 { + margin-right: 1rem !important; +} + +.mb-3, +.my-3 { + margin-bottom: 1rem !important; +} + +.ml-3, +.mx-3 { + margin-left: 1rem !important; +} + +.m-4 { + margin: 1.5rem !important; +} + +.mt-4, +.my-4 { + margin-top: 1.5rem !important; +} + +.mr-4, +.mx-4 { + margin-right: 1.5rem !important; +} + +.mb-4, +.my-4 { + margin-bottom: 1.5rem !important; +} + +.ml-4, +.mx-4 { + margin-left: 1.5rem !important; +} + +.m-5 { + margin: 3rem !important; +} + +.mt-5, +.my-5 { + margin-top: 3rem !important; +} + +.mr-5, +.mx-5 { + margin-right: 3rem !important; +} + +.mb-5, +.my-5 { + margin-bottom: 3rem !important; +} + +.ml-5, +.mx-5 { + margin-left: 3rem !important; +} + +.p-0 { + padding: 0 !important; +} + +.pt-0, +.py-0 { + padding-top: 0 !important; +} + +.pr-0, +.px-0 { + padding-right: 0 !important; +} + +.pb-0, +.py-0 { + padding-bottom: 0 !important; +} + +.pl-0, +.px-0 { + padding-left: 0 !important; +} + +.p-1 { + padding: 0.25rem !important; +} + +.pt-1, +.py-1 { + padding-top: 0.25rem !important; +} + +.pr-1, +.px-1 { + padding-right: 0.25rem !important; +} + +.pb-1, +.py-1 { + padding-bottom: 0.25rem !important; +} + +.pl-1, +.px-1 { + padding-left: 0.25rem !important; +} + +.p-2 { + padding: 0.5rem !important; +} + +.pt-2, +.py-2 { + padding-top: 0.5rem !important; +} + +.pr-2, +.px-2 { + padding-right: 0.5rem !important; +} + +.pb-2, +.py-2 { + padding-bottom: 0.5rem !important; +} + +.pl-2, +.px-2 { + padding-left: 0.5rem !important; +} + +.p-3 { + padding: 1rem !important; +} + +.pt-3, +.py-3 { + padding-top: 1rem !important; +} + +.pr-3, +.px-3 { + padding-right: 1rem !important; +} + +.pb-3, +.py-3 { + padding-bottom: 1rem !important; +} + +.pl-3, +.px-3 { + padding-left: 1rem !important; +} + +.p-4 { + padding: 1.5rem !important; +} + +.pt-4, +.py-4 { + padding-top: 1.5rem !important; +} + +.pr-4, +.px-4 { + padding-right: 1.5rem !important; +} + +.pb-4, +.py-4 { + padding-bottom: 1.5rem !important; +} + +.pl-4, +.px-4 { + padding-left: 1.5rem !important; +} + +.p-5 { + padding: 3rem !important; +} + +.pt-5, +.py-5 { + padding-top: 3rem !important; +} + +.pr-5, +.px-5 { + padding-right: 3rem !important; +} + +.pb-5, +.py-5 { + padding-bottom: 3rem !important; +} + +.pl-5, +.px-5 { + padding-left: 3rem !important; +} + +.m-n1 { + margin: -0.25rem !important; +} + +.mt-n1, +.my-n1 { + margin-top: -0.25rem !important; +} + +.mr-n1, +.mx-n1 { + margin-right: -0.25rem !important; +} + +.mb-n1, +.my-n1 { + margin-bottom: -0.25rem !important; +} + +.ml-n1, +.mx-n1 { + margin-left: -0.25rem !important; +} + +.m-n2 { + margin: -0.5rem !important; +} + +.mt-n2, +.my-n2 { + margin-top: -0.5rem !important; +} + +.mr-n2, +.mx-n2 { + margin-right: -0.5rem !important; +} + +.mb-n2, +.my-n2 { + margin-bottom: -0.5rem !important; +} + +.ml-n2, +.mx-n2 { + margin-left: -0.5rem !important; +} + +.m-n3 { + margin: -1rem !important; +} + +.mt-n3, +.my-n3 { + margin-top: -1rem !important; +} + +.mr-n3, +.mx-n3 { + margin-right: -1rem !important; +} + +.mb-n3, +.my-n3 { + margin-bottom: -1rem !important; +} + +.ml-n3, +.mx-n3 { + margin-left: -1rem !important; +} + +.m-n4 { + margin: -1.5rem !important; +} + +.mt-n4, +.my-n4 { + margin-top: -1.5rem !important; +} + +.mr-n4, +.mx-n4 { + margin-right: -1.5rem !important; +} + +.mb-n4, +.my-n4 { + margin-bottom: -1.5rem !important; +} + +.ml-n4, +.mx-n4 { + margin-left: -1.5rem !important; +} + +.m-n5 { + margin: -3rem !important; +} + +.mt-n5, +.my-n5 { + margin-top: -3rem !important; +} + +.mr-n5, +.mx-n5 { + margin-right: -3rem !important; +} + +.mb-n5, +.my-n5 { + margin-bottom: -3rem !important; +} + +.ml-n5, +.mx-n5 { + margin-left: -3rem !important; +} + +.m-auto { + margin: auto !important; +} + +.mt-auto, +.my-auto { + margin-top: auto !important; +} + +.mr-auto, +.mx-auto { + margin-right: auto !important; +} + +.mb-auto, +.my-auto { + margin-bottom: auto !important; +} + +.ml-auto, +.mx-auto { + margin-left: auto !important; +} + +@media (min-width: 576px) { + .m-sm-0 { + margin: 0 !important; + } + .mt-sm-0, + .my-sm-0 { + margin-top: 0 !important; + } + .mr-sm-0, + .mx-sm-0 { + margin-right: 0 !important; + } + .mb-sm-0, + .my-sm-0 { + margin-bottom: 0 !important; + } + .ml-sm-0, + .mx-sm-0 { + margin-left: 0 !important; + } + .m-sm-1 { + margin: 0.25rem !important; + } + .mt-sm-1, + .my-sm-1 { + margin-top: 0.25rem !important; + } + .mr-sm-1, + .mx-sm-1 { + margin-right: 0.25rem !important; + } + .mb-sm-1, + .my-sm-1 { + margin-bottom: 0.25rem !important; + } + .ml-sm-1, + .mx-sm-1 { + margin-left: 0.25rem !important; + } + .m-sm-2 { + margin: 0.5rem !important; + } + .mt-sm-2, + .my-sm-2 { + margin-top: 0.5rem !important; + } + .mr-sm-2, + .mx-sm-2 { + margin-right: 0.5rem !important; + } + .mb-sm-2, + .my-sm-2 { + margin-bottom: 0.5rem !important; + } + .ml-sm-2, + .mx-sm-2 { + margin-left: 0.5rem !important; + } + .m-sm-3 { + margin: 1rem !important; + } + .mt-sm-3, + .my-sm-3 { + margin-top: 1rem !important; + } + .mr-sm-3, + .mx-sm-3 { + margin-right: 1rem !important; + } + .mb-sm-3, + .my-sm-3 { + margin-bottom: 1rem !important; + } + .ml-sm-3, + .mx-sm-3 { + margin-left: 1rem !important; + } + .m-sm-4 { + margin: 1.5rem !important; + } + .mt-sm-4, + .my-sm-4 { + margin-top: 1.5rem !important; + } + .mr-sm-4, + .mx-sm-4 { + margin-right: 1.5rem !important; + } + .mb-sm-4, + .my-sm-4 { + margin-bottom: 1.5rem !important; + } + .ml-sm-4, + .mx-sm-4 { + margin-left: 1.5rem !important; + } + .m-sm-5 { + margin: 3rem !important; + } + .mt-sm-5, + .my-sm-5 { + margin-top: 3rem !important; + } + .mr-sm-5, + .mx-sm-5 { + margin-right: 3rem !important; + } + .mb-sm-5, + .my-sm-5 { + margin-bottom: 3rem !important; + } + .ml-sm-5, + .mx-sm-5 { + margin-left: 3rem !important; + } + .p-sm-0 { + padding: 0 !important; + } + .pt-sm-0, + .py-sm-0 { + padding-top: 0 !important; + } + .pr-sm-0, + .px-sm-0 { + padding-right: 0 !important; + } + .pb-sm-0, + .py-sm-0 { + padding-bottom: 0 !important; + } + .pl-sm-0, + .px-sm-0 { + padding-left: 0 !important; + } + .p-sm-1 { + padding: 0.25rem !important; + } + .pt-sm-1, + .py-sm-1 { + padding-top: 0.25rem !important; + } + .pr-sm-1, + .px-sm-1 { + padding-right: 0.25rem !important; + } + .pb-sm-1, + .py-sm-1 { + padding-bottom: 0.25rem !important; + } + .pl-sm-1, + .px-sm-1 { + padding-left: 0.25rem !important; + } + .p-sm-2 { + padding: 0.5rem !important; + } + .pt-sm-2, + .py-sm-2 { + padding-top: 0.5rem !important; + } + .pr-sm-2, + .px-sm-2 { + padding-right: 0.5rem !important; + } + .pb-sm-2, + .py-sm-2 { + padding-bottom: 0.5rem !important; + } + .pl-sm-2, + .px-sm-2 { + padding-left: 0.5rem !important; + } + .p-sm-3 { + padding: 1rem !important; + } + .pt-sm-3, + .py-sm-3 { + padding-top: 1rem !important; + } + .pr-sm-3, + .px-sm-3 { + padding-right: 1rem !important; + } + .pb-sm-3, + .py-sm-3 { + padding-bottom: 1rem !important; + } + .pl-sm-3, + .px-sm-3 { + padding-left: 1rem !important; + } + .p-sm-4 { + padding: 1.5rem !important; + } + .pt-sm-4, + .py-sm-4 { + padding-top: 1.5rem !important; + } + .pr-sm-4, + .px-sm-4 { + padding-right: 1.5rem !important; + } + .pb-sm-4, + .py-sm-4 { + padding-bottom: 1.5rem !important; + } + .pl-sm-4, + .px-sm-4 { + padding-left: 1.5rem !important; + } + .p-sm-5 { + padding: 3rem !important; + } + .pt-sm-5, + .py-sm-5 { + padding-top: 3rem !important; + } + .pr-sm-5, + .px-sm-5 { + padding-right: 3rem !important; + } + .pb-sm-5, + .py-sm-5 { + padding-bottom: 3rem !important; + } + .pl-sm-5, + .px-sm-5 { + padding-left: 3rem !important; + } + .m-sm-n1 { + margin: -0.25rem !important; + } + .mt-sm-n1, + .my-sm-n1 { + margin-top: -0.25rem !important; + } + .mr-sm-n1, + .mx-sm-n1 { + margin-right: -0.25rem !important; + } + .mb-sm-n1, + .my-sm-n1 { + margin-bottom: -0.25rem !important; + } + .ml-sm-n1, + .mx-sm-n1 { + margin-left: -0.25rem !important; + } + .m-sm-n2 { + margin: -0.5rem !important; + } + .mt-sm-n2, + .my-sm-n2 { + margin-top: -0.5rem !important; + } + .mr-sm-n2, + .mx-sm-n2 { + margin-right: -0.5rem !important; + } + .mb-sm-n2, + .my-sm-n2 { + margin-bottom: -0.5rem !important; + } + .ml-sm-n2, + .mx-sm-n2 { + margin-left: -0.5rem !important; + } + .m-sm-n3 { + margin: -1rem !important; + } + .mt-sm-n3, + .my-sm-n3 { + margin-top: -1rem !important; + } + .mr-sm-n3, + .mx-sm-n3 { + margin-right: -1rem !important; + } + .mb-sm-n3, + .my-sm-n3 { + margin-bottom: -1rem !important; + } + .ml-sm-n3, + .mx-sm-n3 { + margin-left: -1rem !important; + } + .m-sm-n4 { + margin: -1.5rem !important; + } + .mt-sm-n4, + .my-sm-n4 { + margin-top: -1.5rem !important; + } + .mr-sm-n4, + .mx-sm-n4 { + margin-right: -1.5rem !important; + } + .mb-sm-n4, + .my-sm-n4 { + margin-bottom: -1.5rem !important; + } + .ml-sm-n4, + .mx-sm-n4 { + margin-left: -1.5rem !important; + } + .m-sm-n5 { + margin: -3rem !important; + } + .mt-sm-n5, + .my-sm-n5 { + margin-top: -3rem !important; + } + .mr-sm-n5, + .mx-sm-n5 { + margin-right: -3rem !important; + } + .mb-sm-n5, + .my-sm-n5 { + margin-bottom: -3rem !important; + } + .ml-sm-n5, + .mx-sm-n5 { + margin-left: -3rem !important; + } + .m-sm-auto { + margin: auto !important; + } + .mt-sm-auto, + .my-sm-auto { + margin-top: auto !important; + } + .mr-sm-auto, + .mx-sm-auto { + margin-right: auto !important; + } + .mb-sm-auto, + .my-sm-auto { + margin-bottom: auto !important; + } + .ml-sm-auto, + .mx-sm-auto { + margin-left: auto !important; + } +} + +@media (min-width: 768px) { + .m-md-0 { + margin: 0 !important; + } + .mt-md-0, + .my-md-0 { + margin-top: 0 !important; + } + .mr-md-0, + .mx-md-0 { + margin-right: 0 !important; + } + .mb-md-0, + .my-md-0 { + margin-bottom: 0 !important; + } + .ml-md-0, + .mx-md-0 { + margin-left: 0 !important; + } + .m-md-1 { + margin: 0.25rem !important; + } + .mt-md-1, + .my-md-1 { + margin-top: 0.25rem !important; + } + .mr-md-1, + .mx-md-1 { + margin-right: 0.25rem !important; + } + .mb-md-1, + .my-md-1 { + margin-bottom: 0.25rem !important; + } + .ml-md-1, + .mx-md-1 { + margin-left: 0.25rem !important; + } + .m-md-2 { + margin: 0.5rem !important; + } + .mt-md-2, + .my-md-2 { + margin-top: 0.5rem !important; + } + .mr-md-2, + .mx-md-2 { + margin-right: 0.5rem !important; + } + .mb-md-2, + .my-md-2 { + margin-bottom: 0.5rem !important; + } + .ml-md-2, + .mx-md-2 { + margin-left: 0.5rem !important; + } + .m-md-3 { + margin: 1rem !important; + } + .mt-md-3, + .my-md-3 { + margin-top: 1rem !important; + } + .mr-md-3, + .mx-md-3 { + margin-right: 1rem !important; + } + .mb-md-3, + .my-md-3 { + margin-bottom: 1rem !important; + } + .ml-md-3, + .mx-md-3 { + margin-left: 1rem !important; + } + .m-md-4 { + margin: 1.5rem !important; + } + .mt-md-4, + .my-md-4 { + margin-top: 1.5rem !important; + } + .mr-md-4, + .mx-md-4 { + margin-right: 1.5rem !important; + } + .mb-md-4, + .my-md-4 { + margin-bottom: 1.5rem !important; + } + .ml-md-4, + .mx-md-4 { + margin-left: 1.5rem !important; + } + .m-md-5 { + margin: 3rem !important; + } + .mt-md-5, + .my-md-5 { + margin-top: 3rem !important; + } + .mr-md-5, + .mx-md-5 { + margin-right: 3rem !important; + } + .mb-md-5, + .my-md-5 { + margin-bottom: 3rem !important; + } + .ml-md-5, + .mx-md-5 { + margin-left: 3rem !important; + } + .p-md-0 { + padding: 0 !important; + } + .pt-md-0, + .py-md-0 { + padding-top: 0 !important; + } + .pr-md-0, + .px-md-0 { + padding-right: 0 !important; + } + .pb-md-0, + .py-md-0 { + padding-bottom: 0 !important; + } + .pl-md-0, + .px-md-0 { + padding-left: 0 !important; + } + .p-md-1 { + padding: 0.25rem !important; + } + .pt-md-1, + .py-md-1 { + padding-top: 0.25rem !important; + } + .pr-md-1, + .px-md-1 { + padding-right: 0.25rem !important; + } + .pb-md-1, + .py-md-1 { + padding-bottom: 0.25rem !important; + } + .pl-md-1, + .px-md-1 { + padding-left: 0.25rem !important; + } + .p-md-2 { + padding: 0.5rem !important; + } + .pt-md-2, + .py-md-2 { + padding-top: 0.5rem !important; + } + .pr-md-2, + .px-md-2 { + padding-right: 0.5rem !important; + } + .pb-md-2, + .py-md-2 { + padding-bottom: 0.5rem !important; + } + .pl-md-2, + .px-md-2 { + padding-left: 0.5rem !important; + } + .p-md-3 { + padding: 1rem !important; + } + .pt-md-3, + .py-md-3 { + padding-top: 1rem !important; + } + .pr-md-3, + .px-md-3 { + padding-right: 1rem !important; + } + .pb-md-3, + .py-md-3 { + padding-bottom: 1rem !important; + } + .pl-md-3, + .px-md-3 { + padding-left: 1rem !important; + } + .p-md-4 { + padding: 1.5rem !important; + } + .pt-md-4, + .py-md-4 { + padding-top: 1.5rem !important; + } + .pr-md-4, + .px-md-4 { + padding-right: 1.5rem !important; + } + .pb-md-4, + .py-md-4 { + padding-bottom: 1.5rem !important; + } + .pl-md-4, + .px-md-4 { + padding-left: 1.5rem !important; + } + .p-md-5 { + padding: 3rem !important; + } + .pt-md-5, + .py-md-5 { + padding-top: 3rem !important; + } + .pr-md-5, + .px-md-5 { + padding-right: 3rem !important; + } + .pb-md-5, + .py-md-5 { + padding-bottom: 3rem !important; + } + .pl-md-5, + .px-md-5 { + padding-left: 3rem !important; + } + .m-md-n1 { + margin: -0.25rem !important; + } + .mt-md-n1, + .my-md-n1 { + margin-top: -0.25rem !important; + } + .mr-md-n1, + .mx-md-n1 { + margin-right: -0.25rem !important; + } + .mb-md-n1, + .my-md-n1 { + margin-bottom: -0.25rem !important; + } + .ml-md-n1, + .mx-md-n1 { + margin-left: -0.25rem !important; + } + .m-md-n2 { + margin: -0.5rem !important; + } + .mt-md-n2, + .my-md-n2 { + margin-top: -0.5rem !important; + } + .mr-md-n2, + .mx-md-n2 { + margin-right: -0.5rem !important; + } + .mb-md-n2, + .my-md-n2 { + margin-bottom: -0.5rem !important; + } + .ml-md-n2, + .mx-md-n2 { + margin-left: -0.5rem !important; + } + .m-md-n3 { + margin: -1rem !important; + } + .mt-md-n3, + .my-md-n3 { + margin-top: -1rem !important; + } + .mr-md-n3, + .mx-md-n3 { + margin-right: -1rem !important; + } + .mb-md-n3, + .my-md-n3 { + margin-bottom: -1rem !important; + } + .ml-md-n3, + .mx-md-n3 { + margin-left: -1rem !important; + } + .m-md-n4 { + margin: -1.5rem !important; + } + .mt-md-n4, + .my-md-n4 { + margin-top: -1.5rem !important; + } + .mr-md-n4, + .mx-md-n4 { + margin-right: -1.5rem !important; + } + .mb-md-n4, + .my-md-n4 { + margin-bottom: -1.5rem !important; + } + .ml-md-n4, + .mx-md-n4 { + margin-left: -1.5rem !important; + } + .m-md-n5 { + margin: -3rem !important; + } + .mt-md-n5, + .my-md-n5 { + margin-top: -3rem !important; + } + .mr-md-n5, + .mx-md-n5 { + margin-right: -3rem !important; + } + .mb-md-n5, + .my-md-n5 { + margin-bottom: -3rem !important; + } + .ml-md-n5, + .mx-md-n5 { + margin-left: -3rem !important; + } + .m-md-auto { + margin: auto !important; + } + .mt-md-auto, + .my-md-auto { + margin-top: auto !important; + } + .mr-md-auto, + .mx-md-auto { + margin-right: auto !important; + } + .mb-md-auto, + .my-md-auto { + margin-bottom: auto !important; + } + .ml-md-auto, + .mx-md-auto { + margin-left: auto !important; + } +} + +@media (min-width: 992px) { + .m-lg-0 { + margin: 0 !important; + } + .mt-lg-0, + .my-lg-0 { + margin-top: 0 !important; + } + .mr-lg-0, + .mx-lg-0 { + margin-right: 0 !important; + } + .mb-lg-0, + .my-lg-0 { + margin-bottom: 0 !important; + } + .ml-lg-0, + .mx-lg-0 { + margin-left: 0 !important; + } + .m-lg-1 { + margin: 0.25rem !important; + } + .mt-lg-1, + .my-lg-1 { + margin-top: 0.25rem !important; + } + .mr-lg-1, + .mx-lg-1 { + margin-right: 0.25rem !important; + } + .mb-lg-1, + .my-lg-1 { + margin-bottom: 0.25rem !important; + } + .ml-lg-1, + .mx-lg-1 { + margin-left: 0.25rem !important; + } + .m-lg-2 { + margin: 0.5rem !important; + } + .mt-lg-2, + .my-lg-2 { + margin-top: 0.5rem !important; + } + .mr-lg-2, + .mx-lg-2 { + margin-right: 0.5rem !important; + } + .mb-lg-2, + .my-lg-2 { + margin-bottom: 0.5rem !important; + } + .ml-lg-2, + .mx-lg-2 { + margin-left: 0.5rem !important; + } + .m-lg-3 { + margin: 1rem !important; + } + .mt-lg-3, + .my-lg-3 { + margin-top: 1rem !important; + } + .mr-lg-3, + .mx-lg-3 { + margin-right: 1rem !important; + } + .mb-lg-3, + .my-lg-3 { + margin-bottom: 1rem !important; + } + .ml-lg-3, + .mx-lg-3 { + margin-left: 1rem !important; + } + .m-lg-4 { + margin: 1.5rem !important; + } + .mt-lg-4, + .my-lg-4 { + margin-top: 1.5rem !important; + } + .mr-lg-4, + .mx-lg-4 { + margin-right: 1.5rem !important; + } + .mb-lg-4, + .my-lg-4 { + margin-bottom: 1.5rem !important; + } + .ml-lg-4, + .mx-lg-4 { + margin-left: 1.5rem !important; + } + .m-lg-5 { + margin: 3rem !important; + } + .mt-lg-5, + .my-lg-5 { + margin-top: 3rem !important; + } + .mr-lg-5, + .mx-lg-5 { + margin-right: 3rem !important; + } + .mb-lg-5, + .my-lg-5 { + margin-bottom: 3rem !important; + } + .ml-lg-5, + .mx-lg-5 { + margin-left: 3rem !important; + } + .p-lg-0 { + padding: 0 !important; + } + .pt-lg-0, + .py-lg-0 { + padding-top: 0 !important; + } + .pr-lg-0, + .px-lg-0 { + padding-right: 0 !important; + } + .pb-lg-0, + .py-lg-0 { + padding-bottom: 0 !important; + } + .pl-lg-0, + .px-lg-0 { + padding-left: 0 !important; + } + .p-lg-1 { + padding: 0.25rem !important; + } + .pt-lg-1, + .py-lg-1 { + padding-top: 0.25rem !important; + } + .pr-lg-1, + .px-lg-1 { + padding-right: 0.25rem !important; + } + .pb-lg-1, + .py-lg-1 { + padding-bottom: 0.25rem !important; + } + .pl-lg-1, + .px-lg-1 { + padding-left: 0.25rem !important; + } + .p-lg-2 { + padding: 0.5rem !important; + } + .pt-lg-2, + .py-lg-2 { + padding-top: 0.5rem !important; + } + .pr-lg-2, + .px-lg-2 { + padding-right: 0.5rem !important; + } + .pb-lg-2, + .py-lg-2 { + padding-bottom: 0.5rem !important; + } + .pl-lg-2, + .px-lg-2 { + padding-left: 0.5rem !important; + } + .p-lg-3 { + padding: 1rem !important; + } + .pt-lg-3, + .py-lg-3 { + padding-top: 1rem !important; + } + .pr-lg-3, + .px-lg-3 { + padding-right: 1rem !important; + } + .pb-lg-3, + .py-lg-3 { + padding-bottom: 1rem !important; + } + .pl-lg-3, + .px-lg-3 { + padding-left: 1rem !important; + } + .p-lg-4 { + padding: 1.5rem !important; + } + .pt-lg-4, + .py-lg-4 { + padding-top: 1.5rem !important; + } + .pr-lg-4, + .px-lg-4 { + padding-right: 1.5rem !important; + } + .pb-lg-4, + .py-lg-4 { + padding-bottom: 1.5rem !important; + } + .pl-lg-4, + .px-lg-4 { + padding-left: 1.5rem !important; + } + .p-lg-5 { + padding: 3rem !important; + } + .pt-lg-5, + .py-lg-5 { + padding-top: 3rem !important; + } + .pr-lg-5, + .px-lg-5 { + padding-right: 3rem !important; + } + .pb-lg-5, + .py-lg-5 { + padding-bottom: 3rem !important; + } + .pl-lg-5, + .px-lg-5 { + padding-left: 3rem !important; + } + .m-lg-n1 { + margin: -0.25rem !important; + } + .mt-lg-n1, + .my-lg-n1 { + margin-top: -0.25rem !important; + } + .mr-lg-n1, + .mx-lg-n1 { + margin-right: -0.25rem !important; + } + .mb-lg-n1, + .my-lg-n1 { + margin-bottom: -0.25rem !important; + } + .ml-lg-n1, + .mx-lg-n1 { + margin-left: -0.25rem !important; + } + .m-lg-n2 { + margin: -0.5rem !important; + } + .mt-lg-n2, + .my-lg-n2 { + margin-top: -0.5rem !important; + } + .mr-lg-n2, + .mx-lg-n2 { + margin-right: -0.5rem !important; + } + .mb-lg-n2, + .my-lg-n2 { + margin-bottom: -0.5rem !important; + } + .ml-lg-n2, + .mx-lg-n2 { + margin-left: -0.5rem !important; + } + .m-lg-n3 { + margin: -1rem !important; + } + .mt-lg-n3, + .my-lg-n3 { + margin-top: -1rem !important; + } + .mr-lg-n3, + .mx-lg-n3 { + margin-right: -1rem !important; + } + .mb-lg-n3, + .my-lg-n3 { + margin-bottom: -1rem !important; + } + .ml-lg-n3, + .mx-lg-n3 { + margin-left: -1rem !important; + } + .m-lg-n4 { + margin: -1.5rem !important; + } + .mt-lg-n4, + .my-lg-n4 { + margin-top: -1.5rem !important; + } + .mr-lg-n4, + .mx-lg-n4 { + margin-right: -1.5rem !important; + } + .mb-lg-n4, + .my-lg-n4 { + margin-bottom: -1.5rem !important; + } + .ml-lg-n4, + .mx-lg-n4 { + margin-left: -1.5rem !important; + } + .m-lg-n5 { + margin: -3rem !important; + } + .mt-lg-n5, + .my-lg-n5 { + margin-top: -3rem !important; + } + .mr-lg-n5, + .mx-lg-n5 { + margin-right: -3rem !important; + } + .mb-lg-n5, + .my-lg-n5 { + margin-bottom: -3rem !important; + } + .ml-lg-n5, + .mx-lg-n5 { + margin-left: -3rem !important; + } + .m-lg-auto { + margin: auto !important; + } + .mt-lg-auto, + .my-lg-auto { + margin-top: auto !important; + } + .mr-lg-auto, + .mx-lg-auto { + margin-right: auto !important; + } + .mb-lg-auto, + .my-lg-auto { + margin-bottom: auto !important; + } + .ml-lg-auto, + .mx-lg-auto { + margin-left: auto !important; + } +} + +@media (min-width: 1200px) { + .m-xl-0 { + margin: 0 !important; + } + .mt-xl-0, + .my-xl-0 { + margin-top: 0 !important; + } + .mr-xl-0, + .mx-xl-0 { + margin-right: 0 !important; + } + .mb-xl-0, + .my-xl-0 { + margin-bottom: 0 !important; + } + .ml-xl-0, + .mx-xl-0 { + margin-left: 0 !important; + } + .m-xl-1 { + margin: 0.25rem !important; + } + .mt-xl-1, + .my-xl-1 { + margin-top: 0.25rem !important; + } + .mr-xl-1, + .mx-xl-1 { + margin-right: 0.25rem !important; + } + .mb-xl-1, + .my-xl-1 { + margin-bottom: 0.25rem !important; + } + .ml-xl-1, + .mx-xl-1 { + margin-left: 0.25rem !important; + } + .m-xl-2 { + margin: 0.5rem !important; + } + .mt-xl-2, + .my-xl-2 { + margin-top: 0.5rem !important; + } + .mr-xl-2, + .mx-xl-2 { + margin-right: 0.5rem !important; + } + .mb-xl-2, + .my-xl-2 { + margin-bottom: 0.5rem !important; + } + .ml-xl-2, + .mx-xl-2 { + margin-left: 0.5rem !important; + } + .m-xl-3 { + margin: 1rem !important; + } + .mt-xl-3, + .my-xl-3 { + margin-top: 1rem !important; + } + .mr-xl-3, + .mx-xl-3 { + margin-right: 1rem !important; + } + .mb-xl-3, + .my-xl-3 { + margin-bottom: 1rem !important; + } + .ml-xl-3, + .mx-xl-3 { + margin-left: 1rem !important; + } + .m-xl-4 { + margin: 1.5rem !important; + } + .mt-xl-4, + .my-xl-4 { + margin-top: 1.5rem !important; + } + .mr-xl-4, + .mx-xl-4 { + margin-right: 1.5rem !important; + } + .mb-xl-4, + .my-xl-4 { + margin-bottom: 1.5rem !important; + } + .ml-xl-4, + .mx-xl-4 { + margin-left: 1.5rem !important; + } + .m-xl-5 { + margin: 3rem !important; + } + .mt-xl-5, + .my-xl-5 { + margin-top: 3rem !important; + } + .mr-xl-5, + .mx-xl-5 { + margin-right: 3rem !important; + } + .mb-xl-5, + .my-xl-5 { + margin-bottom: 3rem !important; + } + .ml-xl-5, + .mx-xl-5 { + margin-left: 3rem !important; + } + .p-xl-0 { + padding: 0 !important; + } + .pt-xl-0, + .py-xl-0 { + padding-top: 0 !important; + } + .pr-xl-0, + .px-xl-0 { + padding-right: 0 !important; + } + .pb-xl-0, + .py-xl-0 { + padding-bottom: 0 !important; + } + .pl-xl-0, + .px-xl-0 { + padding-left: 0 !important; + } + .p-xl-1 { + padding: 0.25rem !important; + } + .pt-xl-1, + .py-xl-1 { + padding-top: 0.25rem !important; + } + .pr-xl-1, + .px-xl-1 { + padding-right: 0.25rem !important; + } + .pb-xl-1, + .py-xl-1 { + padding-bottom: 0.25rem !important; + } + .pl-xl-1, + .px-xl-1 { + padding-left: 0.25rem !important; + } + .p-xl-2 { + padding: 0.5rem !important; + } + .pt-xl-2, + .py-xl-2 { + padding-top: 0.5rem !important; + } + .pr-xl-2, + .px-xl-2 { + padding-right: 0.5rem !important; + } + .pb-xl-2, + .py-xl-2 { + padding-bottom: 0.5rem !important; + } + .pl-xl-2, + .px-xl-2 { + padding-left: 0.5rem !important; + } + .p-xl-3 { + padding: 1rem !important; + } + .pt-xl-3, + .py-xl-3 { + padding-top: 1rem !important; + } + .pr-xl-3, + .px-xl-3 { + padding-right: 1rem !important; + } + .pb-xl-3, + .py-xl-3 { + padding-bottom: 1rem !important; + } + .pl-xl-3, + .px-xl-3 { + padding-left: 1rem !important; + } + .p-xl-4 { + padding: 1.5rem !important; + } + .pt-xl-4, + .py-xl-4 { + padding-top: 1.5rem !important; + } + .pr-xl-4, + .px-xl-4 { + padding-right: 1.5rem !important; + } + .pb-xl-4, + .py-xl-4 { + padding-bottom: 1.5rem !important; + } + .pl-xl-4, + .px-xl-4 { + padding-left: 1.5rem !important; + } + .p-xl-5 { + padding: 3rem !important; + } + .pt-xl-5, + .py-xl-5 { + padding-top: 3rem !important; + } + .pr-xl-5, + .px-xl-5 { + padding-right: 3rem !important; + } + .pb-xl-5, + .py-xl-5 { + padding-bottom: 3rem !important; + } + .pl-xl-5, + .px-xl-5 { + padding-left: 3rem !important; + } + .m-xl-n1 { + margin: -0.25rem !important; + } + .mt-xl-n1, + .my-xl-n1 { + margin-top: -0.25rem !important; + } + .mr-xl-n1, + .mx-xl-n1 { + margin-right: -0.25rem !important; + } + .mb-xl-n1, + .my-xl-n1 { + margin-bottom: -0.25rem !important; + } + .ml-xl-n1, + .mx-xl-n1 { + margin-left: -0.25rem !important; + } + .m-xl-n2 { + margin: -0.5rem !important; + } + .mt-xl-n2, + .my-xl-n2 { + margin-top: -0.5rem !important; + } + .mr-xl-n2, + .mx-xl-n2 { + margin-right: -0.5rem !important; + } + .mb-xl-n2, + .my-xl-n2 { + margin-bottom: -0.5rem !important; + } + .ml-xl-n2, + .mx-xl-n2 { + margin-left: -0.5rem !important; + } + .m-xl-n3 { + margin: -1rem !important; + } + .mt-xl-n3, + .my-xl-n3 { + margin-top: -1rem !important; + } + .mr-xl-n3, + .mx-xl-n3 { + margin-right: -1rem !important; + } + .mb-xl-n3, + .my-xl-n3 { + margin-bottom: -1rem !important; + } + .ml-xl-n3, + .mx-xl-n3 { + margin-left: -1rem !important; + } + .m-xl-n4 { + margin: -1.5rem !important; + } + .mt-xl-n4, + .my-xl-n4 { + margin-top: -1.5rem !important; + } + .mr-xl-n4, + .mx-xl-n4 { + margin-right: -1.5rem !important; + } + .mb-xl-n4, + .my-xl-n4 { + margin-bottom: -1.5rem !important; + } + .ml-xl-n4, + .mx-xl-n4 { + margin-left: -1.5rem !important; + } + .m-xl-n5 { + margin: -3rem !important; + } + .mt-xl-n5, + .my-xl-n5 { + margin-top: -3rem !important; + } + .mr-xl-n5, + .mx-xl-n5 { + margin-right: -3rem !important; + } + .mb-xl-n5, + .my-xl-n5 { + margin-bottom: -3rem !important; + } + .ml-xl-n5, + .mx-xl-n5 { + margin-left: -3rem !important; + } + .m-xl-auto { + margin: auto !important; + } + .mt-xl-auto, + .my-xl-auto { + margin-top: auto !important; + } + .mr-xl-auto, + .mx-xl-auto { + margin-right: auto !important; + } + .mb-xl-auto, + .my-xl-auto { + margin-bottom: auto !important; + } + .ml-xl-auto, + .mx-xl-auto { + margin-left: auto !important; + } +} + +.text-monospace { + font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace !important; +} + +.text-justify { + text-align: justify !important; +} + +.text-wrap { + white-space: normal !important; +} + +.text-nowrap { + white-space: nowrap !important; +} + +.text-truncate { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +.text-left { + text-align: left !important; +} + +.text-right { + text-align: right !important; +} + +.text-center { + text-align: center !important; +} + +@media (min-width: 576px) { + .text-sm-left { + text-align: left !important; + } + .text-sm-right { + text-align: right !important; + } + .text-sm-center { + text-align: center !important; + } +} + +@media (min-width: 768px) { + .text-md-left { + text-align: left !important; + } + .text-md-right { + text-align: right !important; + } + .text-md-center { + text-align: center !important; + } +} + +@media (min-width: 992px) { + .text-lg-left { + text-align: left !important; + } + .text-lg-right { + text-align: right !important; + } + .text-lg-center { + text-align: center !important; + } +} + +@media (min-width: 1200px) { + .text-xl-left { + text-align: left !important; + } + .text-xl-right { + text-align: right !important; + } + .text-xl-center { + text-align: center !important; + } +} + +.text-lowercase { + text-transform: lowercase !important; +} + +.text-uppercase { + text-transform: uppercase !important; +} + +.text-capitalize { + text-transform: capitalize !important; +} + +.font-weight-light { + font-weight: 300 !important; +} + +.font-weight-lighter { + font-weight: lighter !important; +} + +.font-weight-normal { + font-weight: 400 !important; +} + +.font-weight-bold { + font-weight: 700 !important; +} + +.font-weight-bolder { + font-weight: bolder !important; +} + +.font-italic { + font-style: italic !important; +} + +.text-white { + color: #fff !important; +} + +.text-primary { + color: #007bff !important; +} + +a.text-primary:hover, a.text-primary:focus { + color: #0056b3 !important; +} + +.text-secondary { + color: #6c757d !important; +} + +a.text-secondary:hover, a.text-secondary:focus { + color: #494f54 !important; +} + +.text-success { + color: #28a745 !important; +} + +a.text-success:hover, a.text-success:focus { + color: #19692c !important; +} + +.text-info { + color: #17a2b8 !important; +} + +a.text-info:hover, a.text-info:focus { + color: #0f6674 !important; +} + +.text-warning { + color: #ffc107 !important; +} + +a.text-warning:hover, a.text-warning:focus { + color: #ba8b00 !important; +} + +.text-danger { + color: #dc3545 !important; +} + +a.text-danger:hover, a.text-danger:focus { + color: #a71d2a !important; +} + +.text-light { + color: #f8f9fa !important; +} + +a.text-light:hover, a.text-light:focus { + color: #cbd3da !important; +} + +.text-dark { + color: #343a40 !important; +} + +a.text-dark:hover, a.text-dark:focus { + color: #121416 !important; +} + +.text-body { + color: #212529 !important; +} + +.text-muted { + color: #6c757d !important; +} + +.text-black-50 { + color: rgba(0, 0, 0, 0.5) !important; +} + +.text-white-50 { + color: rgba(255, 255, 255, 0.5) !important; +} + +.text-hide { + font: 0/0 a; + color: transparent; + text-shadow: none; + background-color: transparent; + border: 0; +} + +.text-decoration-none { + text-decoration: none !important; +} + +.text-break { + word-break: break-word !important; + overflow-wrap: break-word !important; +} + +.text-reset { + color: inherit !important; +} + +.visible { + visibility: visible !important; +} + +.invisible { + visibility: hidden !important; +} + +@media print { + *, + *::before, + *::after { + text-shadow: none !important; + box-shadow: none !important; + } + a:not(.btn) { + text-decoration: underline; + } + abbr[title]::after { + content: " (" attr(title) ")"; + } + pre { + white-space: pre-wrap !important; + } + pre, + blockquote { + border: 1px solid #adb5bd; + page-break-inside: avoid; + } + thead { + display: table-header-group; + } + tr, + img { + page-break-inside: avoid; + } + p, + h2, + h3 { + orphans: 3; + widows: 3; + } + h2, + h3 { + page-break-after: avoid; + } + @page { + size: a3; + } + body { + min-width: 992px !important; + } + .container { + min-width: 992px !important; + } + .navbar { + display: none; + } + .badge { + border: 1px solid #000; + } + .table { + border-collapse: collapse !important; + } + .table td, + .table th { + background-color: #fff !important; + } + .table-bordered th, + .table-bordered td { + border: 1px solid #dee2e6 !important; + } + .table-dark { + color: inherit; + } + .table-dark th, + .table-dark td, + .table-dark thead th, + .table-dark tbody + tbody { + border-color: #dee2e6; + } + .table .thead-dark th { + color: inherit; + border-color: #dee2e6; + } +} +/*# sourceMappingURL=bootstrap.css.map */ \ No newline at end of file diff --git a/css/bootstrap.css.map b/css/bootstrap.css.map new file mode 100644 index 000000000..521afc5be --- /dev/null +++ b/css/bootstrap.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../scss/bootstrap.scss","bootstrap.css","../../scss/_root.scss","../../scss/_reboot.scss","../../scss/_variables.scss","../../scss/vendor/_rfs.scss","../../scss/mixins/_hover.scss","../../scss/_type.scss","../../scss/mixins/_lists.scss","../../scss/_images.scss","../../scss/mixins/_image.scss","../../scss/mixins/_border-radius.scss","../../scss/_code.scss","../../scss/_grid.scss","../../scss/mixins/_grid.scss","../../scss/mixins/_breakpoints.scss","../../scss/mixins/_grid-framework.scss","../../scss/_tables.scss","../../scss/mixins/_table-row.scss","../../scss/_functions.scss","../../scss/_forms.scss","../../scss/mixins/_transition.scss","../../scss/mixins/_forms.scss","../../scss/mixins/_gradients.scss","../../scss/_buttons.scss","../../scss/mixins/_buttons.scss","../../scss/_transitions.scss","../../scss/_dropdown.scss","../../scss/mixins/_caret.scss","../../scss/mixins/_nav-divider.scss","../../scss/_button-group.scss","../../scss/_input-group.scss","../../scss/_custom-forms.scss","../../scss/_nav.scss","../../scss/_navbar.scss","../../scss/_card.scss","../../scss/_breadcrumb.scss","../../scss/_pagination.scss","../../scss/mixins/_pagination.scss","../../scss/_badge.scss","../../scss/mixins/_badge.scss","../../scss/_jumbotron.scss","../../scss/_alert.scss","../../scss/mixins/_alert.scss","../../scss/_progress.scss","../../scss/_media.scss","../../scss/_list-group.scss","../../scss/mixins/_list-group.scss","../../scss/_close.scss","../../scss/_toasts.scss","../../scss/_modal.scss","../../scss/_tooltip.scss","../../scss/mixins/_reset-text.scss","../../scss/_popover.scss","../../scss/_carousel.scss","../../scss/mixins/_clearfix.scss","../../scss/_spinners.scss","../../scss/utilities/_align.scss","../../scss/mixins/_background-variant.scss","../../scss/utilities/_background.scss","../../scss/utilities/_borders.scss","../../scss/utilities/_display.scss","../../scss/utilities/_embed.scss","../../scss/utilities/_flex.scss","../../scss/utilities/_float.scss","../../scss/utilities/_overflow.scss","../../scss/utilities/_position.scss","../../scss/utilities/_screenreaders.scss","../../scss/mixins/_screen-reader.scss","../../scss/utilities/_shadows.scss","../../scss/utilities/_sizing.scss","../../scss/utilities/_stretched-link.scss","../../scss/utilities/_spacing.scss","../../scss/utilities/_text.scss","../../scss/mixins/_text-truncate.scss","../../scss/mixins/_text-emphasis.scss","../../scss/mixins/_text-hide.scss","../../scss/utilities/_visibility.scss","../../scss/_print.scss"],"names":[],"mappings":"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AAwB;AFpH1B;;AE4HA;EACE,aAAa;EACb,0BAA0B;AFzH5B;;AEgIA;EACE,qBAAqB;AF7HvB;;AEgIA;EACE,kBAAkB;EAClB,eAAe;AF7HjB;;AEgIA;EACE,aAAa;AF7Hf;;AAEA;EEiIE,wBAAwB;AF/H1B;;AM3VA;;EAEE,qBHySuC;EGvSvC,gBHyS+B;EGxS/B,gBHyS+B;AHoDjC;;AMzVA;EFgHM,iBAtCY;AJmRlB;;AM5VA;EF+GM,eAtCY;AJuRlB;;AM/VA;EF8GM,kBAtCY;AJ2RlB;;AMlWA;EF6GM,iBAtCY;AJ+RlB;;AMrWA;EF4GM,kBAtCY;AJmSlB;;AMxWA;EF2GM,eAtCY;AJuSlB;;AM1WA;EFyGM,kBAtCY;EEjEhB,gBH2S+B;AHkEjC;;AMzWA;EFmGM,eAtCY;EE3DhB,gBH8R+B;EG7R/B,gBHqR+B;AHuFjC;;AM1WA;EF8FM,iBAtCY;EEtDhB,gBH0R+B;EGzR/B,gBHgR+B;AH6FjC;;AM3WA;EFyFM,iBAtCY;EEjDhB,gBHsR+B;EGrR/B,gBH2Q+B;AHmGjC;;AM5WA;EFoFM,iBAtCY;EE5ChB,gBHkR+B;EGjR/B,gBHsQ+B;AHyGjC;;AElVA;EIpBE,gBHiFW;EGhFX,mBHgFW;EG/EX,SAAS;EACT,wCHzCa;AHmZf;;AMlWA;;EFMI,cAAW;EEHb,gBH8N+B;AHuIjC;;AMlWA;;EAEE,cHsQgC;EGrQhC,yBH8QmC;AHuFrC;;AM7VA;EC/EE,eAAe;EACf,gBAAgB;APgblB;;AM7VA;ECpFE,eAAe;EACf,gBAAgB;APqblB;;AM/VA;EACE,qBAAqB;ANkWvB;;AMnWA;EAII,oBHwP+B;AH2GnC;;AMzVA;EFjCI,cAAW;EEmCb,yBAAyB;AN4V3B;;AMxVA;EACE,mBHwBW;ECTP,kBAtCY;AJmXlB;;AMxVA;EACE,cAAc;EF7CZ,cAAW;EE+Cb,cH1GgB;AHqclB;;AM9VA;EAMI,qBAAqB;AN4VzB;;AQ/cA;ECIE,eAAe;EAGf,YAAY;AT6cd;;AQ9cA;EACE,gBLigCwC;EKhgCxC,sBLRa;EKSb,yBLNgB;EOLd,sBP6OgC;EMvOlC,eAAe;EAGf,YAAY;ATsdd;;AQxcA;EAEE,qBAAqB;AR0cvB;;AQvcA;EACE,qBAA0B;EAC1B,cAAc;AR0chB;;AQvcA;EJkCI,cAAW;EIhCb,cL3BgB;AHqelB;;AWjfA;EPuEI,gBAAW;EOrEb,cRoCe;EQnCf,qBAAqB;AXofvB;;AWjfE;EACE,cAAc;AXoflB;;AW/eA;EACE,sBRqlCuC;EC3hCrC,gBAAW;EOxDb,WRTa;EQUb,yBRDgB;EOXd,qBP+O+B;AHgRnC;;AWvfA;EASI,UAAU;EPkDV,eAAW;EOhDX,gBR4Q6B;AHsOjC;;AE1SA;ESjME,cAAc;EPyCZ,gBAAW;EOvCb,cRjBgB;AHggBlB;;AWlfA;EP0CI,kBAAW;EOlCX,cAAc;EACd,kBAAkB;AX+etB;;AW1eA;EACE,iBR4jCuC;EQ3jCvC,kBAAkB;AX6epB;;AYrhBE;ECDA,WAAW;EACX,mBAA0B;EAC1B,kBAAyB;EACzB,kBAAkB;EAClB,iBAAiB;Ab0hBnB;;AcveI;EFtDF;ICWI,gBVqMK;EHkVT;AACF;;Ac7eI;EFtDF;ICWI,gBVsMK;EHuVT;AACF;;AcnfI;EFtDF;ICWI,gBVuMK;EH4VT;AACF;;AczfI;EFtDF;ICWI,iBVwMM;EHiWV;AACF;;AY/iBE;ECPA,WAAW;EACX,mBAA0B;EAC1B,kBAAyB;EACzB,kBAAkB;EAClB,iBAAiB;Ab0jBnB;;AcvgBI;EFrCE;IACE,gBT8LG;EHkXT;AACF;;Ac7gBI;EFrCE;IACE,gBT+LG;EHuXT;AACF;;AcnhBI;EFrCE;IACE,gBTgMG;EH4XT;AACF;;AczhBI;EFrCE;IACE,iBTiMI;EHiYV;AACF;;AY/iBE;ECrBA,oBAAa;EAAb,aAAa;EACb,mBAAe;EAAf,eAAe;EACf,mBAA0B;EAC1B,kBAAyB;AbwkB3B;;AYhjBE;EACE,eAAe;EACf,cAAc;AZmjBlB;;AYrjBE;;EAMI,gBAAgB;EAChB,eAAe;AZojBrB;;AetmBE;;;;;;EACE,kBAAkB;EAClB,WAAW;EACX,mBAA0B;EAC1B,kBAAyB;Af8mB7B;;Ae3lBM;EACE,0BAAa;EAAb,aAAa;EACb,oBAAY;EAAZ,YAAY;EACZ,eAAe;Af8lBvB;;Ae1lBQ;EF4BJ,kBAAuB;EAA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en5CQ;IFRR,uBAA8C;Eb85C9C;Eet5CQ;IFRR,gBAA8C;Ebi6C9C;Eez5CQ;IFRR,uBAA8C;Ebo6C9C;Ee55CQ;IFRR,uBAA8C;Ebu6C9C;AACF;;AgB39CA;EACE,WAAW;EACX,mBbkIW;EajIX,cbSgB;AHq9ClB;;AgBj+CA;;EAQI,gBbsVgC;EarVhC,mBAAmB;EACnB,6BbJc;AHk+ClB;;AgBx+CA;EAcI,sBAAsB;EACtB,gCbTc;AHu+ClB;;AgB7+CA;EAmBI,6Bbbc;AH2+ClB;;AgBr9CA;;EAGI,ebgU+B;AHupCnC;;AgB98CA;EACE,yBbnCgB;AHo/ClB;;AgBl9CA;;EAKI,yBbvCc;AHy/ClB;;AgBv9CA;;EAWM,wBAA4C;AhBi9ClD;;AgB58CA;;;;EAKI,SAAS;AhB88Cb;;AgBt8CA;EAEI,qCb1DW;AHkgDf;;AKvgDE;EW2EI,cbvEY;EawEZ,sCbvES;AHugDf;;AiBnhDE;;;EAII,yBCsF4D;AlB+7ClE;;AiBzhDE;;;;EAYM,qBC8E0D;AlBs8ClE;;AKzhDE;EYiBM,yBAJsC;AjBghD9C;;AiBjhDE;;EASQ,yBARoC;AjBqhD9C;;AiBziDE;;;EAII,yBCsF4D;AlBq9ClE;;AiB/iDE;;;;EAYM,qBC8E0D;AlB49ClE;;AK/iDE;EYiBM,yBAJsC;AjBsiD9C;;AiBviDE;;EASQ,yBARoC;AjB2iD9C;;AiB/jDE;;;EAII,yBCsF4D;AlB2+ClE;;AiBrkDE;;;;EAYM,qBC8E0D;AlBk/ClE;;AKrkDE;EYiBM,yBAJsC;AjB4jD9C;;AiB7jDE;;EASQ,yBARoC;AjBikD9C;;AiBrlDE;;;EAII,yBCsF4D;AlBigDlE;;AiB3lDE;;;;EAYM,qBC8E0D;AlBwgDlE;;AK3lDE;EYiBM,yBAJsC;AjBklD9C;;AiBnlDE;;EASQ,yBARoC;AjBulD9C;;AiB3mDE;;;EAII,yBCsF4D;AlBuhDlE;;AiBjnDE;;;;EAYM,qBC8E0D;AlB8hDlE;;AKjnDE;EYiBM,yBAJsC;AjBwmD9C;;AiBzmDE;;EASQ,yBARoC;AjB6mD9C;;AiBjoDE;;;EAII,yBCsF4D;AlB6iDlE;;AiBvoDE;;;;EAYM,qBC8E0D;AlBojDlE;;AKvoDE;EYiBM,yBAJsC;AjB8nD9C;;AiB/nDE;;EASQ,yBARoC;AjBmoD9C;;AiBvpDE;;;EAII,yBCsF4D;AlBmkDlE;;AiB7pDE;;;;EAYM,qBC8E0D;AlB0kDlE;;AK7pDE;EYiBM,yBAJsC;AjBopD9C;;AiBrpDE;;EASQ,yBARoC;AjBypD9C;;AiB7qDE;;;EAII,yBCsF4D;AlBylDlE;;AiBnrDE;;;;EAYM,qBC8E0D;AlBgmDlE;;AKnrDE;EYiBM,yBAJsC;AjB0qD9C;;AiB3qDE;;EASQ,yBARoC;AjB+qD9C;;AiBnsDE;;;EAII,sCdQS;AH6rDf;;AKlsDE;EYiBM,sCAJsC;AjByrD9C;;AiB1rDE;;EASQ,sCARoC;AjB8rD9C;;AgBxmDA;EAGM,Wb3GS;Ea4GT,yBbpGY;EaqGZ,qBbmQqD;AHs2C3D;;AgB9mDA;EAWM,cb5GY;Ea6GZ,yBblHY;EamHZ,qBblHY;AHytDlB;;AgBlmDA;EACE,Wb3Ha;Ea4Hb,yBbpHgB;AHytDlB;;AgBvmDA;;;EAOI,qBb+OuD;AHu3C3D;;AgB7mDA;EAWI,SAAS;AhBsmDb;;AgBjnDA;EAgBM,2Cb1IS;AH+uDf;;AK1uDE;EW4IM,WbjJO;EakJP,4CblJO;AHovDf;;AclrDI;EEiGA;IAEI,cAAc;IACd,WAAW;IACX,gBAAgB;IAChB,iCAAiC;EhBolDvC;EgBzlDG;IASK,SAAS;EhBmlDjB;AACF;;Ac9rDI;EEiGA;IAEI,cAAc;IACd,WAAW;IACX,gBAAgB;IAChB,iCAAiC;EhBgmDvC;EgBrmDG;IASK,SAAS;EhB+lDjB;AACF;;Ac1sDI;EEiGA;IAEI,cAAc;IACd,WAAW;IACX,gBAAgB;IAChB,iCAAiC;EhB4mDvC;EgBjnDG;IASK,SAAS;EhB2mDjB;AACF;;ActtDI;EEiGA;IAEI,cAAc;IACd,WAAW;IACX,gBAAgB;IAChB,iCAAiC;EhBwnDvC;EgB7nDG;IASK,SAAS;EhBunDjB;AACF;;AgBtoDA;EAOQ,cAAc;EACd,WAAW;EACX,gBAAgB;EAChB,iCAAiC;AhBmoDzC;;AgB7oDA;EAcU,SAAS;AhBmoDnB;;AmBhzDA;EACE,cAAc;EACd,WAAW;EACX,mCDuG8D;ECtG9D,yBhB4XkC;ECvQ9B,eAtCY;Ee5EhB,gBhBsR+B;EgBrR/B,gBhB0R+B;EgBzR/B,chBDgB;EgBEhB,sBhBTa;EgBUb,4BAA4B;EAC5B,yBhBPgB;EONd,sBP6OgC;EiB5O9B,wEjBof4F;AH40ClG;;AoB3zDI;EDLJ;ICMM,gBAAgB;EpB+zDpB;AACF;;AmBt0DA;EAsBI,6BAA6B;EAC7B,SAAS;AnBozDb;;AmB30DA;EA4BI,kBAAkB;EAClB,0BhBrBc;AHw0DlB;;AqBz0DE;EACE,clBAc;EkBCd,sBlBRW;EkBSX,qBlBwdsE;EkBvdtE,UAAU;EAKR,gDlBcW;AH0zDjB;;AmBx1DA;EAqCI,chB9Bc;EgBgCd,UAAU;AnBszDd;;AmB71DA;EAqCI,chB9Bc;EgBgCd,UAAU;AnBszDd;;AmB71DA;EAqCI,chB9Bc;EgBgCd,UAAU;AnBszDd;;AmB71DA;EAqCI,chB9Bc;EgBgCd,UAAU;AnBszDd;;AmB71DA;EAqCI,chB9Bc;EgBgCd,UAAU;AnBszDd;;AmB71DA;EAiDI,yBhB9Cc;EgBgDd,UAAU;AnB+yDd;;AmB3yDA;EAOI,chBtDc;EgBuDd,sBhB9DW;AHs2Df;;AmBnyDA;;EAEE,cAAc;EACd,WAAW;AnBsyDb;;AmB5xDA;EACE,iCDwB8D;ECvB9D,oCDuB8D;ECtB9D,gBAAgB;EflBd,kBAAW;EeoBb,gBhB4M+B;AHmlDjC;;AmB5xDA;EACE,+BDgB8D;ECf9D,kCDe8D;Ede1D,kBAtCY;EeUhB,gBhByI+B;AHspDjC;;AmB5xDA;EACE,gCDS8D;ECR9D,mCDQ8D;Ede1D,mBAtCY;EeiBhB,gBhBmI+B;AH4pDjC;;AmBtxDA;EACE,cAAc;EACd,WAAW;EACX,mBAA2B;EAC3B,gBAAgB;EfQZ,eAtCY;EegChB,gBhB+K+B;EgB9K/B,chB1GgB;EgB2GhB,6BAA6B;EAC7B,yBAAyB;EACzB,mBAAmC;AnByxDrC;;AmBnyDA;EAcI,gBAAgB;EAChB,eAAe;AnByxDnB;;AmB7wDA;EACE,kCD/B8D;ECgC9D,uBhBgQiC;ECjR7B,mBAtCY;EeyDhB,gBhB2F+B;EOxO7B,qBP+O+B;AH+qDnC;;AmB7wDA;EACE,gCDvC8D;ECwC9D,oBhB6PgC;ECtR5B,kBAtCY;EeiEhB,gBhBkF+B;EOvO7B,qBP8O+B;AHwrDnC;;AmB5wDA;EAGI,YAAY;AnB6wDhB;;AmBzwDA;EACE,YAAY;AnB4wDd;;AmBpwDA;EACE,mBhBsV0C;AHi7C5C;;AmBpwDA;EACE,cAAc;EACd,mBhBuU4C;AHg8C9C;;AmB/vDA;EACE,oBAAa;EAAb,aAAa;EACb,mBAAe;EAAf,eAAe;EACf,kBAA0C;EAC1C,iBAAyC;AnBkwD3C;;AmBtwDA;;EAQI,kBAA0C;EAC1C,iBAAyC;AnBmwD7C;;AmB1vDA;EACE,kBAAkB;EAClB,cAAc;EACd,qBhB4S6C;AHi9C/C;;AmB1vDA;EACE,kBAAkB;EAClB,kBhBwS2C;EgBvS3C,qBhBsS6C;AHu9C/C;;AmBhwDA;;EAQI,chBhNc;AH68DlB;;AmBzvDA;EACE,gBAAgB;AnB4vDlB;;AmBzvDA;EACE,2BAAoB;EAApB,oBAAoB;EACpB,sBAAmB;EAAnB,mBAAmB;EACnB,eAAe;EACf,qBhByR4C;AHm+C9C;;AmBhwDA;EAQI,gBAAgB;EAChB,aAAa;EACb,uBhBoR4C;EgBnR5C,cAAc;AnB4vDlB;;AqBh8DE;EACE,aAAa;EACb,WAAW;EACX,mBlB6c0C;ECpb1C,cAAW;EiBvBX,clBNa;AHy8DjB;;AqBh8DE;EACE,kBAAkB;EAClB,SAAS;EACT,UAAU;EACV,aAAa;EACb,eAAe;EACf,uBlBmyBqC;EkBlyBrC,iBAAiB;EjBoEf,mBAtCY;EiB5Bd,gBlB2O6B;EkB1O7B,WlBvDW;EkBwDX,wClBpBa;EOtCb,sBP6OgC;AHixDpC;;AqBn+DI;;;;EAsCE,cAAc;ArBo8DpB;;AqB1+DI;EA4CE,qBlBjCW;EkBoCT,oCHiCwD;EGhCxD,iRHpCmI;EGqCnI,4BAA4B;EAC5B,2DAA6D;EAC7D,gEH6BwD;AlBm6DhE;;AqBn/DI;EAuDI,qBlB5CS;EkB6CT,gDlB7CS;AH6+DjB;;AqBx/DI;EAiEI,oCHewD;EGdxD,kFHcwD;AlB66DhE;;AqB7/DI;EAyEE,qBlB9DW;EkBiET,uCHIwD;EGHxD,ujBAA8J;ArBs7DtK;;AqBngEI;EAiFI,qBlBtES;EkBuET,gDlBvES;AH6/DjB;;AqBxgEI;EA0FI,clB/ES;AHigEjB;;AqB5gEI;;;EA+FI,cAAc;ArBm7DtB;;AqBlhEI;EAuGI,clB5FS;AH2gEjB;;AqBthEI;EA0GM,qBlB/FO;AH+gEjB;;AqB1hEI;EAgHM,qBAAkC;EC1IxC,yBD2I+C;ArB86DnD;;AqB/hEI;EAuHM,gDlB5GO;AHwhEjB;;AqBniEI;EA2HM,qBlBhHO;AH4hEjB;;AqBviEI;EAqII,qBlB1HS;AHgiEjB;;AqB3iEI;EA0IM,qBlB/HO;EkBgIP,gDlBhIO;AHqiEjB;;AqBpiEE;EACE,aAAa;EACb,WAAW;EACX,mBlB6c0C;ECpb1C,cAAW;EiBvBX,clBTa;AHgjEjB;;AqBpiEE;EACE,kBAAkB;EAClB,SAAS;EACT,UAAU;EACV,aAAa;EACb,eAAe;EACf,uBlBmyBqC;EkBlyBrC,iBAAiB;EjBoEf,mBAtCY;EiB5Bd,gBlB2O6B;EkB1O7B,WlBvDW;EkBwDX,wClBvBa;EOnCb,sBP6OgC;AHq3DpC;;AqBvkEI;;;;EAsCE,cAAc;ArBwiEpB;;AqB9kEI;EA4CE,qBlBpCW;EkBuCT,oCHiCwD;EGhCxD,4UHpCmI;EGqCnI,4BAA4B;EAC5B,2DAA6D;EAC7D,gEH6BwD;AlBugEhE;;AqBvlEI;EAuDI,qBlB/CS;EkBgDT,gDlBhDS;AHolEjB;;AqB5lEI;EAiEI,oCHewD;EGdxD,kFHcwD;AlBihEhE;;AqBjmEI;EAyEE,qBlBjEW;EkBoET,uCHIwD;EGHxD,knBAA8J;ArB0hEtK;;AqBvmEI;EAiFI,qBlBzES;EkB0ET,gDlB1ES;AHomEjB;;AqB5mEI;EA0FI,clBlFS;AHwmEjB;;AqBhnEI;;;EA+FI,cAAc;ArBuhEtB;;AqBtnEI;EAuGI,clB/FS;AHknEjB;;AqB1nEI;EA0GM,qBlBlGO;AHsnEjB;;AqB9nEI;EAgHM,qBAAkC;EC1IxC,yBD2I+C;ArBkhEnD;;AqBnoEI;EAuHM,gDlB/GO;AH+nEjB;;AqBvoEI;EA2HM,qBlBnHO;AHmoEjB;;AqB3oEI;EAqII,qBlB7HS;AHuoEjB;;AqB/oEI;EA0IM,qBlBlIO;EkBmIP,gDlBnIO;AH4oEjB;;AmB36DA;EACE,oBAAa;EAAb,aAAa;EACb,uBAAmB;EAAnB,mBAAmB;EACnB,sBAAmB;EAAnB,mBAAmB;AnB86DrB;;AmBj7DA;EASI,WAAW;AnB46Df;;AcloEI;EK6MJ;IAeM,oBAAa;IAAb,aAAa;IACb,sBAAmB;IAAnB,mBAAmB;IACnB,qBAAuB;IAAvB,uBAAuB;IACvB,gBAAgB;EnB26DpB;EmB77DF;IAuBM,oBAAa;IAAb,aAAa;IACb,kBAAc;IAAd,cAAc;IACd,uBAAmB;IAAnB,mBAAmB;IACnB,sBAAmB;IAAnB,mBAAmB;IACnB,gBAAgB;EnBy6DpB;EmBp8DF;IAgCM,qBAAqB;IACrB,WAAW;IACX,sBAAsB;EnBu6D1B;EmBz8DF;IAuCM,qBAAqB;EnBq6DzB;EmB58DF;;IA4CM,WAAW;EnBo6Df;EmBh9DF;IAkDM,oBAAa;IAAb,aAAa;IACb,sBAAmB;IAAnB,mBAAmB;IACnB,qBAAuB;IAAvB,uBAAuB;IACvB,WAAW;IACX,eAAe;EnBi6DnB;EmBv9DF;IAyDM,kBAAkB;IAClB,oBAAc;IAAd,cAAc;IACd,aAAa;IACb,qBhB2LwC;IgB1LxC,cAAc;EnBi6DlB;EmB99DF;IAiEM,sBAAmB;IAAnB,mBAAmB;IACnB,qBAAuB;IAAvB,uBAAuB;EnBg6D3B;EmBl+DF;IAqEM,gBAAgB;EnBg6DpB;AACF;;AuBzuEA;EACE,qBAAqB;EAErB,gBpB0R+B;EoBzR/B,cpBMgB;EoBLhB,kBAAkB;EAElB,sBAAsB;EACtB,eAAsD;EACtD,yBAAiB;EAAjB,sBAAiB;EAAjB,qBAAiB;EAAjB,iBAAiB;EACjB,6BAA6B;EAC7B,6BAA2C;ECuF3C,yBrB8RkC;ECvQ9B,eAtCY;EoBiBhB,gBrB8L+B;EOnS7B,sBP6OgC;EiB5O9B,qIjB6b6I;AH6zDnJ;;AoBrvEI;EGLJ;IHMM,gBAAgB;EpByvEpB;AACF;;AK1vEE;EkBUE,cpBNc;EoBOd,qBAAqB;AvBovEzB;;AuBrwEA;EAsBI,UAAU;EACV,gDpBOa;AH4uEjB;;AuB1wEA;EA6BI,apBoZ6B;AH61DjC;;AuBluEA;;EAEE,oBAAoB;AvBquEtB;;AuB5tEE;ECvDA,WrBCa;EmBDX,yBnB8Ba;EqB5Bf,qBrB4Be;AH2vEjB;;AKnxEE;EmBAE,WrBLW;EmBDX,yBEDoF;EASpF,qBATyH;AxBgyE7H;;AwBpxEE;EAEE,WrBZW;EmBDX,yBEDoF;EAgBpF,qBAhByH;EAqBvH,gDAAiF;AxBkxEvF;;AwB7wEE;EAEE,WrB1BW;EqB2BX,yBrBEa;EqBDb,qBrBCa;AH8wEjB;;AwBxwEE;;EAGE,WrBtCW;EqBuCX,yBAzCuK;EA6CvK,qBA7C+M;AxBozEnN;;AwBrwEI;;EAKI,gDAAiF;AxBqwEzF;;AuBjwEE;ECvDA,WrBCa;EmBDX,yBnBOc;EqBLhB,qBrBKgB;AHuzElB;;AKxzEE;EmBAE,WrBLW;EmBDX,yBEDoF;EASpF,qBATyH;AxBq0E7H;;AwBzzEE;EAEE,WrBZW;EmBDX,yBEDoF;EAgBpF,qBAhByH;EAqBvH,iDAAiF;AxBuzEvF;;AwBlzEE;EAEE,WrB1BW;EqB2BX,yBrBrBc;EqBsBd,qBrBtBc;AH00ElB;;AwB7yEE;;EAGE,WrBtCW;EqBuCX,yBAzCuK;EA6CvK,qBA7C+M;AxBy1EnN;;AwB1yEI;;EAKI,iDAAiF;AxB0yEzF;;AuBtyEE;ECvDA,WrBCa;EmBDX,yBnBqCa;EqBnCf,qBrBmCe;AH8zEjB;;AK71EE;EmBAE,WrBLW;EmBDX,yBEDoF;EASpF,qBATyH;AxB02E7H;;AwB91EE;EAEE,WrBZW;EmBDX,yBEDoF;EAgBpF,qBAhByH;EAqBvH,+CAAiF;AxB41EvF;;AwBv1EE;EAEE,WrB1BW;EqB2BX,yBrBSa;EqBRb,qBrBQa;AHi1EjB;;AwBl1EE;;EAGE,WrBtCW;EqBuCX,yBAzCuK;EA6CvK,qBA7C+M;AxB83EnN;;AwB/0EI;;EAKI,+CAAiF;AxB+0EzF;;AuB30EE;ECvDA,WrBCa;EmBDX,yBnBuCa;EqBrCf,qBrBqCe;AHi2EjB;;AKl4EE;EmBAE,WrBLW;EmBDX,yBEDoF;EASpF,qBATyH;AxB+4E7H;;AwBn4EE;EAEE,WrBZW;EmBDX,yBEDoF;EAgBpF,qBAhByH;EAqBvH,gDAAiF;AxBi4EvF;;AwB53EE;EAEE,WrB1BW;EqB2BX,yBrBWa;EqBVb,qBrBUa;AHo3EjB;;AwBv3EE;;EAGE,WrBtCW;EqBuCX,yBAzCuK;EA6CvK,qBA7C+M;AxBm6EnN;;AwBp3EI;;EAKI,gDAAiF;AxBo3EzF;;AuBh3EE;ECvDA,crBUgB;EmBVd,yBnBoCa;EqBlCf,qBrBkCe;AHy4EjB;;AKv6EE;EmBAE,crBIc;EmBVd,yBEDoF;EASpF,qBATyH;AxBo7E7H;;AwBx6EE;EAEE,crBHc;EmBVd,yBEDoF;EAgBpF,qBAhByH;EAqBvH,gDAAiF;AxBs6EvF;;AwBj6EE;EAEE,crBjBc;EqBkBd,yBrBQa;EqBPb,qBrBOa;AH45EjB;;AwB55EE;;EAGE,crB7Bc;EqB8Bd,yBAzCuK;EA6CvK,qBA7C+M;AxBw8EnN;;AwBz5EI;;EAKI,gDAAiF;AxBy5EzF;;AuBr5EE;ECvDA,WrBCa;EmBDX,yBnBkCa;EqBhCf,qBrBgCe;AHg7EjB;;AK58EE;EmBAE,WrBLW;EmBDX,yBEDoF;EASpF,qBATyH;AxBy9E7H;;AwB78EE;EAEE,WrBZW;EmBDX,yBEDoF;EAgBpF,qBAhByH;EAqBvH,+CAAiF;AxB28EvF;;AwBt8EE;EAEE,WrB1BW;EqB2BX,yBrBMa;EqBLb,qBrBKa;AHm8EjB;;AwBj8EE;;EAGE,WrBtCW;EqBuCX,yBAzCuK;EA6CvK,qBA7C+M;AxB6+EnN;;AwB97EI;;EAKI,+CAAiF;AxB87EzF;;AuB17EE;ECvDA,crBUgB;EmBVd,yBnBEc;EqBAhB,qBrBAgB;AHq/ElB;;AKj/EE;EmBAE,crBIc;EmBVd,yBEDoF;EASpF,qBATyH;AxB8/E7H;;AwBl/EE;EAEE,crBHc;EmBVd,yBEDoF;EAgBpF,qBAhByH;EAqBvH,iDAAiF;AxBg/EvF;;AwB3+EE;EAEE,crBjBc;EqBkBd,yBrB1Bc;EqB2Bd,qBrB3Bc;AHwgFlB;;AwBt+EE;;EAGE,crB7Bc;EqB8Bd,yBAzCuK;EA6CvK,qBA7C+M;AxBkhFnN;;AwBn+EI;;EAKI,iDAAiF;AxBm+EzF;;AuB/9EE;ECvDA,WrBCa;EmBDX,yBnBSc;EqBPhB,qBrBOgB;AHmhFlB;;AKthFE;EmBAE,WrBLW;EmBDX,yBEDoF;EASpF,qBATyH;AxBmiF7H;;AwBvhFE;EAEE,WrBZW;EmBDX,yBEDoF;EAgBpF,qBAhByH;EAqBvH,8CAAiF;AxBqhFvF;;AwBhhFE;EAEE,WrB1BW;EqB2BX,yBrBnBc;EqBoBd,qBrBpBc;AHsiFlB;;AwB3gFE;;EAGE,WrBtCW;EqBuCX,yBAzCuK;EA6CvK,qBA7C+M;AxBujFnN;;AwBxgFI;;EAKI,8CAAiF;AxBwgFzF;;AuB9/EE;ECHA,crB5Be;EqB6Bf,qBrB7Be;AHkiFjB;;AK1jFE;EmBwDE,WrB7DW;EqB8DX,yBrBjCa;EqBkCb,qBrBlCa;AHwiFjB;;AwBngFE;EAEE,+CrBvCa;AH4iFjB;;AwBlgFE;EAEE,crB5Ca;EqB6Cb,6BAA6B;AxBogFjC;;AwBjgFE;;EAGE,WrBhFW;EqBiFX,yBrBpDa;EqBqDb,qBrBrDa;AHwjFjB;;AwBjgFI;;EAKI,+CrB5DS;AH6jFjB;;AuB9hFE;ECHA,crBnDgB;EqBoDhB,qBrBpDgB;AHylFlB;;AK1lFE;EmBwDE,WrB7DW;EqB8DX,yBrBxDc;EqByDd,qBrBzDc;AH+lFlB;;AwBniFE;EAEE,iDrB9Dc;AHmmFlB;;AwBliFE;EAEE,crBnEc;EqBoEd,6BAA6B;AxBoiFjC;;AwBjiFE;;EAGE,WrBhFW;EqBiFX,yBrB3Ec;EqB4Ed,qBrB5Ec;AH+mFlB;;AwBjiFI;;EAKI,iDrBnFU;AHonFlB;;AuB9jFE;ECHA,crBrBe;EqBsBf,qBrBtBe;AH2lFjB;;AK1nFE;EmBwDE,WrB7DW;EqB8DX,yBrB1Ba;EqB2Bb,qBrB3Ba;AHimFjB;;AwBnkFE;EAEE,+CrBhCa;AHqmFjB;;AwBlkFE;EAEE,crBrCa;EqBsCb,6BAA6B;AxBokFjC;;AwBjkFE;;EAGE,WrBhFW;EqBiFX,yBrB7Ca;EqB8Cb,qBrB9Ca;AHinFjB;;AwBjkFI;;EAKI,+CrBrDS;AHsnFjB;;AuB9lFE;ECHA,crBnBe;EqBoBf,qBrBpBe;AHynFjB;;AK1pFE;EmBwDE,WrB7DW;EqB8DX,yBrBxBa;EqByBb,qBrBzBa;AH+nFjB;;AwBnmFE;EAEE,gDrB9Ba;AHmoFjB;;AwBlmFE;EAEE,crBnCa;EqBoCb,6BAA6B;AxBomFjC;;AwBjmFE;;EAGE,WrBhFW;EqBiFX,yBrB3Ca;EqB4Cb,qBrB5Ca;AH+oFjB;;AwBjmFI;;EAKI,gDrBnDS;AHopFjB;;AuB9nFE;ECHA,crBtBe;EqBuBf,qBrBvBe;AH4pFjB;;AK1rFE;EmBwDE,crBpDc;EqBqDd,yBrB3Ba;EqB4Bb,qBrB5Ba;AHkqFjB;;AwBnoFE;EAEE,+CrBjCa;AHsqFjB;;AwBloFE;EAEE,crBtCa;EqBuCb,6BAA6B;AxBooFjC;;AwBjoFE;;EAGE,crBvEc;EqBwEd,yBrB9Ca;EqB+Cb,qBrB/Ca;AHkrFjB;;AwBjoFI;;EAKI,+CrBtDS;AHurFjB;;AuB9pFE;ECHA,crBxBe;EqByBf,qBrBzBe;AH8rFjB;;AK1tFE;EmBwDE,WrB7DW;EqB8DX,yBrB7Ba;EqB8Bb,qBrB9Ba;AHosFjB;;AwBnqFE;EAEE,+CrBnCa;AHwsFjB;;AwBlqFE;EAEE,crBxCa;EqByCb,6BAA6B;AxBoqFjC;;AwBjqFE;;EAGE,WrBhFW;EqBiFX,yBrBhDa;EqBiDb,qBrBjDa;AHotFjB;;AwBjqFI;;EAKI,+CrBxDS;AHytFjB;;AuB9rFE;ECHA,crBxDgB;EqByDhB,qBrBzDgB;AH8vFlB;;AK1vFE;EmBwDE,crBpDc;EqBqDd,yBrB7Dc;EqB8Dd,qBrB9Dc;AHowFlB;;AwBnsFE;EAEE,iDrBnEc;AHwwFlB;;AwBlsFE;EAEE,crBxEc;EqByEd,6BAA6B;AxBosFjC;;AwBjsFE;;EAGE,crBvEc;EqBwEd,yBrBhFc;EqBiFd,qBrBjFc;AHoxFlB;;AwBjsFI;;EAKI,iDrBxFU;AHyxFlB;;AuB9tFE;ECHA,crBjDgB;EqBkDhB,qBrBlDgB;AHuxFlB;;AK1xFE;EmBwDE,WrB7DW;EqB8DX,yBrBtDc;EqBuDd,qBrBvDc;AH6xFlB;;AwBnuFE;EAEE,8CrB5Dc;AHiyFlB;;AwBluFE;EAEE,crBjEc;EqBkEd,6BAA6B;AxBouFjC;;AwBjuFE;;EAGE,WrBhFW;EqBiFX,yBrBzEc;EqB0Ed,qBrB1Ec;AH6yFlB;;AwBjuFI;;EAKI,8CrBjFU;AHkzFlB;;AuBnvFA;EACE,gBpBoN+B;EoBnN/B,cpB5Ce;EoB6Cf,qBpBkG4C;AHopF9C;;AK3zFE;EkBwEE,cpBgG8D;EoB/F9D,0BpBgG+C;AHupFnD;;AuB9vFA;EAYI,0BpB2F+C;EoB1F/C,gBAAgB;AvBsvFpB;;AuBnwFA;EAkBI,cpBnFc;EoBoFd,oBAAoB;AvBqvFxB;;AuB1uFA;ECJE,oBrB6SgC;ECtR5B,kBAtCY;EoBiBhB,gBrBkI+B;EOvO7B,qBP8O+B;AH0mFnC;;AuB7uFA;ECRE,uBrBwSiC;ECjR7B,mBAtCY;EoBiBhB,gBrBmI+B;EOxO7B,qBP+O+B;AHgnFnC;;AuB3uFA;EACE,cAAc;EACd,WAAW;AvB8uFb;;AuBhvFA;EAMI,kBpB6T+B;AHi7EnC;;AuBzuFA;;;EAII,WAAW;AvB2uFf;;AyBn3FA;ELMM,gCjB8P2C;AHmnFjD;;AoB52FI;EKXJ;ILYM,gBAAgB;EpBg3FpB;AACF;;AyB73FA;EAII,UAAU;AzB63Fd;;AyBz3FA;EAEI,aAAa;AzB23FjB;;AyBv3FA;EACE,kBAAkB;EAClB,SAAS;EACT,gBAAgB;ELXZ,6BjB+PwC;AHuoF9C;;AoBj4FI;EKGJ;ILFM,gBAAgB;EpBq4FpB;AACF;;A0Bj5FA;;;;EAIE,kBAAkB;A1Bo5FpB;;A0Bj5FA;EACE,mBAAmB;A1Bo5FrB;;A2Bh4FI;EACE,qBAAqB;EACrB,oBxBkO0C;EwBjO1C,uBxBgO0C;EwB/N1C,WAAW;EAhCf,uBAA8B;EAC9B,qCAA4C;EAC5C,gBAAgB;EAChB,oCAA2C;A3Bo6F7C;;A2B/2FI;EACE,cAAc;A3Bk3FpB;;A0B55FA;EACE,kBAAkB;EAClB,SAAS;EACT,OAAO;EACP,avB4pBsC;EuB3pBtC,aAAa;EACb,WAAW;EACX,gBvBkuBuC;EuBjuBvC,iBAA8B;EAC9B,oBAA4B;EtBsGxB,eAtCY;EsB9DhB,cvBXgB;EuBYhB,gBAAgB;EACh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uB,kB3BqJU;AHwnGjC;;A8B5wGA;EAAsB,iB3BoJW;AH4nGjC;;A8BxwGA;EACE,oBAAa;EAAb,aAAa;EACb,sBAAmB;EAAnB,mBAAmB;EACnB,yB3BgSkC;E2B/RlC,gBAAgB;E1BwBZ,eAtCY;E0BgBhB,gB3B0L+B;E2BzL/B,gB3B8L+B;E2B7L/B,c3B7FgB;E2B8FhB,kBAAkB;EAClB,mBAAmB;EACnB,yB3BrGgB;E2BsGhB,yB3BpGgB;EONd,sBP6OgC;AHyoGpC;;A8BxxGA;;EAkBI,aAAa;A9B2wGjB;;A8BjwGA;;EAEE,gCZjB8D;AlBqxGhE;;A8BjwGA;;;;;;EAME,oB3B2QgC;ECtR5B,kBAtCY;E0BmDhB,gB3BgG+B;EOvO7B,qBP8O+B;AH8pGnC;;A8BjwGA;;EAEE,kCZlC8D;AlBsyGhE;;A8BjwGA;;;;;;EAME,uB3BqPiC;ECjR7B,mBAtCY;E0BoEhB,gB3BgF+B;EOxO7B,qBP+O+B;AH8qGnC;;A8BjwGA;;EAEE,sBAA0E;A9BowG5E;;A8BzvGA;;;;;;EpBzJI,0BoB+J4B;EpB9J5B,6BoB8J4B;A9B6vGhC;;A8B1vGA;;;;;;EpBpJI,yBoB0J2B;EpBzJ3B,4BoByJ2B;A9B8vG/B;;A+Bl7GA;EACE,kBAAkB;EAClB,cAAc;EACd,kBAA+C;EAC/C,oBAAqE;A/Bq7GvE;;A+Bl7GA;EACE,2BAAoB;EAApB,oBAAoB;EACpB,kB5B6f0C;AHw7F5C;;A+Bl7GA;EACE,kBAAkB;EAClB,OAAO;EACP,WAAW;EACX,W5Byf0C;E4Bxf1C,eAAkF;EAClF,UAAU;A/Bq7GZ;;A+B37GA;EASI,W5BvBW;E4BwBX,qB5BKa;EmB9Bb,yBnB8Ba;AHk7GjB;;A+Bj8GA;EAoBM,gD5BLW;AHs7GjB;;A+Br8GA;EAyBI,qB5B0bsE;AHs/F1E;;A+Bz8GA;EA6BI,W5B3CW;E4B4CX,yB5Bsf8E;E4Brf9E,qB5Bqf8E;AH27FlF;;A+B/8GA;EAuCM,c5B/CY;AH29GlB;;A+Bn9GA;EA0CQ,yB5BtDU;AHm+GlB;;A+Bn6GA;EACE,kBAAkB;EAClB,gBAAgB;EAEhB,mBAAmB;A/Bq6GrB;;A+Bz6GA;EASI,kBAAkB;EAClB,YAA+E;EAC/E,aAA+D;EAC/D,cAAc;EACd,W5B4bwC;E4B3bxC,Y5B2bwC;E4B1bxC,oBAAoB;EACpB,WAAW;EACX,sB5BnFW;E4BoFX,yB5BoJ6B;AHgxGjC;;A+Bt7GA;EAwBI,kBAAkB;EAClB,YAA+E;EAC/E,aAA+D;EAC/D,cAAc;EACd,W5B6awC;E4B5axC,Y5B4awC;E4B3axC,WAAW;EACX,mCAAgE;A/Bk6GpE;;A+Bz5GA;ErB5GI,sBP6OgC;AH4xGpC;;A+B75GA;EAOM,kOb5EqI;AlBs+G3I;;A+Bj6GA;EAaM,qB5B1FW;EmB9Bb,yBnB8Ba;AHm/GjB;;A+Bt6GA;EAkBM,+KbvFqI;AlB++G3I;;A+B16GA;EAwBM,wC5BrGW;AH2/GjB;;A+B96GA;EA2BM,wC5BxGW;AH+/GjB;;A+B94GA;EAGI,kB5B8Z+C;AHi/FnD;;A+Bl5GA;EAQM,8KbjHqI;AlB+/G3I;;A+Bt5GA;EAcM,wC5B/HW;AH2gHjB;;A+Bl4GA;EACE,qBAA2D;A/Bq4G7D;;A+Bt4GA;EAKM,cAAqD;EACrD,c5BsY+E;E4BrY/E,mBAAmB;EAEnB,qB5BoY4E;AHggGlF;;A+B74GA;EAaM,wBb1E0D;Ea2E1D,0Bb3E0D;Ea4E1D,uBbxD0D;EayD1D,wBbzD0D;Ea0D1D,yB5BlLY;E4BoLZ,qB5B0X4E;EiBpjB5E,iJjBsgB+H;EiBtgB/H,yIjBsgB+H;EiBtgB/H,8KjBsgB+H;AHwjGrI;;AoBzjHI;EWkKJ;IXjKM,gBAAgB;EpB6jHpB;AACF;;A+B75GA;EA0BM,sB5BhMS;E4BiMT,sCAA4E;EAA5E,8BAA4E;A/Bu4GlF;;A+Bl6GA;EAiCM,wC5B1KW;AH+iHjB;;A+Bz3GA;EACE,qBAAqB;EACrB,WAAW;EACX,mCb7G8D;Ea8G9D,0C5BwKkC;ECvQ9B,eAtCY;E2BwIhB,gB5BkE+B;E4BjE/B,gB5BsE+B;E4BrE/B,c5BrNgB;E4BsNhB,sBAAsB;EACtB,uO5BuW+I;E4BtW/I,yB5B3NgB;EONd,sBP6OgC;E4BTlC,wBAAgB;EAAhB,qBAAgB;EAAhB,gBAAgB;A/B03GlB;;A+Bz4GA;EAkBI,qB5B4PsE;E4B3PtE,UAAU;EAIR,gD5B7MW;AHqkHjB;;A+B/4GA;EAgCM,c5B5OY;E4B6OZ,sB5BpPS;AHumHf;;A+Bp5GA;EAuCI,YAAY;EACZ,sB5BoIgC;E4BnIhC,sBAAsB;A/Bi3G1B;;A+B15GA;EA6CI,c5B1Pc;E4B2Pd,yB5B/Pc;AHgnHlB;;A+B/5GA;EAmDI,aAAa;A/Bg3GjB;;A+Bn6GA;EAwDI,kBAAkB;EAClB,0B5BrQc;AHonHlB;;A+B32GA;EACE,kCbxK8D;EayK9D,oB5BsHkC;E4BrHlC,uB5BqHkC;E4BpHlC,oB5BqHiC;ECjR7B,mBAtCY;AJijHlB;;A+B32GA;EACE,gCbhL8D;EaiL9D,mB5BmHiC;E4BlHjC,sB5BkHiC;E4BjHjC,kB5BkHgC;ECtR5B,kBAtCY;AJyjHlB;;A+Bt2GA;EACE,kBAAkB;EAClB,qBAAqB;EACrB,WAAW;EACX,mCbhM8D;EaiM9D,gBAAgB;A/By2GlB;;A+Bt2GA;EACE,kBAAkB;EAClB,UAAU;EACV,WAAW;EACX,mCbxM8D;EayM9D,SAAS;EACT,UAAU;A/By2GZ;;A+B/2GA;EASI,qB5B2KsE;E4B1KtE,gD5B1Ra;AHooHjB;;A+Bp3GA;;EAgBI,yB5B3Tc;AHoqHlB;;A+Bz3GA;EAqBM,iB5BkUQ;AHsiGd;;A+B73GA;EA0BI,0BAA0B;A/Bu2G9B;;A+Bn2GA;EACE,kBAAkB;EAClB,MAAM;EACN,QAAQ;EACR,OAAO;EACP,UAAU;EACV,mCbxO8D;EayO9D,yB5B6CkC;E4B3ClC,gB5BxD+B;E4ByD/B,gB5BpD+B;E4BqD/B,c5B/UgB;E4BgVhB,sB5BvVa;E4BwVb,yB5BpVgB;EONd,sBP6OgC;AHm9GpC;;A+Bn3GA;EAkBI,kBAAkB;EAClB,MAAM;EACN,QAAQ;EACR,SAAS;EACT,UAAU;EACV,cAAc;EACd,6Bb1P4D;Ea2P5D,yB5B2BgC;E4B1BhC,gB5BpE6B;E4BqE7B,c5B/Vc;E4BgWd,iBAAiB;ETxWjB,yBnBGc;E4BuWd,oBAAoB;ErB3WpB,kCqB4WgF;A/Bq2GpF;;A+B31GA;EACE,WAAW;EACX,cbhR2B;EaiR3B,UAAU;EACV,6BAA6B;EAC7B,wBAAgB;EAAhB,qBAAgB;EAAhB,gBAAgB;A/B81GlB;;A+Bn2GA;EAQI,aAAa;A/B+1GjB;;A+Bv2GA;EAY8B,gE5BnWb;AHksHjB;;A+B32GA;EAa8B,gE5BpWb;AHssHjB;;A+B/2GA;EAc8B,gE5BrWb;AH0sHjB;;A+Bn3GA;EAkBI,SAAS;A/Bq2Gb;;A+Bv3GA;EAsBI,W5B2N6C;E4B1N7C,Y5B0N6C;E4BzN7C,oBAAyE;ET7YzE,yBnB8Ba;E4BiXb,S5B0N0C;EO1mB1C,mBP2mB6C;EiB1mB3C,oHjBsgB+H;EiBtgB/H,4GjBsgB+H;E4BnHjI,wBAAgB;EAAhB,gBAAgB;A/Bo2GpB;;AoBlvHI;EWgXJ;IX/WM,wBAAgB;IAAhB,gBAAgB;EpBsvHpB;AACF;;A+Bx4GA;ETrXI,yBnB8mB2E;AHmpG/E;;A+B54GA;EAsCI,W5BoMoC;E4BnMpC,c5BoMqC;E4BnMrC,kBAAkB;EAClB,e5BmMuC;E4BlMvC,yB5B3Zc;E4B4Zd,yBAAyB;ErBjazB,mBPomBoC;AHwqGxC;;A+Bt5GA;EAiDI,W5BgM6C;E4B/L7C,Y5B+L6C;EmBtmB7C,yBnB8Ba;E4B2Yb,S5BgM0C;EO1mB1C,mBP2mB6C;EiB1mB3C,iHjBsgB+H;EiBtgB/H,4GjBsgB+H;E4BzFjI,qBAAgB;EAAhB,gBAAgB;A/Bw2GpB;;AoBhxHI;EWgXJ;IX/WM,qBAAgB;IAAhB,gBAAgB;EpBoxHpB;AACF;;A+Bt6GA;ETrXI,yBnB8mB2E;AHirG/E;;A+B16GA;EAgEI,W5B0KoC;E4BzKpC,c5B0KqC;E4BzKrC,kBAAkB;EAClB,e5ByKuC;E4BxKvC,yB5Brbc;E4Bsbd,yBAAyB;ErB3bzB,mBPomBoC;AHssGxC;;A+Bp7GA;EA2EI,W5BsK6C;E4BrK7C,Y5BqK6C;E4BpK7C,aAAa;EACb,oB5B9D+B;E4B+D/B,mB5B/D+B;EmBrY/B,yBnB8Ba;E4Bwab,S5BmK0C;EO1mB1C,mBP2mB6C;EiB1mB3C,gHjBsgB+H;EiBtgB/H,4GjBsgB+H;E4B5DjI,gBAAgB;A/B42GpB;;AoBjzHI;EWgXJ;IX/WM,oBAAgB;IAAhB,gBAAgB;EpBqzHpB;AACF;;A+Bv8GA;ETrXI,yBnB8mB2E;AHktG/E;;A+B38GA;EA6FI,W5B6IoC;E4B5IpC,c5B6IqC;E4B5IrC,kBAAkB;EAClB,e5B4IuC;E4B3IvC,6BAA6B;EAC7B,yBAAyB;EACzB,oBAA4C;A/Bk3GhD;;A+Br9GA;EAwGI,yB5Bzdc;EOLd,mBPomBoC;AH4uGxC;;A+B19GA;EA6GI,kBAAkB;EAClB,yB5B/dc;EOLd,mBPomBoC;AHkvGxC;;A+Bh+GA;EAoHM,yB5BneY;AHm1HlB;;A+Bp+GA;EAwHM,eAAe;A/Bg3GrB;;A+Bx+GA;EA4HM,yB5B3eY;AH21HlB;;A+B5+GA;EAgIM,eAAe;A/Bg3GrB;;A+Bh/GA;EAoIM,yB5BnfY;AHm2HlB;;A+B32GA;;;EX9fM,4GjBsgB+H;AHy2GrI;;AoB12HI;EWyfJ;;;IXxfM,gBAAgB;EpBg3HpB;AACF;;AgCx3HA;EACE,oBAAa;EAAb,aAAa;EACb,mBAAe;EAAf,eAAe;EACf,eAAe;EACf,gBAAgB;EAChB,gBAAgB;AhC23HlB;;AgCx3HA;EACE,cAAc;EACd,oB7B6qBsC;AH8sGxC;;AK13HE;E2BEE,qBAAqB;AhC43HzB;;AgCj4HA;EAUI,c7BVc;E6BWd,oBAAoB;EACpB,eAAe;AhC23HnB;;AgCn3HA;EACE,gC7BxBgB;AH84HlB;;AgCv3HA;EAII,mB7B0M6B;AH6qHjC;;AgC33HA;EAQI,6BAAgD;EtB3BhD,+BPoOgC;EOnOhC,gCPmOgC;AHgrHpC;;AKl5HE;E2B6BI,qC7BnCY;AH45HlB;;AgCr4HA;EAgBM,c7BpCY;E6BqCZ,6BAA6B;EAC7B,yBAAyB;AhCy3H/B;;AgC34HA;;EAwBI,c7B3Cc;E6B4Cd,sB7BnDW;E6BoDX,kC7BpDW;AH46Hf;;AgCl5HA;EA+BI,gB7B+K6B;EOjO7B,yBsBoD4B;EtBnD5B,0BsBmD4B;AhCu3HhC;;AgC92HA;EtBtEI,sBP6OgC;AH2sHpC;;AgCl3HA;;EAOI,W7B3EW;E6B4EX,yB7B/Ca;AH+5HjB;;AgCv2HA;EAEI,kBAAc;EAAd,cAAc;EACd,kBAAkB;AhCy2HtB;;AgCr2HA;EAEI,0BAAa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C;EiC/gIG;IAwBK,uBAAmB;IAAnB,mBAAmB;EjC0/H3B;EiClhIG;IA2BO,kBAAkB;EjC0/H5B;EiCrhIG;IA+BO,qB9BgiB6B;I8B/hB7B,oB9B+hB6B;EH09GvC;EiCzhIG;;IAsCK,qBAAiB;IAAjB,iBAAiB;EjCu/HzB;EiC7hIG;IAqDK,+BAAwB;IAAxB,wBAAwB;IAGxB,6BAAgB;IAAhB,gBAAgB;EjCy+HxB;EiCjiIG;IA4DK,aAAa;EjCw+HrB;AACF;;AiC1iIA;EAyBQ,yBAAqB;EAArB,qBAAqB;EACrB,oBAA2B;EAA3B,2BAA2B;AjCqhInC;;AiC/iIA;;EAQU,gBAAgB;EAChB,eAAe;AjC4iIzB;;AiCrjIA;EA6BU,uBAAmB;EAAnB,mBAAmB;AjC4hI7B;;AiCzjIA;EAgCY,kBAAkB;AjC6hI9B;;AiC7jIA;EAoCY,qB9BgiB6B;E8B/hB7B,oB9B+hB6B;AH8/GzC;;AiClkIA;;EA2CU,qBAAiB;EAAjB,iBAAiB;AjC4hI3B;;AiCvkIA;EA0DU,+BAAwB;EAAxB,wBAAwB;EAGxB,6BAAgB;EAAhB,gBAAgB;AjC+gI1B;;AiC5kIA;EAiEU,aAAa;AjC+gIvB;;AiClgIA;EAEI,yB9B/MW;AHmtIf;;AKptIE;E4BmNI,yB9BlNS;AHutIf;;AiC1gIA;EAWM,yB9BxNS;AH2tIf;;AK5tIE;E4B4NM,yB9B3NO;AH+tIf;;AiClhIA;EAkBQ,yB9B/NO;AHmuIf;;AiCthIA;;;;EA0BM,yB9BvOS;AH0uIf;;AiC7hIA;EA+BI,yB9B5OW;E8B6OX,gC9B7OW;AH+uIf;;AiCliIA;EAoCI,+QftNuI;AlBwtI3I;;AiCtiIA;EAwCI,yB9BrPW;AHuvIf;;AiC1iIA;EA0CM,yB9BvPS;AH2vIf;;AK5vIE;E4B2PM,yB9B1PO;AH+vIf;;AiC9/HA;EAEI,W9B7QW;AH6wIf;;AKpwIE;E4BuQI,W9BhRS;AHixIf;;AiCtgIA;EAWM,+B9BtRS;AHqxIf;;AK5wIE;E4BgRM,gC9BzRO;AHyxIf;;AiC9gIA;EAkBQ,gC9B7RO;AH6xIf;;AiClhIA;;;;EA0BM,W9BrSS;AHoyIf;;AiCzhIA;EA+BI,+B9B1SW;E8B2SX,sC9B3SW;AHyyIf;;AiC9hIA;EAoCI,qRf1QuI;AlBwwI3I;;AiCliIA;EAwCI,+B9BnTW;AHizIf;;AiCtiIA;EA0CM,W9BrTS;AHqzIf;;AK5yIE;E4B+SM,W9BxTO;AHyzIf;;AkC5zIA;EACE,kBAAkB;EAClB,oBAAa;EAAb,aAAa;EACb,0BAAsB;EAAtB,sBAAsB;EACtB,YAAY;EAEZ,qBAAqB;EACrB,sB/BJa;E+BKb,2BAA2B;EAC3B,sC/BIa;EOZX,sBP6OgC;AH0lIpC;;AkCx0IA;EAaI,eAAe;EACf,cAAc;AlC+zIlB;;AkC70IA;ExBUI,+BPoOgC;EOnOhC,gCPmOgC;AHomIpC;;AkCl1IA;ExBwBI,mCPsNgC;EOrNhC,kCPqNgC;AHymIpC;;AkCzzIA;EAGE,kBAAc;EAAd,cAAc;EAGd,eAAe;EACf,gB/BsxByC;AHkiH3C;;AkCpzIA;EACE,sB/BgxBwC;AHuiH1C;;AkCpzIA;EACE,qBAA+B;EAC/B,gBAAgB;AlCuzIlB;;AkCpzIA;EACE,gBAAgB;AlCuzIlB;;AKl2IE;E6BgDE,qBAAqB;AlCszIzB;;AkCxzIA;EAMI,oB/B+vBuC;AHujH3C;;AkC9yIA;EACE,wB/BsvByC;E+BrvBzC,gBAAgB;EAEhB,qC/B3Da;E+B4Db,6C/B5Da;AH42If;;AkCrzIA;ExBnEI,0DwB2E8E;AlCizIlF;;AkCzzIA;EAaM,aAAa;AlCgzInB;;AkC3yIA;EACE,wB/BouByC;E+BnuBzC,qC/B3Ea;E+B4Eb,0C/B5Ea;AH03If;;AkCjzIA;ExBrFI,0DQ+H4D;AlB2wIhE;;AkCtyIA;EACE,uBAAiC;EACjC,uB/BmtBwC;E+BltBxC,sBAAgC;EAChC,gBAAgB;AlCyyIlB;;AkCtyIA;EACE,uBAAiC;EACjC,sBAAgC;AlCyyIlC;;AkCryIA;EACE,kBAAkB;EAClB,MAAM;EACN,QAAQ;EACR,SAAS;EACT,OAAO;EACP,gB/B8sByC;AH0lH3C;;AkCryIA;;;EAGE,oBAAc;EAAd,cAAc;EACd,WAAW;AlCwyIb;;AkCryIA;;ExBxHI,2CQsH4D;ERrH5D,4CQqH4D;AlB6yIhE;;AkCtyIA;;ExB/GI,+CQwG4D;ERvG5D,8CQuG4D;AlBmzIhE;;AkCpyIA;EAEI,mB/BurBsD;AH+mH1D;;Ac/3II;EoBuFJ;IAMI,oBAAa;IAAb,aAAa;IACb,uBAAmB;IAAnB,mBAAmB;IACnB,mB/BirBsD;I+BhrBtD,kB/BgrBsD;EHunHxD;EkChzIF;IAaM,gBAAY;IAAZ,YAAY;IACZ,kB/B2qBoD;I+B1qBpD,gBAAgB;IAChB,iB/ByqBoD;EH6nHxD;AACF;;AkC7xIA;EAII,mB/B2pBsD;AHkoH1D;;Acl5II;EoBiHJ;IAQI,oBAAa;IAAb,aAAa;IACb,uBAAmB;IAAnB,mBAAmB;ElC8xIrB;EkCvyIF;IAcM,gBAAY;IAAZ,YAAY;IACZ,gBAAgB;ElC4xIpB;EkC3yIF;IAkBQ,cAAc;IACd,cAAc;ElC4xIpB;EkC/yIF;IxBxJI,0BwBiLoC;IxBhLpC,6BwBgLoC;ElC0xItC;EkCnzIF;;IA8BY,0BAA0B;ElCyxIpC;EkCvzIF;;IAmCY,6BAA6B;ElCwxIvC;EkC3zIF;IxB1II,yBwBkLmC;IxBjLnC,4BwBiLmC;ElCuxIrC;EkC/zIF;;IA6CY,yBAAyB;ElCsxInC;EkCn0IF;;IAkDY,4BAA4B;ElCqxItC;AACF;;AkCzwIA;EAEI,sB/BglBsC;AH2rH1C;;Ac77II;EoBgLJ;IAMI,uB/B6lBiC;I+B7lBjC,oB/B6lBiC;I+B7lBjC,e/B6lBiC;I+B5lBjC,2B/B6lBuC;I+B7lBvC,wB/B6lBuC;I+B7lBvC,mB/B6lBuC;I+B5lBvC,UAAU;IACV,SAAS;ElC4wIX;EkCrxIF;IAYM,qBAAqB;IACrB,WAAW;ElC4wIf;AACF;;AkCnwIA;EAEI,gBAAgB;AlCqwIpB;;AkCvwIA;EAKM,gBAAgB;ExB5OlB,6BwB6OiC;ExB5OjC,4BwB4OiC;AlCuwIrC;;AkC7wIA;ExBrPI,yBwB+P8B;ExB9P9B,0BwB8P8B;AlCwwIlC;;AkClxIA;ExB9PI,gBwB4Q0B;EACxB,mB/BnC2B;AH2yIjC;;AmC1hJA;EACE,oBAAa;EAAb,aAAa;EACb,mBAAe;EAAf,eAAe;EACf,qBhC+hCsC;EgC9hCtC,mBhCiiCsC;EgC/hCtC,gBAAgB;EAChB,yBhCEgB;EOJd,sBP6OgC;AHkzIpC;;AmCzhJA;EAGI,oBhCqhCqC;AHqgHzC;;AmC7hJA;EAMM,qBAAqB;EACrB,qBhCihCmC;EgChhCnC,chCNY;EgCOZ,YhCshCuC;AHqgH7C;;AmCpiJA;EAoBI,0BAA0B;AnCohJ9B;;AmCxiJA;EAwBI,qBAAqB;AnCohJzB;;AmC5iJA;EA4BI,chC1Bc;AH8iJlB;;AoC3jJA;EACE,oBAAa;EAAb,aAAa;E7BGb,eAAe;EACf,gBAAgB;EGAd,sBP6OgC;AHg1IpC;;AoC5jJA;EACE,kBAAkB;EAClB,cAAc;EACd,uBjCgxBwC;EiC/wBxC,iBjCqO+B;EiCpO/B,iBjCmxBsC;EiClxBtC,cjCwBe;EiCvBf,sBjCNa;EiCOb,yBjCJgB;AHmkJlB;;AoCvkJA;EAWI,UAAU;EACV,cjCkK8D;EiCjK9D,qBAAqB;EACrB,yBjCXc;EiCYd,qBjCXc;AH2kJlB;;AoC/kJA;EAmBI,UAAU;EACV,UjC4wBiC;EiC3wBjC,gDjCSa;AHujJjB;;AoC5jJA;EAGM,cAAc;E1BChB,+BP+MgC;EO9MhC,kCP8MgC;AH+2IpC;;AoClkJA;E1BVI,gCP6NgC;EO5NhC,mCP4NgC;AHo3IpC;;AoCvkJA;EAcI,UAAU;EACV,WjCvCW;EiCwCX,yBjCXa;EiCYb,qBjCZa;AHykJjB;;AoC9kJA;EAqBI,cjCvCc;EiCwCd,oBAAoB;EAEpB,YAAY;EACZ,sBjCjDW;EiCkDX,qBjC/Cc;AH2mJlB;;AqClnJE;EACE,uBlCyxBsC;EC9pBpC,kBAtCY;EiCnFd,gBlCsO6B;AH+4IjC;;AqChnJM;E3BwBF,8BPgN+B;EO/M/B,iCP+M+B;AH64InC;;AqChnJM;E3BKF,+BP8N+B;EO7N/B,kCP6N+B;AHk5InC;;AqCloJE;EACE,uBlCuxBqC;EC5pBnC,mBAtCY;EiCnFd,gBlCuO6B;AH85IjC;;AqChoJM;E3BwBF,8BPiN+B;EOhN/B,iCPgN+B;AH45InC;;AqChoJM;E3BKF,+BP+N+B;EO9N/B,kCP8N+B;AHi6InC;;AsChpJA;EACE,qBAAqB;EACrB,qBnCw5BsC;ECv1BpC,cAAW;EkC/Db,gBnC2R+B;EmC1R/B,cAAc;EACd,kBAAkB;EAClB,mBAAmB;EACnB,wBAAwB;E5BRtB,sBP6OgC;EiB5O9B,qIjB6b6I;AH+tInJ;;AoBvpJI;EkBNJ;IlBOM,gBAAgB;EpB2pJpB;AACF;;AKxpJE;EiCGI,qBAAqB;AtCypJ3B;;AsCvqJA;EAoBI,aAAa;AtCupJjB;;AsClpJA;EACE,kBAAkB;EAClB,SAAS;AtCqpJX;;AsC9oJA;EACE,oBnC63BsC;EmC53BtC,mBnC43BsC;EOh6BpC,oBPm6BqC;AHmxHzC;;AsCzoJE;ECjDA,WpCMa;EoCLb,yBpCkCe;AH4pJjB;;AKhrJE;EkCVI,WpCCS;EoCAT,yBAAkC;AvC8rJxC;;AuCjsJU;EAQJ,UAAU;EACV,+CpCuBW;AHsqJjB;;AsCxpJE;ECjDA,WpCMa;EoCLb,yBpCWgB;AHksJlB;;AK/rJE;EkCVI,WpCCS;EoCAT,yBAAkC;AvC6sJxC;;AuChtJU;EAQJ,UAAU;EACV,iDpCAY;AH4sJlB;;AsCvqJE;ECjDA,WpCMa;EoCLb,yBpCyCe;AHmrJjB;;AK9sJE;EkCVI,WpCCS;EoCAT,yBAAkC;AvC4tJxC;;AuC/tJU;EAQJ,UAAU;EACV,+CpC8BW;AH6rJjB;;AsCtrJE;ECjDA,WpCMa;EoCLb,yBpC2Ce;AHgsJjB;;AK7tJE;EkCVI,WpCCS;EoCAT,yBAAkC;AvC2uJxC;;AuC9uJU;EAQJ,UAAU;EACV,gDpCgCW;AH0sJjB;;AsCrsJE;ECjDA,cpCegB;EoCdhB,yBpCwCe;AHktJjB;;AK5uJE;EkCVI,cpCUY;EoCTZ,yBAAkC;AvC0vJxC;;AuC7vJU;EAQJ,UAAU;EACV,+CpC6BW;AH4tJjB;;AsCptJE;ECjDA,WpCMa;EoCLb,yBpCsCe;AHmuJjB;;AK3vJE;EkCVI,WpCCS;EoCAT,yBAAkC;AvCywJxC;;AuC5wJU;EAQJ,UAAU;EACV,+CpC2BW;AH6uJjB;;AsCnuJE;ECjDA,cpCegB;EoCdhB,yBpCMgB;AHkxJlB;;AK1wJE;EkCVI,cpCUY;EoCTZ,yBAAkC;AvCwxJxC;;AuC3xJU;EAQJ,UAAU;EACV,iDpCLY;AH4xJlB;;AsClvJE;ECjDA,WpCMa;EoCLb,yBpCagB;AH0xJlB;;AKzxJE;EkCVI,WpCCS;EoCAT,yBAAkC;AvCuyJxC;;AuC1yJU;EAQJ,UAAU;EACV,8CpCEY;AHoyJlB;;AwCnzJA;EACE,kBAAoD;EACpD,mBrCqzBsC;EqCnzBtC,yBrCKgB;EOJd,qBP8O+B;AHukJnC;;Ac9vJI;E0B5DJ;IAQI,kBrC+yBoC;EHwgItC;AACF;;AwCpzJA;EACE,gBAAgB;EAChB,eAAe;E9BTb,gB8BUsB;AxCuzJ1B;;AyCl0JA;EACE,kBAAkB;EAClB,wBtCq9ByC;EsCp9BzC,mBtCq9BsC;EsCp9BtC,6BAA6C;E/BH3C,sBP6OgC;AH4lJpC;;AyCj0JA;EAEE,cAAc;AzCm0JhB;;AyC/zJA;EACE,gBtCgR+B;AHkjJjC;;AyC1zJA;EACE,mBAAsD;AzC6zJxD;;AyC9zJA;EAKI,kBAAkB;EAClB,MAAM;EACN,QAAQ;EACR,wBtCu7BuC;EsCt7BvC,cAAc;AzC6zJlB;;AyCnzJE;EC9CA,cxB8FgE;EIzF9D,yBJyF8D;EwB5FhE,qBxB4FgE;AlBywJlE;;A0Cn2JE;EACE,yBAAqC;A1Cs2JzC;;A0Cn2JE;EACE,cAA0B;A1Cs2J9B;;AyCj0JE;EC9CA,cxB8FgE;EIzF9D,yBJyF8D;EwB5FhE,qBxB4FgE;AlBuxJlE;;A0Cj3JE;EACE,yBAAqC;A1Co3JzC;;A0Cj3JE;EACE,cAA0B;A1Co3J9B;;AyC/0JE;EC9CA,cxB8FgE;EIzF9D,yBJyF8D;EwB5FhE,qBxB4FgE;AlBqyJlE;;A0C/3JE;EACE,yBAAqC;A1Ck4JzC;;A0C/3JE;EACE,cAA0B;A1Ck4J9B;;AyC71JE;EC9CA,cxB8FgE;EIzF9D,yBJyF8D;EwB5FhE,qBxB4FgE;AlBmzJlE;;A0C74JE;EACE,yBAAqC;A1Cg5JzC;;A0C74JE;EACE,cAA0B;A1Cg5J9B;;AyC32JE;EC9CA,cxB8FgE;EIzF9D,yBJyF8D;EwB5FhE,qBxB4FgE;AlBi0JlE;;A0C35JE;EACE,yBAAqC;A1C85JzC;;A0C35JE;EACE,cAA0B;A1C85J9B;;AyCz3JE;EC9CA,cxB8FgE;EIzF9D,yBJyF8D;EwB5FhE,qBxB4FgE;AlB+0JlE;;A0Cz6JE;EACE,yBAAqC;A1C46JzC;;A0Cz6JE;EACE,cAA0B;A1C46J9B;;AyCv4JE;EC9CA,cxB8FgE;EIzF9D,yBJyF8D;EwB5FhE,qBxB4FgE;AlB61JlE;;A0Cv7JE;EACE,yBAAqC;A1C07JzC;;A0Cv7JE;EACE,cAA0B;A1C07J9B;;AyCr5JE;EC9CA,cxB8FgE;EIzF9D,yBJyF8D;EwB5FhE,qBxB4FgE;AlB22JlE;;A0Cr8JE;EACE,yBAAqC;A1Cw8JzC;;A0Cr8JE;EACE,cAA0B;A1Cw8J9B;;A2Ch9JE;EACE;IAAO,2BAAuC;E3Co9JhD;E2Cn9JE;IAAK,wBAAwB;E3Cs9J/B;AACF;;A2Cz9JE;EACE;IAAO,2BAAuC;E3Co9JhD;E2Cn9JE;IAAK,wBAAwB;E3Cs9J/B;AACF;;A2Cn9JA;EACE,oBAAa;EAAb,aAAa;EACb,YxC89BsC;EwC79BtC,gBAAgB;EvCoHZ,kBAtCY;EuC5EhB,yBxCJgB;EOJd,sBP6OgC;AHkvJpC;;A2Cl9JA;EACE,oBAAa;EAAb,aAAa;EACb,0BAAsB;EAAtB,sBAAsB;EACtB,qBAAuB;EAAvB,uBAAuB;EACvB,gBAAgB;EAChB,WxChBa;EwCiBb,kBAAkB;EAClB,mBAAmB;EACnB,yBxCUe;EiB9BX,2BjB0+B4C;AHggIlD;;AoBr+JI;EuBOJ;IvBNM,gBAAgB;EpBy+JpB;AACF;;A2Cx9JA;ErBaE,qMAA6I;EqBX7I,0BxCw8BsC;AHmhIxC;;A2Cv9JE;EACE,0DxC08BkD;EwC18BlD,kDxC08BkD;AHghItD;;A2Cv9JM;EAJJ;IAKM,uBAAe;IAAf,eAAe;E3C29JrB;AACF;;A4CrgKA;EACE,oBAAa;EAAb,aAAa;EACb,qBAAuB;EAAvB,uBAAuB;A5CwgKzB;;A4CrgKA;EACE,WAAO;EAAP,OAAO;A5CwgKT;;A6C1gKA;EACE,oBAAa;EAAb,aAAa;EACb,0BAAsB;EAAtB,sBAAsB;EAGtB,eAAe;EACf,gBAAgB;A7C2gKlB;;A6ClgKA;EACE,WAAW;EACX,c1CPgB;E0CQhB,mBAAmB;A7CqgKrB;;AK3gKE;EwCUE,UAAU;EACV,c1Cbc;E0Ccd,qBAAqB;EACrB,yB1CrBc;AH0hKlB;;A6C/gKA;EAcI,c1CjBc;E0CkBd,yB1CzBc;AH8hKlB;;A6C5/JA;EACE,kBAAkB;EAClB,cAAc;EACd,wB1C88ByC;E0C58BzC,sB1CzCa;E0C0Cb,sC1ChCa;AH8hKf;;A6CpgKA;EnC7BI,+BPoOgC;EOnOhC,gCPmOgC;AHk0JpC;;A6CzgKA;EnCfI,mCPsNgC;EOrNhC,kCPqNgC;AHu0JpC;;A6C9gKA;EAkBI,c1ChDc;E0CiDd,oBAAoB;EACpB,sB1CxDW;AHwjKf;;A6CphKA;EAyBI,UAAU;EACV,W1C9DW;E0C+DX,yB1ClCa;E0CmCb,qB1CnCa;AHkiKjB;;A6C3hKA;EAgCI,mBAAmB;A7C+/JvB;;A6C/hKA;EAmCM,gB1CiK2B;E0ChK3B,qB1CgK2B;AHg2JjC;;A6Cl/JI;EACE,uBAAmB;EAAnB,mBAAmB;A7Cq/JzB;;A6Ct/JI;EnCjCA,kCPsLgC;EOlMhC,0BmCmDwC;A7Cq/J5C;;A6C3/JI;EnC7CA,gCPkMgC;EOtLhC,4BmC4C0C;A7Cq/J9C;;A6ChgKI;EAeM,aAAa;A7Cq/JvB;;A6CpgKI;EAmBM,qB1C+HuB;E0C9HvB,oBAAoB;A7Cq/J9B;;A6CzgKI;EAuBQ,iB1C2HqB;E0C1HrB,sB1C0HqB;AH43JjC;;Ac/iKI;E+BiCA;IACE,uBAAmB;IAAnB,mBAAmB;E7CkhKvB;E6CnhKE;InCjCA,kCPsLgC;IOlMhC,0BmCmDwC;E7CihK1C;E6CvhKE;InC7CA,gCPkMgC;IOtLhC,4BmC4C0C;E7CghK5C;E6C3hKE;IAeM,aAAa;E7C+gKrB;E6C9hKE;IAmBM,qB1C+HuB;I0C9HvB,oBAAoB;E7C8gK5B;E6CliKE;IAuBQ,iB1C2HqB;I0C1HrB,sB1C0HqB;EHo5J/B;AACF;;AcxkKI;E+BiCA;IACE,uBAAmB;IAAnB,mBAAmB;E7C2iKvB;E6C5iKE;InCjCA,kCPsLgC;IOlMhC,0BmCmDwC;E7C0iK1C;E6ChjKE;InC7CA,gCPkMgC;IOtLhC,4BmC4C0C;E7CyiK5C;E6CpjKE;IAeM,aAAa;E7CwiKrB;E6CvjKE;IAmBM,qB1C+HuB;I0C9HvB,oBAAoB;E7CuiK5B;E6C3jKE;IAuBQ,iB1C2HqB;I0C1HrB,sB1C0HqB;EH66J/B;AACF;;AcjmKI;E+BiCA;IACE,uBAAmB;IAAnB,mBAAmB;E7CokKvB;E6CrkKE;InCjCA,kCPsLgC;IOlMhC,0BmCmDwC;E7CmkK1C;E6CzkKE;InC7CA,gCPkMgC;IOtLhC,4BmC4C0C;E7CkkK5C;E6C7kKE;IAeM,aAAa;E7CikKrB;E6ChlKE;IAmBM,qB1C+HuB;I0C9HvB,oBAAoB;E7CgkK5B;E6CplKE;IAuBQ,iB1C2HqB;I0C1HrB,sB1C0HqB;EHs8J/B;AACF;;Ac1nKI;E+BiCA;IACE,uBAAmB;IAAnB,mBAAmB;E7C6lKvB;E6C9lKE;InCjCA,kCPsLgC;IOlMhC,0BmCmDwC;E7C4lK1C;E6ClmKE;InC7CA,gCPkMgC;IOtLhC,4BmC4C0C;E7C2lK5C;E6CtmKE;IAeM,aAAa;E7C0lKrB;E6CzmKE;IAmBM,qB1C+HuB;I0C9HvB,oBAAoB;E7CylK5B;E6C7mKE;IAuBQ,iB1C2HqB;I0C1HrB,sB1C0HqB;EH+9J/B;AACF;;A6C5kKA;EAEI,qBAAqB;EACrB,oBAAoB;EnCjIpB,gBmCkIwB;A7C8kK5B;;A6CllKA;EAOM,mBAAmB;A7C+kKzB;;A6CtlKA;EAaM,sBAAsB;A7C6kK5B;;A8C1tKE;EACE,c5B2F8D;E4B1F9D,yB5B0F8D;AlBmoKlE;;AKltKE;EyCPM,c5BsF0D;E4BrF1D,yBAAyC;A9C6tKjD;;A8CpuKE;EAWM,W3CPO;E2CQP,yB5BgF0D;E4B/E1D,qB5B+E0D;AlB8oKlE;;A8C1uKE;EACE,c5B2F8D;E4B1F9D,yB5B0F8D;AlBmpKlE;;AKluKE;EyCPM,c5BsF0D;E4BrF1D,yBAAyC;A9C6uKjD;;A8CpvKE;EAWM,W3CPO;E2CQP,yB5BgF0D;E4B/E1D,qB5B+E0D;AlB8pKlE;;A8C1vKE;EACE,c5B2F8D;E4B1F9D,yB5B0F8D;AlBmqKlE;;AKlvKE;EyCPM,c5BsF0D;E4BrF1D,yBAAyC;A9C6vKjD;;A8CpwKE;EAWM,W3CPO;E2CQP,yB5BgF0D;E4B/E1D,qB5B+E0D;AlB8qKlE;;A8C1wKE;EACE,c5B2F8D;E4B1F9D,yB5B0F8D;AlBmrKlE;;AKlwKE;EyCPM,c5BsF0D;E4BrF1D,yBAAyC;A9C6wKjD;;A8CpxKE;EAWM,W3CPO;E2CQP,yB5BgF0D;E4B/E1D,qB5B+E0D;AlB8rKlE;;A8C1xKE;EACE,c5B2F8D;E4B1F9D,yB5B0F8D;AlBmsKlE;;AKlxKE;EyCPM,c5BsF0D;E4BrF1D,yBAAyC;A9C6xKjD;;A8CpyKE;EAWM,W3CPO;E2CQP,yB5BgF0D;E4B/E1D,qB5B+E0D;AlB8sKlE;;A8C1yKE;EACE,c5B2F8D;E4B1F9D,yB5B0F8D;AlBmtKlE;;AKlyKE;EyCPM,c5BsF0D;E4BrF1D,yBAAyC;A9C6yKjD;;A8CpzKE;EAWM,W3CPO;E2CQP,yB5BgF0D;E4B/E1D,qB5B+E0D;AlB8tKlE;;A8C1zKE;EACE,c5B2F8D;E4B1F9D,yB5B0F8D;AlBmuKlE;;AKlzKE;EyCPM,c5BsF0D;E4BrF1D,yBAAyC;A9C6zKjD;;A8Cp0KE;EAWM,W3CPO;E2CQP,yB5BgF0D;E4B/E1D,qB5B+E0D;AlB8uKlE;;A8C10KE;EACE,c5B2F8D;E4B1F9D,yB5B0F8D;AlBmvKlE;;AKl0KE;EyCPM,c5BsF0D;E4BrF1D,yBAAyC;A9C60KjD;;A8Cp1KE;EAWM,W3CPO;E2CQP,yB5BgF0D;E4B/E1D,qB5B+E0D;AlB8vKlE;;A+C71KA;EACE,YAAY;E3C8HR,iBAtCY;E2CtFhB,gB5CiS+B;E4ChS/B,cAAc;EACd,W5CYa;E4CXb,yB5CCa;E4CAb,WAAW;A/Cg2Kb;;AK31KE;E0CDE,W5CMW;E4CLX,qBAAqB;A/Cg2KzB;;AK51KE;E0CCI,YAAY;A/C+1KlB;;A+Cp1KA;EACE,UAAU;EACV,6BAA6B;EAC7B,SAAS;EACT,wBAAgB;EAAhB,qBAAgB;EAAhB,gBAAgB;A/Cu1KlB;;A+Cj1KA;EACE,oBAAoB;A/Co1KtB;;AgD33KA;EACE,gB7Cy4BuC;E6Cx4BvC,gBAAgB;E5C6HZ,mBAtCY;E4CpFhB,2C7CEa;E6CDb,4BAA4B;EAC5B,oC7C04BmD;E6Cz4BnD,gD7CSa;E6CRb,mCAA2B;EAA3B,2BAA2B;EAC3B,UAAU;EtCLR,sBP64BsC;AHs/I1C;;AgDx4KA;EAcI,sB7C63BsC;AHigJ1C;;AgD54KA;EAkBI,UAAU;AhD83Kd;;AgDh5KA;EAsBI,cAAc;EACd,UAAU;AhD83Kd;;AgDr5KA;EA2BI,aAAa;AhD83KjB;;AgD13KA;EACE,oBAAa;EAAb,aAAa;EACb,sBAAmB;EAAnB,mBAAmB;EACnB,wB7Cy2BwC;E6Cx2BxC,c7CtBgB;E6CuBhB,2C7C7Ba;E6C8Bb,4BAA4B;EAC5B,4C7Ci3BoD;AH4gJtD;;AgD13KA;EACE,gB7Ci2BwC;AH4hJ1C;;AiDj6KA;EAEE,gBAAgB;AjDm6KlB;;AiDr6KA;EAKI,kBAAkB;EAClB,gBAAgB;AjDo6KpB;;AiD/5KA;EACE,eAAe;EACf,MAAM;EACN,OAAO;EACP,a9C+pBsC;E8C9pBtC,aAAa;EACb,WAAW;EACX,YAAY;EACZ,gBAAgB;EAGhB,UAAU;AjDg6KZ;;AiDz5KA;EACE,kBAAkB;EAClB,WAAW;EACX,c9C64BuC;E8C34BvC,oBAAoB;AjD25KtB;;AiDx5KE;E7BrCI,2CjB48BoD;EiB58BpD,mCjB48BoD;EiB58BpD,oEjB48BoD;E8Cr6BtD,sC9Cm6BmD;E8Cn6BnD,8B9Cm6BmD;AHw/IvD;;AoB77KI;E6BgCF;I7B/BI,gBAAgB;EpBi8KpB;AACF;;AiD/5KE;EACE,uB9Ci6BoC;E8Cj6BpC,e9Ci6BoC;AHigJxC;;AiD95KE;EACE,8B9C85B2C;E8C95B3C,sB9C85B2C;AHmgJ/C;;AiD75KA;EACE,oBAAa;EAAb,aAAa;EACb,6B/ByE8D;AlBu1KhE;;AiDl6KA;EAKI,8B/BsE4D;E+BrE5D,gBAAgB;AjDi6KpB;;AiDv6KA;;EAWI,oBAAc;EAAd,cAAc;AjDi6KlB;;AiD56KA;EAeI,gBAAgB;AjDi6KpB;;AiD75KA;EACE,oBAAa;EAAb,aAAa;EACb,sBAAmB;EAAnB,mBAAmB;EACnB,6B/BqD8D;AlB22KhE;;AiDn6KA;EAOI,cAAc;EACd,0B/BgD4D;E+B/C5D,WAAW;AjDg6Kf;;AiDz6KA;EAcI,0BAAsB;EAAtB,sBAAsB;EACtB,qBAAuB;EAAvB,uBAAuB;EACvB,YAAY;AjD+5KhB;;AiD/6KA;EAmBM,gBAAgB;AjDg6KtB;;AiDn7KA;EAuBM,aAAa;AjDg6KnB;;AiD15KA;EACE,kBAAkB;EAClB,oBAAa;EAAb,aAAa;EACb,0BAAsB;EAAtB,sBAAsB;EACtB,WAAW;EAGX,oBAAoB;EACpB,sB9C1Ga;E8C2Gb,4BAA4B;EAC5B,oC9ClGa;EOZX,qBP8O+B;E8C5HjC,UAAU;AjDy5KZ;;AiDr5KA;EACE,eAAe;EACf,MAAM;EACN,OAAO;EACP,a9CojBsC;E8CnjBtC,YAAY;EACZ,aAAa;EACb,sB9CjHa;AHygLf;;AiD/5KA;EAUW,UAAU;AjDy5KrB;;AiDn6KA;EAWW,Y9C4zB2B;AHgmJtC;;AiDv5KA;EACE,oBAAa;EAAb,aAAa;EACb,qBAAuB;EAAvB,uBAAuB;EACvB,sBAA8B;EAA9B,8BAA8B;EAC9B,kB9CyzBsC;E8CxzBtC,gC9CtIgB;EOId,0CQsH4D;ERrH5D,2CQqH4D;AlBw6KhE;;AiDj6KA;EASI,kB9CozBoC;E8ClzBpC,8BAA6F;AjD25KjG;;AiDt5KA;EACE,gBAAgB;EAChB,gB9C2I+B;AH8wKjC;;AiDp5KA;EACE,kBAAkB;EAGlB,kBAAc;EAAd,cAAc;EACd,a9CuwBsC;AH8oJxC;;AiDj5KA;EACE,oBAAa;EAAb,aAAa;EACb,mBAAe;EAAf,eAAe;EACf,sBAAmB;EAAnB,mBAAmB;EACnB,kBAAyB;EAAzB,yBAAyB;EACzB,gBAAgE;EAChE,6B9CvKgB;EOkBd,8CQwG4D;ERvG5D,6CQuG4D;AlBm8KhE;;AiD55KA;EAcI,eAAwC;AjDk5K5C;;AiD74KA;EACE,kBAAkB;EAClB,YAAY;EACZ,WAAW;EACX,YAAY;EACZ,gBAAgB;AjDg5KlB;;AcvhLI;EmCzBJ;IAuKI,gB9CmwBqC;I8ClwBrC,oBAAyC;EjD84K3C;EiDhiLF;IAsJI,+B/B3E4D;ElBw9K9D;EiDniLF;IAyJM,gC/B9E0D;ElB29K9D;EiDnhLF;IA2II,+B/BnF4D;ElB89K9D;EiDthLF;IA8IM,4B/BtF0D;ElBi+K9D;EiDn4KA;IAAY,gB9C4uB2B;EH0pJvC;AACF;;Ac7iLI;EmC0KF;;IAEE,gB9CouBqC;EHmqJvC;AACF;;AcpjLI;EmCiLF;IAAY,iB9C8tB4B;EH0qJxC;AACF;;AkDrnLA;EACE,kBAAkB;EAClB,a/CmrBsC;E+ClrBtC,cAAc;EACd,S/Cy1BmC;EgD71BnC,kMhDuRiN;EgDrRjN,kBAAkB;EAClB,gBhD+R+B;EgD9R/B,gBhDmS+B;EgDlS/B,gBAAgB;EAChB,iBAAiB;EACjB,qBAAqB;EACrB,iBAAiB;EACjB,oBAAoB;EACpB,sBAAsB;EACtB,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,gBAAgB;E/CgHZ,mBAtCY;E8C9EhB,qBAAqB;EACrB,UAAU;AlDkoLZ;;AkD7oLA;EAaW,Y/C60B2B;AHuzJtC;;AkDjpLA;EAgBI,kBAAkB;EAClB,cAAc;EACd,a/C60BqC;E+C50BrC,c/C60BqC;AHwzJzC;;AkDxpLA;EAsBM,kBAAkB;EAClB,WAAW;EACX,yBAAyB;EACzB,mBAAmB;AlDsoLzB;;AkDjoLA;EACE,iBAAgC;AlDooLlC;;AkDroLA;EAII,SAAS;AlDqoLb;;AkDzoLA;EAOM,MAAM;EACN,6BAAgE;EAChE,sB/CvBS;AH6pLf;;AkDjoLA;EACE,iB/CmzBuC;AHi1JzC;;AkDroLA;EAII,OAAO;EACP,a/C+yBqC;E+C9yBrC,c/C6yBqC;AHw1JzC;;AkD3oLA;EASM,QAAQ;EACR,oCAA2F;EAC3F,wB/CvCS;AH6qLf;;AkDjoLA;EACE,iBAAgC;AlDooLlC;;AkDroLA;EAII,MAAM;AlDqoLV;;AkDzoLA;EAOM,SAAS;EACT,6B/C4xBmC;E+C3xBnC,yB/CrDS;AH2rLf;;AkDjoLA;EACE,iB/CqxBuC;AH+2JzC;;AkDroLA;EAII,QAAQ;EACR,a/CixBqC;E+ChxBrC,c/C+wBqC;AHs3JzC;;AkD3oLA;EASM,OAAO;EACP,oC/C4wBmC;E+C3wBnC,uB/CrES;AH2sLf;;AkDjnLA;EACE,gB/C2uBuC;E+C1uBvC,uB/CgvBuC;E+C/uBvC,W/CvGa;E+CwGb,kBAAkB;EAClB,sB/C/Fa;EOZX,sBP6OgC;AHm/KpC;;AoDruLA;EACE,kBAAkB;EAClB,MAAM;EACN,OAAO;EACP,ajDirBsC;EiDhrBtC,cAAc;EACd,gBjD22BuC;EgDh3BvC,kMhDuRiN;EgDrRjN,kBAAkB;EAClB,gBhD+R+B;EgD9R/B,gBhDmS+B;EgDlS/B,gBAAgB;EAChB,iBAAiB;EACjB,qBAAqB;EACrB,iBAAiB;EACjB,oBAAoB;EACpB,sBAAsB;EACtB,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,gBAAgB;E/CgHZ,mBAtCY;EgD7EhB,qBAAqB;EACrB,sBjDNa;EiDOb,4BAA4B;EAC5B,oCjDEa;EOZX,qBP8O+B;AH+gLnC;;AoDlwLA;EAoBI,kBAAkB;EAClB,cAAc;EACd,WjD22BoC;EiD12BpC,cjD22BqC;EiD12BrC,gBjD2N+B;AHuhLnC;;AoD1wLA;EA4BM,kBAAkB;EAClB,cAAc;EACd,WAAW;EACX,yBAAyB;EACzB,mBAAmB;ApDkvLzB;;AoD7uLA;EACE,qBjD41BuC;AHo5JzC;;AoDjvLA;EAII,2BlC2F4D;AlBspLhE;;AoDrvLA;EAOM,SAAS;EACT,6BAAgE;EAChE,qCjDu1BiE;AH25JvE;;AoD3vLA;EAaM,WjD6L2B;EiD5L3B,6BAAgE;EAChE,sBjD7CS;AH+xLf;;AoD7uLA;EACE,mBjDw0BuC;AHw6JzC;;AoDjvLA;EAII,yBlCuE4D;EkCtE5D,ajDo0BqC;EiDn0BrC,YjDk0BoC;EiDj0BpC,gBAAgC;ApDivLpC;;AoDxvLA;EAUM,OAAO;EACP,oCAA2F;EAC3F,uCjDg0BiE;AHk7JvE;;AoD9vLA;EAgBM,SjDsK2B;EiDrK3B,oCAA2F;EAC3F,wBjDpES;AHszLf;;AoD7uLA;EACE,kBjDizBuC;AH+7JzC;;AoDjvLA;EAII,wBlCgD4D;AlBisLhE;;AoDrvLA;EAOM,MAAM;EACN,oCAA2F;EAC3F,wCjD4yBiE;AHs8JvE;;AoD3vLA;EAaM,QjDkJ2B;EiDjJ3B,oCAA2F;EAC3F,yBjDxFS;AH00Lf;;AoDjwLA;EAqBI,kBAAkB;EAClB,MAAM;EACN,SAAS;EACT,cAAc;EACd,WjDwxBoC;EiDvxBpC,oBAAsC;EACtC,WAAW;EACX,gCjD4wBuD;AHo+J3D;;AoD5uLA;EACE,oBjDixBuC;AH89JzC;;AoDhvLA;EAII,0BlCgB4D;EkCf5D,ajD6wBqC;EiD5wBrC,YjD2wBoC;EiD1wBpC,gBAAgC;ApDgvLpC;;AoDvvLA;EAUM,QAAQ;EACR,oCjDuwBmC;EiDtwBnC,sCjDywBiE;AHw+JvE;;AoD7vLA;EAgBM,UjD+G2B;EiD9G3B,oCjDiwBmC;EiDhwBnC,uBjD3HS;AH42Lf;;AoD3tLA;EACE,uBjDkuBwC;EiDjuBxC,gBAAgB;EhD3BZ,eAtCY;EgDoEhB,yBjD2tByD;EiD1tBzD,gCAAyE;E1ChJvE,0CQsH4D;ERrH5D,2CQqH4D;AlByvLhE;;AoDruLA;EAUI,aAAa;ApD+tLjB;;AoD3tLA;EACE,uBjDotBwC;EiDntBxC,cjDxJgB;AHs3LlB;;AqDz3LA;EACE,kBAAkB;ArD43LpB;;AqDz3LA;EACE,uBAAmB;EAAnB,mBAAmB;ArD43LrB;;AqDz3LA;EACE,kBAAkB;EAClB,WAAW;EACX,gBAAgB;ArD43LlB;;AsDn5LE;EACE,cAAc;EACd,WAAW;EACX,WAAW;AtDs5Lf;;AqD93LA;EACE,kBAAkB;EAClB,aAAa;EACb,WAAW;EACX,WAAW;EACX,mBAAmB;EACnB,mCAA2B;EAA3B,2BAA2B;EjC5BvB,8CjBikCkF;EiBjkClF,sCjBikCkF;EiBjkClF,0EjBikCkF;AH61JxF;;AoBz5LI;EiCiBJ;IjChBM,gBAAgB;EpB65LpB;AACF;;AqDp4LA;;;EAGE,cAAc;ArDu4LhB;;AqDp4LA;;EAEE,mCAA2B;EAA3B,2BAA2B;ArDu4L7B;;AqDp4LA;;EAEE,oCAA4B;EAA5B,4BAA4B;ArDu4L9B;;AqD/3LA;EAEI,UAAU;EACV,4BAA4B;EAC5B,uBAAe;EAAf,eAAe;ArDi4LnB;;AqDr4LA;;;EAUI,UAAU;EACV,UAAU;ArDi4Ld;;AqD54LA;;EAgBI,UAAU;EACV,UAAU;EjCtER,2BjBgkCkC;AHw4JxC;;AoBn8LI;EiCgDJ;;I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;AvEy5OhD;;AuEx6OQ;EAAgC,yBAA4B;AvE46OpE;;AuE36OQ;;EAEE,6BAAoC;AvE86O9C;;AuE56OQ;;EAEE,+BAAwC;AvE+6OlD;;AuE76OQ;;EAEE,gCAA0C;AvEg7OpD;;AuE96OQ;;EAEE,8BAAsC;AvEi7OhD;;AuEh8OQ;EAAgC,uBAA4B;AvEo8OpE;;AuEn8OQ;;EAEE,2BAAoC;AvEs8O9C;;AuEp8OQ;;EAEE,6BAAwC;AvEu8OlD;;AuEr8OQ;;EAEE,8BAA0C;AvEw8OpD;;AuEt8OQ;;EAEE,4BAAsC;AvEy8OhD;;AuEx9OQ;EAAgC,qBAA4B;AvE49OpE;;AuE39OQ;;EAEE,yBAAoC;AvE89O9C;;AuE59OQ;;EAEE,2BAAwC;AvE+9OlD;;AuE79OQ;;EAEE,4BAA0C;AvEg+OpD;;AuE99OQ;;EAEE,0BAAsC;AvEi+OhD;;AuEh/OQ;EAAgC,2BAA4B;AvEo/OpE;;AuEn/OQ;;EAEE,+BAAoC;AvEs/O9C;;AuEp/OQ;;EAEE,iCAAwC;AvEu/OlD;;AuEr/OQ;;EAEE,kCAA0C;AvEw/OpD;;AuEt/OQ;;EAEE,gCAAsC;AvEy/OhD;;AuExgPQ;EAAgC,0BAA4B;AvE4gPpE;;AuE3gPQ;;EAEE,8BAAoC;AvE8gP9C;;AuE5gPQ;;EAEE,gCAAwC;AvE+gPlD;;AuE7gPQ;;EAEE,iCAA0C;AvEghPpD;;AuE9gPQ;;EAEE,+BAAsC;AvEihPhD;;AuEhiPQ;EAAgC,wBAA4B;AvEoiPpE;;AuEniPQ;;EAEE,4BAAoC;AvEsiP9C;;AuEpiPQ;;EAEE,8BAAwC;AvEuiPlD;;AuEriPQ;;EAEE,+BAA0C;AvEwiPpD;;AuEtiPQ;;EAEE,6BAAsC;AvEyiPhD;;AuExjPQ;EAAgC,0BAA4B;AvE4jPpE;;AuE3jPQ;;EAEE,8BAAoC;AvE8jP9C;;AuE5jPQ;;EAEE,gCAAwC;AvE+jPlD;;AuE7jPQ;;EAEE,iCAA0C;AvEgkPpD;;AuE9jPQ;;EAEE,+BAAsC;AvEikPhD;;AuEhlPQ;EAAgC,wBAA4B;AvEolPpE;;AuEnlPQ;;EAEE,4BAAoC;AvEslP9C;;AuEplPQ;;EAEE,8BAAwC;AvEulPlD;;AuErlPQ;;EAEE,+BAA0C;AvEwlPpD;;AuEtlPQ;;EAEE,6BAAsC;AvEylPhD;;AuEjlPQ;EAAwB,2BAA2B;AvEqlP3D;;AuEplPQ;;EAEE,+BAA+B;AvEulPzC;;AuErlPQ;;EAEE,iCAAiC;AvEwlP3C;;AuEtlPQ;;EAEE,kCAAkC;AvEylP5C;;AuEvlPQ;;EAEE,gCAAgC;AvE0lP1C;;AuEzmPQ;EAAwB,0BAA2B;AvE6mP3D;;AuE5mPQ;;EAEE,8BAA+B;AvE+mPzC;;AuE7mPQ;;EAEE,gCAAiC;AvEgnP3C;;AuE9mPQ;;EAEE,iCAAkC;AvEinP5C;;AuE/mPQ;;EAEE,+BAAgC;AvEknP1C;;AuEjoPQ;EAAwB,wBAA2B;AvEqoP3D;;AuEpoPQ;;EAEE,4BAA+B;AvEuoPzC;;AuEroPQ;;EAEE,8BAAiC;AvEwoP3C;;AuEtoPQ;;EAEE,+BAAkC;AvEyoP5C;;AuEvoPQ;;EAEE,6BAAgC;AvE0oP1C;;AuEzpPQ;EAAwB,0BAA2B;AvE6pP3D;;AuE5pPQ;;EAEE,8BAA+B;AvE+pPzC;;AuE7pPQ;;EAEE,gCAAiC;AvEgqP3C;;AuE9pPQ;;EAEE,iCAAkC;AvEiqP5C;;AuE/pPQ;;EAEE,+BAAgC;AvEkqP1C;;AuEjrPQ;EAAwB,wBAA2B;AvEqrP3D;;AuEprPQ;;EAEE,4BAA+B;AvEurPzC;;AuErrPQ;;EAEE,8BAAiC;AvEwrP3C;;AuEtrPQ;;EAEE,+BAAkC;AvEyrP5C;;AuEvrPQ;;EAEE,6BAAgC;AvE0rP1C;;AuEprPI;EAAmB,uBAAuB;AvEwrP9C;;AuEvrPI;;EAEE,2BAA2B;AvE0rPjC;;AuExrPI;;EAEE,6BAA6B;AvE2rPnC;;AuEzrPI;;EAEE,8BAA8B;AvE4rPpC;;AuE1rPI;;EAEE,4BAA4B;AvE6rPlC;;ActsPI;EyDlDI;IAAgC,oBAA4B;EvE6vPlE;EuE5vPM;;IAEE,wBAAoC;EvE8vP5C;EuE5vPM;;IAEE,0BAAwC;EvE8vPhD;EuE5vPM;;IAEE,2BAA0C;EvE8vPlD;EuE5vPM;;IAEE,yBAAsC;EvE8vP9C;EuE7wPM;IAAgC,0BAA4B;EvEgxPlE;EuE/wPM;;IAEE,8BAAoC;EvEixP5C;EuE/wPM;;IAEE,gCAAwC;EvEixPhD;EuE/wPM;;IAEE,iCAA0C;EvEixPlD;EuE/wPM;;IAEE,+BAAsC;EvEixP9C;EuEhyPM;IAAgC,yBAA4B;EvEmyPlE;EuElyPM;;IAEE,6BAAoC;EvEoyP5C;EuElyPM;;IAEE,+BAAwC;EvEoyPhD;EuElyPM;;IAEE,gCAA0C;EvEoyPlD;EuElyPM;;IAEE,8BAAsC;EvEoyP9C;EuEnzPM;IAAgC,uBAA4B;EvEszPlE;EuErzPM;;IAEE,2BAAoC;EvEuzP5C;EuErzPM;;IAEE,6BAAwC;EvEuzPhD;EuErzPM;;IAEE,8BAA0C;EvEuzPlD;EuErzPM;;IAEE,4BAAsC;EvEuzP9C;EuEt0PM;IAAgC,yBAA4B;EvEy0PlE;EuEx0PM;;IAEE,6BAAoC;EvE00P5C;EuEx0PM;;IAEE,+BAAwC;EvE00PhD;EuEx0PM;;IAEE,gCAA0C;EvE00PlD;EuEx0PM;;IAEE,8BAAsC;EvE00P9C;EuEz1PM;IAAgC,uBAA4B;EvE41PlE;EuE31PM;;IAEE,2BAAoC;EvE61P5C;EuE31PM;;IAEE,6BAAwC;EvE61PhD;EuE31PM;;IAEE,8BAA0C;EvE61PlD;EuE31PM;;IAEE,4BAAsC;EvE61P9C;EuE52PM;IAAgC,qBAA4B;EvE+2PlE;EuE92PM;;IAEE,yBAAoC;EvEg3P5C;EuE92PM;;IAEE,2BAAwC;EvEg3PhD;EuE92PM;;IAEE,4BAA0C;EvEg3PlD;EuE92PM;;IAEE,0BAAsC;EvEg3P9C;EuE/3PM;IAAgC,2BAA4B;EvEk4PlE;EuEj4PM;;IAEE,+BAAoC;EvEm4P5C;EuEj4PM;;IAEE,iCAAwC;EvEm4PhD;EuEj4PM;;IAEE,kCAA0C;EvEm4PlD;EuEj4PM;;IAEE,gCAAsC;EvEm4P9C;EuEl5PM;IAAgC,0BAA4B;EvEq5PlE;EuEp5PM;;IAEE,8BAAoC;EvEs5P5C;EuEp5PM;;IAEE,gCAAwC;EvEs5PhD;EuEp5PM;;IAEE,iCAA0C;EvEs5PlD;EuEp5PM;;IAEE,+BAAsC;EvEs5P9C;EuEr6PM;IAAgC,wBAA4B;EvEw6PlE;EuEv6PM;;IAEE,4BAAoC;EvEy6P5C;EuEv6PM;;IAEE,8BAAwC;EvEy6PhD;EuEv6PM;;IAEE,+BAA0C;EvEy6PlD;EuEv6PM;;IAEE,6BAAsC;EvEy6P9C;EuEx7PM;IAAgC,0BAA4B;EvE27PlE;EuE17PM;;IAEE,8BAAoC;EvE47P5C;EuE17PM;;IAEE,gCAAwC;EvE47PhD;EuE17PM;;IAEE,iCAA0C;EvE47PlD;EuE17PM;;IAEE,+BAAsC;EvE47P9C;EuE38PM;IAAgC,wBAA4B;EvE88PlE;EuE78PM;;IAEE,4BAAoC;EvE+8P5C;EuE78PM;;IAEE,8BAAwC;EvE+8PhD;EuE78PM;;IAEE,+BAA0C;EvE+8PlD;EuE78PM;;IAEE,6BAAsC;EvE+8P9C;EuEv8PM;IAAwB,2BAA2B;EvE08PzD;EuEz8PM;;IAEE,+BAA+B;EvE28PvC;EuEz8PM;;IAEE,iCAAiC;EvE28PzC;EuEz8PM;;IAEE,kCAAkC;EvE28P1C;EuEz8PM;;IAEE,gCAAgC;EvE28PxC;EuE19PM;IAAwB,0BAA2B;EvE69PzD;EuE59PM;;IAEE,8BAA+B;EvE89PvC;EuE59PM;;IAEE,gCAAiC;EvE89PzC;EuE59PM;;IAEE,iCAAkC;EvE89P1C;EuE59PM;;IAEE,+BAAgC;EvE89PxC;EuE7+PM;IAAwB,wBAA2B;EvEg/PzD;EuE/+PM;;IAEE,4BAA+B;EvEi/PvC;EuE/+PM;;IAEE,8BAAiC;EvEi/PzC;EuE/+PM;;IAEE,+BAAkC;EvEi/P1C;EuE/+PM;;IAEE,6BAAgC;EvEi/PxC;EuEhgQM;IAAwB,0BAA2B;EvEmgQzD;EuElgQM;;IAEE,8BAA+B;EvEogQvC;EuElgQM;;IAEE,gCAAiC;EvEogQzC;EuElgQM;;IAEE,iCAAkC;EvEogQ1C;EuElgQM;;IAEE,+BAAgC;EvEogQxC;EuEnhQM;IAAwB,wBAA2B;EvEshQzD;EuErhQM;;IAEE,4BAA+B;EvEuhQvC;EuErhQM;;IAEE,8BAAiC;EvEuhQzC;EuErhQM;;IAEE,+BAAkC;EvEuhQ1C;EuErhQM;;IAEE,6BAAgC;EvEuhQxC;EuEjhQE;IAAmB,uBAAuB;EvEohQ5C;EuEnhQE;;IAEE,2BAA2B;EvEqhQ/B;EuEnhQE;;IAEE,6BAA6B;EvEqhQjC;EuEnhQE;;IAEE,8BAA8B;EvEqhQlC;EuEnhQE;;IAEE,4BAA4B;EvEqhQhC;AACF;;Ac/hQI;EyDlDI;IAAgC,oBAA4B;EvEslQlE;EuErlQM;;IAEE,wBAAoC;EvEulQ5C;EuErlQM;;IAEE,0BAAwC;EvEulQhD;EuErlQM;;IAEE,2BAA0C;EvEulQlD;EuErlQM;;IAEE,yBAAsC;EvEulQ9C;EuEtmQM;IAAgC,0BAA4B;EvEymQlE;EuExmQM;;IAEE,8BAAoC;EvE0mQ5C;EuExmQM;;IAEE,gCAAwC;EvE0mQhD;EuExmQM;;IAEE,iCAA0C;EvE0mQlD;EuExmQM;;IAEE,+BAAsC;EvE0mQ9C;EuEznQM;IAAgC,yBAA4B;EvE4nQlE;EuE3nQM;;IAEE,6BAAoC;EvE6nQ5C;EuE3nQM;;IAEE,+BAAwC;EvE6nQhD;EuE3nQM;;IAEE,gCAA0C;EvE6nQlD;EuE3nQM;;IAEE,8BAAsC;EvE6nQ9C;EuE5oQM;IAAgC,uBAA4B;EvE+oQlE;EuE9oQM;;IAEE,2BAAoC;EvEgpQ5C;EuE9oQM;;IAEE,6BAAwC;EvEgpQhD;EuE9oQM;;IAEE,8BAA0C;EvEgpQlD;EuE9oQM;;IAEE,4BAAsC;EvEgpQ9C;EuE/pQM;IAAgC,yBAA4B;EvEkqQlE;EuEjqQM;;IAEE,6BAAoC;EvEmqQ5C;EuEjqQM;;IAEE,+BAAwC;EvEmqQhD;EuEjqQM;;IAEE,gCAA0C;EvEmqQlD;EuEjqQM;;IAEE,8BAAsC;EvEmqQ9C;EuElrQM;IAAgC,uBAA4B;EvEqrQlE;EuEprQM;;IAEE,2BAAoC;EvEsrQ5C;EuEprQM;;IAEE,6BAAwC;EvEsrQhD;EuEprQM;;IAEE,8BAA0C;EvEsrQlD;EuEprQM;;IAEE,4BAAsC;EvEsrQ9C;EuErsQM;IAAgC,qBAA4B;EvEwsQlE;EuEvsQM;;IAEE,yBAAoC;EvEysQ5C;EuEvsQM;;IAEE,2BAAwC;EvEysQhD;EuEvsQM;;IAEE,4BAA0C;EvEysQlD;EuEvsQM;;IAEE,0BAAsC;EvEysQ9C;EuExtQM;IAAgC,2BAA4B;EvE2tQlE;EuE1tQM;;IAEE,+BAAoC;EvE4tQ5C;EuE1tQM;;IAEE,iCAAwC;EvE4tQhD;EuE1tQM;;IAEE,kCAA0C;EvE4tQlD;EuE1tQM;;IAEE,gCAAsC;EvE4tQ9C;EuE3uQM;IAAgC,0BAA4B;EvE8uQlE;EuE7uQM;;IAEE,8BAAoC;EvE+uQ5C;EuE7uQM;;IAEE,gCAAwC;EvE+uQhD;EuE7uQM;;IAEE,iCAA0C;EvE+uQlD;EuE7uQM;;IAEE,+BAAsC;EvE+uQ9C;EuE9vQM;IAAgC,wBAA4B;EvEiwQlE;EuEhwQM;;IAEE,4BAAoC;EvEkwQ5C;EuEhwQM;;IAEE,8BAAwC;EvEkwQhD;EuEhwQM;;IAEE,+BAA0C;EvEkwQlD;EuEhwQM;;IAEE,6BAAsC;EvEkwQ9C;EuEjxQM;IAAgC,0BAA4B;EvEoxQlE;EuEnxQM;;IAEE,8BAAoC;EvEqxQ5C;EuEnxQM;;IAEE,gCAAwC;EvEqxQhD;EuEnxQM;;IAEE,iCAA0C;EvEqxQlD;EuEnxQM;;IAEE,+BAAsC;EvEqxQ9C;EuEpyQM;IAAgC,wBAA4B;EvEuyQlE;EuEtyQM;;IAEE,4BAAoC;EvEwyQ5C;EuEtyQM;;IAEE,8BAAwC;EvEwyQhD;EuEtyQM;;IAEE,+BAA0C;EvEwyQlD;EuEtyQM;;IAEE,6BAAsC;EvEwyQ9C;EuEhyQM;IAAwB,2BAA2B;EvEmyQzD;EuElyQM;;IAEE,+BAA+B;EvEoyQvC;EuElyQM;;IAEE,iCAAiC;EvEoyQzC;EuElyQM;;IAEE,kCAAkC;EvEoyQ1C;EuElyQM;;IAEE,gCAAgC;EvEoyQxC;EuEnzQM;IAAwB,0BAA2B;EvEszQzD;EuErzQM;;IAEE,8BAA+B;EvEuzQvC;EuErzQM;;IAEE,gCAAiC;EvEuzQzC;EuErzQM;;IAEE,iCAAkC;EvEuzQ1C;EuErzQM;;IAEE,+BAAgC;EvEuzQxC;EuEt0QM;IAAwB,wBAA2B;EvEy0QzD;EuEx0QM;;IAEE,4BAA+B;EvE00QvC;EuEx0QM;;IAEE,8BAAiC;EvE00QzC;EuEx0QM;;IAEE,+BAAkC;EvE00Q1C;EuEx0QM;;IAEE,6BAAgC;EvE00QxC;EuEz1QM;IAAwB,0BAA2B;EvE41QzD;EuE31QM;;IAEE,8BAA+B;EvE61QvC;EuE31QM;;IAEE,gCAAiC;EvE61QzC;EuE31QM;;IAEE,iCAAkC;EvE61Q1C;EuE31QM;;IAEE,+BAAgC;EvE61QxC;EuE52QM;IAAwB,wBAA2B;EvE+2QzD;EuE92QM;;IAEE,4BAA+B;EvEg3QvC;EuE92QM;;IAEE,8BAAiC;EvEg3QzC;EuE92QM;;IAEE,+BAAkC;EvEg3Q1C;EuE92QM;;IAEE,6BAAgC;EvEg3QxC;EuE12QE;IAAmB,uBAAuB;EvE62Q5C;EuE52QE;;IAEE,2BAA2B;EvE82Q/B;EuE52QE;;IAEE,6BAA6B;EvE82QjC;EuE52QE;;IAEE,8BAA8B;EvE82QlC;EuE52QE;;IAEE,4BAA4B;EvE82QhC;AACF;;Acx3QI;EyDlDI;IAAgC,oBAA4B;EvE+6QlE;EuE96QM;;IAEE,wBAAoC;EvEg7Q5C;EuE96QM;;IAEE,0BAAwC;EvEg7QhD;EuE96QM;;IAEE,2BAA0C;EvEg7QlD;EuE96QM;;IAEE,yBAAsC;EvEg7Q9C;EuE/7QM;IAAgC,0BAA4B;EvEk8QlE;EuEj8QM;;IAEE,8BAAoC;EvEm8Q5C;EuEj8QM;;IAEE,gCAAwC;EvEm8QhD;EuEj8QM;;IAEE,iCAA0C;EvEm8QlD;EuEj8QM;;IAEE,+BAAsC;EvEm8Q9C;EuEl9QM;IAAgC,yBAA4B;EvEq9QlE;EuEp9QM;;IAEE,6BAAoC;EvEs9Q5C;EuEp9QM;;IAEE,+BAAwC;EvEs9QhD;EuEp9QM;;IAEE,gCAA0C;EvEs9QlD;EuEp9QM;;IAEE,8BAAsC;EvEs9Q9C;EuEr+QM;IAAgC,uBAA4B;EvEw+QlE;EuEv+QM;;IAEE,2BAAoC;EvEy+Q5C;EuEv+QM;;IAEE,6BAAwC;EvEy+QhD;EuEv+QM;;IAEE,8BAA0C;EvEy+QlD;EuEv+QM;;IAEE,4BAAsC;EvEy+Q9C;EuEx/QM;IAAgC,yBAA4B;EvE2/QlE;EuE1/QM;;IAEE,6BAAoC;EvE4/Q5C;EuE1/QM;;IAEE,+BAAwC;EvE4/QhD;EuE1/QM;;IAEE,gCAA0C;EvE4/QlD;EuE1/QM;;IAEE,8BAAsC;EvE4/Q9C;EuE3gRM;IAAgC,uBAA4B;EvE8gRlE;EuE7gRM;;IAEE,2BAAoC;EvE+gR5C;EuE7gRM;;IAEE,6BAAwC;EvE+gRhD;EuE7gRM;;IAEE,8BAA0C;EvE+gRlD;EuE7gRM;;IAEE,4BAAsC;EvE+gR9C;EuE9hRM;IAAgC,qBAA4B;EvEiiRlE;EuEhiRM;;IAEE,yBAAoC;EvEkiR5C;EuEhiRM;;IAEE,2BAAwC;EvEkiRhD;EuEhiRM;;IAEE,4BAA0C;EvEkiRlD;EuEhiRM;;IAEE,0BAAsC;EvEkiR9C;EuEjjRM;IAAgC,2BAA4B;EvEojRlE;EuEnjRM;;IAEE,+BAAoC;EvEqjR5C;EuEnjRM;;IAEE,iCAAwC;EvEqjRhD;EuEnjRM;;IAEE,kCAA0C;EvEqjRlD;EuEnjRM;;IAEE,gCAAsC;EvEqjR9C;EuEpkRM;IAAgC,0BAA4B;EvEukRlE;EuEtkRM;;IAEE,8BAAoC;EvEwkR5C;EuEtkRM;;IAEE,gCAAwC;EvEwkRhD;EuEtkRM;;IAEE,iCAA0C;EvEwkRlD;EuEtkRM;;IAEE,+BAAsC;EvEwkR9C;EuEvlRM;IAAgC,wBAA4B;EvE0lRlE;EuEzlRM;;IAEE,4BAAoC;EvE2lR5C;EuEzlRM;;IAEE,8BAAwC;EvE2lRhD;EuEzlRM;;IAEE,+BAA0C;EvE2lRlD;EuEzlRM;;IAEE,6BAAsC;EvE2lR9C;EuE1mRM;IAAgC,0BAA4B;EvE6mRlE;EuE5mRM;;IAEE,8BAAoC;EvE8mR5C;EuE5mRM;;IAEE,gCAAwC;EvE8mRhD;EuE5mRM;;IAEE,iCAA0C;EvE8mRlD;EuE5mRM;;IAEE,+BAAsC;EvE8mR9C;EuE7nRM;IAAgC,wBAA4B;EvEgoRlE;EuE/nRM;;IAEE,4BAAoC;EvEioR5C;EuE/nRM;;IAEE,8BAAwC;EvEioRhD;EuE/nRM;;IAEE,+BAA0C;EvEioRlD;EuE/nRM;;IAEE,6BAAsC;EvEioR9C;EuEznRM;IAAwB,2BAA2B;EvE4nRzD;EuE3nRM;;IAEE,+BAA+B;EvE6nRvC;EuE3nRM;;IAEE,iCAAiC;EvE6nRzC;EuE3nRM;;IAEE,kCAAkC;EvE6nR1C;EuE3nRM;;IAEE,gCAAgC;EvE6nRxC;EuE5oRM;IAAwB,0BAA2B;EvE+oRzD;EuE9oRM;;IAEE,8BAA+B;EvEgpRvC;EuE9oRM;;IAEE,gCAAiC;EvEgpRzC;EuE9oRM;;IAEE,iCAAkC;EvEgpR1C;EuE9oRM;;IAEE,+BAAgC;EvEgpRxC;EuE/pRM;IAAwB,wBAA2B;EvEkqRzD;EuEjqRM;;IAEE,4BAA+B;EvEmqRvC;EuEjqRM;;IAEE,8BAAiC;EvEmqRzC;EuEjqRM;;IAEE,+BAAkC;EvEmqR1C;EuEjqRM;;IAEE,6BAAgC;EvEmqRxC;EuElrRM;IAAwB,0BAA2B;EvEqrRzD;EuEprRM;;IAEE,8BAA+B;EvEsrRvC;EuEprRM;;IAEE,gCAAiC;EvEsrRzC;EuEprRM;;IAEE,iCAAkC;EvEsrR1C;EuEprRM;;IAEE,+BAAgC;EvEsrRxC;EuErsRM;IAAwB,wBAA2B;EvEwsRzD;EuEvsRM;;IAEE,4BAA+B;EvEysRvC;EuEvsRM;;IAEE,8BAAiC;EvEysRzC;EuEvsRM;;IAEE,+BAAkC;EvEysR1C;EuEvsRM;;IAEE,6BAAgC;EvEysRxC;EuEnsRE;IAAmB,uBAAuB;EvEssR5C;EuErsRE;;IAEE,2BAA2B;EvEusR/B;EuErsRE;;IAEE,6BAA6B;EvEusRjC;EuErsRE;;IAEE,8BAA8B;EvEusRlC;EuErsRE;;IAEE,4BAA4B;EvEusRhC;AACF;;AcjtRI;EyDlDI;IAAgC,oBAA4B;EvEwwRlE;EuEvwRM;;IAEE,wBAAoC;EvEywR5C;EuEvwRM;;IAEE,0BAAwC;EvEywRhD;EuEvwRM;;IAEE,2BAA0C;EvEywRlD;EuEvwRM;;IAEE,yBAAsC;EvEywR9C;EuExxRM;IAAgC,0BAA4B;EvE2xRlE;EuE1xRM;;IAEE,8BAAoC;EvE4xR5C;EuE1xRM;;IAEE,gCAAwC;EvE4xRhD;EuE1xRM;;IAEE,iCAA0C;EvE4xRlD;EuE1xRM;;IAEE,+BAAsC;EvE4xR9C;EuE3yRM;IAAgC,yBAA4B;EvE8yRlE;EuE7yRM;;IAEE,6BAAoC;EvE+yR5C;EuE7yRM;;IAEE,+BAAwC;EvE+yRhD;EuE7yRM;;IAEE,gCAA0C;EvE+yRlD;EuE7yRM;;IAEE,8BAAsC;EvE+yR9C;EuE9zRM;IAAgC,uBAA4B;EvEi0RlE;EuEh0RM;;IAEE,2BAAoC;EvEk0R5C;EuEh0RM;;IAEE,6BAAwC;EvEk0RhD;EuEh0RM;;IAEE,8BAA0C;EvEk0RlD;EuEh0RM;;IAEE,4BAAsC;EvEk0R9C;EuEj1RM;IAAgC,yBAA4B;EvEo1RlE;EuEn1RM;;IAEE,6BAAoC;EvEq1R5C;EuEn1RM;;IAEE,+BAAwC;EvEq1RhD;EuEn1RM;;IAEE,gCAA0C;EvEq1RlD;EuEn1RM;;IAEE,8BAAsC;EvEq1R9C;EuEp2RM;IAAgC,uBAA4B;EvEu2RlE;EuEt2RM;;IAEE,2BAAoC;EvEw2R5C;EuEt2RM;;IAEE,6BAAwC;EvEw2RhD;EuEt2RM;;IAEE,8BAA0C;EvEw2RlD;EuEt2RM;;IAEE,4BAAsC;EvEw2R9C;EuEv3RM;IAAgC,qBAA4B;EvE03RlE;EuEz3RM;;IAEE,yBAAoC;EvE23R5C;EuEz3RM;;IAEE,2BAAwC;EvE23RhD;EuEz3RM;;IAEE,4BAA0C;EvE23RlD;EuEz3RM;;IAEE,0BAAsC;EvE23R9C;EuE14RM;IAAgC,2BAA4B;EvE64RlE;EuE54RM;;IAEE,+BAAoC;EvE84R5C;EuE54RM;;IAEE,iCAAwC;EvE84RhD;EuE54RM;;IAEE,kCAA0C;EvE84RlD;EuE54RM;;IAEE,gCAAsC;EvE84R9C;EuE75RM;IAAgC,0BAA4B;EvEg6RlE;EuE/5RM;;IAEE,8BAAoC;EvEi6R5C;EuE/5RM;;IAEE,gCAAwC;EvEi6RhD;EuE/5RM;;IAEE,iCAA0C;EvEi6RlD;EuE/5RM;;IAEE,+BAAsC;EvEi6R9C;EuEh7RM;IAAgC,wBAA4B;EvEm7RlE;EuEl7RM;;IAEE,4BAAoC;EvEo7R5C;EuEl7RM;;IAEE,8BAAwC;EvEo7RhD;EuEl7RM;;IAEE,+BAA0C;EvEo7RlD;EuEl7RM;;IAEE,6BAAsC;EvEo7R9C;EuEn8RM;IAAgC,0BAA4B;EvEs8RlE;EuEr8RM;;IAEE,8BAAoC;EvEu8R5C;EuEr8RM;;IAEE,gCAAwC;EvEu8RhD;EuEr8RM;;IAEE,iCAA0C;EvEu8RlD;EuEr8RM;;IAEE,+BAAsC;EvEu8R9C;EuEt9RM;IAAgC,wBAA4B;EvEy9RlE;EuEx9RM;;IAEE,4BAAoC;EvE09R5C;EuEx9RM;;IAEE,8BAAwC;EvE09RhD;EuEx9RM;;IAEE,+BAA0C;EvE09RlD;EuEx9RM;;IAEE,6BAAsC;EvE09R9C;EuEl9RM;IAAwB,2BAA2B;EvEq9RzD;EuEp9RM;;IAEE,+BAA+B;EvEs9RvC;EuEp9RM;;IAEE,iCAAiC;EvEs9RzC;EuEp9RM;;IAEE,kCAAkC;EvEs9R1C;EuEp9RM;;IAEE,gCAAgC;EvEs9RxC;EuEr+RM;IAAwB,0BAA2B;EvEw+RzD;EuEv+RM;;IAEE,8BAA+B;EvEy+RvC;EuEv+RM;;IAEE,gCAAiC;EvEy+RzC;EuEv+RM;;IAEE,iCAAkC;EvEy+R1C;EuEv+RM;;IAEE,+BAAgC;EvEy+RxC;EuEx/RM;IAAwB,wBAA2B;EvE2/RzD;EuE1/RM;;IAEE,4BAA+B;EvE4/RvC;EuE1/RM;;IAEE,8BAAiC;EvE4/RzC;EuE1/RM;;IAEE,+BAAkC;EvE4/R1C;EuE1/RM;;IAEE,6BAAgC;EvE4/RxC;EuE3gSM;IAAwB,0BAA2B;EvE8gSzD;EuE7gSM;;IAEE,8BAA+B;EvE+gSvC;EuE7gSM;;IAEE,gCAAiC;EvE+gSzC;EuE7gSM;;IAEE,iCAAkC;EvE+gS1C;EuE7gSM;;IAEE,+BAAgC;EvE+gSxC;EuE9hSM;IAAwB,wBAA2B;EvEiiSzD;EuEhiSM;;IAEE,4BAA+B;EvEkiSvC;EuEhiSM;;IAEE,8BAAiC;EvEkiSzC;EuEhiSM;;IAEE,+BAAkC;EvEkiS1C;EuEhiSM;;IAEE,6BAAgC;EvEkiSxC;EuE5hSE;IAAmB,uBAAuB;EvE+hS5C;EuE9hSE;;IAEE,2BAA2B;EvEgiS/B;EuE9hSE;;IAEE,6BAA6B;EvEgiSjC;EuE9hSE;;IAEE,8BAA8B;EvEgiSlC;EuE9hSE;;IAEE,4BAA4B;EvEgiShC;AACF;;AwEhmSA;EAAkB,4GAA8C;AxEomShE;;AwEhmSA;EAAiB,8BAA8B;AxEomS/C;;AwEnmSA;EAAiB,8BAA8B;AxEumS/C;;AwEtmSA;EAAiB,8BAA8B;AxE0mS/C;;AwEzmSA;ECTE,gBAAgB;EAChB,uBAAuB;EACvB,mBAAmB;AzEsnSrB;;AwEvmSI;EAAwB,2BAA2B;AxE2mSvD;;AwE1mSI;EAAwB,4BAA4B;AxE8mSxD;;AwE7mSI;EAAwB,6BAA6B;AxEinSzD;;Ac5kSI;E0DvCA;IAAwB,2BAA2B;ExEwnSrD;EwEvnSE;IAAwB,4BAA4B;ExE0nStD;EwEznSE;IAAwB,6BAA6B;ExE4nSvD;AACF;;AcxlSI;E0DvCA;IAAwB,2BAA2B;ExEooSrD;EwEnoSE;IAAwB,4BAA4B;ExEsoStD;EwEroSE;IAAwB,6BAA6B;ExEwoSvD;AACF;;AcpmSI;E0DvCA;IAAwB,2BAA2B;ExEgpSrD;EwE/oSE;IAAwB,4BAA4B;ExEkpStD;EwEjpSE;IAAwB,6BAA6B;ExEopSvD;AACF;;AchnSI;E0DvCA;IAAwB,2BAA2B;ExE4pSrD;EwE3pSE;IAAwB,4BAA4B;ExE8pStD;EwE7pSE;IAAwB,6BAA6B;ExEgqSvD;AACF;;AwE3pSA;EAAmB,oCAAoC;AxE+pSvD;;AwE9pSA;EAAmB,oCAAoC;AxEkqSvD;;AwEjqSA;EAAmB,qCAAqC;AxEqqSxD;;AwEjqSA;EAAuB,2BAA0C;AxEqqSjE;;AwEpqSA;EAAuB,+BAA4C;AxEwqSnE;;AwEvqSA;EAAuB,2BAA2C;AxE2qSlE;;AwE1qSA;EAAuB,2BAAyC;AxE8qShE;;AwE7qSA;EAAuB,8BAA2C;AxEirSlE;;AwEhrSA;EAAuB,6BAA6B;AxEorSpD;;AwEhrSA;EAAc,sBAAwB;AxEorStC;;A0E3tSE;EACE,yBAAwB;A1E8tS5B;;AKptSE;EqELM,yBAA0E;A1E6tSlF;;A0EnuSE;EACE,yBAAwB;A1EsuS5B;;AK5tSE;EqELM,yBAA0E;A1EquSlF;;A0E3uSE;EACE,yBAAwB;A1E8uS5B;;AKpuSE;EqELM,yBAA0E;A1E6uSlF;;A0EnvSE;EACE,yBAAwB;A1EsvS5B;;AK5uSE;EqELM,yBAA0E;A1EqvSlF;;A0E3vSE;EACE,yBAAwB;A1E8vS5B;;AKpvSE;EqELM,yBAA0E;A1E6vSlF;;A0EnwSE;EACE,yBAAwB;A1EswS5B;;AK5vSE;EqELM,yBAA0E;A1EqwSlF;;A0E3wSE;EACE,yBAAwB;A1E8wS5B;;AKpwSE;EqELM,yBAA0E;A1E6wSlF;;A0EnxSE;EACE,yBAAwB;A1EsxS5B;;AK5wSE;EqELM,yBAA0E;A1EqxSlF;;AwE9uSA;EAAa,yBAA6B;AxEkvS1C;;AwEjvSA;EAAc,yBAA6B;AxEqvS3C;;AwEnvSA;EAAiB,oCAAkC;AxEuvSnD;;AwEtvSA;EAAiB,0CAAkC;AxE0vSnD;;AwEtvSA;EGvDE,WAAW;EACX,kBAAkB;EAClB,iBAAiB;EACjB,6BAA6B;EAC7B,SAAS;A3EizSX;;AwE1vSA;EAAwB,gCAAgC;AxE8vSxD;;AwE5vSA;EACE,iCAAiC;EACjC,oCAAoC;AxE+vStC;;AwE1vSA;EAAc,yBAAyB;AxE8vSvC;;A4E/zSA;EACE,8BAA8B;A5Ek0ShC;;A4E/zSA;EACE,6BAA6B;A5Ek0S/B;;A6El0SE;E3EOF;;;I2EDM,4BAA4B;IAE5B,2BAA2B;E7Ek0S/B;E6E/zSE;IAEI,0BAA0B;E7Eg0ShC;E6EvzSE;IACE,6BAA6B;E7EyzSjC;EE3nSF;I2E/KM,gCAAgC;E7E6ySpC;E6E3ySE;;IAEE,yB1EzCY;I0E0CZ,wBAAwB;E7E6yS5B;E6ErySE;IACE,2BAA2B;E7EuyS/B;E6EpySE;;IAEE,wBAAwB;E7EsyS5B;E6EnySE;;;IAGE,UAAU;IACV,SAAS;E7EqySb;E6ElySE;;IAEE,uBAAuB;E7EoyS3B;E6E5xSE;IACE,Q1E4hCgC;EHkwQpC;EE10SF;I2E+CM,2BAA2C;E7E8xS/C;EYp3SA;IiEyFI,2BAA2C;E7E8xS/C;EiC52SF;I4CmFM,aAAa;E7E4xSjB;EsC33SF;IuCkGM,sB1EtFS;EHk3Sb;EgB/3SF;I6DuGM,oCAAoC;E7E2xSxC;E6E5xSE;;IAKI,iCAAmC;E7E2xSzC;EgB91SF;;I6D0EQ,oCAAsC;E7EwxS5C;EgB7wSF;I6DNM,cAAc;E7EsxSlB;EiB54SA;;;;I4D4HM,qB1EvHU;EH64ShB;EgBxySF;I6DuBM,cAAc;IACd,qB1E7HY;EHi5ShB;AACF","file":"bootstrap.css","sourcesContent":["/*!\n * Bootstrap v4.4.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 The Bootstrap Authors\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n\n@import \"functions\";\n@import \"variables\";\n@import \"mixins\";\n@import \"root\";\n@import \"reboot\";\n@import \"type\";\n@import \"images\";\n@import \"code\";\n@import \"grid\";\n@import \"tables\";\n@import \"forms\";\n@import \"buttons\";\n@import \"transitions\";\n@import \"dropdown\";\n@import \"button-group\";\n@import \"input-group\";\n@import \"custom-forms\";\n@import \"nav\";\n@import \"navbar\";\n@import \"card\";\n@import \"breadcrumb\";\n@import \"pagination\";\n@import \"badge\";\n@import \"jumbotron\";\n@import \"alert\";\n@import \"progress\";\n@import \"media\";\n@import \"list-group\";\n@import \"close\";\n@import \"toasts\";\n@import \"modal\";\n@import \"tooltip\";\n@import \"popover\";\n@import \"carousel\";\n@import \"spinners\";\n@import \"utilities\";\n@import \"print\";\n","/*!\n * Bootstrap v4.4.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 The Bootstrap Authors\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n:root {\n --blue: #007bff;\n --indigo: #6610f2;\n --purple: #6f42c1;\n --pink: #e83e8c;\n --red: #dc3545;\n --orange: #fd7e14;\n --yellow: #ffc107;\n --green: #28a745;\n --teal: #20c997;\n --cyan: #17a2b8;\n --white: #fff;\n --gray: #6c757d;\n --gray-dark: #343a40;\n --primary: #007bff;\n --secondary: #6c757d;\n --success: #28a745;\n --info: #17a2b8;\n --warning: #ffc107;\n --danger: #dc3545;\n --light: #f8f9fa;\n --dark: #343a40;\n --breakpoint-xs: 0;\n --breakpoint-sm: 576px;\n --breakpoint-md: 768px;\n --breakpoint-lg: 992px;\n --breakpoint-xl: 1200px;\n --font-family-sans-serif: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n --font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n}\n\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\nhtml {\n font-family: sans-serif;\n line-height: 1.15;\n -webkit-text-size-adjust: 100%;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n\narticle, aside, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block;\n}\n\nbody {\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #212529;\n text-align: left;\n background-color: #fff;\n}\n\n[tabindex=\"-1\"]:focus:not(:focus-visible) {\n outline: 0 !important;\n}\n\nhr {\n box-sizing: content-box;\n height: 0;\n overflow: visible;\n}\n\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: 0.5rem;\n}\n\np {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nabbr[title],\nabbr[data-original-title] {\n text-decoration: underline;\n text-decoration: underline dotted;\n cursor: help;\n border-bottom: 0;\n text-decoration-skip-ink: none;\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: 700;\n}\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0;\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\nb,\nstrong {\n font-weight: bolder;\n}\n\nsmall {\n font-size: 80%;\n}\n\nsub,\nsup {\n position: relative;\n font-size: 75%;\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -.25em;\n}\n\nsup {\n top: -.5em;\n}\n\na {\n color: #007bff;\n text-decoration: none;\n background-color: transparent;\n}\n\na:hover {\n color: #0056b3;\n text-decoration: underline;\n}\n\na:not([href]) {\n color: inherit;\n text-decoration: none;\n}\n\na:not([href]):hover {\n color: inherit;\n text-decoration: none;\n}\n\npre,\ncode,\nkbd,\nsamp {\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n font-size: 1em;\n}\n\npre {\n margin-top: 0;\n margin-bottom: 1rem;\n overflow: auto;\n}\n\nfigure {\n margin: 0 0 1rem;\n}\n\nimg {\n vertical-align: middle;\n border-style: none;\n}\n\nsvg {\n overflow: hidden;\n vertical-align: middle;\n}\n\ntable {\n border-collapse: collapse;\n}\n\ncaption {\n padding-top: 0.75rem;\n padding-bottom: 0.75rem;\n color: #6c757d;\n text-align: left;\n caption-side: bottom;\n}\n\nth {\n text-align: inherit;\n}\n\nlabel {\n display: inline-block;\n margin-bottom: 0.5rem;\n}\n\nbutton {\n border-radius: 0;\n}\n\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible;\n}\n\nbutton,\nselect {\n text-transform: none;\n}\n\nselect {\n word-wrap: normal;\n}\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\nbutton:not(:disabled),\n[type=\"button\"]:not(:disabled),\n[type=\"reset\"]:not(:disabled),\n[type=\"submit\"]:not(:disabled) {\n cursor: pointer;\n}\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n box-sizing: border-box;\n padding: 0;\n}\n\ninput[type=\"date\"],\ninput[type=\"time\"],\ninput[type=\"datetime-local\"],\ninput[type=\"month\"] {\n -webkit-appearance: listbox;\n}\n\ntextarea {\n overflow: auto;\n resize: vertical;\n}\n\nfieldset {\n min-width: 0;\n padding: 0;\n margin: 0;\n border: 0;\n}\n\nlegend {\n display: block;\n width: 100%;\n max-width: 100%;\n padding: 0;\n margin-bottom: .5rem;\n font-size: 1.5rem;\n line-height: inherit;\n color: inherit;\n white-space: normal;\n}\n\nprogress {\n vertical-align: baseline;\n}\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type=\"search\"] {\n outline-offset: -2px;\n -webkit-appearance: none;\n}\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n::-webkit-file-upload-button {\n font: inherit;\n -webkit-appearance: button;\n}\n\noutput {\n display: inline-block;\n}\n\nsummary {\n display: list-item;\n cursor: pointer;\n}\n\ntemplate {\n display: none;\n}\n\n[hidden] {\n display: none !important;\n}\n\nh1, h2, h3, h4, h5, h6,\n.h1, .h2, .h3, .h4, .h5, .h6 {\n margin-bottom: 0.5rem;\n font-weight: 500;\n line-height: 1.2;\n}\n\nh1, .h1 {\n font-size: 2.5rem;\n}\n\nh2, .h2 {\n font-size: 2rem;\n}\n\nh3, .h3 {\n font-size: 1.75rem;\n}\n\nh4, .h4 {\n font-size: 1.5rem;\n}\n\nh5, .h5 {\n font-size: 1.25rem;\n}\n\nh6, .h6 {\n font-size: 1rem;\n}\n\n.lead {\n font-size: 1.25rem;\n font-weight: 300;\n}\n\n.display-1 {\n font-size: 6rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\n.display-2 {\n font-size: 5.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\n.display-3 {\n font-size: 4.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\n.display-4 {\n font-size: 3.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\nhr {\n margin-top: 1rem;\n margin-bottom: 1rem;\n border: 0;\n border-top: 1px solid rgba(0, 0, 0, 0.1);\n}\n\nsmall,\n.small {\n font-size: 80%;\n font-weight: 400;\n}\n\nmark,\n.mark {\n padding: 0.2em;\n background-color: #fcf8e3;\n}\n\n.list-unstyled {\n padding-left: 0;\n list-style: none;\n}\n\n.list-inline {\n padding-left: 0;\n list-style: none;\n}\n\n.list-inline-item {\n display: inline-block;\n}\n\n.list-inline-item:not(:last-child) {\n margin-right: 0.5rem;\n}\n\n.initialism {\n font-size: 90%;\n text-transform: uppercase;\n}\n\n.blockquote {\n margin-bottom: 1rem;\n font-size: 1.25rem;\n}\n\n.blockquote-footer {\n display: block;\n font-size: 80%;\n color: #6c757d;\n}\n\n.blockquote-footer::before {\n content: \"\\2014\\00A0\";\n}\n\n.img-fluid {\n max-width: 100%;\n height: auto;\n}\n\n.img-thumbnail {\n padding: 0.25rem;\n background-color: #fff;\n border: 1px solid #dee2e6;\n border-radius: 0.25rem;\n max-width: 100%;\n height: auto;\n}\n\n.figure {\n display: inline-block;\n}\n\n.figure-img {\n margin-bottom: 0.5rem;\n line-height: 1;\n}\n\n.figure-caption {\n font-size: 90%;\n color: #6c757d;\n}\n\ncode {\n font-size: 87.5%;\n color: #e83e8c;\n word-wrap: break-word;\n}\n\na > code {\n color: inherit;\n}\n\nkbd {\n padding: 0.2rem 0.4rem;\n font-size: 87.5%;\n color: #fff;\n background-color: #212529;\n border-radius: 0.2rem;\n}\n\nkbd kbd {\n padding: 0;\n font-size: 100%;\n font-weight: 700;\n}\n\npre {\n display: block;\n font-size: 87.5%;\n color: #212529;\n}\n\npre code {\n font-size: inherit;\n color: inherit;\n word-break: normal;\n}\n\n.pre-scrollable {\n max-height: 340px;\n overflow-y: scroll;\n}\n\n.container {\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n\n@media (min-width: 576px) {\n .container {\n max-width: 540px;\n }\n}\n\n@media (min-width: 768px) {\n .container {\n max-width: 720px;\n }\n}\n\n@media (min-width: 992px) {\n .container {\n max-width: 960px;\n }\n}\n\n@media (min-width: 1200px) {\n .container {\n max-width: 1140px;\n }\n}\n\n.container-fluid, .container-sm, .container-md, .container-lg, .container-xl {\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n\n@media (min-width: 576px) {\n .container, .container-sm {\n max-width: 540px;\n }\n}\n\n@media (min-width: 768px) {\n .container, .container-sm, .container-md {\n max-width: 720px;\n }\n}\n\n@media (min-width: 992px) {\n .container, .container-sm, .container-md, .container-lg {\n max-width: 960px;\n }\n}\n\n@media (min-width: 1200px) {\n .container, .container-sm, .container-md, .container-lg, .container-xl {\n max-width: 1140px;\n }\n}\n\n.row {\n display: flex;\n flex-wrap: wrap;\n margin-right: -15px;\n margin-left: -15px;\n}\n\n.no-gutters {\n margin-right: 0;\n margin-left: 0;\n}\n\n.no-gutters > .col,\n.no-gutters > [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n}\n\n.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col,\n.col-auto, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm,\n.col-sm-auto, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md,\n.col-md-auto, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg,\n.col-lg-auto, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl,\n.col-xl-auto {\n position: relative;\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n}\n\n.col {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n}\n\n.row-cols-1 > * {\n flex: 0 0 100%;\n max-width: 100%;\n}\n\n.row-cols-2 > * {\n flex: 0 0 50%;\n max-width: 50%;\n}\n\n.row-cols-3 > * {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n}\n\n.row-cols-4 > * {\n flex: 0 0 25%;\n max-width: 25%;\n}\n\n.row-cols-5 > * {\n flex: 0 0 20%;\n max-width: 20%;\n}\n\n.row-cols-6 > * {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n}\n\n.col-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n}\n\n.col-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n}\n\n.col-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n}\n\n.col-3 {\n flex: 0 0 25%;\n max-width: 25%;\n}\n\n.col-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n}\n\n.col-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n}\n\n.col-6 {\n flex: 0 0 50%;\n max-width: 50%;\n}\n\n.col-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n}\n\n.col-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n}\n\n.col-9 {\n flex: 0 0 75%;\n max-width: 75%;\n}\n\n.col-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n}\n\n.col-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n}\n\n.col-12 {\n flex: 0 0 100%;\n max-width: 100%;\n}\n\n.order-first {\n order: -1;\n}\n\n.order-last {\n order: 13;\n}\n\n.order-0 {\n order: 0;\n}\n\n.order-1 {\n order: 1;\n}\n\n.order-2 {\n order: 2;\n}\n\n.order-3 {\n order: 3;\n}\n\n.order-4 {\n order: 4;\n}\n\n.order-5 {\n order: 5;\n}\n\n.order-6 {\n order: 6;\n}\n\n.order-7 {\n order: 7;\n}\n\n.order-8 {\n order: 8;\n}\n\n.order-9 {\n order: 9;\n}\n\n.order-10 {\n order: 10;\n}\n\n.order-11 {\n order: 11;\n}\n\n.order-12 {\n order: 12;\n}\n\n.offset-1 {\n margin-left: 8.333333%;\n}\n\n.offset-2 {\n margin-left: 16.666667%;\n}\n\n.offset-3 {\n margin-left: 25%;\n}\n\n.offset-4 {\n margin-left: 33.333333%;\n}\n\n.offset-5 {\n margin-left: 41.666667%;\n}\n\n.offset-6 {\n margin-left: 50%;\n}\n\n.offset-7 {\n margin-left: 58.333333%;\n}\n\n.offset-8 {\n margin-left: 66.666667%;\n}\n\n.offset-9 {\n margin-left: 75%;\n}\n\n.offset-10 {\n margin-left: 83.333333%;\n}\n\n.offset-11 {\n margin-left: 91.666667%;\n}\n\n@media (min-width: 576px) {\n .col-sm {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-sm-1 > * {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-sm-2 > * {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-sm-3 > * {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-sm-4 > * {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-sm-5 > * {\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-sm-6 > * {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-sm-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-sm-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-sm-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-sm-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-sm-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-sm-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-sm-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-sm-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-sm-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-sm-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-sm-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-sm-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-sm-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-sm-first {\n order: -1;\n }\n .order-sm-last {\n order: 13;\n }\n .order-sm-0 {\n order: 0;\n }\n .order-sm-1 {\n order: 1;\n }\n .order-sm-2 {\n order: 2;\n }\n .order-sm-3 {\n order: 3;\n }\n .order-sm-4 {\n order: 4;\n }\n .order-sm-5 {\n order: 5;\n }\n .order-sm-6 {\n order: 6;\n }\n .order-sm-7 {\n order: 7;\n }\n .order-sm-8 {\n order: 8;\n }\n .order-sm-9 {\n order: 9;\n }\n .order-sm-10 {\n order: 10;\n }\n .order-sm-11 {\n order: 11;\n }\n .order-sm-12 {\n order: 12;\n }\n .offset-sm-0 {\n margin-left: 0;\n }\n .offset-sm-1 {\n margin-left: 8.333333%;\n }\n .offset-sm-2 {\n margin-left: 16.666667%;\n }\n .offset-sm-3 {\n margin-left: 25%;\n }\n .offset-sm-4 {\n margin-left: 33.333333%;\n }\n .offset-sm-5 {\n margin-left: 41.666667%;\n }\n .offset-sm-6 {\n margin-left: 50%;\n }\n .offset-sm-7 {\n margin-left: 58.333333%;\n }\n .offset-sm-8 {\n margin-left: 66.666667%;\n }\n .offset-sm-9 {\n margin-left: 75%;\n }\n .offset-sm-10 {\n margin-left: 83.333333%;\n }\n .offset-sm-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 768px) {\n .col-md {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-md-1 > * {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-md-2 > * {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-md-3 > * {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-md-4 > * {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-md-5 > * {\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-md-6 > * {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-md-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-md-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-md-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-md-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-md-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-md-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-md-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-md-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-md-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-md-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-md-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-md-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-md-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-md-first {\n order: -1;\n }\n .order-md-last {\n order: 13;\n }\n .order-md-0 {\n order: 0;\n }\n .order-md-1 {\n order: 1;\n }\n .order-md-2 {\n order: 2;\n }\n .order-md-3 {\n order: 3;\n }\n .order-md-4 {\n order: 4;\n }\n .order-md-5 {\n order: 5;\n }\n .order-md-6 {\n order: 6;\n }\n .order-md-7 {\n order: 7;\n }\n .order-md-8 {\n order: 8;\n }\n .order-md-9 {\n order: 9;\n }\n .order-md-10 {\n order: 10;\n }\n .order-md-11 {\n order: 11;\n }\n .order-md-12 {\n order: 12;\n }\n .offset-md-0 {\n margin-left: 0;\n }\n .offset-md-1 {\n margin-left: 8.333333%;\n }\n .offset-md-2 {\n margin-left: 16.666667%;\n }\n .offset-md-3 {\n margin-left: 25%;\n }\n .offset-md-4 {\n margin-left: 33.333333%;\n }\n .offset-md-5 {\n margin-left: 41.666667%;\n }\n .offset-md-6 {\n margin-left: 50%;\n }\n .offset-md-7 {\n margin-left: 58.333333%;\n }\n .offset-md-8 {\n margin-left: 66.666667%;\n }\n .offset-md-9 {\n margin-left: 75%;\n }\n .offset-md-10 {\n margin-left: 83.333333%;\n }\n .offset-md-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 992px) {\n .col-lg {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-lg-1 > * {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-lg-2 > * {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-lg-3 > * {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-lg-4 > * {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-lg-5 > * {\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-lg-6 > * {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-lg-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-lg-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-lg-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-lg-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-lg-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-lg-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-lg-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-lg-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-lg-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-lg-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-lg-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-lg-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-lg-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-lg-first {\n order: -1;\n }\n .order-lg-last {\n order: 13;\n }\n .order-lg-0 {\n order: 0;\n }\n .order-lg-1 {\n order: 1;\n }\n .order-lg-2 {\n order: 2;\n }\n .order-lg-3 {\n order: 3;\n }\n .order-lg-4 {\n order: 4;\n }\n .order-lg-5 {\n order: 5;\n }\n .order-lg-6 {\n order: 6;\n }\n .order-lg-7 {\n order: 7;\n }\n .order-lg-8 {\n order: 8;\n }\n .order-lg-9 {\n order: 9;\n }\n .order-lg-10 {\n order: 10;\n }\n .order-lg-11 {\n order: 11;\n }\n .order-lg-12 {\n order: 12;\n }\n .offset-lg-0 {\n margin-left: 0;\n }\n .offset-lg-1 {\n margin-left: 8.333333%;\n }\n .offset-lg-2 {\n margin-left: 16.666667%;\n }\n .offset-lg-3 {\n margin-left: 25%;\n }\n .offset-lg-4 {\n margin-left: 33.333333%;\n }\n .offset-lg-5 {\n margin-left: 41.666667%;\n }\n .offset-lg-6 {\n margin-left: 50%;\n }\n .offset-lg-7 {\n margin-left: 58.333333%;\n }\n .offset-lg-8 {\n margin-left: 66.666667%;\n }\n .offset-lg-9 {\n margin-left: 75%;\n }\n .offset-lg-10 {\n margin-left: 83.333333%;\n }\n .offset-lg-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 1200px) {\n .col-xl {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-xl-1 > * {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-xl-2 > * {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-xl-3 > * {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-xl-4 > * {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-xl-5 > * {\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-xl-6 > * {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-xl-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-xl-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-xl-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-xl-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-xl-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-xl-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-xl-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-xl-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-xl-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-xl-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-xl-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-xl-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-xl-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-xl-first {\n order: -1;\n }\n .order-xl-last {\n order: 13;\n }\n .order-xl-0 {\n order: 0;\n }\n .order-xl-1 {\n order: 1;\n }\n .order-xl-2 {\n order: 2;\n }\n .order-xl-3 {\n order: 3;\n }\n .order-xl-4 {\n order: 4;\n }\n .order-xl-5 {\n order: 5;\n }\n .order-xl-6 {\n order: 6;\n }\n .order-xl-7 {\n order: 7;\n }\n .order-xl-8 {\n order: 8;\n }\n .order-xl-9 {\n order: 9;\n }\n .order-xl-10 {\n order: 10;\n }\n .order-xl-11 {\n order: 11;\n }\n .order-xl-12 {\n order: 12;\n }\n .offset-xl-0 {\n margin-left: 0;\n }\n .offset-xl-1 {\n margin-left: 8.333333%;\n }\n .offset-xl-2 {\n margin-left: 16.666667%;\n }\n .offset-xl-3 {\n margin-left: 25%;\n }\n .offset-xl-4 {\n margin-left: 33.333333%;\n }\n .offset-xl-5 {\n margin-left: 41.666667%;\n }\n .offset-xl-6 {\n margin-left: 50%;\n }\n .offset-xl-7 {\n margin-left: 58.333333%;\n }\n .offset-xl-8 {\n margin-left: 66.666667%;\n }\n .offset-xl-9 {\n margin-left: 75%;\n }\n .offset-xl-10 {\n margin-left: 83.333333%;\n }\n .offset-xl-11 {\n margin-left: 91.666667%;\n }\n}\n\n.table {\n width: 100%;\n margin-bottom: 1rem;\n color: #212529;\n}\n\n.table th,\n.table td {\n padding: 0.75rem;\n vertical-align: top;\n border-top: 1px solid #dee2e6;\n}\n\n.table thead th {\n vertical-align: bottom;\n border-bottom: 2px solid #dee2e6;\n}\n\n.table tbody + tbody {\n border-top: 2px solid #dee2e6;\n}\n\n.table-sm th,\n.table-sm td {\n padding: 0.3rem;\n}\n\n.table-bordered {\n border: 1px solid #dee2e6;\n}\n\n.table-bordered th,\n.table-bordered td {\n border: 1px solid #dee2e6;\n}\n\n.table-bordered thead th,\n.table-bordered thead td {\n border-bottom-width: 2px;\n}\n\n.table-borderless th,\n.table-borderless td,\n.table-borderless thead th,\n.table-borderless tbody + tbody {\n border: 0;\n}\n\n.table-striped tbody tr:nth-of-type(odd) {\n background-color: rgba(0, 0, 0, 0.05);\n}\n\n.table-hover tbody tr:hover {\n color: #212529;\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-primary,\n.table-primary > th,\n.table-primary > td {\n background-color: #b8daff;\n}\n\n.table-primary th,\n.table-primary td,\n.table-primary thead th,\n.table-primary tbody + tbody {\n border-color: #7abaff;\n}\n\n.table-hover .table-primary:hover {\n background-color: #9fcdff;\n}\n\n.table-hover .table-primary:hover > td,\n.table-hover .table-primary:hover > th {\n background-color: #9fcdff;\n}\n\n.table-secondary,\n.table-secondary > th,\n.table-secondary > td {\n background-color: #d6d8db;\n}\n\n.table-secondary th,\n.table-secondary td,\n.table-secondary thead th,\n.table-secondary tbody + tbody {\n border-color: #b3b7bb;\n}\n\n.table-hover .table-secondary:hover {\n background-color: #c8cbcf;\n}\n\n.table-hover .table-secondary:hover > td,\n.table-hover .table-secondary:hover > th {\n background-color: #c8cbcf;\n}\n\n.table-success,\n.table-success > th,\n.table-success > td {\n background-color: #c3e6cb;\n}\n\n.table-success th,\n.table-success td,\n.table-success thead th,\n.table-success tbody + tbody {\n border-color: #8fd19e;\n}\n\n.table-hover .table-success:hover {\n background-color: #b1dfbb;\n}\n\n.table-hover .table-success:hover > td,\n.table-hover .table-success:hover > th {\n background-color: #b1dfbb;\n}\n\n.table-info,\n.table-info > th,\n.table-info > td {\n background-color: #bee5eb;\n}\n\n.table-info th,\n.table-info td,\n.table-info thead th,\n.table-info tbody + tbody {\n border-color: #86cfda;\n}\n\n.table-hover .table-info:hover {\n background-color: #abdde5;\n}\n\n.table-hover .table-info:hover > td,\n.table-hover .table-info:hover > th {\n background-color: #abdde5;\n}\n\n.table-warning,\n.table-warning > th,\n.table-warning > td {\n background-color: #ffeeba;\n}\n\n.table-warning th,\n.table-warning td,\n.table-warning thead th,\n.table-warning tbody + tbody {\n border-color: #ffdf7e;\n}\n\n.table-hover .table-warning:hover {\n background-color: #ffe8a1;\n}\n\n.table-hover .table-warning:hover > td,\n.table-hover .table-warning:hover > th {\n background-color: #ffe8a1;\n}\n\n.table-danger,\n.table-danger > th,\n.table-danger > td {\n background-color: #f5c6cb;\n}\n\n.table-danger th,\n.table-danger td,\n.table-danger thead th,\n.table-danger tbody + tbody {\n border-color: #ed969e;\n}\n\n.table-hover .table-danger:hover {\n background-color: #f1b0b7;\n}\n\n.table-hover .table-danger:hover > td,\n.table-hover .table-danger:hover > th {\n background-color: #f1b0b7;\n}\n\n.table-light,\n.table-light > th,\n.table-light > td {\n background-color: #fdfdfe;\n}\n\n.table-light th,\n.table-light td,\n.table-light thead th,\n.table-light tbody + tbody {\n border-color: #fbfcfc;\n}\n\n.table-hover .table-light:hover {\n background-color: #ececf6;\n}\n\n.table-hover .table-light:hover > td,\n.table-hover .table-light:hover > th {\n background-color: #ececf6;\n}\n\n.table-dark,\n.table-dark > th,\n.table-dark > td {\n background-color: #c6c8ca;\n}\n\n.table-dark th,\n.table-dark td,\n.table-dark thead th,\n.table-dark tbody + tbody {\n border-color: #95999c;\n}\n\n.table-hover .table-dark:hover {\n background-color: #b9bbbe;\n}\n\n.table-hover .table-dark:hover > td,\n.table-hover .table-dark:hover > th {\n background-color: #b9bbbe;\n}\n\n.table-active,\n.table-active > th,\n.table-active > td {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-hover .table-active:hover {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-hover .table-active:hover > td,\n.table-hover .table-active:hover > th {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table .thead-dark th {\n color: #fff;\n background-color: #343a40;\n border-color: #454d55;\n}\n\n.table .thead-light th {\n color: #495057;\n background-color: #e9ecef;\n border-color: #dee2e6;\n}\n\n.table-dark {\n color: #fff;\n background-color: #343a40;\n}\n\n.table-dark th,\n.table-dark td,\n.table-dark thead th {\n border-color: #454d55;\n}\n\n.table-dark.table-bordered {\n border: 0;\n}\n\n.table-dark.table-striped tbody tr:nth-of-type(odd) {\n background-color: rgba(255, 255, 255, 0.05);\n}\n\n.table-dark.table-hover tbody tr:hover {\n color: #fff;\n background-color: rgba(255, 255, 255, 0.075);\n}\n\n@media (max-width: 575.98px) {\n .table-responsive-sm {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-sm > .table-bordered {\n border: 0;\n }\n}\n\n@media (max-width: 767.98px) {\n .table-responsive-md {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-md > .table-bordered {\n border: 0;\n }\n}\n\n@media (max-width: 991.98px) {\n .table-responsive-lg {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-lg > .table-bordered {\n border: 0;\n }\n}\n\n@media (max-width: 1199.98px) {\n .table-responsive-xl {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-xl > .table-bordered {\n border: 0;\n }\n}\n\n.table-responsive {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n}\n\n.table-responsive > .table-bordered {\n border: 0;\n}\n\n.form-control {\n display: block;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n padding: 0.375rem 0.75rem;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .form-control {\n transition: none;\n }\n}\n\n.form-control::-ms-expand {\n background-color: transparent;\n border: 0;\n}\n\n.form-control:-moz-focusring {\n color: transparent;\n text-shadow: 0 0 0 #495057;\n}\n\n.form-control:focus {\n color: #495057;\n background-color: #fff;\n border-color: #80bdff;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.form-control::placeholder {\n color: #6c757d;\n opacity: 1;\n}\n\n.form-control:disabled, .form-control[readonly] {\n background-color: #e9ecef;\n opacity: 1;\n}\n\nselect.form-control:focus::-ms-value {\n color: #495057;\n background-color: #fff;\n}\n\n.form-control-file,\n.form-control-range {\n display: block;\n width: 100%;\n}\n\n.col-form-label {\n padding-top: calc(0.375rem + 1px);\n padding-bottom: calc(0.375rem + 1px);\n margin-bottom: 0;\n font-size: inherit;\n line-height: 1.5;\n}\n\n.col-form-label-lg {\n padding-top: calc(0.5rem + 1px);\n padding-bottom: calc(0.5rem + 1px);\n font-size: 1.25rem;\n line-height: 1.5;\n}\n\n.col-form-label-sm {\n padding-top: calc(0.25rem + 1px);\n padding-bottom: calc(0.25rem + 1px);\n font-size: 0.875rem;\n line-height: 1.5;\n}\n\n.form-control-plaintext {\n display: block;\n width: 100%;\n padding: 0.375rem 0;\n margin-bottom: 0;\n font-size: 1rem;\n line-height: 1.5;\n color: #212529;\n background-color: transparent;\n border: solid transparent;\n border-width: 1px 0;\n}\n\n.form-control-plaintext.form-control-sm, .form-control-plaintext.form-control-lg {\n padding-right: 0;\n padding-left: 0;\n}\n\n.form-control-sm {\n height: calc(1.5em + 0.5rem + 2px);\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem;\n}\n\n.form-control-lg {\n height: calc(1.5em + 1rem + 2px);\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n line-height: 1.5;\n border-radius: 0.3rem;\n}\n\nselect.form-control[size], select.form-control[multiple] {\n height: auto;\n}\n\ntextarea.form-control {\n height: auto;\n}\n\n.form-group {\n margin-bottom: 1rem;\n}\n\n.form-text {\n display: block;\n margin-top: 0.25rem;\n}\n\n.form-row {\n display: flex;\n flex-wrap: wrap;\n margin-right: -5px;\n margin-left: -5px;\n}\n\n.form-row > .col,\n.form-row > [class*=\"col-\"] {\n padding-right: 5px;\n padding-left: 5px;\n}\n\n.form-check {\n position: relative;\n display: block;\n padding-left: 1.25rem;\n}\n\n.form-check-input {\n position: absolute;\n margin-top: 0.3rem;\n margin-left: -1.25rem;\n}\n\n.form-check-input[disabled] ~ .form-check-label,\n.form-check-input:disabled ~ .form-check-label {\n color: #6c757d;\n}\n\n.form-check-label {\n margin-bottom: 0;\n}\n\n.form-check-inline {\n display: inline-flex;\n align-items: center;\n padding-left: 0;\n margin-right: 0.75rem;\n}\n\n.form-check-inline .form-check-input {\n position: static;\n margin-top: 0;\n margin-right: 0.3125rem;\n margin-left: 0;\n}\n\n.valid-feedback {\n display: none;\n width: 100%;\n margin-top: 0.25rem;\n font-size: 80%;\n color: #28a745;\n}\n\n.valid-tooltip {\n position: absolute;\n top: 100%;\n z-index: 5;\n display: none;\n max-width: 100%;\n padding: 0.25rem 0.5rem;\n margin-top: .1rem;\n font-size: 0.875rem;\n line-height: 1.5;\n color: #fff;\n background-color: rgba(40, 167, 69, 0.9);\n border-radius: 0.25rem;\n}\n\n.was-validated :valid ~ .valid-feedback,\n.was-validated :valid ~ .valid-tooltip,\n.is-valid ~ .valid-feedback,\n.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .form-control:valid, .form-control.is-valid {\n border-color: #28a745;\n padding-right: calc(1.5em + 0.75rem);\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\");\n background-repeat: no-repeat;\n background-position: right calc(0.375em + 0.1875rem) center;\n background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .form-control:valid:focus, .form-control.is-valid:focus {\n border-color: #28a745;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated textarea.form-control:valid, textarea.form-control.is-valid {\n padding-right: calc(1.5em + 0.75rem);\n background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);\n}\n\n.was-validated .custom-select:valid, .custom-select.is-valid {\n border-color: #28a745;\n padding-right: calc(0.75em + 2.3125rem);\n background: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right 0.75rem center/8px 10px, url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\") #fff no-repeat center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .custom-select:valid:focus, .custom-select.is-valid:focus {\n border-color: #28a745;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label {\n color: #28a745;\n}\n\n.was-validated .form-check-input:valid ~ .valid-feedback,\n.was-validated .form-check-input:valid ~ .valid-tooltip, .form-check-input.is-valid ~ .valid-feedback,\n.form-check-input.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .custom-control-input:valid ~ .custom-control-label, .custom-control-input.is-valid ~ .custom-control-label {\n color: #28a745;\n}\n\n.was-validated .custom-control-input:valid ~ .custom-control-label::before, .custom-control-input.is-valid ~ .custom-control-label::before {\n border-color: #28a745;\n}\n\n.was-validated .custom-control-input:valid:checked ~ .custom-control-label::before, .custom-control-input.is-valid:checked ~ .custom-control-label::before {\n border-color: #34ce57;\n background-color: #34ce57;\n}\n\n.was-validated .custom-control-input:valid:focus ~ .custom-control-label::before, .custom-control-input.is-valid:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated .custom-control-input:valid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-valid:focus:not(:checked) ~ .custom-control-label::before {\n border-color: #28a745;\n}\n\n.was-validated .custom-file-input:valid ~ .custom-file-label, .custom-file-input.is-valid ~ .custom-file-label {\n border-color: #28a745;\n}\n\n.was-validated .custom-file-input:valid:focus ~ .custom-file-label, .custom-file-input.is-valid:focus ~ .custom-file-label {\n border-color: #28a745;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.invalid-feedback {\n display: none;\n width: 100%;\n margin-top: 0.25rem;\n font-size: 80%;\n color: #dc3545;\n}\n\n.invalid-tooltip {\n position: absolute;\n top: 100%;\n z-index: 5;\n display: none;\n max-width: 100%;\n padding: 0.25rem 0.5rem;\n margin-top: .1rem;\n font-size: 0.875rem;\n line-height: 1.5;\n color: #fff;\n background-color: rgba(220, 53, 69, 0.9);\n border-radius: 0.25rem;\n}\n\n.was-validated :invalid ~ .invalid-feedback,\n.was-validated :invalid ~ .invalid-tooltip,\n.is-invalid ~ .invalid-feedback,\n.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .form-control:invalid, .form-control.is-invalid {\n border-color: #dc3545;\n padding-right: calc(1.5em + 0.75rem);\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e\");\n background-repeat: no-repeat;\n background-position: right calc(0.375em + 0.1875rem) center;\n background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .form-control:invalid:focus, .form-control.is-invalid:focus {\n border-color: #dc3545;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated textarea.form-control:invalid, textarea.form-control.is-invalid {\n padding-right: calc(1.5em + 0.75rem);\n background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);\n}\n\n.was-validated .custom-select:invalid, .custom-select.is-invalid {\n border-color: #dc3545;\n padding-right: calc(0.75em + 2.3125rem);\n background: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right 0.75rem center/8px 10px, url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e\") #fff no-repeat center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .custom-select:invalid:focus, .custom-select.is-invalid:focus {\n border-color: #dc3545;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label {\n color: #dc3545;\n}\n\n.was-validated .form-check-input:invalid ~ .invalid-feedback,\n.was-validated .form-check-input:invalid ~ .invalid-tooltip, .form-check-input.is-invalid ~ .invalid-feedback,\n.form-check-input.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .custom-control-input:invalid ~ .custom-control-label, .custom-control-input.is-invalid ~ .custom-control-label {\n color: #dc3545;\n}\n\n.was-validated .custom-control-input:invalid ~ .custom-control-label::before, .custom-control-input.is-invalid ~ .custom-control-label::before {\n border-color: #dc3545;\n}\n\n.was-validated .custom-control-input:invalid:checked ~ .custom-control-label::before, .custom-control-input.is-invalid:checked ~ .custom-control-label::before {\n border-color: #e4606d;\n background-color: #e4606d;\n}\n\n.was-validated .custom-control-input:invalid:focus ~ .custom-control-label::before, .custom-control-input.is-invalid:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated .custom-control-input:invalid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-invalid:focus:not(:checked) ~ .custom-control-label::before {\n border-color: #dc3545;\n}\n\n.was-validated .custom-file-input:invalid ~ .custom-file-label, .custom-file-input.is-invalid ~ .custom-file-label {\n border-color: #dc3545;\n}\n\n.was-validated .custom-file-input:invalid:focus ~ .custom-file-label, .custom-file-input.is-invalid:focus ~ .custom-file-label {\n border-color: #dc3545;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.form-inline {\n display: flex;\n flex-flow: row wrap;\n align-items: center;\n}\n\n.form-inline .form-check {\n width: 100%;\n}\n\n@media (min-width: 576px) {\n .form-inline label {\n display: flex;\n align-items: center;\n justify-content: center;\n margin-bottom: 0;\n }\n .form-inline .form-group {\n display: flex;\n flex: 0 0 auto;\n flex-flow: row wrap;\n align-items: center;\n margin-bottom: 0;\n }\n .form-inline .form-control {\n display: inline-block;\n width: auto;\n vertical-align: middle;\n }\n .form-inline .form-control-plaintext {\n display: inline-block;\n }\n .form-inline .input-group,\n .form-inline .custom-select {\n width: auto;\n }\n .form-inline .form-check {\n display: flex;\n align-items: center;\n justify-content: center;\n width: auto;\n padding-left: 0;\n }\n .form-inline .form-check-input {\n position: relative;\n flex-shrink: 0;\n margin-top: 0;\n margin-right: 0.25rem;\n margin-left: 0;\n }\n .form-inline .custom-control {\n align-items: center;\n justify-content: center;\n }\n .form-inline .custom-control-label {\n margin-bottom: 0;\n }\n}\n\n.btn {\n display: inline-block;\n font-weight: 400;\n color: #212529;\n text-align: center;\n vertical-align: middle;\n cursor: pointer;\n user-select: none;\n background-color: transparent;\n border: 1px solid transparent;\n padding: 0.375rem 0.75rem;\n font-size: 1rem;\n line-height: 1.5;\n border-radius: 0.25rem;\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .btn {\n transition: none;\n }\n}\n\n.btn:hover {\n color: #212529;\n text-decoration: none;\n}\n\n.btn:focus, .btn.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.btn.disabled, .btn:disabled {\n opacity: 0.65;\n}\n\na.btn.disabled,\nfieldset:disabled a.btn {\n pointer-events: none;\n}\n\n.btn-primary {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-primary:hover {\n color: #fff;\n background-color: #0069d9;\n border-color: #0062cc;\n}\n\n.btn-primary:focus, .btn-primary.focus {\n color: #fff;\n background-color: #0069d9;\n border-color: #0062cc;\n box-shadow: 0 0 0 0.2rem rgba(38, 143, 255, 0.5);\n}\n\n.btn-primary.disabled, .btn-primary:disabled {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-primary:not(:disabled):not(.disabled):active, .btn-primary:not(:disabled):not(.disabled).active,\n.show > .btn-primary.dropdown-toggle {\n color: #fff;\n background-color: #0062cc;\n border-color: #005cbf;\n}\n\n.btn-primary:not(:disabled):not(.disabled):active:focus, .btn-primary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-primary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(38, 143, 255, 0.5);\n}\n\n.btn-secondary {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-secondary:hover {\n color: #fff;\n background-color: #5a6268;\n border-color: #545b62;\n}\n\n.btn-secondary:focus, .btn-secondary.focus {\n color: #fff;\n background-color: #5a6268;\n border-color: #545b62;\n box-shadow: 0 0 0 0.2rem rgba(130, 138, 145, 0.5);\n}\n\n.btn-secondary.disabled, .btn-secondary:disabled {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-secondary:not(:disabled):not(.disabled):active, .btn-secondary:not(:disabled):not(.disabled).active,\n.show > .btn-secondary.dropdown-toggle {\n color: #fff;\n background-color: #545b62;\n border-color: #4e555b;\n}\n\n.btn-secondary:not(:disabled):not(.disabled):active:focus, .btn-secondary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-secondary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(130, 138, 145, 0.5);\n}\n\n.btn-success {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-success:hover {\n color: #fff;\n background-color: #218838;\n border-color: #1e7e34;\n}\n\n.btn-success:focus, .btn-success.focus {\n color: #fff;\n background-color: #218838;\n border-color: #1e7e34;\n box-shadow: 0 0 0 0.2rem rgba(72, 180, 97, 0.5);\n}\n\n.btn-success.disabled, .btn-success:disabled {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-success:not(:disabled):not(.disabled):active, .btn-success:not(:disabled):not(.disabled).active,\n.show > .btn-success.dropdown-toggle {\n color: #fff;\n background-color: #1e7e34;\n border-color: #1c7430;\n}\n\n.btn-success:not(:disabled):not(.disabled):active:focus, .btn-success:not(:disabled):not(.disabled).active:focus,\n.show > .btn-success.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(72, 180, 97, 0.5);\n}\n\n.btn-info {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-info:hover {\n color: #fff;\n background-color: #138496;\n border-color: #117a8b;\n}\n\n.btn-info:focus, .btn-info.focus {\n color: #fff;\n background-color: #138496;\n border-color: #117a8b;\n box-shadow: 0 0 0 0.2rem rgba(58, 176, 195, 0.5);\n}\n\n.btn-info.disabled, .btn-info:disabled {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-info:not(:disabled):not(.disabled):active, .btn-info:not(:disabled):not(.disabled).active,\n.show > .btn-info.dropdown-toggle {\n color: #fff;\n background-color: #117a8b;\n border-color: #10707f;\n}\n\n.btn-info:not(:disabled):not(.disabled):active:focus, .btn-info:not(:disabled):not(.disabled).active:focus,\n.show > .btn-info.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(58, 176, 195, 0.5);\n}\n\n.btn-warning {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-warning:hover {\n color: #212529;\n background-color: #e0a800;\n border-color: #d39e00;\n}\n\n.btn-warning:focus, .btn-warning.focus {\n color: #212529;\n background-color: #e0a800;\n border-color: #d39e00;\n box-shadow: 0 0 0 0.2rem rgba(222, 170, 12, 0.5);\n}\n\n.btn-warning.disabled, .btn-warning:disabled {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-warning:not(:disabled):not(.disabled):active, .btn-warning:not(:disabled):not(.disabled).active,\n.show > .btn-warning.dropdown-toggle {\n color: #212529;\n background-color: #d39e00;\n border-color: #c69500;\n}\n\n.btn-warning:not(:disabled):not(.disabled):active:focus, .btn-warning:not(:disabled):not(.disabled).active:focus,\n.show > .btn-warning.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(222, 170, 12, 0.5);\n}\n\n.btn-danger {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-danger:hover {\n color: #fff;\n background-color: #c82333;\n border-color: #bd2130;\n}\n\n.btn-danger:focus, .btn-danger.focus {\n color: #fff;\n background-color: #c82333;\n border-color: #bd2130;\n box-shadow: 0 0 0 0.2rem rgba(225, 83, 97, 0.5);\n}\n\n.btn-danger.disabled, .btn-danger:disabled {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-danger:not(:disabled):not(.disabled):active, .btn-danger:not(:disabled):not(.disabled).active,\n.show > .btn-danger.dropdown-toggle {\n color: #fff;\n background-color: #bd2130;\n border-color: #b21f2d;\n}\n\n.btn-danger:not(:disabled):not(.disabled):active:focus, .btn-danger:not(:disabled):not(.disabled).active:focus,\n.show > .btn-danger.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(225, 83, 97, 0.5);\n}\n\n.btn-light {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-light:hover {\n color: #212529;\n background-color: #e2e6ea;\n border-color: #dae0e5;\n}\n\n.btn-light:focus, .btn-light.focus {\n color: #212529;\n background-color: #e2e6ea;\n border-color: #dae0e5;\n box-shadow: 0 0 0 0.2rem rgba(216, 217, 219, 0.5);\n}\n\n.btn-light.disabled, .btn-light:disabled {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-light:not(:disabled):not(.disabled):active, .btn-light:not(:disabled):not(.disabled).active,\n.show > .btn-light.dropdown-toggle {\n color: #212529;\n background-color: #dae0e5;\n border-color: #d3d9df;\n}\n\n.btn-light:not(:disabled):not(.disabled):active:focus, .btn-light:not(:disabled):not(.disabled).active:focus,\n.show > .btn-light.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(216, 217, 219, 0.5);\n}\n\n.btn-dark {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-dark:hover {\n color: #fff;\n background-color: #23272b;\n border-color: #1d2124;\n}\n\n.btn-dark:focus, .btn-dark.focus {\n color: #fff;\n background-color: #23272b;\n border-color: #1d2124;\n box-shadow: 0 0 0 0.2rem rgba(82, 88, 93, 0.5);\n}\n\n.btn-dark.disabled, .btn-dark:disabled {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-dark:not(:disabled):not(.disabled):active, .btn-dark:not(:disabled):not(.disabled).active,\n.show > .btn-dark.dropdown-toggle {\n color: #fff;\n background-color: #1d2124;\n border-color: #171a1d;\n}\n\n.btn-dark:not(:disabled):not(.disabled):active:focus, .btn-dark:not(:disabled):not(.disabled).active:focus,\n.show > .btn-dark.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(82, 88, 93, 0.5);\n}\n\n.btn-outline-primary {\n color: #007bff;\n border-color: #007bff;\n}\n\n.btn-outline-primary:hover {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-outline-primary:focus, .btn-outline-primary.focus {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.btn-outline-primary.disabled, .btn-outline-primary:disabled {\n color: #007bff;\n background-color: transparent;\n}\n\n.btn-outline-primary:not(:disabled):not(.disabled):active, .btn-outline-primary:not(:disabled):not(.disabled).active,\n.show > .btn-outline-primary.dropdown-toggle {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-outline-primary:not(:disabled):not(.disabled):active:focus, .btn-outline-primary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-primary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.btn-outline-secondary {\n color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-outline-secondary:hover {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-outline-secondary:focus, .btn-outline-secondary.focus {\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.btn-outline-secondary.disabled, .btn-outline-secondary:disabled {\n color: #6c757d;\n background-color: transparent;\n}\n\n.btn-outline-secondary:not(:disabled):not(.disabled):active, .btn-outline-secondary:not(:disabled):not(.disabled).active,\n.show > .btn-outline-secondary.dropdown-toggle {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-outline-secondary:not(:disabled):not(.disabled):active:focus, .btn-outline-secondary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-secondary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.btn-outline-success {\n color: #28a745;\n border-color: #28a745;\n}\n\n.btn-outline-success:hover {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-outline-success:focus, .btn-outline-success.focus {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.btn-outline-success.disabled, .btn-outline-success:disabled {\n color: #28a745;\n background-color: transparent;\n}\n\n.btn-outline-success:not(:disabled):not(.disabled):active, .btn-outline-success:not(:disabled):not(.disabled).active,\n.show > .btn-outline-success.dropdown-toggle {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-outline-success:not(:disabled):not(.disabled):active:focus, .btn-outline-success:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-success.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.btn-outline-info {\n color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-outline-info:hover {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-outline-info:focus, .btn-outline-info.focus {\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.btn-outline-info.disabled, .btn-outline-info:disabled {\n color: #17a2b8;\n background-color: transparent;\n}\n\n.btn-outline-info:not(:disabled):not(.disabled):active, .btn-outline-info:not(:disabled):not(.disabled).active,\n.show > .btn-outline-info.dropdown-toggle {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-outline-info:not(:disabled):not(.disabled):active:focus, .btn-outline-info:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-info.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.btn-outline-warning {\n color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-outline-warning:hover {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-outline-warning:focus, .btn-outline-warning.focus {\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.btn-outline-warning.disabled, .btn-outline-warning:disabled {\n color: #ffc107;\n background-color: transparent;\n}\n\n.btn-outline-warning:not(:disabled):not(.disabled):active, .btn-outline-warning:not(:disabled):not(.disabled).active,\n.show > .btn-outline-warning.dropdown-toggle {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-outline-warning:not(:disabled):not(.disabled):active:focus, .btn-outline-warning:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-warning.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.btn-outline-danger {\n color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-outline-danger:hover {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-outline-danger:focus, .btn-outline-danger.focus {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.btn-outline-danger.disabled, .btn-outline-danger:disabled {\n color: #dc3545;\n background-color: transparent;\n}\n\n.btn-outline-danger:not(:disabled):not(.disabled):active, .btn-outline-danger:not(:disabled):not(.disabled).active,\n.show > .btn-outline-danger.dropdown-toggle {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-outline-danger:not(:disabled):not(.disabled):active:focus, .btn-outline-danger:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-danger.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.btn-outline-light {\n color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-outline-light:hover {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-outline-light:focus, .btn-outline-light.focus {\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.btn-outline-light.disabled, .btn-outline-light:disabled {\n color: #f8f9fa;\n background-color: transparent;\n}\n\n.btn-outline-light:not(:disabled):not(.disabled):active, .btn-outline-light:not(:disabled):not(.disabled).active,\n.show > .btn-outline-light.dropdown-toggle {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-outline-light:not(:disabled):not(.disabled):active:focus, .btn-outline-light:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-light.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.btn-outline-dark {\n color: #343a40;\n border-color: #343a40;\n}\n\n.btn-outline-dark:hover {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-outline-dark:focus, .btn-outline-dark.focus {\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.btn-outline-dark.disabled, .btn-outline-dark:disabled {\n color: #343a40;\n background-color: transparent;\n}\n\n.btn-outline-dark:not(:disabled):not(.disabled):active, .btn-outline-dark:not(:disabled):not(.disabled).active,\n.show > .btn-outline-dark.dropdown-toggle {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-outline-dark:not(:disabled):not(.disabled):active:focus, .btn-outline-dark:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-dark.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.btn-link {\n font-weight: 400;\n color: #007bff;\n text-decoration: none;\n}\n\n.btn-link:hover {\n color: #0056b3;\n text-decoration: underline;\n}\n\n.btn-link:focus, .btn-link.focus {\n text-decoration: underline;\n box-shadow: none;\n}\n\n.btn-link:disabled, .btn-link.disabled {\n color: #6c757d;\n pointer-events: none;\n}\n\n.btn-lg, .btn-group-lg > .btn {\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n line-height: 1.5;\n border-radius: 0.3rem;\n}\n\n.btn-sm, .btn-group-sm > .btn {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem;\n}\n\n.btn-block {\n display: block;\n width: 100%;\n}\n\n.btn-block + .btn-block {\n margin-top: 0.5rem;\n}\n\ninput[type=\"submit\"].btn-block,\ninput[type=\"reset\"].btn-block,\ninput[type=\"button\"].btn-block {\n width: 100%;\n}\n\n.fade {\n transition: opacity 0.15s linear;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .fade {\n transition: none;\n }\n}\n\n.fade:not(.show) {\n opacity: 0;\n}\n\n.collapse:not(.show) {\n display: none;\n}\n\n.collapsing {\n position: relative;\n height: 0;\n overflow: hidden;\n transition: height 0.35s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .collapsing {\n transition: none;\n }\n}\n\n.dropup,\n.dropright,\n.dropdown,\n.dropleft {\n position: relative;\n}\n\n.dropdown-toggle {\n white-space: nowrap;\n}\n\n.dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid;\n border-right: 0.3em solid transparent;\n border-bottom: 0;\n border-left: 0.3em solid transparent;\n}\n\n.dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropdown-menu {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 1000;\n display: none;\n float: left;\n min-width: 10rem;\n padding: 0.5rem 0;\n margin: 0.125rem 0 0;\n font-size: 1rem;\n color: #212529;\n text-align: left;\n list-style: none;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.15);\n border-radius: 0.25rem;\n}\n\n.dropdown-menu-left {\n right: auto;\n left: 0;\n}\n\n.dropdown-menu-right {\n right: 0;\n left: auto;\n}\n\n@media (min-width: 576px) {\n .dropdown-menu-sm-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-sm-right {\n right: 0;\n left: auto;\n }\n}\n\n@media (min-width: 768px) {\n .dropdown-menu-md-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-md-right {\n right: 0;\n left: auto;\n }\n}\n\n@media (min-width: 992px) {\n .dropdown-menu-lg-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-lg-right {\n right: 0;\n left: auto;\n }\n}\n\n@media (min-width: 1200px) {\n .dropdown-menu-xl-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-xl-right {\n right: 0;\n left: auto;\n }\n}\n\n.dropup .dropdown-menu {\n top: auto;\n bottom: 100%;\n margin-top: 0;\n margin-bottom: 0.125rem;\n}\n\n.dropup .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0;\n border-right: 0.3em solid transparent;\n border-bottom: 0.3em solid;\n border-left: 0.3em solid transparent;\n}\n\n.dropup .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropright .dropdown-menu {\n top: 0;\n right: auto;\n left: 100%;\n margin-top: 0;\n margin-left: 0.125rem;\n}\n\n.dropright .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid transparent;\n border-right: 0;\n border-bottom: 0.3em solid transparent;\n border-left: 0.3em solid;\n}\n\n.dropright .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropright .dropdown-toggle::after {\n vertical-align: 0;\n}\n\n.dropleft .dropdown-menu {\n top: 0;\n right: 100%;\n left: auto;\n margin-top: 0;\n margin-right: 0.125rem;\n}\n\n.dropleft .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n}\n\n.dropleft .dropdown-toggle::after {\n display: none;\n}\n\n.dropleft .dropdown-toggle::before {\n display: inline-block;\n margin-right: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid transparent;\n border-right: 0.3em solid;\n border-bottom: 0.3em solid transparent;\n}\n\n.dropleft .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropleft .dropdown-toggle::before {\n vertical-align: 0;\n}\n\n.dropdown-menu[x-placement^=\"top\"], .dropdown-menu[x-placement^=\"right\"], .dropdown-menu[x-placement^=\"bottom\"], .dropdown-menu[x-placement^=\"left\"] {\n right: auto;\n bottom: auto;\n}\n\n.dropdown-divider {\n height: 0;\n margin: 0.5rem 0;\n overflow: hidden;\n border-top: 1px solid #e9ecef;\n}\n\n.dropdown-item {\n display: block;\n width: 100%;\n padding: 0.25rem 1.5rem;\n clear: both;\n font-weight: 400;\n color: #212529;\n text-align: inherit;\n white-space: nowrap;\n background-color: transparent;\n border: 0;\n}\n\n.dropdown-item:hover, .dropdown-item:focus {\n color: #16181b;\n text-decoration: none;\n background-color: #f8f9fa;\n}\n\n.dropdown-item.active, .dropdown-item:active {\n color: #fff;\n text-decoration: none;\n background-color: #007bff;\n}\n\n.dropdown-item.disabled, .dropdown-item:disabled {\n color: #6c757d;\n pointer-events: none;\n background-color: transparent;\n}\n\n.dropdown-menu.show {\n display: block;\n}\n\n.dropdown-header {\n display: block;\n padding: 0.5rem 1.5rem;\n margin-bottom: 0;\n font-size: 0.875rem;\n color: #6c757d;\n white-space: nowrap;\n}\n\n.dropdown-item-text {\n display: block;\n padding: 0.25rem 1.5rem;\n color: #212529;\n}\n\n.btn-group,\n.btn-group-vertical {\n position: relative;\n display: inline-flex;\n vertical-align: middle;\n}\n\n.btn-group > .btn,\n.btn-group-vertical > .btn {\n position: relative;\n flex: 1 1 auto;\n}\n\n.btn-group > .btn:hover,\n.btn-group-vertical > .btn:hover {\n z-index: 1;\n}\n\n.btn-group > .btn:focus, .btn-group > .btn:active, .btn-group > .btn.active,\n.btn-group-vertical > .btn:focus,\n.btn-group-vertical > .btn:active,\n.btn-group-vertical > .btn.active {\n z-index: 1;\n}\n\n.btn-toolbar {\n display: flex;\n flex-wrap: wrap;\n justify-content: flex-start;\n}\n\n.btn-toolbar .input-group {\n width: auto;\n}\n\n.btn-group > .btn:not(:first-child),\n.btn-group > .btn-group:not(:first-child) {\n margin-left: -1px;\n}\n\n.btn-group > .btn:not(:last-child):not(.dropdown-toggle),\n.btn-group > .btn-group:not(:last-child) > .btn {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.btn-group > .btn:not(:first-child),\n.btn-group > .btn-group:not(:first-child) > .btn {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.dropdown-toggle-split {\n padding-right: 0.5625rem;\n padding-left: 0.5625rem;\n}\n\n.dropdown-toggle-split::after,\n.dropup .dropdown-toggle-split::after,\n.dropright .dropdown-toggle-split::after {\n margin-left: 0;\n}\n\n.dropleft .dropdown-toggle-split::before {\n margin-right: 0;\n}\n\n.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split {\n padding-right: 0.375rem;\n padding-left: 0.375rem;\n}\n\n.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split {\n padding-right: 0.75rem;\n padding-left: 0.75rem;\n}\n\n.btn-group-vertical {\n flex-direction: column;\n align-items: flex-start;\n justify-content: center;\n}\n\n.btn-group-vertical > .btn,\n.btn-group-vertical > .btn-group {\n width: 100%;\n}\n\n.btn-group-vertical > .btn:not(:first-child),\n.btn-group-vertical > .btn-group:not(:first-child) {\n margin-top: -1px;\n}\n\n.btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle),\n.btn-group-vertical > .btn-group:not(:last-child) > .btn {\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.btn-group-vertical > .btn:not(:first-child),\n.btn-group-vertical > .btn-group:not(:first-child) > .btn {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.btn-group-toggle > .btn,\n.btn-group-toggle > .btn-group > .btn {\n margin-bottom: 0;\n}\n\n.btn-group-toggle > .btn input[type=\"radio\"],\n.btn-group-toggle > .btn input[type=\"checkbox\"],\n.btn-group-toggle > .btn-group > .btn input[type=\"radio\"],\n.btn-group-toggle > .btn-group > .btn input[type=\"checkbox\"] {\n position: absolute;\n clip: rect(0, 0, 0, 0);\n pointer-events: none;\n}\n\n.input-group {\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: stretch;\n width: 100%;\n}\n\n.input-group > .form-control,\n.input-group > .form-control-plaintext,\n.input-group > .custom-select,\n.input-group > .custom-file {\n position: relative;\n flex: 1 1 0%;\n min-width: 0;\n margin-bottom: 0;\n}\n\n.input-group > .form-control + .form-control,\n.input-group > .form-control + .custom-select,\n.input-group > .form-control + .custom-file,\n.input-group > .form-control-plaintext + .form-control,\n.input-group > .form-control-plaintext + .custom-select,\n.input-group > .form-control-plaintext + .custom-file,\n.input-group > .custom-select + .form-control,\n.input-group > .custom-select + .custom-select,\n.input-group > .custom-select + .custom-file,\n.input-group > .custom-file + .form-control,\n.input-group > .custom-file + .custom-select,\n.input-group > .custom-file + .custom-file {\n margin-left: -1px;\n}\n\n.input-group > .form-control:focus,\n.input-group > .custom-select:focus,\n.input-group > .custom-file .custom-file-input:focus ~ .custom-file-label {\n z-index: 3;\n}\n\n.input-group > .custom-file .custom-file-input:focus {\n z-index: 4;\n}\n\n.input-group > .form-control:not(:last-child),\n.input-group > .custom-select:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.input-group > .form-control:not(:first-child),\n.input-group > .custom-select:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.input-group > .custom-file {\n display: flex;\n align-items: center;\n}\n\n.input-group > .custom-file:not(:last-child) .custom-file-label,\n.input-group > .custom-file:not(:last-child) .custom-file-label::after {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.input-group > .custom-file:not(:first-child) .custom-file-label {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.input-group-prepend,\n.input-group-append {\n display: flex;\n}\n\n.input-group-prepend .btn,\n.input-group-append .btn {\n position: relative;\n z-index: 2;\n}\n\n.input-group-prepend .btn:focus,\n.input-group-append .btn:focus {\n z-index: 3;\n}\n\n.input-group-prepend .btn + .btn,\n.input-group-prepend .btn + .input-group-text,\n.input-group-prepend .input-group-text + .input-group-text,\n.input-group-prepend .input-group-text + .btn,\n.input-group-append .btn + .btn,\n.input-group-append .btn + .input-group-text,\n.input-group-append .input-group-text + .input-group-text,\n.input-group-append .input-group-text + .btn {\n margin-left: -1px;\n}\n\n.input-group-prepend {\n margin-right: -1px;\n}\n\n.input-group-append {\n margin-left: -1px;\n}\n\n.input-group-text {\n display: flex;\n align-items: center;\n padding: 0.375rem 0.75rem;\n margin-bottom: 0;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n text-align: center;\n white-space: nowrap;\n background-color: #e9ecef;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n}\n\n.input-group-text input[type=\"radio\"],\n.input-group-text input[type=\"checkbox\"] {\n margin-top: 0;\n}\n\n.input-group-lg > .form-control:not(textarea),\n.input-group-lg > .custom-select {\n height: calc(1.5em + 1rem + 2px);\n}\n\n.input-group-lg > .form-control,\n.input-group-lg > .custom-select,\n.input-group-lg > .input-group-prepend > .input-group-text,\n.input-group-lg > .input-group-append > .input-group-text,\n.input-group-lg > .input-group-prepend > .btn,\n.input-group-lg > .input-group-append > .btn {\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n line-height: 1.5;\n border-radius: 0.3rem;\n}\n\n.input-group-sm > .form-control:not(textarea),\n.input-group-sm > .custom-select {\n height: calc(1.5em + 0.5rem + 2px);\n}\n\n.input-group-sm > .form-control,\n.input-group-sm > .custom-select,\n.input-group-sm > .input-group-prepend > .input-group-text,\n.input-group-sm > .input-group-append > .input-group-text,\n.input-group-sm > .input-group-prepend > .btn,\n.input-group-sm > .input-group-append > .btn {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem;\n}\n\n.input-group-lg > .custom-select,\n.input-group-sm > .custom-select {\n padding-right: 1.75rem;\n}\n\n.input-group > .input-group-prepend > .btn,\n.input-group > .input-group-prepend > .input-group-text,\n.input-group > .input-group-append:not(:last-child) > .btn,\n.input-group > .input-group-append:not(:last-child) > .input-group-text,\n.input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group > .input-group-append:last-child > .input-group-text:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.input-group > .input-group-append > .btn,\n.input-group > .input-group-append > .input-group-text,\n.input-group > .input-group-prepend:not(:first-child) > .btn,\n.input-group > .input-group-prepend:not(:first-child) > .input-group-text,\n.input-group > .input-group-prepend:first-child > .btn:not(:first-child),\n.input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.custom-control {\n position: relative;\n display: block;\n min-height: 1.5rem;\n padding-left: 1.5rem;\n}\n\n.custom-control-inline {\n display: inline-flex;\n margin-right: 1rem;\n}\n\n.custom-control-input {\n position: absolute;\n left: 0;\n z-index: -1;\n width: 1rem;\n height: 1.25rem;\n opacity: 0;\n}\n\n.custom-control-input:checked ~ .custom-control-label::before {\n color: #fff;\n border-color: #007bff;\n background-color: #007bff;\n}\n\n.custom-control-input:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-control-input:focus:not(:checked) ~ .custom-control-label::before {\n border-color: #80bdff;\n}\n\n.custom-control-input:not(:disabled):active ~ .custom-control-label::before {\n color: #fff;\n background-color: #b3d7ff;\n border-color: #b3d7ff;\n}\n\n.custom-control-input[disabled] ~ .custom-control-label, .custom-control-input:disabled ~ .custom-control-label {\n color: #6c757d;\n}\n\n.custom-control-input[disabled] ~ .custom-control-label::before, .custom-control-input:disabled ~ .custom-control-label::before {\n background-color: #e9ecef;\n}\n\n.custom-control-label {\n position: relative;\n margin-bottom: 0;\n vertical-align: top;\n}\n\n.custom-control-label::before {\n position: absolute;\n top: 0.25rem;\n left: -1.5rem;\n display: block;\n width: 1rem;\n height: 1rem;\n pointer-events: none;\n content: \"\";\n background-color: #fff;\n border: #adb5bd solid 1px;\n}\n\n.custom-control-label::after {\n position: absolute;\n top: 0.25rem;\n left: -1.5rem;\n display: block;\n width: 1rem;\n height: 1rem;\n content: \"\";\n background: no-repeat 50% / 50% 50%;\n}\n\n.custom-checkbox .custom-control-label::before {\n border-radius: 0.25rem;\n}\n\n.custom-checkbox .custom-control-input:checked ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3e%3c/svg%3e\");\n}\n\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before {\n border-color: #007bff;\n background-color: #007bff;\n}\n\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e\");\n}\n\n.custom-checkbox .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-checkbox .custom-control-input:disabled:indeterminate ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-radio .custom-control-label::before {\n border-radius: 50%;\n}\n\n.custom-radio .custom-control-input:checked ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e\");\n}\n\n.custom-radio .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-switch {\n padding-left: 2.25rem;\n}\n\n.custom-switch .custom-control-label::before {\n left: -2.25rem;\n width: 1.75rem;\n pointer-events: all;\n border-radius: 0.5rem;\n}\n\n.custom-switch .custom-control-label::after {\n top: calc(0.25rem + 2px);\n left: calc(-2.25rem + 2px);\n width: calc(1rem - 4px);\n height: calc(1rem - 4px);\n background-color: #adb5bd;\n border-radius: 0.5rem;\n transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-switch .custom-control-label::after {\n transition: none;\n }\n}\n\n.custom-switch .custom-control-input:checked ~ .custom-control-label::after {\n background-color: #fff;\n transform: translateX(0.75rem);\n}\n\n.custom-switch .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-select {\n display: inline-block;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n padding: 0.375rem 1.75rem 0.375rem 0.75rem;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n vertical-align: middle;\n background: #fff url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right 0.75rem center/8px 10px;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n appearance: none;\n}\n\n.custom-select:focus {\n border-color: #80bdff;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-select:focus::-ms-value {\n color: #495057;\n background-color: #fff;\n}\n\n.custom-select[multiple], .custom-select[size]:not([size=\"1\"]) {\n height: auto;\n padding-right: 0.75rem;\n background-image: none;\n}\n\n.custom-select:disabled {\n color: #6c757d;\n background-color: #e9ecef;\n}\n\n.custom-select::-ms-expand {\n display: none;\n}\n\n.custom-select:-moz-focusring {\n color: transparent;\n text-shadow: 0 0 0 #495057;\n}\n\n.custom-select-sm {\n height: calc(1.5em + 0.5rem + 2px);\n padding-top: 0.25rem;\n padding-bottom: 0.25rem;\n padding-left: 0.5rem;\n font-size: 0.875rem;\n}\n\n.custom-select-lg {\n height: calc(1.5em + 1rem + 2px);\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n padding-left: 1rem;\n font-size: 1.25rem;\n}\n\n.custom-file {\n position: relative;\n display: inline-block;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n margin-bottom: 0;\n}\n\n.custom-file-input {\n position: relative;\n z-index: 2;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n margin: 0;\n opacity: 0;\n}\n\n.custom-file-input:focus ~ .custom-file-label {\n border-color: #80bdff;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-file-input[disabled] ~ .custom-file-label,\n.custom-file-input:disabled ~ .custom-file-label {\n background-color: #e9ecef;\n}\n\n.custom-file-input:lang(en) ~ .custom-file-label::after {\n content: \"Browse\";\n}\n\n.custom-file-input ~ .custom-file-label[data-browse]::after {\n content: attr(data-browse);\n}\n\n.custom-file-label {\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1;\n height: calc(1.5em + 0.75rem + 2px);\n padding: 0.375rem 0.75rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n background-color: #fff;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n}\n\n.custom-file-label::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n z-index: 3;\n display: block;\n height: calc(1.5em + 0.75rem);\n padding: 0.375rem 0.75rem;\n line-height: 1.5;\n color: #495057;\n content: \"Browse\";\n background-color: #e9ecef;\n border-left: inherit;\n border-radius: 0 0.25rem 0.25rem 0;\n}\n\n.custom-range {\n width: 100%;\n height: 1.4rem;\n padding: 0;\n background-color: transparent;\n appearance: none;\n}\n\n.custom-range:focus {\n outline: none;\n}\n\n.custom-range:focus::-webkit-slider-thumb {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range:focus::-moz-range-thumb {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range:focus::-ms-thumb {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range::-moz-focus-outer {\n border: 0;\n}\n\n.custom-range::-webkit-slider-thumb {\n width: 1rem;\n height: 1rem;\n margin-top: -0.25rem;\n background-color: #007bff;\n border: 0;\n border-radius: 1rem;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n appearance: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-range::-webkit-slider-thumb {\n transition: none;\n }\n}\n\n.custom-range::-webkit-slider-thumb:active {\n background-color: #b3d7ff;\n}\n\n.custom-range::-webkit-slider-runnable-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: #dee2e6;\n border-color: transparent;\n border-radius: 1rem;\n}\n\n.custom-range::-moz-range-thumb {\n width: 1rem;\n height: 1rem;\n background-color: #007bff;\n border: 0;\n border-radius: 1rem;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n appearance: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-range::-moz-range-thumb {\n transition: none;\n }\n}\n\n.custom-range::-moz-range-thumb:active {\n background-color: #b3d7ff;\n}\n\n.custom-range::-moz-range-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: #dee2e6;\n border-color: transparent;\n border-radius: 1rem;\n}\n\n.custom-range::-ms-thumb {\n width: 1rem;\n height: 1rem;\n margin-top: 0;\n margin-right: 0.2rem;\n margin-left: 0.2rem;\n background-color: #007bff;\n border: 0;\n border-radius: 1rem;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n appearance: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-range::-ms-thumb {\n transition: none;\n }\n}\n\n.custom-range::-ms-thumb:active {\n background-color: #b3d7ff;\n}\n\n.custom-range::-ms-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: transparent;\n border-color: transparent;\n border-width: 0.5rem;\n}\n\n.custom-range::-ms-fill-lower {\n background-color: #dee2e6;\n border-radius: 1rem;\n}\n\n.custom-range::-ms-fill-upper {\n margin-right: 15px;\n background-color: #dee2e6;\n border-radius: 1rem;\n}\n\n.custom-range:disabled::-webkit-slider-thumb {\n background-color: #adb5bd;\n}\n\n.custom-range:disabled::-webkit-slider-runnable-track {\n cursor: default;\n}\n\n.custom-range:disabled::-moz-range-thumb {\n background-color: #adb5bd;\n}\n\n.custom-range:disabled::-moz-range-track {\n cursor: default;\n}\n\n.custom-range:disabled::-ms-thumb {\n background-color: #adb5bd;\n}\n\n.custom-control-label::before,\n.custom-file-label,\n.custom-select {\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-control-label::before,\n .custom-file-label,\n .custom-select {\n transition: none;\n }\n}\n\n.nav {\n display: flex;\n flex-wrap: wrap;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n}\n\n.nav-link {\n display: block;\n padding: 0.5rem 1rem;\n}\n\n.nav-link:hover, .nav-link:focus {\n text-decoration: none;\n}\n\n.nav-link.disabled {\n color: #6c757d;\n pointer-events: none;\n cursor: default;\n}\n\n.nav-tabs {\n border-bottom: 1px solid #dee2e6;\n}\n\n.nav-tabs .nav-item {\n margin-bottom: -1px;\n}\n\n.nav-tabs .nav-link {\n border: 1px solid transparent;\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n}\n\n.nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus {\n border-color: #e9ecef #e9ecef #dee2e6;\n}\n\n.nav-tabs .nav-link.disabled {\n color: #6c757d;\n background-color: transparent;\n border-color: transparent;\n}\n\n.nav-tabs .nav-link.active,\n.nav-tabs .nav-item.show .nav-link {\n color: #495057;\n background-color: #fff;\n border-color: #dee2e6 #dee2e6 #fff;\n}\n\n.nav-tabs .dropdown-menu {\n margin-top: -1px;\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.nav-pills .nav-link {\n border-radius: 0.25rem;\n}\n\n.nav-pills .nav-link.active,\n.nav-pills .show > .nav-link {\n color: #fff;\n background-color: #007bff;\n}\n\n.nav-fill .nav-item {\n flex: 1 1 auto;\n text-align: center;\n}\n\n.nav-justified .nav-item {\n flex-basis: 0;\n flex-grow: 1;\n text-align: center;\n}\n\n.tab-content > .tab-pane {\n display: none;\n}\n\n.tab-content > .active {\n display: block;\n}\n\n.navbar {\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n padding: 0.5rem 1rem;\n}\n\n.navbar .container,\n.navbar .container-fluid, .navbar .container-sm, .navbar .container-md, .navbar .container-lg, .navbar .container-xl {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n}\n\n.navbar-brand {\n display: inline-block;\n padding-top: 0.3125rem;\n padding-bottom: 0.3125rem;\n margin-right: 1rem;\n font-size: 1.25rem;\n line-height: inherit;\n white-space: nowrap;\n}\n\n.navbar-brand:hover, .navbar-brand:focus {\n text-decoration: none;\n}\n\n.navbar-nav {\n display: flex;\n flex-direction: column;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n}\n\n.navbar-nav .nav-link {\n padding-right: 0;\n padding-left: 0;\n}\n\n.navbar-nav .dropdown-menu {\n position: static;\n float: none;\n}\n\n.navbar-text {\n display: inline-block;\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n}\n\n.navbar-collapse {\n flex-basis: 100%;\n flex-grow: 1;\n align-items: center;\n}\n\n.navbar-toggler {\n padding: 0.25rem 0.75rem;\n font-size: 1.25rem;\n line-height: 1;\n background-color: transparent;\n border: 1px solid transparent;\n border-radius: 0.25rem;\n}\n\n.navbar-toggler:hover, .navbar-toggler:focus {\n text-decoration: none;\n}\n\n.navbar-toggler-icon {\n display: inline-block;\n width: 1.5em;\n height: 1.5em;\n vertical-align: middle;\n content: \"\";\n background: no-repeat center center;\n background-size: 100% 100%;\n}\n\n@media (max-width: 575.98px) {\n .navbar-expand-sm > .container,\n .navbar-expand-sm > .container-fluid, .navbar-expand-sm > .container-sm, .navbar-expand-sm > .container-md, .navbar-expand-sm > .container-lg, .navbar-expand-sm > .container-xl {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 576px) {\n .navbar-expand-sm {\n flex-flow: row nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-sm .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-sm .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-sm .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-sm > .container,\n .navbar-expand-sm > .container-fluid, .navbar-expand-sm > .container-sm, .navbar-expand-sm > .container-md, .navbar-expand-sm > .container-lg, .navbar-expand-sm > .container-xl {\n flex-wrap: nowrap;\n }\n .navbar-expand-sm .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-sm .navbar-toggler {\n display: none;\n }\n}\n\n@media (max-width: 767.98px) {\n .navbar-expand-md > .container,\n .navbar-expand-md > .container-fluid, .navbar-expand-md > .container-sm, .navbar-expand-md > .container-md, .navbar-expand-md > .container-lg, .navbar-expand-md > .container-xl {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 768px) {\n .navbar-expand-md {\n flex-flow: row nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-md .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-md .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-md .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-md > .container,\n .navbar-expand-md > .container-fluid, .navbar-expand-md > .container-sm, .navbar-expand-md > .container-md, .navbar-expand-md > .container-lg, .navbar-expand-md > .container-xl {\n flex-wrap: nowrap;\n }\n .navbar-expand-md .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-md .navbar-toggler {\n display: none;\n }\n}\n\n@media (max-width: 991.98px) {\n .navbar-expand-lg > .container,\n .navbar-expand-lg > .container-fluid, .navbar-expand-lg > .container-sm, .navbar-expand-lg > .container-md, .navbar-expand-lg > .container-lg, .navbar-expand-lg > .container-xl {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 992px) {\n .navbar-expand-lg {\n flex-flow: row nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-lg .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-lg .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-lg .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-lg > .container,\n .navbar-expand-lg > .container-fluid, .navbar-expand-lg > .container-sm, .navbar-expand-lg > .container-md, .navbar-expand-lg > .container-lg, .navbar-expand-lg > .container-xl {\n flex-wrap: nowrap;\n }\n .navbar-expand-lg .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-lg .navbar-toggler {\n display: none;\n }\n}\n\n@media (max-width: 1199.98px) {\n .navbar-expand-xl > .container,\n .navbar-expand-xl > .container-fluid, .navbar-expand-xl > .container-sm, .navbar-expand-xl > .container-md, .navbar-expand-xl > .container-lg, .navbar-expand-xl > .container-xl {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 1200px) {\n .navbar-expand-xl {\n flex-flow: row nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-xl .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-xl .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-xl .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-xl > .container,\n .navbar-expand-xl > .container-fluid, .navbar-expand-xl > .container-sm, .navbar-expand-xl > .container-md, .navbar-expand-xl > .container-lg, .navbar-expand-xl > .container-xl {\n flex-wrap: nowrap;\n }\n .navbar-expand-xl .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-xl .navbar-toggler {\n display: none;\n }\n}\n\n.navbar-expand {\n flex-flow: row nowrap;\n justify-content: flex-start;\n}\n\n.navbar-expand > .container,\n.navbar-expand > .container-fluid, .navbar-expand > .container-sm, .navbar-expand > .container-md, .navbar-expand > .container-lg, .navbar-expand > .container-xl {\n padding-right: 0;\n padding-left: 0;\n}\n\n.navbar-expand .navbar-nav {\n flex-direction: row;\n}\n\n.navbar-expand .navbar-nav .dropdown-menu {\n position: absolute;\n}\n\n.navbar-expand .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n}\n\n.navbar-expand > .container,\n.navbar-expand > .container-fluid, .navbar-expand > .container-sm, .navbar-expand > .container-md, .navbar-expand > .container-lg, .navbar-expand > .container-xl {\n flex-wrap: nowrap;\n}\n\n.navbar-expand .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n}\n\n.navbar-expand .navbar-toggler {\n display: none;\n}\n\n.navbar-light .navbar-brand {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-brand:hover, .navbar-light .navbar-brand:focus {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-nav .nav-link {\n color: rgba(0, 0, 0, 0.5);\n}\n\n.navbar-light .navbar-nav .nav-link:hover, .navbar-light .navbar-nav .nav-link:focus {\n color: rgba(0, 0, 0, 0.7);\n}\n\n.navbar-light .navbar-nav .nav-link.disabled {\n color: rgba(0, 0, 0, 0.3);\n}\n\n.navbar-light .navbar-nav .show > .nav-link,\n.navbar-light .navbar-nav .active > .nav-link,\n.navbar-light .navbar-nav .nav-link.show,\n.navbar-light .navbar-nav .nav-link.active {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-toggler {\n color: rgba(0, 0, 0, 0.5);\n border-color: rgba(0, 0, 0, 0.1);\n}\n\n.navbar-light .navbar-toggler-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(0, 0, 0, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\");\n}\n\n.navbar-light .navbar-text {\n color: rgba(0, 0, 0, 0.5);\n}\n\n.navbar-light .navbar-text a {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-text a:hover, .navbar-light .navbar-text a:focus {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-dark .navbar-brand {\n color: #fff;\n}\n\n.navbar-dark .navbar-brand:hover, .navbar-dark .navbar-brand:focus {\n color: #fff;\n}\n\n.navbar-dark .navbar-nav .nav-link {\n color: rgba(255, 255, 255, 0.5);\n}\n\n.navbar-dark .navbar-nav .nav-link:hover, .navbar-dark .navbar-nav .nav-link:focus {\n color: rgba(255, 255, 255, 0.75);\n}\n\n.navbar-dark .navbar-nav .nav-link.disabled {\n color: rgba(255, 255, 255, 0.25);\n}\n\n.navbar-dark .navbar-nav .show > .nav-link,\n.navbar-dark .navbar-nav .active > .nav-link,\n.navbar-dark .navbar-nav .nav-link.show,\n.navbar-dark .navbar-nav .nav-link.active {\n color: #fff;\n}\n\n.navbar-dark .navbar-toggler {\n color: rgba(255, 255, 255, 0.5);\n border-color: rgba(255, 255, 255, 0.1);\n}\n\n.navbar-dark .navbar-toggler-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(255, 255, 255, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\");\n}\n\n.navbar-dark .navbar-text {\n color: rgba(255, 255, 255, 0.5);\n}\n\n.navbar-dark .navbar-text a {\n color: #fff;\n}\n\n.navbar-dark .navbar-text a:hover, .navbar-dark .navbar-text a:focus {\n color: #fff;\n}\n\n.card {\n position: relative;\n display: flex;\n flex-direction: column;\n min-width: 0;\n word-wrap: break-word;\n background-color: #fff;\n background-clip: border-box;\n border: 1px solid rgba(0, 0, 0, 0.125);\n border-radius: 0.25rem;\n}\n\n.card > hr {\n margin-right: 0;\n margin-left: 0;\n}\n\n.card > .list-group:first-child .list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n}\n\n.card > .list-group:last-child .list-group-item:last-child {\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n}\n\n.card-body {\n flex: 1 1 auto;\n min-height: 1px;\n padding: 1.25rem;\n}\n\n.card-title {\n margin-bottom: 0.75rem;\n}\n\n.card-subtitle {\n margin-top: -0.375rem;\n margin-bottom: 0;\n}\n\n.card-text:last-child {\n margin-bottom: 0;\n}\n\n.card-link:hover {\n text-decoration: none;\n}\n\n.card-link + .card-link {\n margin-left: 1.25rem;\n}\n\n.card-header {\n padding: 0.75rem 1.25rem;\n margin-bottom: 0;\n background-color: rgba(0, 0, 0, 0.03);\n border-bottom: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.card-header:first-child {\n border-radius: calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0;\n}\n\n.card-header + .list-group .list-group-item:first-child {\n border-top: 0;\n}\n\n.card-footer {\n padding: 0.75rem 1.25rem;\n background-color: rgba(0, 0, 0, 0.03);\n border-top: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.card-footer:last-child {\n border-radius: 0 0 calc(0.25rem - 1px) calc(0.25rem - 1px);\n}\n\n.card-header-tabs {\n margin-right: -0.625rem;\n margin-bottom: -0.75rem;\n margin-left: -0.625rem;\n border-bottom: 0;\n}\n\n.card-header-pills {\n margin-right: -0.625rem;\n margin-left: -0.625rem;\n}\n\n.card-img-overlay {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n padding: 1.25rem;\n}\n\n.card-img,\n.card-img-top,\n.card-img-bottom {\n flex-shrink: 0;\n width: 100%;\n}\n\n.card-img,\n.card-img-top {\n border-top-left-radius: calc(0.25rem - 1px);\n border-top-right-radius: calc(0.25rem - 1px);\n}\n\n.card-img,\n.card-img-bottom {\n border-bottom-right-radius: calc(0.25rem - 1px);\n border-bottom-left-radius: calc(0.25rem - 1px);\n}\n\n.card-deck .card {\n margin-bottom: 15px;\n}\n\n@media (min-width: 576px) {\n .card-deck {\n display: flex;\n flex-flow: row wrap;\n margin-right: -15px;\n margin-left: -15px;\n }\n .card-deck .card {\n flex: 1 0 0%;\n margin-right: 15px;\n margin-bottom: 0;\n margin-left: 15px;\n }\n}\n\n.card-group > .card {\n margin-bottom: 15px;\n}\n\n@media (min-width: 576px) {\n .card-group {\n display: flex;\n flex-flow: row wrap;\n }\n .card-group > .card {\n flex: 1 0 0%;\n margin-bottom: 0;\n }\n .card-group > .card + .card {\n margin-left: 0;\n border-left: 0;\n }\n .card-group > .card:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n .card-group > .card:not(:last-child) .card-img-top,\n .card-group > .card:not(:last-child) .card-header {\n border-top-right-radius: 0;\n }\n .card-group > .card:not(:last-child) .card-img-bottom,\n .card-group > .card:not(:last-child) .card-footer {\n border-bottom-right-radius: 0;\n }\n .card-group > .card:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n .card-group > .card:not(:first-child) .card-img-top,\n .card-group > .card:not(:first-child) .card-header {\n border-top-left-radius: 0;\n }\n .card-group > .card:not(:first-child) .card-img-bottom,\n .card-group > .card:not(:first-child) .card-footer {\n border-bottom-left-radius: 0;\n }\n}\n\n.card-columns .card {\n margin-bottom: 0.75rem;\n}\n\n@media (min-width: 576px) {\n .card-columns {\n column-count: 3;\n column-gap: 1.25rem;\n orphans: 1;\n widows: 1;\n }\n .card-columns .card {\n display: inline-block;\n width: 100%;\n }\n}\n\n.accordion > .card {\n overflow: hidden;\n}\n\n.accordion > .card:not(:last-of-type) {\n border-bottom: 0;\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.accordion > .card:not(:first-of-type) {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.accordion > .card > .card-header {\n border-radius: 0;\n margin-bottom: -1px;\n}\n\n.breadcrumb {\n display: flex;\n flex-wrap: wrap;\n padding: 0.75rem 1rem;\n margin-bottom: 1rem;\n list-style: none;\n background-color: #e9ecef;\n border-radius: 0.25rem;\n}\n\n.breadcrumb-item + .breadcrumb-item {\n padding-left: 0.5rem;\n}\n\n.breadcrumb-item + .breadcrumb-item::before {\n display: inline-block;\n padding-right: 0.5rem;\n color: #6c757d;\n content: \"/\";\n}\n\n.breadcrumb-item + .breadcrumb-item:hover::before {\n text-decoration: underline;\n}\n\n.breadcrumb-item + .breadcrumb-item:hover::before {\n text-decoration: none;\n}\n\n.breadcrumb-item.active {\n color: #6c757d;\n}\n\n.pagination {\n display: flex;\n padding-left: 0;\n list-style: none;\n border-radius: 0.25rem;\n}\n\n.page-link {\n position: relative;\n display: block;\n padding: 0.5rem 0.75rem;\n margin-left: -1px;\n line-height: 1.25;\n color: #007bff;\n background-color: #fff;\n border: 1px solid #dee2e6;\n}\n\n.page-link:hover {\n z-index: 2;\n color: #0056b3;\n text-decoration: none;\n background-color: #e9ecef;\n border-color: #dee2e6;\n}\n\n.page-link:focus {\n z-index: 3;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.page-item:first-child .page-link {\n margin-left: 0;\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n}\n\n.page-item:last-child .page-link {\n border-top-right-radius: 0.25rem;\n border-bottom-right-radius: 0.25rem;\n}\n\n.page-item.active .page-link {\n z-index: 3;\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.page-item.disabled .page-link {\n color: #6c757d;\n pointer-events: none;\n cursor: auto;\n background-color: #fff;\n border-color: #dee2e6;\n}\n\n.pagination-lg .page-link {\n padding: 0.75rem 1.5rem;\n font-size: 1.25rem;\n line-height: 1.5;\n}\n\n.pagination-lg .page-item:first-child .page-link {\n border-top-left-radius: 0.3rem;\n border-bottom-left-radius: 0.3rem;\n}\n\n.pagination-lg .page-item:last-child .page-link {\n border-top-right-radius: 0.3rem;\n border-bottom-right-radius: 0.3rem;\n}\n\n.pagination-sm .page-link {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n}\n\n.pagination-sm .page-item:first-child .page-link {\n border-top-left-radius: 0.2rem;\n border-bottom-left-radius: 0.2rem;\n}\n\n.pagination-sm .page-item:last-child .page-link {\n border-top-right-radius: 0.2rem;\n border-bottom-right-radius: 0.2rem;\n}\n\n.badge {\n display: inline-block;\n padding: 0.25em 0.4em;\n font-size: 75%;\n font-weight: 700;\n line-height: 1;\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n border-radius: 0.25rem;\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .badge {\n transition: none;\n }\n}\n\na.badge:hover, a.badge:focus {\n text-decoration: none;\n}\n\n.badge:empty {\n display: none;\n}\n\n.btn .badge {\n position: relative;\n top: -1px;\n}\n\n.badge-pill {\n padding-right: 0.6em;\n padding-left: 0.6em;\n border-radius: 10rem;\n}\n\n.badge-primary {\n color: #fff;\n background-color: #007bff;\n}\n\na.badge-primary:hover, a.badge-primary:focus {\n color: #fff;\n background-color: #0062cc;\n}\n\na.badge-primary:focus, a.badge-primary.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.badge-secondary {\n color: #fff;\n background-color: #6c757d;\n}\n\na.badge-secondary:hover, a.badge-secondary:focus {\n color: #fff;\n background-color: #545b62;\n}\n\na.badge-secondary:focus, a.badge-secondary.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.badge-success {\n color: #fff;\n background-color: #28a745;\n}\n\na.badge-success:hover, a.badge-success:focus {\n color: #fff;\n background-color: #1e7e34;\n}\n\na.badge-success:focus, a.badge-success.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.badge-info {\n color: #fff;\n background-color: #17a2b8;\n}\n\na.badge-info:hover, a.badge-info:focus {\n color: #fff;\n background-color: #117a8b;\n}\n\na.badge-info:focus, a.badge-info.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.badge-warning {\n color: #212529;\n background-color: #ffc107;\n}\n\na.badge-warning:hover, a.badge-warning:focus {\n color: #212529;\n background-color: #d39e00;\n}\n\na.badge-warning:focus, a.badge-warning.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.badge-danger {\n color: #fff;\n background-color: #dc3545;\n}\n\na.badge-danger:hover, a.badge-danger:focus {\n color: #fff;\n background-color: #bd2130;\n}\n\na.badge-danger:focus, a.badge-danger.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.badge-light {\n color: #212529;\n background-color: #f8f9fa;\n}\n\na.badge-light:hover, a.badge-light:focus {\n color: #212529;\n background-color: #dae0e5;\n}\n\na.badge-light:focus, a.badge-light.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.badge-dark {\n color: #fff;\n background-color: #343a40;\n}\n\na.badge-dark:hover, a.badge-dark:focus {\n color: #fff;\n background-color: #1d2124;\n}\n\na.badge-dark:focus, a.badge-dark.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.jumbotron {\n padding: 2rem 1rem;\n margin-bottom: 2rem;\n background-color: #e9ecef;\n border-radius: 0.3rem;\n}\n\n@media (min-width: 576px) {\n .jumbotron {\n padding: 4rem 2rem;\n }\n}\n\n.jumbotron-fluid {\n padding-right: 0;\n padding-left: 0;\n border-radius: 0;\n}\n\n.alert {\n position: relative;\n padding: 0.75rem 1.25rem;\n margin-bottom: 1rem;\n border: 1px solid transparent;\n border-radius: 0.25rem;\n}\n\n.alert-heading {\n color: inherit;\n}\n\n.alert-link {\n font-weight: 700;\n}\n\n.alert-dismissible {\n padding-right: 4rem;\n}\n\n.alert-dismissible .close {\n position: absolute;\n top: 0;\n right: 0;\n padding: 0.75rem 1.25rem;\n color: inherit;\n}\n\n.alert-primary {\n color: #004085;\n background-color: #cce5ff;\n border-color: #b8daff;\n}\n\n.alert-primary hr {\n border-top-color: #9fcdff;\n}\n\n.alert-primary .alert-link {\n color: #002752;\n}\n\n.alert-secondary {\n color: #383d41;\n background-color: #e2e3e5;\n border-color: #d6d8db;\n}\n\n.alert-secondary hr {\n border-top-color: #c8cbcf;\n}\n\n.alert-secondary .alert-link {\n color: #202326;\n}\n\n.alert-success {\n color: #155724;\n background-color: #d4edda;\n border-color: #c3e6cb;\n}\n\n.alert-success hr {\n border-top-color: #b1dfbb;\n}\n\n.alert-success .alert-link {\n color: #0b2e13;\n}\n\n.alert-info {\n color: #0c5460;\n background-color: #d1ecf1;\n border-color: #bee5eb;\n}\n\n.alert-info hr {\n border-top-color: #abdde5;\n}\n\n.alert-info .alert-link {\n color: #062c33;\n}\n\n.alert-warning {\n color: #856404;\n background-color: #fff3cd;\n border-color: #ffeeba;\n}\n\n.alert-warning hr {\n border-top-color: #ffe8a1;\n}\n\n.alert-warning .alert-link {\n color: #533f03;\n}\n\n.alert-danger {\n color: #721c24;\n background-color: #f8d7da;\n border-color: #f5c6cb;\n}\n\n.alert-danger hr {\n border-top-color: #f1b0b7;\n}\n\n.alert-danger .alert-link {\n color: #491217;\n}\n\n.alert-light {\n color: #818182;\n background-color: #fefefe;\n border-color: #fdfdfe;\n}\n\n.alert-light hr {\n border-top-color: #ececf6;\n}\n\n.alert-light .alert-link {\n color: #686868;\n}\n\n.alert-dark {\n color: #1b1e21;\n background-color: #d6d8d9;\n border-color: #c6c8ca;\n}\n\n.alert-dark hr {\n border-top-color: #b9bbbe;\n}\n\n.alert-dark .alert-link {\n color: #040505;\n}\n\n@keyframes progress-bar-stripes {\n from {\n background-position: 1rem 0;\n }\n to {\n background-position: 0 0;\n }\n}\n\n.progress {\n display: flex;\n height: 1rem;\n overflow: hidden;\n font-size: 0.75rem;\n background-color: #e9ecef;\n border-radius: 0.25rem;\n}\n\n.progress-bar {\n display: flex;\n flex-direction: column;\n justify-content: center;\n overflow: hidden;\n color: #fff;\n text-align: center;\n white-space: nowrap;\n background-color: #007bff;\n transition: width 0.6s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .progress-bar {\n transition: none;\n }\n}\n\n.progress-bar-striped {\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-size: 1rem 1rem;\n}\n\n.progress-bar-animated {\n animation: progress-bar-stripes 1s linear infinite;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .progress-bar-animated {\n animation: none;\n }\n}\n\n.media {\n display: flex;\n align-items: flex-start;\n}\n\n.media-body {\n flex: 1;\n}\n\n.list-group {\n display: flex;\n flex-direction: column;\n padding-left: 0;\n margin-bottom: 0;\n}\n\n.list-group-item-action {\n width: 100%;\n color: #495057;\n text-align: inherit;\n}\n\n.list-group-item-action:hover, .list-group-item-action:focus {\n z-index: 1;\n color: #495057;\n text-decoration: none;\n background-color: #f8f9fa;\n}\n\n.list-group-item-action:active {\n color: #212529;\n background-color: #e9ecef;\n}\n\n.list-group-item {\n position: relative;\n display: block;\n padding: 0.75rem 1.25rem;\n background-color: #fff;\n border: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n}\n\n.list-group-item:last-child {\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n}\n\n.list-group-item.disabled, .list-group-item:disabled {\n color: #6c757d;\n pointer-events: none;\n background-color: #fff;\n}\n\n.list-group-item.active {\n z-index: 2;\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.list-group-item + .list-group-item {\n border-top-width: 0;\n}\n\n.list-group-item + .list-group-item.active {\n margin-top: -1px;\n border-top-width: 1px;\n}\n\n.list-group-horizontal {\n flex-direction: row;\n}\n\n.list-group-horizontal .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n}\n\n.list-group-horizontal .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n}\n\n.list-group-horizontal .list-group-item.active {\n margin-top: 0;\n}\n\n.list-group-horizontal .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0;\n}\n\n.list-group-horizontal .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px;\n}\n\n@media (min-width: 576px) {\n .list-group-horizontal-sm {\n flex-direction: row;\n }\n .list-group-horizontal-sm .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-sm .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n .list-group-horizontal-sm .list-group-item.active {\n margin-top: 0;\n }\n .list-group-horizontal-sm .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0;\n }\n .list-group-horizontal-sm .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px;\n }\n}\n\n@media (min-width: 768px) {\n .list-group-horizontal-md {\n flex-direction: row;\n }\n .list-group-horizontal-md .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-md .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n .list-group-horizontal-md .list-group-item.active {\n margin-top: 0;\n }\n .list-group-horizontal-md .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0;\n }\n .list-group-horizontal-md .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px;\n }\n}\n\n@media (min-width: 992px) {\n .list-group-horizontal-lg {\n flex-direction: row;\n }\n .list-group-horizontal-lg .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-lg .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n .list-group-horizontal-lg .list-group-item.active {\n margin-top: 0;\n }\n .list-group-horizontal-lg .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0;\n }\n .list-group-horizontal-lg .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px;\n }\n}\n\n@media (min-width: 1200px) {\n .list-group-horizontal-xl {\n flex-direction: row;\n }\n .list-group-horizontal-xl .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-xl .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n .list-group-horizontal-xl .list-group-item.active {\n margin-top: 0;\n }\n .list-group-horizontal-xl .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0;\n }\n .list-group-horizontal-xl .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px;\n }\n}\n\n.list-group-flush .list-group-item {\n border-right-width: 0;\n border-left-width: 0;\n border-radius: 0;\n}\n\n.list-group-flush .list-group-item:first-child {\n border-top-width: 0;\n}\n\n.list-group-flush:last-child .list-group-item:last-child {\n border-bottom-width: 0;\n}\n\n.list-group-item-primary {\n color: #004085;\n background-color: #b8daff;\n}\n\n.list-group-item-primary.list-group-item-action:hover, .list-group-item-primary.list-group-item-action:focus {\n color: #004085;\n background-color: #9fcdff;\n}\n\n.list-group-item-primary.list-group-item-action.active {\n color: #fff;\n background-color: #004085;\n border-color: #004085;\n}\n\n.list-group-item-secondary {\n color: #383d41;\n background-color: #d6d8db;\n}\n\n.list-group-item-secondary.list-group-item-action:hover, .list-group-item-secondary.list-group-item-action:focus {\n color: #383d41;\n background-color: #c8cbcf;\n}\n\n.list-group-item-secondary.list-group-item-action.active {\n color: #fff;\n background-color: #383d41;\n border-color: #383d41;\n}\n\n.list-group-item-success {\n color: #155724;\n background-color: #c3e6cb;\n}\n\n.list-group-item-success.list-group-item-action:hover, .list-group-item-success.list-group-item-action:focus {\n color: #155724;\n background-color: #b1dfbb;\n}\n\n.list-group-item-success.list-group-item-action.active {\n color: #fff;\n background-color: #155724;\n border-color: #155724;\n}\n\n.list-group-item-info {\n color: #0c5460;\n background-color: #bee5eb;\n}\n\n.list-group-item-info.list-group-item-action:hover, .list-group-item-info.list-group-item-action:focus {\n color: #0c5460;\n background-color: #abdde5;\n}\n\n.list-group-item-info.list-group-item-action.active {\n color: #fff;\n background-color: #0c5460;\n border-color: #0c5460;\n}\n\n.list-group-item-warning {\n color: #856404;\n background-color: #ffeeba;\n}\n\n.list-group-item-warning.list-group-item-action:hover, .list-group-item-warning.list-group-item-action:focus {\n color: #856404;\n background-color: #ffe8a1;\n}\n\n.list-group-item-warning.list-group-item-action.active {\n color: #fff;\n background-color: #856404;\n border-color: #856404;\n}\n\n.list-group-item-danger {\n color: #721c24;\n background-color: #f5c6cb;\n}\n\n.list-group-item-danger.list-group-item-action:hover, .list-group-item-danger.list-group-item-action:focus {\n color: #721c24;\n background-color: #f1b0b7;\n}\n\n.list-group-item-danger.list-group-item-action.active {\n color: #fff;\n background-color: #721c24;\n border-color: #721c24;\n}\n\n.list-group-item-light {\n color: #818182;\n background-color: #fdfdfe;\n}\n\n.list-group-item-light.list-group-item-action:hover, .list-group-item-light.list-group-item-action:focus {\n color: #818182;\n background-color: #ececf6;\n}\n\n.list-group-item-light.list-group-item-action.active {\n color: #fff;\n background-color: #818182;\n border-color: #818182;\n}\n\n.list-group-item-dark {\n color: #1b1e21;\n background-color: #c6c8ca;\n}\n\n.list-group-item-dark.list-group-item-action:hover, .list-group-item-dark.list-group-item-action:focus {\n color: #1b1e21;\n background-color: #b9bbbe;\n}\n\n.list-group-item-dark.list-group-item-action.active {\n color: #fff;\n background-color: #1b1e21;\n border-color: #1b1e21;\n}\n\n.close {\n float: right;\n font-size: 1.5rem;\n font-weight: 700;\n line-height: 1;\n color: #000;\n text-shadow: 0 1px 0 #fff;\n opacity: .5;\n}\n\n.close:hover {\n color: #000;\n text-decoration: none;\n}\n\n.close:not(:disabled):not(.disabled):hover, .close:not(:disabled):not(.disabled):focus {\n opacity: .75;\n}\n\nbutton.close {\n padding: 0;\n background-color: transparent;\n border: 0;\n appearance: none;\n}\n\na.close.disabled {\n pointer-events: none;\n}\n\n.toast {\n max-width: 350px;\n overflow: hidden;\n font-size: 0.875rem;\n background-color: rgba(255, 255, 255, 0.85);\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.1);\n box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.1);\n backdrop-filter: blur(10px);\n opacity: 0;\n border-radius: 0.25rem;\n}\n\n.toast:not(:last-child) {\n margin-bottom: 0.75rem;\n}\n\n.toast.showing {\n opacity: 1;\n}\n\n.toast.show {\n display: block;\n opacity: 1;\n}\n\n.toast.hide {\n display: none;\n}\n\n.toast-header {\n display: flex;\n align-items: center;\n padding: 0.25rem 0.75rem;\n color: #6c757d;\n background-color: rgba(255, 255, 255, 0.85);\n background-clip: padding-box;\n border-bottom: 1px solid rgba(0, 0, 0, 0.05);\n}\n\n.toast-body {\n padding: 0.75rem;\n}\n\n.modal-open {\n overflow: hidden;\n}\n\n.modal-open .modal {\n overflow-x: hidden;\n overflow-y: auto;\n}\n\n.modal {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1050;\n display: none;\n width: 100%;\n height: 100%;\n overflow: hidden;\n outline: 0;\n}\n\n.modal-dialog {\n position: relative;\n width: auto;\n margin: 0.5rem;\n pointer-events: none;\n}\n\n.modal.fade .modal-dialog {\n transition: transform 0.3s ease-out;\n transform: translate(0, -50px);\n}\n\n@media (prefers-reduced-motion: reduce) {\n .modal.fade .modal-dialog {\n transition: none;\n }\n}\n\n.modal.show .modal-dialog {\n transform: none;\n}\n\n.modal.modal-static .modal-dialog {\n transform: scale(1.02);\n}\n\n.modal-dialog-scrollable {\n display: flex;\n max-height: calc(100% - 1rem);\n}\n\n.modal-dialog-scrollable .modal-content {\n max-height: calc(100vh - 1rem);\n overflow: hidden;\n}\n\n.modal-dialog-scrollable .modal-header,\n.modal-dialog-scrollable .modal-footer {\n flex-shrink: 0;\n}\n\n.modal-dialog-scrollable .modal-body {\n overflow-y: auto;\n}\n\n.modal-dialog-centered {\n display: flex;\n align-items: center;\n min-height: calc(100% - 1rem);\n}\n\n.modal-dialog-centered::before {\n display: block;\n height: calc(100vh - 1rem);\n content: \"\";\n}\n\n.modal-dialog-centered.modal-dialog-scrollable {\n flex-direction: column;\n justify-content: center;\n height: 100%;\n}\n\n.modal-dialog-centered.modal-dialog-scrollable .modal-content {\n max-height: none;\n}\n\n.modal-dialog-centered.modal-dialog-scrollable::before {\n content: none;\n}\n\n.modal-content {\n position: relative;\n display: flex;\n flex-direction: column;\n width: 100%;\n pointer-events: auto;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 0.3rem;\n outline: 0;\n}\n\n.modal-backdrop {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1040;\n width: 100vw;\n height: 100vh;\n background-color: #000;\n}\n\n.modal-backdrop.fade {\n opacity: 0;\n}\n\n.modal-backdrop.show {\n opacity: 0.5;\n}\n\n.modal-header {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n padding: 1rem 1rem;\n border-bottom: 1px solid #dee2e6;\n border-top-left-radius: calc(0.3rem - 1px);\n border-top-right-radius: calc(0.3rem - 1px);\n}\n\n.modal-header .close {\n padding: 1rem 1rem;\n margin: -1rem -1rem -1rem auto;\n}\n\n.modal-title {\n margin-bottom: 0;\n line-height: 1.5;\n}\n\n.modal-body {\n position: relative;\n flex: 1 1 auto;\n padding: 1rem;\n}\n\n.modal-footer {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: flex-end;\n padding: 0.75rem;\n border-top: 1px solid #dee2e6;\n border-bottom-right-radius: calc(0.3rem - 1px);\n border-bottom-left-radius: calc(0.3rem - 1px);\n}\n\n.modal-footer > * {\n margin: 0.25rem;\n}\n\n.modal-scrollbar-measure {\n position: absolute;\n top: -9999px;\n width: 50px;\n height: 50px;\n overflow: scroll;\n}\n\n@media (min-width: 576px) {\n .modal-dialog {\n max-width: 500px;\n margin: 1.75rem auto;\n }\n .modal-dialog-scrollable {\n max-height: calc(100% - 3.5rem);\n }\n .modal-dialog-scrollable .modal-content {\n max-height: calc(100vh - 3.5rem);\n }\n .modal-dialog-centered {\n min-height: calc(100% - 3.5rem);\n }\n .modal-dialog-centered::before {\n height: calc(100vh - 3.5rem);\n }\n .modal-sm {\n max-width: 300px;\n }\n}\n\n@media (min-width: 992px) {\n .modal-lg,\n .modal-xl {\n max-width: 800px;\n }\n}\n\n@media (min-width: 1200px) {\n .modal-xl {\n max-width: 1140px;\n }\n}\n\n.tooltip {\n position: absolute;\n z-index: 1070;\n display: block;\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n font-style: normal;\n font-weight: 400;\n line-height: 1.5;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n white-space: normal;\n line-break: auto;\n font-size: 0.875rem;\n word-wrap: break-word;\n opacity: 0;\n}\n\n.tooltip.show {\n opacity: 0.9;\n}\n\n.tooltip .arrow {\n position: absolute;\n display: block;\n width: 0.8rem;\n height: 0.4rem;\n}\n\n.tooltip .arrow::before {\n position: absolute;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n}\n\n.bs-tooltip-top, .bs-tooltip-auto[x-placement^=\"top\"] {\n padding: 0.4rem 0;\n}\n\n.bs-tooltip-top .arrow, .bs-tooltip-auto[x-placement^=\"top\"] .arrow {\n bottom: 0;\n}\n\n.bs-tooltip-top .arrow::before, .bs-tooltip-auto[x-placement^=\"top\"] .arrow::before {\n top: 0;\n border-width: 0.4rem 0.4rem 0;\n border-top-color: #000;\n}\n\n.bs-tooltip-right, .bs-tooltip-auto[x-placement^=\"right\"] {\n padding: 0 0.4rem;\n}\n\n.bs-tooltip-right .arrow, .bs-tooltip-auto[x-placement^=\"right\"] .arrow {\n left: 0;\n width: 0.4rem;\n height: 0.8rem;\n}\n\n.bs-tooltip-right .arrow::before, .bs-tooltip-auto[x-placement^=\"right\"] .arrow::before {\n right: 0;\n border-width: 0.4rem 0.4rem 0.4rem 0;\n border-right-color: #000;\n}\n\n.bs-tooltip-bottom, .bs-tooltip-auto[x-placement^=\"bottom\"] {\n padding: 0.4rem 0;\n}\n\n.bs-tooltip-bottom .arrow, .bs-tooltip-auto[x-placement^=\"bottom\"] .arrow {\n top: 0;\n}\n\n.bs-tooltip-bottom .arrow::before, .bs-tooltip-auto[x-placement^=\"bottom\"] .arrow::before {\n bottom: 0;\n border-width: 0 0.4rem 0.4rem;\n border-bottom-color: #000;\n}\n\n.bs-tooltip-left, .bs-tooltip-auto[x-placement^=\"left\"] {\n padding: 0 0.4rem;\n}\n\n.bs-tooltip-left .arrow, .bs-tooltip-auto[x-placement^=\"left\"] .arrow {\n right: 0;\n width: 0.4rem;\n height: 0.8rem;\n}\n\n.bs-tooltip-left .arrow::before, .bs-tooltip-auto[x-placement^=\"left\"] .arrow::before {\n left: 0;\n border-width: 0.4rem 0 0.4rem 0.4rem;\n border-left-color: #000;\n}\n\n.tooltip-inner {\n max-width: 200px;\n padding: 0.25rem 0.5rem;\n color: #fff;\n text-align: center;\n background-color: #000;\n border-radius: 0.25rem;\n}\n\n.popover {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 1060;\n display: block;\n max-width: 276px;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n font-style: normal;\n font-weight: 400;\n line-height: 1.5;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n white-space: normal;\n line-break: auto;\n font-size: 0.875rem;\n word-wrap: break-word;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 0.3rem;\n}\n\n.popover .arrow {\n position: absolute;\n display: block;\n width: 1rem;\n height: 0.5rem;\n margin: 0 0.3rem;\n}\n\n.popover .arrow::before, .popover .arrow::after {\n position: absolute;\n display: block;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n}\n\n.bs-popover-top, .bs-popover-auto[x-placement^=\"top\"] {\n margin-bottom: 0.5rem;\n}\n\n.bs-popover-top > .arrow, .bs-popover-auto[x-placement^=\"top\"] > .arrow {\n bottom: calc(-0.5rem - 1px);\n}\n\n.bs-popover-top > .arrow::before, .bs-popover-auto[x-placement^=\"top\"] > .arrow::before {\n bottom: 0;\n border-width: 0.5rem 0.5rem 0;\n border-top-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-top > .arrow::after, .bs-popover-auto[x-placement^=\"top\"] > .arrow::after {\n bottom: 1px;\n border-width: 0.5rem 0.5rem 0;\n border-top-color: #fff;\n}\n\n.bs-popover-right, .bs-popover-auto[x-placement^=\"right\"] {\n margin-left: 0.5rem;\n}\n\n.bs-popover-right > .arrow, .bs-popover-auto[x-placement^=\"right\"] > .arrow {\n left: calc(-0.5rem - 1px);\n width: 0.5rem;\n height: 1rem;\n margin: 0.3rem 0;\n}\n\n.bs-popover-right > .arrow::before, .bs-popover-auto[x-placement^=\"right\"] > .arrow::before {\n left: 0;\n border-width: 0.5rem 0.5rem 0.5rem 0;\n border-right-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-right > .arrow::after, .bs-popover-auto[x-placement^=\"right\"] > .arrow::after {\n left: 1px;\n border-width: 0.5rem 0.5rem 0.5rem 0;\n border-right-color: #fff;\n}\n\n.bs-popover-bottom, .bs-popover-auto[x-placement^=\"bottom\"] {\n margin-top: 0.5rem;\n}\n\n.bs-popover-bottom > .arrow, .bs-popover-auto[x-placement^=\"bottom\"] > .arrow {\n top: calc(-0.5rem - 1px);\n}\n\n.bs-popover-bottom > .arrow::before, .bs-popover-auto[x-placement^=\"bottom\"] > .arrow::before {\n top: 0;\n border-width: 0 0.5rem 0.5rem 0.5rem;\n border-bottom-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-bottom > .arrow::after, .bs-popover-auto[x-placement^=\"bottom\"] > .arrow::after {\n top: 1px;\n border-width: 0 0.5rem 0.5rem 0.5rem;\n border-bottom-color: #fff;\n}\n\n.bs-popover-bottom .popover-header::before, .bs-popover-auto[x-placement^=\"bottom\"] .popover-header::before {\n position: absolute;\n top: 0;\n left: 50%;\n display: block;\n width: 1rem;\n margin-left: -0.5rem;\n content: \"\";\n border-bottom: 1px solid #f7f7f7;\n}\n\n.bs-popover-left, .bs-popover-auto[x-placement^=\"left\"] {\n margin-right: 0.5rem;\n}\n\n.bs-popover-left > .arrow, .bs-popover-auto[x-placement^=\"left\"] > .arrow {\n right: calc(-0.5rem - 1px);\n width: 0.5rem;\n height: 1rem;\n margin: 0.3rem 0;\n}\n\n.bs-popover-left > .arrow::before, .bs-popover-auto[x-placement^=\"left\"] > .arrow::before {\n right: 0;\n border-width: 0.5rem 0 0.5rem 0.5rem;\n border-left-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-left > .arrow::after, .bs-popover-auto[x-placement^=\"left\"] > .arrow::after {\n right: 1px;\n border-width: 0.5rem 0 0.5rem 0.5rem;\n border-left-color: #fff;\n}\n\n.popover-header {\n padding: 0.5rem 0.75rem;\n margin-bottom: 0;\n font-size: 1rem;\n background-color: #f7f7f7;\n border-bottom: 1px solid #ebebeb;\n border-top-left-radius: calc(0.3rem - 1px);\n border-top-right-radius: calc(0.3rem - 1px);\n}\n\n.popover-header:empty {\n display: none;\n}\n\n.popover-body {\n padding: 0.5rem 0.75rem;\n color: #212529;\n}\n\n.carousel {\n position: relative;\n}\n\n.carousel.pointer-event {\n touch-action: pan-y;\n}\n\n.carousel-inner {\n position: relative;\n width: 100%;\n overflow: hidden;\n}\n\n.carousel-inner::after {\n display: block;\n clear: both;\n content: \"\";\n}\n\n.carousel-item {\n position: relative;\n display: none;\n float: left;\n width: 100%;\n margin-right: -100%;\n backface-visibility: hidden;\n transition: transform 0.6s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-item {\n transition: none;\n }\n}\n\n.carousel-item.active,\n.carousel-item-next,\n.carousel-item-prev {\n display: block;\n}\n\n.carousel-item-next:not(.carousel-item-left),\n.active.carousel-item-right {\n transform: translateX(100%);\n}\n\n.carousel-item-prev:not(.carousel-item-right),\n.active.carousel-item-left {\n transform: translateX(-100%);\n}\n\n.carousel-fade .carousel-item {\n opacity: 0;\n transition-property: opacity;\n transform: none;\n}\n\n.carousel-fade .carousel-item.active,\n.carousel-fade .carousel-item-next.carousel-item-left,\n.carousel-fade .carousel-item-prev.carousel-item-right {\n z-index: 1;\n opacity: 1;\n}\n\n.carousel-fade .active.carousel-item-left,\n.carousel-fade .active.carousel-item-right {\n z-index: 0;\n opacity: 0;\n transition: opacity 0s 0.6s;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-fade .active.carousel-item-left,\n .carousel-fade .active.carousel-item-right {\n transition: none;\n }\n}\n\n.carousel-control-prev,\n.carousel-control-next {\n position: absolute;\n top: 0;\n bottom: 0;\n z-index: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 15%;\n color: #fff;\n text-align: center;\n opacity: 0.5;\n transition: opacity 0.15s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-control-prev,\n .carousel-control-next {\n transition: none;\n }\n}\n\n.carousel-control-prev:hover, .carousel-control-prev:focus,\n.carousel-control-next:hover,\n.carousel-control-next:focus {\n color: #fff;\n text-decoration: none;\n outline: 0;\n opacity: 0.9;\n}\n\n.carousel-control-prev {\n left: 0;\n}\n\n.carousel-control-next {\n right: 0;\n}\n\n.carousel-control-prev-icon,\n.carousel-control-next-icon {\n display: inline-block;\n width: 20px;\n height: 20px;\n background: no-repeat 50% / 100% 100%;\n}\n\n.carousel-control-prev-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3e%3c/svg%3e\");\n}\n\n.carousel-control-next-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3e%3c/svg%3e\");\n}\n\n.carousel-indicators {\n position: absolute;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 15;\n display: flex;\n justify-content: center;\n padding-left: 0;\n margin-right: 15%;\n margin-left: 15%;\n list-style: none;\n}\n\n.carousel-indicators li {\n box-sizing: content-box;\n flex: 0 1 auto;\n width: 30px;\n height: 3px;\n margin-right: 3px;\n margin-left: 3px;\n text-indent: -999px;\n cursor: pointer;\n background-color: #fff;\n background-clip: padding-box;\n border-top: 10px solid transparent;\n border-bottom: 10px solid transparent;\n opacity: .5;\n transition: opacity 0.6s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-indicators li {\n transition: none;\n }\n}\n\n.carousel-indicators .active {\n opacity: 1;\n}\n\n.carousel-caption {\n position: absolute;\n right: 15%;\n bottom: 20px;\n left: 15%;\n z-index: 10;\n padding-top: 20px;\n padding-bottom: 20px;\n color: #fff;\n text-align: center;\n}\n\n@keyframes spinner-border {\n to {\n transform: rotate(360deg);\n }\n}\n\n.spinner-border {\n display: inline-block;\n width: 2rem;\n height: 2rem;\n vertical-align: text-bottom;\n border: 0.25em solid currentColor;\n border-right-color: transparent;\n border-radius: 50%;\n animation: spinner-border .75s linear infinite;\n}\n\n.spinner-border-sm {\n width: 1rem;\n height: 1rem;\n border-width: 0.2em;\n}\n\n@keyframes spinner-grow {\n 0% {\n transform: scale(0);\n }\n 50% {\n opacity: 1;\n }\n}\n\n.spinner-grow {\n display: inline-block;\n width: 2rem;\n height: 2rem;\n vertical-align: text-bottom;\n background-color: currentColor;\n border-radius: 50%;\n opacity: 0;\n animation: spinner-grow .75s linear infinite;\n}\n\n.spinner-grow-sm {\n width: 1rem;\n height: 1rem;\n}\n\n.align-baseline {\n vertical-align: baseline !important;\n}\n\n.align-top {\n vertical-align: top !important;\n}\n\n.align-middle {\n vertical-align: middle !important;\n}\n\n.align-bottom {\n vertical-align: bottom !important;\n}\n\n.align-text-bottom {\n vertical-align: text-bottom !important;\n}\n\n.align-text-top {\n vertical-align: text-top !important;\n}\n\n.bg-primary {\n background-color: #007bff !important;\n}\n\na.bg-primary:hover, a.bg-primary:focus,\nbutton.bg-primary:hover,\nbutton.bg-primary:focus {\n background-color: #0062cc !important;\n}\n\n.bg-secondary {\n background-color: #6c757d !important;\n}\n\na.bg-secondary:hover, a.bg-secondary:focus,\nbutton.bg-secondary:hover,\nbutton.bg-secondary:focus {\n background-color: #545b62 !important;\n}\n\n.bg-success {\n background-color: #28a745 !important;\n}\n\na.bg-success:hover, a.bg-success:focus,\nbutton.bg-success:hover,\nbutton.bg-success:focus {\n background-color: #1e7e34 !important;\n}\n\n.bg-info {\n background-color: #17a2b8 !important;\n}\n\na.bg-info:hover, a.bg-info:focus,\nbutton.bg-info:hover,\nbutton.bg-info:focus {\n background-color: #117a8b !important;\n}\n\n.bg-warning {\n background-color: #ffc107 !important;\n}\n\na.bg-warning:hover, a.bg-warning:focus,\nbutton.bg-warning:hover,\nbutton.bg-warning:focus {\n background-color: #d39e00 !important;\n}\n\n.bg-danger {\n background-color: #dc3545 !important;\n}\n\na.bg-danger:hover, a.bg-danger:focus,\nbutton.bg-danger:hover,\nbutton.bg-danger:focus {\n background-color: #bd2130 !important;\n}\n\n.bg-light {\n background-color: #f8f9fa !important;\n}\n\na.bg-light:hover, a.bg-light:focus,\nbutton.bg-light:hover,\nbutton.bg-light:focus {\n background-color: #dae0e5 !important;\n}\n\n.bg-dark {\n background-color: #343a40 !important;\n}\n\na.bg-dark:hover, a.bg-dark:focus,\nbutton.bg-dark:hover,\nbutton.bg-dark:focus {\n background-color: #1d2124 !important;\n}\n\n.bg-white {\n background-color: #fff !important;\n}\n\n.bg-transparent {\n background-color: transparent !important;\n}\n\n.border {\n border: 1px solid #dee2e6 !important;\n}\n\n.border-top {\n border-top: 1px solid #dee2e6 !important;\n}\n\n.border-right {\n border-right: 1px solid #dee2e6 !important;\n}\n\n.border-bottom {\n border-bottom: 1px solid #dee2e6 !important;\n}\n\n.border-left {\n border-left: 1px solid #dee2e6 !important;\n}\n\n.border-0 {\n border: 0 !important;\n}\n\n.border-top-0 {\n border-top: 0 !important;\n}\n\n.border-right-0 {\n border-right: 0 !important;\n}\n\n.border-bottom-0 {\n border-bottom: 0 !important;\n}\n\n.border-left-0 {\n border-left: 0 !important;\n}\n\n.border-primary {\n border-color: #007bff !important;\n}\n\n.border-secondary {\n border-color: #6c757d !important;\n}\n\n.border-success {\n border-color: #28a745 !important;\n}\n\n.border-info {\n border-color: #17a2b8 !important;\n}\n\n.border-warning {\n border-color: #ffc107 !important;\n}\n\n.border-danger {\n border-color: #dc3545 !important;\n}\n\n.border-light {\n border-color: #f8f9fa !important;\n}\n\n.border-dark {\n border-color: #343a40 !important;\n}\n\n.border-white {\n border-color: #fff !important;\n}\n\n.rounded-sm {\n border-radius: 0.2rem !important;\n}\n\n.rounded {\n border-radius: 0.25rem !important;\n}\n\n.rounded-top {\n border-top-left-radius: 0.25rem !important;\n border-top-right-radius: 0.25rem !important;\n}\n\n.rounded-right {\n border-top-right-radius: 0.25rem !important;\n border-bottom-right-radius: 0.25rem !important;\n}\n\n.rounded-bottom {\n border-bottom-right-radius: 0.25rem !important;\n border-bottom-left-radius: 0.25rem !important;\n}\n\n.rounded-left {\n border-top-left-radius: 0.25rem !important;\n border-bottom-left-radius: 0.25rem !important;\n}\n\n.rounded-lg {\n border-radius: 0.3rem !important;\n}\n\n.rounded-circle {\n border-radius: 50% !important;\n}\n\n.rounded-pill {\n border-radius: 50rem !important;\n}\n\n.rounded-0 {\n border-radius: 0 !important;\n}\n\n.clearfix::after {\n display: block;\n clear: both;\n content: \"\";\n}\n\n.d-none {\n display: none !important;\n}\n\n.d-inline {\n display: inline !important;\n}\n\n.d-inline-block {\n display: inline-block !important;\n}\n\n.d-block {\n display: block !important;\n}\n\n.d-table {\n display: table !important;\n}\n\n.d-table-row {\n display: table-row !important;\n}\n\n.d-table-cell {\n display: table-cell !important;\n}\n\n.d-flex {\n display: flex !important;\n}\n\n.d-inline-flex {\n display: inline-flex !important;\n}\n\n@media (min-width: 576px) {\n .d-sm-none {\n display: none !important;\n }\n .d-sm-inline {\n display: inline !important;\n }\n .d-sm-inline-block {\n display: inline-block !important;\n }\n .d-sm-block {\n display: block !important;\n }\n .d-sm-table {\n display: table !important;\n }\n .d-sm-table-row {\n display: table-row !important;\n }\n .d-sm-table-cell {\n display: table-cell !important;\n }\n .d-sm-flex {\n display: flex !important;\n }\n .d-sm-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 768px) {\n .d-md-none {\n display: none !important;\n }\n .d-md-inline {\n display: inline !important;\n }\n .d-md-inline-block {\n display: inline-block !important;\n }\n .d-md-block {\n display: block !important;\n }\n .d-md-table {\n display: table !important;\n }\n .d-md-table-row {\n display: table-row !important;\n }\n .d-md-table-cell {\n display: table-cell !important;\n }\n .d-md-flex {\n display: flex !important;\n }\n .d-md-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 992px) {\n .d-lg-none {\n display: none !important;\n }\n .d-lg-inline {\n display: inline !important;\n }\n .d-lg-inline-block {\n display: inline-block !important;\n }\n .d-lg-block {\n display: block !important;\n }\n .d-lg-table {\n display: table !important;\n }\n .d-lg-table-row {\n display: table-row !important;\n }\n .d-lg-table-cell {\n display: table-cell !important;\n }\n .d-lg-flex {\n display: flex !important;\n }\n .d-lg-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 1200px) {\n .d-xl-none {\n display: none !important;\n }\n .d-xl-inline {\n display: inline !important;\n }\n .d-xl-inline-block {\n display: inline-block !important;\n }\n .d-xl-block {\n display: block !important;\n }\n .d-xl-table {\n display: table !important;\n }\n .d-xl-table-row {\n display: table-row !important;\n }\n .d-xl-table-cell {\n display: table-cell !important;\n }\n .d-xl-flex {\n display: flex !important;\n }\n .d-xl-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media print {\n .d-print-none {\n display: none !important;\n }\n .d-print-inline {\n display: inline !important;\n }\n .d-print-inline-block {\n display: inline-block !important;\n }\n .d-print-block {\n display: block !important;\n }\n .d-print-table {\n display: table !important;\n }\n .d-print-table-row {\n display: table-row !important;\n }\n .d-print-table-cell {\n display: table-cell !important;\n }\n .d-print-flex {\n display: flex !important;\n }\n .d-print-inline-flex {\n display: inline-flex !important;\n }\n}\n\n.embed-responsive {\n position: relative;\n display: block;\n width: 100%;\n padding: 0;\n overflow: hidden;\n}\n\n.embed-responsive::before {\n display: block;\n content: \"\";\n}\n\n.embed-responsive .embed-responsive-item,\n.embed-responsive iframe,\n.embed-responsive embed,\n.embed-responsive object,\n.embed-responsive video {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border: 0;\n}\n\n.embed-responsive-21by9::before {\n padding-top: 42.857143%;\n}\n\n.embed-responsive-16by9::before {\n padding-top: 56.25%;\n}\n\n.embed-responsive-4by3::before {\n padding-top: 75%;\n}\n\n.embed-responsive-1by1::before {\n padding-top: 100%;\n}\n\n.flex-row {\n flex-direction: row !important;\n}\n\n.flex-column {\n flex-direction: column !important;\n}\n\n.flex-row-reverse {\n flex-direction: row-reverse !important;\n}\n\n.flex-column-reverse {\n flex-direction: column-reverse !important;\n}\n\n.flex-wrap {\n flex-wrap: wrap !important;\n}\n\n.flex-nowrap {\n flex-wrap: nowrap !important;\n}\n\n.flex-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n}\n\n.flex-fill {\n flex: 1 1 auto !important;\n}\n\n.flex-grow-0 {\n flex-grow: 0 !important;\n}\n\n.flex-grow-1 {\n flex-grow: 1 !important;\n}\n\n.flex-shrink-0 {\n flex-shrink: 0 !important;\n}\n\n.flex-shrink-1 {\n flex-shrink: 1 !important;\n}\n\n.justify-content-start {\n justify-content: flex-start !important;\n}\n\n.justify-content-end {\n justify-content: flex-end !important;\n}\n\n.justify-content-center {\n justify-content: center !important;\n}\n\n.justify-content-between {\n justify-content: space-between !important;\n}\n\n.justify-content-around {\n justify-content: space-around !important;\n}\n\n.align-items-start {\n align-items: flex-start !important;\n}\n\n.align-items-end {\n align-items: flex-end !important;\n}\n\n.align-items-center {\n align-items: center !important;\n}\n\n.align-items-baseline {\n align-items: baseline !important;\n}\n\n.align-items-stretch {\n align-items: stretch !important;\n}\n\n.align-content-start {\n align-content: flex-start !important;\n}\n\n.align-content-end {\n align-content: flex-end !important;\n}\n\n.align-content-center {\n align-content: center !important;\n}\n\n.align-content-between {\n align-content: space-between !important;\n}\n\n.align-content-around {\n align-content: space-around !important;\n}\n\n.align-content-stretch {\n align-content: stretch !important;\n}\n\n.align-self-auto {\n align-self: auto !important;\n}\n\n.align-self-start {\n align-self: flex-start !important;\n}\n\n.align-self-end {\n align-self: flex-end !important;\n}\n\n.align-self-center {\n align-self: center !important;\n}\n\n.align-self-baseline {\n align-self: baseline !important;\n}\n\n.align-self-stretch {\n align-self: stretch !important;\n}\n\n@media (min-width: 576px) {\n .flex-sm-row {\n flex-direction: row !important;\n }\n .flex-sm-column {\n flex-direction: column !important;\n }\n .flex-sm-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-sm-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-sm-wrap {\n flex-wrap: wrap !important;\n }\n .flex-sm-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-sm-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-sm-fill {\n flex: 1 1 auto !important;\n }\n .flex-sm-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-sm-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-sm-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-sm-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-sm-start {\n justify-content: flex-start !important;\n }\n .justify-content-sm-end {\n justify-content: flex-end !important;\n }\n .justify-content-sm-center {\n justify-content: center !important;\n }\n .justify-content-sm-between {\n justify-content: space-between !important;\n }\n .justify-content-sm-around {\n justify-content: space-around !important;\n }\n .align-items-sm-start {\n align-items: flex-start !important;\n }\n .align-items-sm-end {\n align-items: flex-end !important;\n }\n .align-items-sm-center {\n align-items: center !important;\n }\n .align-items-sm-baseline {\n align-items: baseline !important;\n }\n .align-items-sm-stretch {\n align-items: stretch !important;\n }\n .align-content-sm-start {\n align-content: flex-start !important;\n }\n .align-content-sm-end {\n align-content: flex-end !important;\n }\n .align-content-sm-center {\n align-content: center !important;\n }\n .align-content-sm-between {\n align-content: space-between !important;\n }\n .align-content-sm-around {\n align-content: space-around !important;\n }\n .align-content-sm-stretch {\n align-content: stretch !important;\n }\n .align-self-sm-auto {\n align-self: auto !important;\n }\n .align-self-sm-start {\n align-self: flex-start !important;\n }\n .align-self-sm-end {\n align-self: flex-end !important;\n }\n .align-self-sm-center {\n align-self: center !important;\n }\n .align-self-sm-baseline {\n align-self: baseline !important;\n }\n .align-self-sm-stretch {\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 768px) {\n .flex-md-row {\n flex-direction: row !important;\n }\n .flex-md-column {\n flex-direction: column !important;\n }\n .flex-md-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-md-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-md-wrap {\n flex-wrap: wrap !important;\n }\n .flex-md-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-md-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-md-fill {\n flex: 1 1 auto !important;\n }\n .flex-md-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-md-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-md-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-md-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-md-start {\n justify-content: flex-start !important;\n }\n .justify-content-md-end {\n justify-content: flex-end !important;\n }\n .justify-content-md-center {\n justify-content: center !important;\n }\n .justify-content-md-between {\n justify-content: space-between !important;\n }\n .justify-content-md-around {\n justify-content: space-around !important;\n }\n .align-items-md-start {\n align-items: flex-start !important;\n }\n .align-items-md-end {\n align-items: flex-end !important;\n }\n .align-items-md-center {\n align-items: center !important;\n }\n .align-items-md-baseline {\n align-items: baseline !important;\n }\n .align-items-md-stretch {\n align-items: stretch !important;\n }\n .align-content-md-start {\n align-content: flex-start !important;\n }\n .align-content-md-end {\n align-content: flex-end !important;\n }\n .align-content-md-center {\n align-content: center !important;\n }\n .align-content-md-between {\n align-content: space-between !important;\n }\n .align-content-md-around {\n align-content: space-around !important;\n }\n .align-content-md-stretch {\n align-content: stretch !important;\n }\n .align-self-md-auto {\n align-self: auto !important;\n }\n .align-self-md-start {\n align-self: flex-start !important;\n }\n .align-self-md-end {\n align-self: flex-end !important;\n }\n .align-self-md-center {\n align-self: center !important;\n }\n .align-self-md-baseline {\n align-self: baseline !important;\n }\n .align-self-md-stretch {\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 992px) {\n .flex-lg-row {\n flex-direction: row !important;\n }\n .flex-lg-column {\n flex-direction: column !important;\n }\n .flex-lg-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-lg-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-lg-wrap {\n flex-wrap: wrap !important;\n }\n .flex-lg-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-lg-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-lg-fill {\n flex: 1 1 auto !important;\n }\n .flex-lg-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-lg-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-lg-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-lg-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-lg-start {\n justify-content: flex-start !important;\n }\n .justify-content-lg-end {\n justify-content: flex-end !important;\n }\n .justify-content-lg-center {\n justify-content: center !important;\n }\n .justify-content-lg-between {\n justify-content: space-between !important;\n }\n .justify-content-lg-around {\n justify-content: space-around !important;\n }\n .align-items-lg-start {\n align-items: flex-start !important;\n }\n .align-items-lg-end {\n align-items: flex-end !important;\n }\n .align-items-lg-center {\n align-items: center !important;\n }\n .align-items-lg-baseline {\n align-items: baseline !important;\n }\n .align-items-lg-stretch {\n align-items: stretch !important;\n }\n .align-content-lg-start {\n align-content: flex-start !important;\n }\n .align-content-lg-end {\n align-content: flex-end !important;\n }\n .align-content-lg-center {\n align-content: center !important;\n }\n .align-content-lg-between {\n align-content: space-between !important;\n }\n .align-content-lg-around {\n align-content: space-around !important;\n }\n .align-content-lg-stretch {\n align-content: stretch !important;\n }\n .align-self-lg-auto {\n align-self: auto !important;\n }\n .align-self-lg-start {\n align-self: flex-start !important;\n }\n .align-self-lg-end {\n align-self: flex-end !important;\n }\n .align-self-lg-center {\n align-self: center !important;\n }\n .align-self-lg-baseline {\n align-self: baseline !important;\n }\n .align-self-lg-stretch {\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 1200px) {\n .flex-xl-row {\n flex-direction: row !important;\n }\n .flex-xl-column {\n flex-direction: column !important;\n }\n .flex-xl-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-xl-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-xl-wrap {\n flex-wrap: wrap !important;\n }\n .flex-xl-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-xl-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-xl-fill {\n flex: 1 1 auto !important;\n }\n .flex-xl-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-xl-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-xl-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-xl-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-xl-start {\n justify-content: flex-start !important;\n }\n .justify-content-xl-end {\n justify-content: flex-end !important;\n }\n .justify-content-xl-center {\n justify-content: center !important;\n }\n .justify-content-xl-between {\n justify-content: space-between !important;\n }\n .justify-content-xl-around {\n justify-content: space-around !important;\n }\n .align-items-xl-start {\n align-items: flex-start !important;\n }\n .align-items-xl-end {\n align-items: flex-end !important;\n }\n .align-items-xl-center {\n align-items: center !important;\n }\n .align-items-xl-baseline {\n align-items: baseline !important;\n }\n .align-items-xl-stretch {\n align-items: stretch !important;\n }\n .align-content-xl-start {\n align-content: flex-start !important;\n }\n .align-content-xl-end {\n align-content: flex-end !important;\n }\n .align-content-xl-center {\n align-content: center !important;\n }\n .align-content-xl-between {\n align-content: space-between !important;\n }\n .align-content-xl-around {\n align-content: space-around !important;\n }\n .align-content-xl-stretch {\n align-content: stretch !important;\n }\n .align-self-xl-auto {\n align-self: auto !important;\n }\n .align-self-xl-start {\n align-self: flex-start !important;\n }\n .align-self-xl-end {\n align-self: flex-end !important;\n }\n .align-self-xl-center {\n align-self: center !important;\n }\n .align-self-xl-baseline {\n align-self: baseline !important;\n }\n .align-self-xl-stretch {\n align-self: stretch !important;\n }\n}\n\n.float-left {\n float: left !important;\n}\n\n.float-right {\n float: right !important;\n}\n\n.float-none {\n float: none !important;\n}\n\n@media (min-width: 576px) {\n .float-sm-left {\n float: left !important;\n }\n .float-sm-right {\n float: right !important;\n }\n .float-sm-none {\n float: none !important;\n }\n}\n\n@media (min-width: 768px) {\n .float-md-left {\n float: left !important;\n }\n .float-md-right {\n float: right !important;\n }\n .float-md-none {\n float: none !important;\n }\n}\n\n@media (min-width: 992px) {\n .float-lg-left {\n float: left !important;\n }\n .float-lg-right {\n float: right !important;\n }\n .float-lg-none {\n float: none !important;\n }\n}\n\n@media (min-width: 1200px) {\n .float-xl-left {\n float: left !important;\n }\n .float-xl-right {\n float: right !important;\n }\n .float-xl-none {\n float: none !important;\n }\n}\n\n.overflow-auto {\n overflow: auto !important;\n}\n\n.overflow-hidden {\n overflow: hidden !important;\n}\n\n.position-static {\n position: static !important;\n}\n\n.position-relative {\n position: relative !important;\n}\n\n.position-absolute {\n position: absolute !important;\n}\n\n.position-fixed {\n position: fixed !important;\n}\n\n.position-sticky {\n position: sticky !important;\n}\n\n.fixed-top {\n position: fixed;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1030;\n}\n\n.fixed-bottom {\n position: fixed;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1030;\n}\n\n@supports (position: sticky) {\n .sticky-top {\n position: sticky;\n top: 0;\n z-index: 1020;\n }\n}\n\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n}\n\n.sr-only-focusable:active, .sr-only-focusable:focus {\n position: static;\n width: auto;\n height: auto;\n overflow: visible;\n clip: auto;\n white-space: normal;\n}\n\n.shadow-sm {\n box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important;\n}\n\n.shadow {\n box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important;\n}\n\n.shadow-lg {\n box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important;\n}\n\n.shadow-none {\n box-shadow: none !important;\n}\n\n.w-25 {\n width: 25% !important;\n}\n\n.w-50 {\n width: 50% !important;\n}\n\n.w-75 {\n width: 75% !important;\n}\n\n.w-100 {\n width: 100% !important;\n}\n\n.w-auto {\n width: auto !important;\n}\n\n.h-25 {\n height: 25% !important;\n}\n\n.h-50 {\n height: 50% !important;\n}\n\n.h-75 {\n height: 75% !important;\n}\n\n.h-100 {\n height: 100% !important;\n}\n\n.h-auto {\n height: auto !important;\n}\n\n.mw-100 {\n max-width: 100% !important;\n}\n\n.mh-100 {\n max-height: 100% !important;\n}\n\n.min-vw-100 {\n min-width: 100vw !important;\n}\n\n.min-vh-100 {\n min-height: 100vh !important;\n}\n\n.vw-100 {\n width: 100vw !important;\n}\n\n.vh-100 {\n height: 100vh !important;\n}\n\n.stretched-link::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1;\n pointer-events: auto;\n content: \"\";\n background-color: rgba(0, 0, 0, 0);\n}\n\n.m-0 {\n margin: 0 !important;\n}\n\n.mt-0,\n.my-0 {\n margin-top: 0 !important;\n}\n\n.mr-0,\n.mx-0 {\n margin-right: 0 !important;\n}\n\n.mb-0,\n.my-0 {\n margin-bottom: 0 !important;\n}\n\n.ml-0,\n.mx-0 {\n margin-left: 0 !important;\n}\n\n.m-1 {\n margin: 0.25rem !important;\n}\n\n.mt-1,\n.my-1 {\n margin-top: 0.25rem !important;\n}\n\n.mr-1,\n.mx-1 {\n margin-right: 0.25rem !important;\n}\n\n.mb-1,\n.my-1 {\n margin-bottom: 0.25rem !important;\n}\n\n.ml-1,\n.mx-1 {\n margin-left: 0.25rem !important;\n}\n\n.m-2 {\n margin: 0.5rem !important;\n}\n\n.mt-2,\n.my-2 {\n margin-top: 0.5rem !important;\n}\n\n.mr-2,\n.mx-2 {\n margin-right: 0.5rem !important;\n}\n\n.mb-2,\n.my-2 {\n margin-bottom: 0.5rem !important;\n}\n\n.ml-2,\n.mx-2 {\n margin-left: 0.5rem !important;\n}\n\n.m-3 {\n margin: 1rem !important;\n}\n\n.mt-3,\n.my-3 {\n margin-top: 1rem !important;\n}\n\n.mr-3,\n.mx-3 {\n margin-right: 1rem !important;\n}\n\n.mb-3,\n.my-3 {\n margin-bottom: 1rem !important;\n}\n\n.ml-3,\n.mx-3 {\n margin-left: 1rem !important;\n}\n\n.m-4 {\n margin: 1.5rem !important;\n}\n\n.mt-4,\n.my-4 {\n margin-top: 1.5rem !important;\n}\n\n.mr-4,\n.mx-4 {\n margin-right: 1.5rem !important;\n}\n\n.mb-4,\n.my-4 {\n margin-bottom: 1.5rem !important;\n}\n\n.ml-4,\n.mx-4 {\n margin-left: 1.5rem !important;\n}\n\n.m-5 {\n margin: 3rem !important;\n}\n\n.mt-5,\n.my-5 {\n margin-top: 3rem !important;\n}\n\n.mr-5,\n.mx-5 {\n margin-right: 3rem !important;\n}\n\n.mb-5,\n.my-5 {\n margin-bottom: 3rem !important;\n}\n\n.ml-5,\n.mx-5 {\n margin-left: 3rem !important;\n}\n\n.p-0 {\n padding: 0 !important;\n}\n\n.pt-0,\n.py-0 {\n padding-top: 0 !important;\n}\n\n.pr-0,\n.px-0 {\n padding-right: 0 !important;\n}\n\n.pb-0,\n.py-0 {\n padding-bottom: 0 !important;\n}\n\n.pl-0,\n.px-0 {\n padding-left: 0 !important;\n}\n\n.p-1 {\n padding: 0.25rem !important;\n}\n\n.pt-1,\n.py-1 {\n padding-top: 0.25rem !important;\n}\n\n.pr-1,\n.px-1 {\n padding-right: 0.25rem !important;\n}\n\n.pb-1,\n.py-1 {\n padding-bottom: 0.25rem !important;\n}\n\n.pl-1,\n.px-1 {\n padding-left: 0.25rem !important;\n}\n\n.p-2 {\n padding: 0.5rem !important;\n}\n\n.pt-2,\n.py-2 {\n padding-top: 0.5rem !important;\n}\n\n.pr-2,\n.px-2 {\n padding-right: 0.5rem !important;\n}\n\n.pb-2,\n.py-2 {\n padding-bottom: 0.5rem !important;\n}\n\n.pl-2,\n.px-2 {\n padding-left: 0.5rem !important;\n}\n\n.p-3 {\n padding: 1rem !important;\n}\n\n.pt-3,\n.py-3 {\n padding-top: 1rem !important;\n}\n\n.pr-3,\n.px-3 {\n padding-right: 1rem !important;\n}\n\n.pb-3,\n.py-3 {\n padding-bottom: 1rem !important;\n}\n\n.pl-3,\n.px-3 {\n padding-left: 1rem !important;\n}\n\n.p-4 {\n padding: 1.5rem !important;\n}\n\n.pt-4,\n.py-4 {\n padding-top: 1.5rem !important;\n}\n\n.pr-4,\n.px-4 {\n padding-right: 1.5rem !important;\n}\n\n.pb-4,\n.py-4 {\n padding-bottom: 1.5rem !important;\n}\n\n.pl-4,\n.px-4 {\n padding-left: 1.5rem !important;\n}\n\n.p-5 {\n padding: 3rem !important;\n}\n\n.pt-5,\n.py-5 {\n padding-top: 3rem !important;\n}\n\n.pr-5,\n.px-5 {\n padding-right: 3rem !important;\n}\n\n.pb-5,\n.py-5 {\n padding-bottom: 3rem !important;\n}\n\n.pl-5,\n.px-5 {\n padding-left: 3rem !important;\n}\n\n.m-n1 {\n margin: -0.25rem !important;\n}\n\n.mt-n1,\n.my-n1 {\n margin-top: -0.25rem !important;\n}\n\n.mr-n1,\n.mx-n1 {\n margin-right: -0.25rem !important;\n}\n\n.mb-n1,\n.my-n1 {\n margin-bottom: -0.25rem !important;\n}\n\n.ml-n1,\n.mx-n1 {\n margin-left: -0.25rem !important;\n}\n\n.m-n2 {\n margin: -0.5rem !important;\n}\n\n.mt-n2,\n.my-n2 {\n margin-top: -0.5rem !important;\n}\n\n.mr-n2,\n.mx-n2 {\n margin-right: -0.5rem !important;\n}\n\n.mb-n2,\n.my-n2 {\n margin-bottom: -0.5rem !important;\n}\n\n.ml-n2,\n.mx-n2 {\n margin-left: -0.5rem !important;\n}\n\n.m-n3 {\n margin: -1rem !important;\n}\n\n.mt-n3,\n.my-n3 {\n margin-top: -1rem !important;\n}\n\n.mr-n3,\n.mx-n3 {\n margin-right: -1rem !important;\n}\n\n.mb-n3,\n.my-n3 {\n margin-bottom: -1rem !important;\n}\n\n.ml-n3,\n.mx-n3 {\n margin-left: -1rem !important;\n}\n\n.m-n4 {\n margin: -1.5rem !important;\n}\n\n.mt-n4,\n.my-n4 {\n margin-top: -1.5rem !important;\n}\n\n.mr-n4,\n.mx-n4 {\n margin-right: -1.5rem !important;\n}\n\n.mb-n4,\n.my-n4 {\n margin-bottom: -1.5rem !important;\n}\n\n.ml-n4,\n.mx-n4 {\n margin-left: -1.5rem !important;\n}\n\n.m-n5 {\n margin: -3rem !important;\n}\n\n.mt-n5,\n.my-n5 {\n margin-top: -3rem !important;\n}\n\n.mr-n5,\n.mx-n5 {\n margin-right: -3rem !important;\n}\n\n.mb-n5,\n.my-n5 {\n margin-bottom: -3rem !important;\n}\n\n.ml-n5,\n.mx-n5 {\n margin-left: -3rem !important;\n}\n\n.m-auto {\n margin: auto !important;\n}\n\n.mt-auto,\n.my-auto {\n margin-top: auto !important;\n}\n\n.mr-auto,\n.mx-auto {\n margin-right: auto !important;\n}\n\n.mb-auto,\n.my-auto {\n margin-bottom: auto !important;\n}\n\n.ml-auto,\n.mx-auto {\n margin-left: auto !important;\n}\n\n@media (min-width: 576px) {\n .m-sm-0 {\n margin: 0 !important;\n }\n .mt-sm-0,\n .my-sm-0 {\n margin-top: 0 !important;\n }\n .mr-sm-0,\n .mx-sm-0 {\n margin-right: 0 !important;\n }\n .mb-sm-0,\n .my-sm-0 {\n margin-bottom: 0 !important;\n }\n .ml-sm-0,\n .mx-sm-0 {\n margin-left: 0 !important;\n }\n .m-sm-1 {\n margin: 0.25rem !important;\n }\n .mt-sm-1,\n .my-sm-1 {\n margin-top: 0.25rem !important;\n }\n .mr-sm-1,\n .mx-sm-1 {\n margin-right: 0.25rem !important;\n }\n .mb-sm-1,\n .my-sm-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-sm-1,\n .mx-sm-1 {\n margin-left: 0.25rem !important;\n }\n .m-sm-2 {\n margin: 0.5rem !important;\n }\n .mt-sm-2,\n .my-sm-2 {\n margin-top: 0.5rem !important;\n }\n .mr-sm-2,\n .mx-sm-2 {\n margin-right: 0.5rem !important;\n }\n .mb-sm-2,\n .my-sm-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-sm-2,\n .mx-sm-2 {\n margin-left: 0.5rem !important;\n }\n .m-sm-3 {\n margin: 1rem !important;\n }\n .mt-sm-3,\n .my-sm-3 {\n margin-top: 1rem !important;\n }\n .mr-sm-3,\n .mx-sm-3 {\n margin-right: 1rem !important;\n }\n .mb-sm-3,\n .my-sm-3 {\n margin-bottom: 1rem !important;\n }\n .ml-sm-3,\n .mx-sm-3 {\n margin-left: 1rem !important;\n }\n .m-sm-4 {\n margin: 1.5rem !important;\n }\n .mt-sm-4,\n .my-sm-4 {\n margin-top: 1.5rem !important;\n }\n .mr-sm-4,\n .mx-sm-4 {\n margin-right: 1.5rem !important;\n }\n .mb-sm-4,\n .my-sm-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-sm-4,\n .mx-sm-4 {\n margin-left: 1.5rem !important;\n }\n .m-sm-5 {\n margin: 3rem !important;\n }\n .mt-sm-5,\n .my-sm-5 {\n margin-top: 3rem !important;\n }\n .mr-sm-5,\n .mx-sm-5 {\n margin-right: 3rem !important;\n }\n .mb-sm-5,\n .my-sm-5 {\n margin-bottom: 3rem !important;\n }\n .ml-sm-5,\n .mx-sm-5 {\n margin-left: 3rem !important;\n }\n .p-sm-0 {\n padding: 0 !important;\n }\n .pt-sm-0,\n .py-sm-0 {\n padding-top: 0 !important;\n }\n .pr-sm-0,\n .px-sm-0 {\n padding-right: 0 !important;\n }\n .pb-sm-0,\n .py-sm-0 {\n padding-bottom: 0 !important;\n }\n .pl-sm-0,\n .px-sm-0 {\n padding-left: 0 !important;\n }\n .p-sm-1 {\n padding: 0.25rem !important;\n }\n .pt-sm-1,\n .py-sm-1 {\n padding-top: 0.25rem !important;\n }\n .pr-sm-1,\n .px-sm-1 {\n padding-right: 0.25rem !important;\n }\n .pb-sm-1,\n .py-sm-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-sm-1,\n .px-sm-1 {\n padding-left: 0.25rem !important;\n }\n .p-sm-2 {\n padding: 0.5rem !important;\n }\n .pt-sm-2,\n .py-sm-2 {\n padding-top: 0.5rem !important;\n }\n .pr-sm-2,\n .px-sm-2 {\n padding-right: 0.5rem !important;\n }\n .pb-sm-2,\n .py-sm-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-sm-2,\n .px-sm-2 {\n padding-left: 0.5rem !important;\n }\n .p-sm-3 {\n padding: 1rem !important;\n }\n .pt-sm-3,\n .py-sm-3 {\n padding-top: 1rem !important;\n }\n .pr-sm-3,\n .px-sm-3 {\n padding-right: 1rem !important;\n }\n .pb-sm-3,\n .py-sm-3 {\n padding-bottom: 1rem !important;\n }\n .pl-sm-3,\n .px-sm-3 {\n padding-left: 1rem !important;\n }\n .p-sm-4 {\n padding: 1.5rem !important;\n }\n .pt-sm-4,\n .py-sm-4 {\n padding-top: 1.5rem !important;\n }\n .pr-sm-4,\n .px-sm-4 {\n padding-right: 1.5rem !important;\n }\n .pb-sm-4,\n .py-sm-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-sm-4,\n .px-sm-4 {\n padding-left: 1.5rem !important;\n }\n .p-sm-5 {\n padding: 3rem !important;\n }\n .pt-sm-5,\n .py-sm-5 {\n padding-top: 3rem !important;\n }\n .pr-sm-5,\n .px-sm-5 {\n padding-right: 3rem !important;\n }\n .pb-sm-5,\n .py-sm-5 {\n padding-bottom: 3rem !important;\n }\n .pl-sm-5,\n .px-sm-5 {\n padding-left: 3rem !important;\n }\n .m-sm-n1 {\n margin: -0.25rem !important;\n }\n .mt-sm-n1,\n .my-sm-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-sm-n1,\n .mx-sm-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-sm-n1,\n .my-sm-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-sm-n1,\n .mx-sm-n1 {\n margin-left: -0.25rem !important;\n }\n .m-sm-n2 {\n margin: -0.5rem !important;\n }\n .mt-sm-n2,\n .my-sm-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-sm-n2,\n .mx-sm-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-sm-n2,\n .my-sm-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-sm-n2,\n .mx-sm-n2 {\n margin-left: -0.5rem !important;\n }\n .m-sm-n3 {\n margin: -1rem !important;\n }\n .mt-sm-n3,\n .my-sm-n3 {\n margin-top: -1rem !important;\n }\n .mr-sm-n3,\n .mx-sm-n3 {\n margin-right: -1rem !important;\n }\n .mb-sm-n3,\n .my-sm-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-sm-n3,\n .mx-sm-n3 {\n margin-left: -1rem !important;\n }\n .m-sm-n4 {\n margin: -1.5rem !important;\n }\n .mt-sm-n4,\n .my-sm-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-sm-n4,\n .mx-sm-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-sm-n4,\n .my-sm-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-sm-n4,\n .mx-sm-n4 {\n margin-left: -1.5rem !important;\n }\n .m-sm-n5 {\n margin: -3rem !important;\n }\n .mt-sm-n5,\n .my-sm-n5 {\n margin-top: -3rem !important;\n }\n .mr-sm-n5,\n .mx-sm-n5 {\n margin-right: -3rem !important;\n }\n .mb-sm-n5,\n .my-sm-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-sm-n5,\n .mx-sm-n5 {\n margin-left: -3rem !important;\n }\n .m-sm-auto {\n margin: auto !important;\n }\n .mt-sm-auto,\n .my-sm-auto {\n margin-top: auto !important;\n }\n .mr-sm-auto,\n .mx-sm-auto {\n margin-right: auto !important;\n }\n .mb-sm-auto,\n .my-sm-auto {\n margin-bottom: auto !important;\n }\n .ml-sm-auto,\n .mx-sm-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 768px) {\n .m-md-0 {\n margin: 0 !important;\n }\n .mt-md-0,\n .my-md-0 {\n margin-top: 0 !important;\n }\n .mr-md-0,\n .mx-md-0 {\n margin-right: 0 !important;\n }\n .mb-md-0,\n .my-md-0 {\n margin-bottom: 0 !important;\n }\n .ml-md-0,\n .mx-md-0 {\n margin-left: 0 !important;\n }\n .m-md-1 {\n margin: 0.25rem !important;\n }\n .mt-md-1,\n .my-md-1 {\n margin-top: 0.25rem !important;\n }\n .mr-md-1,\n .mx-md-1 {\n margin-right: 0.25rem !important;\n }\n .mb-md-1,\n .my-md-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-md-1,\n .mx-md-1 {\n margin-left: 0.25rem !important;\n }\n .m-md-2 {\n margin: 0.5rem !important;\n }\n .mt-md-2,\n .my-md-2 {\n margin-top: 0.5rem !important;\n }\n .mr-md-2,\n .mx-md-2 {\n margin-right: 0.5rem !important;\n }\n .mb-md-2,\n .my-md-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-md-2,\n .mx-md-2 {\n margin-left: 0.5rem !important;\n }\n .m-md-3 {\n margin: 1rem !important;\n }\n .mt-md-3,\n .my-md-3 {\n margin-top: 1rem !important;\n }\n .mr-md-3,\n .mx-md-3 {\n margin-right: 1rem !important;\n }\n .mb-md-3,\n .my-md-3 {\n margin-bottom: 1rem !important;\n }\n .ml-md-3,\n .mx-md-3 {\n margin-left: 1rem !important;\n }\n .m-md-4 {\n margin: 1.5rem !important;\n }\n .mt-md-4,\n .my-md-4 {\n margin-top: 1.5rem !important;\n }\n .mr-md-4,\n .mx-md-4 {\n margin-right: 1.5rem !important;\n }\n .mb-md-4,\n .my-md-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-md-4,\n .mx-md-4 {\n margin-left: 1.5rem !important;\n }\n .m-md-5 {\n margin: 3rem !important;\n }\n .mt-md-5,\n .my-md-5 {\n margin-top: 3rem !important;\n }\n .mr-md-5,\n .mx-md-5 {\n margin-right: 3rem !important;\n }\n .mb-md-5,\n .my-md-5 {\n margin-bottom: 3rem !important;\n }\n .ml-md-5,\n .mx-md-5 {\n margin-left: 3rem !important;\n }\n .p-md-0 {\n padding: 0 !important;\n }\n .pt-md-0,\n .py-md-0 {\n padding-top: 0 !important;\n }\n .pr-md-0,\n .px-md-0 {\n padding-right: 0 !important;\n }\n .pb-md-0,\n .py-md-0 {\n padding-bottom: 0 !important;\n }\n .pl-md-0,\n .px-md-0 {\n padding-left: 0 !important;\n }\n .p-md-1 {\n padding: 0.25rem !important;\n }\n .pt-md-1,\n .py-md-1 {\n padding-top: 0.25rem !important;\n }\n .pr-md-1,\n .px-md-1 {\n padding-right: 0.25rem !important;\n }\n .pb-md-1,\n .py-md-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-md-1,\n .px-md-1 {\n padding-left: 0.25rem !important;\n }\n .p-md-2 {\n padding: 0.5rem !important;\n }\n .pt-md-2,\n .py-md-2 {\n padding-top: 0.5rem !important;\n }\n .pr-md-2,\n .px-md-2 {\n padding-right: 0.5rem !important;\n }\n .pb-md-2,\n .py-md-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-md-2,\n .px-md-2 {\n padding-left: 0.5rem !important;\n }\n .p-md-3 {\n padding: 1rem !important;\n }\n .pt-md-3,\n .py-md-3 {\n padding-top: 1rem !important;\n }\n .pr-md-3,\n .px-md-3 {\n padding-right: 1rem !important;\n }\n .pb-md-3,\n .py-md-3 {\n padding-bottom: 1rem !important;\n }\n .pl-md-3,\n .px-md-3 {\n padding-left: 1rem !important;\n }\n .p-md-4 {\n padding: 1.5rem !important;\n }\n .pt-md-4,\n .py-md-4 {\n padding-top: 1.5rem !important;\n }\n .pr-md-4,\n .px-md-4 {\n padding-right: 1.5rem !important;\n }\n .pb-md-4,\n .py-md-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-md-4,\n .px-md-4 {\n padding-left: 1.5rem !important;\n }\n .p-md-5 {\n padding: 3rem !important;\n }\n .pt-md-5,\n .py-md-5 {\n padding-top: 3rem !important;\n }\n .pr-md-5,\n .px-md-5 {\n padding-right: 3rem !important;\n }\n .pb-md-5,\n .py-md-5 {\n padding-bottom: 3rem !important;\n }\n .pl-md-5,\n .px-md-5 {\n padding-left: 3rem !important;\n }\n .m-md-n1 {\n margin: -0.25rem !important;\n }\n .mt-md-n1,\n .my-md-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-md-n1,\n .mx-md-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-md-n1,\n .my-md-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-md-n1,\n .mx-md-n1 {\n margin-left: -0.25rem !important;\n }\n .m-md-n2 {\n margin: -0.5rem !important;\n }\n .mt-md-n2,\n .my-md-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-md-n2,\n .mx-md-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-md-n2,\n .my-md-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-md-n2,\n .mx-md-n2 {\n margin-left: -0.5rem !important;\n }\n .m-md-n3 {\n margin: -1rem !important;\n }\n .mt-md-n3,\n .my-md-n3 {\n margin-top: -1rem !important;\n }\n .mr-md-n3,\n .mx-md-n3 {\n margin-right: -1rem !important;\n }\n .mb-md-n3,\n .my-md-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-md-n3,\n .mx-md-n3 {\n margin-left: -1rem !important;\n }\n .m-md-n4 {\n margin: -1.5rem !important;\n }\n .mt-md-n4,\n .my-md-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-md-n4,\n .mx-md-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-md-n4,\n .my-md-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-md-n4,\n .mx-md-n4 {\n margin-left: -1.5rem !important;\n }\n .m-md-n5 {\n margin: -3rem !important;\n }\n .mt-md-n5,\n .my-md-n5 {\n margin-top: -3rem !important;\n }\n .mr-md-n5,\n .mx-md-n5 {\n margin-right: -3rem !important;\n }\n .mb-md-n5,\n .my-md-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-md-n5,\n .mx-md-n5 {\n margin-left: -3rem !important;\n }\n .m-md-auto {\n margin: auto !important;\n }\n .mt-md-auto,\n .my-md-auto {\n margin-top: auto !important;\n }\n .mr-md-auto,\n .mx-md-auto {\n margin-right: auto !important;\n }\n .mb-md-auto,\n .my-md-auto {\n margin-bottom: auto !important;\n }\n .ml-md-auto,\n .mx-md-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 992px) {\n .m-lg-0 {\n margin: 0 !important;\n }\n .mt-lg-0,\n .my-lg-0 {\n margin-top: 0 !important;\n }\n .mr-lg-0,\n .mx-lg-0 {\n margin-right: 0 !important;\n }\n .mb-lg-0,\n .my-lg-0 {\n margin-bottom: 0 !important;\n }\n .ml-lg-0,\n .mx-lg-0 {\n margin-left: 0 !important;\n }\n .m-lg-1 {\n margin: 0.25rem !important;\n }\n .mt-lg-1,\n .my-lg-1 {\n margin-top: 0.25rem !important;\n }\n .mr-lg-1,\n .mx-lg-1 {\n margin-right: 0.25rem !important;\n }\n .mb-lg-1,\n .my-lg-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-lg-1,\n .mx-lg-1 {\n margin-left: 0.25rem !important;\n }\n .m-lg-2 {\n margin: 0.5rem !important;\n }\n .mt-lg-2,\n .my-lg-2 {\n margin-top: 0.5rem !important;\n }\n .mr-lg-2,\n .mx-lg-2 {\n margin-right: 0.5rem !important;\n }\n .mb-lg-2,\n .my-lg-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-lg-2,\n .mx-lg-2 {\n margin-left: 0.5rem !important;\n }\n .m-lg-3 {\n margin: 1rem !important;\n }\n .mt-lg-3,\n .my-lg-3 {\n margin-top: 1rem !important;\n }\n .mr-lg-3,\n .mx-lg-3 {\n margin-right: 1rem !important;\n }\n .mb-lg-3,\n .my-lg-3 {\n margin-bottom: 1rem !important;\n }\n .ml-lg-3,\n .mx-lg-3 {\n margin-left: 1rem !important;\n }\n .m-lg-4 {\n margin: 1.5rem !important;\n }\n .mt-lg-4,\n .my-lg-4 {\n margin-top: 1.5rem !important;\n }\n .mr-lg-4,\n .mx-lg-4 {\n margin-right: 1.5rem !important;\n }\n .mb-lg-4,\n .my-lg-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-lg-4,\n .mx-lg-4 {\n margin-left: 1.5rem !important;\n }\n .m-lg-5 {\n margin: 3rem !important;\n }\n .mt-lg-5,\n .my-lg-5 {\n margin-top: 3rem !important;\n }\n .mr-lg-5,\n .mx-lg-5 {\n margin-right: 3rem !important;\n }\n .mb-lg-5,\n .my-lg-5 {\n margin-bottom: 3rem !important;\n }\n .ml-lg-5,\n .mx-lg-5 {\n margin-left: 3rem !important;\n }\n .p-lg-0 {\n padding: 0 !important;\n }\n .pt-lg-0,\n .py-lg-0 {\n padding-top: 0 !important;\n }\n .pr-lg-0,\n .px-lg-0 {\n padding-right: 0 !important;\n }\n .pb-lg-0,\n .py-lg-0 {\n padding-bottom: 0 !important;\n }\n .pl-lg-0,\n .px-lg-0 {\n padding-left: 0 !important;\n }\n .p-lg-1 {\n padding: 0.25rem !important;\n }\n .pt-lg-1,\n .py-lg-1 {\n padding-top: 0.25rem !important;\n }\n .pr-lg-1,\n .px-lg-1 {\n padding-right: 0.25rem !important;\n }\n .pb-lg-1,\n .py-lg-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-lg-1,\n .px-lg-1 {\n padding-left: 0.25rem !important;\n }\n .p-lg-2 {\n padding: 0.5rem !important;\n }\n .pt-lg-2,\n .py-lg-2 {\n padding-top: 0.5rem !important;\n }\n .pr-lg-2,\n .px-lg-2 {\n padding-right: 0.5rem !important;\n }\n .pb-lg-2,\n .py-lg-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-lg-2,\n .px-lg-2 {\n padding-left: 0.5rem !important;\n }\n .p-lg-3 {\n padding: 1rem !important;\n }\n .pt-lg-3,\n .py-lg-3 {\n padding-top: 1rem !important;\n }\n .pr-lg-3,\n .px-lg-3 {\n padding-right: 1rem !important;\n }\n .pb-lg-3,\n .py-lg-3 {\n padding-bottom: 1rem !important;\n }\n .pl-lg-3,\n .px-lg-3 {\n padding-left: 1rem !important;\n }\n .p-lg-4 {\n padding: 1.5rem !important;\n }\n .pt-lg-4,\n .py-lg-4 {\n padding-top: 1.5rem !important;\n }\n .pr-lg-4,\n .px-lg-4 {\n padding-right: 1.5rem !important;\n }\n .pb-lg-4,\n .py-lg-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-lg-4,\n .px-lg-4 {\n padding-left: 1.5rem !important;\n }\n .p-lg-5 {\n padding: 3rem !important;\n }\n .pt-lg-5,\n .py-lg-5 {\n padding-top: 3rem !important;\n }\n .pr-lg-5,\n .px-lg-5 {\n padding-right: 3rem !important;\n }\n .pb-lg-5,\n .py-lg-5 {\n padding-bottom: 3rem !important;\n }\n .pl-lg-5,\n .px-lg-5 {\n padding-left: 3rem !important;\n }\n .m-lg-n1 {\n margin: -0.25rem !important;\n }\n .mt-lg-n1,\n .my-lg-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-lg-n1,\n .mx-lg-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-lg-n1,\n .my-lg-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-lg-n1,\n .mx-lg-n1 {\n margin-left: -0.25rem !important;\n }\n .m-lg-n2 {\n margin: -0.5rem !important;\n }\n .mt-lg-n2,\n .my-lg-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-lg-n2,\n .mx-lg-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-lg-n2,\n .my-lg-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-lg-n2,\n .mx-lg-n2 {\n margin-left: -0.5rem !important;\n }\n .m-lg-n3 {\n margin: -1rem !important;\n }\n .mt-lg-n3,\n .my-lg-n3 {\n margin-top: -1rem !important;\n }\n .mr-lg-n3,\n .mx-lg-n3 {\n margin-right: -1rem !important;\n }\n .mb-lg-n3,\n .my-lg-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-lg-n3,\n .mx-lg-n3 {\n margin-left: -1rem !important;\n }\n .m-lg-n4 {\n margin: -1.5rem !important;\n }\n .mt-lg-n4,\n .my-lg-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-lg-n4,\n .mx-lg-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-lg-n4,\n .my-lg-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-lg-n4,\n .mx-lg-n4 {\n margin-left: -1.5rem !important;\n }\n .m-lg-n5 {\n margin: -3rem !important;\n }\n .mt-lg-n5,\n .my-lg-n5 {\n margin-top: -3rem !important;\n }\n .mr-lg-n5,\n .mx-lg-n5 {\n margin-right: -3rem !important;\n }\n .mb-lg-n5,\n .my-lg-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-lg-n5,\n .mx-lg-n5 {\n margin-left: -3rem !important;\n }\n .m-lg-auto {\n margin: auto !important;\n }\n .mt-lg-auto,\n .my-lg-auto {\n margin-top: auto !important;\n }\n .mr-lg-auto,\n .mx-lg-auto {\n margin-right: auto !important;\n }\n .mb-lg-auto,\n .my-lg-auto {\n margin-bottom: auto !important;\n }\n .ml-lg-auto,\n .mx-lg-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 1200px) {\n .m-xl-0 {\n margin: 0 !important;\n }\n .mt-xl-0,\n .my-xl-0 {\n margin-top: 0 !important;\n }\n .mr-xl-0,\n .mx-xl-0 {\n margin-right: 0 !important;\n }\n .mb-xl-0,\n .my-xl-0 {\n margin-bottom: 0 !important;\n }\n .ml-xl-0,\n .mx-xl-0 {\n margin-left: 0 !important;\n }\n .m-xl-1 {\n margin: 0.25rem !important;\n }\n .mt-xl-1,\n .my-xl-1 {\n margin-top: 0.25rem !important;\n }\n .mr-xl-1,\n .mx-xl-1 {\n margin-right: 0.25rem !important;\n }\n .mb-xl-1,\n .my-xl-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-xl-1,\n .mx-xl-1 {\n margin-left: 0.25rem !important;\n }\n .m-xl-2 {\n margin: 0.5rem !important;\n }\n .mt-xl-2,\n .my-xl-2 {\n margin-top: 0.5rem !important;\n }\n .mr-xl-2,\n .mx-xl-2 {\n margin-right: 0.5rem !important;\n }\n .mb-xl-2,\n .my-xl-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-xl-2,\n .mx-xl-2 {\n margin-left: 0.5rem !important;\n }\n .m-xl-3 {\n margin: 1rem !important;\n }\n .mt-xl-3,\n .my-xl-3 {\n margin-top: 1rem !important;\n }\n .mr-xl-3,\n .mx-xl-3 {\n margin-right: 1rem !important;\n }\n .mb-xl-3,\n .my-xl-3 {\n margin-bottom: 1rem !important;\n }\n .ml-xl-3,\n .mx-xl-3 {\n margin-left: 1rem !important;\n }\n .m-xl-4 {\n margin: 1.5rem !important;\n }\n .mt-xl-4,\n .my-xl-4 {\n margin-top: 1.5rem !important;\n }\n .mr-xl-4,\n .mx-xl-4 {\n margin-right: 1.5rem !important;\n }\n .mb-xl-4,\n .my-xl-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-xl-4,\n .mx-xl-4 {\n margin-left: 1.5rem !important;\n }\n .m-xl-5 {\n margin: 3rem !important;\n }\n .mt-xl-5,\n .my-xl-5 {\n margin-top: 3rem !important;\n }\n .mr-xl-5,\n .mx-xl-5 {\n margin-right: 3rem !important;\n }\n .mb-xl-5,\n .my-xl-5 {\n margin-bottom: 3rem !important;\n }\n .ml-xl-5,\n .mx-xl-5 {\n margin-left: 3rem !important;\n }\n .p-xl-0 {\n padding: 0 !important;\n }\n .pt-xl-0,\n .py-xl-0 {\n padding-top: 0 !important;\n }\n .pr-xl-0,\n .px-xl-0 {\n padding-right: 0 !important;\n }\n .pb-xl-0,\n .py-xl-0 {\n padding-bottom: 0 !important;\n }\n .pl-xl-0,\n .px-xl-0 {\n padding-left: 0 !important;\n }\n .p-xl-1 {\n padding: 0.25rem !important;\n }\n .pt-xl-1,\n .py-xl-1 {\n padding-top: 0.25rem !important;\n }\n .pr-xl-1,\n .px-xl-1 {\n padding-right: 0.25rem !important;\n }\n .pb-xl-1,\n .py-xl-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-xl-1,\n .px-xl-1 {\n padding-left: 0.25rem !important;\n }\n .p-xl-2 {\n padding: 0.5rem !important;\n }\n .pt-xl-2,\n .py-xl-2 {\n padding-top: 0.5rem !important;\n }\n .pr-xl-2,\n .px-xl-2 {\n padding-right: 0.5rem !important;\n }\n .pb-xl-2,\n .py-xl-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-xl-2,\n .px-xl-2 {\n padding-left: 0.5rem !important;\n }\n .p-xl-3 {\n padding: 1rem !important;\n }\n .pt-xl-3,\n .py-xl-3 {\n padding-top: 1rem !important;\n }\n .pr-xl-3,\n .px-xl-3 {\n padding-right: 1rem !important;\n }\n .pb-xl-3,\n .py-xl-3 {\n padding-bottom: 1rem !important;\n }\n .pl-xl-3,\n .px-xl-3 {\n padding-left: 1rem !important;\n }\n .p-xl-4 {\n padding: 1.5rem !important;\n }\n .pt-xl-4,\n .py-xl-4 {\n padding-top: 1.5rem !important;\n }\n .pr-xl-4,\n .px-xl-4 {\n padding-right: 1.5rem !important;\n }\n .pb-xl-4,\n .py-xl-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-xl-4,\n .px-xl-4 {\n padding-left: 1.5rem !important;\n }\n .p-xl-5 {\n padding: 3rem !important;\n }\n .pt-xl-5,\n .py-xl-5 {\n padding-top: 3rem !important;\n }\n .pr-xl-5,\n .px-xl-5 {\n padding-right: 3rem !important;\n }\n .pb-xl-5,\n .py-xl-5 {\n padding-bottom: 3rem !important;\n }\n .pl-xl-5,\n .px-xl-5 {\n padding-left: 3rem !important;\n }\n .m-xl-n1 {\n margin: -0.25rem !important;\n }\n .mt-xl-n1,\n .my-xl-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-xl-n1,\n .mx-xl-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-xl-n1,\n .my-xl-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-xl-n1,\n .mx-xl-n1 {\n margin-left: -0.25rem !important;\n }\n .m-xl-n2 {\n margin: -0.5rem !important;\n }\n .mt-xl-n2,\n .my-xl-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-xl-n2,\n .mx-xl-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-xl-n2,\n .my-xl-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-xl-n2,\n .mx-xl-n2 {\n margin-left: -0.5rem !important;\n }\n .m-xl-n3 {\n margin: -1rem !important;\n }\n .mt-xl-n3,\n .my-xl-n3 {\n margin-top: -1rem !important;\n }\n .mr-xl-n3,\n .mx-xl-n3 {\n margin-right: -1rem !important;\n }\n .mb-xl-n3,\n .my-xl-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-xl-n3,\n .mx-xl-n3 {\n margin-left: -1rem !important;\n }\n .m-xl-n4 {\n margin: -1.5rem !important;\n }\n .mt-xl-n4,\n .my-xl-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-xl-n4,\n .mx-xl-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-xl-n4,\n .my-xl-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-xl-n4,\n .mx-xl-n4 {\n margin-left: -1.5rem !important;\n }\n .m-xl-n5 {\n margin: -3rem !important;\n }\n .mt-xl-n5,\n .my-xl-n5 {\n margin-top: -3rem !important;\n }\n .mr-xl-n5,\n .mx-xl-n5 {\n margin-right: -3rem !important;\n }\n .mb-xl-n5,\n .my-xl-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-xl-n5,\n .mx-xl-n5 {\n margin-left: -3rem !important;\n }\n .m-xl-auto {\n margin: auto !important;\n }\n .mt-xl-auto,\n .my-xl-auto {\n margin-top: auto !important;\n }\n .mr-xl-auto,\n .mx-xl-auto {\n margin-right: auto !important;\n }\n .mb-xl-auto,\n .my-xl-auto {\n margin-bottom: auto !important;\n }\n .ml-xl-auto,\n .mx-xl-auto {\n margin-left: auto !important;\n }\n}\n\n.text-monospace {\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace !important;\n}\n\n.text-justify {\n text-align: justify !important;\n}\n\n.text-wrap {\n white-space: normal !important;\n}\n\n.text-nowrap {\n white-space: nowrap !important;\n}\n\n.text-truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.text-left {\n text-align: left !important;\n}\n\n.text-right {\n text-align: right !important;\n}\n\n.text-center {\n text-align: center !important;\n}\n\n@media (min-width: 576px) {\n .text-sm-left {\n text-align: left !important;\n }\n .text-sm-right {\n text-align: right !important;\n }\n .text-sm-center {\n text-align: center !important;\n }\n}\n\n@media (min-width: 768px) {\n .text-md-left {\n text-align: left !important;\n }\n .text-md-right {\n text-align: right !important;\n }\n .text-md-center {\n text-align: center !important;\n }\n}\n\n@media (min-width: 992px) {\n .text-lg-left {\n text-align: left !important;\n }\n .text-lg-right {\n text-align: right !important;\n }\n .text-lg-center {\n text-align: center !important;\n }\n}\n\n@media (min-width: 1200px) {\n .text-xl-left {\n text-align: left !important;\n }\n .text-xl-right {\n text-align: right !important;\n }\n .text-xl-center {\n text-align: center !important;\n }\n}\n\n.text-lowercase {\n text-transform: lowercase !important;\n}\n\n.text-uppercase {\n text-transform: uppercase !important;\n}\n\n.text-capitalize {\n text-transform: capitalize !important;\n}\n\n.font-weight-light {\n font-weight: 300 !important;\n}\n\n.font-weight-lighter {\n font-weight: lighter !important;\n}\n\n.font-weight-normal {\n font-weight: 400 !important;\n}\n\n.font-weight-bold {\n font-weight: 700 !important;\n}\n\n.font-weight-bolder {\n font-weight: bolder !important;\n}\n\n.font-italic {\n font-style: italic !important;\n}\n\n.text-white {\n color: #fff !important;\n}\n\n.text-primary {\n color: #007bff !important;\n}\n\na.text-primary:hover, a.text-primary:focus {\n color: #0056b3 !important;\n}\n\n.text-secondary {\n color: #6c757d !important;\n}\n\na.text-secondary:hover, a.text-secondary:focus {\n color: #494f54 !important;\n}\n\n.text-success {\n color: #28a745 !important;\n}\n\na.text-success:hover, a.text-success:focus {\n color: #19692c !important;\n}\n\n.text-info {\n color: #17a2b8 !important;\n}\n\na.text-info:hover, a.text-info:focus {\n color: #0f6674 !important;\n}\n\n.text-warning {\n color: #ffc107 !important;\n}\n\na.text-warning:hover, a.text-warning:focus {\n color: #ba8b00 !important;\n}\n\n.text-danger {\n color: #dc3545 !important;\n}\n\na.text-danger:hover, a.text-danger:focus {\n color: #a71d2a !important;\n}\n\n.text-light {\n color: #f8f9fa !important;\n}\n\na.text-light:hover, a.text-light:focus {\n color: #cbd3da !important;\n}\n\n.text-dark {\n color: #343a40 !important;\n}\n\na.text-dark:hover, a.text-dark:focus {\n color: #121416 !important;\n}\n\n.text-body {\n color: #212529 !important;\n}\n\n.text-muted {\n color: #6c757d !important;\n}\n\n.text-black-50 {\n color: rgba(0, 0, 0, 0.5) !important;\n}\n\n.text-white-50 {\n color: rgba(255, 255, 255, 0.5) !important;\n}\n\n.text-hide {\n font: 0/0 a;\n color: transparent;\n text-shadow: none;\n background-color: transparent;\n border: 0;\n}\n\n.text-decoration-none {\n text-decoration: none !important;\n}\n\n.text-break {\n word-break: break-word !important;\n overflow-wrap: break-word !important;\n}\n\n.text-reset {\n color: inherit !important;\n}\n\n.visible {\n visibility: visible !important;\n}\n\n.invisible {\n visibility: hidden !important;\n}\n\n@media print {\n *,\n *::before,\n *::after {\n text-shadow: none !important;\n box-shadow: none !important;\n }\n a:not(.btn) {\n text-decoration: underline;\n }\n abbr[title]::after {\n content: \" (\" attr(title) \")\";\n }\n pre {\n white-space: pre-wrap !important;\n }\n pre,\n blockquote {\n border: 1px solid #adb5bd;\n page-break-inside: avoid;\n }\n thead {\n display: table-header-group;\n }\n tr,\n img {\n page-break-inside: avoid;\n }\n p,\n h2,\n h3 {\n orphans: 3;\n widows: 3;\n }\n h2,\n h3 {\n page-break-after: avoid;\n }\n @page {\n size: a3;\n }\n body {\n min-width: 992px !important;\n }\n .container {\n min-width: 992px !important;\n }\n .navbar {\n display: none;\n }\n .badge {\n border: 1px solid #000;\n }\n .table {\n border-collapse: collapse !important;\n }\n .table td,\n .table th {\n background-color: #fff !important;\n }\n .table-bordered th,\n .table-bordered td {\n border: 1px solid #dee2e6 !important;\n }\n .table-dark {\n color: inherit;\n }\n .table-dark th,\n .table-dark td,\n .table-dark thead th,\n .table-dark tbody + tbody {\n border-color: #dee2e6;\n }\n .table .thead-dark th {\n color: inherit;\n border-color: #dee2e6;\n }\n}\n\n/*# sourceMappingURL=bootstrap.css.map */","// Do not forget to update getting-started/theming.md!\n:root {\n // Custom variable values only support SassScript inside `#{}`.\n @each $color, $value in $colors {\n --#{$color}: #{$value};\n }\n\n @each $color, $value in $theme-colors {\n --#{$color}: #{$value};\n }\n\n @each $bp, $value in $grid-breakpoints {\n --breakpoint-#{$bp}: #{$value};\n }\n\n // Use `inspect` for lists so that quoted items keep the quotes.\n // See https://github.com/sass/sass/issues/2383#issuecomment-336349172\n --font-family-sans-serif: #{inspect($font-family-sans-serif)};\n --font-family-monospace: #{inspect($font-family-monospace)};\n}\n","// stylelint-disable at-rule-no-vendor-prefix, declaration-no-important, selector-no-qualifying-type, property-no-vendor-prefix\n\n// Reboot\n//\n// Normalization of HTML elements, manually forked from Normalize.css to remove\n// styles targeting irrelevant browsers while applying new styles.\n//\n// Normalize is licensed MIT. https://github.com/necolas/normalize.css\n\n\n// Document\n//\n// 1. Change from `box-sizing: content-box` so that `width` is not affected by `padding` or `border`.\n// 2. Change the default font family in all browsers.\n// 3. Correct the line height in all browsers.\n// 4. Prevent adjustments of font size after orientation changes in IE on Windows Phone and in iOS.\n// 5. Change the default tap highlight to be completely transparent in iOS.\n\n*,\n*::before,\n*::after {\n box-sizing: border-box; // 1\n}\n\nhtml {\n font-family: sans-serif; // 2\n line-height: 1.15; // 3\n -webkit-text-size-adjust: 100%; // 4\n -webkit-tap-highlight-color: rgba($black, 0); // 5\n}\n\n// Shim for \"new\" HTML5 structural elements to display correctly (IE10, older browsers)\n// TODO: remove in v5\n// stylelint-disable-next-line selector-list-comma-newline-after\narticle, aside, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block;\n}\n\n// Body\n//\n// 1. Remove the margin in all browsers.\n// 2. As a best practice, apply a default `background-color`.\n// 3. Set an explicit initial text-align value so that we can later use\n// the `inherit` value on things like `` elements.\n\nbody {\n margin: 0; // 1\n font-family: $font-family-base;\n @include font-size($font-size-base);\n font-weight: $font-weight-base;\n line-height: $line-height-base;\n color: $body-color;\n text-align: left; // 3\n background-color: $body-bg; // 2\n}\n\n// Future-proof rule: in browsers that support :focus-visible, suppress the focus outline\n// on elements that programmatically receive focus but wouldn't normally show a visible\n// focus outline. In general, this would mean that the outline is only applied if the\n// interaction that led to the element receiving programmatic focus was a keyboard interaction,\n// or the browser has somehow determined that the user is primarily a keyboard user and/or\n// wants focus outlines to always be presented.\n//\n// See https://developer.mozilla.org/en-US/docs/Web/CSS/:focus-visible\n// and https://developer.paciellogroup.com/blog/2018/03/focus-visible-and-backwards-compatibility/\n[tabindex=\"-1\"]:focus:not(:focus-visible) {\n outline: 0 !important;\n}\n\n\n// Content grouping\n//\n// 1. Add the correct box sizing in Firefox.\n// 2. Show the overflow in Edge and IE.\n\nhr {\n box-sizing: content-box; // 1\n height: 0; // 1\n overflow: visible; // 2\n}\n\n\n//\n// Typography\n//\n\n// Remove top margins from headings\n//\n// By default, `

`-`

` all receive top and bottom margins. We nuke the top\n// margin for easier control within type scales as it avoids margin collapsing.\n// stylelint-disable-next-line selector-list-comma-newline-after\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: $headings-margin-bottom;\n}\n\n// Reset margins on paragraphs\n//\n// Similarly, the top margin on `

`s get reset. However, we also reset the\n// bottom margin to use `rem` units instead of `em`.\np {\n margin-top: 0;\n margin-bottom: $paragraph-margin-bottom;\n}\n\n// Abbreviations\n//\n// 1. Duplicate behavior to the data-* attribute for our tooltip plugin\n// 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n// 3. Add explicit cursor to indicate changed behavior.\n// 4. Remove the bottom border in Firefox 39-.\n// 5. Prevent the text-decoration to be skipped.\n\nabbr[title],\nabbr[data-original-title] { // 1\n text-decoration: underline; // 2\n text-decoration: underline dotted; // 2\n cursor: help; // 3\n border-bottom: 0; // 4\n text-decoration-skip-ink: none; // 5\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: $dt-font-weight;\n}\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0; // Undo browser default\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\nb,\nstrong {\n font-weight: $font-weight-bolder; // Add the correct font weight in Chrome, Edge, and Safari\n}\n\nsmall {\n @include font-size(80%); // Add the correct font size in all browsers\n}\n\n//\n// Prevent `sub` and `sup` elements from affecting the line height in\n// all browsers.\n//\n\nsub,\nsup {\n position: relative;\n @include font-size(75%);\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub { bottom: -.25em; }\nsup { top: -.5em; }\n\n\n//\n// Links\n//\n\na {\n color: $link-color;\n text-decoration: $link-decoration;\n background-color: transparent; // Remove the gray background on active links in IE 10.\n\n @include hover() {\n color: $link-hover-color;\n text-decoration: $link-hover-decoration;\n }\n}\n\n// And undo these styles for placeholder links/named anchors (without href).\n// It would be more straightforward to just use a[href] in previous block, but that\n// causes specificity issues in many other styles that are too complex to fix.\n// See https://github.com/twbs/bootstrap/issues/19402\n\na:not([href]) {\n color: inherit;\n text-decoration: none;\n\n @include hover() {\n color: inherit;\n text-decoration: none;\n }\n}\n\n\n//\n// Code\n//\n\npre,\ncode,\nkbd,\nsamp {\n font-family: $font-family-monospace;\n @include font-size(1em); // Correct the odd `em` font sizing in all browsers.\n}\n\npre {\n // Remove browser default top margin\n margin-top: 0;\n // Reset browser default of `1em` to use `rem`s\n margin-bottom: 1rem;\n // Don't allow content to break outside\n overflow: auto;\n}\n\n\n//\n// Figures\n//\n\nfigure {\n // Apply a consistent margin strategy (matches our type styles).\n margin: 0 0 1rem;\n}\n\n\n//\n// Images and content\n//\n\nimg {\n vertical-align: middle;\n border-style: none; // Remove the border on images inside links in IE 10-.\n}\n\nsvg {\n // Workaround for the SVG overflow bug in IE10/11 is still required.\n // See https://github.com/twbs/bootstrap/issues/26878\n overflow: hidden;\n vertical-align: middle;\n}\n\n\n//\n// Tables\n//\n\ntable {\n border-collapse: collapse; // Prevent double borders\n}\n\ncaption {\n padding-top: $table-cell-padding;\n padding-bottom: $table-cell-padding;\n color: $table-caption-color;\n text-align: left;\n caption-side: bottom;\n}\n\nth {\n // Matches default `` alignment by inheriting from the ``, or the\n // closest parent with a set `text-align`.\n text-align: inherit;\n}\n\n\n//\n// Forms\n//\n\nlabel {\n // Allow labels to use `margin` for spacing.\n display: inline-block;\n margin-bottom: $label-margin-bottom;\n}\n\n// Remove the default `border-radius` that macOS Chrome adds.\n//\n// Details at https://github.com/twbs/bootstrap/issues/24093\nbutton {\n // stylelint-disable-next-line property-blacklist\n border-radius: 0;\n}\n\n// Work around a Firefox/IE bug where the transparent `button` background\n// results in a loss of the default `button` focus styles.\n//\n// Credit: https://github.com/suitcss/base/\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0; // Remove the margin in Firefox and Safari\n font-family: inherit;\n @include font-size(inherit);\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible; // Show the overflow in Edge\n}\n\nbutton,\nselect {\n text-transform: none; // Remove the inheritance of text transform in Firefox\n}\n\n// Remove the inheritance of word-wrap in Safari.\n//\n// Details at https://github.com/twbs/bootstrap/issues/24990\nselect {\n word-wrap: normal;\n}\n\n\n// 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`\n// controls in Android 4.\n// 2. Correct the inability to style clickable types in iOS and Safari.\nbutton,\n[type=\"button\"], // 1\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button; // 2\n}\n\n// Opinionated: add \"hand\" cursor to non-disabled button elements.\n@if $enable-pointer-cursor-for-buttons {\n button,\n [type=\"button\"],\n [type=\"reset\"],\n [type=\"submit\"] {\n &:not(:disabled) {\n cursor: pointer;\n }\n }\n}\n\n// Remove inner border and padding from Firefox, but don't restore the outline like Normalize.\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n box-sizing: border-box; // 1. Add the correct box sizing in IE 10-\n padding: 0; // 2. Remove the padding in IE 10-\n}\n\n\ninput[type=\"date\"],\ninput[type=\"time\"],\ninput[type=\"datetime-local\"],\ninput[type=\"month\"] {\n // Remove the default appearance of temporal inputs to avoid a Mobile Safari\n // bug where setting a custom line-height prevents text from being vertically\n // centered within the input.\n // See https://bugs.webkit.org/show_bug.cgi?id=139848\n // and https://github.com/twbs/bootstrap/issues/11266\n -webkit-appearance: listbox;\n}\n\ntextarea {\n overflow: auto; // Remove the default vertical scrollbar in IE.\n // Textareas should really only resize vertically so they don't break their (horizontal) containers.\n resize: vertical;\n}\n\nfieldset {\n // Browsers set a default `min-width: min-content;` on fieldsets,\n // unlike e.g. `

`s, which have `min-width: 0;` by default.\n // So we reset that to ensure fieldsets behave more like a standard block element.\n // See https://github.com/twbs/bootstrap/issues/12359\n // and https://html.spec.whatwg.org/multipage/#the-fieldset-and-legend-elements\n min-width: 0;\n // Reset the default outline behavior of fieldsets so they don't affect page layout.\n padding: 0;\n margin: 0;\n border: 0;\n}\n\n// 1. Correct the text wrapping in Edge and IE.\n// 2. Correct the color inheritance from `fieldset` elements in IE.\nlegend {\n display: block;\n width: 100%;\n max-width: 100%; // 1\n padding: 0;\n margin-bottom: .5rem;\n @include font-size(1.5rem);\n line-height: inherit;\n color: inherit; // 2\n white-space: normal; // 1\n}\n\nprogress {\n vertical-align: baseline; // Add the correct vertical alignment in Chrome, Firefox, and Opera.\n}\n\n// Correct the cursor style of increment and decrement buttons in Chrome.\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type=\"search\"] {\n // This overrides the extra rounded corners on search inputs in iOS so that our\n // `.form-control` class can properly style them. Note that this cannot simply\n // be added to `.form-control` as it's not specific enough. For details, see\n // https://github.com/twbs/bootstrap/issues/11586.\n outline-offset: -2px; // 2. Correct the outline style in Safari.\n -webkit-appearance: none;\n}\n\n//\n// Remove the inner padding in Chrome and Safari on macOS.\n//\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n//\n// 1. Correct the inability to style clickable types in iOS and Safari.\n// 2. Change font properties to `inherit` in Safari.\n//\n\n::-webkit-file-upload-button {\n font: inherit; // 2\n -webkit-appearance: button; // 1\n}\n\n//\n// Correct element displays\n//\n\noutput {\n display: inline-block;\n}\n\nsummary {\n display: list-item; // Add the correct display in all browsers\n cursor: pointer;\n}\n\ntemplate {\n display: none; // Add the correct display in IE\n}\n\n// Always hide an element with the `hidden` HTML attribute (from PureCSS).\n// Needed for proper display in IE 10-.\n[hidden] {\n display: none !important;\n}\n","// Variables\n//\n// Variables should follow the `$component-state-property-size` formula for\n// consistent naming. Ex: $nav-link-disabled-color and $modal-content-box-shadow-xs.\n\n// Color system\n\n$white: #fff !default;\n$gray-100: #f8f9fa !default;\n$gray-200: #e9ecef !default;\n$gray-300: #dee2e6 !default;\n$gray-400: #ced4da !default;\n$gray-500: #adb5bd !default;\n$gray-600: #6c757d !default;\n$gray-700: #495057 !default;\n$gray-800: #343a40 !default;\n$gray-900: #212529 !default;\n$black: #000 !default;\n\n$grays: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$grays: map-merge(\n (\n \"100\": $gray-100,\n \"200\": $gray-200,\n \"300\": $gray-300,\n \"400\": $gray-400,\n \"500\": $gray-500,\n \"600\": $gray-600,\n \"700\": $gray-700,\n \"800\": $gray-800,\n \"900\": $gray-900\n ),\n $grays\n);\n\n$blue: #007bff !default;\n$indigo: #6610f2 !default;\n$purple: #6f42c1 !default;\n$pink: #e83e8c !default;\n$red: #dc3545 !default;\n$orange: #fd7e14 !default;\n$yellow: #ffc107 !default;\n$green: #28a745 !default;\n$teal: #20c997 !default;\n$cyan: #17a2b8 !default;\n\n$colors: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$colors: map-merge(\n (\n \"blue\": $blue,\n \"indigo\": $indigo,\n \"purple\": $purple,\n \"pink\": $pink,\n \"red\": $red,\n \"orange\": $orange,\n \"yellow\": $yellow,\n \"green\": $green,\n \"teal\": $teal,\n \"cyan\": $cyan,\n \"white\": $white,\n \"gray\": $gray-600,\n \"gray-dark\": $gray-800\n ),\n $colors\n);\n\n$primary: $blue !default;\n$secondary: $gray-600 !default;\n$success: $green !default;\n$info: $cyan !default;\n$warning: $yellow !default;\n$danger: $red !default;\n$light: $gray-100 !default;\n$dark: $gray-800 !default;\n\n$theme-colors: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$theme-colors: map-merge(\n (\n \"primary\": $primary,\n \"secondary\": $secondary,\n \"success\": $success,\n \"info\": $info,\n \"warning\": $warning,\n \"danger\": $danger,\n \"light\": $light,\n \"dark\": $dark\n ),\n $theme-colors\n);\n\n// Set a specific jump point for requesting color jumps\n$theme-color-interval: 8% !default;\n\n// The yiq lightness value that determines when the lightness of color changes from \"dark\" to \"light\". Acceptable values are between 0 and 255.\n$yiq-contrasted-threshold: 150 !default;\n\n// Customize the light and dark text colors for use in our YIQ color contrast function.\n$yiq-text-dark: $gray-900 !default;\n$yiq-text-light: $white !default;\n\n// Characters which are escaped by the escape-svg function\n$escaped-characters: (\n (\"<\",\"%3c\"),\n (\">\",\"%3e\"),\n (\"#\",\"%23\"),\n) !default;\n\n\n// Options\n//\n// Quickly modify global styling by enabling or disabling optional features.\n\n$enable-caret: true !default;\n$enable-rounded: true !default;\n$enable-shadows: false !default;\n$enable-gradients: false !default;\n$enable-transitions: true !default;\n$enable-prefers-reduced-motion-media-query: true !default;\n$enable-hover-media-query: false !default; // Deprecated, no longer affects any compiled CSS\n$enable-grid-classes: true !default;\n$enable-pointer-cursor-for-buttons: true !default;\n$enable-print-styles: true !default;\n$enable-responsive-font-sizes: false !default;\n$enable-validation-icons: true !default;\n$enable-deprecation-messages: true !default;\n\n\n// Spacing\n//\n// Control the default styling of most Bootstrap elements by modifying these\n// variables. Mostly focused on spacing.\n// You can add more entries to the $spacers map, should you need more variation.\n\n$spacer: 1rem !default;\n$spacers: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$spacers: map-merge(\n (\n 0: 0,\n 1: ($spacer * .25),\n 2: ($spacer * .5),\n 3: $spacer,\n 4: ($spacer * 1.5),\n 5: ($spacer * 3)\n ),\n $spacers\n);\n\n// This variable affects the `.h-*` and `.w-*` classes.\n$sizes: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$sizes: map-merge(\n (\n 25: 25%,\n 50: 50%,\n 75: 75%,\n 100: 100%,\n auto: auto\n ),\n $sizes\n);\n\n\n// Body\n//\n// Settings for the `` element.\n\n$body-bg: $white !default;\n$body-color: $gray-900 !default;\n\n\n// Links\n//\n// Style anchor elements.\n\n$link-color: theme-color(\"primary\") !default;\n$link-decoration: none !default;\n$link-hover-color: darken($link-color, 15%) !default;\n$link-hover-decoration: underline !default;\n// Darken percentage for links with `.text-*` class (e.g. `.text-success`)\n$emphasized-link-hover-darken-percentage: 15% !default;\n\n// Paragraphs\n//\n// Style p element.\n\n$paragraph-margin-bottom: 1rem !default;\n\n\n// Grid breakpoints\n//\n// Define the minimum dimensions at which your layout will change,\n// adapting to different screen sizes, for use in media queries.\n\n$grid-breakpoints: (\n xs: 0,\n sm: 576px,\n md: 768px,\n lg: 992px,\n xl: 1200px\n) !default;\n\n@include _assert-ascending($grid-breakpoints, \"$grid-breakpoints\");\n@include _assert-starts-at-zero($grid-breakpoints, \"$grid-breakpoints\");\n\n\n// Grid containers\n//\n// Define the maximum width of `.container` for different screen sizes.\n\n$container-max-widths: (\n sm: 540px,\n md: 720px,\n lg: 960px,\n xl: 1140px\n) !default;\n\n@include _assert-ascending($container-max-widths, \"$container-max-widths\");\n\n\n// Grid columns\n//\n// Set the number of columns and specify the width of the gutters.\n\n$grid-columns: 12 !default;\n$grid-gutter-width: 30px !default;\n$grid-row-columns: 6 !default;\n\n\n// Components\n//\n// Define common padding and border radius sizes and more.\n\n$line-height-lg: 1.5 !default;\n$line-height-sm: 1.5 !default;\n\n$border-width: 1px !default;\n$border-color: $gray-300 !default;\n\n$border-radius: .25rem !default;\n$border-radius-lg: .3rem !default;\n$border-radius-sm: .2rem !default;\n\n$rounded-pill: 50rem !default;\n\n$box-shadow-sm: 0 .125rem .25rem rgba($black, .075) !default;\n$box-shadow: 0 .5rem 1rem rgba($black, .15) !default;\n$box-shadow-lg: 0 1rem 3rem rgba($black, .175) !default;\n\n$component-active-color: $white !default;\n$component-active-bg: theme-color(\"primary\") !default;\n\n$caret-width: .3em !default;\n$caret-vertical-align: $caret-width * .85 !default;\n$caret-spacing: $caret-width * .85 !default;\n\n$transition-base: all .2s ease-in-out !default;\n$transition-fade: opacity .15s linear !default;\n$transition-collapse: height .35s ease !default;\n\n$embed-responsive-aspect-ratios: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$embed-responsive-aspect-ratios: join(\n (\n (21 9),\n (16 9),\n (4 3),\n (1 1),\n ),\n $embed-responsive-aspect-ratios\n);\n\n// Typography\n//\n// Font, line-height, and color for body text, headings, and more.\n\n// stylelint-disable value-keyword-case\n$font-family-sans-serif: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\" !default;\n$font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace !default;\n$font-family-base: $font-family-sans-serif !default;\n// stylelint-enable value-keyword-case\n\n$font-size-base: 1rem !default; // Assumes the browser default, typically `16px`\n$font-size-lg: $font-size-base * 1.25 !default;\n$font-size-sm: $font-size-base * .875 !default;\n\n$font-weight-lighter: lighter !default;\n$font-weight-light: 300 !default;\n$font-weight-normal: 400 !default;\n$font-weight-bold: 700 !default;\n$font-weight-bolder: bolder !default;\n\n$font-weight-base: $font-weight-normal !default;\n$line-height-base: 1.5 !default;\n\n$h1-font-size: $font-size-base * 2.5 !default;\n$h2-font-size: $font-size-base * 2 !default;\n$h3-font-size: $font-size-base * 1.75 !default;\n$h4-font-size: $font-size-base * 1.5 !default;\n$h5-font-size: $font-size-base * 1.25 !default;\n$h6-font-size: $font-size-base !default;\n\n$headings-margin-bottom: $spacer / 2 !default;\n$headings-font-family: null !default;\n$headings-font-weight: 500 !default;\n$headings-line-height: 1.2 !default;\n$headings-color: null !default;\n\n$display1-size: 6rem !default;\n$display2-size: 5.5rem !default;\n$display3-size: 4.5rem !default;\n$display4-size: 3.5rem !default;\n\n$display1-weight: 300 !default;\n$display2-weight: 300 !default;\n$display3-weight: 300 !default;\n$display4-weight: 300 !default;\n$display-line-height: $headings-line-height !default;\n\n$lead-font-size: $font-size-base * 1.25 !default;\n$lead-font-weight: 300 !default;\n\n$small-font-size: 80% !default;\n\n$text-muted: $gray-600 !default;\n\n$blockquote-small-color: $gray-600 !default;\n$blockquote-small-font-size: $small-font-size !default;\n$blockquote-font-size: $font-size-base * 1.25 !default;\n\n$hr-border-color: rgba($black, .1) !default;\n$hr-border-width: $border-width !default;\n\n$mark-padding: .2em !default;\n\n$dt-font-weight: $font-weight-bold !default;\n\n$kbd-box-shadow: inset 0 -.1rem 0 rgba($black, .25) !default;\n$nested-kbd-font-weight: $font-weight-bold !default;\n\n$list-inline-padding: .5rem !default;\n\n$mark-bg: #fcf8e3 !default;\n\n$hr-margin-y: $spacer !default;\n\n\n// Tables\n//\n// Customizes the `.table` component with basic values, each used across all table variations.\n\n$table-cell-padding: .75rem !default;\n$table-cell-padding-sm: .3rem !default;\n\n$table-color: $body-color !default;\n$table-bg: null !default;\n$table-accent-bg: rgba($black, .05) !default;\n$table-hover-color: $table-color !default;\n$table-hover-bg: rgba($black, .075) !default;\n$table-active-bg: $table-hover-bg !default;\n\n$table-border-width: $border-width !default;\n$table-border-color: $border-color !default;\n\n$table-head-bg: $gray-200 !default;\n$table-head-color: $gray-700 !default;\n\n$table-dark-color: $white !default;\n$table-dark-bg: $gray-800 !default;\n$table-dark-accent-bg: rgba($white, .05) !default;\n$table-dark-hover-color: $table-dark-color !default;\n$table-dark-hover-bg: rgba($white, .075) !default;\n$table-dark-border-color: lighten($table-dark-bg, 7.5%) !default;\n\n$table-striped-order: odd !default;\n\n$table-caption-color: $text-muted !default;\n\n$table-bg-level: -9 !default;\n$table-border-level: -6 !default;\n\n\n// Buttons + Forms\n//\n// Shared variables that are reassigned to `$input-` and `$btn-` specific variables.\n\n$input-btn-padding-y: .375rem !default;\n$input-btn-padding-x: .75rem !default;\n$input-btn-font-family: null !default;\n$input-btn-font-size: $font-size-base !default;\n$input-btn-line-height: $line-height-base !default;\n\n$input-btn-focus-width: .2rem !default;\n$input-btn-focus-color: rgba($component-active-bg, .25) !default;\n$input-btn-focus-box-shadow: 0 0 0 $input-btn-focus-width $input-btn-focus-color !default;\n\n$input-btn-padding-y-sm: .25rem !default;\n$input-btn-padding-x-sm: .5rem !default;\n$input-btn-font-size-sm: $font-size-sm !default;\n$input-btn-line-height-sm: $line-height-sm !default;\n\n$input-btn-padding-y-lg: .5rem !default;\n$input-btn-padding-x-lg: 1rem !default;\n$input-btn-font-size-lg: $font-size-lg !default;\n$input-btn-line-height-lg: $line-height-lg !default;\n\n$input-btn-border-width: $border-width !default;\n\n\n// Buttons\n//\n// For each of Bootstrap's buttons, define text, background, and border color.\n\n$btn-padding-y: $input-btn-padding-y !default;\n$btn-padding-x: $input-btn-padding-x !default;\n$btn-font-family: $input-btn-font-family !default;\n$btn-font-size: $input-btn-font-size !default;\n$btn-line-height: $input-btn-line-height !default;\n$btn-white-space: null !default; // Set to `nowrap` to prevent text wrapping\n\n$btn-padding-y-sm: $input-btn-padding-y-sm !default;\n$btn-padding-x-sm: $input-btn-padding-x-sm !default;\n$btn-font-size-sm: $input-btn-font-size-sm !default;\n$btn-line-height-sm: $input-btn-line-height-sm !default;\n\n$btn-padding-y-lg: $input-btn-padding-y-lg !default;\n$btn-padding-x-lg: $input-btn-padding-x-lg !default;\n$btn-font-size-lg: $input-btn-font-size-lg !default;\n$btn-line-height-lg: $input-btn-line-height-lg !default;\n\n$btn-border-width: $input-btn-border-width !default;\n\n$btn-font-weight: $font-weight-normal !default;\n$btn-box-shadow: inset 0 1px 0 rgba($white, .15), 0 1px 1px rgba($black, .075) !default;\n$btn-focus-width: $input-btn-focus-width !default;\n$btn-focus-box-shadow: $input-btn-focus-box-shadow !default;\n$btn-disabled-opacity: .65 !default;\n$btn-active-box-shadow: inset 0 3px 5px rgba($black, .125) !default;\n\n$btn-link-disabled-color: $gray-600 !default;\n\n$btn-block-spacing-y: .5rem !default;\n\n// Allows for customizing button radius independently from global border radius\n$btn-border-radius: $border-radius !default;\n$btn-border-radius-lg: $border-radius-lg !default;\n$btn-border-radius-sm: $border-radius-sm !default;\n\n$btn-transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n\n// Forms\n\n$label-margin-bottom: .5rem !default;\n\n$input-padding-y: $input-btn-padding-y !default;\n$input-padding-x: $input-btn-padding-x !default;\n$input-font-family: $input-btn-font-family !default;\n$input-font-size: $input-btn-font-size !default;\n$input-font-weight: $font-weight-base !default;\n$input-line-height: $input-btn-line-height !default;\n\n$input-padding-y-sm: $input-btn-padding-y-sm !default;\n$input-padding-x-sm: $input-btn-padding-x-sm !default;\n$input-font-size-sm: $input-btn-font-size-sm !default;\n$input-line-height-sm: $input-btn-line-height-sm !default;\n\n$input-padding-y-lg: $input-btn-padding-y-lg !default;\n$input-padding-x-lg: $input-btn-padding-x-lg !default;\n$input-font-size-lg: $input-btn-font-size-lg !default;\n$input-line-height-lg: $input-btn-line-height-lg !default;\n\n$input-bg: $white !default;\n$input-disabled-bg: $gray-200 !default;\n\n$input-color: $gray-700 !default;\n$input-border-color: $gray-400 !default;\n$input-border-width: $input-btn-border-width !default;\n$input-box-shadow: inset 0 1px 1px rgba($black, .075) !default;\n\n$input-border-radius: $border-radius !default;\n$input-border-radius-lg: $border-radius-lg !default;\n$input-border-radius-sm: $border-radius-sm !default;\n\n$input-focus-bg: $input-bg !default;\n$input-focus-border-color: lighten($component-active-bg, 25%) !default;\n$input-focus-color: $input-color !default;\n$input-focus-width: $input-btn-focus-width !default;\n$input-focus-box-shadow: $input-btn-focus-box-shadow !default;\n\n$input-placeholder-color: $gray-600 !default;\n$input-plaintext-color: $body-color !default;\n\n$input-height-border: $input-border-width * 2 !default;\n\n$input-height-inner: add($input-line-height * 1em, $input-padding-y * 2) !default;\n$input-height-inner-half: add($input-line-height * .5em, $input-padding-y) !default;\n$input-height-inner-quarter: add($input-line-height * .25em, $input-padding-y / 2) !default;\n\n$input-height: add($input-line-height * 1em, add($input-padding-y * 2, $input-height-border, false)) !default;\n$input-height-sm: add($input-line-height-sm * 1em, add($input-padding-y-sm * 2, $input-height-border, false)) !default;\n$input-height-lg: add($input-line-height-lg * 1em, add($input-padding-y-lg * 2, $input-height-border, false)) !default;\n\n$input-transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n$form-text-margin-top: .25rem !default;\n\n$form-check-input-gutter: 1.25rem !default;\n$form-check-input-margin-y: .3rem !default;\n$form-check-input-margin-x: .25rem !default;\n\n$form-check-inline-margin-x: .75rem !default;\n$form-check-inline-input-margin-x: .3125rem !default;\n\n$form-grid-gutter-width: 10px !default;\n$form-group-margin-bottom: 1rem !default;\n\n$input-group-addon-color: $input-color !default;\n$input-group-addon-bg: $gray-200 !default;\n$input-group-addon-border-color: $input-border-color !default;\n\n$custom-forms-transition: background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n$custom-control-gutter: .5rem !default;\n$custom-control-spacer-x: 1rem !default;\n$custom-control-cursor: null !default;\n\n$custom-control-indicator-size: 1rem !default;\n$custom-control-indicator-bg: $input-bg !default;\n\n$custom-control-indicator-bg-size: 50% 50% !default;\n$custom-control-indicator-box-shadow: $input-box-shadow !default;\n$custom-control-indicator-border-color: $gray-500 !default;\n$custom-control-indicator-border-width: $input-border-width !default;\n\n$custom-control-label-color: null !default;\n\n$custom-control-indicator-disabled-bg: $input-disabled-bg !default;\n$custom-control-label-disabled-color: $gray-600 !default;\n\n$custom-control-indicator-checked-color: $component-active-color !default;\n$custom-control-indicator-checked-bg: $component-active-bg !default;\n$custom-control-indicator-checked-disabled-bg: rgba(theme-color(\"primary\"), .5) !default;\n$custom-control-indicator-checked-box-shadow: none !default;\n$custom-control-indicator-checked-border-color: $custom-control-indicator-checked-bg !default;\n\n$custom-control-indicator-focus-box-shadow: $input-focus-box-shadow !default;\n$custom-control-indicator-focus-border-color: $input-focus-border-color !default;\n\n$custom-control-indicator-active-color: $component-active-color !default;\n$custom-control-indicator-active-bg: lighten($component-active-bg, 35%) !default;\n$custom-control-indicator-active-box-shadow: none !default;\n$custom-control-indicator-active-border-color: $custom-control-indicator-active-bg !default;\n\n$custom-checkbox-indicator-border-radius: $border-radius !default;\n$custom-checkbox-indicator-icon-checked: url(\"data:image/svg+xml,\") !default;\n\n$custom-checkbox-indicator-indeterminate-bg: $component-active-bg !default;\n$custom-checkbox-indicator-indeterminate-color: $custom-control-indicator-checked-color !default;\n$custom-checkbox-indicator-icon-indeterminate: url(\"data:image/svg+xml,\") !default;\n$custom-checkbox-indicator-indeterminate-box-shadow: none !default;\n$custom-checkbox-indicator-indeterminate-border-color: $custom-checkbox-indicator-indeterminate-bg !default;\n\n$custom-radio-indicator-border-radius: 50% !default;\n$custom-radio-indicator-icon-checked: url(\"data:image/svg+xml,\") !default;\n\n$custom-switch-width: $custom-control-indicator-size * 1.75 !default;\n$custom-switch-indicator-border-radius: $custom-control-indicator-size / 2 !default;\n$custom-switch-indicator-size: subtract($custom-control-indicator-size, $custom-control-indicator-border-width * 4) !default;\n\n$custom-select-padding-y: $input-padding-y !default;\n$custom-select-padding-x: $input-padding-x !default;\n$custom-select-font-family: $input-font-family !default;\n$custom-select-font-size: $input-font-size !default;\n$custom-select-height: $input-height !default;\n$custom-select-indicator-padding: 1rem !default; // Extra padding to account for the presence of the background-image based indicator\n$custom-select-font-weight: $input-font-weight !default;\n$custom-select-line-height: $input-line-height !default;\n$custom-select-color: $input-color !default;\n$custom-select-disabled-color: $gray-600 !default;\n$custom-select-bg: $input-bg !default;\n$custom-select-disabled-bg: $gray-200 !default;\n$custom-select-bg-size: 8px 10px !default; // In pixels because image dimensions\n$custom-select-indicator-color: $gray-800 !default;\n$custom-select-indicator: url(\"data:image/svg+xml,\") !default;\n$custom-select-background: escape-svg($custom-select-indicator) no-repeat right $custom-select-padding-x center / $custom-select-bg-size !default; // Used so we can have multiple background elements (e.g., arrow and feedback icon)\n\n$custom-select-feedback-icon-padding-right: add(1em * .75, (2 * $custom-select-padding-y * .75) + $custom-select-padding-x + $custom-select-indicator-padding) !default;\n$custom-select-feedback-icon-position: center right ($custom-select-padding-x + $custom-select-indicator-padding) !default;\n$custom-select-feedback-icon-size: $input-height-inner-half $input-height-inner-half !default;\n\n$custom-select-border-width: $input-border-width !default;\n$custom-select-border-color: $input-border-color !default;\n$custom-select-border-radius: $border-radius !default;\n$custom-select-box-shadow: inset 0 1px 2px rgba($black, .075) !default;\n\n$custom-select-focus-border-color: $input-focus-border-color !default;\n$custom-select-focus-width: $input-focus-width !default;\n$custom-select-focus-box-shadow: 0 0 0 $custom-select-focus-width $input-btn-focus-color !default;\n\n$custom-select-padding-y-sm: $input-padding-y-sm !default;\n$custom-select-padding-x-sm: $input-padding-x-sm !default;\n$custom-select-font-size-sm: $input-font-size-sm !default;\n$custom-select-height-sm: $input-height-sm !default;\n\n$custom-select-padding-y-lg: $input-padding-y-lg !default;\n$custom-select-padding-x-lg: $input-padding-x-lg !default;\n$custom-select-font-size-lg: $input-font-size-lg !default;\n$custom-select-height-lg: $input-height-lg !default;\n\n$custom-range-track-width: 100% !default;\n$custom-range-track-height: .5rem !default;\n$custom-range-track-cursor: pointer !default;\n$custom-range-track-bg: $gray-300 !default;\n$custom-range-track-border-radius: 1rem !default;\n$custom-range-track-box-shadow: inset 0 .25rem .25rem rgba($black, .1) !default;\n\n$custom-range-thumb-width: 1rem !default;\n$custom-range-thumb-height: $custom-range-thumb-width !default;\n$custom-range-thumb-bg: $component-active-bg !default;\n$custom-range-thumb-border: 0 !default;\n$custom-range-thumb-border-radius: 1rem !default;\n$custom-range-thumb-box-shadow: 0 .1rem .25rem rgba($black, .1) !default;\n$custom-range-thumb-focus-box-shadow: 0 0 0 1px $body-bg, $input-focus-box-shadow !default;\n$custom-range-thumb-focus-box-shadow-width: $input-focus-width !default; // For focus box shadow issue in IE/Edge\n$custom-range-thumb-active-bg: lighten($component-active-bg, 35%) !default;\n$custom-range-thumb-disabled-bg: $gray-500 !default;\n\n$custom-file-height: $input-height !default;\n$custom-file-height-inner: $input-height-inner !default;\n$custom-file-focus-border-color: $input-focus-border-color !default;\n$custom-file-focus-box-shadow: $input-focus-box-shadow !default;\n$custom-file-disabled-bg: $input-disabled-bg !default;\n\n$custom-file-padding-y: $input-padding-y !default;\n$custom-file-padding-x: $input-padding-x !default;\n$custom-file-line-height: $input-line-height !default;\n$custom-file-font-family: $input-font-family !default;\n$custom-file-font-weight: $input-font-weight !default;\n$custom-file-color: $input-color !default;\n$custom-file-bg: $input-bg !default;\n$custom-file-border-width: $input-border-width !default;\n$custom-file-border-color: $input-border-color !default;\n$custom-file-border-radius: $input-border-radius !default;\n$custom-file-box-shadow: $input-box-shadow !default;\n$custom-file-button-color: $custom-file-color !default;\n$custom-file-button-bg: $input-group-addon-bg !default;\n$custom-file-text: (\n en: \"Browse\"\n) !default;\n\n\n// Form validation\n\n$form-feedback-margin-top: $form-text-margin-top !default;\n$form-feedback-font-size: $small-font-size !default;\n$form-feedback-valid-color: theme-color(\"success\") !default;\n$form-feedback-invalid-color: theme-color(\"danger\") !default;\n\n$form-feedback-icon-valid-color: $form-feedback-valid-color !default;\n$form-feedback-icon-valid: url(\"data:image/svg+xml,\") !default;\n$form-feedback-icon-invalid-color: $form-feedback-invalid-color !default;\n$form-feedback-icon-invalid: url(\"data:image/svg+xml,\") !default;\n\n$form-validation-states: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$form-validation-states: map-merge(\n (\n \"valid\": (\n \"color\": $form-feedback-valid-color,\n \"icon\": $form-feedback-icon-valid\n ),\n \"invalid\": (\n \"color\": $form-feedback-invalid-color,\n \"icon\": $form-feedback-icon-invalid\n ),\n ),\n $form-validation-states\n);\n\n// Z-index master list\n//\n// Warning: Avoid customizing these values. They're used for a bird's eye view\n// of components dependent on the z-axis and are designed to all work together.\n\n$zindex-dropdown: 1000 !default;\n$zindex-sticky: 1020 !default;\n$zindex-fixed: 1030 !default;\n$zindex-modal-backdrop: 1040 !default;\n$zindex-modal: 1050 !default;\n$zindex-popover: 1060 !default;\n$zindex-tooltip: 1070 !default;\n\n\n// Navs\n\n$nav-link-padding-y: .5rem !default;\n$nav-link-padding-x: 1rem !default;\n$nav-link-disabled-color: $gray-600 !default;\n\n$nav-tabs-border-color: $gray-300 !default;\n$nav-tabs-border-width: $border-width !default;\n$nav-tabs-border-radius: $border-radius !default;\n$nav-tabs-link-hover-border-color: $gray-200 $gray-200 $nav-tabs-border-color !default;\n$nav-tabs-link-active-color: $gray-700 !default;\n$nav-tabs-link-active-bg: $body-bg !default;\n$nav-tabs-link-active-border-color: $gray-300 $gray-300 $nav-tabs-link-active-bg !default;\n\n$nav-pills-border-radius: $border-radius !default;\n$nav-pills-link-active-color: $component-active-color !default;\n$nav-pills-link-active-bg: $component-active-bg !default;\n\n$nav-divider-color: $gray-200 !default;\n$nav-divider-margin-y: $spacer / 2 !default;\n\n\n// Navbar\n\n$navbar-padding-y: $spacer / 2 !default;\n$navbar-padding-x: $spacer !default;\n\n$navbar-nav-link-padding-x: .5rem !default;\n\n$navbar-brand-font-size: $font-size-lg !default;\n// Compute the navbar-brand padding-y so the navbar-brand will have the same height as navbar-text and nav-link\n$nav-link-height: $font-size-base * $line-height-base + $nav-link-padding-y * 2 !default;\n$navbar-brand-height: $navbar-brand-font-size * $line-height-base !default;\n$navbar-brand-padding-y: ($nav-link-height - $navbar-brand-height) / 2 !default;\n\n$navbar-toggler-padding-y: .25rem !default;\n$navbar-toggler-padding-x: .75rem !default;\n$navbar-toggler-font-size: $font-size-lg !default;\n$navbar-toggler-border-radius: $btn-border-radius !default;\n\n$navbar-dark-color: rgba($white, .5) !default;\n$navbar-dark-hover-color: rgba($white, .75) !default;\n$navbar-dark-active-color: $white !default;\n$navbar-dark-disabled-color: rgba($white, .25) !default;\n$navbar-dark-toggler-icon-bg: url(\"data:image/svg+xml,\") !default;\n$navbar-dark-toggler-border-color: rgba($white, .1) !default;\n\n$navbar-light-color: rgba($black, .5) !default;\n$navbar-light-hover-color: rgba($black, .7) !default;\n$navbar-light-active-color: rgba($black, .9) !default;\n$navbar-light-disabled-color: rgba($black, .3) !default;\n$navbar-light-toggler-icon-bg: url(\"data:image/svg+xml,\") !default;\n$navbar-light-toggler-border-color: rgba($black, .1) !default;\n\n$navbar-light-brand-color: $navbar-light-active-color !default;\n$navbar-light-brand-hover-color: $navbar-light-active-color !default;\n$navbar-dark-brand-color: $navbar-dark-active-color !default;\n$navbar-dark-brand-hover-color: $navbar-dark-active-color !default;\n\n\n// Dropdowns\n//\n// Dropdown menu container and contents.\n\n$dropdown-min-width: 10rem !default;\n$dropdown-padding-y: .5rem !default;\n$dropdown-spacer: .125rem !default;\n$dropdown-font-size: $font-size-base !default;\n$dropdown-color: $body-color !default;\n$dropdown-bg: $white !default;\n$dropdown-border-color: rgba($black, .15) !default;\n$dropdown-border-radius: $border-radius !default;\n$dropdown-border-width: $border-width !default;\n$dropdown-inner-border-radius: subtract($dropdown-border-radius, $dropdown-border-width) !default;\n$dropdown-divider-bg: $gray-200 !default;\n$dropdown-divider-margin-y: $nav-divider-margin-y !default;\n$dropdown-box-shadow: 0 .5rem 1rem rgba($black, .175) !default;\n\n$dropdown-link-color: $gray-900 !default;\n$dropdown-link-hover-color: darken($gray-900, 5%) !default;\n$dropdown-link-hover-bg: $gray-100 !default;\n\n$dropdown-link-active-color: $component-active-color !default;\n$dropdown-link-active-bg: $component-active-bg !default;\n\n$dropdown-link-disabled-color: $gray-600 !default;\n\n$dropdown-item-padding-y: .25rem !default;\n$dropdown-item-padding-x: 1.5rem !default;\n\n$dropdown-header-color: $gray-600 !default;\n\n\n// Pagination\n\n$pagination-padding-y: .5rem !default;\n$pagination-padding-x: .75rem !default;\n$pagination-padding-y-sm: .25rem !default;\n$pagination-padding-x-sm: .5rem !default;\n$pagination-padding-y-lg: .75rem !default;\n$pagination-padding-x-lg: 1.5rem !default;\n$pagination-line-height: 1.25 !default;\n\n$pagination-color: $link-color !default;\n$pagination-bg: $white !default;\n$pagination-border-width: $border-width !default;\n$pagination-border-color: $gray-300 !default;\n\n$pagination-focus-box-shadow: $input-btn-focus-box-shadow !default;\n$pagination-focus-outline: 0 !default;\n\n$pagination-hover-color: $link-hover-color !default;\n$pagination-hover-bg: $gray-200 !default;\n$pagination-hover-border-color: $gray-300 !default;\n\n$pagination-active-color: $component-active-color !default;\n$pagination-active-bg: $component-active-bg !default;\n$pagination-active-border-color: $pagination-active-bg !default;\n\n$pagination-disabled-color: $gray-600 !default;\n$pagination-disabled-bg: $white !default;\n$pagination-disabled-border-color: $gray-300 !default;\n\n\n// Jumbotron\n\n$jumbotron-padding: 2rem !default;\n$jumbotron-color: null !default;\n$jumbotron-bg: $gray-200 !default;\n\n\n// Cards\n\n$card-spacer-y: .75rem !default;\n$card-spacer-x: 1.25rem !default;\n$card-border-width: $border-width !default;\n$card-border-radius: $border-radius !default;\n$card-border-color: rgba($black, .125) !default;\n$card-inner-border-radius: subtract($card-border-radius, $card-border-width) !default;\n$card-cap-bg: rgba($black, .03) !default;\n$card-cap-color: null !default;\n$card-height: null !default;\n$card-color: null !default;\n$card-bg: $white !default;\n\n$card-img-overlay-padding: 1.25rem !default;\n\n$card-group-margin: $grid-gutter-width / 2 !default;\n$card-deck-margin: $card-group-margin !default;\n\n$card-columns-count: 3 !default;\n$card-columns-gap: 1.25rem !default;\n$card-columns-margin: $card-spacer-y !default;\n\n\n// Tooltips\n\n$tooltip-font-size: $font-size-sm !default;\n$tooltip-max-width: 200px !default;\n$tooltip-color: $white !default;\n$tooltip-bg: $black !default;\n$tooltip-border-radius: $border-radius !default;\n$tooltip-opacity: .9 !default;\n$tooltip-padding-y: .25rem !default;\n$tooltip-padding-x: .5rem !default;\n$tooltip-margin: 0 !default;\n\n$tooltip-arrow-width: .8rem !default;\n$tooltip-arrow-height: .4rem !default;\n$tooltip-arrow-color: $tooltip-bg !default;\n\n// Form tooltips must come after regular tooltips\n$form-feedback-tooltip-padding-y: $tooltip-padding-y !default;\n$form-feedback-tooltip-padding-x: $tooltip-padding-x !default;\n$form-feedback-tooltip-font-size: $tooltip-font-size !default;\n$form-feedback-tooltip-line-height: $line-height-base !default;\n$form-feedback-tooltip-opacity: $tooltip-opacity !default;\n$form-feedback-tooltip-border-radius: $tooltip-border-radius !default;\n\n\n// Popovers\n\n$popover-font-size: $font-size-sm !default;\n$popover-bg: $white !default;\n$popover-max-width: 276px !default;\n$popover-border-width: $border-width !default;\n$popover-border-color: rgba($black, .2) !default;\n$popover-border-radius: $border-radius-lg !default;\n$popover-inner-border-radius: subtract($popover-border-radius, $popover-border-width) !default;\n$popover-box-shadow: 0 .25rem .5rem rgba($black, .2) !default;\n\n$popover-header-bg: darken($popover-bg, 3%) !default;\n$popover-header-color: $headings-color !default;\n$popover-header-padding-y: .5rem !default;\n$popover-header-padding-x: .75rem !default;\n\n$popover-body-color: $body-color !default;\n$popover-body-padding-y: $popover-header-padding-y !default;\n$popover-body-padding-x: $popover-header-padding-x !default;\n\n$popover-arrow-width: 1rem !default;\n$popover-arrow-height: .5rem !default;\n$popover-arrow-color: $popover-bg !default;\n\n$popover-arrow-outer-color: fade-in($popover-border-color, .05) !default;\n\n\n// Toasts\n\n$toast-max-width: 350px !default;\n$toast-padding-x: .75rem !default;\n$toast-padding-y: .25rem !default;\n$toast-font-size: .875rem !default;\n$toast-color: null !default;\n$toast-background-color: rgba($white, .85) !default;\n$toast-border-width: 1px !default;\n$toast-border-color: rgba(0, 0, 0, .1) !default;\n$toast-border-radius: .25rem !default;\n$toast-box-shadow: 0 .25rem .75rem rgba($black, .1) !default;\n\n$toast-header-color: $gray-600 !default;\n$toast-header-background-color: rgba($white, .85) !default;\n$toast-header-border-color: rgba(0, 0, 0, .05) !default;\n\n\n// Badges\n\n$badge-font-size: 75% !default;\n$badge-font-weight: $font-weight-bold !default;\n$badge-padding-y: .25em !default;\n$badge-padding-x: .4em !default;\n$badge-border-radius: $border-radius !default;\n\n$badge-transition: $btn-transition !default;\n$badge-focus-width: $input-btn-focus-width !default;\n\n$badge-pill-padding-x: .6em !default;\n// Use a higher than normal value to ensure completely rounded edges when\n// customizing padding or font-size on labels.\n$badge-pill-border-radius: 10rem !default;\n\n\n// Modals\n\n// Padding applied to the modal body\n$modal-inner-padding: 1rem !default;\n\n// Margin between elements in footer, must be lower than or equal to 2 * $modal-inner-padding\n$modal-footer-margin-between: .5rem !default;\n\n$modal-dialog-margin: .5rem !default;\n$modal-dialog-margin-y-sm-up: 1.75rem !default;\n\n$modal-title-line-height: $line-height-base !default;\n\n$modal-content-color: null !default;\n$modal-content-bg: $white !default;\n$modal-content-border-color: rgba($black, .2) !default;\n$modal-content-border-width: $border-width !default;\n$modal-content-border-radius: $border-radius-lg !default;\n$modal-content-inner-border-radius: subtract($modal-content-border-radius, $modal-content-border-width) !default;\n$modal-content-box-shadow-xs: 0 .25rem .5rem rgba($black, .5) !default;\n$modal-content-box-shadow-sm-up: 0 .5rem 1rem rgba($black, .5) !default;\n\n$modal-backdrop-bg: $black !default;\n$modal-backdrop-opacity: .5 !default;\n$modal-header-border-color: $border-color !default;\n$modal-footer-border-color: $modal-header-border-color !default;\n$modal-header-border-width: $modal-content-border-width !default;\n$modal-footer-border-width: $modal-header-border-width !default;\n$modal-header-padding-y: 1rem !default;\n$modal-header-padding-x: 1rem !default;\n$modal-header-padding: $modal-header-padding-y $modal-header-padding-x !default; // Keep this for backwards compatibility\n\n$modal-xl: 1140px !default;\n$modal-lg: 800px !default;\n$modal-md: 500px !default;\n$modal-sm: 300px !default;\n\n$modal-fade-transform: translate(0, -50px) !default;\n$modal-show-transform: none !default;\n$modal-transition: transform .3s ease-out !default;\n$modal-scale-transform: scale(1.02) !default;\n\n\n// Alerts\n//\n// Define alert colors, border radius, and padding.\n\n$alert-padding-y: .75rem !default;\n$alert-padding-x: 1.25rem !default;\n$alert-margin-bottom: 1rem !default;\n$alert-border-radius: $border-radius !default;\n$alert-link-font-weight: $font-weight-bold !default;\n$alert-border-width: $border-width !default;\n\n$alert-bg-level: -10 !default;\n$alert-border-level: -9 !default;\n$alert-color-level: 6 !default;\n\n\n// Progress bars\n\n$progress-height: 1rem !default;\n$progress-font-size: $font-size-base * .75 !default;\n$progress-bg: $gray-200 !default;\n$progress-border-radius: $border-radius !default;\n$progress-box-shadow: inset 0 .1rem .1rem rgba($black, .1) !default;\n$progress-bar-color: $white !default;\n$progress-bar-bg: theme-color(\"primary\") !default;\n$progress-bar-animation-timing: 1s linear infinite !default;\n$progress-bar-transition: width .6s ease !default;\n\n\n// List group\n\n$list-group-color: null !default;\n$list-group-bg: $white !default;\n$list-group-border-color: rgba($black, .125) !default;\n$list-group-border-width: $border-width !default;\n$list-group-border-radius: $border-radius !default;\n\n$list-group-item-padding-y: .75rem !default;\n$list-group-item-padding-x: 1.25rem !default;\n\n$list-group-hover-bg: $gray-100 !default;\n$list-group-active-color: $component-active-color !default;\n$list-group-active-bg: $component-active-bg !default;\n$list-group-active-border-color: $list-group-active-bg !default;\n\n$list-group-disabled-color: $gray-600 !default;\n$list-group-disabled-bg: $list-group-bg !default;\n\n$list-group-action-color: $gray-700 !default;\n$list-group-action-hover-color: $list-group-action-color !default;\n\n$list-group-action-active-color: $body-color !default;\n$list-group-action-active-bg: $gray-200 !default;\n\n\n// Image thumbnails\n\n$thumbnail-padding: .25rem !default;\n$thumbnail-bg: $body-bg !default;\n$thumbnail-border-width: $border-width !default;\n$thumbnail-border-color: $gray-300 !default;\n$thumbnail-border-radius: $border-radius !default;\n$thumbnail-box-shadow: 0 1px 2px rgba($black, .075) !default;\n\n\n// Figures\n\n$figure-caption-font-size: 90% !default;\n$figure-caption-color: $gray-600 !default;\n\n\n// Breadcrumbs\n\n$breadcrumb-font-size: null !default;\n\n$breadcrumb-padding-y: .75rem !default;\n$breadcrumb-padding-x: 1rem !default;\n$breadcrumb-item-padding: .5rem !default;\n\n$breadcrumb-margin-bottom: 1rem !default;\n\n$breadcrumb-bg: $gray-200 !default;\n$breadcrumb-divider-color: $gray-600 !default;\n$breadcrumb-active-color: $gray-600 !default;\n$breadcrumb-divider: quote(\"/\") !default;\n\n$breadcrumb-border-radius: $border-radius !default;\n\n\n// Carousel\n\n$carousel-control-color: $white !default;\n$carousel-control-width: 15% !default;\n$carousel-control-opacity: .5 !default;\n$carousel-control-hover-opacity: .9 !default;\n$carousel-control-transition: opacity .15s ease !default;\n\n$carousel-indicator-width: 30px !default;\n$carousel-indicator-height: 3px !default;\n$carousel-indicator-hit-area-height: 10px !default;\n$carousel-indicator-spacer: 3px !default;\n$carousel-indicator-active-bg: $white !default;\n$carousel-indicator-transition: opacity .6s ease !default;\n\n$carousel-caption-width: 70% !default;\n$carousel-caption-color: $white !default;\n\n$carousel-control-icon-width: 20px !default;\n\n$carousel-control-prev-icon-bg: url(\"data:image/svg+xml,\") !default;\n$carousel-control-next-icon-bg: url(\"data:image/svg+xml,\") !default;\n\n$carousel-transition-duration: .6s !default;\n$carousel-transition: transform $carousel-transition-duration ease-in-out !default; // Define transform transition first if using multiple transitions (e.g., `transform 2s ease, opacity .5s ease-out`)\n\n\n// Spinners\n\n$spinner-width: 2rem !default;\n$spinner-height: $spinner-width !default;\n$spinner-border-width: .25em !default;\n\n$spinner-width-sm: 1rem !default;\n$spinner-height-sm: $spinner-width-sm !default;\n$spinner-border-width-sm: .2em !default;\n\n\n// Close\n\n$close-font-size: $font-size-base * 1.5 !default;\n$close-font-weight: $font-weight-bold !default;\n$close-color: $black !default;\n$close-text-shadow: 0 1px 0 $white !default;\n\n\n// Code\n\n$code-font-size: 87.5% !default;\n$code-color: $pink !default;\n\n$kbd-padding-y: .2rem !default;\n$kbd-padding-x: .4rem !default;\n$kbd-font-size: $code-font-size !default;\n$kbd-color: $white !default;\n$kbd-bg: $gray-900 !default;\n\n$pre-color: $gray-900 !default;\n$pre-scrollable-max-height: 340px !default;\n\n\n// Utilities\n\n$displays: none, inline, inline-block, block, table, table-row, table-cell, flex, inline-flex !default;\n$overflows: auto, hidden !default;\n$positions: static, relative, absolute, fixed, sticky !default;\n\n\n// Printing\n\n$print-page-size: a3 !default;\n$print-body-min-width: map-get($grid-breakpoints, \"lg\") !default;\n","// stylelint-disable property-blacklist, scss/dollar-variable-default\n\n// SCSS RFS mixin\n//\n// Automated font-resizing\n//\n// See https://github.com/twbs/rfs\n\n// Configuration\n\n// Base font size\n$rfs-base-font-size: 1.25rem !default;\n$rfs-font-size-unit: rem !default;\n\n// Breakpoint at where font-size starts decreasing if screen width is smaller\n$rfs-breakpoint: 1200px !default;\n$rfs-breakpoint-unit: px !default;\n\n// Resize font-size based on screen height and width\n$rfs-two-dimensional: false !default;\n\n// Factor of decrease\n$rfs-factor: 10 !default;\n\n@if type-of($rfs-factor) != \"number\" or $rfs-factor <= 1 {\n @error \"`#{$rfs-factor}` is not a valid $rfs-factor, it must be greater than 1.\";\n}\n\n// Generate enable or disable classes. Possibilities: false, \"enable\" or \"disable\"\n$rfs-class: false !default;\n\n// 1 rem = $rfs-rem-value px\n$rfs-rem-value: 16 !default;\n\n// Safari iframe resize bug: https://github.com/twbs/rfs/issues/14\n$rfs-safari-iframe-resize-bug-fix: false !default;\n\n// Disable RFS by setting $enable-responsive-font-sizes to false\n$enable-responsive-font-sizes: true !default;\n\n// Cache $rfs-base-font-size unit\n$rfs-base-font-size-unit: unit($rfs-base-font-size);\n\n// Remove px-unit from $rfs-base-font-size for calculations\n@if $rfs-base-font-size-unit == \"px\" {\n $rfs-base-font-size: $rfs-base-font-size / ($rfs-base-font-size * 0 + 1);\n}\n@else if $rfs-base-font-size-unit == \"rem\" {\n $rfs-base-font-size: $rfs-base-font-size / ($rfs-base-font-size * 0 + 1 / $rfs-rem-value);\n}\n\n// Cache $rfs-breakpoint unit to prevent multiple calls\n$rfs-breakpoint-unit-cache: unit($rfs-breakpoint);\n\n// Remove unit from $rfs-breakpoint for calculations\n@if $rfs-breakpoint-unit-cache == \"px\" {\n $rfs-breakpoint: $rfs-breakpoint / ($rfs-breakpoint * 0 + 1);\n}\n@else if $rfs-breakpoint-unit-cache == \"rem\" or $rfs-breakpoint-unit-cache == \"em\" {\n $rfs-breakpoint: $rfs-breakpoint / ($rfs-breakpoint * 0 + 1 / $rfs-rem-value);\n}\n\n// Responsive font-size mixin\n@mixin rfs($fs, $important: false) {\n // Cache $fs unit\n $fs-unit: if(type-of($fs) == \"number\", unit($fs), false);\n\n // Add !important suffix if needed\n $rfs-suffix: if($important, \" !important\", \"\");\n\n // If $fs isn't a number (like inherit) or $fs has a unit (not px or rem, like 1.5em) or $ is 0, just print the value\n @if not $fs-unit or $fs-unit != \"\" and $fs-unit != \"px\" and $fs-unit != \"rem\" or $fs == 0 {\n font-size: #{$fs}#{$rfs-suffix};\n }\n @else {\n // Variables for storing static and fluid rescaling\n $rfs-static: null;\n $rfs-fluid: null;\n\n // Remove px-unit from $fs for calculations\n @if $fs-unit == \"px\" {\n $fs: $fs / ($fs * 0 + 1);\n }\n @else if $fs-unit == \"rem\" {\n $fs: $fs / ($fs * 0 + 1 / $rfs-rem-value);\n }\n\n // Set default font-size\n @if $rfs-font-size-unit == rem {\n $rfs-static: #{$fs / $rfs-rem-value}rem#{$rfs-suffix};\n }\n @else if $rfs-font-size-unit == px {\n $rfs-static: #{$fs}px#{$rfs-suffix};\n }\n @else {\n @error \"`#{$rfs-font-size-unit}` is not a valid unit for $rfs-font-size-unit. Use `px` or `rem`.\";\n }\n\n // Only add media query if font-size is bigger as the minimum font-size\n // If $rfs-factor == 1, no rescaling will take place\n @if $fs > $rfs-base-font-size and $enable-responsive-font-sizes {\n $min-width: null;\n $variable-unit: null;\n\n // Calculate minimum font-size for given font-size\n $fs-min: $rfs-base-font-size + ($fs - $rfs-base-font-size) / $rfs-factor;\n\n // Calculate difference between given font-size and minimum font-size for given font-size\n $fs-diff: $fs - $fs-min;\n\n // Base font-size formatting\n // No need to check if the unit is valid, because we did that before\n $min-width: if($rfs-font-size-unit == rem, #{$fs-min / $rfs-rem-value}rem, #{$fs-min}px);\n\n // If two-dimensional, use smallest of screen width and height\n $variable-unit: if($rfs-two-dimensional, vmin, vw);\n\n // Calculate the variable width between 0 and $rfs-breakpoint\n $variable-width: #{$fs-diff * 100 / $rfs-breakpoint}#{$variable-unit};\n\n // Set the calculated font-size.\n $rfs-fluid: calc(#{$min-width} + #{$variable-width}) #{$rfs-suffix};\n }\n\n // Rendering\n @if $rfs-fluid == null {\n // Only render static font-size if no fluid font-size is available\n font-size: $rfs-static;\n }\n @else {\n $mq-value: null;\n\n // RFS breakpoint formatting\n @if $rfs-breakpoint-unit == em or $rfs-breakpoint-unit == rem {\n $mq-value: #{$rfs-breakpoint / $rfs-rem-value}#{$rfs-breakpoint-unit};\n }\n @else if $rfs-breakpoint-unit == px {\n $mq-value: #{$rfs-breakpoint}px;\n }\n @else {\n @error \"`#{$rfs-breakpoint-unit}` is not a valid unit for $rfs-breakpoint-unit. Use `px`, `em` or `rem`.\";\n }\n\n @if $rfs-class == \"disable\" {\n // Adding an extra class increases specificity,\n // which prevents the media query to override the font size\n &,\n .disable-responsive-font-size &,\n &.disable-responsive-font-size {\n font-size: $rfs-static;\n }\n }\n @else {\n font-size: $rfs-static;\n }\n\n @if $rfs-two-dimensional {\n @media (max-width: #{$mq-value}), (max-height: #{$mq-value}) {\n @if $rfs-class == \"enable\" {\n .enable-responsive-font-size &,\n &.enable-responsive-font-size {\n font-size: $rfs-fluid;\n }\n }\n @else {\n font-size: $rfs-fluid;\n }\n\n @if $rfs-safari-iframe-resize-bug-fix {\n // stylelint-disable-next-line length-zero-no-unit\n min-width: 0vw;\n }\n }\n }\n @else {\n @media (max-width: #{$mq-value}) {\n @if $rfs-class == \"enable\" {\n .enable-responsive-font-size &,\n &.enable-responsive-font-size {\n font-size: $rfs-fluid;\n }\n }\n @else {\n font-size: $rfs-fluid;\n }\n\n @if $rfs-safari-iframe-resize-bug-fix {\n // stylelint-disable-next-line length-zero-no-unit\n min-width: 0vw;\n }\n }\n }\n }\n }\n}\n\n// The font-size & responsive-font-size mixin uses RFS to rescale font sizes\n@mixin font-size($fs, $important: false) {\n @include rfs($fs, $important);\n}\n\n@mixin responsive-font-size($fs, $important: false) {\n @include rfs($fs, $important);\n}\n","// Hover mixin and `$enable-hover-media-query` are deprecated.\n//\n// Originally added during our alphas and maintained during betas, this mixin was\n// designed to prevent `:hover` stickiness on iOS-an issue where hover styles\n// would persist after initial touch.\n//\n// For backward compatibility, we've kept these mixins and updated them to\n// always return their regular pseudo-classes instead of a shimmed media query.\n//\n// Issue: https://github.com/twbs/bootstrap/issues/25195\n\n@mixin hover() {\n &:hover { @content; }\n}\n\n@mixin hover-focus() {\n &:hover,\n &:focus {\n @content;\n }\n}\n\n@mixin plain-hover-focus() {\n &,\n &:hover,\n &:focus {\n @content;\n }\n}\n\n@mixin hover-focus-active() {\n &:hover,\n &:focus,\n &:active {\n @content;\n }\n}\n","// stylelint-disable declaration-no-important, selector-list-comma-newline-after\n\n//\n// Headings\n//\n\nh1, h2, h3, h4, h5, h6,\n.h1, .h2, .h3, .h4, .h5, .h6 {\n margin-bottom: $headings-margin-bottom;\n font-family: $headings-font-family;\n font-weight: $headings-font-weight;\n line-height: $headings-line-height;\n color: $headings-color;\n}\n\nh1, .h1 { @include font-size($h1-font-size); }\nh2, .h2 { @include font-size($h2-font-size); }\nh3, .h3 { @include font-size($h3-font-size); }\nh4, .h4 { @include font-size($h4-font-size); }\nh5, .h5 { @include font-size($h5-font-size); }\nh6, .h6 { @include font-size($h6-font-size); }\n\n.lead {\n @include font-size($lead-font-size);\n font-weight: $lead-font-weight;\n}\n\n// Type display classes\n.display-1 {\n @include font-size($display1-size);\n font-weight: $display1-weight;\n line-height: $display-line-height;\n}\n.display-2 {\n @include font-size($display2-size);\n font-weight: $display2-weight;\n line-height: $display-line-height;\n}\n.display-3 {\n @include font-size($display3-size);\n font-weight: $display3-weight;\n line-height: $display-line-height;\n}\n.display-4 {\n @include font-size($display4-size);\n font-weight: $display4-weight;\n line-height: $display-line-height;\n}\n\n\n//\n// Horizontal rules\n//\n\nhr {\n margin-top: $hr-margin-y;\n margin-bottom: $hr-margin-y;\n border: 0;\n border-top: $hr-border-width solid $hr-border-color;\n}\n\n\n//\n// Emphasis\n//\n\nsmall,\n.small {\n @include font-size($small-font-size);\n font-weight: $font-weight-normal;\n}\n\nmark,\n.mark {\n padding: $mark-padding;\n background-color: $mark-bg;\n}\n\n\n//\n// Lists\n//\n\n.list-unstyled {\n @include list-unstyled();\n}\n\n// Inline turns list items into inline-block\n.list-inline {\n @include list-unstyled();\n}\n.list-inline-item {\n display: inline-block;\n\n &:not(:last-child) {\n margin-right: $list-inline-padding;\n }\n}\n\n\n//\n// Misc\n//\n\n// Builds on `abbr`\n.initialism {\n @include font-size(90%);\n text-transform: uppercase;\n}\n\n// Blockquotes\n.blockquote {\n margin-bottom: $spacer;\n @include font-size($blockquote-font-size);\n}\n\n.blockquote-footer {\n display: block;\n @include font-size($blockquote-small-font-size);\n color: $blockquote-small-color;\n\n &::before {\n content: \"\\2014\\00A0\"; // em dash, nbsp\n }\n}\n","// Lists\n\n// Unstyled keeps list items block level, just removes default browser padding and list-style\n@mixin list-unstyled() {\n padding-left: 0;\n list-style: none;\n}\n","// Responsive images (ensure images don't scale beyond their parents)\n//\n// This is purposefully opt-in via an explicit class rather than being the default for all ``s.\n// We previously tried the \"images are responsive by default\" approach in Bootstrap v2,\n// and abandoned it in Bootstrap v3 because it breaks lots of third-party widgets (including Google Maps)\n// which weren't expecting the images within themselves to be involuntarily resized.\n// See also https://github.com/twbs/bootstrap/issues/18178\n.img-fluid {\n @include img-fluid();\n}\n\n\n// Image thumbnails\n.img-thumbnail {\n padding: $thumbnail-padding;\n background-color: $thumbnail-bg;\n border: $thumbnail-border-width solid $thumbnail-border-color;\n @include border-radius($thumbnail-border-radius);\n @include box-shadow($thumbnail-box-shadow);\n\n // Keep them at most 100% wide\n @include img-fluid();\n}\n\n//\n// Figures\n//\n\n.figure {\n // Ensures the caption's text aligns with the image.\n display: inline-block;\n}\n\n.figure-img {\n margin-bottom: $spacer / 2;\n line-height: 1;\n}\n\n.figure-caption {\n @include font-size($figure-caption-font-size);\n color: $figure-caption-color;\n}\n","// Image Mixins\n// - Responsive image\n// - Retina image\n\n\n// Responsive image\n//\n// Keep images from scaling beyond the width of their parents.\n\n@mixin img-fluid() {\n // Part 1: Set a maximum relative to the parent\n max-width: 100%;\n // Part 2: Override the height to auto, otherwise images will be stretched\n // when setting a width and height attribute on the img element.\n height: auto;\n}\n\n\n// Retina image\n//\n// Short retina mixin for setting background-image and -size.\n\n@mixin img-retina($file-1x, $file-2x, $width-1x, $height-1x) {\n background-image: url($file-1x);\n\n // Autoprefixer takes care of adding -webkit-min-device-pixel-ratio and -o-min-device-pixel-ratio,\n // but doesn't convert dppx=>dpi.\n // There's no such thing as unprefixed min-device-pixel-ratio since it's nonstandard.\n // Compatibility info: https://caniuse.com/#feat=css-media-resolution\n @media only screen and (min-resolution: 192dpi), // IE9-11 don't support dppx\n only screen and (min-resolution: 2dppx) { // Standardized\n background-image: url($file-2x);\n background-size: $width-1x $height-1x;\n }\n @include deprecate(\"`img-retina()`\", \"v4.3.0\", \"v5\");\n}\n","// stylelint-disable property-blacklist\n// Single side border-radius\n\n@mixin border-radius($radius: $border-radius, $fallback-border-radius: false) {\n @if $enable-rounded {\n border-radius: $radius;\n }\n @else if $fallback-border-radius != false {\n border-radius: $fallback-border-radius;\n }\n}\n\n@mixin border-top-radius($radius) {\n @if $enable-rounded {\n border-top-left-radius: $radius;\n border-top-right-radius: $radius;\n }\n}\n\n@mixin border-right-radius($radius) {\n @if $enable-rounded {\n border-top-right-radius: $radius;\n border-bottom-right-radius: $radius;\n }\n}\n\n@mixin border-bottom-radius($radius) {\n @if $enable-rounded {\n border-bottom-right-radius: $radius;\n border-bottom-left-radius: $radius;\n }\n}\n\n@mixin border-left-radius($radius) {\n @if $enable-rounded {\n border-top-left-radius: $radius;\n border-bottom-left-radius: $radius;\n }\n}\n\n@mixin border-top-left-radius($radius) {\n @if $enable-rounded {\n border-top-left-radius: $radius;\n }\n}\n\n@mixin border-top-right-radius($radius) {\n @if $enable-rounded {\n border-top-right-radius: $radius;\n }\n}\n\n@mixin border-bottom-right-radius($radius) {\n @if $enable-rounded {\n border-bottom-right-radius: $radius;\n }\n}\n\n@mixin border-bottom-left-radius($radius) {\n @if $enable-rounded {\n border-bottom-left-radius: $radius;\n }\n}\n","// Inline code\ncode {\n @include font-size($code-font-size);\n color: $code-color;\n word-wrap: break-word;\n\n // Streamline the style when inside anchors to avoid broken underline and more\n a > & {\n color: inherit;\n }\n}\n\n// User input typically entered via keyboard\nkbd {\n padding: $kbd-padding-y $kbd-padding-x;\n @include font-size($kbd-font-size);\n color: $kbd-color;\n background-color: $kbd-bg;\n @include border-radius($border-radius-sm);\n @include box-shadow($kbd-box-shadow);\n\n kbd {\n padding: 0;\n @include font-size(100%);\n font-weight: $nested-kbd-font-weight;\n @include box-shadow(none);\n }\n}\n\n// Blocks of code\npre {\n display: block;\n @include font-size($code-font-size);\n color: $pre-color;\n\n // Account for some code outputs that place code tags in pre tags\n code {\n @include font-size(inherit);\n color: inherit;\n word-break: normal;\n }\n}\n\n// Enable scrollable blocks of code\n.pre-scrollable {\n max-height: $pre-scrollable-max-height;\n overflow-y: scroll;\n}\n","// Container widths\n//\n// Set the container width, and override it for fixed navbars in media queries.\n\n@if $enable-grid-classes {\n // Single container class with breakpoint max-widths\n .container {\n @include make-container();\n @include make-container-max-widths();\n }\n\n // 100% wide container at all breakpoints\n .container-fluid {\n @include make-container();\n }\n\n // Responsive containers that are 100% wide until a breakpoint\n @each $breakpoint, $container-max-width in $container-max-widths {\n .container-#{$breakpoint} {\n @extend .container-fluid;\n }\n\n @include media-breakpoint-up($breakpoint, $grid-breakpoints) {\n %responsive-container-#{$breakpoint} {\n max-width: $container-max-width;\n }\n\n @each $name, $width in $grid-breakpoints {\n @if ($container-max-width > $width or $breakpoint == $name) {\n .container#{breakpoint-infix($name, $grid-breakpoints)} {\n @extend %responsive-container-#{$breakpoint};\n }\n }\n }\n }\n }\n}\n\n\n// Row\n//\n// Rows contain your columns.\n\n@if $enable-grid-classes {\n .row {\n @include make-row();\n }\n\n // Remove the negative margin from default .row, then the horizontal padding\n // from all immediate children columns (to prevent runaway style inheritance).\n .no-gutters {\n margin-right: 0;\n margin-left: 0;\n\n > .col,\n > [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n }\n }\n}\n\n// Columns\n//\n// Common styles for small and large grid columns\n\n@if $enable-grid-classes {\n @include make-grid-columns();\n}\n","/// Grid system\n//\n// Generate semantic grid columns with these mixins.\n\n@mixin make-container($gutter: $grid-gutter-width) {\n width: 100%;\n padding-right: $gutter / 2;\n padding-left: $gutter / 2;\n margin-right: auto;\n margin-left: auto;\n}\n\n\n// For each breakpoint, define the maximum width of the container in a media query\n@mixin make-container-max-widths($max-widths: $container-max-widths, $breakpoints: $grid-breakpoints) {\n @each $breakpoint, $container-max-width in $max-widths {\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n max-width: $container-max-width;\n }\n }\n}\n\n@mixin make-row($gutter: $grid-gutter-width) {\n display: flex;\n flex-wrap: wrap;\n margin-right: -$gutter / 2;\n margin-left: -$gutter / 2;\n}\n\n@mixin make-col-ready($gutter: $grid-gutter-width) {\n position: relative;\n // Prevent columns from becoming too narrow when at smaller grid tiers by\n // always setting `width: 100%;`. This works because we use `flex` values\n // later on to override this initial width.\n width: 100%;\n padding-right: $gutter / 2;\n padding-left: $gutter / 2;\n}\n\n@mixin make-col($size, $columns: $grid-columns) {\n flex: 0 0 percentage($size / $columns);\n // Add a `max-width` to ensure content within each column does not blow out\n // the width of the column. Applies to IE10+ and Firefox. Chrome and Safari\n // do not appear to require this.\n max-width: percentage($size / $columns);\n}\n\n@mixin make-col-auto() {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%; // Reset earlier grid tiers\n}\n\n@mixin make-col-offset($size, $columns: $grid-columns) {\n $num: $size / $columns;\n margin-left: if($num == 0, 0, percentage($num));\n}\n\n// Row columns\n//\n// Specify on a parent element(e.g., .row) to force immediate children into NN\n// numberof columns. Supports wrapping to new lines, but does not do a Masonry\n// style grid.\n@mixin row-cols($count) {\n & > * {\n flex: 0 0 100% / $count;\n max-width: 100% / $count;\n }\n}\n","// Breakpoint viewport sizes and media queries.\n//\n// Breakpoints are defined as a map of (name: minimum width), order from small to large:\n//\n// (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px)\n//\n// The map defined in the `$grid-breakpoints` global variable is used as the `$breakpoints` argument by default.\n\n// Name of the next breakpoint, or null for the last breakpoint.\n//\n// >> breakpoint-next(sm)\n// md\n// >> breakpoint-next(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// md\n// >> breakpoint-next(sm, $breakpoint-names: (xs sm md lg xl))\n// md\n@function breakpoint-next($name, $breakpoints: $grid-breakpoints, $breakpoint-names: map-keys($breakpoints)) {\n $n: index($breakpoint-names, $name);\n @return if($n != null and $n < length($breakpoint-names), nth($breakpoint-names, $n + 1), null);\n}\n\n// Minimum breakpoint width. Null for the smallest (first) breakpoint.\n//\n// >> breakpoint-min(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 576px\n@function breakpoint-min($name, $breakpoints: $grid-breakpoints) {\n $min: map-get($breakpoints, $name);\n @return if($min != 0, $min, null);\n}\n\n// Maximum breakpoint width. Null for the largest (last) breakpoint.\n// The maximum value is calculated as the minimum of the next one less 0.02px\n// to work around the limitations of `min-` and `max-` prefixes and viewports with fractional widths.\n// See https://www.w3.org/TR/mediaqueries-4/#mq-min-max\n// Uses 0.02px rather than 0.01px to work around a current rounding bug in Safari.\n// See https://bugs.webkit.org/show_bug.cgi?id=178261\n//\n// >> breakpoint-max(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 767.98px\n@function breakpoint-max($name, $breakpoints: $grid-breakpoints) {\n $next: breakpoint-next($name, $breakpoints);\n @return if($next, breakpoint-min($next, $breakpoints) - .02, null);\n}\n\n// Returns a blank string if smallest breakpoint, otherwise returns the name with a dash in front.\n// Useful for making responsive utilities.\n//\n// >> breakpoint-infix(xs, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"\" (Returns a blank string)\n// >> breakpoint-infix(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"-sm\"\n@function breakpoint-infix($name, $breakpoints: $grid-breakpoints) {\n @return if(breakpoint-min($name, $breakpoints) == null, \"\", \"-#{$name}\");\n}\n\n// Media of at least the minimum breakpoint width. No query for the smallest breakpoint.\n// Makes the @content apply to the given breakpoint and wider.\n@mixin media-breakpoint-up($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n @if $min {\n @media (min-width: $min) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media of at most the maximum breakpoint width. No query for the largest breakpoint.\n// Makes the @content apply to the given breakpoint and narrower.\n@mixin media-breakpoint-down($name, $breakpoints: $grid-breakpoints) {\n $max: breakpoint-max($name, $breakpoints);\n @if $max {\n @media (max-width: $max) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media that spans multiple breakpoint widths.\n// Makes the @content apply between the min and max breakpoints\n@mixin media-breakpoint-between($lower, $upper, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($lower, $breakpoints);\n $max: breakpoint-max($upper, $breakpoints);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($lower, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($upper, $breakpoints) {\n @content;\n }\n }\n}\n\n// Media between the breakpoint's minimum and maximum widths.\n// No minimum for the smallest breakpoint, and no maximum for the largest one.\n// Makes the @content apply only to the given breakpoint, not viewports any wider or narrower.\n@mixin media-breakpoint-only($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n $max: breakpoint-max($name, $breakpoints);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($name, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($name, $breakpoints) {\n @content;\n }\n }\n}\n","// Framework grid generation\n//\n// Used only by Bootstrap to generate the correct number of grid classes given\n// any value of `$grid-columns`.\n\n@mixin make-grid-columns($columns: $grid-columns, $gutter: $grid-gutter-width, $breakpoints: $grid-breakpoints) {\n // Common properties for all breakpoints\n %grid-column {\n position: relative;\n width: 100%;\n padding-right: $gutter / 2;\n padding-left: $gutter / 2;\n }\n\n @each $breakpoint in map-keys($breakpoints) {\n $infix: breakpoint-infix($breakpoint, $breakpoints);\n\n // Allow columns to stretch full width below their breakpoints\n @for $i from 1 through $columns {\n .col#{$infix}-#{$i} {\n @extend %grid-column;\n }\n }\n .col#{$infix},\n .col#{$infix}-auto {\n @extend %grid-column;\n }\n\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n // Provide basic `.col-{bp}` classes for equal-width flexbox columns\n .col#{$infix} {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n\n @for $i from 1 through $grid-row-columns {\n .row-cols#{$infix}-#{$i} {\n @include row-cols($i);\n }\n }\n\n .col#{$infix}-auto {\n @include make-col-auto();\n }\n\n @for $i from 1 through $columns {\n .col#{$infix}-#{$i} {\n @include make-col($i, $columns);\n }\n }\n\n .order#{$infix}-first { order: -1; }\n\n .order#{$infix}-last { order: $columns + 1; }\n\n @for $i from 0 through $columns {\n .order#{$infix}-#{$i} { order: $i; }\n }\n\n // `$columns - 1` because offsetting by the width of an entire row isn't possible\n @for $i from 0 through ($columns - 1) {\n @if not ($infix == \"\" and $i == 0) { // Avoid emitting useless .offset-0\n .offset#{$infix}-#{$i} {\n @include make-col-offset($i, $columns);\n }\n }\n }\n }\n }\n}\n","//\n// Basic Bootstrap table\n//\n\n.table {\n width: 100%;\n margin-bottom: $spacer;\n color: $table-color;\n background-color: $table-bg; // Reset for nesting within parents with `background-color`.\n\n th,\n td {\n padding: $table-cell-padding;\n vertical-align: top;\n border-top: $table-border-width solid $table-border-color;\n }\n\n thead th {\n vertical-align: bottom;\n border-bottom: (2 * $table-border-width) solid $table-border-color;\n }\n\n tbody + tbody {\n border-top: (2 * $table-border-width) solid $table-border-color;\n }\n}\n\n\n//\n// Condensed table w/ half padding\n//\n\n.table-sm {\n th,\n td {\n padding: $table-cell-padding-sm;\n }\n}\n\n\n// Border versions\n//\n// Add or remove borders all around the table and between all the columns.\n\n.table-bordered {\n border: $table-border-width solid $table-border-color;\n\n th,\n td {\n border: $table-border-width solid $table-border-color;\n }\n\n thead {\n th,\n td {\n border-bottom-width: 2 * $table-border-width;\n }\n }\n}\n\n.table-borderless {\n th,\n td,\n thead th,\n tbody + tbody {\n border: 0;\n }\n}\n\n// Zebra-striping\n//\n// Default zebra-stripe styles (alternating gray and transparent backgrounds)\n\n.table-striped {\n tbody tr:nth-of-type(#{$table-striped-order}) {\n background-color: $table-accent-bg;\n }\n}\n\n\n// Hover effect\n//\n// Placed here since it has to come after the potential zebra striping\n\n.table-hover {\n tbody tr {\n @include hover() {\n color: $table-hover-color;\n background-color: $table-hover-bg;\n }\n }\n}\n\n\n// Table backgrounds\n//\n// Exact selectors below required to override `.table-striped` and prevent\n// inheritance to nested tables.\n\n@each $color, $value in $theme-colors {\n @include table-row-variant($color, theme-color-level($color, $table-bg-level), theme-color-level($color, $table-border-level));\n}\n\n@include table-row-variant(active, $table-active-bg);\n\n\n// Dark styles\n//\n// Same table markup, but inverted color scheme: dark background and light text.\n\n// stylelint-disable-next-line no-duplicate-selectors\n.table {\n .thead-dark {\n th {\n color: $table-dark-color;\n background-color: $table-dark-bg;\n border-color: $table-dark-border-color;\n }\n }\n\n .thead-light {\n th {\n color: $table-head-color;\n background-color: $table-head-bg;\n border-color: $table-border-color;\n }\n }\n}\n\n.table-dark {\n color: $table-dark-color;\n background-color: $table-dark-bg;\n\n th,\n td,\n thead th {\n border-color: $table-dark-border-color;\n }\n\n &.table-bordered {\n border: 0;\n }\n\n &.table-striped {\n tbody tr:nth-of-type(#{$table-striped-order}) {\n background-color: $table-dark-accent-bg;\n }\n }\n\n &.table-hover {\n tbody tr {\n @include hover() {\n color: $table-dark-hover-color;\n background-color: $table-dark-hover-bg;\n }\n }\n }\n}\n\n\n// Responsive tables\n//\n// Generate series of `.table-responsive-*` classes for configuring the screen\n// size of where your table will overflow.\n\n.table-responsive {\n @each $breakpoint in map-keys($grid-breakpoints) {\n $next: breakpoint-next($breakpoint, $grid-breakpoints);\n $infix: breakpoint-infix($next, $grid-breakpoints);\n\n &#{$infix} {\n @include media-breakpoint-down($breakpoint) {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n\n // Prevent double border on horizontal scroll due to use of `display: block;`\n > .table-bordered {\n border: 0;\n }\n }\n }\n }\n}\n","// Tables\n\n@mixin table-row-variant($state, $background, $border: null) {\n // Exact selectors below required to override `.table-striped` and prevent\n // inheritance to nested tables.\n .table-#{$state} {\n &,\n > th,\n > td {\n background-color: $background;\n }\n\n @if $border != null {\n th,\n td,\n thead th,\n tbody + tbody {\n border-color: $border;\n }\n }\n }\n\n // Hover states for `.table-hover`\n // Note: this is not available for cells or rows within `thead` or `tfoot`.\n .table-hover {\n $hover-background: darken($background, 5%);\n\n .table-#{$state} {\n @include hover() {\n background-color: $hover-background;\n\n > td,\n > th {\n background-color: $hover-background;\n }\n }\n }\n }\n}\n","// Bootstrap functions\n//\n// Utility mixins and functions for evaluating source code across our variables, maps, and mixins.\n\n// Ascending\n// Used to evaluate Sass maps like our grid breakpoints.\n@mixin _assert-ascending($map, $map-name) {\n $prev-key: null;\n $prev-num: null;\n @each $key, $num in $map {\n @if $prev-num == null or unit($num) == \"%\" or unit($prev-num) == \"%\" {\n // Do nothing\n } @else if not comparable($prev-num, $num) {\n @warn \"Potentially invalid value for #{$map-name}: This map must be in ascending order, but key '#{$key}' has value #{$num} whose unit makes it incomparable to #{$prev-num}, the value of the previous key '#{$prev-key}' !\";\n } @else if $prev-num >= $num {\n @warn \"Invalid value for #{$map-name}: This map must be in ascending order, but key '#{$key}' has value #{$num} which isn't greater than #{$prev-num}, the value of the previous key '#{$prev-key}' !\";\n }\n $prev-key: $key;\n $prev-num: $num;\n }\n}\n\n// Starts at zero\n// Used to ensure the min-width of the lowest breakpoint starts at 0.\n@mixin _assert-starts-at-zero($map, $map-name: \"$grid-breakpoints\") {\n $values: map-values($map);\n $first-value: nth($values, 1);\n @if $first-value != 0 {\n @warn \"First breakpoint in #{$map-name} must start at 0, but starts at #{$first-value}.\";\n }\n}\n\n// Replace `$search` with `$replace` in `$string`\n// Used on our SVG icon backgrounds for custom forms.\n//\n// @author Hugo Giraudel\n// @param {String} $string - Initial string\n// @param {String} $search - Substring to replace\n// @param {String} $replace ('') - New value\n// @return {String} - Updated string\n@function str-replace($string, $search, $replace: \"\") {\n $index: str-index($string, $search);\n\n @if $index {\n @return str-slice($string, 1, $index - 1) + $replace + str-replace(str-slice($string, $index + str-length($search)), $search, $replace);\n }\n\n @return $string;\n}\n\n// See https://codepen.io/kevinweber/pen/dXWoRw\n@function escape-svg($string) {\n @if str-index($string, \"data:image/svg+xml\") {\n @each $char, $encoded in $escaped-characters {\n $string: str-replace($string, $char, $encoded);\n }\n }\n\n @return $string;\n}\n\n// Color contrast\n@function color-yiq($color, $dark: $yiq-text-dark, $light: $yiq-text-light) {\n $r: red($color);\n $g: green($color);\n $b: blue($color);\n\n $yiq: (($r * 299) + ($g * 587) + ($b * 114)) / 1000;\n\n @if ($yiq >= $yiq-contrasted-threshold) {\n @return $dark;\n } @else {\n @return $light;\n }\n}\n\n// Retrieve color Sass maps\n@function color($key: \"blue\") {\n @return map-get($colors, $key);\n}\n\n@function theme-color($key: \"primary\") {\n @return map-get($theme-colors, $key);\n}\n\n@function gray($key: \"100\") {\n @return map-get($grays, $key);\n}\n\n// Request a theme color level\n@function theme-color-level($color-name: \"primary\", $level: 0) {\n $color: theme-color($color-name);\n $color-base: if($level > 0, $black, $white);\n $level: abs($level);\n\n @return mix($color-base, $color, $level * $theme-color-interval);\n}\n\n// Return valid calc\n@function add($value1, $value2, $return-calc: true) {\n @if $value1 == null {\n @return $value2;\n }\n\n @if $value2 == null {\n @return $value1;\n }\n\n @if type-of($value1) == number and type-of($value2) == number and comparable($value1, $value2) {\n @return $value1 + $value2;\n }\n\n @return if($return-calc == true, calc(#{$value1} + #{$value2}), $value1 + unquote(\" + \") + $value2);\n}\n\n@function subtract($value1, $value2, $return-calc: true) {\n @if $value1 == null and $value2 == null {\n @return null;\n }\n\n @if $value1 == null {\n @return -$value2;\n }\n\n @if $value2 == null {\n @return $value1;\n }\n\n @if type-of($value1) == number and type-of($value2) == number and comparable($value1, $value2) {\n @return $value1 - $value2;\n }\n\n @return if($return-calc == true, calc(#{$value1} - #{$value2}), $value1 + unquote(\" - \") + $value2);\n}\n","// stylelint-disable selector-no-qualifying-type\n\n//\n// Textual form controls\n//\n\n.form-control {\n display: block;\n width: 100%;\n height: $input-height;\n padding: $input-padding-y $input-padding-x;\n font-family: $input-font-family;\n @include font-size($input-font-size);\n font-weight: $input-font-weight;\n line-height: $input-line-height;\n color: $input-color;\n background-color: $input-bg;\n background-clip: padding-box;\n border: $input-border-width solid $input-border-color;\n\n // Note: This has no effect on `s in CSS.\n @include border-radius($input-border-radius, 0);\n\n @include box-shadow($input-box-shadow);\n @include transition($input-transition);\n\n // Unstyle the caret on ` receives focus\n // in IE and (under certain conditions) Edge, as it looks bad and cannot be made to\n // match the appearance of the native widget.\n // See https://github.com/twbs/bootstrap/issues/19398.\n color: $input-color;\n background-color: $input-bg;\n }\n}\n\n// Make file inputs better match text inputs by forcing them to new lines.\n.form-control-file,\n.form-control-range {\n display: block;\n width: 100%;\n}\n\n\n//\n// Labels\n//\n\n// For use with horizontal and inline forms, when you need the label (or legend)\n// text to align with the form controls.\n.col-form-label {\n padding-top: add($input-padding-y, $input-border-width);\n padding-bottom: add($input-padding-y, $input-border-width);\n margin-bottom: 0; // Override the `
'; + } + }, { + key: "renderHead", + value: function renderHead(opts) { + var i = void 0, + arr = []; + for (i = 0; i < 7; i++) { + arr.push("" + this.renderDayName(opts, i, true) + ""); + } + return '' + (opts.isRTL ? arr.reverse() : arr).join('') + ''; + } + }, { + key: "renderBody", + value: function renderBody(rows) { + return '' + rows.join('') + ''; + } + }, { + key: "renderTitle", + value: function renderTitle(instance, c, year, month, refYear, randId) { + var i = void 0, + j = void 0, + arr = void 0, + opts = this.options, + isMinYear = year === opts.minYear, + isMaxYear = year === opts.maxYear, + html = '
', + monthHtml = void 0, + yearHtml = void 0, + prev = true, + next = true; + + for (arr = [], i = 0; i < 12; i++) { + arr.push(''); + } + + monthHtml = ''; + + if ($.isArray(opts.yearRange)) { + i = opts.yearRange[0]; + j = opts.yearRange[1] + 1; + } else { + i = year - opts.yearRange; + j = 1 + year + opts.yearRange; + } + + for (arr = []; i < j && i <= opts.maxYear; i++) { + if (i >= opts.minYear) { + arr.push(""); + } + } + + yearHtml = ""; + + var leftArrow = ''; + html += ""; + + html += '
'; + if (opts.showMonthAfterYear) { + html += yearHtml + monthHtml; + } else { + html += monthHtml + yearHtml; + } + html += '
'; + + if (isMinYear && (month === 0 || opts.minMonth >= month)) { + prev = false; + } + + if (isMaxYear && (month === 11 || opts.maxMonth <= month)) { + next = false; + } + + var rightArrow = ''; + html += ""; + + return html += '
'; + } + + /** + * refresh the HTML + */ + + }, { + key: "draw", + value: function draw(force) { + if (!this.isOpen && !force) { + return; + } + var opts = this.options, + minYear = opts.minYear, + maxYear = opts.maxYear, + minMonth = opts.minMonth, + maxMonth = opts.maxMonth, + html = '', + randId = void 0; + + if (this._y <= minYear) { + this._y = minYear; + if (!isNaN(minMonth) && this._m < minMonth) { + this._m = minMonth; + } + } + if (this._y >= maxYear) { + this._y = maxYear; + if (!isNaN(maxMonth) && this._m > maxMonth) { + this._m = maxMonth; + } + } + + randId = 'datepicker-title-' + Math.random().toString(36).replace(/[^a-z]+/g, '').substr(0, 2); + + for (var c = 0; c < 1; c++) { + this._renderDateDisplay(); + html += this.renderTitle(this, c, this.calendars[c].year, this.calendars[c].month, this.calendars[0].year, randId) + this.render(this.calendars[c].year, this.calendars[c].month, randId); + } + + this.destroySelects(); + + this.calendarEl.innerHTML = html; + + // Init Materialize Select + var yearSelect = this.calendarEl.querySelector('.orig-select-year'); + var monthSelect = this.calendarEl.querySelector('.orig-select-month'); + M.FormSelect.init(yearSelect, { + classes: 'select-year', + dropdownOptions: { container: document.body, constrainWidth: false } + }); + M.FormSelect.init(monthSelect, { + classes: 'select-month', + dropdownOptions: { container: document.body, constrainWidth: false } + }); + + // Add change handlers for select + yearSelect.addEventListener('change', this._handleYearChange.bind(this)); + monthSelect.addEventListener('change', this._handleMonthChange.bind(this)); + + if (typeof this.options.onDraw === 'function') { + this.options.onDraw(this); + } + } + + /** + * Setup Event Handlers + */ + + }, { + key: "_setupEventHandlers", + value: function _setupEventHandlers() { + this._handleInputKeydownBound = this._handleInputKeydown.bind(this); + this._handleInputClickBound = this._handleInputClick.bind(this); + this._handleInputChangeBound = this._handleInputChange.bind(this); + this._handleCalendarClickBound = this._handleCalendarClick.bind(this); + this._finishSelectionBound = this._finishSelection.bind(this); + this._handleMonthChange = this._handleMonthChange.bind(this); + this._closeBound = this.close.bind(this); + + this.el.addEventListener('click', this._handleInputClickBound); + this.el.addEventListener('keydown', this._handleInputKeydownBound); + this.el.addEventListener('change', this._handleInputChangeBound); + this.calendarEl.addEventListener('click', this._handleCalendarClickBound); + this.doneBtn.addEventListener('click', this._finishSelectionBound); + this.cancelBtn.addEventListener('click', this._closeBound); + + if (this.options.showClearBtn) { + this._handleClearClickBound = this._handleClearClick.bind(this); + this.clearBtn.addEventListener('click', this._handleClearClickBound); + } + } + }, { + key: "_setupVariables", + value: function _setupVariables() { + var _this56 = this; + + this.$modalEl = $(Datepicker._template); + this.modalEl = this.$modalEl[0]; + + this.calendarEl = this.modalEl.querySelector('.datepicker-calendar'); + + this.yearTextEl = this.modalEl.querySelector('.year-text'); + this.dateTextEl = this.modalEl.querySelector('.date-text'); + if (this.options.showClearBtn) { + this.clearBtn = this.modalEl.querySelector('.datepicker-clear'); + } + this.doneBtn = this.modalEl.querySelector('.datepicker-done'); + this.cancelBtn = this.modalEl.querySelector('.datepicker-cancel'); + + this.formats = { + d: function () { + return _this56.date.getDate(); + }, + dd: function () { + var d = _this56.date.getDate(); + return (d < 10 ? '0' : '') + d; + }, + ddd: function () { + return _this56.options.i18n.weekdaysShort[_this56.date.getDay()]; + }, + dddd: function () { + return _this56.options.i18n.weekdays[_this56.date.getDay()]; + }, + m: function () { + return _this56.date.getMonth() + 1; + }, + mm: function () { + var m = _this56.date.getMonth() + 1; + return (m < 10 ? '0' : '') + m; + }, + mmm: function () { + return _this56.options.i18n.monthsShort[_this56.date.getMonth()]; + }, + mmmm: function () { + return _this56.options.i18n.months[_this56.date.getMonth()]; + }, + yy: function () { + return ('' + _this56.date.getFullYear()).slice(2); + }, + yyyy: function () { + return _this56.date.getFullYear(); + } + }; + } + + /** + * Remove Event Handlers + */ + + }, { + key: "_removeEventHandlers", + value: function _removeEventHandlers() { + this.el.removeEventListener('click', this._handleInputClickBound); + this.el.removeEventListener('keydown', this._handleInputKeydownBound); + this.el.removeEventListener('change', this._handleInputChangeBound); + this.calendarEl.removeEventListener('click', this._handleCalendarClickBound); + } + }, { + key: "_handleInputClick", + value: function _handleInputClick() { + this.open(); + } + }, { + key: "_handleInputKeydown", + value: function _handleInputKeydown(e) { + if (e.which === M.keys.ENTER) { + e.preventDefault(); + this.open(); + } + } + }, { + key: "_handleCalendarClick", + value: function _handleCalendarClick(e) { + if (!this.isOpen) { + return; + } + + var $target = $(e.target); + if (!$target.hasClass('is-disabled')) { + if ($target.hasClass('datepicker-day-button') && !$target.hasClass('is-empty') && !$target.parent().hasClass('is-disabled')) { + this.setDate(new Date(e.target.getAttribute('data-year'), e.target.getAttribute('data-month'), e.target.getAttribute('data-day'))); + if (this.options.autoClose) { + this._finishSelection(); + } + } else if ($target.closest('.month-prev').length) { + this.prevMonth(); + } else if ($target.closest('.month-next').length) { + this.nextMonth(); + } + } + } + }, { + key: "_handleClearClick", + value: function _handleClearClick() { + this.date = null; + this.setInputValue(); + this.close(); + } + }, { + key: "_handleMonthChange", + value: function _handleMonthChange(e) { + this.gotoMonth(e.target.value); + } + }, { + key: "_handleYearChange", + value: function _handleYearChange(e) { + this.gotoYear(e.target.value); + } + + /** + * change view to a specific month (zero-index, e.g. 0: January) + */ + + }, { + key: "gotoMonth", + value: function gotoMonth(month) { + if (!isNaN(month)) { + this.calendars[0].month = parseInt(month, 10); + this.adjustCalendars(); + } + } + + /** + * change view to a specific full year (e.g. "2012") + */ + + }, { + key: "gotoYear", + value: function gotoYear(year) { + if (!isNaN(year)) { + this.calendars[0].year = parseInt(year, 10); + this.adjustCalendars(); + } + } + }, { + key: "_handleInputChange", + value: function _handleInputChange(e) { + var date = void 0; + + // Prevent change event from being fired when triggered by the plugin + if (e.firedBy === this) { + return; + } + if (this.options.parse) { + date = this.options.parse(this.el.value, this.options.format); + } else { + date = new Date(Date.parse(this.el.value)); + } + + if (Datepicker._isDate(date)) { + this.setDate(date); + } + } + }, { + key: "renderDayName", + value: function renderDayName(opts, day, abbr) { + day += opts.firstDay; + while (day >= 7) { + day -= 7; + } + return abbr ? opts.i18n.weekdaysAbbrev[day] : opts.i18n.weekdays[day]; + } + + /** + * Set input value to the selected date and close Datepicker + */ + + }, { + key: "_finishSelection", + value: function _finishSelection() { + this.setInputValue(); + this.close(); + } + + /** + * Open Datepicker + */ + + }, { + key: "open", + value: function open() { + if (this.isOpen) { + return; + } + + this.isOpen = true; + if (typeof this.options.onOpen === 'function') { + this.options.onOpen.call(this); + } + this.draw(); + this.modal.open(); + return this; + } + + /** + * Close Datepicker + */ + + }, { + key: "close", + value: function close() { + if (!this.isOpen) { + return; + } + + this.isOpen = false; + if (typeof this.options.onClose === 'function') { + this.options.onClose.call(this); + } + this.modal.close(); + return this; + } + }], [{ + key: "init", + value: function init(els, options) { + return _get(Datepicker.__proto__ || Object.getPrototypeOf(Datepicker), "init", this).call(this, this, els, options); + } + }, { + key: "_isDate", + value: function _isDate(obj) { + return (/Date/.test(Object.prototype.toString.call(obj)) && !isNaN(obj.getTime()) + ); + } + }, { + key: "_isWeekend", + value: function _isWeekend(date) { + var day = date.getDay(); + return day === 0 || day === 6; + } + }, { + key: "_setToStartOfDay", + value: function _setToStartOfDay(date) { + if (Datepicker._isDate(date)) date.setHours(0, 0, 0, 0); + } + }, { + key: "_getDaysInMonth", + value: function _getDaysInMonth(year, month) { + return [31, Datepicker._isLeapYear(year) ? 29 : 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][month]; + } + }, { + key: "_isLeapYear", + value: function _isLeapYear(year) { + // solution by Matti Virkkunen: http://stackoverflow.com/a/4881951 + return year % 4 === 0 && year % 100 !== 0 || year % 400 === 0; + } + }, { + key: "_compareDates", + value: function _compareDates(a, b) { + // weak date comparison (use setToStartOfDay(date) to ensure correct result) + return a.getTime() === b.getTime(); + } + }, { + key: "_setToStartOfDay", + value: function _setToStartOfDay(date) { + if (Datepicker._isDate(date)) date.setHours(0, 0, 0, 0); + } + + /** + * Get Instance + */ + + }, { + key: "getInstance", + value: function getInstance(el) { + var domElem = !!el.jquery ? el[0] : el; + return domElem.M_Datepicker; + } + }, { + key: "defaults", + get: function () { + return _defaults; + } + }]); + + return Datepicker; + }(Component); + + Datepicker._template = [''].join(''); + + M.Datepicker = Datepicker; + + if (M.jQueryLoaded) { + M.initializeJqueryWrapper(Datepicker, 'datepicker', 'M_Datepicker'); + } +})(cash); +;(function ($) { + 'use strict'; + + var _defaults = { + dialRadius: 135, + outerRadius: 105, + innerRadius: 70, + tickRadius: 20, + duration: 350, + container: null, + defaultTime: 'now', // default time, 'now' or '13:14' e.g. + fromNow: 0, // Millisecond offset from the defaultTime + showClearBtn: false, + + // internationalization + i18n: { + cancel: 'Cancel', + clear: 'Clear', + done: 'Ok' + }, + + autoClose: false, // auto close when minute is selected + twelveHour: true, // change to 12 hour AM/PM clock from 24 hour + vibrate: true, // vibrate the device when dragging clock hand + + // Callbacks + onOpenStart: null, + onOpenEnd: null, + onCloseStart: null, + onCloseEnd: null, + onSelect: null + }; + + /** + * @class + * + */ + + var Timepicker = function (_Component16) { + _inherits(Timepicker, _Component16); + + function Timepicker(el, options) { + _classCallCheck(this, Timepicker); + + var _this57 = _possibleConstructorReturn(this, (Timepicker.__proto__ || Object.getPrototypeOf(Timepicker)).call(this, Timepicker, el, options)); + + _this57.el.M_Timepicker = _this57; + + _this57.options = $.extend({}, Timepicker.defaults, options); + + _this57.id = M.guid(); + _this57._insertHTMLIntoDOM(); + _this57._setupModal(); + _this57._setupVariables(); + _this57._setupEventHandlers(); + + _this57._clockSetup(); + _this57._pickerSetup(); + return _this57; + } + + _createClass(Timepicker, [{ + key: "destroy", + + + /** + * Teardown component + */ + value: function destroy() { + this._removeEventHandlers(); + this.modal.destroy(); + $(this.modalEl).remove(); + this.el.M_Timepicker = undefined; + } + + /** + * Setup Event Handlers + */ + + }, { + key: "_setupEventHandlers", + value: function _setupEventHandlers() { + this._handleInputKeydownBound = this._handleInputKeydown.bind(this); + this._handleInputClickBound = this._handleInputClick.bind(this); + this._handleClockClickStartBound = this._handleClockClickStart.bind(this); + this._handleDocumentClickMoveBound = this._handleDocumentClickMove.bind(this); + this._handleDocumentClickEndBound = this._handleDocumentClickEnd.bind(this); + + this.el.addEventListener('click', this._handleInputClickBound); + this.el.addEventListener('keydown', this._handleInputKeydownBound); + this.plate.addEventListener('mousedown', this._handleClockClickStartBound); + this.plate.addEventListener('touchstart', this._handleClockClickStartBound); + + $(this.spanHours).on('click', this.showView.bind(this, 'hours')); + $(this.spanMinutes).on('click', this.showView.bind(this, 'minutes')); + } + }, { + key: "_removeEventHandlers", + value: function _removeEventHandlers() { + this.el.removeEventListener('click', this._handleInputClickBound); + this.el.removeEventListener('keydown', this._handleInputKeydownBound); + } + }, { + key: "_handleInputClick", + value: function _handleInputClick() { + this.open(); + } + }, { + key: "_handleInputKeydown", + value: function _handleInputKeydown(e) { + if (e.which === M.keys.ENTER) { + e.preventDefault(); + this.open(); + } + } + }, { + key: "_handleClockClickStart", + value: function _handleClockClickStart(e) { + e.preventDefault(); + var clockPlateBR = this.plate.getBoundingClientRect(); + var offset = { x: clockPlateBR.left, y: clockPlateBR.top }; + + this.x0 = offset.x + this.options.dialRadius; + this.y0 = offset.y + this.options.dialRadius; + this.moved = false; + var clickPos = Timepicker._Pos(e); + this.dx = clickPos.x - this.x0; + this.dy = clickPos.y - this.y0; + + // Set clock hands + this.setHand(this.dx, this.dy, false); + + // Mousemove on document + document.addEventListener('mousemove', this._handleDocumentClickMoveBound); + document.addEventListener('touchmove', this._handleDocumentClickMoveBound); + + // Mouseup on document + document.addEventListener('mouseup', this._handleDocumentClickEndBound); + document.addEventListener('touchend', this._handleDocumentClickEndBound); + } + }, { + key: "_handleDocumentClickMove", + value: function _handleDocumentClickMove(e) { + e.preventDefault(); + var clickPos = Timepicker._Pos(e); + var x = clickPos.x - this.x0; + var y = clickPos.y - this.y0; + this.moved = true; + this.setHand(x, y, false, true); + } + }, { + key: "_handleDocumentClickEnd", + value: function _handleDocumentClickEnd(e) { + var _this58 = this; + + e.preventDefault(); + document.removeEventListener('mouseup', this._handleDocumentClickEndBound); + document.removeEventListener('touchend', this._handleDocumentClickEndBound); + var clickPos = Timepicker._Pos(e); + var x = clickPos.x - this.x0; + var y = clickPos.y - this.y0; + if (this.moved && x === this.dx && y === this.dy) { + this.setHand(x, y); + } + + if (this.currentView === 'hours') { + this.showView('minutes', this.options.duration / 2); + } else if (this.options.autoClose) { + $(this.minutesView).addClass('timepicker-dial-out'); + setTimeout(function () { + _this58.done(); + }, this.options.duration / 2); + } + + if (typeof this.options.onSelect === 'function') { + this.options.onSelect.call(this, this.hours, this.minutes); + } + + // Unbind mousemove event + document.removeEventListener('mousemove', this._handleDocumentClickMoveBound); + document.removeEventListener('touchmove', this._handleDocumentClickMoveBound); + } + }, { + key: "_insertHTMLIntoDOM", + value: function _insertHTMLIntoDOM() { + this.$modalEl = $(Timepicker._template); + this.modalEl = this.$modalEl[0]; + this.modalEl.id = 'modal-' + this.id; + + // Append popover to input by default + var containerEl = document.querySelector(this.options.container); + if (this.options.container && !!containerEl) { + this.$modalEl.appendTo(containerEl); + } else { + this.$modalEl.insertBefore(this.el); + } + } + }, { + key: "_setupModal", + value: function _setupModal() { + var _this59 = this; + + this.modal = M.Modal.init(this.modalEl, { + onOpenStart: this.options.onOpenStart, + onOpenEnd: this.options.onOpenEnd, + onCloseStart: this.options.onCloseStart, + onCloseEnd: function () { + if (typeof _this59.options.onCloseEnd === 'function') { + _this59.options.onCloseEnd.call(_this59); + } + _this59.isOpen = false; + } + }); + } + }, { + key: "_setupVariables", + value: function _setupVariables() { + this.currentView = 'hours'; + this.vibrate = navigator.vibrate ? 'vibrate' : navigator.webkitVibrate ? 'webkitVibrate' : null; + + this._canvas = this.modalEl.querySelector('.timepicker-canvas'); + this.plate = this.modalEl.querySelector('.timepicker-plate'); + + this.hoursView = this.modalEl.querySelector('.timepicker-hours'); + this.minutesView = this.modalEl.querySelector('.timepicker-minutes'); + this.spanHours = this.modalEl.querySelector('.timepicker-span-hours'); + this.spanMinutes = this.modalEl.querySelector('.timepicker-span-minutes'); + this.spanAmPm = this.modalEl.querySelector('.timepicker-span-am-pm'); + this.footer = this.modalEl.querySelector('.timepicker-footer'); + this.amOrPm = 'PM'; + } + }, { + key: "_pickerSetup", + value: function _pickerSetup() { + var $clearBtn = $("").appendTo(this.footer).on('click', this.clear.bind(this)); + if (this.options.showClearBtn) { + $clearBtn.css({ visibility: '' }); + } + + var confirmationBtnsContainer = $('
'); + $('').appendTo(confirmationBtnsContainer).on('click', this.close.bind(this)); + $('').appendTo(confirmationBtnsContainer).on('click', this.done.bind(this)); + confirmationBtnsContainer.appendTo(this.footer); + } + }, { + key: "_clockSetup", + value: function _clockSetup() { + if (this.options.twelveHour) { + this.$amBtn = $('
AM
'); + this.$pmBtn = $('
PM
'); + this.$amBtn.on('click', this._handleAmPmClick.bind(this)).appendTo(this.spanAmPm); + this.$pmBtn.on('click', this._handleAmPmClick.bind(this)).appendTo(this.spanAmPm); + } + + this._buildHoursView(); + this._buildMinutesView(); + this._buildSVGClock(); + } + }, { + key: "_buildSVGClock", + value: function _buildSVGClock() { + // Draw clock hands and others + var dialRadius = this.options.dialRadius; + var tickRadius = this.options.tickRadius; + var diameter = dialRadius * 2; + + var svg = Timepicker._createSVGEl('svg'); + svg.setAttribute('class', 'timepicker-svg'); + svg.setAttribute('width', diameter); + svg.setAttribute('height', diameter); + var g = Timepicker._createSVGEl('g'); + g.setAttribute('transform', 'translate(' + dialRadius + ',' + dialRadius + ')'); + var bearing = Timepicker._createSVGEl('circle'); + bearing.setAttribute('class', 'timepicker-canvas-bearing'); + bearing.setAttribute('cx', 0); + bearing.setAttribute('cy', 0); + bearing.setAttribute('r', 4); + var hand = Timepicker._createSVGEl('line'); + hand.setAttribute('x1', 0); + hand.setAttribute('y1', 0); + var bg = Timepicker._createSVGEl('circle'); + bg.setAttribute('class', 'timepicker-canvas-bg'); + bg.setAttribute('r', tickRadius); + g.appendChild(hand); + g.appendChild(bg); + g.appendChild(bearing); + svg.appendChild(g); + this._canvas.appendChild(svg); + + this.hand = hand; + this.bg = bg; + this.bearing = bearing; + this.g = g; + } + }, { + key: "_buildHoursView", + value: function _buildHoursView() { + var $tick = $('
'); + // Hours view + if (this.options.twelveHour) { + for (var i = 1; i < 13; i += 1) { + var tick = $tick.clone(); + var radian = i / 6 * Math.PI; + var radius = this.options.outerRadius; + tick.css({ + left: this.options.dialRadius + Math.sin(radian) * radius - this.options.tickRadius + 'px', + top: this.options.dialRadius - Math.cos(radian) * radius - this.options.tickRadius + 'px' + }); + tick.html(i === 0 ? '00' : i); + this.hoursView.appendChild(tick[0]); + // tick.on(mousedownEvent, mousedown); + } + } else { + for (var _i2 = 0; _i2 < 24; _i2 += 1) { + var _tick = $tick.clone(); + var _radian = _i2 / 6 * Math.PI; + var inner = _i2 > 0 && _i2 < 13; + var _radius = inner ? this.options.innerRadius : this.options.outerRadius; + _tick.css({ + left: this.options.dialRadius + Math.sin(_radian) * _radius - this.options.tickRadius + 'px', + top: this.options.dialRadius - Math.cos(_radian) * _radius - this.options.tickRadius + 'px' + }); + _tick.html(_i2 === 0 ? '00' : _i2); + this.hoursView.appendChild(_tick[0]); + // tick.on(mousedownEvent, mousedown); + } + } + } + }, { + key: "_buildMinutesView", + value: function _buildMinutesView() { + var $tick = $('
'); + // Minutes view + for (var i = 0; i < 60; i += 5) { + var tick = $tick.clone(); + var radian = i / 30 * Math.PI; + tick.css({ + left: this.options.dialRadius + Math.sin(radian) * this.options.outerRadius - this.options.tickRadius + 'px', + top: this.options.dialRadius - Math.cos(radian) * this.options.outerRadius - this.options.tickRadius + 'px' + }); + tick.html(Timepicker._addLeadingZero(i)); + this.minutesView.appendChild(tick[0]); + } + } + }, { + key: "_handleAmPmClick", + value: function _handleAmPmClick(e) { + var $btnClicked = $(e.target); + this.amOrPm = $btnClicked.hasClass('am-btn') ? 'AM' : 'PM'; + this._updateAmPmView(); + } + }, { + key: "_updateAmPmView", + value: function _updateAmPmView() { + if (this.options.twelveHour) { + this.$amBtn.toggleClass('text-primary', this.amOrPm === 'AM'); + this.$pmBtn.toggleClass('text-primary', this.amOrPm === 'PM'); + } + } + }, { + key: "_updateTimeFromInput", + value: function _updateTimeFromInput() { + // Get the time + var value = ((this.el.value || this.options.defaultTime || '') + '').split(':'); + if (this.options.twelveHour && !(typeof value[1] === 'undefined')) { + if (value[1].toUpperCase().indexOf('AM') > 0) { + this.amOrPm = 'AM'; + } else { + this.amOrPm = 'PM'; + } + value[1] = value[1].replace('AM', '').replace('PM', ''); + } + if (value[0] === 'now') { + var now = new Date(+new Date() + this.options.fromNow); + value = [now.getHours(), now.getMinutes()]; + if (this.options.twelveHour) { + this.amOrPm = value[0] >= 12 && value[0] < 24 ? 'PM' : 'AM'; + } + } + this.hours = +value[0] || 0; + this.minutes = +value[1] || 0; + this.spanHours.innerHTML = this.hours; + this.spanMinutes.innerHTML = Timepicker._addLeadingZero(this.minutes); + + this._updateAmPmView(); + } + }, { + key: "showView", + value: function showView(view, delay) { + if (view === 'minutes' && $(this.hoursView).css('visibility') === 'visible') { + // raiseCallback(this.options.beforeHourSelect); + } + var isHours = view === 'hours', + nextView = isHours ? this.hoursView : this.minutesView, + hideView = isHours ? this.minutesView : this.hoursView; + this.currentView = view; + + $(this.spanHours).toggleClass('text-primary', isHours); + $(this.spanMinutes).toggleClass('text-primary', !isHours); + + // Transition view + hideView.classList.add('timepicker-dial-out'); + $(nextView).css('visibility', 'visible').removeClass('timepicker-dial-out'); + + // Reset clock hand + this.resetClock(delay); + + // After transitions ended + clearTimeout(this.toggleViewTimer); + this.toggleViewTimer = setTimeout(function () { + $(hideView).css('visibility', 'hidden'); + }, this.options.duration); + } + }, { + key: "resetClock", + value: function resetClock(delay) { + var view = this.currentView, + value = this[view], + isHours = view === 'hours', + unit = Math.PI / (isHours ? 6 : 30), + radian = value * unit, + radius = isHours && value > 0 && value < 13 ? this.options.innerRadius : this.options.outerRadius, + x = Math.sin(radian) * radius, + y = -Math.cos(radian) * radius, + self = this; + + if (delay) { + $(this.canvas).addClass('timepicker-canvas-out'); + setTimeout(function () { + $(self.canvas).removeClass('timepicker-canvas-out'); + self.setHand(x, y); + }, delay); + } else { + this.setHand(x, y); + } + } + }, { + key: "setHand", + value: function setHand(x, y, roundBy5) { + var _this60 = this; + + var radian = Math.atan2(x, -y), + isHours = this.currentView === 'hours', + unit = Math.PI / (isHours || roundBy5 ? 6 : 30), + z = Math.sqrt(x * x + y * y), + inner = isHours && z < (this.options.outerRadius + this.options.innerRadius) / 2, + radius = inner ? this.options.innerRadius : this.options.outerRadius; + + if (this.options.twelveHour) { + radius = this.options.outerRadius; + } + + // Radian should in range [0, 2PI] + if (radian < 0) { + radian = Math.PI * 2 + radian; + } + + // Get the round value + var value = Math.round(radian / unit); + + // Get the round radian + radian = value * unit; + + // Correct the hours or minutes + if (this.options.twelveHour) { + if (isHours) { + if (value === 0) value = 12; + } else { + if (roundBy5) value *= 5; + if (value === 60) value = 0; + } + } else { + if (isHours) { + if (value === 12) { + value = 0; + } + value = inner ? value === 0 ? 12 : value : value === 0 ? 0 : value + 12; + } else { + if (roundBy5) { + value *= 5; + } + if (value === 60) { + value = 0; + } + } + } + + // Once hours or minutes changed, vibrate the device + if (this[this.currentView] !== value) { + if (this.vibrate && this.options.vibrate) { + // Do not vibrate too frequently + if (!this.vibrateTimer) { + navigator[this.vibrate](10); + this.vibrateTimer = setTimeout(function () { + _this60.vibrateTimer = null; + }, 100); + } + } + } + + this[this.currentView] = value; + if (isHours) { + this['spanHours'].innerHTML = value; + } else { + this['spanMinutes'].innerHTML = Timepicker._addLeadingZero(value); + } + + // Set clock hand and others' position + var cx1 = Math.sin(radian) * (radius - this.options.tickRadius), + cy1 = -Math.cos(radian) * (radius - this.options.tickRadius), + cx2 = Math.sin(radian) * radius, + cy2 = -Math.cos(radian) * radius; + this.hand.setAttribute('x2', cx1); + this.hand.setAttribute('y2', cy1); + this.bg.setAttribute('cx', cx2); + this.bg.setAttribute('cy', cy2); + } + }, { + key: "open", + value: function open() { + if (this.isOpen) { + return; + } + + this.isOpen = true; + this._updateTimeFromInput(); + this.showView('hours'); + + this.modal.open(); + } + }, { + key: "close", + value: function close() { + if (!this.isOpen) { + return; + } + + this.isOpen = false; + this.modal.close(); + } + + /** + * Finish timepicker selection. + */ + + }, { + key: "done", + value: function done(e, clearValue) { + // Set input value + var last = this.el.value; + var value = clearValue ? '' : Timepicker._addLeadingZero(this.hours) + ':' + Timepicker._addLeadingZero(this.minutes); + this.time = value; + if (!clearValue && this.options.twelveHour) { + value = value + " " + this.amOrPm; + } + this.el.value = value; + + // Trigger change event + if (value !== last) { + this.$el.trigger('change'); + } + + this.close(); + this.el.focus(); + } + }, { + key: "clear", + value: function clear() { + this.done(null, true); + } + }], [{ + key: "init", + value: function init(els, options) { + return _get(Timepicker.__proto__ || Object.getPrototypeOf(Timepicker), "init", this).call(this, this, els, options); + } + }, { + key: "_addLeadingZero", + value: function _addLeadingZero(num) { + return (num < 10 ? '0' : '') + num; + } + }, { + key: "_createSVGEl", + value: function _createSVGEl(name) { + var svgNS = 'http://www.w3.org/2000/svg'; + return document.createElementNS(svgNS, name); + } + + /** + * @typedef {Object} Point + * @property {number} x The X Coordinate + * @property {number} y The Y Coordinate + */ + + /** + * Get x position of mouse or touch event + * @param {Event} e + * @return {Point} x and y location + */ + + }, { + key: "_Pos", + value: function _Pos(e) { + if (e.targetTouches && e.targetTouches.length >= 1) { + return { x: e.targetTouches[0].clientX, y: e.targetTouches[0].clientY }; + } + // mouse event + return { x: e.clientX, y: e.clientY }; + } + + /** + * Get Instance + */ + + }, { + key: "getInstance", + value: function getInstance(el) { + var domElem = !!el.jquery ? el[0] : el; + return domElem.M_Timepicker; + } + }, { + key: "defaults", + get: function () { + return _defaults; + } + }]); + + return Timepicker; + }(Component); + + Timepicker._template = [''].join(''); + + M.Timepicker = Timepicker; + + if (M.jQueryLoaded) { + M.initializeJqueryWrapper(Timepicker, 'timepicker', 'M_Timepicker'); + } +})(cash); +;(function ($) { + 'use strict'; + + var _defaults = {}; + + /** + * @class + * + */ + + var CharacterCounter = function (_Component17) { + _inherits(CharacterCounter, _Component17); + + /** + * Construct CharacterCounter instance + * @constructor + * @param {Element} el + * @param {Object} options + */ + function CharacterCounter(el, options) { + _classCallCheck(this, CharacterCounter); + + var _this61 = _possibleConstructorReturn(this, (CharacterCounter.__proto__ || Object.getPrototypeOf(CharacterCounter)).call(this, CharacterCounter, el, options)); + + _this61.el.M_CharacterCounter = _this61; + + /** + * Options for the character counter + */ + _this61.options = $.extend({}, CharacterCounter.defaults, options); + + _this61.isInvalid = false; + _this61.isValidLength = false; + _this61._setupCounter(); + _this61._setupEventHandlers(); + return _this61; + } + + _createClass(CharacterCounter, [{ + key: "destroy", + + + /** + * Teardown component + */ + value: function destroy() { + this._removeEventHandlers(); + this.el.CharacterCounter = undefined; + this._removeCounter(); + } + + /** + * Setup Event Handlers + */ + + }, { + key: "_setupEventHandlers", + value: function _setupEventHandlers() { + this._handleUpdateCounterBound = this.updateCounter.bind(this); + + this.el.addEventListener('focus', this._handleUpdateCounterBound, true); + this.el.addEventListener('input', this._handleUpdateCounterBound, true); + } + + /** + * Remove Event Handlers + */ + + }, { + key: "_removeEventHandlers", + value: function _removeEventHandlers() { + this.el.removeEventListener('focus', this._handleUpdateCounterBound, true); + this.el.removeEventListener('input', this._handleUpdateCounterBound, true); + } + + /** + * Setup counter element + */ + + }, { + key: "_setupCounter", + value: function _setupCounter() { + this.counterEl = document.createElement('span'); + $(this.counterEl).addClass('character-counter').css({ + float: 'right', + 'font-size': '12px', + height: 1 + }); + + this.$el.parent().append(this.counterEl); + } + + /** + * Remove counter element + */ + + }, { + key: "_removeCounter", + value: function _removeCounter() { + $(this.counterEl).remove(); + } + + /** + * Update counter + */ + + }, { + key: "updateCounter", + value: function updateCounter() { + var maxLength = +this.$el.attr('data-length'), + actualLength = this.el.value.length; + this.isValidLength = actualLength <= maxLength; + var counterString = actualLength; + + if (maxLength) { + counterString += '/' + maxLength; + this._validateInput(); + } + + $(this.counterEl).html(counterString); + } + + /** + * Add validation classes + */ + + }, { + key: "_validateInput", + value: function _validateInput() { + if (this.isValidLength && this.isInvalid) { + this.isInvalid = false; + this.$el.removeClass('invalid'); + } else if (!this.isValidLength && !this.isInvalid) { + this.isInvalid = true; + this.$el.removeClass('valid'); + this.$el.addClass('invalid'); + } + } + }], [{ + key: "init", + value: function init(els, options) { + return _get(CharacterCounter.__proto__ || Object.getPrototypeOf(CharacterCounter), "init", this).call(this, this, els, options); + } + + /** + * Get Instance + */ + + }, { + key: "getInstance", + value: function getInstance(el) { + var domElem = !!el.jquery ? el[0] : el; + return domElem.M_CharacterCounter; + } + }, { + key: "defaults", + get: function () { + return _defaults; + } + }]); + + return CharacterCounter; + }(Component); + + M.CharacterCounter = CharacterCounter; + + if (M.jQueryLoaded) { + M.initializeJqueryWrapper(CharacterCounter, 'characterCounter', 'M_CharacterCounter'); + } +})(cash); +;(function ($) { + 'use strict'; + + var _defaults = { + duration: 200, // ms + dist: -100, // zoom scale TODO: make this more intuitive as an option + shift: 0, // spacing for center image + padding: 0, // Padding between non center items + numVisible: 5, // Number of visible items in carousel + fullWidth: false, // Change to full width styles + indicators: false, // Toggle indicators + noWrap: false, // Don't wrap around and cycle through items. + onCycleTo: null // Callback for when a new slide is cycled to. + }; + + /** + * @class + * + */ + + var Carousel = function (_Component18) { + _inherits(Carousel, _Component18); + + /** + * Construct Carousel instance + * @constructor + * @param {Element} el + * @param {Object} options + */ + function Carousel(el, options) { + _classCallCheck(this, Carousel); + + var _this62 = _possibleConstructorReturn(this, (Carousel.__proto__ || Object.getPrototypeOf(Carousel)).call(this, Carousel, el, options)); + + _this62.el.M_Carousel = _this62; + + /** + * Options for the carousel + * @member Carousel#options + * @prop {Number} duration + * @prop {Number} dist + * @prop {Number} shift + * @prop {Number} padding + * @prop {Number} numVisible + * @prop {Boolean} fullWidth + * @prop {Boolean} indicators + * @prop {Boolean} noWrap + * @prop {Function} onCycleTo + */ + _this62.options = $.extend({}, Carousel.defaults, options); + + // Setup + _this62.hasMultipleSlides = _this62.$el.find('.carousel-item').length > 1; + _this62.showIndicators = _this62.options.indicators && _this62.hasMultipleSlides; + _this62.noWrap = _this62.options.noWrap || !_this62.hasMultipleSlides; + _this62.pressed = false; + _this62.dragged = false; + _this62.offset = _this62.target = 0; + _this62.images = []; + _this62.itemWidth = _this62.$el.find('.carousel-item').first().innerWidth(); + _this62.itemHeight = _this62.$el.find('.carousel-item').first().innerHeight(); + _this62.dim = _this62.itemWidth * 2 + _this62.options.padding || 1; // Make sure dim is non zero for divisions. + _this62._autoScrollBound = _this62._autoScroll.bind(_this62); + _this62._trackBound = _this62._track.bind(_this62); + + // Full Width carousel setup + if (_this62.options.fullWidth) { + _this62.options.dist = 0; + _this62._setCarouselHeight(); + + // Offset fixed items when indicators. + if (_this62.showIndicators) { + _this62.$el.find('.carousel-fixed-item').addClass('with-indicators'); + } + } + + // Iterate through slides + _this62.$indicators = $('
    '); + _this62.$el.find('.carousel-item').each(function (el, i) { + _this62.images.push(el); + if (_this62.showIndicators) { + var $indicator = $('
  • '); + + // Add active to first by default. + if (i === 0) { + $indicator[0].classList.add('active'); + } + + _this62.$indicators.append($indicator); + } + }); + if (_this62.showIndicators) { + _this62.$el.append(_this62.$indicators); + } + _this62.count = _this62.images.length; + + // Cap numVisible at count + _this62.options.numVisible = Math.min(_this62.count, _this62.options.numVisible); + + // Setup cross browser string + _this62.xform = 'transform'; + ['webkit', 'Moz', 'O', 'ms'].every(function (prefix) { + var e = prefix + 'Transform'; + if (typeof document.body.style[e] !== 'undefined') { + _this62.xform = e; + return false; + } + return true; + }); + + _this62._setupEventHandlers(); + _this62._scroll(_this62.offset); + return _this62; + } + + _createClass(Carousel, [{ + key: "destroy", + + + /** + * Teardown component + */ + value: function destroy() { + this._removeEventHandlers(); + this.el.M_Carousel = undefined; + } + + /** + * Setup Event Handlers + */ + + }, { + key: "_setupEventHandlers", + value: function _setupEventHandlers() { + var _this63 = this; + + this._handleCarouselTapBound = this._handleCarouselTap.bind(this); + this._handleCarouselDragBound = this._handleCarouselDrag.bind(this); + this._handleCarouselReleaseBound = this._handleCarouselRelease.bind(this); + this._handleCarouselClickBound = this._handleCarouselClick.bind(this); + + if (typeof window.ontouchstart !== 'undefined') { + this.el.addEventListener('touchstart', this._handleCarouselTapBound); + this.el.addEventListener('touchmove', this._handleCarouselDragBound); + this.el.addEventListener('touchend', this._handleCarouselReleaseBound); + } + + this.el.addEventListener('mousedown', this._handleCarouselTapBound); + this.el.addEventListener('mousemove', this._handleCarouselDragBound); + this.el.addEventListener('mouseup', this._handleCarouselReleaseBound); + this.el.addEventListener('mouseleave', this._handleCarouselReleaseBound); + this.el.addEventListener('click', this._handleCarouselClickBound); + + if (this.showIndicators && this.$indicators) { + this._handleIndicatorClickBound = this._handleIndicatorClick.bind(this); + this.$indicators.find('.indicator-item').each(function (el, i) { + el.addEventListener('click', _this63._handleIndicatorClickBound); + }); + } + + // Resize + var throttledResize = M.throttle(this._handleResize, 200); + this._handleThrottledResizeBound = throttledResize.bind(this); + + window.addEventListener('resize', this._handleThrottledResizeBound); + } + + /** + * Remove Event Handlers + */ + + }, { + key: "_removeEventHandlers", + value: function _removeEventHandlers() { + var _this64 = this; + + if (typeof window.ontouchstart !== 'undefined') { + this.el.removeEventListener('touchstart', this._handleCarouselTapBound); + this.el.removeEventListener('touchmove', this._handleCarouselDragBound); + this.el.removeEventListener('touchend', this._handleCarouselReleaseBound); + } + this.el.removeEventListener('mousedown', this._handleCarouselTapBound); + this.el.removeEventListener('mousemove', this._handleCarouselDragBound); + this.el.removeEventListener('mouseup', this._handleCarouselReleaseBound); + this.el.removeEventListener('mouseleave', this._handleCarouselReleaseBound); + this.el.removeEventListener('click', this._handleCarouselClickBound); + + if (this.showIndicators && this.$indicators) { + this.$indicators.find('.indicator-item').each(function (el, i) { + el.removeEventListener('click', _this64._handleIndicatorClickBound); + }); + } + + window.removeEventListener('resize', this._handleThrottledResizeBound); + } + + /** + * Handle Carousel Tap + * @param {Event} e + */ + + }, { + key: "_handleCarouselTap", + value: function _handleCarouselTap(e) { + // Fixes firefox draggable image bug + if (e.type === 'mousedown' && $(e.target).is('img')) { + e.preventDefault(); + } + this.pressed = true; + this.dragged = false; + this.verticalDragged = false; + this.reference = this._xpos(e); + this.referenceY = this._ypos(e); + + this.velocity = this.amplitude = 0; + this.frame = this.offset; + this.timestamp = Date.now(); + clearInterval(this.ticker); + this.ticker = setInterval(this._trackBound, 100); + } + + /** + * Handle Carousel Drag + * @param {Event} e + */ + + }, { + key: "_handleCarouselDrag", + value: function _handleCarouselDrag(e) { + var x = void 0, + y = void 0, + delta = void 0, + deltaY = void 0; + if (this.pressed) { + x = this._xpos(e); + y = this._ypos(e); + delta = this.reference - x; + deltaY = Math.abs(this.referenceY - y); + if (deltaY < 30 && !this.verticalDragged) { + // If vertical scrolling don't allow dragging. + if (delta > 2 || delta < -2) { + this.dragged = true; + this.reference = x; + this._scroll(this.offset + delta); + } + } else if (this.dragged) { + // If dragging don't allow vertical scroll. + e.preventDefault(); + e.stopPropagation(); + return false; + } else { + // Vertical scrolling. + this.verticalDragged = true; + } + } + + if (this.dragged) { + // If dragging don't allow vertical scroll. + e.preventDefault(); + e.stopPropagation(); + return false; + } + } + + /** + * Handle Carousel Release + * @param {Event} e + */ + + }, { + key: "_handleCarouselRelease", + value: function _handleCarouselRelease(e) { + if (this.pressed) { + this.pressed = false; + } else { + return; + } + + clearInterval(this.ticker); + this.target = this.offset; + if (this.velocity > 10 || this.velocity < -10) { + this.amplitude = 0.9 * this.velocity; + this.target = this.offset + this.amplitude; + } + this.target = Math.round(this.target / this.dim) * this.dim; + + // No wrap of items. + if (this.noWrap) { + if (this.target >= this.dim * (this.count - 1)) { + this.target = this.dim * (this.count - 1); + } else if (this.target < 0) { + this.target = 0; + } + } + this.amplitude = this.target - this.offset; + this.timestamp = Date.now(); + requestAnimationFrame(this._autoScrollBound); + + if (this.dragged) { + e.preventDefault(); + e.stopPropagation(); + } + return false; + } + + /** + * Handle Carousel CLick + * @param {Event} e + */ + + }, { + key: "_handleCarouselClick", + value: function _handleCarouselClick(e) { + // Disable clicks if carousel was dragged. + if (this.dragged) { + e.preventDefault(); + e.stopPropagation(); + return false; + } else if (!this.options.fullWidth) { + var clickedIndex = $(e.target).closest('.carousel-item').index(); + var diff = this._wrap(this.center) - clickedIndex; + + // Disable clicks if carousel was shifted by click + if (diff !== 0) { + e.preventDefault(); + e.stopPropagation(); + } + this._cycleTo(clickedIndex); + } + } + + /** + * Handle Indicator CLick + * @param {Event} e + */ + + }, { + key: "_handleIndicatorClick", + value: function _handleIndicatorClick(e) { + e.stopPropagation(); + + var indicator = $(e.target).closest('.indicator-item'); + if (indicator.length) { + this._cycleTo(indicator.index()); + } + } + + /** + * Handle Throttle Resize + * @param {Event} e + */ + + }, { + key: "_handleResize", + value: function _handleResize(e) { + if (this.options.fullWidth) { + this.itemWidth = this.$el.find('.carousel-item').first().innerWidth(); + this.imageHeight = this.$el.find('.carousel-item.active').height(); + this.dim = this.itemWidth * 2 + this.options.padding; + this.offset = this.center * 2 * this.itemWidth; + this.target = this.offset; + this._setCarouselHeight(true); + } else { + this._scroll(); + } + } + + /** + * Set carousel height based on first slide + * @param {Booleam} imageOnly - true for image slides + */ + + }, { + key: "_setCarouselHeight", + value: function _setCarouselHeight(imageOnly) { + var _this65 = this; + + var firstSlide = this.$el.find('.carousel-item.active').length ? this.$el.find('.carousel-item.active').first() : this.$el.find('.carousel-item').first(); + var firstImage = firstSlide.find('img').first(); + if (firstImage.length) { + if (firstImage[0].complete) { + // If image won't trigger the load event + var imageHeight = firstImage.height(); + if (imageHeight > 0) { + this.$el.css('height', imageHeight + 'px'); + } else { + // If image still has no height, use the natural dimensions to calculate + var naturalWidth = firstImage[0].naturalWidth; + var naturalHeight = firstImage[0].naturalHeight; + var adjustedHeight = this.$el.width() / naturalWidth * naturalHeight; + this.$el.css('height', adjustedHeight + 'px'); + } + } else { + // Get height when image is loaded normally + firstImage.one('load', function (el, i) { + _this65.$el.css('height', el.offsetHeight + 'px'); + }); + } + } else if (!imageOnly) { + var slideHeight = firstSlide.height(); + this.$el.css('height', slideHeight + 'px'); + } + } + + /** + * Get x position from event + * @param {Event} e + */ + + }, { + key: "_xpos", + value: function _xpos(e) { + // touch event + if (e.targetTouches && e.targetTouches.length >= 1) { + return e.targetTouches[0].clientX; + } + + // mouse event + return e.clientX; + } + + /** + * Get y position from event + * @param {Event} e + */ + + }, { + key: "_ypos", + value: function _ypos(e) { + // touch event + if (e.targetTouches && e.targetTouches.length >= 1) { + return e.targetTouches[0].clientY; + } + + // mouse event + return e.clientY; + } + + /** + * Wrap index + * @param {Number} x + */ + + }, { + key: "_wrap", + value: function _wrap(x) { + return x >= this.count ? x % this.count : x < 0 ? this._wrap(this.count + x % this.count) : x; + } + + /** + * Tracks scrolling information + */ + + }, { + key: "_track", + value: function _track() { + var now = void 0, + elapsed = void 0, + delta = void 0, + v = void 0; + + now = Date.now(); + elapsed = now - this.timestamp; + this.timestamp = now; + delta = this.offset - this.frame; + this.frame = this.offset; + + v = 1000 * delta / (1 + elapsed); + this.velocity = 0.8 * v + 0.2 * this.velocity; + } + + /** + * Auto scrolls to nearest carousel item. + */ + + }, { + key: "_autoScroll", + value: function _autoScroll() { + var elapsed = void 0, + delta = void 0; + + if (this.amplitude) { + elapsed = Date.now() - this.timestamp; + delta = this.amplitude * Math.exp(-elapsed / this.options.duration); + if (delta > 2 || delta < -2) { + this._scroll(this.target - delta); + requestAnimationFrame(this._autoScrollBound); + } else { + this._scroll(this.target); + } + } + } + + /** + * Scroll to target + * @param {Number} x + */ + + }, { + key: "_scroll", + value: function _scroll(x) { + var _this66 = this; + + // Track scrolling state + if (!this.$el.hasClass('scrolling')) { + this.el.classList.add('scrolling'); + } + if (this.scrollingTimeout != null) { + window.clearTimeout(this.scrollingTimeout); + } + this.scrollingTimeout = window.setTimeout(function () { + _this66.$el.removeClass('scrolling'); + }, this.options.duration); + + // Start actual scroll + var i = void 0, + half = void 0, + delta = void 0, + dir = void 0, + tween = void 0, + el = void 0, + alignment = void 0, + zTranslation = void 0, + tweenedOpacity = void 0, + centerTweenedOpacity = void 0; + var lastCenter = this.center; + var numVisibleOffset = 1 / this.options.numVisible; + + this.offset = typeof x === 'number' ? x : this.offset; + this.center = Math.floor((this.offset + this.dim / 2) / this.dim); + delta = this.offset - this.center * this.dim; + dir = delta < 0 ? 1 : -1; + tween = -dir * delta * 2 / this.dim; + half = this.count >> 1; + + if (this.options.fullWidth) { + alignment = 'translateX(0)'; + centerTweenedOpacity = 1; + } else { + alignment = 'translateX(' + (this.el.clientWidth - this.itemWidth) / 2 + 'px) '; + alignment += 'translateY(' + (this.el.clientHeight - this.itemHeight) / 2 + 'px)'; + centerTweenedOpacity = 1 - numVisibleOffset * tween; + } + + // Set indicator active + if (this.showIndicators) { + var diff = this.center % this.count; + var activeIndicator = this.$indicators.find('.indicator-item.active'); + if (activeIndicator.index() !== diff) { + activeIndicator.removeClass('active'); + this.$indicators.find('.indicator-item').eq(diff)[0].classList.add('active'); + } + } + + // center + // Don't show wrapped items. + if (!this.noWrap || this.center >= 0 && this.center < this.count) { + el = this.images[this._wrap(this.center)]; + + // Add active class to center item. + if (!$(el).hasClass('active')) { + this.$el.find('.carousel-item').removeClass('active'); + el.classList.add('active'); + } + var transformString = alignment + " translateX(" + -delta / 2 + "px) translateX(" + dir * this.options.shift * tween * i + "px) translateZ(" + this.options.dist * tween + "px)"; + this._updateItemStyle(el, centerTweenedOpacity, 0, transformString); + } + + for (i = 1; i <= half; ++i) { + // right side + if (this.options.fullWidth) { + zTranslation = this.options.dist; + tweenedOpacity = i === half && delta < 0 ? 1 - tween : 1; + } else { + zTranslation = this.options.dist * (i * 2 + tween * dir); + tweenedOpacity = 1 - numVisibleOffset * (i * 2 + tween * dir); + } + // Don't show wrapped items. + if (!this.noWrap || this.center + i < this.count) { + el = this.images[this._wrap(this.center + i)]; + var _transformString = alignment + " translateX(" + (this.options.shift + (this.dim * i - delta) / 2) + "px) translateZ(" + zTranslation + "px)"; + this._updateItemStyle(el, tweenedOpacity, -i, _transformString); + } + + // left side + if (this.options.fullWidth) { + zTranslation = this.options.dist; + tweenedOpacity = i === half && delta > 0 ? 1 - tween : 1; + } else { + zTranslation = this.options.dist * (i * 2 - tween * dir); + tweenedOpacity = 1 - numVisibleOffset * (i * 2 - tween * dir); + } + // Don't show wrapped items. + if (!this.noWrap || this.center - i >= 0) { + el = this.images[this._wrap(this.center - i)]; + var _transformString2 = alignment + " translateX(" + (-this.options.shift + (-this.dim * i - delta) / 2) + "px) translateZ(" + zTranslation + "px)"; + this._updateItemStyle(el, tweenedOpacity, -i, _transformString2); + } + } + + // center + // Don't show wrapped items. + if (!this.noWrap || this.center >= 0 && this.center < this.count) { + el = this.images[this._wrap(this.center)]; + var _transformString3 = alignment + " translateX(" + -delta / 2 + "px) translateX(" + dir * this.options.shift * tween + "px) translateZ(" + this.options.dist * tween + "px)"; + this._updateItemStyle(el, centerTweenedOpacity, 0, _transformString3); + } + + // onCycleTo callback + var $currItem = this.$el.find('.carousel-item').eq(this._wrap(this.center)); + if (lastCenter !== this.center && typeof this.options.onCycleTo === 'function') { + this.options.onCycleTo.call(this, $currItem[0], this.dragged); + } + + // One time callback + if (typeof this.oneTimeCallback === 'function') { + this.oneTimeCallback.call(this, $currItem[0], this.dragged); + this.oneTimeCallback = null; + } + } + + /** + * Cycle to target + * @param {Element} el + * @param {Number} opacity + * @param {Number} zIndex + * @param {String} transform + */ + + }, { + key: "_updateItemStyle", + value: function _updateItemStyle(el, opacity, zIndex, transform) { + el.style[this.xform] = transform; + el.style.zIndex = zIndex; + el.style.opacity = opacity; + el.style.visibility = 'visible'; + } + + /** + * Cycle to target + * @param {Number} n + * @param {Function} callback + */ + + }, { + key: "_cycleTo", + value: function _cycleTo(n, callback) { + var diff = this.center % this.count - n; + + // Account for wraparound. + if (!this.noWrap) { + if (diff < 0) { + if (Math.abs(diff + this.count) < Math.abs(diff)) { + diff += this.count; + } + } else if (diff > 0) { + if (Math.abs(diff - this.count) < diff) { + diff -= this.count; + } + } + } + + this.target = this.dim * Math.round(this.offset / this.dim); + // Next + if (diff < 0) { + this.target += this.dim * Math.abs(diff); + + // Prev + } else if (diff > 0) { + this.target -= this.dim * diff; + } + + // Set one time callback + if (typeof callback === 'function') { + this.oneTimeCallback = callback; + } + + // Scroll + if (this.offset !== this.target) { + this.amplitude = this.target - this.offset; + this.timestamp = Date.now(); + requestAnimationFrame(this._autoScrollBound); + } + } + + /** + * Cycle to next item + * @param {Number} [n] + */ + + }, { + key: "next", + value: function next(n) { + if (n === undefined || isNaN(n)) { + n = 1; + } + + var index = this.center + n; + if (index >= this.count || index < 0) { + if (this.noWrap) { + return; + } + + index = this._wrap(index); + } + this._cycleTo(index); + } + + /** + * Cycle to previous item + * @param {Number} [n] + */ + + }, { + key: "prev", + value: function prev(n) { + if (n === undefined || isNaN(n)) { + n = 1; + } + + var index = this.center - n; + if (index >= this.count || index < 0) { + if (this.noWrap) { + return; + } + + index = this._wrap(index); + } + + this._cycleTo(index); + } + + /** + * Cycle to nth item + * @param {Number} [n] + * @param {Function} callback + */ + + }, { + key: "set", + value: function set(n, callback) { + if (n === undefined || isNaN(n)) { + n = 0; + } + + if (n > this.count || n < 0) { + if (this.noWrap) { + return; + } + + n = this._wrap(n); + } + + this._cycleTo(n, callback); + } + }], [{ + key: "init", + value: function init(els, options) { + return _get(Carousel.__proto__ || Object.getPrototypeOf(Carousel), "init", this).call(this, this, els, options); + } + + /** + * Get Instance + */ + + }, { + key: "getInstance", + value: function getInstance(el) { + var domElem = !!el.jquery ? el[0] : el; + return domElem.M_Carousel; + } + }, { + key: "defaults", + get: function () { + return _defaults; + } + }]); + + return Carousel; + }(Component); + + M.Carousel = Carousel; + + if (M.jQueryLoaded) { + M.initializeJqueryWrapper(Carousel, 'carousel', 'M_Carousel'); + } +})(cash); +;(function ($) { + 'use strict'; + + var _defaults = { + onOpen: undefined, + onClose: undefined + }; + + /** + * @class + * + */ + + var TapTarget = function (_Component19) { + _inherits(TapTarget, _Component19); + + /** + * Construct TapTarget instance + * @constructor + * @param {Element} el + * @param {Object} options + */ + function TapTarget(el, options) { + _classCallCheck(this, TapTarget); + + var _this67 = _possibleConstructorReturn(this, (TapTarget.__proto__ || Object.getPrototypeOf(TapTarget)).call(this, TapTarget, el, options)); + + _this67.el.M_TapTarget = _this67; + + /** + * Options for the select + * @member TapTarget#options + * @prop {Function} onOpen - Callback function called when feature discovery is opened + * @prop {Function} onClose - Callback function called when feature discovery is closed + */ + _this67.options = $.extend({}, TapTarget.defaults, options); + + _this67.isOpen = false; + + // setup + _this67.$origin = $('#' + _this67.$el.attr('data-target')); + _this67._setup(); + + _this67._calculatePositioning(); + _this67._setupEventHandlers(); + return _this67; + } + + _createClass(TapTarget, [{ + key: "destroy", + + + /** + * Teardown component + */ + value: function destroy() { + this._removeEventHandlers(); + this.el.TapTarget = undefined; + } + + /** + * Setup Event Handlers + */ + + }, { + key: "_setupEventHandlers", + value: function _setupEventHandlers() { + this._handleDocumentClickBound = this._handleDocumentClick.bind(this); + this._handleTargetClickBound = this._handleTargetClick.bind(this); + this._handleOriginClickBound = this._handleOriginClick.bind(this); + + this.el.addEventListener('click', this._handleTargetClickBound); + this.originEl.addEventListener('click', this._handleOriginClickBound); + + // Resize + var throttledResize = M.throttle(this._handleResize, 200); + this._handleThrottledResizeBound = throttledResize.bind(this); + + window.addEventListener('resize', this._handleThrottledResizeBound); + } + + /** + * Remove Event Handlers + */ + + }, { + key: "_removeEventHandlers", + value: function _removeEventHandlers() { + this.el.removeEventListener('click', this._handleTargetClickBound); + this.originEl.removeEventListener('click', this._handleOriginClickBound); + window.removeEventListener('resize', this._handleThrottledResizeBound); + } + + /** + * Handle Target Click + * @param {Event} e + */ + + }, { + key: "_handleTargetClick", + value: function _handleTargetClick(e) { + this.open(); + } + + /** + * Handle Origin Click + * @param {Event} e + */ + + }, { + key: "_handleOriginClick", + value: function _handleOriginClick(e) { + this.close(); + } + + /** + * Handle Resize + * @param {Event} e + */ + + }, { + key: "_handleResize", + value: function _handleResize(e) { + this._calculatePositioning(); + } + + /** + * Handle Resize + * @param {Event} e + */ + + }, { + key: "_handleDocumentClick", + value: function _handleDocumentClick(e) { + if (!$(e.target).closest('.tap-target-wrapper').length) { + this.close(); + e.preventDefault(); + e.stopPropagation(); + } + } + + /** + * Setup Tap Target + */ + + }, { + key: "_setup", + value: function _setup() { + // Creating tap target + this.wrapper = this.$el.parent()[0]; + this.waveEl = $(this.wrapper).find('.tap-target-wave')[0]; + this.originEl = $(this.wrapper).find('.tap-target-origin')[0]; + this.contentEl = this.$el.find('.tap-target-content')[0]; + + // Creating wrapper + if (!$(this.wrapper).hasClass('.tap-target-wrapper')) { + this.wrapper = document.createElement('div'); + this.wrapper.classList.add('tap-target-wrapper'); + this.$el.before($(this.wrapper)); + this.wrapper.append(this.el); + } + + // Creating content + if (!this.contentEl) { + this.contentEl = document.createElement('div'); + this.contentEl.classList.add('tap-target-content'); + this.$el.append(this.contentEl); + } + + // Creating foreground wave + if (!this.waveEl) { + this.waveEl = document.createElement('div'); + this.waveEl.classList.add('tap-target-wave'); + + // Creating origin + if (!this.originEl) { + this.originEl = this.$origin.clone(true, true); + this.originEl.addClass('tap-target-origin'); + this.originEl.removeAttr('id'); + this.originEl.removeAttr('style'); + this.originEl = this.originEl[0]; + this.waveEl.append(this.originEl); + } + + this.wrapper.append(this.waveEl); + } + } + + /** + * Calculate positioning + */ + + }, { + key: "_calculatePositioning", + value: function _calculatePositioning() { + // Element or parent is fixed position? + var isFixed = this.$origin.css('position') === 'fixed'; + if (!isFixed) { + var parents = this.$origin.parents(); + for (var i = 0; i < parents.length; i++) { + isFixed = $(parents[i]).css('position') == 'fixed'; + if (isFixed) { + break; + } + } + } + + // Calculating origin + var originWidth = this.$origin.outerWidth(); + var originHeight = this.$origin.outerHeight(); + var originTop = isFixed ? this.$origin.offset().top - M.getDocumentScrollTop() : this.$origin.offset().top; + var originLeft = isFixed ? this.$origin.offset().left - M.getDocumentScrollLeft() : this.$origin.offset().left; + + // Calculating screen + var windowWidth = window.innerWidth; + var windowHeight = window.innerHeight; + var centerX = windowWidth / 2; + var centerY = windowHeight / 2; + var isLeft = originLeft <= centerX; + var isRight = originLeft > centerX; + var isTop = originTop <= centerY; + var isBottom = originTop > centerY; + var isCenterX = originLeft >= windowWidth * 0.25 && originLeft <= windowWidth * 0.75; + + // Calculating tap target + var tapTargetWidth = this.$el.outerWidth(); + var tapTargetHeight = this.$el.outerHeight(); + var tapTargetTop = originTop + originHeight / 2 - tapTargetHeight / 2; + var tapTargetLeft = originLeft + originWidth / 2 - tapTargetWidth / 2; + var tapTargetPosition = isFixed ? 'fixed' : 'absolute'; + + // Calculating content + var tapTargetTextWidth = isCenterX ? tapTargetWidth : tapTargetWidth / 2 + originWidth; + var tapTargetTextHeight = tapTargetHeight / 2; + var tapTargetTextTop = isTop ? tapTargetHeight / 2 : 0; + var tapTargetTextBottom = 0; + var tapTargetTextLeft = isLeft && !isCenterX ? tapTargetWidth / 2 - originWidth : 0; + var tapTargetTextRight = 0; + var tapTargetTextPadding = originWidth; + var tapTargetTextAlign = isBottom ? 'bottom' : 'top'; + + // Calculating wave + var tapTargetWaveWidth = originWidth > originHeight ? originWidth * 2 : originWidth * 2; + var tapTargetWaveHeight = tapTargetWaveWidth; + var tapTargetWaveTop = tapTargetHeight / 2 - tapTargetWaveHeight / 2; + var tapTargetWaveLeft = tapTargetWidth / 2 - tapTargetWaveWidth / 2; + + // Setting tap target + var tapTargetWrapperCssObj = {}; + tapTargetWrapperCssObj.top = isTop ? tapTargetTop + 'px' : ''; + tapTargetWrapperCssObj.right = isRight ? windowWidth - tapTargetLeft - tapTargetWidth + 'px' : ''; + tapTargetWrapperCssObj.bottom = isBottom ? windowHeight - tapTargetTop - tapTargetHeight + 'px' : ''; + tapTargetWrapperCssObj.left = isLeft ? tapTargetLeft + 'px' : ''; + tapTargetWrapperCssObj.position = tapTargetPosition; + $(this.wrapper).css(tapTargetWrapperCssObj); + + // Setting content + $(this.contentEl).css({ + width: tapTargetTextWidth + 'px', + height: tapTargetTextHeight + 'px', + top: tapTargetTextTop + 'px', + right: tapTargetTextRight + 'px', + bottom: tapTargetTextBottom + 'px', + left: tapTargetTextLeft + 'px', + padding: tapTargetTextPadding + 'px', + verticalAlign: tapTargetTextAlign + }); + + // Setting wave + $(this.waveEl).css({ + top: tapTargetWaveTop + 'px', + left: tapTargetWaveLeft + 'px', + width: tapTargetWaveWidth + 'px', + height: tapTargetWaveHeight + 'px' + }); + } + + /** + * Open TapTarget + */ + + }, { + key: "open", + value: function open() { + if (this.isOpen) { + return; + } + + // onOpen callback + if (typeof this.options.onOpen === 'function') { + this.options.onOpen.call(this, this.$origin[0]); + } + + this.isOpen = true; + this.wrapper.classList.add('open'); + + document.body.addEventListener('click', this._handleDocumentClickBound, true); + document.body.addEventListener('touchend', this._handleDocumentClickBound); + } + + /** + * Close Tap Target + */ + + }, { + key: "close", + value: function close() { + if (!this.isOpen) { + return; + } + + // onClose callback + if (typeof this.options.onClose === 'function') { + this.options.onClose.call(this, this.$origin[0]); + } + + this.isOpen = false; + this.wrapper.classList.remove('open'); + + document.body.removeEventListener('click', this._handleDocumentClickBound, true); + document.body.removeEventListener('touchend', this._handleDocumentClickBound); + } + }], [{ + key: "init", + value: function init(els, options) { + return _get(TapTarget.__proto__ || Object.getPrototypeOf(TapTarget), "init", this).call(this, this, els, options); + } + + /** + * Get Instance + */ + + }, { + key: "getInstance", + value: function getInstance(el) { + var domElem = !!el.jquery ? el[0] : el; + return domElem.M_TapTarget; + } + }, { + key: "defaults", + get: function () { + return _defaults; + } + }]); + + return TapTarget; + }(Component); + + M.TapTarget = TapTarget; + + if (M.jQueryLoaded) { + M.initializeJqueryWrapper(TapTarget, 'tapTarget', 'M_TapTarget'); + } +})(cash); +;(function ($) { + 'use strict'; + + var _defaults = { + classes: '', + dropdownOptions: {} + }; + + /** + * @class + * + */ + + var FormSelect = function (_Component20) { + _inherits(FormSelect, _Component20); + + /** + * Construct FormSelect instance + * @constructor + * @param {Element} el + * @param {Object} options + */ + function FormSelect(el, options) { + _classCallCheck(this, FormSelect); + + // Don't init if browser default version + var _this68 = _possibleConstructorReturn(this, (FormSelect.__proto__ || Object.getPrototypeOf(FormSelect)).call(this, FormSelect, el, options)); + + if (_this68.$el.hasClass('browser-default')) { + return _possibleConstructorReturn(_this68); + } + + _this68.el.M_FormSelect = _this68; + + /** + * Options for the select + * @member FormSelect#options + */ + _this68.options = $.extend({}, FormSelect.defaults, options); + + _this68.isMultiple = _this68.$el.prop('multiple'); + + // Setup + _this68.el.tabIndex = -1; + _this68._keysSelected = {}; + _this68._valueDict = {}; // Maps key to original and generated option element. + _this68._setupDropdown(); + + _this68._setupEventHandlers(); + return _this68; + } + + _createClass(FormSelect, [{ + key: "destroy", + + + /** + * Teardown component + */ + value: function destroy() { + this._removeEventHandlers(); + this._removeDropdown(); + this.el.M_FormSelect = undefined; + } + + /** + * Setup Event Handlers + */ + + }, { + key: "_setupEventHandlers", + value: function _setupEventHandlers() { + var _this69 = this; + + this._handleSelectChangeBound = this._handleSelectChange.bind(this); + this._handleOptionClickBound = this._handleOptionClick.bind(this); + this._handleInputClickBound = this._handleInputClick.bind(this); + + $(this.dropdownOptions).find('li:not(.optgroup)').each(function (el) { + el.addEventListener('click', _this69._handleOptionClickBound); + }); + this.el.addEventListener('change', this._handleSelectChangeBound); + this.input.addEventListener('click', this._handleInputClickBound); + } + + /** + * Remove Event Handlers + */ + + }, { + key: "_removeEventHandlers", + value: function _removeEventHandlers() { + var _this70 = this; + + $(this.dropdownOptions).find('li:not(.optgroup)').each(function (el) { + el.removeEventListener('click', _this70._handleOptionClickBound); + }); + this.el.removeEventListener('change', this._handleSelectChangeBound); + this.input.removeEventListener('click', this._handleInputClickBound); + } + + /** + * Handle Select Change + * @param {Event} e + */ + + }, { + key: "_handleSelectChange", + value: function _handleSelectChange(e) { + this._setValueToInput(); + } + + /** + * Handle Option Click + * @param {Event} e + */ + + }, { + key: "_handleOptionClick", + value: function _handleOptionClick(e) { + e.preventDefault(); + var option = $(e.target).closest('li')[0]; + var key = option.id; + if (!$(option).hasClass('disabled') && !$(option).hasClass('optgroup') && key.length) { + var selected = true; + + if (this.isMultiple) { + // Deselect placeholder option if still selected. + var placeholderOption = $(this.dropdownOptions).find('li.disabled.selected'); + if (placeholderOption.length) { + placeholderOption.removeClass('selected'); + placeholderOption.find('input[type="checkbox"]').prop('checked', false); + this._toggleEntryFromArray(placeholderOption[0].id); + } + selected = this._toggleEntryFromArray(key); + } else { + $(this.dropdownOptions).find('li').removeClass('selected'); + $(option).toggleClass('selected', selected); + } + + // Set selected on original select option + // Only trigger if selected state changed + var prevSelected = $(this._valueDict[key].el).prop('selected'); + if (prevSelected !== selected) { + $(this._valueDict[key].el).prop('selected', selected); + this.$el.trigger('change'); + } + } + + e.stopPropagation(); + } + + /** + * Handle Input Click + */ + + }, { + key: "_handleInputClick", + value: function _handleInputClick() { + if (this.dropdown && this.dropdown.isOpen) { + this._setValueToInput(); + this._setSelectedStates(); + } + } + + /** + * Setup dropdown + */ + + }, { + key: "_setupDropdown", + value: function _setupDropdown() { + var _this71 = this; + + this.wrapper = document.createElement('div'); + $(this.wrapper).addClass('select-wrapper ' + this.options.classes); + this.$el.before($(this.wrapper)); + this.wrapper.appendChild(this.el); + + if (this.el.disabled) { + this.wrapper.classList.add('disabled'); + } + + // Create dropdown + this.$selectOptions = this.$el.children('option, optgroup'); + this.dropdownOptions = document.createElement('ul'); + this.dropdownOptions.id = "select-options-" + M.guid(); + $(this.dropdownOptions).addClass('dropdown-content select-dropdown ' + (this.isMultiple ? 'multiple-select-dropdown' : '')); + + // Create dropdown structure. + if (this.$selectOptions.length) { + this.$selectOptions.each(function (el) { + if ($(el).is('option')) { + // Direct descendant option. + var optionEl = void 0; + if (_this71.isMultiple) { + optionEl = _this71._appendOptionWithIcon(_this71.$el, el, 'multiple'); + } else { + optionEl = _this71._appendOptionWithIcon(_this71.$el, el); + } + + _this71._addOptionToValueDict(el, optionEl); + } else if ($(el).is('optgroup')) { + // Optgroup. + var selectOptions = $(el).children('option'); + $(_this71.dropdownOptions).append($('
  • ' + el.getAttribute('label') + '
  • ')[0]); + + selectOptions.each(function (el) { + var optionEl = _this71._appendOptionWithIcon(_this71.$el, el, 'optgroup-option'); + _this71._addOptionToValueDict(el, optionEl); + }); + } + }); + } + + this.$el.after(this.dropdownOptions); + + // Add input dropdown + this.input = document.createElement('input'); + $(this.input).addClass('select-dropdown dropdown-trigger'); + this.input.setAttribute('type', 'text'); + this.input.setAttribute('readonly', 'true'); + this.input.setAttribute('data-target', this.dropdownOptions.id); + if (this.el.disabled) { + $(this.input).prop('disabled', 'true'); + } + + this.$el.before(this.input); + this._setValueToInput(); + + // Add caret + var dropdownIcon = $(''); + this.$el.before(dropdownIcon[0]); + + // Initialize dropdown + if (!this.el.disabled) { + var dropdownOptions = $.extend({}, this.options.dropdownOptions); + + // Add callback for centering selected option when dropdown content is scrollable + dropdownOptions.onOpenEnd = function (el) { + var selectedOption = $(_this71.dropdownOptions).find('.selected').first(); + + if (selectedOption.length) { + // Focus selected option in dropdown + M.keyDown = true; + _this71.dropdown.focusedIndex = selectedOption.index(); + _this71.dropdown._focusFocusedItem(); + M.keyDown = false; + + // Handle scrolling to selected option + if (_this71.dropdown.isScrollable) { + var scrollOffset = selectedOption[0].getBoundingClientRect().top - _this71.dropdownOptions.getBoundingClientRect().top; // scroll to selected option + scrollOffset -= _this71.dropdownOptions.clientHeight / 2; // center in dropdown + _this71.dropdownOptions.scrollTop = scrollOffset; + } + } + }; + + if (this.isMultiple) { + dropdownOptions.closeOnClick = false; + } + this.dropdown = M.Dropdown.init(this.input, dropdownOptions); + } + + // Add initial selections + this._setSelectedStates(); + } + + /** + * Add option to value dict + * @param {Element} el original option element + * @param {Element} optionEl generated option element + */ + + }, { + key: "_addOptionToValueDict", + value: function _addOptionToValueDict(el, optionEl) { + var index = Object.keys(this._valueDict).length; + var key = this.dropdownOptions.id + index; + var obj = {}; + optionEl.id = key; + + obj.el = el; + obj.optionEl = optionEl; + this._valueDict[key] = obj; + } + + /** + * Remove dropdown + */ + + }, { + key: "_removeDropdown", + value: function _removeDropdown() { + $(this.wrapper).find('.caret').remove(); + $(this.input).remove(); + $(this.dropdownOptions).remove(); + $(this.wrapper).before(this.$el); + $(this.wrapper).remove(); + } + + /** + * Setup dropdown + * @param {Element} select select element + * @param {Element} option option element from select + * @param {String} type + * @return {Element} option element added + */ + + }, { + key: "_appendOptionWithIcon", + value: function _appendOptionWithIcon(select, option, type) { + // Add disabled attr if disabled + var disabledClass = option.disabled ? 'disabled ' : ''; + var optgroupClass = type === 'optgroup-option' ? 'optgroup-option ' : ''; + var multipleCheckbox = this.isMultiple ? "" : option.innerHTML; + var liEl = $('
  • '); + var spanEl = $(''); + spanEl.html(multipleCheckbox); + liEl.addClass(disabledClass + " " + optgroupClass); + liEl.append(spanEl); + + // add icons + var iconUrl = option.getAttribute('data-icon'); + if (!!iconUrl) { + var imgEl = $("\"\""); + liEl.prepend(imgEl); + } + + // Check for multiple type. + $(this.dropdownOptions).append(liEl[0]); + return liEl[0]; + } + + /** + * Toggle entry from option + * @param {String} key Option key + * @return {Boolean} if entry was added or removed + */ + + }, { + key: "_toggleEntryFromArray", + value: function _toggleEntryFromArray(key) { + var notAdded = !this._keysSelected.hasOwnProperty(key); + var $optionLi = $(this._valueDict[key].optionEl); + + if (notAdded) { + this._keysSelected[key] = true; + } else { + delete this._keysSelected[key]; + } + + $optionLi.toggleClass('selected', notAdded); + + // Set checkbox checked value + $optionLi.find('input[type="checkbox"]').prop('checked', notAdded); + + // use notAdded instead of true (to detect if the option is selected or not) + $optionLi.prop('selected', notAdded); + + return notAdded; + } + + /** + * Set text value to input + */ + + }, { + key: "_setValueToInput", + value: function _setValueToInput() { + var values = []; + var options = this.$el.find('option'); + + options.each(function (el) { + if ($(el).prop('selected')) { + var text = $(el).text(); + values.push(text); + } + }); + + if (!values.length) { + var firstDisabled = this.$el.find('option:disabled').eq(0); + if (firstDisabled.length && firstDisabled[0].value === '') { + values.push(firstDisabled.text()); + } + } + + this.input.value = values.join(', '); + } + + /** + * Set selected state of dropdown to match actual select element + */ + + }, { + key: "_setSelectedStates", + value: function _setSelectedStates() { + this._keysSelected = {}; + + for (var key in this._valueDict) { + var option = this._valueDict[key]; + var optionIsSelected = $(option.el).prop('selected'); + $(option.optionEl).find('input[type="checkbox"]').prop('checked', optionIsSelected); + if (optionIsSelected) { + this._activateOption($(this.dropdownOptions), $(option.optionEl)); + this._keysSelected[key] = true; + } else { + $(option.optionEl).removeClass('selected'); + } + } + } + + /** + * Make option as selected and scroll to selected position + * @param {jQuery} collection Select options jQuery element + * @param {Element} newOption element of the new option + */ + + }, { + key: "_activateOption", + value: function _activateOption(collection, newOption) { + if (newOption) { + if (!this.isMultiple) { + collection.find('li.selected').removeClass('selected'); + } + var option = $(newOption); + option.addClass('selected'); + } + } + + /** + * Get Selected Values + * @return {Array} Array of selected values + */ + + }, { + key: "getSelectedValues", + value: function getSelectedValues() { + var selectedValues = []; + for (var key in this._keysSelected) { + selectedValues.push(this._valueDict[key].el.value); + } + return selectedValues; + } + }], [{ + key: "init", + value: function init(els, options) { + return _get(FormSelect.__proto__ || Object.getPrototypeOf(FormSelect), "init", this).call(this, this, els, options); + } + + /** + * Get Instance + */ + + }, { + key: "getInstance", + value: function getInstance(el) { + var domElem = !!el.jquery ? el[0] : el; + return domElem.M_FormSelect; + } + }, { + key: "defaults", + get: function () { + return _defaults; + } + }]); + + return FormSelect; + }(Component); + + M.FormSelect = FormSelect; + + if (M.jQueryLoaded) { + M.initializeJqueryWrapper(FormSelect, 'formSelect', 'M_FormSelect'); + } +})(cash); +;(function ($, anim) { + 'use strict'; + + var _defaults = {}; + + /** + * @class + * + */ + + var Range = function (_Component21) { + _inherits(Range, _Component21); + + /** + * Construct Range instance + * @constructor + * @param {Element} el + * @param {Object} options + */ + function Range(el, options) { + _classCallCheck(this, Range); + + var _this72 = _possibleConstructorReturn(this, (Range.__proto__ || Object.getPrototypeOf(Range)).call(this, Range, el, options)); + + _this72.el.M_Range = _this72; + + /** + * Options for the range + * @member Range#options + */ + _this72.options = $.extend({}, Range.defaults, options); + + _this72._mousedown = false; + + // Setup + _this72._setupThumb(); + + _this72._setupEventHandlers(); + return _this72; + } + + _createClass(Range, [{ + key: "destroy", + + + /** + * Teardown component + */ + value: function destroy() { + this._removeEventHandlers(); + this._removeThumb(); + this.el.M_Range = undefined; + } + + /** + * Setup Event Handlers + */ + + }, { + key: "_setupEventHandlers", + value: function _setupEventHandlers() { + this._handleRangeChangeBound = this._handleRangeChange.bind(this); + this._handleRangeMousedownTouchstartBound = this._handleRangeMousedownTouchstart.bind(this); + this._handleRangeInputMousemoveTouchmoveBound = this._handleRangeInputMousemoveTouchmove.bind(this); + this._handleRangeMouseupTouchendBound = this._handleRangeMouseupTouchend.bind(this); + this._handleRangeBlurMouseoutTouchleaveBound = this._handleRangeBlurMouseoutTouchleave.bind(this); + + this.el.addEventListener('change', this._handleRangeChangeBound); + + this.el.addEventListener('mousedown', this._handleRangeMousedownTouchstartBound); + this.el.addEventListener('touchstart', this._handleRangeMousedownTouchstartBound); + + this.el.addEventListener('input', this._handleRangeInputMousemoveTouchmoveBound); + this.el.addEventListener('mousemove', this._handleRangeInputMousemoveTouchmoveBound); + this.el.addEventListener('touchmove', this._handleRangeInputMousemoveTouchmoveBound); + + this.el.addEventListener('mouseup', this._handleRangeMouseupTouchendBound); + this.el.addEventListener('touchend', this._handleRangeMouseupTouchendBound); + + this.el.addEventListener('blur', this._handleRangeBlurMouseoutTouchleaveBound); + this.el.addEventListener('mouseout', this._handleRangeBlurMouseoutTouchleaveBound); + this.el.addEventListener('touchleave', this._handleRangeBlurMouseoutTouchleaveBound); + } + + /** + * Remove Event Handlers + */ + + }, { + key: "_removeEventHandlers", + value: function _removeEventHandlers() { + this.el.removeEventListener('change', this._handleRangeChangeBound); + + this.el.removeEventListener('mousedown', this._handleRangeMousedownTouchstartBound); + this.el.removeEventListener('touchstart', this._handleRangeMousedownTouchstartBound); + + this.el.removeEventListener('input', this._handleRangeInputMousemoveTouchmoveBound); + this.el.removeEventListener('mousemove', this._handleRangeInputMousemoveTouchmoveBound); + this.el.removeEventListener('touchmove', this._handleRangeInputMousemoveTouchmoveBound); + + this.el.removeEventListener('mouseup', this._handleRangeMouseupTouchendBound); + this.el.removeEventListener('touchend', this._handleRangeMouseupTouchendBound); + + this.el.removeEventListener('blur', this._handleRangeBlurMouseoutTouchleaveBound); + this.el.removeEventListener('mouseout', this._handleRangeBlurMouseoutTouchleaveBound); + this.el.removeEventListener('touchleave', this._handleRangeBlurMouseoutTouchleaveBound); + } + + /** + * Handle Range Change + * @param {Event} e + */ + + }, { + key: "_handleRangeChange", + value: function _handleRangeChange() { + $(this.value).html(this.$el.val()); + + if (!$(this.thumb).hasClass('active')) { + this._showRangeBubble(); + } + + var offsetLeft = this._calcRangeOffset(); + $(this.thumb).addClass('active').css('left', offsetLeft + 'px'); + } + + /** + * Handle Range Mousedown and Touchstart + * @param {Event} e + */ + + }, { + key: "_handleRangeMousedownTouchstart", + value: function _handleRangeMousedownTouchstart(e) { + // Set indicator value + $(this.value).html(this.$el.val()); + + this._mousedown = true; + this.$el.addClass('active'); + + if (!$(this.thumb).hasClass('active')) { + this._showRangeBubble(); + } + + if (e.type !== 'input') { + var offsetLeft = this._calcRangeOffset(); + $(this.thumb).addClass('active').css('left', offsetLeft + 'px'); + } + } + + /** + * Handle Range Input, Mousemove and Touchmove + */ + + }, { + key: "_handleRangeInputMousemoveTouchmove", + value: function _handleRangeInputMousemoveTouchmove() { + if (this._mousedown) { + if (!$(this.thumb).hasClass('active')) { + this._showRangeBubble(); + } + + var offsetLeft = this._calcRangeOffset(); + $(this.thumb).addClass('active').css('left', offsetLeft + 'px'); + $(this.value).html(this.$el.val()); + } + } + + /** + * Handle Range Mouseup and Touchend + */ + + }, { + key: "_handleRangeMouseupTouchend", + value: function _handleRangeMouseupTouchend() { + this._mousedown = false; + this.$el.removeClass('active'); + } + + /** + * Handle Range Blur, Mouseout and Touchleave + */ + + }, { + key: "_handleRangeBlurMouseoutTouchleave", + value: function _handleRangeBlurMouseoutTouchleave() { + if (!this._mousedown) { + var paddingLeft = parseInt(this.$el.css('padding-left')); + var marginLeft = 7 + paddingLeft + 'px'; + + if ($(this.thumb).hasClass('active')) { + anim.remove(this.thumb); + anim({ + targets: this.thumb, + height: 0, + width: 0, + top: 10, + easing: 'easeOutQuad', + marginLeft: marginLeft, + duration: 100 + }); + } + $(this.thumb).removeClass('active'); + } + } + + /** + * Setup dropdown + */ + + }, { + key: "_setupThumb", + value: function _setupThumb() { + this.thumb = document.createElement('span'); + this.value = document.createElement('span'); + $(this.thumb).addClass('thumb'); + $(this.value).addClass('value'); + $(this.thumb).append(this.value); + this.$el.after(this.thumb); + } + + /** + * Remove dropdown + */ + + }, { + key: "_removeThumb", + value: function _removeThumb() { + $(this.thumb).remove(); + } + + /** + * morph thumb into bubble + */ + + }, { + key: "_showRangeBubble", + value: function _showRangeBubble() { + var paddingLeft = parseInt($(this.thumb).parent().css('padding-left')); + var marginLeft = -7 + paddingLeft + 'px'; // TODO: fix magic number? + anim.remove(this.thumb); + anim({ + targets: this.thumb, + height: 30, + width: 30, + top: -30, + marginLeft: marginLeft, + duration: 300, + easing: 'easeOutQuint' + }); + } + + /** + * Calculate the offset of the thumb + * @return {Number} offset in pixels + */ + + }, { + key: "_calcRangeOffset", + value: function _calcRangeOffset() { + var width = this.$el.width() - 15; + var max = parseFloat(this.$el.attr('max')) || 100; // Range default max + var min = parseFloat(this.$el.attr('min')) || 0; // Range default min + var percent = (parseFloat(this.$el.val()) - min) / (max - min); + return percent * width; + } + }], [{ + key: "init", + value: function init(els, options) { + return _get(Range.__proto__ || Object.getPrototypeOf(Range), "init", this).call(this, this, els, options); + } + + /** + * Get Instance + */ + + }, { + key: "getInstance", + value: function getInstance(el) { + var domElem = !!el.jquery ? el[0] : el; + return domElem.M_Range; + } + }, { + key: "defaults", + get: function () { + return _defaults; + } + }]); + + return Range; + }(Component); + + M.Range = Range; + + if (M.jQueryLoaded) { + M.initializeJqueryWrapper(Range, 'range', 'M_Range'); + } + + Range.init($('input[type=range]')); +})(cash, M.anime); diff --git a/js/math.min.js b/js/math.min.js new file mode 100644 index 000000000..3cc8a4b47 --- /dev/null +++ b/js/math.min.js @@ -0,0 +1,43 @@ +/** + * math.js + * https://github.com/josdejong/mathjs + * + * Math.js is an extensive math library for JavaScript and Node.js, + * It features real and complex numbers, units, matrices, a large set of + * mathematical functions, and a flexible expression parser. + * + * @version 7.6.0 + * @date 2020-11-02 + * + * @license + * Copyright (C) 2013-2020 Jos de Jong + * + * 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 + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.math=t():e.math=t()}(this,function(){return n={},i.m=r=[function(e,t,r){"use strict";r.d(t,"a",function(){return n}),r.d(t,"b",function(){return i}),r.d(t,"c",function(){return o});r(2);var a=r(3);function n(r,n,i,e){function t(e){var t=Object(a.j)(e,n.map(o));return function(e,t,r){if(!t.filter(function(e){return!((e=e)&&"?"===e[0])}).every(function(e){return void 0!==r[e]})){t=t.filter(function(e){return void 0===r[e]});throw new Error('Cannot create function "'.concat(e,'", ')+"some dependencies are missing: ".concat(t.map(function(e){return'"'.concat(e,'"')}).join(", "),"."))}}(r,n,e),i(t)}return t.isFactory=!0,t.fn=r,t.dependencies=n.slice().sort(),e&&(t.meta=e),t}function i(e){return"function"==typeof e&&"string"==typeof e.fn&&Array.isArray(e.dependencies)}function o(e){return e&&"?"===e[0]?e.slice(1):e}},function(e,t,r){"use strict";function n(e){return(n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function i(e){return"number"==typeof e}function a(e){return e&&!0===e.constructor.prototype.isBigNumber||!1}function o(e){return e&&"object"===n(e)&&!0===Object.getPrototypeOf(e).isComplex||!1}function s(e){return e&&"object"===n(e)&&!0===Object.getPrototypeOf(e).isFraction||!1}function u(e){return e&&!0===e.constructor.prototype.isUnit||!1}function c(e){return"string"==typeof e}r.d(t,"y",function(){return i}),r.d(t,"e",function(){return a}),r.d(t,"j",function(){return o}),r.d(t,"o",function(){return s}),r.d(t,"L",function(){return u}),r.d(t,"I",function(){return c}),r.d(t,"b",function(){return f}),r.d(t,"v",function(){return l}),r.d(t,"i",function(){return p}),r.d(t,"n",function(){return m}),r.d(t,"H",function(){return h}),r.d(t,"D",function(){return d}),r.d(t,"t",function(){return y}),r.d(t,"g",function(){return g}),r.d(t,"G",function(){return b}),r.d(t,"s",function(){return v}),r.d(t,"p",function(){return x}),r.d(t,"m",function(){return w}),r.d(t,"F",function(){return N}),r.d(t,"z",function(){return O}),r.d(t,"x",function(){return M}),r.d(t,"K",function(){return j}),r.d(t,"a",function(){return E}),r.d(t,"c",function(){return S}),r.d(t,"d",function(){return A}),r.d(t,"f",function(){return C}),r.d(t,"k",function(){return _}),r.d(t,"l",function(){return T}),r.d(t,"q",function(){return q}),r.d(t,"r",function(){return I}),r.d(t,"u",function(){return B}),r.d(t,"w",function(){return k}),r.d(t,"A",function(){return z}),r.d(t,"B",function(){return D}),r.d(t,"C",function(){return R}),r.d(t,"E",function(){return U}),r.d(t,"J",function(){return P}),r.d(t,"h",function(){return F}),r.d(t,"M",function(){return L});var f=Array.isArray;function l(e){return e&&!0===e.constructor.prototype.isMatrix||!1}function p(e){return Array.isArray(e)||l(e)}function m(e){return e&&e.isDenseMatrix&&!0===e.constructor.prototype.isMatrix||!1}function h(e){return e&&e.isSparseMatrix&&!0===e.constructor.prototype.isMatrix||!1}function d(e){return e&&!0===e.constructor.prototype.isRange||!1}function y(e){return e&&!0===e.constructor.prototype.isIndex||!1}function g(e){return"boolean"==typeof e}function b(e){return e&&!0===e.constructor.prototype.isResultSet||!1}function v(e){return e&&!0===e.constructor.prototype.isHelp||!1}function x(e){return"function"==typeof e}function w(e){return e instanceof Date}function N(e){return e instanceof RegExp}function O(e){return!(!e||"object"!==n(e)||e.constructor!==Object||o(e)||s(e))}function M(e){return null===e}function j(e){return void 0===e}function E(e){return e&&!0===e.isAccessorNode&&!0===e.constructor.prototype.isNode||!1}function S(e){return e&&!0===e.isArrayNode&&!0===e.constructor.prototype.isNode||!1}function A(e){return e&&!0===e.isAssignmentNode&&!0===e.constructor.prototype.isNode||!1}function C(e){return e&&!0===e.isBlockNode&&!0===e.constructor.prototype.isNode||!1}function _(e){return e&&!0===e.isConditionalNode&&!0===e.constructor.prototype.isNode||!1}function T(e){return e&&!0===e.isConstantNode&&!0===e.constructor.prototype.isNode||!1}function q(e){return e&&!0===e.isFunctionAssignmentNode&&!0===e.constructor.prototype.isNode||!1}function I(e){return e&&!0===e.isFunctionNode&&!0===e.constructor.prototype.isNode||!1}function B(e){return e&&!0===e.isIndexNode&&!0===e.constructor.prototype.isNode||!1}function k(e){return e&&!0===e.isNode&&!0===e.constructor.prototype.isNode||!1}function z(e){return e&&!0===e.isObjectNode&&!0===e.constructor.prototype.isNode||!1}function D(e){return e&&!0===e.isOperatorNode&&!0===e.constructor.prototype.isNode||!1}function R(e){return e&&!0===e.isParenthesisNode&&!0===e.constructor.prototype.isNode||!1}function U(e){return e&&!0===e.isRangeNode&&!0===e.constructor.prototype.isNode||!1}function P(e){return e&&!0===e.isSymbolNode&&!0===e.constructor.prototype.isNode||!1}function F(e){return e&&!0===e.constructor.prototype.isChain||!1}function L(e){var t=n(e);return"object"===t?null===e?"null":Array.isArray(e)?"Array":e instanceof Date?"Date":e instanceof RegExp?"RegExp":a(e)?"BigNumber":o(e)?"Complex":s(e)?"Fraction":l(e)?"Matrix":u(e)?"Unit":y(e)?"Index":d(e)?"Range":b(e)?"ResultSet":k(e)?e.type:F(e)?"Chain":v(e)?"Help":"Object":"function"===t?"Function":t}},function(e,t,r){"use strict";r.d(t,"a",function(){return s}),r.d(t,"p",function(){return c}),r.d(t,"q",function(){return f}),r.d(t,"m",function(){return l}),r.d(t,"l",function(){return p}),r.d(t,"n",function(){return m}),r.d(t,"o",function(){return h}),r.d(t,"e",function(){return d}),r.d(t,"k",function(){return y}),r.d(t,"f",function(){return g}),r.d(t,"c",function(){return b}),r.d(t,"d",function(){return v}),r.d(t,"j",function(){return x}),r.d(t,"i",function(){return w}),r.d(t,"g",function(){return N}),r.d(t,"h",function(){return O}),r.d(t,"b",function(){return M});var n=r(4),i=r(1),a=r(5),u=r(6),o=r(9);function s(e){for(var t=[];Array.isArray(e);)t.push(e.length),e=e[0];return t}function c(e,t){if(0===t.length){if(Array.isArray(e))throw new u.a(e.length,0)}else!function e(t,r,n){var i=t.length;if(i!==r[n])throw new u.a(i,r[n]);if(n")}(e,t,0)}function f(e,t){if(!Object(i.y)(e)||!Object(n.i)(e))throw new TypeError("Index must be an integer (value: "+e+")");if(e<0||"number"==typeof t&&t<=e)throw new o.a(e,t)}function l(e,t,r){if(!Array.isArray(e)||!Array.isArray(t))throw new TypeError("Array expected");if(0===t.length)throw new Error("Resizing to scalar is not supported");return t.forEach(function(e){if(!Object(i.y)(e)||!Object(n.i)(e)||e<0)throw new TypeError("Invalid size, must contain positive integers (size: "+Object(a.d)(t)+")")}),function e(t,r,n,i){var a;var o;var s=t.length;var u=r[n];var c=Math.min(s,u);t.length=u;if(ni.length||n-a+1>i.length;)i.push(0);else for(var o=Math.abs(n-a)-(i.length-1),s=0;s=i)return h(e,t);i=r.coefficients,e=r.exponent;i.lengtht&&5<=n.splice(t,n.length-t)[0]){var i=t-1;for(n[i]++;10===n[i];)n.pop(),0===i&&(n.unshift(0),r.exponent++,i++),n[--i]++}return r}function y(e){for(var t=[],r=0;r/g,">")}function p(e,t){if(!Object(n.I)(e))throw new TypeError("Unexpected type of argument in function compareText (expected: string or Array or Matrix, actual: "+Object(n.M)(e)+", index: 0)");if(!Object(n.I)(t))throw new TypeError("Unexpected type of argument in function compareText (expected: string or Array or Matrix, actual: "+Object(n.M)(t)+", index: 1)");return e===t?0:t=this.max?this.message="Index out of range ("+this.index+" > "+(this.max-1)+")":this.message="Index out of range ("+this.index+")",this.stack=(new Error).stack}r.d(t,"a",function(){return n}),(n.prototype=new RangeError).constructor=RangeError,n.prototype.name="IndexError",n.prototype.isIndexError=!0},function(n,i,e){var a; +/** + * @license Fraction.js v4.0.12 09/09/2015 + * http://www.xarg.org/2014/03/rational-numbers-in-javascript/ + * + * Copyright (c) 2015, Robert Eisele (robert@xarg.org) + * Dual licensed under the MIT or GPL Version 2 licenses. + **/ +!function(){"use strict";var d={s:1,n:0,d:1};function e(t){function e(){var e=Error.apply(this,arguments);e.name=this.name=t,this.stack=e.stack,this.message=e.message}function r(){}return r.prototype=Error.prototype,e.prototype=new r,e}var y=c.DivisionByZero=e("DivisionByZero"),t=c.InvalidParameter=e("InvalidParameter");function g(e,t){return isNaN(e=parseInt(e,10))&&b(),e*t}function b(){throw new t}var r=function(e,t){var r,n=0,i=1,a=1,o=0,s=0,u=0,c=1,f=1,l=0,p=1,m=1,h=1;if(null!=e)if(void 0!==t)a=(n=e)*(i=t);else switch(typeof e){case"object":"d"in e&&"n"in e?(n=e.n,i=e.d,"s"in e&&(n*=e.s)):0 in e?(n=e[0],1 in e&&(i=e[1])):b(),a=n*i;break;case"number":if(e<0&&(e=-(a=e)),e%1==0)n=e;else if(0>=1)1&t&&(n=n*e%r);return n}(10,r,t),a=0;a<300;a++){if(n===i)return a;n=10*n%t,i=10*i%t}return 0}function u(e,t){if(!e)return t;if(!t)return e;for(;;){if(!(e%=t))return t;if(!(t%=e))return e}}function c(e,t){if(!(this instanceof c))return new c(e,t);r(e,t),e=c.REDUCE?u(d.d,d.n):1,this.s=d.s,this.n=d.n/e,this.d=d.d/e}c.REDUCE=1,c.prototype={s:1,n:0,d:1,abs:function(){return new c(this.n,this.d)},neg:function(){return new c(-this.s*this.n,this.d)},add:function(e,t){return r(e,t),new c(this.s*this.n*d.d+d.s*this.d*d.n,this.d*d.d)},sub:function(e,t){return r(e,t),new c(this.s*this.n*d.d-d.s*this.d*d.n,this.d*d.d)},mul:function(e,t){return r(e,t),new c(this.s*d.s*this.n*d.n,this.d*d.d)},div:function(e,t){return r(e,t),new c(this.s*d.s*this.n*d.d,this.d*d.n)},clone:function(){return new c(this)},mod:function(e,t){return isNaN(this.n)||isNaN(this.d)?new c(NaN):void 0===e?new c(this.s*this.n%this.d,1):(r(e,t),0===d.n&&0===this.d&&c(0,0),new c(this.s*(d.d*this.n)%(d.n*this.d),d.d*this.d))},gcd:function(e,t){return r(e,t),new c(u(d.n,this.n)*u(d.d,this.d),d.d*this.d)},lcm:function(e,t){return r(e,t),0===d.n&&0===this.n?new c:new c(d.n*this.n,u(d.n,this.n)*u(d.d,this.d))},ceil:function(e){return e=Math.pow(10,e||0),isNaN(this.n)||isNaN(this.d)?new c(NaN):new c(Math.ceil(e*this.s*this.n/this.d),e)},floor:function(e){return e=Math.pow(10,e||0),isNaN(this.n)||isNaN(this.d)?new c(NaN):new c(Math.floor(e*this.s*this.n/this.d),e)},round:function(e){return e=Math.pow(10,e||0),isNaN(this.n)||isNaN(this.d)?new c(NaN):new c(Math.round(e*this.s*this.n/this.d),e)},inverse:function(){return new c(this.s*this.d,this.n)},pow:function(e){return e<0?new c(Math.pow(this.s*this.d,-e),Math.pow(this.n,-e)):new c(Math.pow(this.s*this.n,e),Math.pow(this.d,e))},equals:function(e,t){return r(e,t),this.s*this.n*d.d==d.s*d.n*this.d},compare:function(e,t){r(e,t);t=this.s*this.n*d.d-d.s*d.n*this.d;return(0r-1&&(void 0===a[n+1]&&(a[n+1]=0),a[n+1]+=a[n]/r|0,a[n]%=r)}return a.reverse()}O.absoluteValue=O.abs=function(){var e=new this.constructor(this);return e.s<0&&(e.s=1),z(e)},O.ceil=function(){return z(new this.constructor(this),this.e+1,2)},O.comparedTo=O.cmp=function(e){var t,r,n=this,i=n.d,a=(e=new n.constructor(e)).d,o=n.s,s=e.s;if(!i||!a)return o&&s?o!==s?o:i===a?0:!i^o<0?1:-1:NaN;if(!i[0]||!a[0])return i[0]?o:a[0]?-s:0;if(o!==s)return o;if(n.e!==e.e)return n.e>e.e^o<0?1:-1;for(t=0,r=(n=i.length)<(e=a.length)?n:e;ta[t]^o<0?1:-1;return n===e?0:ethis.d.length-2},O.isNaN=function(){return!this.s},O.isNegative=O.isNeg=function(){return this.s<0},O.isPositive=O.isPos=function(){return 0t&&(t=this.e+1)):t=NaN,t},O.round=function(){var e=this.constructor;return z(new e(this),this.e+1,e.rounding)},O.sine=O.sin=function(){var e,t,r=this,n=r.constructor;return r.isFinite()?r.isZero()?new n(r):(e=n.precision,t=n.rounding,n.precision=e+Math.max(r.e,r.sd())+q,n.rounding=1,r=function(e,t){var r,n=t.d.length;if(n<3)return W(e,2,t,t);r=16<(r=1.4*Math.sqrt(n))?16:0|r,t=t.times(1/Y(5,r)),t=W(e,2,t,t);for(var i,a=new e(5),o=new e(16),s=new e(20);r--;)i=t.times(t),t=t.times(a.plus(i.times(o.times(i).minus(s))));return t}(n,X(n,r)),n.precision=e,n.rounding=t,z(2=e.d.length-1&&(r=c<0?-c:c)<=9007199254740991)return i=H(u,s,r,n),e.s<0?new u(1).div(i):z(i,n,a);if((o=s.s)<0){if(tu.maxE+1||t=n.toExpPos):(j(e,1,h),void 0===t?t=n.rounding:j(t,0,8),D(r=z(new n(r),e,t),e<=r.e||r.e<=n.toExpNeg,e));return r.isNeg()&&!r.isZero()?"-"+e:e},O.toSignificantDigits=O.toSD=function(e,t){var r=this.constructor;return void 0===e?(e=r.precision,t=r.rounding):(j(e,1,h),void 0===t?t=r.rounding:j(t,0,8)),z(new r(this),e,t)},O.toString=function(){var e=this,t=e.constructor,t=D(e,e.e<=t.toExpNeg||e.e>=t.toExpPos);return e.isNeg()&&!e.isZero()?"-"+t:t},O.truncated=O.trunc=function(){return z(new this.constructor(this),this.e+1,1)},O.valueOf=O.toJSON=function(){var e=this,t=e.constructor,t=D(e,e.e<=t.toExpNeg||e.e>=t.toExpPos);return e.isNeg()?"-"+t:t};var A=function(e,t,r,n,i,a){var o,s,u,c,f,l,p,m,h,d,y,g,b,v,x,w,N,O,M,j=e.constructor,E=e.s==t.s?1:-1,S=e.d,A=t.d;if(!(S&&S[0]&&A&&A[0]))return new j(e.s&&t.s&&(S?!A||S[0]!=A[0]:A)?S&&0==S[0]||!A?0*E:E/0:NaN);for(s=a?(f=1,e.e-t.e):(a=T,f=q,_(e.e/f)-_(t.e/f)),O=A.length,w=S.length,h=(E=new j(E)).d=[],u=0;A[u]==(S[u]||0);u++);if(A[u]>(S[u]||0)&&s--,null==r?(b=r=j.precision,n=j.rounding):b=i?r+(e.e-t.e)+1:r,b<0)h.push(1),l=!0;else{if(b=b/f+2|0,u=0,1==O){for(A=A[c=0],b++;(u=a/2&&++N;c=0,(o=B(A,d,O,y))<0?(g=d[0],O!=y&&(g=g*a+(d[1]||0)),1<(c=g/N|0)?(a<=c&&(c=a-1),1==(o=B(p=I(A,c,a),d,m=p.length,y=d.length))&&(c--,k(p,Ot[i]?1:-1;break}return a}function k(e,t,r,n){for(var i=0;r--;)e[r]-=i,i=e[r]p.maxE?(e.d=null,e.e=NaN):e.ee.constructor.maxE?(e.d=null,e.e=NaN):e.ei-1;)f[r]=0,r||(++a,f.unshift(1));for(s=f.length;!f[s-1];--s);for(o=0,c="";os)for(a-=s;a--;)c+="0";else at&&(e.length=t,1)}function K(e){return new this(e).abs()}function ee(e){return new this(e).acos()}function te(e){return new this(e).acosh()}function re(e,t){return new this(e).plus(t)}function ne(e){return new this(e).asin()}function ie(e){return new this(e).asinh()}function ae(e){return new this(e).atan()}function oe(e){return new this(e).atanh()}function se(e,t){e=new this(e),t=new this(t);var r,n=this.precision,i=this.rounding,a=n+4;return e.s&&t.s?e.d||t.d?!t.d||e.isZero()?(r=t.s<0?P(this,n,i):new this(0)).s=e.s:!e.d||t.isZero()?(r=P(this,a,1).times(.5)).s=e.s:r=t.s<0?(this.precision=a,this.rounding=1,r=this.atan(A(e,t,a,1)),t=P(this,a,1),this.precision=n,this.rounding=i,e.s<0?r.minus(t):r.plus(t)):this.atan(A(e,t,a,1)):(r=P(this,a,1).times(0a.maxE?(i.e=NaN,i.d=null):e.e3?e.slice(3):"any";var i=n.split("|").map(O).filter(M).filter(N);var a=v(r,i);var o=i.map(function(e){var t=u(e);return{name:e,typeIndex:c(t),test:t.test,conversion:null,conversionIndex:-1}});var s=a.map(function(e){var t=u(e.from);return{name:e.from,typeIndex:c(t),test:t.test,conversion:e,conversionIndex:r.indexOf(e)}});return{types:o.concat(s),restParam:t}}function H(e,t,i){var r=[];if(e.trim()!=="")r=e.split(",").map(O).map(function(e,t,r){var n=o(e,i);if(n.restParam&&t!==r.length-1)throw new SyntaxError('Unexpected rest parameter "'+e+'": '+"only allowed for the last parameter");return n});if(r.some(j))return null;return{params:r,fn:t}}function $(e){var t=S(e);return t?t.restParam:false}function s(e){return e.types.some(function(e){return e.conversion!=null})}function G(e){if(!e||e.types.length===0)return B;else if(e.types.length===1)return u(e.types[0].name).test;else if(e.types.length===2){var r=u(e.types[0].name).test;var n=u(e.types[1].name).test;return function e(t){return r(t)||n(t)}}else{var i=e.types.map(function(e){return u(e.name).test});return function e(t){for(var r=0;r=a+1}}else if(e.length===0)return function e(t){return t.length===0};else if(e.length===1){r=G(e[0]);return function e(t){return r(t[0])&&t.length===1}}else if(e.length===2){r=G(e[0]);i=G(e[1]);return function e(t){return r(t[0])&&i(t[1])&&t.length===2}}else{n=e.map(G);return function e(t){for(var r=0;r0){var c=p(r[s]);n=new TypeError("Unexpected type of argument in function "+a+" (expected: "+i.join(" or ")+", actual: "+c+", index: "+s+")");n.data={category:"wrongType",fn:a,index:s,actual:c,expected:i};return n}}else o=u}var f=o.map(function(e){return $(e.params)?Infinity:e.params.length});if(r.lengthl){n=new TypeError("Too many arguments in function "+a+" (expected: "+l+", actual: "+r.length+")");n.data={category:"tooManyArgs",fn:a,index:r.length,expectedLength:l};return n}n=new TypeError('Arguments of type "'+r.join(", ")+'" do not match any of the defined signatures of function '+a+".");n.data={category:"mismatch",actual:r.map(p)};return n}function y(e){var t=999;for(var r=0;r=o:c?o>=s:o===s}function w(r,t){if(Object.keys(t).length===0)throw new SyntaxError("No signatures provided");var n=[];Object.keys(t).map(function(e){return H(e,t[e],F.conversions)}).filter(K).forEach(function(t){var e=ee(n,function(e){return Q(e,t)});if(e)throw new TypeError('Conflicting signatures "'+L(e.params)+'" and "'+L(t.params)+'".');n.push(t)});var i=te(n,function(t){var e=t?X(t.params,false):[];return e.map(function(e){return{params:e,fn:t.fn}})}).filter(K);i.sort(J);var e=i[0]&&i[0].params.length<=2&&!$(i[0].params);var a=i[1]&&i[1].params.length<=2&&!$(i[1].params);var o=i[2]&&i[2].params.length<=2&&!$(i[2].params);var s=i[3]&&i[3].params.length<=2&&!$(i[3].params);var u=i[4]&&i[4].params.length<=2&&!$(i[4].params);var c=i[5]&&i[5].params.length<=2&&!$(i[5].params);var f=e&&a&&o&&s&&u&&c;var l=i.map(function(e){return V(e.params)});var p=e?G(i[0].params[0]):re;var m=a?G(i[1].params[0]):re;var h=o?G(i[2].params[0]):re;var d=s?G(i[3].params[0]):re;var y=u?G(i[4].params[0]):re;var g=c?G(i[5].params[0]):re;var b=e?G(i[0].params[1]):re;var v=a?G(i[1].params[1]):re;var x=o?G(i[2].params[1]):re;var w=s?G(i[3].params[1]):re;var N=u?G(i[4].params[1]):re;var O=c?G(i[5].params[1]):re;var M=i.map(function(e){return W(e.params,e.fn)});var j=e?M[0]:ne;var E=a?M[1]:ne;var S=o?M[2]:ne;var A=s?M[3]:ne;var C=u?M[4]:ne;var _=c?M[5]:ne;var T=e?i[0].params.length:-1;var q=a?i[1].params.length:-1;var I=o?i[2].params.length:-1;var B=s?i[3].params.length:-1;var k=u?i[4].params.length:-1;var z=c?i[5].params.length:-1;var D=f?6:0;var R=i.length;var U=function e(){"use strict";for(var t=D;t>>=1;return(e+r)/t}},m.exports.resetGlobal=function(){Math.random=t},l(Math.random(),i)}).call(this,t(19))},function(e,t,r){"use strict";function s(e,t){return u({},e,t)}var u=Object.assign||function(e){for(var t=1;t=e.length&&n.slice(0,e.length)===e&&(i+=a[o[t]],n=n.slice(e.length,n.length),r=!0)}),r||(i+=n.slice(0,1),n=n.slice(1,n.length))}();return i}},function(e,t){function r(){}r.prototype={on:function(e,t,r){var n=this.e||(this.e={});return(n[e]||(n[e]=[])).push({fn:t,ctx:r}),this},once:function(e,t,r){var n=this;function i(){n.off(e,i),t.apply(r,arguments)}return i._=t,this.on(e,i,r)},emit:function(e){for(var t=[].slice.call(arguments,1),r=((this.e||(this.e={}))[e]||[]).slice(),n=0,i=r.length;n15 significant digits to BigNumber (value: "+e+"). Use function bignumber(x) to convert to BigNumber.");return new r(e)}},{from:"number",to:"Complex",convert:function(e){return n||c(e),new n(e,0)}},{from:"number",to:"string",convert:function(e){return e+""}},{from:"BigNumber",to:"Complex",convert:function(e){return n||c(e),new n(e.toNumber(),0)}},{from:"Fraction",to:"BigNumber",convert:function(){throw new TypeError("Cannot implicitly convert a Fraction to BigNumber or vice versa. Use function bignumber(x) to convert to BigNumber or fraction(x) to convert to Fraction.")}},{from:"Fraction",to:"Complex",convert:function(e){return n||c(e),new n(e.valueOf(),0)}},{from:"number",to:"Fraction",convert:function(e){i||f(e);var t=new i(e);if(t.valueOf()!==e)throw new TypeError("Cannot implicitly convert a number to a Fraction when there will be a loss of precision (value: "+e+"). Use function fraction(x) to convert to Fraction.");return t}},{from:"string",to:"number",convert:function(e){var t=Number(e);if(isNaN(t))throw new Error('Cannot convert "'+e+'" to a number');return t}},{from:"string",to:"BigNumber",convert:function(t){r||u(t);try{return new r(t)}catch(e){throw new Error('Cannot convert "'+t+'" to BigNumber')}}},{from:"string",to:"Fraction",convert:function(t){i||f(t);try{return new i(t)}catch(e){throw new Error('Cannot convert "'+t+'" to Fraction')}}},{from:"string",to:"Complex",convert:function(t){n||c(t);try{return new n(t)}catch(e){throw new Error('Cannot convert "'+t+'" to Complex')}}},{from:"boolean",to:"number",convert:function(e){return+e}},{from:"boolean",to:"BigNumber",convert:function(e){return r||u(e),new r(+e)}},{from:"boolean",to:"Fraction",convert:function(e){return i||f(e),new i(+e)}},{from:"boolean",to:"string",convert:function(e){return String(e)}},{from:"Array",to:"Matrix",convert:function(e){return t||function(){throw new Error("Cannot convert array into a Matrix: no class 'DenseMatrix' provided")}(),new t(e)}},{from:"Matrix",to:"Array",convert:function(e){return e.valueOf()}}],e});function u(e){throw new Error("Cannot convert value ".concat(e," into a BigNumber: no class 'BigNumber' provided"))}function c(e){throw new Error("Cannot convert value ".concat(e," into a Complex number: no class 'Complex' provided"))}function f(e){throw new Error("Cannot convert value ".concat(e," into a Fraction, no class 'Fraction' provided."))}var n=[],l=Object(a.a)("ResultSet",n,function(){function t(e){if(!(this instanceof t))throw new SyntaxError("Constructor must be called with the new operator");this.entries=e||[]}return t.prototype.type="ResultSet",t.prototype.isResultSet=!0,t.prototype.valueOf=function(){return this.entries},t.prototype.toString=function(){return"["+this.entries.join(", ")+"]"},t.prototype.toJSON=function(){return{mathjs:"ResultSet",entries:this.entries}},t.fromJSON=function(e){return new t(e.entries)},t},{isClass:!0}),p=r(12),m=r.n(p),t=["?on","config"],h=Object(a.a)("BigNumber",t,function(e){var t=e.on,e=e.config,r=m.a.clone({precision:e.precision,modulo:9});return r.prototype.type="BigNumber",r.prototype.isBigNumber=!0,r.prototype.toJSON=function(){return{mathjs:"BigNumber",value:this.toString()}},r.fromJSON=function(e){return new r(e.value)},t&&t("config",function(e,t){e.precision!==t.precision&&r.config({precision:e.precision})}),r},{isClass:!0}),n=r(8),d=r.n(n);function y(e){return(y="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}var t=[],g=Object(a.a)("Complex",t,function(){return d.a.prototype.type="Complex",d.a.prototype.isComplex=!0,d.a.prototype.toJSON=function(){return{mathjs:"Complex",re:this.re,im:this.im}},d.a.prototype.toPolar=function(){return{r:this.abs(),phi:this.arg()}},d.a.prototype.format=function(e){var t=this.im,r=this.re,n=Object(N.h)(this.re,e),i=Object(N.h)(this.im,e),e=Object(ie.y)(e)?e:e?e.precision:null;return null!==e&&(e=Math.pow(10,-e),Math.abs(r/t)t.re?1:e.ret.im?1:e.imn[a]&&(n[a]=t[a],i=!0);i&&s(e,n,r)}return(p.prototype=new e).createDenseMatrix=function(e,t){return new p(e,t)},p.prototype.type="DenseMatrix",p.prototype.isDenseMatrix=!0,p.prototype.getDataType=function(){return Object(E.h)(this._data,ie.M)},p.prototype.storage=function(){return"dense"},p.prototype.datatype=function(){return this._datatype},p.prototype.create=function(e,t){return new p(e,t)},p.prototype.subset=function(e,t,r){switch(arguments.length){case 1:return function(e,t){if(!Object(ie.t)(t))throw new TypeError("Invalid index");{if(t.isScalar())return e.get(t.min());var r=t.size();if(r.length!==e._size.length)throw new I.a(r.length,e._size.length);for(var n=t.min(),i=t.max(),a=0,o=e._size.length;a");o=t.max().map(function(e){return e+1});c(e,o,n);n=a.length;!function r(n,i,a,o,s){var e=s===o-1;var t=i.dimension(s);e?t.forEach(function(e,t){Object(E.q)(e),n[e]=a[t[0]]}):t.forEach(function(e,t){Object(E.q)(e),r(n[e],i,a[t[0]],o,s+1)})}(e._data,t,r,n,0)}return e}(this,e,t,r);default:throw new SyntaxError("Wrong number of arguments")}},p.prototype.get=function(e){if(!Object(ie.b)(e))throw new TypeError("Array expected");if(e.length!==this._size.length)throw new I.a(e.length,this._size.length);for(var t=0;t=n.length)throw new j.a(t,n.length);return Object(ie.v)(e)?e.create(_(e.valueOf(),t,r)):_(e,t,r)}function _(e,t,r){var n,i,a,o;if(t<=0){if(Array.isArray(e[0])){for(o=function(e){var t,r,n=e.length,i=e[0].length,a=[];for(r=0;r");for(var c=t.min()[0],f=t.min()[1],l=i[0],p=i[1],m=0;m "+(this._values?Object(Z.d)(this._values[u],e):"X")}return i},j.prototype.toString=function(){return Object(Z.d)(this.toArray())},j.prototype.toJSON=function(){return{mathjs:"SparseMatrix",values:this._values,index:this._index,ptr:this._ptr,size:this._size,datatype:this._datatype}},j.prototype.diagonal=function(e){if(e){if(Object(ie.e)(e)&&(e=e.toNumber()),!Object(ie.y)(e)||!Object(N.i)(e))throw new TypeError("The parameter k must be an integer number")}else e=0;var t=0Math.pow(2,32)-1)throw new SyntaxError('String "'.concat(e,'" is out of range'));2147483648&t&&(t=-1*~(t-1))}return t},BigNumber:function(e){return e.toNumber()},Fraction:function(e){return e.valueOf()},Unit:function(){throw new Error("Second argument with valueless unit expected")},null:function(){return 0},"Unit, string | Unit":function(e,t){return e.toNumber(t)},"Array | Matrix":function(e){return oe(e,this)}});return e.fromJSON=function(e){return parseFloat(e.value)},e}),n=["typed"],re=Object(a.a)("string",n,function(e){return(0,e.typed)("string",{"":function(){return""},number:N.h,null:function(){return"null"},boolean:function(e){return e+""},string:function(e){return e},"Array | Matrix":function(e){return oe(e,this)},any:function(e){return String(e)}})}),ne="boolean",t=["typed"],se=Object(a.a)(ne,t,function(e){return(0,e.typed)(ne,{"":function(){return!1},boolean:function(e){return e},number:function(e){return!!e},null:function(){return!1},BigNumber:function(e){return!e.isZero()},string:function(e){var t=e.toLowerCase();if("true"===t)return!0;if("false"===t)return!1;t=Number(e);if(""!==e&&!isNaN(t))return!!t;throw new Error('Cannot convert "'+e+'" to a boolean')},"Array | Matrix":function(e){return oe(e,this)}})}),n=["typed","BigNumber"],ue=Object(a.a)("bignumber",n,function(e){var t=e.typed,r=e.BigNumber;return t("bignumber",{"":function(){return new r(0)},number:function(e){return new r(e+"")},string:function(e){return new r(e)},BigNumber:function(e){return e},Fraction:function(e){return new r(e.n).div(e.d).times(e.s)},null:function(){return new r(0)},"Array | Matrix":function(e){return oe(e,this)}})}),t=["typed","Complex"],ce=Object(a.a)("complex",t,function(e){var t=e.typed,r=e.Complex;return t("complex",{"":function(){return r.ZERO},number:function(e){return new r(e,0)},"number, number":function(e,t){return new r(e,t)},"BigNumber, BigNumber":function(e,t){return new r(e.toNumber(),t.toNumber())},Fraction:function(e){return new r(e.valueOf(),0)},Complex:function(e){return e.clone()},string:function(e){return r(e)},null:function(){return r(0)},Object:function(e){if("re"in e&&"im"in e)return new r(e.re,e.im);if("r"in e&&"phi"in e||"abs"in e&&"arg"in e)return new r(e);throw new Error("Expected object with properties (re and im) or (r and phi) or (abs and arg)")},"Array | Matrix":function(e){return oe(e,this)}})}),n=["typed","Fraction"],fe=Object(a.a)("fraction",n,function(e){var t=e.typed,r=e.Fraction;return t("fraction",{number:function(e){if(!isFinite(e)||isNaN(e))throw new Error(e+" cannot be represented as a fraction");return new r(e)},string:function(e){return new r(e)},"number, number":function(e,t){return new r(e,t)},null:function(){return new r(0)},BigNumber:function(e){return new r(e.toString())},Fraction:function(e){return e},Object:function(e){return new r(e)},"Array | Matrix":function(e){return oe(e,this)}})}),t=["typed","Matrix","DenseMatrix","SparseMatrix"],le=Object(a.a)("matrix",t,function(e){var t=e.typed,n=(e.Matrix,e.DenseMatrix),i=e.SparseMatrix;return t("matrix",{"":function(){return r([])},string:function(e){return r([],e)},"string, string":function(e,t){return r([],e,t)},Array:function(e){return r(e)},Matrix:function(e){return r(e,e.storage())},"Array | Matrix, string":r,"Array | Matrix, string, string":r});function r(e,t,r){if("dense"===t||"default"===t||void 0===t)return new n(e,r);if("sparse"===t)return new i(e,r);throw new TypeError("Unknown matrix type "+JSON.stringify(t)+".")}}),pe="splitUnit",n=["typed"],me=Object(a.a)(pe,n,function(e){return(0,e.typed)(pe,{"Unit, Array":function(e,t){return e.splitUnit(t)}})}),t="number",n="number, number";function he(e){return Math.abs(e)}function de(e,t){return e+t}function ye(e,t){return e*t}function ge(e){return-e}function be(e){return e}function ve(e){return Object(N.d)(e)}function xe(e){return Math.ceil(e)}function we(e){return e*e*e}function Ne(e){return Math.exp(e)}function Oe(e){return Object(N.g)(e)}function Me(e,t){if(!Object(N.i)(e)||!Object(N.i)(t))throw new Error("Parameters in function gcd must be integer numbers");for(var r;0!==t;)r=e%t,e=t,t=r;return e<0?-e:e}function je(e,t){if(!Object(N.i)(e)||!Object(N.i)(t))throw new Error("Parameters in function lcm must be integer numbers");if(0===e||0===t)return 0;for(var r,n=e*t;0!==t;)t=e%(r=t),e=r;return Math.abs(n/e)}function Ee(e){return Math.log(e)}function Se(e){return Object(N.j)(e)}function Ae(e){return Object(N.l)(e)}function Ce(e,t){if(0=n.length)throw new j.a(t,n.length);return Object(ie.v)(e)?e.create(Le(e.valueOf(),t,r)):Le(e,t,r)}})});function Le(e,t,r){var n,i,a;if(t<=0){if(Array.isArray(e[0])){for(a=function(e){var t,r,n=e.length,i=e[0].length,a=[];for(r=0;re.length)&&(t=e.length);for(var r=0,n=new Array(t);re.length)&&(t=e.length);for(var r=0,n=new Array(t);re)for(s-=e;s--;)u+="0";else s>1,c[p]&=1)}return c.reverse()}function Rt(e,t){if(e.isFinite()&&!e.isInteger()||t.isFinite()&&!t.isInteger())throw new Error("Integers expected in function bitXor");var r=e.constructor;if(e.isNaN()||t.isNaN())return new r(NaN);if(e.isZero())return t;if(t.isZero())return e;if(e.eq(t))return new r(0);var n=new r(-1);return e.eq(n)?Bt(t):t.eq(n)?Bt(e):e.isFinite()&&t.isFinite()?zt(e,t,function(e,t){return e^t}):e.isFinite()||t.isFinite()?new r(e.isNegative()===t.isNegative()?1/0:-1/0):n}function Ut(e,t){if(e.isFinite()&&!e.isInteger()||t.isFinite()&&!t.isInteger())throw new Error("Integers expected in function leftShift");var r=e.constructor;return e.isNaN()||t.isNaN()||t.isNegative()&&!t.isZero()?new r(NaN):e.isZero()||t.isZero()?e:e.isFinite()||t.isFinite()?t.lt(55)?e.times(Math.pow(2,t.toNumber())+""):e.times(new r(2).pow(t)):new r(NaN)}function Pt(e,t){if(e.isFinite()&&!e.isInteger()||t.isFinite()&&!t.isInteger())throw new Error("Integers expected in function rightArithShift");var r=e.constructor;return e.isNaN()||t.isNaN()||t.isNegative()&&!t.isZero()?new r(NaN):e.isZero()||t.isZero()?e:t.isFinite()?(t.lt(55)?e.div(Math.pow(2,t.toNumber())+""):e.div(new r(2).pow(t))).floor():e.isNegative()?new r(-1):e.isFinite()?new r(0):new r(NaN)}t="number, number";function Ft(e,t){if(!Object(N.i)(e)||!Object(N.i)(t))throw new Error("Integers expected in function bitAnd");return e&t}function Lt(e){if(!Object(N.i)(e))throw new Error("Integer expected in function bitNot");return~e}function Ht(e,t){if(!Object(N.i)(e)||!Object(N.i)(t))throw new Error("Integers expected in function bitOr");return e|t}function $t(e,t){if(!Object(N.i)(e)||!Object(N.i)(t))throw new Error("Integers expected in function bitXor");return e^t}function Gt(e,t){if(!Object(N.i)(e)||!Object(N.i)(t))throw new Error("Integers expected in function leftShift");return e<>t}function Zt(e,t){if(!Object(N.i)(e)||!Object(N.i)(t))throw new Error("Integers expected in function rightLogShift");return e>>>t}Ft.signature=t,Lt.signature="number",Zt.signature=Vt.signature=Gt.signature=$t.signature=Ht.signature=t;var n=["typed","matrix","equalScalar"],Jt=Object(a.a)("bitAnd",n,function(e){var t=e.typed,r=e.matrix,e=e.equalScalar,n=ct({typed:t,equalScalar:e}),i=ft({typed:t,equalScalar:e}),a=Ve({typed:t,equalScalar:e}),o=st({typed:t}),s=Ze({typed:t});return t("bitAnd",{"number, number":Ft,"BigNumber, BigNumber":It,"SparseMatrix, SparseMatrix":function(e,t){return i(e,t,this,!1)},"SparseMatrix, DenseMatrix":function(e,t){return n(t,e,this,!0)},"DenseMatrix, SparseMatrix":function(e,t){return n(e,t,this,!1)},"DenseMatrix, DenseMatrix":function(e,t){return o(e,t,this)},"Array, Array":function(e,t){return this(r(e),r(t)).valueOf()},"Array, Matrix":function(e,t){return this(r(e),t)},"Matrix, Array":function(e,t){return this(e,r(t))},"SparseMatrix, any":function(e,t){return a(e,t,this,!1)},"DenseMatrix, any":function(e,t){return s(e,t,this,!1)},"any, SparseMatrix":function(e,t){return a(t,e,this,!0)},"any, DenseMatrix":function(e,t){return s(t,e,this,!0)},"Array, any":function(e,t){return s(r(e),t,this,!1).valueOf()},"any, Array":function(e,t){return s(r(t),e,this,!0).valueOf()}})}),t=["typed"],Wt=Object(a.a)("bitNot",t,function(e){return(0,e.typed)("bitNot",{number:Lt,BigNumber:Bt,"Array | Matrix":function(e){return oe(e,this)}})}),n=["typed","matrix","equalScalar","DenseMatrix"],Yt=Object(a.a)("bitOr",n,function(e){var t=e.typed,r=e.matrix,n=e.equalScalar,e=e.DenseMatrix,i=it({typed:t}),a=at({typed:t,equalScalar:n}),o=ot({typed:t,DenseMatrix:e}),s=st({typed:t}),u=Ze({typed:t});return t("bitOr",{"number, number":Ht,"BigNumber, BigNumber":kt,"SparseMatrix, SparseMatrix":function(e,t){return a(e,t,this)},"SparseMatrix, DenseMatrix":function(e,t){return i(t,e,this,!0)},"DenseMatrix, SparseMatrix":function(e,t){return i(e,t,this,!1)},"DenseMatrix, DenseMatrix":function(e,t){return s(e,t,this)},"Array, Array":function(e,t){return this(r(e),r(t)).valueOf()},"Array, Matrix":function(e,t){return this(r(e),t)},"Matrix, Array":function(e,t){return this(e,r(t))},"SparseMatrix, any":function(e,t){return o(e,t,this,!1)},"DenseMatrix, any":function(e,t){return u(e,t,this,!1)},"any, SparseMatrix":function(e,t){return o(t,e,this,!0)},"any, DenseMatrix":function(e,t){return u(t,e,this,!0)},"Array, any":function(e,t){return u(r(e),t,this,!1).valueOf()},"any, Array":function(e,t){return u(r(t),e,this,!0).valueOf()}})}),t=["typed","DenseMatrix"],Xt=Object(a.a)("algorithm07",t,function(e){var N=e.typed,O=e.DenseMatrix;return function(e,t,r){var n=e._size,i=e._datatype,a=t._size,o=t._datatype;if(n.length!==a.length)throw new I.a(n.length,a.length);if(n[0]!==a[0]||n[1]!==a[1])throw new RangeError("Dimension mismatch. Matrix A ("+n+") must match Matrix B ("+a+")");var s,u=n[0],c=n[1],f=0,l=r;"string"==typeof i&&i===o&&(s=i,f=N.convert(0,s),l=N.find(r,[s,s]));for(var p=[],m=0;mn)return e.substring(0,n);if(e.lengtha)for(var u=a-1,c=o.length;un&&(n=t[a],r=[a])}return r}});function vn(e,t,r){var n;return-1!==String(e).indexOf("Unexpected type")?(n=2Math.pow(2,31)-1||e<-Math.pow(2,31))throw new Error("Value must be in range [-2^31, 2^31-1]");if(!Object(N.i)(e))throw new Error("Value must be an integer");return e<0&&(e+=Math.pow(2,32)),"".concat(r).concat(e.toString(t))})})})}var Mn=On("bin",2),jn=On("oct",8),En=On("hex",16),n=["typed"],Sn=Object(a.a)("print",n,function(e){return(0,e.typed)("print",{"string, Object | Array":An,"string, Object | Array, number | Object":An})});function An(e,a,o){return e.replace(/\$([\w.]+)/g,function(e,t){for(var r=t.split("."),n=a[r.shift()];r.length&&void 0!==n;)var i=r.shift(),n=i?n[i]:n+".";return void 0!==n?Object(ie.I)(n)?n:Object(Z.d)(n,o):e})}var t=["typed","matrix"],Cn=Object(a.a)("to",t,function(e){var t=e.typed,r=e.matrix,n=st({typed:t}),i=Ze({typed:t});return t("to",{"Unit, Unit | string":function(e,t){return e.to(t)},"Matrix, Matrix":function(e,t){return n(e,t,this)},"Array, Array":function(e,t){return this(r(e),r(t)).valueOf()},"Array, Matrix":function(e,t){return this(r(e),t)},"Matrix, Array":function(e,t){return this(e,r(t))},"Matrix, any":function(e,t){return i(e,t,this,!1)},"any, Matrix":function(e,t){return i(t,e,this,!0)},"Array, any":function(e,t){return i(r(e),t,this,!1).valueOf()},"any, Array":function(e,t){return i(r(t),e,this,!0).valueOf()}})}),_n="isPrime",n=["typed"],Tn=Object(a.a)(_n,n,function(e){return(0,e.typed)(_n,{number:function(e){if(0*e!=0)return!1;if(e<=3)return 1>=1,i=o(i,i);return n}function l(e,t){return r(f(e.valueOf(),t))}});function zn(t,e){var r,n=Object.keys(t);return Object.getOwnPropertySymbols&&(r=Object.getOwnPropertySymbols(t),e&&(r=r.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),n.push.apply(n,r)),n}function Dn(n){for(var e=1;ee.length)&&(t=e.length);for(var r=0,n=new Array(t);re.length)&&(t=e.length);for(var r=0,n=new Array(t);rt.re)return 1;if(e.ret.im)return 1;if(e.imr.length?1:t.length=e.length)throw new Error("k out of bounds");for(var n=0;n=e&&(c(s.value,0)||r(s.key,s.value,this)),(s=n.extractMinimum())&&a.push(s);for(var o=0;oe[n+1].length&&(t=e[n],e[n]=e[n+1],e[n+1]=t);return e}(r)}})}),so="setSize",n=["typed","compareNatural"],uo=Object(a.a)(so,n,function(e){var t=e.typed,a=e.compareNatural;return t(so,{"Array | Matrix":function(e){return(Array.isArray(e)?Object(E.e)(e):Object(E.e)(e.toArray())).length},"Array | Matrix, boolean":function(e,t){if(!1===t||0===e.length)return(Array.isArray(e)?Object(E.e)(e):Object(E.e)(e.toArray())).length;for(var r=Object(E.e)(Array.isArray(e)?e:e.toArray()).sort(a),n=1,i=1;i)'),t+this.index.toHTML(e)},r.prototype._toTex=function(e){var t=this.object.toTex(e);return n(this.object)&&(t="\\left(' + object + '\\right)"),t+this.index.toTex(e)},r.prototype.toJSON=function(){return{mathjs:"AccessorNode",object:this.object,index:this.index}},r.fromJSON=function(e){return new r(e.object,e.index)},r},{isClass:!0,isNode:!0}),t=["Node"],So=Object(a.a)("ArrayNode",t,function(e){e=e.Node;function n(e){if(!(this instanceof n))throw new SyntaxError("Constructor must be called with the new operator");if(this.items=e||[],!Array.isArray(this.items)||!this.items.every(ie.w))throw new TypeError("Array containing Nodes expected")}return(n.prototype=new e).type="ArrayNode",n.prototype.isArrayNode=!0,n.prototype._compile=function(t,r){var e=Object(E.k)(this.items,function(e){return e._compile(t,r)});if("Array"===t.config.matrix)return function(t,r,n){return Object(E.k)(e,function(e){return e(t,r,n)})};var i=t.matrix;return function(t,r,n){return i(Object(E.k)(e,function(e){return e(t,r,n)}))}},n.prototype.forEach=function(e){for(var t=0;t['+this.items.map(function(e){return e.toHTML(t)}).join(',')+']'},n.prototype._toTex=function(t){var r="\\begin{bmatrix}";return this.items.forEach(function(e){e.items?r+=e.items.map(function(e){return e.toTex(t)}).join("&"):r+=e.toTex(t),r+="\\\\"}),r+="\\end{bmatrix}"},n},{isClass:!0,isNode:!0});function Ao(e){return(Ao="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}var Co=[{AssignmentNode:{},FunctionAssignmentNode:{}},{ConditionalNode:{latexLeftParens:!1,latexRightParens:!1,latexParens:!1}},{"OperatorNode:or":{associativity:"left",associativeWith:[]}},{"OperatorNode:xor":{associativity:"left",associativeWith:[]}},{"OperatorNode:and":{associativity:"left",associativeWith:[]}},{"OperatorNode:bitOr":{associativity:"left",associativeWith:[]}},{"OperatorNode:bitXor":{associativity:"left",associativeWith:[]}},{"OperatorNode:bitAnd":{associativity:"left",associativeWith:[]}},{"OperatorNode:equal":{associativity:"left",associativeWith:[]},"OperatorNode:unequal":{associativity:"left",associativeWith:[]},"OperatorNode:smaller":{associativity:"left",associativeWith:[]},"OperatorNode:larger":{associativity:"left",associativeWith:[]},"OperatorNode:smallerEq":{associativity:"left",associativeWith:[]},"OperatorNode:largerEq":{associativity:"left",associativeWith:[]},RelationalNode:{associativity:"left",associativeWith:[]}},{"OperatorNode:leftShift":{associativity:"left",associativeWith:[]},"OperatorNode:rightArithShift":{associativity:"left",associativeWith:[]},"OperatorNode:rightLogShift":{associativity:"left",associativeWith:[]}},{"OperatorNode:to":{associativity:"left",associativeWith:[]}},{RangeNode:{}},{"OperatorNode:add":{associativity:"left",associativeWith:["OperatorNode:add","OperatorNode:subtract"]},"OperatorNode:subtract":{associativity:"left",associativeWith:[]}},{"OperatorNode:multiply":{associativity:"left",associativeWith:["OperatorNode:multiply","OperatorNode:divide","Operator:dotMultiply","Operator:dotDivide"]},"OperatorNode:divide":{associativity:"left",associativeWith:[],latexLeftParens:!1,latexRightParens:!1,latexParens:!1},"OperatorNode:dotMultiply":{associativity:"left",associativeWith:["OperatorNode:multiply","OperatorNode:divide","OperatorNode:dotMultiply","OperatorNode:doDivide"]},"OperatorNode:dotDivide":{associativity:"left",associativeWith:[]},"OperatorNode:mod":{associativity:"left",associativeWith:[]}},{"OperatorNode:unaryPlus":{associativity:"right"},"OperatorNode:unaryMinus":{associativity:"right"},"OperatorNode:bitNot":{associativity:"right"},"OperatorNode:not":{associativity:"right"}},{"OperatorNode:pow":{associativity:"right",associativeWith:[],latexRightParens:!1},"OperatorNode:dotPow":{associativity:"right",associativeWith:[]}},{"OperatorNode:factorial":{associativity:"left"}},{"OperatorNode:transpose":{associativity:"left"}}];function _o(e,t){var r=e;"keep"!==t&&(r=e.getContent());for(var n=r.getIdentifier(),i=0;i)'),t+r+'='+n},a.prototype._toTex=function(e){var t=this.object.toTex(e),r=this.index?this.index.toTex(e):"",n=this.value.toTex(e);return o(this,e&&e.parenthesis)&&(n="\\left(".concat(n,"\\right)")),t+r+":="+n},a},{isClass:!0,isNode:!0}),t=["ResultSet","Node"],Bo=Object(a.a)("BlockNode",t,function(e){var o=e.ResultSet,e=e.Node;function a(e){if(!(this instanceof a))throw new SyntaxError("Constructor must be called with the new operator");if(!Array.isArray(e))throw new Error("Array expected");this.blocks=e.map(function(e){var t=e&&e.node,e=!e||void 0===e.visible||e.visible;if(!Object(ie.w)(t))throw new TypeError('Property "node" must be a Node');if("boolean"!=typeof e)throw new TypeError('Property "visible" must be a boolean');return{node:t,visible:e}})}return(a.prototype=new e).type="BlockNode",a.prototype.isBlockNode=!0,a.prototype._compile=function(t,r){var e=Object(E.k)(this.blocks,function(e){return{evaluate:e.node._compile(t,r),visible:e.visible}});return function(r,n,i){var a=[];return Object(E.f)(e,function(e){var t=e.evaluate(r,n,i);e.visible&&a.push(t)}),new o(a)}},a.prototype.forEach=function(e){for(var t=0;t;')}).join('
    ')},a.prototype._toTex=function(t){return this.blocks.map(function(e){return e.node.toTex(t)+(e.visible?"":";")}).join("\\;\\;\n")},a},{isClass:!0,isNode:!0}),n=["Node"],ko=Object(a.a)("ConditionalNode",n,function(e){e=e.Node;function n(e,t,r){if(!(this instanceof n))throw new SyntaxError("Constructor must be called with the new operator");if(!Object(ie.w)(e))throw new TypeError("Parameter condition must be a Node");if(!Object(ie.w)(t))throw new TypeError("Parameter trueExpr must be a Node");if(!Object(ie.w)(r))throw new TypeError("Parameter falseExpr must be a Node");this.condition=e,this.trueExpr=t,this.falseExpr=r}return(n.prototype=new e).type="ConditionalNode",n.prototype.isConditionalNode=!0,n.prototype._compile=function(e,t){var n=this.condition._compile(e,t),i=this.trueExpr._compile(e,t),a=this.falseExpr._compile(e,t);return function(e,t,r){return(function(e){if("number"==typeof e||"boolean"==typeof e||"string"==typeof e)return!!e;if(e){if(Object(ie.e)(e))return!e.isZero();if(Object(ie.j)(e))return!(!e.re&&!e.im);if(Object(ie.L)(e))return!!e.value}if(null!=e)throw new TypeError('Unsupported type of condition "'+Object(ie.M)(e)+'"');return!1}(n(e,t,r))?i:a)(e,t,r)}},n.prototype.forEach=function(e){e(this.condition,"condition",this),e(this.trueExpr,"trueExpr",this),e(this.falseExpr,"falseExpr",this)},n.prototype.map=function(e){return new n(this._ifNode(e(this.condition,"condition",this)),this._ifNode(e(this.trueExpr,"trueExpr",this)),this._ifNode(e(this.falseExpr,"falseExpr",this)))},n.prototype.clone=function(){return new n(this.condition,this.trueExpr,this.falseExpr)},n.prototype._toString=function(e){var t=e&&e.parenthesis?e.parenthesis:"keep",r=_o(this,t),n=this.condition.toString(e),i=_o(this.condition,t);("all"===t||"OperatorNode"===this.condition.type||null!==i&&i<=r)&&(n="("+n+")");var a=this.trueExpr.toString(e),i=_o(this.trueExpr,t);("all"===t||"OperatorNode"===this.trueExpr.type||null!==i&&i<=r)&&(a="("+a+")");i=this.falseExpr.toString(e),e=_o(this.falseExpr,t);return("all"===t||"OperatorNode"===this.falseExpr.type||null!==e&&e<=r)&&(i="("+i+")"),n+" ? "+a+" : "+i},n.prototype.toJSON=function(){return{mathjs:"ConditionalNode",condition:this.condition,trueExpr:this.trueExpr,falseExpr:this.falseExpr}},n.fromJSON=function(e){return new n(e.condition,e.trueExpr,e.falseExpr)},n.prototype.toHTML=function(e){var t=e&&e.parenthesis?e.parenthesis:"keep",r=_o(this,t),n=this.condition.toHTML(e),i=_o(this.condition,t);("all"===t||"OperatorNode"===this.condition.type||null!==i&&i<=r)&&(n='('+n+')');var a=this.trueExpr.toHTML(e),i=_o(this.trueExpr,t);("all"===t||"OperatorNode"===this.trueExpr.type||null!==i&&i<=r)&&(a='('+a+')');i=this.falseExpr.toHTML(e),e=_o(this.falseExpr,t);return("all"===t||"OperatorNode"===this.falseExpr.type||null!==e&&e<=r)&&(i='('+i+')'),n+'?'+a+':'+i},n.prototype._toTex=function(e){return"\\begin{cases} {"+this.trueExpr.toTex(e)+"}, &\\quad{\\text{if }\\;"+this.condition.toTex(e)+"}\\\\{"+this.falseExpr.toTex(e)+"}, &\\quad{\\text{otherwise}}\\end{cases}"},n},{isClass:!0,isNode:!0}),t=r(16),zo=r.n(t),Do={Alpha:"A",alpha:"\\alpha",Beta:"B",beta:"\\beta",Gamma:"\\Gamma",gamma:"\\gamma",Delta:"\\Delta",delta:"\\delta",Epsilon:"E",epsilon:"\\epsilon",varepsilon:"\\varepsilon",Zeta:"Z",zeta:"\\zeta",Eta:"H",eta:"\\eta",Theta:"\\Theta",theta:"\\theta",vartheta:"\\vartheta",Iota:"I",iota:"\\iota",Kappa:"K",kappa:"\\kappa",varkappa:"\\varkappa",Lambda:"\\Lambda",lambda:"\\lambda",Mu:"M",mu:"\\mu",Nu:"N",nu:"\\nu",Xi:"\\Xi",xi:"\\xi",Omicron:"O",omicron:"o",Pi:"\\Pi",pi:"\\pi",varpi:"\\varpi",Rho:"P",rho:"\\rho",varrho:"\\varrho",Sigma:"\\Sigma",sigma:"\\sigma",varsigma:"\\varsigma",Tau:"T",tau:"\\tau",Upsilon:"\\Upsilon",upsilon:"\\upsilon",Phi:"\\Phi",phi:"\\phi",varphi:"\\varphi",Chi:"X",chi:"\\chi",Psi:"\\Psi",psi:"\\psi",Omega:"\\Omega",omega:"\\omega",true:"\\mathrm{True}",false:"\\mathrm{False}",i:"i",inf:"\\infty",Inf:"\\infty",infinity:"\\infty",Infinity:"\\infty",oo:"\\infty",lim:"\\lim",undefined:"\\mathbf{?}"},Ro={transpose:"^\\top",ctranspose:"^H",factorial:"!",pow:"^",dotPow:".^\\wedge",unaryPlus:"+",unaryMinus:"-",bitNot:"\\~",not:"\\neg",multiply:"\\cdot",divide:"\\frac",dotMultiply:".\\cdot",dotDivide:".:",mod:"\\mod",add:"+",subtract:"-",to:"\\rightarrow",leftShift:"<<",rightArithShift:">>",rightLogShift:">>>",equal:"=",unequal:"\\neq",smaller:"<",larger:">",smallerEq:"\\leq",largerEq:"\\geq",bitAnd:"\\&",bitXor:"\\underline{|}",bitOr:"|",and:"\\wedge",xor:"\\veebar",or:"\\vee"},Uo={abs:{1:"\\left|${args[0]}\\right|"},add:{2:"\\left(${args[0]}".concat(Ro.add,"${args[1]}\\right)")},cbrt:{1:"\\sqrt[3]{${args[0]}}"},ceil:{1:"\\left\\lceil${args[0]}\\right\\rceil"},cube:{1:"\\left(${args[0]}\\right)^3"},divide:{2:"\\frac{${args[0]}}{${args[1]}}"},dotDivide:{2:"\\left(${args[0]}".concat(Ro.dotDivide,"${args[1]}\\right)")},dotMultiply:{2:"\\left(${args[0]}".concat(Ro.dotMultiply,"${args[1]}\\right)")},dotPow:{2:"\\left(${args[0]}".concat(Ro.dotPow,"${args[1]}\\right)")},exp:{1:"\\exp\\left(${args[0]}\\right)"},expm1:"\\left(e".concat(Ro.pow,"{${args[0]}}-1\\right)"),fix:{1:"\\mathrm{${name}}\\left(${args[0]}\\right)"},floor:{1:"\\left\\lfloor${args[0]}\\right\\rfloor"},gcd:"\\gcd\\left(${args}\\right)",hypot:"\\hypot\\left(${args}\\right)",log:{1:"\\ln\\left(${args[0]}\\right)",2:"\\log_{${args[1]}}\\left(${args[0]}\\right)"},log10:{1:"\\log_{10}\\left(${args[0]}\\right)"},log1p:{1:"\\ln\\left(${args[0]}+1\\right)",2:"\\log_{${args[1]}}\\left(${args[0]}+1\\right)"},log2:"\\log_{2}\\left(${args[0]}\\right)",mod:{2:"\\left(${args[0]}".concat(Ro.mod,"${args[1]}\\right)")},multiply:{2:"\\left(${args[0]}".concat(Ro.multiply,"${args[1]}\\right)")},norm:{1:"\\left\\|${args[0]}\\right\\|",2:void 0},nthRoot:{2:"\\sqrt[${args[1]}]{${args[0]}}"},nthRoots:{2:"\\{y : $y^{args[1]} = {${args[0]}}\\}"},pow:{2:"\\left(${args[0]}\\right)".concat(Ro.pow,"{${args[1]}}")},round:{1:"\\left\\lfloor${args[0]}\\right\\rceil",2:void 0},sign:{1:"\\mathrm{${name}}\\left(${args[0]}\\right)"},sqrt:{1:"\\sqrt{${args[0]}}"},square:{1:"\\left(${args[0]}\\right)^2"},subtract:{2:"\\left(${args[0]}".concat(Ro.subtract,"${args[1]}\\right)")},unaryMinus:{1:"".concat(Ro.unaryMinus,"\\left(${args[0]}\\right)")},unaryPlus:{1:"".concat(Ro.unaryPlus,"\\left(${args[0]}\\right)")},bitAnd:{2:"\\left(${args[0]}".concat(Ro.bitAnd,"${args[1]}\\right)")},bitNot:{1:Ro.bitNot+"\\left(${args[0]}\\right)"},bitOr:{2:"\\left(${args[0]}".concat(Ro.bitOr,"${args[1]}\\right)")},bitXor:{2:"\\left(${args[0]}".concat(Ro.bitXor,"${args[1]}\\right)")},leftShift:{2:"\\left(${args[0]}".concat(Ro.leftShift,"${args[1]}\\right)")},rightArithShift:{2:"\\left(${args[0]}".concat(Ro.rightArithShift,"${args[1]}\\right)")},rightLogShift:{2:"\\left(${args[0]}".concat(Ro.rightLogShift,"${args[1]}\\right)")},bellNumbers:{1:"\\mathrm{B}_{${args[0]}}"},catalan:{1:"\\mathrm{C}_{${args[0]}}"},stirlingS2:{2:"\\mathrm{S}\\left(${args}\\right)"},arg:{1:"\\arg\\left(${args[0]}\\right)"},conj:{1:"\\left(${args[0]}\\right)^*"},im:{1:"\\Im\\left\\lbrace${args[0]}\\right\\rbrace"},re:{1:"\\Re\\left\\lbrace${args[0]}\\right\\rbrace"},and:{2:"\\left(${args[0]}".concat(Ro.and,"${args[1]}\\right)")},not:{1:Ro.not+"\\left(${args[0]}\\right)"},or:{2:"\\left(${args[0]}".concat(Ro.or,"${args[1]}\\right)")},xor:{2:"\\left(${args[0]}".concat(Ro.xor,"${args[1]}\\right)")},cross:{2:"\\left(${args[0]}\\right)\\times\\left(${args[1]}\\right)"},ctranspose:{1:"\\left(${args[0]}\\right)".concat(Ro.ctranspose)},det:{1:"\\det\\left(${args[0]}\\right)"},dot:{2:"\\left(${args[0]}\\cdot${args[1]}\\right)"},expm:{1:"\\exp\\left(${args[0]}\\right)"},inv:{1:"\\left(${args[0]}\\right)^{-1}"},sqrtm:{1:"{${args[0]}}".concat(Ro.pow,"{\\frac{1}{2}}")},trace:{1:"\\mathrm{tr}\\left(${args[0]}\\right)"},transpose:{1:"\\left(${args[0]}\\right)".concat(Ro.transpose)},combinations:{2:"\\binom{${args[0]}}{${args[1]}}"},combinationsWithRep:{2:"\\left(\\!\\!{\\binom{${args[0]}}{${args[1]}}}\\!\\!\\right)"},factorial:{1:"\\left(${args[0]}\\right)".concat(Ro.factorial)},gamma:{1:"\\Gamma\\left(${args[0]}\\right)"},equal:{2:"\\left(${args[0]}".concat(Ro.equal,"${args[1]}\\right)")},larger:{2:"\\left(${args[0]}".concat(Ro.larger,"${args[1]}\\right)")},largerEq:{2:"\\left(${args[0]}".concat(Ro.largerEq,"${args[1]}\\right)")},smaller:{2:"\\left(${args[0]}".concat(Ro.smaller,"${args[1]}\\right)")},smallerEq:{2:"\\left(${args[0]}".concat(Ro.smallerEq,"${args[1]}\\right)")},unequal:{2:"\\left(${args[0]}".concat(Ro.unequal,"${args[1]}\\right)")},erf:{1:"erf\\left(${args[0]}\\right)"},max:"\\max\\left(${args}\\right)",min:"\\min\\left(${args}\\right)",variance:"\\mathrm{Var}\\left(${args}\\right)",acos:{1:"\\cos^{-1}\\left(${args[0]}\\right)"},acosh:{1:"\\cosh^{-1}\\left(${args[0]}\\right)"},acot:{1:"\\cot^{-1}\\left(${args[0]}\\right)"},acoth:{1:"\\coth^{-1}\\left(${args[0]}\\right)"},acsc:{1:"\\csc^{-1}\\left(${args[0]}\\right)"},acsch:{1:"\\mathrm{csch}^{-1}\\left(${args[0]}\\right)"},asec:{1:"\\sec^{-1}\\left(${args[0]}\\right)"},asech:{1:"\\mathrm{sech}^{-1}\\left(${args[0]}\\right)"},asin:{1:"\\sin^{-1}\\left(${args[0]}\\right)"},asinh:{1:"\\sinh^{-1}\\left(${args[0]}\\right)"},atan:{1:"\\tan^{-1}\\left(${args[0]}\\right)"},atan2:{2:"\\mathrm{atan2}\\left(${args}\\right)"},atanh:{1:"\\tanh^{-1}\\left(${args[0]}\\right)"},cos:{1:"\\cos\\left(${args[0]}\\right)"},cosh:{1:"\\cosh\\left(${args[0]}\\right)"},cot:{1:"\\cot\\left(${args[0]}\\right)"},coth:{1:"\\coth\\left(${args[0]}\\right)"},csc:{1:"\\csc\\left(${args[0]}\\right)"},csch:{1:"\\mathrm{csch}\\left(${args[0]}\\right)"},sec:{1:"\\sec\\left(${args[0]}\\right)"},sech:{1:"\\mathrm{sech}\\left(${args[0]}\\right)"},sin:{1:"\\sin\\left(${args[0]}\\right)"},sinh:{1:"\\sinh\\left(${args[0]}\\right)"},tan:{1:"\\tan\\left(${args[0]}\\right)"},tanh:{1:"\\tanh\\left(${args[0]}\\right)"},to:{2:"\\left(${args[0]}".concat(Ro.to,"${args[1]}\\right)")},numeric:function(e){return e.args[0].toTex()},number:{0:"0",1:"\\left(${args[0]}\\right)",2:"\\left(\\left(${args[0]}\\right)${args[1]}\\right)"},string:{0:'\\mathtt{""}',1:"\\mathrm{string}\\left(${args[0]}\\right)"},bignumber:{0:"0",1:"\\left(${args[0]}\\right)"},complex:{0:"0",1:"\\left(${args[0]}\\right)",2:"\\left(\\left(${args[0]}\\right)+".concat(Do.i,"\\cdot\\left(${args[1]}\\right)\\right)")},matrix:{0:"\\begin{bmatrix}\\end{bmatrix}",1:"\\left(${args[0]}\\right)",2:"\\left(${args[0]}\\right)"},sparse:{0:"\\begin{bsparse}\\end{bsparse}",1:"\\left(${args[0]}\\right)"},unit:{1:"\\left(${args[0]}\\right)",2:"\\left(\\left(${args[0]}\\right)${args[1]}\\right)"}},Po={deg:"^\\circ"};function Fo(e){return zo()(e,{preserveFormatting:!0})}function Lo(e,t){return(t=void 0!==t&&t)?Object(ae.f)(Po,e)?Po[e]:"\\mathrm{"+Fo(e)+"}":Object(ae.f)(Do,e)?Do[e]:Fo(e)}var n=["Node"],Ho=Object(a.a)("ConstantNode",n,function(e){e=e.Node;function t(e){if(!(this instanceof t))throw new SyntaxError("Constructor must be called with the new operator");this.value=e}return(t.prototype=new e).type="ConstantNode",t.prototype.isConstantNode=!0,t.prototype._compile=function(e,t){var r=this.value;return function(){return r}},t.prototype.forEach=function(e){},t.prototype.map=function(e){return this.clone()},t.prototype.clone=function(){return new t(this.value)},t.prototype._toString=function(e){return Object(Z.d)(this.value,e)},t.prototype.toHTML=function(e){e=this._toString(e);switch(Object(ie.M)(this.value)){case"number":case"BigNumber":case"Fraction":return''+e+"";case"string":return''+e+"";case"boolean":return''+e+"";case"null":return''+e+"";case"undefined":return''+e+"";default:return''+e+""}},t.prototype.toJSON=function(){return{mathjs:"ConstantNode",value:this.value}},t.fromJSON=function(e){return new t(e.value)},t.prototype._toTex=function(e){var t=this._toString(e);switch(Object(ie.M)(this.value)){case"string":return"\\mathtt{"+Fo(t)+"}";case"number":case"BigNumber":if(!isFinite(this.value))return this.value.valueOf()<0?"-\\infty":"\\infty";e=t.toLowerCase().indexOf("e");return-1!==e?t.substring(0,e)+"\\cdot10^{"+t.substring(e+1)+"}":t;case"Fraction":return this.value.toLatex();default:return t}},t},{isClass:!0,isNode:!0}),t=["typed","Node"],$o=Object(a.a)("FunctionAssignmentNode",t,function(e){var f=e.typed,e=e.Node;function n(e,t,r){if(!(this instanceof n))throw new SyntaxError("Constructor must be called with the new operator");if("string"!=typeof e)throw new TypeError('String expected for parameter "name"');if(!Array.isArray(t))throw new TypeError('Array containing strings or objects expected for parameter "params"');if(!Object(ie.w)(r))throw new TypeError('Node expected for parameter "expr"');if(e in xo)throw new Error('Illegal function name, "'+e+'" is a reserved keyword');this.name=e,this.params=t.map(function(e){return e&&e.name||e}),this.types=t.map(function(e){return e&&e.type||"any"}),this.expr=r}function i(e,t){var r=_o(e,t),e=_o(e.expr,t);return"all"===t||null!==e&&e<=r}return(n.prototype=new e).type="FunctionAssignmentNode",n.prototype.isFunctionAssignmentNode=!0,n.prototype._compile=function(e,t){var r=Object.create(t);Object(E.f)(this.params,function(e){r[e]=!0});var a=this.expr._compile(e,r),o=this.name,s=this.params,u=Object(E.j)(this.types,","),c=o+"("+Object(E.j)(this.params,", ")+")";return function(r,n,i){var e={};e[u]=function(){for(var e=Object.create(n),t=0;t'+Object(Z.c)(this.params[n])+"");e=this.expr.toHTML(e);return i(this,t)&&(e='('+e+')'),''+Object(Z.c)(this.name)+'('+r.join(',')+')='+e},n.prototype._toTex=function(e){var t=e&&e.parenthesis?e.parenthesis:"keep",e=this.expr.toTex(e);return i(this,t)&&(e="\\left(".concat(e,"\\right)")),"\\mathrm{"+this.name+"}\\left("+this.params.map(Lo).join(",")+"\\right):="+e},n},{isClass:!0,isNode:!0});function Go(e){return function(e){if(Array.isArray(e))return Vo(e)}(e)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return Vo(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return Vo(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Vo(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r.'+Object(Z.c)(this.getObjectProperty())+"":'['+t.join(',')+']'},i.prototype._toTex=function(t){var e=this.dimensions.map(function(e){return e.toTex(t)});return this.dotNotation?"."+this.getObjectProperty():"_{"+e.join(",")+"}"},i},{isClass:!0,isNode:!0});function Jo(e){return(Jo="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}var t=["Node"],Wo=Object(a.a)("ObjectNode",t,function(e){e=e.Node;function n(t){if(!(this instanceof n))throw new SyntaxError("Constructor must be called with the new operator");if(this.properties=t||{},t&&("object"!==Jo(t)||!Object.keys(t).every(function(e){return Object(ie.w)(t[e])})))throw new TypeError("Object containing Nodes expected")}return(n.prototype=new e).type="ObjectNode",n.prototype.isObjectNode=!0,n.prototype._compile=function(e,t){var r,a={};for(r in this.properties)if(Object(ae.f)(this.properties,r)){var n=Object(Z.e)(r),n=JSON.parse(n);if(!Xr(this.properties,n))throw new Error('No access to property "'+n+'"');a[n]=this.properties[r]._compile(e,t)}return function(e,t,r){var n,i={};for(n in a)Object(ae.f)(a,n)&&(i[n]=a[n](e,t,r));return i}},n.prototype.forEach=function(e){for(var t in this.properties)Object(ae.f)(this.properties,t)&&e(this.properties[t],"properties["+Object(Z.e)(t)+"]",this)},n.prototype.map=function(e){var t,r={};for(t in this.properties)Object(ae.f)(this.properties,t)&&(r[t]=this._ifNode(e(this.properties[t],"properties["+Object(Z.e)(t)+"]",this)));return new n(r)},n.prototype.clone=function(){var e,t={};for(e in this.properties)Object(ae.f)(this.properties,e)&&(t[e]=this.properties[e]);return new n(t)},n.prototype._toString=function(e){var t,r=[];for(t in this.properties)Object(ae.f)(this.properties,t)&&r.push(Object(Z.e)(t)+": "+this.properties[t].toString(e));return"{"+r.join(", ")+"}"},n.prototype.toJSON=function(){return{mathjs:"ObjectNode",properties:this.properties}},n.fromJSON=function(e){return new n(e.properties)},n.prototype.toHTML=function(e){var t,r=[];for(t in this.properties)Object(ae.f)(this.properties,t)&&r.push(''+Object(Z.c)(t)+':'+this.properties[t].toHTML(e));return'{'+r.join(',')+'}'},n.prototype._toTex=function(e){var t,r=[];for(t in this.properties)Object(ae.f)(this.properties,t)&&r.push("\\mathbf{"+t+":} & "+this.properties[t].toTex(e)+"\\\\");return"\\left\\{\\begin{array}{ll}".concat(r.join("\n"),"\\end{array}\\right\\}")},n},{isClass:!0,isNode:!0}),n=["Node"],Yo=Object(a.a)("OperatorNode",n,function(e){e=e.Node;function i(e,t,r,n){if(!(this instanceof i))throw new SyntaxError("Constructor must be called with the new operator");if("string"!=typeof e)throw new TypeError('string expected for parameter "op"');if("string"!=typeof t)throw new TypeError('string expected for parameter "fn"');if(!Array.isArray(r)||!r.every(ie.w))throw new TypeError('Array containing Nodes expected for parameter "args"');this.implicit=!0===n,this.op=e,this.fn=t,this.args=r||[]}function c(n,i,e,t,r){var a,o=_o(n,i),s=To(n,i);if("all"===i||2)'),"right"===e?''+Object(Z.c)(this.op)+""+a:a+''+Object(Z.c)(this.op)+""}if(2===n.length){var a=n[0].toHTML(r),o=n[1].toHTML(r);return i[0]&&(a='('+a+')'),i[1]&&(o='('+o+')'),this.implicit&&"OperatorNode:multiply"===this.getIdentifier()&&"hide"===t?a+''+o:a+''+Object(Z.c)(this.op)+""+o}o=n.map(function(e,t){return e=e.toHTML(r),i[t]&&(e='('+e+')'),e});return 2'):o.join(''+Object(Z.c)(this.op)+""):''+Object(Z.c)(this.fn)+'('+o.join(',')+')'},i.prototype._toTex=function(r){var e=r&&r.parenthesis?r.parenthesis:"keep",t=r&&r.implicit?r.implicit:"hide",n=this.args,i=c(this,e,t,n,!0),a=void 0===(a=Ro[this.fn])?this.op:a;if(1===n.length){var o=To(this,e),s=n[0].toTex(r);return i[0]&&(s="\\left(".concat(s,"\\right)")),"right"===o?a+s:s+a}if(2===n.length){o=n[0],s=o.toTex(r);i[0]&&(s="\\left(".concat(s,"\\right)"));var u=n[1].toTex(r);switch(i[1]&&(u="\\left(".concat(u,"\\right)")),o=("keep"===e?o:o.getContent()).getIdentifier(),this.getIdentifier()){case"OperatorNode:divide":return a+"{"+s+"}{"+u+"}";case"OperatorNode:pow":switch(s="{"+s+"}",u="{"+u+"}",o){case"ConditionalNode":case"OperatorNode:divide":s="\\left(".concat(s,"\\right)")}break;case"OperatorNode:multiply":if(this.implicit&&"hide"===t)return s+"~"+u}return s+a+u}if(2('+this.content.toHTML(e)+')':this.content.toHTML(e)},t.prototype._toTex=function(e){return!e||e&&!e.parenthesis||e&&"keep"===e.parenthesis?"\\left(".concat(this.content.toTex(e),"\\right)"):this.content.toTex(e)},t},{isClass:!0,isNode:!0}),n=["Node"],Qo=Object(a.a)("RangeNode",n,function(e){e=e.Node;function n(e,t,r){if(!(this instanceof n))throw new SyntaxError("Constructor must be called with the new operator");if(!Object(ie.w)(e))throw new TypeError("Node expected");if(!Object(ie.w)(t))throw new TypeError("Node expected");if(r&&!Object(ie.w)(r))throw new TypeError("Node expected");if(3('+n+')'),t=n,this.step&&(n=this.step.toHTML(e),r.step&&(n='('+n+')'),t+=':'+n);e=this.end.toHTML(e);return r.end&&(e='('+e+')'),t+=':'+e},n.prototype._toTex=function(e){var t,r=i(this,e&&e.parenthesis?e.parenthesis:"keep"),n=this.start.toTex(e);r.start&&(n="\\left(".concat(n,"\\right)")),this.step&&(t=this.step.toTex(e),r.step&&(t="\\left(".concat(t,"\\right)")),n+=":"+t);e=this.end.toTex(e);return r.end&&(e="\\left(".concat(e,"\\right)")),n+=":"+e},n},{isClass:!0,isNode:!0}),t=["Node"],Ko=Object(a.a)("RelationalNode",t,function(e){e=e.Node;function i(e,t){if(!(this instanceof i))throw new SyntaxError("Constructor must be called with the new operator");if(!Array.isArray(e))throw new TypeError("Parameter conditionals must be an array");if(!Array.isArray(t))throw new TypeError("Parameter params must be an array");if(e.length!==t.length-1)throw new TypeError("Parameter params must contain exactly one more element than parameter conditionals");this.conditionals=e,this.params=t}return(i.prototype=new e).type="RelationalNode",i.prototype.isRelationalNode=!0,i.prototype._compile=function(o,t){var s=this,u=this.params.map(function(e){return e._compile(o,t)});return function(e,t,r){for(var n=u[0](e,t,r),i=0;i",smallerEq:"<=",largerEq:">="},r=e[0],o=0;o('+e.toHTML(n)+')':e.toHTML(n)}),t={equal:"==",unequal:"!=",smaller:"<",larger:">",smallerEq:"<=",largerEq:">="},r=e[0],o=0;o'+Object(Z.c)(t[this.conditionals[o]])+""+e[o+1];return r},i.prototype._toTex=function(n){for(var i=n&&n.parenthesis?n.parenthesis:"keep",a=_o(this,i),e=this.params.map(function(e,t){var r=_o(e,i);return"all"===i||null!==r&&r<=a?"\\left("+e.toTex(n)+"\right)":e.toTex(n)}),t=e[0],r=0;r'+t+"":"i"===t?''+t+"":"Infinity"===t?''+t+"":"NaN"===t?''+t+"":"null"===t?''+t+"":"undefined"===t?''+t+"":''+t+""},t.prototype.toJSON=function(){return{mathjs:"SymbolNode",name:this.name}},t.fromJSON=function(e){return new t(e.name)},t.prototype._toTex=function(e){var t=!1;void 0===r[this.name]&&s(this.name)&&(t=!0);t=Lo(this.name,t);return"\\"===t[0]?t:" "+t},t},{isClass:!0,isNode:!0});function ts(e){return(ts="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function rs(){return(rs=Object.assign||function(e){for(var t=1;t'+Object(Z.c)(this.fn)+'('+e.join(',')+')'};var o=d.prototype.toTex;return d.prototype.toTex=function(e){var t;return e&&"object"===ts(e.handler)&&Object(ae.f)(e.handler,this.name)&&(t=e.handler[this.name](this,e)),void 0!==t?t:o.call(this,e)},d.prototype._toTex=function(t){var e,r,n=this.args.map(function(e){return e.toTex(t)});switch(Uo[this.name]&&(e=Uo[this.name]),!i[this.name]||"function"!=typeof i[this.name].toTex&&"object"!==ts(i[this.name].toTex)&&"string"!=typeof i[this.name].toTex||(e=i[this.name].toTex),ts(e)){case"function":r=e(this,t);break;case"string":r=a(e,this,t);break;case"object":switch(ts(e[n.length])){case"function":r=e[n.length](this,t);break;case"string":r=a(e[n.length],this,t)}}return void 0!==r?r:a("\\mathrm{${name}}\\left(${args}\\right)",this,t)},d.prototype.getIdentifier=function(){return this.type+":"+this.name},d},{isClass:!0,isNode:!0});function is(){return(is=Object.assign||function(e){for(var t=1;t":!0,"<=":!0,">=":!0,"<<":!0,">>":!0,">>>":!0},O={mod:!0,to:!0,in:!0,and:!0,xor:!0,or:!0,not:!0},M={true:!0,false:!1,null:null,undefined:void 0},j=["NaN","Infinity"];function E(e,t){return e.expression.substr(e.index,t)}function S(e){return E(e,1)}function A(e){e.index++}function C(e){return e.expression.charAt(e.index-1)}function _(e){return e.expression.charAt(e.index+1)}function T(e){for(e.tokenType=w.NULL,e.token="",e.comment="";x.isWhitespace(S(e),e.nestingLevel);)A(e);if("#"===S(e))for(;"\n"!==S(e)&&""!==S(e);)e.comment+=S(e),A(e);if(""!==S(e)){if("\n"===S(e)&&!e.nestingLevel)return e.tokenType=w.DELIMITER,e.token=S(e),void A(e);var t=S(e),r=E(e,2),n=E(e,3);if(3===n.length&&N[n])return e.tokenType=w.DELIMITER,e.token=n,A(e),A(e),void A(e);if(2===r.length&&N[r])return e.tokenType=w.DELIMITER,e.token=r,A(e),void A(e);if(N[t])return e.tokenType=w.DELIMITER,e.token=t,void A(e);if(x.isDigitDot(t)){e.tokenType=w.NUMBER;t=E(e,2);if("0b"!==t&&"0o"!==t&&"0x"!==t){if("."===S(e))e.token+=S(e),A(e),x.isDigit(S(e))||(e.tokenType=w.DELIMITER);else{for(;x.isDigit(S(e));)e.token+=S(e),A(e);x.isDecimalMark(S(e),_(e))&&(e.token+=S(e),A(e))}for(;x.isDigit(S(e));)e.token+=S(e),A(e);if("E"===S(e)||"e"===S(e))if(x.isDigit(_(e))||"-"===_(e)||"+"===_(e)){if(e.token+=S(e),A(e),"+"!==S(e)&&"-"!==S(e)||(e.token+=S(e),A(e)),!x.isDigit(S(e)))throw re(e,'Digit expected, got "'+S(e)+'"');for(;x.isDigit(S(e));)e.token+=S(e),A(e);if(x.isDecimalMark(S(e),_(e)))throw re(e,'Digit expected, got "'+S(e)+'"')}else if("."===_(e))throw A(e),re(e,'Digit expected, got "'+S(e)+'"')}else for(e.token+=S(e),A(e),e.token+=S(e),A(e);x.isHexDigit(S(e));)e.token+=S(e),A(e)}else{if(!x.isAlpha(S(e),C(e),_(e))){for(e.tokenType=w.UNKNOWN;""!==S(e);)e.token+=S(e),A(e);throw re(e,'Syntax error in part "'+e.token+'"')}for(;x.isAlpha(S(e),C(e),_(e))||x.isDigit(S(e));)e.token+=S(e),A(e);Object(ae.f)(O,e.token)?e.tokenType=w.DELIMITER:e.tokenType=w.SYMBOL}}else e.tokenType=w.DELIMITER}function q(e){for(;T(e),"\n"===e.token;);}function I(e){e.nestingLevel++}function B(e){e.nestingLevel--}function k(e,t){var r={extraNodes:{},expression:"",comment:"",index:0,token:"",tokenType:w.NULL,nestingLevel:0,conditionalLevel:null};is(r,{expression:e,extraNodes:t}),T(r);t=function(e){var t,r,n=[];""!==e.token&&"\n"!==e.token&&";"!==e.token&&((t=z(e)).comment=e.comment);for(;"\n"===e.token||";"===e.token;)0===n.length&&t&&(r=";"!==e.token,n.push({node:t,visible:r})),T(e),"\n"!==e.token&&";"!==e.token&&""!==e.token&&((t=z(e)).comment=e.comment,r=";"!==e.token,n.push({node:t,visible:r}));return 0":"larger","<=":"smallerEq",">=":"largerEq"};Object(ae.f)(n,e.token);){var i={name:e.token,fn:n[e.token]};r.push(i),q(e),t.push(H(e))}return 1===t.length?t[0]:2===t.length?new y(r[0].name,r[0].fn,t):new b(r.map(function(e){return e.fn}),t)}function H(e){for(var t,r,n,i=$(e),a={"<<":"leftShift",">>":"rightArithShift",">>>":"rightLogShift"};Object(ae.f)(a,e.token);)r=a[t=e.token],q(e),n=[i,$(e)],i=new y(t,r,n);return i}function $(e){for(var t,r,n,i=G(e),a={to:"to",in:"to"};Object(ae.f)(a,e.token);)r=a[t=e.token],q(e),i="in"===t&&""===e.token?new y("*","multiply",[i,new v("in")],!0):(n=[i,G(e)],new y(t,r,n));return i}function G(e){var t=[],r=":"===e.token?new l(1):V(e);if(":"===e.token&&e.conditionalLevel!==e.nestingLevel){for(t.push(r);":"===e.token&&t.length<3;)q(e),")"===e.token||"]"===e.token||","===e.token||""===e.token?t.push(new v("end")):t.push(V(e));r=3===t.length?new n(t[0],t[2],t[1]):new n(t[0],t[1])}return r}function V(e){for(var t,r,n,i=Z(e),a={"+":"add","-":"subtract"};Object(ae.f)(a,e.token);)r=a[t=e.token],q(e),n=[i,Z(e)],i=new y(t,r,n);return i}function Z(e){for(var t,r,n,i=J(e),a={"*":"multiply",".*":"dotMultiply","/":"divide","./":"dotDivide","%":"mod",mod:"mod"};Object(ae.f)(a,e.token);)r=a[t=e.token],q(e),n=J(e),i=new y(t,r,[i,n]);return i}function J(e){for(var t=W(e),r=t;e.tokenType===w.SYMBOL||"in"===e.token&&Object(ie.l)(t)||!(e.tokenType!==w.NUMBER||Object(ie.l)(r)||Object(ie.B)(r)&&"!"!==r.op)||"("===e.token;)r=W(e),t=new y("*","multiply",[t,r],!0);return t}function W(e){for(var t=Y(e),r=t,n=[];"/"===e.token&&Object(ie.l)(r);){if(n.push(is({},e)),q(e),e.tokenType!==w.NUMBER){is(e,n.pop());break}if(n.push(is({},e)),q(e),e.tokenType!==w.SYMBOL&&"("!==e.token){n.pop(),is(e,n.pop());break}is(e,n.pop()),n.pop(),r=Y(e),t=new y("/","divide",[t,r])}return t}function Y(e){var t,r,n={"-":"unaryMinus","+":"unaryPlus","~":"bitNot",not:"not"};return Object(ae.f)(n,e.token)?(r=n[e.token],t=e.token,q(e),n=[Y(e)],new y(t,r,n)):function(e){var t,r,n;t=function(e){var t,r,n;t=function(e){var t=[];if(e.tokenType===w.SYMBOL&&Object(ae.f)(e.extraNodes,e.token)){var r=e.extraNodes[e.token];if(T(e),"("===e.token){if(t=[],I(e),T(e),")"!==e.token)for(t.push(z(e));","===e.token;)T(e),t.push(z(e));if(")"!==e.token)throw re(e,"Parenthesis ) expected");B(e),T(e)}return new r(t)}return function(e){var t;if(e.tokenType===w.SYMBOL||e.tokenType===w.DELIMITER&&e.token in O)return t=e.token,T(e),t=Object(ae.f)(M,t)?new l(M[t]):-1!==j.indexOf(t)?new l(s(t,"number")):new v(t),t=X(e,t);return function(e){var t;return'"'!==e.token?function(e){var t;return"'"!==e.token?function(e){var t,r,n,i;if("["!==e.token)return function(e){if("{"!==e.token)return function(e){var t;return e.tokenType!==w.NUMBER?function(e){var t;if("("!==e.token)return function(e){throw""===e.token?re(e,"Unexpected end of expression"):re(e,"Value expected")}(e);if(I(e),T(e),t=z(e),")"===e.token)return B(e),T(e),t=new g(t),t=X(e,t);throw re(e,"Parenthesis ) expected")}(e):(t=e.token,T(e),new l(s(t,u.number)))}(e);var t;I(e);var r={};do{if(T(e),"}"!==e.token){if('"'===e.token)t=Q(e);else if("'"===e.token)t=K(e);else{if(!(e.tokenType===w.SYMBOL||e.tokenType===w.DELIMITER&&e.token in O))throw re(e,"Symbol or string expected as object key");t=e.token,T(e)}if(":"!==e.token)throw re(e,"Colon : expected after object key");T(e),r[t]=z(e)}}while(","===e.token);if("}"!==e.token)throw re(e,"Comma , or bracket } expected after object value");B(e),T(e);var n=new d(r);return n=X(e,n)}(e);if(I(e),T(e),"]"!==e.token){var a=ee(e);if(";"===e.token){for(n=1,r=[a];";"===e.token;)T(e),r[n]=ee(e),n++;if("]"!==e.token)throw re(e,"End of matrix ] expected");B(e),T(e),i=r[0].items.length;for(var o=1;oi))for(var l=s[c+1];f=T?N[A+R]-=l:0!==N[A+R]&&(N[A+R]=N[S+R]+H);for(p=P;p1, -1 when x<0, and 0 when x=0.",examples:["sign(3.5)","sign(-4.2)","sign(0)"],seealso:["abs"]},sqrt:{name:"sqrt",category:"Arithmetic",syntax:["sqrt(x)"],description:"Compute the square root value. If x = y * y, then y is the square root of x.",examples:["sqrt(25)","5 * 5","sqrt(-1)"],seealso:["square","sqrtm","multiply","nthRoot","nthRoots","pow"]},sqrtm:{name:"sqrtm",category:"Arithmetic",syntax:["sqrtm(x)"],description:"Calculate the principal square root of a square matrix. The principal square root matrix `X` of another matrix `A` is such that `X * X = A`.",examples:["sqrtm([[1, 2], [3, 4]])"],seealso:["sqrt","abs","square","multiply"]},square:{name:"square",category:"Arithmetic",syntax:["square(x)"],description:"Compute the square of a value. The square of x is x * x.",examples:["square(3)","sqrt(9)","3^2","3 * 3"],seealso:["multiply","pow","sqrt","cube"]},subtract:{name:"subtract",category:"Operators",syntax:["x - y","subtract(x, y)"],description:"subtract two values.",examples:["a = 5.3 - 2","a + 2","2/3 - 1/6","2 * 3 - 3","2.1 km - 500m"],seealso:["add"]},unaryMinus:{name:"unaryMinus",category:"Operators",syntax:["-x","unaryMinus(x)"],description:"Inverse the sign of a value. Converts booleans and strings to numbers.",examples:["-4.5","-(-5.6)",'-"22"'],seealso:["add","subtract","unaryPlus"]},unaryPlus:{name:"unaryPlus",category:"Operators",syntax:["+x","unaryPlus(x)"],description:"Converts booleans and strings to numbers.",examples:["+true",'+"2"'],seealso:["add","subtract","unaryMinus"]},xgcd:{name:"xgcd",category:"Arithmetic",syntax:["xgcd(a, b)"],description:"Calculate the extended greatest common divisor for two values. The result is an array [d, x, y] with 3 entries, where d is the greatest common divisor, and d = x * a + y * b.",examples:["xgcd(8, 12)","gcd(8, 12)","xgcd(36163, 21199)"],seealso:["gcd","lcm"]},bitAnd:{name:"bitAnd",category:"Bitwise",syntax:["x & y","bitAnd(x, y)"],description:"Bitwise AND operation. Performs the logical AND operation on each pair of the corresponding bits of the two given values by multiplying them. If both bits in the compared position are 1, the bit in the resulting binary representation is 1, otherwise, the result is 0",examples:["5 & 3","bitAnd(53, 131)","[1, 12, 31] & 42"],seealso:["bitNot","bitOr","bitXor","leftShift","rightArithShift","rightLogShift"]},bitNot:{name:"bitNot",category:"Bitwise",syntax:["~x","bitNot(x)"],description:"Bitwise NOT operation. Performs a logical negation on each bit of the given value. Bits that are 0 become 1, and those that are 1 become 0.",examples:["~1","~2","bitNot([2, -3, 4])"],seealso:["bitAnd","bitOr","bitXor","leftShift","rightArithShift","rightLogShift"]},bitOr:{name:"bitOr",category:"Bitwise",syntax:["x | y","bitOr(x, y)"],description:"Bitwise OR operation. Performs the logical inclusive OR operation on each pair of corresponding bits of the two given values. The result in each position is 1 if the first bit is 1 or the second bit is 1 or both bits are 1, otherwise, the result is 0.",examples:["5 | 3","bitOr([1, 2, 3], 4)"],seealso:["bitAnd","bitNot","bitXor","leftShift","rightArithShift","rightLogShift"]},bitXor:{name:"bitXor",category:"Bitwise",syntax:["bitXor(x, y)"],description:"Bitwise XOR operation, exclusive OR. Performs the logical exclusive OR operation on each pair of corresponding bits of the two given values. The result in each position is 1 if only the first bit is 1 or only the second bit is 1, but will be 0 if both are 0 or both are 1.",examples:["bitOr(1, 2)","bitXor([2, 3, 4], 4)"],seealso:["bitAnd","bitNot","bitOr","leftShift","rightArithShift","rightLogShift"]},leftShift:{name:"leftShift",category:"Bitwise",syntax:["x << y","leftShift(x, y)"],description:"Bitwise left logical shift of a value x by y number of bits.",examples:["4 << 1","8 >> 1"],seealso:["bitAnd","bitNot","bitOr","bitXor","rightArithShift","rightLogShift"]},rightArithShift:{name:"rightArithShift",category:"Bitwise",syntax:["x >> y","rightArithShift(x, y)"],description:"Bitwise right arithmetic shift of a value x by y number of bits.",examples:["8 >> 1","4 << 1","-12 >> 2"],seealso:["bitAnd","bitNot","bitOr","bitXor","leftShift","rightLogShift"]},rightLogShift:{name:"rightLogShift",category:"Bitwise",syntax:["x >>> y","rightLogShift(x, y)"],description:"Bitwise right logical shift of a value x by y number of bits.",examples:["8 >>> 1","4 << 1","-12 >>> 2"],seealso:["bitAnd","bitNot","bitOr","bitXor","leftShift","rightArithShift"]},bellNumbers:{name:"bellNumbers",category:"Combinatorics",syntax:["bellNumbers(n)"],description:"The Bell Numbers count the number of partitions of a set. A partition is a pairwise disjoint subset of S whose union is S. `bellNumbers` only takes integer arguments. The following condition must be enforced: n >= 0.",examples:["bellNumbers(3)","bellNumbers(8)"],seealso:["stirlingS2"]},catalan:{name:"catalan",category:"Combinatorics",syntax:["catalan(n)"],description:"The Catalan Numbers enumerate combinatorial structures of many different types. catalan only takes integer arguments. The following condition must be enforced: n >= 0.",examples:["catalan(3)","catalan(8)"],seealso:["bellNumbers"]},composition:{name:"composition",category:"Combinatorics",syntax:["composition(n, k)"],description:"The composition counts of n into k parts. composition only takes integer arguments. The following condition must be enforced: k <= n.",examples:["composition(5, 3)"],seealso:["combinations"]},stirlingS2:{name:"stirlingS2",category:"Combinatorics",syntax:["stirlingS2(n, k)"],description:"he Stirling numbers of the second kind, counts the number of ways to partition a set of n labelled objects into k nonempty unlabelled subsets. `stirlingS2` only takes integer arguments. The following condition must be enforced: k <= n. If n = k or k = 1, then s(n,k) = 1.",examples:["stirlingS2(5, 3)"],seealso:["bellNumbers"]},config:{name:"config",category:"Core",syntax:["config()","config(options)"],description:"Get configuration or change configuration.",examples:["config()","1/3 + 1/4",'config({number: "Fraction"})',"1/3 + 1/4"],seealso:[]},import:{name:"import",category:"Core",syntax:["import(functions)","import(functions, options)"],description:"Import functions or constants from an object.",examples:["import({myFn: f(x)=x^2, myConstant: 32 })","myFn(2)","myConstant"],seealso:[]},typed:{name:"typed",category:"Core",syntax:["typed(signatures)","typed(name, signatures)"],description:"Create a typed function.",examples:['double = typed({ "number, number": f(x)=x+x })',"double(2)",'double("hello")'],seealso:[]},arg:{name:"arg",category:"Complex",syntax:["arg(x)"],description:"Compute the argument of a complex value. If x = a+bi, the argument is computed as atan2(b, a).",examples:["arg(2 + 2i)","atan2(3, 2)","arg(2 + 3i)"],seealso:["re","im","conj","abs"]},conj:{name:"conj",category:"Complex",syntax:["conj(x)"],description:"Compute the complex conjugate of a complex value. If x = a+bi, the complex conjugate is a-bi.",examples:["conj(2 + 3i)","conj(2 - 3i)","conj(-5.2i)"],seealso:["re","im","abs","arg"]},re:{name:"re",category:"Complex",syntax:["re(x)"],description:"Get the real part of a complex number.",examples:["re(2 + 3i)","im(2 + 3i)","re(-5.2i)","re(2.4)"],seealso:["im","conj","abs","arg"]},im:{name:"im",category:"Complex",syntax:["im(x)"],description:"Get the imaginary part of a complex number.",examples:["im(2 + 3i)","re(2 + 3i)","im(-5.2i)","im(2.4)"],seealso:["re","conj","abs","arg"]},evaluate:{name:"evaluate",category:"Expression",syntax:["evaluate(expression)","evaluate([expr1, expr2, expr3, ...])"],description:"Evaluate an expression or an array with expressions.",examples:['evaluate("2 + 3")','evaluate("sqrt(" + 4 + ")")'],seealso:[]},help:{name:"help",category:"Expression",syntax:["help(object)","help(string)"],description:"Display documentation on a function or data type.",examples:["help(sqrt)",'help("complex")'],seealso:[]},distance:{name:"distance",category:"Geometry",syntax:["distance([x1, y1], [x2, y2])","distance([[x1, y1], [x2, y2]])"],description:"Calculates the Euclidean distance between two points.",examples:["distance([0,0], [4,4])","distance([[0,0], [4,4]])"],seealso:[]},intersect:{name:"intersect",category:"Geometry",syntax:["intersect(expr1, expr2, expr3, expr4)","intersect(expr1, expr2, expr3)"],description:"Computes the intersection point of lines and/or planes.",examples:["intersect([0, 0], [10, 10], [10, 0], [0, 10])","intersect([1, 0, 1], [4, -2, 2], [1, 1, 1, 6])"],seealso:[]},and:{name:"and",category:"Logical",syntax:["x and y","and(x, y)"],description:"Logical and. Test whether two values are both defined with a nonzero/nonempty value.",examples:["true and false","true and true","2 and 4"],seealso:["not","or","xor"]},not:{name:"not",category:"Logical",syntax:["not x","not(x)"],description:"Logical not. Flips the boolean value of given argument.",examples:["not true","not false","not 2","not 0"],seealso:["and","or","xor"]},or:{name:"or",category:"Logical",syntax:["x or y","or(x, y)"],description:"Logical or. Test if at least one value is defined with a nonzero/nonempty value.",examples:["true or false","false or false","0 or 4"],seealso:["not","and","xor"]},xor:{name:"xor",category:"Logical",syntax:["x xor y","xor(x, y)"],description:"Logical exclusive or, xor. Test whether one and only one value is defined with a nonzero/nonempty value.",examples:["true xor false","false xor false","true xor true","0 xor 4"],seealso:["not","and","or"]},concat:{name:"concat",category:"Matrix",syntax:["concat(A, B, C, ...)","concat(A, B, C, ..., dim)"],description:"Concatenate matrices. By default, the matrices are concatenated by the last dimension. The dimension on which to concatenate can be provided as last argument.",examples:["A = [1, 2; 5, 6]","B = [3, 4; 7, 8]","concat(A, B)","concat(A, B, 1)","concat(A, B, 2)"],seealso:["det","diag","identity","inv","ones","range","size","squeeze","subset","trace","transpose","zeros"]},cross:{name:"cross",category:"Matrix",syntax:["cross(A, B)"],description:"Calculate the cross product for two vectors in three dimensional space.",examples:["cross([1, 1, 0], [0, 1, 1])","cross([3, -3, 1], [4, 9, 2])","cross([2, 3, 4], [5, 6, 7])"],seealso:["multiply","dot"]},column:{name:"column",category:"Matrix",syntax:["column(x, index)"],description:"Return a column from a matrix or array.",examples:["A = [[1, 2], [3, 4]]","column(A, 1)","column(A, 2)"],seealso:["row"]},ctranspose:{name:"ctranspose",category:"Matrix",syntax:["x'","ctranspose(x)"],description:"Complex Conjugate and Transpose a matrix",examples:["a = [1, 2, 3; 4, 5, 6]","a'","ctranspose(a)"],seealso:["concat","det","diag","identity","inv","ones","range","size","squeeze","subset","trace","zeros"]},det:{name:"det",category:"Matrix",syntax:["det(x)"],description:"Calculate the determinant of a matrix",examples:["det([1, 2; 3, 4])","det([-2, 2, 3; -1, 1, 3; 2, 0, -1])"],seealso:["concat","diag","identity","inv","ones","range","size","squeeze","subset","trace","transpose","zeros"]},diag:{name:"diag",category:"Matrix",syntax:["diag(x)","diag(x, k)"],description:"Create a diagonal matrix or retrieve the diagonal of a matrix. When x is a vector, a matrix with the vector values on the diagonal will be returned. When x is a matrix, a vector with the diagonal values of the matrix is returned. When k is provided, the k-th diagonal will be filled in or retrieved, if k is positive, the values are placed on the super diagonal. When k is negative, the values are placed on the sub diagonal.",examples:["diag(1:3)","diag(1:3, 1)","a = [1, 2, 3; 4, 5, 6; 7, 8, 9]","diag(a)"],seealso:["concat","det","identity","inv","ones","range","size","squeeze","subset","trace","transpose","zeros"]},diff:{name:"diff",category:"Matrix",syntax:["diff(arr)","diff(arr, dim)"],description:["Create a new matrix or array with the difference of the passed matrix or array.","Dim parameter is optional and used to indicant the dimension of the array/matrix to apply the difference","If no dimension parameter is passed it is assumed as dimension 0","Dimension is zero-based in javascript and one-based in the parser","Arrays must be 'rectangular' meaning arrays like [1, 2]","If something is passed as a matrix it will be returned as a matrix but other than that all matrices are converted to arrays"],examples:["diff([1, 2, 4, 7, 0])","diff([1, 2, 4, 7, 0], 0)","diff(matrix([1, 2, 4, 7, 0]))","diff([[1, 2], [3, 4]])","diff([[1, 2], [3, 4]], 0)","diff([[1, 2], [3, 4]], 1)","diff([[1, 2], [3, 4]], bignumber(1))","diff(matrix([[1, 2], [3, 4]]), 1)","diff([[1, 2], matrix([3, 4])], 1)"],seealso:["subtract","partitionSelect"]},dot:{name:"dot",category:"Matrix",syntax:["dot(A, B)","A * B"],description:"Calculate the dot product of two vectors. The dot product of A = [a1, a2, a3, ..., an] and B = [b1, b2, b3, ..., bn] is defined as dot(A, B) = a1 * b1 + a2 * b2 + a3 * b3 + ... + an * bn",examples:["dot([2, 4, 1], [2, 2, 3])","[2, 4, 1] * [2, 2, 3]"],seealso:["multiply","cross"]},getMatrixDataType:{name:"getMatrixDataType",category:"Matrix",syntax:["getMatrixDataType(x)"],description:'Find the data type of all elements in a matrix or array, for example "number" if all items are a number and "Complex" if all values are complex numbers. If a matrix contains more than one data type, it will return "mixed".',examples:["getMatrixDataType([1, 2, 3])","getMatrixDataType([[5 cm], [2 inch]])",'getMatrixDataType([1, "text"])',"getMatrixDataType([1, bignumber(4)])"],seealso:["matrix","sparse","typeOf"]},identity:{name:"identity",category:"Matrix",syntax:["identity(n)","identity(m, n)","identity([m, n])"],description:"Returns the identity matrix with size m-by-n. The matrix has ones on the diagonal and zeros elsewhere.",examples:["identity(3)","identity(3, 5)","a = [1, 2, 3; 4, 5, 6]","identity(size(a))"],seealso:["concat","det","diag","inv","ones","range","size","squeeze","subset","trace","transpose","zeros"]},filter:{name:"filter",category:"Matrix",syntax:["filter(x, test)"],description:"Filter items in a matrix.",examples:["isPositive(x) = x > 0","filter([6, -2, -1, 4, 3], isPositive)","filter([6, -2, 0, 1, 0], x != 0)"],seealso:["sort","map","forEach"]},flatten:{name:"flatten",category:"Matrix",syntax:["flatten(x)"],description:"Flatten a multi dimensional matrix into a single dimensional matrix.",examples:["a = [1, 2, 3; 4, 5, 6]","size(a)","b = flatten(a)","size(b)"],seealso:["concat","resize","size","squeeze"]},forEach:{name:"forEach",category:"Matrix",syntax:["forEach(x, callback)"],description:"Iterates over all elements of a matrix/array, and executes the given callback function.",examples:["forEach([1, 2, 3], function(val) { console.log(val) })"],seealso:["map","sort","filter"]},inv:{name:"inv",category:"Matrix",syntax:["inv(x)"],description:"Calculate the inverse of a matrix",examples:["inv([1, 2; 3, 4])","inv(4)","1 / 4"],seealso:["concat","det","diag","identity","ones","range","size","squeeze","subset","trace","transpose","zeros"]},eigs:{name:"eigs",category:"Matrix",syntax:["eigs(x)"],description:"Calculate the eigenvalues and eigenvectors of a real symmetric matrix",examples:["eigs([[5, 2.3], [2.3, 1]])"],seealso:["inv"]},kron:{name:"kron",category:"Matrix",syntax:["kron(x, y)"],description:"Calculates the kronecker product of 2 matrices or vectors.",examples:["kron([[1, 0], [0, 1]], [[1, 2], [3, 4]])","kron([1,1], [2,3,4])"],seealso:["multiply","dot","cross"]},map:{name:"map",category:"Matrix",syntax:["map(x, callback)"],description:"Create a new matrix or array with the results of the callback function executed on each entry of the matrix/array.",examples:["map([1, 2, 3], square)"],seealso:["filter","forEach"]},ones:{name:"ones",category:"Matrix",syntax:["ones(m)","ones(m, n)","ones(m, n, p, ...)","ones([m])","ones([m, n])","ones([m, n, p, ...])"],description:"Create a matrix containing ones.",examples:["ones(3)","ones(3, 5)","ones([2,3]) * 4.5","a = [1, 2, 3; 4, 5, 6]","ones(size(a))"],seealso:["concat","det","diag","identity","inv","range","size","squeeze","subset","trace","transpose","zeros"]},partitionSelect:{name:"partitionSelect",category:"Matrix",syntax:["partitionSelect(x, k)","partitionSelect(x, k, compare)"],description:"Partition-based selection of an array or 1D matrix. Will find the kth smallest value, and mutates the input array. Uses Quickselect.",examples:["partitionSelect([5, 10, 1], 2)",'partitionSelect(["C", "B", "A", "D"], 1)'],seealso:["sort"]},range:{name:"range",category:"Type",syntax:["start:end","start:step:end","range(start, end)","range(start, end, step)","range(string)"],description:"Create a range. Lower bound of the range is included, upper bound is excluded.",examples:["1:5","3:-1:-3","range(3, 7)","range(0, 12, 2)",'range("4:10")',"a = [1, 2, 3, 4; 5, 6, 7, 8]","a[1:2, 1:2]"],seealso:["concat","det","diag","identity","inv","ones","size","squeeze","subset","trace","transpose","zeros"]},resize:{name:"resize",category:"Matrix",syntax:["resize(x, size)","resize(x, size, defaultValue)"],description:"Resize a matrix.",examples:["resize([1,2,3,4,5], [3])","resize([1,2,3], [5])","resize([1,2,3], [5], -1)","resize(2, [2, 3])",'resize("hello", [8], "!")'],seealso:["size","subset","squeeze","reshape"]},reshape:{name:"reshape",category:"Matrix",syntax:["reshape(x, sizes)"],description:"Reshape a multi dimensional array to fit the specified dimensions.",examples:["reshape([1, 2, 3, 4, 5, 6], [2, 3])","reshape([[1, 2], [3, 4]], [1, 4])","reshape([[1, 2], [3, 4]], [4])"],seealso:["size","squeeze","resize"]},rotate:{name:"rotate",category:"Matrix",syntax:["rotate(w, theta)","rotate(w, theta, v)"],description:"Returns a 2-D rotation matrix (2x2) for a given angle (in radians). Returns a 2-D rotation matrix (3x3) of a given angle (in radians) around given axis.",examples:["rotate([1, 0], math.pi / 2)",'rotate(matrix([1, 0]), unit("35deg"))','rotate([1, 0, 0], unit("90deg"), [0, 0, 1])','rotate(matrix([1, 0, 0]), unit("90deg"), matrix([0, 0, 1]))'],seealso:["matrix","rotationMatrix"]},rotationMatrix:{name:"rotationMatrix",category:"Matrix",syntax:["rotationMatrix(theta)","rotationMatrix(theta, v)","rotationMatrix(theta, v, format)"],description:"Returns a 2-D rotation matrix (2x2) for a given angle (in radians). Returns a 2-D rotation matrix (3x3) of a given angle (in radians) around given axis.",examples:["rotationMatrix(pi / 2)",'rotationMatrix(unit("45deg"), [0, 0, 1])','rotationMatrix(1, matrix([0, 0, 1]), "sparse")'],seealso:["cos","sin"]},row:{name:"row",category:"Matrix",syntax:["row(x, index)"],description:"Return a row from a matrix or array.",examples:["A = [[1, 2], [3, 4]]","row(A, 1)","row(A, 2)"],seealso:["column"]},size:{name:"size",category:"Matrix",syntax:["size(x)"],description:"Calculate the size of a matrix.",examples:["size(2.3)",'size("hello world")',"a = [1, 2; 3, 4; 5, 6]","size(a)","size(1:6)"],seealso:["concat","det","diag","identity","inv","ones","range","squeeze","subset","trace","transpose","zeros"]},sort:{name:"sort",category:"Matrix",syntax:["sort(x)","sort(x, compare)"],description:'Sort the items in a matrix. Compare can be a string "asc", "desc", "natural", or a custom sort function.',examples:["sort([5, 10, 1])",'sort(["C", "B", "A", "D"])',"sortByLength(a, b) = size(a)[1] - size(b)[1]",'sort(["Langdon", "Tom", "Sara"], sortByLength)','sort(["10", "1", "2"], "natural")'],seealso:["map","filter","forEach"]},squeeze:{name:"squeeze",category:"Matrix",syntax:["squeeze(x)"],description:"Remove inner and outer singleton dimensions from a matrix.",examples:["a = zeros(3,2,1)","size(squeeze(a))","b = zeros(1,1,3)","size(squeeze(b))"],seealso:["concat","det","diag","identity","inv","ones","range","size","subset","trace","transpose","zeros"]},subset:{name:"subset",category:"Matrix",syntax:["value(index)","value(index) = replacement","subset(value, [index])","subset(value, [index], replacement)"],description:"Get or set a subset of a matrix or string. Indexes are one-based. Both the ranges lower-bound and upper-bound are included.",examples:["d = [1, 2; 3, 4]","e = []","e[1, 1:2] = [5, 6]","e[2, :] = [7, 8]","f = d * e","f[2, 1]","f[:, 1]"],seealso:["concat","det","diag","identity","inv","ones","range","size","squeeze","trace","transpose","zeros"]},trace:{name:"trace",category:"Matrix",syntax:["trace(A)"],description:"Calculate the trace of a matrix: the sum of the elements on the main diagonal of a square matrix.",examples:["A = [1, 2, 3; -1, 2, 3; 2, 0, 3]","trace(A)"],seealso:["concat","det","diag","identity","inv","ones","range","size","squeeze","subset","transpose","zeros"]},transpose:{name:"transpose",category:"Matrix",syntax:["x'","transpose(x)"],description:"Transpose a matrix",examples:["a = [1, 2, 3; 4, 5, 6]","a'","transpose(a)"],seealso:["concat","det","diag","identity","inv","ones","range","size","squeeze","subset","trace","zeros"]},zeros:{name:"zeros",category:"Matrix",syntax:["zeros(m)","zeros(m, n)","zeros(m, n, p, ...)","zeros([m])","zeros([m, n])","zeros([m, n, p, ...])"],description:"Create a matrix containing zeros.",examples:["zeros(3)","zeros(3, 5)","a = [1, 2, 3; 4, 5, 6]","zeros(size(a))"],seealso:["concat","det","diag","identity","inv","ones","range","size","squeeze","subset","trace","transpose"]},combinations:{name:"combinations",category:"Probability",syntax:["combinations(n, k)"],description:"Compute the number of combinations of n items taken k at a time",examples:["combinations(7, 5)"],seealso:["combinationsWithRep","permutations","factorial"]},combinationsWithRep:{name:"combinationsWithRep",category:"Probability",syntax:["combinationsWithRep(n, k)"],description:"Compute the number of combinations of n items taken k at a time with replacements.",examples:["combinationsWithRep(7, 5)"],seealso:["combinations","permutations","factorial"]},factorial:{name:"factorial",category:"Probability",syntax:["n!","factorial(n)"],description:"Compute the factorial of a value",examples:["5!","5 * 4 * 3 * 2 * 1","3!"],seealso:["combinations","combinationsWithRep","permutations","gamma"]},gamma:{name:"gamma",category:"Probability",syntax:["gamma(n)"],description:"Compute the gamma function. For small values, the Lanczos approximation is used, and for large values the extended Stirling approximation.",examples:["gamma(4)","3!","gamma(1/2)","sqrt(pi)"],seealso:["factorial"]},kldivergence:{name:"kldivergence",category:"Probability",syntax:["kldivergence(x, y)"],description:"Calculate the Kullback-Leibler (KL) divergence between two distributions.",examples:["kldivergence([0.7,0.5,0.4], [0.2,0.9,0.5])"],seealso:[]},multinomial:{name:"multinomial",category:"Probability",syntax:["multinomial(A)"],description:"Multinomial Coefficients compute the number of ways of picking a1, a2, ..., ai unordered outcomes from `n` possibilities. multinomial takes one array of integers as an argument. The following condition must be enforced: every ai > 0.",examples:["multinomial([1, 2, 1])"],seealso:["combinations","factorial"]},permutations:{name:"permutations",category:"Probability",syntax:["permutations(n)","permutations(n, k)"],description:"Compute the number of permutations of n items taken k at a time",examples:["permutations(5)","permutations(5, 3)"],seealso:["combinations","combinationsWithRep","factorial"]},pickRandom:{name:"pickRandom",category:"Probability",syntax:["pickRandom(array)","pickRandom(array, number)","pickRandom(array, weights)","pickRandom(array, number, weights)","pickRandom(array, weights, number)"],description:"Pick a random entry from a given array.",examples:["pickRandom(0:10)","pickRandom([1, 3, 1, 6])","pickRandom([1, 3, 1, 6], 2)","pickRandom([1, 3, 1, 6], [2, 3, 2, 1])","pickRandom([1, 3, 1, 6], 2, [2, 3, 2, 1])","pickRandom([1, 3, 1, 6], [2, 3, 2, 1], 2)"],seealso:["random","randomInt"]},random:{name:"random",category:"Probability",syntax:["random()","random(max)","random(min, max)","random(size)","random(size, max)","random(size, min, max)"],description:"Return a random number.",examples:["random()","random(10, 20)","random([2, 3])"],seealso:["pickRandom","randomInt"]},randomInt:{name:"randomInt",category:"Probability",syntax:["randomInt(max)","randomInt(min, max)","randomInt(size)","randomInt(size, max)","randomInt(size, min, max)"],description:"Return a random integer number",examples:["randomInt(10, 20)","randomInt([2, 3], 10)"],seealso:["pickRandom","random"]},compare:{name:"compare",category:"Relational",syntax:["compare(x, y)"],description:"Compare two values. Returns 1 when x > y, -1 when x < y, and 0 when x == y.",examples:["compare(2, 3)","compare(3, 2)","compare(2, 2)","compare(5cm, 40mm)","compare(2, [1, 2, 3])"],seealso:["equal","unequal","smaller","smallerEq","largerEq","compareNatural","compareText"]},compareNatural:{name:"compareNatural",category:"Relational",syntax:["compareNatural(x, y)"],description:"Compare two values of any type in a deterministic, natural way. Returns 1 when x > y, -1 when x < y, and 0 when x == y.",examples:["compareNatural(2, 3)","compareNatural(3, 2)","compareNatural(2, 2)","compareNatural(5cm, 40mm)",'compareNatural("2", "10")',"compareNatural(2 + 3i, 2 + 4i)","compareNatural([1, 2, 4], [1, 2, 3])","compareNatural([1, 5], [1, 2, 3])","compareNatural([1, 2], [1, 2])","compareNatural({a: 2}, {a: 4})"],seealso:["equal","unequal","smaller","smallerEq","largerEq","compare","compareText"]},compareText:{name:"compareText",category:"Relational",syntax:["compareText(x, y)"],description:"Compare two strings lexically. Comparison is case sensitive. Returns 1 when x > y, -1 when x < y, and 0 when x == y.",examples:['compareText("B", "A")','compareText("A", "B")','compareText("A", "A")','compareText("2", "10")','compare("2", "10")',"compare(2, 10)",'compareNatural("2", "10")','compareText("B", ["A", "B", "C"])'],seealso:["compare","compareNatural"]},deepEqual:{name:"deepEqual",category:"Relational",syntax:["deepEqual(x, y)"],description:"Check equality of two matrices element wise. Returns true if the size of both matrices is equal and when and each of the elements are equal.",examples:["deepEqual([1,3,4], [1,3,4])","deepEqual([1,3,4], [1,3])"],seealso:["equal","unequal","smaller","larger","smallerEq","largerEq","compare"]},equal:{name:"equal",category:"Relational",syntax:["x == y","equal(x, y)"],description:"Check equality of two values. Returns true if the values are equal, and false if not.",examples:["2+2 == 3","2+2 == 4","a = 3.2","b = 6-2.8","a == b","50cm == 0.5m"],seealso:["unequal","smaller","larger","smallerEq","largerEq","compare","deepEqual","equalText"]},equalText:{name:"equalText",category:"Relational",syntax:["equalText(x, y)"],description:"Check equality of two strings. Comparison is case sensitive. Returns true if the values are equal, and false if not.",examples:['equalText("Hello", "Hello")','equalText("a", "A")','equal("2e3", "2000")','equalText("2e3", "2000")','equalText("B", ["A", "B", "C"])'],seealso:["compare","compareNatural","compareText","equal"]},larger:{name:"larger",category:"Relational",syntax:["x > y","larger(x, y)"],description:"Check if value x is larger than y. Returns true if x is larger than y, and false if not.",examples:["2 > 3","5 > 2*2","a = 3.3","b = 6-2.8","(a > b)","(b < a)","5 cm > 2 inch"],seealso:["equal","unequal","smaller","smallerEq","largerEq","compare"]},largerEq:{name:"largerEq",category:"Relational",syntax:["x >= y","largerEq(x, y)"],description:"Check if value x is larger or equal to y. Returns true if x is larger or equal to y, and false if not.",examples:["2 >= 1+1","2 > 1+1","a = 3.2","b = 6-2.8","(a >= b)"],seealso:["equal","unequal","smallerEq","smaller","compare"]},smaller:{name:"smaller",category:"Relational",syntax:["x < y","smaller(x, y)"],description:"Check if value x is smaller than value y. Returns true if x is smaller than y, and false if not.",examples:["2 < 3","5 < 2*2","a = 3.3","b = 6-2.8","(a < b)","5 cm < 2 inch"],seealso:["equal","unequal","larger","smallerEq","largerEq","compare"]},smallerEq:{name:"smallerEq",category:"Relational",syntax:["x <= y","smallerEq(x, y)"],description:"Check if value x is smaller or equal to value y. Returns true if x is smaller than y, and false if not.",examples:["2 <= 1+1","2 < 1+1","a = 3.2","b = 6-2.8","(a <= b)"],seealso:["equal","unequal","larger","smaller","largerEq","compare"]},unequal:{name:"unequal",category:"Relational",syntax:["x != y","unequal(x, y)"],description:"Check unequality of two values. Returns true if the values are unequal, and false if they are equal.",examples:["2+2 != 3","2+2 != 4","a = 3.2","b = 6-2.8","a != b","50cm != 0.5m","5 cm != 2 inch"],seealso:["equal","smaller","larger","smallerEq","largerEq","compare","deepEqual"]},setCartesian:{name:"setCartesian",category:"Set",syntax:["setCartesian(set1, set2)"],description:"Create the cartesian product of two (multi)sets. Multi-dimension arrays will be converted to single-dimension arrays before the operation.",examples:["setCartesian([1, 2], [3, 4])"],seealso:["setUnion","setIntersect","setDifference","setPowerset"]},setDifference:{name:"setDifference",category:"Set",syntax:["setDifference(set1, set2)"],description:"Create the difference of two (multi)sets: every element of set1, that is not the element of set2. Multi-dimension arrays will be converted to single-dimension arrays before the operation.",examples:["setDifference([1, 2, 3, 4], [3, 4, 5, 6])","setDifference([[1, 2], [3, 4]], [[3, 4], [5, 6]])"],seealso:["setUnion","setIntersect","setSymDifference"]},setDistinct:{name:"setDistinct",category:"Set",syntax:["setDistinct(set)"],description:"Collect the distinct elements of a multiset. A multi-dimension array will be converted to a single-dimension array before the operation.",examples:["setDistinct([1, 1, 1, 2, 2, 3])"],seealso:["setMultiplicity"]},setIntersect:{name:"setIntersect",category:"Set",syntax:["setIntersect(set1, set2)"],description:"Create the intersection of two (multi)sets. Multi-dimension arrays will be converted to single-dimension arrays before the operation.",examples:["setIntersect([1, 2, 3, 4], [3, 4, 5, 6])","setIntersect([[1, 2], [3, 4]], [[3, 4], [5, 6]])"],seealso:["setUnion","setDifference"]},setIsSubset:{name:"setIsSubset",category:"Set",syntax:["setIsSubset(set1, set2)"],description:"Check whether a (multi)set is a subset of another (multi)set: every element of set1 is the element of set2. Multi-dimension arrays will be converted to single-dimension arrays before the operation.",examples:["setIsSubset([1, 2], [3, 4, 5, 6])","setIsSubset([3, 4], [3, 4, 5, 6])"],seealso:["setUnion","setIntersect","setDifference"]},setMultiplicity:{name:"setMultiplicity",category:"Set",syntax:["setMultiplicity(element, set)"],description:"Count the multiplicity of an element in a multiset. A multi-dimension array will be converted to a single-dimension array before the operation.",examples:["setMultiplicity(1, [1, 2, 2, 4])","setMultiplicity(2, [1, 2, 2, 4])"],seealso:["setDistinct","setSize"]},setPowerset:{name:"setPowerset",category:"Set",syntax:["setPowerset(set)"],description:"Create the powerset of a (multi)set: the powerset contains very possible subsets of a (multi)set. A multi-dimension array will be converted to a single-dimension array before the operation.",examples:["setPowerset([1, 2, 3])"],seealso:["setCartesian"]},setSize:{name:"setSize",category:"Set",syntax:["setSize(set)","setSize(set, unique)"],description:'Count the number of elements of a (multi)set. When the second parameter "unique" is true, count only the unique values. A multi-dimension array will be converted to a single-dimension array before the operation.',examples:["setSize([1, 2, 2, 4])","setSize([1, 2, 2, 4], true)"],seealso:["setUnion","setIntersect","setDifference"]},setSymDifference:{name:"setSymDifference",category:"Set",syntax:["setSymDifference(set1, set2)"],description:"Create the symmetric difference of two (multi)sets. Multi-dimension arrays will be converted to single-dimension arrays before the operation.",examples:["setSymDifference([1, 2, 3, 4], [3, 4, 5, 6])","setSymDifference([[1, 2], [3, 4]], [[3, 4], [5, 6]])"],seealso:["setUnion","setIntersect","setDifference"]},setUnion:{name:"setUnion",category:"Set",syntax:["setUnion(set1, set2)"],description:"Create the union of two (multi)sets. Multi-dimension arrays will be converted to single-dimension arrays before the operation.",examples:["setUnion([1, 2, 3, 4], [3, 4, 5, 6])","setUnion([[1, 2], [3, 4]], [[3, 4], [5, 6]])"],seealso:["setIntersect","setDifference"]},erf:{name:"erf",category:"Special",syntax:["erf(x)"],description:"Compute the erf function of a value using a rational Chebyshev approximations for different intervals of x",examples:["erf(0.2)","erf(-0.5)","erf(4)"],seealso:[]},mad:{name:"mad",category:"Statistics",syntax:["mad(a, b, c, ...)","mad(A)"],description:"Compute the median absolute deviation of a matrix or a list with values. The median absolute deviation is defined as the median of the absolute deviations from the median.",examples:["mad(10, 20, 30)","mad([1, 2, 3])"],seealso:["mean","median","std","abs"]},max:{name:"max",category:"Statistics",syntax:["max(a, b, c, ...)","max(A)","max(A, dim)"],description:"Compute the maximum value of a list of values.",examples:["max(2, 3, 4, 1)","max([2, 3, 4, 1])","max([2, 5; 4, 3])","max([2, 5; 4, 3], 1)","max([2, 5; 4, 3], 2)","max(2.7, 7.1, -4.5, 2.0, 4.1)","min(2.7, 7.1, -4.5, 2.0, 4.1)"],seealso:["mean","median","min","prod","std","sum","variance"]},mean:{name:"mean",category:"Statistics",syntax:["mean(a, b, c, ...)","mean(A)","mean(A, dim)"],description:"Compute the arithmetic mean of a list of values.",examples:["mean(2, 3, 4, 1)","mean([2, 3, 4, 1])","mean([2, 5; 4, 3])","mean([2, 5; 4, 3], 1)","mean([2, 5; 4, 3], 2)","mean([1.0, 2.7, 3.2, 4.0])"],seealso:["max","median","min","prod","std","sum","variance"]},median:{name:"median",category:"Statistics",syntax:["median(a, b, c, ...)","median(A)"],description:"Compute the median of all values. The values are sorted and the middle value is returned. In case of an even number of values, the average of the two middle values is returned.",examples:["median(5, 2, 7)","median([3, -1, 5, 7])"],seealso:["max","mean","min","prod","std","sum","variance","quantileSeq"]},min:{name:"min",category:"Statistics",syntax:["min(a, b, c, ...)","min(A)","min(A, dim)"],description:"Compute the minimum value of a list of values.",examples:["min(2, 3, 4, 1)","min([2, 3, 4, 1])","min([2, 5; 4, 3])","min([2, 5; 4, 3], 1)","min([2, 5; 4, 3], 2)","min(2.7, 7.1, -4.5, 2.0, 4.1)","max(2.7, 7.1, -4.5, 2.0, 4.1)"],seealso:["max","mean","median","prod","std","sum","variance"]},mode:{name:"mode",category:"Statistics",syntax:["mode(a, b, c, ...)","mode(A)","mode(A, a, b, B, c, ...)"],description:"Computes the mode of all values as an array. In case mode being more than one, multiple values are returned in an array.",examples:["mode(2, 1, 4, 3, 1)","mode([1, 2.7, 3.2, 4, 2.7])","mode(1, 4, 6, 1, 6)"],seealso:["max","mean","min","median","prod","std","sum","variance"]},prod:{name:"prod",category:"Statistics",syntax:["prod(a, b, c, ...)","prod(A)"],description:"Compute the product of all values.",examples:["prod(2, 3, 4)","prod([2, 3, 4])","prod([2, 5; 4, 3])"],seealso:["max","mean","min","median","min","std","sum","variance"]},quantileSeq:{name:"quantileSeq",category:"Statistics",syntax:["quantileSeq(A, prob[, sorted])","quantileSeq(A, [prob1, prob2, ...][, sorted])","quantileSeq(A, N[, sorted])"],description:"Compute the prob order quantile of a matrix or a list with values. The sequence is sorted and the middle value is returned. Supported types of sequence values are: Number, BigNumber, Unit Supported types of probablity are: Number, BigNumber. \n\nIn case of a (multi dimensional) array or matrix, the prob order quantile of all elements will be calculated.",examples:["quantileSeq([3, -1, 5, 7], 0.5)","quantileSeq([3, -1, 5, 7], [1/3, 2/3])","quantileSeq([3, -1, 5, 7], 2)","quantileSeq([-1, 3, 5, 7], 0.5, true)"],seealso:["mean","median","min","max","prod","std","sum","variance"]},std:{name:"std",category:"Statistics",syntax:["std(a, b, c, ...)","std(A)","std(A, normalization)"],description:'Compute the standard deviation of all values, defined as std(A) = sqrt(variance(A)). Optional parameter normalization can be "unbiased" (default), "uncorrected", or "biased".',examples:["std(2, 4, 6)","std([2, 4, 6, 8])",'std([2, 4, 6, 8], "uncorrected")','std([2, 4, 6, 8], "biased")',"std([1, 2, 3; 4, 5, 6])"],seealso:["max","mean","min","median","prod","sum","variance"]},sum:{name:"sum",category:"Statistics",syntax:["sum(a, b, c, ...)","sum(A)"],description:"Compute the sum of all values.",examples:["sum(2, 3, 4, 1)","sum([2, 3, 4, 1])","sum([2, 5; 4, 3])"],seealso:["max","mean","median","min","prod","std","sum","variance"]},variance:{name:"variance",category:"Statistics",syntax:["variance(a, b, c, ...)","variance(A)","variance(A, normalization)"],description:'Compute the variance of all values. Optional parameter normalization can be "unbiased" (default), "uncorrected", or "biased".',examples:["variance(2, 4, 6)","variance([2, 4, 6, 8])",'variance([2, 4, 6, 8], "uncorrected")','variance([2, 4, 6, 8], "biased")',"variance([1, 2, 3; 4, 5, 6])"],seealso:["max","mean","min","median","min","prod","std","sum"]},acos:{name:"acos",category:"Trigonometry",syntax:["acos(x)"],description:"Compute the inverse cosine of a value in radians.",examples:["acos(0.5)","acos(cos(2.3))"],seealso:["cos","atan","asin"]},acosh:{name:"acosh",category:"Trigonometry",syntax:["acosh(x)"],description:"Calculate the hyperbolic arccos of a value, defined as `acosh(x) = ln(sqrt(x^2 - 1) + x)`.",examples:["acosh(1.5)"],seealso:["cosh","asinh","atanh"]},acot:{name:"acot",category:"Trigonometry",syntax:["acot(x)"],description:"Calculate the inverse cotangent of a value.",examples:["acot(0.5)","acot(cot(0.5))","acot(2)"],seealso:["cot","atan"]},acoth:{name:"acoth",category:"Trigonometry",syntax:["acoth(x)"],description:"Calculate the hyperbolic arccotangent of a value, defined as `acoth(x) = (ln((x+1)/x) + ln(x/(x-1))) / 2`.",examples:["acoth(2)","acoth(0.5)"],seealso:["acsch","asech"]},acsc:{name:"acsc",category:"Trigonometry",syntax:["acsc(x)"],description:"Calculate the inverse cotangent of a value.",examples:["acsc(2)","acsc(csc(0.5))","acsc(0.5)"],seealso:["csc","asin","asec"]},acsch:{name:"acsch",category:"Trigonometry",syntax:["acsch(x)"],description:"Calculate the hyperbolic arccosecant of a value, defined as `acsch(x) = ln(1/x + sqrt(1/x^2 + 1))`.",examples:["acsch(0.5)"],seealso:["asech","acoth"]},asec:{name:"asec",category:"Trigonometry",syntax:["asec(x)"],description:"Calculate the inverse secant of a value.",examples:["asec(0.5)","asec(sec(0.5))","asec(2)"],seealso:["acos","acot","acsc"]},asech:{name:"asech",category:"Trigonometry",syntax:["asech(x)"],description:"Calculate the inverse secant of a value.",examples:["asech(0.5)"],seealso:["acsch","acoth"]},asin:{name:"asin",category:"Trigonometry",syntax:["asin(x)"],description:"Compute the inverse sine of a value in radians.",examples:["asin(0.5)","asin(sin(0.5))"],seealso:["sin","acos","atan"]},asinh:{name:"asinh",category:"Trigonometry",syntax:["asinh(x)"],description:"Calculate the hyperbolic arcsine of a value, defined as `asinh(x) = ln(x + sqrt(x^2 + 1))`.",examples:["asinh(0.5)"],seealso:["acosh","atanh"]},atan:{name:"atan",category:"Trigonometry",syntax:["atan(x)"],description:"Compute the inverse tangent of a value in radians.",examples:["atan(0.5)","atan(tan(0.5))"],seealso:["tan","acos","asin"]},atanh:{name:"atanh",category:"Trigonometry",syntax:["atanh(x)"],description:"Calculate the hyperbolic arctangent of a value, defined as `atanh(x) = ln((1 + x)/(1 - x)) / 2`.",examples:["atanh(0.5)"],seealso:["acosh","asinh"]},atan2:{name:"atan2",category:"Trigonometry",syntax:["atan2(y, x)"],description:"Computes the principal value of the arc tangent of y/x in radians.",examples:["atan2(2, 2) / pi","angle = 60 deg in rad","x = cos(angle)","y = sin(angle)","atan2(y, x)"],seealso:["sin","cos","tan"]},cos:{name:"cos",category:"Trigonometry",syntax:["cos(x)"],description:"Compute the cosine of x in radians.",examples:["cos(2)","cos(pi / 4) ^ 2","cos(180 deg)","cos(60 deg)","sin(0.2)^2 + cos(0.2)^2"],seealso:["acos","sin","tan"]},cosh:{name:"cosh",category:"Trigonometry",syntax:["cosh(x)"],description:"Compute the hyperbolic cosine of x in radians.",examples:["cosh(0.5)"],seealso:["sinh","tanh","coth"]},cot:{name:"cot",category:"Trigonometry",syntax:["cot(x)"],description:"Compute the cotangent of x in radians. Defined as 1/tan(x)",examples:["cot(2)","1 / tan(2)"],seealso:["sec","csc","tan"]},coth:{name:"coth",category:"Trigonometry",syntax:["coth(x)"],description:"Compute the hyperbolic cotangent of x in radians.",examples:["coth(2)","1 / tanh(2)"],seealso:["sech","csch","tanh"]},csc:{name:"csc",category:"Trigonometry",syntax:["csc(x)"],description:"Compute the cosecant of x in radians. Defined as 1/sin(x)",examples:["csc(2)","1 / sin(2)"],seealso:["sec","cot","sin"]},csch:{name:"csch",category:"Trigonometry",syntax:["csch(x)"],description:"Compute the hyperbolic cosecant of x in radians. Defined as 1/sinh(x)",examples:["csch(2)","1 / sinh(2)"],seealso:["sech","coth","sinh"]},sec:{name:"sec",category:"Trigonometry",syntax:["sec(x)"],description:"Compute the secant of x in radians. Defined as 1/cos(x)",examples:["sec(2)","1 / cos(2)"],seealso:["cot","csc","cos"]},sech:{name:"sech",category:"Trigonometry",syntax:["sech(x)"],description:"Compute the hyperbolic secant of x in radians. Defined as 1/cosh(x)",examples:["sech(2)","1 / cosh(2)"],seealso:["coth","csch","cosh"]},sin:{name:"sin",category:"Trigonometry",syntax:["sin(x)"],description:"Compute the sine of x in radians.",examples:["sin(2)","sin(pi / 4) ^ 2","sin(90 deg)","sin(30 deg)","sin(0.2)^2 + cos(0.2)^2"],seealso:["asin","cos","tan"]},sinh:{name:"sinh",category:"Trigonometry",syntax:["sinh(x)"],description:"Compute the hyperbolic sine of x in radians.",examples:["sinh(0.5)"],seealso:["cosh","tanh"]},tan:{name:"tan",category:"Trigonometry",syntax:["tan(x)"],description:"Compute the tangent of x in radians.",examples:["tan(0.5)","sin(0.5) / cos(0.5)","tan(pi / 4)","tan(45 deg)"],seealso:["atan","sin","cos"]},tanh:{name:"tanh",category:"Trigonometry",syntax:["tanh(x)"],description:"Compute the hyperbolic tangent of x in radians.",examples:["tanh(0.5)","sinh(0.5) / cosh(0.5)"],seealso:["sinh","cosh"]},to:{name:"to",category:"Units",syntax:["x to unit","to(x, unit)"],description:"Change the unit of a value.",examples:["5 inch to cm","3.2kg to g","16 bytes in bits"],seealso:[]},clone:{name:"clone",category:"Utils",syntax:["clone(x)"],description:"Clone a variable. Creates a copy of primitive variables,and a deep copy of matrices",examples:["clone(3.5)","clone(2 - 4i)","clone(45 deg)","clone([1, 2; 3, 4])",'clone("hello world")'],seealso:[]},format:{name:"format",category:"Utils",syntax:["format(value)","format(value, precision)"],description:"Format a value of any type as string.",examples:["format(2.3)","format(3 - 4i)","format([])","format(pi, 3)"],seealso:["print"]},bin:{name:"bin",category:"Utils",syntax:["bin(value)"],description:"Format a number as binary",examples:["bin(2)"],seealso:["oct","hex"]},oct:{name:"oct",category:"Utils",syntax:["oct(value)"],description:"Format a number as octal",examples:["oct(56)"],seealso:["bin","hex"]},hex:{name:"hex",category:"Utils",syntax:["hex(value)"],description:"Format a number as hexadecimal",examples:["hex(240)"],seealso:["bin","oct"]},isNaN:{name:"isNaN",category:"Utils",syntax:["isNaN(x)"],description:"Test whether a value is NaN (not a number)",examples:["isNaN(2)","isNaN(0 / 0)","isNaN(NaN)","isNaN(Infinity)"],seealso:["isNegative","isNumeric","isPositive","isZero"]},isInteger:{name:"isInteger",category:"Utils",syntax:["isInteger(x)"],description:"Test whether a value is an integer number.",examples:["isInteger(2)","isInteger(3.5)","isInteger([3, 0.5, -2])"],seealso:["isNegative","isNumeric","isPositive","isZero"]},isNegative:{name:"isNegative",category:"Utils",syntax:["isNegative(x)"],description:"Test whether a value is negative: smaller than zero.",examples:["isNegative(2)","isNegative(0)","isNegative(-4)","isNegative([3, 0.5, -2])"],seealso:["isInteger","isNumeric","isPositive","isZero"]},isNumeric:{name:"isNumeric",category:"Utils",syntax:["isNumeric(x)"],description:"Test whether a value is a numeric value. Returns true when the input is a number, BigNumber, Fraction, or boolean.",examples:["isNumeric(2)",'isNumeric("2")','hasNumericValue("2")',"isNumeric(0)","isNumeric(bignumber(500))","isNumeric(fraction(0.125))","isNumeric(2 + 3i)",'isNumeric([2.3, "foo", false])'],seealso:["isInteger","isZero","isNegative","isPositive","isNaN","hasNumericValue"]},hasNumericValue:{name:"hasNumericValue",category:"Utils",syntax:["hasNumericValue(x)"],description:"Test whether a value is an numeric value. In case of a string, true is returned if the string contains a numeric value.",examples:["hasNumericValue(2)",'hasNumericValue("2")','isNumeric("2")',"hasNumericValue(0)","hasNumericValue(bignumber(500))","hasNumericValue(fraction(0.125))","hasNumericValue(2 + 3i)",'hasNumericValue([2.3, "foo", false])'],seealso:["isInteger","isZero","isNegative","isPositive","isNaN","isNumeric"]},isPositive:{name:"isPositive",category:"Utils",syntax:["isPositive(x)"],description:"Test whether a value is positive: larger than zero.",examples:["isPositive(2)","isPositive(0)","isPositive(-4)","isPositive([3, 0.5, -2])"],seealso:["isInteger","isNumeric","isNegative","isZero"]},isPrime:{name:"isPrime",category:"Utils",syntax:["isPrime(x)"],description:"Test whether a value is prime: has no divisors other than itself and one.",examples:["isPrime(3)","isPrime(-2)","isPrime([2, 17, 100])"],seealso:["isInteger","isNumeric","isNegative","isZero"]},isZero:{name:"isZero",category:"Utils",syntax:["isZero(x)"],description:"Test whether a value is zero.",examples:["isZero(2)","isZero(0)","isZero(-4)","isZero([3, 0, -2, 0])"],seealso:["isInteger","isNumeric","isNegative","isPositive"]},typeOf:{name:"typeOf",category:"Utils",syntax:["typeOf(x)"],description:"Get the type of a variable.",examples:["typeOf(3.5)","typeOf(2 - 4i)","typeOf(45 deg)",'typeOf("hello world")'],seealso:["getMatrixDataType"]},numeric:{name:"numeric",category:"Utils",syntax:["numeric(x)"],description:"Convert a numeric input to a specific numeric type: number, BigNumber, or Fraction.",examples:['numeric("4")','numeric("4", "number")','numeric("4", "BigNumber")','numeric("4", "Fraction)','numeric(4, "Fraction")','numeric(fraction(2, 5), "number)'],seealso:["number","fraction","bignumber","string","format"]}},n=["typed","mathWithTransform","Help"],Ts=Object(a.a)("help",n,function(e){var t=e.typed,i=e.mathWithTransform,a=e.Help;return t("help",{any:function(e){var t,r=e;if("string"!=typeof e)for(t in i)if(Object(ae.f)(i,t)&&e===i[t]){r=t;break}var n=Wr(_s,r);if(n)return new a(n);n="function"==typeof r?r.name:r;throw new Error('No documentation found on "'+n+'"')}})}),n=["typed","Chain"],qs=Object(a.a)("chain",n,function(e){var t=e.typed,r=e.Chain;return t("chain",{"":function(){return new r},any:function(e){return new r(e)}})}),n=["typed","matrix","subtract","multiply","unaryMinus","lup"],Is=Object(a.a)("det",n,function(e){var t=e.typed,i=e.matrix,f=e.subtract,l=e.multiply,p=e.unaryMinus,m=e.lup;return t("det",{any:function(e){return Object(ae.a)(e)},"Array | Matrix":function(e){var t=Object(ie.v)(e)?e.size():Array.isArray(e)?(e=i(e)).size():[];switch(t.length){case 0:return Object(ae.a)(e);case 1:if(1===t[0])return Object(ae.a)(e.valueOf()[0]);throw new RangeError("Matrix must be square (size: "+Object(Z.d)(t)+")");case 2:var r=t[0],n=t[1];if(r===n)return function(e,t){{if(1===t)return Object(ae.a)(e[0][0]);if(2===t)return f(l(e[0][0],e[1][1]),l(e[1][0],e[0][1]));for(var r=m(e),n=r.U[0][0],i=1;if&&(f=O(s[p][c]),l=p),p++;if(0===f)throw Error("Cannot calculate inverse, determinant is zero");(p=l)!==c&&(a=s[c],s[c]=s[p],s[p]=a,a=u[c],u[c]=u[p],u[p]=a);var m=s[c],h=u[c];for(p=0;p=l(n);){var s=o[0][0],u=o[0][1];t=function(e,t,r){e=y(t,e);return l(e)<=h.epsilon?x(-1).acos().div(4):v(.5,p(w(2,r,m(e))))}(e[s][s],e[u][u],e[s][u]),e=function(e,t,r,n){for(var i=e.length,a=x(g(t)),o=x(b(t)),s=v(a,a),u=v(o,o),c=E(i,x(0)),f=E(i,x(0)),l=w(x(2),a,o,e[r][n]),t=d(y(v(s,e[r][r]),l),v(u,e[n][n])),s=N(v(u,e[r][r]),l,v(s,e[n][n])),p=0;p=Math.abs(r);){var f=c[0][0],l=c[0][1];a=e[f][f],o=e[l][l],s=e[f][l],u=void 0,u=o-a,e=function(e,t,r,n){for(var i=e.length,a=Math.cos(t),o=Math.sin(t),s=a*a,u=o*o,c=E(i,0),f=E(i,0),t=s*e[r][r]-2*a*o*e[r][n]+u*e[n][n],s=u*e[r][r]+2*a*o*e[r][n]+s*e[n][n],l=0;l>1;return Xs(e,r)*Xs(1+r,t)}function Qs(e,t){if(!Object(N.i)(e)||e<0)throw new TypeError("Positive integer value expected in function combinations");if(!Object(N.i)(t)||t<0)throw new TypeError("Positive integer value expected in function combinations");if(e");if(2!==s.length)throw SyntaxError("Could not parse rule: "+i);i={l:s[0],r:s[1]};case"object":a={l:E(u(i.l)),r:E(u(i.r))},i.context&&(a.evaluate=i.context),i.evaluate&&(a.evaluate=u(i.evaluate)),w(a.l)&&(n=j(a.l),s=new b("_p"+A++),a.expanded={},a.expanded.l=n([a.l.clone(),s]),N(a.expanded.l),O(a.expanded.l),a.expanded.r=n([a.r,s]));break;case"function":a=i;break;default:throw TypeError("Unsupported type of rule: "+o)}t.push(a)}return t}(t);for(var i=v(e,r),a={},o=(i=E(i)).toString({parenthesis:"all"});!a[o];){a[o]=!0;for(var s=A=0;s + document.getElementById('explanationmatrixresult').innerHTML=sumexplanation; + displaymatrix('Addition\\quad Result',summ,'matrixresult',String(document.getElementById('row2').value),String(document.getElementById('column2').value)) + renderMathInElement(document.getElementById('explanationmatrixresult')); + + + } + function subtractofmatrix(){ + sendtomatrix1(); + sendtomatrix2(); + + var subb=[]; + var subbexplanation=''; + for(i=0;i + document.getElementById('explanationmatrixresult').innerHTML=subbexplanation; + displaymatrix('Substraction\\quad Result',subb,'matrixresult',String(document.getElementById('row2').value),String(document.getElementById('column2').value)) + renderMathInElement(document.getElementById('explanationmatrixresult')); + + + } + function mulofmatrix(){ + sendtomatrix1(); + sendtomatrix2(); + var mul=[]; + var temp=''; + var mulexplanation=''; + var d=''; + for(i=0;i
    '; + mul[i][j]=0; + for(k=0;k'; + var mat=[]; + for(f=0;f + document.getElementById('explanationmatrixresult').innerHTML=mulexplanation; + renderMathInElement(document.getElementById('explanationmatrixresult')); + displaymatrix('Multiplication\\quad Result',mul,'matrixresult',String(document.getElementById('row1').value),String(document.getElementById('column2').value)) + + + } + function clearfields(){ + document.getElementById('matrixresult').textContent=''; + document.getElementById('explanationmatrixresult').textContent=''; + } + + function checkfunctionsmultiple(){ + removeall('opval') + var r1=document.getElementById('row1').value; + var r2=document.getElementById('row2').value; + var c1=document.getElementById('column1').value; + var c2=document.getElementById('column2').value; + if(r1=='' || r2=='' || c1=='' || c2==''){ + addop('opval','Input Fields'); + removeall('generatedmatrix1'); + removeall('generatedmatrix2'); + document.getElementById('generatedmatrix1').innerHTML=''; + document.getElementById('generatedmatrix2').innerHTML=''; + document.getElementById('signofmatrix').innerHTML=''; + + } + else{ + creatematrix2(); + creatematrix1(); + if(r1==r2 && c1==c2){ + if(c1!=r2){ + addop('opval','Select Operation'); + addop('opval','+'); + addop('opval','-'); + } + else if(c1==r2){ + addop('opval','Select Operation'); + addop('opval','+'); + addop('opval','-'); + addop('opval','×'); + } + + } + else if(c1==r2){ + if(c1==r2==r1==c2){ + addop('opval','Select Operation'); + addop('opval','+'); + addop('opval','-'); + addop('opval','x'); + } + else if(c1==r2 && r1!=c2){ + addop('opval','x'); + signofmatrix('x'); + } + else if(c1==r2 && r1==c2){ + addop('opval','x'); + signofmatrix('x'); + } + } + else{ + addop('opval','Not Possible with these inputs'); + removeall('generatedmatrix1'); + removeall('generatedmatrix2'); + } + + + } + } + + function calloperation(value){ + if(value=='+'){ + sumofmatrix(); + } + else if(value=='-'){ + subtractofmatrix(); + } + else if(value=='×'){ + mulofmatrix(); + } + + } + + +//single matrix + function creatematrixsingle(){ + removeall('generatedmatrixsingle'); + var ids="id13" + for(i=0;i3 && parseInt(column)>3){ + creatematrixsingle(); + removeall('sopval') + if(parseInt(row)<=5 && (parseInt(row)==parseInt(column))){ + addop('sopval','Select Operation') + addop('sopval','Transpose') + addop('sopval','Determinant') + }else{ + addop('sopval','Transpose') + } + + } +} + +//function determinant(ma){ +// var row=ma.length; +// var column=ma.length; +// var expanding=[] +// +// for(i=0;i2 && flag==1 && flagnan==3){ +// determinant(minormatrix); +// } +//} +// +// +function laplacedeterminant(){ + sendtomatrixsingle(); + document.getElementById('singlematrixexplanation').innerHTML=''; + determinant(matrixsingle); + +} +function determinant(ma){ + var row=ma.length; + var column=ma.length; + var firstrow=[]; + var jj=1; + var el=0; + for(j=0;j2){ + var colofsub=submatrix.length; + var rowofsub=submatrix.length; + var firstrowofsub=[]; + var resultofsub=[]; + var jjofsub=1; + var elofsub=0; + for(jofsub=0;jofsub2){ + var colofsubofsub=submatrixofsub.length; + var rowofsubofsub=submatrixofsub.length; + var firstrowofsubofsub=[]; + var resultofsubofsub=[]; + var jjofsubofsub=1; + var elofsubofsub=0; + for(jofsubofsub=0;jofsubofsub2){ + document.getElementById('singlematrixexplanation').innerHTML+=vt; + if(submatrixofsub.length==2){ + document.getElementById('singlematrixexplanation').innerHTML+=vtfinal; + document.getElementById('singlematrixexplanation').innerHTML+=vtfinalresult; + document.getElementById('singlematrixexplanation').innerHTML+=vtfinalresult2; + document.getElementById('singlematrixexplanation').innerHTML+=vtfinalresult3; + document.getElementById('singlematrixexplanation').innerHTML+=vtfinalresult4; + var dis='\\[\\begin{vmatrix}'; + for(om of ma){ + for(omm of om){ + dis+=omm+'&' + } + dis=dis.slice(0,-1) + dis+='\\\\' + } + var sdd=nerdamer(sol3).evaluate().toString(); + dis+='\\end{vmatrix}='+sdd+'\\]' + document.getElementById('singlematrixexplanation').innerHTML+='\\[Determinant = '+sdd+'\\]'; + document.getElementById('singlematrixresult').innerHTML=dis; + } + if(submatrixofsub.length>2){ + document.getElementById('singlematrixexplanation').innerHTML+=vtofsub; + document.getElementById('singlematrixexplanation').innerHTML+=vtfinalofsub; + document.getElementById('singlematrixexplanation').innerHTML+=vtfinalofsubresult; + document.getElementById('singlematrixexplanation').innerHTML+=vtfinalofsubresult2; + document.getElementById('singlematrixexplanation').innerHTML+=vtfinalofsubresult3; + document.getElementById('singlematrixexplanation').innerHTML+=vtfinalofsubresult4; + document.getElementById('singlematrixexplanation').innerHTML+=vtfinalofsubresult5; + document.getElementById('singlematrixexplanation').innerHTML+=vtfinalofsubresult6; + var dis='\\[\\begin{vmatrix}'; + for(om of ma){ + for(omm of om){ + dis+=omm+'&' + } + dis=dis.slice(0,-1) + dis+='\\\\' + } + var sdd=nerdamer(sol5sub).evaluate().toString(); + dis+='\\end{vmatrix}='+sdd+'\\]' + document.getElementById('singlematrixexplanation').innerHTML+='\\[Determinant = '+sdd+'\\]'; + document.getElementById('singlematrixresult').innerHTML=dis; + } + } + submatrix=[] + submatrixofsub=[] + submatrixofsubofsub=[] + } + renderMathInElement(document.getElementById('singlematrixexplanation')); + renderMathInElement(document.getElementById('singlematrixresult')); +} + +var a = []; +var N = 3; +var Wert = 1; +var strforgaussver = ""; +var digits = 3; +function GV_drawDiagramm6() { + N = 3 + a = new Array(N); + //Wert = 1; + for (var i = 0; i < a.length; ++i) { + a[i] = new Array(N); + } + //digits = 3; +} + +function GaussVerfahren() { + sendtomatrixsingle(); + GV_drawDiagramm6() + var Gleichung = document.getElementById("singlematrixexplanation2"); + Wert = 1; + strforgaussver = '

    '; + strforgaussver += '

    '; + strforgaussver += '\\['; + strforgaussver += '\\begin{vmatrix}'; + for (var i = 0; i < (N); ++i) { + for (var j = 0; j < (N); ++j) { + a[i][j]= matrixsingle[i][j]; + strforgaussver += a[i][j] + '&'; + } + strforgaussver=strforgaussver.slice(0,-1) + strforgaussver += '\\\\'; + } + strforgaussver += '\\end{vmatrix}'; + strforgaussver += '\\]'; + strforgaussver += '

    '; + + dreieckGV(a, 0, 0); + + strforgaussver += '

    Determinant is

    '; + strforgaussver += '

    '; + strforgaussver += '\\['; + strforgaussver += 'det\\big(A)=' + Math.round(Wert.toFixed(digits)); + strforgaussver += '\\]'; + strforgaussver += '

    '; + Gleichung.innerHTML = strforgaussver; + renderMathInElement(document.getElementById('singlematrixexplanation2')) +} +function Display_GV(text,farbe) { + strforgaussver += '

    '+text+'

    '; + strforgaussver += '

    '; + strforgaussver += '\\['; + if(isInt(Wert)){ + strforgaussver += Wert; + }else{ + strforgaussver += parseFloat(Wert.toFixed(digits)); + } + strforgaussver += '\\begin{vmatrix}'; + for (var i = 0; i < (N); ++i) { + for (var j = 0; j < (N); ++j) { + strforgaussver += a[i][j] + '&'; + } + strforgaussver =strforgaussver.slice(0,-1) + strforgaussver += '\\\\'; + } + strforgaussver += '\\end{vmatrix}'; + strforgaussver += '\\]'; + strforgaussver += '

    '; +} +function dreieckGV(b, i1, j1) { + for (var i = i1; i < (N); ++i) { + var temp = b[i][i1]; + console.log(b[i][i1]) + if (temp == 0) { temp = 1; } + Wert *= temp; + for (var j = j1; j < (N); ++j) { + var t=eval(String(b[i][j]/ temp)) + if(isInt(t)){ + b[i][j] =t + }else{ + b[i][j] =parseFloat(t).toFixed(3) + } + + } + } + Display_GV("Division of rows "+ i1 +"by the element of the row in the column "+i1,"black"); + + if (i1 < N) { + for (var i = i1+1; i < (N); ++i) { + for (var j = j1; j < (N); ++j) { + var t=eval(String(b[i][j]-b[i1][j])) + if(isInt(t)){ + b[i][j]=t; + }else{ + b[i][j] =parseFloat(t).toFixed(3); + } + + } + } + Display_GV("Subtracting the "+ i1 +". line of the following","black"); + } + if (i1 < N) { + dreieckGV(a, i1+1, j1+1); + } +} + +function isInt(n){ + return Number(n) == n && n % 1 == 0; +} + +function isFloat(n){ + return Number(n) == n && n % 1 != 0; +} +//var str= ''; +//var dimension= 3; +//var Sym = false; +//var b = new Array(4); +//var Auswahl = new Array(3); +//function GaussVerfahren() { +// var Gleichung = document.getElementById("singlematrixexplanation2"); +// Wert = 1; +// str= ''; +// N= 3; +// a = new Array(4); +// for (var i = 0; i < 4; ++i) { +// a[i] = new Array(4); +// } +// a[1][1] = parseFloat(document.Formular5.b11.value.replace(',','.')); +// a[1][2] = parseFloat(document.Formular5.b12.value.replace(',','.')); +// a[1][3] = parseFloat(document.Formular5.b13.value.replace(',','.')); +// a[2][1] = parseFloat(document.Formular5.b21.value.replace(',','.')); +// a[2][2] = parseFloat(document.Formular5.b22.value.replace(',','.')); +// a[2][3] = parseFloat(document.Formular5.b23.value.replace(',','.')); +// a[3][1] = parseFloat(document.Formular5.b31.value.replace(',','.')); +// a[3][2] = parseFloat(document.Formular5.b32.value.replace(',','.')); +// a[3][3] = parseFloat(document.Formular5.b33.value.replace(',','.')); +// +// str += '
    '; +// str += '

    det( A ) =

    '; +// str += Display_det(a); +// str += '
    '; +// +// dreieckGV(a, 1, 1); +// +// str += '
    '; +// str += '

    '; +// str += 'The determinant value is: det( A ) = ' + Wert.toFixed(digits) + ''; +// str += '

    '; +// +// Gleichung.innerHTML = str; +//} +//function setData() { +// b = new Array(3); +// for (var i = 0; i < b.length; ++i) { +// b[i] = new Array(3); +// } +// b[0][0] = parseFloat(document.Formular5.b11.value.replace(',','.')); +// b[0][1] = parseFloat(document.Formular5.b12.value.replace(',','.')); +// b[0][2] = parseFloat(document.Formular5.b13.value.replace(',','.')); +// b[1][0] = parseFloat(document.Formular5.b21.value.replace(',','.')); +// b[1][1] = parseFloat(document.Formular5.b22.value.replace(',','.')); +// b[1][2] = parseFloat(document.Formular5.b23.value.replace(',','.')); +// b[2][0] = parseFloat(document.Formular5.b31.value.replace(',','.')); +// b[2][1] = parseFloat(document.Formular5.b32.value.replace(',','.')); +// b[2][2] = parseFloat(document.Formular5.b33.value.replace(',','.')); +// Auswahl[0]= 2; +// Auswahl[1]= -2; +// Auswahl[2]= 1; +//} \ No newline at end of file diff --git a/js/plotly-1.35.2.min.js b/js/plotly-1.35.2.min.js new file mode 100644 index 000000000..c4743479b --- /dev/null +++ b/js/plotly-1.35.2.min.js @@ -0,0 +1,7 @@ +/** +* plotly.js v1.35.2 +* Copyright 2012-2018, Plotly, Inc. +* All rights reserved. +* Licensed under the MIT license +*/ +!function(t){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).Plotly=t()}}(function(){var t={BADNUM:void 0,FP_SAFE:Number.MAX_VALUE/1e4,ONEAVGYEAR:315576e5,ONEAVGMONTH:26298e5,ONEDAY:864e5,ONEHOUR:36e5,ONEMIN:6e4,ONESEC:1e3,EPOCHJD:2440587.5,ALMOST_EQUAL:1-1e-6,MINUS_SIGN:"\u2212"},e={exports:{}};!function(){var t={version:"3.5.17"},r=[].slice,n=function(t){return r.call(t)},i=this.document;function a(t){return t&&(t.ownerDocument||t.document||t).documentElement}function o(t){return t&&(t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView)}if(i)try{n(i.documentElement.childNodes)[0].nodeType}catch(t){n=function(t){for(var e=t.length,r=new Array(e);e--;)r[e]=t[e];return r}}if(Date.now||(Date.now=function(){return+new Date}),i)try{i.createElement("DIV").style.setProperty("opacity",0,"")}catch(t){var s=this.Element.prototype,l=s.setAttribute,u=s.setAttributeNS,c=this.CSSStyleDeclaration.prototype,h=c.setProperty;s.setAttribute=function(t,e){l.call(this,t,e+"")},s.setAttributeNS=function(t,e,r){u.call(this,t,e,r+"")},c.setProperty=function(t,e,r){h.call(this,t,e+"",r)}}function f(t,e){return te?1:t>=e?0:NaN}function p(t){return null===t?NaN:+t}function d(t){return!isNaN(t)}function g(t){return{left:function(e,r,n,i){for(arguments.length<3&&(n=0),arguments.length<4&&(i=e.length);n>>1;t(e[a],r)<0?n=a+1:i=a}return n},right:function(e,r,n,i){for(arguments.length<3&&(n=0),arguments.length<4&&(i=e.length);n>>1;t(e[a],r)>0?i=a:n=a+1}return n}}}t.ascending=f,t.descending=function(t,e){return et?1:e>=t?0:NaN},t.min=function(t,e){var r,n,i=-1,a=t.length;if(1===arguments.length){for(;++i=n){r=n;break}for(;++in&&(r=n)}else{for(;++i=n){r=n;break}for(;++in&&(r=n)}return r},t.max=function(t,e){var r,n,i=-1,a=t.length;if(1===arguments.length){for(;++i=n){r=n;break}for(;++ir&&(r=n)}else{for(;++i=n){r=n;break}for(;++ir&&(r=n)}return r},t.extent=function(t,e){var r,n,i,a=-1,o=t.length;if(1===arguments.length){for(;++a=n){r=i=n;break}for(;++an&&(r=n),i=n){r=i=n;break}for(;++an&&(r=n),i1)return o/(l-1)},t.deviation=function(){var e=t.variance.apply(this,arguments);return e?Math.sqrt(e):e};var v=g(f);function m(t){return t.length}t.bisectLeft=v.left,t.bisect=t.bisectRight=v.right,t.bisector=function(t){return g(1===t.length?function(e,r){return f(t(e),r)}:t)},t.shuffle=function(t,e,r){(a=arguments.length)<3&&(r=t.length,a<2&&(e=0));for(var n,i,a=r-e;a;)i=Math.random()*a--|0,n=t[a+e],t[a+e]=t[i+e],t[i+e]=n;return t},t.permute=function(t,e){for(var r=e.length,n=new Array(r);r--;)n[r]=t[e[r]];return n},t.pairs=function(t){for(var e=0,r=t.length-1,n=t[0],i=new Array(r<0?0:r);e=0;)for(e=(n=t[i]).length;--e>=0;)r[--o]=n[e];return r};var y=Math.abs;function x(t,e){for(var r in e)Object.defineProperty(t.prototype,r,{value:e[r],enumerable:!1})}function b(){this._=Object.create(null)}t.range=function(t,e,r){if(arguments.length<3&&(r=1,arguments.length<2&&(e=t,t=0)),(e-t)/r==1/0)throw new Error("infinite range");var n,i=[],a=function(t){var e=1;for(;t*e%1;)e*=10;return e}(y(r)),o=-1;if(t*=a,e*=a,(r*=a)<0)for(;(n=t+r*++o)>e;)i.push(n/a);else for(;(n=t+r*++o)=i.length)return r?r.call(n,a):e?a.sort(e):a;for(var l,u,c,h,f=-1,p=a.length,d=i[s++],g=new b;++f=i.length)return e;var n=[],o=a[r++];return e.forEach(function(e,i){n.push({key:e,values:t(i,r)})}),o?n.sort(function(t,e){return o(t.key,e.key)}):n}(o(t.map,e,0),0)},n.key=function(t){return i.push(t),n},n.sortKeys=function(t){return a[i.length-1]=t,n},n.sortValues=function(t){return e=t,n},n.rollup=function(t){return r=t,n},n},t.set=function(t){var e=new L;if(t)for(var r=0,n=t.length;r=0&&(n=t.slice(r+1),t=t.slice(0,r)),t)return arguments.length<2?this[t].on(n):this[t].on(n,e);if(2===arguments.length){if(null==e)for(t in this)this.hasOwnProperty(t)&&this[t].on(n,null);return this}},t.event=null,t.requote=function(t){return t.replace(V,"\\$&")};var V=/[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g,U={}.__proto__?function(t,e){t.__proto__=e}:function(t,e){for(var r in e)t[r]=e[r]};function q(t){return U(t,Y),t}var H=function(t,e){return e.querySelector(t)},G=function(t,e){return e.querySelectorAll(t)},W=function(t,e){var r=t.matches||t[I(t,"matchesSelector")];return(W=function(t,e){return r.call(t,e)})(t,e)};"function"==typeof Sizzle&&(H=function(t,e){return Sizzle(t,e)[0]||null},G=Sizzle,W=Sizzle.matchesSelector),t.selection=function(){return t.select(i.documentElement)};var Y=t.selection.prototype=[];function X(t){return"function"==typeof t?t:function(){return H(t,this)}}function Z(t){return"function"==typeof t?t:function(){return G(t,this)}}Y.select=function(t){var e,r,n,i,a=[];t=X(t);for(var o=-1,s=this.length;++o=0&&"xmlns"!==(r=t.slice(0,e))&&(t=t.slice(e+1)),K.hasOwnProperty(r)?{space:K[r],local:t}:t}},Y.attr=function(e,r){if(arguments.length<2){if("string"==typeof e){var n=this.node();return(e=t.ns.qualify(e)).local?n.getAttributeNS(e.space,e.local):n.getAttribute(e)}for(r in e)this.each(Q(r,e[r]));return this}return this.each(Q(e,r))},Y.classed=function(t,e){if(arguments.length<2){if("string"==typeof t){var r=this.node(),n=(t=et(t)).length,i=-1;if(e=r.classList){for(;++i=0;)(r=n[i])&&(a&&a!==r.nextSibling&&a.parentNode.insertBefore(r,a),a=r);return this},Y.sort=function(t){t=function(t){arguments.length||(t=f);return function(e,r){return e&&r?t(e.__data__,r.__data__):!e-!r}}.apply(this,arguments);for(var e=-1,r=this.length;++e0&&(e=e.slice(0,o));var l=dt.get(e);function u(){var t=this[a];t&&(this.removeEventListener(e,t,t.$),delete this[a])}return l&&(e=l,s=vt),o?r?function(){var t=s(r,n(arguments));u.call(this),this.addEventListener(e,this[a]=t,t.$=i),t._=r}:u:r?O:function(){var r,n=new RegExp("^__on([^.]+)"+t.requote(e)+"$");for(var i in this)if(r=i.match(n)){var a=this[i];this.removeEventListener(r[1],a,a.$),delete this[i]}}}t.selection.enter=ht,t.selection.enter.prototype=ft,ft.append=Y.append,ft.empty=Y.empty,ft.node=Y.node,ft.call=Y.call,ft.size=Y.size,ft.select=function(t){for(var e,r,n,i,a,o=[],s=-1,l=this.length;++s=n&&(n=e+1);!(o=s[n])&&++n0?1:t<0?-1:0}function Pt(t,e,r){return(e[0]-t[0])*(r[1]-t[1])-(e[1]-t[1])*(r[0]-t[0])}function It(t){return t>1?0:t<-1?kt:Math.acos(t)}function Dt(t){return t>1?Et:t<-1?-Et:Math.asin(t)}function Ot(t){return((t=Math.exp(t))+1/t)/2}function Rt(t){return(t=Math.sin(t/2))*t}var Ft=Math.SQRT2;t.interpolateZoom=function(t,e){var r,n,i=t[0],a=t[1],o=t[2],s=e[0],l=e[1],u=e[2],c=s-i,h=l-a,f=c*c+h*h;if(f0&&(e=e.transition().duration(g)),e.call(w.event)}function S(){u&&u.domain(l.range().map(function(t){return(t-f.x)/f.k}).map(l.invert)),h&&h.domain(c.range().map(function(t){return(t-f.y)/f.k}).map(c.invert))}function E(t){v++||t({type:"zoomstart"})}function C(t){S(),t({type:"zoom",scale:f.k,translate:[f.x,f.y]})}function L(t){--v||(t({type:"zoomend"}),r=null)}function z(){var e=this,r=_.of(e,arguments),n=0,i=t.select(o(e)).on(y,function(){n=1,k(t.mouse(e),a),C(r)}).on(x,function(){i.on(y,null).on(x,null),s(n),L(r)}),a=M(t.mouse(e)),s=xt(e);ss.call(e),E(r)}function P(){var e,r=this,n=_.of(r,arguments),i={},a=0,o=".zoom-"+t.event.changedTouches[0].identifier,l="touchmove"+o,u="touchend"+o,c=[],h=t.select(r),p=xt(r);function d(){var n=t.touches(r);return e=f.k,n.forEach(function(t){t.identifier in i&&(i[t.identifier]=M(t))}),n}function g(){var e=t.event.target;t.select(e).on(l,v).on(u,y),c.push(e);for(var n=t.event.changedTouches,o=0,h=n.length;o1){m=p[0];var x=p[1],b=m[0]-x[0],_=m[1]-x[1];a=b*b+_*_}}function v(){var o,l,u,c,h=t.touches(r);ss.call(r);for(var f=0,p=h.length;f360?t-=360:t<0&&(t+=360),t<60?n+(i-n)*t/60:t<180?i:t<240?n+(i-n)*(240-t)/60:n}(t))}return t=isNaN(t)?0:(t%=360)<0?t+360:t,e=isNaN(e)?0:e<0?0:e>1?1:e,n=2*(r=r<0?0:r>1?1:r)-(i=r<=.5?r*(1+e):r+e-r*e),new ae(a(t+120),a(t),a(t-120))}function Gt(e,r,n){return this instanceof Gt?(this.h=+e,this.c=+r,void(this.l=+n)):arguments.length<2?e instanceof Gt?new Gt(e.h,e.c,e.l):ee(e instanceof Xt?e.l:(e=fe((e=t.rgb(e)).r,e.g,e.b)).l,e.a,e.b):new Gt(e,r,n)}qt.brighter=function(t){return t=Math.pow(.7,arguments.length?t:1),new Ut(this.h,this.s,this.l/t)},qt.darker=function(t){return t=Math.pow(.7,arguments.length?t:1),new Ut(this.h,this.s,t*this.l)},qt.rgb=function(){return Ht(this.h,this.s,this.l)},t.hcl=Gt;var Wt=Gt.prototype=new Vt;function Yt(t,e,r){return isNaN(t)&&(t=0),isNaN(e)&&(e=0),new Xt(r,Math.cos(t*=Ct)*e,Math.sin(t)*e)}function Xt(t,e,r){return this instanceof Xt?(this.l=+t,this.a=+e,void(this.b=+r)):arguments.length<2?t instanceof Xt?new Xt(t.l,t.a,t.b):t instanceof Gt?Yt(t.h,t.c,t.l):fe((t=ae(t)).r,t.g,t.b):new Xt(t,e,r)}Wt.brighter=function(t){return new Gt(this.h,this.c,Math.min(100,this.l+Zt*(arguments.length?t:1)))},Wt.darker=function(t){return new Gt(this.h,this.c,Math.max(0,this.l-Zt*(arguments.length?t:1)))},Wt.rgb=function(){return Yt(this.h,this.c,this.l).rgb()},t.lab=Xt;var Zt=18,Jt=.95047,Kt=1,Qt=1.08883,$t=Xt.prototype=new Vt;function te(t,e,r){var n=(t+16)/116,i=n+e/500,a=n-r/200;return new ae(ie(3.2404542*(i=re(i)*Jt)-1.5371385*(n=re(n)*Kt)-.4985314*(a=re(a)*Qt)),ie(-.969266*i+1.8760108*n+.041556*a),ie(.0556434*i-.2040259*n+1.0572252*a))}function ee(t,e,r){return t>0?new Gt(Math.atan2(r,e)*Lt,Math.sqrt(e*e+r*r),t):new Gt(NaN,NaN,t)}function re(t){return t>.206893034?t*t*t:(t-4/29)/7.787037}function ne(t){return t>.008856?Math.pow(t,1/3):7.787037*t+4/29}function ie(t){return Math.round(255*(t<=.00304?12.92*t:1.055*Math.pow(t,1/2.4)-.055))}function ae(t,e,r){return this instanceof ae?(this.r=~~t,this.g=~~e,void(this.b=~~r)):arguments.length<2?t instanceof ae?new ae(t.r,t.g,t.b):ce(""+t,ae,Ht):new ae(t,e,r)}function oe(t){return new ae(t>>16,t>>8&255,255&t)}function se(t){return oe(t)+""}$t.brighter=function(t){return new Xt(Math.min(100,this.l+Zt*(arguments.length?t:1)),this.a,this.b)},$t.darker=function(t){return new Xt(Math.max(0,this.l-Zt*(arguments.length?t:1)),this.a,this.b)},$t.rgb=function(){return te(this.l,this.a,this.b)},t.rgb=ae;var le=ae.prototype=new Vt;function ue(t){return t<16?"0"+Math.max(0,t).toString(16):Math.min(255,t).toString(16)}function ce(t,e,r){var n,i,a,o=0,s=0,l=0;if(n=/([a-z]+)\((.*)\)/.exec(t=t.toLowerCase()))switch(i=n[2].split(","),n[1]){case"hsl":return r(parseFloat(i[0]),parseFloat(i[1])/100,parseFloat(i[2])/100);case"rgb":return e(de(i[0]),de(i[1]),de(i[2]))}return(a=ge.get(t))?e(a.r,a.g,a.b):(null==t||"#"!==t.charAt(0)||isNaN(a=parseInt(t.slice(1),16))||(4===t.length?(o=(3840&a)>>4,o|=o>>4,s=240&a,s|=s>>4,l=15&a,l|=l<<4):7===t.length&&(o=(16711680&a)>>16,s=(65280&a)>>8,l=255&a)),e(o,s,l))}function he(t,e,r){var n,i,a=Math.min(t/=255,e/=255,r/=255),o=Math.max(t,e,r),s=o-a,l=(o+a)/2;return s?(i=l<.5?s/(o+a):s/(2-o-a),n=t==o?(e-r)/s+(e0&&l<1?0:n),new Ut(n,i,l)}function fe(t,e,r){var n=ne((.4124564*(t=pe(t))+.3575761*(e=pe(e))+.1804375*(r=pe(r)))/Jt),i=ne((.2126729*t+.7151522*e+.072175*r)/Kt);return Xt(116*i-16,500*(n-i),200*(i-ne((.0193339*t+.119192*e+.9503041*r)/Qt)))}function pe(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function de(t){var e=parseFloat(t);return"%"===t.charAt(t.length-1)?Math.round(2.55*e):e}le.brighter=function(t){t=Math.pow(.7,arguments.length?t:1);var e=this.r,r=this.g,n=this.b,i=30;return e||r||n?(e&&e=200&&e<300||304===e){try{t=i.call(o,u)}catch(t){return void s.error.call(o,t)}s.load.call(o,t)}else s.error.call(o,u)}return!this.XDomainRequest||"withCredentials"in u||!/^(http(s)?:)?\/\//.test(e)||(u=new XDomainRequest),"onload"in u?u.onload=u.onerror=h:u.onreadystatechange=function(){u.readyState>3&&h()},u.onprogress=function(e){var r=t.event;t.event=e;try{s.progress.call(o,u)}finally{t.event=r}},o.header=function(t,e){return t=(t+"").toLowerCase(),arguments.length<2?l[t]:(null==e?delete l[t]:l[t]=e+"",o)},o.mimeType=function(t){return arguments.length?(r=null==t?null:t+"",o):r},o.responseType=function(t){return arguments.length?(c=t,o):c},o.response=function(t){return i=t,o},["get","post"].forEach(function(t){o[t]=function(){return o.send.apply(o,[t].concat(n(arguments)))}}),o.send=function(t,n,i){if(2===arguments.length&&"function"==typeof n&&(i=n,n=null),u.open(t,e,!0),null==r||"accept"in l||(l.accept=r+",*/*"),u.setRequestHeader)for(var a in l)u.setRequestHeader(a,l[a]);return null!=r&&u.overrideMimeType&&u.overrideMimeType(r),null!=c&&(u.responseType=c),null!=i&&o.on("error",i).on("load",function(t){i(null,t)}),s.beforesend.call(o,u),u.send(null==n?null:n),o},o.abort=function(){return u.abort(),o},t.rebind(o,s,"on"),null==a?o:o.get(function(t){return 1===t.length?function(e,r){t(null==e?r:null)}:t}(a))}ge.forEach(function(t,e){ge.set(t,oe(e))}),t.functor=ve,t.xhr=me(z),t.dsv=function(t,e){var r=new RegExp('["'+t+"\n]"),n=t.charCodeAt(0);function i(t,r,n){arguments.length<3&&(n=r,r=null);var i=ye(t,e,null==r?a:o(r),n);return i.row=function(t){return arguments.length?i.response(null==(r=t)?a:o(t)):r},i}function a(t){return i.parse(t.responseText)}function o(t){return function(e){return i.parse(e.responseText,t)}}function s(e){return e.map(l).join(t)}function l(t){return r.test(t)?'"'+t.replace(/\"/g,'""')+'"':t}return i.parse=function(t,e){var r;return i.parseRows(t,function(t,n){if(r)return r(t,n-1);var i=new Function("d","return {"+t.map(function(t,e){return JSON.stringify(t)+": d["+e+"]"}).join(",")+"}");r=e?function(t,r){return e(i(t),r)}:i})},i.parseRows=function(t,e){var r,i,a={},o={},s=[],l=t.length,u=0,c=0;function h(){if(u>=l)return o;if(i)return i=!1,a;var e=u;if(34===t.charCodeAt(e)){for(var r=e;r++24?(isFinite(e)&&(clearTimeout(we),we=setTimeout(ke,e)),_e=0):(_e=1,Me(ke))}function Te(){for(var t=Date.now(),e=xe;e;)t>=e.t&&e.c(t-e.t)&&(e.c=null),e=e.n;return t}function Se(){for(var t,e=xe,r=1/0;e;)e.c?(e.t8?function(t){return t/r}:function(t){return t*r},symbol:t}});t.formatPrefix=function(e,r){var n=0;return(e=+e)&&(e<0&&(e*=-1),r&&(e=t.round(e,Ee(e,r))),n=1+Math.floor(1e-12+Math.log(e)/Math.LN10),n=Math.max(-24,Math.min(24,3*Math.floor((n-1)/3)))),Ce[8+n/3]};var Le=/(?:([^{])?([<>=^]))?([+\- ])?([$#])?(0)?(\d+)?(,)?(\.-?\d+)?([a-z%])?/i,ze=t.map({b:function(t){return t.toString(2)},c:function(t){return String.fromCharCode(t)},o:function(t){return t.toString(8)},x:function(t){return t.toString(16)},X:function(t){return t.toString(16).toUpperCase()},g:function(t,e){return t.toPrecision(e)},e:function(t,e){return t.toExponential(e)},f:function(t,e){return t.toFixed(e)},r:function(e,r){return(e=t.round(e,Ee(e,r))).toFixed(Math.max(0,Math.min(20,Ee(e*(1+1e-15),r))))}});function Pe(t){return t+""}var Ie=t.time={},De=Date;function Oe(){this._=new Date(arguments.length>1?Date.UTC.apply(this,arguments):arguments[0])}Oe.prototype={getDate:function(){return this._.getUTCDate()},getDay:function(){return this._.getUTCDay()},getFullYear:function(){return this._.getUTCFullYear()},getHours:function(){return this._.getUTCHours()},getMilliseconds:function(){return this._.getUTCMilliseconds()},getMinutes:function(){return this._.getUTCMinutes()},getMonth:function(){return this._.getUTCMonth()},getSeconds:function(){return this._.getUTCSeconds()},getTime:function(){return this._.getTime()},getTimezoneOffset:function(){return 0},valueOf:function(){return this._.valueOf()},setDate:function(){Re.setUTCDate.apply(this._,arguments)},setDay:function(){Re.setUTCDay.apply(this._,arguments)},setFullYear:function(){Re.setUTCFullYear.apply(this._,arguments)},setHours:function(){Re.setUTCHours.apply(this._,arguments)},setMilliseconds:function(){Re.setUTCMilliseconds.apply(this._,arguments)},setMinutes:function(){Re.setUTCMinutes.apply(this._,arguments)},setMonth:function(){Re.setUTCMonth.apply(this._,arguments)},setSeconds:function(){Re.setUTCSeconds.apply(this._,arguments)},setTime:function(){Re.setTime.apply(this._,arguments)}};var Re=Date.prototype;function Fe(t,e,r){function n(e){var r=t(e),n=a(r,1);return e-r1)for(;o68?1900:2e3),r+i[0].length):-1}function Je(t,e,r){return/^[+-]\d{4}$/.test(e=e.slice(r,r+5))?(t.Z=-e,r+5):-1}function Ke(t,e,r){je.lastIndex=0;var n=je.exec(e.slice(r,r+2));return n?(t.m=n[0]-1,r+n[0].length):-1}function Qe(t,e,r){je.lastIndex=0;var n=je.exec(e.slice(r,r+2));return n?(t.d=+n[0],r+n[0].length):-1}function $e(t,e,r){je.lastIndex=0;var n=je.exec(e.slice(r,r+3));return n?(t.j=+n[0],r+n[0].length):-1}function tr(t,e,r){je.lastIndex=0;var n=je.exec(e.slice(r,r+2));return n?(t.H=+n[0],r+n[0].length):-1}function er(t,e,r){je.lastIndex=0;var n=je.exec(e.slice(r,r+2));return n?(t.M=+n[0],r+n[0].length):-1}function rr(t,e,r){je.lastIndex=0;var n=je.exec(e.slice(r,r+2));return n?(t.S=+n[0],r+n[0].length):-1}function nr(t,e,r){je.lastIndex=0;var n=je.exec(e.slice(r,r+3));return n?(t.L=+n[0],r+n[0].length):-1}function ir(t){var e=t.getTimezoneOffset(),r=e>0?"-":"+",n=y(e)/60|0,i=y(e)%60;return r+Ue(n,"0",2)+Ue(i,"0",2)}function ar(t,e,r){Ve.lastIndex=0;var n=Ve.exec(e.slice(r,r+1));return n?r+n[0].length:-1}function or(t){for(var e=t.length,r=-1;++r0&&s>0&&(l+s+1>e&&(s=Math.max(1,e-l)),a.push(t.substring(r-=s,r+s)),!((l+=s+1)>e));)s=i[o=(o+1)%i.length];return a.reverse().join(n)}:z;return function(e){var n=Le.exec(e),i=n[1]||" ",s=n[2]||">",l=n[3]||"-",u=n[4]||"",c=n[5],h=+n[6],f=n[7],p=n[8],d=n[9],g=1,v="",m="",y=!1,x=!0;switch(p&&(p=+p.substring(1)),(c||"0"===i&&"="===s)&&(c=i="0",s="="),d){case"n":f=!0,d="g";break;case"%":g=100,m="%",d="f";break;case"p":g=100,m="%",d="r";break;case"b":case"o":case"x":case"X":"#"===u&&(v="0"+d.toLowerCase());case"c":x=!1;case"d":y=!0,p=0;break;case"s":g=-1,d="r"}"$"===u&&(v=a[0],m=a[1]),"r"!=d||p||(d="g"),null!=p&&("g"==d?p=Math.max(1,Math.min(21,p)):"e"!=d&&"f"!=d||(p=Math.max(0,Math.min(20,p)))),d=ze.get(d)||Pe;var b=c&&f;return function(e){var n=m;if(y&&e%1)return"";var a=e<0||0===e&&1/e<0?(e=-e,"-"):"-"===l?"":l;if(g<0){var u=t.formatPrefix(e,p);e=u.scale(e),n=u.symbol+m}else e*=g;var _,w,M=(e=d(e,p)).lastIndexOf(".");if(M<0){var A=x?e.lastIndexOf("e"):-1;A<0?(_=e,w=""):(_=e.substring(0,A),w=e.substring(A))}else _=e.substring(0,M),w=r+e.substring(M+1);!c&&f&&(_=o(_,1/0));var k=v.length+_.length+w.length+(b?0:a.length),T=k"===s?T+a+e:"^"===s?T.substring(0,k>>=1)+a+e+T.substring(k):a+(b?e:T+e))+n}}}(e),timeFormat:function(e){var r=e.dateTime,n=e.date,i=e.time,a=e.periods,o=e.days,s=e.shortDays,l=e.months,u=e.shortMonths;function c(t){var e=t.length;function r(r){for(var n,i,a,o=[],s=-1,l=0;++s=u)return-1;if(37===(i=e.charCodeAt(s++))){if(o=e.charAt(s++),!(a=w[o in Ne?e.charAt(s++):o])||(n=a(t,r,n))<0)return-1}else if(i!=r.charCodeAt(n++))return-1}return n}c.utc=function(t){var e=c(t);function r(t){try{var r=new(De=Oe);return r._=t,e(r)}finally{De=Date}}return r.parse=function(t){try{De=Oe;var r=e.parse(t);return r&&r._}finally{De=Date}},r.toString=e.toString,r},c.multi=c.utc.multi=or;var f=t.map(),p=qe(o),d=He(o),g=qe(s),v=He(s),m=qe(l),y=He(l),x=qe(u),b=He(u);a.forEach(function(t,e){f.set(t.toLowerCase(),e)});var _={a:function(t){return s[t.getDay()]},A:function(t){return o[t.getDay()]},b:function(t){return u[t.getMonth()]},B:function(t){return l[t.getMonth()]},c:c(r),d:function(t,e){return Ue(t.getDate(),e,2)},e:function(t,e){return Ue(t.getDate(),e,2)},H:function(t,e){return Ue(t.getHours(),e,2)},I:function(t,e){return Ue(t.getHours()%12||12,e,2)},j:function(t,e){return Ue(1+Ie.dayOfYear(t),e,3)},L:function(t,e){return Ue(t.getMilliseconds(),e,3)},m:function(t,e){return Ue(t.getMonth()+1,e,2)},M:function(t,e){return Ue(t.getMinutes(),e,2)},p:function(t){return a[+(t.getHours()>=12)]},S:function(t,e){return Ue(t.getSeconds(),e,2)},U:function(t,e){return Ue(Ie.sundayOfYear(t),e,2)},w:function(t){return t.getDay()},W:function(t,e){return Ue(Ie.mondayOfYear(t),e,2)},x:c(n),X:c(i),y:function(t,e){return Ue(t.getFullYear()%100,e,2)},Y:function(t,e){return Ue(t.getFullYear()%1e4,e,4)},Z:ir,"%":function(){return"%"}},w={a:function(t,e,r){g.lastIndex=0;var n=g.exec(e.slice(r));return n?(t.w=v.get(n[0].toLowerCase()),r+n[0].length):-1},A:function(t,e,r){p.lastIndex=0;var n=p.exec(e.slice(r));return n?(t.w=d.get(n[0].toLowerCase()),r+n[0].length):-1},b:function(t,e,r){x.lastIndex=0;var n=x.exec(e.slice(r));return n?(t.m=b.get(n[0].toLowerCase()),r+n[0].length):-1},B:function(t,e,r){m.lastIndex=0;var n=m.exec(e.slice(r));return n?(t.m=y.get(n[0].toLowerCase()),r+n[0].length):-1},c:function(t,e,r){return h(t,_.c.toString(),e,r)},d:Qe,e:Qe,H:tr,I:tr,j:$e,L:nr,m:Ke,M:er,p:function(t,e,r){var n=f.get(e.slice(r,r+=2).toLowerCase());return null==n?-1:(t.p=n,r)},S:rr,U:We,w:Ge,W:Ye,x:function(t,e,r){return h(t,_.x.toString(),e,r)},X:function(t,e,r){return h(t,_.X.toString(),e,r)},y:Ze,Y:Xe,Z:Je,"%":ar};return c}(e)}};var sr=t.locale({decimal:".",thousands:",",grouping:[3],currency:["$",""],dateTime:"%a %b %e %X %Y",date:"%m/%d/%Y",time:"%H:%M:%S",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});function lr(){}t.format=sr.numberFormat,t.geo={},lr.prototype={s:0,t:0,add:function(t){cr(t,this.t,ur),cr(ur.s,this.s,this),this.s?this.t+=ur.t:this.s=ur.t},reset:function(){this.s=this.t=0},valueOf:function(){return this.s}};var ur=new lr;function cr(t,e,r){var n=r.s=t+e,i=n-t,a=n-i;r.t=t-a+(e-i)}function hr(t,e){t&&pr.hasOwnProperty(t.type)&&pr[t.type](t,e)}t.geo.stream=function(t,e){t&&fr.hasOwnProperty(t.type)?fr[t.type](t,e):hr(t,e)};var fr={Feature:function(t,e){hr(t.geometry,e)},FeatureCollection:function(t,e){for(var r=t.features,n=-1,i=r.length;++n=0?1:-1,s=o*a,l=Math.cos(e),u=Math.sin(e),c=i*u,h=n*l+c*Math.cos(s),f=c*o*Math.sin(s);Er.add(Math.atan2(f,h)),r=t,n=l,i=u}Cr.point=function(o,s){Cr.point=a,r=(t=o)*Ct,n=Math.cos(s=(e=s)*Ct/2+kt/4),i=Math.sin(s)},Cr.lineEnd=function(){a(t,e)}}function zr(t){var e=t[0],r=t[1],n=Math.cos(r);return[n*Math.cos(e),n*Math.sin(e),Math.sin(r)]}function Pr(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]}function Ir(t,e){return[t[1]*e[2]-t[2]*e[1],t[2]*e[0]-t[0]*e[2],t[0]*e[1]-t[1]*e[0]]}function Dr(t,e){t[0]+=e[0],t[1]+=e[1],t[2]+=e[2]}function Or(t,e){return[t[0]*e,t[1]*e,t[2]*e]}function Rr(t){var e=Math.sqrt(t[0]*t[0]+t[1]*t[1]+t[2]*t[2]);t[0]/=e,t[1]/=e,t[2]/=e}function Fr(t){return[Math.atan2(t[1],t[0]),Dt(t[2])]}function Br(t,e){return y(t[0]-e[0])Mt?i=90:u<-Mt&&(r=-90),h[0]=e,h[1]=n}};function p(t,a){c.push(h=[e=t,n=t]),ai&&(i=a)}function d(t,o){var s=zr([t*Ct,o*Ct]);if(l){var u=Ir(l,s),c=Ir([u[1],-u[0],0],u);Rr(c),c=Fr(c);var h=t-a,f=h>0?1:-1,d=c[0]*Lt*f,g=y(h)>180;if(g^(f*ai&&(i=v);else if(g^(f*a<(d=(d+360)%360-180)&&di&&(i=o);g?t_(e,n)&&(n=t):_(t,n)>_(e,n)&&(e=t):n>=e?(tn&&(n=t)):t>a?_(e,t)>_(e,n)&&(n=t):_(t,n)>_(e,n)&&(e=t)}else p(t,o);l=s,a=t}function g(){f.point=d}function v(){h[0]=e,h[1]=n,f.point=p,l=null}function m(t,e){if(l){var r=t-a;u+=y(r)>180?r+(r>0?360:-360):r}else o=t,s=e;Cr.point(t,e),d(t,e)}function x(){Cr.lineStart()}function b(){m(o,s),Cr.lineEnd(),y(u)>Mt&&(e=-(n=180)),h[0]=e,h[1]=n,l=null}function _(t,e){return(e-=t)<0?e+360:e}function w(t,e){return t[0]-e[0]}function M(t,e){return e[0]<=e[1]?e[0]<=t&&t<=e[1]:t_(g[0],g[1])&&(g[1]=p[1]),_(p[0],g[1])>_(g[0],g[1])&&(g[0]=p[0])):s.push(g=p);for(var l,u,p,d=-1/0,g=(o=0,s[u=s.length-1]);o<=u;g=p,++o)p=s[o],(l=_(g[1],p[0]))>d&&(d=l,e=p[0],n=g[1])}return c=h=null,e===1/0||r===1/0?[[NaN,NaN],[NaN,NaN]]:[[e,r],[n,i]]}}(),t.geo.centroid=function(e){mr=yr=xr=br=_r=wr=Mr=Ar=kr=Tr=Sr=0,t.geo.stream(e,Nr);var r=kr,n=Tr,i=Sr,a=r*r+n*n+i*i;return a=0;--s)i.point((h=c[s])[0],h[1]);else n(p.x,p.p.x,-1,i);p=p.p}c=(p=p.o).z,d=!d}while(!p.v);i.lineEnd()}}}function Xr(t){if(e=t.length){for(var e,r,n=0,i=t[0];++n=0?1:-1,M=w*_,A=M>kt,k=d*x;if(Er.add(Math.atan2(k*w*Math.sin(M),g*b+k*Math.cos(M))),a+=A?_+w*Tt:_,A^f>=r^m>=r){var T=Ir(zr(h),zr(t));Rr(T);var S=Ir(i,T);Rr(S);var E=(A^_>=0?-1:1)*Dt(S[2]);(n>E||n===E&&(T[0]||T[1]))&&(o+=A^_>=0?1:-1)}if(!v++)break;f=m,d=x,g=b,h=t}}return(a<-Mt||a0){for(x||(o.polygonStart(),x=!0),o.lineStart();++a1&&2&e&&r.push(r.pop().concat(r.shift())),s.push(r.filter(Kr))}return c}}function Kr(t){return t.length>1}function Qr(){var t,e=[];return{lineStart:function(){e.push(t=[])},point:function(e,r){t.push([e,r])},lineEnd:O,buffer:function(){var r=e;return e=[],t=null,r},rejoin:function(){e.length>1&&e.push(e.pop().concat(e.shift()))}}}function $r(t,e){return((t=t.x)[0]<0?t[1]-Et-Mt:Et-t[1])-((e=e.x)[0]<0?e[1]-Et-Mt:Et-e[1])}var tn=Jr(Wr,function(t){var e,r=NaN,n=NaN,i=NaN;return{lineStart:function(){t.lineStart(),e=1},point:function(a,o){var s=a>0?kt:-kt,l=y(a-r);y(l-kt)0?Et:-Et),t.point(i,n),t.lineEnd(),t.lineStart(),t.point(s,n),t.point(a,n),e=0):i!==s&&l>=kt&&(y(r-i)Mt?Math.atan((Math.sin(e)*(a=Math.cos(n))*Math.sin(r)-Math.sin(n)*(i=Math.cos(e))*Math.sin(t))/(i*a*o)):(e+n)/2}(r,n,a,o),t.point(i,n),t.lineEnd(),t.lineStart(),t.point(s,n),e=0),t.point(r=a,n=o),i=s},lineEnd:function(){t.lineEnd(),r=n=NaN},clean:function(){return 2-e}}},function(t,e,r,n){var i;if(null==t)i=r*Et,n.point(-kt,i),n.point(0,i),n.point(kt,i),n.point(kt,0),n.point(kt,-i),n.point(0,-i),n.point(-kt,-i),n.point(-kt,0),n.point(-kt,i);else if(y(t[0]-e[0])>Mt){var a=t[0]0)){if(a/=f,f<0){if(a0){if(a>h)return;a>c&&(c=a)}if(a=r-l,f||!(a<0)){if(a/=f,f<0){if(a>h)return;a>c&&(c=a)}else if(f>0){if(a0)){if(a/=p,p<0){if(a0){if(a>h)return;a>c&&(c=a)}if(a=n-u,p||!(a<0)){if(a/=p,p<0){if(a>h)return;a>c&&(c=a)}else if(p>0){if(a0&&(i.a={x:l+c*f,y:u+c*p}),h<1&&(i.b={x:l+h*f,y:u+h*p}),i}}}}}}var rn=1e9;function nn(e,r,n,i){return function(l){var u,c,h,f,p,d,g,v,m,y,x,b=l,_=Qr(),w=en(e,r,n,i),M={point:T,lineStart:function(){M.point=S,c&&c.push(h=[]);y=!0,m=!1,g=v=NaN},lineEnd:function(){u&&(S(f,p),d&&m&&_.rejoin(),u.push(_.buffer()));M.point=T,m&&l.lineEnd()},polygonStart:function(){l=_,u=[],c=[],x=!0},polygonEnd:function(){l=b,u=t.merge(u);var r=function(t){for(var e=0,r=c.length,n=t[1],i=0;in&&Pt(u,a,t)>0&&++e:a[1]<=n&&Pt(u,a,t)<0&&--e,u=a;return 0!==e}([e,i]),n=x&&r,a=u.length;(n||a)&&(l.polygonStart(),n&&(l.lineStart(),A(null,null,1,l),l.lineEnd()),a&&Yr(u,o,r,A,l),l.polygonEnd()),u=c=h=null}};function A(t,o,l,u){var c=0,h=0;if(null==t||(c=a(t,l))!==(h=a(o,l))||s(t,o)<0^l>0)do{u.point(0===c||3===c?e:n,c>1?i:r)}while((c=(c+l+4)%4)!==h);else u.point(o[0],o[1])}function k(t,a){return e<=t&&t<=n&&r<=a&&a<=i}function T(t,e){k(t,e)&&l.point(t,e)}function S(t,e){var r=k(t=Math.max(-rn,Math.min(rn,t)),e=Math.max(-rn,Math.min(rn,e)));if(c&&h.push([t,e]),y)f=t,p=e,d=r,y=!1,r&&(l.lineStart(),l.point(t,e));else if(r&&m)l.point(t,e);else{var n={a:{x:g,y:v},b:{x:t,y:e}};w(n)?(m||(l.lineStart(),l.point(n.a.x,n.a.y)),l.point(n.b.x,n.b.y),r||l.lineEnd(),x=!1):r&&(l.lineStart(),l.point(t,e),x=!1)}g=t,v=e,m=r}return M};function a(t,i){return y(t[0]-e)0?0:3:y(t[0]-n)0?2:1:y(t[1]-r)0?1:0:i>0?3:2}function o(t,e){return s(t.x,e.x)}function s(t,e){var r=a(t,1),n=a(e,1);return r!==n?r-n:0===r?e[1]-t[1]:1===r?t[0]-e[0]:2===r?t[1]-e[1]:e[0]-t[0]}}function an(t){var e=0,r=kt/3,n=Sn(t),i=n(e,r);return i.parallels=function(t){return arguments.length?n(e=t[0]*kt/180,r=t[1]*kt/180):[e/kt*180,r/kt*180]},i}function on(t,e){var r=Math.sin(t),n=(r+Math.sin(e))/2,i=1+r*(2*n-r),a=Math.sqrt(i)/n;function o(t,e){var r=Math.sqrt(i-2*n*Math.sin(e))/n;return[r*Math.sin(t*=n),a-r*Math.cos(t)]}return o.invert=function(t,e){var r=a-e;return[Math.atan2(t,r)/n,Dt((i-(t*t+r*r)*n*n)/(2*n))]},o}t.geo.clipExtent=function(){var t,e,r,n,i,a,o={stream:function(t){return i&&(i.valid=!1),(i=a(t)).valid=!0,i},extent:function(s){return arguments.length?(a=nn(t=+s[0][0],e=+s[0][1],r=+s[1][0],n=+s[1][1]),i&&(i.valid=!1,i=null),o):[[t,e],[r,n]]}};return o.extent([[0,0],[960,500]])},(t.geo.conicEqualArea=function(){return an(on)}).raw=on,t.geo.albers=function(){return t.geo.conicEqualArea().rotate([96,0]).center([-.6,38.7]).parallels([29.5,45.5]).scale(1070)},t.geo.albersUsa=function(){var e,r,n,i,a=t.geo.albers(),o=t.geo.conicEqualArea().rotate([154,0]).center([-2,58.5]).parallels([55,65]),s=t.geo.conicEqualArea().rotate([157,0]).center([-3,19.9]).parallels([8,18]),l={point:function(t,r){e=[t,r]}};function u(t){var a=t[0],o=t[1];return e=null,r(a,o),e||(n(a,o),e)||i(a,o),e}return u.invert=function(t){var e=a.scale(),r=a.translate(),n=(t[0]-r[0])/e,i=(t[1]-r[1])/e;return(i>=.12&&i<.234&&n>=-.425&&n<-.214?o:i>=.166&&i<.234&&n>=-.214&&n<-.115?s:a).invert(t)},u.stream=function(t){var e=a.stream(t),r=o.stream(t),n=s.stream(t);return{point:function(t,i){e.point(t,i),r.point(t,i),n.point(t,i)},sphere:function(){e.sphere(),r.sphere(),n.sphere()},lineStart:function(){e.lineStart(),r.lineStart(),n.lineStart()},lineEnd:function(){e.lineEnd(),r.lineEnd(),n.lineEnd()},polygonStart:function(){e.polygonStart(),r.polygonStart(),n.polygonStart()},polygonEnd:function(){e.polygonEnd(),r.polygonEnd(),n.polygonEnd()}}},u.precision=function(t){return arguments.length?(a.precision(t),o.precision(t),s.precision(t),u):a.precision()},u.scale=function(t){return arguments.length?(a.scale(t),o.scale(.35*t),s.scale(t),u.translate(a.translate())):a.scale()},u.translate=function(t){if(!arguments.length)return a.translate();var e=a.scale(),c=+t[0],h=+t[1];return r=a.translate(t).clipExtent([[c-.455*e,h-.238*e],[c+.455*e,h+.238*e]]).stream(l).point,n=o.translate([c-.307*e,h+.201*e]).clipExtent([[c-.425*e+Mt,h+.12*e+Mt],[c-.214*e-Mt,h+.234*e-Mt]]).stream(l).point,i=s.translate([c-.205*e,h+.212*e]).clipExtent([[c-.214*e+Mt,h+.166*e+Mt],[c-.115*e-Mt,h+.234*e-Mt]]).stream(l).point,u},u.scale(1070)};var sn,ln,un,cn,hn,fn,pn={point:O,lineStart:O,lineEnd:O,polygonStart:function(){ln=0,pn.lineStart=dn},polygonEnd:function(){pn.lineStart=pn.lineEnd=pn.point=O,sn+=y(ln/2)}};function dn(){var t,e,r,n;function i(t,e){ln+=n*t-r*e,r=t,n=e}pn.point=function(a,o){pn.point=i,t=r=a,e=n=o},pn.lineEnd=function(){i(t,e)}}var gn={point:function(t,e){thn&&(hn=t);efn&&(fn=e)},lineStart:O,lineEnd:O,polygonStart:O,polygonEnd:O};function vn(t){return"m0,"+t+"a"+t+","+t+" 0 1,1 0,"+-2*t+"a"+t+","+t+" 0 1,1 0,"+2*t+"z"}var mn,yn={point:xn,lineStart:bn,lineEnd:_n,polygonStart:function(){yn.lineStart=wn},polygonEnd:function(){yn.point=xn,yn.lineStart=bn,yn.lineEnd=_n}};function xn(t,e){xr+=t,br+=e,++_r}function bn(){var t,e;function r(r,n){var i=r-t,a=n-e,o=Math.sqrt(i*i+a*a);wr+=o*(t+r)/2,Mr+=o*(e+n)/2,Ar+=o,xn(t=r,e=n)}yn.point=function(n,i){yn.point=r,xn(t=n,e=i)}}function _n(){yn.point=xn}function wn(){var t,e,r,n;function i(t,e){var i=t-r,a=e-n,o=Math.sqrt(i*i+a*a);wr+=o*(r+t)/2,Mr+=o*(n+e)/2,Ar+=o,kr+=(o=n*t-r*e)*(r+t),Tr+=o*(n+e),Sr+=3*o,xn(r=t,n=e)}yn.point=function(a,o){yn.point=i,xn(t=r=a,e=n=o)},yn.lineEnd=function(){i(t,e)}}function Mn(t){var e=.5,r=Math.cos(30*Ct),n=16;function i(e){return(n?function(e){var r,i,o,s,l,u,c,h,f,p,d,g,v={point:m,lineStart:y,lineEnd:b,polygonStart:function(){e.polygonStart(),v.lineStart=_},polygonEnd:function(){e.polygonEnd(),v.lineStart=y}};function m(r,n){r=t(r,n),e.point(r[0],r[1])}function y(){h=NaN,v.point=x,e.lineStart()}function x(r,i){var o=zr([r,i]),s=t(r,i);a(h,f,c,p,d,g,h=s[0],f=s[1],c=r,p=o[0],d=o[1],g=o[2],n,e),e.point(h,f)}function b(){v.point=m,e.lineEnd()}function _(){y(),v.point=w,v.lineEnd=M}function w(t,e){x(r=t,e),i=h,o=f,s=p,l=d,u=g,v.point=x}function M(){a(h,f,c,p,d,g,i,o,r,s,l,u,n,e),v.lineEnd=b,b()}return v}:function(e){return kn(e,function(r,n){r=t(r,n),e.point(r[0],r[1])})})(e)}function a(n,i,o,s,l,u,c,h,f,p,d,g,v,m){var x=c-n,b=h-i,_=x*x+b*b;if(_>4*e&&v--){var w=s+p,M=l+d,A=u+g,k=Math.sqrt(w*w+M*M+A*A),T=Math.asin(A/=k),S=y(y(A)-1)e||y((x*z+b*P)/_-.5)>.3||s*p+l*d+u*g0&&16,i):Math.sqrt(e)},i}function An(t){this.stream=t}function kn(t,e){return{point:e,sphere:function(){t.sphere()},lineStart:function(){t.lineStart()},lineEnd:function(){t.lineEnd()},polygonStart:function(){t.polygonStart()},polygonEnd:function(){t.polygonEnd()}}}function Tn(t){return Sn(function(){return t})()}function Sn(e){var r,n,i,a,o,s,l=Mn(function(t,e){return[(t=r(t,e))[0]*u+a,o-t[1]*u]}),u=150,c=480,h=250,f=0,p=0,d=0,g=0,v=0,m=tn,x=z,b=null,_=null;function w(t){return[(t=i(t[0]*Ct,t[1]*Ct))[0]*u+a,o-t[1]*u]}function M(t){return(t=i.invert((t[0]-a)/u,(o-t[1])/u))&&[t[0]*Lt,t[1]*Lt]}function A(){i=Gr(n=zn(d,g,v),r);var t=r(f,p);return a=c-t[0]*u,o=h+t[1]*u,k()}function k(){return s&&(s.valid=!1,s=null),w}return w.stream=function(t){return s&&(s.valid=!1),(s=En(m(n,l(x(t))))).valid=!0,s},w.clipAngle=function(t){return arguments.length?(m=null==t?(b=t,tn):function(t){var e=Math.cos(t),r=e>0,n=y(e)>Mt;return Jr(i,function(t){var e,s,l,u,c;return{lineStart:function(){u=l=!1,c=1},point:function(h,f){var p,d=[h,f],g=i(h,f),v=r?g?0:o(h,f):g?o(h+(h<0?kt:-kt),f):0;if(!e&&(u=l=g)&&t.lineStart(),g!==l&&(p=a(e,d),(Br(e,p)||Br(d,p))&&(d[0]+=Mt,d[1]+=Mt,g=i(d[0],d[1]))),g!==l)c=0,g?(t.lineStart(),p=a(d,e),t.point(p[0],p[1])):(p=a(e,d),t.point(p[0],p[1]),t.lineEnd()),e=p;else if(n&&e&&r^g){var m;v&s||!(m=a(d,e,!0))||(c=0,r?(t.lineStart(),t.point(m[0][0],m[0][1]),t.point(m[1][0],m[1][1]),t.lineEnd()):(t.point(m[1][0],m[1][1]),t.lineEnd(),t.lineStart(),t.point(m[0][0],m[0][1])))}!g||e&&Br(e,d)||t.point(d[0],d[1]),e=d,l=g,s=v},lineEnd:function(){l&&t.lineEnd(),e=null},clean:function(){return c|(u&&l)<<1}}},On(t,6*Ct),r?[0,-t]:[-kt,t-kt]);function i(t,r){return Math.cos(t)*Math.cos(r)>e}function a(t,r,n){var i=[1,0,0],a=Ir(zr(t),zr(r)),o=Pr(a,a),s=a[0],l=o-s*s;if(!l)return!n&&t;var u=e*o/l,c=-e*s/l,h=Ir(i,a),f=Or(i,u);Dr(f,Or(a,c));var p=h,d=Pr(f,p),g=Pr(p,p),v=d*d-g*(Pr(f,f)-1);if(!(v<0)){var m=Math.sqrt(v),x=Or(p,(-d-m)/g);if(Dr(x,f),x=Fr(x),!n)return x;var b,_=t[0],w=r[0],M=t[1],A=r[1];w<_&&(b=_,_=w,w=b);var k=w-_,T=y(k-kt)0^x[1]<(y(x[0]-_)kt^(_<=x[0]&&x[0]<=w)){var S=Or(p,(-d+m)/g);return Dr(S,f),[x,Fr(S)]}}}function o(e,n){var i=r?t:kt-t,a=0;return e<-i?a|=1:e>i&&(a|=2),n<-i?a|=4:n>i&&(a|=8),a}}((b=+t)*Ct),k()):b},w.clipExtent=function(t){return arguments.length?(_=t,x=t?nn(t[0][0],t[0][1],t[1][0],t[1][1]):z,k()):_},w.scale=function(t){return arguments.length?(u=+t,A()):u},w.translate=function(t){return arguments.length?(c=+t[0],h=+t[1],A()):[c,h]},w.center=function(t){return arguments.length?(f=t[0]%360*Ct,p=t[1]%360*Ct,A()):[f*Lt,p*Lt]},w.rotate=function(t){return arguments.length?(d=t[0]%360*Ct,g=t[1]%360*Ct,v=t.length>2?t[2]%360*Ct:0,A()):[d*Lt,g*Lt,v*Lt]},t.rebind(w,l,"precision"),function(){return r=e.apply(this,arguments),w.invert=r.invert&&M,A()}}function En(t){return kn(t,function(e,r){t.point(e*Ct,r*Ct)})}function Cn(t,e){return[t,e]}function Ln(t,e){return[t>kt?t-Tt:t<-kt?t+Tt:t,e]}function zn(t,e,r){return t?e||r?Gr(In(t),Dn(e,r)):In(t):e||r?Dn(e,r):Ln}function Pn(t){return function(e,r){return[(e+=t)>kt?e-Tt:e<-kt?e+Tt:e,r]}}function In(t){var e=Pn(t);return e.invert=Pn(-t),e}function Dn(t,e){var r=Math.cos(t),n=Math.sin(t),i=Math.cos(e),a=Math.sin(e);function o(t,e){var o=Math.cos(e),s=Math.cos(t)*o,l=Math.sin(t)*o,u=Math.sin(e),c=u*r+s*n;return[Math.atan2(l*i-c*a,s*r-u*n),Dt(c*i+l*a)]}return o.invert=function(t,e){var o=Math.cos(e),s=Math.cos(t)*o,l=Math.sin(t)*o,u=Math.sin(e),c=u*i-l*a;return[Math.atan2(l*i+u*a,s*r+c*n),Dt(c*r-s*n)]},o}function On(t,e){var r=Math.cos(t),n=Math.sin(t);return function(i,a,o,s){var l=o*e;null!=i?(i=Rn(r,i),a=Rn(r,a),(o>0?ia)&&(i+=o*Tt)):(i=t+o*Tt,a=t-.5*l);for(var u,c=i;o>0?c>a:c2?t[2]*Ct:0),e.invert=function(e){return(e=t.invert(e[0]*Ct,e[1]*Ct))[0]*=Lt,e[1]*=Lt,e},e},Ln.invert=Cn,t.geo.circle=function(){var t,e,r=[0,0],n=6;function i(){var t="function"==typeof r?r.apply(this,arguments):r,n=zn(-t[0]*Ct,-t[1]*Ct,0).invert,i=[];return e(null,null,1,{point:function(t,e){i.push(t=n(t,e)),t[0]*=Lt,t[1]*=Lt}}),{type:"Polygon",coordinates:[i]}}return i.origin=function(t){return arguments.length?(r=t,i):r},i.angle=function(r){return arguments.length?(e=On((t=+r)*Ct,n*Ct),i):t},i.precision=function(r){return arguments.length?(e=On(t*Ct,(n=+r)*Ct),i):n},i.angle(90)},t.geo.distance=function(t,e){var r,n=(e[0]-t[0])*Ct,i=t[1]*Ct,a=e[1]*Ct,o=Math.sin(n),s=Math.cos(n),l=Math.sin(i),u=Math.cos(i),c=Math.sin(a),h=Math.cos(a);return Math.atan2(Math.sqrt((r=h*o)*r+(r=u*c-l*h*s)*r),l*c+u*h*s)},t.geo.graticule=function(){var e,r,n,i,a,o,s,l,u,c,h,f,p=10,d=p,g=90,v=360,m=2.5;function x(){return{type:"MultiLineString",coordinates:b()}}function b(){return t.range(Math.ceil(i/g)*g,n,g).map(h).concat(t.range(Math.ceil(l/v)*v,s,v).map(f)).concat(t.range(Math.ceil(r/p)*p,e,p).filter(function(t){return y(t%g)>Mt}).map(u)).concat(t.range(Math.ceil(o/d)*d,a,d).filter(function(t){return y(t%v)>Mt}).map(c))}return x.lines=function(){return b().map(function(t){return{type:"LineString",coordinates:t}})},x.outline=function(){return{type:"Polygon",coordinates:[h(i).concat(f(s).slice(1),h(n).reverse().slice(1),f(l).reverse().slice(1))]}},x.extent=function(t){return arguments.length?x.majorExtent(t).minorExtent(t):x.minorExtent()},x.majorExtent=function(t){return arguments.length?(i=+t[0][0],n=+t[1][0],l=+t[0][1],s=+t[1][1],i>n&&(t=i,i=n,n=t),l>s&&(t=l,l=s,s=t),x.precision(m)):[[i,l],[n,s]]},x.minorExtent=function(t){return arguments.length?(r=+t[0][0],e=+t[1][0],o=+t[0][1],a=+t[1][1],r>e&&(t=r,r=e,e=t),o>a&&(t=o,o=a,a=t),x.precision(m)):[[r,o],[e,a]]},x.step=function(t){return arguments.length?x.majorStep(t).minorStep(t):x.minorStep()},x.majorStep=function(t){return arguments.length?(g=+t[0],v=+t[1],x):[g,v]},x.minorStep=function(t){return arguments.length?(p=+t[0],d=+t[1],x):[p,d]},x.precision=function(t){return arguments.length?(m=+t,u=Fn(o,a,90),c=Bn(r,e,m),h=Fn(l,s,90),f=Bn(i,n,m),x):m},x.majorExtent([[-180,-90+Mt],[180,90-Mt]]).minorExtent([[-180,-80-Mt],[180,80+Mt]])},t.geo.greatArc=function(){var e,r,n=Nn,i=jn;function a(){return{type:"LineString",coordinates:[e||n.apply(this,arguments),r||i.apply(this,arguments)]}}return a.distance=function(){return t.geo.distance(e||n.apply(this,arguments),r||i.apply(this,arguments))},a.source=function(t){return arguments.length?(n=t,e="function"==typeof t?null:t,a):n},a.target=function(t){return arguments.length?(i=t,r="function"==typeof t?null:t,a):i},a.precision=function(){return arguments.length?a:0},a},t.geo.interpolate=function(t,e){return r=t[0]*Ct,n=t[1]*Ct,i=e[0]*Ct,a=e[1]*Ct,o=Math.cos(n),s=Math.sin(n),l=Math.cos(a),u=Math.sin(a),c=o*Math.cos(r),h=o*Math.sin(r),f=l*Math.cos(i),p=l*Math.sin(i),d=2*Math.asin(Math.sqrt(Rt(a-n)+o*l*Rt(i-r))),g=1/Math.sin(d),(v=d?function(t){var e=Math.sin(t*=d)*g,r=Math.sin(d-t)*g,n=r*c+e*f,i=r*h+e*p,a=r*s+e*u;return[Math.atan2(i,n)*Lt,Math.atan2(a,Math.sqrt(n*n+i*i))*Lt]}:function(){return[r*Lt,n*Lt]}).distance=d,v;var r,n,i,a,o,s,l,u,c,h,f,p,d,g,v},t.geo.length=function(e){return mn=0,t.geo.stream(e,Vn),mn};var Vn={sphere:O,point:O,lineStart:function(){var t,e,r;function n(n,i){var a=Math.sin(i*=Ct),o=Math.cos(i),s=y((n*=Ct)-t),l=Math.cos(s);mn+=Math.atan2(Math.sqrt((s=o*Math.sin(s))*s+(s=r*a-e*o*l)*s),e*a+r*o*l),t=n,e=a,r=o}Vn.point=function(i,a){t=i*Ct,e=Math.sin(a*=Ct),r=Math.cos(a),Vn.point=n},Vn.lineEnd=function(){Vn.point=Vn.lineEnd=O}},lineEnd:O,polygonStart:O,polygonEnd:O};function Un(t,e){function r(e,r){var n=Math.cos(e),i=Math.cos(r),a=t(n*i);return[a*i*Math.sin(e),a*Math.sin(r)]}return r.invert=function(t,r){var n=Math.sqrt(t*t+r*r),i=e(n),a=Math.sin(i),o=Math.cos(i);return[Math.atan2(t*a,n*o),Math.asin(n&&r*a/n)]},r}var qn=Un(function(t){return Math.sqrt(2/(1+t))},function(t){return 2*Math.asin(t/2)});(t.geo.azimuthalEqualArea=function(){return Tn(qn)}).raw=qn;var Hn=Un(function(t){var e=Math.acos(t);return e&&e/Math.sin(e)},z);function Gn(t,e){var r=Math.cos(t),n=function(t){return Math.tan(kt/4+t/2)},i=t===e?Math.sin(t):Math.log(r/Math.cos(e))/Math.log(n(e)/n(t)),a=r*Math.pow(n(t),i)/i;if(!i)return Xn;function o(t,e){a>0?e<-Et+Mt&&(e=-Et+Mt):e>Et-Mt&&(e=Et-Mt);var r=a/Math.pow(n(e),i);return[r*Math.sin(i*t),a-r*Math.cos(i*t)]}return o.invert=function(t,e){var r=a-e,n=zt(i)*Math.sqrt(t*t+r*r);return[Math.atan2(t,r)/i,2*Math.atan(Math.pow(a/n,1/i))-Et]},o}function Wn(t,e){var r=Math.cos(t),n=t===e?Math.sin(t):(r-Math.cos(e))/(e-t),i=r/n+t;if(y(n)1&&Pt(t[r[n-2]],t[r[n-1]],t[i])<=0;)--n;r[n++]=i}return r.slice(0,n)}function ri(t,e){return t[0]-e[0]||t[1]-e[1]}(t.geo.stereographic=function(){return Tn(Kn)}).raw=Kn,Qn.invert=function(t,e){return[-e,2*Math.atan(Math.exp(t))-Et]},(t.geo.transverseMercator=function(){var t=Zn(Qn),e=t.center,r=t.rotate;return t.center=function(t){return t?e([-t[1],t[0]]):[(t=e())[1],-t[0]]},t.rotate=function(t){return t?r([t[0],t[1],t.length>2?t[2]+90:90]):[(t=r())[0],t[1],t[2]-90]},r([0,0,90])}).raw=Qn,t.geom={},t.geom.hull=function(t){var e=$n,r=ti;if(arguments.length)return n(t);function n(t){if(t.length<3)return[];var n,i=ve(e),a=ve(r),o=t.length,s=[],l=[];for(n=0;n=0;--n)p.push(t[s[u[n]][2]]);for(n=+h;nMt)s=s.L;else{if(!((i=a-xi(s,o))>Mt)){n>-Mt?(e=s.P,r=s):i>-Mt?(e=s,r=s.N):e=r=s;break}if(!s.R){e=s;break}s=s.R}var l=di(t);if(ui.insert(e,l),e||r){if(e===r)return Mi(e),r=di(e.site),ui.insert(l,r),l.edge=r.edge=Ti(e.site,l.site),wi(e),void wi(r);if(r){Mi(e),Mi(r);var u=e.site,c=u.x,h=u.y,f=t.x-c,p=t.y-h,d=r.site,g=d.x-c,v=d.y-h,m=2*(f*v-p*g),y=f*f+p*p,x=g*g+v*v,b={x:(v*y-p*x)/m+c,y:(f*x-g*y)/m+h};Si(r.edge,u,d,b),l.edge=Ti(u,t,null,b),r.edge=Ti(t,d,null,b),wi(e),wi(r)}else l.edge=Ti(e.site,l.site)}}function yi(t,e){var r=t.site,n=r.x,i=r.y,a=i-e;if(!a)return n;var o=t.P;if(!o)return-1/0;var s=(r=o.site).x,l=r.y,u=l-e;if(!u)return s;var c=s-n,h=1/a-1/u,f=c/u;return h?(-f+Math.sqrt(f*f-2*h*(c*c/(-2*u)-l+u/2+i-a/2)))/h+n:(n+s)/2}function xi(t,e){var r=t.N;if(r)return yi(r,e);var n=t.site;return n.y===e?n.x:1/0}function bi(t){this.site=t,this.edges=[]}function _i(t,e){return e.angle-t.angle}function wi(t){var e=t.P,r=t.N;if(e&&r){var n=e.site,i=t.site,a=r.site;if(n!==a){var o=i.x,s=i.y,l=n.x-o,u=n.y-s,c=a.x-o,h=2*(l*(v=a.y-s)-u*c);if(!(h>=-At)){var f=l*l+u*u,p=c*c+v*v,d=(v*f-u*p)/h,g=(l*p-c*f)/h,v=g+s,m=pi.pop()||new function(){Li(this),this.x=this.y=this.arc=this.site=this.cy=null};m.arc=t,m.site=i,m.x=d+o,m.y=v+Math.sqrt(d*d+g*g),m.cy=v,t.circle=m;for(var y=null,x=hi._;x;)if(m.y=s)return;if(f>d){if(a){if(a.y>=u)return}else a={x:v,y:l};r={x:v,y:u}}else{if(a){if(a.y1)if(f>d){if(a){if(a.y>=u)return}else a={x:(l-i)/n,y:l};r={x:(u-i)/n,y:u}}else{if(a){if(a.y=s)return}else a={x:o,y:n*o+i};r={x:s,y:n*s+i}}else{if(a){if(a.xMt||y(i-r)>Mt)&&(s.splice(o,0,new Ei((m=a.site,x=c,b=y(n-h)Mt?{x:h,y:y(e-h)Mt?{x:y(r-d)Mt?{x:f,y:y(e-f)Mt?{x:y(r-p)=r&&u.x<=i&&u.y>=n&&u.y<=o?[[r,o],[i,o],[i,n],[r,n]]:[]).point=t[s]}),e}function s(t){return t.map(function(t,e){return{x:Math.round(n(t,e)/Mt)*Mt,y:Math.round(i(t,e)/Mt)*Mt,i:e}})}return o.links=function(t){return Di(s(t)).edges.filter(function(t){return t.l&&t.r}).map(function(e){return{source:t[e.l.i],target:t[e.r.i]}})},o.triangles=function(t){var e=[];return Di(s(t)).cells.forEach(function(r,n){for(var i,a,o,s,l=r.site,u=r.edges.sort(_i),c=-1,h=u.length,f=u[h-1].edge,p=f.l===l?f.r:f.l;++ca&&(i=e.slice(a,i),s[o]?s[o]+=i:s[++o]=i),(r=r[0])===(n=n[0])?s[o]?s[o]+=n:s[++o]=n:(s[++o]=null,l.push({i:o,x:Vi(r,n)})),a=Hi.lastIndex;return ag&&(g=l.x),l.y>v&&(v=l.y),u.push(l.x),c.push(l.y);else for(h=0;hg&&(g=b),_>v&&(v=_),u.push(b),c.push(_)}var w=g-p,M=v-d;function A(t,e,r,n,i,a,o,s){if(!isNaN(r)&&!isNaN(n))if(t.leaf){var l=t.x,u=t.y;if(null!=l)if(y(l-r)+y(u-n)<.01)k(t,e,r,n,i,a,o,s);else{var c=t.point;t.x=t.y=t.point=null,k(t,c,l,u,i,a,o,s),k(t,e,r,n,i,a,o,s)}else t.x=r,t.y=n,t.point=e}else k(t,e,r,n,i,a,o,s)}function k(t,e,r,n,i,a,o,s){var l=.5*(i+o),u=.5*(a+s),c=r>=l,h=n>=u,f=h<<1|c;t.leaf=!1,t=t.nodes[f]||(t.nodes[f]={leaf:!0,nodes:[],point:null,x:null,y:null,add:function(t){A(T,t,+m(t,++h),+x(t,h),p,d,g,v)}}),c?i=l:o=l,h?a=u:s=u,A(t,e,r,n,i,a,o,s)}w>M?v=d+w:g=p+M;var T={leaf:!0,nodes:[],point:null,x:null,y:null,add:function(t){A(T,t,+m(t,++h),+x(t,h),p,d,g,v)}};if(T.visit=function(t){!function t(e,r,n,i,a,o){if(!e(r,n,i,a,o)){var s=.5*(n+a),l=.5*(i+o),u=r.nodes;u[0]&&t(e,u[0],n,i,s,l),u[1]&&t(e,u[1],s,i,a,l),u[2]&&t(e,u[2],n,l,s,o),u[3]&&t(e,u[3],s,l,a,o)}}(t,T,p,d,g,v)},T.find=function(t){return function(t,e,r,n,i,a,o){var s,l=1/0;return function t(u,c,h,f,p){if(!(c>a||h>o||f=_)<<1|e>=b,M=w+4;w=0&&!(n=t.interpolators[i](e,r)););return n}function Wi(t,e){var r,n=[],i=[],a=t.length,o=e.length,s=Math.min(t.length,e.length);for(r=0;r=1)return 1;var e=t*t,r=e*t;return 4*(t<.5?r:3*(t-e)+r-.75)}function ea(t){return 1-Math.cos(t*Et)}function ra(t){return Math.pow(2,10*(t-1))}function na(t){return 1-Math.sqrt(1-t*t)}function ia(t){return t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375}function aa(t,e){return e-=t,function(r){return Math.round(t+e*r)}}function oa(t){var e,r,n,i=[t.a,t.b],a=[t.c,t.d],o=la(i),s=sa(i,a),l=la(((e=a)[0]+=(n=-s)*(r=i)[0],e[1]+=n*r[1],e))||0;i[0]*a[1]=0?t.slice(0,n):t,a=n>=0?t.slice(n+1):"in";return i=Xi.get(i)||Yi,a=Zi.get(a)||z,e=a(i.apply(null,r.call(arguments,1))),function(t){return t<=0?0:t>=1?1:e(t)}},t.interpolateHcl=function(e,r){e=t.hcl(e),r=t.hcl(r);var n=e.h,i=e.c,a=e.l,o=r.h-n,s=r.c-i,l=r.l-a;isNaN(s)&&(s=0,i=isNaN(i)?r.c:i);isNaN(o)?(o=0,n=isNaN(n)?r.h:n):o>180?o-=360:o<-180&&(o+=360);return function(t){return Yt(n+o*t,i+s*t,a+l*t)+""}},t.interpolateHsl=function(e,r){e=t.hsl(e),r=t.hsl(r);var n=e.h,i=e.s,a=e.l,o=r.h-n,s=r.s-i,l=r.l-a;isNaN(s)&&(s=0,i=isNaN(i)?r.s:i);isNaN(o)?(o=0,n=isNaN(n)?r.h:n):o>180?o-=360:o<-180&&(o+=360);return function(t){return Ht(n+o*t,i+s*t,a+l*t)+""}},t.interpolateLab=function(e,r){e=t.lab(e),r=t.lab(r);var n=e.l,i=e.a,a=e.b,o=r.l-n,s=r.a-i,l=r.b-a;return function(t){return te(n+o*t,i+s*t,a+l*t)+""}},t.interpolateRound=aa,t.transform=function(e){var r=i.createElementNS(t.ns.prefix.svg,"g");return(t.transform=function(t){if(null!=t){r.setAttribute("transform",t);var e=r.transform.baseVal.consolidate()}return new oa(e?e.matrix:ua)})(e)},oa.prototype.toString=function(){return"translate("+this.translate+")rotate("+this.rotate+")skewX("+this.skew+")scale("+this.scale+")"};var ua={a:1,b:0,c:0,d:1,e:0,f:0};function ca(t){return t.length?t.pop()+",":""}function ha(e,r){var n=[],i=[];return e=t.transform(e),r=t.transform(r),function(t,e,r,n){if(t[0]!==e[0]||t[1]!==e[1]){var i=r.push("translate(",null,",",null,")");n.push({i:i-4,x:Vi(t[0],e[0])},{i:i-2,x:Vi(t[1],e[1])})}else(e[0]||e[1])&&r.push("translate("+e+")")}(e.translate,r.translate,n,i),function(t,e,r,n){t!==e?(t-e>180?e+=360:e-t>180&&(t+=360),n.push({i:r.push(ca(r)+"rotate(",null,")")-2,x:Vi(t,e)})):e&&r.push(ca(r)+"rotate("+e+")")}(e.rotate,r.rotate,n,i),function(t,e,r,n){t!==e?n.push({i:r.push(ca(r)+"skewX(",null,")")-2,x:Vi(t,e)}):e&&r.push(ca(r)+"skewX("+e+")")}(e.skew,r.skew,n,i),function(t,e,r,n){if(t[0]!==e[0]||t[1]!==e[1]){var i=r.push(ca(r)+"scale(",null,",",null,")");n.push({i:i-4,x:Vi(t[0],e[0])},{i:i-2,x:Vi(t[1],e[1])})}else 1===e[0]&&1===e[1]||r.push(ca(r)+"scale("+e+")")}(e.scale,r.scale,n,i),e=r=null,function(t){for(var e,r=-1,a=i.length;++r0?n=t:(e.c=null,e.t=NaN,e=null,l.end({type:"end",alpha:n=0})):t>0&&(l.start({type:"start",alpha:n=t}),e=Ae(s.tick)),s):n},s.start=function(){var t,e,r,n=m.length,l=y.length,c=u[0],d=u[1];for(t=0;t=0;)r.push(i[n])}function ka(t,e){for(var r=[t],n=[];null!=(t=r.pop());)if(n.push(t),(a=t.children)&&(i=a.length))for(var i,a,o=-1;++o=0;)o.push(c=u[l]),c.parent=a,c.depth=a.depth+1;r&&(a.value=0),a.children=u}else r&&(a.value=+r.call(n,a,a.depth)||0),delete a.children;return ka(i,function(e){var n,i;t&&(n=e.children)&&n.sort(t),r&&(i=e.parent)&&(i.value+=e.value)}),s}return n.sort=function(e){return arguments.length?(t=e,n):t},n.children=function(t){return arguments.length?(e=t,n):e},n.value=function(t){return arguments.length?(r=t,n):r},n.revalue=function(t){return r&&(Aa(t,function(t){t.children&&(t.value=0)}),ka(t,function(t){var e;t.children||(t.value=+r.call(n,t,t.depth)||0),(e=t.parent)&&(e.value+=t.value)})),t},n},t.layout.partition=function(){var e=t.layout.hierarchy(),r=[1,1];function n(t,n){var i=e.call(this,t,n);return function t(e,r,n,i){var a=e.children;if(e.x=r,e.y=e.depth*i,e.dx=n,e.dy=i,a&&(o=a.length)){var o,s,l,u=-1;for(n=e.value?n/e.value:0;++us&&(s=n),o.push(n)}for(r=0;ri&&(n=r,i=e);return n}function Na(t){return t.reduce(ja,0)}function ja(t,e){return t+e[1]}function Va(t,e){return Ua(t,Math.ceil(Math.log(e.length)/Math.LN2+1))}function Ua(t,e){for(var r=-1,n=+t[0],i=(t[1]-n)/e,a=[];++r<=e;)a[r]=i*r+n;return a}function qa(e){return[t.min(e),t.max(e)]}function Ha(t,e){return t.value-e.value}function Ga(t,e){var r=t._pack_next;t._pack_next=e,e._pack_prev=t,e._pack_next=r,r._pack_prev=e}function Wa(t,e){t._pack_next=e,e._pack_prev=t}function Ya(t,e){var r=e.x-t.x,n=e.y-t.y,i=t.r+e.r;return.999*i*i>r*r+n*n}function Xa(t){if((e=t.children)&&(l=e.length)){var e,r,n,i,a,o,s,l,u=1/0,c=-1/0,h=1/0,f=-1/0;if(e.forEach(Za),(r=e[0]).x=-r.r,r.y=0,x(r),l>1&&((n=e[1]).x=n.r,n.y=0,x(n),l>2))for(Ka(r,n,i=e[2]),x(i),Ga(r,i),r._pack_prev=i,Ga(i,n),n=r._pack_next,a=3;a0)for(o=-1;++o=h[0]&&l<=h[1]&&((s=u[t.bisect(f,l,1,d)-1]).y+=g,s.push(a[o]));return u}return a.value=function(t){return arguments.length?(r=t,a):r},a.range=function(t){return arguments.length?(n=ve(t),a):n},a.bins=function(t){return arguments.length?(i="number"==typeof t?function(e){return Ua(e,t)}:ve(t),a):i},a.frequency=function(t){return arguments.length?(e=!!t,a):e},a},t.layout.pack=function(){var e,r=t.layout.hierarchy().sort(Ha),n=0,i=[1,1];function a(t,a){var o=r.call(this,t,a),s=o[0],l=i[0],u=i[1],c=null==e?Math.sqrt:"function"==typeof e?e:function(){return e};if(s.x=s.y=0,ka(s,function(t){t.r=+c(t.value)}),ka(s,Xa),n){var h=n*(e?1:Math.max(2*s.r/l,2*s.r/u))/2;ka(s,function(t){t.r+=h}),ka(s,Xa),ka(s,function(t){t.r-=h})}return function t(e,r,n,i){var a=e.children;e.x=r+=i*e.x;e.y=n+=i*e.y;e.r*=i;if(a)for(var o=-1,s=a.length;++op.x&&(p=t),t.depth>d.depth&&(d=t)});var g=r(f,p)/2-f.x,v=n[0]/(p.x+r(p,f)/2+g),m=n[1]/(d.depth||1);Aa(c,function(t){t.x=(t.x+g)*v,t.y=t.depth*m})}return u}function o(t){var e=t.children,n=t.parent.children,i=t.i?n[t.i-1]:null;if(e.length){!function(t){var e,r=0,n=0,i=t.children,a=i.length;for(;--a>=0;)(e=i[a]).z+=r,e.m+=r,r+=e.s+(n+=e.c)}(t);var a=(e[0].z+e[e.length-1].z)/2;i?(t.z=i.z+r(t._,i._),t.m=t.z-a):t.z=a}else i&&(t.z=i.z+r(t._,i._));t.parent.A=function(t,e,n){if(e){for(var i,a=t,o=t,s=e,l=a.parent.children[0],u=a.m,c=o.m,h=s.m,f=l.m;s=to(s),a=$a(a),s&&a;)l=$a(l),(o=to(o)).a=t,(i=s.z+h-a.z-u+r(s._,a._))>0&&(eo(ro(s,t,n),t,i),u+=i,c+=i),h+=s.m,u+=a.m,f+=l.m,c+=o.m;s&&!to(o)&&(o.t=s,o.m+=h-c),a&&!$a(l)&&(l.t=a,l.m+=u-f,n=t)}return n}(t,i,t.parent.A||n[0])}function s(t){t._.x=t.z+t.parent.m,t.m+=t.parent.m}function l(t){t.x*=n[0],t.y=t.depth*n[1]}return a.separation=function(t){return arguments.length?(r=t,a):r},a.size=function(t){return arguments.length?(i=null==(n=t)?l:null,a):i?null:n},a.nodeSize=function(t){return arguments.length?(i=null==(n=t)?null:l,a):i?n:null},Ma(a,e)},t.layout.cluster=function(){var e=t.layout.hierarchy().sort(null).value(null),r=Qa,n=[1,1],i=!1;function a(a,o){var s,l=e.call(this,a,o),u=l[0],c=0;ka(u,function(e){var n=e.children;n&&n.length?(e.x=function(t){return t.reduce(function(t,e){return t+e.x},0)/t.length}(n),e.y=function(e){return 1+t.max(e,function(t){return t.y})}(n)):(e.x=s?c+=r(e,s):0,e.y=0,s=e)});var h=function t(e){var r=e.children;return r&&r.length?t(r[0]):e}(u),f=function t(e){var r,n=e.children;return n&&(r=n.length)?t(n[r-1]):e}(u),p=h.x-r(h,f)/2,d=f.x+r(f,h)/2;return ka(u,i?function(t){t.x=(t.x-u.x)*n[0],t.y=(u.y-t.y)*n[1]}:function(t){t.x=(t.x-p)/(d-p)*n[0],t.y=(1-(u.y?t.y/u.y:1))*n[1]}),l}return a.separation=function(t){return arguments.length?(r=t,a):r},a.size=function(t){return arguments.length?(i=null==(n=t),a):i?null:n},a.nodeSize=function(t){return arguments.length?(i=null!=(n=t),a):i?n:null},Ma(a,e)},t.layout.treemap=function(){var e,r=t.layout.hierarchy(),n=Math.round,i=[1,1],a=null,o=no,s=!1,l="squarify",u=.5*(1+Math.sqrt(5));function c(t,e){for(var r,n,i=-1,a=t.length;++i0;)s.push(r=u[i-1]),s.area+=r.area,"squarify"!==l||(n=p(s,g))<=f?(u.pop(),f=n):(s.area-=s.pop().area,d(s,g,a,!1),g=Math.min(a.dx,a.dy),s.length=s.area=0,f=1/0);s.length&&(d(s,g,a,!0),s.length=s.area=0),e.forEach(h)}}function f(t){var e=t.children;if(e&&e.length){var r,n=o(t),i=e.slice(),a=[];for(c(i,n.dx*n.dy/t.value),a.area=0;r=i.pop();)a.push(r),a.area+=r.area,null!=r.z&&(d(a,r.z?n.dx:n.dy,n,!i.length),a.length=a.area=0);e.forEach(f)}}function p(t,e){for(var r,n=t.area,i=0,a=1/0,o=-1,s=t.length;++oi&&(i=r));return e*=e,(n*=n)?Math.max(e*i*u/n,n/(e*a*u)):1/0}function d(t,e,r,i){var a,o=-1,s=t.length,l=r.x,u=r.y,c=e?n(t.area/e):0;if(e==r.dx){for((i||c>r.dy)&&(c=r.dy);++or.dx)&&(c=r.dx);++o1);return t+e*r*Math.sqrt(-2*Math.log(i)/i)}},logNormal:function(){var e=t.random.normal.apply(t,arguments);return function(){return Math.exp(e())}},bates:function(e){var r=t.random.irwinHall(e);return function(){return r()/e}},irwinHall:function(t){return function(){for(var e=0,r=0;r2?ho:so,s=i?pa:fa;return a=t(e,r,s,n),o=t(r,e,s,Gi),l}function l(t){return a(t)}l.invert=function(t){return o(t)};l.domain=function(t){return arguments.length?(e=t.map(Number),s()):e};l.range=function(t){return arguments.length?(r=t,s()):r};l.rangeRound=function(t){return l.range(t).interpolate(aa)};l.clamp=function(t){return arguments.length?(i=t,s()):i};l.interpolate=function(t){return arguments.length?(n=t,s()):n};l.ticks=function(t){return vo(e,t)};l.tickFormat=function(t,r){return mo(e,t,r)};l.nice=function(t){return po(e,t),s()};l.copy=function(){return t(e,r,n,i)};return s()}([0,1],[0,1],Gi,!1)};var yo={s:1,g:1,p:1,r:1,e:1};function xo(t){return-Math.floor(Math.log(t)/Math.LN10+.01)}t.scale.log=function(){return function e(r,n,i,a){function o(t){return(i?Math.log(t<0?0:t):-Math.log(t>0?0:-t))/Math.log(n)}function s(t){return i?Math.pow(n,t):-Math.pow(n,-t)}function l(t){return r(o(t))}l.invert=function(t){return s(r.invert(t))};l.domain=function(t){return arguments.length?(i=t[0]>=0,r.domain((a=t.map(Number)).map(o)),l):a};l.base=function(t){return arguments.length?(n=+t,r.domain(a.map(o)),l):n};l.nice=function(){var t=lo(a.map(o),i?Math:_o);return r.domain(t),a=t.map(s),l};l.ticks=function(){var t=ao(a),e=[],r=t[0],l=t[1],u=Math.floor(o(r)),c=Math.ceil(o(l)),h=n%1?2:n;if(isFinite(c-u)){if(i){for(;u0;f--)e.push(s(u)*f);for(u=0;e[u]l;c--);e=e.slice(u,c)}return e};l.tickFormat=function(e,r){if(!arguments.length)return bo;arguments.length<2?r=bo:"function"!=typeof r&&(r=t.format(r));var i=Math.max(1,n*e/l.ticks().length);return function(t){var e=t/s(Math.round(o(t)));return e*n0?i[t-1]:r[0],th?0:1;if(u=St)return l(u,p)+(s?l(s,1-p):"")+"Z";var d,g,v,m,y,x,b,_,w,M,A,k,T=0,S=0,E=[];if((m=(+o.apply(this,arguments)||0)/2)&&(v=n===Eo?Math.sqrt(s*s+u*u):+n.apply(this,arguments),p||(S*=-1),u&&(S=Dt(v/u*Math.sin(m))),s&&(T=Dt(v/s*Math.sin(m)))),u){y=u*Math.cos(c+S),x=u*Math.sin(c+S),b=u*Math.cos(h-S),_=u*Math.sin(h-S);var C=Math.abs(h-c-2*S)<=kt?0:1;if(S&&Do(y,x,b,_)===p^C){var L=(c+h)/2;y=u*Math.cos(L),x=u*Math.sin(L),b=_=null}}else y=x=0;if(s){w=s*Math.cos(h-T),M=s*Math.sin(h-T),A=s*Math.cos(c+T),k=s*Math.sin(c+T);var z=Math.abs(c-h+2*T)<=kt?0:1;if(T&&Do(w,M,A,k)===1-p^z){var P=(c+h)/2;w=s*Math.cos(P),M=s*Math.sin(P),A=k=null}}else w=M=0;if(f>Mt&&(d=Math.min(Math.abs(u-s)/2,+r.apply(this,arguments)))>.001){g=s0?0:1}function Oo(t,e,r,n,i){var a=t[0]-e[0],o=t[1]-e[1],s=(i?n:-n)/Math.sqrt(a*a+o*o),l=s*o,u=-s*a,c=t[0]+l,h=t[1]+u,f=e[0]+l,p=e[1]+u,d=(c+f)/2,g=(h+p)/2,v=f-c,m=p-h,y=v*v+m*m,x=r-n,b=c*p-f*h,_=(m<0?-1:1)*Math.sqrt(Math.max(0,x*x*y-b*b)),w=(b*m-v*_)/y,M=(-b*v-m*_)/y,A=(b*m+v*_)/y,k=(-b*v+m*_)/y,T=w-d,S=M-g,E=A-d,C=k-g;return T*T+S*S>E*E+C*C&&(w=A,M=k),[[w-l,M-u],[w*r/x,M*r/x]]}function Ro(t){var e=$n,r=ti,n=Wr,i=Bo,a=i.key,o=.7;function s(a){var s,l=[],u=[],c=-1,h=a.length,f=ve(e),p=ve(r);function d(){l.push("M",i(t(u),o))}for(;++c1&&i.push("H",n[0]);return i.join("")},"step-before":jo,"step-after":Vo,basis:Ho,"basis-open":function(t){if(t.length<4)return Bo(t);var e,r=[],n=-1,i=t.length,a=[0],o=[0];for(;++n<3;)e=t[n],a.push(e[0]),o.push(e[1]);r.push(Go(Xo,a)+","+Go(Xo,o)),--n;for(;++n9&&(i=3*e/Math.sqrt(i),o[s]=i*r,o[s+1]=i*n));s=-1;for(;++s<=l;)i=(t[Math.min(l,s+1)][0]-t[Math.max(0,s-1)][0])/(6*(1+o[s]*o[s])),a.push([i||0,o[s]*i||0]);return a}(t))}});function Bo(t){return t.length>1?t.join("L"):t+"Z"}function No(t){return t.join("L")+"Z"}function jo(t){for(var e=0,r=t.length,n=t[0],i=[n[0],",",n[1]];++e1){s=e[1],a=t[l],l++,n+="C"+(i[0]+o[0])+","+(i[1]+o[1])+","+(a[0]-s[0])+","+(a[1]-s[1])+","+a[0]+","+a[1];for(var u=2;ukt)+",1 "+e}function l(t,e,r,n){return"Q 0,0 "+n}return a.radius=function(t){return arguments.length?(r=ve(t),a):r},a.source=function(e){return arguments.length?(t=ve(e),a):t},a.target=function(t){return arguments.length?(e=ve(t),a):e},a.startAngle=function(t){return arguments.length?(n=ve(t),a):n},a.endAngle=function(t){return arguments.length?(i=ve(t),a):i},a},t.svg.diagonal=function(){var t=Nn,e=jn,r=ts;function n(n,i){var a=t.call(this,n,i),o=e.call(this,n,i),s=(a.y+o.y)/2,l=[a,{x:a.x,y:s},{x:o.x,y:s},o];return"M"+(l=l.map(r))[0]+"C"+l[1]+" "+l[2]+" "+l[3]}return n.source=function(e){return arguments.length?(t=ve(e),n):t},n.target=function(t){return arguments.length?(e=ve(t),n):e},n.projection=function(t){return arguments.length?(r=t,n):r},n},t.svg.diagonal.radial=function(){var e=t.svg.diagonal(),r=ts,n=e.projection;return e.projection=function(t){return arguments.length?n(function(t){return function(){var e=t.apply(this,arguments),r=e[0],n=e[1]-Et;return[r*Math.cos(n),r*Math.sin(n)]}}(r=t)):r},e},t.svg.symbol=function(){var t=rs,e=es;function r(r,n){return(is.get(t.call(this,r,n))||ns)(e.call(this,r,n))}return r.type=function(e){return arguments.length?(t=ve(e),r):t},r.size=function(t){return arguments.length?(e=ve(t),r):e},r};var is=t.map({circle:ns,cross:function(t){var e=Math.sqrt(t/5)/2;return"M"+-3*e+","+-e+"H"+-e+"V"+-3*e+"H"+e+"V"+-e+"H"+3*e+"V"+e+"H"+e+"V"+3*e+"H"+-e+"V"+e+"H"+-3*e+"Z"},diamond:function(t){var e=Math.sqrt(t/(2*os)),r=e*os;return"M0,"+-e+"L"+r+",0 0,"+e+" "+-r+",0Z"},square:function(t){var e=Math.sqrt(t)/2;return"M"+-e+","+-e+"L"+e+","+-e+" "+e+","+e+" "+-e+","+e+"Z"},"triangle-down":function(t){var e=Math.sqrt(t/as),r=e*as/2;return"M0,"+r+"L"+e+","+-r+" "+-e+","+-r+"Z"},"triangle-up":function(t){var e=Math.sqrt(t/as),r=e*as/2;return"M0,"+-r+"L"+e+","+r+" "+-e+","+r+"Z"}});t.svg.symbolTypes=is.keys();var as=Math.sqrt(3),os=Math.tan(30*Ct);Y.transition=function(t){for(var e,r,n=cs||++ps,i=vs(t),a=[],o=hs||{time:Date.now(),ease:ta,delay:0,duration:250},s=-1,l=this.length;++s0;)u[--f].call(t,o);if(a>=1)return h.event&&h.event.end.call(t,t.__data__,e),--c.count?delete c[n]:delete t[r],1}h||(a=i.time,o=Ae(function(t){var e=h.delay;if(o.t=e+a,e<=t)return f(t-e);o.c=f},0,a),h=c[n]={tween:new b,time:a,timer:o,delay:i.delay,duration:i.duration,ease:i.ease,index:e},i=null,++c.count)}fs.call=Y.call,fs.empty=Y.empty,fs.node=Y.node,fs.size=Y.size,t.transition=function(e,r){return e&&e.transition?cs?e.transition(r):e:t.selection().transition(e)},t.transition.prototype=fs,fs.select=function(t){var e,r,n,i=this.id,a=this.namespace,o=[];t=X(t);for(var s=-1,l=this.length;++srect,.s>rect").attr("width",s[1]-s[0])}function g(t){t.select(".extent").attr("y",l[0]),t.selectAll(".extent,.e>rect,.w>rect").attr("height",l[1]-l[0])}function v(){var h,v,m=this,y=t.select(t.event.target),x=n.of(m,arguments),b=t.select(m),_=y.datum(),w=!/^(n|s)$/.test(_)&&i,M=!/^(e|w)$/.test(_)&&a,A=y.classed("extent"),k=xt(m),T=t.mouse(m),S=t.select(o(m)).on("keydown.brush",function(){32==t.event.keyCode&&(A||(h=null,T[0]-=s[1],T[1]-=l[1],A=2),B())}).on("keyup.brush",function(){32==t.event.keyCode&&2==A&&(T[0]+=s[1],T[1]+=l[1],A=0,B())});if(t.event.changedTouches?S.on("touchmove.brush",L).on("touchend.brush",P):S.on("mousemove.brush",L).on("mouseup.brush",P),b.interrupt().selectAll("*").interrupt(),A)T[0]=s[0]-T[0],T[1]=l[0]-T[1];else if(_){var E=+/w$/.test(_),C=+/^n/.test(_);v=[s[1-E]-T[0],l[1-C]-T[1]],T[0]=s[E],T[1]=l[C]}else t.event.altKey&&(h=T.slice());function L(){var e=t.mouse(m),r=!1;v&&(e[0]+=v[0],e[1]+=v[1]),A||(t.event.altKey?(h||(h=[(s[0]+s[1])/2,(l[0]+l[1])/2]),T[0]=s[+(e[0]1?{floor:function(e){for(;s(e=t.floor(e));)e=Cs(e-1);return e},ceil:function(e){for(;s(e=t.ceil(e));)e=Cs(+e+1);return e}}:t))},i.ticks=function(t,e){var r=ao(i.domain()),n=null==t?a(r,10):"number"==typeof t?a(r,t):!t.range&&[{range:t},e];return n&&(t=n[0],e=n[1]),t.range(r[0],Cs(+r[1]+1),e<1?1:e)},i.tickFormat=function(){return n},i.copy=function(){return Es(e.copy(),r,n)},fo(i,e)}function Cs(t){return new Date(t)}As.iso=Date.prototype.toISOString&&+new Date("2000-01-01T00:00:00.000Z")?Ss:Ts,Ss.parse=function(t){var e=new Date(t);return isNaN(e)?null:e},Ss.toString=Ts.toString,Ie.second=Fe(function(t){return new De(1e3*Math.floor(t/1e3))},function(t,e){t.setTime(t.getTime()+1e3*Math.floor(e))},function(t){return t.getSeconds()}),Ie.seconds=Ie.second.range,Ie.seconds.utc=Ie.second.utc.range,Ie.minute=Fe(function(t){return new De(6e4*Math.floor(t/6e4))},function(t,e){t.setTime(t.getTime()+6e4*Math.floor(e))},function(t){return t.getMinutes()}),Ie.minutes=Ie.minute.range,Ie.minutes.utc=Ie.minute.utc.range,Ie.hour=Fe(function(t){var e=t.getTimezoneOffset()/60;return new De(36e5*(Math.floor(t/36e5-e)+e))},function(t,e){t.setTime(t.getTime()+36e5*Math.floor(e))},function(t){return t.getHours()}),Ie.hours=Ie.hour.range,Ie.hours.utc=Ie.hour.utc.range,Ie.month=Fe(function(t){return(t=Ie.day(t)).setDate(1),t},function(t,e){t.setMonth(t.getMonth()+e)},function(t){return t.getMonth()}),Ie.months=Ie.month.range,Ie.months.utc=Ie.month.utc.range;var Ls=[1e3,5e3,15e3,3e4,6e4,3e5,9e5,18e5,36e5,108e5,216e5,432e5,864e5,1728e5,6048e5,2592e6,7776e6,31536e6],zs=[[Ie.second,1],[Ie.second,5],[Ie.second,15],[Ie.second,30],[Ie.minute,1],[Ie.minute,5],[Ie.minute,15],[Ie.minute,30],[Ie.hour,1],[Ie.hour,3],[Ie.hour,6],[Ie.hour,12],[Ie.day,1],[Ie.day,2],[Ie.week,1],[Ie.month,1],[Ie.month,3],[Ie.year,1]],Ps=As.multi([[".%L",function(t){return t.getMilliseconds()}],[":%S",function(t){return t.getSeconds()}],["%I:%M",function(t){return t.getMinutes()}],["%I %p",function(t){return t.getHours()}],["%a %d",function(t){return t.getDay()&&1!=t.getDate()}],["%b %d",function(t){return 1!=t.getDate()}],["%B",function(t){return t.getMonth()}],["%Y",Wr]]),Is={range:function(e,r,n){return t.range(Math.ceil(e/n)*n,+r,n).map(Cs)},floor:z,ceil:z};zs.year=Ie.year,Ie.scale=function(){return Es(t.scale.linear(),zs,Ps)};var Ds=zs.map(function(t){return[t[0].utc,t[1]]}),Os=ks.multi([[".%L",function(t){return t.getUTCMilliseconds()}],[":%S",function(t){return t.getUTCSeconds()}],["%I:%M",function(t){return t.getUTCMinutes()}],["%I %p",function(t){return t.getUTCHours()}],["%a %d",function(t){return t.getUTCDay()&&1!=t.getUTCDate()}],["%b %d",function(t){return 1!=t.getUTCDate()}],["%B",function(t){return t.getUTCMonth()}],["%Y",Wr]]);function Rs(t){return JSON.parse(t.responseText)}function Fs(t){var e=i.createRange();return e.selectNode(i.body),e.createContextualFragment(t.responseText)}Ds.year=Ie.year.utc,Ie.scale.utc=function(){return Es(t.scale.linear(),Ds,Os)},t.text=me(function(t){return t.responseText}),t.json=function(t,e){return ye(t,"application/json",Rs,e)},t.html=function(t,e){return ye(t,"text/html",Fs,e)},t.xml=me(function(t){return t.responseXML}),e.exports?e.exports=t:this.d3=t}(),e=e.exports;var r=function(t){var e=typeof t;if("string"===e){var r=t;if(0===(t=+t)&&function(t){for(var e,r=t.length,n=0;n13)&&32!==e&&133!==e&&160!==e&&5760!==e&&6158!==e&&(e<8192||e>8205)&&8232!==e&&8233!==e&&8239!==e&&8287!==e&&8288!==e&&12288!==e&&65279!==e)return!1;return!0}(r))return!1}else if("number"!==e)return!1;return t-t<1},n={},i=Math.PI;n.deg2rad=function(t){return t/180*i},n.rad2deg=function(t){return t/i*180},n.wrap360=function(t){var e=t%360;return e<0?e+360:e},n.wrap180=function(t){return Math.abs(t)>180&&(t-=360*Math.round(t/360)),t};var a=t.BADNUM,o=/^['"%,$#\s']+|[, ]|['"%,$#\s']+$/g,s={exports:{}};!function(t){var e=/^\s+/,r=/\s+$/,n=0,i=t.round,a=t.min,o=t.max,l=t.random;function u(s,l){if(s=s||"",l=l||{},s instanceof u)return s;if(!(this instanceof u))return new u(s,l);var c=function(n){var i={r:0,g:0,b:0},s=1,l=null,u=null,c=null,h=!1,f=!1;"string"==typeof n&&(n=function(t){t=t.replace(e,"").replace(r,"").toLowerCase();var n,i=!1;if(S[t])t=S[t],i=!0;else if("transparent"==t)return{r:0,g:0,b:0,a:0,format:"name"};if(n=j.rgb.exec(t))return{r:n[1],g:n[2],b:n[3]};if(n=j.rgba.exec(t))return{r:n[1],g:n[2],b:n[3],a:n[4]};if(n=j.hsl.exec(t))return{h:n[1],s:n[2],l:n[3]};if(n=j.hsla.exec(t))return{h:n[1],s:n[2],l:n[3],a:n[4]};if(n=j.hsv.exec(t))return{h:n[1],s:n[2],v:n[3]};if(n=j.hsva.exec(t))return{h:n[1],s:n[2],v:n[3],a:n[4]};if(n=j.hex8.exec(t))return{r:P(n[1]),g:P(n[2]),b:P(n[3]),a:R(n[4]),format:i?"name":"hex8"};if(n=j.hex6.exec(t))return{r:P(n[1]),g:P(n[2]),b:P(n[3]),format:i?"name":"hex"};if(n=j.hex4.exec(t))return{r:P(n[1]+""+n[1]),g:P(n[2]+""+n[2]),b:P(n[3]+""+n[3]),a:R(n[4]+""+n[4]),format:i?"name":"hex8"};if(n=j.hex3.exec(t))return{r:P(n[1]+""+n[1]),g:P(n[2]+""+n[2]),b:P(n[3]+""+n[3]),format:i?"name":"hex"};return!1}(n));"object"==typeof n&&(V(n.r)&&V(n.g)&&V(n.b)?(p=n.r,d=n.g,g=n.b,i={r:255*L(p,255),g:255*L(d,255),b:255*L(g,255)},h=!0,f="%"===String(n.r).substr(-1)?"prgb":"rgb"):V(n.h)&&V(n.s)&&V(n.v)?(l=D(n.s),u=D(n.v),i=function(e,r,n){e=6*L(e,360),r=L(r,100),n=L(n,100);var i=t.floor(e),a=e-i,o=n*(1-r),s=n*(1-a*r),l=n*(1-(1-a)*r),u=i%6;return{r:255*[n,s,o,o,l,n][u],g:255*[l,n,n,s,o,o][u],b:255*[o,o,l,n,n,s][u]}}(n.h,l,u),h=!0,f="hsv"):V(n.h)&&V(n.s)&&V(n.l)&&(l=D(n.s),c=D(n.l),i=function(t,e,r){var n,i,a;function o(t,e,r){return r<0&&(r+=1),r>1&&(r-=1),r<1/6?t+6*(e-t)*r:r<.5?e:r<2/3?t+(e-t)*(2/3-r)*6:t}if(t=L(t,360),e=L(e,100),r=L(r,100),0===e)n=i=a=r;else{var s=r<.5?r*(1+e):r+e-r*e,l=2*r-s;n=o(l,s,t+1/3),i=o(l,s,t),a=o(l,s,t-1/3)}return{r:255*n,g:255*i,b:255*a}}(n.h,l,c),h=!0,f="hsl"),n.hasOwnProperty("a")&&(s=n.a));var p,d,g;return s=C(s),{ok:h,format:n.format||f,r:a(255,o(i.r,0)),g:a(255,o(i.g,0)),b:a(255,o(i.b,0)),a:s}}(s);this._originalInput=s,this._r=c.r,this._g=c.g,this._b=c.b,this._a=c.a,this._roundA=i(100*this._a)/100,this._format=l.format||c.format,this._gradientType=l.gradientType,this._r<1&&(this._r=i(this._r)),this._g<1&&(this._g=i(this._g)),this._b<1&&(this._b=i(this._b)),this._ok=c.ok,this._tc_id=n++}function c(t,e,r){t=L(t,255),e=L(e,255),r=L(r,255);var n,i,s=o(t,e,r),l=a(t,e,r),u=(s+l)/2;if(s==l)n=i=0;else{var c=s-l;switch(i=u>.5?c/(2-s-l):c/(s+l),s){case t:n=(e-r)/c+(e>1)+720)%360;--e;)n.h=(n.h+i)%360,a.push(u(n));return a}function T(t,e){e=e||6;for(var r=u(t).toHsv(),n=r.h,i=r.s,a=r.v,o=[],s=1/e;e--;)o.push(u({h:n,s:i,v:a})),a=(a+s)%1;return o}u.prototype={isDark:function(){return this.getBrightness()<128},isLight:function(){return!this.isDark()},isValid:function(){return this._ok},getOriginalInput:function(){return this._originalInput},getFormat:function(){return this._format},getAlpha:function(){return this._a},getBrightness:function(){var t=this.toRgb();return(299*t.r+587*t.g+114*t.b)/1e3},getLuminance:function(){var e,r,n,i=this.toRgb();return e=i.r/255,r=i.g/255,n=i.b/255,.2126*(e<=.03928?e/12.92:t.pow((e+.055)/1.055,2.4))+.7152*(r<=.03928?r/12.92:t.pow((r+.055)/1.055,2.4))+.0722*(n<=.03928?n/12.92:t.pow((n+.055)/1.055,2.4))},setAlpha:function(t){return this._a=C(t),this._roundA=i(100*this._a)/100,this},toHsv:function(){var t=h(this._r,this._g,this._b);return{h:360*t.h,s:t.s,v:t.v,a:this._a}},toHsvString:function(){var t=h(this._r,this._g,this._b),e=i(360*t.h),r=i(100*t.s),n=i(100*t.v);return 1==this._a?"hsv("+e+", "+r+"%, "+n+"%)":"hsva("+e+", "+r+"%, "+n+"%, "+this._roundA+")"},toHsl:function(){var t=c(this._r,this._g,this._b);return{h:360*t.h,s:t.s,l:t.l,a:this._a}},toHslString:function(){var t=c(this._r,this._g,this._b),e=i(360*t.h),r=i(100*t.s),n=i(100*t.l);return 1==this._a?"hsl("+e+", "+r+"%, "+n+"%)":"hsla("+e+", "+r+"%, "+n+"%, "+this._roundA+")"},toHex:function(t){return f(this._r,this._g,this._b,t)},toHexString:function(t){return"#"+this.toHex(t)},toHex8:function(t){return function(t,e,r,n,a){var o=[I(i(t).toString(16)),I(i(e).toString(16)),I(i(r).toString(16)),I(O(n))];if(a&&o[0].charAt(0)==o[0].charAt(1)&&o[1].charAt(0)==o[1].charAt(1)&&o[2].charAt(0)==o[2].charAt(1)&&o[3].charAt(0)==o[3].charAt(1))return o[0].charAt(0)+o[1].charAt(0)+o[2].charAt(0)+o[3].charAt(0);return o.join("")}(this._r,this._g,this._b,this._a,t)},toHex8String:function(t){return"#"+this.toHex8(t)},toRgb:function(){return{r:i(this._r),g:i(this._g),b:i(this._b),a:this._a}},toRgbString:function(){return 1==this._a?"rgb("+i(this._r)+", "+i(this._g)+", "+i(this._b)+")":"rgba("+i(this._r)+", "+i(this._g)+", "+i(this._b)+", "+this._roundA+")"},toPercentageRgb:function(){return{r:i(100*L(this._r,255))+"%",g:i(100*L(this._g,255))+"%",b:i(100*L(this._b,255))+"%",a:this._a}},toPercentageRgbString:function(){return 1==this._a?"rgb("+i(100*L(this._r,255))+"%, "+i(100*L(this._g,255))+"%, "+i(100*L(this._b,255))+"%)":"rgba("+i(100*L(this._r,255))+"%, "+i(100*L(this._g,255))+"%, "+i(100*L(this._b,255))+"%, "+this._roundA+")"},toName:function(){return 0===this._a?"transparent":!(this._a<1)&&(E[f(this._r,this._g,this._b,!0)]||!1)},toFilter:function(t){var e="#"+p(this._r,this._g,this._b,this._a),r=e,n=this._gradientType?"GradientType = 1, ":"";if(t){var i=u(t);r="#"+p(i._r,i._g,i._b,i._a)}return"progid:DXImageTransform.Microsoft.gradient("+n+"startColorstr="+e+",endColorstr="+r+")"},toString:function(t){var e=!!t;t=t||this._format;var r=!1,n=this._a<1&&this._a>=0;return e||!n||"hex"!==t&&"hex6"!==t&&"hex3"!==t&&"hex4"!==t&&"hex8"!==t&&"name"!==t?("rgb"===t&&(r=this.toRgbString()),"prgb"===t&&(r=this.toPercentageRgbString()),"hex"!==t&&"hex6"!==t||(r=this.toHexString()),"hex3"===t&&(r=this.toHexString(!0)),"hex4"===t&&(r=this.toHex8String(!0)),"hex8"===t&&(r=this.toHex8String()),"name"===t&&(r=this.toName()),"hsl"===t&&(r=this.toHslString()),"hsv"===t&&(r=this.toHsvString()),r||this.toHexString()):"name"===t&&0===this._a?this.toName():this.toRgbString()},clone:function(){return u(this.toString())},_applyModification:function(t,e){var r=t.apply(null,[this].concat([].slice.call(e)));return this._r=r._r,this._g=r._g,this._b=r._b,this.setAlpha(r._a),this},lighten:function(){return this._applyModification(m,arguments)},brighten:function(){return this._applyModification(y,arguments)},darken:function(){return this._applyModification(x,arguments)},desaturate:function(){return this._applyModification(d,arguments)},saturate:function(){return this._applyModification(g,arguments)},greyscale:function(){return this._applyModification(v,arguments)},spin:function(){return this._applyModification(b,arguments)},_applyCombination:function(t,e){return t.apply(null,[this].concat([].slice.call(e)))},analogous:function(){return this._applyCombination(k,arguments)},complement:function(){return this._applyCombination(_,arguments)},monochromatic:function(){return this._applyCombination(T,arguments)},splitcomplement:function(){return this._applyCombination(A,arguments)},triad:function(){return this._applyCombination(w,arguments)},tetrad:function(){return this._applyCombination(M,arguments)}},u.fromRatio=function(t,e){if("object"==typeof t){var r={};for(var n in t)t.hasOwnProperty(n)&&(r[n]="a"===n?t[n]:D(t[n]));t=r}return u(t,e)},u.equals=function(t,e){return!(!t||!e)&&u(t).toRgbString()==u(e).toRgbString()},u.random=function(){return u.fromRatio({r:l(),g:l(),b:l()})},u.mix=function(t,e,r){r=0===r?0:r||50;var n=u(t).toRgb(),i=u(e).toRgb(),a=r/100;return u({r:(i.r-n.r)*a+n.r,g:(i.g-n.g)*a+n.g,b:(i.b-n.b)*a+n.b,a:(i.a-n.a)*a+n.a})},u.readability=function(e,r){var n=u(e),i=u(r);return(t.max(n.getLuminance(),i.getLuminance())+.05)/(t.min(n.getLuminance(),i.getLuminance())+.05)},u.isReadable=function(t,e,r){var n,i,a=u.readability(t,e);switch(i=!1,(n=function(t){var e,r;e=((t=t||{level:"AA",size:"small"}).level||"AA").toUpperCase(),r=(t.size||"small").toLowerCase(),"AA"!==e&&"AAA"!==e&&(e="AA");"small"!==r&&"large"!==r&&(r="small");return{level:e,size:r}}(r)).level+n.size){case"AAsmall":case"AAAlarge":i=a>=4.5;break;case"AAlarge":i=a>=3;break;case"AAAsmall":i=a>=7}return i},u.mostReadable=function(t,e,r){var n,i,a,o,s=null,l=0;i=(r=r||{}).includeFallbackColors,a=r.level,o=r.size;for(var c=0;cl&&(l=n,s=u(e[c]));return u.isReadable(t,s,{level:a,size:o})||!i?s:(r.includeFallbackColors=!1,u.mostReadable(t,["#fff","#000"],r))};var S=u.names={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"0ff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"00f",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",burntsienna:"ea7e5d",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"0ff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkgrey:"a9a9a9",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"f0f",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgreen:"90ee90",lightgrey:"d3d3d3",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370db",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"663399",red:"f00",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"},E=u.hexNames=function(t){var e={};for(var r in t)t.hasOwnProperty(r)&&(e[t[r]]=r);return e}(S);function C(t){return t=parseFloat(t),(isNaN(t)||t<0||t>1)&&(t=1),t}function L(e,r){(function(t){return"string"==typeof t&&-1!=t.indexOf(".")&&1===parseFloat(t)})(e)&&(e="100%");var n=function(t){return"string"==typeof t&&-1!=t.indexOf("%")}(e);return e=a(r,o(0,parseFloat(e))),n&&(e=parseInt(e*r,10)/100),t.abs(e-r)<1e-6?1:e%r/parseFloat(r)}function z(t){return a(1,o(0,t))}function P(t){return parseInt(t,16)}function I(t){return 1==t.length?"0"+t:""+t}function D(t){return t<=1&&(t=100*t+"%"),t}function O(e){return t.round(255*parseFloat(e)).toString(16)}function R(t){return P(t)/255}var F,B,N,j=(B="[\\s|\\(]+("+(F="(?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?)")+")[,|\\s]+("+F+")[,|\\s]+("+F+")\\s*\\)?",N="[\\s|\\(]+("+F+")[,|\\s]+("+F+")[,|\\s]+("+F+")[,|\\s]+("+F+")\\s*\\)?",{CSS_UNIT:new RegExp(F),rgb:new RegExp("rgb"+B),rgba:new RegExp("rgba"+N),hsl:new RegExp("hsl"+B),hsla:new RegExp("hsla"+N),hsv:new RegExp("hsv"+B),hsva:new RegExp("hsva"+N),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/});function V(t){return!!j.CSS_UNIT.exec(t)}s.exports?s.exports=u:window.tinycolor=u}(Math),s=s.exports;var l={Greys:[[0,"rgb(0,0,0)"],[1,"rgb(255,255,255)"]],YlGnBu:[[0,"rgb(8,29,88)"],[.125,"rgb(37,52,148)"],[.25,"rgb(34,94,168)"],[.375,"rgb(29,145,192)"],[.5,"rgb(65,182,196)"],[.625,"rgb(127,205,187)"],[.75,"rgb(199,233,180)"],[.875,"rgb(237,248,217)"],[1,"rgb(255,255,217)"]],Greens:[[0,"rgb(0,68,27)"],[.125,"rgb(0,109,44)"],[.25,"rgb(35,139,69)"],[.375,"rgb(65,171,93)"],[.5,"rgb(116,196,118)"],[.625,"rgb(161,217,155)"],[.75,"rgb(199,233,192)"],[.875,"rgb(229,245,224)"],[1,"rgb(247,252,245)"]],YlOrRd:[[0,"rgb(128,0,38)"],[.125,"rgb(189,0,38)"],[.25,"rgb(227,26,28)"],[.375,"rgb(252,78,42)"],[.5,"rgb(253,141,60)"],[.625,"rgb(254,178,76)"],[.75,"rgb(254,217,118)"],[.875,"rgb(255,237,160)"],[1,"rgb(255,255,204)"]],Bluered:[[0,"rgb(0,0,255)"],[1,"rgb(255,0,0)"]],RdBu:[[0,"rgb(5,10,172)"],[.35,"rgb(106,137,247)"],[.5,"rgb(190,190,190)"],[.6,"rgb(220,170,132)"],[.7,"rgb(230,145,90)"],[1,"rgb(178,10,28)"]],Reds:[[0,"rgb(220,220,220)"],[.2,"rgb(245,195,157)"],[.4,"rgb(245,160,105)"],[1,"rgb(178,10,28)"]],Blues:[[0,"rgb(5,10,172)"],[.35,"rgb(40,60,190)"],[.5,"rgb(70,100,245)"],[.6,"rgb(90,120,245)"],[.7,"rgb(106,137,247)"],[1,"rgb(220,220,220)"]],Picnic:[[0,"rgb(0,0,255)"],[.1,"rgb(51,153,255)"],[.2,"rgb(102,204,255)"],[.3,"rgb(153,204,255)"],[.4,"rgb(204,204,255)"],[.5,"rgb(255,255,255)"],[.6,"rgb(255,204,255)"],[.7,"rgb(255,153,255)"],[.8,"rgb(255,102,204)"],[.9,"rgb(255,102,102)"],[1,"rgb(255,0,0)"]],Rainbow:[[0,"rgb(150,0,90)"],[.125,"rgb(0,0,200)"],[.25,"rgb(0,25,255)"],[.375,"rgb(0,152,255)"],[.5,"rgb(44,255,150)"],[.625,"rgb(151,255,0)"],[.75,"rgb(255,234,0)"],[.875,"rgb(255,111,0)"],[1,"rgb(255,0,0)"]],Portland:[[0,"rgb(12,51,131)"],[.25,"rgb(10,136,186)"],[.5,"rgb(242,211,56)"],[.75,"rgb(242,143,56)"],[1,"rgb(217,30,30)"]],Jet:[[0,"rgb(0,0,131)"],[.125,"rgb(0,60,170)"],[.375,"rgb(5,255,255)"],[.625,"rgb(255,255,0)"],[.875,"rgb(250,0,0)"],[1,"rgb(128,0,0)"]],Hot:[[0,"rgb(0,0,0)"],[.3,"rgb(230,0,0)"],[.6,"rgb(255,210,0)"],[1,"rgb(255,255,255)"]],Blackbody:[[0,"rgb(0,0,0)"],[.2,"rgb(230,0,0)"],[.4,"rgb(230,210,0)"],[.7,"rgb(255,255,255)"],[1,"rgb(160,200,255)"]],Earth:[[0,"rgb(0,0,130)"],[.1,"rgb(0,180,180)"],[.2,"rgb(40,210,40)"],[.4,"rgb(230,230,50)"],[.6,"rgb(120,70,20)"],[1,"rgb(255,255,255)"]],Electric:[[0,"rgb(0,0,0)"],[.15,"rgb(30,0,100)"],[.4,"rgb(120,0,100)"],[.6,"rgb(160,90,0)"],[.8,"rgb(230,200,0)"],[1,"rgb(255,250,220)"]],Viridis:[[0,"#440154"],[.06274509803921569,"#48186a"],[.12549019607843137,"#472d7b"],[.18823529411764706,"#424086"],[.25098039215686274,"#3b528b"],[.3137254901960784,"#33638d"],[.3764705882352941,"#2c728e"],[.4392156862745098,"#26828e"],[.5019607843137255,"#21918c"],[.5647058823529412,"#1fa088"],[.6274509803921569,"#28ae80"],[.6901960784313725,"#3fbc73"],[.7529411764705882,"#5ec962"],[.8156862745098039,"#84d44b"],[.8784313725490196,"#addc30"],[.9411764705882353,"#d8e219"],[1,"#fde725"]],Cividis:[[0,"rgb(0,32,76)"],[.058824,"rgb(0,42,102)"],[.117647,"rgb(0,52,110)"],[.176471,"rgb(39,63,108)"],[.235294,"rgb(60,74,107)"],[.294118,"rgb(76,85,107)"],[.352941,"rgb(91,95,109)"],[.411765,"rgb(104,106,112)"],[.470588,"rgb(117,117,117)"],[.529412,"rgb(131,129,120)"],[.588235,"rgb(146,140,120)"],[.647059,"rgb(161,152,118)"],[.705882,"rgb(176,165,114)"],[.764706,"rgb(192,177,109)"],[.823529,"rgb(209,191,102)"],[.882353,"rgb(225,204,92)"],[.941176,"rgb(243,219,79)"],[1,"rgb(255,233,69)"]]},u=l.RdBu,c=function(t){var e=0;if(!Array.isArray(t)||t.length<2)return!1;if(!t[0]||!t[t.length-1])return!1;if(0!=+t[0][0]||1!=+t[t.length-1][0])return!1;for(var r=0;r1){for(var t=["LOG:"],e=0;e0){for(var t=["WARN:"],e=0;e0){for(var t=["ERROR:"],e=0;e=0;e--){if(n=t[e][0],i=t[e][1],o=!1,G(n))for(r=n.length-1;r>=0;r--)Z(n[r],K(i,r))?o?n[r]=void 0:n.pop():o=!0;else if("object"==typeof n&&null!==n)for(a=Object.keys(n),o=!1,r=a.length-1;r>=0;r--)Z(n[a[r]],K(i,a[r]))?delete n[a[r]]:o=!0;if(o)return}}(l)):o[e[a]]=n}}function K(t,e){var n=e;return r(e)?n="["+e+"]":t&&(n="."+e),t+n}function Q(t,e,r,n){var i,a=G(r),o=!0,s=r,l=n.replace("-1",0),u=!a&&Z(r,l),c=e[0];for(i=0;ii.max?e.set(n):e.set(+t)}},integer:{coerceFunction:function(t,e,n,i){t%1||!r(t)||void 0!==i.min&&ti.max?e.set(n):e.set(+t)}},string:{coerceFunction:function(t,e,r,n){if("string"!=typeof t){var i="number"==typeof t;!0!==n.strict&&i?e.set(String(t)):e.set(r)}else n.noBlank&&!t?e.set(r):e.set(t)}},color:{coerceFunction:function(t,e,r){s(t).isValid()?e.set(t):e.set(r)}},colorlist:{coerceFunction:function(t,e,r){Array.isArray(t)&&t.length&&t.every(function(t){return s(t).isValid()})?e.set(t):e.set(r)}},colorscale:{coerceFunction:function(t,e,r){e.set(h(t,r))}},angle:{coerceFunction:function(t,e,n){"auto"===t?e.set("auto"):r(t)?e.set(it(+t)):e.set(n)}},subplotid:{coerceFunction:function(t,e,r){"string"==typeof t&&rt(r).test(t)?e.set(t):e.set(r)},validateFunction:function(t,e){var r=e.dflt;return t===r||"string"==typeof t&&!!rt(r).test(t)}},flaglist:{coerceFunction:function(t,e,r,n){if("string"==typeof t)if(-1===(n.extras||[]).indexOf(t)){for(var i=t.split("+"),a=0;a=ot&&t<=st?t:ct;if("string"!=typeof t&&"number"!=typeof t)return ct;t=String(t);var r=bt(e),n=t.charAt(0);!r||"G"!==n&&"g"!==n||(t=t.substr(1),e="");var i=r&&"chinese"===e.substr(0,7),a=t.match(i?yt:mt);if(!a)return ct;var o=a[1],s=a[3]||"1",l=Number(a[5]||1),u=Number(a[7]||0),c=Number(a[9]||0),h=Number(a[11]||0);if(r){if(2===o.length)return ct;var f;o=Number(o);try{var p=P.getComponentMethod("calendars","getCal")(e);if(i){var d="i"===s.charAt(s.length-1);s=parseInt(s,10),f=p.newDate(o,p.toMonthIndex(o,s,d),l)}else f=p.newDate(o,Number(s),l)}catch(t){return ct}return f?(f.toJD()-gt)*ht+u*ft+c*pt+h*dt:ct}o=2===o.length?(Number(o)+2e3-xt)%100+xt:Number(o),s-=1;var g=new Date(Date.UTC(2e3,s,l,u,c));return g.setUTCFullYear(o),g.getUTCMonth()!==s?ct:g.getUTCDate()!==l?ct:g.getTime()+h*dt},ot=ut.MIN_MS=ut.dateTime2ms("-9999"),st=ut.MAX_MS=ut.dateTime2ms("9999-12-31 23:59:59.9999"),ut.isDateTime=function(t,e){return ut.dateTime2ms(t,e)!==ct};var wt=90*ht,Mt=3*ft,At=5*pt;function kt(t,e,r,n,i){if((e||r||n||i)&&(t+=" "+_t(e,2)+":"+_t(r,2),(n||i)&&(t+=":"+_t(n,2),i))){for(var a=4;i%10==0;)a-=1,i/=10;t+="."+_t(i,a)}return t}ut.ms2DateTime=function(t,e,r){if("number"!=typeof t||!(t>=ot&&t<=st))return ct;e||(e=0);var n,i,a,o,s,l,u=Math.floor(10*lt(t+.05,1)),c=Math.round(t-u/10);if(bt(r)){var h=Math.floor(c/ht)+gt,f=Math.floor(lt(t,ht));try{n=P.getComponentMethod("calendars","getCal")(r).fromJD(h).formatDate("yyyy-mm-dd")}catch(t){n=vt("G%Y-%m-%d")(new Date(c))}if("-"===n.charAt(0))for(;n.length<11;)n="-0"+n.substr(1);else for(;n.length<10;)n="0"+n;i=e=ot+ht&&t<=st-ht))return ct;var r=Math.floor(10*lt(t+.05,1)),n=new Date(Math.round(t-r/10));return kt(e.time.format("%Y-%m-%d")(n),n.getHours(),n.getMinutes(),n.getSeconds(),10*n.getUTCMilliseconds()+r)},ut.cleanDate=function(t,e,r){if(ut.isJSDate(t)||"number"==typeof t){if(bt(r))return _.error("JS Dates and milliseconds are incompatible with world calendars",t),e;if(!(t=ut.ms2DateTimeLocal(+t))&&void 0!==e)return e}else if(!ut.isDateTime(t,r))return _.error("unrecognized date",t),e;return t};var Tt=/%\d?f/g;function St(t,e,r,n){t=t.replace(Tt,function(t){var r=Math.min(+t.charAt(1)||6,6);return(e/1e3%1+2).toFixed(r).substr(2).replace(/0+$/,"")||"0"});var i=new Date(Math.floor(e+.05));if(bt(n))try{t=P.getComponentMethod("calendars","worldCalFmt")(t,e,n)}catch(t){return"Invalid"}return r(t)(i)}var Et=[59,59.9,59.99,59.999,59.9999];ut.formatDate=function(t,e,n,i,a,o){if(a=bt(a)&&a,!e)if("y"===n)e=o.year;else if("m"===n)e=o.month;else{if("d"!==n)return function(t,e){var n=lt(t+.05,ht),i=_t(Math.floor(n/ft),2)+":"+_t(lt(Math.floor(n/pt),60),2);if("M"!==e){r(e)||(e=0);var a=(100+Math.min(lt(t/dt,60),Et[e])).toFixed(e).substr(1);e>0&&(a=a.replace(/0+$/,"").replace(/[\.]$/,"")),i+=":"+a}return i}(t,n)+"\n"+St(o.dayMonthYear,t,i,a);e=o.dayMonth+"\n"+o.year}return St(e,t,i,a)};var Ct=3*ht;ut.incrementMonth=function(t,e,r){r=bt(r)&&r;var n=lt(t,ht);if(t=Math.round(t-n),r)try{var i=Math.round(t/ht)+gt,a=P.getComponentMethod("calendars","getCal")(r),o=a.fromJD(i);return e%12?a.add(o,e,"m"):a.add(o,e/12,"y"),(o.toJD()-gt)*ht+n}catch(e){_.error("invalid ms "+t+" in calendar "+r)}var s=new Date(t+Ct);return s.setUTCMonth(s.getUTCMonth()+e)+n-Ct},ut.findExactDates=function(t,e){for(var n,i,a=0,o=0,s=0,l=0,u=bt(e)&&P.getComponentMethod("calendars","getCal")(e),c=0;c1||g<0||g>1?null:{x:t+l*g,y:e+h*g}}function Ft(t,e,r,n,i){var a=n*t+i*e;if(a<0)return n*n+i*i;if(a>r){var o=n-t,s=i-e;return o*o+s*s}var l=n*e-i*t;return l*l/r}Ot.segmentsIntersect=Rt,Ot.segmentDistance=function(t,e,r,n,i,a,o,s){if(Rt(t,e,r,n,i,a,o,s))return 0;var l=r-t,u=n-e,c=o-i,h=s-a,f=l*l+u*u,p=c*c+h*h,d=Math.min(Ft(l,u,f,i-t,a-e),Ft(l,u,f,o-t,s-e),Ft(c,h,p,t-i,e-a),Ft(c,h,p,r-i,n-a));return Math.sqrt(d)},Ot.getTextLocation=function(t,e,r,n){if(t===It&&n===Dt||(Pt={},It=t,Dt=n),Pt[r])return Pt[r];var i=t.getPointAtLength(lt(r-n/2,e)),a=t.getPointAtLength(lt(r+n/2,e)),o=Math.atan((a.y-i.y)/(a.x-i.x)),s=t.getPointAtLength(lt(r,e)),l={x:(4*s.x+i.x+a.x)/6,y:(4*s.y+i.y+a.y)/6,theta:o};return Pt[r]=l,l},Ot.clearLocationCache=function(){It=null},Ot.getVisibleSegment=function(t,e,r){var n,i,a=e.left,o=e.right,s=e.top,l=e.bottom,u=0,c=t.getTotalLength(),h=c;function f(e){var r=t.getPointAtLength(e);0===e?n=r:e===c&&(i=r);var u=r.xo?r.x-o:0,h=r.yl?r.y-l:0;return Math.sqrt(u*u+h*h)}for(var p=f(u);p;){if((u+=p+r)>h)return;p=f(u)}for(p=f(h);p;){if(u>(h-=p+r))return;p=f(h)}return{min:u,max:h,len:h-u,total:c,isClosed:0===u&&h===c&&Math.abs(n.x-i.x)<.1&&Math.abs(n.y-i.y)<.1}},Ot.findPointOnPath=function(t,e,r,n){for(var i,a,o,s=(n=n||{}).pathLength||t.getTotalLength(),l=n.tolerance||.001,u=n.iterationLimit||30,c=t.getPointAtLength(0)[r]>t.getPointAtLength(s)[r]?-1:1,h=0,f=0,p=s;h0?p=i:f=i,h++}return a};var Bt=function(t){var e;if("string"==typeof t){if(null===(e=document.getElementById(t)))throw new Error("No DOM element with id '"+t+"' exists on the page.");return e}if(null===t||void 0===t)throw new Error("DOM element provided is null or undefined");return t},Nt=function(t){return t},jt=/^\w*$/,Vt={init2dArray:function(t,e){for(var r=new Array(t),n=0;ne}function Jt(t,e){return t>=e}Wt.findBin=function(t,e,n){if(r(e.start))return n?Math.ceil((t-e.start)/e.size-1e-9)-1:Math.floor((t-e.start)/e.size+1e-9);var i,a,o=0,s=e.length,l=0,u=s>1?(e[s-1]-e[0])/(s-1):1;for(a=u>=0?n?Yt:Xt:n?Jt:Zt,t+=1e-9*u*(n?-1:1)*(u>=0?1:-1);o90&&_.log("Long binary search..."),o-1},Wt.sorterAsc=function(t,e){return t-e},Wt.sorterDes=function(t,e){return e-t},Wt.distinctVals=function(t){var e=t.slice();e.sort(Wt.sorterAsc);for(var r=e.length-1,n=e[r]-e[0]||1,i=n/(r||1)/1e4,a=[e[0]],o=0;oe[o]+i&&(n=Math.min(n,e[o+1]-e[o]),a.push(e[o+1]));return{vals:a,minDiff:n}},Wt.roundUp=function(t,e,r){for(var n,i=0,a=e.length-1,o=0,s=r?0:1,l=r?1:0,u=r?Math.ceil:Math.floor;in.length)&&(i=n.length),r(e)||(e=!1),Qt(n[0])){for(o=new Array(i),a=0;at.length-1)return t[t.length-1];var n=e%1;return n*t[Math.ceil(e)]+(1-n)*t[Math.floor(e)]};var $t={},te={};function ee(t){t&&null!==t.timer&&(clearTimeout(t.timer),t.timer=null)}$t.throttle=function(t,e,r){var n=te[t],i=Date.now();if(!n){for(var a in te)te[a].tsn.ts+e?o():n.timer=setTimeout(function(){o(),n.timer=null},e)},$t.done=function(t){var e=te[t];return e&&e.timer?new Promise(function(t){var r=e.onDone;e.onDone=function(){r&&r(),t(),e.onDone=null}}):Promise.resolve()},$t.clear=function(t){if(t)ee(te[t]),delete te[t];else for(var e in te)$t.clear(e)};var re=function(t,e){if(t>0)return Math.log(t)/Math.LN10;var n=Math.log(Math.min(e[0],e[1]))/Math.LN10;return r(n)||(n=Math.log(Math.max(e[0],e[1]))/Math.LN10-6),n},ne={},ie=t.FP_SAFE,ae=t.BADNUM,oe=ne={};oe.nestedProperty=W,oe.keyedContainer=function(t,e,r,n){var i,a;r=r||"name",n=n||"value";var o={};a=e&&e.length?W(t,e).get():t,e=e||"",a=a||[];var s={};for(i=0;i2)return o[e]=2|o[e],u.set(t,null);if(l){for(i=e;i/g),s=0;sie?ae:r(t)?Number(t):ae:ae},oe.noop=A,oe.identity=Nt,oe.swapAttrs=function(t,e,r,n){r||(r="x"),n||(n="y");for(var i=0;ir?Math.max(r,Math.min(e,t)):Math.max(e,Math.min(r,t))},oe.bBoxIntersect=function(t,e,r){return r=r||0,t.left<=e.right+r&&e.left<=t.right+r&&t.top<=e.bottom+r&&e.top<=t.bottom+r},oe.simpleMap=function(t,e,r,n){for(var i=t.length,a=new Array(i),o=0;o-1||u!==1/0&&u>=Math.pow(2,r)?t(e,r,n):s},oe.OptionControl=function(t,e){t||(t={}),e||(e="opt");var r={optionList:[],_newoption:function(n){n[e]=t,r[n.name]=n,r.optionList.push(n)}};return r["_"+e]=t,r},oe.smooth=function(t,e){if((e=Math.round(e)||0)<2)return t;var r,n,i,a,o=t.length,s=2*o,l=2*e-1,u=new Array(l),c=new Array(o);for(r=0;r=s&&(i-=s*Math.floor(i/s)),i<0?i=-1-i:i>=o&&(i=s-1-i),a+=t[i]*u[n];c[r]=a}return c},oe.syncOrAsync=function(t,e,r){var n;function i(){return oe.syncOrAsync(t,e,r)}for(;t.length;)if((n=(0,t.splice(0,1)[0])(e))&&n.then)return n.then(i).then(void 0,oe.promiseError);return r&&r(e)},oe.stripTrailingSlash=function(t){return"/"===t.substr(-1)?t.substr(0,t.length-1):t},oe.noneOrAll=function(t,e,r){if(t){var n,i,a=!1,o=!0;for(n=0;n=0&&a%1==0){var d=i?i[p]:p,g=n?n[d]:d;h(g)&&(t[g].selected=1)}}},oe.getTargetArray=function(t,e){var r=e.target;if("string"==typeof r&&r){var n=oe.nestedProperty(t,r).get();return!!Array.isArray(n)&&n}return!!Array.isArray(r)&&r},oe.minExtend=function(t,e){var r={};"object"!=typeof e&&(e={});var n,i,a,o=Object.keys(t);for(n=0;n1?i+o[1]:"";if(a&&(o.length>1||s.length>4||r))for(;n.test(s);)s=s.replace(n,"$1"+a+"$2");return s+l};var ue=/%{([^\s%{}]*)}/g,ce=/^\w*$/;oe.templateString=function(t,e){var r={};return t.replace(ue,function(t,n){return ce.test(n)?e[n]||"":(r[n]=r[n]||oe.nestedProperty(e,n).get,r[n]()||"")})};oe.subplotSort=function(t,e){for(var r=Math.min(t.length,e.length)+1,n=0,i=0,a=0;a=48&&o<=57,u=s>=48&&s<=57;if(l&&(n=10*n+o-48),u&&(i=10*i+s-48),!l||!u){if(n!==i)return n-i;if(o!==s)return o-s}}return i-n};var he=2e9;oe.seedPseudoRandom=function(){he=2e9},oe.pseudoRandom=function(){var t=he;return he=(69069*he+1)%4294967296,Math.abs(he-t)<429496729?oe.pseudoRandom():he/4294967296};var fe=ne.extendFlat,pe=ne.isPlainObject,de={valType:"flaglist",extras:["none"],flags:["calc","calcIfAutorange","clearAxisTypes","plot","style","colorbars"]},ge={valType:"flaglist",extras:["none"],flags:["calc","calcIfAutorange","plot","legend","ticks","margins","layoutstyle","modebar","camera","arraydraw"]},ve=de.flags.slice().concat(["clearCalc","fullReplot"]),me=ge.flags.slice().concat("layoutReplot"),ye={traces:de,layout:ge,traceFlags:function(){return xe(ve)},layoutFlags:function(){return xe(me)},update:function(t,e){var r=e.editType;if(r&&"none"!==r)for(var n=r.split("+"),i=0;i=0))return t;if(3===o)i[o]>1&&(i[o]=1);else if(i[o]>=1)return t}var s=Math.round(255*i[0])+", "+Math.round(255*i[1])+", "+Math.round(255*i[2]);return a?"rgba("+s+", "+i[3]+")":"rgb("+s+")"}Re.tinyRGB=function(t){var e=t.toRgb();return"rgb("+Math.round(e.r)+", "+Math.round(e.g)+", "+Math.round(e.b)+")"},Re.rgb=function(t){return Re.tinyRGB(s(t))},Re.opacity=function(t){return t?s(t).getAlpha():0},Re.addOpacity=function(t,e){var r=s(t).toRgb();return"rgba("+Math.round(r.r)+", "+Math.round(r.g)+", "+Math.round(r.b)+", "+e+")"},Re.combine=function(t,e){var r=s(t).toRgb();if(1===r.a)return s(t).toRgbString();var n=s(e||Be).toRgb(),i=1===n.a?n:{r:255*(1-n.a)+n.r*n.a,g:255*(1-n.a)+n.g*n.a,b:255*(1-n.a)+n.b*n.a},a={r:i.r*(1-r.a)+r.r*r.a,g:i.g*(1-r.a)+r.g*r.a,b:i.b*(1-r.a)+r.b*r.a};return s(a).toRgbString()},Re.contrast=function(t,e,r){var n=s(t);return 1!==n.getAlpha()&&(n=s(Re.combine(t,Be))),(n.isDark()?e?n.lighten(e):Be:r?n.darken(r):Fe).toString()},Re.stroke=function(t,e){var r=s(e);t.style({stroke:Re.tinyRGB(r),"stroke-opacity":r.getAlpha()})},Re.fill=function(t,e){var r=s(e);t.style({fill:Re.tinyRGB(r),"fill-opacity":r.getAlpha()})},Re.clean=function(t){if(t&&"object"==typeof t){var e,r,n,i,a=Object.keys(t);for(e=0;e=0;i--,a++)e=t[i],n[a]=[1-e[0],e[1]];return n},Ve=function(t,e,r,n){var i,a;r?(i=ne.nestedProperty(t,r).get(),a=ne.nestedProperty(t._input,r).get()):(i=t,a=t._input);var o=n+"auto",s=n+"min",u=n+"max",c=i[o],h=i[s],f=i[u],p=i.colorscale;!1===c&&void 0!==h||(h=ne.aggNums(Math.min,null,e)),!1===c&&void 0!==f||(f=ne.aggNums(Math.max,null,e)),h===f&&(h-=.5,f+=.5),i[s]=h,i[u]=f,a[s]=h,a[u]=f,a[o]=!1!==c||void 0===h&&void 0===f,i.autocolorscale&&(p=h*f<0?l.RdBu:h>=0?l.Reds:l.Blues,a.colorscale=p,i.reversescale&&(p=je(p)),i.colorscale=p)},Ue=function(t,e,r,n,i){var a=function(t){var e=["showexponent","showtickprefix","showticksuffix"].filter(function(e){return void 0!==t[e]});if(e.every(function(r){return t[r]===t[e[0]]})||1===e.length)return t[e[0]]}(t);if(r("tickprefix")&&r("showtickprefix",a),r("ticksuffix",i.tickSuffixDflt)&&r("showticksuffix",a),r("showticklabels")){var o=i.font||{},s=e.color===t.color?e.color:o.color;if(ne.coerceFont(r,"tickfont",{family:o.family,size:o.size,color:s}),r("tickangle"),"category"!==n){var l=r("tickformat");!function(t,e){var r,n,i=t.tickformatstops,a=e.tickformatstops=[];if(!Array.isArray(i))return;function o(t,e){return ne.coerce(r,n,Ce.tickformatstops,t,e)}for(var s=0;s0?Number(l):s;else if("string"!=typeof l)e.dtick=s;else{var u=l.charAt(0),c=l.substr(1);((c=r(c)?Number(c):0)<=0||!("date"===i&&"M"===u&&c===Math.round(c)||"log"===i&&"L"===u||"log"===i&&"D"===u&&(1===c||2===c)))&&(e.dtick=s)}var h="date"===i?ne.dateTick0(e.calendar):0,f=n("tick0",h);"date"===i?e.tick0=ne.cleanDate(f,h):r(f)&&"D1"!==l&&"D2"!==l?e.tick0=Number(f):e.tick0=h}else{void 0===n("tickvals")?e.tickmode="auto":n("ticktext")}},We=function(t){return void 0!==l[t]||c(t)},Ye=function(t,e,n,i,a){var o,s=a.prefix,l=a.cLetter,u=s.slice(0,s.length-1),c=s?ne.nestedProperty(t,u).get()||{}:t,h=s?ne.nestedProperty(e,u).get()||{}:e,f=c[l+"min"],p=c[l+"max"],d=c.colorscale;i(s+l+"auto",!(r(f)&&r(p)&&f","#62":">",nbsp:"\xa0","#160":"\xa0",times:"\xd7","#215":"\xd7",plusmn:"\xb1","#177":"\xb1",deg:"\xb0","#176":"\xb0"}},er={},rr=Qe.LINE_SPACING;function nr(t,e){return t.node().getBoundingClientRect()[e]}var ir=/([^$]*)([$]+[^$]*[$]+)([^$]*)/;er.convertToTspans=function(t,r,n){var i=t.text(),a=!t.attr("data-notex")&&"undefined"!=typeof MathJax&&i.match(ir),o=e.select(t.node().parentNode);if(!o.empty()){var s=t.attr("class")?t.attr("class").split(" ")[0]:"text";return s+="-math",o.selectAll("svg."+s).remove(),o.selectAll("g."+s+"-group").remove(),t.style("display",null).attr({"data-unformatted":i,"data-math":"N"}),a?(r&&r._promises||[]).push(new Promise(function(r){t.style("display","none");var u=parseInt(t.node().style.fontSize,10),c={fontSize:u};!function(t,r,n){var i="math-output-"+ne.randstr([],64),a=e.select("body").append("div").attr({id:i}).style({visibility:"hidden",position:"absolute"}).style({"font-size":r.fontSize+"px"}).text((o=t,o.replace(ar,"\\lt ").replace(or,"\\gt ")));var o;MathJax.Hub.Queue(["Typeset",MathJax.Hub,a.node()],function(){var r=e.select("body").select("#MathJax_SVG_glyphs");if(a.select(".MathJax_SVG").empty()||!a.select("svg").node())ne.log("There was an error in the tex syntax.",t),n();else{var i=a.select("svg").node().getBoundingClientRect();n(a.select(".MathJax_SVG"),r,i)}a.remove()})}(a[2],c,function(e,a,c){o.selectAll("svg."+s).remove(),o.selectAll("g."+s+"-group").remove();var h=e&&e.select("svg");if(!h||!h.node())return l(),void r();var f=o.append("g").classed(s+"-group",!0).attr({"pointer-events":"none","data-unformatted":i,"data-math":"Y"});f.node().appendChild(h.node()),a&&a.node()&&h.node().insertBefore(a.node().cloneNode(!0),h.node().firstChild),h.attr({class:s,height:c.height,preserveAspectRatio:"xMinYMin meet"}).style({overflow:"visible","pointer-events":"none"});var p=t.node().style.fill||"black";h.select("g").attr({fill:p,stroke:p});var d=nr(h,"width"),g=nr(h,"height"),v=+t.attr("x")-d*{start:0,middle:.5,end:1}[t.attr("text-anchor")||"start"],m=-(u||nr(t,"height"))/4;"y"===s[0]?(f.attr({transform:"rotate("+[-90,+t.attr("x"),+t.attr("y")]+") translate("+[-d/2,m-g/2]+")"}),h.attr({x:+t.attr("x"),y:+t.attr("y")})):"l"===s[0]?h.attr({x:t.attr("x"),y:m-g/2}):"a"===s[0]?h.attr({x:0,y:m}):h.attr({x:v,y:+t.attr("y")+m-g/2}),n&&n.call(t,f),r(f)})})):l(),t}function l(){o.empty()||(s=t.attr("class")+"-math",o.select("svg."+s).remove()),t.text("").style("white-space","pre"),function(t,r){r=(n=r,function(t,e){if(!t)return"";for(var r=0;r1)for(var a=1;a doesnt match end tag <"+t+">. Pretending it did match.",r),i=o[o.length-1].node}else ne.log("Ignoring unexpected end tag .",r)}mr.test(r)?l():(i=t,o=[{node:t}]);for(var f=r.split(gr),p=0;p|>|>)/g;var sr={sup:"font-size:70%",sub:"font-size:70%",b:"font-weight:bold",i:"font-style:italic",a:"cursor:pointer",span:"",em:"font-style:italic;font-weight:bold"},lr={sub:"0.3em",sup:"-0.6em"},ur={sub:"-0.21em",sup:"0.42em"},cr="\u200b",hr=["http:","https:","mailto:","",void 0,":"],fr=new RegExp("]*)?/?>","g"),pr=Object.keys(tr.entityToUnicode).map(function(t){return{regExp:new RegExp("&"+t+";","g"),sub:tr.entityToUnicode[t]}}),dr=/(\r\n?|\n)/g,gr=/(<[^<>]*>)/,vr=/<(\/?)([^ >]*)(\s+(.*))?>/i,mr=//i,yr=/(^|[\s"'])style\s*=\s*("([^"]*);?"|'([^']*);?')/i,xr=/(^|[\s"'])href\s*=\s*("([^"]*)"|'([^']*)')/i,br=/(^|[\s"'])target\s*=\s*("([^"\s]*)"|'([^'\s]*)')/i,_r=/(^|[\s"'])popup\s*=\s*("([\w=,]*)"|'([\w=,]*)')/i;function wr(t,e){if(!t)return null;var r=t.match(e);return r&&(r[3]||r[4])}var Mr=/(^|;)\s*color:/;function Ar(t,e,r){var n,i,a,o=r.horizontalAlign,s=r.verticalAlign||"top",l=t.node().getBoundingClientRect(),u=e.node().getBoundingClientRect();return i="bottom"===s?function(){return l.bottom-n.height}:"middle"===s?function(){return l.top+(l.height-n.height)/2}:function(){return l.top},a="right"===o?function(){return l.right-n.width}:"center"===o?function(){return l.left+(l.width-n.width)/2}:function(){return l.left},function(){return n=this.node().getBoundingClientRect(),this.style({top:i()-u.top+"px",left:a()-u.left+"px","z-index":1e3}),this}}er.plainText=function(t){return(t||"").replace(fr," ")},er.lineCount=function(t){return t.selectAll("tspan.line").size()||1},er.positionText=function(t,r,n){return t.each(function(){var t=e.select(this);function i(e,r){return void 0===r?null===(r=t.attr(e))&&(t.attr(e,0),r=0):t.attr(e,r),r}var a=i("x",r),o=i("y",n);"text"===this.nodeName&&t.selectAll("tspan.line").attr({x:a,y:o})})},er.makeEditable=function(t,r){var n=r.gd,i=r.delegate,a=e.dispatch("edit","input","cancel"),o=i||t;if(t.style({"pointer-events":i?"none":"all"}),1!==t.size())throw new Error("boo");function s(){var i,s,u,c;i=e.select(n).select(".svg-container"),s=i.append("div"),u=t.node().style,c=parseFloat(u.fontSize||12),s.classed("plugin-editable editable",!0).style({position:"absolute","font-family":u.fontFamily||"Arial","font-size":c,color:r.fill||u.fill||"black",opacity:1,"background-color":r.background||"transparent",outline:"#ffffff33 1px solid",margin:[-c/8+1,0,0,-1].join("px ")+"px",padding:"0","box-sizing":"border-box"}).attr({contenteditable:!0}).text(r.text||t.attr("data-unformatted")).call(Ar(t,i,r)).on("blur",function(){n._editing=!1,t.text(this.textContent).style({opacity:1});var r,i=e.select(this).attr("class");(r=i?"."+i.split(" ")[0]+"-math-group":"[class*=-math-group]")&&e.select(t.node().parentNode).select(r).style({opacity:0});var o=this.textContent;e.select(this).transition().duration(0).remove(),e.select(document).on("mouseup",null),a.edit.call(t,o)}).on("focus",function(){var t=this;n._editing=!0,e.select(document).on("mouseup",function(){if(e.event.target===t)return!1;document.activeElement===s.node()&&s.node().blur()})}).on("keyup",function(){27===e.event.which?(n._editing=!1,t.style({opacity:1}),e.select(this).style({opacity:0}).on("blur",function(){return!1}).transition().remove(),a.cancel.call(t,this.textContent)):(a.input.call(t,this.textContent),e.select(this).call(Ar(t,i,r)))}).on("keydown",function(){13===e.event.which&&this.blur()}).call(l),t.style({opacity:0});var h,f=o.attr("class");(h=f?"."+f.split(" ")[0]+"-math-group":"[class*=-math-group]")&&e.select(t.node().parentNode).select(h).style({opacity:0})}function l(t){var e=t.node(),r=document.createRange();r.selectNodeContents(e);var n=window.getSelection();n.removeAllRanges(),n.addRange(r),e.focus()}return r.immediate?s():o.on("click",s),e.rebind(t,a,"on")};var kr=function(t){var e=t.marker,n=e.sizeref||1,i=e.sizemin||0,a="area"===e.sizemode?function(t){return Math.sqrt(t/n)}:function(t){return t/n};return function(t){var e=a(t/2);return r(e)&&e>0?Math.max(e,i):0}},Tr={hasLines:function(t){return t.visible&&t.mode&&-1!==t.mode.indexOf("lines")},hasMarkers:function(t){return t.visible&&t.mode&&-1!==t.mode.indexOf("markers")},hasText:function(t){return t.visible&&t.mode&&-1!==t.mode.indexOf("text")},isBubble:function(t){return ne.isPlainObject(t.marker)&&ne.isArrayOrTypedArray(t.marker.size)}},Sr={},Er=Qe.LINE_SPACING,Cr=f.DESELECTDIM,Lr=Sr={};Lr.font=function(t,e,r,n){ne.isPlainObject(e)&&(n=e.color,r=e.size,e=e.family),e&&t.style("font-family",e),r+1&&t.style("font-size",r+"px"),n&&t.call(Oe.fill,n)},Lr.setPosition=function(t,e,r){t.attr("x",e).attr("y",r)},Lr.setSize=function(t,e,r){t.attr("width",e).attr("height",r)},Lr.setRect=function(t,e,r,n,i){t.call(Lr.setPosition,e,r).call(Lr.setSize,n,i)},Lr.translatePoint=function(t,e,n,i){var a=n.c2p(t.x),o=i.c2p(t.y);return!!(r(a)&&r(o)&&e.node())&&("text"===e.node().nodeName?e.attr("x",a).attr("y",o):e.attr("transform","translate("+a+","+o+")"),!0)},Lr.translatePoints=function(t,r,n){t.each(function(t){var i=e.select(this);Lr.translatePoint(t,i,r,n)})},Lr.hideOutsideRangePoint=function(t,e,r,n,i,a){e.attr("display",r.isPtWithinRange(t,i)&&n.isPtWithinRange(t,a)?null:"none")},Lr.hideOutsideRangePoints=function(t,r,n){if(r._hasClipOnAxisFalse){n=n||".point,.textpoint";var i=r.xaxis,a=r.yaxis;t.each(function(r){var o=r[0].trace,s=o.xcalendar,l=o.ycalendar;t.selectAll(n).each(function(t){Lr.hideOutsideRangePoint(t,e.select(this),i,a,s,l)})})}},Lr.crispRound=function(t,e,n){return e&&r(e)?t._context.staticPlot?e:e<1?1:Math.round(e):n||0},Lr.singleLineStyle=function(t,e,r,n,i){e.style("fill","none");var a=(((t||[])[0]||{}).trace||{}).line||{},o=r||a.width||0,s=i||a.dash||"";Oe.stroke(e,n||a.color),Lr.dashLine(e,s,o)},Lr.lineGroupStyle=function(t,r,n,i){t.style("fill","none").each(function(t){var a=(((t||[])[0]||{}).trace||{}).line||{},o=r||a.width||0,s=i||a.dash||"";e.select(this).call(Oe.stroke,n||a.color).call(Lr.dashLine,s,o)})},Lr.dashLine=function(t,e,r){r=+r||0,e=Lr.dashStyle(e,r),t.style({"stroke-dasharray":e,"stroke-width":r+"px"})},Lr.dashStyle=function(t,e){e=+e||1;var r=Math.max(e,3);return"solid"===t?t="":"dot"===t?t=r+"px,"+r+"px":"dash"===t?t=3*r+"px,"+3*r+"px":"longdash"===t?t=5*r+"px,"+5*r+"px":"dashdot"===t?t=3*r+"px,"+r+"px,"+r+"px,"+r+"px":"longdashdot"===t&&(t=5*r+"px,"+2*r+"px,"+r+"px,"+2*r+"px"),t},Lr.singleFillStyle=function(t){var r=(((e.select(t.node()).data()[0]||[])[0]||{}).trace||{}).fillcolor;r&&t.call(Oe.fill,r)},Lr.fillGroupStyle=function(t){t.style("stroke-width",0).each(function(r){var n=e.select(this);try{n.call(Oe.fill,r[0].trace.fillcolor)}catch(e){ne.error(e,t),n.remove()}})},Lr.symbolNames=[],Lr.symbolFuncs=[],Lr.symbolNeedLines={},Lr.symbolNoDot={},Lr.symbolNoFill={},Lr.symbolList=[],Object.keys(Ke).forEach(function(t){var e=Ke[t];Lr.symbolList=Lr.symbolList.concat([e.n,t,e.n+100,t+"-open"]),Lr.symbolNames[e.n]=t,Lr.symbolFuncs[e.n]=e.f,e.needLine&&(Lr.symbolNeedLines[e.n]=!0),e.noDot?Lr.symbolNoDot[e.n]=!0:Lr.symbolList=Lr.symbolList.concat([e.n+200,t+"-dot",e.n+300,t+"-open-dot"]),e.noFill&&(Lr.symbolNoFill[e.n]=!0)});var zr=Lr.symbolNames.length,Pr="M0,0.5L0.5,0L0,-0.5L-0.5,0Z";function Ir(t,e){var r=t%100;return Lr.symbolFuncs[r](e)+(t>=200?Pr:"")}Lr.symbolNumber=function(t){if("string"==typeof t){var e=0;t.indexOf("-open")>0&&(e=100,t=t.replace("-open","")),t.indexOf("-dot")>0&&(e+=200,t=t.replace("-dot","")),(t=Lr.symbolNames.indexOf(t))>=0&&(t+=e)}return t%100>=zr||t>=400?0:Math.floor(Math.max(t,0))};var Dr={x1:1,x2:0,y1:0,y2:0},Or={x1:0,x2:0,y1:1,y2:0};Lr.gradient=function(t,r,n,i,a,o){var l=r._fullLayout._defs.select(".gradients").selectAll("#"+n).data([i+a+o],ne.identity);l.exit().remove(),l.enter().append("radial"===i?"radialGradient":"linearGradient").each(function(){var t=e.select(this);"horizontal"===i?t.attr(Dr):"vertical"===i&&t.attr(Or),t.attr("id",n);var r=s(a),l=s(o);t.append("stop").attr({offset:"0%","stop-color":Oe.tinyRGB(l),"stop-opacity":l.getAlpha()}),t.append("stop").attr({offset:"100%","stop-color":Oe.tinyRGB(r),"stop-opacity":r.getAlpha()})}),t.style({fill:"url(#"+n+")","fill-opacity":null})},Lr.initGradients=function(t){var e=t._fullLayout._defs.selectAll(".gradients").data([0]);e.enter().append("g").classed("gradients",!0),e.selectAll("linearGradient,radialGradient").remove()},Lr.singlePointStyle=function(t,e,r,n,i,a){var o=r.marker;!function(t,e,r,n,i,a,o,s){if(P.traceIs(r,"symbols")){var l=kr(r);e.attr("d",function(t){var e;e="various"===t.ms||"various"===a.size?3:Tr.isBubble(r)?l(t.ms):(a.size||6)/2,t.mrc=e;var n=Lr.symbolNumber(t.mx||a.symbol)||0;return t.om=n%200>=100,Ir(n,e)})}e.style("opacity",function(t){return(t.mo+1||a.opacity+1)-1});var u,c,h,f=!1;if(t.so?(h=o.outlierwidth,c=o.outliercolor,u=a.outliercolor):(h=(t.mlw+1||o.width+1||(t.trace?t.trace.marker.line.width:0)+1)-1,c="mlc"in t?t.mlcc=i(t.mlc):ne.isArrayOrTypedArray(o.color)?Oe.defaultLine:o.color,ne.isArrayOrTypedArray(a.color)&&(u=Oe.defaultLine,f=!0),u="mc"in t?t.mcc=n(t.mc):a.color||"rgba(0,0,0,0)"),t.om)e.call(Oe.stroke,u).style({"stroke-width":(h||1)+"px",fill:"none"});else{e.style("stroke-width",h+"px");var p=a.gradient,d=t.mgt;if(d?f=!0:d=p&&p.type,d&&"none"!==d){var g=t.mgc;g?f=!0:g=p.color;var v="g"+s._fullLayout._uid+"-"+r.uid;f&&(v+="-"+t.i),e.call(Lr.gradient,s,v,d,u,g)}else e.call(Oe.fill,u);h&&e.call(Oe.stroke,c)}}(t,e,r,n,i,o,o.line,a)},Lr.pointStyle=function(t,r,n){if(t.size()){var i=r.marker,a=Lr.tryColorscale(i,""),o=Lr.tryColorscale(i,"line");t.each(function(t){Lr.singlePointStyle(t,e.select(this),r,a,o,n)})}},Lr.makeSelectedPointStyleFns=function(t){var e={},r=t.selected||{},n=t.unselected||{},i=t.marker||{},a=r.marker||{},o=n.marker||{},s=i.opacity,l=a.opacity,u=o.opacity,c=void 0!==l,h=void 0!==u;e.opacityFn=function(t){var e=t.mo,r=void 0!==e;if(r||c||h){if(!t.selected)return h?u:Cr*(r?e:s);if(c)return l}};var f=a.color,p=o.color;(f||p)&&(e.colorFn=function(t){if(t.selected){if(f)return f}else if(p)return p});var d=a.size,g=o.size,v=void 0!==d,m=void 0!==g;return(v||m)&&(e.sizeFn=function(t){var e=t.mrc;return t.selected?v?d/2:e:m?g/2:e}),e},Lr.selectedPointStyle=function(t,r){if(t.size()&&r.selectedpoints){var n=Lr.makeSelectedPointStyleFns(r),i=r.marker||{};t.each(function(t){var r=e.select(this),i=n.opacityFn(t);void 0!==i&&r.style("opacity",i)}),n.colorFn&&t.each(function(t){var r=e.select(this),i=n.colorFn(t);i&&Oe.fill(r,i)}),P.traceIs(r,"symbols")&&n.sizeFn&&t.each(function(t){var r=e.select(this),a=t.mx||i.symbol||0,o=n.sizeFn(t);r.attr("d",Ir(Lr.symbolNumber(a),o)),t.mrc2=o})}},Lr.tryColorscale=function(t,e){var r=e?ne.nestedProperty(t,e).get():t,n=r.colorscale,i=r.color;return n&&ne.isArrayOrTypedArray(i)?Je.makeColorScaleFunc(Je.extractScale(n,r.cmin,r.cmax)):ne.identity};var Rr={start:1,end:-1,middle:0,bottom:1,top:-1};function Fr(t,r,n,i){var a=e.select(t.node().parentNode),o=-1!==r.indexOf("top")?"top":-1!==r.indexOf("bottom")?"bottom":"middle",s=-1!==r.indexOf("left")?"end":-1!==r.indexOf("right")?"start":"middle",l=i?i/.8+1:0,u=(er.lineCount(t)-1)*Er+1,c=Rr[s]*l,h=.75*n+Rr[o]*l+(Rr[o]-1)*u*n/2;t.attr("text-anchor",s),a.attr("transform","translate("+c+","+h+")")}function Br(t,e){var n=t.ts||e.textfont.size;return r(n)&&n>0?n:0}Lr.textPointStyle=function(t,r,n){t.each(function(t){var i=e.select(this),a=ne.extractOption(t,r,"tx","text");if(a){var o=t.tp||r.textposition,s=Br(t,r);i.call(Lr.font,t.tf||r.textfont.family,s,t.tc||r.textfont.color).text(a).call(er.convertToTspans,n).call(Fr,o,s,t.mrc)}else i.remove()})},Lr.selectedTextStyle=function(t,r){if(t.size()&&r.selectedpoints){var n=r.selected||{},i=r.unselected||{};t.each(function(t){var a,o=e.select(this),s=t.tc||r.textfont.color,l=t.tp||r.textposition,u=Br(t,r),c=(n.textfont||{}).color,h=(i.textfont||{}).color;t.selected?c&&(a=c):h?a=h:c||(a=Oe.addOpacity(s,Cr)),a&&Oe.fill(o,a),Fr(o,l,u,t.mrc2||t.mrc)})}};var Nr=.5;function jr(t,r,n,i){var a=t[0]-r[0],o=t[1]-r[1],s=n[0]-r[0],l=n[1]-r[1],u=Math.pow(a*a+o*o,Nr/2),c=Math.pow(s*s+l*l,Nr/2),h=(c*c*a-u*u*s)*i,f=(c*c*o-u*u*l)*i,p=3*c*(u+c),d=3*u*(u+c);return[[e.round(r[0]+(p&&h/p),2),e.round(r[1]+(p&&f/p),2)],[e.round(r[0]-(d&&h/d),2),e.round(r[1]-(d&&f/d),2)]]}Lr.smoothopen=function(t,e){if(t.length<3)return"M"+t.join("L");var r,n="M"+t[0],i=[];for(r=1;r=1e4&&(Lr.savedBBoxes={},qr=0),n&&(Lr.savedBBoxes[n]=d),qr++,ne.extendFlat({},d)},Lr.setClipUrl=function(t,r){if(r){var n="#"+r,i=e.select("base");i.size()&&i.attr("href")&&(n=window.location.href.split("#")[0]+n),t.attr("clip-path","url("+n+")")}else t.attr("clip-path",null)},Lr.getTranslate=function(t){var e=(t[t.attr?"attr":"getAttribute"]("transform")||"").replace(/.*\btranslate\((-?\d*\.?\d*)[^-\d]*(-?\d*\.?\d*)[^\d].*/,function(t,e,r){return[e,r].join(" ")}).split(" ");return{x:+e[0]||0,y:+e[1]||0}},Lr.setTranslate=function(t,e,r){var n=t.attr?"attr":"getAttribute",i=t.attr?"attr":"setAttribute",a=t[n]("transform")||"";return e=e||0,r=r||0,a=a.replace(/(\btranslate\(.*?\);?)/,"").trim(),a=(a+=" translate("+e+", "+r+")").trim(),t[i]("transform",a),a},Lr.getScale=function(t){var e=(t[t.attr?"attr":"getAttribute"]("transform")||"").replace(/.*\bscale\((\d*\.?\d*)[^\d]*(\d*\.?\d*)[^\d].*/,function(t,e,r){return[e,r].join(" ")}).split(" ");return{x:+e[0]||1,y:+e[1]||1}},Lr.setScale=function(t,e,r){var n=t.attr?"attr":"getAttribute",i=t.attr?"attr":"setAttribute",a=t[n]("transform")||"";return e=e||1,r=r||1,a=a.replace(/(\bscale\(.*?\);?)/,"").trim(),a=(a+=" scale("+e+", "+r+")").trim(),t[i]("transform",a),a},Lr.setPointGroupScale=function(t,e,r){var n,i,a;return e=e||1,r=r||1,i=1===e&&1===r?"":" scale("+e+","+r+")",a=/\s*sc.*/,t.each(function(){n=(this.getAttribute("transform")||"").replace(a,""),n=(n+=i).trim(),this.setAttribute("transform",n)}),i};var Gr=/translate\([^)]*\)\s*$/;Lr.setTextPointsScale=function(t,r,n){t.each(function(){var t,i=e.select(this),a=i.select("text");if(a.node()){var o=parseFloat(a.attr("x")||0),s=parseFloat(a.attr("y")||0),l=(i.attr("transform")||"").match(Gr);t=1===r&&1===n?[]:["translate("+o+","+s+")","scale("+r+","+n+")","translate("+-o+","+-s+")"],l&&t.push(l),i.attr("transform",t.join(" "))}})};var Wr={PTS_LINESONLY:20,minTolerance:.2,toleranceGrowth:10,maxScreensAway:20},Yr=Ae.dash,Xr=m.extendFlat,Zr={x:{valType:"data_array",editType:"calc+clearAxisTypes"},x0:{valType:"any",dflt:0,editType:"calc+clearAxisTypes"},dx:{valType:"number",dflt:1,editType:"calc"},y:{valType:"data_array",editType:"calc+clearAxisTypes"},y0:{valType:"any",dflt:0,editType:"calc+clearAxisTypes"},dy:{valType:"number",dflt:1,editType:"calc"},text:{valType:"string",dflt:"",arrayOk:!0,editType:"calc"},hovertext:{valType:"string",dflt:"",arrayOk:!0,editType:"style"},mode:{valType:"flaglist",flags:["lines","markers","text"],extras:["none"],editType:"calc"},hoveron:{valType:"flaglist",flags:["points","fills"],editType:"style"},line:{color:{valType:"color",editType:"style"},width:{valType:"number",min:0,dflt:2,editType:"style"},shape:{valType:"enumerated",values:["linear","spline","hv","vh","hvh","vhv"],dflt:"linear",editType:"plot"},smoothing:{valType:"number",min:0,max:1.3,dflt:1,editType:"plot"},dash:Xr({},Yr,{editType:"style"}),simplify:{valType:"boolean",dflt:!0,editType:"plot"},editType:"plot"},connectgaps:{valType:"boolean",dflt:!1,editType:"calc"},cliponaxis:{valType:"boolean",dflt:!0,editType:"plot"},fill:{valType:"enumerated",values:["none","tozeroy","tozerox","tonexty","tonextx","toself","tonext"],dflt:"none",editType:"calc"},fillcolor:{valType:"color",editType:"style"},marker:Xr({symbol:{valType:"enumerated",values:Sr.symbolList,dflt:"circle",arrayOk:!0,editType:"style"},opacity:{valType:"number",min:0,max:1,arrayOk:!0,editType:"style"},size:{valType:"number",min:0,dflt:6,arrayOk:!0,editType:"calcIfAutorange"},maxdisplayed:{valType:"number",min:0,dflt:0,editType:"plot"},sizeref:{valType:"number",dflt:1,editType:"calc"},sizemin:{valType:"number",min:0,dflt:0,editType:"calc"},sizemode:{valType:"enumerated",values:["diameter","area"],dflt:"diameter",editType:"calc"},showscale:{valType:"boolean",dflt:!1,editType:"calc"},colorbar:ze,line:Xr({width:{valType:"number",min:0,arrayOk:!0,editType:"style"},editType:"calc"},De()),gradient:{type:{valType:"enumerated",values:["radial","horizontal","vertical","none"],arrayOk:!0,dflt:"none",editType:"calc"},color:{valType:"color",arrayOk:!0,editType:"calc"},editType:"calc"},editType:"calc"},De()),selected:{marker:{opacity:{valType:"number",min:0,max:1,editType:"style"},color:{valType:"color",editType:"style"},size:{valType:"number",min:0,editType:"style"},editType:"style"},textfont:{color:{valType:"color",editType:"style"},editType:"style"},editType:"style"},unselected:{marker:{opacity:{valType:"number",min:0,max:1,editType:"style"},color:{valType:"color",editType:"style"},size:{valType:"number",min:0,editType:"style"},editType:"style"},textfont:{color:{valType:"color",editType:"style"},editType:"style"},editType:"style"},textposition:{valType:"enumerated",values:["top left","top center","top right","middle left","middle center","middle right","bottom left","bottom center","bottom right"],dflt:"middle center",arrayOk:!0,editType:"calc"},textfont:T({editType:"calc",colorEditType:"style",arrayOk:!0}),r:{valType:"data_array",editType:"calc"},t:{valType:"data_array",editType:"calc"}},Jr=Zr.marker,Kr={r:Zr.r,t:Zr.t,marker:{color:Jr.color,size:Jr.size,symbol:Jr.symbol,opacity:Jr.opacity,editType:"calc"}},Qr=m.extendFlat,$r=ye.overrideAll,tn=Qr({},Ce.domain,{});function en(t,e){return Qr({},e,{showline:{valType:"boolean"},showticklabels:{valType:"boolean"},tickorientation:{valType:"enumerated",values:["horizontal","vertical"]},ticklen:{valType:"number",min:0},tickcolor:{valType:"color"},ticksuffix:{valType:"string"},endpadding:{valType:"number"},visible:{valType:"boolean"}})}var rn=$r({radialaxis:en(0,{range:{valType:"info_array",items:[{valType:"number"},{valType:"number"}]},domain:tn,orientation:{valType:"number"}}),angularaxis:en(0,{range:{valType:"info_array",items:[{valType:"number",dflt:0},{valType:"number",dflt:360}]},domain:tn}),layout:{direction:{valType:"enumerated",values:["clockwise","counterclockwise"]},orientation:{valType:"angle"}}},"plot","nested"),nn={},an=ne.extendFlat,on=ne.extendDeepAll,sn="_isSubplotObj",ln="_isLinkedToArray",un=[sn,ln,"_arrayAttrRegexps","_deprecated"];function cn(t,e,r){if(!t)return!1;if(t._isLinkedToArray)if(hn(e[r]))r++;else if(r=a.length)return!1;if(2===t.dimensions){if(r++,e.length===r)return t;var o=e[r];if(!hn(o))return!1;t=a[i][o]}else t=a[i]}else t=a}}return t}function hn(t){return t===Math.round(t)&&t>=0}function fn(t){return function(t){nn.crawl(t,function(t,e,r){nn.isValObject(t)?"data_array"===t.valType?(t.role="data",r[e+"src"]={valType:"string",editType:"none"}):!0===t.arrayOk&&(r[e+"src"]={valType:"string",editType:"none"}):ne.isPlainObject(t)&&(t.role="object")})}(t),function(t){nn.crawl(t,function(t,e,r){if(!t)return;var n=t[ln];if(!n)return;delete t[ln],r[e]={items:{}},r[e].items[n]=t,r[e].role="object"})}(t),t}function pn(t,e,r){var n=ne.nestedProperty(t,r),i=on({},e.layoutAttributes);i[sn]=!0,n.set(i)}function dn(t,e,r){var n=ne.nestedProperty(t,r);n.set(on(n.get()||{},e))}nn.IS_SUBPLOT_OBJ=sn,nn.IS_LINKED_TO_ARRAY=ln,nn.DEPRECATED="_deprecated",nn.UNDERSCORE_ATTRS=un,nn.get=function(){var t={};P.allTypes.concat("area").forEach(function(e){t[e]=function(t){var e,r;"area"===t?(e={attributes:Kr},r={}):(e=P.modules[t]._module,r=e.basePlotModule);var n={type:null};on(n,E),on(n,e.attributes),r.attributes&&on(n,r.attributes);n.type=t;var i={meta:e.meta||{},attributes:fn(n)};if(e.layoutAttributes){var a={};on(a,e.layoutAttributes),i.layoutAttributes=fn(a)}return i}(e)});var e,r={};return Object.keys(P.transformsRegistry).forEach(function(t){r[t]=function(t){var e=P.transformsRegistry[t],r=on({},e.attributes);return Object.keys(P.componentsRegistry).forEach(function(e){var n=P.componentsRegistry[e];n.schema&&n.schema.transforms&&n.schema.transforms[t]&&Object.keys(n.schema.transforms[t]).forEach(function(e){dn(r,n.schema.transforms[t][e],e)})}),{attributes:fn(r)}}(t)}),{defs:{valObjects:ne.valObjectMeta,metaKeys:un.concat(["description","role","editType","impliedEdits"]),editType:{traces:ye.traces,layout:ye.layout},impliedEdits:{}},traces:t,layout:function(){var t,e,r={};for(t in on(r,z),P.subplotsRegistry)if((e=P.subplotsRegistry[t]).layoutAttributes)if("cartesian"===e.name)pn(r,e,"xaxis"),pn(r,e,"yaxis");else{var n="subplot"===e.attr?e.name:e.attr;pn(r,e,n)}for(t in r=function(t){return an(t,{radialaxis:rn.radialaxis,angularaxis:rn.angularaxis}),an(t,rn.layout),t}(r),P.componentsRegistry){var i=(e=P.componentsRegistry[t]).schema;if(i&&(i.subplots||i.layout)){var a=i.subplots;if(a&&a.xaxis&&!a.yaxis)for(var o in a.xaxis)delete r.yaxis[o]}else e.layoutAttributes&&dn(r,e.layoutAttributes,e.name)}return{layoutAttributes:fn(r)}}(),transforms:r,frames:(e={frames:ne.extendDeepAll({},Me)},fn(e),e.frames),animation:fn(we)}},nn.crawl=function(t,e,r,n){var i=r||0;n=n||"",Object.keys(t).forEach(function(r){var a=t[r];if(-1===un.indexOf(r)){var o=(n?n+".":"")+r;e(a,r,t,i,o),nn.isValObject(a)||ne.isPlainObject(a)&&"impliedEdits"!==r&&nn.crawl(a,e,i+1,o)}})},nn.isValObject=function(t){return t&&void 0!==t.valType},nn.findArrayAttributes=function(t){var e=[],r=[];function n(n,i,a,o){if(r=r.slice(0,o).concat([i]),n&&("data_array"===n.valType||!0===n.arrayOk)&&!("colorbar"===r[o-1]&&("ticktext"===i||"tickvals"===i))){var s=function(t){return t.join(".")}(r),l=ne.nestedProperty(t,s).get();ne.isArrayOrTypedArray(l)&&e.push(s)}}if(nn.crawl(E,n),t._module&&t._module.attributes&&nn.crawl(t._module.attributes,n),t.transforms)for(var i=t.transforms,a=0;a=t.transforms.length)return!1;n=(r=(P.transformsRegistry[t.transforms[o].type]||{}).attributes)&&r[e[2]],a=3}else if("area"===t.type)n=Kr[i];else{var s=t._module;if(s||(s=(P.modules[t.type||E.type.dflt]||{})._module),!s)return!1;if(!(n=(r=s.attributes)&&r[i])){var l=s.basePlotModule;l&&l.attributes&&(n=l.attributes[i])}n||(n=E[i])}return cn(n,e,a)},nn.getLayoutValObject=function(t,e){return cn(function(t,e){var r,n,i,a,o=t._basePlotModules;if(o){var s;for(r=0;rn?1:-1:+(t.substr(1)||1)-+(e.substr(1)||1)}},vn={};function mn(t,e,r){var n,i,a,o=!1;if("data"===e.type)n=t._fullData[null!==e.traces?e.traces[0]:0];else{if("layout"!==e.type)return!1;n=t._fullLayout}return i=ne.nestedProperty(n,e.prop).get(),(a=r[e.type]=r[e.type]||{}).hasOwnProperty(e.prop)&&a[e.prop]!==i&&(o=!0),a[e.prop]=i,{changed:o,value:i}}function yn(t,e){var r=[],n=e[0],i={};if("string"==typeof n)i[n]=e[1];else{if(!ne.isPlainObject(n))return r;i=n}return bn(i,function(t,e,n){r.push({type:"layout",prop:t,value:n})},"",0),r}function xn(t,e){var r,n,i,a,o=[];if(n=e[0],i=e[1],r=e[2],a={},"string"==typeof n)a[n]=i;else{if(!ne.isPlainObject(n))return o;a=n,void 0===r&&(r=i)}return void 0===r&&(r=null),bn(a,function(e,n,i){var a;if(Array.isArray(i)){var s=Math.min(i.length,t.data.length);r&&(s=Math.min(s,r.length)),a=[];for(var l=0;l0?".":"")+i;ne.isPlainObject(a)?bn(a,e,o,n+1):e(o,i,a)}})}vn.manageCommandObserver=function(t,e,r,n){var i={},a=!0;e&&e._commandObserver&&(i=e._commandObserver),i.cache||(i.cache={}),i.lookupTable={};var o=vn.hasSimpleAPICommandBindings(t,r,i.lookupTable);if(e&&e._commandObserver){if(o)return i;if(e._commandObserver.remove)return e._commandObserver.remove(),e._commandObserver=null,i}if(o){mn(t,o,i.cache),i.check=function(){if(a){var e=mn(t,o,i.cache);return e.changed&&n&&void 0!==i.lookupTable[e.value]&&(i.disable(),Promise.resolve(n({value:e.value,type:o.type,prop:o.prop,traces:o.traces,index:i.lookupTable[e.value]})).then(i.enable,i.enable)),e.changed}};for(var s=["plotly_relayout","plotly_redraw","plotly_restyle","plotly_update","plotly_animatingframe","plotly_afterplot"],l=0;l=r.width-20?(a["text-anchor"]="start",a.x=5):(a["text-anchor"]="end",a.x=r._paper.attr("width")-7),n.attr(a);var o=n.select(".js-link-to-tool"),s=n.select(".js-link-spacer"),l=n.select(".js-sourcelinks");t._context.showSources&&t._context.showSources(t),t._context.showLink&&function(t,e){e.text("");var r=e.append("a").attr({"xlink:xlink:href":"#",class:"link--impt link--embedview","font-weight":"bold"}).text(t._context.linkText+" "+String.fromCharCode(187));if(t._context.sendData)r.on("click",function(){An.sendDataToCloud(t)});else{var n=window.location.pathname.split("/"),i=window.location.search;r.attr({"xlink:xlink:show":"new","xlink:xlink:href":"/"+n[2].split(".")[0]+"/"+n[1]+i})}}(t,o),s.text(o.text()&&l.text()?" - ":"")}},An.sendDataToCloud=function(t){t.emit("plotly_beforeexport");var r=window.PLOTLYENV&&window.PLOTLYENV.BASE_URL||"https://plot.ly",n=e.select(t).append("div").attr("id","hiddenform").style("display","none"),i=n.append("form").attr({action:r+"/external",method:"post",target:"_blank"});return i.append("input").attr({type:"text",name:"data"}).node().value=An.graphJson(t,!1,"keepdata"),i.node().submit(),n.remove(),t.emit("plotly_afterexport"),!1};var Sn,En=["days","shortDays","months","shortMonths","periods","dateTime","date","time","decimal","thousands","grouping","currency"],Cn=["year","month","dayMonth","dayMonthYear"];function Ln(t,e){var r,n,i=t.trace,a=i._arrayAttrs,o={};for(r=0;r=0)return!0}return!1},An.cleanPlot=function(t,e,r,n){var i,a,o=n._basePlotModules||[];for(i=0;i0){var u=function(t){var e,r={left:0,right:0,bottom:0,top:0};if(t)for(e in t)t.hasOwnProperty(e)&&(r.left+=t[e].left||0,r.right+=t[e].right||0,r.bottom+=t[e].bottom||0,r.top+=t[e].top||0);return r}(t._boundingBoxMargins),c=u.left+u.right,h=u.bottom+u.top,f=1-2*s,p=n._container&&n._container.node?n._container.node().getBoundingClientRect():{width:n.width,height:n.height};i=Math.round(f*(p.width-c)),a=Math.round(f*(p.height-h))}else{var d=l?window.getComputedStyle(t):{};i=parseFloat(d.width)||n.width,a=parseFloat(d.height)||n.height}var g=An.layoutAttributes.width.min,v=An.layoutAttributes.height.min;i1,y=!e.height&&Math.abs(n.height-a)>1;(y||m)&&(m&&(n.width=i),y&&(n.height=a)),t._initialAutoSize||(t._initialAutoSize={width:i,height:a}),An.sanitizeMargins(n)},An.supplyLayoutModuleDefaults=function(t,e,r,n){var i,a,o,s=P.componentsRegistry,l=e._basePlotModules,u=P.subplotsRegistry.cartesian;for(i in s)(o=s[i]).includeBasePlot&&o.includeBasePlot(t,e);for(var c in l.length||l.push(u),e._has("cartesian")&&(P.getComponentMethod("grid","contentDefaults")(t,e),u.finalizeSubplots(t,e)),e._subplots)e._subplots[c].sort(ne.subplotSort);for(a=0;a.5*n.width&&(r.l=r.r=0),r.b+r.t>.5*n.height&&(r.b=r.t=0),n._pushmargin[e]={l:{val:r.x,size:r.l+i},r:{val:r.x,size:r.r+i},b:{val:r.y,size:r.b+i},t:{val:r.y,size:r.t+i}}}else delete n._pushmargin[e];n._replotting||An.doAutoMargin(t)}},An.doAutoMargin=function(t){var e=t._fullLayout;e._size||(e._size={}),e._pushmargin||(e._pushmargin={});var n=e._size,i=JSON.stringify(n),a=Math.max(e.margin.l||0,0),o=Math.max(e.margin.r||0,0),s=Math.max(e.margin.t||0,0),l=Math.max(e.margin.b||0,0),u=e._pushmargin;if(!1!==e.margin.autoexpand)for(var c in u.base={l:{val:0,size:a},r:{val:1,size:o},t:{val:1,size:s},b:{val:0,size:l}},u){var h=u[c].l||{},f=u[c].b||{},p=h.val,d=h.size,g=f.val,v=f.size;for(var m in u){if(r(d)&&u[m].r){var y=u[m].r.val,x=u[m].r.size;if(y>p){var b=(d*y+(x-e.width)*p)/(y-p),_=(x*(1-p)+(d-e.width)*(1-y))/(y-p);b>=0&&_>=0&&b+_>a+o&&(a=b,o=_)}}if(r(v)&&u[m].t){var w=u[m].t.val,M=u[m].t.size;if(w>g){var A=(v*w+(M-e.height)*g)/(w-g),k=(M*(1-g)+(v-e.height)*(1-w))/(w-g);A>=0&&k>=0&&A+k>l+s&&(l=A,s=k)}}}}if(n.l=Math.round(a),n.r=Math.round(o),n.t=Math.round(s),n.b=Math.round(l),n.p=Math.round(e.margin.pad),n.w=Math.round(e.width)-n.l-n.r,n.h=Math.round(e.height)-n.t-n.b,!e._replotting&&"{}"!==i&&i!==JSON.stringify(e._size))return P.call("plot",t)},An.graphJson=function(t,e,r,n,i){(i&&e&&!t._fullData||i&&!e&&!t._fullLayout)&&An.supplyDefaults(t);var a=i?t._fullData:t.data,o=i?t._fullLayout:t.layout,s=(t._transitionData||{})._frames;function l(t){if("function"==typeof t)return null;if(ne.isPlainObject(t)){var e,n,i={};for(e in t)if("function"!=typeof t[e]&&-1===["_","["].indexOf(e.charAt(0))){if("keepdata"===r){if("src"===e.substr(e.length-3))continue}else if("keepstream"===r){if("string"==typeof(n=t[e+"src"])&&n.indexOf(":")>0&&!ne.isPlainObject(t.stream))continue}else if("keepall"!==r&&"string"==typeof(n=t[e+"src"])&&n.indexOf(":")>0)continue;i[e]=l(t[e])}return i}return Array.isArray(t)?t.map(l):ne.isJSDate(t)?ne.ms2DateTimeLocal(+t):t}var u={data:(a||[]).map(function(t){var r=l(t);return e&&delete r.fit,r})};return e||(u.layout=l(o)),t.framework&&t.framework.isPolar&&(u=t.framework.getConfig()),s&&(u.frames=l(s)),"object"===n?u:JSON.stringify(u)},An.modifyFrames=function(t,e){var r,n,i,a=t._transitionData._frames,o=t._transitionData._frameHash;for(r=0;r0&&(t._transitioningWithDuration=!0),t._transitionData._interruptCallbacks.push(function(){h=!0}),i.redraw&&t._transitionData._interruptCallbacks.push(function(){return P.call("redraw",t)}),t._transitionData._interruptCallbacks.push(function(){t.emit("plotly_transitioninterrupted",[])});var n,o,s=0,l=0;function u(){return s++,function(){var r;h||++l!==s||(r=e,t._transitionData&&(function(t){if(t)for(;t.length;)t.shift()}(t._transitionData._interruptCallbacks),Promise.resolve().then(function(){if(i.redraw)return P.call("redraw",t)}).then(function(){t._transitioning=!1,t._transitioningWithDuration=!1,t.emit("plotly_transitioned",[])}).then(r)))}}var f=t._fullLayout._basePlotModules,p=!1;if(r)for(o=0;o=0;a--)if(g[a].enabled){r._indexToPoints=g[a]._indexToPoints;break}n&&n.calc&&(d=n.calc(t,r))}Array.isArray(d)&&d[0]||(d=[{x:Mn,y:Mn}]),d[0].t||(d[0].t={}),d[0].trace=r,u[i]=d}P.getComponentMethod("fx","calc")(t)},An.rehover=function(t){t._fullLayout._rehover&&t._fullLayout._rehover()},An.generalUpdatePerTraceModule=function(t,e,r,n){var i,a=e.traceHash,o={};for(i=0;i0||h<0){var d={left:[-i,0],right:[i,0],top:[0,-i],bottom:[0,i]}[c.side];n.attr("transform","translate("+d+")")}}}k.call(T),M&&(w?k.on(".opacity",null):(b=0,_=!0,k.text(l).on("mouseover.opacity",function(){e.select(this).transition().duration(f.SHOW_PLACEHOLDER).style("opacity",1)}).on("mouseout.opacity",function(){e.select(this).transition().duration(f.HIDE_PLACEHOLDER).style("opacity",0)})),k.call(er.makeEditable,{gd:t}).on("edit",function(e){void 0!==u?P.call("restyle",t,s,e,u):P.call("relayout",t,s,e)}).on("cancel",function(){this.text(this.attr("data-unformatted")).call(T)}).on("input",function(t){this.text(t||" ").call(er.positionText,h.x,h.y)}));return k.classed("js-placeholder",_),d}},On=/ [XY][0-9]* /;var Rn=t.FP_SAFE,Fn=Vn,Bn=Un,Nn=function(t){t._length||t.setScale();var e,r=t._min&&t._max&&t._min.length&&t._max.length;t.autorange&&r&&(t.range=Vn(t),t._r=t.range.slice(),t._rl=ne.simpleMap(t._r,t.r2l),(e=t._input).range=t.range.slice(),e.autorange=t.autorange);if(t._anchorAxis&&t._anchorAxis.rangeslider){var n=t._anchorAxis.rangeslider[t._name];n&&"auto"===n.rangemode&&(n.range=r?Vn(t):t._rangeInitial?t._rangeInitial.slice():t.range.slice()),(e=t._anchorAxis._input).rangeslider[t._name]=ne.extendFlat({},n)}},jn=function(t,e,n){if(!function(t){return t.autorange||t._rangesliderAutorange}(t)||!e)return;t._min||(t._min=[]);t._max||(t._max=[]);n||(n={});t._m||t.setScale();var i,a,o,s,l,u,c,h,f,p,d,g,v=e.length,m=n.padded||!1,y=n.tozero&&("linear"===t.type||"-"===t.type),x="log"===t.type,b=!1;function _(t){if(Array.isArray(t))return b=!0,function(e){return Math.max(Number(t[e]||0),0)};var e=Math.max(Number(t||0),0);return function(){return e}}var w=_((t._m>0?n.ppadplus:n.ppadminus)||n.ppad||0),M=_((t._m>0?n.ppadminus:n.ppadplus)||n.ppad||0),A=_(n.vpadplus||n.vpad),k=_(n.vpadminus||n.vpad);if(!b){if(d=1/0,g=-1/0,x)for(i=0;i0&&(d=s),s>g&&s-Rn&&(d=s),s>g&&s=b&&(s.extrapad||!m)){p=!1;break}_(i,s.val)&&s.pad<=b&&(m||!s.extrapad)&&(v.splice(a,1),a--)}if(p){var T=y&&0===i;v.push({val:i,pad:T?0:b,extrapad:!T&&m})}}}}var S=Math.min(6,v);for(i=0;i=S;i--)T(i)};function Vn(t){var e,r,n,i,a,o,s,l,u=[],c=t._min[0].val,h=t._max[0].val,f=0,p=!1,d=Un(t);for(e=1;e0&&s>0&&l/s>f&&(a=n,o=i,f=l/s);if(c===h){var v=c-1,m=c+1;u="tozero"===t.rangemode?c<0?[v,0]:[0,m]:"nonnegative"===t.rangemode?[Math.max(0,v),Math.max(0,m)]:[v,m]}else f&&("linear"!==t.type&&"-"!==t.type||("tozero"===t.rangemode?(a.val>=0&&(a={val:0,pad:0}),o.val<=0&&(o={val:0,pad:0})):"nonnegative"===t.rangemode&&(a.val-f*d(a)<0&&(a={val:0,pad:0}),o.val<0&&(o={val:1,pad:0})),f=(o.val-a.val)/(t._length-d(a)-d(o))),u=[a.val-f*d(a),o.val+f*d(o)]);return u[0]===u[1]&&("tozero"===t.rangemode?u=u[0]<0?[u[0],0]:u[0]>0?[0,u[0]]:[0,1]:(u=[u[0]-1,u[0]+1],"nonnegative"===t.rangemode&&(u[0]=Math.max(0,u[0])))),p&&u.reverse(),ne.simpleMap(u,t.l2r||Number)}function Un(t){var e=t._length/20;return"domain"===t.constrain&&t._inputDomain&&(e*=(t._inputDomain[1]-t._inputDomain[0])/(t.domain[1]-t.domain[0])),function(t){return t.pad+(t.extrapad?e:0)}}function qn(t){return r(t)&&Math.abs(t)=e}var Wn=t.BADNUM,Yn=function(t,e){return function(t,e){for(var n,i=0,a=0,o=Math.max(1,(t.length-1)/1e3),s=0;s2*a}(t,e)?"date":function(t){for(var e,r=Math.max(1,(t.length-1)/1e3),n=0,i=0,a=0;a2*n}(t)?"category":function(t){if(!t)return!1;for(var e=0;e0)return Math.log(e)/Math.LN10;if(e<=0&&r&&t.range&&2===t.range.length){var n=t.range[0],i=t.range[1];return.5*(n+i-3*a*Math.abs(n-i))}return $n}function s(e,n,i){var a=Jn(e,i||t.calendar);if(a===$n){if(!r(e))return $n;a=Jn(new Date(+e))}return a}function l(e,r,n){return Zn(e,r,n||t.calendar)}function u(e){return t._categories[Math.round(e)]}function c(e){if(t._categoriesMap){var n=t._categoriesMap[e];if(void 0!==n)return n}if(r(e))return+e}function h(n){return r(n)?e.round(t._b+t._m*n,2):$n}function f(e){return(e-t._b)/t._m}t.c2l="log"===t.type?o:Kn,t.l2c="log"===t.type?ti:Kn,t.l2p=h,t.p2l=f,t.c2p="log"===t.type?function(t,e){return h(o(t,e))}:h,t.p2c="log"===t.type?function(t){return ti(f(t))}:f,-1!==["linear","-"].indexOf(t.type)?(t.d2r=t.r2d=t.d2c=t.r2c=t.d2l=t.r2l=Xn,t.c2d=t.c2r=t.l2d=t.l2r=Kn,t.d2p=t.r2p=function(e){return t.l2p(Xn(e))},t.p2d=t.p2r=f,t.cleanPos=Kn):"log"===t.type?(t.d2r=t.d2l=function(t,e){return o(Xn(t),e)},t.r2d=t.r2c=function(t){return ti(Xn(t))},t.d2c=t.r2l=Xn,t.c2d=t.l2r=Kn,t.c2r=o,t.l2d=ti,t.d2p=function(e,r){return t.l2p(t.d2r(e,r))},t.p2d=function(t){return ti(f(t))},t.r2p=function(e){return t.l2p(Xn(e))},t.p2r=f,t.cleanPos=Kn):"date"===t.type?(t.d2r=t.r2d=ne.identity,t.d2c=t.r2c=t.d2l=t.r2l=s,t.c2d=t.c2r=t.l2d=t.l2r=l,t.d2p=t.r2p=function(e,r,n){return t.l2p(s(e,0,n))},t.p2d=t.p2r=function(t,e,r){return l(f(t),e,r)},t.cleanPos=function(e){return ne.cleanDate(e,$n,t.calendar)}):"category"===t.type&&(t.d2c=t.d2l=function(e){if(null!==e&&void 0!==e){if(void 0===t._categoriesMap&&(t._categoriesMap={}),void 0!==t._categoriesMap[e])return t._categoriesMap[e];t._categories.push(e);var r=t._categories.length-1;return t._categoriesMap[e]=r,r}return $n},t.r2d=t.c2d=t.l2d=u,t.d2r=t.d2l_noadd=c,t.r2c=function(e){var r=c(e);return void 0!==r?r:t.fraction2r(.5)},t.l2r=t.c2r=Kn,t.r2l=c,t.d2p=function(e){return t.l2p(t.r2c(e))},t.p2d=function(t){return u(f(t))},t.r2p=t.d2p,t.p2r=f,t.cleanPos=function(t){return"string"==typeof t&&""!==t?t:Kn(t)}),t.fraction2r=function(e){var r=t.r2l(t.range[0]),n=t.r2l(t.range[1]);return t.l2r(r+e*(n-r))},t.r2fraction=function(e){var r=t.r2l(t.range[0]),n=t.r2l(t.range[1]);return(t.r2l(e)-r)/(n-r)},t.cleanRange=function(e,n){n||(n={}),e||(e="range");var a,o,s=ne.nestedProperty(t,e).get();if(o=(o="date"===t.type?ne.dfltRange(t.calendar):"y"===i?Te.DFLTRANGEY:n.dfltRange||Te.DFLTRANGEX).slice(),s&&2===s.length)for("date"===t.type&&(s[0]=ne.cleanDate(s[0],$n,t.calendar),s[1]=ne.cleanDate(s[1],$n,t.calendar)),a=0;a<2;a++)if("date"===t.type){if(!ne.isDateTime(s[a],t.calendar)){t[e]=o;break}if(t.r2l(s[0])===t.r2l(s[1])){var l=ne.constrain(t.r2l(s[0]),ne.MIN_MS+1e3,ne.MAX_MS-1e3);s[0]=t.l2r(l-1e3),s[1]=t.l2r(l+1e3);break}}else{if(!r(s[a])){if(!r(s[1-a])){t[e]=o;break}s[a]=s[1-a]*(a?10:.1)}if(s[a]<-Qn?s[a]=-Qn:s[a]>Qn&&(s[a]=Qn),s[0]===s[1]){var u=Math.max(1,Math.abs(1e-6*s[0]));s[0]-=u,s[1]+=u}}else ne.nestedProperty(t,e).set(o)},t.setScale=function(e){var r=n._size;if(t._categories||(t._categories=[]),t._categoriesMap||(t._categoriesMap={}),t.overlaying){var a=gn.getFromId({_fullLayout:n},t.overlaying);t.domain=a.domain}var o=e&&t._r?"_r":"range",s=t.calendar;t.cleanRange(o);var l=t.r2l(t[o][0],s),u=t.r2l(t[o][1],s);if("y"===i?(t._offset=r.t+(1-t.domain[1])*r.h,t._length=r.h*(t.domain[1]-t.domain[0]),t._m=t._length/(l-u),t._b=-t._m*u):(t._offset=r.l+t.domain[0]*r.w,t._length=r.w*(t.domain[1]-t.domain[0]),t._m=t._length/(u-l),t._b=-t._m*l),!isFinite(t._m)||!isFinite(t._b))throw n._replotting=!1,new Error("Something went wrong with axis scaling")},t.makeCalcdata=function(e,r){var n,i,a,o,s=t.type,l="date"===s&&e[r+"calendar"];if(r in e){if(n=e[r],o=e._length||n.length,ne.isTypedArray(n)&&("linear"===s||"log"===s)){if(o===n.length)return n;if(n.subarray)return n.subarray(0,o)}for(i=new Array(o),a=0;a=t.r2l(t.range[0])&&n<=t.r2l(t.range[1])},t.clearCalc=function(){t._min=[],t._max=[],t._categories=(t._initialCategories||[]).slice(),t._categoriesMap={};for(var e=0;e2e-6||((r-t._forceTick0)/t._minDtick%1+1.000001)%1>2e-6)&&(t._minDtick=0)):t._minDtick=0},pi.saveRangeInitial=function(t,e){for(var r=pi.list(t,"",!0),n=!1,i=0;i.3*f||c(i)||c(a))){var p=n.dtick/2;t+=t+p.8){var o=Number(r.substr(1));a.exactYears>.8&&o%12==0?t=pi.tickIncrement(t,"M6","reverse")+1.5*ai:a.exactMonths>.8?t=pi.tickIncrement(t,"M1","reverse")+15.5*ai:t-=ai/2;var s=pi.tickIncrement(t,r);if(s<=n)return s}return t}(d,t,s.dtick,l,a)),p=d,0;p<=u;)p=pi.tickIncrement(p,s.dtick,!1,a),0;return{start:e.c2r(d,0,a),end:e.c2r(p,0,a),size:s.dtick,_dataSpan:u-l}},pi.prepTicks=function(t){var e=ne.simpleMap(t.range,t.r2l);if("auto"===t.tickmode||!t.dtick){var r,n=t.nticks;n||("category"===t.type?(r=t.tickfont?1.2*(t.tickfont.size||12):15,n=t._length/r):(r="y"===t._id.charAt(0)?40:80,n=ne.constrain(t._length/r,4,9)+1),"radialaxis"===t._name&&(n*=2)),"array"===t.tickmode&&(n*=100),pi.autoTicks(t,Math.abs(e[1]-e[0])/n),t._minDtick>0&&t.dtick<2*t._minDtick&&(t.dtick=t._minDtick,t.tick0=t.l2r(t._forceTick0))}t.tick0||(t.tick0="date"===t.type?"2000-01-01":0),ki(t)},pi.calcTicks=function(t){pi.prepTicks(t);var e=ne.simpleMap(t.range,t.r2l);if("array"===t.tickmode)return function(t){var e,r,n=t.tickvals,i=t.ticktext,a=new Array(n.length),o=ne.simpleMap(t.range,t.r2l),s=1.0001*o[0]-1e-4*o[1],l=1.0001*o[1]-1e-4*o[0],u=Math.min(s,l),c=Math.max(s,l),h=0;Array.isArray(i)||(i=[]);var f="category"===t.type?t.d2l_noadd:t.d2l;"log"===t.type&&"L"!==String(t.dtick).charAt(0)&&(t.dtick="L"+Math.pow(10,Math.floor(Math.min(t.range[0],t.range[1]))-1));for(r=0;ru&&e=n:l<=n)&&!(a.length>s||l===o);l=pi.tickIncrement(l,t.dtick,i,t.calendar))o=l,a.push(l);"angular"===t._id&&360===Math.abs(e[1]-e[0])&&a.pop(),t._tmax=a[a.length-1],t._prevDateHead="",t._inCalcTicks=!0;for(var u=new Array(a.length),c=0;c10||"01-01"!==i.substr(5)?t._tickround="d":t._tickround=+e.substr(1)%12==0?"y":"m";else if(e>=ai&&a<=10||e>=15*ai)t._tickround="d";else if(e>=si&&a<=16||e>=oi)t._tickround="M";else if(e>=li&&a<=19||e>=si)t._tickround="S";else{var o=t.l2r(n+e).replace(/^-/,"").length;t._tickround=Math.max(a,o)-20}}else if(r(e)||"L"===e.charAt(0)){var s=t.range.map(t.r2d||Number);r(e)||(e=Number(e.substr(1))),t._tickround=2-Math.floor(Math.log(e)/Math.LN10+.01);var l=Math.max(Math.abs(s[0]),Math.abs(s[1])),u=Math.floor(Math.log(l)/Math.LN10+.01);Math.abs(u)>3&&(Ei(t.exponentformat)&&!Ci(u)?t._tickexponent=3*Math.round((u-1)/3):t._tickexponent=u)}else t._tickround=null}function Ti(t,e,r){var n=t.tickfont||{};return{x:e,dx:0,dy:0,text:r||"",fontSize:n.size,font:n.family,fontColor:n.color}}pi.autoTicks=function(t,e){var n;function i(t){return Math.pow(t,Math.floor(Math.log(e)/Math.LN10))}if("date"===t.type){t.tick0=ne.dateTick0(t.calendar);var a=2*e;a>ni?(e/=ni,n=i(10),t.dtick="M"+12*Ai(e,n,mi)):a>ii?(e/=ii,t.dtick="M"+Ai(e,1,yi)):a>ai?(t.dtick=Ai(e,ai,bi),t.tick0=ne.dateTick0(t.calendar,!0)):a>oi?t.dtick=Ai(e,oi,yi):a>si?t.dtick=Ai(e,si,xi):a>li?t.dtick=Ai(e,li,xi):(n=i(10),t.dtick=Ai(e,n,mi))}else if("log"===t.type){t.tick0=0;var o=ne.simpleMap(t.range,t.r2l);if(e>.7)t.dtick=Math.ceil(e);else if(Math.abs(o[1]-o[0])<1){var s=1.5*Math.abs((o[1]-o[0])/e);e=Math.abs(Math.pow(10,o[1])-Math.pow(10,o[0]))/s,n=i(10),t.dtick="L"+Ai(e,n,mi)}else t.dtick=e>.3?"D2":"D1"}else"category"===t.type?(t.tick0=0,t.dtick=Math.ceil(Math.max(e,1))):"angular"===t._id?(t.tick0=0,n=1,t.dtick=Ai(e,n,Mi)):(t.tick0=0,n=i(10),t.dtick=Ai(e,n,mi));if(0===t.dtick&&(t.dtick=1),!r(t.dtick)&&"string"!=typeof t.dtick){var l=t.dtick;throw t.dtick=1,"ax.dtick error: "+String(l)}},pi.tickIncrement=function(t,n,i,a){var o=i?-1:1;if(r(n))return t+o*n;var s=n.charAt(0),l=o*Number(n.substr(1));if("M"===s)return ne.incrementMonth(t,l,a);if("L"===s)return Math.log(Math.pow(10,t)+l)/Math.LN10;if("D"===s){var u="D2"===n?wi:_i,c=t+.01*o,h=ne.roundUp(ne.mod(c,1),u,i);return Math.floor(c)+Math.log(e.round(Math.pow(10,h),1))/Math.LN10}throw"unrecognized dtick "+String(n)},pi.tickFirst=function(t){var n=t.r2l||Number,i=ne.simpleMap(t.range,n),a=i[1]"+s,t._prevDateHead=s));e.text=l}(t,o,n,l):"log"===t.type?function(t,e,n,i,a){var o=t.dtick,s=e.x,l=t.tickformat;"never"===a&&(a="");!i||"string"==typeof o&&"L"===o.charAt(0)||(o="L3");if(l||"string"==typeof o&&"L"===o.charAt(0))e.text=Li(Math.pow(10,s),t,a,i);else if(r(o)||"D"===o.charAt(0)&&ne.mod(s+.01,1)<.1){var u=Math.round(s);-1!==["e","E","power"].indexOf(t.exponentformat)||Ei(t.exponentformat)&&Ci(u)?(e.text=0===u?1:1===u?"10":u>1?"10"+u+"":"10"+ui+-u+"",e.fontSize*=1.25):(e.text=Li(Math.pow(10,s),t,"","fakehover"),"D1"===o&&"y"===t._id.charAt(0)&&(e.dy-=e.fontSize/6))}else{if("D"!==o.charAt(0))throw"unrecognized dtick "+String(o);e.text=String(Math.round(Math.pow(10,ne.mod(s,1)))),e.fontSize*=.75}if("D1"===t.dtick){var c=String(e.text).charAt(0);"0"!==c&&"1"!==c||("y"===t._id.charAt(0)?e.dx-=e.fontSize/4:(e.dy+=e.fontSize/2,e.dx+=(t.range[1]>t.range[0]?1:-1)*e.fontSize*(s<0?.5:.25)))}}(t,o,0,l,i):"category"===t.type?function(t,e){var r=t._categories[Math.round(e.x)];void 0===r&&(r="");e.text=String(r)}(t,o):"angular"===t._id?function(t,e,r,n,i){if("radians"!==t.thetaunit||r)e.text=Li(e.x,t,i,n);else{var a=e.x/180;if(0===a)e.text="0";else{var o=function(t){function e(t,e){return Math.abs(t-e)<=1e-6}var r=function(t){var r=1;for(;!e(Math.round(t*r)/r,t);)r*=10;return r}(t),n=t*r,i=Math.abs(function t(r,n){return e(n,0)?r:t(n,r%n)}(n,r));return[Math.round(n/i),Math.round(r/i)]}(a);if(o[1]>=100)e.text=Li(ne.deg2rad(e.x),t,i,n);else{var s=e.x<0;1===o[1]?1===o[0]?e.text="\u03c0":e.text=o[0]+"\u03c0":e.text=["",o[0],"","\u2044","",o[1],"","\u03c0"].join(""),s&&(e.text=ui+e.text)}}}}(t,o,n,l,i):function(t,e,r,n,i){"never"===i?i="":"all"===t.showexponent&&Math.abs(e.x/t.dtick)<1e-6&&(i="hide");e.text=Li(e.x,t,i,n)}(t,o,0,l,i),t.tickprefix&&!f(t.showtickprefix)&&(o.text=t.tickprefix+o.text),t.ticksuffix&&!f(t.showticksuffix)&&(o.text+=t.ticksuffix),o},pi.hoverLabelText=function(t,e,r){if(r!==ci&&r!==e)return pi.hoverLabelText(t,e)+" - "+pi.hoverLabelText(t,r);var n="log"===t.type&&e<=0,i=pi.tickText(t,t.c2l(n?-e:e),"hover").text;return n?0===e?"0":ui+i:i};var Si=["f","p","n","\u03bc","m","","k","M","G","T"];function Ei(t){return"SI"===t||"B"===t}function Ci(t){return t>14||t<-15}function Li(t,e,n,i){var a=t<0,o=e._tickround,s=n||e.exponentformat||"B",l=e._tickexponent,u=pi.getTickFormat(e),c=e.separatethousands;if(i){var h={exponentformat:s,dtick:"none"===e.showexponent?e.dtick:r(t)&&Math.abs(t)||1,range:"none"===e.showexponent?e.range.map(e.r2d):[0,t||1]};ki(h),o=(Number(h._tickround)||0)+4,l=h._tickexponent,e.hoverformat&&(u=e.hoverformat)}if(u)return e._numFormat(u)(t).replace(/-/g,ui);var f,p=Math.pow(10,-o)/2;if("none"===s&&(l=0),(t=Math.abs(t))"+f+"":"B"===s&&9===l?t+="B":Ei(s)&&(t+=Si[l/3+5]));return a?ui+t:t}function zi(t,e){for(var r=0;r=0,a=u(t,e[1])<=0;return(r||i)&&(n||a)}if(t.tickformatstops&&t.tickformatstops.length>0)switch(t.type){case"date":case"linear":for(e=0;e=a(n))){r=t.tickformatstops[e];break}break;case"log":for(e=0;e1&&e1)for(n=1;na&&(a=u,o=l)}}return a?i(o):Fi};case"rms":return function(t,e){for(var r=0,a=0,o=0;o0;a&&(n="array");var o=r("categoryorder",n);"array"===o&&r("categoryarray"),a||"array"!==o||(e.categoryorder="trace")}},Yi=s.mix,Xi=C.lightFraction,Zi=function(t,e,r,n){var i=(n=n||{}).dfltColor;function a(r,i){return ne.coerce2(t,e,n.attributes,r,i)}var o=a("linecolor",i),s=a("linewidth");r("showline",n.showLine||!!o||!!s)||(delete e.linecolor,delete e.linewidth);var l=a("gridcolor",Yi(i,n.bgColor,n.blend||Xi).toRgbString()),u=a("gridwidth");if(r("showgrid",n.showGrid||!!l||!!u)||(delete e.gridcolor,delete e.gridwidth),!n.noZeroLine){var c=a("zerolinecolor",i),h=a("zerolinewidth");r("zeroline",n.showGrid||!!c||!!h)||(delete e.zerolinecolor,delete e.zerolinewidth)}};function Ji(t,r,n){var i,a,o,s,l,u=[],c=n.map(function(e){return e[t]}),h=e.bisector(r).left;for(i=0;id[1]-.01&&(e.domain=o),ne.noneOrAll(t.domain,e.domain,o)}return n("layer"),e},ra=gn.name2id,na=function(t,e,r,n,i){i&&(e._name=i,e._id=ra(i)),"-"===r("type")&&(!function(t,e){if("-"!==t.type)return;var r=t._id,n=r.charAt(0);-1!==r.indexOf("scene")&&(r=n);var i=function(t,e,r){for(var n=0;n rect").call(Sr.setTranslate,0,0).call(Sr.setScale,1,1),t.plot.call(Sr.setTranslate,e._offset,r._offset).call(Sr.setScale,1,1);var n=t.plot.selectAll(".scatterlayer .trace");n.selectAll(".point").call(Sr.setPointGroupScale,1,1),n.selectAll(".textpoint").call(Sr.setTextPointsScale,1,1),n.call(Sr.hideOutsideRangePoints,t)}function g(e,r){var n,i,o,s=h[e.xaxis._id],l=h[e.yaxis._id],u=[];if(s){i=(n=t._fullLayout[s.axisName])._r,o=s.to,u[0]=(i[0]*(1-r)+r*o[0]-i[0])/(i[1]-i[0])*e.xaxis._length;var c=i[1]-i[0],f=o[1]-o[0];n.range[0]=i[0]*(1-r)+r*o[0],n.range[1]=i[1]*(1-r)+r*o[1],u[2]=e.xaxis._length*(1-r+r*f/c)}else u[0]=0,u[2]=e.xaxis._length;if(l){i=(n=t._fullLayout[l.axisName])._r,o=l.to,u[1]=(i[1]*(1-r)+r*o[1]-i[1])/(i[0]-i[1])*e.yaxis._length;var p=i[1]-i[0],d=o[1]-o[0];n.range[0]=i[0]*(1-r)+r*o[0],n.range[1]=i[1]*(1-r)+r*o[1],u[3]=e.yaxis._length*(1-r+r*d/p)}else u[1]=0,u[3]=e.yaxis._length;!function(e,r){var n,i=[];for(i=[e._id,r._id],n=0;n rect").call(Sr.setTranslate,_,w).call(Sr.setScale,1/x,1/b),e.plot.call(Sr.setTranslate,k,T).call(Sr.setScale,x,b).selectAll(".points").selectAll(".point").call(Sr.setPointGroupScale,1/x,1/b),e.plot.selectAll(".points").selectAll(".textpoint").call(Sr.setTextPointsScale,1/x,1/b)}i&&(s=i());var v=e.ease(n.easing);return t._transitionData._interruptCallbacks.push(function(){return window.cancelAnimationFrame(c),c=null,function(){for(var e={},r=0;rn.duration?(function(){for(var e={},r=0;r0&&this._events[t].length>r&&(this._events[t].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[t].length),"function"==typeof console.trace&&console.trace()),this},Ia.prototype.on=Ia.prototype.addListener,Ia.prototype.once=function(t,e){if(!Oa(e))throw TypeError("listener must be a function");var r=!1;function n(){this.removeListener(t,n),r||(r=!0,e.apply(this,arguments))}return n.listener=e,this.on(t,n),this},Ia.prototype.removeListener=function(t,e){var r,n,i,a;if(!Oa(e))throw TypeError("listener must be a function");if(!this._events||!this._events[t])return this;if(i=(r=this._events[t]).length,n=-1,r===e||Oa(r.listener)&&r.listener===e)delete this._events[t],this._events.removeListener&&this.emit("removeListener",t,e);else if(Ra(r)){for(a=i;a-- >0;)if(r[a]===e||r[a].listener&&r[a].listener===e){n=a;break}if(n<0)return this;1===r.length?(r.length=0,delete this._events[t]):r.splice(n,1),this._events.removeListener&&this.emit("removeListener",t,e)}return this},Ia.prototype.removeAllListeners=function(t){var e,r;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[t]&&delete this._events[t],this;if(0===arguments.length){for(e in this._events)"removeListener"!==e&&this.removeAllListeners(e);return this.removeAllListeners("removeListener"),this._events={},this}if(Oa(r=this._events[t]))this.removeListener(t,r);else if(r)for(;r.length;)this.removeListener(t,r[r.length-1]);return delete this._events[t],this},Ia.prototype.listeners=function(t){return this._events&&this._events[t]?Oa(this._events[t])?[this._events[t]]:this._events[t].slice():[]},Ia.prototype.listenerCount=function(t){if(this._events){var e=this._events[t];if(Oa(e))return 1;if(e)return e.length}return 0},Ia.listenerCount=function(t,e){return t.listenerCount(e)};var Ba,Na=Da.EventEmitter,ja={init:function(t){if(t._ev instanceof Na)return t;var e=new Na,r=new Na;return t._ev=e,t._internalEv=r,t.on=e.on.bind(e),t.once=e.once.bind(e),t.removeListener=e.removeListener.bind(e),t.removeAllListeners=e.removeAllListeners.bind(e),t._internalOn=r.on.bind(r),t._internalOnce=r.once.bind(r),t._removeInternalListener=r.removeListener.bind(r),t._removeAllInternalListeners=r.removeAllListeners.bind(r),t.emit=function(n,i){"undefined"!=typeof jQuery&&jQuery(t).trigger(n,i),e.emit(n,i),r.emit(n,i)},t},triggerHandler:function(t,e,r){var n,i;"undefined"!=typeof jQuery&&(n=jQuery(t).triggerHandler(e,r));var a=t._ev;if(!a)return n;var o=a._events[e];if(!o)return n;"function"==typeof o&&(o=[o]);for(var s=o.pop(),l=0;l4/3-s?o:s},qa.getCursor=function(t,e,r,n){return t="left"===r?0:"center"===r?1:"right"===r?2:ne.constrain(Math.floor(3*t),0,2),e="bottom"===n?0:"middle"===n?1:"top"===n?2:ne.constrain(Math.floor(3*e),0,2),za[e][t]},qa.unhover=Ba.wrapped,qa.unhoverRaw=Ba.raw,qa.init=function(t){var e,r,n,i,a,o,s,l,u=t.gd,c=1,h=f.DBLCLICKDELAY,p=t.element;u._mouseDownTime||(u._mouseDownTime=0),p.style.pointerEvents="all",p.onmousedown=g,Ea?(p._ontouchstart&&p.removeEventListener("touchstart",p._ontouchstart),p._ontouchstart=g,p.addEventListener("touchstart",g,{passive:!1})):p.ontouchstart=g;var d=t.clampFn||function(t,e,r){return Math.abs(t)h&&(c=Math.max(c-1,1)),u._dragged)t.doneFn&&t.doneFn(e);else if(t.clickFn&&t.clickFn(c,o),!l){var r;try{r=new MouseEvent("click",e)}catch(t){var n=Ga(e);(r=document.createEvent("MouseEvents")).initMouseEvent("click",e.bubbles,e.cancelable,e.view,e.detail,e.screenX,e.screenY,n[0],n[1],e.ctrlKey,e.altKey,e.shiftKey,e.metaKey,e.button,e.relatedTarget)}s.dispatchEvent(r)}!function(t){t._dragging=!1,t._replotPending&&P.call("plot",t)}(u),u._dragged=!1}else u._dragged=!1}},qa.coverSlip=Ha;function Wa(t,e,r,n){n=n||ne.identity,Array.isArray(t)&&(e[0][r]=n(t))}var Ya={getSubplot:function(t){return t.subplot||t.xaxis+t.yaxis||t.geo},flat:function(t,e){for(var r=new Array(t.length),n=0;n=0&&r.index-1&&s.length>d&&(s=d>3?s.substr(0,d-3)+"...":s.substr(0,d))}void 0!==t.extraText&&(l+=t.extraText),void 0!==t.zLabel?(void 0!==t.xLabel&&(l+="x: "+t.xLabel+"
    "),void 0!==t.yLabel&&(l+="y: "+t.yLabel+"
    "),l+=(l?"z: ":"")+t.zLabel):w&&t[i+"Label"]===v?l=t[("x"===i?"y":"x")+"Label"]||"":void 0===t.xLabel?void 0!==t.yLabel&&(l=t.yLabel):l=void 0===t.yLabel?t.xLabel:"("+t.xLabel+", "+t.yLabel+")",t.text&&!Array.isArray(t.text)&&(l+=(l?"
    ":"")+t.text),""===l&&(""===s&&r.remove(),l=s);var g=r.select("text.nums").call(Sr.font,t.fontFamily||c,t.fontSize||h,t.fontColor||p).text(l).attr("data-notex",1).call(er.positionText,0,0).call(er.convertToTspans,n),m=r.select("text.name"),y=0;s&&s!==l?(m.call(Sr.font,t.fontFamily||c,t.fontSize||h,f).text(s).attr("data-notex",1).call(er.positionText,0,0).call(er.convertToTspans,n),y=m.node().getBoundingClientRect().width+2*so):(m.remove(),r.select("rect").remove()),r.select("path").style({fill:f,stroke:p});var M,A,k=g.node().getBoundingClientRect(),T=t.xa._offset+(t.x0+t.x1)/2,S=t.ya._offset+(t.y0+t.y1)/2,E=Math.abs(t.x1-t.x0),C=Math.abs(t.y1-t.y0),L=k.width+oo+so+y;t.ty0=x-k.top,t.bx=k.width+2*so,t.by=k.height+2*so,t.anchor="start",t.txwidth=k.width,t.tx2width=y,t.offset=0,a?(t.pos=T,M=S+C/2+L<=_,A=S-C/2-L>=0,"top"!==t.idealAlign&&M||!A?M?(S+=C/2,t.anchor="start"):t.anchor="middle":(S-=C/2,t.anchor="end")):(t.pos=S,M=T+E/2+L<=b,A=T-E/2-L>=0,"left"!==t.idealAlign&&M||!A?M?(T+=E/2,t.anchor="start"):t.anchor="middle":(T-=E/2,t.anchor="end")),g.attr("text-anchor",t.anchor),y&&m.attr("text-anchor",t.anchor),r.attr("transform","translate("+T+","+S+")"+(a?"rotate("+eo+")":""))}),E}function uo(t,r){t.each(function(t){var n=e.select(this);if(t.del)n.remove();else{var i="end"===t.anchor?-1:1,a=n.select("text.nums"),o={start:1,end:-1,middle:0}[t.anchor],s=o*(oo+so),l=s+o*(t.txwidth+so),u=0,c=t.offset;"middle"===t.anchor&&(s-=t.tx2width/2,l+=t.txwidth/2+so),r&&(c*=-ao,u=t.offset*io),n.select("path").attr("d","middle"===t.anchor?"M-"+(t.bx/2+t.tx2width/2)+","+(c-t.by/2)+"h"+t.bx+"v"+t.by+"h-"+t.bx+"Z":"M0,0L"+(i*oo+u)+","+(oo+c)+"v"+(t.by/2-oo)+"h"+i*t.bx+"v-"+t.by+"H"+(i*oo+u)+"V"+(c-oo)+"Z"),a.call(er.positionText,s+u,c+t.ty0-t.by/2+so),t.tx2width&&(n.select("text.name").call(er.positionText,l+o*so+u,c+t.ty0-t.by/2+so),n.select("rect").call(Sr.setRect,l+(o-1)*t.tx2width/2+u,c-t.by/2-1,t.tx2width,t.by+2))}})}function co(t,e){var r=t.index,n=t.trace||{},i=t.cd[0],a=t.cd[r]||{},o=Array.isArray(r)?function(t,e){return ne.castOption(i,r,t)||ne.extractOption({},n,"",e)}:function(t,e){return ne.extractOption(a,n,t,e)};function s(e,r,n){var i=o(r,n);i&&(t[e]=i)}if(s("hoverinfo","hi","hoverinfo"),s("color","hbg","hoverlabel.bgcolor"),s("borderColor","hbc","hoverlabel.bordercolor"),s("fontFamily","htf","hoverlabel.font.family"),s("fontSize","hts","hoverlabel.font.size"),s("fontColor","htc","hoverlabel.font.color"),s("nameLength","hnl","hoverlabel.namelength"),t.posref="y"===e?t.xa._offset+(t.x0+t.x1)/2:t.ya._offset+(t.y0+t.y1)/2,t.x0=ne.constrain(t.x0,0,t.xa._length),t.x1=ne.constrain(t.x1,0,t.xa._length),t.y0=ne.constrain(t.y0,0,t.ya._length),t.y1=ne.constrain(t.y1,0,t.ya._length),void 0!==t.xLabelVal&&(t.xLabel="xLabel"in t?t.xLabel:ri.hoverLabelText(t.xa,t.xLabelVal),t.xVal=t.xa.c2d(t.xLabelVal)),void 0!==t.yLabelVal&&(t.yLabel="yLabel"in t?t.yLabel:ri.hoverLabelText(t.ya,t.yLabelVal),t.yVal=t.ya.c2d(t.yLabelVal)),void 0!==t.zLabelVal&&void 0===t.zLabel&&(t.zLabel=String(t.zLabelVal)),!(isNaN(t.xerr)||"log"===t.xa.type&&t.xerr<=0)){var l=ri.tickText(t.xa,t.xa.c2l(t.xerr),"hover").text;void 0!==t.xerrneg?t.xLabel+=" +"+l+" / -"+ri.tickText(t.xa,t.xa.c2l(t.xerrneg),"hover").text:t.xLabel+=" \xb1 "+l,"x"===e&&(t.distance+=1)}if(!(isNaN(t.yerr)||"log"===t.ya.type&&t.yerr<=0)){var u=ri.tickText(t.ya,t.ya.c2l(t.yerr),"hover").text;void 0!==t.yerrneg?t.yLabel+=" +"+u+" / -"+ri.tickText(t.ya,t.ya.c2l(t.yerrneg),"hover").text:t.yLabel+=" \xb1 "+u,"y"===e&&(t.distance+=1)}var c=t.hoverinfo||t.trace.hoverinfo;return"all"!==c&&(-1===(c=Array.isArray(c)?c:c.split("+")).indexOf("x")&&(t.xLabel=void 0),-1===c.indexOf("y")&&(t.yLabel=void 0),-1===c.indexOf("z")&&(t.zLabel=void 0),-1===c.indexOf("text")&&(t.text=void 0),-1===c.indexOf("name")&&(t.name=void 0)),t}function ho(t,e){var r,n,i=e.container,a=e.fullLayout,o=e.event,l=!!t.hLinePoint,u=!!t.vLinePoint;if(i.selectAll(".spikeline").remove(),u||l){var c=Oe.combine(a.plot_bgcolor,a.paper_bgcolor);if(l){var h,f,p=t.hLinePoint;r=p&&p.xa,"cursor"===(n=p&&p.ya).spikesnap?(h=o.pointerX,f=o.pointerY):(h=r._offset+p.x,f=n._offset+p.y);var d,g,v=s.readability(p.color,c)<1.5?Oe.contrast(c):p.color,m=n.spikemode,y=n.spikethickness,x=n.spikecolor||v,b=n._boundingBox,_=(b.left+b.right)/2q.width||V<0||V>q.height)return Ua.unhoverRaw(t,n);n.pointerX=n.offsetX,n.pointerY=n.offsetY}if(_="xval"in n?Ya.flat(o,n.xval):Ya.p2c(p,j),w="yval"in n?Ya.flat(o,n.yval):Ya.p2c(d,V),!r(_[0])||!r(w[0]))return ne.warn("Fx.hover failed",n,t),Ua.unhoverRaw(t,n)}var H=1/0;for(A=0;AD&&(F.splice(0,D),H=F[0].distance),c&&0!==R&&0===F.length){I.distance=R,I.index=!1;var Z=T._module.hoverPoints(I,L,z,"closest",s._hoverlayer);if(Z&&(Z=Z.filter(function(t){return t.spikeDistance<=R})),Z&&Z.length){var J,K=Z.filter(function(t){return t.xa.showspikes});if(K.length){var Q=K[0];r(Q.x0)&&r(Q.y0)&&(J=rt(Q),(!N.vLinePoint||N.vLinePoint.spikeDistance>J.spikeDistance)&&(N.vLinePoint=J))}var $=Z.filter(function(t){return t.ya.showspikes});if($.length){var tt=$[0];r(tt.x0)&&r(tt.y0)&&(J=rt(tt),(!N.hLinePoint||N.hLinePoint.spikeDistance>J.spikeDistance)&&(N.hLinePoint=J))}}}}function et(t,e){for(var r,n=null,i=1/0,a=0;a1,gt=Oe.combine(s.plot_bgcolor||Oe.background,s.paper_bgcolor),vt={hovermode:b,rotateLabels:dt,bgColor:gt,container:s._hoverlayer,outerContainer:s._paperdiv,commonLabelOpts:s.hoverlabel,hoverdistance:s.hoverdistance},mt=lo(F,vt,t);if(function(t,e,r){var n,i,a,o,s,l,u,c=0,h=t.map(function(t,n){var i=t[e];return[{i:n,dp:0,pos:t.pos,posref:t.posref,size:t.by*("x"===i._id.charAt(0)?no:1)/2,pmin:0,pmax:"x"===i._id.charAt(0)?r.width:r.height}]}).sort(function(t,e){return t[0].posref-e[0].posref});function f(t){var e=t[0],r=t[t.length-1];if(i=e.pmin-e.pos-e.dp+e.size,a=r.pos+r.dp+r.size-e.pmax,i>.01){for(s=t.length-1;s>=0;s--)t[s].dp+=i;n=!1}if(!(a<.01)){if(i<-.01){for(s=t.length-1;s>=0;s--)t[s].dp-=a;n=!1}if(n){var u=0;for(o=0;oe.pmax&&u++;for(o=t.length-1;o>=0&&!(u<=0);o--)(l=t[o]).pos>e.pmax-1&&(l.del=!0,u--);for(o=0;o=0;s--)t[s].dp-=a;for(o=t.length-1;o>=0&&!(u<=0);o--)(l=t[o]).pos+l.dp+l.size>e.pmax&&(l.del=!0,u--)}}}for(;!n&&c<=t.length;){for(c++,n=!0,o=0;o.01&&g.pmin===v.pmin&&g.pmax===v.pmax){for(s=d.length-1;s>=0;s--)d[s].dp+=i;for(p.push.apply(p,d),h.splice(o+1,1),u=0,s=p.length-1;s>=0;s--)u+=p[s].dp;for(a=u/p.length,s=p.length-1;s>=0;s--)p[s].dp-=a;n=!1}else o++}h.forEach(f)}for(o=h.length-1;o>=0;o--){var m=h[o];for(s=m.length-1;s>=0;s--){var y=m[s],x=t[y.i];x.offset=y.dp,x.del=y.del}}}(F,dt?"xa":"ya",s),uo(mt,dt),n.target&&n.target.tagName){var yt=P.getComponentMethod("annotations","hasClickToShow")(t,ft);$a(e.select(n.target),yt?"pointer":"")}if(!n.target||a||!function(t,e,r){if(!r||r.length!==t._hoverdata.length)return!0;for(var n=r.length-1;n>=0;n--){var i=r[n],a=t._hoverdata[n];if(i.curveNumber!==a.curveNumber||String(i.pointNumber)!==String(a.pointNumber))return!0}return!1}(t,0,ht))return;ht&&t.emit("plotly_unhover",{event:n,points:ht});t.emit("plotly_hover",{event:n,points:t._hoverdata,xaxes:p,yaxes:d,xvals:_,yvals:w})}(t,n,i,a)})},to.loneHover=function(t,r){var n={color:t.color||Oe.defaultLine,x0:t.x0||t.x||0,x1:t.x1||t.x||0,y0:t.y0||t.y||0,y1:t.y1||t.y||0,xLabel:t.xLabel,yLabel:t.yLabel,zLabel:t.zLabel,text:t.text,name:t.name,idealAlign:t.idealAlign,borderColor:t.borderColor,fontFamily:t.fontFamily,fontSize:t.fontSize,fontColor:t.fontColor,trace:{index:0,hoverinfo:""},xa:{_offset:0},ya:{_offset:0},index:0},i=e.select(r.container),a=r.outerContainer?e.select(r.outerContainer):i,o={hovermode:"closest",rotateLabels:!1,bgColor:r.bgColor||Oe.background,container:i,outerContainer:a},s=lo([n],o,r.gd);return uo(s,o.rotateLabels),s.node()};var po=to.hover,go=function(t,e,r,n){r("hoverlabel.bgcolor",(n=n||{}).bgcolor),r("hoverlabel.bordercolor",n.bordercolor),r("hoverlabel.namelength",n.namelength),ne.coerceFont(r,"hoverlabel.font",n.font)},vo=T({editType:"none"});vo.family.dflt=Pa.HOVERFONT,vo.size.dflt=Pa.HOVERFONTSIZE;var mo={dragmode:{valType:"enumerated",values:["zoom","pan","select","lasso","orbit","turntable"],dflt:"zoom",editType:"modebar"},hovermode:{valType:"enumerated",values:["x","y","closest",!1],editType:"modebar"},hoverdistance:{valType:"integer",min:-1,dflt:20,editType:"none"},spikedistance:{valType:"integer",min:-1,dflt:20,editType:"none"},hoverlabel:{bgcolor:{valType:"color",editType:"none"},bordercolor:{valType:"color",editType:"none"},font:vo,namelength:{valType:"integer",min:-1,dflt:15,editType:"none"},editType:"none"}};var yo={moduleType:"component",name:"fx",constants:Pa,schema:{layout:mo},attributes:S,layoutAttributes:mo,supplyLayoutGlobalDefaults:function(t,e){go(0,0,function(r,n){return ne.coerce(t,e,mo,r,n)})},supplyDefaults:function(t,e,r,n){go(0,0,function(r,n){return ne.coerce(t,e,S,r,n)},n.hoverlabel)},supplyLayoutDefaults:function(t,e,r){function n(r,n){return ne.coerce(t,e,mo,r,n)}var i;n("dragmode"),e._has("cartesian")?(e._isHoriz=function(t){for(var e=!0,r=0;r.01?k:function(t,e){return Math.abs(t-e)>=2?k(t):t>e?Math.ceil(t):Math.floor(t)};d=M(d,p=M(p,d)),v=M(v,g=M(g,v))}var A=e.select(this);A.append("path").style("vector-effect","non-scaling-stroke").attr("d","M"+p+","+g+"V"+v+"H"+d+"V"+g+"Z").call(Sr.setClipUrl,n.layerClipId),function(t,e,r,n,i,a,o,s){var l;function u(e,r,n){var i=e.append("text").text(r).attr({class:"bartext bartext-"+l,transform:"","text-anchor":"middle","data-notex":1}).call(Sr.font,n).call(er.convertToTspans,t);return i}var c=r[0].trace,h=c.orientation,f=function(t,e){var r=Io(t.text,e);return Do(Ao,r)}(c,n);if(!f)return;if("none"===(l=function(t,e){var r=Io(t.textposition,e);return function(t,e,r){return t.coerceNumber&&(e=+e),-1!==t.values.indexOf(e)?e:void 0!==r?r:t.dflt}(ko,r)}(c,n)))return;var p,d,g,v,m,y,x=function(t,e,r){return Po(To,t.textfont,e,r)}(c,n,t._fullLayout.font),b=function(t,e,r){return Po(So,t.insidetextfont,e,r)}(c,n,x),_=function(t,e,r){return Po(Eo,t.outsidetextfont,e,r)}(c,n,x),w=t._fullLayout.barmode,M="stack"===w||"relative"===w,A=r[n],k=!M||A._outmost,T=Math.abs(a-i)-2*Co,S=Math.abs(s-o)-2*Co;"outside"===l&&(k||(l="inside"));if("auto"===l)if(k){l="inside",p=u(e,f,b),d=Sr.bBox(p.node()),g=d.width,v=d.height;var E=g>0&&v>0,C=g<=T&&v<=S,L=g<=S&&v<=T,z="h"===h?T>=g*(S/v):S>=v*(T/g);E&&(C||L||z)?l="inside":(l="outside",p.remove(),p=null)}else l="inside";if(!p&&(p=u(e,f,"outside"===l?_:b),d=Sr.bBox(p.node()),g=d.width,v=d.height,g<=0||v<=0))return void p.remove();"outside"===l?(y="both"===c.constraintext||"outside"===c.constraintext,m=function(t,e,r,n,i,a,o){var s,l="h"===a?Math.abs(n-r):Math.abs(e-t);l>2*Co&&(s=Co);var u=1;o&&(u="h"===a?Math.min(1,l/i.height):Math.min(1,l/i.width));var c,h,f,p,d=(i.left+i.right)/2,g=(i.top+i.bottom)/2;c=u*i.width,h=u*i.height,"h"===a?er?(f=(t+e)/2,p=n+s+h/2):(f=(t+e)/2,p=n-s-h/2);return zo(d,g,f,p,u,!1)}(i,a,o,s,d,h,y)):(y="both"===c.constraintext||"inside"===c.constraintext,m=function(t,e,r,n,i,a,o){var s,l,u,c,h,f,p,d=i.width,g=i.height,v=(i.left+i.right)/2,m=(i.top+i.bottom)/2,y=Math.abs(e-t),x=Math.abs(n-r);y>2*Co&&x>2*Co?(y-=2*(h=Co),x-=2*h):h=0;d<=y&&g<=x?(f=!1,p=1):d<=x&&g<=y?(f=!0,p=1):dr?(u=(t+e)/2,c=n-h-l/2):(u=(t+e)/2,c=n+h+l/2);return zo(v,m,u,c,p,f)}(i,a,o,s,d,h,y));p.attr("transform",m)}(t,A,i,u,p,d,g,v),n.layerClipId&&Sr.hideOutsideRangePoint(i[u],A.select("text"),a,o,c.xcalendar,c.ycalendar)}else e.select(this).remove();function k(t){return 0===s.bargap&&0===s.bargroupgap?e.round(Math.round(t)-w,2):t}})}),P.getComponentMethod("errorbars","plot")(l,n),l.each(function(t){var r=!1===t[0].trace.cliponaxis;Sr.setClipUrl(e.select(this),r?null:n.layerClipId)})};function zo(t,e,r,n,i,a){var o;return i<1?o="scale("+i+") ":(i=1,o=""),"translate("+(r-i*t)+" "+(n-i*e)+")"+o+(a?"rotate("+a+" "+t+" "+e+") ":"")}function Po(t,e,n,i){var a=Io((e=e||{}).family,n),o=Io(e.size,n),l=Io(e.color,n);return{family:Do(t.family,a,i.family),size:function(t,e,n){if(r(e)){e=+e;var i=t.min,a=t.max,o=void 0!==i&&ea;if(!o)return e}return void 0!==n?n:t.dflt}(t.size,o,i.size),color:function(t,e,r){return s(e).isValid()?e:void 0!==r?r:t.dflt}(t.color,l,i.color)}}function Io(t,e){var r;return Array.isArray(t)?eu+s||!r(l))&&(h=!0,Xo(c,t))}for(var p=0;p1||0===a.bargap&&0===a.bargroupgap&&!t[0].trace.marker.line.width)&&e.select(this).attr("shape-rendering","crispEdges")}),n.selectAll("g.points").each(function(r){var n=e.select(this),i=n.selectAll("path"),a=n.selectAll("text"),o=r[0].trace;Sr.pointStyle(i,o,t),Sr.selectedPointStyle(i,o),a.each(function(t){var r,n=e.select(this);function i(e){var n=r[e];return Array.isArray(n)?n[t.i]:n}n.classed("bartext-inside")?r=o.insidetextfont:n.classed("bartext-outside")&&(r=o.outsidetextfont),r||(r=o.textfont),Sr.font(n,i("family"),i("size"),i("color"))}),Sr.selectedTextStyle(a,o)}),P.getComponentMethod("errorbars","style")(n)},ts=m.extendFlat,es=Qe.LINE_SPACING,rs={colorbar:"colorbar",cbbg:"cbbg",cbfill:"cbfill",cbfills:"cbfills",cbline:"cbline",cblines:"cblines",cbaxis:"cbaxis",cbtitleunshift:"cbtitleunshift",cbtitle:"cbtitle",cboutline:"cboutline",crisp:"crisp",jsPlaceholder:"js-placeholder"},ns=function(t,r){var n={};function i(){var o=t._fullLayout,l=o._size;if("function"==typeof n.fillcolor||"function"==typeof n.line.color){var u,c,h=e.extent(("function"==typeof n.fillcolor?n.fillcolor:n.line.color).domain()),f=[],p=[],d="function"==typeof n.line.color?n.line.color:function(){return n.line.color},g="function"==typeof n.fillcolor?n.fillcolor:function(){return n.fillcolor},v=n.levels.end+n.levels.size/100,m=n.levels.size,y=1.001*h[0]-.001*h[1],x=1.001*h[1]-.001*h[0];for(c=0;c<1e5&&(u=n.levels.start+c*m,!(m>0?u>=v:u<=v));c++)u>y&&u0?u>=v:u<=v));c++)u>h[0]&&u1){var U=Math.pow(10,Math.floor(Math.log(V)/Math.LN10));N*=U*ne.roundUp(V/U,[2,5,10]),(Math.abs(n.levels.start)/n.levels.size+1e-6)%1<2e-6&&(F.tick0=0)}F.dtick=N}F.domain=[I+C,I+T-C],F.setScale();var q=o._infolayer.selectAll("g."+r).data([0]);q.enter().append("g").classed(r,!0).classed(rs.colorbar,!0).each(function(){var t=e.select(this);t.append("rect").classed(rs.cbbg,!0),t.append("g").classed(rs.cbfills,!0),t.append("g").classed(rs.cblines,!0),t.append("g").classed(rs.cbaxis,!0).classed(rs.crisp,!0),t.append("g").classed(rs.cbtitleunshift,!0).append("g").classed(rs.cbtitle,!0),t.append("rect").classed(rs.cboutline,!0),t.select(".cbtitle").datum(0)}),q.attr("transform","translate("+Math.round(l.l)+","+Math.round(l.t)+")");var H=q.select(".cbtitleunshift").attr("transform","translate(-"+Math.round(l.l)+",-"+Math.round(l.t)+")");F._axislayer=q.select(".cbaxis");var G=0;if(-1!==["top","bottom"].indexOf(n.titleside)){var W,Y=l.l+(n.x+S)*l.w,X=F.titlefont.size;W="top"===n.titleside?(1-(I+T-C))*l.h+l.t+3+.75*X:(1-(I+C))*l.h+l.t-3-.25*X,tt(F._id+"title",{attributes:{x:Y,y:W,"text-anchor":"start"}})}var Z,J,K,Q=ne.syncOrAsync([_n.previousPromises,function(){if(-1!==["top","bottom"].indexOf(n.titleside)){var r=q.select(".cbtitle"),i=r.select("text"),a=[-n.outlinewidth/2,n.outlinewidth/2],u=r.select(".h"+F._id+"title-math-group").node(),c=15.6;if(i.node()&&(c=parseInt(i.node().style.fontSize,10)*es),u?(G=Sr.bBox(u).height)>c&&(a[1]-=(G-c)/2):i.node()&&!i.classed(rs.jsPlaceholder)&&(G=Sr.bBox(i.node()).height),G){if(G+=5,"top"===n.titleside)F.domain[1]-=G/l.h,a[1]*=-1;else{F.domain[0]+=G/l.h;var v=er.lineCount(i);a[1]+=(1-v)*c}r.attr("transform","translate("+a+")"),F.setScale()}}q.selectAll(".cbfills,.cblines").attr("transform","translate(0,"+Math.round(l.h*(1-F.domain[1]))+")"),F._axislayer.attr("transform","translate(0,"+Math.round(-l.t)+")");var m=q.select(".cbfills").selectAll("rect.cbfill").data(p);m.enter().append("rect").classed(rs.cbfill,!0).style("stroke","none"),m.exit().remove(),m.each(function(t,r){var n=[0===r?h[0]:(p[r]+p[r-1])/2,r===p.length-1?h[1]:(p[r]+p[r+1])/2].map(F.c2p).map(Math.round);r!==p.length-1&&(n[1]+=n[1]>n[0]?1:-1);var i=g(t).replace("e-",""),a=s(i).toHexString();e.select(this).attr({x:L,width:Math.max(M,2),y:e.min(n),height:Math.max(e.max(n)-e.min(n),2),fill:a})});var y=q.select(".cblines").selectAll("path.cbline").data(n.line.color&&n.line.width?f:[]);return y.enter().append("path").classed(rs.cbline,!0),y.exit().remove(),y.each(function(t){e.select(this).attr("d","M"+L+","+(Math.round(F.c2p(t))+n.line.width/2%1)+"h"+M).call(Sr.lineGroupStyle,n.line.width,d(t),n.line.dash)}),F._axislayer.selectAll("g."+F._id+"tick,path").remove(),F._pos=L+M+(n.outlinewidth||0)/2-("outside"===n.ticks?1:0),F.side="right",ne.syncOrAsync([function(){return ri.doTicks(t,F,!0)},function(){if(-1===["top","bottom"].indexOf(n.titleside)){var r=F.titlefont.size,i=F._offset+F._length/2,a=l.l+(F.position||0)*l.w+("right"===F.side?10+r*(F.showticklabels?1:.5):-10-r*(F.showticklabels?.5:0));tt("h"+F._id+"title",{avoid:{selection:e.select(t).selectAll("g."+F._id+"tick"),side:n.titleside,offsetLeft:l.l,offsetTop:0,maxShift:o.width},attributes:{x:a,y:i,"text-anchor":"middle"},transform:{rotate:"-90",offset:0}})}}])},_n.previousPromises,function(){var e=M+n.outlinewidth/2+Sr.bBox(F._axislayer.node()).width;if((b=H.select("text")).node()&&!b.classed(rs.jsPlaceholder)){var i,a=H.select(".h"+F._id+"title-math-group").node();i=a&&-1!==["top","bottom"].indexOf(n.titleside)?Sr.bBox(a).width:Sr.bBox(H.node()).right-L-l.l,e=Math.max(e,i)}var o=2*n.xpad+e+n.borderwidth+n.outlinewidth/2,s=D-O;q.select(".cbbg").attr({x:L-n.xpad-(n.borderwidth+n.outlinewidth)/2,y:O-E,width:Math.max(o,2),height:Math.max(s+2*E,2)}).call(Oe.fill,n.bgcolor).call(Oe.stroke,n.bordercolor).style({"stroke-width":n.borderwidth}),q.selectAll(".cboutline").attr({x:L,y:O+n.ypad+("top"===n.titleside?G:0),width:Math.max(M,2),height:Math.max(s-2*n.ypad-G,2)}).call(Oe.stroke,n.outlinecolor).style({fill:"None","stroke-width":n.outlinewidth});var u=({center:.5,right:1}[n.xanchor]||0)*o;q.attr("transform","translate("+(l.l-u)+","+l.t+")"),_n.autoMargin(t,r,{x:n.x,y:n.y,l:o*({right:1,center:.5}[n.xanchor]||0),r:o*({left:1,center:.5}[n.xanchor]||0),t:s*({bottom:1,middle:.5}[n.yanchor]||0),b:s*({top:1,middle:.5}[n.yanchor]||0)})}],t);if(Q&&Q.then&&(t._promises||[]).push(Q),t._context.edits.colorbarPosition)Ua.init({element:q.node(),gd:t,prepFn:function(){Z=q.attr("transform"),Ka(q)},moveFn:function(t,e){q.attr("transform",Z+" translate("+t+","+e+")"),J=Ua.align(z+t/l.w,A,0,1,n.xanchor),K=Ua.align(I-e/l.h,T,0,1,n.yanchor);var r=Ua.getCursor(J,K,n.xanchor,n.yanchor);Ka(q,r)},doneFn:function(){Ka(q),void 0!==J&&void 0!==K&&P.call("restyle",t,{"colorbar.x":J,"colorbar.y":K},a().index)}});return Q}function $(t,e){return ne.coerce(R,F,Ce,t,e)}function tt(e,r){var n,i=a();n=P.traceIs(i,"markerColorscale")?"marker.colorbar.title":"colorbar.title";var s={propContainer:F,propName:n,traceIndex:i.index,placeholder:o._dfltTitle.colorbar,containerGroup:q.select(".cbtitle")},l="h"===e.charAt(0)?e.substr(1):"h"+e;q.selectAll("."+l+",."+l+"-math-group").remove(),Dn.draw(t,e,ts(s,r||{}))}o._infolayer.selectAll("g."+r).remove()}function a(){var e,n,i=r.substr(2);for(e=0;e=0&&M0){var k=_[n].sort(ds),T=k.map(gs),S=T.length,E={pos:v[n],pts:k};E.min=T[0],E.max=T[S-1],E.mean=ne.mean(T,S),E.sd=ne.stdev(T,S,E.mean),E.q1=ne.interp(T,.25),E.med=ne.interp(T,.5),E.q3=ne.interp(T,.75),E.lf=Math.min(E.q1,T[Math.min(ne.findBin(2.5*E.q1-1.5*E.q3,T,!0)+1,S-1)]),E.uf=Math.max(E.q3,T[Math.max(ne.findBin(2.5*E.q3-1.5*E.q1,T),0)]),E.lo=4*E.q1-3*E.q3,E.uo=4*E.q3-3*E.q1;var C=1.57*(E.q3-E.q1)/Math.sqrt(S);E.ln=E.med-C,E.un=E.med+C,h.push(E)}return function(t,e){if(ne.isArrayOrTypedArray(e.selectedpoints))for(var r=0;r0?(h[0].t={num:l[f],dPos:m,posLetter:s,valLetter:a,labels:{med:hs(t,"median:"),min:hs(t,"min:"),q1:hs(t,"q1:"),q3:hs(t,"q3:"),max:hs(t,"max:"),mean:"sd"===e.boxmean?hs(t,"mean \xb1 \u03c3:"):hs(t,"mean:"),lf:hs(t,"lower fence:"),uf:hs(t,"upper fence:")}},e._fullInput&&"candlestick"===e._fullInput.type&&delete h[0].t.labels,l[f]++,h):[{t:{empty:!0}}]};function ps(t,e,r){var n={text:"tx"};for(var i in n)Array.isArray(e[i])&&(t[n[i]]=e[i][r])}function ds(t,e){return t.v-e.v}function gs(t){return t.v}function vs(t,e,r,n){var i,a=r("y"),o=r("x");if(a&&a.length)i="v",o||r("x0");else{if(!o||!o.length)return void(e.visible=!1);i="h",r("y0")}P.getComponentMethod("calendars","handleTraceDefaults")(t,e,["x","y"],n),r("orientation",i)}function ms(t,e,r,n){var i=n.prefix,a=ne.coerce2(t,e,cs,"marker.outliercolor"),o=r("marker.line.outliercolor"),s=r(i+"points",a||o?"suspectedoutliers":void 0);s?(r("jitter","all"===s?.3:0),r("pointpos","all"===s?-1.5:0),r("marker.symbol"),r("marker.opacity"),r("marker.size"),r("marker.color",e.line.color),r("marker.line.color"),r("marker.line.width"),"suspectedoutliers"===s&&(r("marker.line.outliercolor",e.marker.color),r("marker.line.outlierwidth")),r("selected.marker.color"),r("unselected.marker.color"),r("selected.marker.size"),r("unselected.marker.size"),r("text")):delete e.marker,r("hoveron"),ne.coerceSelectionMarkerOpacity(e,r)}var ys={supplyDefaults:function(t,e,r,n){function i(r,n){return ne.coerce(t,e,cs,r,n)}vs(t,e,i,n),!1!==e.visible&&(i("line.color",(t.marker||{}).color||r),i("line.width"),i("fillcolor",Oe.addOpacity(e.line.color,.5)),i("whiskerwidth"),i("boxmean"),i("notched",void 0!==t.notchwidth)&&i("notchwidth"),ms(t,e,i,{prefix:"box"}))},handleSampleDefaults:vs,handlePointsDefaults:ms};function xs(t,e,r,n){var i,a,o,s,l,u,c,h,f,p,d,g,v=t.cd,m=t.xa,y=t.ya,x=v[0].trace,b=v[0].t,_="violin"===x.type,w=[],M=b.bdPos,A=function(t){return t.pos+b.bPos-u};_&&"both"!==x.side?("positive"===x.side&&(f=function(t){var e=A(t);return yo.inbox(e,e+M,p)}),"negative"===x.side&&(f=function(t){var e=A(t);return yo.inbox(e-M,e,p)})):f=function(t){var e=A(t);return yo.inbox(e-M,e+M,p)},g=_?function(t){return yo.inbox(t.span[0]-l,t.span[1]-l,p)}:function(t){return yo.inbox(t.min-l,t.max-l,p)},"h"===x.orientation?(l=e,u=r,c=g,h=f,i="y",o=y,a="x",s=m):(l=r,u=e,c=f,h=g,i="x",o=m,a="y",s=y);var k=Math.min(1,M/Math.abs(o.r2c(o.range[1])-o.r2c(o.range[0])));function T(t){return(c(t)+h(t))/2}p=t.maxHoverDistance-k,d=t.maxSpikeDistance-k;var S=yo.getDistanceFunction(n,c,h,T);if(yo.getClosest(v,S,t),!1===t.index)return[];var E=v[t.index],C=x.line.color,L=(x.marker||{}).color;Oe.opacity(C)&&x.line.width?t.color=C:Oe.opacity(L)&&x.boxpoints?t.color=L:t.color=x.fillcolor,t[i+"0"]=o.c2p(E.pos+b.bPos-b.bdPos,!0),t[i+"1"]=o.c2p(E.pos+b.bPos+b.bdPos,!0),ri.tickText(o,o.c2l(E.pos),"hover").text,t[i+"LabelVal"]=E.pos;var z=i+"Spike";t.spikeDistance=T(E)*d/p,t[z]=o.c2p(E.pos,!0);var P={},I=["med","min","q1","q3","max"];(x.boxmean||(x.meanline||{}).visible)&&I.push("mean"),(x.boxpoints||x.points)&&I.push("lf","uf");for(var D=0;Dt.uf}),a=Math.max((t.max-t.min)/10,t.q3-t.q1),u=1e-9*a,c=a*Ts,h=[],f=0;if(r.jitter){if(0===a)for(f=1,h=new Array(i.length),e=0;et.lo&&(y.so=!0)}return i}).enter().append("path").classed("point",!0).call(Sr.translatePoints,i,a)}function Cs(t,r,n,i){var a,o,s=r.pos,l=r.val,u=i.bPos,c=i.bPosPxOffset||0;Array.isArray(i.bdPos)?(a=i.bdPos[0],o=i.bdPos[1]):(a=i.bdPos,o=i.bdPos),t.selectAll("path.mean").data(ne.identity).enter().append("path").attr("class","mean").style({fill:"none","vector-effect":"non-scaling-stroke"}).each(function(t){var r=s.c2p(t.pos+u,!0)+c,i=s.c2p(t.pos+u-a,!0)+c,h=s.c2p(t.pos+u+o,!0)+c,f=l.c2p(t.mean,!0),p=l.c2p(t.mean-t.sd,!0),d=l.c2p(t.mean+t.sd,!0);"h"===n.orientation?e.select(this).attr("d","M"+f+","+i+"V"+h+("sd"===n.boxmean?"m0,0L"+p+","+r+"L"+f+","+i+"L"+d+","+r+"Z":"")):e.select(this).attr("d","M"+i+","+f+"H"+h+("sd"===n.boxmean?"m0,0L"+r+","+p+"L"+i+","+f+"L"+r+","+d+"Z":""))})}var Ls={plot:function(t,r,n){var i=t._fullLayout,a=r.xaxis,o=r.yaxis;r.plot.select(".boxlayer").selectAll("g.trace.boxes").data(n).enter().append("g").attr("class","trace boxes").each(function(t){var r,n,s=t[0],l=s.t,u=s.trace,c=s.node3=e.select(this),h=i._numBoxes,f="group"===i.boxmode&&h>1,p=l.dPos*(1-i.boxgap)*(1-i.boxgroupgap)/(f?h:1),d=f?2*l.dPos*((l.num+.5)/h-.5)*(1-i.boxgap):0,g=p*u.whiskerwidth;!0!==u.visible||l.empty?e.select(this).remove():("h"===u.orientation?(r=o,n=a):(r=a,n=o),l.bPos=d,l.bdPos=p,l.wdPos=g,Ss(c,{pos:r,val:n},u,l),u.boxpoints&&Es(c,{x:a,y:o},u,l),u.boxmean&&Cs(c,{pos:r,val:n},u,l))})},plotBoxAndWhiskers:Ss,plotPoints:Es,plotBoxMean:Cs},zs=function(t,e){var r,n,i=t.cd,a=t.xaxis,o=t.yaxis,s=[];if(!1===e)for(r=0;r0;){var a=r%10;n=(0===a?"":t[a]+e[i])+n,i++,r=Math.floor(r/10)}return 0===n.indexOf(t[1]+e[1])&&(n=n.substr(1)),n||t[0]}}}),Us(Gs.prototype,{newDate:function(t,e,r){return this._calendar.newDate(null==t?this:t,e,r)},year:function(t){return 0===arguments.length?this._year:this.set(t,"y")},month:function(t){return 0===arguments.length?this._month:this.set(t,"m")},day:function(t){return 0===arguments.length?this._day:this.set(t,"d")},date:function(t,e,r){if(!this._calendar.isValid(t,e,r))throw(Zs.local.invalidDate||Zs.regionalOptions[""].invalidDate).replace(/\{0\}/,this._calendar.local.name);return this._year=t,this._month=e,this._day=r,this},leapYear:function(){return this._calendar.leapYear(this)},epoch:function(){return this._calendar.epoch(this)},formatYear:function(){return this._calendar.formatYear(this)},monthOfYear:function(){return this._calendar.monthOfYear(this)},weekOfYear:function(){return this._calendar.weekOfYear(this)},daysInYear:function(){return this._calendar.daysInYear(this)},dayOfYear:function(){return this._calendar.dayOfYear(this)},daysInMonth:function(){return this._calendar.daysInMonth(this)},dayOfWeek:function(){return this._calendar.dayOfWeek(this)},weekDay:function(){return this._calendar.weekDay(this)},extraInfo:function(){return this._calendar.extraInfo(this)},add:function(t,e){return this._calendar.add(this,t,e)},set:function(t,e){return this._calendar.set(this,t,e)},compareTo:function(t){if(this._calendar.name!==t._calendar.name)throw(Zs.local.differentCalendars||Zs.regionalOptions[""].differentCalendars).replace(/\{0\}/,this._calendar.local.name).replace(/\{1\}/,t._calendar.local.name);var e=this._year!==t._year?this._year-t._year:this._month!==t._month?this.monthOfYear()-t.monthOfYear():this._day-t._day;return 0===e?0:e<0?-1:1},calendar:function(){return this._calendar},toJD:function(){return this._calendar.toJD(this)},fromJD:function(t){return this._calendar.fromJD(t)},toJSDate:function(){return this._calendar.toJSDate(this)},fromJSDate:function(t){return this._calendar.fromJSDate(t)},toString:function(){return(this.year()<0?"-":"")+Ws(Math.abs(this.year()),4)+"-"+Ws(this.month(),2)+"-"+Ws(this.day(),2)}}),Us(Ys.prototype,{_validateLevel:0,newDate:function(t,e,r){return null==t?this.today():(t.year&&(this._validate(t,e,r,Zs.local.invalidDate||Zs.regionalOptions[""].invalidDate),r=t.day(),e=t.month(),t=t.year()),new Gs(this,t,e,r))},today:function(){return this.fromJSDate(new Date)},epoch:function(t){return this._validate(t,this.minMonth,this.minDay,Zs.local.invalidYear||Zs.regionalOptions[""].invalidYear).year()<0?this.local.epochs[0]:this.local.epochs[1]},formatYear:function(t){var e=this._validate(t,this.minMonth,this.minDay,Zs.local.invalidYear||Zs.regionalOptions[""].invalidYear);return(e.year()<0?"-":"")+Ws(Math.abs(e.year()),4)},monthsInYear:function(t){return this._validate(t,this.minMonth,this.minDay,Zs.local.invalidYear||Zs.regionalOptions[""].invalidYear),12},monthOfYear:function(t,e){var r=this._validate(t,e,this.minDay,Zs.local.invalidMonth||Zs.regionalOptions[""].invalidMonth);return(r.month()+this.monthsInYear(r)-this.firstMonth)%this.monthsInYear(r)+this.minMonth},fromMonthOfYear:function(t,e){var r=(e+this.firstMonth-2*this.minMonth)%this.monthsInYear(t)+this.minMonth;return this._validate(t,r,this.minDay,Zs.local.invalidMonth||Zs.regionalOptions[""].invalidMonth),r},daysInYear:function(t){var e=this._validate(t,this.minMonth,this.minDay,Zs.local.invalidYear||Zs.regionalOptions[""].invalidYear);return this.leapYear(e)?366:365},dayOfYear:function(t,e,r){var n=this._validate(t,e,r,Zs.local.invalidDate||Zs.regionalOptions[""].invalidDate);return n.toJD()-this.newDate(n.year(),this.fromMonthOfYear(n.year(),this.minMonth),this.minDay).toJD()+1},daysInWeek:function(){return 7},dayOfWeek:function(t,e,r){var n=this._validate(t,e,r,Zs.local.invalidDate||Zs.regionalOptions[""].invalidDate);return(Math.floor(this.toJD(n))+2)%this.daysInWeek()},extraInfo:function(t,e,r){return this._validate(t,e,r,Zs.local.invalidDate||Zs.regionalOptions[""].invalidDate),{}},add:function(t,e,r){return this._validate(t,this.minMonth,this.minDay,Zs.local.invalidDate||Zs.regionalOptions[""].invalidDate),this._correctAdd(t,this._add(t,e,r),e,r)},_add:function(t,e,r){if(this._validateLevel++,"d"===r||"w"===r){var n=t.toJD()+e*("w"===r?this.daysInWeek():1),i=t.calendar().fromJD(n);return this._validateLevel--,[i.year(),i.month(),i.day()]}try{var a=t.year()+("y"===r?e:0),o=t.monthOfYear()+("m"===r?e:0);i=t.day();"y"===r?(t.month()!==this.fromMonthOfYear(a,o)&&(o=this.newDate(a,t.month(),this.minDay).monthOfYear()),o=Math.min(o,this.monthsInYear(a)),i=Math.min(i,this.daysInMonth(a,this.fromMonthOfYear(a,o)))):"m"===r&&(!function(t){for(;oe-1+t.minMonth;)a++,o-=e,e=t.monthsInYear(a)}(this),i=Math.min(i,this.daysInMonth(a,this.fromMonthOfYear(a,o))));var s=[a,this.fromMonthOfYear(a,o),i];return this._validateLevel--,s}catch(t){throw this._validateLevel--,t}},_correctAdd:function(t,e,r,n){if(!(this.hasYearZero||"y"!==n&&"m"!==n||0!==e[0]&&t.year()>0==e[0]>0)){var i={y:[1,1,"y"],m:[1,this.monthsInYear(-1),"m"],w:[this.daysInWeek(),this.daysInYear(-1),"d"],d:[1,this.daysInYear(-1),"d"]}[n],a=r<0?-1:1;e=this._add(t,r*i[0]+a*i[1],i[2])}return t.date(e[0],e[1],e[2])},set:function(t,e,r){this._validate(t,this.minMonth,this.minDay,Zs.local.invalidDate||Zs.regionalOptions[""].invalidDate);var n="y"===r?e:t.year(),i="m"===r?e:t.month(),a="d"===r?e:t.day();return"y"!==r&&"m"!==r||(a=Math.min(a,this.daysInMonth(n,i))),t.date(n,i,a)},isValid:function(t,e,r){this._validateLevel++;var n=this.hasYearZero||0!==t;if(n){var i=this.newDate(t,e,this.minDay);n=e>=this.minMonth&&e-this.minMonth=this.minDay&&r-this.minDay13.5?13:1),u=i-(l>2.5?4716:4715);return u<=0&&u--,this.newDate(u,l,s)},toJSDate:function(t,e,r){var n=this._validate(t,e,r,Zs.local.invalidDate||Zs.regionalOptions[""].invalidDate),i=new Date(n.year(),n.month()-1,n.day());return i.setHours(0),i.setMinutes(0),i.setSeconds(0),i.setMilliseconds(0),i.setHours(i.getHours()>12?i.getHours()+2:0),i},fromJSDate:function(t){return this.newDate(t.getFullYear(),t.getMonth()+1,t.getDate())}});var Zs=qs=new Hs;Zs.cdate=Gs,Zs.baseCalendar=Ys,Zs.calendars.gregorian=Xs;var Js=qs.instance();function Ks(t){this.local=this.regionalOptions[t||""]||this.regionalOptions[""]}Ks.prototype=new qs.baseCalendar,Us(Ks.prototype,{name:"Chinese",jdEpoch:1721425.5,hasYearZero:!1,minMonth:0,firstMonth:0,minDay:1,regionalOptions:{"":{name:"Chinese",epochs:["BEC","EC"],monthNumbers:function(t,e){if("string"==typeof t){var r=t.match($s);return r?r[0]:""}var n=this._validateYear(t),i=t.month(),a=""+this.toChineseMonth(n,i);return e&&a.length<2&&(a="0"+a),this.isIntercalaryMonth(n,i)&&(a+="i"),a},monthNames:function(t){if("string"==typeof t){var e=t.match(tl);return e?e[0]:""}var r=this._validateYear(t),n=t.month(),i=["\u4e00\u6708","\u4e8c\u6708","\u4e09\u6708","\u56db\u6708","\u4e94\u6708","\u516d\u6708","\u4e03\u6708","\u516b\u6708","\u4e5d\u6708","\u5341\u6708","\u5341\u4e00\u6708","\u5341\u4e8c\u6708"][this.toChineseMonth(r,n)-1];return this.isIntercalaryMonth(r,n)&&(i="\u95f0"+i),i},monthNamesShort:function(t){if("string"==typeof t){var e=t.match(el);return e?e[0]:""}var r=this._validateYear(t),n=t.month(),i=["\u4e00","\u4e8c","\u4e09","\u56db","\u4e94","\u516d","\u4e03","\u516b","\u4e5d","\u5341","\u5341\u4e00","\u5341\u4e8c"][this.toChineseMonth(r,n)-1];return this.isIntercalaryMonth(r,n)&&(i="\u95f0"+i),i},parseMonth:function(t,e){t=this._validateYear(t);var r,n=parseInt(e);if(isNaN(n))"\u95f0"===e[0]&&(r=!0,e=e.substring(1)),"\u6708"===e[e.length-1]&&(e=e.substring(0,e.length-1)),n=1+["\u4e00","\u4e8c","\u4e09","\u56db","\u4e94","\u516d","\u4e03","\u516b","\u4e5d","\u5341","\u5341\u4e00","\u5341\u4e8c"].indexOf(e);else{var i=e[e.length-1];r="i"===i||"I"===i}return this.toMonthIndex(t,n,r)},dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],digits:null,dateFormat:"yyyy/mm/dd",firstDay:1,isRTL:!1}},_validateYear:function(t,e){if(t.year&&(t=t.year()),"number"!=typeof t||t<1888||t>2111)throw e.replace(/\{0\}/,this.local.name);return t},toMonthIndex:function(t,e,r){var n=this.intercalaryMonth(t);if(r&&e!==n||e<1||e>12)throw qs.local.invalidMonth.replace(/\{0\}/,this.local.name);return n?!r&&e<=n?e-1:e:e-1},toChineseMonth:function(t,e){t.year&&(e=(t=t.year()).month());var r=this.intercalaryMonth(t);if(e<0||e>(r?12:11))throw qs.local.invalidMonth.replace(/\{0\}/,this.local.name);return r?e>13},isIntercalaryMonth:function(t,e){t.year&&(e=(t=t.year()).month());var r=this.intercalaryMonth(t);return!!r&&r===e},leapYear:function(t){return 0!==this.intercalaryMonth(t)},weekOfYear:function(t,e,r){var n,i=this._validateYear(t,qs.local.invalidyear),a=nl[i-nl[0]],o=a>>9&4095,s=a>>5&15,l=31&a;(n=Js.newDate(o,s,l)).add(4-(n.dayOfWeek()||7),"d");var u=this.toJD(t,e,r)-n.toJD();return 1+Math.floor(u/7)},monthsInYear:function(t){return this.leapYear(t)?13:12},daysInMonth:function(t,e){t.year&&(e=t.month(),t=t.year()),t=this._validateYear(t);var r=rl[t-rl[0]];if(e>(r>>13?12:11))throw qs.local.invalidMonth.replace(/\{0\}/,this.local.name);return r&1<<12-e?30:29},weekDay:function(t,e,r){return(this.dayOfWeek(t,e,r)||7)<6},toJD:function(t,e,r){var n=this._validate(t,a,r,qs.local.invalidDate);t=this._validateYear(n.year()),e=n.month(),r=n.day();var i=this.isIntercalaryMonth(t,e),a=this.toChineseMonth(t,e),o=function(t,e,r,n,i){var a,o,s;if("object"==typeof t)o=t,a=e||{};else{var l="number"==typeof t&&t>=1888&&t<=2111;if(!l)throw new Error("Lunar year outside range 1888-2111");var u="number"==typeof e&&e>=1&&e<=12;if(!u)throw new Error("Lunar month outside range 1 - 12");var c,h="number"==typeof r&&r>=1&&r<=30;if(!h)throw new Error("Lunar day outside range 1 - 30");"object"==typeof n?(c=!1,a=n):(c=!!n,a=i||{}),o={year:t,month:e,day:r,isIntercalary:c}}s=o.day-1;var f,p=rl[o.year-rl[0]],d=p>>13;f=d?o.month>d?o.month:o.isIntercalary?o.month:o.month-1:o.month-1;for(var g=0;g>9&4095,(m>>5&15)-1,(31&m)+s);return a.year=y.getFullYear(),a.month=1+y.getMonth(),a.day=y.getDate(),a}(t,a,r,i);return Js.toJD(o.year,o.month,o.day)},fromJD:function(t){var e=Js.fromJD(t),r=function(t,e,r,n){var i,a;if("object"==typeof t)i=t,a=e||{};else{var o="number"==typeof t&&t>=1888&&t<=2111;if(!o)throw new Error("Solar year outside range 1888-2111");var s="number"==typeof e&&e>=1&&e<=12;if(!s)throw new Error("Solar month outside range 1 - 12");var l="number"==typeof r&&r>=1&&r<=31;if(!l)throw new Error("Solar day outside range 1 - 31");i={year:t,month:e,day:r},a=n||{}}var u=nl[i.year-nl[0]],c=i.year<<9|i.month<<5|i.day;a.year=c>=u?i.year:i.year-1,u=nl[a.year-nl[0]];var h,f=new Date(u>>9&4095,(u>>5&15)-1,31&u),p=new Date(i.year,i.month-1,i.day);h=Math.round((p-f)/864e5);var d,g=rl[a.year-rl[0]];for(d=0;d<13;d++){var v=g&1<<12-d?30:29;if(h>13;!m||d=2&&n<=6},extraInfo:function(t,e,r){var n=this._validate(t,e,r,qs.local.invalidDate);return{century:ol[Math.floor((n.year()-1)/100)+1]||""}},toJD:function(t,e,r){var n=this._validate(t,e,r,qs.local.invalidDate);return t=n.year()+(n.year()<0?1:0),e=n.month(),(r=n.day())+(e>1?16:0)+(e>2?32*(e-2):0)+400*(t-1)+this.jdEpoch-1},fromJD:function(t){t=Math.floor(t+.5)-Math.floor(this.jdEpoch)-1;var e=Math.floor(t/400)+1;t-=400*(e-1),t+=t>15?16:0;var r=Math.floor(t/32)+1,n=t-32*(r-1)+1;return this.newDate(e<=0?e-1:e,r,n)}});var ol={20:"Fruitbat",21:"Anchovy"};qs.calendars.discworld=al;function sl(t){this.local=this.regionalOptions[t||""]||this.regionalOptions[""]}sl.prototype=new qs.baseCalendar,Us(sl.prototype,{name:"Ethiopian",jdEpoch:1724220.5,daysPerMonth:[30,30,30,30,30,30,30,30,30,30,30,30,5],hasYearZero:!1,minMonth:1,firstMonth:1,minDay:1,regionalOptions:{"":{name:"Ethiopian",epochs:["BEE","EE"],monthNames:["Meskerem","Tikemet","Hidar","Tahesas","Tir","Yekatit","Megabit","Miazia","Genbot","Sene","Hamle","Nehase","Pagume"],monthNamesShort:["Mes","Tik","Hid","Tah","Tir","Yek","Meg","Mia","Gen","Sen","Ham","Neh","Pag"],dayNames:["Ehud","Segno","Maksegno","Irob","Hamus","Arb","Kidame"],dayNamesShort:["Ehu","Seg","Mak","Iro","Ham","Arb","Kid"],dayNamesMin:["Eh","Se","Ma","Ir","Ha","Ar","Ki"],digits:null,dateFormat:"dd/mm/yyyy",firstDay:0,isRTL:!1}},leapYear:function(t){var e=this._validate(t,this.minMonth,this.minDay,qs.local.invalidYear);return(t=e.year()+(e.year()<0?1:0))%4==3||t%4==-1},monthsInYear:function(t){return this._validate(t,this.minMonth,this.minDay,qs.local.invalidYear||qs.regionalOptions[""].invalidYear),13},weekOfYear:function(t,e,r){var n=this.newDate(t,e,r);return n.add(-n.dayOfWeek(),"d"),Math.floor((n.dayOfYear()-1)/7)+1},daysInMonth:function(t,e){var r=this._validate(t,e,this.minDay,qs.local.invalidMonth);return this.daysPerMonth[r.month()-1]+(13===r.month()&&this.leapYear(r.year())?1:0)},weekDay:function(t,e,r){return(this.dayOfWeek(t,e,r)||7)<6},toJD:function(t,e,r){var n=this._validate(t,e,r,qs.local.invalidDate);return(t=n.year())<0&&t++,n.day()+30*(n.month()-1)+365*(t-1)+Math.floor(t/4)+this.jdEpoch-1},fromJD:function(t){var e=Math.floor(t)+.5-this.jdEpoch,r=Math.floor((e-Math.floor((e+366)/1461))/365)+1;r<=0&&r--,e=Math.floor(t)+.5-this.newDate(r,1,1).toJD();var n=Math.floor(e/30)+1,i=e-30*(n-1)+1;return this.newDate(r,n,i)}}),qs.calendars.ethiopian=sl;function ll(t){this.local=this.regionalOptions[t||""]||this.regionalOptions[""]}function ul(t,e){return t-e*Math.floor(t/e)}ll.prototype=new qs.baseCalendar,Us(ll.prototype,{name:"Hebrew",jdEpoch:347995.5,daysPerMonth:[30,29,30,29,30,29,30,29,30,29,30,29,29],hasYearZero:!1,minMonth:1,firstMonth:7,minDay:1,regionalOptions:{"":{name:"Hebrew",epochs:["BAM","AM"],monthNames:["Nisan","Iyar","Sivan","Tammuz","Av","Elul","Tishrei","Cheshvan","Kislev","Tevet","Shevat","Adar","Adar II"],monthNamesShort:["Nis","Iya","Siv","Tam","Av","Elu","Tis","Che","Kis","Tev","She","Ada","Ad2"],dayNames:["Yom Rishon","Yom Sheni","Yom Shlishi","Yom Revi'i","Yom Chamishi","Yom Shishi","Yom Shabbat"],dayNamesShort:["Ris","She","Shl","Rev","Cha","Shi","Sha"],dayNamesMin:["Ri","She","Shl","Re","Ch","Shi","Sha"],digits:null,dateFormat:"dd/mm/yyyy",firstDay:0,isRTL:!1}},leapYear:function(t){var e=this._validate(t,this.minMonth,this.minDay,qs.local.invalidYear);return this._leapYear(e.year())},_leapYear:function(t){return ul(7*(t=t<0?t+1:t)+1,19)<7},monthsInYear:function(t){return this._validate(t,this.minMonth,this.minDay,qs.local.invalidYear),this._leapYear(t.year?t.year():t)?13:12},weekOfYear:function(t,e,r){var n=this.newDate(t,e,r);return n.add(-n.dayOfWeek(),"d"),Math.floor((n.dayOfYear()-1)/7)+1},daysInYear:function(t){return t=this._validate(t,this.minMonth,this.minDay,qs.local.invalidYear).year(),this.toJD(-1===t?1:t+1,7,1)-this.toJD(t,7,1)},daysInMonth:function(t,e){return t.year&&(e=t.month(),t=t.year()),this._validate(t,e,this.minDay,qs.local.invalidMonth),12===e&&this.leapYear(t)?30:8===e&&5===ul(this.daysInYear(t),10)?30:9===e&&3===ul(this.daysInYear(t),10)?29:this.daysPerMonth[e-1]},weekDay:function(t,e,r){return 6!==this.dayOfWeek(t,e,r)},extraInfo:function(t,e,r){var n=this._validate(t,e,r,qs.local.invalidDate);return{yearType:(this.leapYear(n)?"embolismic":"common")+" "+["deficient","regular","complete"][this.daysInYear(n)%10-3]}},toJD:function(t,e,r){var n=this._validate(t,e,r,qs.local.invalidDate);t=n.year(),e=n.month(),r=n.day();var i=t<=0?t+1:t,a=this.jdEpoch+this._delay1(i)+this._delay2(i)+r+1;if(e<7){for(var o=7;o<=this.monthsInYear(t);o++)a+=this.daysInMonth(t,o);for(o=1;o=this.toJD(-1===e?1:e+1,7,1);)e++;for(var r=tthis.toJD(e,r,this.daysInMonth(e,r));)r++;var n=t-this.toJD(e,r,1)+1;return this.newDate(e,r,n)}}),qs.calendars.hebrew=ll;function cl(t){this.local=this.regionalOptions[t||""]||this.regionalOptions[""]}cl.prototype=new qs.baseCalendar,Us(cl.prototype,{name:"Islamic",jdEpoch:1948439.5,daysPerMonth:[30,29,30,29,30,29,30,29,30,29,30,29],hasYearZero:!1,minMonth:1,firstMonth:1,minDay:1,regionalOptions:{"":{name:"Islamic",epochs:["BH","AH"],monthNames:["Muharram","Safar","Rabi' al-awwal","Rabi' al-thani","Jumada al-awwal","Jumada al-thani","Rajab","Sha'aban","Ramadan","Shawwal","Dhu al-Qi'dah","Dhu al-Hijjah"],monthNamesShort:["Muh","Saf","Rab1","Rab2","Jum1","Jum2","Raj","Sha'","Ram","Shaw","DhuQ","DhuH"],dayNames:["Yawm al-ahad","Yawm al-ithnayn","Yawm ath-thulaathaa'","Yawm al-arbi'aa'","Yawm al-kham\u012bs","Yawm al-jum'a","Yawm as-sabt"],dayNamesShort:["Aha","Ith","Thu","Arb","Kha","Jum","Sab"],dayNamesMin:["Ah","It","Th","Ar","Kh","Ju","Sa"],digits:null,dateFormat:"yyyy/mm/dd",firstDay:6,isRTL:!1}},leapYear:function(t){return(11*this._validate(t,this.minMonth,this.minDay,qs.local.invalidYear).year()+14)%30<11},weekOfYear:function(t,e,r){var n=this.newDate(t,e,r);return n.add(-n.dayOfWeek(),"d"),Math.floor((n.dayOfYear()-1)/7)+1},daysInYear:function(t){return this.leapYear(t)?355:354},daysInMonth:function(t,e){var r=this._validate(t,e,this.minDay,qs.local.invalidMonth);return this.daysPerMonth[r.month()-1]+(12===r.month()&&this.leapYear(r.year())?1:0)},weekDay:function(t,e,r){return 5!==this.dayOfWeek(t,e,r)},toJD:function(t,e,r){var n=this._validate(t,e,r,qs.local.invalidDate);return t=n.year(),e=n.month(),r=n.day(),t=t<=0?t+1:t,r+Math.ceil(29.5*(e-1))+354*(t-1)+Math.floor((3+11*t)/30)+this.jdEpoch-1},fromJD:function(t){t=Math.floor(t)+.5;var e=Math.floor((30*(t-this.jdEpoch)+10646)/10631);e=e<=0?e-1:e;var r=Math.min(12,Math.ceil((t-29-this.toJD(e,1,1))/29.5)+1),n=t-this.toJD(e,r,1)+1;return this.newDate(e,r,n)}}),qs.calendars.islamic=cl;function hl(t){this.local=this.regionalOptions[t||""]||this.regionalOptions[""]}hl.prototype=new qs.baseCalendar,Us(hl.prototype,{name:"Julian",jdEpoch:1721423.5,daysPerMonth:[31,28,31,30,31,30,31,31,30,31,30,31],hasYearZero:!1,minMonth:1,firstMonth:1,minDay:1,regionalOptions:{"":{name:"Julian",epochs:["BC","AD"],monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],digits:null,dateFormat:"mm/dd/yyyy",firstDay:0,isRTL:!1}},leapYear:function(t){var e=this._validate(t,this.minMonth,this.minDay,qs.local.invalidYear);return(t=e.year()<0?e.year()+1:e.year())%4==0},weekOfYear:function(t,e,r){var n=this.newDate(t,e,r);return n.add(4-(n.dayOfWeek()||7),"d"),Math.floor((n.dayOfYear()-1)/7)+1},daysInMonth:function(t,e){var r=this._validate(t,e,this.minDay,qs.local.invalidMonth);return this.daysPerMonth[r.month()-1]+(2===r.month()&&this.leapYear(r.year())?1:0)},weekDay:function(t,e,r){return(this.dayOfWeek(t,e,r)||7)<6},toJD:function(t,e,r){var n=this._validate(t,e,r,qs.local.invalidDate);return t=n.year(),e=n.month(),r=n.day(),t<0&&t++,e<=2&&(t--,e+=12),Math.floor(365.25*(t+4716))+Math.floor(30.6001*(e+1))+r-1524.5},fromJD:function(t){var e=Math.floor(t+.5)+1524,r=Math.floor((e-122.1)/365.25),n=Math.floor(365.25*r),i=Math.floor((e-n)/30.6001),a=i-Math.floor(i<14?1:13),o=r-Math.floor(a>2?4716:4715),s=e-n-Math.floor(30.6001*i);return o<=0&&o--,this.newDate(o,a,s)}}),qs.calendars.julian=hl;function fl(t){this.local=this.regionalOptions[t||""]||this.regionalOptions[""]}function pl(t,e){return t-e*Math.floor(t/e)}function dl(t,e){return pl(t-1,e)+1}fl.prototype=new qs.baseCalendar,Us(fl.prototype,{name:"Mayan",jdEpoch:584282.5,hasYearZero:!0,minMonth:0,firstMonth:0,minDay:0,regionalOptions:{"":{name:"Mayan",epochs:["",""],monthNames:["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17"],monthNamesShort:["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17"],dayNames:["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19"],dayNamesShort:["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19"],dayNamesMin:["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19"],digits:null,dateFormat:"YYYY.m.d",firstDay:0,isRTL:!1,haabMonths:["Pop","Uo","Zip","Zotz","Tzec","Xul","Yaxkin","Mol","Chen","Yax","Zac","Ceh","Mac","Kankin","Muan","Pax","Kayab","Cumku","Uayeb"],tzolkinMonths:["Imix","Ik","Akbal","Kan","Chicchan","Cimi","Manik","Lamat","Muluc","Oc","Chuen","Eb","Ben","Ix","Men","Cib","Caban","Etznab","Cauac","Ahau"]}},leapYear:function(t){return this._validate(t,this.minMonth,this.minDay,qs.local.invalidYear),!1},formatYear:function(t){t=this._validate(t,this.minMonth,this.minDay,qs.local.invalidYear).year();var e=Math.floor(t/400);return t%=400,t+=t<0?400:0,e+"."+Math.floor(t/20)+"."+t%20},forYear:function(t){if((t=t.split(".")).length<3)throw"Invalid Mayan year";for(var e=0,r=0;r19||r>0&&n<0)throw"Invalid Mayan year";e=20*e+n}return e},monthsInYear:function(t){return this._validate(t,this.minMonth,this.minDay,qs.local.invalidYear),18},weekOfYear:function(t,e,r){return this._validate(t,e,r,qs.local.invalidDate),0},daysInYear:function(t){return this._validate(t,this.minMonth,this.minDay,qs.local.invalidYear),360},daysInMonth:function(t,e){return this._validate(t,e,this.minDay,qs.local.invalidMonth),20},daysInWeek:function(){return 5},dayOfWeek:function(t,e,r){return this._validate(t,e,r,qs.local.invalidDate).day()},weekDay:function(t,e,r){return this._validate(t,e,r,qs.local.invalidDate),!0},extraInfo:function(t,e,r){var n=this._validate(t,e,r,qs.local.invalidDate).toJD(),i=this._toHaab(n),a=this._toTzolkin(n);return{haabMonthName:this.local.haabMonths[i[0]-1],haabMonth:i[0],haabDay:i[1],tzolkinDayName:this.local.tzolkinMonths[a[0]-1],tzolkinDay:a[0],tzolkinTrecena:a[1]}},_toHaab:function(t){var e=pl((t-=this.jdEpoch)+8+340,365);return[Math.floor(e/20)+1,pl(e,20)]},_toTzolkin:function(t){return[dl((t-=this.jdEpoch)+20,20),dl(t+4,13)]},toJD:function(t,e,r){var n=this._validate(t,e,r,qs.local.invalidDate);return n.day()+20*n.month()+360*n.year()+this.jdEpoch},fromJD:function(t){t=Math.floor(t)+.5-this.jdEpoch;var e=Math.floor(t/360);t%=360,t+=t<0?360:0;var r=Math.floor(t/20),n=t%20;return this.newDate(e,r,n)}}),qs.calendars.mayan=fl;function vl(t){this.local=this.regionalOptions[t||""]||this.regionalOptions[""]}vl.prototype=new qs.baseCalendar;var ml=qs.instance("gregorian");Us(vl.prototype,{name:"Nanakshahi",jdEpoch:2257673.5,daysPerMonth:[31,31,31,31,31,30,30,30,30,30,30,30],hasYearZero:!1,minMonth:1,firstMonth:1,minDay:1,regionalOptions:{"":{name:"Nanakshahi",epochs:["BN","AN"],monthNames:["Chet","Vaisakh","Jeth","Harh","Sawan","Bhadon","Assu","Katak","Maghar","Poh","Magh","Phagun"],monthNamesShort:["Che","Vai","Jet","Har","Saw","Bha","Ass","Kat","Mgr","Poh","Mgh","Pha"],dayNames:["Somvaar","Mangalvar","Budhvaar","Veervaar","Shukarvaar","Sanicharvaar","Etvaar"],dayNamesShort:["Som","Mangal","Budh","Veer","Shukar","Sanichar","Et"],dayNamesMin:["So","Ma","Bu","Ve","Sh","Sa","Et"],digits:null,dateFormat:"dd-mm-yyyy",firstDay:0,isRTL:!1}},leapYear:function(t){var e=this._validate(t,this.minMonth,this.minDay,qs.local.invalidYear||qs.regionalOptions[""].invalidYear);return ml.leapYear(e.year()+(e.year()<1?1:0)+1469)},weekOfYear:function(t,e,r){var n=this.newDate(t,e,r);return n.add(1-(n.dayOfWeek()||7),"d"),Math.floor((n.dayOfYear()-1)/7)+1},daysInMonth:function(t,e){var r=this._validate(t,e,this.minDay,qs.local.invalidMonth);return this.daysPerMonth[r.month()-1]+(12===r.month()&&this.leapYear(r.year())?1:0)},weekDay:function(t,e,r){return(this.dayOfWeek(t,e,r)||7)<6},toJD:function(t,e,r){var n=this._validate(t,e,r,qs.local.invalidMonth);(t=n.year())<0&&t++;for(var i=n.day(),a=1;a=this.toJD(e+1,1,1);)e++;for(var r=t-Math.floor(this.toJD(e,1,1)+.5)+1,n=1;r>this.daysInMonth(e,n);)r-=this.daysInMonth(e,n),n++;return this.newDate(e,n,r)}}),qs.calendars.nanakshahi=vl;function yl(t){this.local=this.regionalOptions[t||""]||this.regionalOptions[""]}yl.prototype=new qs.baseCalendar,Us(yl.prototype,{name:"Nepali",jdEpoch:1700709.5,daysPerMonth:[31,31,32,32,31,30,30,29,30,29,30,30],hasYearZero:!1,minMonth:1,firstMonth:1,minDay:1,daysPerYear:365,regionalOptions:{"":{name:"Nepali",epochs:["BBS","ABS"],monthNames:["Baisakh","Jestha","Ashadh","Shrawan","Bhadra","Ashwin","Kartik","Mangsir","Paush","Mangh","Falgun","Chaitra"],monthNamesShort:["Bai","Je","As","Shra","Bha","Ash","Kar","Mang","Pau","Ma","Fal","Chai"],dayNames:["Aaitabaar","Sombaar","Manglbaar","Budhabaar","Bihibaar","Shukrabaar","Shanibaar"],dayNamesShort:["Aaita","Som","Mangl","Budha","Bihi","Shukra","Shani"],dayNamesMin:["Aai","So","Man","Bu","Bi","Shu","Sha"],digits:null,dateFormat:"dd/mm/yyyy",firstDay:1,isRTL:!1}},leapYear:function(t){return this.daysInYear(t)!==this.daysPerYear},weekOfYear:function(t,e,r){var n=this.newDate(t,e,r);return n.add(-n.dayOfWeek(),"d"),Math.floor((n.dayOfYear()-1)/7)+1},daysInYear:function(t){if(t=this._validate(t,this.minMonth,this.minDay,qs.local.invalidYear).year(),void 0===this.NEPALI_CALENDAR_DATA[t])return this.daysPerYear;for(var e=0,r=this.minMonth;r<=12;r++)e+=this.NEPALI_CALENDAR_DATA[t][r];return e},daysInMonth:function(t,e){return t.year&&(e=t.month(),t=t.year()),this._validate(t,e,this.minDay,qs.local.invalidMonth),void 0===this.NEPALI_CALENDAR_DATA[t]?this.daysPerMonth[e-1]:this.NEPALI_CALENDAR_DATA[t][e]},weekDay:function(t,e,r){return 6!==this.dayOfWeek(t,e,r)},toJD:function(t,e,r){var n=this._validate(t,e,r,qs.local.invalidDate);t=n.year(),e=n.month(),r=n.day();var i=qs.instance(),a=0,o=e,s=t;this._createMissingCalendarData(t);var l=t-(o>9||9===o&&r>=this.NEPALI_CALENDAR_DATA[s][0]?56:57);for(9!==e&&(a=r,o--);9!==o;)o<=0&&(o=12,s--),a+=this.NEPALI_CALENDAR_DATA[s][o],o--;return 9===e?(a+=r-this.NEPALI_CALENDAR_DATA[s][0])<0&&(a+=i.daysInYear(l)):a+=this.NEPALI_CALENDAR_DATA[s][9]-this.NEPALI_CALENDAR_DATA[s][0],i.newDate(l,1,1).add(a,"d").toJD()},fromJD:function(t){var e=qs.instance().fromJD(t),r=e.year(),n=e.dayOfYear(),i=r+56;this._createMissingCalendarData(i);for(var a=9,o=this.NEPALI_CALENDAR_DATA[i][0],s=this.NEPALI_CALENDAR_DATA[i][a]-o+1;n>s;)++a>12&&(a=1,i++),s+=this.NEPALI_CALENDAR_DATA[i][a];var l=this.NEPALI_CALENDAR_DATA[i][a]-(s-n);return this.newDate(i,a,l)},_createMissingCalendarData:function(t){var e=this.daysPerMonth.slice(0);e.unshift(17);for(var r=t-1;r0?474:473))%2820+474+38)%2816<682},weekOfYear:function(t,e,r){var n=this.newDate(t,e,r);return n.add(-(n.dayOfWeek()+1)%7,"d"),Math.floor((n.dayOfYear()-1)/7)+1},daysInMonth:function(t,e){var r=this._validate(t,e,this.minDay,qs.local.invalidMonth);return this.daysPerMonth[r.month()-1]+(12===r.month()&&this.leapYear(r.year())?1:0)},weekDay:function(t,e,r){return 5!==this.dayOfWeek(t,e,r)},toJD:function(t,e,r){var n=this._validate(t,e,r,qs.local.invalidDate);t=n.year(),e=n.month(),r=n.day();var i=t-(t>=0?474:473),a=474+bl(i,2820);return r+(e<=7?31*(e-1):30*(e-1)+6)+Math.floor((682*a-110)/2816)+365*(a-1)+1029983*Math.floor(i/2820)+this.jdEpoch-1},fromJD:function(t){var e=(t=Math.floor(t)+.5)-this.toJD(475,1,1),r=Math.floor(e/1029983),n=bl(e,1029983),i=2820;if(1029982!==n){var a=Math.floor(n/366),o=bl(n,366);i=Math.floor((2134*a+2816*o+2815)/1028522)+a+1}var s=i+2820*r+474;s=s<=0?s-1:s;var l=t-this.toJD(s,1,1)+1,u=l<=186?Math.ceil(l/31):Math.ceil((l-6)/30),c=t-this.toJD(s,u,1)+1;return this.newDate(s,u,c)}}),qs.calendars.persian=xl,qs.calendars.jalali=xl;var _l=qs.instance();function wl(t){this.local=this.regionalOptions[t||""]||this.regionalOptions[""]}wl.prototype=new qs.baseCalendar,Us(wl.prototype,{name:"Taiwan",jdEpoch:2419402.5,yearsOffset:1911,daysPerMonth:[31,28,31,30,31,30,31,31,30,31,30,31],hasYearZero:!1,minMonth:1,firstMonth:1,minDay:1,regionalOptions:{"":{name:"Taiwan",epochs:["BROC","ROC"],monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],digits:null,dateFormat:"yyyy/mm/dd",firstDay:1,isRTL:!1}},leapYear:function(t){var e=this._validate(t,this.minMonth,this.minDay,qs.local.invalidYear);t=this._t2gYear(e.year());return _l.leapYear(t)},weekOfYear:function(t,e,r){var n=this._validate(t,this.minMonth,this.minDay,qs.local.invalidYear);t=this._t2gYear(n.year());return _l.weekOfYear(t,n.month(),n.day())},daysInMonth:function(t,e){var r=this._validate(t,e,this.minDay,qs.local.invalidMonth);return this.daysPerMonth[r.month()-1]+(2===r.month()&&this.leapYear(r.year())?1:0)},weekDay:function(t,e,r){return(this.dayOfWeek(t,e,r)||7)<6},toJD:function(t,e,r){var n=this._validate(t,e,r,qs.local.invalidDate);t=this._t2gYear(n.year());return _l.toJD(t,n.month(),n.day())},fromJD:function(t){var e=_l.fromJD(t),r=this._g2tYear(e.year());return this.newDate(r,e.month(),e.day())},_t2gYear:function(t){return t+this.yearsOffset+(t>=-this.yearsOffset&&t<=-1?1:0)},_g2tYear:function(t){return t-this.yearsOffset-(t>=1&&t<=this.yearsOffset?1:0)}}),qs.calendars.taiwan=wl;var Ml=qs.instance();function Al(t){this.local=this.regionalOptions[t||""]||this.regionalOptions[""]}Al.prototype=new qs.baseCalendar,Us(Al.prototype,{name:"Thai",jdEpoch:1523098.5,yearsOffset:543,daysPerMonth:[31,28,31,30,31,30,31,31,30,31,30,31],hasYearZero:!1,minMonth:1,firstMonth:1,minDay:1,regionalOptions:{"":{name:"Thai",epochs:["BBE","BE"],monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],digits:null,dateFormat:"dd/mm/yyyy",firstDay:0,isRTL:!1}},leapYear:function(t){var e=this._validate(t,this.minMonth,this.minDay,qs.local.invalidYear);t=this._t2gYear(e.year());return Ml.leapYear(t)},weekOfYear:function(t,e,r){var n=this._validate(t,this.minMonth,this.minDay,qs.local.invalidYear);t=this._t2gYear(n.year());return Ml.weekOfYear(t,n.month(),n.day())},daysInMonth:function(t,e){var r=this._validate(t,e,this.minDay,qs.local.invalidMonth);return this.daysPerMonth[r.month()-1]+(2===r.month()&&this.leapYear(r.year())?1:0)},weekDay:function(t,e,r){return(this.dayOfWeek(t,e,r)||7)<6},toJD:function(t,e,r){var n=this._validate(t,e,r,qs.local.invalidDate);t=this._t2gYear(n.year());return Ml.toJD(t,n.month(),n.day())},fromJD:function(t){var e=Ml.fromJD(t),r=this._g2tYear(e.year());return this.newDate(r,e.month(),e.day())},_t2gYear:function(t){return t-this.yearsOffset-(t>=1&&t<=this.yearsOffset?1:0)},_g2tYear:function(t){return t+this.yearsOffset+(t>=-this.yearsOffset&&t<=-1?1:0)}}),qs.calendars.thai=Al;function kl(t){this.local=this.regionalOptions[t||""]||this.regionalOptions[""]}kl.prototype=new qs.baseCalendar,Us(kl.prototype,{name:"UmmAlQura",hasYearZero:!1,minMonth:1,firstMonth:1,minDay:1,regionalOptions:{"":{name:"Umm al-Qura",epochs:["BH","AH"],monthNames:["Al-Muharram","Safar","Rabi' al-awwal","Rabi' Al-Thani","Jumada Al-Awwal","Jumada Al-Thani","Rajab","Sha'aban","Ramadan","Shawwal","Dhu al-Qi'dah","Dhu al-Hijjah"],monthNamesShort:["Muh","Saf","Rab1","Rab2","Jum1","Jum2","Raj","Sha'","Ram","Shaw","DhuQ","DhuH"],dayNames:["Yawm al-Ahad","Yawm al-Ithnain","Yawm al-Thal\u0101th\u0101\u2019","Yawm al-Arba\u2018\u0101\u2019","Yawm al-Kham\u012bs","Yawm al-Jum\u2018a","Yawm al-Sabt"],dayNamesMin:["Ah","Ith","Th","Ar","Kh","Ju","Sa"],digits:null,dateFormat:"yyyy/mm/dd",firstDay:6,isRTL:!0}},leapYear:function(t){var e=this._validate(t,this.minMonth,this.minDay,qs.local.invalidYear);return 355===this.daysInYear(e.year())},weekOfYear:function(t,e,r){var n=this.newDate(t,e,r);return n.add(-n.dayOfWeek(),"d"),Math.floor((n.dayOfYear()-1)/7)+1},daysInYear:function(t){for(var e=0,r=1;r<=12;r++)e+=this.daysInMonth(t,r);return e},daysInMonth:function(t,e){for(var r=this._validate(t,e,this.minDay,qs.local.invalidMonth).toJD()-24e5+.5,n=0,i=0;ir)return Tl[n]-Tl[n-1];n++}return 30},weekDay:function(t,e,r){return 5!==this.dayOfWeek(t,e,r)},toJD:function(t,e,r){var n=this._validate(t,e,r,qs.local.invalidDate),i=12*(n.year()-1)+n.month()-15292;return n.day()+Tl[i-1]-1+24e5-.5},fromJD:function(t){for(var e=t-24e5+.5,r=0,n=0;ne);n++)r++;var i=r+15292,a=Math.floor((i-1)/12),o=a+1,s=i-12*a,l=e-Tl[r-1]+1;return this.newDate(o,s,l)},isValid:function(t,e,r){var n=qs.baseCalendar.prototype.isValid.apply(this,arguments);return n&&(n=(t=null!=t.year?t.year:t)>=1276&&t<=1500),n},_validate:function(t,e,r,n){var i=qs.baseCalendar.prototype._validate.apply(this,arguments);if(i.year<1276||i.year>1500)throw n.replace(/\{0\}/,this.local.name);return i}}),qs.calendars.ummalqura=kl;var Tl=[20,50,79,109,138,168,197,227,256,286,315,345,374,404,433,463,492,522,551,581,611,641,670,700,729,759,788,818,847,877,906,936,965,995,1024,1054,1083,1113,1142,1172,1201,1231,1260,1290,1320,1350,1379,1409,1438,1468,1497,1527,1556,1586,1615,1645,1674,1704,1733,1763,1792,1822,1851,1881,1910,1940,1969,1999,2028,2058,2087,2117,2146,2176,2205,2235,2264,2294,2323,2353,2383,2413,2442,2472,2501,2531,2560,2590,2619,2649,2678,2708,2737,2767,2796,2826,2855,2885,2914,2944,2973,3003,3032,3062,3091,3121,3150,3180,3209,3239,3268,3298,3327,3357,3386,3416,3446,3476,3505,3535,3564,3594,3623,3653,3682,3712,3741,3771,3800,3830,3859,3889,3918,3948,3977,4007,4036,4066,4095,4125,4155,4185,4214,4244,4273,4303,4332,4362,4391,4421,4450,4480,4509,4539,4568,4598,4627,4657,4686,4716,4745,4775,4804,4834,4863,4893,4922,4952,4981,5011,5040,5070,5099,5129,5158,5188,5218,5248,5277,5307,5336,5366,5395,5425,5454,5484,5513,5543,5572,5602,5631,5661,5690,5720,5749,5779,5808,5838,5867,5897,5926,5956,5985,6015,6044,6074,6103,6133,6162,6192,6221,6251,6281,6311,6340,6370,6399,6429,6458,6488,6517,6547,6576,6606,6635,6665,6694,6724,6753,6783,6812,6842,6871,6901,6930,6960,6989,7019,7048,7078,7107,7137,7166,7196,7225,7255,7284,7314,7344,7374,7403,7433,7462,7492,7521,7551,7580,7610,7639,7669,7698,7728,7757,7787,7816,7846,7875,7905,7934,7964,7993,8023,8053,8083,8112,8142,8171,8201,8230,8260,8289,8319,8348,8378,8407,8437,8466,8496,8525,8555,8584,8614,8643,8673,8702,8732,8761,8791,8821,8850,8880,8909,8938,8968,8997,9027,9056,9086,9115,9145,9175,9205,9234,9264,9293,9322,9352,9381,9410,9440,9470,9499,9529,9559,9589,9618,9648,9677,9706,9736,9765,9794,9824,9853,9883,9913,9943,9972,10002,10032,10061,10090,10120,10149,10178,10208,10237,10267,10297,10326,10356,10386,10415,10445,10474,10504,10533,10562,10592,10621,10651,10680,10710,10740,10770,10799,10829,10858,10888,10917,10947,10976,11005,11035,11064,11094,11124,11153,11183,11213,11242,11272,11301,11331,11360,11389,11419,11448,11478,11507,11537,11567,11596,11626,11655,11685,11715,11744,11774,11803,11832,11862,11891,11921,11950,11980,12010,12039,12069,12099,12128,12158,12187,12216,12246,12275,12304,12334,12364,12393,12423,12453,12483,12512,12542,12571,12600,12630,12659,12688,12718,12747,12777,12807,12837,12866,12896,12926,12955,12984,13014,13043,13072,13102,13131,13161,13191,13220,13250,13280,13310,13339,13368,13398,13427,13456,13486,13515,13545,13574,13604,13634,13664,13693,13723,13752,13782,13811,13840,13870,13899,13929,13958,13988,14018,14047,14077,14107,14136,14166,14195,14224,14254,14283,14313,14342,14372,14401,14431,14461,14490,14520,14550,14579,14609,14638,14667,14697,14726,14756,14785,14815,14844,14874,14904,14933,14963,14993,15021,15051,15081,15110,15140,15169,15199,15228,15258,15287,15317,15347,15377,15406,15436,15465,15494,15524,15553,15582,15612,15641,15671,15701,15731,15760,15790,15820,15849,15878,15908,15937,15966,15996,16025,16055,16085,16114,16144,16174,16204,16233,16262,16292,16321,16350,16380,16409,16439,16468,16498,16528,16558,16587,16617,16646,16676,16705,16734,16764,16793,16823,16852,16882,16912,16941,16971,17001,17030,17060,17089,17118,17148,17177,17207,17236,17266,17295,17325,17355,17384,17414,17444,17473,17502,17532,17561,17591,17620,17650,17679,17709,17738,17768,17798,17827,17857,17886,17916,17945,17975,18004,18034,18063,18093,18122,18152,18181,18211,18241,18270,18300,18330,18359,18388,18418,18447,18476,18506,18535,18565,18595,18625,18654,18684,18714,18743,18772,18802,18831,18860,18890,18919,18949,18979,19008,19038,19068,19098,19127,19156,19186,19215,19244,19274,19303,19333,19362,19392,19422,19452,19481,19511,19540,19570,19599,19628,19658,19687,19717,19746,19776,19806,19836,19865,19895,19924,19954,19983,20012,20042,20071,20101,20130,20160,20190,20219,20249,20279,20308,20338,20367,20396,20426,20455,20485,20514,20544,20573,20603,20633,20662,20692,20721,20751,20780,20810,20839,20869,20898,20928,20957,20987,21016,21046,21076,21105,21135,21164,21194,21223,21253,21282,21312,21341,21371,21400,21430,21459,21489,21519,21548,21578,21607,21637,21666,21696,21725,21754,21784,21813,21843,21873,21902,21932,21962,21991,22021,22050,22080,22109,22138,22168,22197,22227,22256,22286,22316,22346,22375,22405,22434,22464,22493,22522,22552,22581,22611,22640,22670,22700,22730,22759,22789,22818,22848,22877,22906,22936,22965,22994,23024,23054,23083,23113,23143,23173,23202,23232,23261,23290,23320,23349,23379,23408,23438,23467,23497,23527,23556,23586,23616,23645,23674,23704,23733,23763,23792,23822,23851,23881,23910,23940,23970,23999,24029,24058,24088,24117,24147,24176,24206,24235,24265,24294,24324,24353,24383,24413,24442,24472,24501,24531,24560,24590,24619,24648,24678,24707,24737,24767,24796,24826,24856,24885,24915,24944,24974,25003,25032,25062,25091,25121,25150,25180,25210,25240,25269,25299,25328,25358,25387,25416,25446,25475,25505,25534,25564,25594,25624,25653,25683,25712,25742,25771,25800,25830,25859,25888,25918,25948,25977,26007,26037,26067,26096,26126,26155,26184,26214,26243,26272,26302,26332,26361,26391,26421,26451,26480,26510,26539,26568,26598,26627,26656,26686,26715,26745,26775,26805,26834,26864,26893,26923,26952,26982,27011,27041,27070,27099,27129,27159,27188,27218,27248,27277,27307,27336,27366,27395,27425,27454,27484,27513,27542,27572,27602,27631,27661,27691,27720,27750,27779,27809,27838,27868,27897,27926,27956,27985,28015,28045,28074,28104,28134,28163,28193,28222,28252,28281,28310,28340,28369,28399,28428,28458,28488,28517,28547,28577,28607,28636,28665,28695,28724,28754,28783,28813,28843,28872,28901,28931,28960,28990,29019,29049,29078,29108,29137,29167,29196,29226,29255,29285,29315,29345,29375,29404,29434,29463,29492,29522,29551,29580,29610,29640,29669,29699,29729,29759,29788,29818,29847,29876,29906,29935,29964,29994,30023,30053,30082,30112,30141,30171,30200,30230,30259,30289,30318,30348,30378,30408,30437,30467,30496,30526,30555,30585,30614,30644,30673,30703,30732,30762,30791,30821,30850,30880,30909,30939,30968,30998,31027,31057,31086,31116,31145,31175,31204,31234,31263,31293,31322,31352,31381,31411,31441,31471,31500,31530,31559,31589,31618,31648,31676,31706,31736,31766,31795,31825,31854,31884,31913,31943,31972,32002,32031,32061,32090,32120,32150,32180,32209,32239,32268,32298,32327,32357,32386,32416,32445,32475,32504,32534,32563,32593,32622,32652,32681,32711,32740,32770,32799,32829,32858,32888,32917,32947,32976,33006,33035,33065,33094,33124,33153,33183,33213,33243,33272,33302,33331,33361,33390,33420,33450,33479,33509,33539,33568,33598,33627,33657,33686,33716,33745,33775,33804,33834,33863,33893,33922,33952,33981,34011,34040,34069,34099,34128,34158,34187,34217,34247,34277,34306,34336,34365,34395,34424,34454,34483,34512,34542,34571,34601,34631,34660,34690,34719,34749,34778,34808,34837,34867,34896,34926,34955,34985,35015,35044,35074,35103,35133,35162,35192,35222,35251,35280,35310,35340,35370,35399,35429,35458,35488,35517,35547,35576,35605,35635,35665,35694,35723,35753,35782,35811,35841,35871,35901,35930,35960,35989,36019,36048,36078,36107,36136,36166,36195,36225,36254,36284,36314,36343,36373,36403,36433,36462,36492,36521,36551,36580,36610,36639,36669,36698,36728,36757,36786,36816,36845,36875,36904,36934,36963,36993,37022,37052,37081,37111,37141,37170,37200,37229,37259,37288,37318,37347,37377,37406,37436,37465,37495,37524,37554,37584,37613,37643,37672,37701,37731,37760,37790,37819,37849,37878,37908,37938,37967,37997,38027,38056,38085,38115,38144,38174,38203,38233,38262,38292,38322,38351,38381,38410,38440,38469,38499,38528,38558,38587,38617,38646,38676,38705,38735,38764,38794,38823,38853,38882,38912,38941,38971,39001,39030,39059,39089,39118,39148,39178,39208,39237,39267,39297,39326,39355,39385,39414,39444,39473,39503,39532,39562,39592,39621,39650,39680,39709,39739,39768,39798,39827,39857,39886,39916,39946,39975,40005,40035,40064,40094,40123,40153,40182,40212,40241,40271,40300,40330,40359,40389,40418,40448,40477,40507,40536,40566,40595,40625,40655,40685,40714,40744,40773,40803,40832,40862,40892,40921,40951,40980,41009,41039,41068,41098,41127,41157,41186,41216,41245,41275,41304,41334,41364,41393,41422,41452,41481,41511,41540,41570,41599,41629,41658,41688,41718,41748,41777,41807,41836,41865,41894,41924,41953,41983,42012,42042,42072,42102,42131,42161,42190,42220,42249,42279,42308,42337,42367,42397,42426,42456,42485,42515,42545,42574,42604,42633,42662,42692,42721,42751,42780,42810,42839,42869,42899,42929,42958,42988,43017,43046,43076,43105,43135,43164,43194,43223,43253,43283,43312,43342,43371,43401,43430,43460,43489,43519,43548,43578,43607,43637,43666,43696,43726,43755,43785,43814,43844,43873,43903,43932,43962,43991,44021,44050,44080,44109,44139,44169,44198,44228,44258,44287,44317,44346,44375,44405,44434,44464,44493,44523,44553,44582,44612,44641,44671,44700,44730,44759,44788,44818,44847,44877,44906,44936,44966,44996,45025,45055,45084,45114,45143,45172,45202,45231,45261,45290,45320,45350,45380,45409,45439,45468,45498,45527,45556,45586,45615,45644,45674,45704,45733,45763,45793,45823,45852,45882,45911,45940,45970,45999,46028,46058,46088,46117,46147,46177,46206,46236,46265,46295,46324,46354,46383,46413,46442,46472,46501,46531,46560,46590,46620,46649,46679,46708,46738,46767,46797,46826,46856,46885,46915,46944,46974,47003,47033,47063,47092,47122,47151,47181,47210,47240,47269,47298,47328,47357,47387,47417,47446,47476,47506,47535,47565,47594,47624,47653,47682,47712,47741,47771,47800,47830,47860,47890,47919,47949,47978,48008,48037,48066,48096,48125,48155,48184,48214,48244,48273,48303,48333,48362,48392,48421,48450,48480,48509,48538,48568,48598,48627,48657,48687,48717,48746,48776,48805,48834,48864,48893,48922,48952,48982,49011,49041,49071,49100,49130,49160,49189,49218,49248,49277,49306,49336,49365,49395,49425,49455,49484,49514,49543,49573,49602,49632,49661,49690,49720,49749,49779,49809,49838,49868,49898,49927,49957,49986,50016,50045,50075,50104,50133,50163,50192,50222,50252,50281,50311,50340,50370,50400,50429,50459,50488,50518,50547,50576,50606,50635,50665,50694,50724,50754,50784,50813,50843,50872,50902,50931,50960,50990,51019,51049,51078,51108,51138,51167,51197,51227,51256,51286,51315,51345,51374,51403,51433,51462,51492,51522,51552,51582,51611,51641,51670,51699,51729,51758,51787,51816,51846,51876,51906,51936,51965,51995,52025,52054,52083,52113,52142,52171,52200,52230,52260,52290,52319,52349,52379,52408,52438,52467,52497,52526,52555,52585,52614,52644,52673,52703,52733,52762,52792,52822,52851,52881,52910,52939,52969,52998,53028,53057,53087,53116,53146,53176,53205,53235,53264,53294,53324,53353,53383,53412,53441,53471,53500,53530,53559,53589,53619,53648,53678,53708,53737,53767,53796,53825,53855,53884,53913,53943,53973,54003,54032,54062,54092,54121,54151,54180,54209,54239,54268,54297,54327,54357,54387,54416,54446,54476,54505,54535,54564,54593,54623,54652,54681,54711,54741,54770,54800,54830,54859,54889,54919,54948,54977,55007,55036,55066,55095,55125,55154,55184,55213,55243,55273,55302,55332,55361,55391,55420,55450,55479,55508,55538,55567,55597,55627,55657,55686,55716,55745,55775,55804,55834,55863,55892,55922,55951,55981,56011,56040,56070,56100,56129,56159,56188,56218,56247,56276,56306,56335,56365,56394,56424,56454,56483,56513,56543,56572,56601,56631,56660,56690,56719,56749,56778,56808,56837,56867,56897,56926,56956,56985,57015,57044,57074,57103,57133,57162,57192,57221,57251,57280,57310,57340,57369,57399,57429,57458,57487,57517,57546,57576,57605,57634,57664,57694,57723,57753,57783,57813,57842,57871,57901,57930,57959,57989,58018,58048,58077,58107,58137,58167,58196,58226,58255,58285,58314,58343,58373,58402,58432,58461,58491,58521,58551,58580,58610,58639,58669,58698,58727,58757,58786,58816,58845,58875,58905,58934,58964,58994,59023,59053,59082,59111,59141,59170,59200,59229,59259,59288,59318,59348,59377,59407,59436,59466,59495,59525,59554,59584,59613,59643,59672,59702,59731,59761,59791,59820,59850,59879,59909,59939,59968,59997,60027,60056,60086,60115,60145,60174,60204,60234,60264,60293,60323,60352,60381,60411,60440,60469,60499,60528,60558,60588,60618,60648,60677,60707,60736,60765,60795,60824,60853,60883,60912,60942,60972,61002,61031,61061,61090,61120,61149,61179,61208,61237,61267,61296,61326,61356,61385,61415,61445,61474,61504,61533,61563,61592,61621,61651,61680,61710,61739,61769,61799,61828,61858,61888,61917,61947,61976,62006,62035,62064,62094,62123,62153,62182,62212,62242,62271,62301,62331,62360,62390,62419,62448,62478,62507,62537,62566,62596,62625,62655,62685,62715,62744,62774,62803,62832,62862,62891,62921,62950,62980,63009,63039,63069,63099,63128,63157,63187,63216,63246,63275,63305,63334,63363,63393,63423,63453,63482,63512,63541,63571,63600,63630,63659,63689,63718,63747,63777,63807,63836,63866,63895,63925,63955,63984,64014,64043,64073,64102,64131,64161,64190,64220,64249,64279,64309,64339,64368,64398,64427,64457,64486,64515,64545,64574,64603,64633,64663,64692,64722,64752,64782,64811,64841,64870,64899,64929,64958,64987,65017,65047,65076,65106,65136,65166,65195,65225,65254,65283,65313,65342,65371,65401,65431,65460,65490,65520,65549,65579,65608,65638,65667,65697,65726,65755,65785,65815,65844,65874,65903,65933,65963,65992,66022,66051,66081,66110,66140,66169,66199,66228,66258,66287,66317,66346,66376,66405,66435,66465,66494,66524,66553,66583,66612,66641,66671,66700,66730,66760,66789,66819,66849,66878,66908,66937,66967,66996,67025,67055,67084,67114,67143,67173,67203,67233,67262,67292,67321,67351,67380,67409,67439,67468,67497,67527,67557,67587,67617,67646,67676,67705,67735,67764,67793,67823,67852,67882,67911,67941,67971,68e3,68030,68060,68089,68119,68148,68177,68207,68236,68266,68295,68325,68354,68384,68414,68443,68473,68502,68532,68561,68591,68620,68650,68679,68708,68738,68768,68797,68827,68857,68886,68916,68946,68975,69004,69034,69063,69092,69122,69152,69181,69211,69240,69270,69300,69330,69359,69388,69418,69447,69476,69506,69535,69565,69595,69624,69654,69684,69713,69743,69772,69802,69831,69861,69890,69919,69949,69978,70008,70038,70067,70097,70126,70156,70186,70215,70245,70274,70303,70333,70362,70392,70421,70451,70481,70510,70540,70570,70599,70629,70658,70687,70717,70746,70776,70805,70835,70864,70894,70924,70954,70983,71013,71042,71071,71101,71130,71159,71189,71218,71248,71278,71308,71337,71367,71397,71426,71455,71485,71514,71543,71573,71602,71632,71662,71691,71721,71751,71781,71810,71839,71869,71898,71927,71957,71986,72016,72046,72075,72105,72135,72164,72194,72223,72253,72282,72311,72341,72370,72400,72429,72459,72489,72518,72548,72577,72607,72637,72666,72695,72725,72754,72784,72813,72843,72872,72902,72931,72961,72991,73020,73050,73080,73109,73139,73168,73197,73227,73256,73286,73315,73345,73375,73404,73434,73464,73493,73523,73552,73581,73611,73640,73669,73699,73729,73758,73788,73818,73848,73877,73907,73936,73965,73995,74024,74053,74083,74113,74142,74172,74202,74231,74261,74291,74320,74349,74379,74408,74437,74467,74497,74526,74556,74586,74615,74645,74675,74704,74733,74763,74792,74822,74851,74881,74910,74940,74969,74999,75029,75058,75088,75117,75147,75176,75206,75235,75264,75294,75323,75353,75383,75412,75442,75472,75501,75531,75560,75590,75619,75648,75678,75707,75737,75766,75796,75826,75856,75885,75915,75944,75974,76003,76032,76062,76091,76121,76150,76180,76210,76239,76269,76299,76328,76358,76387,76416,76446,76475,76505,76534,76564,76593,76623,76653,76682,76712,76741,76771,76801,76830,76859,76889,76918,76948,76977,77007,77036,77066,77096,77125,77155,77185,77214,77243,77273,77302,77332,77361,77390,77420,77450,77479,77509,77539,77569,77598,77627,77657,77686,77715,77745,77774,77804,77833,77863,77893,77923,77952,77982,78011,78041,78070,78099,78129,78158,78188,78217,78247,78277,78307,78336,78366,78395,78425,78454,78483,78513,78542,78572,78601,78631,78661,78690,78720,78750,78779,78808,78838,78867,78897,78926,78956,78985,79015,79044,79074,79104,79133,79163,79192,79222,79251,79281,79310,79340,79369,79399,79428,79458,79487,79517,79546,79576,79606,79635,79665,79695,79724,79753,79783,79812,79841,79871,79900,79930,79960,79990];Us(qs.regionalOptions[""],{invalidArguments:"Invalid arguments",invalidFormat:"Cannot format a date from another calendar",missingNumberAt:"Missing number at position {0}",unknownNameAt:"Unknown name at position {0}",unexpectedLiteralAt:"Unexpected literal at position {0}",unexpectedText:"Additional text found at end"}),qs.local=qs.regionalOptions[""],Us(qs.cdate.prototype,{formatDate:function(t,e){return"string"!=typeof t&&(e=t,t=""),this._calendar.formatDate(t||"",this,e)}}),Us(qs.baseCalendar.prototype,{UNIX_EPOCH:qs.instance().newDate(1970,1,1).toJD(),SECS_PER_DAY:86400,TICKS_EPOCH:qs.instance().jdEpoch,TICKS_PER_DAY:864e9,ATOM:"yyyy-mm-dd",COOKIE:"D, dd M yyyy",FULL:"DD, MM d, yyyy",ISO_8601:"yyyy-mm-dd",JULIAN:"J",RFC_822:"D, d M yy",RFC_850:"DD, dd-M-yy",RFC_1036:"D, d M yy",RFC_1123:"D, d M yyyy",RFC_2822:"D, d M yyyy",RSS:"D, d M yy",TICKS:"!",TIMESTAMP:"@",W3C:"yyyy-mm-dd",formatDate:function(t,e,r){if("string"!=typeof t&&(r=e,e=t,t=""),!e)return"";if(e.calendar()!==this)throw qs.local.invalidFormat||qs.regionalOptions[""].invalidFormat;t=t||this.local.dateFormat;for(var n,i,a,o,s=(r=r||{}).dayNamesShort||this.local.dayNamesShort,l=r.dayNames||this.local.dayNames,u=r.monthNumbers||this.local.monthNumbers,c=r.monthNamesShort||this.local.monthNamesShort,h=r.monthNames||this.local.monthNames,f=(r.calculateWeek||this.local.calculateWeek,function(e,r){for(var n=1;_+n1}),p=function(t,e,r,n){var i=""+e;if(f(t,n))for(;i.length1},y=function(t,r){var n=m(t,r),i=[2,3,n?4:2,n?4:2,10,11,20]["oyYJ@!".indexOf(t)+1],a=new RegExp("^-?\\d{1,"+i+"}"),o=e.substring(A).match(a);if(!o)throw(qs.local.missingNumberAt||qs.regionalOptions[""].missingNumberAt).replace(/\{0\}/,A);return A+=o[0].length,parseInt(o[0],10)},x=this,b=function(){if("function"==typeof s){m("m");var t=s.call(x,e.substring(A));return A+=t.length,t}return y("m")},_=function(t,r,n,i){for(var a=m(t,i)?n:r,o=0;o-1){f=1,p=d;for(var S=this.daysInMonth(h,f);p>S;S=this.daysInMonth(h,f))f++,p-=S}return c>-1?this.fromJD(c):this.newDate(h,f,p)},determineDate:function(t,e,r,n,i){r&&"object"!=typeof r&&(i=n,n=r,r=null),"string"!=typeof n&&(i=n,n="");var a=this;return e=e?e.newDate():null,t=null==t?e:"string"==typeof t?function(t){try{return a.parseDate(n,t,i)}catch(t){}for(var e=((t=t.toLowerCase()).match(/^c/)&&r?r.newDate():null)||a.today(),o=/([+-]?[0-9]+)\s*(d|w|m|y)?/g,s=o.exec(t);s;)e.add(parseInt(s[1],10),s[2]||"d"),s=o.exec(t);return e}(t):"number"==typeof t?isNaN(t)||t===1/0||t===-1/0?e:a.today().add(t,"d"):a.newDate(t)}});var Sl=qs,El=t.EPOCHJD,Cl=t.ONEDAY,Ll={valType:"enumerated",values:Object.keys(Sl.calendars),editType:"calc",dflt:"gregorian"},zl=function(t,e,r,n){var i={};return i[r]=Ll,ne.coerce(t,e,i,r,n)},Pl="##",Il={d:{0:"dd","-":"d"},e:{0:"d","-":"d"},a:{0:"D","-":"D"},A:{0:"DD","-":"DD"},j:{0:"oo","-":"o"},W:{0:"ww","-":"w"},m:{0:"mm","-":"m"},b:{0:"M","-":"M"},B:{0:"MM","-":"MM"},y:{0:"yy","-":"yy"},Y:{0:"yyyy","-":"yyyy"},U:Pl,w:Pl,c:{0:"D M d %X yyyy","-":"D M d %X yyyy"},x:{0:"mm/dd/yyyy","-":"mm/dd/yyyy"}};var Dl={};function Ol(t){var e=Dl[t];return e||(e=Dl[t]=Sl.instance(t))}function Rl(t){return ne.extendFlat({},Ll,{description:t})}function Fl(t){return"Sets the calendar system to use with `"+t+"` date data."}var Bl={xcalendar:Rl(Fl("x"))},Nl=ne.extendFlat({},Bl,{ycalendar:Rl(Fl("y"))}),jl=ne.extendFlat({},Nl,{zcalendar:Rl(Fl("z"))}),Vl=Rl(["Sets the calendar system to use for `range` and `tick0`","if this is a date axis. This does not set the calendar for","interpreting data on this axis, that's specified in the trace","or via the global `layout.calendar`"].join(" ")),Ul={moduleType:"component",name:"calendars",schema:{traces:{scatter:Nl,bar:Nl,box:Nl,heatmap:Nl,contour:Nl,histogram:Nl,histogram2d:Nl,histogram2dcontour:Nl,scatter3d:jl,surface:jl,mesh3d:jl,scattergl:Nl,ohlc:Bl,candlestick:Bl},layout:{calendar:Rl(["Sets the default calendar system to use for interpreting and","displaying dates throughout the plot."].join(" "))},subplots:{xaxis:{calendar:Vl},yaxis:{calendar:Vl},scene:{xaxis:{calendar:Vl},yaxis:{calendar:Vl},zaxis:{calendar:Vl}},polar:{radialaxis:{calendar:Vl}}},transforms:{filter:{valuecalendar:Rl(["Sets the calendar system to use for `value`, if it is a date."].join(" ")),targetcalendar:Rl(["Sets the calendar system to use for `target`, if it is an","array of dates. If `target` is a string (eg *x*) we use the","corresponding trace attribute (eg `xcalendar`) if it exists,","even if `targetcalendar` is provided."].join(" "))}}},layoutAttributes:Ll,handleDefaults:zl,handleTraceDefaults:function(t,e,r,n){for(var i=0;in?e=!0:r=10)return null;var n=1/0;var i=-1/0;var a=e.length;for(var o=0;o0&&(p=t.dxydi([],i-1,o,0,s),m.push(l[0]+p[0]/3),y.push(l[1]+p[1]/3),d=t.dxydi([],i-1,o,1,s),m.push(f[0]-d[0]/3),y.push(f[1]-d[1]/3)),m.push(f[0]),y.push(f[1]),l=f;else for(i=t.a2i(e),u=Math.floor(Math.max(0,Math.min(C-2,i))),c=i-u,b.length=C,b.crossLength=L,b.xy=function(e){return t.evalxy([],i,e)},b.dxy=function(e,r){return t.dxydj([],u,e,c,r)},a=0;a0&&(g=t.dxydj([],u,a-1,c,0),m.push(l[0]+g[0]/3),y.push(l[1]+g[1]/3),v=t.dxydj([],u,a-1,c,1),m.push(f[0]-v[0]/3),y.push(f[1]-v[1]/3)),m.push(f[0]),y.push(f[1]),l=f;return b.axisLetter=r,b.axis=x,b.crossAxis=A,b.value=e,b.constvar=n,b.index=h,b.x=m,b.y=y,b.smoothing=A.smoothing,b}function I(e){var i,a,o,s,l,u=[],c=[],h={};if(h.length=y.length,h.crossLength=M.length,"b"===r)for(o=Math.max(0,Math.min(L-2,e)),l=Math.min(1,Math.max(0,e-o)),h.xy=function(r){return t.evalxy([],r,e)},h.dxy=function(e,r){return t.dxydi([],e,o,r,l)},i=0;iy.length-1||b.push(hu(I(a),{color:x.gridcolor,width:x.gridwidth}));for(h=u;hy.length-1||d<0||d>y.length-1))for(g=y[o],v=y[d],i=0;iy[y.length-1]||_.push(hu(P(p),{color:x.minorgridcolor,width:x.minorgridwidth}));x.startline&&w.push(hu(I(0),{color:x.startlinecolor,width:x.startlinewidth})),x.endline&&w.push(hu(I(y.length-1),{color:x.endlinecolor,width:x.endlinewidth}))}else{for(s=5e-15,u=(l=[Math.floor((y[y.length-1]-x.tick0)/x.dtick*(1+s)),Math.ceil((y[0]-x.tick0)/x.dtick/(1+s))].sort(function(t,e){return t-e}))[0],c=l[1],h=u;h<=c;h++)f=x.tick0+x.dtick*h,b.push(hu(P(f),{color:x.gridcolor,width:x.gridwidth}));for(h=u-1;hy[y.length-1]||_.push(hu(P(p),{color:x.minorgridcolor,width:x.minorgridwidth}));x.startline&&w.push(hu(P(y[0]),{color:x.startlinecolor,width:x.startlinewidth})),x.endline&&w.push(hu(P(y[y.length-1]),{color:x.endlinecolor,width:x.endlinewidth}))}},pu=m.extendFlat,du=function(t,e){var r,n,i,a=e._labels=[],o=e._gridlines;for(r=0;re.length&&(t=t.slice(0,e.length)):t=[],n=0;ne.length&&(t[n]=t[n].slice(0,e.length)):t[n]=[],i=0;i0&&void 0!==(n=t[r][e-1])&&(a++,i+=n),e0&&void 0!==(n=t[r-1][e])&&(a++,i+=n),r0&&i0&&n1e-5);return ne.log("Smoother converged to",M,"after",A,"iterations"),t},xu=function(t,e){var n,i,a,o,s,l;function u(t){if(r(t))return+t}if(e){for(n=0,s=0;ss&&tu&&el||ec},a.c2p=function(t){return t},o.c2p=function(t){return t},t.setScale=function(){var e,r,s,l=t._x,u=t._y,c=function(t,e,r,n,i,a){var o,s,l,u,c,h,f,p,d,g,v=r[0].length,m=r.length,y=i?3*v-2:v,x=a?3*m-2:m;for(t=Au(t,x),e=Au(e,x),l=0;le[n-1]|or[i-1]))return[!1,!1];var l=t.a2i(a),u=t.b2j(o),c=t.evalxy([],l,u);if(s){var h,f,p,d,g=0,v=0,m=[];ae[n-1]?(h=n-2,f=1,g=(a-e[n-1])/(e[n-1]-e[n-2])):f=l-(h=Math.max(0,Math.min(n-2,Math.floor(l)))),or[i-1]?(p=i-2,d=1,v=(o-r[i-1])/(r[i-1]-r[i-2])):d=u-(p=Math.max(0,Math.min(i-2,Math.floor(u)))),g&&(t.dxydi(m,h,p,f,d),c[0]+=m[0]*g,c[1]+=m[1]*g),v&&(t.dxydj(m,h,p,f,d),c[0]+=m[0]*v,c[1]+=m[1]*v)}return c},t.c2p=function(t,e,r){return[e.c2p(t[0]),r.c2p(t[1])]},t.p2x=function(t,e,r){return[e.p2c(t[0]),r.p2c(t[1])]},t.dadi=function(t){var r=Math.max(0,Math.min(e.length-2,t));return e[r+1]-e[r]},t.dbdj=function(t){var e=Math.max(0,Math.min(r.length-2,t));return r[e+1]-r[e]},t.dxyda=function(e,r,n,i){var a=t.dxydi(null,e,r,n,i),o=t.dadi(e,n);return[a[0]/o,a[1]/o]},t.dxydb=function(e,r,n,i){var a=t.dxydj(null,e,r,n,i),o=t.dbdj(r,i);return[a[0]/o,a[1]/o]},t.dxyda_rough=function(e,r,n){var i=h*(n||.1),a=t.ab2xy(e+i,r,!0),o=t.ab2xy(e-i,r,!0);return[.5*(a[0]-o[0])/i,.5*(a[1]-o[1])/i]},t.dxydb_rough=function(e,r,n){var i=f*(n||.1),a=t.ab2xy(e,r+i,!0),o=t.ab2xy(e,r-i,!0);return[.5*(a[0]-o[0])/i,.5*(a[1]-o[1])/i]},t.dpdx=function(t){return t._m},t.dpdy=function(t){return t._m}},Cu=ne.isArrayOrTypedArray,Lu=function(t){return Cu(t[0])},zu=t.BADNUM,Pu=function(t,e,r,n,i,a){n=n||"x",i=i||"y",a=a||["z"];var o,s,l,u=t[n].slice(),c=t[i].slice(),h=t.text,f=Math.min(u.length,c.length),p=void 0!==h&&!Array.isArray(h[0]),d=t[n+"calendar"],g=t[i+"calendar"];for(o=0;oe.length&&(t=t.slice(0,e.length)):t=[],n=0;n90&&(p-=180,l=-l),{angle:p,flip:l,p:t.c2p(n,e,r),offsetMultplier:u}};function Fu(t,e,r){var n=t.selectAll(e+"."+r).data([0]);return n.enter().append(e).classed(r,!0),n}function Bu(t,e,r){var n=r[0],i=r[0].trace,a=e.xaxis,o=e.yaxis,s=i.aaxis,l=i.baxis,u=t._fullLayout,c=e.plot.selectAll(".carpetlayer"),h=u._clips,f=Fu(c,"g","carpet"+i.uid).classed("trace",!0),p=Fu(f,"g","minorlayer"),d=Fu(f,"g","majorlayer"),g=Fu(f,"g","boundarylayer"),v=Fu(f,"g","labellayer");f.style("opacity",i.opacity),Nu(a,o,d,s,"a",s._gridlines),Nu(a,o,d,l,"b",l._gridlines),Nu(a,o,p,s,"a",s._minorgridlines),Nu(a,o,p,l,"b",l._minorgridlines),Nu(a,o,g,s,"a-boundary",s._boundarylines),Nu(a,o,g,l,"b-boundary",l._boundarylines),function(t,e,r,n,i,a,o,s){var l,u,c,h;l=.5*(r.a[0]+r.a[r.a.length-1]),u=r.b[0],c=r.ab2xy(l,u,!0),h=r.dxyda_rough(l,u),void 0===o.angle&&ne.extendFlat(o,Ru(r,i,a,c,r.dxydb_rough(l,u)));qu(t,e,r,n,c,h,r.aaxis,i,a,o,"a-title"),l=r.a[0],u=.5*(r.b[0]+r.b[r.b.length-1]),c=r.ab2xy(l,u,!0),h=r.dxydb_rough(l,u),void 0===s.angle&&ne.extendFlat(s,Ru(r,i,a,c,r.dxyda_rough(l,u)));qu(t,e,r,n,c,h,r.baxis,i,a,s,"b-title")}(t,v,i,n,a,o,ju(t,a,o,i,n,v,s._labels,"a-label"),ju(t,a,o,i,n,v,l._labels,"b-label")),function(t,e,r,n,i){var a,o,s,l,u=r.select("#"+t._clipPathId);u.size()||(u=r.append("clipPath").classed("carpetclip",!0));var c=Fu(u,"path","carpetboundary"),h=e.clipsegments,f=[];for(l=0;l0?"start":"end","data-notex":1}).call(Sr.font,a.font).text(a.text).call(er.convertToTspans,t),p=Sr.bBox(this);f.attr("transform","translate("+s.p[0]+","+s.p[1]+") rotate("+s.angle+")translate("+a.axis.labelpadding*u+","+.3*p.height+")"),c=Math.max(c,p.width+a.axis.labelpadding)}),u.exit().remove(),h.maxExtent=c,h}var Vu=Qe.LINE_SPACING,Uu=(1-Qe.MID_SHIFT)/Vu+1;function qu(t,r,n,i,a,o,s,l,u,c,h){var f=[];s.title&&f.push(s.title);var p=r.selectAll("text."+h).data(f),d=c.maxExtent;p.enter().append("text").classed(h,!0),p.each(function(){var r=Ru(n,l,u,a,o);-1===["start","both"].indexOf(s.showticklabels)&&(d=0);var i=s.titlefont.size;d+=i+s.titleoffset;var h=(c.angle+(c.flip<0?180:0)-r.angle+450)%360,f=h>90&&h<270,p=e.select(this);p.text(s.title||"").call(er.convertToTspans,t),f&&(d=(-er.lineCount(p)+Uu)*Vu*i-d),p.attr("transform","translate("+r.p[0]+","+r.p[1]+") rotate("+r.angle+") translate(0,"+d+")").classed("user-select-none",!0).attr("text-anchor","middle").call(Sr.font,s.titlefont)}),p.exit().remove()}var Hu={};Hu.attributes=lu,Hu.supplyDefaults=function(t,e,r,n){function i(r,n){return ne.coerce(t,e,lu,r,n)}e._clipPathId="clip"+e.uid+"carpet";var a=i("color",C.defaultLine);if(ne.coerceFont(i,"font"),i("carpet"),wu(t,e,n,i,a),e.a&&e.b){e.a.length<3&&(e.aaxis.smoothing=0),e.b.length<3&&(e.baxis.smoothing=0);var o=function(t,e,r){var n=[],i=r("x");i&&!Lu(i)&&n.push("x"),e._cheater=!i;var a=r("y");if(a&&!Lu(a)&&n.push("y"),i||a)return n.length&&Pu(e,e.aaxis,e.baxis,"a","b",n),!0}(0,e,i);Eu(e),e._cheater&&i("cheaterslope"),o||(e.visible=!1)}else e.visible=!1},Hu.plot=function(t,e,r){for(var n=0;n=0;i--)a[c-i]=t[h][i],o[c-i]=e[h][i];for(s.push({x:a,y:o,bicubic:l}),i=h,a=[],o=[];i>=0;i--)a[h-i]=t[i][0],o[h-i]=e[i][0];return s.push({x:a,y:o,bicubic:u}),s}(e.xctrl,e.yctrl,a,o),u.x=r,u.y=c,u.a=s,u.b=l,[u]},Hu.animatable=!0,Hu.moduleType="trace",Hu.name="carpet",Hu.basePlotModule=ua,Hu.categories=["cartesian","carpet","carpetAxis","notLegendIsolatable"],Hu.meta={};var Gu=Hu,Wu={exports:{}};!function(t,e){"object"==typeof Wu.exports?e(Wu.exports):e(t.topojson=t.topojson||{})}(this,function(t){"use strict";var e=function(t){return t},r=function(t){if(null==(r=t.transform))return e;var r,n,i,a=r.scale[0],o=r.scale[1],s=r.translate[0],l=r.translate[1];return function(t,e){return e||(n=i=0),t[0]=(n+=t[0])*a+s,t[1]=(i+=t[1])*o+l,t}},n=function(t){var e=t.bbox;function n(t){l[0]=t[0],l[1]=t[1],s(l),l[0]h&&(h=l[0]),l[1]f&&(f=l[1])}function i(t){switch(t.type){case"GeometryCollection":t.geometries.forEach(i);break;case"Point":n(t.coordinates);break;case"MultiPoint":t.coordinates.forEach(n)}}if(!e){var a,o,s=r(t),l=new Array(2),u=1/0,c=u,h=-u,f=-u;for(o in t.arcs.forEach(function(t){for(var e=-1,r=t.length;++eh&&(h=l[0]),l[1]f&&(f=l[1])}),t.objects)i(t.objects[o]);e=t.bbox=[u,c,h,f]}return e},i=function(t,e){for(var r,n=t.length,i=n-e;i<--n;)r=t[i],t[i++]=t[n],t[n]=r};function a(t,e){var r=e.id,n=e.bbox,i=null==e.properties?{}:e.properties,a=o(t,e);return null==r&&null==n?{type:"Feature",properties:i,geometry:a}:null==n?{type:"Feature",id:r,properties:i,geometry:a}:{type:"Feature",id:r,bbox:n,properties:i,geometry:a}}function o(t,e){var n=r(t),a=t.arcs;function o(t,e){e.length&&e.pop();for(var r=a[t<0?~t:t],o=0,s=r.length;o1)n=function(t,e,r){var n,i=[],a=[];function o(t){var e=t<0?~t:t;(a[e]||(a[e]=[])).push({i:t,g:n})}function s(t){t.forEach(o)}function l(t){t.forEach(s)}return function t(e){switch(n=e,e.type){case"GeometryCollection":e.geometries.forEach(t);break;case"LineString":s(e.arcs);break;case"MultiLineString":case"Polygon":l(e.arcs);break;case"MultiPolygon":e.arcs.forEach(l)}}(e),a.forEach(null==r?function(t){i.push(t[0].i)}:function(t){r(t[0].g,t[t.length-1].g)&&i.push(t[0].i)}),i}(0,e,r);else for(i=0,n=new Array(a=t.arcs.length);i1)for(var a,o,u=1,c=l(i[0]);uc&&(o=i[0],i[0]=i[u],i[u]=o,c=a);return i})}}var c=function(t,e){for(var r=0,n=t.length;r>>1;t[i]=2))throw new Error("n must be \u22652");if(t.transform)throw new Error("already quantized");var r,i=n(t),a=i[0],o=(i[2]-a)/(e-1)||1,s=i[1],l=(i[3]-s)/(e-1)||1;function u(t){t[0]=Math.round((t[0]-a)/o),t[1]=Math.round((t[1]-s)/l)}function c(t){switch(t.type){case"GeometryCollection":t.geometries.forEach(c);break;case"Point":u(t.coordinates);break;case"MultiPoint":t.coordinates.forEach(u)}}for(r in t.arcs.forEach(function(t){for(var e,r,n,i=1,u=1,c=t.length,h=t[0],f=h[0]=Math.round((h[0]-a)/o),p=h[1]=Math.round((h[1]-s)/l);i0})}function u(t,n){var i=t.seg,a=n.seg,o=i.start,l=i.end,u=a.start,c=a.end;r&&r.checkIntersection(i,a);var h=e.linesIntersect(o,l,u,c);if(!1===h){if(!e.pointsCollinear(o,l,u))return!1;if(e.pointsSame(o,c)||e.pointsSame(l,u))return!1;var f=e.pointsSame(o,u),p=e.pointsSame(l,c);if(f&&p)return n;var d=!f&&e.pointBetween(o,u,c),g=!p&&e.pointBetween(l,u,c);if(f)return g?s(n,l):s(t,c),n;d&&(p||(g?s(n,l):s(t,c)),s(n,o))}else 0===h.alongA&&(-1===h.alongB?s(t,u):0===h.alongB?s(t,h.pt):1===h.alongB&&s(t,c)),0===h.alongB&&(-1===h.alongA?s(n,o):0===h.alongA?s(n,h.pt):1===h.alongA&&s(n,l));return!1}for(var c=[];!i.isEmpty();){var h=i.getHead();if(r&&r.vert(h.pt[0]),h.isStart){r&&r.segmentNew(h.seg,h.primary);var f=l(h),p=f.before?f.before.ev:null,d=f.after?f.after.ev:null;function g(){if(p){var t=u(h,p);if(t)return t}return!!d&&u(h,d)}r&&r.tempStatus(h.seg,!!p&&p.seg,!!d&&d.seg);var v,m,y=g();if(y)t?(m=null===h.seg.myFill.below||h.seg.myFill.above!==h.seg.myFill.below)&&(y.seg.myFill.above=!y.seg.myFill.above):y.seg.otherFill=h.seg.myFill,r&&r.segmentUpdate(y.seg),h.other.remove(),h.remove();if(i.getHead()!==h){r&&r.rewind(h.seg);continue}t?(m=null===h.seg.myFill.below||h.seg.myFill.above!==h.seg.myFill.below,h.seg.myFill.below=d?d.seg.myFill.above:n,h.seg.myFill.above=m?!h.seg.myFill.below:h.seg.myFill.below):null===h.seg.otherFill&&(v=d?h.primary===d.primary?d.seg.otherFill.above:d.seg.myFill.above:h.primary?a:n,h.seg.otherFill={above:v,below:v}),r&&r.status(h.seg,!!p&&p.seg,!!d&&d.seg),h.other.status=f.insert(tc.node({ev:h}))}else{var x=h.status;if(null===x)throw new Error("PolyBool: Zero-length segment detected; your epsilon is probably too small or too large");if(o.exists(x.prev)&&o.exists(x.next)&&u(x.prev.ev,x.next.ev),r&&r.statusRemove(x.ev.seg),x.remove(),!h.primary){var b=h.seg.myFill;h.seg.myFill=h.seg.otherFill,h.seg.otherFill=b}c.push(h.seg)}i.getHead().remove()}return r&&r.done(),c}return t?{addRegion:function(t){for(var n,i,a,s=t[t.length-1],l=0;l=-t},pointBetween:function(e,r,n){var i=e[1]-r[1],a=n[0]-r[0],o=e[0]-r[0],s=n[1]-r[1],l=o*a+i*s;return!(l-t)},pointsSameX:function(e,r){return Math.abs(e[0]-r[0])t!=o-i>t&&(a-u)*(i-c)/(o-c)+u-n>t&&(s=!s),a=u,o=c}return s}};return e}();function lc(t,e,r){var n=ic.segments(t),i=ic.segments(e),a=r(ic.combine(n,i));return ic.polygon(a)}ic={buildLog:function(t){return!0===t?oc=Qu():!1===t&&(oc=!1),!1!==oc&&oc.list},epsilon:function(t){return sc.epsilon(t)},segments:function(t){var e=ec(!0,sc,oc);return t.regions.forEach(e.addRegion),{segments:e.calculate(t.inverted),inverted:t.inverted}},combine:function(t,e){return{combined:ec(!1,sc,oc).calculate(t.segments,t.inverted,e.segments,e.inverted),inverted1:t.inverted,inverted2:e.inverted}},selectUnion:function(t){return{segments:ac.union(t.combined,oc),inverted:t.inverted1||t.inverted2}},selectIntersect:function(t){return{segments:ac.intersect(t.combined,oc),inverted:t.inverted1&&t.inverted2}},selectDifference:function(t){return{segments:ac.difference(t.combined,oc),inverted:t.inverted1&&!t.inverted2}},selectDifferenceRev:function(t){return{segments:ac.differenceRev(t.combined,oc),inverted:!t.inverted1&&t.inverted2}},selectXor:function(t){return{segments:ac.xor(t.combined,oc),inverted:t.inverted1!==t.inverted2}},polygon:function(t){return{regions:rc(t.segments,sc,oc),inverted:t.inverted}},polygonFromGeoJSON:function(t){return $u.toPolygon(ic,t)},polygonToGeoJSON:function(t){return $u.fromPolygon(ic,sc,t)},union:function(t,e){return lc(t,e,ic.selectUnion)},intersect:function(t,e){return lc(t,e,ic.selectIntersect)},difference:function(t,e){return lc(t,e,ic.selectDifference)},differenceRev:function(t,e){return lc(t,e,ic.selectDifferenceRev)},xor:function(t,e){return lc(t,e,ic.selectXor)}},"object"==typeof window&&(window.PolyBool=ic);var uc=ic,cc={},hc=Vt.dot,fc=t.BADNUM,pc=cc={};pc.tester=function(t){if(Array.isArray(t[0][0]))return pc.multitester(t);var e,r=t.slice(),n=r[0][0],i=n,a=r[0][1],o=a;for(r.push(r[0]),e=1;ei||l===fc||lo||e&&s(t))}:function(t,e){var s=t[0],l=t[1];if(s===fc||si||l===fc||lo)return!1;var u,c,h,f,p,d=r.length,g=r[0][0],v=r[0][1],m=0;for(u=1;uMath.max(c,g)||l>Math.max(h,v)))if(lu||Math.abs(hc(a,h))>n)return!0;return!1};pc.filter=function(t,e){var r=[t[0]],n=0,i=0;function a(a){t.push(a);var o=r.length,s=n;r.splice(i+1);for(var l=s+1;l1&&a(t.pop());return{addPt:a,raw:t,filtered:r}};var gc=Ya.makeEventData,vc=cc.filter,mc=cc.tester,yc=cc.multitester,xc=Te.MINSELECT;function bc(t){return t._id}var _c=function(t,e,r,n,i){var a,o,s,l,u=n.gd,c=u._fullLayout,h=c._zoomlayer,f=n.element.getBoundingClientRect(),p=n.plotinfo,d=p.xaxis._offset,g=p.yaxis._offset,v=e-f.left,m=r-f.top,y=v,x=m,b="M"+v+","+m,_=n.xaxes[0]._length,w=n.yaxes[0]._length,M=n.xaxes.map(bc),A=n.yaxes.map(bc),k=n.xaxes.concat(n.yaxes),T=t.altKey;(t.shiftKey||t.altKey)&&p.selection&&p.selection.polygons&&!n.polygons?(n.polygons=p.selection.polygons,n.mergedPolygons=p.selection.mergedPolygons):(!t.shiftKey&&!t.altKey||(t.shiftKey||t.altKey)&&!p.selection)&&(p.selection={},p.selection.polygons=n.polygons=[],p.selection.mergedPolygons=n.mergedPolygons=[]),"lasso"===i&&(a=vc([[v,m]],Te.BENDPX));var S=h.selectAll("path.select-outline-"+p.id).data([1,2]);S.enter().append("path").attr("class",function(t){return"select-outline select-outline-"+t+" select-outline-"+p.id}).attr("transform","translate("+d+", "+g+")").attr("d",b+"Z");var E,C,L,z,P,I,D=h.append("path").attr("class","zoombox-corners").style({fill:Oe.background,stroke:Oe.defaultLine,"stroke-width":1}).attr("transform","translate("+d+", "+g+")").attr("d","M0,0Z"),O=[],R=c._uid+Te.SELECTID,F=[];for(E=0;En^p>n&&r<(f-u)*(n-c)/(p-c)+u&&(i=!i)}return i}(t[0],r))return t.push(e),!0})||t.push([e])}),a=[],t.length?t.length>1?{type:"MultiPolygon",coordinates:t}:{type:"Polygon",coordinates:t[0]}:null}},u={Point:o,MultiPoint:o,LineString:s,MultiLineString:s,Polygon:l,MultiPolygon:l,Sphere:l};function c(){}var h=1e-6,f=h*h,p=Math.PI,d=p/2,g=(Math.sqrt(p),p/180),v=180/p;function m(t){return t>1?d:t<-1?-d:Math.asin(t)}function y(t){return t>1?0:t<-1?p:Math.acos(t)}var x=t.geo.projection,b=t.geo.projectionMutator;function _(t,e){var r=(2+d)*Math.sin(e);e/=2;for(var n=0,i=1/0;n<10&&Math.abs(i)>h;n++){var a=Math.cos(e);e-=i=(e+Math.sin(e)*(a+2)-r)/(2*a*(1+a))}return[2/Math.sqrt(p*(4+p))*t*(1+Math.cos(e)),2*Math.sqrt(p/(4+p))*Math.sin(e)]}t.geo.interrupt=function(e){var r,n=[[[[-p,0],[0,d],[p,0]]],[[[-p,0],[0,-d],[p,0]]]];function i(t,r){for(var i=r<0?-1:1,a=n[+(r<0)],o=0,s=a.length-1;oa[o][2][0];++o);var l=e(t-a[o][1][0],r);return l[0]+=e(a[o][1][0],i*r>i*a[o][0][1]?a[o][0][1]:r)[0],l}e.invert&&(i.invert=function(t,a){for(var o=r[+(a<0)],s=n[+(a<0)],u=0,c=o.length;u=0;--i){var o=n[1][i],l=180*o[0][0]/p,u=180*o[0][1]/p,c=180*o[1][1]/p,h=180*o[2][0]/p,f=180*o[2][1]/p;r.push(s([[h-e,f-e],[h-e,c+e],[l+e,c+e],[l+e,u-e]],30))}return{type:"Polygon",coordinates:[t.merge(r)]}}(),l)},i},a.lobes=function(t){return arguments.length?(n=t.map(function(t){return t.map(function(t){return[[t[0][0]*p/180,t[0][1]*p/180],[t[1][0]*p/180,t[1][1]*p/180],[t[2][0]*p/180,t[2][1]*p/180]]})}),r=n.map(function(t){return t.map(function(t){var r,n=e(t[0][0],t[0][1])[0],i=e(t[2][0],t[2][1])[0],a=e(t[1][0],t[0][1])[1],o=e(t[1][0],t[1][1])[1];return a>o&&(r=a,a=o,o=r),[[n,a],[i,o]]})}),a):n.map(function(t){return t.map(function(t){return[[180*t[0][0]/p,180*t[0][1]/p],[180*t[1][0]/p,180*t[1][1]/p],[180*t[2][0]/p,180*t[2][1]/p]]})})},a},_.invert=function(t,e){var r=.5*e*Math.sqrt((4+p)/p),n=m(r),i=Math.cos(n);return[t/(2/Math.sqrt(p*(4+p))*(1+i)),m((n+r*(i+2))/(2+d))]},(t.geo.eckert4=function(){return x(_)}).raw=_;var w=t.geo.azimuthalEqualArea.raw;function M(t,e){if(arguments.length<2&&(e=t),1===e)return w;if(e===1/0)return A;function r(r,n){var i=w(r/e,n);return i[0]*=t,i}return r.invert=function(r,n){var i=w.invert(r/t,n);return i[0]*=e,i},r}function A(t,e){return[t*Math.cos(e)/Math.cos(e/=2),2*Math.sin(e)]}function k(t,e){return[3*t/(2*p)*Math.sqrt(p*p/3-e*e),e]}function T(t,e){return[t,1.25*Math.log(Math.tan(p/4+.4*e))]}function S(t){return function(e){var r,n=t*Math.sin(e),i=30;do{e-=r=(e+Math.sin(e)-n)/(1+Math.cos(e))}while(Math.abs(r)>h&&--i>0);return e/2}}A.invert=function(t,e){var r=2*m(e/2);return[t*Math.cos(r/2)/Math.cos(r),r]},(t.geo.hammer=function(){var t=2,e=b(M),r=e(t);return r.coefficient=function(r){return arguments.length?e(t=+r):t},r}).raw=M,k.invert=function(t,e){return[2/3*p*t/Math.sqrt(p*p/3-e*e),e]},(t.geo.kavrayskiy7=function(){return x(k)}).raw=k,T.invert=function(t,e){return[t,2.5*Math.atan(Math.exp(.8*e))-.625*p]},(t.geo.miller=function(){return x(T)}).raw=T,S(p);var E=function(t,e,r){var n=S(r);function i(r,i){return[t*r*Math.cos(i=n(i)),e*Math.sin(i)]}return i.invert=function(n,i){var a=m(i/e);return[n/(t*Math.cos(a)),m((2*a+Math.sin(2*a))/r)]},i}(Math.SQRT2/d,Math.SQRT2,p);function C(t,e){var r=e*e,n=r*r;return[t*(.8707-.131979*r+n*(n*(.003971*r-.001529*n)-.013791)),e*(1.007226+r*(.015085+n*(.028874*r-.044475-.005916*n)))]}(t.geo.mollweide=function(){return x(E)}).raw=E,C.invert=function(t,e){var r,n=e,i=25;do{var a=n*n,o=a*a;n-=r=(n*(1.007226+a*(.015085+o*(.028874*a-.044475-.005916*o)))-e)/(1.007226+a*(.045255+o*(.259866*a-.311325-.005916*11*o)))}while(Math.abs(r)>h&&--i>0);return[t/(.8707+(a=n*n)*(a*(a*a*a*(.003971-.001529*a)-.013791)-.131979)),n]},(t.geo.naturalEarth=function(){return x(C)}).raw=C;var L=[[.9986,-.062],[1,0],[.9986,.062],[.9954,.124],[.99,.186],[.9822,.248],[.973,.31],[.96,.372],[.9427,.434],[.9216,.4958],[.8962,.5571],[.8679,.6176],[.835,.6769],[.7986,.7346],[.7597,.7903],[.7186,.8435],[.6732,.8936],[.6213,.9394],[.5722,.9761],[.5322,1]];function z(t,e){var r,n=Math.min(18,36*Math.abs(e)/p),i=Math.floor(n),a=n-i,o=(r=L[i])[0],s=r[1],l=(r=L[++i])[0],u=r[1],c=(r=L[Math.min(19,++i)])[0],h=r[1];return[t*(l+a*(c-o)/2+a*a*(c-2*l+o)/2),(e>0?d:-d)*(u+a*(h-s)/2+a*a*(h-2*u+s)/2)]}function P(t,e){return[t*Math.cos(e),e]}function I(t,e){var r,n=Math.cos(e),i=(r=y(n*Math.cos(t/=2)))?r/Math.sin(r):1;return[2*n*Math.sin(t)*i,Math.sin(e)*i]}function D(t,e){var r=I(t,e);return[(r[0]+t/d)/2,(r[1]+e)/2]}L.forEach(function(t){t[1]*=1.0144}),z.invert=function(t,e){var r=e/d,n=90*r,i=Math.min(18,Math.abs(n/5)),a=Math.max(0,Math.floor(i));do{var o=L[a][1],s=L[a+1][1],l=L[Math.min(19,a+2)][1],u=l-o,c=l-2*s+o,h=2*(Math.abs(r)-s)/u,p=c/u,m=h*(1-p*h*(1-2*p*h));if(m>=0||1===a){n=(e>=0?5:-5)*(m+i);var y,x=50;do{m=(i=Math.min(18,Math.abs(n)/5))-(a=Math.floor(i)),o=L[a][1],s=L[a+1][1],l=L[Math.min(19,a+2)][1],n-=(y=(e>=0?d:-d)*(s+m*(l-o)/2+m*m*(l-2*s+o)/2)-e)*v}while(Math.abs(y)>f&&--x>0);break}}while(--a>=0);var b=L[a][0],_=L[a+1][0],w=L[Math.min(19,a+2)][0];return[t/(_+m*(w-b)/2+m*m*(w-2*_+b)/2),n*g]},(t.geo.robinson=function(){return x(z)}).raw=z,P.invert=function(t,e){return[t/Math.cos(e),e]},(t.geo.sinusoidal=function(){return x(P)}).raw=P,I.invert=function(t,e){if(!(t*t+4*e*e>p*p+h)){var r=t,n=e,i=25;do{var a,o=Math.sin(r),s=Math.sin(r/2),l=Math.cos(r/2),u=Math.sin(n),c=Math.cos(n),f=Math.sin(2*n),d=u*u,g=c*c,v=s*s,m=1-g*l*l,x=m?y(c*l)*Math.sqrt(a=1/m):a=0,b=2*x*c*s-t,_=x*u-e,w=a*(g*v+x*c*l*d),M=a*(.5*o*f-2*x*u*s),A=.25*a*(f*s-x*u*g*o),k=a*(d*l+x*v*c),T=M*A-k*w;if(!T)break;var S=(_*M-b*k)/T,E=(b*A-_*w)/T;r-=S,n-=E}while((Math.abs(S)>h||Math.abs(E)>h)&&--i>0);return[r,n]}},(t.geo.aitoff=function(){return x(I)}).raw=I,D.invert=function(t,e){var r=t,n=e,i=25;do{var a,o=Math.cos(n),s=Math.sin(n),l=Math.sin(2*n),u=s*s,c=o*o,f=Math.sin(r),p=Math.cos(r/2),g=Math.sin(r/2),v=g*g,m=1-c*p*p,x=m?y(o*p)*Math.sqrt(a=1/m):a=0,b=.5*(2*x*o*g+r/d)-t,_=.5*(x*s+n)-e,w=.5*a*(c*v+x*o*p*u)+.5/d,M=a*(f*l/4-x*s*g),A=.125*a*(l*g-x*s*c*f),k=.5*a*(u*p+x*v*o)+.5,T=M*A-k*w,S=(_*M-b*k)/T,E=(b*A-_*w)/T;r-=S,n-=E}while((Math.abs(S)>h||Math.abs(E)>h)&&--i>0);return[r,n]},(t.geo.winkel3=function(){return x(D)}).raw=D},kc=Math.PI/180,Tc=180/Math.PI,Sc={cursor:"pointer"},Ec={cursor:"auto"};var Cc=function(t,e){var r=t.projection;return(e._isScoped?Pc:e._isClipped?Dc:Ic)(t,r)};function Lc(t,r){return e.behavior.zoom().translate(r.translate()).scale(r.scale())}function zc(t,e,r){var n=t.id,i=t.graphDiv,a=i.layout[n],o=i._fullLayout[n],s={};function l(t,e){var r=ne.nestedProperty(o,t);r.get()!==e&&(r.set(e),ne.nestedProperty(a,t).set(e),s[n+"."+t]=e)}r(l),l("projection.scale",e.scale()/t.fitScale),i.emit("plotly_relayout",s)}function Pc(t,r){var n=Lc(0,r);function i(e){var n=r.invert(t.midPt);e("center.lon",n[0]),e("center.lat",n[1])}return n.on("zoomstart",function(){e.select(this).style(Sc)}).on("zoom",function(){r.scale(e.event.scale).translate(e.event.translate),t.render()}).on("zoomend",function(){e.select(this).style(Ec),zc(t,r,i)}),n}function Ic(t,r){var n,i,a,o,s,l,u,c,h=Lc(0,r),f=2;function p(t){return r.invert(t)}function d(e){var n=r.rotate(),i=r.invert(t.midPt);e("projection.rotation.lon",-n[0]),e("center.lon",i[0]),e("center.lat",i[1])}return h.on("zoomstart",function(){e.select(this).style(Sc),n=e.mouse(this),i=r.rotate(),a=r.translate(),o=i,s=p(n)}).on("zoom",function(){if(l=e.mouse(this),g=r(p(d=n)),Math.abs(g[0]-d[0])>f||Math.abs(g[1]-d[1])>f)return h.scale(r.scale()),void h.translate(r.translate());var d,g;r.scale(e.event.scale),r.translate([a[0],e.event.translate[1]]),s?p(l)&&(c=p(l),u=[o[0]+(c[0]-s[0]),i[1],i[2]],r.rotate(u),o=u):s=p(n=l),t.render()}).on("zoomend",function(){e.select(this).style(Ec),zc(t,r,d)}),h}function Dc(t,r){var n,i={r:r.rotate(),k:r.scale()},a=Lc(0,r),o=function(t){var r=0,n=arguments.length,i=[];for(;++rp?(a=(c>0?90:-90)-f,i=0):(a=Math.asin(c/p)*Tc-f,i=Math.sqrt(p*p-c*c));var d=180-a-2*f,g=(Math.atan2(h,u)-Math.atan2(l,i))*Tc,v=(Math.atan2(h,u)-Math.atan2(l,-i))*Tc,m=Rc(r[0],r[1],a,g),y=Rc(r[0],r[1],d,v);return m<=y?[a,g,r[2]]:[d,v,r[2]]}(y,n,_);isFinite(A[0])&&isFinite(A[1])&&isFinite(A[2])||(A=_),r.rotate(A),_=A}}else n=Oc(r,x=g);o.of(this,arguments)({type:"zoom"})}),y=o.of(this,arguments),s++||y({type:"zoomstart"})}).on("zoomend",function(){var n;e.select(this).style(Ec),l.call(a,"zoom",null),n=o.of(this,arguments),--s||n({type:"zoomend"}),zc(t,r,u)}).on("zoom.redraw",function(){t.render()}),e.rebind(a,o,"on")}function Oc(t,e){var r=t.invert(e);return r&&isFinite(r[0])&&isFinite(r[1])&&function(t){var e=t[0]*kc,r=t[1]*kc,n=Math.cos(r);return[n*Math.cos(e),n*Math.sin(e),Math.sin(r)]}(r)}function Rc(t,e,r,n){var i=Fc(r-t),a=Fc(n-e);return Math.sqrt(i*i+a*a)}function Fc(t){return(t%360+540)%360-180}function Bc(t,e,r){var n=r*kc,i=t.slice(),a=0===e?1:0,o=2===e?1:2,s=Math.cos(n),l=Math.sin(n);return i[a]=t[a]*s-t[o]*l,i[o]=t[o]*s+t[a]*l,i}function Nc(t,e){for(var r=0,n=0,i=t.length;ni*Math.PI/180}return!1},n.getPath=function(){return e.geo.path().projection(n)},n.getBounds=function(t){return n.getPath().bounds(t)},n.fitExtent=function(t,e){var r=t[1][0]-t[0][0],i=t[1][1]-t[0][1],a=n.clipExtent&&n.clipExtent();n.scale(150).translate([0,0]),a&&n.clipExtent(null);var o=n.getBounds(e),s=Math.min(r/(o[1][0]-o[0][0]),i/(o[1][1]-o[0][1])),l=+t[0][0]+(r-s*(o[1][0]+o[0][0]))/2,u=+t[0][1]+(i-s*(o[1][1]+o[0][1]))/2;return a&&n.clipExtent(a),n.scale(150*s).translate([l,u])},n.precision(Yu.precision),i&&n.clipAngle(i-Yu.clipPad);return n}(r);l.center([s.lon-o.lon,s.lat-o.lat]).rotate([-o.lon,-o.lat,o.roll]).parallels(a.parallels);var u=[[n.l+n.w*i.x[0],n.t+n.h*(1-i.y[1])],[n.l+n.w*i.x[1],n.t+n.h*(1-i.y[0])]],c=r.lonaxis,h=r.lataxis,f=function(t,e){var r=Yu.clipPad,n=t[0]+r,i=t[1]-r,a=e[0]+r,o=e[1]-r;n>0&&i<0&&(i+=360);var s=(i-n)/4;return{type:"Polygon",coordinates:[[[n,a],[n,o],[n+s,o],[n+2*s,o],[n+3*s,o],[i,o],[i,a],[i-s,a],[i-2*s,a],[i-3*s,a],[n,a]]]}}(c.range,h.range);l.fitExtent(u,f);var p=this.bounds=l.getBounds(f),d=this.fitScale=l.scale(),g=l.translate();if(!isFinite(p[0][0])||!isFinite(p[0][1])||!isFinite(p[1][0])||!isFinite(p[1][1])||isNaN(g[0])||isNaN(g[0])){for(var v=this.graphDiv,m=["projection.rotation","center","lonaxis.range","lataxis.range"],y="Invalid geo settings, relayout'ing to default view.",x={},b=0;b0&&b<0&&(b+=360);var _,w,M,A=(x+b)/2;if(!s){var k=l?a.projRotate:[A,0,0];_=r("projection.rotation.lon",k[0]),r("projection.rotation.lat",k[1]),r("projection.rotation.roll",k[2]),r("showcoastlines",!l)&&(r("coastlinecolor"),r("coastlinewidth")),r("showocean")&&r("oceancolor")}(s?(w=-96.6,M=38.7):(w=l?A:_,M=(y[0]+y[1])/2),r("center.lon",w),r("center.lat",M),u)&&r("projection.parallels",a.projParallels||[0,60]);r("projection.scale"),r("showland")&&r("landcolor"),r("showlakes")&&r("lakecolor"),r("showrivers")&&(r("rivercolor"),r("riverwidth")),r("showcountries",l&&"usa"!==i)&&(r("countrycolor"),r("countrywidth")),("usa"===i||"north america"===i&&50===n)&&(r("showsubunits",!0),r("subunitcolor"),r("subunitwidth")),l||r("showframe",!0)&&(r("framecolor"),r("framewidth")),r("bgcolor")}var $c={},th=sa.getSubplotCalcData,eh=ne.counterRegex,rh="geo";$c.name=rh,$c.attr=rh,$c.idRoot=rh,$c.idRegex=$c.attrRegex=eh(rh),$c.attributes={geo:{valType:"subplotid",dflt:"geo",editType:"calc"}},$c.layoutAttributes=Xc,$c.supplyLayoutDefaults=function(t,e,r){Jc(t,e,0,{type:"geo",attributes:Xc,handleDefaults:Qc,partition:"y"})},$c.plot=function(t){var e=t._fullLayout,r=t.calcdata,n=e._subplots.geo;void 0===window.PlotlyGeoAssets&&(window.PlotlyGeoAssets={topojson:{}});for(var i=0;i0&&t[e+1][0]<0)return e;return null}switch(e="RUS"===s||"FJI"===s?function(t){var e;if(null===u(t))e=t;else for(e=new Array(t.length),i=0;ie?r[n++]=[t[i][0]+360,t[i][1]]:i===e?(r[n++]=t[i],r[n++]=[t[i][0],-90]):r[n++]=t[i];var a=cc.tester(r);a.pts.pop(),l.push(a)}:function(t){l.push(cc.tester(t))},a.type){case"MultiPolygon":for(r=0;ra&&(e.z=s.slice(0,a)),i("locationmode"),i("text"),i("marker.line.color"),i("marker.line.width"),i("marker.opacity"),Ye(t,e,n,i,{prefix:"",cLetter:"z"}),ne.coerceSelectionMarkerOpacity(e,i)):e.visible=!1}else e.visible=!1},Th.colorbar=kh,Th.calc=function(t,e){for(var n=e.locations.length,i=new Array(n),a=0;a")}(t,l,n,u.mockAxis),[t]},Th.eventData=function(t,e){return t.location=e.location,t.z=e.z,t},Th.selectPoints=function(t,e){var r,n,i,a,o,s=t.cd,l=t.xaxis,u=t.yaxis,c=[];if(!1===e)for(r=0;r=",">","<="],COMPARISON_OPS2:["=","<",">=",">","<="],INTERVAL_OPS:["[]","()","[)","(]","][",")(","](",")["],SET_OPS:["{}","}{"],CONSTRAINT_REDUCTION:{"=":"=","<":"<","<=":"<",">":">",">=":">","[]":"[]","()":"[]","[)":"[]","(]":"[]","][":"][",")(":"][","](":"][",")[":"]["}},Ch=m.extendFlat,Lh=Ch({},{z:{valType:"data_array",editType:"calc"},x:Ch({},Zr.x,{impliedEdits:{xtype:"array"}}),x0:Ch({},Zr.x0,{impliedEdits:{xtype:"scaled"}}),dx:Ch({},Zr.dx,{impliedEdits:{xtype:"scaled"}}),y:Ch({},Zr.y,{impliedEdits:{ytype:"array"}}),y0:Ch({},Zr.y0,{impliedEdits:{ytype:"scaled"}}),dy:Ch({},Zr.dy,{impliedEdits:{ytype:"scaled"}}),text:{valType:"data_array",editType:"calc"},transpose:{valType:"boolean",dflt:!1,editType:"calc"},xtype:{valType:"enumerated",values:["array","scaled"],editType:"calc+clearAxisTypes"},ytype:{valType:"enumerated",values:["array","scaled"],editType:"calc+clearAxisTypes"},zsmooth:{valType:"enumerated",values:["fast","best",!1],dflt:!1,editType:"calc"},connectgaps:{valType:"boolean",dflt:!1,editType:"calc"},xgap:{valType:"number",dflt:0,min:0,editType:"plot"},ygap:{valType:"number",dflt:0,min:0,editType:"plot"},zhoverformat:{valType:"string",dflt:"",editType:"none"}},Pe,{autocolorscale:Ch({},Pe.autocolorscale,{dflt:!1})},{colorbar:ze}),zh=Ae.dash,Ph=m.extendFlat,Ih=Eh.COMPARISON_OPS2,Dh=Eh.INTERVAL_OPS,Oh=Zr.line,Rh=Ph({z:Lh.z,x:Lh.x,x0:Lh.x0,dx:Lh.dx,y:Lh.y,y0:Lh.y0,dy:Lh.dy,text:Lh.text,transpose:Lh.transpose,xtype:Lh.xtype,ytype:Lh.ytype,zhoverformat:Lh.zhoverformat,connectgaps:Lh.connectgaps,fillcolor:{valType:"color",editType:"calc"},autocontour:{valType:"boolean",dflt:!0,editType:"calc",impliedEdits:{"contours.start":void 0,"contours.end":void 0,"contours.size":void 0}},ncontours:{valType:"integer",dflt:15,min:1,editType:"calc"},contours:{type:{valType:"enumerated",values:["levels","constraint"],dflt:"levels",editType:"calc"},start:{valType:"number",dflt:null,editType:"plot",impliedEdits:{"^autocontour":!1}},end:{valType:"number",dflt:null,editType:"plot",impliedEdits:{"^autocontour":!1}},size:{valType:"number",dflt:null,min:0,editType:"plot",impliedEdits:{"^autocontour":!1}},coloring:{valType:"enumerated",values:["fill","heatmap","lines","none"],dflt:"fill",editType:"calc"},showlines:{valType:"boolean",dflt:!0,editType:"plot"},showlabels:{valType:"boolean",dflt:!1,editType:"plot"},labelfont:T({editType:"plot",colorEditType:"style"}),labelformat:{valType:"string",dflt:"",editType:"plot"},operation:{valType:"enumerated",values:[].concat(Ih).concat(Dh),dflt:"=",editType:"calc"},value:{valType:"any",dflt:0,editType:"calc"},editType:"calc",impliedEdits:{autocontour:!1}},line:{color:Ph({},Oh.color,{editType:"style+colorbars"}),width:Ph({},Oh.width,{editType:"style+colorbars"}),dash:zh,smoothing:Ph({},Oh.smoothing,{}),editType:"plot"}},Pe,{autocolorscale:Ph({},Pe.autocolorscale,{dflt:!1}),zmin:Ph({},Pe.zmin,{editType:"calc"}),zmax:Ph({},Pe.zmax,{editType:"calc"})},{colorbar:ze}),Fh=ne.extendFlat,Bh=function(t){var e=t.contours;if(t.autocontour){var r=Nh(t.zmin,t.zmax,t.ncontours);e.size=r.dtick,e.start=ri.tickFirst(r),r.range.reverse(),e.end=ri.tickFirst(r),e.start===t.zmin&&(e.start+=e.size),e.end===t.zmax&&(e.end-=e.size),e.start>e.end&&(e.start=e.end=(e.start+e.end)/2),t._input.contours||(t._input.contours={}),Fh(t._input.contours,{start:e.start,end:e.end,size:e.size}),t._input.autocontour=!0}else if("constraint"!==e.type){var n,i=e.start,a=e.end,o=t._input.contours;if(i>a&&(e.start=o.start=a,a=e.end=o.end=i,i=e.start),!(e.size>0))n=i===a?1:Nh(i,a,t.ncontours).dtick,o.size=e.size=n}};function Nh(t,e,r){var n={type:"linear",range:[t,e]};return ri.autoTicks(n,(e-t)/(r||15)),n}var jh=function(t){for(var e=0,r=0;r=0;a--)(o=((c[[(r=(i=h[a])[0])-1,n=i[1]]]||d)[2]+(c[[r+1,n]]||d)[2]+(c[[r,n-1]]||d)[2]+(c[[r,n+1]]||d)[2])/20)&&(s[i]=[r,n,o],h.splice(a,1),l=!0);if(!l)throw"findEmpties iterated with no new neighbors";for(i in s)c[i]=s[i],u.push(s[i])}return u.sort(function(t,e){return e[2]-t[2]})},Uh=ne.isArrayOrTypedArray,qh=function(t){return!Uh(t.z[0])},Hh=[[-1,0],[1,0],[0,-1],[0,1]];function Gh(t){return.5-.25*Math.min(1,.5*t)}var Wh=function(t,e,r){var n,i,a=1;if(Array.isArray(r))for(n=0;n.01;n++)a=Yh(t,e,Gh(a));return a>.01&&ne.log("interp2d didn't converge quickly",a),t};function Yh(t,e,r){var n,i,a,o,s,l,u,c,h,f,p,d,g,v=0;for(o=0;od&&(v=Math.max(v,Math.abs(t[i][a]-p)/(g-d))))}return v}var Xh=ne.isArrayOrTypedArray,Zh=function(t,e,r,n,i,a){var o,s,l,u=[],c=P.traceIs(t,"contour"),h=P.traceIs(t,"histogram"),f=P.traceIs(t,"gl2d");if(Xh(e)&&e.length>1&&!h&&"category"!==a.type){var p=e.length;if(!(p<=i))return c?e.slice(0,i):e.slice(0,i+1);if(c||f)u=e.slice(0,i);else if(1===i)u=[e[0]-.5,e[0]+.5];else{for(u=[1.5*e[0]-.5*e[1]],l=1;la){var o=a-n[t];return n[t]=a,o}}return 0},max:function(t,e,n,i){var a=i[e];if(r(a)){if(a=Number(a),!r(n[t]))return n[t]=a,a;if(n[t]p&&ptf){var d=a===Qh?1:6,g=a===Qh?"M12":"M1";return function(e,r){var a=n.c2d(e,Qh,i),s=a.indexOf("-",d);s>0&&(a=a.substr(0,s));var l=n.d2c(a,0,i);if(lnf?t>tf?t>1.1*Qh?Qh:t>1.1*$h?$h:tf:t>ef?ef:t>rf?rf:nf:Math.pow(10,Math.floor(Math.log(t)/Math.LN10))}function uf(t,e,r,n,i,a){if(n&&t>tf){var o=cf(e,i,a),s=cf(r,i,a),l=t===Qh?0:1;return o[l]!==s[l]}return Math.floor(r/t)-Math.floor(e/t)>.1}function cf(t,e,r){var n=e.c2d(t,Qh,r).split("-");return""===n[0]&&(n.unshift(),n[0]="-"+n[0]),n}var hf=ne.cleanDate,ff=t.ONEDAY,pf=t.BADNUM,df=function(t,e,n){var i=e.type,a=n+"bins",o=t[a];o||(o=t[a]={});var s="date"===i?function(t){return t||0===t?hf(t,pf,o.calendar):null}:function(t){return r(t)?Number(t):null};o.start=s(o.start),o.end=s(o.end);var l="date"===i?ff:1,u=o.size;if(r(u))o.size=u>0?Number(u):l;else if("string"!=typeof u)o.size=l;else{var c=u.charAt(0),h=u.substr(1);((h=r(h)?Number(h):0)<=0||"date"!==i||"M"!==c||h!==Math.round(h))&&(o.size=l)}var f="autobin"+n;"boolean"!=typeof t[f]&&(t[f]=t._fullInput[f]=t._input[f]=!((o.start||0===o.start)&&(o.end||0===o.end))),t[f]||(delete t["nbins"+n],delete t._fullInput["nbins"+n])},gf={percent:function(t,e){for(var r=t.length,n=100/e,i=0;iv&&s.splice(v,s.length-v),u.length>v&&u.splice(v,u.length-v),vf(e,"x",s,o,f,d,c),vf(e,"y",u,l,p,g,h);var m=[],y=[],x=[],b="string"==typeof e.xbins.size,_="string"==typeof e.ybins.size,w=[],M=[],A=b?w:e.xbins,k=_?M:e.ybins,T=0,S=[],E=[],C=e.histnorm,L=e.histfunc,z=-1!==C.indexOf("density"),P="max"===L||"min"===L?null:0,I=Kh.count,D=gf[C],O=!1,R=[],F=[],B="z"in e?e.z:"marker"in e&&Array.isArray(e.marker.color)?e.marker.color:"";B&&"count"!==L&&(O="avg"===L,I=Kh[L]);var N=e.xbins,j=f(N.start),V=f(N.end)+(j-ri.tickIncrement(j,N.size,!1,c))/1e6;for(r=j;r=0&&i=0&&ax){m("x scale is not linear");break}}if(a.length&&"fast"===v){var b=(a[a.length-1]-a[0])/(a.length-1),_=Math.abs(b/100);for(u=0;u_){m("y scale is not linear");break}}}var w=jh(l),M="scaled"===e.xtype?"":r,A=Zh(e,M,n,i,w,h),k="scaled"===e.ytype?"":a,T=Zh(e,k,o,s,l.length,f);g||(ri.expand(h,A),ri.expand(f,T));var S={x:A,y:T,z:l,text:e.text};if(M&&M.length===A.length-1&&(S.xCenter=M),k&&k.length===T.length-1&&(S.yCenter=k),d&&(S.xRanges=c.xRanges,S.yRanges=c.yRanges,S.pts=c.pts),p&&"constraint"===e.contours.type||Ve(e,l,"","z"),p&&e.contours&&"heatmap"===e.contours.coloring){var E={type:"contour"===e.type?"heatmap":"histogram2d",xcalendar:e.xcalendar,ycalendar:e.ycalendar};S.xfill=Zh(E,M,n,i,w,h),S.yfill=Zh(E,k,o,s,l.length,f)}return[S]},_f=function(t,e){var r=bf(t,e);return Bh(e),r},wf=function(t){return t.end+t.size/1e6},Mf=function(t){var r=t.contours,n=r.start,i=wf(r),a=r.size||1,o=Math.floor((i-n)/a)+1,s="lines"===r.coloring?0:1;isFinite(a)||(a=1,o=1);var l,u,c=t.colorscale,h=c.length,f=new Array(h),p=new Array(h);if("heatmap"===r.coloring){for(t.zauto&&!1===t.autocontour&&(t.zmin=n-a/2,t.zmax=t.zmin+o*a),u=0;u2?e.value=e.value.slice(2):0===e.length?e.value=[0,1]:e.length<2?(n=parseFloat(e.value[0]),e.value=[n,n+1]):e.value=[parseFloat(e.value[0]),parseFloat(e.value[1])]:r(e.value)&&(n=parseFloat(e.value),e.value=[n,n+1])):(t("contours.value",0),r(e.value)||(Array.isArray(e.value)?e.value=parseFloat(e.value[0]):e.value=0))}(n,c),"="===h?s=c.showlines=!0:(s=n("contours.showlines"),u=n("fillcolor",Tf((t.line||{}).color||a,.5))),s)&&(l=n("line.color",u&&Sf(u)?Tf(e.fillcolor,1):a),n("line.width",2),n("line.dash"));n("line.smoothing"),kf(n,i,l,o)};var zf=function(t,e,r,n){var i=n("contours.start"),a=n("contours.end"),o=!1===i||!1===a,s=r("contours.size");!(o?e.autocontour=!0:r("autocontour",!1))&&s||r("ncontours")},Pf=function(t,e,r,n,i){var a,o=r("contours.coloring"),s="";"fill"===o&&(a=r("contours.showlines")),!1!==a&&("lines"!==o&&(s=r("line.color","#000")),r("line.width",.5),r("line.dash")),"none"!==o&&Ye(t,e,n,r,{prefix:"",cLetter:"z"}),r("line.smoothing"),kf(r,n,s,i)},If=ne.isArrayOrTypedArray,Df=function(t,e,n,i,a,o){var s,l,u=n("z");if(a=a||"x",o=o||"y",void 0===u||!u.length)return 0;if(qh(t)){if(s=n(a),l=n(o),!s||!l)return 0}else{if(s=Of(a,n),l=Of(o,n),!function(t){for(var e,n=!0,i=!1,a=!1,o=0;o0&&(i=!0);for(var s=0;s=v[0].length||u<0||u>v.length)return}else{if(yo.inbox(e-d[0],e-d[d.length-1],0)>0||yo.inbox(r-g[0],r-g[g.length-1],0)>0)return;if(a){var A;for(w=[2*d[0]-d[1]],A=1;A":h.value>f&&(s.prefixBoundary=!0);break;case"<":h.valuef)&&(s.prefixBoundary=!0);break;case"][":a=Math.min.apply(null,h.value),o=Math.max.apply(null,h.value),af&&(s.prefixBoundary=!0)}},Nf={BOTTOMSTART:[1,9,13,104,713],TOPSTART:[4,6,7,104,713],LEFTSTART:[8,12,14,208,1114],RIGHTSTART:[2,3,11,208,1114],NEWDELTA:[null,[-1,0],[0,-1],[-1,0],[1,0],null,[0,-1],[-1,0],[0,1],[0,1],null,[0,1],[1,0],[1,0],[0,-1]],CHOOSESADDLE:{104:[4,1],208:[2,8],713:[7,13],1114:[11,14]},SADDLEREMAINDER:{1:4,2:8,4:1,7:13,8:2,11:14,13:7,14:11},LABELDISTANCE:2,LABELINCREASE:10,LABELMIN:3,LABELMAX:10,LABELOPTIMIZER:{EDGECOST:1,ANGLECOST:1,NEIGHBORCOST:5,SAMELEVELFACTOR:10,SAMELEVELDISTANCE:5,MAXCOST:100,INITIALSEARCHPOINTS:10,ITERATIONS:5}},jf=function(t,e){var r,n,i,a=function(t){return t.reverse()},o=function(t){return t};switch(e){case"=":case"<":return t;case">":for(1!==t.length&&ne.warn("Contour data invalid for the specified inequality operation."),n=t[0],r=0;r":Gf(">"),"<":Gf("<"),"=":Gf("=")};function qf(t,e){var n,i=Array.isArray(e);function a(t){return r(t)?+t:null}return-1!==Eh.COMPARISON_OPS2.indexOf(t)?n=a(i?e[0]:e):-1!==Eh.INTERVAL_OPS.indexOf(t)?n=i?[a(e[0]),a(e[1])]:[a(e),a(e)]:-1!==Eh.SET_OPS.indexOf(t)&&(n=i?e.map(a):[a(e)]),n}function Hf(t){return function(e){e=qf(t,e);var r=Math.min(e[0],e[1]),n=Math.max(e[0],e[1]);return{start:r,end:n,size:n-r}}}function Gf(t){return function(e){return{start:e=qf(t,e),end:1/0,size:1/0}}}var Wf=function(t,e,r){for(var n="constraint"===t.type?Uf[t._operation](t.value):t,i=n.size,a=[],o=wf(n),s=r.trace.carpetTrace,l=s?{xaxis:s.aaxis,yaxis:s.baxis,x:r.a,y:r.b}:{xaxis:e.xaxis,yaxis:e.yaxis,x:r.x,y:r.y},u=n.start;u1e3){ne.warn("Too many contours, clipping at 1000",t);break}return a},Yf=function(t,e,r){var n,i,a,o;for(e=e||.01,r=r||.01,i=0;i20&&e?208===t||1114===t?n=0===r[0]?1:-1:i=0===r[1]?1:-1:-1!==Nf.BOTTOMSTART.indexOf(t)?i=1:-1!==Nf.LEFTSTART.indexOf(t)?n=1:-1!==Nf.TOPSTART.indexOf(t)?i=-1:n=-1;return[n,i]}(l,r,e),c=[Jf(t,e,[-u[0],-u[1]])],h=u.join(","),f=t.z.length,p=t.z[0].length;for(a=0;a<1e4;a++){if(l>20?(l=Nf.CHOOSESADDLE[l][(u[0]||u[1])<0?0:1],t.crossings[s]=Nf.SADDLEREMAINDER[l]):delete t.crossings[s],!(u=Nf.NEWDELTA[l])){ne.log("Found bad marching index:",l,e,t.level);break}c.push(Jf(t,e,u)),e[0]+=u[0],e[1]+=u[1],Xf(c[c.length-1],c[c.length-2],n,i)&&c.pop(),s=e.join(",");var d=u[0]&&(e[0]<0||e[0]>p-2)||u[1]&&(e[1]<0||e[1]>f-2);if(s===o&&u.join(",")===h||r&&d)break;l=t.crossings[s]}1e4===a&&ne.log("Infinite loop in contour?");var g,v,m,y,x,b,_,w,M,A,k,T,S,E,C,L=Xf(c[0],c[c.length-1],n,i),z=0,P=.2*t.smoothing,I=[],D=0;for(a=1;a=D;a--)if((g=I[a])=D&&g+I[v]w&&M--,t.edgepaths[M]=k.concat(c,A));break}B||(t.edgepaths[w]=c.concat(A))}for(w=0;wt?0:1)+(e[0][1]>t?0:2)+(e[1][1]>t?0:4)+(e[1][0]>t?0:8);return 5===r||10===r?t>(e[0][0]+e[0][1]+e[1][0]+e[1][1])/4?5===r?713:1114:5===r?104:208:15===r?0:r}var $f=function(t,e,r){for(var n=0;n0;)f=o.c2p(y[v]),v--;for(f0;)g=l.c2p(x[v]),v--;if(gt.level}return r?"M"+e.join("L")+"Z":""}(t,e),c=0,h=t.edgepaths.map(function(t,e){return e}),f=!0;function p(t){return Math.abs(t[1]-e[2][1])<.01}function d(t){return Math.abs(t[0]-e[0][0])<.01}function g(t){return Math.abs(t[0]-e[2][0])<.01}for(;h.length;){for(s=Sr.smoothopen(t.edgepaths[c],t.smoothing),u+=f?s:s.replace(/^M/,"L"),h.splice(h.indexOf(c),1),r=t.edgepaths[c][t.edgepaths[c].length-1],a=-1,i=0;i<4;i++){if(!r){ne.log("Missing end?",c,t);break}for(l=r,Math.abs(l[1]-e[0][1])<.01&&!g(r)?n=e[1]:d(r)?n=e[0]:p(r)?n=e[3]:g(r)&&(n=e[2]),o=0;o=0&&(n=v,a=o):Math.abs(r[1]-n[1])<.01?Math.abs(r[1]-v[1])<.01&&(v[0]-r[0])*(n[0]-v[0])>=0&&(n=v,a=o):ne.log("endpt to newendpt is not vert. or horz.",r,n,v)}if(r=n,a>=0)break;u+="L"+n}if(a===t.edgepaths.length){ne.log("unclosed perimeter path");break}c=a,(f=-1===h.indexOf(c))&&(c=h[0],u+="Z")}for(c=0;cn.center?n.right-o:o-n.left)/(u+Math.abs(Math.sin(l)*a)),f=(s>n.middle?n.bottom-s:s-n.top)/(Math.abs(c)+Math.cos(l)*a);if(h<1||f<1)return 1/0;var p=ap.EDGECOST*(1/(h-1)+1/(f-1));p+=ap.ANGLECOST*l*l;for(var d=o-u,g=s-c,v=o+u,m=s+c,y=0;y2*ap.MAXCOST)break;f&&(o/=2),s=(a=l-o/2)+1.5*o}if(h<=ap.MAXCOST)return u},ip.addLabelData=function(t,e,r,n){var i=e.width/2,a=e.height/2,o=t.x,s=t.y,l=t.theta,u=Math.sin(l),c=Math.cos(l),h=i*c,f=a*u,p=i*u,d=-a*c,g=[[o-h-f,s-p-d],[o+h-f,s+p-d],[o+h+f,s+p+d],[o-h+f,s-p+d]];r.push({text:e.text,x:o,y:s,dy:e.dy,theta:l,level:e.level,width:e.width,height:e.height}),n.push(g)},ip.drawLabels=function(t,r,n,i,a){var o=t.selectAll("text").data(r,function(t){return t.text+","+t.x+","+t.y+","+t.theta});if(o.exit().remove(),o.enter().append("text").attr({"data-notex":1,"text-anchor":"middle"}).each(function(t){var r=t.x+Math.sin(t.theta)*t.dy,i=t.y-Math.cos(t.theta)*t.dy;e.select(this).text(t.text).attr({x:r,y:i,transform:"rotate("+180*t.theta/Math.PI+" "+r+" "+i+")"}).call(er.convertToTspans,n)}),a){for(var s="",l=0;l0?Math.floor:Math.ceil,z=E>0?Math.ceil:Math.floor,P=E>0?Math.min:Math.max,I=E>0?Math.max:Math.min,D=L(T+C),O=z(S-C),R=[[c=k(T)]];for(i=D;i*E=0&&(c=T,f=p):Math.abs(u[1]-c[1])=0&&(c=T,f=p):ne.log("endpt to newendpt is not vert. or horz.",u,c,T)}if(f>=0)break;g+=A(u,c),u=c}if(f===e.edgepaths.length){ne.log("unclosed perimeter path");break}l=f,(m=-1===v.indexOf(l))&&(l=v[0],g+=A(u,c)+"Z",u=null)}for(l=0;l=0;T--)M=o.clipsegments[T],A=Ou([],M.x,h.c2p),k=Ou([],M.y,f.c2p),A.reverse(),k.reverse(),E.push(Iu(A,k,M.bicubic));var C="M"+E.join("L")+"Z";!function(t,e,r,n,i,a){var o,s,l,u,c=t.selectAll("g.contourbg").data([0]);c.enter().append("g").classed("contourbg",!0);var h=c.selectAll("path").data("fill"!==a||i?[]:[0]);h.enter().append("path"),h.exit().remove();var f=[];for(u=0;uv&&(n.max=v);n.len=n.max-n.min}(this,e,t,n,s,r.height),!(n.len<(r.width+r.height)*Nf.LABELMIN)))for(var i=Math.min(Math.ceil(n.len/k),Nf.LABELMAX),a=0;a1)for(var r=1;r=0,d=r.indexOf("end")>=0,g=u.backoff*h+n.standoff,v=c.backoff*f+n.startstandoff;if("line"===l.nodeName){i={x:+t.attr("x1"),y:+t.attr("y1")},a={x:+t.attr("x2"),y:+t.attr("y2")};var m=i.x-a.x,y=i.y-a.y;if(s=(o=Math.atan2(y,m))+Math.PI,g&&v&&g+v>Math.sqrt(m*m+y*y))return void C();if(g){if(g*g>m*m+y*y)return void C();var x=g*Math.cos(o),b=g*Math.sin(o);a.x+=x,a.y+=b,t.attr({x2:a.x,y2:a.y})}if(v){if(v*v>m*m+y*y)return void C();var _=v*Math.cos(o),w=v*Math.sin(o);i.x-=_,i.y-=w,t.attr({x1:i.x,y1:i.y})}}else if("path"===l.nodeName){var M=l.getTotalLength(),A="";if(M2/3?"right":"center"),{center:0,middle:0,left:.5,bottom:-.5,right:-.5,top:.5}[e]}r._w=E,r._h=C;for(var D=!1,O=["x","y"],R=0;R1)&&(H===q?(($=G.r2fraction(r["a"+U]))<0||$>1)&&(D=!0):D=!0,D))continue;F=G._offset+G.r2p(r[U]),j=.5}else"x"===U?(N=r[U],F=c.l+c.w*N):(N=1-r[U],F=c.t+c.h*N),j=r.showarrow?.5:N;if(r.showarrow){Q.head=F;var tt=r["a"+U];V=Y*I(.5,r.xanchor)-X*I(.5,r.yanchor),H===q?(Q.tail=G._offset+G.r2p(tt),B=V):(Q.tail=F+tt,B=V+tt),Q.text=Q.tail+V;var et=u["x"===U?"width":"height"];if("paper"===q&&(Q.head=ne.constrain(Q.head,1,et-1)),"pixel"===H){var rt=-Math.max(Q.tail-3,Q.text),nt=Math.min(Q.tail+3,Q.text)-et;rt>0?(Q.tail+=rt,Q.text+=rt):nt>0&&(Q.tail-=nt,Q.text-=nt)}Q.tail+=K,Q.head+=K}else B=V=Z*I(j,J),Q.text=F+V;Q.text+=K,V+=K,B+=K,r["_"+U+"padplus"]=Z/2+B,r["_"+U+"padminus"]=Z/2-B,r["_"+U+"size"]=Z,r["_"+U+"shift"]=V}if(D)x.remove();else{var it=0,at=0;if("left"!==r.align&&(it=(E-_)*("center"===r.align?.5:1)),"top"!==r.valign&&(at=(C-T)*("middle"===r.valign?.5:1)),s)n.select("svg").attr({x:w+it-1,y:w+at}).call(Sr.setClipUrl,A?f:null);else{var ot=w+at-y.top,st=w+it-y.left;S.call(er.positionText,st,ot).call(Sr.setClipUrl,A?f:null)}k.select("rect").call(Sr.setRect,w,w,E,C),M.call(Sr.setRect,b/2,b/2,L-b,z-b),x.call(Sr.setTranslate,Math.round(p.x.text-L/2),Math.round(p.y.text-z/2)),v.attr({transform:"rotate("+d+","+p.x.text+","+p.y.text+")"});var lt,ut,ct=function(e,n){g.selectAll(".annotation-arrow-g").remove();var s=p.x.head,u=p.y.head,f=p.x.tail+e,m=p.y.tail+n,y=p.x.text+e,b=p.y.text+n,_=ne.rotationXYMatrix(d,y,b),w=ne.apply2DTransform(_),A=ne.apply2DTransform2(_),k=+M.attr("width"),T=+M.attr("height"),S=y-.5*k,E=S+k,C=b-.5*T,L=C+T,z=[[S,C,S,L],[S,L,E,L],[E,L,E,C],[E,C,S,C]].map(A);if(!z.reduce(function(t,e){return t^!!ne.segmentsIntersect(s,u,s+1e6,u+1e6,e[0],e[1],e[2],e[3])},!1)){z.forEach(function(t){var e=ne.segmentsIntersect(f,m,s,u,t[0],t[1],t[2],t[3]);e&&(f=e.x,m=e.y)});var I=r.arrowwidth,D=r.arrowcolor,O=r.arrowside,R=g.append("g").style({opacity:Oe.opacity(D)}).classed("annotation-arrow-g",!0),F=R.append("path").attr("d","M"+f+","+m+"L"+s+","+u).style("stroke-width",I+"px").call(Oe.stroke,Oe.rgb(D));if(Kp(F,O,r),h.annotationPosition&&F.node().parentNode&&!i){var B=s,N=u;if(r.standoff){var j=Math.sqrt(Math.pow(s-f,2)+Math.pow(u-m,2));B+=r.standoff*(f-s)/j,N+=r.standoff*(m-u)/j}var V,U,q,H=R.append("path").classed("annotation-arrow",!0).classed("anndrag",!0).attr({d:"M3,3H-3V-3H3ZM0,0L"+(f-B)+","+(m-N),transform:"translate("+B+","+N+")"}).style("stroke-width",I+6+"px").call(Oe.stroke,"rgba(0,0,0,0)").call(Oe.fill,"rgba(0,0,0,0)");Ua.init({element:H.node(),gd:t,prepFn:function(){var t=Sr.getTranslate(x);U=t.x,q=t.y,V={},a&&a.autorange&&(V[a._name+".autorange"]=!0),o&&o.autorange&&(V[o._name+".autorange"]=!0)},moveFn:function(t,e){var n=w(U,q),i=n[0]+t,s=n[1]+e;x.call(Sr.setTranslate,i,s),V[l+".x"]=a?a.p2r(a.r2p(r.x)+t):r.x+t/c.w,V[l+".y"]=o?o.p2r(o.r2p(r.y)+e):r.y-e/c.h,r.axref===r.xref&&(V[l+".ax"]=a.p2r(a.r2p(r.ax)+t)),r.ayref===r.yref&&(V[l+".ay"]=o.p2r(o.r2p(r.ay)+e)),R.attr("transform","translate("+t+","+e+")"),v.attr({transform:"rotate("+d+","+i+","+s+")"})},doneFn:function(){P.call("relayout",t,V);var e=document.querySelector(".js-notes-box-panel");e&&e.redraw(e.selectedObj)}})}}};if(r.showarrow&&ct(0,0),m)Ua.init({element:x.node(),gd:t,prepFn:function(){ut=v.attr("transform"),lt={}},moveFn:function(t,e){var n="pointer";if(r.showarrow)r.axref===r.xref?lt[l+".ax"]=a.p2r(a.r2p(r.ax)+t):lt[l+".ax"]=r.ax+t,r.ayref===r.yref?lt[l+".ay"]=o.p2r(o.r2p(r.ay)+e):lt[l+".ay"]=r.ay+e,ct(t,e);else{if(i)return;if(a)lt[l+".x"]=a.p2r(a.r2p(r.x)+t);else{var s=r._xsize/c.w,u=r.x+(r._xshift-r.xshift)/c.w-s/2;lt[l+".x"]=Ua.align(u+t/c.w,s,0,1,r.xanchor)}if(o)lt[l+".y"]=o.p2r(o.r2p(r.y)+e);else{var h=r._ysize/c.h,f=r.y-(r._yshift+r.yshift)/c.h-h/2;lt[l+".y"]=Ua.align(f-e/c.h,h,0,1,r.yanchor)}a&&o||(n=Ua.getCursor(a?.5:lt[l+".x"],o?.5:lt[l+".y"],r.xanchor,r.yanchor))}v.attr({transform:"translate("+t+","+e+")"+ut}),Ka(x,n)},doneFn:function(){Ka(x),P.call("relayout",t,lt);var e=document.querySelector(".js-notes-box-panel");e&&e.redraw(e.selectedObj)}})}}}var ed=Qp.draw;function rd(t){var e=t._fullLayout;ne.filterVisible(e.annotations).forEach(function(e){var r,n,i,a,o=ri.getFromId(t,e.xref),s=ri.getFromId(t,e.yref),l=3*e.arrowsize*e.arrowwidth||0,u=3*e.startarrowsize*e.arrowwidth||0;o&&o.autorange&&(r=l+e.xshift,n=l-e.xshift,i=u+e.xshift,a=u-e.xshift,e.axref===e.xref?(ri.expand(o,[o.r2c(e.x)],{ppadplus:r,ppadminus:n}),ri.expand(o,[o.r2c(e.ax)],{ppadplus:Math.max(e._xpadplus,i),ppadminus:Math.max(e._xpadminus,a)})):(i=e.ax?i+e.ax:i,a=e.ax?a-e.ax:a,ri.expand(o,[o.r2c(e.x)],{ppadplus:Math.max(e._xpadplus,r,i),ppadminus:Math.max(e._xpadminus,n,a)}))),s&&s.autorange&&(r=l-e.yshift,n=l+e.yshift,i=u-e.yshift,a=u+e.yshift,e.ayref===e.yref?(ri.expand(s,[s.r2c(e.y)],{ppadplus:r,ppadminus:n}),ri.expand(s,[s.r2c(e.ay)],{ppadplus:Math.max(e._ypadplus,i),ppadminus:Math.max(e._ypadminus,a)})):(i=e.ay?i+e.ay:i,a=e.ay?a-e.ay:a,ri.expand(s,[s.r2c(e.y)],{ppadplus:Math.max(e._ypadplus,r,i),ppadminus:Math.max(e._ypadminus,n,a)})))})}var nd={hasClickToShow:function(t,e){var r=id(t,e);return r.on.length>0||r.explicitOff.length>0},onClick:function(t,e){var r,n=id(t,e),i=n.on,a=n.off.concat(n.explicitOff),o={};if(!i.length&&!a.length)return;for(r=0;r1){o=!0;break}}o?t.fullLayout._infolayer.select(".annotation-"+t.id+'[data-index="'+i+'"]').remove():(a._pdata=gd(t.glplot.cameraParams,[e.xaxis.r2l(a.x)*r[0],e.yaxis.r2l(a.y)*r[1],e.zaxis.r2l(a.z)*r[2]]),vd(t.graphDiv,a,i,t.id,a._xa,a._ya))}}};var xd={visible:{valType:"boolean",editType:"calc"},type:{valType:"enumerated",values:["percent","constant","sqrt","data"],editType:"calc"},symmetric:{valType:"boolean",editType:"calc"},array:{valType:"data_array",editType:"calc"},arrayminus:{valType:"data_array",editType:"calc"},value:{valType:"number",min:0,dflt:10,editType:"calc"},valueminus:{valType:"number",min:0,dflt:10,editType:"calc"},traceref:{valType:"integer",min:0,dflt:0,editType:"style"},tracerefminus:{valType:"integer",min:0,dflt:0,editType:"style"},copy_ystyle:{valType:"boolean",editType:"plot"},copy_zstyle:{valType:"boolean",editType:"style"},color:{valType:"color",editType:"style"},thickness:{valType:"number",min:0,dflt:2,editType:"style"},width:{valType:"number",min:0,editType:"plot"},editType:"calc",_deprecated:{opacity:{valType:"number",editType:"style"}}},bd=function(t){var e=t.type,r=t.symmetric;if("data"===e){var n=t.array||[];if(r)return function(t,e){var r=+n[e];return[r,r]};var i=t.arrayminus||[];return function(t,e){var r=+n[e],a=+i[e];return isNaN(r)&&isNaN(a)?[NaN,NaN]:[a||0,r||0]}}var a=_d(e,t.value),o=_d(e,t.valueminus);return r||void 0===t.valueminus?function(t){var e=a(t);return[e,e]}:function(t){return[o(t),a(t)]}};function _d(t,e){return"percent"===t?function(t){return Math.abs(t*e/100)}:"constant"===t?function(){return Math.abs(e)}:"sqrt"===t?function(t){return Math.sqrt(Math.abs(t))}:void 0}var wd=function(t){for(var e=t.calcdata,r=0;r0;t.each(function(t){var l,u=t[0].trace,c=u.error_x||{},h=u.error_y||{};u.ids&&(l=function(t){return t.id});var f=Tr.hasMarkers(u)&&u.marker.maxdisplayed>0;h.visible||c.visible||(t=[]);var p=e.select(this).selectAll("g.errorbar").data(t,l);if(p.exit().remove(),t.length){c.visible||p.selectAll("path.xerror").remove(),h.visible||p.selectAll("path.yerror").remove(),p.style("opacity",1);var d=p.enter().append("g").classed("errorbar",!0);s&&d.style("opacity",0).transition().duration(i.duration).style("opacity",1),Sr.setClipUrl(p,n.layerClipId),p.each(function(t){var n=e.select(this),l=function(t,e,n){var i={x:e.c2p(t.x),y:n.c2p(t.y)};return void 0!==t.yh&&(i.yh=n.c2p(t.yh),i.ys=n.c2p(t.ys),r(i.ys)||(i.noYS=!0,i.ys=n.c2p(t.ys,!0))),void 0!==t.xh&&(i.xh=e.c2p(t.xh),i.xs=e.c2p(t.xs),r(i.xs)||(i.noXS=!0,i.xs=e.c2p(t.xs,!0))),i}(t,a,o);if(!f||t.vis){var u,p=n.select("path.yerror");if(h.visible&&r(l.x)&&r(l.yh)&&r(l.ys)){var d=h.width;u="M"+(l.x-d)+","+l.yh+"h"+2*d+"m-"+d+",0V"+l.ys,l.noYS||(u+="m-"+d+",0h"+2*d),p.size()?s&&(p=p.transition().duration(i.duration).ease(i.easing)):p=n.append("path").style("vector-effect","non-scaling-stroke").classed("yerror",!0),p.attr("d",u)}else p.remove();var g=n.select("path.xerror");if(c.visible&&r(l.y)&&r(l.xh)&&r(l.xs)){var v=(c.copy_ystyle?h:c).width;u="M"+l.xh+","+(l.y-v)+"v"+2*v+"m0,-"+v+"H"+l.xs,l.noXS||(u+="m0,-"+v+"v"+2*v),g.size()?s&&(g=g.transition().duration(i.duration).ease(i.easing)):g=n.append("path").style("vector-effect","non-scaling-stroke").classed("xerror",!0),g.attr("d",u)}else g.remove()}})}})},style:function(t){t.each(function(t){var r=t[0].trace,n=r.error_y||{},i=r.error_x||{},a=e.select(this);a.selectAll("path.yerror").style("stroke-width",n.thickness+"px").call(Oe.stroke,n.color),i.copy_ystyle&&(i=n),a.selectAll("path.xerror").style("stroke-width",i.thickness+"px").call(Oe.stroke,i.color)})},hoverInfo:function(t,e,r){(e.error_y||{}).visible&&(r.yerr=t.yh-t.y,e.error_y.symmetric||(r.yerrneg=t.y-t.ys));(e.error_x||{}).visible&&(r.xerr=t.xh-t.x,e.error_x.symmetric||(r.xerrneg=t.x-t.xs))}};var Ed=tt.counter,Cd=qc.attributes,Ld=Te.idRegex,zd={rows:{valType:"integer",min:1,editType:"plot"},roworder:{valType:"enumerated",values:["top to bottom","bottom to top"],dflt:"top to bottom",editType:"plot"},columns:{valType:"integer",min:1,editType:"plot"},subplots:{valType:"info_array",freeLength:!0,dimensions:2,items:{valType:"enumerated",values:[Ed("xy").toString(),""],editType:"plot"},editType:"plot"},xaxes:{valType:"info_array",freeLength:!0,items:{valType:"enumerated",values:[Ld.x.toString(),""],editType:"plot"},editType:"plot"},yaxes:{valType:"info_array",freeLength:!0,items:{valType:"enumerated",values:[Ld.y.toString(),""],editType:"plot"},editType:"plot"},pattern:{valType:"enumerated",values:["independent","coupled"],dflt:"coupled",editType:"plot"},xgap:{valType:"number",min:0,max:1,editType:"plot"},ygap:{valType:"number",min:0,max:1,editType:"plot"},domain:Cd({name:"grid",editType:"plot",noGridCell:!0},{}),xside:{valType:"enumerated",values:["bottom","bottom plot","top plot","top"],dflt:"bottom plot",editType:"ticks"},yside:{valType:"enumerated",values:["left","left plot","right plot","right"],dflt:"left plot",editType:"ticks"},editType:"plot"};function Pd(t,e,r,n,i){var a=e(t+"gap",r),o=e("domain."+t);e(t+"side");for(var s=new Array(n),l=o[0],u=(o[1]-l)/(n-a),c=u*(1-a),h=0;h1){a||o||s||"independent"===f("pattern")&&(a=!0),l._hasSubplotGrid=a;var h="top to bottom"===f("roworder");l._domains={x:Pd("x",f,a?.2:.1,c),y:Pd("y",f,a?.3:.1,u,h)}}}function f(t,e){return ne.coerce(r,l,zd,t,e)}},contentDefaults:function(t,e){var r=e.grid;if(r&&r._domains){var n,i,a,o,s,l,u,c=t.grid,h=e._subplots,f=r._hasSubplotGrid,p=r.rows,d=r.columns,g="independent"===r.pattern,v=r._axisMap={};if(f){var m=c.subplots||[];l=r.subplots=new Array(p);var y=1;for(n=0;n=2/3},isCenterAnchor:function(t){return"center"===t.xanchor||"auto"===t.xanchor&&t.x>1/3&&t.x<2/3},isBottomAnchor:function(t){return"bottom"===t.yanchor||"auto"===t.yanchor&&t.y<=1/3},isMiddleAnchor:function(t){return"middle"===t.yanchor||"auto"===t.yanchor&&t.y>1/3&&t.y<2/3}},Ud={scrollBarWidth:6,scrollBarMinHeight:20,scrollBarColor:"#808BA4",scrollBarMargin:4},qd=!0,Hd=function(t,e,r){if(!e._dragged&&!e._editing){var n,i,a,o,s,l=e._fullLayout.hiddenlabels?e._fullLayout.hiddenlabels.slice():[],u=t.data()[0][0],c=e._fullData,h=u.trace,f=h.legendgroup,p={},d=[],g=[],v=[];if(1===r&&qd&&e.data&&e._context.showTips?(ne.notifier(ne._(e,"Double-click on legend to isolate one trace"),"long"),qd=!1):qd=!1,P.traceIs(h,"pie")){var m=u.label,y=l.indexOf(m);1===r?-1===y?l.push(m):l.splice(y,1):2===r&&(l=[],e.calcdata[0].forEach(function(t){m!==t.label&&l.push(t.label)}),e._fullLayout.hiddenlabels&&e._fullLayout.hiddenlabels.length===l.length&&-1===y&&(l=[])),P.call("relayout",e,"hiddenlabels",l)}else{var x,b=f&&f.length,_=[];if(b)for(n=0;nr[1])return r[1]}return i}function h(t){return t[0]}if(s||l||u){var f={},p={};s&&(f.mc=c("marker.color",h),f.mo=c("marker.opacity",ne.mean,[.2,1]),f.ms=c("marker.size",ne.mean,[2,16]),f.mlc=c("marker.line.color",h),f.mlw=c("marker.line.width",ne.mean,[0,5]),p.marker={sizeref:1,sizemin:1,sizemode:"diameter"}),u&&(p.line={width:c("line.width",h,[0,10])}),l&&(f.tx="Aa",f.tp=c("textposition",h),f.ts=10,f.tc=c("textfont.color",h),f.tf=c("textfont.family",h)),n=[ne.minExtend(a,f)],i=ne.minExtend(o,p)}var d=e.select(this).select("g.legendpoints"),g=d.selectAll("path.scatterpts").data(s?n:[]);g.enter().append("path").classed("scatterpts",!0).attr("transform","translate(20,0)"),g.exit().remove(),g.call(Sr.pointStyle,i,r),s&&(n[0].mrc=3);var v=d.selectAll("g.pointtext").data(l?n:[]);v.enter().append("g").classed("pointtext",!0).append("text").attr("transform","translate(20,0)"),v.exit().remove(),v.selectAll("text").call(Sr.textPointStyle,i,r)})},Zd=Qe.LINE_SPACING,Jd=Qe.FROM_TL,Kd=Qe.FROM_BR,Qd=f.DBLCLICKDELAY;function $d(t,e){var r=t.data()[0][0],n=e._fullLayout,i=r.trace,a=P.traceIs(i,"pie"),o=i.index,s=a?r.label:i.name,l=t.selectAll("text.legendtext").data([0]);function u(r){er.convertToTspans(r,e,function(){!function(t,e){var r=t.data()[0][0];if(!r.trace.showlegend)return void t.remove();var n,i,a=t.select("g[class*=math-group]"),o=a.node(),s=e._fullLayout.legend.font.size*Zd;if(o){var l=Sr.bBox(o);n=l.height,i=l.width,Sr.setTranslate(a,0,n/4)}else{var u=t.select(".legendtext"),c=er.lineCount(u),h=u.node();n=s*c,i=h?Sr.bBox(h).width:0;var f=s*(.3+(1-c)/2);er.positionText(u,40,f)}n=Math.max(n,16)+3,r.height=n,r.width=i}(t,e)})}l.enter().append("text").classed("legendtext",!0),l.attr("text-anchor","start").classed("user-select-none",!0).call(Sr.font,n.legend.font).text(s),e._context.edits.legendText&&!a?l.call(er.makeEditable,{gd:e}).call(u).on("edit",function(t){this.text(t).call(u);var n,i=t;this.text()||(t=" ");var a=r.trace._fullInput||{},s={};if(-1!==["ohlc","candlestick"].indexOf(a.type))s[(n=r.trace.transforms)[n.length-1].direction+".name"]=t;else if(P.hasTransform(a,"groupby")){var l=P.getTransformIndices(a,"groupby"),c=l[l.length-1],h=ne.keyedContainer(a,"transforms["+c+"].styles","target","value.name");""===i?h.remove(r.trace._group):h.set(r.trace._group,t),s=h.constructUpdate()}else s.name=t;return P.call("restyle",e,s,o)}):u(l)}function tg(t,e){var r,n=1,i=t.selectAll("rect").data([0]);i.enter().append("rect").classed("legendtoggle",!0).style("cursor","pointer").attr("pointer-events","all").call(Oe.fill,"rgba(0,0,0,0)"),i.on("mousedown",function(){(r=(new Date).getTime())-e._legendMouseDownTimeQd&&(n=Math.max(n-1,1)),1===n?r._clickTimeout=setTimeout(function(){Hd(t,e,n)},Qd):2===n&&(r._clickTimeout&&clearTimeout(r._clickTimeout),e._legendMouseDownTime=0,Hd(t,e,n))}})}function eg(t,r,n){var i=t._fullLayout,a=i.legend,o=a.borderwidth,s=jd.isGrouped(a),l=0;if(a._width=0,a._height=0,jd.isVertical(a))s&&r.each(function(t,e){Sr.setTranslate(this,0,e*a.tracegroupgap)}),n.each(function(t){var e=t[0],r=e.height,n=e.width;Sr.setTranslate(this,o,5+o+a._height+r/2),a._height+=r,a._width=Math.max(a._width,n)}),a._width+=45+2*o,a._height+=10+2*o,s&&(a._height+=(a._lgroupsLength-1)*a.tracegroupgap),l=40;else if(s){for(var u=[a._width],c=r.data(),h=0,f=c.length;ho+b-_,n.each(function(t){var e=t[0],r=g?40+t[0].width:y;o+x+_+r>i.width-(i.margin.r+i.margin.l)&&(x=0,v+=m,a._height=a._height+m,m=0),Sr.setTranslate(this,o+x,5+o+e.height/2+v),a._width+=_+r,a._height=Math.max(a._height,e.height),x+=_+r,m=Math.max(e.height,m)}),a._width+=2*o,a._height+=10+2*o}a._width=Math.ceil(a._width),a._height=Math.ceil(a._height),n.each(function(r){var n=r[0],i=e.select(this).select(".legendtoggle");Sr.setRect(i,0,-n.height/2,(t._context.edits.legendText?0:a._width)+l,n.height)})}function rg(t){var e=t._fullLayout.legend,r="left";Vd.isRightAnchor(e)?r="right":Vd.isCenterAnchor(e)&&(r="center");var n="top";Vd.isBottomAnchor(e)?n="bottom":Vd.isMiddleAnchor(e)&&(n="middle"),_n.autoMargin(t,"legend",{x:e.x,y:e.y,l:e._width*Jd[r],r:e._width*Kd[r],b:e._height*Kd[n],t:e._height*Jd[n]})}var ng={moduleType:"component",name:"legend",layoutAttributes:Nd,supplyLayoutDefaults:function(t,e,r){for(var n,i,a,o,s=t.legend||{},l={},u=0,c="normal",h=0;h1)){if(e.legend=l,p("bgcolor",e.paper_bgcolor),p("bordercolor"),p("borderwidth"),ne.coerceFont(p,"font",e.font),p("orientation"),"h"===l.orientation){var d=t.xaxis;d&&d.rangeslider&&d.rangeslider.visible?(n=0,a="left",i=1.1,o="bottom"):(n=0,a="left",i=-.1,o="top")}p("traceorder",c),jd.isGrouped(e.legend)&&p("tracegroupgap"),p("x",n),p("xanchor",a),p("y",i),p("yanchor",o),ne.noneOrAll(s,l,["x","y"])}},draw:function(t){var r=t._fullLayout,n="legend"+r._uid;if(r._infolayer&&t.calcdata){t._legendMouseDownTime||(t._legendMouseDownTime=0);var i=r.legend,a=r.showlegend&&function(t,e){var r,n,i={},a=[],o=!1,s={},l=0;function u(t,r){if(""!==t&&jd.isGrouped(e))-1===a.indexOf(t)?(a.push(t),o=!0,i[t]=[[r]]):i[t].push([r]);else{var n="~~i"+l;a.push(n),i[n]=[[r]],l++}}for(r=0;rg?function(t){var e=t._fullLayout.legend,r="left";Vd.isRightAnchor(e)?r="right":Vd.isCenterAnchor(e)&&(r="center"),_n.autoMargin(t,"legend",{x:e.x,y:.5,l:e._width*Jd[r],r:e._width*Kd[r],b:0,t:0})}(t):rg(t);var v=r._size,m=v.l+v.w*i.x,y=v.t+v.h*(1-i.y);Vd.isRightAnchor(i)?m-=i._width:Vd.isCenterAnchor(i)&&(m-=i._width/2),Vd.isBottomAnchor(i)?y-=i._height:Vd.isMiddleAnchor(i)&&(y-=i._height/2);var x=i._width,b=v.w;x>b?(m=v.l,x=b):(m+x>d&&(m=d-x),m<0&&(m=0),x=Math.min(d-m,i._width));var _,w,M,A,k=i._height,T=v.h;if(k>T?(y=v.t,k=T):(y+k>g&&(y=g-k),y<0&&(y=0),k=Math.min(g-y,i._height)),Sr.setTranslate(s,m,y),h.on(".drag",null),s.on("wheel",null),i._height<=k||t._context.staticPlot)u.attr({width:x-i.borderwidth,height:k-i.borderwidth,x:i.borderwidth/2,y:i.borderwidth/2}),Sr.setTranslate(c,0,0),l.select("rect").attr({width:x-2*i.borderwidth,height:k-2*i.borderwidth,x:i.borderwidth,y:i.borderwidth}),Sr.setClipUrl(c,n),Sr.setRect(h,0,0,0,0),delete i._scrollY;else{var S,E,C=Math.max(Ud.scrollBarMinHeight,k*k/i._height),L=k-C-2*Ud.scrollBarMargin,z=i._height-k,I=L/z,D=Math.min(i._scrollY||0,z);u.attr({width:x-2*i.borderwidth+Ud.scrollBarWidth+Ud.scrollBarMargin,height:k-i.borderwidth,x:i.borderwidth/2,y:i.borderwidth/2}),l.select("rect").attr({width:x-2*i.borderwidth+Ud.scrollBarWidth+Ud.scrollBarMargin,height:k-2*i.borderwidth,x:i.borderwidth,y:i.borderwidth+D}),Sr.setClipUrl(c,n),R(D,C,I),s.on("wheel",function(){R(D=ne.constrain(i._scrollY+e.event.deltaY/L*z,0,z),C,I),0!==D&&D!==z&&e.event.preventDefault()});var O=e.behavior.drag().on("dragstart",function(){S=e.event.sourceEvent.clientY,E=D}).on("drag",function(){var t=e.event.sourceEvent;2===t.buttons||t.ctrlKey||R(D=ne.constrain((t.clientY-S)/I+E,0,z),C,I)});h.call(O)}t._context.edits.legendPosition&&(s.classed("cursor-move",!0),Ua.init({element:s.node(),gd:t,prepFn:function(){var t=Sr.getTranslate(s);M=t.x,A=t.y},moveFn:function(t,e){var r=M+t,n=A+e;Sr.setTranslate(s,r,n),_=Ua.align(r,0,v.l,v.l+v.w,i.xanchor),w=Ua.align(n,0,v.t+v.h,v.t,i.yanchor)},doneFn:function(){void 0!==_&&void 0!==w&&P.call("relayout",t,{"legend.x":_,"legend.y":w})},clickFn:function(e,n){var i=r._infolayer.selectAll("g.traces").filter(function(){var t=this.getBoundingClientRect();return n.clientX>=t.left&&n.clientX<=t.right&&n.clientY>=t.top&&n.clientY<=t.bottom});i.size()>0&&(1===e?s._clickTimeout=setTimeout(function(){Hd(i,t,e)},Qd):2===e&&(s._clickTimeout&&clearTimeout(s._clickTimeout),Hd(i,t,e)))}}))}function R(e,r,n){i._scrollY=t._fullLayout.legend._scrollY=e,Sr.setTranslate(c,0,-e),Sr.setRect(h,x,Ud.scrollBarMargin+e*n,Ud.scrollBarWidth,r),l.select("rect").attr({y:i.borderwidth+e})}},style:Xd},ig={step:{valType:"enumerated",values:["month","year","day","hour","minute","second","all"],dflt:"month",editType:"plot"},stepmode:{valType:"enumerated",values:["backward","todate"],dflt:"backward",editType:"plot"},count:{valType:"number",min:0,dflt:1,editType:"plot"},label:{valType:"string",editType:"plot"},editType:"plot"},ag=m.extendFlat,og={visible:{valType:"boolean",editType:"plot"},buttons:ig=ag(ig,{_isLinkedToArray:"button"}),x:{valType:"number",min:-2,max:3,editType:"plot"},xanchor:{valType:"enumerated",values:["auto","left","center","right"],dflt:"left",editType:"plot"},y:{valType:"number",min:-2,max:3,editType:"plot"},yanchor:{valType:"enumerated",values:["auto","top","middle","bottom"],dflt:"bottom",editType:"plot"},font:T({editType:"plot"}),bgcolor:{valType:"color",dflt:C.lightLine,editType:"plot"},activecolor:{valType:"color",editType:"plot"},bordercolor:{valType:"color",dflt:C.defaultLine,editType:"plot"},borderwidth:{valType:"number",min:0,dflt:0,editType:"plot"},editType:"plot"},sg={yPad:.02,minButtonWidth:30,rx:3,ry:3,lightAmount:25,darkAmount:10};var lg=function(t,r){var n=t._name,i={};if("all"===r.step)i[n+".autorange"]=!0;else{var a=function(t,r){var n,i=t.range,a=new Date(t.r2l(i[1])),o=r.step,s=r.count;switch(r.stepmode){case"backward":n=t.l2r(+e.time[o].utc.offset(a,-s));break;case"todate":var l=e.time[o].utc.offset(a,-s);n=t.l2r(+e.time[o].utc.ceil(l))}var u=i[1];return[n,u]}(t,r);i[n+".range[0]"]=a[0],i[n+".range[1]"]=a[1]}return i};var ug=Qe.LINE_SPACING,cg=Qe.FROM_TL,hg=Qe.FROM_BR;function fg(t){return t._id}function pg(t,e,r){var n=t.selectAll("rect").data([0]);n.enter().append("rect").classed("selector-rect",!0),n.attr("shape-rendering","crispEdges"),n.attr({rx:sg.rx,ry:sg.ry}),n.call(Oe.stroke,e.bordercolor).call(Oe.fill,function(t,e){return e._isActive||e._isHovered?t.activecolor:t.bgcolor}(e,r)).style("stroke-width",e.borderwidth+"px")}function dg(t,e,r,n){var i,a=t.selectAll("text").data([0]);a.enter().append("text").classed("selector-text",!0).classed("user-select-none",!0),a.attr("text-anchor","middle"),a.call(Sr.font,e.font).text((i=r,i.label?i.label:"all"===i.step?"all":i.count+i.step.charAt(0))).call(function(t){er.convertToTspans(t,n)})}var gg={moduleType:"component",name:"rangeselector",schema:{subplots:{xaxis:{rangeselector:og}}},layoutAttributes:og,handleDefaults:function(t,e,r,n,i){var a=t.rangeselector||{},o=e.rangeselector={};function s(t,e){return ne.coerce(a,o,og,t,e)}if(s("visible",function(t,e,r){var n,i,a=t.buttons||[],o=e.buttons=[];function s(t,e){return ne.coerce(n,i,ig,t,e)}for(var l=0;l0)){var l=function(t,e,r){for(var n=r.filter(function(r){return e[r].anchor===t._id}),i=0,a=0;ah&&(h=u)));return h>=c?[c,h]:void 0}}var Og=function(t,e,r,n,i){function a(r,n){return ne.coerce(t,e,zg,r,n)}if(n=n||{},!a("visible",!(i=i||{}).itemIsNotPlainObject))return e;a("layer"),a("opacity"),a("fillcolor"),a("line.color"),a("line.width"),a("line.dash");for(var o=a("type",t.path?"path":"rect"),s=["x","y"],l=0;l<2;l++){var u=s[l],c={_fullLayout:r},h=ri.coerceRef(t,e,c,u,"","paper");if("path"!==o){var f,p,d;"paper"!==h?(f=ri.getFromId(c,h),d=Ig.rangeToShapePosition(f),p=Ig.shapePositionToRange(f)):p=d=ne.identity;var g=u+"0",v=u+"1",m=t[g],y=t[v];t[g]=p(t[g],!0),t[v]=p(t[v],!0),ri.coercePosition(e,c,a,h,g,.25),ri.coercePosition(e,c,a,h,v,.75),e[g]=d(e[g]),e[v]=d(e[v]),t[g]=m,t[v]=y}}return"path"===o?a("path"):ne.noneOrAll(t,e,["x0","x1","y0","y1"]),e},Rg={draw:function(t){var e=t._fullLayout;e._shapeUpperLayer.selectAll("path").remove(),e._shapeLowerLayer.selectAll("path").remove(),e._shapeSubplotLayers.selectAll("path").remove();for(var r=0;rO&&n>R&&!t.shiftKey?Ua.getCursor(i/r,1-a/n):"move";Ka(e,o),D=o.split("-")[0]}function j(n,p){if("path"===r.type){var d=function(t){return z(C(t)+n)};S&&"date"===S.type&&(d=Ig.encodeDate(d));var g=function(t){return I(L(t)+p)};E&&"date"===E.type&&(g=Ig.encodeDate(g)),r.path=Ng(k,d,g),i[T]=r.path}else i[u]=r.x0=z(a+n),i[c]=r.y0=I(o+p),i[h]=r.x1=z(s+n),i[f]=r.y1=I(l+p);e.attr("d",Bg(t,r))}function V(n,a){if("path"===r.type){var o=function(t){return z(C(t)+n)};S&&"date"===S.type&&(o=Ig.encodeDate(o));var s=function(t){return I(L(t)+a)};E&&"date"===E.type&&(s=Ig.encodeDate(s)),r.path=Ng(k,o,s),i[T]=r.path}else{var l=~D.indexOf("n")?p+a:p,u=~D.indexOf("s")?d+a:d,c=~D.indexOf("w")?g+n:g,h=~D.indexOf("e")?v+n:v;u-l>R&&(i[m]=r[_]=I(l),i[y]=r[w]=I(u)),h-c>O&&(i[x]=r[M]=z(c),i[b]=r[A]=z(h))}e.attr("d",Bg(t,r))}Ua.init(F),e.node().onmousemove=N}(t,o,n,e)}}function Bg(t,e){var r,n,i,a,o=e.type,s=ri.getFromId(t,e.xref),l=ri.getFromId(t,e.yref),u=t._fullLayout._size;if(s?(r=Ig.shapePositionToRange(s),n=function(t){return s._offset+s.r2p(r(t,!0))}):n=function(t){return u.l+u.w*t},l?(i=Ig.shapePositionToRange(l),a=function(t){return l._offset+l.r2p(i(t,!0))}):a=function(t){return u.t+u.h*(1-t)},"path"===o)return s&&"date"===s.type&&(n=Ig.decodeDate(n)),l&&"date"===l.type&&(a=Ig.decodeDate(a)),function(t,e,r){return t.replace(Pg.segmentRE,function(t){var n=0,i=t.charAt(0),a=Pg.paramIsX[i],o=Pg.paramIsY[i],s=Pg.numParams[i],l=t.substr(1).replace(Pg.paramRE,function(t){return a[n]?t=e(t):o[n]&&(t=r(t)),++n>s&&(t="X"),t});return n>s&&(l=l.replace(/[\s,]*X.*/,""),ne.log("Ignoring extra params in segment "+t)),i+l})}(e.path,n,a);var c=n(e.x0),h=n(e.x1),f=a(e.y0),p=a(e.y1);if("line"===o)return"M"+c+","+f+"L"+h+","+p;if("rect"===o)return"M"+c+","+f+"H"+h+"V"+p+"H"+c+"Z";var d=(c+h)/2,g=(f+p)/2,v=Math.abs(d-c),m=Math.abs(g-f),y="A"+v+","+m,x=d+v+","+g;return"M"+x+y+" 0 1,1 "+(d+","+(g-m))+y+" 0 0,1 "+x+"Z"}function Ng(t,e,r){return t.replace(Pg.segmentRE,function(t){var n=0,i=t.charAt(0),a=Pg.paramIsX[i],o=Pg.paramIsY[i],s=Pg.numParams[i];return i+t.substr(1).replace(Pg.paramRE,function(t){return n>=s?t:(a[n]?t=e(t):o[n]&&(t=r(t)),n++,t)})})}var jg={moduleType:"component",name:"shapes",layoutAttributes:zg,supplyLayoutDefaults:function(t,e){ld(t,e,{name:"shapes",handleItemDefaults:Og})},includeBasePlot:ud("shapes"),calcAutorange:function(t){var e=t._fullLayout,r=ne.filterVisible(e.shapes);if(r.length&&t._fullData.length)for(var n=0;n0)&&(n("active"),n("x"),n("y"),ne.noneOrAll(t,e,["x","y"]),n("xanchor"),n("yanchor"),n("len"),n("lenmode"),n("pad.t"),n("pad.r"),n("pad.b"),n("pad.l"),ne.coerceFont(n,"font",r.font),n("currentvalue.visible")&&(n("currentvalue.xanchor"),n("currentvalue.prefix"),n("currentvalue.suffix"),n("currentvalue.offset"),ne.coerceFont(n,"currentvalue.font",e.font)),n("transition.duration"),n("transition.easing"),n("bgcolor"),n("activebgcolor"),n("bordercolor"),n("borderwidth"),n("ticklen"),n("tickwidth"),n("tickcolor"),n("minorticklen"))}var Xg=Qe.LINE_SPACING,Zg=Qe.FROM_TL,Jg=Qe.FROM_BR;function Kg(t){return t._index}function Qg(t,r){var n=Sr.tester.selectAll("g."+Vg.labelGroupClass).data(r.steps);n.enter().append("g").classed(Vg.labelGroupClass,!0);var i=0,a=0;n.each(function(t){var n=ev(e.select(this),{step:t},r).node();if(n){var o=Sr.bBox(n);a=Math.max(a,o.height),i=Math.max(i,o.width)}}),n.remove();var o=r._dims={};o.inputAreaWidth=Math.max(Vg.railWidth,Vg.gripHeight);var s=t._fullLayout._size;o.lx=s.l+s.w*r.x,o.ly=s.t+s.h*(1-r.y),"fraction"===r.lenmode?o.outerLength=Math.round(s.w*r.len):o.outerLength=r.len,o.inputAreaStart=0,o.inputAreaLength=Math.round(o.outerLength-r.pad.l-r.pad.r);var l=(o.inputAreaLength-2*Vg.stepInset)/(r.steps.length-1),u=i+Vg.labelPadding;if(o.labelStride=Math.max(1,Math.ceil(u/l)),o.labelHeight=a,o.currentValueMaxWidth=0,o.currentValueHeight=0,o.currentValueTotalHeight=0,o.currentValueMaxLines=1,r.currentvalue.visible){var c=Sr.tester.append("g");n.each(function(t){var e=$g(c,r,t.label),n=e.node()&&Sr.bBox(e.node())||{width:0,height:0},i=er.lineCount(e);o.currentValueMaxWidth=Math.max(o.currentValueMaxWidth,Math.ceil(n.width)),o.currentValueHeight=Math.max(o.currentValueHeight,Math.ceil(n.height)),o.currentValueMaxLines=Math.max(o.currentValueMaxLines,i)}),o.currentValueTotalHeight=o.currentValueHeight+r.currentvalue.offset,c.remove()}o.height=o.currentValueTotalHeight+Vg.tickOffset+r.ticklen+Vg.labelOffset+o.labelHeight+r.pad.t+r.pad.b;var h="left";Vd.isRightAnchor(r)&&(o.lx-=o.outerLength,h="right"),Vd.isCenterAnchor(r)&&(o.lx-=o.outerLength/2,h="center");var f="top";Vd.isBottomAnchor(r)&&(o.ly-=o.height,f="bottom"),Vd.isMiddleAnchor(r)&&(o.ly-=o.height/2,f="middle"),o.outerLength=Math.ceil(o.outerLength),o.height=Math.ceil(o.height),o.lx=Math.round(o.lx),o.ly=Math.round(o.ly),_n.autoMargin(t,Vg.autoMarginIdRoot+r._index,{x:r.x,y:r.y,l:o.outerLength*Zg[h],r:o.outerLength*Jg[h],b:o.height*Jg[f],t:o.height*Zg[f]})}function $g(t,e,r){if(e.currentvalue.visible){var n,i,a=t.selectAll("text").data([0]),o=e._dims;switch(e.currentvalue.xanchor){case"right":n=o.inputAreaLength-Vg.currentValueInset-o.currentValueMaxWidth,i="left";break;case"center":n=.5*o.inputAreaLength,i="middle";break;default:n=Vg.currentValueInset,i="left"}a.enter().append("text").classed(Vg.labelClass,!0).classed("user-select-none",!0).attr({"text-anchor":i,"data-notex":1});var s=e.currentvalue.prefix?e.currentvalue.prefix:"";if("string"==typeof r)s+=r;else s+=e.steps[e.active].label;e.currentvalue.suffix&&(s+=e.currentvalue.suffix),a.call(Sr.font,e.currentvalue.font).text(s).call(er.convertToTspans,e._gd);var l=er.lineCount(a),u=(o.currentValueMaxLines+1-l)*e.currentvalue.font.size*Xg;return er.positionText(a,n,u),a}}function tv(t,e,r){var n=t.selectAll("rect."+Vg.gripRectClass).data([0]);n.enter().append("rect").classed(Vg.gripRectClass,!0).call(av,e,t,r).style("pointer-events","all"),n.attr({width:Vg.gripWidth,height:Vg.gripHeight,rx:Vg.gripRadius,ry:Vg.gripRadius}).call(Oe.stroke,r.bordercolor).call(Oe.fill,r.bgcolor).style("stroke-width",r.borderwidth+"px")}function ev(t,e,r){var n=t.selectAll("text").data([0]);return n.enter().append("text").classed(Vg.labelClass,!0).classed("user-select-none",!0).attr({"text-anchor":"middle","data-notex":1}),n.call(Sr.font,r.font).text(e.step.label).call(er.convertToTspans,r._gd),n}function rv(t,r){var n=t.selectAll("g."+Vg.labelsClass).data([0]),i=r._dims;n.enter().append("g").classed(Vg.labelsClass,!0);var a=n.selectAll("g."+Vg.labelGroupClass).data(i.labelSteps);a.enter().append("g").classed(Vg.labelGroupClass,!0),a.exit().remove(),a.each(function(t){var n=e.select(this);n.call(ev,t,r),Sr.setTranslate(n,lv(r,t.fraction),Vg.tickOffset+r.ticklen+r.font.size*Xg+Vg.labelOffset+i.currentValueTotalHeight)})}function nv(t,e,r,n,i){var a=Math.round(n*(r.steps.length-1));a!==r.active&&iv(t,e,r,a,!0,i)}function iv(t,e,r,n,i,a){var o=r.active;r._input.active=r.active=n;var s=r.steps[r.active];e.call(sv,r,r.active/(r.steps.length-1),a),e.call($g,r),t.emit("plotly_sliderchange",{slider:r,step:r.steps[r.active],interaction:i,previousActive:o}),s&&s.method&&i&&(e._nextMethod?(e._nextMethod.step=s,e._nextMethod.doCallback=i,e._nextMethod.doTransition=a):(e._nextMethod={step:s,doCallback:i,doTransition:a},e._nextMethodRaf=window.requestAnimationFrame(function(){var r=e._nextMethod.step;r.method&&(r.execute&&_n.executeAPICommand(t,r.method,r.args),e._nextMethod=null,e._nextMethodRaf=null)})))}function av(t,r,n){var i=n.node(),a=e.select(r);function o(){return n.data()[0]}t.on("mousedown",function(){var t=o();r.emit("plotly_sliderstart",{slider:t});var s=n.select("."+Vg.gripRectClass);e.event.stopPropagation(),e.event.preventDefault(),s.call(Oe.fill,t.activebgcolor);var l=uv(t,e.mouse(i)[0]);nv(r,n,t,l,!0),t._dragging=!0,a.on("mousemove",function(){var t=o(),a=uv(t,e.mouse(i)[0]);nv(r,n,t,a,!1)}),a.on("mouseup",function(){var t=o();t._dragging=!1,s.call(Oe.fill,t.bgcolor),a.on("mouseup",null),a.on("mousemove",null),r.emit("plotly_sliderend",{slider:t,step:t.steps[t.active]})})})}function ov(t,r){var n=t.selectAll("rect."+Vg.tickRectClass).data(r.steps),i=r._dims;n.enter().append("rect").classed(Vg.tickRectClass,!0),n.exit().remove(),n.attr({width:r.tickwidth+"px","shape-rendering":"crispEdges"}),n.each(function(t,n){var a=n%i.labelStride==0,o=e.select(this);o.attr({height:a?r.ticklen:r.minorticklen}).call(Oe.fill,r.tickcolor),Sr.setTranslate(o,lv(r,n/(r.steps.length-1))-.5*r.tickwidth,(a?Vg.tickOffset:Vg.minorTickOffset)+i.currentValueTotalHeight)})}function sv(t,e,r,n){var i=t.select("rect."+Vg.gripRectClass),a=lv(e,r);if(!e._invokingCommand){var o=i;n&&e.transition.duration>0&&(o=o.transition().duration(e.transition.duration).ease(e.transition.easing)),o.attr("transform","translate("+(a-.5*Vg.gripWidth)+","+e._dims.currentValueTotalHeight+")")}}function lv(t,e){var r=t._dims;return r.inputAreaStart+Vg.stepInset+(r.inputAreaLength-2*Vg.stepInset)*Math.min(1,Math.max(0,e))}function uv(t,e){var r=t._dims;return Math.min(1,Math.max(0,(e-Vg.stepInset-r.inputAreaStart)/(r.inputAreaLength-2*Vg.stepInset-2*r.inputAreaStart)))}function cv(t,e,r){var n=t.selectAll("rect."+Vg.railTouchRectClass).data([0]),i=r._dims;n.enter().append("rect").classed(Vg.railTouchRectClass,!0).call(av,e,t,r).style("pointer-events","all"),n.attr({width:i.inputAreaLength,height:Math.max(i.inputAreaWidth,Vg.tickOffset+r.ticklen+i.labelHeight)}).call(Oe.fill,r.bgcolor).attr("opacity",0),Sr.setTranslate(n,0,i.currentValueTotalHeight)}function hv(t,e){var r=t.selectAll("rect."+Vg.railRectClass).data([0]),n=e._dims;r.enter().append("rect").classed(Vg.railRectClass,!0);var i=n.inputAreaLength-2*Vg.railInset;r.attr({width:i,height:Vg.railWidth,rx:Vg.railRadius,ry:Vg.railRadius,"shape-rendering":"crispEdges"}).call(Oe.stroke,e.bordercolor).call(Oe.fill,e.bgcolor).style("stroke-width",e.borderwidth+"px"),Sr.setTranslate(r,Vg.railInset,.5*(n.inputAreaWidth-Vg.railWidth)+n.currentValueTotalHeight)}var fv={moduleType:"component",name:Vg.name,layoutAttributes:Hg,supplyLayoutDefaults:function(t,e){ld(t,e,{name:Gg,handleItemDefaults:Yg})},draw:function(t){var r=t._fullLayout,n=function(t,e){for(var r=t[Vg.name],n=[],i=0;i0?[0]:[]);if(i.enter().append("g").classed(Vg.containerClassName,!0).style("cursor","ew-resize"),i.exit().remove(),i.exit().size()&&function(t){for(var e=t._fullLayout._pushmargin||{},r=Object.keys(e),n=0;n=r.steps.length&&(r.active=0),e.call($g,r).call(hv,r).call(rv,r).call(ov,r).call(cv,t,r).call(tv,t,r);var n=r._dims;Sr.setTranslate(e,n.lx+r.pad.l,n.ly+r.pad.t),e.call(sv,r,r.active/(r.steps.length-1),!1),e.call($g,r)}(t,e.select(this),r)}})}}},pv=m.extendFlat,dv=(0,ye.overrideAll)({_isLinkedToArray:"updatemenu",_arrayAttrRegexps:[/^updatemenus\[(0|[1-9][0-9]+)\]\.buttons/],visible:{valType:"boolean"},type:{valType:"enumerated",values:["dropdown","buttons"],dflt:"dropdown"},direction:{valType:"enumerated",values:["left","right","up","down"],dflt:"down"},active:{valType:"integer",min:-1,dflt:0},showactive:{valType:"boolean",dflt:!0},buttons:{_isLinkedToArray:"button",method:{valType:"enumerated",values:["restyle","relayout","animate","update","skip"],dflt:"restyle"},args:{valType:"info_array",freeLength:!0,items:[{valType:"any"},{valType:"any"},{valType:"any"}]},label:{valType:"string",dflt:""},execute:{valType:"boolean",dflt:!0}},x:{valType:"number",min:-2,max:3,dflt:-.05},xanchor:{valType:"enumerated",values:["auto","left","center","right"],dflt:"right"},y:{valType:"number",min:-2,max:3,dflt:1},yanchor:{valType:"enumerated",values:["auto","top","middle","bottom"],dflt:"top"},pad:pv({},Ug,{}),font:T({}),bgcolor:{valType:"color"},bordercolor:{valType:"color",dflt:C.borderLine},borderwidth:{valType:"number",min:0,dflt:1,editType:"arraydraw"}},"arraydraw","from-root"),gv={name:"updatemenus",containerClassName:"updatemenu-container",headerGroupClassName:"updatemenu-header-group",headerClassName:"updatemenu-header",headerArrowClassName:"updatemenu-header-arrow",dropdownButtonGroupClassName:"updatemenu-dropdown-button-group",dropdownButtonClassName:"updatemenu-dropdown-button",buttonClassName:"updatemenu-button",itemRectClassName:"updatemenu-item-rect",itemTextClassName:"updatemenu-item-text",menuIndexAttrName:"updatemenu-active-index",autoMarginIdRoot:"updatemenu-",blankHeaderOpts:{label:" "},minWidth:30,minHeight:30,textPadX:24,arrowPadX:16,rx:2,ry:2,textOffsetX:12,textOffsetY:3,arrowOffsetX:4,gapButtonHeader:5,gapButton:2,activeColor:"#F4FAFF",hoverColor:"#F4FAFF",arrowSymbol:{left:"\u25c4",right:"\u25ba",up:"\u25b2",down:"\u25bc"}},vv=gv.name,mv=dv.buttons;function yv(t,e,r){function n(r,n){return ne.coerce(t,e,dv,r,n)}n("visible",function(t,e){var r,n,i=t.buttons||[],a=e.buttons=[];function o(t,e){return ne.coerce(r,n,mv,t,e)}for(var s=0;s0)&&(n("active"),n("direction"),n("type"),n("showactive"),n("x"),n("y"),ne.noneOrAll(t,e,["x","y"]),n("xanchor"),n("yanchor"),n("pad.t"),n("pad.r"),n("pad.b"),n("pad.l"),ne.coerceFont(n,"font",r.font),n("bgcolor",r.paper_bgcolor),n("bordercolor"),n("borderwidth"))}var xv=bv;function bv(t,e,r){this.gd=t,this.container=e,this.id=r,this.position=null,this.translateX=null,this.translateY=null,this.hbar=null,this.vbar=null,this.bg=this.container.selectAll("rect.scrollbox-bg").data([0]),this.bg.exit().on(".drag",null).on("wheel",null).remove(),this.bg.enter().append("rect").classed("scrollbox-bg",!0).style("pointer-events","all").attr({opacity:0,x:0,y:0,width:0,height:0})}bv.barWidth=2,bv.barLength=20,bv.barRadius=2,bv.barPad=1,bv.barColor="#808BA4",bv.prototype.enable=function(t,r,n){var i=this.gd._fullLayout,a=i.width,o=i.height;this.position=t;var s,l,u,c,h=this.position.l,f=this.position.w,p=this.position.t,d=this.position.h,g=this.position.direction,v="down"===g,m="left"===g,y="up"===g,x=f,b=d;v||m||"right"===g||y||(this.position.direction="down",v=!0),v||y?(l=(s=h)+x,v?(u=p,b=(c=Math.min(u+b,o))-u):b=(c=p+b)-(u=Math.max(c-b,0))):(c=(u=p)+b,m?x=(l=h+x)-(s=Math.max(l-x,0)):(s=h,x=(l=Math.min(s+x,a))-s)),this._box={l:s,t:u,w:x,h:b};var _=f>x,w=bv.barLength+2*bv.barPad,M=bv.barWidth+2*bv.barPad,A=h,k=p+d;k+M>o&&(k=o-M);var T=this.container.selectAll("rect.scrollbar-horizontal").data(_?[0]:[]);T.exit().on(".drag",null).remove(),T.enter().append("rect").classed("scrollbar-horizontal",!0).call(Oe.fill,bv.barColor),_?(this.hbar=T.attr({rx:bv.barRadius,ry:bv.barRadius,x:A,y:k,width:w,height:M}),this._hbarXMin=A+w/2,this._hbarTranslateMax=x-w):(delete this.hbar,delete this._hbarXMin,delete this._hbarTranslateMax);var S=d>b,E=bv.barWidth+2*bv.barPad,C=bv.barLength+2*bv.barPad,L=h+f,z=p;L+E>a&&(L=a-E);var P=this.container.selectAll("rect.scrollbar-vertical").data(S?[0]:[]);P.exit().on(".drag",null).remove(),P.enter().append("rect").classed("scrollbar-vertical",!0).call(Oe.fill,bv.barColor),S?(this.vbar=P.attr({rx:bv.barRadius,ry:bv.barRadius,x:L,y:z,width:E,height:C}),this._vbarYMin=z+C/2,this._vbarTranslateMax=b-C):(delete this.vbar,delete this._vbarYMin,delete this._vbarTranslateMax);var I=this.id,D=s-.5,O=S?l+E+.5:l+.5,R=u-.5,F=_?c+M+.5:c+.5,B=i._topdefs.selectAll("#"+I).data(_||S?[0]:[]);if(B.exit().remove(),B.enter().append("clipPath").attr("id",I).append("rect"),_||S?(this._clipRect=B.select("rect").attr({x:Math.floor(D),y:Math.floor(R),width:Math.ceil(O)-Math.floor(D),height:Math.ceil(F)-Math.floor(R)}),this.container.call(Sr.setClipUrl,I),this.bg.attr({x:h,y:p,width:f,height:d})):(this.bg.attr({width:0,height:0}),this.container.on("wheel",null).on(".drag",null).call(Sr.setClipUrl,null),delete this._clipRect),_||S){var N=e.behavior.drag().on("dragstart",function(){e.event.sourceEvent.preventDefault()}).on("drag",this._onBoxDrag.bind(this));this.container.on("wheel",null).on("wheel",this._onBoxWheel.bind(this)).on(".drag",null).call(N);var j=e.behavior.drag().on("dragstart",function(){e.event.sourceEvent.preventDefault(),e.event.sourceEvent.stopPropagation()}).on("drag",this._onBarDrag.bind(this));_&&this.hbar.on(".drag",null).call(j),S&&this.vbar.on(".drag",null).call(j)}this.setTranslate(r,n)},bv.prototype.disable=function(){(this.hbar||this.vbar)&&(this.bg.attr({width:0,height:0}),this.container.on("wheel",null).on(".drag",null).call(Sr.setClipUrl,null),delete this._clipRect),this.hbar&&(this.hbar.on(".drag",null),this.hbar.remove(),delete this.hbar,delete this._hbarXMin,delete this._hbarTranslateMax),this.vbar&&(this.vbar.on(".drag",null),this.vbar.remove(),delete this.vbar,delete this._vbarYMin,delete this._vbarTranslateMax)},bv.prototype._onBoxDrag=function(){var t=this.translateX,r=this.translateY;this.hbar&&(t-=e.event.dx),this.vbar&&(r-=e.event.dy),this.setTranslate(t,r)},bv.prototype._onBoxWheel=function(){var t=this.translateX,r=this.translateY;this.hbar&&(t+=e.event.deltaY),this.vbar&&(r+=e.event.deltaY),this.setTranslate(t,r)},bv.prototype._onBarDrag=function(){var t=this.translateX,r=this.translateY;if(this.hbar){var n=t+this._hbarXMin,i=n+this._hbarTranslateMax;t=(ne.constrain(e.event.x,n,i)-n)/(i-n)*(this.position.w-this._box.w)}if(this.vbar){var a=r+this._vbarYMin,o=a+this._vbarTranslateMax;r=(ne.constrain(e.event.y,a,o)-a)/(o-a)*(this.position.h-this._box.h)}this.setTranslate(t,r)},bv.prototype.setTranslate=function(t,e){var r=this.position.w-this._box.w,n=this.position.h-this._box.h;if(t=ne.constrain(t||0,0,r),e=ne.constrain(e||0,0,n),this.translateX=t,this.translateY=e,this.container.call(Sr.setTranslate,this._box.l-this.position.l-t,this._box.t-this.position.t-e),this._clipRect&&this._clipRect.attr({x:Math.floor(this.position.l+t-.5),y:Math.floor(this.position.t+e-.5)}),this.hbar){var i=t/r;this.hbar.call(Sr.setTranslate,t+i*this._hbarTranslateMax,e)}if(this.vbar){var a=e/n;this.vbar.call(Sr.setTranslate,t,e+a*this._vbarTranslateMax)}};var _v=Qe.LINE_SPACING;function wv(t){return t._index}function Mv(t,e){return+t.attr(gv.menuIndexAttrName)===e._index}function Av(t,e,r,n,i,a,o,s){e._input.active=e.active=o,"buttons"===e.type?Tv(t,n,null,null,e):"dropdown"===e.type&&(i.attr(gv.menuIndexAttrName,"-1"),kv(t,n,i,a,e),s||Tv(t,n,i,a,e))}function kv(t,e,r,n,i){var a=e.selectAll("g."+gv.headerClassName).data([0]),o=i._dims;a.enter().append("g").classed(gv.headerClassName,!0).style("pointer-events","all");var s=i.active,l=i.buttons[s]||gv.blankHeaderOpts,u={y:i.pad.t,yPad:0,x:i.pad.l,xPad:0,index:0},c={width:o.headerWidth,height:o.headerHeight};a.call(Sv,i,l,t).call(Dv,i,u,c);var h=e.selectAll("text."+gv.headerArrowClassName).data([0]);h.enter().append("text").classed(gv.headerArrowClassName,!0).classed("user-select-none",!0).attr("text-anchor","end").call(Sr.font,i.font).text(gv.arrowSymbol[i.direction]),h.attr({x:o.headerWidth-gv.arrowOffsetX+i.pad.l,y:o.headerHeight/2+gv.textOffsetY+i.pad.t}),a.on("click",function(){r.call(Ov),r.attr(gv.menuIndexAttrName,Mv(r,i)?-1:String(i._index)),Tv(t,e,r,n,i)}),a.on("mouseover",function(){a.call(zv)}),a.on("mouseout",function(){a.call(Pv,i)}),Sr.setTranslate(e,o.lx,o.ly)}function Tv(t,r,n,i,a){n||(n=r).attr("pointer-events","all");var o=function(t){return-1==+t.attr(gv.menuIndexAttrName)}(n)&&"buttons"!==a.type?[]:a.buttons,s="dropdown"===a.type?gv.dropdownButtonClassName:gv.buttonClassName,l=n.selectAll("g."+s).data(o),u=l.enter().append("g").classed(s,!0),c=l.exit();"dropdown"===a.type?(u.attr("opacity","0").transition().attr("opacity","1"),c.transition().attr("opacity","0").remove()):c.remove();var h=0,f=0,p=a._dims,d=-1!==["up","down"].indexOf(a.direction);"dropdown"===a.type&&(d?f=p.headerHeight+gv.gapButtonHeader:h=p.headerWidth+gv.gapButtonHeader),"dropdown"===a.type&&"up"===a.direction&&(f=-gv.gapButtonHeader+gv.gapButton-p.openHeight),"dropdown"===a.type&&"left"===a.direction&&(h=-gv.gapButtonHeader+gv.gapButton-p.openWidth);var g={x:p.lx+h+a.pad.l,y:p.ly+f+a.pad.t,yPad:gv.gapButton,xPad:gv.gapButton,index:0},v={l:g.x+a.borderwidth,t:g.y+a.borderwidth};l.each(function(o,s){var u=e.select(this);u.call(Sv,a,o,t).call(Dv,a,g),u.on("click",function(){e.event.defaultPrevented||(Av(t,a,0,r,n,i,s),o.execute&&_n.executeAPICommand(t,o.method,o.args),t.emit("plotly_buttonclicked",{menu:a,button:o,active:a.active}))}),u.on("mouseover",function(){u.call(zv)}),u.on("mouseout",function(){u.call(Pv,a),l.call(Lv,a)})}),l.call(Lv,a),d?(v.w=Math.max(p.openWidth,p.headerWidth),v.h=g.y-v.t):(v.w=g.x-v.l,v.h=Math.max(p.openHeight,p.headerHeight)),v.direction=a.direction,i&&(l.size()?function(t,e,r,n,i,a){var o,s,l,u=i.direction,c="up"===u||"down"===u,h=i._dims,f=i.active;if(c)for(s=0,l=0;l0?[0]:[]);if(i.enter().append("g").classed(gv.containerClassName,!0).style("cursor","pointer"),i.exit().remove(),i.exit().size()&&function(t){for(var e=t._fullLayout._pushmargin||{},r=Object.keys(e),n=0;nb.queueLength&&(t.undoQueue.queue.shift(),t.undoQueue.index--))},startSequence:function(t){t.undoQueue=t.undoQueue||{index:0,queue:[],sequence:!1},t.undoQueue.sequence=!0,t.undoQueue.beginSequence=!0},stopSequence:function(t){t.undoQueue=t.undoQueue||{index:0,queue:[],sequence:!1},t.undoQueue.sequence=!1,t.undoQueue.beginSequence=!1},undo:function(t){var e,r;if(t.framework&&t.framework.isPolar)t.framework.undo();else if(!(void 0===t.undoQueue||isNaN(t.undoQueue.index)||t.undoQueue.index<=0)){for(t.undoQueue.index--,e=t.undoQueue.queue[t.undoQueue.index],t.undoQueue.inSequence=!0,r=0;r=t.undoQueue.queue.length)){for(e=t.undoQueue.queue[t.undoQueue.index],t.undoQueue.inSequence=!0,r=0;r0&&ne.log("Clearing previous rejected promises from queue."),t._promises=[]},Vv.cleanLayout=function(t){var e,r;t||(t={}),t.xaxis1&&(t.xaxis||(t.xaxis=t.xaxis1),delete t.xaxis1),t.yaxis1&&(t.yaxis||(t.yaxis=t.yaxis1),delete t.yaxis1),t.scene1&&(t.scene||(t.scene=t.scene1),delete t.scene1);var n=(_n.subplotsRegistry.cartesian||{}).attrRegex,i=(_n.subplotsRegistry.gl3d||{}).attrRegex,a=Object.keys(t);for(e=0;e3?(x.x=1.02,x.xanchor="left"):x.x<-2&&(x.x=-.02,x.xanchor="right"),x.y>3?(x.y=1.02,x.yanchor="bottom"):x.y<-2&&(x.y=-.02,x.yanchor="top")),"rotate"===t.dragmode&&(t.dragmode="orbit"),Oe.clean(t),t},Vv.cleanData=function(t,e){for(var r=[],n=t.concat(Array.isArray(e)?e:[]).filter(function(t){return"uid"in t}).map(function(t){return t.uid}),i=0;i0)return t.substr(0,e)}Vv.hasParent=function(t,e){for(var r=Xv(e);r;){if(r in t)return!0;r=Xv(r)}return!1};var Zv=["x","y","z"];Vv.clearAxisTypes=function(t,e,r){for(var n=0;n1&&_.warn("Full array edits are incompatible with other edits",i);var h=r[""][""];if($v(h))e.set(null);else{if(!Array.isArray(h))return _.warn("Unrecognized full array edit value",i,h),!0;e.set(h)}return!l&&(a(u,c),o(t),!0)}var f,p,d,g,v,m,y,x=Object.keys(r).map(Number).sort(Kv),b=e.get(),w=b||[],M=W(c,i).get(),k=[],T=-1,S=w.length;for(f=0;fw.length-(y?0:1))_.warn("index out of range",i,d);else if(void 0!==m)v.length>1&&_.warn("Insertion & removal are incompatible with edits to the same index.",i,d),$v(m)?k.push(d):y?("add"===m&&(m={}),w.splice(d,0,m),M&&M.splice(d,0,{})):_.warn("Unrecognized full object edit value",i,d,m),-1===T&&(T=d);else for(p=0;p=0;f--)w.splice(k[f],1),M&&M.splice(k[f],1);if(w.length?b||e.set(w):e.set(null),l)return!1;if(a(u,c),s!==A){var E;if(-1===T)E=x;else{for(S=Math.max(w.length,S),E=[],f=0;f=T);f++)E.push(d);for(f=T;f1?(m=["toggleHover"],y=["resetViews"]):s?(v=["zoomInGeo","zoomOutGeo"],m=["hoverClosestGeo"],y=["resetGeo"]):o?(m=["hoverClosest3d"],y=["resetCameraDefault3d","resetCameraLastSave3d"]):h?(m=["toggleHover"],y=["resetViewMapbox"]):m=u?["hoverClosestGl2d"]:l?["hoverClosestPie"]:["toggleHover"],a&&(m=["toggleSpikelines","hoverClosestCartesian","hoverCompareCartesian"]),!a&&!u||p||(v=["zoomIn2d","zoomOut2d","autoScale2d"],"resetViews"!==y[0]&&(y=["resetScale2d"])),o?x=["zoom3d","pan3d","orbitRotation","tableRotation"]:(a||u)&&!p||c?x=["zoom2d","pan2d"]:h||s?x=["pan2d"]:f&&(x=["zoom2d"]),function(t){for(var e=!1,r=0;r=0?Math.min(t,.9):1/(1/Math.max(t,-.3)+3.222))}function Em(t,e,r,n,i){return t.append("path").attr("class","zoombox").style({fill:e>.2?"rgba(0,0,0,0)":"rgba(255,255,255,0)","stroke-width":0}).attr("transform","translate("+r+", "+n+")").attr("d",i+"Z")}function Cm(t,e,r){return t.append("path").attr("class","zoombox-corners").style({fill:Oe.background,stroke:Oe.defaultLine,"stroke-width":1,opacity:0}).attr("transform","translate("+e+", "+r+")").attr("d","M0,0Z")}function Lm(t){t.selectAll(".select-outline").remove()}function zm(t,e,r,n,i,a){t.attr("d",n+"M"+r.l+","+r.t+"v"+r.h+"h"+r.w+"v-"+r.h+"h-"+r.w+"Z"),Pm(t,e,i,a)}function Pm(t,e,r,n){r||(t.transition().style("fill",n>.2?"rgba(0,0,0,0.4)":"rgba(255,255,255,0.3)").duration(200),e.transition().style("opacity",1).duration(200))}function Im(t){e.select(t).selectAll(".zoombox,.js-zoombox-backdrop,.js-zoombox-menu,.zoombox-corners").remove()}function Dm(t){_m&&t.data&&t._context.showTips&&(ne.notifier(ne._(t,"Double-click to zoom back out"),"long"),_m=!1)}function Om(t){return"lasso"===t||"select"===t}function Rm(t){var e=Math.floor(Math.min(t.b-t.t,t.r-t.l,bm)/2);return"M"+(t.l-3.5)+","+(t.t-.5+e)+"h3v"+-e+"h"+e+"v-3h-"+(e+3)+"ZM"+(t.r+3.5)+","+(t.t-.5+e)+"h-3v"+-e+"h"+-e+"v-3h"+(e+3)+"ZM"+(t.r+3.5)+","+(t.b+.5-e)+"h-3v"+e+"h"+-e+"v3h"+(e+3)+"ZM"+(t.l-3.5)+","+(t.b+.5-e)+"h3v"+e+"h"+e+"v3h-"+(e+3)+"Z"}function Fm(t,e){if(Ea){var r=void 0!==t.onwheel?"wheel":"mousewheel";t._onwheel&&t.removeEventListener(r,t._onwheel),t._onwheel=e,t.addEventListener(r,e,{passive:!1})}else void 0!==t.onwheel?t.onwheel=e:void 0!==t.onmousewheel&&(t.onmousewheel=e)}var Bm={makeDragBox:function(t,r,n,i,a,o,l,u){var c,h,f,p,d,g,v,m,y,x,b,_,w,M=t._fullLayout,A=t._fullLayout._zoomlayer,k=l+u==="nsew",T=1===(l+u).length;function S(){h=[r.xaxis],f=[r.yaxis];var e=h[0],n=f[0];g=e._length,v=n._length;var i,a,o=M._axisConstraintGroups,s=[e._id],A=[n._id];c=[r].concat(l&&u?r.overlays:[]);for(var k=1;kbm||o>bm?(F="xy",a/g>o/v?(o=a*v/g,z>i?I.t=z-o:I.b=z+o):(a=o*g/v,L>n?I.l=L-a:I.r=L+a),N.attr("d",Rm(I))):s():!y||o rect").call(Sr.setTranslate,i,a).call(Sr.setScale,r,n);var P=x.plot.selectAll(".scatterlayer .trace, .boxlayer .trace, .violinlayer .trace");x.plot.call(Sr.setTranslate,L,z).call(Sr.setScale,1/r,1/n),P.selectAll(".point").call(Sr.setPointGroupScale,r,n),P.selectAll(".textpoint").call(Sr.setTextPointsScale,r,n),P.call(Sr.hideOutsideRangePoints,x),x.plot.selectAll(".barlayer .trace").call(Sr.hideOutsideRangePoints,x,".bartext")}}}return l.length*u.length!=1&&Fm(E,function(e){if(t._context.scrollZoom||M._enablescrollzoom){if(null===G&&Lm(A),t._transitioningWithDuration)return e.preventDefault(),void e.stopPropagation();var r=t.querySelector(".plotly");if(S(),!(r.scrollHeight-r.clientHeight>10||r.scrollWidth-r.clientWidth>10)){clearTimeout(G);var n=-e.deltaY;if(isFinite(n)||(n=e.wheelDelta/10),isFinite(n)){var i,a=Math.exp(-Math.min(Math.max(n,-20),20)/200),o=Y.draglayer.select(".nsewdrag").node().getBoundingClientRect(),s=(e.clientX-o.left)/o.width,c=(o.bottom-e.clientY)/o.height;if(u||b){for(u||(s=.5),i=0;i=t[1]||i[1]<=t[0])&&a[0]e[0])return!0}return!1}(r,i,p)?(f.push(t),p.push([r,i])):a=[0];var o=e.plotgroup.selectAll(".bg").data(a);o.enter().append("rect").classed("bg",!0),o.exit().remove(),o.each(function(){e.bg=o;var t=e.plotgroup.node();t.insertBefore(this,t.childNodes[0])})});var d=n._bgLayer.selectAll(".bg").data(f);return d.enter().append("rect").classed("bg",!0),d.exit().remove(),d.each(function(t){n._plots[t].bg=e.select(this)}),h.each(function(t){var e=n._plots[t],i=e.xaxis,u=e.yaxis;e.bg&&s&&e.bg.call(Sr.setRect,i._offset-a,u._offset-a,i._length+2*a,u._length+2*a).call(Oe.fill,n.plot_bgcolor).style("stroke-width",0),e.clipId="clip"+n._uid+t+"plot";var c,h,f=n._clips.selectAll("#"+e.clipId).data([0]);for(f.enter().append("clipPath").attr({class:"plotclip",id:e.clipId}).append("rect"),f.selectAll("rect").attr({width:i._length,height:u._length}),Sr.setTranslate(e.plot,i._offset,u._offset),e._hasClipOnAxisFalse?(c=null,h=e.clipId):(c=e.clipId,h=null),Sr.setClipUrl(e.plot,c),r=0;rXm*p)||m)for(r=0;rS&&Lk&&(k=L);s/=(k-A)/(2*T),A=i.l2r(A),k=i.l2r(k),i.range=i._input.range=_=0?u.angularAxis.domain:e.extent(x),A=Math.abs(x[1]-x[0]);_&&!b&&(A=0);var k=M.slice();w&&b&&(k[1]+=A);var T=u.angularAxis.ticksCount||4;T>8&&(T=T/(T/8)+T%8),u.angularAxis.ticksStep&&(T=(k[1]-k[0])/T);var S=u.angularAxis.ticksStep||(k[1]-k[0])/(T*(u.minorTicks+1));y&&(S=Math.max(Math.round(S),1)),k[2]||(k[2]=S);var E=e.range.apply(this,k);if(E=E.map(function(t,e){return parseFloat(t.toPrecision(12))}),i=e.scale.linear().domain(k.slice(0,2)).range("clockwise"===u.direction?[0,360]:[360,0]),s.layout.angularAxis.domain=i.domain(),s.layout.angularAxis.endPadding=w?A:0,void 0===(t=e.select(this).select("svg.chart-root"))||t.empty()){var C=(new DOMParser).parseFromString("' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '","application/xml"),L=this.appendChild(this.ownerDocument.importNode(C.documentElement,!0));t=e.select(L)}t.select(".guides-group").style({"pointer-events":"none"}),t.select(".angular.axis-group").style({"pointer-events":"none"}),t.select(".radial.axis-group").style({"pointer-events":"none"});var z,P=t.select(".chart-group"),I={fill:"none",stroke:u.tickColor},D={"font-size":u.font.size,"font-family":u.font.family,fill:u.font.color,"text-shadow":["-1px 0px","1px -1px","-1px 1px","1px 1px"].map(function(t,e){return" "+t+" 0 "+u.font.outlineColor}).join(",")};if(u.showLegend){z=t.select(".legend-group").attr({transform:"translate("+[g,u.margin.top]+")"}).style({display:"block"});var O=c.map(function(t,e){var r=ty.util.cloneJson(t);return r.symbol="DotPlot"===t.geometry?t.dotType||"circle":"LinePlot"!=t.geometry?"square":"line",r.visibleInLegend=void 0===t.visibleInLegend||t.visibleInLegend,r.color="LinePlot"===t.geometry?t.strokeColor:t.color,r});ty.Legend().config({data:c.map(function(t,e){return t.name||"Element"+e}),legendConfig:Qm({},ty.Legend.defaultConfig().legendConfig,{container:z,elements:O,reverseOrder:u.legend.reverseOrder})})();var R=z.node().getBBox();g=Math.min(u.width-R.width-u.margin.left-u.margin.right,u.height-u.margin.top-u.margin.bottom)/2,g=Math.max(10,g),m=[u.margin.left+g,u.margin.top+g],n.range([0,g]),s.layout.radialAxis.domain=n.domain(),z.attr("transform","translate("+[m[0]+g,m[1]-g]+")")}else z=t.select(".legend-group").style({display:"none"});t.attr({width:u.width,height:u.height}).style({opacity:u.opacity}),P.attr("transform","translate("+m+")").style({cursor:"crosshair"});var F=[(u.width-(u.margin.left+u.margin.right+2*g+(R?R.width:0)))/2,(u.height-(u.margin.top+u.margin.bottom+2*g))/2];if(F[0]=Math.max(0,F[0]),F[1]=Math.max(0,F[1]),t.select(".outer-group").attr("transform","translate("+F+")"),u.title){var B=t.select("g.title-group text").style(D).text(u.title),N=B.node().getBBox();B.attr({x:m[0]-N.width/2,y:m[1]-g-20})}var j=t.select(".radial.axis-group");if(u.radialAxis.gridLinesVisible){var V=j.selectAll("circle.grid-circle").data(n.ticks(5));V.enter().append("circle").attr({class:"grid-circle"}).style(I),V.attr("r",n),V.exit().remove()}j.select("circle.outside-circle").attr({r:g}).style(I);var U=t.select("circle.background-circle").attr({r:g}).style({fill:u.backgroundColor,stroke:u.stroke});function q(t,e){return i(t)%360+u.orientation}if(u.radialAxis.visible){var H=e.svg.axis().scale(n).ticks(5).tickSize(5);j.call(H).attr({transform:"rotate("+u.radialAxis.orientation+")"}),j.selectAll(".domain").style(I),j.selectAll("g>text").text(function(t,e){return this.textContent+u.radialAxis.ticksSuffix}).style(D).style({"text-anchor":"start"}).attr({x:0,y:0,dx:0,dy:0,transform:function(t,e){return"horizontal"===u.radialAxis.tickOrientation?"rotate("+-u.radialAxis.orientation+") translate("+[0,D["font-size"]]+")":"translate("+[0,D["font-size"]]+")"}}),j.selectAll("g>line").style({stroke:"black"})}var G=t.select(".angular.axis-group").selectAll("g.angular-tick").data(E),W=G.enter().append("g").classed("angular-tick",!0);G.attr({transform:function(t,e){return"rotate("+q(t)+")"}}).style({display:u.angularAxis.visible?"block":"none"}),G.exit().remove(),W.append("line").classed("grid-line",!0).classed("major",function(t,e){return e%(u.minorTicks+1)==0}).classed("minor",function(t,e){return!(e%(u.minorTicks+1)==0)}).style(I),W.selectAll(".minor").style({stroke:u.minorTickColor}),G.select("line.grid-line").attr({x1:u.tickLength?g-u.tickLength:0,x2:g}).style({display:u.angularAxis.gridLinesVisible?"block":"none"}),W.append("text").classed("axis-text",!0).style(D);var Y=G.select("text.axis-text").attr({x:g+u.labelOffset,dy:$m+"em",transform:function(t,e){var r=q(t),n=g+u.labelOffset,i=u.angularAxis.tickOrientation;return"horizontal"==i?"rotate("+-r+" "+n+" 0)":"radial"==i?r<270&&r>90?"rotate(180 "+n+" 0)":null:"rotate("+(r<=180&&r>0?-90:90)+" "+n+" 0)"}}).style({"text-anchor":"middle",display:u.angularAxis.labelsVisible?"block":"none"}).text(function(t,e){return e%(u.minorTicks+1)!=0?"":y?y[t]+u.angularAxis.ticksSuffix:t+u.angularAxis.ticksSuffix}).style(D);u.angularAxis.rewriteTicks&&Y.text(function(t,e){return e%(u.minorTicks+1)!=0?"":u.angularAxis.rewriteTicks(this.textContent,e)});var X=e.max(P.selectAll(".angular-tick text")[0].map(function(t,e){return t.getCTM().e+t.getBBox().width}));z.attr({transform:"translate("+[g+X,u.margin.top]+")"});var Z=t.select("g.geometry-group").selectAll("g").size()>0,J=t.select("g.geometry-group").selectAll("g.geometry").data(c);if(J.enter().append("g").attr({class:function(t,e){return"geometry geometry"+e}}),J.exit().remove(),c[0]||Z){var K=[];c.forEach(function(t,e){var r={};r.radialScale=n,r.angularScale=i,r.container=J.filter(function(t,r){return r==e}),r.geometry=t.geometry,r.orientation=u.orientation,r.direction=u.direction,r.index=e,K.push({data:t,geometryConfig:r})});var Q=[];e.nest().key(function(t,e){return void 0!==t.data.groupId||"unstacked"}).entries(K).forEach(function(t,e){"unstacked"===t.key?Q=Q.concat(t.values.map(function(t,e){return[t]})):Q.push(t.values)}),Q.forEach(function(t,e){var r;r=Array.isArray(t)?t[0].geometryConfig.geometry:t.geometryConfig.geometry;var n=t.map(function(t,e){return Qm(ty[r].defaultConfig(),t)});ty[r]().config(n)()})}var $,tt,et=t.select(".guides-group"),rt=t.select(".tooltips-group"),nt=ty.tooltipPanel().config({container:rt,fontSize:8})(),it=ty.tooltipPanel().config({container:rt,fontSize:8})(),at=ty.tooltipPanel().config({container:rt,hasTick:!0})();if(!b){var ot=et.select("line").attr({x1:0,y1:0,y2:0}).style({stroke:"grey","pointer-events":"none"});P.on("mousemove.angular-guide",function(t,e){var r=ty.util.getMousePos(U).angle;ot.attr({x2:-g,transform:"rotate("+r+")"}).style({opacity:.5});var n=(r+180+360-u.orientation)%360;$=i.invert(n);var a=ty.util.convertToCartesian(g+12,r+180);nt.text(ty.util.round($)).move([a[0]+m[0],a[1]+m[1]])}).on("mouseout.angular-guide",function(t,e){et.select("line").style({opacity:0})})}var st=et.select("circle").style({stroke:"grey",fill:"none"});P.on("mousemove.radial-guide",function(t,e){var r=ty.util.getMousePos(U).radius;st.attr({r:r}).style({opacity:.5}),tt=n.invert(ty.util.getMousePos(U).radius);var i=ty.util.convertToCartesian(r,u.radialAxis.orientation);it.text(ty.util.round(tt)).move([i[0]+m[0],i[1]+m[1]])}).on("mouseout.radial-guide",function(t,e){st.style({opacity:0}),at.hide(),nt.hide(),it.hide()}),t.selectAll(".geometry-group .mark").on("mouseover.tooltip",function(r,n){var i=e.select(this),a=this.style.fill,o="black",s=this.style.opacity||1;if(i.attr({"data-opacity":s}),a&&"none"!==a){i.attr({"data-fill":a}),o=e.hsl(a).darker().toString(),i.style({fill:o,opacity:1});var l={t:ty.util.round(r[0]),r:ty.util.round(r[1])};b&&(l.t=y[r[0]]);var u="t: "+l.t+", r: "+l.r,c=this.getBoundingClientRect(),h=t.node().getBoundingClientRect(),f=[c.left+c.width/2-F[0]-h.left,c.top+c.height/2-F[1]-h.top];at.config({color:o}).text(u),at.move(f)}else a=this.style.stroke||"black",i.attr({"data-stroke":a}),o=e.hsl(a).darker().toString(),i.style({stroke:o,opacity:1})}).on("mousemove.tooltip",function(t,r){if(0!=e.event.which)return!1;e.select(this).attr("data-fill")&&at.show()}).on("mouseout.tooltip",function(t,r){at.hide();var n=e.select(this),i=n.attr("data-fill");i?n.style({fill:i,opacity:n.attr("data-opacity")}):n.style({stroke:n.attr("data-stroke"),opacity:n.attr("data-opacity")})})})}(o),this},u.config=function(t){if(!arguments.length)return a;var e=ty.util.cloneJson(t);return e.data.forEach(function(t,e){a.data[e]||(a.data[e]={}),Qm(a.data[e],ty.Axis.defaultConfig().data[0]),Qm(a.data[e],t)}),Qm(a.layout,ty.Axis.defaultConfig().layout),Qm(a.layout,e.layout),this},u.getLiveConfig=function(){return s},u.getinputConfig=function(){return o},u.radialScale=function(t){return n},u.angularScale=function(t){return i},u.svg=function(){return t},e.rebind(u,l,"on"),u},ty.Axis.defaultConfig=function(t,r){return{data:[{t:[1,2,3,4],r:[10,11,12,13],name:"Line1",geometry:"LinePlot",color:null,strokeDash:"solid",strokeColor:null,strokeSize:"1",visibleInLegend:!0,opacity:1}],layout:{defaultColorRange:e.scale.category10().range(),title:null,height:450,width:500,margin:{top:40,right:40,bottom:40,left:40},font:{size:12,color:"gray",outlineColor:"white",family:"Tahoma, sans-serif"},direction:"clockwise",orientation:0,labelOffset:10,radialAxis:{domain:null,orientation:-45,ticksSuffix:"",visible:!0,gridLinesVisible:!0,tickOrientation:"horizontal",rewriteTicks:null},angularAxis:{domain:[0,360],ticksSuffix:"",visible:!0,gridLinesVisible:!0,labelsVisible:!0,tickOrientation:"horizontal",rewriteTicks:null,ticksCount:null,ticksStep:null},minorTicks:0,tickLength:null,tickColor:"silver",minorTickColor:"#eee",backgroundColor:"none",needsEndSpacing:null,showLegend:!0,legend:{reverseOrder:!1},opacity:1}}},ty.util={},ty.DATAEXTENT="dataExtent",ty.AREA="AreaChart",ty.LINE="LinePlot",ty.DOT="DotPlot",ty.BAR="BarChart",ty.util._override=function(t,e){for(var r in t)r in e&&(e[r]=t[r])},ty.util._extend=function(t,e){for(var r in t)e[r]=t[r]},ty.util._rndSnd=function(){return 2*Math.random()-1+(2*Math.random()-1)+(2*Math.random()-1)},ty.util.dataFromEquation2=function(t,r){var n=r||6;return e.range(0,360+n,n).map(function(e,r){var n=e*Math.PI/180;return[e,t(n)]})},ty.util.dataFromEquation=function(t,r,n){var i=r||6,a=[],o=[];e.range(0,360+i,i).forEach(function(e,r){var n=e*Math.PI/180,i=t(n);a.push(e),o.push(i)});var s={t:a,r:o};return n&&(s.name=n),s},ty.util.ensureArray=function(t,r){if(void 0===t)return null;var n=[].concat(t);return e.range(r).map(function(t,e){return n[e]||n[0]})},ty.util.fillArrays=function(t,e,r){return e.forEach(function(e,n){t[e]=ty.util.ensureArray(t[e],r)}),t},ty.util.cloneJson=function(t){return JSON.parse(JSON.stringify(t))},ty.util.validateKeys=function(t,e){"string"==typeof e&&(e=e.split("."));var r=e.shift();return t[r]&&(!e.length||objHasKeys(t[r],e))},ty.util.sumArrays=function(t,r){return e.zip(t,r).map(function(t,r){return e.sum(t)})},ty.util.arrayLast=function(t){return t[t.length-1]},ty.util.arrayEqual=function(t,e){for(var r=Math.max(t.length,e.length,1);r-- >=0&&t[r]===e[r];);return-2===r},ty.util.flattenArray=function(t){for(var e=[];!ty.util.arrayEqual(e,t);)e=t,t=[].concat.apply([],t);return t},ty.util.deduplicate=function(t){return t.filter(function(t,e,r){return r.indexOf(t)==e})},ty.util.convertToCartesian=function(t,e){var r=e*Math.PI/180;return[t*Math.cos(r),t*Math.sin(r)]},ty.util.round=function(t,e){var r=e||2,n=Math.pow(10,r);return Math.round(t*n)/n},ty.util.getMousePos=function(t){var r=e.mouse(t.node()),n=r[0],i=r[1],a={};return a.x=n,a.y=i,a.pos=r,a.angle=180*(Math.atan2(i,n)+Math.PI)/Math.PI,a.radius=Math.sqrt(n*n+i*i),a},ty.util.duplicatesCount=function(t){for(var e,r={},n={},i=0,a=t.length;i0)){var l=e.select(this.parentNode).selectAll("path.line").data([0]);l.enter().insert("path"),l.attr({class:"line",d:c(s),transform:function(t,e){return"rotate("+(r.orientation+90)+")"},"pointer-events":"none"}).style({fill:function(t,e){return d.fill(n,i,a)},"fill-opacity":0,stroke:function(t,e){return d.stroke(n,i,a)},"stroke-width":function(t,e){return d["stroke-width"](n,i,a)},"stroke-dasharray":function(t,e){return d["stroke-dasharray"](n,i,a)},opacity:function(t,e){return d.opacity(n,i,a)},display:function(t,e){return d.display(n,i,a)}})}};var h=r.angularScale.range(),f=Math.abs(h[1]-h[0])/o[0].length*Math.PI/180,p=e.svg.arc().startAngle(function(t){return-f/2}).endAngle(function(t){return f/2}).innerRadius(function(t){return r.radialScale(l+(t[2]||0))}).outerRadius(function(t){return r.radialScale(l+(t[2]||0))+r.radialScale(t[1])});u.arc=function(t,n,i){e.select(this).attr({class:"mark arc",d:p,transform:function(t,e){return"rotate("+(r.orientation+s(t[0])+90)+")"}})};var d={fill:function(e,r,n){return t[n].data.color},stroke:function(e,r,n){return t[n].data.strokeColor},"stroke-width":function(e,r,n){return t[n].data.strokeSize+"px"},"stroke-dasharray":function(e,r,i){return n[t[i].data.strokeDash]},opacity:function(e,r,n){return t[n].data.opacity},display:function(e,r,n){return void 0===t[n].data.visible||t[n].data.visible?"block":"none"}},g=e.select(this).selectAll("g.layer").data(o);g.enter().append("g").attr({class:"layer"});var v=g.selectAll("path.mark").data(function(t,e){return t});v.enter().append("path").attr({class:"mark"}),v.style(d).each(u[r.geometryType]),v.exit().remove(),g.exit().remove()})}return i.config=function(e){return arguments.length?(e.forEach(function(e,r){t[r]||(t[r]={}),Qm(t[r],ty.PolyChart.defaultConfig()),Qm(t[r],e)}),this):t},i.getColorScale=function(){},e.rebind(i,r,"on"),i},ty.PolyChart.defaultConfig=function(){return{data:{name:"geom1",t:[[1,2,3,4]],r:[[1,2,3,4]],dotType:"circle",dotSize:64,dotVisible:!1,barWidth:20,color:"#ffa500",strokeSize:1,strokeColor:"silver",strokeDash:"solid",opacity:1,index:0,visible:!0,visibleInLegend:!0},geometryConfig:{geometry:"LinePlot",geometryType:"arc",direction:"clockwise",orientation:0,container:"body",radialScale:null,angularScale:null,colorScale:e.scale.category20()}}},ty.BarChart=function(){return ty.PolyChart()},ty.BarChart.defaultConfig=function(){return{geometryConfig:{geometryType:"bar"}}},ty.AreaChart=function(){return ty.PolyChart()},ty.AreaChart.defaultConfig=function(){return{geometryConfig:{geometryType:"arc"}}},ty.DotPlot=function(){return ty.PolyChart()},ty.DotPlot.defaultConfig=function(){return{geometryConfig:{geometryType:"dot",dotType:"circle"}}},ty.LinePlot=function(){return ty.PolyChart()},ty.LinePlot.defaultConfig=function(){return{geometryConfig:{geometryType:"line"}}},ty.Legend=function(){var t=ty.Legend.defaultConfig(),r=e.dispatch("hover");function n(){var r=t.legendConfig,i=t.data.map(function(t,e){return[].concat(t).map(function(t,n){var i=Qm({},r.elements[e]);return i.name=t,i.color=[].concat(r.elements[e].color)[n],i})}),a=e.merge(i);a=a.filter(function(t,e){return r.elements[e]&&(r.elements[e].visibleInLegend||void 0===r.elements[e].visibleInLegend)}),r.reverseOrder&&(a=a.reverse());var o=r.container;("string"==typeof o||o.nodeName)&&(o=e.select(o));var s=a.map(function(t,e){return t.color}),l=r.fontSize,u=null==r.isContinuous?"number"==typeof a[0]:r.isContinuous,c=u?r.height:l*a.length,h=o.classed("legend-group",!0).selectAll("svg").data([0]),f=h.enter().append("svg").attr({width:300,height:c+l,xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",version:"1.1"});f.append("g").classed("legend-axis",!0),f.append("g").classed("legend-marks",!0);var p=e.range(a.length),d=e.scale[u?"linear":"ordinal"]().domain(p).range(s),g=e.scale[u?"linear":"ordinal"]().domain(p)[u?"range":"rangePoints"]([0,c]);if(u){var v=h.select(".legend-marks").append("defs").append("linearGradient").attr({id:"grad1",x1:"0%",y1:"0%",x2:"0%",y2:"100%"}).selectAll("stop").data(s);v.enter().append("stop"),v.attr({offset:function(t,e){return e/(s.length-1)*100+"%"}}).style({"stop-color":function(t,e){return t}}),h.append("rect").classed("legend-mark",!0).attr({height:r.height,width:r.colorBandWidth,fill:"url(#grad1)"})}else{var m=h.select(".legend-marks").selectAll("path.legend-mark").data(a);m.enter().append("path").classed("legend-mark",!0),m.attr({transform:function(t,e){return"translate("+[l/2,g(e)+l/2]+")"},d:function(t,r){var n,i,a,o=t.symbol;return a=3*(i=l),"line"===(n=o)?"M"+[[-i/2,-i/12],[i/2,-i/12],[i/2,i/12],[-i/2,i/12]]+"Z":-1!=e.svg.symbolTypes.indexOf(n)?e.svg.symbol().type(n).size(a)():e.svg.symbol().type("square").size(a)()},fill:function(t,e){return d(e)}}),m.exit().remove()}var y=e.svg.axis().scale(g).orient("right"),x=h.select("g.legend-axis").attr({transform:"translate("+[u?r.colorBandWidth:l,l/2]+")"}).call(y);return x.selectAll(".domain").style({fill:"none",stroke:"none"}),x.selectAll("line").style({fill:"none",stroke:u?r.textColor:"none"}),x.selectAll("text").style({fill:r.textColor,"font-size":r.fontSize}).text(function(t,e){return a[e].name}),n}return n.config=function(e){return arguments.length?(Qm(t,e),this):t},e.rebind(n,r,"on"),n},ty.Legend.defaultConfig=function(t,e){return{data:["a","b","c"],legendConfig:{elements:[{symbol:"line",color:"red"},{symbol:"square",color:"yellow"},{symbol:"diamond",color:"limegreen"}],height:150,colorBandWidth:30,fontSize:12,container:"body",isContinuous:null,textColor:"grey",reverseOrder:!1}}},ty.tooltipPanel=function(){var t,r,n,i={container:null,hasTick:!1,fontSize:12,color:"white",padding:5},a="tooltip-"+ty.tooltipPanel.uid++,o=10,s=function(){var e=(t=i.container.selectAll("g."+a).data([0])).enter().append("g").classed(a,!0).style({"pointer-events":"none",display:"none"});return n=e.append("path").style({fill:"white","fill-opacity":.9}).attr({d:"M0 0"}),r=e.append("text").attr({dx:i.padding+o,dy:.3*+i.fontSize}),s};return s.text=function(a){var l=e.hsl(i.color).l,u=l>=.5?"#aaa":"white",c=l>=.5?"black":"white",h=a||"";r.style({fill:c,"font-size":i.fontSize+"px"}).text(h);var f=i.padding,p=r.node().getBBox(),d={fill:i.color,stroke:u,"stroke-width":"2px"},g=p.width+2*f+o,v=p.height+2*f;return n.attr({d:"M"+[[o,-v/2],[o,-v/4],[i.hasTick?0:o,0],[o,v/4],[o,v/2],[g,v/2],[g,-v/2]].join("L")+"Z"}).style(d),t.attr({transform:"translate("+[o,-v/2+2*f]+")"}),t.style({display:"block"}),s},s.move=function(e){if(t)return t.attr({transform:"translate("+[e[0],e[1]]+")"}).style({display:"block"}),s},s.hide=function(){if(t)return t.style({display:"none"}),s},s.show=function(){if(t)return t.style({display:"block"}),s},s.config=function(t){return Qm(i,t),s},s},ty.tooltipPanel.uid=1,ty.adapter={},ty.adapter.plotly=function(){var t={convert:function(t,r){var n={};if(t.data&&(n.data=t.data.map(function(t,e){var n=Qm({},t);return[[n,["marker","color"],["color"]],[n,["marker","opacity"],["opacity"]],[n,["marker","line","color"],["strokeColor"]],[n,["marker","line","dash"],["strokeDash"]],[n,["marker","line","width"],["strokeSize"]],[n,["marker","symbol"],["dotType"]],[n,["marker","size"],["dotSize"]],[n,["marker","barWidth"],["barWidth"]],[n,["line","interpolation"],["lineInterpolation"]],[n,["showlegend"],["visibleInLegend"]]].forEach(function(t,e){ty.util.translator.apply(null,t.concat(r))}),r||delete n.marker,r&&delete n.groupId,r?("LinePlot"===n.geometry?(n.type="scatter",!0===n.dotVisible?(delete n.dotVisible,n.mode="lines+markers"):n.mode="lines"):"DotPlot"===n.geometry?(n.type="scatter",n.mode="markers"):"AreaChart"===n.geometry?n.type="area":"BarChart"===n.geometry&&(n.type="bar"),delete n.geometry):("scatter"===n.type?"lines"===n.mode?n.geometry="LinePlot":"markers"===n.mode?n.geometry="DotPlot":"lines+markers"===n.mode&&(n.geometry="LinePlot",n.dotVisible=!0):"area"===n.type?n.geometry="AreaChart":"bar"===n.type&&(n.geometry="BarChart"),delete n.mode,delete n.type),n}),!r&&t.layout&&"stack"===t.layout.barmode)){var i=ty.util.duplicates(n.data.map(function(t,e){return t.geometry}));n.data.forEach(function(t,e){var r=i.indexOf(t.geometry);-1!=r&&(n.data[e].groupId=r)})}if(t.layout){var a=Qm({},t.layout);if([[a,["plot_bgcolor"],["backgroundColor"]],[a,["showlegend"],["showLegend"]],[a,["radialaxis"],["radialAxis"]],[a,["angularaxis"],["angularAxis"]],[a.angularaxis,["showline"],["gridLinesVisible"]],[a.angularaxis,["showticklabels"],["labelsVisible"]],[a.angularaxis,["nticks"],["ticksCount"]],[a.angularaxis,["tickorientation"],["tickOrientation"]],[a.angularaxis,["ticksuffix"],["ticksSuffix"]],[a.angularaxis,["range"],["domain"]],[a.angularaxis,["endpadding"],["endPadding"]],[a.radialaxis,["showline"],["gridLinesVisible"]],[a.radialaxis,["tickorientation"],["tickOrientation"]],[a.radialaxis,["ticksuffix"],["ticksSuffix"]],[a.radialaxis,["range"],["domain"]],[a.angularAxis,["showline"],["gridLinesVisible"]],[a.angularAxis,["showticklabels"],["labelsVisible"]],[a.angularAxis,["nticks"],["ticksCount"]],[a.angularAxis,["tickorientation"],["tickOrientation"]],[a.angularAxis,["ticksuffix"],["ticksSuffix"]],[a.angularAxis,["range"],["domain"]],[a.angularAxis,["endpadding"],["endPadding"]],[a.radialAxis,["showline"],["gridLinesVisible"]],[a.radialAxis,["tickorientation"],["tickOrientation"]],[a.radialAxis,["ticksuffix"],["ticksSuffix"]],[a.radialAxis,["range"],["domain"]],[a.font,["outlinecolor"],["outlineColor"]],[a.legend,["traceorder"],["reverseOrder"]],[a,["labeloffset"],["labelOffset"]],[a,["defaultcolorrange"],["defaultColorRange"]]].forEach(function(t,e){ty.util.translator.apply(null,t.concat(r))}),r?(void 0!==a.tickLength&&(a.angularaxis.ticklen=a.tickLength,delete a.tickLength),a.tickColor&&(a.angularaxis.tickcolor=a.tickColor,delete a.tickColor)):(a.angularAxis&&void 0!==a.angularAxis.ticklen&&(a.tickLength=a.angularAxis.ticklen),a.angularAxis&&void 0!==a.angularAxis.tickcolor&&(a.tickColor=a.angularAxis.tickcolor)),a.legend&&"boolean"!=typeof a.legend.reverseOrder&&(a.legend.reverseOrder="normal"!=a.legend.reverseOrder),a.legend&&"boolean"==typeof a.legend.traceorder&&(a.legend.traceorder=a.legend.traceorder?"reversed":"normal",delete a.legend.reverseOrder),a.margin&&void 0!==a.margin.t){var o=["t","r","b","l","pad"],s=["top","right","bottom","left","pad"],l={};e.entries(a.margin).forEach(function(t,e){l[s[o.indexOf(t.key)]]=t.value}),a.margin=l}r&&(delete a.needsEndSpacing,delete a.minorTickColor,delete a.minorTicks,delete a.angularaxis.ticksCount,delete a.angularaxis.ticksCount,delete a.angularaxis.ticksStep,delete a.angularaxis.rewriteTicks,delete a.angularaxis.nticks,delete a.radialaxis.ticksCount,delete a.radialaxis.ticksCount,delete a.radialaxis.ticksStep,delete a.radialaxis.rewriteTicks,delete a.radialaxis.nticks),n.layout=a}return n}};return t};var ey,ry=ne.extendDeepAll,ny=ey={};ny.framework=function(t){var r,n,i,a,o,s=new function(){var t,e=[],r=-1,n=!1;function i(t,e){return t?(n=!0,t[e](),n=!1,this):this}return{add:function(t){return n?this:(e.splice(r+1,e.length-r),e.push(t),r=e.length-1,this)},setCallback:function(e){t=e},undo:function(){var n=e[r];return n?(i(n,"undo"),r-=1,t&&t(n.undo),this):this},redo:function(){var n=e[r+1];return n?(i(n,"redo"),r+=1,t&&t(n.redo),this):this},clear:function(){e=[],r=-1},hasUndo:function(){return-1!==r},hasRedo:function(){return r*:not(.chart-root)").remove(),r=r?ry(r,n):n,i||(i=Km.Axis()),a=Km.adapter.plotly().convert(r),i.config(a).render(o),t.data=r.data,t.layout=r.layout,ny.fillLayout(t),r}return l.isPolar=!0,l.svg=function(){return i.svg()},l.getConfig=function(){return r},l.getLiveConfig=function(){return Km.adapter.plotly().convert(i.getLiveConfig(),!0)},l.getLiveScales=function(){return{t:i.angularScale(),r:i.radialScale()}},l.setUndoPoint=function(){var t,e,i=this,a=Km.util.cloneJson(r);t=a,e=n,s.add({undo:function(){e&&i(e)},redo:function(){i(t)}}),n=Km.util.cloneJson(a)},l.undo=function(){s.undo()},l.redo=function(){s.redo()},l},ny.fillLayout=function(t){var r=e.select(t).selectAll(".plot-container"),n=r.selectAll(".svg-container"),i=t.framework&&t.framework.svg&&t.framework.svg(),a={width:800,height:600,paper_bgcolor:Oe.background,_container:r,_paperdiv:n,_paper:i};t._fullLayout=ry(a,t.layout)};var iy={};(iy=Km).manager=ey;var ay={},oy=Gm.enforce,sy=Gm.clean,ly=Nn,uy=0;function cy(t,e){try{t._fullLayout._paper.style("background",e)}catch(t){ne.error(t)}}function hy(t,e){cy(t,Oe.combine(e,"white"))}function fy(t,e){t._context||(t._context=ne.extendDeep({},b));var r,n,i,a=t._context;if(e){for(n=Object.keys(e),r=0;r=t.data.length||i<-t.data.length)throw new Error(r+" must be valid indices for gd.data.");if(e.indexOf(i,n+1)>-1||i>=0&&e.indexOf(-t.data.length+i)>-1||i<0&&e.indexOf(t.data.length+i)>-1)throw new Error("each index in "+r+" must be unique.")}}function gy(t,e,r){if(!Array.isArray(t.data))throw new Error("gd.data must be an array.");if(void 0===e)throw new Error("currentIndices is a required argument.");if(Array.isArray(e)||(e=[e]),dy(t,e,"currentIndices"),void 0===r||Array.isArray(r)||(r=[r]),void 0!==r&&dy(t,r,"newIndices"),void 0!==r&&e.length!==r.length)throw new Error("current and new indices must be of equal length.")}function vy(t,e,n,i,a){!function(t,e,r,n){var i=ne.isPlainObject(n);if(!Array.isArray(t.data))throw new Error("gd.data must be an array");if(!ne.isPlainObject(e))throw new Error("update must be a key:value object");if(void 0===r)throw new Error("indices must be an integer or array of integers");for(var a in dy(t,r,"indices"),e){if(!Array.isArray(e[a])||e[a].length!==r.length)throw new Error("attribute "+a+" must be an array of length equal to indices array length");if(i&&(!(a in n)||!Array.isArray(n[a])||n[a].length!==e[a].length))throw new Error("when maxPoints is set as a key:value object it must contain a 1:1 corrispondence with the keys and number of traces in the update object")}}(t,e,n,i);for(var o=function(t,e,n,i){var a,o,s,l,u,c=ne.isPlainObject(i),h=[];for(var f in Array.isArray(n)||(n=[n]),n=py(n,t.data.length-1),e)for(var p=0;p0&&"string"!=typeof _.parts[M-1];)A--;var k=_.parts[A],T=_.parts[A-1]+"."+k,S=_.parts.slice(0,A).join("."),E=ne.nestedProperty(t.layout,S).get(),C=ne.nestedProperty(o,S).get(),L=_.get();if(void 0!==w){d[b]=w,g[b]="reverse"===k?w:yy(L);var z=nn.getLayoutValObject(o,_.parts);if(z&&z.impliedEdits&&null!==w)for(var I in z.impliedEdits)v(ne.relativeAttr(b,I),z.impliedEdits[I]);if(-1!==["width","height"].indexOf(b)&&null===w)o[b]=t._initialAutoSize[b];else if(T.match(/^[xyz]axis[0-9]*\.range(\[[0|1]\])?$/))x(T),ne.nestedProperty(o,S+"._inputRange").set(null);else if(T.match(/^[xyz]axis[0-9]*\.autorange$/)){x(T),ne.nestedProperty(o,S+"._inputRange").set(null);var D=ne.nestedProperty(o,S).get();D._inputDomain&&(D._input.domain=D._inputDomain.slice())}else T.match(/^[xyz]axis[0-9]*\.domain(\[[0|1]\])?$/)&&ne.nestedProperty(o,S+"._inputDomain").set(null);if("type"===k){var O=E,R="linear"===C.type&&"log"===w,F="log"===C.type&&"linear"===w;if(R||F){if(O&&O.range)if(C.autorange)R&&(O.range=O.range[1]>O.range[0]?[1,2]:[2,1]);else{var B=O.range[0],N=O.range[1];R?(B<=0&&N<=0&&v(S+".autorange",!0),B<=0?B=N/1e6:N<=0&&(N=B/1e6),v(S+".range[0]",Math.log(B)/Math.LN10),v(S+".range[1]",Math.log(N)/Math.LN10)):(v(S+".range[0]",Math.pow(10,B)),v(S+".range[1]",Math.pow(10,N)))}else v(S+".autorange",!0);Array.isArray(o._subplots.polar)&&o._subplots.polar.length&&o[_.parts[0]]&&"radialaxis"===_.parts[1]&&delete o[_.parts[0]]._subplot.viewInitial["radialaxis.range"],P.getComponentMethod("annotations","convertCoords")(t,C,w,v),P.getComponentMethod("images","convertCoords")(t,C,w,v)}else v(S+".autorange",!0),v(S+".range",null);ne.nestedProperty(o,S+"._inputRange").set(null)}else if(k.match(Te.AX_NAME_PATTERN)){var j=ne.nestedProperty(o,b).get(),V=(w||{}).type;V&&"-"!==V||(V="linear"),P.getComponentMethod("annotations","convertCoords")(t,j,V,v),P.getComponentMethod("images","convertCoords")(t,j,V,v)}var U=Jv.containerArrayMatch(b);if(U){r=U.array,n=U.index;var q=U.property,H=(ne.nestedProperty(a,r)||[])[n]||{},G=H,W=z||{editType:"calc"},Y=-1!==W.editType.indexOf("calcIfAutorange");""===n?(Y?p.calc=!0:ye.update(p,W),Y=!1):""===q&&(G=w,Jv.isAddVal(w)?g[b]=null:Jv.isRemoveVal(w)?(g[b]=H,G=H):ne.warn("unrecognized full object value",e)),Y&&(wy(t,G,"x")||wy(t,G,"y"))?p.calc=!0:ye.update(p,W),u[r]||(u[r]={});var X=u[r][n];X||(X=u[r][n]={}),X[q]=w,delete e[b]}else"reverse"===k?(E.range?E.range.reverse():(v(S+".autorange",!0),E.range=[1,0]),C.autorange?p.calc=!0:p.plot=!0):(o._has("scatter-like")&&o._has("regl")&&"dragmode"===b&&("lasso"===w||"select"===w)&&"lasso"!==L&&"select"!==L?p.plot=!0:z?ye.update(p,z):p.calc=!0,_.set(w))}}for(r in u){Jv.applyContainerArrayChanges(t,ne.nestedProperty(a,r),u[r],p)||(p.plot=!0)}var Z=o._axisConstraintGroups||[];for(m in y)for(n=0;n=0&&r=0&&r=i.length?i[0]:i[t]:i}function s(t){return Array.isArray(a)?t>=a.length?a[0]:a[t]:a}function l(t,e){var r=0;return function(){if(t&&++r===e)return t()}}return void 0===n._frameWaitingCnt&&(n._frameWaitingCnt=0),new Promise(function(a,u){function c(){n._currentFrame&&n._currentFrame.onComplete&&n._currentFrame.onComplete();var e=n._currentFrame=n._frameQueue.shift();if(e){var r=e.name?e.name.toString():null;t._fullLayout._currentFrame=r,n._lastFrameAt=Date.now(),n._timeToNext=e.frameOpts.duration,_n.transition(t,e.frame.data,e.frame.layout,Vv.coerceTraceIndices(t,e.frame.traces),e.frameOpts,e.transitionOpts).then(function(){e.onComplete&&e.onComplete()}),t.emit("plotly_animatingframe",{name:r,frame:e.frame,animation:{frame:e.frameOpts,transition:e.transitionOpts}})}else t.emit("plotly_animated"),window.cancelAnimationFrame(n._animationRaf),n._animationRaf=null}function h(){t.emit("plotly_animating"),n._lastFrameAt=-1/0,n._timeToNext=0,n._runningTransitions=0,n._currentFrame=null;var e=function(){n._animationRaf=window.requestAnimationFrame(e),Date.now()-n._lastFrameAt>n._timeToNext&&c()};e()}var f,p,d=0;function g(t){return Array.isArray(i)?d>=i.length?t.transitionOpts=i[d]:t.transitionOpts=i[0]:t.transitionOpts=i,d++,t}var v=[],m=void 0===e||null===e,y=Array.isArray(e);if(!m&&!y&&ne.isPlainObject(e))v.push({type:"object",data:g(ne.extendFlat({},e))});else if(m||-1!==["string","number"].indexOf(typeof e))for(f=0;f0&&__)&&w.push(p);v=w}}v.length>0?function(e){if(0!==e.length){for(var i=0;i=0;n--)if(ne.isPlainObject(e[n])){var f=e[n].name,p=(l[f]||h[f]||{}).name,d=e[n].name,g=l[p]||h[p];p&&d&&"number"==typeof d&&g&&uy<5&&(uy++,ne.warn('addFrames: overwriting frame "'+(l[p]||h[p]).name+'" with a frame whose name of type "number" also equates to "'+p+'". This is valid but may potentially lead to unexpected behavior since all plotly.js frame names are stored internally as strings.'),5===uy&&ne.warn("addFrames: This API call has yielded too many of these warnings. For the rest of this call, further warnings about numeric frame names will be suppressed.")),h[f]={name:f},c.push({frame:_n.supplyFrameDefaults(e[n]),index:r&&void 0!==r[n]&&null!==r[n]?r[n]:u+n})}c.sort(function(t,e){return t.index>e.index?-1:t.index=0;n--){if("number"==typeof(i=c[n].frame).name&&ne.warn("Warning: addFrames accepts frames with numeric names, but the numbers areimplicitly cast to strings"),!i.name)for(;l[i.name="frame "+t._transitionData._counter++];);if(l[i.name]){for(a=0;a=0;r--)n=e[r],a.push({type:"delete",index:n}),o.unshift({type:"insert",index:n,value:i[n]});var s=_n.modifyFrames,l=_n.modifyFrames,u=[t,o],c=[t,a];return Nv&&Nv.add(t,s,u,l,c),_n.modifyFrames(t,a)},ay.purge=function(t){var e=(t=ne.getGraphDiv(t))._fullLayout||{},r=t._fullData||[];return _n.cleanPlot([],{},r,e),_n.purge(t),ja.purge(t),e._container&&e._container.remove(),delete t._context,t};var ky={getDelay:function(t){return t._has&&(t._has("gl3d")||t._has("gl2d")||t._has("mapbox"))?500:0},getRedrawFunc:function(t){var e=t._fullLayout||{};if(!(!(e._has&&e._has("polar"))&&t.data&&t.data[0]&&t.data[0].r))return function(){(t.calcdata||[]).forEach(function(t){t[0]&&t[0].t&&t[0].t.cb&&t[0].t.cb()})}}},Ty=Da.EventEmitter;var Sy=function(t){var e=t.emitter||new Ty,r=new Promise(function(n,i){var a=window.Image,o=t.svg,s=t.format||"png";if(ne.isIE()&&"svg"!==s){var l=new Error("Sorry IE does not support downloading from canvas. Try {format:'svg'} instead.");return i(l),t.promise?r:e.emit("error",l)}var u=t.canvas,c=t.scale||1,h=c*(t.width||300),f=c*(t.height||150),p=u.getContext("2d"),d=new a,g="data:image/svg+xml,"+encodeURIComponent(o);u.width=h,u.height=f,d.onload=function(){var r;switch("svg"!==s&&p.drawImage(d,0,0,h,f),s){case"jpeg":r=u.toDataURL("image/jpeg");break;case"png":r=u.toDataURL("image/png");break;case"webp":r=u.toDataURL("image/webp");break;case"svg":r=g;break;default:var a="Image format is not jpeg, png, svg or webp.";if(i(new Error(a)),!t.promise)return e.emit("error",a)}n(r),t.promise||e.emit("success",r)},d.onerror=function(r){if(i(r),!t.promise)return e.emit("error",r)},d.src=g});return t.promise?r:e},Ey=/"/g,Cy=new RegExp('("TOBESTRIPPED)|(TOBESTRIPPED")',"g");var Ly=function(t,r,n){var i,a=t._fullLayout,o=a._paper,s=a._toppaper,l=a.width,u=a.height;o.insert("rect",":first-child").call(Sr.setRect,0,0,l,u).call(Oe.fill,a.paper_bgcolor);var c=a._basePlotModules||[];for(i=0;i")?"":r.html(t).text()});return r.remove(),n}(g),g=(g=g.replace(/&(?!\w+;|\#[0-9]+;| \#x[0-9A-F]+;)/g,"&")).replace(Cy,"'"),ne.isIE()&&(g=(g=(g=g.replace(/"/gi,"'")).replace(/(\('#)([^']*)('\))/gi,'("#$2")')).replace(/(\\')/gi,'"')),g},zy={format:{valType:"enumerated",values:["png","jpeg","webp","svg"],dflt:"png"},width:{valType:"number",min:1},height:{valType:"number",min:1},scale:{valType:"number",min:0,dflt:1},setBackground:{valType:"any",dflt:!1},imageDataOnly:{valType:"boolean",dflt:!1}},Py=/^data:image\/\w+;base64,/;var Iy=function(t,e){var r,n,i;function a(t){return!(t in e)||ne.validate(e[t],zy[t])}if(e=e||{},ne.isPlainObject(t)?(r=t.data||[],n=t.layout||{},i=t.config||{}):(t=ne.getGraphDiv(t),r=ne.extendDeep([],t.data),n=ne.extendDeep({},t.layout),i=t._context),!a("width")||!a("height"))throw new Error("Height and width should be pixel values.");if(!a("format"))throw new Error("Image format is not jpeg, png, svg or webp.");var o={};function s(t,r){return ne.coerce(e,o,zy,t,r)}var l=s("format"),u=s("width"),c=s("height"),h=s("scale"),f=s("setBackground"),p=s("imageDataOnly"),d=document.createElement("div");d.style.position="absolute",d.style.left="-5000px",document.body.appendChild(d);var g=ne.extendFlat({},n);u&&(g.width=u),c&&(g.height=c);var v=ne.extendFlat({},i,{staticPlot:!0,setBackground:f}),m=ky.getRedrawFunc(d);function y(){return new Promise(function(t){setTimeout(t,ky.getDelay(d._fullLayout))})}function x(){return new Promise(function(t,e){var r=Ly(d,l,h),n=d._fullLayout.width,i=d._fullLayout.height;if(ay.purge(d),document.body.removeChild(d),"svg"===l)return t(p?r:"data:image/svg+xml,"+encodeURIComponent(r));var a=document.createElement("canvas");a.id=ne.randstr(),Sy({format:l,width:n,height:i,scale:h,canvas:a,svg:r,promise:!0}).then(t).catch(e)})}return new Promise(function(t,e){ay.plot(d,r,g,v).then(m).then(y).then(x).then(function(e){t(function(t){return p?t.replace(Py,""):t}(e))}).catch(function(t){e(t)})})},Dy=ne.isPlainObject,Oy=Array.isArray,Ry=ne.isArrayOrTypedArray;function Fy(t,e,r,n,i,a){a=a||[];for(var o=Object.keys(t),s=0;sh.length&&n.push(jy("unused",i,u.concat(h.length)));var v,m,y,x,b,_=h.length,w=Array.isArray(g);if(w&&(_=Math.min(_,g.length)),2===f.dimensions)for(m=0;m<_;m++)if(Oy(c[m])){c[m].length>h[m].length&&n.push(jy("unused",i,u.concat(m,h[m].length)));var M=h[m].length;for(v=0;v<(w?Math.min(M,g[m].length):M);v++)y=w?g[m][v]:g,x=c[m][v],b=h[m][v],ne.validate(x,y)?b!==x&&b!==+x&&n.push(jy("dynamic",i,u.concat(m,v),x,b)):n.push(jy("value",i,u.concat(m,v),x))}else n.push(jy("array",i,u.concat(m),c[m]));else for(m=0;m<_;m++)y=w?g[m]:g,x=c[m],b=h[m],ne.validate(x,y)?b!==x&&b!==+x&&n.push(jy("dynamic",i,u.concat(m),x,b)):n.push(jy("value",i,u.concat(m),x))}else if(f.items&&!p&&Oy(c)){var A,k,T=g[Object.keys(g)[0]],S=[];for(A=0;A1&&a.push(jy("object","layout"))),_n.supplyDefaults(o);for(var s=o._fullData,l=r.length,u=0;u-1&&(s[u[r]].title="");for(r=0;r=0;i--){var a=t[i];if("scatter"===a.type&&a.xaxis===r.xaxis&&a.yaxis===r.yaxis){a.opacity=void 0;break}}}}},cx=ne.isArrayOrTypedArray,hx=function(t,e,r,n){var i=!1;if(e.marker){var a=e.marker.color,o=(e.marker.line||{}).color;a&&!cx(a)?i=a:o&&!cx(o)&&(i=o)}n("fillcolor",Oe.addOpacity((e.line||{}).color||i||r,.5))},fx=ne.isArrayOrTypedArray,px=function(t,e,r,n,i,a){var o=(t.marker||{}).color;(i("line.color",r),Xe(t,"line"))?Ye(t,e,n,i,{prefix:"line.",cLetter:"c"}):i("line.color",!fx(o)&&o||r);i("line.width"),(a||{}).noDash||i("line.dash")},dx=function(t,e,r){"spline"===r("line.shape")&&r("line.smoothing")},gx=function(t,e,r,n,i,a){var o=Tr.isBubble(t),s=(t.line||{}).color;(a=a||{},s&&(r=s),i("marker.symbol"),i("marker.opacity",o?.7:1),i("marker.size"),i("marker.color",r),Xe(t,"marker")&&Ye(t,e,n,i,{prefix:"marker.",cLetter:"c"}),a.noSelect||(i("selected.marker.color"),i("unselected.marker.color"),i("selected.marker.size"),i("unselected.marker.size")),a.noLine||(i("marker.line.color",s&&!Array.isArray(s)&&e.marker.color!==s?s:o?Oe.background:Oe.defaultLine),Xe(t,"marker.line")&&Ye(t,e,n,i,{prefix:"marker.line.",cLetter:"c"}),i("marker.line.width",o?1:0)),o&&(i("marker.sizeref"),i("marker.sizemin"),i("marker.sizemode")),a.gradient)&&("none"!==i("marker.gradient.type")&&i("marker.gradient.color"))},vx=function(t,e,r,n,i){i=i||{},n("textposition"),ne.coerceFont(n,"textfont",r.font),i.noSelect||(n("selected.textfont.color"),n("unselected.textfont.color"))},mx=function(t,e){var r,n;if("lines"===t.mode)return(r=t.line.color)&&Oe.opacity(r)?r:t.fillcolor;if("none"===t.mode)return t.fill?t.fillcolor:"";var i=e.mcc||(t.marker||{}).color,a=e.mlcc||((t.marker||{}).line||{}).color;return(n=i&&Oe.opacity(i)?i:a&&Oe.opacity(a)&&(e.mlw||((t.marker||{}).line||{}).width)?a:"")?Oe.opacity(n)<.3?Oe.addOpacity(n,.3):n:(r=(t.line||{}).color)&&Oe.opacity(r)&&Tr.hasLines(t)&&t.line.width?r:t.fillcolor},yx=function(t,e,r,n){var i=t.cd,a=i[0].trace,o=t.xa,s=t.ya,l=o.c2p(e),u=s.c2p(r),c=[l,u],h=a.hoveron||"",f=-1!==a.mode.indexOf("markers")?3:.5;if(-1!==h.indexOf("points")){var p=function(t){var e=Math.max(f,t.mrc||0),r=o.c2p(t.x)-l,n=s.c2p(t.y)-u;return Math.max(Math.sqrt(r*r+n*n)-e,1-f/e)},d=yo.getDistanceFunction(n,function(t){var e=Math.max(3,t.mrc||0),r=1-1/e,n=Math.abs(o.c2p(t.x)-l);return nR!=(S=w[b][1])>=R&&(A=w[b-1][0],k=w[b][0],S-T&&(M=A+(k-A)*(R-T)/(S-T),z=Math.min(z,M),I=Math.max(I,M)));z=Math.max(z,0),I=Math.min(I,o._length);var F=Oe.defaultLine;return Oe.opacity(a.fillcolor)?F=a.fillcolor:Oe.opacity((a.line||{}).color)&&(F=a.line.color),ne.extendFlat(t,{distance:t.maxHoverDistance,x0:z,x1:I,y0:R,y1:R,color:F}),delete t.index,a.text&&!Array.isArray(a.text)?t.text=String(a.text):t.text=a.name,[t]}}},xx=t.BADNUM,bx=ne.segmentsIntersect,_x=ne.constrain,wx=function(t,e){var r,n,i,a,o,s,l,u,c,h,f,p,d,g,v,m,y=e.xaxis,x=e.yaxis,b=e.simplify,_=e.connectGaps,w=e.baseTolerance,M=e.shape,A="linear"===M,k=[],T=Wr.minTolerance,S=new Array(t.length),E=0;function C(e){var r=t[e],n=y.c2p(r.x),i=x.c2p(r.y);return n===xx||i===xx?r.intoCenter||!1:[n,i]}function L(t){var e=t[0]/y._length,r=t[1]/x._length;return(1+Wr.toleranceGrowth*Math.max(0,-e,e-1,-r,r-1))*w}function z(t,e){var r=t[0]-e[0],n=t[1]-e[1];return Math.sqrt(r*r+n*n)}b||(w=T=-1);var P,I,D,O,R,F,B,N=Wr.maxScreensAway,j=-y._length*N,V=y._length*(1+N),U=-x._length*N,q=x._length*(1+N),H=[[j,U,V,U],[V,U,V,q],[V,q,j,q],[j,q,j,U]];function G(t){if(t[0]V||t[1]q)return[_x(t[0],j,V),_x(t[1],U,q)]}function W(t,e){return t[0]===e[0]&&(t[0]===j||t[0]===V)||(t[1]===e[1]&&(t[1]===U||t[1]===q)||void 0)}function Y(t,e,r){return function(n,i){var a=G(n),o=G(i),s=[];if(a&&o&&W(a,o))return s;a&&s.push(a),o&&s.push(o);var l=2*ne.constrain((n[t]+i[t])/2,e,r)-((a||n)[t]+(o||i)[t]);l&&((a&&o?l>0==a[t]>o[t]?a:o:a||o)[t]+=l);return s}}function X(t){var e=t[0],r=t[1],n=e===S[E-1][0],i=r===S[E-1][1];if(!n||!i)if(E>1){var a=e===S[E-2][0],o=r===S[E-2][1];n&&(e===j||e===V)&&a?o?E--:S[E-1]=t:i&&(r===U||r===q)&&o?a?E--:S[E-1]=t:S[E++]=t}else S[E++]=t}function Z(t){S[E-1][0]!==t[0]&&S[E-1][1]!==t[1]&&X([D,O]),X(t),R=null,D=O=0}function J(t){if(P=t[0]V?V:0,I=t[1]q?q:0,P||I){if(E)if(R){var e=B(R,t);e.length>1&&(Z(e[0]),S[E++]=e[1])}else F=B(S[E-1],t)[0],S[E++]=F;else S[E++]=[P||t[0],I||t[1]];var r=S[E-1];P&&I&&(r[0]!==P||r[1]!==I)?(R&&(D!==P&&O!==I?X(D&&O?(n=R,a=(i=t)[0]-n[0],o=(i[1]-n[1])/a,(n[1]*i[0]-i[1]*n[0])/a>0?[o>0?j:V,q]:[o>0?V:j,U]):[D||P,O||I]):D&&O&&X([D,O])),X([P,I])):D-P&&O-I&&X([P||D,I||O]),R=t,D=P,O=I}else R&&Z(B(R,t)[0]),S[E++]=t;var n,i,a,o}for("linear"===M||"spline"===M?B=function(t,e){for(var r=[],n=0,i=0;i<4;i++){var a=H[i],o=bx(t[0],t[1],e[0],e[1],a[0],a[1],a[2],a[3]);o&&(!n||Math.abs(o.x-r[0][0])>1||Math.abs(o.y-r[0][1])>1)&&(o=[o.x,o.y],n&&z(o,t)L(s))break;i=s,(d=c[0]*u[0]+c[1]*u[1])>f?(f=d,a=s,l=!1):d=t.length||!s)break;J(s),n=s}}else J(a)}R&&X([D||R[0],O||R[1]]),k.push(S.slice(0,E))}return k},Mx=function(t,e,r){var n,i,a=null;for(i=0;i0;for((l=c.selectAll("g.trace").data(n,function(t){return t[0].trace.uid})).enter().append("g").attr("class",function(t){return"trace scatter trace"+t[0].trace.uid}).style("stroke-miterlimit",2),Mx(t,r,n),function(t,r,n){var i;r.selectAll("g.trace").each(function(t){var r=e.select(this);if((i=t[0].trace)._nexttrace){if(i._nextFill=r.select(".js-fill.js-tonext"),!i._nextFill.size()){var a=":first-child";r.select(".js-fill.js-tozero").size()&&(a+=" + *"),i._nextFill=r.insert("path",a).attr("class","js-fill js-tonext")}}else r.selectAll(".js-fill.js-tonext").remove(),i._nextFill=null;i.fill&&("tozero"===i.fill.substr(0,6)||"toself"===i.fill||"to"===i.fill.substr(0,2)&&!i._prevtrace)?(i._ownFill=r.select(".js-fill.js-tozero"),i._ownFill.size()||(i._ownFill=r.insert("path",":first-child").attr("class","js-fill js-tozero"))):(r.selectAll(".js-fill.js-tozero").remove(),i._ownFill=null),r.selectAll(".js-fill").call(Sr.setClipUrl,n.layerClipId)})}(0,c,r),o=0,s={};os[e[0].trace.uid]?1:-1}),f)?(a&&(u=a()),e.transition().duration(i.duration).ease(i.easing).each("end",function(){u&&u()}).each("interrupt",function(){u&&u()}).each(function(){c.selectAll("g.trace").each(function(e,a){Tx(t,a,r,e,n,this,i)})})):c.selectAll("g.trace").each(function(e,a){Tx(t,a,r,e,n,this,i)});h&&l.exit().remove(),c.selectAll("path:not([d])").remove()};function Tx(t,r,n,i,a,o,s){var l,u;!function(t,r,n,i,a){var o=n.xaxis,s=n.yaxis,l=e.extent(ne.simpleMap(o.range,o.r2c)),u=e.extent(ne.simpleMap(s.range,s.r2c)),c=i[0].trace;if(!Tr.hasMarkers(c))return;var h=c.marker.maxdisplayed;if(0===h)return;var f=i.filter(function(t){return t.x>=l[0]&&t.x<=l[1]&&t.y>=u[0]&&t.y<=u[1]}),p=Math.ceil(f.length/h),d=0;a.forEach(function(t,e){var n=t[0].trace;Tr.hasMarkers(n)&&n.marker.maxdisplayed>0&&e0;function h(t){return c?t.transition():t}var f=n.xaxis,p=n.yaxis,d=i[0].trace,g=d.line,v=e.select(o);if(P.getComponentMethod("errorbars","plot")(v,n,s),!0===d.visible){var m,y;h(v).style("opacity",d.opacity);var x=d.fill.charAt(d.fill.length-1);"x"!==x&&"y"!==x&&(x=""),i[0].node3=v;var b="",_=[],w=d._prevtrace;w&&(b=w._prevRevpath||"",y=w._nextFill,_=w._polygons);var M,A,k,T,S,E,C,L,z,I="",D="",O=[],R=ne.noop;if(m=d._ownFill,Tr.hasLines(d)||"none"!==d.fill){for(y&&y.datum(i),-1!==["hv","vh","hvh","vhv"].indexOf(g.shape)?(k=Sr.steps(g.shape),T=Sr.steps(g.shape.split("").reverse().join(""))):k=T="spline"===g.shape?function(t){var e=t[t.length-1];return t.length>1&&t[0][0]===e[0]&&t[0][1]===e[1]?Sr.smoothclosed(t.slice(1),g.smoothing):Sr.smoothopen(t,g.smoothing)}:function(t){return"M"+t.join("L")},S=function(t){return T(t.reverse())},O=wx(i,{xaxis:f,yaxis:p,connectGaps:d.connectgaps,baseTolerance:Math.max(g.width||1,3)/4,shape:g.shape,simplify:g.simplify}),z=d._polygons=new Array(O.length),u=0;u1){var n=e.select(this);if(n.datum(i),t)h(n.style("opacity",0).attr("d",M).call(Sr.lineGroupStyle)).style("opacity",1);else{var a=h(n);a.attr("d",M),Sr.singleLineStyle(i,a)}}}}}var F=v.selectAll(".js-line").data(O);h(F.exit()).style("opacity",0).remove(),F.each(R(!1)),F.enter().append("path").classed("js-line",!0).style("vector-effect","non-scaling-stroke").call(Sr.lineGroupStyle).each(R(!0)),Sr.setClipUrl(F,n.layerClipId),O.length?(m?E&&L&&(x?("y"===x?E[1]=L[1]=p.c2p(0,!0):"x"===x&&(E[0]=L[0]=f.c2p(0,!0)),h(m).attr("d","M"+L+"L"+E+"L"+I.substr(1)).call(Sr.singleFillStyle)):h(m).attr("d",I+"Z").call(Sr.singleFillStyle)):y&&("tonext"===d.fill.substr(0,6)&&I&&b?("tonext"===d.fill?h(y).attr("d",I+"Z"+b+"Z").call(Sr.singleFillStyle):h(y).attr("d",I+"L"+b.substr(1)+"Z").call(Sr.singleFillStyle),d._polygons=d._polygons.concat(_)):(N(y),d._polygons=null)),d._prevRevpath=D,d._prevPolygons=z):(m?N(m):y&&N(y),d._polygons=d._prevRevpath=d._prevPolygons=null);var B=v.selectAll(".points");l=B.data([i]),B.each(H),l.enter().append("g").classed("points",!0).each(H),l.exit().remove(),l.each(function(t){var r=!1===t[0].trace.cliponaxis;Sr.setClipUrl(e.select(this),r?null:n.layerClipId)})}function N(t){h(t).attr("d","M0,0Z")}function j(t){return t.filter(function(t){return t.vis})}function V(t){return t.id}function U(t){if(t.ids)return V}function q(){return!1}function H(r){var i,a=r[0].trace,o=e.select(this),s=Tr.hasMarkers(a),l=Tr.hasText(a),u=U(a),d=q,g=q;s&&(d=a.marker.maxdisplayed||a._needsCull?j:ne.identity),l&&(g=a.marker.maxdisplayed||a._needsCull?j:ne.identity);var v=(i=o.selectAll("path.point").data(d,u)).enter().append("path").classed("point",!0);c&&v.call(Sr.pointStyle,a,t).call(Sr.translatePoints,f,p).style("opacity",0).transition().style("opacity",1);var m=s&&Sr.tryColorscale(a.marker,""),y=s&&Sr.tryColorscale(a.marker,"line");i.order(),i.each(function(r){var i=e.select(this),o=h(i);Sr.translatePoint(r,o,f,p)?(Sr.singlePointStyle(r,o,a,m,y,t),n.layerClipId&&Sr.hideOutsideRangePoint(r,o,f,p,a.xcalendar,a.ycalendar),a.customdata&&i.classed("plotly-customdata",null!==r.data&&void 0!==r.data)):o.remove()}),c?i.exit().transition().style("opacity",0).remove():i.exit().remove(),(i=o.selectAll("g").data(g,u)).enter().append("g").classed("textpoint",!0).append("text"),i.order(),i.each(function(t){var r=e.select(this),i=h(r.select("text"));Sr.translatePoint(t,i,f,p)?n.layerClipId&&Sr.hideOutsideRangePoint(t,r,f,p,a.xcalendar,a.ycalendar):r.remove()}),i.selectAll("text").call(Sr.textPointStyle,a,t).each(function(t){var r=f.c2p(t.x),n=p.c2p(t.y);e.select(this).selectAll("tspan.line").each(function(){h(e.select(this)).attr({x:r,y:n})})}),i.exit().remove()}}var Sx=function(t,e){var r,n,i,a,o=t.cd,s=t.xaxis,l=t.yaxis,u=[],c=o[0].trace;if(!Tr.hasMarkers(c)&&!Tr.hasText(c))return[];if(!1===e)for(r=0;r":return function(t){return u(t)>s};case">=":return function(t){return u(t)>=s};case"[]":return function(t){var e=u(t);return e>=s[0]&&e<=s[1]};case"()":return function(t){var e=u(t);return e>s[0]&&e=s[0]&&es[0]&&e<=s[1]};case"][":return function(t){var e=u(t);return e<=s[0]||e>=s[1]};case")(":return function(t){var e=u(t);return es[1]};case"](":return function(t){var e=u(t);return e<=s[0]||e>s[1]};case")[":return function(t){var e=u(t);return e=s[1]};case"{}":return function(t){return-1!==s.indexOf(u(t))};case"}{":return function(t){return-1===s.indexOf(u(t))}}}(r,ri.getDataToCoordFunc(t,e,i,n),o),f={},p={},d=0;r.preservegaps?(u=function(t){f[t.astr]=ne.extendDeep([],t.get()),t.set(new Array(a))},c=function(t,e){var r=f[t.astr][e];t.get()[e]=r}):(u=function(t){f[t.astr]=ne.extendDeep([],t.get()),t.set([])},c=function(t,e){var r=f[t.astr][e];t.get().push(r)}),m(u);for(var g=Nx(e.transforms,r),v=0;v1?"%{group} (%{trace})":"%{group}");var o=t.styles,s=i.styles=[];if(o)for(n=0;n0,l=[],u=[],c=0,h=0;for(n=0;n0&&l.push("var "+u.join(",")),n=a-1;n>=0;--n)c=t[n],l.push(["for(i",n,"=0;i",n,"0&&l.push(["index[",h,"]-=s",h].join("")),l.push(["++index[",c,"]"].join(""))),l.push("}")}return l.join("\n")}function tb(t,e,r){for(var n=t.body,i=[],a=[],o=0;o0&&g.push("shape=SS.slice(0)"),t.indexArgs.length>0){var v=new Array(r);for(a=0;a0&&d.push("var "+g.join(",")),a=0;a3&&d.push(tb(t.pre,t,i));var b=tb(t.body,t,i),_=function(t){for(var e=0,r=t[0].length;e0,l=[],u=0;u0;){"].join("")),l.push(["if(j",u,"<",o,"){"].join("")),l.push(["s",e[u],"=j",u].join("")),l.push(["j",u,"=0"].join("")),l.push(["}else{s",e[u],"=",o].join("")),l.push(["j",u,"-=",o,"}"].join("")),s&&l.push(["index[",e[u],"]=j",u].join(""));for(u=0;u3&&d.push(tb(t.post,t,i)),t.debug&&console.log("-----Generated cwise routine for ",e,":\n"+d.join("\n")+"\n----------");var w=[t.funcName||"unnamed","_cwise_loop_",n[0].join("s"),"m",_,function(t){for(var e=new Array(t.length),r=!0,n=0;n0&&(r=r&&e[n]===e[n-1])}return r?e[0]:e.join("")}(i)].join("");return new Function(["function ",w,"(",p.join(","),"){",d.join("\n"),"} return ",w].join(""))()};var rb=function(t){var e=["'use strict'","var CACHED={}"],r=[],n=t.funcName+"_cwise_thunk";e.push(["return function ",n,"(",t.shimArgs.join(","),"){"].join(""));for(var i=[],a=[],o=[["array",t.arrayArgs[0],".shape.slice(",Math.max(0,t.arrayBlockIndices[0]),t.arrayBlockIndices[0]<0?","+t.arrayBlockIndices[0]+")":")"].join("")],s=[],l=[],u=0;u0&&(s.push("array"+t.arrayArgs[0]+".shape.length===array"+c+".shape.length+"+(Math.abs(t.arrayBlockIndices[0])-Math.abs(t.arrayBlockIndices[u]))),l.push("array"+t.arrayArgs[0]+".shape[shapeIndex+"+Math.max(0,t.arrayBlockIndices[0])+"]===array"+c+".shape[shapeIndex+"+Math.max(0,t.arrayBlockIndices[u])+"]"))}for(t.arrayArgs.length>1&&(e.push("if (!("+s.join(" && ")+")) throw new Error('cwise: Arrays do not all have the same dimensionality!')"),e.push("for(var shapeIndex=array"+t.arrayArgs[0]+".shape.length-"+Math.abs(t.arrayBlockIndices[0])+"; shapeIndex--\x3e0;) {"),e.push("if (!("+l.join(" && ")+")) throw new Error('cwise: Arrays do not all have the same shape!')"),e.push("}")),u=0;u0)throw new Error("cwise: pre() block may not reference array args");if(n0)throw new Error("cwise: post() block may not reference array args")}else if("scalar"===i)e.scalarArgs.push(n),e.shimArgs.push("scalar"+n);else if("index"===i){if(e.indexArgs.push(n),n0)throw new Error("cwise: pre() block may not reference array index");if(n0)throw new Error("cwise: post() block may not reference array index")}else if("shape"===i){if(e.shapeArgs.push(n),nr.length)throw new Error("cwise: Too many arguments in pre() block");if(e.body.args.length>r.length)throw new Error("cwise: Too many arguments in body() block");if(e.post.args.length>r.length)throw new Error("cwise: Too many arguments in post() block");return e.debug=!!t.printCode||!!t.debug,e.funcName=t.funcName||"cwise",e.blockSize=t.blockSize||64,rb(e)},ib={},ab={body:"",args:[],thisVars:[],localVars:[]};function ob(t){if(!t)return ab;for(var e=0;e>",rrshift:">>>"};!function(){for(var t in lb){var e=lb[t];ib[t]=sb({args:["array","array","array"],body:{args:["a","b","c"],body:"a=b"+e+"c"},funcName:t}),ib[t+"eq"]=sb({args:["array","array"],body:{args:["a","b"],body:"a"+e+"=b"},rvalue:!0,funcName:t+"eq"}),ib[t+"s"]=sb({args:["array","array","scalar"],body:{args:["a","b","s"],body:"a=b"+e+"s"},funcName:t+"s"}),ib[t+"seq"]=sb({args:["array","scalar"],body:{args:["a","s"],body:"a"+e+"=s"},rvalue:!0,funcName:t+"seq"})}}();var ub={not:"!",bnot:"~",neg:"-",recip:"1.0/"};!function(){for(var t in ub){var e=ub[t];ib[t]=sb({args:["array","array"],body:{args:["a","b"],body:"a="+e+"b"},funcName:t}),ib[t+"eq"]=sb({args:["array"],body:{args:["a"],body:"a="+e+"a"},rvalue:!0,count:2,funcName:t+"eq"})}}();var cb={and:"&&",or:"||",eq:"===",neq:"!==",lt:"<",gt:">",leq:"<=",geq:">="};!function(){for(var t in cb){var e=cb[t];ib[t]=sb({args:["array","array","array"],body:{args:["a","b","c"],body:"a=b"+e+"c"},funcName:t}),ib[t+"s"]=sb({args:["array","array","scalar"],body:{args:["a","b","s"],body:"a=b"+e+"s"},funcName:t+"s"}),ib[t+"eq"]=sb({args:["array","array"],body:{args:["a","b"],body:"a=a"+e+"b"},rvalue:!0,count:2,funcName:t+"eq"}),ib[t+"seq"]=sb({args:["array","scalar"],body:{args:["a","s"],body:"a=a"+e+"s"},rvalue:!0,count:2,funcName:t+"seq"})}}();var hb=["abs","acos","asin","atan","ceil","cos","exp","floor","log","round","sin","sqrt","tan"];!function(){for(var t=0;tthis_s){this_s=-a}else if(a>this_s){this_s=a}",localVars:[],thisVars:["this_s"]},post:{args:[],localVars:[],thisVars:["this_s"],body:"return this_s"},funcName:"norminf"}),ib.norm1=nb({args:["array"],pre:{args:[],localVars:[],thisVars:["this_s"],body:"this_s=0"},body:{args:[{name:"a",lvalue:!1,rvalue:!0,count:3}],body:"this_s+=a<0?-a:a",localVars:[],thisVars:["this_s"]},post:{args:[],localVars:[],thisVars:["this_s"],body:"return this_s"},funcName:"norm1"}),ib.sup=nb({args:["array"],pre:{body:"this_h=-Infinity",args:[],thisVars:["this_h"],localVars:[]},body:{body:"if(_inline_1_arg0_>this_h)this_h=_inline_1_arg0_",args:[{name:"_inline_1_arg0_",lvalue:!1,rvalue:!0,count:2}],thisVars:["this_h"],localVars:[]},post:{body:"return this_h",args:[],thisVars:["this_h"],localVars:[]}}),ib.inf=nb({args:["array"],pre:{body:"this_h=Infinity",args:[],thisVars:["this_h"],localVars:[]},body:{body:"if(_inline_1_arg0_this_v){this_v=_inline_1_arg1_;for(var _inline_1_k=0;_inline_1_k<_inline_1_arg0_.length;++_inline_1_k){this_i[_inline_1_k]=_inline_1_arg0_[_inline_1_k]}}}",args:[{name:"_inline_1_arg0_",lvalue:!1,rvalue:!0,count:2},{name:"_inline_1_arg1_",lvalue:!1,rvalue:!0,count:2}],thisVars:["this_i","this_v"],localVars:["_inline_1_k"]},post:{body:"{return this_i}",args:[],thisVars:["this_i"],localVars:[]}}),ib.random=sb({args:["array"],pre:{args:[],body:"this_f=Math.random",thisVars:["this_f"]},body:{args:["a"],body:"a=this_f()",thisVars:["this_f"]},funcName:"random"}),ib.assign=sb({args:["array","array"],body:{args:["a","b"],body:"a=b"},funcName:"assign"}),ib.assigns=sb({args:["array","scalar"],body:{args:["a","b"],body:"a=b"},funcName:"assigns"}),ib.equals=nb({args:["array","array"],pre:ab,body:{args:[{name:"x",lvalue:!1,rvalue:!0,count:1},{name:"y",lvalue:!1,rvalue:!0,count:1}],body:"if(x!==y){return false}",localVars:[],thisVars:[]},post:{args:[],localVars:[],thisVars:[],body:"return true"},funcName:"equals"});var db=function(t){for(var e=new Array(t),r=0;rMath.abs(this.stride[1]))?[1,0]:[0,1]}})"):3===e&&i.push("var s0=Math.abs(this.stride[0]),s1=Math.abs(this.stride[1]),s2=Math.abs(this.stride[2]);if(s0>s1){if(s1>s2){return [2,1,0];}else if(s0>s2){return [1,2,0];}else{return [1,0,2];}}else if(s0>s2){return [2,0,1];}else if(s2>s1){return [0,1,2];}else{return [0,2,1];}}})")):i.push("ORDER})")),i.push("proto.set=function "+r+"_set("+o.join(",")+",v){"),n?i.push("return this.data.set("+s+",v)}"):i.push("return this.data["+s+"]=v}"),i.push("proto.get=function "+r+"_get("+o.join(",")+"){"),n?i.push("return this.data.get("+s+")}"):i.push("return this.data["+s+"]}"),i.push("proto.index=function "+r+"_index(",o.join(),"){return "+s+"}"),i.push("proto.hi=function "+r+"_hi("+o.join(",")+"){return new "+r+"(this.data,"+a.map(function(t){return["(typeof i",t,"!=='number'||i",t,"<0)?this.shape[",t,"]:i",t,"|0"].join("")}).join(",")+","+a.map(function(t){return"this.stride["+t+"]"}).join(",")+",this.offset)}");var c=a.map(function(t){return"a"+t+"=this.shape["+t+"]"}),h=a.map(function(t){return"c"+t+"=this.stride["+t+"]"});i.push("proto.lo=function "+r+"_lo("+o.join(",")+"){var b=this.offset,d=0,"+c.join(",")+","+h.join(","));for(var f=0;f=0){d=i"+f+"|0;b+=c"+f+"*d;a"+f+"-=d}");i.push("return new "+r+"(this.data,"+a.map(function(t){return"a"+t}).join(",")+","+a.map(function(t){return"c"+t}).join(",")+",b)}"),i.push("proto.step=function "+r+"_step("+o.join(",")+"){var "+a.map(function(t){return"a"+t+"=this.shape["+t+"]"}).join(",")+","+a.map(function(t){return"b"+t+"=this.stride["+t+"]"}).join(",")+",c=this.offset,d=0,ceil=Math.ceil");for(f=0;f=0){c=(c+this.stride["+f+"]*i"+f+")|0}else{a.push(this.shape["+f+"]);b.push(this.stride["+f+"])}");return i.push("var ctor=CTOR_LIST[a.length+1];return ctor(this.data,a,b,c)}"),i.push("return function construct_"+r+"(data,shape,stride,offset){return new "+r+"(data,"+a.map(function(t){return"shape["+t+"]"}).join(",")+","+a.map(function(t){return"stride["+t+"]"}).join(",")+",offset)}"),new Function("CTOR_LIST","ORDER",i.join("\n"))(_b[t],xb)}var _b={float32:[],float64:[],int8:[],int16:[],int32:[],uint8:[],uint16:[],uint32:[],array:[],uint8_clamped:[],buffer:[],generic:[]};var wb=function(t,e,r,n){if(void 0===t)return(0,_b.array[0])([]);"number"==typeof t&&(t=[t]),void 0===e&&(e=[t.length]);var i=e.length;if(void 0===r){r=new Array(i);for(var a=i-1,o=1;a>=0;--a)r[a]=o,o*=e[a]}if(void 0===n)for(n=0,a=0;a0)-(t<0)},Mb.abs=function(t){var e=t>>31;return(t^e)-e},Mb.min=function(t,e){return e^(t^e)&-(t65535)<<4,e|=r=((t>>>=e)>255)<<3,e|=r=((t>>>=r)>15)<<2,(e|=r=((t>>>=r)>3)<<1)|(t>>>=r)>>1},Mb.log10=function(t){return t>=1e9?9:t>=1e8?8:t>=1e7?7:t>=1e6?6:t>=1e5?5:t>=1e4?4:t>=1e3?3:t>=100?2:t>=10?1:0},Mb.popCount=function(t){return 16843009*((t=(858993459&(t-=t>>>1&1431655765))+(t>>>2&858993459))+(t>>>4)&252645135)>>>24},Mb.countTrailingZeros=Ab,Mb.nextPow2=function(t){return t+=0===t,--t,t|=t>>>1,t|=t>>>2,t|=t>>>4,t|=t>>>8,(t|=t>>>16)+1},Mb.prevPow2=function(t){return t|=t>>>1,t|=t>>>2,t|=t>>>4,t|=t>>>8,(t|=t>>>16)-(t>>>1)},Mb.parity=function(t){return t^=t>>>16,t^=t>>>8,t^=t>>>4,27030>>>(t&=15)&1};var kb=new Array(256);!function(t){for(var e=0;e<256;++e){var r=e,n=e,i=7;for(r>>>=1;r;r>>>=1)n<<=1,n|=1&r,--i;t[e]=n<>>8&255]<<16|kb[t>>>16&255]<<8|kb[t>>>24&255]},Mb.interleave2=function(t,e){return(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t&=65535)|t<<8))|t<<4))|t<<2))|t<<1))|(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e&=65535)|e<<8))|e<<4))|e<<2))|e<<1))<<1},Mb.deinterleave2=function(t,e){return(t=65535&((t=16711935&((t=252645135&((t=858993459&((t=t>>>e&1431655765)|t>>>1))|t>>>2))|t>>>4))|t>>>16))<<16>>16},Mb.interleave3=function(t,e,r){return t=1227133513&((t=3272356035&((t=251719695&((t=4278190335&((t&=1023)|t<<16))|t<<8))|t<<4))|t<<2),(t|=(e=1227133513&((e=3272356035&((e=251719695&((e=4278190335&((e&=1023)|e<<16))|e<<8))|e<<4))|e<<2))<<1)|(r=1227133513&((r=3272356035&((r=251719695&((r=4278190335&((r&=1023)|r<<16))|r<<8))|r<<4))|r<<2))<<2},Mb.deinterleave3=function(t,e){return(t=1023&((t=4278190335&((t=251719695&((t=3272356035&((t=t>>>e&1227133513)|t>>>2))|t>>>4))|t>>>8))|t>>>16))<<22>>22},Mb.nextCombination=function(t){var e=t|t-1;return e+1|(~e&-~e)-1>>>Ab(t)+1};for(var Tb={byteLength:function(t){return 3*t.length/4-Ib(t)},toByteArray:function(t){var e,r,n,i,a,o=t.length;i=Ib(t),a=new Cb(3*o/4-i),r=i>0?o-4:o;var s=0;for(e=0;e>16&255,a[s++]=n>>8&255,a[s++]=255&n;2===i?(n=Eb[t.charCodeAt(e)]<<2|Eb[t.charCodeAt(e+1)]>>4,a[s++]=255&n):1===i&&(n=Eb[t.charCodeAt(e)]<<10|Eb[t.charCodeAt(e+1)]<<4|Eb[t.charCodeAt(e+2)]>>2,a[s++]=n>>8&255,a[s++]=255&n);return a},fromByteArray:function(t){for(var e,r=t.length,n=r%3,i="",a=[],o=0,s=r-n;os?s:o+16383));1===n?(e=t[r-1],i+=Sb[e>>2],i+=Sb[e<<4&63],i+="=="):2===n&&(e=(t[r-2]<<8)+t[r-1],i+=Sb[e>>10],i+=Sb[e>>4&63],i+=Sb[e<<2&63],i+="=");return a.push(i),a.join("")}},Sb=[],Eb=[],Cb="undefined"!=typeof Uint8Array?Uint8Array:Array,Lb="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",zb=0,Pb=Lb.length;zb0)throw new Error("Invalid string. Length must be a multiple of 4");return"="===t[e-2]?2:"="===t[e-1]?1:0}function Db(t,e,r){for(var n,i,a=[],o=e;o>18&63]+Sb[i>>12&63]+Sb[i>>6&63]+Sb[63&i]);return a.join("")}Eb["-".charCodeAt(0)]=62,Eb["_".charCodeAt(0)]=63;var Ob={read:function(t,e,r,n,i){var a,o,s=8*i-n-1,l=(1<>1,c=-7,h=r?i-1:0,f=r?-1:1,p=t[e+h];for(h+=f,a=p&(1<<-c)-1,p>>=-c,c+=s;c>0;a=256*a+t[e+h],h+=f,c-=8);for(o=a&(1<<-c)-1,a>>=-c,c+=n;c>0;o=256*o+t[e+h],h+=f,c-=8);if(0===a)a=1-u;else{if(a===l)return o?NaN:1/0*(p?-1:1);o+=Math.pow(2,n),a-=u}return(p?-1:1)*o*Math.pow(2,a-n)},write:function(t,e,r,n,i,a){var o,s,l,u=8*a-i-1,c=(1<>1,f=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,p=n?0:a-1,d=n?1:-1,g=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(s=isNaN(e)?1:0,o=c):(o=Math.floor(Math.log(e)/Math.LN2),e*(l=Math.pow(2,-o))<1&&(o--,l*=2),(e+=o+h>=1?f/l:f*Math.pow(2,1-h))*l>=2&&(o++,l/=2),o+h>=c?(s=0,o=c):o+h>=1?(s=(e*l-1)*Math.pow(2,i),o+=h):(s=e*Math.pow(2,h-1)*Math.pow(2,i),o=0));i>=8;t[r+p]=255&s,p+=d,s/=256,i-=8);for(o=o<0;t[r+p]=255&o,p+=d,o/=256,u-=8);t[r+p-d]|=128*g}},Rb={};Rb.Buffer=Nb,Rb.SlowBuffer=function(t){+t!=t&&(t=0);return Nb.alloc(+t)},Rb.INSPECT_MAX_BYTES=50;var Fb=2147483647;function Bb(t){if(t>Fb)throw new RangeError("Invalid typed array length");var e=new Uint8Array(t);return e.__proto__=Nb.prototype,e}function Nb(t,e,r){if("number"==typeof t){if("string"==typeof e)throw new Error("If encoding is specified then the first argument must be a string");return Ub(t)}return jb(t,e,r)}function jb(t,e,r){if("number"==typeof t)throw new TypeError('"value" argument must not be a number');return y_(t)||t&&y_(t.buffer)?function(t,e,r){if(e<0||t.byteLength=Fb)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+Fb.toString(16)+" bytes");return 0|t}function Gb(t,e){if(Nb.isBuffer(t))return t.length;if(ArrayBuffer.isView(t)||y_(t))return t.byteLength;"string"!=typeof t&&(t=""+t);var r=t.length;if(0===r)return 0;for(var n=!1;;)switch(e){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":case void 0:return g_(t).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return v_(t).length;default:if(n)return g_(t).length;e=(""+e).toLowerCase(),n=!0}}function Wb(t,e,r){var n=t[e];t[e]=t[r],t[r]=n}function Yb(t,e,r,n,i){if(0===t.length)return-1;if("string"==typeof r?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),x_(r=+r)&&(r=i?0:t.length-1),r<0&&(r=t.length+r),r>=t.length){if(i)return-1;r=t.length-1}else if(r<0){if(!i)return-1;r=0}if("string"==typeof e&&(e=Nb.from(e,n)),Nb.isBuffer(e))return 0===e.length?-1:Xb(t,e,r,n,i);if("number"==typeof e)return e&=255,"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(t,e,r):Uint8Array.prototype.lastIndexOf.call(t,e,r):Xb(t,[e],r,n,i);throw new TypeError("val must be string, number or Buffer")}function Xb(t,e,r,n,i){var a,o=1,s=t.length,l=e.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(t.length<2||e.length<2)return-1;o=2,s/=2,l/=2,r/=2}function u(t,e){return 1===o?t[e]:t.readUInt16BE(e*o)}if(i){var c=-1;for(a=r;as&&(r=s-l),a=r;a>=0;a--){for(var h=!0,f=0;fi&&(n=i):n=i;var a=e.length;n>a/2&&(n=a/2);for(var o=0;o>8,i=r%256,a.push(i),a.push(n);return a}(e,t.length-r),t,r,n)}function e_(t,e,r){return 0===e&&r===t.length?Tb.fromByteArray(t):Tb.fromByteArray(t.slice(e,r))}function r_(t,e,r){r=Math.min(t.length,r);for(var n=[],i=e;i239?4:u>223?3:u>191?2:1;if(i+h<=r)switch(h){case 1:u<128&&(c=u);break;case 2:128==(192&(a=t[i+1]))&&(l=(31&u)<<6|63&a)>127&&(c=l);break;case 3:a=t[i+1],o=t[i+2],128==(192&a)&&128==(192&o)&&(l=(15&u)<<12|(63&a)<<6|63&o)>2047&&(l<55296||l>57343)&&(c=l);break;case 4:a=t[i+1],o=t[i+2],s=t[i+3],128==(192&a)&&128==(192&o)&&128==(192&s)&&(l=(15&u)<<18|(63&a)<<12|(63&o)<<6|63&s)>65535&&l<1114112&&(c=l)}null===c?(c=65533,h=1):c>65535&&(c-=65536,n.push(c>>>10&1023|55296),c=56320|1023&c),n.push(c),i+=h}return function(t){var e=t.length;if(e<=n_)return String.fromCharCode.apply(String,t);var r="",n=0;for(;nthis.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if((r>>>=0)<=(e>>>=0))return"";for(t||(t="utf8");;)switch(t){case"hex":return o_(this,e,r);case"utf8":case"utf-8":return r_(this,e,r);case"ascii":return i_(this,e,r);case"latin1":case"binary":return a_(this,e,r);case"base64":return e_(this,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return s_(this,e,r);default:if(n)throw new TypeError("Unknown encoding: "+t);t=(t+"").toLowerCase(),n=!0}}.apply(this,arguments)},Nb.prototype.toLocaleString=Nb.prototype.toString,Nb.prototype.equals=function(t){if(!Nb.isBuffer(t))throw new TypeError("Argument must be a Buffer");return this===t||0===Nb.compare(this,t)},Nb.prototype.inspect=function(){var t="",e=Rb.INSPECT_MAX_BYTES;return this.length>0&&(t=this.toString("hex",0,e).match(/.{2}/g).join(" "),this.length>e&&(t+=" ... ")),""},Nb.prototype.compare=function(t,e,r,n,i){if(!Nb.isBuffer(t))throw new TypeError("Argument must be a Buffer");if(void 0===e&&(e=0),void 0===r&&(r=t?t.length:0),void 0===n&&(n=0),void 0===i&&(i=this.length),e<0||r>t.length||n<0||i>this.length)throw new RangeError("out of range index");if(n>=i&&e>=r)return 0;if(n>=i)return-1;if(e>=r)return 1;if(e>>>=0,r>>>=0,n>>>=0,i>>>=0,this===t)return 0;for(var a=i-n,o=r-e,s=Math.min(a,o),l=this.slice(n,i),u=t.slice(e,r),c=0;c>>=0,isFinite(r)?(r>>>=0,void 0===n&&(n="utf8")):(n=r,r=void 0)}var i=this.length-e;if((void 0===r||r>i)&&(r=i),t.length>0&&(r<0||e<0)||e>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var a=!1;;)switch(n){case"hex":return Zb(this,t,e,r);case"utf8":case"utf-8":return Jb(this,t,e,r);case"ascii":return Kb(this,t,e,r);case"latin1":case"binary":return Qb(this,t,e,r);case"base64":return $b(this,t,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return t_(this,t,e,r);default:if(a)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),a=!0}},Nb.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var n_=4096;function i_(t,e,r){var n="";r=Math.min(t.length,r);for(var i=e;in)&&(r=n);for(var i="",a=e;ar)throw new RangeError("Trying to access beyond buffer length")}function u_(t,e,r,n,i,a){if(!Nb.isBuffer(t))throw new TypeError('"buffer" argument must be a Buffer instance');if(e>i||et.length)throw new RangeError("Index out of range")}function c_(t,e,r,n,i,a){if(r+n>t.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function h_(t,e,r,n,i){return e=+e,r>>>=0,i||c_(t,0,r,4),Ob.write(t,e,r,n,23,4),r+4}function f_(t,e,r,n,i){return e=+e,r>>>=0,i||c_(t,0,r,8),Ob.write(t,e,r,n,52,8),r+8}Nb.prototype.slice=function(t,e){var r=this.length;t=~~t,e=void 0===e?r:~~e,t<0?(t+=r)<0&&(t=0):t>r&&(t=r),e<0?(e+=r)<0&&(e=0):e>r&&(e=r),e>>=0,e>>>=0,r||l_(t,e,this.length);for(var n=this[t],i=1,a=0;++a>>=0,e>>>=0,r||l_(t,e,this.length);for(var n=this[t+--e],i=1;e>0&&(i*=256);)n+=this[t+--e]*i;return n},Nb.prototype.readUInt8=function(t,e){return t>>>=0,e||l_(t,1,this.length),this[t]},Nb.prototype.readUInt16LE=function(t,e){return t>>>=0,e||l_(t,2,this.length),this[t]|this[t+1]<<8},Nb.prototype.readUInt16BE=function(t,e){return t>>>=0,e||l_(t,2,this.length),this[t]<<8|this[t+1]},Nb.prototype.readUInt32LE=function(t,e){return t>>>=0,e||l_(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+16777216*this[t+3]},Nb.prototype.readUInt32BE=function(t,e){return t>>>=0,e||l_(t,4,this.length),16777216*this[t]+(this[t+1]<<16|this[t+2]<<8|this[t+3])},Nb.prototype.readIntLE=function(t,e,r){t>>>=0,e>>>=0,r||l_(t,e,this.length);for(var n=this[t],i=1,a=0;++a=(i*=128)&&(n-=Math.pow(2,8*e)),n},Nb.prototype.readIntBE=function(t,e,r){t>>>=0,e>>>=0,r||l_(t,e,this.length);for(var n=e,i=1,a=this[t+--n];n>0&&(i*=256);)a+=this[t+--n]*i;return a>=(i*=128)&&(a-=Math.pow(2,8*e)),a},Nb.prototype.readInt8=function(t,e){return t>>>=0,e||l_(t,1,this.length),128&this[t]?-1*(255-this[t]+1):this[t]},Nb.prototype.readInt16LE=function(t,e){t>>>=0,e||l_(t,2,this.length);var r=this[t]|this[t+1]<<8;return 32768&r?4294901760|r:r},Nb.prototype.readInt16BE=function(t,e){t>>>=0,e||l_(t,2,this.length);var r=this[t+1]|this[t]<<8;return 32768&r?4294901760|r:r},Nb.prototype.readInt32LE=function(t,e){return t>>>=0,e||l_(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24},Nb.prototype.readInt32BE=function(t,e){return t>>>=0,e||l_(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]},Nb.prototype.readFloatLE=function(t,e){return t>>>=0,e||l_(t,4,this.length),Ob.read(this,t,!0,23,4)},Nb.prototype.readFloatBE=function(t,e){return t>>>=0,e||l_(t,4,this.length),Ob.read(this,t,!1,23,4)},Nb.prototype.readDoubleLE=function(t,e){return t>>>=0,e||l_(t,8,this.length),Ob.read(this,t,!0,52,8)},Nb.prototype.readDoubleBE=function(t,e){return t>>>=0,e||l_(t,8,this.length),Ob.read(this,t,!1,52,8)},Nb.prototype.writeUIntLE=function(t,e,r,n){(t=+t,e>>>=0,r>>>=0,n)||u_(this,t,e,r,Math.pow(2,8*r)-1,0);var i=1,a=0;for(this[e]=255&t;++a>>=0,r>>>=0,n)||u_(this,t,e,r,Math.pow(2,8*r)-1,0);var i=r-1,a=1;for(this[e+i]=255&t;--i>=0&&(a*=256);)this[e+i]=t/a&255;return e+r},Nb.prototype.writeUInt8=function(t,e,r){return t=+t,e>>>=0,r||u_(this,t,e,1,255,0),this[e]=255&t,e+1},Nb.prototype.writeUInt16LE=function(t,e,r){return t=+t,e>>>=0,r||u_(this,t,e,2,65535,0),this[e]=255&t,this[e+1]=t>>>8,e+2},Nb.prototype.writeUInt16BE=function(t,e,r){return t=+t,e>>>=0,r||u_(this,t,e,2,65535,0),this[e]=t>>>8,this[e+1]=255&t,e+2},Nb.prototype.writeUInt32LE=function(t,e,r){return t=+t,e>>>=0,r||u_(this,t,e,4,4294967295,0),this[e+3]=t>>>24,this[e+2]=t>>>16,this[e+1]=t>>>8,this[e]=255&t,e+4},Nb.prototype.writeUInt32BE=function(t,e,r){return t=+t,e>>>=0,r||u_(this,t,e,4,4294967295,0),this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t,e+4},Nb.prototype.writeIntLE=function(t,e,r,n){if(t=+t,e>>>=0,!n){var i=Math.pow(2,8*r-1);u_(this,t,e,r,i-1,-i)}var a=0,o=1,s=0;for(this[e]=255&t;++a>0)-s&255;return e+r},Nb.prototype.writeIntBE=function(t,e,r,n){if(t=+t,e>>>=0,!n){var i=Math.pow(2,8*r-1);u_(this,t,e,r,i-1,-i)}var a=r-1,o=1,s=0;for(this[e+a]=255&t;--a>=0&&(o*=256);)t<0&&0===s&&0!==this[e+a+1]&&(s=1),this[e+a]=(t/o>>0)-s&255;return e+r},Nb.prototype.writeInt8=function(t,e,r){return t=+t,e>>>=0,r||u_(this,t,e,1,127,-128),t<0&&(t=255+t+1),this[e]=255&t,e+1},Nb.prototype.writeInt16LE=function(t,e,r){return t=+t,e>>>=0,r||u_(this,t,e,2,32767,-32768),this[e]=255&t,this[e+1]=t>>>8,e+2},Nb.prototype.writeInt16BE=function(t,e,r){return t=+t,e>>>=0,r||u_(this,t,e,2,32767,-32768),this[e]=t>>>8,this[e+1]=255&t,e+2},Nb.prototype.writeInt32LE=function(t,e,r){return t=+t,e>>>=0,r||u_(this,t,e,4,2147483647,-2147483648),this[e]=255&t,this[e+1]=t>>>8,this[e+2]=t>>>16,this[e+3]=t>>>24,e+4},Nb.prototype.writeInt32BE=function(t,e,r){return t=+t,e>>>=0,r||u_(this,t,e,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t,e+4},Nb.prototype.writeFloatLE=function(t,e,r){return h_(this,t,e,!0,r)},Nb.prototype.writeFloatBE=function(t,e,r){return h_(this,t,e,!1,r)},Nb.prototype.writeDoubleLE=function(t,e,r){return f_(this,t,e,!0,r)},Nb.prototype.writeDoubleBE=function(t,e,r){return f_(this,t,e,!1,r)},Nb.prototype.copy=function(t,e,r,n){if(!Nb.isBuffer(t))throw new TypeError("argument should be a Buffer");if(r||(r=0),n||0===n||(n=this.length),e>=t.length&&(e=t.length),e||(e=0),n>0&&n=this.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),t.length-e=0;--a)t[a+e]=this[a+r];else Uint8Array.prototype.set.call(t,this.subarray(r,n),e);return i},Nb.prototype.fill=function(t,e,r,n){if("string"==typeof t){if("string"==typeof e?(n=e,e=0,r=this.length):"string"==typeof r&&(n=r,r=this.length),void 0!==n&&"string"!=typeof n)throw new TypeError("encoding must be a string");if("string"==typeof n&&!Nb.isEncoding(n))throw new TypeError("Unknown encoding: "+n);if(1===t.length){var i=t.charCodeAt(0);("utf8"===n&&i<128||"latin1"===n)&&(t=i)}}else"number"==typeof t&&(t&=255);if(e<0||this.length>>=0,r=void 0===r?this.length:r>>>0,t||(t=0),"number"==typeof t)for(a=e;a55295&&r<57344){if(!i){if(r>56319){(e-=3)>-1&&a.push(239,191,189);continue}if(o+1===n){(e-=3)>-1&&a.push(239,191,189);continue}i=r;continue}if(r<56320){(e-=3)>-1&&a.push(239,191,189),i=r;continue}r=65536+(i-55296<<10|r-56320)}else i&&(e-=3)>-1&&a.push(239,191,189);if(i=null,r<128){if((e-=1)<0)break;a.push(r)}else if(r<2048){if((e-=2)<0)break;a.push(r>>6|192,63&r|128)}else if(r<65536){if((e-=3)<0)break;a.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((e-=4)<0)break;a.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return a}function v_(t){return Tb.toByteArray(function(t){if((t=(t=t.split("=")[0]).trim().replace(p_,"")).length<2)return"";for(;t.length%4!=0;)t+="=";return t}(t))}function m_(t,e,r,n){for(var i=0;i=e.length||i>=t.length);++i)e[i+r]=t[i];return i}function y_(t){return t instanceof ArrayBuffer||null!=t&&null!=t.constructor&&"ArrayBuffer"===t.constructor.name&&"number"==typeof t.byteLength}function x_(t){return t!=t}var b_=function(t,e){switch(void 0===e&&(e=0),typeof t){case"number":if(t>0)return function(t,e){var r,n;for(r=new Array(t),n=0;n0?r.pop():new ArrayBuffer(t)}function l(t){return new Uint8Array(s(t),0,t)}function u(t){return new Uint16Array(s(2*t),0,t)}function c(t){return new Uint32Array(s(4*t),0,t)}function h(t){return new Int8Array(s(t),0,t)}function f(t){return new Int16Array(s(2*t),0,t)}function p(t){return new Int32Array(s(4*t),0,t)}function d(t){return new Float32Array(s(4*t),0,t)}function g(t){return new Float64Array(s(8*t),0,t)}function v(t){return r?new Uint8ClampedArray(s(t),0,t):l(t)}function m(t){return new DataView(s(t),0,t)}function y(t){t=Mb.nextPow2(t);var r=Mb.log2(t),n=a[r];return n.length>0?n.pop():new e(t)}__.free=function(t){if(e.isBuffer(t))a[Mb.log2(t.length)].push(t);else{if("[object ArrayBuffer]"!==Object.prototype.toString.call(t)&&(t=t.buffer),!t)return;var r=t.length||t.byteLength,n=0|Mb.log2(r);i[n].push(t)}},__.freeUint8=__.freeUint16=__.freeUint32=__.freeInt8=__.freeInt16=__.freeInt32=__.freeFloat32=__.freeFloat=__.freeFloat64=__.freeDouble=__.freeUint8Clamped=__.freeDataView=function(t){o(t.buffer)},__.freeArrayBuffer=o,__.freeBuffer=function(t){a[Mb.log2(t.length)].push(t)},__.malloc=function(t,e){if(void 0===e||"arraybuffer"===e)return s(t);switch(e){case"uint8":return l(t);case"uint16":return u(t);case"uint32":return c(t);case"int8":return h(t);case"int16":return f(t);case"int32":return p(t);case"float":case"float32":return d(t);case"double":case"float64":return g(t);case"uint8_clamped":return v(t);case"buffer":return y(t);case"data":case"dataview":return m(t);default:return null}return null},__.mallocArrayBuffer=s,__.mallocUint8=l,__.mallocUint16=u,__.mallocUint32=c,__.mallocInt8=h,__.mallocInt16=f,__.mallocInt32=p,__.mallocFloat32=__.mallocFloat=d,__.mallocFloat64=__.mallocDouble=g,__.mallocUint8Clamped=v,__.mallocDataView=m,__.mallocBuffer=y,__.clearCache=function(){for(var t=0;t<32;++t)n.UINT8[t].length=0,n.UINT16[t].length=0,n.UINT32[t].length=0,n.INT8[t].length=0,n.INT16[t].length=0,n.INT32[t].length=0,n.FLOAT[t].length=0,n.DOUBLE[t].length=0,n.UINT8C[t].length=0,i[t].length=0,a[t].length=0}}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},Rb.Buffer);var w_=["uint8","uint8_clamped","uint16","uint32","int8","int16","int32","float32"];function M_(t,e,r,n,i){this.gl=t,this.type=e,this.handle=r,this.length=n,this.usage=i}var A_=M_.prototype;function k_(t,e,r,n,i,a){var o=i.length*i.BYTES_PER_ELEMENT;if(a<0)return t.bufferData(e,i,n),o;if(o+a>r)throw new Error("gl-buffer: If resizing buffer, must not specify offset");return t.bufferSubData(e,a,i),r}function T_(t,e){for(var r=__.malloc(t.length,e),n=t.length,i=0;i=0;--n){if(e[n]!==r)return!1;r*=t[n]}return!0}(t.shape,t.stride))0===t.offset&&t.data.length===t.shape[0]?this.length=k_(this.gl,this.type,this.length,this.usage,t.data,e):this.length=k_(this.gl,this.type,this.length,this.usage,t.data.subarray(t.offset,t.shape[0]),e);else{var n=__.malloc(t.size,r),i=wb(n,t.shape);ib.assign(i,t),this.length=k_(this.gl,this.type,this.length,this.usage,e<0?n:n.subarray(0,t.size),e),__.free(n)}}else if(Array.isArray(t)){var a;a=this.type===this.gl.ELEMENT_ARRAY_BUFFER?T_(t,"uint16"):T_(t,"float32"),this.length=k_(this.gl,this.type,this.length,this.usage,e<0?a:a.subarray(0,t.length),e),__.free(a)}else if("object"==typeof t&&"number"==typeof t.length)this.length=k_(this.gl,this.type,this.length,this.usage,t,e);else{if("number"!=typeof t&&void 0!==t)throw new Error("gl-buffer: Invalid data type");if(e>=0)throw new Error("gl-buffer: Cannot specify offset when resizing buffer");(t|=0)<=0&&(t=1),this.gl.bufferData(this.type,0|t,this.usage),this.length=t}};var S_=function(t,e,r,n){if(r=r||t.ARRAY_BUFFER,n=n||t.DYNAMIC_DRAW,r!==t.ARRAY_BUFFER&&r!==t.ELEMENT_ARRAY_BUFFER)throw new Error("gl-buffer: Invalid type for webgl buffer, must be either gl.ARRAY_BUFFER or gl.ELEMENT_ARRAY_BUFFER");if(n!==t.DYNAMIC_DRAW&&n!==t.STATIC_DRAW&&n!==t.STREAM_DRAW)throw new Error("gl-buffer: Invalid usage for buffer, must be either gl.DYNAMIC_DRAW, gl.STATIC_DRAW or gl.STREAM_DRAW");var i=new M_(t,r,t.createBuffer(),0,n);return i.update(e),i},E_=function(t){"string"==typeof t&&(t=[t]);for(var e=[].slice.call(arguments,1),r=[],n=0;n=0){var h=u.charCodeAt(u.length-1)-48;if(h<2||h>4)throw new P_("","Invalid data type for attribute "+l+": "+u);R_(t,e,c[0],n,h,i,l)}else{if(!(u.indexOf("mat")>=0))throw new P_("","Unknown data type for attribute "+l+": "+u);var h=u.charCodeAt(u.length-1)-48;if(h<2||h>4)throw new P_("","Invalid data type for attribute "+l+": "+u);F_(t,e,c,n,h,i,l)}}}return i};function D_(t,e,r,n,i,a){this._gl=t,this._wrapper=e,this._index=r,this._locations=n,this._dimension=i,this._constFunc=a}var O_=D_.prototype;function R_(t,e,r,n,i,a,o){for(var s=["gl","v"],l=[],u=0;u1){l[0]in o||(o[l[0]]=[]),o=o[l[0]];for(var u=1;u4)throw new P_("","Invalid uniform dimension type for matrix "+Rd+": "+r);return"gl.uniformMatrix"+i+"fv(locations["+e+"],false,obj"+t+")"}throw new P_("","Unknown uniform data type for "+Rd+": "+r)}var i=r.charCodeAt(r.length-1)-48;if(i<2||i>4)throw new P_("","Invalid data type");switch(r.charAt(0)){case"b":case"i":return"gl.uniform"+i+"iv(locations["+e+"],obj"+t+")";case"v":return"gl.uniform"+i+"fv(locations["+e+"],obj"+t+")";default:throw new P_("","Unrecognized data type for vector "+Rd+": "+r)}}}function a(e){for(var a=["return function updateProperty(obj){"],o=function t(e,r){if("object"!=typeof r)return[[e,r]];var n=[];for(var i in r){var a=r[i],o=e;parseInt(i)+""===i?o+="["+i+"]":o+="."+i,"object"==typeof a?n.push.apply(n,t(o,a)):n.push([o,a])}return n}("",e),s=0;s4)throw new P_("","Invalid data type");return"b"===t.charAt(0)?V_(r,!1):V_(r,0)}if(0===t.indexOf("mat")&&4===t.length){var r=t.charCodeAt(t.length-1)-48;if(r<2||r>4)throw new P_("","Invalid uniform dimension type for matrix "+Rd+": "+t);return V_(r*r,0)}throw new P_("","Unknown uniform data type for "+Rd+": "+t)}}(r[l].type);var c}function s(t){var e;if(Array.isArray(t)){e=new Array(t.length);for(var r=0;r1)for(var s=0;s=r)return Y_.substr(0,r);for(;r>Y_.length&&e>1;)1&e&&(Y_+=t),e>>=1,t+=t;return Y_=(Y_+=t).substr(0,r)};var Z_=function(t,e,r){return X_(r=void 0!==r?r+"":" ",e)+t},J_=function(t,e,r){e="number"==typeof e?e:1,r=r||": ";var n=t.split(/\r?\n/),i=String(n.length+e-1).length;return n.map(function(t,n){var a=n+e,o=String(a).length,s=Z_(a,i-o);return s+r+t}).join("\n")};var K_={0:"NONE",1:"ONE",2:"LINE_LOOP",3:"LINE_STRIP",4:"TRIANGLES",5:"TRIANGLE_STRIP",6:"TRIANGLE_FAN",256:"DEPTH_BUFFER_BIT",512:"NEVER",513:"LESS",514:"EQUAL",515:"LEQUAL",516:"GREATER",517:"NOTEQUAL",518:"GEQUAL",519:"ALWAYS",768:"SRC_COLOR",769:"ONE_MINUS_SRC_COLOR",770:"SRC_ALPHA",771:"ONE_MINUS_SRC_ALPHA",772:"DST_ALPHA",773:"ONE_MINUS_DST_ALPHA",774:"DST_COLOR",775:"ONE_MINUS_DST_COLOR",776:"SRC_ALPHA_SATURATE",1024:"STENCIL_BUFFER_BIT",1028:"FRONT",1029:"BACK",1032:"FRONT_AND_BACK",1280:"INVALID_ENUM",1281:"INVALID_VALUE",1282:"INVALID_OPERATION",1285:"OUT_OF_MEMORY",1286:"INVALID_FRAMEBUFFER_OPERATION",2304:"CW",2305:"CCW",2849:"LINE_WIDTH",2884:"CULL_FACE",2885:"CULL_FACE_MODE",2886:"FRONT_FACE",2928:"DEPTH_RANGE",2929:"DEPTH_TEST",2930:"DEPTH_WRITEMASK",2931:"DEPTH_CLEAR_VALUE",2932:"DEPTH_FUNC",2960:"STENCIL_TEST",2961:"STENCIL_CLEAR_VALUE",2962:"STENCIL_FUNC",2963:"STENCIL_VALUE_MASK",2964:"STENCIL_FAIL",2965:"STENCIL_PASS_DEPTH_FAIL",2966:"STENCIL_PASS_DEPTH_PASS",2967:"STENCIL_REF",2968:"STENCIL_WRITEMASK",2978:"VIEWPORT",3024:"DITHER",3042:"BLEND",3088:"SCISSOR_BOX",3089:"SCISSOR_TEST",3106:"COLOR_CLEAR_VALUE",3107:"COLOR_WRITEMASK",3317:"UNPACK_ALIGNMENT",3333:"PACK_ALIGNMENT",3379:"MAX_TEXTURE_SIZE",3386:"MAX_VIEWPORT_DIMS",3408:"SUBPIXEL_BITS",3410:"RED_BITS",3411:"GREEN_BITS",3412:"BLUE_BITS",3413:"ALPHA_BITS",3414:"DEPTH_BITS",3415:"STENCIL_BITS",3553:"TEXTURE_2D",4352:"DONT_CARE",4353:"FASTEST",4354:"NICEST",5120:"BYTE",5121:"UNSIGNED_BYTE",5122:"SHORT",5123:"UNSIGNED_SHORT",5124:"INT",5125:"UNSIGNED_INT",5126:"FLOAT",5386:"INVERT",5890:"TEXTURE",6401:"STENCIL_INDEX",6402:"DEPTH_COMPONENT",6406:"ALPHA",6407:"RGB",6408:"RGBA",6409:"LUMINANCE",6410:"LUMINANCE_ALPHA",7680:"KEEP",7681:"REPLACE",7682:"INCR",7683:"DECR",7936:"VENDOR",7937:"RENDERER",7938:"VERSION",9728:"NEAREST",9729:"LINEAR",9984:"NEAREST_MIPMAP_NEAREST",9985:"LINEAR_MIPMAP_NEAREST",9986:"NEAREST_MIPMAP_LINEAR",9987:"LINEAR_MIPMAP_LINEAR",10240:"TEXTURE_MAG_FILTER",10241:"TEXTURE_MIN_FILTER",10242:"TEXTURE_WRAP_S",10243:"TEXTURE_WRAP_T",10497:"REPEAT",10752:"POLYGON_OFFSET_UNITS",16384:"COLOR_BUFFER_BIT",32769:"CONSTANT_COLOR",32770:"ONE_MINUS_CONSTANT_COLOR",32771:"CONSTANT_ALPHA",32772:"ONE_MINUS_CONSTANT_ALPHA",32773:"BLEND_COLOR",32774:"FUNC_ADD",32777:"BLEND_EQUATION_RGB",32778:"FUNC_SUBTRACT",32779:"FUNC_REVERSE_SUBTRACT",32819:"UNSIGNED_SHORT_4_4_4_4",32820:"UNSIGNED_SHORT_5_5_5_1",32823:"POLYGON_OFFSET_FILL",32824:"POLYGON_OFFSET_FACTOR",32854:"RGBA4",32855:"RGB5_A1",32873:"TEXTURE_BINDING_2D",32926:"SAMPLE_ALPHA_TO_COVERAGE",32928:"SAMPLE_COVERAGE",32936:"SAMPLE_BUFFERS",32937:"SAMPLES",32938:"SAMPLE_COVERAGE_VALUE",32939:"SAMPLE_COVERAGE_INVERT",32968:"BLEND_DST_RGB",32969:"BLEND_SRC_RGB",32970:"BLEND_DST_ALPHA",32971:"BLEND_SRC_ALPHA",33071:"CLAMP_TO_EDGE",33170:"GENERATE_MIPMAP_HINT",33189:"DEPTH_COMPONENT16",33306:"DEPTH_STENCIL_ATTACHMENT",33635:"UNSIGNED_SHORT_5_6_5",33648:"MIRRORED_REPEAT",33901:"ALIASED_POINT_SIZE_RANGE",33902:"ALIASED_LINE_WIDTH_RANGE",33984:"TEXTURE0",33985:"TEXTURE1",33986:"TEXTURE2",33987:"TEXTURE3",33988:"TEXTURE4",33989:"TEXTURE5",33990:"TEXTURE6",33991:"TEXTURE7",33992:"TEXTURE8",33993:"TEXTURE9",33994:"TEXTURE10",33995:"TEXTURE11",33996:"TEXTURE12",33997:"TEXTURE13",33998:"TEXTURE14",33999:"TEXTURE15",34000:"TEXTURE16",34001:"TEXTURE17",34002:"TEXTURE18",34003:"TEXTURE19",34004:"TEXTURE20",34005:"TEXTURE21",34006:"TEXTURE22",34007:"TEXTURE23",34008:"TEXTURE24",34009:"TEXTURE25",34010:"TEXTURE26",34011:"TEXTURE27",34012:"TEXTURE28",34013:"TEXTURE29",34014:"TEXTURE30",34015:"TEXTURE31",34016:"ACTIVE_TEXTURE",34024:"MAX_RENDERBUFFER_SIZE",34041:"DEPTH_STENCIL",34055:"INCR_WRAP",34056:"DECR_WRAP",34067:"TEXTURE_CUBE_MAP",34068:"TEXTURE_BINDING_CUBE_MAP",34069:"TEXTURE_CUBE_MAP_POSITIVE_X",34070:"TEXTURE_CUBE_MAP_NEGATIVE_X",34071:"TEXTURE_CUBE_MAP_POSITIVE_Y",34072:"TEXTURE_CUBE_MAP_NEGATIVE_Y",34073:"TEXTURE_CUBE_MAP_POSITIVE_Z",34074:"TEXTURE_CUBE_MAP_NEGATIVE_Z",34076:"MAX_CUBE_MAP_TEXTURE_SIZE",34338:"VERTEX_ATTRIB_ARRAY_ENABLED",34339:"VERTEX_ATTRIB_ARRAY_SIZE",34340:"VERTEX_ATTRIB_ARRAY_STRIDE",34341:"VERTEX_ATTRIB_ARRAY_TYPE",34342:"CURRENT_VERTEX_ATTRIB",34373:"VERTEX_ATTRIB_ARRAY_POINTER",34466:"NUM_COMPRESSED_TEXTURE_FORMATS",34467:"COMPRESSED_TEXTURE_FORMATS",34660:"BUFFER_SIZE",34661:"BUFFER_USAGE",34816:"STENCIL_BACK_FUNC",34817:"STENCIL_BACK_FAIL",34818:"STENCIL_BACK_PASS_DEPTH_FAIL",34819:"STENCIL_BACK_PASS_DEPTH_PASS",34877:"BLEND_EQUATION_ALPHA",34921:"MAX_VERTEX_ATTRIBS",34922:"VERTEX_ATTRIB_ARRAY_NORMALIZED",34930:"MAX_TEXTURE_IMAGE_UNITS",34962:"ARRAY_BUFFER",34963:"ELEMENT_ARRAY_BUFFER",34964:"ARRAY_BUFFER_BINDING",34965:"ELEMENT_ARRAY_BUFFER_BINDING",34975:"VERTEX_ATTRIB_ARRAY_BUFFER_BINDING",35040:"STREAM_DRAW",35044:"STATIC_DRAW",35048:"DYNAMIC_DRAW",35632:"FRAGMENT_SHADER",35633:"VERTEX_SHADER",35660:"MAX_VERTEX_TEXTURE_IMAGE_UNITS",35661:"MAX_COMBINED_TEXTURE_IMAGE_UNITS",35663:"SHADER_TYPE",35664:"FLOAT_VEC2",35665:"FLOAT_VEC3",35666:"FLOAT_VEC4",35667:"INT_VEC2",35668:"INT_VEC3",35669:"INT_VEC4",35670:"BOOL",35671:"BOOL_VEC2",35672:"BOOL_VEC3",35673:"BOOL_VEC4",35674:"FLOAT_MAT2",35675:"FLOAT_MAT3",35676:"FLOAT_MAT4",35678:"SAMPLER_2D",35680:"SAMPLER_CUBE",35712:"DELETE_STATUS",35713:"COMPILE_STATUS",35714:"LINK_STATUS",35715:"VALIDATE_STATUS",35716:"INFO_LOG_LENGTH",35717:"ATTACHED_SHADERS",35718:"ACTIVE_UNIFORMS",35719:"ACTIVE_UNIFORM_MAX_LENGTH",35720:"SHADER_SOURCE_LENGTH",35721:"ACTIVE_ATTRIBUTES",35722:"ACTIVE_ATTRIBUTE_MAX_LENGTH",35724:"SHADING_LANGUAGE_VERSION",35725:"CURRENT_PROGRAM",36003:"STENCIL_BACK_REF",36004:"STENCIL_BACK_VALUE_MASK",36005:"STENCIL_BACK_WRITEMASK",36006:"FRAMEBUFFER_BINDING",36007:"RENDERBUFFER_BINDING",36048:"FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE",36049:"FRAMEBUFFER_ATTACHMENT_OBJECT_NAME",36050:"FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL",36051:"FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE",36053:"FRAMEBUFFER_COMPLETE",36054:"FRAMEBUFFER_INCOMPLETE_ATTACHMENT",36055:"FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT",36057:"FRAMEBUFFER_INCOMPLETE_DIMENSIONS",36061:"FRAMEBUFFER_UNSUPPORTED",36064:"COLOR_ATTACHMENT0",36096:"DEPTH_ATTACHMENT",36128:"STENCIL_ATTACHMENT",36160:"FRAMEBUFFER",36161:"RENDERBUFFER",36162:"RENDERBUFFER_WIDTH",36163:"RENDERBUFFER_HEIGHT",36164:"RENDERBUFFER_INTERNAL_FORMAT",36168:"STENCIL_INDEX8",36176:"RENDERBUFFER_RED_SIZE",36177:"RENDERBUFFER_GREEN_SIZE",36178:"RENDERBUFFER_BLUE_SIZE",36179:"RENDERBUFFER_ALPHA_SIZE",36180:"RENDERBUFFER_DEPTH_SIZE",36181:"RENDERBUFFER_STENCIL_SIZE",36194:"RGB565",36336:"LOW_FLOAT",36337:"MEDIUM_FLOAT",36338:"HIGH_FLOAT",36339:"LOW_INT",36340:"MEDIUM_INT",36341:"HIGH_INT",36346:"SHADER_COMPILER",36347:"MAX_VERTEX_UNIFORM_VECTORS",36348:"MAX_VARYING_VECTORS",36349:"MAX_FRAGMENT_UNIFORM_VECTORS",37440:"UNPACK_FLIP_Y_WEBGL",37441:"UNPACK_PREMULTIPLY_ALPHA_WEBGL",37442:"CONTEXT_LOST_WEBGL",37443:"UNPACK_COLORSPACE_CONVERSION_WEBGL",37444:"BROWSER_DEFAULT_WEBGL"},Q_=function(t){return K_[t]},$_=function(t){return atob(t)},tw=["abs","acos","all","any","asin","atan","ceil","clamp","cos","cross","dFdx","dFdy","degrees","distance","dot","equal","exp","exp2","faceforward","floor","fract","gl_BackColor","gl_BackLightModelProduct","gl_BackLightProduct","gl_BackMaterial","gl_BackSecondaryColor","gl_ClipPlane","gl_ClipVertex","gl_Color","gl_DepthRange","gl_DepthRangeParameters","gl_EyePlaneQ","gl_EyePlaneR","gl_EyePlaneS","gl_EyePlaneT","gl_Fog","gl_FogCoord","gl_FogFragCoord","gl_FogParameters","gl_FragColor","gl_FragCoord","gl_FragData","gl_FragDepth","gl_FragDepthEXT","gl_FrontColor","gl_FrontFacing","gl_FrontLightModelProduct","gl_FrontLightProduct","gl_FrontMaterial","gl_FrontSecondaryColor","gl_LightModel","gl_LightModelParameters","gl_LightModelProducts","gl_LightProducts","gl_LightSource","gl_LightSourceParameters","gl_MaterialParameters","gl_MaxClipPlanes","gl_MaxCombinedTextureImageUnits","gl_MaxDrawBuffers","gl_MaxFragmentUniformComponents","gl_MaxLights","gl_MaxTextureCoords","gl_MaxTextureImageUnits","gl_MaxTextureUnits","gl_MaxVaryingFloats","gl_MaxVertexAttribs","gl_MaxVertexTextureImageUnits","gl_MaxVertexUniformComponents","gl_ModelViewMatrix","gl_ModelViewMatrixInverse","gl_ModelViewMatrixInverseTranspose","gl_ModelViewMatrixTranspose","gl_ModelViewProjectionMatrix","gl_ModelViewProjectionMatrixInverse","gl_ModelViewProjectionMatrixInverseTranspose","gl_ModelViewProjectionMatrixTranspose","gl_MultiTexCoord0","gl_MultiTexCoord1","gl_MultiTexCoord2","gl_MultiTexCoord3","gl_MultiTexCoord4","gl_MultiTexCoord5","gl_MultiTexCoord6","gl_MultiTexCoord7","gl_Normal","gl_NormalMatrix","gl_NormalScale","gl_ObjectPlaneQ","gl_ObjectPlaneR","gl_ObjectPlaneS","gl_ObjectPlaneT","gl_Point","gl_PointCoord","gl_PointParameters","gl_PointSize","gl_Position","gl_ProjectionMatrix","gl_ProjectionMatrixInverse","gl_ProjectionMatrixInverseTranspose","gl_ProjectionMatrixTranspose","gl_SecondaryColor","gl_TexCoord","gl_TextureEnvColor","gl_TextureMatrix","gl_TextureMatrixInverse","gl_TextureMatrixInverseTranspose","gl_TextureMatrixTranspose","gl_Vertex","greaterThan","greaterThanEqual","inversesqrt","length","lessThan","lessThanEqual","log","log2","matrixCompMult","max","min","mix","mod","normalize","not","notEqual","pow","radians","reflect","refract","sign","sin","smoothstep","sqrt","step","tan","texture2D","texture2DLod","texture2DProj","texture2DProjLod","textureCube","textureCubeLod","texture2DLodEXT","texture2DProjLodEXT","textureCubeLodEXT","texture2DGradEXT","texture2DProjGradEXT","textureCubeGradEXT"],ew=(tw=tw.slice().filter(function(t){return!/^(gl\_|texture)/.test(t)})).concat(["gl_VertexID","gl_InstanceID","gl_Position","gl_PointSize","gl_FragCoord","gl_FrontFacing","gl_FragDepth","gl_PointCoord","gl_MaxVertexAttribs","gl_MaxVertexUniformVectors","gl_MaxVertexOutputVectors","gl_MaxFragmentInputVectors","gl_MaxVertexTextureImageUnits","gl_MaxCombinedTextureImageUnits","gl_MaxTextureImageUnits","gl_MaxFragmentUniformVectors","gl_MaxDrawBuffers","gl_MinProgramTexelOffset","gl_MaxProgramTexelOffset","gl_DepthRangeParameters","gl_DepthRange","trunc","round","roundEven","isnan","isinf","floatBitsToInt","floatBitsToUint","intBitsToFloat","uintBitsToFloat","packSnorm2x16","unpackSnorm2x16","packUnorm2x16","unpackUnorm2x16","packHalf2x16","unpackHalf2x16","outerProduct","transpose","determinant","inverse","texture","textureSize","textureProj","textureLod","textureOffset","texelFetch","texelFetchOffset","textureProjOffset","textureLodOffset","textureProjLod","textureProjLodOffset","textureGrad","textureGradOffset","textureProjGrad","textureProjGradOffset"]),rw=["precision","highp","mediump","lowp","attribute","const","uniform","varying","break","continue","do","for","while","if","else","in","out","inout","float","int","void","bool","true","false","discard","return","mat2","mat3","mat4","vec2","vec3","vec4","ivec2","ivec3","ivec4","bvec2","bvec3","bvec4","sampler1D","sampler2D","sampler3D","samplerCube","sampler1DShadow","sampler2DShadow","struct","asm","class","union","enum","typedef","template","this","packed","goto","switch","default","inline","noinline","volatile","public","static","extern","external","interface","long","short","double","half","fixed","unsigned","input","output","hvec2","hvec3","hvec4","dvec2","dvec3","dvec4","fvec2","fvec3","fvec4","sampler2DRect","sampler3DRect","sampler2DRectShadow","sizeof","cast","namespace","using"],nw=rw.slice().concat(["layout","centroid","smooth","case","mat2x2","mat2x3","mat2x4","mat3x2","mat3x3","mat3x4","mat4x2","mat4x3","mat4x4","uint","uvec2","uvec3","uvec4","samplerCubeShadow","sampler2DArray","sampler2DArrayShadow","isampler2D","isampler3D","isamplerCube","isampler2DArray","usampler2D","usampler3D","usamplerCube","usampler2DArray","coherent","restrict","readonly","writeonly","resource","atomic_uint","noperspective","patch","sample","subroutine","common","partition","active","filter","image1D","image2D","image3D","imageCube","iimage1D","iimage2D","iimage3D","iimageCube","uimage1D","uimage2D","uimage3D","uimageCube","image1DArray","image2DArray","iimage1DArray","iimage2DArray","uimage1DArray","uimage2DArray","image1DShadow","image2DShadow","image1DArrayShadow","image2DArrayShadow","imageBuffer","iimageBuffer","uimageBuffer","sampler1DArray","sampler1DArrayShadow","isampler1D","isampler1DArray","usampler1D","usampler1DArray","isampler2DRect","usampler2DRect","samplerBuffer","isamplerBuffer","usamplerBuffer","sampler2DMS","isampler2DMS","usampler2DMS","sampler2DMSArray","isampler2DMSArray","usampler2DMSArray"]),iw=["<<=",">>=","++","--","<<",">>","<=",">=","==","!=","&&","||","+=","-=","*=","/=","%=","&=","^^","^=","|=","(",")","[","]",".","!","~","*","/","%","+","-","<",">","&","^","|","?",":","=",",",";","{","}"],aw=function(t){var e,r,n,i=0,a=0,o=ow,s=[],l=[],u=1,c=0,h=0,f=!1,p=!1,d="",g=tw,v=rw;"300 es"===(t=t||{}).version&&(g=ew,v=nw);return function(t){return l=[],null!==t?function(t){var r;i=0,n=(d+=t).length;for(;e=d[i],i0)continue;r=t.slice(0,1).join("")}return m(r),h+=r.length,(s=s.slice(r.length)).length}}function A(){return/[^a-fA-F0-9]/.test(e)?(m(s.join("")),o=ow,i):(s.push(e),r=e,i+1)}function k(){return"."===e?(s.push(e),o=pw,r=e,i+1):/[eE]/.test(e)?(s.push(e),o=pw,r=e,i+1):"x"===e&&1===s.length&&"0"===s[0]?(o=xw,s.push(e),r=e,i+1):/[^\d]/.test(e)?(m(s.join("")),o=ow,i):(s.push(e),r=e,i+1)}function T(){return"f"===e&&(s.push(e),r=e,i+=1),/[eE]/.test(e)?(s.push(e),r=e,i+1):"-"===e&&/[eE]/.test(r)?(s.push(e),r=e,i+1):/[^\d]/.test(e)?(m(s.join("")),o=ow,i):(s.push(e),r=e,i+1)}function S(){if(/[^\d\w_]/.test(e)){var t=s.join("");return o=v.indexOf(t)>-1?vw:g.indexOf(t)>-1?gw:dw,m(s.join("")),o=ow,i}return s.push(e),r=e,i+1}},ow=999,sw=9999,lw=0,uw=1,cw=2,hw=3,fw=4,pw=5,dw=6,gw=7,vw=8,mw=9,yw=10,xw=11,bw=["block-comment","line-comment","preprocessor","operator","integer","float","ident","builtin","keyword","whitespace","eof","integer"];var _w=function(t,e){var r=aw(e),n=[];return n=(n=n.concat(r(t))).concat(r(null))};var ww=function(t){for(var e=Array.isArray(t)?t:_w(t),r=0;r=0),s[8]){case"b":i=parseInt(i,10).toString(2);break;case"c":i=String.fromCharCode(parseInt(i,10));break;case"d":case"i":i=parseInt(i,10);break;case"j":i=JSON.stringify(i,null,s[6]?parseInt(s[6]):0);break;case"e":i=s[7]?parseFloat(i).toExponential(s[7]):parseFloat(i).toExponential();break;case"f":i=s[7]?parseFloat(i).toFixed(s[7]):parseFloat(i);break;case"g":i=s[7]?String(Number(i.toPrecision(s[7]))):parseFloat(i);break;case"o":i=(parseInt(i,10)>>>0).toString(8);break;case"s":i=String(i),i=s[7]?i.substring(0,s[7]):i;break;case"t":i=String(!!i),i=s[7]?i.substring(0,s[7]):i;break;case"T":i=Object.prototype.toString.call(i).slice(8,-1).toLowerCase(),i=s[7]?i.substring(0,s[7]):i;break;case"u":i=parseInt(i,10)>>>0;break;case"v":i=i.valueOf(),i=s[7]?i.substring(0,s[7]):i;break;case"x":i=(parseInt(i,10)>>>0).toString(16);break;case"X":i=(parseInt(i,10)>>>0).toString(16).toUpperCase()}t.json.test(s[8])?g+=i:(!t.number.test(s[8])||h&&!s[3]?f="":(f=h?"+":"-",i=i.toString().replace(t.sign,"")),u=s[4]?"0"===s[4]?"0":s[4].charAt(1):" ",c=s[6]-(f+i).length,l=s[6]&&c>0?u.repeat(c):"",g+=s[5]?f+i+l:"0"===u?f+l+i:l+f+i)}return g}(function(e){if(n[e])return n[e];var r,i=e,a=[],o=0;for(;i;){if(null!==(r=t.text.exec(i)))a.push(r[0]);else if(null!==(r=t.modulo.exec(i)))a.push("%");else{if(null===(r=t.placeholder.exec(i)))throw new SyntaxError("[sprintf] unexpected placeholder");if(r[2]){o|=1;var s=[],l=r[2],u=[];if(null===(u=t.key.exec(l)))throw new SyntaxError("[sprintf] failed to parse named argument key");for(s.push(u[1]);""!==(l=l.substring(u[0].length));)if(null!==(u=t.key_access.exec(l)))s.push(u[1]);else{if(null===(u=t.index_access.exec(l)))throw new SyntaxError("[sprintf] failed to parse named argument key");s.push(u[1])}r[2]=s}else o|=2;if(3===o)throw new Error("[sprintf] mixing positional and named placeholders is not (yet) supported");a.push(r)}i=i.substring(r[0].length)}return n[e]=a}(r),arguments)}function r(t,r){return e.apply(null,[t].concat(r||[]))}var n=Object.create(null);void 0!==Mw&&(Mw.sprintf=e,Mw.vsprintf=r),"undefined"!=typeof window&&(window.sprintf=e,window.vsprintf=r)}();var Aw=Mw.sprintf,kw=function(t,e,r){"use strict";var n=ww(e)||"of unknown name (see npm glsl-shader-name)",i="unknown type";void 0!==r&&(i=r===Q_.FRAGMENT_SHADER?"fragment":"vertex");for(var a=Aw("Error compiling %s shader %s:\n",i,n),o=Aw("%s%s",a,t),s=t.split("\n"),l={},u=0;ur)for(t=r;te)for(t=e;t=0){for(var v=0|g.type.charAt(g.type.length-1),m=new Array(v),y=0;y=0;)x+=1;d[h]=x}var b=new Array(r.length);function _(){a.program=Ew.program(o,a._vref,a._fref,p,d);for(var t=0;t>>1,x=a[m]"];return i?e.indexOf("c")<0?a.push(";if(x===y){return m}else if(x<=y){"):a.push(";var p=c(x,y);if(p===0){return m}else if(p<=0){"):a.push(";if(",e,"){i=m;"),r?a.push("l=m+1}else{h=m-1}"):a.push("h=m-1}else{l=m+1}"),a.push("}"),i?a.push("return -1};"):a.push("return i};"),a.join("")}function Gw(t,e,r,n){return new Function([Hw("A","x"+t+"y",e,["y"],n),Hw("P","c(x,y)"+t+"0",e,["y","c"],n),"function dispatchBsearch",r,"(a,y,c,l,h){if(typeof(c)==='function'){return P(a,(l===void 0)?0:l|0,(h===void 0)?a.length-1:h|0,y,c)}else{return A(a,(c===void 0)?0:c|0,(l===void 0)?a.length-1:l|0,y)}}return dispatchBsearch",r].join(""))()}qw.bind=function(){var t=this.shader;this.vbo.bind(),this.shader.bind(),t.attributes.coord.pointer(),t.uniforms.screenBox=this.plot.screenBox},qw.drawBox=(Vw=[0,0],Uw=[0,0],function(t,e,r,n,i){var a=this.plot,o=this.shader,s=a.gl;Vw[0]=t,Vw[1]=e,Uw[0]=r,Uw[1]=n,o.uniforms.lo=Vw,o.uniforms.hi=Uw,o.uniforms.color=i,s.drawArrays(s.TRIANGLE_STRIP,0,4)}),qw.dispose=function(){this.vbo.dispose(),this.shader.dispose()};var Ww={ge:Gw(">=",!1,"GE"),gt:Gw(">",!1,"GT"),lt:Gw("<",!0,"LT"),le:Gw("<=",!0,"LE"),eq:Gw("-",!0,"EQ",!0)};function Yw(t,e,r,n,i){var a=["function ",t,"(a,l,h,",n.join(","),"){",i?"":"var i=",r?"l-1":"h+1",";while(l<=h){var m=(l+h)>>>1,x=a[m]"];return i?e.indexOf("c")<0?a.push(";if(x===y){return m}else if(x<=y){"):a.push(";var p=c(x,y);if(p===0){return m}else if(p<=0){"):a.push(";if(",e,"){i=m;"),r?a.push("l=m+1}else{h=m-1}"):a.push("h=m-1}else{l=m+1}"),a.push("}"),i?a.push("return -1};"):a.push("return i};"),a.join("")}function Xw(t,e,r,n){return new Function([Yw("A","x"+t+"y",e,["y"],n),Yw("P","c(x,y)"+t+"0",e,["y","c"],n),"function dispatchBsearch",r,"(a,y,c,l,h){if(typeof(c)==='function'){return P(a,(l===void 0)?0:l|0,(h===void 0)?a.length-1:h|0,y,c)}else{return A(a,(c===void 0)?0:c|0,(l===void 0)?a.length-1:l|0,y)}}return dispatchBsearch",r].join(""))()}var Zw={ge:Xw(">=",!1,"GE"),gt:Xw(">",!1,"GT"),lt:Xw("<",!0,"LT"),le:Xw("<=",!0,"LE"),eq:Xw("-",!0,"EQ",!0)},Jw=function(t){var e=t.gl,r=S_(e),n=Bw(e,L_.gridVert,L_.gridFrag),i=Bw(e,L_.tickVert,L_.gridFrag);return new Kw(t,r,n,i)};function Kw(t,e,r,n){this.plot=t,this.vbo=e,this.shader=r,this.tickShader=n,this.ticks=[[],[]]}function Qw(t,e){return t-e}var $w,tM,eM,rM,nM,iM=Kw.prototype;iM.draw=($w=[0,0],tM=[0,0],eM=[0,0],function(){for(var t=this.plot,e=this.vbo,r=this.shader,n=this.ticks,i=t.gl,a=t._tickBounds,o=t.dataBox,s=t.viewBox,l=t.gridLineWidth,u=t.gridLineColor,c=t.gridLineEnable,h=t.pixelRatio,f=0;f<2;++f){var p=a[f],d=a[f+2]-p,g=.5*(o[f+2]+o[f]),v=o[f+2]-o[f];tM[f]=2*d/v,$w[f]=2*(p-g)/v}r.bind(),e.bind(),r.attributes.dataCoord.pointer(),r.uniforms.dataShift=$w,r.uniforms.dataScale=tM;var m=0;for(f=0;f<2;++f){eM[0]=eM[1]=0,eM[f]=1,r.uniforms.dataAxis=eM,r.uniforms.lineWidth=l[f]/(s[f+2]-s[f])*h,r.uniforms.color=u[f];var y=6*n[f].length;c[f]&&y&&i.drawArrays(i.TRIANGLES,m,y),m+=y}}),iM.drawTickMarks=function(){var t=[0,0],e=[0,0],r=[1,0],n=[0,1],i=[0,0],a=[0,0];return function(){for(var o=this.plot,s=this.vbo,l=this.tickShader,u=this.ticks,c=o.gl,h=o._tickBounds,f=o.dataBox,p=o.viewBox,d=o.pixelRatio,g=o.screenBox,v=g[2]-g[0],m=g[3]-g[1],y=p[2]-p[0],x=p[3]-p[1],b=0;b<2;++b){var _=h[b],w=h[b+2]-_,M=.5*(f[b+2]+f[b]),A=f[b+2]-f[b];e[b]=2*w/A,t[b]=2*(_-M)/A}e[0]*=y/v,t[0]*=y/v,e[1]*=x/m,t[1]*=x/m,l.bind(),s.bind(),l.attributes.dataCoord.pointer();var k=l.uniforms;k.dataShift=t,k.dataScale=e;var T=o.tickMarkLength,S=o.tickMarkWidth,E=o.tickMarkColor,C=6*u[0].length,L=Math.min(Zw.ge(u[0],(f[0]-h[0])/(h[2]-h[0]),Qw),u[0].length),z=Math.min(Zw.gt(u[0],(f[2]-h[0])/(h[2]-h[0]),Qw),u[0].length),P=0+6*L,I=6*Math.max(0,z-L),D=Math.min(Zw.ge(u[1],(f[1]-h[1])/(h[3]-h[1]),Qw),u[1].length),O=Math.min(Zw.gt(u[1],(f[3]-h[1])/(h[3]-h[1]),Qw),u[1].length),R=C+6*D,F=6*Math.max(0,O-D);i[0]=2*(p[0]-T[1])/v-1,i[1]=(p[3]+p[1])/m-1,a[0]=T[1]*d/v,a[1]=S[1]*d/m,F&&(k.color=E[1],k.tickScale=a,k.dataAxis=n,k.screenOffset=i,c.drawArrays(c.TRIANGLES,R,F)),i[0]=(p[2]+p[0])/v-1,i[1]=2*(p[1]-T[0])/m-1,a[0]=S[0]*d/v,a[1]=T[0]*d/m,I&&(k.color=E[0],k.tickScale=a,k.dataAxis=r,k.screenOffset=i,c.drawArrays(c.TRIANGLES,P,I)),i[0]=2*(p[2]+T[3])/v-1,i[1]=(p[3]+p[1])/m-1,a[0]=T[3]*d/v,a[1]=S[3]*d/m,F&&(k.color=E[3],k.tickScale=a,k.dataAxis=n,k.screenOffset=i,c.drawArrays(c.TRIANGLES,R,F)),i[0]=(p[2]+p[0])/v-1,i[1]=2*(p[3]+T[2])/m-1,a[0]=S[2]*d/v,a[1]=T[2]*d/m,I&&(k.color=E[2],k.tickScale=a,k.dataAxis=r,k.screenOffset=i,c.drawArrays(c.TRIANGLES,P,I))}}(),iM.update=(rM=[1,1,-1,-1,1,-1],nM=[1,-1,1,1,-1,-1],function(t){for(var e=t.ticks,r=t.bounds,n=new Float32Array(18*(e[0].length+e[1].length)),i=(this.plot.zeroLineEnable,0),a=[[],[]],o=0;o<2;++o)for(var s=a[o],l=e[o],u=r[o],c=r[o+2],h=0;h=n?(i=h,(l+=1)=n?(i=h,(l+=1)>1;return["sum(",xM(t.slice(0,e)),",",xM(t.slice(e)),")"].join("")}function bM(t,e){if("m"===t.charAt(0)){if("w"===e.charAt(0)){var r=t.split("[");return["w",e.substr(1),"m",r[0].substr(1)].join("")}return["prod(",t,",",e,")"].join("")}return bM(e,t)}function _M(t){if(2===t.length)return[["diff(",bM(t[0][0],t[1][1]),",",bM(t[1][0],t[0][1]),")"].join("")];for(var e=[],r=0;r0;){for(var l=r.pop(),a=r.pop(),u=-1,c=-1,o=i[a],f=1;f=0||(e.flip(a,l),SM(t,e,r,u,a,c),SM(t,e,r,a,c,u),SM(t,e,r,c,l,u),SM(t,e,r,l,u,c)))}};function SM(t,e,r,n,i,a){var o=e.opposite(n,i);if(!(o<0)){if(i0||o.length>0;){for(;a.length>0;){var h=a.pop();if(s[h]!==-i){s[h]=i;l[h];for(var f=0;f<3;++f){var p=c[3*h+f];p>=0&&0===s[p]&&(u[3*h+f]?o.push(p):(a.push(p),s[p]=i))}}}var d=o;o=a,a=d,o.length=0,i=-i}var g=function(t,e,r){for(var n=0,i=0;i>1;return["sum(",OM(t.slice(0,e)),",",OM(t.slice(e)),")"].join("")}function RM(t){if(2===t.length)return[["sum(prod(",t[0][0],",",t[1][1],"),prod(-",t[0][1],",",t[1][0],"))"].join("")];for(var e=[],r=0;r0){if(a<=0)return o;n=i+a}else{if(!(i<0))return o;if(a>=0)return o;n=-(i+a)}var s=3.3306690738754716e-16*n;return o>=s||o<=-s?o:BM(t,e,r)},function(t,e,r,n){var i=t[0]-n[0],a=e[0]-n[0],o=r[0]-n[0],s=t[1]-n[1],l=e[1]-n[1],u=r[1]-n[1],c=t[2]-n[2],h=e[2]-n[2],f=r[2]-n[2],p=a*u,d=o*l,g=o*s,v=i*u,m=i*l,y=a*s,x=c*(p-d)+h*(g-v)+f*(m-y),b=7.771561172376103e-16*((Math.abs(p)+Math.abs(d))*Math.abs(c)+(Math.abs(g)+Math.abs(v))*Math.abs(h)+(Math.abs(m)+Math.abs(y))*Math.abs(f));return x>b||-x>b?x:NM(t,e,r,n)}];!function(){for(;jM.length<=IM;)jM.push(FM(jM.length));for(var t=[],e=["slow"],r=0;r<=IM;++r)t.push("a"+r),e.push("o"+r);var n=["function getOrientation(",t.join(),"){switch(arguments.length){case 0:case 1:return 0;"];for(r=2;r<=IM;++r)n.push("case ",r,":return o",r,"(",t.slice(0,r).join(),");");n.push("}var s=new Array(arguments.length);for(var i=0;il[0]&&i.push(new YM(l,s,HM,a),new YM(s,l,qM,a))}i.sort(XM);for(var u=i[0].a[0]-(1+Math.abs(i[0].a[0]))*Math.pow(2,-52),c=[new WM([u,1],[u,0],-1,[],[],[],[])],h=[],a=0,f=i.length;a1&&VM(r[u[c-2]],r[u[c-1]],n)>0;)t.push([u[c-1],u[c-2],i]),c-=1;u.length=c,u.push(i);var h=l.upperIds;for(c=h.length;c>1&&VM(r[h[c-2]],r[h[c-1]],n)<0;)t.push([h[c-2],h[c-1],i]),c-=1;h.length=c,h.push(i)}}function KM(t,e){var r;return(r=t.a[0]=0}}(),rA.removeTriangle=function(t,e,r){var n=this.stars;nA(n[t],e,r),nA(n[e],r,t),nA(n[r],t,e)},rA.addTriangle=function(t,e,r){var n=this.stars;n[t].push(e,r),n[e].push(r,t),n[r].push(t,e)},rA.opposite=function(t,e){for(var r=this.stars[e],n=1,i=r.length;n=49&&o<=54?o-49+10:o>=17&&o<=22?o-17+10:15&o}return n}function s(t,e,r,n){for(var i=0,a=Math.min(t.length,r),o=e;o=49?s-49+10:s>=17?s-17+10:s}return i}i.isBN=function(t){return t instanceof i||null!==t&&"object"==typeof t&&t.constructor.wordSize===i.wordSize&&Array.isArray(t.words)},i.max=function(t,e){return t.cmp(e)>0?t:e},i.min=function(t,e){return t.cmp(e)<0?t:e},i.prototype._init=function(t,e,n){if("number"==typeof t)return this._initNumber(t,e,n);if("object"==typeof t)return this._initArray(t,e,n);"hex"===e&&(e=16),r(e===(0|e)&&e>=2&&e<=36);var i=0;"-"===(t=t.toString().replace(/\s+/g,""))[0]&&i++,16===e?this._parseHex(t,i):this._parseBase(t,e,i),"-"===t[0]&&(this.negative=1),this.strip(),"le"===n&&this._initArray(this.toArray(),e,n)},i.prototype._initNumber=function(t,e,n){t<0&&(this.negative=1,t=-t),t<67108864?(this.words=[67108863&t],this.length=1):t<4503599627370496?(this.words=[67108863&t,t/67108864&67108863],this.length=2):(r(t<9007199254740992),this.words=[67108863&t,t/67108864&67108863,1],this.length=3),"le"===n&&this._initArray(this.toArray(),e,n)},i.prototype._initArray=function(t,e,n){if(r("number"==typeof t.length),t.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(t.length/3),this.words=new Array(this.length);for(var i=0;i=0;i-=3)o=t[i]|t[i-1]<<8|t[i-2]<<16,this.words[a]|=o<>>26-s&67108863,(s+=24)>=26&&(s-=26,a++);else if("le"===n)for(i=0,a=0;i>>26-s&67108863,(s+=24)>=26&&(s-=26,a++);return this.strip()},i.prototype._parseHex=function(t,e){this.length=Math.ceil((t.length-e)/6),this.words=new Array(this.length);for(var r=0;r=e;r-=6)i=o(t,r,r+6),this.words[n]|=i<>>26-a&4194303,(a+=24)>=26&&(a-=26,n++);r+6!==e&&(i=o(t,e,r+6),this.words[n]|=i<>>26-a&4194303),this.strip()},i.prototype._parseBase=function(t,e,r){this.words=[0],this.length=1;for(var n=0,i=1;i<=67108863;i*=e)n++;n--,i=i/e|0;for(var a=t.length-r,o=a%n,l=Math.min(a,a-o)+r,u=0,c=r;c1&&0===this.words[this.length-1];)this.length--;return this._normSign()},i.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},i.prototype.inspect=function(){return(this.red?""};var l=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],u=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],c=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function h(t,e,r){r.negative=e.negative^t.negative;var n=t.length+e.length|0;r.length=n,n=n-1|0;var i=0|t.words[0],a=0|e.words[0],o=i*a,s=67108863&o,l=o/67108864|0;r.words[0]=s;for(var u=1;u>>26,h=67108863&l,f=Math.min(u,e.length-1),p=Math.max(0,u-t.length+1);p<=f;p++){var d=u-p|0;c+=(o=(i=0|t.words[d])*(a=0|e.words[p])+h)/67108864|0,h=67108863&o}r.words[u]=0|h,l=0|c}return 0!==l?r.words[u]=0|l:r.length--,r.strip()}i.prototype.toString=function(t,e){var n;if(t=t||10,e=0|e||1,16===t||"hex"===t){n="";for(var i=0,a=0,o=0;o>>24-i&16777215)||o!==this.length-1?l[6-h.length]+h+n:h+n,(i+=2)>=26&&(i-=26,o--)}for(0!==a&&(n=a.toString(16)+n);n.length%e!=0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}if(t===(0|t)&&t>=2&&t<=36){var f=u[t],p=c[t];n="";var d=this.clone();for(d.negative=0;!d.isZero();){var g=d.modn(p).toString(t);n=(d=d.idivn(p)).isZero()?g+n:l[f-g.length]+g+n}for(this.isZero()&&(n="0"+n);n.length%e!=0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}r(!1,"Base should be between 2 and 36")},i.prototype.toNumber=function(){var t=this.words[0];return 2===this.length?t+=67108864*this.words[1]:3===this.length&&1===this.words[2]?t+=4503599627370496+67108864*this.words[1]:this.length>2&&r(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-t:t},i.prototype.toJSON=function(){return this.toString(16)},i.prototype.toBuffer=function(t,e){return r(void 0!==a),this.toArrayLike(a,t,e)},i.prototype.toArray=function(t,e){return this.toArrayLike(Array,t,e)},i.prototype.toArrayLike=function(t,e,n){var i=this.byteLength(),a=n||Math.max(1,i);r(i<=a,"byte array longer than desired length"),r(a>0,"Requested array length <= 0"),this.strip();var o,s,l="le"===e,u=new t(a),c=this.clone();if(l){for(s=0;!c.isZero();s++)o=c.andln(255),c.iushrn(8),u[s]=o;for(;s=4096&&(r+=13,e>>>=13),e>=64&&(r+=7,e>>>=7),e>=8&&(r+=4,e>>>=4),e>=2&&(r+=2,e>>>=2),r+e},i.prototype._zeroBits=function(t){if(0===t)return 26;var e=t,r=0;return 0==(8191&e)&&(r+=13,e>>>=13),0==(127&e)&&(r+=7,e>>>=7),0==(15&e)&&(r+=4,e>>>=4),0==(3&e)&&(r+=2,e>>>=2),0==(1&e)&&r++,r},i.prototype.bitLength=function(){var t=this.words[this.length-1],e=this._countBits(t);return 26*(this.length-1)+e},i.prototype.zeroBits=function(){if(this.isZero())return 0;for(var t=0,e=0;et.length?this.clone().ior(t):t.clone().ior(this)},i.prototype.uor=function(t){return this.length>t.length?this.clone().iuor(t):t.clone().iuor(this)},i.prototype.iuand=function(t){var e;e=this.length>t.length?t:this;for(var r=0;rt.length?this.clone().iand(t):t.clone().iand(this)},i.prototype.uand=function(t){return this.length>t.length?this.clone().iuand(t):t.clone().iuand(this)},i.prototype.iuxor=function(t){var e,r;this.length>t.length?(e=this,r=t):(e=t,r=this);for(var n=0;nt.length?this.clone().ixor(t):t.clone().ixor(this)},i.prototype.uxor=function(t){return this.length>t.length?this.clone().iuxor(t):t.clone().iuxor(this)},i.prototype.inotn=function(t){r("number"==typeof t&&t>=0);var e=0|Math.ceil(t/26),n=t%26;this._expand(e),n>0&&e--;for(var i=0;i0&&(this.words[i]=~this.words[i]&67108863>>26-n),this.strip()},i.prototype.notn=function(t){return this.clone().inotn(t)},i.prototype.setn=function(t,e){r("number"==typeof t&&t>=0);var n=t/26|0,i=t%26;return this._expand(n+1),this.words[n]=e?this.words[n]|1<t.length?(r=this,n=t):(r=t,n=this);for(var i=0,a=0;a>>26;for(;0!==i&&a>>26;if(this.length=r.length,0!==i)this.words[this.length]=i,this.length++;else if(r!==this)for(;at.length?this.clone().iadd(t):t.clone().iadd(this)},i.prototype.isub=function(t){if(0!==t.negative){t.negative=0;var e=this.iadd(t);return t.negative=1,e._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(t),this.negative=1,this._normSign();var r,n,i=this.cmp(t);if(0===i)return this.negative=0,this.length=1,this.words[0]=0,this;i>0?(r=this,n=t):(r=t,n=this);for(var a=0,o=0;o>26,this.words[o]=67108863&e;for(;0!==a&&o>26,this.words[o]=67108863&e;if(0===a&&o>>13,p=0|o[1],d=8191&p,g=p>>>13,v=0|o[2],m=8191&v,y=v>>>13,x=0|o[3],b=8191&x,_=x>>>13,w=0|o[4],M=8191&w,A=w>>>13,k=0|o[5],T=8191&k,S=k>>>13,E=0|o[6],C=8191&E,L=E>>>13,z=0|o[7],P=8191&z,I=z>>>13,D=0|o[8],O=8191&D,R=D>>>13,F=0|o[9],B=8191&F,N=F>>>13,j=0|s[0],V=8191&j,U=j>>>13,q=0|s[1],H=8191&q,G=q>>>13,W=0|s[2],Y=8191&W,X=W>>>13,Z=0|s[3],J=8191&Z,K=Z>>>13,Q=0|s[4],$=8191&Q,tt=Q>>>13,et=0|s[5],rt=8191&et,nt=et>>>13,it=0|s[6],at=8191&it,ot=it>>>13,st=0|s[7],lt=8191&st,ut=st>>>13,ct=0|s[8],ht=8191&ct,ft=ct>>>13,pt=0|s[9],dt=8191&pt,gt=pt>>>13;r.negative=t.negative^e.negative,r.length=19;var vt=(u+(n=Math.imul(h,V))|0)+((8191&(i=(i=Math.imul(h,U))+Math.imul(f,V)|0))<<13)|0;u=((a=Math.imul(f,U))+(i>>>13)|0)+(vt>>>26)|0,vt&=67108863,n=Math.imul(d,V),i=(i=Math.imul(d,U))+Math.imul(g,V)|0,a=Math.imul(g,U);var mt=(u+(n=n+Math.imul(h,H)|0)|0)+((8191&(i=(i=i+Math.imul(h,G)|0)+Math.imul(f,H)|0))<<13)|0;u=((a=a+Math.imul(f,G)|0)+(i>>>13)|0)+(mt>>>26)|0,mt&=67108863,n=Math.imul(m,V),i=(i=Math.imul(m,U))+Math.imul(y,V)|0,a=Math.imul(y,U),n=n+Math.imul(d,H)|0,i=(i=i+Math.imul(d,G)|0)+Math.imul(g,H)|0,a=a+Math.imul(g,G)|0;var yt=(u+(n=n+Math.imul(h,Y)|0)|0)+((8191&(i=(i=i+Math.imul(h,X)|0)+Math.imul(f,Y)|0))<<13)|0;u=((a=a+Math.imul(f,X)|0)+(i>>>13)|0)+(yt>>>26)|0,yt&=67108863,n=Math.imul(b,V),i=(i=Math.imul(b,U))+Math.imul(_,V)|0,a=Math.imul(_,U),n=n+Math.imul(m,H)|0,i=(i=i+Math.imul(m,G)|0)+Math.imul(y,H)|0,a=a+Math.imul(y,G)|0,n=n+Math.imul(d,Y)|0,i=(i=i+Math.imul(d,X)|0)+Math.imul(g,Y)|0,a=a+Math.imul(g,X)|0;var xt=(u+(n=n+Math.imul(h,J)|0)|0)+((8191&(i=(i=i+Math.imul(h,K)|0)+Math.imul(f,J)|0))<<13)|0;u=((a=a+Math.imul(f,K)|0)+(i>>>13)|0)+(xt>>>26)|0,xt&=67108863,n=Math.imul(M,V),i=(i=Math.imul(M,U))+Math.imul(A,V)|0,a=Math.imul(A,U),n=n+Math.imul(b,H)|0,i=(i=i+Math.imul(b,G)|0)+Math.imul(_,H)|0,a=a+Math.imul(_,G)|0,n=n+Math.imul(m,Y)|0,i=(i=i+Math.imul(m,X)|0)+Math.imul(y,Y)|0,a=a+Math.imul(y,X)|0,n=n+Math.imul(d,J)|0,i=(i=i+Math.imul(d,K)|0)+Math.imul(g,J)|0,a=a+Math.imul(g,K)|0;var bt=(u+(n=n+Math.imul(h,$)|0)|0)+((8191&(i=(i=i+Math.imul(h,tt)|0)+Math.imul(f,$)|0))<<13)|0;u=((a=a+Math.imul(f,tt)|0)+(i>>>13)|0)+(bt>>>26)|0,bt&=67108863,n=Math.imul(T,V),i=(i=Math.imul(T,U))+Math.imul(S,V)|0,a=Math.imul(S,U),n=n+Math.imul(M,H)|0,i=(i=i+Math.imul(M,G)|0)+Math.imul(A,H)|0,a=a+Math.imul(A,G)|0,n=n+Math.imul(b,Y)|0,i=(i=i+Math.imul(b,X)|0)+Math.imul(_,Y)|0,a=a+Math.imul(_,X)|0,n=n+Math.imul(m,J)|0,i=(i=i+Math.imul(m,K)|0)+Math.imul(y,J)|0,a=a+Math.imul(y,K)|0,n=n+Math.imul(d,$)|0,i=(i=i+Math.imul(d,tt)|0)+Math.imul(g,$)|0,a=a+Math.imul(g,tt)|0;var _t=(u+(n=n+Math.imul(h,rt)|0)|0)+((8191&(i=(i=i+Math.imul(h,nt)|0)+Math.imul(f,rt)|0))<<13)|0;u=((a=a+Math.imul(f,nt)|0)+(i>>>13)|0)+(_t>>>26)|0,_t&=67108863,n=Math.imul(C,V),i=(i=Math.imul(C,U))+Math.imul(L,V)|0,a=Math.imul(L,U),n=n+Math.imul(T,H)|0,i=(i=i+Math.imul(T,G)|0)+Math.imul(S,H)|0,a=a+Math.imul(S,G)|0,n=n+Math.imul(M,Y)|0,i=(i=i+Math.imul(M,X)|0)+Math.imul(A,Y)|0,a=a+Math.imul(A,X)|0,n=n+Math.imul(b,J)|0,i=(i=i+Math.imul(b,K)|0)+Math.imul(_,J)|0,a=a+Math.imul(_,K)|0,n=n+Math.imul(m,$)|0,i=(i=i+Math.imul(m,tt)|0)+Math.imul(y,$)|0,a=a+Math.imul(y,tt)|0,n=n+Math.imul(d,rt)|0,i=(i=i+Math.imul(d,nt)|0)+Math.imul(g,rt)|0,a=a+Math.imul(g,nt)|0;var wt=(u+(n=n+Math.imul(h,at)|0)|0)+((8191&(i=(i=i+Math.imul(h,ot)|0)+Math.imul(f,at)|0))<<13)|0;u=((a=a+Math.imul(f,ot)|0)+(i>>>13)|0)+(wt>>>26)|0,wt&=67108863,n=Math.imul(P,V),i=(i=Math.imul(P,U))+Math.imul(I,V)|0,a=Math.imul(I,U),n=n+Math.imul(C,H)|0,i=(i=i+Math.imul(C,G)|0)+Math.imul(L,H)|0,a=a+Math.imul(L,G)|0,n=n+Math.imul(T,Y)|0,i=(i=i+Math.imul(T,X)|0)+Math.imul(S,Y)|0,a=a+Math.imul(S,X)|0,n=n+Math.imul(M,J)|0,i=(i=i+Math.imul(M,K)|0)+Math.imul(A,J)|0,a=a+Math.imul(A,K)|0,n=n+Math.imul(b,$)|0,i=(i=i+Math.imul(b,tt)|0)+Math.imul(_,$)|0,a=a+Math.imul(_,tt)|0,n=n+Math.imul(m,rt)|0,i=(i=i+Math.imul(m,nt)|0)+Math.imul(y,rt)|0,a=a+Math.imul(y,nt)|0,n=n+Math.imul(d,at)|0,i=(i=i+Math.imul(d,ot)|0)+Math.imul(g,at)|0,a=a+Math.imul(g,ot)|0;var Mt=(u+(n=n+Math.imul(h,lt)|0)|0)+((8191&(i=(i=i+Math.imul(h,ut)|0)+Math.imul(f,lt)|0))<<13)|0;u=((a=a+Math.imul(f,ut)|0)+(i>>>13)|0)+(Mt>>>26)|0,Mt&=67108863,n=Math.imul(O,V),i=(i=Math.imul(O,U))+Math.imul(R,V)|0,a=Math.imul(R,U),n=n+Math.imul(P,H)|0,i=(i=i+Math.imul(P,G)|0)+Math.imul(I,H)|0,a=a+Math.imul(I,G)|0,n=n+Math.imul(C,Y)|0,i=(i=i+Math.imul(C,X)|0)+Math.imul(L,Y)|0,a=a+Math.imul(L,X)|0,n=n+Math.imul(T,J)|0,i=(i=i+Math.imul(T,K)|0)+Math.imul(S,J)|0,a=a+Math.imul(S,K)|0,n=n+Math.imul(M,$)|0,i=(i=i+Math.imul(M,tt)|0)+Math.imul(A,$)|0,a=a+Math.imul(A,tt)|0,n=n+Math.imul(b,rt)|0,i=(i=i+Math.imul(b,nt)|0)+Math.imul(_,rt)|0,a=a+Math.imul(_,nt)|0,n=n+Math.imul(m,at)|0,i=(i=i+Math.imul(m,ot)|0)+Math.imul(y,at)|0,a=a+Math.imul(y,ot)|0,n=n+Math.imul(d,lt)|0,i=(i=i+Math.imul(d,ut)|0)+Math.imul(g,lt)|0,a=a+Math.imul(g,ut)|0;var At=(u+(n=n+Math.imul(h,ht)|0)|0)+((8191&(i=(i=i+Math.imul(h,ft)|0)+Math.imul(f,ht)|0))<<13)|0;u=((a=a+Math.imul(f,ft)|0)+(i>>>13)|0)+(At>>>26)|0,At&=67108863,n=Math.imul(B,V),i=(i=Math.imul(B,U))+Math.imul(N,V)|0,a=Math.imul(N,U),n=n+Math.imul(O,H)|0,i=(i=i+Math.imul(O,G)|0)+Math.imul(R,H)|0,a=a+Math.imul(R,G)|0,n=n+Math.imul(P,Y)|0,i=(i=i+Math.imul(P,X)|0)+Math.imul(I,Y)|0,a=a+Math.imul(I,X)|0,n=n+Math.imul(C,J)|0,i=(i=i+Math.imul(C,K)|0)+Math.imul(L,J)|0,a=a+Math.imul(L,K)|0,n=n+Math.imul(T,$)|0,i=(i=i+Math.imul(T,tt)|0)+Math.imul(S,$)|0,a=a+Math.imul(S,tt)|0,n=n+Math.imul(M,rt)|0,i=(i=i+Math.imul(M,nt)|0)+Math.imul(A,rt)|0,a=a+Math.imul(A,nt)|0,n=n+Math.imul(b,at)|0,i=(i=i+Math.imul(b,ot)|0)+Math.imul(_,at)|0,a=a+Math.imul(_,ot)|0,n=n+Math.imul(m,lt)|0,i=(i=i+Math.imul(m,ut)|0)+Math.imul(y,lt)|0,a=a+Math.imul(y,ut)|0,n=n+Math.imul(d,ht)|0,i=(i=i+Math.imul(d,ft)|0)+Math.imul(g,ht)|0,a=a+Math.imul(g,ft)|0;var kt=(u+(n=n+Math.imul(h,dt)|0)|0)+((8191&(i=(i=i+Math.imul(h,gt)|0)+Math.imul(f,dt)|0))<<13)|0;u=((a=a+Math.imul(f,gt)|0)+(i>>>13)|0)+(kt>>>26)|0,kt&=67108863,n=Math.imul(B,H),i=(i=Math.imul(B,G))+Math.imul(N,H)|0,a=Math.imul(N,G),n=n+Math.imul(O,Y)|0,i=(i=i+Math.imul(O,X)|0)+Math.imul(R,Y)|0,a=a+Math.imul(R,X)|0,n=n+Math.imul(P,J)|0,i=(i=i+Math.imul(P,K)|0)+Math.imul(I,J)|0,a=a+Math.imul(I,K)|0,n=n+Math.imul(C,$)|0,i=(i=i+Math.imul(C,tt)|0)+Math.imul(L,$)|0,a=a+Math.imul(L,tt)|0,n=n+Math.imul(T,rt)|0,i=(i=i+Math.imul(T,nt)|0)+Math.imul(S,rt)|0,a=a+Math.imul(S,nt)|0,n=n+Math.imul(M,at)|0,i=(i=i+Math.imul(M,ot)|0)+Math.imul(A,at)|0,a=a+Math.imul(A,ot)|0,n=n+Math.imul(b,lt)|0,i=(i=i+Math.imul(b,ut)|0)+Math.imul(_,lt)|0,a=a+Math.imul(_,ut)|0,n=n+Math.imul(m,ht)|0,i=(i=i+Math.imul(m,ft)|0)+Math.imul(y,ht)|0,a=a+Math.imul(y,ft)|0;var Tt=(u+(n=n+Math.imul(d,dt)|0)|0)+((8191&(i=(i=i+Math.imul(d,gt)|0)+Math.imul(g,dt)|0))<<13)|0;u=((a=a+Math.imul(g,gt)|0)+(i>>>13)|0)+(Tt>>>26)|0,Tt&=67108863,n=Math.imul(B,Y),i=(i=Math.imul(B,X))+Math.imul(N,Y)|0,a=Math.imul(N,X),n=n+Math.imul(O,J)|0,i=(i=i+Math.imul(O,K)|0)+Math.imul(R,J)|0,a=a+Math.imul(R,K)|0,n=n+Math.imul(P,$)|0,i=(i=i+Math.imul(P,tt)|0)+Math.imul(I,$)|0,a=a+Math.imul(I,tt)|0,n=n+Math.imul(C,rt)|0,i=(i=i+Math.imul(C,nt)|0)+Math.imul(L,rt)|0,a=a+Math.imul(L,nt)|0,n=n+Math.imul(T,at)|0,i=(i=i+Math.imul(T,ot)|0)+Math.imul(S,at)|0,a=a+Math.imul(S,ot)|0,n=n+Math.imul(M,lt)|0,i=(i=i+Math.imul(M,ut)|0)+Math.imul(A,lt)|0,a=a+Math.imul(A,ut)|0,n=n+Math.imul(b,ht)|0,i=(i=i+Math.imul(b,ft)|0)+Math.imul(_,ht)|0,a=a+Math.imul(_,ft)|0;var St=(u+(n=n+Math.imul(m,dt)|0)|0)+((8191&(i=(i=i+Math.imul(m,gt)|0)+Math.imul(y,dt)|0))<<13)|0;u=((a=a+Math.imul(y,gt)|0)+(i>>>13)|0)+(St>>>26)|0,St&=67108863,n=Math.imul(B,J),i=(i=Math.imul(B,K))+Math.imul(N,J)|0,a=Math.imul(N,K),n=n+Math.imul(O,$)|0,i=(i=i+Math.imul(O,tt)|0)+Math.imul(R,$)|0,a=a+Math.imul(R,tt)|0,n=n+Math.imul(P,rt)|0,i=(i=i+Math.imul(P,nt)|0)+Math.imul(I,rt)|0,a=a+Math.imul(I,nt)|0,n=n+Math.imul(C,at)|0,i=(i=i+Math.imul(C,ot)|0)+Math.imul(L,at)|0,a=a+Math.imul(L,ot)|0,n=n+Math.imul(T,lt)|0,i=(i=i+Math.imul(T,ut)|0)+Math.imul(S,lt)|0,a=a+Math.imul(S,ut)|0,n=n+Math.imul(M,ht)|0,i=(i=i+Math.imul(M,ft)|0)+Math.imul(A,ht)|0,a=a+Math.imul(A,ft)|0;var Et=(u+(n=n+Math.imul(b,dt)|0)|0)+((8191&(i=(i=i+Math.imul(b,gt)|0)+Math.imul(_,dt)|0))<<13)|0;u=((a=a+Math.imul(_,gt)|0)+(i>>>13)|0)+(Et>>>26)|0,Et&=67108863,n=Math.imul(B,$),i=(i=Math.imul(B,tt))+Math.imul(N,$)|0,a=Math.imul(N,tt),n=n+Math.imul(O,rt)|0,i=(i=i+Math.imul(O,nt)|0)+Math.imul(R,rt)|0,a=a+Math.imul(R,nt)|0,n=n+Math.imul(P,at)|0,i=(i=i+Math.imul(P,ot)|0)+Math.imul(I,at)|0,a=a+Math.imul(I,ot)|0,n=n+Math.imul(C,lt)|0,i=(i=i+Math.imul(C,ut)|0)+Math.imul(L,lt)|0,a=a+Math.imul(L,ut)|0,n=n+Math.imul(T,ht)|0,i=(i=i+Math.imul(T,ft)|0)+Math.imul(S,ht)|0,a=a+Math.imul(S,ft)|0;var Ct=(u+(n=n+Math.imul(M,dt)|0)|0)+((8191&(i=(i=i+Math.imul(M,gt)|0)+Math.imul(A,dt)|0))<<13)|0;u=((a=a+Math.imul(A,gt)|0)+(i>>>13)|0)+(Ct>>>26)|0,Ct&=67108863,n=Math.imul(B,rt),i=(i=Math.imul(B,nt))+Math.imul(N,rt)|0,a=Math.imul(N,nt),n=n+Math.imul(O,at)|0,i=(i=i+Math.imul(O,ot)|0)+Math.imul(R,at)|0,a=a+Math.imul(R,ot)|0,n=n+Math.imul(P,lt)|0,i=(i=i+Math.imul(P,ut)|0)+Math.imul(I,lt)|0,a=a+Math.imul(I,ut)|0,n=n+Math.imul(C,ht)|0,i=(i=i+Math.imul(C,ft)|0)+Math.imul(L,ht)|0,a=a+Math.imul(L,ft)|0;var Lt=(u+(n=n+Math.imul(T,dt)|0)|0)+((8191&(i=(i=i+Math.imul(T,gt)|0)+Math.imul(S,dt)|0))<<13)|0;u=((a=a+Math.imul(S,gt)|0)+(i>>>13)|0)+(Lt>>>26)|0,Lt&=67108863,n=Math.imul(B,at),i=(i=Math.imul(B,ot))+Math.imul(N,at)|0,a=Math.imul(N,ot),n=n+Math.imul(O,lt)|0,i=(i=i+Math.imul(O,ut)|0)+Math.imul(R,lt)|0,a=a+Math.imul(R,ut)|0,n=n+Math.imul(P,ht)|0,i=(i=i+Math.imul(P,ft)|0)+Math.imul(I,ht)|0,a=a+Math.imul(I,ft)|0;var zt=(u+(n=n+Math.imul(C,dt)|0)|0)+((8191&(i=(i=i+Math.imul(C,gt)|0)+Math.imul(L,dt)|0))<<13)|0;u=((a=a+Math.imul(L,gt)|0)+(i>>>13)|0)+(zt>>>26)|0,zt&=67108863,n=Math.imul(B,lt),i=(i=Math.imul(B,ut))+Math.imul(N,lt)|0,a=Math.imul(N,ut),n=n+Math.imul(O,ht)|0,i=(i=i+Math.imul(O,ft)|0)+Math.imul(R,ht)|0,a=a+Math.imul(R,ft)|0;var Pt=(u+(n=n+Math.imul(P,dt)|0)|0)+((8191&(i=(i=i+Math.imul(P,gt)|0)+Math.imul(I,dt)|0))<<13)|0;u=((a=a+Math.imul(I,gt)|0)+(i>>>13)|0)+(Pt>>>26)|0,Pt&=67108863,n=Math.imul(B,ht),i=(i=Math.imul(B,ft))+Math.imul(N,ht)|0,a=Math.imul(N,ft);var It=(u+(n=n+Math.imul(O,dt)|0)|0)+((8191&(i=(i=i+Math.imul(O,gt)|0)+Math.imul(R,dt)|0))<<13)|0;u=((a=a+Math.imul(R,gt)|0)+(i>>>13)|0)+(It>>>26)|0,It&=67108863;var Dt=(u+(n=Math.imul(B,dt))|0)+((8191&(i=(i=Math.imul(B,gt))+Math.imul(N,dt)|0))<<13)|0;return u=((a=Math.imul(N,gt))+(i>>>13)|0)+(Dt>>>26)|0,Dt&=67108863,l[0]=vt,l[1]=mt,l[2]=yt,l[3]=xt,l[4]=bt,l[5]=_t,l[6]=wt,l[7]=Mt,l[8]=At,l[9]=kt,l[10]=Tt,l[11]=St,l[12]=Et,l[13]=Ct,l[14]=Lt,l[15]=zt,l[16]=Pt,l[17]=It,l[18]=Dt,0!==u&&(l[19]=u,r.length++),r};function p(t,e,r){return(new d).mulp(t,e,r)}function d(t,e){this.x=t,this.y=e}Math.imul||(f=h),i.prototype.mulTo=function(t,e){var r=this.length+t.length;return 10===this.length&&10===t.length?f(this,t,e):r<63?h(this,t,e):r<1024?function(t,e,r){r.negative=e.negative^t.negative,r.length=t.length+e.length;for(var n=0,i=0,a=0;a>>26)|0)>>>26,o&=67108863}r.words[a]=s,n=o,o=i}return 0!==n?r.words[a]=n:r.length--,r.strip()}(this,t,e):p(this,t,e)},d.prototype.makeRBT=function(t){for(var e=new Array(t),r=i.prototype._countBits(t)-1,n=0;n>=1;return n},d.prototype.permute=function(t,e,r,n,i,a){for(var o=0;o>>=1)i++;return 1<>>=13,n[2*o+1]=8191&a,a>>>=13;for(o=2*e;o>=26,e+=i/67108864|0,e+=a>>>26,this.words[n]=67108863&a}return 0!==e&&(this.words[n]=e,this.length++),this},i.prototype.muln=function(t){return this.clone().imuln(t)},i.prototype.sqr=function(){return this.mul(this)},i.prototype.isqr=function(){return this.imul(this.clone())},i.prototype.pow=function(t){var e=function(t){for(var e=new Array(t.bitLength()),r=0;r>>i}return e}(t);if(0===e.length)return new i(1);for(var r=this,n=0;n=0);var e,n=t%26,i=(t-n)/26,a=67108863>>>26-n<<26-n;if(0!==n){var o=0;for(e=0;e>>26-n}o&&(this.words[e]=o,this.length++)}if(0!==i){for(e=this.length-1;e>=0;e--)this.words[e+i]=this.words[e];for(e=0;e=0),i=e?(e-e%26)/26:0;var a=t%26,o=Math.min((t-a)/26,this.length),s=67108863^67108863>>>a<o)for(this.length-=o,u=0;u=0&&(0!==c||u>=i);u--){var h=0|this.words[u];this.words[u]=c<<26-a|h>>>a,c=h&s}return l&&0!==c&&(l.words[l.length++]=c),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},i.prototype.ishrn=function(t,e,n){return r(0===this.negative),this.iushrn(t,e,n)},i.prototype.shln=function(t){return this.clone().ishln(t)},i.prototype.ushln=function(t){return this.clone().iushln(t)},i.prototype.shrn=function(t){return this.clone().ishrn(t)},i.prototype.ushrn=function(t){return this.clone().iushrn(t)},i.prototype.testn=function(t){r("number"==typeof t&&t>=0);var e=t%26,n=(t-e)/26,i=1<=0);var e=t%26,n=(t-e)/26;if(r(0===this.negative,"imaskn works only with positive numbers"),this.length<=n)return this;if(0!==e&&n++,this.length=Math.min(n,this.length),0!==e){var i=67108863^67108863>>>e<=67108864;e++)this.words[e]-=67108864,e===this.length-1?this.words[e+1]=1:this.words[e+1]++;return this.length=Math.max(this.length,e+1),this},i.prototype.isubn=function(t){if(r("number"==typeof t),r(t<67108864),t<0)return this.iaddn(-t);if(0!==this.negative)return this.negative=0,this.iaddn(t),this.negative=1,this;if(this.words[0]-=t,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var e=0;e>26)-(l/67108864|0),this.words[i+n]=67108863&a}for(;i>26,this.words[i+n]=67108863&a;if(0===s)return this.strip();for(r(-1===s),s=0,i=0;i>26,this.words[i]=67108863&a;return this.negative=1,this.strip()},i.prototype._wordDiv=function(t,e){var r=(this.length,t.length),n=this.clone(),a=t,o=0|a.words[a.length-1];0!==(r=26-this._countBits(o))&&(a=a.ushln(r),n.iushln(r),o=0|a.words[a.length-1]);var s,l=n.length-a.length;if("mod"!==e){(s=new i(null)).length=l+1,s.words=new Array(s.length);for(var u=0;u=0;h--){var f=67108864*(0|n.words[a.length+h])+(0|n.words[a.length+h-1]);for(f=Math.min(f/o|0,67108863),n._ishlnsubmul(a,f,h);0!==n.negative;)f--,n.negative=0,n._ishlnsubmul(a,1,h),n.isZero()||(n.negative^=1);s&&(s.words[h]=f)}return s&&s.strip(),n.strip(),"div"!==e&&0!==r&&n.iushrn(r),{div:s||null,mod:n}},i.prototype.divmod=function(t,e,n){return r(!t.isZero()),this.isZero()?{div:new i(0),mod:new i(0)}:0!==this.negative&&0===t.negative?(s=this.neg().divmod(t,e),"mod"!==e&&(a=s.div.neg()),"div"!==e&&(o=s.mod.neg(),n&&0!==o.negative&&o.iadd(t)),{div:a,mod:o}):0===this.negative&&0!==t.negative?(s=this.divmod(t.neg(),e),"mod"!==e&&(a=s.div.neg()),{div:a,mod:s.mod}):0!=(this.negative&t.negative)?(s=this.neg().divmod(t.neg(),e),"div"!==e&&(o=s.mod.neg(),n&&0!==o.negative&&o.isub(t)),{div:s.div,mod:o}):t.length>this.length||this.cmp(t)<0?{div:new i(0),mod:this}:1===t.length?"div"===e?{div:this.divn(t.words[0]),mod:null}:"mod"===e?{div:null,mod:new i(this.modn(t.words[0]))}:{div:this.divn(t.words[0]),mod:new i(this.modn(t.words[0]))}:this._wordDiv(t,e);var a,o,s},i.prototype.div=function(t){return this.divmod(t,"div",!1).div},i.prototype.mod=function(t){return this.divmod(t,"mod",!1).mod},i.prototype.umod=function(t){return this.divmod(t,"mod",!0).mod},i.prototype.divRound=function(t){var e=this.divmod(t);if(e.mod.isZero())return e.div;var r=0!==e.div.negative?e.mod.isub(t):e.mod,n=t.ushrn(1),i=t.andln(1),a=r.cmp(n);return a<0||1===i&&0===a?e.div:0!==e.div.negative?e.div.isubn(1):e.div.iaddn(1)},i.prototype.modn=function(t){r(t<=67108863);for(var e=(1<<26)%t,n=0,i=this.length-1;i>=0;i--)n=(e*n+(0|this.words[i]))%t;return n},i.prototype.idivn=function(t){r(t<=67108863);for(var e=0,n=this.length-1;n>=0;n--){var i=(0|this.words[n])+67108864*e;this.words[n]=i/t|0,e=i%t}return this.strip()},i.prototype.divn=function(t){return this.clone().idivn(t)},i.prototype.egcd=function(t){r(0===t.negative),r(!t.isZero());var e=this,n=t.clone();e=0!==e.negative?e.umod(t):e.clone();for(var a=new i(1),o=new i(0),s=new i(0),l=new i(1),u=0;e.isEven()&&n.isEven();)e.iushrn(1),n.iushrn(1),++u;for(var c=n.clone(),h=e.clone();!e.isZero();){for(var f=0,p=1;0==(e.words[0]&p)&&f<26;++f,p<<=1);if(f>0)for(e.iushrn(f);f-- >0;)(a.isOdd()||o.isOdd())&&(a.iadd(c),o.isub(h)),a.iushrn(1),o.iushrn(1);for(var d=0,g=1;0==(n.words[0]&g)&&d<26;++d,g<<=1);if(d>0)for(n.iushrn(d);d-- >0;)(s.isOdd()||l.isOdd())&&(s.iadd(c),l.isub(h)),s.iushrn(1),l.iushrn(1);e.cmp(n)>=0?(e.isub(n),a.isub(s),o.isub(l)):(n.isub(e),s.isub(a),l.isub(o))}return{a:s,b:l,gcd:n.iushln(u)}},i.prototype._invmp=function(t){r(0===t.negative),r(!t.isZero());var e=this,n=t.clone();e=0!==e.negative?e.umod(t):e.clone();for(var a,o=new i(1),s=new i(0),l=n.clone();e.cmpn(1)>0&&n.cmpn(1)>0;){for(var u=0,c=1;0==(e.words[0]&c)&&u<26;++u,c<<=1);if(u>0)for(e.iushrn(u);u-- >0;)o.isOdd()&&o.iadd(l),o.iushrn(1);for(var h=0,f=1;0==(n.words[0]&f)&&h<26;++h,f<<=1);if(h>0)for(n.iushrn(h);h-- >0;)s.isOdd()&&s.iadd(l),s.iushrn(1);e.cmp(n)>=0?(e.isub(n),o.isub(s)):(n.isub(e),s.isub(o))}return(a=0===e.cmpn(1)?o:s).cmpn(0)<0&&a.iadd(t),a},i.prototype.gcd=function(t){if(this.isZero())return t.abs();if(t.isZero())return this.abs();var e=this.clone(),r=t.clone();e.negative=0,r.negative=0;for(var n=0;e.isEven()&&r.isEven();n++)e.iushrn(1),r.iushrn(1);for(;;){for(;e.isEven();)e.iushrn(1);for(;r.isEven();)r.iushrn(1);var i=e.cmp(r);if(i<0){var a=e;e=r,r=a}else if(0===i||0===r.cmpn(1))break;e.isub(r)}return r.iushln(n)},i.prototype.invm=function(t){return this.egcd(t).a.umod(t)},i.prototype.isEven=function(){return 0==(1&this.words[0])},i.prototype.isOdd=function(){return 1==(1&this.words[0])},i.prototype.andln=function(t){return this.words[0]&t},i.prototype.bincn=function(t){r("number"==typeof t);var e=t%26,n=(t-e)/26,i=1<>>26,s&=67108863,this.words[o]=s}return 0!==a&&(this.words[o]=a,this.length++),this},i.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},i.prototype.cmpn=function(t){var e,n=t<0;if(0!==this.negative&&!n)return-1;if(0===this.negative&&n)return 1;if(this.strip(),this.length>1)e=1;else{n&&(t=-t),r(t<=67108863,"Number is too big");var i=0|this.words[0];e=i===t?0:it.length)return 1;if(this.length=0;r--){var n=0|this.words[r],i=0|t.words[r];if(n!==i){ni&&(e=1);break}}return e},i.prototype.gtn=function(t){return 1===this.cmpn(t)},i.prototype.gt=function(t){return 1===this.cmp(t)},i.prototype.gten=function(t){return this.cmpn(t)>=0},i.prototype.gte=function(t){return this.cmp(t)>=0},i.prototype.ltn=function(t){return-1===this.cmpn(t)},i.prototype.lt=function(t){return-1===this.cmp(t)},i.prototype.lten=function(t){return this.cmpn(t)<=0},i.prototype.lte=function(t){return this.cmp(t)<=0},i.prototype.eqn=function(t){return 0===this.cmpn(t)},i.prototype.eq=function(t){return 0===this.cmp(t)},i.red=function(t){return new _(t)},i.prototype.toRed=function(t){return r(!this.red,"Already a number in reduction context"),r(0===this.negative,"red works only with positives"),t.convertTo(this)._forceRed(t)},i.prototype.fromRed=function(){return r(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},i.prototype._forceRed=function(t){return this.red=t,this},i.prototype.forceRed=function(t){return r(!this.red,"Already a number in reduction context"),this._forceRed(t)},i.prototype.redAdd=function(t){return r(this.red,"redAdd works only with red numbers"),this.red.add(this,t)},i.prototype.redIAdd=function(t){return r(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,t)},i.prototype.redSub=function(t){return r(this.red,"redSub works only with red numbers"),this.red.sub(this,t)},i.prototype.redISub=function(t){return r(this.red,"redISub works only with red numbers"),this.red.isub(this,t)},i.prototype.redShl=function(t){return r(this.red,"redShl works only with red numbers"),this.red.shl(this,t)},i.prototype.redMul=function(t){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.mul(this,t)},i.prototype.redIMul=function(t){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.imul(this,t)},i.prototype.redSqr=function(){return r(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},i.prototype.redISqr=function(){return r(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},i.prototype.redSqrt=function(){return r(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},i.prototype.redInvm=function(){return r(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},i.prototype.redNeg=function(){return r(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},i.prototype.redPow=function(t){return r(this.red&&!t.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,t)};var g={k256:null,p224:null,p192:null,p25519:null};function v(t,e){this.name=t,this.p=new i(e,16),this.n=this.p.bitLength(),this.k=new i(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function m(){v.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function y(){v.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function x(){v.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function b(){v.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function _(t){if("string"==typeof t){var e=i._prime(t);this.m=e.p,this.prime=e}else r(t.gtn(1),"modulus must be greater than 1"),this.m=t,this.prime=null}function w(t){_.call(this,t),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new i(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}v.prototype._tmp=function(){var t=new i(null);return t.words=new Array(Math.ceil(this.n/13)),t},v.prototype.ireduce=function(t){var e,r=t;do{this.split(r,this.tmp),e=(r=(r=this.imulK(r)).iadd(this.tmp)).bitLength()}while(e>this.n);var n=e0?r.isub(this.p):r.strip(),r},v.prototype.split=function(t,e){t.iushrn(this.n,0,e)},v.prototype.imulK=function(t){return t.imul(this.k)},n(m,v),m.prototype.split=function(t,e){for(var r=Math.min(t.length,9),n=0;n>>22,i=a}i>>>=22,t.words[n-10]=i,0===i&&t.length>10?t.length-=10:t.length-=9},m.prototype.imulK=function(t){t.words[t.length]=0,t.words[t.length+1]=0,t.length+=2;for(var e=0,r=0;r>>=26,t.words[r]=i,e=n}return 0!==e&&(t.words[t.length++]=e),t},i._prime=function(t){if(g[t])return g[t];var e;if("k256"===t)e=new m;else if("p224"===t)e=new y;else if("p192"===t)e=new x;else{if("p25519"!==t)throw new Error("Unknown prime "+t);e=new b}return g[t]=e,e},_.prototype._verify1=function(t){r(0===t.negative,"red works only with positives"),r(t.red,"red works only with red numbers")},_.prototype._verify2=function(t,e){r(0==(t.negative|e.negative),"red works only with positives"),r(t.red&&t.red===e.red,"red works only with red numbers")},_.prototype.imod=function(t){return this.prime?this.prime.ireduce(t)._forceRed(this):t.umod(this.m)._forceRed(this)},_.prototype.neg=function(t){return t.isZero()?t.clone():this.m.sub(t)._forceRed(this)},_.prototype.add=function(t,e){this._verify2(t,e);var r=t.add(e);return r.cmp(this.m)>=0&&r.isub(this.m),r._forceRed(this)},_.prototype.iadd=function(t,e){this._verify2(t,e);var r=t.iadd(e);return r.cmp(this.m)>=0&&r.isub(this.m),r},_.prototype.sub=function(t,e){this._verify2(t,e);var r=t.sub(e);return r.cmpn(0)<0&&r.iadd(this.m),r._forceRed(this)},_.prototype.isub=function(t,e){this._verify2(t,e);var r=t.isub(e);return r.cmpn(0)<0&&r.iadd(this.m),r},_.prototype.shl=function(t,e){return this._verify1(t),this.imod(t.ushln(e))},_.prototype.imul=function(t,e){return this._verify2(t,e),this.imod(t.imul(e))},_.prototype.mul=function(t,e){return this._verify2(t,e),this.imod(t.mul(e))},_.prototype.isqr=function(t){return this.imul(t,t.clone())},_.prototype.sqr=function(t){return this.mul(t,t)},_.prototype.sqrt=function(t){if(t.isZero())return t.clone();var e=this.m.andln(3);if(r(e%2==1),3===e){var n=this.m.add(new i(1)).iushrn(2);return this.pow(t,n)}for(var a=this.m.subn(1),o=0;!a.isZero()&&0===a.andln(1);)o++,a.iushrn(1);r(!a.isZero());var s=new i(1).toRed(this),l=s.redNeg(),u=this.m.subn(1).iushrn(1),c=this.m.bitLength();for(c=new i(2*c*c).toRed(this);0!==this.pow(c,u).cmp(l);)c.redIAdd(l);for(var h=this.pow(c,a),f=this.pow(t,a.addn(1).iushrn(1)),p=this.pow(t,a),d=o;0!==p.cmp(s);){for(var g=p,v=0;0!==g.cmp(s);v++)g=g.redSqr();r(v=0;n--){for(var u=e.words[n],c=l-1;c>=0;c--){var h=u>>c&1;a!==r[0]&&(a=this.sqr(a)),0!==h||0!==o?(o<<=1,o|=h,(4===++s||0===n&&0===c)&&(a=this.mul(a,r[o]),s=0,o=0)):s=0}l=26}return a},_.prototype.convertTo=function(t){var e=t.umod(this.m);return e===t?e.clone():e},_.prototype.convertFrom=function(t){var e=t.clone();return e.red=null,e},i.mont=function(t){return new w(t)},n(w,_),w.prototype.convertTo=function(t){return this.imod(t.ushln(this.shift))},w.prototype.convertFrom=function(t){var e=this.imod(t.mul(this.rinv));return e.red=null,e},w.prototype.imul=function(t,e){if(t.isZero()||e.isZero())return t.words[0]=0,t.length=1,t;var r=t.imul(e),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),a=i;return i.cmp(this.m)>=0?a=i.isub(this.m):i.cmpn(0)<0&&(a=i.iadd(this.m)),a._forceRed(this)},w.prototype.mul=function(t,e){if(t.isZero()||e.isZero())return new i(0)._forceRed(this);var r=t.mul(e),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),a=r.isub(n).iushrn(this.shift),o=a;return a.cmp(this.m)>=0?o=a.isub(this.m):a.cmpn(0)<0&&(o=a.iadd(this.m)),o._forceRed(this)},w.prototype.invm=function(t){return this.imod(t._invmp(this.m).mul(this.r2))._forceRed(this)}}(cA,this),cA=cA.exports;var hA=function(t){return t.cmp(new cA(0))};var fA={};(function(t){var e=!1;if("undefined"!=typeof Float64Array){var r=new Float64Array(1),n=new Uint32Array(r.buffer);if(r[0]=1,e=!0,1072693248===n[1]){(fA=function(t){return r[0]=t,[n[0],n[1]]}).pack=function(t,e){return n[0]=t,n[1]=e,r[0]},fA.lo=function(t){return r[0]=t,n[0]},fA.hi=function(t){return r[0]=t,n[1]}}else if(1072693248===n[0]){(fA=function(t){return r[0]=t,[n[1],n[0]]}).pack=function(t,e){return n[1]=t,n[0]=e,r[0]},fA.lo=function(t){return r[0]=t,n[1]},fA.hi=function(t){return r[0]=t,n[0]}}else e=!1}if(!e){var i=new t(8);(fA=function(t){return i.writeDoubleLE(t,0,!0),[i.readUInt32LE(0,!0),i.readUInt32LE(4,!0)]}).pack=function(t,e){return i.writeUInt32LE(t,0,!0),i.writeUInt32LE(e,4,!0),i.readDoubleLE(0,!0)},fA.lo=function(t){return i.writeDoubleLE(t,0,!0),i.readUInt32LE(0,!0)},fA.hi=function(t){return i.writeDoubleLE(t,0,!0),i.readUInt32LE(4,!0)}}fA.sign=function(t){return fA.hi(t)>>>31},fA.exponent=function(t){return(fA.hi(t)<<1>>>21)-1023},fA.fraction=function(t){var e=fA.lo(t),r=fA.hi(t),n=1048575&r;return 2146435072&r&&(n+=1<<20),[e,n]},fA.denormalized=function(t){return!(2146435072&fA.hi(t))}}).call(this,Rb.Buffer);var pA=function(t){var e=fA.exponent(t);return e<52?new cA(t):new cA(t*Math.pow(2,52-e)).ushln(e-52)};var dA=function(t,e){var r=hA(t),n=hA(e);if(0===r)return[pA(0),pA(1)];if(0===n)return[pA(0),pA(0)];n<0&&(t=t.neg(),e=e.neg());var i=t.gcd(e);if(i.cmpn(1))return[t.div(i),e.div(i)];return[t,e]};var gA=function(t,e){return dA(t[0].mul(e[1]),t[1].mul(e[0]))};var vA=function(t){return t&&"object"==typeof t&&Boolean(t.words)};var mA=function(t){return Array.isArray(t)&&2===t.length&&vA(t[0])&&vA(t[1])};var yA=function(t){return new cA(t)};var xA=function t(e,r){if(mA(e))return r?gA(e,t(r)):[e[0].clone(),e[1].clone()];var n=0;var i,a;if(vA(e))i=e.clone();else if("string"==typeof e)i=yA(e);else{if(0===e)return[pA(0),pA(1)];if(e===Math.floor(e))i=pA(e);else{for(;e!==Math.floor(e);)e*=Math.pow(2,256),n-=256;i=pA(e)}}if(mA(r))i.mul(r[1]),a=r[0].clone();else if(vA(r))a=r.clone();else if("string"==typeof r)a=yA(r);else if(r)if(r===Math.floor(r))a=pA(r);else{for(;r!==Math.floor(r);)r*=Math.pow(2,256),n+=256;a=pA(r)}else a=pA(1);n>0?i=i.ushln(n):n<0&&(a=a.ushln(-n));return dA(i,a)};var bA=function(t){var e=t.length,r=t.words,n=0;if(1===e)n=r[0];else if(2===e)n=r[0]+67108864*r[1];else for(var i=0;i20)return 52;return r+32};var MA=function(t){var e=t[0],r=t[1];if(0===e.cmpn(0))return 0;var n=e.abs().divmod(r.abs()),i=n.div,a=bA(i),o=n.mod,s=e.negative!==r.negative?-1:1;if(0===o.cmpn(0))return s*a;if(a){var l=wA(a)+4,u=bA(o.ushln(l).divRound(r));return s*(a+u*Math.pow(2,-l))}var c=r.bitLength()-o.bitLength()+53,u=bA(o.ushln(c).divRound(r));return c<1023?s*u*Math.pow(2,-c):(u*=Math.pow(2,-1023),s*u*Math.pow(2,1023-c))};var AA={},kA="d",TA="ax",SA="vv",EA="fp",CA="es",LA="rs",zA="re",PA="rb",IA="ri",DA="rp",OA="bs",RA="be",FA="bb",BA="bi",NA="bp",jA="rv",VA="Q",UA=[kA,TA,SA,LA,zA,PA,IA,OA,RA,FA,BA];function qA(t){var e="bruteForce"+(t?"Full":"Partial"),r=[],n=UA.slice();t||n.splice(3,0,EA);var i=["function "+e+"("+n.join()+"){"];function a(e,n){var a=function(t,e,r){var n="bruteForce"+(t?"Red":"Blue")+(e?"Flip":"")+(r?"Full":""),i=["function ",n,"(",UA.join(),"){","var ",CA,"=2*",kA,";"],a="for(var i="+LA+","+DA+"="+CA+"*"+LA+";i<"+zA+";++i,"+DA+"+="+CA+"){var x0="+PA+"["+TA+"+"+DA+"],x1="+PA+"["+TA+"+"+DA+"+"+kA+"],xi="+IA+"[i];",o="for(var j="+OA+","+NA+"="+CA+"*"+OA+";j<"+RA+";++j,"+NA+"+="+CA+"){var y0="+FA+"["+TA+"+"+NA+"],"+(r?"y1="+FA+"["+TA+"+"+NA+"+"+kA+"],":"")+"yi="+BA+"[j];";return t?i.push(a,VA,":",o):i.push(o,VA,":",a),r?i.push("if(y1"+RA+"-"+OA+"){"),t?(a(!0,!1),i.push("}else{"),a(!1,!1)):(i.push("if("+EA+"){"),a(!0,!0),i.push("}else{"),a(!0,!1),i.push("}}else{if("+EA+"){"),a(!1,!0),i.push("}else{"),a(!1,!1),i.push("}")),i.push("}}return "+e);var o=r.join("")+i.join("");return new Function(o)()}AA.partial=qA(!1),AA.full=qA(!0);var HA=function(t,e){var r="abcdef".split("").concat(e),n=[];t.indexOf("lo")>=0&&n.push("lo=e[k+n]");t.indexOf("hi")>=0&&n.push("hi=e[k+o]");return r.push(GA.replace("_",n.join()).replace("$",t)),Function.apply(void 0,r)},GA="for(var j=2*a,k=j*c,l=k,m=c,n=b,o=a+b,p=c;d>p;++p,k+=j){var _;if($)if(m===p)m+=1,l+=j;else{for(var s=0;j>s;++s){var t=e[k+s];e[k+s]=e[l],e[l++]=t}var u=f[p];f[p]=f[m],f[m++]=u}}return m";var WA=function(t,e,r,n,i,a){if(n<=r+1)return r;var o=r,s=n,l=n+r>>>1,u=2*t,c=l,h=i[u*l+e];for(;o=v?(c=g,h=v):d>=y?(c=p,h=d):(c=m,h=y):v>=y?(c=g,h=v):y>=d?(c=p,h=d):(c=m,h=y);for(var x=u*(s-1),b=u*c,_=0;_r&&i[h+e]>u;--c,h-=o){for(var f=h,p=h+o,d=0;d>1,l=s-i,u=s+i,c=a,h=l,f=s,p=u,d=o,g=e+1,v=r-1,m=0;nk(c,h,n)&&(m=c,c=h,h=m);nk(p,d,n)&&(m=p,p=d,d=m);nk(c,f,n)&&(m=c,c=f,f=m);nk(h,f,n)&&(m=h,h=f,f=m);nk(c,p,n)&&(m=c,c=p,p=m);nk(f,p,n)&&(m=f,f=p,p=m);nk(h,d,n)&&(m=h,h=d,d=m);nk(h,f,n)&&(m=h,h=f,f=m);nk(p,d,n)&&(m=p,p=d,d=m);var y=n[2*h];var x=n[2*h+1];var b=n[2*p];var _=n[2*p+1];var w=2*c;var M=2*f;var A=2*d;var k=2*a;var T=2*s;var S=2*o;for(var E=0;E<2;++E){var C=n[w+E],L=n[M+E],z=n[A+E];n[k+E]=C,n[T+E]=L,n[S+E]=z}tk(l,e,n);tk(u,r,n);for(var P=g;P<=v;++P)if(ik(P,y,x,n))P!==g&&$A(P,g,n),++g;else if(!ik(P,b,_,n))for(;;){if(ik(v,b,_,n)){ik(v,y,x,n)?(ek(P,g,v,n),++g,--v):($A(P,v,n),--v);break}if(--vt;){var u=r[l-2],c=r[l-1];if(ur[e+1])}function ik(t,e,r,n){var i=n[t*=2];return i>>1;JA(pk,y);for(var x=0,b=0,d=0;d=ok)dk(uk,ck,b--,_=_-ok|0);else if(_>=0)dk(sk,lk,x--,_);else if(_<=-ok){_=-_-ok|0;for(var w=0;w>>1;JA(pk,y);for(var x=0,b=0,_=0,d=0;d>1==pk[2*d+3]>>1&&(M=2,d+=1),w<0){for(var A=-(w>>1)-1,k=0;k<_;++k){var T=e(hk[k],A);if(void 0!==T)return T}if(0!==M)for(var k=0;k>1)-1;0===M?dk(sk,lk,x--,A):1===M?dk(uk,ck,b--,A):2===M&&dk(hk,fk,_--,A)}}},scanBipartite:function(t,e,r,n,i,a,o,s,l,u,c,h){var f=0,p=2*t,d=e,g=e+t,v=1,m=1;n?m=ok:v=ok;for(var y=i;y>>1;JA(pk,w);for(var M=0,y=0;y=ok?(k=!n,x-=ok):(k=!!n,x-=1),k)gk(sk,lk,M++,x);else{var T=h[x],S=p*x,E=c[S+e+1],C=c[S+e+1+t];t:for(var L=0;L>>1;JA(pk,x);for(var b=0,g=0;g=ok)sk[b++]=v-ok;else{var w=c[v-=1],M=f*v,A=u[M+e+1],k=u[M+e+1+t];t:for(var T=0;T=0;--T)if(sk[T]===v){for(var L=T+1;L0;){var f=(c-=1)*Ek,p=Lk[f],d=Lk[f+1],g=Lk[f+2],v=Lk[f+3],m=Lk[f+4],y=Lk[f+5],x=c*Ck,b=zk[x],_=zk[x+1],w=1&y,M=!!(16&y),A=i,k=a,T=s,S=l;if(w&&(A=s,k=l,T=i,S=a),!(2&y&&(g=Ak(t,p,d,g,A,k,_),d>=g)||4&y&&(d=kk(t,p,d,g,A,k,b))>=g)){var E=g-d,C=m-v;if(M){if(t*E*(E+C)<_k){if(void 0!==(u=ak.scanComplete(t,p,e,d,g,A,k,v,m,T,S)))return u;continue}}else{if(t*Math.min(E,C)=p0)&&!(p1>=hi)",["p0","p1"]),Mk=HA("lo===p0",["p0"]),Ak=HA("lo>>1;if(!(o<=0)){var s,l=__.mallocDouble(2*o*i),u=__.mallocInt32(i);if((i=Bk(t,o,l,u))>0){if(1===o&&n)ak.init(i),s=ak.sweepComplete(o,r,0,i,l,u,0,i,l,u);else{var c=__.mallocDouble(2*o*a),h=__.mallocInt32(a);(a=Bk(e,o,c,h))>0&&(ak.init(i+a),s=1===o?ak.sweepBipartite(o,r,0,i,l,u,0,a,c,h):vk(o,r,n,i,l,u,a,c,h),__.free(c),__.free(h))}__.free(l),__.free(u)}return s}}}function jk(t,e){Ok.push([t,e])}var Vk=function(t,e){return dA(t[0].mul(e[0]),t[1].mul(e[1]))};var Uk=function(t){return hA(t[0])*hA(t[1])};var qk=function(t,e){return dA(t[0].mul(e[1]).sub(t[1].mul(e[0])),t[1].mul(e[1]))};var Hk=function(t,e){return dA(t[0].mul(e[1]).add(e[0].mul(t[1])),t[1].mul(e[1]))};var Gk=function(t,e){for(var r=t.length,n=new Array(r),i=0;i>>0,Qk=function(t,e){if(isNaN(t)||isNaN(e))return NaN;if(t===e)return t;if(0===t)return e<0?-Jk:Jk;var r=fA.hi(t),n=fA.lo(t);e>t==t>0?n===Kk?(r+=1,n=0):n+=1:0===n?(n=Kk,r-=1):n-=1;return fA.pack(n,r)};var $k=function(t){for(var e=new Array(t.length),r=0;r0&&a>0||i<0&&a<0)return!1;var o=eT(r,t,e),s=eT(n,t,e);if(o>0&&s>0||o<0&&s<0)return!1;if(0===i&&0===a&&0===o&&0===s)return function(t,e,r,n){for(var i=0;i<2;++i){var a=t[i],o=e[i],s=Math.min(a,o),l=Math.max(a,o),u=r[i],c=n[i],h=Math.min(u,c),f=Math.max(u,c);if(fe[2]?1:0)}function hT(t,e,r){if(0!==t.length){if(e)for(var n=0;n=0;--a){var d=e[o=(w=n[a])[0]],g=d[0],v=d[1],m=t[g],y=t[v];if((m[0]-y[0]||m[1]-y[1])<0){var x=g;g=v,v=x}d[0]=g;var b,_=d[1]=w[1];for(i&&(b=d[2]);a>0&&n[a-1][0]===o;){var w,M=(w=n[--a])[1];i?e.push([_,M,b]):e.push([_,M]),_=M}i?e.push([_,v,b]):e.push([_,v])}return s}(t,e,i,o,r));return hT(e,s,r),!!s||(i.length>0||o.length>0)}var pT=function(t,e){var r=t.length;if("number"!=typeof e){e=0;for(var n=0;n0?1:0},vT=function(t,e,r,n){var i=PM(e,r,n);if(0===i){var a=gT(PM(t,e,r)),o=gT(PM(t,e,n));if(a===o){if(0===a){var s=mT(t,e,r),l=mT(t,e,n);return s===l?0:s?1:-1}return 0}return 0===o?a>0?-1:mT(t,e,n)?-1:1:0===a?o>0?1:mT(t,e,r)?1:-1:gT(o-a)}var u=PM(t,e,r);if(u>0)return i>0&&PM(t,e,n)>0?1:-1;if(u<0)return i>0||PM(t,e,n)>0?1:-1;var c=PM(t,e,n);return c>0?1:mT(t,e,r)?1:-1};function mT(t,e,r){var n=fM(t[0],-e[0]),i=fM(t[1],-e[1]),a=fM(r[0],-e[0]),o=fM(r[1],-e[1]),s=gM(dT(n,a),dT(i,o));return s[s.length-1]>=0}var yT=function(t,e){for(var r=0|e.length,n=t.length,i=[new Array(r),new Array(r)],a=0;a0){a=i[u][r][0],s=u;break}o=a[1^s];for(var c=0;c<2;++c)for(var h=i[c][r],f=0;f0&&(a=p,o=d,s=c)}return n?o:(a&&l(a,s),o)}function c(t,r){var n=i[r][t][0],a=[t];l(n,r);for(var o=n[1^r];;){for(;o!==t;)a.push(o),o=u(a[a.length-2],o,!1);if(i[0][t].length+i[1][t].length===0)break;var s=a[a.length-1],c=t,h=a[1],f=u(s,c,!0);if(vT(e[s],e[c],e[h],e[f])<0)break;a.push(t),o=u(s,c)}return a}function h(t,e){return e[1]===e[e.length-1]}for(var a=0;a0;){i[0][a].length;var d=c(a,f);h(p,d)?p.push.apply(p,d):(p.length>0&&s.push(p),p=d)}p.length>0&&s.push(p)}return s};var xT=function(t,e){for(var r=pT(t,e.length),n=new Array(e.length),i=new Array(e.length),a=[],o=0;o0;){var l=a.pop();n[l]=!1;for(var u=r[l],o=0;o>>1,x=a",i?".get(m)":"[m]"];return a?e.indexOf("c")<0?o.push(";if(x===y){return m}else if(x<=y){"):o.push(";var p=c(x,y);if(p===0){return m}else if(p<=0){"):o.push(";if(",e,"){i=m;"),r?o.push("l=m+1}else{h=m-1}"):o.push("h=m-1}else{l=m+1}"),o.push("}"),a?o.push("return -1};"):o.push("return i};"),o.join("")}function _T(t,e,r,n){return new Function([bT("A","x"+t+"y",e,["y"],!1,n),bT("B","x"+t+"y",e,["y"],!0,n),bT("P","c(x,y)"+t+"0",e,["y","c"],!1,n),bT("Q","c(x,y)"+t+"0",e,["y","c"],!0,n),"function dispatchBsearch",r,"(a,y,c,l,h){if(a.shape){if(typeof(c)==='function'){return Q(a,(l===undefined)?0:l|0,(h===undefined)?a.shape[0]-1:h|0,y,c)}else{return B(a,(c===undefined)?0:c|0,(l===undefined)?a.shape[0]-1:l|0,y)}}else{if(typeof(c)==='function'){return P(a,(l===undefined)?0:l|0,(h===undefined)?a.length-1:h|0,y,c)}else{return A(a,(c===undefined)?0:c|0,(l===undefined)?a.length-1:l|0,y)}}}return dispatchBsearch",r].join(""))()}var wT={ge:_T(">=",!1,"GE"),gt:_T(">",!1,"GT"),lt:_T("<",!0,"LT"),le:_T("<=",!0,"LE"),eq:_T("-",!0,"EQ",!0)},MT=0,AT=1,kT=function(t){if(!t||0===t.length)return new NT(null);return new NT(BT(t))};function TT(t,e,r,n,i){this.mid=t,this.left=e,this.right=r,this.leftPoints=n,this.rightPoints=i,this.count=(e?e.count:0)+(r?r.count:0)+n.length}var ST=TT.prototype;function ET(t,e){t.mid=e.mid,t.left=e.left,t.right=e.right,t.leftPoints=e.leftPoints,t.rightPoints=e.rightPoints,t.count=e.count}function CT(t,e){var r=BT(e);t.mid=r.mid,t.left=r.left,t.right=r.right,t.leftPoints=r.leftPoints,t.rightPoints=r.rightPoints,t.count=r.count}function LT(t,e){var r=t.intervals([]);r.push(e),CT(t,r)}function zT(t,e){var r=t.intervals([]),n=r.indexOf(e);return n<0?MT:(r.splice(n,1),CT(t,r),AT)}function PT(t,e,r){for(var n=0;n=0&&t[n][1]>=e;--n){var i=r(t[n]);if(i)return i}}function DT(t,e){for(var r=0;r>1],i=[],a=[],o=[];for(r=0;r3*(e+1)?LT(this,t):this.left.insert(t):this.left=BT([t]);else if(t[0]>this.mid)this.right?4*(this.right.count+1)>3*(e+1)?LT(this,t):this.right.insert(t):this.right=BT([t]);else{var r=wT.ge(this.leftPoints,t,RT),n=wT.ge(this.rightPoints,t,FT);this.leftPoints.splice(r,0,t),this.rightPoints.splice(n,0,t)}},ST.remove=function(t){var e=this.count-this.leftPoints;if(t[1]3*(e-1)?zT(this,t):2===(a=this.left.remove(t))?(this.left=null,this.count-=1,AT):(a===AT&&(this.count-=1),a):MT}else{if(!(t[0]>this.mid)){if(1===this.count)return this.leftPoints[0]===t?2:MT;if(1===this.leftPoints.length&&this.leftPoints[0]===t){if(this.left&&this.right){for(var r=this,n=this.left;n.right;)r=n,n=n.right;if(r===this)n.right=this.right;else{var i=this.left;a=this.right;r.count-=n.count,r.right=n.left,n.left=i,n.right=a}ET(this,n),this.count=(this.left?this.left.count:0)+(this.right?this.right.count:0)+this.leftPoints.length}else this.left?ET(this,this.left):ET(this,this.right);return AT}for(i=wT.ge(this.leftPoints,t,RT);i3*(e-1)?zT(this,t):2===(a=this.right.remove(t))?(this.right=null,this.count-=1,AT):(a===AT&&(this.count-=1),a):MT;var a}},ST.queryPoint=function(t,e){if(tthis.mid){var r;if(this.right)if(r=this.right.queryPoint(t,e))return r;return IT(this.rightPoints,t,e)}return DT(this.leftPoints,e)},ST.queryInterval=function(t,e,r){var n;if(tthis.mid&&this.right&&(n=this.right.queryInterval(t,e,r)))return n;return ethis.mid?IT(this.rightPoints,t,r):DT(this.leftPoints,r)};var jT=NT.prototype;jT.insert=function(t){this.root?this.root.insert(t):this.root=new TT(t[0],null,null,[t],[t])},jT.remove=function(t){if(this.root){var e=this.root.remove(t);return 2===e&&(this.root=null),e!==MT}return!1},jT.queryPoint=function(t,e){if(this.root)return this.root.queryPoint(t,e)},jT.queryInterval=function(t,e,r){if(t<=e&&this.root)return this.root.queryInterval(t,e,r)},Object.defineProperty(jT,"count",{get:function(){return this.root?this.root.count:0}}),Object.defineProperty(jT,"intervals",{get:function(){return this.root?this.root.intervals([]):[]}});var VT=function(t){return new XT(t||$T,null)},UT=0,qT=1;function HT(t,e,r,n,i,a){this._color=t,this.key=e,this.value=r,this.left=n,this.right=i,this._count=a}function GT(t){return new HT(t._color,t.key,t.value,t.left,t.right,t._count)}function WT(t,e){return new HT(t,e.key,e.value,e.left,e.right,e._count)}function YT(t){t._count=1+(t.left?t.left._count:0)+(t.right?t.right._count:0)}function XT(t,e){this._compare=t,this.root=e}var ZT=XT.prototype;function JT(t,e){this.tree=t,this._stack=e}Object.defineProperty(ZT,"keys",{get:function(){var t=[];return this.forEach(function(e,r){t.push(e)}),t}}),Object.defineProperty(ZT,"values",{get:function(){var t=[];return this.forEach(function(e,r){t.push(r)}),t}}),Object.defineProperty(ZT,"length",{get:function(){return this.root?this.root._count:0}}),ZT.insert=function(t,e){for(var r=this._compare,n=this.root,i=[],a=[];n;){var o=r(t,n.key);i.push(n),a.push(o),n=o<=0?n.left:n.right}i.push(new HT(UT,t,e,null,null,1));for(var s=i.length-2;s>=0;--s){n=i[s];a[s]<=0?i[s]=new HT(n._color,n.key,n.value,i[s+1],n.right,n._count+1):i[s]=new HT(n._color,n.key,n.value,n.left,i[s+1],n._count+1)}for(s=i.length-1;s>1;--s){var l=i[s-1];n=i[s];if(l._color===qT||n._color===qT)break;var u=i[s-2];if(u.left===l)if(l.left===n){if(!(c=u.right)||c._color!==UT){if(u._color=UT,u.left=l.right,l._color=qT,l.right=u,i[s-2]=l,i[s-1]=n,YT(u),YT(l),s>=3)(h=i[s-3]).left===u?h.left=l:h.right=l;break}l._color=qT,u.right=WT(qT,c),u._color=UT,s-=1}else{if(!(c=u.right)||c._color!==UT){if(l.right=n.left,u._color=UT,u.left=n.right,n._color=qT,n.left=l,n.right=u,i[s-2]=n,i[s-1]=l,YT(u),YT(l),YT(n),s>=3)(h=i[s-3]).left===u?h.left=n:h.right=n;break}l._color=qT,u.right=WT(qT,c),u._color=UT,s-=1}else if(l.right===n){if(!(c=u.left)||c._color!==UT){if(u._color=UT,u.right=l.left,l._color=qT,l.left=u,i[s-2]=l,i[s-1]=n,YT(u),YT(l),s>=3)(h=i[s-3]).right===u?h.right=l:h.left=l;break}l._color=qT,u.left=WT(qT,c),u._color=UT,s-=1}else{var c;if(!(c=u.left)||c._color!==UT){var h;if(l.left=n.right,u._color=UT,u.right=n.left,n._color=qT,n.right=l,n.left=u,i[s-2]=n,i[s-1]=l,YT(u),YT(l),YT(n),s>=3)(h=i[s-3]).right===u?h.right=n:h.left=n;break}l._color=qT,u.left=WT(qT,c),u._color=UT,s-=1}}return i[0]._color=qT,new XT(r,i[0])},ZT.forEach=function(t,e,r){if(this.root)switch(arguments.length){case 1:return function t(e,r){var n;if(r.left&&(n=t(e,r.left)))return n;return(n=e(r.key,r.value))||(r.right?t(e,r.right):void 0)}(t,this.root);case 2:return function t(e,r,n,i){if(r(e,i.key)<=0){var a;if(i.left&&(a=t(e,r,n,i.left)))return a;if(a=n(i.key,i.value))return a}if(i.right)return t(e,r,n,i.right)}(e,this._compare,t,this.root);case 3:if(this._compare(e,r)>=0)return;return function t(e,r,n,i,a){var o,s=n(e,a.key),l=n(r,a.key);if(s<=0){if(a.left&&(o=t(e,r,n,i,a.left)))return o;if(l>0&&(o=i(a.key,a.value)))return o}if(l>0&&a.right)return t(e,r,n,i,a.right)}(e,r,this._compare,t,this.root)}},Object.defineProperty(ZT,"begin",{get:function(){for(var t=[],e=this.root;e;)t.push(e),e=e.left;return new JT(this,t)}}),Object.defineProperty(ZT,"end",{get:function(){for(var t=[],e=this.root;e;)t.push(e),e=e.right;return new JT(this,t)}}),ZT.at=function(t){if(t<0)return new JT(this,[]);for(var e=this.root,r=[];;){if(r.push(e),e.left){if(t=e.right._count)break;e=e.right}return new JT(this,[])},ZT.ge=function(t){for(var e=this._compare,r=this.root,n=[],i=0;r;){var a=e(t,r.key);n.push(r),a<=0&&(i=n.length),r=a<=0?r.left:r.right}return n.length=i,new JT(this,n)},ZT.gt=function(t){for(var e=this._compare,r=this.root,n=[],i=0;r;){var a=e(t,r.key);n.push(r),a<0&&(i=n.length),r=a<0?r.left:r.right}return n.length=i,new JT(this,n)},ZT.lt=function(t){for(var e=this._compare,r=this.root,n=[],i=0;r;){var a=e(t,r.key);n.push(r),a>0&&(i=n.length),r=a<=0?r.left:r.right}return n.length=i,new JT(this,n)},ZT.le=function(t){for(var e=this._compare,r=this.root,n=[],i=0;r;){var a=e(t,r.key);n.push(r),a>=0&&(i=n.length),r=a<0?r.left:r.right}return n.length=i,new JT(this,n)},ZT.find=function(t){for(var e=this._compare,r=this.root,n=[];r;){var i=e(t,r.key);if(n.push(r),0===i)return new JT(this,n);r=i<=0?r.left:r.right}return new JT(this,[])},ZT.remove=function(t){var e=this.find(t);return e?e.remove():this},ZT.get=function(t){for(var e=this._compare,r=this.root;r;){var n=e(t,r.key);if(0===n)return r.value;r=n<=0?r.left:r.right}};var KT=JT.prototype;function QT(t,e){t.key=e.key,t.value=e.value,t.left=e.left,t.right=e.right,t._color=e._color,t._count=e._count}function $T(t,e){return te?1:0}Object.defineProperty(KT,"valid",{get:function(){return this._stack.length>0}}),Object.defineProperty(KT,"node",{get:function(){return this._stack.length>0?this._stack[this._stack.length-1]:null},enumerable:!0}),KT.clone=function(){return new JT(this.tree,this._stack.slice())},KT.remove=function(){var t=this._stack;if(0===t.length)return this.tree;var e=new Array(t.length),r=t[t.length-1];e[e.length-1]=new HT(r._color,r.key,r.value,r.left,r.right,r._count);for(var n=t.length-2;n>=0;--n){(r=t[n]).left===t[n+1]?e[n]=new HT(r._color,r.key,r.value,e[n+1],r.right,r._count):e[n]=new HT(r._color,r.key,r.value,r.left,e[n+1],r._count)}if((r=e[e.length-1]).left&&r.right){var i=e.length;for(r=r.left;r.right;)e.push(r),r=r.right;var a=e[i-1];e.push(new HT(r._color,a.key,a.value,r.left,r.right,r._count)),e[i-1].key=r.key,e[i-1].value=r.value;for(n=e.length-2;n>=i;--n)r=e[n],e[n]=new HT(r._color,r.key,r.value,r.left,e[n+1],r._count);e[i-1].left=e[i]}if((r=e[e.length-1])._color===UT){var o=e[e.length-2];o.left===r?o.left=null:o.right===r&&(o.right=null),e.pop();for(n=0;n=0;--a){if(e=t[a],0===a)return void(e._color=qT);if((r=t[a-1]).left===e){if((n=r.right).right&&n.right._color===UT)return i=(n=r.right=GT(n)).right=GT(n.right),r.right=n.left,n.left=r,n.right=i,n._color=r._color,e._color=qT,r._color=qT,i._color=qT,YT(r),YT(n),a>1&&((o=t[a-2]).left===r?o.left=n:o.right=n),void(t[a-1]=n);if(n.left&&n.left._color===UT)return i=(n=r.right=GT(n)).left=GT(n.left),r.right=i.left,n.left=i.right,i.left=r,i.right=n,i._color=r._color,r._color=qT,n._color=qT,e._color=qT,YT(r),YT(n),YT(i),a>1&&((o=t[a-2]).left===r?o.left=i:o.right=i),void(t[a-1]=i);if(n._color===qT){if(r._color===UT)return r._color=qT,void(r.right=WT(UT,n));r.right=WT(UT,n);continue}n=GT(n),r.right=n.left,n.left=r,n._color=r._color,r._color=UT,YT(r),YT(n),a>1&&((o=t[a-2]).left===r?o.left=n:o.right=n),t[a-1]=n,t[a]=r,a+11&&((o=t[a-2]).right===r?o.right=n:o.left=n),void(t[a-1]=n);if(n.right&&n.right._color===UT)return i=(n=r.left=GT(n)).right=GT(n.right),r.left=i.right,n.right=i.left,i.right=r,i.left=n,i._color=r._color,r._color=qT,n._color=qT,e._color=qT,YT(r),YT(n),YT(i),a>1&&((o=t[a-2]).right===r?o.right=i:o.left=i),void(t[a-1]=i);if(n._color===qT){if(r._color===UT)return r._color=qT,void(r.left=WT(UT,n));r.left=WT(UT,n);continue}var o;n=GT(n),r.left=n.right,n.right=r,n._color=r._color,r._color=UT,YT(r),YT(n),a>1&&((o=t[a-2]).right===r?o.right=n:o.left=n),t[a-1]=n,t[a]=r,a+10)return this._stack[this._stack.length-1].key},enumerable:!0}),Object.defineProperty(KT,"value",{get:function(){if(this._stack.length>0)return this._stack[this._stack.length-1].value},enumerable:!0}),Object.defineProperty(KT,"index",{get:function(){var t=0,e=this._stack;if(0===e.length){var r=this.tree.root;return r?r._count:0}e[e.length-1].left&&(t=e[e.length-1].left._count);for(var n=e.length-2;n>=0;--n)e[n+1]===e[n].right&&(++t,e[n].left&&(t+=e[n].left._count));return t},enumerable:!0}),KT.next=function(){var t=this._stack;if(0!==t.length){var e=t[t.length-1];if(e.right)for(e=e.right;e;)t.push(e),e=e.left;else for(t.pop();t.length>0&&t[t.length-1].right===e;)e=t[t.length-1],t.pop()}},Object.defineProperty(KT,"hasNext",{get:function(){var t=this._stack;if(0===t.length)return!1;if(t[t.length-1].right)return!0;for(var e=t.length-1;e>0;--e)if(t[e-1].left===t[e])return!0;return!1}}),KT.update=function(t){var e=this._stack;if(0===e.length)throw new Error("Can't update empty node!");var r=new Array(e.length),n=e[e.length-1];r[r.length-1]=new HT(n._color,n.key,t,n.left,n.right,n._count);for(var i=e.length-2;i>=0;--i)(n=e[i]).left===e[i+1]?r[i]=new HT(n._color,n.key,n.value,r[i+1],n.right,n._count):r[i]=new HT(n._color,n.key,n.value,n.left,r[i+1],n._count);return new XT(this.tree._compare,r[0])},KT.prev=function(){var t=this._stack;if(0!==t.length){var e=t[t.length-1];if(e.left)for(e=e.left;e;)t.push(e),e=e.right;else for(t.pop();t.length>0&&t[t.length-1].left===e;)e=t[t.length-1],t.pop()}},Object.defineProperty(KT,"hasPrev",{get:function(){var t=this._stack;if(0===t.length)return!1;if(t[t.length-1].left)return!0;for(var e=t.length-1;e>0;--e)if(t[e-1].right===t[e])return!0;return!1}});var tS=function(t,e){var r,n,i,a;if(e[0][0]e[1][0]))return eS(e,t);r=e[1],n=e[0]}if(t[0][0]t[1][0]))return-eS(t,e);i=t[1],a=t[0]}var o=PM(r,n,a),s=PM(r,n,i);if(o<0){if(s<=0)return o}else if(o>0){if(s>=0)return o}else if(s)return s;if(o=PM(a,i,n),s=PM(a,i,r),o<0){if(s<=0)return o}else if(o>0){if(s>=0)return o}else if(s)return s;return n[0]-a[0]};function eS(t,e){var r,n,i,a;if(e[0][0]e[1][0])){var o=Math.min(t[0][1],t[1][1]),s=Math.max(t[0][1],t[1][1]),l=Math.min(e[0][1],e[1][1]),u=Math.max(e[0][1],e[1][1]);return su?o-u:s-u}r=e[1],n=e[0]}t[0][1]0)if(e[0]!==a[1][0])r=t,t=t.right;else{if(s=aS(t.right,e))return s;t=t.left}else{if(e[0]!==a[1][0])return t;var s;if(s=aS(t.right,e))return s;t=t.left}}return r}function oS(t,e,r,n){this.y=t,this.index=e,this.start=r,this.closed=n}function sS(t,e,r,n){this.x=t,this.segment=e,this.create=r,this.index=n}nS.prototype.castUp=function(t){var e=wT.le(this.coordinates,t[0]);if(e<0)return-1;this.slabs[e];var r=aS(this.slabs[e],t),n=-1;if(r&&(n=r.value),this.coordinates[e]===t[0]){var i=null;if(r&&(i=r.key),e>0){var a=aS(this.slabs[e-1],t);a&&(i?tS(a.key,i)>0&&(i=a.key,n=a.value):(n=a.value,i=a.key))}var o=this.horizontal[e];if(o.length>0){var s=wT.ge(o,t[1],iS);if(s=o.length)return n;l=o[s]}}if(l.start)if(i){var u=PM(i[0],i[1],[t[0],l.y]);i[0][0]>i[1][0]&&(u=-u),u>0&&(n=l.index)}else n=l.index;else l.y!==t[1]&&(n=l.index)}}}return n};var lS=function(t){for(var e=t.length,r=[],n=[],i=0;i0&&e[n]===r[0]))return 1;i=t[n-1]}for(var a=1;i;){var o=i.key,s=uS(r,o[0],o[1]);if(o[0][0]0))return 0;a=-1,i=i.right}else if(s>0)i=i.left;else{if(!(s<0))return 0;a=1,i=i.right}}return a}}(f.slabs,f.coordinates);return 0===n.length?p:function(t,e){return function(r){return t(r[0],r[1])?0:e(r)}}(hS(n),p)},uS=PM[3];function cS(){return!0}function hS(t){for(var e={},r=0;r0})).length,l=new Array(s),u=new Array(s),a=0;a0;){var z=C.pop(),P=_[z];Qx(P,function(t,e){return t-e});var I,D=P.length,O=L[z];if(0===O){var g=o[z];I=[g]}for(var a=0;a=0)&&(L[R]=1^O,C.push(R),0===O)){var g=o[R];E(g)||(g.reverse(),I.push(g))}}0===O&&r.push(I)}return r};function dS(t,e){for(var r=new Array(t),n=0;n>1,o=vS(t[a],e);o<=0?(0===o&&(i=a),r=a+1):o>0&&(n=a-1)}return i}function _S(t,e){for(var r=new Array(t.length),n=0,i=r.length;n=t.length||0!==vS(t[p],a)););}return r}function wS(t,e){if(e<0)return[];for(var r=[],n=(1<>>u&1&&l.push(i[u]);e.push(l)}return yS(e)},gS.skeleton=wS,gS.boundary=function(t){for(var e=[],r=0,n=t.length;r0)-(t<0)},MS.abs=function(t){var e=t>>31;return(t^e)-e},MS.min=function(t,e){return e^(t^e)&-(t65535)<<4,e|=r=((t>>>=e)>255)<<3,e|=r=((t>>>=r)>15)<<2,(e|=r=((t>>>=r)>3)<<1)|(t>>>=r)>>1},MS.log10=function(t){return t>=1e9?9:t>=1e8?8:t>=1e7?7:t>=1e6?6:t>=1e5?5:t>=1e4?4:t>=1e3?3:t>=100?2:t>=10?1:0},MS.popCount=function(t){return 16843009*((t=(858993459&(t-=t>>>1&1431655765))+(t>>>2&858993459))+(t>>>4)&252645135)>>>24},MS.countTrailingZeros=AS,MS.nextPow2=function(t){return t+=0===t,--t,t|=t>>>1,t|=t>>>2,t|=t>>>4,t|=t>>>8,(t|=t>>>16)+1},MS.prevPow2=function(t){return t|=t>>>1,t|=t>>>2,t|=t>>>4,t|=t>>>8,(t|=t>>>16)-(t>>>1)},MS.parity=function(t){return t^=t>>>16,t^=t>>>8,t^=t>>>4,27030>>>(t&=15)&1};var kS=new Array(256);!function(t){for(var e=0;e<256;++e){var r=e,n=e,i=7;for(r>>>=1;r;r>>>=1)n<<=1,n|=1&r,--i;t[e]=n<>>8&255]<<16|kS[t>>>16&255]<<8|kS[t>>>24&255]},MS.interleave2=function(t,e){return(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t&=65535)|t<<8))|t<<4))|t<<2))|t<<1))|(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e&=65535)|e<<8))|e<<4))|e<<2))|e<<1))<<1},MS.deinterleave2=function(t,e){return(t=65535&((t=16711935&((t=252645135&((t=858993459&((t=t>>>e&1431655765)|t>>>1))|t>>>2))|t>>>4))|t>>>16))<<16>>16},MS.interleave3=function(t,e,r){return t=1227133513&((t=3272356035&((t=251719695&((t=4278190335&((t&=1023)|t<<16))|t<<8))|t<<4))|t<<2),(t|=(e=1227133513&((e=3272356035&((e=251719695&((e=4278190335&((e&=1023)|e<<16))|e<<8))|e<<4))|e<<2))<<1)|(r=1227133513&((r=3272356035&((r=251719695&((r=4278190335&((r&=1023)|r<<16))|r<<8))|r<<4))|r<<2))<<2},MS.deinterleave3=function(t,e){return(t=1023&((t=4278190335&((t=251719695&((t=3272356035&((t=t>>>e&1227133513)|t>>>2))|t>>>4))|t>>>8))|t>>>16))<<22>>22},MS.nextCombination=function(t){var e=t|t-1;return e+1|(~e&-~e)-1>>>AS(t)+1};var TS=SS;function SS(t){this.roots=new Array(t),this.ranks=new Array(t);for(var e=0;e>1,o=CS(t[a],e);o<=0?(0===o&&(i=a),r=a+1):o>0&&(n=a-1)}return i}function DS(t,e){for(var r=new Array(t.length),n=0,i=r.length;n=t.length||0!==CS(t[p],a)););}return r}function OS(t,e){if(e<0)return[];for(var r=[],n=(1<>>u&1&&l.push(i[u]);e.push(l)}return zS(e)},ES.skeleton=OS,ES.boundary=function(t){for(var e=[],r=0,n=t.length;r>1:(t>>1)-1}function m(t){for(var e=g(t);;){var r=e,n=2*t+1,i=2*(t+1),a=t;if(n0;){var r=v(t);if(r>=0){var n=g(r);if(e0){var t=w[0];return d(0,k-1),k-=1,m(0),t}return-1}function b(t,e){var r=w[t];return s[r]===e?t:(s[r]=-1/0,y(t),x(),s[r]=e,y((k+=1)-1))}function _(t){if(!l[t]){l[t]=!0;var e=a[t],r=o[t];a[r]>=0&&(a[r]=e),o[e]>=0&&(o[e]=r),M[e]>=0&&b(M[e],p(e)),M[r]>=0&&b(M[r],p(r))}}for(var w=[],M=new Array(n),u=0;u>1;u>=0;--u)m(u);for(;;){var T=x();if(T<0||s[T]>r)break;_(T)}for(var S=[],u=0;u=0&&r>=0&&e!==r){var n=M[e],i=M[r];n!==i&&C.push([n,i])}}),ES.unique(ES.normalize(C)),{positions:S,edges:C}};var FS=function(t){function e(t){throw new Error("ndarray-extract-contour: "+t)}"object"!=typeof t&&e("Must specify arguments");var r=t.order;Array.isArray(r)||e("Must specify order");var n=t.arrayArguments||1;n<1&&e("Must have at least one array argument");var i=t.scalarArguments||0;i<0&&e("Scalar arg count must be > 0");"function"!=typeof t.vertex&&e("Must specify vertex creation function");"function"!=typeof t.cell&&e("Must specify cell creation function");"function"!=typeof t.phase&&e("Must specify phase function");for(var a=t.getters||[],o=new Array(n),s=0;s=0?o[s]=!0:o[s]=!1;return function(t,e,r,n,i,a){var o=a.length,s=i.length;if(s<2)throw new Error("ndarray-extract-contour: Dimension must be at least 2");for(var l="extractContour"+i.join("_"),u=[],c=[],h=[],f=0;f0&&v.push(US(f,i[p-1])+"*"+VS(i[p-1])),c.push(XS(f,i[p])+"=("+v.join("-")+")|0")}for(var f=0;f=0;--f)m.push(VS(i[f]));c.push(rE+"=("+m.join("*")+")|0",tE+"=mallocUint32("+rE+")",$S+"=mallocUint32("+rE+")",nE+"=0"),c.push(ZS(0)+"=0");for(var p=1;p<1<0;v=v-1&p)g.push($S+"["+nE+"+"+KS(v)+"]");g.push(QS(0));for(var v=0;v=0;--e)w(e,0);for(var r=[],e=0;e0){",YS(i[e]),"=1;");t(e-1,r|1<0;--r)e+=uE[r]/(t+r);var n=t+lE+.5;return.5*Math.log(2*Math.PI)+(t+.5)*Math.log(n)-n+Math.log(e)-Math.log(t)}(oE=function t(e){if(e<.5)return Math.PI/(Math.sin(Math.PI*e)*t(1-e));if(e>100)return Math.exp(cE(e));e-=1;for(var r=sE[0],n=1;n<9;n++)r+=sE[n]/(e+n);var i=e+7+.5;return Math.sqrt(2*Math.PI)*Math.pow(i,e+.5)*Math.exp(-i)*r}).log=cE;var hE=function(t){var e=t.length;if(e0;--i)n=o[i],r=a[i],a[i]=a[n],a[n]=r,o[i]=o[r],o[r]=n,s=(s+r)*i;return __.freeUint32(o),__.freeUint32(a),s},dE.unrank=function(t,e,r){switch(t){case 0:return r||[];case 1:return r?(r[0]=0,r):[0];case 2:return r?(e?(r[0]=0,r[1]=1):(r[0]=1,r[1]=0),r):e?[0,1]:[1,0]}var n,i,a,o=1;for((r=r||new Array(t))[0]=0,a=1;a0;--a)e=e-(n=e/o|0)*o|0,o=o/a|0,i=0|r[a],r[a]=0|r[n],r[n]=0|i;return r};var gE=function(t){if(t<0)return[];if(0===t)return[[0]];for(var e=0|Math.round(oE(t+1)),r=[],n=0;n= 0) !== (_inline_1_db >= 0)) {\n _inline_1_arg2_.push(_inline_1_arg4_[0] + 0.5 + 0.5 * (_inline_1_da + _inline_1_db) / (_inline_1_da - _inline_1_db))\n }\n }",args:[{name:"_inline_1_arg0_",lvalue:!1,rvalue:!0,count:1},{name:"_inline_1_arg1_",lvalue:!1,rvalue:!0,count:1},{name:"_inline_1_arg2_",lvalue:!1,rvalue:!0,count:1},{name:"_inline_1_arg3_",lvalue:!1,rvalue:!0,count:2},{name:"_inline_1_arg4_",lvalue:!1,rvalue:!0,count:1}],thisVars:[],localVars:["_inline_1_da","_inline_1_db"]},funcName:"zeroCrossings"}),mE=function(t,e){var r=[];return e=+e||0,vE(t.hi(t.shape[0]-1),r,e),r};var yE=function(t,e){if(t.dimension<=0)return{positions:[],cells:[]};if(1===t.dimension)return function(t,e){for(var r=mE(t,e),n=r.length,i=new Array(n),a=new Array(n),o=0;o c)|0 },"),"generic"===e&&n.push("getters:[0],");for(var a=[],o=[],s=0;s>>7){");for(var s=0;s<1<<(1<128&&s%128==0){u.length>0&&c.push("}}");var h="vExtra"+u.length;n.push("case ",s>>>7,":",h,"(m&0x7f,",o.join(),");break;"),c=["function ",h,"(m,",o.join(),"){switch(m){"],u.push(c)}c.push("case ",127&s,":");for(var f=new Array(r),p=new Array(r),d=new Array(r),g=new Array(r),v=0,m=0;mm)&&!(s&1<0&&(M="+"+d[y]+"*c");var A=f[y].length/v*.5,k=.5+g[y]/v*.5;w.push("d"+y+"-"+k+"-"+A+"*("+f[y].join("+")+M+")/("+p[y].join("+")+")")}c.push("a.push([",w.join(),"]);","break;")}n.push("}},"),u.length>0&&c.push("}}");for(var T=[],s=0;s<1<8192)throw new Error("vectorize-text: String too long (sorry, this will get fixed later)");var a=3*n;t.height0&&(c+=.02);for(var f=new Float32Array(u),p=0,d=-.5*c,h=0;hs[M]&&(a.uniforms.dataAxis=t,a.uniforms.screenOffset=e,a.uniforms.color=g[n],a.uniforms.angle=v[n],l.drawArrays(l.TRIANGLES,s[M],s[A]-s[M]))),m[n]&&w&&(e[1^n]-=k*f*y[n],a.uniforms.dataAxis=r,a.uniforms.screenOffset=e,a.uniforms.color=x[n],a.uniforms.angle=b[n],l.drawArrays(l.TRIANGLES,_,w)),e[1^n]=k*u[2+(1^n)]-1,p[n+2]&&(e[1^n]+=k*f*d[n+2],Ms[M]&&(a.uniforms.dataAxis=t,a.uniforms.screenOffset=e,a.uniforms.color=g[n+2],a.uniforms.angle=v[n+2],l.drawArrays(l.TRIANGLES,s[M],s[A]-s[M]))),m[n+2]&&w&&(e[1^n]+=k*f*y[n+2],a.uniforms.dataAxis=r,a.uniforms.screenOffset=e,a.uniforms.color=x[n+2],a.uniforms.angle=b[n+2],l.drawArrays(l.TRIANGLES,_,w))}}(),CE.drawTitle=function(){var t=[0,0],e=[0,0];return function(){var r=this.plot,n=this.shader,i=r.gl,a=r.screenBox,o=r.titleCenter,s=r.titleAngle,l=r.titleColor,u=r.pixelRatio;if(this.titleCount){for(var c=0;c<2;++c)e[c]=2*(o[c]*u-a[c])/(a[2+c]-a[c])-1;n.bind(),n.uniforms.dataAxis=t,n.uniforms.screenOffset=e,n.uniforms.angle=s,n.uniforms.color=l,i.drawArrays(i.TRIANGLES,this.titleOffset,this.titleCount)}}}(),CE.bind=function(){var t=[0,0],e=[0,0],r=[0,0];return function(){var n=this.plot,i=this.shader,a=n._tickBounds,o=n.dataBox,s=n.screenBox,l=n.viewBox;i.bind();for(var u=0;u<2;++u){var c=a[u],h=a[u+2]-c,f=.5*(o[u+2]+o[u]),p=o[u+2]-o[u],d=l[u],g=l[u+2]-d,v=s[u],m=s[u+2]-v;e[u]=2*h/p*g/m,t[u]=2*(c-f)/p*g/m}r[1]=2*n.pixelRatio/(s[3]-s[1]),r[0]=r[1]*(s[3]-s[1])/(s[2]-s[0]),i.uniforms.dataScale=e,i.uniforms.dataShift=t,i.uniforms.textScale=r,this.vbo.bind(),i.attributes.textCoordinate.pointer()}}(),CE.update=function(t){var e,r,n,i,a,o=[],s=t.ticks,l=t.bounds;for(a=0;a<2;++a){var u=[Math.floor(o.length/3)],c=[-1/0],h=s[a];for(e=0;ei||n[1]<0||n[1]>i)throw new Error("gl-texture2d: Invalid texture size");var a=jE(n,e.stride.slice()),o=0;"float32"===r?o=t.FLOAT:"float64"===r?(o=t.FLOAT,a=!1,r="float32"):"uint8"===r?o=t.UNSIGNED_BYTE:(o=t.UNSIGNED_BYTE,a=!1,r="uint8");var s,l,u=0;if(2===n.length)u=t.LUMINANCE,n=[n[0],n[1],1],e=wb(e.data,n,[e.stride[0],e.stride[1],1],e.offset);else{if(3!==n.length)throw new Error("gl-texture2d: Invalid shape for texture");if(1===n[2])u=t.ALPHA;else if(2===n[2])u=t.LUMINANCE_ALPHA;else if(3===n[2])u=t.RGB;else{if(4!==n[2])throw new Error("gl-texture2d: Invalid shape for pixel coords");u=t.RGBA}}o!==t.FLOAT||t.getExtension("OES_texture_float")||(o=t.UNSIGNED_BYTE,a=!1);var c=e.size;if(a)s=0===e.offset&&e.data.length===c?e.data:e.data.subarray(e.offset,e.offset+c);else{var h=[n[2],n[2]*n[0],1];l=__.malloc(c,r);var f=wb(l,n,h,0);"float32"!==r&&"float64"!==r||o!==t.UNSIGNED_BYTE?ib.assign(f,e):RE(f,e),s=l.subarray(0,c)}var p=VE(t);t.texImage2D(t.TEXTURE_2D,0,u,n[0],n[1],0,u,o,s),a||__.free(l);return new BE(t,p,n[0],n[1],u,o)}(t,e)}throw new Error("gl-texture2d: Invalid arguments for texture2d constructor")},PE=null,IE=null,DE=null;function OE(t){return"undefined"!=typeof HTMLCanvasElement&&t instanceof HTMLCanvasElement||"undefined"!=typeof HTMLImageElement&&t instanceof HTMLImageElement||"undefined"!=typeof HTMLVideoElement&&t instanceof HTMLVideoElement||"undefined"!=typeof ImageData&&t instanceof ImageData}var RE=function(t,e){ib.muls(t,e,255)};function FE(t,e,r){var n=t.gl,i=n.getParameter(n.MAX_TEXTURE_SIZE);if(e<0||e>i||r<0||r>i)throw new Error("gl-texture2d: Invalid texture size");return t._shape=[e,r],t.bind(),n.texImage2D(n.TEXTURE_2D,0,t.format,e,r,0,t.format,t.type,null),t._mipLevels=[0],t}function BE(t,e,r,n,i,a){this.gl=t,this.handle=e,this.format=i,this.type=a,this._shape=[r,n],this._mipLevels=[0],this._magFilter=t.NEAREST,this._minFilter=t.NEAREST,this._wrapS=t.CLAMP_TO_EDGE,this._wrapT=t.CLAMP_TO_EDGE,this._anisoSamples=1;var o=this,s=[this._wrapS,this._wrapT];Object.defineProperties(s,[{get:function(){return o._wrapS},set:function(t){return o.wrapS=t}},{get:function(){return o._wrapT},set:function(t){return o.wrapT=t}}]),this._wrapVector=s;var l=[this._shape[0],this._shape[1]];Object.defineProperties(l,[{get:function(){return o._shape[0]},set:function(t){return o.width=t}},{get:function(){return o._shape[1]},set:function(t){return o.height=t}}]),this._shapeVector=l}var NE=BE.prototype;function jE(t,e){return 3===t.length?1===e[2]&&e[1]===t[0]*t[2]&&e[0]===t[2]:1===e[0]&&e[1]===t[0]}function VE(t){var e=t.createTexture();return t.bindTexture(t.TEXTURE_2D,e),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.NEAREST),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.NEAREST),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),e}function UE(t,e,r,n,i){var a=t.getParameter(t.MAX_TEXTURE_SIZE);if(e<0||e>a||r<0||r>a)throw new Error("gl-texture2d: Invalid texture shape");if(i===t.FLOAT&&!t.getExtension("OES_texture_float"))throw new Error("gl-texture2d: Floating point textures not supported on this platform");var o=VE(t);return t.texImage2D(t.TEXTURE_2D,0,n,e,r,0,n,i,null),new BE(t,o,e,r,n,i)}Object.defineProperties(NE,{minFilter:{get:function(){return this._minFilter},set:function(t){this.bind();var e=this.gl;if(this.type===e.FLOAT&&PE.indexOf(t)>=0&&(e.getExtension("OES_texture_float_linear")||(t=e.NEAREST)),IE.indexOf(t)<0)throw new Error("gl-texture2d: Unknown filter mode "+t);return e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,t),this._minFilter=t}},magFilter:{get:function(){return this._magFilter},set:function(t){this.bind();var e=this.gl;if(this.type===e.FLOAT&&PE.indexOf(t)>=0&&(e.getExtension("OES_texture_float_linear")||(t=e.NEAREST)),IE.indexOf(t)<0)throw new Error("gl-texture2d: Unknown filter mode "+t);return e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,t),this._magFilter=t}},mipSamples:{get:function(){return this._anisoSamples},set:function(t){var e=this._anisoSamples;if(this._anisoSamples=0|Math.max(t,1),e!==this._anisoSamples){var r=this.gl.getExtension("EXT_texture_filter_anisotropic");r&&this.gl.texParameterf(this.gl.TEXTURE_2D,r.TEXTURE_MAX_ANISOTROPY_EXT,this._anisoSamples)}return this._anisoSamples}},wrapS:{get:function(){return this._wrapS},set:function(t){if(this.bind(),DE.indexOf(t)<0)throw new Error("gl-texture2d: Unknown wrap mode "+t);return this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_WRAP_S,t),this._wrapS=t}},wrapT:{get:function(){return this._wrapT},set:function(t){if(this.bind(),DE.indexOf(t)<0)throw new Error("gl-texture2d: Unknown wrap mode "+t);return this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_WRAP_T,t),this._wrapT=t}},wrap:{get:function(){return this._wrapVector},set:function(t){if(Array.isArray(t)||(t=[t,t]),2!==t.length)throw new Error("gl-texture2d: Must specify wrap mode for rows and columns");for(var e=0;e<2;++e)if(DE.indexOf(t[e])<0)throw new Error("gl-texture2d: Unknown wrap mode "+t);this._wrapS=t[0],this._wrapT=t[1];var r=this.gl;return this.bind(),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_WRAP_S,this._wrapS),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_WRAP_T,this._wrapT),t}},shape:{get:function(){return this._shapeVector},set:function(t){if(Array.isArray(t)){if(2!==t.length)throw new Error("gl-texture2d: Invalid texture shape")}else t=[0|t,0|t];return FE(this,0|t[0],0|t[1]),[0|t[0],0|t[1]]}},width:{get:function(){return this._shape[0]},set:function(t){return FE(this,t|=0,this._shape[1]),t}},height:{get:function(){return this._shape[1]},set:function(t){return t|=0,FE(this,this._shape[0],t),t}}}),NE.bind=function(t){var e=this.gl;return void 0!==t&&e.activeTexture(e.TEXTURE0+(0|t)),e.bindTexture(e.TEXTURE_2D,this.handle),void 0!==t?0|t:e.getParameter(e.ACTIVE_TEXTURE)-e.TEXTURE0},NE.dispose=function(){this.gl.deleteTexture(this.handle)},NE.generateMipmap=function(){this.bind(),this.gl.generateMipmap(this.gl.TEXTURE_2D);for(var t=Math.min(this._shape[0],this._shape[1]),e=0;t>0;++e,t>>>=1)this._mipLevels.indexOf(e)<0&&this._mipLevels.push(e)},NE.setPixels=function(t,e,r,n){var i=this.gl;this.bind(),Array.isArray(e)?(n=r,r=0|e[1],e=0|e[0]):(e=e||0,r=r||0),n=n||0;var a=OE(t)?t:t.raw;if(a){this._mipLevels.indexOf(n)<0?(i.texImage2D(i.TEXTURE_2D,0,this.format,this.format,this.type,a),this._mipLevels.push(n)):i.texSubImage2D(i.TEXTURE_2D,n,e,r,this.format,this.type,a)}else{if(!(t.shape&&t.stride&&t.data))throw new Error("gl-texture2d: Unsupported data type");if(t.shape.length<2||e+t.shape[1]>this._shape[1]>>>n||r+t.shape[0]>this._shape[0]>>>n||e<0||r<0)throw new Error("gl-texture2d: Texture dimensions are out of bounds");!function(t,e,r,n,i,a,o,s){var l=s.dtype,u=s.shape.slice();if(u.length<2||u.length>3)throw new Error("gl-texture2d: Invalid ndarray, must be 2d or 3d");var c=0,h=0,f=jE(u,s.stride.slice());"float32"===l?c=t.FLOAT:"float64"===l?(c=t.FLOAT,f=!1,l="float32"):"uint8"===l?c=t.UNSIGNED_BYTE:(c=t.UNSIGNED_BYTE,f=!1,l="uint8");if(2===u.length)h=t.LUMINANCE,u=[u[0],u[1],1],s=wb(s.data,u,[s.stride[0],s.stride[1],1],s.offset);else{if(3!==u.length)throw new Error("gl-texture2d: Invalid shape for texture");if(1===u[2])h=t.ALPHA;else if(2===u[2])h=t.LUMINANCE_ALPHA;else if(3===u[2])h=t.RGB;else{if(4!==u[2])throw new Error("gl-texture2d: Invalid shape for pixel coords");h=t.RGBA}u[2]}h!==t.LUMINANCE&&h!==t.ALPHA||i!==t.LUMINANCE&&i!==t.ALPHA||(h=i);if(h!==i)throw new Error("gl-texture2d: Incompatible texture format for setPixels");var p=s.size,d=o.indexOf(n)<0;d&&o.push(n);if(c===a&&f)0===s.offset&&s.data.length===p?d?t.texImage2D(t.TEXTURE_2D,n,i,u[0],u[1],0,i,a,s.data):t.texSubImage2D(t.TEXTURE_2D,n,e,r,u[0],u[1],i,a,s.data):d?t.texImage2D(t.TEXTURE_2D,n,i,u[0],u[1],0,i,a,s.data.subarray(s.offset,s.offset+p)):t.texSubImage2D(t.TEXTURE_2D,n,e,r,u[0],u[1],i,a,s.data.subarray(s.offset,s.offset+p));else{var g;g=a===t.FLOAT?__.mallocFloat32(p):__.mallocUint8(p);var v=wb(g,u,[u[2],u[2]*u[0],1]);c===t.FLOAT&&a===t.UNSIGNED_BYTE?RE(v,s):ib.assign(v,s),d?t.texImage2D(t.TEXTURE_2D,n,i,u[0],u[1],0,i,a,g.subarray(0,p)):t.texSubImage2D(t.TEXTURE_2D,n,e,r,u[0],u[1],i,a,g.subarray(0,p)),a===t.FLOAT?__.freeFloat32(g):__.freeUint8(g)}}(i,e,r,n,this.format,this.type,this._mipLevels,t)}};var qE,HE,GE,WE,YE=function(t,e,r,n){qE||(qE=t.FRAMEBUFFER_UNSUPPORTED,HE=t.FRAMEBUFFER_INCOMPLETE_ATTACHMENT,GE=t.FRAMEBUFFER_INCOMPLETE_DIMENSIONS,WE=t.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT);var i=t.getExtension("WEBGL_draw_buffers");!XE&&i&&function(t,e){var r=t.getParameter(e.MAX_COLOR_ATTACHMENTS_WEBGL);XE=new Array(r+1);for(var n=0;n<=r;++n){for(var i=new Array(r),a=0;aa||r<0||r>a)throw new Error("gl-fbo: Parameters are too large for FBO");var o=1;if("color"in(n=n||{})){if((o=Math.max(0|n.color,0))<0)throw new Error("gl-fbo: Must specify a nonnegative number of colors");if(o>1){if(!i)throw new Error("gl-fbo: Multiple draw buffer extension not supported");if(o>t.getParameter(i.MAX_COLOR_ATTACHMENTS_WEBGL))throw new Error("gl-fbo: Context does not support "+o+" draw buffers")}}var s=t.UNSIGNED_BYTE,l=t.getExtension("OES_texture_float");if(n.float&&o>0){if(!l)throw new Error("gl-fbo: Context does not support floating point textures");s=t.FLOAT}else n.preferFloat&&o>0&&l&&(s=t.FLOAT);var u=!0;"depth"in n&&(u=!!n.depth);var c=!1;"stencil"in n&&(c=!!n.stencil);return new tC(t,e,r,s,o,u,c,i)},XE=null;function ZE(t){return[t.getParameter(t.FRAMEBUFFER_BINDING),t.getParameter(t.RENDERBUFFER_BINDING),t.getParameter(t.TEXTURE_BINDING_2D)]}function JE(t,e){t.bindFramebuffer(t.FRAMEBUFFER,e[0]),t.bindRenderbuffer(t.RENDERBUFFER,e[1]),t.bindTexture(t.TEXTURE_2D,e[2])}function KE(t){switch(t){case qE:throw new Error("gl-fbo: Framebuffer unsupported");case HE:throw new Error("gl-fbo: Framebuffer incomplete attachment");case GE:throw new Error("gl-fbo: Framebuffer incomplete dimensions");case WE:throw new Error("gl-fbo: Framebuffer incomplete missing attachment");default:throw new Error("gl-fbo: Framebuffer failed for unspecified reason")}}function QE(t,e,r,n,i,a){if(!n)return null;var o=zE(t,e,r,i,n);return o.magFilter=t.NEAREST,o.minFilter=t.NEAREST,o.mipSamples=1,o.bind(),t.framebufferTexture2D(t.FRAMEBUFFER,a,t.TEXTURE_2D,o.handle,0),o}function $E(t,e,r,n,i){var a=t.createRenderbuffer();return t.bindRenderbuffer(t.RENDERBUFFER,a),t.renderbufferStorage(t.RENDERBUFFER,n,e,r),t.framebufferRenderbuffer(t.FRAMEBUFFER,i,t.RENDERBUFFER,a),a}function tC(t,e,r,n,i,a,o,s){this.gl=t,this._shape=[0|e,0|r],this._destroyed=!1,this._ext=s,this.color=new Array(i);for(var l=0;l1&&s.drawBuffersWEBGL(XE[o]);var f=r.getExtension("WEBGL_depth_texture");f?l?t.depth=QE(r,i,a,f.UNSIGNED_INT_24_8_WEBGL,r.DEPTH_STENCIL,r.DEPTH_STENCIL_ATTACHMENT):u&&(t.depth=QE(r,i,a,r.UNSIGNED_SHORT,r.DEPTH_COMPONENT,r.DEPTH_ATTACHMENT)):u&&l?t._depth_rb=$E(r,i,a,r.DEPTH_STENCIL,r.DEPTH_STENCIL_ATTACHMENT):u?t._depth_rb=$E(r,i,a,r.DEPTH_COMPONENT16,r.DEPTH_ATTACHMENT):l&&(t._depth_rb=$E(r,i,a,r.STENCIL_INDEX,r.STENCIL_ATTACHMENT));var p=r.checkFramebufferStatus(r.FRAMEBUFFER);if(p!==r.FRAMEBUFFER_COMPLETE){for(t._destroyed=!0,r.bindFramebuffer(r.FRAMEBUFFER,null),r.deleteFramebuffer(t.handle),t.handle=null,t.depth&&(t.depth.dispose(),t.depth=null),t._depth_rb&&(r.deleteRenderbuffer(t._depth_rb),t._depth_rb=null),h=0;hi||r<0||r>i)throw new Error("gl-fbo: Can't resize FBO, invalid dimensions");t._shape[0]=e,t._shape[1]=r;for(var a=ZE(n),o=0;othis.buffer.length){__.free(this.buffer);for(var n=this.buffer=__.mallocUint8(iC(r*e*4)),i=0;i=0){var g=e[d]-n[d]*(e[d+2]-e[d])/(n[d+2]-n[d]);0===d?o.drawLine(g,e[1],g,e[3],p[d],f[d]):o.drawLine(e[0],g,e[2],g,p[d],f[d])}}for(d=0;d=0;--t)this.objects[t].dispose();this.objects.length=0;for(t=this.overlays.length-1;t>=0;--t)this.overlays[t].dispose();this.overlays.length=0,this.gl=null},cC.addObject=function(t){this.objects.indexOf(t)<0&&(this.objects.push(t),this.setDirty())},cC.removeObject=function(t){for(var e=this.objects,r=0;r0){var m=r*c;o.drawBox(h-m,f-m,p+m,f+m,a),o.drawBox(h-m,d-m,p+m,d+m,a),o.drawBox(h-m,f-m,h+m,d+m,a),o.drawBox(p-m,f-m,p+m,d+m,a)}}}},vC.update=function(t){t=t||{},this.innerFill=!!t.innerFill,this.outerFill=!!t.outerFill,this.innerColor=(t.innerColor||[0,0,0,.5]).slice(),this.outerColor=(t.outerColor||[0,0,0,.5]).slice(),this.borderColor=(t.borderColor||[0,0,0,1]).slice(),this.borderWidth=t.borderWidth||0,this.selectBox=(t.selectBox||this.selectBox).slice()},vC.dispose=function(){this.boxBuffer.dispose(),this.boxShader.dispose(),this.plot.removeOverlay(this)};var mC=function(t,e){var r=new yC(t);return r.update(e),t.addOverlay(r),r};function yC(t){this.plot=t,this.enable=[!0,!0,!1,!1],this.width=[1,1,1,1],this.color=[[0,0,0,1],[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.center=[1/0,1/0]}var xC=yC.prototype;xC.update=function(t){t=t||{},this.enable=(t.enable||[!0,!0,!1,!1]).slice(),this.width=(t.width||[1,1,1,1]).slice(),this.color=(t.color||[[0,0,0,1],[0,0,0,1],[0,0,0,1],[0,0,0,1]]).map(function(t){return t.slice()}),this.center=(t.center||[1/0,1/0]).slice(),this.plot.setOverlayDirty()},xC.draw=function(){var t=this.enable,e=this.width,r=this.color,n=this.center,i=this.plot,a=i.line,o=i.dataBox,s=i.viewBox;if(a.bind(),o[0]<=n[0]&&n[0]<=o[2]&&o[1]<=n[1]&&n[1]<=o[3]){var l=s[0]+(n[0]-o[0])/(o[2]-o[0])*(s[2]-s[0]),u=s[1]+(n[1]-o[1])/(o[3]-o[1])*(s[3]-s[1]);t[0]&&a.drawLine(l,u,s[0],u,e[0],r[0]),t[1]&&a.drawLine(l,u,l,s[1],e[1],r[1]),t[2]&&a.drawLine(l,u,s[2],u,e[2],r[2]),t[3]&&a.drawLine(l,u,l,s[3],e[3],r[3])}},xC.dispose=function(){this.plot.removeOverlay(this)};var bC=function(t,e){if("string"!=typeof t)throw new TypeError("must specify type string");if(e=e||{},"undefined"==typeof document&&!e.canvas)return null;var r=e.canvas||document.createElement("canvas");"number"==typeof e.width&&(r.width=e.width);"number"==typeof e.height&&(r.height=e.height);var n,i=e;try{var a=[t];0===t.indexOf("webgl")&&a.push("experimental-"+t);for(var o=0;o=0;){var n=t.indexOf(";",r);if(n/g,"")}(function(t){for(var e=0;(e=t.indexOf("",e))>=0;){var r=t.indexOf("",e);if(r/g,"\n"))))},kC=function(){},TC=function(t){for(var e in t)"function"==typeof t[e]&&(t[e]=kC);t.destroy=function(){t.container.parentNode.removeChild(t.container)};var r=document.createElement("div");return r.textContent="Webgl is not supported by your browser - visit http://get.webgl.org for more info",r.style.cursor="pointer",r.style.fontSize="24px",r.style.color=Oe.defaults[0],t.container.appendChild(r),t.container.style.background="#FFFFFF",t.container.onclick=function(){window.open("http://get.webgl.org")},!1},SC={};function EC(t){return t.target||t.srcElement||window}SC.buttons=function(t){if("object"==typeof t){if("buttons"in t)return t.buttons;if("which"in t){if(2===(e=t.which))return 4;if(3===e)return 2;if(e>0)return 1<=0)return 1<Math.abs(l)?(n.boxEnd[1]=n.boxStart[1]+Math.abs(s)*b*(l>=0?1:-1),n.boxEnd[1]u[3]&&(n.boxEnd[1]=u[3],n.boxEnd[0]=n.boxStart[0]+(u[3]-n.boxStart[1])/Math.abs(b))):(n.boxEnd[0]=n.boxStart[0]+Math.abs(l)/b*(s>=0?1:-1),n.boxEnd[0]u[2]&&(n.boxEnd[0]=u[2],n.boxEnd[1]=n.boxStart[1]+(u[2]-n.boxStart[0])*Math.abs(b)))}}else n.boxEnabled?(s=n.boxStart[0]!==n.boxEnd[0],l=n.boxStart[1]!==n.boxEnd[1],s||l?(s&&(g(0,n.boxStart[0],n.boxEnd[0]),t.xaxis.autorange=!1),l&&(g(1,n.boxStart[1],n.boxEnd[1]),t.yaxis.autorange=!1),t.relayoutCallback()):t.glplot.setDirty(),n.boxEnabled=!1,n.boxInited=!1):n.boxInited&&(n.boxInited=!1);break;case"pan":n.boxEnabled=!1,n.boxInited=!1,e?(n.panning||(n.dragStart[0]=a,n.dragStart[1]=o),Math.abs(n.dragStart[0]-a)r?r:t:te?e:t};var BC={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]},NC=function(){for(var t=0;t10&&/[0-9](?:\s|\/)/.test(r)&&(a=r.match(/([0-9]+)/g).map(function(t){return parseFloat(t)}),i=r.match(/([a-z])/gi).join("").toLowerCase());else if("number"==typeof r)i="rgb",a=[r>>>16,(65280&r)>>>8,255&r];else if(VC(r)){var h=NC(r.r,r.red,r.R,null);null!==h?(i="rgb",a=[h,NC(r.g,r.green,r.G),NC(r.b,r.blue,r.B)]):(i="hsl",a=[NC(r.h,r.hue,r.H),NC(r.s,r.saturation,r.S),NC(r.l,r.lightness,r.L,r.b,r.brightness)]),o=NC(r.a,r.alpha,r.opacity,1),null!=r.opacity&&(o/=100)}else(Array.isArray(r)||t.ArrayBuffer&&ArrayBuffer.isView&&ArrayBuffer.isView(r))&&(a=[r[0],r[1],r[2]],i="rgb",o=4===r.length?r[3]:1);return{space:i,values:a,alpha:o}};var e={red:0,orange:60,yellow:120,green:180,blue:240,purple:300}}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{});var qC=function(t){var e,r,n,i,a,o=t[0]/360,s=t[1]/100,l=t[2]/100;if(0===s)return[a=255*l,a,a];e=2*l-(r=l<.5?l*(1+s):l+s-l*s),i=[0,0,0];for(var u=0;u<3;u++)(n=o+1/3*-(u-1))<0?n++:n>1&&n--,a=6*n<1?e+6*(r-e)*n:2*n<1?r:3*n<2?e+(r-e)*(2/3-n)*6:e,i[u]=255*a;return i},HC=function(t){switch(t){case"int8":return Int8Array;case"int16":return Int16Array;case"int32":return Int32Array;case"uint8":return Uint8Array;case"uint16":return Uint16Array;case"uint32":return Uint32Array;case"float32":return Float32Array;case"float64":return Float64Array;case"array":return Array;case"uint8_clamped":return Uint8ClampedArray}},GC=function(t,e){"float"!==e&&e||(e="array"),"uint"===e&&(e="uint8"),"uint_clamped"===e&&(e="uint8_clamped");var r=HC(e),n=new r(4);if(t instanceof r)return Array.isArray(t)?t.slice():(n.set(t),n);var i="uint8"!==e&&"uint8_clamped"!==e;return t instanceof Uint8Array||t instanceof Uint8ClampedArray?(n[0]=t[0],n[1]=t[1],n[2]=t[2],n[3]=null!=t[3]?t[3]:255,i&&(n[0]/=255,n[1]/=255,n[2]/=255,n[3]/=255),n):(t.length&&"string"!=typeof t||((t=function(t){var e;if("string"!=typeof t)throw Error("Argument should be a string");var r=UC(t);return r.space?((e=Array(3))[0]=FC(r.values[0],0,255),e[1]=FC(r.values[1],0,255),e[2]=FC(r.values[2],0,255),"h"===r.space[0]&&(e=qC(e)),e.push(FC(r.alpha,0,1)),e):[]}(t))[0]/=255,t[1]/=255,t[2]/=255),i?(n[0]=t[0],n[1]=t[1],n[2]=t[2],n[3]=null!=t[3]?t[3]:1):(n[0]=FC(Math.round(255*t[0]),0,255),n[1]=FC(Math.round(255*t[1]),0,255),n[2]=FC(Math.round(255*t[2]),0,255),n[3]=null==t[3]?255:FC(Math.floor(255*t[3]),0,255)),n)};var WC=function(t){return t?GC(t):[0,0,0,1]};function YC(t){this.scene=t,this.gl=t.gl,this.pixelRatio=t.pixelRatio,this.screenBox=[0,0,1,1],this.viewBox=[0,0,1,1],this.dataBox=[-1,-1,1,1],this.borderLineEnable=[!1,!1,!1,!1],this.borderLineWidth=[1,1,1,1],this.borderLineColor=[[0,0,0,1],[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.ticks=[[],[]],this.tickEnable=[!0,!0,!1,!1],this.tickPad=[15,15,15,15],this.tickAngle=[0,0,0,0],this.tickColor=[[0,0,0,1],[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.tickMarkLength=[0,0,0,0],this.tickMarkWidth=[0,0,0,0],this.tickMarkColor=[[0,0,0,1],[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.labels=["x","y"],this.labelEnable=[!0,!0,!1,!1],this.labelAngle=[0,Math.PI/2,0,3*Math.PI/2],this.labelPad=[15,15,15,15],this.labelSize=[12,12],this.labelFont=["sans-serif","sans-serif"],this.labelColor=[[0,0,0,1],[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.title="",this.titleEnable=!0,this.titleCenter=[0,0,0,0],this.titleAngle=0,this.titleColor=[0,0,0,1],this.titleFont="sans-serif",this.titleSize=18,this.gridLineEnable=[!0,!0],this.gridLineColor=[[0,0,0,.5],[0,0,0,.5]],this.gridLineWidth=[1,1],this.zeroLineEnable=[!0,!0],this.zeroLineWidth=[1,1],this.zeroLineColor=[[0,0,0,1],[0,0,0,1]],this.borderColor=!1,this.backgroundColor=[0,0,0,0],this.static=this.scene.staticPlot}var XC=YC.prototype,ZC=["xaxis","yaxis"];XC.merge=function(t){var e,r,n,i,a,o,s,l,u,c,h;for(this.titleEnable=!1,this.backgroundColor=WC(t.plot_bgcolor),c=0;c<2;++c){var f=(e=ZC[c]).charAt(0);for(n=(r=t[this.scene[e]._name]).title===this.scene.fullLayout._dfltTitle[f]?"":r.title,h=0;h<=2;h+=2)this.labelEnable[c+h]=!1,this.labels[c+h]=AC(n),this.labelColor[c+h]=WC(r.titlefont.color),this.labelFont[c+h]=r.titlefont.family,this.labelSize[c+h]=r.titlefont.size,this.labelPad[c+h]=this.getLabelPad(e,r),this.tickEnable[c+h]=!1,this.tickColor[c+h]=WC((r.tickfont||{}).color),this.tickAngle[c+h]="auto"===r.tickangle?0:Math.PI*-r.tickangle/180,this.tickPad[c+h]=this.getTickPad(r),this.tickMarkLength[c+h]=0,this.tickMarkWidth[c+h]=r.tickwidth||0,this.tickMarkColor[c+h]=WC(r.tickcolor),this.borderLineEnable[c+h]=!1,this.borderLineColor[c+h]=WC(r.linecolor),this.borderLineWidth[c+h]=r.linewidth||0;s=this.hasSharedAxis(r),a=this.hasAxisInDfltPos(e,r)&&!s,o=this.hasAxisInAltrPos(e,r)&&!s,i=r.mirror||!1,l=s?-1!==String(i).indexOf("all"):!!i,u=s?"allticks"===i:-1!==String(i).indexOf("ticks"),a?this.labelEnable[c]=!0:o&&(this.labelEnable[c+2]=!0),a?this.tickEnable[c]=r.showticklabels:o&&(this.tickEnable[c+2]=r.showticklabels),(a||l)&&(this.borderLineEnable[c]=r.showline),(o||l)&&(this.borderLineEnable[c+2]=r.showline),(a||u)&&(this.tickMarkLength[c]=this.getTickMarkLength(r)),(o||u)&&(this.tickMarkLength[c+2]=this.getTickMarkLength(r)),this.gridLineEnable[c]=r.showgrid,this.gridLineColor[c]=WC(r.gridcolor),this.gridLineWidth[c]=r.gridwidth,this.zeroLineEnable[c]=r.zeroline,this.zeroLineColor[c]=WC(r.zerolinecolor),this.zeroLineWidth[c]=r.zerolinewidth}},XC.hasSharedAxis=function(t){var e=this.scene,r=e.fullLayout._subplots.gl2d;return 0!==ri.findSubplotsWithAxis(r,t).indexOf(e.id)},XC.hasAxisInDfltPos=function(t,e){var r=e.side;return"xaxis"===t?"bottom"===r:"yaxis"===t?"left"===r:void 0},XC.hasAxisInAltrPos=function(t,e){var r=e.side;return"xaxis"===t?"top"===r:"yaxis"===t?"right"===r:void 0},XC.getLabelPad=function(t,e){var r=e.titlefont.size,n=e.showticklabels;return"xaxis"===t?"top"===e.side?r*(1.5+(n?1:0))-10:r*(1.5+(n?.5:0))-10:"yaxis"===t?"right"===e.side?10+r*(1.5+(n?1:.5)):10+r*(1.5+(n?.5:0)):void 0},XC.getTickPad=function(t){return"outside"===t.ticks?10+t.ticklen:15},XC.getTickMarkLength=function(t){if(!t.ticks)return 0;var e=t.ticklen;return"inside"===t.ticks?-e:e};var JC,KC,QC=function(t){return new YC(t)},$C=Gm.enforce,tL=Gm.clean,eL=Nn,rL=["xaxis","yaxis"],nL=Te.SUBPLOT_PATTERN;function iL(t,e){this.container=t.container,this.graphDiv=t.graphDiv,this.pixelRatio=t.plotGlPixelRatio||window.devicePixelRatio,this.id=t.id,this.staticPlot=!!t.staticPlot,this.scrollZoom=this.graphDiv._context.scrollZoom,this.fullData=null,this.updateRefs(e),this.makeFramework(),this.glplotOptions=QC(this),this.glplotOptions.merge(e),this.glplot=lC(this.glplotOptions),this.camera=RC(this),this.traces={},this.spikes=mC(this.glplot),this.selectBox=dC(this.glplot,{innerFill:!1,outerFill:!0}),this.lastButtonState=0,this.pickResult=null,this.isMouseOver=!0,this.stopped=!1,this.redraw=this.draw.bind(this),this.redraw()}var aL=iL,oL=iL.prototype;oL.makeFramework=function(){if(this.staticPlot){if(!(KC||(JC=document.createElement("canvas"),KC=_C({canvas:JC,preserveDrawingBuffer:!1,premultipliedAlpha:!0,antialias:!0}))))throw new Error("Error creating static canvas/context for image server");this.canvas=JC,this.gl=KC}else{var t=this.container.querySelector(".gl-canvas-focus"),e=_C({canvas:t,preserveDrawingBuffer:!0,premultipliedAlpha:!0});e||TC(this),this.canvas=t,this.gl=e}var r=this.canvas;r.style.width="100%",r.style.height="100%",r.style.position="absolute",r.style.top="0px",r.style.left="0px",r.style["pointer-events"]="none",this.updateSize(r),r.className+=" user-select-none";var n=this.svgContainer=document.createElementNS("http://www.w3.org/2000/svg","svg");n.style.position="absolute",n.style.top=n.style.left="0px",n.style.width=n.style.height="100%",n.style["z-index"]=20,n.style["pointer-events"]="none";var i=this.mouseContainer=document.createElement("div");i.style.position="absolute",i.style["pointer-events"]="auto",this.pickCanvas=this.container.querySelector(".gl-canvas-pick");var a=this.container;a.appendChild(n),a.appendChild(i);var o=this;i.addEventListener("mouseout",function(){o.isMouseOver=!1,o.unhover()}),i.addEventListener("mouseover",function(){o.isMouseOver=!0})},oL.toImage=function(t){t||(t="png"),this.stopped=!0,this.staticPlot&&this.container.appendChild(JC),this.updateSize(this.canvas);var e=this.glplot.gl,r=e.drawingBufferWidth,n=e.drawingBufferHeight;e.clearColor(1,1,1,0),e.clear(e.COLOR_BUFFER_BIT|e.DEPTH_BUFFER_BIT),this.glplot.setDirty(),this.glplot.draw(),e.bindFramebuffer(e.FRAMEBUFFER,null);var i=new Uint8Array(r*n*4);e.readPixels(0,0,r,n,e.RGBA,e.UNSIGNED_BYTE,i);for(var a=0,o=n-1;a>>1,x=a[m]"];return i?e.indexOf("c")<0?a.push(";if(x===y){return m}else if(x<=y){"):a.push(";var p=c(x,y);if(p===0){return m}else if(p<=0){"):a.push(";if(",e,"){i=m;"),r?a.push("l=m+1}else{h=m-1}"):a.push("h=m-1}else{l=m+1}"),a.push("}"),i?a.push("return -1};"):a.push("return i};"),a.join("")}function xL(t,e,r,n){return new Function([yL("A","x"+t+"y",e,["y"],n),yL("P","c(x,y)"+t+"0",e,["y","c"],n),"function dispatchBsearch",r,"(a,y,c,l,h){if(typeof(c)==='function'){return P(a,(l===void 0)?0:l|0,(h===void 0)?a.length-1:h|0,y,c)}else{return A(a,(c===void 0)?0:c|0,(l===void 0)?a.length-1:l|0,y)}}return dispatchBsearch",r].join(""))()}var bL={ge:xL(">=",!1,"GE"),gt:xL(">",!1,"GT"),lt:xL("<",!0,"LT"),le:xL("<=",!0,"LE"),eq:xL("-",!0,"EQ",!0)},_L=function(t,e){var r=t.gl,n=Bw(r,mL.vertex,mL.fragment),i=Bw(r,mL.pickVertex,mL.pickFragment),a=S_(r),o=S_(r),s=S_(r),l=S_(r),u=new wL(t,n,i,a,o,s,l);return u.update(e),t.addObject(u),u};function wL(t,e,r,n,i,a,o){this.plot=t,this.shader=e,this.pickShader=r,this.positionBuffer=n,this.weightBuffer=i,this.colorBuffer=a,this.idBuffer=o,this.xData=[],this.yData=[],this.shape=[0,0],this.bounds=[1/0,1/0,-1/0,-1/0],this.pickOffset=0}var ML,AL=wL.prototype,kL=[0,0,1,0,0,1,1,0,1,1,0,1];function TL(t,e){this.scene=t,this.uid=e,this.type="heatmapgl",this.name="",this.hoverinfo="all",this.xData=[],this.yData=[],this.zData=[],this.textLabels=[],this.idToIndex=[],this.bounds=[0,0,0,0],this.options={z:[],x:[],y:[],shape:[0,0],colorLevels:[0],colorValues:[0,0,0,1]},this.heatmap=_L(t.glplot,this.options),this.heatmap._trace=this}AL.draw=(ML=[1,0,0,0,1,0,0,0,1],function(){var t=this.plot,e=this.shader,r=this.bounds,n=this.numVertices;if(!(n<=0)){var i=t.gl,a=t.dataBox,o=r[2]-r[0],s=r[3]-r[1],l=a[2]-a[0],u=a[3]-a[1];ML[0]=2*o/l,ML[4]=2*s/u,ML[6]=2*(r[0]-a[0])/l-1,ML[7]=2*(r[1]-a[1])/u-1,e.bind();var c=e.uniforms;c.viewTransform=ML,c.shape=this.shape;var h=e.attributes;this.positionBuffer.bind(),h.position.pointer(),this.weightBuffer.bind(),h.weight.pointer(i.UNSIGNED_BYTE,!1),this.colorBuffer.bind(),h.color.pointer(i.UNSIGNED_BYTE,!0),i.drawArrays(i.TRIANGLES,0,n)}}),AL.drawPick=function(){var t=[1,0,0,0,1,0,0,0,1],e=[0,0,0,0];return function(r){var n=this.plot,i=this.pickShader,a=this.bounds,o=this.numVertices;if(!(o<=0)){var s=n.gl,l=n.dataBox,u=a[2]-a[0],c=a[3]-a[1],h=l[2]-l[0],f=l[3]-l[1];t[0]=2*u/h,t[4]=2*c/f,t[6]=2*(a[0]-l[0])/h-1,t[7]=2*(a[1]-l[1])/f-1;for(var p=0;p<4;++p)e[p]=r>>8*p&255;this.pickOffset=r,i.bind();var d=i.uniforms;d.viewTransform=t,d.pickOffset=e,d.shape=this.shape;var g=i.attributes;return this.positionBuffer.bind(),g.position.pointer(),this.weightBuffer.bind(),g.weight.pointer(s.UNSIGNED_BYTE,!1),this.idBuffer.bind(),g.pickId.pointer(s.UNSIGNED_BYTE,!1),s.drawArrays(s.TRIANGLES,0,o),r+this.shape[0]*this.shape[1]}}}(),AL.pick=function(t,e,r){var n=this.pickOffset,i=this.shape[0]*this.shape[1];if(r=n+i)return null;var a=r-n,o=this.xData,s=this.yData;return{object:this,pointId:a,dataCoord:[o[a%this.shape[0]],s[a/this.shape[0]|0]]}},AL.update=function(t){var e=(t=t||{}).shape||[0,0],r=t.x||db(e[0]),n=t.y||db(e[1]),i=t.z||new Float32Array(e[0]*e[1]);this.xData=r,this.yData=n;var a=t.colorLevels||[0],o=t.colorValues||[0,0,0,1],s=a.length,l=this.bounds,u=l[0]=r[0],c=l[1]=n[0],h=1/((l[2]=r[r.length-1])-u),f=1/((l[3]=n[n.length-1])-c),p=e[0],d=e[1];this.shape=[p,d];var g=(p-1)*(d-1)*(kL.length>>>1);this.numVertices=g;for(var v=__.mallocUint8(4*g),m=__.mallocFloat32(2*g),y=__.mallocUint8(2*g),x=__.mallocUint32(g),b=0,_=0;_u.size/1.9?u.size:u.size/Math.ceil(u.size/g);var _=u.start+(u.size-g)/2;v=_-g*Math.ceil((_-v)/g)}for(o=0;o=0&&p=0;n--)s(n);else if("increasing"===e){for(n=1;n=0;n--)t[n]+=t[n+1];"exclude"===r&&(t.push(0),t.shift())}}(a,c.direction,c.currentbin);var j=Math.min(i.length,a.length),V=[],U=0,q=j-1;for(n=0;n=U;n--)if(a[n]){q=n;break}for(n=U;n<=q;n++)if(r(i[n])&&r(a[n])){var H={p:i[n],s:a[n],b:0};c.enabled||(H.pts=w[n],O?H.p0=H.p1=w[n].length?v[w[n][0]]:i[n]:(H.p0=I(y[n]),H.p1=I(y[n+1],!0))),V.push(H)}return 1===V.length&&(V[0].width1=ri.tickIncrement(V[0].p,g.size,!1,u)-V[0].p),ma(V,e),ne.isArrayOrTypedArray(e.selectedpoints)&&ne.tagSelected(V,e,B),V}},UL.setPositions=Vo,UL.plot=Lo,UL.style=$o,UL.colorbar=is,UL.hoverPoints=function(t,e,r,n){var i=_o(t,e,r,n);if(i){var a=(t=i[0]).cd[t.index],o=t.cd[0].trace;if(!o.cumulative.enabled){var s="h"===o.orientation?"y":"x";t[s+"Label"]=VL(t[s+"a"],a.p0,a.p1)}return i}},UL.selectPoints=Oo,UL.eventData=jL,UL.moduleType="trace",UL.name="histogram",UL.basePlotModule=ua,UL.categories=["cartesian","bar","histogram","oriented","errorBarsOK","showLegend"],UL.meta={};var qL=UL,HL=m.extendFlat,GL=HL({},{x:zL.x,y:zL.y,z:{valType:"data_array",editType:"calc"},marker:{color:{valType:"data_array",editType:"calc"},editType:"calc"},histnorm:zL.histnorm,histfunc:zL.histfunc,autobinx:zL.autobinx,nbinsx:zL.nbinsx,xbins:zL.xbins,autobiny:zL.autobiny,nbinsy:zL.nbinsy,ybins:zL.ybins,xgap:Lh.xgap,ygap:Lh.ygap,zsmooth:Lh.zsmooth,zhoverformat:Lh.zhoverformat},Pe,{autocolorscale:HL({},Pe.autocolorscale,{dflt:!1})},{colorbar:ze}),WL=function(t,e,r,n){var i=r("x"),a=r("y");if(i&&i.length&&a&&a.length){P.getComponentMethod("calendars","handleTraceDefaults")(t,e,["x","y"],n),(r("z")||r("marker.color"))&&r("histfunc");NL(0,e,r,["x","y"])}else e.visible=!1},YL=ri.hoverLabelText,XL={};XL.attributes=GL,XL.supplyDefaults=function(t,e,r,n){function i(r,n){return ne.coerce(t,e,GL,r,n)}WL(t,e,i,n),!1!==e.visible&&(Xx(0,0,i),Ye(t,e,n,i,{prefix:"",cLetter:"z"}))},XL.calc=bf,XL.plot=$f,XL.colorbar=kh,XL.style=up,XL.hoverPoints=function(t,e,r,n,i,a){var o=Rf(t,e,r,0,0,a);if(o){var s=(t=o[0]).index,l=s[0],u=s[1],c=t.cd[0],h=c.xRanges[u],f=c.yRanges[l];return t.xLabel=YL(t.xa,h[0],h[1]),t.yLabel=YL(t.ya,f[0],f[1]),o}},XL.eventData=jL,XL.moduleType="trace",XL.name="histogram2d",XL.basePlotModule=ua,XL.categories=["cartesian","2dMap","histogram"],XL.meta={};var ZL=XL,JL=m.extendFlat,KL=JL({x:GL.x,y:GL.y,z:GL.z,marker:GL.marker,histnorm:GL.histnorm,histfunc:GL.histfunc,autobinx:GL.autobinx,nbinsx:GL.nbinsx,xbins:GL.xbins,autobiny:GL.autobiny,nbinsy:GL.nbinsy,ybins:GL.ybins,autocontour:Rh.autocontour,ncontours:Rh.ncontours,contours:Rh.contours,line:Rh.line,zhoverformat:GL.zhoverformat},Pe,{zmin:JL({},Pe.zmin,{editType:"calc"}),zmax:JL({},Pe.zmax,{editType:"calc"})},{colorbar:ze}),QL={};QL.attributes=KL,QL.supplyDefaults=function(t,e,r,n){function i(r,n){return ne.coerce(t,e,KL,r,n)}WL(t,e,i,n),!1!==e.visible&&(zf(0,e,i,function(r){return ne.coerce2(t,e,KL,r)}),Pf(t,e,i,n))},QL.calc=_f,QL.plot=ip.plot,QL.style=cp,QL.colorbar=Af,QL.hoverPoints=Ff,QL.moduleType="trace",QL.name="histogram2dcontour",QL.basePlotModule=ua,QL.categories=["cartesian","2dMap","contour","histogram"],QL.meta={};var $L=QL,tz=m.extendFlat,ez=(0,ye.overrideAll)({visible:Ce.visible,showspikes:{valType:"boolean",dflt:!0},spikesides:{valType:"boolean",dflt:!0},spikethickness:{valType:"number",min:0,dflt:2},spikecolor:{valType:"color",dflt:Oe.defaultLine},showbackground:{valType:"boolean",dflt:!1},backgroundcolor:{valType:"color",dflt:"rgba(204, 204, 204, 0.5)"},showaxeslabels:{valType:"boolean",dflt:!0},color:Ce.color,categoryorder:Ce.categoryorder,categoryarray:Ce.categoryarray,title:Ce.title,titlefont:Ce.titlefont,type:Ce.type,autorange:Ce.autorange,rangemode:Ce.rangemode,range:Ce.range,tickmode:Ce.tickmode,nticks:Ce.nticks,tick0:Ce.tick0,dtick:Ce.dtick,tickvals:Ce.tickvals,ticktext:Ce.ticktext,ticks:Ce.ticks,mirror:Ce.mirror,ticklen:Ce.ticklen,tickwidth:Ce.tickwidth,tickcolor:Ce.tickcolor,showticklabels:Ce.showticklabels,tickfont:Ce.tickfont,tickangle:Ce.tickangle,tickprefix:Ce.tickprefix,showtickprefix:Ce.showtickprefix,ticksuffix:Ce.ticksuffix,showticksuffix:Ce.showticksuffix,showexponent:Ce.showexponent,exponentformat:Ce.exponentformat,separatethousands:Ce.separatethousands,tickformat:Ce.tickformat,tickformatstops:Ce.tickformatstops,hoverformat:Ce.hoverformat,showline:Ce.showline,linecolor:Ce.linecolor,linewidth:Ce.linewidth,showgrid:Ce.showgrid,gridcolor:tz({},Ce.gridcolor,{dflt:"rgb(204, 204, 204)"}),gridwidth:Ce.gridwidth,zeroline:Ce.zeroline,zerolinecolor:Ce.zerolinecolor,zerolinewidth:Ce.zerolinewidth},"plot","from-root"),rz=s.mix,nz=["xaxis","yaxis","zaxis"],iz=function(t,e,r){var n,i;function a(t,e){return ne.coerce(n,i,ez,t,e)}for(var o=0;o0&&(a=1/Math.sqrt(a),t[0]=e[0]*a,t[1]=e[1]*a,t[2]=e[2]*a);return t};var xz=function(t){var e=t[0],r=t[1],n=t[2],i=t[3],a=t[4],o=t[5],s=t[6],l=t[7],u=t[8],c=t[9],h=t[10],f=t[11],p=t[12],d=t[13],g=t[14],v=t[15];return(e*o-r*a)*(h*v-f*g)-(e*s-n*a)*(c*v-f*d)+(e*l-i*a)*(c*g-h*d)+(r*s-n*o)*(u*v-f*p)-(r*l-i*o)*(u*g-h*p)+(n*l-i*s)*(u*d-c*p)};var bz=function(t,e,r,n){var i=e[0],a=e[1],o=e[2];return t[0]=i+n*(r[0]-i),t[1]=a+n*(r[1]-a),t[2]=o+n*(r[2]-o),t};var _z=function(t){var e=new Float32Array(16);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e[9]=t[9],e[10]=t[10],e[11]=t[11],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15],e};var wz=function(){var t=new Float32Array(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t};var Mz=function(t,e){if(t===e){var r=e[1],n=e[2],i=e[3],a=e[6],o=e[7],s=e[11];t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=r,t[6]=e[9],t[7]=e[13],t[8]=n,t[9]=a,t[11]=e[14],t[12]=i,t[13]=o,t[14]=s}else t[0]=e[0],t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=e[1],t[5]=e[5],t[6]=e[9],t[7]=e[13],t[8]=e[2],t[9]=e[6],t[10]=e[10],t[11]=e[14],t[12]=e[3],t[13]=e[7],t[14]=e[11],t[15]=e[15];return t};var Az=function(t,e,r){var n=e[0],i=e[1],a=e[2],o=r[0],s=r[1],l=r[2];return t[0]=i*l-a*s,t[1]=a*o-n*l,t[2]=n*s-i*o,t};var kz=function(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]};var Tz={length:function(t){var e=t[0],r=t[1],n=t[2];return Math.sqrt(e*e+r*r+n*n)},normalize:yz,dot:kz,cross:Az},Sz=wz(),Ez=wz(),Cz=[0,0,0,0],Lz=[[0,0,0],[0,0,0],[0,0,0]],zz=[0,0,0],Pz=function(t,e,r,n,i,a){if(e||(e=[0,0,0]),r||(r=[0,0,0]),n||(n=[0,0,0]),i||(i=[0,0,0,1]),a||(a=[0,0,0,1]),!function(t,e){var r=e[15];if(0===r)return!1;for(var n=1/r,i=0;i<16;i++)t[i]=e[i]*n;return!0}(Sz,t))return!1;if(_z(Ez,Sz),Ez[3]=0,Ez[7]=0,Ez[11]=0,Ez[15]=1,Math.abs(xz(Ez)<1e-8))return!1;var o,s,l,u,c,h,f,p=Sz[3],d=Sz[7],g=Sz[11],v=Sz[12],m=Sz[13],y=Sz[14],x=Sz[15];if(0!==p||0!==d||0!==g){if(Cz[0]=p,Cz[1]=d,Cz[2]=g,Cz[3]=x,!cz(Ez,Ez))return!1;Mz(Ez,Ez),o=i,l=Ez,u=(s=Cz)[0],c=s[1],h=s[2],f=s[3],o[0]=l[0]*u+l[4]*c+l[8]*h+l[12]*f,o[1]=l[1]*u+l[5]*c+l[9]*h+l[13]*f,o[2]=l[2]*u+l[6]*c+l[10]*h+l[14]*f,o[3]=l[3]*u+l[7]*c+l[11]*h+l[15]*f}else i[0]=i[1]=i[2]=0,i[3]=1;if(e[0]=v,e[1]=m,e[2]=y,function(t,e){t[0][0]=e[0],t[0][1]=e[1],t[0][2]=e[2],t[1][0]=e[4],t[1][1]=e[5],t[1][2]=e[6],t[2][0]=e[8],t[2][1]=e[9],t[2][2]=e[10]}(Lz,Sz),r[0]=Tz.length(Lz[0]),Tz.normalize(Lz[0],Lz[0]),n[0]=Tz.dot(Lz[0],Lz[1]),Iz(Lz[1],Lz[1],Lz[0],1,-n[0]),r[1]=Tz.length(Lz[1]),Tz.normalize(Lz[1],Lz[1]),n[0]/=r[1],n[1]=Tz.dot(Lz[0],Lz[2]),Iz(Lz[2],Lz[2],Lz[0],1,-n[1]),n[2]=Tz.dot(Lz[1],Lz[2]),Iz(Lz[2],Lz[2],Lz[1],1,-n[2]),r[2]=Tz.length(Lz[2]),Tz.normalize(Lz[2],Lz[2]),n[1]/=r[2],n[2]/=r[2],Tz.cross(zz,Lz[1],Lz[2]),Tz.dot(Lz[0],zz)<0)for(var b=0;b<3;b++)r[b]*=-1,Lz[b][0]*=-1,Lz[b][1]*=-1,Lz[b][2]*=-1;return a[0]=.5*Math.sqrt(Math.max(1+Lz[0][0]-Lz[1][1]-Lz[2][2],0)),a[1]=.5*Math.sqrt(Math.max(1-Lz[0][0]+Lz[1][1]-Lz[2][2],0)),a[2]=.5*Math.sqrt(Math.max(1-Lz[0][0]-Lz[1][1]+Lz[2][2],0)),a[3]=.5*Math.sqrt(Math.max(1+Lz[0][0]+Lz[1][1]+Lz[2][2],0)),Lz[2][1]>Lz[1][2]&&(a[0]=-a[0]),Lz[0][2]>Lz[2][0]&&(a[1]=-a[1]),Lz[1][0]>Lz[0][1]&&(a[2]=-a[2]),!0};function Iz(t,e,r,n,i){t[0]=e[0]*n+r[0]*i,t[1]=e[1]*n+r[1]*i,t[2]=e[2]*n+r[2]*i}var Dz=function(t,e,r){var n=e[0],i=e[1],a=e[2],o=e[3],s=e[4],l=e[5],u=e[6],c=e[7],h=e[8],f=e[9],p=e[10],d=e[11],g=e[12],v=e[13],m=e[14],y=e[15],x=r[0],b=r[1],_=r[2],w=r[3];return t[0]=x*n+b*s+_*h+w*g,t[1]=x*i+b*l+_*f+w*v,t[2]=x*a+b*u+_*p+w*m,t[3]=x*o+b*c+_*d+w*y,x=r[4],b=r[5],_=r[6],w=r[7],t[4]=x*n+b*s+_*h+w*g,t[5]=x*i+b*l+_*f+w*v,t[6]=x*a+b*u+_*p+w*m,t[7]=x*o+b*c+_*d+w*y,x=r[8],b=r[9],_=r[10],w=r[11],t[8]=x*n+b*s+_*h+w*g,t[9]=x*i+b*l+_*f+w*v,t[10]=x*a+b*u+_*p+w*m,t[11]=x*o+b*c+_*d+w*y,x=r[12],b=r[13],_=r[14],w=r[15],t[12]=x*n+b*s+_*h+w*g,t[13]=x*i+b*l+_*f+w*v,t[14]=x*a+b*u+_*p+w*m,t[15]=x*o+b*c+_*d+w*y,t};var Oz={identity:hz,translate:mz,multiply:Dz,create:wz,scale:vz,fromRotationTranslation:function(t,e,r){var n=e[0],i=e[1],a=e[2],o=e[3],s=n+n,l=i+i,u=a+a,c=n*s,h=n*l,f=n*u,p=i*l,d=i*u,g=a*u,v=o*s,m=o*l,y=o*u;return t[0]=1-(p+g),t[1]=h+y,t[2]=f-m,t[3]=0,t[4]=h-y,t[5]=1-(c+g),t[6]=d+v,t[7]=0,t[8]=f+m,t[9]=d-v,t[10]=1-(c+p),t[11]=0,t[12]=r[0],t[13]=r[1],t[14]=r[2],t[15]=1,t}},Rz=(Oz.create(),Oz.create()),Fz=function(t,e,r,n,i,a){return Oz.identity(t),Oz.fromRotationTranslation(t,a,e),t[3]=i[0],t[7]=i[1],t[11]=i[2],t[15]=i[3],Oz.identity(Rz),0!==n[2]&&(Rz[9]=n[2],Oz.multiply(t,t,Rz)),0!==n[1]&&(Rz[9]=0,Rz[8]=n[1],Oz.multiply(t,t,Rz)),0!==n[0]&&(Rz[8]=0,Rz[4]=n[0],Oz.multiply(t,t,Rz)),Oz.scale(t,t,r),t};var Bz=function(t,e,r,n){var i,a,o,s,l,u=e[0],c=e[1],h=e[2],f=e[3],p=r[0],d=r[1],g=r[2],v=r[3];(a=u*p+c*d+h*g+f*v)<0&&(a=-a,p=-p,d=-d,g=-g,v=-v);1-a>1e-6?(i=Math.acos(a),o=Math.sin(i),s=Math.sin((1-n)*i)/o,l=Math.sin(n*i)/o):(s=1-n,l=n);return t[0]=s*u+l*p,t[1]=s*c+l*d,t[2]=s*h+l*g,t[3]=s*f+l*v,t},Nz=qz(),jz=qz(),Vz=qz(),Uz=function(t,e,r,n){if(0===xz(e)||0===xz(r))return!1;var i=Pz(e,Nz.translate,Nz.scale,Nz.skew,Nz.perspective,Nz.quaternion),a=Pz(r,jz.translate,jz.scale,jz.skew,jz.perspective,jz.quaternion);return!(!i||!a||(bz(Vz.translate,Nz.translate,jz.translate,n),bz(Vz.skew,Nz.skew,jz.skew,n),bz(Vz.scale,Nz.scale,jz.scale,n),bz(Vz.perspective,Nz.perspective,jz.perspective,n),Bz(Vz.quaternion,Nz.quaternion,jz.quaternion,n),Fz(t,Vz.translate,Vz.scale,Vz.skew,Vz.perspective,Vz.quaternion),0))};function qz(){return{translate:Hz(),scale:Hz(1),skew:Hz(),perspective:[0,0,0,1],quaternion:[0,0,0,1]}}function Hz(t){return[t||0,t||0,t||0]}var Gz=[0,0,0],Wz=function(t){return new Yz((t=t||{}).matrix||[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1])};function Yz(t){this._components=t.slice(),this._time=[0],this.prevMatrix=t.slice(),this.nextMatrix=t.slice(),this.computedMatrix=t.slice(),this.computedInverse=t.slice(),this.computedEye=[0,0,0],this.computedUp=[0,0,0],this.computedCenter=[0,0,0],this.computedRadius=[0],this._limits=[-1/0,1/0]}var Xz=Yz.prototype;Xz.recalcMatrix=function(t){var e=this._time,r=wT.le(e,t),n=this.computedMatrix;if(!(r<0)){var i=this._components;if(r===e.length-1)for(var a=16*r,o=0;o<16;++o)n[o]=i[a++];else{var s=e[r+1]-e[r],l=(a=16*r,this.prevMatrix),u=!0;for(o=0;o<16;++o)l[o]=i[a++];var c=this.nextMatrix;for(o=0;o<16;++o)c[o]=i[a++],u=u&&l[o]===c[o];if(s<1e-6||u)for(o=0;o<16;++o)n[o]=l[o];else Uz(n,l,c,(t-e[r])/s)}var h=this.computedUp;h[0]=n[1],h[1]=n[5],h[2]=n[9],yz(h,h);var f=this.computedInverse;cz(f,n);var p=this.computedEye,d=f[15];p[0]=f[12]/d,p[1]=f[13]/d,p[2]=f[14]/d;var g=this.computedCenter,v=Math.exp(this.computedRadius[0]);for(o=0;o<3;++o)g[o]=p[o]-n[2+4*o]*v}},Xz.idle=function(t){if(!(t=0;--p)a[p]=u*t[p]+c*e[p]+h*r[p]+f*n[p];return a}return u*t+c*e+h*r+f*n}).derivative=function(t,e,r,n,i,a){var o=6*i*i-6*i,s=3*i*i-4*i+1,l=-6*i*i+6*i,u=3*i*i-2*i;if(t.length){a||(a=new Array(t.length));for(var c=t.length-1;c>=0;--c)a[c]=o*t[c]+s*e[c]+l*r[c]+u*n[c];return a}return o*t+s*e+l*r[c]+u*n};var Kz=function(t,e,r){switch(arguments.length){case 0:return new $z([0],[0],0);case 1:if("number"==typeof t){var n=eP(t);return new $z(n,n,0)}return new $z(t,eP(t.length),0);case 2:if("number"==typeof e){var n=eP(t.length);return new $z(t,n,+e)}r=0;case 3:if(t.length!==e.length)throw new Error("state and velocity lengths must match");return new $z(t,e,r)}};function Qz(t,e,r){return Math.min(e,Math.max(t,r))}function $z(t,e,r){this.dimension=t.length,this.bounds=[new Array(this.dimension),new Array(this.dimension)];for(var n=0;n=r-1){u=a.length-1;var h=t-e[r-1];for(c=0;c=r-1)for(var l=a.length-1,u=(e[r-1],0);u=0;--r)if(t[--e])return!1;return!0},tP.jump=function(t){var e=this.lastT(),r=this.dimension;if(!(t0;--c)n.push(Qz(s[c-1],l[c-1],arguments[c])),i.push(0)}},tP.push=function(t){var e=this.lastT(),r=this.dimension;if(!(t1e-6?1/o:0;this._time.push(t);for(var h=r;h>0;--h){var f=Qz(l[h-1],u[h-1],arguments[h]);n.push(f),i.push((f-n[a++])*c)}}},tP.set=function(t){var e=this.dimension;if(!(t0;--s)r.push(Qz(a[s-1],o[s-1],arguments[s])),n.push(0)}},tP.move=function(t){var e=this.lastT(),r=this.dimension;if(!(t<=e||arguments.length!==r+1)){var n=this._state,i=this._velocity,a=n.length-this.dimension,o=this.bounds,s=o[0],l=o[1],u=t-e,c=u>1e-6?1/u:0;this._time.push(t);for(var h=r;h>0;--h){var f=arguments[h];n.push(Qz(s[h-1],l[h-1],n[a++]+f)),i.push(f*c)}}},tP.idle=function(t){var e=this.lastT();if(!(t=0;--c)n.push(Qz(s[c],l[c],n[a]+u*i[a])),i.push(0),a+=1}};var rP=function(t,e,r,n,i,a,o,s,l,u){var c=e+a+u;if(h>0){var h=Math.sqrt(c+1);t[0]=.5*(o-l)/h,t[1]=.5*(s-n)/h,t[2]=.5*(r-a)/h,t[3]=.5*h}else{var f=Math.max(e,a,u),h=Math.sqrt(2*f-c+1);e>=f?(t[0]=.5*h,t[1]=.5*(i+r)/h,t[2]=.5*(s+n)/h,t[3]=.5*(o-l)/h):a>=f?(t[0]=.5*(r+i)/h,t[1]=.5*h,t[2]=.5*(l+o)/h,t[3]=.5*(s-n)/h):(t[0]=.5*(n+s)/h,t[1]=.5*(o+l)/h,t[2]=.5*h,t[3]=.5*(r-i)/h)}return t};var nP=function(t){var e=(t=t||{}).center||[0,0,0],r=t.rotation||[0,0,0,1],n=t.radius||1;e=[].slice.call(e,0,3),oP(r=[].slice.call(r,0,4),r);var i=new sP(r,e,Math.log(n));i.setDistanceLimits(t.zoomMin,t.zoomMax),("eye"in t||"up"in t)&&i.lookAt(0,t.eye,t.center,t.up);return i};function iP(t,e,r){return Math.sqrt(Math.pow(t,2)+Math.pow(e,2)+Math.pow(r,2))}function aP(t,e,r,n){return Math.sqrt(Math.pow(t,2)+Math.pow(e,2)+Math.pow(r,2)+Math.pow(n,2))}function oP(t,e){var r=e[0],n=e[1],i=e[2],a=e[3],o=aP(r,n,i,a);o>1e-6?(t[0]=r/o,t[1]=n/o,t[2]=i/o,t[3]=a/o):(t[0]=t[1]=t[2]=0,t[3]=1)}function sP(t,e,r){this.radius=Kz([r]),this.center=Kz(e),this.rotation=Kz(t),this.computedRadius=this.radius.curve(0),this.computedCenter=this.center.curve(0),this.computedRotation=this.rotation.curve(0),this.computedUp=[.1,0,0],this.computedEye=[.1,0,0],this.computedMatrix=[.1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],this.recalcMatrix(0)}var lP=sP.prototype;lP.lastT=function(){return Math.max(this.radius.lastT(),this.center.lastT(),this.rotation.lastT())},lP.recalcMatrix=function(t){this.radius.curve(t),this.center.curve(t),this.rotation.curve(t);var e=this.computedRotation;oP(e,e);var r=this.computedMatrix;jv(r,e);var n=this.computedCenter,i=this.computedEye,a=this.computedUp,o=Math.exp(this.computedRadius[0]);i[0]=n[0]+o*r[2],i[1]=n[1]+o*r[6],i[2]=n[2]+o*r[10],a[0]=r[1],a[1]=r[5],a[2]=r[9];for(var s=0;s<3;++s){for(var l=0,u=0;u<3;++u)l+=r[s+4*u]*i[u];r[12+s]=-l}},lP.getMatrix=function(t,e){this.recalcMatrix(t);var r=this.computedMatrix;if(e){for(var n=0;n<16;++n)e[n]=r[n];return e}return r},lP.idle=function(t){this.center.idle(t),this.radius.idle(t),this.rotation.idle(t)},lP.flush=function(t){this.center.flush(t),this.radius.flush(t),this.rotation.flush(t)},lP.pan=function(t,e,r,n){e=e||0,r=r||0,n=n||0,this.recalcMatrix(t);var i=this.computedMatrix,a=i[1],o=i[5],s=i[9],l=iP(a,o,s);a/=l,o/=l,s/=l;var u=i[0],c=i[4],h=i[8],f=u*a+c*o+h*s,p=iP(u-=a*f,c-=o*f,h-=s*f);u/=p,c/=p,h/=p;var d=i[2],g=i[6],v=i[10],m=d*a+g*o+v*s,y=d*u+g*c+v*h,x=iP(d-=m*a+y*u,g-=m*o+y*c,v-=m*s+y*h);d/=x,g/=x,v/=x;var b=u*e+a*r,_=c*e+o*r,w=h*e+s*r;this.center.move(t,b,_,w);var M=Math.exp(this.computedRadius[0]);M=Math.max(1e-4,M+n),this.radius.set(t,Math.log(M))},lP.rotate=function(t,e,r,n){this.recalcMatrix(t),e=e||0,r=r||0;var i=this.computedMatrix,a=i[0],o=i[4],s=i[8],l=i[1],u=i[5],c=i[9],h=i[2],f=i[6],p=i[10],d=e*a+r*l,g=e*o+r*u,v=e*s+r*c,m=-(f*v-p*g),y=-(p*d-h*v),x=-(h*g-f*d),b=Math.sqrt(Math.max(0,1-Math.pow(m,2)-Math.pow(y,2)-Math.pow(x,2))),_=aP(m,y,x,b);_>1e-6?(m/=_,y/=_,x/=_,b/=_):(m=y=x=0,b=1);var w=this.computedRotation,M=w[0],A=w[1],k=w[2],T=w[3],S=M*b+T*m+A*x-k*y,E=A*b+T*y+k*m-M*x,C=k*b+T*x+M*y-A*m,L=T*b-M*m-A*y-k*x;if(n){m=h,y=f,x=p;var z=Math.sin(n)/iP(m,y,x);m*=z,y*=z,x*=z,L=L*(b=Math.cos(e))-(S=S*b+L*m+E*x-C*y)*m-(E=E*b+L*y+C*m-S*x)*y-(C=C*b+L*x+S*y-E*m)*x}var P=aP(S,E,C,L);P>1e-6?(S/=P,E/=P,C/=P,L/=P):(S=E=C=0,L=1),this.rotation.set(t,S,E,C,L)},lP.lookAt=function(t,e,r,n){this.recalcMatrix(t),r=r||this.computedCenter,e=e||this.computedEye,n=n||this.computedUp;var i=this.computedMatrix;fz(i,e,r,n);var a=this.computedRotation;rP(a,i[0],i[1],i[2],i[4],i[5],i[6],i[8],i[9],i[10]),oP(a,a),this.rotation.set(t,a[0],a[1],a[2],a[3]);for(var o=0,s=0;s<3;++s)o+=Math.pow(r[s]-e[s],2);this.radius.set(t,.5*Math.log(Math.max(o,1e-6))),this.center.set(t,r[0],r[1],r[2])},lP.translate=function(t,e,r,n){this.center.move(t,e||0,r||0,n||0)},lP.setMatrix=function(t,e){var r=this.computedRotation;rP(r,e[0],e[1],e[2],e[4],e[5],e[6],e[8],e[9],e[10]),oP(r,r),this.rotation.set(t,r[0],r[1],r[2],r[3]);var n=this.computedMatrix;cz(n,e);var i=n[15];if(Math.abs(i)>1e-6){var a=n[12]/i,o=n[13]/i,s=n[14]/i;this.recalcMatrix(t);var l=Math.exp(this.computedRadius[0]);this.center.set(t,a-n[2]*l,o-n[6]*l,s-n[10]*l),this.radius.idle(t)}else this.center.idle(t),this.radius.idle(t)},lP.setDistance=function(t,e){e>0&&this.radius.set(t,Math.log(e))},lP.setDistanceLimits=function(t,e){t=t>0?Math.log(t):-1/0,e=e>0?Math.log(e):1/0,e=Math.max(e,t),this.radius.bounds[0][0]=t,this.radius.bounds[1][0]=e},lP.getDistanceLimits=function(t){var e=this.radius.bounds;return t?(t[0]=Math.exp(e[0][0]),t[1]=Math.exp(e[1][0]),t):[Math.exp(e[0][0]),Math.exp(e[1][0])]},lP.toJSON=function(){return this.recalcMatrix(this.lastT()),{center:this.computedCenter.slice(),rotation:this.computedRotation.slice(),distance:Math.log(this.computedRadius[0]),zoomMin:this.radius.bounds[0][0],zoomMax:this.radius.bounds[1][0]}},lP.fromJSON=function(t){var e=this.lastT(),r=t.center;r&&this.center.set(e,r[0],r[1],r[2]);var n=t.rotation;n&&this.rotation.set(e,n[0],n[1],n[2],n[3]);var i=t.distance;i&&i>0&&this.radius.set(e,Math.log(i)),this.setDistanceLimits(t.zoomMin,t.zoomMax)};var uP=function(t,e,r,n){var i,a,o,s,l,u,c,h,f,p,d,g,v,m,y,x,b,_,w,M,A,k,T,S,E=n[0],C=n[1],L=n[2],z=Math.sqrt(E*E+C*C+L*L);if(Math.abs(z)<1e-6)return null;E*=z=1/z,C*=z,L*=z,i=Math.sin(r),a=Math.cos(r),o=1-a,s=e[0],l=e[1],u=e[2],c=e[3],h=e[4],f=e[5],p=e[6],d=e[7],g=e[8],v=e[9],m=e[10],y=e[11],x=E*E*o+a,b=C*E*o+L*i,_=L*E*o-C*i,w=E*C*o-L*i,M=C*C*o+a,A=L*C*o+E*i,k=E*L*o+C*i,T=C*L*o-E*i,S=L*L*o+a,t[0]=s*x+h*b+g*_,t[1]=l*x+f*b+v*_,t[2]=u*x+p*b+m*_,t[3]=c*x+d*b+y*_,t[4]=s*w+h*M+g*A,t[5]=l*w+f*M+v*A,t[6]=u*w+p*M+m*A,t[7]=c*w+d*M+y*A,t[8]=s*k+h*T+g*S,t[9]=l*k+f*T+v*S,t[10]=u*k+p*T+m*S,t[11]=c*k+d*T+y*S,e!==t&&(t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]);return t};var cP=function(t){var e=(t=t||{}).center||[0,0,0],r=t.up||[0,1,0],n=t.right||pP(r),i=t.radius||1,a=t.theta||0,o=t.phi||0;if(e=[].slice.call(e,0,3),r=[].slice.call(r,0,3),yz(r,r),n=[].slice.call(n,0,3),yz(n,n),"eye"in t){var s=t.eye,l=[s[0]-e[0],s[1]-e[1],s[2]-e[2]];Az(n,l,r),hP(n[0],n[1],n[2])<1e-6?n=pP(r):yz(n,n),i=hP(l[0],l[1],l[2]);var u=kz(r,l)/i,c=kz(n,l)/i;o=Math.acos(u),a=Math.acos(c)}return i=Math.log(i),new dP(t.zoomMin,t.zoomMax,e,r,n,i,a,o)};function hP(t,e,r){return Math.sqrt(Math.pow(t,2)+Math.pow(e,2)+Math.pow(r,2))}function fP(t){return Math.min(1,Math.max(-1,t))}function pP(t){var e=Math.abs(t[0]),r=Math.abs(t[1]),n=Math.abs(t[2]),i=[0,0,0];e>Math.max(r,n)?i[2]=1:r>Math.max(e,n)?i[0]=1:i[1]=1;for(var a=0,o=0,s=0;s<3;++s)a+=t[s]*t[s],o+=i[s]*t[s];for(s=0;s<3;++s)i[s]-=o/a*t[s];return yz(i,i),i}function dP(t,e,r,n,i,a,o,s){this.center=Kz(r),this.up=Kz(n),this.right=Kz(i),this.radius=Kz([a]),this.angle=Kz([o,s]),this.angle.bounds=[[-1/0,-Math.PI/2],[1/0,Math.PI/2]],this.setDistanceLimits(t,e),this.computedCenter=this.center.curve(0),this.computedUp=this.up.curve(0),this.computedRight=this.right.curve(0),this.computedRadius=this.radius.curve(0),this.computedAngle=this.angle.curve(0),this.computedToward=[0,0,0],this.computedEye=[0,0,0],this.computedMatrix=new Array(16);for(var l=0;l<16;++l)this.computedMatrix[l]=.5;this.recalcMatrix(0)}var gP=dP.prototype;gP.setDistanceLimits=function(t,e){t=t>0?Math.log(t):-1/0,e=e>0?Math.log(e):1/0,e=Math.max(e,t),this.radius.bounds[0][0]=t,this.radius.bounds[1][0]=e},gP.getDistanceLimits=function(t){var e=this.radius.bounds[0];return t?(t[0]=Math.exp(e[0][0]),t[1]=Math.exp(e[1][0]),t):[Math.exp(e[0][0]),Math.exp(e[1][0])]},gP.recalcMatrix=function(t){this.center.curve(t),this.up.curve(t),this.right.curve(t),this.radius.curve(t),this.angle.curve(t);for(var e=this.computedUp,r=this.computedRight,n=0,i=0,a=0;a<3;++a)i+=e[a]*r[a],n+=e[a]*e[a];var o=Math.sqrt(n),s=0;for(a=0;a<3;++a)r[a]-=e[a]*i/n,s+=r[a]*r[a],e[a]/=o;var l=Math.sqrt(s);for(a=0;a<3;++a)r[a]/=l;var u=this.computedToward;Az(u,e,r),yz(u,u);var c=Math.exp(this.computedRadius[0]),h=this.computedAngle[0],f=this.computedAngle[1],p=Math.cos(h),d=Math.sin(h),g=Math.cos(f),v=Math.sin(f),m=this.computedCenter,y=p*g,x=d*g,b=v,_=-p*v,w=-d*v,M=g,A=this.computedEye,k=this.computedMatrix;for(a=0;a<3;++a){var T=y*r[a]+x*u[a]+b*e[a];k[4*a+1]=_*r[a]+w*u[a]+M*e[a],k[4*a+2]=T,k[4*a+3]=0}var S=k[1],E=k[5],C=k[9],L=k[2],z=k[6],P=k[10],I=E*P-C*z,D=C*L-S*P,O=S*z-E*L,R=hP(I,D,O);I/=R,D/=R,O/=R,k[0]=I,k[4]=D,k[8]=O;for(a=0;a<3;++a)A[a]=m[a]+k[2+4*a]*c;for(a=0;a<3;++a){s=0;for(var F=0;F<3;++F)s+=k[a+4*F]*A[F];k[12+a]=-s}k[15]=1},gP.getMatrix=function(t,e){this.recalcMatrix(t);var r=this.computedMatrix;if(e){for(var n=0;n<16;++n)e[n]=r[n];return e}return r};var vP=[0,0,0];gP.rotate=function(t,e,r,n){if(this.angle.move(t,e,r),n){this.recalcMatrix(t);var i=this.computedMatrix;vP[0]=i[2],vP[1]=i[6],vP[2]=i[10];for(var a=this.computedUp,o=this.computedRight,s=this.computedToward,l=0;l<3;++l)i[4*l]=a[l],i[4*l+1]=o[l],i[4*l+2]=s[l];uP(i,i,n,vP);for(l=0;l<3;++l)a[l]=i[4*l],o[l]=i[4*l+1];this.up.set(t,a[0],a[1],a[2]),this.right.set(t,o[0],o[1],o[2])}},gP.pan=function(t,e,r,n){e=e||0,r=r||0,n=n||0,this.recalcMatrix(t);var i=this.computedMatrix,a=(Math.exp(this.computedRadius[0]),i[1]),o=i[5],s=i[9],l=hP(a,o,s);a/=l,o/=l,s/=l;var u=i[0],c=i[4],h=i[8],f=u*a+c*o+h*s,p=hP(u-=a*f,c-=o*f,h-=s*f),d=(u/=p)*e+a*r,g=(c/=p)*e+o*r,v=(h/=p)*e+s*r;this.center.move(t,d,g,v);var m=Math.exp(this.computedRadius[0]);m=Math.max(1e-4,m+n),this.radius.set(t,Math.log(m))},gP.translate=function(t,e,r,n){this.center.move(t,e||0,r||0,n||0)},gP.setMatrix=function(t,e,r,n){var i=1;"number"==typeof r&&(i=0|r),(i<0||i>3)&&(i=1);var a=(i+2)%3;e||(this.recalcMatrix(t),e=this.computedMatrix);var o=e[i],s=e[i+4],l=e[i+8];if(n){var u=Math.abs(o),c=Math.abs(s),h=Math.abs(l),f=Math.max(u,c,h);u===f?(o=o<0?-1:1,s=l=0):h===f?(l=l<0?-1:1,o=s=0):(s=s<0?-1:1,o=l=0)}else{var p=hP(o,s,l);o/=p,s/=p,l/=p}var d,g,v=e[a],m=e[a+4],y=e[a+8],x=v*o+m*s+y*l,b=hP(v-=o*x,m-=s*x,y-=l*x),_=s*(y/=b)-l*(m/=b),w=l*(v/=b)-o*y,M=o*m-s*v,A=hP(_,w,M);if(_/=A,w/=A,M/=A,this.center.jump(t,V,U,q),this.radius.idle(t),this.up.jump(t,o,s,l),this.right.jump(t,v,m,y),2===i){var k=e[1],T=e[5],S=e[9],E=k*v+T*m+S*y,C=k*_+T*w+S*M;d=I<0?-Math.PI/2:Math.PI/2,g=Math.atan2(C,E)}else{var L=e[2],z=e[6],P=e[10],I=L*o+z*s+P*l,D=L*v+z*m+P*y,O=L*_+z*w+P*M;d=Math.asin(fP(I)),g=Math.atan2(O,D)}this.angle.jump(t,g,d),this.recalcMatrix(t);var R=e[2],F=e[6],B=e[10],N=this.computedMatrix;cz(N,e);var j=N[15],V=N[12]/j,U=N[13]/j,q=N[14]/j,H=Math.exp(this.computedRadius[0]);this.center.jump(t,V-R*H,U-F*H,q-B*H)},gP.lastT=function(){return Math.max(this.center.lastT(),this.up.lastT(),this.right.lastT(),this.radius.lastT(),this.angle.lastT())},gP.idle=function(t){this.center.idle(t),this.up.idle(t),this.right.idle(t),this.radius.idle(t),this.angle.idle(t)},gP.flush=function(t){this.center.flush(t),this.up.flush(t),this.right.flush(t),this.radius.flush(t),this.angle.flush(t)},gP.setDistance=function(t,e){e>0&&this.radius.set(t,Math.log(e))},gP.lookAt=function(t,e,r,n){this.recalcMatrix(t),e=e||this.computedEye,r=r||this.computedCenter;var i=(n=n||this.computedUp)[0],a=n[1],o=n[2],s=hP(i,a,o);if(!(s<1e-6)){i/=s,a/=s,o/=s;var l=e[0]-r[0],u=e[1]-r[1],c=e[2]-r[2],h=hP(l,u,c);if(!(h<1e-6)){l/=h,u/=h,c/=h;var f=this.computedRight,p=f[0],d=f[1],g=f[2],v=i*p+a*d+o*g,m=hP(p-=v*i,d-=v*a,g-=v*o);if(!(m<.01&&(m=hP(p=a*c-o*u,d=o*l-i*c,g=i*u-a*l))<1e-6)){p/=m,d/=m,g/=m,this.up.set(t,i,a,o),this.right.set(t,p,d,g),this.center.set(t,r[0],r[1],r[2]),this.radius.set(t,Math.log(h));var y=a*g-o*d,x=o*p-i*g,b=i*d-a*p,_=hP(y,x,b),w=i*l+a*u+o*c,M=p*l+d*u+g*c,A=(y/=_)*l+(x/=_)*u+(b/=_)*c,k=Math.asin(fP(w)),T=Math.atan2(A,M),S=this.angle._state,E=S[S.length-1],C=S[S.length-2];E%=2*Math.PI;var L=Math.abs(E+2*Math.PI-T),z=Math.abs(E-T),P=Math.abs(E-2*Math.PI-T);LMath.abs(e))n.rotate(s,0,0,-t*i*Math.PI*l.rotateSpeed/window.innerWidth);else{var u=l.zoomSpeed*o*e/window.innerHeight*(s-n.lastT())/100;n.pan(s,0,0,a*(Math.exp(u)-1))}},!0),l};var wP=function(t,e,r){e?e.bind():t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,null);var n=0|t.getParameter(t.MAX_VERTEX_ATTRIBS);if(r){if(r.length>n)throw new Error("gl-vao: Too many vertex attributes");for(var i=0;i=0?e[a]:i})},has___:{value:y(function(e){var n=m(e);return n?r in n:t.indexOf(e)>=0})},set___:{value:y(function(n,i){var a,o=m(n);return o?o[r]=i:(a=t.indexOf(n))>=0?e[a]=i:(a=t.length,e[a]=i,t[a]=n),this})},delete___:{value:y(function(n){var i,a,o=m(n);return o?r in o&&delete o[r]:!((i=t.indexOf(n))<0||(a=t.length-1,t[i]=void 0,e[i]=e[a],t[i]=t[a],t.length=a,e.length=a,0))})}})};d.prototype=Object.create(Object.prototype,{get:{value:function(t,e){return this.get___(t,e)},writable:!0,configurable:!0},has:{value:function(t){return this.has___(t)},writable:!0,configurable:!0},set:{value:function(t,e){return this.set___(t,e)},writable:!0,configurable:!0},delete:{value:function(t){return this.delete___(t)},writable:!0,configurable:!0}}),"function"==typeof e?function(){function r(){this instanceof d||x();var r,n=new e,i=void 0,a=!1;return r=t?function(t,e){return n.set(t,e),n.has(t)||(i||(i=new d),i.set(t,e)),this}:function(t,e){if(a)try{n.set(t,e)}catch(r){i||(i=new d),i.set___(t,e)}else n.set(t,e);return this},Object.create(d.prototype,{get___:{value:y(function(t,e){return i?n.has(t)?n.get(t):i.get___(t,e):n.get(t,e)})},has___:{value:y(function(t){return n.has(t)||!!i&&i.has___(t)})},set___:{value:y(r)},delete___:{value:y(function(t){var e=!!n.delete(t);return i&&i.delete___(t)||e})},permitHostObjects___:{value:y(function(t){if(t!==g)throw new Error("bogus call to permitHostObjects___");a=!0})}})}t&&"undefined"!=typeof Proxy&&(Proxy=void 0),r.prototype=d.prototype,CP=r,Object.defineProperty(WeakMap.prototype,"constructor",{value:WeakMap,enumerable:!1,configurable:!0,writable:!0})}():("undefined"!=typeof Proxy&&(Proxy=void 0),CP=d)}function g(t){t.permitHostObjects___&&t.permitHostObjects___(g)}function v(t){return!(t.substr(0,s.length)==s&&"___"===t.substr(t.length-3))}function m(t){if(t!==Object(t))throw new TypeError("Not an object: "+t);var e=t[l];if(e&&e.key===t)return e;if(o(t)){e={key:t};try{return a(t,l,{value:e,writable:!1,enumerable:!1,configurable:!1}),e}catch(t){return}}}function y(t){return t.prototype=null,Object.freeze(t)}function x(){f||"undefined"==typeof console||(f=!0,console.warn("WeakMap should be invoked as new WeakMap(), not WeakMap(). This will be an error in the future."))}}();var LP=new("undefined"==typeof WeakMap?CP:WeakMap);var zP=function(t){var e=LP.get(t),r=e&&(e._triangleBuffer.handle||e._triangleBuffer.buffer);if(!r||!t.isBuffer(r)){var n=S_(t,new Float32Array([-1,-1,-1,4,4,-1]));(e=EP(t,[{buffer:n,type:t.FLOAT,size:2}]))._triangleBuffer=n,LP.set(t,e)}e.bind(),t.drawArrays(t.TRIANGLES,0,3),e.unbind()},PP={},IP=E_(["#define GLSLIFY 1\nattribute vec3 position;\n\nuniform mat4 model, view, projection;\nuniform vec3 offset, majorAxis, minorAxis, screenAxis;\nuniform float lineWidth;\nuniform vec2 screenShape;\n\nvec3 project(vec3 p) {\n vec4 pp = projection * view * model * vec4(p, 1.0);\n return pp.xyz / max(pp.w, 0.0001);\n}\n\nvoid main() {\n vec3 major = position.x * majorAxis;\n vec3 minor = position.y * minorAxis;\n\n vec3 vPosition = major + minor + offset;\n vec3 pPosition = project(vPosition);\n vec3 offset = project(vPosition + screenAxis * position.z);\n\n vec2 screen = normalize((offset - pPosition).xy * screenShape) / screenShape;\n\n gl_Position = vec4(pPosition + vec3(0.5 * screen * lineWidth, 0), 1.0);\n}\n"]),DP=E_(["precision mediump float;\n#define GLSLIFY 1\nuniform vec4 color;\nvoid main() {\n gl_FragColor = color;\n}"]);PP.line=function(t){return Bw(t,IP,DP,null,[{name:"position",type:"vec3"}])};var OP=E_(["#define GLSLIFY 1\nattribute vec3 position;\n\nuniform mat4 model, view, projection;\nuniform vec3 offset, axis;\nuniform float scale, angle, pixelScale;\nuniform vec2 resolution;\n\nvoid main() { \n //Compute plane offset\n vec2 planeCoord = position.xy * pixelScale;\n mat2 planeXform = scale * mat2(cos(angle), sin(angle),\n -sin(angle), cos(angle));\n vec2 viewOffset = 2.0 * planeXform * planeCoord / resolution;\n\n //Compute world offset\n float axisDistance = position.z;\n vec3 dataPosition = axisDistance * axis + offset;\n vec4 worldPosition = model * vec4(dataPosition, 1);\n \n //Compute clip position\n vec4 viewPosition = view * worldPosition;\n vec4 clipPosition = projection * viewPosition;\n clipPosition /= clipPosition.w;\n\n //Apply text offset in clip coordinates\n clipPosition += vec4(viewOffset, 0, 0);\n\n //Done\n gl_Position = clipPosition;\n}"]),RP=E_(["precision mediump float;\n#define GLSLIFY 1\nuniform vec4 color;\nvoid main() {\n gl_FragColor = color;\n}"]);PP.text=function(t){return Bw(t,OP,RP,null,[{name:"position",type:"vec3"}])};var FP=E_(["#define GLSLIFY 1\nattribute vec3 position;\nattribute vec3 normal;\n\nuniform mat4 model, view, projection;\nuniform vec3 enable;\nuniform vec3 bounds[2];\n\nvarying vec3 colorChannel;\n\nvoid main() {\n if(dot(normal, enable) > 0.0) {\n vec3 nPosition = mix(bounds[0], bounds[1], 0.5 * (position + 1.0));\n gl_Position = projection * view * model * vec4(nPosition, 1.0);\n } else {\n gl_Position = vec4(0,0,0,0);\n }\n colorChannel = abs(normal);\n}"]),BP=E_(["precision mediump float;\n#define GLSLIFY 1\n\nuniform vec4 colors[3];\n\nvarying vec3 colorChannel;\n\nvoid main() {\n gl_FragColor = colorChannel.x * colors[0] + \n colorChannel.y * colors[1] +\n colorChannel.z * colors[2];\n}"]);PP.bg=function(t){return Bw(t,FP,BP,null,[{name:"position",type:"vec3"},{name:"normal",type:"vec3"}])};var NP=function(t){for(var e=[],r=[],n=0,i=0;i<3;++i)for(var a=(i+1)%3,o=(i+2)%3,s=[0,0,0],l=[0,0,0],u=-1;u<=1;u+=2){r.push(n,n+2,n+1,n+1,n+2,n+3),s[i]=u,l[i]=u;for(var c=-1;c<=1;c+=2){s[a]=c;for(var h=-1;h<=1;h+=2)s[o]=h,e.push(s[0],s[1],s[2],l[0],l[1],l[2]),n+=1}var f=a;a=o,o=f}var p=S_(t,new Float32Array(e)),d=S_(t,new Uint16Array(r),t.ELEMENT_ARRAY_BUFFER),g=EP(t,[{buffer:p,type:t.FLOAT,size:3,offset:0,stride:24},{buffer:p,type:t.FLOAT,size:3,offset:12,stride:24}],d),v=jP(t);return v.attributes.position.location=0,v.attributes.normal.location=1,new VP(t,p,g,v)},jP=PP.bg;function VP(t,e,r,n){this.gl=t,this.buffer=e,this.vao=r,this.shader=n}var UP=VP.prototype;UP.draw=function(t,e,r,n,i,a){for(var o=!1,s=0;s<3;++s)o=o||i[s];if(o){var l=this.gl;l.enable(l.POLYGON_OFFSET_FILL),l.polygonOffset(1,2),this.shader.bind(),this.shader.uniforms={model:t,view:e,projection:r,bounds:n,enable:i,colors:a},this.vao.bind(),this.vao.draw(this.gl.TRIANGLES,36),this.vao.unbind(),l.disable(l.POLYGON_OFFSET_FILL)}},UP.dispose=function(){this.vao.dispose(),this.buffer.dispose(),this.shader.dispose()};var qP=function(t,e){for(var r=cM(t[0],e[0]),n=1;n1&&(i=1);for(var a=1-i,o=t.length,s=new Array(o),l=0;l0||i>0&&l<0){var u=WP(a,l,o,i);r.push(u),n.push(u.slice())}l<0?n.push(o.slice()):l>0?r.push(o.slice()):(r.push(o.slice()),n.push(o.slice())),i=l}return{positive:r,negative:n}}).positive=function(t,e){for(var r=[],n=GP(t[t.length-1],e),i=t[t.length-1],a=t[0],o=0;o0||n>0&&s<0)&&r.push(WP(i,s,a,n)),s>=0&&r.push(a.slice()),n=s}return r},HP.negative=function(t,e){for(var r=[],n=GP(t[t.length-1],e),i=t[t.length-1],a=t[0],o=0;o0||n>0&&s<0)&&r.push(WP(i,s,a,n)),s<=0&&r.push(a.slice()),n=s}return r};var YP=function(t,e,r,n){Dz(XP,e,t),Dz(XP,r,XP);for(var i=0,a=0;a<2;++a){KP[2]=n[a][2];for(var o=0;o<2;++o){KP[1]=n[o][1];for(var s=0;s<2;++s)KP[0]=n[s][0],$P(ZP[i],KP,XP),i+=1}}for(var l=-1,a=0;a<8;++a){for(var u=ZP[a][3],c=0;c<3;++c)JP[a][c]=ZP[a][c]/u;u<0&&(l<0?l=a:JP[a][2]d&&(l|=1<d&&(l|=1<JP[a][1]&&(w=a));for(var M=-1,a=0;a<3;++a){var A=w^1<JP[k][0]&&(k=A)}}var T=rI;T[0]=T[1]=T[2]=0,T[Mb.log2(M^w)]=w&M,T[Mb.log2(w^k)]=w&k;var S=7^k;S===l||S===_?(S=7^M,T[Mb.log2(k^S)]=S&k):T[Mb.log2(M^S)]=S&M;for(var E=nI,C=l,h=0;h<3;++h)E[h]=C&1<=0;--d){var g=u[p[d]];o.push(l*g[0],-l*g[1],t)}}for(var l=[0,0,0],u=[0,0,0],c=[0,0,0],h=[0,0,0],f=0;f<3;++f){c[f]=o.length/3|0,s(.5*(t[0][f]+t[1][f]),e[f],r),h[f]=(o.length/3|0)-c[f],l[f]=o.length/3|0;for(var p=0;p=0&&(i=r.length-n-1);var a=Math.pow(10,i),o=Math.round(t*e*a),s=o+"";if(s.indexOf("e")>=0)return s;var l=o/a,u=o%a;o<0?(l=0|-Math.ceil(l),u=0|-u):(l=0|Math.floor(l),u|=0);var c=""+l;if(o<0&&(c="-"+c),i){for(var h=""+u;h.length=t[0][n];--a)i.push({x:a*e[n],text:yI(e[n],a)});r.push(i)}return r},mI.equal=function(t,e){for(var r=0;r<3;++r){if(t[r].length!==e[r].length)return!1;for(var n=0;n0?(p[c]=-1,d[c]=0):(p[c]=0,d[c]=1)}}var SI=[0,0,0],EI={model:bI,view:bI,projection:bI};MI.isOpaque=function(){return!0},MI.isTransparent=function(){return!1},MI.drawTransparent=function(t){};var CI=[0,0,0],LI=[0,0,0],zI=[0,0,0];MI.draw=function(t){t=t||EI;for(var e=this.gl,r=t.model||bI,n=t.view||bI,i=t.projection||bI,a=this.bounds,o=YP(r,n,i,a),s=o.cubeEdges,l=o.axis,u=n[12],c=n[13],h=n[14],f=n[15],p=this.pixelRatio*(i[3]*u+i[7]*c+i[11]*h+i[15]*f)/e.drawingBufferHeight,d=0;d<3;++d)this.lastCubeProps.cubeEdges[d]=s[d],this.lastCubeProps.axis[d]=l[d];var g=kI;for(d=0;d<3;++d)TI(kI[d],d,this.bounds,s,l);e=this.gl;var v=SI;for(d=0;d<3;++d)this.backgroundEnable[d]?v[d]=l[d]:v[d]=0;this._background.draw(r,n,i,a,v,this.backgroundColor),this._lines.bind(r,n,i,this);for(d=0;d<3;++d){var m=[0,0,0];l[d]>0?m[d]=a[1][d]:m[d]=a[0][d];for(var y=0;y<2;++y){var x=(d+1+y)%3,b=(d+1+(1^y))%3;this.gridEnable[x]&&this._lines.drawGrid(x,b,this.bounds,m,this.gridColor[x],this.gridWidth[x]*this.pixelRatio)}for(y=0;y<2;++y){x=(d+1+y)%3,b=(d+1+(1^y))%3;this.zeroEnable[b]&&a[0][b]<=0&&a[1][b]>=0&&this._lines.drawZero(x,b,this.bounds,m,this.zeroLineColor[b],this.zeroLineWidth[b]*this.pixelRatio)}}for(d=0;d<3;++d){this.lineEnable[d]&&this._lines.drawAxisLine(d,this.bounds,g[d].primalOffset,this.lineColor[d],this.lineWidth[d]*this.pixelRatio),this.lineMirror[d]&&this._lines.drawAxisLine(d,this.bounds,g[d].mirrorOffset,this.lineColor[d],this.lineWidth[d]*this.pixelRatio);var _=_I(CI,g[d].primalMinor),w=_I(LI,g[d].mirrorMinor),M=this.lineTickLength;for(y=0;y<3;++y){var A=p/r[5*y];_[y]*=M[y]*A,w[y]*=M[y]*A}this.lineTickEnable[d]&&this._lines.drawAxisTicks(d,g[d].primalOffset,_,this.lineTickColor[d],this.lineTickWidth[d]*this.pixelRatio),this.lineTickMirror[d]&&this._lines.drawAxisTicks(d,g[d].mirrorOffset,w,this.lineTickColor[d],this.lineTickWidth[d]*this.pixelRatio)}this._lines.unbind(),this._text.bind(r,n,i,this.pixelRatio);for(d=0;d<3;++d){var k=g[d].primalMinor,T=_I(zI,g[d].primalOffset);for(y=0;y<3;++y)this.lineTickEnable[d]&&(T[y]+=p*k[y]*Math.max(this.lineTickLength[y],0)/r[5*y]);if(this.tickEnable[d]){for(y=0;y<3;++y)T[y]+=p*k[y]*this.tickPad[y]/r[5*y];this._text.drawTicks(d,this.tickSize[d],this.tickAngle[d],T,this.tickColor[d])}if(this.labelEnable[d]){for(y=0;y<3;++y)T[y]+=p*k[y]*this.labelPad[y]/r[5*y];T[d]+=.5*(a[0][d]+a[1][d]),this._text.drawLabel(d,this.labelSize[d],this.labelAngle[d],T,this.labelColor[d])}}this._text.unbind()},MI.dispose=function(){this._text.dispose(),this._lines.dispose(),this._background.dispose(),this._lines=null,this._text=null,this._background=null,this.gl=null};var PI=function(t,e,r){var n=e||0,i=r||1;return[[t[12]+t[0],t[13]+t[1],t[14]+t[2],t[15]+t[3]],[t[12]-t[0],t[13]-t[1],t[14]-t[2],t[15]-t[3]],[t[12]+t[4],t[13]+t[5],t[14]+t[6],t[15]+t[7]],[t[12]-t[4],t[13]-t[5],t[14]-t[6],t[15]-t[7]],[n*t[12]+t[8],n*t[13]+t[9],n*t[14]+t[10],n*t[15]+t[11]],[i*t[12]-t[8],i*t[13]-t[9],i*t[14]-t[10],i*t[15]-t[11]]]};var II=function(t,e,r){var n=e[0],i=e[1],a=e[2],o=e[3];return t[0]=r[0]*n+r[4]*i+r[8]*a+r[12]*o,t[1]=r[1]*n+r[5]*i+r[9]*a+r[13]*o,t[2]=r[2]*n+r[6]*i+r[10]*a+r[14]*o,t[3]=r[3]*n+r[7]*i+r[11]*a+r[15]*o,t};var DI=function(t,e,r,n,i){var a=e.model||OI,o=e.view||OI,s=e.projection||OI,l=t.bounds,u=(i=i||YP(a,o,s,l)).axis;i.edges;Dz(RI,o,a),Dz(RI,s,RI);for(var c=VI,h=0;h<3;++h)c[h].lo=1/0,c[h].hi=-1/0,c[h].pixelsPerDataUnit=1/0;var f=PI(Mz(RI,RI));Mz(RI,RI);for(var p=0;p<3;++p){var d=(p+1)%3,g=(p+2)%3,v=UI;t:for(var h=0;h<2;++h){var m=[];if(u[p]<0!=!!h){v[p]=l[h][p];for(var y=0;y<2;++y){v[d]=l[y^h][d];for(var x=0;x<2;++x)v[g]=l[x^y^h][g],m.push(v.slice())}for(var y=0;y0&&0===v[e-1];)v.pop(),m.pop().dispose()}window.addEventListener("resize",T),A.update=function(t){e||(t=t||{},y=!0,x=!0)},A.add=function(t){e||(t.axes=h,d.push(t),g.push(-1),y=!0,x=!0,S())},A.remove=function(t){if(!e){var r=d.indexOf(t);r<0||(d.splice(r,1),g.pop(),y=!0,x=!0,S())}},A.dispose=function(){if(!e&&(e=!0,window.removeEventListener("resize",T),r.removeEventListener("webglcontextlost",L),A.mouseListener.enabled=!1,!A.contextLost)){h.dispose(),p.dispose();for(var t=0;to.distance)continue;for(var h=0;h0){r=Math.round(Math.pow(10,e));return Math.ceil(t/r)*r}return Math.ceil(t)}function oD(t){return"boolean"!=typeof t||t}var sD=function(t,e){t=t||document.body,e=e||{};var r=[.01,1/0];"distanceLimits"in e&&(r[0]=e.distanceLimits[0],r[1]=e.distanceLimits[1]);"zoomMin"in e&&(r[0]=e.zoomMin);"zoomMax"in e&&(r[1]=e.zoomMax);var n=mP({center:e.center||[0,0,0],up:e.up||[0,1,0],eye:e.eye||[0,0,10],mode:e.mode||"orbit",distanceLimits:r}),i=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],a=0,o=t.clientWidth,s=t.clientHeight,l={keyBindingMode:"rotate",view:n,element:t,delay:e.delay||16,rotateSpeed:e.rotateSpeed||1,zoomSpeed:e.zoomSpeed||1,translateSpeed:e.translateSpeed||1,flipX:!!e.flipX,flipY:!!e.flipY,modes:n.modes,tick:function(){var e=bP(),r=this.delay,l=e-2*r;n.idle(e-r),n.recalcMatrix(l),n.flush(e-(100+2*r));for(var u=!0,c=n.computedMatrix,h=0;h<16;++h)u=u&&i[h]===c[h],i[h]=c[h];var f=t.clientWidth===o&&t.clientHeight===s;return o=t.clientWidth,s=t.clientHeight,u?!f:(a=Math.exp(n.computedRadius[0]),!0)},lookAt:function(t,e,r){n.lookAt(n.lastT(),t,e,r)},rotate:function(t,e,r){n.rotate(n.lastT(),t,e,r)},pan:function(t,e,r){n.pan(n.lastT(),t,e,r)},translate:function(t,e,r){n.translate(n.lastT(),t,e,r)}};Object.defineProperties(l,{matrix:{get:function(){return n.computedMatrix},set:function(t){return n.setMatrix(n.lastT(),t),n.computedMatrix},enumerable:!0},mode:{get:function(){return n.getMode()},set:function(t){var e=n.computedUp.slice(),r=n.computedEye.slice(),i=n.computedCenter.slice();if(n.setMode(t),"turntable"===t){var a=bP();n._active.lookAt(a,r,i,e),n._active.lookAt(a+500,r,i,[0,0,1]),n._active.flush(a)}return n.getMode()},enumerable:!0},center:{get:function(){return n.computedCenter},set:function(t){return n.lookAt(n.lastT(),null,t),n.computedCenter},enumerable:!0},eye:{get:function(){return n.computedEye},set:function(t){return n.lookAt(n.lastT(),t),n.computedEye},enumerable:!0},up:{get:function(){return n.computedUp},set:function(t){return n.lookAt(n.lastT(),null,null,t),n.computedUp},enumerable:!0},distance:{get:function(){return a},set:function(t){return n.setDistance(n.lastT(),t),t},enumerable:!0},distanceLimits:{get:function(){return n.getDistanceLimits(r)},set:function(t){return n.setDistanceLimits(t),t},enumerable:!0}}),t.addEventListener("contextmenu",function(t){return t.preventDefault(),!1});var u=0,c=0,h={shift:!1,control:!1,alt:!1,meta:!1};function f(e,r,i,o){var s=l.keyBindingMode;if(!1!==s){var f="rotate"===s,p="pan"===s,d="zoom"===s,g=!!o.control,v=!!o.alt,m=!!o.shift,y=!!(1&e),x=!!(2&e),b=!!(4&e),_=1/t.clientHeight,w=_*(r-u),M=_*(i-c),A=l.flipX?1:-1,k=l.flipY?1:-1,T=bP(),S=Math.PI*l.rotateSpeed;if((f&&y&&!g&&!v&&!m||y&&!g&&!v&&m)&&n.rotate(T,A*S*w,-k*S*M,0),(p&&y&&!g&&!v&&!m||x||y&&g&&!v&&!m)&&n.pan(T,-l.translateSpeed*w*a,l.translateSpeed*M*a,0),d&&y&&!g&&!v&&!m||b||y&&!g&&v&&!m){var E=-l.zoomSpeed*M/window.innerHeight*(T-n.lastT())*100;n.pan(T,0,0,a*(Math.exp(E)-1))}return u=r,c=i,h=o,!0}}return l.mouseListener=CC(t,f),t.addEventListener("touchstart",function(e){var r=La(e.changedTouches[0],t);f(0,r[0],r[1],h),f(1,r[0],r[1],h),e.preventDefault()},!!Ea&&{passive:!1}),t.addEventListener("touchmove",function(e){var r=La(e.changedTouches[0],t);f(1,r[0],r[1],h),e.preventDefault()},!!Ea&&{passive:!1}),t.addEventListener("touchend",function(t){f(0,u,c,h),t.preventDefault()},!!Ea&&{passive:!1}),l.wheelListener=OC(t,function(t,e){if(!1!==l.keyBindingMode){var r=l.flipX?1:-1,i=l.flipY?1:-1,o=bP();if(Math.abs(t)>Math.abs(e))n.rotate(o,0,0,-t*r*Math.PI*l.rotateSpeed/window.innerWidth);else{var s=-l.zoomSpeed*i*e/window.innerHeight*(o-n.lastT())/20;n.pan(o,0,0,a*(Math.exp(s)-1))}}},!0),l};var lD=["xaxis","yaxis","zaxis"];function uD(){this.bounds=[[-10,-10,-10],[10,10,10]],this.ticks=[[],[],[]],this.tickEnable=[!0,!0,!0],this.tickFont=["sans-serif","sans-serif","sans-serif"],this.tickSize=[12,12,12],this.tickAngle=[0,0,0],this.tickColor=[[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.tickPad=[18,18,18],this.labels=["x","y","z"],this.labelEnable=[!0,!0,!0],this.labelFont=["Open Sans","Open Sans","Open Sans"],this.labelSize=[20,20,20],this.labelAngle=[0,0,0],this.labelColor=[[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.labelPad=[30,30,30],this.lineEnable=[!0,!0,!0],this.lineMirror=[!1,!1,!1],this.lineWidth=[1,1,1],this.lineColor=[[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.lineTickEnable=[!0,!0,!0],this.lineTickMirror=[!1,!1,!1],this.lineTickLength=[10,10,10],this.lineTickWidth=[1,1,1],this.lineTickColor=[[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.gridEnable=[!0,!0,!0],this.gridWidth=[1,1,1],this.gridColor=[[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.zeroEnable=[!0,!0,!0],this.zeroLineColor=[[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.zeroLineWidth=[2,2,2],this.backgroundEnable=[!0,!0,!0],this.backgroundColor=[[.8,.8,.8,.5],[.8,.8,.8,.5],[.8,.8,.8,.5]],this._defaultTickPad=this.tickPad.slice(),this._defaultLabelPad=this.labelPad.slice(),this._defaultLineTickLength=this.lineTickLength.slice()}uD.prototype.merge=function(t){for(var e=0;e<3;++e){var r=t[lD[e]];r.visible?(this.labels[e]=AC(r.title),"titlefont"in r&&(r.titlefont.color&&(this.labelColor[e]=WC(r.titlefont.color)),r.titlefont.family&&(this.labelFont[e]=r.titlefont.family),r.titlefont.size&&(this.labelSize[e]=r.titlefont.size)),"showline"in r&&(this.lineEnable[e]=r.showline),"linecolor"in r&&(this.lineColor[e]=WC(r.linecolor)),"linewidth"in r&&(this.lineWidth[e]=r.linewidth),"showgrid"in r&&(this.gridEnable[e]=r.showgrid),"gridcolor"in r&&(this.gridColor[e]=WC(r.gridcolor)),"gridwidth"in r&&(this.gridWidth[e]=r.gridwidth),"log"===r.type?this.zeroEnable[e]=!1:"zeroline"in r&&(this.zeroEnable[e]=r.zeroline),"zerolinecolor"in r&&(this.zeroLineColor[e]=WC(r.zerolinecolor)),"zerolinewidth"in r&&(this.zeroLineWidth[e]=r.zerolinewidth),"ticks"in r&&r.ticks?this.lineTickEnable[e]=!0:this.lineTickEnable[e]=!1,"ticklen"in r&&(this.lineTickLength[e]=this._defaultLineTickLength[e]=r.ticklen),"tickcolor"in r&&(this.lineTickColor[e]=WC(r.tickcolor)),"tickwidth"in r&&(this.lineTickWidth[e]=r.tickwidth),"tickangle"in r&&(this.tickAngle[e]="auto"===r.tickangle?0:Math.PI*-r.tickangle/180),"showticklabels"in r&&(this.tickEnable[e]=r.showticklabels),"tickfont"in r&&(r.tickfont.color&&(this.tickColor[e]=WC(r.tickfont.color)),r.tickfont.family&&(this.tickFont[e]=r.tickfont.family),r.tickfont.size&&(this.tickSize[e]=r.tickfont.size)),"mirror"in r?-1!==["ticks","all","allticks"].indexOf(r.mirror)?(this.lineTickMirror[e]=!0,this.lineMirror[e]=!0):!0===r.mirror?(this.lineTickMirror[e]=!1,this.lineMirror[e]=!0):(this.lineTickMirror[e]=!1,this.lineMirror[e]=!1):this.lineMirror[e]=!1,"showbackground"in r&&!1!==r.showbackground?(this.backgroundEnable[e]=!0,this.backgroundColor[e]=WC(r.backgroundcolor)):this.backgroundEnable[e]=!1):(this.tickEnable[e]=!1,this.labelEnable[e]=!1,this.lineEnable[e]=!1,this.lineTickEnable[e]=!1,this.gridEnable[e]=!1,this.zeroEnable[e]=!1,this.backgroundEnable[e]=!1)}};var cD=function(t){var e=new uD;return e.merge(t),e},hD=["xaxis","yaxis","zaxis"];function fD(){this.enabled=[!0,!0,!0],this.colors=[[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.drawSides=[!0,!0,!0],this.lineWidth=[1,1,1]}fD.prototype.merge=function(t){for(var e=0;e<3;++e){var r=t[hD[e]];r.visible?(this.enabled[e]=r.showspikes,this.colors[e]=WC(r.spikecolor),this.drawSides[e]=r.spikesides,this.lineWidth[e]=r.spikethickness):(this.enabled[e]=!1,this.drawSides[e]=!1)}};var pD,dD,gD=function(t){var e=new fD;return e.merge(t),e},vD=function(t){for(var e=t.axesOptions,r=t.glplot.axesPixels,n=t.fullSceneLayout,i=[[],[],[]],a=0;a<3;++a){var o=n[mD[a]];if(o._length=(r[a].hi-r[a].lo)*r[a].pixelsPerDataUnit/t.dataScale[a],Math.abs(o._length)===1/0)i[a]=[];else{o._input_range=o.range.slice(),o.range[0]=r[a].lo/t.dataScale[a],o.range[1]=r[a].hi/t.dataScale[a],o._m=1/(t.dataScale[a]*r[a].pixelsPerDataUnit),o.range[0]===o.range[1]&&(o.range[0]-=1,o.range[1]+=1);var s=o.tickmode;if("auto"===o.tickmode){o.tickmode="linear";var l=o.nticks||ne.constrain(o._length/40,4,9);ri.autoTicks(o,Math.abs(o.range[1]-o.range[0])/l)}for(var u=ri.calcTicks(o),c=0;ch[1][o]?f[o]=1:h[1][o]===h[0][o]?f[o]=1:f[o]=1/(h[1][o]-h[0][o]);for(this.dataScale=f,this.convertAnnotations(this),a=0;ad[1][a])d[0][a]=-1,d[1][a]=1;else{var M=d[1][a]-d[0][a];d[0][a]-=M/32,d[1][a]+=M/32}}else{var A=s.range;d[0][a]=s.r2l(A[0]),d[1][a]=s.r2l(A[1])}d[0][a]===d[1][a]&&(d[0][a]-=1,d[1][a]+=1),g[a]=d[1][a]-d[0][a],this.glplot.bounds[0][a]=d[0][a]*f[a],this.glplot.bounds[1][a]=d[1][a]*f[a]}var k=[1,1,1];for(a=0;a<3;++a){var T=v[l=(s=u[wD[a]]).type];k[a]=Math.pow(T.acc,1/T.count)/f[a]}var S;if("auto"===u.aspectmode)S=Math.max.apply(null,k)/Math.min.apply(null,k)<=4?k:[1,1,1];else if("cube"===u.aspectmode)S=[1,1,1];else if("data"===u.aspectmode)S=k;else{if("manual"!==u.aspectmode)throw new Error("scene.js aspectRatio was not one of the enumerated types");var E=u.aspectratio;S=[E.x,E.y,E.z]}u.aspectratio.x=c.aspectratio.x=S[0],u.aspectratio.y=c.aspectratio.y=S[1],u.aspectratio.z=c.aspectratio.z=S[2],this.glplot.aspect=S;var C=u.domain||null,L=e._size||null;if(C&&L){var z=this.container.style;z.position="absolute",z.left=L.l+C.x[0]*L.w+"px",z.top=L.t+(1-C.y[1])*L.h+"px",z.width=L.w*(C.x[1]-C.x[0])+"px",z.height=L.h*(C.y[1]-C.y[0])+"px"}this.glplot.redraw()}},_D.destroy=function(){this.glplot&&(this.camera.mouseListener.enabled=!1,this.container.removeEventListener("wheel",this.camera.wheelListener),this.camera=this.glplot.camera=null,this.glplot.dispose(),this.container.parentNode.removeChild(this.container),this.glplot=null)},_D.getCamera=function(){return this.glplot.camera.view.recalcMatrix(this.camera.view.lastT()),kD(this.glplot.camera)},_D.setCamera=function(t){var e;this.glplot.camera.lookAt.apply(this,[[(e=t).eye.x,e.eye.y,e.eye.z],[e.center.x,e.center.y,e.center.z],[e.up.x,e.up.y,e.up.z]])},_D.saveCamera=function(t){var e=this.getCamera(),r=ne.nestedProperty(t,this.id+".camera"),n=r.get(),i=!1;function a(t,e,r,n){var i=["up","center","eye"],a=["x","y","z"];return e[i[r]]&&t[i[r]][a[n]]===e[i[r]][a[n]]}if(void 0===n)i=!0;else for(var o=0;o<3;o++)for(var s=0;s<3;s++)if(!a(e,n,o,s)){i=!0;break}return i&&r.set(e),i},_D.updateFx=function(t,e){var r=this.camera;r&&("orbit"===t?(r.mode="orbit",r.keyBindingMode="rotate"):"turntable"===t?(r.up=[0,0,1],r.mode="turntable",r.keyBindingMode="rotate"):r.keyBindingMode=t),this.fullSceneLayout.hovermode=e},_D.toImage=function(t){t||(t="png"),this.staticMode&&this.container.appendChild(pD),this.glplot.redraw();var e=this.glplot.gl,r=e.drawingBufferWidth,n=e.drawingBufferHeight;e.bindFramebuffer(e.FRAMEBUFFER,null);var i=new Uint8Array(r*n*4);e.readPixels(0,0,r,n,e.RGBA,e.UNSIGNED_BYTE,i);for(var a=0,o=n-1;a1;Jc(t,e,0,{type:"gl3d",attributes:lz,handleDefaults:uz,fullLayout:e,font:e.font,fullData:r,getDfltFromLayout:function(e){if(!n)return ne.validate(t[e],lz[e])?t[e]:void 0},paper_bgcolor:e.paper_bgcolor,calendar:e.calendar})},SD.plot=function(t){for(var e=t._fullLayout,r=t._fullData,n=e._subplots.gl3d,i=0;i=0;--i){var a=r,o=t[i],s=(r=a+o)-a,l=o-s;l&&(t[--n]=r,r=l)}for(var u=0,i=n;i>1;return["sum(",t(e.slice(0,r)),",",t(e.slice(r)),")"].join("")}(e);var n}function UD(t){return new Function("sum","scale","prod","compress",["function robustDeterminant",t,"(m){return compress(",VD(function(t){for(var e=new Array(t),r=0;r0&&r.push(","),r.push("[");for(var a=0;a0&&r.push(","),a===n?r.push("+b[",i,"]"):r.push("+A[",i,"][",a,"]");r.push("]")}r.push("]),")}r.push("det(A)]}return ",e);var o=new Function("det",r.join(""));return o(t<6?BD[t]:BD)}var YD=[function(){return[0]},function(t,e){return[[e[0]],[t[0][0]]]}];function XD(t,e){for(var r=0,n=t.length,i=0;i0&&e.push(","),e.push("tuple[",r,"]");e.push(")}return orient");var n=new Function("test",e.join("")),i=PM[t+1];return i||(i=PM),n(i)}(t)),this.orient=i}var oO=aO.prototype;oO.handleBoundaryDegeneracy=function(t,e){var r=this.dimension,n=this.vertices.length-1,i=this.tuple,a=this.vertices,o=[t];for(t.lastVisited=-n;o.length>0;){(t=o.pop()).vertices;for(var s=t.adjacent,l=0;l<=r;++l){var u=s[l];if(u.boundary&&!(u.lastVisited<=-n)){for(var c=u.vertices,h=0;h<=r;++h){var f=c[h];i[h]=f<0?e:a[f]}var p=this.orient();if(p>0)return u;u.lastVisited=-n,0===p&&o.push(u)}}}return null},oO.walk=function(t,e){var r=this.vertices.length-1,n=this.dimension,i=this.vertices,a=this.tuple,o=e?this.interior.length*Math.random()|0:this.interior.length-1,s=this.interior[o];t:for(;!s.boundary;){for(var l=s.vertices,u=s.adjacent,c=0;c<=n;++c)a[c]=i[l[c]];s.lastVisited=r;for(c=0;c<=n;++c){var h=u[c];if(!(h.lastVisited>=r)){var f=a[c];a[c]=t;var p=this.orient();if(a[c]=f,p<0){s=h;continue t}h.boundary?h.lastVisited=-r:h.lastVisited=r}}return}return s},oO.addPeaks=function(t,e){var r=this.vertices.length-1,n=this.dimension,i=this.vertices,a=this.tuple,o=this.interior,s=this.simplices,l=[e];e.lastVisited=r,e.vertices[e.vertices.indexOf(-1)]=r,e.boundary=!1,o.push(e);for(var u=[];l.length>0;){var c=(e=l.pop()).vertices,h=e.adjacent,f=c.indexOf(r);if(!(f<0))for(var p=0;p<=n;++p)if(p!==f){var d=h[p];if(d.boundary&&!(d.lastVisited>=r)){var g=d.vertices;if(d.lastVisited!==-r){for(var v=0,m=0;m<=n;++m)g[m]<0?(v=m,a[m]=t):a[m]=i[g[m]];if(this.orient()>0){g[v]=r,d.boundary=!1,o.push(d),l.push(d),d.lastVisited=r;continue}d.lastVisited=-r}var y=d.adjacent,x=c.slice(),b=h.slice(),_=new eO(x,b,!0);s.push(_);var w=y.indexOf(e);if(!(w<0)){y[w]=_,b[f]=d,x[p]=-1,b[p]=e,h[p]=_,_.flip();for(m=0;m<=n;++m){var M=x[m];if(!(M<0||M===r)){for(var A=new Array(n-1),k=0,T=0;T<=n;++T){var S=x[T];S<0||T===m||(A[k++]=S)}u.push(new rO(A,_,m))}}}}}}u.sort(nO);for(p=0;p+1=0?o[l++]=s[c]:u=1&c;if(u===(1&t)){var h=o[0];o[0]=o[1],o[1]=h}e.push(o)}}return e};var sO=function(t,e){var r=t.length;if(0===r)return[];var n=t[0].length;if(n<1)return[];if(1===n)return function(t,e,r){if(1===t)return r?[[-1,0]]:[];var n=e.map(function(t,e){return[t[0],e]});n.sort(function(t,e){return t[0]-e[0]});for(var i=new Array(t-1),a=1;a=2)return!1;t[r]=i}return!0}):m.filter(function(t){for(var e=0;e<=n;++e){var r=p[t[e]];if(r<0)return!1;t[e]=r}return!0});if(1&n)for(var o=0;o0){var o=t[r-1];if(0===pO(i,o)&&fO(o)!==a){r-=1;continue}}t[r++]=i}}return t.length=r,t};var yO=function(t){return mO(hO(t))};var xO=function(t,e){return yO(cO(t,e))};var bO=function(t){for(var e=0,r=0,n=1;nt[r][0]&&(r=n);return er?[[r],[e]]:[[e]]};var _O=function(t){var e=t.length;if(e<3){for(var r=new Array(e),n=0;n1&&wO(t[a[u-2]],t[a[u-1]],l)<=0;)u-=1,a.pop();for(a.push(s),u=o.length;u>1&&wO(t[o[u-2]],t[o[u-1]],l)>=0;)u-=1,o.pop();o.push(s)}for(var r=new Array(o.length+a.length-2),c=0,n=0,h=a.length;n0;--f)r[c++]=o[f];return r},wO=PM[3];var MO=function(t){var e=_O(t),r=e.length;if(r<=2)return[];for(var n=new Array(r),i=e[r-1],a=0;a=e[l]&&(s+=1);a[o]=s}}return t}(i,r)}};var SO=function(t){var e=t.length;if(0===e)return[];if(1===e)return[[0]];var r=t[0].length;if(0===r)return[];if(1===r)return bO(t);if(2===r)return MO(t);return TO(t,r)};var EO={jet:[{index:0,rgb:[0,0,131]},{index:.125,rgb:[0,60,170]},{index:.375,rgb:[5,255,255]},{index:.625,rgb:[255,255,0]},{index:.875,rgb:[250,0,0]},{index:1,rgb:[128,0,0]}],hsv:[{index:0,rgb:[255,0,0]},{index:.169,rgb:[253,255,2]},{index:.173,rgb:[247,255,2]},{index:.337,rgb:[0,252,4]},{index:.341,rgb:[0,252,10]},{index:.506,rgb:[1,249,255]},{index:.671,rgb:[2,0,253]},{index:.675,rgb:[8,0,253]},{index:.839,rgb:[255,0,251]},{index:.843,rgb:[255,0,245]},{index:1,rgb:[255,0,6]}],hot:[{index:0,rgb:[0,0,0]},{index:.3,rgb:[230,0,0]},{index:.6,rgb:[255,210,0]},{index:1,rgb:[255,255,255]}],cool:[{index:0,rgb:[0,255,255]},{index:1,rgb:[255,0,255]}],spring:[{index:0,rgb:[255,0,255]},{index:1,rgb:[255,255,0]}],summer:[{index:0,rgb:[0,128,102]},{index:1,rgb:[255,255,102]}],autumn:[{index:0,rgb:[255,0,0]},{index:1,rgb:[255,255,0]}],winter:[{index:0,rgb:[0,0,255]},{index:1,rgb:[0,255,128]}],bone:[{index:0,rgb:[0,0,0]},{index:.376,rgb:[84,84,116]},{index:.753,rgb:[169,200,200]},{index:1,rgb:[255,255,255]}],copper:[{index:0,rgb:[0,0,0]},{index:.804,rgb:[255,160,102]},{index:1,rgb:[255,199,127]}],greys:[{index:0,rgb:[0,0,0]},{index:1,rgb:[255,255,255]}],yignbu:[{index:0,rgb:[8,29,88]},{index:.125,rgb:[37,52,148]},{index:.25,rgb:[34,94,168]},{index:.375,rgb:[29,145,192]},{index:.5,rgb:[65,182,196]},{index:.625,rgb:[127,205,187]},{index:.75,rgb:[199,233,180]},{index:.875,rgb:[237,248,217]},{index:1,rgb:[255,255,217]}],greens:[{index:0,rgb:[0,68,27]},{index:.125,rgb:[0,109,44]},{index:.25,rgb:[35,139,69]},{index:.375,rgb:[65,171,93]},{index:.5,rgb:[116,196,118]},{index:.625,rgb:[161,217,155]},{index:.75,rgb:[199,233,192]},{index:.875,rgb:[229,245,224]},{index:1,rgb:[247,252,245]}],yiorrd:[{index:0,rgb:[128,0,38]},{index:.125,rgb:[189,0,38]},{index:.25,rgb:[227,26,28]},{index:.375,rgb:[252,78,42]},{index:.5,rgb:[253,141,60]},{index:.625,rgb:[254,178,76]},{index:.75,rgb:[254,217,118]},{index:.875,rgb:[255,237,160]},{index:1,rgb:[255,255,204]}],bluered:[{index:0,rgb:[0,0,255]},{index:1,rgb:[255,0,0]}],rdbu:[{index:0,rgb:[5,10,172]},{index:.35,rgb:[106,137,247]},{index:.5,rgb:[190,190,190]},{index:.6,rgb:[220,170,132]},{index:.7,rgb:[230,145,90]},{index:1,rgb:[178,10,28]}],picnic:[{index:0,rgb:[0,0,255]},{index:.1,rgb:[51,153,255]},{index:.2,rgb:[102,204,255]},{index:.3,rgb:[153,204,255]},{index:.4,rgb:[204,204,255]},{index:.5,rgb:[255,255,255]},{index:.6,rgb:[255,204,255]},{index:.7,rgb:[255,153,255]},{index:.8,rgb:[255,102,204]},{index:.9,rgb:[255,102,102]},{index:1,rgb:[255,0,0]}],rainbow:[{index:0,rgb:[150,0,90]},{index:.125,rgb:[0,0,200]},{index:.25,rgb:[0,25,255]},{index:.375,rgb:[0,152,255]},{index:.5,rgb:[44,255,150]},{index:.625,rgb:[151,255,0]},{index:.75,rgb:[255,234,0]},{index:.875,rgb:[255,111,0]},{index:1,rgb:[255,0,0]}],portland:[{index:0,rgb:[12,51,131]},{index:.25,rgb:[10,136,186]},{index:.5,rgb:[242,211,56]},{index:.75,rgb:[242,143,56]},{index:1,rgb:[217,30,30]}],blackbody:[{index:0,rgb:[0,0,0]},{index:.2,rgb:[230,0,0]},{index:.4,rgb:[230,210,0]},{index:.7,rgb:[255,255,255]},{index:1,rgb:[160,200,255]}],earth:[{index:0,rgb:[0,0,130]},{index:.1,rgb:[0,180,180]},{index:.2,rgb:[40,210,40]},{index:.4,rgb:[230,230,50]},{index:.6,rgb:[120,70,20]},{index:1,rgb:[255,255,255]}],electric:[{index:0,rgb:[0,0,0]},{index:.15,rgb:[30,0,100]},{index:.4,rgb:[120,0,100]},{index:.6,rgb:[160,90,0]},{index:.8,rgb:[230,200,0]},{index:1,rgb:[255,250,220]}],alpha:[{index:0,rgb:[255,255,255,0]},{index:1,rgb:[255,255,255,1]}],viridis:[{index:0,rgb:[68,1,84]},{index:.13,rgb:[71,44,122]},{index:.25,rgb:[59,81,139]},{index:.38,rgb:[44,113,142]},{index:.5,rgb:[33,144,141]},{index:.63,rgb:[39,173,129]},{index:.75,rgb:[92,200,99]},{index:.88,rgb:[170,220,50]},{index:1,rgb:[253,231,37]}],inferno:[{index:0,rgb:[0,0,4]},{index:.13,rgb:[31,12,72]},{index:.25,rgb:[85,15,109]},{index:.38,rgb:[136,34,106]},{index:.5,rgb:[186,54,85]},{index:.63,rgb:[227,89,51]},{index:.75,rgb:[249,140,10]},{index:.88,rgb:[249,201,50]},{index:1,rgb:[252,255,164]}],magma:[{index:0,rgb:[0,0,4]},{index:.13,rgb:[28,16,68]},{index:.25,rgb:[79,18,123]},{index:.38,rgb:[129,37,129]},{index:.5,rgb:[181,54,122]},{index:.63,rgb:[229,80,100]},{index:.75,rgb:[251,135,97]},{index:.88,rgb:[254,194,135]},{index:1,rgb:[252,253,191]}],plasma:[{index:0,rgb:[13,8,135]},{index:.13,rgb:[75,3,161]},{index:.25,rgb:[125,3,168]},{index:.38,rgb:[168,34,150]},{index:.5,rgb:[203,70,121]},{index:.63,rgb:[229,107,93]},{index:.75,rgb:[248,148,65]},{index:.88,rgb:[253,195,40]},{index:1,rgb:[240,249,33]}],warm:[{index:0,rgb:[125,0,179]},{index:.13,rgb:[172,0,187]},{index:.25,rgb:[219,0,170]},{index:.38,rgb:[255,0,130]},{index:.5,rgb:[255,63,74]},{index:.63,rgb:[255,123,0]},{index:.75,rgb:[234,176,0]},{index:.88,rgb:[190,228,0]},{index:1,rgb:[147,255,0]}],cool:[{index:0,rgb:[125,0,179]},{index:.13,rgb:[116,0,218]},{index:.25,rgb:[98,74,237]},{index:.38,rgb:[68,146,231]},{index:.5,rgb:[0,204,197]},{index:.63,rgb:[0,247,146]},{index:.75,rgb:[0,255,88]},{index:.88,rgb:[40,255,8]},{index:1,rgb:[147,255,0]}],"rainbow-soft":[{index:0,rgb:[125,0,179]},{index:.1,rgb:[199,0,180]},{index:.2,rgb:[255,0,121]},{index:.3,rgb:[255,108,0]},{index:.4,rgb:[222,194,0]},{index:.5,rgb:[150,255,0]},{index:.6,rgb:[0,255,55]},{index:.7,rgb:[0,246,150]},{index:.8,rgb:[50,167,222]},{index:.9,rgb:[103,51,235]},{index:1,rgb:[124,0,186]}],bathymetry:[{index:0,rgb:[40,26,44]},{index:.13,rgb:[59,49,90]},{index:.25,rgb:[64,76,139]},{index:.38,rgb:[63,110,151]},{index:.5,rgb:[72,142,158]},{index:.63,rgb:[85,174,163]},{index:.75,rgb:[120,206,163]},{index:.88,rgb:[187,230,172]},{index:1,rgb:[253,254,204]}],cdom:[{index:0,rgb:[47,15,62]},{index:.13,rgb:[87,23,86]},{index:.25,rgb:[130,28,99]},{index:.38,rgb:[171,41,96]},{index:.5,rgb:[206,67,86]},{index:.63,rgb:[230,106,84]},{index:.75,rgb:[242,149,103]},{index:.88,rgb:[249,193,135]},{index:1,rgb:[254,237,176]}],chlorophyll:[{index:0,rgb:[18,36,20]},{index:.13,rgb:[25,63,41]},{index:.25,rgb:[24,91,59]},{index:.38,rgb:[13,119,72]},{index:.5,rgb:[18,148,80]},{index:.63,rgb:[80,173,89]},{index:.75,rgb:[132,196,122]},{index:.88,rgb:[175,221,162]},{index:1,rgb:[215,249,208]}],density:[{index:0,rgb:[54,14,36]},{index:.13,rgb:[89,23,80]},{index:.25,rgb:[110,45,132]},{index:.38,rgb:[120,77,178]},{index:.5,rgb:[120,113,213]},{index:.63,rgb:[115,151,228]},{index:.75,rgb:[134,185,227]},{index:.88,rgb:[177,214,227]},{index:1,rgb:[230,241,241]}],"freesurface-blue":[{index:0,rgb:[30,4,110]},{index:.13,rgb:[47,14,176]},{index:.25,rgb:[41,45,236]},{index:.38,rgb:[25,99,212]},{index:.5,rgb:[68,131,200]},{index:.63,rgb:[114,156,197]},{index:.75,rgb:[157,181,203]},{index:.88,rgb:[200,208,216]},{index:1,rgb:[241,237,236]}],"freesurface-red":[{index:0,rgb:[60,9,18]},{index:.13,rgb:[100,17,27]},{index:.25,rgb:[142,20,29]},{index:.38,rgb:[177,43,27]},{index:.5,rgb:[192,87,63]},{index:.63,rgb:[205,125,105]},{index:.75,rgb:[216,162,148]},{index:.88,rgb:[227,199,193]},{index:1,rgb:[241,237,236]}],oxygen:[{index:0,rgb:[64,5,5]},{index:.13,rgb:[106,6,15]},{index:.25,rgb:[144,26,7]},{index:.38,rgb:[168,64,3]},{index:.5,rgb:[188,100,4]},{index:.63,rgb:[206,136,11]},{index:.75,rgb:[220,174,25]},{index:.88,rgb:[231,215,44]},{index:1,rgb:[248,254,105]}],par:[{index:0,rgb:[51,20,24]},{index:.13,rgb:[90,32,35]},{index:.25,rgb:[129,44,34]},{index:.38,rgb:[159,68,25]},{index:.5,rgb:[182,99,19]},{index:.63,rgb:[199,134,22]},{index:.75,rgb:[212,171,35]},{index:.88,rgb:[221,210,54]},{index:1,rgb:[225,253,75]}],phase:[{index:0,rgb:[145,105,18]},{index:.13,rgb:[184,71,38]},{index:.25,rgb:[186,58,115]},{index:.38,rgb:[160,71,185]},{index:.5,rgb:[110,97,218]},{index:.63,rgb:[50,123,164]},{index:.75,rgb:[31,131,110]},{index:.88,rgb:[77,129,34]},{index:1,rgb:[145,105,18]}],salinity:[{index:0,rgb:[42,24,108]},{index:.13,rgb:[33,50,162]},{index:.25,rgb:[15,90,145]},{index:.38,rgb:[40,118,137]},{index:.5,rgb:[59,146,135]},{index:.63,rgb:[79,175,126]},{index:.75,rgb:[120,203,104]},{index:.88,rgb:[193,221,100]},{index:1,rgb:[253,239,154]}],temperature:[{index:0,rgb:[4,35,51]},{index:.13,rgb:[23,51,122]},{index:.25,rgb:[85,59,157]},{index:.38,rgb:[129,79,143]},{index:.5,rgb:[175,95,130]},{index:.63,rgb:[222,112,101]},{index:.75,rgb:[249,146,66]},{index:.88,rgb:[249,196,65]},{index:1,rgb:[232,250,91]}],turbidity:[{index:0,rgb:[34,31,27]},{index:.13,rgb:[65,50,41]},{index:.25,rgb:[98,69,52]},{index:.38,rgb:[131,89,57]},{index:.5,rgb:[161,112,59]},{index:.63,rgb:[185,140,66]},{index:.75,rgb:[202,174,88]},{index:.88,rgb:[216,209,126]},{index:1,rgb:[233,246,171]}],"velocity-blue":[{index:0,rgb:[17,32,64]},{index:.13,rgb:[35,52,116]},{index:.25,rgb:[29,81,156]},{index:.38,rgb:[31,113,162]},{index:.5,rgb:[50,144,169]},{index:.63,rgb:[87,173,176]},{index:.75,rgb:[149,196,189]},{index:.88,rgb:[203,221,211]},{index:1,rgb:[254,251,230]}],"velocity-green":[{index:0,rgb:[23,35,19]},{index:.13,rgb:[24,64,38]},{index:.25,rgb:[11,95,45]},{index:.38,rgb:[39,123,35]},{index:.5,rgb:[95,146,12]},{index:.63,rgb:[152,165,18]},{index:.75,rgb:[201,186,69]},{index:.88,rgb:[233,216,137]},{index:1,rgb:[255,253,205]}],cubehelix:[{index:0,rgb:[0,0,0]},{index:.07,rgb:[22,5,59]},{index:.13,rgb:[60,4,105]},{index:.2,rgb:[109,1,135]},{index:.27,rgb:[161,0,147]},{index:.33,rgb:[210,2,142]},{index:.4,rgb:[251,11,123]},{index:.47,rgb:[255,29,97]},{index:.53,rgb:[255,54,69]},{index:.6,rgb:[255,85,46]},{index:.67,rgb:[255,120,34]},{index:.73,rgb:[255,157,37]},{index:.8,rgb:[241,191,57]},{index:.87,rgb:[224,220,93]},{index:.93,rgb:[218,241,142]},{index:1,rgb:[227,253,198]}]};var CO=function(t,e,r){return t*(1-r)+e*r},LO=function(t){var e,r,n,i,a,o,s,l,u,c;t||(t={});l=(t.nshades||72)-1,s=t.format||"hex",(o=t.colormap)||(o="jet");if("string"==typeof o){if(o=o.toLowerCase(),!EO[o])throw Error(o+" not a supported colorscale");a=EO[o]}else{if(!Array.isArray(o))throw Error("unsupported colormap option",o);a=o.slice()}if(a.length>l)throw new Error(o+" map requires nshades to be at least size "+a.length);u=Array.isArray(t.alpha)?2!==t.alpha.length?[1,1]:t.alpha.slice():"number"==typeof t.alpha?[t.alpha,t.alpha]:[1,1];e=a.map(function(t){return Math.round(t.index*l)}),u[0]=Math.min(Math.max(u[0],0),1),u[1]=Math.min(Math.max(u[1],0),1);var h=a.map(function(t,e){var r=a[e].index,n=a[e].rgb.slice();return 4===n.length&&n[3]>=0&&n[3]<=1?n:(n[3]=u[0]+(u[1]-u[0])*r,n)}),f=[];for(c=0;c=o?(_=1,g=o+2*u+h):g=u*(_=-u/o)+h):(_=0,c>=0?(w=0,g=h):-c>=l?(w=1,g=l+2*c+h):g=c*(w=-c/l)+h);else if(w<0)w=0,u>=0?(_=0,g=h):-u>=o?(_=1,g=o+2*u+h):g=u*(_=-u/o)+h;else{var M=1/b;g=(_*=M)*(o*_+s*(w*=M)+2*u)+w*(s*_+l*w+2*c)+h}else _<0?(m=l+c)>(v=s+u)?(y=m-v)>=(x=o-2*s+l)?(_=1,w=0,g=o+2*u+h):g=(_=y/x)*(o*_+s*(w=1-_)+2*u)+w*(s*_+l*w+2*c)+h:(_=0,m<=0?(w=1,g=l+2*c+h):c>=0?(w=0,g=h):g=c*(w=-c/l)+h):w<0?(m=o+u)>(v=s+c)?(y=m-v)>=(x=o-2*s+l)?(w=1,_=0,g=l+2*c+h):g=(_=1-(w=y/x))*(o*_+s*w+2*u)+w*(s*_+l*w+2*c)+h:(w=0,m<=0?(_=1,g=o+2*u+h):u>=0?(_=0,g=h):g=u*(_=-u/o)+h):(y=l+c-s-u)<=0?(_=0,w=1,g=l+2*c+h):y>=(x=o-2*s+l)?(_=1,w=0,g=o+2*u+h):g=(_=y/x)*(o*_+s*(w=1-_)+2*u)+w*(s*_+l*w+2*c)+h;var A=1-_-w;for(a=0;a1.0001)return null;p+=f[s]}if(Math.abs(p-1)>.001)return null;return[l,function(t,e){for(var r=[0,0,0],n=0;n 0.25) {\n discard;\n }\n gl_FragColor = f_color * texture2D(texture, f_uv) * opacity;\n}"]),JO=E_(["precision mediump float;\n#define GLSLIFY 1\n\nattribute vec3 position;\nattribute vec4 id;\n\nuniform mat4 model, view, projection;\n\nvarying vec3 f_position;\nvarying vec4 f_id;\n\nvoid main() {\n gl_Position = projection * view * model * vec4(position, 1.0);\n f_id = id;\n f_position = position;\n}"]),KO=E_(["precision mediump float;\n#define GLSLIFY 1\n\nuniform vec3 clipBounds[2];\nuniform float pickId;\n\nvarying vec3 f_position;\nvarying vec4 f_id;\n\nvoid main() {\n if(any(lessThan(f_position, clipBounds[0])) || \n any(greaterThan(f_position, clipBounds[1]))) {\n discard;\n }\n gl_FragColor = vec4(pickId, f_id.xyz);\n}"]),QO=E_(["precision mediump float;\n#define GLSLIFY 1\n\nattribute vec3 position;\nattribute float pointSize;\nattribute vec4 id;\n\nuniform mat4 model, view, projection;\nuniform vec3 clipBounds[2];\n\nvarying vec3 f_position;\nvarying vec4 f_id;\n\nvoid main() {\n if(any(lessThan(position, clipBounds[0])) || \n any(greaterThan(position, clipBounds[1]))) {\n gl_Position = vec4(0,0,0,0);\n } else {\n gl_Position = projection * view * model * vec4(position, 1.0);\n gl_PointSize = pointSize;\n }\n f_id = id;\n f_position = position;\n}"]),$O=E_(["precision mediump float;\n#define GLSLIFY 1\n\nattribute vec3 position;\n\nuniform mat4 model, view, projection;\n\nvoid main() {\n gl_Position = projection * view * model * vec4(position, 1.0);\n}"]),tR=E_(["precision mediump float;\n#define GLSLIFY 1\n\nuniform vec3 contourColor;\n\nvoid main() {\n gl_FragColor = vec4(contourColor,1);\n}\n"]);qO.meshShader={vertex:HO,fragment:GO,attributes:[{name:"position",type:"vec3"},{name:"normal",type:"vec3"},{name:"color",type:"vec4"},{name:"uv",type:"vec2"}]},qO.wireShader={vertex:WO,fragment:YO,attributes:[{name:"position",type:"vec3"},{name:"color",type:"vec4"},{name:"uv",type:"vec2"}]},qO.pointShader={vertex:XO,fragment:ZO,attributes:[{name:"position",type:"vec3"},{name:"color",type:"vec4"},{name:"uv",type:"vec2"},{name:"pointSize",type:"float"}]},qO.pickShader={vertex:JO,fragment:KO,attributes:[{name:"position",type:"vec3"},{name:"id",type:"vec4"}]},qO.pointPickShader={vertex:QO,fragment:KO,attributes:[{name:"position",type:"vec3"},{name:"pointSize",type:"float"},{name:"id",type:"vec4"}]},qO.contourShader={vertex:$O,fragment:tR,attributes:[{name:"position",type:"vec3"}]};var eR={};eR.vertexNormals=function(t,e,r){for(var n=e.length,i=new Array(n),a=void 0===r?1e-6:r,o=0;oa){var b=i[u],_=1/Math.sqrt(v*y);for(x=0;x<3;++x){var w=(x+1)%3,M=(x+2)%3;b[x]+=_*(m[w]*g[M]-m[M]*g[w])}}}for(o=0;oa)for(_=1/Math.sqrt(A),x=0;x<3;++x)b[x]*=_;else for(x=0;x<3;++x)b[x]=0}return i},eR.faceNormals=function(t,e,r){for(var n=t.length,i=new Array(n),a=void 0===r?1e-6:r,o=0;oa?1/Math.sqrt(p):0;for(u=0;u<3;++u)f[u]*=p;i[o]=f}return i};var rR=32;function nR(t){switch(t){case"uint8":return[__.mallocUint8,__.freeUint8];case"uint16":return[__.mallocUint16,__.freeUint16];case"uint32":return[__.mallocUint32,__.freeUint32];case"int8":return[__.mallocInt8,__.freeInt8];case"int16":return[__.mallocInt16,__.freeInt16];case"int32":return[__.mallocInt32,__.freeInt32];case"float32":return[__.mallocFloat,__.freeFloat];case"float64":return[__.mallocDouble,__.freeDouble];default:return null}}function iR(t){for(var e=[],r=0;r0?i.push(["d",h,"=s",h,"-d",l,"*n",l].join("")):i.push(["d",h,"=s",h].join("")),l=h),0!=(c=t.length-1-a)&&(u>0?i.push(["e",c,"=s",c,"-e",u,"*n",u,",f",c,"=",o[c],"-f",u,"*n",u].join("")):i.push(["e",c,"=s",c,",f",c,"=",o[c]].join("")),u=c)}r.push("var "+i.join(","));var f=["0","n0-1","data","offset"].concat(iR(t.length));r.push(["if(n0<=",rR,"){","insertionSort(",f.join(","),")}else{","quickSort(",f.join(","),")}"].join("")),r.push("}return "+n);var p=new Function("insertionSort","quickSort",r.join("\n")),d=function(t,e){var r=["'use strict'"],n=["ndarrayInsertionSort",t.join("d"),e].join(""),i=["left","right","data","offset"].concat(iR(t.length)),a=nR(e),o=["i,j,cptr,ptr=left*s0+offset"];if(t.length>1){for(var s=[],l=1;l1){for(r.push("dptr=0;sptr=ptr"),l=t.length-1;l>=0;--l)0!==(h=t[l])&&r.push(["for(i",h,"=0;i",h,"b){break __l}"].join("")),l=t.length-1;l>=1;--l)r.push("sptr+=e"+l,"dptr+=f"+l,"}");for(r.push("dptr=cptr;sptr=cptr-s0"),l=t.length-1;l>=0;--l)0!==(h=t[l])&&r.push(["for(i",h,"=0;i",h,"=0;--l)0!==(h=t[l])&&r.push(["for(i",h,"=0;i",h,"scratch)){",c("cptr",u("cptr-s0")),"cptr-=s0","}",c("cptr","scratch"));return r.push("}"),t.length>1&&a&&r.push("free(scratch)"),r.push("} return "+n),a?new Function("malloc","free",r.join("\n"))(a[0],a[1]):new Function(r.join("\n"))()}(t,e);return p(d,function(t,e,r){var n=["'use strict'"],i=["ndarrayQuickSort",t.join("d"),e].join(""),a=["left","right","data","offset"].concat(iR(t.length)),o=nR(e),s=0;n.push(["function ",i,"(",a.join(","),"){"].join(""));var l=["sixth=((right-left+1)/6)|0","index1=left+sixth","index5=right-sixth","index3=(left+right)>>1","index2=index3-sixth","index4=index3+sixth","el1=index1","el2=index2","el3=index3","el4=index4","el5=index5","less=left+1","great=right-1","pivots_are_equal=true","tmp","tmp0","x","y","z","k","ptr0","ptr1","ptr2","comp_pivot1=0","comp_pivot2=0","comp=0"];if(t.length>1){for(var u=[],c=1;c=0;--a)0!==(o=t[a])&&n.push(["for(i",o,"=0;i",o,"1)for(a=0;a1?n.push("ptr_shift+=d"+o):n.push("ptr0+=d"+o),n.push("}"))}}function g(e,r,i,a){if(1===r.length)n.push("ptr0="+h(r[0]));else{for(var o=0;o1)for(o=0;o=1;--o)i&&n.push("pivot_ptr+=f"+o),r.length>1?n.push("ptr_shift+=e"+o):n.push("ptr0+=e"+o),n.push("}")}function v(){t.length>1&&o&&n.push("free(pivot1)","free(pivot2)")}function m(e,r){var i="el"+e,a="el"+r;if(t.length>1){var o="__l"+ ++s;g(o,[i,a],!1,["comp=",f("ptr0"),"-",f("ptr1"),"\n","if(comp>0){tmp0=",i,";",i,"=",a,";",a,"=tmp0;break ",o,"}\n","if(comp<0){break ",o,"}"].join(""))}else n.push(["if(",f(h(i)),">",f(h(a)),"){tmp0=",i,";",i,"=",a,";",a,"=tmp0}"].join(""))}function y(e,r){t.length>1?d([e,r],!1,p("ptr0",f("ptr1"))):n.push(p(h(e),f(h(r))))}function x(e,r,i){if(t.length>1){var a="__l"+ ++s;g(a,[r],!0,[e,"=",f("ptr0"),"-pivot",i,"[pivot_ptr]\n","if(",e,"!==0){break ",a,"}"].join(""))}else n.push([e,"=",f(h(r)),"-pivot",i].join(""))}function b(e,r){t.length>1?d([e,r],!1,["tmp=",f("ptr0"),"\n",p("ptr0",f("ptr1")),"\n",p("ptr1","tmp")].join("")):n.push(["ptr0=",h(e),"\n","ptr1=",h(r),"\n","tmp=",f("ptr0"),"\n",p("ptr0",f("ptr1")),"\n",p("ptr1","tmp")].join(""))}function _(e,r,i){t.length>1?(d([e,r,i],!1,["tmp=",f("ptr0"),"\n",p("ptr0",f("ptr1")),"\n",p("ptr1",f("ptr2")),"\n",p("ptr2","tmp")].join("")),n.push("++"+r,"--"+i)):n.push(["ptr0=",h(e),"\n","ptr1=",h(r),"\n","ptr2=",h(i),"\n","++",r,"\n","--",i,"\n","tmp=",f("ptr0"),"\n",p("ptr0",f("ptr1")),"\n",p("ptr1",f("ptr2")),"\n",p("ptr2","tmp")].join(""))}function w(t,e){b(t,e),n.push("--"+e)}function M(e,r,i){t.length>1?d([e,r],!0,[p("ptr0",f("ptr1")),"\n",p("ptr1",["pivot",i,"[pivot_ptr]"].join(""))].join("")):n.push(p(h(e),f(h(r))),p(h(r),"pivot"+i))}function A(e,r){n.push(["if((",r,"-",e,")<=",rR,"){\n","insertionSort(",e,",",r,",data,offset,",iR(t.length).join(","),")\n","}else{\n",i,"(",e,",",r,",data,offset,",iR(t.length).join(","),")\n","}"].join(""))}function k(e,r,i){t.length>1?(n.push(["__l",++s,":while(true){"].join("")),d([e],!0,["if(",f("ptr0"),"!==pivot",r,"[pivot_ptr]){break __l",s,"}"].join("")),n.push(i,"}")):n.push(["while(",f(h(e)),"===pivot",r,"){",i,"}"].join(""))}return n.push("var "+l.join(",")),m(1,2),m(4,5),m(1,3),m(2,3),m(1,4),m(3,4),m(2,5),m(2,3),m(4,5),t.length>1?d(["el1","el2","el3","el4","el5","index1","index3","index5"],!0,["pivot1[pivot_ptr]=",f("ptr1"),"\n","pivot2[pivot_ptr]=",f("ptr3"),"\n","pivots_are_equal=pivots_are_equal&&(pivot1[pivot_ptr]===pivot2[pivot_ptr])\n","x=",f("ptr0"),"\n","y=",f("ptr2"),"\n","z=",f("ptr4"),"\n",p("ptr5","x"),"\n",p("ptr6","y"),"\n",p("ptr7","z")].join("")):n.push(["pivot1=",f(h("el2")),"\n","pivot2=",f(h("el4")),"\n","pivots_are_equal=pivot1===pivot2\n","x=",f(h("el1")),"\n","y=",f(h("el3")),"\n","z=",f(h("el5")),"\n",p(h("index1"),"x"),"\n",p(h("index3"),"y"),"\n",p(h("index5"),"z")].join("")),y("index2","left"),y("index4","right"),n.push("if(pivots_are_equal){"),n.push("for(k=less;k<=great;++k){"),x("comp","k",1),n.push("if(comp===0){continue}"),n.push("if(comp<0){"),n.push("if(k!==less){"),b("k","less"),n.push("}"),n.push("++less"),n.push("}else{"),n.push("while(true){"),x("comp","great",1),n.push("if(comp>0){"),n.push("great--"),n.push("}else if(comp<0){"),_("k","less","great"),n.push("break"),n.push("}else{"),w("k","great"),n.push("break"),n.push("}"),n.push("}"),n.push("}"),n.push("}"),n.push("}else{"),n.push("for(k=less;k<=great;++k){"),x("comp_pivot1","k",1),n.push("if(comp_pivot1<0){"),n.push("if(k!==less){"),b("k","less"),n.push("}"),n.push("++less"),n.push("}else{"),x("comp_pivot2","k",2),n.push("if(comp_pivot2>0){"),n.push("while(true){"),x("comp","great",2),n.push("if(comp>0){"),n.push("if(--greatindex5){"),k("less",1,"++less"),k("great",2,"--great"),n.push("for(k=less;k<=great;++k){"),x("comp_pivot1","k",1),n.push("if(comp_pivot1===0){"),n.push("if(k!==less){"),b("k","less"),n.push("}"),n.push("++less"),n.push("}else{"),x("comp_pivot2","k",2),n.push("if(comp_pivot2===0){"),n.push("while(true){"),x("comp","great",2),n.push("if(comp===0){"),n.push("if(--great1&&o?new Function("insertionSort","malloc","free",n.join("\n"))(r,o[0],o[1]):new Function("insertionSort",n.join("\n"))(r)}(t,e,d))},oR={};var sR=function(t){var e=t.order,r=t.dtype,n=[e,r].join(":"),i=oR[n];return i||(oR[n]=i=aR(e,r)),i(t),t},lR=function(t){for(var e=1<>1,v=E[2*m+1];","if(v===b){return m}","if(b0&&o.push(","),o.push("[");for(var n=0;n0&&o.push(","),o.push("B(C,E,c[",i[0],"],c[",i[1],"])")}o.push("]")}o.push(");")}}for(var n=t+1;n>1;--n){n=1},wR.isTransparent=function(){return this.opacity<1},wR.pickSlots=1,wR.setPickBase=function(t){this.pickId=t},wR.highlight=function(t){if(t&&this.contourEnable){for(var e=pR(this.cells,this.intensity,t.intensity),r=e.cells,n=e.vertexIds,i=e.vertexWeights,a=r.length,o=__.mallocFloat32(6*a),s=0,l=0;l0&&((u=this.triShader).bind(),u.uniforms=s,this.triangleVAO.bind(),e.drawArrays(e.TRIANGLES,0,3*this.triangleCount),this.triangleVAO.unbind());this.edgeCount>0&&this.lineWidth>0&&((u=this.lineShader).bind(),u.uniforms=s,this.edgeVAO.bind(),e.lineWidth(this.lineWidth),e.drawArrays(e.LINES,0,2*this.edgeCount),this.edgeVAO.unbind());this.pointCount>0&&((u=this.pointShader).bind(),u.uniforms=s,this.pointVAO.bind(),e.drawArrays(e.POINTS,0,this.pointCount),this.pointVAO.unbind());this.contourEnable&&this.contourCount>0&&this.contourLineWidth>0&&((u=this.contourShader).bind(),u.uniforms=s,this.contourVAO.bind(),e.drawArrays(e.LINES,0,this.contourCount),this.contourVAO.unbind())},wR.drawPick=function(t){t=t||{};for(var e=this.gl,r=t.model||bR,n=t.view||bR,i=t.projection||bR,a=[[-1e6,-1e6,-1e6],[1e6,1e6,1e6]],o=0;o<3;++o)a[0][o]=Math.max(a[0][o],this.clipBounds[0][o]),a[1][o]=Math.min(a[1][o],this.clipBounds[1][o]);this._model=[].slice.call(r),this._view=[].slice.call(n),this._projection=[].slice.call(i),this._resolution=[e.drawingBufferWidth,e.drawingBufferHeight];var s,l={model:r,view:n,projection:i,clipBounds:a,pickId:this.pickId/255};((s=this.pickShader).bind(),s.uniforms=l,this.triangleCount>0&&(this.triangleVAO.bind(),e.drawArrays(e.TRIANGLES,0,3*this.triangleCount),this.triangleVAO.unbind()),this.edgeCount>0&&(this.edgeVAO.bind(),e.lineWidth(this.lineWidth),e.drawArrays(e.LINES,0,2*this.edgeCount),this.edgeVAO.unbind()),this.pointCount>0)&&((s=this.pointPickShader).bind(),s.uniforms=l,this.pointVAO.bind(),e.drawArrays(e.POINTS,0,this.pointCount),this.pointVAO.unbind())},wR.pick=function(t){if(!t)return null;if(t.id!==this.pickId)return null;for(var e=t.value[0]+256*t.value[1]+65536*t.value[2],r=this.cells[e],n=this.positions,i=new Array(r.length),a=0;a0)i=xO(t.alphahull,a);else{var o=["x","y","z"].indexOf(t.delaunayaxis);i=sO(a.map(function(t){return[t[(o+1)%3],t[(o+2)%3]]}))}var l={positions:a,cells:i,lightPosition:[t.lightposition.x,t.lightposition.y,t.lightposition.z],ambient:t.lighting.ambient,diffuse:t.lighting.diffuse,specular:t.lighting.specular,roughness:t.lighting.roughness,fresnel:t.lighting.fresnel,vertexNormalsEpsilon:t.lighting.vertexnormalsepsilon,faceNormalsEpsilon:t.lighting.facenormalsepsilon,opacity:t.opacity,contourEnable:t.contour.show,contourColor:WC(t.contour.color).slice(0,3),contourWidth:t.contour.width,useFacetNormals:t.flatshading};t.intensity?(this.color="#fff",l.vertexIntensity=t.intensity,l.vertexIntensityBounds=[t.cmin,t.cmax],l.colormap=t.colorscale.map(function(t){var e=t[0],r=s(t[1]).toRgb();return{index:e,rgb:[r.r,r.g,r.b,1]}})):t.vertexcolor?(this.color=t.vertexcolor[0],l.vertexColors=LR(t.vertexcolor)):t.facecolor?(this.color=t.facecolor[0],l.cellColors=LR(t.facecolor)):(this.color=t.color,l.meshColor=WC(t.color)),this.mesh.update(l)},CR.dispose=function(){this.scene.glplot.remove(this.mesh),this.mesh.dispose()};var PR=function(t,e){var r=t.glplot.gl,n=SR({gl:r}),i=new ER(t,n,e.uid);return n._trace=i,i.update(e),t.glplot.add(n),i},IR={};IR.attributes=RD,IR.supplyDefaults=function(t,e,r,n){function i(r,n){return ne.coerce(t,e,RD,r,n)}function a(t){var e=t.map(function(t){var e=i(t);return e&&ne.isArrayOrTypedArray(e)?e:null});return e.every(function(t){return t&&t.length===e[0].length})&&e}var o=a(["x","y","z"]),s=a(["i","j","k"]);o?(s&&s.forEach(function(t){for(var e=0;e1)){var c=ne.simpleMap(u.x,e.d2c,0,r.xcalendar),h=ne.distinctVals(c).minDiff;a=Math.min(a,h)}}for(a===1/0&&(a=1),o=0;o");w.push(o,o,o,o,o,o,null)},O=0;O>>=e))<<3,(e|=r=(15<(t>>>=r))<<2)|(r=(3<(t>>>=r))<<1)|t>>>r>>1}function l(t){t:{for(var e=16;268435456>=e;e*=16)if(t<=e){t=e;break t}t=0}return 0<(e=Y[s(t)>>2]).length?e.pop():new ArrayBuffer(t)}function u(t){Y[s(t.byteLength)>>2].push(t)}function c(t,e,r,n,i,a){for(var o=0;o(i=l)&&(i=n.buffer.byteLength,5123===h?i>>=1:5125===h&&(i>>=2)),n.vertCount=i,i=s,0>s&&(i=4,1===(s=n.buffer.dimension)&&(i=0),2===s&&(i=1),3===s&&(i=4)),n.primType=i}function s(t){n.elementsCount--,delete l[t.id],t.buffer.destroy(),t.buffer=null}var l={},u=0,c={uint8:5121,uint16:5123};e.oes_element_index_uint&&(c.uint32=5125),i.prototype.bind=function(){this.buffer.bind()};var h=[];return{create:function(t,e){function l(t){if(t)if("number"==typeof t)u(t),h.primType=4,h.vertCount=0|t,h.type=5121;else{var e=null,r=35044,n=-1,i=-1,s=0,f=0;Array.isArray(t)||G(t)||a(t)?e=t:("data"in t&&(e=t.data),"usage"in t&&(r=Q[t.usage]),"primitive"in t&&(n=rt[t.primitive]),"count"in t&&(i=0|t.count),"type"in t&&(f=c[t.type]),"length"in t?s=0|t.length:(s=i,5123===f||5122===f?s*=2:5125!==f&&5124!==f||(s*=4))),o(h,e,r,n,i,s,f)}else u(),h.primType=4,h.vertCount=0,h.type=5121;return l}var u=r.create(null,34963,!0),h=new i(u._buffer);return n.elementsCount++,l(t),l._reglType="elements",l._elements=h,l.subdata=function(t,e){return u.subdata(t,e),l},l.destroy=function(){s(h)},l},createStream:function(t){var e=h.pop();return e||(e=new i(r.create(null,34963,!0,!1)._buffer)),o(e,t,35040,-1,-1,0,0),e},destroyStream:function(t){h.push(t)},getElements:function(t){return"function"==typeof t&&t._elements instanceof i?t._elements:null},clear:function(){W(l).forEach(s)}}}function v(t){for(var e=X.allocType(5123,t.length),r=0;r>>31<<15,i=(a<<1>>>24)-127,a=a>>13&1023;e[r]=-24>i?n:-14>i?n+(a+1024>>-14-i):15>=i,r.height>>=i,p(r,n[i]),t.mipmask|=1<e;++e)t.images[e]=null;return t}function C(t){for(var e=t.images,r=0;re){for(var r=0;r=--this.refCount&&R(this)}}),s.profile&&(o.getTotalTextureSize=function(){var t=0;return Object.keys(ht).forEach(function(e){t+=ht[e].stats.size}),t}),{create2D:function(e,r){function n(t,e){var r=i.texInfo;L.call(r);var a=E();return"number"==typeof t?k(a,0|t,"number"==typeof e?0|e:0|t):t?(z(r,t),T(a,t)):k(a,1,1),r.genMipmaps&&(a.mipmask=(a.width<<1)-1),i.mipmask=a.mipmask,u(i,a),i.internalformat=a.internalformat,n.width=a.width,n.height=a.height,D(i),S(a,3553),P(r,3553),O(),C(a),s.profile&&(i.stats.size=M(i.internalformat,i.type,a.width,a.height,r.genMipmaps,!1)),n.format=$[i.internalformat],n.type=tt[i.type],n.mag=et[r.magFilter],n.min=rt[r.minFilter],n.wrapS=nt[r.wrapS],n.wrapT=nt[r.wrapT],n}var i=new I(3553);return ht[i.id]=i,o.textureCount++,n(e,r),n.subimage=function(t,e,r,a){e|=0,r|=0,a|=0;var o=g();return u(o,i),o.width=0,o.height=0,p(o,t),o.width=o.width||(i.width>>a)-e,o.height=o.height||(i.height>>a)-r,D(i),d(o,3553,e,r,a),O(),A(o),n},n.resize=function(e,r){var a=0|e,o=0|r||a;if(a===i.width&&o===i.height)return n;n.width=i.width=a,n.height=i.height=o,D(i);for(var l=0;i.mipmask>>l;++l)t.texImage2D(3553,l,i.format,a>>l,o>>l,0,i.format,i.type,null);return O(),s.profile&&(i.stats.size=M(i.internalformat,i.type,a,o,!1,!1)),n},n._reglType="texture2d",n._texture=i,s.profile&&(n.stats=i.stats),n.destroy=function(){i.decRef()},n},createCube:function(e,r,n,i,a,l){function h(t,e,r,n,i,a){var o,l=f.texInfo;for(L.call(l),o=0;6>o;++o)v[o]=E();if("number"!=typeof t&&t){if("object"==typeof t)if(e)T(v[0],t),T(v[1],e),T(v[2],r),T(v[3],n),T(v[4],i),T(v[5],a);else if(z(l,t),c(f,t),"faces"in t)for(t=t.faces,o=0;6>o;++o)u(v[o],f),T(v[o],t[o]);else for(o=0;6>o;++o)T(v[o],t)}else for(t=0|t||1,o=0;6>o;++o)k(v[o],t,t);for(u(f,v[0]),f.mipmask=l.genMipmaps?(v[0].width<<1)-1:v[0].mipmask,f.internalformat=v[0].internalformat,h.width=v[0].width,h.height=v[0].height,D(f),o=0;6>o;++o)S(v[o],34069+o);for(P(l,34067),O(),s.profile&&(f.stats.size=M(f.internalformat,f.type,h.width,h.height,l.genMipmaps,!0)),h.format=$[f.internalformat],h.type=tt[f.type],h.mag=et[l.magFilter],h.min=rt[l.minFilter],h.wrapS=nt[l.wrapS],h.wrapT=nt[l.wrapT],o=0;6>o;++o)C(v[o]);return h}var f=new I(34067);ht[f.id]=f,o.cubeCount++;var v=Array(6);return h(e,r,n,i,a,l),h.subimage=function(t,e,r,n,i){r|=0,n|=0,i|=0;var a=g();return u(a,f),a.width=0,a.height=0,p(a,e),a.width=a.width||(f.width>>i)-r,a.height=a.height||(f.height>>i)-n,D(f),d(a,34069+t,r,n,i),O(),A(a),h},h.resize=function(e){if((e|=0)!==f.width){h.width=f.width=e,h.height=f.height=e,D(f);for(var r=0;6>r;++r)for(var n=0;f.mipmask>>n;++n)t.texImage2D(34069+r,n,f.format,e>>n,e>>n,0,f.format,f.type,null);return O(),s.profile&&(f.stats.size=M(f.internalformat,f.type,h.width,h.height,!1,!0)),h}},h._reglType="textureCube",h._texture=f,s.profile&&(h.stats=f.stats),h.destroy=function(){f.decRef()},h},clear:function(){for(var e=0;er;++r)if(0!=(e.mipmask&1<>r,e.height>>r,0,e.internalformat,e.type,null);else for(var n=0;6>n;++n)t.texImage2D(34069+n,r,e.internalformat,e.width>>r,e.height>>r,0,e.internalformat,e.type,null);P(e.texInfo,e.target)})}}}function k(t,e,r,n,i,a){function o(t,e,r){this.target=t,this.texture=e,this.renderbuffer=r;var n=t=0;e?(t=e.width,n=e.height):r&&(t=r.width,n=r.height),this.width=t,this.height=n}function s(t){t&&(t.texture&&t.texture._texture.decRef(),t.renderbuffer&&t.renderbuffer._renderbuffer.decRef())}function l(t,e,r){t&&(t.texture?t.texture._texture.refCount+=1:t.renderbuffer._renderbuffer.refCount+=1)}function u(e,r){r&&(r.texture?t.framebufferTexture2D(36160,e,r.target,r.texture._texture.texture,0):t.framebufferRenderbuffer(36160,e,36161,r.renderbuffer._renderbuffer.renderbuffer))}function c(t){var e=3553,r=null,n=null,i=t;return"object"==typeof t&&(i=t.data,"target"in t&&(e=0|t.target)),"texture2d"===(t=i._reglType)?r=i:"textureCube"===t?r=i:"renderbuffer"===t&&(n=i,e=36161),new o(e,r,n)}function h(t,e,r,a,s){return r?((t=n.create2D({width:t,height:e,format:a,type:s}))._texture.refCount=0,new o(3553,t,null)):((t=i.create({width:t,height:e,format:a}))._renderbuffer.refCount=0,new o(36161,null,t))}function f(t){return t&&(t.texture||t.renderbuffer)}function p(t,e,r){t&&(t.texture?t.texture.resize(e,r):t.renderbuffer&&t.renderbuffer.resize(e,r))}function d(){this.id=M++,A[this.id]=this,this.framebuffer=t.createFramebuffer(),this.height=this.width=0,this.colorAttachments=[],this.depthStencilAttachment=this.stencilAttachment=this.depthAttachment=null}function g(t){t.colorAttachments.forEach(s),s(t.depthAttachment),s(t.stencilAttachment),s(t.depthStencilAttachment)}function v(e){t.deleteFramebuffer(e.framebuffer),e.framebuffer=null,a.framebufferCount--,delete A[e.id]}function m(e){var n;t.bindFramebuffer(36160,e.framebuffer);var i=e.colorAttachments;for(n=0;ni;++i){for(u=0;ut;++t)r[t].resize(n);return e.width=e.height=n,e},_reglType:"framebufferCube",destroy:function(){r.forEach(function(t){t.destroy()})}})},clear:function(){W(A).forEach(v)},restore:function(){W(A).forEach(function(e){e.framebuffer=t.createFramebuffer(),m(e)})}})}function T(){this.w=this.z=this.y=this.x=this.state=0,this.buffer=null,this.size=0,this.normalized=!1,this.type=5126,this.divisor=this.stride=this.offset=0}function S(t,e,r,n){function i(t,e,r,n){this.name=t,this.id=e,this.location=r,this.info=n}function a(t,e){for(var r=0;rt&&(t=e.stats.uniformsCount)}),t},r.getMaxAttributesCount=function(){var t=0;return f.forEach(function(e){e.stats.attributesCount>t&&(t=e.stats.attributesCount)}),t}),{clear:function(){var e=t.deleteShader.bind(t);W(u).forEach(e),u={},W(c).forEach(e),c={},f.forEach(function(e){t.deleteProgram(e.program)}),f.length=0,h={},r.shaderCount=0},program:function(t,e,n){var i=h[e];i||(i=h[e]={});var a=i[t];return a||(a=new s(e,t),r.shaderCount++,l(a),i[t]=a,f.push(a)),a},restore:function(){u={},c={};for(var t=0;t="+e+"?"+i+".constant["+e+"]:0;"}).join(""),"}}else{","if(",o,"(",i,".buffer)){",c,"=",s,".createStream(",34962,",",i,".buffer);","}else{",c,"=",s,".getBuffer(",i,".buffer);","}",h,'="type" in ',i,"?",a.glTypes,"[",i,".type]:",c,".dtype;",l.normalized,"=!!",i,".normalized;"),n("size"),n("offset"),n("stride"),n("divisor"),r("}}"),r.exit("if(",l.isStream,"){",s,".destroyStream(",c,");","}"),l})}),o}function k(t,e,r,n,i){var a=_(t),s=function(t,e,r){function n(t){if(t in i){var r=i[t];t=!0;var n,o,s=0|r.x,l=0|r.y;return"width"in r?n=0|r.width:t=!1,"height"in r?o=0|r.height:t=!1,new D(!t&&e&&e.thisDep,!t&&e&&e.contextDep,!t&&e&&e.propDep,function(t,e){var i=t.shared.context,a=n;"width"in r||(a=e.def(i,".","framebufferWidth","-",s));var u=o;return"height"in r||(u=e.def(i,".","framebufferHeight","-",l)),[s,l,a,u]})}if(t in a){var u=a[t];return t=F(u,function(t,e){var r=t.invoke(e,u),n=t.shared.context,i=e.def(r,".x|0"),a=e.def(r,".y|0");return[i,a,e.def('"width" in ',r,"?",r,".width|0:","(",n,".","framebufferWidth","-",i,")"),r=e.def('"height" in ',r,"?",r,".height|0:","(",n,".","framebufferHeight","-",a,")")]}),e&&(t.thisDep=t.thisDep||e.thisDep,t.contextDep=t.contextDep||e.contextDep,t.propDep=t.propDep||e.propDep),t}return e?new D(e.thisDep,e.contextDep,e.propDep,function(t,e){var r=t.shared.context;return[0,0,e.def(r,".","framebufferWidth"),e.def(r,".","framebufferHeight")]}):null}var i=t.static,a=t.dynamic;if(t=n("viewport")){var o=t;t=new D(t.thisDep,t.contextDep,t.propDep,function(t,e){var r=o.append(t,e),n=t.shared.context;return e.set(n,".viewportWidth",r[2]),e.set(n,".viewportHeight",r[3]),r})}return{viewport:t,scissor_box:n("scissor.box")}}(t,a),l=M(t),u=function(t,e){var r=t.static,n=t.dynamic,i={};return nt.forEach(function(t){function e(e,o){if(t in r){var s=e(r[t]);i[a]=R(function(){return s})}else if(t in n){var l=n[t];i[a]=F(l,function(t,e){return o(t,e,t.invoke(e,l))})}}var a=v(t);switch(t){case"cull.enable":case"blend.enable":case"dither":case"stencil.enable":case"depth.enable":case"scissor.enable":case"polygonOffset.enable":case"sample.alpha":case"sample.enable":case"depth.mask":return e(function(t){return t},function(t,e,r){return r});case"depth.func":return e(function(t){return yt[t]},function(t,e,r){return e.def(t.constants.compareFuncs,"[",r,"]")});case"depth.range":return e(function(t){return t},function(t,e,r){return[e.def("+",r,"[0]"),e=e.def("+",r,"[1]")]});case"blend.func":return e(function(t){return[mt["srcRGB"in t?t.srcRGB:t.src],mt["dstRGB"in t?t.dstRGB:t.dst],mt["srcAlpha"in t?t.srcAlpha:t.src],mt["dstAlpha"in t?t.dstAlpha:t.dst]]},function(t,e,r){function n(t,n){return e.def('"',t,n,'" in ',r,"?",r,".",t,n,":",r,".",t)}t=t.constants.blendFuncs;var i=n("src","RGB"),a=n("dst","RGB"),o=(i=e.def(t,"[",i,"]"),e.def(t,"[",n("src","Alpha"),"]"));return[i,a=e.def(t,"[",a,"]"),o,t=e.def(t,"[",n("dst","Alpha"),"]")]});case"blend.equation":return e(function(t){return"string"==typeof t?[J[t],J[t]]:"object"==typeof t?[J[t.rgb],J[t.alpha]]:void 0},function(t,e,r){var n=t.constants.blendEquations,i=e.def(),a=e.def();return(t=t.cond("typeof ",r,'==="string"')).then(i,"=",a,"=",n,"[",r,"];"),t.else(i,"=",n,"[",r,".rgb];",a,"=",n,"[",r,".alpha];"),e(t),[i,a]});case"blend.color":return e(function(t){return o(4,function(e){return+t[e]})},function(t,e,r){return o(4,function(t){return e.def("+",r,"[",t,"]")})});case"stencil.mask":return e(function(t){return 0|t},function(t,e,r){return e.def(r,"|0")});case"stencil.func":return e(function(t){return[yt[t.cmp||"keep"],t.ref||0,"mask"in t?t.mask:-1]},function(t,e,r){return[t=e.def('"cmp" in ',r,"?",t.constants.compareFuncs,"[",r,".cmp]",":",7680),e.def(r,".ref|0"),e=e.def('"mask" in ',r,"?",r,".mask|0:-1")]});case"stencil.opFront":case"stencil.opBack":return e(function(e){return["stencil.opBack"===t?1029:1028,xt[e.fail||"keep"],xt[e.zfail||"keep"],xt[e.zpass||"keep"]]},function(e,r,n){function i(t){return r.def('"',t,'" in ',n,"?",a,"[",n,".",t,"]:",7680)}var a=e.constants.stencilOps;return["stencil.opBack"===t?1029:1028,i("fail"),i("zfail"),i("zpass")]});case"polygonOffset.offset":return e(function(t){return[0|t.factor,0|t.units]},function(t,e,r){return[e.def(r,".factor|0"),e=e.def(r,".units|0")]});case"cull.face":return e(function(t){var e=0;return"front"===t?e=1028:"back"===t&&(e=1029),e},function(t,e,r){return e.def(r,'==="front"?',1028,":",1029)});case"lineWidth":return e(function(t){return t},function(t,e,r){return r});case"frontFace":return e(function(t){return bt[t]},function(t,e,r){return e.def(r+'==="cw"?2304:2305')});case"colorMask":return e(function(t){return t.map(function(t){return!!t})},function(t,e,r){return o(4,function(t){return"!!"+r+"["+t+"]"})});case"sample.coverage":return e(function(t){return["value"in t?t.value:1,!!t.invert]},function(t,e,r){return[e.def('"value" in ',r,"?+",r,".value:1"),e=e.def("!!",r,".invert")]})}}),i}(t),c=w(t),h=s.viewport;return h&&(u.viewport=h),(s=s[h=v("scissor.box")])&&(u[h]=s),(a={framebuffer:a,draw:l,shader:c,state:u,dirty:s=0>1)",s],");")}function e(){r(l,".drawArraysInstancedANGLE(",[d,g,v,s],");")}p?y?t():(r("if(",p,"){"),t(),r("}else{"),e(),r("}")):e()}function o(){function t(){r(c+".drawElements("+[d,v,m,g+"<<(("+m+"-5121)>>1)"]+");")}function e(){r(c+".drawArrays("+[d,g,v]+");")}p?y?t():(r("if(",p,"){"),t(),r("}else{"),e(),r("}")):e()}var s,l,u=t.shared,c=u.gl,h=u.draw,f=n.draw,p=function(){var i=f.elements,a=e;return i?((i.contextDep&&n.contextDynamic||i.propDep)&&(a=r),i=i.append(t,a)):i=a.def(h,".","elements"),i&&a("if("+i+")"+c+".bindBuffer(34963,"+i+".buffer.buffer);"),i}(),d=i("primitive"),g=i("offset"),v=function(){var i=f.count,a=e;return i?((i.contextDep&&n.contextDynamic||i.propDep)&&(a=r),i=i.append(t,a)):i=a.def(h,".","count"),i}();if("number"==typeof v){if(0===v)return}else r("if(",v,"){"),r.exit("}");Q&&(s=i("instances"),l=t.instancing);var m=p+".type",y=f.elements&&O(f.elements);Q&&("number"!=typeof s||0<=s)?"string"==typeof s?(r("if(",s,">0){"),a(),r("}else if(",s,"<0){"),o(),r("}")):a():o()}function q(t,e,r,n,i){return i=(e=b()).proc("body",i),Q&&(e.instancing=i.def(e.shared.extensions,".angle_instanced_arrays")),t(e,i,r,n),e.compile().body}function H(t,e,r,n){L(t,e),N(t,e,r,n.attributes,function(){return!0}),j(t,e,r,n.uniforms,function(){return!0}),V(t,e,e,r)}function G(t,e,r,n){function i(){return!0}t.batchId="a1",L(t,e),N(t,e,r,n.attributes,i),j(t,e,r,n.uniforms,i),V(t,e,e,r)}function W(t,e,r,n){function i(t){return t.contextDep&&o||t.propDep}function a(t){return!i(t)}L(t,e);var o=r.contextDep,s=e.def(),l=e.def();t.shared.props=l,t.batchId=s;var u=t.scope(),c=t.scope();e(u.entry,"for(",s,"=0;",s,"<","a1",";++",s,"){",l,"=","a0","[",s,"];",c,"}",u.exit),r.needsContext&&T(t,c,r.context),r.needsFramebuffer&&S(t,c,r.framebuffer),C(t,c,r.state,i),r.profile&&i(r.profile)&&B(t,c,r,!1,!0),n?(N(t,u,r,n.attributes,a),N(t,c,r,n.attributes,i),j(t,u,r,n.uniforms,a),j(t,c,r,n.uniforms,i),V(t,u,c,r)):(e=t.global.def("{}"),n=r.shader.progVar.append(t,c),l=c.def(n,".id"),u=c.def(e,"[",l,"]"),c(t.shared.gl,".useProgram(",n,".program);","if(!",u,"){",u,"=",e,"[",l,"]=",t.link(function(e){return q(G,t,r,e,2)}),"(",n,");}",u,".call(this,a0[",s,"],",s,");"))}function Y(t,r){function n(e){var n=r.shader[e];n&&i.set(a.shader,"."+e,n.append(t,i))}var i=t.proc("scope",3);t.batchId="a2";var a=t.shared,o=a.current;T(t,i,r.context),r.framebuffer&&r.framebuffer.append(t,i),I(Object.keys(r.state)).forEach(function(e){var n=r.state[e].append(t,i);m(n)?n.forEach(function(r,n){i.set(t.next[e],"["+n+"]",r)}):i.set(a.next,"."+e,n)}),B(t,i,r,!0,!0),["elements","offset","count","instances","primitive"].forEach(function(e){var n=r.draw[e];n&&i.set(a.draw,"."+e,""+n.append(t,i))}),Object.keys(r.uniforms).forEach(function(n){i.set(a.uniforms,"["+e.id(n)+"]",r.uniforms[n].append(t,i))}),Object.keys(r.attributes).forEach(function(e){var n=r.attributes[e].append(t,i),a=t.scopeAttrib(e);Object.keys(new Z).forEach(function(t){i.set(a,"."+t,n[t])})}),n("vert"),n("frag"),0=--this.refCount&&o(this)},i.profile&&(n.getTotalRenderbufferSize=function(){var t=0;return Object.keys(c).forEach(function(e){t+=c[e].stats.size}),t}),{create:function(e,r){function o(e,r){var n=0,a=0,c=32854;if("object"==typeof e&&e?("shape"in e?(n=0|(a=e.shape)[0],a=0|a[1]):("radius"in e&&(n=a=0|e.radius),"width"in e&&(n=0|e.width),"height"in e&&(a=0|e.height)),"format"in e&&(c=s[e.format])):"number"==typeof e?(n=0|e,a="number"==typeof r?0|r:n):e||(n=a=1),n!==u.width||a!==u.height||c!==u.format)return o.width=u.width=n,o.height=u.height=a,u.format=c,t.bindRenderbuffer(36161,u.renderbuffer),t.renderbufferStorage(36161,c,n,a),i.profile&&(u.stats.size=ht[u.format]*u.width*u.height),o.format=l[u.format],o}var u=new a(t.createRenderbuffer());return c[u.id]=u,n.renderbufferCount++,o(e,r),o.resize=function(e,r){var n=0|e,a=0|r||n;return n===u.width&&a===u.height?o:(o.width=u.width=n,o.height=u.height=a,t.bindRenderbuffer(36161,u.renderbuffer),t.renderbufferStorage(36161,u.format,n,a),i.profile&&(u.stats.size=ht[u.format]*u.width*u.height),o)},o._reglType="renderbuffer",o._renderbuffer=u,i.profile&&(o.stats=u.stats),o.destroy=function(){u.decRef()},o},clear:function(){W(c).forEach(o)},restore:function(){W(c).forEach(function(e){e.renderbuffer=t.createRenderbuffer(),t.bindRenderbuffer(36161,e.renderbuffer),t.renderbufferStorage(36161,e.format,e.width,e.height)}),t.bindRenderbuffer(36161,null)}}},pt=[];pt[6408]=4;var dt=[];dt[5121]=1,dt[5126]=4,dt[36193]=2;var gt=["x","y","z","w"],vt="blend.func blend.equation stencil.func stencil.opFront stencil.opBack sample.coverage viewport scissor.box polygonOffset.offset".split(" "),mt={0:0,1:1,zero:0,one:1,"src color":768,"one minus src color":769,"src alpha":770,"one minus src alpha":771,"dst color":774,"one minus dst color":775,"dst alpha":772,"one minus dst alpha":773,"constant color":32769,"one minus constant color":32770,"constant alpha":32771,"one minus constant alpha":32772,"src alpha saturate":776},yt={never:512,less:513,"<":513,equal:514,"=":514,"==":514,"===":514,lequal:515,"<=":515,greater:516,">":516,notequal:517,"!=":517,"!==":517,gequal:518,">=":518,always:519},xt={0:0,zero:0,keep:7680,replace:7681,increment:7682,decrement:7683,"increment wrap":34055,"decrement wrap":34056,invert:5386},bt={cw:2304,ccw:2305},_t=new D(!1,!1,!1,function(){});return function(t){function e(){if(0===X.length)w&&w.update(),Q=null;else{Q=q.next(e),h();for(var t=X.length-1;0<=t;--t){var r=X[t];r&&r(z,null,0)}v.flush(),w&&w.update()}}function r(){!Q&&0=X.length&&n()}}}}function c(){var t=W.viewport,e=W.scissor_box;t[0]=t[1]=e[0]=e[1]=0,z.viewportWidth=z.framebufferWidth=z.drawingBufferWidth=t[2]=e[2]=v.drawingBufferWidth,z.viewportHeight=z.framebufferHeight=z.drawingBufferHeight=t[3]=e[3]=v.drawingBufferHeight}function h(){z.tick+=1,z.time=p(),c(),G.procs.poll()}function f(){c(),G.procs.refresh(),w&&w.update()}function p(){return(H()-M)/1e3}if(!(t=i(t)))return null;var v=t.gl,m=v.getContextAttributes();v.isContextLost();var y=function(t,e){function r(e){var r;e=e.toLowerCase();try{r=n[e]=t.getExtension(e)}catch(t){}return!!r}for(var n={},i=0;ie;++e)$(j({framebuffer:t.framebuffer.faces[e]},t),l);else $(t,l);else l(0,t)},prop:U.define.bind(null,1),context:U.define.bind(null,2),this:U.define.bind(null,3),draw:s({}),buffer:function(t){return I.create(t,34962,!1,!1)},elements:function(t){return D.create(t,!1)},texture:R.create2D,cube:R.createCube,renderbuffer:F.create,framebuffer:V.create,framebufferCube:V.createCube,attributes:m,frame:u,on:function(t,e){var r;switch(t){case"frame":return u(e);case"lost":r=Z;break;case"restore":r=J;break;case"destroy":r=K}return r.push(e),{cancel:function(){for(var t=0;t>>8*e)%256/255}function cF(t,e){var r={};return[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15].map(function(r){return function(t,e,r){var n,i,a,o=[];for(i=0;i=eF-4?uF(o,eF-2-s):.5);return a}(m,v,g,x),A=cF(m,M),k=e.regl,T=k.texture({shape:[256,1],format:"rgba",type:"uint8",mag:"nearest",min:"nearest",data:function(t,e,r){for(var n=[],i=0;i<256;i++){var a=t(i/255);n.push((e?iF:a).concat(r))}return n}(h,f,Math.round(255*(f?b:1)))}),S=k({profile:!1,blend:{enable:y,func:{srcRGB:"src alpha",dstRGB:"one minus src alpha",srcAlpha:1,dstAlpha:1},equation:{rgb:"add",alpha:"add"},color:[0,0,0,0]},depth:{enable:!y,mask:!0,func:"less",range:[0,1]},cull:{enable:!0,face:"back"},scissor:{enable:!0,box:{x:k.prop("scissorX"),y:k.prop("scissorY"),width:k.prop("scissorWidth"),height:k.prop("scissorHeight")}},viewport:{x:k.prop("viewportX"),y:k.prop("viewportY"),width:k.prop("viewportWidth"),height:k.prop("viewportHeight")},dither:!1,vert:p?QR:KR,frag:$R,primitive:"lines",lineWidth:1,attributes:A,uniforms:{resolution:k.prop("resolution"),viewBoxPosition:k.prop("viewBoxPosition"),viewBoxSize:k.prop("viewBoxSize"),dim1A:k.prop("dim1A"),dim2A:k.prop("dim2A"),dim1B:k.prop("dim1B"),dim2B:k.prop("dim2B"),dim1C:k.prop("dim1C"),dim2C:k.prop("dim2C"),dim1D:k.prop("dim1D"),dim2D:k.prop("dim2D"),loA:k.prop("loA"),hiA:k.prop("hiA"),loB:k.prop("loB"),hiB:k.prop("hiB"),loC:k.prop("loC"),hiC:k.prop("hiC"),loD:k.prop("loD"),hiD:k.prop("hiD"),palette:T,colorClamp:k.prop("colorClamp"),scatter:k.prop("scatter")},offset:k.prop("offset"),count:k.prop("count")}),E=[0,1];var C=[];function L(t,e,r,i,o,u,c,h,p,d,v){var m,y,x,b,M=[t,e],A=JR.verticalPadding/u,k=[0,1].map(function(){return[0,1,2,3].map(function(){return new Float32Array(16)})}),T=[0,1].map(function(){return[0,1,2,3].map(function(){return new Float32Array(16)})});for(m=0;m<2;m++)for(b=M[m],y=0;y<4;y++)for(x=0;x<16;x++){var S=x+16*y;k[m][y][x]=x+16*y===b?1:0,T[m][y][x]=(!f&&hF(x,16*y,w)?g[0===S?0:1+(S-1)%(g.length-1)].filter[m]:m)+(2*m-1)*A}return{key:c,resolution:[s,l],viewBoxPosition:[r+_,i],viewBoxSize:[o,u],i:t,ii:e,dim1A:k[0][0],dim1B:k[0][1],dim1C:k[0][2],dim1D:k[0][3],dim2A:k[1][0],dim2B:k[1][1],dim2C:k[1][2],dim2D:k[1][3],loA:T[0][0],loB:T[0][1],loC:T[0][2],loD:T[0][3],hiA:T[1][0],hiB:T[1][1],hiC:T[1][2],hiD:T[1][3],colorClamp:E,scatter:h||0,scissorX:(p===d?0:r+_)+(n.pad.l-_)+n.layoutWidth*a.x[0],scissorWidth:(p===v?s-r+_:o+.5)+(p===d?r+_:0),scissorY:i+n.pad.b+n.layoutHeight*a.y[0],scissorHeight:u,viewportX:n.pad.l-_+n.layoutWidth*a.x[0],viewportY:n.pad.b+n.layoutHeight*a.y[0],viewportWidth:s,viewportHeight:l}}return{setColorDomain:function(t){E[0]=t[0],E[1]=t[1]},render:function(t,e,n){var i,a,u,c=1/0,h=-1/0;for(i=0;ih&&(h=t[i].dim2.canvasX,u=i),t[i].dim1.canvasXi)return a;i=o,a=n[r]}return n[n.length-1]}function xF(t){return e.scale.linear().domain(mF(t))}function bF(t,r,n){var i=gF(r),a=i.trace,o=i.lineColor,s=i.cscale,l=a.line,u=a.domain,c=a.dimensions,h=t.width,f=a.labelfont,p=a.tickfont,d=a.rangefont,g=ne.extendDeep({},l,{color:o.map(xF({values:o,range:[l.cmin,l.cmax],_length:a._commonLength})),blockLineCount:JR.blockLineCount,canvasOverdrag:JR.overdrag*JR.canvasPixelRatio}),v=Math.floor(h*(u.x[1]-u.x[0])),m=Math.floor(t.height*(u.y[1]-u.y[0])),y=t.margin||{l:80,r:80,t:100,b:80},x=v,b=m;return{key:n,colCount:c.filter(vF).length,dimensions:c,tickDistance:JR.tickDistance,unitToColor:function(t){var r=t.map(function(t){return t[0]}),n=t.map(function(t){return t[1]}).map(function(t){return e.rgb(t)}),i="rgb".split("").map(function(t){return e.scale.linear().clamp(!0).domain(r).range(n.map((i=t,function(t){return t[i]})));var i});return function(t){return i.map(function(e){return e(t)})}}(s),lines:g,labelFont:f,tickFont:p,rangeFont:d,layoutWidth:h,layoutHeight:t.height,domain:u,translateX:u.x[0]*h,translateY:t.height-u.y[1]*t.height,pad:y,canvasWidth:x*JR.canvasPixelRatio+2*g.canvasOverdrag,canvasHeight:b*JR.canvasPixelRatio,width:x,height:b,canvasPixelRatio:JR.canvasPixelRatio}}function _F(t){var r=t.width,n=t.height,i=t.dimensions,a=t.canvasPixelRatio,o=function(e){return r*e/Math.max(1,t.colCount-1)},s=JR.verticalPadding/(n*a),l=1-2*s,u=function(t){return s+l*t},c={key:t.key,xScale:o,model:t},h={};return c.dimensions=i.filter(vF).map(function(r,i){var s=xF(r),l=h[r.label];h[r.label]=(l||0)+1;var f=r.label+(l?"__"+l:""),p=r.values;return p.length>r._length&&(p=p.slice(0,r._length)),{key:f,label:r.label,tickFormat:r.tickformat,tickvals:r.tickvals,ticktext:r.ticktext,ordinal:!!r.tickvals,scatter:JR.scatter||r.scatter,xIndex:i,crossfilterDimensionIndex:i,visibleIndex:r._index,height:n,values:p,paddedUnitValues:p.map(s).map(u),xScale:o,x:o(i),canvasX:o(i)*a,unitScale:function(t,r){return e.scale.linear().range([t-r,r])}(n,JR.verticalPadding),domainScale:function(t,r,n){var i=mF(n),a=n.ticktext;return n.tickvals?e.scale.ordinal().domain(n.tickvals.map(function(t,e){return function(r,n){if(e){var i=e[n];return null===i||void 0===i?t(r):i}return t(r)}}(e.format(n.tickformat),a))).range(n.tickvals.map(function(t){return(t-i[0])/(i[1]-i[0])}).map(function(e){return t-r+e*(r-(t-r))})):e.scale.linear().domain(i).range([t-r,r])}(n,JR.verticalPadding,r),ordinalScale:function(t){var r=mF(t);return t.tickvals&&e.scale.ordinal().domain(t.tickvals).range(t.tickvals.map(function(t){return(t-r[0])/(r[1]-r[0])}))}(r),domainToUnitScale:s,filter:r.constraintrange?r.constraintrange.map(s):[0,1],parent:c,model:t}}),c}function wF(t){t.classed(JR.cn.axisExtentText,!0).attr("text-anchor","middle").style("cursor","default").style("user-select","none")}var MF={};(function(t){"use strict";MF=function(r,n){var i=r._fullLayout,a=i._toppaper,o=(i._paperdiv,i._glcontainer);i._glcanvas.each(function(e){e.regl||(e.regl=YR({canvas:this,attributes:{antialias:!e.pick,preserveDrawingBuffer:!0},pixelRatio:r._context.plotGlPixelRatio||t.devicePixelRatio}))});var s={},l={},u=i._size;n.forEach(function(t,e){s[e]=r.data[e].dimensions,l[e]=r.data[e].dimensions.slice()});!function(t,r,n,i,a,o){var s=!1,l=!0;var u=i.filter(function(t){return gF(t).trace.visible}).map(bF.bind(0,a)).map(_F);n.each(function(t,e){return ne.extendFlat(t,u[e])});var c=n.selectAll(".gl-canvas").each(function(t){t.viewModel=u[0],t.model=t.viewModel?t.viewModel.model:null}),h={renderers:[],dimensions:[]},f=null;c.filter(function(t){return t.pick}).style("pointer-events","auto").on("mousemove",function(t){if(l&&t.lineLayer&&o&&o.hover){var r=e.event,n=this.width,i=this.height,a=e.mouse(this),s=a[0],u=a[1];if(s<0||u<0||s>=n||u>=i)return;var c=t.lineLayer.readPixel(s,i-1-u),h=0!==c[3],p=h?c[2]+256*(c[1]+256*c[0]):null,d={x:s,y:u,clientX:r.clientX,clientY:r.clientY,dataIndex:t.model.key,curveNumber:p};p!==f&&(h?o.hover(d):o.unhover&&o.unhover(d),f=p)}}),c.style("opacity",function(t){return t.pick?.01:1}),r.style("background","rgba(255, 255, 255, 0)");var p=r.selectAll("."+JR.cn.parcoords).data(u,pF);p.exit().remove(),p.enter().append("g").classed(JR.cn.parcoords,!0).attr("overflow","visible").style("box-sizing","content-box").style("position","absolute").style("left",0).style("overflow","visible").style("shape-rendering","crispEdges").style("pointer-events","none").call(function(t){var e=t.selectAll("defs").data(dF,pF);e.enter().append("defs");var r=e.selectAll("#"+JR.id.filterBarPattern).data(dF,pF);r.enter().append("pattern").attr("id",JR.id.filterBarPattern).attr("patternUnits","userSpaceOnUse"),r.attr("x",-JR.bar.width).attr("width",JR.bar.capturewidth).attr("height",function(t){return t.model.height});var n=r.selectAll("rect").data(dF,pF);n.enter().append("rect").attr("shape-rendering","crispEdges"),n.attr("height",function(t){return t.model.height}).attr("width",JR.bar.width).attr("x",JR.bar.width/2).attr("fill",JR.bar.fillcolor).attr("fill-opacity",JR.bar.fillopacity).attr("stroke",JR.bar.strokecolor).attr("stroke-opacity",JR.bar.strokeopacity).attr("stroke-width",JR.bar.strokewidth)}),p.attr("width",function(t){return t.model.width+t.model.pad.l+t.model.pad.r}).attr("height",function(t){return t.model.height+t.model.pad.t+t.model.pad.b}).attr("transform",function(t){return"translate("+t.model.translateX+","+t.model.translateY+")"});var d=p.selectAll("."+JR.cn.parcoordsControlView).data(dF,pF);d.enter().append("g").classed(JR.cn.parcoordsControlView,!0).style("box-sizing","content-box"),d.attr("transform",function(t){return"translate("+t.model.pad.l+","+t.model.pad.t+")"});var g=d.selectAll("."+JR.cn.yAxis).data(function(t){return t.dimensions},pF);function v(t){return t.dimensions.some(function(t){return 0!==t.filter[0]||1!==t.filter[1]})}function m(t,e){return(JR.scatter?function(t,e){for(var r=e.panels||(e.panels=[]),n=t.each(function(t){return t})[e.key].map(function(t){return t.__data__}),i=n.length-1,a=i,o=0;oline").attr("fill","none").attr("stroke","black").attr("stroke-opacity",.25).attr("stroke-width","1px"),x.selectAll("text").style("text-shadow","1px 1px 1px #fff, -1px -1px 1px #fff, 1px -1px 1px #fff, -1px 1px 1px #fff").style("cursor","default").style("user-select","none");var b=y.selectAll("."+JR.cn.axisHeading).data(dF,pF);b.enter().append("g").classed(JR.cn.axisHeading,!0);var _=b.selectAll("."+JR.cn.axisTitle).data(dF,pF);_.enter().append("text").classed(JR.cn.axisTitle,!0).attr("text-anchor","middle").style("cursor","ew-resize").style("user-select","none").style("pointer-events","auto"),_.attr("transform","translate(0,"+-JR.axisTitleOffset+")").text(function(t){return t.label}).each(function(t){Sr.font(_,t.model.labelFont)});var w=y.selectAll("."+JR.cn.axisExtent).data(dF,pF);w.enter().append("g").classed(JR.cn.axisExtent,!0);var M=w.selectAll("."+JR.cn.axisExtentTop).data(dF,pF);M.enter().append("g").classed(JR.cn.axisExtentTop,!0),M.attr("transform","translate(0,"+-JR.axisExtentOffset+")");var A=M.selectAll("."+JR.cn.axisExtentTopText).data(dF,pF);function k(t){return t.ordinal?function(){return""}:e.format(t.tickFormat)}A.enter().append("text").classed(JR.cn.axisExtentTopText,!0).call(wF),A.text(function(t){return k(t)(t.domainScale.domain().slice(-1)[0])}).each(function(t){Sr.font(A,t.model.rangeFont)});var T=w.selectAll("."+JR.cn.axisExtentBottom).data(dF,pF);T.enter().append("g").classed(JR.cn.axisExtentBottom,!0),T.attr("transform",function(t){return"translate(0,"+(t.model.height+JR.axisExtentOffset)+")"});var S=T.selectAll("."+JR.cn.axisExtentBottomText).data(dF,pF);S.enter().append("text").classed(JR.cn.axisExtentBottomText,!0).attr("dy","0.75em").call(wF),S.text(function(t){return k(t)(t.domainScale.domain()[0])}).each(function(t){Sr.font(S,t.model.rangeFont)});var E=y.selectAll("."+JR.cn.axisBrush).data(dF,pF),C=E.enter().append("g").classed(JR.cn.axisBrush,!0);E.each(function(t){t.brush||(t.brush=e.svg.brush().y(t.unitScale).on("brushstart",P).on("brush",I).on("brushend",D),0===t.filter[0]&&1===t.filter[1]||t.brush.extent(t.filter),e.select(this).call(t.brush))}),C.selectAll("rect").attr("x",-JR.bar.capturewidth/2).attr("width",JR.bar.capturewidth),C.selectAll("rect.extent").attr("fill","url(#"+JR.id.filterBarPattern+")").style("cursor","ns-resize").filter(function(t){return 0===t.filter[0]&&1===t.filter[1]}).attr("y",-100),C.selectAll(".resize rect").attr("height",JR.bar.handleheight).attr("opacity",0).style("visibility","visible"),C.selectAll(".resize.n rect").style("cursor","n-resize").attr("y",JR.bar.handleoverlap-JR.bar.handleheight),C.selectAll(".resize.s rect").style("cursor","s-resize").attr("y",JR.bar.handleoverlap);var L=!1,z=!1;function P(){L=!0,s=!0}function I(t){l=!1;var r=t.parent,n=t.brush.extent(),i=r.dimensions,a=i[t.xIndex].filter,o=L&&n[0]===n[1];o&&(t.brush.clear(),e.select(this).select("rect.extent").attr("y",-100));var s=o?[0,1]:n.slice();if(s[0]!==a[0]||s[1]!==a[1]){i[t.xIndex].filter=s,r.focusLayer&&r.focusLayer.render(r.panels,!0);var u=v(r);!z&&u?(r.contextLayer&&r.contextLayer.render(r.panels,!0),z=!0):z&&!u&&(r.contextLayer&&r.contextLayer.render(r.panels,!0,!0),z=!1)}L=!1}function D(t){var r=t.parent,n=t.brush.extent(),i=n[0]===n[1],a=r.dimensions[t.xIndex].filter;if(!i&&t.ordinal&&(a[0]=yF(t.ordinalScale,a[0]),a[1]=yF(t.ordinalScale,a[1]),a[0]===a[1]&&(a[0]=Math.max(0,a[0]-.05),a[1]=Math.min(1,a[1]+.05)),e.select(this).transition().duration(150).call(t.brush.extent(a)),r.focusLayer.render(r.panels,!0)),r.pickLayer&&r.pickLayer.render(r.panels,!0),l=!0,s="ending",o&&o.filterChanged){var u=t.domainToUnitScale.invert,c=a.map(u);o.filterChanged(r.key,t.visibleIndex,c)}}}(0,a,o,n,{width:u.w,height:u.h,margin:{t:u.t,r:u.r,b:u.b,l:u.l}},{filterChanged:function(t,e,n){var i=l[t][e],a=i.constraintrange;a&&2===a.length||(a=i.constraintrange=[]),a[0]=n[0],a[1]=n[1],r.emit("plotly_restyle")},hover:function(t){r.emit("plotly_hover",t)},unhover:function(t){r.emit("plotly_unhover",t)},axesMoved:function(t,e){function n(t){return!("visible"in t)||t.visible}function i(t,e,r){var n=e.indexOf(r),i=t.indexOf(n);return-1===i&&(i+=e.length),i}var a=function(t){return function(r,n){return i(e,t,r)-i(e,t,n)}}(l[t].filter(n));s[t].sort(a),l[t].filter(function(t){return!n(t)}).sort(function(e){return l[t].indexOf(e)}).forEach(function(e){s[t].splice(s[t].indexOf(e),1),s[t].splice(l[t].indexOf(e),0,e)}),r.emit("plotly_restyle")}})}}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{});var AF={},kF=sa.getModuleCalcData;AF.name="parcoords",AF.plot=function(t){var e=kF(t.calcdata,"parcoords");e.length&&MF(t,e)},AF.clean=function(t,e,r,n){var i=n._has&&n._has("parcoords"),a=e._has&&e._has("parcoords");i&&!a&&(n._paperdiv.selectAll(".parcoords").remove(),n._glimages.selectAll("*").remove())},AF.toSVG=function(t){var r=t._fullLayout._glimages,n=e.select(t).selectAll(".svg-container");n.filter(function(t,e){return e===n.size()-1}).selectAll(".gl-canvas-context, .gl-canvas-focus").each(function(){var t=this.toDataURL("image/png");r.append("svg:image").attr({xmlns:$e.svg,"xlink:href":t,preserveAspectRatio:"none",x:0,y:0,width:this.width,height:this.height})}),window.setTimeout(function(){e.selectAll("#filterBarPattern").attr("id","filterBarPattern")},60)};var TF=ZR.wrap;var SF=JR.maxDimensionCount,EF=qc.defaults;var CF={};CF.attributes=WR,CF.supplyDefaults=function(t,e,r,n){function i(r,n){return ne.coerce(t,e,WR,r,n)}var a=function(t,e){var r,n,i,a=t.dimensions||[],o=e.dimensions=[],s=1/0;function l(t,e){return ne.coerce(r,n,WR.dimensions,t,e)}for(a.length>SF&&(ne.log("parcoords traces support up to "+SF+" dimensions at the moment"),a.splice(SF)),i=0;i0?1:-1)/2,y:a/(1+r*r/(n*n)),outside:!0}}var WF={};WF.attributes=DF,WF.supplyDefaults=function(t,e,r,n){function i(r,n){return ne.coerce(t,e,DF,r,n)}var a=ne.coerceFont,o=i("values"),s=i("labels");if(!Array.isArray(s)){if(!ne.isArrayOrTypedArray(o)||!o.length)return void(e.visible=!1);i("label0"),i("dlabel")}i("marker.line.width")&&i("marker.line.color"),i("marker.colors"),i("scalegroup");var l=i("text"),u=i("textinfo",Array.isArray(l)?"text+percent":"percent");if(i("hovertext"),u&&"none"!==u){var c=i("textposition"),h=Array.isArray(c)||"auto"===c,f=h||"inside"===c,p=h||"outside"===c;if(f||p){var d=a(i,"textfont",n.font);f&&a(i,"insidetextfont",d),p&&a(i,"outsidetextfont",d)}}jF(e,n,i),i("hole"),i("sort"),i("direction"),i("rotation"),i("pull")},WF.supplyLayoutDefaults=function(t,e){var r,n;r="hiddenlabels",ne.coerce(t,e,VF,r,n)},WF.layoutAttributes=VF,WF.calc=function(t,e){var n,i,a,o,l,u=e.values,c=FF(u)&&u.length,h=e.labels,f=e.marker.colors||[],p=[],d=t._fullLayout,g=d.colorway,v=d._piecolormap,m={},y=0,x=d.hiddenlabels||[];if(d._piecolorway||g===Oe.defaults||(d._piecolorway=NF(g)),e.dlabel)for(h=new Array(u.length),n=0;n")}}return p},WF.plot=function(t,r){var n=t._fullLayout;!function(t,e){var r,n,i,a,o,s,l,u,c,h=[];for(i=0;il&&(l=s.pull[a]);o.r=Math.min(r,n)/(2+2*l),o.cx=e.l+e.w*(s.domain.x[1]+s.domain.x[0])/2,o.cy=e.t+e.h*(2-s.domain.y[1]-s.domain.y[0])/2,s.scalegroup&&-1===h.indexOf(s.scalegroup)&&h.push(s.scalegroup)}for(a=0;ai.vTotal/2?1:0)}(r),i.each(function(){var i=e.select(this).selectAll("g.slice").data(r);i.enter().append("g").classed("slice",!0),i.exit().remove();var s=[[[],[]],[[],[]]],l=!1;i.each(function(r){if(r.hidden)e.select(this).selectAll("path,g").remove();else{r.pointNumber=r.i,r.curveNumber=o.index,s[r.pxmid[1]<0?0:1][r.pxmid[0]<0?0:1].push(r);var i=a.cx,u=a.cy,c=e.select(this),h=c.selectAll("path.surface").data([r]),f=!1,p=!1;if(h.enter().append("path").classed("surface",!0).style({"pointer-events":"all"}),c.select("path.textline").remove(),c.on("mouseover",function(){var s=t._fullLayout,l=t._fullData[o.index];if(!t._dragging&&!1!==s.hovermode){var c=l.hoverinfo;if(Array.isArray(c)&&(c=yo.castHoverinfo({hoverinfo:[Gd.castOption(c,r.pts)],_module:o._module},s,0)),"all"===c&&(c="label+text+value+percent+name"),"none"!==c&&"skip"!==c&&c){var h=HF(r,a),d=i+r.pxmid[0]*(1-h),g=u+r.pxmid[1]*(1-h),v=n.separators,m=[];if(-1!==c.indexOf("label")&&m.push(r.label),-1!==c.indexOf("text")){var y=Gd.castOption(l.hovertext||l.text,r.pts);y&&m.push(y)}-1!==c.indexOf("value")&&m.push(Gd.formatPieValue(r.v,v)),-1!==c.indexOf("percent")&&m.push(Gd.formatPiePercent(r.v/a.vTotal,v));var x=o.hoverlabel,b=x.font;yo.loneHover({x0:d-h*a.r,x1:d+h*a.r,y:g,text:m.join("
    "),name:-1!==c.indexOf("name")?l.name:void 0,idealAlign:r.pxmid[0]<0?"left":"right",color:Gd.castOption(x.bgcolor,r.pts)||r.color,borderColor:Gd.castOption(x.bordercolor,r.pts),fontFamily:Gd.castOption(b.family,r.pts),fontSize:Gd.castOption(b.size,r.pts),fontColor:Gd.castOption(b.color,r.pts)},{container:s._hoverlayer.node(),outerContainer:s._paper.node(),gd:t}),f=!0}t.emit("plotly_hover",{points:[qF(r,l)],event:e.event}),p=!0}}).on("mouseout",function(n){var i=t._fullLayout,a=t._fullData[o.index];p&&(n.originalEvent=e.event,t.emit("plotly_unhover",{points:[qF(r,a)],event:e.event}),p=!1),f&&(yo.loneUnhover(i._hoverlayer.node()),f=!1)}).on("click",function(){var n=t._fullLayout,i=t._fullData[o.index];t._dragging||!1===n.hovermode||(t._hoverdata=[qF(r,i)],yo.click(t,e.event))}),o.pull){var d=+Gd.castOption(o.pull,r.pts)||0;d>0&&(i+=d*r.pxmid[0],u+=d*r.pxmid[1])}r.cxFinal=i,r.cyFinal=u;var g=o.hole;if(r.v===a.vTotal){var v="M"+(i+r.px0[0])+","+(u+r.px0[1])+_(r.px0,r.pxmid,!0,1)+_(r.pxmid,r.px0,!0,1)+"Z";g?h.attr("d","M"+(i+g*r.px0[0])+","+(u+g*r.px0[1])+_(r.px0,r.pxmid,!1,g)+_(r.pxmid,r.px0,!1,g)+"Z"+v):h.attr("d",v)}else{var m=_(r.px0,r.px1,!0,1);if(g){var y=1-g;h.attr("d","M"+(i+g*r.px1[0])+","+(u+g*r.px1[1])+_(r.px1,r.px0,!1,g)+"l"+y*r.px0[0]+","+y*r.px0[1]+m+"Z")}else h.attr("d","M"+i+","+u+"l"+r.px0[0]+","+r.px0[1]+m+"Z")}var x=Gd.castOption(o.textposition,r.pts),b=c.selectAll("g.slicetext").data(r.text&&"none"!==x?[0]:[]);b.enter().append("g").classed("slicetext",!0),b.exit().remove(),b.each(function(){var n=e.select(this).selectAll("text").data([0]);n.enter().append("text").attr("data-notex",1),n.exit().remove(),n.text(r.text).attr({class:"slicetext",transform:"","text-anchor":"middle"}).call(Sr.font,"outside"===x?o.outsidetextfont:o.insidetextfont).call(er.convertToTspans,t);var s,c=Sr.bBox(n.node());"outside"===x?s=GF(c,r):(s=function(t,e,r){var n=Math.sqrt(t.width*t.width+t.height*t.height),i=t.width/t.height,a=Math.PI*Math.min(e.v/r.vTotal,.5),o=1-r.trace.hole,s=HF(e,r),l={scale:s*r.r*2/n,rCenter:1-s,rotate:0};if(l.scale>=1)return l;var u=i+1/(2*Math.tan(a)),c=r.r*Math.min(1/(Math.sqrt(u*u+.5)+u),o/(Math.sqrt(i*i+o/2)+i)),h={scale:2*c/t.height,rCenter:Math.cos(c/r.r)-c*i/r.r,rotate:(180/Math.PI*e.midangle+720)%180-90},f=1/i,p=f+1/(2*Math.tan(a)),d=r.r*Math.min(1/(Math.sqrt(p*p+.5)+p),o/(Math.sqrt(f*f+o/2)+f)),g={scale:2*d/t.width,rCenter:Math.cos(d/r.r)-d/i/r.r,rotate:(180/Math.PI*e.midangle+810)%180-90},v=g.scale>h.scale?g:h;return l.scale<1&&v.scale>l.scale?v:l}(c,r,a),"auto"===x&&s.scale<1&&(n.call(Sr.font,o.outsidetextfont),o.outsidetextfont.family===o.insidetextfont.family&&o.outsidetextfont.size===o.insidetextfont.size||(c=Sr.bBox(n.node())),s=GF(c,r)));var h=i+r.pxmid[0]*s.rCenter+(s.x||0),f=u+r.pxmid[1]*s.rCenter+(s.y||0);s.outside&&(r.yLabelMin=f-c.height/2,r.yLabelMid=f,r.yLabelMax=f+c.height/2,r.labelExtraX=0,r.labelExtraY=0,l=!0),n.attr("transform","translate("+h+","+f+")"+(s.scale<1?"scale("+s.scale+")":"")+(s.rotate?"rotate("+s.rotate+")":"")+"translate("+-(c.left+c.right)/2+","+-(c.top+c.bottom)/2+")")})}function _(t,e,n,i){return"a"+i*a.r+","+i*a.r+" 0 "+r.largeArc+(n?" 1 ":" 0 ")+i*(e[0]-t[0])+","+i*(e[1]-t[1])}}),l&&function(t,e){var r,n,i,a,o,s,l,u,c,h,f,p,d;function g(t,e){return t.pxmid[1]-e.pxmid[1]}function v(t,e){return e.pxmid[1]-t.pxmid[1]}function m(t,r){r||(r={});var i,u,c,f,p,d,g=r.labelExtraY+(n?r.yLabelMax:r.yLabelMin),v=n?t.yLabelMin:t.yLabelMax,m=n?t.yLabelMax:t.yLabelMin,y=t.cyFinal+o(t.px0[1],t.px1[1]),x=g-v;if(x*l>0&&(t.labelExtraY=x),Array.isArray(e.pull))for(u=0;u=(Gd.castOption(e.pull,c.pts)||0)||((t.pxmid[1]-c.pxmid[1])*l>0?(f=c.cyFinal+o(c.px0[1],c.px1[1]),(x=f-v-t.labelExtraY)*l>0&&(t.labelExtraY+=x)):(m+t.labelExtraY-y)*l>0&&(i=3*s*Math.abs(u-h.indexOf(t)),p=c.cxFinal+a(c.px0[0],c.px1[0]),(d=p+i-(t.cxFinal+t.pxmid[0])-t.labelExtraX)*s>0&&(t.labelExtraX+=d)))}for(n=0;n<2;n++)for(i=n?g:v,o=n?Math.max:Math.min,l=n?1:-1,r=0;r<2;r++){for(a=r?Math.max:Math.min,s=r?1:-1,(u=t[n][r]).sort(i),c=t[1-n][r],h=c.concat(u),p=[],f=0;fMath.abs(u)?a+="l"+u*t.pxmid[0]/t.pxmid[1]+","+u+"H"+(i+t.labelExtraX+s):a+="l"+t.labelExtraX+","+l+"v"+(u-l)+"h"+s}else a+="V"+(t.yLabelMid+t.labelExtraY)+"h"+s;r.append("path").classed("textline",!0).call(Oe.stroke,o.outsidetextfont.color).attr({"stroke-width":Math.min(2,o.outsidetextfont.size/8),d:a,fill:"none"})}})})}),setTimeout(function(){i.selectAll("tspan").each(function(){var t=e.select(this);t.attr("dy")&&t.attr("dy",t.attr("dy"))})},0)},WF.style=function(t){t._fullLayout._pielayer.selectAll(".trace").each(function(t){var r=t[0].trace,n=e.select(this);n.style({opacity:r.opacity}),n.selectAll("path.surface").each(function(t){e.select(this).call(Yd,t,r)})})},WF.styleOne=Yd,WF.moduleType="trace",WF.name="pie",WF.basePlotModule=OF,WF.categories=["pie","showLegend"],WF.meta={};var YF=WF,XF={x:Zr.x,y:Zr.y,xy:{valType:"data_array",editType:"calc"},indices:{valType:"data_array",editType:"calc"},xbounds:{valType:"data_array",editType:"calc"},ybounds:{valType:"data_array",editType:"calc"},text:Zr.text,marker:{color:{valType:"color",arrayOk:!1,editType:"calc"},opacity:{valType:"number",min:0,max:1,dflt:1,arrayOk:!1,editType:"calc"},blend:{valType:"boolean",dflt:null,editType:"calc"},sizemin:{valType:"number",min:.1,max:2,dflt:.5,editType:"calc"},sizemax:{valType:"number",min:.1,dflt:20,editType:"calc"},border:{color:{valType:"color",arrayOk:!1,editType:"calc"},arearatio:{valType:"number",min:0,max:1,dflt:0,editType:"calc"},editType:"calc"},editType:"calc"}},ZF={};ZF.pointVertex=E_(["precision mediump float;\n#define GLSLIFY 1\n\nattribute vec2 position;\n\nuniform mat3 matrix;\nuniform float pointSize;\nuniform float pointCloud;\n\nhighp float rand(vec2 co) {\n highp float a = 12.9898;\n highp float b = 78.233;\n highp float c = 43758.5453;\n highp float d = dot(co.xy, vec2(a, b));\n highp float e = mod(d, 3.14);\n return fract(sin(e) * c);\n}\n\nvoid main() {\n vec3 hgPosition = matrix * vec3(position, 1);\n gl_Position = vec4(hgPosition.xy, 0, hgPosition.z);\n // if we don't jitter the point size a bit, overall point cloud\n // saturation 'jumps' on zooming, which is disturbing and confusing\n gl_PointSize = pointSize * ((19.5 + rand(position)) / 20.0);\n if(pointCloud != 0.0) { // pointCloud is truthy\n // get the same square surface as circle would be\n gl_PointSize *= 0.886;\n }\n}"]),ZF.pointFragment=E_(["precision mediump float;\n#define GLSLIFY 1\n\nuniform vec4 color, borderColor;\nuniform float centerFraction;\nuniform float pointCloud;\n\nvoid main() {\n float radius;\n vec4 baseColor;\n if(pointCloud != 0.0) { // pointCloud is truthy\n if(centerFraction == 1.0) {\n gl_FragColor = color;\n } else {\n gl_FragColor = mix(borderColor, color, centerFraction);\n }\n } else {\n radius = length(2.0 * gl_PointCoord.xy - 1.0);\n if(radius > 1.0) {\n discard;\n }\n baseColor = mix(borderColor, color, step(radius, centerFraction));\n gl_FragColor = vec4(baseColor.rgb * baseColor.a, baseColor.a);\n }\n}\n"]),ZF.pickVertex=E_(["precision mediump float;\n#define GLSLIFY 1\n\nattribute vec2 position;\nattribute vec4 pickId;\n\nuniform mat3 matrix;\nuniform float pointSize;\nuniform vec4 pickOffset;\n\nvarying vec4 fragId;\n\nvoid main() {\n vec3 hgPosition = matrix * vec3(position, 1);\n gl_Position = vec4(hgPosition.xy, 0, hgPosition.z);\n gl_PointSize = pointSize;\n\n vec4 id = pickId + pickOffset;\n id.y += floor(id.x / 256.0);\n id.x -= floor(id.x / 256.0) * 256.0;\n\n id.z += floor(id.y / 256.0);\n id.y -= floor(id.y / 256.0) * 256.0;\n\n id.w += floor(id.z / 256.0);\n id.z -= floor(id.z / 256.0) * 256.0;\n\n fragId = id;\n}\n"]),ZF.pickFragment=E_(["precision mediump float;\n#define GLSLIFY 1\n\nvarying vec4 fragId;\n\nvoid main() {\n float radius = length(2.0 * gl_PointCoord.xy - 1.0);\n if(radius > 1.0) {\n discard;\n }\n gl_FragColor = fragId / 255.0;\n}\n"]);var JF=function(t,e){var r=t.gl,n=S_(r),i=S_(r),a=Bw(r,ZF.pointVertex,ZF.pointFragment),o=Bw(r,ZF.pickVertex,ZF.pickFragment),s=new KF(t,n,i,a,o);return s.update(e),t.addObject(s),s};function KF(t,e,r,n,i){this.plot=t,this.offsetBuffer=e,this.pickBuffer=r,this.shader=n,this.pickShader=i,this.sizeMin=.5,this.sizeMinCap=2,this.sizeMax=20,this.areaRatio=1,this.pointCount=0,this.color=[1,0,0,1],this.borderColor=[0,0,0,1],this.blend=!1,this.pickOffset=0,this.points=null}var QF=KF.prototype;QF.dispose=function(){this.shader.dispose(),this.pickShader.dispose(),this.offsetBuffer.dispose(),this.pickBuffer.dispose(),this.plot.removeObject(this)},QF.update=function(t){var e;function r(e,r){return e in t?t[e]:r}t=t||{},this.sizeMin=r("sizeMin",.5),this.sizeMax=r("sizeMax",20),this.color=r("color",[1,0,0,1]).slice(),this.areaRatio=r("areaRatio",1),this.borderColor=r("borderColor",[0,0,0,1]).slice(),this.blend=r("blend",!1);var n=t.positions.length>>>1,i=t.positions instanceof Float32Array,a=t.idToIndex instanceof Int32Array&&t.idToIndex.length>=n,o=t.positions,s=i?o:__.mallocFloat32(o.length),l=a?t.idToIndex:__.mallocInt32(n);if(i||s.set(o),!a)for(s.set(o),e=0;e>>1;for(r=0;r=e[0]&&a<=e[2]&&o>=e[1]&&o<=e[3]&&n++}return n}(this.points,o),c=this.plot.pickPixelRatio*Math.max(Math.min(this.sizeMinCap,this.sizeMin),Math.min(this.sizeMax,this.sizeMax/Math.pow(u,.33333)));t[0]=2/s,t[4]=2/l,t[6]=-2*o[0]/s-1,t[7]=-2*o[1]/l-1,this.offsetBuffer.bind(),i.bind(),i.attributes.position.pointer(),i.uniforms.matrix=t,i.uniforms.color=this.color,i.uniforms.borderColor=this.borderColor,i.uniforms.pointCloud=c<5,i.uniforms.pointSize=c,i.uniforms.centerFraction=Math.min(1,Math.max(0,Math.sqrt(1-this.areaRatio))),n&&(e[0]=255&r,e[1]=r>>8&255,e[2]=r>>16&255,e[3]=r>>24&255,this.pickBuffer.bind(),i.attributes.pickId.pointer(a.UNSIGNED_BYTE),i.uniforms.pickOffset=e,this.pickOffset=r);var h=a.getParameter(a.BLEND),f=a.getParameter(a.DITHER);return h&&!this.blend&&a.disable(a.BLEND),f&&a.disable(a.DITHER),a.drawArrays(a.POINTS,0,this.pointCount),h&&!this.blend&&a.enable(a.BLEND),f&&a.enable(a.DITHER),r+this.pointCount}}(),QF.draw=QF.unifiedDraw,QF.drawPick=QF.unifiedDraw,QF.pick=function(t,e,r){var n=this.pickOffset,i=this.pointCount;if(r=n+i)return null;var a=r-n,o=this.points;return{object:this,pointId:a,dataCoord:[o[2*a],o[2*a+1]]}};var $F=jn;function tB(t,e){this.scene=t,this.uid=e,this.type="pointcloud",this.pickXData=[],this.pickYData=[],this.xData=[],this.yData=[],this.textLabels=[],this.color="rgb(0, 0, 0)",this.name="",this.hoverinfo="all",this.idToIndex=new Int32Array(0),this.bounds=[0,0,0,0],this.pointcloudOptions={positions:new Float32Array(0),idToIndex:this.idToIndex,sizemin:.5,sizemax:12,color:[0,0,0,1],areaRatio:1,borderColor:[0,0,0,1]},this.pointcloud=JF(t.glplot,this.pointcloudOptions),this.pointcloud._trace=this}var eB=tB.prototype;eB.handlePick=function(t){var e=this.idToIndex[t.pointId];return{trace:this,dataCoord:t.dataCoord,traceCoord:this.pickXYData?[this.pickXYData[2*e],this.pickXYData[2*e+1]]:[this.pickXData[e],this.pickYData[e]],textLabel:Array.isArray(this.textLabels)?this.textLabels[e]:this.textLabels,color:this.color,name:this.name,pointIndex:e,hoverinfo:this.hoverinfo}},eB.update=function(t){this.index=t.index,this.textLabels=t.text,this.name=t.name,this.hoverinfo=t.hoverinfo,this.bounds=[1/0,1/0,-1/0,-1/0],this.updateFast(t),this.color=mx(t,{})},eB.updateFast=function(t){var e,r,n,i,a,o,s=this.xData=this.pickXData=t.x,l=this.yData=this.pickYData=t.y,u=this.pickXYData=t.xy,c=t.xbounds&&t.ybounds,h=t.indices,f=this.bounds;if(u){if(n=u,e=u.length>>>1,c)f[0]=t.xbounds[0],f[2]=t.xbounds[1],f[1]=t.ybounds[0],f[3]=t.ybounds[1];else for(o=0;of[2]&&(f[2]=i),af[3]&&(f[3]=a);if(h)r=h;else for(r=new Int32Array(e),o=0;of[2]&&(f[2]=i),af[3]&&(f[3]=a);this.idToIndex=r,this.pointcloudOptions.idToIndex=r,this.pointcloudOptions.positions=n;var p=WC(t.marker.color),d=WC(t.marker.border.color),g=t.opacity*t.marker.opacity;p[3]*=g,this.pointcloudOptions.color=p;var v=t.marker.blend;if(null===v){v=s.length<100||l.length<100}this.pointcloudOptions.blend=v,d[3]*=g,this.pointcloudOptions.borderColor=d;var m=t.marker.sizemin,y=Math.max(t.marker.sizemax,t.marker.sizemin);this.pointcloudOptions.sizeMin=m,this.pointcloudOptions.sizeMax=y,this.pointcloudOptions.areaRatio=t.marker.border.arearatio,this.pointcloud.update(this.pointcloudOptions),this.expandAxesFast(f,y/2)},eB.expandAxesFast=function(t,e){var r=e||.5;$F(this.scene.xaxis,[t[0],t[2]],{ppad:r}),$F(this.scene.yaxis,[t[1],t[3]],{ppad:r})},eB.dispose=function(){this.pointcloud.dispose()};var rB=function(t,e){var r=new tB(t,e.uid);return r.update(e),r},nB=function(t,e){var r=[{x:!1,y:!1,trace:e,t:{}}];return dh(r,e),ex(e),r},iB={};iB.attributes=XF,iB.supplyDefaults=function(t,e,r){function n(r,n){return ne.coerce(t,e,XF,r,n)}n("x"),n("y"),n("xbounds"),n("ybounds"),t.xy&&t.xy instanceof Float32Array&&(e.xy=t.xy),t.indices&&t.indices instanceof Int32Array&&(e.indices=t.indices),n("text"),n("marker.color",r),n("marker.opacity"),n("marker.blend"),n("marker.sizemin"),n("marker.sizemax"),n("marker.border.color",r),n("marker.border.arearatio")},iB.calc=nB,iB.plot=rB,iB.moduleType="trace",iB.name="pointcloud",iB.basePlotModule=sL,iB.categories=["gl","gl2d","showLegend"],iB.meta={};var aB=iB,oB=qc.attributes,sB=m.extendFlat,lB=(0,ye.overrideAll)({hoverinfo:sB({},E.hoverinfo,{flags:["label","text","value","percent","name"]}),hoverlabel:S.hoverlabel,domain:oB({name:"sankey",trace:!0}),orientation:{valType:"enumerated",values:["v","h"],dflt:"h"},valueformat:{valType:"string",dflt:".3s"},valuesuffix:{valType:"string",dflt:""},arrangement:{valType:"enumerated",values:["snap","perpendicular","freeform","fixed"],dflt:"snap"},textfont:T({}),node:{label:{valType:"data_array",dflt:[]},color:{valType:"color",arrayOk:!0},line:{color:{valType:"color",dflt:C.defaultLine,arrayOk:!0},width:{valType:"number",min:0,dflt:.5,arrayOk:!0}},pad:{valType:"number",arrayOk:!1,min:0,dflt:20},thickness:{valType:"number",arrayOk:!1,min:1,dflt:20}},link:{label:{valType:"data_array",dflt:[]},color:{valType:"color",arrayOk:!0},line:{color:{valType:"color",dflt:C.defaultLine,arrayOk:!0},width:{valType:"number",min:0,dflt:0,arrayOk:!0}},source:{valType:"data_array",dflt:[]},target:{valType:"data_array",dflt:[]},value:{valType:"data_array",dflt:[]}}},"calc","nested"),uB={nodeTextOffsetHorizontal:4,nodeTextOffsetVertical:3,nodePadAcross:10,sankeyIterations:50,forceIterations:5,forceTicksPerFrame:10,duration:500,ease:"cubic-in-out",cn:{sankey:"sankey",sankeyLinks:"sankey-links",sankeyLink:"sankey-link",sankeyNodeSet:"sankey-node-set",sankeyNode:"sankey-node",nodeRect:"node-rect",nodeCapture:"node-capture",nodeCentered:"node-entered",nodeLabelGuide:"node-label-guide",nodeLabel:"node-label",nodeLabelTextPath:"node-label-text-path"}},cB={exports:{}};!function(t,e){"object"==typeof cB.exports?e(cB.exports):e(t.d3=t.d3||{})}(this,function(t){"use strict";var e=function(t,e){return te?1:t>=e?0:NaN},r=function(t){var r;return 1===t.length&&(r=t,t=function(t,n){return e(r(t),n)}),{left:function(e,r,n,i){for(null==n&&(n=0),null==i&&(i=e.length);n>>1;t(e[a],r)<0?n=a+1:i=a}return n},right:function(e,r,n,i){for(null==n&&(n=0),null==i&&(i=e.length);n>>1;t(e[a],r)>0?i=a:n=a+1}return n}}};var n=r(e),i=n.right,a=n.left;function o(t,e){return[t,e]}var s=function(t){return null===t?NaN:+t},l=function(t,e){var r,n,i=t.length,a=0,o=-1,l=0,u=0;if(null==e)for(;++o1)return u/(a-1)},u=function(t,e){var r=l(t,e);return r?Math.sqrt(r):r},c=function(t,e){var r,n,i,a=t.length,o=-1;if(null==e){for(;++o=r)for(n=i=r;++or&&(n=r),i=r)for(n=i=r;++or&&(n=r),i=0?(a>=m?10:a>=y?5:a>=x?2:1)*Math.pow(10,i):-Math.pow(10,-i)/(a>=m?10:a>=y?5:a>=x?2:1)}function _(t,e,r){var n=Math.abs(e-t)/Math.max(0,r),i=Math.pow(10,Math.floor(Math.log(n)/Math.LN10)),a=n/i;return a>=m?i*=10:a>=y?i*=5:a>=x&&(i*=2),e=1)return+r(t[n-1],n-1,t);var n,i=(n-1)*e,a=Math.floor(i),o=+r(t[a],a,t);return o+(+r(t[a+1],a+1,t)-o)*(i-a)}},A=function(t,e){var r,n,i=t.length,a=-1;if(null==e){for(;++a=r)for(n=r;++ar&&(n=r)}else for(;++a=r)for(n=r;++ar&&(n=r);return n},k=function(t){if(!(i=t.length))return[];for(var e=-1,r=A(t,T),n=new Array(r);++et?1:e>=t?0:NaN},t.deviation=u,t.extent=c,t.histogram=function(){var t=g,e=c,r=w;function n(n){var a,o,s=n.length,l=new Array(s);for(a=0;ah;)f.pop(),--p;var d,g=new Array(p+1);for(a=0;a<=p;++a)(d=g[a]=[]).x0=a>0?f[a-1]:c,d.x1=a=r)for(n=r;++an&&(n=r)}else for(;++a=r)for(n=r;++an&&(n=r);return n},t.mean=function(t,e){var r,n=t.length,i=n,a=-1,o=0;if(null==e)for(;++a=0;)for(e=(n=t[i]).length;--e>=0;)r[--o]=n[e];return r},t.min=A,t.pairs=function(t,e){null==e&&(e=o);for(var r=0,n=t.length-1,i=t[0],a=new Array(n<0?0:n);r0)return[t];if((n=e0)for(t=Math.ceil(t/o),e=Math.floor(e/o),a=new Array(i=Math.ceil(e-t+1));++s=l.length)return null!=t&&n.sort(t),null!=e?e(n):n;for(var s,u,h,f=-1,p=n.length,d=l[i++],g=r(),v=a();++fl.length)return r;var i,a=u[n-1];return null!=e&&n>=l.length?i=r.entries():(i=[],r.each(function(e,r){i.push({key:r,values:t(e,n)})})),null!=a?i.sort(function(t,e){return a(t.key,e.key)}):i}(c(t,0,a,o),0)},key:function(t){return l.push(t),s},sortKeys:function(t){return u[l.length-1]=t,s},sortValues:function(e){return t=e,s},rollup:function(t){return e=t,s}}},t.set=u,t.map=r,t.keys=function(t){var e=[];for(var r in t)e.push(r);return e},t.values=function(t){var e=[];for(var r in t)e.push(t[r]);return e},t.entries=function(t){var e=[];for(var r in t)e.push({key:r,value:t[r]});return e},Object.defineProperty(t,"__esModule",{value:!0})}),hB=hB.exports;var fB={exports:{}};!function(t,e){"object"==typeof fB.exports?e(fB.exports):e(t.d3=t.d3||{})}(this,function(t){"use strict";var e=function(t,e,r){t.prototype=e.prototype=r,r.constructor=t};function r(t,e){var r=Object.create(t.prototype);for(var n in e)r[n]=e[n];return r}function n(){}var i="\\s*([+-]?\\d+)\\s*",a="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)\\s*",o="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)%\\s*",s=/^#([0-9a-f]{3})$/,l=/^#([0-9a-f]{6})$/,u=new RegExp("^rgb\\("+[i,i,i]+"\\)$"),c=new RegExp("^rgb\\("+[o,o,o]+"\\)$"),h=new RegExp("^rgba\\("+[i,i,i,a]+"\\)$"),f=new RegExp("^rgba\\("+[o,o,o,a]+"\\)$"),p=new RegExp("^hsl\\("+[a,o,o]+"\\)$"),d=new RegExp("^hsla\\("+[a,o,o,a]+"\\)$"),g={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};function v(t){var e;return t=(t+"").trim().toLowerCase(),(e=s.exec(t))?new _((e=parseInt(e[1],16))>>8&15|e>>4&240,e>>4&15|240&e,(15&e)<<4|15&e,1):(e=l.exec(t))?m(parseInt(e[1],16)):(e=u.exec(t))?new _(e[1],e[2],e[3],1):(e=c.exec(t))?new _(255*e[1]/100,255*e[2]/100,255*e[3]/100,1):(e=h.exec(t))?y(e[1],e[2],e[3],e[4]):(e=f.exec(t))?y(255*e[1]/100,255*e[2]/100,255*e[3]/100,e[4]):(e=p.exec(t))?w(e[1],e[2]/100,e[3]/100,1):(e=d.exec(t))?w(e[1],e[2]/100,e[3]/100,e[4]):g.hasOwnProperty(t)?m(g[t]):"transparent"===t?new _(NaN,NaN,NaN,0):null}function m(t){return new _(t>>16&255,t>>8&255,255&t,1)}function y(t,e,r,n){return n<=0&&(t=e=r=NaN),new _(t,e,r,n)}function x(t){return t instanceof n||(t=v(t)),t?new _((t=t.rgb()).r,t.g,t.b,t.opacity):new _}function b(t,e,r,n){return 1===arguments.length?x(t):new _(t,e,r,null==n?1:n)}function _(t,e,r,n){this.r=+t,this.g=+e,this.b=+r,this.opacity=+n}function w(t,e,r,n){return n<=0?t=e=r=NaN:r<=0||r>=1?t=e=NaN:e<=0&&(t=NaN),new A(t,e,r,n)}function M(t,e,r,i){return 1===arguments.length?function(t){if(t instanceof A)return new A(t.h,t.s,t.l,t.opacity);if(t instanceof n||(t=v(t)),!t)return new A;if(t instanceof A)return t;var e=(t=t.rgb()).r/255,r=t.g/255,i=t.b/255,a=Math.min(e,r,i),o=Math.max(e,r,i),s=NaN,l=o-a,u=(o+a)/2;return l?(s=e===o?(r-i)/l+6*(r0&&u<1?0:s,new A(s,l,u,t.opacity)}(t):new A(t,e,r,null==i?1:i)}function A(t,e,r,n){this.h=+t,this.s=+e,this.l=+r,this.opacity=+n}function k(t,e,r){return 255*(t<60?e+(r-e)*t/60:t<180?r:t<240?e+(r-e)*(240-t)/60:e)}e(n,v,{displayable:function(){return this.rgb().displayable()},toString:function(){return this.rgb()+""}}),e(_,b,r(n,{brighter:function(t){return t=null==t?1/.7:Math.pow(1/.7,t),new _(this.r*t,this.g*t,this.b*t,this.opacity)},darker:function(t){return t=null==t?.7:Math.pow(.7,t),new _(this.r*t,this.g*t,this.b*t,this.opacity)},rgb:function(){return this},displayable:function(){return 0<=this.r&&this.r<=255&&0<=this.g&&this.g<=255&&0<=this.b&&this.b<=255&&0<=this.opacity&&this.opacity<=1},toString:function(){var t=this.opacity;return(1===(t=isNaN(t)?1:Math.max(0,Math.min(1,t)))?"rgb(":"rgba(")+Math.max(0,Math.min(255,Math.round(this.r)||0))+", "+Math.max(0,Math.min(255,Math.round(this.g)||0))+", "+Math.max(0,Math.min(255,Math.round(this.b)||0))+(1===t?")":", "+t+")")}})),e(A,M,r(n,{brighter:function(t){return t=null==t?1/.7:Math.pow(1/.7,t),new A(this.h,this.s,this.l*t,this.opacity)},darker:function(t){return t=null==t?.7:Math.pow(.7,t),new A(this.h,this.s,this.l*t,this.opacity)},rgb:function(){var t=this.h%360+360*(this.h<0),e=isNaN(t)||isNaN(this.s)?0:this.s,r=this.l,n=r+(r<.5?r:1-r)*e,i=2*r-n;return new _(k(t>=240?t-240:t+120,i,n),k(t,i,n),k(t<120?t+240:t-120,i,n),this.opacity)},displayable:function(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1}}));var T=Math.PI/180,S=180/Math.PI,E=.95047,C=1,L=1.08883,z=4/29,P=6/29,I=3*P*P,D=P*P*P;function O(t){if(t instanceof F)return new F(t.l,t.a,t.b,t.opacity);if(t instanceof q){var e=t.h*T;return new F(t.l,Math.cos(e)*t.c,Math.sin(e)*t.c,t.opacity)}t instanceof _||(t=x(t));var r=V(t.r),n=V(t.g),i=V(t.b),a=B((.4124564*r+.3575761*n+.1804375*i)/E),o=B((.2126729*r+.7151522*n+.072175*i)/C);return new F(116*o-16,500*(a-o),200*(o-B((.0193339*r+.119192*n+.9503041*i)/L)),t.opacity)}function R(t,e,r,n){return 1===arguments.length?O(t):new F(t,e,r,null==n?1:n)}function F(t,e,r,n){this.l=+t,this.a=+e,this.b=+r,this.opacity=+n}function B(t){return t>D?Math.pow(t,1/3):t/I+z}function N(t){return t>P?t*t*t:I*(t-z)}function j(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function V(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function U(t,e,r,n){return 1===arguments.length?function(t){if(t instanceof q)return new q(t.h,t.c,t.l,t.opacity);t instanceof F||(t=O(t));var e=Math.atan2(t.b,t.a)*S;return new q(e<0?e+360:e,Math.sqrt(t.a*t.a+t.b*t.b),t.l,t.opacity)}(t):new q(t,e,r,null==n?1:n)}function q(t,e,r,n){this.h=+t,this.c=+e,this.l=+r,this.opacity=+n}e(F,R,r(n,{brighter:function(t){return new F(this.l+18*(null==t?1:t),this.a,this.b,this.opacity)},darker:function(t){return new F(this.l-18*(null==t?1:t),this.a,this.b,this.opacity)},rgb:function(){var t=(this.l+16)/116,e=isNaN(this.a)?t:t+this.a/500,r=isNaN(this.b)?t:t-this.b/200;return t=C*N(t),new _(j(3.2404542*(e=E*N(e))-1.5371385*t-.4985314*(r=L*N(r))),j(-.969266*e+1.8760108*t+.041556*r),j(.0556434*e-.2040259*t+1.0572252*r),this.opacity)}})),e(q,U,r(n,{brighter:function(t){return new q(this.h,this.c,this.l+18*(null==t?1:t),this.opacity)},darker:function(t){return new q(this.h,this.c,this.l-18*(null==t?1:t),this.opacity)},rgb:function(){return O(this).rgb()}}));var H=-.14861,G=1.78277,W=-.29227,Y=-.90649,X=1.97294,Z=X*Y,J=X*G,K=G*W-Y*H;function Q(t,e,r,n){return 1===arguments.length?function(t){if(t instanceof $)return new $(t.h,t.s,t.l,t.opacity);t instanceof _||(t=x(t));var e=t.r/255,r=t.g/255,n=t.b/255,i=(K*n+Z*e-J*r)/(K+Z-J),a=n-i,o=(X*(r-i)-W*a)/Y,s=Math.sqrt(o*o+a*a)/(X*i*(1-i)),l=s?Math.atan2(o,a)*S-120:NaN;return new $(l<0?l+360:l,s,i,t.opacity)}(t):new $(t,e,r,null==n?1:n)}function $(t,e,r,n){this.h=+t,this.s=+e,this.l=+r,this.opacity=+n}e($,Q,r(n,{brighter:function(t){return t=null==t?1/.7:Math.pow(1/.7,t),new $(this.h,this.s,this.l*t,this.opacity)},darker:function(t){return t=null==t?.7:Math.pow(.7,t),new $(this.h,this.s,this.l*t,this.opacity)},rgb:function(){var t=isNaN(this.h)?0:(this.h+120)*T,e=+this.l,r=isNaN(this.s)?0:this.s*e*(1-e),n=Math.cos(t),i=Math.sin(t);return new _(255*(e+r*(H*n+G*i)),255*(e+r*(W*n+Y*i)),255*(e+r*(X*n)),this.opacity)}})),t.color=v,t.rgb=b,t.hsl=M,t.lab=R,t.hcl=U,t.cubehelix=Q,Object.defineProperty(t,"__esModule",{value:!0})}),fB=fB.exports;var pB={exports:{}};!function(t,e){"object"==typeof pB.exports?e(pB.exports,fB):e(t.d3=t.d3||{},t.d3)}(this,function(t,e){"use strict";function r(t,e,r,n,i){var a=t*t,o=a*t;return((1-3*t+3*a-o)*e+(4-6*a+3*o)*r+(1+3*t+3*a-3*o)*n+o*i)/6}var n=function(t){var e=t.length-1;return function(n){var i=n<=0?n=0:n>=1?(n=1,e-1):Math.floor(n*e),a=t[i],o=t[i+1],s=i>0?t[i-1]:2*a-o,l=i180||r<-180?r-360*Math.round(r/360):r):a(isNaN(t)?e:t)}function l(t){return 1==(t=+t)?u:function(e,r){return r-e?function(t,e,r){return t=Math.pow(t,r),e=Math.pow(e,r)-t,r=1/r,function(n){return Math.pow(t+n*e,r)}}(e,r,t):a(isNaN(e)?r:e)}}function u(t,e){var r=e-t;return r?o(t,r):a(isNaN(t)?e:t)}var c=function t(r){var n=l(r);function i(t,r){var i=n((t=e.rgb(t)).r,(r=e.rgb(r)).r),a=n(t.g,r.g),o=n(t.b,r.b),s=u(t.opacity,r.opacity);return function(e){return t.r=i(e),t.g=a(e),t.b=o(e),t.opacity=s(e),t+""}}return i.gamma=t,i}(1);function h(t){return function(r){var n,i,a=r.length,o=new Array(a),s=new Array(a),l=new Array(a);for(n=0;na&&(i=e.slice(a,i),s[o]?s[o]+=i:s[++o]=i),(r=r[0])===(n=n[0])?s[o]?s[o]+=n:s[++o]=n:(s[++o]=null,l.push({i:o,x:v(r,n)})),a=x.lastIndex;return a180?e+=360:e-t>180&&(t+=360),a.push({i:r.push(i(r)+"rotate(",null,n)-2,x:v(t,e)})):e&&r.push(i(r)+"rotate("+e+n)}(a.rotate,o.rotate,s,l),function(t,e,r,a){t!==e?a.push({i:r.push(i(r)+"skewX(",null,n)-2,x:v(t,e)}):e&&r.push(i(r)+"skewX("+e+n)}(a.skewX,o.skewX,s,l),function(t,e,r,n,a,o){if(t!==r||e!==n){var s=a.push(i(a)+"scale(",null,",",null,")");o.push({i:s-4,x:v(t,r)},{i:s-2,x:v(e,n)})}else 1===r&&1===n||a.push(i(a)+"scale("+r+","+n+")")}(a.scaleX,a.scaleY,o.scaleX,o.scaleY,s,l),a=o=null,function(t){for(var e,r=-1,n=l.length;++r0;--t)p(u*=.99),d(),f(u),d();function f(t){function r(t){return c(t.source)*t.value}i.forEach(function(n){n.forEach(function(n){if(n.targetLinks.length){var i=e.sum(n.targetLinks,r)/e.sum(n.targetLinks,h);n.y+=(i-c(n))*t}})})}function p(t){function r(t){return c(t.target)*t.value}i.slice().reverse().forEach(function(n){n.forEach(function(n){if(n.sourceLinks.length){var i=e.sum(n.sourceLinks,r)/e.sum(n.sourceLinks,h);n.y+=(i-c(n))*t}})})}function d(){i.forEach(function(t){var e,r,n,i=0,s=t.length;for(t.sort(g),n=0;n0&&(e.y+=r),i=e.y+e.dy+a;if((r=i-a-o[1])>0)for(i=e.y-=r,n=s-2;n>=0;--n)e=t[n],(r=e.y+e.dy+a-i)>0&&(e.y-=r),i=e.y})}function g(t,e){return t.y-e.y}}(n),u(),t},t.relayout=function(){return u(),t},t.link=function(){var t=.5;function e(e){var r=e.source.x+e.source.dx,i=e.target.x,a=n.interpolateNumber(r,i),o=a(t),s=a(1-t),l=e.source.y+e.sy,u=l+e.dy,c=e.target.y+e.ty,h=c+e.dy;return"M"+r+","+l+"C"+o+","+l+" "+s+","+c+" "+i+","+c+"L"+i+","+h+"C"+s+","+h+" "+o+","+u+" "+r+","+u+"Z"}return e.curvature=function(r){return arguments.length?(t=+r,e):t},e},t},Object.defineProperty(t,"__esModule",{value:!0})}),dB=dB.exports;var gB={exports:{}};!function(t,e){"object"==typeof gB.exports?e(gB.exports):e(t.d3=t.d3||{})}(this,function(t){"use strict";var e={value:function(){}};function r(){for(var t,e=0,r=arguments.length,i={};e=0&&(e=t.slice(r+1),t=t.slice(0,r)),t&&!n.hasOwnProperty(t))throw new Error("unknown type: "+t);return{type:t,name:e}})),l=-1,u=s.length;if(!(arguments.length<2)){if(null!=e&&"function"!=typeof e)throw new Error("invalid callback: "+e);for(;++l0)for(var r,n,i=new Array(r),a=0;a=(a=(g+m)/2))?g=a:m=a,(c=r>=(o=(v+y)/2))?v=o:y=o,i=p,!(p=p[h=c<<1|u]))return i[h]=d,t;if(s=+t._x.call(null,p.data),l=+t._y.call(null,p.data),e===s&&r===l)return d.next=p,i?i[h]=d:t._root=d,t;do{i=i?i[h]=new Array(4):t._root=new Array(4),(u=e>=(a=(g+m)/2))?g=a:m=a,(c=r>=(o=(v+y)/2))?v=o:y=o}while((h=c<<1|u)==(f=(l>=o)<<1|s>=a));return i[f]=p,i[h]=d,t}var r=function(t,e,r,n,i){this.node=t,this.x0=e,this.y0=r,this.x1=n,this.y1=i};function n(t){return t[0]}function i(t){return t[1]}function a(t,e,r){var a=new o(null==e?n:e,null==r?i:r,NaN,NaN,NaN,NaN);return null==t?a:a.addAll(t)}function o(t,e,r,n,i,a){this._x=t,this._y=e,this._x0=r,this._y0=n,this._x1=i,this._y1=a,this._root=void 0}function s(t){for(var e={data:t.data},r=e;t=t.next;)r=r.next={data:t.data};return e}var l=a.prototype=o.prototype;l.copy=function(){var t,e,r=new o(this._x,this._y,this._x0,this._y0,this._x1,this._y1),n=this._root;if(!n)return r;if(!n.length)return r._root=s(n),r;for(t=[{source:n,target:r._root=new Array(4)}];n=t.pop();)for(var i=0;i<4;++i)(e=n.source[i])&&(e.length?t.push({source:e,target:n.target[i]=new Array(4)}):n.target[i]=s(e));return r},l.add=function(t){var r=+this._x.call(null,t),n=+this._y.call(null,t);return e(this.cover(r,n),r,n,t)},l.addAll=function(t){var r,n,i,a,o=t.length,s=new Array(o),l=new Array(o),u=1/0,c=1/0,h=-1/0,f=-1/0;for(n=0;nh&&(h=i),af&&(f=a));for(ht||t>i||n>e||e>a))return this;var o,s,l=i-r,u=this._root;switch(s=(e<(n+a)/2)<<1|t<(r+i)/2){case 0:do{(o=new Array(4))[s]=u,u=o}while(a=n+(l*=2),t>(i=r+l)||e>a);break;case 1:do{(o=new Array(4))[s]=u,u=o}while(a=n+(l*=2),(r=i-l)>t||e>a);break;case 2:do{(o=new Array(4))[s]=u,u=o}while(n=a-(l*=2),t>(i=r+l)||n>e);break;case 3:do{(o=new Array(4))[s]=u,u=o}while(n=a-(l*=2),(r=i-l)>t||n>e)}this._root&&this._root.length&&(this._root=u)}return this._x0=r,this._y0=n,this._x1=i,this._y1=a,this},l.data=function(){var t=[];return this.visit(function(e){if(!e.length)do{t.push(e.data)}while(e=e.next)}),t},l.extent=function(t){return arguments.length?this.cover(+t[0][0],+t[0][1]).cover(+t[1][0],+t[1][1]):isNaN(this._x0)?void 0:[[this._x0,this._y0],[this._x1,this._y1]]},l.find=function(t,e,n){var i,a,o,s,l,u,c,h=this._x0,f=this._y0,p=this._x1,d=this._y1,g=[],v=this._root;for(v&&g.push(new r(v,h,f,p,d)),null==n?n=1/0:(h=t-n,f=e-n,p=t+n,d=e+n,n*=n);u=g.pop();)if(!(!(v=u.node)||(a=u.x0)>p||(o=u.y0)>d||(s=u.x1)=y)<<1|t>=m)&&(u=g[g.length-1],g[g.length-1]=g[g.length-1-c],g[g.length-1-c]=u)}else{var x=t-+this._x.call(null,v.data),b=e-+this._y.call(null,v.data),_=x*x+b*b;if(_=(s=(d+v)/2))?d=s:v=s,(c=o>=(l=(g+m)/2))?g=l:m=l,e=p,!(p=p[h=c<<1|u]))return this;if(!p.length)break;(e[h+1&3]||e[h+2&3]||e[h+3&3])&&(r=e,f=h)}for(;p.data!==t;)if(n=p,!(p=p.next))return this;return(i=p.next)&&delete p.next,n?(i?n.next=i:delete n.next,this):e?(i?e[h]=i:delete e[h],(p=e[0]||e[1]||e[2]||e[3])&&p===(e[3]||e[2]||e[1]||e[0])&&!p.length&&(r?r[f]=p:this._root=p),this):(this._root=i,this)},l.removeAll=function(t){for(var e=0,r=t.length;e=0&&r._call.call(null,t),r=r._next;--n}function m(){l=(s=c.now())+u,n=i=0;try{v()}finally{n=0,function(){var t,n,i=e,a=1/0;for(;i;)i._call?(a>i._time&&(a=i._time),t=i,i=i._next):(n=i._next,i._next=null,i=t?t._next=n:e=n);r=t,x(a)}(),l=0}}function y(){var t=c.now(),e=t-s;e>o&&(u-=e,s=t)}function x(t){n||(i&&(i=clearTimeout(i)),t-l>24?(t<1/0&&(i=setTimeout(m,t-c.now()-u)),a&&(a=clearInterval(a))):(a||(s=c.now(),a=setInterval(y,o)),n=1,h(m)))}d.prototype=g.prototype={constructor:d,restart:function(t,n,i){if("function"!=typeof t)throw new TypeError("callback is not a function");i=(null==i?f():+i)+(null==n?0:+n),this._next||r===this||(r?r._next=this:e=this,r=this),this._call=t,this._time=i,x()},stop:function(){this._call&&(this._call=null,this._time=1/0,x())}};t.now=f,t.timer=g,t.timerFlush=v,t.timeout=function(t,e,r){var n=new d;return e=null==e?0:+e,n.restart(function(r){n.stop(),t(r+e)},e,r),n},t.interval=function(t,e,r){var n=new d,i=e;return null==e?(n.restart(t,e,r),n):(e=+e,r=null==r?f():+r,n.restart(function a(o){o+=i,n.restart(a,i+=e,r),t(o)},e,r),n)},Object.defineProperty(t,"__esModule",{value:!0})}),mB=mB.exports;var yB={exports:{}};!function(t,e){"object"==typeof yB.exports?e(yB.exports,vB,hB,gB,mB):e(t.d3=t.d3||{},t.d3,t.d3,t.d3,t.d3)}(this,function(t,e,r,n,i){"use strict";var a=function(t){return function(){return t}},o=function(){return 1e-6*(Math.random()-.5)};function s(t){return t.x+t.vx}function l(t){return t.y+t.vy}function u(t){return t.index}function c(t,e){var r=t.get(e);if(!r)throw new Error("missing: "+e);return r}function h(t){return t.x}function f(t){return t.y}var p=10,d=Math.PI*(3-Math.sqrt(5));t.forceCenter=function(t,e){var r;function n(){var n,i,a=r.length,o=0,s=0;for(n=0;nf+u||np+u||ac.index){var h=f-s.x-s.vx,v=p-s.y-s.vy,m=h*h+v*v;mt.r&&(t.r=t[e].r)}function f(){if(r){var e,i,a=r.length;for(n=new Array(a),e=0;e=u)){(t.data!==r||t.next)&&(0===h&&(d+=(h=o())*h),0===f&&(d+=(f=o())*f),d1?(null==r?c.remove(t):c.set(t,y(r)),e):c.get(t)},find:function(e,r,n){var i,a,o,s,l,u=0,c=t.length;for(null==n?n=1/0:n*=n,u=0;u1?(f.on(t,r),e):f.on(t)}}},t.forceX=function(t){var e,r,n,i=a(.1);function o(t){for(var i,a=0,o=e.length;a1||t.linkLineWidth>0}function PB(t){return"translate("+t.translateX+","+t.translateY+")"+(t.horizontal?"matrix(1 0 0 1 0 0)":"matrix(0 1 1 0 0 0)")}function IB(t){return"translate("+(t.horizontal?0:t.labelY)+" "+(t.horizontal?t.labelY:0)+")"}function DB(t){return e.svg.line()([[t.horizontal?t.left?-t.sizeAcross:t.visibleWidth+uB.nodeTextOffsetHorizontal:uB.nodeTextOffsetHorizontal,0],[t.horizontal?t.left?-uB.nodeTextOffsetHorizontal:t.sizeAcross:t.visibleHeight-uB.nodeTextOffsetHorizontal,0]])}function OB(t){return t.horizontal?"matrix(1 0 0 1 0 0)":"matrix(0 1 1 0 0 0)"}function RB(t){return t.horizontal?"scale(1 1)":"scale(-1 1)"}function FB(t){return t.darkBackground&&!t.horizontal?"rgb(255,255,255)":"rgb(0,0,0)"}function BB(t){return t.horizontal&&t.left?"100%":"0%"}function NB(t,e,r){t.on(".basic",null).on("mouseover.basic",function(t){t.interactionState.dragInProgress||(r.hover(this,t,e),t.interactionState.hovered=[this,t])}).on("mousemove.basic",function(t){t.interactionState.dragInProgress||(r.follow(this,t),t.interactionState.hovered=[this,t])}).on("mouseout.basic",function(t){t.interactionState.dragInProgress||(r.unhover(this,t,e),t.interactionState.hovered=!1)}).on("click.basic",function(t){t.interactionState.hovered&&(r.unhover(this,t,e),t.interactionState.hovered=!1),t.interactionState.dragInProgress||r.select(this,t,e)})}function jB(t,r,n){var i=e.behavior.drag().origin(function(t){return t.node}).on("dragstart",function(e){if("fixed"!==e.arrangement&&(ne.raiseToTop(this),e.interactionState.dragInProgress=e.node,MB(e.node),e.interactionState.hovered&&(n.nodeEvents.unhover.apply(0,e.interactionState.hovered),e.interactionState.hovered=!1),"snap"===e.arrangement)){var i=e.traceId+"|"+Math.floor(e.node.originalX);e.forceLayouts[i]?e.forceLayouts[i].alpha(1):function(t,e,r){var n=r.sankey.nodes().filter(function(t){return t.originalX===r.node.originalX});r.forceLayouts[e]=yB.forceSimulation(n).alphaDecay(0).force("collide",yB.forceCollide().radius(function(t){return t.dy/2+r.nodePad/2}).strength(1).iterations(uB.forceIterations)).force("constrain",function(t,e,r,n){return function(){for(var t=0,i=0;i0&&n.forceLayouts[e].alpha(0)}}(0,e,n,r)).stop()}(0,i,e),function(t,e,r,n){window.requestAnimationFrame(function i(){for(var a=0;a0&&window.requestAnimationFrame(i)})}(t,r,e,i)}}).on("drag",function(n){if("fixed"!==n.arrangement){var i=e.event.x,a=e.event.y;"snap"===n.arrangement?(n.node.x=i,n.node.y=a):("freeform"===n.arrangement&&(n.node.x=i),n.node.y=Math.max(n.node.dy/2,Math.min(n.size-n.node.dy/2,a))),MB(n.node),"snap"!==n.arrangement&&(n.sankey.relayout(),CB(t.filter(AB(n)),r))}}).on("dragend",function(t){t.interactionState.dragInProgress=!1});t.on(".drag",null).call(i)}var VB=function(t,e,r,n){var i=t.selectAll("."+uB.cn.sankey).data(e.filter(function(t){return wB(t).trace.visible}).map(function(t,e,r){for(var n,i=wB(e).trace,a=i.domain,o=i.node,s=i.link,l=i.arrangement,u="h"===i.orientation,c=i.node.pad,h=i.node.thickness,f=i.node.line.color,p=i.node.line.width,d=i.link.line.color,g=i.link.line.width,v=i.valueformat,m=i.valuesuffix,y=i.textfont,x=t.width*(a.x[1]-a.x[0]),b=t.height*(a.y[1]-a.y[0]),_=o.label.map(function(t,e){return{pointNumber:e,label:t,color:ne.isArrayOrTypedArray(o.color)?o.color[e]:o.color}}),w=s.value.map(function(t,e){return{pointNumber:e,label:s.label[e],color:ne.isArrayOrTypedArray(s.color)?s.color[e]:s.color,source:s.source[e],target:s.target[e],value:t}}),M=xB().size(u?[x,b]:[b,x]).nodeWidth(h).nodePadding(c).nodes(_).links(w).layout(uB.sankeyIterations),A=M.nodes(),k=0;k5?t.node.label:""}).attr("text-anchor",function(t){return t.horizontal&&t.left?"end":"start"}),g.transition().ease(uB.ease).duration(uB.duration).attr("startOffset",BB).style("fill",FB)},UB=uB.cn,qB=ne._;function HB(t){return""!==t}function GB(t,e){return t.filter(function(t){return t.key===e.traceId})}function WB(t,r){e.select(t).select("path").style("fill-opacity",r),e.select(t).select("rect").style("fill-opacity",r)}function YB(t){e.select(t).select("text.name").style("fill","black")}function XB(t){return function(e){return-1!==t.node.sourceLinks.indexOf(e.link)||-1!==t.node.targetLinks.indexOf(e.link)}}function ZB(t){return function(e){return-1!==e.node.sourceLinks.indexOf(t.link)||-1!==e.node.targetLinks.indexOf(t.link)}}function JB(t,e,r){e&&r&&GB(r,e).selectAll("."+UB.sankeyLink).filter(XB(e)).call(QB.bind(0,e,r,!1))}function KB(t,e,r){e&&r&&GB(r,e).selectAll("."+UB.sankeyLink).filter(XB(e)).call($B.bind(0,e,r,!1))}function QB(t,e,r,n){var i=n.datum().link.label;n.style("fill-opacity",.4),i&&GB(e,t).selectAll("."+UB.sankeyLink).filter(function(t){return t.link.label===i}).style("fill-opacity",.4),r&&GB(e,t).selectAll("."+UB.sankeyNode).filter(ZB(t)).call(JB)}function $B(t,e,r,n){var i=n.datum().link.label;n.style("fill-opacity",function(t){return t.tinyColorAlpha}),i&&GB(e,t).selectAll("."+UB.sankeyLink).filter(function(t){return t.link.label===i}).style("fill-opacity",function(t){return t.tinyColorAlpha}),r&&GB(e,t).selectAll(UB.sankeyNode).filter(ZB(t)).call(KB)}function tN(t,e){var r=t.hoverlabel||{},n=ne.nestedProperty(r,e).get();return!Array.isArray(n)&&n}var eN=function(t,r){var n=t._fullLayout,i=n._paper,a=n._size,o=qB(t,"source:")+" ",s=qB(t,"target:")+" ",l=qB(t,"incoming flow count:")+" ",u=qB(t,"outgoing flow count:")+" ";VB(i,r,{width:a.w,height:a.h,margin:{t:a.t,r:a.r,b:a.b,l:a.l}},{linkEvents:{hover:function(r,n,i){e.select(r).call(QB.bind(0,n,i,!0)),t.emit("plotly_hover",{event:e.event,points:[n.link]})},follow:function(r,i){var a=i.link.trace,l=t._fullLayout._paperdiv.node().getBoundingClientRect(),u=r.getBoundingClientRect(),c=u.left+u.width/2,h=u.top+u.height/2,f=yo.loneHover({x:c-l.left,y:h-l.top,name:e.format(i.valueFormat)(i.link.value)+i.valueSuffix,text:[i.link.label||"",o+i.link.source.label,s+i.link.target.label].filter(HB).join("
    "),color:tN(a,"bgcolor")||Oe.addOpacity(i.tinyColorHue,1),borderColor:tN(a,"bordercolor"),fontFamily:tN(a,"font.family"),fontSize:tN(a,"font.size"),fontColor:tN(a,"font.color"),idealAlign:e.event.x"),color:tN(a,"bgcolor")||i.tinyColorHue,borderColor:tN(a,"bordercolor"),fontFamily:tN(a,"font.family"),fontSize:tN(a,"font.size"),fontColor:tN(a,"font.color"),idealAlign:"left"},{container:n._hoverlayer.node(),outerContainer:n._paper.node(),gd:t});WB(d,.85),YB(d)},unhover:function(r,i,a){e.select(r).call(KB,i,a),t.emit("plotly_unhover",{event:e.event,points:[i.node]}),yo.loneUnhover(n._hoverlayer.node())},select:function(r,n,i){var a=n.node;a.originalEvent=e.event,t._hoverdata=[a],e.select(r).call(KB,n,i),yo.click(t,{target:!0})}}})},rN={},nN=ye.overrideAll,iN=sa.getModuleCalcData;rN.name="sankey",rN.baseLayoutAttrOverrides=nN({hoverlabel:mo.hoverlabel},"plot","nested"),rN.plot=function(t){var e=iN(t.calcdata,"sankey");eN(t,e)},rN.clean=function(t,e,r,n){var i=n._has&&n._has("sankey"),a=e._has&&e._has("sankey");i&&!a&&n._paperdiv.selectAll(".sankey").remove()};var aN=function(t){for(var e=t.length,r=new Array(e),n=new Array(e),i=new Array(e),a=new Array(e),o=new Array(e),s=new Array(e),l=0;l0;){e=u[u.length-1];var p=t[e];if(a[e]=0&&s[e].push(o[g])}a[e]=d}else{if(n[e]===r[e]){for(var v=[],m=[],y=0,d=l.length-1;d>=0;--d){var x=l[d];if(i[x]=!1,v.push(x),m.push(s[x]),y+=s[x].length,o[x]=h.length,x===e){l.length=d;break}}h.push(v);for(var b=new Array(y),d=0;d1})}(e.node.label,e.link.source,e.link.target)&&(ne.error("Circularity is present in the Sankey data. Removing all nodes and links."),e.link.label=[],e.link.source=[],e.link.target=[],e.link.value=[],e.link.color=[],e.node.label=[],e.node.color=[]),oN({link:e.link,node:e.node})},lN.plot=eN,lN.moduleType="trace",lN.name="sankey",lN.basePlotModule=rN,lN.categories=["noOpacity"],lN.meta={};var uN=lN,cN={circle:"\u25cf","circle-open":"\u25cb",square:"\u25a0","square-open":"\u25a1",diamond:"\u25c6","diamond-open":"\u25c7",cross:"+",x:"\u274c"},hN={solid:[[],0],dot:[[.5,1],200],dash:[[.5,1],50],longdash:[[.5,1],10],dashdot:[[.5,.625,.875,1],50],longdashdot:[[.5,.7,.8,1],10]},fN={},pN=m.extendFlat,dN=ye.overrideAll,gN=Zr.line,vN=Zr.marker,mN=vN.line;var yN=fN=dN({x:Zr.x,y:Zr.y,z:{valType:"data_array"},text:pN({},Zr.text,{}),hovertext:pN({},Zr.hovertext,{}),mode:pN({},Zr.mode,{dflt:"lines+markers"}),surfaceaxis:{valType:"enumerated",values:[-1,0,1,2],dflt:-1},surfacecolor:{valType:"color"},projection:{x:{show:{valType:"boolean",dflt:!1},opacity:{valType:"number",min:0,max:1,dflt:1},scale:{valType:"number",min:0,max:10,dflt:2/3}},y:{show:{valType:"boolean",dflt:!1},opacity:{valType:"number",min:0,max:1,dflt:1},scale:{valType:"number",min:0,max:10,dflt:2/3}},z:{show:{valType:"boolean",dflt:!1},opacity:{valType:"number",min:0,max:1,dflt:1},scale:{valType:"number",min:0,max:10,dflt:2/3}}},connectgaps:Zr.connectgaps,line:pN({width:gN.width,dash:{valType:"enumerated",values:Object.keys(hN),dflt:"solid"},showscale:{valType:"boolean",dflt:!1}},De()),marker:pN({symbol:{valType:"enumerated",values:Object.keys(cN),dflt:"circle",arrayOk:!0},size:pN({},vN.size,{dflt:8}),sizeref:vN.sizeref,sizemin:vN.sizemin,sizemode:vN.sizemode,opacity:pN({},vN.opacity,{arrayOk:!1}),showscale:vN.showscale,colorbar:vN.colorbar,line:pN({width:pN({},mN.width,{arrayOk:!1})},De())},De()),textposition:pN({},Zr.textposition,{dflt:"top center"}),textfont:Zr.textfont,hoverinfo:pN({},E.hoverinfo)},"calc","nested");yN.x.editType=yN.y.editType=yN.z.editType="calc+clearAxisTypes";var xN=E_(["precision mediump float;\n#define GLSLIFY 1\n\nattribute vec3 position, offset;\nattribute vec4 color;\nuniform mat4 model, view, projection;\nuniform float capSize;\nvarying vec4 fragColor;\nvarying vec3 fragPosition;\n\nvoid main() {\n vec4 worldPosition = model * vec4(position, 1.0);\n worldPosition = (worldPosition / worldPosition.w) + vec4(capSize * offset, 0.0);\n gl_Position = projection * view * worldPosition;\n fragColor = color;\n fragPosition = position;\n}"]),bN=E_(["precision mediump float;\n#define GLSLIFY 1\nuniform vec3 clipBounds[2];\nuniform float opacity;\nvarying vec3 fragPosition;\nvarying vec4 fragColor;\n\nvoid main() {\n if(any(lessThan(fragPosition, clipBounds[0])) || any(greaterThan(fragPosition, clipBounds[1]))) {\n discard;\n }\n gl_FragColor = opacity * fragColor;\n}"]),_N=function(t){return Bw(t,xN,bN,null,[{name:"position",type:"vec3"},{name:"color",type:"vec4"},{name:"offset",type:"vec3"}])},wN=function(t){var e=t.gl,r=S_(e),n=EP(e,[{buffer:r,type:e.FLOAT,size:3,offset:0,stride:40},{buffer:r,type:e.FLOAT,size:4,offset:12,stride:40},{buffer:r,type:e.FLOAT,size:3,offset:28,stride:40}]),i=_N(e);i.attributes.position.location=0,i.attributes.color.location=1,i.attributes.offset.location=2;var a=new AN(e,r,n,i);return a.update(t),a},MN=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];function AN(t,e,r,n){this.gl=t,this.shader=n,this.buffer=e,this.vao=r,this.pixelRatio=1,this.bounds=[[1/0,1/0,1/0],[-1/0,-1/0,-1/0]],this.clipBounds=[[-1/0,-1/0,-1/0],[1/0,1/0,1/0]],this.lineWidth=[1,1,1],this.capSize=[10,10,10],this.lineCount=[0,0,0],this.lineOffset=[0,0,0],this.opacity=1}var kN=AN.prototype;function TN(t,e){for(var r=0;r<3;++r)t[0][r]=Math.min(t[0][r],e[r]),t[1][r]=Math.max(t[1][r],e[r])}kN.isOpaque=function(){return this.opacity>=1},kN.isTransparent=function(){return this.opacity<1},kN.drawTransparent=kN.draw=function(t){var e=this.gl,r=this.shader.uniforms;this.shader.bind();var n=r.view=t.view||MN,i=r.projection=t.projection||MN;r.model=t.model||MN,r.clipBounds=this.clipBounds,r.opacity=this.opacity;var a=n[12],o=n[13],s=n[14],l=n[15],u=this.pixelRatio*(i[3]*a+i[7]*o+i[11]*s+i[15]*l)/e.drawingBufferHeight;this.vao.bind();for(var c=0;c<3;++c)e.lineWidth(this.lineWidth[c]),r.capSize=this.capSize[c]*u,this.lineCount[c]&&e.drawArrays(e.LINES,this.lineOffset[c],this.lineCount[c]);this.vao.unbind()};var SN=function(){for(var t=new Array(3),e=0;e<3;++e){for(var r=[],n=1;n<=2;++n)for(var i=-1;i<=1;i+=2){var a=[0,0,0];a[(n+e)%3]=i,r.push(a)}t[e]=r}return t}();function EN(t,e,r,n){for(var i=SN[n],a=0;a0)(p=u.slice())[s]+=h[1][s],i.push(u[0],u[1],u[2],f[0],f[1],f[2],f[3],0,0,0,p[0],p[1],p[2],f[0],f[1],f[2],f[3],0,0,0),TN(this.bounds,p),o+=2+EN(i,p,f,s)}}this.lineCount[s]=o-this.lineOffset[s]}this.buffer.update(i)}},kN.dispose=function(){this.shader.dispose(),this.buffer.dispose(),this.vao.dispose()};var CN={},LN=E_(["precision mediump float;\n#define GLSLIFY 1\n\nattribute vec3 position, nextPosition;\nattribute float arcLength, lineWidth;\nattribute vec4 color;\n\nuniform vec2 screenShape;\nuniform float pixelRatio;\nuniform mat4 model, view, projection;\n\nvarying vec4 fragColor;\nvarying vec3 worldPosition;\nvarying float pixelArcLength;\n\nvoid main() {\n vec4 projected = projection * view * model * vec4(position, 1.0);\n vec4 tangentClip = projection * view * model * vec4(nextPosition - position, 0.0);\n vec2 tangent = normalize(screenShape * tangentClip.xy);\n vec2 offset = 0.5 * pixelRatio * lineWidth * vec2(tangent.y, -tangent.x) / screenShape;\n\n gl_Position = vec4(projected.xy + projected.w * offset, projected.zw);\n\n worldPosition = position;\n pixelArcLength = arcLength;\n fragColor = color;\n}\n"]),zN=E_(["precision mediump float;\n#define GLSLIFY 1\n\nuniform vec3 clipBounds[2];\nuniform sampler2D dashTexture;\nuniform float dashScale;\nuniform float opacity;\n\nvarying vec3 worldPosition;\nvarying float pixelArcLength;\nvarying vec4 fragColor;\n\nvoid main() {\n if(any(lessThan(worldPosition, clipBounds[0])) || any(greaterThan(worldPosition, clipBounds[1]))) {\n discard;\n }\n float dashWeight = texture2D(dashTexture, vec2(dashScale * pixelArcLength, 0)).r;\n if(dashWeight < 0.5) {\n discard;\n }\n gl_FragColor = fragColor * opacity;\n}\n"]),PN=E_(["precision mediump float;\n#define GLSLIFY 1\n\n#define FLOAT_MAX 1.70141184e38\n#define FLOAT_MIN 1.17549435e-38\n\nlowp vec4 encode_float_1540259130(highp float v) {\n highp float av = abs(v);\n\n //Handle special cases\n if(av < FLOAT_MIN) {\n return vec4(0.0, 0.0, 0.0, 0.0);\n } else if(v > FLOAT_MAX) {\n return vec4(127.0, 128.0, 0.0, 0.0) / 255.0;\n } else if(v < -FLOAT_MAX) {\n return vec4(255.0, 128.0, 0.0, 0.0) / 255.0;\n }\n\n highp vec4 c = vec4(0,0,0,0);\n\n //Compute exponent and mantissa\n highp float e = floor(log2(av));\n highp float m = av * pow(2.0, -e) - 1.0;\n \n //Unpack mantissa\n c[1] = floor(128.0 * m);\n m -= c[1] / 128.0;\n c[2] = floor(32768.0 * m);\n m -= c[2] / 32768.0;\n c[3] = floor(8388608.0 * m);\n \n //Unpack exponent\n highp float ebias = e + 127.0;\n c[0] = floor(ebias / 2.0);\n ebias -= c[0] * 2.0;\n c[1] += floor(ebias) * 128.0; \n\n //Unpack sign bit\n c[0] += 128.0 * step(0.0, -v);\n\n //Scale back to range\n return c / 255.0;\n}\n\nuniform float pickId;\nuniform vec3 clipBounds[2];\n\nvarying vec3 worldPosition;\nvarying float pixelArcLength;\nvarying vec4 fragColor;\n\nvoid main() {\n if(any(lessThan(worldPosition, clipBounds[0])) || any(greaterThan(worldPosition, clipBounds[1]))) {\n discard;\n }\n gl_FragColor = vec4(pickId/255.0, encode_float_1540259130(pixelArcLength).xyz);\n}"]),IN=[{name:"position",type:"vec3"},{name:"nextPosition",type:"vec3"},{name:"arcLength",type:"float"},{name:"lineWidth",type:"float"},{name:"color",type:"vec4"}];CN.createShader=function(t){return Bw(t,LN,zN,null,IN)},CN.createPickShader=function(t){return Bw(t,LN,PN,null,IN)};var DN=function(t,e,r,n){return ON[0]=n,ON[1]=r,ON[2]=e,ON[3]=t,RN[0]},ON=new Uint8Array(4),RN=new Float32Array(ON.buffer);var FN=function(t){var e=t.gl||t.scene&&t.scene.gl,r=BN(e);r.attributes.position.location=0,r.attributes.nextPosition.location=1,r.attributes.arcLength.location=2,r.attributes.lineWidth.location=3,r.attributes.color.location=4;var n=NN(e);n.attributes.position.location=0,n.attributes.nextPosition.location=1,n.attributes.arcLength.location=2,n.attributes.lineWidth.location=3,n.attributes.color.location=4;for(var i=S_(e),a=EP(e,[{buffer:i,size:3,offset:0,stride:48},{buffer:i,size:3,offset:12,stride:48},{buffer:i,size:1,offset:24,stride:48},{buffer:i,size:1,offset:28,stride:48},{buffer:i,size:4,offset:32,stride:48}]),o=wb(new Array(1024),[256,1,4]),s=0;s<1024;++s)o.data[s]=255;var l=zE(e,o);l.wrap=e.REPEAT;var u=new HN(e,r,n,i,a,l);return u.update(t),u},BN=CN.createShader,NN=CN.createPickShader,jN=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];function VN(t,e){for(var r=0,n=0;n<3;++n){var i=t[n]-e[n];r+=i*i}return Math.sqrt(r)}function UN(t){for(var e=[[-1e6,-1e6,-1e6],[1e6,1e6,1e6]],r=0;r<3;++r)e[0][r]=Math.max(t[0][r],e[0][r]),e[1][r]=Math.min(t[1][r],e[1][r]);return e}function qN(t,e,r,n){this.arcLength=t,this.position=e,this.index=r,this.dataCoordinate=n}function HN(t,e,r,n,i,a){this.gl=t,this.shader=e,this.pickShader=r,this.buffer=n,this.vao=i,this.clipBounds=[[-1/0,-1/0,-1/0],[1/0,1/0,1/0]],this.points=[],this.arcLength=[],this.vertexCount=0,this.bounds=[[0,0,0],[0,0,0]],this.pickId=0,this.lineWidth=1,this.texture=a,this.dashScale=1,this.opacity=1,this.dirty=!0,this.pixelRatio=1}var GN=HN.prototype;GN.isTransparent=function(){return this.opacity<1},GN.isOpaque=function(){return this.opacity>=1},GN.pickSlots=1,GN.setPickBase=function(t){this.pickId=t},GN.drawTransparent=GN.draw=function(t){var e=this.gl,r=this.shader,n=this.vao;r.bind(),r.uniforms={model:t.model||jN,view:t.view||jN,projection:t.projection||jN,clipBounds:UN(this.clipBounds),dashTexture:this.texture.bind(),dashScale:this.dashScale/this.arcLength[this.arcLength.length-1],opacity:this.opacity,screenShape:[e.drawingBufferWidth,e.drawingBufferHeight],pixelRatio:this.pixelRatio},n.bind(),n.draw(e.TRIANGLE_STRIP,this.vertexCount),n.unbind()},GN.drawPick=function(t){var e=this.gl,r=this.pickShader,n=this.vao;r.bind(),r.uniforms={model:t.model||jN,view:t.view||jN,projection:t.projection||jN,pickId:this.pickId,clipBounds:UN(this.clipBounds),screenShape:[e.drawingBufferWidth,e.drawingBufferHeight],pixelRatio:this.pixelRatio},n.bind(),n.draw(e.TRIANGLE_STRIP,this.vertexCount),n.unbind()},GN.update=function(t){var e,r;this.dirty=!0;var n=!!t.connectGaps;"dashScale"in t&&(this.dashScale=t.dashScale),"opacity"in t&&(this.opacity=+t.opacity);var i=t.position||t.positions;if(i){var a=t.color||t.colors||[0,0,0,1],o=t.lineWidth||1,s=[],l=[],u=[],c=0,h=0,f=[[1/0,1/0,1/0],[-1/0,-1/0,-1/0]],p=!1;t:for(e=1;e0){for(var x=0;x<24;++x)s.push(s[s.length-12]);h+=2,p=!0}continue t}f[0][r]=Math.min(f[0][r],m[r],y[r]),f[1][r]=Math.max(f[1][r],m[r],y[r])}Array.isArray(a[0])?(d=a[e-1],g=a[e]):d=g=a,3===d.length&&(d=[d[0],d[1],d[2],1]),3===g.length&&(g=[g[0],g[1],g[2],1]),v=Array.isArray(o)?o[e-1]:o;var b=c;if(c+=VN(m,y),p){for(r=0;r<2;++r)s.push(m[0],m[1],m[2],y[0],y[1],y[2],b,v,d[0],d[1],d[2],d[3]);h+=2,p=!1}s.push(m[0],m[1],m[2],y[0],y[1],y[2],b,v,d[0],d[1],d[2],d[3],m[0],m[1],m[2],y[0],y[1],y[2],b,-v,d[0],d[1],d[2],d[3],y[0],y[1],y[2],m[0],m[1],m[2],c,-v,g[0],g[1],g[2],g[3],y[0],y[1],y[2],m[0],m[1],m[2],c,v,g[0],g[1],g[2],g[3]),h+=4}if(this.buffer.update(s),l.push(c),u.push(i[i.length-1].slice()),this.bounds=f,this.vertexCount=h,this.points=u,this.arcLength=l,"dashes"in t){var _=t.dashes.slice();for(_.unshift(0),e=1;e<_.length;++e)_[e]=_[e-1]+_[e];var w=wb(new Array(1024),[256,1,4]);for(e=0;e<256;++e){for(r=0;r<4;++r)w.set(e,0,r,0);1&wT.le(_,_[_.length-1]*e/255)?w.set(e,0,0,0):w.set(e,0,0,255)}this.texture.setPixels(w)}}},GN.dispose=function(){this.shader.dispose(),this.vao.dispose(),this.buffer.dispose()},GN.pick=function(t){if(!t)return null;if(t.id!==this.pickId)return null;var e=DN(t.value[0],t.value[1],t.value[2],0),r=wT.le(this.arcLength,e);if(r<0)return null;if(r===this.arcLength.length-1)return new qN(this.arcLength[this.arcLength.length-1],this.points[this.points.length-1].slice(),r);for(var n=this.points[r],i=this.points[Math.min(r+1,this.points.length-1)],a=(e-this.arcLength[r])/(this.arcLength[r+1]-this.arcLength[r]),o=1-a,s=[0,0,0],l=0;l<3;++l)s[l]=o*n[l]+a*i[l];var u=Math.min(a<.5?r:r+1,this.points.length-1);return new qN(e,s,u,this.points[u])};var WN=function(t,e){var r=YN[e];r||(r=YN[e]={});if(t in r)return r[t];for(var n=ME(t,{textAlign:"center",textBaseline:"middle",lineHeight:1,font:e}),i=ME(t,{triangles:!0,textAlign:"center",textBaseline:"middle",lineHeight:1,font:e}),a=[[1/0,1/0],[-1/0,-1/0]],o=0;o=1)return!0;for(var t=0;t<3;++t)if(this.axesProject[t]&&this.projectOpacity[t]>=1)return!0;return!1};var dj=[0,0],gj=[0,0,0],vj=[0,0,0],mj=[0,0,0,1],yj=[0,0,0,1],xj=lj.slice(),bj=[0,0,0],_j=[[0,0,0],[0,0,0]];function wj(t){return t[0]=t[1]=t[2]=0,t}function Mj(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=1,t}function Aj(t,e,r,n){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[r]=n,t}function kj(t,e,r,n,i){var a,o=e.axesProject,s=e.gl,l=t.uniforms,u=r.model||lj,c=r.view||lj,h=r.projection||lj,f=e.axesBounds,p=function(t){for(var e=_j,r=0;r<2;++r)for(var n=0;n<3;++n)e[r][n]=Math.max(Math.min(t[r][n],1e8),-1e8);return e}(e.clipBounds);a=e.axes&&e.axes.lastCubeProps?e.axes.lastCubeProps.axis:[1,1,1],dj[0]=2/s.drawingBufferWidth,dj[1]=2/s.drawingBufferHeight,t.bind(),l.view=c,l.projection=h,l.screenSize=dj,l.highlightId=e.highlightId,l.highlightScale=e.highlightScale,l.clipBounds=p,l.pickGroup=e.pickId/255,l.pixelRatio=e.pixelRatio;for(var d=0;d<3;++d)if(o[d]&&e.projectOpacity[d]<1===n){l.scale=e.projectScale[d],l.opacity=e.projectOpacity[d];for(var g=xj,v=0;v<16;++v)g[v]=0;for(v=0;v<4;++v)g[5*v]=1;g[5*d]=0,a[d]<0?g[12+d]=f[0][d]:g[12+d]=f[1][d],Dz(g,u,g),l.model=g;var m=(d+1)%3,y=(d+2)%3,x=wj(gj),b=wj(vj);x[m]=1,b[y]=1;var _=hj(0,0,0,Mj(mj,x)),w=hj(0,0,0,Mj(yj,b));if(Math.abs(_[1])>Math.abs(w[1])){var M=_;_=w,w=M,M=x,x=b,b=M;var A=m;m=y,y=A}_[0]<0&&(x[m]=-1),w[1]>0&&(b[y]=-1);var k=0,T=0;for(v=0;v<4;++v)k+=Math.pow(u[4*m+v],2),T+=Math.pow(u[4*y+v],2);x[m]/=Math.sqrt(k),b[y]/=Math.sqrt(T),l.axes[0]=x,l.axes[1]=b,l.fragClipBounds[0]=Aj(bj,p[0],d,-1e8),l.fragClipBounds[1]=Aj(bj,p[1],d,1e8),e.vao.draw(s.TRIANGLES,e.vertexCount),e.lineWidth>0&&(s.lineWidth(e.lineWidth),e.vao.draw(s.LINES,e.lineVertexCount,e.vertexCount))}}var Tj=[[-1e8,-1e8,-1e8],[1e8,1e8,1e8]];function Sj(t,e,r,n,i,a){var o=r.gl;if(r.vao.bind(),i===r.opacity<1||a){t.bind();var s=t.uniforms;s.model=n.model||lj,s.view=n.view||lj,s.projection=n.projection||lj,dj[0]=2/o.drawingBufferWidth,dj[1]=2/o.drawingBufferHeight,s.screenSize=dj,s.highlightId=r.highlightId,s.highlightScale=r.highlightScale,s.fragClipBounds=Tj,s.clipBounds=r.axes.bounds,s.opacity=r.opacity,s.pickGroup=r.pickId/255,s.pixelRatio=r.pixelRatio,r.vao.draw(o.TRIANGLES,r.vertexCount),r.lineWidth>0&&(o.lineWidth(r.lineWidth),r.vao.draw(o.LINES,r.lineVertexCount,r.vertexCount))}kj(e,r,n,i),r.vao.unbind()}pj.draw=function(t){Sj(this.useOrtho?this.orthoShader:this.shader,this.projectShader,this,t,!1,!1)},pj.drawTransparent=function(t){Sj(this.useOrtho?this.orthoShader:this.shader,this.projectShader,this,t,!0,!1)},pj.drawPick=function(t){Sj(this.useOrtho?this.pickOrthoShader:this.pickPerspectiveShader,this.pickProjectShader,this,t,!1,!0)},pj.pick=function(t){if(!t)return null;if(t.id!==this.pickId)return null;var e=t.value[2]+(t.value[1]<<8)+(t.value[0]<<16);if(e>=this.pointCount||e<0)return null;var r=this.points[e],n=this._selectResult;n.index=e;for(var i=0;i<3;++i)n.position[i]=n.dataCoordinate[i]=r[i];return n},pj.highlight=function(t){if(t){var e=t.index,r=255&e,n=e>>8&255,i=e>>16&255;this.highlightId=[r/255,n/255,i/255,0]}else this.highlightId=[1,1,1,1]},pj.update=function(t){if("perspective"in(t=t||{})&&(this.useOrtho=!t.perspective),"orthographic"in t&&(this.useOrtho=!!t.orthographic),"lineWidth"in t&&(this.lineWidth=t.lineWidth),"project"in t)if(Array.isArray(t.project))this.axesProject=t.project;else{var e=!!t.project;this.axesProject=[e,e,e]}if("projectScale"in t)if(Array.isArray(t.projectScale))this.projectScale=t.projectScale.slice();else{var r=+t.projectScale;this.projectScale=[r,r,r]}if("projectOpacity"in t)if(Array.isArray(t.projectOpacity))this.projectOpacity=t.projectOpacity.slice();else{r=+t.projectOpacity;this.projectOpacity=[r,r,r]}"opacity"in t&&(this.opacity=t.opacity),this.dirty=!0;var n=t.position;if(n){var i=t.font||"normal",a=t.alignment||[0,0],o=[1/0,1/0,1/0],s=[-1/0,-1/0,-1/0],l=t.glyph,u=t.color,c=t.size,h=t.angle,f=t.lineColor,p=0,d=0,g=0,v=n.length;t:for(var m=0;m0&&(E[0]=-a[0]*(1+w[0][0]));var V=b.cells,U=b.positions;for(x=0;x=0&&(u[1]+=1),l.indexOf("top")>=0&&(u[1]-=1),l.indexOf("left")>=0&&(u[0]-=1),l.indexOf("right")>=0&&(u[0]+=1),u)),r.textColor=Dj(e.textfont,1,_),r.textSize=Vj(e.textfont.size,_,ne.identity,12),r.textFont=e.textfont.family,r.textAngle=0);var T=["x","y","z"];for(r.project=[!1,!1,!1],r.projectScale=[1,1,1],r.projectOpacity=[1,1,1],n=0;n<3;++n){var S=e.projection[T[n]];(r.project[n]=S.show)&&(r.projectOpacity[n]=S.opacity,r.projectScale[n]=S.scale)}r.errorBounds=Rj(e,f);var E=function(t){for(var e=[0,0,0],r=[[0,0,0],[0,0,0],[0,0,0]],n=[0,0,0],i=0;i<3;i++){var a=t[i];a&&!1!==a.copy_zstyle&&(a=t[2]),a&&(e[i]=a.width/2,r[i]=WC(a.color),n=a.thickness)}return{capSize:e,color:r,lineWidth:n}}([e.error_x,e.error_y,e.error_z]);return r.errorColor=E.color,r.errorLineWidth=E.lineWidth,r.errorCapSize=E.capSize,r.delaunayAxis=e.surfaceaxis,r.delaunayColor=WC(e.surfacecolor),r}function qj(t){if(Array.isArray(t)){var e=t[0];return Array.isArray(e)&&(t=e),"rgb("+t.slice(0,3).map(function(t){return Math.round(255*t)})+")"}return null}Bj.handlePick=function(t){if(t.object&&(t.object===this.linePlot||t.object===this.delaunayMesh||t.object===this.textMarkers||t.object===this.scatterPlot)){t.object.highlight&&t.object.highlight(null),this.scatterPlot&&(t.object=this.scatterPlot,this.scatterPlot.highlight(t.data)),this.textLabels?void 0!==this.textLabels[t.data.index]?t.textLabel=this.textLabels[t.data.index]:t.textLabel=this.textLabels:t.textLabel="";var e=t.index=t.data.index;return t.traceCoordinate=[this.data.x[e],this.data.y[e],this.data.z[e]],!0}},Bj.update=function(t){var e,r,n,i,a=this.scene.glplot.gl,o=hN.solid;this.data=t;var s=Uj(this.scene,t);"mode"in s&&(this.mode=s.mode),"lineDashes"in s&&s.lineDashes in hN&&(o=hN[s.lineDashes]),this.color=qj(s.scatterColor)||qj(s.lineColor),this.dataPoints=s.position,e={gl:a,position:s.position,color:s.lineColor,lineWidth:s.lineWidth||1,dashes:o[0],dashScale:o[1],opacity:t.opacity,connectGaps:t.connectgaps},-1!==this.mode.indexOf("lines")?this.linePlot?this.linePlot.update(e):(this.linePlot=FN(e),this.linePlot._trace=this,this.scene.glplot.add(this.linePlot)):this.linePlot&&(this.scene.glplot.remove(this.linePlot),this.linePlot.dispose(),this.linePlot=null);var l=t.opacity;if(t.marker&&t.marker.opacity&&(l*=t.marker.opacity),r={gl:a,position:s.position,color:s.scatterColor,size:s.scatterSize,glyph:s.scatterMarker,opacity:l,orthographic:!0,lineWidth:s.scatterLineWidth,lineColor:s.scatterLineColor,project:s.project,projectScale:s.projectScale,projectOpacity:s.projectOpacity},-1!==this.mode.indexOf("markers")?this.scatterPlot?this.scatterPlot.update(r):(this.scatterPlot=uj(r),this.scatterPlot._trace=this,this.scatterPlot.highlightScale=1,this.scene.glplot.add(this.scatterPlot)):this.scatterPlot&&(this.scene.glplot.remove(this.scatterPlot),this.scatterPlot.dispose(),this.scatterPlot=null),i={gl:a,position:s.position,glyph:s.text,color:s.textColor,size:s.textSize,angle:s.textAngle,alignment:s.textOffset,font:s.textFont,orthographic:!0,lineWidth:0,project:!1,opacity:t.opacity},this.textLabels=t.hovertext||t.text,-1!==this.mode.indexOf("text")?this.textMarkers?this.textMarkers.update(i):(this.textMarkers=uj(i),this.textMarkers._trace=this,this.textMarkers.highlightScale=1,this.scene.glplot.add(this.textMarkers)):this.textMarkers&&(this.scene.glplot.remove(this.textMarkers),this.textMarkers.dispose(),this.textMarkers=null),n={gl:a,position:s.position,color:s.errorColor,error:s.errorBounds,lineWidth:s.errorLineWidth,capSize:s.errorCapSize,opacity:t.opacity},this.errorBars?s.errorBounds?this.errorBars.update(n):(this.scene.glplot.remove(this.errorBars),this.errorBars.dispose(),this.errorBars=null):s.errorBounds&&(this.errorBars=wN(n),this.errorBars._trace=this,this.scene.glplot.add(this.errorBars)),s.delaunayAxis>=0){var u=function(t,e,r){var n,i=(r+1)%3,a=(r+2)%3,o=[],s=[];for(n=0;n=0&&i("surfacecolor",a||o);for(var s=["x","y","z"],l=0;l<3;++l){var u="projection."+s[l];i(u+".show")&&(i(u+".opacity"),i(u+".scale"))}var c=P.getComponentMethod("errorbars","supplyDefaults");c(t,e,r,{axis:"z"}),c(t,e,r,{axis:"y",inherit:"z"}),c(t,e,r,{axis:"x",inherit:"z"})}else e.visible=!1},Gj.colorbar=is,Gj.calc=nB,Gj.moduleType="trace",Gj.name="scatter3d",Gj.basePlotModule=SD,Gj.categories=["gl3d","symbols","markerColorscale","showLegend"],Gj.meta={};var Wj=Gj,Yj=m.extendFlat,Xj=Zr.marker,Zj=Zr.line,Jj=Xj.line,Kj={carpet:{valType:"string",editType:"calc"},a:{valType:"data_array",editType:"calc"},b:{valType:"data_array",editType:"calc"},mode:Yj({},Zr.mode,{dflt:"markers"}),text:Yj({},Zr.text,{}),line:{color:Zj.color,width:Zj.width,dash:Zj.dash,shape:Yj({},Zj.shape,{values:["linear","spline"]}),smoothing:Zj.smoothing,editType:"calc"},connectgaps:Zr.connectgaps,fill:Yj({},Zr.fill,{values:["none","toself","tonext"]}),fillcolor:Zr.fillcolor,marker:Yj({symbol:Xj.symbol,opacity:Xj.opacity,maxdisplayed:Xj.maxdisplayed,size:Xj.size,sizeref:Xj.sizeref,sizemin:Xj.sizemin,sizemode:Xj.sizemode,line:Yj({width:Jj.width,editType:"calc"},De()),gradient:Xj.gradient,editType:"calc"},De(),{showscale:Xj.showscale,colorbar:ze}),textfont:Zr.textfont,textposition:Zr.textposition,selected:Zr.selected,unselected:Zr.unselected,hoverinfo:Yj({},E.hoverinfo,{flags:["a","b","text","name"]}),hoveron:Zr.hoveron},Qj=sx,$j={};$j.attributes=Kj,$j.supplyDefaults=function(t,e,r,n){function i(r,n){return ne.coerce(t,e,Kj,r,n)}i("carpet"),e.xaxis="x",e.yaxis="y";var a,o=i("a"),s=i("b");if(a=Math.min(o.length,s.length)){o&&a"),i}function _(t,e){var r;r=t.labelprefix&&t.labelprefix.length>0?t.labelprefix.replace(/ = $/,""):t._hovertitle,d.push(r+": "+e.toFixed(3)+t.labelsuffix)}},$j.selectPoints=Sx,$j.eventData=function(t,e,r,n,i){var a=n[i];return t.a=a.a,t.b=a.b,t},$j.moduleType="trace",$j.name="scattercarpet",$j.basePlotModule=ua,$j.categories=["carpet","symbols","markerColorscale","showLegend","carpetDependent"],$j.meta={};var tV=$j,eV=t.BADNUM,rV=ne._,nV=function(t,e){for(var n=Array.isArray(e.locations),i=n?e.locations.length:e._length,a=new Array(i),o=0;o0&&(r.push(n),n=[])}return n.length>0&&r.push(n),r},aV.makeLine=function(t){return 1===t.length?{type:"LineString",coordinates:t[0]}:{type:"MultiLineString",coordinates:t}},aV.makePolygon=function(t){if(1===t.length)return{type:"Polygon",coordinates:t};for(var e=new Array(t.length),r=0;r")}(i,c,s.mockAxis,n[0].t.labels),[t]}},pV.eventData=function(t,e){return t.lon=e.lon,t.lat=e.lat,t.location=e.loc?e.loc:null,t},pV.selectPoints=function(t,e){var r,n,i,a,o,s=t.cd,l=t.xaxis,u=t.yaxis,c=[],h=s[0].trace;if(!Tr.hasMarkers(h)&&!Tr.hasText(h))return[];if(!1===e)for(o=0;oi;){if(a-i>600){var s=a-i+1,l=n-i+1,u=Math.log(s),c=.5*Math.exp(2*u/3),h=.5*Math.sqrt(u*c*(s-c)/s)*(l-s/2<0?-1:1),f=Math.max(i,Math.floor(n-l*c/s+h)),p=Math.min(a,Math.floor(n+(s-l)*c/s+h));t(e,r,n,f,p,o)}var d=r[2*n+o],g=i,v=a;for(xV(e,r,i,n),r[2*a+o]>d&&xV(e,r,i,a);gd;)v--}r[2*i+o]===d?xV(e,r,i,v):xV(e,r,++v,a),v<=n&&(i=v+1),n<=v&&(a=v-1)}}(e,r,s,i,a,o%2);t(e,r,n,i,s-1,o+1);t(e,r,n,s+1,a,o+1)}(this.ids,this.coords,this.nodeSize,0,this.ids.length-1,0)}function yV(t,e,r,n){var i=t-r,a=e-n;return i*i+a*a}function xV(t,e,r,n){bV(t,r,n),bV(e,2*r,2*n),bV(e,2*r+1,2*n+1)}function bV(t,e,r){var n=t[e];t[e]=t[r],t[r]=n}mV.prototype.range=function(t,e,r,n){for(var i,a,o=this.ids,s=this.coords,l=this.nodeSize,u=[0,o.length-1,0],c=[];u.length;){var h=u.pop(),f=u.pop(),p=u.pop();if(f-p<=l)for(var d=p;d<=f;d++)i=s[2*d],a=s[2*d+1],i>=t&&i<=r&&a>=e&&a<=n&&c.push(o[d]);else{var g=Math.floor((p+f)/2);i=s[2*g],a=s[2*g+1],i>=t&&i<=r&&a>=e&&a<=n&&c.push(o[g]);var v=(h+1)%2;(0===h?t<=i:e<=a)&&(u.push(p),u.push(g-1),u.push(v)),(0===h?r>=i:n>=a)&&(u.push(g+1),u.push(f),u.push(v))}}return c},mV.prototype.within=function(t,e,r){for(var n=this.ids,i=this.coords,a=this.nodeSize,o=[0,n.length-1,0],s=[],l=r*r;o.length;){var u=o.pop(),c=o.pop(),h=o.pop();if(c-h<=a)for(var f=h;f<=c;f++)yV(i[2*f],i[2*f+1],t,e)<=l&&s.push(n[f]);else{var p=Math.floor((h+c)/2),d=i[2*p],g=i[2*p+1];yV(d,g,t,e)<=l&&s.push(n[p]);var v=(u+1)%2;(0===u?t-r<=d:e-r<=g)&&(o.push(h),o.push(p-1),o.push(v)),(0===u?t+r>=d:e+r>=g)&&(o.push(p+1),o.push(c),o.push(v))}}return s};var _V=function(t,e){if(!t||null==t.length)throw Error("Argument should be an array");e=null==e?1:Math.floor(e);for(var r=Array(2*e),n=0;ni&&(i=t[o]),t[o]1&&(t.scaleRatio=[t.scale[0]*t.viewport.width,t.scale[1]*t.viewport.height],r(t),t.after&&t.after(t))}function d(t){if(t){null!=t.length?"number"==typeof t[0]&&(t=[{positions:t}]):Array.isArray(t)||(t=[t]);var e=0,r=0;if(c=t.map(function(t,n){var i=c[n];return t?("function"==typeof t?t={after:t}:"number"==typeof t[0]&&(t={positions:t}),t=MV(t,{color:"color colors fill",capSize:"capSize cap capsize cap-size",lineWidth:"lineWidth line-width width line thickness",opacity:"opacity alpha",range:"range dataBox",viewport:"viewport viewBox",errors:"errors error",positions:"positions position data points"}),i||(c[n]=i={id:n,scale:null,translate:null,scaleFract:null,translateFract:null,draw:!0},t=Us({},u,t)),EV(i,t,[{lineWidth:function(t){return.5*+t},capSize:function(t){return.5*+t},opacity:parseFloat,errors:function(t){return t=wV(t),r+=t.length,t},positions:function(t,r){return t=wV(t,"float64"),r.count=Math.floor(t.length/2),r.bounds=_V(t,2),r.offset=e,e+=r.count,t}},{color:function(t,e){var r=e.count;if(t||(t="transparent"),!Array.isArray(t)||"number"==typeof t[0]){var n=t;t=Array(r);for(var i=0;i80*r){n=a=t[0],i=o=t[1];for(var d=r;da&&(a=s),l>o&&(o=l);u=0!==(u=Math.max(a-n,o-i))?1/u:0}return BV(f,p,r,n,i,u),p}function RV(t,e,r,n,i){var a,o;if(i===nU(t,e,r,n)>0)for(a=e;a=e;a-=n)o=tU(a,t[a],t[a+1],o);return o&&JV(o,o.next)&&(eU(o),o=o.next),o}function FV(t,e){if(!t)return t;e||(e=t);var r,n=t;do{if(r=!1,n.steiner||!JV(n,n.next)&&0!==ZV(n.prev,n,n.next))n=n.next;else{if(eU(n),(n=e=n.prev)===n.next)break;r=!0}}while(r||n!==e);return e}function BV(t,e,r,n,i,a,o){if(t){!o&&a&&function(t,e,r,n){var i=t;do{null===i.z&&(i.z=GV(i.x,i.y,e,r,n)),i.prevZ=i.prev,i.nextZ=i.next,i=i.next}while(i!==t);i.prevZ.nextZ=null,i.prevZ=null,function(t){var e,r,n,i,a,o,s,l,u=1;do{for(r=t,t=null,a=null,o=0;r;){for(o++,n=r,s=0,e=0;e0||l>0&&n;)0!==s&&(0===l||!n||r.z<=n.z)?(i=r,r=r.nextZ,s--):(i=n,n=n.nextZ,l--),a?a.nextZ=i:t=i,i.prevZ=a,a=i;r=n}a.nextZ=null,u*=2}while(o>1)}(i)}(t,n,i,a);for(var s,l,u=t;t.prev!==t.next;)if(s=t.prev,l=t.next,a?jV(t,n,i,a):NV(t))e.push(s.i/r),e.push(t.i/r),e.push(l.i/r),eU(t),t=l.next,u=l.next;else if((t=l)===u){o?1===o?BV(t=VV(t,e,r),e,r,n,i,a,2):2===o&&UV(t,e,r,n,i,a):BV(FV(t),e,r,n,i,a,1);break}}}function NV(t){var e=t.prev,r=t,n=t.next;if(ZV(e,r,n)>=0)return!1;for(var i=t.next.next;i!==t.prev;){if(YV(e.x,e.y,r.x,r.y,n.x,n.y,i.x,i.y)&&ZV(i.prev,i,i.next)>=0)return!1;i=i.next}return!0}function jV(t,e,r,n){var i=t.prev,a=t,o=t.next;if(ZV(i,a,o)>=0)return!1;for(var s=i.xa.x?i.x>o.x?i.x:o.x:a.x>o.x?a.x:o.x,c=i.y>a.y?i.y>o.y?i.y:o.y:a.y>o.y?a.y:o.y,h=GV(s,l,e,r,n),f=GV(u,c,e,r,n),p=t.prevZ,d=t.nextZ;p&&p.z>=h&&d&&d.z<=f;){if(p!==t.prev&&p!==t.next&&YV(i.x,i.y,a.x,a.y,o.x,o.y,p.x,p.y)&&ZV(p.prev,p,p.next)>=0)return!1;if(p=p.prevZ,d!==t.prev&&d!==t.next&&YV(i.x,i.y,a.x,a.y,o.x,o.y,d.x,d.y)&&ZV(d.prev,d,d.next)>=0)return!1;d=d.nextZ}for(;p&&p.z>=h;){if(p!==t.prev&&p!==t.next&&YV(i.x,i.y,a.x,a.y,o.x,o.y,p.x,p.y)&&ZV(p.prev,p,p.next)>=0)return!1;p=p.prevZ}for(;d&&d.z<=f;){if(d!==t.prev&&d!==t.next&&YV(i.x,i.y,a.x,a.y,o.x,o.y,d.x,d.y)&&ZV(d.prev,d,d.next)>=0)return!1;d=d.nextZ}return!0}function VV(t,e,r){var n=t;do{var i=n.prev,a=n.next.next;!JV(i,a)&&KV(i,n,n.next,a)&&QV(i,a)&&QV(a,i)&&(e.push(i.i/r),e.push(n.i/r),e.push(a.i/r),eU(n),eU(n.next),n=t=a),n=n.next}while(n!==t);return n}function UV(t,e,r,n,i,a){var o=t;do{for(var s=o.next.next;s!==o.prev;){if(o.i!==s.i&&XV(o,s)){var l=$V(o,s);return o=FV(o,o.next),l=FV(l,l.next),BV(o,e,r,n,i,a),void BV(l,e,r,n,i,a)}s=s.next}o=o.next}while(o!==t)}function qV(t,e){return t.x-e.x}function HV(t,e){if(e=function(t,e){var r,n=e,i=t.x,a=t.y,o=-1/0;do{if(a<=n.y&&a>=n.next.y&&n.next.y!==n.y){var s=n.x+(a-n.y)*(n.next.x-n.x)/(n.next.y-n.y);if(s<=i&&s>o){if(o=s,s===i){if(a===n.y)return n;if(a===n.next.y)return n.next}r=n.x=n.x&&n.x>=c&&i!==n.x&&YV(ar.x)&&QV(n,t)&&(r=n,f=l),n=n.next;return r}(t,e)){var r=$V(e,t);FV(r,r.next)}}function GV(t,e,r,n,i){return(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=32767*(t-r)*i)|t<<8))|t<<4))|t<<2))|t<<1))|(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=32767*(e-n)*i)|e<<8))|e<<4))|e<<2))|e<<1))<<1}function WV(t){var e=t,r=t;do{e.x=0&&(t-o)*(n-s)-(r-o)*(e-s)>=0&&(r-o)*(a-s)-(i-o)*(n-s)>=0}function XV(t,e){return t.next.i!==e.i&&t.prev.i!==e.i&&!function(t,e){var r=t;do{if(r.i!==t.i&&r.next.i!==t.i&&r.i!==e.i&&r.next.i!==e.i&&KV(r,r.next,t,e))return!0;r=r.next}while(r!==t);return!1}(t,e)&&QV(t,e)&&QV(e,t)&&function(t,e){var r=t,n=!1,i=(t.x+e.x)/2,a=(t.y+e.y)/2;do{r.y>a!=r.next.y>a&&r.next.y!==r.y&&i<(r.next.x-r.x)*(a-r.y)/(r.next.y-r.y)+r.x&&(n=!n),r=r.next}while(r!==t);return n}(t,e)}function ZV(t,e,r){return(e.y-t.y)*(r.x-e.x)-(e.x-t.x)*(r.y-e.y)}function JV(t,e){return t.x===e.x&&t.y===e.y}function KV(t,e,r,n){return!!(JV(t,e)&&JV(r,n)||JV(t,n)&&JV(r,e))||ZV(t,e,r)>0!=ZV(t,e,n)>0&&ZV(r,n,t)>0!=ZV(r,n,e)>0}function QV(t,e){return ZV(t.prev,t,t.next)<0?ZV(t,e,t.next)>=0&&ZV(t,t.prev,e)>=0:ZV(t,e,t.prev)<0||ZV(t,t.next,e)<0}function $V(t,e){var r=new rU(t.i,t.x,t.y),n=new rU(e.i,e.x,e.y),i=t.next,a=e.prev;return t.next=e,e.prev=t,r.next=i,i.prev=r,n.next=r,r.prev=n,a.next=n,n.prev=a,n}function tU(t,e,r,n){var i=new rU(t,e,r);return n?(i.next=n.next,i.prev=n,n.next.prev=i,n.next=i):(i.prev=i,i.next=i),i}function eU(t){t.next.prev=t.prev,t.prev.next=t.next,t.prevZ&&(t.prevZ.nextZ=t.nextZ),t.nextZ&&(t.nextZ.prevZ=t.prevZ)}function rU(t,e,r){this.i=t,this.x=e,this.y=r,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1}function nU(t,e,r,n){for(var i=0,a=e,o=r-n;a0&&(n+=t[i-1].length,r.holes.push(n))}return r};var iU=function(t,e){"function"==typeof t?(e||(e={}),e.regl=t):e=t;e.length&&(e.positions=e);if(!(t=e.regl).hasExtension("ANGLE_instanced_arrays"))throw Error("regl-error2d: `ANGLE_instanced_arrays` extension should be enabled");var r,n,i,a,o,s,l,u,c=t._gl,h={positions:[],dashes:null,join:null,miterLimit:1,thickness:10,cap:"square",color:"black",opacity:1,overlay:!1,viewport:null,range:null,close:null,fill:null},f=[],p=2,d=3e6,g=1e4;a=t.buffer({usage:"dynamic",type:"uint8",data:null}),o=t.buffer({usage:"static",type:"float",data:[0,1,0,0,1,1,1,0]}),s=t.buffer({usage:"dynamic",type:"float",data:null}),l=t.buffer({usage:"dynamic",type:"float",data:null}),u=t.texture({channels:1,data:new Uint8Array(524288),width:256,height:2048,mag:"linear",min:"linear"}),b(e);var v={primitive:"triangle strip",instances:t.prop("count"),count:4,offset:0,uniforms:{miterMode:function(t,e){return"round"===e.join?2:1},miterLimit:t.prop("miterLimit"),scale:t.prop("scale"),scaleFract:t.prop("scaleFract"),translateFract:t.prop("translateFract"),translate:t.prop("translate"),thickness:t.prop("thickness"),dashPattern:u,dashLength:t.prop("dashLength"),dashShape:[256,2048],opacity:t.prop("opacity"),pixelRatio:t.context("pixelRatio"),id:t.prop("id"),scaleRatio:t.prop("scaleRatio"),viewport:function(t,e){return[e.viewport.x,e.viewport.y,t.viewportWidth,t.viewportHeight]}},blend:{enable:!0,color:[0,0,0,0],equation:{rgb:"add",alpha:"add"},func:{srcRGB:"src alpha",dstRGB:"one minus src alpha",srcAlpha:"one minus dst alpha",dstAlpha:"one"}},depth:{enable:function(t,e){return!e.overlay}},scissor:{enable:!0,box:t.prop("viewport")},stencil:!1,viewport:t.prop("viewport")};function m(t){t?b(t):null===t&&_(),y()}function y(t){if("number"==typeof t)return x(t);t&&!Array.isArray(t)&&(t=[t]),f.forEach(function(t,e){x(e)})}function x(e){"number"==typeof e&&(e=f[e]),e&&e.count&&e.opacity&&e.positions&&e.positions.length>2&&(t._refresh(),e.fill&&e.triangles&&e.triangles.length>2&&i(e),e.thickness&&e.color&&(e.scaleRatio=[e.scale[0]*e.viewport.width,e.scale[1]*e.viewport.height],e.scaleRatio[0]>d||e.scaleRatio[1]>d?n(e):"rect"===e.join||!e.join&&(e.thickness<=2||e.positions.length>=g)?n(e):r(e),e.after&&e.after(e)))}function b(t){if(t){null!=t.length?"number"==typeof t[0]&&(t=[{positions:t}]):Array.isArray(t)||(t=[t]);var e=0;if(m.lines=f=t.map(function(t,r){var n=f[r];return void 0===t?n:(null===t?t={positions:null}:"function"==typeof t?t={after:t}:"number"==typeof t[0]&&(t={positions:t}),null===(t=MV(t,{positions:"positions points data coords",thickness:"thickness lineWidth lineWidths line-width linewidth width stroke-width strokewidth strokeWidth",join:"lineJoin linejoin join type mode",miterLimit:"miterlimit miterLimit",dashes:"dash dashes dasharray dash-array dashArray",color:"color stroke colors stroke-color strokeColor",fill:"fill fill-color fillColor",opacity:"alpha opacity",overlay:"overlay crease overlap intersect",close:"closed close closed-path closePath",range:"range dataBox",viewport:"viewport viewBox",hole:"holes hole hollow",after:"after callback done pass"})).positions&&(t.positions=[]),n||(f[r]=n={id:r,scale:null,scaleFract:null,translate:null,translateFract:null,count:0,offset:0,dashLength:0,hole:!0},t=Us({},h,t)),EV(n,t,[{thickness:parseFloat,opacity:parseFloat,miterLimit:parseFloat,overlay:Boolean,join:function(t){return t},after:function(t){return t},hole:function(t){return t||[]},positions:function(t,r,n){t=wV(t,"float64");var i=Math.floor(t.length/2),a=_V(t,2);return r.range||n.range||(n.range=a),r.count=i,r.bounds=a,e+=i,t},fill:function(t){return t?GC(t,"uint8"):null},dashes:function(t,e,r){var n,i=e.dashLength;if(!t||t.length<2)i=1,n=new Uint8Array([255,255,255,255,255,255,255,255]);else{i=0;for(var a=0;a=4&&e.positions[0]===e.positions[e.positions.length-2]&&e.positions[1]===e.positions[e.positions.length-1]},positions:function(t,e,r){if(e.fill&&t.length){for(var n=[],i={},a=0,o=0,s=0,l=e.count;o 0. && baClipping < length(normalWidth * endBotJoin)) {\n\t\t//handle miter clipping\n\t\tbTopCoord -= normalWidth * endTopJoin;\n\t\tbTopCoord += normalize(endTopJoin * normalWidth) * baClipping;\n\t}\n\n\tif (nextReverse) {\n\t\t//make join rectangular\n\t\tvec2 miterShift = normalWidth * endJoinDirection * miterLimit * .5;\n\t\tfloat normalAdjust = 1. - min(miterLimit / endMiterRatio, 1.);\n\t\tbBotCoord = bCoord + miterShift - normalAdjust * normalWidth * currNormal * .5;\n\t\tbTopCoord = bCoord + miterShift + normalAdjust * normalWidth * currNormal * .5;\n\t}\n\telse if (!prevReverse && abClipping > 0. && abClipping < length(normalWidth * startBotJoin)) {\n\t\t//handle miter clipping\n\t\taBotCoord -= normalWidth * startBotJoin;\n\t\taBotCoord += normalize(startBotJoin * normalWidth) * abClipping;\n\t}\n\n\tvec2 aTopPosition = (aTopCoord) * scale + translate;\n\tvec2 aBotPosition = (aBotCoord) * scale + translate;\n\n\tvec2 bTopPosition = (bTopCoord) * scale + translate;\n\tvec2 bBotPosition = (bBotCoord) * scale + translate;\n\n\t//position is normalized 0..1 coord on the screen\n\tvec2 position = (aTopPosition * lineTop + aBotPosition * lineBot) * lineStart + (bTopPosition * lineTop + bBotPosition * lineBot) * lineEnd;\n\n\tstartCoord = aCoord * scaleRatio + translate * viewport.zw + viewport.xy;\n\tendCoord = bCoord * scaleRatio + translate * viewport.zw + viewport.xy;\n\n\tgl_Position = vec4(position * 2.0 - 1.0, depth, 1);\n\n\tenableStartMiter = step(dot(currTangent, prevTangent), .5);\n\tenableEndMiter = step(dot(currTangent, nextTangent), .5);\n\n\t//bevel miter cutoffs\n\tif (miterMode == 1.) {\n\t\tif (enableStartMiter == 1.) {\n\t\t\tvec2 startMiterWidth = vec2(startJoinDirection) * thickness * miterLimit * .5;\n\t\t\tstartCutoff = vec4(aCoord, aCoord);\n\t\t\tstartCutoff.zw += vec2(-startJoinDirection.y, startJoinDirection.x) / scaleRatio;\n\t\t\tstartCutoff = startCutoff * scaleRatio.xyxy + translate.xyxy * viewport.zwzw;\n\t\t\tstartCutoff += viewport.xyxy;\n\t\t\tstartCutoff += startMiterWidth.xyxy;\n\t\t}\n\n\t\tif (enableEndMiter == 1.) {\n\t\t\tvec2 endMiterWidth = vec2(endJoinDirection) * thickness * miterLimit * .5;\n\t\t\tendCutoff = vec4(bCoord, bCoord);\n\t\t\tendCutoff.zw += vec2(-endJoinDirection.y, endJoinDirection.x) / scaleRatio;\n\t\t\tendCutoff = endCutoff * scaleRatio.xyxy + translate.xyxy * viewport.zwzw;\n\t\t\tendCutoff += viewport.xyxy;\n\t\t\tendCutoff += endMiterWidth.xyxy;\n\t\t}\n\t}\n\n\t//round miter cutoffs\n\telse if (miterMode == 2.) {\n\t\tif (enableStartMiter == 1.) {\n\t\t\tvec2 startMiterWidth = vec2(startJoinDirection) * thickness * abs(dot(startJoinDirection, currNormal)) * .5;\n\t\t\tstartCutoff = vec4(aCoord, aCoord);\n\t\t\tstartCutoff.zw += vec2(-startJoinDirection.y, startJoinDirection.x) / scaleRatio;\n\t\t\tstartCutoff = startCutoff * scaleRatio.xyxy + translate.xyxy * viewport.zwzw;\n\t\t\tstartCutoff += viewport.xyxy;\n\t\t\tstartCutoff += startMiterWidth.xyxy;\n\t\t}\n\n\t\tif (enableEndMiter == 1.) {\n\t\t\tvec2 endMiterWidth = vec2(endJoinDirection) * thickness * abs(dot(endJoinDirection, currNormal)) * .5;\n\t\t\tendCutoff = vec4(bCoord, bCoord);\n\t\t\tendCutoff.zw += vec2(-endJoinDirection.y, endJoinDirection.x) / scaleRatio;\n\t\t\tendCutoff = endCutoff * scaleRatio.xyxy + translate.xyxy * viewport.zwzw;\n\t\t\tendCutoff += viewport.xyxy;\n\t\t\tendCutoff += endMiterWidth.xyxy;\n\t\t}\n\t}\n}\n"]),frag:E_(["precision highp float;\n#define GLSLIFY 1\n\nuniform sampler2D dashPattern;\nuniform vec2 dashShape;\nuniform float dashLength, pixelRatio, thickness, opacity, id, miterMode;\n\nvarying vec4 fragColor;\nvarying vec2 tangent;\nvarying vec4 startCutoff, endCutoff;\nvarying vec2 startCoord, endCoord;\nvarying float enableStartMiter, enableEndMiter;\n\nfloat distToLine(vec2 p, vec2 a, vec2 b) {\n\tvec2 diff = b - a;\n\tvec2 perp = normalize(vec2(-diff.y, diff.x));\n\treturn dot(p - a, perp);\n}\n\nvoid main() {\n\tfloat alpha = 1., distToStart, distToEnd;\n\tfloat cutoff = thickness * .5;\n\n\t//bevel miter\n\tif (miterMode == 1.) {\n\t\tif (enableStartMiter == 1.) {\n\t\t\tdistToStart = distToLine(gl_FragCoord.xy, startCutoff.xy, startCutoff.zw);\n\t\t\tif (distToStart < -1.) {\n\t\t\t\tdiscard;\n\t\t\t\treturn;\n\t\t\t}\n\t\t\talpha *= min(max(distToStart + 1., 0.), 1.);\n\t\t}\n\n\t\tif (enableEndMiter == 1.) {\n\t\t\tdistToEnd = distToLine(gl_FragCoord.xy, endCutoff.xy, endCutoff.zw);\n\t\t\tif (distToEnd < -1.) {\n\t\t\t\tdiscard;\n\t\t\t\treturn;\n\t\t\t}\n\t\t\talpha *= min(max(distToEnd + 1., 0.), 1.);\n\t\t}\n\t}\n\n\t// round miter\n\telse if (miterMode == 2.) {\n\t\tif (enableStartMiter == 1.) {\n\t\t\tdistToStart = distToLine(gl_FragCoord.xy, startCutoff.xy, startCutoff.zw);\n\t\t\tif (distToStart < 0.) {\n\t\t\t\tfloat radius = length(gl_FragCoord.xy - startCoord);\n\n\t\t\t\tif(radius > cutoff + .5) {\n\t\t\t\t\tdiscard;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\talpha -= smoothstep(cutoff - .5, cutoff + .5, radius);\n\t\t\t}\n\t\t}\n\n\t\tif (enableEndMiter == 1.) {\n\t\t\tdistToEnd = distToLine(gl_FragCoord.xy, endCutoff.xy, endCutoff.zw);\n\t\t\tif (distToEnd < 0.) {\n\t\t\t\tfloat radius = length(gl_FragCoord.xy - endCoord);\n\n\t\t\t\tif(radius > cutoff + .5) {\n\t\t\t\t\tdiscard;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\talpha -= smoothstep(cutoff - .5, cutoff + .5, radius);\n\t\t\t}\n\t\t}\n\t}\n\n\tfloat t = fract(dot(tangent, gl_FragCoord.xy) / dashLength) * .5 + .25;\n\tfloat dash = texture2D(dashPattern, vec2(t * dashLength * 2. / dashShape.x, (id + .5) / dashShape.y)).r;\n\n\tgl_FragColor = fragColor * dash;\n\tgl_FragColor.a *= alpha * opacity * dash;\n}\n"]),attributes:{lineEnd:{buffer:o,divisor:0,stride:8,offset:0},lineTop:{buffer:o,divisor:0,stride:8,offset:4},aColor:{buffer:a,stride:4,offset:function(t,e){return 4*e.offset},divisor:1},bColor:{buffer:a,stride:4,offset:function(t,e){return 4*e.offset+4},divisor:1},prevCoord:{buffer:s,stride:8,offset:function(t,e){return 8*e.offset},divisor:1},aCoord:{buffer:s,stride:8,offset:function(t,e){return 8+8*e.offset},divisor:1},bCoord:{buffer:s,stride:8,offset:function(t,e){return 16+8*e.offset},divisor:1},nextCoord:{buffer:s,stride:8,offset:function(t,e){return 24+8*e.offset},divisor:1}}},v)),n=t(Us({vert:E_(["precision highp float;\n#define GLSLIFY 1\n\nattribute vec2 aCoord, bCoord, aCoordFract, bCoordFract;\nattribute vec4 color;\nattribute float lineEnd, lineTop;\n\nuniform vec2 scale, scaleFract, translate, translateFract, scaleRatio;\nuniform float thickness, pixelRatio, id;\nuniform vec4 viewport;\n\nvarying vec4 fragColor;\nvarying vec2 tangent;\n\nconst float MAX_LINES = 256.;\n\nvec2 project(vec2 position, vec2 positionFract, vec2 scale, vec2 scaleFract, vec2 translate, vec2 translateFract) {\n\t// the order is important\n\treturn position * scale + translate\n + positionFract * scale + translateFract\n + position * scaleFract\n + positionFract * scaleFract;\n}\n\nvoid main() {\n\t// vec2 scaleRatio = scale * viewport.zw;\n\tvec2 normalWidth = thickness / scaleRatio;\n\n\tfloat lineStart = 1. - lineEnd;\n\tfloat lineOffset = lineTop * 2. - 1.;\n\tfloat depth = (MAX_LINES - 1. - id) / (MAX_LINES);\n\n\tvec2 diff = (bCoord + bCoordFract - aCoord - aCoordFract);\n\ttangent = normalize(diff * scaleRatio);\n\tvec2 normal = vec2(-tangent.y, tangent.x);\n\n\tvec2 position = project(aCoord, aCoordFract, scale, scaleFract, translate, translateFract) * lineStart\n\t\t+ project(bCoord, bCoordFract, scale, scaleFract, translate, translateFract) * lineEnd\n\n\t\t+ thickness * normal * .5 * lineOffset / viewport.zw;\n\n\tgl_Position = vec4(position * 2.0 - 1.0, depth, 1);\n\n\tfragColor = color / 255.;\n}\n"]),frag:E_(["precision highp float;\n#define GLSLIFY 1\n\nuniform sampler2D dashPattern;\nuniform vec2 dashShape;\nuniform float dashLength, pixelRatio, thickness, opacity, id;\n\nvarying vec4 fragColor;\nvarying vec2 tangent;\n\nvoid main() {\n\tfloat alpha = 1.;\n\n\tfloat t = fract(dot(tangent, gl_FragCoord.xy) / dashLength) * .5 + .25;\n\tfloat dash = texture2D(dashPattern, vec2(t * dashLength * 2. / dashShape.x, (id + .5) / dashShape.y)).r;\n\n\tgl_FragColor = fragColor * dash;\n\tgl_FragColor.a *= alpha * opacity * dash;\n}\n"]),attributes:{lineEnd:{buffer:o,divisor:0,stride:8,offset:0},lineTop:{buffer:o,divisor:0,stride:8,offset:4},aCoord:{buffer:s,stride:8,offset:function(t,e){return 8+8*e.offset},divisor:1},bCoord:{buffer:s,stride:8,offset:function(t,e){return 16+8*e.offset},divisor:1},aCoordFract:{buffer:l,stride:8,offset:function(t,e){return 8+8*e.offset},divisor:1},bCoordFract:{buffer:l,stride:8,offset:function(t,e){return 16+8*e.offset},divisor:1},color:{buffer:a,stride:4,offset:function(t,e){return 4*e.offset},divisor:1}}},v)),i=t({primitive:"triangle",elements:function(t,e){return e.triangles},offset:0,vert:E_(["precision highp float;\n#define GLSLIFY 1\n\nattribute vec2 position, positionFract;\n\nuniform vec4 color;\nuniform vec2 scale, scaleFract, translate, translateFract, scaleRatio;\nuniform float pixelRatio, id;\nuniform vec4 viewport;\n\nvarying vec4 fragColor;\n\nconst float MAX_LINES = 256.;\n\nvoid main() {\n\tfloat depth = (MAX_LINES - 4. - id) / (MAX_LINES);\n\n\tvec2 position = position * scale + translate\n + positionFract * scale + translateFract\n + position * scaleFract\n + positionFract * scaleFract;\n\n\tgl_Position = vec4(position * 2.0 - 1.0, depth, 1);\n\n\tfragColor = color / 255.;\n}\n"]),frag:E_(["precision highp float;\n#define GLSLIFY 1\n\nuniform float opacity;\n\nvarying vec4 fragColor;\n\nvoid main() {\n\tgl_FragColor = fragColor;\n\tgl_FragColor.a *= opacity;\n}\n"]),uniforms:{scale:t.prop("scale"),color:t.prop("fill"),scaleFract:t.prop("scaleFract"),translateFract:t.prop("translateFract"),translate:t.prop("translate"),opacity:t.prop("opacity"),pixelRatio:t.context("pixelRatio"),id:t.prop("id"),viewport:function(t,e){return[e.viewport.x,e.viewport.y,t.viewportWidth,t.viewportHeight]}},attributes:{position:{buffer:s,stride:8,offset:function(t,e){return 8+8*e.offset}},positionFract:{buffer:l,stride:8,offset:function(t,e){return 8+8*e.offset}}},blend:v.blend,depth:{enable:!1},scissor:v.scissor,stencil:v.stencil,viewport:v.viewport}),Us(m,{update:b,draw:y,destroy:_,regl:t,gl:c,canvas:c.canvas,lines:f}),m};function aU(t){var e=new Float32Array(t.length);e.set(t);for(var r=0,n=e.length;r>>24,n=(16711680&t)>>>16,i=(65280&t)>>>8,a=255&t;return!1===e?[r,n,i,a]:[r/255,n/255,i/255,a/255]};var lU="undefined"!=typeof navigator&&(/MSIE/.test(navigator.userAgent)||/Trident\//.test(navigator.appVersion)),uU=function(t){var e;arguments.length>1&&(t=arguments);"string"==typeof t&&(t=t.split(/\s/).map(parseFloat));t.length&&"number"==typeof t[0]?e=2===t.length?{width:t[0],height:t[1],x:0,y:0}:{x:t[0],y:t[1],width:t[2]-t[0]||0,height:t[3]-t[1]||0}:t&&(t=MV(t,{left:"x l left Left",top:"y t top Top",width:"w width",height:"h height",bottom:"b bottom",right:"r right"}),e={x:t.left||0,y:t.top||0},null==t.width?t.right?e.width=t.right-e.x:e.width=0:e.width=t.width,null==t.height?t.bottom?e.height=t.bottom-e.y:e.height=0:e.height=t.height);return e};function cU(t,e,r,n,i){var a=["function ",t,"(a,l,h,",n.join(","),"){",i?"":"var i=",r?"l-1":"h+1",";while(l<=h){var m=(l+h)>>>1,x=a[m]"];return i?e.indexOf("c")<0?a.push(";if(x===y){return m}else if(x<=y){"):a.push(";var p=c(x,y);if(p===0){return m}else if(p<=0){"):a.push(";if(",e,"){i=m;"),r?a.push("l=m+1}else{h=m-1}"):a.push("h=m-1}else{l=m+1}"),a.push("}"),i?a.push("return -1};"):a.push("return i};"),a.join("")}function hU(t,e,r,n){return new Function([cU("A","x"+t+"y",e,["y"],n),cU("P","c(x,y)"+t+"0",e,["y","c"],n),"function dispatchBsearch",r,"(a,y,c,l,h){if(typeof(c)==='function'){return P(a,(l===void 0)?0:l|0,(h===void 0)?a.length-1:h|0,y,c)}else{return A(a,(c===void 0)?0:c|0,(l===void 0)?a.length-1:l|0,y)}}return dispatchBsearch",r].join(""))()}var fU={ge:hU(">=",!1,"GE"),gt:hU(">",!1,"GT"),lt:hU("<",!0,"LT"),le:hU("<=",!0,"LE"),eq:hU("-",!0,"EQ",!0)},pU=function(t,e,r,n,i){i<=4*dU?gU(0,i-1,t,e,r,n):function t(e,r,n,i,a,o){var s=(r-e+1)/6|0,l=e+s,u=r-s,c=e+r>>1,h=c-s,f=c+s,p=l,d=h,g=c,v=f,m=u,y=e+1,x=r-1,b=0;bU(p,d,n,i,a)&&(b=p,p=d,d=b);bU(v,m,n,i,a)&&(b=v,v=m,m=b);bU(p,g,n,i,a)&&(b=p,p=g,g=b);bU(d,g,n,i,a)&&(b=d,d=g,g=b);bU(p,v,n,i,a)&&(b=p,p=v,v=b);bU(g,v,n,i,a)&&(b=g,g=v,v=b);bU(d,m,n,i,a)&&(b=d,d=m,m=b);bU(d,g,n,i,a)&&(b=d,d=g,g=b);bU(v,m,n,i,a)&&(b=v,v=m,m=b);var _=n[d];var w=i[2*d];var M=i[2*d+1];var A=a[d];var k=o[d];var T=n[v];var S=i[2*v];var E=i[2*v+1];var C=a[v];var L=o[v];var z=p;var P=g;var I=m;var D=l;var O=c;var R=u;var F=n[z];var B=n[P];var N=n[I];n[D]=F;n[O]=B;n[R]=N;for(var j=0;j<2;++j){var V=i[2*z+j],U=i[2*P+j],q=i[2*I+j];i[2*D+j]=V,i[2*O+j]=U,i[2*R+j]=q}var H=a[z];var G=a[P];var W=a[I];a[D]=H;a[O]=G;a[R]=W;var Y=o[z];var X=o[P];var Z=o[I];o[D]=Y;o[O]=X;o[R]=Z;mU(h,e,n,i,a,o);mU(f,r,n,i,a,o);for(var J=y;J<=x;++J)if(_U(J,_,w,M,A,n,i,a))J!==y&&vU(J,y,n,i,a,o),++y;else if(!_U(J,T,S,E,C,n,i,a))for(;;){if(_U(x,T,S,E,C,n,i,a)){_U(x,_,w,M,A,n,i,a)?(yU(J,y,x,n,i,a,o),++y,--x):(vU(J,x,n,i,a,o),--x);break}if(--xt;){var p=r[f-1],d=n[2*(f-1)];if((p-s||l-d)>=0)break;r[f]=p,n[2*f]=d,n[2*f+1]=n[2*f-1],i[f]=i[f-1],a[f]=a[f-1],f-=1}r[f]=s,n[2*f]=l,n[2*f+1]=u,i[f]=c,a[f]=h}}function vU(t,e,r,n,i,a){var o=r[t],s=n[2*t],l=n[2*t+1],u=i[t],c=a[t];r[t]=r[e],n[2*t]=n[2*e],n[2*t+1]=n[2*e+1],i[t]=i[e],a[t]=a[e],r[e]=o,n[2*e]=s,n[2*e+1]=l,i[e]=u,a[e]=c}function mU(t,e,r,n,i,a){r[t]=r[e],n[2*t]=n[2*e],n[2*t+1]=n[2*e+1],i[t]=i[e],a[t]=a[e]}function yU(t,e,r,n,i,a,o){var s=n[t],l=i[2*t],u=i[2*t+1],c=a[t],h=o[t];n[t]=n[e],i[2*t]=i[2*e],i[2*t+1]=i[2*e+1],a[t]=a[e],o[t]=o[e],n[e]=n[r],i[2*e]=i[2*r],i[2*e+1]=i[2*r+1],a[e]=a[r],o[e]=o[r],n[r]=s,i[2*r]=l,i[2*r+1]=u,a[r]=c,o[r]=h}function xU(t,e,r,n,i,a,o,s,l,u,c){s[t]=s[e],l[2*t]=l[2*e],l[2*t+1]=l[2*e+1],u[t]=u[e],c[t]=c[e],s[e]=r,l[2*e]=n,l[2*e+1]=i,u[e]=a,c[e]=o}function bU(t,e,r,n,i){return(r[t]-r[e]||n[2*e]-n[2*t]||i[t]-i[e])<0}function _U(t,e,r,n,i,a,o,s){return(e-a[t]||o[2*t]-r||i-s[t])<0}var wU=function(t,e,r,n){var i=t.length>>>1;if(i<1)return[];e||(e=Array(i));r||(r=Array(i));n||(n=[]);for(var a=0;a=n[2]||n[1]>=n[3]){var o=_V(t,2);o[0]===o[2]&&(o[2]+=1),o[1]===o[3]&&(o[3]+=1),n[0]=o[0],n[1]=o[1],n[2]=o[2],n[3]=o[3]}var s=n[0],l=n[1],u=n[2],c=n[3],h=1/(u-s),f=1/(c-l),p=Math.max(u-s,c-l),d=new Int32Array(i),g=0;(function n(i,a,o,s,l,u){var c=.5*o;var h=s+1;var f=l-s;r[g]=f;d[g++]=u;for(var p=0;p<2;++p)for(var v=0;v<2;++v){var m=i+p*c,y=a+v*c,x=MU(t,e,h,l,m,y,m+c,y+c);if(x!==h){if(x-h>=Math.max(.9*f,32)){var b=l+s>>>1;n(m,y,c,h,b,u+1),h=b}n(m,y,c,h,x,u+1),h=x}}})(s,l,p,0,i,0),pU(d,t,e,r,i);for(var v=[],m=0,y=i,g=i-1;g>=0;--g){t[2*g]=(t[2*g]-s)*h,t[2*g+1]=(t[2*g+1]-l)*f;var x=d[g];x!==m&&(v.push(new AU(p*Math.pow(.5,x),g+1,y-(g+1))),y=g+1,m=x)}return v.push(new AU(p*Math.pow(.5,x+1),0,y)),v};function MU(t,e,r,n,i,a,o,s){for(var l=r,u=r;u 1.0) {\n discard;\n }\n\n float centerFraction = fragBorderSize == 0. ? 2. : fragSize / (fragSize + fragBorderSize + 1.25);\n\n vec4 baseColor = mix(borderColor, color, smoothStep(radius, centerFraction));\n float alpha = 1.0 - pow(1.0 - baseColor.a, 1.);\n gl_FragColor = vec4(baseColor.rgb * alpha, alpha);\n}\n"]),vert:E_(["precision highp float;\n#define GLSLIFY 1\n\nattribute vec2 position, positionFract;\nattribute float size, borderSize;\n\nuniform vec2 scale, scaleFract, translate, translateFract;\nuniform float pixelRatio;\n\nconst float maxSize = 100.;\n\nvarying vec4 fragColor, fragBorderColor;\nvarying float fragBorderRadius, fragWidth, fragBorderSize, fragSize;\n\nvoid main() {\n float size = size * maxSize / 255.;\n float borderSize = borderSize * maxSize / 255.;\n fragBorderSize = borderSize;\n fragSize = size;\n\n gl_PointSize = (size + borderSize) * pixelRatio;\n\n vec2 pos = (position + translate) * scale\n\t\t\t+ (positionFract + translateFract) * scale\n\t\t\t+ (position + translate) * scaleFract\n\t\t\t+ (positionFract + translateFract) * scaleFract;\n\n gl_Position = vec4(pos * 2. - 1., 0, 1);\n\n fragBorderRadius = borderSize == 0. ? 2. : 1. - 2. * borderSize / (size + borderSize);\n fragWidth = 1. / gl_PointSize;\n}\n"]),uniforms:{color:function(t,e){var r=e.color.length?e.color[0]:e.color;return c.slice(4*r,4*r+4).map(function(t){return t/255})},borderColor:function(t,e){var r=e.borderColor.length?e.borderColor[0]:e.borderColor;return c.slice(4*r,4*r+4).map(function(t){return t/255})},pixelRatio:t.context("pixelRatio"),palette:l,paletteSize:function(t,e){return[v,l.height]},scale:t.prop("scale"),scaleFract:t.prop("scaleFract"),translate:t.prop("translate"),translateFract:t.prop("translateFract"),opacity:t.prop("opacity"),marker:t.prop("marker")},attributes:{position:a,positionFract:o,size:y.attributes.size,borderSize:y.attributes.borderSize}}));else{var x=Us({},y);x.frag=E_(["precision mediump float;\n#define GLSLIFY 1\n\nvarying vec4 fragColor, fragBorderColor;\nvarying float fragWidth, fragBorderColorLevel, fragColorLevel;\n\nuniform sampler2D marker;\nuniform float pixelRatio, opacity;\n\nfloat smoothStep(float x, float y) {\n return 1.0 / (1.0 + exp(50.0*(x - y)));\n}\n\nvoid main() {\n float dist = texture2D(marker, gl_PointCoord).r, delta = fragWidth;\n\n //max-distance alpha\n if (dist < 0.003) discard;\n\n //null-border case\n if (fragBorderColorLevel == fragColorLevel || fragBorderColor.a == 0.) {\n float colorAmt = smoothstep(.5 - delta, .5 + delta, dist);\n gl_FragColor = vec4(fragColor.rgb, colorAmt * fragColor.a);\n return;\n }\n\n float borderColorAmt = smoothstep(fragBorderColorLevel - delta, fragBorderColorLevel + delta, dist);\n float colorAmt = smoothstep(fragColorLevel - delta, fragColorLevel + delta, dist);\n\n vec4 color = fragBorderColor;\n color.a *= borderColorAmt;\n color = mix(color, fragColor, colorAmt);\n color.a *= opacity;\n\n gl_FragColor = color;\n}\n"]),x.vert=E_(["precision mediump float;\n#define GLSLIFY 1\n\nattribute vec2 position, positionFract;\nattribute float size, borderSize;\nattribute vec2 colorId, borderColorId;\n\nuniform vec2 scale, scaleFract, translate, translateFract, paletteSize;\nuniform float pixelRatio;\nuniform sampler2D palette;\n\nconst float maxSize = 100.;\nconst float borderLevel = .5;\n\nvarying vec4 fragColor, fragBorderColor;\nvarying float fragPointSize, fragBorderRadius,\n\t\tfragWidth, fragBorderColorLevel, fragColorLevel;\n\nvec2 paletteCoord(float id) {\n return vec2(\n (mod(id, paletteSize.x) + .5) / paletteSize.x,\n (floor(id / paletteSize.x) + .5) / paletteSize.y\n );\n}\nvec2 paletteCoord(vec2 id) {\n return vec2(\n (id.x + .5) / paletteSize.x,\n (id.y + .5) / paletteSize.y\n );\n}\n\nvoid main() {\n vec4 color = texture2D(palette, paletteCoord(colorId));\n vec4 borderColor = texture2D(palette, paletteCoord(borderColorId));\n\n float size = size * maxSize / 255.;\n float borderSize = borderSize * maxSize / 255.;\n\n gl_PointSize = 2. * size * pixelRatio;\n fragPointSize = size * pixelRatio;\n\n vec2 pos = (position + translate) * scale\n + (positionFract + translateFract) * scale\n + (position + translate) * scaleFract\n + (positionFract + translateFract) * scaleFract;\n\n gl_Position = vec4(pos * 2. - 1., 0, 1);\n\n fragColor = color;\n fragBorderColor = borderColor;\n fragWidth = 1. / gl_PointSize;\n\n fragBorderColorLevel = clamp(borderLevel - borderLevel * borderSize / size, 0., 1.);\n fragColorLevel = clamp(borderLevel + (1. - borderLevel) * borderSize / size, 0., 1.);\n}\n"]),r=t(x);var b=Us({},y);b.frag=E_(["precision highp float;\n#define GLSLIFY 1\n\nvarying vec4 fragColor, fragBorderColor;\n\nuniform float opacity;\nvarying float fragBorderRadius, fragWidth;\n\nvoid main() {\n\tfloat radius, alpha = 1.0, delta = fragWidth;\n\n\tradius = length(2.0 * gl_PointCoord.xy - 1.0);\n\n\tif(radius > 1.0 + delta) {\n\t\tdiscard;\n\t\treturn;\n\t}\n\n\talpha -= smoothstep(1.0 - delta, 1.0 + delta, radius);\n\n\tfloat borderRadius = fragBorderRadius;\n\tfloat ratio = smoothstep(borderRadius - delta, borderRadius + delta, radius);\n\tvec4 color = mix(fragColor, fragBorderColor, ratio);\n\tcolor.a *= alpha * opacity;\n\tgl_FragColor = color;\n}\n"]),b.vert=E_(["precision highp float;\n#define GLSLIFY 1\n\nattribute vec2 position, positionFract;\nattribute float size, borderSize;\nattribute vec2 colorId, borderColorId;\n\nuniform vec2 scale, scaleFract, translate, translateFract;\nuniform float pixelRatio;\nuniform sampler2D palette;\nuniform vec2 paletteSize;\n\nconst float maxSize = 100.;\n\nvarying vec4 fragColor, fragBorderColor;\nvarying float fragBorderRadius, fragWidth;\n\nvec2 paletteCoord(float id) {\n return vec2(\n (mod(id, paletteSize.x) + .5) / paletteSize.x,\n (floor(id / paletteSize.x) + .5) / paletteSize.y\n );\n}\nvec2 paletteCoord(vec2 id) {\n return vec2(\n (id.x + .5) / paletteSize.x,\n (id.y + .5) / paletteSize.y\n );\n}\n\nvoid main() {\n vec4 color = texture2D(palette, paletteCoord(colorId));\n vec4 borderColor = texture2D(palette, paletteCoord(borderColorId));\n\n float size = size * maxSize / 255.;\n float borderSize = borderSize * maxSize / 255.;\n\n gl_PointSize = (size + borderSize) * pixelRatio;\n\n vec2 pos = (position + translate) * scale\n\t\t\t+ (positionFract + translateFract) * scale\n\t\t\t+ (position + translate) * scaleFract\n\t\t\t+ (positionFract + translateFract) * scaleFract;\n\n gl_Position = vec4(pos * 2. - 1., 0, 1);\n\n fragBorderRadius = borderSize == 0. ? 2. : 1. - 2. * borderSize / (size + borderSize);\n fragColor = color;\n fragBorderColor = borderColor;\n fragWidth = 1. / gl_PointSize;\n}\n"]),n=t(b)}function _(t){t?k(t):null===t&&L(),w()}function w(t){if("number"==typeof t)return M(t);Array.isArray(t)?t.forEach(function(t,e){if(null!=t)return t.length?M(t,e):M(t)}):p.forEach(function(t,e){t&&M(e)})}function M(e,i){var a;if("number"==typeof e&&(e=p[e]),Array.isArray(e)&&(a=e,e=p[i]),e&&e.count&&e.opacity){var o;if(a){o=Array(e.count);for(var s=0;s1)){var p=f.offset,g=f.count+p,v=fU.ge(l,n[0],p,g-1),m=fU.lt(l,n[2],v,g-1)+1;if(!(m<=v))if(r){var y=x(t.data.subarray(v,m),r);o.push(Us({},e,{elements:y,marker:d[u],offset:0,count:y.length}))}else o.push(Us({},e,{elements:t.elements,marker:d[u],offset:v,count:m-v}))}}function x(t,e){for(var r=[],n=0,a=t.length;ni)){l.snap=!0;var h=l.x=Array(u),f=l.w=Array(u),p=void 0;if(n.length>1){p=Array(2*u);for(var d=0;d=0)return n;if(e instanceof Uint8Array||e instanceof Uint8ClampedArray)r=e;else{r=new Uint8Array(e.length);for(var i=0,a=e.length;i1)for(var r=.25*(t=t.slice()).length%v;r7&&(r.push(p.splice(0,7)),p.unshift("C"));break;case"S":var g=u,v=c;"C"!=e&&"S"!=e||(g+=g-n,v+=v-i),p=["C",g,v,p[1],p[2],p[3],p[4]];break;case"T":"Q"==e||"T"==e?(s=2*u-s,l=2*c-l):(s=u,l=c),p=FU(u,c,s,l,p[1],p[2]);break;case"Q":s=p[1],l=p[2],p=FU(u,c,p[1],p[2],p[3],p[4]);break;case"L":p=RU(u,c,p[1],p[2]);break;case"H":p=RU(u,c,p[1],c);break;case"V":p=RU(u,c,u,p[1]);break;case"Z":p=RU(u,c,a,o)}e=d,u=p[p.length-2],c=p[p.length-1],p.length>4?(n=p[p.length-4],i=p[p.length-3]):(n=u,i=c),r.push(p)}return r};function RU(t,e,r,n){return["C",t,e,r,n,r,n]}function FU(t,e,r,n,i,a){return["C",t/3+2/3*r,e/3+2/3*n,i/3+2/3*r,a/3+2/3*n,i,a]}function BU(t,e,r,n,i,a,o,s,l,u){if(u)x=u[0],b=u[1],m=u[2],y=u[3];else{var c=NU(t,e,-i);t=c.x,e=c.y;var h=(t-(s=(c=NU(s,l,-i)).x))/2,f=(e-(l=c.y))/2,p=h*h/(r*r)+f*f/(n*n);p>1&&(r*=p=Math.sqrt(p),n*=p);var d=r*r,g=n*n,v=(a==o?-1:1)*Math.sqrt(Math.abs((d*g-d*f*f-g*h*h)/(d*f*f+g*h*h)));v==1/0&&(v=1);var m=v*r*f/n+(t+s)/2,y=v*-n*h/r+(e+l)/2,x=Math.asin(((e-y)/n).toFixed(9)),b=Math.asin(((l-y)/n).toFixed(9));x=tb&&(x-=2*IU),!o&&b>x&&(b-=2*IU)}if(Math.abs(b-x)>DU){var _=b,w=s,M=l;b=x+DU*(o&&b>x?1:-1);var A=BU(s=m+r*Math.cos(b),l=y+n*Math.sin(b),r,n,i,0,o,w,M,[b,_,m,y])}var k=Math.tan((b-x)/4),T=4/3*r*k,S=4/3*n*k,E=[2*t-(t+T*Math.sin(x)),2*e-(e-S*Math.cos(x)),s+T*Math.sin(b),l-S*Math.cos(b),s,l];if(u)return E;A&&(E=E.concat(A));for(var C=0;C4))},HU=function(t){var e=[];return t.replace(WU,function(t,r,n){var i=r.toLowerCase();for(n=function(t){var e=t.match(YU);return e?e.map(Number):[]}(n),"m"==i&&n.length>2&&(e.push([r].concat(n.splice(0,2))),i="l",r="m"==r?"l":"L");;){if(n.length==GU[i])return n.unshift(r),e.push(n);if(n.length=o)return t;switch(t){case"%s":return String(i[n++]);case"%d":return Number(i[n++]);case"%j":try{return JSON.stringify(i[n++])}catch(t){return"[Circular]"}default:return t}}),l=i[n];n=3&&(r.depth=arguments[2]),arguments.length>=4&&(r.colors=arguments[3]),f(e)?r.showHidden=e:e&&JU._extend(r,e),v(r.showHidden)&&(r.showHidden=!1),v(r.depth)&&(r.depth=2),v(r.colors)&&(r.colors=!1),v(r.customInspect)&&(r.customInspect=!0),r.colors&&(r.stylize=o),l(r,t,r.depth)}function o(t,e){var r=a.styles[e];return r?"\x1b["+a.colors[r][0]+"m"+t+"\x1b["+a.colors[r][1]+"m":t}function s(t,e){return t}function l(t,e,r){if(t.customInspect&&e&&_(e.inspect)&&e.inspect!==JU.inspect&&(!e.constructor||e.constructor.prototype!==e)){var n=e.inspect(r,t);return g(n)||(n=l(t,n,r)),n}var i=function(t,e){if(v(e))return t.stylize("undefined","undefined");if(g(e)){var r="'"+JSON.stringify(e).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return t.stylize(r,"string")}if(d(e))return t.stylize(""+e,"number");if(f(e))return t.stylize(""+e,"boolean");if(p(e))return t.stylize("null","null")}(t,e);if(i)return i;var a=Object.keys(e),o=function(t){var e={};return t.forEach(function(t,r){e[t]=!0}),e}(a);if(t.showHidden&&(a=Object.getOwnPropertyNames(e)),b(e)&&(a.indexOf("message")>=0||a.indexOf("description")>=0))return u(e);if(0===a.length){if(_(e)){var s=e.name?": "+e.name:"";return t.stylize("[Function"+s+"]","special")}if(m(e))return t.stylize(RegExp.prototype.toString.call(e),"regexp");if(x(e))return t.stylize(Date.prototype.toString.call(e),"date");if(b(e))return u(e)}var y,w="",M=!1,A=["{","}"];(h(e)&&(M=!0,A=["[","]"]),_(e))&&(w=" [Function"+(e.name?": "+e.name:"")+"]");return m(e)&&(w=" "+RegExp.prototype.toString.call(e)),x(e)&&(w=" "+Date.prototype.toUTCString.call(e)),b(e)&&(w=" "+u(e)),0!==a.length||M&&0!=e.length?r<0?m(e)?t.stylize(RegExp.prototype.toString.call(e),"regexp"):t.stylize("[Object]","special"):(t.seen.push(e),y=M?function(t,e,r,n,i){for(var a=[],o=0,s=e.length;o=0&&0,t+e.replace(/\u001b\[\d\d?m/g,"").length+1},0)>60)return r[0]+(""===e?"":e+"\n ")+" "+t.join(",\n ")+" "+r[1];return r[0]+e+" "+t.join(", ")+" "+r[1]}(y,w,A)):A[0]+w+A[1]}function u(t){return"["+Error.prototype.toString.call(t)+"]"}function c(t,e,r,n,i,a){var o,s,u;if((u=Object.getOwnPropertyDescriptor(e,i)||{value:e[i]}).get?s=u.set?t.stylize("[Getter/Setter]","special"):t.stylize("[Getter]","special"):u.set&&(s=t.stylize("[Setter]","special")),k(n,i)||(o="["+i+"]"),s||(t.seen.indexOf(u.value)<0?(s=p(r)?l(t,u.value,null):l(t,u.value,r-1)).indexOf("\n")>-1&&(s=a?s.split("\n").map(function(t){return" "+t}).join("\n").substr(2):"\n"+s.split("\n").map(function(t){return" "+t}).join("\n")):s=t.stylize("[Circular]","special")),v(o)){if(a&&i.match(/^\d+$/))return s;(o=JSON.stringify(""+i)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(o=o.substr(1,o.length-2),o=t.stylize(o,"name")):(o=o.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),o=t.stylize(o,"string"))}return o+": "+s}function h(t){return Array.isArray(t)}function f(t){return"boolean"==typeof t}function p(t){return null===t}function d(t){return"number"==typeof t}function g(t){return"string"==typeof t}function v(t){return void 0===t}function m(t){return y(t)&&"[object RegExp]"===w(t)}function y(t){return"object"==typeof t&&null!==t}function x(t){return y(t)&&"[object Date]"===w(t)}function b(t){return y(t)&&("[object Error]"===w(t)||t instanceof Error)}function _(t){return"function"==typeof t}function w(t){return Object.prototype.toString.call(t)}function M(t){return t<10?"0"+t.toString(10):t.toString(10)}JU.debuglog=function(e){if(v(n)&&(n=t.env.NODE_DEBUG||""),e=e.toUpperCase(),!i[e])if(new RegExp("\\b"+e+"\\b","i").test(n)){var r=t.pid;i[e]=function(){var t=JU.format.apply(JU,arguments);console.error("%s %d: %s",e,r,t)}}else i[e]=function(){};return i[e]},JU.inspect=a,a.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},a.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},JU.isArray=h,JU.isBoolean=f,JU.isNull=p,JU.isNullOrUndefined=function(t){return null==t},JU.isNumber=d,JU.isString=g,JU.isSymbol=function(t){return"symbol"==typeof t},JU.isUndefined=v,JU.isRegExp=m,JU.isObject=y,JU.isDate=x,JU.isError=b,JU.isFunction=_,JU.isPrimitive=function(t){return null===t||"boolean"==typeof t||"number"==typeof t||"string"==typeof t||"symbol"==typeof t||void 0===t},JU.isBuffer=ZU;var A=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function k(t,e){return Object.prototype.hasOwnProperty.call(t,e)}JU.log=function(){var t,e;console.log("%s - %s",(t=new Date,e=[M(t.getHours()),M(t.getMinutes()),M(t.getSeconds())].join(":"),[t.getDate(),A[t.getMonth()],e].join(" ")),JU.format.apply(JU,arguments))},JU.inherits=XU,JU._extend=function(t,e){if(!e||!y(e))return t;for(var r=Object.keys(e),n=r.length;n--;)t[r[n]]=e[r[n]];return t}}).call(this,Pp,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{});var KU={};(function(t){"use strict";function e(t,e){if(t===e)return 0;for(var r=t.length,n=e.length,i=0,a=Math.min(r,n);i=0;l--)if(u[l]!==c[l])return!1;for(l=u.length-1;l>=0;l--)if(s=u[l],!g(t[s],e[s],r,n))return!1;return!0}(t,n,a,l))}return a?t===n:t==n}function v(t){return"[object Arguments]"==Object.prototype.toString.call(t)}function m(t,e){if(!t||!e)return!1;if("[object RegExp]"==Object.prototype.toString.call(e))return e.test(t);try{if(t instanceof e)return!0}catch(t){}return!Error.isPrototypeOf(e)&&!0===e.call({},t)}function y(t,e,r,n){var i;if("function"!=typeof e)throw new TypeError('"block" argument must be a function');"string"==typeof r&&(n=r,r=null),i=function(t){var e;try{t()}catch(t){e=t}return e}(e),n=(r&&r.name?" ("+r.name+").":".")+(n?" "+n:"."),t&&!i&&p(i,r,"Missing expected exception"+n);var a="string"==typeof n,o=!t&&JU.isError(i),s=!t&&i&&!r;if((o&&a&&m(i,r)||s)&&p(i,r,"Got unwanted exception"+n),t&&i&&r&&!m(i,r)||!t&&i)throw i}l.AssertionError=function(t){var e;this.name="AssertionError",this.actual=t.actual,this.expected=t.expected,this.operator=t.operator,t.message?(this.message=t.message,this.generatedMessage=!1):(this.message=h(f((e=this).actual),128)+" "+e.operator+" "+h(f(e.expected),128),this.generatedMessage=!0);var r=t.stackStartFunction||p;if(Error.captureStackTrace)Error.captureStackTrace(this,r);else{var n=new Error;if(n.stack){var i=n.stack,a=c(r),o=i.indexOf("\n"+a);if(o>=0){var s=i.indexOf("\n",o+1);i=i.substring(s+1)}this.stack=i}}},JU.inherits(l.AssertionError,Error),l.fail=p,l.ok=d,l.equal=function(t,e,r){t!=e&&p(t,e,r,"==",l.equal)},l.notEqual=function(t,e,r){t==e&&p(t,e,r,"!=",l.notEqual)},l.deepEqual=function(t,e,r){g(t,e,!1)||p(t,e,r,"deepEqual",l.deepEqual)},l.deepStrictEqual=function(t,e,r){g(t,e,!0)||p(t,e,r,"deepStrictEqual",l.deepStrictEqual)},l.notDeepEqual=function(t,e,r){g(t,e,!1)&&p(t,e,r,"notDeepEqual",l.notDeepEqual)},l.notDeepStrictEqual=function t(e,r,n){g(e,r,!0)&&p(e,r,n,"notDeepStrictEqual",t)},l.strictEqual=function(t,e,r){t!==e&&p(t,e,r,"===",l.strictEqual)},l.notStrictEqual=function(t,e,r){t===e&&p(t,e,r,"!==",l.notStrictEqual)},l.throws=function(t,e,r){y(!0,t,e,r)},l.doesNotThrow=function(t,e,r){y(!1,t,e,r)},l.ifError=function(t){if(t)throw t};var x=Object.keys||function(t){var e=[];for(var r in t)n.call(t,r)&&e.push(r);return e}}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{});var QU={};Object.defineProperty(QU,"__esModule",{value:!0});var $U=function(){return function(t,e){if(Array.isArray(t))return t;if(Symbol.iterator in Object(t))return function(t,e){var r=[],n=!0,i=!1,a=void 0;try{for(var o,s=t[Symbol.iterator]();!(n=(o=s.next()).done)&&(r.push(o.value),!e||r.length!==e);n=!0);}catch(t){i=!0,a=t}finally{try{!n&&s.return&&s.return()}finally{if(i)throw a}}return r}(t,e);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),tq=2*Math.PI,eq=function(t,e,r,n,i,a,o){var s=t.x,l=t.y;return{x:n*(s*=e)-i*(l*=r)+a,y:i*s+n*l+o}},rq=function(t,e){var r=4/3*Math.tan(e/4),n=Math.cos(t),i=Math.sin(t),a=Math.cos(t+e),o=Math.sin(t+e);return[{x:n-i*r,y:i+n*r},{x:a+o*r,y:o-a*r},{x:a,y:o}]},nq=function(t,e,r,n){var i=t*n-e*r<0?-1:1,a=(t*r+e*n)/(Math.sqrt(t*t+e*e)*Math.sqrt(t*t+e*e));return a>1&&(a=1),a<-1&&(a=-1),i*Math.acos(a)};QU.default=function(t){var e=t.px,r=t.py,n=t.cx,i=t.cy,a=t.rx,o=t.ry,s=t.xAxisRotation,l=void 0===s?0:s,u=t.largeArcFlag,c=void 0===u?0:u,h=t.sweepFlag,f=void 0===h?0:h,p=[];if(0===a||0===o)return[];var d=Math.sin(l*tq/360),g=Math.cos(l*tq/360),v=g*(e-n)/2+d*(r-i)/2,m=-d*(e-n)/2+g*(r-i)/2;if(0===v&&0===m)return[];a=Math.abs(a),o=Math.abs(o);var y=Math.pow(v,2)/Math.pow(a,2)+Math.pow(m,2)/Math.pow(o,2);y>1&&(a*=Math.sqrt(y),o*=Math.sqrt(y));var x=function(t,e,r,n,i,a,o,s,l,u,c,h){var f=Math.pow(i,2),p=Math.pow(a,2),d=Math.pow(c,2),g=Math.pow(h,2),v=f*p-f*g-p*d;v<0&&(v=0),v/=f*g+p*d;var m=(v=Math.sqrt(v)*(o===s?-1:1))*i/a*h,y=v*-a/i*c,x=u*m-l*y+(t+r)/2,b=l*m+u*y+(e+n)/2,_=(c-m)/i,w=(h-y)/a,M=(-c-m)/i,A=(-h-y)/a,k=nq(1,0,_,w),T=nq(_,w,M,A);return 0===s&&T>0&&(T-=tq),1===s&&T<0&&(T+=tq),[x,b,k,T]}(e,r,n,i,a,o,c,f,d,g,v,m),b=$U(x,4),_=b[0],w=b[1],M=b[2],A=b[3],k=Math.max(Math.ceil(Math.abs(A)/(tq/4)),1);A/=k;for(var T=0;T4?(n=p[p.length-4],i=p[p.length-3]):(n=u,i=c),r.push(p)}return r};function aq(t,e,r,n){return["C",t,e,r,n,r,n]}function oq(t,e,r,n,i,a){return["C",t/3+2/3*r,e/3+2/3*n,i/3+2/3*r,a/3+2/3*n,i,a]}var sq=function(t){Array.isArray(t)&&1===t.length&&"string"==typeof t[0]&&(t=t[0]);"string"==typeof t&&(KU(qU(t),"String is not an SVG path."),t=HU(t));if(KU(Array.isArray(t),"Argument should be a string or an array of path segments."),t=PU(t),!(t=iq(t)).length)return[0,0,0,0];for(var e=[1/0,1/0,-1/0,-1/0],r=0,n=t.length;re[2]&&(e[2]=i[a+0]),i[a+1]>e[3]&&(e[3]=i[a+1]);return e};var lq={};(function(t){"use strict";var e=document.createElement("canvas"),r=e.getContext("2d");lq=function(n,i){if(!qU(n))throw Error("Argument should be valid svg path string");i||(i={});var a,o;i.shape?(a=i.shape[0],o=i.shape[1]):(a=e.width=i.w||i.width||200,o=e.height=i.h||i.height||200);var s=Math.min(a,o),l=i.stroke||0,u=i.viewbox||i.viewBox||sq(n),c=[a/(u[2]-u[0]),o/(u[3]-u[1])],h=Math.min(c[0]||0,c[1]||0)/2;r.fillStyle="black",r.fillRect(0,0,a,o),r.fillStyle="white",l&&("number"!=typeof l&&(l=1),r.strokeStyle=l>0?"white":"black",r.lineWidth=Math.abs(l));if(r.translate(.5*a,.5*o),r.scale(h,h),t.Path2D){var f=new Path2D(n);r.fill(f),l&&r.stroke(f)}else{var p=HU(n);UU(r,p),r.fill(),l&&r.stroke()}return r.setTransform(1,0,0,1,0,0),EU(r,{cutoff:null!=i.cutoff?i.cutoff:.5,radius:null!=i.radius?i.radius:.5*s})}}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{});var uq={solid:[1],dot:[1,1],dash:[4,1],longdash:[8,1],dashdot:[4,1,1,1],longdashdot:[8,1,1,1]},cq={},hq=m.extendFlat,fq=ye.overrideAll,pq=Zr.line,dq=Zr.marker,gq=dq.line,vq=cq=fq({x:Zr.x,x0:Zr.x0,dx:Zr.dx,y:Zr.y,y0:Zr.y0,dy:Zr.dy,text:hq({},Zr.text,{}),mode:{valType:"flaglist",flags:["lines","markers"],extras:["none"]},line:{color:pq.color,width:pq.width,dash:{valType:"enumerated",values:Object.keys(uq),dflt:"solid"}},marker:hq({},De(),{symbol:dq.symbol,size:dq.size,sizeref:dq.sizeref,sizemin:dq.sizemin,sizemode:dq.sizemode,opacity:dq.opacity,showscale:dq.showscale,colorbar:dq.colorbar,line:hq({},De(),{width:gq.width})}),connectgaps:Zr.connectgaps,fill:Zr.fill,fillcolor:Zr.fillcolor,hoveron:Zr.hoveron,selected:{marker:Zr.selected.marker},unselected:{marker:Zr.unselected.marker},opacity:E.opacity},"calc","nested");vq.x.editType=vq.y.editType=vq.x0.editType=vq.y0.editType="calc+clearAxisTypes";var mq=function(t,e,r,n){function i(r,n){return ne.coerce(t,e,cq,r,n)}var a=!!t.marker&&/-open/.test(t.marker.symbol),o=Tr.isBubble(t),s=Ta(t,e,n,i);if(s){i("text"),i("mode",s1,o=r.error_x&&!0===r.error_x.visible,s=r.error_y&&!0===r.error_y.visible,l=Tr.hasMarkers(r),u=!!r.fill&&"none"!==r.fill),o||s){var A=P.getComponentMethod("errorbars","calcFromTrace")(r,_);o&&(v=C("x",r.error_x,A)),s&&(m=C("y",r.error_y,A))}if(a){(h={}).thickness=r.line.width,h.color=r.line.color,h.opacity=r.opacity,h.overlay=!0;var k=(uq[r.line.dash]||[1]).slice();for(i=0;ic?"rect":l?"rect":"round",T&&r.connectgaps){var S=b[0],E=b[1];for(i=0;i0){e+=Math.abs(i(t[0]));for(var r=1;r2){for(l=0;li.maxh||t>i.maxw||r<=i.maxh&&t<=i.maxw&&(o=i.maxw*i.maxh-t*r)a.free)){if(r===a.h)return this.allocShelf(s,t,r,n);r>a.h||rc)&&(h=2*Math.max(t,c)),(ll)&&(u=2*Math.max(r,l)),this.resize(h,u),this.packOne(t,r,n)):null},t.prototype.allocFreebin=function(t,e,r,n){var i=this.freebins.splice(t,1)[0];return i.id=n,i.w=e,i.h=r,i.refcount=0,this.bins[n]=i,this.ref(i),i},t.prototype.allocShelf=function(t,e,r,n){var i=this.shelves[t].alloc(e,r,n);return this.bins[n]=i,this.ref(i),i},t.prototype.shrink=function(){if(this.shelves.length>0){for(var t=0,e=0,r=0;rthis.free||e>this.h)return null;var n=this.x;return this.x+=t,this.free-=t,new function(t,e,r,n,i,a,o){this.id=t,this.x=e,this.y=r,this.w=n,this.h=i,this.maxw=a||n,this.maxh=o||i,this.refcount=0}(r,n,this.y,t,e,t,this.h)},e.prototype.resize=function(t){return this.free+=t-this.w,this.w=t,!0},t},"object"==typeof r&&void 0!==e?e.exports=i():n.ShelfPack=i()},{}],6:[function(t,e,r){function n(t,e,r,n,i,a){this.fontSize=t||24,this.buffer=void 0===e?3:e,this.cutoff=n||.25,this.fontFamily=i||"sans-serif",this.fontWeight=a||"normal",this.radius=r||8;var o=this.size=this.fontSize+2*this.buffer;this.canvas=document.createElement("canvas"),this.canvas.width=this.canvas.height=o,this.ctx=this.canvas.getContext("2d"),this.ctx.font=this.fontWeight+" "+this.fontSize+"px "+this.fontFamily,this.ctx.textBaseline="middle",this.ctx.fillStyle="black",this.gridOuter=new Float64Array(o*o),this.gridInner=new Float64Array(o*o),this.f=new Float64Array(o),this.d=new Float64Array(o),this.z=new Float64Array(o+1),this.v=new Int16Array(o),this.middle=Math.round(o/2*(navigator.userAgent.indexOf("Gecko/")>=0?1.2:1))}function i(t,e,r,n,i,o,s){for(var l=0;ln)return n;for(;ra?r=i:n=i,i=.5*(n-r)+r}return i},n.prototype.solve=function(t,e){return this.sampleCurveY(this.solveCurveX(t,e))}},{}],8:[function(t,e,r){e.exports.VectorTile=t("./lib/vectortile.js"),e.exports.VectorTileFeature=t("./lib/vectortilefeature.js"),e.exports.VectorTileLayer=t("./lib/vectortilelayer.js")},{"./lib/vectortile.js":9,"./lib/vectortilefeature.js":10,"./lib/vectortilelayer.js":11}],9:[function(t,e,r){function n(t,e,r){if(3===t){var n=new i(r,r.readVarint()+r.pos);n.length&&(e[n.name]=n)}}var i=t("./vectortilelayer");e.exports=function(t,e){this.layers=t.readFields(n,{},e)}},{"./vectortilelayer":11}],10:[function(t,e,r){function n(t,e,r,n,a){this.properties={},this.extent=r,this.type=0,this._pbf=t,this._geometry=-1,this._keys=n,this._values=a,t.readFields(i,this,e)}function i(t,e,r){1==t?e.id=r.readVarint():2==t?function(t,e){for(var r=t.readVarint()+t.pos;t.pos>3}if(i--,1===n||2===n)a+=t.readSVarint(),s+=t.readSVarint(),1===n&&(e&&l.push(e),e=[]),e.push(new o(a,s));else{if(7!==n)throw new Error("unknown command "+n);e&&e.push(e[0].clone())}}return e&&l.push(e),l},n.prototype.bbox=function(){var t=this._pbf;t.pos=this._geometry;for(var e=t.readVarint()+t.pos,r=1,n=0,i=0,a=0,o=1/0,s=-1/0,l=1/0,u=-1/0;t.pos>3}if(n--,1===r||2===r)i+=t.readSVarint(),a+=t.readSVarint(),is&&(s=i),au&&(u=a);else if(7!==r)throw new Error("unknown command "+r)}return[o,l,s,u]},n.prototype.toGeoJSON=function(t,e,r){function i(t){for(var e=0;e>3;e=1===n?t.readString():2===n?t.readFloat():3===n?t.readDouble():4===n?t.readVarint64():5===n?t.readVarint():6===n?t.readSVarint():7===n?t.readBoolean():null}return e}(r))}var a=t("./vectortilefeature.js");e.exports=n,n.prototype.feature=function(t){if(t<0||t>=this._features.length)throw new Error("feature index out of bounds");this._pbf.pos=this._features[t];var e=this._pbf.readVarint()+this._pbf.pos;return new a(this._pbf,e,this.extent,this._keys,this._values)}},{"./vectortilefeature.js":10}],12:[function(t,e,r){var n;n=this,function(t){function e(t,e,n){var i=r(256*t,256*(e=Math.pow(2,n)-e-1),n),a=r(256*(t+1),256*(e+1),n);return i[0]+","+i[1]+","+a[0]+","+a[1]}function r(t,e,r){var n=2*Math.PI*6378137/256/Math.pow(2,r);return[t*n-2*Math.PI*6378137/2,e*n-2*Math.PI*6378137/2]}t.getURL=function(t,r,n,i,a,o){return o=o||{},t+"?"+["bbox="+e(n,i,a),"format="+(o.format||"image/png"),"service="+(o.service||"WMS"),"version="+(o.version||"1.1.1"),"request="+(o.request||"GetMap"),"srs="+(o.srs||"EPSG:3857"),"width="+(o.width||256),"height="+(o.height||256),"layers="+r].join("&")},t.getTileBBox=e,t.getMercCoords=r,Object.defineProperty(t,"__esModule",{value:!0})}("object"==typeof r&&void 0!==e?r:n.WhooTS=n.WhooTS||{})},{}],13:[function(t,e,r){function n(t){return(t=Math.round(t))<0?0:t>255?255:t}function i(t){return n("%"===t[t.length-1]?parseFloat(t)/100*255:parseInt(t))}function a(t){return function(t){return t<0?0:t>1?1:t}("%"===t[t.length-1]?parseFloat(t)/100:parseFloat(t))}function o(t,e,r){return r<0?r+=1:r>1&&(r-=1),6*r<1?t+(e-t)*r*6:2*r<1?e:3*r<2?t+(e-t)*(2/3-r)*6:t}var s={transparent:[0,0,0,0],aliceblue:[240,248,255,1],antiquewhite:[250,235,215,1],aqua:[0,255,255,1],aquamarine:[127,255,212,1],azure:[240,255,255,1],beige:[245,245,220,1],bisque:[255,228,196,1],black:[0,0,0,1],blanchedalmond:[255,235,205,1],blue:[0,0,255,1],blueviolet:[138,43,226,1],brown:[165,42,42,1],burlywood:[222,184,135,1],cadetblue:[95,158,160,1],chartreuse:[127,255,0,1],chocolate:[210,105,30,1],coral:[255,127,80,1],cornflowerblue:[100,149,237,1],cornsilk:[255,248,220,1],crimson:[220,20,60,1],cyan:[0,255,255,1],darkblue:[0,0,139,1],darkcyan:[0,139,139,1],darkgoldenrod:[184,134,11,1],darkgray:[169,169,169,1],darkgreen:[0,100,0,1],darkgrey:[169,169,169,1],darkkhaki:[189,183,107,1],darkmagenta:[139,0,139,1],darkolivegreen:[85,107,47,1],darkorange:[255,140,0,1],darkorchid:[153,50,204,1],darkred:[139,0,0,1],darksalmon:[233,150,122,1],darkseagreen:[143,188,143,1],darkslateblue:[72,61,139,1],darkslategray:[47,79,79,1],darkslategrey:[47,79,79,1],darkturquoise:[0,206,209,1],darkviolet:[148,0,211,1],deeppink:[255,20,147,1],deepskyblue:[0,191,255,1],dimgray:[105,105,105,1],dimgrey:[105,105,105,1],dodgerblue:[30,144,255,1],firebrick:[178,34,34,1],floralwhite:[255,250,240,1],forestgreen:[34,139,34,1],fuchsia:[255,0,255,1],gainsboro:[220,220,220,1],ghostwhite:[248,248,255,1],gold:[255,215,0,1],goldenrod:[218,165,32,1],gray:[128,128,128,1],green:[0,128,0,1],greenyellow:[173,255,47,1],grey:[128,128,128,1],honeydew:[240,255,240,1],hotpink:[255,105,180,1],indianred:[205,92,92,1],indigo:[75,0,130,1],ivory:[255,255,240,1],khaki:[240,230,140,1],lavender:[230,230,250,1],lavenderblush:[255,240,245,1],lawngreen:[124,252,0,1],lemonchiffon:[255,250,205,1],lightblue:[173,216,230,1],lightcoral:[240,128,128,1],lightcyan:[224,255,255,1],lightgoldenrodyellow:[250,250,210,1],lightgray:[211,211,211,1],lightgreen:[144,238,144,1],lightgrey:[211,211,211,1],lightpink:[255,182,193,1],lightsalmon:[255,160,122,1],lightseagreen:[32,178,170,1],lightskyblue:[135,206,250,1],lightslategray:[119,136,153,1],lightslategrey:[119,136,153,1],lightsteelblue:[176,196,222,1],lightyellow:[255,255,224,1],lime:[0,255,0,1],limegreen:[50,205,50,1],linen:[250,240,230,1],magenta:[255,0,255,1],maroon:[128,0,0,1],mediumaquamarine:[102,205,170,1],mediumblue:[0,0,205,1],mediumorchid:[186,85,211,1],mediumpurple:[147,112,219,1],mediumseagreen:[60,179,113,1],mediumslateblue:[123,104,238,1],mediumspringgreen:[0,250,154,1],mediumturquoise:[72,209,204,1],mediumvioletred:[199,21,133,1],midnightblue:[25,25,112,1],mintcream:[245,255,250,1],mistyrose:[255,228,225,1],moccasin:[255,228,181,1],navajowhite:[255,222,173,1],navy:[0,0,128,1],oldlace:[253,245,230,1],olive:[128,128,0,1],olivedrab:[107,142,35,1],orange:[255,165,0,1],orangered:[255,69,0,1],orchid:[218,112,214,1],palegoldenrod:[238,232,170,1],palegreen:[152,251,152,1],paleturquoise:[175,238,238,1],palevioletred:[219,112,147,1],papayawhip:[255,239,213,1],peachpuff:[255,218,185,1],peru:[205,133,63,1],pink:[255,192,203,1],plum:[221,160,221,1],powderblue:[176,224,230,1],purple:[128,0,128,1],rebeccapurple:[102,51,153,1],red:[255,0,0,1],rosybrown:[188,143,143,1],royalblue:[65,105,225,1],saddlebrown:[139,69,19,1],salmon:[250,128,114,1],sandybrown:[244,164,96,1],seagreen:[46,139,87,1],seashell:[255,245,238,1],sienna:[160,82,45,1],silver:[192,192,192,1],skyblue:[135,206,235,1],slateblue:[106,90,205,1],slategray:[112,128,144,1],slategrey:[112,128,144,1],snow:[255,250,250,1],springgreen:[0,255,127,1],steelblue:[70,130,180,1],tan:[210,180,140,1],teal:[0,128,128,1],thistle:[216,191,216,1],tomato:[255,99,71,1],turquoise:[64,224,208,1],violet:[238,130,238,1],wheat:[245,222,179,1],white:[255,255,255,1],whitesmoke:[245,245,245,1],yellow:[255,255,0,1],yellowgreen:[154,205,50,1]};try{r.parseCSSColor=function(t){var e,r=t.replace(/ /g,"").toLowerCase();if(r in s)return s[r].slice();if("#"===r[0])return 4===r.length?(e=parseInt(r.substr(1),16))>=0&&e<=4095?[(3840&e)>>4|(3840&e)>>8,240&e|(240&e)>>4,15&e|(15&e)<<4,1]:null:7===r.length&&(e=parseInt(r.substr(1),16))>=0&&e<=16777215?[(16711680&e)>>16,(65280&e)>>8,255&e,1]:null;var l=r.indexOf("("),u=r.indexOf(")");if(-1!==l&&u+1===r.length){var c=r.substr(0,l),h=r.substr(l+1,u-(l+1)).split(","),f=1;switch(c){case"rgba":if(4!==h.length)return null;f=a(h.pop());case"rgb":return 3!==h.length?null:[i(h[0]),i(h[1]),i(h[2]),f];case"hsla":if(4!==h.length)return null;f=a(h.pop());case"hsl":if(3!==h.length)return null;var p=(parseFloat(h[0])%360+360)%360/360,d=a(h[1]),g=a(h[2]),v=g<=.5?g*(d+1):g+d-g*d,m=2*g-v;return[n(255*o(m,v,p+1/3)),n(255*o(m,v,p)),n(255*o(m,v,p-1/3)),f];default:return null}}return null}}catch(t){}},{}],14:[function(t,e,r){function n(t,e,r){r=r||2;var n,s,l,u,c,p,g,v=e&&e.length,m=v?e[0]*r:t.length,y=i(t,0,m,r,!0),x=[];if(!y)return x;if(v&&(y=function(t,e,r,n){var o,s,l,u,c,p=[];for(o=0,s=e.length;o80*r){n=l=t[0],s=u=t[1];for(var b=r;bl&&(l=c),p>u&&(u=p);g=0!==(g=Math.max(l-n,u-s))?1/g:0}return o(y,x,r,n,s,g),x}function i(t,e,r,n,i){var a,o;if(i===k(t,e,r,n)>0)for(a=e;a=e;a-=n)o=w(a,t[a],t[a+1],o);return o&&y(o,o.next)&&(M(o),o=o.next),o}function a(t,e){if(!t)return t;e||(e=t);var r,n=t;do{if(r=!1,n.steiner||!y(n,n.next)&&0!==m(n.prev,n,n.next))n=n.next;else{if(M(n),(n=e=n.prev)===n.next)break;r=!0}}while(r||n!==e);return e}function o(t,e,r,n,i,h,f){if(t){!f&&h&&function(t,e,r,n){var i=t;do{null===i.z&&(i.z=p(i.x,i.y,e,r,n)),i.prevZ=i.prev,i.nextZ=i.next,i=i.next}while(i!==t);i.prevZ.nextZ=null,i.prevZ=null,function(t){var e,r,n,i,a,o,s,l,u=1;do{for(r=t,t=null,a=null,o=0;r;){for(o++,n=r,s=0,e=0;e0||l>0&&n;)0!==s&&(0===l||!n||r.z<=n.z)?(i=r,r=r.nextZ,s--):(i=n,n=n.nextZ,l--),a?a.nextZ=i:t=i,i.prevZ=a,a=i;r=n}a.nextZ=null,u*=2}while(o>1)}(i)}(t,n,i,h);for(var d,g,v=t;t.prev!==t.next;)if(d=t.prev,g=t.next,h?l(t,n,i,h):s(t))e.push(d.i/r),e.push(t.i/r),e.push(g.i/r),M(t),t=g.next,v=g.next;else if((t=g)===v){f?1===f?o(t=u(t,e,r),e,r,n,i,h,2):2===f&&c(t,e,r,n,i,h):o(a(t),e,r,n,i,h,1);break}}}function s(t){var e=t.prev,r=t,n=t.next;if(m(e,r,n)>=0)return!1;for(var i=t.next.next;i!==t.prev;){if(g(e.x,e.y,r.x,r.y,n.x,n.y,i.x,i.y)&&m(i.prev,i,i.next)>=0)return!1;i=i.next}return!0}function l(t,e,r,n){var i=t.prev,a=t,o=t.next;if(m(i,a,o)>=0)return!1;for(var s=i.xa.x?i.x>o.x?i.x:o.x:a.x>o.x?a.x:o.x,c=i.y>a.y?i.y>o.y?i.y:o.y:a.y>o.y?a.y:o.y,h=p(s,l,e,r,n),f=p(u,c,e,r,n),d=t.prevZ,v=t.nextZ;d&&d.z>=h&&v&&v.z<=f;){if(d!==t.prev&&d!==t.next&&g(i.x,i.y,a.x,a.y,o.x,o.y,d.x,d.y)&&m(d.prev,d,d.next)>=0)return!1;if(d=d.prevZ,v!==t.prev&&v!==t.next&&g(i.x,i.y,a.x,a.y,o.x,o.y,v.x,v.y)&&m(v.prev,v,v.next)>=0)return!1;v=v.nextZ}for(;d&&d.z>=h;){if(d!==t.prev&&d!==t.next&&g(i.x,i.y,a.x,a.y,o.x,o.y,d.x,d.y)&&m(d.prev,d,d.next)>=0)return!1;d=d.prevZ}for(;v&&v.z<=f;){if(v!==t.prev&&v!==t.next&&g(i.x,i.y,a.x,a.y,o.x,o.y,v.x,v.y)&&m(v.prev,v,v.next)>=0)return!1;v=v.nextZ}return!0}function u(t,e,r){var n=t;do{var i=n.prev,a=n.next.next;!y(i,a)&&x(i,n,n.next,a)&&b(i,a)&&b(a,i)&&(e.push(i.i/r),e.push(n.i/r),e.push(a.i/r),M(n),M(n.next),n=t=a),n=n.next}while(n!==t);return n}function c(t,e,r,n,i,s){var l=t;do{for(var u=l.next.next;u!==l.prev;){if(l.i!==u.i&&v(l,u)){var c=_(l,u);return l=a(l,l.next),c=a(c,c.next),o(l,e,r,n,i,s),void o(c,e,r,n,i,s)}u=u.next}l=l.next}while(l!==t)}function h(t,e){return t.x-e.x}function f(t,e){if(e=function(t,e){var r,n=e,i=t.x,a=t.y,o=-1/0;do{if(a<=n.y&&a>=n.next.y&&n.next.y!==n.y){var s=n.x+(a-n.y)*(n.next.x-n.x)/(n.next.y-n.y);if(s<=i&&s>o){if(o=s,s===i){if(a===n.y)return n;if(a===n.next.y)return n.next}r=n.x=n.x&&n.x>=c&&i!==n.x&&g(ar.x)&&b(n,t)&&(r=n,f=l),n=n.next;return r}(t,e)){var r=_(e,t);a(r,r.next)}}function p(t,e,r,n,i){return(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=32767*(t-r)*i)|t<<8))|t<<4))|t<<2))|t<<1))|(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=32767*(e-n)*i)|e<<8))|e<<4))|e<<2))|e<<1))<<1}function d(t){var e=t,r=t;do{e.x=0&&(t-o)*(n-s)-(r-o)*(e-s)>=0&&(r-o)*(a-s)-(i-o)*(n-s)>=0}function v(t,e){return t.next.i!==e.i&&t.prev.i!==e.i&&!function(t,e){var r=t;do{if(r.i!==t.i&&r.next.i!==t.i&&r.i!==e.i&&r.next.i!==e.i&&x(r,r.next,t,e))return!0;r=r.next}while(r!==t);return!1}(t,e)&&b(t,e)&&b(e,t)&&function(t,e){var r=t,n=!1,i=(t.x+e.x)/2,a=(t.y+e.y)/2;do{r.y>a!=r.next.y>a&&r.next.y!==r.y&&i<(r.next.x-r.x)*(a-r.y)/(r.next.y-r.y)+r.x&&(n=!n),r=r.next}while(r!==t);return n}(t,e)}function m(t,e,r){return(e.y-t.y)*(r.x-e.x)-(e.x-t.x)*(r.y-e.y)}function y(t,e){return t.x===e.x&&t.y===e.y}function x(t,e,r,n){return!!(y(t,e)&&y(r,n)||y(t,n)&&y(r,e))||m(t,e,r)>0!=m(t,e,n)>0&&m(r,n,t)>0!=m(r,n,e)>0}function b(t,e){return m(t.prev,t,t.next)<0?m(t,e,t.next)>=0&&m(t,t.prev,e)>=0:m(t,e,t.prev)<0||m(t,t.next,e)<0}function _(t,e){var r=new A(t.i,t.x,t.y),n=new A(e.i,e.x,e.y),i=t.next,a=e.prev;return t.next=e,e.prev=t,r.next=i,i.prev=r,n.next=r,r.prev=n,a.next=n,n.prev=a,n}function w(t,e,r,n){var i=new A(t,e,r);return n?(i.next=n.next,i.prev=n,n.next.prev=i,n.next=i):(i.prev=i,i.next=i),i}function M(t){t.next.prev=t.prev,t.prev.next=t.next,t.prevZ&&(t.prevZ.nextZ=t.nextZ),t.nextZ&&(t.nextZ.prevZ=t.prevZ)}function A(t,e,r){this.i=t,this.x=e,this.y=r,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1}function k(t,e,r,n){for(var i=0,a=e,o=r-n;a0&&(n+=t[i-1].length,r.holes.push(n))}return r}},{}],15:[function(t,e,r){function n(t,e){return function(r){return t(r,e)}}function i(t,e){e=!!e,t[0]=a(t[0],e);for(var r=1;r=0}(t)===e?t:t.reverse()}var o=t("@mapbox/geojson-area");e.exports=function t(e,r){switch(e&&e.type||null){case"FeatureCollection":return e.features=e.features.map(n(t,r)),e;case"Feature":return e.geometry=t(e.geometry,r),e;case"Polygon":case"MultiPolygon":return function(t,e){return"Polygon"===t.type?t.coordinates=i(t.coordinates,e):"MultiPolygon"===t.type&&(t.coordinates=t.coordinates.map(n(i,e))),t}(e,r);default:return e}}},{"@mapbox/geojson-area":1}],16:[function(t,e,r){function n(t,e,r,n,i){for(var a=0;a=r&&o<=n&&(e.push(t[a]),e.push(t[a+1]),e.push(t[a+2]))}}function i(t,e,r,n,i,a){for(var u=[],c=0===i?s:l,h=0;h=r&&c(u,f,p,g,v,r):m>n?y<=n&&c(u,f,p,g,v,n):o(u,f,p,d),y=r&&(c(u,f,p,g,v,r),x=!0),y>n&&m<=n&&(c(u,f,p,g,v,n),x=!0),!a&&x&&(u.size=t.size,e.push(u),u=[])}var b=t.length-3;f=t[b],p=t[b+1],d=t[b+2],(m=0===i?f:p)>=r&&m<=n&&o(u,f,p,d),b=u.length-3,a&&b>=3&&(u[b]!==u[0]||u[b+1]!==u[1])&&o(u,u[0],u[1],u[2]),u.length&&(u.size=t.size,e.push(u))}function a(t,e,r,n,a,o){for(var s=0;s=(r/=e)&&c<=o)return t;if(l>o||c=r&&m<=o)h.push(p);else if(!(v>o||m0&&(o+=n?(i*f-h*a)/2:Math.sqrt(Math.pow(h-i,2)+Math.pow(f-a,2))),i=h,a=f}var p=e.length-3;e[2]=1,u(e,0,p,r),e[p+2]=1,e.size=Math.abs(o)}function o(t,e,r,n){for(var i=0;i1?1:r}e.exports=function(t,e){var r=[];if("FeatureCollection"===t.type)for(var i=0;i24)throw new Error("maxZoom should be in the 0-24 range");var n=1<1&&console.time("creation"),g=this.tiles[d]=u(t,p,r,n,v,e===h.maxZoom),this.tileCoords.push({z:e,x:r,y:n}),f)){f>1&&(console.log("tile z%d-%d-%d (features: %d, points: %d, simplified: %d)",e,r,n,g.numFeatures,g.numPoints,g.numSimplified),console.timeEnd("creation"));var m="z"+e;this.stats[m]=(this.stats[m]||0)+1,this.total++}if(g.source=t,a){if(e===h.maxZoom||e===a)continue;var y=1<1&&console.time("clipping");var x,b,_,w,M,A,k=.5*h.buffer/h.extent,T=.5-k,S=.5+k,E=1+k;x=b=_=w=null,M=s(t,p,r-k,r+S,0,g.minX,g.maxX),A=s(t,p,r+T,r+E,0,g.minX,g.maxX),t=null,M&&(x=s(M,p,n-k,n+S,1,g.minY,g.maxY),b=s(M,p,n+T,n+E,1,g.minY,g.maxY),M=null),A&&(_=s(A,p,n-k,n+S,1,g.minY,g.maxY),w=s(A,p,n+T,n+E,1,g.minY,g.maxY),A=null),f>1&&console.timeEnd("clipping"),c.push(x||[],e+1,2*r,2*n),c.push(b||[],e+1,2*r,2*n+1),c.push(_||[],e+1,2*r+1,2*n),c.push(w||[],e+1,2*r+1,2*n+1)}}},n.prototype.getTile=function(t,e,r){var n=this.options,a=n.extent,s=n.debug;if(t<0||t>24)return null;var l=1<1&&console.log("drilling down to z%d-%d-%d",t,e,r);for(var c,h=t,f=e,p=r;!c&&h>0;)h--,f=Math.floor(f/2),p=Math.floor(p/2),c=this.tiles[i(h,f,p)];return c&&c.source?(s>1&&console.log("found parent tile z%d-%d-%d",h,f,p),s>1&&console.time("drilling down"),this.splitTile(c.source,h,f,p,t,e,r),s>1&&console.timeEnd("drilling down"),this.tiles[u]?o.tile(this.tiles[u],a):null):null}},{"./clip":16,"./convert":17,"./tile":21,"./transform":22,"./wrap":23}],20:[function(t,e,r){function n(t,e,r,n,i,a){var o=i-r,s=a-n;if(0!==o||0!==s){var l=((t-r)*o+(e-n)*s)/(o*o+s*s);l>1?(r=i,n=a):l>0&&(r+=o*l,n+=s*l)}return(o=t-r)*o+(s=e-n)*s}e.exports=function t(e,r,i,a){for(var o,s=a,l=e[r],u=e[r+1],c=e[i],h=e[i+1],f=r+3;fs&&(o=f,s=p)}s>a&&(o-r>3&&t(e,r,o,a),e[o+2]=s,i-o>3&&t(e,o,i,a))}},{}],21:[function(t,e,r){function n(t,e,r,n){var a=e.geometry,o=e.type,s=[];if("Point"===o||"MultiPoint"===o)for(var l=0;ls)&&(r.numSimplified++,l.push(e[u]),l.push(e[u+1])),r.numPoints++;a&&function(t,e){for(var r=0,n=0,i=t.length,a=i-2;n0===e)for(n=0,i=t.length;ns.maxX&&(s.maxX=h),f>s.maxY&&(s.maxY=f)}return s}},{}],22:[function(t,e,r){function n(t,e,r,n,i,a){return[Math.round(r*(t*n-i)),Math.round(r*(e*n-a))]}r.tile=function(t,e){if(t.transformed)return t;var r,i,a,o=t.z2,s=t.x,l=t.y;for(r=0;r=u[f+0]&&n>=u[f+1]?(o[h]=!0,a.push(l[h])):o[h]=!1}}},n.prototype._forEachCell=function(t,e,r,n,i,a,o){for(var s=this._convertToCellCoord(t),l=this._convertToCellCoord(e),u=this._convertToCellCoord(r),c=this._convertToCellCoord(n),h=s;h<=u;h++)for(var f=l;f<=c;f++){var p=this.d*f+h;if(i.call(this,t,e,r,n,p,a,o))return}},n.prototype._convertToCellCoord=function(t){return Math.max(0,Math.min(this.d-1,Math.floor(t*this.scale)+this.padding))},n.prototype.toArrayBuffer=function(){if(this.arrayBuffer)return this.arrayBuffer;for(var t=this.cells,e=i+this.cells.length+1+1,r=0,n=0;n>1,c=-7,h=r?i-1:0,f=r?-1:1,p=t[e+h];for(h+=f,a=p&(1<<-c)-1,p>>=-c,c+=s;c>0;a=256*a+t[e+h],h+=f,c-=8);for(o=a&(1<<-c)-1,a>>=-c,c+=n;c>0;o=256*o+t[e+h],h+=f,c-=8);if(0===a)a=1-u;else{if(a===l)return o?NaN:1/0*(p?-1:1);o+=Math.pow(2,n),a-=u}return(p?-1:1)*o*Math.pow(2,a-n)},r.write=function(t,e,r,n,i,a){var o,s,l,u=8*a-i-1,c=(1<>1,f=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,p=n?0:a-1,d=n?1:-1,g=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(s=isNaN(e)?1:0,o=c):(o=Math.floor(Math.log(e)/Math.LN2),e*(l=Math.pow(2,-o))<1&&(o--,l*=2),(e+=o+h>=1?f/l:f*Math.pow(2,1-h))*l>=2&&(o++,l/=2),o+h>=c?(s=0,o=c):o+h>=1?(s=(e*l-1)*Math.pow(2,i),o+=h):(s=e*Math.pow(2,h-1)*Math.pow(2,i),o=0));i>=8;t[r+p]=255&s,p+=d,s/=256,i-=8);for(o=o<0;t[r+p]=255&o,p+=d,o/=256,u-=8);t[r+p-d]|=128*g}},{}],26:[function(t,e,r){function n(t,e,r,n,s){e=e||i,r=r||a,s=s||Array,this.nodeSize=n||64,this.points=t,this.ids=new s(t.length),this.coords=new s(2*t.length);for(var l=0;l=r&&s<=i&&l>=n&&l<=a&&c.push(t[d]);else{var g=Math.floor((p+f)/2);s=e[2*g],l=e[2*g+1],s>=r&&s<=i&&l>=n&&l<=a&&c.push(t[g]);var v=(h+1)%2;(0===h?r<=s:n<=l)&&(u.push(p),u.push(g-1),u.push(v)),(0===h?i>=s:a>=l)&&(u.push(g+1),u.push(f),u.push(v))}}return c}},{}],28:[function(t,e,r){function n(t,e,r,n){i(t,r,n),i(e,2*r,2*n),i(e,2*r+1,2*n+1)}function i(t,e,r){var n=t[e];t[e]=t[r],t[r]=n}e.exports=function t(e,r,i,a,o,s){if(!(o-a<=i)){var l=Math.floor((a+o)/2);(function t(e,r,i,a,o,s){for(;o>a;){if(o-a>600){var l=o-a+1,u=i-a+1,c=Math.log(l),h=.5*Math.exp(2*c/3),f=.5*Math.sqrt(c*h*(l-h)/l)*(u-l/2<0?-1:1);t(e,r,i,Math.max(a,Math.floor(i-u*h/l+f)),Math.min(o,Math.floor(i+(l-u)*h/l+f)),s)}var p=r[2*i+s],d=a,g=o;for(n(e,r,a,i),r[2*o+s]>p&&n(e,r,a,o);dp;)g--}r[2*a+s]===p?n(e,r,a,g):n(e,r,++g,o),g<=i&&(a=g+1),i<=g&&(o=g-1)}})(e,r,l,a,o,s%2),t(e,r,i,a,l-1,s+1),t(e,r,i,l+1,o,s+1)}}},{}],29:[function(t,e,r){function n(t,e,r,n){var i=t-r,a=e-n;return i*i+a*a}e.exports=function(t,e,r,i,a,o){for(var s=[0,t.length-1,0],l=[],u=a*a;s.length;){var c=s.pop(),h=s.pop(),f=s.pop();if(h-f<=o)for(var p=f;p<=h;p++)n(e[2*p],e[2*p+1],r,i)<=u&&l.push(t[p]);else{var d=Math.floor((f+h)/2),g=e[2*d],v=e[2*d+1];n(g,v,r,i)<=u&&l.push(t[d]);var m=(c+1)%2;(0===c?r-a<=g:i-a<=v)&&(s.push(f),s.push(d-1),s.push(m)),(0===c?r+a>=g:i+a>=v)&&(s.push(d+1),s.push(h),s.push(m))}}return l}},{}],30:[function(t,e,r){function n(t){this.buf=ArrayBuffer.isView&&ArrayBuffer.isView(t)?t:new Uint8Array(t||0),this.pos=0,this.type=0,this.length=this.buf.length}function i(t){return t.type===n.Bytes?t.readVarint()+t.pos:t.pos+1}function a(t,e,r){return r?4294967296*e+(t>>>0):4294967296*(e>>>0)+(t>>>0)}function o(t,e,r){var n=e<=16383?1:e<=2097151?2:e<=268435455?3:Math.ceil(Math.log(e)/(7*Math.LN2));r.realloc(n);for(var i=r.pos-1;i>=t;i--)r.buf[i+n]=r.buf[i]}function s(t,e){for(var r=0;r>>8,t[r+2]=e>>>16,t[r+3]=e>>>24}function y(t,e){return(t[e]|t[e+1]<<8|t[e+2]<<16)+(t[e+3]<<24)}e.exports=n;var x=t("ieee754");n.Varint=0,n.Fixed64=1,n.Bytes=2,n.Fixed32=5;n.prototype={destroy:function(){this.buf=null},readFields:function(t,e,r){for(r=r||this.length;this.pos>3,a=this.pos;this.type=7&n,t(i,e,this),this.pos===a&&this.skip(n)}return e},readMessage:function(t,e){return this.readFields(t,e,this.readVarint()+this.pos)},readFixed32:function(){var t=v(this.buf,this.pos);return this.pos+=4,t},readSFixed32:function(){var t=y(this.buf,this.pos);return this.pos+=4,t},readFixed64:function(){var t=v(this.buf,this.pos)+4294967296*v(this.buf,this.pos+4);return this.pos+=8,t},readSFixed64:function(){var t=v(this.buf,this.pos)+4294967296*y(this.buf,this.pos+4);return this.pos+=8,t},readFloat:function(){var t=x.read(this.buf,this.pos,!0,23,4);return this.pos+=4,t},readDouble:function(){var t=x.read(this.buf,this.pos,!0,52,8);return this.pos+=8,t},readVarint:function(t){var e,r,n=this.buf;return e=127&(r=n[this.pos++]),r<128?e:(e|=(127&(r=n[this.pos++]))<<7,r<128?e:(e|=(127&(r=n[this.pos++]))<<14,r<128?e:(e|=(127&(r=n[this.pos++]))<<21,r<128?e:function(t,e,r){var n,i,o=r.buf;if(n=(112&(i=o[r.pos++]))>>4,i<128)return a(t,n,e);if(n|=(127&(i=o[r.pos++]))<<3,i<128)return a(t,n,e);if(n|=(127&(i=o[r.pos++]))<<10,i<128)return a(t,n,e);if(n|=(127&(i=o[r.pos++]))<<17,i<128)return a(t,n,e);if(n|=(127&(i=o[r.pos++]))<<24,i<128)return a(t,n,e);if(n|=(1&(i=o[r.pos++]))<<31,i<128)return a(t,n,e);throw new Error("Expected varint not more than 10 bytes")}(e|=(15&(r=n[this.pos]))<<28,t,this))))},readVarint64:function(){return this.readVarint(!0)},readSVarint:function(){var t=this.readVarint();return t%2==1?(t+1)/-2:t/2},readBoolean:function(){return Boolean(this.readVarint())},readString:function(){var t=this.readVarint()+this.pos,e=function(t,e,r){for(var n="",i=e;i239?4:l>223?3:l>191?2:1;if(i+c>r)break;1===c?l<128&&(u=l):2===c?128==(192&(a=t[i+1]))&&(u=(31&l)<<6|63&a)<=127&&(u=null):3===c?(a=t[i+1],o=t[i+2],128==(192&a)&&128==(192&o)&&((u=(15&l)<<12|(63&a)<<6|63&o)<=2047||u>=55296&&u<=57343)&&(u=null)):4===c&&(a=t[i+1],o=t[i+2],s=t[i+3],128==(192&a)&&128==(192&o)&&128==(192&s)&&((u=(15&l)<<18|(63&a)<<12|(63&o)<<6|63&s)<=65535||u>=1114112)&&(u=null)),null===u?(u=65533,c=1):u>65535&&(u-=65536,n+=String.fromCharCode(u>>>10&1023|55296),u=56320|1023&u),n+=String.fromCharCode(u),i+=c}return n}(this.buf,this.pos,t);return this.pos=t,e},readBytes:function(){var t=this.readVarint()+this.pos,e=this.buf.subarray(this.pos,t);return this.pos=t,e},readPackedVarint:function(t,e){var r=i(this);for(t=t||[];this.pos127;);else if(e===n.Bytes)this.pos=this.readVarint()+this.pos;else if(e===n.Fixed32)this.pos+=4;else{if(e!==n.Fixed64)throw new Error("Unimplemented type: "+e);this.pos+=8}},writeTag:function(t,e){this.writeVarint(t<<3|e)},realloc:function(t){for(var e=this.length||16;e268435455||t<0?function(t,e){var r,n;if(t>=0?(r=t%4294967296|0,n=t/4294967296|0):(n=~(-t/4294967296),4294967295^(r=~(-t%4294967296))?r=r+1|0:(r=0,n=n+1|0)),t>=0x10000000000000000||t<-0x10000000000000000)throw new Error("Given varint doesn't fit into 10 bytes");e.realloc(10),function(t,e,r){r.buf[r.pos++]=127&t|128,t>>>=7,r.buf[r.pos++]=127&t|128,t>>>=7,r.buf[r.pos++]=127&t|128,t>>>=7,r.buf[r.pos++]=127&t|128,t>>>=7,r.buf[r.pos]=127&t}(r,0,e),function(t,e){var r=(7&t)<<4;e.buf[e.pos++]|=r|((t>>>=3)?128:0),t&&(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),t&&(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),t&&(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),t&&(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),t&&(e.buf[e.pos++]=127&t)))))}(n,e)}(t,this):(this.realloc(4),this.buf[this.pos++]=127&t|(t>127?128:0),t<=127||(this.buf[this.pos++]=127&(t>>>=7)|(t>127?128:0),t<=127||(this.buf[this.pos++]=127&(t>>>=7)|(t>127?128:0),t<=127||(this.buf[this.pos++]=t>>>7&127))))},writeSVarint:function(t){this.writeVarint(t<0?2*-t-1:2*t)},writeBoolean:function(t){this.writeVarint(Boolean(t))},writeString:function(t){t=String(t),this.realloc(4*t.length),this.pos++;var e=this.pos;this.pos=function(t,e,r){for(var n,i,a=0;a55295&&n<57344){if(!i){n>56319||a+1===e.length?(t[r++]=239,t[r++]=191,t[r++]=189):i=n;continue}if(n<56320){t[r++]=239,t[r++]=191,t[r++]=189,i=n;continue}n=i-55296<<10|n-56320|65536,i=null}else i&&(t[r++]=239,t[r++]=191,t[r++]=189,i=null);n<128?t[r++]=n:(n<2048?t[r++]=n>>6|192:(n<65536?t[r++]=n>>12|224:(t[r++]=n>>18|240,t[r++]=n>>12&63|128),t[r++]=n>>6&63|128),t[r++]=63&n|128)}return r}(this.buf,t,this.pos);var r=this.pos-e;r>=128&&o(e,r,this),this.pos=e-1,this.writeVarint(r),this.pos+=r},writeFloat:function(t){this.realloc(4),x.write(this.buf,t,this.pos,!0,23,4),this.pos+=4},writeDouble:function(t){this.realloc(8),x.write(this.buf,t,this.pos,!0,52,8),this.pos+=8},writeBytes:function(t){var e=t.length;this.writeVarint(e),this.realloc(e);for(var r=0;r=128&&o(r,n,this),this.pos=r-1,this.writeVarint(n),this.pos+=n},writeMessage:function(t,e,r){this.writeTag(t,n.Bytes),this.writeRawMessage(e,r)},writePackedVarint:function(t,e){this.writeMessage(t,s,e)},writePackedSVarint:function(t,e){this.writeMessage(t,l,e)},writePackedBoolean:function(t,e){this.writeMessage(t,h,e)},writePackedFloat:function(t,e){this.writeMessage(t,u,e)},writePackedDouble:function(t,e){this.writeMessage(t,c,e)},writePackedFixed32:function(t,e){this.writeMessage(t,f,e)},writePackedSFixed32:function(t,e){this.writeMessage(t,p,e)},writePackedFixed64:function(t,e){this.writeMessage(t,d,e)},writePackedSFixed64:function(t,e){this.writeMessage(t,g,e)},writeBytesField:function(t,e){this.writeTag(t,n.Bytes),this.writeBytes(e)},writeFixed32Field:function(t,e){this.writeTag(t,n.Fixed32),this.writeFixed32(e)},writeSFixed32Field:function(t,e){this.writeTag(t,n.Fixed32),this.writeSFixed32(e)},writeFixed64Field:function(t,e){this.writeTag(t,n.Fixed64),this.writeFixed64(e)},writeSFixed64Field:function(t,e){this.writeTag(t,n.Fixed64),this.writeSFixed64(e)},writeVarintField:function(t,e){this.writeTag(t,n.Varint),this.writeVarint(e)},writeSVarintField:function(t,e){this.writeTag(t,n.Varint),this.writeSVarint(e)},writeStringField:function(t,e){this.writeTag(t,n.Bytes),this.writeString(e)},writeFloatField:function(t,e){this.writeTag(t,n.Fixed32),this.writeFloat(e)},writeDoubleField:function(t,e){this.writeTag(t,n.Fixed64),this.writeDouble(e)},writeBooleanField:function(t,e){this.writeVarintField(t,Boolean(e))}}},{ieee754:25}],31:[function(t,e,r){function n(t,e,r){var n=t[e];t[e]=t[r],t[r]=n}function i(t,e){return te?1:0}e.exports=function t(e,r,a,o,s){for(a=a||0,o=o||e.length-1,s=s||i;o>a;){if(o-a>600){var l=o-a+1,u=r-a+1,c=Math.log(l),h=.5*Math.exp(2*c/3),f=.5*Math.sqrt(c*h*(l-h)/l)*(u-l/2<0?-1:1);t(e,r,Math.max(a,Math.floor(r-u*h/l+f)),Math.min(o,Math.floor(r+(l-u)*h/l+f)),s)}var p=e[r],d=a,g=o;for(n(e,a,r),s(e[o],p)>0&&n(e,a,o);d0;)g--}0===s(e[a],p)?n(e,a,g):n(e,++g,o),g<=r&&(a=g+1),r<=g&&(o=g-1)}}},{}],32:[function(t,e,r){function n(t){this.options=c(Object.create(this.options),t),this.trees=new Array(this.options.maxZoom+1)}function i(t,e,r,n,i){return{x:t,y:e,zoom:1/0,id:n,properties:i,parentId:-1,numPoints:r}}function a(t,e){var r=t.geometry.coordinates;return{x:l(r[0]),y:u(r[1]),zoom:1/0,id:e,parentId:-1}}function o(t){return{type:"Feature",properties:s(t),geometry:{type:"Point",coordinates:[function(t){return 360*(t-.5)}(t.x),function(t){var e=(180-360*t)*Math.PI/180;return 360*Math.atan(Math.exp(e))/Math.PI-90}(t.y)]}}}function s(t){var e=t.numPoints,r=e>=1e4?Math.round(e/1e3)+"k":e>=1e3?Math.round(e/100)/10+"k":e;return c(c({},t.properties),{cluster:!0,cluster_id:t.id,point_count:e,point_count_abbreviated:r})}function l(t){return t/360+.5}function u(t){var e=Math.sin(t*Math.PI/180),r=.5-.25*Math.log((1+e)/(1-e))/Math.PI;return r<0?0:r>1?1:r}function c(t,e){for(var r in e)t[r]=e[r];return t}function h(t){return t.x}function f(t){return t.y}var p=t("kdbush");e.exports=function(t){return new n(t)},n.prototype={options:{minZoom:0,maxZoom:16,radius:40,extent:512,nodeSize:64,log:!1,reduce:null,initial:function(){return{}},map:function(t){return t}},load:function(t){var e=this.options.log;e&&console.time("total time");var r="prepare "+t.length+" points";e&&console.time(r),this.points=t;var n=t.map(a);e&&console.timeEnd(r);for(var i=this.options.maxZoom;i>=this.options.minZoom;i--){var o=+Date.now();this.trees[i+1]=p(n,h,f,this.options.nodeSize,Float32Array),n=this._cluster(n,i),e&&console.log("z%d: %d clusters in %dms",i,n.length,+Date.now()-o)}return this.trees[this.options.minZoom]=p(n,h,f,this.options.nodeSize,Float32Array),e&&console.timeEnd("total time"),this},getClusters:function(t,e){for(var r=this.trees[this._limitZoom(e)],n=r.range(l(t[0]),u(t[3]),l(t[2]),u(t[1])),i=[],a=0;a0)for(var r=this.length>>1;r>=0;r--)this._down(r)}function i(t,e){return te?1:0}e.exports=n,n.prototype={push:function(t){this.data.push(t),this.length++,this._up(this.length-1)},pop:function(){if(0!==this.length){var t=this.data[0];return this.length--,this.length>0&&(this.data[0]=this.data[this.length],this._down(0)),this.data.pop(),t}},peek:function(){return this.data[0]},_up:function(t){for(var e=this.data,r=this.compare,n=e[t];t>0;){var i=t-1>>1,a=e[i];if(r(n,a)>=0)break;e[t]=a,t=i}e[t]=n},_down:function(t){for(var e=this.data,r=this.compare,n=this.length,i=n>>1,a=e[t];t=0)break;e[t]=l,t=o}e[t]=a}}},{}],34:[function(t,e,r){function n(t){var e=new h;return function(t,e){for(var r in t.layers)e.writeMessage(3,i,t.layers[r])}(t,e),e.finish()}function i(t,e){e.writeVarintField(15,t.version||1),e.writeStringField(1,t.name||""),e.writeVarintField(5,t.extent||4096);var r,n={keys:[],values:[],keycache:{},valuecache:{}};for(r=0;r>31}function u(t,e){for(var r=t.loadGeometry(),n=t.type,i=0,a=0,o=r.length,u=0;u=c||h<0||h>=c)){var f=r.segments.prepareSegment(4,r.layoutVertexArray,r.indexArray),p=f.vertexLength;n(r.layoutVertexArray,u,h,-1,-1),n(r.layoutVertexArray,u,h,1,-1),n(r.layoutVertexArray,u,h,1,1),n(r.layoutVertexArray,u,h,-1,1),r.indexArray.emplaceBack(p,p+1,p+2),r.indexArray.emplaceBack(p,p+3,p+2),f.vertexLength+=4,f.primitiveLength+=2}}this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,t)},h("CircleBucket",f,{omit:["layers"]}),e.exports=f},{"../../util/web_worker_transfer":278,"../array_types":39,"../extent":53,"../index_array_type":55,"../load_geometry":56,"../program_configuration":58,"../segment":60,"./circle_attributes":41}],43:[function(t,e,r){arguments[4][41][0].apply(r,arguments)},{"../../util/struct_array":271,dup:41}],44:[function(t,e,r){var n=t("../array_types").FillLayoutArray,i=t("./fill_attributes").members,a=t("../segment").SegmentVector,o=t("../program_configuration").ProgramConfigurationSet,s=t("../index_array_type"),l=s.LineIndexArray,u=s.TriangleIndexArray,c=t("../load_geometry"),h=t("earcut"),f=t("../../util/classify_rings"),p=t("../../util/web_worker_transfer").register,d=function(t){this.zoom=t.zoom,this.overscaling=t.overscaling,this.layers=t.layers,this.layerIds=this.layers.map(function(t){return t.id}),this.index=t.index,this.layoutVertexArray=new n,this.indexArray=new u,this.indexArray2=new l,this.programConfigurations=new o(i,t.layers,t.zoom),this.segments=new a,this.segments2=new a};d.prototype.populate=function(t,e){for(var r=this,n=0,i=t;nd)||t.y===e.y&&(t.y<0||t.y>d)}function a(t){return t.every(function(t){return t.x<0})||t.every(function(t){return t.x>d})||t.every(function(t){return t.y<0})||t.every(function(t){return t.y>d})}var o=t("../array_types").FillExtrusionLayoutArray,s=t("./fill_extrusion_attributes").members,l=t("../segment"),u=l.SegmentVector,c=l.MAX_VERTEX_ARRAY_LENGTH,h=t("../program_configuration").ProgramConfigurationSet,f=t("../index_array_type").TriangleIndexArray,p=t("../load_geometry"),d=t("../extent"),g=t("earcut"),v=t("../../util/classify_rings"),m=t("../../util/web_worker_transfer").register,y=Math.pow(2,13),x=function(t){this.zoom=t.zoom,this.overscaling=t.overscaling,this.layers=t.layers,this.layerIds=this.layers.map(function(t){return t.id}),this.index=t.index,this.layoutVertexArray=new o,this.indexArray=new f,this.programConfigurations=new h(s,t.layers,t.zoom),this.segments=new u};x.prototype.populate=function(t,e){for(var r=this,n=0,i=t;n=1){var w=y[b-1];if(!i(_,w)){p.vertexLength+4>c&&(p=r.segments.prepareSegment(4,r.layoutVertexArray,r.indexArray));var M=_.sub(w)._perp()._unit(),A=w.dist(_);x+A>32768&&(x=0),n(r.layoutVertexArray,_.x,_.y,M.x,M.y,0,0,x),n(r.layoutVertexArray,_.x,_.y,M.x,M.y,0,1,x),x+=A,n(r.layoutVertexArray,w.x,w.y,M.x,M.y,0,0,x),n(r.layoutVertexArray,w.x,w.y,M.x,M.y,0,1,x);var k=p.vertexLength;r.indexArray.emplaceBack(k,k+1,k+2),r.indexArray.emplaceBack(k+1,k+2,k+3),p.vertexLength+=4,p.primitiveLength+=2}}}}p.vertexLength+u>c&&(p=r.segments.prepareSegment(u,r.layoutVertexArray,r.indexArray));for(var T=[],S=[],E=p.vertexLength,C=0,L=l;C>6)}var i=t("../array_types").LineLayoutArray,a=t("./line_attributes").members,o=t("../segment").SegmentVector,s=t("../program_configuration").ProgramConfigurationSet,l=t("../index_array_type").TriangleIndexArray,u=t("../load_geometry"),c=t("../extent"),h=t("@mapbox/vector-tile").VectorTileFeature.types,f=t("../../util/web_worker_transfer").register,p=63,d=Math.cos(Math.PI/180*37.5),g=.5,v=Math.pow(2,14)/g,m=function(t){this.zoom=t.zoom,this.overscaling=t.overscaling,this.layers=t.layers,this.layerIds=this.layers.map(function(t){return t.id}),this.index=t.index,this.layoutVertexArray=new i,this.indexArray=new l,this.programConfigurations=new s(a,t.layers,t.zoom),this.segments=new o};m.prototype.populate=function(t,e){for(var r=this,n=0,i=t;n=2&&t[l-1].equals(t[l-2]);)l--;for(var u=0;uu){var z=v.dist(w);if(z>2*f){var P=v.sub(v.sub(w)._mult(f/z)._round());o.distance+=P.dist(w),o.addCurrentVertex(P,o.distance,A.mult(1),0,0,!1,g),w=P}}var I=w&&M,D=I?r:M?x:b;if(I&&"round"===D&&(Ci&&(D="bevel"),"bevel"===D&&(C>2&&(D="flipbevel"),C100)S=k.clone().mult(-1);else{var O=A.x*k.y-A.y*k.x>0?-1:1,R=C*A.add(k).mag()/A.sub(k).mag();S._perp()._mult(R*O)}o.addCurrentVertex(v,o.distance,S,0,0,!1,g),o.addCurrentVertex(v,o.distance,S.mult(-1),0,0,!1,g)}else if("bevel"===D||"fakeround"===D){var F=A.x*k.y-A.y*k.x>0,B=-Math.sqrt(C*C-1);if(F?(y=0,m=B):(m=0,y=B),_||o.addCurrentVertex(v,o.distance,A,m,y,!1,g),"fakeround"===D){for(var N=Math.floor(8*(.5-(E-.5))),j=void 0,V=0;V=0;U--)j=A.mult((U+1)/(N+1))._add(k)._unit(),o.addPieSliceVertex(v,o.distance,j,F,g)}M&&o.addCurrentVertex(v,o.distance,k,-m,-y,!1,g)}else"butt"===D?(_||o.addCurrentVertex(v,o.distance,A,0,0,!1,g),M&&o.addCurrentVertex(v,o.distance,k,0,0,!1,g)):"square"===D?(_||(o.addCurrentVertex(v,o.distance,A,1,1,!1,g),o.e1=o.e2=-1),M&&o.addCurrentVertex(v,o.distance,k,-1,-1,!1,g)):"round"===D&&(_||(o.addCurrentVertex(v,o.distance,A,0,0,!1,g),o.addCurrentVertex(v,o.distance,A,1,1,!0,g),o.e1=o.e2=-1),M&&(o.addCurrentVertex(v,o.distance,k,-1,-1,!0,g),o.addCurrentVertex(v,o.distance,k,0,0,!1,g)));if(L&&T2*f){var H=v.add(M.sub(v)._mult(f/q)._round());o.distance+=H.dist(v),o.addCurrentVertex(H,o.distance,k.mult(1),0,0,!1,g),v=H}}_=!1}this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,e)}},m.prototype.addCurrentVertex=function(t,e,r,i,a,o,s){var l,u=this.layoutVertexArray,c=this.indexArray;l=r.clone(),i&&l._sub(r.perp()._mult(i)),n(u,t,l,o,!1,i,e),this.e3=s.vertexLength++,this.e1>=0&&this.e2>=0&&(c.emplaceBack(this.e1,this.e2,this.e3),s.primitiveLength++),this.e1=this.e2,this.e2=this.e3,l=r.mult(-1),a&&l._sub(r.perp()._mult(a)),n(u,t,l,o,!0,-a,e),this.e3=s.vertexLength++,this.e1>=0&&this.e2>=0&&(c.emplaceBack(this.e1,this.e2,this.e3),s.primitiveLength++),this.e1=this.e2,this.e2=this.e3,e>v/2&&(this.distance=0,this.addCurrentVertex(t,this.distance,r,i,a,o,s))},m.prototype.addPieSliceVertex=function(t,e,r,i,a){r=r.mult(i?-1:1);var o=this.layoutVertexArray,s=this.indexArray;n(o,t,r,!1,i,0,e),this.e3=a.vertexLength++,this.e1>=0&&this.e2>=0&&(s.emplaceBack(this.e1,this.e2,this.e3),a.primitiveLength++),i?this.e2=this.e3:this.e1=this.e3},f("LineBucket",m,{omit:["layers"]}),e.exports=m},{"../../util/web_worker_transfer":278,"../array_types":39,"../extent":53,"../index_array_type":55,"../load_geometry":56,"../program_configuration":58,"../segment":60,"./line_attributes":48,"@mapbox/vector-tile":8}],50:[function(t,e,r){var n=t("../../util/struct_array").createLayout,i={symbolLayoutAttributes:n([{name:"a_pos_offset",components:4,type:"Int16"},{name:"a_data",components:4,type:"Uint16"}]),dynamicLayoutAttributes:n([{name:"a_projected_pos",components:3,type:"Float32"}],4),placementOpacityAttributes:n([{name:"a_fade_opacity",components:1,type:"Uint32"}],4),collisionVertexAttributes:n([{name:"a_placed",components:2,type:"Uint8"}],4),collisionBox:n([{type:"Int16",name:"anchorPointX"},{type:"Int16",name:"anchorPointY"},{type:"Int16",name:"x1"},{type:"Int16",name:"y1"},{type:"Int16",name:"x2"},{type:"Int16",name:"y2"},{type:"Uint32",name:"featureIndex"},{type:"Uint16",name:"sourceLayerIndex"},{type:"Uint16",name:"bucketIndex"},{type:"Int16",name:"radius"},{type:"Int16",name:"signedDistanceFromAnchor"}]),collisionBoxLayout:n([{name:"a_pos",components:2,type:"Int16"},{name:"a_anchor_pos",components:2,type:"Int16"},{name:"a_extrude",components:2,type:"Int16"}],4),collisionCircleLayout:n([{name:"a_pos",components:2,type:"Int16"},{name:"a_anchor_pos",components:2,type:"Int16"},{name:"a_extrude",components:2,type:"Int16"}],4),placement:n([{type:"Int16",name:"anchorX"},{type:"Int16",name:"anchorY"},{type:"Uint16",name:"glyphStartIndex"},{type:"Uint16",name:"numGlyphs"},{type:"Uint32",name:"vertexStartIndex"},{type:"Uint32",name:"lineStartIndex"},{type:"Uint32",name:"lineLength"},{type:"Uint16",name:"segment"},{type:"Uint16",name:"lowerSize"},{type:"Uint16",name:"upperSize"},{type:"Float32",name:"lineOffsetX"},{type:"Float32",name:"lineOffsetY"},{type:"Uint8",name:"writingMode"},{type:"Uint8",name:"hidden"}]),glyphOffset:n([{type:"Float32",name:"offsetX"}]),lineVertex:n([{type:"Int16",name:"x"},{type:"Int16",name:"y"},{type:"Int16",name:"tileUnitDistanceFromAnchor"}])};e.exports=i},{"../../util/struct_array":271}],51:[function(t,e,r){function n(t,e,r,n,i,a,o,s){t.emplaceBack(e,r,Math.round(64*n),Math.round(64*i),a,o,s?s[0]:0,s?s[1]:0)}function i(t,e,r){t.emplaceBack(e.x,e.y,r),t.emplaceBack(e.x,e.y,r),t.emplaceBack(e.x,e.y,r),t.emplaceBack(e.x,e.y,r)}var a=t("./symbol_attributes"),o=a.symbolLayoutAttributes,s=a.collisionVertexAttributes,l=a.collisionBoxLayout,u=a.collisionCircleLayout,c=a.dynamicLayoutAttributes,h=t("../array_types"),f=h.SymbolLayoutArray,p=h.SymbolDynamicLayoutArray,d=h.SymbolOpacityArray,g=h.CollisionBoxLayoutArray,v=h.CollisionCircleLayoutArray,m=h.CollisionVertexArray,y=h.PlacedSymbolArray,x=h.GlyphOffsetArray,b=h.SymbolLineVertexArray,_=t("@mapbox/point-geometry"),w=t("../segment").SegmentVector,M=t("../program_configuration").ProgramConfigurationSet,A=t("../index_array_type"),k=A.TriangleIndexArray,T=A.LineIndexArray,S=t("../../symbol/transform_text"),E=t("../../symbol/mergelines"),C=t("../../util/script_detection"),L=t("../load_geometry"),z=t("@mapbox/vector-tile").VectorTileFeature.types,P=t("../../util/verticalize_punctuation"),I=(t("../../symbol/anchor"),t("../../symbol/symbol_size").getSizeData),D=t("../../util/web_worker_transfer").register,O=[{name:"a_fade_opacity",components:1,type:"Uint8",offset:0}],R=function(t){this.layoutVertexArray=new f,this.indexArray=new k,this.programConfigurations=t,this.segments=new w,this.dynamicLayoutVertexArray=new p,this.opacityVertexArray=new d,this.placedSymbolArray=new y};R.prototype.upload=function(t,e){this.layoutVertexBuffer=t.createVertexBuffer(this.layoutVertexArray,o.members),this.indexBuffer=t.createIndexBuffer(this.indexArray,e),this.programConfigurations.upload(t),this.dynamicLayoutVertexBuffer=t.createVertexBuffer(this.dynamicLayoutVertexArray,c.members,!0),this.opacityVertexBuffer=t.createVertexBuffer(this.opacityVertexArray,O,!0),this.opacityVertexBuffer.itemSize=1},R.prototype.destroy=function(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy(),this.dynamicLayoutVertexBuffer.destroy(),this.opacityVertexBuffer.destroy())},D("SymbolBuffers",R);var F=function(t,e,r){this.layoutVertexArray=new t,this.layoutAttributes=e,this.indexArray=new r,this.segments=new w,this.collisionVertexArray=new m};F.prototype.upload=function(t){this.layoutVertexBuffer=t.createVertexBuffer(this.layoutVertexArray,this.layoutAttributes),this.indexBuffer=t.createIndexBuffer(this.indexArray),this.collisionVertexBuffer=t.createVertexBuffer(this.collisionVertexArray,s.members,!0)},F.prototype.destroy=function(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.segments.destroy(),this.collisionVertexBuffer.destroy())},D("CollisionBuffers",F);var B=function(t){this.collisionBoxArray=t.collisionBoxArray,this.zoom=t.zoom,this.overscaling=t.overscaling,this.layers=t.layers,this.layerIds=this.layers.map(function(t){return t.id}),this.index=t.index,this.pixelRatio=t.pixelRatio;var e=this.layers[0]._unevaluatedLayout._values;this.textSizeData=I(this.zoom,e["text-size"]),this.iconSizeData=I(this.zoom,e["icon-size"]);var r=this.layers[0].layout;this.sortFeaturesByY=r.get("text-allow-overlap")||r.get("icon-allow-overlap")||r.get("text-ignore-placement")||r.get("icon-ignore-placement")};B.prototype.createArrays=function(){this.text=new R(new M(o.members,this.layers,this.zoom,function(t){return/^text/.test(t)})),this.icon=new R(new M(o.members,this.layers,this.zoom,function(t){return/^icon/.test(t)})),this.collisionBox=new F(g,l.members,T),this.collisionCircle=new F(v,u.members,k),this.glyphOffsetArray=new x,this.lineVertexArray=new b},B.prototype.populate=function(t,e){var r=this.layers[0],n=r.layout,i=n.get("text-font"),a=n.get("text-field"),o=n.get("icon-image"),s=("constant"!==a.value.kind||a.value.value.length>0)&&("constant"!==i.value.kind||i.value.value.length>0),l="constant"!==o.value.kind||o.value.value&&o.value.value.length>0;if(this.features=[],s||l){for(var u=e.iconDependencies,c=e.glyphDependencies,h={zoom:this.zoom},f=0,p=t;f=0;s--)a[s]={x:e[s].x,y:e[s].y,tileUnitDistanceFromAnchor:i},s>0&&(i+=e[s-1].dist(e[s]));for(var l=0;l0;t.addCollisionDebugVertices(l,u,c,h,f?t.collisionCircle:t.collisionBox,s.anchorPoint,n,f)}}}},B.prototype.deserializeCollisionBoxes=function(t,e,r,n,i){for(var a={},o=e;o0},B.prototype.hasIconData=function(){return this.icon.segments.get().length>0},B.prototype.hasCollisionBoxData=function(){return this.collisionBox.segments.get().length>0},B.prototype.hasCollisionCircleData=function(){return this.collisionCircle.segments.get().length>0},B.prototype.sortFeatures=function(t){var e=this;if(this.sortFeaturesByY&&this.sortedAngle!==t&&(this.sortedAngle=t,!(this.text.segments.get().length>1||this.icon.segments.get().length>1))){for(var r=[],n=0;n=this.dim+this.border||e<-this.border||e>=this.dim+this.border)throw new RangeError("out of range source coordinates for DEM data");return(e+this.border)*this.stride+(t+this.border)},a("Level",o);var s=function(t,e,r){this.uid=t,this.scale=e||1,this.level=r||new o(256,512),this.loaded=!!r};s.prototype.loadFromImage=function(t){if(t.height!==t.width)throw new RangeError("DEM tiles must be square");for(var e=this.level=new o(t.width,t.width/2),r=t.data,n=0;no.max||u.yo.max)&&i.warnOnce("Geometry exceeds allowed extent, reduce your vector tile buffer size")}return r}},{"../util/util":275,"./extent":53}],57:[function(t,e,r){var n=t("../util/struct_array").createLayout;e.exports=n([{name:"a_pos",type:"Int16",components:2}])},{"../util/struct_array":271}],58:[function(t,e,r){function n(t){return[a(255*t.r,255*t.g),a(255*t.b,255*t.a)]}function i(t,e){return{"text-opacity":"opacity","icon-opacity":"opacity","text-color":"fill_color","icon-color":"fill_color","text-halo-color":"halo_color","icon-halo-color":"halo_color","text-halo-blur":"halo_blur","icon-halo-blur":"halo_blur","text-halo-width":"halo_width","icon-halo-width":"halo_width","line-gap-width":"gapwidth"}[t]||t.replace(e+"-","").replace(/-/g,"_")}var a=t("../shaders/encode_attribute").packUint8ToFloat,o=(t("../style-spec/util/color"),t("../util/web_worker_transfer").register),s=t("../style/properties").PossiblyEvaluatedPropertyValue,l=t("./array_types"),u=l.StructArrayLayout1f4,c=l.StructArrayLayout2f8,h=l.StructArrayLayout4f16,f=function(t,e,r){this.value=t,this.name=e,this.type=r,this.statistics={max:-1/0}};f.prototype.defines=function(){return["#define HAS_UNIFORM_u_"+this.name]},f.prototype.populatePaintArray=function(){},f.prototype.upload=function(){},f.prototype.destroy=function(){},f.prototype.setUniforms=function(t,e,r,n){var i=n.constantOr(this.value),a=t.gl;"color"===this.type?a.uniform4f(e.uniforms["u_"+this.name],i.r,i.g,i.b,i.a):a.uniform1f(e.uniforms["u_"+this.name],i)};var p=function(t,e,r){this.expression=t,this.name=e,this.type=r,this.statistics={max:-1/0};var n="color"===r?c:u;this.paintVertexAttributes=[{name:"a_"+e,type:"Float32",components:"color"===r?2:1,offset:0}],this.paintVertexArray=new n};p.prototype.defines=function(){return[]},p.prototype.populatePaintArray=function(t,e){var r=this.paintVertexArray,i=r.length;r.reserve(t);var a=this.expression.evaluate({zoom:0},e);if("color"===this.type)for(var o=n(a),s=i;sa&&n("Max vertices per segment is "+a+": bucket requested "+t),(!o||o.vertexLength+t>e.exports.MAX_VERTEX_ARRAY_LENGTH)&&(o={vertexOffset:r.length,primitiveOffset:i.length,vertexLength:0,primitiveLength:0},this.segments.push(o)),o},o.prototype.get=function(){return this.segments},o.prototype.destroy=function(){for(var t=0,e=this.segments;t90||this.lat<-90)throw new Error("Invalid LngLat latitude value: must be between -90 and 90")};i.prototype.wrap=function(){return new i(n(this.lng,-180,180),this.lat)},i.prototype.toArray=function(){return[this.lng,this.lat]},i.prototype.toString=function(){return"LngLat("+this.lng+", "+this.lat+")"},i.prototype.toBounds=function(e){var r=360*e/40075017,n=r/Math.cos(Math.PI/180*this.lat);return new(t("./lng_lat_bounds"))(new i(this.lng-n,this.lat-r),new i(this.lng+n,this.lat+r))},i.convert=function(t){if(t instanceof i)return t;if(Array.isArray(t)&&(2===t.length||3===t.length))return new i(Number(t[0]),Number(t[1]));if(!Array.isArray(t)&&"object"==typeof t&&null!==t)return new i(Number(t.lng),Number(t.lat));throw new Error("`LngLatLike` argument must be specified as a LngLat instance, an object {lng: , lat: }, or an array of [, ]")},e.exports=i},{"../util/util":275,"./lng_lat_bounds":63}],63:[function(t,e,r){var n=t("./lng_lat"),i=function(t,e){t&&(e?this.setSouthWest(t).setNorthEast(e):4===t.length?this.setSouthWest([t[0],t[1]]).setNorthEast([t[2],t[3]]):this.setSouthWest(t[0]).setNorthEast(t[1]))};i.prototype.setNorthEast=function(t){return this._ne=t instanceof n?new n(t.lng,t.lat):n.convert(t),this},i.prototype.setSouthWest=function(t){return this._sw=t instanceof n?new n(t.lng,t.lat):n.convert(t),this},i.prototype.extend=function(t){var e,r,a=this._sw,o=this._ne;if(t instanceof n)e=t,r=t;else{if(!(t instanceof i))return Array.isArray(t)?t.every(Array.isArray)?this.extend(i.convert(t)):this.extend(n.convert(t)):this;if(e=t._sw,r=t._ne,!e||!r)return this}return a||o?(a.lng=Math.min(e.lng,a.lng),a.lat=Math.min(e.lat,a.lat),o.lng=Math.max(r.lng,o.lng),o.lat=Math.max(r.lat,o.lat)):(this._sw=new n(e.lng,e.lat),this._ne=new n(r.lng,r.lat)),this},i.prototype.getCenter=function(){return new n((this._sw.lng+this._ne.lng)/2,(this._sw.lat+this._ne.lat)/2)},i.prototype.getSouthWest=function(){return this._sw},i.prototype.getNorthEast=function(){return this._ne},i.prototype.getNorthWest=function(){return new n(this.getWest(),this.getNorth())},i.prototype.getSouthEast=function(){return new n(this.getEast(),this.getSouth())},i.prototype.getWest=function(){return this._sw.lng},i.prototype.getSouth=function(){return this._sw.lat},i.prototype.getEast=function(){return this._ne.lng},i.prototype.getNorth=function(){return this._ne.lat},i.prototype.toArray=function(){return[this._sw.toArray(),this._ne.toArray()]},i.prototype.toString=function(){return"LngLatBounds("+this._sw.toString()+", "+this._ne.toString()+")"},i.prototype.isEmpty=function(){return!(this._sw&&this._ne)},i.convert=function(t){return!t||t instanceof i?t:new i(t)},e.exports=i},{"./lng_lat":62}],64:[function(t,e,r){var n=t("./lng_lat"),i=t("@mapbox/point-geometry"),a=t("./coordinate"),o=t("../util/util"),s=t("../style-spec/util/interpolate").number,l=t("../util/tile_cover"),u=t("../source/tile_id"),c=(u.CanonicalTileID,u.UnwrappedTileID),h=t("../data/extent"),f=t("@mapbox/gl-matrix"),p=f.vec4,d=f.mat4,g=f.mat2,v=function(t,e,r){this.tileSize=512,this._renderWorldCopies=void 0===r||r,this._minZoom=t||0,this._maxZoom=e||22,this.latRange=[-85.05113,85.05113],this.width=0,this.height=0,this._center=new n(0,0),this.zoom=0,this.angle=0,this._fov=.6435011087932844,this._pitch=0,this._unmodified=!0,this._posMatrixCache={},this._alignedPosMatrixCache={}},m={minZoom:{},maxZoom:{},renderWorldCopies:{},worldSize:{},centerPoint:{},size:{},bearing:{},pitch:{},fov:{},zoom:{},center:{},unmodified:{},x:{},y:{},point:{}};v.prototype.clone=function(){var t=new v(this._minZoom,this._maxZoom,this._renderWorldCopies);return t.tileSize=this.tileSize,t.latRange=this.latRange,t.width=this.width,t.height=this.height,t._center=this._center,t.zoom=this.zoom,t.angle=this.angle,t._fov=this._fov,t._pitch=this._pitch,t._unmodified=this._unmodified,t._calcMatrices(),t},m.minZoom.get=function(){return this._minZoom},m.minZoom.set=function(t){this._minZoom!==t&&(this._minZoom=t,this.zoom=Math.max(this.zoom,t))},m.maxZoom.get=function(){return this._maxZoom},m.maxZoom.set=function(t){this._maxZoom!==t&&(this._maxZoom=t,this.zoom=Math.min(this.zoom,t))},m.renderWorldCopies.get=function(){return this._renderWorldCopies},m.worldSize.get=function(){return this.tileSize*this.scale},m.centerPoint.get=function(){return this.size._div(2)},m.size.get=function(){return new i(this.width,this.height)},m.bearing.get=function(){return-this.angle/Math.PI*180},m.bearing.set=function(t){var e=-o.wrap(t,-180,180)*Math.PI/180;this.angle!==e&&(this._unmodified=!1,this.angle=e,this._calcMatrices(),this.rotationMatrix=g.create(),g.rotate(this.rotationMatrix,this.rotationMatrix,this.angle))},m.pitch.get=function(){return this._pitch/Math.PI*180},m.pitch.set=function(t){var e=o.clamp(t,0,60)/180*Math.PI;this._pitch!==e&&(this._unmodified=!1,this._pitch=e,this._calcMatrices())},m.fov.get=function(){return this._fov/Math.PI*180},m.fov.set=function(t){t=Math.max(.01,Math.min(60,t)),this._fov!==t&&(this._unmodified=!1,this._fov=t/180*Math.PI,this._calcMatrices())},m.zoom.get=function(){return this._zoom},m.zoom.set=function(t){var e=Math.min(Math.max(t,this.minZoom),this.maxZoom);this._zoom!==e&&(this._unmodified=!1,this._zoom=e,this.scale=this.zoomScale(e),this.tileZoom=Math.floor(e),this.zoomFraction=e-this.tileZoom,this._constrain(),this._calcMatrices())},m.center.get=function(){return this._center},m.center.set=function(t){t.lat===this._center.lat&&t.lng===this._center.lng||(this._unmodified=!1,this._center=t,this._constrain(),this._calcMatrices())},v.prototype.coveringZoomLevel=function(t){return(t.roundZoom?Math.round:Math.floor)(this.zoom+this.scaleZoom(this.tileSize/t.tileSize))},v.prototype.getVisibleUnwrappedCoordinates=function(t){var e=this.pointCoordinate(new i(0,0),0),r=this.pointCoordinate(new i(this.width,0),0),n=Math.floor(e.column),a=Math.floor(r.column),o=[new c(0,t)];if(this._renderWorldCopies)for(var s=n;s<=a;s++)0!==s&&o.push(new c(s,t));return o},v.prototype.coveringTiles=function(t){var e=this.coveringZoomLevel(t),r=e;if(void 0!==t.minzoom&&et.maxzoom&&(e=t.maxzoom);var n=this.pointCoordinate(this.centerPoint,e),a=new i(n.column-.5,n.row-.5),o=[this.pointCoordinate(new i(0,0),e),this.pointCoordinate(new i(this.width,0),e),this.pointCoordinate(new i(this.width,this.height),e),this.pointCoordinate(new i(0,this.height),e)];return l(e,o,t.reparseOverscaled?r:e,this._renderWorldCopies).sort(function(t,e){return a.dist(t.canonical)-a.dist(e.canonical)})},v.prototype.resize=function(t,e){this.width=t,this.height=e,this.pixelsToGLUnits=[2/t,-2/e],this._constrain(),this._calcMatrices()},m.unmodified.get=function(){return this._unmodified},v.prototype.zoomScale=function(t){return Math.pow(2,t)},v.prototype.scaleZoom=function(t){return Math.log(t)/Math.LN2},v.prototype.project=function(t){return new i(this.lngX(t.lng),this.latY(t.lat))},v.prototype.unproject=function(t){return new n(this.xLng(t.x),this.yLat(t.y))},m.x.get=function(){return this.lngX(this.center.lng)},m.y.get=function(){return this.latY(this.center.lat)},m.point.get=function(){return new i(this.x,this.y)},v.prototype.lngX=function(t){return(180+t)*this.worldSize/360},v.prototype.latY=function(t){return(180-180/Math.PI*Math.log(Math.tan(Math.PI/4+t*Math.PI/360)))*this.worldSize/360},v.prototype.xLng=function(t){return 360*t/this.worldSize-180},v.prototype.yLat=function(t){var e=180-360*t/this.worldSize;return 360/Math.PI*Math.atan(Math.exp(e*Math.PI/180))-90},v.prototype.setLocationAtPoint=function(t,e){var r=this.pointCoordinate(e)._sub(this.pointCoordinate(this.centerPoint));this.center=this.coordinateLocation(this.locationCoordinate(t)._sub(r)),this._renderWorldCopies&&(this.center=this.center.wrap())},v.prototype.locationPoint=function(t){return this.coordinatePoint(this.locationCoordinate(t))},v.prototype.pointLocation=function(t){return this.coordinateLocation(this.pointCoordinate(t))},v.prototype.locationCoordinate=function(t){return new a(this.lngX(t.lng)/this.tileSize,this.latY(t.lat)/this.tileSize,this.zoom).zoomTo(this.tileZoom)},v.prototype.coordinateLocation=function(t){var e=t.zoomTo(this.zoom);return new n(this.xLng(e.column*this.tileSize),this.yLat(e.row*this.tileSize))},v.prototype.pointCoordinate=function(t,e){void 0===e&&(e=this.tileZoom);var r=[t.x,t.y,0,1],n=[t.x,t.y,1,1];p.transformMat4(r,r,this.pixelMatrixInverse),p.transformMat4(n,n,this.pixelMatrixInverse);var i=r[3],o=n[3],l=r[1]/i,u=n[1]/o,c=r[2]/i,h=n[2]/o,f=c===h?0:(0-c)/(h-c);return new a(s(r[0]/i,n[0]/o,f)/this.tileSize,s(l,u,f)/this.tileSize,this.zoom)._zoomTo(e)},v.prototype.coordinatePoint=function(t){var e=t.zoomTo(this.zoom),r=[e.column*this.tileSize,e.row*this.tileSize,0,1];return p.transformMat4(r,r,this.pixelMatrix),new i(r[0]/r[3],r[1]/r[3])},v.prototype.calculatePosMatrix=function(t,e){void 0===e&&(e=!1);var r=t.key,n=e?this._alignedPosMatrixCache:this._posMatrixCache;if(n[r])return n[r];var i=t.canonical,a=this.worldSize/this.zoomScale(i.z),o=i.x+Math.pow(2,i.z)*t.wrap,s=d.identity(new Float64Array(16));return d.translate(s,s,[o*a,i.y*a,0]),d.scale(s,s,[a/h,a/h,1]),d.multiply(s,e?this.alignedProjMatrix:this.projMatrix,s),n[r]=new Float32Array(s),n[r]},v.prototype._constrain=function(){if(this.center&&this.width&&this.height&&!this._constraining){this._constraining=!0;var t,e,r,n,a=-90,o=90,s=-180,l=180,u=this.size,c=this._unmodified;if(this.latRange){var h=this.latRange;a=this.latY(h[1]),t=(o=this.latY(h[0]))-ao&&(n=o-g)}if(this.lngRange){var v=this.x,m=u.x/2;v-ml&&(r=l-m)}void 0===r&&void 0===n||(this.center=this.unproject(new i(void 0!==r?r:this.x,void 0!==n?n:this.y))),this._unmodified=c,this._constraining=!1}},v.prototype._calcMatrices=function(){if(this.height){this.cameraToCenterDistance=.5/Math.tan(this._fov/2)*this.height;var t=this._fov/2,e=Math.PI/2+this._pitch,r=Math.sin(t)*this.cameraToCenterDistance/Math.sin(Math.PI-e-t),n=this.x,i=this.y,a=1.01*(Math.cos(Math.PI/2-this._pitch)*r+this.cameraToCenterDistance),o=new Float64Array(16);d.perspective(o,this._fov,this.width/this.height,1,a),d.scale(o,o,[1,-1,1]),d.translate(o,o,[0,0,-this.cameraToCenterDistance]),d.rotateX(o,o,this._pitch),d.rotateZ(o,o,this.angle),d.translate(o,o,[-n,-i,0]);var s=this.worldSize/(2*Math.PI*6378137*Math.abs(Math.cos(this.center.lat*(Math.PI/180))));d.scale(o,o,[1,1,s,1]),this.projMatrix=o;var l=this.width%2/2,u=this.height%2/2,c=Math.cos(this.angle),h=Math.sin(this.angle),f=n-Math.round(n)+c*l+h*u,p=i-Math.round(i)+c*u+h*l,g=new Float64Array(o);if(d.translate(g,g,[f>.5?f-1:f,p>.5?p-1:p,0]),this.alignedProjMatrix=g,o=d.create(),d.scale(o,o,[this.width/2,-this.height/2,1]),d.translate(o,o,[1,-1,0]),this.pixelMatrix=d.multiply(new Float64Array(16),o,this.projMatrix),!(o=d.invert(new Float64Array(16),this.pixelMatrix)))throw new Error("failed to invert matrix");this.pixelMatrixInverse=o,this._posMatrixCache={},this._alignedPosMatrixCache={}}},Object.defineProperties(v.prototype,m),e.exports=v},{"../data/extent":53,"../source/tile_id":114,"../style-spec/util/interpolate":158,"../util/tile_cover":273,"../util/util":275,"./coordinate":61,"./lng_lat":62,"@mapbox/gl-matrix":2,"@mapbox/point-geometry":4}],65:[function(t,e,r){var n=t("../style-spec/util/color"),i=function(t,e,r){this.blendFunction=t,this.blendColor=e,this.mask=r};i.disabled=new i(i.Replace=[1,0],n.transparent,[!1,!1,!1,!1]),i.unblended=new i(i.Replace,n.transparent,[!0,!0,!0,!0]),i.alphaBlended=new i([1,771],n.transparent,[!0,!0,!0,!0]),e.exports=i},{"../style-spec/util/color":153}],66:[function(t,e,r){var n=t("./index_buffer"),i=t("./vertex_buffer"),a=t("./framebuffer"),o=(t("./depth_mode"),t("./stencil_mode"),t("./color_mode")),s=t("../util/util"),l=t("./value"),u=l.ClearColor,c=l.ClearDepth,h=l.ClearStencil,f=l.ColorMask,p=l.DepthMask,d=l.StencilMask,g=l.StencilFunc,v=l.StencilOp,m=l.StencilTest,y=l.DepthRange,x=l.DepthTest,b=l.DepthFunc,_=l.Blend,w=l.BlendFunc,M=l.BlendColor,A=l.Program,k=l.LineWidth,T=l.ActiveTextureUnit,S=l.Viewport,E=l.BindFramebuffer,C=l.BindRenderbuffer,L=l.BindTexture,z=l.BindVertexBuffer,P=l.BindElementBuffer,I=l.BindVertexArrayOES,D=l.PixelStoreUnpack,O=l.PixelStoreUnpackPremultiplyAlpha,R=function(t){this.gl=t,this.extVertexArrayObject=this.gl.getExtension("OES_vertex_array_object"),this.lineWidthRange=t.getParameter(t.ALIASED_LINE_WIDTH_RANGE),this.clearColor=new u(this),this.clearDepth=new c(this),this.clearStencil=new h(this),this.colorMask=new f(this),this.depthMask=new p(this),this.stencilMask=new d(this),this.stencilFunc=new g(this),this.stencilOp=new v(this),this.stencilTest=new m(this),this.depthRange=new y(this),this.depthTest=new x(this),this.depthFunc=new b(this),this.blend=new _(this),this.blendFunc=new w(this),this.blendColor=new M(this),this.program=new A(this),this.lineWidth=new k(this),this.activeTexture=new T(this),this.viewport=new S(this),this.bindFramebuffer=new E(this),this.bindRenderbuffer=new C(this),this.bindTexture=new L(this),this.bindVertexBuffer=new z(this),this.bindElementBuffer=new P(this),this.bindVertexArrayOES=this.extVertexArrayObject&&new I(this),this.pixelStoreUnpack=new D(this),this.pixelStoreUnpackPremultiplyAlpha=new O(this),this.extTextureFilterAnisotropic=t.getExtension("EXT_texture_filter_anisotropic")||t.getExtension("MOZ_EXT_texture_filter_anisotropic")||t.getExtension("WEBKIT_EXT_texture_filter_anisotropic"),this.extTextureFilterAnisotropic&&(this.extTextureFilterAnisotropicMax=t.getParameter(this.extTextureFilterAnisotropic.MAX_TEXTURE_MAX_ANISOTROPY_EXT)),this.extTextureHalfFloat=t.getExtension("OES_texture_half_float"),this.extTextureHalfFloat&&t.getExtension("OES_texture_half_float_linear")};R.prototype.createIndexBuffer=function(t,e){return new n(this,t,e)},R.prototype.createVertexBuffer=function(t,e,r){return new i(this,t,e,r)},R.prototype.createRenderbuffer=function(t,e,r){var n=this.gl,i=n.createRenderbuffer();return this.bindRenderbuffer.set(i),n.renderbufferStorage(n.RENDERBUFFER,t,e,r),this.bindRenderbuffer.set(null),i},R.prototype.createFramebuffer=function(t,e){return new a(this,t,e)},R.prototype.clear=function(t){var e=t.color,r=t.depth,n=this.gl,i=0;e&&(i|=n.COLOR_BUFFER_BIT,this.clearColor.set(e),this.colorMask.set([!0,!0,!0,!0])),void 0!==r&&(i|=n.DEPTH_BUFFER_BIT,this.clearDepth.set(r),this.depthMask.set(!0)),n.clear(i)},R.prototype.setDepthMode=function(t){t.func!==this.gl.ALWAYS||t.mask?(this.depthTest.set(!0),this.depthFunc.set(t.func),this.depthMask.set(t.mask),this.depthRange.set(t.range)):this.depthTest.set(!1)},R.prototype.setStencilMode=function(t){t.func!==this.gl.ALWAYS||t.mask?(this.stencilTest.set(!0),this.stencilMask.set(t.mask),this.stencilOp.set([t.fail,t.depthFail,t.pass]),this.stencilFunc.set({func:t.test.func,ref:t.ref,mask:t.test.mask})):this.stencilTest.set(!1)},R.prototype.setColorMode=function(t){s.deepEqual(t.blendFunction,o.Replace)?this.blend.set(!1):(this.blend.set(!0),this.blendFunc.set(t.blendFunction),this.blendColor.set(t.blendColor)),this.colorMask.set(t.mask)},e.exports=R},{"../util/util":275,"./color_mode":65,"./depth_mode":67,"./framebuffer":68,"./index_buffer":69,"./stencil_mode":70,"./value":71,"./vertex_buffer":72}],67:[function(t,e,r){var n=function(t,e,r){this.func=t,this.mask=e,this.range=r};n.ReadOnly=!1,n.ReadWrite=!0,n.disabled=new n(519,n.ReadOnly,[0,1]),e.exports=n},{}],68:[function(t,e,r){var n=t("./value"),i=n.ColorAttachment,a=n.DepthAttachment,o=function(t,e,r){this.context=t,this.width=e,this.height=r;var n=t.gl,o=this.framebuffer=n.createFramebuffer();this.colorAttachment=new i(t,o),this.depthAttachment=new a(t,o)};o.prototype.destroy=function(){var t=this.context.gl,e=this.colorAttachment.get();e&&t.deleteTexture(e);var r=this.depthAttachment.get();r&&t.deleteRenderbuffer(r),t.deleteFramebuffer(this.framebuffer)},e.exports=o},{"./value":71}],69:[function(t,e,r){var n=function(t,e,r){this.context=t;var n=t.gl;this.buffer=n.createBuffer(),this.dynamicDraw=Boolean(r),this.unbindVAO(),t.bindElementBuffer.set(this.buffer),n.bufferData(n.ELEMENT_ARRAY_BUFFER,e.arrayBuffer,this.dynamicDraw?n.DYNAMIC_DRAW:n.STATIC_DRAW),this.dynamicDraw||delete e.arrayBuffer};n.prototype.unbindVAO=function(){this.context.extVertexArrayObject&&this.context.bindVertexArrayOES.set(null)},n.prototype.bind=function(){this.context.bindElementBuffer.set(this.buffer)},n.prototype.updateData=function(t){var e=this.context.gl;this.unbindVAO(),this.bind(),e.bufferSubData(e.ELEMENT_ARRAY_BUFFER,0,t.arrayBuffer)},n.prototype.destroy=function(){var t=this.context.gl;this.buffer&&(t.deleteBuffer(this.buffer),delete this.buffer)},e.exports=n},{}],70:[function(t,e,r){var n=function(t,e,r,n,i,a){this.test=t,this.ref=e,this.mask=r,this.fail=n,this.depthFail=i,this.pass=a};n.disabled=new n({func:519,mask:0},0,0,7680,7680,7680),e.exports=n},{}],71:[function(t,e,r){var n=t("../style-spec/util/color"),i=t("../util/util"),a=function(t){this.context=t,this.current=n.transparent};a.prototype.get=function(){return this.current},a.prototype.set=function(t){var e=this.current;t.r===e.r&&t.g===e.g&&t.b===e.b&&t.a===e.a||(this.context.gl.clearColor(t.r,t.g,t.b,t.a),this.current=t)};var o=function(t){this.context=t,this.current=1};o.prototype.get=function(){return this.current},o.prototype.set=function(t){this.current!==t&&(this.context.gl.clearDepth(t),this.current=t)};var s=function(t){this.context=t,this.current=0};s.prototype.get=function(){return this.current},s.prototype.set=function(t){this.current!==t&&(this.context.gl.clearStencil(t),this.current=t)};var l=function(t){this.context=t,this.current=[!0,!0,!0,!0]};l.prototype.get=function(){return this.current},l.prototype.set=function(t){var e=this.current;t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2]&&t[3]===e[3]||(this.context.gl.colorMask(t[0],t[1],t[2],t[3]),this.current=t)};var u=function(t){this.context=t,this.current=!0};u.prototype.get=function(){return this.current},u.prototype.set=function(t){this.current!==t&&(this.context.gl.depthMask(t),this.current=t)};var c=function(t){this.context=t,this.current=255};c.prototype.get=function(){return this.current},c.prototype.set=function(t){this.current!==t&&(this.context.gl.stencilMask(t),this.current=t)};var h=function(t){this.context=t,this.current={func:t.gl.ALWAYS,ref:0,mask:255}};h.prototype.get=function(){return this.current},h.prototype.set=function(t){var e=this.current;t.func===e.func&&t.ref===e.ref&&t.mask===e.mask||(this.context.gl.stencilFunc(t.func,t.ref,t.mask),this.current=t)};var f=function(t){this.context=t;var e=this.context.gl;this.current=[e.KEEP,e.KEEP,e.KEEP]};f.prototype.get=function(){return this.current},f.prototype.set=function(t){var e=this.current;t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2]||(this.context.gl.stencilOp(t[0],t[1],t[2]),this.current=t)};var p=function(t){this.context=t,this.current=!1};p.prototype.get=function(){return this.current},p.prototype.set=function(t){if(this.current!==t){var e=this.context.gl;t?e.enable(e.STENCIL_TEST):e.disable(e.STENCIL_TEST),this.current=t}};var d=function(t){this.context=t,this.current=[0,1]};d.prototype.get=function(){return this.current},d.prototype.set=function(t){var e=this.current;t[0]===e[0]&&t[1]===e[1]||(this.context.gl.depthRange(t[0],t[1]),this.current=t)};var g=function(t){this.context=t,this.current=!1};g.prototype.get=function(){return this.current},g.prototype.set=function(t){if(this.current!==t){var e=this.context.gl;t?e.enable(e.DEPTH_TEST):e.disable(e.DEPTH_TEST),this.current=t}};var v=function(t){this.context=t,this.current=t.gl.LESS};v.prototype.get=function(){return this.current},v.prototype.set=function(t){this.current!==t&&(this.context.gl.depthFunc(t),this.current=t)};var m=function(t){this.context=t,this.current=!1};m.prototype.get=function(){return this.current},m.prototype.set=function(t){if(this.current!==t){var e=this.context.gl;t?e.enable(e.BLEND):e.disable(e.BLEND),this.current=t}};var y=function(t){this.context=t;var e=this.context.gl;this.current=[e.ONE,e.ZERO]};y.prototype.get=function(){return this.current},y.prototype.set=function(t){var e=this.current;t[0]===e[0]&&t[1]===e[1]||(this.context.gl.blendFunc(t[0],t[1]),this.current=t)};var x=function(t){this.context=t,this.current=n.transparent};x.prototype.get=function(){return this.current},x.prototype.set=function(t){var e=this.current;t.r===e.r&&t.g===e.g&&t.b===e.b&&t.a===e.a||(this.context.gl.blendColor(t.r,t.g,t.b,t.a),this.current=t)};var b=function(t){this.context=t,this.current=null};b.prototype.get=function(){return this.current},b.prototype.set=function(t){this.current!==t&&(this.context.gl.useProgram(t),this.current=t)};var _=function(t){this.context=t,this.current=1};_.prototype.get=function(){return this.current},_.prototype.set=function(t){var e=this.context.lineWidthRange,r=i.clamp(t,e[0],e[1]);this.current!==r&&(this.context.gl.lineWidth(r),this.current=t)};var w=function(t){this.context=t,this.current=t.gl.TEXTURE0};w.prototype.get=function(){return this.current},w.prototype.set=function(t){this.current!==t&&(this.context.gl.activeTexture(t),this.current=t)};var M=function(t){this.context=t;var e=this.context.gl;this.current=[0,0,e.drawingBufferWidth,e.drawingBufferHeight]};M.prototype.get=function(){return this.current},M.prototype.set=function(t){var e=this.current;t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2]&&t[3]===e[3]||(this.context.gl.viewport(t[0],t[1],t[2],t[3]),this.current=t)};var A=function(t){this.context=t,this.current=null};A.prototype.get=function(){return this.current},A.prototype.set=function(t){if(this.current!==t){var e=this.context.gl;e.bindFramebuffer(e.FRAMEBUFFER,t),this.current=t}};var k=function(t){this.context=t,this.current=null};k.prototype.get=function(){return this.current},k.prototype.set=function(t){if(this.current!==t){var e=this.context.gl;e.bindRenderbuffer(e.RENDERBUFFER,t),this.current=t}};var T=function(t){this.context=t,this.current=null};T.prototype.get=function(){return this.current},T.prototype.set=function(t){if(this.current!==t){var e=this.context.gl;e.bindTexture(e.TEXTURE_2D,t),this.current=t}};var S=function(t){this.context=t,this.current=null};S.prototype.get=function(){return this.current},S.prototype.set=function(t){if(this.current!==t){var e=this.context.gl;e.bindBuffer(e.ARRAY_BUFFER,t),this.current=t}};var E=function(t){this.context=t,this.current=null};E.prototype.get=function(){return this.current},E.prototype.set=function(t){var e=this.context.gl;e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t),this.current=t};var C=function(t){this.context=t,this.current=null};C.prototype.get=function(){return this.current},C.prototype.set=function(t){this.current!==t&&this.context.extVertexArrayObject&&(this.context.extVertexArrayObject.bindVertexArrayOES(t),this.current=t)};var L=function(t){this.context=t,this.current=4};L.prototype.get=function(){return this.current},L.prototype.set=function(t){if(this.current!==t){var e=this.context.gl;e.pixelStorei(e.UNPACK_ALIGNMENT,t),this.current=t}};var z=function(t){this.context=t,this.current=!1};z.prototype.get=function(){return this.current},z.prototype.set=function(t){if(this.current!==t){var e=this.context.gl;e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,t),this.current=t}};var P=function(t,e){this.context=t,this.current=null,this.parent=e};P.prototype.get=function(){return this.current};var I=function(t){function e(e,r){t.call(this,e,r),this.dirty=!1}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.set=function(t){if(this.dirty||this.current!==t){var e=this.context.gl;this.context.bindFramebuffer.set(this.parent),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,t,0),this.current=t,this.dirty=!1}},e.prototype.setDirty=function(){this.dirty=!0},e}(P),D=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.set=function(t){if(this.current!==t){var e=this.context.gl;this.context.bindFramebuffer.set(this.parent),e.framebufferRenderbuffer(e.FRAMEBUFFER,e.DEPTH_ATTACHMENT,e.RENDERBUFFER,t),this.current=t}},e}(P);e.exports={ClearColor:a,ClearDepth:o,ClearStencil:s,ColorMask:l,DepthMask:u,StencilMask:c,StencilFunc:h,StencilOp:f,StencilTest:p,DepthRange:d,DepthTest:g,DepthFunc:v,Blend:m,BlendFunc:y,BlendColor:x,Program:b,LineWidth:_,ActiveTextureUnit:w,Viewport:M,BindFramebuffer:A,BindRenderbuffer:k,BindTexture:T,BindVertexBuffer:S,BindElementBuffer:E,BindVertexArrayOES:C,PixelStoreUnpack:L,PixelStoreUnpackPremultiplyAlpha:z,ColorAttachment:I,DepthAttachment:D}},{"../style-spec/util/color":153,"../util/util":275}],72:[function(t,e,r){var n={Int8:"BYTE",Uint8:"UNSIGNED_BYTE",Int16:"SHORT",Uint16:"UNSIGNED_SHORT",Int32:"INT",Uint32:"UNSIGNED_INT",Float32:"FLOAT"},i=function(t,e,r,n){this.length=e.length,this.attributes=r,this.itemSize=e.bytesPerElement,this.dynamicDraw=n,this.context=t;var i=t.gl;this.buffer=i.createBuffer(),t.bindVertexBuffer.set(this.buffer),i.bufferData(i.ARRAY_BUFFER,e.arrayBuffer,this.dynamicDraw?i.DYNAMIC_DRAW:i.STATIC_DRAW),this.dynamicDraw||delete e.arrayBuffer};i.prototype.bind=function(){this.context.bindVertexBuffer.set(this.buffer)},i.prototype.updateData=function(t){var e=this.context.gl;this.bind(),e.bufferSubData(e.ARRAY_BUFFER,0,t.arrayBuffer)},i.prototype.enableAttributes=function(t,e){for(var r=0;r":[24,[4,18,20,9,4,0]],"?":[18,[3,16,3,17,4,19,5,20,7,21,11,21,13,20,14,19,15,17,15,15,14,13,13,12,9,10,9,7,-1,-1,9,2,8,1,9,0,10,1,9,2]],"@":[27,[18,13,17,15,15,16,12,16,10,15,9,14,8,11,8,8,9,6,11,5,14,5,16,6,17,8,-1,-1,12,16,10,14,9,11,9,8,10,6,11,5,-1,-1,18,16,17,8,17,6,19,5,21,5,23,7,24,10,24,12,23,15,22,17,20,19,18,20,15,21,12,21,9,20,7,19,5,17,4,15,3,12,3,9,4,6,5,4,7,2,9,1,12,0,15,0,18,1,20,2,21,3,-1,-1,19,16,18,8,18,6,19,5]],A:[18,[9,21,1,0,-1,-1,9,21,17,0,-1,-1,4,7,14,7]],B:[21,[4,21,4,0,-1,-1,4,21,13,21,16,20,17,19,18,17,18,15,17,13,16,12,13,11,-1,-1,4,11,13,11,16,10,17,9,18,7,18,4,17,2,16,1,13,0,4,0]],C:[21,[18,16,17,18,15,20,13,21,9,21,7,20,5,18,4,16,3,13,3,8,4,5,5,3,7,1,9,0,13,0,15,1,17,3,18,5]],D:[21,[4,21,4,0,-1,-1,4,21,11,21,14,20,16,18,17,16,18,13,18,8,17,5,16,3,14,1,11,0,4,0]],E:[19,[4,21,4,0,-1,-1,4,21,17,21,-1,-1,4,11,12,11,-1,-1,4,0,17,0]],F:[18,[4,21,4,0,-1,-1,4,21,17,21,-1,-1,4,11,12,11]],G:[21,[18,16,17,18,15,20,13,21,9,21,7,20,5,18,4,16,3,13,3,8,4,5,5,3,7,1,9,0,13,0,15,1,17,3,18,5,18,8,-1,-1,13,8,18,8]],H:[22,[4,21,4,0,-1,-1,18,21,18,0,-1,-1,4,11,18,11]],I:[8,[4,21,4,0]],J:[16,[12,21,12,5,11,2,10,1,8,0,6,0,4,1,3,2,2,5,2,7]],K:[21,[4,21,4,0,-1,-1,18,21,4,7,-1,-1,9,12,18,0]],L:[17,[4,21,4,0,-1,-1,4,0,16,0]],M:[24,[4,21,4,0,-1,-1,4,21,12,0,-1,-1,20,21,12,0,-1,-1,20,21,20,0]],N:[22,[4,21,4,0,-1,-1,4,21,18,0,-1,-1,18,21,18,0]],O:[22,[9,21,7,20,5,18,4,16,3,13,3,8,4,5,5,3,7,1,9,0,13,0,15,1,17,3,18,5,19,8,19,13,18,16,17,18,15,20,13,21,9,21]],P:[21,[4,21,4,0,-1,-1,4,21,13,21,16,20,17,19,18,17,18,14,17,12,16,11,13,10,4,10]],Q:[22,[9,21,7,20,5,18,4,16,3,13,3,8,4,5,5,3,7,1,9,0,13,0,15,1,17,3,18,5,19,8,19,13,18,16,17,18,15,20,13,21,9,21,-1,-1,12,4,18,-2]],R:[21,[4,21,4,0,-1,-1,4,21,13,21,16,20,17,19,18,17,18,15,17,13,16,12,13,11,4,11,-1,-1,11,11,18,0]],S:[20,[17,18,15,20,12,21,8,21,5,20,3,18,3,16,4,14,5,13,7,12,13,10,15,9,16,8,17,6,17,3,15,1,12,0,8,0,5,1,3,3]],T:[16,[8,21,8,0,-1,-1,1,21,15,21]],U:[22,[4,21,4,6,5,3,7,1,10,0,12,0,15,1,17,3,18,6,18,21]],V:[18,[1,21,9,0,-1,-1,17,21,9,0]],W:[24,[2,21,7,0,-1,-1,12,21,7,0,-1,-1,12,21,17,0,-1,-1,22,21,17,0]],X:[20,[3,21,17,0,-1,-1,17,21,3,0]],Y:[18,[1,21,9,11,9,0,-1,-1,17,21,9,11]],Z:[20,[17,21,3,0,-1,-1,3,21,17,21,-1,-1,3,0,17,0]],"[":[14,[4,25,4,-7,-1,-1,5,25,5,-7,-1,-1,4,25,11,25,-1,-1,4,-7,11,-7]],"\\":[14,[0,21,14,-3]],"]":[14,[9,25,9,-7,-1,-1,10,25,10,-7,-1,-1,3,25,10,25,-1,-1,3,-7,10,-7]],"^":[16,[6,15,8,18,10,15,-1,-1,3,12,8,17,13,12,-1,-1,8,17,8,0]],_:[16,[0,-2,16,-2]],"`":[10,[6,21,5,20,4,18,4,16,5,15,6,16,5,17]],a:[19,[15,14,15,0,-1,-1,15,11,13,13,11,14,8,14,6,13,4,11,3,8,3,6,4,3,6,1,8,0,11,0,13,1,15,3]],b:[19,[4,21,4,0,-1,-1,4,11,6,13,8,14,11,14,13,13,15,11,16,8,16,6,15,3,13,1,11,0,8,0,6,1,4,3]],c:[18,[15,11,13,13,11,14,8,14,6,13,4,11,3,8,3,6,4,3,6,1,8,0,11,0,13,1,15,3]],d:[19,[15,21,15,0,-1,-1,15,11,13,13,11,14,8,14,6,13,4,11,3,8,3,6,4,3,6,1,8,0,11,0,13,1,15,3]],e:[18,[3,8,15,8,15,10,14,12,13,13,11,14,8,14,6,13,4,11,3,8,3,6,4,3,6,1,8,0,11,0,13,1,15,3]],f:[12,[10,21,8,21,6,20,5,17,5,0,-1,-1,2,14,9,14]],g:[19,[15,14,15,-2,14,-5,13,-6,11,-7,8,-7,6,-6,-1,-1,15,11,13,13,11,14,8,14,6,13,4,11,3,8,3,6,4,3,6,1,8,0,11,0,13,1,15,3]],h:[19,[4,21,4,0,-1,-1,4,10,7,13,9,14,12,14,14,13,15,10,15,0]],i:[8,[3,21,4,20,5,21,4,22,3,21,-1,-1,4,14,4,0]],j:[10,[5,21,6,20,7,21,6,22,5,21,-1,-1,6,14,6,-3,5,-6,3,-7,1,-7]],k:[17,[4,21,4,0,-1,-1,14,14,4,4,-1,-1,8,8,15,0]],l:[8,[4,21,4,0]],m:[30,[4,14,4,0,-1,-1,4,10,7,13,9,14,12,14,14,13,15,10,15,0,-1,-1,15,10,18,13,20,14,23,14,25,13,26,10,26,0]],n:[19,[4,14,4,0,-1,-1,4,10,7,13,9,14,12,14,14,13,15,10,15,0]],o:[19,[8,14,6,13,4,11,3,8,3,6,4,3,6,1,8,0,11,0,13,1,15,3,16,6,16,8,15,11,13,13,11,14,8,14]],p:[19,[4,14,4,-7,-1,-1,4,11,6,13,8,14,11,14,13,13,15,11,16,8,16,6,15,3,13,1,11,0,8,0,6,1,4,3]],q:[19,[15,14,15,-7,-1,-1,15,11,13,13,11,14,8,14,6,13,4,11,3,8,3,6,4,3,6,1,8,0,11,0,13,1,15,3]],r:[13,[4,14,4,0,-1,-1,4,8,5,11,7,13,9,14,12,14]],s:[17,[14,11,13,13,10,14,7,14,4,13,3,11,4,9,6,8,11,7,13,6,14,4,14,3,13,1,10,0,7,0,4,1,3,3]],t:[12,[5,21,5,4,6,1,8,0,10,0,-1,-1,2,14,9,14]],u:[19,[4,14,4,4,5,1,7,0,10,0,12,1,15,4,-1,-1,15,14,15,0]],v:[16,[2,14,8,0,-1,-1,14,14,8,0]],w:[22,[3,14,7,0,-1,-1,11,14,7,0,-1,-1,11,14,15,0,-1,-1,19,14,15,0]],x:[17,[3,14,14,0,-1,-1,14,14,3,0]],y:[16,[2,14,8,0,-1,-1,14,14,8,0,6,-4,4,-6,2,-7,1,-7]],z:[17,[14,14,3,0,-1,-1,3,14,14,14,-1,-1,3,0,14,0]],"{":[14,[9,25,7,24,6,23,5,21,5,19,6,17,7,16,8,14,8,12,6,10,-1,-1,7,24,6,22,6,20,7,18,8,17,9,15,9,13,8,11,4,9,8,7,9,5,9,3,8,1,7,0,6,-2,6,-4,7,-6,-1,-1,6,8,8,6,8,4,7,2,6,1,5,-1,5,-3,6,-5,7,-6,9,-7]],"|":[8,[4,25,4,-7]],"}":[14,[5,25,7,24,8,23,9,21,9,19,8,17,7,16,6,14,6,12,8,10,-1,-1,7,24,8,22,8,20,7,18,6,17,5,15,5,13,6,11,10,9,6,7,5,5,5,3,6,1,7,0,8,-2,8,-4,7,-6,-1,-1,8,8,6,6,6,4,7,2,8,1,9,-1,9,-3,8,-5,7,-6,5,-7]],"~":[24,[3,6,3,8,4,11,6,12,8,12,10,11,14,8,16,7,18,7,20,8,21,10,-1,-1,3,8,4,10,6,11,8,11,10,10,14,7,16,6,18,6,20,7,21,10,21,12]]}},{"../data/array_types":39,"../data/extent":53,"../data/pos_attributes":57,"../gl/depth_mode":67,"../gl/stencil_mode":70,"../util/browser":252,"./vertex_array_object":95,"@mapbox/gl-matrix":2}],78:[function(t,e,r){function n(t,e,r,n,i){if(!s.isPatternMissing(r.paint.get("fill-pattern"),t))for(var a=!0,o=0,l=n;o0){var l=o.now(),u=(l-t.timeAdded)/s,c=e?(l-e.timeAdded)/s:-1,h=r.getSource(),f=a.coveringZoomLevel({tileSize:h.tileSize,roundZoom:h.roundZoom}),p=!e||Math.abs(e.tileID.overscaledZ-f)>Math.abs(t.tileID.overscaledZ-f),d=p&&t.refreshedUponExpiration?1:i.clamp(p?u:1-c,0,1);return t.refreshedUponExpiration&&u>=1&&(t.refreshedUponExpiration=!1),e?{opacity:1,mix:1-d}:{opacity:d,mix:0}}return{opacity:1,mix:0}}var i=t("../util/util"),a=t("../source/image_source"),o=t("../util/browser"),s=t("../gl/stencil_mode"),l=t("../gl/depth_mode");e.exports=function(t,e,r,i){if("translucent"===t.renderPass&&0!==r.paint.get("raster-opacity")){var o=t.context,u=o.gl,c=e.getSource(),h=t.useProgram("raster");o.setStencilMode(s.disabled),o.setColorMode(t.colorModeForRenderPass()),u.uniform1f(h.uniforms.u_brightness_low,r.paint.get("raster-brightness-min")),u.uniform1f(h.uniforms.u_brightness_high,r.paint.get("raster-brightness-max")),u.uniform1f(h.uniforms.u_saturation_factor,function(t){return t>0?1-1/(1.001-t):-t}(r.paint.get("raster-saturation"))),u.uniform1f(h.uniforms.u_contrast_factor,function(t){return t>0?1/(1-t):1+t}(r.paint.get("raster-contrast"))),u.uniform3fv(h.uniforms.u_spin_weights,function(t){t*=Math.PI/180;var e=Math.sin(t),r=Math.cos(t);return[(2*r+1)/3,(-Math.sqrt(3)*e-r+1)/3,(Math.sqrt(3)*e-r+1)/3]}(r.paint.get("raster-hue-rotate"))),u.uniform1f(h.uniforms.u_buffer_scale,1),u.uniform1i(h.uniforms.u_image0,0),u.uniform1i(h.uniforms.u_image1,1);for(var f=i.length&&i[0].overscaledZ,p=0,d=i;p65535)e(new Error("glyphs > 65535 not supported"));else{var u=o.requests[l];u||(u=o.requests[l]=[],n(i,l,r.url,r.requestTransform,function(t,e){if(e)for(var r in e)o.glyphs[+r]=e[+r];for(var n=0,i=u;nthis.height)return n.warnOnce("LineAtlas out of space"),null;for(var o=0,s=0;s=0;this.currentLayer--){var v=r.style._layers[o[r.currentLayer]];v.source!==(d&&d.id)&&(g=[],(d=r.style.sourceCaches[v.source])&&(r.clearStencil(),g=d.getVisibleCoordinates(),d.getSource().isTileClipped&&r._renderTileClippingMasks(g))),r.renderLayer(r,d,v,g)}this.renderPass="translucent";var m,y=[];for(this.currentLayer=0,this.currentLayer;this.currentLayer0?e.pop():null},T.prototype._createProgramCached=function(t,e){this.cache=this.cache||{};var r=""+t+(e.cacheKey||"")+(this._showOverdrawInspector?"/overdraw":"");return this.cache[r]||(this.cache[r]=new y(this.context,m[t],e,this._showOverdrawInspector)),this.cache[r]},T.prototype.useProgram=function(t,e){var r=this._createProgramCached(t,e||this.emptyProgramConfiguration);return this.context.program.set(r.program),r},e.exports=T},{"../data/array_types":39,"../data/extent":53,"../data/pos_attributes":57,"../data/program_configuration":58,"../data/raster_bounds_attributes":59,"../gl/color_mode":65,"../gl/context":66,"../gl/depth_mode":67,"../gl/stencil_mode":70,"../shaders":97,"../source/pixels_to_tile_units":104,"../source/source_cache":111,"../style-spec/util/color":153,"../symbol/cross_tile_symbol_index":218,"../util/browser":252,"../util/util":275,"./draw_background":74,"./draw_circle":75,"./draw_debug":77,"./draw_fill":78,"./draw_fill_extrusion":79,"./draw_heatmap":80,"./draw_hillshade":81,"./draw_line":82,"./draw_raster":83,"./draw_symbol":84,"./program":92,"./texture":93,"./tile_mask":94,"./vertex_array_object":95,"@mapbox/gl-matrix":2}],91:[function(t,e,r){var n=t("../source/pixels_to_tile_units");r.isPatternMissing=function(t,e){if(!t)return!1;var r=e.imageManager.getPattern(t.from),n=e.imageManager.getPattern(t.to);return!r||!n},r.prepare=function(t,e,r){var n=e.context,i=n.gl,a=e.imageManager.getPattern(t.from),o=e.imageManager.getPattern(t.to);i.uniform1i(r.uniforms.u_image,0),i.uniform2fv(r.uniforms.u_pattern_tl_a,a.tl),i.uniform2fv(r.uniforms.u_pattern_br_a,a.br),i.uniform2fv(r.uniforms.u_pattern_tl_b,o.tl),i.uniform2fv(r.uniforms.u_pattern_br_b,o.br);var s=e.imageManager.getPixelSize(),l=s.width,u=s.height;i.uniform2fv(r.uniforms.u_texsize,[l,u]),i.uniform1f(r.uniforms.u_mix,t.t),i.uniform2fv(r.uniforms.u_pattern_size_a,a.displaySize),i.uniform2fv(r.uniforms.u_pattern_size_b,o.displaySize),i.uniform1f(r.uniforms.u_scale_a,t.fromScale),i.uniform1f(r.uniforms.u_scale_b,t.toScale),n.activeTexture.set(i.TEXTURE0),e.imageManager.bind(e.context)},r.setTile=function(t,e,r){var i=e.context.gl;i.uniform1f(r.uniforms.u_tile_units_to_pixels,1/n(t,1,e.transform.tileZoom));var a=Math.pow(2,t.tileID.overscaledZ),o=t.tileSize*Math.pow(2,e.transform.tileZoom)/a,s=o*(t.tileID.canonical.x+t.tileID.wrap*a),l=o*t.tileID.canonical.y;i.uniform2f(r.uniforms.u_pixel_coord_upper,s>>16,l>>16),i.uniform2f(r.uniforms.u_pixel_coord_lower,65535&s,65535&l)}},{"../source/pixels_to_tile_units":104}],92:[function(t,e,r){var n=t("../util/browser"),i=t("../shaders"),a=(t("../data/program_configuration").ProgramConfiguration,t("./vertex_array_object")),o=(t("../gl/context"),function(t,e,r,a){var o=this,s=t.gl;this.program=s.createProgram();var l=r.defines().concat("#define DEVICE_PIXEL_RATIO "+n.devicePixelRatio.toFixed(1));a&&l.push("#define OVERDRAW_INSPECTOR;");var u=l.concat(i.prelude.fragmentSource,e.fragmentSource).join("\n"),c=l.concat(i.prelude.vertexSource,e.vertexSource).join("\n"),h=s.createShader(s.FRAGMENT_SHADER);s.shaderSource(h,u),s.compileShader(h),s.attachShader(this.program,h);var f=s.createShader(s.VERTEX_SHADER);s.shaderSource(f,c),s.compileShader(f),s.attachShader(this.program,f);for(var p=r.layoutAttributes||[],d=0;d 0.5) {\n gl_FragColor = vec4(0.0, 0.0, 1.0, 0.5) * alpha;\n }\n\n if (v_notUsed > 0.5) {\n // This box not used, fade it out\n gl_FragColor *= .1;\n }\n}",vertexSource:"attribute vec2 a_pos;\nattribute vec2 a_anchor_pos;\nattribute vec2 a_extrude;\nattribute vec2 a_placed;\n\nuniform mat4 u_matrix;\nuniform vec2 u_extrude_scale;\nuniform float u_camera_to_center_distance;\n\nvarying float v_placed;\nvarying float v_notUsed;\n\nvoid main() {\n vec4 projectedPoint = u_matrix * vec4(a_anchor_pos, 0, 1);\n highp float camera_to_anchor_distance = projectedPoint.w;\n highp float collision_perspective_ratio = 0.5 + 0.5 * (u_camera_to_center_distance / camera_to_anchor_distance);\n\n gl_Position = u_matrix * vec4(a_pos, 0.0, 1.0);\n gl_Position.xy += a_extrude * u_extrude_scale * gl_Position.w * collision_perspective_ratio;\n\n v_placed = a_placed.x;\n v_notUsed = a_placed.y;\n}\n"},collisionCircle:{fragmentSource:"\nvarying float v_placed;\nvarying float v_notUsed;\nvarying float v_radius;\nvarying vec2 v_extrude;\nvarying vec2 v_extrude_scale;\n\nvoid main() {\n float alpha = 0.5;\n\n // Red = collision, hide label\n vec4 color = vec4(1.0, 0.0, 0.0, 1.0) * alpha;\n\n // Blue = no collision, label is showing\n if (v_placed > 0.5) {\n color = vec4(0.0, 0.0, 1.0, 0.5) * alpha;\n }\n\n if (v_notUsed > 0.5) {\n // This box not used, fade it out\n color *= .2;\n }\n\n float extrude_scale_length = length(v_extrude_scale);\n float extrude_length = length(v_extrude) * extrude_scale_length;\n float stroke_width = 15.0 * extrude_scale_length;\n float radius = v_radius * extrude_scale_length;\n\n float distance_to_edge = abs(extrude_length - radius);\n float opacity_t = smoothstep(-stroke_width, 0.0, -distance_to_edge);\n\n gl_FragColor = opacity_t * color;\n}\n",vertexSource:"attribute vec2 a_pos;\nattribute vec2 a_anchor_pos;\nattribute vec2 a_extrude;\nattribute vec2 a_placed;\n\nuniform mat4 u_matrix;\nuniform vec2 u_extrude_scale;\nuniform float u_camera_to_center_distance;\n\nvarying float v_placed;\nvarying float v_notUsed;\nvarying float v_radius;\n\nvarying vec2 v_extrude;\nvarying vec2 v_extrude_scale;\n\nvoid main() {\n vec4 projectedPoint = u_matrix * vec4(a_anchor_pos, 0, 1);\n highp float camera_to_anchor_distance = projectedPoint.w;\n highp float collision_perspective_ratio = 0.5 + 0.5 * (u_camera_to_center_distance / camera_to_anchor_distance);\n\n gl_Position = u_matrix * vec4(a_pos, 0.0, 1.0);\n\n highp float padding_factor = 1.2; // Pad the vertices slightly to make room for anti-alias blur\n gl_Position.xy += a_extrude * u_extrude_scale * padding_factor * gl_Position.w * collision_perspective_ratio;\n\n v_placed = a_placed.x;\n v_notUsed = a_placed.y;\n v_radius = abs(a_extrude.y); // We don't pitch the circles, so both units of the extrusion vector are equal in magnitude to the radius\n\n v_extrude = a_extrude * padding_factor;\n v_extrude_scale = u_extrude_scale * u_camera_to_center_distance * collision_perspective_ratio;\n}\n"},debug:{fragmentSource:"uniform highp vec4 u_color;\n\nvoid main() {\n gl_FragColor = u_color;\n}\n",vertexSource:"attribute vec2 a_pos;\n\nuniform mat4 u_matrix;\n\nvoid main() {\n gl_Position = u_matrix * vec4(a_pos, 0, 1);\n}\n"},fill:{fragmentSource:"#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float opacity\n\nvoid main() {\n #pragma mapbox: initialize highp vec4 color\n #pragma mapbox: initialize lowp float opacity\n\n gl_FragColor = color * opacity;\n\n#ifdef OVERDRAW_INSPECTOR\n gl_FragColor = vec4(1.0);\n#endif\n}\n",vertexSource:"attribute vec2 a_pos;\n\nuniform mat4 u_matrix;\n\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float opacity\n\nvoid main() {\n #pragma mapbox: initialize highp vec4 color\n #pragma mapbox: initialize lowp float opacity\n\n gl_Position = u_matrix * vec4(a_pos, 0, 1);\n}\n"},fillOutline:{fragmentSource:"#pragma mapbox: define highp vec4 outline_color\n#pragma mapbox: define lowp float opacity\n\nvarying vec2 v_pos;\n\nvoid main() {\n #pragma mapbox: initialize highp vec4 outline_color\n #pragma mapbox: initialize lowp float opacity\n\n float dist = length(v_pos - gl_FragCoord.xy);\n float alpha = 1.0 - smoothstep(0.0, 1.0, dist);\n gl_FragColor = outline_color * (alpha * opacity);\n\n#ifdef OVERDRAW_INSPECTOR\n gl_FragColor = vec4(1.0);\n#endif\n}\n",vertexSource:"attribute vec2 a_pos;\n\nuniform mat4 u_matrix;\nuniform vec2 u_world;\n\nvarying vec2 v_pos;\n\n#pragma mapbox: define highp vec4 outline_color\n#pragma mapbox: define lowp float opacity\n\nvoid main() {\n #pragma mapbox: initialize highp vec4 outline_color\n #pragma mapbox: initialize lowp float opacity\n\n gl_Position = u_matrix * vec4(a_pos, 0, 1);\n v_pos = (gl_Position.xy / gl_Position.w + 1.0) / 2.0 * u_world;\n}\n"},fillOutlinePattern:{fragmentSource:"uniform vec2 u_pattern_tl_a;\nuniform vec2 u_pattern_br_a;\nuniform vec2 u_pattern_tl_b;\nuniform vec2 u_pattern_br_b;\nuniform vec2 u_texsize;\nuniform float u_mix;\n\nuniform sampler2D u_image;\n\nvarying vec2 v_pos_a;\nvarying vec2 v_pos_b;\nvarying vec2 v_pos;\n\n#pragma mapbox: define lowp float opacity\n\nvoid main() {\n #pragma mapbox: initialize lowp float opacity\n\n vec2 imagecoord = mod(v_pos_a, 1.0);\n vec2 pos = mix(u_pattern_tl_a / u_texsize, u_pattern_br_a / u_texsize, imagecoord);\n vec4 color1 = texture2D(u_image, pos);\n\n vec2 imagecoord_b = mod(v_pos_b, 1.0);\n vec2 pos2 = mix(u_pattern_tl_b / u_texsize, u_pattern_br_b / u_texsize, imagecoord_b);\n vec4 color2 = texture2D(u_image, pos2);\n\n // find distance to outline for alpha interpolation\n\n float dist = length(v_pos - gl_FragCoord.xy);\n float alpha = 1.0 - smoothstep(0.0, 1.0, dist);\n\n\n gl_FragColor = mix(color1, color2, u_mix) * alpha * opacity;\n\n#ifdef OVERDRAW_INSPECTOR\n gl_FragColor = vec4(1.0);\n#endif\n}\n",vertexSource:"uniform mat4 u_matrix;\nuniform vec2 u_world;\nuniform vec2 u_pattern_size_a;\nuniform vec2 u_pattern_size_b;\nuniform vec2 u_pixel_coord_upper;\nuniform vec2 u_pixel_coord_lower;\nuniform float u_scale_a;\nuniform float u_scale_b;\nuniform float u_tile_units_to_pixels;\n\nattribute vec2 a_pos;\n\nvarying vec2 v_pos_a;\nvarying vec2 v_pos_b;\nvarying vec2 v_pos;\n\n#pragma mapbox: define lowp float opacity\n\nvoid main() {\n #pragma mapbox: initialize lowp float opacity\n\n gl_Position = u_matrix * vec4(a_pos, 0, 1);\n\n v_pos_a = get_pattern_pos(u_pixel_coord_upper, u_pixel_coord_lower, u_scale_a * u_pattern_size_a, u_tile_units_to_pixels, a_pos);\n v_pos_b = get_pattern_pos(u_pixel_coord_upper, u_pixel_coord_lower, u_scale_b * u_pattern_size_b, u_tile_units_to_pixels, a_pos);\n\n v_pos = (gl_Position.xy / gl_Position.w + 1.0) / 2.0 * u_world;\n}\n"},fillPattern:{fragmentSource:"uniform vec2 u_pattern_tl_a;\nuniform vec2 u_pattern_br_a;\nuniform vec2 u_pattern_tl_b;\nuniform vec2 u_pattern_br_b;\nuniform vec2 u_texsize;\nuniform float u_mix;\n\nuniform sampler2D u_image;\n\nvarying vec2 v_pos_a;\nvarying vec2 v_pos_b;\n\n#pragma mapbox: define lowp float opacity\n\nvoid main() {\n #pragma mapbox: initialize lowp float opacity\n\n vec2 imagecoord = mod(v_pos_a, 1.0);\n vec2 pos = mix(u_pattern_tl_a / u_texsize, u_pattern_br_a / u_texsize, imagecoord);\n vec4 color1 = texture2D(u_image, pos);\n\n vec2 imagecoord_b = mod(v_pos_b, 1.0);\n vec2 pos2 = mix(u_pattern_tl_b / u_texsize, u_pattern_br_b / u_texsize, imagecoord_b);\n vec4 color2 = texture2D(u_image, pos2);\n\n gl_FragColor = mix(color1, color2, u_mix) * opacity;\n\n#ifdef OVERDRAW_INSPECTOR\n gl_FragColor = vec4(1.0);\n#endif\n}\n",vertexSource:"uniform mat4 u_matrix;\nuniform vec2 u_pattern_size_a;\nuniform vec2 u_pattern_size_b;\nuniform vec2 u_pixel_coord_upper;\nuniform vec2 u_pixel_coord_lower;\nuniform float u_scale_a;\nuniform float u_scale_b;\nuniform float u_tile_units_to_pixels;\n\nattribute vec2 a_pos;\n\nvarying vec2 v_pos_a;\nvarying vec2 v_pos_b;\n\n#pragma mapbox: define lowp float opacity\n\nvoid main() {\n #pragma mapbox: initialize lowp float opacity\n\n gl_Position = u_matrix * vec4(a_pos, 0, 1);\n\n v_pos_a = get_pattern_pos(u_pixel_coord_upper, u_pixel_coord_lower, u_scale_a * u_pattern_size_a, u_tile_units_to_pixels, a_pos);\n v_pos_b = get_pattern_pos(u_pixel_coord_upper, u_pixel_coord_lower, u_scale_b * u_pattern_size_b, u_tile_units_to_pixels, a_pos);\n}\n"},fillExtrusion:{fragmentSource:"varying vec4 v_color;\n#pragma mapbox: define lowp float base\n#pragma mapbox: define lowp float height\n#pragma mapbox: define highp vec4 color\n\nvoid main() {\n #pragma mapbox: initialize lowp float base\n #pragma mapbox: initialize lowp float height\n #pragma mapbox: initialize highp vec4 color\n\n gl_FragColor = v_color;\n\n#ifdef OVERDRAW_INSPECTOR\n gl_FragColor = vec4(1.0);\n#endif\n}\n",vertexSource:"uniform mat4 u_matrix;\nuniform vec3 u_lightcolor;\nuniform lowp vec3 u_lightpos;\nuniform lowp float u_lightintensity;\n\nattribute vec2 a_pos;\nattribute vec4 a_normal_ed;\n\nvarying vec4 v_color;\n\n#pragma mapbox: define lowp float base\n#pragma mapbox: define lowp float height\n\n#pragma mapbox: define highp vec4 color\n\nvoid main() {\n #pragma mapbox: initialize lowp float base\n #pragma mapbox: initialize lowp float height\n #pragma mapbox: initialize highp vec4 color\n\n vec3 normal = a_normal_ed.xyz;\n\n base = max(0.0, base);\n height = max(0.0, height);\n\n float t = mod(normal.x, 2.0);\n\n gl_Position = u_matrix * vec4(a_pos, t > 0.0 ? height : base, 1);\n\n // Relative luminance (how dark/bright is the surface color?)\n float colorvalue = color.r * 0.2126 + color.g * 0.7152 + color.b * 0.0722;\n\n v_color = vec4(0.0, 0.0, 0.0, 1.0);\n\n // Add slight ambient lighting so no extrusions are totally black\n vec4 ambientlight = vec4(0.03, 0.03, 0.03, 1.0);\n color += ambientlight;\n\n // Calculate cos(theta), where theta is the angle between surface normal and diffuse light ray\n float directional = clamp(dot(normal / 16384.0, u_lightpos), 0.0, 1.0);\n\n // Adjust directional so that\n // the range of values for highlight/shading is narrower\n // with lower light intensity\n // and with lighter/brighter surface colors\n directional = mix((1.0 - u_lightintensity), max((1.0 - colorvalue + u_lightintensity), 1.0), directional);\n\n // Add gradient along z axis of side surfaces\n if (normal.y != 0.0) {\n directional *= clamp((t + base) * pow(height / 150.0, 0.5), mix(0.7, 0.98, 1.0 - u_lightintensity), 1.0);\n }\n\n // Assign final color based on surface + ambient light color, diffuse light directional, and light color\n // with lower bounds adjusted to hue of light\n // so that shading is tinted with the complementary (opposite) color to the light color\n v_color.r += clamp(color.r * directional * u_lightcolor.r, mix(0.0, 0.3, 1.0 - u_lightcolor.r), 1.0);\n v_color.g += clamp(color.g * directional * u_lightcolor.g, mix(0.0, 0.3, 1.0 - u_lightcolor.g), 1.0);\n v_color.b += clamp(color.b * directional * u_lightcolor.b, mix(0.0, 0.3, 1.0 - u_lightcolor.b), 1.0);\n}\n"},fillExtrusionPattern:{fragmentSource:"uniform vec2 u_pattern_tl_a;\nuniform vec2 u_pattern_br_a;\nuniform vec2 u_pattern_tl_b;\nuniform vec2 u_pattern_br_b;\nuniform vec2 u_texsize;\nuniform float u_mix;\n\nuniform sampler2D u_image;\n\nvarying vec2 v_pos_a;\nvarying vec2 v_pos_b;\nvarying vec4 v_lighting;\n\n#pragma mapbox: define lowp float base\n#pragma mapbox: define lowp float height\n\nvoid main() {\n #pragma mapbox: initialize lowp float base\n #pragma mapbox: initialize lowp float height\n\n vec2 imagecoord = mod(v_pos_a, 1.0);\n vec2 pos = mix(u_pattern_tl_a / u_texsize, u_pattern_br_a / u_texsize, imagecoord);\n vec4 color1 = texture2D(u_image, pos);\n\n vec2 imagecoord_b = mod(v_pos_b, 1.0);\n vec2 pos2 = mix(u_pattern_tl_b / u_texsize, u_pattern_br_b / u_texsize, imagecoord_b);\n vec4 color2 = texture2D(u_image, pos2);\n\n vec4 mixedColor = mix(color1, color2, u_mix);\n\n gl_FragColor = mixedColor * v_lighting;\n\n#ifdef OVERDRAW_INSPECTOR\n gl_FragColor = vec4(1.0);\n#endif\n}\n",vertexSource:"uniform mat4 u_matrix;\nuniform vec2 u_pattern_size_a;\nuniform vec2 u_pattern_size_b;\nuniform vec2 u_pixel_coord_upper;\nuniform vec2 u_pixel_coord_lower;\nuniform float u_scale_a;\nuniform float u_scale_b;\nuniform float u_tile_units_to_pixels;\nuniform float u_height_factor;\n\nuniform vec3 u_lightcolor;\nuniform lowp vec3 u_lightpos;\nuniform lowp float u_lightintensity;\n\nattribute vec2 a_pos;\nattribute vec4 a_normal_ed;\n\nvarying vec2 v_pos_a;\nvarying vec2 v_pos_b;\nvarying vec4 v_lighting;\nvarying float v_directional;\n\n#pragma mapbox: define lowp float base\n#pragma mapbox: define lowp float height\n\nvoid main() {\n #pragma mapbox: initialize lowp float base\n #pragma mapbox: initialize lowp float height\n\n vec3 normal = a_normal_ed.xyz;\n float edgedistance = a_normal_ed.w;\n\n base = max(0.0, base);\n height = max(0.0, height);\n\n float t = mod(normal.x, 2.0);\n float z = t > 0.0 ? height : base;\n\n gl_Position = u_matrix * vec4(a_pos, z, 1);\n\n vec2 pos = normal.x == 1.0 && normal.y == 0.0 && normal.z == 16384.0\n ? a_pos // extrusion top\n : vec2(edgedistance, z * u_height_factor); // extrusion side\n\n v_pos_a = get_pattern_pos(u_pixel_coord_upper, u_pixel_coord_lower, u_scale_a * u_pattern_size_a, u_tile_units_to_pixels, pos);\n v_pos_b = get_pattern_pos(u_pixel_coord_upper, u_pixel_coord_lower, u_scale_b * u_pattern_size_b, u_tile_units_to_pixels, pos);\n\n v_lighting = vec4(0.0, 0.0, 0.0, 1.0);\n float directional = clamp(dot(normal / 16383.0, u_lightpos), 0.0, 1.0);\n directional = mix((1.0 - u_lightintensity), max((0.5 + u_lightintensity), 1.0), directional);\n\n if (normal.y != 0.0) {\n directional *= clamp((t + base) * pow(height / 150.0, 0.5), mix(0.7, 0.98, 1.0 - u_lightintensity), 1.0);\n }\n\n v_lighting.rgb += clamp(directional * u_lightcolor, mix(vec3(0.0), vec3(0.3), 1.0 - u_lightcolor), vec3(1.0));\n}\n"},extrusionTexture:{fragmentSource:"uniform sampler2D u_image;\nuniform float u_opacity;\nvarying vec2 v_pos;\n\nvoid main() {\n gl_FragColor = texture2D(u_image, v_pos) * u_opacity;\n\n#ifdef OVERDRAW_INSPECTOR\n gl_FragColor = vec4(0.0);\n#endif\n}\n",vertexSource:"uniform mat4 u_matrix;\nuniform vec2 u_world;\nattribute vec2 a_pos;\nvarying vec2 v_pos;\n\nvoid main() {\n gl_Position = u_matrix * vec4(a_pos * u_world, 0, 1);\n\n v_pos.x = a_pos.x;\n v_pos.y = 1.0 - a_pos.y;\n}\n"},hillshadePrepare:{fragmentSource:"#ifdef GL_ES\nprecision highp float;\n#endif\n\nuniform sampler2D u_image;\nvarying vec2 v_pos;\nuniform vec2 u_dimension;\nuniform float u_zoom;\n\nfloat getElevation(vec2 coord, float bias) {\n // Convert encoded elevation value to meters\n vec4 data = texture2D(u_image, coord) * 255.0;\n return (data.r + data.g * 256.0 + data.b * 256.0 * 256.0) / 4.0;\n}\n\nvoid main() {\n vec2 epsilon = 1.0 / u_dimension;\n\n // queried pixels:\n // +-----------+\n // | | | |\n // | a | b | c |\n // | | | |\n // +-----------+\n // | | | |\n // | d | e | f |\n // | | | |\n // +-----------+\n // | | | |\n // | g | h | i |\n // | | | |\n // +-----------+\n\n float a = getElevation(v_pos + vec2(-epsilon.x, -epsilon.y), 0.0);\n float b = getElevation(v_pos + vec2(0, -epsilon.y), 0.0);\n float c = getElevation(v_pos + vec2(epsilon.x, -epsilon.y), 0.0);\n float d = getElevation(v_pos + vec2(-epsilon.x, 0), 0.0);\n float e = getElevation(v_pos, 0.0);\n float f = getElevation(v_pos + vec2(epsilon.x, 0), 0.0);\n float g = getElevation(v_pos + vec2(-epsilon.x, epsilon.y), 0.0);\n float h = getElevation(v_pos + vec2(0, epsilon.y), 0.0);\n float i = getElevation(v_pos + vec2(epsilon.x, epsilon.y), 0.0);\n\n // here we divide the x and y slopes by 8 * pixel size\n // where pixel size (aka meters/pixel) is:\n // circumference of the world / (pixels per tile * number of tiles)\n // which is equivalent to: 8 * 40075016.6855785 / (512 * pow(2, u_zoom))\n // which can be reduced to: pow(2, 19.25619978527 - u_zoom)\n // we want to vertically exaggerate the hillshading though, because otherwise\n // it is barely noticeable at low zooms. to do this, we multiply this by some\n // scale factor pow(2, (u_zoom - 14) * a) where a is an arbitrary value and 14 is the\n // maxzoom of the tile source. here we use a=0.3 which works out to the\n // expression below. see nickidlugash's awesome breakdown for more info\n // https://github.com/mapbox/mapbox-gl-js/pull/5286#discussion_r148419556\n float exaggeration = u_zoom < 2.0 ? 0.4 : u_zoom < 4.5 ? 0.35 : 0.3;\n\n vec2 deriv = vec2(\n (c + f + f + i) - (a + d + d + g),\n (g + h + h + i) - (a + b + b + c)\n ) / pow(2.0, (u_zoom - 14.0) * exaggeration + 19.2562 - u_zoom);\n\n gl_FragColor = clamp(vec4(\n deriv.x / 2.0 + 0.5,\n deriv.y / 2.0 + 0.5,\n 1.0,\n 1.0), 0.0, 1.0);\n\n#ifdef OVERDRAW_INSPECTOR\n gl_FragColor = vec4(1.0);\n#endif\n}\n",vertexSource:"uniform mat4 u_matrix;\n\nattribute vec2 a_pos;\nattribute vec2 a_texture_pos;\n\nvarying vec2 v_pos;\n\nvoid main() {\n gl_Position = u_matrix * vec4(a_pos, 0, 1);\n v_pos = (a_texture_pos / 8192.0) / 2.0 + 0.25;\n}\n"},hillshade:{fragmentSource:"uniform sampler2D u_image;\nvarying vec2 v_pos;\n\nuniform vec2 u_latrange;\nuniform vec2 u_light;\nuniform vec4 u_shadow;\nuniform vec4 u_highlight;\nuniform vec4 u_accent;\n\n#define PI 3.141592653589793\n\nvoid main() {\n vec4 pixel = texture2D(u_image, v_pos);\n\n vec2 deriv = ((pixel.rg * 2.0) - 1.0);\n\n // We divide the slope by a scale factor based on the cosin of the pixel's approximate latitude\n // to account for mercator projection distortion. see #4807 for details\n float scaleFactor = cos(radians((u_latrange[0] - u_latrange[1]) * (1.0 - v_pos.y) + u_latrange[1]));\n // We also multiply the slope by an arbitrary z-factor of 1.25\n float slope = atan(1.25 * length(deriv) / scaleFactor);\n float aspect = deriv.x != 0.0 ? atan(deriv.y, -deriv.x) : PI / 2.0 * (deriv.y > 0.0 ? 1.0 : -1.0);\n\n float intensity = u_light.x;\n // We add PI to make this property match the global light object, which adds PI/2 to the light's azimuthal\n // position property to account for 0deg corresponding to north/the top of the viewport in the style spec\n // and the original shader was written to accept (-illuminationDirection - 90) as the azimuthal.\n float azimuth = u_light.y + PI;\n\n // We scale the slope exponentially based on intensity, using a calculation similar to\n // the exponential interpolation function in the style spec:\n // https://github.com/mapbox/mapbox-gl-js/blob/master/src/style-spec/expression/definitions/interpolate.js#L217-L228\n // so that higher intensity values create more opaque hillshading.\n float base = 1.875 - intensity * 1.75;\n float maxValue = 0.5 * PI;\n float scaledSlope = intensity != 0.5 ? ((pow(base, slope) - 1.0) / (pow(base, maxValue) - 1.0)) * maxValue : slope;\n\n // The accent color is calculated with the cosine of the slope while the shade color is calculated with the sine\n // so that the accent color's rate of change eases in while the shade color's eases out.\n float accent = cos(scaledSlope);\n // We multiply both the accent and shade color by a clamped intensity value\n // so that intensities >= 0.5 do not additionally affect the color values\n // while intensity values < 0.5 make the overall color more transparent.\n vec4 accent_color = (1.0 - accent) * u_accent * clamp(intensity * 2.0, 0.0, 1.0);\n float shade = abs(mod((aspect + azimuth) / PI + 0.5, 2.0) - 1.0);\n vec4 shade_color = mix(u_shadow, u_highlight, shade) * sin(scaledSlope) * clamp(intensity * 2.0, 0.0, 1.0);\n gl_FragColor = accent_color * (1.0 - shade_color.a) + shade_color;\n\n#ifdef OVERDRAW_INSPECTOR\n gl_FragColor = vec4(1.0);\n#endif\n}\n",vertexSource:"uniform mat4 u_matrix;\n\nattribute vec2 a_pos;\nattribute vec2 a_texture_pos;\n\nvarying vec2 v_pos;\n\nvoid main() {\n gl_Position = u_matrix * vec4(a_pos, 0, 1);\n v_pos = a_texture_pos / 8192.0;\n}\n"},line:{fragmentSource:"#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n\nvarying vec2 v_width2;\nvarying vec2 v_normal;\nvarying float v_gamma_scale;\n\nvoid main() {\n #pragma mapbox: initialize highp vec4 color\n #pragma mapbox: initialize lowp float blur\n #pragma mapbox: initialize lowp float opacity\n\n // Calculate the distance of the pixel from the line in pixels.\n float dist = length(v_normal) * v_width2.s;\n\n // Calculate the antialiasing fade factor. This is either when fading in\n // the line in case of an offset line (v_width2.t) or when fading out\n // (v_width2.s)\n float blur2 = (blur + 1.0 / DEVICE_PIXEL_RATIO) * v_gamma_scale;\n float alpha = clamp(min(dist - (v_width2.t - blur2), v_width2.s - dist) / blur2, 0.0, 1.0);\n\n gl_FragColor = color * (alpha * opacity);\n\n#ifdef OVERDRAW_INSPECTOR\n gl_FragColor = vec4(1.0);\n#endif\n}\n",vertexSource:"\n\n// the distance over which the line edge fades out.\n// Retina devices need a smaller distance to avoid aliasing.\n#define ANTIALIASING 1.0 / DEVICE_PIXEL_RATIO / 2.0\n\n// floor(127 / 2) == 63.0\n// the maximum allowed miter limit is 2.0 at the moment. the extrude normal is\n// stored in a byte (-128..127). we scale regular normals up to length 63, but\n// there are also \"special\" normals that have a bigger length (of up to 126 in\n// this case).\n// #define scale 63.0\n#define scale 0.015873016\n\nattribute vec4 a_pos_normal;\nattribute vec4 a_data;\n\nuniform mat4 u_matrix;\nuniform mediump float u_ratio;\nuniform vec2 u_gl_units_to_pixels;\n\nvarying vec2 v_normal;\nvarying vec2 v_width2;\nvarying float v_gamma_scale;\n\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define mediump float gapwidth\n#pragma mapbox: define lowp float offset\n#pragma mapbox: define mediump float width\n\nvoid main() {\n #pragma mapbox: initialize highp vec4 color\n #pragma mapbox: initialize lowp float blur\n #pragma mapbox: initialize lowp float opacity\n #pragma mapbox: initialize mediump float gapwidth\n #pragma mapbox: initialize lowp float offset\n #pragma mapbox: initialize mediump float width\n\n vec2 a_extrude = a_data.xy - 128.0;\n float a_direction = mod(a_data.z, 4.0) - 1.0;\n\n vec2 pos = a_pos_normal.xy;\n\n // x is 1 if it's a round cap, 0 otherwise\n // y is 1 if the normal points up, and -1 if it points down\n mediump vec2 normal = a_pos_normal.zw;\n v_normal = normal;\n\n // these transformations used to be applied in the JS and native code bases.\n // moved them into the shader for clarity and simplicity.\n gapwidth = gapwidth / 2.0;\n float halfwidth = width / 2.0;\n offset = -1.0 * offset;\n\n float inset = gapwidth + (gapwidth > 0.0 ? ANTIALIASING : 0.0);\n float outset = gapwidth + halfwidth * (gapwidth > 0.0 ? 2.0 : 1.0) + ANTIALIASING;\n\n // Scale the extrusion vector down to a normal and then up by the line width\n // of this vertex.\n mediump vec2 dist = outset * a_extrude * scale;\n\n // Calculate the offset when drawing a line that is to the side of the actual line.\n // We do this by creating a vector that points towards the extrude, but rotate\n // it when we're drawing round end points (a_direction = -1 or 1) since their\n // extrude vector points in another direction.\n mediump float u = 0.5 * a_direction;\n mediump float t = 1.0 - abs(u);\n mediump vec2 offset2 = offset * a_extrude * scale * normal.y * mat2(t, -u, u, t);\n\n vec4 projected_extrude = u_matrix * vec4(dist / u_ratio, 0.0, 0.0);\n gl_Position = u_matrix * vec4(pos + offset2 / u_ratio, 0.0, 1.0) + projected_extrude;\n\n // calculate how much the perspective view squishes or stretches the extrude\n float extrude_length_without_perspective = length(dist);\n float extrude_length_with_perspective = length(projected_extrude.xy / gl_Position.w * u_gl_units_to_pixels);\n v_gamma_scale = extrude_length_without_perspective / extrude_length_with_perspective;\n\n v_width2 = vec2(outset, inset);\n}\n"},linePattern:{fragmentSource:"uniform vec2 u_pattern_size_a;\nuniform vec2 u_pattern_size_b;\nuniform vec2 u_pattern_tl_a;\nuniform vec2 u_pattern_br_a;\nuniform vec2 u_pattern_tl_b;\nuniform vec2 u_pattern_br_b;\nuniform vec2 u_texsize;\nuniform float u_fade;\n\nuniform sampler2D u_image;\n\nvarying vec2 v_normal;\nvarying vec2 v_width2;\nvarying float v_linesofar;\nvarying float v_gamma_scale;\n\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n\nvoid main() {\n #pragma mapbox: initialize lowp float blur\n #pragma mapbox: initialize lowp float opacity\n\n // Calculate the distance of the pixel from the line in pixels.\n float dist = length(v_normal) * v_width2.s;\n\n // Calculate the antialiasing fade factor. This is either when fading in\n // the line in case of an offset line (v_width2.t) or when fading out\n // (v_width2.s)\n float blur2 = (blur + 1.0 / DEVICE_PIXEL_RATIO) * v_gamma_scale;\n float alpha = clamp(min(dist - (v_width2.t - blur2), v_width2.s - dist) / blur2, 0.0, 1.0);\n\n float x_a = mod(v_linesofar / u_pattern_size_a.x, 1.0);\n float x_b = mod(v_linesofar / u_pattern_size_b.x, 1.0);\n float y_a = 0.5 + (v_normal.y * v_width2.s / u_pattern_size_a.y);\n float y_b = 0.5 + (v_normal.y * v_width2.s / u_pattern_size_b.y);\n vec2 pos_a = mix(u_pattern_tl_a / u_texsize, u_pattern_br_a / u_texsize, vec2(x_a, y_a));\n vec2 pos_b = mix(u_pattern_tl_b / u_texsize, u_pattern_br_b / u_texsize, vec2(x_b, y_b));\n\n vec4 color = mix(texture2D(u_image, pos_a), texture2D(u_image, pos_b), u_fade);\n\n gl_FragColor = color * alpha * opacity;\n\n#ifdef OVERDRAW_INSPECTOR\n gl_FragColor = vec4(1.0);\n#endif\n}\n",vertexSource:"// floor(127 / 2) == 63.0\n// the maximum allowed miter limit is 2.0 at the moment. the extrude normal is\n// stored in a byte (-128..127). we scale regular normals up to length 63, but\n// there are also \"special\" normals that have a bigger length (of up to 126 in\n// this case).\n// #define scale 63.0\n#define scale 0.015873016\n\n// We scale the distance before adding it to the buffers so that we can store\n// long distances for long segments. Use this value to unscale the distance.\n#define LINE_DISTANCE_SCALE 2.0\n\n// the distance over which the line edge fades out.\n// Retina devices need a smaller distance to avoid aliasing.\n#define ANTIALIASING 1.0 / DEVICE_PIXEL_RATIO / 2.0\n\nattribute vec4 a_pos_normal;\nattribute vec4 a_data;\n\nuniform mat4 u_matrix;\nuniform mediump float u_ratio;\nuniform vec2 u_gl_units_to_pixels;\n\nvarying vec2 v_normal;\nvarying vec2 v_width2;\nvarying float v_linesofar;\nvarying float v_gamma_scale;\n\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float offset\n#pragma mapbox: define mediump float gapwidth\n#pragma mapbox: define mediump float width\n\nvoid main() {\n #pragma mapbox: initialize lowp float blur\n #pragma mapbox: initialize lowp float opacity\n #pragma mapbox: initialize lowp float offset\n #pragma mapbox: initialize mediump float gapwidth\n #pragma mapbox: initialize mediump float width\n\n vec2 a_extrude = a_data.xy - 128.0;\n float a_direction = mod(a_data.z, 4.0) - 1.0;\n float a_linesofar = (floor(a_data.z / 4.0) + a_data.w * 64.0) * LINE_DISTANCE_SCALE;\n\n vec2 pos = a_pos_normal.xy;\n\n // x is 1 if it's a round cap, 0 otherwise\n // y is 1 if the normal points up, and -1 if it points down\n mediump vec2 normal = a_pos_normal.zw;\n v_normal = normal;\n\n // these transformations used to be applied in the JS and native code bases.\n // moved them into the shader for clarity and simplicity.\n gapwidth = gapwidth / 2.0;\n float halfwidth = width / 2.0;\n offset = -1.0 * offset;\n\n float inset = gapwidth + (gapwidth > 0.0 ? ANTIALIASING : 0.0);\n float outset = gapwidth + halfwidth * (gapwidth > 0.0 ? 2.0 : 1.0) + ANTIALIASING;\n\n // Scale the extrusion vector down to a normal and then up by the line width\n // of this vertex.\n mediump vec2 dist = outset * a_extrude * scale;\n\n // Calculate the offset when drawing a line that is to the side of the actual line.\n // We do this by creating a vector that points towards the extrude, but rotate\n // it when we're drawing round end points (a_direction = -1 or 1) since their\n // extrude vector points in another direction.\n mediump float u = 0.5 * a_direction;\n mediump float t = 1.0 - abs(u);\n mediump vec2 offset2 = offset * a_extrude * scale * normal.y * mat2(t, -u, u, t);\n\n vec4 projected_extrude = u_matrix * vec4(dist / u_ratio, 0.0, 0.0);\n gl_Position = u_matrix * vec4(pos + offset2 / u_ratio, 0.0, 1.0) + projected_extrude;\n\n // calculate how much the perspective view squishes or stretches the extrude\n float extrude_length_without_perspective = length(dist);\n float extrude_length_with_perspective = length(projected_extrude.xy / gl_Position.w * u_gl_units_to_pixels);\n v_gamma_scale = extrude_length_without_perspective / extrude_length_with_perspective;\n\n v_linesofar = a_linesofar;\n v_width2 = vec2(outset, inset);\n}\n"},lineSDF:{fragmentSource:"\nuniform sampler2D u_image;\nuniform float u_sdfgamma;\nuniform float u_mix;\n\nvarying vec2 v_normal;\nvarying vec2 v_width2;\nvarying vec2 v_tex_a;\nvarying vec2 v_tex_b;\nvarying float v_gamma_scale;\n\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define mediump float width\n#pragma mapbox: define lowp float floorwidth\n\nvoid main() {\n #pragma mapbox: initialize highp vec4 color\n #pragma mapbox: initialize lowp float blur\n #pragma mapbox: initialize lowp float opacity\n #pragma mapbox: initialize mediump float width\n #pragma mapbox: initialize lowp float floorwidth\n\n // Calculate the distance of the pixel from the line in pixels.\n float dist = length(v_normal) * v_width2.s;\n\n // Calculate the antialiasing fade factor. This is either when fading in\n // the line in case of an offset line (v_width2.t) or when fading out\n // (v_width2.s)\n float blur2 = (blur + 1.0 / DEVICE_PIXEL_RATIO) * v_gamma_scale;\n float alpha = clamp(min(dist - (v_width2.t - blur2), v_width2.s - dist) / blur2, 0.0, 1.0);\n\n float sdfdist_a = texture2D(u_image, v_tex_a).a;\n float sdfdist_b = texture2D(u_image, v_tex_b).a;\n float sdfdist = mix(sdfdist_a, sdfdist_b, u_mix);\n alpha *= smoothstep(0.5 - u_sdfgamma / floorwidth, 0.5 + u_sdfgamma / floorwidth, sdfdist);\n\n gl_FragColor = color * (alpha * opacity);\n\n#ifdef OVERDRAW_INSPECTOR\n gl_FragColor = vec4(1.0);\n#endif\n}\n",vertexSource:"// floor(127 / 2) == 63.0\n// the maximum allowed miter limit is 2.0 at the moment. the extrude normal is\n// stored in a byte (-128..127). we scale regular normals up to length 63, but\n// there are also \"special\" normals that have a bigger length (of up to 126 in\n// this case).\n// #define scale 63.0\n#define scale 0.015873016\n\n// We scale the distance before adding it to the buffers so that we can store\n// long distances for long segments. Use this value to unscale the distance.\n#define LINE_DISTANCE_SCALE 2.0\n\n// the distance over which the line edge fades out.\n// Retina devices need a smaller distance to avoid aliasing.\n#define ANTIALIASING 1.0 / DEVICE_PIXEL_RATIO / 2.0\n\nattribute vec4 a_pos_normal;\nattribute vec4 a_data;\n\nuniform mat4 u_matrix;\nuniform mediump float u_ratio;\nuniform vec2 u_patternscale_a;\nuniform float u_tex_y_a;\nuniform vec2 u_patternscale_b;\nuniform float u_tex_y_b;\nuniform vec2 u_gl_units_to_pixels;\n\nvarying vec2 v_normal;\nvarying vec2 v_width2;\nvarying vec2 v_tex_a;\nvarying vec2 v_tex_b;\nvarying float v_gamma_scale;\n\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define mediump float gapwidth\n#pragma mapbox: define lowp float offset\n#pragma mapbox: define mediump float width\n#pragma mapbox: define lowp float floorwidth\n\nvoid main() {\n #pragma mapbox: initialize highp vec4 color\n #pragma mapbox: initialize lowp float blur\n #pragma mapbox: initialize lowp float opacity\n #pragma mapbox: initialize mediump float gapwidth\n #pragma mapbox: initialize lowp float offset\n #pragma mapbox: initialize mediump float width\n #pragma mapbox: initialize lowp float floorwidth\n\n vec2 a_extrude = a_data.xy - 128.0;\n float a_direction = mod(a_data.z, 4.0) - 1.0;\n float a_linesofar = (floor(a_data.z / 4.0) + a_data.w * 64.0) * LINE_DISTANCE_SCALE;\n\n vec2 pos = a_pos_normal.xy;\n\n // x is 1 if it's a round cap, 0 otherwise\n // y is 1 if the normal points up, and -1 if it points down\n mediump vec2 normal = a_pos_normal.zw;\n v_normal = normal;\n\n // these transformations used to be applied in the JS and native code bases.\n // moved them into the shader for clarity and simplicity.\n gapwidth = gapwidth / 2.0;\n float halfwidth = width / 2.0;\n offset = -1.0 * offset;\n\n float inset = gapwidth + (gapwidth > 0.0 ? ANTIALIASING : 0.0);\n float outset = gapwidth + halfwidth * (gapwidth > 0.0 ? 2.0 : 1.0) + ANTIALIASING;\n\n // Scale the extrusion vector down to a normal and then up by the line width\n // of this vertex.\n mediump vec2 dist =outset * a_extrude * scale;\n\n // Calculate the offset when drawing a line that is to the side of the actual line.\n // We do this by creating a vector that points towards the extrude, but rotate\n // it when we're drawing round end points (a_direction = -1 or 1) since their\n // extrude vector points in another direction.\n mediump float u = 0.5 * a_direction;\n mediump float t = 1.0 - abs(u);\n mediump vec2 offset2 = offset * a_extrude * scale * normal.y * mat2(t, -u, u, t);\n\n vec4 projected_extrude = u_matrix * vec4(dist / u_ratio, 0.0, 0.0);\n gl_Position = u_matrix * vec4(pos + offset2 / u_ratio, 0.0, 1.0) + projected_extrude;\n\n // calculate how much the perspective view squishes or stretches the extrude\n float extrude_length_without_perspective = length(dist);\n float extrude_length_with_perspective = length(projected_extrude.xy / gl_Position.w * u_gl_units_to_pixels);\n v_gamma_scale = extrude_length_without_perspective / extrude_length_with_perspective;\n\n v_tex_a = vec2(a_linesofar * u_patternscale_a.x / floorwidth, normal.y * u_patternscale_a.y + u_tex_y_a);\n v_tex_b = vec2(a_linesofar * u_patternscale_b.x / floorwidth, normal.y * u_patternscale_b.y + u_tex_y_b);\n\n v_width2 = vec2(outset, inset);\n}\n"},raster:{fragmentSource:"uniform float u_fade_t;\nuniform float u_opacity;\nuniform sampler2D u_image0;\nuniform sampler2D u_image1;\nvarying vec2 v_pos0;\nvarying vec2 v_pos1;\n\nuniform float u_brightness_low;\nuniform float u_brightness_high;\n\nuniform float u_saturation_factor;\nuniform float u_contrast_factor;\nuniform vec3 u_spin_weights;\n\nvoid main() {\n\n // read and cross-fade colors from the main and parent tiles\n vec4 color0 = texture2D(u_image0, v_pos0);\n vec4 color1 = texture2D(u_image1, v_pos1);\n if (color0.a > 0.0) {\n color0.rgb = color0.rgb / color0.a;\n }\n if (color1.a > 0.0) {\n color1.rgb = color1.rgb / color1.a;\n }\n vec4 color = mix(color0, color1, u_fade_t);\n color.a *= u_opacity;\n vec3 rgb = color.rgb;\n\n // spin\n rgb = vec3(\n dot(rgb, u_spin_weights.xyz),\n dot(rgb, u_spin_weights.zxy),\n dot(rgb, u_spin_weights.yzx));\n\n // saturation\n float average = (color.r + color.g + color.b) / 3.0;\n rgb += (average - rgb) * u_saturation_factor;\n\n // contrast\n rgb = (rgb - 0.5) * u_contrast_factor + 0.5;\n\n // brightness\n vec3 u_high_vec = vec3(u_brightness_low, u_brightness_low, u_brightness_low);\n vec3 u_low_vec = vec3(u_brightness_high, u_brightness_high, u_brightness_high);\n\n gl_FragColor = vec4(mix(u_high_vec, u_low_vec, rgb) * color.a, color.a);\n\n#ifdef OVERDRAW_INSPECTOR\n gl_FragColor = vec4(1.0);\n#endif\n}\n",vertexSource:"uniform mat4 u_matrix;\nuniform vec2 u_tl_parent;\nuniform float u_scale_parent;\nuniform float u_buffer_scale;\n\nattribute vec2 a_pos;\nattribute vec2 a_texture_pos;\n\nvarying vec2 v_pos0;\nvarying vec2 v_pos1;\n\nvoid main() {\n gl_Position = u_matrix * vec4(a_pos, 0, 1);\n // We are using Int16 for texture position coordinates to give us enough precision for\n // fractional coordinates. We use 8192 to scale the texture coordinates in the buffer\n // as an arbitrarily high number to preserve adequate precision when rendering.\n // This is also the same value as the EXTENT we are using for our tile buffer pos coordinates,\n // so math for modifying either is consistent.\n v_pos0 = (((a_texture_pos / 8192.0) - 0.5) / u_buffer_scale ) + 0.5;\n v_pos1 = (v_pos0 * u_scale_parent) + u_tl_parent;\n}\n"},symbolIcon:{fragmentSource:"uniform sampler2D u_texture;\n\n#pragma mapbox: define lowp float opacity\n\nvarying vec2 v_tex;\nvarying float v_fade_opacity;\n\nvoid main() {\n #pragma mapbox: initialize lowp float opacity\n\n lowp float alpha = opacity * v_fade_opacity;\n gl_FragColor = texture2D(u_texture, v_tex) * alpha;\n\n#ifdef OVERDRAW_INSPECTOR\n gl_FragColor = vec4(1.0);\n#endif\n}\n",vertexSource:"const float PI = 3.141592653589793;\n\nattribute vec4 a_pos_offset;\nattribute vec4 a_data;\nattribute vec3 a_projected_pos;\nattribute float a_fade_opacity;\n\nuniform bool u_is_size_zoom_constant;\nuniform bool u_is_size_feature_constant;\nuniform highp float u_size_t; // used to interpolate between zoom stops when size is a composite function\nuniform highp float u_size; // used when size is both zoom and feature constant\nuniform highp float u_camera_to_center_distance;\nuniform highp float u_pitch;\nuniform bool u_rotate_symbol;\nuniform highp float u_aspect_ratio;\nuniform float u_fade_change;\n\n#pragma mapbox: define lowp float opacity\n\nuniform mat4 u_matrix;\nuniform mat4 u_label_plane_matrix;\nuniform mat4 u_gl_coord_matrix;\n\nuniform bool u_is_text;\nuniform bool u_pitch_with_map;\n\nuniform vec2 u_texsize;\n\nvarying vec2 v_tex;\nvarying float v_fade_opacity;\n\nvoid main() {\n #pragma mapbox: initialize lowp float opacity\n\n vec2 a_pos = a_pos_offset.xy;\n vec2 a_offset = a_pos_offset.zw;\n\n vec2 a_tex = a_data.xy;\n vec2 a_size = a_data.zw;\n\n highp float segment_angle = -a_projected_pos[2];\n\n float size;\n if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {\n size = mix(a_size[0], a_size[1], u_size_t) / 10.0;\n } else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {\n size = a_size[0] / 10.0;\n } else if (!u_is_size_zoom_constant && u_is_size_feature_constant) {\n size = u_size;\n } else {\n size = u_size;\n }\n\n vec4 projectedPoint = u_matrix * vec4(a_pos, 0, 1);\n highp float camera_to_anchor_distance = projectedPoint.w;\n // See comments in symbol_sdf.vertex\n highp float distance_ratio = u_pitch_with_map ?\n camera_to_anchor_distance / u_camera_to_center_distance :\n u_camera_to_center_distance / camera_to_anchor_distance;\n highp float perspective_ratio = 0.5 + 0.5 * distance_ratio;\n\n size *= perspective_ratio;\n\n float fontScale = u_is_text ? size / 24.0 : size;\n\n highp float symbol_rotation = 0.0;\n if (u_rotate_symbol) {\n // See comments in symbol_sdf.vertex\n vec4 offsetProjectedPoint = u_matrix * vec4(a_pos + vec2(1, 0), 0, 1);\n\n vec2 a = projectedPoint.xy / projectedPoint.w;\n vec2 b = offsetProjectedPoint.xy / offsetProjectedPoint.w;\n\n symbol_rotation = atan((b.y - a.y) / u_aspect_ratio, b.x - a.x);\n }\n\n highp float angle_sin = sin(segment_angle + symbol_rotation);\n highp float angle_cos = cos(segment_angle + symbol_rotation);\n mat2 rotation_matrix = mat2(angle_cos, -1.0 * angle_sin, angle_sin, angle_cos);\n\n vec4 projected_pos = u_label_plane_matrix * vec4(a_projected_pos.xy, 0.0, 1.0);\n gl_Position = u_gl_coord_matrix * vec4(projected_pos.xy / projected_pos.w + rotation_matrix * (a_offset / 64.0 * fontScale), 0.0, 1.0);\n\n v_tex = a_tex / u_texsize;\n vec2 fade_opacity = unpack_opacity(a_fade_opacity);\n float fade_change = fade_opacity[1] > 0.5 ? u_fade_change : -u_fade_change;\n v_fade_opacity = max(0.0, min(1.0, fade_opacity[0] + fade_change));\n}\n"},symbolSDF:{fragmentSource:"#define SDF_PX 8.0\n#define EDGE_GAMMA 0.105/DEVICE_PIXEL_RATIO\n\nuniform bool u_is_halo;\n#pragma mapbox: define highp vec4 fill_color\n#pragma mapbox: define highp vec4 halo_color\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float halo_width\n#pragma mapbox: define lowp float halo_blur\n\nuniform sampler2D u_texture;\nuniform highp float u_gamma_scale;\nuniform bool u_is_text;\n\nvarying vec2 v_data0;\nvarying vec3 v_data1;\n\nvoid main() {\n #pragma mapbox: initialize highp vec4 fill_color\n #pragma mapbox: initialize highp vec4 halo_color\n #pragma mapbox: initialize lowp float opacity\n #pragma mapbox: initialize lowp float halo_width\n #pragma mapbox: initialize lowp float halo_blur\n\n vec2 tex = v_data0.xy;\n float gamma_scale = v_data1.x;\n float size = v_data1.y;\n float fade_opacity = v_data1[2];\n\n float fontScale = u_is_text ? size / 24.0 : size;\n\n lowp vec4 color = fill_color;\n highp float gamma = EDGE_GAMMA / (fontScale * u_gamma_scale);\n lowp float buff = (256.0 - 64.0) / 256.0;\n if (u_is_halo) {\n color = halo_color;\n gamma = (halo_blur * 1.19 / SDF_PX + EDGE_GAMMA) / (fontScale * u_gamma_scale);\n buff = (6.0 - halo_width / fontScale) / SDF_PX;\n }\n\n lowp float dist = texture2D(u_texture, tex).a;\n highp float gamma_scaled = gamma * gamma_scale;\n highp float alpha = smoothstep(buff - gamma_scaled, buff + gamma_scaled, dist);\n\n gl_FragColor = color * (alpha * opacity * fade_opacity);\n\n#ifdef OVERDRAW_INSPECTOR\n gl_FragColor = vec4(1.0);\n#endif\n}\n",vertexSource:"const float PI = 3.141592653589793;\n\nattribute vec4 a_pos_offset;\nattribute vec4 a_data;\nattribute vec3 a_projected_pos;\nattribute float a_fade_opacity;\n\n// contents of a_size vary based on the type of property value\n// used for {text,icon}-size.\n// For constants, a_size is disabled.\n// For source functions, we bind only one value per vertex: the value of {text,icon}-size evaluated for the current feature.\n// For composite functions:\n// [ text-size(lowerZoomStop, feature),\n// text-size(upperZoomStop, feature) ]\nuniform bool u_is_size_zoom_constant;\nuniform bool u_is_size_feature_constant;\nuniform highp float u_size_t; // used to interpolate between zoom stops when size is a composite function\nuniform highp float u_size; // used when size is both zoom and feature constant\n\n#pragma mapbox: define highp vec4 fill_color\n#pragma mapbox: define highp vec4 halo_color\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float halo_width\n#pragma mapbox: define lowp float halo_blur\n\nuniform mat4 u_matrix;\nuniform mat4 u_label_plane_matrix;\nuniform mat4 u_gl_coord_matrix;\n\nuniform bool u_is_text;\nuniform bool u_pitch_with_map;\nuniform highp float u_pitch;\nuniform bool u_rotate_symbol;\nuniform highp float u_aspect_ratio;\nuniform highp float u_camera_to_center_distance;\nuniform float u_fade_change;\n\nuniform vec2 u_texsize;\n\nvarying vec2 v_data0;\nvarying vec3 v_data1;\n\nvoid main() {\n #pragma mapbox: initialize highp vec4 fill_color\n #pragma mapbox: initialize highp vec4 halo_color\n #pragma mapbox: initialize lowp float opacity\n #pragma mapbox: initialize lowp float halo_width\n #pragma mapbox: initialize lowp float halo_blur\n\n vec2 a_pos = a_pos_offset.xy;\n vec2 a_offset = a_pos_offset.zw;\n\n vec2 a_tex = a_data.xy;\n vec2 a_size = a_data.zw;\n\n highp float segment_angle = -a_projected_pos[2];\n float size;\n\n if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {\n size = mix(a_size[0], a_size[1], u_size_t) / 10.0;\n } else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {\n size = a_size[0] / 10.0;\n } else if (!u_is_size_zoom_constant && u_is_size_feature_constant) {\n size = u_size;\n } else {\n size = u_size;\n }\n\n vec4 projectedPoint = u_matrix * vec4(a_pos, 0, 1);\n highp float camera_to_anchor_distance = projectedPoint.w;\n // If the label is pitched with the map, layout is done in pitched space,\n // which makes labels in the distance smaller relative to viewport space.\n // We counteract part of that effect by multiplying by the perspective ratio.\n // If the label isn't pitched with the map, we do layout in viewport space,\n // which makes labels in the distance larger relative to the features around\n // them. We counteract part of that effect by dividing by the perspective ratio.\n highp float distance_ratio = u_pitch_with_map ?\n camera_to_anchor_distance / u_camera_to_center_distance :\n u_camera_to_center_distance / camera_to_anchor_distance;\n highp float perspective_ratio = 0.5 + 0.5 * distance_ratio;\n\n size *= perspective_ratio;\n\n float fontScale = u_is_text ? size / 24.0 : size;\n\n highp float symbol_rotation = 0.0;\n if (u_rotate_symbol) {\n // Point labels with 'rotation-alignment: map' are horizontal with respect to tile units\n // To figure out that angle in projected space, we draw a short horizontal line in tile\n // space, project it, and measure its angle in projected space.\n vec4 offsetProjectedPoint = u_matrix * vec4(a_pos + vec2(1, 0), 0, 1);\n\n vec2 a = projectedPoint.xy / projectedPoint.w;\n vec2 b = offsetProjectedPoint.xy / offsetProjectedPoint.w;\n\n symbol_rotation = atan((b.y - a.y) / u_aspect_ratio, b.x - a.x);\n }\n\n highp float angle_sin = sin(segment_angle + symbol_rotation);\n highp float angle_cos = cos(segment_angle + symbol_rotation);\n mat2 rotation_matrix = mat2(angle_cos, -1.0 * angle_sin, angle_sin, angle_cos);\n\n vec4 projected_pos = u_label_plane_matrix * vec4(a_projected_pos.xy, 0.0, 1.0);\n gl_Position = u_gl_coord_matrix * vec4(projected_pos.xy / projected_pos.w + rotation_matrix * (a_offset / 64.0 * fontScale), 0.0, 1.0);\n float gamma_scale = gl_Position.w;\n\n vec2 tex = a_tex / u_texsize;\n vec2 fade_opacity = unpack_opacity(a_fade_opacity);\n float fade_change = fade_opacity[1] > 0.5 ? u_fade_change : -u_fade_change;\n float interpolated_fade_opacity = max(0.0, min(1.0, fade_opacity[0] + fade_change));\n\n v_data0 = vec2(tex.x, tex.y);\n v_data1 = vec3(gamma_scale, size, interpolated_fade_opacity);\n}\n"}},i=/#pragma mapbox: ([\w]+) ([\w]+) ([\w]+) ([\w]+)/g,a=function(t){var e=n[t],r={};e.fragmentSource=e.fragmentSource.replace(i,function(t,e,n,i,a){return r[a]=!0,"define"===e?"\n#ifndef HAS_UNIFORM_u_"+a+"\nvarying "+n+" "+i+" "+a+";\n#else\nuniform "+n+" "+i+" u_"+a+";\n#endif\n":"\n#ifdef HAS_UNIFORM_u_"+a+"\n "+n+" "+i+" "+a+" = u_"+a+";\n#endif\n"}),e.vertexSource=e.vertexSource.replace(i,function(t,e,n,i,a){var o="float"===i?"vec2":"vec4";return r[a]?"define"===e?"\n#ifndef HAS_UNIFORM_u_"+a+"\nuniform lowp float a_"+a+"_t;\nattribute "+n+" "+o+" a_"+a+";\nvarying "+n+" "+i+" "+a+";\n#else\nuniform "+n+" "+i+" u_"+a+";\n#endif\n":"\n#ifndef HAS_UNIFORM_u_"+a+"\n "+a+" = unpack_mix_"+o+"(a_"+a+", a_"+a+"_t);\n#else\n "+n+" "+i+" "+a+" = u_"+a+";\n#endif\n":"define"===e?"\n#ifndef HAS_UNIFORM_u_"+a+"\nuniform lowp float a_"+a+"_t;\nattribute "+n+" "+o+" a_"+a+";\n#else\nuniform "+n+" "+i+" u_"+a+";\n#endif\n":"\n#ifndef HAS_UNIFORM_u_"+a+"\n "+n+" "+i+" "+a+" = unpack_mix_"+o+"(a_"+a+", a_"+a+"_t);\n#else\n "+n+" "+i+" "+a+" = u_"+a+";\n#endif\n"})};for(var o in n)a(o);e.exports=n},{}],98:[function(t,e,r){var n=t("./image_source"),i=t("../util/window"),a=t("../data/raster_bounds_attributes"),o=t("../render/vertex_array_object"),s=t("../render/texture"),l=function(t){function e(e,r,n,i){t.call(this,e,r,n,i),this.options=r,this.animate=void 0===r.animate||r.animate}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.load=function(){this.canvas=this.canvas||i.document.getElementById(this.options.canvas),this.width=this.canvas.width,this.height=this.canvas.height,this._hasInvalidDimensions()?this.fire("error",new Error("Canvas dimensions cannot be less than or equal to zero.")):(this.play=function(){this._playing=!0,this.map._rerender()},this.pause=function(){this._playing=!1},this._finishLoading())},e.prototype.getCanvas=function(){return this.canvas},e.prototype.onAdd=function(t){this.map=t,this.load(),this.canvas&&this.animate&&this.play()},e.prototype.onRemove=function(){this.pause()},e.prototype.prepare=function(){var t=this,e=!1;if(this.canvas.width!==this.width&&(this.width=this.canvas.width,e=!0),this.canvas.height!==this.height&&(this.height=this.canvas.height,e=!0),!this._hasInvalidDimensions()&&0!==Object.keys(this.tiles).length){var r=this.map.painter.context,n=r.gl;for(var i in this.boundsBuffer||(this.boundsBuffer=r.createVertexBuffer(this._boundsArray,a.members)),this.boundsVAO||(this.boundsVAO=new o),this.texture?e?this.texture.update(this.canvas):this._playing&&(this.texture.bind(n.LINEAR,n.CLAMP_TO_EDGE),n.texSubImage2D(n.TEXTURE_2D,0,0,0,n.RGBA,n.UNSIGNED_BYTE,this.canvas)):(this.texture=new s(r,this.canvas,n.RGBA),this.texture.bind(n.LINEAR,n.CLAMP_TO_EDGE)),t.tiles){var l=t.tiles[i];"loaded"!==l.state&&(l.state="loaded",l.texture=t.texture)}}},e.prototype.serialize=function(){return{type:"canvas",canvas:this.canvas,coordinates:this.coordinates}},e.prototype.hasTransition=function(){return this._playing},e.prototype._hasInvalidDimensions=function(){for(var t=0,e=[this.canvas.width,this.canvas.height];t0&&(r.resourceTiming=t._resourceTiming,t._resourceTiming=[]),t.fire("data",r)}})},e.prototype.onAdd=function(t){this.map=t,this.load()},e.prototype.setData=function(t){var e=this;return this._data=t,this.fire("dataloading",{dataType:"source"}),this._updateWorkerData(function(t){if(t)return e.fire("error",{error:t});var r={dataType:"source",sourceDataType:"content"};e._collectResourceTiming&&e._resourceTiming&&e._resourceTiming.length>0&&(r.resourceTiming=e._resourceTiming,e._resourceTiming=[]),e.fire("data",r)}),this},e.prototype._updateWorkerData=function(t){var e=this,r=i.extend({},this.workerOptions),n=this._data;"string"==typeof n?(r.request=this.map._transformRequest(function(t){var e=a.document.createElement("a");return e.href=t,e.href}(n),s.Source),r.request.collectResourceTiming=this._collectResourceTiming):r.data=JSON.stringify(n),this.workerID=this.dispatcher.send(this.type+".loadData",r,function(r,n){e._loaded=!0,n&&n.resourceTiming&&n.resourceTiming[e.id]&&(e._resourceTiming=n.resourceTiming[e.id].slice(0)),t(r)},this.workerID)},e.prototype.loadTile=function(t,e){var r=this,n=void 0===t.workerID||"expired"===t.state?"loadTile":"reloadTile",i={type:this.type,uid:t.uid,tileID:t.tileID,zoom:t.tileID.overscaledZ,maxZoom:this.maxzoom,tileSize:this.tileSize,source:this.id,pixelRatio:l.devicePixelRatio,overscaling:t.tileID.overscaleFactor(),showCollisionBoxes:this.map.showCollisionBoxes};t.workerID=this.dispatcher.send(n,i,function(i,a){return t.unloadVectorData(),t.aborted?e(null):i?e(i):(t.loadVectorData(a,r.map.painter,"reloadTile"===n),e(null))},this.workerID)},e.prototype.abortTile=function(t){t.aborted=!0},e.prototype.unloadTile=function(t){t.unloadVectorData(),this.dispatcher.send("removeTile",{uid:t.uid,type:this.type,source:this.id},null,t.workerID)},e.prototype.onRemove=function(){this.dispatcher.broadcast("removeSource",{type:this.type,source:this.id})},e.prototype.serialize=function(){return i.extend({},this._options,{type:this.type,data:this._data})},e.prototype.hasTransition=function(){return!1},e}(n);e.exports=u},{"../data/extent":53,"../util/ajax":251,"../util/browser":252,"../util/evented":260,"../util/util":275,"../util/window":254}],100:[function(t,e,r){function n(t,e){var r=t.source,n=t.tileID.canonical;if(!this._geoJSONIndexes[r])return e(null,null);var i=this._geoJSONIndexes[r].getTile(n.z,n.x,n.y);if(!i)return e(null,null);var a=new s(i.features),o=l(a);0===o.byteOffset&&o.byteLength===o.buffer.byteLength||(o=new Uint8Array(o)),e(null,{vectorTile:a,rawData:o.buffer})}var i=t("../util/ajax"),a=t("../util/performance"),o=t("geojson-rewind"),s=t("./geojson_wrapper"),l=t("vt-pbf"),u=t("supercluster"),c=t("geojson-vt"),h=function(t){function e(e,r,i){t.call(this,e,r,n),i&&(this.loadGeoJSON=i),this._geoJSONIndexes={}}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.loadData=function(t,e){var r=this;this.loadGeoJSON(t,function(n,i){if(n||!i)return e(n);if("object"!=typeof i)return e(new Error("Input data is not a valid GeoJSON object."));o(i,!0);try{r._geoJSONIndexes[t.source]=t.cluster?u(t.superclusterOptions).load(i.features):c(i,t.geojsonVtOptions)}catch(n){return e(n)}r.loaded[t.source]={};var s={};if(t.request&&t.request.collectResourceTiming){var l=a.getEntriesByName(t.request.url);l&&(s.resourceTiming={},s.resourceTiming[t.source]=JSON.parse(JSON.stringify(l)))}e(null,s)})},e.prototype.reloadTile=function(e,r){var n=this.loaded[e.source],i=e.uid;return n&&n[i]?t.prototype.reloadTile.call(this,e,r):this.loadTile(e,r)},e.prototype.loadGeoJSON=function(t,e){if(t.request)i.getJSON(t.request,e);else{if("string"!=typeof t.data)return e(new Error("Input data is not a valid GeoJSON object."));try{return e(null,JSON.parse(t.data))}catch(t){return e(new Error("Input data is not a valid GeoJSON object."))}}},e.prototype.removeSource=function(t,e){this._geoJSONIndexes[t.source]&&delete this._geoJSONIndexes[t.source],e()},e}(t("./vector_tile_worker_source"));e.exports=h},{"../util/ajax":251,"../util/performance":268,"./geojson_wrapper":101,"./vector_tile_worker_source":116,"geojson-rewind":15,"geojson-vt":19,supercluster:32,"vt-pbf":34}],101:[function(t,e,r){var n=t("@mapbox/point-geometry"),i=t("@mapbox/vector-tile").VectorTileFeature.prototype.toGeoJSON,a=t("../data/extent"),o=function(t){this._feature=t,this.extent=a,this.type=t.type,this.properties=t.tags,"id"in t&&!isNaN(t.id)&&(this.id=parseInt(t.id,10))};o.prototype.loadGeometry=function(){if(1===this._feature.type){for(var t=[],e=0,r=this._feature.geometry;e0&&(l[new s(t.overscaledZ,i,e.z,n,e.y-1).key]={backfilled:!1},l[new s(t.overscaledZ,t.wrap,e.z,e.x,e.y-1).key]={backfilled:!1},l[new s(t.overscaledZ,o,e.z,a,e.y-1).key]={backfilled:!1}),e.y+11||(Math.abs(r)>1&&(1===Math.abs(r+i)?r+=i:1===Math.abs(r-i)&&(r-=i)),e.dem&&t.dem&&(t.dem.backfillBorder(e.dem,r,n),t.neighboringTiles&&t.neighboringTiles[a]&&(t.neighboringTiles[a].backfilled=!0)))}for(var r=this.getRenderableIds(),n=0;ne)){var s=Math.pow(2,o.tileID.canonical.z-t.canonical.z);if(Math.floor(o.tileID.canonical.x/s)===t.canonical.x&&Math.floor(o.tileID.canonical.y/s)===t.canonical.y)for(r[a]=o.tileID,i=!0;o&&o.tileID.overscaledZ-1>t.overscaledZ;){var l=o.tileID.scaledTo(o.tileID.overscaledZ-1);if(!l)break;(o=n._tiles[l.key])&&o.hasData()&&(delete r[a],r[l.key]=l)}}}return i},e.prototype.findLoadedParent=function(t,e,r){for(var n=this,i=t.overscaledZ-1;i>=e;i--){var a=t.scaledTo(i);if(!a)return;var o=String(a.key),s=n._tiles[o];if(s&&s.hasData())return r[o]=a,s;if(n._cache.has(o))return r[o]=a,n._cache.get(o)}},e.prototype.updateCacheSize=function(t){var e=(Math.ceil(t.width/this._source.tileSize)+1)*(Math.ceil(t.height/this._source.tileSize)+1),r=Math.floor(5*e),n="number"==typeof this._maxTileCacheSize?Math.min(this._maxTileCacheSize,r):r;this._cache.setMaxSize(n)},e.prototype.update=function(t){var r=this;if(this.transform=t,this._sourceLoaded&&!this._paused){var n;this.updateCacheSize(t),this._coveredTiles={},this.used?this._source.tileID?n=t.getVisibleUnwrappedCoordinates(this._source.tileID).map(function(t){return new d(t.canonical.z,t.wrap,t.canonical.z,t.canonical.x,t.canonical.y)}):(n=t.coveringTiles({tileSize:this._source.tileSize,minzoom:this._source.minzoom,maxzoom:this._source.maxzoom,roundZoom:this._source.roundZoom,reparseOverscaled:this._source.reparseOverscaled}),this._source.hasTile&&(n=n.filter(function(t){return r._source.hasTile(t)}))):n=[];var a,o=(this._source.roundZoom?Math.round:Math.floor)(this.getZoom(t)),s=Math.max(o-e.maxOverzooming,this._source.minzoom),l=Math.max(o+e.maxUnderzooming,this._source.minzoom),u=this._updateRetainedTiles(n,o),h={};if(i(this._source.type))for(var f=Object.keys(u),g=0;g=p.now())){r._findLoadedChildren(m,l,u)&&(u[v]=m);var x=r.findLoadedParent(m,s,h);x&&r._addTile(x.tileID)}}for(a in h)u[a]||(r._coveredTiles[a]=!0);for(a in h)u[a]=h[a];for(var b=c.keysDifference(this._tiles,u),_=0;_n._source.maxzoom){var p=u.children(n._source.maxzoom)[0],d=n.getTile(p);d&&d.hasData()?i[p.key]=p:f=!1}else{n._findLoadedChildren(u,s,i);for(var g=u.children(n._source.maxzoom),v=0;v=o;--m){var y=u.scaledTo(m);if(a[y.key])break;if(a[y.key]=!0,!(c=n.getTile(y))&&h&&(c=n._addTile(y)),c&&(i[y.key]=y,h=c.wasRequested(),c.hasData()))break}}}return i},e.prototype._addTile=function(t){var e=this._tiles[t.key];if(e)return e;(e=this._cache.getAndRemove(t.key))&&this._cacheTimers[t.key]&&(clearTimeout(this._cacheTimers[t.key]),delete this._cacheTimers[t.key],this._setTileReloadTimer(t.key,e));var r=Boolean(e);return r||(e=new o(t,this._source.tileSize*t.overscaleFactor()),this._loadTile(e,this._tileLoaded.bind(this,e,t.key,e.state))),e?(e.uses++,this._tiles[t.key]=e,r||this._source.fire("dataloading",{tile:e,coord:e.tileID,dataType:"source"}),e):null},e.prototype._setTileReloadTimer=function(t,e){var r=this;t in this._timers&&(clearTimeout(this._timers[t]),delete this._timers[t]);var n=e.getExpiryTimeout();n&&(this._timers[t]=setTimeout(function(){r._reloadTile(t,"expired"),delete r._timers[t]},n))},e.prototype._setCacheInvalidationTimer=function(t,e){var r=this;t in this._cacheTimers&&(clearTimeout(this._cacheTimers[t]),delete this._cacheTimers[t]);var n=e.getExpiryTimeout();n&&(this._cacheTimers[t]=setTimeout(function(){r._cache.remove(t),delete r._cacheTimers[t]},n))},e.prototype._removeTile=function(t){var e=this._tiles[t];if(e&&(e.uses--,delete this._tiles[t],this._timers[t]&&(clearTimeout(this._timers[t]),delete this._timers[t]),!(e.uses>0)))if(e.hasData()){e.tileID=e.tileID.wrapped();var r=e.tileID.key;this._cache.add(r,e),this._setCacheInvalidationTimer(r,e)}else e.aborted=!0,this._abortTile(e),this._unloadTile(e)},e.prototype.clearTiles=function(){for(var t in this._shouldReloadOnResume=!1,this._paused=!1,this._tiles)this._removeTile(t);this._resetCache()},e.prototype._resetCache=function(){for(var t in this._cacheTimers)clearTimeout(this._cacheTimers[t]);this._cacheTimers={},this._cache.reset()},e.prototype.tilesIn=function(t){for(var e=[],r=this.getIds(),i=1/0,a=1/0,o=-1/0,s=-1/0,l=t[0].zoom,c=0;c=0&&v[1].y>=0){for(var m=[],y=0;y=p.now())return!0}return!1},e}(s);g.maxOverzooming=10,g.maxUnderzooming=3,e.exports=g},{"../data/extent":53,"../geo/coordinate":61,"../gl/context":66,"../util/browser":252,"../util/evented":260,"../util/lru_cache":266,"../util/util":275,"./source":110,"./tile":112,"./tile_id":114,"@mapbox/point-geometry":4}],112:[function(t,e,r){var n=t("../util/util"),i=t("../data/bucket").deserialize,a=(t("../data/feature_index"),t("@mapbox/vector-tile")),o=t("pbf"),s=t("../util/vectortile_to_geojson"),l=t("../style-spec/feature_filter"),u=(t("../symbol/collision_index"),t("../data/bucket/symbol_bucket")),c=t("../data/array_types"),h=c.RasterBoundsArray,f=c.CollisionBoxArray,p=t("../data/raster_bounds_attributes"),d=t("../data/extent"),g=t("@mapbox/point-geometry"),v=t("../render/texture"),m=t("../data/segment").SegmentVector,y=t("../data/index_array_type").TriangleIndexArray,x=t("../util/browser"),b=function(t,e){this.tileID=t,this.uid=n.uniqueId(),this.uses=0,this.tileSize=e,this.buckets={},this.expirationTime=null,this.expiredRequestCount=0,this.state="loading"};b.prototype.registerFadeDuration=function(t){var e=t+this.timeAdded;e>s.z,u=new g(s.x*l,s.y*l),c=new g(u.x+l,u.y+l),f=this.segments.prepareSegment(4,r,i);r.emplaceBack(u.x,u.y,u.x,u.y),r.emplaceBack(c.x,u.y,c.x,u.y),r.emplaceBack(u.x,c.y,u.x,c.y),r.emplaceBack(c.x,c.y,c.x,c.y);var v=f.vertexLength;i.emplaceBack(v,v+1,v+2),i.emplaceBack(v+1,v+2,v+3),f.vertexLength+=4,f.primitiveLength+=2}this.maskedBoundsBuffer=e.createVertexBuffer(r,p.members),this.maskedIndexBuffer=e.createIndexBuffer(i)}},b.prototype.hasData=function(){return"loaded"===this.state||"reloading"===this.state||"expired"===this.state},b.prototype.setExpiryData=function(t){var e=this.expirationTime;if(t.cacheControl){var r=n.parseCacheControl(t.cacheControl);r["max-age"]&&(this.expirationTime=Date.now()+1e3*r["max-age"])}else t.expires&&(this.expirationTime=new Date(t.expires).getTime());if(this.expirationTime){var i=Date.now(),a=!1;if(this.expirationTime>i)a=!1;else if(e)if(this.expirationTime=e&&t.x=r&&t.y0;a--)i+=(e&(n=1<this.canonical.z?new u(t,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y):new u(t,this.wrap,t,this.canonical.x>>e,this.canonical.y>>e)},u.prototype.isChildOf=function(t){var e=this.canonical.z-t.canonical.z;return 0===t.overscaledZ||t.overscaledZ>e&&t.canonical.y===this.canonical.y>>e},u.prototype.children=function(t){if(this.overscaledZ>=t)return[new u(this.overscaledZ+1,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y)];var e=this.canonical.z+1,r=2*this.canonical.x,n=2*this.canonical.y;return[new u(e,this.wrap,e,r,n),new u(e,this.wrap,e,r+1,n),new u(e,this.wrap,e,r,n+1),new u(e,this.wrap,e,r+1,n+1)]},u.prototype.isLessThan=function(t){return this.wrapt.wrap)&&(this.overscaledZt.overscaledZ)&&(this.canonical.xt.canonical.x)&&this.canonical.y=C.maxzoom||"none"===C.visibility||(n(E,d.zoom),(m[C.id]=C.createBucket({index:v.bucketLayerIDs.length,layers:E,zoom:d.zoom,pixelRatio:d.pixelRatio,overscaling:d.overscaling,collisionBoxArray:d.collisionBoxArray})).populate(M,y),v.bucketLayerIDs.push(E.map(function(t){return t.id})))}}}var L,z,P,I=u.mapObject(y.glyphDependencies,function(t){return Object.keys(t).map(Number)});Object.keys(I).length?r.send("getGlyphs",{uid:this.uid,stacks:I},function(t,e){L||(L=t,z=e,p.call(d))}):z={};var D=Object.keys(y.iconDependencies);D.length?r.send("getImages",{icons:D},function(t,e){L||(L=t,P=e,p.call(d))}):P={},p.call(this)},e.exports=d},{"../data/array_types":39,"../data/bucket/symbol_bucket":51,"../data/feature_index":54,"../render/glyph_atlas":85,"../render/image_atlas":87,"../style/evaluation_parameters":182,"../symbol/symbol_layout":227,"../util/dictionary_coder":257,"../util/util":275,"./tile_id":114}],120:[function(t,e,r){function n(t,e){var r={};for(var n in t)"ref"!==n&&(r[n]=t[n]);return i.forEach(function(t){t in e&&(r[t]=e[t])}),r}var i=t("./util/ref_properties");e.exports=function(t){t=t.slice();for(var e=Object.create(null),r=0;r4)return e.error("Expected 1, 2, or 3 arguments, but found "+(t.length-1)+" instead.");var r,n;if(t.length>2){var i=t[1];if("string"!=typeof i||!(i in p))return e.error('The item type argument of "array" must be one of string, number, boolean',1);r=p[i]}else r=o;if(t.length>3){if("number"!=typeof t[2]||t[2]<0||t[2]!==Math.floor(t[2]))return e.error('The length argument to "array" must be a positive integer literal',2);n=t[2]}var s=a(r,n),l=e.parse(t[t.length-1],t.length-1,o);return l?new d(s,l):null},d.prototype.evaluate=function(t){var e=this.input.evaluate(t);if(c(this.type,h(e)))throw new f("Expected value to be of type "+i(this.type)+", but found "+i(h(e))+" instead.");return e},d.prototype.eachChild=function(t){t(this.input)},d.prototype.possibleOutputs=function(){return this.input.possibleOutputs()},e.exports=d},{"../runtime_error":143,"../types":146,"../values":147}],125:[function(t,e,r){var n=t("../types"),i=n.ObjectType,a=n.ValueType,o=n.StringType,s=n.NumberType,l=n.BooleanType,u=t("../runtime_error"),c=t("../types"),h=c.checkSubtype,f=c.toString,p=t("../values").typeOf,d={string:o,number:s,boolean:l,object:i},g=function(t,e){this.type=t,this.args=e};g.parse=function(t,e){if(t.length<2)return e.error("Expected at least one argument.");for(var r=t[0],n=d[r],i=[],o=1;o=r.length)throw new s("Array index out of bounds: "+e+" > "+r.length+".");if(e!==Math.floor(e))throw new s("Array index must be an integer, but found "+e+" instead.");return r[e]},l.prototype.eachChild=function(t){t(this.index),t(this.input)},l.prototype.possibleOutputs=function(){return[void 0]},e.exports=l},{"../runtime_error":143,"../types":146}],127:[function(t,e,r){var n=t("../types").BooleanType,i=function(t,e,r){this.type=t,this.branches=e,this.otherwise=r};i.parse=function(t,e){if(t.length<4)return e.error("Expected at least 3 arguments, but found only "+(t.length-1)+".");if(t.length%2!=0)return e.error("Expected an odd number of arguments.");var r;e.expectedType&&"value"!==e.expectedType.kind&&(r=e.expectedType);for(var a=[],o=1;o4?"Invalid rbga value "+JSON.stringify(e)+": expected an array containing either three or four numeric values.":u(e[0],e[1],e[2],e[3])))return new l(e[0]/255,e[1]/255,e[2]/255,e[3]);throw new c(r||"Could not parse color from value '"+("string"==typeof e?e:JSON.stringify(e))+"'")}for(var o=null,s=0,h=this.args;sn.evaluate(t)}function u(t,e){var r=e[0],n=e[1];return r.evaluate(t)<=n.evaluate(t)}function c(t,e){var r=e[0],n=e[1];return r.evaluate(t)>=n.evaluate(t)}var h=t("../types"),f=h.NumberType,p=h.StringType,d=h.BooleanType,g=h.ColorType,v=h.ObjectType,m=h.ValueType,y=h.ErrorType,x=h.array,b=h.toString,_=t("../values"),w=_.typeOf,M=_.Color,A=_.validateRGBA,k=t("../compound_expression"),T=k.CompoundExpression,S=k.varargs,E=t("../runtime_error"),C=t("./let"),L=t("./var"),z=t("./literal"),P=t("./assertion"),I=t("./array"),D=t("./coercion"),O=t("./at"),R=t("./match"),F=t("./case"),B=t("./step"),N=t("./interpolate"),j=t("./coalesce"),V=t("./equals"),U={"==":V.Equals,"!=":V.NotEquals,array:I,at:O,boolean:P,case:F,coalesce:j,interpolate:N,let:C,literal:z,match:R,number:P,object:P,step:B,string:P,"to-color":D,"to-number":D,var:L};T.register(U,{error:[y,[p],function(t,e){var r=e[0];throw new E(r.evaluate(t))}],typeof:[p,[m],function(t,e){var r=e[0];return b(w(r.evaluate(t)))}],"to-string":[p,[m],function(t,e){var r=e[0],n=typeof(r=r.evaluate(t));return null===r||"string"===n||"number"===n||"boolean"===n?String(r):r instanceof M?r.toString():JSON.stringify(r)}],"to-boolean":[d,[m],function(t,e){var r=e[0];return Boolean(r.evaluate(t))}],"to-rgba":[x(f,4),[g],function(t,e){var r=e[0].evaluate(t),n=r.r,i=r.g,a=r.b,o=r.a;return[255*n/o,255*i/o,255*a/o,o]}],rgb:[g,[f,f,f],n],rgba:[g,[f,f,f,f],n],length:{type:f,overloads:[[[p],o],[[x(m)],o]]},has:{type:d,overloads:[[[p],function(t,e){return i(e[0].evaluate(t),t.properties())}],[[p,v],function(t,e){var r=e[0],n=e[1];return i(r.evaluate(t),n.evaluate(t))}]]},get:{type:m,overloads:[[[p],function(t,e){return a(e[0].evaluate(t),t.properties())}],[[p,v],function(t,e){var r=e[0],n=e[1];return a(r.evaluate(t),n.evaluate(t))}]]},properties:[v,[],function(t){return t.properties()}],"geometry-type":[p,[],function(t){return t.geometryType()}],id:[m,[],function(t){return t.id()}],zoom:[f,[],function(t){return t.globals.zoom}],"heatmap-density":[f,[],function(t){return t.globals.heatmapDensity||0}],"+":[f,S(f),function(t,e){for(var r=0,n=0,i=e;n":[d,[p,m],function(t,e){var r=e[0],n=e[1],i=t.properties()[r.value],a=n.value;return typeof i==typeof a&&i>a}],"filter-id->":[d,[m],function(t,e){var r=e[0],n=t.id(),i=r.value;return typeof n==typeof i&&n>i}],"filter-<=":[d,[p,m],function(t,e){var r=e[0],n=e[1],i=t.properties()[r.value],a=n.value;return typeof i==typeof a&&i<=a}],"filter-id-<=":[d,[m],function(t,e){var r=e[0],n=t.id(),i=r.value;return typeof n==typeof i&&n<=i}],"filter->=":[d,[p,m],function(t,e){var r=e[0],n=e[1],i=t.properties()[r.value],a=n.value;return typeof i==typeof a&&i>=a}],"filter-id->=":[d,[m],function(t,e){var r=e[0],n=t.id(),i=r.value;return typeof n==typeof i&&n>=i}],"filter-has":[d,[m],function(t,e){return e[0].value in t.properties()}],"filter-has-id":[d,[],function(t){return null!==t.id()}],"filter-type-in":[d,[x(p)],function(t,e){return e[0].value.indexOf(t.geometryType())>=0}],"filter-id-in":[d,[x(m)],function(t,e){return e[0].value.indexOf(t.id())>=0}],"filter-in-small":[d,[p,x(m)],function(t,e){var r=e[0];return e[1].value.indexOf(t.properties()[r.value])>=0}],"filter-in-large":[d,[p,x(m)],function(t,e){var r=e[0],n=e[1];return function(t,e,r,n){for(;r<=n;){var i=r+n>>1;if(e[i]===t)return!0;e[i]>t?n=i-1:r=i+1}return!1}(t.properties()[r.value],n.value,0,n.value.length-1)}],">":{type:d,overloads:[[[f,f],l],[[p,p],l]]},"<":{type:d,overloads:[[[f,f],s],[[p,p],s]]},">=":{type:d,overloads:[[[f,f],c],[[p,p],c]]},"<=":{type:d,overloads:[[[f,f],u],[[p,p],u]]},all:{type:d,overloads:[[[d,d],function(t,e){var r=e[0],n=e[1];return r.evaluate(t)&&n.evaluate(t)}],[S(d),function(t,e){for(var r=0,n=e;r1}))return e.error("Cubic bezier interpolation requires four numeric arguments with values between 0 and 1.",1);r={name:"cubic-bezier",controlPoints:o}}if(t.length-1<4)return e.error("Expected at least 4 arguments, but found only "+(t.length-1)+".");if((t.length-1)%2!=0)return e.error("Expected an even number of arguments.");if(!(n=e.parse(n,2,l)))return null;var u=[],h=null;e.expectedType&&"value"!==e.expectedType.kind&&(h=e.expectedType);for(var f=0;f=p)return e.error('Input/output pairs for "interpolate" expressions must be arranged with input values in strictly ascending order.',g);var m=e.parse(d,v,h);if(!m)return null;h=h||m.type,u.push([p,m])}return"number"===h.kind||"color"===h.kind||"array"===h.kind&&"number"===h.itemType.kind&&"number"==typeof h.N?new c(h,r,n,u):e.error("Type "+s(h)+" is not interpolatable.")},c.prototype.evaluate=function(t){var e=this.labels,r=this.outputs;if(1===e.length)return r[0].evaluate(t);var n=this.input.evaluate(t);if(n<=e[0])return r[0].evaluate(t);var i=e.length;if(n>=e[i-1])return r[i-1].evaluate(t);var o=u(e,n),s=e[o],l=e[o+1],h=c.interpolationFactor(this.interpolation,n,s,l),f=r[o].evaluate(t),p=r[o+1].evaluate(t);return a[this.type.kind.toLowerCase()](f,p,h)},c.prototype.eachChild=function(t){t(this.input);for(var e=0,r=this.outputs;eNumber.MAX_SAFE_INTEGER)return h.error("Branch labels must be integers no larger than "+Number.MAX_SAFE_INTEGER+".");if("number"==typeof d&&Math.floor(d)!==d)return h.error("Numeric branch labels must be integer values.");if(r){if(h.checkSubtype(r,n(d)))return null}else r=n(d);if(void 0!==o[String(d)])return h.error("Branch labels must be unique.");o[String(d)]=s.length}var g=e.parse(c,l,a);if(!g)return null;a=a||g.type,s.push(g)}var v=e.parse(t[1],1,r);if(!v)return null;var m=e.parse(t[t.length-1],t.length-1,a);return m?new i(r,a,v,o,s,m):null},i.prototype.evaluate=function(t){var e=this.input.evaluate(t);return(this.outputs[this.cases[e]]||this.otherwise).evaluate(t)},i.prototype.eachChild=function(t){t(this.input),this.outputs.forEach(t),t(this.otherwise)},i.prototype.possibleOutputs=function(){return(t=[]).concat.apply(t,this.outputs.map(function(t){return t.possibleOutputs()})).concat(this.otherwise.possibleOutputs());var t},e.exports=i},{"../values":147}],136:[function(t,e,r){var n=t("../types").NumberType,i=t("../stops").findStopLessThanOrEqualTo,a=function(t,e,r){this.type=t,this.input=e,this.labels=[],this.outputs=[];for(var n=0,i=r;n=u)return e.error('Input/output pairs for "step" expressions must be arranged with input values in strictly ascending order.',h);var p=e.parse(c,f,s);if(!p)return null;s=s||p.type,o.push([u,p])}return new a(s,r,o)},a.prototype.evaluate=function(t){var e=this.labels,r=this.outputs;if(1===e.length)return r[0].evaluate(t);var n=this.input.evaluate(t);if(n<=e[0])return r[0].evaluate(t);var a=e.length;return n>=e[a-1]?r[a-1].evaluate(t):r[i(e,n)].evaluate(t)},a.prototype.eachChild=function(t){t(this.input);for(var e=0,r=this.outputs;e0&&"string"==typeof t[0]&&t[0]in g}function i(t,e,r){void 0===r&&(r={});var n=new l(g,[],function(t){var e={color:z,string:P,number:I,enum:P,boolean:D};return"array"===t.type?R(e[t.value]||O,t.length):e[t.type]||null}(e)),i=n.parse(t);return i?x(!1===r.handleErrors?new _(i):new w(i,e)):b(n.errors)}function a(t,e,r){if(void 0===r&&(r={}),"error"===(t=i(t,e,r)).result)return t;var n=t.value.expression,a=v.isFeatureConstant(n);if(!a&&!e["property-function"])return b([new s("","property expressions not supported")]);var o=v.isGlobalPropertyConstant(n,["zoom"]);if(!o&&!1===e["zoom-function"])return b([new s("","zoom expressions not supported")]);var l=function t(e){var r=null;if(e instanceof d)r=t(e.result);else if(e instanceof p)for(var n=0,i=e.args;n=0)return!1;var i=!0;return e.eachChild(function(e){i&&!t(e,r)&&(i=!1)}),i}}},{"./compound_expression":123}],141:[function(t,e,r){var n=t("./scope"),i=t("./types").checkSubtype,a=t("./parsing_error"),o=t("./definitions/literal"),s=t("./definitions/assertion"),l=t("./definitions/array"),u=t("./definitions/coercion"),c=function(t,e,r,i,a){void 0===e&&(e=[]),void 0===i&&(i=new n),void 0===a&&(a=[]),this.registry=t,this.path=e,this.key=e.map(function(t){return"["+t+"]"}).join(""),this.scope=i,this.errors=a,this.expectedType=r};c.prototype.parse=function(e,r,n,i,a){void 0===a&&(a={});var c=this;if(r&&(c=c.concat(r,n,i)),null!==e&&"string"!=typeof e&&"boolean"!=typeof e&&"number"!=typeof e||(e=["literal",e]),Array.isArray(e)){if(0===e.length)return c.error('Expected an array with at least one element. If you wanted a literal array, use ["literal", []].');var h=e[0];if("string"!=typeof h)return c.error("Expression name must be a string, but found "+typeof h+' instead. If you wanted a literal array, use ["literal", [...]].',0),null;var f=c.registry[h];if(f){var p=f.parse(e,c);if(!p)return null;if(c.expectedType){var d=c.expectedType,g=p.type;if("string"!==d.kind&&"number"!==d.kind&&"boolean"!==d.kind||"value"!==g.kind)if("array"===d.kind&&"value"===g.kind)a.omitTypeAnnotations||(p=new l(d,p));else if("color"!==d.kind||"value"!==g.kind&&"string"!==g.kind){if(c.checkSubtype(c.expectedType,p.type))return null}else a.omitTypeAnnotations||(p=new u(d,[p]));else a.omitTypeAnnotations||(p=new s(d,[p]))}if(!(p instanceof o)&&function(e){var r=t("./compound_expression").CompoundExpression,n=t("./is_constant"),i=n.isGlobalPropertyConstant,a=n.isFeatureConstant;if(e instanceof t("./definitions/var"))return!1;if(e instanceof r&&"error"===e.name)return!1;var s=!0;return e.eachChild(function(t){t instanceof o||(s=!1)}),!!s&&a(e)&&i(e,["zoom","heatmap-density"])}(p)){var v=new(t("./evaluation_context"));try{p=new o(p.type,p.evaluate(v))}catch(e){return c.error(e.message),null}}return p}return c.error('Unknown expression "'+h+'". If you wanted a literal array, use ["literal", [...]].',0)}return void 0===e?c.error("'undefined' value invalid. Use null instead."):"object"==typeof e?c.error('Bare objects invalid. Use ["literal", {...}] instead.'):c.error("Expected an array, but found "+typeof e+" instead.")},c.prototype.concat=function(t,e,r){var n="number"==typeof t?this.path.concat(t):this.path,i=r?this.scope.concat(r):this.scope;return new c(this.registry,n,e||null,i,this.errors)},c.prototype.error=function(t){for(var e=arguments,r=[],n=arguments.length-1;n-- >0;)r[n]=e[n+1];var i=""+this.key+r.map(function(t){return"["+t+"]"}).join("");this.errors.push(new a(i,t))},c.prototype.checkSubtype=function(t,e){var r=i(t,e);return r&&this.error(r),r},e.exports=c},{"./compound_expression":123,"./definitions/array":124,"./definitions/assertion":125,"./definitions/coercion":129,"./definitions/literal":134,"./definitions/var":137,"./evaluation_context":138,"./is_constant":140,"./parsing_error":142,"./scope":144,"./types":146}],142:[function(t,e,r){var n=function(t){function e(e,r){t.call(this,r),this.message=r,this.key=e}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Error);e.exports=n},{}],143:[function(t,e,r){var n=function(t){this.name="ExpressionEvaluationError",this.message=t};n.prototype.toJSON=function(){return this.message},e.exports=n},{}],144:[function(t,e,r){var n=function(t,e){void 0===e&&(e=[]),this.parent=t,this.bindings={};for(var r=0,n=e;rr&&ee))throw new n("Input is not a number.");o=s-1}}return Math.max(s-1,0)}}},{"./runtime_error":143}],146:[function(t,e,r){function n(t,e){return{kind:"array",itemType:t,N:e}}function i(t){if("array"===t.kind){var e=i(t.itemType);return"number"==typeof t.N?"array<"+e+", "+t.N+">":"value"===t.itemType.kind?"array":"array<"+e+">"}return t.kind}var a={kind:"null"},o={kind:"number"},s={kind:"string"},l={kind:"boolean"},u={kind:"color"},c={kind:"object"},h={kind:"value"},f=[a,o,s,l,u,c,n(h)];e.exports={NullType:a,NumberType:o,StringType:s,BooleanType:l,ColorType:u,ObjectType:c,ValueType:h,array:n,ErrorType:{kind:"error"},toString:i,checkSubtype:function t(e,r){if("error"===r.kind)return null;if("array"===e.kind){if("array"===r.kind&&!t(e.itemType,r.itemType)&&("number"!=typeof e.N||e.N===r.N))return null}else{if(e.kind===r.kind)return null;if("value"===e.kind)for(var n=0,a=f;n=0&&t<=255&&"number"==typeof e&&e>=0&&e<=255&&"number"==typeof r&&r>=0&&r<=255?void 0===n||"number"==typeof n&&n>=0&&n<=1?null:"Invalid rgba value ["+[t,e,r,n].join(", ")+"]: 'a' must be between 0 and 1.":"Invalid rgba value ["+("number"==typeof n?[t,e,r,n]:[t,e,r]).join(", ")+"]: 'r', 'g', and 'b' must be between 0 and 255."},isValue:function t(e){if(null===e)return!0;if("string"==typeof e)return!0;if("boolean"==typeof e)return!0;if("number"==typeof e)return!0;if(e instanceof n)return!0;if(Array.isArray(e)){for(var r=0,i=e;r=2&&"$id"!==t[1]&&"$type"!==t[1];case"in":case"!in":case"!has":case"none":return!1;case"==":case"!=":case">":case">=":case"<":case"<=":return 3===t.length&&(Array.isArray(t[1])||Array.isArray(t[2]));case"any":case"all":for(var e=0,r=t.slice(1);ee?1:0}function a(t){if(!t)return!0;var e=t[0];return t.length<=1?"any"!==e:"=="===e?o(t[1],t[2],"=="):"!="===e?u(o(t[1],t[2],"==")):"<"===e||">"===e||"<="===e||">="===e?o(t[1],t[2],e):"any"===e?function(t){return["any"].concat(t.map(a))}(t.slice(1)):"all"===e?["all"].concat(t.slice(1).map(a)):"none"===e?["all"].concat(t.slice(1).map(a).map(u)):"in"===e?s(t[1],t.slice(2)):"!in"===e?u(s(t[1],t.slice(2))):"has"===e?l(t[1]):"!has"!==e||u(l(t[1]))}function o(t,e,r){switch(t){case"$type":return["filter-type-"+r,e];case"$id":return["filter-id-"+r,e];default:return["filter-"+r,t,e]}}function s(t,e){if(0===e.length)return!1;switch(t){case"$type":return["filter-type-in",["literal",e]];case"$id":return["filter-id-in",["literal",e]];default:return e.length>200&&!e.some(function(t){return typeof t!=typeof e[0]})?["filter-in-large",t,["literal",e.sort(i)]]:["filter-in-small",t,["literal",e]]}}function l(t){switch(t){case"$type":return!0;case"$id":return["filter-has-id"];default:return["filter-has",t]}}function u(t){return["!",t]}var c=t("../expression").createExpression;e.exports=function(t){if(!t)return function(){return!0};n(t)||(t=a(t));var e=c(t,h);if("error"===e.result)throw new Error(e.value.map(function(t){return t.key+": "+t.message}).join(", "));return function(t,r){return e.value.evaluate(t,r)}},e.exports.isExpressionFilter=n;var h={type:"boolean",default:!1,function:!0,"property-function":!0,"zoom-function":!0}},{"../expression":139}],149:[function(t,e,r){function n(t){return t}function i(t,e,r){return void 0!==t?t:void 0!==e?e:void 0!==r?r:void 0}function a(t,e,r,n,a){return i(typeof r===a?n[r]:void 0,t.default,e.default)}function o(t,e,r){if("number"!==p(r))return i(t.default,e.default);var n=t.stops.length;if(1===n)return t.stops[0][1];if(r<=t.stops[0][0])return t.stops[0][1];if(r>=t.stops[n-1][0])return t.stops[n-1][1];var a=u(t.stops,r);return t.stops[a][1]}function s(t,e,r){var a=void 0!==t.base?t.base:1;if("number"!==p(r))return i(t.default,e.default);var o=t.stops.length;if(1===o)return t.stops[0][1];if(r<=t.stops[0][0])return t.stops[0][1];if(r>=t.stops[o-1][0])return t.stops[o-1][1];var s=u(t.stops,r),l=function(t,e,r,n){var i=n-r,a=t-r;return 0===i?0:1===e?a/i:(Math.pow(e,a)-1)/(Math.pow(e,i)-1)}(r,a,t.stops[s][0],t.stops[s+1][0]),h=t.stops[s][1],f=t.stops[s+1][1],g=d[e.type]||n;if(t.colorSpace&&"rgb"!==t.colorSpace){var v=c[t.colorSpace];g=function(t,e){return v.reverse(v.interpolate(v.forward(t),v.forward(e),l))}}return"function"==typeof h.evaluate?{evaluate:function(){for(var t=arguments,e=[],r=arguments.length;r--;)e[r]=t[r];var n=h.evaluate.apply(void 0,e),i=f.evaluate.apply(void 0,e);if(void 0!==n&&void 0!==i)return g(n,i,l)}}:g(h,f,l)}function l(t,e,r){return"color"===e.type?r=h.parse(r):p(r)===e.type||"enum"===e.type&&e.values[r]||(r=void 0),i(r,t.default,e.default)}function u(t,e){for(var r,n,i=0,a=t.length-1,o=0;i<=a;){if(r=t[o=Math.floor((i+a)/2)][0],n=t[o+1][0],e===r||e>r&&ee&&(a=o-1)}return Math.max(o-1,0)}var c=t("../util/color_spaces"),h=t("../util/color"),f=t("../util/extend"),p=t("../util/get_type"),d=t("../util/interpolate"),g=t("../expression/definitions/interpolate");e.exports={createFunction:function t(e,r){var n,u,p,d="color"===r.type,v=e.stops&&"object"==typeof e.stops[0][0],m=v||void 0!==e.property,y=v||!m,x=e.type||("interpolated"===r.function?"exponential":"interval");if(d&&((e=f({},e)).stops&&(e.stops=e.stops.map(function(t){return[t[0],h.parse(t[1])]})),e.default?e.default=h.parse(e.default):e.default=h.parse(r.default)),e.colorSpace&&"rgb"!==e.colorSpace&&!c[e.colorSpace])throw new Error("Unknown color space: "+e.colorSpace);if("exponential"===x)n=s;else if("interval"===x)n=o;else if("categorical"===x){n=a,u=Object.create(null);for(var b=0,_=e.stops;b<_.length;b+=1){var w=_[b];u[w[0]]=w[1]}p=typeof e.stops[0][0]}else{if("identity"!==x)throw new Error('Unknown function type "'+x+'"');n=l}if(v){for(var M={},A=[],k=0;k":{},">=":{},"<":{},"<=":{},in:{},"!in":{},all:{},any:{},none:{},has:{},"!has":{}}},geometry_type:{type:"enum",values:{Point:{},LineString:{},Polygon:{}}},function:{expression:{type:"expression"},stops:{type:"array",value:"function_stop"},base:{type:"number",default:1,minimum:0},property:{type:"string",default:"$zoom"},type:{type:"enum",values:{identity:{},exponential:{},interval:{},categorical:{}},default:"exponential"},colorSpace:{type:"enum",values:{rgb:{},lab:{},hcl:{}},default:"rgb"},default:{type:"*",required:!1}},function_stop:{type:"array",minimum:0,maximum:22,value:["number","color"],length:2},expression:{type:"array",value:"*",minimum:1},expression_name:{type:"enum",values:{let:{group:"Variable binding"},var:{group:"Variable binding"},literal:{group:"Types"},array:{group:"Types"},at:{group:"Lookup"},case:{group:"Decision"},match:{group:"Decision"},coalesce:{group:"Decision"},step:{group:"Ramps, scales, curves"},interpolate:{group:"Ramps, scales, curves"},ln2:{group:"Math"},pi:{group:"Math"},e:{group:"Math"},typeof:{group:"Types"},string:{group:"Types"},number:{group:"Types"},boolean:{group:"Types"},object:{group:"Types"},"to-string":{group:"Types"},"to-number":{group:"Types"},"to-boolean":{group:"Types"},"to-rgba":{group:"Color"},"to-color":{group:"Types"},rgb:{group:"Color"},rgba:{group:"Color"},get:{group:"Lookup"},has:{group:"Lookup"},length:{group:"Lookup"},properties:{group:"Feature data"},"geometry-type":{group:"Feature data"},id:{group:"Feature data"},zoom:{group:"Zoom"},"heatmap-density":{group:"Heatmap"},"+":{group:"Math"},"*":{group:"Math"},"-":{group:"Math"},"/":{group:"Math"},"%":{group:"Math"},"^":{group:"Math"},sqrt:{group:"Math"},log10:{group:"Math"},ln:{group:"Math"},log2:{group:"Math"},sin:{group:"Math"},cos:{group:"Math"},tan:{group:"Math"},asin:{group:"Math"},acos:{group:"Math"},atan:{group:"Math"},min:{group:"Math"},max:{group:"Math"},"==":{group:"Decision"},"!=":{group:"Decision"},">":{group:"Decision"},"<":{group:"Decision"},">=":{group:"Decision"},"<=":{group:"Decision"},all:{group:"Decision"},any:{group:"Decision"},"!":{group:"Decision"},upcase:{group:"String"},downcase:{group:"String"},concat:{group:"String"}}},light:{anchor:{type:"enum",default:"viewport",values:{map:{},viewport:{}},transition:!1,"zoom-function":!0,"property-function":!1,function:"piecewise-constant"},position:{type:"array",default:[1.15,210,30],length:3,value:"number",transition:!0,function:"interpolated","zoom-function":!0,"property-function":!1},color:{type:"color",default:"#ffffff",function:"interpolated","zoom-function":!0,"property-function":!1,transition:!0},intensity:{type:"number",default:.5,minimum:0,maximum:1,function:"interpolated","zoom-function":!0,"property-function":!1,transition:!0}},paint:["paint_fill","paint_line","paint_circle","paint_heatmap","paint_fill-extrusion","paint_symbol","paint_raster","paint_hillshade","paint_background"],paint_fill:{"fill-antialias":{type:"boolean",function:"piecewise-constant","zoom-function":!0,default:!0},"fill-opacity":{type:"number",function:"interpolated","zoom-function":!0,"property-function":!0,default:1,minimum:0,maximum:1,transition:!0},"fill-color":{type:"color",default:"#000000",function:"interpolated","zoom-function":!0,"property-function":!0,transition:!0,requires:[{"!":"fill-pattern"}]},"fill-outline-color":{type:"color",function:"interpolated","zoom-function":!0,"property-function":!0,transition:!0,requires:[{"!":"fill-pattern"},{"fill-antialias":!0}]},"fill-translate":{type:"array",value:"number",length:2,default:[0,0],function:"interpolated","zoom-function":!0,transition:!0,units:"pixels"},"fill-translate-anchor":{type:"enum",function:"piecewise-constant","zoom-function":!0,values:{map:{},viewport:{}},default:"map",requires:["fill-translate"]},"fill-pattern":{type:"string",function:"piecewise-constant","zoom-function":!0,transition:!0}},"paint_fill-extrusion":{"fill-extrusion-opacity":{type:"number",function:"interpolated","zoom-function":!0,"property-function":!1,default:1,minimum:0,maximum:1,transition:!0},"fill-extrusion-color":{type:"color",default:"#000000",function:"interpolated","zoom-function":!0,"property-function":!0,transition:!0,requires:[{"!":"fill-extrusion-pattern"}]},"fill-extrusion-translate":{type:"array",value:"number",length:2,default:[0,0],function:"interpolated","zoom-function":!0,transition:!0,units:"pixels"},"fill-extrusion-translate-anchor":{type:"enum",function:"piecewise-constant","zoom-function":!0,values:{map:{},viewport:{}},default:"map",requires:["fill-extrusion-translate"]},"fill-extrusion-pattern":{type:"string",function:"piecewise-constant","zoom-function":!0,transition:!0},"fill-extrusion-height":{type:"number",function:"interpolated","zoom-function":!0,"property-function":!0,default:0,minimum:0,units:"meters",transition:!0},"fill-extrusion-base":{type:"number",function:"interpolated","zoom-function":!0,"property-function":!0,default:0,minimum:0,units:"meters",transition:!0,requires:["fill-extrusion-height"]}},paint_line:{"line-opacity":{type:"number",function:"interpolated","zoom-function":!0,"property-function":!0,default:1,minimum:0,maximum:1,transition:!0},"line-color":{type:"color",default:"#000000",function:"interpolated","zoom-function":!0,"property-function":!0,transition:!0,requires:[{"!":"line-pattern"}]},"line-translate":{type:"array",value:"number",length:2,default:[0,0],function:"interpolated","zoom-function":!0,transition:!0,units:"pixels"},"line-translate-anchor":{type:"enum",function:"piecewise-constant","zoom-function":!0,values:{map:{},viewport:{}},default:"map",requires:["line-translate"]},"line-width":{type:"number",default:1,minimum:0,function:"interpolated","zoom-function":!0,"property-function":!0,transition:!0,units:"pixels"},"line-gap-width":{type:"number",default:0,minimum:0,function:"interpolated","zoom-function":!0,"property-function":!0,transition:!0,units:"pixels"},"line-offset":{type:"number",default:0,function:"interpolated","zoom-function":!0,"property-function":!0,transition:!0,units:"pixels"},"line-blur":{type:"number",default:0,minimum:0,function:"interpolated","zoom-function":!0,"property-function":!0,transition:!0,units:"pixels"},"line-dasharray":{type:"array",value:"number",function:"piecewise-constant","zoom-function":!0,minimum:0,transition:!0,units:"line widths",requires:[{"!":"line-pattern"}]},"line-pattern":{type:"string",function:"piecewise-constant","zoom-function":!0,transition:!0}},paint_circle:{"circle-radius":{type:"number",default:5,minimum:0,function:"interpolated","zoom-function":!0,"property-function":!0,transition:!0,units:"pixels"},"circle-color":{type:"color",default:"#000000",function:"interpolated","zoom-function":!0,"property-function":!0,transition:!0},"circle-blur":{type:"number",default:0,function:"interpolated","zoom-function":!0,"property-function":!0,transition:!0},"circle-opacity":{type:"number",default:1,minimum:0,maximum:1,function:"interpolated","zoom-function":!0,"property-function":!0,transition:!0},"circle-translate":{type:"array",value:"number",length:2,default:[0,0],function:"interpolated","zoom-function":!0,transition:!0,units:"pixels"},"circle-translate-anchor":{type:"enum",function:"piecewise-constant","zoom-function":!0,values:{map:{},viewport:{}},default:"map",requires:["circle-translate"]},"circle-pitch-scale":{type:"enum",function:"piecewise-constant","zoom-function":!0,values:{map:{},viewport:{}},default:"map"},"circle-pitch-alignment":{type:"enum",function:"piecewise-constant","zoom-function":!0,values:{map:{},viewport:{}},default:"viewport"},"circle-stroke-width":{type:"number",default:0,minimum:0,function:"interpolated","zoom-function":!0,"property-function":!0,transition:!0,units:"pixels"},"circle-stroke-color":{type:"color",default:"#000000",function:"interpolated","zoom-function":!0,"property-function":!0,transition:!0},"circle-stroke-opacity":{type:"number",default:1,minimum:0,maximum:1,function:"interpolated","zoom-function":!0,"property-function":!0,transition:!0}},paint_heatmap:{"heatmap-radius":{type:"number",default:30,minimum:1,function:"interpolated","zoom-function":!0,"property-function":!0,transition:!0,units:"pixels"},"heatmap-weight":{type:"number",default:1,minimum:0,function:"interpolated","zoom-function":!0,"property-function":!0,transition:!1},"heatmap-intensity":{type:"number",default:1,minimum:0,function:"interpolated","zoom-function":!0,"property-function":!1,transition:!0},"heatmap-color":{type:"color",default:["interpolate",["linear"],["heatmap-density"],0,"rgba(0, 0, 255, 0)",.1,"royalblue",.3,"cyan",.5,"lime",.7,"yellow",1,"red"],function:"interpolated","zoom-function":!1,"property-function":!1,transition:!1},"heatmap-opacity":{type:"number",default:1,minimum:0,maximum:1,function:"interpolated","zoom-function":!0,"property-function":!1,transition:!0}},paint_symbol:{"icon-opacity":{type:"number",default:1,minimum:0,maximum:1,function:"interpolated","zoom-function":!0,"property-function":!0,transition:!0,requires:["icon-image"]},"icon-color":{type:"color",default:"#000000",function:"interpolated","zoom-function":!0,"property-function":!0,transition:!0,requires:["icon-image"]},"icon-halo-color":{type:"color",default:"rgba(0, 0, 0, 0)",function:"interpolated","zoom-function":!0,"property-function":!0,transition:!0,requires:["icon-image"]},"icon-halo-width":{type:"number",default:0,minimum:0,function:"interpolated","zoom-function":!0,"property-function":!0,transition:!0,units:"pixels",requires:["icon-image"]},"icon-halo-blur":{type:"number",default:0,minimum:0,function:"interpolated","zoom-function":!0,"property-function":!0,transition:!0,units:"pixels",requires:["icon-image"]},"icon-translate":{type:"array",value:"number",length:2,default:[0,0],function:"interpolated","zoom-function":!0,transition:!0,units:"pixels",requires:["icon-image"]},"icon-translate-anchor":{type:"enum",function:"piecewise-constant","zoom-function":!0,values:{map:{},viewport:{}},default:"map",requires:["icon-image","icon-translate"]},"text-opacity":{type:"number",default:1,minimum:0,maximum:1,function:"interpolated","zoom-function":!0,"property-function":!0,transition:!0,requires:["text-field"]},"text-color":{type:"color",default:"#000000",function:"interpolated","zoom-function":!0,"property-function":!0,transition:!0,requires:["text-field"]},"text-halo-color":{type:"color",default:"rgba(0, 0, 0, 0)",function:"interpolated","zoom-function":!0,"property-function":!0,transition:!0,requires:["text-field"]},"text-halo-width":{type:"number",default:0,minimum:0,function:"interpolated","zoom-function":!0,"property-function":!0,transition:!0,units:"pixels",requires:["text-field"]},"text-halo-blur":{type:"number",default:0,minimum:0,function:"interpolated","zoom-function":!0,"property-function":!0,transition:!0,units:"pixels",requires:["text-field"]},"text-translate":{type:"array",value:"number",length:2,default:[0,0],function:"interpolated","zoom-function":!0,transition:!0,units:"pixels",requires:["text-field"]},"text-translate-anchor":{type:"enum",function:"piecewise-constant","zoom-function":!0,values:{map:{},viewport:{}},default:"map",requires:["text-field","text-translate"]}},paint_raster:{"raster-opacity":{type:"number",default:1,minimum:0,maximum:1,function:"interpolated","zoom-function":!0,transition:!0},"raster-hue-rotate":{type:"number",default:0,period:360,function:"interpolated","zoom-function":!0,transition:!0,units:"degrees"},"raster-brightness-min":{type:"number",function:"interpolated","zoom-function":!0,default:0,minimum:0,maximum:1,transition:!0},"raster-brightness-max":{type:"number",function:"interpolated","zoom-function":!0,default:1,minimum:0,maximum:1,transition:!0},"raster-saturation":{type:"number",default:0,minimum:-1,maximum:1,function:"interpolated","zoom-function":!0,transition:!0},"raster-contrast":{type:"number",default:0,minimum:-1,maximum:1,function:"interpolated","zoom-function":!0,transition:!0},"raster-fade-duration":{type:"number",default:300,minimum:0,function:"interpolated","zoom-function":!0,transition:!1,units:"milliseconds"}},paint_hillshade:{"hillshade-illumination-direction":{type:"number",default:335,minimum:0,maximum:359,function:"interpolated","zoom-function":!0,transition:!1},"hillshade-illumination-anchor":{type:"enum",function:"piecewise-constant","zoom-function":!0,values:{map:{},viewport:{}},default:"viewport"},"hillshade-exaggeration":{type:"number",default:.5,minimum:0,maximum:1,function:"interpolated","zoom-function":!0,transition:!0},"hillshade-shadow-color":{type:"color",default:"#000000",function:"interpolated","zoom-function":!0,transition:!0},"hillshade-highlight-color":{type:"color",default:"#FFFFFF",function:"interpolated","zoom-function":!0,transition:!0},"hillshade-accent-color":{type:"color",default:"#000000",function:"interpolated","zoom-function":!0,transition:!0}},paint_background:{"background-color":{type:"color",default:"#000000",function:"interpolated","zoom-function":!0,transition:!0,requires:[{"!":"background-pattern"}]},"background-pattern":{type:"string",function:"piecewise-constant","zoom-function":!0,transition:!0},"background-opacity":{type:"number",default:1,minimum:0,maximum:1,function:"interpolated","zoom-function":!0,transition:!0}},transition:{duration:{type:"number",default:300,minimum:0,units:"milliseconds"},delay:{type:"number",default:0,minimum:0,units:"milliseconds"}}}},{}],153:[function(t,e,r){var n=t("csscolorparser").parseCSSColor,i=function(t,e,r,n){void 0===n&&(n=1),this.r=t,this.g=e,this.b=r,this.a=n};i.parse=function(t){if(t){if(t instanceof i)return t;if("string"==typeof t){var e=n(t);if(e)return new i(e[0]/255*e[3],e[1]/255*e[3],e[2]/255*e[3],e[3])}}},i.prototype.toString=function(){var t=this;return"rgba("+[this.r,this.g,this.b].map(function(e){return Math.round(255*e/t.a)}).concat(this.a).join(",")+")"},i.black=new i(0,0,0,1),i.white=new i(1,1,1,1),i.transparent=new i(0,0,0,0),e.exports=i},{csscolorparser:13}],154:[function(t,e,r){function n(t){return t>m?Math.pow(t,1/3):t/v+d}function i(t){return t>g?t*t*t:v*(t-d)}function a(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function o(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function s(t){var e=o(t.r),r=o(t.g),i=o(t.b),a=n((.4124564*e+.3575761*r+.1804375*i)/h),s=n((.2126729*e+.7151522*r+.072175*i)/f);return{l:116*s-16,a:500*(a-s),b:200*(s-n((.0193339*e+.119192*r+.9503041*i)/p)),alpha:t.a}}function l(t){var e=(t.l+16)/116,r=isNaN(t.a)?e:e+t.a/500,n=isNaN(t.b)?e:e-t.b/200;return e=f*i(e),r=h*i(r),n=p*i(n),new u(a(3.2404542*r-1.5371385*e-.4985314*n),a(-.969266*r+1.8760108*e+.041556*n),a(.0556434*r-.2040259*e+1.0572252*n),t.alpha)}var u=t("./color"),c=t("./interpolate").number,h=.95047,f=1,p=1.08883,d=4/29,g=6/29,v=3*g*g,m=g*g*g,y=Math.PI/180,x=180/Math.PI;e.exports={lab:{forward:s,reverse:l,interpolate:function(t,e,r){return{l:c(t.l,e.l,r),a:c(t.a,e.a,r),b:c(t.b,e.b,r),alpha:c(t.alpha,e.alpha,r)}}},hcl:{forward:function(t){var e=s(t),r=e.l,n=e.a,i=e.b,a=Math.atan2(i,n)*x;return{h:a<0?a+360:a,c:Math.sqrt(n*n+i*i),l:r,alpha:t.a}},reverse:function(t){var e=t.h*y,r=t.c;return l({l:t.l,a:Math.cos(e)*r,b:Math.sin(e)*r,alpha:t.alpha})},interpolate:function(t,e,r){return{h:function(t,e,r){var n=e-t;return t+r*(n>180||n<-180?n-360*Math.round(n/360):n)}(t.h,e.h,r),c:c(t.c,e.c,r),l:c(t.l,e.l,r),alpha:c(t.alpha,e.alpha,r)}}}}},{"./color":153,"./interpolate":158}],155:[function(t,e,r){e.exports=function t(e,r){if(Array.isArray(e)){if(!Array.isArray(r)||e.length!==r.length)return!1;for(var n=0;n0;)r[n]=e[n+1];for(var i=0,a=r;i":case">=":r.length>=2&&"$type"===s(r[1])&&c.push(new n(i,r,'"$type" cannot be use with operator "'+r[0]+'"'));case"==":case"!=":3!==r.length&&c.push(new n(i,r,'filter array for operator "'+r[0]+'" must have 3 elements'));case"in":case"!in":r.length>=2&&"string"!==(l=o(r[1]))&&c.push(new n(i+"[1]",r[1],"string expected, "+l+" found"));for(var h=2;hu(s[0].zoom))return[new n(c,s[0].zoom,"stop zoom values must appear in ascending order")];u(s[0].zoom)!==f&&(f=u(s[0].zoom),h=void 0,g={}),e=e.concat(o({key:c+"[0]",value:s[0],valueSpec:{zoom:{}},style:t.style,styleSpec:t.styleSpec,objectElementValidators:{zoom:l,value:r}}))}else e=e.concat(r({key:c+"[0]",value:s[0],valueSpec:{},style:t.style,styleSpec:t.styleSpec},s));return e.concat(a({key:c+"[1]",value:s[1],valueSpec:p,style:t.style,styleSpec:t.styleSpec}))}function r(t,e){var r=i(t.value),a=u(t.value),o=null!==t.value?t.value:e;if(c){if(r!==c)return[new n(t.key,o,r+" stop domain type must match previous stop domain type "+c)]}else c=r;if("number"!==r&&"string"!==r&&"boolean"!==r)return[new n(t.key,o,"stop domain value must be a number, string, or boolean")];if("number"!==r&&"categorical"!==d){var s="number expected, "+r+" found";return p["property-function"]&&void 0===d&&(s+='\nIf you intended to use a categorical function, specify `"type": "categorical"`.'),[new n(t.key,o,s)]}return"categorical"!==d||"number"!==r||isFinite(a)&&Math.floor(a)===a?"categorical"!==d&&"number"===r&&void 0!==h&&a=8&&(m&&!t.valueSpec["property-function"]?x.push(new n(t.key,t.value,"property functions not supported")):v&&!t.valueSpec["zoom-function"]&&"heatmap-color"!==t.objectKey&&x.push(new n(t.key,t.value,"zoom functions not supported"))),"categorical"!==d&&!y||void 0!==t.value.property||x.push(new n(t.key,t.value,'"property" property is required')),x}},{"../error/validation_error":122,"../util/get_type":157,"../util/unbundle_jsonlint":161,"./validate":162,"./validate_array":163,"./validate_number":175,"./validate_object":176}],171:[function(t,e,r){var n=t("../error/validation_error"),i=t("./validate_string");e.exports=function(t){var e=t.value,r=t.key,a=i(t);return a.length?a:(-1===e.indexOf("{fontstack}")&&a.push(new n(r,e,'"glyphs" url must include a "{fontstack}" token')),-1===e.indexOf("{range}")&&a.push(new n(r,e,'"glyphs" url must include a "{range}" token')),a)}},{"../error/validation_error":122,"./validate_string":180}],172:[function(t,e,r){var n=t("../error/validation_error"),i=t("../util/unbundle_jsonlint"),a=t("./validate_object"),o=t("./validate_filter"),s=t("./validate_paint_property"),l=t("./validate_layout_property"),u=t("./validate"),c=t("../util/extend");e.exports=function(t){var e=[],r=t.value,h=t.key,f=t.style,p=t.styleSpec;r.type||r.ref||e.push(new n(h,r,'either "type" or "ref" is required'));var d,g=i(r.type),v=i(r.ref);if(r.id)for(var m=i(r.id),y=0;ya.maximum?[new i(e,r,r+" is greater than the maximum value "+a.maximum)]:[]}},{"../error/validation_error":122,"../util/get_type":157}],176:[function(t,e,r){var n=t("../error/validation_error"),i=t("../util/get_type"),a=t("./validate");e.exports=function(t){var e=t.key,r=t.value,o=t.valueSpec||{},s=t.objectElementValidators||{},l=t.style,u=t.styleSpec,c=[],h=i(r);if("object"!==h)return[new n(e,r,"object expected, "+h+" found")];for(var f in r){var p=f.split(".")[0],d=o[p]||o["*"],g=void 0;if(s[p])g=s[p];else if(o[p])g=a;else if(s["*"])g=s["*"];else{if(!o["*"]){c.push(new n(e,r[f],'unknown property "'+f+'"'));continue}g=a}c=c.concat(g({key:(e?e+".":e)+f,value:r[f],valueSpec:d,style:l,styleSpec:u,object:r,objectKey:f},r))}for(var v in o)s[v]||o[v].required&&void 0===o[v].default&&void 0===r[v]&&c.push(new n(e,r,'missing required property "'+v+'"'));return c}},{"../error/validation_error":122,"../util/get_type":157,"./validate":162}],177:[function(t,e,r){var n=t("./validate_property");e.exports=function(t){return n(t,"paint")}},{"./validate_property":178}],178:[function(t,e,r){var n=t("./validate"),i=t("../error/validation_error"),a=t("../util/get_type"),o=t("../function").isFunction,s=t("../util/unbundle_jsonlint");e.exports=function(t,e){var r=t.key,l=t.style,u=t.styleSpec,c=t.value,h=t.objectKey,f=u[e+"_"+t.layerType];if(!f)return[];var p=h.match(/^(.*)-transition$/);if("paint"===e&&p&&f[p[1]]&&f[p[1]].transition)return n({key:r,value:c,valueSpec:u.transition,style:l,styleSpec:u});var d,g=t.valueSpec||f[h];if(!g)return[new i(r,c,'unknown property "'+h+'"')];if("string"===a(c)&&g["property-function"]&&!g.tokens&&(d=/^{([^}]+)}$/.exec(c)))return[new i(r,c,'"'+h+'" does not support interpolation syntax\nUse an identity property function instead: `{ "type": "identity", "property": '+JSON.stringify(d[1])+" }`.")];var v=[];return"symbol"===t.layerType&&("text-field"===h&&l&&!l.glyphs&&v.push(new i(r,c,'use of "text-field" requires a style "glyphs" property')),"text-font"===h&&o(s.deep(c))&&"identity"===s(c.type)&&v.push(new i(r,c,'"text-font" does not support identity functions'))),v.concat(n({key:t.key,value:c,valueSpec:g,style:l,styleSpec:u,expressionContext:"property",propertyKey:h}))}},{"../error/validation_error":122,"../function":149,"../util/get_type":157,"../util/unbundle_jsonlint":161,"./validate":162}],179:[function(t,e,r){var n=t("../error/validation_error"),i=t("../util/unbundle_jsonlint"),a=t("./validate_object"),o=t("./validate_enum");e.exports=function(t){var e=t.value,r=t.key,s=t.styleSpec,l=t.style;if(!e.type)return[new n(r,e,'"type" is required')];var u=i(e.type),c=[];switch(u){case"vector":case"raster":case"raster-dem":if(c=c.concat(a({key:r,value:e,valueSpec:s["source_"+u.replace("-","_")],style:t.style,styleSpec:s})),"url"in e)for(var h in e)["type","url","tileSize"].indexOf(h)<0&&c.push(new n(r+"."+h,e[h],'a source with a "url" property may not include a "'+h+'" property'));return c;case"geojson":return a({key:r,value:e,valueSpec:s.source_geojson,style:l,styleSpec:s});case"video":return a({key:r,value:e,valueSpec:s.source_video,style:l,styleSpec:s});case"image":return a({key:r,value:e,valueSpec:s.source_image,style:l,styleSpec:s});case"canvas":return a({key:r,value:e,valueSpec:s.source_canvas,style:l,styleSpec:s});default:return o({key:r+".type",value:e.type,valueSpec:{values:["vector","raster","raster-dem","geojson","video","image","canvas"]},style:l,styleSpec:s})}}},{"../error/validation_error":122,"../util/unbundle_jsonlint":161,"./validate_enum":167,"./validate_object":176}],180:[function(t,e,r){var n=t("../util/get_type"),i=t("../error/validation_error");e.exports=function(t){var e=t.value,r=t.key,a=n(e);return"string"!==a?[new i(r,e,"string expected, "+a+" found")]:[]}},{"../error/validation_error":122,"../util/get_type":157}],181:[function(t,e,r){function n(t,e){e=e||l;var r=[];return r=r.concat(s({key:"",value:t,valueSpec:e.$root,styleSpec:e,style:t,objectElementValidators:{glyphs:u,"*":function(){return[]}}})),t.constants&&(r=r.concat(o({key:"constants",value:t.constants,style:t,styleSpec:e}))),i(r)}function i(t){return[].concat(t).sort(function(t,e){return t.line-e.line})}function a(t){return function(){return i(t.apply(this,arguments))}}var o=t("./validate/validate_constants"),s=t("./validate/validate"),l=t("./reference/latest"),u=t("./validate/validate_glyphs_url");n.source=a(t("./validate/validate_source")),n.light=a(t("./validate/validate_light")),n.layer=a(t("./validate/validate_layer")),n.filter=a(t("./validate/validate_filter")),n.paintProperty=a(t("./validate/validate_paint_property")),n.layoutProperty=a(t("./validate/validate_layout_property")),e.exports=n},{"./reference/latest":151,"./validate/validate":162,"./validate/validate_constants":166,"./validate/validate_filter":169,"./validate/validate_glyphs_url":171,"./validate/validate_layer":172,"./validate/validate_layout_property":173,"./validate/validate_light":174,"./validate/validate_paint_property":177,"./validate/validate_source":179}],182:[function(t,e,r){var n=t("./zoom_history"),i=function(t,e){this.zoom=t,e?(this.now=e.now,this.fadeDuration=e.fadeDuration,this.zoomHistory=e.zoomHistory,this.transition=e.transition):(this.now=0,this.fadeDuration=0,this.zoomHistory=new n,this.transition={})};i.prototype.crossFadingFactor=function(){return 0===this.fadeDuration?1:Math.min((this.now-this.zoomHistory.lastIntegerZoomTime)/this.fadeDuration,1)},e.exports=i},{"./zoom_history":212}],183:[function(t,e,r){var n=t("../style-spec/reference/latest"),i=t("../util/util"),a=t("../util/evented"),o=t("./validate_style"),s=t("../util/util").sphericalToCartesian,l=(t("../style-spec/util/color"),t("../style-spec/util/interpolate")),u=t("./properties"),c=u.Properties,h=u.Transitionable,f=(u.Transitioning,u.PossiblyEvaluated,u.DataConstantProperty),p=function(){this.specification=n.light.position};p.prototype.possiblyEvaluate=function(t,e){return s(t.expression.evaluate(e))},p.prototype.interpolate=function(t,e,r){return{x:l.number(t.x,e.x,r),y:l.number(t.y,e.y,r),z:l.number(t.z,e.z,r)}};var d=new c({anchor:new f(n.light.anchor),position:new p,color:new f(n.light.color),intensity:new f(n.light.intensity)}),g=function(t){function e(e){t.call(this),this._transitionable=new h(d),this.setLight(e),this._transitioning=this._transitionable.untransitioned()}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getLight=function(){return this._transitionable.serialize()},e.prototype.setLight=function(t){if(!this._validate(o.light,t))for(var e in t){var r=t[e];i.endsWith(e,"-transition")?this._transitionable.setTransition(e.slice(0,-"-transition".length),r):this._transitionable.setValue(e,r)}},e.prototype.updateTransitions=function(t){this._transitioning=this._transitionable.transitioned(t,this._transitioning)},e.prototype.hasTransition=function(){return this._transitioning.hasTransition()},e.prototype.recalculate=function(t){this.properties=this._transitioning.possiblyEvaluate(t)},e.prototype._validate=function(t,e){return o.emitErrors(this,t.call(o,i.extend({value:e,style:{glyphs:!0,sprite:!0},styleSpec:n})))},e}(a);e.exports=g},{"../style-spec/reference/latest":151,"../style-spec/util/color":153,"../style-spec/util/interpolate":158,"../util/evented":260,"../util/util":275,"./properties":188,"./validate_style":211}],184:[function(t,e,r){var n=t("../util/mapbox").normalizeGlyphsURL,i=t("../util/ajax"),a=t("./parse_glyph_pbf");e.exports=function(t,e,r,o,s){var l=256*e,u=l+255,c=o(n(r).replace("{fontstack}",t).replace("{range}",l+"-"+u),i.ResourceType.Glyphs);i.getArrayBuffer(c,function(t,e){if(t)s(t);else if(e){for(var r={},n=0,i=a(e.data);n1?"@2x":"";n.getJSON(e(a(t,h,".json"),n.ResourceType.SpriteJSON),function(t,e){c||(c=t,l=e,s())}),n.getImage(e(a(t,h,".png"),n.ResourceType.SpriteImage),function(t,e){c||(c=t,u=e,s())})}},{"../util/ajax":251,"../util/browser":252,"../util/image":263,"../util/mapbox":267}],186:[function(t,e,r){function n(t,e,r){1===t&&r.readMessage(i,e)}function i(t,e,r){if(3===t){var n=r.readMessage(a,{}),i=n.id,s=n.bitmap,u=n.width,c=n.height,h=n.left,f=n.top,p=n.advance;e.push({id:i,bitmap:new o({width:u+2*l,height:c+2*l},s),metrics:{width:u,height:c,left:h,top:f,advance:p}})}}function a(t,e,r){1===t?e.id=r.readVarint():2===t?e.bitmap=r.readBytes():3===t?e.width=r.readVarint():4===t?e.height=r.readVarint():5===t?e.left=r.readSVarint():6===t?e.top=r.readSVarint():7===t&&(e.advance=r.readVarint())}var o=t("../util/image").AlphaImage,s=t("pbf"),l=3;e.exports=function(t){return new s(t).readFields(n,[])},e.exports.GLYPH_PBF_BORDER=l},{"../util/image":263,pbf:30}],187:[function(t,e,r){var n=t("../util/browser"),i=t("../symbol/placement"),a=function(){this._currentTileIndex=0,this._seenCrossTileIDs={}};a.prototype.continuePlacement=function(t,e,r,n,i){for(var a=this;this._currentTileIndex2};this._currentPlacementIndex>=0;){var l=e[t[i._currentPlacementIndex]],u=i.placement.collisionIndex.transform.zoom;if("symbol"===l.type&&(!l.minzoom||l.minzoom<=u)&&(!l.maxzoom||l.maxzoom>u)){if(i._inProgressLayer||(i._inProgressLayer=new a),i._inProgressLayer.continuePlacement(r[l.source],i.placement,i._showCollisionBoxes,l,s))return;delete i._inProgressLayer}i._currentPlacementIndex--}this._done=!0},o.prototype.commit=function(t,e){return this.placement.commit(t,e),this.placement},e.exports=o},{"../symbol/placement":223,"../util/browser":252}],188:[function(t,e,r){var n=t("../util/util"),i=n.clone,a=n.extend,o=n.easeCubicInOut,s=t("../style-spec/util/interpolate"),l=t("../style-spec/expression").normalizePropertyExpression,u=(t("../style-spec/util/color"),t("../util/web_worker_transfer").register),c=function(t,e){this.property=t,this.value=e,this.expression=l(void 0===e?t.specification.default:e,t.specification)};c.prototype.isDataDriven=function(){return"source"===this.expression.kind||"composite"===this.expression.kind},c.prototype.possiblyEvaluate=function(t){return this.property.possiblyEvaluate(this,t)};var h=function(t){this.property=t,this.value=new c(t,void 0)};h.prototype.transitioned=function(t,e){return new p(this.property,this.value,e,a({},t.transition,this.transition),t.now)},h.prototype.untransitioned=function(){return new p(this.property,this.value,null,{},0)};var f=function(t){this._properties=t,this._values=Object.create(t.defaultTransitionablePropertyValues)};f.prototype.getValue=function(t){return i(this._values[t].value.value)},f.prototype.setValue=function(t,e){this._values.hasOwnProperty(t)||(this._values[t]=new h(this._values[t].property)),this._values[t].value=new c(this._values[t].property,null===e?void 0:i(e))},f.prototype.getTransition=function(t){return i(this._values[t].transition)},f.prototype.setTransition=function(t,e){this._values.hasOwnProperty(t)||(this._values[t]=new h(this._values[t].property)),this._values[t].transition=i(e)||void 0},f.prototype.serialize=function(){for(var t=this,e={},r=0,n=Object.keys(t._values);rthis.end)return this.prior=null,r;if(this.value.isDataDriven())return this.prior=null,r;if(en.zoomHistory.lastIntegerZoom?{from:t,to:e,fromScale:2,toScale:1,t:a+(1-a)*o}:{from:r,to:e,fromScale:.5,toScale:1,t:1-(1-o)*a}},b.prototype.interpolate=function(t){return t};var _=function(t){this.specification=t};_.prototype.possiblyEvaluate=function(){},_.prototype.interpolate=function(){};u("DataDrivenProperty",x),u("DataConstantProperty",y),u("CrossFadedProperty",b),u("HeatmapColorProperty",_),e.exports={PropertyValue:c,Transitionable:f,Transitioning:d,Layout:g,PossiblyEvaluatedPropertyValue:v,PossiblyEvaluated:m,DataConstantProperty:y,DataDrivenProperty:x,CrossFadedProperty:b,HeatmapColorProperty:_,Properties:function(t){var e=this;for(var r in this.properties=t,this.defaultPropertyValues={},this.defaultTransitionablePropertyValues={},this.defaultTransitioningPropertyValues={},this.defaultPossiblyEvaluatedValues={},t){var n=t[r],i=e.defaultPropertyValues[r]=new c(n,void 0),a=e.defaultTransitionablePropertyValues[r]=new h(n);e.defaultTransitioningPropertyValues[r]=a.untransitioned(),e.defaultPossiblyEvaluatedValues[r]=i.possiblyEvaluate({})}}}},{"../style-spec/expression":139,"../style-spec/util/color":153,"../style-spec/util/interpolate":158,"../util/util":275,"../util/web_worker_transfer":278}],189:[function(t,e,r){var n=t("@mapbox/point-geometry");e.exports={getMaximumPaintValue:function(t,e,r){var n=e.paint.get(t).value;return"constant"===n.kind?n.value:r.programConfigurations.get(e.id).binders[t].statistics.max},translateDistance:function(t){return Math.sqrt(t[0]*t[0]+t[1]*t[1])},translate:function(t,e,r,i,a){if(!e[0]&&!e[1])return t;var o=n.convert(e);"viewport"===r&&o._rotate(-i);for(var s=[],l=0;l0)throw new Error("Unimplemented: "+n.map(function(t){return t.command}).join(", ")+".");return r.forEach(function(t){"setTransition"!==t.command&&e[t.command].apply(e,t.args)}),this.stylesheet=t,!0},e.prototype.addImage=function(t,e){if(this.getImage(t))return this.fire("error",{error:new Error("An image with this name already exists.")});this.imageManager.addImage(t,e),this.fire("data",{dataType:"style"})},e.prototype.getImage=function(t){return this.imageManager.getImage(t)},e.prototype.removeImage=function(t){if(!this.getImage(t))return this.fire("error",{error:new Error("No image with this name exists.")});this.imageManager.removeImage(t),this.fire("data",{dataType:"style"})},e.prototype.addSource=function(t,e,r){var n=this;if(this._checkLoaded(),void 0!==this.sourceCaches[t])throw new Error("There is already a source with this ID");if(!e.type)throw new Error("The type property must be defined, but the only the following properties were given: "+Object.keys(e).join(", ")+".");if(!(["vector","raster","geojson","video","image","canvas"].indexOf(e.type)>=0&&this._validate(g.source,"sources."+t,e,null,r))){this.map&&this.map._collectResourceTiming&&(e.collectResourceTiming=!0);var i=this.sourceCaches[t]=new x(t,e,this.dispatcher);i.style=this,i.setEventedParent(this,function(){return{isSourceLoaded:n.loaded(),source:i.serialize(),sourceId:t}}),i.onAdd(this.map),this._changed=!0}},e.prototype.removeSource=function(t){var e=this;if(this._checkLoaded(),void 0===this.sourceCaches[t])throw new Error("There is no source with this ID");for(var r in e._layers)if(e._layers[r].source===t)return e.fire("error",{error:new Error('Source "'+t+'" cannot be removed while layer "'+r+'" is using it.')});var n=this.sourceCaches[t];delete this.sourceCaches[t],delete this._updatedSources[t],n.fire("data",{sourceDataType:"metadata",dataType:"source",sourceId:t}),n.setEventedParent(null),n.clearTiles(),n.onRemove&&n.onRemove(this.map),this._changed=!0},e.prototype.setGeoJSONSourceData=function(t,e){this._checkLoaded(),this.sourceCaches[t].getSource().setData(e),this._changed=!0},e.prototype.getSource=function(t){return this.sourceCaches[t]&&this.sourceCaches[t].getSource()},e.prototype.addLayer=function(t,e,r){this._checkLoaded();var n=t.id;if("object"==typeof t.source&&(this.addSource(n,t.source),t=c.clone(t),t=c.extend(t,{source:n})),!this._validate(g.layer,"layers."+n,t,{arrayIndex:-1},r)){var a=i.create(t);this._validateLayer(a),a.setEventedParent(this,{layer:{id:n}});var o=e?this._order.indexOf(e):this._order.length;if(e&&-1===o)return void this.fire("error",{error:new Error('Layer with id "'+e+'" does not exist on this map.')});if(this._order.splice(o,0,n),this._layerOrderChanged=!0,this._layers[n]=a,this._removedLayers[n]&&a.source){var s=this._removedLayers[n];delete this._removedLayers[n],s.type!==a.type?this._updatedSources[a.source]="clear":(this._updatedSources[a.source]="reload",this.sourceCaches[a.source].pause())}this._updateLayer(a)}},e.prototype.moveLayer=function(t,e){if(this._checkLoaded(),this._changed=!0,this._layers[t]){var r=this._order.indexOf(t);this._order.splice(r,1);var n=e?this._order.indexOf(e):this._order.length;e&&-1===n?this.fire("error",{error:new Error('Layer with id "'+e+'" does not exist on this map.')}):(this._order.splice(n,0,t),this._layerOrderChanged=!0)}else this.fire("error",{error:new Error("The layer '"+t+"' does not exist in the map's style and cannot be moved.")})},e.prototype.removeLayer=function(t){this._checkLoaded();var e=this._layers[t];if(e){e.setEventedParent(null);var r=this._order.indexOf(t);this._order.splice(r,1),this._layerOrderChanged=!0,this._changed=!0,this._removedLayers[t]=e,delete this._layers[t],delete this._updatedLayers[t],delete this._updatedPaintProps[t]}else this.fire("error",{error:new Error("The layer '"+t+"' does not exist in the map's style and cannot be removed.")})},e.prototype.getLayer=function(t){return this._layers[t]},e.prototype.setLayerZoomRange=function(t,e,r){this._checkLoaded();var n=this.getLayer(t);n?n.minzoom===e&&n.maxzoom===r||(null!=e&&(n.minzoom=e),null!=r&&(n.maxzoom=r),this._updateLayer(n)):this.fire("error",{error:new Error("The layer '"+t+"' does not exist in the map's style and cannot have zoom extent.")})},e.prototype.setFilter=function(t,e){this._checkLoaded();var r=this.getLayer(t);if(r)return c.deepEqual(r.filter,e)?void 0:null===e||void 0===e?(r.filter=void 0,void this._updateLayer(r)):void(this._validate(g.filter,"layers."+r.id+".filter",e)||(r.filter=c.clone(e),this._updateLayer(r)));this.fire("error",{error:new Error("The layer '"+t+"' does not exist in the map's style and cannot be filtered.")})},e.prototype.getFilter=function(t){return c.clone(this.getLayer(t).filter)},e.prototype.setLayoutProperty=function(t,e,r){this._checkLoaded();var n=this.getLayer(t);n?c.deepEqual(n.getLayoutProperty(e),r)||(n.setLayoutProperty(e,r),this._updateLayer(n)):this.fire("error",{error:new Error("The layer '"+t+"' does not exist in the map's style and cannot be styled.")})},e.prototype.getLayoutProperty=function(t,e){return this.getLayer(t).getLayoutProperty(e)},e.prototype.setPaintProperty=function(t,e,r){this._checkLoaded();var n=this.getLayer(t);if(n){if(!c.deepEqual(n.getPaintProperty(e),r)){var i=n._transitionablePaint._values[e].value.isDataDriven();n.setPaintProperty(e,r),(n._transitionablePaint._values[e].value.isDataDriven()||i)&&this._updateLayer(n),this._changed=!0,this._updatedPaintProps[t]=!0}}else this.fire("error",{error:new Error("The layer '"+t+"' does not exist in the map's style and cannot be styled.")})},e.prototype.getPaintProperty=function(t,e){return this.getLayer(t).getPaintProperty(e)},e.prototype.getTransition=function(){return c.extend({duration:300,delay:0},this.stylesheet&&this.stylesheet.transition)},e.prototype.serialize=function(){var t=this;return c.filterObject({version:this.stylesheet.version,name:this.stylesheet.name,metadata:this.stylesheet.metadata,light:this.stylesheet.light,center:this.stylesheet.center,zoom:this.stylesheet.zoom,bearing:this.stylesheet.bearing,pitch:this.stylesheet.pitch,sprite:this.stylesheet.sprite,glyphs:this.stylesheet.glyphs,transition:this.stylesheet.transition,sources:c.mapObject(this.sourceCaches,function(t){return t.serialize()}),layers:this._order.map(function(e){return t._layers[e].serialize()})},function(t){return void 0!==t})},e.prototype._updateLayer=function(t){this._updatedLayers[t.id]=!0,t.source&&!this._updatedSources[t.source]&&(this._updatedSources[t.source]="reload",this.sourceCaches[t.source].pause()),this._changed=!0},e.prototype._flattenRenderedFeatures=function(t){for(var e=[],r=this._order.length-1;r>=0;r--)for(var n=this._order[r],i=0,a=t;i=this.maxzoom)||"none"===this.visibility},e.prototype.updateTransitions=function(t){this._transitioningPaint=this._transitionablePaint.transitioned(t,this._transitioningPaint)},e.prototype.hasTransition=function(){return this._transitioningPaint.hasTransition()},e.prototype.recalculate=function(t){this._unevaluatedLayout&&(this.layout=this._unevaluatedLayout.possiblyEvaluate(t)),this.paint=this._transitioningPaint.possiblyEvaluate(t)},e.prototype.serialize=function(){var t={id:this.id,type:this.type,source:this.source,"source-layer":this.sourceLayer,metadata:this.metadata,minzoom:this.minzoom,maxzoom:this.maxzoom,filter:this.filter,layout:this._unevaluatedLayout&&this._unevaluatedLayout.serialize(),paint:this._transitionablePaint&&this._transitionablePaint.serialize()};return"none"===this.visibility&&(t.layout=t.layout||{},t.layout.visibility="none"),n.filterObject(t,function(t,e){return!(void 0===t||"layout"===e&&!Object.keys(t).length||"paint"===e&&!Object.keys(t).length)})},e.prototype._validate=function(t,e,r,n,o){return(!o||!1!==o.validate)&&a.emitErrors(this,t.call(a,{key:e,layerType:this.type,objectKey:r,value:n,styleSpec:i,style:{glyphs:!0,sprite:!0}}))},e.prototype.hasOffscreenPass=function(){return!1},e.prototype.resize=function(){},e}(o));e.exports=c;var h={circle:t("./style_layer/circle_style_layer"),heatmap:t("./style_layer/heatmap_style_layer"),hillshade:t("./style_layer/hillshade_style_layer"),fill:t("./style_layer/fill_style_layer"),"fill-extrusion":t("./style_layer/fill_extrusion_style_layer"),line:t("./style_layer/line_style_layer"),symbol:t("./style_layer/symbol_style_layer"),background:t("./style_layer/background_style_layer"),raster:t("./style_layer/raster_style_layer")};c.create=function(t){return new h[t.type](t)}},{"../style-spec/reference/latest":151,"../util/evented":260,"../util/util":275,"./properties":188,"./style_layer/background_style_layer":192,"./style_layer/circle_style_layer":194,"./style_layer/fill_extrusion_style_layer":196,"./style_layer/fill_style_layer":198,"./style_layer/heatmap_style_layer":200,"./style_layer/hillshade_style_layer":202,"./style_layer/line_style_layer":204,"./style_layer/raster_style_layer":206,"./style_layer/symbol_style_layer":208,"./validate_style":211}],192:[function(t,e,r){var n=t("../style_layer"),i=t("./background_style_layer_properties"),a=t("../properties"),o=(a.Transitionable,a.Transitioning,a.PossiblyEvaluated,function(t){function e(e){t.call(this,e,i)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(n));e.exports=o},{"../properties":188,"../style_layer":191,"./background_style_layer_properties":193}],193:[function(t,e,r){var n=t("../../style-spec/reference/latest"),i=t("../properties"),a=i.Properties,o=i.DataConstantProperty,s=(i.DataDrivenProperty,i.CrossFadedProperty),l=(i.HeatmapColorProperty,new a({"background-color":new o(n.paint_background["background-color"]),"background-pattern":new s(n.paint_background["background-pattern"]),"background-opacity":new o(n.paint_background["background-opacity"])}));e.exports={paint:l}},{"../../style-spec/reference/latest":151,"../properties":188}],194:[function(t,e,r){var n=t("../style_layer"),i=t("../../data/bucket/circle_bucket"),a=t("../../util/intersection_tests").multiPolygonIntersectsBufferedMultiPoint,o=t("../query_utils"),s=o.getMaximumPaintValue,l=o.translateDistance,u=o.translate,c=t("./circle_style_layer_properties"),h=t("../properties"),f=(h.Transitionable,h.Transitioning,h.PossiblyEvaluated,function(t){function e(e){t.call(this,e,c)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.createBucket=function(t){return new i(t)},e.prototype.queryRadius=function(t){var e=t;return s("circle-radius",this,e)+s("circle-stroke-width",this,e)+l(this.paint.get("circle-translate"))},e.prototype.queryIntersectsFeature=function(t,e,r,n,i,o){var s=u(t,this.paint.get("circle-translate"),this.paint.get("circle-translate-anchor"),i,o),l=this.paint.get("circle-radius").evaluate(e)*o,c=this.paint.get("circle-stroke-width").evaluate(e)*o;return a(s,r,l+c)},e}(n));e.exports=f},{"../../data/bucket/circle_bucket":42,"../../util/intersection_tests":264,"../properties":188,"../query_utils":189,"../style_layer":191,"./circle_style_layer_properties":195}],195:[function(t,e,r){var n=t("../../style-spec/reference/latest"),i=t("../properties"),a=i.Properties,o=i.DataConstantProperty,s=i.DataDrivenProperty,l=(i.CrossFadedProperty,i.HeatmapColorProperty,new a({"circle-radius":new s(n.paint_circle["circle-radius"]),"circle-color":new s(n.paint_circle["circle-color"]),"circle-blur":new s(n.paint_circle["circle-blur"]),"circle-opacity":new s(n.paint_circle["circle-opacity"]),"circle-translate":new o(n.paint_circle["circle-translate"]),"circle-translate-anchor":new o(n.paint_circle["circle-translate-anchor"]),"circle-pitch-scale":new o(n.paint_circle["circle-pitch-scale"]),"circle-pitch-alignment":new o(n.paint_circle["circle-pitch-alignment"]),"circle-stroke-width":new s(n.paint_circle["circle-stroke-width"]),"circle-stroke-color":new s(n.paint_circle["circle-stroke-color"]),"circle-stroke-opacity":new s(n.paint_circle["circle-stroke-opacity"])}));e.exports={paint:l}},{"../../style-spec/reference/latest":151,"../properties":188}],196:[function(t,e,r){var n=t("../style_layer"),i=t("../../data/bucket/fill_extrusion_bucket"),a=t("../../util/intersection_tests").multiPolygonIntersectsMultiPolygon,o=t("../query_utils"),s=o.translateDistance,l=o.translate,u=t("./fill_extrusion_style_layer_properties"),c=t("../properties"),h=(c.Transitionable,c.Transitioning,c.PossiblyEvaluated,function(t){function e(e){t.call(this,e,u)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.createBucket=function(t){return new i(t)},e.prototype.queryRadius=function(){return s(this.paint.get("fill-extrusion-translate"))},e.prototype.queryIntersectsFeature=function(t,e,r,n,i,o){var s=l(t,this.paint.get("fill-extrusion-translate"),this.paint.get("fill-extrusion-translate-anchor"),i,o);return a(s,r)},e.prototype.hasOffscreenPass=function(){return 0!==this.paint.get("fill-extrusion-opacity")&&"none"!==this.visibility},e.prototype.resize=function(){this.viewportFrame&&(this.viewportFrame.destroy(),this.viewportFrame=null)},e}(n));e.exports=h},{"../../data/bucket/fill_extrusion_bucket":46,"../../util/intersection_tests":264,"../properties":188,"../query_utils":189,"../style_layer":191,"./fill_extrusion_style_layer_properties":197}],197:[function(t,e,r){var n=t("../../style-spec/reference/latest"),i=t("../properties"),a=i.Properties,o=i.DataConstantProperty,s=i.DataDrivenProperty,l=i.CrossFadedProperty,u=(i.HeatmapColorProperty,new a({"fill-extrusion-opacity":new o(n["paint_fill-extrusion"]["fill-extrusion-opacity"]),"fill-extrusion-color":new s(n["paint_fill-extrusion"]["fill-extrusion-color"]),"fill-extrusion-translate":new o(n["paint_fill-extrusion"]["fill-extrusion-translate"]),"fill-extrusion-translate-anchor":new o(n["paint_fill-extrusion"]["fill-extrusion-translate-anchor"]),"fill-extrusion-pattern":new l(n["paint_fill-extrusion"]["fill-extrusion-pattern"]),"fill-extrusion-height":new s(n["paint_fill-extrusion"]["fill-extrusion-height"]),"fill-extrusion-base":new s(n["paint_fill-extrusion"]["fill-extrusion-base"])}));e.exports={paint:u}},{"../../style-spec/reference/latest":151,"../properties":188}],198:[function(t,e,r){var n=t("../style_layer"),i=t("../../data/bucket/fill_bucket"),a=t("../../util/intersection_tests").multiPolygonIntersectsMultiPolygon,o=t("../query_utils"),s=o.translateDistance,l=o.translate,u=t("./fill_style_layer_properties"),c=t("../properties"),h=(c.Transitionable,c.Transitioning,c.PossiblyEvaluated,function(t){function e(e){t.call(this,e,u)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.recalculate=function(t){this.paint=this._transitioningPaint.possiblyEvaluate(t),void 0===this._transitionablePaint.getValue("fill-outline-color")&&(this.paint._values["fill-outline-color"]=this.paint._values["fill-color"])},e.prototype.createBucket=function(t){return new i(t)},e.prototype.queryRadius=function(){return s(this.paint.get("fill-translate"))},e.prototype.queryIntersectsFeature=function(t,e,r,n,i,o){var s=l(t,this.paint.get("fill-translate"),this.paint.get("fill-translate-anchor"),i,o);return a(s,r)},e}(n));e.exports=h},{"../../data/bucket/fill_bucket":44,"../../util/intersection_tests":264,"../properties":188,"../query_utils":189,"../style_layer":191,"./fill_style_layer_properties":199}],199:[function(t,e,r){var n=t("../../style-spec/reference/latest"),i=t("../properties"),a=i.Properties,o=i.DataConstantProperty,s=i.DataDrivenProperty,l=i.CrossFadedProperty,u=(i.HeatmapColorProperty,new a({"fill-antialias":new o(n.paint_fill["fill-antialias"]),"fill-opacity":new s(n.paint_fill["fill-opacity"]),"fill-color":new s(n.paint_fill["fill-color"]),"fill-outline-color":new s(n.paint_fill["fill-outline-color"]),"fill-translate":new o(n.paint_fill["fill-translate"]),"fill-translate-anchor":new o(n.paint_fill["fill-translate-anchor"]),"fill-pattern":new l(n.paint_fill["fill-pattern"])}));e.exports={paint:u}},{"../../style-spec/reference/latest":151,"../properties":188}],200:[function(t,e,r){var n=t("../style_layer"),i=t("../../data/bucket/heatmap_bucket"),a=t("../../util/image").RGBAImage,o=t("./heatmap_style_layer_properties"),s=t("../properties"),l=(s.Transitionable,s.Transitioning,s.PossiblyEvaluated,function(t){function e(e){t.call(this,e,o),this._updateColorRamp()}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.createBucket=function(t){return new i(t)},e.prototype.setPaintProperty=function(e,r,n){t.prototype.setPaintProperty.call(this,e,r,n),"heatmap-color"===e&&this._updateColorRamp()},e.prototype._updateColorRamp=function(){for(var t=this._transitionablePaint._values["heatmap-color"].value.expression,e=new Uint8Array(1024),r=e.length,n=4;n0?e+2*t:t}var i=t("@mapbox/point-geometry"),a=t("../style_layer"),o=t("../../data/bucket/line_bucket"),s=t("../../util/intersection_tests").multiPolygonIntersectsBufferedMultiLine,l=t("../query_utils"),u=l.getMaximumPaintValue,c=l.translateDistance,h=l.translate,f=t("./line_style_layer_properties"),p=t("../../util/util").extend,d=t("../evaluation_parameters"),g=t("../properties"),v=(g.Transitionable,g.Transitioning,g.Layout,g.PossiblyEvaluated,new(function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.possiblyEvaluate=function(e,r){return r=new d(Math.floor(r.zoom),{now:r.now,fadeDuration:r.fadeDuration,zoomHistory:r.zoomHistory,transition:r.transition}),t.prototype.possiblyEvaluate.call(this,e,r)},e.prototype.evaluate=function(e,r,n){return r=p({},r,{zoom:Math.floor(r.zoom)}),t.prototype.evaluate.call(this,e,r,n)},e}(g.DataDrivenProperty))(f.paint.properties["line-width"].specification));v.useIntegerZoom=!0;var m=function(t){function e(e){t.call(this,e,f)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.recalculate=function(e){t.prototype.recalculate.call(this,e),this.paint._values["line-floorwidth"]=v.possiblyEvaluate(this._transitioningPaint._values["line-width"].value,e)},e.prototype.createBucket=function(t){return new o(t)},e.prototype.queryRadius=function(t){var e=t,r=n(u("line-width",this,e),u("line-gap-width",this,e)),i=u("line-offset",this,e);return r/2+Math.abs(i)+c(this.paint.get("line-translate"))},e.prototype.queryIntersectsFeature=function(t,e,r,a,o,l){var u=h(t,this.paint.get("line-translate"),this.paint.get("line-translate-anchor"),o,l),c=l/2*n(this.paint.get("line-width").evaluate(e),this.paint.get("line-gap-width").evaluate(e)),f=this.paint.get("line-offset").evaluate(e);return f&&(r=function(t,e){for(var r=[],n=new i(0,0),a=0;ar?(this.lastIntegerZoom=r+1,this.lastIntegerZoomTime=e):this.lastFloorZoom-r/2;){if(--o<0)return!1;s-=t[o].dist(a),a=t[o]}s+=t[o].dist(t[o+1]),o++;for(var l=[],u=0;sn;)u-=l.shift().angleDelta;if(u>i)return!1;o++,s+=h.dist(f)}return!0}},{}],215:[function(t,e,r){var n=t("@mapbox/point-geometry");e.exports=function(t,e,r,i,a){for(var o=[],s=0;s=i&&f.x>=i||(h.x>=i?h=new n(i,h.y+(f.y-h.y)*((i-h.x)/(f.x-h.x)))._round():f.x>=i&&(f=new n(i,h.y+(f.y-h.y)*((i-h.x)/(f.x-h.x)))._round()),h.y>=a&&f.y>=a||(h.y>=a?h=new n(h.x+(f.x-h.x)*((a-h.y)/(f.y-h.y)),a)._round():f.y>=a&&(f=new n(h.x+(f.x-h.x)*((a-h.y)/(f.y-h.y)),a)._round()),u&&h.equals(u[u.length-1])||(u=[h],o.push(u)),u.push(f)))))}return o}},{"@mapbox/point-geometry":4}],216:[function(t,e,r){var n=function(t,e,r,n,i,a,o,s,l,u,c){var h=o.top*s-l,f=o.bottom*s+l,p=o.left*s-l,d=o.right*s+l;if(this.boxStartIndex=t.length,u){var g=f-h,v=d-p;g>0&&(g=Math.max(10*s,g),this._addLineCollisionCircles(t,e,r,r.segment,v,g,n,i,a,c))}else t.emplaceBack(r.x,r.y,p,h,d,f,n,i,a,0,0);this.boxEndIndex=t.length};n.prototype._addLineCollisionCircles=function(t,e,r,n,i,a,o,s,l,u){var c=a/2,h=Math.floor(i/c),f=1+.4*Math.log(u)/Math.LN2,p=Math.floor(h*f/2),d=-a/2,g=r,v=n+1,m=d,y=-i/2,x=y-i/4;do{if(--v<0){if(m>y)return;v=0;break}m-=e[v].dist(g),g=e[v]}while(m>x);for(var b=e[v].dist(e[v+1]),_=-p;_i&&(M+=w-i),!(M=e.length)return;b=e[v].dist(e[v+1])}var A=M-m,k=e[v],T=e[v+1].sub(k)._unit()._mult(A)._add(k)._round(),S=Math.abs(M-d)L)n(t,z,!1);else{var R=v.projectPoint(f,P,I),F=D*S;if(m.length>0){var B=R.x-m[m.length-4],N=R.y-m[m.length-3];if(F*F*2>B*B+N*N&&z+8-C&&j=this.screenRightBoundary||n<100||e>this.screenBottomBoundary},e.exports=l},{"../symbol/projection":224,"../util/intersection_tests":264,"./grid_index":220,"@mapbox/gl-matrix":2,"@mapbox/point-geometry":4}],218:[function(t,e,r){var n=t("../data/extent"),i=512/n/2,a=function(t,e,r){var n=this;this.tileID=t,this.indexedSymbolInstances={},this.bucketInstanceId=r;for(var i=0,a=e;it.overscaledZ)for(var u in l){var c=l[u];c.tileID.isChildOf(t)&&c.findMatches(e.symbolInstances,t,o)}else{var h=l[t.scaledTo(Number(s)).key];h&&h.findMatches(e.symbolInstances,t,o)}}for(var f=0,p=e.symbolInstances;f=0&&k=0&&T=0&&m+p<=d){var S=new i(k,T,M,x);S._round(),s&&!a(e,S,u,s,l)||y.push(S)}}v+=w}return h||y.length||c||(y=t(e,v/2,o,s,l,u,c,!0,f)),y}(t,d?e/2*c%e:(p/2+2*l)*u*c%e,e,f,r,p*u,d,!1,h)}},{"../style-spec/util/interpolate":158,"../symbol/anchor":213,"./check_max_angle":214}],220:[function(t,e,r){var n=function(t,e,r){var n=this.boxCells=[],i=this.circleCells=[];this.xCellCount=Math.ceil(t/r),this.yCellCount=Math.ceil(e/r);for(var a=0;athis.width||n<0||e>this.height)return!i&&[];var a=[];if(t<=0&&e<=0&&this.width<=r&&this.height<=n)a=Array.prototype.slice.call(this.boxKeys).concat(this.circleKeys);else{var o={hitTest:i,seenUids:{box:{},circle:{}}};this._forEachCell(t,e,r,n,this._queryCell,a,o)}return i?a.length>0:a},n.prototype._queryCircle=function(t,e,r,n){var i=t-r,a=t+r,o=e-r,s=e+r;if(a<0||i>this.width||s<0||o>this.height)return!n&&[];var l=[],u={hitTest:n,circle:{x:t,y:e,radius:r},seenUids:{box:{},circle:{}}};return this._forEachCell(i,o,a,s,this._queryCellCircle,l,u),n?l.length>0:l},n.prototype.query=function(t,e,r,n){return this._query(t,e,r,n,!1)},n.prototype.hitTest=function(t,e,r,n){return this._query(t,e,r,n,!0)},n.prototype.hitTestCircle=function(t,e,r){return this._queryCircle(t,e,r,!0)},n.prototype._queryCell=function(t,e,r,n,i,a,o){var s=this,l=o.seenUids,u=this.boxCells[i];if(null!==u)for(var c=this.bboxes,h=0,f=u;h=c[d+0]&&n>=c[d+1]){if(o.hitTest)return a.push(!0),!0;a.push(s.boxKeys[p])}}}var g=this.circleCells[i];if(null!==g)for(var v=this.circles,m=0,y=g;mo*o+s*s},n.prototype._circleAndRectCollide=function(t,e,r,n,i,a,o){var s=(a-n)/2,l=Math.abs(t-(n+s));if(l>s+r)return!1;var u=(o-i)/2,c=Math.abs(e-(i+u));if(c>u+r)return!1;if(l<=s||c<=u)return!0;var h=l-s,f=c-u;return h*h+f*f<=r*r},e.exports=n},{}],221:[function(t,e,r){e.exports=function(t){function e(e){s.push(t[e]),l++}function r(t,e,r){var n=o[t];return delete o[t],o[e]=n,s[n].geometry[0].pop(),s[n].geometry[0]=s[n].geometry[0].concat(r[0]),n}function n(t,e,r){var n=a[e];return delete a[e],a[t]=n,s[n].geometry[0].shift(),s[n].geometry[0]=r[0].concat(s[n].geometry[0]),n}function i(t,e,r){var n=r?e[0][e[0].length-1]:e[0][0];return t+":"+n.x+":"+n.y}for(var a={},o={},s=[],l=0,u=0;u0,A=A&&k.offscreen);var E=_.collisionArrays.textCircles;if(E){var C=t.text.placedSymbolArray.get(_.placedTextSymbolIndices[0]),L=s.evaluateSizeForFeature(t.textSizeData,v,C);T=d.collisionIndex.placeCollisionCircles(E,g.get("text-allow-overlap"),i,a,_.key,C,t.lineVertexArray,t.glyphOffsetArray,L,e,r,o,"map"===g.get("text-pitch-alignment")),w=g.get("text-allow-overlap")||T.circles.length>0,A=A&&T.offscreen}_.collisionArrays.iconBox&&(M=(S=d.collisionIndex.placeCollisionBox(_.collisionArrays.iconBox,g.get("icon-allow-overlap"),a,e)).box.length>0,A=A&&S.offscreen),m||y?y?m||(M=M&&w):w=M&&w:M=w=M&&w,w&&k&&d.collisionIndex.insertCollisionBox(k.box,g.get("text-ignore-placement"),h,f,t.bucketInstanceId,_.textBoxStartIndex),M&&S&&d.collisionIndex.insertCollisionBox(S.box,g.get("icon-ignore-placement"),h,f,t.bucketInstanceId,_.iconBoxStartIndex),w&&T&&d.collisionIndex.insertCollisionCircles(T.circles,g.get("text-ignore-placement"),h,f,t.bucketInstanceId,_.textBoxStartIndex),d.placements[_.crossTileID]=new p(w,M,A||t.justReloaded),l[_.crossTileID]=!0}}t.justReloaded=!1},d.prototype.commit=function(t,e){var r=this;this.commitTime=e;var n=!1,i=t&&0!==this.fadeDuration?(this.commitTime-t.commitTime)/this.fadeDuration:1,a=t?t.opacities:{};for(var o in r.placements){var s=r.placements[o],l=a[o];l?(r.opacities[o]=new f(l,i,s.text,s.icon),n=n||s.text!==l.text.placed||s.icon!==l.icon.placed):(r.opacities[o]=new f(null,i,s.text,s.icon,s.skipFade),n=n||s.text||s.icon)}for(var u in a){var c=a[u];if(!r.opacities[u]){var h=new f(c,i,!1,!1);h.isHidden()||(r.opacities[u]=h,n=n||c.text.placed||c.icon.placed)}}n?this.lastPlacementChangeTime=e:"number"!=typeof this.lastPlacementChangeTime&&(this.lastPlacementChangeTime=t?t.lastPlacementChangeTime:e)},d.prototype.updateLayerOpacities=function(t,e){for(var r={},n=0,i=e;n0||l.numVerticalGlyphVertices>0,p=l.numIconVertices>0;if(h){for(var d=i(c.text),g=(l.numGlyphVertices+l.numVerticalGlyphVertices)/4,v=0;vt},d.prototype.setStale=function(){this.stale=!0};var g=Math.pow(2,25),v=Math.pow(2,24),m=Math.pow(2,17),y=Math.pow(2,16),x=Math.pow(2,9),b=Math.pow(2,8),_=Math.pow(2,1);e.exports=d},{"../data/extent":53,"../source/pixels_to_tile_units":104,"../style/style_layer/symbol_style_layer_properties":209,"./collision_index":217,"./projection":224,"./symbol_size":228}],224:[function(t,e,r){function n(t,e){var r=[t.x,t.y,0,1];h(r,r,e);var n=r[3];return{point:new f(r[0]/n,r[1]/n),signedDistanceFromCamera:n}}function i(t,e){var r=t[0]/t[3],n=t[1]/t[3];return r>=-e[0]&&r<=e[0]&&n>=-e[1]&&n<=e[1]}function a(t,e,r,n,i,a,o,s,l,c,h,f){var p=s.glyphStartIndex+s.numGlyphs,d=s.lineStartIndex,g=s.lineStartIndex+s.lineLength,v=e.getoffsetX(s.glyphStartIndex),m=e.getoffsetX(p-1),y=u(t*v,r,n,i,a,o,s.segment,d,g,l,c,h,f);if(!y)return null;var x=u(t*m,r,n,i,a,o,s.segment,d,g,l,c,h,f);return x?{first:y,last:x}:null}function o(t,e,r,n){return t===x.horizontal&&Math.abs(r.y-e.y)>Math.abs(r.x-e.x)*n?{useVertical:!0}:(t===x.vertical?e.yr.x)?{needsFlipping:!0}:null}function s(t,e,r,i,s,c,h,p,d,g,v,y,x,b){var _,w=e/24,M=t.lineOffsetX*e,A=t.lineOffsetY*e;if(t.numGlyphs>1){var k=t.glyphStartIndex+t.numGlyphs,T=t.lineStartIndex,S=t.lineStartIndex+t.lineLength,E=a(w,p,M,A,r,v,y,t,d,c,x,!1);if(!E)return{notEnoughRoom:!0};var C=n(E.first.point,h).point,L=n(E.last.point,h).point;if(i&&!r){var z=o(t.writingMode,C,L,b);if(z)return z}_=[E.first];for(var P=t.glyphStartIndex+1;P0?R.point:l(y,O,I,1,s),B=o(t.writingMode,I,F,b);if(B)return B}var N=u(w*p.getoffsetX(t.glyphStartIndex),M,A,r,v,y,t.segment,t.lineStartIndex,t.lineStartIndex+t.lineLength,d,c,x,!1);if(!N)return{notEnoughRoom:!0};_=[N]}for(var j=0,V=_;j0?1:-1,y=0;i&&(m*=-1,y=Math.PI),m<0&&(y+=Math.PI);for(var x=m>0?u+s:u+s+1,b=x,_=a,w=a,M=0,A=0,k=Math.abs(v);M+A<=k;){if((x+=m)=c)return null;if(w=_,void 0===(_=d[x])){var T=new f(h.getx(x),h.gety(x)),S=n(T,p);if(S.signedDistanceFromCamera>0)_=d[x]=S.point;else{var E=x-m;_=l(0===M?o:new f(h.getx(E),h.gety(E)),T,w,k-M+1,p)}}M+=A,A=w.dist(_)}var C=(k-M)/A,L=_.sub(w),z=L.mult(C)._add(w);return z._add(L._unit()._perp()._mult(r*m)),{point:z,angle:y+Math.atan2(_.y-w.y,_.x-w.x),tileDistance:g?{prevTileDistance:x-m===b?0:h.gettileUnitDistanceFromAnchor(x-m),lastSegmentViewportDistance:k-M}:null}}function c(t,e){for(var r=0;r=w||o.y<0||o.y>=w||t.symbolInstances.push(function(t,e,r,n,a,o,s,l,c,h,f,d,g,x,b,_,w,A,k,T,S,E){var C,L,z=t.addToLineVertexArray(e,r),P=0,I=0,D=0,O=n.horizontal?n.horizontal.text:"",R=[];n.horizontal&&(C=new m(s,r,e,l,c,h,n.horizontal,f,d,g,t.overscaling),I+=i(t,e,n.horizontal,o,g,k,T,x,z,n.vertical?p.horizontal:p.horizontalOnly,R,S,E),n.vertical&&(D+=i(t,e,n.vertical,o,g,k,T,x,z,p.vertical,R,S,E)));var F=C?C.boxStartIndex:t.collisionBoxArray.length,B=C?C.boxEndIndex:t.collisionBoxArray.length;if(a){var N=v(e,a,o,w,n.horizontal,k,T);L=new m(s,r,e,l,c,h,a,b,_,!1,t.overscaling),P=4*N.length;var j=t.iconSizeData,V=null;"source"===j.functionType?V=[10*o.layout.get("icon-size").evaluate(T)]:"composite"===j.functionType&&(V=[10*E.compositeIconSizes[0].evaluate(T),10*E.compositeIconSizes[1].evaluate(T)]),t.addSymbols(t.icon,N,V,A,w,T,!1,e,z.lineStartIndex,z.lineLength)}var U=L?L.boxStartIndex:t.collisionBoxArray.length,q=L?L.boxEndIndex:t.collisionBoxArray.length;return t.glyphOffsetArray.length>=M.MAX_GLYPHS&&y.warnOnce("Too many glyphs being rendered in a tile. See https://github.com/mapbox/mapbox-gl-js/issues/2907"),{key:O,textBoxStartIndex:F,textBoxEndIndex:B,iconBoxStartIndex:U,iconBoxEndIndex:q,textOffset:x,iconOffset:A,anchor:e,line:r,featureIndex:l,feature:T,numGlyphVertices:I,numVerticalGlyphVertices:D,numIconVertices:P,textOpacityState:new u,iconOpacityState:new u,isDuplicate:!1,placedTextSymbolIndices:R,crossTileID:0}}(t,o,a,r,n,t.layers[0],t.collisionBoxArray,e.index,e.sourceLayerIndex,t.index,S,z,D,A,C,P,O,k,{zoom:t.zoom},e,c,h))};if("line"===x.get("symbol-placement"))for(var B=0,N=l(e.geometry,0,0,w,w);B=0;o--)if(n.dist(a[o])1||(f?(clearTimeout(f),f=null,o("dblclick",e)):f=setTimeout(r,300))},!1),l.addEventListener("touchend",function(t){s("touchend",t)},!1),l.addEventListener("touchmove",function(t){s("touchmove",t)},!1),l.addEventListener("touchcancel",function(t){s("touchcancel",t)},!1),l.addEventListener("click",function(t){n.mousePos(l,t).equals(h)&&o("click",t)},!1),l.addEventListener("dblclick",function(t){o("dblclick",t),t.preventDefault()},!1),l.addEventListener("contextmenu",function(e){var r=t.dragRotate&&t.dragRotate.isActive();c||r?c&&(u=e):o("contextmenu",e),e.preventDefault()},!1)}},{"../util/dom":259,"./handler/box_zoom":239,"./handler/dblclick_zoom":240,"./handler/drag_pan":241,"./handler/drag_rotate":242,"./handler/keyboard":243,"./handler/scroll_zoom":244,"./handler/touch_zoom_rotate":245,"@mapbox/point-geometry":4}],231:[function(t,e,r){var n=t("../util/util"),i=t("../style-spec/util/interpolate").number,a=t("../util/browser"),o=t("../geo/lng_lat"),s=t("../geo/lng_lat_bounds"),l=t("@mapbox/point-geometry"),u=function(t){function e(e,r){t.call(this),this.moving=!1,this.transform=e,this._bearingSnap=r.bearingSnap}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getCenter=function(){return this.transform.center},e.prototype.setCenter=function(t,e){return this.jumpTo({center:t},e)},e.prototype.panBy=function(t,e,r){return t=l.convert(t).mult(-1),this.panTo(this.transform.center,n.extend({offset:t},e),r)},e.prototype.panTo=function(t,e,r){return this.easeTo(n.extend({center:t},e),r)},e.prototype.getZoom=function(){return this.transform.zoom},e.prototype.setZoom=function(t,e){return this.jumpTo({zoom:t},e),this},e.prototype.zoomTo=function(t,e,r){return this.easeTo(n.extend({zoom:t},e),r)},e.prototype.zoomIn=function(t,e){return this.zoomTo(this.getZoom()+1,t,e),this},e.prototype.zoomOut=function(t,e){return this.zoomTo(this.getZoom()-1,t,e),this},e.prototype.getBearing=function(){return this.transform.bearing},e.prototype.setBearing=function(t,e){return this.jumpTo({bearing:t},e),this},e.prototype.rotateTo=function(t,e,r){return this.easeTo(n.extend({bearing:t},e),r)},e.prototype.resetNorth=function(t,e){return this.rotateTo(0,n.extend({duration:1e3},t),e),this},e.prototype.snapToNorth=function(t,e){return Math.abs(this.getBearing())e?1:0}),["bottom","left","right","top"]))return n.warnOnce("options.padding must be a positive number, or an Object with keys 'bottom', 'left', 'right', 'top'"),this;t=s.convert(t);var a=[(e.padding.left-e.padding.right)/2,(e.padding.top-e.padding.bottom)/2],o=Math.min(e.padding.right,e.padding.left),u=Math.min(e.padding.top,e.padding.bottom);e.offset=[e.offset[0]+a[0],e.offset[1]+a[1]];var c=l.convert(e.offset),h=this.transform,f=h.project(t.getNorthWest()),p=h.project(t.getSouthEast()),d=p.sub(f),g=(h.width-2*o-2*Math.abs(c.x))/d.x,v=(h.height-2*u-2*Math.abs(c.y))/d.y;return v<0||g<0?(n.warnOnce("Map cannot fit within canvas with the given bounds, padding, and/or offset."),this):(e.center=h.unproject(f.add(p).div(2)),e.zoom=Math.min(h.scaleZoom(h.scale*Math.min(g,v)),e.maxZoom),e.bearing=0,e.linear?this.easeTo(e,r):this.flyTo(e,r))},e.prototype.jumpTo=function(t,e){this.stop();var r=this.transform,n=!1,i=!1,a=!1;return"zoom"in t&&r.zoom!==+t.zoom&&(n=!0,r.zoom=+t.zoom),void 0!==t.center&&(r.center=o.convert(t.center)),"bearing"in t&&r.bearing!==+t.bearing&&(i=!0,r.bearing=+t.bearing),"pitch"in t&&r.pitch!==+t.pitch&&(a=!0,r.pitch=+t.pitch),this.fire("movestart",e).fire("move",e),n&&this.fire("zoomstart",e).fire("zoom",e).fire("zoomend",e),i&&this.fire("rotate",e),a&&this.fire("pitchstart",e).fire("pitch",e).fire("pitchend",e),this.fire("moveend",e)},e.prototype.easeTo=function(t,e){var r=this;this.stop(),!1===(t=n.extend({offset:[0,0],duration:500,easing:n.ease},t)).animate&&(t.duration=0);var a=this.transform,s=this.getZoom(),u=this.getBearing(),c=this.getPitch(),h="zoom"in t?+t.zoom:s,f="bearing"in t?this._normalizeBearing(t.bearing,u):u,p="pitch"in t?+t.pitch:c,d=a.centerPoint.add(l.convert(t.offset)),g=a.pointLocation(d),v=o.convert(t.center||g);this._normalizeCenter(v);var m,y,x=a.project(g),b=a.project(v).sub(x),_=a.zoomScale(h-s);return t.around&&(m=o.convert(t.around),y=a.locationPoint(m)),this.zooming=h!==s,this.rotating=u!==f,this.pitching=p!==c,this._prepareEase(e,t.noMoveStart),clearTimeout(this._onEaseEnd),this._ease(function(t){if(r.zooming&&(a.zoom=i(s,h,t)),r.rotating&&(a.bearing=i(u,f,t)),r.pitching&&(a.pitch=i(c,p,t)),m)a.setLocationAtPoint(m,y);else{var n=a.zoomScale(a.zoom-s),o=h>s?Math.min(2,_):Math.max(.5,_),l=Math.pow(o,1-t),g=a.unproject(x.add(b.mult(t*l)).mult(n));a.setLocationAtPoint(a.renderWorldCopies?g.wrap():g,d)}r._fireMoveEvents(e)},function(){t.delayEndEvents?r._onEaseEnd=setTimeout(function(){return r._afterEase(e)},t.delayEndEvents):r._afterEase(e)},t),this},e.prototype._prepareEase=function(t,e){this.moving=!0,e||this.fire("movestart",t),this.zooming&&this.fire("zoomstart",t),this.pitching&&this.fire("pitchstart",t)},e.prototype._fireMoveEvents=function(t){this.fire("move",t),this.zooming&&this.fire("zoom",t),this.rotating&&this.fire("rotate",t),this.pitching&&this.fire("pitch",t)},e.prototype._afterEase=function(t){var e=this.zooming,r=this.pitching;this.moving=!1,this.zooming=!1,this.rotating=!1,this.pitching=!1,e&&this.fire("zoomend",t),r&&this.fire("pitchend",t),this.fire("moveend",t)},e.prototype.flyTo=function(t,e){function r(t){var e=(k*k-A*A+(t?-1:1)*C*C*T*T)/(2*(t?k:A)*C*T);return Math.log(Math.sqrt(e*e+1)-e)}function a(t){return(Math.exp(t)-Math.exp(-t))/2}function s(t){return(Math.exp(t)+Math.exp(-t))/2}var u=this;this.stop(),t=n.extend({offset:[0,0],speed:1.2,curve:1.42,easing:n.ease},t);var c=this.transform,h=this.getZoom(),f=this.getBearing(),p=this.getPitch(),d="zoom"in t?n.clamp(+t.zoom,c.minZoom,c.maxZoom):h,g="bearing"in t?this._normalizeBearing(t.bearing,f):f,v="pitch"in t?+t.pitch:p,m=c.zoomScale(d-h),y=c.centerPoint.add(l.convert(t.offset)),x=c.pointLocation(y),b=o.convert(t.center||x);this._normalizeCenter(b);var _=c.project(x),w=c.project(b).sub(_),M=t.curve,A=Math.max(c.width,c.height),k=A/m,T=w.mag();if("minZoom"in t){var S=n.clamp(Math.min(t.minZoom,h,d),c.minZoom,c.maxZoom),E=A/c.zoomScale(S-h);M=Math.sqrt(E/T*2)}var C=M*M,L=r(0),z=function(t){return s(L)/s(L+M*t)},P=function(t){return A*((s(L)*function(t){return a(t)/s(t)}(L+M*t)-a(L))/C)/T},I=(r(1)-L)/M;if(Math.abs(T)<1e-6||!isFinite(I)){if(Math.abs(A-k)<1e-6)return this.easeTo(t,e);var D=kt.maxDuration&&(t.duration=0),this.zooming=!0,this.rotating=f!==g,this.pitching=v!==p,this._prepareEase(e,!1),this._ease(function(t){var r=t*I,n=1/z(r);c.zoom=h+c.scaleZoom(n),u.rotating&&(c.bearing=i(f,g,t)),u.pitching&&(c.pitch=i(p,v,t));var a=c.unproject(_.add(w.mult(P(r))).mult(n));c.setLocationAtPoint(c.renderWorldCopies?a.wrap():a,y),u._fireMoveEvents(e)},function(){return u._afterEase(e)},t),this},e.prototype.isEasing=function(){return!!this._isEasing},e.prototype.isMoving=function(){return this.moving},e.prototype.stop=function(){return this._onFrame&&this._finishAnimation(),this},e.prototype._ease=function(t,e,r){var n=this;!1===r.animate||0===r.duration?(t(1),e()):(this._easeStart=a.now(),this._isEasing=!0,this._easeOptions=r,this._startAnimation(function(e){var r=Math.min((a.now()-n._easeStart)/n._easeOptions.duration,1);t(n._easeOptions.easing(r)),1===r&&n.stop()},function(){n._isEasing=!1,e()}))},e.prototype._updateCamera=function(){this._onFrame&&this._onFrame(this.transform)},e.prototype._startAnimation=function(t,e){return void 0===e&&(e=function(){}),this.stop(),this._onFrame=t,this._finishFn=e,this._update(),this},e.prototype._finishAnimation=function(){delete this._onFrame;var t=this._finishFn;delete this._finishFn,t.call(this)},e.prototype._normalizeBearing=function(t,e){t=n.wrap(t,-180,180);var r=Math.abs(t-e);return Math.abs(t-360-e)180?-360:r<-180?360:0}},e}(t("../util/evented"));e.exports=u},{"../geo/lng_lat":62,"../geo/lng_lat_bounds":63,"../style-spec/util/interpolate":158,"../util/browser":252,"../util/evented":260,"../util/util":275,"@mapbox/point-geometry":4}],232:[function(t,e,r){var n=t("../../util/dom"),i=t("../../util/util"),a=t("../../util/config"),o=function(t){this.options=t,i.bindAll(["_updateEditLink","_updateData","_updateCompact"],this)};o.prototype.getDefaultPosition=function(){return"bottom-right"},o.prototype.onAdd=function(t){var e=this.options&&this.options.compact;return this._map=t,this._container=n.create("div","mapboxgl-ctrl mapboxgl-ctrl-attrib"),e&&this._container.classList.add("mapboxgl-compact"),this._updateAttributions(),this._updateEditLink(),this._map.on("sourcedata",this._updateData),this._map.on("moveend",this._updateEditLink),void 0===e&&(this._map.on("resize",this._updateCompact),this._updateCompact()),this._container},o.prototype.onRemove=function(){n.remove(this._container),this._map.off("sourcedata",this._updateData),this._map.off("moveend",this._updateEditLink),this._map.off("resize",this._updateCompact),this._map=void 0},o.prototype._updateEditLink=function(){var t=this._editLink;t||(t=this._editLink=this._container.querySelector(".mapbox-improve-map"));var e=[{key:"owner",value:this.styleOwner},{key:"id",value:this.styleId},{key:"access_token",value:a.ACCESS_TOKEN}];if(t){var r=e.reduce(function(t,r,n){return r.value&&(t+=r.key+"="+r.value+(n=0)return!1;return!0})).length?(this._container.innerHTML=t.join(" | "),this._container.classList.remove("mapboxgl-attrib-empty")):this._container.classList.add("mapboxgl-attrib-empty"),this._editLink=null}},o.prototype._updateCompact=function(){this._map.getCanvasContainer().offsetWidth<=640?this._container.classList.add("mapboxgl-compact"):this._container.classList.remove("mapboxgl-compact")},e.exports=o},{"../../util/config":256,"../../util/dom":259,"../../util/util":275}],233:[function(t,e,r){var n=t("../../util/dom"),i=t("../../util/util"),a=t("../../util/window"),o=function(){this._fullscreen=!1,i.bindAll(["_onClickFullscreen","_changeIcon"],this),"onfullscreenchange"in a.document?this._fullscreenchange="fullscreenchange":"onmozfullscreenchange"in a.document?this._fullscreenchange="mozfullscreenchange":"onwebkitfullscreenchange"in a.document?this._fullscreenchange="webkitfullscreenchange":"onmsfullscreenchange"in a.document&&(this._fullscreenchange="MSFullscreenChange"),this._className="mapboxgl-ctrl"};o.prototype.onAdd=function(t){return this._map=t,this._mapContainer=this._map.getContainer(),this._container=n.create("div",this._className+" mapboxgl-ctrl-group"),this._checkFullscreenSupport()?this._setupUI():(this._container.style.display="none",i.warnOnce("This device does not support fullscreen mode.")),this._container},o.prototype.onRemove=function(){n.remove(this._container),this._map=null,a.document.removeEventListener(this._fullscreenchange,this._changeIcon)},o.prototype._checkFullscreenSupport=function(){return!!(a.document.fullscreenEnabled||a.document.mozFullScreenEnabled||a.document.msFullscreenEnabled||a.document.webkitFullscreenEnabled)},o.prototype._setupUI=function(){var t=this._fullscreenButton=n.create("button",this._className+"-icon "+this._className+"-fullscreen",this._container);t.setAttribute("aria-label","Toggle fullscreen"),t.type="button",this._fullscreenButton.addEventListener("click",this._onClickFullscreen),a.document.addEventListener(this._fullscreenchange,this._changeIcon)},o.prototype._isFullscreen=function(){return this._fullscreen},o.prototype._changeIcon=function(){(a.document.fullscreenElement||a.document.mozFullScreenElement||a.document.webkitFullscreenElement||a.document.msFullscreenElement)===this._mapContainer!==this._fullscreen&&(this._fullscreen=!this._fullscreen,this._fullscreenButton.classList.toggle(this._className+"-shrink"),this._fullscreenButton.classList.toggle(this._className+"-fullscreen"))},o.prototype._onClickFullscreen=function(){this._isFullscreen()?a.document.exitFullscreen?a.document.exitFullscreen():a.document.mozCancelFullScreen?a.document.mozCancelFullScreen():a.document.msExitFullscreen?a.document.msExitFullscreen():a.document.webkitCancelFullScreen&&a.document.webkitCancelFullScreen():this._mapContainer.requestFullscreen?this._mapContainer.requestFullscreen():this._mapContainer.mozRequestFullScreen?this._mapContainer.mozRequestFullScreen():this._mapContainer.msRequestFullscreen?this._mapContainer.msRequestFullscreen():this._mapContainer.webkitRequestFullscreen&&this._mapContainer.webkitRequestFullscreen()},e.exports=o},{"../../util/dom":259,"../../util/util":275,"../../util/window":254}],234:[function(t,e,r){var n,i=t("../../util/evented"),a=t("../../util/dom"),o=t("../../util/window"),s=t("../../util/util"),l=t("../../geo/lng_lat"),u=t("../marker"),c={positionOptions:{enableHighAccuracy:!1,timeout:6e3},fitBoundsOptions:{maxZoom:15},trackUserLocation:!1,showUserLocation:!0},h=function(t){function e(e){t.call(this),this.options=s.extend({},c,e),s.bindAll(["_onSuccess","_onError","_finish","_setupUI","_updateCamera","_updateMarker","_onClickGeolocate"],this)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.onAdd=function(t){return this._map=t,this._container=a.create("div","mapboxgl-ctrl mapboxgl-ctrl-group"),function(t){void 0!==n?t(n):void 0!==o.navigator.permissions?o.navigator.permissions.query({name:"geolocation"}).then(function(e){n="denied"!==e.state,t(n)}):(n=!!o.navigator.geolocation,t(n))}(this._setupUI),this._container},e.prototype.onRemove=function(){void 0!==this._geolocationWatchID&&(o.navigator.geolocation.clearWatch(this._geolocationWatchID),this._geolocationWatchID=void 0),this.options.showUserLocation&&this._userLocationDotMarker.remove(),a.remove(this._container),this._map=void 0},e.prototype._onSuccess=function(t){if(this.options.trackUserLocation)switch(this._lastKnownPosition=t,this._watchState){case"WAITING_ACTIVE":case"ACTIVE_LOCK":case"ACTIVE_ERROR":this._watchState="ACTIVE_LOCK",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active-error"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active");break;case"BACKGROUND":case"BACKGROUND_ERROR":this._watchState="BACKGROUND",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background-error"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background")}this.options.showUserLocation&&"OFF"!==this._watchState&&this._updateMarker(t),this.options.trackUserLocation&&"ACTIVE_LOCK"!==this._watchState||this._updateCamera(t),this.options.showUserLocation&&this._dotElement.classList.remove("mapboxgl-user-location-dot-stale"),this.fire("geolocate",t),this._finish()},e.prototype._updateCamera=function(t){var e=new l(t.coords.longitude,t.coords.latitude),r=t.coords.accuracy;this._map.fitBounds(e.toBounds(r),this.options.fitBoundsOptions,{geolocateSource:!0})},e.prototype._updateMarker=function(t){t?this._userLocationDotMarker.setLngLat([t.coords.longitude,t.coords.latitude]).addTo(this._map):this._userLocationDotMarker.remove()},e.prototype._onError=function(t){if(this.options.trackUserLocation)if(1===t.code)this._watchState="OFF",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active-error"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background-error"),void 0!==this._geolocationWatchID&&this._clearWatch();else switch(this._watchState){case"WAITING_ACTIVE":this._watchState="ACTIVE_ERROR",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active-error");break;case"ACTIVE_LOCK":this._watchState="ACTIVE_ERROR",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active-error"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting");break;case"BACKGROUND":this._watchState="BACKGROUND_ERROR",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background-error"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting")}"OFF"!==this._watchState&&this.options.showUserLocation&&this._dotElement.classList.add("mapboxgl-user-location-dot-stale"),this.fire("error",t),this._finish()},e.prototype._finish=function(){this._timeoutId&&clearTimeout(this._timeoutId),this._timeoutId=void 0},e.prototype._setupUI=function(t){var e=this;!1!==t&&(this._container.addEventListener("contextmenu",function(t){return t.preventDefault()}),this._geolocateButton=a.create("button","mapboxgl-ctrl-icon mapboxgl-ctrl-geolocate",this._container),this._geolocateButton.type="button",this._geolocateButton.setAttribute("aria-label","Geolocate"),this.options.trackUserLocation&&(this._geolocateButton.setAttribute("aria-pressed","false"),this._watchState="OFF"),this.options.showUserLocation&&(this._dotElement=a.create("div","mapboxgl-user-location-dot"),this._userLocationDotMarker=new u(this._dotElement),this.options.trackUserLocation&&(this._watchState="OFF")),this._geolocateButton.addEventListener("click",this._onClickGeolocate.bind(this)),this.options.trackUserLocation&&this._map.on("movestart",function(t){t.geolocateSource||"ACTIVE_LOCK"!==e._watchState||(e._watchState="BACKGROUND",e._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background"),e._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"),e.fire("trackuserlocationend"))}))},e.prototype._onClickGeolocate=function(){if(this.options.trackUserLocation){switch(this._watchState){case"OFF":this._watchState="WAITING_ACTIVE",this.fire("trackuserlocationstart");break;case"WAITING_ACTIVE":case"ACTIVE_LOCK":case"ACTIVE_ERROR":case"BACKGROUND_ERROR":this._watchState="OFF",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active-error"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background-error"),this.fire("trackuserlocationend");break;case"BACKGROUND":this._watchState="ACTIVE_LOCK",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background"),this._lastKnownPosition&&this._updateCamera(this._lastKnownPosition),this.fire("trackuserlocationstart")}switch(this._watchState){case"WAITING_ACTIVE":this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active");break;case"ACTIVE_LOCK":this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active");break;case"ACTIVE_ERROR":this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active-error");break;case"BACKGROUND":this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background");break;case"BACKGROUND_ERROR":this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background-error")}"OFF"===this._watchState&&void 0!==this._geolocationWatchID?this._clearWatch():void 0===this._geolocationWatchID&&(this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.setAttribute("aria-pressed","true"),this._geolocationWatchID=o.navigator.geolocation.watchPosition(this._onSuccess,this._onError,this.options.positionOptions))}else o.navigator.geolocation.getCurrentPosition(this._onSuccess,this._onError,this.options.positionOptions),this._timeoutId=setTimeout(this._finish,1e4)},e.prototype._clearWatch=function(){o.navigator.geolocation.clearWatch(this._geolocationWatchID),this._geolocationWatchID=void 0,this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.setAttribute("aria-pressed","false"),this.options.showUserLocation&&this._updateMarker(null)},e}(i);e.exports=h},{"../../geo/lng_lat":62,"../../util/dom":259,"../../util/evented":260,"../../util/util":275,"../../util/window":254,"../marker":248}],235:[function(t,e,r){var n=t("../../util/dom"),i=t("../../util/util"),a=function(){i.bindAll(["_updateLogo"],this)};a.prototype.onAdd=function(t){this._map=t,this._container=n.create("div","mapboxgl-ctrl");var e=n.create("a","mapboxgl-ctrl-logo");return e.target="_blank",e.href="https://www.mapbox.com/",e.setAttribute("aria-label","Mapbox logo"),this._container.appendChild(e),this._container.style.display="none",this._map.on("sourcedata",this._updateLogo),this._updateLogo(),this._container},a.prototype.onRemove=function(){n.remove(this._container),this._map.off("sourcedata",this._updateLogo)},a.prototype.getDefaultPosition=function(){return"bottom-left"},a.prototype._updateLogo=function(t){t&&"metadata"!==t.sourceDataType||(this._container.style.display=this._logoRequired()?"block":"none")},a.prototype._logoRequired=function(){if(this._map.style){var t=this._map.style.sourceCaches;for(var e in t)if(t[e].getSource().mapbox_logo)return!0;return!1}},e.exports=a},{"../../util/dom":259,"../../util/util":275}],236:[function(t,e,r){var n=t("../../util/dom"),i=t("../../util/util"),a=t("../handler/drag_rotate"),o={showCompass:!0,showZoom:!0},s=function(t){var e=this;this.options=i.extend({},o,t),this._container=n.create("div","mapboxgl-ctrl mapboxgl-ctrl-group"),this._container.addEventListener("contextmenu",function(t){return t.preventDefault()}),this.options.showZoom&&(this._zoomInButton=this._createButton("mapboxgl-ctrl-icon mapboxgl-ctrl-zoom-in","Zoom In",function(){return e._map.zoomIn()}),this._zoomOutButton=this._createButton("mapboxgl-ctrl-icon mapboxgl-ctrl-zoom-out","Zoom Out",function(){return e._map.zoomOut()})),this.options.showCompass&&(i.bindAll(["_rotateCompassArrow"],this),this._compass=this._createButton("mapboxgl-ctrl-icon mapboxgl-ctrl-compass","Reset North",function(){return e._map.resetNorth()}),this._compassArrow=n.create("span","mapboxgl-ctrl-compass-arrow",this._compass))};s.prototype._rotateCompassArrow=function(){var t="rotate("+this._map.transform.angle*(180/Math.PI)+"deg)";this._compassArrow.style.transform=t},s.prototype.onAdd=function(t){return this._map=t,this.options.showCompass&&(this._map.on("rotate",this._rotateCompassArrow),this._rotateCompassArrow(),this._handler=new a(t,{button:"left",element:this._compass}),this._handler.enable()),this._container},s.prototype.onRemove=function(){n.remove(this._container),this.options.showCompass&&(this._map.off("rotate",this._rotateCompassArrow),this._handler.disable(),delete this._handler),delete this._map},s.prototype._createButton=function(t,e,r){var i=n.create("button",t,this._container);return i.type="button",i.setAttribute("aria-label",e),i.addEventListener("click",r),i},e.exports=s},{"../../util/dom":259,"../../util/util":275,"../handler/drag_rotate":242}],237:[function(t,e,r){function n(t,e,r){var n=r&&r.maxWidth||100,a=t._container.clientHeight/2,o=function(t,e){var r=Math.PI/180,n=t.lat*r,i=e.lat*r,a=Math.sin(n)*Math.sin(i)+Math.cos(n)*Math.cos(i)*Math.cos((e.lng-t.lng)*r);return 6371e3*Math.acos(Math.min(a,1))}(t.unproject([0,a]),t.unproject([n,a]));if(r&&"imperial"===r.unit){var s=3.2808*o;s>5280?i(e,n,s/5280,"mi"):i(e,n,s,"ft")}else if(r&&"nautical"===r.unit){i(e,n,o/1852,"nm")}else i(e,n,o,"m")}function i(t,e,r,n){var i=function(t){var e=Math.pow(10,(""+Math.floor(t)).length-1),r=t/e;return e*(r=r>=10?10:r>=5?5:r>=3?3:r>=2?2:1)}(r),a=i/r;"m"===n&&i>=1e3&&(i/=1e3,n="km"),t.style.width=e*a+"px",t.innerHTML=i+n}var a=t("../../util/dom"),o=t("../../util/util"),s=function(t){this.options=t,o.bindAll(["_onMove"],this)};s.prototype.getDefaultPosition=function(){return"bottom-left"},s.prototype._onMove=function(){n(this._map,this._container,this.options)},s.prototype.onAdd=function(t){return this._map=t,this._container=a.create("div","mapboxgl-ctrl mapboxgl-ctrl-scale",t.getContainer()),this._map.on("move",this._onMove),this._onMove(),this._container},s.prototype.onRemove=function(){a.remove(this._container),this._map.off("move",this._onMove),this._map=void 0},e.exports=s},{"../../util/dom":259,"../../util/util":275}],238:[function(t,e,r){},{}],239:[function(t,e,r){var n=t("../../util/dom"),i=t("../../geo/lng_lat_bounds"),a=t("../../util/util"),o=t("../../util/window"),s=function(t){this._map=t,this._el=t.getCanvasContainer(),this._container=t.getContainer(),a.bindAll(["_onMouseDown","_onMouseMove","_onMouseUp","_onKeyDown"],this)};s.prototype.isEnabled=function(){return!!this._enabled},s.prototype.isActive=function(){return!!this._active},s.prototype.enable=function(){this.isEnabled()||(this._map.dragPan&&this._map.dragPan.disable(),this._el.addEventListener("mousedown",this._onMouseDown,!1),this._map.dragPan&&this._map.dragPan.enable(),this._enabled=!0)},s.prototype.disable=function(){this.isEnabled()&&(this._el.removeEventListener("mousedown",this._onMouseDown),this._enabled=!1)},s.prototype._onMouseDown=function(t){t.shiftKey&&0===t.button&&(o.document.addEventListener("mousemove",this._onMouseMove,!1),o.document.addEventListener("keydown",this._onKeyDown,!1),o.document.addEventListener("mouseup",this._onMouseUp,!1),n.disableDrag(),this._startPos=n.mousePos(this._el,t),this._active=!0)},s.prototype._onMouseMove=function(t){var e=this._startPos,r=n.mousePos(this._el,t);this._box||(this._box=n.create("div","mapboxgl-boxzoom",this._container),this._container.classList.add("mapboxgl-crosshair"),this._fireEvent("boxzoomstart",t));var i=Math.min(e.x,r.x),a=Math.max(e.x,r.x),o=Math.min(e.y,r.y),s=Math.max(e.y,r.y);n.setTransform(this._box,"translate("+i+"px,"+o+"px)"),this._box.style.width=a-i+"px",this._box.style.height=s-o+"px"},s.prototype._onMouseUp=function(t){if(0===t.button){var e=this._startPos,r=n.mousePos(this._el,t),a=(new i).extend(this._map.unproject(e)).extend(this._map.unproject(r));this._finish(),e.x===r.x&&e.y===r.y?this._fireEvent("boxzoomcancel",t):this._map.fitBounds(a,{linear:!0}).fire("boxzoomend",{originalEvent:t,boxZoomBounds:a})}},s.prototype._onKeyDown=function(t){27===t.keyCode&&(this._finish(),this._fireEvent("boxzoomcancel",t))},s.prototype._finish=function(){this._active=!1,o.document.removeEventListener("mousemove",this._onMouseMove,!1),o.document.removeEventListener("keydown",this._onKeyDown,!1),o.document.removeEventListener("mouseup",this._onMouseUp,!1),this._container.classList.remove("mapboxgl-crosshair"),this._box&&(n.remove(this._box),this._box=null),n.enableDrag()},s.prototype._fireEvent=function(t,e){return this._map.fire(t,{originalEvent:e})},e.exports=s},{"../../geo/lng_lat_bounds":63,"../../util/dom":259,"../../util/util":275,"../../util/window":254}],240:[function(t,e,r){var n=t("../../util/util"),i=function(t){this._map=t,n.bindAll(["_onDblClick","_onZoomEnd"],this)};i.prototype.isEnabled=function(){return!!this._enabled},i.prototype.isActive=function(){return!!this._active},i.prototype.enable=function(){this.isEnabled()||(this._map.on("dblclick",this._onDblClick),this._enabled=!0)},i.prototype.disable=function(){this.isEnabled()&&(this._map.off("dblclick",this._onDblClick),this._enabled=!1)},i.prototype._onDblClick=function(t){this._active=!0,this._map.on("zoomend",this._onZoomEnd),this._map.zoomTo(this._map.getZoom()+(t.originalEvent.shiftKey?-1:1),{around:t.lngLat},t)},i.prototype._onZoomEnd=function(){this._active=!1,this._map.off("zoomend",this._onZoomEnd)},e.exports=i},{"../../util/util":275}],241:[function(t,e,r){var n=t("../../util/dom"),i=t("../../util/util"),a=t("../../util/window"),o=t("../../util/browser"),s=i.bezier(0,0,.3,1),l=function(t){this._map=t,this._el=t.getCanvasContainer(),i.bindAll(["_onDown","_onMove","_onUp","_onTouchEnd","_onMouseUp","_onDragFrame","_onDragFinished"],this)};l.prototype.isEnabled=function(){return!!this._enabled},l.prototype.isActive=function(){return!!this._active},l.prototype.enable=function(){this.isEnabled()||(this._el.classList.add("mapboxgl-touch-drag-pan"),this._el.addEventListener("mousedown",this._onDown),this._el.addEventListener("touchstart",this._onDown),this._enabled=!0)},l.prototype.disable=function(){this.isEnabled()&&(this._el.classList.remove("mapboxgl-touch-drag-pan"),this._el.removeEventListener("mousedown",this._onDown),this._el.removeEventListener("touchstart",this._onDown),this._enabled=!1)},l.prototype._onDown=function(t){this._ignoreEvent(t)||this.isActive()||(t.touches?(a.document.addEventListener("touchmove",this._onMove),a.document.addEventListener("touchend",this._onTouchEnd)):(a.document.addEventListener("mousemove",this._onMove),a.document.addEventListener("mouseup",this._onMouseUp)),a.addEventListener("blur",this._onMouseUp),this._active=!1,this._previousPos=n.mousePos(this._el,t),this._inertia=[[o.now(),this._previousPos]])},l.prototype._onMove=function(t){if(!this._ignoreEvent(t)){this._lastMoveEvent=t,t.preventDefault();var e=n.mousePos(this._el,t);if(this._drainInertiaBuffer(),this._inertia.push([o.now(),e]),!this._previousPos)return void(this._previousPos=e);this._pos=e,this.isActive()||(this._active=!0,this._map.moving=!0,this._fireEvent("dragstart",t),this._fireEvent("movestart",t),this._map._startAnimation(this._onDragFrame,this._onDragFinished)),this._map._update()}},l.prototype._onDragFrame=function(t){var e=this._lastMoveEvent;e&&(t.setLocationAtPoint(t.pointLocation(this._previousPos),this._pos),this._fireEvent("drag",e),this._fireEvent("move",e),this._previousPos=this._pos,delete this._lastMoveEvent)},l.prototype._onDragFinished=function(t){var e=this;if(this.isActive()){this._active=!1,delete this._lastMoveEvent,delete this._previousPos,delete this._pos,this._fireEvent("dragend",t),this._drainInertiaBuffer();var r=function(){e._map.moving=!1,e._fireEvent("moveend",t)},n=this._inertia;if(n.length<2)return void r();var i=n[n.length-1],a=n[0],o=i[1].sub(a[1]),l=(i[0]-a[0])/1e3;if(0===l||i[1].equals(a[1]))return void r();var u=o.mult(.3/l),c=u.mag();c>1400&&(c=1400,u._unit()._mult(c));var h=c/750,f=u.mult(-h/2);this._map.panBy(f,{duration:1e3*h,easing:s,noMoveStart:!0},{originalEvent:t})}},l.prototype._onUp=function(t){this._onDragFinished(t)},l.prototype._onMouseUp=function(t){this._ignoreEvent(t)||(this._onUp(t),a.document.removeEventListener("mousemove",this._onMove),a.document.removeEventListener("mouseup",this._onMouseUp),a.removeEventListener("blur",this._onMouseUp))},l.prototype._onTouchEnd=function(t){this._ignoreEvent(t)||(this._onUp(t),a.document.removeEventListener("touchmove",this._onMove),a.document.removeEventListener("touchend",this._onTouchEnd))},l.prototype._fireEvent=function(t,e){return this._map.fire(t,e?{originalEvent:e}:{})},l.prototype._ignoreEvent=function(t){var e=this._map;return!(!e.boxZoom||!e.boxZoom.isActive())||!(!e.dragRotate||!e.dragRotate.isActive())||(t.touches?t.touches.length>1:!!t.ctrlKey||"mousemove"!==t.type&&t.button&&0!==t.button)},l.prototype._drainInertiaBuffer=function(){for(var t=this._inertia,e=o.now();t.length>0&&e-t[0][0]>160;)t.shift()},e.exports=l},{"../../util/browser":252,"../../util/dom":259,"../../util/util":275,"../../util/window":254}],242:[function(t,e,r){var n=t("../../util/dom"),i=t("../../util/util"),a=t("../../util/window"),o=t("../../util/browser"),s=i.bezier(0,0,.25,1),l=function(t,e){this._map=t,this._el=e.element||t.getCanvasContainer(),this._button=e.button||"right",this._bearingSnap=e.bearingSnap||0,this._pitchWithRotate=!1!==e.pitchWithRotate,i.bindAll(["_onDown","_onMove","_onUp","_onDragFrame","_onDragFinished"],this)};l.prototype.isEnabled=function(){return!!this._enabled},l.prototype.isActive=function(){return!!this._active},l.prototype.enable=function(){this.isEnabled()||(this._el.addEventListener("mousedown",this._onDown),this._enabled=!0)},l.prototype.disable=function(){this.isEnabled()&&(this._el.removeEventListener("mousedown",this._onDown),this._enabled=!1)},l.prototype._onDown=function(t){if(!(this._map.boxZoom&&this._map.boxZoom.isActive()||this._map.dragPan&&this._map.dragPan.isActive()||this.isActive())){if("right"===this._button){var e=t.ctrlKey?0:2,r=t.button;if(void 0!==a.InstallTrigger&&2===t.button&&t.ctrlKey&&a.navigator.platform.toUpperCase().indexOf("MAC")>=0&&(r=0),r!==e)return}else if(t.ctrlKey||0!==t.button)return;n.disableDrag(),a.document.addEventListener("mousemove",this._onMove,{capture:!0}),a.document.addEventListener("mouseup",this._onUp),a.addEventListener("blur",this._onUp),this._active=!1,this._inertia=[[o.now(),this._map.getBearing()]],this._previousPos=n.mousePos(this._el,t),this._center=this._map.transform.centerPoint,t.preventDefault()}},l.prototype._onMove=function(t){this._lastMoveEvent=t;var e=n.mousePos(this._el,t);this._previousPos?(this._pos=e,this.isActive()||(this._active=!0,this._map.moving=!0,this._fireEvent("rotatestart",t),this._fireEvent("movestart",t),this._pitchWithRotate&&this._fireEvent("pitchstart",t),this._map._startAnimation(this._onDragFrame,this._onDragFinished)),this._map._update()):this._previousPos=e},l.prototype._onUp=function(t){a.document.removeEventListener("mousemove",this._onMove,{capture:!0}),a.document.removeEventListener("mouseup",this._onUp),a.removeEventListener("blur",this._onUp),n.enableDrag(),this._onDragFinished(t)},l.prototype._onDragFrame=function(t){var e=this._lastMoveEvent;if(e){var r=this._previousPos,n=this._pos,i=.8*(r.x-n.x),a=-.5*(r.y-n.y),s=t.bearing-i,l=t.pitch-a,u=this._inertia,c=u[u.length-1];this._drainInertiaBuffer(),u.push([o.now(),this._map._normalizeBearing(s,c[1])]),t.bearing=s,this._pitchWithRotate&&(this._fireEvent("pitch",e),t.pitch=l),this._fireEvent("rotate",e),this._fireEvent("move",e),delete this._lastMoveEvent,this._previousPos=this._pos}},l.prototype._onDragFinished=function(t){var e=this;if(this.isActive()){this._active=!1,delete this._lastMoveEvent,delete this._previousPos,this._fireEvent("rotateend",t),this._drainInertiaBuffer();var r=this._map,n=r.getBearing(),i=this._inertia,a=function(){Math.abs(n)180&&(d=180);var g=d/180;c+=f*d*(g/2),Math.abs(r._normalizeBearing(c,0))0&&e-t[0][0]>160;)t.shift()},e.exports=l},{"../../util/browser":252,"../../util/dom":259,"../../util/util":275,"../../util/window":254}],243:[function(t,e,r){function n(t){return t*(2-t)}var i=t("../../util/util"),a=function(t){this._map=t,this._el=t.getCanvasContainer(),i.bindAll(["_onKeyDown"],this)};a.prototype.isEnabled=function(){return!!this._enabled},a.prototype.enable=function(){this.isEnabled()||(this._el.addEventListener("keydown",this._onKeyDown,!1),this._enabled=!0)},a.prototype.disable=function(){this.isEnabled()&&(this._el.removeEventListener("keydown",this._onKeyDown),this._enabled=!1)},a.prototype._onKeyDown=function(t){if(!(t.altKey||t.ctrlKey||t.metaKey)){var e=0,r=0,i=0,a=0,o=0;switch(t.keyCode){case 61:case 107:case 171:case 187:e=1;break;case 189:case 109:case 173:e=-1;break;case 37:t.shiftKey?r=-1:(t.preventDefault(),a=-1);break;case 39:t.shiftKey?r=1:(t.preventDefault(),a=1);break;case 38:t.shiftKey?i=1:(t.preventDefault(),o=-1);break;case 40:t.shiftKey?i=-1:(o=1,t.preventDefault());break;default:return}var s=this._map,l=s.getZoom(),u={duration:300,delayEndEvents:500,easing:n,zoom:e?Math.round(l)+e*(t.shiftKey?2:1):l,bearing:s.getBearing()+15*r,pitch:s.getPitch()+10*i,offset:[100*-a,100*-o],center:s.getCenter()};s.easeTo(u,{originalEvent:t})}},e.exports=a},{"../../util/util":275}],244:[function(t,e,r){var n=t("../../util/dom"),i=t("../../util/util"),a=t("../../util/browser"),o=t("../../util/window"),s=t("../../style-spec/util/interpolate").number,l=t("../../geo/lng_lat"),u=o.navigator.userAgent.toLowerCase(),c=-1!==u.indexOf("firefox"),h=-1!==u.indexOf("safari")&&-1===u.indexOf("chrom"),f=function(t){this._map=t,this._el=t.getCanvasContainer(),this._delta=0,i.bindAll(["_onWheel","_onTimeout","_onScrollFrame","_onScrollFinished"],this)};f.prototype.isEnabled=function(){return!!this._enabled},f.prototype.isActive=function(){return!!this._active},f.prototype.enable=function(t){this.isEnabled()||(this._el.addEventListener("wheel",this._onWheel,!1),this._el.addEventListener("mousewheel",this._onWheel,!1),this._enabled=!0,this._aroundCenter=t&&"center"===t.around)},f.prototype.disable=function(){this.isEnabled()&&(this._el.removeEventListener("wheel",this._onWheel),this._el.removeEventListener("mousewheel",this._onWheel),this._enabled=!1)},f.prototype._onWheel=function(t){var e=0;"wheel"===t.type?(e=t.deltaY,c&&t.deltaMode===o.WheelEvent.DOM_DELTA_PIXEL&&(e/=a.devicePixelRatio),t.deltaMode===o.WheelEvent.DOM_DELTA_LINE&&(e*=40)):"mousewheel"===t.type&&(e=-t.wheelDeltaY,h&&(e/=3));var r=a.now(),n=r-(this._lastWheelEventTime||0);this._lastWheelEventTime=r,0!==e&&e%4.000244140625==0?this._type="wheel":0!==e&&Math.abs(e)<4?this._type="trackpad":n>400?(this._type=null,this._lastValue=e,this._timeout=setTimeout(this._onTimeout,40,t)):this._type||(this._type=Math.abs(n*e)<200?"trackpad":"wheel",this._timeout&&(clearTimeout(this._timeout),this._timeout=null,e+=this._lastValue)),t.shiftKey&&e&&(e/=4),this._type&&(this._lastWheelEvent=t,this._delta-=e,this.isActive()||this._start(t)),t.preventDefault()},f.prototype._onTimeout=function(t){this._type="wheel",this._delta-=this._lastValue,this.isActive()||this._start(t)},f.prototype._start=function(t){if(this._delta){this._active=!0,this._map.moving=!0,this._map.zooming=!0,this._map.fire("movestart",{originalEvent:t}),this._map.fire("zoomstart",{originalEvent:t}),clearTimeout(this._finishTimeout);var e=n.mousePos(this._el,t);this._around=l.convert(this._aroundCenter?this._map.getCenter():this._map.unproject(e)),this._aroundPoint=this._map.transform.locationPoint(this._around),this._map._startAnimation(this._onScrollFrame,this._onScrollFinished)}},f.prototype._onScrollFrame=function(t){if(this.isActive()){if(0!==this._delta){var e="wheel"===this._type&&Math.abs(this._delta)>4.000244140625?1/450:.01,r=2/(1+Math.exp(-Math.abs(this._delta*e)));this._delta<0&&0!==r&&(r=1/r);var n="number"==typeof this._targetZoom?t.zoomScale(this._targetZoom):t.scale;this._targetZoom=Math.min(t.maxZoom,Math.max(t.minZoom,t.scaleZoom(n*r))),"wheel"===this._type&&(this._startZoom=t.zoom,this._easing=this._smoothOutEasing(200)),this._delta=0}if("wheel"===this._type){var i=Math.min((a.now()-this._lastWheelEventTime)/200,1),o=this._easing(i);t.zoom=s(this._startZoom,this._targetZoom,o),1===i&&this._map.stop()}else t.zoom=this._targetZoom,this._map.stop();t.setLocationAtPoint(this._around,this._aroundPoint),this._map.fire("move",{originalEvent:this._lastWheelEvent}),this._map.fire("zoom",{originalEvent:this._lastWheelEvent})}},f.prototype._onScrollFinished=function(){var t=this;this.isActive()&&(this._active=!1,this._finishTimeout=setTimeout(function(){t._map.moving=!1,t._map.zooming=!1,t._map.fire("zoomend"),t._map.fire("moveend"),delete t._targetZoom},200))},f.prototype._smoothOutEasing=function(t){var e=i.ease;if(this._prevEase){var r=this._prevEase,n=(a.now()-r.start)/r.duration,o=r.easing(n+.01)-r.easing(n),s=.27/Math.sqrt(o*o+1e-4)*.01,l=Math.sqrt(.0729-s*s);e=i.bezier(s,l,.25,1)}return this._prevEase={start:a.now(),duration:t,easing:e},e},e.exports=f},{"../../geo/lng_lat":62,"../../style-spec/util/interpolate":158,"../../util/browser":252,"../../util/dom":259,"../../util/util":275,"../../util/window":254}],245:[function(t,e,r){var n=t("../../util/dom"),i=t("../../util/util"),a=t("../../util/window"),o=t("../../util/browser"),s=i.bezier(0,0,.15,1),l=function(t){this._map=t,this._el=t.getCanvasContainer(),i.bindAll(["_onStart","_onMove","_onEnd"],this)};l.prototype.isEnabled=function(){return!!this._enabled},l.prototype.enable=function(t){this.isEnabled()||(this._el.classList.add("mapboxgl-touch-zoom-rotate"),this._el.addEventListener("touchstart",this._onStart,!1),this._enabled=!0,this._aroundCenter=t&&"center"===t.around)},l.prototype.disable=function(){this.isEnabled()&&(this._el.classList.remove("mapboxgl-touch-zoom-rotate"),this._el.removeEventListener("touchstart",this._onStart),this._enabled=!1)},l.prototype.disableRotation=function(){this._rotationDisabled=!0},l.prototype.enableRotation=function(){this._rotationDisabled=!1},l.prototype._onStart=function(t){if(2===t.touches.length){var e=n.mousePos(this._el,t.touches[0]),r=n.mousePos(this._el,t.touches[1]);this._startVec=e.sub(r),this._startScale=this._map.transform.scale,this._startBearing=this._map.transform.bearing,this._gestureIntent=void 0,this._inertia=[],a.document.addEventListener("touchmove",this._onMove,!1),a.document.addEventListener("touchend",this._onEnd,!1)}},l.prototype._onMove=function(t){if(2===t.touches.length){var e=n.mousePos(this._el,t.touches[0]),r=n.mousePos(this._el,t.touches[1]),i=e.add(r).div(2),a=e.sub(r),s=a.mag()/this._startVec.mag(),l=this._rotationDisabled?0:180*a.angleWith(this._startVec)/Math.PI,u=this._map;if(this._gestureIntent){var c={duration:0,around:u.unproject(i)};"rotate"===this._gestureIntent&&(c.bearing=this._startBearing+l),"zoom"!==this._gestureIntent&&"rotate"!==this._gestureIntent||(c.zoom=u.transform.scaleZoom(this._startScale*s)),u.stop(),this._drainInertiaBuffer(),this._inertia.push([o.now(),s,i]),u.easeTo(c,{originalEvent:t})}else{var h=Math.abs(1-s)>.15;Math.abs(l)>10?this._gestureIntent="rotate":h&&(this._gestureIntent="zoom"),this._gestureIntent&&(this._startVec=a,this._startScale=u.transform.scale,this._startBearing=u.transform.bearing)}t.preventDefault()}},l.prototype._onEnd=function(t){a.document.removeEventListener("touchmove",this._onMove),a.document.removeEventListener("touchend",this._onEnd),this._drainInertiaBuffer();var e=this._inertia,r=this._map;if(e.length<2)r.snapToNorth({},{originalEvent:t});else{var n=e[e.length-1],i=e[0],o=r.transform.scaleZoom(this._startScale*n[1]),l=r.transform.scaleZoom(this._startScale*i[1]),u=o-l,c=(n[0]-i[0])/1e3,h=n[2];if(0!==c&&o!==l){var f=.15*u/c;Math.abs(f)>2.5&&(f=f>0?2.5:-2.5);var p=1e3*Math.abs(f/(12*.15)),d=o+f*p/2e3;d<0&&(d=0),r.easeTo({zoom:d,duration:p,easing:s,around:this._aroundCenter?r.getCenter():r.unproject(h)},{originalEvent:t})}else r.snapToNorth({},{originalEvent:t})}},l.prototype._drainInertiaBuffer=function(){for(var t=this._inertia,e=o.now();t.length>2&&e-t[0][0]>160;)t.shift()},e.exports=l},{"../../util/browser":252,"../../util/dom":259,"../../util/util":275,"../../util/window":254}],246:[function(t,e,r){var n=t("../util/util"),i=t("../util/window"),a=t("../util/throttle"),o=function(){n.bindAll(["_onHashChange","_updateHash"],this),this._updateHash=a(this._updateHashUnthrottled.bind(this),300)};o.prototype.addTo=function(t){return this._map=t,i.addEventListener("hashchange",this._onHashChange,!1),this._map.on("moveend",this._updateHash),this},o.prototype.remove=function(){return i.removeEventListener("hashchange",this._onHashChange,!1),this._map.off("moveend",this._updateHash),delete this._map,this},o.prototype.getHashString=function(t){var e=this._map.getCenter(),r=Math.round(100*this._map.getZoom())/100,n=Math.ceil((r*Math.LN2+Math.log(512/360/.5))/Math.LN10),i=Math.pow(10,n),a=Math.round(e.lng*i)/i,o=Math.round(e.lat*i)/i,s=this._map.getBearing(),l=this._map.getPitch(),u="";return u+=t?"#/"+a+"/"+o+"/"+r:"#"+r+"/"+o+"/"+a,(s||l)&&(u+="/"+Math.round(10*s)/10),l&&(u+="/"+Math.round(l)),u},o.prototype._onHashChange=function(){var t=i.location.hash.replace("#","").split("/");return t.length>=3&&(this._map.jumpTo({center:[+t[2],+t[1]],zoom:+t[0],bearing:+(t[3]||0),pitch:+(t[4]||0)}),!0)},o.prototype._updateHashUnthrottled=function(){var t=this.getHashString();i.history.replaceState("","",t)},e.exports=o},{"../util/throttle":272,"../util/util":275,"../util/window":254}],247:[function(t,e,r){function n(t){t.parentNode&&t.parentNode.removeChild(t)}var i=t("../util/util"),a=t("../util/browser"),o=t("../util/window"),s=t("../util/window"),l=s.HTMLImageElement,u=s.HTMLElement,c=t("../util/dom"),h=t("../util/ajax"),f=t("../style/style"),p=t("../style/evaluation_parameters"),d=t("../render/painter"),g=t("../geo/transform"),v=t("./hash"),m=t("./bind_handlers"),y=t("./camera"),x=t("../geo/lng_lat"),b=t("../geo/lng_lat_bounds"),_=t("@mapbox/point-geometry"),w=t("./control/attribution_control"),M=t("./control/logo_control"),A=t("@mapbox/mapbox-gl-supported"),k=t("../util/image").RGBAImage;t("./events");var T={center:[0,0],zoom:0,bearing:0,pitch:0,minZoom:0,maxZoom:22,interactive:!0,scrollZoom:!0,boxZoom:!0,dragRotate:!0,dragPan:!0,keyboard:!0,doubleClickZoom:!0,touchZoomRotate:!0,bearingSnap:7,hash:!1,attributionControl:!0,failIfMajorPerformanceCaveat:!1,preserveDrawingBuffer:!1,trackResize:!0,renderWorldCopies:!0,refreshExpiredTiles:!0,maxTileCacheSize:null,transformRequest:null,fadeDuration:300},S=function(t){function e(e){if(null!=(e=i.extend({},T,e)).minZoom&&null!=e.maxZoom&&e.minZoom>e.maxZoom)throw new Error("maxZoom must be greater than minZoom");var r=new g(e.minZoom,e.maxZoom,e.renderWorldCopies);t.call(this,r,e),this._interactive=e.interactive,this._maxTileCacheSize=e.maxTileCacheSize,this._failIfMajorPerformanceCaveat=e.failIfMajorPerformanceCaveat,this._preserveDrawingBuffer=e.preserveDrawingBuffer,this._trackResize=e.trackResize,this._bearingSnap=e.bearingSnap,this._refreshExpiredTiles=e.refreshExpiredTiles,this._fadeDuration=e.fadeDuration,this._crossFadingFactor=1,this._collectResourceTiming=e.collectResourceTiming;var n=e.transformRequest;if(this._transformRequest=n?function(t,e){return n(t,e)||{url:t}}:function(t){return{url:t}},"string"==typeof e.container){var a=o.document.getElementById(e.container);if(!a)throw new Error("Container '"+e.container+"' not found.");this._container=a}else{if(!(e.container instanceof u))throw new Error("Invalid type: 'container' must be a String or HTMLElement.");this._container=e.container}e.maxBounds&&this.setMaxBounds(e.maxBounds),i.bindAll(["_onWindowOnline","_onWindowResize","_contextLost","_contextRestored","_update","_render","_onData","_onDataLoading"],this),this._setupContainer(),this._setupPainter(),this.on("move",this._update.bind(this,!1)),this.on("zoom",this._update.bind(this,!0)),void 0!==o&&(o.addEventListener("online",this._onWindowOnline,!1),o.addEventListener("resize",this._onWindowResize,!1)),m(this,e),this._hash=e.hash&&(new v).addTo(this),this._hash&&this._hash._onHashChange()||this.jumpTo({center:e.center,zoom:e.zoom,bearing:e.bearing,pitch:e.pitch}),this.resize(),e.style&&this.setStyle(e.style,{localIdeographFontFamily:e.localIdeographFontFamily}),e.attributionControl&&this.addControl(new w),this.addControl(new M,e.logoPosition),this.on("style.load",function(){this.transform.unmodified&&this.jumpTo(this.style.stylesheet)}),this.on("data",this._onData),this.on("dataloading",this._onDataLoading)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={showTileBoundaries:{},showCollisionBoxes:{},showOverdrawInspector:{},repaint:{},vertices:{}};return e.prototype.addControl=function(t,e){void 0===e&&t.getDefaultPosition&&(e=t.getDefaultPosition()),void 0===e&&(e="top-right");var r=t.onAdd(this),n=this._controlPositions[e];return-1!==e.indexOf("bottom")?n.insertBefore(r,n.firstChild):n.appendChild(r),this},e.prototype.removeControl=function(t){return t.onRemove(this),this},e.prototype.resize=function(){var t=this._containerDimensions(),e=t[0],r=t[1];return this._resizeCanvas(e,r),this.transform.resize(e,r),this.painter.resize(e,r),this.fire("movestart").fire("move").fire("resize").fire("moveend")},e.prototype.getBounds=function(){var t=new b(this.transform.pointLocation(new _(0,this.transform.height)),this.transform.pointLocation(new _(this.transform.width,0)));return(this.transform.angle||this.transform.pitch)&&(t.extend(this.transform.pointLocation(new _(this.transform.size.x,0))),t.extend(this.transform.pointLocation(new _(0,this.transform.size.y)))),t},e.prototype.getMaxBounds=function(){return this.transform.latRange&&2===this.transform.latRange.length&&this.transform.lngRange&&2===this.transform.lngRange.length?new b([this.transform.lngRange[0],this.transform.latRange[0]],[this.transform.lngRange[1],this.transform.latRange[1]]):null},e.prototype.setMaxBounds=function(t){if(t){var e=b.convert(t);this.transform.lngRange=[e.getWest(),e.getEast()],this.transform.latRange=[e.getSouth(),e.getNorth()],this.transform._constrain(),this._update()}else null!==t&&void 0!==t||(this.transform.lngRange=null,this.transform.latRange=null,this._update());return this},e.prototype.setMinZoom=function(t){if((t=null===t||void 0===t?0:t)>=0&&t<=this.transform.maxZoom)return this.transform.minZoom=t,this._update(),this.getZoom()=this.transform.minZoom)return this.transform.maxZoom=t,this._update(),this.getZoom()>t&&this.setZoom(t),this;throw new Error("maxZoom must be greater than the current minZoom")},e.prototype.getMaxZoom=function(){return this.transform.maxZoom},e.prototype.project=function(t){return this.transform.locationPoint(x.convert(t))},e.prototype.unproject=function(t){return this.transform.pointLocation(_.convert(t))},e.prototype.on=function(e,r,n){var a=this;if(void 0===n)return t.prototype.on.call(this,e,r);var o=function(){if("mouseenter"===e||"mouseover"===e){var t=!1;return{layer:r,listener:n,delegates:{mousemove:function(o){var s=a.getLayer(r)?a.queryRenderedFeatures(o.point,{layers:[r]}):[];s.length?t||(t=!0,n.call(a,i.extend({features:s},o,{type:e}))):t=!1},mouseout:function(){t=!1}}}}if("mouseleave"===e||"mouseout"===e){var o=!1;return{layer:r,listener:n,delegates:{mousemove:function(t){(a.getLayer(r)?a.queryRenderedFeatures(t.point,{layers:[r]}):[]).length?o=!0:o&&(o=!1,n.call(a,i.extend({},t,{type:e})))},mouseout:function(t){o&&(o=!1,n.call(a,i.extend({},t,{type:e})))}}}}var s;return{layer:r,listener:n,delegates:(s={},s[e]=function(t){var e=a.getLayer(r)?a.queryRenderedFeatures(t.point,{layers:[r]}):[];e.length&&n.call(a,i.extend({features:e},t))},s)}}();for(var s in this._delegatedListeners=this._delegatedListeners||{},this._delegatedListeners[e]=this._delegatedListeners[e]||[],this._delegatedListeners[e].push(o),o.delegates)a.on(s,o.delegates[s]);return this},e.prototype.off=function(e,r,n){if(void 0===n)return t.prototype.off.call(this,e,r);if(this._delegatedListeners&&this._delegatedListeners[e])for(var i=this._delegatedListeners[e],a=0;athis._map.transform.height-i?["bottom"]:[],t.xthis._map.transform.width-n/2&&e.push("right"),e=0===e.length?"bottom":e.join("-")}var o=t.add(r[e]).round(),l={top:"translate(-50%,0)","top-left":"translate(0,0)","top-right":"translate(-100%,0)",bottom:"translate(-50%,-100%)","bottom-left":"translate(0,-100%)","bottom-right":"translate(-100%,-100%)",left:"translate(0,-50%)",right:"translate(-100%,-50%)"},c=this._container.classList;for(var h in l)c.remove("mapboxgl-popup-anchor-"+h);c.add("mapboxgl-popup-anchor-"+e),a.setTransform(this._container,l[e]+" translate("+o.x+"px,"+o.y+"px)")}},e.prototype._onClickClose=function(){this.remove()},e}(i);e.exports=h},{"../geo/lng_lat":62,"../util/dom":259,"../util/evented":260,"../util/smart_wrap":270,"../util/util":275,"../util/window":254,"@mapbox/point-geometry":4}],250:[function(t,e,r){var n=t("./util"),i=t("./web_worker_transfer"),a=i.serialize,o=i.deserialize,s=function(t,e,r){this.target=t,this.parent=e,this.mapId=r,this.callbacks={},this.callbackID=0,n.bindAll(["receive"],this),this.target.addEventListener("message",this.receive,!1)};s.prototype.send=function(t,e,r,n){var i=r?this.mapId+":"+this.callbackID++:null;r&&(this.callbacks[i]=r);var o=[];this.target.postMessage({targetMapId:n,sourceMapId:this.mapId,type:t,id:String(i),data:a(e,o)},o)},s.prototype.receive=function(t){var e,r=this,n=t.data,i=n.id;if(!n.targetMapId||this.mapId===n.targetMapId){var s=function(t,e){var n=[];r.target.postMessage({sourceMapId:r.mapId,type:"",id:String(i),error:t?String(t):null,data:a(e,n)},n)};if(""===n.type)e=this.callbacks[n.id],delete this.callbacks[n.id],e&&n.error?e(new Error(n.error)):e&&e(null,o(n.data));else if(void 0!==n.id&&this.parent[n.type])this.parent[n.type](n.sourceMapId,o(n.data),s);else if(void 0!==n.id&&this.parent.getWorkerSource){var l=n.type.split(".");this.parent.getWorkerSource(n.sourceMapId,l[0])[l[1]](o(n.data),s)}else this.parent[n.type](o(n.data))}},s.prototype.remove=function(){this.target.removeEventListener("message",this.receive,!1)},e.exports=s},{"./util":275,"./web_worker_transfer":278}],251:[function(t,e,r){function n(t){var e=new a.XMLHttpRequest;for(var r in e.open("GET",t.url,!0),t.headers)e.setRequestHeader(r,t.headers[r]);return e.withCredentials="include"===t.credentials,e}function i(t){var e=a.document.createElement("a");return e.href=t,e.protocol===a.document.location.protocol&&e.host===a.document.location.host}var a=t("./window"),o={Unknown:"Unknown",Style:"Style",Source:"Source",Tile:"Tile",Glyphs:"Glyphs",SpriteImage:"SpriteImage",SpriteJSON:"SpriteJSON",Image:"Image"};r.ResourceType=o,"function"==typeof Object.freeze&&Object.freeze(o);var s=function(t){function e(e,r){t.call(this,e),this.status=r}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Error);r.getJSON=function(t,e){var r=n(t);return r.setRequestHeader("Accept","application/json"),r.onerror=function(){e(new Error(r.statusText))},r.onload=function(){if(r.status>=200&&r.status<300&&r.response){var t;try{t=JSON.parse(r.response)}catch(t){return e(t)}e(null,t)}else e(new s(r.statusText,r.status))},r.send(),r},r.getArrayBuffer=function(t,e){var r=n(t);return r.responseType="arraybuffer",r.onerror=function(){e(new Error(r.statusText))},r.onload=function(){var t=r.response;if(0===t.byteLength&&200===r.status)return e(new Error("http status 200 returned without content."));r.status>=200&&r.status<300&&r.response?e(null,{data:t,cacheControl:r.getResponseHeader("Cache-Control"),expires:r.getResponseHeader("Expires")}):e(new s(r.statusText,r.status))},r.send(),r};r.getImage=function(t,e){return r.getArrayBuffer(t,function(t,r){if(t)e(t);else if(r){var n=new a.Image,i=a.URL||a.webkitURL;n.onload=function(){e(null,n),i.revokeObjectURL(n.src)};var o=new a.Blob([new Uint8Array(r.data)],{type:"image/png"});n.cacheControl=r.cacheControl,n.expires=r.expires,n.src=r.data.byteLength?i.createObjectURL(o):"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAC0lEQVQYV2NgAAIAAAUAAarVyFEAAAAASUVORK5CYII="}})},r.getVideo=function(t,e){var r=a.document.createElement("video");r.onloadstart=function(){e(null,r)};for(var n=0;n1)for(var h=0;h0||this._oneTimeListeners&&this._oneTimeListeners[t]&&this._oneTimeListeners[t].length>0||this._eventedParent&&this._eventedParent.listens(t)},o.prototype.setEventedParent=function(t,e){return this._eventedParent=t,this._eventedParentData=e,this},e.exports=o},{"./util":275}],261:[function(t,e,r){function n(t,e){return e.max-t.max}function i(t,e,r,n){this.p=new o(t,e),this.h=r,this.d=function(t,e){for(var r=!1,n=1/0,i=0;it.y!=h.y>t.y&&t.x<(h.x-c.x)*(t.y-c.y)/(h.y-c.y)+c.x&&(r=!r),n=Math.min(n,s(t,c,h))}return(r?1:-1)*Math.sqrt(n)}(this.p,n),this.max=this.d+this.h*Math.SQRT2}var a=t("tinyqueue"),o=t("@mapbox/point-geometry"),s=t("./intersection_tests").distToSegmentSquared;e.exports=function(t,e,r){void 0===e&&(e=1),void 0===r&&(r=!1);for(var s=1/0,l=1/0,u=-1/0,c=-1/0,h=t[0],f=0;fu)&&(u=p.x),(!f||p.y>c)&&(c=p.y)}var d=u-s,g=c-l,v=Math.min(d,g),m=v/2,y=new a(null,n);if(0===v)return new o(s,l);for(var x=s;x_.d||!_.d)&&(_=M,r&&console.log("found best %d after %d probes",Math.round(1e4*M.d)/1e4,w)),M.max-_.d<=e||(m=M.h/2,y.push(new i(M.p.x-m,M.p.y-m,m,t)),y.push(new i(M.p.x+m,M.p.y-m,m,t)),y.push(new i(M.p.x-m,M.p.y+m,m,t)),y.push(new i(M.p.x+m,M.p.y+m,m,t)),w+=4)}return r&&(console.log("num probes: "+w),console.log("best distance: "+_.d)),_.p}},{"./intersection_tests":264,"@mapbox/point-geometry":4,tinyqueue:33}],262:[function(t,e,r){var n,i=t("./worker_pool");e.exports=function(){return n||(n=new i),n}},{"./worker_pool":279}],263:[function(t,e,r){function n(t,e,r,n){var i=e.width,a=e.height;if(n){if(n.length!==i*a*r)throw new RangeError("mismatched image size")}else n=new Uint8Array(i*a*r);return t.width=i,t.height=a,t.data=n,t}function i(t,e,r){var i=e.width,o=e.height;if(i!==t.width||o!==t.height){var s=n({},{width:i,height:o},r);a(t,s,{x:0,y:0},{x:0,y:0},{width:Math.min(t.width,i),height:Math.min(t.height,o)},r),t.width=i,t.height=o,t.data=s.data}}function a(t,e,r,n,i,a){if(0===i.width||0===i.height)return e;if(i.width>t.width||i.height>t.height||r.x>t.width-i.width||r.y>t.height-i.height)throw new RangeError("out of range source coordinates for image copy");if(i.width>e.width||i.height>e.height||n.x>e.width-i.width||n.y>e.height-i.height)throw new RangeError("out of range destination coordinates for image copy");for(var o=t.data,s=e.data,l=0;l1){if(i(t,e))return!0;for(var n=0;n1?t.distSqr(r):t.distSqr(r.sub(e)._mult(i)._add(e))}function l(t,e){for(var r,n,i,a=!1,o=0;oe.y!=i.y>e.y&&e.x<(i.x-n.x)*(e.y-n.y)/(i.y-n.y)+n.x&&(a=!a);return a}function u(t,e){for(var r=!1,n=0,i=t.length-1;ne.y!=o.y>e.y&&e.x<(o.x-a.x)*(e.y-a.y)/(o.y-a.y)+a.x&&(r=!r)}return r}var c=t("./util").isCounterClockwise;e.exports={multiPolygonIntersectsBufferedMultiPoint:function(t,e,r){for(var n=0;n=3)for(var l=0;l=128&&t<=255},Arabic:function(t){return t>=1536&&t<=1791},"Arabic Supplement":function(t){return t>=1872&&t<=1919},"Arabic Extended-A":function(t){return t>=2208&&t<=2303},"Hangul Jamo":function(t){return t>=4352&&t<=4607},"Unified Canadian Aboriginal Syllabics":function(t){return t>=5120&&t<=5759},"Unified Canadian Aboriginal Syllabics Extended":function(t){return t>=6320&&t<=6399},"General Punctuation":function(t){return t>=8192&&t<=8303},"Letterlike Symbols":function(t){return t>=8448&&t<=8527},"Number Forms":function(t){return t>=8528&&t<=8591},"Miscellaneous Technical":function(t){return t>=8960&&t<=9215},"Control Pictures":function(t){return t>=9216&&t<=9279},"Optical Character Recognition":function(t){return t>=9280&&t<=9311},"Enclosed Alphanumerics":function(t){return t>=9312&&t<=9471},"Geometric Shapes":function(t){return t>=9632&&t<=9727},"Miscellaneous Symbols":function(t){return t>=9728&&t<=9983},"Miscellaneous Symbols and Arrows":function(t){return t>=11008&&t<=11263},"CJK Radicals Supplement":function(t){return t>=11904&&t<=12031},"Kangxi Radicals":function(t){return t>=12032&&t<=12255},"Ideographic Description Characters":function(t){return t>=12272&&t<=12287},"CJK Symbols and Punctuation":function(t){return t>=12288&&t<=12351},Hiragana:function(t){return t>=12352&&t<=12447},Katakana:function(t){return t>=12448&&t<=12543},Bopomofo:function(t){return t>=12544&&t<=12591},"Hangul Compatibility Jamo":function(t){return t>=12592&&t<=12687},Kanbun:function(t){return t>=12688&&t<=12703},"Bopomofo Extended":function(t){return t>=12704&&t<=12735},"CJK Strokes":function(t){return t>=12736&&t<=12783},"Katakana Phonetic Extensions":function(t){return t>=12784&&t<=12799},"Enclosed CJK Letters and Months":function(t){return t>=12800&&t<=13055},"CJK Compatibility":function(t){return t>=13056&&t<=13311},"CJK Unified Ideographs Extension A":function(t){return t>=13312&&t<=19903},"Yijing Hexagram Symbols":function(t){return t>=19904&&t<=19967},"CJK Unified Ideographs":function(t){return t>=19968&&t<=40959},"Yi Syllables":function(t){return t>=40960&&t<=42127},"Yi Radicals":function(t){return t>=42128&&t<=42191},"Hangul Jamo Extended-A":function(t){return t>=43360&&t<=43391},"Hangul Syllables":function(t){return t>=44032&&t<=55215},"Hangul Jamo Extended-B":function(t){return t>=55216&&t<=55295},"Private Use Area":function(t){return t>=57344&&t<=63743},"CJK Compatibility Ideographs":function(t){return t>=63744&&t<=64255},"Arabic Presentation Forms-A":function(t){return t>=64336&&t<=65023},"Vertical Forms":function(t){return t>=65040&&t<=65055},"CJK Compatibility Forms":function(t){return t>=65072&&t<=65103},"Small Form Variants":function(t){return t>=65104&&t<=65135},"Arabic Presentation Forms-B":function(t){return t>=65136&&t<=65279},"Halfwidth and Fullwidth Forms":function(t){return t>=65280&&t<=65519}}},{}],266:[function(t,e,r){var n=function(t,e){this.max=t,this.onRemove=e,this.reset()};n.prototype.reset=function(){var t=this;for(var e in t.data)t.onRemove(t.data[e]);return this.data={},this.order=[],this},n.prototype.add=function(t,e){if(this.has(t))this.order.splice(this.order.indexOf(t),1),this.data[t]=e,this.order.push(t);else if(this.data[t]=e,this.order.push(t),this.order.length>this.max){var r=this.getAndRemove(this.order[0]);r&&this.onRemove(r)}return this},n.prototype.has=function(t){return t in this.data},n.prototype.keys=function(){return this.order},n.prototype.getAndRemove=function(t){if(!this.has(t))return null;var e=this.data[t];return delete this.data[t],this.order.splice(this.order.indexOf(t),1),e},n.prototype.get=function(t){return this.has(t)?this.data[t]:null},n.prototype.remove=function(t){if(!this.has(t))return this;var e=this.data[t];return delete this.data[t],this.onRemove(e),this.order.splice(this.order.indexOf(t),1),this},n.prototype.setMaxSize=function(t){var e=this;for(this.max=t;this.order.length>this.max;){var r=e.getAndRemove(e.order[0]);r&&e.onRemove(r)}return this},e.exports=n},{}],267:[function(t,e,r){function n(t,e){var r=a(s.API_URL);if(t.protocol=r.protocol,t.authority=r.authority,"/"!==r.path&&(t.path=""+r.path+t.path),!s.REQUIRE_ACCESS_TOKEN)return o(t);if(!(e=e||s.ACCESS_TOKEN))throw new Error("An API access token is required to use Mapbox GL. "+u);if("s"===e[0])throw new Error("Use a public access token (pk.*) with Mapbox GL, not a secret access token (sk.*). "+u);return t.params.push("access_token="+e),o(t)}function i(t){return 0===t.indexOf("mapbox:")}function a(t){var e=t.match(h);if(!e)throw new Error("Unable to parse URL object");return{protocol:e[1],authority:e[2],path:e[3]||"/",params:e[4]?e[4].split("&"):[]}}function o(t){var e=t.params.length?"?"+t.params.join("&"):"";return t.protocol+"://"+t.authority+t.path+e}var s=t("./config"),l=t("./browser"),u="See https://www.mapbox.com/api-documentation/#access-tokens";r.isMapboxURL=i,r.normalizeStyleURL=function(t,e){if(!i(t))return t;var r=a(t);return r.path="/styles/v1"+r.path,n(r,e)},r.normalizeGlyphsURL=function(t,e){if(!i(t))return t;var r=a(t);return r.path="/fonts/v1"+r.path,n(r,e)},r.normalizeSourceURL=function(t,e){if(!i(t))return t;var r=a(t);return r.path="/v4/"+r.authority+".json",r.params.push("secure"),n(r,e)},r.normalizeSpriteURL=function(t,e,r,s){var l=a(t);return i(t)?(l.path="/styles/v1"+l.path+"/sprite"+e+r,n(l,s)):(l.path+=""+e+r,o(l))};var c=/(\.(png|jpg)\d*)(?=$)/;r.normalizeTileURL=function(t,e,r){if(!e||!i(e))return t;var n=a(t),u=l.devicePixelRatio>=2||512===r?"@2x":"",h=l.supportsWebp?".webp":"$1";return n.path=n.path.replace(c,""+u+h),function(t){for(var e=0;e=65097&&t<=65103)||n["CJK Compatibility Ideographs"](t)||n["CJK Compatibility"](t)||n["CJK Radicals Supplement"](t)||n["CJK Strokes"](t)||!(!n["CJK Symbols and Punctuation"](t)||t>=12296&&t<=12305||t>=12308&&t<=12319||12336===t)||n["CJK Unified Ideographs Extension A"](t)||n["CJK Unified Ideographs"](t)||n["Enclosed CJK Letters and Months"](t)||n["Hangul Compatibility Jamo"](t)||n["Hangul Jamo Extended-A"](t)||n["Hangul Jamo Extended-B"](t)||n["Hangul Jamo"](t)||n["Hangul Syllables"](t)||n.Hiragana(t)||n["Ideographic Description Characters"](t)||n.Kanbun(t)||n["Kangxi Radicals"](t)||n["Katakana Phonetic Extensions"](t)||n.Katakana(t)&&12540!==t||!(!n["Halfwidth and Fullwidth Forms"](t)||65288===t||65289===t||65293===t||t>=65306&&t<=65310||65339===t||65341===t||65343===t||t>=65371&&t<=65503||65507===t||t>=65512&&t<=65519)||!(!n["Small Form Variants"](t)||t>=65112&&t<=65118||t>=65123&&t<=65126)||n["Unified Canadian Aboriginal Syllabics"](t)||n["Unified Canadian Aboriginal Syllabics Extended"](t)||n["Vertical Forms"](t)||n["Yijing Hexagram Symbols"](t)||n["Yi Syllables"](t)||n["Yi Radicals"](t)))},r.charHasNeutralVerticalOrientation=function(t){return!!(n["Latin-1 Supplement"](t)&&(167===t||169===t||174===t||177===t||188===t||189===t||190===t||215===t||247===t)||n["General Punctuation"](t)&&(8214===t||8224===t||8225===t||8240===t||8241===t||8251===t||8252===t||8258===t||8263===t||8264===t||8265===t||8273===t)||n["Letterlike Symbols"](t)||n["Number Forms"](t)||n["Miscellaneous Technical"](t)&&(t>=8960&&t<=8967||t>=8972&&t<=8991||t>=8996&&t<=9e3||9003===t||t>=9085&&t<=9114||t>=9150&&t<=9165||9167===t||t>=9169&&t<=9179||t>=9186&&t<=9215)||n["Control Pictures"](t)&&9251!==t||n["Optical Character Recognition"](t)||n["Enclosed Alphanumerics"](t)||n["Geometric Shapes"](t)||n["Miscellaneous Symbols"](t)&&!(t>=9754&&t<=9759)||n["Miscellaneous Symbols and Arrows"](t)&&(t>=11026&&t<=11055||t>=11088&&t<=11097||t>=11192&&t<=11243)||n["CJK Symbols and Punctuation"](t)||n.Katakana(t)||n["Private Use Area"](t)||n["CJK Compatibility Forms"](t)||n["Small Form Variants"](t)||n["Halfwidth and Fullwidth Forms"](t)||8734===t||8756===t||8757===t||t>=9984&&t<=10087||t>=10102&&t<=10131||65532===t||65533===t)},r.charHasRotatedVerticalOrientation=function(t){return!(r.charHasUprightVerticalOrientation(t)||r.charHasNeutralVerticalOrientation(t))}},{"./is_char_in_unicode_block":265}],270:[function(t,e,r){var n=t("../geo/lng_lat");e.exports=function(t,e,r){if(t=new n(t.lng,t.lat),e){var i=new n(t.lng-360,t.lat),a=new n(t.lng+360,t.lat),o=r.locationPoint(t).distSqr(e);r.locationPoint(i).distSqr(e)180;){var s=r.locationPoint(t);if(s.x>=0&&s.y>=0&&s.x<=r.width&&s.y<=r.height)break;t.lng>r.center.lng?t.lng-=360:t.lng+=360}return t}},{"../geo/lng_lat":62}],271:[function(t,e,r){function n(t,e){return Math.ceil(t/e)*e}var i={Int8:Int8Array,Uint8:Uint8Array,Int16:Int16Array,Uint16:Uint16Array,Int32:Int32Array,Uint32:Uint32Array,Float32:Float32Array},a=function(){this.isTransferred=!1,this.capacity=-1,this.resize(0)};a.serialize=function(t,e){return t._trim(),e&&(t.isTransferred=!0,e.push(t.arrayBuffer)),{length:t.length,arrayBuffer:t.arrayBuffer}},a.deserialize=function(t){var e=Object.create(this.prototype);return e.arrayBuffer=t.arrayBuffer,e.length=t.length,e.capacity=t.arrayBuffer.byteLength/e.bytesPerElement,e._refreshViews(),e},a.prototype._trim=function(){this.length!==this.capacity&&(this.capacity=this.length,this.arrayBuffer=this.arrayBuffer.slice(0,this.length*this.bytesPerElement),this._refreshViews())},a.prototype.clear=function(){this.length=0},a.prototype.resize=function(t){this.reserve(t),this.length=t},a.prototype.reserve=function(t){if(t>this.capacity){this.capacity=Math.max(t,Math.floor(5*this.capacity),128),this.arrayBuffer=new ArrayBuffer(this.capacity*this.bytesPerElement);var e=this.uint8;this._refreshViews(),e&&this.uint8.set(e)}},a.prototype._refreshViews=function(){throw new Error("_refreshViews() must be implemented by each concrete StructArray layout")},e.exports.StructArray=a,e.exports.Struct=function(t,e){this._structArray=t,this._pos1=e*this.size,this._pos2=this._pos1/2,this._pos4=this._pos1/4,this._pos8=this._pos1/8},e.exports.viewTypes=i,e.exports.createLayout=function(t,e){void 0===e&&(e=1);var r=0,a=0;return{members:t.map(function(t){var o=function(t){return i[t].BYTES_PER_ELEMENT}(t.type),s=r=n(r,Math.max(e,o)),l=t.components||1;return a=Math.max(a,o),r+=o*l,{name:t.name,type:t.type,components:l,offset:s}}),size:n(r,Math.max(a,e)),alignment:e}}},{}],272:[function(t,e,r){e.exports=function(t,e){var r=!1,n=0,i=function(){n=0,r&&(t(),n=setTimeout(i,e),r=!1)};return function(){return r=!0,n||i(),n}}},{}],273:[function(t,e,r){function n(t,e){if(t.row>e.row){var r=t;t=e,e=r}return{x0:t.column,y0:t.row,x1:e.column,y1:e.row,dx:e.column-t.column,dy:e.row-t.row}}function i(t,e,r,n,i){var a=Math.max(r,Math.floor(e.y0)),o=Math.min(n,Math.ceil(e.y1));if(t.x0===e.x0&&t.y0===e.y0?t.x0+e.dy/t.dy*t.dx0,h=e.dx<0,f=a;fc.dy&&(l=u,u=c,c=l),u.dy>h.dy&&(l=u,u=h,h=l),c.dy>h.dy&&(l=c,c=h,h=l),u.dy&&i(h,u,a,o,s),c.dy&&i(h,c,a,o,s)}t("../geo/coordinate");var o=t("../source/tile_id").OverscaledTileID;e.exports=function(t,e,r,n){function i(e,i,a){var u,c,h;if(a>=0&&a<=s)for(u=e;u=1)return 1;var e=t*t,r=e*t;return 4*(t<.5?r:3*(t-e)+r-.75)},r.bezier=function(t,e,r,i){var a=new n(t,e,r,i);return function(t){return a.solve(t)}},r.ease=r.bezier(.25,.1,.25,1),r.clamp=function(t,e,r){return Math.min(r,Math.max(e,t))},r.wrap=function(t,e,r){var n=r-e,i=((t-e)%n+n)%n+e;return i===e?r:i},r.asyncAll=function(t,e,r){if(!t.length)return r(null,[]);var n=t.length,i=new Array(t.length),a=null;t.forEach(function(t,o){e(t,function(t,e){t&&(a=t),i[o]=e,0==--n&&r(a,i)})})},r.values=function(t){var e=[];for(var r in t)e.push(t[r]);return e},r.keysDifference=function(t,e){var r=[];for(var n in t)n in e||r.push(n);return r},r.extend=function(t){for(var e=arguments,r=[],n=arguments.length-1;n-- >0;)r[n]=e[n+1];for(var i=0,a=r;i=0)return!0;return!1};var o={};r.warnOnce=function(t){o[t]||("undefined"!=typeof console&&console.warn(t),o[t]=!0)},r.isCounterClockwise=function(t,e,r){return(r.y-t.y)*(e.x-t.x)>(e.y-t.y)*(r.x-t.x)},r.calculateSignedArea=function(t){for(var e=0,r=0,n=t.length,i=n-1,a=void 0,o=void 0;r0||Math.abs(e.y-n.y)>0)&&Math.abs(r.calculateSignedArea(t))>.01},r.sphericalToCartesian=function(t){var e=t[0],r=t[1],n=t[2];return r+=90,r*=Math.PI/180,n*=Math.PI/180,{x:e*Math.cos(r)*Math.sin(n),y:e*Math.sin(r)*Math.sin(n),z:e*Math.cos(n)}},r.parseCacheControl=function(t){var e={};if(t.replace(/(?:^|(?:\s*\,\s*))([^\x00-\x20\(\)<>@\,;\:\\"\/\[\]\?\=\{\}\x7F]+)(?:\=(?:([^\x00-\x20\(\)<>@\,;\:\\"\/\[\]\?\=\{\}\x7F]+)|(?:\"((?:[^"\\]|\\.)*)\")))?/g,function(t,r,n,i){var a=n||i;return e[r]=!a||a.toLowerCase(),""}),e["max-age"]){var r=parseInt(e["max-age"],10);isNaN(r)?delete e["max-age"]:e["max-age"]=r}return e}},{"../geo/coordinate":61,"../style-spec/util/deep_equal":155,"@mapbox/point-geometry":4,"@mapbox/unitbezier":7}],276:[function(t,e,r){var n=function(t,e,r,n){this.type="Feature",this._vectorTileFeature=t,t._z=e,t._x=r,t._y=n,this.properties=t.properties,null!=t.id&&(this.id=t.id)},i={geometry:{}};i.geometry.get=function(){return void 0===this._geometry&&(this._geometry=this._vectorTileFeature.toGeoJSON(this._vectorTileFeature._x,this._vectorTileFeature._y,this._vectorTileFeature._z).geometry),this._geometry},i.geometry.set=function(t){this._geometry=t},n.prototype.toJSON=function(){var t={geometry:this.geometry};for(var e in this)"_geometry"!==e&&"_vectorTileFeature"!==e&&(t[e]=this[e]);return t},Object.defineProperties(n.prototype,i),e.exports=n},{}],277:[function(t,e,r){var n=t("./script_detection");e.exports=function(t){for(var r="",i=0;i":"\ufe40","?":"\ufe16","@":"\uff20","[":"\ufe47","\\":"\uff3c","]":"\ufe48","^":"\uff3e",_:"\ufe33","`":"\uff40","{":"\ufe37","|":"\u2015","}":"\ufe38","~":"\uff5e","\xa2":"\uffe0","\xa3":"\uffe1","\xa5":"\uffe5","\xa6":"\uffe4","\xac":"\uffe2","\xaf":"\uffe3","\u2013":"\ufe32","\u2014":"\ufe31","\u2018":"\ufe43","\u2019":"\ufe44","\u201c":"\ufe41","\u201d":"\ufe42","\u2026":"\ufe19","\u2027":"\u30fb","\u20a9":"\uffe6","\u3001":"\ufe11","\u3002":"\ufe12","\u3008":"\ufe3f","\u3009":"\ufe40","\u300a":"\ufe3d","\u300b":"\ufe3e","\u300c":"\ufe41","\u300d":"\ufe42","\u300e":"\ufe43","\u300f":"\ufe44","\u3010":"\ufe3b","\u3011":"\ufe3c","\u3014":"\ufe39","\u3015":"\ufe3a","\u3016":"\ufe17","\u3017":"\ufe18","\uff01":"\ufe15","\uff08":"\ufe35","\uff09":"\ufe36","\uff0c":"\ufe10","\uff0d":"\ufe32","\uff0e":"\u30fb","\uff1a":"\ufe13","\uff1b":"\ufe14","\uff1c":"\ufe3f","\uff1e":"\ufe40","\uff1f":"\ufe16","\uff3b":"\ufe47","\uff3d":"\ufe48","\uff3f":"\ufe33","\uff5b":"\ufe37","\uff5c":"\u2015","\uff5d":"\ufe38","\uff5f":"\ufe35","\uff60":"\ufe36","\uff61":"\ufe12","\uff62":"\ufe41","\uff63":"\ufe42"}},{"./script_detection":269}],278:[function(t,e,r){function n(t,e,r){void 0===r&&(r={}),Object.defineProperty(e,"_classRegistryKey",{value:t,writeable:!1}),g[t]={klass:e,omit:r.omit||[],shallow:r.shallow||[]}}var i=t("grid-index"),a=t("../style-spec/util/color"),o=t("../style-spec/expression"),s=o.StylePropertyFunction,l=o.StyleExpression,u=o.StyleExpressionWithErrorHandling,c=o.ZoomDependentExpression,h=o.ZoomConstantExpression,f=t("../style-spec/expression/compound_expression").CompoundExpression,p=t("../style-spec/expression/definitions"),d=t("./window").ImageData,g={};for(var v in n("Object",Object),i.serialize=function(t,e){var r=t.toArrayBuffer();return e&&e.push(r),r},i.deserialize=function(t){return new i(t)},n("Grid",i),n("Color",a),n("StylePropertyFunction",s),n("StyleExpression",l,{omit:["_evaluator"]}),n("StyleExpressionWithErrorHandling",u,{omit:["_evaluator"]}),n("ZoomDependentExpression",c),n("ZoomConstantExpression",h),n("CompoundExpression",f,{omit:["_evaluate"]}),p)p[v]._classRegistryKey||n("Expression_"+v,p[v]);e.exports={register:n,serialize:function t(e,r){if(null===e||void 0===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||e instanceof Boolean||e instanceof Number||e instanceof String||e instanceof Date||e instanceof RegExp)return e;if(e instanceof ArrayBuffer)return r&&r.push(e),e;if(ArrayBuffer.isView(e)){var n=e;return r&&r.push(n.buffer),n}if(e instanceof d)return r&&r.push(e.data.buffer),e;if(Array.isArray(e)){for(var i=[],a=0,o=e;a=0)){var f=e[h];c[h]=g[u].shallow.indexOf(h)>=0?f:t(f,r)}return{name:u,properties:c}}throw new Error("can't serialize object of type "+typeof e)},deserialize:function t(e){if(null===e||void 0===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||e instanceof Boolean||e instanceof Number||e instanceof String||e instanceof Date||e instanceof RegExp||e instanceof ArrayBuffer||ArrayBuffer.isView(e)||e instanceof d)return e;if(Array.isArray(e))return e.map(function(e){return t(e)});if("object"==typeof e){var r=e,n=r.name,i=r.properties;if(!n)throw new Error("can't deserialize object of anonymous class");var a=g[n].klass;if(!a)throw new Error("can't deserialize unregistered class "+n);if(a.deserialize)return a.deserialize(i._serialized);for(var o=Object.create(a.prototype),s=0,l=Object.keys(i);s=0?i[u]:t(i[u])}return o}throw new Error("can't deserialize object of type "+typeof e)}}},{"../style-spec/expression":139,"../style-spec/expression/compound_expression":123,"../style-spec/expression/definitions":131,"../style-spec/util/color":153,"./window":254,"grid-index":24}],279:[function(t,e,r){var n=t("./web_worker"),i=function(){this.active={}};i.prototype.acquire=function(e){if(!this.workers){var r=t("../").workerCount;for(this.workers=[];this.workers.length0}function Iq(t){var e={},r={};switch(t.type){case"circle":ne.extendFlat(r,{"circle-radius":t.circle.radius,"circle-color":t.color,"circle-opacity":t.opacity});break;case"line":ne.extendFlat(r,{"line-width":t.line.width,"line-color":t.color,"line-opacity":t.opacity});break;case"fill":ne.extendFlat(r,{"fill-color":t.color,"fill-outline-color":t.fill.outlinecolor,"fill-opacity":t.opacity});break;case"symbol":var n=t.symbol,i=Cq(n.textposition,n.iconsize);ne.extendFlat(e,{"icon-image":n.icon+"-15","icon-size":n.iconsize/10,"text-field":n.text,"text-size":n.textfont.size,"text-anchor":i.anchor,"text-offset":i.offset}),ne.extendFlat(r,{"icon-color":t.color,"text-color":n.textfont.color,"text-opacity":t.opacity})}return{layout:e,paint:r}}zq.update=function(t){this.visible?this.needsNewSource(t)?(this.updateLayer(t),this.updateSource(t)):this.needsNewLayer(t)?this.updateLayer(t):this.updateStyle(t):(this.updateSource(t),this.updateLayer(t)),this.visible=Pq(t)},zq.needsNewSource=function(t){return this.sourceType!==t.sourcetype||this.source!==t.source||this.layerType!==t.type},zq.needsNewLayer=function(t){return this.layerType!==t.type||this.below!==t.below},zq.updateSource=function(t){var e=this.map;if(e.getSource(this.idSource)&&e.removeSource(this.idSource),this.sourceType=t.sourcetype,this.source=t.source,Pq(t)){var r=function(t){var e,r=t.sourcetype,n=t.source,i={type:r};"geojson"===r?e="data":"vector"===r&&(e="string"==typeof n?"url":"tiles");return i[e]=n,i}(t);e.addSource(this.idSource,r)}},zq.updateLayer=function(t){var e=this.map,r=Iq(t);e.getLayer(this.idLayer)&&e.removeLayer(this.idLayer),this.layerType=t.type,Pq(t)&&e.addLayer({id:this.idLayer,source:this.idSource,"source-layer":t.sourcelayer||"",type:t.type,layout:r.layout,paint:r.paint},t.below)},zq.updateStyle=function(t){if(Pq(t)){var e=Iq(t);this.mapbox.setOptions(this.idLayer,"setLayoutProperty",e.layout),this.mapbox.setOptions(this.idLayer,"setPaintProperty",e.paint)}},zq.dispose=function(){var t=this.map;t.removeLayer(this.idLayer),t.removeSource(this.idSource)};var Dq=function(t,e,r){var n=new Lq(t,e);return n.update(r),n};function Oq(t){this.id=t.id,this.gd=t.gd,this.container=t.container,this.isStatic=t.staticPlot;var e=t.fullLayout;this.uid=e._uid+"-"+this.id,this.opts=e[this.id],this.div=null,this.xaxis=null,this.yaxis=null,this.createFramework(e),this.map=null,this.accessToken=null,this.styleObj=null,this.traceHash={},this.layerList=[]}var Rq=Oq.prototype,Fq=function(t){return new Oq(t)};function Bq(t){var e=Sq.style.values,r=Sq.style.dflt,n={};return ne.isPlainObject(t)?(n.id=t.id,n.style=t):"string"==typeof t?(n.id=t,n.style=-1!==e.indexOf(t)?Nq(t):t):(n.id=r,n.style=Nq(r)),n.transition={duration:0,delay:0},n}function Nq(t){return _q.styleUrlPrefix+t+"-"+_q.styleUrlSuffix}function jq(t){return[t.lon,t.lat]}Rq.plot=function(t,e,r){var n,i=this,a=i.opts=e[this.id];i.map&&a.accesstoken!==i.accessToken&&(i.map.remove(),i.map=null,i.styleObj=null,i.traceHash=[],i.layerList={}),n=i.map?new Promise(function(r,n){i.updateMap(t,e,r,n)}):new Promise(function(r,n){i.createMap(t,e,r,n)}),r.push(n)},Rq.createMap=function(t,e,r,n){var i=this,a=i.gd,o=i.opts,s=i.styleObj=Bq(o.style);i.accessToken=o.accesstoken;var l=i.map=new bq.Map({container:i.div,style:s.style,center:jq(o.center),zoom:o.zoom,bearing:o.bearing,pitch:o.pitch,interactive:!i.isStatic,preserveDrawingBuffer:i.isStatic,doubleClickZoom:!1,boxZoom:!1}),u=_q.controlContainerClassName,c=i.div.getElementsByClassName(u)[0];function h(){yo.loneUnhover(e._toppaper)}i.div.removeChild(c),l._canvas.style.left="0px",l._canvas.style.top="0px",i.rejectOnError(n),l.once("load",function(){i.updateData(t),i.updateLayout(e),i.resolveOnRender(r)}),i.isStatic||(l.on("moveend",function(t){if(i.map){var e=i.getView();if(o._input.center=o.center=e.center,o._input.zoom=o.zoom=e.zoom,o._input.bearing=o.bearing=e.bearing,o._input.pitch=o.pitch=e.pitch,t.originalEvent){var r={};r[i.id]=ne.extendFlat({},e),a.emit("plotly_relayout",r)}}}),l.on("mousemove",function(t){var e=i.div.getBoundingClientRect();t.clientX=t.point.x+e.left,t.clientY=t.point.y+e.top,t.target.getBoundingClientRect=function(){return e},i.xaxis.p2c=function(){return t.lngLat.lng},i.yaxis.p2c=function(){return t.lngLat.lat},yo.hover(a,t,i.id)}),l.on("click",function(t){yo.click(a,t.originalEvent)}),l.on("dragstart",h),l.on("zoomstart",h),l.on("dblclick",function(){var t=i.viewInitial;l.setCenter(jq(t.center)),l.setZoom(t.zoom),l.setBearing(t.bearing),l.setPitch(t.pitch);var e=i.getView();o._input.center=o.center=e.center,o._input.zoom=o.zoom=e.zoom,o._input.bearing=o.bearing=e.bearing,o._input.pitch=o.pitch=e.pitch,a.emit("plotly_doubleclick",null)}),i.clearSelect=function(){a._fullLayout._zoomlayer.selectAll(".select-outline").remove()})},Rq.updateMap=function(t,e,r,n){var i=this,a=i.map;i.rejectOnError(n);var o=Bq(i.opts.style);i.styleObj.id!==o.id?(i.styleObj=o,a.setStyle(o.style),a.once("styledata",function(){i.traceHash={},i.updateData(t),i.updateLayout(e),i.resolveOnRender(r)})):(i.updateData(t),i.updateLayout(e),i.resolveOnRender(r))},Rq.updateData=function(t){var e,r,n,i,a=this.traceHash;for(n=0;n=0?Math.floor((e+180)/360):Math.ceil((e-180)/360)),u=e-l;if(yo.getClosest(n,function(t){var e=t.lonlat;if(e[0]===Zq)return 1/0;var n=ne.wrap180(e[0]),i=e[1],l=s.project([n,i]),c=l.x-a.c2p([u,i]),h=l.y-o.c2p([n,r]),f=Math.max(3,t.mrc||0);return Math.max(Math.sqrt(c*c+h*h)-f,1-3/f)},t),!1!==t.index){var c=n[t.index],h=c.lonlat,f=[ne.wrap180(h[0])+l,h[1]],p=a.c2p(f),d=o.c2p(f),g=c.mrc||1;return t.x0=p-g,t.x1=p+g,t.y0=d-g,t.y1=d+g,t.color=mx(i,c),t.extraText=function(t,e,r){var n=(e.hi||t.hoverinfo).split("+"),i=-1!==n.indexOf("all"),a=-1!==n.indexOf("lon"),o=-1!==n.indexOf("lat"),s=e.lonlat,l=[];function u(t){return t+"\xb0"}return i||a&&o?l.push("("+u(s[0])+", "+u(s[1])+")"):a?l.push(r.lon+u(s[0])):o&&l.push(r.lat+u(s[1])),(i||-1!==n.indexOf("text"))&&xo(e,t,l),l.join("
    ")}(i,c,n[0].t.labels),[t]}},iH.eventData=function(t,e){return t.lon=e.lon,t.lat=e.lat,t},iH.selectPoints=function(t,e){var r,n=t.cd,i=t.xaxis,a=t.yaxis,o=[],s=n[0].trace;if(!Tr.hasMarkers(s))return[];if(!1===e)for(r=0;r0?1:-1}function VH(t){return jH(Math.cos(t))}function UH(t){return jH(Math.sin(t))}LH.plot=function(t,e){var r=e[this.id];this._hasClipOnAxisFalse=!1;for(var n=0;n=90||s>90&&l>=450?1:c<=0&&f<=0?0:Math.max(c,f);e=s<=180&&l>=180||s>180&&l>=540?-1:u>=0&&h>=0?0:Math.min(u,h);r=s<=270&&l>=270||s>270&&l>=630?-1:c>=0&&f>=0?0:Math.min(c,f);n=l>=360?1:u<=0&&h<=0?0:Math.max(u,h);return[e,r,n,i]}(d),v=g[2]-g[0],m=g[3]-g[1],y=p/f,x=Math.abs(m/v);y>x?(s=f,h=(p-(l=f*x))/i.h/2,u=[a[0],a[1]],c=[o[0]+h,o[1]-h]):(l=p,h=(f-(s=p/x))/i.w/2,u=[a[0]+h,a[1]-h],c=[o[0],o[1]]),r.xLength2=s,r.yLength2=l,r.xDomain2=u,r.yDomain2=c;var b=r.xOffset2=i.l+i.w*u[0],_=r.yOffset2=i.t+i.h*(1-c[1]),w=r.radius=s/v,M=r.cx=b-w*g[0],A=r.cy=_+w*g[3],k=r.cxx=M-b,T=r.cyy=A-_;r.updateRadialAxis(t,e),r.updateRadialAxisTitle(t,e),r.updateAngularAxis(t,e);var S=r.radialAxis.range,E=S[1]-S[0],C=r.xaxis={type:"linear",_id:"x",range:[g[0]*E,g[2]*E],domain:u};ri.setConvert(C,t),C.setScale();var L=r.yaxis={type:"linear",_id:"y",range:[g[1]*E,g[3]*E],domain:c};ri.setConvert(L,t),L.setScale(),C.isPtWithinRange=function(t){return r.isPtWithinSector(t)},L.isPtWithinRange=function(){return!0},n.frontplot.attr("transform",BH(b,_)).call(Sr.setClipUrl,r._hasClipOnAxisFalse?null:r.clipIds.circle),n.bgcircle.attr({d:OH(w,d),transform:BH(M,A)}).call(Oe.fill,e.bgcolor),r.clipPaths.circle.select("path").attr("d",OH(w,d)).attr("transform",BH(k,T)),r.framework.selectAll(".crisp").classed("crisp",0)},LH.updateRadialAxis=function(t,e){var r=this.gd,n=this.layers,i=this.radius,a=this.cx,o=this.cy,s=t._size,l=e.radialaxis,u=e.sector,c=TH(u[0]);this.fillViewInitialKey("radialaxis.angle",l.angle);var h=this.radialAxis=ne.extendFlat({},l,{_axislayer:n["radial-axis"],_gridlayer:n["radial-grid"],_id:"x",_pos:0,side:{counterclockwise:"top",clockwise:"bottom"}[l.side],domain:[0,i/s.w],anchor:"free",position:0,_counteraxis:!0,automargin:!1});PH(h,l,t),_H(h),l.range=h.range.slice(),l._input.range=h.range.slice(),this.fillViewInitialKey("radialaxis.range",h.range.slice()),"auto"===h.tickangle&&c>90&&c<=270&&(h.tickangle=180),h._transfn=function(t){return"translate("+h.l2p(t.x)+",0)"},h._gridpath=function(t){return DH(h.r2p(t.x),u)};var f=IH(l);this.radialTickLayout!==f&&(n["radial-axis"].selectAll(".xtick").remove(),this.radialTickLayout=f),ri.doTicks(r,h,!0),FH(n["radial-axis"],l.showticklabels||l.ticks,{transform:BH(a,o)+NH(-l.angle)}),FH(n["radial-grid"],l.showgrid,{transform:BH(a,o)}).selectAll("path").attr("transform",null),FH(n["radial-line"].select("line"),l.showline,{x1:0,y1:0,x2:i,y2:0,transform:BH(a,o)+NH(-l.angle)}).attr("stroke-width",l.linewidth).call(Oe.stroke,l.linecolor)},LH.updateRadialAxisTitle=function(t,e,r){var n=this.gd,i=this.radius,a=this.cx,o=this.cy,s=e.radialaxis,l=this.id+"title",u=void 0!==r?r:s.angle,c=AH(u),h=Math.cos(c),f=Math.sin(c),p=0;if(s.title){var d=Sr.bBox(this.layers["radial-axis"].node()).height,g=s.titlefont.size;p="counterclockwise"===s.side?-d-.4*g:d+.8*g}this.layers["radial-axis-title"]=Dn.draw(n,l,{propContainer:s,propName:this.id+".radialaxis.title",placeholder:MH(n,"Click to enter radial axis title"),attributes:{x:a+i/2*h+p*f,y:o-i/2*f+p*h,"text-anchor":"middle"},transform:{rotate:-u}})},LH.updateAngularAxis=function(t,r){var n=this,i=n.gd,a=n.layers,o=n.radius,s=n.cx,l=n.cy,u=r.angularaxis,c=r.sector,h=c.map(AH);n.fillViewInitialKey("angularaxis.rotation",u.rotation);var f=n.angularAxis=ne.extendFlat({},u,{_axislayer:a["angular-axis"],_gridlayer:a["angular-grid"],_id:"angular",_pos:0,side:"right",domain:[0,Math.PI],anchor:"free",position:0,_counteraxis:!0,automargin:!1,autorange:!1});if("linear"===f.type)RH(c)?f.range=c.slice():f.range=h.map(f.unTransformRad).map(kH),"radians"===f.thetaunit&&(f.tick0=kH(f.tick0),f.dtick=kH(f.dtick));else if("category"===f.type){var p=u.period?Math.max(u.period,u._categories.length):u._categories.length;f.range=[0,p],f._tickFilter=function(t){return n.isPtWithinSector({r:n.radialAxis.range[1],rad:f.c2rad(t.x)})}}function d(t){return f.c2rad(t.x,"degrees")}function g(t){return[o*Math.cos(t),o*Math.sin(t)]}PH(f,u,t),f._transfn=function(t){var r=d(t),n=g(r),i=BH(s+n[0],l-n[1]),a=e.select(this);return a&&a.node()&&a.classed("ticks")&&(i+=NH(-kH(r))),i},f._gridpath=function(t){var e=g(d(t));return"M0,0L"+-e[0]+","+e[1]};var v="outside"!==u.ticks?.7:.5;f._labelx=function(t){var e=d(t),r=f._labelStandoff,n=f._pad;return(0===UH(e)?0:Math.cos(e)*(r+n+v*t.fontSize))+VH(e)*(t.dx+r+n)},f._labely=function(t){var e=d(t),r=f._labelStandoff,n=f._labelShift,i=f._pad;return t.dy+t.fontSize*wH-n+-Math.sin(e)*(r+i+v*t.fontSize)},f._labelanchor=function(t,e){var r=d(e);return 0===UH(r)?VH(r)>0?"start":"end":"middle"};var m=IH(u);n.angularTickLayout!==m&&(a["angular-axis"].selectAll(".angulartick").remove(),n.angularTickLayout=m),ri.doTicks(i,f,!0),FH(a["angular-line"].select("path"),u.showline,{d:OH(o,c),transform:BH(s,l)}).attr("stroke-width",u.linewidth).call(Oe.stroke,u.linecolor)},LH.updateFx=function(t,e){this.gd._context.staticPlot||(this.updateAngularDrag(t,e),this.updateRadialDrag(t,e),this.updateMainDrag(t,e))},LH.updateMainDrag=function(t,r){var n=this,i=n.gd,a=n.layers,o=t._zoomlayer,l=oH.MINZOOM,u=oH.OFFEDGE,c=n.radius,h=n.cx,f=n.cy,p=n.cxx,d=n.cyy,g=r.sector,v=Bm.makeDragger(a,"path","maindrag","crosshair");e.select(v).attr("d",OH(c,g)).attr("transform",BH(h,f));var m,y,x,b,_,w,M,A,k,T={element:v,gd:i,subplot:n.id,plotinfo:{xaxis:n.xaxis,yaxis:n.yaxis},xaxes:[n.xaxis],yaxes:[n.yaxis]};function S(t,e){var r=t-p,n=e-d;return Math.sqrt(r*r+n*n)}function E(t,e){return Math.atan2(d-e,t-p)}function C(t,e){return[t*Math.cos(e),t*Math.sin(-e)]}function L(t,e){var r=oH.cornerLen,n=oH.cornerHalfWidth;if(0===t)return OH(2*n,g);var i=r/t/2,a=e-i,o=e+i,s=Math.max(0,Math.min(t,c)),l=s-n,u=s+n;return"M"+C(l,a)+"A"+[l,l]+" 0,0,0 "+C(l,o)+"L"+C(u,o)+"A"+[u,u]+" 0,0,1 "+C(u,a)+"Z"}function z(t,e){var r,n,i=m+t,a=y+e,o=S(m,y),s=Math.min(S(i,a),c),h=E(m,y),f=E(i,a);ol?(o0==c>f[0]){y=u.range[1]=c,ri.doTicks(i,n.radialAxis,!0),a["radial-grid"].attr("transform",BH(s,l)).selectAll("path").attr("transform",null);var d=y-f[0],g=n.sectorBBox;for(var v in n.xaxis.range=[g[0]*d,g[2]*d],n.yaxis.range=[g[1]*d,g[3]*d],n.xaxis.setScale(),n.yaxis.setScale(),n.traceHash){var m=n.traceHash[v],x=ne.filterVisible(m),b=m[0][0].trace._module,_=i._fullLayout[n.id];if(b.plot(i,n,x,_),!P.traceIs(v,"gl"))for(var w=0;wo&&(o+=360);var s,l,u=TH(kH(t.rad)),c=u+360;return n[1]>=n[0]?(s=n[0],l=n[1]):(s=n[1],l=n[0]),i>=s&&i<=l&&(RH(e)||u>=a&&u<=o||c>=a&&c<=o)},LH.fillViewInitialKey=function(t,e){t in this.viewInitial||(this.viewInitial[t]=e)};var qH=sa.getSubplotCalcData,HH=ne.counterRegex,GH=oH.attr,WH=oH.name,YH=HH(WH),XH={};XH[GH]={valType:"subplotid",dflt:WH,editType:"calc"};var ZH={attr:GH,name:WH,idRoot:WH,idRegex:YH,attrRegex:YH,attributes:XH,layoutAttributes:dH,supplyLayoutDefaults:function(t,e,r){Jc(t,e,0,{type:oH.name,attributes:dH,handleDefaults:xH,font:e.font,paper_bgcolor:e.paper_bgcolor,fullData:r,layoutOut:e})},plot:function(t){for(var e=t._fullLayout,r=t.calcdata,n=e._subplots[WH],i=0;i")}var nG={hoverPoints:function(t,e,r,n){var i=yx(t,e,r,n);if(i&&!1!==i[0].index){var a=i[0];if(void 0===a.index)return i;var o=t.subplot,s=a.cd[a.index],l=a.trace;if(o.isPtWithinSector(s))return a.xLabelVal=void 0,a.yLabelVal=void 0,a.extraText=rG(s,l,o),i}},makeHoverPointText:rG},iG=t.BADNUM,aG={moduleType:"trace",name:"scatterpolar",basePlotModule:ZH,categories:["polar","symbols","markerColorscale","showLegend","scatter-like"],attributes:QH,supplyDefaults:function(t,e,r,n){function i(r,n){return ne.coerce(t,e,QH,r,n)}var a=i("r"),o=i("theta"),s=a&&o?Math.min(a.length,o.length):0;if(s){e._length=s,i("thetaunit"),i("mode",sl[1]?function(t){return t<=0}:function(t){return t>=0},n=0;n=0?(f=i.c2r(h)-o[0],w=p,d=a.c2rad(w,v.thetaunit),k[c]=A[2*c]=f*Math.cos(d),T[c]=A[2*c+1]=f*Math.sin(d)):k[c]=T[c]=A[2*c]=A[2*c+1]=NaN;var S=yq.sceneOptions(t,e,v,A);S.fill&&!s.fill2d&&(s.fill2d=!0),S.marker&&!s.scatter2d&&(s.scatter2d=!0),S.line&&!s.line2d&&(s.line2d=!0),!S.errorX&&!S.errorY||s.error2d||(s.error2d=!0),Tr.hasMarkers(v)&&(S.selected.positions=S.unselected.positions=S.marker.positions),s.lineOptions.push(S.line),s.errorXOptions.push(S.errorX),s.errorYOptions.push(S.errorY),s.fillOptions.push(S.fill),s.markerOptions.push(S.marker),s.selectedOptions.push(S.selected),s.unselectedOptions.push(S.unselected),s.count=n.length,m.scene=s,m.index=u,m.x=k,m.y=T,m.rawx=k,m.rawy=T,m.r=y,m.theta=x,m.positions=A,m.count=M,m.tree=vV(A,512)}}),yq.plot(t,e,n)},hoverPoints:function(t,e,r,n){var i=t.cd[0].t,a=i.r,o=i.theta,s=yq.hoverPoints(t,e,r,n);if(s&&!1!==s[0].index){var l=s[0];if(void 0===l.index)return s;var u=t.subplot,c=u.angularAxis,h=l.cd[l.index],f=l.trace;if(h.r=a[l.index],h.theta=o[l.index],h.rad=c.c2rad(h.theta,f.thetaunit),u.isPtWithinSector(h))return l.xLabelVal=void 0,l.yLabelVal=void 0,l.extraText=lG(h,f,u),s}},style:yq.style,selectPoints:yq.selectPoints,meta:{}},cG=m.extendFlat,hG={title:Ce.title,titlefont:Ce.titlefont,color:Ce.color,tickmode:Ce.tickmode,nticks:cG({},Ce.nticks,{dflt:6,min:1}),tick0:Ce.tick0,dtick:Ce.dtick,tickvals:Ce.tickvals,ticktext:Ce.ticktext,ticks:Ce.ticks,ticklen:Ce.ticklen,tickwidth:Ce.tickwidth,tickcolor:Ce.tickcolor,showticklabels:Ce.showticklabels,showtickprefix:Ce.showtickprefix,tickprefix:Ce.tickprefix,showticksuffix:Ce.showticksuffix,ticksuffix:Ce.ticksuffix,showexponent:Ce.showexponent,exponentformat:Ce.exponentformat,separatethousands:Ce.separatethousands,tickfont:Ce.tickfont,tickangle:Ce.tickangle,tickformat:Ce.tickformat,tickformatstops:Ce.tickformatstops,hoverformat:Ce.hoverformat,showline:cG({},Ce.showline,{dflt:!0}),linecolor:Ce.linecolor,linewidth:Ce.linewidth,showgrid:cG({},Ce.showgrid,{dflt:!0}),gridcolor:Ce.gridcolor,gridwidth:Ce.gridwidth,layer:Ce.layer,min:{valType:"number",dflt:0,min:0}},fG=function(t,e,r){function n(r,n){return ne.coerce(t,e,hG,r,n)}e.type="linear";var i=n("color"),a=i===t.color?i:r.font.color,o=e._name.charAt(0).toUpperCase(),s="Component "+o,l=n("title",s);e._hovertitle=l===s?l:o,ne.coerceFont(n,"titlefont",{family:r.font.family,size:Math.round(1.2*r.font.size),color:a}),n("min"),Ge(t,e,n,"linear"),Ue(t,e,n,"linear",{}),qe(t,e,n,{outerTicks:!0}),n("showticklabels")&&(ne.coerceFont(n,"tickfont",{family:r.font.family,size:r.font.size,color:a}),n("tickangle"),n("tickformat")),Zi(t,e,n,{dfltColor:i,bgColor:r.bgColor,blend:60,showLine:!0,showGrid:!0,noZeroLine:!0,attributes:hG}),n("hoverformat"),n("layer")},pG=qc.attributes,dG=(0,ye.overrideAll)({domain:pG({name:"ternary"}),bgcolor:{valType:"color",dflt:C.background},sum:{valType:"number",dflt:1,min:0},aaxis:hG,baxis:hG,caxis:hG},"plot","from-root"),gG=["aaxis","baxis","caxis"];function vG(t,e,r,n){var i,a,o,s=r("bgcolor"),l=r("sum");n.bgColor=Oe.combine(s,n.paper_bgcolor);for(var u=0;u=l&&(c.min=0,h.min=0,f.min=0,t.aaxis&&delete t.aaxis.min,t.baxis&&delete t.baxis.min,t.caxis&&delete t.caxis.min)}var mG=ne._,yG=m.extendFlat;function xG(t,e){this.id=t.id,this.graphDiv=t.graphDiv,this.init(e),this.makeFramework(e)}var bG=xG,_G=xG.prototype;_G.init=function(t){this.container=t._ternarylayer,this.defs=t._defs,this.layoutId=t._uid,this.traceHash={},this.layers={}},_G.plot=function(t,e){var r=e[this.id],n=e._size;this._hasClipOnAxisFalse=!1;for(var i=0;iwG*g?i=(a=g)*wG:a=(i=d)/wG,o=f*i/d,s=p*a/g,r=e.l+e.w*c-i/2,n=e.t+e.h*(1-h)-a/2,l.x0=r,l.y0=n,l.w=i,l.h=a,l.sum=v,l.xaxis={type:"linear",range:[m+2*x-v,v-m-2*y],domain:[c-o/2,c+o/2],_id:"x"},ei(l.xaxis,l.graphDiv._fullLayout),l.xaxis.setScale(),l.xaxis.isPtWithinRange=function(t){return t.a>=l.aaxis.range[0]&&t.a<=l.aaxis.range[1]&&t.b>=l.baxis.range[1]&&t.b<=l.baxis.range[0]&&t.c>=l.caxis.range[1]&&t.c<=l.caxis.range[0]},l.yaxis={type:"linear",range:[m,v-y-x],domain:[h-s/2,h+s/2],_id:"y"},ei(l.yaxis,l.graphDiv._fullLayout),l.yaxis.setScale(),l.yaxis.isPtWithinRange=function(){return!0};var b=l.yaxis.domain[0],_=l.aaxis=yG({},t.aaxis,{visible:!0,range:[m,v-y-x],side:"left",_counterangle:30,tickangle:(+t.aaxis.tickangle||0)-30,domain:[b,b+s*wG],_axislayer:l.layers.aaxis,_gridlayer:l.layers.agrid,_pos:0,_id:"y",_length:i,_gridpath:"M0,0l"+a+",-"+i/2,automargin:!1});ei(_,l.graphDiv._fullLayout),_.setScale();var w=l.baxis=yG({},t.baxis,{visible:!0,range:[v-m-x,y],side:"bottom",_counterangle:30,domain:l.xaxis.domain,_axislayer:l.layers.baxis,_gridlayer:l.layers.bgrid,_counteraxis:l.aaxis,_pos:0,_id:"x",_length:i,_gridpath:"M0,0l-"+i/2+",-"+a,automargin:!1});ei(w,l.graphDiv._fullLayout),w.setScale(),_._counteraxis=w;var M=l.caxis=yG({},t.caxis,{visible:!0,range:[v-m-y,x],side:"right",_counterangle:30,tickangle:(+t.caxis.tickangle||0)+30,domain:[b,b+s*wG],_axislayer:l.layers.caxis,_gridlayer:l.layers.cgrid,_counteraxis:l.baxis,_pos:0,_id:"y",_length:i,_gridpath:"M0,0l-"+a+","+i/2,automargin:!1});ei(M,l.graphDiv._fullLayout),M.setScale();var A="M"+r+","+(n+a)+"h"+i+"l-"+i/2+",-"+a+"Z";l.clipDef.select("path").attr("d",A),l.layers.plotbg.select("path").attr("d",A);var k="M0,"+a+"h"+i+"l-"+i/2+",-"+a+"Z";l.clipDefRelative.select("path").attr("d",k);var T="translate("+r+","+n+")";l.plotContainer.selectAll(".scatterlayer,.maplayer").attr("transform",T),l.clipDefRelative.select("path").attr("transform",null);var S="translate("+(r-w._offset)+","+(n+a)+")";l.layers.baxis.attr("transform",S),l.layers.bgrid.attr("transform",S);var E="translate("+(r+i/2)+","+n+")rotate(30)translate(0,"+-_._offset+")";l.layers.aaxis.attr("transform",E),l.layers.agrid.attr("transform",E);var C="translate("+(r+i/2)+","+n+")rotate(-30)translate(0,"+-M._offset+")";l.layers.caxis.attr("transform",C),l.layers.cgrid.attr("transform",C),l.drawAxes(!0),l.plotContainer.selectAll(".crisp").classed("crisp",!1),l.layers.aline.select("path").attr("d",_.showline?"M"+r+","+(n+a)+"l"+i/2+",-"+a:"M0,0").call(Oe.stroke,_.linecolor||"#000").style("stroke-width",(_.linewidth||0)+"px"),l.layers.bline.select("path").attr("d",w.showline?"M"+r+","+(n+a)+"h"+i:"M0,0").call(Oe.stroke,w.linecolor||"#000").style("stroke-width",(w.linewidth||0)+"px"),l.layers.cline.select("path").attr("d",M.showline?"M"+(r+i/2)+","+n+"l"+i/2+","+a:"M0,0").call(Oe.stroke,M.linecolor||"#000").style("stroke-width",(M.linewidth||0)+"px"),l.graphDiv._context.staticPlot||l.initInteractions(),Sr.setClipUrl(l.layers.frontplot,l._hasClipOnAxisFalse?null:l.clipId)},_G.drawAxes=function(t){var e=this.graphDiv,r=this.id.substr(7)+"title",n=this.aaxis,i=this.baxis,a=this.caxis;if(ri.doTicks(e,n,!0),ri.doTicks(e,i,!0),ri.doTicks(e,a,!0),t){var o=Math.max(n.showticklabels?n.tickfont.size/2:0,(a.showticklabels?.75*a.tickfont.size:0)+("outside"===a.ticks?.87*a.ticklen:0));this.layers["a-title"]=Dn.draw(e,"a"+r,{propContainer:n,propName:this.id+".aaxis.title",placeholder:mG(e,"Click to enter Component A title"),attributes:{x:this.x0+this.w/2,y:this.y0-n.titlefont.size/3-o,"text-anchor":"middle"}});var s=(i.showticklabels?i.tickfont.size:0)+("outside"===i.ticks?i.ticklen:0)+3;this.layers["b-title"]=Dn.draw(e,"b"+r,{propContainer:i,propName:this.id+".baxis.title",placeholder:mG(e,"Click to enter Component B title"),attributes:{x:this.x0-s,y:this.y0+this.h+.83*i.titlefont.size+s,"text-anchor":"middle"}}),this.layers["c-title"]=Dn.draw(e,"c"+r,{propContainer:a,propName:this.id+".caxis.title",placeholder:mG(e,"Click to enter Component C title"),attributes:{x:this.x0+this.w+s,y:this.y0+this.h+.83*a.titlefont.size+s,"text-anchor":"middle"}})}};var MG=Te.MINZOOM/2+.87,AG="m-0.87,.5h"+MG+"v3h-"+(MG+5.2)+"l"+(MG/2+2.6)+",-"+(.87*MG+4.5)+"l2.6,1.5l-"+MG/2+","+.87*MG+"Z",kG="m0.87,.5h-"+MG+"v3h"+(MG+5.2)+"l-"+(MG/2+2.6)+",-"+(.87*MG+4.5)+"l-2.6,1.5l"+MG/2+","+.87*MG+"Z",TG="m0,1l"+MG/2+","+.87*MG+"l2.6,-1.5l-"+(MG/2+2.6)+",-"+(.87*MG+4.5)+"l-"+(MG/2+2.6)+","+(.87*MG+4.5)+"l2.6,1.5l"+MG/2+",-"+.87*MG+"Z",SG="m0.5,0.5h5v-2h-5v-5h-2v5h-5v2h5v5h2Z",EG=!0;function CG(t){e.select(t).selectAll(".zoombox,.js-zoombox-backdrop,.js-zoombox-menu,.zoombox-corners").remove()}_G.initInteractions=function(){var t,e,r,n,i,a,o,l,u,c,h=this,f=h.layers.plotbg.select("path").node(),p=h.graphDiv,d=p._fullLayout._zoomlayer,g={element:f,gd:p,plotinfo:{xaxis:h.xaxis,yaxis:h.yaxis},subplot:h.id,prepFn:function(v,m,y){g.xaxes=[h.xaxis],g.yaxes=[h.yaxis];var A=p._fullLayout.dragmode;v.shiftKey&&(A="pan"===A?"zoom":"pan"),g.minDrag="lasso"===A?1:void 0,"zoom"===A?(g.moveFn=x,g.doneFn=b,function(p,g,v){var m=f.getBoundingClientRect();t=g-m.left,e=v-m.top,r={a:h.aaxis.range[0],b:h.baxis.range[1],c:h.caxis.range[1]},i=r,n=h.aaxis.range[1]-r.a,a=s(h.graphDiv._fullLayout[h.id].bgcolor).getLuminance(),o="M0,"+h.h+"L"+h.w/2+", 0L"+h.w+","+h.h+"Z",l=!1,u=d.append("path").attr("class","zoombox").attr("transform","translate("+h.x0+", "+h.y0+")").style({fill:a>.2?"rgba(0,0,0,0)":"rgba(255,255,255,0)","stroke-width":0}).attr("d",o),c=d.append("path").attr("class","zoombox-corners").attr("transform","translate("+h.x0+", "+h.y0+")").style({fill:Oe.background,stroke:Oe.defaultLine,"stroke-width":1,opacity:0}).attr("d","M0,0Z"),M()}(0,m,y)):"pan"===A?(g.moveFn=_,g.doneFn=w,r={a:h.aaxis.range[0],b:h.baxis.range[1],c:h.caxis.range[1]},i=r,M()):"select"!==A&&"lasso"!==A||_c(v,m,y,g,A)},clickFn:function(t,e){if(CG(p),2===t){var r={};r[h.id+".aaxis.min"]=0,r[h.id+".baxis.min"]=0,r[h.id+".caxis.min"]=0,p.emit("plotly_doubleclick",null),P.call("relayout",p,r)}yo.click(p,e,h.id)}};function v(t,e){return 1-e/h.h}function m(t,e){return 1-(t+(h.h-e)/Math.sqrt(3))/h.w}function y(t,e){return(t-(h.h-e)/Math.sqrt(3))/h.w}function x(s,f){var p=t+s,d=e+f,g=Math.max(0,Math.min(1,v(0,e),v(0,d))),x=Math.max(0,Math.min(1,m(t,e),m(p,d))),b=Math.max(0,Math.min(1,y(t,e),y(p,d))),_=(g/2+b)*h.w,w=(1-g/2-x)*h.w,M=(_+w)/2,A=w-_,k=(1-g)*h.h,T=k-A/wG;A.2?"rgba(0,0,0,0.4)":"rgba(255,255,255,0.3)").duration(200),c.transition().style("opacity",1).duration(200),l=!0)}function b(){if(CG(p),i!==r){var t={};t[h.id+".aaxis.min"]=i.a,t[h.id+".baxis.min"]=i.b,t[h.id+".caxis.min"]=i.c,P.call("relayout",p,t),EG&&p.data&&p._context.showTips&&(ne.notifier(mG(p,"Double-click to zoom back out"),"long"),EG=!1)}}function _(t,e){var n=t/h.xaxis._m,a=e/h.yaxis._m,o=[(i={a:r.a-a,b:r.b+(n+a)/2,c:r.c-(n-a)/2}).a,i.b,i.c].sort(),s=o.indexOf(i.a),l=o.indexOf(i.b),u=o.indexOf(i.c);o[0]<0&&(o[1]+o[0]/2<0?(o[2]+=o[0]+o[1],o[0]=o[1]=0):(o[2]+=o[0]/2,o[1]+=o[0]/2,o[0]=0),i={a:o[s],b:o[l],c:o[u]},e=(r.a-i.a)*h.yaxis._m,t=(r.c-i.c-r.b+i.b)*h.xaxis._m);var c="translate("+(h.x0+t)+","+(h.y0+e)+")";h.plotContainer.selectAll(".scatterlayer,.maplayer").attr("transform",c);var f="translate("+-t+","+-e+")";h.clipDefRelative.select("path").attr("transform",f),h.aaxis.range=[i.a,h.sum-i.b-i.c],h.baxis.range=[h.sum-i.a-i.c,i.b],h.caxis.range=[h.sum-i.a-i.b,i.c],h.drawAxes(!1),h.plotContainer.selectAll(".crisp").classed("crisp",!1),h._hasClipOnAxisFalse&&h.plotContainer.select(".scatterlayer").selectAll(".trace").call(Sr.hideOutsideRangePoints,h)}function w(){var t={};t[h.id+".aaxis.min"]=i.a,t[h.id+".baxis.min"]=i.b,t[h.id+".caxis.min"]=i.c,P.call("relayout",p,t)}function M(){d.selectAll(".select-outline").remove()}f.onmousemove=function(t){yo.hover(p,t,h.id),p._fullLayout._lasthover=f,p._fullLayout._hoversubplot=h.id},f.onmouseout=function(t){p._dragging||Ua.unhover(p,t)},Ua.init(g)};var LG={},zG=sa.getSubplotCalcData,PG=ne.counterRegex;LG.name="ternary",LG.attr="subplot",LG.idRoot="ternary",LG.idRegex=LG.attrRegex=PG("ternary"),LG.attributes={subplot:{valType:"subplotid",dflt:"ternary",editType:"calc"}},LG.layoutAttributes=dG,LG.supplyLayoutDefaults=function(t,e,r){Jc(t,e,0,{type:"ternary",attributes:dG,handleDefaults:vG,font:e.font,paper_bgcolor:e.paper_bgcolor})},LG.plot=function(t){for(var e=t._fullLayout,r=t.calcdata,n=e._subplots.ternary,i=0;i"),i}function g(t,e){d.push(t._hovertitle+": "+ri.tickText(t,e,"hover").text)}},UG.selectPoints=Sx,UG.eventData=function(t,e,r,n,i){if(e.xa&&(t.xaxis=e.xa),e.ya&&(t.yaxis=e.ya),n[i]){var a=n[i];t.a=a.a,t.b=a.b,t.c=a.c}else t.a=e.a,t.b=e.b,t.c=e.c;return t},UG.moduleType="trace",UG.name="scatterternary",UG.basePlotModule=LG,UG.categories=["ternary","symbols","markerColorscale","showLegend","scatter-like"],UG.meta={};var qG=UG,HG={},GG=Di.pointsAccessorFunction;HG.moduleType="transform",HG.name="sort",HG.attributes={enabled:{valType:"boolean",dflt:!0,editType:"calc"},target:{valType:"string",strict:!0,noBlank:!0,arrayOk:!0,dflt:"x",editType:"calc"},order:{valType:"enumerated",values:["ascending","descending"],dflt:"ascending",editType:"calc"},editType:"calc"},HG.supplyDefaults=function(t){var e={};function r(r,n){return ne.coerce(t,e,HG.attributes,r,n)}return r("enabled")&&(r("target"),r("order")),e},HG.calcTransform=function(t,e,r){if(r.enabled){var n=ne.getTargetArray(e,r);if(n){var i,a,o=r.target,s=n.length,l=e._arrayAttrs,u=function(t,e,r){for(var n=e.length,i=new Array(n),a=e.slice().sort(function(t,e){switch(t.order){case"ascending":return function(t,r){return e(t)-e(r)};case"descending":return function(t,r){return e(r)-e(t)}}}(t,r)),o=0;o 0.0 ||\n any(lessThan(worldCoordinate, clipBounds[0])) || any(greaterThan(worldCoordinate, clipBounds[1]))) {\n discard;\n }\n\n vec3 N = normalize(surfaceNormal);\n vec3 V = normalize(eyeDirection);\n vec3 L = normalize(lightDirection);\n\n if(gl_FrontFacing) {\n N = -N;\n }\n\n float specular = max(beckmannSpecular(L, V, N, roughness), 0.);\n float diffuse = min(kambient + kdiffuse * max(dot(N, L), 0.0), 1.0);\n\n //decide how to interpolate color \u2014 in vertex or in fragment\n vec4 surfaceColor = step(vertexColor, .5) * texture2D(colormap, vec2(value, value)) + step(.5, vertexColor) * vColor;\n\n vec4 litColor = surfaceColor.a * vec4(diffuse * surfaceColor.rgb + kspecular * vec3(1,1,1) * specular, 1.0);\n\n gl_FragColor = mix(litColor, contourColor, contourTint) * opacity;\n}\n"]),JG=E_(["precision mediump float;\n#define GLSLIFY 1\n\nattribute vec4 uv;\nattribute float f;\n\nuniform mat3 permutation;\nuniform mat4 model, view, projection;\nuniform float height, zOffset;\nuniform sampler2D colormap;\n\nvarying float value, kill;\nvarying vec3 worldCoordinate;\nvarying vec2 planeCoordinate;\nvarying vec3 lightDirection, eyeDirection, surfaceNormal;\nvarying vec4 vColor;\n\nvoid main() {\n vec3 dataCoordinate = permutation * vec3(uv.xy, height);\n vec4 worldPosition = model * vec4(dataCoordinate, 1.0);\n\n vec4 clipPosition = projection * view * worldPosition;\n clipPosition.z = clipPosition.z + zOffset;\n\n gl_Position = clipPosition;\n value = f;\n kill = -1.0;\n worldCoordinate = dataCoordinate;\n planeCoordinate = uv.zw;\n\n vColor = texture2D(colormap, vec2(value, value));\n\n //Don't do lighting for contours\n surfaceNormal = vec3(1,0,0);\n eyeDirection = vec3(0,1,0);\n lightDirection = vec3(0,0,1);\n}\n"]),KG=E_(["precision mediump float;\n#define GLSLIFY 1\n\nuniform vec2 shape;\nuniform vec3 clipBounds[2];\nuniform float pickId;\n\nvarying float value, kill;\nvarying vec3 worldCoordinate;\nvarying vec2 planeCoordinate;\nvarying vec3 surfaceNormal;\n\nvec2 splitFloat(float v) {\n float vh = 255.0 * v;\n float upper = floor(vh);\n float lower = fract(vh);\n return vec2(upper / 255.0, floor(lower * 16.0) / 16.0);\n}\n\nvoid main() {\n if(kill > 0.0 ||\n any(lessThan(worldCoordinate, clipBounds[0])) || any(greaterThan(worldCoordinate, clipBounds[1]))) {\n discard;\n }\n vec2 ux = splitFloat(planeCoordinate.x / shape.x);\n vec2 uy = splitFloat(planeCoordinate.y / shape.y);\n gl_FragColor = vec4(pickId, ux.x, uy.x, ux.y + (uy.y/16.0));\n}\n"]);YG.createShader=function(t){var e=Bw(t,XG,ZG,null,[{name:"uv",type:"vec4"},{name:"f",type:"vec3"},{name:"normal",type:"vec3"}]);return e.attributes.uv.location=0,e.attributes.f.location=1,e.attributes.normal.location=2,e},YG.createPickShader=function(t){var e=Bw(t,XG,KG,null,[{name:"uv",type:"vec4"},{name:"f",type:"vec3"},{name:"normal",type:"vec3"}]);return e.attributes.uv.location=0,e.attributes.f.location=1,e.attributes.normal.location=2,e},YG.createContourShader=function(t){var e=Bw(t,JG,ZG,null,[{name:"uv",type:"vec4"},{name:"f",type:"float"}]);return e.attributes.uv.location=0,e.attributes.f.location=1,e},YG.createPickContourShader=function(t){var e=Bw(t,JG,KG,null,[{name:"uv",type:"vec4"},{name:"f",type:"float"}]);return e.attributes.uv.location=0,e.attributes.f.location=1,e};var QG=function(t,e,r){if(Array.isArray(r)){if(r.length!==e.dimension)throw new Error("ndarray-gradient: invalid boundary conditions")}else r=b_(e.dimension,"string"==typeof r?r:"clamp");if(t.dimension!==e.dimension+1)throw new Error("ndarray-gradient: output dimension must be +1 input dimension");if(t.shape[e.dimension]!==e.dimension)throw new Error("ndarray-gradient: output shape must match input shape");for(var n=0;n=0?s.push("0"):e.indexOf(-(l+1))>=0?s.push("s["+l+"]-1"):(s.push("-1"),a.push("1"),o.push("s["+l+"]-2"));var u=".lo("+a.join()+").hi("+o.join()+")";if(0===a.length&&(u=""),i>0){n.push("if(1");for(var l=0;l=0||e.indexOf(-(l+1))>=0||n.push("&&s[",l,"]>2");n.push("){grad",i,"(src.pick(",s.join(),")",u);for(var l=0;l=0||e.indexOf(-(l+1))>=0||n.push(",dst.pick(",s.join(),",",l,")",u);n.push(");")}for(var l=0;l1){dst.set(",s.join(),",",c,",0.5*(src.get(",f.join(),")-src.get(",p.join(),")))}else{dst.set(",s.join(),",",c,",0)};"):n.push("if(s[",c,"]>1){diff(",h,",src.pick(",f.join(),")",u,",src.pick(",p.join(),")",u,");}else{zero(",h,");};");break;case"mirror":0===i?n.push("dst.set(",s.join(),",",c,",0);"):n.push("zero(",h,");");break;case"wrap":var d=s.slice(),g=s.slice();e[l]<0?(d[c]="s["+c+"]-2",g[c]="0"):(d[c]="s["+c+"]-1",g[c]="1"),0===i?n.push("if(s[",c,"]>2){dst.set(",s.join(),",",c,",0.5*(src.get(",d.join(),")-src.get(",g.join(),")))}else{dst.set(",s.join(),",",c,",0)};"):n.push("if(s[",c,"]>2){diff(",h,",src.pick(",d.join(),")",u,",src.pick(",g.join(),")",u,");}else{zero(",h,");};");break;default:throw new Error("ndarray-gradient: Invalid boundary condition")}}i>0&&n.push("};")}for(var a=0;a<1<=1)return!0;for(var t=0;t<3;++t)if(this._contourCounts[t].length>0||this._dynamicCounts[t]>0)return!0;return!1},yW.pickSlots=1,yW.setPickBase=function(t){this.pickId=t};var xW=[0,0,0],bW={showSurface:!1,showContour:!1,projections:[pW.slice(),pW.slice(),pW.slice()],clipBounds:[[[0,0,0],[0,0,0]],[[0,0,0],[0,0,0]],[[0,0,0],[0,0,0]]]};function _W(t,e){var r,n,i,a=e.axes&&e.axes.lastCubeProps.axis||xW,o=e.showSurface,s=e.showContour;for(r=0;r<3;++r)for(o=o||e.surfaceProject[r],n=0;n<3;++n)s=s||e.contourProject[r][n];for(r=0;r<3;++r){var l=bW.projections[r];for(n=0;n<16;++n)l[n]=0;for(n=0;n<4;++n)l[5*n]=1;l[5*r]=0,l[12+r]=e.axesBounds[+(a[r]>0)][r],Dz(l,t.model,l);var u=bW.clipBounds[r];for(i=0;i<2;++i)for(n=0;n<3;++n)u[i][n]=t.clipBounds[i][n];u[0][r]=-1e8,u[1][r]=1e8}return bW.showSurface=o,bW.showContour=s,bW}var wW={model:pW,view:pW,projection:pW,inverseModel:pW.slice(),lowerBound:[0,0,0],upperBound:[0,0,0],colorMap:0,clipBounds:[[0,0,0],[0,0,0]],height:0,contourTint:0,contourColor:[0,0,0,1],permutation:[1,0,0,0,1,0,0,0,1],zOffset:-1e-4,kambient:1,kdiffuse:1,kspecular:1,lightPosition:[1e3,1e3,1e3],eyePosition:[0,0,0],roughness:1,fresnel:1,opacity:1,vertexColor:0},MW=pW.slice(),AW=[1,0,0,0,1,0,0,0,1];function kW(t,e){t=t||{};var r=this.gl;r.disable(r.CULL_FACE),this._colorMap.bind(0);var n=wW;n.model=t.model||pW,n.view=t.view||pW,n.projection=t.projection||pW,n.lowerBound=[this.bounds[0][0],this.bounds[0][1],this.colorBounds[0]||this.bounds[0][2]],n.upperBound=[this.bounds[1][0],this.bounds[1][1],this.colorBounds[1]||this.bounds[1][2]],n.contourColor=this.contourColor[0],n.inverseModel=cz(n.inverseModel,n.model);for(var i=0;i<2;++i)for(var a=n.clipBounds[i],o=0;o<3;++o)a[o]=Math.min(Math.max(this.clipBounds[i][o],-1e8),1e8);n.kambient=this.ambientLight,n.kdiffuse=this.diffuseLight,n.kspecular=this.specularLight,n.roughness=this.roughness,n.fresnel=this.fresnel,n.opacity=this.opacity,n.height=0,n.permutation=AW,n.vertexColor=this.vertexColor;var s=MW;for(Dz(s,n.view,n.model),Dz(s,n.projection,s),cz(s,s),i=0;i<3;++i)n.eyePosition[i]=s[12+i]/s[15];var l=s[15];for(i=0;i<3;++i)l+=this.lightPosition[i]*s[4*i+3];for(i=0;i<3;++i){var u=s[12+i];for(o=0;o<3;++o)u+=s[4*o+i]*this.lightPosition[o];n.lightPosition[i]=u/l}var c=_W(n,this);if(c.showSurface&&e===this.opacity<1){for(this._shader.bind(),this._shader.uniforms=n,this._vao.bind(),this.showSurface&&this._vertexCount&&this._vao.draw(r.TRIANGLES,this._vertexCount),i=0;i<3;++i)this.surfaceProject[i]&&this.vertexCount&&(this._shader.uniforms.model=c.projections[i],this._shader.uniforms.clipBounds=c.clipBounds[i],this._vao.draw(r.TRIANGLES,this._vertexCount));this._vao.unbind()}if(c.showContour&&!e){var h=this._contourShader;n.kambient=1,n.kdiffuse=0,n.kspecular=0,n.opacity=1,h.bind(),h.uniforms=n;var f=this._contourVAO;for(f.bind(),i=0;i<3;++i)for(h.uniforms.permutation=gW[i],r.lineWidth(this.contourWidth[i]),o=0;o>4)/16)/255,i=Math.floor(n),a=n-i,o=e[1]*(t.value[1]+(15&t.value[2])/16)/255,s=Math.floor(o),l=o-s;i+=1,s+=1;var u=r.position;u[0]=u[1]=u[2]=0;for(var c=0;c<2;++c)for(var h=c?a:1-a,f=0;f<2;++f)for(var p=i+c,d=s+f,g=h*(f?l:1-l),v=0;v<3;++v)u[v]+=this._field[v].get(p,d)*g;for(var m=this._pickResult.level,y=0;y<3;++y)if(m[y]=wT.le(this.contourLevels[y],u[y]),m[y]<0)this.contourLevels[y].length>0&&(m[y]=0);else if(m[y]Math.abs(b-u[y])&&(m[y]+=1)}for(r.index[0]=a<.5?i:i+1,r.index[1]=l<.5?s:s+1,r.uv[0]=n/e[0],r.uv[1]=o/e[1],v=0;v<3;++v)r.dataCoordinate[v]=this._field[v].get(r.index[0],r.index[1]);return r},yW.update=function(t){t=t||{},this.dirty=!0,"contourWidth"in t&&(this.contourWidth=EW(t.contourWidth,Number)),"showContour"in t&&(this.showContour=EW(t.showContour,Boolean)),"showSurface"in t&&(this.showSurface=!!t.showSurface),"contourTint"in t&&(this.contourTint=EW(t.contourTint,Boolean)),"contourColor"in t&&(this.contourColor=LW(t.contourColor)),"contourProject"in t&&(this.contourProject=EW(t.contourProject,function(t){return EW(t,Boolean)})),"surfaceProject"in t&&(this.surfaceProject=t.surfaceProject),"dynamicColor"in t&&(this.dynamicColor=LW(t.dynamicColor)),"dynamicTint"in t&&(this.dynamicTint=EW(t.dynamicTint,Number)),"dynamicWidth"in t&&(this.dynamicWidth=EW(t.dynamicWidth,Number)),"opacity"in t&&(this.opacity=t.opacity),"colorBounds"in t&&(this.colorBounds=t.colorBounds),"vertexColor"in t&&(this.vertexColor=t.vertexColor?1:0);var e=t.field||t.coords&&t.coords[2]||null,r=!1;if(e||(e=this._field[2].shape[0]||this._field[2].shape[2]?this._field[2].lo(1,1).hi(this._field[2].shape[0]-2,this._field[2].shape[1]-2):this._field[2].hi(0,0)),"field"in t||"coords"in t){var n=(e.shape[0]+2)*(e.shape[1]+2);n>this._field[2].data.length&&(__.freeFloat(this._field[2].data),this._field[2].data=__.mallocFloat(Mb.nextPow2(n))),this._field[2]=wb(this._field[2].data,[e.shape[0]+2,e.shape[1]+2]),SW(this._field[2],e),this.shape=e.shape.slice();for(var i=this.shape,a=0;a<2;++a)this._field[2].size>this._field[a].data.length&&(__.freeFloat(this._field[a].data),this._field[a].data=__.mallocFloat(this._field[2].size)),this._field[a]=wb(this._field[a].data,[i[0]+2,i[1]+2]);if(t.coords){var o=t.coords;if(!Array.isArray(o)||3!==o.length)throw new Error("gl-surface: invalid coordinates for x/y");for(a=0;a<2;++a){var s=o[a];for(f=0;f<2;++f)if(s.shape[f]!==i[f])throw new Error("gl-surface: coords have incorrect shape");SW(this._field[a],s)}}else if(t.ticks){var l=t.ticks;if(!Array.isArray(l)||2!==l.length)throw new Error("gl-surface: invalid ticks");for(a=0;a<2;++a){var u=l[a];if((Array.isArray(u)||u.length)&&(u=wb(u)),u.shape[0]!==i[a])throw new Error("gl-surface: invalid tick length");var c=wb(u.data,i);c.stride[a]=u.stride[0],c.stride[1^a]=0,SW(this._field[a],c)}}else{for(a=0;a<2;++a){var h=[0,0];h[a]=1,this._field[a]=wb(this._field[a].data,[i[0]+2,i[1]+2],h,0)}this._field[0].set(0,0,0);for(var f=0;f0){for(var ct=0;ct<5;++ct)H.pop();I-=1}continue t}H.push(X[0],X[1],K[0],K[1],X[2]),I+=1}}Y.push(I)}this._contourOffsets[G]=W,this._contourCounts[G]=Y}var ht=__.mallocFloat(H.length);for(a=0;a",maxDimensionCount:60,overdrag:45,releaseTransitionDuration:120,releaseTransitionEase:"cubic-out",scrollbarCaptureWidth:18,scrollbarHideDelay:1e3,scrollbarHideDuration:1e3,scrollbarOffset:5,scrollbarWidth:8,transitionDuration:100,transitionEase:"cubic-out",uplift:5,wrapSpacer:" ",wrapSplitCharacter:" ",cn:{table:"table",tableControlView:"table-control-view",scrollBackground:"scroll-background",yColumn:"y-column",columnBlock:"column-block",scrollAreaClip:"scroll-area-clip",scrollAreaClipRect:"scroll-area-clip-rect",columnBoundary:"column-boundary",columnBoundaryClippath:"column-boundary-clippath",columnBoundaryRect:"column-boundary-rect",columnCells:"column-cells",columnCell:"column-cell",cellRect:"cell-rect",cellText:"cell-text",cellTextHolder:"cell-text-holder",scrollbarKit:"scrollbar-kit",scrollbar:"scrollbar",scrollbarSlider:"scrollbar-slider",scrollbarGlyph:"scrollbar-glyph",scrollbarCaptureZone:"scrollbar-capture-zone"}},iY=m.extendFlat;function aY(t){return t.calcdata.columns.reduce(function(e,r){return r.xIndex=e||u===t.length-1)&&(n[i]=o,o.key=l++,o.firstRowIndex=s,o.lastRowIndex=u,o={firstRowIndex:null,lastRowIndex:null,rows:[]},i+=a,s=u+1,a=0);return n}var lY={},uY=m.extendFlat;lY.splitToPanels=function(t){var e=[0,0],r=uY({},t,{key:"header",type:"header",page:0,prevPages:e,currentRepaint:[null,null],dragHandle:!0,values:t.calcdata.headerCells.values[t.specIndex],rowBlocks:t.calcdata.headerRowBlocks,calcdata:uY({},t.calcdata,{cells:t.calcdata.headerCells})});return[uY({},t,{key:"cells1",type:"cells",page:0,prevPages:e,currentRepaint:[null,null],dragHandle:!1,values:t.calcdata.cells.values[t.specIndex],rowBlocks:t.calcdata.rowBlocks}),uY({},t,{key:"cells2",type:"cells",page:1,prevPages:e,currentRepaint:[null,null],dragHandle:!1,values:t.calcdata.cells.values[t.specIndex],rowBlocks:t.calcdata.rowBlocks}),r]},lY.splitToCells=function(t){var e=function(t){var e=t.rowBlocks[t.page],r=e?e.rows[0].rowIndex:0,n=e?r+e.rows.length:0;return[r,n]}(t);return(t.values||[]).slice(e[0],e[1]).map(function(r,n){return{keyWithinBlock:n+("string"==typeof r&&r.match(/[<$&> ]/)?"_keybuster_"+Math.random():""),key:e[0]+n,column:t,calcdata:t.calcdata,page:t.page,rowBlocks:t.rowBlocks,value:r}})};var cY=ne.raiseToTop,hY=ne.cancelTransition,fY=function(t,n){var i=t._fullLayout._paper.selectAll("."+nY.cn.table).data(n.map(function(e){var n=ZR.unwrap(e).trace;return function(t,e){var n=e.cells.values,i=function(t){return t.slice(e.header.values.length,t.length)},a=e.header.values.map(function(t){return Array.isArray(t)?t:[t]}).concat(i(n).map(function(){return[""]})),o=e.domain,s=Math.floor(t._fullLayout._size.w*(o.x[1]-o.x[0])),l=Math.floor(t._fullLayout._size.h*(o.y[1]-o.y[0])),u=e.header.values.length?a[0].map(function(){return e.header.height}):[nY.emptyHeaderHeight],c=n.length?n[0].map(function(){return e.cells.height}):[],h=u.reduce(function(t,e){return t+e},0),f=sY(c,l-h+nY.uplift),p=oY(sY(u,h),[]),d=oY(f,p),g={},v=e._fullInput.columnorder.concat(i(n.map(function(t,e){return e}))),m=a.map(function(t,n){var i=Array.isArray(e.columnwidth)?e.columnwidth[Math.min(n,e.columnwidth.length-1)]:e.columnwidth;return r(i)?Number(i):1}),y=m.reduce(function(t,e){return t+e},0);m=m.map(function(t){return t/y*s});var x={key:e.index,translateX:o.x[0]*t._fullLayout._size.w,translateY:t._fullLayout._size.h*(1-o.y[1]),size:t._fullLayout._size,width:s,height:l,columnOrder:v,groupHeight:l,rowBlocks:d,headerRowBlocks:p,scrollY:0,cells:e.cells,headerCells:iY({},e.header,{values:a}),gdColumns:a.map(function(t){return t[0]}),gdColumnsOriginalOrder:a.map(function(t){return t[0]}),prevPages:[0,0],scrollbarState:{scrollbarScrollInProgress:!1},columns:a.map(function(t,e){var r=g[t];return g[t]=(r||0)+1,{key:t+"__"+g[t],label:t,specIndex:e,xIndex:v[e],xScale:aY,x:void 0,calcdata:void 0,columnWidth:m[e]}})};return x.columns.forEach(function(t){t.calcdata=x,t.x=aY(t)}),x}(t,n)}),ZR.keyFun);i.exit().remove(),i.enter().append("g").classed(nY.cn.table,!0).attr("overflow","visible").style("box-sizing","content-box").style("position","absolute").style("left",0).style("overflow","visible").style("shape-rendering","crispEdges").style("pointer-events","all"),i.attr("width",function(t){return t.width+t.size.l+t.size.r}).attr("height",function(t){return t.height+t.size.t+t.size.b}).attr("transform",function(t){return"translate("+t.translateX+","+t.translateY+")"});var a=i.selectAll("."+nY.cn.tableControlView).data(ZR.repeat,ZR.keyFun);a.enter().append("g").classed(nY.cn.tableControlView,!0).style("box-sizing","content-box").on("mousemove",function(e){a.filter(function(t){return e===t}).call(vY,t)}).on("mousewheel",function(r){r.scrollbarState.wheeling||(r.scrollbarState.wheeling=!0,e.event.stopPropagation(),e.event.preventDefault(),TY(t,a,null,r.scrollY+e.event.deltaY)(r),r.scrollbarState.wheeling=!1)}).call(vY,t,!0),a.attr("transform",function(t){return"translate("+t.size.l+" "+t.size.t+")"});var o=a.selectAll("."+nY.cn.scrollBackground).data(ZR.repeat,ZR.keyFun);o.enter().append("rect").classed(nY.cn.scrollBackground,!0).attr("fill","none"),o.attr("width",function(t){return t.width}).attr("height",function(t){return t.height}),a.each(function(r){Sr.setClipUrl(e.select(this),pY(t,r))});var s=a.selectAll("."+nY.cn.yColumn).data(function(t){return t.columns},ZR.keyFun);s.enter().append("g").classed(nY.cn.yColumn,!0),s.exit().remove(),s.attr("transform",function(t){return"translate("+t.x+" 0)"}).call(e.behavior.drag().origin(function(r){return _Y(e.select(this),r,-nY.uplift),cY(this),r.calcdata.columnDragInProgress=!0,vY(a.filter(function(t){return r.calcdata.key===t.key}),t),r}).on("drag",function(t){var r=e.select(this),n=function(r){return(t===r?e.event.x:r.x)+r.columnWidth/2};t.x=Math.max(-nY.overdrag,Math.min(t.calcdata.width+nY.overdrag-t.columnWidth,e.event.x)),gY(s).filter(function(e){return e.calcdata.key===t.calcdata.key}).sort(function(t,e){return n(t)-n(e)}).forEach(function(e,r){e.xIndex=r,e.x=t===e?e.x:e.xScale(e)}),s.filter(function(e){return t!==e}).transition().ease(nY.transitionEase).duration(nY.transitionDuration).attr("transform",function(t){return"translate("+t.x+" 0)"}),r.call(hY).attr("transform","translate("+t.x+" -"+nY.uplift+" )")}).on("dragend",function(r){var n=e.select(this),i=r.calcdata;r.x=r.xScale(r),r.calcdata.columnDragInProgress=!1,_Y(n,r,0),function(t,e,r){var n=e.gdColumnsOriginalOrder;e.gdColumns.sort(function(t,e){return r[n.indexOf(t)]-r[n.indexOf(e)]}),e.columnorder=r,t.emit("plotly_restyle")}(t,i,i.columns.map(function(t){return t.xIndex}))})),s.each(function(r){Sr.setClipUrl(e.select(this),dY(t,r))});var l=s.selectAll("."+nY.cn.columnBlock).data(lY.splitToPanels,ZR.keyFun);l.enter().append("g").classed(nY.cn.columnBlock,!0).attr("id",function(t){return t.key}),l.style("cursor",function(t){return t.dragHandle?"ew-resize":t.calcdata.scrollbarState.barWiggleRoom?"ns-resize":"default"});var u=l.filter(MY),c=l.filter(wY);c.call(e.behavior.drag().origin(function(t){return e.event.stopPropagation(),t}).on("drag",TY(t,a,-1)).on("dragend",function(){})),mY(t,a,u,l),mY(t,a,c,l);var h=a.selectAll("."+nY.cn.scrollAreaClip).data(ZR.repeat,ZR.keyFun);h.enter().append("clipPath").classed(nY.cn.scrollAreaClip,!0).attr("id",function(e){return pY(t,e)});var f=h.selectAll("."+nY.cn.scrollAreaClipRect).data(ZR.repeat,ZR.keyFun);f.enter().append("rect").classed(nY.cn.scrollAreaClipRect,!0).attr("x",-nY.overdrag).attr("y",-nY.uplift).attr("fill","none"),f.attr("width",function(t){return t.width+2*nY.overdrag}).attr("height",function(t){return t.height+nY.uplift}),s.selectAll("."+nY.cn.columnBoundary).data(ZR.repeat,ZR.keyFun).enter().append("g").classed(nY.cn.columnBoundary,!0);var p=s.selectAll("."+nY.cn.columnBoundaryClippath).data(ZR.repeat,ZR.keyFun);p.enter().append("clipPath").classed(nY.cn.columnBoundaryClippath,!0),p.attr("id",function(e){return dY(t,e)});var d=p.selectAll("."+nY.cn.columnBoundaryRect).data(ZR.repeat,ZR.keyFun);d.enter().append("rect").classed(nY.cn.columnBoundaryRect,!0).attr("fill","none"),d.attr("width",function(t){return t.columnWidth}).attr("height",function(t){return t.calcdata.height+nY.uplift}),kY(null,c,a)};function pY(t,e){return"clip"+t._fullLayout._uid+"_scrollAreaBottomClip_"+e.key}function dY(t,e){return"clip"+t._fullLayout._uid+"_columnBoundaryClippath_"+e.calcdata.key+"_"+e.specIndex}function gY(t){return[].concat.apply([],t.map(function(t){return t})).map(function(t){return t.__data__})}function vY(t,r,n){var i=t.selectAll("."+nY.cn.scrollbarKit).data(ZR.repeat,ZR.keyFun);i.enter().append("g").classed(nY.cn.scrollbarKit,!0).style("shape-rendering","geometricPrecision"),i.each(function(t){var e=t.scrollbarState;e.totalHeight=function(t){var e=t.rowBlocks;return PY(e,e.length-1)+(e.length?IY(e[e.length-1],1/0):1)}(t),e.scrollableAreaHeight=t.groupHeight-AY(t),e.currentlyVisibleHeight=Math.min(e.totalHeight,e.scrollableAreaHeight),e.ratio=e.currentlyVisibleHeight/e.totalHeight,e.barLength=Math.max(e.ratio*e.currentlyVisibleHeight,nY.goldenRatio*nY.scrollbarWidth),e.barWiggleRoom=e.currentlyVisibleHeight-e.barLength,e.wiggleRoom=Math.max(0,e.totalHeight-e.scrollableAreaHeight),e.topY=0===e.barWiggleRoom?0:t.scrollY/e.wiggleRoom*e.barWiggleRoom,e.bottomY=e.topY+e.barLength,e.dragMultiplier=e.wiggleRoom/e.barWiggleRoom}).attr("transform",function(t){return"translate("+(t.width+nY.scrollbarWidth/2+nY.scrollbarOffset)+" "+AY(t)+")"});var a=i.selectAll("."+nY.cn.scrollbar).data(ZR.repeat,ZR.keyFun);a.enter().append("g").classed(nY.cn.scrollbar,!0);var o=a.selectAll("."+nY.cn.scrollbarSlider).data(ZR.repeat,ZR.keyFun);o.enter().append("g").classed(nY.cn.scrollbarSlider,!0),o.attr("transform",function(t){return"translate(0 "+(t.scrollbarState.topY||0)+")"});var s=o.selectAll("."+nY.cn.scrollbarGlyph).data(ZR.repeat,ZR.keyFun);s.enter().append("line").classed(nY.cn.scrollbarGlyph,!0).attr("stroke","black").attr("stroke-width",nY.scrollbarWidth).attr("stroke-linecap","round").attr("y1",nY.scrollbarWidth/2),s.attr("y2",function(t){return t.scrollbarState.barLength-nY.scrollbarWidth/2}).attr("stroke-opacity",function(t){return t.columnDragInProgress||!t.scrollbarState.barWiggleRoom||n?0:.4}),s.transition().delay(0).duration(0),s.transition().delay(nY.scrollbarHideDelay).duration(nY.scrollbarHideDuration).attr("stroke-opacity",0);var l=a.selectAll("."+nY.cn.scrollbarCaptureZone).data(ZR.repeat,ZR.keyFun);l.enter().append("line").classed(nY.cn.scrollbarCaptureZone,!0).attr("stroke","white").attr("stroke-opacity",.01).attr("stroke-width",nY.scrollbarCaptureWidth).attr("stroke-linecap","butt").attr("y1",0).on("mousedown",function(n){var i=e.event.y,a=this.getBoundingClientRect(),o=n.scrollbarState,s=i-a.top,l=e.scale.linear().domain([0,o.scrollableAreaHeight]).range([0,o.totalHeight]).clamp(!0);o.topY<=s&&s<=o.bottomY||TY(r,t,null,l(s-o.barLength/2))(n)}).call(e.behavior.drag().origin(function(t){return e.event.stopPropagation(),t.scrollbarState.scrollbarScrollInProgress=!0,t}).on("drag",TY(r,t)).on("dragend",function(){})),l.attr("y2",function(t){return t.scrollbarState.scrollableAreaHeight})}function mY(t,r,n,i){var a=function(t){var e=t.selectAll("."+nY.cn.columnCell).data(lY.splitToCells,function(t){return t.keyWithinBlock});return e.enter().append("g").classed(nY.cn.columnCell,!0),e.exit().remove(),e}(function(t){var e=t.selectAll("."+nY.cn.columnCells).data(ZR.repeat,ZR.keyFun);return e.enter().append("g").classed(nY.cn.columnCells,!0),e.exit().remove(),e}(n));!function(t){t.each(function(t,e){var r=t.calcdata.cells.font,n=t.column.specIndex,i={size:bY(r.size,n,e),color:bY(r.color,n,e),family:bY(r.family,n,e)};t.rowNumber=t.key,t.align=bY(t.calcdata.cells.align,n,e),t.cellBorderWidth=bY(t.calcdata.cells.line.width,n,e),t.font=i})}(a),function(t){t.attr("width",function(t){return t.column.columnWidth}).attr("stroke-width",function(t){return t.cellBorderWidth}).each(function(t){var r=e.select(this);Oe.stroke(r,bY(t.calcdata.cells.line.color,t.column.specIndex,t.rowNumber)),Oe.fill(r,bY(t.calcdata.cells.fill.color,t.column.specIndex,t.rowNumber))})}(function(t){var e=t.selectAll("."+nY.cn.cellRect).data(ZR.repeat,function(t){return t.keyWithinBlock});return e.enter().append("rect").classed(nY.cn.cellRect,!0),e}(a));var o=function(t){var r=t.selectAll("."+nY.cn.cellText).data(ZR.repeat,function(t){return t.keyWithinBlock});return r.enter().append("text").classed(nY.cn.cellText,!0).style("cursor",function(){return"auto"}).on("mousedown",function(){e.event.stopPropagation()}),r}(function(t){var e=t.selectAll("."+nY.cn.cellTextHolder).data(ZR.repeat,function(t){return t.keyWithinBlock});return e.enter().append("g").classed(nY.cn.cellTextHolder,!0).style("shape-rendering","geometricPrecision"),e}(a));!function(t){t.each(function(t){Sr.font(e.select(this),t.font)})}(o),yY(o,r,i,t),zY(a)}function yY(t,r,n,i){t.text(function(t){var r=t.column.specIndex,n=t.rowNumber,i=t.value,a="string"==typeof i,o=a&&i.match(/
    /i),s=!a||o;t.mayHaveMarkup=a&&i.match(/[<&>]/);var l,u="string"==typeof(l=i)&&l.match(nY.latexCheck);t.latex=u;var c,h,f=u?"":bY(t.calcdata.cells.prefix,r,n)||"",p=u?"":bY(t.calcdata.cells.suffix,r,n)||"",d=u?null:bY(t.calcdata.cells.format,r,n)||null,g=f+(d?e.format(d)(t.value):t.value)+p;if(t.wrappingNeeded=!t.wrapped&&!s&&!u&&(c=xY(g)),t.cellHeightMayIncrease=o||u||t.mayHaveMarkup||(void 0===c?xY(g):c),t.needsConvertToTspans=t.mayHaveMarkup||t.wrappingNeeded||t.latex,t.wrappingNeeded){var v=(" "===nY.wrapSplitCharacter?g.replace(/
    i&&n.push(a),i+=l}return n}(i,l,s);1===u.length&&(u[0]===i.length-1?u.unshift(u[0]-1):u.push(u[0]+1)),u[0]%2&&u.reverse(),e.each(function(t,e){t.page=u[e],t.scrollY=l}),e.attr("transform",function(t){return"translate(0 "+(PY(t.rowBlocks,t.page)-t.scrollY)+")"}),t&&(SY(t,r,e,u,n.prevPages,n,0),SY(t,r,e,u,n.prevPages,n,1),vY(r,t))}}function TY(t,r,n,i){return function(a){var o=a.calcdata?a.calcdata:a,s=r.filter(function(t){return o.key===t.key}),l=n||o.scrollbarState.dragMultiplier;o.scrollY=void 0===i?o.scrollY+l*e.event.dy:i;var u=s.selectAll("."+nY.cn.yColumn).selectAll("."+nY.cn.columnBlock).filter(wY);kY(t,u,s)}}function SY(t,e,r,n,i,a,o){n[o]!==i[o]&&(clearTimeout(a.currentRepaint[o]),a.currentRepaint[o]=setTimeout(function(){var a=r.filter(function(t,e){return e===o&&n[e]!==i[e]});mY(t,e,a,r),i[o]=n[o]}))}function EY(t,r,n){return function(){var i=e.select(r.parentNode);i.each(function(t){var e=t.fragments;i.selectAll("tspan.line").each(function(t,r){e[r].width=this.getComputedTextLength()});var r,n,a=e[e.length-1].width,o=e.slice(0,-1),s=[],l=0,u=t.column.columnWidth-2*nY.cellPad;for(t.value="";o.length;)l+(n=(r=o.shift()).width+a)>u&&(t.value+=s.join(nY.wrapSpacer)+nY.lineBreaker,s=[],l=0),s.push(r.text),l+=n;l&&(t.value+=s.join(nY.wrapSpacer)),t.wrapped=!0}),i.selectAll("tspan.line").remove(),yY(i.select("."+nY.cn.cellText),n,t),e.select(r.parentNode.parentNode).call(zY)}}function CY(t,r,n,i,a){return function(){if(!a.settledY){var o=e.select(r.parentNode),s=OY(a),l=a.key-s.firstRowIndex,u=s.rows[l].rowHeight,c=a.cellHeightMayIncrease?r.parentNode.getBoundingClientRect().height+2*nY.cellPad:u,h=Math.max(c,u);h-s.rows[l].rowHeight&&(s.rows[l].rowHeight=h,t.selectAll("."+nY.cn.columnCell).call(zY),kY(null,t.filter(wY),0),vY(n,i,!0)),o.attr("transform",function(){var t=this.parentNode.getBoundingClientRect(),r=e.select(this.parentNode).select("."+nY.cn.cellRect).node().getBoundingClientRect(),n=this.transform.baseVal.consolidate(),i=r.top-t.top+(n?n.matrix.f:nY.cellPad);return"translate("+LY(a,e.select(this.parentNode).select("."+nY.cn.cellTextHolder).node().getBoundingClientRect().width)+" "+i+")"}),a.settledY=!0}}}function LY(t,e){switch(t.align){case"left":return nY.cellPad;case"right":return t.column.columnWidth-(e||0)-nY.cellPad;case"center":return(t.column.columnWidth-(e||0))/2;default:return nY.cellPad}}function zY(t){t.attr("transform",function(t){var e=t.rowBlocks[0].auxiliaryBlocks.reduce(function(t,e){return t+IY(e,1/0)},0);return"translate(0 "+(IY(OY(t),t.key)+e)+")"}).selectAll("."+nY.cn.cellRect).attr("height",function(t){return(e=OY(t),r=t.key,e.rows[r-e.firstRowIndex]).rowHeight;var e,r})}function PY(t,e){for(var r=0,n=e-1;n>=0;n--)r+=DY(t[n]);return r}function IY(t,e){for(var r=0,n=0;n1,p=l.bdPos=l.dPos*(1-i.violingap)*(1-i.violingroupgap)/(f?h:1),d=l.bPos=f?2*l.dPos*((l.num+.5)/h-.5)*(1-i.violingap):0;if(!0!==u.visible||l.empty)e.select(this).remove();else{var g=r[l.valLetter+"axis"],v=r[l.posLetter+"axis"],m="both"===u.side,y=m||"positive"===u.side,x=m||"negative"===u.side,b=u.box&&u.box.visible,_=u.meanline&&u.meanline.visible,w=i._violinScaleGroupStats[u.scalegroup];if(c.selectAll("path.violin").data(ne.identity).enter().append("path").style("vector-effect","non-scaling-stroke").attr("class","violin").each(function(t){var r,n,i,a,o,c,h,f,b=e.select(this),_=t.density,M=_.length,A=t.pos+d,k=v.c2p(A);switch(u.scalemode){case"width":r=w.maxWidth/p;break;case"count":r=w.maxWidth/p*(w.maxCount/t.pts.length)}if(y){for(h=new Array(M),o=0;o0){var d,g,v,m,y,x=t.xa,b=t.ya;"h"===l.orientation?(y=e,d="y",v=b,g="x",m=x):(y=r,d="x",v=x,g="y",m=b);var _=s[t.index];if(y>=_.span[0]&&y<=_.span[1]){var w=ne.extendFlat({},t),M=m.c2p(y,!0),A=HY.getKdeValue(_,l,y),k=HY.getPositionOnKdePath(_,l,M),T=v._offset,S=v._length;w[d+"0"]=k[0],w[d+"1"]=k[1],w[g+"0"]=w[g+"1"]=M,w[g+"Label"]=g+": "+ri.hoverLabelText(m,y)+", "+s[0].t.labels.kde+" "+A.toFixed(3),w.spikeDistance=p[0].spikeDistance;var E=d+"Spike";w[E]=p[0][E],p[0].spikeDistance=void 0,p[0][E]=void 0,f.push(w),(o={stroke:t.color})[d+"1"]=ne.constrain(T+k[0],T,T+S),o[d+"2"]=ne.constrain(T+k[1],T,T+S),o[g+"1"]=o[g+"2"]=m._offset+M}}}-1!==u.indexOf("points")&&(a=_s.hoverOnPoints(t,e,r));var C=i.selectAll(".violinline-"+l.uid).data(o?[0]:[]);return C.enter().append("line").classed("violinline-"+l.uid,!0).attr("stroke-width",1.5),C.exit().remove(),C.attr(o),"closest"===n?a?[a]:f:a?(f.push(a),f):f},selectPoints:zs,moduleType:"trace",name:"violin",basePlotModule:ua,categories:["cartesian","symbols","oriented","box-violin","showLegend"],meta:{}};return Fx.register([os,Bs,Kx,qL,ZL,$L,YF,fp,qG,tX,Wj,tY,DR,dV,Sh,xq,aB,LL,LF,aH,uN,VY,Gu,tV,Ep,UR,iu,aG,uG]),Fx.register([Hi,qx,Yx,WG]),Fx.register([Ul]),Fx}); \ No newline at end of file diff --git a/js/speechreco.js b/js/speechreco.js new file mode 100644 index 000000000..002bc00dd --- /dev/null +++ b/js/speechreco.js @@ -0,0 +1,111 @@ + var SpeechRecognition = SpeechRecognition || webkitSpeechRecognition; + var recognition = new SpeechRecognition(); + function runSpeechRecognition(output,input,logo) { + var output = document.getElementById(output); + var action = document.getElementById(input); + recognition.onstart = function() { + var c=0; +// action.value = "Listening...."; + document.getElementById('soltxt').value=''; + document.getElementById(logo).src="listening.gif"; + document.getElementById(logo).style.height="80px"; + document.getElementById(logo).style.width="80px"; + }; + recognition.onspeechend = function() { + + action.value = ""; + document.getElementById(logo).src="speechlogo.png"; + document.getElementById('soltxt').value=''; + document.getElementById(logo).style.height="30px"; + document.getElementById(logo).style.width="20.91px"; + recognition.stop(); + } + recognition.onresult = function(event) { + var transcript = event.results[0][0].transcript; + + if(transcript.includes("multiply")){ + transcript=transcript.replace(/multiply/g, "*"); + } + if(transcript.includes("X")){ + transcript=transcript.replace(/X/g, "*"); + } + if(transcript.includes("into")){ + transcript=transcript.replace(/into/g, "*"); + } + if(transcript.includes("x")){ + transcript=transcript.replace(/x/g, "*"); + } + if(transcript.includes("divided by")){ + transcript=transcript.replace(/divided by/g, "/"); + } + if(transcript.includes("minus")){ + transcript=transcript.replace(/minus/g, "-"); + } + if(transcript.includes("by")){ + transcript=transcript.replace(/by/g, "/"); + } + if(transcript.includes("plus")){ + transcript=transcript.replace(/plus/g, "+"); + } + if(transcript.includes("to")){ + transcript=transcript.replace(/to/g, "2"); + } + if(transcript.includes("too")){ + transcript=transcript.replace(/too/g, "2"); + } + if(transcript.includes("six")){ + transcript=transcript.replace(/six/g, "6"); + } + if(transcript.includes("class")){ + transcript=transcript.replace(/class/g, "+"); + } + if(transcript.includes("divide")){ + transcript=transcript.replace(/divide/g, "/"); + } + if(transcript.includes("divide by")){ + transcript=transcript.replace(/divide by/g, "/"); + } + if(transcript.includes("in2")){ + transcript=transcript.replace(/in2/g, "*"); + }if(transcript.includes("close")){ + transcript=transcript.replace(/close/g, ""); + }if(transcript.includes("thousand")){ + transcript=transcript.replace(/thousand/g, "1000"); + }if(transcript.includes("hundred")){ + transcript=transcript.replace(/hundred/g, "100"); + }if(transcript.includes("ten")){ + transcript=transcript.replace(/ten/g, "10"); + }if(transcript.includes("one")){ + transcript=transcript.replace(/one/g, "1"); + }if(transcript.includes("lakh")){ + transcript=transcript.replace(/lakh/g, "100000"); + } + output.value+=transcript; + if(document.getElementById('soltxt').value!="Invalid Expression"){ + calsol(output.value); + } + if(document.getElementById('soltxt').value=="Invalid Expression"){ + + document.getElementById('soltxt').value=""; + } + }; + try{ + recognition.start(); + }catch(e){ + recognition.stop(); + document.getElementById(logo).src="speechlogo.png"; +// document.getElementById('txt').value=''; + document.getElementById(logo).style.height="30px"; + document.getElementById(logo).style.width="20.91px" + + } + + } + function stoprecognition(output2,input2,logo2){ + recognition.stop(); + var output2 = document.getElementById(output2); + var action2 = document.getElementById(input2); + output2.value =""; + input2.value = ""; + document.getElementById(logo2).src="speechlogo.png"; + } diff --git a/js/speechrecoforall.js b/js/speechrecoforall.js new file mode 100644 index 000000000..8957fda46 --- /dev/null +++ b/js/speechrecoforall.js @@ -0,0 +1,36 @@ + var SpeechRecognitionforall = SpeechRecognition || webkitSpeechRecognition; + var recognitionforall = new SpeechRecognition(); + function runSpeechRecognitionforall(output,logo) { + count=0; + var output = document.getElementById(output); +// var action = document.getElementById(input); + recognitionforall.onstart = function() { + var c=0; +// action.value = "Listening...."; + document.getElementById(logo).src="listening.gif"; + document.getElementById(logo).style.height="20px"; + document.getElementById(logo).style.width="20px"; + }; + recognitionforall.onspeechend = function() { + document.getElementById(logo).src="speechlogo.png"; + document.getElementById(logo).style.height="25px"; + document.getElementById(logo).style.width="17.41px"; + recognition.stop(); + } + recognitionforall.onresult = function(event) { + var transcript = event.results[0][0].transcript; +// if(transcript.includes("multiply")){ +// transcript=transcript.replace(/multiply/g, "*"); +// } + output.value=transcript; + }; + try{ + recognitionforall.start(); + }catch(e){ + recognitionforall.stop(); + document.getElementById(logo).src="speechlogo.png"; +// document.getElementById('txt').value=''; + document.getElementById(logo).style.height="25px"; + document.getElementById(logo).style.width="17.41px" + } + } diff --git a/js/two.min.js b/js/two.min.js new file mode 100644 index 000000000..ffe00a5bf --- /dev/null +++ b/js/two.min.js @@ -0,0 +1 @@ +(this||self||window).Two=function(t){var e;e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this;var i=Object.prototype.toString,r={_indexAmount:0,natural:{slice:Array.prototype.slice,indexOf:Array.prototype.indexOf,keys:Object.keys,bind:Function.prototype.bind,create:Object.create},identity:function(t){return t},isArguments:function(t){return"[object Arguments]"===i.call(t)},isFunction:function(t){return"[object Function]"===i.call(t)},isString:function(t){return"[object String]"===i.call(t)},isNumber:function(t){return"[object Number]"===i.call(t)},isDate:function(t){return"[object Date]"===i.call(t)},isRegExp:function(t){return"[object RegExp]"===i.call(t)},isError:function(t){return"[object Error]"===i.call(t)},isFinite:function(t){return isFinite(t)&&!isNaN(parseFloat(t))},isNaN:function(t){return r.isNumber(t)&&t!==+t},isBoolean:function(t){return!0===t||!1===t||"[object Boolean]"===i.call(t)},isNull:function(t){return null===t},isUndefined:function(t){return void 0===t},isEmpty:function(t){return null==t||(m&&(r.isArray(t)||r.isString(t)||r.isArguments(t))?0===t.length:0===r.keys(t).length)},isElement:function(t){return!(!t||1!==t.nodeType)},isArray:Array.isArray||function(t){return"[object Array]"===i.call(t)},isObject:function(t){var e=typeof t;return"function"===e||"object"===e&&!!t},toArray:function(t){return t?r.isArray(t)?_.call(t):m(t)?r.map(t,r.identity):r.values(t):[]},range:function(t,e,i){null==e&&(e=t||0,t=0),i=i||1;for(var r=Math.max(Math.ceil((e-t)/i),0),s=Array(r),n=0;n=0&&i<=p},v={temp:e.document?e.document.createElement("div"):{},hasEventListeners:r.isFunction(e.addEventListener),bind:function(t,e,i,r){return this.hasEventListeners?t.addEventListener(e,i,!!r):t.attachEvent("on"+e,i),v},unbind:function(t,e,i,r){return v.hasEventListeners?t.removeEventListeners(e,i,!!r):t.detachEvent("on"+e,i),v},getRequestAnimationFrame:function(){var t,i=0,s=["ms","moz","webkit","o"],n=e.requestAnimationFrame;if(!n){for(var a=0;a=0&&e.splice(a,1)}return e},applySvgViewBox:function(t,e){var i=e.split(/\s/),r=parseFloat(i[0]),s=parseFloat(i[1]),n=parseFloat(i[2]),a=parseFloat(i[3]),o=Math.min(this.width/n,this.height/a);return t.translation.x-=r*o,t.translation.y-=s*o,t.scale=o,t},applySvgAttributes:function(t,i,s){var n,a,o,l,h={},c={},d={};if(e.getComputedStyle){var f=e.getComputedStyle(t);for(n=f.length;n--;)o=f[a=f[n]],r.isUndefined(o)||(h[a]=o)}for(n=0;n0?t.transform.baseVal[0].matrix:t.getCTM?t.getCTM():null;if(r.isNull(u))break;var _=y.Utils.decomposeMatrix(u);i.translation.set(_.translateX,_.translateY),i.rotation=Math.PI*(_.rotation/180),i.scale=new y.Vector(_.scaleX,_.scaleY);var g=parseFloat((h.x+"").replace("px")),p=parseFloat((h.y+"").replace("px"));g&&(i.translation.x=g),p&&(i.translation.y=p);break;case"viewBox":y.Utils.applySvgViewBox.call(this,i,o);break;case"visible":if(i instanceof y.Group){i._visible=o;break}i.visible=o;break;case"stroke-linecap":if(i instanceof y.Group){i._cap=o;break}i.cap=o;break;case"stroke-linejoin":if(i instanceof y.Group){i._join=o;break}i.join=o;break;case"stroke-miterlimit":if(i instanceof y.Group){i._miter=o;break}i.miter=o;break;case"stroke-width":if(i instanceof y.Group){i._linewidth=parseFloat(o);break}i.linewidth=parseFloat(o);break;case"opacity":case"stroke-opacity":case"fill-opacity":if(i instanceof y.Group){i._opacity=parseFloat(o);break}i.opacity=parseFloat(o);break;case"fill":case"stroke":if(i instanceof y.Group&&(a="_"+a),/url\(#.*\)/i.test(o)){var m=y.Utils.getScene(this);i[a]=m.getById(o.replace(/url\(#(.*)\)/i,"$1"))}else i[a]=/none/i.test(o)?"transparent":o;break;case"id":i.id=o,t.id=o+"-"+y.Identifier+"applied";break;case"class":case"className":i.classList=o.split(" ")}return h},getScene:function(t){for(;t.parent;)t=t.parent;return t.scene},read:{svg:function(t){var e=y.Utils.read.g.call(this,t);t.getAttribute("viewBox");return e},defs:function(t){var e=new y.Utils.Error("interpret not supported.");return console.warn(e.name,e.message),null},use:function(t){var e=new y.Utils.Error("interpret not supported.");return console.warn(e.name,e.message),null},g:function(t,e){var i,r=new y.Group;y.Utils.applySvgAttributes.call(this,t,r,e),this.add(r),i=y.Utils.getSvgStyles.call(this,t);for(var s=0,n=t.childNodes.length;s1&&(c=1);break;case"m":case"l":case"t":_.length>2&&(c=2);break;case"s":case"q":_.length>4&&(c=4);break;case"c":_.length>6&&(c=6);break;case"a":_.length>7&&(c=7)}if(c){for(a=0,l=_.length,h=0;a0)switch(f){case"m":o="l";break;case"M":o="L"}g.push(o+_.slice(a,a+c).join(" ")),h++}d=Array.prototype.concat.apply(d,g)}else d.push(t)})),r.each(d,(function(t,e){var i,d,u,_,g,p,m,v,x,b,w,k,S=t[0],A=S.toLowerCase();switch(l=(l=(l=t.slice(1).trim()).replace(/(-?\d+(?:\.\d*)?)[eE]([+-]?\d+)/g,(function(t,e,i){return parseFloat(e)*c(10,i)}))).split(/[\s,]+|(?=\s?[+-])/),a=S===A,A){case"z":if(e>=f)n=!0;else{d=h.x,u=h.y,i=new y.Anchor(d,u,void 0,void 0,void 0,void 0,y.Commands.close);for(var C=s.length-1;C>=0;C--){var R=s[C];if(/m/i.test(R.command)){h=R;break}}}break;case"m":case"l":o=void 0,d=parseFloat(l[0]),u=parseFloat(l[1]),i=new y.Anchor(d,u,void 0,void 0,void 0,void 0,/m/i.test(A)?y.Commands.move:y.Commands.line),a&&i.addSelf(h),h=i;break;case"h":case"v":var F=/h/i.test(A)?"x":"y",M=/x/i.test(F)?"y":"x";(i=new y.Anchor(void 0,void 0,void 0,void 0,void 0,void 0,y.Commands.line))[F]=parseFloat(l[0]),i[M]=h[M],a&&(i[F]+=h[F]),h=i;break;case"c":case"s":_=h.x,g=h.y,o||(o=new y.Vector),/c/i.test(A)?(p=parseFloat(l[0]),m=parseFloat(l[1]),v=parseFloat(l[2]),x=parseFloat(l[3]),b=parseFloat(l[4]),w=parseFloat(l[5])):(p=(k=E(h,o,a)).x,m=k.y,v=parseFloat(l[0]),x=parseFloat(l[1]),b=parseFloat(l[2]),w=parseFloat(l[3])),a&&(p+=_,m+=g,v+=_,x+=g,b+=_,w+=g),r.isObject(h.controls)||y.Anchor.AppendCurveProperties(h),h.controls.right.set(p-h.x,m-h.y),i=new y.Anchor(b,w,v-b,x-w,void 0,void 0,y.Commands.curve),h=i,o=i.controls.left;break;case"t":case"q":_=h.x,g=h.y,o||(o=new y.Vector),/q/i.test(A)?(p=parseFloat(l[0]),m=parseFloat(l[1]),v=parseFloat(l[0]),x=parseFloat(l[1]),b=parseFloat(l[2]),w=parseFloat(l[3])):(p=(k=E(h,o,a)).x,m=k.y,v=k.x,x=k.y,b=parseFloat(l[0]),w=parseFloat(l[1])),a&&(p+=_,m+=g,v+=_,x+=g,b+=_,w+=g),r.isObject(h.controls)||y.Anchor.AppendCurveProperties(h),h.controls.right.set(.33*(p-h.x),.33*(m-h.y)),i=new y.Anchor(b,w,v-b,x-w,void 0,void 0,y.Commands.curve),h=i,o=i.controls.left;break;case"a":_=h.x,g=h.y;var O=parseFloat(l[0]),P=parseFloat(l[1]),U=parseFloat(l[2]),T=parseFloat(l[3]),N=parseFloat(l[4]);b=parseFloat(l[5]),w=parseFloat(l[6]),a&&(b+=_,w+=g);var L=new y.Anchor(b,w);L.command=y.Commands.arc,L.rx=O,L.ry=P,L.xAxisRotation=U,L.largeArcFlag=T,L.sweepFlag=N,i=L,h=L,o=void 0}i&&(r.isArray(i)?s=s.concat(i):s.push(i))}))}(i=new y.Path(s,n,void 0,!0).noStroke()).fill="black";var u=i.getBoundingClientRect(!0);return u.centroid={x:u.left+u.width/2,y:u.top+u.height/2},r.each(i.vertices,(function(t){t.subSelf(u.centroid)})),y.Utils.applySvgAttributes.call(this,t,i,e),i.translation.addSelf(u.centroid),i},circle:function(t,e){var i=parseFloat(t.getAttribute("cx")),r=parseFloat(t.getAttribute("cy")),s=parseFloat(t.getAttribute("r")),n=new y.Circle(i,r,s).noStroke();return n.fill="black",y.Utils.applySvgAttributes.call(this,t,n,e),n},ellipse:function(t,e){var i=parseFloat(t.getAttribute("cx")),r=parseFloat(t.getAttribute("cy")),s=parseFloat(t.getAttribute("rx")),n=parseFloat(t.getAttribute("ry")),a=new y.Ellipse(i,r,s,n).noStroke();return a.fill="black",y.Utils.applySvgAttributes.call(this,t,a,e),a},rect:function(t,e){var i=parseFloat(t.getAttribute("rx")),s=parseFloat(t.getAttribute("ry"));if(!r.isNaN(i)||!r.isNaN(s))return y.Utils.read["rounded-rect"](t);var n=parseFloat(t.getAttribute("x"))||0,a=parseFloat(t.getAttribute("y"))||0,o=parseFloat(t.getAttribute("width")),l=parseFloat(t.getAttribute("height")),h=o/2,c=l/2,d=new y.Rectangle(n+h,a+c,o,l).noStroke();return d.fill="black",y.Utils.applySvgAttributes.call(this,t,d,e),d},"rounded-rect":function(t,e){var i=parseFloat(t.getAttribute("x"))||0,r=parseFloat(t.getAttribute("y"))||0,s=parseFloat(t.getAttribute("rx"))||0,n=parseFloat(t.getAttribute("ry"))||0,a=parseFloat(t.getAttribute("width")),o=parseFloat(t.getAttribute("height")),l=a/2,h=o/2,c=new y.Vector(s,n),d=new y.RoundedRectangle(i+l,r+h,a,o,c).noStroke();return d.fill="black",y.Utils.applySvgAttributes.call(this,t,d,e),d},line:function(t,e){var i=parseFloat(t.getAttribute("x1")),r=parseFloat(t.getAttribute("y1")),s=parseFloat(t.getAttribute("x2")),n=parseFloat(t.getAttribute("y2")),a=new y.Line(i,r,s,n).noFill();return y.Utils.applySvgAttributes.call(this,t,a,e),a},lineargradient:function(t,e){for(var i=parseFloat(t.getAttribute("x1")),s=parseFloat(t.getAttribute("y1")),n=parseFloat(t.getAttribute("x2")),a=parseFloat(t.getAttribute("y2")),o=(n+i)/2,l=(a+s)/2,h=[],c=0;c1?u[1]:void 0),g=r.isNull(g)?(u=!!p&&p.match(/stop-opacity:\s?([0-9.-]*)/))&&u.length>1?parseFloat(u[1]):1:parseFloat(g),h.push(new y.Gradient.Stop(f,_,g))}var m=new y.LinearGradient(i-o,s-l,n-o,a-l,h);return y.Utils.applySvgAttributes.call(this,t,m,e),m},radialgradient:function(t,e){var i=parseFloat(t.getAttribute("cx"))||0,s=parseFloat(t.getAttribute("cy"))||0,n=parseFloat(t.getAttribute("r")),a=parseFloat(t.getAttribute("fx")),l=parseFloat(t.getAttribute("fy"));r.isNaN(a)&&(a=i),r.isNaN(l)&&(l=s);for(var h=o(i+a)/2,c=o(s+l)/2,d=[],f=0;f1?g[1]:void 0),m=r.isNull(m)?(g=!!v&&v.match(/stop-opacity:\s?([0-9.-]*)/))&&g.length>1?parseFloat(g[1]):1:parseFloat(m),d.push(new y.Gradient.Stop(_,p,m))}var x=new y.RadialGradient(i-h,s-c,n,d,a-h,l-c);return y.Utils.applySvgAttributes.call(this,t,x,e),x}},subdivide:function(t,e,i,r,s,n,a,l,h){var c=(h=h||y.Utils.Curve.RecursionLimit)+1;if(o(t-a)<.001&&o(e-l)<.001)return[new y.Anchor(a,l)];for(var d=[],f=0;f>1,c=1&r?n[l++]*t(o):0;l1?Array.prototype.push.apply(this,arguments):arguments[0]&&Array.isArray(arguments[0])&&Array.prototype.push.apply(this,arguments[0])},Error:function(t){this.name="Two.js",this.message=t},Events:{on:function(t,e){return this._events||(this._events={}),(this._events[t]||(this._events[t]=[])).push(e),this},off:function(t,e){if(!this._events)return this;if(!t&&!e)return this._events={},this;for(var i=t?[t]:r.keys(this._events),s=0,n=i.length;s2&&(t=this.slice(arguments[0],arguments[0]+arguments.length-2),this.trigger(y.Events.insert,t),this.trigger(y.Events.order)),e},sort:function(){return Array.prototype.sort.apply(this,arguments),this.trigger(y.Events.order),this},reverse:function(){return Array.prototype.reverse.apply(this,arguments),this.trigger(y.Events.order),this}});y.Utils.getAnchorsFromArcData;var b=y.Utils.getControlPoints,w=(y.Utils.getCurveFromPoints,y.Utils.solveSegmentIntersection,y.Utils.decoupleShapes,y.Utils.mod),k=y.Utils.getBackingStoreRatio,S=y.Utils.getComponentOnCubicBezier,A=(y.Utils.getCurveLength,y.Utils.integrate),E=y.Utils.getReflection;function C(){var t=document.body.getBoundingClientRect(),e=this.width=t.width,i=this.height=t.height;this.renderer.setSize(e,i,this.ratio)}function R(t,e){this.width=t,this.height=e,this.trigger(y.Events.resize,t,e)}r.extend(y.prototype,y.Utils.Events,{constructor:y,appendTo:function(t){return t.appendChild(this.renderer.domElement),this},play:function(){return y.Utils.setPlaying.call(this,!0),F.init(),this.trigger(y.Events.play)},pause:function(){return this.playing=!1,this.trigger(y.Events.pause)},update:function(){var t=!!this._lastFrame,e=g.now();t&&(this.timeDelta=parseFloat((e-this._lastFrame).toFixed(3))),this._lastFrame=e;var i=this.width,r=this.height,s=this.renderer;return i===s.width&&r===s.height||s.setSize(i,r,this.ratio),this.trigger(y.Events.update,this.frameCount,this.timeDelta),this.render()},render:function(){return this.renderer.render(),this.trigger(y.Events.render,this.frameCount++)},add:function(t){var e=t;return e instanceof Array||(e=r.toArray(arguments)),this.scene.add(e),this},remove:function(t){var e=t;return e instanceof Array||(e=r.toArray(arguments)),this.scene.remove(e),this},clear:function(){return this.scene.remove(this.scene.children),this},makeLine:function(t,e,i,r){var s=new y.Line(t,e,i,r);return this.scene.add(s),s},makeArrow:function(t,e,i,s,n){var a=r.isNumber(n)?n:10,o=Math.atan2(s-e,i-t),l=[new y.Anchor(t,e,void 0,void 0,void 0,void 0,y.Commands.move),new y.Anchor(i,s,void 0,void 0,void 0,void 0,y.Commands.line),new y.Anchor(i-a*Math.cos(o-Math.PI/4),s-a*Math.sin(o-Math.PI/4),void 0,void 0,void 0,void 0,y.Commands.line),new y.Anchor(i,s,void 0,void 0,void 0,void 0,y.Commands.move),new y.Anchor(i-a*Math.cos(o+Math.PI/4),s-a*Math.sin(o+Math.PI/4),void 0,void 0,void 0,void 0,y.Commands.line)],h=new y.Path(l,!1,!1,!0);return h.noFill(),h.cap="round",h.join="round",this.scene.add(h),h},makeRectangle:function(t,e,i,r){var s=new y.Rectangle(t,e,i,r);return this.scene.add(s),s},makeRoundedRectangle:function(t,e,i,r,s){var n=new y.RoundedRectangle(t,e,i,r,s);return this.scene.add(n),n},makeCircle:function(t,e,i,r){var s=new y.Circle(t,e,i,r);return this.scene.add(s),s},makeEllipse:function(t,e,i,r,s){var n=new y.Ellipse(t,e,i,r,s);return this.scene.add(n),n},makeStar:function(t,e,i,r,s){var n=new y.Star(t,e,i,r,s);return this.scene.add(n),n},makeCurve:function(t){var e=arguments.length,i=t;if(!r.isArray(t)){i=[];for(var s=0;s=4?(i=arguments[0]-arguments[2],r=arguments[1]-arguments[3],Math.atan2(r,i)):(i=t.x-e.x,r=t.y-e.y,Math.atan2(r,i))},distanceBetween:function(t,e){return Math.sqrt(i.distanceBetweenSquared(t,e))},distanceBetweenSquared:function(t,e){var i=t.x-e.x,r=t.y-e.y;return i*i+r*r},MakeObservable:function(i){i.bind=i.on=function(){return this._bound||(this._x=this.x,this._y=this.y,Object.defineProperty(this,"x",s),Object.defineProperty(this,"y",n),e.extend(this,r),this._bound=!0),t.Utils.Events.bind.apply(this,arguments),this}}}),e.extend(i.prototype,t.Utils.Events,{constructor:i,set:function(t,e){return this.x=t,this.y=e,this},copy:function(t){return this.x=t.x,this.y=t.y,this},clear:function(){return this.x=0,this.y=0,this},clone:function(){return new i(this.x,this.y)},add:function(t,i){return arguments.length<=0?this:(arguments.length<=1?e.isNumber(t)?(this.x+=t,this.y+=t):t&&e.isNumber(t.x)&&e.isNumber(t.y)&&(this.x+=t.x,this.y+=t.y):(this.x+=t,this.y+=i),this)},addSelf:function(t){return this.add.apply(this,arguments)},sub:function(t,i){return arguments.length<=0?this:(arguments.length<=1?e.isNumber(t)?(this.x-=t,this.y-=t):t&&e.isNumber(t.x)&&e.isNumber(t.y)&&(this.x-=t.x,this.y-=t.y):(this.x-=t,this.y-=i),this)},subtract:function(){return this.sub.apply(this,arguments)},subSelf:function(t){return this.sub.apply(this,arguments)},subtractSelf:function(t){return this.sub.apply(this,arguments)},multiply:function(t,i){return arguments.length<=0?this:(arguments.length<=1?e.isNumber(t)?(this.x*=t,this.y*=t):t&&e.isNumber(t.x)&&e.isNumber(t.y)&&(this.x*=t.x,this.y*=t.y):(this.x*=t,this.y*=i),this)},multiplySelf:function(t){return this.multiply.apply(this,arguments)},multiplyScalar:function(t){return this.multiply(t)},divide:function(t,i){return arguments.length<=0?this:(arguments.length<=1?e.isNumber(t)?(this.x/=t,this.y/=t):t&&e.isNumber(t.x)&&e.isNumber(t.y)&&(this.x/=t.x,this.y/=t.y):(this.x/=t,this.y/=i),e.isNaN(this.x)&&(this.x=0),e.isNaN(this.y)&&(this.y=0),this)},divideSelf:function(t){return this.divide.apply(this,arguments)},divideScalar:function(t){return this.divide(t)},negate:function(){return this.multiply(-1)},dot:function(t){return this.x*t.x+this.y*t.y},length:function(){return Math.sqrt(this.lengthSquared())},lengthSquared:function(){return this.x*this.x+this.y*this.y},normalize:function(){return this.divideScalar(this.length())},distanceTo:function(t){return Math.sqrt(this.distanceToSquared(t))},distanceToSquared:function(t){var e=this.x-t.x,i=this.y-t.y;return e*e+i*i},setLength:function(t){return this.normalize().multiplyScalar(t)},equals:function(t,e){return e=void 0===e?1e-4:e,this.distanceTo(t)0&&this.set(l)};s.extend(a,{Identity:[1,0,0,0,1,0,0,0,1],Multiply:function(e,i,r){if(i.length<=3){var s=e,n=i[0]||0,a=i[1]||0,o=i[2]||0;return{x:s[0]*n+s[1]*a+s[2]*o,y:s[3]*n+s[4]*a+s[5]*o,z:s[6]*n+s[7]*a+s[8]*o}}var l=e[0],h=e[1],c=e[2],d=e[3],f=e[4],u=e[5],_=e[6],g=e[7],p=e[8],m=i[0],v=i[1],y=i[2],x=i[3],b=i[4],w=i[5],k=i[6],S=i[7],A=i[8];return(r=r||new t.Array(9))[0]=l*m+h*x+c*k,r[1]=l*v+h*b+c*S,r[2]=l*y+h*w+c*A,r[3]=d*m+f*x+u*k,r[4]=d*v+f*b+u*S,r[5]=d*y+f*w+u*A,r[6]=_*m+g*x+p*k,r[7]=_*v+g*b+p*S,r[8]=_*y+g*w+p*A,r}}),s.extend(a.prototype,t.Utils.Events,{constructor:a,manual:!1,set:function(e,i,r,n,a,o,l,h,c){var d;return s.isUndefined(i)&&(e=(d=e)[0],i=d[1],r=d[2],n=d[3],a=d[4],o=d[5],l=d[6],h=d[7],c=d[8]),this.elements[0]=e,this.elements[1]=i,this.elements[2]=r,this.elements[3]=n,this.elements[4]=a,this.elements[5]=o,this.elements[6]=l,this.elements[7]=h,this.elements[8]=c,this.trigger(t.Events.change)},copy:function(e){return this.elements[0]=e.elements[0],this.elements[1]=e.elements[1],this.elements[2]=e.elements[2],this.elements[3]=e.elements[3],this.elements[4]=e.elements[4],this.elements[5]=e.elements[5],this.elements[6]=e.elements[6],this.elements[7]=e.elements[7],this.elements[8]=e.elements[8],this.manual=e.manual,this.trigger(t.Events.change)},identity:function(){return this.elements[0]=a.Identity[0],this.elements[1]=a.Identity[1],this.elements[2]=a.Identity[2],this.elements[3]=a.Identity[3],this.elements[4]=a.Identity[4],this.elements[5]=a.Identity[5],this.elements[6]=a.Identity[6],this.elements[7]=a.Identity[7],this.elements[8]=a.Identity[8],this.trigger(t.Events.change)},multiply:function(e,i,r,n,a,o,l,h,c){if(s.isUndefined(i))return this.elements[0]*=e,this.elements[1]*=e,this.elements[2]*=e,this.elements[3]*=e,this.elements[4]*=e,this.elements[5]*=e,this.elements[6]*=e,this.elements[7]*=e,this.elements[8]*=e,this.trigger(t.Events.change);if(s.isUndefined(n))return e=e||0,i=i||0,r=r||0,{x:(a=this.elements)[0]*e+a[1]*i+a[2]*r,y:a[3]*e+a[4]*i+a[5]*r,z:a[6]*e+a[7]*i+a[8]*r};var d=this.elements,f=[e,i,r,n,a,o,l,h,c],u=d[0],_=d[1],g=d[2],p=d[3],m=d[4],v=d[5],y=d[6],x=d[7],b=d[8],w=f[0],k=f[1],S=f[2],A=f[3],E=f[4],C=f[5],R=f[6],F=f[7],M=f[8];return this.elements[0]=u*w+_*A+g*R,this.elements[1]=u*k+_*E+g*F,this.elements[2]=u*S+_*C+g*M,this.elements[3]=p*w+m*A+v*R,this.elements[4]=p*k+m*E+v*F,this.elements[5]=p*S+m*C+v*M,this.elements[6]=y*w+x*A+b*R,this.elements[7]=y*k+x*E+b*F,this.elements[8]=y*S+x*C+b*M,this.trigger(t.Events.change)},inverse:function(e){var i=this.elements;e=e||new t.Matrix;var r=i[0],s=i[1],n=i[2],a=i[3],o=i[4],l=i[5],h=i[6],c=i[7],d=i[8],f=d*o-l*c,u=-d*a+l*h,_=c*a-o*h,g=r*f+s*u+n*_;return g?(g=1/g,e.elements[0]=f*g,e.elements[1]=(-d*s+n*c)*g,e.elements[2]=(l*s-n*o)*g,e.elements[3]=u*g,e.elements[4]=(d*r-n*h)*g,e.elements[5]=(-l*r+n*a)*g,e.elements[6]=_*g,e.elements[7]=(-c*r+s*h)*g,e.elements[8]=(o*r-s*a)*g,e):null},scale:function(t,e){var i=arguments.length;return i<=1&&(e=t),this.multiply(t,0,0,0,e,0,0,0,1)},rotate:function(t){var r=e(t),s=i(t);return this.multiply(r,-s,0,s,r,0,0,0,1)},translate:function(t,e){return this.multiply(1,0,t,0,1,e,0,0,1)},skewX:function(t){var e=r(t);return this.multiply(1,e,0,0,1,0,0,0,1)},skewY:function(t){var e=r(t);return this.multiply(1,0,0,e,1,0,0,0,1)},toString:function(e){return n.length=0,this.toTransformArray(e,n),n.map(t.Utils.toFixed).join(" ")},toTransformArray:function(t,e){var i=this.elements,r=!!e,s=i[0],n=i[1],a=i[2],o=i[3],l=i[4],h=i[5];if(t){var c=i[6],d=i[7],f=i[8];return r?(e[0]=s,e[1]=o,e[2]=c,e[3]=n,e[4]=l,e[5]=d,e[6]=a,e[7]=h,void(e[8]=f)):[s,o,c,n,l,d,a,h,f]}return r?(e[0]=s,e[1]=o,e[2]=n,e[3]=l,e[4]=a,void(e[5]=h)):[s,o,n,l,a,h]},toArray:function(t,e){var i=this.elements,r=!!e,s=i[0],n=i[1],a=i[2],o=i[3],l=i[4],h=i[5];if(t){var c=i[6],d=i[7],f=i[8];return r?(e[0]=s,e[1]=n,e[2]=a,e[3]=o,e[4]=l,e[5]=h,e[6]=c,e[7]=d,void(e[8]=f)):[s,n,a,o,l,h,c,d,f]}return r?(e[0]=s,e[1]=n,e[2]=a,e[3]=o,e[4]=l,void(e[5]=h)):[s,n,a,o,l,h]},toObject:function(){return{elements:this.toArray(!0),manual:!!this.manual}},clone:function(){return(new t.Matrix).copy(this)}})}(("undefined"!=typeof global?global:this||self||window).Two),function(t){var e=t.Utils.mod,i=t.Utils.toFixed,r=t.Utils,s={version:1.1,ns:"http://www.w3.org/2000/svg",xlink:"http://www.w3.org/1999/xlink",alignments:{left:"start",center:"middle",right:"end"},createElement:function(t,e){var i=t,n=document.createElementNS(s.ns,i);return"svg"===i&&(e=r.defaults(e||{},{version:s.version})),r.isEmpty(e)||s.setAttributes(n,e),n},setAttributes:function(t,e){for(var i=Object.keys(e),r=0;r=o&&s&&(S.command===t.Commands.curve&&(R=n,m=S.controls&&S.controls.right||S,v=R.controls&&R.controls.left||R,S.relative?(d=i(m.x+S.x),f=i(m.y+S.y)):(d=i(m.x),f=i(m.y)),R.relative?(u=i(v.x+R.x),_=i(v.y+R.y)):(u=i(v.x),_=i(v.y)),c+=" C "+d+" "+f+" "+u+" "+_+" "+(F=i(R.x))+" "+(M=i(R.y))),S.command!==t.Commands.close&&(c+=" Z")),l+=c+" "}return l},getClip:function(t){var e=t._renderer.clip;if(!e){for(var i=t;i.parent;)i=i.parent;e=t._renderer.clip=s.createElement("clipPath"),i.defs.appendChild(e)}return e},group:{appendChild:function(t){var e=t._renderer.elem;if(e){var i=e.nodeName;!i||/(radial|linear)gradient/i.test(i)||t._clip||this.elem.appendChild(e)}},removeChild:function(t){var e=t._renderer.elem;e&&e.parentNode==this.elem&&(e.nodeName&&(t._clip||this.elem.removeChild(e)))},orderChild:function(t){this.elem.appendChild(t._renderer.elem)},renderChild:function(t){s[t._renderer.type].render.call(t,this)},render:function(t){if(this._update(),0===this._opacity&&!this._flagOpacity)return this;this._renderer.elem||(this._renderer.elem=s.createElement("g",{id:this.id}),t.appendChild(this._renderer.elem));var e=this._matrix.manual||this._flagMatrix,i={domElement:t,elem:this._renderer.elem};e&&this._renderer.elem.setAttribute("transform","matrix("+this._matrix.toString()+")");for(var r=0;r0&&(e["stroke-dasharray"]=this.dashes.join(" "),e["stroke-dashoffset"]=this.dashes.offset||0),this._renderer.elem?s.setAttributes(this._renderer.elem,e):(e.id=this.id,this._renderer.elem=s.createElement("path",e),t.appendChild(this._renderer.elem)),this._flagClip){var r=s.getClip(this),n=this._renderer.elem;this._clip?(n.removeAttribute("id"),r.setAttribute("id",this.id),r.appendChild(n)):(r.removeAttribute("id"),n.setAttribute("id",this.id),this.parent._renderer.elem.appendChild(n))}return this.flagReset()}},text:{render:function(t){this._update();var e={};if((this._matrix.manual||this._flagMatrix)&&(e.transform="matrix("+this._matrix.toString()+")"),this._flagFamily&&(e["font-family"]=this._family),this._flagSize&&(e["font-size"]=this._size),this._flagLeading&&(e["line-height"]=this._leading),this._flagAlignment&&(e["text-anchor"]=s.alignments[this._alignment]||this._alignment),this._flagBaseline&&(e["alignment-baseline"]=e["dominant-baseline"]=this._baseline),this._flagStyle&&(e["font-style"]=this._style),this._flagWeight&&(e["font-weight"]=this._weight),this._flagDecoration&&(e["text-decoration"]=this._decoration),this._fill&&this._fill._renderer&&(this._fill._update(),s[this._fill._renderer.type].render.call(this._fill,t,!0)),this._flagFill&&(e.fill=this._fill&&this._fill.id?"url(#"+this._fill.id+")":this._fill),this._stroke&&this._stroke._renderer&&(this._stroke._update(),s[this._stroke._renderer.type].render.call(this._stroke,t,!0)),this._flagStroke&&(e.stroke=this._stroke&&this._stroke.id?"url(#"+this._stroke.id+")":this._stroke),this._flagLinewidth&&(e["stroke-width"]=this._linewidth),this._flagOpacity&&(e.opacity=this._opacity),this._flagClassName&&(e.class=this.classList.join(" ")),this._flagVisible&&(e.visibility=this._visible?"visible":"hidden"),this.dashes&&this.dashes.length>0&&(e["stroke-dasharray"]=this.dashes.join(" "),e["stroke-dashoffset"]=this.dashes.offset||0),this._renderer.elem?s.setAttributes(this._renderer.elem,e):(e.id=this.id,this._renderer.elem=s.createElement("text",e),t.defs.appendChild(this._renderer.elem)),this._flagClip){var i=s.getClip(this),r=this._renderer.elem;this._clip?(r.removeAttribute("id"),i.setAttribute("id",this.id),i.appendChild(r)):(i.removeAttribute("id"),r.setAttribute("id",this.id),this.parent._renderer.elem.appendChild(r))}return this._flagValue&&(this._renderer.elem.textContent=this._value),this.flagReset()}},"linear-gradient":{render:function(t,e){e||this._update();var i={};if(this._flagEndPoints&&(i.x1=this.left._x,i.y1=this.left._y,i.x2=this.right._x,i.y2=this.right._y),this._flagSpread&&(i.spreadMethod=this._spread),this._renderer.elem?s.setAttributes(this._renderer.elem,i):(i.id=this.id,i.gradientUnits="userSpaceOnUse",this._renderer.elem=s.createElement("linearGradient",i),t.defs.appendChild(this._renderer.elem)),this._flagStops){var r=this._renderer.elem.childNodes.length!==this.stops.length;if(r)for(;this._renderer.elem.lastChild;)this._renderer.elem.removeChild(this._renderer.elem.lastChild);for(var n=0;n0&&(n.x*=-1),n.y>0&&(n.y*=-1)),(this._flagScale||this._flagLoaded||this._flagRepeat)&&(n.width=0,n.height=0,o)){switch(a.width=n.width=o.width,a.height=n.height=o.height,this._repeat){case"no-repeat":n.width+=1,n.height+=1}this._scale instanceof t.Vector?(n.width*=this._scale.x,n.height*=this._scale.y):(n.width*=this._scale,n.height*=this._scale)}return(this._flagScale||this._flagLoaded)&&(this._renderer.image?r.isEmpty(a)||s.setAttributes(this._renderer.image,a):this._renderer.image=s.createElement("image",a)),this._renderer.elem?r.isEmpty(n)||s.setAttributes(this._renderer.elem,n):(n.id=this.id,n.patternUnits="userSpaceOnUse",this._renderer.elem=s.createElement("pattern",n),e.defs.appendChild(this._renderer.elem)),this._renderer.elem&&this._renderer.image&&!this._renderer.appended&&(this._renderer.elem.appendChild(this._renderer.image),this._renderer.appended=!0),this.flagReset()}}},n=t[t.Types.svg]=function(e){this.domElement=e.domElement||s.createElement("svg"),this.scene=new t.Group,this.scene.parent=this,this.defs=s.createElement("defs"),this.domElement.appendChild(this.defs),this.domElement.defs=this.defs,this.domElement.style.overflow="hidden"};r.extend(n,{Utils:s}),r.extend(n.prototype,t.Utils.Events,{constructor:n,setSize:function(e,i){return this.width=e,this.height=i,s.setAttributes(this.domElement,{width:e,height:i}),this.trigger(t.Events.resize,e,i)},render:function(){return s.group.render.call(this.scene,this.domElement),this}})}(("undefined"!=typeof global?global:this||self||window).Two),function(t){var e=t.Utils.mod,i=t.Utils.getRatio,r=t.Utils,s=[],n=2*Math.PI,a=Math.max,o=Math.min,l=Math.abs,h=Math.sin,c=Math.cos,d=Math.acos,f=Math.sqrt,u=function(t){return 1==t[0]&&0==t[3]&&0==t[1]&&1==t[4]&&0==t[2]&&0==t[5]},_={isHidden:/(undefined|none|transparent)/i,alignments:{left:"start",middle:"center",right:"end"},shim:function(t,e){return t.tagName=t.nodeName=e||"canvas",t.nodeType=1,t.getAttribute=function(t){return this[t]},t.setAttribute=function(t,e){return this[t]=e,this},t},group:{renderChild:function(t){_[t._renderer.type].render.call(t,this.ctx,!0,this.clip)},render:function(t){this._update();var e=this._matrix.elements,i=this.parent;this._renderer.opacity=this._opacity*(i&&i._renderer?i._renderer.opacity:1);var r=this._mask,s=u(e),n=!s||!!r;if(this._renderer.context||(this._renderer.context={}),this._renderer.context.ctx=t,n&&(t.save(),s||t.transform(e[0],e[3],e[1],e[4],e[2],e[5])),r&&_[r._renderer.type].render.call(r,t,!0),this.opacity>0&&0!==this.scale)for(var a=0;a0&&(i.lineDashOffset=z.offset||0,i.setLineDash(z)),i.beginPath();for(var D=0;D=w&&y&&(C=R,N=E.controls&&E.controls.right||t.Vector.zero,L=C.controls&&C.controls.left||t.Vector.zero,E._relative?(O=N.x+E.x,P=N.y+E.y):(O=N.x,P=N.y),C._relative?(F=L.x+C.x,M=L.y+C.y):(F=L.x,M=L.y),j=C.x,V=C.y,i.bezierCurveTo(O,P,F,M,j,V));break;case t.Commands.line:i.lineTo(j,V);break;case t.Commands.move:R=E,i.moveTo(j,V)}return y&&i.closePath(),I||o||(_.isHidden.test(d)||((B=d._renderer&&d._renderer.offset)&&(i.save(),i.translate(-d._renderer.offset.x,-d._renderer.offset.y),i.scale(d._renderer.scale.x,d._renderer.scale.y)),i.fill(),B&&i.restore()),_.isHidden.test(h)||((B=h._renderer&&h._renderer.offset)&&(i.save(),i.translate(-h._renderer.offset.x,-h._renderer.offset.y),i.scale(h._renderer.scale.x,h._renderer.scale.y),i.lineWidth=c/h._renderer.scale.x),i.stroke(),B&&i.restore())),G||i.restore(),I&&!o&&i.clip(),z&&z.length>0&&i.setLineDash(s),this.flagReset()}},text:{render:function(t,e,i){this._update();var n,a,o,l,h,c,d,f=this._matrix.elements,g=this._stroke,p=this._linewidth,m=this._fill,v=this._opacity*this.parent._renderer.opacity,y=this._visible,x=u(f),b=m._renderer&&m._renderer.offset&&g._renderer&&g._renderer.offset,w=this.dashes,k=this._clip;return e||y&&!k?(x||(t.save(),t.transform(f[0],f[3],f[1],f[4],f[2],f[5])),b||(t.font=[this._style,this._weight,this._size+"px/"+this._leading+"px",this._family].join(" ")),t.textAlign=_.alignments[this._alignment]||this._alignment,t.textBaseline=this._baseline,m&&(r.isString(m)?t.fillStyle=m:(_[m._renderer.type].render.call(m,t),t.fillStyle=m._renderer.effect)),g&&(r.isString(g)?t.strokeStyle=g:(_[g._renderer.type].render.call(g,t),t.strokeStyle=g._renderer.effect),p&&(t.lineWidth=p)),r.isNumber(v)&&(t.globalAlpha=v),w&&w.length>0&&(t.lineDashOffset=w.offset||0,t.setLineDash(w)),k||i||(_.isHidden.test(m)||(m._renderer&&m._renderer.offset?(c=m._renderer.scale.x,d=m._renderer.scale.y,t.save(),t.translate(-m._renderer.offset.x,-m._renderer.offset.y),t.scale(c,d),n=this._size/m._renderer.scale.y,a=this._leading/m._renderer.scale.y,t.font=[this._style,this._weight,n+"px/",a+"px",this._family].join(" "),o=m._renderer.offset.x/m._renderer.scale.x,l=m._renderer.offset.y/m._renderer.scale.y,t.fillText(this.value,o,l),t.restore()):t.fillText(this.value,0,0)),_.isHidden.test(g)||(g._renderer&&g._renderer.offset?(c=g._renderer.scale.x,d=g._renderer.scale.y,t.save(),t.translate(-g._renderer.offset.x,-g._renderer.offset.y),t.scale(c,d),n=this._size/g._renderer.scale.y,a=this._leading/g._renderer.scale.y,t.font=[this._style,this._weight,n+"px/",a+"px",this._family].join(" "),o=g._renderer.offset.x/g._renderer.scale.x,l=g._renderer.offset.y/g._renderer.scale.y,h=p/g._renderer.scale.x,t.lineWidth=h,t.strokeText(this.value,o,l),t.restore()):t.strokeText(this.value,0,0))),x||t.restore(),k&&!i&&t.clip(),w&&w.length>0&&t.setLineDash(s),this.flagReset()):this}},"linear-gradient":{render:function(t){if(this._update(),!this._renderer.effect||this._flagEndPoints||this._flagStops){this._renderer.effect=t.createLinearGradient(this.left._x,this.left._y,this.right._x,this.right._y);for(var e=0;e1){var R=f(C);k=(o*=R)*o,S=(d*=R)*d}var F=k*E+S*A,M=f(a(0,(k*S-F)/F));u===_&&(M=-M);var O=M*o*w/d,P=-M*d*b/o,U=c(g)*O-h(g)*P+(r+m)/2,T=h(g)*O+c(g)*P+(s+v)/2,N=p(1,0,(b-O)/o,(w-P)/d);!function(i,r,s,a,o,l,h,c,d){var f=t.Utils.Curve.Tolerance.epsilon,u=h-l,_=Math.abs(u)0&&(k.lineDashOffset=U.offset||0,k.setLineDash(U)),k.save(),k.scale(S.x,S.y),k.translate(V,I),k.beginPath();for(var G=0;G=N&&P&&(a=L,p=B.controls&&B.controls.right||t.Vector.zero,m=a.controls&&a.controls.left||t.Vector.zero,B._relative?(f=p.x+B.x,u=p.y+B.y):(f=p.x,u=p.y),a._relative?(c=m.x+a.x,d=m.y+a.y):(c=m.x,d=m.y),v=a.x,y=a.y,k.bezierCurveTo(f,u,c,d,v,y));break;case t.Commands.line:k.lineTo(v,y);break;case t.Commands.move:L=B,k.moveTo(v,y)}}P&&k.closePath(),h.isHidden.test(C)||((x=C._renderer&&C._renderer.offset)&&(k.save(),k.translate(-C._renderer.offset.x,-C._renderer.offset.y),k.scale(C._renderer.scale.x,C._renderer.scale.y)),k.fill(),x&&k.restore()),h.isHidden.test(A)||((x=A._renderer&&A._renderer.offset)&&(k.save(),k.translate(-A._renderer.offset.x,-A._renderer.offset.y),k.scale(A._renderer.scale.x,A._renderer.scale.y),k.lineWidth=E/A._renderer.scale.x),k.stroke(),x&&k.restore()),k.restore()},getBoundingClientRect:function(t,e,i){var r,s,n=1/0,a=-1/0,o=1/0,h=-1/0;t.forEach((function(t){var e,i,r,s,l,c,d=t.x,f=t.y,u=t.controls;o=Math.min(f,o),n=Math.min(d,n),a=Math.max(d,a),h=Math.max(f,h),t.controls&&(l=u.left,c=u.right,l&&c&&(e=t._relative?l.x+d:l.x,i=t._relative?l.y+f:l.y,r=t._relative?c.x+d:c.x,s=t._relative?c.y+f:c.y,e&&i&&r&&s&&(o=Math.min(i,s,o),n=Math.min(e,r,n),a=Math.max(e,r,a),h=Math.max(i,s,h))))})),l.isNumber(e)&&(o-=e,n-=e,a+=e,h+=e),r=a-n,s=h-o,i.top=o,i.left=n,i.right=a,i.bottom=h,i.width=r,i.height=s,i.centroid||(i.centroid={}),i.centroid.x=-n,i.centroid.y=-o},render:function(e,r,s){if(!this._visible||!this._opacity)return this;this._update();var a=this.parent,o=a._matrix.manual||a._flagMatrix,l=this._matrix.manual||this._flagMatrix,c=this._flagVertices||this._flagFill||this._fill instanceof t.LinearGradient&&(this._fill._flagSpread||this._fill._flagStops||this._fill._flagEndPoints)||this._fill instanceof t.RadialGradient&&(this._fill._flagSpread||this._fill._flagStops||this._fill._flagRadius||this._fill._flagCenter||this._fill._flagFocal)||this._fill instanceof t.Texture&&(this._fill._flagLoaded&&this._fill.loaded||this._fill._flagImage||this._fill._flagVideo||this._fill._flagRepeat||this._fill._flagOffset||this._fill._flagScale)||this._stroke instanceof t.LinearGradient&&(this._stroke._flagSpread||this._stroke._flagStops||this._stroke._flagEndPoints)||this._stroke instanceof t.RadialGradient&&(this._stroke._flagSpread||this._stroke._flagStops||this._stroke._flagRadius||this._stroke._flagCenter||this._stroke._flagFocal)||this._stroke instanceof t.Texture&&(this._stroke._flagLoaded&&this._stroke.loaded||this._stroke._flagImage||this._stroke._flagVideo||this._stroke._flagRepeat||this._stroke._flagOffset||this._fill._flagScale)||this._flagStroke||this._flagLinewidth||this._flagOpacity||a._flagOpacity||this._flagVisible||this._flagCap||this._flagJoin||this._flagMiter||this._flagScale||this.dashes&&this.dashes.length>0||!this._renderer.texture;if((o||l)&&(this._renderer.matrix||(this._renderer.matrix=new t.Array(9)),this._matrix.toTransformArray(!0,n),i(n,a._renderer.matrix,this._renderer.matrix),this._renderer.scale instanceof t.Vector||(this._renderer.scale=new t.Vector),this._scale instanceof t.Vector?(this._renderer.scale.x=this._scale.x*a._renderer.scale.x,this._renderer.scale.y=this._scale.y*a._renderer.scale.y):(this._renderer.scale.x=this._scale*a._renderer.scale.x,this._renderer.scale.y=this._scale*a._renderer.scale.y)),c?(this._renderer.rect||(this._renderer.rect={}),this._renderer.opacity=this._opacity*a._renderer.opacity,h.path.getBoundingClientRect(this._renderer.vertices,this._linewidth,this._renderer.rect),h.updateTexture.call(h,e,this)):(this._fill&&this._fill._update&&this._fill._update(),this._stroke&&this._stroke._update&&this._stroke._update()),!this._clip||s){e.bindTexture(e.TEXTURE_2D,this._renderer.texture);var d=this._renderer.rect;return e.uniformMatrix3fv(r.matrix,!1,this._renderer.matrix),e.uniform4f(r.rect,d.left,d.top,d.right,d.bottom),e.drawArrays(e.TRIANGLES,0,6),this.flagReset()}}},text:{updateCanvas:function(t){var e=this.canvas,i=this.ctx,r=t._renderer.scale,s=t._stroke,n=t._linewidth*r,a=t._fill,o=t._renderer.opacity||t._opacity,c=t.dashes;e.width=Math.max(Math.ceil(t._renderer.rect.width*r.x),1),e.height=Math.max(Math.ceil(t._renderer.rect.height*r.y),1);var d,f,u,_,g,p,m,v=t._renderer.rect.centroid,y=v.x,x=v.y,b=a._renderer&&a._renderer.offset&&s._renderer&&s._renderer.offset;i.clearRect(0,0,e.width,e.height),b||(i.font=[t._style,t._weight,t._size+"px/"+t._leading+"px",t._family].join(" ")),i.textAlign="center",i.textBaseline="middle",a&&(l.isString(a)?i.fillStyle=a:(h[a._renderer.type].render.call(a,i,t),i.fillStyle=a._renderer.effect)),s&&(l.isString(s)?i.strokeStyle=s:(h[s._renderer.type].render.call(s,i,t),i.strokeStyle=s._renderer.effect),n&&(i.lineWidth=n)),l.isNumber(o)&&(i.globalAlpha=o),c&&c.length>0&&(i.lineDashOffset=c.offset||0,i.setLineDash(c)),i.save(),i.scale(r.x,r.y),i.translate(y,x),h.isHidden.test(a)||(a._renderer&&a._renderer.offset?(p=a._renderer.scale.x,m=a._renderer.scale.y,i.save(),i.translate(-a._renderer.offset.x,-a._renderer.offset.y),i.scale(p,m),d=t._size/a._renderer.scale.y,f=t._leading/a._renderer.scale.y,i.font=[t._style,t._weight,d+"px/",f+"px",t._family].join(" "),u=a._renderer.offset.x/a._renderer.scale.x,_=a._renderer.offset.y/a._renderer.scale.y,i.fillText(t.value,u,_),i.restore()):i.fillText(t.value,0,0)),h.isHidden.test(s)||(s._renderer&&s._renderer.offset?(p=s._renderer.scale.x,m=s._renderer.scale.y,i.save(),i.translate(-s._renderer.offset.x,-s._renderer.offset.y),i.scale(p,m),d=t._size/s._renderer.scale.y,f=t._leading/s._renderer.scale.y,i.font=[t._style,t._weight,d+"px/",f+"px",t._family].join(" "),u=s._renderer.offset.x/s._renderer.scale.x,_=s._renderer.offset.y/s._renderer.scale.y,g=n/s._renderer.scale.x,i.lineWidth=g,i.strokeText(t.value,u,_),i.restore()):i.strokeText(t.value,0,0)),i.restore()},getBoundingClientRect:function(t,e){var i=h.ctx;i.font=[t._style,t._weight,t._size+"px/"+t._leading+"px",t._family].join(" "),i.textAlign="center",i.textBaseline=t._baseline;var r=1.25*i.measureText(t._value).width,s=1.25*Math.max(t._size,t._leading);this._linewidth&&!h.isHidden.test(this._stroke)&&(r+=2*this._linewidth,s+=2*this._linewidth);var n=r/2,a=s/2;switch(h.alignments[t._alignment]||t._alignment){case h.alignments.left:e.left=0,e.right=r;break;case h.alignments.right:e.left=-r,e.right=0;break;default:e.left=-n,e.right=n}switch(t._baseline){case"bottom":e.top=-s,e.bottom=0;break;case"top":e.top=0,e.bottom=s;break;default:e.top=-a,e.bottom=a}e.width=r,e.height=s,e.centroid||(e.centroid={}),e.centroid.x=n,e.centroid.y=a},render:function(e,r,s){if(!this._visible||!this._opacity)return this;this._update();var a=this.parent,o=a._matrix.manual||a._flagMatrix,l=this._matrix.manual||this._flagMatrix,c=this._flagVertices||this._flagFill||this._fill instanceof t.LinearGradient&&(this._fill._flagSpread||this._fill._flagStops||this._fill._flagEndPoints)||this._fill instanceof t.RadialGradient&&(this._fill._flagSpread||this._fill._flagStops||this._fill._flagRadius||this._fill._flagCenter||this._fill._flagFocal)||this._fill instanceof t.Texture&&(this._fill._flagLoaded&&this._fill.loaded||this._fill._flagImage||this._fill._flagVideo||this._fill._flagRepeat||this._fill._flagOffset||this._fill._flagScale)||this._stroke instanceof t.LinearGradient&&(this._stroke._flagSpread||this._stroke._flagStops||this._stroke._flagEndPoints)||this._stroke instanceof t.RadialGradient&&(this._stroke._flagSpread||this._stroke._flagStops||this._stroke._flagRadius||this._stroke._flagCenter||this._stroke._flagFocal)||this._stroke instanceof t.Texture&&(this._stroke._flagLoaded&&this._stroke.loaded||this._stroke._flagImage||this._stroke._flagVideo||this._stroke._flagRepeat||this._stroke._flagOffset||this._fill._flagScale)||this._flagStroke||this._flagLinewidth||this._flagOpacity||a._flagOpacity||this._flagVisible||this._flagScale||this._flagValue||this._flagFamily||this._flagSize||this._flagLeading||this._flagAlignment||this._flagBaseline||this._flagStyle||this._flagWeight||this._flagDecoration||this.dashes&&this.dashes.length>0||!this._renderer.texture;if((o||l)&&(this._renderer.matrix||(this._renderer.matrix=new t.Array(9)),this._matrix.toTransformArray(!0,n),i(n,a._renderer.matrix,this._renderer.matrix),this._renderer.scale instanceof t.Vector||(this._renderer.scale=new t.Vector),this._scale instanceof t.Vector?(this._renderer.scale.x=this._scale.x*a._renderer.scale.x,this._renderer.scale.y=this._scale.y*a._renderer.scale.y):(this._renderer.scale.x=this._scale*a._renderer.scale.x,this._renderer.scale.y=this._scale*a._renderer.scale.y)),c?(this._renderer.rect||(this._renderer.rect={}),this._renderer.opacity=this._opacity*a._renderer.opacity,h.text.getBoundingClientRect(this,this._renderer.rect),h.updateTexture.call(h,e,this)):(this._fill&&this._fill._update&&this._fill._update(),this._stroke&&this._stroke._update&&this._stroke._update()),!this._clip||s){e.bindTexture(e.TEXTURE_2D,this._renderer.texture);var d=this._renderer.rect;return e.uniformMatrix3fv(r.matrix,!1,this._renderer.matrix),e.uniform4f(r.rect,d.left,d.top,d.right,d.bottom),e.drawArrays(e.TRIANGLES,0,6),this.flagReset()}}},"linear-gradient":{render:function(t,e){if(t.canvas.getContext("2d")){if(this._update(),!this._renderer.effect||this._flagEndPoints||this._flagStops){this._renderer.effect=t.createLinearGradient(this.left._x,this.left._y,this.right._x,this.right._y);for(var i=0;i=0&&this.classList.splice(a,1)}this.classList=this.classList.concat(r)}this._className=t}})}}),e.extend(i.prototype,t.Utils.Events,{_flagMatrix:!0,_flagScale:!1,_flagClassName:!1,_translation:null,_rotation:0,_scale:1,_className:"",constructor:i,addTo:function(t){return t.add(this),this},clone:function(t){var e=new i;return e.translation.copy(this.translation),e.rotation=this.rotation,e.scale=this.scale,this.matrix.manual&&e.matrix.copy(this.matrix),t&&t.add(e),e._update()},_update:function(e){return!this._matrix.manual&&this._flagMatrix&&(this._matrix.identity().translate(this.translation.x,this.translation.y),this._scale instanceof t.Vector?this._matrix.scale(this._scale.x,this._scale.y):this._matrix.scale(this._scale),this._matrix.rotate(this.rotation)),e&&this.parent&&this.parent._update&&this.parent._update(),this},flagReset:function(){return this._flagMatrix=this._flagScale=this._flagClassName=!1,this}}),i.MakeObservable(i.prototype)}(("undefined"!=typeof global?global:this||self||window).Two),function(t){var e=Math.min,i=Math.max,r=(Math.round,Math.ceil),s=Math.floor,n=t.Utils.getComputedMatrix,a={},o=t.Utils;o.each(t.Commands,(function(t,e){a[e]=new RegExp(t)}));var l=t.Path=function(e,i,r,s){t.Shape.call(this),this._renderer.type="path",this._renderer.flagVertices=o.bind(l.FlagVertices,this),this._renderer.bindVertices=o.bind(l.BindVertices,this),this._renderer.unbindVertices=o.bind(l.UnbindVertices,this),this._renderer.flagFill=o.bind(l.FlagFill,this),this._renderer.flagStroke=o.bind(l.FlagStroke,this),this._renderer.vertices=[],this._renderer.collection=[],this._closed=!!i,this._curved=!!r,this.beginning=0,this.ending=1,this.fill="#fff",this.stroke="#000",this.linewidth=1,this.opacity=1,this.className="",this.visible=!0,this.cap="butt",this.join="miter",this.miter=4,this.vertices=e,this.automatic=!s,this.dashes=[],this.dashes.offset=0};function h(t,e){if(0===e||1===e)return!0;for(var i=t._length*e,r=0,s=0;s=i)return i-r>=0;r+=n}return!1}function c(t,e){var i=t._length;if(e<=0)return 0;if(e>=i)return t._lengths.length-1;for(var r=0,s=0;r=e)return e-=s,Math.max(r-1,0)+e/t._lengths[r];s+=t._lengths[r]}return-1}function d(e,i,r){var s,n,a,o,l,h,c,d,f=i.controls&&i.controls.right,u=e.controls&&e.controls.left;return s=i.x,l=i.y,n=(f||i).x,h=(f||i).y,a=(u||e).x,c=(u||e).y,o=e.x,d=e.y,f&&i._relative&&(n+=i.x,h+=i.y),u&&e._relative&&(a+=e.x,c+=e.y),t.Utils.getCurveLength(s,l,n,h,a,c,o,d,r)}function f(e,i,r){var s,n,a,o,l,h,c,d,f=i.controls&&i.controls.right,u=e.controls&&e.controls.left;return s=i.x,l=i.y,n=(f||i).x,h=(f||i).y,a=(u||e).x,c=(u||e).y,o=e.x,d=e.y,f&&i._relative&&(n+=i.x,h+=i.y),u&&e._relative&&(a+=e.x,c+=e.y),t.Utils.subdivide(s,l,n,h,a,c,o,d,r)}o.extend(l,{Properties:["fill","stroke","linewidth","opacity","visible","cap","join","miter","closed","curved","automatic","beginning","ending"],Utils:{getCurveLength:d},FlagVertices:function(){this._flagVertices=!0,this._flagLength=!0,this.parent&&(this.parent._flagLength=!0)},BindVertices:function(e){for(var i=e.length;i--;)e[i].bind(t.Events.change,this._renderer.flagVertices);this._renderer.flagVertices()},UnbindVertices:function(e){for(var i=e.length;i--;)e[i].unbind(t.Events.change,this._renderer.flagVertices);this._renderer.flagVertices()},FlagFill:function(){this._flagFill=!0},FlagStroke:function(){this._flagStroke=!0},MakeObservable:function(e){t.Shape.MakeObservable(e),o.each(l.Properties.slice(2,8),t.Utils.defineProperty,e),Object.defineProperty(e,"fill",{enumerable:!0,get:function(){return this._fill},set:function(e){(this._fill instanceof t.Gradient||this._fill instanceof t.LinearGradient||this._fill instanceof t.RadialGradient||this._fill instanceof t.Texture)&&this._fill.unbind(t.Events.change,this._renderer.flagFill),this._fill=e,this._flagFill=!0,(this._fill instanceof t.Gradient||this._fill instanceof t.LinearGradient||this._fill instanceof t.RadialGradient||this._fill instanceof t.Texture)&&this._fill.bind(t.Events.change,this._renderer.flagFill)}}),Object.defineProperty(e,"stroke",{enumerable:!0,get:function(){return this._stroke},set:function(e){(this._stroke instanceof t.Gradient||this._stroke instanceof t.LinearGradient||this._stroke instanceof t.RadialGradient||this._stroke instanceof t.Texture)&&this._stroke.unbind(t.Events.change,this._renderer.flagStroke),this._stroke=e,this._flagStroke=!0,(this._stroke instanceof t.Gradient||this._stroke instanceof t.LinearGradient||this._stroke instanceof t.RadialGradient||this._stroke instanceof t.Texture)&&this._stroke.bind(t.Events.change,this._renderer.flagStroke)}}),Object.defineProperty(e,"length",{get:function(){return this._flagLength&&this._updateLength(),this._length}}),Object.defineProperty(e,"closed",{enumerable:!0,get:function(){return this._closed},set:function(t){this._closed=!!t,this._flagVertices=!0}}),Object.defineProperty(e,"curved",{enumerable:!0,get:function(){return this._curved},set:function(t){this._curved=!!t,this._flagVertices=!0}}),Object.defineProperty(e,"automatic",{enumerable:!0,get:function(){return this._automatic},set:function(t){if(t!==this._automatic){this._automatic=!!t;var e=this._automatic?"ignore":"listen";o.each(this.vertices,(function(t){t[e]()}))}}}),Object.defineProperty(e,"beginning",{enumerable:!0,get:function(){return this._beginning},set:function(t){this._beginning=t,this._flagVertices=!0}}),Object.defineProperty(e,"ending",{enumerable:!0,get:function(){return this._ending},set:function(t){this._ending=t,this._flagVertices=!0}}),Object.defineProperty(e,"vertices",{enumerable:!0,get:function(){return this._collection},set:function(e){this._renderer.flagVertices;var i=this._renderer.bindVertices,r=this._renderer.unbindVertices;this._collection&&this._collection.unbind(t.Events.insert,i).unbind(t.Events.remove,r),e instanceof t.Utils.Collection?this._collection=e:this._collection=new t.Utils.Collection(e||[]),this._collection.bind(t.Events.insert,i).bind(t.Events.remove,r),i(this._collection)}}),Object.defineProperty(e,"clip",{enumerable:!0,get:function(){return this._clip},set:function(t){this._clip=t,this._flagClip=!0}}),Object.defineProperty(e,"dashes",{enumerable:!0,get:function(){return this._dashes},set:function(t){o.isNumber(t.offset)||(t.offset=this._dashes.offset||0),this._dashes=t}})}}),o.extend(l.prototype,t.Shape.prototype,{_flagVertices:!0,_flagLength:!0,_flagFill:!0,_flagStroke:!0,_flagLinewidth:!0,_flagOpacity:!0,_flagVisible:!0,_flagCap:!0,_flagJoin:!0,_flagMiter:!0,_flagClip:!1,_length:0,_fill:"#fff",_stroke:"#000",_linewidth:1,_opacity:1,_visible:!0,_cap:"round",_join:"round",_miter:4,_closed:!0,_curved:!1,_automatic:!0,_beginning:0,_ending:1,_clip:!1,_dashes:[],constructor:l,clone:function(t){for(var e=new l,i=0;i=y){this._closed?(r=t.Utils.mod(S,x),s=t.Utils.mod(S-1,x),0===S&&(r=s,s=S)):(r=S,s=Math.min(Math.max(S-1,0),b)),w=this.vertices[r],k=this.vertices[s],y-=E,e=0!==this._lengths[S]?y/this._lengths[S]:0;break}E+=this._lengths[S]}if(o.isNull(w)||o.isNull(k))return null;if(!w)return k;if(!k)return w;v=k.controls&&k.controls.right,m=w.controls&&w.controls.left,l=k.x,u=k.y,h=(v||k).x,_=(v||k).y,c=(m||w).x,g=(m||w).y,d=w.x,p=w.y,v&&k.relative&&(h+=k.x,_+=k.y),m&&w.relative&&(c+=w.x,g+=w.y),a=t.Utils.getComponentOnCubicBezier(e,l,h,c,d),f=t.Utils.getComponentOnCubicBezier(e,u,_,g,p);var C=t.Utils.lerp(l,h,e),R=t.Utils.lerp(u,_,e),F=t.Utils.lerp(h,c,e),M=t.Utils.lerp(_,g,e),O=t.Utils.lerp(c,d,e),P=t.Utils.lerp(g,p,e),U=t.Utils.lerp(C,F,e),T=t.Utils.lerp(R,M,e),N=t.Utils.lerp(F,O,e),L=t.Utils.lerp(M,P,e);return o.isObject(i)?(i.x=a,i.y=f,o.isObject(i.controls)||t.Anchor.AppendCurveProperties(i),i.controls.left.x=U,i.controls.left.y=T,i.controls.right.x=N,i.controls.right.y=L,o.isBoolean(i.relative)&&!i.relative||(i.controls.left.x-=a,i.controls.left.y-=f,i.controls.right.x-=a,i.controls.right.y-=f),i.t=e,i):((n=new t.Anchor(a,f,U-a,T-f,N-a,L-f,this._curved?t.Commands.curve:t.Commands.line)).t=e,n)},plot:function(){if(this.curved)return t.Utils.getCurveFromPoints(this._collection,this.closed),this;for(var e=0;e0&&(n[n.length-1].command=t.Commands.line),void(r=a);var h=f(a,r,e);n=n.concat(h),o.each(h,(function(e,i){i<=0&&r.command===t.Commands.move?e.command=t.Commands.move:e.command=t.Commands.line})),l>=i&&(this._closed&&this._automatic?(h=f(a,r=a,e),n=n.concat(h),o.each(h,(function(e,i){i<=0&&r.command===t.Commands.move?e.command=t.Commands.move:e.command=t.Commands.line}))):s&&n.push(new t.Anchor(a.x,a.y)),n[n.length-1].command=s?t.Commands.close:t.Commands.line),r=a}}),this),this._automatic=!1,this._curved=!1,this.vertices=n,this},_updateLength:function(e,i){i||this._update();var r=this.vertices.length,s=r-1,n=this.vertices[s],a=0;return o.isUndefined(this._lengths)&&(this._lengths=[]),o.each(this.vertices,(function(i,r){if(r<=0||i.command===t.Commands.move)return n=i,void(this._lengths[r]=0);this._lengths[r]=d(i,n,e),a+=this._lengths[r],n=i}),this),this._length=a,this._flagLength=!1,this},_update:function(){if(this._flagVertices){this._automatic&&this.plot(),this._flagLength&&this._updateLength(void 0,!0);var e,i,n,a,o,l=this._collection.length,d=this._closed,f=Math.min(this._beginning,this._ending),u=Math.max(this._beginning,this._ending),_=c(this,f*this._length),g=c(this,u*this._length),p=r(_),m=s(g);this._renderer.vertices.length=0;for(var v=0;vm&&!i?((o=this._renderer.collection[v]).copy(this._collection[v]),this.getPointAt(u,o),o.command=this._renderer.collection[v].command,this._renderer.vertices.push(o),i=o,(n=this._collection[v-1])&&n.controls&&(o.controls.right.clear(),this._renderer.collection[v-1].controls.right.clear().lerp(n.controls.right,o.t))):v>=p&&v<=m&&(o=this._renderer.collection[v].copy(this._collection[v]),this._renderer.vertices.push(o),v===m&&h(this,u)?(i=o,!d&&i.controls&&i.controls.right.clear()):v===p&&h(this,f)&&((e=o).command=t.Commands.move,!d&&e.controls&&e.controls.left.clear()));p>0&&!e&&(v=p-1,(o=this._renderer.collection[v]).copy(this._collection[v]),this.getPointAt(f,o),o.command=t.Commands.move,this._renderer.vertices.unshift(o),e=o,(a=this._collection[v+1])&&a.controls&&(o.controls.left.clear(),this._renderer.collection[v+1].controls.left.copy(a.controls.left).lerp(t.Vector.zero,o.t)))}return t.Shape.prototype._update.apply(this,arguments),this},flagReset:function(){return this._flagVertices=this._flagFill=this._flagStroke=this._flagLinewidth=this._flagOpacity=this._flagVisible=this._flagCap=this._flagJoin=this._flagMiter=this._flagClip=!1,t.Shape.prototype.flagReset.call(this),this}}),l.MakeObservable(l.prototype)}(("undefined"!=typeof global?global:this||self||window).Two),function(t){var e=t.Path,i=t.Utils,r=t.Line=function(i,r,s,n){e.call(this,[new t.Anchor(i,r),new t.Anchor(s,n)]),this.vertices[0].command=t.Commands.move,this.vertices[1].command=t.Commands.line,this.automatic=!1};i.extend(r.prototype,e.prototype),r.prototype.constructor=r,e.MakeObservable(r.prototype)}(("undefined"!=typeof global?global:this||self||window).Two),function(t){var e=t.Path,i=t.Utils,r=t.Rectangle=function(i,r,s,n){e.call(this,[new t.Anchor,new t.Anchor,new t.Anchor,new t.Anchor],!0,!1,!0),this.width=s,this.height=n,this.origin=new t.Vector,this.translation.set(i,r),this._update()};i.extend(r,{Properties:["width","height"],MakeObservable:function(s){e.MakeObservable(s),i.each(r.Properties,t.Utils.defineProperty,s),Object.defineProperty(s,"origin",{enumerable:!0,get:function(){return this._origin},set:function(e){this._origin&&this._origin.unbind(t.Events.change,this._renderer.flagVertices),this._origin=e,this._origin.bind(t.Events.change,this._renderer.flagVertices),this._renderer.flagVertices()}})}}),i.extend(r.prototype,e.prototype,{_flagWidth:0,_flagHeight:0,_width:0,_height:0,_origin:null,constructor:r,_update:function(){if(this._flagWidth||this._flagHeight){var i=this._width/2,r=this._height/2;this.vertices[0].set(-i,-r).add(this._origin).command=t.Commands.move,this.vertices[1].set(i,-r).add(this._origin).command=t.Commands.line,this.vertices[2].set(i,r).add(this._origin).command=t.Commands.line,this.vertices[3].set(-i,r).add(this._origin).command=t.Commands.line,this.vertices[4]&&(this.vertices[4].set(-i,-r).add(this._origin).command=t.Commands.line)}return e.prototype._update.call(this),this},flagReset:function(){return this._flagWidth=this._flagHeight=!1,e.prototype.flagReset.call(this),this},clone:function(e){var s=new r(0,0,this.width,this.height);return s.translation.copy(this.translation),s.rotation=this.rotation,s.scale=this.scale,this.matrix.manual&&s.matrix.copy(this.matrix),i.each(t.Path.Properties,(function(t){s[t]=this[t]}),this),e&&e.add(s),s},toObject:function(){var t=e.prototype.toObject.call(this);return t.width=this.width,t.height=this.height,t.origin=this.origin.toObject(),t}}),r.MakeObservable(r.prototype)}(("undefined"!=typeof global?global:this||self||window).Two),function(t){var e=t.Path,i=2*Math.PI,r=Math.PI/2,s=Math.cos,n=Math.sin,a=t.Utils,o=t.Ellipse=function(i,r,s,n,o){a.isNumber(n)||(n=s);var l=o?Math.max(o,2):4,h=a.map(a.range(l),(function(e){return new t.Anchor}),this);e.call(this,h,!0,!0,!0),this.width=2*s,this.height=2*n,this._update(),this.translation.set(i,r)};a.extend(o,{Properties:["width","height"],MakeObservable:function(i){e.MakeObservable(i),a.each(o.Properties,t.Utils.defineProperty,i)}}),a.extend(o.prototype,e.prototype,{_flagWidth:!1,_flagHeight:!1,_width:0,_height:0,constructor:o,_update:function(){if(this._flagWidth||this._flagHeight)for(var a=4/3*Math.tan(Math.PI/(2*this.vertices.length)),o=this._width/2,l=this._height/2,h=0,c=this.vertices.length;hn&&(this.vertices.splice(n-1,o-n),o=n);for(var l=0;l=o?this.vertices.push(new t.Anchor(c,d)):this.vertices[l].set(c,d),this.vertices[l].command=0===l?t.Commands.move:t.Commands.line}}return e.prototype._update.call(this),this},flagReset:function(){return this._flagWidth=this._flagHeight=this._flagSides=!1,e.prototype.flagReset.call(this),this},clone:function(e){var i=new a(0,0,this.radius,this.sides);return i.translation.copy(this.translation),i.rotation=this.rotation,i.scale=this.scale,this.matrix.manual&&i.matrix.copy(this.matrix),n.each(t.Path.Properties,(function(t){i[t]=this[t]}),this),e&&e.add(i),i},toObject:function(){var t=e.prototype.toObject.call(this);return n.each(a.Properties,(function(e){t[e]=this[e]}),this),t}}),a.MakeObservable(a.prototype)}(("undefined"!=typeof global?global:this||self||window).Two),function(t){var e=t.Path,i=(Math.PI,2*Math.PI),r=Math.PI/2,s=(Math.cos,Math.sin,Math.abs,t.Utils),n=t.Utils.mod,a=t.ArcSegment=function(i,r,n,a,o,l,h){var c=h||3*t.Resolution,d=s.map(s.range(c),(function(){return new t.Anchor}));e.call(this,d,!0,!1,!0),this.innerRadius=n,this.outerRadius=a,this.startAngle=o,this.endAngle=l,this._update(),s.isNumber(i)&&(this.translation.x=i),s.isNumber(r)&&(this.translation.y=r)};s.extend(a,{Properties:["startAngle","endAngle","innerRadius","outerRadius"],MakeObservable:function(i){e.MakeObservable(i),s.each(a.Properties,t.Utils.defineProperty,i)}}),s.extend(a.prototype,e.prototype,{_flagStartAngle:!1,_flagEndAngle:!1,_flagInnerRadius:!1,_flagOuterRadius:!1,_startAngle:0,_endAngle:i,_innerRadius:0,_outerRadius:0,constructor:a,_update:function(){if(this._flagStartAngle||this._flagEndAngle||this._flagInnerRadius||this._flagOuterRadius){var s,a=this._startAngle,o=this._endAngle,l=this._innerRadius,h=this._outerRadius,c=n(a,i)===n(o,i),d=l>0,f=this.vertices,u=d?f.length/2:f.length,_=0;c?u--:d||(u-=2);for(var g=0,p=u-1;gn&&(this.vertices.splice(n-1,o-n),o=n);for(var l=0;l=o?this.vertices.push(new t.Anchor(d,f)):this.vertices[l].set(d,f),this.vertices[l].command=0===l?t.Commands.move:t.Commands.line}}return e.prototype._update.call(this),this},flagReset:function(){return this._flagInnerRadius=this._flagOuterRadius=this._flagSides=!1,e.prototype.flagReset.call(this),this},clone:function(e){var i=this.innerRadius,r=this.outerRadius,s=this.sides,o=new a(0,0,i,r,s);return o.translation.copy(this.translation),o.rotation=this.rotation,o.scale=this.scale,this.matrix.manual&&o.matrix.copy(this.matrix),n.each(t.Path.Properties,(function(t){o[t]=this[t]}),this),e&&e.add(o),o},toObject:function(){var t=e.prototype.toObject.call(this);return n.each(a.Properties,(function(e){t[e]=this[e]}),this),t}}),a.MakeObservable(a.prototype)}(("undefined"!=typeof global?global:this||self||window).Two),function(t){var e=t.Path,i=t.Utils,r=t.RoundedRectangle=function(s,n,a,o,l){i.isUndefined(l)&&(l=Math.floor(Math.min(a,o)/12));var h=i.map(i.range(10),(function(e){return new t.Anchor(0,0,0,0,0,0,0===e?t.Commands.move:t.Commands.curve)}));e.call(this,h),this.closed=!0,this.automatic=!1,this._renderer.flagRadius=i.bind(r.FlagRadius,this),this.width=a,this.height=o,this.radius=l,this._update(),this.translation.set(s,n)};i.extend(r,{Properties:["width","height"],FlagRadius:function(){this._flagRadius=!0},MakeObservable:function(s){e.MakeObservable(s),i.each(r.Properties,t.Utils.defineProperty,s),Object.defineProperty(s,"radius",{enumerable:!0,get:function(){return this._radius},set:function(e){this._radius instanceof t.Vector&&this._radius.unbind(t.Events.change,this._renderer.flagRadius),this._radius=e,this._radius instanceof t.Vector&&this._radius.bind(t.Events.change,this._renderer.flagRadius),this._flagRadius=!0}})}}),i.extend(r.prototype,e.prototype,{_flagWidth:!1,_flagHeight:!1,_flagRadius:!1,_width:0,_height:0,_radius:0,constructor:r,_update:function(){if(this._flagWidth||this._flagHeight||this._flagRadius){var i,r,s,n=this._width,a=this._height;this._radius instanceof t.Vector?(i=this._radius.x,r=this._radius.y):(i=this._radius,r=this._radius);var o=n/2,l=a/2;(s=this.vertices[0]).x=-(o-i),s.y=-l,(s=this.vertices[1]).x=o-i,s.y=-l,s.controls.left.clear(),s.controls.right.x=i,s.controls.right.y=0,(s=this.vertices[2]).x=o,s.y=-(l-r),s.controls.right.clear(),s.controls.left.clear(),(s=this.vertices[3]).x=o,s.y=l-r,s.controls.left.clear(),s.controls.right.x=0,s.controls.right.y=r,(s=this.vertices[4]).x=o-i,s.y=l,s.controls.right.clear(),s.controls.left.clear(),(s=this.vertices[5]).x=-(o-i),s.y=l,s.controls.left.clear(),s.controls.right.x=-i,s.controls.right.y=0,(s=this.vertices[6]).x=-o,s.y=l-r,s.controls.left.clear(),s.controls.right.clear(),(s=this.vertices[7]).x=-o,s.y=-(l-r),s.controls.left.clear(),s.controls.right.x=0,s.controls.right.y=-r,(s=this.vertices[8]).x=-(o-i),s.y=-l,s.controls.left.clear(),s.controls.right.clear(),(s=this.vertices[9]).copy(this.vertices[8])}return e.prototype._update.call(this),this},flagReset:function(){return this._flagWidth=this._flagHeight=this._flagRadius=!1,e.prototype.flagReset.call(this),this},clone:function(e){var s=this.width,n=this.height,a=this.radius,o=new r(0,0,s,n,a);return o.translation.copy(this.translation),o.rotation=this.rotation,o.scale=this.scale,this.matrix.manual&&o.matrix.copy(this.matrix),i.each(t.Path.Properties,(function(t){o[t]=this[t]}),this),e&&e.add(o),o},toObject:function(){var t=e.prototype.toObject.call(this);return i.each(r.Properties,(function(e){t[e]=this[e]}),this),t.radius=i.isNumber(this.radius)?this.radius:this.radius.toObject(),t}}),r.MakeObservable(r.prototype)}(("undefined"!=typeof global?global:this||self||window).Two),function(t){t.root;var e=t.Utils.getComputedMatrix,i=t.Utils,r=t.Text=function(e,r,s,n){if(t.Shape.call(this),this._renderer.type="text",this._renderer.flagFill=i.bind(t.Text.FlagFill,this),this._renderer.flagStroke=i.bind(t.Text.FlagStroke,this),this.value=e,i.isNumber(r)&&(this.translation.x=r),i.isNumber(s)&&(this.translation.y=s),this.dashes=[],this.dashes.offset=0,!i.isObject(n))return this;i.each(t.Text.Properties,(function(t){t in n&&(this[t]=n[t])}),this)};i.extend(t.Text,{Ratio:.6,Properties:["value","family","size","leading","alignment","linewidth","style","className","weight","decoration","baseline","opacity","visible","fill","stroke"],FlagFill:function(){this._flagFill=!0},FlagStroke:function(){this._flagStroke=!0},MakeObservable:function(e){t.Shape.MakeObservable(e),i.each(t.Text.Properties.slice(0,13),t.Utils.defineProperty,e),Object.defineProperty(e,"fill",{enumerable:!0,get:function(){return this._fill},set:function(e){(this._fill instanceof t.Gradient||this._fill instanceof t.LinearGradient||this._fill instanceof t.RadialGradient||this._fill instanceof t.Texture)&&this._fill.unbind(t.Events.change,this._renderer.flagFill),this._fill=e,this._flagFill=!0,(this._fill instanceof t.Gradient||this._fill instanceof t.LinearGradient||this._fill instanceof t.RadialGradient||this._fill instanceof t.Texture)&&this._fill.bind(t.Events.change,this._renderer.flagFill)}}),Object.defineProperty(e,"stroke",{enumerable:!0,get:function(){return this._stroke},set:function(e){(this._stroke instanceof t.Gradient||this._stroke instanceof t.LinearGradient||this._stroke instanceof t.RadialGradient||this._stroke instanceof t.Texture)&&this._stroke.unbind(t.Events.change,this._renderer.flagStroke),this._stroke=e,this._flagStroke=!0,(this._stroke instanceof t.Gradient||this._stroke instanceof t.LinearGradient||this._stroke instanceof t.RadialGradient||this._stroke instanceof t.Texture)&&this._stroke.bind(t.Events.change,this._renderer.flagStroke)}}),Object.defineProperty(e,"clip",{enumerable:!0,get:function(){return this._clip},set:function(t){this._clip=t,this._flagClip=!0}}),Object.defineProperty(e,"dashes",{enumerable:!0,get:function(){return this._dashes},set:function(t){i.isNumber(t.offset)||(t.offset=this._dashes.offset||0),this._dashes=t}})}}),i.extend(t.Text.prototype,t.Shape.prototype,{_flagValue:!0,_flagFamily:!0,_flagSize:!0,_flagLeading:!0,_flagAlignment:!0,_flagBaseline:!0,_flagStyle:!0,_flagWeight:!0,_flagDecoration:!0,_flagFill:!0,_flagStroke:!0,_flagLinewidth:!0,_flagOpacity:!0,_flagClassName:!0,_flagVisible:!0,_flagClip:!1,_value:"",_family:"sans-serif",_size:13,_leading:17,_alignment:"center",_baseline:"middle",_style:"normal",_weight:500,_decoration:"none",_fill:"#000",_stroke:"transparent",_linewidth:1,_opacity:1,_className:"",_visible:!0,_clip:!1,_dashes:[],constructor:t.Text,remove:function(){return this.parent?(this.parent.remove(this),this):this},clone:function(e){var r=new t.Text(this.value);return r.translation.copy(this.translation),r.rotation=this.rotation,r.scale=this.scale,i.each(t.Text.Properties,(function(t){r[t]=this[t]}),this),this.matrix.manual&&r.matrix.copy(this.matrix),e&&e.add(r),r._update()},toObject:function(){var e={translation:this.translation.toObject(),rotation:this.rotation,scale:this.scale};return this.matrix.manual&&(e.matrix=this.matrix.toObject()),i.each(t.Text.Properties,(function(t){e[t]=this[t]}),this),e},noFill:function(){return this.fill="transparent",this},noStroke:function(){return this.stroke=void 0,this.linewidth=void 0,this},getBoundingClientRect:function(t){var i,s,n,a,o,l;this._update(!0),i=t?this._matrix:e(this);var h=this.leading,c=this.value.length*this.size*r.Ratio;switch(this.alignment){case"left":n=0,a=c;break;case"right":n=-c,a=0;break;default:n=-c/2,a=c/2}switch(this.baseline){case"top":o=0,l=h;break;case"bottom":o=-h,l=0;break;default:o=-h/2,l=h/2}return{top:o=(s=i.multiply(n,o,1)).y,left:n=s.x,right:a=(s=i.multiply(a,l,1)).x,bottom:l=s.y,width:a-n,height:l-o}},flagReset:function(){return this._flagValue=this._flagFamily=this._flagSize=this._flagLeading=this._flagAlignment=this._flagFill=this._flagStroke=this._flagLinewidth=this._flagOpacity=this._flagVisible=this._flagClip=this._flagDecoration=this._flagClassName=this._flagBaseline=!1,t.Shape.prototype.flagReset.call(this),this}}),t.Text.MakeObservable(t.Text.prototype)}(("undefined"!=typeof global?global:this||self||window).Two),function(t){var e=t.Utils,i=t.Stop=function(t,r,s){this._renderer={},this._renderer.type="stop",this.offset=e.isNumber(t)?t:i.Index<=0?0:1,this.opacity=e.isNumber(s)?s:1,this.color=e.isString(r)?r:i.Index<=0?"#fff":"#000",i.Index=(i.Index+1)%2};e.extend(i,{Index:0,Properties:["offset","opacity","color"],MakeObservable:function(t){e.each(i.Properties,(function(t){var e="_"+t,i="_flag"+t.charAt(0).toUpperCase()+t.slice(1);Object.defineProperty(this,t,{enumerable:!0,get:function(){return this[e]},set:function(t){this[e]=t,this[i]=!0,this.parent&&(this.parent._flagStops=!0)}})}),t)}}),e.extend(i.prototype,t.Utils.Events,{constructor:i,clone:function(){var t=new i;return e.each(i.Properties,(function(e){t[e]=this[e]}),this),t},toObject:function(){var t={};return e.each(i.Properties,(function(e){t[e]=this[e]}),this),t},flagReset:function(){return this._flagOffset=this._flagColor=this._flagOpacity=!1,this}}),i.MakeObservable(i.prototype),i.prototype.constructor=i;var r=t.Gradient=function(i){this._renderer={},this._renderer.type="gradient",this.id=t.Identifier+t.uniqueId(),this.classList=[],this._renderer.flagStops=e.bind(r.FlagStops,this),this._renderer.bindStops=e.bind(r.BindStops,this),this._renderer.unbindStops=e.bind(r.UnbindStops,this),this.spread="pad",this.stops=i};e.extend(r,{Stop:i,Properties:["spread"],MakeObservable:function(i){e.each(r.Properties,t.Utils.defineProperty,i),Object.defineProperty(i,"stops",{enumerable:!0,get:function(){return this._stops},set:function(e){this._renderer.flagStops;var i=this._renderer.bindStops,r=this._renderer.unbindStops;this._stops&&this._stops.unbind(t.Events.insert,i).unbind(t.Events.remove,r),this._stops=new t.Utils.Collection((e||[]).slice(0)),this._stops.bind(t.Events.insert,i).bind(t.Events.remove,r),i(this._stops)}})},FlagStops:function(){this._flagStops=!0},BindStops:function(e){for(var i=e.length;i--;)e[i].bind(t.Events.change,this._renderer.flagStops),e[i].parent=this;this._renderer.flagStops()},UnbindStops:function(e){for(var i=e.length;i--;)e[i].unbind(t.Events.change,this._renderer.flagStops),delete e[i].parent;this._renderer.flagStops()}}),e.extend(r.prototype,t.Utils.Events,{_flagStops:!1,_flagSpread:!1,clone:function(i){var s=e.map(this.stops,(function(t){return t.clone()})),n=new r(s);return e.each(t.Gradient.Properties,(function(t){n[t]=this[t]}),this),i&&i.add(n),n},toObject:function(){var t={stops:e.map(this.stops,(function(t){return t.toObject()}))};return e.each(r.Properties,(function(e){t[e]=this[e]}),this),t},_update:function(){return(this._flagSpread||this._flagStops)&&this.trigger(t.Events.change),this},flagReset:function(){return this._flagSpread=this._flagStops=!1,this}}),r.MakeObservable(r.prototype)}(("undefined"!=typeof global?global:this||self||window).Two),function(t){var e=t.Utils,i=t.LinearGradient=function(r,s,n,a,o){t.Gradient.call(this,o),this._renderer.type="linear-gradient";var l=e.bind(i.FlagEndPoints,this);this.left=(new t.Vector).bind(t.Events.change,l),this.right=(new t.Vector).bind(t.Events.change,l),e.isNumber(r)&&(this.left.x=r),e.isNumber(s)&&(this.left.y=s),e.isNumber(n)&&(this.right.x=n),e.isNumber(a)&&(this.right.y=a)};e.extend(i,{Stop:t.Gradient.Stop,MakeObservable:function(e){t.Gradient.MakeObservable(e)},FlagEndPoints:function(){this._flagEndPoints=!0}}),e.extend(i.prototype,t.Gradient.prototype,{_flagEndPoints:!1,constructor:i,clone:function(r){var s=e.map(this.stops,(function(t){return t.clone()})),n=new i(this.left._x,this.left._y,this.right._x,this.right._y,s);return e.each(t.Gradient.Properties,(function(t){n[t]=this[t]}),this),r&&r.add(n),n},toObject:function(){var e=t.Gradient.prototype.toObject.call(this);return e.left=this.left.toObject(),e.right=this.right.toObject(),e},_update:function(){return(this._flagEndPoints||this._flagSpread||this._flagStops)&&this.trigger(t.Events.change),this},flagReset:function(){return this._flagEndPoints=!1,t.Gradient.prototype.flagReset.call(this),this}}),i.MakeObservable(i.prototype)}(("undefined"!=typeof global?global:this||self||window).Two),function(t){var e=t.Utils,i=t.RadialGradient=function(i,r,s,n,a,o){t.Gradient.call(this,n),this._renderer.type="radial-gradient",this.center=(new t.Vector).bind(t.Events.change,e.bind((function(){this._flagCenter=!0}),this)),this.radius=e.isNumber(s)?s:20,this.focal=(new t.Vector).bind(t.Events.change,e.bind((function(){this._flagFocal=!0}),this)),e.isNumber(i)&&(this.center.x=i),e.isNumber(r)&&(this.center.y=r),this.focal.copy(this.center),e.isNumber(a)&&(this.focal.x=a),e.isNumber(o)&&(this.focal.y=o)};e.extend(i,{Stop:t.Gradient.Stop,Properties:["radius"],MakeObservable:function(r){t.Gradient.MakeObservable(r),e.each(i.Properties,t.Utils.defineProperty,r)}}),e.extend(i.prototype,t.Gradient.prototype,{_flagRadius:!1,_flagCenter:!1,_flagFocal:!1,constructor:i,clone:function(r){var s=e.map(this.stops,(function(t){return t.clone()})),n=new i(this.center._x,this.center._y,this._radius,s,this.focal._x,this.focal._y);return e.each(t.Gradient.Properties.concat(i.Properties),(function(t){n[t]=this[t]}),this),r&&r.add(n),n},toObject:function(){var r=t.Gradient.prototype.toObject.call(this);return e.each(i.Properties,(function(t){r[t]=this[t]}),this),r.center=this.center.toObject(),r.focal=this.focal.toObject(),r},_update:function(){return(this._flagRadius||this._flatCenter||this._flagFocal||this._flagSpread||this._flagStops)&&this.trigger(t.Events.change),this},flagReset:function(){return this._flagRadius=this._flagCenter=this._flagFocal=!1,t.Gradient.prototype.flagReset.call(this),this}}),i.MakeObservable(i.prototype)}(("undefined"!=typeof global?global:this||self||window).Two),function(t){var e,i=t.root,r=t.Utils,s={video:/\.(mp4|webm|ogg)$/i,image:/\.(jpe?g|png|gif|tiff|webp)$/i,effect:/texture|gradient/i};i.document&&(e=document.createElement("a"));var n=t.Texture=function(e,i){if(this._renderer={},this._renderer.type="texture",this._renderer.flagOffset=r.bind(n.FlagOffset,this),this._renderer.flagScale=r.bind(n.FlagScale,this),this.id=t.Identifier+t.uniqueId(),this.classList=[],this.loaded=!1,this.repeat="no-repeat",this.offset=new t.Vector,r.isFunction(i)){var s=r.bind((function(){this.unbind(t.Events.load,s),r.isFunction(i)&&i()}),this);this.bind(t.Events.load,s)}r.isString(e)?this.src=e:r.isElement(e)&&(this.image=e),this._update()};r.extend(n,{Properties:["src","loaded","repeat"],RegularExpressions:s,ImageRegistry:new t.Registry,getAbsoluteURL:function(t){return e?(e.href=t,e.href):t},loadHeadlessBuffer:new Function("texture","loaded",['var fs = require("fs");',"var buffer = fs.readFileSync(texture.src);","texture.image.src = buffer;","loaded();"].join("\n")),getImage:function(e){var r,a=n.getAbsoluteURL(e);return n.ImageRegistry.contains(a)?n.ImageRegistry.get(a):(t.Utils.Image?(r=new t.Utils.Image,t.CanvasRenderer.Utils.shim(r,"img")):i.document?r=s.video.test(a)?document.createElement("video"):document.createElement("img"):console.warn("Two.js: no prototypical image defined for Two.Texture"),r.crossOrigin="anonymous",r)},Register:{canvas:function(t,e){t._src="#"+t.id,n.ImageRegistry.add(t.src,t.image),r.isFunction(e)&&e()},img:function(e,i){var s=function(t){r.isFunction(e.image.removeEventListener)&&(e.image.removeEventListener("load",s,!1),e.image.removeEventListener("error",a,!1)),r.isFunction(i)&&i()},a=function(i){throw r.isFunction(e.image.removeEventListener)&&(e.image.removeEventListener("load",s,!1),e.image.removeEventListener("error",a,!1)),new t.Utils.Error("unable to load "+e.src)};r.isNumber(e.image.width)&&e.image.width>0&&r.isNumber(e.image.height)&&e.image.height>0?s():r.isFunction(e.image.addEventListener)&&(e.image.addEventListener("load",s,!1),e.image.addEventListener("error",a,!1)),e._src=n.getAbsoluteURL(e._src),e.image&&e.image.getAttribute("two-src")||(e.image.setAttribute("two-src",e.src),n.ImageRegistry.add(e.src,e.image),t.Utils.isHeadless?n.loadHeadlessBuffer(e,s):e.image.src=e.src)},video:function(e,i){var s=function(t){e.image.removeEventListener("canplaythrough",s,!1),e.image.removeEventListener("error",a,!1),e.image.width=e.image.videoWidth,e.image.height=e.image.videoHeight,e.image.play(),r.isFunction(i)&&i()},a=function(i){throw e.image.removeEventListener("canplaythrough",s,!1),e.image.removeEventListener("error",a,!1),new t.Utils.Error("unable to load "+e.src)};if(e._src=n.getAbsoluteURL(e._src),e.image.addEventListener("canplaythrough",s,!1),e.image.addEventListener("error",a,!1),!e.image||!e.image.getAttribute("two-src")){if(t.Utils.isHeadless)throw new t.Utils.Error("video textures are not implemented in headless environments.");e.image.setAttribute("two-src",e.src),n.ImageRegistry.add(e.src,e.image),e.image.src=e.src,e.image.loop=!0,e.image.load()}}},load:function(t,e){t.src;var i=t.image,r=i&&i.nodeName.toLowerCase();t._flagImage&&(/canvas/i.test(r)?n.Register.canvas(t,e):(t._src=i.getAttribute("two-src")||i.src,n.Register[r](t,e))),t._flagSrc&&(i||(t.image=n.getImage(t.src)),r=t.image.nodeName.toLowerCase(),n.Register[r](t,e))},FlagOffset:function(){this._flagOffset=!0},FlagScale:function(){this._flagScale=!0},MakeObservable:function(e){r.each(n.Properties,t.Utils.defineProperty,e),Object.defineProperty(e,"image",{enumerable:!0,get:function(){return this._image},set:function(t){var e;switch(t&&t.nodeName.toLowerCase()){case"canvas":e="#"+t.id;break;default:e=t.src}n.ImageRegistry.contains(e)?this._image=n.ImageRegistry.get(t.src):this._image=t,this._flagImage=!0}}),Object.defineProperty(e,"offset",{enumerable:!0,get:function(){return this._offset},set:function(e){this._offset&&this._offset.unbind(t.Events.change,this._renderer.flagOffset),this._offset=e,this._offset.bind(t.Events.change,this._renderer.flagOffset),this._flagOffset=!0}}),Object.defineProperty(e,"scale",{enumerable:!0,get:function(){return this._scale},set:function(e){this._scale instanceof t.Vector&&this._scale.unbind(t.Events.change,this._renderer.flagScale),this._scale=e,this._scale instanceof t.Vector&&this._scale.bind(t.Events.change,this._renderer.flagScale),this._flagScale=!0}})}}),r.extend(n.prototype,t.Utils.Events,t.Shape.prototype,{_flagSrc:!1,_flagImage:!1,_flagVideo:!1,_flagLoaded:!1,_flagRepeat:!1,_flagOffset:!1,_flagScale:!1,_src:"",_image:null,_loaded:!1,_repeat:"no-repeat",_scale:1,_offset:null,constructor:n,clone:function(){var t=new n(this.src);return t.repeat=this.repeat,t.offset.copy(this.origin),t.scale=this.scale,t},toObject:function(){return{src:this.src,repeat:this.repeat,origin:this.origin.toObject(),scale:r.isNumber(this.scale)?this.scale:this.scale.toObject()}},_update:function(){return(this._flagSrc||this._flagImage)&&(this.trigger(t.Events.change),(this._flagSrc||this._flagImage)&&(this.loaded=!1,n.load(this,r.bind((function(){this.loaded=!0,this.trigger(t.Events.change).trigger(t.Events.load)}),this)))),this._image&&this._image.readyState>=4&&(this._flagVideo=!0),this},flagReset:function(){return this._flagSrc=this._flagImage=this._flagLoaded=this._flagVideo=this._flagScale=this._flagOffset=!1,this}}),n.MakeObservable(n.prototype)}(("undefined"!=typeof global?global:this||self||window).Two),function(t){var e=t.Utils,i=t.Path,r=t.Rectangle,s=t.Sprite=function(r,s,n,a,o,l){i.call(this,[new t.Anchor,new t.Anchor,new t.Anchor,new t.Anchor],!0),this.noStroke(),this.noFill(),r instanceof t.Texture?this.texture=r:e.isString(r)&&(this.texture=new t.Texture(r)),this.origin=new t.Vector,this._update(),this.translation.set(s||0,n||0),e.isNumber(a)&&(this.columns=a),e.isNumber(o)&&(this.rows=o),e.isNumber(l)&&(this.frameRate=l),this.index=0};e.extend(s,{Properties:["texture","columns","rows","frameRate","index"],MakeObservable:function(i){r.MakeObservable(i),e.each(s.Properties,t.Utils.defineProperty,i)}}),e.extend(s.prototype,r.prototype,{_flagTexture:!1,_flagColumns:!1,_flagRows:!1,_flagFrameRate:!1,flagIndex:!1,_amount:1,_duration:0,_startTime:0,_playing:!1,_firstFrame:0,_lastFrame:0,_loop:!0,_texture:null,_columns:1,_rows:1,_frameRate:0,_index:0,_origin:null,constructor:s,play:function(t,i,r){return this._playing=!0,this._firstFrame=0,this._lastFrame=this.amount-1,this._startTime=e.performance.now(),e.isNumber(t)&&(this._firstFrame=t),e.isNumber(i)&&(this._lastFrame=i),e.isFunction(r)?this._onLastFrame=r:delete this._onLastFrame,this._index!==this._firstFrame&&(this._startTime-=1e3*Math.abs(this._index-this._firstFrame)/this._frameRate),this},pause:function(){return this._playing=!1,this},stop:function(){return this._playing=!1,this._index=0,this},clone:function(t){var e=new s(this.texture,this.translation.x,this.translation.y,this.columns,this.rows,this.frameRate);return this.playing&&(e.play(this._firstFrame,this._lastFrame),e._loop=this._loop),t&&t.add(e),e},toObject:function(){var t=r.prototype.toObject.call(this);return t.texture=this.texture.toObject(),t.columns=this.columns,t.rows=this.rows,t.frameRate=this.frameRate,t.index=this.index,t._firstFrame=this._firstFrame,t._lastFrame=this._lastFrame,t._loop=this._loop,t},_update:function(){var t,i,s,n,a,o,l,h,c,d=this._texture,f=this._columns,u=this._rows;if((this._flagColumns||this._flagRows)&&(this._amount=this._columns*this._rows),this._flagFrameRate&&(this._duration=1e3*this._amount/this._frameRate),this._flagTexture&&(this.fill=this._texture),this._texture.loaded){t=(l=d.image.width)/f,i=(h=d.image.height)/u,n=this._amount,this.width!==t&&(this.width=t),this.height!==i&&(this.height=i),this._playing&&this._frameRate>0&&(e.isNaN(this._lastFrame)&&(this._lastFrame=n-1),s=e.performance.now()-this._startTime,a=1e3*((c=this._lastFrame+1)-this._firstFrame)/this._frameRate,this._loop?s%=a:s=Math.min(s,a),o=e.lerp(this._firstFrame,c,s/a),(o=Math.floor(o))!==this._index&&(this._index=o,o>=this._lastFrame-1&&this._onLastFrame&&this._onLastFrame()));var _=-t*(this._index%f)+(l-t)/2,g=-i*Math.floor(this._index/f)+(h-i)/2;_!==d.offset.x&&(d.offset.x=_),g!==d.offset.y&&(d.offset.y=g)}return r.prototype._update.call(this),this},flagReset:function(){return this._flagTexture=this._flagColumns=this._flagRows=this._flagFrameRate=!1,r.prototype.flagReset.call(this),this}}),s.MakeObservable(s.prototype)}(("undefined"!=typeof global?global:this||self||window).Two),function(t){var e=t.Utils,i=t.Path,r=t.Rectangle,s=t.ImageSequence=function(r,n,a,o){i.call(this,[new t.Anchor,new t.Anchor,new t.Anchor,new t.Anchor],!0),this._renderer.flagTextures=e.bind(s.FlagTextures,this),this._renderer.bindTextures=e.bind(s.BindTextures,this),this._renderer.unbindTextures=e.bind(s.UnbindTextures,this),this.noStroke(),this.noFill(),e.isObject(r)?this.textures=e.map(r,s.GenerateTexture,this):this.textures=[s.GenerateTexture(r)],this.origin=new t.Vector,this._update(),this.translation.set(n||0,a||0),e.isNumber(o)?this.frameRate=o:this.frameRate=s.DefaultFrameRate,this.index=0};e.extend(s,{Properties:["frameRate","index"],DefaultFrameRate:30,FlagTextures:function(){this._flagTextures=!0},BindTextures:function(e){for(var i=e.length;i--;)e[i].bind(t.Events.change,this._renderer.flagTextures);this._renderer.flagTextures()},UnbindTextures:function(e){for(var i=e.length;i--;)e[i].unbind(t.Events.change,this._renderer.flagTextures);this._renderer.flagTextures()},MakeObservable:function(i){r.MakeObservable(i),e.each(s.Properties,t.Utils.defineProperty,i),Object.defineProperty(i,"textures",{enumerable:!0,get:function(){return this._textures},set:function(e){this._renderer.flagTextures;var i=this._renderer.bindTextures,r=this._renderer.unbindTextures;this._textures&&this._textures.unbind(t.Events.insert,i).unbind(t.Events.remove,r),this._textures=new t.Utils.Collection((e||[]).slice(0)),this._textures.bind(t.Events.insert,i).bind(t.Events.remove,r),i(this._textures)}})},GenerateTexture:function(i){return i instanceof t.Texture?i:e.isString(i)?new t.Texture(i):void 0}}),e.extend(s.prototype,r.prototype,{_flagTextures:!1,_flagFrameRate:!1,_flagIndex:!1,_amount:1,_duration:0,_index:0,_startTime:0,_playing:!1,_firstFrame:0,_lastFrame:0,_loop:!0,_textures:null,_frameRate:0,_origin:null,constructor:s,play:function(t,i,r){return this._playing=!0,this._firstFrame=0,this._lastFrame=this.amount-1,this._startTime=e.performance.now(),e.isNumber(t)&&(this._firstFrame=t),e.isNumber(i)&&(this._lastFrame=i),e.isFunction(r)?this._onLastFrame=r:delete this._onLastFrame,this._index!==this._firstFrame&&(this._startTime-=1e3*Math.abs(this._index-this._firstFrame)/this._frameRate),this},pause:function(){return this._playing=!1,this},stop:function(){return this._playing=!1,this._index=this._firstFrame,this},clone:function(t){var e=new s(this.textures,this.translation.x,this.translation.y,this.frameRate);return e._loop=this._loop,this._playing&&e.play(),t&&t.add(e),e},toObject:function(){var t=r.prototype.toObject.call(this);return t.textures=e.map(this.textures,(function(t){return t.toObject()})),t.frameRate=this.frameRate,t.index=this.index,t._firstFrame=this._firstFrame,t._lastFrame=this._lastFrame,t._loop=this._loop,t},_update:function(){var i,s,n,a,o,l,h,c,d=this._textures;return this._flagTextures&&(this._amount=d.length),this._flagFrameRate&&(this._duration=1e3*this._amount/this._frameRate),this._playing&&this._frameRate>0?(a=this._amount,e.isNaN(this._lastFrame)&&(this._lastFrame=a-1),n=e.performance.now()-this._startTime,o=1e3*((c=this._lastFrame+1)-this._firstFrame)/this._frameRate,this._loop?n%=o:n=Math.min(n,o),h=e.lerp(this._firstFrame,c,n/o),(h=Math.floor(h))!==this._index&&(this._index=h,(l=d[this._index]).loaded&&(i=l.image.width,s=l.image.height,this.width!==i&&(this.width=i),this.height!==s&&(this.height=s),this.fill=l,h>=this._lastFrame-1&&this._onLastFrame&&this._onLastFrame()))):!this._flagIndex&&this.fill instanceof t.Texture||((l=d[this._index]).loaded&&(i=l.image.width,s=l.image.height,this.width!==i&&(this.width=i),this.height!==s&&(this.height=s)),this.fill=l),r.prototype._update.call(this),this},flagReset:function(){return this._flagTextures=this._flagFrameRate=!1,r.prototype.flagReset.call(this),this}}),s.MakeObservable(s.prototype)}(("undefined"!=typeof global?global:this||self||window).Two),function(t){var e=Math.min,i=Math.max,r=t.Utils,s=function(){t.Utils.Collection.apply(this,arguments),Object.defineProperty(this,"_events",{value:{},enumerable:!1}),this.ids={},this.on(t.Events.insert,this.attach),this.on(t.Events.remove,this.detach),s.prototype.attach.apply(this,arguments)};s.prototype=new t.Utils.Collection,r.extend(s.prototype,{constructor:s,attach:function(t){for(var e=0;e0&&(i=r.indexOf(e.subtractions,t))>=0&&e.subtractions.splice(i,1),e.additions.length>0&&(i=r.indexOf(e.additions,t))>=0&&e.additions.splice(i,1),t.parent=e,e.additions.push(t),e._flagAdditions=!0}function a(){(i=r.indexOf(s.additions,t))>=0&&s.additions.splice(i,1),(i=r.indexOf(s.subtractions,t))<0&&(s.subtractions.push(t),s._flagSubtractions=!0)}s!==e?(s&&s.children.ids[t.id]&&(i=r.indexOf(s.children,t),s.children.splice(i,1),a()),e?n():(a(),s._flagAdditions&&0===s.additions.length&&(s._flagAdditions=!1),s._flagSubtractions&&0===s.subtractions.length&&(s._flagSubtractions=!1),delete t.parent)):n()}r.extend(n,{Children:s,InsertChildren:function(t){for(var e=0;e=0&&e.push(s),s.children)for(var n=0;n=0&&this.children.splice(s,1),this.children.push(i)}}return this},remove:function(t){var e=arguments.length,i=this.parent;if(e<=0&&i)return i.remove(this),this;t=t instanceof Array?t.slice():r.toArray(arguments);for(var s=0;ss+h?(l.beginning=1,l.ending=1):as&&ns&&a className.indexOf(' ' + x + ' ') === -1); + + if (shouldRender) { + renderElem(childNode, optionsCopy); + } + } // Otherwise, it's something else, and ignore it. + + } +}; + +const renderMathInElement = function renderMathInElement(elem, options) { + if (!elem) { + throw new Error("No element provided to render"); + } + + const optionsCopy = {}; // Object.assign(optionsCopy, option) + + for (const option in options) { + if (options.hasOwnProperty(option)) { + optionsCopy[option] = options[option]; + } + } // default options + + + optionsCopy.delimiters = optionsCopy.delimiters || [{ + left: "$$", + right: "$$", + display: true + }, { + left: "\\(", + right: "\\)", + display: false + }, // LaTeX uses $…$, but it ruins the display of normal `$` in text: + // {left: "$", right: "$", display: false}, + // \[…\] must come last in this array. Otherwise, renderMathInElement + // will search for \[ before it searches for $$ or \( + // That makes it susceptible to finding a \\[0.3em] row delimiter and + // treating it as if it were the start of a KaTeX math zone. + { + left: "\\[", + right: "\\]", + display: true + }]; + optionsCopy.ignoredTags = optionsCopy.ignoredTags || ["script", "noscript", "style", "textarea", "pre", "code", "option"]; + optionsCopy.ignoredClasses = optionsCopy.ignoredClasses || []; + optionsCopy.errorCallback = optionsCopy.errorCallback || console.error; // Enable sharing of global macros defined via `\gdef` between different + // math elements within a single call to `renderMathInElement`. + + optionsCopy.macros = optionsCopy.macros || {}; + renderElem(elem, optionsCopy); +}; + +export default renderMathInElement; diff --git a/katex/contrib/copy-tex.css b/katex/contrib/copy-tex.css new file mode 100644 index 000000000..90801d842 --- /dev/null +++ b/katex/contrib/copy-tex.css @@ -0,0 +1,14 @@ +/* Force selection of entire .katex/.katex-display blocks, so that we can + * copy/paste the entire source code. If you omit this CSS, partial + * selections of a formula will work, but will copy the ugly HTML + * representation instead of the LaTeX source code. (Full selections will + * still produce the LaTeX source code.) + */ +.katex, +.katex-display { + user-select: all; + -moz-user-select: all; + -webkit-user-select: all; + -ms-user-select: all; +} + diff --git a/katex/contrib/copy-tex.js b/katex/contrib/copy-tex.js new file mode 100644 index 000000000..4649f8f7e --- /dev/null +++ b/katex/contrib/copy-tex.js @@ -0,0 +1,213 @@ +(function webpackUniversalModuleDefinition(root, factory) { + if(typeof exports === 'object' && typeof module === 'object') + module.exports = factory(); + else if(typeof define === 'function' && define.amd) + define([], factory); + else { + var a = factory(); + for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i]; + } +})((typeof self !== 'undefined' ? self : this), function() { +return /******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) { +/******/ return installedModules[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); +/******/ } +/******/ }; +/******/ +/******/ // define __esModule on exports +/******/ __webpack_require__.r = function(exports) { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ +/******/ // create a fake namespace object +/******/ // mode & 1: value is a module id, require it +/******/ // mode & 2: merge all properties of value into the ns +/******/ // mode & 4: return value when already ns object +/******/ // mode & 8|1: behave like require +/******/ __webpack_require__.t = function(value, mode) { +/******/ if(mode & 1) value = __webpack_require__(value); +/******/ if(mode & 8) return value; +/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; +/******/ var ns = Object.create(null); +/******/ __webpack_require__.r(ns); +/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); +/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); +/******/ return ns; +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = 1); +/******/ }) +/************************************************************************/ +/******/ ([ +/* 0 */ +/***/ (function(module, exports, __webpack_require__) { + +// extracted by mini-css-extract-plugin + +/***/ }), +/* 1 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + +// EXTERNAL MODULE: ./contrib/copy-tex/copy-tex.css +var copy_tex = __webpack_require__(0); + +// CONCATENATED MODULE: ./contrib/copy-tex/katex2tex.js +// Set these to how you want inline and display math to be delimited. +var defaultCopyDelimiters = { + inline: ['$', '$'], + // alternative: ['\(', '\)'] + display: ['$$', '$$'] // alternative: ['\[', '\]'] + +}; // Replace .katex elements with their TeX source ( element). +// Modifies fragment in-place. Useful for writing your own 'copy' handler, +// as in copy-tex.js. + +var katexReplaceWithTex = function katexReplaceWithTex(fragment, copyDelimiters) { + if (copyDelimiters === void 0) { + copyDelimiters = defaultCopyDelimiters; + } + + // Remove .katex-html blocks that are preceded by .katex-mathml blocks + // (which will get replaced below). + var katexHtml = fragment.querySelectorAll('.katex-mathml + .katex-html'); + + for (var i = 0; i < katexHtml.length; i++) { + var element = katexHtml[i]; + + if (element.remove) { + element.remove(null); + } else { + element.parentNode.removeChild(element); + } + } // Replace .katex-mathml elements with their annotation (TeX source) + // descendant, with inline delimiters. + + + var katexMathml = fragment.querySelectorAll('.katex-mathml'); + + for (var _i = 0; _i < katexMathml.length; _i++) { + var _element = katexMathml[_i]; + + var texSource = _element.querySelector('annotation'); + + if (texSource) { + if (_element.replaceWith) { + _element.replaceWith(texSource); + } else { + _element.parentNode.replaceChild(texSource, _element); + } + + texSource.innerHTML = copyDelimiters.inline[0] + texSource.innerHTML + copyDelimiters.inline[1]; + } + } // Switch display math to display delimiters. + + + var displays = fragment.querySelectorAll('.katex-display annotation'); + + for (var _i2 = 0; _i2 < displays.length; _i2++) { + var _element2 = displays[_i2]; + _element2.innerHTML = copyDelimiters.display[0] + _element2.innerHTML.substr(copyDelimiters.inline[0].length, _element2.innerHTML.length - copyDelimiters.inline[0].length - copyDelimiters.inline[1].length) + copyDelimiters.display[1]; + } + + return fragment; +}; +/* harmony default export */ var katex2tex = (katexReplaceWithTex); +// CONCATENATED MODULE: ./contrib/copy-tex/copy-tex.js + // Global copy handler to modify behavior on .katex elements. + +document.addEventListener('copy', function (event) { + var selection = window.getSelection(); + + if (selection.isCollapsed) { + return; // default action OK if selection is empty + } + + var fragment = selection.getRangeAt(0).cloneContents(); + + if (!fragment.querySelector('.katex-mathml')) { + return; // default action OK if no .katex-mathml elements + } // Preserve usual HTML copy/paste behavior. + + + var html = []; + + for (var i = 0; i < fragment.childNodes.length; i++) { + html.push(fragment.childNodes[i].outerHTML); + } + + event.clipboardData.setData('text/html', html.join('')); // Rewrite plain-text version. + + event.clipboardData.setData('text/plain', katex2tex(fragment).textContent); // Prevent normal copy handling. + + event.preventDefault(); +}); +// CONCATENATED MODULE: ./contrib/copy-tex/copy-tex.webpack.js +/** + * This is the webpack entry point for KaTeX. As ECMAScript doesn't support + * CSS modules natively, a separate entry point is used. + */ + + + +/***/ }) +/******/ ])["default"]; +}); \ No newline at end of file diff --git a/katex/contrib/copy-tex.min.css b/katex/contrib/copy-tex.min.css new file mode 100644 index 000000000..555ed1156 --- /dev/null +++ b/katex/contrib/copy-tex.min.css @@ -0,0 +1 @@ +.katex,.katex-display{user-select:all;-moz-user-select:all;-webkit-user-select:all;-ms-user-select:all} diff --git a/katex/contrib/copy-tex.min.js b/katex/contrib/copy-tex.min.js new file mode 100644 index 000000000..e0354d6b9 --- /dev/null +++ b/katex/contrib/copy-tex.min.js @@ -0,0 +1 @@ +!function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var n=t();for(var r in n)("object"==typeof exports?exports:e)[r]=n[r]}}("undefined"!=typeof self?self:this,function(){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=1)}([function(e,t,n){},function(e,t,n){"use strict";n.r(t);n(0);var r={inline:["$","$"],display:["$$","$$"]},o=function(e,t){void 0===t&&(t=r);for(var n=e.querySelectorAll(".katex-mathml + .katex-html"),o=0;o element). +// Modifies fragment in-place. Useful for writing your own 'copy' handler, +// as in copy-tex.js. + +const katexReplaceWithTex = function katexReplaceWithTex(fragment, copyDelimiters) { + if (copyDelimiters === void 0) { + copyDelimiters = defaultCopyDelimiters; + } + + // Remove .katex-html blocks that are preceded by .katex-mathml blocks + // (which will get replaced below). + const katexHtml = fragment.querySelectorAll('.katex-mathml + .katex-html'); + + for (let i = 0; i < katexHtml.length; i++) { + const element = katexHtml[i]; + + if (element.remove) { + element.remove(null); + } else { + element.parentNode.removeChild(element); + } + } // Replace .katex-mathml elements with their annotation (TeX source) + // descendant, with inline delimiters. + + + const katexMathml = fragment.querySelectorAll('.katex-mathml'); + + for (let i = 0; i < katexMathml.length; i++) { + const element = katexMathml[i]; + const texSource = element.querySelector('annotation'); + + if (texSource) { + if (element.replaceWith) { + element.replaceWith(texSource); + } else { + element.parentNode.replaceChild(texSource, element); + } + + texSource.innerHTML = copyDelimiters.inline[0] + texSource.innerHTML + copyDelimiters.inline[1]; + } + } // Switch display math to display delimiters. + + + const displays = fragment.querySelectorAll('.katex-display annotation'); + + for (let i = 0; i < displays.length; i++) { + const element = displays[i]; + element.innerHTML = copyDelimiters.display[0] + element.innerHTML.substr(copyDelimiters.inline[0].length, element.innerHTML.length - copyDelimiters.inline[0].length - copyDelimiters.inline[1].length) + copyDelimiters.display[1]; + } + + return fragment; +}; + +document.addEventListener('copy', function (event) { + const selection = window.getSelection(); + + if (selection.isCollapsed) { + return; // default action OK if selection is empty + } + + const fragment = selection.getRangeAt(0).cloneContents(); + + if (!fragment.querySelector('.katex-mathml')) { + return; // default action OK if no .katex-mathml elements + } // Preserve usual HTML copy/paste behavior. + + + const html = []; + + for (let i = 0; i < fragment.childNodes.length; i++) { + html.push(fragment.childNodes[i].outerHTML); + } + + event.clipboardData.setData('text/html', html.join('')); // Rewrite plain-text version. + + event.clipboardData.setData('text/plain', katexReplaceWithTex(fragment).textContent); // Prevent normal copy handling. + + event.preventDefault(); +}); diff --git a/katex/contrib/mathtex-script-type.js b/katex/contrib/mathtex-script-type.js new file mode 100644 index 000000000..daa01a633 --- /dev/null +++ b/katex/contrib/mathtex-script-type.js @@ -0,0 +1,137 @@ +(function webpackUniversalModuleDefinition(root, factory) { + if(typeof exports === 'object' && typeof module === 'object') + module.exports = factory(require("katex")); + else if(typeof define === 'function' && define.amd) + define(["katex"], factory); + else { + var a = typeof exports === 'object' ? factory(require("katex")) : factory(root["katex"]); + for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i]; + } +})((typeof self !== 'undefined' ? self : this), function(__WEBPACK_EXTERNAL_MODULE__0__) { +return /******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) { +/******/ return installedModules[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); +/******/ } +/******/ }; +/******/ +/******/ // define __esModule on exports +/******/ __webpack_require__.r = function(exports) { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ +/******/ // create a fake namespace object +/******/ // mode & 1: value is a module id, require it +/******/ // mode & 2: merge all properties of value into the ns +/******/ // mode & 4: return value when already ns object +/******/ // mode & 8|1: behave like require +/******/ __webpack_require__.t = function(value, mode) { +/******/ if(mode & 1) value = __webpack_require__(value); +/******/ if(mode & 8) return value; +/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; +/******/ var ns = Object.create(null); +/******/ __webpack_require__.r(ns); +/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); +/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); +/******/ return ns; +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = 1); +/******/ }) +/************************************************************************/ +/******/ ([ +/* 0 */ +/***/ (function(module, exports) { + +module.exports = __WEBPACK_EXTERNAL_MODULE__0__; + +/***/ }), +/* 1 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var katex__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0); +/* harmony import */ var katex__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(katex__WEBPACK_IMPORTED_MODULE_0__); + +var scripts = document.body.getElementsByTagName("script"); +scripts = Array.prototype.slice.call(scripts); +scripts.forEach(function (script) { + if (!script.type || !script.type.match(/math\/tex/i)) { + return -1; + } + + var display = script.type.match(/mode\s*=\s*display(;|\s|\n|$)/) != null; + var katexElement = document.createElement(display ? "div" : "span"); + katexElement.setAttribute("class", display ? "equation" : "inline-equation"); + + try { + katex__WEBPACK_IMPORTED_MODULE_0___default.a.render(script.text, katexElement, { + displayMode: display + }); + } catch (err) { + //console.error(err); linter doesn't like this + katexElement.textContent = script.text; + } + + script.parentNode.replaceChild(katexElement, script); +}); + +/***/ }) +/******/ ])["default"]; +}); \ No newline at end of file diff --git a/katex/contrib/mathtex-script-type.min.js b/katex/contrib/mathtex-script-type.min.js new file mode 100644 index 000000000..ae9f52869 --- /dev/null +++ b/katex/contrib/mathtex-script-type.min.js @@ -0,0 +1 @@ +!function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t(require("katex"));else if("function"==typeof define&&define.amd)define(["katex"],t);else{var r="object"==typeof exports?t(require("katex")):t(e.katex);for(var n in r)("object"==typeof exports?exports:e)[n]=r[n]}}("undefined"!=typeof self?self:this,function(e){return function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=1)}([function(t,r){t.exports=e},function(e,t,r){"use strict";r.r(t);var n=r(0),o=r.n(n),u=document.body.getElementsByTagName("script");(u=Array.prototype.slice.call(u)).forEach(function(e){if(!e.type||!e.type.match(/math\/tex/i))return-1;var t=null!=e.type.match(/mode\s*=\s*display(;|\s|\n|$)/),r=document.createElement(t?"div":"span");r.setAttribute("class",t?"equation":"inline-equation");try{o.a.render(e.text,r,{displayMode:t})}catch(t){r.textContent=e.text}e.parentNode.replaceChild(r,e)})}]).default}); \ No newline at end of file diff --git a/katex/contrib/mathtex-script-type.mjs b/katex/contrib/mathtex-script-type.mjs new file mode 100644 index 000000000..7cfb90e98 --- /dev/null +++ b/katex/contrib/mathtex-script-type.mjs @@ -0,0 +1,24 @@ +import katex from '../katex.mjs'; + +let scripts = document.body.getElementsByTagName("script"); +scripts = Array.prototype.slice.call(scripts); +scripts.forEach(function (script) { + if (!script.type || !script.type.match(/math\/tex/i)) { + return -1; + } + + const display = script.type.match(/mode\s*=\s*display(;|\s|\n|$)/) != null; + const katexElement = document.createElement(display ? "div" : "span"); + katexElement.setAttribute("class", display ? "equation" : "inline-equation"); + + try { + katex.render(script.text, katexElement, { + displayMode: display + }); + } catch (err) { + //console.error(err); linter doesn't like this + katexElement.textContent = script.text; + } + + script.parentNode.replaceChild(katexElement, script); +}); diff --git a/katex/contrib/mhchem.js b/katex/contrib/mhchem.js new file mode 100644 index 000000000..f84566ef4 --- /dev/null +++ b/katex/contrib/mhchem.js @@ -0,0 +1,3241 @@ +(function webpackUniversalModuleDefinition(root, factory) { + if(typeof exports === 'object' && typeof module === 'object') + module.exports = factory(require("katex")); + else if(typeof define === 'function' && define.amd) + define(["katex"], factory); + else { + var a = typeof exports === 'object' ? factory(require("katex")) : factory(root["katex"]); + for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i]; + } +})((typeof self !== 'undefined' ? self : this), function(__WEBPACK_EXTERNAL_MODULE__0__) { +return /******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) { +/******/ return installedModules[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); +/******/ } +/******/ }; +/******/ +/******/ // define __esModule on exports +/******/ __webpack_require__.r = function(exports) { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ +/******/ // create a fake namespace object +/******/ // mode & 1: value is a module id, require it +/******/ // mode & 2: merge all properties of value into the ns +/******/ // mode & 4: return value when already ns object +/******/ // mode & 8|1: behave like require +/******/ __webpack_require__.t = function(value, mode) { +/******/ if(mode & 1) value = __webpack_require__(value); +/******/ if(mode & 8) return value; +/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; +/******/ var ns = Object.create(null); +/******/ __webpack_require__.r(ns); +/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); +/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); +/******/ return ns; +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = 1); +/******/ }) +/************************************************************************/ +/******/ ([ +/* 0 */ +/***/ (function(module, exports) { + +module.exports = __WEBPACK_EXTERNAL_MODULE__0__; + +/***/ }), +/* 1 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var katex__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0); +/* harmony import */ var katex__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(katex__WEBPACK_IMPORTED_MODULE_0__); +/* eslint-disable */ + +/* -*- Mode: Javascript; indent-tabs-mode:nil; js-indent-level: 2 -*- */ + +/* vim: set ts=2 et sw=2 tw=80: */ + +/************************************************************* + * + * KaTeX mhchem.js + * + * This file implements a KaTeX version of mhchem version 3.3.0. + * It is adapted from MathJax/extensions/TeX/mhchem.js + * It differs from the MathJax version as follows: + * 1. The interface is changed so that it can be called from KaTeX, not MathJax. + * 2. \rlap and \llap are replaced with \mathrlap and \mathllap. + * 3. Four lines of code are edited in order to use \raisebox instead of \raise. + * 4. The reaction arrow code is simplified. All reaction arrows are rendered + * using KaTeX extensible arrows instead of building non-extensible arrows. + * 5. \tripledash vertical alignment is slightly adjusted. + * + * This code, as other KaTeX code, is released under the MIT license. + * + * /************************************************************* + * + * MathJax/extensions/TeX/mhchem.js + * + * Implements the \ce command for handling chemical formulas + * from the mhchem LaTeX package. + * + * --------------------------------------------------------------------- + * + * Copyright (c) 2011-2015 The MathJax Consortium + * Copyright (c) 2015-2018 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. + */ +// +// Coding Style +// - use '' for identifiers that can by minified/uglified +// - use "" for strings that need to stay untouched +// version: "3.3.0" for MathJax and KaTeX +// Add \ce, \pu, and \tripledash to the KaTeX macros. +katex__WEBPACK_IMPORTED_MODULE_0___default.a.__defineMacro("\\ce", function (context) { + return chemParse(context.consumeArgs(1)[0], "ce"); +}); + +katex__WEBPACK_IMPORTED_MODULE_0___default.a.__defineMacro("\\pu", function (context) { + return chemParse(context.consumeArgs(1)[0], "pu"); +}); // Needed for \bond for the ~ forms +// Raise by 2.56mu, not 2mu. We're raising a hyphen-minus, U+002D, not +// a mathematical minus, U+2212. So we need that extra 0.56. + + +katex__WEBPACK_IMPORTED_MODULE_0___default.a.__defineMacro("\\tripledash", "{\\vphantom{-}\\raisebox{2.56mu}{$\\mkern2mu" + "\\tiny\\text{-}\\mkern1mu\\text{-}\\mkern1mu\\text{-}\\mkern2mu$}}"); + + // +// This is the main function for handing the \ce and \pu commands. +// It takes the argument to \ce or \pu and returns the corresponding TeX string. +// + +var chemParse = function chemParse(tokens, stateMachine) { + // Recreate the argument string from KaTeX's array of tokens. + var str = ""; + var expectedLoc = tokens[tokens.length - 1].loc.start; + + for (var i = tokens.length - 1; i >= 0; i--) { + if (tokens[i].loc.start > expectedLoc) { + // context.consumeArgs has eaten a space. + str += " "; + expectedLoc = tokens[i].loc.start; + } + + str += tokens[i].text; + expectedLoc += tokens[i].text.length; + } + + var tex = texify.go(mhchemParser.go(str, stateMachine)); + return tex; +}; // +// Core parser for mhchem syntax (recursive) +// + +/** @type {MhchemParser} */ + + +var mhchemParser = { + // + // Parses mchem \ce syntax + // + // Call like + // go("H2O"); + // + go: function go(input, stateMachine) { + if (!input) { + return []; + } + + if (stateMachine === undefined) { + stateMachine = 'ce'; + } + + var state = '0'; // + // String buffers for parsing: + // + // buffer.a == amount + // buffer.o == element + // buffer.b == left-side superscript + // buffer.p == left-side subscript + // buffer.q == right-side subscript + // buffer.d == right-side superscript + // + // buffer.r == arrow + // buffer.rdt == arrow, script above, type + // buffer.rd == arrow, script above, content + // buffer.rqt == arrow, script below, type + // buffer.rq == arrow, script below, content + // + // buffer.text_ + // buffer.rm + // etc. + // + // buffer.parenthesisLevel == int, starting at 0 + // buffer.sb == bool, space before + // buffer.beginsWithBond == bool + // + // These letters are also used as state names. + // + // Other states: + // 0 == begin of main part (arrow/operator unlikely) + // 1 == next entity + // 2 == next entity (arrow/operator unlikely) + // 3 == next atom + // c == macro + // + + /** @type {Buffer} */ + + var buffer = {}; + buffer['parenthesisLevel'] = 0; + input = input.replace(/\n/g, " "); + input = input.replace(/[\u2212\u2013\u2014\u2010]/g, "-"); + input = input.replace(/[\u2026]/g, "..."); // + // Looks through mhchemParser.transitions, to execute a matching action + // (recursive) + // + + var lastInput; + var watchdog = 10; + /** @type {ParserOutput[]} */ + + var output = []; + + while (true) { + if (lastInput !== input) { + watchdog = 10; + lastInput = input; + } else { + watchdog--; + } // + // Find actions in transition table + // + + + var machine = mhchemParser.stateMachines[stateMachine]; + var t = machine.transitions[state] || machine.transitions['*']; + + iterateTransitions: for (var i = 0; i < t.length; i++) { + var matches = mhchemParser.patterns.match_(t[i].pattern, input); + + if (matches) { + // + // Execute actions + // + var task = t[i].task; + + for (var iA = 0; iA < task.action_.length; iA++) { + var o; // + // Find and execute action + // + + if (machine.actions[task.action_[iA].type_]) { + o = machine.actions[task.action_[iA].type_](buffer, matches.match_, task.action_[iA].option); + } else if (mhchemParser.actions[task.action_[iA].type_]) { + o = mhchemParser.actions[task.action_[iA].type_](buffer, matches.match_, task.action_[iA].option); + } else { + throw ["MhchemBugA", "mhchem bug A. Please report. (" + task.action_[iA].type_ + ")"]; // Trying to use non-existing action + } // + // Add output + // + + + mhchemParser.concatArray(output, o); + } // + // Set next state, + // Shorten input, + // Continue with next character + // (= apply only one transition per position) + // + + + state = task.nextState || state; + + if (input.length > 0) { + if (!task.revisit) { + input = matches.remainder; + } + + if (!task.toContinue) { + break iterateTransitions; + } + } else { + return output; + } + } + } // + // Prevent infinite loop + // + + + if (watchdog <= 0) { + throw ["MhchemBugU", "mhchem bug U. Please report."]; // Unexpected character + } + } + }, + concatArray: function concatArray(a, b) { + if (b) { + if (Array.isArray(b)) { + for (var iB = 0; iB < b.length; iB++) { + a.push(b[iB]); + } + } else { + a.push(b); + } + } + }, + patterns: { + // + // Matching patterns + // either regexps or function that return null or {match_:"a", remainder:"bc"} + // + patterns: { + // property names must not look like integers ("2") for correct property traversal order, later on + 'empty': /^$/, + 'else': /^./, + 'else2': /^./, + 'space': /^\s/, + 'space A': /^\s(?=[A-Z\\$])/, + 'space$': /^\s$/, + 'a-z': /^[a-z]/, + 'x': /^x/, + 'x$': /^x$/, + 'i$': /^i$/, + 'letters': /^(?:[a-zA-Z\u03B1-\u03C9\u0391-\u03A9?@]|(?:\\(?:alpha|beta|gamma|delta|epsilon|zeta|eta|theta|iota|kappa|lambda|mu|nu|xi|omicron|pi|rho|sigma|tau|upsilon|phi|chi|psi|omega|Gamma|Delta|Theta|Lambda|Xi|Pi|Sigma|Upsilon|Phi|Psi|Omega)(?:\s+|\{\}|(?![a-zA-Z]))))+/, + '\\greek': /^\\(?:alpha|beta|gamma|delta|epsilon|zeta|eta|theta|iota|kappa|lambda|mu|nu|xi|omicron|pi|rho|sigma|tau|upsilon|phi|chi|psi|omega|Gamma|Delta|Theta|Lambda|Xi|Pi|Sigma|Upsilon|Phi|Psi|Omega)(?:\s+|\{\}|(?![a-zA-Z]))/, + 'one lowercase latin letter $': /^(?:([a-z])(?:$|[^a-zA-Z]))$/, + '$one lowercase latin letter$ $': /^\$(?:([a-z])(?:$|[^a-zA-Z]))\$$/, + 'one lowercase greek letter $': /^(?:\$?[\u03B1-\u03C9]\$?|\$?\\(?:alpha|beta|gamma|delta|epsilon|zeta|eta|theta|iota|kappa|lambda|mu|nu|xi|omicron|pi|rho|sigma|tau|upsilon|phi|chi|psi|omega)\s*\$?)(?:\s+|\{\}|(?![a-zA-Z]))$/, + 'digits': /^[0-9]+/, + '-9.,9': /^[+\-]?(?:[0-9]+(?:[,.][0-9]+)?|[0-9]*(?:\.[0-9]+))/, + '-9.,9 no missing 0': /^[+\-]?[0-9]+(?:[.,][0-9]+)?/, + '(-)(9.,9)(e)(99)': function e99(input) { + var m = input.match(/^(\+\-|\+\/\-|\+|\-|\\pm\s?)?([0-9]+(?:[,.][0-9]+)?|[0-9]*(?:\.[0-9]+))?(\((?:[0-9]+(?:[,.][0-9]+)?|[0-9]*(?:\.[0-9]+))\))?(?:([eE]|\s*(\*|x|\\times|\u00D7)\s*10\^)([+\-]?[0-9]+|\{[+\-]?[0-9]+\}))?/); + + if (m && m[0]) { + return { + match_: m.splice(1), + remainder: input.substr(m[0].length) + }; + } + + return null; + }, + '(-)(9)^(-9)': function _(input) { + var m = input.match(/^(\+\-|\+\/\-|\+|\-|\\pm\s?)?([0-9]+(?:[,.][0-9]+)?|[0-9]*(?:\.[0-9]+)?)\^([+\-]?[0-9]+|\{[+\-]?[0-9]+\})/); + + if (m && m[0]) { + return { + match_: m.splice(1), + remainder: input.substr(m[0].length) + }; + } + + return null; + }, + 'state of aggregation $': function stateOfAggregation$(input) { + // ... or crystal system + var a = mhchemParser.patterns.findObserveGroups(input, "", /^\([a-z]{1,3}(?=[\),])/, ")", ""); // (aq), (aq,$\infty$), (aq, sat) + + if (a && a.remainder.match(/^($|[\s,;\)\]\}])/)) { + return a; + } // AND end of 'phrase' + + + var m = input.match(/^(?:\((?:\\ca\s?)?\$[amothc]\$\))/); // OR crystal system ($o$) (\ca$c$) + + if (m) { + return { + match_: m[0], + remainder: input.substr(m[0].length) + }; + } + + return null; + }, + '_{(state of aggregation)}$': /^_\{(\([a-z]{1,3}\))\}/, + '{[(': /^(?:\\\{|\[|\()/, + ')]}': /^(?:\)|\]|\\\})/, + ', ': /^[,;]\s*/, + ',': /^[,;]/, + '.': /^[.]/, + '. ': /^([.\u22C5\u00B7\u2022])\s*/, + '...': /^\.\.\.(?=$|[^.])/, + '* ': /^([*])\s*/, + '^{(...)}': function _(input) { + return mhchemParser.patterns.findObserveGroups(input, "^{", "", "", "}"); + }, + '^($...$)': function $$(input) { + return mhchemParser.patterns.findObserveGroups(input, "^", "$", "$", ""); + }, + '^a': /^\^([0-9]+|[^\\_])/, + '^\\x{}{}': function x(input) { + return mhchemParser.patterns.findObserveGroups(input, "^", /^\\[a-zA-Z]+\{/, "}", "", "", "{", "}", "", true); + }, + '^\\x{}': function x(input) { + return mhchemParser.patterns.findObserveGroups(input, "^", /^\\[a-zA-Z]+\{/, "}", ""); + }, + '^\\x': /^\^(\\[a-zA-Z]+)\s*/, + '^(-1)': /^\^(-?\d+)/, + '\'': /^'/, + '_{(...)}': function _(input) { + return mhchemParser.patterns.findObserveGroups(input, "_{", "", "", "}"); + }, + '_($...$)': function _$$(input) { + return mhchemParser.patterns.findObserveGroups(input, "_", "$", "$", ""); + }, + '_9': /^_([+\-]?[0-9]+|[^\\])/, + '_\\x{}{}': function _X(input) { + return mhchemParser.patterns.findObserveGroups(input, "_", /^\\[a-zA-Z]+\{/, "}", "", "", "{", "}", "", true); + }, + '_\\x{}': function _X(input) { + return mhchemParser.patterns.findObserveGroups(input, "_", /^\\[a-zA-Z]+\{/, "}", ""); + }, + '_\\x': /^_(\\[a-zA-Z]+)\s*/, + '^_': /^(?:\^(?=_)|\_(?=\^)|[\^_]$)/, + '{}': /^\{\}/, + '{...}': function _(input) { + return mhchemParser.patterns.findObserveGroups(input, "", "{", "}", ""); + }, + '{(...)}': function _(input) { + return mhchemParser.patterns.findObserveGroups(input, "{", "", "", "}"); + }, + '$...$': function $$(input) { + return mhchemParser.patterns.findObserveGroups(input, "", "$", "$", ""); + }, + '${(...)}$': function $$(input) { + return mhchemParser.patterns.findObserveGroups(input, "${", "", "", "}$"); + }, + '$(...)$': function $$(input) { + return mhchemParser.patterns.findObserveGroups(input, "$", "", "", "$"); + }, + '=<>': /^[=<>]/, + '#': /^[#\u2261]/, + '+': /^\+/, + '-$': /^-(?=[\s_},;\]/]|$|\([a-z]+\))/, + // -space -, -; -] -/ -$ -state-of-aggregation + '-9': /^-(?=[0-9])/, + '- orbital overlap': /^-(?=(?:[spd]|sp)(?:$|[\s,;\)\]\}]))/, + '-': /^-/, + 'pm-operator': /^(?:\\pm|\$\\pm\$|\+-|\+\/-)/, + 'operator': /^(?:\+|(?:[\-=<>]|<<|>>|\\approx|\$\\approx\$)(?=\s|$|-?[0-9]))/, + 'arrowUpDown': /^(?:v|\(v\)|\^|\(\^\))(?=$|[\s,;\)\]\}])/, + '\\bond{(...)}': function bond(input) { + return mhchemParser.patterns.findObserveGroups(input, "\\bond{", "", "", "}"); + }, + '->': /^(?:<->|<-->|->|<-|<=>>|<<=>|<=>|[\u2192\u27F6\u21CC])/, + 'CMT': /^[CMT](?=\[)/, + '[(...)]': function _(input) { + return mhchemParser.patterns.findObserveGroups(input, "[", "", "", "]"); + }, + '1st-level escape': /^(&|\\\\|\\hline)\s*/, + '\\,': /^(?:\\[,\ ;:])/, + // \\x - but output no space before + '\\x{}{}': function x(input) { + return mhchemParser.patterns.findObserveGroups(input, "", /^\\[a-zA-Z]+\{/, "}", "", "", "{", "}", "", true); + }, + '\\x{}': function x(input) { + return mhchemParser.patterns.findObserveGroups(input, "", /^\\[a-zA-Z]+\{/, "}", ""); + }, + '\\ca': /^\\ca(?:\s+|(?![a-zA-Z]))/, + '\\x': /^(?:\\[a-zA-Z]+\s*|\\[_&{}%])/, + 'orbital': /^(?:[0-9]{1,2}[spdfgh]|[0-9]{0,2}sp)(?=$|[^a-zA-Z])/, + // only those with numbers in front, because the others will be formatted correctly anyway + 'others': /^[\/~|]/, + '\\frac{(...)}': function frac(input) { + return mhchemParser.patterns.findObserveGroups(input, "\\frac{", "", "", "}", "{", "", "", "}"); + }, + '\\overset{(...)}': function overset(input) { + return mhchemParser.patterns.findObserveGroups(input, "\\overset{", "", "", "}", "{", "", "", "}"); + }, + "\\underset{(...)}": function underset(input) { + return mhchemParser.patterns.findObserveGroups(input, "\\underset{", "", "", "}", "{", "", "", "}"); + }, + "\\underbrace{(...)}": function underbrace(input) { + return mhchemParser.patterns.findObserveGroups(input, "\\underbrace{", "", "", "}_", "{", "", "", "}"); + }, + '\\color{(...)}0': function color0(input) { + return mhchemParser.patterns.findObserveGroups(input, "\\color{", "", "", "}"); + }, + '\\color{(...)}{(...)}1': function color1(input) { + return mhchemParser.patterns.findObserveGroups(input, "\\color{", "", "", "}", "{", "", "", "}"); + }, + '\\color(...){(...)}2': function color2(input) { + return mhchemParser.patterns.findObserveGroups(input, "\\color", "\\", "", /^(?=\{)/, "{", "", "", "}"); + }, + '\\ce{(...)}': function ce(input) { + return mhchemParser.patterns.findObserveGroups(input, "\\ce{", "", "", "}"); + }, + 'oxidation$': /^(?:[+-][IVX]+|\\pm\s*0|\$\\pm\$\s*0)$/, + 'd-oxidation$': /^(?:[+-]?\s?[IVX]+|\\pm\s*0|\$\\pm\$\s*0)$/, + // 0 could be oxidation or charge + 'roman numeral': /^[IVX]+/, + '1/2$': /^[+\-]?(?:[0-9]+|\$[a-z]\$|[a-z])\/[0-9]+(?:\$[a-z]\$|[a-z])?$/, + 'amount': function amount(input) { + var match; // e.g. 2, 0.5, 1/2, -2, n/2, +; $a$ could be added later in parsing + + match = input.match(/^(?:(?:(?:\([+\-]?[0-9]+\/[0-9]+\)|[+\-]?(?:[0-9]+|\$[a-z]\$|[a-z])\/[0-9]+|[+\-]?[0-9]+[.,][0-9]+|[+\-]?\.[0-9]+|[+\-]?[0-9]+)(?:[a-z](?=\s*[A-Z]))?)|[+\-]?[a-z](?=\s*[A-Z])|\+(?!\s))/); + + if (match) { + return { + match_: match[0], + remainder: input.substr(match[0].length) + }; + } + + var a = mhchemParser.patterns.findObserveGroups(input, "", "$", "$", ""); + + if (a) { + // e.g. $2n-1$, $-$ + match = a.match_.match(/^\$(?:\(?[+\-]?(?:[0-9]*[a-z]?[+\-])?[0-9]*[a-z](?:[+\-][0-9]*[a-z]?)?\)?|\+|-)\$$/); + + if (match) { + return { + match_: match[0], + remainder: input.substr(match[0].length) + }; + } + } + + return null; + }, + 'amount2': function amount2(input) { + return this['amount'](input); + }, + '(KV letters),': /^(?:[A-Z][a-z]{0,2}|i)(?=,)/, + 'formula$': function formula$(input) { + if (input.match(/^\([a-z]+\)$/)) { + return null; + } // state of aggregation = no formula + + + var match = input.match(/^(?:[a-z]|(?:[0-9\ \+\-\,\.\(\)]+[a-z])+[0-9\ \+\-\,\.\(\)]*|(?:[a-z][0-9\ \+\-\,\.\(\)]+)+[a-z]?)$/); + + if (match) { + return { + match_: match[0], + remainder: input.substr(match[0].length) + }; + } + + return null; + }, + 'uprightEntities': /^(?:pH|pOH|pC|pK|iPr|iBu)(?=$|[^a-zA-Z])/, + '/': /^\s*(\/)\s*/, + '//': /^\s*(\/\/)\s*/, + '*': /^\s*[*.]\s*/ + }, + findObserveGroups: function findObserveGroups(input, begExcl, begIncl, endIncl, endExcl, beg2Excl, beg2Incl, end2Incl, end2Excl, combine) { + /** @type {{(input: string, pattern: string | RegExp): string | string[] | null;}} */ + var _match = function _match(input, pattern) { + if (typeof pattern === "string") { + if (input.indexOf(pattern) !== 0) { + return null; + } + + return pattern; + } else { + var match = input.match(pattern); + + if (!match) { + return null; + } + + return match[0]; + } + }; + /** @type {{(input: string, i: number, endChars: string | RegExp): {endMatchBegin: number, endMatchEnd: number} | null;}} */ + + + var _findObserveGroups = function _findObserveGroups(input, i, endChars) { + var braces = 0; + + while (i < input.length) { + var a = input.charAt(i); + + var match = _match(input.substr(i), endChars); + + if (match !== null && braces === 0) { + return { + endMatchBegin: i, + endMatchEnd: i + match.length + }; + } else if (a === "{") { + braces++; + } else if (a === "}") { + if (braces === 0) { + throw ["ExtraCloseMissingOpen", "Extra close brace or missing open brace"]; + } else { + braces--; + } + } + + i++; + } + + if (braces > 0) { + return null; + } + + return null; + }; + + var match = _match(input, begExcl); + + if (match === null) { + return null; + } + + input = input.substr(match.length); + match = _match(input, begIncl); + + if (match === null) { + return null; + } + + var e = _findObserveGroups(input, match.length, endIncl || endExcl); + + if (e === null) { + return null; + } + + var match1 = input.substring(0, endIncl ? e.endMatchEnd : e.endMatchBegin); + + if (!(beg2Excl || beg2Incl)) { + return { + match_: match1, + remainder: input.substr(e.endMatchEnd) + }; + } else { + var group2 = this.findObserveGroups(input.substr(e.endMatchEnd), beg2Excl, beg2Incl, end2Incl, end2Excl); + + if (group2 === null) { + return null; + } + /** @type {string[]} */ + + + var matchRet = [match1, group2.match_]; + return { + match_: combine ? matchRet.join("") : matchRet, + remainder: group2.remainder + }; + } + }, + // + // Matching function + // e.g. match("a", input) will look for the regexp called "a" and see if it matches + // returns null or {match_:"a", remainder:"bc"} + // + match_: function match_(m, input) { + var pattern = mhchemParser.patterns.patterns[m]; + + if (pattern === undefined) { + throw ["MhchemBugP", "mhchem bug P. Please report. (" + m + ")"]; // Trying to use non-existing pattern + } else if (typeof pattern === "function") { + return mhchemParser.patterns.patterns[m](input); // cannot use cached var pattern here, because some pattern functions need this===mhchemParser + } else { + // RegExp + var match = input.match(pattern); + + if (match) { + var mm; + + if (match[2]) { + mm = [match[1], match[2]]; + } else if (match[1]) { + mm = match[1]; + } else { + mm = match[0]; + } + + return { + match_: mm, + remainder: input.substr(match[0].length) + }; + } + + return null; + } + } + }, + // + // Generic state machine actions + // + actions: { + 'a=': function a(buffer, m) { + buffer.a = (buffer.a || "") + m; + }, + 'b=': function b(buffer, m) { + buffer.b = (buffer.b || "") + m; + }, + 'p=': function p(buffer, m) { + buffer.p = (buffer.p || "") + m; + }, + 'o=': function o(buffer, m) { + buffer.o = (buffer.o || "") + m; + }, + 'q=': function q(buffer, m) { + buffer.q = (buffer.q || "") + m; + }, + 'd=': function d(buffer, m) { + buffer.d = (buffer.d || "") + m; + }, + 'rm=': function rm(buffer, m) { + buffer.rm = (buffer.rm || "") + m; + }, + 'text=': function text(buffer, m) { + buffer.text_ = (buffer.text_ || "") + m; + }, + 'insert': function insert(buffer, m, a) { + return { + type_: a + }; + }, + 'insert+p1': function insertP1(buffer, m, a) { + return { + type_: a, + p1: m + }; + }, + 'insert+p1+p2': function insertP1P2(buffer, m, a) { + return { + type_: a, + p1: m[0], + p2: m[1] + }; + }, + 'copy': function copy(buffer, m) { + return m; + }, + 'rm': function rm(buffer, m) { + return { + type_: 'rm', + p1: m || "" + }; + }, + 'text': function text(buffer, m) { + return mhchemParser.go(m, 'text'); + }, + '{text}': function text(buffer, m) { + var ret = ["{"]; + mhchemParser.concatArray(ret, mhchemParser.go(m, 'text')); + ret.push("}"); + return ret; + }, + 'tex-math': function texMath(buffer, m) { + return mhchemParser.go(m, 'tex-math'); + }, + 'tex-math tight': function texMathTight(buffer, m) { + return mhchemParser.go(m, 'tex-math tight'); + }, + 'bond': function bond(buffer, m, k) { + return { + type_: 'bond', + kind_: k || m + }; + }, + 'color0-output': function color0Output(buffer, m) { + return { + type_: 'color0', + color: m[0] + }; + }, + 'ce': function ce(buffer, m) { + return mhchemParser.go(m); + }, + '1/2': function _(buffer, m) { + /** @type {ParserOutput[]} */ + var ret = []; + + if (m.match(/^[+\-]/)) { + ret.push(m.substr(0, 1)); + m = m.substr(1); + } + + var n = m.match(/^([0-9]+|\$[a-z]\$|[a-z])\/([0-9]+)(\$[a-z]\$|[a-z])?$/); + n[1] = n[1].replace(/\$/g, ""); + ret.push({ + type_: 'frac', + p1: n[1], + p2: n[2] + }); + + if (n[3]) { + n[3] = n[3].replace(/\$/g, ""); + ret.push({ + type_: 'tex-math', + p1: n[3] + }); + } + + return ret; + }, + '9,9': function _(buffer, m) { + return mhchemParser.go(m, '9,9'); + } + }, + // + // createTransitions + // convert { 'letter': { 'state': { action_: 'output' } } } to { 'state' => [ { pattern: 'letter', task: { action_: [{type_: 'output'}] } } ] } + // with expansion of 'a|b' to 'a' and 'b' (at 2 places) + // + createTransitions: function createTransitions(o) { + var pattern, state; + /** @type {string[]} */ + + var stateArray; + var i; // + // 1. Collect all states + // + + /** @type {Transitions} */ + + var transitions = {}; + + for (pattern in o) { + for (state in o[pattern]) { + stateArray = state.split("|"); + o[pattern][state].stateArray = stateArray; + + for (i = 0; i < stateArray.length; i++) { + transitions[stateArray[i]] = []; + } + } + } // + // 2. Fill states + // + + + for (pattern in o) { + for (state in o[pattern]) { + stateArray = o[pattern][state].stateArray || []; + + for (i = 0; i < stateArray.length; i++) { + // + // 2a. Normalize actions into array: 'text=' ==> [{type_:'text='}] + // (Note to myself: Resolving the function here would be problematic. It would need .bind (for *this*) and currying (for *option*).) + // + + /** @type {any} */ + var p = o[pattern][state]; + + if (p.action_) { + p.action_ = [].concat(p.action_); + + for (var k = 0; k < p.action_.length; k++) { + if (typeof p.action_[k] === "string") { + p.action_[k] = { + type_: p.action_[k] + }; + } + } + } else { + p.action_ = []; + } // + // 2.b Multi-insert + // + + + var patternArray = pattern.split("|"); + + for (var j = 0; j < patternArray.length; j++) { + if (stateArray[i] === '*') { + // insert into all + for (var t in transitions) { + transitions[t].push({ + pattern: patternArray[j], + task: p + }); + } + } else { + transitions[stateArray[i]].push({ + pattern: patternArray[j], + task: p + }); + } + } + } + } + } + + return transitions; + }, + stateMachines: {} +}; // +// Definition of state machines +// + +mhchemParser.stateMachines = { + // + // \ce state machines + // + //#region ce + 'ce': { + // main parser + transitions: mhchemParser.createTransitions({ + 'empty': { + '*': { + action_: 'output' + } + }, + 'else': { + '0|1|2': { + action_: 'beginsWithBond=false', + revisit: true, + toContinue: true + } + }, + 'oxidation$': { + '0': { + action_: 'oxidation-output' + } + }, + 'CMT': { + 'r': { + action_: 'rdt=', + nextState: 'rt' + }, + 'rd': { + action_: 'rqt=', + nextState: 'rdt' + } + }, + 'arrowUpDown': { + '0|1|2|as': { + action_: ['sb=false', 'output', 'operator'], + nextState: '1' + } + }, + 'uprightEntities': { + '0|1|2': { + action_: ['o=', 'output'], + nextState: '1' + } + }, + 'orbital': { + '0|1|2|3': { + action_: 'o=', + nextState: 'o' + } + }, + '->': { + '0|1|2|3': { + action_: 'r=', + nextState: 'r' + }, + 'a|as': { + action_: ['output', 'r='], + nextState: 'r' + }, + '*': { + action_: ['output', 'r='], + nextState: 'r' + } + }, + '+': { + 'o': { + action_: 'd= kv', + nextState: 'd' + }, + 'd|D': { + action_: 'd=', + nextState: 'd' + }, + 'q': { + action_: 'd=', + nextState: 'qd' + }, + 'qd|qD': { + action_: 'd=', + nextState: 'qd' + }, + 'dq': { + action_: ['output', 'd='], + nextState: 'd' + }, + '3': { + action_: ['sb=false', 'output', 'operator'], + nextState: '0' + } + }, + 'amount': { + '0|2': { + action_: 'a=', + nextState: 'a' + } + }, + 'pm-operator': { + '0|1|2|a|as': { + action_: ['sb=false', 'output', { + type_: 'operator', + option: '\\pm' + }], + nextState: '0' + } + }, + 'operator': { + '0|1|2|a|as': { + action_: ['sb=false', 'output', 'operator'], + nextState: '0' + } + }, + '-$': { + 'o|q': { + action_: ['charge or bond', 'output'], + nextState: 'qd' + }, + 'd': { + action_: 'd=', + nextState: 'd' + }, + 'D': { + action_: ['output', { + type_: 'bond', + option: "-" + }], + nextState: '3' + }, + 'q': { + action_: 'd=', + nextState: 'qd' + }, + 'qd': { + action_: 'd=', + nextState: 'qd' + }, + 'qD|dq': { + action_: ['output', { + type_: 'bond', + option: "-" + }], + nextState: '3' + } + }, + '-9': { + '3|o': { + action_: ['output', { + type_: 'insert', + option: 'hyphen' + }], + nextState: '3' + } + }, + '- orbital overlap': { + 'o': { + action_: ['output', { + type_: 'insert', + option: 'hyphen' + }], + nextState: '2' + }, + 'd': { + action_: ['output', { + type_: 'insert', + option: 'hyphen' + }], + nextState: '2' + } + }, + '-': { + '0|1|2': { + action_: [{ + type_: 'output', + option: 1 + }, 'beginsWithBond=true', { + type_: 'bond', + option: "-" + }], + nextState: '3' + }, + '3': { + action_: { + type_: 'bond', + option: "-" + } + }, + 'a': { + action_: ['output', { + type_: 'insert', + option: 'hyphen' + }], + nextState: '2' + }, + 'as': { + action_: [{ + type_: 'output', + option: 2 + }, { + type_: 'bond', + option: "-" + }], + nextState: '3' + }, + 'b': { + action_: 'b=' + }, + 'o': { + action_: { + type_: '- after o/d', + option: false + }, + nextState: '2' + }, + 'q': { + action_: { + type_: '- after o/d', + option: false + }, + nextState: '2' + }, + 'd|qd|dq': { + action_: { + type_: '- after o/d', + option: true + }, + nextState: '2' + }, + 'D|qD|p': { + action_: ['output', { + type_: 'bond', + option: "-" + }], + nextState: '3' + } + }, + 'amount2': { + '1|3': { + action_: 'a=', + nextState: 'a' + } + }, + 'letters': { + '0|1|2|3|a|as|b|p|bp|o': { + action_: 'o=', + nextState: 'o' + }, + 'q|dq': { + action_: ['output', 'o='], + nextState: 'o' + }, + 'd|D|qd|qD': { + action_: 'o after d', + nextState: 'o' + } + }, + 'digits': { + 'o': { + action_: 'q=', + nextState: 'q' + }, + 'd|D': { + action_: 'q=', + nextState: 'dq' + }, + 'q': { + action_: ['output', 'o='], + nextState: 'o' + }, + 'a': { + action_: 'o=', + nextState: 'o' + } + }, + 'space A': { + 'b|p|bp': {} + }, + 'space': { + 'a': { + nextState: 'as' + }, + '0': { + action_: 'sb=false' + }, + '1|2': { + action_: 'sb=true' + }, + 'r|rt|rd|rdt|rdq': { + action_: 'output', + nextState: '0' + }, + '*': { + action_: ['output', 'sb=true'], + nextState: '1' + } + }, + '1st-level escape': { + '1|2': { + action_: ['output', { + type_: 'insert+p1', + option: '1st-level escape' + }] + }, + '*': { + action_: ['output', { + type_: 'insert+p1', + option: '1st-level escape' + }], + nextState: '0' + } + }, + '[(...)]': { + 'r|rt': { + action_: 'rd=', + nextState: 'rd' + }, + 'rd|rdt': { + action_: 'rq=', + nextState: 'rdq' + } + }, + '...': { + 'o|d|D|dq|qd|qD': { + action_: ['output', { + type_: 'bond', + option: "..." + }], + nextState: '3' + }, + '*': { + action_: [{ + type_: 'output', + option: 1 + }, { + type_: 'insert', + option: 'ellipsis' + }], + nextState: '1' + } + }, + '. |* ': { + '*': { + action_: ['output', { + type_: 'insert', + option: 'addition compound' + }], + nextState: '1' + } + }, + 'state of aggregation $': { + '*': { + action_: ['output', 'state of aggregation'], + nextState: '1' + } + }, + '{[(': { + 'a|as|o': { + action_: ['o=', 'output', 'parenthesisLevel++'], + nextState: '2' + }, + '0|1|2|3': { + action_: ['o=', 'output', 'parenthesisLevel++'], + nextState: '2' + }, + '*': { + action_: ['output', 'o=', 'output', 'parenthesisLevel++'], + nextState: '2' + } + }, + ')]}': { + '0|1|2|3|b|p|bp|o': { + action_: ['o=', 'parenthesisLevel--'], + nextState: 'o' + }, + 'a|as|d|D|q|qd|qD|dq': { + action_: ['output', 'o=', 'parenthesisLevel--'], + nextState: 'o' + } + }, + ', ': { + '*': { + action_: ['output', 'comma'], + nextState: '0' + } + }, + '^_': { + // ^ and _ without a sensible argument + '*': {} + }, + '^{(...)}|^($...$)': { + '0|1|2|as': { + action_: 'b=', + nextState: 'b' + }, + 'p': { + action_: 'b=', + nextState: 'bp' + }, + '3|o': { + action_: 'd= kv', + nextState: 'D' + }, + 'q': { + action_: 'd=', + nextState: 'qD' + }, + 'd|D|qd|qD|dq': { + action_: ['output', 'd='], + nextState: 'D' + } + }, + '^a|^\\x{}{}|^\\x{}|^\\x|\'': { + '0|1|2|as': { + action_: 'b=', + nextState: 'b' + }, + 'p': { + action_: 'b=', + nextState: 'bp' + }, + '3|o': { + action_: 'd= kv', + nextState: 'd' + }, + 'q': { + action_: 'd=', + nextState: 'qd' + }, + 'd|qd|D|qD': { + action_: 'd=' + }, + 'dq': { + action_: ['output', 'd='], + nextState: 'd' + } + }, + '_{(state of aggregation)}$': { + 'd|D|q|qd|qD|dq': { + action_: ['output', 'q='], + nextState: 'q' + } + }, + '_{(...)}|_($...$)|_9|_\\x{}{}|_\\x{}|_\\x': { + '0|1|2|as': { + action_: 'p=', + nextState: 'p' + }, + 'b': { + action_: 'p=', + nextState: 'bp' + }, + '3|o': { + action_: 'q=', + nextState: 'q' + }, + 'd|D': { + action_: 'q=', + nextState: 'dq' + }, + 'q|qd|qD|dq': { + action_: ['output', 'q='], + nextState: 'q' + } + }, + '=<>': { + '0|1|2|3|a|as|o|q|d|D|qd|qD|dq': { + action_: [{ + type_: 'output', + option: 2 + }, 'bond'], + nextState: '3' + } + }, + '#': { + '0|1|2|3|a|as|o': { + action_: [{ + type_: 'output', + option: 2 + }, { + type_: 'bond', + option: "#" + }], + nextState: '3' + } + }, + '{}': { + '*': { + action_: { + type_: 'output', + option: 1 + }, + nextState: '1' + } + }, + '{...}': { + '0|1|2|3|a|as|b|p|bp': { + action_: 'o=', + nextState: 'o' + }, + 'o|d|D|q|qd|qD|dq': { + action_: ['output', 'o='], + nextState: 'o' + } + }, + '$...$': { + 'a': { + action_: 'a=' + }, + // 2$n$ + '0|1|2|3|as|b|p|bp|o': { + action_: 'o=', + nextState: 'o' + }, + // not 'amount' + 'as|o': { + action_: 'o=' + }, + 'q|d|D|qd|qD|dq': { + action_: ['output', 'o='], + nextState: 'o' + } + }, + '\\bond{(...)}': { + '*': { + action_: [{ + type_: 'output', + option: 2 + }, 'bond'], + nextState: "3" + } + }, + '\\frac{(...)}': { + '*': { + action_: [{ + type_: 'output', + option: 1 + }, 'frac-output'], + nextState: '3' + } + }, + '\\overset{(...)}': { + '*': { + action_: [{ + type_: 'output', + option: 2 + }, 'overset-output'], + nextState: '3' + } + }, + "\\underset{(...)}": { + '*': { + action_: [{ + type_: 'output', + option: 2 + }, 'underset-output'], + nextState: '3' + } + }, + "\\underbrace{(...)}": { + '*': { + action_: [{ + type_: 'output', + option: 2 + }, 'underbrace-output'], + nextState: '3' + } + }, + '\\color{(...)}{(...)}1|\\color(...){(...)}2': { + '*': { + action_: [{ + type_: 'output', + option: 2 + }, 'color-output'], + nextState: '3' + } + }, + '\\color{(...)}0': { + '*': { + action_: [{ + type_: 'output', + option: 2 + }, 'color0-output'] + } + }, + '\\ce{(...)}': { + '*': { + action_: [{ + type_: 'output', + option: 2 + }, 'ce'], + nextState: '3' + } + }, + '\\,': { + '*': { + action_: [{ + type_: 'output', + option: 1 + }, 'copy'], + nextState: '1' + } + }, + '\\x{}{}|\\x{}|\\x': { + '0|1|2|3|a|as|b|p|bp|o|c0': { + action_: ['o=', 'output'], + nextState: '3' + }, + '*': { + action_: ['output', 'o=', 'output'], + nextState: '3' + } + }, + 'others': { + '*': { + action_: [{ + type_: 'output', + option: 1 + }, 'copy'], + nextState: '3' + } + }, + 'else2': { + 'a': { + action_: 'a to o', + nextState: 'o', + revisit: true + }, + 'as': { + action_: ['output', 'sb=true'], + nextState: '1', + revisit: true + }, + 'r|rt|rd|rdt|rdq': { + action_: ['output'], + nextState: '0', + revisit: true + }, + '*': { + action_: ['output', 'copy'], + nextState: '3' + } + } + }), + actions: { + 'o after d': function oAfterD(buffer, m) { + var ret; + + if ((buffer.d || "").match(/^[0-9]+$/)) { + var tmp = buffer.d; + buffer.d = undefined; + ret = this['output'](buffer); + buffer.b = tmp; + } else { + ret = this['output'](buffer); + } + + mhchemParser.actions['o='](buffer, m); + return ret; + }, + 'd= kv': function dKv(buffer, m) { + buffer.d = m; + buffer.dType = 'kv'; + }, + 'charge or bond': function chargeOrBond(buffer, m) { + if (buffer['beginsWithBond']) { + /** @type {ParserOutput[]} */ + var ret = []; + mhchemParser.concatArray(ret, this['output'](buffer)); + mhchemParser.concatArray(ret, mhchemParser.actions['bond'](buffer, m, "-")); + return ret; + } else { + buffer.d = m; + } + }, + '- after o/d': function afterOD(buffer, m, isAfterD) { + var c1 = mhchemParser.patterns.match_('orbital', buffer.o || ""); + var c2 = mhchemParser.patterns.match_('one lowercase greek letter $', buffer.o || ""); + var c3 = mhchemParser.patterns.match_('one lowercase latin letter $', buffer.o || ""); + var c4 = mhchemParser.patterns.match_('$one lowercase latin letter$ $', buffer.o || ""); + var hyphenFollows = m === "-" && (c1 && c1.remainder === "" || c2 || c3 || c4); + + if (hyphenFollows && !buffer.a && !buffer.b && !buffer.p && !buffer.d && !buffer.q && !c1 && c3) { + buffer.o = '$' + buffer.o + '$'; + } + /** @type {ParserOutput[]} */ + + + var ret = []; + + if (hyphenFollows) { + mhchemParser.concatArray(ret, this['output'](buffer)); + ret.push({ + type_: 'hyphen' + }); + } else { + c1 = mhchemParser.patterns.match_('digits', buffer.d || ""); + + if (isAfterD && c1 && c1.remainder === '') { + mhchemParser.concatArray(ret, mhchemParser.actions['d='](buffer, m)); + mhchemParser.concatArray(ret, this['output'](buffer)); + } else { + mhchemParser.concatArray(ret, this['output'](buffer)); + mhchemParser.concatArray(ret, mhchemParser.actions['bond'](buffer, m, "-")); + } + } + + return ret; + }, + 'a to o': function aToO(buffer) { + buffer.o = buffer.a; + buffer.a = undefined; + }, + 'sb=true': function sbTrue(buffer) { + buffer.sb = true; + }, + 'sb=false': function sbFalse(buffer) { + buffer.sb = false; + }, + 'beginsWithBond=true': function beginsWithBondTrue(buffer) { + buffer['beginsWithBond'] = true; + }, + 'beginsWithBond=false': function beginsWithBondFalse(buffer) { + buffer['beginsWithBond'] = false; + }, + 'parenthesisLevel++': function parenthesisLevel(buffer) { + buffer['parenthesisLevel']++; + }, + 'parenthesisLevel--': function parenthesisLevel(buffer) { + buffer['parenthesisLevel']--; + }, + 'state of aggregation': function stateOfAggregation(buffer, m) { + return { + type_: 'state of aggregation', + p1: mhchemParser.go(m, 'o') + }; + }, + 'comma': function comma(buffer, m) { + var a = m.replace(/\s*$/, ''); + var withSpace = a !== m; + + if (withSpace && buffer['parenthesisLevel'] === 0) { + return { + type_: 'comma enumeration L', + p1: a + }; + } else { + return { + type_: 'comma enumeration M', + p1: a + }; + } + }, + 'output': function output(buffer, m, entityFollows) { + // entityFollows: + // undefined = if we have nothing else to output, also ignore the just read space (buffer.sb) + // 1 = an entity follows, never omit the space if there was one just read before (can only apply to state 1) + // 2 = 1 + the entity can have an amount, so output a\, instead of converting it to o (can only apply to states a|as) + + /** @type {ParserOutput | ParserOutput[]} */ + var ret; + + if (!buffer.r) { + ret = []; + + if (!buffer.a && !buffer.b && !buffer.p && !buffer.o && !buffer.q && !buffer.d && !entityFollows) {//ret = []; + } else { + if (buffer.sb) { + ret.push({ + type_: 'entitySkip' + }); + } + + if (!buffer.o && !buffer.q && !buffer.d && !buffer.b && !buffer.p && entityFollows !== 2) { + buffer.o = buffer.a; + buffer.a = undefined; + } else if (!buffer.o && !buffer.q && !buffer.d && (buffer.b || buffer.p)) { + buffer.o = buffer.a; + buffer.d = buffer.b; + buffer.q = buffer.p; + buffer.a = buffer.b = buffer.p = undefined; + } else { + if (buffer.o && buffer.dType === 'kv' && mhchemParser.patterns.match_('d-oxidation$', buffer.d || "")) { + buffer.dType = 'oxidation'; + } else if (buffer.o && buffer.dType === 'kv' && !buffer.q) { + buffer.dType = undefined; + } + } + + ret.push({ + type_: 'chemfive', + a: mhchemParser.go(buffer.a, 'a'), + b: mhchemParser.go(buffer.b, 'bd'), + p: mhchemParser.go(buffer.p, 'pq'), + o: mhchemParser.go(buffer.o, 'o'), + q: mhchemParser.go(buffer.q, 'pq'), + d: mhchemParser.go(buffer.d, buffer.dType === 'oxidation' ? 'oxidation' : 'bd'), + dType: buffer.dType + }); + } + } else { + // r + + /** @type {ParserOutput[]} */ + var rd; + + if (buffer.rdt === 'M') { + rd = mhchemParser.go(buffer.rd, 'tex-math'); + } else if (buffer.rdt === 'T') { + rd = [{ + type_: 'text', + p1: buffer.rd || "" + }]; + } else { + rd = mhchemParser.go(buffer.rd); + } + /** @type {ParserOutput[]} */ + + + var rq; + + if (buffer.rqt === 'M') { + rq = mhchemParser.go(buffer.rq, 'tex-math'); + } else if (buffer.rqt === 'T') { + rq = [{ + type_: 'text', + p1: buffer.rq || "" + }]; + } else { + rq = mhchemParser.go(buffer.rq); + } + + ret = { + type_: 'arrow', + r: buffer.r, + rd: rd, + rq: rq + }; + } + + for (var p in buffer) { + if (p !== 'parenthesisLevel' && p !== 'beginsWithBond') { + delete buffer[p]; + } + } + + return ret; + }, + 'oxidation-output': function oxidationOutput(buffer, m) { + var ret = ["{"]; + mhchemParser.concatArray(ret, mhchemParser.go(m, 'oxidation')); + ret.push("}"); + return ret; + }, + 'frac-output': function fracOutput(buffer, m) { + return { + type_: 'frac-ce', + p1: mhchemParser.go(m[0]), + p2: mhchemParser.go(m[1]) + }; + }, + 'overset-output': function oversetOutput(buffer, m) { + return { + type_: 'overset', + p1: mhchemParser.go(m[0]), + p2: mhchemParser.go(m[1]) + }; + }, + 'underset-output': function undersetOutput(buffer, m) { + return { + type_: 'underset', + p1: mhchemParser.go(m[0]), + p2: mhchemParser.go(m[1]) + }; + }, + 'underbrace-output': function underbraceOutput(buffer, m) { + return { + type_: 'underbrace', + p1: mhchemParser.go(m[0]), + p2: mhchemParser.go(m[1]) + }; + }, + 'color-output': function colorOutput(buffer, m) { + return { + type_: 'color', + color1: m[0], + color2: mhchemParser.go(m[1]) + }; + }, + 'r=': function r(buffer, m) { + buffer.r = m; + }, + 'rdt=': function rdt(buffer, m) { + buffer.rdt = m; + }, + 'rd=': function rd(buffer, m) { + buffer.rd = m; + }, + 'rqt=': function rqt(buffer, m) { + buffer.rqt = m; + }, + 'rq=': function rq(buffer, m) { + buffer.rq = m; + }, + 'operator': function operator(buffer, m, p1) { + return { + type_: 'operator', + kind_: p1 || m + }; + } + } + }, + 'a': { + transitions: mhchemParser.createTransitions({ + 'empty': { + '*': {} + }, + '1/2$': { + '0': { + action_: '1/2' + } + }, + 'else': { + '0': { + nextState: '1', + revisit: true + } + }, + '$(...)$': { + '*': { + action_: 'tex-math tight', + nextState: '1' + } + }, + ',': { + '*': { + action_: { + type_: 'insert', + option: 'commaDecimal' + } + } + }, + 'else2': { + '*': { + action_: 'copy' + } + } + }), + actions: {} + }, + 'o': { + transitions: mhchemParser.createTransitions({ + 'empty': { + '*': {} + }, + '1/2$': { + '0': { + action_: '1/2' + } + }, + 'else': { + '0': { + nextState: '1', + revisit: true + } + }, + 'letters': { + '*': { + action_: 'rm' + } + }, + '\\ca': { + '*': { + action_: { + type_: 'insert', + option: 'circa' + } + } + }, + '\\x{}{}|\\x{}|\\x': { + '*': { + action_: 'copy' + } + }, + '${(...)}$|$(...)$': { + '*': { + action_: 'tex-math' + } + }, + '{(...)}': { + '*': { + action_: '{text}' + } + }, + 'else2': { + '*': { + action_: 'copy' + } + } + }), + actions: {} + }, + 'text': { + transitions: mhchemParser.createTransitions({ + 'empty': { + '*': { + action_: 'output' + } + }, + '{...}': { + '*': { + action_: 'text=' + } + }, + '${(...)}$|$(...)$': { + '*': { + action_: 'tex-math' + } + }, + '\\greek': { + '*': { + action_: ['output', 'rm'] + } + }, + '\\,|\\x{}{}|\\x{}|\\x': { + '*': { + action_: ['output', 'copy'] + } + }, + 'else': { + '*': { + action_: 'text=' + } + } + }), + actions: { + 'output': function output(buffer) { + if (buffer.text_) { + /** @type {ParserOutput} */ + var ret = { + type_: 'text', + p1: buffer.text_ + }; + + for (var p in buffer) { + delete buffer[p]; + } + + return ret; + } + } + } + }, + 'pq': { + transitions: mhchemParser.createTransitions({ + 'empty': { + '*': {} + }, + 'state of aggregation $': { + '*': { + action_: 'state of aggregation' + } + }, + 'i$': { + '0': { + nextState: '!f', + revisit: true + } + }, + '(KV letters),': { + '0': { + action_: 'rm', + nextState: '0' + } + }, + 'formula$': { + '0': { + nextState: 'f', + revisit: true + } + }, + '1/2$': { + '0': { + action_: '1/2' + } + }, + 'else': { + '0': { + nextState: '!f', + revisit: true + } + }, + '${(...)}$|$(...)$': { + '*': { + action_: 'tex-math' + } + }, + '{(...)}': { + '*': { + action_: 'text' + } + }, + 'a-z': { + 'f': { + action_: 'tex-math' + } + }, + 'letters': { + '*': { + action_: 'rm' + } + }, + '-9.,9': { + '*': { + action_: '9,9' + } + }, + ',': { + '*': { + action_: { + type_: 'insert+p1', + option: 'comma enumeration S' + } + } + }, + '\\color{(...)}{(...)}1|\\color(...){(...)}2': { + '*': { + action_: 'color-output' + } + }, + '\\color{(...)}0': { + '*': { + action_: 'color0-output' + } + }, + '\\ce{(...)}': { + '*': { + action_: 'ce' + } + }, + '\\,|\\x{}{}|\\x{}|\\x': { + '*': { + action_: 'copy' + } + }, + 'else2': { + '*': { + action_: 'copy' + } + } + }), + actions: { + 'state of aggregation': function stateOfAggregation(buffer, m) { + return { + type_: 'state of aggregation subscript', + p1: mhchemParser.go(m, 'o') + }; + }, + 'color-output': function colorOutput(buffer, m) { + return { + type_: 'color', + color1: m[0], + color2: mhchemParser.go(m[1], 'pq') + }; + } + } + }, + 'bd': { + transitions: mhchemParser.createTransitions({ + 'empty': { + '*': {} + }, + 'x$': { + '0': { + nextState: '!f', + revisit: true + } + }, + 'formula$': { + '0': { + nextState: 'f', + revisit: true + } + }, + 'else': { + '0': { + nextState: '!f', + revisit: true + } + }, + '-9.,9 no missing 0': { + '*': { + action_: '9,9' + } + }, + '.': { + '*': { + action_: { + type_: 'insert', + option: 'electron dot' + } + } + }, + 'a-z': { + 'f': { + action_: 'tex-math' + } + }, + 'x': { + '*': { + action_: { + type_: 'insert', + option: 'KV x' + } + } + }, + 'letters': { + '*': { + action_: 'rm' + } + }, + '\'': { + '*': { + action_: { + type_: 'insert', + option: 'prime' + } + } + }, + '${(...)}$|$(...)$': { + '*': { + action_: 'tex-math' + } + }, + '{(...)}': { + '*': { + action_: 'text' + } + }, + '\\color{(...)}{(...)}1|\\color(...){(...)}2': { + '*': { + action_: 'color-output' + } + }, + '\\color{(...)}0': { + '*': { + action_: 'color0-output' + } + }, + '\\ce{(...)}': { + '*': { + action_: 'ce' + } + }, + '\\,|\\x{}{}|\\x{}|\\x': { + '*': { + action_: 'copy' + } + }, + 'else2': { + '*': { + action_: 'copy' + } + } + }), + actions: { + 'color-output': function colorOutput(buffer, m) { + return { + type_: 'color', + color1: m[0], + color2: mhchemParser.go(m[1], 'bd') + }; + } + } + }, + 'oxidation': { + transitions: mhchemParser.createTransitions({ + 'empty': { + '*': {} + }, + 'roman numeral': { + '*': { + action_: 'roman-numeral' + } + }, + '${(...)}$|$(...)$': { + '*': { + action_: 'tex-math' + } + }, + 'else': { + '*': { + action_: 'copy' + } + } + }), + actions: { + 'roman-numeral': function romanNumeral(buffer, m) { + return { + type_: 'roman numeral', + p1: m || "" + }; + } + } + }, + 'tex-math': { + transitions: mhchemParser.createTransitions({ + 'empty': { + '*': { + action_: 'output' + } + }, + '\\ce{(...)}': { + '*': { + action_: ['output', 'ce'] + } + }, + '{...}|\\,|\\x{}{}|\\x{}|\\x': { + '*': { + action_: 'o=' + } + }, + 'else': { + '*': { + action_: 'o=' + } + } + }), + actions: { + 'output': function output(buffer) { + if (buffer.o) { + /** @type {ParserOutput} */ + var ret = { + type_: 'tex-math', + p1: buffer.o + }; + + for (var p in buffer) { + delete buffer[p]; + } + + return ret; + } + } + } + }, + 'tex-math tight': { + transitions: mhchemParser.createTransitions({ + 'empty': { + '*': { + action_: 'output' + } + }, + '\\ce{(...)}': { + '*': { + action_: ['output', 'ce'] + } + }, + '{...}|\\,|\\x{}{}|\\x{}|\\x': { + '*': { + action_: 'o=' + } + }, + '-|+': { + '*': { + action_: 'tight operator' + } + }, + 'else': { + '*': { + action_: 'o=' + } + } + }), + actions: { + 'tight operator': function tightOperator(buffer, m) { + buffer.o = (buffer.o || "") + "{" + m + "}"; + }, + 'output': function output(buffer) { + if (buffer.o) { + /** @type {ParserOutput} */ + var ret = { + type_: 'tex-math', + p1: buffer.o + }; + + for (var p in buffer) { + delete buffer[p]; + } + + return ret; + } + } + } + }, + '9,9': { + transitions: mhchemParser.createTransitions({ + 'empty': { + '*': {} + }, + ',': { + '*': { + action_: 'comma' + } + }, + 'else': { + '*': { + action_: 'copy' + } + } + }), + actions: { + 'comma': function comma() { + return { + type_: 'commaDecimal' + }; + } + } + }, + //#endregion + // + // \pu state machines + // + //#region pu + 'pu': { + transitions: mhchemParser.createTransitions({ + 'empty': { + '*': { + action_: 'output' + } + }, + 'space$': { + '*': { + action_: ['output', 'space'] + } + }, + '{[(|)]}': { + '0|a': { + action_: 'copy' + } + }, + '(-)(9)^(-9)': { + '0': { + action_: 'number^', + nextState: 'a' + } + }, + '(-)(9.,9)(e)(99)': { + '0': { + action_: 'enumber', + nextState: 'a' + } + }, + 'space': { + '0|a': {} + }, + 'pm-operator': { + '0|a': { + action_: { + type_: 'operator', + option: '\\pm' + }, + nextState: '0' + } + }, + 'operator': { + '0|a': { + action_: 'copy', + nextState: '0' + } + }, + '//': { + 'd': { + action_: 'o=', + nextState: '/' + } + }, + '/': { + 'd': { + action_: 'o=', + nextState: '/' + } + }, + '{...}|else': { + '0|d': { + action_: 'd=', + nextState: 'd' + }, + 'a': { + action_: ['space', 'd='], + nextState: 'd' + }, + '/|q': { + action_: 'q=', + nextState: 'q' + } + } + }), + actions: { + 'enumber': function enumber(buffer, m) { + /** @type {ParserOutput[]} */ + var ret = []; + + if (m[0] === "+-" || m[0] === "+/-") { + ret.push("\\pm "); + } else if (m[0]) { + ret.push(m[0]); + } + + if (m[1]) { + mhchemParser.concatArray(ret, mhchemParser.go(m[1], 'pu-9,9')); + + if (m[2]) { + if (m[2].match(/[,.]/)) { + mhchemParser.concatArray(ret, mhchemParser.go(m[2], 'pu-9,9')); + } else { + ret.push(m[2]); + } + } + + m[3] = m[4] || m[3]; + + if (m[3]) { + m[3] = m[3].trim(); + + if (m[3] === "e" || m[3].substr(0, 1) === "*") { + ret.push({ + type_: 'cdot' + }); + } else { + ret.push({ + type_: 'times' + }); + } + } + } + + if (m[3]) { + ret.push("10^{" + m[5] + "}"); + } + + return ret; + }, + 'number^': function number(buffer, m) { + /** @type {ParserOutput[]} */ + var ret = []; + + if (m[0] === "+-" || m[0] === "+/-") { + ret.push("\\pm "); + } else if (m[0]) { + ret.push(m[0]); + } + + mhchemParser.concatArray(ret, mhchemParser.go(m[1], 'pu-9,9')); + ret.push("^{" + m[2] + "}"); + return ret; + }, + 'operator': function operator(buffer, m, p1) { + return { + type_: 'operator', + kind_: p1 || m + }; + }, + 'space': function space() { + return { + type_: 'pu-space-1' + }; + }, + 'output': function output(buffer) { + /** @type {ParserOutput | ParserOutput[]} */ + var ret; + var md = mhchemParser.patterns.match_('{(...)}', buffer.d || ""); + + if (md && md.remainder === '') { + buffer.d = md.match_; + } + + var mq = mhchemParser.patterns.match_('{(...)}', buffer.q || ""); + + if (mq && mq.remainder === '') { + buffer.q = mq.match_; + } + + if (buffer.d) { + buffer.d = buffer.d.replace(/\u00B0C|\^oC|\^{o}C/g, "{}^{\\circ}C"); + buffer.d = buffer.d.replace(/\u00B0F|\^oF|\^{o}F/g, "{}^{\\circ}F"); + } + + if (buffer.q) { + // fraction + buffer.q = buffer.q.replace(/\u00B0C|\^oC|\^{o}C/g, "{}^{\\circ}C"); + buffer.q = buffer.q.replace(/\u00B0F|\^oF|\^{o}F/g, "{}^{\\circ}F"); + var b5 = { + d: mhchemParser.go(buffer.d, 'pu'), + q: mhchemParser.go(buffer.q, 'pu') + }; + + if (buffer.o === '//') { + ret = { + type_: 'pu-frac', + p1: b5.d, + p2: b5.q + }; + } else { + ret = b5.d; + + if (b5.d.length > 1 || b5.q.length > 1) { + ret.push({ + type_: ' / ' + }); + } else { + ret.push({ + type_: '/' + }); + } + + mhchemParser.concatArray(ret, b5.q); + } + } else { + // no fraction + ret = mhchemParser.go(buffer.d, 'pu-2'); + } + + for (var p in buffer) { + delete buffer[p]; + } + + return ret; + } + } + }, + 'pu-2': { + transitions: mhchemParser.createTransitions({ + 'empty': { + '*': { + action_: 'output' + } + }, + '*': { + '*': { + action_: ['output', 'cdot'], + nextState: '0' + } + }, + '\\x': { + '*': { + action_: 'rm=' + } + }, + 'space': { + '*': { + action_: ['output', 'space'], + nextState: '0' + } + }, + '^{(...)}|^(-1)': { + '1': { + action_: '^(-1)' + } + }, + '-9.,9': { + '0': { + action_: 'rm=', + nextState: '0' + }, + '1': { + action_: '^(-1)', + nextState: '0' + } + }, + '{...}|else': { + '*': { + action_: 'rm=', + nextState: '1' + } + } + }), + actions: { + 'cdot': function cdot() { + return { + type_: 'tight cdot' + }; + }, + '^(-1)': function _(buffer, m) { + buffer.rm += "^{" + m + "}"; + }, + 'space': function space() { + return { + type_: 'pu-space-2' + }; + }, + 'output': function output(buffer) { + /** @type {ParserOutput | ParserOutput[]} */ + var ret = []; + + if (buffer.rm) { + var mrm = mhchemParser.patterns.match_('{(...)}', buffer.rm || ""); + + if (mrm && mrm.remainder === '') { + ret = mhchemParser.go(mrm.match_, 'pu'); + } else { + ret = { + type_: 'rm', + p1: buffer.rm + }; + } + } + + for (var p in buffer) { + delete buffer[p]; + } + + return ret; + } + } + }, + 'pu-9,9': { + transitions: mhchemParser.createTransitions({ + 'empty': { + '0': { + action_: 'output-0' + }, + 'o': { + action_: 'output-o' + } + }, + ',': { + '0': { + action_: ['output-0', 'comma'], + nextState: 'o' + } + }, + '.': { + '0': { + action_: ['output-0', 'copy'], + nextState: 'o' + } + }, + 'else': { + '*': { + action_: 'text=' + } + } + }), + actions: { + 'comma': function comma() { + return { + type_: 'commaDecimal' + }; + }, + 'output-0': function output0(buffer) { + /** @type {ParserOutput[]} */ + var ret = []; + buffer.text_ = buffer.text_ || ""; + + if (buffer.text_.length > 4) { + var a = buffer.text_.length % 3; + + if (a === 0) { + a = 3; + } + + for (var i = buffer.text_.length - 3; i > 0; i -= 3) { + ret.push(buffer.text_.substr(i, 3)); + ret.push({ + type_: '1000 separator' + }); + } + + ret.push(buffer.text_.substr(0, a)); + ret.reverse(); + } else { + ret.push(buffer.text_); + } + + for (var p in buffer) { + delete buffer[p]; + } + + return ret; + }, + 'output-o': function outputO(buffer) { + /** @type {ParserOutput[]} */ + var ret = []; + buffer.text_ = buffer.text_ || ""; + + if (buffer.text_.length > 4) { + var a = buffer.text_.length - 3; + + for (var i = 0; i < a; i += 3) { + ret.push(buffer.text_.substr(i, 3)); + ret.push({ + type_: '1000 separator' + }); + } + + ret.push(buffer.text_.substr(i)); + } else { + ret.push(buffer.text_); + } + + for (var p in buffer) { + delete buffer[p]; + } + + return ret; + } + } //#endregion + + } +}; // +// texify: Take MhchemParser output and convert it to TeX +// + +/** @type {Texify} */ + +var texify = { + go: function go(input, isInner) { + // (recursive, max 4 levels) + if (!input) { + return ""; + } + + var res = ""; + var cee = false; + + for (var i = 0; i < input.length; i++) { + var inputi = input[i]; + + if (typeof inputi === "string") { + res += inputi; + } else { + res += texify._go2(inputi); + + if (inputi.type_ === '1st-level escape') { + cee = true; + } + } + } + + if (!isInner && !cee && res) { + res = "{" + res + "}"; + } + + return res; + }, + _goInner: function _goInner(input) { + if (!input) { + return input; + } + + return texify.go(input, true); + }, + _go2: function _go2(buf) { + /** @type {undefined | string} */ + var res; + + switch (buf.type_) { + case 'chemfive': + res = ""; + var b5 = { + a: texify._goInner(buf.a), + b: texify._goInner(buf.b), + p: texify._goInner(buf.p), + o: texify._goInner(buf.o), + q: texify._goInner(buf.q), + d: texify._goInner(buf.d) + }; // + // a + // + + if (b5.a) { + if (b5.a.match(/^[+\-]/)) { + b5.a = "{" + b5.a + "}"; + } + + res += b5.a + "\\,"; + } // + // b and p + // + + + if (b5.b || b5.p) { + res += "{\\vphantom{X}}"; + res += "^{\\hphantom{" + (b5.b || "") + "}}_{\\hphantom{" + (b5.p || "") + "}}"; + res += "{\\vphantom{X}}"; + res += "^{\\smash[t]{\\vphantom{2}}\\mathllap{" + (b5.b || "") + "}}"; + res += "_{\\vphantom{2}\\mathllap{\\smash[t]{" + (b5.p || "") + "}}}"; + } // + // o + // + + + if (b5.o) { + if (b5.o.match(/^[+\-]/)) { + b5.o = "{" + b5.o + "}"; + } + + res += b5.o; + } // + // q and d + // + + + if (buf.dType === 'kv') { + if (b5.d || b5.q) { + res += "{\\vphantom{X}}"; + } + + if (b5.d) { + res += "^{" + b5.d + "}"; + } + + if (b5.q) { + res += "_{\\smash[t]{" + b5.q + "}}"; + } + } else if (buf.dType === 'oxidation') { + if (b5.d) { + res += "{\\vphantom{X}}"; + res += "^{" + b5.d + "}"; + } + + if (b5.q) { + res += "{\\vphantom{X}}"; + res += "_{\\smash[t]{" + b5.q + "}}"; + } + } else { + if (b5.q) { + res += "{\\vphantom{X}}"; + res += "_{\\smash[t]{" + b5.q + "}}"; + } + + if (b5.d) { + res += "{\\vphantom{X}}"; + res += "^{" + b5.d + "}"; + } + } + + break; + + case 'rm': + res = "\\mathrm{" + buf.p1 + "}"; + break; + + case 'text': + if (buf.p1.match(/[\^_]/)) { + buf.p1 = buf.p1.replace(" ", "~").replace("-", "\\text{-}"); + res = "\\mathrm{" + buf.p1 + "}"; + } else { + res = "\\text{" + buf.p1 + "}"; + } + + break; + + case 'roman numeral': + res = "\\mathrm{" + buf.p1 + "}"; + break; + + case 'state of aggregation': + res = "\\mskip2mu " + texify._goInner(buf.p1); + break; + + case 'state of aggregation subscript': + res = "\\mskip1mu " + texify._goInner(buf.p1); + break; + + case 'bond': + res = texify._getBond(buf.kind_); + + if (!res) { + throw ["MhchemErrorBond", "mhchem Error. Unknown bond type (" + buf.kind_ + ")"]; + } + + break; + + case 'frac': + var c = "\\frac{" + buf.p1 + "}{" + buf.p2 + "}"; + res = "\\mathchoice{\\textstyle" + c + "}{" + c + "}{" + c + "}{" + c + "}"; + break; + + case 'pu-frac': + var d = "\\frac{" + texify._goInner(buf.p1) + "}{" + texify._goInner(buf.p2) + "}"; + res = "\\mathchoice{\\textstyle" + d + "}{" + d + "}{" + d + "}{" + d + "}"; + break; + + case 'tex-math': + res = buf.p1 + " "; + break; + + case 'frac-ce': + res = "\\frac{" + texify._goInner(buf.p1) + "}{" + texify._goInner(buf.p2) + "}"; + break; + + case 'overset': + res = "\\overset{" + texify._goInner(buf.p1) + "}{" + texify._goInner(buf.p2) + "}"; + break; + + case 'underset': + res = "\\underset{" + texify._goInner(buf.p1) + "}{" + texify._goInner(buf.p2) + "}"; + break; + + case 'underbrace': + res = "\\underbrace{" + texify._goInner(buf.p1) + "}_{" + texify._goInner(buf.p2) + "}"; + break; + + case 'color': + res = "{\\color{" + buf.color1 + "}{" + texify._goInner(buf.color2) + "}}"; + break; + + case 'color0': + res = "\\color{" + buf.color + "}"; + break; + + case 'arrow': + var b6 = { + rd: texify._goInner(buf.rd), + rq: texify._goInner(buf.rq) + }; + + var arrow = "\\x" + texify._getArrow(buf.r); + + if (b6.rq) { + arrow += "[{" + b6.rq + "}]"; + } + + if (b6.rd) { + arrow += "{" + b6.rd + "}"; + } else { + arrow += "{}"; + } + + res = arrow; + break; + + case 'operator': + res = texify._getOperator(buf.kind_); + break; + + case '1st-level escape': + res = buf.p1 + " "; // &, \\\\, \\hlin + + break; + + case 'space': + res = " "; + break; + + case 'entitySkip': + res = "~"; + break; + + case 'pu-space-1': + res = "~"; + break; + + case 'pu-space-2': + res = "\\mkern3mu "; + break; + + case '1000 separator': + res = "\\mkern2mu "; + break; + + case 'commaDecimal': + res = "{,}"; + break; + + case 'comma enumeration L': + res = "{" + buf.p1 + "}\\mkern6mu "; + break; + + case 'comma enumeration M': + res = "{" + buf.p1 + "}\\mkern3mu "; + break; + + case 'comma enumeration S': + res = "{" + buf.p1 + "}\\mkern1mu "; + break; + + case 'hyphen': + res = "\\text{-}"; + break; + + case 'addition compound': + res = "\\,{\\cdot}\\,"; + break; + + case 'electron dot': + res = "\\mkern1mu \\bullet\\mkern1mu "; + break; + + case 'KV x': + res = "{\\times}"; + break; + + case 'prime': + res = "\\prime "; + break; + + case 'cdot': + res = "\\cdot "; + break; + + case 'tight cdot': + res = "\\mkern1mu{\\cdot}\\mkern1mu "; + break; + + case 'times': + res = "\\times "; + break; + + case 'circa': + res = "{\\sim}"; + break; + + case '^': + res = "uparrow"; + break; + + case 'v': + res = "downarrow"; + break; + + case 'ellipsis': + res = "\\ldots "; + break; + + case '/': + res = "/"; + break; + + case ' / ': + res = "\\,/\\,"; + break; + + default: + assertNever(buf); + throw ["MhchemBugT", "mhchem bug T. Please report."]; + // Missing texify rule or unknown MhchemParser output + } + + assertString(res); + return res; + }, + _getArrow: function _getArrow(a) { + switch (a) { + case "->": + return "rightarrow"; + + case "\u2192": + return "rightarrow"; + + case "\u27F6": + return "rightarrow"; + + case "<-": + return "leftarrow"; + + case "<->": + return "leftrightarrow"; + + case "<-->": + return "rightleftarrows"; + + case "<=>": + return "rightleftharpoons"; + + case "\u21CC": + return "rightleftharpoons"; + + case "<=>>": + return "rightequilibrium"; + + case "<<=>": + return "leftequilibrium"; + + default: + assertNever(a); + throw ["MhchemBugT", "mhchem bug T. Please report."]; + } + }, + _getBond: function _getBond(a) { + switch (a) { + case "-": + return "{-}"; + + case "1": + return "{-}"; + + case "=": + return "{=}"; + + case "2": + return "{=}"; + + case "#": + return "{\\equiv}"; + + case "3": + return "{\\equiv}"; + + case "~": + return "{\\tripledash}"; + + case "~-": + return "{\\mathrlap{\\raisebox{-.1em}{$-$}}\\raisebox{.1em}{$\\tripledash$}}"; + + case "~=": + return "{\\mathrlap{\\raisebox{-.2em}{$-$}}\\mathrlap{\\raisebox{.2em}{$\\tripledash$}}-}"; + + case "~--": + return "{\\mathrlap{\\raisebox{-.2em}{$-$}}\\mathrlap{\\raisebox{.2em}{$\\tripledash$}}-}"; + + case "-~-": + return "{\\mathrlap{\\raisebox{-.2em}{$-$}}\\mathrlap{\\raisebox{.2em}{$-$}}\\tripledash}"; + + case "...": + return "{{\\cdot}{\\cdot}{\\cdot}}"; + + case "....": + return "{{\\cdot}{\\cdot}{\\cdot}{\\cdot}}"; + + case "->": + return "{\\rightarrow}"; + + case "<-": + return "{\\leftarrow}"; + + case "<": + return "{<}"; + + case ">": + return "{>}"; + + default: + assertNever(a); + throw ["MhchemBugT", "mhchem bug T. Please report."]; + } + }, + _getOperator: function _getOperator(a) { + switch (a) { + case "+": + return " {}+{} "; + + case "-": + return " {}-{} "; + + case "=": + return " {}={} "; + + case "<": + return " {}<{} "; + + case ">": + return " {}>{} "; + + case "<<": + return " {}\\ll{} "; + + case ">>": + return " {}\\gg{} "; + + case "\\pm": + return " {}\\pm{} "; + + case "\\approx": + return " {}\\approx{} "; + + case "$\\approx$": + return " {}\\approx{} "; + + case "v": + return " \\downarrow{} "; + + case "(v)": + return " \\downarrow{} "; + + case "^": + return " \\uparrow{} "; + + case "(^)": + return " \\uparrow{} "; + + default: + assertNever(a); + throw ["MhchemBugT", "mhchem bug T. Please report."]; + } + } +}; // +// Helpers for code anaylsis +// Will show type error at calling position +// + +/** @param {number} a */ + +function assertNever(a) {} +/** @param {string} a */ + + +function assertString(a) {} + +/***/ }) +/******/ ])["default"]; +}); \ No newline at end of file diff --git a/katex/contrib/mhchem.min.js b/katex/contrib/mhchem.min.js new file mode 100644 index 000000000..432a76af0 --- /dev/null +++ b/katex/contrib/mhchem.min.js @@ -0,0 +1 @@ +!function(t,e){if("object"==typeof exports&&"object"==typeof module)module.exports=e(require("katex"));else if("function"==typeof define&&define.amd)define(["katex"],e);else{var n="object"==typeof exports?e(require("katex")):e(t.katex);for(var o in n)("object"==typeof exports?exports:t)[o]=n[o]}}("undefined"!=typeof self?self:this,function(t){return function(t){var e={};function n(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,n),a.l=!0,a.exports}return n.m=t,n.c=e,n.d=function(t,e,o){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:o})},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 o=Object.create(null);if(n.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var a in t)n.d(o,a,function(e){return t[e]}.bind(null,a));return o},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=1)}([function(e,n){e.exports=t},function(t,e,n){"use strict";n.r(e);var o=n(0),a=n.n(o);a.a.__defineMacro("\\ce",function(t){return r(t.consumeArgs(1)[0],"ce")}),a.a.__defineMacro("\\pu",function(t){return r(t.consumeArgs(1)[0],"pu")}),a.a.__defineMacro("\\tripledash","{\\vphantom{-}\\raisebox{2.56mu}{$\\mkern2mu\\tiny\\text{-}\\mkern1mu\\text{-}\\mkern1mu\\text{-}\\mkern2mu$}}");var r=function(t,e){for(var n="",o=t[t.length-1].loc.start,a=t.length-1;a>=0;a--)t[a].loc.start>o&&(n+=" ",o=t[a].loc.start),n+=t[a].text,o+=t[a].text.length;return c.go(i.go(n,e))},i={go:function(t,e){if(!t)return[];void 0===e&&(e="ce");var n,o="0",a={};a.parenthesisLevel=0,t=(t=(t=t.replace(/\n/g," ")).replace(/[\u2212\u2013\u2014\u2010]/g,"-")).replace(/[\u2026]/g,"...");for(var r=10,c=[];;){n!==t?(r=10,n=t):r--;var u=i.stateMachines[e],p=u.transitions[o]||u.transitions["*"];t:for(var s=0;s0))return c;if(d.revisit||(t=_.remainder),!d.toContinue)break t}}if(r<=0)throw["MhchemBugU","mhchem bug U. Please report."]}},concatArray:function(t,e){if(e)if(Array.isArray(e))for(var n=0;n":/^[=<>]/,"#":/^[#\u2261]/,"+":/^\+/,"-$":/^-(?=[\s_},;\]/]|$|\([a-z]+\))/,"-9":/^-(?=[0-9])/,"- orbital overlap":/^-(?=(?:[spd]|sp)(?:$|[\s,;\)\]\}]))/,"-":/^-/,"pm-operator":/^(?:\\pm|\$\\pm\$|\+-|\+\/-)/,operator:/^(?:\+|(?:[\-=<>]|<<|>>|\\approx|\$\\approx\$)(?=\s|$|-?[0-9]))/,arrowUpDown:/^(?:v|\(v\)|\^|\(\^\))(?=$|[\s,;\)\]\}])/,"\\bond{(...)}":function(t){return i.patterns.findObserveGroups(t,"\\bond{","","","}")},"->":/^(?:<->|<-->|->|<-|<=>>|<<=>|<=>|[\u2192\u27F6\u21CC])/,CMT:/^[CMT](?=\[)/,"[(...)]":function(t){return i.patterns.findObserveGroups(t,"[","","","]")},"1st-level escape":/^(&|\\\\|\\hline)\s*/,"\\,":/^(?:\\[,\ ;:])/,"\\x{}{}":function(t){return i.patterns.findObserveGroups(t,"",/^\\[a-zA-Z]+\{/,"}","","","{","}","",!0)},"\\x{}":function(t){return i.patterns.findObserveGroups(t,"",/^\\[a-zA-Z]+\{/,"}","")},"\\ca":/^\\ca(?:\s+|(?![a-zA-Z]))/,"\\x":/^(?:\\[a-zA-Z]+\s*|\\[_&{}%])/,orbital:/^(?:[0-9]{1,2}[spdfgh]|[0-9]{0,2}sp)(?=$|[^a-zA-Z])/,others:/^[\/~|]/,"\\frac{(...)}":function(t){return i.patterns.findObserveGroups(t,"\\frac{","","","}","{","","","}")},"\\overset{(...)}":function(t){return i.patterns.findObserveGroups(t,"\\overset{","","","}","{","","","}")},"\\underset{(...)}":function(t){return i.patterns.findObserveGroups(t,"\\underset{","","","}","{","","","}")},"\\underbrace{(...)}":function(t){return i.patterns.findObserveGroups(t,"\\underbrace{","","","}_","{","","","}")},"\\color{(...)}0":function(t){return i.patterns.findObserveGroups(t,"\\color{","","","}")},"\\color{(...)}{(...)}1":function(t){return i.patterns.findObserveGroups(t,"\\color{","","","}","{","","","}")},"\\color(...){(...)}2":function(t){return i.patterns.findObserveGroups(t,"\\color","\\","",/^(?=\{)/,"{","","","}")},"\\ce{(...)}":function(t){return i.patterns.findObserveGroups(t,"\\ce{","","","}")},oxidation$:/^(?:[+-][IVX]+|\\pm\s*0|\$\\pm\$\s*0)$/,"d-oxidation$":/^(?:[+-]?\s?[IVX]+|\\pm\s*0|\$\\pm\$\s*0)$/,"roman numeral":/^[IVX]+/,"1/2$":/^[+\-]?(?:[0-9]+|\$[a-z]\$|[a-z])\/[0-9]+(?:\$[a-z]\$|[a-z])?$/,amount:function(t){var e;if(e=t.match(/^(?:(?:(?:\([+\-]?[0-9]+\/[0-9]+\)|[+\-]?(?:[0-9]+|\$[a-z]\$|[a-z])\/[0-9]+|[+\-]?[0-9]+[.,][0-9]+|[+\-]?\.[0-9]+|[+\-]?[0-9]+)(?:[a-z](?=\s*[A-Z]))?)|[+\-]?[a-z](?=\s*[A-Z])|\+(?!\s))/))return{match_:e[0],remainder:t.substr(e[0].length)};var n=i.patterns.findObserveGroups(t,"","$","$","");return n&&(e=n.match_.match(/^\$(?:\(?[+\-]?(?:[0-9]*[a-z]?[+\-])?[0-9]*[a-z](?:[+\-][0-9]*[a-z]?)?\)?|\+|-)\$$/))?{match_:e[0],remainder:t.substr(e[0].length)}:null},amount2:function(t){return this.amount(t)},"(KV letters),":/^(?:[A-Z][a-z]{0,2}|i)(?=,)/,formula$:function(t){if(t.match(/^\([a-z]+\)$/))return null;var e=t.match(/^(?:[a-z]|(?:[0-9\ \+\-\,\.\(\)]+[a-z])+[0-9\ \+\-\,\.\(\)]*|(?:[a-z][0-9\ \+\-\,\.\(\)]+)+[a-z]?)$/);return e?{match_:e[0],remainder:t.substr(e[0].length)}:null},uprightEntities:/^(?:pH|pOH|pC|pK|iPr|iBu)(?=$|[^a-zA-Z])/,"/":/^\s*(\/)\s*/,"//":/^\s*(\/\/)\s*/,"*":/^\s*[*.]\s*/},findObserveGroups:function(t,e,n,o,a,r,i,c,u,p){var s=function(t,e){if("string"==typeof e)return 0!==t.indexOf(e)?null:e;var n=t.match(e);return n?n[0]:null},_=s(t,e);if(null===_)return null;if(t=t.substr(_.length),null===(_=s(t,n)))return null;var d=function(t,e,n){for(var o=0;e":{"0|1|2|3":{action_:"r=",nextState:"r"},"a|as":{action_:["output","r="],nextState:"r"},"*":{action_:["output","r="],nextState:"r"}},"+":{o:{action_:"d= kv",nextState:"d"},"d|D":{action_:"d=",nextState:"d"},q:{action_:"d=",nextState:"qd"},"qd|qD":{action_:"d=",nextState:"qd"},dq:{action_:["output","d="],nextState:"d"},3:{action_:["sb=false","output","operator"],nextState:"0"}},amount:{"0|2":{action_:"a=",nextState:"a"}},"pm-operator":{"0|1|2|a|as":{action_:["sb=false","output",{type_:"operator",option:"\\pm"}],nextState:"0"}},operator:{"0|1|2|a|as":{action_:["sb=false","output","operator"],nextState:"0"}},"-$":{"o|q":{action_:["charge or bond","output"],nextState:"qd"},d:{action_:"d=",nextState:"d"},D:{action_:["output",{type_:"bond",option:"-"}],nextState:"3"},q:{action_:"d=",nextState:"qd"},qd:{action_:"d=",nextState:"qd"},"qD|dq":{action_:["output",{type_:"bond",option:"-"}],nextState:"3"}},"-9":{"3|o":{action_:["output",{type_:"insert",option:"hyphen"}],nextState:"3"}},"- orbital overlap":{o:{action_:["output",{type_:"insert",option:"hyphen"}],nextState:"2"},d:{action_:["output",{type_:"insert",option:"hyphen"}],nextState:"2"}},"-":{"0|1|2":{action_:[{type_:"output",option:1},"beginsWithBond=true",{type_:"bond",option:"-"}],nextState:"3"},3:{action_:{type_:"bond",option:"-"}},a:{action_:["output",{type_:"insert",option:"hyphen"}],nextState:"2"},as:{action_:[{type_:"output",option:2},{type_:"bond",option:"-"}],nextState:"3"},b:{action_:"b="},o:{action_:{type_:"- after o/d",option:!1},nextState:"2"},q:{action_:{type_:"- after o/d",option:!1},nextState:"2"},"d|qd|dq":{action_:{type_:"- after o/d",option:!0},nextState:"2"},"D|qD|p":{action_:["output",{type_:"bond",option:"-"}],nextState:"3"}},amount2:{"1|3":{action_:"a=",nextState:"a"}},letters:{"0|1|2|3|a|as|b|p|bp|o":{action_:"o=",nextState:"o"},"q|dq":{action_:["output","o="],nextState:"o"},"d|D|qd|qD":{action_:"o after d",nextState:"o"}},digits:{o:{action_:"q=",nextState:"q"},"d|D":{action_:"q=",nextState:"dq"},q:{action_:["output","o="],nextState:"o"},a:{action_:"o=",nextState:"o"}},"space A":{"b|p|bp":{}},space:{a:{nextState:"as"},0:{action_:"sb=false"},"1|2":{action_:"sb=true"},"r|rt|rd|rdt|rdq":{action_:"output",nextState:"0"},"*":{action_:["output","sb=true"],nextState:"1"}},"1st-level escape":{"1|2":{action_:["output",{type_:"insert+p1",option:"1st-level escape"}]},"*":{action_:["output",{type_:"insert+p1",option:"1st-level escape"}],nextState:"0"}},"[(...)]":{"r|rt":{action_:"rd=",nextState:"rd"},"rd|rdt":{action_:"rq=",nextState:"rdq"}},"...":{"o|d|D|dq|qd|qD":{action_:["output",{type_:"bond",option:"..."}],nextState:"3"},"*":{action_:[{type_:"output",option:1},{type_:"insert",option:"ellipsis"}],nextState:"1"}},". |* ":{"*":{action_:["output",{type_:"insert",option:"addition compound"}],nextState:"1"}},"state of aggregation $":{"*":{action_:["output","state of aggregation"],nextState:"1"}},"{[(":{"a|as|o":{action_:["o=","output","parenthesisLevel++"],nextState:"2"},"0|1|2|3":{action_:["o=","output","parenthesisLevel++"],nextState:"2"},"*":{action_:["output","o=","output","parenthesisLevel++"],nextState:"2"}},")]}":{"0|1|2|3|b|p|bp|o":{action_:["o=","parenthesisLevel--"],nextState:"o"},"a|as|d|D|q|qd|qD|dq":{action_:["output","o=","parenthesisLevel--"],nextState:"o"}},", ":{"*":{action_:["output","comma"],nextState:"0"}},"^_":{"*":{}},"^{(...)}|^($...$)":{"0|1|2|as":{action_:"b=",nextState:"b"},p:{action_:"b=",nextState:"bp"},"3|o":{action_:"d= kv",nextState:"D"},q:{action_:"d=",nextState:"qD"},"d|D|qd|qD|dq":{action_:["output","d="],nextState:"D"}},"^a|^\\x{}{}|^\\x{}|^\\x|'":{"0|1|2|as":{action_:"b=",nextState:"b"},p:{action_:"b=",nextState:"bp"},"3|o":{action_:"d= kv",nextState:"d"},q:{action_:"d=",nextState:"qd"},"d|qd|D|qD":{action_:"d="},dq:{action_:["output","d="],nextState:"d"}},"_{(state of aggregation)}$":{"d|D|q|qd|qD|dq":{action_:["output","q="],nextState:"q"}},"_{(...)}|_($...$)|_9|_\\x{}{}|_\\x{}|_\\x":{"0|1|2|as":{action_:"p=",nextState:"p"},b:{action_:"p=",nextState:"bp"},"3|o":{action_:"q=",nextState:"q"},"d|D":{action_:"q=",nextState:"dq"},"q|qd|qD|dq":{action_:["output","q="],nextState:"q"}},"=<>":{"0|1|2|3|a|as|o|q|d|D|qd|qD|dq":{action_:[{type_:"output",option:2},"bond"],nextState:"3"}},"#":{"0|1|2|3|a|as|o":{action_:[{type_:"output",option:2},{type_:"bond",option:"#"}],nextState:"3"}},"{}":{"*":{action_:{type_:"output",option:1},nextState:"1"}},"{...}":{"0|1|2|3|a|as|b|p|bp":{action_:"o=",nextState:"o"},"o|d|D|q|qd|qD|dq":{action_:["output","o="],nextState:"o"}},"$...$":{a:{action_:"a="},"0|1|2|3|as|b|p|bp|o":{action_:"o=",nextState:"o"},"as|o":{action_:"o="},"q|d|D|qd|qD|dq":{action_:["output","o="],nextState:"o"}},"\\bond{(...)}":{"*":{action_:[{type_:"output",option:2},"bond"],nextState:"3"}},"\\frac{(...)}":{"*":{action_:[{type_:"output",option:1},"frac-output"],nextState:"3"}},"\\overset{(...)}":{"*":{action_:[{type_:"output",option:2},"overset-output"],nextState:"3"}},"\\underset{(...)}":{"*":{action_:[{type_:"output",option:2},"underset-output"],nextState:"3"}},"\\underbrace{(...)}":{"*":{action_:[{type_:"output",option:2},"underbrace-output"],nextState:"3"}},"\\color{(...)}{(...)}1|\\color(...){(...)}2":{"*":{action_:[{type_:"output",option:2},"color-output"],nextState:"3"}},"\\color{(...)}0":{"*":{action_:[{type_:"output",option:2},"color0-output"]}},"\\ce{(...)}":{"*":{action_:[{type_:"output",option:2},"ce"],nextState:"3"}},"\\,":{"*":{action_:[{type_:"output",option:1},"copy"],nextState:"1"}},"\\x{}{}|\\x{}|\\x":{"0|1|2|3|a|as|b|p|bp|o|c0":{action_:["o=","output"],nextState:"3"},"*":{action_:["output","o=","output"],nextState:"3"}},others:{"*":{action_:[{type_:"output",option:1},"copy"],nextState:"3"}},else2:{a:{action_:"a to o",nextState:"o",revisit:!0},as:{action_:["output","sb=true"],nextState:"1",revisit:!0},"r|rt|rd|rdt|rdq":{action_:["output"],nextState:"0",revisit:!0},"*":{action_:["output","copy"],nextState:"3"}}}),actions:{"o after d":function(t,e){var n;if((t.d||"").match(/^[0-9]+$/)){var o=t.d;t.d=void 0,n=this.output(t),t.b=o}else n=this.output(t);return i.actions["o="](t,e),n},"d= kv":function(t,e){t.d=e,t.dType="kv"},"charge or bond":function(t,e){if(t.beginsWithBond){var n=[];return i.concatArray(n,this.output(t)),i.concatArray(n,i.actions.bond(t,e,"-")),n}t.d=e},"- after o/d":function(t,e,n){var o=i.patterns.match_("orbital",t.o||""),a=i.patterns.match_("one lowercase greek letter $",t.o||""),r=i.patterns.match_("one lowercase latin letter $",t.o||""),c=i.patterns.match_("$one lowercase latin letter$ $",t.o||""),u="-"===e&&(o&&""===o.remainder||a||r||c);!u||t.a||t.b||t.p||t.d||t.q||o||!r||(t.o="$"+t.o+"$");var p=[];return u?(i.concatArray(p,this.output(t)),p.push({type_:"hyphen"})):(o=i.patterns.match_("digits",t.d||""),n&&o&&""===o.remainder?(i.concatArray(p,i.actions["d="](t,e)),i.concatArray(p,this.output(t))):(i.concatArray(p,this.output(t)),i.concatArray(p,i.actions.bond(t,e,"-")))),p},"a to o":function(t){t.o=t.a,t.a=void 0},"sb=true":function(t){t.sb=!0},"sb=false":function(t){t.sb=!1},"beginsWithBond=true":function(t){t.beginsWithBond=!0},"beginsWithBond=false":function(t){t.beginsWithBond=!1},"parenthesisLevel++":function(t){t.parenthesisLevel++},"parenthesisLevel--":function(t){t.parenthesisLevel--},"state of aggregation":function(t,e){return{type_:"state of aggregation",p1:i.go(e,"o")}},comma:function(t,e){var n=e.replace(/\s*$/,"");return n!==e&&0===t.parenthesisLevel?{type_:"comma enumeration L",p1:n}:{type_:"comma enumeration M",p1:n}},output:function(t,e,n){var o,a,r;t.r?(a="M"===t.rdt?i.go(t.rd,"tex-math"):"T"===t.rdt?[{type_:"text",p1:t.rd||""}]:i.go(t.rd),r="M"===t.rqt?i.go(t.rq,"tex-math"):"T"===t.rqt?[{type_:"text",p1:t.rq||""}]:i.go(t.rq),o={type_:"arrow",r:t.r,rd:a,rq:r}):(o=[],(t.a||t.b||t.p||t.o||t.q||t.d||n)&&(t.sb&&o.push({type_:"entitySkip"}),t.o||t.q||t.d||t.b||t.p||2===n?t.o||t.q||t.d||!t.b&&!t.p?t.o&&"kv"===t.dType&&i.patterns.match_("d-oxidation$",t.d||"")?t.dType="oxidation":t.o&&"kv"===t.dType&&!t.q&&(t.dType=void 0):(t.o=t.a,t.d=t.b,t.q=t.p,t.a=t.b=t.p=void 0):(t.o=t.a,t.a=void 0),o.push({type_:"chemfive",a:i.go(t.a,"a"),b:i.go(t.b,"bd"),p:i.go(t.p,"pq"),o:i.go(t.o,"o"),q:i.go(t.q,"pq"),d:i.go(t.d,"oxidation"===t.dType?"oxidation":"bd"),dType:t.dType})));for(var c in t)"parenthesisLevel"!==c&&"beginsWithBond"!==c&&delete t[c];return o},"oxidation-output":function(t,e){var n=["{"];return i.concatArray(n,i.go(e,"oxidation")),n.push("}"),n},"frac-output":function(t,e){return{type_:"frac-ce",p1:i.go(e[0]),p2:i.go(e[1])}},"overset-output":function(t,e){return{type_:"overset",p1:i.go(e[0]),p2:i.go(e[1])}},"underset-output":function(t,e){return{type_:"underset",p1:i.go(e[0]),p2:i.go(e[1])}},"underbrace-output":function(t,e){return{type_:"underbrace",p1:i.go(e[0]),p2:i.go(e[1])}},"color-output":function(t,e){return{type_:"color",color1:e[0],color2:i.go(e[1])}},"r=":function(t,e){t.r=e},"rdt=":function(t,e){t.rdt=e},"rd=":function(t,e){t.rd=e},"rqt=":function(t,e){t.rqt=e},"rq=":function(t,e){t.rq=e},operator:function(t,e,n){return{type_:"operator",kind_:n||e}}}},a:{transitions:i.createTransitions({empty:{"*":{}},"1/2$":{0:{action_:"1/2"}},else:{0:{nextState:"1",revisit:!0}},"$(...)$":{"*":{action_:"tex-math tight",nextState:"1"}},",":{"*":{action_:{type_:"insert",option:"commaDecimal"}}},else2:{"*":{action_:"copy"}}}),actions:{}},o:{transitions:i.createTransitions({empty:{"*":{}},"1/2$":{0:{action_:"1/2"}},else:{0:{nextState:"1",revisit:!0}},letters:{"*":{action_:"rm"}},"\\ca":{"*":{action_:{type_:"insert",option:"circa"}}},"\\x{}{}|\\x{}|\\x":{"*":{action_:"copy"}},"${(...)}$|$(...)$":{"*":{action_:"tex-math"}},"{(...)}":{"*":{action_:"{text}"}},else2:{"*":{action_:"copy"}}}),actions:{}},text:{transitions:i.createTransitions({empty:{"*":{action_:"output"}},"{...}":{"*":{action_:"text="}},"${(...)}$|$(...)$":{"*":{action_:"tex-math"}},"\\greek":{"*":{action_:["output","rm"]}},"\\,|\\x{}{}|\\x{}|\\x":{"*":{action_:["output","copy"]}},else:{"*":{action_:"text="}}}),actions:{output:function(t){if(t.text_){var e={type_:"text",p1:t.text_};for(var n in t)delete t[n];return e}}}},pq:{transitions:i.createTransitions({empty:{"*":{}},"state of aggregation $":{"*":{action_:"state of aggregation"}},i$:{0:{nextState:"!f",revisit:!0}},"(KV letters),":{0:{action_:"rm",nextState:"0"}},formula$:{0:{nextState:"f",revisit:!0}},"1/2$":{0:{action_:"1/2"}},else:{0:{nextState:"!f",revisit:!0}},"${(...)}$|$(...)$":{"*":{action_:"tex-math"}},"{(...)}":{"*":{action_:"text"}},"a-z":{f:{action_:"tex-math"}},letters:{"*":{action_:"rm"}},"-9.,9":{"*":{action_:"9,9"}},",":{"*":{action_:{type_:"insert+p1",option:"comma enumeration S"}}},"\\color{(...)}{(...)}1|\\color(...){(...)}2":{"*":{action_:"color-output"}},"\\color{(...)}0":{"*":{action_:"color0-output"}},"\\ce{(...)}":{"*":{action_:"ce"}},"\\,|\\x{}{}|\\x{}|\\x":{"*":{action_:"copy"}},else2:{"*":{action_:"copy"}}}),actions:{"state of aggregation":function(t,e){return{type_:"state of aggregation subscript",p1:i.go(e,"o")}},"color-output":function(t,e){return{type_:"color",color1:e[0],color2:i.go(e[1],"pq")}}}},bd:{transitions:i.createTransitions({empty:{"*":{}},x$:{0:{nextState:"!f",revisit:!0}},formula$:{0:{nextState:"f",revisit:!0}},else:{0:{nextState:"!f",revisit:!0}},"-9.,9 no missing 0":{"*":{action_:"9,9"}},".":{"*":{action_:{type_:"insert",option:"electron dot"}}},"a-z":{f:{action_:"tex-math"}},x:{"*":{action_:{type_:"insert",option:"KV x"}}},letters:{"*":{action_:"rm"}},"'":{"*":{action_:{type_:"insert",option:"prime"}}},"${(...)}$|$(...)$":{"*":{action_:"tex-math"}},"{(...)}":{"*":{action_:"text"}},"\\color{(...)}{(...)}1|\\color(...){(...)}2":{"*":{action_:"color-output"}},"\\color{(...)}0":{"*":{action_:"color0-output"}},"\\ce{(...)}":{"*":{action_:"ce"}},"\\,|\\x{}{}|\\x{}|\\x":{"*":{action_:"copy"}},else2:{"*":{action_:"copy"}}}),actions:{"color-output":function(t,e){return{type_:"color",color1:e[0],color2:i.go(e[1],"bd")}}}},oxidation:{transitions:i.createTransitions({empty:{"*":{}},"roman numeral":{"*":{action_:"roman-numeral"}},"${(...)}$|$(...)$":{"*":{action_:"tex-math"}},else:{"*":{action_:"copy"}}}),actions:{"roman-numeral":function(t,e){return{type_:"roman numeral",p1:e||""}}}},"tex-math":{transitions:i.createTransitions({empty:{"*":{action_:"output"}},"\\ce{(...)}":{"*":{action_:["output","ce"]}},"{...}|\\,|\\x{}{}|\\x{}|\\x":{"*":{action_:"o="}},else:{"*":{action_:"o="}}}),actions:{output:function(t){if(t.o){var e={type_:"tex-math",p1:t.o};for(var n in t)delete t[n];return e}}}},"tex-math tight":{transitions:i.createTransitions({empty:{"*":{action_:"output"}},"\\ce{(...)}":{"*":{action_:["output","ce"]}},"{...}|\\,|\\x{}{}|\\x{}|\\x":{"*":{action_:"o="}},"-|+":{"*":{action_:"tight operator"}},else:{"*":{action_:"o="}}}),actions:{"tight operator":function(t,e){t.o=(t.o||"")+"{"+e+"}"},output:function(t){if(t.o){var e={type_:"tex-math",p1:t.o};for(var n in t)delete t[n];return e}}}},"9,9":{transitions:i.createTransitions({empty:{"*":{}},",":{"*":{action_:"comma"}},else:{"*":{action_:"copy"}}}),actions:{comma:function(){return{type_:"commaDecimal"}}}},pu:{transitions:i.createTransitions({empty:{"*":{action_:"output"}},space$:{"*":{action_:["output","space"]}},"{[(|)]}":{"0|a":{action_:"copy"}},"(-)(9)^(-9)":{0:{action_:"number^",nextState:"a"}},"(-)(9.,9)(e)(99)":{0:{action_:"enumber",nextState:"a"}},space:{"0|a":{}},"pm-operator":{"0|a":{action_:{type_:"operator",option:"\\pm"},nextState:"0"}},operator:{"0|a":{action_:"copy",nextState:"0"}},"//":{d:{action_:"o=",nextState:"/"}},"/":{d:{action_:"o=",nextState:"/"}},"{...}|else":{"0|d":{action_:"d=",nextState:"d"},a:{action_:["space","d="],nextState:"d"},"/|q":{action_:"q=",nextState:"q"}}}),actions:{enumber:function(t,e){var n=[];return"+-"===e[0]||"+/-"===e[0]?n.push("\\pm "):e[0]&&n.push(e[0]),e[1]&&(i.concatArray(n,i.go(e[1],"pu-9,9")),e[2]&&(e[2].match(/[,.]/)?i.concatArray(n,i.go(e[2],"pu-9,9")):n.push(e[2])),e[3]=e[4]||e[3],e[3]&&(e[3]=e[3].trim(),"e"===e[3]||"*"===e[3].substr(0,1)?n.push({type_:"cdot"}):n.push({type_:"times"}))),e[3]&&n.push("10^{"+e[5]+"}"),n},"number^":function(t,e){var n=[];return"+-"===e[0]||"+/-"===e[0]?n.push("\\pm "):e[0]&&n.push(e[0]),i.concatArray(n,i.go(e[1],"pu-9,9")),n.push("^{"+e[2]+"}"),n},operator:function(t,e,n){return{type_:"operator",kind_:n||e}},space:function(){return{type_:"pu-space-1"}},output:function(t){var e,n=i.patterns.match_("{(...)}",t.d||"");n&&""===n.remainder&&(t.d=n.match_);var o=i.patterns.match_("{(...)}",t.q||"");if(o&&""===o.remainder&&(t.q=o.match_),t.d&&(t.d=t.d.replace(/\u00B0C|\^oC|\^{o}C/g,"{}^{\\circ}C"),t.d=t.d.replace(/\u00B0F|\^oF|\^{o}F/g,"{}^{\\circ}F")),t.q){t.q=t.q.replace(/\u00B0C|\^oC|\^{o}C/g,"{}^{\\circ}C"),t.q=t.q.replace(/\u00B0F|\^oF|\^{o}F/g,"{}^{\\circ}F");var a={d:i.go(t.d,"pu"),q:i.go(t.q,"pu")};"//"===t.o?e={type_:"pu-frac",p1:a.d,p2:a.q}:(e=a.d,a.d.length>1||a.q.length>1?e.push({type_:" / "}):e.push({type_:"/"}),i.concatArray(e,a.q))}else e=i.go(t.d,"pu-2");for(var r in t)delete t[r];return e}}},"pu-2":{transitions:i.createTransitions({empty:{"*":{action_:"output"}},"*":{"*":{action_:["output","cdot"],nextState:"0"}},"\\x":{"*":{action_:"rm="}},space:{"*":{action_:["output","space"],nextState:"0"}},"^{(...)}|^(-1)":{1:{action_:"^(-1)"}},"-9.,9":{0:{action_:"rm=",nextState:"0"},1:{action_:"^(-1)",nextState:"0"}},"{...}|else":{"*":{action_:"rm=",nextState:"1"}}}),actions:{cdot:function(){return{type_:"tight cdot"}},"^(-1)":function(t,e){t.rm+="^{"+e+"}"},space:function(){return{type_:"pu-space-2"}},output:function(t){var e=[];if(t.rm){var n=i.patterns.match_("{(...)}",t.rm||"");e=n&&""===n.remainder?i.go(n.match_,"pu"):{type_:"rm",p1:t.rm}}for(var o in t)delete t[o];return e}}},"pu-9,9":{transitions:i.createTransitions({empty:{0:{action_:"output-0"},o:{action_:"output-o"}},",":{0:{action_:["output-0","comma"],nextState:"o"}},".":{0:{action_:["output-0","copy"],nextState:"o"}},else:{"*":{action_:"text="}}}),actions:{comma:function(){return{type_:"commaDecimal"}},"output-0":function(t){var e=[];if(t.text_=t.text_||"",t.text_.length>4){var n=t.text_.length%3;0===n&&(n=3);for(var o=t.text_.length-3;o>0;o-=3)e.push(t.text_.substr(o,3)),e.push({type_:"1000 separator"});e.push(t.text_.substr(0,n)),e.reverse()}else e.push(t.text_);for(var a in t)delete t[a];return e},"output-o":function(t){var e=[];if(t.text_=t.text_||"",t.text_.length>4){for(var n=t.text_.length-3,o=0;o":case"\u2192":case"\u27f6":return"rightarrow";case"<-":return"leftarrow";case"<->":return"leftrightarrow";case"<--\x3e":return"rightleftarrows";case"<=>":case"\u21cc":return"rightleftharpoons";case"<=>>":return"rightequilibrium";case"<<=>":return"leftequilibrium";default:throw["MhchemBugT","mhchem bug T. Please report."]}},_getBond:function(t){switch(t){case"-":case"1":return"{-}";case"=":case"2":return"{=}";case"#":case"3":return"{\\equiv}";case"~":return"{\\tripledash}";case"~-":return"{\\mathrlap{\\raisebox{-.1em}{$-$}}\\raisebox{.1em}{$\\tripledash$}}";case"~=":case"~--":return"{\\mathrlap{\\raisebox{-.2em}{$-$}}\\mathrlap{\\raisebox{.2em}{$\\tripledash$}}-}";case"-~-":return"{\\mathrlap{\\raisebox{-.2em}{$-$}}\\mathrlap{\\raisebox{.2em}{$-$}}\\tripledash}";case"...":return"{{\\cdot}{\\cdot}{\\cdot}}";case"....":return"{{\\cdot}{\\cdot}{\\cdot}{\\cdot}}";case"->":return"{\\rightarrow}";case"<-":return"{\\leftarrow}";case"<":return"{<}";case">":return"{>}";default:throw["MhchemBugT","mhchem bug T. Please report."]}},_getOperator:function(t){switch(t){case"+":return" {}+{} ";case"-":return" {}-{} ";case"=":return" {}={} ";case"<":return" {}<{} ";case">":return" {}>{} ";case"<<":return" {}\\ll{} ";case">>":return" {}\\gg{} ";case"\\pm":return" {}\\pm{} ";case"\\approx":case"$\\approx$":return" {}\\approx{} ";case"v":case"(v)":return" \\downarrow{} ";case"^":case"(^)":return" \\uparrow{} ";default:throw["MhchemBugT","mhchem bug T. Please report."]}}}}]).default}); \ No newline at end of file diff --git a/katex/contrib/mhchem.mjs b/katex/contrib/mhchem.mjs new file mode 100644 index 000000000..46241b5f7 --- /dev/null +++ b/katex/contrib/mhchem.mjs @@ -0,0 +1,3109 @@ +import katex from '../katex.mjs'; + +/* eslint-disable */ + +/* -*- Mode: Javascript; indent-tabs-mode:nil; js-indent-level: 2 -*- */ + +/* vim: set ts=2 et sw=2 tw=80: */ + +/************************************************************* + * + * KaTeX mhchem.js + * + * This file implements a KaTeX version of mhchem version 3.3.0. + * It is adapted from MathJax/extensions/TeX/mhchem.js + * It differs from the MathJax version as follows: + * 1. The interface is changed so that it can be called from KaTeX, not MathJax. + * 2. \rlap and \llap are replaced with \mathrlap and \mathllap. + * 3. Four lines of code are edited in order to use \raisebox instead of \raise. + * 4. The reaction arrow code is simplified. All reaction arrows are rendered + * using KaTeX extensible arrows instead of building non-extensible arrows. + * 5. \tripledash vertical alignment is slightly adjusted. + * + * This code, as other KaTeX code, is released under the MIT license. + * + * /************************************************************* + * + * MathJax/extensions/TeX/mhchem.js + * + * Implements the \ce command for handling chemical formulas + * from the mhchem LaTeX package. + * + * --------------------------------------------------------------------- + * + * Copyright (c) 2011-2015 The MathJax Consortium + * Copyright (c) 2015-2018 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. + */ +// +// Coding Style +// - use '' for identifiers that can by minified/uglified +// - use "" for strings that need to stay untouched +// version: "3.3.0" for MathJax and KaTeX +// Add \ce, \pu, and \tripledash to the KaTeX macros. +katex.__defineMacro("\\ce", function (context) { + return chemParse(context.consumeArgs(1)[0], "ce"); +}); + +katex.__defineMacro("\\pu", function (context) { + return chemParse(context.consumeArgs(1)[0], "pu"); +}); // Needed for \bond for the ~ forms +// Raise by 2.56mu, not 2mu. We're raising a hyphen-minus, U+002D, not +// a mathematical minus, U+2212. So we need that extra 0.56. + + +katex.__defineMacro("\\tripledash", "{\\vphantom{-}\\raisebox{2.56mu}{$\\mkern2mu" + "\\tiny\\text{-}\\mkern1mu\\text{-}\\mkern1mu\\text{-}\\mkern2mu$}}"); +// This is the main function for handing the \ce and \pu commands. +// It takes the argument to \ce or \pu and returns the corresponding TeX string. +// + +var chemParse = function chemParse(tokens, stateMachine) { + // Recreate the argument string from KaTeX's array of tokens. + var str = ""; + var expectedLoc = tokens[tokens.length - 1].loc.start; + + for (var i = tokens.length - 1; i >= 0; i--) { + if (tokens[i].loc.start > expectedLoc) { + // context.consumeArgs has eaten a space. + str += " "; + expectedLoc = tokens[i].loc.start; + } + + str += tokens[i].text; + expectedLoc += tokens[i].text.length; + } + + var tex = texify.go(mhchemParser.go(str, stateMachine)); + return tex; +}; // +// Core parser for mhchem syntax (recursive) +// + +/** @type {MhchemParser} */ + + +var mhchemParser = { + // + // Parses mchem \ce syntax + // + // Call like + // go("H2O"); + // + go: function go(input, stateMachine) { + if (!input) { + return []; + } + + if (stateMachine === undefined) { + stateMachine = 'ce'; + } + + var state = '0'; // + // String buffers for parsing: + // + // buffer.a == amount + // buffer.o == element + // buffer.b == left-side superscript + // buffer.p == left-side subscript + // buffer.q == right-side subscript + // buffer.d == right-side superscript + // + // buffer.r == arrow + // buffer.rdt == arrow, script above, type + // buffer.rd == arrow, script above, content + // buffer.rqt == arrow, script below, type + // buffer.rq == arrow, script below, content + // + // buffer.text_ + // buffer.rm + // etc. + // + // buffer.parenthesisLevel == int, starting at 0 + // buffer.sb == bool, space before + // buffer.beginsWithBond == bool + // + // These letters are also used as state names. + // + // Other states: + // 0 == begin of main part (arrow/operator unlikely) + // 1 == next entity + // 2 == next entity (arrow/operator unlikely) + // 3 == next atom + // c == macro + // + + /** @type {Buffer} */ + + var buffer = {}; + buffer['parenthesisLevel'] = 0; + input = input.replace(/\n/g, " "); + input = input.replace(/[\u2212\u2013\u2014\u2010]/g, "-"); + input = input.replace(/[\u2026]/g, "..."); // + // Looks through mhchemParser.transitions, to execute a matching action + // (recursive) + // + + var lastInput; + var watchdog = 10; + /** @type {ParserOutput[]} */ + + var output = []; + + while (true) { + if (lastInput !== input) { + watchdog = 10; + lastInput = input; + } else { + watchdog--; + } // + // Find actions in transition table + // + + + var machine = mhchemParser.stateMachines[stateMachine]; + var t = machine.transitions[state] || machine.transitions['*']; + + iterateTransitions: for (var i = 0; i < t.length; i++) { + var matches = mhchemParser.patterns.match_(t[i].pattern, input); + + if (matches) { + // + // Execute actions + // + var task = t[i].task; + + for (var iA = 0; iA < task.action_.length; iA++) { + var o; // + // Find and execute action + // + + if (machine.actions[task.action_[iA].type_]) { + o = machine.actions[task.action_[iA].type_](buffer, matches.match_, task.action_[iA].option); + } else if (mhchemParser.actions[task.action_[iA].type_]) { + o = mhchemParser.actions[task.action_[iA].type_](buffer, matches.match_, task.action_[iA].option); + } else { + throw ["MhchemBugA", "mhchem bug A. Please report. (" + task.action_[iA].type_ + ")"]; // Trying to use non-existing action + } // + // Add output + // + + + mhchemParser.concatArray(output, o); + } // + // Set next state, + // Shorten input, + // Continue with next character + // (= apply only one transition per position) + // + + + state = task.nextState || state; + + if (input.length > 0) { + if (!task.revisit) { + input = matches.remainder; + } + + if (!task.toContinue) { + break iterateTransitions; + } + } else { + return output; + } + } + } // + // Prevent infinite loop + // + + + if (watchdog <= 0) { + throw ["MhchemBugU", "mhchem bug U. Please report."]; // Unexpected character + } + } + }, + concatArray: function concatArray(a, b) { + if (b) { + if (Array.isArray(b)) { + for (var iB = 0; iB < b.length; iB++) { + a.push(b[iB]); + } + } else { + a.push(b); + } + } + }, + patterns: { + // + // Matching patterns + // either regexps or function that return null or {match_:"a", remainder:"bc"} + // + patterns: { + // property names must not look like integers ("2") for correct property traversal order, later on + 'empty': /^$/, + 'else': /^./, + 'else2': /^./, + 'space': /^\s/, + 'space A': /^\s(?=[A-Z\\$])/, + 'space$': /^\s$/, + 'a-z': /^[a-z]/, + 'x': /^x/, + 'x$': /^x$/, + 'i$': /^i$/, + 'letters': /^(?:[a-zA-Z\u03B1-\u03C9\u0391-\u03A9?@]|(?:\\(?:alpha|beta|gamma|delta|epsilon|zeta|eta|theta|iota|kappa|lambda|mu|nu|xi|omicron|pi|rho|sigma|tau|upsilon|phi|chi|psi|omega|Gamma|Delta|Theta|Lambda|Xi|Pi|Sigma|Upsilon|Phi|Psi|Omega)(?:\s+|\{\}|(?![a-zA-Z]))))+/, + '\\greek': /^\\(?:alpha|beta|gamma|delta|epsilon|zeta|eta|theta|iota|kappa|lambda|mu|nu|xi|omicron|pi|rho|sigma|tau|upsilon|phi|chi|psi|omega|Gamma|Delta|Theta|Lambda|Xi|Pi|Sigma|Upsilon|Phi|Psi|Omega)(?:\s+|\{\}|(?![a-zA-Z]))/, + 'one lowercase latin letter $': /^(?:([a-z])(?:$|[^a-zA-Z]))$/, + '$one lowercase latin letter$ $': /^\$(?:([a-z])(?:$|[^a-zA-Z]))\$$/, + 'one lowercase greek letter $': /^(?:\$?[\u03B1-\u03C9]\$?|\$?\\(?:alpha|beta|gamma|delta|epsilon|zeta|eta|theta|iota|kappa|lambda|mu|nu|xi|omicron|pi|rho|sigma|tau|upsilon|phi|chi|psi|omega)\s*\$?)(?:\s+|\{\}|(?![a-zA-Z]))$/, + 'digits': /^[0-9]+/, + '-9.,9': /^[+\-]?(?:[0-9]+(?:[,.][0-9]+)?|[0-9]*(?:\.[0-9]+))/, + '-9.,9 no missing 0': /^[+\-]?[0-9]+(?:[.,][0-9]+)?/, + '(-)(9.,9)(e)(99)': function e99(input) { + var m = input.match(/^(\+\-|\+\/\-|\+|\-|\\pm\s?)?([0-9]+(?:[,.][0-9]+)?|[0-9]*(?:\.[0-9]+))?(\((?:[0-9]+(?:[,.][0-9]+)?|[0-9]*(?:\.[0-9]+))\))?(?:([eE]|\s*(\*|x|\\times|\u00D7)\s*10\^)([+\-]?[0-9]+|\{[+\-]?[0-9]+\}))?/); + + if (m && m[0]) { + return { + match_: m.splice(1), + remainder: input.substr(m[0].length) + }; + } + + return null; + }, + '(-)(9)^(-9)': function _(input) { + var m = input.match(/^(\+\-|\+\/\-|\+|\-|\\pm\s?)?([0-9]+(?:[,.][0-9]+)?|[0-9]*(?:\.[0-9]+)?)\^([+\-]?[0-9]+|\{[+\-]?[0-9]+\})/); + + if (m && m[0]) { + return { + match_: m.splice(1), + remainder: input.substr(m[0].length) + }; + } + + return null; + }, + 'state of aggregation $': function stateOfAggregation$(input) { + // ... or crystal system + var a = mhchemParser.patterns.findObserveGroups(input, "", /^\([a-z]{1,3}(?=[\),])/, ")", ""); // (aq), (aq,$\infty$), (aq, sat) + + if (a && a.remainder.match(/^($|[\s,;\)\]\}])/)) { + return a; + } // AND end of 'phrase' + + + var m = input.match(/^(?:\((?:\\ca\s?)?\$[amothc]\$\))/); // OR crystal system ($o$) (\ca$c$) + + if (m) { + return { + match_: m[0], + remainder: input.substr(m[0].length) + }; + } + + return null; + }, + '_{(state of aggregation)}$': /^_\{(\([a-z]{1,3}\))\}/, + '{[(': /^(?:\\\{|\[|\()/, + ')]}': /^(?:\)|\]|\\\})/, + ', ': /^[,;]\s*/, + ',': /^[,;]/, + '.': /^[.]/, + '. ': /^([.\u22C5\u00B7\u2022])\s*/, + '...': /^\.\.\.(?=$|[^.])/, + '* ': /^([*])\s*/, + '^{(...)}': function _(input) { + return mhchemParser.patterns.findObserveGroups(input, "^{", "", "", "}"); + }, + '^($...$)': function $$(input) { + return mhchemParser.patterns.findObserveGroups(input, "^", "$", "$", ""); + }, + '^a': /^\^([0-9]+|[^\\_])/, + '^\\x{}{}': function x(input) { + return mhchemParser.patterns.findObserveGroups(input, "^", /^\\[a-zA-Z]+\{/, "}", "", "", "{", "}", "", true); + }, + '^\\x{}': function x(input) { + return mhchemParser.patterns.findObserveGroups(input, "^", /^\\[a-zA-Z]+\{/, "}", ""); + }, + '^\\x': /^\^(\\[a-zA-Z]+)\s*/, + '^(-1)': /^\^(-?\d+)/, + '\'': /^'/, + '_{(...)}': function _(input) { + return mhchemParser.patterns.findObserveGroups(input, "_{", "", "", "}"); + }, + '_($...$)': function _$$(input) { + return mhchemParser.patterns.findObserveGroups(input, "_", "$", "$", ""); + }, + '_9': /^_([+\-]?[0-9]+|[^\\])/, + '_\\x{}{}': function _X(input) { + return mhchemParser.patterns.findObserveGroups(input, "_", /^\\[a-zA-Z]+\{/, "}", "", "", "{", "}", "", true); + }, + '_\\x{}': function _X(input) { + return mhchemParser.patterns.findObserveGroups(input, "_", /^\\[a-zA-Z]+\{/, "}", ""); + }, + '_\\x': /^_(\\[a-zA-Z]+)\s*/, + '^_': /^(?:\^(?=_)|\_(?=\^)|[\^_]$)/, + '{}': /^\{\}/, + '{...}': function _(input) { + return mhchemParser.patterns.findObserveGroups(input, "", "{", "}", ""); + }, + '{(...)}': function _(input) { + return mhchemParser.patterns.findObserveGroups(input, "{", "", "", "}"); + }, + '$...$': function $$(input) { + return mhchemParser.patterns.findObserveGroups(input, "", "$", "$", ""); + }, + '${(...)}$': function $$(input) { + return mhchemParser.patterns.findObserveGroups(input, "${", "", "", "}$"); + }, + '$(...)$': function $$(input) { + return mhchemParser.patterns.findObserveGroups(input, "$", "", "", "$"); + }, + '=<>': /^[=<>]/, + '#': /^[#\u2261]/, + '+': /^\+/, + '-$': /^-(?=[\s_},;\]/]|$|\([a-z]+\))/, + // -space -, -; -] -/ -$ -state-of-aggregation + '-9': /^-(?=[0-9])/, + '- orbital overlap': /^-(?=(?:[spd]|sp)(?:$|[\s,;\)\]\}]))/, + '-': /^-/, + 'pm-operator': /^(?:\\pm|\$\\pm\$|\+-|\+\/-)/, + 'operator': /^(?:\+|(?:[\-=<>]|<<|>>|\\approx|\$\\approx\$)(?=\s|$|-?[0-9]))/, + 'arrowUpDown': /^(?:v|\(v\)|\^|\(\^\))(?=$|[\s,;\)\]\}])/, + '\\bond{(...)}': function bond(input) { + return mhchemParser.patterns.findObserveGroups(input, "\\bond{", "", "", "}"); + }, + '->': /^(?:<->|<-->|->|<-|<=>>|<<=>|<=>|[\u2192\u27F6\u21CC])/, + 'CMT': /^[CMT](?=\[)/, + '[(...)]': function _(input) { + return mhchemParser.patterns.findObserveGroups(input, "[", "", "", "]"); + }, + '1st-level escape': /^(&|\\\\|\\hline)\s*/, + '\\,': /^(?:\\[,\ ;:])/, + // \\x - but output no space before + '\\x{}{}': function x(input) { + return mhchemParser.patterns.findObserveGroups(input, "", /^\\[a-zA-Z]+\{/, "}", "", "", "{", "}", "", true); + }, + '\\x{}': function x(input) { + return mhchemParser.patterns.findObserveGroups(input, "", /^\\[a-zA-Z]+\{/, "}", ""); + }, + '\\ca': /^\\ca(?:\s+|(?![a-zA-Z]))/, + '\\x': /^(?:\\[a-zA-Z]+\s*|\\[_&{}%])/, + 'orbital': /^(?:[0-9]{1,2}[spdfgh]|[0-9]{0,2}sp)(?=$|[^a-zA-Z])/, + // only those with numbers in front, because the others will be formatted correctly anyway + 'others': /^[\/~|]/, + '\\frac{(...)}': function frac(input) { + return mhchemParser.patterns.findObserveGroups(input, "\\frac{", "", "", "}", "{", "", "", "}"); + }, + '\\overset{(...)}': function overset(input) { + return mhchemParser.patterns.findObserveGroups(input, "\\overset{", "", "", "}", "{", "", "", "}"); + }, + '\\underset{(...)}': function underset(input) { + return mhchemParser.patterns.findObserveGroups(input, "\\underset{", "", "", "}", "{", "", "", "}"); + }, + '\\underbrace{(...)}': function underbrace(input) { + return mhchemParser.patterns.findObserveGroups(input, "\\underbrace{", "", "", "}_", "{", "", "", "}"); + }, + '\\color{(...)}0': function color0(input) { + return mhchemParser.patterns.findObserveGroups(input, "\\color{", "", "", "}"); + }, + '\\color{(...)}{(...)}1': function color1(input) { + return mhchemParser.patterns.findObserveGroups(input, "\\color{", "", "", "}", "{", "", "", "}"); + }, + '\\color(...){(...)}2': function color2(input) { + return mhchemParser.patterns.findObserveGroups(input, "\\color", "\\", "", /^(?=\{)/, "{", "", "", "}"); + }, + '\\ce{(...)}': function ce(input) { + return mhchemParser.patterns.findObserveGroups(input, "\\ce{", "", "", "}"); + }, + 'oxidation$': /^(?:[+-][IVX]+|\\pm\s*0|\$\\pm\$\s*0)$/, + 'd-oxidation$': /^(?:[+-]?\s?[IVX]+|\\pm\s*0|\$\\pm\$\s*0)$/, + // 0 could be oxidation or charge + 'roman numeral': /^[IVX]+/, + '1/2$': /^[+\-]?(?:[0-9]+|\$[a-z]\$|[a-z])\/[0-9]+(?:\$[a-z]\$|[a-z])?$/, + 'amount': function amount(input) { + var match; // e.g. 2, 0.5, 1/2, -2, n/2, +; $a$ could be added later in parsing + + match = input.match(/^(?:(?:(?:\([+\-]?[0-9]+\/[0-9]+\)|[+\-]?(?:[0-9]+|\$[a-z]\$|[a-z])\/[0-9]+|[+\-]?[0-9]+[.,][0-9]+|[+\-]?\.[0-9]+|[+\-]?[0-9]+)(?:[a-z](?=\s*[A-Z]))?)|[+\-]?[a-z](?=\s*[A-Z])|\+(?!\s))/); + + if (match) { + return { + match_: match[0], + remainder: input.substr(match[0].length) + }; + } + + var a = mhchemParser.patterns.findObserveGroups(input, "", "$", "$", ""); + + if (a) { + // e.g. $2n-1$, $-$ + match = a.match_.match(/^\$(?:\(?[+\-]?(?:[0-9]*[a-z]?[+\-])?[0-9]*[a-z](?:[+\-][0-9]*[a-z]?)?\)?|\+|-)\$$/); + + if (match) { + return { + match_: match[0], + remainder: input.substr(match[0].length) + }; + } + } + + return null; + }, + 'amount2': function amount2(input) { + return this['amount'](input); + }, + '(KV letters),': /^(?:[A-Z][a-z]{0,2}|i)(?=,)/, + 'formula$': function formula$(input) { + if (input.match(/^\([a-z]+\)$/)) { + return null; + } // state of aggregation = no formula + + + var match = input.match(/^(?:[a-z]|(?:[0-9\ \+\-\,\.\(\)]+[a-z])+[0-9\ \+\-\,\.\(\)]*|(?:[a-z][0-9\ \+\-\,\.\(\)]+)+[a-z]?)$/); + + if (match) { + return { + match_: match[0], + remainder: input.substr(match[0].length) + }; + } + + return null; + }, + 'uprightEntities': /^(?:pH|pOH|pC|pK|iPr|iBu)(?=$|[^a-zA-Z])/, + '/': /^\s*(\/)\s*/, + '//': /^\s*(\/\/)\s*/, + '*': /^\s*[*.]\s*/ + }, + findObserveGroups: function findObserveGroups(input, begExcl, begIncl, endIncl, endExcl, beg2Excl, beg2Incl, end2Incl, end2Excl, combine) { + /** @type {{(input: string, pattern: string | RegExp): string | string[] | null;}} */ + var _match = function _match(input, pattern) { + if (typeof pattern === "string") { + if (input.indexOf(pattern) !== 0) { + return null; + } + + return pattern; + } else { + var match = input.match(pattern); + + if (!match) { + return null; + } + + return match[0]; + } + }; + /** @type {{(input: string, i: number, endChars: string | RegExp): {endMatchBegin: number, endMatchEnd: number} | null;}} */ + + + var _findObserveGroups = function _findObserveGroups(input, i, endChars) { + var braces = 0; + + while (i < input.length) { + var a = input.charAt(i); + + var match = _match(input.substr(i), endChars); + + if (match !== null && braces === 0) { + return { + endMatchBegin: i, + endMatchEnd: i + match.length + }; + } else if (a === "{") { + braces++; + } else if (a === "}") { + if (braces === 0) { + throw ["ExtraCloseMissingOpen", "Extra close brace or missing open brace"]; + } else { + braces--; + } + } + + i++; + } + + if (braces > 0) { + return null; + } + + return null; + }; + + var match = _match(input, begExcl); + + if (match === null) { + return null; + } + + input = input.substr(match.length); + match = _match(input, begIncl); + + if (match === null) { + return null; + } + + var e = _findObserveGroups(input, match.length, endIncl || endExcl); + + if (e === null) { + return null; + } + + var match1 = input.substring(0, endIncl ? e.endMatchEnd : e.endMatchBegin); + + if (!(beg2Excl || beg2Incl)) { + return { + match_: match1, + remainder: input.substr(e.endMatchEnd) + }; + } else { + var group2 = this.findObserveGroups(input.substr(e.endMatchEnd), beg2Excl, beg2Incl, end2Incl, end2Excl); + + if (group2 === null) { + return null; + } + /** @type {string[]} */ + + + var matchRet = [match1, group2.match_]; + return { + match_: combine ? matchRet.join("") : matchRet, + remainder: group2.remainder + }; + } + }, + // + // Matching function + // e.g. match("a", input) will look for the regexp called "a" and see if it matches + // returns null or {match_:"a", remainder:"bc"} + // + match_: function match_(m, input) { + var pattern = mhchemParser.patterns.patterns[m]; + + if (pattern === undefined) { + throw ["MhchemBugP", "mhchem bug P. Please report. (" + m + ")"]; // Trying to use non-existing pattern + } else if (typeof pattern === "function") { + return mhchemParser.patterns.patterns[m](input); // cannot use cached var pattern here, because some pattern functions need this===mhchemParser + } else { + // RegExp + var match = input.match(pattern); + + if (match) { + var mm; + + if (match[2]) { + mm = [match[1], match[2]]; + } else if (match[1]) { + mm = match[1]; + } else { + mm = match[0]; + } + + return { + match_: mm, + remainder: input.substr(match[0].length) + }; + } + + return null; + } + } + }, + // + // Generic state machine actions + // + actions: { + 'a=': function a(buffer, m) { + buffer.a = (buffer.a || "") + m; + }, + 'b=': function b(buffer, m) { + buffer.b = (buffer.b || "") + m; + }, + 'p=': function p(buffer, m) { + buffer.p = (buffer.p || "") + m; + }, + 'o=': function o(buffer, m) { + buffer.o = (buffer.o || "") + m; + }, + 'q=': function q(buffer, m) { + buffer.q = (buffer.q || "") + m; + }, + 'd=': function d(buffer, m) { + buffer.d = (buffer.d || "") + m; + }, + 'rm=': function rm(buffer, m) { + buffer.rm = (buffer.rm || "") + m; + }, + 'text=': function text(buffer, m) { + buffer.text_ = (buffer.text_ || "") + m; + }, + 'insert': function insert(buffer, m, a) { + return { + type_: a + }; + }, + 'insert+p1': function insertP1(buffer, m, a) { + return { + type_: a, + p1: m + }; + }, + 'insert+p1+p2': function insertP1P2(buffer, m, a) { + return { + type_: a, + p1: m[0], + p2: m[1] + }; + }, + 'copy': function copy(buffer, m) { + return m; + }, + 'rm': function rm(buffer, m) { + return { + type_: 'rm', + p1: m || "" + }; + }, + 'text': function text(buffer, m) { + return mhchemParser.go(m, 'text'); + }, + '{text}': function text(buffer, m) { + var ret = ["{"]; + mhchemParser.concatArray(ret, mhchemParser.go(m, 'text')); + ret.push("}"); + return ret; + }, + 'tex-math': function texMath(buffer, m) { + return mhchemParser.go(m, 'tex-math'); + }, + 'tex-math tight': function texMathTight(buffer, m) { + return mhchemParser.go(m, 'tex-math tight'); + }, + 'bond': function bond(buffer, m, k) { + return { + type_: 'bond', + kind_: k || m + }; + }, + 'color0-output': function color0Output(buffer, m) { + return { + type_: 'color0', + color: m[0] + }; + }, + 'ce': function ce(buffer, m) { + return mhchemParser.go(m); + }, + '1/2': function _(buffer, m) { + /** @type {ParserOutput[]} */ + var ret = []; + + if (m.match(/^[+\-]/)) { + ret.push(m.substr(0, 1)); + m = m.substr(1); + } + + var n = m.match(/^([0-9]+|\$[a-z]\$|[a-z])\/([0-9]+)(\$[a-z]\$|[a-z])?$/); + n[1] = n[1].replace(/\$/g, ""); + ret.push({ + type_: 'frac', + p1: n[1], + p2: n[2] + }); + + if (n[3]) { + n[3] = n[3].replace(/\$/g, ""); + ret.push({ + type_: 'tex-math', + p1: n[3] + }); + } + + return ret; + }, + '9,9': function _(buffer, m) { + return mhchemParser.go(m, '9,9'); + } + }, + // + // createTransitions + // convert { 'letter': { 'state': { action_: 'output' } } } to { 'state' => [ { pattern: 'letter', task: { action_: [{type_: 'output'}] } } ] } + // with expansion of 'a|b' to 'a' and 'b' (at 2 places) + // + createTransitions: function createTransitions(o) { + var pattern, state; + /** @type {string[]} */ + + var stateArray; + var i; // + // 1. Collect all states + // + + /** @type {Transitions} */ + + var transitions = {}; + + for (pattern in o) { + for (state in o[pattern]) { + stateArray = state.split("|"); + o[pattern][state].stateArray = stateArray; + + for (i = 0; i < stateArray.length; i++) { + transitions[stateArray[i]] = []; + } + } + } // + // 2. Fill states + // + + + for (pattern in o) { + for (state in o[pattern]) { + stateArray = o[pattern][state].stateArray || []; + + for (i = 0; i < stateArray.length; i++) { + // + // 2a. Normalize actions into array: 'text=' ==> [{type_:'text='}] + // (Note to myself: Resolving the function here would be problematic. It would need .bind (for *this*) and currying (for *option*).) + // + + /** @type {any} */ + var p = o[pattern][state]; + + if (p.action_) { + p.action_ = [].concat(p.action_); + + for (var k = 0; k < p.action_.length; k++) { + if (typeof p.action_[k] === "string") { + p.action_[k] = { + type_: p.action_[k] + }; + } + } + } else { + p.action_ = []; + } // + // 2.b Multi-insert + // + + + var patternArray = pattern.split("|"); + + for (var j = 0; j < patternArray.length; j++) { + if (stateArray[i] === '*') { + // insert into all + for (var t in transitions) { + transitions[t].push({ + pattern: patternArray[j], + task: p + }); + } + } else { + transitions[stateArray[i]].push({ + pattern: patternArray[j], + task: p + }); + } + } + } + } + } + + return transitions; + }, + stateMachines: {} +}; // +// Definition of state machines +// + +mhchemParser.stateMachines = { + // + // \ce state machines + // + //#region ce + 'ce': { + // main parser + transitions: mhchemParser.createTransitions({ + 'empty': { + '*': { + action_: 'output' + } + }, + 'else': { + '0|1|2': { + action_: 'beginsWithBond=false', + revisit: true, + toContinue: true + } + }, + 'oxidation$': { + '0': { + action_: 'oxidation-output' + } + }, + 'CMT': { + 'r': { + action_: 'rdt=', + nextState: 'rt' + }, + 'rd': { + action_: 'rqt=', + nextState: 'rdt' + } + }, + 'arrowUpDown': { + '0|1|2|as': { + action_: ['sb=false', 'output', 'operator'], + nextState: '1' + } + }, + 'uprightEntities': { + '0|1|2': { + action_: ['o=', 'output'], + nextState: '1' + } + }, + 'orbital': { + '0|1|2|3': { + action_: 'o=', + nextState: 'o' + } + }, + '->': { + '0|1|2|3': { + action_: 'r=', + nextState: 'r' + }, + 'a|as': { + action_: ['output', 'r='], + nextState: 'r' + }, + '*': { + action_: ['output', 'r='], + nextState: 'r' + } + }, + '+': { + 'o': { + action_: 'd= kv', + nextState: 'd' + }, + 'd|D': { + action_: 'd=', + nextState: 'd' + }, + 'q': { + action_: 'd=', + nextState: 'qd' + }, + 'qd|qD': { + action_: 'd=', + nextState: 'qd' + }, + 'dq': { + action_: ['output', 'd='], + nextState: 'd' + }, + '3': { + action_: ['sb=false', 'output', 'operator'], + nextState: '0' + } + }, + 'amount': { + '0|2': { + action_: 'a=', + nextState: 'a' + } + }, + 'pm-operator': { + '0|1|2|a|as': { + action_: ['sb=false', 'output', { + type_: 'operator', + option: '\\pm' + }], + nextState: '0' + } + }, + 'operator': { + '0|1|2|a|as': { + action_: ['sb=false', 'output', 'operator'], + nextState: '0' + } + }, + '-$': { + 'o|q': { + action_: ['charge or bond', 'output'], + nextState: 'qd' + }, + 'd': { + action_: 'd=', + nextState: 'd' + }, + 'D': { + action_: ['output', { + type_: 'bond', + option: "-" + }], + nextState: '3' + }, + 'q': { + action_: 'd=', + nextState: 'qd' + }, + 'qd': { + action_: 'd=', + nextState: 'qd' + }, + 'qD|dq': { + action_: ['output', { + type_: 'bond', + option: "-" + }], + nextState: '3' + } + }, + '-9': { + '3|o': { + action_: ['output', { + type_: 'insert', + option: 'hyphen' + }], + nextState: '3' + } + }, + '- orbital overlap': { + 'o': { + action_: ['output', { + type_: 'insert', + option: 'hyphen' + }], + nextState: '2' + }, + 'd': { + action_: ['output', { + type_: 'insert', + option: 'hyphen' + }], + nextState: '2' + } + }, + '-': { + '0|1|2': { + action_: [{ + type_: 'output', + option: 1 + }, 'beginsWithBond=true', { + type_: 'bond', + option: "-" + }], + nextState: '3' + }, + '3': { + action_: { + type_: 'bond', + option: "-" + } + }, + 'a': { + action_: ['output', { + type_: 'insert', + option: 'hyphen' + }], + nextState: '2' + }, + 'as': { + action_: [{ + type_: 'output', + option: 2 + }, { + type_: 'bond', + option: "-" + }], + nextState: '3' + }, + 'b': { + action_: 'b=' + }, + 'o': { + action_: { + type_: '- after o/d', + option: false + }, + nextState: '2' + }, + 'q': { + action_: { + type_: '- after o/d', + option: false + }, + nextState: '2' + }, + 'd|qd|dq': { + action_: { + type_: '- after o/d', + option: true + }, + nextState: '2' + }, + 'D|qD|p': { + action_: ['output', { + type_: 'bond', + option: "-" + }], + nextState: '3' + } + }, + 'amount2': { + '1|3': { + action_: 'a=', + nextState: 'a' + } + }, + 'letters': { + '0|1|2|3|a|as|b|p|bp|o': { + action_: 'o=', + nextState: 'o' + }, + 'q|dq': { + action_: ['output', 'o='], + nextState: 'o' + }, + 'd|D|qd|qD': { + action_: 'o after d', + nextState: 'o' + } + }, + 'digits': { + 'o': { + action_: 'q=', + nextState: 'q' + }, + 'd|D': { + action_: 'q=', + nextState: 'dq' + }, + 'q': { + action_: ['output', 'o='], + nextState: 'o' + }, + 'a': { + action_: 'o=', + nextState: 'o' + } + }, + 'space A': { + 'b|p|bp': {} + }, + 'space': { + 'a': { + nextState: 'as' + }, + '0': { + action_: 'sb=false' + }, + '1|2': { + action_: 'sb=true' + }, + 'r|rt|rd|rdt|rdq': { + action_: 'output', + nextState: '0' + }, + '*': { + action_: ['output', 'sb=true'], + nextState: '1' + } + }, + '1st-level escape': { + '1|2': { + action_: ['output', { + type_: 'insert+p1', + option: '1st-level escape' + }] + }, + '*': { + action_: ['output', { + type_: 'insert+p1', + option: '1st-level escape' + }], + nextState: '0' + } + }, + '[(...)]': { + 'r|rt': { + action_: 'rd=', + nextState: 'rd' + }, + 'rd|rdt': { + action_: 'rq=', + nextState: 'rdq' + } + }, + '...': { + 'o|d|D|dq|qd|qD': { + action_: ['output', { + type_: 'bond', + option: "..." + }], + nextState: '3' + }, + '*': { + action_: [{ + type_: 'output', + option: 1 + }, { + type_: 'insert', + option: 'ellipsis' + }], + nextState: '1' + } + }, + '. |* ': { + '*': { + action_: ['output', { + type_: 'insert', + option: 'addition compound' + }], + nextState: '1' + } + }, + 'state of aggregation $': { + '*': { + action_: ['output', 'state of aggregation'], + nextState: '1' + } + }, + '{[(': { + 'a|as|o': { + action_: ['o=', 'output', 'parenthesisLevel++'], + nextState: '2' + }, + '0|1|2|3': { + action_: ['o=', 'output', 'parenthesisLevel++'], + nextState: '2' + }, + '*': { + action_: ['output', 'o=', 'output', 'parenthesisLevel++'], + nextState: '2' + } + }, + ')]}': { + '0|1|2|3|b|p|bp|o': { + action_: ['o=', 'parenthesisLevel--'], + nextState: 'o' + }, + 'a|as|d|D|q|qd|qD|dq': { + action_: ['output', 'o=', 'parenthesisLevel--'], + nextState: 'o' + } + }, + ', ': { + '*': { + action_: ['output', 'comma'], + nextState: '0' + } + }, + '^_': { + // ^ and _ without a sensible argument + '*': {} + }, + '^{(...)}|^($...$)': { + '0|1|2|as': { + action_: 'b=', + nextState: 'b' + }, + 'p': { + action_: 'b=', + nextState: 'bp' + }, + '3|o': { + action_: 'd= kv', + nextState: 'D' + }, + 'q': { + action_: 'd=', + nextState: 'qD' + }, + 'd|D|qd|qD|dq': { + action_: ['output', 'd='], + nextState: 'D' + } + }, + '^a|^\\x{}{}|^\\x{}|^\\x|\'': { + '0|1|2|as': { + action_: 'b=', + nextState: 'b' + }, + 'p': { + action_: 'b=', + nextState: 'bp' + }, + '3|o': { + action_: 'd= kv', + nextState: 'd' + }, + 'q': { + action_: 'd=', + nextState: 'qd' + }, + 'd|qd|D|qD': { + action_: 'd=' + }, + 'dq': { + action_: ['output', 'd='], + nextState: 'd' + } + }, + '_{(state of aggregation)}$': { + 'd|D|q|qd|qD|dq': { + action_: ['output', 'q='], + nextState: 'q' + } + }, + '_{(...)}|_($...$)|_9|_\\x{}{}|_\\x{}|_\\x': { + '0|1|2|as': { + action_: 'p=', + nextState: 'p' + }, + 'b': { + action_: 'p=', + nextState: 'bp' + }, + '3|o': { + action_: 'q=', + nextState: 'q' + }, + 'd|D': { + action_: 'q=', + nextState: 'dq' + }, + 'q|qd|qD|dq': { + action_: ['output', 'q='], + nextState: 'q' + } + }, + '=<>': { + '0|1|2|3|a|as|o|q|d|D|qd|qD|dq': { + action_: [{ + type_: 'output', + option: 2 + }, 'bond'], + nextState: '3' + } + }, + '#': { + '0|1|2|3|a|as|o': { + action_: [{ + type_: 'output', + option: 2 + }, { + type_: 'bond', + option: "#" + }], + nextState: '3' + } + }, + '{}': { + '*': { + action_: { + type_: 'output', + option: 1 + }, + nextState: '1' + } + }, + '{...}': { + '0|1|2|3|a|as|b|p|bp': { + action_: 'o=', + nextState: 'o' + }, + 'o|d|D|q|qd|qD|dq': { + action_: ['output', 'o='], + nextState: 'o' + } + }, + '$...$': { + 'a': { + action_: 'a=' + }, + // 2$n$ + '0|1|2|3|as|b|p|bp|o': { + action_: 'o=', + nextState: 'o' + }, + // not 'amount' + 'as|o': { + action_: 'o=' + }, + 'q|d|D|qd|qD|dq': { + action_: ['output', 'o='], + nextState: 'o' + } + }, + '\\bond{(...)}': { + '*': { + action_: [{ + type_: 'output', + option: 2 + }, 'bond'], + nextState: "3" + } + }, + '\\frac{(...)}': { + '*': { + action_: [{ + type_: 'output', + option: 1 + }, 'frac-output'], + nextState: '3' + } + }, + '\\overset{(...)}': { + '*': { + action_: [{ + type_: 'output', + option: 2 + }, 'overset-output'], + nextState: '3' + } + }, + '\\underset{(...)}': { + '*': { + action_: [{ + type_: 'output', + option: 2 + }, 'underset-output'], + nextState: '3' + } + }, + '\\underbrace{(...)}': { + '*': { + action_: [{ + type_: 'output', + option: 2 + }, 'underbrace-output'], + nextState: '3' + } + }, + '\\color{(...)}{(...)}1|\\color(...){(...)}2': { + '*': { + action_: [{ + type_: 'output', + option: 2 + }, 'color-output'], + nextState: '3' + } + }, + '\\color{(...)}0': { + '*': { + action_: [{ + type_: 'output', + option: 2 + }, 'color0-output'] + } + }, + '\\ce{(...)}': { + '*': { + action_: [{ + type_: 'output', + option: 2 + }, 'ce'], + nextState: '3' + } + }, + '\\,': { + '*': { + action_: [{ + type_: 'output', + option: 1 + }, 'copy'], + nextState: '1' + } + }, + '\\x{}{}|\\x{}|\\x': { + '0|1|2|3|a|as|b|p|bp|o|c0': { + action_: ['o=', 'output'], + nextState: '3' + }, + '*': { + action_: ['output', 'o=', 'output'], + nextState: '3' + } + }, + 'others': { + '*': { + action_: [{ + type_: 'output', + option: 1 + }, 'copy'], + nextState: '3' + } + }, + 'else2': { + 'a': { + action_: 'a to o', + nextState: 'o', + revisit: true + }, + 'as': { + action_: ['output', 'sb=true'], + nextState: '1', + revisit: true + }, + 'r|rt|rd|rdt|rdq': { + action_: ['output'], + nextState: '0', + revisit: true + }, + '*': { + action_: ['output', 'copy'], + nextState: '3' + } + } + }), + actions: { + 'o after d': function oAfterD(buffer, m) { + var ret; + + if ((buffer.d || "").match(/^[0-9]+$/)) { + var tmp = buffer.d; + buffer.d = undefined; + ret = this['output'](buffer); + buffer.b = tmp; + } else { + ret = this['output'](buffer); + } + + mhchemParser.actions['o='](buffer, m); + return ret; + }, + 'd= kv': function dKv(buffer, m) { + buffer.d = m; + buffer.dType = 'kv'; + }, + 'charge or bond': function chargeOrBond(buffer, m) { + if (buffer['beginsWithBond']) { + /** @type {ParserOutput[]} */ + var ret = []; + mhchemParser.concatArray(ret, this['output'](buffer)); + mhchemParser.concatArray(ret, mhchemParser.actions['bond'](buffer, m, "-")); + return ret; + } else { + buffer.d = m; + } + }, + '- after o/d': function afterOD(buffer, m, isAfterD) { + var c1 = mhchemParser.patterns.match_('orbital', buffer.o || ""); + var c2 = mhchemParser.patterns.match_('one lowercase greek letter $', buffer.o || ""); + var c3 = mhchemParser.patterns.match_('one lowercase latin letter $', buffer.o || ""); + var c4 = mhchemParser.patterns.match_('$one lowercase latin letter$ $', buffer.o || ""); + var hyphenFollows = m === "-" && (c1 && c1.remainder === "" || c2 || c3 || c4); + + if (hyphenFollows && !buffer.a && !buffer.b && !buffer.p && !buffer.d && !buffer.q && !c1 && c3) { + buffer.o = '$' + buffer.o + '$'; + } + /** @type {ParserOutput[]} */ + + + var ret = []; + + if (hyphenFollows) { + mhchemParser.concatArray(ret, this['output'](buffer)); + ret.push({ + type_: 'hyphen' + }); + } else { + c1 = mhchemParser.patterns.match_('digits', buffer.d || ""); + + if (isAfterD && c1 && c1.remainder === '') { + mhchemParser.concatArray(ret, mhchemParser.actions['d='](buffer, m)); + mhchemParser.concatArray(ret, this['output'](buffer)); + } else { + mhchemParser.concatArray(ret, this['output'](buffer)); + mhchemParser.concatArray(ret, mhchemParser.actions['bond'](buffer, m, "-")); + } + } + + return ret; + }, + 'a to o': function aToO(buffer) { + buffer.o = buffer.a; + buffer.a = undefined; + }, + 'sb=true': function sbTrue(buffer) { + buffer.sb = true; + }, + 'sb=false': function sbFalse(buffer) { + buffer.sb = false; + }, + 'beginsWithBond=true': function beginsWithBondTrue(buffer) { + buffer['beginsWithBond'] = true; + }, + 'beginsWithBond=false': function beginsWithBondFalse(buffer) { + buffer['beginsWithBond'] = false; + }, + 'parenthesisLevel++': function parenthesisLevel(buffer) { + buffer['parenthesisLevel']++; + }, + 'parenthesisLevel--': function parenthesisLevel(buffer) { + buffer['parenthesisLevel']--; + }, + 'state of aggregation': function stateOfAggregation(buffer, m) { + return { + type_: 'state of aggregation', + p1: mhchemParser.go(m, 'o') + }; + }, + 'comma': function comma(buffer, m) { + var a = m.replace(/\s*$/, ''); + var withSpace = a !== m; + + if (withSpace && buffer['parenthesisLevel'] === 0) { + return { + type_: 'comma enumeration L', + p1: a + }; + } else { + return { + type_: 'comma enumeration M', + p1: a + }; + } + }, + 'output': function output(buffer, m, entityFollows) { + // entityFollows: + // undefined = if we have nothing else to output, also ignore the just read space (buffer.sb) + // 1 = an entity follows, never omit the space if there was one just read before (can only apply to state 1) + // 2 = 1 + the entity can have an amount, so output a\, instead of converting it to o (can only apply to states a|as) + + /** @type {ParserOutput | ParserOutput[]} */ + var ret; + + if (!buffer.r) { + ret = []; + + if (!buffer.a && !buffer.b && !buffer.p && !buffer.o && !buffer.q && !buffer.d && !entityFollows) ; else { + if (buffer.sb) { + ret.push({ + type_: 'entitySkip' + }); + } + + if (!buffer.o && !buffer.q && !buffer.d && !buffer.b && !buffer.p && entityFollows !== 2) { + buffer.o = buffer.a; + buffer.a = undefined; + } else if (!buffer.o && !buffer.q && !buffer.d && (buffer.b || buffer.p)) { + buffer.o = buffer.a; + buffer.d = buffer.b; + buffer.q = buffer.p; + buffer.a = buffer.b = buffer.p = undefined; + } else { + if (buffer.o && buffer.dType === 'kv' && mhchemParser.patterns.match_('d-oxidation$', buffer.d || "")) { + buffer.dType = 'oxidation'; + } else if (buffer.o && buffer.dType === 'kv' && !buffer.q) { + buffer.dType = undefined; + } + } + + ret.push({ + type_: 'chemfive', + a: mhchemParser.go(buffer.a, 'a'), + b: mhchemParser.go(buffer.b, 'bd'), + p: mhchemParser.go(buffer.p, 'pq'), + o: mhchemParser.go(buffer.o, 'o'), + q: mhchemParser.go(buffer.q, 'pq'), + d: mhchemParser.go(buffer.d, buffer.dType === 'oxidation' ? 'oxidation' : 'bd'), + dType: buffer.dType + }); + } + } else { + // r + + /** @type {ParserOutput[]} */ + var rd; + + if (buffer.rdt === 'M') { + rd = mhchemParser.go(buffer.rd, 'tex-math'); + } else if (buffer.rdt === 'T') { + rd = [{ + type_: 'text', + p1: buffer.rd || "" + }]; + } else { + rd = mhchemParser.go(buffer.rd); + } + /** @type {ParserOutput[]} */ + + + var rq; + + if (buffer.rqt === 'M') { + rq = mhchemParser.go(buffer.rq, 'tex-math'); + } else if (buffer.rqt === 'T') { + rq = [{ + type_: 'text', + p1: buffer.rq || "" + }]; + } else { + rq = mhchemParser.go(buffer.rq); + } + + ret = { + type_: 'arrow', + r: buffer.r, + rd: rd, + rq: rq + }; + } + + for (var p in buffer) { + if (p !== 'parenthesisLevel' && p !== 'beginsWithBond') { + delete buffer[p]; + } + } + + return ret; + }, + 'oxidation-output': function oxidationOutput(buffer, m) { + var ret = ["{"]; + mhchemParser.concatArray(ret, mhchemParser.go(m, 'oxidation')); + ret.push("}"); + return ret; + }, + 'frac-output': function fracOutput(buffer, m) { + return { + type_: 'frac-ce', + p1: mhchemParser.go(m[0]), + p2: mhchemParser.go(m[1]) + }; + }, + 'overset-output': function oversetOutput(buffer, m) { + return { + type_: 'overset', + p1: mhchemParser.go(m[0]), + p2: mhchemParser.go(m[1]) + }; + }, + 'underset-output': function undersetOutput(buffer, m) { + return { + type_: 'underset', + p1: mhchemParser.go(m[0]), + p2: mhchemParser.go(m[1]) + }; + }, + 'underbrace-output': function underbraceOutput(buffer, m) { + return { + type_: 'underbrace', + p1: mhchemParser.go(m[0]), + p2: mhchemParser.go(m[1]) + }; + }, + 'color-output': function colorOutput(buffer, m) { + return { + type_: 'color', + color1: m[0], + color2: mhchemParser.go(m[1]) + }; + }, + 'r=': function r(buffer, m) { + buffer.r = m; + }, + 'rdt=': function rdt(buffer, m) { + buffer.rdt = m; + }, + 'rd=': function rd(buffer, m) { + buffer.rd = m; + }, + 'rqt=': function rqt(buffer, m) { + buffer.rqt = m; + }, + 'rq=': function rq(buffer, m) { + buffer.rq = m; + }, + 'operator': function operator(buffer, m, p1) { + return { + type_: 'operator', + kind_: p1 || m + }; + } + } + }, + 'a': { + transitions: mhchemParser.createTransitions({ + 'empty': { + '*': {} + }, + '1/2$': { + '0': { + action_: '1/2' + } + }, + 'else': { + '0': { + nextState: '1', + revisit: true + } + }, + '$(...)$': { + '*': { + action_: 'tex-math tight', + nextState: '1' + } + }, + ',': { + '*': { + action_: { + type_: 'insert', + option: 'commaDecimal' + } + } + }, + 'else2': { + '*': { + action_: 'copy' + } + } + }), + actions: {} + }, + 'o': { + transitions: mhchemParser.createTransitions({ + 'empty': { + '*': {} + }, + '1/2$': { + '0': { + action_: '1/2' + } + }, + 'else': { + '0': { + nextState: '1', + revisit: true + } + }, + 'letters': { + '*': { + action_: 'rm' + } + }, + '\\ca': { + '*': { + action_: { + type_: 'insert', + option: 'circa' + } + } + }, + '\\x{}{}|\\x{}|\\x': { + '*': { + action_: 'copy' + } + }, + '${(...)}$|$(...)$': { + '*': { + action_: 'tex-math' + } + }, + '{(...)}': { + '*': { + action_: '{text}' + } + }, + 'else2': { + '*': { + action_: 'copy' + } + } + }), + actions: {} + }, + 'text': { + transitions: mhchemParser.createTransitions({ + 'empty': { + '*': { + action_: 'output' + } + }, + '{...}': { + '*': { + action_: 'text=' + } + }, + '${(...)}$|$(...)$': { + '*': { + action_: 'tex-math' + } + }, + '\\greek': { + '*': { + action_: ['output', 'rm'] + } + }, + '\\,|\\x{}{}|\\x{}|\\x': { + '*': { + action_: ['output', 'copy'] + } + }, + 'else': { + '*': { + action_: 'text=' + } + } + }), + actions: { + 'output': function output(buffer) { + if (buffer.text_) { + /** @type {ParserOutput} */ + var ret = { + type_: 'text', + p1: buffer.text_ + }; + + for (var p in buffer) { + delete buffer[p]; + } + + return ret; + } + } + } + }, + 'pq': { + transitions: mhchemParser.createTransitions({ + 'empty': { + '*': {} + }, + 'state of aggregation $': { + '*': { + action_: 'state of aggregation' + } + }, + 'i$': { + '0': { + nextState: '!f', + revisit: true + } + }, + '(KV letters),': { + '0': { + action_: 'rm', + nextState: '0' + } + }, + 'formula$': { + '0': { + nextState: 'f', + revisit: true + } + }, + '1/2$': { + '0': { + action_: '1/2' + } + }, + 'else': { + '0': { + nextState: '!f', + revisit: true + } + }, + '${(...)}$|$(...)$': { + '*': { + action_: 'tex-math' + } + }, + '{(...)}': { + '*': { + action_: 'text' + } + }, + 'a-z': { + 'f': { + action_: 'tex-math' + } + }, + 'letters': { + '*': { + action_: 'rm' + } + }, + '-9.,9': { + '*': { + action_: '9,9' + } + }, + ',': { + '*': { + action_: { + type_: 'insert+p1', + option: 'comma enumeration S' + } + } + }, + '\\color{(...)}{(...)}1|\\color(...){(...)}2': { + '*': { + action_: 'color-output' + } + }, + '\\color{(...)}0': { + '*': { + action_: 'color0-output' + } + }, + '\\ce{(...)}': { + '*': { + action_: 'ce' + } + }, + '\\,|\\x{}{}|\\x{}|\\x': { + '*': { + action_: 'copy' + } + }, + 'else2': { + '*': { + action_: 'copy' + } + } + }), + actions: { + 'state of aggregation': function stateOfAggregation(buffer, m) { + return { + type_: 'state of aggregation subscript', + p1: mhchemParser.go(m, 'o') + }; + }, + 'color-output': function colorOutput(buffer, m) { + return { + type_: 'color', + color1: m[0], + color2: mhchemParser.go(m[1], 'pq') + }; + } + } + }, + 'bd': { + transitions: mhchemParser.createTransitions({ + 'empty': { + '*': {} + }, + 'x$': { + '0': { + nextState: '!f', + revisit: true + } + }, + 'formula$': { + '0': { + nextState: 'f', + revisit: true + } + }, + 'else': { + '0': { + nextState: '!f', + revisit: true + } + }, + '-9.,9 no missing 0': { + '*': { + action_: '9,9' + } + }, + '.': { + '*': { + action_: { + type_: 'insert', + option: 'electron dot' + } + } + }, + 'a-z': { + 'f': { + action_: 'tex-math' + } + }, + 'x': { + '*': { + action_: { + type_: 'insert', + option: 'KV x' + } + } + }, + 'letters': { + '*': { + action_: 'rm' + } + }, + '\'': { + '*': { + action_: { + type_: 'insert', + option: 'prime' + } + } + }, + '${(...)}$|$(...)$': { + '*': { + action_: 'tex-math' + } + }, + '{(...)}': { + '*': { + action_: 'text' + } + }, + '\\color{(...)}{(...)}1|\\color(...){(...)}2': { + '*': { + action_: 'color-output' + } + }, + '\\color{(...)}0': { + '*': { + action_: 'color0-output' + } + }, + '\\ce{(...)}': { + '*': { + action_: 'ce' + } + }, + '\\,|\\x{}{}|\\x{}|\\x': { + '*': { + action_: 'copy' + } + }, + 'else2': { + '*': { + action_: 'copy' + } + } + }), + actions: { + 'color-output': function colorOutput(buffer, m) { + return { + type_: 'color', + color1: m[0], + color2: mhchemParser.go(m[1], 'bd') + }; + } + } + }, + 'oxidation': { + transitions: mhchemParser.createTransitions({ + 'empty': { + '*': {} + }, + 'roman numeral': { + '*': { + action_: 'roman-numeral' + } + }, + '${(...)}$|$(...)$': { + '*': { + action_: 'tex-math' + } + }, + 'else': { + '*': { + action_: 'copy' + } + } + }), + actions: { + 'roman-numeral': function romanNumeral(buffer, m) { + return { + type_: 'roman numeral', + p1: m || "" + }; + } + } + }, + 'tex-math': { + transitions: mhchemParser.createTransitions({ + 'empty': { + '*': { + action_: 'output' + } + }, + '\\ce{(...)}': { + '*': { + action_: ['output', 'ce'] + } + }, + '{...}|\\,|\\x{}{}|\\x{}|\\x': { + '*': { + action_: 'o=' + } + }, + 'else': { + '*': { + action_: 'o=' + } + } + }), + actions: { + 'output': function output(buffer) { + if (buffer.o) { + /** @type {ParserOutput} */ + var ret = { + type_: 'tex-math', + p1: buffer.o + }; + + for (var p in buffer) { + delete buffer[p]; + } + + return ret; + } + } + } + }, + 'tex-math tight': { + transitions: mhchemParser.createTransitions({ + 'empty': { + '*': { + action_: 'output' + } + }, + '\\ce{(...)}': { + '*': { + action_: ['output', 'ce'] + } + }, + '{...}|\\,|\\x{}{}|\\x{}|\\x': { + '*': { + action_: 'o=' + } + }, + '-|+': { + '*': { + action_: 'tight operator' + } + }, + 'else': { + '*': { + action_: 'o=' + } + } + }), + actions: { + 'tight operator': function tightOperator(buffer, m) { + buffer.o = (buffer.o || "") + "{" + m + "}"; + }, + 'output': function output(buffer) { + if (buffer.o) { + /** @type {ParserOutput} */ + var ret = { + type_: 'tex-math', + p1: buffer.o + }; + + for (var p in buffer) { + delete buffer[p]; + } + + return ret; + } + } + } + }, + '9,9': { + transitions: mhchemParser.createTransitions({ + 'empty': { + '*': {} + }, + ',': { + '*': { + action_: 'comma' + } + }, + 'else': { + '*': { + action_: 'copy' + } + } + }), + actions: { + 'comma': function comma() { + return { + type_: 'commaDecimal' + }; + } + } + }, + //#endregion + // + // \pu state machines + // + //#region pu + 'pu': { + transitions: mhchemParser.createTransitions({ + 'empty': { + '*': { + action_: 'output' + } + }, + 'space$': { + '*': { + action_: ['output', 'space'] + } + }, + '{[(|)]}': { + '0|a': { + action_: 'copy' + } + }, + '(-)(9)^(-9)': { + '0': { + action_: 'number^', + nextState: 'a' + } + }, + '(-)(9.,9)(e)(99)': { + '0': { + action_: 'enumber', + nextState: 'a' + } + }, + 'space': { + '0|a': {} + }, + 'pm-operator': { + '0|a': { + action_: { + type_: 'operator', + option: '\\pm' + }, + nextState: '0' + } + }, + 'operator': { + '0|a': { + action_: 'copy', + nextState: '0' + } + }, + '//': { + 'd': { + action_: 'o=', + nextState: '/' + } + }, + '/': { + 'd': { + action_: 'o=', + nextState: '/' + } + }, + '{...}|else': { + '0|d': { + action_: 'd=', + nextState: 'd' + }, + 'a': { + action_: ['space', 'd='], + nextState: 'd' + }, + '/|q': { + action_: 'q=', + nextState: 'q' + } + } + }), + actions: { + 'enumber': function enumber(buffer, m) { + /** @type {ParserOutput[]} */ + var ret = []; + + if (m[0] === "+-" || m[0] === "+/-") { + ret.push("\\pm "); + } else if (m[0]) { + ret.push(m[0]); + } + + if (m[1]) { + mhchemParser.concatArray(ret, mhchemParser.go(m[1], 'pu-9,9')); + + if (m[2]) { + if (m[2].match(/[,.]/)) { + mhchemParser.concatArray(ret, mhchemParser.go(m[2], 'pu-9,9')); + } else { + ret.push(m[2]); + } + } + + m[3] = m[4] || m[3]; + + if (m[3]) { + m[3] = m[3].trim(); + + if (m[3] === "e" || m[3].substr(0, 1) === "*") { + ret.push({ + type_: 'cdot' + }); + } else { + ret.push({ + type_: 'times' + }); + } + } + } + + if (m[3]) { + ret.push("10^{" + m[5] + "}"); + } + + return ret; + }, + 'number^': function number(buffer, m) { + /** @type {ParserOutput[]} */ + var ret = []; + + if (m[0] === "+-" || m[0] === "+/-") { + ret.push("\\pm "); + } else if (m[0]) { + ret.push(m[0]); + } + + mhchemParser.concatArray(ret, mhchemParser.go(m[1], 'pu-9,9')); + ret.push("^{" + m[2] + "}"); + return ret; + }, + 'operator': function operator(buffer, m, p1) { + return { + type_: 'operator', + kind_: p1 || m + }; + }, + 'space': function space() { + return { + type_: 'pu-space-1' + }; + }, + 'output': function output(buffer) { + /** @type {ParserOutput | ParserOutput[]} */ + var ret; + var md = mhchemParser.patterns.match_('{(...)}', buffer.d || ""); + + if (md && md.remainder === '') { + buffer.d = md.match_; + } + + var mq = mhchemParser.patterns.match_('{(...)}', buffer.q || ""); + + if (mq && mq.remainder === '') { + buffer.q = mq.match_; + } + + if (buffer.d) { + buffer.d = buffer.d.replace(/\u00B0C|\^oC|\^{o}C/g, "{}^{\\circ}C"); + buffer.d = buffer.d.replace(/\u00B0F|\^oF|\^{o}F/g, "{}^{\\circ}F"); + } + + if (buffer.q) { + // fraction + buffer.q = buffer.q.replace(/\u00B0C|\^oC|\^{o}C/g, "{}^{\\circ}C"); + buffer.q = buffer.q.replace(/\u00B0F|\^oF|\^{o}F/g, "{}^{\\circ}F"); + var b5 = { + d: mhchemParser.go(buffer.d, 'pu'), + q: mhchemParser.go(buffer.q, 'pu') + }; + + if (buffer.o === '//') { + ret = { + type_: 'pu-frac', + p1: b5.d, + p2: b5.q + }; + } else { + ret = b5.d; + + if (b5.d.length > 1 || b5.q.length > 1) { + ret.push({ + type_: ' / ' + }); + } else { + ret.push({ + type_: '/' + }); + } + + mhchemParser.concatArray(ret, b5.q); + } + } else { + // no fraction + ret = mhchemParser.go(buffer.d, 'pu-2'); + } + + for (var p in buffer) { + delete buffer[p]; + } + + return ret; + } + } + }, + 'pu-2': { + transitions: mhchemParser.createTransitions({ + 'empty': { + '*': { + action_: 'output' + } + }, + '*': { + '*': { + action_: ['output', 'cdot'], + nextState: '0' + } + }, + '\\x': { + '*': { + action_: 'rm=' + } + }, + 'space': { + '*': { + action_: ['output', 'space'], + nextState: '0' + } + }, + '^{(...)}|^(-1)': { + '1': { + action_: '^(-1)' + } + }, + '-9.,9': { + '0': { + action_: 'rm=', + nextState: '0' + }, + '1': { + action_: '^(-1)', + nextState: '0' + } + }, + '{...}|else': { + '*': { + action_: 'rm=', + nextState: '1' + } + } + }), + actions: { + 'cdot': function cdot() { + return { + type_: 'tight cdot' + }; + }, + '^(-1)': function _(buffer, m) { + buffer.rm += "^{" + m + "}"; + }, + 'space': function space() { + return { + type_: 'pu-space-2' + }; + }, + 'output': function output(buffer) { + /** @type {ParserOutput | ParserOutput[]} */ + var ret = []; + + if (buffer.rm) { + var mrm = mhchemParser.patterns.match_('{(...)}', buffer.rm || ""); + + if (mrm && mrm.remainder === '') { + ret = mhchemParser.go(mrm.match_, 'pu'); + } else { + ret = { + type_: 'rm', + p1: buffer.rm + }; + } + } + + for (var p in buffer) { + delete buffer[p]; + } + + return ret; + } + } + }, + 'pu-9,9': { + transitions: mhchemParser.createTransitions({ + 'empty': { + '0': { + action_: 'output-0' + }, + 'o': { + action_: 'output-o' + } + }, + ',': { + '0': { + action_: ['output-0', 'comma'], + nextState: 'o' + } + }, + '.': { + '0': { + action_: ['output-0', 'copy'], + nextState: 'o' + } + }, + 'else': { + '*': { + action_: 'text=' + } + } + }), + actions: { + 'comma': function comma() { + return { + type_: 'commaDecimal' + }; + }, + 'output-0': function output0(buffer) { + /** @type {ParserOutput[]} */ + var ret = []; + buffer.text_ = buffer.text_ || ""; + + if (buffer.text_.length > 4) { + var a = buffer.text_.length % 3; + + if (a === 0) { + a = 3; + } + + for (var i = buffer.text_.length - 3; i > 0; i -= 3) { + ret.push(buffer.text_.substr(i, 3)); + ret.push({ + type_: '1000 separator' + }); + } + + ret.push(buffer.text_.substr(0, a)); + ret.reverse(); + } else { + ret.push(buffer.text_); + } + + for (var p in buffer) { + delete buffer[p]; + } + + return ret; + }, + 'output-o': function outputO(buffer) { + /** @type {ParserOutput[]} */ + var ret = []; + buffer.text_ = buffer.text_ || ""; + + if (buffer.text_.length > 4) { + var a = buffer.text_.length - 3; + + for (var i = 0; i < a; i += 3) { + ret.push(buffer.text_.substr(i, 3)); + ret.push({ + type_: '1000 separator' + }); + } + + ret.push(buffer.text_.substr(i)); + } else { + ret.push(buffer.text_); + } + + for (var p in buffer) { + delete buffer[p]; + } + + return ret; + } + } //#endregion + + } +}; // +// texify: Take MhchemParser output and convert it to TeX +// + +/** @type {Texify} */ + +var texify = { + go: function go(input, isInner) { + // (recursive, max 4 levels) + if (!input) { + return ""; + } + + var res = ""; + var cee = false; + + for (var i = 0; i < input.length; i++) { + var inputi = input[i]; + + if (typeof inputi === "string") { + res += inputi; + } else { + res += texify._go2(inputi); + + if (inputi.type_ === '1st-level escape') { + cee = true; + } + } + } + + if (!isInner && !cee && res) { + res = "{" + res + "}"; + } + + return res; + }, + _goInner: function _goInner(input) { + if (!input) { + return input; + } + + return texify.go(input, true); + }, + _go2: function _go2(buf) { + /** @type {undefined | string} */ + var res; + + switch (buf.type_) { + case 'chemfive': + res = ""; + var b5 = { + a: texify._goInner(buf.a), + b: texify._goInner(buf.b), + p: texify._goInner(buf.p), + o: texify._goInner(buf.o), + q: texify._goInner(buf.q), + d: texify._goInner(buf.d) + }; // + // a + // + + if (b5.a) { + if (b5.a.match(/^[+\-]/)) { + b5.a = "{" + b5.a + "}"; + } + + res += b5.a + "\\,"; + } // + // b and p + // + + + if (b5.b || b5.p) { + res += "{\\vphantom{X}}"; + res += "^{\\hphantom{" + (b5.b || "") + "}}_{\\hphantom{" + (b5.p || "") + "}}"; + res += "{\\vphantom{X}}"; + res += "^{\\smash[t]{\\vphantom{2}}\\mathllap{" + (b5.b || "") + "}}"; + res += "_{\\vphantom{2}\\mathllap{\\smash[t]{" + (b5.p || "") + "}}}"; + } // + // o + // + + + if (b5.o) { + if (b5.o.match(/^[+\-]/)) { + b5.o = "{" + b5.o + "}"; + } + + res += b5.o; + } // + // q and d + // + + + if (buf.dType === 'kv') { + if (b5.d || b5.q) { + res += "{\\vphantom{X}}"; + } + + if (b5.d) { + res += "^{" + b5.d + "}"; + } + + if (b5.q) { + res += "_{\\smash[t]{" + b5.q + "}}"; + } + } else if (buf.dType === 'oxidation') { + if (b5.d) { + res += "{\\vphantom{X}}"; + res += "^{" + b5.d + "}"; + } + + if (b5.q) { + res += "{\\vphantom{X}}"; + res += "_{\\smash[t]{" + b5.q + "}}"; + } + } else { + if (b5.q) { + res += "{\\vphantom{X}}"; + res += "_{\\smash[t]{" + b5.q + "}}"; + } + + if (b5.d) { + res += "{\\vphantom{X}}"; + res += "^{" + b5.d + "}"; + } + } + + break; + + case 'rm': + res = "\\mathrm{" + buf.p1 + "}"; + break; + + case 'text': + if (buf.p1.match(/[\^_]/)) { + buf.p1 = buf.p1.replace(" ", "~").replace("-", "\\text{-}"); + res = "\\mathrm{" + buf.p1 + "}"; + } else { + res = "\\text{" + buf.p1 + "}"; + } + + break; + + case 'roman numeral': + res = "\\mathrm{" + buf.p1 + "}"; + break; + + case 'state of aggregation': + res = "\\mskip2mu " + texify._goInner(buf.p1); + break; + + case 'state of aggregation subscript': + res = "\\mskip1mu " + texify._goInner(buf.p1); + break; + + case 'bond': + res = texify._getBond(buf.kind_); + + if (!res) { + throw ["MhchemErrorBond", "mhchem Error. Unknown bond type (" + buf.kind_ + ")"]; + } + + break; + + case 'frac': + var c = "\\frac{" + buf.p1 + "}{" + buf.p2 + "}"; + res = "\\mathchoice{\\textstyle" + c + "}{" + c + "}{" + c + "}{" + c + "}"; + break; + + case 'pu-frac': + var d = "\\frac{" + texify._goInner(buf.p1) + "}{" + texify._goInner(buf.p2) + "}"; + res = "\\mathchoice{\\textstyle" + d + "}{" + d + "}{" + d + "}{" + d + "}"; + break; + + case 'tex-math': + res = buf.p1 + " "; + break; + + case 'frac-ce': + res = "\\frac{" + texify._goInner(buf.p1) + "}{" + texify._goInner(buf.p2) + "}"; + break; + + case 'overset': + res = "\\overset{" + texify._goInner(buf.p1) + "}{" + texify._goInner(buf.p2) + "}"; + break; + + case 'underset': + res = "\\underset{" + texify._goInner(buf.p1) + "}{" + texify._goInner(buf.p2) + "}"; + break; + + case 'underbrace': + res = "\\underbrace{" + texify._goInner(buf.p1) + "}_{" + texify._goInner(buf.p2) + "}"; + break; + + case 'color': + res = "{\\color{" + buf.color1 + "}{" + texify._goInner(buf.color2) + "}}"; + break; + + case 'color0': + res = "\\color{" + buf.color + "}"; + break; + + case 'arrow': + var b6 = { + rd: texify._goInner(buf.rd), + rq: texify._goInner(buf.rq) + }; + + var arrow = "\\x" + texify._getArrow(buf.r); + + if (b6.rq) { + arrow += "[{" + b6.rq + "}]"; + } + + if (b6.rd) { + arrow += "{" + b6.rd + "}"; + } else { + arrow += "{}"; + } + + res = arrow; + break; + + case 'operator': + res = texify._getOperator(buf.kind_); + break; + + case '1st-level escape': + res = buf.p1 + " "; // &, \\\\, \\hlin + + break; + + case 'space': + res = " "; + break; + + case 'entitySkip': + res = "~"; + break; + + case 'pu-space-1': + res = "~"; + break; + + case 'pu-space-2': + res = "\\mkern3mu "; + break; + + case '1000 separator': + res = "\\mkern2mu "; + break; + + case 'commaDecimal': + res = "{,}"; + break; + + case 'comma enumeration L': + res = "{" + buf.p1 + "}\\mkern6mu "; + break; + + case 'comma enumeration M': + res = "{" + buf.p1 + "}\\mkern3mu "; + break; + + case 'comma enumeration S': + res = "{" + buf.p1 + "}\\mkern1mu "; + break; + + case 'hyphen': + res = "\\text{-}"; + break; + + case 'addition compound': + res = "\\,{\\cdot}\\,"; + break; + + case 'electron dot': + res = "\\mkern1mu \\bullet\\mkern1mu "; + break; + + case 'KV x': + res = "{\\times}"; + break; + + case 'prime': + res = "\\prime "; + break; + + case 'cdot': + res = "\\cdot "; + break; + + case 'tight cdot': + res = "\\mkern1mu{\\cdot}\\mkern1mu "; + break; + + case 'times': + res = "\\times "; + break; + + case 'circa': + res = "{\\sim}"; + break; + + case '^': + res = "uparrow"; + break; + + case 'v': + res = "downarrow"; + break; + + case 'ellipsis': + res = "\\ldots "; + break; + + case '/': + res = "/"; + break; + + case ' / ': + res = "\\,/\\,"; + break; + + default: + throw ["MhchemBugT", "mhchem bug T. Please report."]; + // Missing texify rule or unknown MhchemParser output + } + return res; + }, + _getArrow: function _getArrow(a) { + switch (a) { + case "->": + return "rightarrow"; + + case "\u2192": + return "rightarrow"; + + case "\u27F6": + return "rightarrow"; + + case "<-": + return "leftarrow"; + + case "<->": + return "leftrightarrow"; + + case "<-->": + return "rightleftarrows"; + + case "<=>": + return "rightleftharpoons"; + + case "\u21CC": + return "rightleftharpoons"; + + case "<=>>": + return "rightequilibrium"; + + case "<<=>": + return "leftequilibrium"; + + default: + throw ["MhchemBugT", "mhchem bug T. Please report."]; + } + }, + _getBond: function _getBond(a) { + switch (a) { + case "-": + return "{-}"; + + case "1": + return "{-}"; + + case "=": + return "{=}"; + + case "2": + return "{=}"; + + case "#": + return "{\\equiv}"; + + case "3": + return "{\\equiv}"; + + case "~": + return "{\\tripledash}"; + + case "~-": + return "{\\mathrlap{\\raisebox{-.1em}{$-$}}\\raisebox{.1em}{$\\tripledash$}}"; + + case "~=": + return "{\\mathrlap{\\raisebox{-.2em}{$-$}}\\mathrlap{\\raisebox{.2em}{$\\tripledash$}}-}"; + + case "~--": + return "{\\mathrlap{\\raisebox{-.2em}{$-$}}\\mathrlap{\\raisebox{.2em}{$\\tripledash$}}-}"; + + case "-~-": + return "{\\mathrlap{\\raisebox{-.2em}{$-$}}\\mathrlap{\\raisebox{.2em}{$-$}}\\tripledash}"; + + case "...": + return "{{\\cdot}{\\cdot}{\\cdot}}"; + + case "....": + return "{{\\cdot}{\\cdot}{\\cdot}{\\cdot}}"; + + case "->": + return "{\\rightarrow}"; + + case "<-": + return "{\\leftarrow}"; + + case "<": + return "{<}"; + + case ">": + return "{>}"; + + default: + throw ["MhchemBugT", "mhchem bug T. Please report."]; + } + }, + _getOperator: function _getOperator(a) { + switch (a) { + case "+": + return " {}+{} "; + + case "-": + return " {}-{} "; + + case "=": + return " {}={} "; + + case "<": + return " {}<{} "; + + case ">": + return " {}>{} "; + + case "<<": + return " {}\\ll{} "; + + case ">>": + return " {}\\gg{} "; + + case "\\pm": + return " {}\\pm{} "; + + case "\\approx": + return " {}\\approx{} "; + + case "$\\approx$": + return " {}\\approx{} "; + + case "v": + return " \\downarrow{} "; + + case "(v)": + return " \\downarrow{} "; + + case "^": + return " \\uparrow{} "; + + case "(^)": + return " \\uparrow{} "; + + default: + throw ["MhchemBugT", "mhchem bug T. Please report."]; + } + } +}; // diff --git a/katex/contrib/render-a11y-string.js b/katex/contrib/render-a11y-string.js new file mode 100644 index 000000000..d8b27c77b --- /dev/null +++ b/katex/contrib/render-a11y-string.js @@ -0,0 +1,870 @@ +(function webpackUniversalModuleDefinition(root, factory) { + if(typeof exports === 'object' && typeof module === 'object') + module.exports = factory(require("katex")); + else if(typeof define === 'function' && define.amd) + define(["katex"], factory); + else { + var a = typeof exports === 'object' ? factory(require("katex")) : factory(root["katex"]); + for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i]; + } +})((typeof self !== 'undefined' ? self : this), function(__WEBPACK_EXTERNAL_MODULE__0__) { +return /******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) { +/******/ return installedModules[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); +/******/ } +/******/ }; +/******/ +/******/ // define __esModule on exports +/******/ __webpack_require__.r = function(exports) { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ +/******/ // create a fake namespace object +/******/ // mode & 1: value is a module id, require it +/******/ // mode & 2: merge all properties of value into the ns +/******/ // mode & 4: return value when already ns object +/******/ // mode & 8|1: behave like require +/******/ __webpack_require__.t = function(value, mode) { +/******/ if(mode & 1) value = __webpack_require__(value); +/******/ if(mode & 8) return value; +/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; +/******/ var ns = Object.create(null); +/******/ __webpack_require__.r(ns); +/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); +/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); +/******/ return ns; +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = 1); +/******/ }) +/************************************************************************/ +/******/ ([ +/* 0 */ +/***/ (function(module, exports) { + +module.exports = __WEBPACK_EXTERNAL_MODULE__0__; + +/***/ }), +/* 1 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var katex__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0); +/* harmony import */ var katex__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(katex__WEBPACK_IMPORTED_MODULE_0__); +/** + * renderA11yString returns a readable string. + * + * In some cases the string will have the proper semantic math + * meaning,: + * renderA11yString("\\frac{1}{2}"") + * -> "start fraction, 1, divided by, 2, end fraction" + * + * However, other cases do not: + * renderA11yString("f(x) = x^2") + * -> "f, left parenthesis, x, right parenthesis, equals, x, squared" + * + * The commas in the string aim to increase ease of understanding + * when read by a screenreader. + */ +// NOTE: since we're importing types here these files won't actually be +// included in the build. +// $FlowIgnore: we import the types directly anyways + +var stringMap = { + "(": "left parenthesis", + ")": "right parenthesis", + "[": "open bracket", + "]": "close bracket", + "\\{": "left brace", + "\\}": "right brace", + "\\lvert": "open vertical bar", + "\\rvert": "close vertical bar", + "|": "vertical bar", + "\\uparrow": "up arrow", + "\\Uparrow": "up arrow", + "\\downarrow": "down arrow", + "\\Downarrow": "down arrow", + "\\updownarrow": "up down arrow", + "\\leftarrow": "left arrow", + "\\Leftarrow": "left arrow", + "\\rightarrow": "right arrow", + "\\Rightarrow": "right arrow", + "\\langle": "open angle", + "\\rangle": "close angle", + "\\lfloor": "open floor", + "\\rfloor": "close floor", + "\\int": "integral", + "\\intop": "integral", + "\\lim": "limit", + "\\ln": "natural log", + "\\log": "log", + "\\sin": "sine", + "\\cos": "cosine", + "\\tan": "tangent", + "\\cot": "cotangent", + "\\sum": "sum", + "/": "slash", + ",": "comma", + ".": "point", + "-": "negative", + "+": "plus", + "~": "tilde", + ":": "colon", + "?": "question mark", + "'": "apostrophe", + "\\%": "percent", + " ": "space", + "\\ ": "space", + "\\$": "dollar sign", + "\\angle": "angle", + "\\degree": "degree", + "\\circ": "circle", + "\\vec": "vector", + "\\triangle": "triangle", + "\\pi": "pi", + "\\prime": "prime", + "\\infty": "infinity", + "\\alpha": "alpha", + "\\beta": "beta", + "\\gamma": "gamma", + "\\omega": "omega", + "\\theta": "theta", + "\\sigma": "sigma", + "\\lambda": "lambda", + "\\tau": "tau", + "\\Delta": "delta", + "\\delta": "delta", + "\\mu": "mu", + "\\rho": "rho", + "\\nabla": "del", + "\\ell": "ell", + "\\ldots": "dots", + // TODO: add entries for all accents + "\\hat": "hat", + "\\acute": "acute" +}; +var powerMap = { + "prime": "prime", + "degree": "degrees", + "circle": "degrees", + "2": "squared", + "3": "cubed" +}; +var openMap = { + "|": "open vertical bar", + ".": "" +}; +var closeMap = { + "|": "close vertical bar", + ".": "" +}; +var binMap = { + "+": "plus", + "-": "minus", + "\\pm": "plus minus", + "\\cdot": "dot", + "*": "times", + "/": "divided by", + "\\times": "times", + "\\div": "divided by", + "\\circ": "circle", + "\\bullet": "bullet" +}; +var relMap = { + "=": "equals", + "\\approx": "approximately equals", + "≠": "does not equal", + "\\geq": "is greater than or equal to", + "\\ge": "is greater than or equal to", + "\\leq": "is less than or equal to", + "\\le": "is less than or equal to", + ">": "is greater than", + "<": "is less than", + "\\leftarrow": "left arrow", + "\\Leftarrow": "left arrow", + "\\rightarrow": "right arrow", + "\\Rightarrow": "right arrow", + ":": "colon" +}; +var accentUnderMap = { + "\\underleftarrow": "left arrow", + "\\underrightarrow": "right arrow", + "\\underleftrightarrow": "left-right arrow", + "\\undergroup": "group", + "\\underlinesegment": "line segment", + "\\utilde": "tilde" +}; + +var buildString = function buildString(str, type, a11yStrings) { + if (!str) { + return; + } + + var ret; + + if (type === "open") { + ret = str in openMap ? openMap[str] : stringMap[str] || str; + } else if (type === "close") { + ret = str in closeMap ? closeMap[str] : stringMap[str] || str; + } else if (type === "bin") { + ret = binMap[str] || str; + } else if (type === "rel") { + ret = relMap[str] || str; + } else { + ret = stringMap[str] || str; + } // If the text to add is a number and there is already a string + // in the list and the last string is a number then we should + // combine them into a single number + + + if (/^\d+$/.test(ret) && a11yStrings.length > 0 && // TODO(kevinb): check that the last item in a11yStrings is a string + // I think we might be able to drop the nested arrays, which would make + // this easier to type - $FlowFixMe + /^\d+$/.test(a11yStrings[a11yStrings.length - 1])) { + a11yStrings[a11yStrings.length - 1] += ret; + } else if (ret) { + a11yStrings.push(ret); + } +}; + +var buildRegion = function buildRegion(a11yStrings, callback) { + var regionStrings = []; + a11yStrings.push(regionStrings); + callback(regionStrings); +}; + +var handleObject = function handleObject(tree, a11yStrings, atomType) { + // Everything else is assumed to be an object... + switch (tree.type) { + case "accent": + { + buildRegion(a11yStrings, function (a11yStrings) { + buildA11yStrings(tree.base, a11yStrings, atomType); + a11yStrings.push("with"); + buildString(tree.label, "normal", a11yStrings); + a11yStrings.push("on top"); + }); + break; + } + + case "accentUnder": + { + buildRegion(a11yStrings, function (a11yStrings) { + buildA11yStrings(tree.base, a11yStrings, atomType); + a11yStrings.push("with"); + buildString(accentUnderMap[tree.label], "normal", a11yStrings); + a11yStrings.push("underneath"); + }); + break; + } + + case "accent-token": + { + // Used internally by accent symbols. + break; + } + + case "atom": + { + var text = tree.text; + + switch (tree.family) { + case "bin": + { + buildString(text, "bin", a11yStrings); + break; + } + + case "close": + { + buildString(text, "close", a11yStrings); + break; + } + // TODO(kevinb): figure out what should be done for inner + + case "inner": + { + buildString(tree.text, "inner", a11yStrings); + break; + } + + case "open": + { + buildString(text, "open", a11yStrings); + break; + } + + case "punct": + { + buildString(text, "punct", a11yStrings); + break; + } + + case "rel": + { + buildString(text, "rel", a11yStrings); + break; + } + + default: + { + tree.family; + throw new Error("\"" + tree.family + "\" is not a valid atom type"); + } + } + + break; + } + + case "color": + { + var color = tree.color.replace(/katex-/, ""); + buildRegion(a11yStrings, function (regionStrings) { + regionStrings.push("start color " + color); + buildA11yStrings(tree.body, regionStrings, atomType); + regionStrings.push("end color " + color); + }); + break; + } + + case "color-token": + { + // Used by \color, \colorbox, and \fcolorbox but not directly rendered. + // It's a leaf node and has no children so just break. + break; + } + + case "delimsizing": + { + if (tree.delim && tree.delim !== ".") { + buildString(tree.delim, "normal", a11yStrings); + } + + break; + } + + case "genfrac": + { + buildRegion(a11yStrings, function (regionStrings) { + // genfrac can have unbalanced delimiters + var leftDelim = tree.leftDelim, + rightDelim = tree.rightDelim; // NOTE: Not sure if this is a safe assumption + // hasBarLine true -> fraction, false -> binomial + + if (tree.hasBarLine) { + regionStrings.push("start fraction"); + leftDelim && buildString(leftDelim, "open", regionStrings); + buildA11yStrings(tree.numer, regionStrings, atomType); + regionStrings.push("divided by"); + buildA11yStrings(tree.denom, regionStrings, atomType); + rightDelim && buildString(rightDelim, "close", regionStrings); + regionStrings.push("end fraction"); + } else { + regionStrings.push("start binomial"); + leftDelim && buildString(leftDelim, "open", regionStrings); + buildA11yStrings(tree.numer, regionStrings, atomType); + regionStrings.push("over"); + buildA11yStrings(tree.denom, regionStrings, atomType); + rightDelim && buildString(rightDelim, "close", regionStrings); + regionStrings.push("end binomial"); + } + }); + break; + } + + case "kern": + { + // No op: we don't attempt to present kerning information + // to the screen reader. + break; + } + + case "leftright": + { + buildRegion(a11yStrings, function (regionStrings) { + buildString(tree.left, "open", regionStrings); + buildA11yStrings(tree.body, regionStrings, atomType); + buildString(tree.right, "close", regionStrings); + }); + break; + } + + case "leftright-right": + { + // TODO: double check that this is a no-op + break; + } + + case "lap": + { + buildA11yStrings(tree.body, a11yStrings, atomType); + break; + } + + case "mathord": + { + buildString(tree.text, "normal", a11yStrings); + break; + } + + case "op": + { + var body = tree.body, + name = tree.name; + + if (body) { + buildA11yStrings(body, a11yStrings, atomType); + } else if (name) { + buildString(name, "normal", a11yStrings); + } + + break; + } + + case "op-token": + { + // Used internally by operator symbols. + buildString(tree.text, atomType, a11yStrings); + break; + } + + case "ordgroup": + { + buildA11yStrings(tree.body, a11yStrings, atomType); + break; + } + + case "overline": + { + buildRegion(a11yStrings, function (a11yStrings) { + a11yStrings.push("start overline"); + buildA11yStrings(tree.body, a11yStrings, atomType); + a11yStrings.push("end overline"); + }); + break; + } + + case "phantom": + { + a11yStrings.push("empty space"); + break; + } + + case "raisebox": + { + buildA11yStrings(tree.body, a11yStrings, atomType); + break; + } + + case "rule": + { + a11yStrings.push("rectangle"); + break; + } + + case "sizing": + { + buildA11yStrings(tree.body, a11yStrings, atomType); + break; + } + + case "spacing": + { + a11yStrings.push("space"); + break; + } + + case "styling": + { + // We ignore the styling and just pass through the contents + buildA11yStrings(tree.body, a11yStrings, atomType); + break; + } + + case "sqrt": + { + buildRegion(a11yStrings, function (regionStrings) { + var body = tree.body, + index = tree.index; + + if (index) { + var indexString = flatten(buildA11yStrings(index, [], atomType)).join(","); + + if (indexString === "3") { + regionStrings.push("cube root of"); + buildA11yStrings(body, regionStrings, atomType); + regionStrings.push("end cube root"); + return; + } + + regionStrings.push("root"); + regionStrings.push("start index"); + buildA11yStrings(index, regionStrings, atomType); + regionStrings.push("end index"); + return; + } + + regionStrings.push("square root of"); + buildA11yStrings(body, regionStrings, atomType); + regionStrings.push("end square root"); + }); + break; + } + + case "supsub": + { + var base = tree.base, + sub = tree.sub, + sup = tree.sup; + var isLog = false; + + if (base) { + buildA11yStrings(base, a11yStrings, atomType); + isLog = base.type === "op" && base.name === "\\log"; + } + + if (sub) { + var regionName = isLog ? "base" : "subscript"; + buildRegion(a11yStrings, function (regionStrings) { + regionStrings.push("start " + regionName); + buildA11yStrings(sub, regionStrings, atomType); + regionStrings.push("end " + regionName); + }); + } + + if (sup) { + buildRegion(a11yStrings, function (regionStrings) { + var supString = flatten(buildA11yStrings(sup, [], atomType)).join(","); + + if (supString in powerMap) { + regionStrings.push(powerMap[supString]); + return; + } + + regionStrings.push("start superscript"); + buildA11yStrings(sup, regionStrings, atomType); + regionStrings.push("end superscript"); + }); + } + + break; + } + + case "text": + { + // TODO: handle other fonts + if (tree.font === "\\textbf") { + buildRegion(a11yStrings, function (regionStrings) { + regionStrings.push("start bold text"); + buildA11yStrings(tree.body, regionStrings, atomType); + regionStrings.push("end bold text"); + }); + break; + } + + buildRegion(a11yStrings, function (regionStrings) { + regionStrings.push("start text"); + buildA11yStrings(tree.body, regionStrings, atomType); + regionStrings.push("end text"); + }); + break; + } + + case "textord": + { + buildString(tree.text, atomType, a11yStrings); + break; + } + + case "smash": + { + buildA11yStrings(tree.body, a11yStrings, atomType); + break; + } + + case "enclose": + { + // TODO: create a map for these. + // TODO: differentiate between a body with a single atom, e.g. + // "cancel a" instead of "start cancel, a, end cancel" + if (/cancel/.test(tree.label)) { + buildRegion(a11yStrings, function (regionStrings) { + regionStrings.push("start cancel"); + buildA11yStrings(tree.body, regionStrings, atomType); + regionStrings.push("end cancel"); + }); + break; + } else if (/box/.test(tree.label)) { + buildRegion(a11yStrings, function (regionStrings) { + regionStrings.push("start box"); + buildA11yStrings(tree.body, regionStrings, atomType); + regionStrings.push("end box"); + }); + break; + } else if (/sout/.test(tree.label)) { + buildRegion(a11yStrings, function (regionStrings) { + regionStrings.push("start strikeout"); + buildA11yStrings(tree.body, regionStrings, atomType); + regionStrings.push("end strikeout"); + }); + break; + } + + throw new Error("KaTeX-a11y: enclose node with " + tree.label + " not supported yet"); + } + + case "vphantom": + { + throw new Error("KaTeX-a11y: vphantom not implemented yet"); + } + + case "hphantom": + { + throw new Error("KaTeX-a11y: hphantom not implemented yet"); + } + + case "operatorname": + { + buildA11yStrings(tree.body, a11yStrings, atomType); + break; + } + + case "array": + { + throw new Error("KaTeX-a11y: array not implemented yet"); + } + + case "raw": + { + throw new Error("KaTeX-a11y: raw not implemented yet"); + } + + case "size": + { + // Although there are nodes of type "size" in the parse tree, they have + // no semantic meaning and should be ignored. + break; + } + + case "url": + { + throw new Error("KaTeX-a11y: url not implemented yet"); + } + + case "tag": + { + throw new Error("KaTeX-a11y: tag not implemented yet"); + } + + case "verb": + { + buildString("start verbatim", "normal", a11yStrings); + buildString(tree.body, "normal", a11yStrings); + buildString("end verbatim", "normal", a11yStrings); + break; + } + + case "environment": + { + throw new Error("KaTeX-a11y: environment not implemented yet"); + } + + case "horizBrace": + { + buildString("start " + tree.label.slice(1), "normal", a11yStrings); + buildA11yStrings(tree.base, a11yStrings, atomType); + buildString("end " + tree.label.slice(1), "normal", a11yStrings); + break; + } + + case "infix": + { + // All infix nodes are replace with other nodes. + break; + } + + case "includegraphics": + { + throw new Error("KaTeX-a11y: includegraphics not implemented yet"); + } + + case "font": + { + // TODO: callout the start/end of specific fonts + // TODO: map \BBb{N} to "the naturals" or something like that + buildA11yStrings(tree.body, a11yStrings, atomType); + break; + } + + case "href": + { + throw new Error("KaTeX-a11y: href not implemented yet"); + } + + case "cr": + { + // This is used by environments. + throw new Error("KaTeX-a11y: cr not implemented yet"); + } + + case "underline": + { + buildRegion(a11yStrings, function (a11yStrings) { + a11yStrings.push("start underline"); + buildA11yStrings(tree.body, a11yStrings, atomType); + a11yStrings.push("end underline"); + }); + break; + } + + case "xArrow": + { + throw new Error("KaTeX-a11y: xArrow not implemented yet"); + } + + case "mclass": + { + // \neq and \ne are macros so we let "htmlmathml" render the mathmal + // side of things and extract the text from that. + var _atomType = tree.mclass.slice(1); // $FlowFixMe: drop the leading "m" from the values in mclass + + + buildA11yStrings(tree.body, a11yStrings, _atomType); + break; + } + + case "mathchoice": + { + // TODO: track which which style we're using, e.g. dispaly, text, etc. + // default to text style if even that may not be the correct style + buildA11yStrings(tree.text, a11yStrings, atomType); + break; + } + + case "htmlmathml": + { + buildA11yStrings(tree.mathml, a11yStrings, atomType); + break; + } + + case "middle": + { + buildString(tree.delim, atomType, a11yStrings); + break; + } + + case "internal": + { + // internal nodes are never included in the parse tree + break; + } + + case "html": + { + buildA11yStrings(tree.body, a11yStrings, atomType); + break; + } + + default: + tree.type; + throw new Error("KaTeX a11y un-recognized type: " + tree.type); + } +}; + +var buildA11yStrings = function buildA11yStrings(tree, a11yStrings, atomType) { + if (a11yStrings === void 0) { + a11yStrings = []; + } + + if (tree instanceof Array) { + for (var i = 0; i < tree.length; i++) { + buildA11yStrings(tree[i], a11yStrings, atomType); + } + } else { + handleObject(tree, a11yStrings, atomType); + } + + return a11yStrings; +}; + +var flatten = function flatten(array) { + var result = []; + array.forEach(function (item) { + if (item instanceof Array) { + result = result.concat(flatten(item)); + } else { + result.push(item); + } + }); + return result; +}; + +var renderA11yString = function renderA11yString(text, settings) { + var tree = katex__WEBPACK_IMPORTED_MODULE_0___default.a.__parse(text, settings); + + var a11yStrings = buildA11yStrings(tree, [], "normal"); + return flatten(a11yStrings).join(", "); +}; + +/* harmony default export */ __webpack_exports__["default"] = (renderA11yString); + +/***/ }) +/******/ ])["default"]; +}); \ No newline at end of file diff --git a/katex/contrib/render-a11y-string.min.js b/katex/contrib/render-a11y-string.min.js new file mode 100644 index 000000000..5d406a6c6 --- /dev/null +++ b/katex/contrib/render-a11y-string.min.js @@ -0,0 +1 @@ +!function(e,r){if("object"==typeof exports&&"object"==typeof module)module.exports=r(require("katex"));else if("function"==typeof define&&define.amd)define(["katex"],r);else{var t="object"==typeof exports?r(require("katex")):r(e.katex);for(var a in t)("object"==typeof exports?exports:e)[a]=t[a]}}("undefined"!=typeof self?self:this,function(e){return function(e){var r={};function t(a){if(r[a])return r[a].exports;var o=r[a]={i:a,l:!1,exports:{}};return e[a].call(o.exports,o,o.exports,t),o.l=!0,o.exports}return t.m=e,t.c=r,t.d=function(e,r,a){t.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:a})},t.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.t=function(e,r){if(1&r&&(e=t(e)),8&r)return e;if(4&r&&"object"==typeof e&&e&&e.__esModule)return e;var a=Object.create(null);if(t.r(a),Object.defineProperty(a,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var o in e)t.d(a,o,function(r){return e[r]}.bind(null,o));return a},t.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(r,"a",r),r},t.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},t.p="",t(t.s=1)}([function(r,t){r.exports=e},function(e,r,t){"use strict";t.r(r);var a=t(0),o=t.n(a),n={"(":"left parenthesis",")":"right parenthesis","[":"open bracket","]":"close bracket","\\{":"left brace","\\}":"right brace","\\lvert":"open vertical bar","\\rvert":"close vertical bar","|":"vertical bar","\\uparrow":"up arrow","\\Uparrow":"up arrow","\\downarrow":"down arrow","\\Downarrow":"down arrow","\\updownarrow":"up down arrow","\\leftarrow":"left arrow","\\Leftarrow":"left arrow","\\rightarrow":"right arrow","\\Rightarrow":"right arrow","\\langle":"open angle","\\rangle":"close angle","\\lfloor":"open floor","\\rfloor":"close floor","\\int":"integral","\\intop":"integral","\\lim":"limit","\\ln":"natural log","\\log":"log","\\sin":"sine","\\cos":"cosine","\\tan":"tangent","\\cot":"cotangent","\\sum":"sum","/":"slash",",":"comma",".":"point","-":"negative","+":"plus","~":"tilde",":":"colon","?":"question mark","'":"apostrophe","\\%":"percent"," ":"space","\\ ":"space","\\$":"dollar sign","\\angle":"angle","\\degree":"degree","\\circ":"circle","\\vec":"vector","\\triangle":"triangle","\\pi":"pi","\\prime":"prime","\\infty":"infinity","\\alpha":"alpha","\\beta":"beta","\\gamma":"gamma","\\omega":"omega","\\theta":"theta","\\sigma":"sigma","\\lambda":"lambda","\\tau":"tau","\\Delta":"delta","\\delta":"delta","\\mu":"mu","\\rho":"rho","\\nabla":"del","\\ell":"ell","\\ldots":"dots","\\hat":"hat","\\acute":"acute"},s={prime:"prime",degree:"degrees",circle:"degrees",2:"squared",3:"cubed"},i={"|":"open vertical bar",".":""},l={"|":"close vertical bar",".":""},c={"+":"plus","-":"minus","\\pm":"plus minus","\\cdot":"dot","*":"times","/":"divided by","\\times":"times","\\div":"divided by","\\circ":"circle","\\bullet":"bullet"},u={"=":"equals","\\approx":"approximately equals","\u2260":"does not equal","\\geq":"is greater than or equal to","\\ge":"is greater than or equal to","\\leq":"is less than or equal to","\\le":"is less than or equal to",">":"is greater than","<":"is less than","\\leftarrow":"left arrow","\\Leftarrow":"left arrow","\\rightarrow":"right arrow","\\Rightarrow":"right arrow",":":"colon"},p={"\\underleftarrow":"left arrow","\\underrightarrow":"right arrow","\\underleftrightarrow":"left-right arrow","\\undergroup":"group","\\underlinesegment":"line segment","\\utilde":"tilde"},d=function(e,r,t){var a;e&&(/^\d+$/.test(a="open"===r?e in i?i[e]:n[e]||e:"close"===r?e in l?l[e]:n[e]||e:"bin"===r?c[e]||e:"rel"===r?u[e]||e:n[e]||e)&&t.length>0&&/^\d+$/.test(t[t.length-1])?t[t.length-1]+=a:a&&t.push(a))},b=function(e,r){var t=[];e.push(t),r(t)},h=function(e,r,t){switch(e.type){case"accent":b(r,function(r){f(e.base,r,t),r.push("with"),d(e.label,"normal",r),r.push("on top")});break;case"accentUnder":b(r,function(r){f(e.base,r,t),r.push("with"),d(p[e.label],"normal",r),r.push("underneath")});break;case"accent-token":break;case"atom":var a=e.text;switch(e.family){case"bin":d(a,"bin",r);break;case"close":d(a,"close",r);break;case"inner":d(e.text,"inner",r);break;case"open":d(a,"open",r);break;case"punct":d(a,"punct",r);break;case"rel":d(a,"rel",r);break;default:throw e.family,new Error('"'+e.family+'" is not a valid atom type')}break;case"color":var o=e.color.replace(/katex-/,"");b(r,function(r){r.push("start color "+o),f(e.body,r,t),r.push("end color "+o)});break;case"color-token":break;case"delimsizing":e.delim&&"."!==e.delim&&d(e.delim,"normal",r);break;case"genfrac":b(r,function(r){var a=e.leftDelim,o=e.rightDelim;e.hasBarLine?(r.push("start fraction"),a&&d(a,"open",r),f(e.numer,r,t),r.push("divided by"),f(e.denom,r,t),o&&d(o,"close",r),r.push("end fraction")):(r.push("start binomial"),a&&d(a,"open",r),f(e.numer,r,t),r.push("over"),f(e.denom,r,t),o&&d(o,"close",r),r.push("end binomial"))});break;case"kern":break;case"leftright":b(r,function(r){d(e.left,"open",r),f(e.body,r,t),d(e.right,"close",r)});break;case"leftright-right":break;case"lap":f(e.body,r,t);break;case"mathord":d(e.text,"normal",r);break;case"op":var n=e.body,i=e.name;n?f(n,r,t):i&&d(i,"normal",r);break;case"op-token":d(e.text,t,r);break;case"ordgroup":f(e.body,r,t);break;case"overline":b(r,function(r){r.push("start overline"),f(e.body,r,t),r.push("end overline")});break;case"phantom":r.push("empty space");break;case"raisebox":f(e.body,r,t);break;case"rule":r.push("rectangle");break;case"sizing":f(e.body,r,t);break;case"spacing":r.push("space");break;case"styling":f(e.body,r,t);break;case"sqrt":b(r,function(r){var a=e.body,o=e.index;if(o)return"3"===m(f(o,[],t)).join(",")?(r.push("cube root of"),f(a,r,t),void r.push("end cube root")):(r.push("root"),r.push("start index"),f(o,r,t),void r.push("end index"));r.push("square root of"),f(a,r,t),r.push("end square root")});break;case"supsub":var l=e.base,c=e.sub,u=e.sup,h=!1;if(l&&(f(l,r,t),h="op"===l.type&&"\\log"===l.name),c){var y=h?"base":"subscript";b(r,function(e){e.push("start "+y),f(c,e,t),e.push("end "+y)})}u&&b(r,function(e){var r=m(f(u,[],t)).join(",");r in s?e.push(s[r]):(e.push("start superscript"),f(u,e,t),e.push("end superscript"))});break;case"text":if("\\textbf"===e.font){b(r,function(r){r.push("start bold text"),f(e.body,r,t),r.push("end bold text")});break}b(r,function(r){r.push("start text"),f(e.body,r,t),r.push("end text")});break;case"textord":d(e.text,t,r);break;case"smash":f(e.body,r,t);break;case"enclose":if(/cancel/.test(e.label)){b(r,function(r){r.push("start cancel"),f(e.body,r,t),r.push("end cancel")});break}if(/box/.test(e.label)){b(r,function(r){r.push("start box"),f(e.body,r,t),r.push("end box")});break}if(/sout/.test(e.label)){b(r,function(r){r.push("start strikeout"),f(e.body,r,t),r.push("end strikeout")});break}throw new Error("KaTeX-a11y: enclose node with "+e.label+" not supported yet");case"vphantom":throw new Error("KaTeX-a11y: vphantom not implemented yet");case"hphantom":throw new Error("KaTeX-a11y: hphantom not implemented yet");case"operatorname":f(e.body,r,t);break;case"array":throw new Error("KaTeX-a11y: array not implemented yet");case"raw":throw new Error("KaTeX-a11y: raw not implemented yet");case"size":break;case"url":throw new Error("KaTeX-a11y: url not implemented yet");case"tag":throw new Error("KaTeX-a11y: tag not implemented yet");case"verb":d("start verbatim","normal",r),d(e.body,"normal",r),d("end verbatim","normal",r);break;case"environment":throw new Error("KaTeX-a11y: environment not implemented yet");case"horizBrace":d("start "+e.label.slice(1),"normal",r),f(e.base,r,t),d("end "+e.label.slice(1),"normal",r);break;case"infix":break;case"includegraphics":throw new Error("KaTeX-a11y: includegraphics not implemented yet");case"font":f(e.body,r,t);break;case"href":throw new Error("KaTeX-a11y: href not implemented yet");case"cr":throw new Error("KaTeX-a11y: cr not implemented yet");case"underline":b(r,function(r){r.push("start underline"),f(e.body,r,t),r.push("end underline")});break;case"xArrow":throw new Error("KaTeX-a11y: xArrow not implemented yet");case"mclass":var g=e.mclass.slice(1);f(e.body,r,g);break;case"mathchoice":f(e.text,r,t);break;case"htmlmathml":f(e.mathml,r,t);break;case"middle":d(e.delim,t,r);break;case"internal":break;case"html":f(e.body,r,t);break;default:throw e.type,new Error("KaTeX a11y un-recognized type: "+e.type)}},f=function e(r,t,a){if(void 0===t&&(t=[]),r instanceof Array)for(var o=0;o "start fraction, 1, divided by, 2, end fraction" + * + * However, other cases do not: + * renderA11yString("f(x) = x^2") + * -> "f, left parenthesis, x, right parenthesis, equals, x, squared" + * + * The commas in the string aim to increase ease of understanding + * when read by a screenreader. + */ +const stringMap = { + "(": "left parenthesis", + ")": "right parenthesis", + "[": "open bracket", + "]": "close bracket", + "\\{": "left brace", + "\\}": "right brace", + "\\lvert": "open vertical bar", + "\\rvert": "close vertical bar", + "|": "vertical bar", + "\\uparrow": "up arrow", + "\\Uparrow": "up arrow", + "\\downarrow": "down arrow", + "\\Downarrow": "down arrow", + "\\updownarrow": "up down arrow", + "\\leftarrow": "left arrow", + "\\Leftarrow": "left arrow", + "\\rightarrow": "right arrow", + "\\Rightarrow": "right arrow", + "\\langle": "open angle", + "\\rangle": "close angle", + "\\lfloor": "open floor", + "\\rfloor": "close floor", + "\\int": "integral", + "\\intop": "integral", + "\\lim": "limit", + "\\ln": "natural log", + "\\log": "log", + "\\sin": "sine", + "\\cos": "cosine", + "\\tan": "tangent", + "\\cot": "cotangent", + "\\sum": "sum", + "/": "slash", + ",": "comma", + ".": "point", + "-": "negative", + "+": "plus", + "~": "tilde", + ":": "colon", + "?": "question mark", + "'": "apostrophe", + "\\%": "percent", + " ": "space", + "\\ ": "space", + "\\$": "dollar sign", + "\\angle": "angle", + "\\degree": "degree", + "\\circ": "circle", + "\\vec": "vector", + "\\triangle": "triangle", + "\\pi": "pi", + "\\prime": "prime", + "\\infty": "infinity", + "\\alpha": "alpha", + "\\beta": "beta", + "\\gamma": "gamma", + "\\omega": "omega", + "\\theta": "theta", + "\\sigma": "sigma", + "\\lambda": "lambda", + "\\tau": "tau", + "\\Delta": "delta", + "\\delta": "delta", + "\\mu": "mu", + "\\rho": "rho", + "\\nabla": "del", + "\\ell": "ell", + "\\ldots": "dots", + // TODO: add entries for all accents + "\\hat": "hat", + "\\acute": "acute" +}; +const powerMap = { + "prime": "prime", + "degree": "degrees", + "circle": "degrees", + "2": "squared", + "3": "cubed" +}; +const openMap = { + "|": "open vertical bar", + ".": "" +}; +const closeMap = { + "|": "close vertical bar", + ".": "" +}; +const binMap = { + "+": "plus", + "-": "minus", + "\\pm": "plus minus", + "\\cdot": "dot", + "*": "times", + "/": "divided by", + "\\times": "times", + "\\div": "divided by", + "\\circ": "circle", + "\\bullet": "bullet" +}; +const relMap = { + "=": "equals", + "\\approx": "approximately equals", + "≠": "does not equal", + "\\geq": "is greater than or equal to", + "\\ge": "is greater than or equal to", + "\\leq": "is less than or equal to", + "\\le": "is less than or equal to", + ">": "is greater than", + "<": "is less than", + "\\leftarrow": "left arrow", + "\\Leftarrow": "left arrow", + "\\rightarrow": "right arrow", + "\\Rightarrow": "right arrow", + ":": "colon" +}; +const accentUnderMap = { + "\\underleftarrow": "left arrow", + "\\underrightarrow": "right arrow", + "\\underleftrightarrow": "left-right arrow", + "\\undergroup": "group", + "\\underlinesegment": "line segment", + "\\utilde": "tilde" +}; + +const buildString = (str, type, a11yStrings) => { + if (!str) { + return; + } + + let ret; + + if (type === "open") { + ret = str in openMap ? openMap[str] : stringMap[str] || str; + } else if (type === "close") { + ret = str in closeMap ? closeMap[str] : stringMap[str] || str; + } else if (type === "bin") { + ret = binMap[str] || str; + } else if (type === "rel") { + ret = relMap[str] || str; + } else { + ret = stringMap[str] || str; + } // If the text to add is a number and there is already a string + // in the list and the last string is a number then we should + // combine them into a single number + + + if (/^\d+$/.test(ret) && a11yStrings.length > 0 && // TODO(kevinb): check that the last item in a11yStrings is a string + // I think we might be able to drop the nested arrays, which would make + // this easier to type - $FlowFixMe + /^\d+$/.test(a11yStrings[a11yStrings.length - 1])) { + a11yStrings[a11yStrings.length - 1] += ret; + } else if (ret) { + a11yStrings.push(ret); + } +}; + +const buildRegion = (a11yStrings, callback) => { + const regionStrings = []; + a11yStrings.push(regionStrings); + callback(regionStrings); +}; + +const handleObject = (tree, a11yStrings, atomType) => { + // Everything else is assumed to be an object... + switch (tree.type) { + case "accent": + { + buildRegion(a11yStrings, a11yStrings => { + buildA11yStrings(tree.base, a11yStrings, atomType); + a11yStrings.push("with"); + buildString(tree.label, "normal", a11yStrings); + a11yStrings.push("on top"); + }); + break; + } + + case "accentUnder": + { + buildRegion(a11yStrings, a11yStrings => { + buildA11yStrings(tree.base, a11yStrings, atomType); + a11yStrings.push("with"); + buildString(accentUnderMap[tree.label], "normal", a11yStrings); + a11yStrings.push("underneath"); + }); + break; + } + + case "accent-token": + { + // Used internally by accent symbols. + break; + } + + case "atom": + { + const text = tree.text; + + switch (tree.family) { + case "bin": + { + buildString(text, "bin", a11yStrings); + break; + } + + case "close": + { + buildString(text, "close", a11yStrings); + break; + } + // TODO(kevinb): figure out what should be done for inner + + case "inner": + { + buildString(tree.text, "inner", a11yStrings); + break; + } + + case "open": + { + buildString(text, "open", a11yStrings); + break; + } + + case "punct": + { + buildString(text, "punct", a11yStrings); + break; + } + + case "rel": + { + buildString(text, "rel", a11yStrings); + break; + } + + default: + { + tree.family; + throw new Error(`"${tree.family}" is not a valid atom type`); + } + } + + break; + } + + case "color": + { + const color = tree.color.replace(/katex-/, ""); + buildRegion(a11yStrings, regionStrings => { + regionStrings.push("start color " + color); + buildA11yStrings(tree.body, regionStrings, atomType); + regionStrings.push("end color " + color); + }); + break; + } + + case "color-token": + { + // Used by \color, \colorbox, and \fcolorbox but not directly rendered. + // It's a leaf node and has no children so just break. + break; + } + + case "delimsizing": + { + if (tree.delim && tree.delim !== ".") { + buildString(tree.delim, "normal", a11yStrings); + } + + break; + } + + case "genfrac": + { + buildRegion(a11yStrings, regionStrings => { + // genfrac can have unbalanced delimiters + const leftDelim = tree.leftDelim, + rightDelim = tree.rightDelim; // NOTE: Not sure if this is a safe assumption + // hasBarLine true -> fraction, false -> binomial + + if (tree.hasBarLine) { + regionStrings.push("start fraction"); + leftDelim && buildString(leftDelim, "open", regionStrings); + buildA11yStrings(tree.numer, regionStrings, atomType); + regionStrings.push("divided by"); + buildA11yStrings(tree.denom, regionStrings, atomType); + rightDelim && buildString(rightDelim, "close", regionStrings); + regionStrings.push("end fraction"); + } else { + regionStrings.push("start binomial"); + leftDelim && buildString(leftDelim, "open", regionStrings); + buildA11yStrings(tree.numer, regionStrings, atomType); + regionStrings.push("over"); + buildA11yStrings(tree.denom, regionStrings, atomType); + rightDelim && buildString(rightDelim, "close", regionStrings); + regionStrings.push("end binomial"); + } + }); + break; + } + + case "kern": + { + // No op: we don't attempt to present kerning information + // to the screen reader. + break; + } + + case "leftright": + { + buildRegion(a11yStrings, regionStrings => { + buildString(tree.left, "open", regionStrings); + buildA11yStrings(tree.body, regionStrings, atomType); + buildString(tree.right, "close", regionStrings); + }); + break; + } + + case "leftright-right": + { + // TODO: double check that this is a no-op + break; + } + + case "lap": + { + buildA11yStrings(tree.body, a11yStrings, atomType); + break; + } + + case "mathord": + { + buildString(tree.text, "normal", a11yStrings); + break; + } + + case "op": + { + const body = tree.body, + name = tree.name; + + if (body) { + buildA11yStrings(body, a11yStrings, atomType); + } else if (name) { + buildString(name, "normal", a11yStrings); + } + + break; + } + + case "op-token": + { + // Used internally by operator symbols. + buildString(tree.text, atomType, a11yStrings); + break; + } + + case "ordgroup": + { + buildA11yStrings(tree.body, a11yStrings, atomType); + break; + } + + case "overline": + { + buildRegion(a11yStrings, function (a11yStrings) { + a11yStrings.push("start overline"); + buildA11yStrings(tree.body, a11yStrings, atomType); + a11yStrings.push("end overline"); + }); + break; + } + + case "phantom": + { + a11yStrings.push("empty space"); + break; + } + + case "raisebox": + { + buildA11yStrings(tree.body, a11yStrings, atomType); + break; + } + + case "rule": + { + a11yStrings.push("rectangle"); + break; + } + + case "sizing": + { + buildA11yStrings(tree.body, a11yStrings, atomType); + break; + } + + case "spacing": + { + a11yStrings.push("space"); + break; + } + + case "styling": + { + // We ignore the styling and just pass through the contents + buildA11yStrings(tree.body, a11yStrings, atomType); + break; + } + + case "sqrt": + { + buildRegion(a11yStrings, regionStrings => { + const body = tree.body, + index = tree.index; + + if (index) { + const indexString = flatten(buildA11yStrings(index, [], atomType)).join(","); + + if (indexString === "3") { + regionStrings.push("cube root of"); + buildA11yStrings(body, regionStrings, atomType); + regionStrings.push("end cube root"); + return; + } + + regionStrings.push("root"); + regionStrings.push("start index"); + buildA11yStrings(index, regionStrings, atomType); + regionStrings.push("end index"); + return; + } + + regionStrings.push("square root of"); + buildA11yStrings(body, regionStrings, atomType); + regionStrings.push("end square root"); + }); + break; + } + + case "supsub": + { + const base = tree.base, + sub = tree.sub, + sup = tree.sup; + let isLog = false; + + if (base) { + buildA11yStrings(base, a11yStrings, atomType); + isLog = base.type === "op" && base.name === "\\log"; + } + + if (sub) { + const regionName = isLog ? "base" : "subscript"; + buildRegion(a11yStrings, function (regionStrings) { + regionStrings.push(`start ${regionName}`); + buildA11yStrings(sub, regionStrings, atomType); + regionStrings.push(`end ${regionName}`); + }); + } + + if (sup) { + buildRegion(a11yStrings, function (regionStrings) { + const supString = flatten(buildA11yStrings(sup, [], atomType)).join(","); + + if (supString in powerMap) { + regionStrings.push(powerMap[supString]); + return; + } + + regionStrings.push("start superscript"); + buildA11yStrings(sup, regionStrings, atomType); + regionStrings.push("end superscript"); + }); + } + + break; + } + + case "text": + { + // TODO: handle other fonts + if (tree.font === "\\textbf") { + buildRegion(a11yStrings, function (regionStrings) { + regionStrings.push("start bold text"); + buildA11yStrings(tree.body, regionStrings, atomType); + regionStrings.push("end bold text"); + }); + break; + } + + buildRegion(a11yStrings, function (regionStrings) { + regionStrings.push("start text"); + buildA11yStrings(tree.body, regionStrings, atomType); + regionStrings.push("end text"); + }); + break; + } + + case "textord": + { + buildString(tree.text, atomType, a11yStrings); + break; + } + + case "smash": + { + buildA11yStrings(tree.body, a11yStrings, atomType); + break; + } + + case "enclose": + { + // TODO: create a map for these. + // TODO: differentiate between a body with a single atom, e.g. + // "cancel a" instead of "start cancel, a, end cancel" + if (/cancel/.test(tree.label)) { + buildRegion(a11yStrings, function (regionStrings) { + regionStrings.push("start cancel"); + buildA11yStrings(tree.body, regionStrings, atomType); + regionStrings.push("end cancel"); + }); + break; + } else if (/box/.test(tree.label)) { + buildRegion(a11yStrings, function (regionStrings) { + regionStrings.push("start box"); + buildA11yStrings(tree.body, regionStrings, atomType); + regionStrings.push("end box"); + }); + break; + } else if (/sout/.test(tree.label)) { + buildRegion(a11yStrings, function (regionStrings) { + regionStrings.push("start strikeout"); + buildA11yStrings(tree.body, regionStrings, atomType); + regionStrings.push("end strikeout"); + }); + break; + } + + throw new Error(`KaTeX-a11y: enclose node with ${tree.label} not supported yet`); + } + + case "vphantom": + { + throw new Error("KaTeX-a11y: vphantom not implemented yet"); + } + + case "hphantom": + { + throw new Error("KaTeX-a11y: hphantom not implemented yet"); + } + + case "operatorname": + { + buildA11yStrings(tree.body, a11yStrings, atomType); + break; + } + + case "array": + { + throw new Error("KaTeX-a11y: array not implemented yet"); + } + + case "raw": + { + throw new Error("KaTeX-a11y: raw not implemented yet"); + } + + case "size": + { + // Although there are nodes of type "size" in the parse tree, they have + // no semantic meaning and should be ignored. + break; + } + + case "url": + { + throw new Error("KaTeX-a11y: url not implemented yet"); + } + + case "tag": + { + throw new Error("KaTeX-a11y: tag not implemented yet"); + } + + case "verb": + { + buildString(`start verbatim`, "normal", a11yStrings); + buildString(tree.body, "normal", a11yStrings); + buildString(`end verbatim`, "normal", a11yStrings); + break; + } + + case "environment": + { + throw new Error("KaTeX-a11y: environment not implemented yet"); + } + + case "horizBrace": + { + buildString(`start ${tree.label.slice(1)}`, "normal", a11yStrings); + buildA11yStrings(tree.base, a11yStrings, atomType); + buildString(`end ${tree.label.slice(1)}`, "normal", a11yStrings); + break; + } + + case "infix": + { + // All infix nodes are replace with other nodes. + break; + } + + case "includegraphics": + { + throw new Error("KaTeX-a11y: includegraphics not implemented yet"); + } + + case "font": + { + // TODO: callout the start/end of specific fonts + // TODO: map \BBb{N} to "the naturals" or something like that + buildA11yStrings(tree.body, a11yStrings, atomType); + break; + } + + case "href": + { + throw new Error("KaTeX-a11y: href not implemented yet"); + } + + case "cr": + { + // This is used by environments. + throw new Error("KaTeX-a11y: cr not implemented yet"); + } + + case "underline": + { + buildRegion(a11yStrings, function (a11yStrings) { + a11yStrings.push("start underline"); + buildA11yStrings(tree.body, a11yStrings, atomType); + a11yStrings.push("end underline"); + }); + break; + } + + case "xArrow": + { + throw new Error("KaTeX-a11y: xArrow not implemented yet"); + } + + case "mclass": + { + // \neq and \ne are macros so we let "htmlmathml" render the mathmal + // side of things and extract the text from that. + const atomType = tree.mclass.slice(1); // $FlowFixMe: drop the leading "m" from the values in mclass + + buildA11yStrings(tree.body, a11yStrings, atomType); + break; + } + + case "mathchoice": + { + // TODO: track which which style we're using, e.g. dispaly, text, etc. + // default to text style if even that may not be the correct style + buildA11yStrings(tree.text, a11yStrings, atomType); + break; + } + + case "htmlmathml": + { + buildA11yStrings(tree.mathml, a11yStrings, atomType); + break; + } + + case "middle": + { + buildString(tree.delim, atomType, a11yStrings); + break; + } + + case "internal": + { + // internal nodes are never included in the parse tree + break; + } + + case "html": + { + buildA11yStrings(tree.body, a11yStrings, atomType); + break; + } + + default: + tree.type; + throw new Error("KaTeX a11y un-recognized type: " + tree.type); + } +}; + +const buildA11yStrings = function buildA11yStrings(tree, a11yStrings, atomType) { + if (a11yStrings === void 0) { + a11yStrings = []; + } + + if (tree instanceof Array) { + for (let i = 0; i < tree.length; i++) { + buildA11yStrings(tree[i], a11yStrings, atomType); + } + } else { + handleObject(tree, a11yStrings, atomType); + } + + return a11yStrings; +}; + +const flatten = function flatten(array) { + let result = []; + array.forEach(function (item) { + if (item instanceof Array) { + result = result.concat(flatten(item)); + } else { + result.push(item); + } + }); + return result; +}; + +const renderA11yString = function renderA11yString(text, settings) { + const tree = katex.__parse(text, settings); + + const a11yStrings = buildA11yStrings(tree, [], "normal"); + return flatten(a11yStrings).join(", "); +}; + +export default renderA11yString; diff --git a/katex/fonts/KaTeX_AMS-Regular.ttf b/katex/fonts/KaTeX_AMS-Regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..737cf8eb58a98d8717f742fca3f10f6d214e4e22 GIT binary patch literal 70936 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 fmBe8g} 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 literal 0 HcmV?d00001 diff --git a/katex/fonts/KaTeX_AMS-Regular.woff b/katex/fonts/KaTeX_AMS-Regular.woff new file mode 100644 index 0000000000000000000000000000000000000000..38378bfba8d66d78d68b0a392316adca9e042a11 GIT binary patch literal 36912 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 I0ssF150Nz-vj6}9 literal 0 HcmV?d00001 diff --git a/katex/fonts/KaTeX_AMS-Regular.woff2 b/katex/fonts/KaTeX_AMS-Regular.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..a4d1ba64101f2102fd7dfab61bb98ade4de55870 GIT binary patch literal 31136 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 literal 0 HcmV?d00001 diff --git a/katex/fonts/KaTeX_Caligraphic-Bold.woff b/katex/fonts/KaTeX_Caligraphic-Bold.woff new file mode 100644 index 0000000000000000000000000000000000000000..a01ce906060328399bad5499e87b6bac40f8fb3c GIT binary patch literal 9376 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 J-roVV{|A7QZfO7j literal 0 HcmV?d00001 diff --git a/katex/fonts/KaTeX_Caligraphic-Bold.woff2 b/katex/fonts/KaTeX_Caligraphic-Bold.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..37927274af1e1e3eabcf1763e9dbc261473dc4ef GIT binary patch literal 8392 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 Am;e9( literal 0 HcmV?d00001 diff --git a/katex/fonts/KaTeX_Caligraphic-Regular.woff b/katex/fonts/KaTeX_Caligraphic-Regular.woff new file mode 100644 index 0000000000000000000000000000000000000000..bc169b7cdd8b30947558f542d59ab407a0646ab9 GIT binary patch literal 9148 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 literal 0 HcmV?d00001 diff --git a/katex/fonts/KaTeX_Fraktur-Bold.ttf b/katex/fonts/KaTeX_Fraktur-Bold.ttf new file mode 100644 index 0000000000000000000000000000000000000000..c42d169167d78a1d93b4fb3f85f168417b5bafd0 GIT binary patch literal 24400 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 yz@B<4V()6)Y literal 0 HcmV?d00001 diff --git a/katex/fonts/KaTeX_Fraktur-Bold.woff b/katex/fonts/KaTeX_Fraktur-Bold.woff new file mode 100644 index 0000000000000000000000000000000000000000..f30b54b3d1c494e73e6af651165cfe572d8663dc GIT binary patch literal 16208 zcmY*=V{k4_)a?`7KCzP%+qUiG#I|u_+qP}nwr$%w;m!Nq@BX-ZYSr$wXZ19uYr3nZ zwyT_|C;$lXV|?-e`2W1F{Qu?umH&T}Q=(%809X-!qN+d86Ma>lH?-Eb`-z$TaN{2Y z9!-H`8oD?U007*ZKb+_XoWOkWMkaQq)<3#g001lk0DwtZMcueH)pz`<%P0P$f&5<} znp(M=002P3005%}03d#B&z#z4W~^@n05He?XjuQlFTP}dv!5UUz;gS;@qa)92@FbO zX6@wmqZ|FHPyPeXJqCCiD_g@K9n(*{fZqS0jBa9Ot?%~JE>rCfC-@IQnXqy;`qn@F z=lP*Pu>b(5s?MGJke#ig69B;b!vU>7aRTijlf00X*%aD0JrcKN2}5pxCGjc7EI z;#m|u7sd>bIR1RniM-nT_8vd)1bm0{`rR}Jtd~3?60D|qkkY%B8UsP56$1cvX#5oY z=5iCl(Ex7I>fEyI94kG##-k|l++(Bj3_!rso1m5*7GRPKJGR4v}-XeNb>_Rzjm`&~o@p*a#>weL{eLXKVi zbJ~*n7NN(%Yd@0omAz69{mbl?ev;S^yGF z0E3&M(=(Ez)=`W=uVr*xTgiy{AHcr5b657Q{@n<|z21rl`h-*L`{BPsET#x&;T4j1 z$FUjV*XkNmFA-MF#9j^k4_cOUydPKRoyTl4IBwIAx?3{6{3_2kpD}U7b`(zb$F!fr zjnFufkAAx~TNEj(I-G9qun&D&2DOutVQV`-YUS5EpZ;@%nAW0Rb~+!-0n1^J!%rh= z5ZOz~!~W#F_1jC{x^NkTpEF@Rbx+O%1%x3S*Ir?UVo@I$qVzWF10mw$^@ixBO)@lm zQ1*b;DX!y{Evw7+{Z_Sz*H)FJRvT(RAxVp%nooh|WZ!jtE{a#NWv`(+J*!{fLzf2+ zi2miTTaB@h7r1cZ7y_K9N~99gX2=_|gO#+;1MuIz!YE^C1cfD7ko@%s*@*S44+=m5 z2@ilK5YIczmZveQ>f;MZq1L*gv*9rfvJ}Cjw)xD%g-6pD z1R&yUsPz%g;DEQ7;{`#D;%)rw2YfrcFu}})N0`*|qh zE?S|15m>Bv@x`9QN?Zmc7vrT?&s|Xj1RYPxgmFw1xfJqWj1S%FmFXIvz2V7!FJOlQ zMR6{sG+>5td(ePnYT|i}W-HczsSA1x?r5(| zfR|g`oOl9hG>U|;38ge>5Q0&F@Az$xFW}UZRc}@)@f;hkla<^zR4{fO6moA!0hPUz zm`L z5O=EB05FRRck6$LFRXOotG|lYTaS*+vPfY`yqvt+6$1u4#dy*2LJT?Acija!P1Eui zm%4-$rpd9K5Iv@&BrlFbFpUzU9KMw0WidL_&)M}oEVUAY-{78W2 zF_sW80{>O#$2rUUDPBY6;*^gfIW#0H*O^$0i&LqLfXKySy`lj2g-Z_t5w-#=jC#p# zC7K;<4GIKC7D_{nq9xB#Un#L|l5i<}4O^lth!&bR77n5!9H}qa?{G_HnpQQ_M;zht zsXXlMaFK-1YKoG~#ofWz{n1_0i8Ml{%a;Rj?|Kv4&noxZGD ztN#%m=cP90^Hujm6q5#|8lyA9qT8m(uZA9ZxY*_b@@MC|-fP1eK>@d$er6DE`>uJI*Fz`+Y188iBvXyI+$!9pfQRCy zERqw2FjYq5NQC&h8Y~YTNTH8Fx}dO&baz_Zu2C>NQlRgX_*${owmz0oVjTl5=1d%o z^AU6e91L!IznE3{IJ!TS&A;TI`)_z96znb%ee^nU&Jr`kpx*Q<)**U8KxZwmq&+~9 zK!8Y~X^`>S4HeM^MXhrqMt0Y)-9yVts|*O0m7^&TYZ#GD5;aHtcsu)gLnyrrFAzZa zK6-rK;jlQ&G)ver<66Gb0qQRArlT?5FsHr<6uI9_3J~*z5<=wm{<~`l8$;A}Kf)ehv)byY$B&<8d zO|%F81qcTx2MX*l`G|E|^YOMv?9s==!jr0jO_yc8$z-2TEB7eN_pF66 z1LoxQehtg{{=&2CGP9h4F-mL6PWKP}gLT&zEz;sqYdtJ9nex}RaD$f1FN;gJ7w}M? zwZa21V%sH+D|B!ONi8J=Lg>0#MP8{7L0yJW+2!$Ms>+FP!3r9WPetgzrfP@aIJz4Y{+ zAT1z(O0%=J$|z8NtZ{xUR)uqj<&q%I7hibS8v;1V=~559&W9%wL9W#|>KDYLNG=E# z{m%TqPCO8}Qe1CJzYN7H+5@CqGDVgpuJ*qmK_V8x1V}9!>c38NqxFZJtkqIoqAxXt z;E}~e)&!;(EjlEEKK7~$Wg6z5%jR$6&O!{f?=<({)S0koBG{PQ23$?5+9uWA3Rzct z=JD^x+dCU#AMvTP!&`_6Q^Zw|HoowdV*UWh%vwER{6!Q7Yl+C$)3xP|U=wrx#SLLj zFHi_hSqlYd1twU0_H#~-7E7X#aU)0(0v)o|EX3b?s&J83?dizN*RImAWE{~H(HOpq zI6`HtM+oWhImei{!N^BfvXI=HEgQK4!Z%%GY;fc11YxM zbb*%7#kl!baVjzk+@ObM)ksVIazr7@)>G3X`ykyLqn;fCn8(c(f}Ll`@ZCciumvQa zxFv6Z;tUF|0T6dLSY7IsA5eGQS^f?701$g0^NP-<2Ukb!Y@1dSB#Z_1d8iCIkVq}# z%T-h?^1>>pXjHtp&WbjLMW{uk3vn_7Uil*vj3Oa42aPOAq!fmt=@jI=skiwab-@uT z)3ehl21TY@d+^S~iVJ>Ld!IUO4F1}smc6m2m?>!j@$N&g_xojD)o_DpHn&Drn<44W zfSs*Q48trYtSnnwLduZK97h3(AVhFU0SI}5wXt#XvgVhaVRszDZ-xy0 z@6c`cUmrd-Z%agCqwZ$X|Pj$$=OR|vW8D*|UY z7m^gbJ+!tR=hkl4`VktlYyoj0+`w`OF7vipn)50=rjIb>+sh9ERH2%i*JyXijRMrwv8fD!rUs`SQ<=5=?_b=NmK9TlWJYNep+f9recgkOn zQbO6~a?Qtdq7TmB9H>l*nFfZdOdB;7X~PJ{JN2zT`QE{QKl6r^m|}E#I$2SwJ9uQ@ zXQ8cO*^i=nF@5zM-XTtHXD9R!Bb$Pa#gzgefjBV{rJ08W`JK;)w8^IAt$kf(_VK(_ z7R+6HfYYz5o(>E2d)WGRBT*$m7ZbB^EjorcFTgv~4do)5s_*Zx9Ap=GIdLgy$;&8a z&Sc`$NR0XI>Ocm1{;ie~+v1;k?c7z2ty!Km+}xs3d!GvkJF1rP{R-(>z-C;|9346@ z9`|oMr70r!%AayGyd7RS&t?k#cW|S=v%;lkX~N1b2i#s_thOtFzZUHLj{L^@hRN=m zb|1EeHCPJ+H|RJZgjxtxQ-TEM87nFcVFx>7_d&J`G+<~2Km{p<<0lLj#H2I>pTqVg z+uU819X2p2J~=7oIw+_rMpi%$kETCLC$V&sl=oZ0?59}^AtQG{HUx-;E3T_V8J3S> zOq6v4^F0*XIW1DOQvV@MpRVTlnHJC(smWQ4jq6mHknn7`#gh_GkCwS%$BTiRGTf&Q zT(xMh1LeAUD3JJZ2s}z404s}u+eL8 z1^S$3(CS_Jl`}Z7PI%2YokI1YYr)0~5hOmke!@r7&oQOukCd^1h28382tjB}0%iAi zd1$Gy>rfM*cNjBEVd~lhLc;|EOqNDX7s}4uyQ(cNo1+_GqP^y&$`|y%f~&b#s>x_7 z;tC0#ZK@FonsRCeB2nf}SbwW5)NBMX&FORqi}>J^i31)KDNr!G(=9RCX#OQq30PO- z{e9DWmkG%G?D1$-XXm!Xlt`P0TiNeeNs-O|Bi=^2Y;m7IgE93G|#7Ez>NA$>p) z?>08jH5uX(d{;gA2$RLqB&~qUZ>rx=A_Y>v{mm9TXriJ^UrR8$$WUMLPn3Pf6R={s zBI#BVpS^uP8mw(Rw7WiwobuB`Ar(7*->q07f?TJ3%m}I!2?I$obhonHxmcE>h4iYf zBbR83VS(7P1NN5(l-Ih3%!}4*>M7)E6s+euX7%IYwNG>TDp8%4?dnY$u9iwP507&F zRAAe-e66!f{$bPG_V;3wWtcrhaAlo36E4el9uMzAzzaO^2A@F6oR}Y|@Q96rfqmi4rG z^^0Dz?5-LJg1>wm9`?(@d;h_6uWNyH&3R^o%T)U3Cavc24JL?ANW(WZuXM;T{9`?-p zUy_Qc1;<)MH>uy9PsR4F>a?)*OeNY8L$28wu!FFb+d7aJwD|`Pq-OR*o_H~__|-Yv znr4hh2Nxj^YdaOMxMCwtSz-G%PnEpq&n^2%DND=Xkf9rV#r3DedZ?3rGff{Nr6*!} zvOP6AAmZcDSE{(_{3T)@xa**y%P5;xW7LBa z)1l2i{Vkmge?3C_ddBJT-UQ9W<>RP4tRr3qPSozy`+V$17;O4$D9UwhxTeHhhZSg(C#}Zv; z%{7b$r35NoR@!=OP7kX1I_TPQV)Jxnb~P5RpuFZy(e8O{9=F>nC9anY`K9B!b^e87 zrH5XA-iJ+2ycRe4m`el4x{($W3h~j{%D;Fh{CDMPl7}<5UD~ekUhh!v=s8==4@s#@ zKk5J#fx5zAGAT%+b}e5Spya;wJl2jP7ory2?rPO$8`*V6-#!C44tOnP2 zhl$+POw5gahU}+e!f2xORIuOmBP-068&g4tSp?U+&-ooDo3{=#knbPe2M8jUqH-oA zjwcz{&=L$G8;pF!x5PXmu4hG#O!{e2$-Ku-*y}^ZFt%`Nc5= zmSYUg^uMGhXHCbKpFHn%G!!9SZGA$%ydII=fIlRtzSgHA60_Ui zPvhcy>m$FQ%=i=R16?h1xuX33q%6R5u;(p-kN9O9Q1D1ZBMu=t80N<6gJ7DC^W)$t zGH(L7b04{z<*9wqs5w%<-$8=& zQDMcJ#=0OdUE!K$9KxVdt2O+TeQ3t1X}$Ok&e%K_;qZKxxA#!ZVa0`Yt^lJqzokeNq(oFK_AMq8*LrI*{nYxx4I|V%q-BCH3JbO|2GMAZ2D}gHXnaw zv`D)Qz$_SC_y%=K9-FO9rKADnVOI?>vlAFy$h)+PTNO|VZ}YK`uxY~$J~Z?%t*kCi zeYIFPOM<5vv9*FD#Dr>(M{CYvk+h%3MrN_2y3+V;F`96cx~aVa#R}qI`PBLCKhJ~r zthAlDwc}etE?rnWnAT}o@P|03L%4Z)xjU2*GCE1W$5W$Df`;tasS6{b+nUc1D;@MK2w5&Ay3lNRJ1*%iIKIYe|xC0p3wph7BeLr8Edn#-y>H@So$ws zo&pnhUvLMSq}GuBIKrF9S0US+&@0P9Wp~H?U37_!zu~iu#Elh6Xpo%g>vM<%tZHiK z3l}R(H;rKieL7-)zT&T{sr2LK9TUB&peZ~Cov+dxOnhEvv*MpIN+4a)#%kh7?-0A1 z_++Qcb$OGg6AgxWtJ<~f8?@rM5qy!+YsOlu=17>GCZL2yFcFqj5H(S%ib5*p0ZS3Q zb3Nbk6mBF06!wNvoWDY+-`;q-k89wnl0G@t!4PY0LrT@`o^nBC{rPOc-W)>rQcC&> ze=#nYfbJGXmzXCPa6u9^UkJGO0-@WfTOb19{hv0Hb1}iWkS3rn8^sKZ+P3tm{~qc7 z8rM^K0tAO}gRp%kfh_StZ@k^Ltv$QhHj(E@3>h-unz+E)W6*G^P+{rJE{)>?zk!*~ z^C!*cm#CiThhc=PR%}jni`zFQ7c}`o`Fs_QD8WTLPX=r|!fO2r z`hYnJnQqPLpweG}Y4@GDJQkd5cU{U}KgHMaZX2QMs3s*6h}f=L7#S$*)73#d=B2`| zuko0;TuJ=bW-xAgfuER}7HQTplJKm(wBqK`=^c|scYKh!Wd#F9Q}-8`QtqIXF$%l| z55Ljl>dO=)I(#N5cKgz?@WFfvMmK*uwCfh|x{>@B*1@VbhQ+!Fi60$TNPyp!9g>{c z=MszrWGD?QfFWudl-a-x851Z#Tn32IH&FG@(jwj_l-&r8r5pF(ryYh)l@-x@oPoQ^ zV?MqCnt-rtQ`2HD;(^a4ZL%a-O2Yhi%sbAcwQuaLhWiP;Xz#z&7&O(gnK+g#Urm4B zCU~zgZ8UI#_^D66)!NJUp1o;7_IogOz5!l1)cP^6CR8{t1d^`YS%sL}M#4BsG(_oC z0?8(v2ZmLQGTQ3>zkUI@hvbC^VZ|6W!F!b)LBG|*P1r(n&Rn+%Q^mPAE3np~LRo=| z4xCZTnDpx>^mObvt(8KLEz|0y3d}N2v;oeHzN!9e z1xeSCKvXAJ39IV^Bjg$yoPWWYIx|}M$kI6k$-cal92Xo}2YO9XVXd;O7Nv{jS`%$w zujy?607&Q@Lmvch*eylk)iyUspNuxZwam!nbF~~Rs}?L6?M<|zlXK_iCK(a zDB#IUALs9h_+H4&c3mJF$RovAps9)s5_1IpRe{0GqD;aJS>Q$+zI%WX01+6ZS!>yI zZ)_?&U`n4Zuhgc#Jn2|)ED<$+UZ2H&zMM~Ie5&jS-oSFNE50RJkkXqo0T*3pjz zCpU~~N2Od0%m)#4CpfGbj&AwZEu2RozCwal=s#l&1+({zzwfT>O7*1o?lNEUF4Ag0Ghe|E@Dzy@;N#B*r!5*ym4A z+4XYJyk8-W&#WIYWo9ExX*i90fFZk0fqixI1u)nG}se(yt$6 z?ACNSQ0f$IXa+2Wxla*4P(}z*iKxuz+=dG(rm6-%BkM}`_kJ&ThYHgfC)F1PG*mA| z%hgYm1=c+U$q7m%;jQFU7-fxvX!1JZFkJGwLmc!$sbs2eQhdM=MpMmN0b^W-LACnj z)++C&j!P=wT{@^Ev0lm)KIWuhh-XkTM)%`^%TSIxE3PY28vDrQ+)vLQIxpp=1z2*f z%Cy3Nf+vUeJ$m>vYg4&c!+ah2q5V*g7%eA_3ca(%Khe~RqQm(X@$$x1(&jrLy3n5g z7G5UvE}agT->>)i<&1B{xx_0qn-6k()r0m-2vC$8*KYgiHambBNivOjoEMFaTc*T3 z;c`nsoEw?ZYX%UF7kBLSP0BrZ%#`hcdgLxqLmNU8vH$(>N39?N>N<(aT$7+38M89? z?~V5qZVGKCUrVEpfoChrYN-nHo%$eYfR|m4-Md>|2I&e(rC=ckg_z`Nhq;P2lKe_< zM@_v0*IT){Sa^C;Li&e|dAX>kV3=#tt6EToK^T+$x8F0^NgbFgXX-TvX7~Lr=`RYTqxbdWNdjT(g%W7g60-uQnJ7S%zM!$Y=^O0d5$tS{@{5`^c zk(D#5L~^`dwHA0dFee7WNBpq?2vfmRT&Fz6VB%)&92#tMK{gwyiKlCZHX&}wsM4pR zzK^#JEq(@$oNZRRLA>`6GVfw#kq6nh3xknd&xu)0$3nOlS(q2RBzQp6@&>oytAX9S zZ7EXai@sfZ)1R6|_fRa2LCcmo$l#@AGJrcf2e*8InGUudE5ACn95NL+Q9qU0=xn(+ z;RxQ2wI7+s5{|7IJ!-fpB%Xvv6KknUMybrqzKsGgGMUAy^%4b;W1Cu&7#w0ChFyyMr70+w=Wjt=?9bMF+xlOJKp)tpo7mZLpWRdD8AfR|GDSebK|Gv2m# zo>+zEJ3MHFqf!E~P}h@UyIq?7RdpxYNzbdxvc7zdb_Vx6yg9<@V;WFVMk^oF%|~@=#sS)C za=vu)$yGV{RS_Y2Yuf3OInis3-65POue zH6^!O%~maM60o_c^W+!*i{fj#;?Jj$Dv0Eh(H}oKh8}Dl*zc z6r$kk=6f|?_|jzv4m=xV=!tpMF&T|t21fb-gIR`N`(M{Ls=$raY4g?)3D_KXb{8$v z^;%%F-sEw=|#e{A33+m#iBu24Fbf@3)Ayf zlvfRZW5NaNwejRR6{apR+j1_7Yn2aBj$+fW=DJL8Lv+V@2a+aQ7ZJ#3+_HzRQwO4K zC38Xc`CV5415PegGuE9)_B`xU8zhTvdaj+bxEyA3ZPUEJcsl$z2LOPu z&fNk5m$Qh?SfPs=HRdu)f4BBrDnznW%1|wr-3k@|t}w|x%Wk`Ydr6!a`FyEv>&uII z!Zppg0zg*f=6xSsm@@k*=z#*(zMGzUxKFvhR~|}y3_&3$_u%6xUr&0Wh;p~f!F2M` z5ON8CONCq*&RDSEIKi8`KeUu2{b-<&|KjUWhB9Kh$UUUbzjAH)fxVQ6suF=iW zExNqvXpCh_6J9ZyniuzKO@*Vh%R>%8z)3b7+J8cskkqw#2$|8@Hzm(3e%$O0Dx4U7 z>!Fsj%ldmS`~}hC1Iq{c4J^)Y69)gwuUU`z)ch&~Kt+O!sZFxIRiB(wai`*spT499 zQF+OK{{hmv6u|1$1ft8WO5Y(%T3oT6XvmO`eRWm&s6!9b+ST<5(i&9_0_LVUoolut z0Dd`&mzhAC0ajMCF5%wU!Bf>*jtF)MEu;h$7@x{Q|G6Mi%dKdBPZm zv9iv*;@?xmW=aJUcf)WEcWRETvij=UTqiBlepw#Wg`CJ|(tRKd+SpH>4l6c=LW9fj_{dUXuFKCDf$?@0Sa9tN4mn zFNP>d*Iv7hwDc8*j_i5&(Fp->hoS#%w=H+s>Sc0O1^yqyBCcZu(q!p5ROic1v({IB zoN9)I3Dss~t&b$ibxQK-KUx{8%NWD^5~_I{H`LzC_Ac;Oj)LB;4dpX4G)a+PK!gdO}=@7 z<5$VaXQg_?Ls*D|CU)yU*eY`zZU-7ndl~YY^Mab(8l%XyJ=sl{)Cl zO!vdD%;vWyKFFR1DcwQa_1V5VrOtDodJDu?@GF?BMUXI5p*jdG+xi~ZfuzO6eT zK4{)b+u>cMhA(mnK-OuyqUVd?hW}oGDsocO6Vu^Je%`4W- zdT0Eu~Y{vd};brqD4w^q2PSVX<3P2fjSL{KJUW(A|Z1ETG+D!wWoZ5-?>*bNch{@ZlqU zr$nF8_=^7K@mWAv;^Xr%zgxOu)Z-HQ@NGSTHq(w>h;E1c0{UW@eGOWjd^kuLdZIoX zY^N5hIa_v#rOGx%?g#PQ(`LMTwSSl?V0RQZZ4FOnEv-bp^KVyo;VM6Wq2qogVxd_q z+0(+PW!GYn__js>rchI|Am_9&QI>)sM+sRPwb9RoHv{UGfqwJx3}Z1;Y&o5ng?OjI zLy_+c&q9ogwIo^*4#9?R2MYs}PWJXmf8lk`PBHga+pnm%>X!?J+yy-gwFKJi=ws;^ z5v9ld(K%SK8hp60hLFD_2b{xXq@plmk4IrZF@)N9urac&w$NuQxQXUu@LZ?8!$qu9&KdW!;V-}n z)C;P}(K(M-07py1Nl?(;X`75~QcNP95%|R_aSQ#h0|kU20h}O>5BIOW1x+Y+UzgdM z10*AsBuU|-dP#Om3)H6JBpZ!Ug$=lp{47VaKGv@owMsFK zh8!#k^b|2Luaho!RRuf;@~Q^#(P5M$hGpX@Q^k=t#RONKNVt$!iPxaf7nv~0zgDb} zh$iS*!hQHa*pPbeZn(h0U{`PmCF8;Y?iJ$B?@kiI>cKvLhiE;|K#%^7+kLmr`RM1J z1)a&~eiul57RCJGMuE=pKJC=XF`2RQ^5pYOhD*X*A&2v_F+3Fk_#qt}uh@f*`+HI) z-2UCfB<4W&PxPIU3SccxH}Nyv8=SuO6!sJ*)4?wxJSj`ZqN`5Bsj6bEW_tHgNPqnum8+ z&yFcQG}Tlu^cB)2XVzFo0g&$o-_{rQtJkZ}EC^>+7;_My>HrZ8HI$-!Awj@tBcMro z0IEty)lyG*ajDC8K@}iur%Q+d-=38}HD1~%LtOsXUV4JR{fadFc}oE&rNg3pV&H}^ zi>vtI86W1a^E0+m#gtp0UCu^U*EGF%%%6J+^Ms-AA$?Pdd5|7E2llh8sZjHX)tvqs z2EzrQ3C@n=3DF1dVWU_LLSyf9X>CX(fs+;=(4ELX2;7AwT7!?jnw@b1AcrpZS>bGf zYyh`gcx%Uo;wA*+g&wm{7X4bke{mX!KJa0cA2u$Z$vr;S!5qh7MCvEl^#RXx))5b5 z9iq^^407!p9N4mxx=r?zbD+^VZTJMJ)+GstL5TSOVS`8Z00kl=*RNPJGP1cRC~cQ+ z(b3koWrdX~Uk#qPJ%{T%Z@F`d^K!NH&hx-Yu__F`rC<{fBZ48m6~fv|qB|RjHEZ{# zWloB8p+$d|s?=fcPnt=lJ#G_!l!NkqG@yNBLIr1(7r#bz)nX4PT(%rgh#{*3mL+I4 zY@;=0KULNqm#wc~z@TZ!pImB`Mg1+^t7$1pnzEPEshK%jSEiI-6_))sT(H^JLy=-T zHVc`B$+a#qTIZZ2-cdN&oMGXShRq}V$WP_;_RFs~xAb0{I7_xv7s@MSya1EJUqNvN zuR4Ue`6oF8tZ% z^!T-YWt_Z%f;PmJ5wvMEP^|X~;c12-pzrT@w_}1Rg=}p$=ui^v61NMhN$z_B`a`Ly zp_z9yot8%6wINnEOdIFz`Izswj8ep!pu=ji$M8CGU@3W$O%>d9)J6n`gBWT-KtT!7 z=w9*#gCqH|t5oo?o@#Uo#l`*vS<^JzO*t^!xjE49)hu%IqqvjGF3jQg&kK_T1!m z)6ASDDjX_mzre&`|B*!dA(q`Qi@m$FiAE1FZ!zaN?XzOHJ0(OnRq6B*~CAUk=AQ z(TRazTr6(AV8P*G9Q^I_@m(po+NknH@_kE-g&B=5x4-t~7%il>M|R-jcQ#*+YneA`XfWt%JU1Fa=>k;sFRK3Qr@ zB&&E6Y|~OQcu9*3LQ%(UVlsy1rIe=)pkAffoF1HxBdO~|HxUDLfs@o_57^|JrbU_I z>x{`1p0`p}YBg9bXA1LzKN%I&OV7FL4hEmh;g@Z{DE$8RJKv|MsOjUI71?xMK{bt8 z!Q*ApjA>jEitNi~Q^%7o+WBl>*zVrmi#xl!lwE#D*FKTIhrNs)^}Ln&j)vGP=XzUP zn*vX@MQ-p=ZBcc^ZX-EAbGsmX{738t>cPOusPfX016Ha?z#_7+&&Ox%1^4_8`;f4| z*s&V90W+nt?i~o2IQ3zb0VB$v`=PQpi!<(v7n1Alx%;T#8*WT2N6z}; zu#OvDDJ&e@w`g7s4)sg>;?DDzzkL13uc_&K?NJ@bu}h?vqRUyELPLbKA^oeCU-vc> zV81i43aeEiz$bAX`D~wOCbd+r9XQf6_3kB1z>&&4X|abl4e9?xC4OPxe{a=$x1%08 zx;71rq1Qvj?TB%1HaL$6I$t19ikQKMCW&1m+2EaSr)S&y729;U%Zi<2uT~a zKpnc!CFz+M=-~O7-iNl{etQ{HUgS@w&33O;CxLjpoAGStzW>`y{YP0u-y2<3=X98` zW)`y(*JD?hc~mIQbO&=2p*kC4ny~~Dw(pbqda&X}NLY_u%01uWbg#yAs)-UZ z@lUxw&{6vK8zhjuwc#h@@IzI+C#w?~cmIhWJRt?tR zFPvZ6zhZuEV54FCVejCO;aK2Q;3DFR;&$Ny;W6Qb;q~L=;YZ;w5fBnM6TA_s6BZJ_ z5xx=O6G;=r63q~U5X%!Ml338+2t$|IdG)e#3*V z0w4WoA%AAzf6Q&&;B`oE5C9t4&A*Qk8*NMhXyk`?-|`i}`Q~BzUYTsR-e|VY$&+!Z zXgmkbBHmydz1Um`9C~3Q`*WMXwM*lYx855&Tg13G-W7_vM!~3Ugo4(0@pB4LvqSrW z92VRy*^#Ra5Cv^qJ)>8Xy4?j{#gaynfEe91Tz%j(n&XXhLt4`Yo@K@{6Wpo8l3v4n z4n|Rb!0vb*`b+Pg@=o-kFnL^?lKwqEGHwTep!Fxt>5o&@D@4@}>Pe*Iv6QE%*S^a4 zzi(76ao7QDid&R{B>jdcba;vy%u+_ubQkzg(z6gmSUSh}EfTaoX!}+)vqS+*fxuUa z9>*O4`ESm(&TuKYdjP~2BM?d%uv3&D5XA%} zKr$ZrCq>9@9Vbi#3z#1<$OlKZwIjH<%x}S$$(%v}Q=4qmum{&28q^Ol))Dg-=NK|k zyp2RQ1PR5Ya@Apf^S9O@GV-j!ZUz`Od^M#;?|!^Ae%I5y62g|#Kk19_pow7MsbL_1 z>mpvq&q{DxuT(iozYvAR4N2Z(Y$e!fTeCT+qhs2zpPz`>F~ztl+Btg0`e1e#|9&&$ zaj2Ir3NjNdh>MOcgrX9vOg^9>^!V42p6N3dH56mmZT?^tZzJE0<5-mT$xs=*bYA|a z4mU)l|M%imcD-^cIG$E8<<@Phfmzh+3`g~p=VnHe=ztlE<|~Oyqu~j|-KO^C?ZO~g zH&sQ4grLX{h1P*aDLB`Dg@ZR*vK=}K{~^}hsdlEIkOS-QijDgAtabBv5>_pncr#VU zJCArbZ5B|zCKGV}Cp+5XcKFsjkY2e}NuFvfIPFH&MK$2~1aG^4gYJ#vOUWQ!;v7e} zI@(oiam${W(`##j$QPg`au|j|6lNS+Mlq>dhcVAx>eaz`SS6@OoCQrl zO5^CPX;!|Q!edLt)9aszh9TM~6Rkyd7r9ag#nPp0teQ~EuZtI=e;SuYaTy2vm z7jI%Qa;Yf~cN0V1^Deo3D(7u6uf4 zdFi_$c0ePEaP?5#p)f@(ejFC22&^fqaSxG$It=}=u$u*7P?apN3HDt#AE0QMgJl!^@ zs$nnSmz8Edh|-w;_?2p=KC1T%-jz4#D^*ORr)2jKy8(Cg&cr^q*&Gd6EG#8WRgFTkM&>;Rj^MPW5t~@U+a|1Zt z*Vgz6J1>1KxS?o2f119Wc)!X7RqB1pCza{Q{5t&x2*E2GmvN=>%iADm{Gz@Lb)gnm zrk3cnG9v26tSXh<1D?0XmIoHj+v&U(B9oK%cAOkO(IDSPMzAim*^-X#+~UJA>5T zPN83Il!?x7s5|{{L3>fT;R35_qU&+G2LIL{Z>RO{z+t4&ZDnSDv-muz zub9At@S_ICkb0NP;fj^MP4Iy&C#*H9?O{NGV z2_@1CV+kqK^C7FiDhwbx!_M`7NHH@A!w5Ap2tz#3%nc#(z|M^zRv+<{gt+(KZWje> z;wut&WgB^pV`^y>Dsr}Tt|Zc8N~R>vqZK(>yW3K3(I?t8<#N%SZbReS zR>#Mb*e?9F>$)I6N$ga*WTLW{G5l{Yx!vxwBcd=MCN|VP1Ru`AfyIFx1H;Bz&199J zXEgJ}%xL4lM5i8+Xaic63nS{)zh9nP)yz4kbRNZp8%oI^B0;fg^zzzjg zrGGm6m%xhPtltiF+(chq|IoKy1FI0zIoFDn#Qsk)wI~}!MoeFzJ4h}|{pu6}xIyjA zJ8D}}T3T9L%em?CP|HmTCDZS8T+_o<4KYiL(lXGMc&cSA7y`=g^gj^%TqOJrKMQx)-7urA5jD zRDh~|`Jfhw8m0m!8VXbR0GAz&bHgA%v8Wq6+9bo7os1kIpIM8K5X$Fo0x>7%n$cwf z_rk*h-QtnUE1#y&neU^|`8py)g&B6b%=e={>b0&+S$!w!5_yi->pSO6_@sTO>jey~ z#1T%hio)rL1=Cz^3PotV-!GBBvlf+2O`}g2&o+T3t0Mo3=D$A@Gy1;^x_<`&pY^z( zA;E=v*f*qf%Tfj@hq+6dcTZ*?#WRkeWkF6_q0?-KE`cJ{ahBe>TzcIS1T7oR3vGHT zz4vf9!idh6AO80~3;+S&Q?R12tNh%EOu#BYn&GB{q4@xSZ^JhJ&mnGu^}TgsDgGeH zHeEtoGVE|PiCouDP$WEwLZw(cNK&PIsZ^!pPXHOsdgH}xnN$m2*V`jDz1e6jQo(R! z2EF-sBUZ!lq*krbTDmhftMyv5;Yzj_1UxQ>%l=}TBL=Nbo6Es+*1P&<$c#Esa%7Rg xnL1f=lt|i3%Sc|{QQppqSV-^y@!s66x*In)TJ{%sofXOV&sh}c`x}7pe*kP$*kk|z literal 0 HcmV?d00001 diff --git a/katex/fonts/KaTeX_Fraktur-Bold.woff2 b/katex/fonts/KaTeX_Fraktur-Bold.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..b7a83593a8d3170d69921e7d3d63e0289926bae6 GIT binary patch literal 13912 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 mgkHhB#y*ao@qs@~N~W*%9dQyy6aWdtE%7o z9pB&aUNxbF5EFTj@ML5EVyR>7&u4#ukm<*8bYtuM=EYz7^`oD_{&%qds;xWkh;T8} z8X>Ffe9wuCC(r+p<4^w&Av4Db(ZB8F=H-hxZXx6_`Vh^@b9bNk(nD{%5AE*~GX5v0 zwl|M^AA0LugiL+}$Ev4rKpx|9?KD0le(L-kSAXMoj0K#3o)G%rx!bljH_z|?G9eS} z`JX+%dG#WFi(vx$zl;6Ih0XKZM}FhJ70~lrgb1fD-gfzpr;Q&*-$Qv^pS^f#`{J8k z_oL4fvhpMJzeYIHf$i^dPK;J2n&%{e60R**wwA4_vQ_DL>+y~b&iUiN@1WPwcYWvk zL`z(x_M8q~>GVvqIKNi65RP-t;8yeyq0~WV{dFVTBXonE;bt4prIZ*ixpURd zYPrMZkd#=BPgW{y&*_l)^_a&Ujk-M=KkxM>#JIZ{ixp$PNgrtAvx zB)`S|D$#+0a=p!|<#^B_Ql94ysw4=MQgRTFcGFqC9x`z0T~;&t>*A8+%-K`PN++K0 zbjszurbCuv4l!nMI*+@=l+I4=wE6StXi}%^{Eg2j8jnsJF@F~PY2W!i_vhRvNf#L+ z`^Zyue}}?}nqDf1%N}J3f%jc>-bS^1x$aVz5u?75Zue zD?^Lb!M@2eo$1k>tyBBX2fOy?;ubN-^KEj{yYz;idw1{F)Ft|Jsor*fHJ%FgurZI) zXUU_Gvz~bCF76hYLb7_IPw;!P#ON>vdCkT-%^|@@pZ$!-Xfj7lzE9#Vx9^P60{2(M zMx)gTlGPF7X<=f~Vsm63c#OCBEAR72uUS3$#H){g$>opTI6rvk z{>5QN&C1RQb#UJ#&b|BCD=w?UB*>L&tqL7Z6}grFA?SVS;oO`rX4ly}xzG7iH�r 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
    8B8l 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/fA2ZFCbvy%dFkLj13&Jc+P-62 zy*aV>oIPr3>)z?~4-W2|*u!63-Jrr%-H-;Lp+0?Gg|oUneZM_(&e0UB?&wtOb#$r6 zPL9@Cb!T<@ywk)1nb^9Epi`m3$-#Z*%ykaqd@TZV{)8Y^pVL*R2Y$~+^T&1>C(oTa zFg>|vdTMN!ZgTg&>GKXuPV2VsADfuMMeXFS$=x{W4jdfcF}-7Knm-^`t#(MPTJ4Bf zb=)+DhwPs^uyglV`Yo|)wbile2GhR%d-v_#KRvZ~&)6F31i47>Jj zpBf+AHMVC$pDym*Z<^YJhaQ+5r(Y@ndG8+WfvMe7yT@LgIA&_})F+_a7vX ziF9JMDhgwDRmRD)4o;noj@>h!ersGscP!qa)=i|(6CE5-yz$^xAi+XV(+T~VoHp&B z+_r1--1NQ7iF!|cPJOp}Y*4!^)}WGatRdaXhFZh;)c$dh*sg;I(pBRY_0sNxyQZi1 z?K&@gIgPpol|W+c=_j?PpVVG!#*6n&?wObxKRAz#_VlkhYqb-5r%!f7r%Gf3r$cx$TE`!!YSTWhLRywp^wc!FOPuV0hywYm-!nz|0PeqEYu>pIidyL*%a z`^F|ztjFW(TaX7z9^Z9vD}Pixu69#Au7VVgs~{!1RZtS$>Z21qDxoEM)TShQ)RC3w mN!RPi)KfuD^r$1Ly+(ardwcrW!3n0jDpp1F9K$Y<_5T72oVEP` literal 0 HcmV?d00001 diff --git a/katex/fonts/KaTeX_Main-Bold.woff b/katex/fonts/KaTeX_Main-Bold.woff new file mode 100644 index 0000000000000000000000000000000000000000..33b41998e40d6bdfbe9e49dc11174bd3f74dc278 GIT binary patch literal 35056 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 U&-nwFmeza#000310ssF150=lfXaE2J literal 0 HcmV?d00001 diff --git a/katex/fonts/KaTeX_Main-Bold.woff2 b/katex/fonts/KaTeX_Main-Bold.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..f9b71cbe7420582e03f9479a5b1781e7c8244221 GIT binary patch literal 29932 zcmV)0K+eB+Pew8T0RR910CemC4gdfE0P8>i0CbT60RR9100000000000000000000 z00006U;u_Z2s#Ou7ZC^wgO7NE!yo}R0we>7TnmIU00bZfh&~673k-n@8@<67@TQ|y zZU?A;&i3b>8OZI3hzj(076KawfJgsZD*pdJBRLtO1S349APDSGs26hyPPalPm(<=^;{F$jS5n z?DwpF?tLHi=ou1Ot9pY>h-!&O@+=;;6mKM-nKlt&)3?8v_nTT$x?fU#D2?oK!nVf&fKo~%jndBEx}0~HBkJP#j_o_n z*nt9ui;!lC)9ntl>ji{ExBkln*0BIVJOR(@V|Skz|HL@0tn;S1%ImwTvi-tS{q1H2 zDdE5>Omy!*qPgKriQ67Z4Ho_X**>i(Ekbk2Td|plttexw0#W!@)G5jwy6QsWLwfx; z*_SLLE{LorTH`}3`eS`fcdmbWe}kL8zqN?kOCQo(w#&~>m`t<7;+&@rNa?e1Og6=3 z2m{;g9SNStHufPxg+NNAf`MeJPeZ?Xx9MgmhG=QWd^!D`v6Jk3lKr!71q-JVvSkGh zUO>?7-ZbrPK(<0Zv1E)LwjBT*Y07wP;s5{l`~BF&vw01?)3RBE5D95QTWip+pq5Rl zjsB$m{!yk|jj#lXeeUmPZ0S{ZRnv?h$R7b^{?}@CA?=~sh*05mXf#qL{hhOaqNa$= z3}(BFxF%EU#Viqdgw*l>Q`7g`8BnrU>qI%qbci~KmK=*t?>UxkN|!DNcd*OB9c&ux zQrN-r83g!j68pjupq?qL5`*MbJd{(46!`SQ(s4r z&7hvCBn^?&XoNKTmou|({+fTRspSkqAzaQ0NAX#H+CMxLc-~QdZWlSAb_r7&X1-XF)i0bXjMvY;iHdgbi#Qj81QBuPt<%kox#r*B7N}C?X?>0Wb){+pxTZDV zr~(10$uvEl0{of>{Q3h-pB*Qf!I*^PTRu)QMoexW4MhUDd2A9u-qgnc%drcwF)jMA zuxp8LZ>%45fxS>s+1vRN!e0?)J+;Hose#q?v{QbJt_TOdRYYv0a?o?vT3rJ zvV}b03D0=WOD^~WAH*{-OJ-G~T&;zA4OnHuHamS?c&_k|!WVLid{ueL@qCd};Xfjd znYYihzrFtTjqCpXlDWA7ELReYq_KTtSLs`7d+}e_H+8LU_Q=0#Tkl*BNv2B{W?mL$ z*%kfk3A_69K0#+`(WwU)aLVHwub;I{jRku2?;o~>o~FOQFd|=hc=6QjQ|-0!&;J)B ze)pa9mCqb=*eAAFZH0bqI*3m6e|vXo_wC-k-8cGLU+K$zv5oIvcl%%ZqUYa!>y1}5 zb7y(W`k=mgs)?CZ{`lkequcjyA9K_ZhaI%n9=q+b!*<(@S#8LNR{FqzcC8vY6v&ey zT_TG>=OrRez4hn0FS8;u&X}3u&*a9Tcl{&3?!V5iIPQ-8w*ctXzDXnmYV1Hg&&&v8 zN4S7`HNMWdoEiT%Bdlri_ms$k;Ak5Mocsm7KVdk0u)H>A`shc9M@zBrFNsqg_ob(_ zCb$xY)ES5v-V{W@@MBca1`NO-cUt_APicuwzq$TswP+PD;O5e5LZ?7=e2aQ?NK0qK zfTud8DP}UtSe7S0dN4x#DF_6&eH+6Ph>wjXY1X|H}OOabZ|8TTZD*RI9wng;Q2s#jmUlnkG>1q0ob~jVE?blBc&PjBkzRk z>(kviksW0*8ndEfPFyQf;NZI2h|4fbGmj>&KhweCQosi(Yp_=hg2cQqn^SLeDTI;+ zH&!Xu>1|S=m zW%!HA7g#r?u!v`u$uu2LP5uPJmy$Fl&Aa?bq zr39cuK0*oW(#+N`=PB*ZS~*Euv&YgdVcKo%3+HF80?*ouqAKv#X}e~A6->6$q}#Ce zYzX9^;Pu~5y({afs@;`>bzmEv(;i_k+vgi7A8o%bt9b!)Y-~;~Zz0)4o=5355u^9~ zQT$&gIS#Nr)f~T*VDb&s?(|AQ6$CO-JNd%RnYlWQ7Xq*yRn-ygCQ40AP{GKu4?d{+ zkj3OeU2&WoIm3iqClO<7JZU{&kOhUFjjWcxiH&|BykQuyDK&yZ^h~tsN-qfb z-q0v*SXV+PTZ+B7saNUIJHmMay&wZ^%tEp1Qca6tNwdW)olCAe!=P{%=@fv>sD(u! zJlS6Fj&*1048|Z@fGr_s*qh~klwds`2U}uWv}%{{*zy1t`9`qTc}GXEm98~uT*?my zG*|j=RGA?3yY#A_mJ?bZpvDq9uf4YIURS1~c2>Lh9p2#b0&vaRk{?=Iqw1=KJ`UO* z!)?IKtBSWI7ZGL2;zZ4$8HrjwByI?{!I5>P8|GSa9(QdJ`6oIGDlZhvJlvLbrL&&V z&Qafri3_vV!L{4ofAP%&5lD)UdO@TgYTVD*oJ4)~-5&fSR6h1I_b zs`!=?xZRBi-C_0b3TpYD61d-u2t8o+9||)3NC`adMueWQZa!UOC))nAa|s5;cB_)& zP?ZFDf;6a(MXy1P9gSK$T01+^pe`2kjCwl;^XwQj*fD7Ah((hfi)K3(Eq3gMR{w(} zJoFtZr2AY%%J<KZagKLTX zw~FDoAXYnhW~#}klM+{}1D9pmIQ?+78i2a9)irn@YjY4X_3<^}w?QHi489OoI9}m7 zenZoNV00XdpgbqLy>J@F_GPi0q?m$4^K>Lck-j>4B1?`ai4P^Vk=vK0g6V7KykdY= zLoS^;CUeQHUT8W6Cxg~$KcCMDX}qw&SfNcQM7*c$Tau7qLQHOw85FjfTECFz=o2SN zNF1B??;Q0KM{f<6NK#~kCY3p#6{& zU~oIud7hV}56rbe9?9Rym#mZvlUZ-j?{}MeG#bgXUbpn!o}TdmXH$;%1yOXhyHu7F z)}m8PwxoF46!`VGYo^!UA<^$lL3(uSvMs)eZnA@%z9^DHb=Z5 zy}n{?xtQ!C&`MJ&N+d7> zc*|Qjp$hPPI1+i_GMZsZ6>>~7c}cZF0gfZ+Mgh>tMLI+`;@27g##*WL+53@nLw79j z0eBHfF~_u?VDp-CfGvG*r4jO}4;UdVmqLnqK%jzM+Jtnl?K7U|ZRl`bE+qaccxo^e zp!cm`zS^ca#V6R01vv~Am}JOC(%+#8B)5=3Dt&nd8zqLY32!kT#W&%32Z*k7O^<|b zUdazCFpEwik-2OFRGYHLaj=&gvCdM8R?oQa#74wmiIhCeU`mCQn9HLSAnR2EJjFO5 zsKnn0MJ_%Hb6~P3Y zt<`Qijr6o|uY_r!ZD^b!?{?_WCDp#HF&|vNUglBX1moZIVN8QS4t6jD@zSq!F&8sP z(X!2fnUjA4yV94)gXE6;ZvPQdpb8QCLj|f>nr{CfSwku?oXbcR3=(X5*h>$}H-I%| zo^!v4G2?k?co-%ix&m{{DC>E_ty&-Ay1WP!S~1YH=M+%Pay@Ea0sO+Q&T7#px|2fCq^5%|r7PdQMRGKog0^I)iIY9!0*H-@gq{@Kl8S>R zgm!SdQoeUDL>U=Usz_Y~P=uB$+(w8MwyXdRC~z#!hBOG{X|{x=AH+s#Sa5R-keR*^ zDcUac@`u2S)wB{9#H6;Hmc3aVLp+Jo11In5cM9QEq(go$+XGi%8avO2{XL=&r2I~O zX)1yc8%&UA;y8gx=^}jQD?~MiSt7W{$H-U=@O(O79|^}lwnEc84tP*7g_=SboR#MF zZ)o!wL}y6(UNIH@Ne|M(T%_nS;7F$_z-}$Eri3mjhl)roF$^is$U(1@<5G+HFW(5v z6ZM$wNgtvXE=JrCAzmi_G|eu|X}5|L+BK+X5J9J{rCt+`qjZ|BRr+}x@zR~n7%F%C zsoCEA$}6~Knarl!4!`sgrA8GrxvxHI51nJEt;B@ze--N*mQ3RMBWm5s477;}4|{DT zsAJ0N*(BTB4Th)SSy0LvWN1iXNTE4Q`asVfVP(wy876Bl7l4Cvrt(gnKvLn|WwEQX z)Tu2ma*W8dXD=i)-@#IfVkB*TEf?H2g{tBJ&2QYykFJ~ZD%cCs42e|LJmdw&Ge{o$ z9DoxbN@p=VR6nA8Xo`H*FKyjLU2uonVu3?>A9y})uPK%Aa-^$-={ z^Ld3tjB>}XHS|@iRgYiku4VPJ^V$NdguI2^K3NNUWk7Ym7SwUKWf6~AwoRu!I$DIn z$pHJIE?82iNo?@Ja|2yDxiy(esDKgA@0JUt6V;p5H1~`hJ%@*X z**+rpHq!hm3^bd30+^jkaA^->G-LYWKOiHBYaMZfRZodOUh@pPkA4nd@T)%XEn9f@ zmP%7ivjj15{j^R`h<;DXQ_M_~FRz8o*fvXFqsdy*UAmKa zjj-fNC2ZrsO)7}d-g+dWrNoJ;Y_1v+(8TlDjgmK3gxti=kCC`c@FLHu8)F#lXssZ_ zWNyP2_}bATb11!Ve80Vc$efv@o^*ilP^*M#4Q0}|tRgkFs|vQUQkOmEKX!|?q|)pV z`vc>i!UPh4ZIh@+T&bj>t-XX&92L-<>y5cH8RQiZysy>~YR_jXDRsQAvI!N$7Ew_E z@)5eNx8kR{R=PiP!n|2e@>jG{e{W3@4q^@9GgVt5T?MAY)S(9t*7uQ6XK0qTI8=5j zt=;V6ats^x0tW=axT4V=cIU6`{)yY6?Xo%t=-C`WD&W9*`^`cI(HjAWMn{<~d-Pe# zM4$b|5KS?ds}J;AR?zoq?ag?RqmXy54H$EIN~uX9 z&`C(2oXztgz3v1Ti$u^Y_ZNH)k~v%j&xz!;W(Xvxus$qpoOq4qADnGVZ6p}lG1wz{ zD5t3lQFW^S5;kX|WgFPNn+7Ij-dX2XRCqB97Bt&0Q1SN&Oh-`cPM`6#9wVLid-(u+ zGfe91?%rxncoL7|@8U|cBKK-GL1QFg%XYicG|Hc*^9s9JU&E#yU<_$OEig`8QY7>@ z0NT!nVG99_J-0`9nj@e|{6k+f^B-nLyB9Mwk~xsbCm?3Hf?dQR8{Xlf5ERYk1E1=w zK_X#?r+_fGB!`?R8dR#g`FDVgczZjW@N1>P7|0Pu3*E-vI_SecK zUzwafE9b7>ODtyWrsL5mm-6g~iyu&=bS=l3fSuCM3@+2}9zn;DU07DK%X8Iacq*Pl4ITEBQi8ac& z(;Y|R&F&U<^E(k=%Q7LOhKEmj5w(=UAf$$+TZ*B}{!o0_AeYkNCt^?q*4J}ro@Q8S zFPYU>>$HHz9drVh);z=R15^7AEJ|_W*`Udb5Tto%UteLodbzF`3D=FRiL%PQjx+T> zVwZ_2$n$ZI>J3-dfea&CV~n(MWXd+# z<{p5`gLt%9qCX_6$gXg|3*JToD{k&g=g>dUyt62X_ZMr`Vy=;mr_F}qFql#(sYXJ2 zd@7#SN?3{u1T@&grlD{}3Rg|O&V1}Zj~8>Ovz;8vOq&gwAQsIRSHb~3-ZJ|`#p9!8 zKOw+02exCup$#=1qe%8wFDv<82pgSgUBZTAZcALq{-_k(?l1+93{HdM4tA&cZfa3o zkTw#m)ot2)fKk3=HQ~Y-^%i5Q;vBAc*W*w|7Q31Pj{~S@Zdrr~G=iiw7Sqlp85eR!Ey-*EqqIW$a1#F<(Sj;H zgA-6a0{GlQMT08Gb9TDg?RVbcn=&Iw#iDVygr!C@o&{{FmR1V-kV4F&?y!MA4{qG6 zT$4VFN}5nX8?KT3r@w)Q8JUX3=fN0ZLnWMElVf6z%(8Zz`9e<0aup^%gDO9WkV-D2 zen-Yy4CC~JAN(}8;fg$Mf{&h1amyaO2wL#Ev-+1TAaRm4G>B7)5d$?!u`{$` z1@euKgCuz4=8R)LH|t>fbm53H62Whkd^|kNPth4wkh;C7+>nT2&w&Qu+Y9x6ZYcbBIgHXqFtbuh$#^^<;*Lz~* z$wbq>4TuZKg`0yoR_ase#&vg}CpIz!m!rz3L;W3!&;hlvwa+fsKn1Je%X*Bb&8f9? zxlCIY%@bnJClwZhY0&pJBuaRuq{{gEtx3jX<@Sax$BMoys})t9^74YtQ2&&T6xnrQ zs30)xykNYXp#e~KS$%W#@?y?s-e4CMRB2zsy`eif&f8T#64!A0{2IjGhbW~R+P$Pp z1-Cf_k;`}Fk9txPZ-wh_X}C((<`%Yd9@VT3&mun0@MjF7Eu75Zqm!DHqmWHL*oN#t zNr93YXI4xeqy)pu>ivZEQNt+le}jip@MZ@Uh?H?9{70x5P`U!Dz^5`y0iF%m;yOMd zO#jJBz)}xp9`Wio0E%X(uKmC21CTDAk#^G6V`;1D>vV_X${%C_?8|0^@U|U#n~w1y zi_W=(iE!p7rd~$q&<{#kf?|stqA&=~Z1X8xQ)XskC9a9P-8E#KB2B^|JT>X_%*c>o zt~fDQ2(AGPUXDv&_i{IIPkn&5(7oM;YkoGi?kh>OupTdAoEevdlJkP*IPDctb`X|+ zrwJ3YB~Okr*~o*gAlWPDi>pyL$4+>I2Rci$>%0!&U&i~i!dT+6Cnxf*@lHGDAty+r(N-qmJn4Z z99b^oC#Wc{QZS14a6Fwd!)#V@Lv2Hau%LdJ(%Vx=MXB97z<6Qy~ffp6IOXQ2p&# zD~(}ZFbtKs8;gfw$*K|`seEEJm|fE8J0%2%l5e=OYN|SaQTC&7DAXWr)WOnDBpj|N zFPwAWBkHG-Fv3#sh;h862ak+5cfuX)f0IRMNMS99Fd&fUsA@oO#Hh5!-s=ZNEhm>6 zId%bE6A(Oa@vfW30LubxJa{p1EgD+XieuNF)$ffXmDPD>`9W>PUPjSjB%#8AM2fMltUd2#fRZlt=WLE3A{~;%q=5IQ`5(B=Uy< zi6)1`9(?BFaY{q_uJB%OdH#eoj#qX^pF97{b-@`s-*DYi&435lOQ$Ei(cT`nv9u9|r;C2?dAyKAJ z3xK6g^*Q)}=s^tJNi%&3kE1jkK$OK?h=Ts)jKz?OsI@X2+hLAELg$t*CBZaAh~tBu0p^xR*IRwYIt z7XF771V^AfCgS+LI_m&?fQm>y6@q%yY}Ix3$6Uu3*lmR4PPU0xqnR*X8azRF&nRX? z)R6g$zBs8|2PO;5EulT@F>cVPD+Y!dT~G@XMZNgI0wNi@yfXd9eXZHQVoIZX0b)2$ z)K}^%?usdpnx)S`-F6un^Be^_>B-Ei1m*~m%Ocah-J}(cAYEgY|P6aiQ*o1PhURmzm3}yYPYdkV-PacrX?KWk{U+9yvpY6 zB0;xTv_~Aw61T)$uS0truASI&+G4m_JH&gO&T35oQ(J~qp++;u&$~zu_`$6OM>uM8 zZF%=EnD01jF$S$Z{tHq0Y}O8LO}I4Ttdg2_zk~$s_mx7$48-_N-R6UK9or09uf*kz z`bxFV*=(oz;Pl9nF|MVJYDuG`ndf~|GI1oj0fUCa0bW@v4fRU#Br@h*Rqk#+QFyX# z^B1Qb#x-r3>mAX1)%u{@2Bmvwgl^pumvMWo^+>~a@<>9t3 zyAVt#q~4}=>6Lk$t(BVHvwG>Euza=*ZlZABWCizc9N5f`uW!lTatr z4$k8!rMzGTM|f0=#T0p@Wsk#8tGwBW^LoqNh}%{s9v8-=R?>SuPUbiR+U12(yoq_p zaLqdrywzYOs~Zfkb~k{k*8!2WD<|tG{X}zUr<`gR_`Zs`OVR-$1N}+GLOveH98%68 z)upr*c5{V?{Kfdvk1Hc8O2y%r;JG+^0|nkBgeXj5&*<5>VhuW5tl$i@cQs5WAKKI8 z+oWjl)4+L=c%BlNc9sU=KpZf#mj--nD;(i^t5+-@C{iUWS)3N+Ja9c3b;ey5Mne5? zo|G1)9qrG)rCL(|-U4%hM5$%3eHAFjDrg!7P^&Jo{xW`O|Z+jAz z?WH3q$ag%n^@cI_#m#26%1WI;ggvv^am$*L1zY{CohY^xb-jqt3wrmim*@YKtpG%T z=tSUzhu4%C&!!sutLD9bH%=F177}}=Px#KQU{GD*p(cl+jhh0hAG5=vGk1d0>ZGXo z4&xF*wVaD<{757m2)p(qzT}58!`Z3&o2XQhTaQC2;i?cp4MK!!QXm{kiwFQ=EbM7wI!u1*H4ngT~X=m*P_mcMD5%wV1W0Y97xbCuK zaZy9p7?J@vaT%ZTdyx~S*ouZo`iL!1G7nk8;*1}W=K!0AaB|Hs+jCNnnmbGxu;98Y-Te>8UXYy<_ZT^3hgN%Q zQjwC{y(vXWq{Yba=449m zJC-~6hLGvT+^SZ|QnUzyDKo#0YinLkmp;Q(4y6YY5;&AVO{wca+lWx1c|$>d6KHKJ zkj^AZzDsrR?aD+q;Q?>QnYD)9QkVq&cY4gyFR#fsLP|S+pKUwg-d@K6d&{HPi(MQ1 z$|E4~G7=MRN7=qyp0&!_v~|+Gy;J{j|>W0OL)0+&ac+^OW*o^;oC~N-0jaYrWYJN?oFeodi&25 zKIhtYdTyOlLe+8w)_}EoJU8C0m9CXa-=iz-l`lMGH(h-JUd^=2yy#y({hyy!y)2d;1#)N17ui*i;-N z-VV!l@&p>zCvQ+>X5_;|C|@5hz%1b#16S$Oa3&`IDNY=bXZLVLZJX5+&^aS(JI(fH zVTx$ph@TjIr~t7OLwA(nuH*z%hWvF-#hj6yvz|OFEt)({R{fRHyq!>~g~UMXugF55 z-Yh-CUK+XDWI4Lbm+vmqMBKQyBkrh&V$uNXboe)hKGl9wuA9x(vQt9bhHzU`_G-45 zP)FQuMiafjw7^!y>TRqltvW+6EAdzDr^PZC-!>w(xH7=OYlp(zQ?Y^DKN!b#W#oJ! zcaGqe)fzEA`*6C}c@aH)1a{dASLH&y#heJVoPrIE0P|aaW{Zl!i6V^h%e0J%9h8#C z__?e454inrCKfX0zm^_V94$t31icO4j?mkZ3e!=%bGq2wgXQE2~6CDSOsC#r!~~dB$XC0UWfL z4lw#@URZz&zn6R_rG$MwzD;tv37Z&QmEyoFm5+D~+375+xk4`lwBnNR9?6EOYURnv{DQ0*c$ecJq;_g@A{{{&=|dknl1IZuWh}gaz#F0y-Oh!TM{Hx3!V@R+d=bZ}! zfBTMKiei#^!z0Hp2L00=5ngQ`gBzj!n?o~ zRWI-Zp@XkkweH+|TvDm3F9~w0xcV@9zeoETtW%B_?_SRI)�*o(8sUo#yn^Og$YS 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 literal 0 HcmV?d00001 diff --git a/katex/fonts/KaTeX_Main-BoldItalic.woff b/katex/fonts/KaTeX_Main-BoldItalic.woff new file mode 100644 index 0000000000000000000000000000000000000000..115af4f072e4274fa7b4d2e598da5bef26144564 GIT binary patch literal 24500 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 NKg$3C00IC101uK#C?5a- literal 0 HcmV?d00001 diff --git a/katex/fonts/KaTeX_Main-BoldItalic.woff2 b/katex/fonts/KaTeX_Main-BoldItalic.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..5c500c285ab55e11950be8b95b43ab163924eadd GIT binary patch literal 21244 zcmV)AK*YayPew8T0RR9108;z_4gdfE0H^!_08*j=0RR9100000000000000000000 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 O)(X=$tW7~D=Kdew)^%+F literal 0 HcmV?d00001 diff --git a/katex/fonts/KaTeX_Main-Italic.woff b/katex/fonts/KaTeX_Main-Italic.woff new file mode 100644 index 0000000000000000000000000000000000000000..2d3087ab4960a26677e544f8f6ab204326240a85 GIT binary patch literal 25352 zcmY&;V{m3o7wwb0v7L#{iETTX*tTukcJjowZQC{`w(UD#-TUY6s#T}=I(v2Zk3MyF z?`}6aF);uL;GY>m0TBN8Y@GVP{{PzlzsV`lGXVhVxBpnBf6x~#i!G(`US z8vp=^h(WFih>@!^;lI~3|2XP@-~yFGG&Qw1vjG4!|MB2a003;-8rtTqnSs+kt_ z0M!2jl9{!K>Hqox0F-9{fK2-!`+c>-bi*x>`*8l)O;c(Nq@U88P{>7=X{Nw(O0RpAX8!TdD;Qnu1RkVLP!v6uJ z4$j`zz{cd?oYnuuL<0a|QrZOW?)G+0|N1gG{KsMaLs+p6JB+=f$v>@L)jyr@KSU-* ze@?h>WO;+@8}|Hr&r&T3IPUafM2F!pFn_vnj;uCfyEHcohONI z_UGsHxTI9~hjh}blfW$+phwn^fQPbwIdvGBC~C;u=F6W zLuq%enwzi(3pNA6;@i}@J6#)AWy%&h9WRwSOEmEh%SqmWk}Xl9B1@@K&4>V=0Yxok z8l`M3Jv;Vl-BDH*hmEYFyOyXMVW#4ZKg}z`;Gc{mjUHbbEk1g`)yPp_F;!+n#U5=N z<7pAl7v2~Ffw{x0lyZ6@#58>ZmBiu9fGz#-Um-?5-BAB6?}YS#ljVhremQ)$+Mc({ zdPueKt5u)*)tph48z1c9Yp+hf4`c`)#aJ$tl+A`}`P`U@MZi|s zUk}TlyQBRKA}(8g-_UEU+!;v_?@PSr+@vWa`BXSNN27et1^_-j-SUpWkq()NIDO>| z^IFqmq4U#(Z@)14e>{}^Rxmkz;W)e}yL+c)7itH1vO=|PVYaNd^(piHNzG%p!3e>} z{vZiR&5={;hZ<%gv-CBr3lq^BbJFam!_ir%f}n-m++X{Q%XxN<*e-};Nq&=%&Q*%y zva2?GRQtvIF0&=%Z+ZG$Bn^>3NCr&0BYAY`lgj3_rII%wup2pkEqbtLa7A8QqMbE6 znJ-J1#yw(x)kG))rE5o9zV$skudY08+e^1R^XUxLKTpBY3Xgi)RXqqq5pw~7al0SA zRr@FHtAGD!TNkG`(j62)lKFxC@%WS2;7)Nw3&2#g_kb)4Dj}QhD@)}fs2>MqpjiVO zI^}}uXY*&|r^1G?0Vr(DMqKc7pYIyhc)>yhGS|O-x5C)PFS4&)?CQT;^#*_#&o%$$ zJ1sr@(h*eRT5xvV0^mw>-O&5p?GLM-71s9NMXc_Ao@Uned|qac+UazAe_w8#@As^q z1z3`+IG9+1@oGF}+j)w0&dW4zNTvY$m{sEWjQ=)s4ZmLKurJfCK|q$9Rj5{)?>>YK zm|W$h^x<(M@Gd`obzRNJ0GJrg^eQ02mASH|78}1p9J60ej>XJ)BxSo2%b8Sp`d<{^ zXT1%sfIYhGyq46CH@GcR5$%e4JW3K0VpUAM_)()kk&3z;>wM+2%B2qvF2}c_{xdc4 zLdFC_)*iKl@Z^KD>YsR8_wH_sqF=G5zgd*Gl_r-x&Cc0Mwq@E4H#5c8?h}OeuL!c% zJIz|$Ugw&Wrj4&2avRV3jBR+(Up&Ffgb(3IX=Gi}hDBP#c0;89Iku33`|NHZ|jh&gJK5 z%D8a;i*Wh*BPa6XCMsCSe(yBS+5HJ|@a4O5z2RqPEP+(`Yuxukd`1>P_{nNLANeDR z9}uy!c6SuSsf2_pAl8&Bq%H^+XvT?BmQPdE^LS~`-!#R3( zrDLe5S>NQV+*{<&(gA5e8aT-?GJZ|KkeMXrRsWhSoUQ) zL6F)n{L`Tv@19v}ovsXj2liZOLL}D>`J7|}m*}w9d^RI~XBQB-PtvoEYelY*#%)A= z$|s^maRG(=5USM>$g(OYBPvF{wH{+`oZ>~;wwWoBk?=$Gh8l0hk%D?u5iQVj$V7tS z0l`UtZz*f8@GX#P(ku5XIe&^|Vdb`axD&++e#PiG=74DCgz0jDcPhZE-ghH6!@RF6 zWFQVIXq$ai-9a(rH|i!-C>Ufmp}LD2UdA!E67Re>r^=Sn7%5YCh_eG25)c0>&zZOu z(->>8;Mjix@m7iPxTZ|SnIuQWq)nYbphY^cL_8(x^_u@=p(&WSNMYto4KE03oq!-d z6a~S^PZApd)_U`W@@FB95Z-H#`GS8F)t#6D0tXj__(Gs)(Q<>`;Nz`JKLELI`eT(G zzbzG3CU?^TD`CbB16mG(j4hIZLw;Q)&Li_YMLcFG4Dlvjb+> zTuwiW+3>sTU94Y8^WB9%mtkTbq3F+Mq2GI>B~1SIIDj8cA1v(KgjCj8f7a}i4b2G< zLZUf5f#@nH(gpbVNg>fANx{JE$Rn%}sq z5hzecyLqgx_4{F^_ZWsV1I-CM;SXmb=$}st%6otN%blO%j@ppYyZh}*bIsG=gctmJ zs2oW4dLSh+eSg-#K&d2b0}cL$s=}(PGOdwE!G{PHh1B9ycVX4RE!ItO6L`nz>}xhF z-5`rI(6F%WI%Vn%6#6mkWzlbC{OEI%gLC(4WkmE%)3-!I#cgl3xxX7*Ik($C}FFgFw&0G-MtqIQ7j1QL_AB2ix}_TUpMtMn<2{8C zvO7yxy|1<>>ZJdESw0t^k?w4Nxe)8R0})OwP5VeJFq=9an1M20A2|i9WEW?O#bPXA zD^-@cU#d=FJ|Kz3J#WpPS2{~?DD_f+9tf_(i=>O)E0@|COP-xd**%N~)xbtZo{b&e+H_g$)9v8QH24gR*8P{k^ z4aa7t;3U+3`Epoz8MSinLI;8~8TcF#GNZYCDFQ>wqqzb4)C}w(3fBHe8!6syhuSyv zhW)a_x)4;0j+^vYC`=s>w_ZHzJdcyx`=IgATX1#{414qZK>Ha?+dsZ}Ss)AXtDXCw z>CfUX8)82CAk!u6dvMLW`jtF=hT+Nr*sb2a+I-Vzij-`m} zZN1d*4U{96civQ5_r$^tG^mG$QBQ;vLsRTHV;21?Z4wjK)h z+yoKYAUx;=kxUc)3h&yOjl;r-QWRo58cda~=qzS&ZQYr2%)_M$Uq)xM==PhqlYt{m ziW);2ZHT`ctz0ar4Ccg_=OC7bT%FqXmn~DGOzAw$v5bLweZLgXamK_`B>yA2peZ@F zQL?ER4c#}K@3zE%Xh5@3@7KY4777L82^{w5$K1vBqV z+%UaPEivIe%}y13<}XZbEFLI1(mr{d%sk~^#ERzw8P_WZ^Dk1!ltIdB@4mqKA9|p+ z{5nMs1c%YRx3~n;HeeX!F9$BcbJzLbIrE)FUXt+*WdRsS)r?EcvPC3|MapgrFx_Ij z3@Zzui7>`EH4<5+yDl1i+R z7dQ#Gf`v?3G?>XnDGm-gut9Mk+FMtAa#N&HBpBy&nVW4Hm+OB0P2A$d{*yBgdtODM zaoh?$-q{Tfk0BCL*QJ(2WDnS)J)G|a9TB9qm0h%DA4mW{2tYF|!C!1aMQ_tCQ)~f5 z-LCL%26C{HOIMiVzrS#71Q7UN`t}my&D1yjl7y109rp7x)hl&s1X$P=koDoy!0`>& zVq3G>DcLAjukOE|Yk$jap%LG5|6+b8Ng4+hwBOYi2ec{ROOC2qQJu~Fx#Z{2!z235 z_OUsr zr3z{XsVE2ziozw@06#9dDOKLYwX%Ns?3Tcd4CojkZ>{ImyU=MKmnLFT2SbBn7Y5SV zKK|#xNw8WGg7h=M{4zM?fkeE<1v3|u-CK@RQEFzou-vv6MmHhV#yM{sa=j3wfVAQVY4WGxr4&xrMJmqT?WBm|SGVFVe$ zoTxZl^fZVgMw(EaWd0fcCpO$O1hx?Y1^Y8(oio|mUwynU=i66Q4M;3B-uAJnwW}3D z`d&S>D~b-OUw3u`7Uo^KqK_}zm!`FH9xz^j5?!YR!VDVGfg?QPY6GW~(Mkx>wH0v&c?=hk|gVt}gYy@Z!+`oXytNwP%_rU=~iABuPvp8LR@kEdp||P1d;Zz z@uNnIqp5>EF?=Z|7-`Hab8z_mH1!vdZzaB7W=l3X6eZ~b9I7PV*Bd-FJ;-IKlPZ}w zx(*~nAp90gf-oNKu$%#t_NygGOzjVy>%Wg*w~Ocxr2cFoz=jJ zuZ8uIk74G{8#4Mc8KDqu;6C9CHYOs$Q*NhTAK?UU8s?0vln0NQXm;lavT0kG$-xVk zWYxk+(FQC3I0S0ep<^I zJe|E7)EB`4r8_V#)*$5{({gFen3>HMe|4DiEmvVC$Ebq)VLv9g=NzYoOIs9KsO9ID z8Ar_FX;=TS9=3PZiEd2+IqiD+8U5lwREVhY6c{_ch$sM+$xYWPnV;XEzWIG=_+p0W zJ6Gab-bn(i7=J!x^-iyievFm0%T-_u@2tNQLW!UnUJSuQe1Y^K`B>nMt5H|U`Af{j zrxm4ttA_xU6DG&}A3rF9asI;jf59^+#xhFkm&6Q)qnXR)Flp<^x618Ht|N{>cC!hx zKTWBVQ{lE>Vbwolcwq+Ul{Y;Y@ZWna(_fQ6AOzBxR{>Xk(7t1^poFhh0OitN#7cXN zp28y<0#mp{2W1GCrS4Uccx}+$|FR@!Y$1_NPoa|91jEZH94rTginsC#uGVP9RW| zu=$qZDhnsT4*k4Gfnj=)X71J=P3cmlV@2hnz%`>BE#(MvF1%*Y>;A~AN(|31MkP5K zjA_u}W6ug;y)Myx7e5bf0Dn^C-P$*WC+flwN#pwELY{}dwuvXxnS_FrDcL(j*!y#g zVZmvv+4j4@l*I^2a}dIKj$q|CAmF=aBeQhBIsl= zcOU7vzLohaJ-pSTm^>xcSSFEOJj_;(-RV@B)&5Ve`y=1o%90l;cpj1c1Blz{1h_#; zo72b2afl`dkp=`{`rF+S3v~e*{0(C}}o1drtT%=iKN`egeo0;~a zL^eNjVPcw|qq^xMf0x6%?8LrnHYz)~AqhGE3Xe`p&)Kl%z5?Vdo!(?Ij-4{XGHq}e#>RMbq=%ClU6eYWzdpYIcT?=DxKGWRWTBuq0yM<0 z5i4Z4c=ItFfn-g!Kt_?ZzvM0>V4{RUIq-rn)fer8v4e%Bh%Lt_CD?;s-Mr;RHUrdp zEuRuuHDi`xFbGo%!F^mk?@7?Pv@1lED$S}kg{ByyMhl4jp7u0k4B?1N$dRlSt?eTt zYNMuA5_6t(Pf|mRB7rKTWQn*j^=%F6MK{PdBE(`6V{It3Pf?hNCAIu~FDgmVnH{6&^bweW0#o6`%k5u9(L9nEPUw!IWYlW1 zKKLNNra-nL=&X*A$*Cw2RBu;9Jnju#2A$YY#)2W_;JsCaseXa^Y}nr@jj^@-16PQ&8Xt zK1;uLZ4Gk$yzv|*2%7)lCb z3gW+AV--OWvR6}K4%`vqOo|WQ?Iv7B`46j!^QzEjv^qj1if@8Gd(`sjGCyZ+$uhg= zSAxX2Q|KycCI_;Sag9u|;z!LeX@Q9GLO8RCg(LQn1ZhY|JBFZ0&<_H#;-Sdk=VbU} zj9p2*7cy3?aRy4>ySSy&a?S$E7HNTSlOFV3XF5x!zJTw>&QJ+Gfpoq}ctx1P2MFvYy@ znOEap#AA63&1ZdH>_7%s0AKX)3htmioz?ZC@niB0+$MHX3>nEokf~^+ z@i|?~ZelmE!=m_;)*~%bOpg*=I zwspaWMwH~U_m&V%{|V?YLv-y;#sA*ii}pP?NR%O@63g79Z8>sQpd;4qbllq-KbRE9 zIL0naQ6##-GzBLZ(UPrms1Ba5A52`<)E~cZ!TZA9ML^z7M%S=ueDI9x93$VPWogd8 zT4}E+lGWyh=%2j1f?7zedXX@e*|TegFGupp2{`UH=Zrxfkt)7>Qzy40A(9jpT}AbDS-JfQzs(ZIuBzxSp{V8 z5{Nn)M@wKmEfa&FCe>~|6k6%dy2ctYv8t+F;+k6SOp($uO<=qEWp5`J=%XJ7o$z|B zlzijzDRXzVbmcu(CQ1c)E*kFCQ^G`%Lx#Gpu)+F7>(>dPjZ#N1B=R#L7ur|W2 zKT3`mMH<447{(jwEQSsMFA`ulxAuwF_BgLH={r6$y~Mn*r;0H6o+;%Apvtbx7x07H z^YCoe`)x$va}{Ei<9lAO#a^q!)7gW;ua$`xo{NWl+i~WhHV#XZVSCvWX$$Hij+bt0 z$u9MB1QM#KOP`r#?M9THuDblOLlW*uAewZhQ^ybx7LxRF% zhGTcR8zWEt``L`cD+<~Ir{;9=EEl-bzLk=-+|G#ac@X0m0&N0J_(0y6d0E~z7jeC; zQNM}t{*7JygSS~<)RtgE33qqRj~R^$!Ac}3fwmJlNBVhL3ct|~<<9`(?|11n>)Ynz z2H=G4rr6|t!O}<@Q}0xB_Bf^9yqL$kz_-gC$Y*nL-3`Pq8X>@`;Afk^#;jbfdp+;A zDq+4_sV|>BbcRzr!>0TDu^Bozzb8|oqg*JA^VC& z?2;}uqz)OxXmRUuj@3Get#TspSMnvR z)Q-C1&ZlGbUs zIT`HEO+<#d zw2S*ATNfgl94i4kDieX9{Za6h#zZmreI#fxfi6h*K9IKK?O4k+XTo+QfkebyP$Ocb zzHp{=97CYh&q9sy5+dIqA#=2znQO(yX*$v!mB=WReFw$eBQ*Qb(*TtVBc2Ef0={Li z=>-)FxGxZ*(kaI~2xvP+$fEdf6pBay&V_apdaj5QKr_(e?D{t(A4K?=K(}l_eG@qD ztbaB<^K|}SWRzBSPG?r6bkV;A#ooKqg~RF9KBBUr%Ria^dmT~@T)E31h3rLXjh~n< z5tF{XMDkMSP}A-KaLMk|%?q7tw_X|lrBED zGO(9eessx8mEP6!td~W>TIA_CZ~~@Tl#Kr9avW(qNZ=)E9pn zShx$+1%m*=ifiSw-^Q}r(A9{@v>d+6YZhwt%;0c#f5t4DZfB{Z$Q(^I8d}>p*GS?S zk5uW4;wW&5SBisnHr|ORL=wv+ArWbYSZEenGkE+lX7lw`M4{_#2*hr_xkJZWcSHiN zsHdy)q@;}lZn&v$zs$Mg&0n`~M9DbuFkkd9Uh0Op!|`->{=A0P;?K^zB2!C=1sK7~ z3PSyY%44&hH1_1m57Nh^^duNl3V;p@0sI%7*{SM->IwM9+1=`5V#)eWU0PE%>YJa= zAOPL4AGd#5&gnDj65ZiDQ{6>I$&pU6g&k>&e24g;+0^l7 zzt>C`>dkEe^4EamtCkKfE;-Nx%XU$cyEh{34BtzEI~3_1^NB37dcr;WIFl)XO|x+_$OmFUuVjo{uByuC@bk{l+T!Rb?mO&j+RxEZ zsckjZ)|XgEyVsVay>XIWn=@aoe-<#;JMZxU>aFA+JPQUvzRA+U-1--ckexr$@W`~T>Z=G}tZoZSy29mGd*Bu(e;BHIA##rCHFEvC*())zZFw-^l+yDoxYPplN z@xEi?UoH}LGkwkf;`H1uwKZvTJ*&gLy7`e;L-5ncgGB3P4qZi#0vTJjBEWb}xPd71 zDKQ^Z{2j125>Ymkrppw5Wqx_aDk2iJ!|9nUkARl;VvOpDmVT2TwIN)(hr1=P61kaHt2%fDIEg#d`CllQJOZu$+pkg_x*@GC0< z8H3yE5vE+l-lSdN#p}^hh6THF*neM+i5gYKJRTVh4TFF*Dw&Fg@?kT#G|M|(K=l;x z%Gij(@RQW5VlQQ-ZnWxJ#Ty3iU%_8h^v#AI8Jhdcil=V&rQXSxA}`6Z8n@k&;6-H` zqr3pYF4HhF^YGK?*F=9s)i4wHqTa>&JDYiwel@F}a`a~6V| zXls!dSU*Vh^nP`MBZRODuFAyQQtsKi+^$8()&B@-L--ae25L>xo6QJbf0^dS{vmfI7nbkhFFA0KkdW5}gUE8dt& z{`mlDKlJitkvd+`v_6EVGb6F3z8aCiKDriB;E*0IsF!SRQm4L=VAQq;^5kxhDH+(y z&v1o+X$n!%pB;NWvwnE~Mn3503?*u(pqMO%C5e6^aPA4Z2PU)YYlU)hkU5x+Y__6l zgroZ2U$`CR)_*tTE6LZNtVLLepvSO}R05!^dUCr9uqFuXG{B9$!39HfSB?+_LDcNM zC|IEh*$!uFGkI|Fw#BUcerCa5qYL>JnV$`((7QFg7E6J9~Mz^Ny*}Q4y%kKkVNkjmFg<6$fK$wwR9* zER#R@+--%u3|EPVZD|L~D;mevr{|Lr`FTDo@;$8s%i`}~ACA7Yy#6rZ<&chy0}*8% z818I7FvhvI>zF^3XmVWteJ58M9YyATO{XXwKS7N9+7a4!F^E_6mkPqe!|q$v#t6K? z7#a=ZcAgOPx*uAygL-TI+FXD>>pKw#G>)4M=~@oFk-np=II)5m3pva7e>NFqDsadE zK8OIeL6>QW=BoY;SYeXEW`8)TmfmR9oT(zFoNu<`M35Wo8AJSyw~OHFK_;wt54^m0 z55chDfm{!G2LNZvFJ$(l^`RwvqF>$9OY?&H8eMysUb&A}Bn3(tR2<^5OzkJa%g*Eb z?rQdTFNRWtC=-4$(cwhw-64i{EAbLpJ71+)=`b0u_BbQZqF~JF%F$vEY7e+b-xa&4 z5I!FsuMv72;Y|xGy8Wj}Rgq^kI?UUqY3>BRh@>6x<1QCAbm~kUpBJ(Mm2Rt=X>#nH z-ku2mGL*jW^|NlT37bmlvOe|)o@A1`r~40L(YJmA3&Vz+bBuy#>k|$ zea@O^;!dSi?d3sa+xFk@vC8s~TDE~W$N>Lswew=@LW3VDXuL}|PccWme{)hGOK0n! z%PZX_UhmkD7D))q|NO~?gt2QOf7P7?k^y*XkMxBL>ugZH2zwZHs&}bR|C>D%nYb{{ zmT%?;E<_4#H#5LYB-rXbnp-Ij3Q6x#*uOgE8d=YoW~BY4POzuGK>cowA?#PtkizG`MqJR)xvsOKIWcw$BgJsC*tfB%d~Z zo@Dj|iBq12ce;+-nT^=Ubx$*6NfgMiO%&}dR?X~2|0prcWMOTxINYDkLm1MXm^X?` zO-_p}$xmg_JN7(bno!e?*A=YC^a!IL4Z}?lmBuj%W4|OF&|$Av!`A!p`86t^nIVsK zhZ|2ti*gS8ouwhsci)Xyf>4|~^9nb5d%=BQ%SlQ0-rF$)=Ls^sY>-nJIJzas0RyCf z%*Cl2HO+_+PGZ-7q9Qq6l9oST&)9*W`;y~q4_296+PG0I>*d>Jr)<#h7BBNRCu9#8kc#me84kY;8*WUM@Yx$SI=6rd3eAyV;3c#U_a&6}(`r`*rR z&+t~VZRr+_C7!SC(Ymv5{aiYF-w|5e$h!pHi)wvPTCq8lC*hsFs|4k29obsKfJPp8 z+0VCKyw;q{q#7mq3oXhinvYl|UE$L#M}pCfrU?Rd>*Q+=J8g#Ny-} z7ZC)%v%)PW)VQXKcak``90S~k;pu2*mO^c=+xS}gb$xaec5k6g3yx)e5obV)69Xf^ zw_fbE*6FA*49HPCUXuh$H0rx}U%>Cac1NrA*GWV~`VAEbLP~~y0%FD~fQlLo!Kevf zP=2WXyhmPRVSiz1PZqlLq2P;b_7|8oWeW3wBV(Rp3ZZ6&RyW|HZvKzRXMsI6f?#d! zPAaHrxO6$IPX5E~!1=v^Z%aEmqs&_(UlKyPJ-z~VsTy0kmb14Hv6yL#Y}`*ho80r2 zG28c3Tq!F8GUFJ@_v!hwXM=v9r!{fC@yc+f?EE@gx;K|axE6^2ungLmR2`du9f*;Q zueNVG6dM6|D8JXQzIi%zg7Mnxfj1<5?Ye2avYDSoBM?(aaVBP$BXLFu&F5dRh-WhF z8>Lo~WMjEoHH9@)d&{z#jr(8vPSbxSUHIj=rrv`+3u@A&ng z%PKqELm|G<#S)ljiNR{Vv`!WYqWSP7W?ck}FrkWJ3?t`DA+zO_#M`6@oz|^LM<7sJ8jAnUl_)*UQdsc zIqgm3!D5j(1qXl8WhusK=+0A9fZ>m>)am8!C;3X-a zb8WKdNdN&!L|EZ&HPSq2_=;tZaud1N&jVW|WcviY*XaJB&9Af7PLsla0WzFI0`XgZ zSIp{x1mx0(a2`sV>VUr{NON|jwWxmsgVvP2##In}f8jo1lTbZ!k!Ybn9Yo(wf4^>v zhuZLoBiv{Jvu#;n+JmK2^(8M{UC8P)(_!2M{QeVJ-^*AVe=Jedf`w(GrjI+H?A)RJ zOibCxGv8DtCi=D99)`A9oX3#j0047!RrYotxt*bfJHoNpE(WT!s!+dy(<7(r5^IdD zFUK=%9ml3B9lwg0~KEOg(~UkSNs z`K1KGc~?xpA5{dtHZckxVSf>-{}sJ`mRMe(qK zur#p?hV4x9!utXre&>rmtIZbnsMHE<#qBc~`gePZR@0CI;?-eOiZM?Md;fe_8-E(# z_ek_2P|=*cD^%LE)2^Nb-Nupmt-OU3l2RI!^|BKQ6|9(CVe_)48)^HL^U@pMDS`+m z*b%Cr?RuoqkUe7=|3Ypqe|8VbzHo25?DO#tH0NJ*ljE9mW}X=hPzY82NHyn(Rjh`?D*iHN~yfh0qaBb^p2yoLAEJ7gX1g) zUH(yggAsvpbz_CG+g>@_Gu&?+`IC4$dA;IyWp^V~McLF&`on4K=EcSj+q*qqU}T&! z)lwQB-xsb=y*t0`bA6X%1BNJz)X>GiyN<=fm4ubK$Q5eo;Ff=BRMg;xd?IG!Kqqxj z88ofuc%ng5oSS_kb-eMPr)f89A!lpTq-Y(b4edD#=Ti{Bj_l|GWTfhG%gAAFQ)TJC z|ID{M54+)9M*9+FD}nrYmuGp9;@NHIS0I$_1eO45KtrdWn+<|5u3vN(g`RaL6c?5) zA)?ZasykZ&D&f0uF!Rw>*>u^q6br43b};J^%D@i)$N+6dj5=0H=Y#%3u?((PPeeVA ztaY3oyEuu+>R3050D!5_3vwiklj$=FGbZ2%OI9d|e^|LG%6 zxRcH#TxE9PpXCZ3j4ft?$mh z++Q>A#&(>q9;m1ZN9&yAxcD8WUA>pLvq4S|N9E+rzs_5CUF=DMv%y@@jh*@1R?~zT zTa=#JRA>q$kAnxDo#N#5>dFxUk52rpgQGTYJ57_YOzO%34 z(^RloeOu;|J7VlZP6>;RhOi=6&c#3FruomR|SaJWZRsl%ou2#H{#9shY!VU)aOr;azIPqax9UtbAZS8{e!aie4KTCA{O7(9ek+xo z5E2H>t?ct-Ok_9>!w6o8LK>*bl=DusH4CHLz^qxprgR=$fO+_e8{Zb6ouv6~z`W%uA zYvMqBvvN_XTx7~LS-b!De2uK)5t6RB@0O)l%mFVX1^UD_*A-`6BQtW0t($CGPoZk} zylro;X;=Q4b#)?r3ao9s^m*V%Pc9byAsJ?-3^}XmNcM~~eu*~ONjweQ@YbG2`;5&D zVfKQX0?73W$x`d+ad)0ZMJ)MN-jtwa@^IIgRH#DmWx0A4nz=_&ge7?jsDN1anU6y~ zO9i48DwVPQ&D$2juz2uiPpm@gT9F7}mn{)mYris?6IJJ2n#cP8>Kd z>0otE5MS&85&TdL-eZ~4PrJJ>X!eEo^`6GxVcry|oEmPMb?&V*U_!b?&)x10@2gdu zTgUlqKVs5q0`pZS6Lejk)}Qj`IH0>Hg?4tI0*C^m5`2M84UE0 zr!5O(!z`dQ!FUj#>k@0tX{y#E($*X3k!qR9;$pj$5vYP$!Z46A#u~`wb<05L_NndJ zWqZ0!Q3_CMxuz0qzzU>qo9`HgIPc6cpq&;lWet4^{~X#lD<_qb(7v+VYMee4nXVHV z@jkJhCDoBhCh+J?{cRqPZc1%cZ0(n;<0?V2wh2iy_X@!< zWW;5j<@kq{yJEP5S}=P_h@G~`90H8tn6a6uHD3D6x`vg1!}{rLs$gX(&0jGTR!Oq{D9v|pq0L$<1W)=RX?|CS7)TrAm+YSqW

    wbLU>I8nRCQD>)b8~H>e?F-z4o8C-I~tEWtk|QzVxkM{cP2Dw8VId zq7E+K=!ajj4n&}lcmZ1%5lJ;1O50=}sX}joA8!!RexDvR;h4I{U}Xik`5IB%P&xqn^Aj`t-74*;PUs!HI~7RM z28!%~OlkP9=BtG=zqyux=k4?fL1IC0Jof?qOrQ#M)Uh_}?_AfW+ZFatB;8QZ9*q70u^MhJQ)W#4B@w09-e1}q?L0XB?k zwKTVSvIUyYT(P#s9`81^I;KL}rq>=)SO^f_2eB3f(J7-Y zt|Ay6_(?G{ilQWnJ$Jdxq_jtw>SE|IdJ@^J3{rR`e}eYs9E3=U7Tm1?vu$p88;yi|u%r_a!hcIQAApoCRk3 zlclv~KYFe8oE@SB(3PM#2iYFvOP_d@sX&CnA}!e&U*mD4b-MgoVihj^>}EiR6RQMC zM(~wrAtfJLXX~OM5G--yTyqw=g-zN_Wk_Ku-_y3g0-A<(5MMrhaG26@KInzMTAT15 z->Yd#uPyZ0n;n2dbY0HdZ33qZK?s7vn`Efw)h=woG|N3P?a<3NBHS(w;T8_AdP897 zxdObIbHON3h?AW(=tPrwrI!}Sb1@V+Y1FKWl*oG5+vVo4Cer7Caq~Z{A2v_ z&iPXHHt?&;SsNxr1AFoy3P8?Ka}b_W!<4bVE34;m?4kzHaLHo=N2M(U83k!fxAL!tVibOF5+siVn+xv3Mh2^Sarhl z?R52UG$VH}JlWR@kLa!Cz+>IMY0dmLqYVzqNkcVqB2HRFD0R6IC=^-7uKlw*A;~68 z#@jw3(AAoNXtbs}cz!!0U&vWD*hV(2{2Y2h#=3URt;G1%j;vNhP0se6}vCYULb zxR1trD6<$ZSiLB*TrxX!w$%6Z%mAWQ$_7eZW=WOuPP;c;e)_vw9Ga3HSeIG7-FytD zv;V=u_~b2xv_r4S;^#t#(8a;nvP1wwd)dqc!f0nVj%j72w<-tWCOVQIRzo94|2j)n z+*U+lVZO;z8lmm%b>yDO)a86ay{NXiuwOUW*dbx-Z^fLV7qX-lg6K)S{@d&mmSxUxE;Y-3&VnLAn#v%Wh7usvaXRs1 zmZg4)xa6cAoem;l`i*o>&dUU0^PNs8WvO@QF+nX>QCK_#N2QVKatT7l3A=YnNsVk# z>@>raIRrg7@wprl(RqS`5N9e%1SzYv%A(Gz)REIwA3nu!6!gd?)R-rYB04&W#|F5y zAr?^~MGe4q856O&h7f6{qBqfC>3CdJ&! zMBk{(ViGpDI>eIe1eFCWA<|5R@H$<$sK+ZOzO$&4co1z0M%=3tk>R}~JgLWdw{7-Q z;5Oct76zm5&?3=;h!q*WE*Fa@pMc3f$#1k2AUxw51NY@veWKvj@rZ>GO;DE?`p}-JwpfRqR%a&9>W3} zJJY0(14&WEntetV=%SMbO~IMv$Xna1?FDm}o-U zm(EgG-*b2JJ6P;u3*K~_kglpC<*L=kYLaV2)Js<*a+0nJ71)adV=&t%3?MdWWNrCC zHsEQUXK)K{)%&GnR003&Q9iYFYGC>dv>|lAGN7D+_vr396(Wh-D4Tk66WT;Mt5V!& zuU44&1d)~{)g}8E62XL(@VjC<@26bSux$~6sdK!(DjQ(Qb@@&t@e)UIw37%B4~w|p zZ3mt;=yvcDU&?7pZ&~8f;7W)}1BDf5=>fh6JBS(JUK?g1uC{$wtMLFI2-DPXnF31> z>qev#TQw@QrbUM-WB*zuT`^@d@0m``Y2>6w#jL0FoQ9{0Bs|8WhiBM6T3aEXru5!( zBqKT}K2TUInjg>&vQer*qx?7=_Jpw>RSz+&m2`b4b=mI*zRRbr%vfE`!pI;XQ&sEz#sv# z)f<^T+kYq1;P5KTjcv6$Ef@E|eC)x~(~a^UEdW4PjL5ayY9J?!aOANR<@c2WH&W`!2RY z@rq$V8%>QWEfEI2x$7ppW8z^19=hQlb%mK&=;Z)*%Gv~V+J7&L1*v4%^ zNq%i*!**8d*$o@EqCb<1=np&VWb^9=sn0X5uz)Hx#sKFJ3NtwT(~0xED)TL?%^&&6 z)`PU1FX`3Roq9>{xAVNMz+RSI95B>i+;h!}rsiBmWE>c&32yNE?7_TG+;59(>=w4d z6N8wX;syxX03f2aRq<>j{aTq6_{S3{A&V_g#vAbTYOAHs5K~M`Pcjv5%%4<=6A=Ic zUk>TFZ<~LaOMjzcu-^dyzCPOUA69%k1XuN6NEF|+5r%Lfgt`Wq0D4kseg8(@--ZkO3SZc2=%%FS$}6X;nGQjb zx90Z-+vp)$xqGqv9&w;kmUrBqnR>}Xql~leXrqGgf2@glJh?yE-o_`11te3DLF0>Qj*qs#i>0SsqDFUdpLVU<4B*PvC5+ve7!boFAG=(|GaLJ6Q-ll5J zQiY`Tr+PE#el09!MCZ(IWYn$8z$MkERdZ*$g!S7}j7zL2_qOTKxeufW#?c*VLQMTbC%&NMghy zqoAUpV~E4V!WJ(I4LZM1sIZ%YEzfVBiZs1PAeu0KWE(8DIJ? zL~uA!FdC9z42*?jNP$$a+cTz}bKV)FI7^({)h?51WQPM4%7R|HqHdbqY4N7WoH-GE zbzAd5gkamgbQ_u?sJ0!s+VNHGt#cwoZ%==FXLlFoYHP<_{q3Og0(hgZ_B4bW{ZsHC z;I7bf8W6P4BtRg1ES-*tf>GBVEW(CF?IjEV2%;xM^#tnj7|@^2fUDiLQ|i^V0Zmfo mN|&OR0Ek1Qjn%bSn*Z6;G&u^!3NOINqr`1EjasAlCOrVeD)Gkv literal 0 HcmV?d00001 diff --git a/katex/fonts/KaTeX_SansSerif-Regular.ttf b/katex/fonts/KaTeX_SansSerif-Regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..3be73ce17f8e383d115aafd096b80310e5bbd537 GIT binary patch literal 28708 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 literal 0 HcmV?d00001 diff --git a/katex/fonts/KaTeX_SansSerif-Regular.woff b/katex/fonts/KaTeX_SansSerif-Regular.woff new file mode 100644 index 0000000000000000000000000000000000000000..ec283f418b58a52b4d635333e918de46dc22b2a5 GIT binary patch literal 15712 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 YP67_(0D?1a|Np+4fdD|?-vEUF12rWvIsgCw literal 0 HcmV?d00001 diff --git a/katex/fonts/KaTeX_SansSerif-Regular.woff2 b/katex/fonts/KaTeX_SansSerif-Regular.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..e46094fba16105fc781298a1bb73b7e9dcf205c1 GIT binary patch literal 13300 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 z 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 literal 0 HcmV?d00001 diff --git a/katex/fonts/KaTeX_Size1-Regular.ttf b/katex/fonts/KaTeX_Size1-Regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..f0aff83efb32936ad31565206b00af3c90d6fb2a GIT binary patch literal 11932 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 literal 0 HcmV?d00001 diff --git a/katex/fonts/KaTeX_Size1-Regular.woff b/katex/fonts/KaTeX_Size1-Regular.woff new file mode 100644 index 0000000000000000000000000000000000000000..0358ee4a3eb557fc65845240c3547b9a6bc17a7c GIT binary patch literal 6300 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 literal 0 HcmV?d00001 diff --git a/katex/fonts/KaTeX_Size2-Regular.ttf b/katex/fonts/KaTeX_Size2-Regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..4f72f167953526b7d33051bd8cf0c2cfcbab5718 GIT binary patch literal 11080 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 literal 0 HcmV?d00001 diff --git a/katex/fonts/KaTeX_Size2-Regular.woff b/katex/fonts/KaTeX_Size2-Regular.woff new file mode 100644 index 0000000000000000000000000000000000000000..8a053d23ae37b5b78b68ee2fa436e4c3600eacd9 GIT binary patch literal 6012 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 literal 0 HcmV?d00001 diff --git a/katex/fonts/KaTeX_Size2-Regular.woff2 b/katex/fonts/KaTeX_Size2-Regular.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..181d9625a796eea012f0ebe09f720ed3eaaeab39 GIT binary patch literal 5080 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 literal 0 HcmV?d00001 diff --git a/katex/fonts/KaTeX_Size3-Regular.ttf b/katex/fonts/KaTeX_Size3-Regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..56d2dc6c5d2d2d620951db50de45424415b704f9 GIT binary patch literal 7028 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

    WhCy=tf`#CsnM?OSyFBThPv3+g2 z$hX(jfhygP-mYwOkE3_ya8|(9t?zDffG&1!UOmx1ABW3c>Tc|r^~i`l|CIdY11#pD zLH??Z)d$Hi$ZC2$ZItEKhVs5w@-d281ppgK4&F7^Pa4L;_r~DJljx9EddEIrj&sgvgtH32-gwHd4$x6pVS(R zMnxc3Mx(-WGcyn67lhLu%26BUUrIp2jGxOuv6*cv9y_qic@Qe`1pL{ z&$D`6i;11J;QfSgN%1en1w@!;lsoO1Nug*VGL{hzN_L)9<@(e}EicF#c9vAAizy5B z-pbS#$kgU$!sSuMwP5JKz8&(z2@YR&;dg?&!Ch9sjdUQf=!s!=!gZB7J!lwIf!&*Z zbI>0;>gH(VydK&3fT4u`MS-_8cYuAFq$V5xo8;c;P^to{#<>@Sxc^z7E~$~1p_}f4 z638dj8CjwE-TAg|W`s5T4erbnRfT1m6&Yqm#&!fn-r6yJ|ggmUo`AC;B>VrpIQ$b#p zZecyj!p?5V=RnR&{d!etyF;$q);-i|Ch}oU2z&yiIej@V(RFndC^K($e3Piwfx#oc(!; zF7n^xgH=L5_aIR#HASPj4SopgTF9ie(wT-_u&CFIC#L$}>|O0U22qD?WjRLE^P(N5 zGW@0YI!XlHv(px63{5O@W?KU+BbJ@+sZ%j?$&ZHk>Id~2S6hnOCV8aYw7fpb0s2g< z-iG|}?llKR;ciD?I@&urXy>~5G*U!d3aLsW@jA6gfy8J!^Pi~ciYfOVw5ZZebpPz| zaP2&Mi^o_iOUKE!g8%Q~2CDMOoDToZ(H5q*orNcRzek$r-u~>o-1{zKlkJ5ME}{oM zO3kb9JP7WF?2sK6M;s3vD*9+Jo^Lv(4V~0mO@12s-sU92Kq5VNBWxwV9niDy$5ny& xZROY#e@lYayMBP|e5owoW7w*jjPu!rX;eW`q4P1JDUsDBu51th!eRmP{{hY9t_T1C literal 0 HcmV?d00001 diff --git a/katex/fonts/KaTeX_Size4-Regular.woff2 b/katex/fonts/KaTeX_Size4-Regular.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..a4e810da5e31a364ad7ba2ff229562f97ae0f49f GIT binary patch literal 4720 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 literal 0 HcmV?d00001 diff --git a/katex/fonts/KaTeX_Typewriter-Regular.woff b/katex/fonts/KaTeX_Typewriter-Regular.woff new file mode 100644 index 0000000000000000000000000000000000000000..c66d149d5e2a4a5e98d696ceaded67669edc6579 GIT binary patch literal 19700 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 .newline { + display: block; +} +.katex .base { + position: relative; + display: inline-block; + white-space: nowrap; + width: min-content; +} +.katex .strut { + display: inline-block; +} +.katex .textbf { + font-weight: bold; +} +.katex .textit { + font-style: italic; +} +.katex .textrm { + font-family: KaTeX_Main; +} +.katex .textsf { + font-family: KaTeX_SansSerif; +} +.katex .texttt { + font-family: KaTeX_Typewriter; +} +.katex .mathnormal { + font-family: KaTeX_Math; + font-style: italic; +} +.katex .mathit { + font-family: KaTeX_Main; + font-style: italic; +} +.katex .mathrm { + font-style: normal; +} +.katex .mathbf { + font-family: KaTeX_Main; + font-weight: bold; +} +.katex .boldsymbol { + font-family: KaTeX_Math; + font-weight: bold; + font-style: italic; +} +.katex .amsrm { + font-family: KaTeX_AMS; +} +.katex .mathbb, +.katex .textbb { + font-family: KaTeX_AMS; +} +.katex .mathcal { + font-family: KaTeX_Caligraphic; +} +.katex .mathfrak, +.katex .textfrak { + font-family: KaTeX_Fraktur; +} +.katex .mathtt { + font-family: KaTeX_Typewriter; +} +.katex .mathscr, +.katex .textscr { + font-family: KaTeX_Script; +} +.katex .mathsf, +.katex .textsf { + font-family: KaTeX_SansSerif; +} +.katex .mathboldsf, +.katex .textboldsf { + font-family: KaTeX_SansSerif; + font-weight: bold; +} +.katex .mathitsf, +.katex .textitsf { + font-family: KaTeX_SansSerif; + font-style: italic; +} +.katex .mainrm { + font-family: KaTeX_Main; + font-style: normal; +} +.katex .vlist-t { + display: inline-table; + table-layout: fixed; + border-collapse: collapse; +} +.katex .vlist-r { + display: table-row; +} +.katex .vlist { + display: table-cell; + vertical-align: bottom; + position: relative; +} +.katex .vlist > span { + display: block; + height: 0; + position: relative; +} +.katex .vlist > span > span { + display: inline-block; +} +.katex .vlist > span > .pstrut { + overflow: hidden; + width: 0; +} +.katex .vlist-t2 { + margin-right: -2px; +} +.katex .vlist-s { + display: table-cell; + vertical-align: bottom; + font-size: 1px; + width: 2px; + min-width: 2px; +} +.katex .vbox { + display: -ms-inline-flexbox; + display: inline-flex; + -ms-flex-direction: column; + flex-direction: column; + align-items: baseline; +} +.katex .hbox { + display: -ms-inline-flexbox; + display: inline-flex; + -ms-flex-direction: row; + flex-direction: row; + width: 100%; +} +.katex .thinbox { + display: inline-flex; + flex-direction: row; + width: 0; + max-width: 0; +} +.katex .msupsub { + text-align: left; +} +.katex .mfrac > span > span { + text-align: center; +} +.katex .mfrac .frac-line { + display: inline-block; + width: 100%; + border-bottom-style: solid; +} +.katex .mfrac .frac-line, +.katex .overline .overline-line, +.katex .underline .underline-line, +.katex .hline, +.katex .hdashline, +.katex .rule { + min-height: 1px; +} +.katex .mspace { + display: inline-block; +} +.katex .llap, +.katex .rlap, +.katex .clap { + width: 0; + position: relative; +} +.katex .llap > .inner, +.katex .rlap > .inner, +.katex .clap > .inner { + position: absolute; +} +.katex .llap > .fix, +.katex .rlap > .fix, +.katex .clap > .fix { + display: inline-block; +} +.katex .llap > .inner { + right: 0; +} +.katex .rlap > .inner, +.katex .clap > .inner { + left: 0; +} +.katex .clap > .inner > span { + margin-left: -50%; + margin-right: 50%; +} +.katex .rule { + display: inline-block; + border: solid 0; + position: relative; +} +.katex .overline .overline-line, +.katex .underline .underline-line, +.katex .hline { + display: inline-block; + width: 100%; + border-bottom-style: solid; +} +.katex .hdashline { + display: inline-block; + width: 100%; + border-bottom-style: dashed; +} +.katex .sqrt > .root { + margin-left: 0.27777778em; + margin-right: -0.55555556em; +} +.katex .sizing.reset-size1.size1, +.katex .fontsize-ensurer.reset-size1.size1 { + font-size: 1em; +} +.katex .sizing.reset-size1.size2, +.katex .fontsize-ensurer.reset-size1.size2 { + font-size: 1.2em; +} +.katex .sizing.reset-size1.size3, +.katex .fontsize-ensurer.reset-size1.size3 { + font-size: 1.4em; +} +.katex .sizing.reset-size1.size4, +.katex .fontsize-ensurer.reset-size1.size4 { + font-size: 1.6em; +} +.katex .sizing.reset-size1.size5, +.katex .fontsize-ensurer.reset-size1.size5 { + font-size: 1.8em; +} +.katex .sizing.reset-size1.size6, +.katex .fontsize-ensurer.reset-size1.size6 { + font-size: 2em; +} +.katex .sizing.reset-size1.size7, +.katex .fontsize-ensurer.reset-size1.size7 { + font-size: 2.4em; +} +.katex .sizing.reset-size1.size8, +.katex .fontsize-ensurer.reset-size1.size8 { + font-size: 2.88em; +} +.katex .sizing.reset-size1.size9, +.katex .fontsize-ensurer.reset-size1.size9 { + font-size: 3.456em; +} +.katex .sizing.reset-size1.size10, +.katex .fontsize-ensurer.reset-size1.size10 { + font-size: 4.148em; +} +.katex .sizing.reset-size1.size11, +.katex .fontsize-ensurer.reset-size1.size11 { + font-size: 4.976em; +} +.katex .sizing.reset-size2.size1, +.katex .fontsize-ensurer.reset-size2.size1 { + font-size: 0.83333333em; +} +.katex .sizing.reset-size2.size2, +.katex .fontsize-ensurer.reset-size2.size2 { + font-size: 1em; +} +.katex .sizing.reset-size2.size3, +.katex .fontsize-ensurer.reset-size2.size3 { + font-size: 1.16666667em; +} +.katex .sizing.reset-size2.size4, +.katex .fontsize-ensurer.reset-size2.size4 { + font-size: 1.33333333em; +} +.katex .sizing.reset-size2.size5, +.katex .fontsize-ensurer.reset-size2.size5 { + font-size: 1.5em; +} +.katex .sizing.reset-size2.size6, +.katex .fontsize-ensurer.reset-size2.size6 { + font-size: 1.66666667em; +} +.katex .sizing.reset-size2.size7, +.katex .fontsize-ensurer.reset-size2.size7 { + font-size: 2em; +} +.katex .sizing.reset-size2.size8, +.katex .fontsize-ensurer.reset-size2.size8 { + font-size: 2.4em; +} +.katex .sizing.reset-size2.size9, +.katex .fontsize-ensurer.reset-size2.size9 { + font-size: 2.88em; +} +.katex .sizing.reset-size2.size10, +.katex .fontsize-ensurer.reset-size2.size10 { + font-size: 3.45666667em; +} +.katex .sizing.reset-size2.size11, +.katex .fontsize-ensurer.reset-size2.size11 { + font-size: 4.14666667em; +} +.katex .sizing.reset-size3.size1, +.katex .fontsize-ensurer.reset-size3.size1 { + font-size: 0.71428571em; +} +.katex .sizing.reset-size3.size2, +.katex .fontsize-ensurer.reset-size3.size2 { + font-size: 0.85714286em; +} +.katex .sizing.reset-size3.size3, +.katex .fontsize-ensurer.reset-size3.size3 { + font-size: 1em; +} +.katex .sizing.reset-size3.size4, +.katex .fontsize-ensurer.reset-size3.size4 { + font-size: 1.14285714em; +} +.katex .sizing.reset-size3.size5, +.katex .fontsize-ensurer.reset-size3.size5 { + font-size: 1.28571429em; +} +.katex .sizing.reset-size3.size6, +.katex .fontsize-ensurer.reset-size3.size6 { + font-size: 1.42857143em; +} +.katex .sizing.reset-size3.size7, +.katex .fontsize-ensurer.reset-size3.size7 { + font-size: 1.71428571em; +} +.katex .sizing.reset-size3.size8, +.katex .fontsize-ensurer.reset-size3.size8 { + font-size: 2.05714286em; +} +.katex .sizing.reset-size3.size9, +.katex .fontsize-ensurer.reset-size3.size9 { + font-size: 2.46857143em; +} +.katex .sizing.reset-size3.size10, +.katex .fontsize-ensurer.reset-size3.size10 { + font-size: 2.96285714em; +} +.katex .sizing.reset-size3.size11, +.katex .fontsize-ensurer.reset-size3.size11 { + font-size: 3.55428571em; +} +.katex .sizing.reset-size4.size1, +.katex .fontsize-ensurer.reset-size4.size1 { + font-size: 0.625em; +} +.katex .sizing.reset-size4.size2, +.katex .fontsize-ensurer.reset-size4.size2 { + font-size: 0.75em; +} +.katex .sizing.reset-size4.size3, +.katex .fontsize-ensurer.reset-size4.size3 { + font-size: 0.875em; +} +.katex .sizing.reset-size4.size4, +.katex .fontsize-ensurer.reset-size4.size4 { + font-size: 1em; +} +.katex .sizing.reset-size4.size5, +.katex .fontsize-ensurer.reset-size4.size5 { + font-size: 1.125em; +} +.katex .sizing.reset-size4.size6, +.katex .fontsize-ensurer.reset-size4.size6 { + font-size: 1.25em; +} +.katex .sizing.reset-size4.size7, +.katex .fontsize-ensurer.reset-size4.size7 { + font-size: 1.5em; +} +.katex .sizing.reset-size4.size8, +.katex .fontsize-ensurer.reset-size4.size8 { + font-size: 1.8em; +} +.katex .sizing.reset-size4.size9, +.katex .fontsize-ensurer.reset-size4.size9 { + font-size: 2.16em; +} +.katex .sizing.reset-size4.size10, +.katex .fontsize-ensurer.reset-size4.size10 { + font-size: 2.5925em; +} +.katex .sizing.reset-size4.size11, +.katex .fontsize-ensurer.reset-size4.size11 { + font-size: 3.11em; +} +.katex .sizing.reset-size5.size1, +.katex .fontsize-ensurer.reset-size5.size1 { + font-size: 0.55555556em; +} +.katex .sizing.reset-size5.size2, +.katex .fontsize-ensurer.reset-size5.size2 { + font-size: 0.66666667em; +} +.katex .sizing.reset-size5.size3, +.katex .fontsize-ensurer.reset-size5.size3 { + font-size: 0.77777778em; +} +.katex .sizing.reset-size5.size4, +.katex .fontsize-ensurer.reset-size5.size4 { + font-size: 0.88888889em; +} +.katex .sizing.reset-size5.size5, +.katex .fontsize-ensurer.reset-size5.size5 { + font-size: 1em; +} +.katex .sizing.reset-size5.size6, +.katex .fontsize-ensurer.reset-size5.size6 { + font-size: 1.11111111em; +} +.katex .sizing.reset-size5.size7, +.katex .fontsize-ensurer.reset-size5.size7 { + font-size: 1.33333333em; +} +.katex .sizing.reset-size5.size8, +.katex .fontsize-ensurer.reset-size5.size8 { + font-size: 1.6em; +} +.katex .sizing.reset-size5.size9, +.katex .fontsize-ensurer.reset-size5.size9 { + font-size: 1.92em; +} +.katex .sizing.reset-size5.size10, +.katex .fontsize-ensurer.reset-size5.size10 { + font-size: 2.30444444em; +} +.katex .sizing.reset-size5.size11, +.katex .fontsize-ensurer.reset-size5.size11 { + font-size: 2.76444444em; +} +.katex .sizing.reset-size6.size1, +.katex .fontsize-ensurer.reset-size6.size1 { + font-size: 0.5em; +} +.katex .sizing.reset-size6.size2, +.katex .fontsize-ensurer.reset-size6.size2 { + font-size: 0.6em; +} +.katex .sizing.reset-size6.size3, +.katex .fontsize-ensurer.reset-size6.size3 { + font-size: 0.7em; +} +.katex .sizing.reset-size6.size4, +.katex .fontsize-ensurer.reset-size6.size4 { + font-size: 0.8em; +} +.katex .sizing.reset-size6.size5, +.katex .fontsize-ensurer.reset-size6.size5 { + font-size: 0.9em; +} +.katex .sizing.reset-size6.size6, +.katex .fontsize-ensurer.reset-size6.size6 { + font-size: 1em; +} +.katex .sizing.reset-size6.size7, +.katex .fontsize-ensurer.reset-size6.size7 { + font-size: 1.2em; +} +.katex .sizing.reset-size6.size8, +.katex .fontsize-ensurer.reset-size6.size8 { + font-size: 1.44em; +} +.katex .sizing.reset-size6.size9, +.katex .fontsize-ensurer.reset-size6.size9 { + font-size: 1.728em; +} +.katex .sizing.reset-size6.size10, +.katex .fontsize-ensurer.reset-size6.size10 { + font-size: 2.074em; +} +.katex .sizing.reset-size6.size11, +.katex .fontsize-ensurer.reset-size6.size11 { + font-size: 2.488em; +} +.katex .sizing.reset-size7.size1, +.katex .fontsize-ensurer.reset-size7.size1 { + font-size: 0.41666667em; +} +.katex .sizing.reset-size7.size2, +.katex .fontsize-ensurer.reset-size7.size2 { + font-size: 0.5em; +} +.katex .sizing.reset-size7.size3, +.katex .fontsize-ensurer.reset-size7.size3 { + font-size: 0.58333333em; +} +.katex .sizing.reset-size7.size4, +.katex .fontsize-ensurer.reset-size7.size4 { + font-size: 0.66666667em; +} +.katex .sizing.reset-size7.size5, +.katex .fontsize-ensurer.reset-size7.size5 { + font-size: 0.75em; +} +.katex .sizing.reset-size7.size6, +.katex .fontsize-ensurer.reset-size7.size6 { + font-size: 0.83333333em; +} +.katex .sizing.reset-size7.size7, +.katex .fontsize-ensurer.reset-size7.size7 { + font-size: 1em; +} +.katex .sizing.reset-size7.size8, +.katex .fontsize-ensurer.reset-size7.size8 { + font-size: 1.2em; +} +.katex .sizing.reset-size7.size9, +.katex .fontsize-ensurer.reset-size7.size9 { + font-size: 1.44em; +} +.katex .sizing.reset-size7.size10, +.katex .fontsize-ensurer.reset-size7.size10 { + font-size: 1.72833333em; +} +.katex .sizing.reset-size7.size11, +.katex .fontsize-ensurer.reset-size7.size11 { + font-size: 2.07333333em; +} +.katex .sizing.reset-size8.size1, +.katex .fontsize-ensurer.reset-size8.size1 { + font-size: 0.34722222em; +} +.katex .sizing.reset-size8.size2, +.katex .fontsize-ensurer.reset-size8.size2 { + font-size: 0.41666667em; +} +.katex .sizing.reset-size8.size3, +.katex .fontsize-ensurer.reset-size8.size3 { + font-size: 0.48611111em; +} +.katex .sizing.reset-size8.size4, +.katex .fontsize-ensurer.reset-size8.size4 { + font-size: 0.55555556em; +} +.katex .sizing.reset-size8.size5, +.katex .fontsize-ensurer.reset-size8.size5 { + font-size: 0.625em; +} +.katex .sizing.reset-size8.size6, +.katex .fontsize-ensurer.reset-size8.size6 { + font-size: 0.69444444em; +} +.katex .sizing.reset-size8.size7, +.katex .fontsize-ensurer.reset-size8.size7 { + font-size: 0.83333333em; +} +.katex .sizing.reset-size8.size8, +.katex .fontsize-ensurer.reset-size8.size8 { + font-size: 1em; +} +.katex .sizing.reset-size8.size9, +.katex .fontsize-ensurer.reset-size8.size9 { + font-size: 1.2em; +} +.katex .sizing.reset-size8.size10, +.katex .fontsize-ensurer.reset-size8.size10 { + font-size: 1.44027778em; +} +.katex .sizing.reset-size8.size11, +.katex .fontsize-ensurer.reset-size8.size11 { + font-size: 1.72777778em; +} +.katex .sizing.reset-size9.size1, +.katex .fontsize-ensurer.reset-size9.size1 { + font-size: 0.28935185em; +} +.katex .sizing.reset-size9.size2, +.katex .fontsize-ensurer.reset-size9.size2 { + font-size: 0.34722222em; +} +.katex .sizing.reset-size9.size3, +.katex .fontsize-ensurer.reset-size9.size3 { + font-size: 0.40509259em; +} +.katex .sizing.reset-size9.size4, +.katex .fontsize-ensurer.reset-size9.size4 { + font-size: 0.46296296em; +} +.katex .sizing.reset-size9.size5, +.katex .fontsize-ensurer.reset-size9.size5 { + font-size: 0.52083333em; +} +.katex .sizing.reset-size9.size6, +.katex .fontsize-ensurer.reset-size9.size6 { + font-size: 0.5787037em; +} +.katex .sizing.reset-size9.size7, +.katex .fontsize-ensurer.reset-size9.size7 { + font-size: 0.69444444em; +} +.katex .sizing.reset-size9.size8, +.katex .fontsize-ensurer.reset-size9.size8 { + font-size: 0.83333333em; +} +.katex .sizing.reset-size9.size9, +.katex .fontsize-ensurer.reset-size9.size9 { + font-size: 1em; +} +.katex .sizing.reset-size9.size10, +.katex .fontsize-ensurer.reset-size9.size10 { + font-size: 1.20023148em; +} +.katex .sizing.reset-size9.size11, +.katex .fontsize-ensurer.reset-size9.size11 { + font-size: 1.43981481em; +} +.katex .sizing.reset-size10.size1, +.katex .fontsize-ensurer.reset-size10.size1 { + font-size: 0.24108004em; +} +.katex .sizing.reset-size10.size2, +.katex .fontsize-ensurer.reset-size10.size2 { + font-size: 0.28929605em; +} +.katex .sizing.reset-size10.size3, +.katex .fontsize-ensurer.reset-size10.size3 { + font-size: 0.33751205em; +} +.katex .sizing.reset-size10.size4, +.katex .fontsize-ensurer.reset-size10.size4 { + font-size: 0.38572806em; +} +.katex .sizing.reset-size10.size5, +.katex .fontsize-ensurer.reset-size10.size5 { + font-size: 0.43394407em; +} +.katex .sizing.reset-size10.size6, +.katex .fontsize-ensurer.reset-size10.size6 { + font-size: 0.48216008em; +} +.katex .sizing.reset-size10.size7, +.katex .fontsize-ensurer.reset-size10.size7 { + font-size: 0.57859209em; +} +.katex .sizing.reset-size10.size8, +.katex .fontsize-ensurer.reset-size10.size8 { + font-size: 0.69431051em; +} +.katex .sizing.reset-size10.size9, +.katex .fontsize-ensurer.reset-size10.size9 { + font-size: 0.83317261em; +} +.katex .sizing.reset-size10.size10, +.katex .fontsize-ensurer.reset-size10.size10 { + font-size: 1em; +} +.katex .sizing.reset-size10.size11, +.katex .fontsize-ensurer.reset-size10.size11 { + font-size: 1.19961427em; +} +.katex .sizing.reset-size11.size1, +.katex .fontsize-ensurer.reset-size11.size1 { + font-size: 0.20096463em; +} +.katex .sizing.reset-size11.size2, +.katex .fontsize-ensurer.reset-size11.size2 { + font-size: 0.24115756em; +} +.katex .sizing.reset-size11.size3, +.katex .fontsize-ensurer.reset-size11.size3 { + font-size: 0.28135048em; +} +.katex .sizing.reset-size11.size4, +.katex .fontsize-ensurer.reset-size11.size4 { + font-size: 0.32154341em; +} +.katex .sizing.reset-size11.size5, +.katex .fontsize-ensurer.reset-size11.size5 { + font-size: 0.36173633em; +} +.katex .sizing.reset-size11.size6, +.katex .fontsize-ensurer.reset-size11.size6 { + font-size: 0.40192926em; +} +.katex .sizing.reset-size11.size7, +.katex .fontsize-ensurer.reset-size11.size7 { + font-size: 0.48231511em; +} +.katex .sizing.reset-size11.size8, +.katex .fontsize-ensurer.reset-size11.size8 { + font-size: 0.57877814em; +} +.katex .sizing.reset-size11.size9, +.katex .fontsize-ensurer.reset-size11.size9 { + font-size: 0.69453376em; +} +.katex .sizing.reset-size11.size10, +.katex .fontsize-ensurer.reset-size11.size10 { + font-size: 0.83360129em; +} +.katex .sizing.reset-size11.size11, +.katex .fontsize-ensurer.reset-size11.size11 { + font-size: 1em; +} +.katex .delimsizing.size1 { + font-family: KaTeX_Size1; +} +.katex .delimsizing.size2 { + font-family: KaTeX_Size2; +} +.katex .delimsizing.size3 { + font-family: KaTeX_Size3; +} +.katex .delimsizing.size4 { + font-family: KaTeX_Size4; +} +.katex .delimsizing.mult .delim-size1 > span { + font-family: KaTeX_Size1; +} +.katex .delimsizing.mult .delim-size4 > span { + font-family: KaTeX_Size4; +} +.katex .nulldelimiter { + display: inline-block; + width: 0.12em; +} +.katex .delimcenter { + position: relative; +} +.katex .op-symbol { + position: relative; +} +.katex .op-symbol.small-op { + font-family: KaTeX_Size1; +} +.katex .op-symbol.large-op { + font-family: KaTeX_Size2; +} +.katex .op-limits > .vlist-t { + text-align: center; +} +.katex .accent > .vlist-t { + text-align: center; +} +.katex .accent .accent-body { + position: relative; +} +.katex .accent .accent-body:not(.accent-full) { + width: 0; +} +.katex .overlay { + display: block; +} +.katex .mtable .vertical-separator { + display: inline-block; + min-width: 1px; +} +.katex .mtable .arraycolsep { + display: inline-block; +} +.katex .mtable .col-align-c > .vlist-t { + text-align: center; +} +.katex .mtable .col-align-l > .vlist-t { + text-align: left; +} +.katex .mtable .col-align-r > .vlist-t { + text-align: right; +} +.katex .svg-align { + text-align: left; +} +.katex svg { + display: block; + position: absolute; + width: 100%; + height: inherit; + fill: currentColor; + stroke: currentColor; + fill-rule: nonzero; + fill-opacity: 1; + stroke-width: 1; + stroke-linecap: butt; + stroke-linejoin: miter; + stroke-miterlimit: 4; + stroke-dasharray: none; + stroke-dashoffset: 0; + stroke-opacity: 1; +} +.katex svg path { + stroke: none; +} +.katex img { + border-style: none; + min-width: 0; + min-height: 0; + max-width: none; + max-height: none; +} +.katex .stretchy { + width: 100%; + display: block; + position: relative; + overflow: hidden; +} +.katex .stretchy::before, +.katex .stretchy::after { + content: ""; +} +.katex .hide-tail { + width: 100%; + position: relative; + overflow: hidden; +} +.katex .halfarrow-left { + position: absolute; + left: 0; + width: 50.2%; + overflow: hidden; +} +.katex .halfarrow-right { + position: absolute; + right: 0; + width: 50.2%; + overflow: hidden; +} +.katex .brace-left { + position: absolute; + left: 0; + width: 25.1%; + overflow: hidden; +} +.katex .brace-center { + position: absolute; + left: 25%; + width: 50%; + overflow: hidden; +} +.katex .brace-right { + position: absolute; + right: 0; + width: 25.1%; + overflow: hidden; +} +.katex .x-arrow-pad { + padding: 0 0.5em; +} +.katex .x-arrow, +.katex .mover, +.katex .munder { + text-align: center; +} +.katex .boxpad { + padding: 0 0.3em 0 0.3em; +} +.katex .fbox, +.katex .fcolorbox { + box-sizing: border-box; + border: 0.04em solid; +} +.katex .cancel-pad { + padding: 0 0.2em 0 0.2em; +} +.katex .cancel-lap { + margin-left: -0.2em; + margin-right: -0.2em; +} +.katex .sout { + border-bottom-style: solid; + border-bottom-width: 0.08em; +} +.katex-display { + display: block; + margin: 1em 0; + text-align: center; +} +.katex-display > .katex { + display: block; + text-align: center; + white-space: nowrap; +} +.katex-display > .katex > .katex-html { + display: block; + position: relative; +} +.katex-display > .katex > .katex-html > .tag { + position: absolute; + right: 0; +} +.katex-display.leqno > .katex > .katex-html > .tag { + left: 0; + right: auto; +} +.katex-display.fleqn > .katex { + text-align: left; + padding-left: 2em; +} + diff --git a/katex/katex.js b/katex/katex.js new file mode 100644 index 000000000..37fb0fa89 --- /dev/null +++ b/katex/katex.js @@ -0,0 +1,17308 @@ +(function webpackUniversalModuleDefinition(root, factory) { + if(typeof exports === 'object' && typeof module === 'object') + module.exports = factory(); + else if(typeof define === 'function' && define.amd) + define([], factory); + else if(typeof exports === 'object') + exports["katex"] = factory(); + else + root["katex"] = factory(); +})((typeof self !== 'undefined' ? self : this), function() { +return /******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) { +/******/ return installedModules[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); +/******/ } +/******/ }; +/******/ +/******/ // define __esModule on exports +/******/ __webpack_require__.r = function(exports) { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ +/******/ // create a fake namespace object +/******/ // mode & 1: value is a module id, require it +/******/ // mode & 2: merge all properties of value into the ns +/******/ // mode & 4: return value when already ns object +/******/ // mode & 8|1: behave like require +/******/ __webpack_require__.t = function(value, mode) { +/******/ if(mode & 1) value = __webpack_require__(value); +/******/ if(mode & 8) return value; +/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; +/******/ var ns = Object.create(null); +/******/ __webpack_require__.r(ns); +/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); +/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); +/******/ return ns; +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = 1); +/******/ }) +/************************************************************************/ +/******/ ([ +/* 0 */ +/***/ (function(module, exports, __webpack_require__) { + +// extracted by mini-css-extract-plugin + +/***/ }), +/* 1 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + +// EXTERNAL MODULE: ./src/katex.less +var katex = __webpack_require__(0); + +// CONCATENATED MODULE: ./src/SourceLocation.js +/** + * Lexing or parsing positional information for error reporting. + * This object is immutable. + */ +var SourceLocation = +/*#__PURE__*/ +function () { + // The + prefix indicates that these fields aren't writeable + // Lexer holding the input string. + // Start offset, zero-based inclusive. + // End offset, zero-based exclusive. + function SourceLocation(lexer, start, end) { + this.lexer = void 0; + this.start = void 0; + this.end = void 0; + this.lexer = lexer; + this.start = start; + this.end = end; + } + /** + * Merges two `SourceLocation`s from location providers, given they are + * provided in order of appearance. + * - Returns the first one's location if only the first is provided. + * - Returns a merged range of the first and the last if both are provided + * and their lexers match. + * - Otherwise, returns null. + */ + + + SourceLocation.range = function range(first, second) { + if (!second) { + return first && first.loc; + } else if (!first || !first.loc || !second.loc || first.loc.lexer !== second.loc.lexer) { + return null; + } else { + return new SourceLocation(first.loc.lexer, first.loc.start, second.loc.end); + } + }; + + return SourceLocation; +}(); + + +// CONCATENATED MODULE: ./src/Token.js + +/** + * Interface required to break circular dependency between Token, Lexer, and + * ParseError. + */ + +/** + * The resulting token returned from `lex`. + * + * It consists of the token text plus some position information. + * The position information is essentially a range in an input string, + * but instead of referencing the bare input string, we refer to the lexer. + * That way it is possible to attach extra metadata to the input string, + * like for example a file name or similar. + * + * The position information is optional, so it is OK to construct synthetic + * tokens if appropriate. Not providing available position information may + * lead to degraded error reporting, though. + */ +var Token_Token = +/*#__PURE__*/ +function () { + // don't expand the token + // used in \noexpand + function Token(text, // the text of this token + loc) { + this.text = void 0; + this.loc = void 0; + this.noexpand = void 0; + this.treatAsRelax = void 0; + this.text = text; + this.loc = loc; + } + /** + * Given a pair of tokens (this and endToken), compute a `Token` encompassing + * the whole input range enclosed by these two. + */ + + + var _proto = Token.prototype; + + _proto.range = function range(endToken, // last token of the range, inclusive + text) // the text of the newly constructed token + { + return new Token(text, SourceLocation.range(this, endToken)); + }; + + return Token; +}(); +// CONCATENATED MODULE: ./src/ParseError.js + + +/** + * This is the ParseError class, which is the main error thrown by KaTeX + * functions when something has gone wrong. This is used to distinguish internal + * errors from errors in the expression that the user provided. + * + * If possible, a caller should provide a Token or ParseNode with information + * about where in the source string the problem occurred. + */ +var ParseError = // Error position based on passed-in Token or ParseNode. +function ParseError(message, // The error message +token) // An object providing position information +{ + this.position = void 0; + var error = "KaTeX parse error: " + message; + var start; + var loc = token && token.loc; + + if (loc && loc.start <= loc.end) { + // If we have the input and a position, make the error a bit fancier + // Get the input + var input = loc.lexer.input; // Prepend some information + + start = loc.start; + var end = loc.end; + + if (start === input.length) { + error += " at end of input: "; + } else { + error += " at position " + (start + 1) + ": "; + } // Underline token in question using combining underscores + + + var underlined = input.slice(start, end).replace(/[^]/g, "$&\u0332"); // Extract some context from the input and add it to the error + + var left; + + if (start > 15) { + left = "…" + input.slice(start - 15, start); + } else { + left = input.slice(0, start); + } + + var right; + + if (end + 15 < input.length) { + right = input.slice(end, end + 15) + "…"; + } else { + right = input.slice(end); + } + + error += left + underlined + right; + } // Some hackery to make ParseError a prototype of Error + // See http://stackoverflow.com/a/8460753 + + + var self = new Error(error); + self.name = "ParseError"; // $FlowFixMe + + self.__proto__ = ParseError.prototype; // $FlowFixMe + + self.position = start; + return self; +}; // $FlowFixMe More hackery + + +ParseError.prototype.__proto__ = Error.prototype; +/* harmony default export */ var src_ParseError = (ParseError); +// CONCATENATED MODULE: ./src/utils.js +/** + * This file contains a list of utility functions which are useful in other + * files. + */ + +/** + * Return whether an element is contained in a list + */ +var contains = function contains(list, elem) { + return list.indexOf(elem) !== -1; +}; +/** + * Provide a default value if a setting is undefined + * NOTE: Couldn't use `T` as the output type due to facebook/flow#5022. + */ + + +var deflt = function deflt(setting, defaultIfUndefined) { + return setting === undefined ? defaultIfUndefined : setting; +}; // hyphenate and escape adapted from Facebook's React under Apache 2 license + + +var uppercase = /([A-Z])/g; + +var hyphenate = function hyphenate(str) { + return str.replace(uppercase, "-$1").toLowerCase(); +}; + +var ESCAPE_LOOKUP = { + "&": "&", + ">": ">", + "<": "<", + "\"": """, + "'": "'" +}; +var ESCAPE_REGEX = /[&><"']/g; +/** + * Escapes text to prevent scripting attacks. + */ + +function utils_escape(text) { + return String(text).replace(ESCAPE_REGEX, function (match) { + return ESCAPE_LOOKUP[match]; + }); +} +/** + * Sometimes we want to pull out the innermost element of a group. In most + * cases, this will just be the group itself, but when ordgroups and colors have + * a single element, we want to pull that out. + */ + + +var getBaseElem = function getBaseElem(group) { + if (group.type === "ordgroup") { + if (group.body.length === 1) { + return getBaseElem(group.body[0]); + } else { + return group; + } + } else if (group.type === "color") { + if (group.body.length === 1) { + return getBaseElem(group.body[0]); + } else { + return group; + } + } else if (group.type === "font") { + return getBaseElem(group.body); + } else { + return group; + } +}; +/** + * TeXbook algorithms often reference "character boxes", which are simply groups + * with a single character in them. To decide if something is a character box, + * we find its innermost group, and see if it is a single character. + */ + + +var utils_isCharacterBox = function isCharacterBox(group) { + var baseElem = getBaseElem(group); // These are all they types of groups which hold single characters + + return baseElem.type === "mathord" || baseElem.type === "textord" || baseElem.type === "atom"; +}; + +var assert = function assert(value) { + if (!value) { + throw new Error('Expected non-null, but got ' + String(value)); + } + + return value; +}; +/** + * Return the protocol of a URL, or "_relative" if the URL does not specify a + * protocol (and thus is relative). + */ + +var protocolFromUrl = function protocolFromUrl(url) { + var protocol = /^\s*([^\\/#]*?)(?::|�*58|�*3a)/i.exec(url); + return protocol != null ? protocol[1] : "_relative"; +}; +/* harmony default export */ var utils = ({ + contains: contains, + deflt: deflt, + escape: utils_escape, + hyphenate: hyphenate, + getBaseElem: getBaseElem, + isCharacterBox: utils_isCharacterBox, + protocolFromUrl: protocolFromUrl +}); +// CONCATENATED MODULE: ./src/Settings.js +/* eslint no-console:0 */ + +/** + * This is a module for storing settings passed into KaTeX. It correctly handles + * default settings. + */ + + + + +/** + * The main Settings object + * + * The current options stored are: + * - displayMode: Whether the expression should be typeset as inline math + * (false, the default), meaning that the math starts in + * \textstyle and is placed in an inline-block); or as display + * math (true), meaning that the math starts in \displaystyle + * and is placed in a block with vertical margin. + */ +var Settings_Settings = +/*#__PURE__*/ +function () { + function Settings(options) { + this.displayMode = void 0; + this.output = void 0; + this.leqno = void 0; + this.fleqn = void 0; + this.throwOnError = void 0; + this.errorColor = void 0; + this.macros = void 0; + this.minRuleThickness = void 0; + this.colorIsTextColor = void 0; + this.strict = void 0; + this.trust = void 0; + this.maxSize = void 0; + this.maxExpand = void 0; + this.globalGroup = void 0; + // allow null options + options = options || {}; + this.displayMode = utils.deflt(options.displayMode, false); + this.output = utils.deflt(options.output, "htmlAndMathml"); + this.leqno = utils.deflt(options.leqno, false); + this.fleqn = utils.deflt(options.fleqn, false); + this.throwOnError = utils.deflt(options.throwOnError, true); + this.errorColor = utils.deflt(options.errorColor, "#cc0000"); + this.macros = options.macros || {}; + this.minRuleThickness = Math.max(0, utils.deflt(options.minRuleThickness, 0)); + this.colorIsTextColor = utils.deflt(options.colorIsTextColor, false); + this.strict = utils.deflt(options.strict, "warn"); + this.trust = utils.deflt(options.trust, false); + this.maxSize = Math.max(0, utils.deflt(options.maxSize, Infinity)); + this.maxExpand = Math.max(0, utils.deflt(options.maxExpand, 1000)); + this.globalGroup = utils.deflt(options.globalGroup, false); + } + /** + * Report nonstrict (non-LaTeX-compatible) input. + * Can safely not be called if `this.strict` is false in JavaScript. + */ + + + var _proto = Settings.prototype; + + _proto.reportNonstrict = function reportNonstrict(errorCode, errorMsg, token) { + var strict = this.strict; + + if (typeof strict === "function") { + // Allow return value of strict function to be boolean or string + // (or null/undefined, meaning no further processing). + strict = strict(errorCode, errorMsg, token); + } + + if (!strict || strict === "ignore") { + return; + } else if (strict === true || strict === "error") { + throw new src_ParseError("LaTeX-incompatible input and strict mode is set to 'error': " + (errorMsg + " [" + errorCode + "]"), token); + } else if (strict === "warn") { + typeof console !== "undefined" && console.warn("LaTeX-incompatible input and strict mode is set to 'warn': " + (errorMsg + " [" + errorCode + "]")); + } else { + // won't happen in type-safe code + typeof console !== "undefined" && console.warn("LaTeX-incompatible input and strict mode is set to " + ("unrecognized '" + strict + "': " + errorMsg + " [" + errorCode + "]")); + } + } + /** + * Check whether to apply strict (LaTeX-adhering) behavior for unusual + * input (like `\\`). Unlike `nonstrict`, will not throw an error; + * instead, "error" translates to a return value of `true`, while "ignore" + * translates to a return value of `false`. May still print a warning: + * "warn" prints a warning and returns `false`. + * This is for the second category of `errorCode`s listed in the README. + */ + ; + + _proto.useStrictBehavior = function useStrictBehavior(errorCode, errorMsg, token) { + var strict = this.strict; + + if (typeof strict === "function") { + // Allow return value of strict function to be boolean or string + // (or null/undefined, meaning no further processing). + // But catch any exceptions thrown by function, treating them + // like "error". + try { + strict = strict(errorCode, errorMsg, token); + } catch (error) { + strict = "error"; + } + } + + if (!strict || strict === "ignore") { + return false; + } else if (strict === true || strict === "error") { + return true; + } else if (strict === "warn") { + typeof console !== "undefined" && console.warn("LaTeX-incompatible input and strict mode is set to 'warn': " + (errorMsg + " [" + errorCode + "]")); + return false; + } else { + // won't happen in type-safe code + typeof console !== "undefined" && console.warn("LaTeX-incompatible input and strict mode is set to " + ("unrecognized '" + strict + "': " + errorMsg + " [" + errorCode + "]")); + return false; + } + } + /** + * Check whether to test potentially dangerous input, and return + * `true` (trusted) or `false` (untrusted). The sole argument `context` + * should be an object with `command` field specifying the relevant LaTeX + * command (as a string starting with `\`), and any other arguments, etc. + * If `context` has a `url` field, a `protocol` field will automatically + * get added by this function (changing the specified object). + */ + ; + + _proto.isTrusted = function isTrusted(context) { + if (context.url && !context.protocol) { + context.protocol = utils.protocolFromUrl(context.url); + } + + var trust = typeof this.trust === "function" ? this.trust(context) : this.trust; + return Boolean(trust); + }; + + return Settings; +}(); + + +// CONCATENATED MODULE: ./src/Style.js +/** + * This file contains information and classes for the various kinds of styles + * used in TeX. It provides a generic `Style` class, which holds information + * about a specific style. It then provides instances of all the different kinds + * of styles possible, and provides functions to move between them and get + * information about them. + */ + +/** + * The main style class. Contains a unique id for the style, a size (which is + * the same for cramped and uncramped version of a style), and a cramped flag. + */ +var Style = +/*#__PURE__*/ +function () { + function Style(id, size, cramped) { + this.id = void 0; + this.size = void 0; + this.cramped = void 0; + this.id = id; + this.size = size; + this.cramped = cramped; + } + /** + * Get the style of a superscript given a base in the current style. + */ + + + var _proto = Style.prototype; + + _proto.sup = function sup() { + return Style_styles[_sup[this.id]]; + } + /** + * Get the style of a subscript given a base in the current style. + */ + ; + + _proto.sub = function sub() { + return Style_styles[_sub[this.id]]; + } + /** + * Get the style of a fraction numerator given the fraction in the current + * style. + */ + ; + + _proto.fracNum = function fracNum() { + return Style_styles[_fracNum[this.id]]; + } + /** + * Get the style of a fraction denominator given the fraction in the current + * style. + */ + ; + + _proto.fracDen = function fracDen() { + return Style_styles[_fracDen[this.id]]; + } + /** + * Get the cramped version of a style (in particular, cramping a cramped style + * doesn't change the style). + */ + ; + + _proto.cramp = function cramp() { + return Style_styles[_cramp[this.id]]; + } + /** + * Get a text or display version of this style. + */ + ; + + _proto.text = function text() { + return Style_styles[_text[this.id]]; + } + /** + * Return true if this style is tightly spaced (scriptstyle/scriptscriptstyle) + */ + ; + + _proto.isTight = function isTight() { + return this.size >= 2; + }; + + return Style; +}(); // Export an interface for type checking, but don't expose the implementation. +// This way, no more styles can be generated. + + +// IDs of the different styles +var D = 0; +var Dc = 1; +var T = 2; +var Tc = 3; +var S = 4; +var Sc = 5; +var SS = 6; +var SSc = 7; // Instances of the different styles + +var Style_styles = [new Style(D, 0, false), new Style(Dc, 0, true), new Style(T, 1, false), new Style(Tc, 1, true), new Style(S, 2, false), new Style(Sc, 2, true), new Style(SS, 3, false), new Style(SSc, 3, true)]; // Lookup tables for switching from one style to another + +var _sup = [S, Sc, S, Sc, SS, SSc, SS, SSc]; +var _sub = [Sc, Sc, Sc, Sc, SSc, SSc, SSc, SSc]; +var _fracNum = [T, Tc, S, Sc, SS, SSc, SS, SSc]; +var _fracDen = [Tc, Tc, Sc, Sc, SSc, SSc, SSc, SSc]; +var _cramp = [Dc, Dc, Tc, Tc, Sc, Sc, SSc, SSc]; +var _text = [D, Dc, T, Tc, T, Tc, T, Tc]; // We only export some of the styles. + +/* harmony default export */ var src_Style = ({ + DISPLAY: Style_styles[D], + TEXT: Style_styles[T], + SCRIPT: Style_styles[S], + SCRIPTSCRIPT: Style_styles[SS] +}); +// CONCATENATED MODULE: ./src/unicodeScripts.js +/* + * This file defines the Unicode scripts and script families that we + * support. To add new scripts or families, just add a new entry to the + * scriptData array below. Adding scripts to the scriptData array allows + * characters from that script to appear in \text{} environments. + */ + +/** + * Each script or script family has a name and an array of blocks. + * Each block is an array of two numbers which specify the start and + * end points (inclusive) of a block of Unicode codepoints. + */ + +/** + * Unicode block data for the families of scripts we support in \text{}. + * Scripts only need to appear here if they do not have font metrics. + */ +var scriptData = [{ + // Latin characters beyond the Latin-1 characters we have metrics for. + // Needed for Czech, Hungarian and Turkish text, for example. + name: 'latin', + blocks: [[0x0100, 0x024f], // Latin Extended-A and Latin Extended-B + [0x0300, 0x036f]] +}, { + // The Cyrillic script used by Russian and related languages. + // A Cyrillic subset used to be supported as explicitly defined + // symbols in symbols.js + name: 'cyrillic', + blocks: [[0x0400, 0x04ff]] +}, { + // The Brahmic scripts of South and Southeast Asia + // Devanagari (0900–097F) + // Bengali (0980–09FF) + // Gurmukhi (0A00–0A7F) + // Gujarati (0A80–0AFF) + // Oriya (0B00–0B7F) + // Tamil (0B80–0BFF) + // Telugu (0C00–0C7F) + // Kannada (0C80–0CFF) + // Malayalam (0D00–0D7F) + // Sinhala (0D80–0DFF) + // Thai (0E00–0E7F) + // Lao (0E80–0EFF) + // Tibetan (0F00–0FFF) + // Myanmar (1000–109F) + name: 'brahmic', + blocks: [[0x0900, 0x109F]] +}, { + name: 'georgian', + blocks: [[0x10A0, 0x10ff]] +}, { + // Chinese and Japanese. + // The "k" in cjk is for Korean, but we've separated Korean out + name: "cjk", + blocks: [[0x3000, 0x30FF], // CJK symbols and punctuation, Hiragana, Katakana + [0x4E00, 0x9FAF], // CJK ideograms + [0xFF00, 0xFF60]] +}, { + // Korean + name: 'hangul', + blocks: [[0xAC00, 0xD7AF]] +}]; +/** + * Given a codepoint, return the name of the script or script family + * it is from, or null if it is not part of a known block + */ + +function scriptFromCodepoint(codepoint) { + for (var i = 0; i < scriptData.length; i++) { + var script = scriptData[i]; + + for (var _i = 0; _i < script.blocks.length; _i++) { + var block = script.blocks[_i]; + + if (codepoint >= block[0] && codepoint <= block[1]) { + return script.name; + } + } + } + + return null; +} +/** + * A flattened version of all the supported blocks in a single array. + * This is an optimization to make supportedCodepoint() fast. + */ + +var allBlocks = []; +scriptData.forEach(function (s) { + return s.blocks.forEach(function (b) { + return allBlocks.push.apply(allBlocks, b); + }); +}); +/** + * Given a codepoint, return true if it falls within one of the + * scripts or script families defined above and false otherwise. + * + * Micro benchmarks shows that this is faster than + * /[\u3000-\u30FF\u4E00-\u9FAF\uFF00-\uFF60\uAC00-\uD7AF\u0900-\u109F]/.test() + * in Firefox, Chrome and Node. + */ + +function supportedCodepoint(codepoint) { + for (var i = 0; i < allBlocks.length; i += 2) { + if (codepoint >= allBlocks[i] && codepoint <= allBlocks[i + 1]) { + return true; + } + } + + return false; +} +// CONCATENATED MODULE: ./src/svgGeometry.js +/** + * This file provides support to domTree.js and delimiter.js. + * It's a storehouse of path geometry for SVG images. + */ +// In all paths below, the viewBox-to-em scale is 1000:1. +var hLinePad = 80; // padding above a sqrt viniculum. Prevents image cropping. +// The viniculum of a \sqrt can be made thicker by a KaTeX rendering option. +// Think of variable extraViniculum as two detours in the SVG path. +// The detour begins at the lower left of the area labeled extraViniculum below. +// The detour proceeds one extraViniculum distance up and slightly to the right, +// displacing the radiused corner between surd and viniculum. The radius is +// traversed as usual, then the detour resumes. It goes right, to the end of +// the very long viniculumn, then down one extraViniculum distance, +// after which it resumes regular path geometry for the radical. + +/* viniculum + / + /▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒←extraViniculum + / █████████████████████←0.04em (40 unit) std viniculum thickness + / / + / / + / /\ + / / surd +*/ + +var sqrtMain = function sqrtMain(extraViniculum, hLinePad) { + // sqrtMain path geometry is from glyph U221A in the font KaTeX Main + return "M95," + (622 + extraViniculum + hLinePad) + "\nc-2.7,0,-7.17,-2.7,-13.5,-8c-5.8,-5.3,-9.5,-10,-9.5,-14\nc0,-2,0.3,-3.3,1,-4c1.3,-2.7,23.83,-20.7,67.5,-54\nc44.2,-33.3,65.8,-50.3,66.5,-51c1.3,-1.3,3,-2,5,-2c4.7,0,8.7,3.3,12,10\ns173,378,173,378c0.7,0,35.3,-71,104,-213c68.7,-142,137.5,-285,206.5,-429\nc69,-144,104.5,-217.7,106.5,-221\nl" + extraViniculum / 2.075 + " -" + extraViniculum + "\nc5.3,-9.3,12,-14,20,-14\nH400000v" + (40 + extraViniculum) + "H845.2724\ns-225.272,467,-225.272,467s-235,486,-235,486c-2.7,4.7,-9,7,-19,7\nc-6,0,-10,-1,-12,-3s-194,-422,-194,-422s-65,47,-65,47z\nM" + (834 + extraViniculum) + " " + hLinePad + "h400000v" + (40 + extraViniculum) + "h-400000z"; +}; + +var sqrtSize1 = function sqrtSize1(extraViniculum, hLinePad) { + // size1 is from glyph U221A in the font KaTeX_Size1-Regular + return "M263," + (601 + extraViniculum + hLinePad) + "c0.7,0,18,39.7,52,119\nc34,79.3,68.167,158.7,102.5,238c34.3,79.3,51.8,119.3,52.5,120\nc340,-704.7,510.7,-1060.3,512,-1067\nl" + extraViniculum / 2.084 + " -" + extraViniculum + "\nc4.7,-7.3,11,-11,19,-11\nH40000v" + (40 + extraViniculum) + "H1012.3\ns-271.3,567,-271.3,567c-38.7,80.7,-84,175,-136,283c-52,108,-89.167,185.3,-111.5,232\nc-22.3,46.7,-33.8,70.3,-34.5,71c-4.7,4.7,-12.3,7,-23,7s-12,-1,-12,-1\ns-109,-253,-109,-253c-72.7,-168,-109.3,-252,-110,-252c-10.7,8,-22,16.7,-34,26\nc-22,17.3,-33.3,26,-34,26s-26,-26,-26,-26s76,-59,76,-59s76,-60,76,-60z\nM" + (1001 + extraViniculum) + " " + hLinePad + "h400000v" + (40 + extraViniculum) + "h-400000z"; +}; + +var sqrtSize2 = function sqrtSize2(extraViniculum, hLinePad) { + // size2 is from glyph U221A in the font KaTeX_Size2-Regular + return "M983 " + (10 + extraViniculum + hLinePad) + "\nl" + extraViniculum / 3.13 + " -" + extraViniculum + "\nc4,-6.7,10,-10,18,-10 H400000v" + (40 + extraViniculum) + "\nH1013.1s-83.4,268,-264.1,840c-180.7,572,-277,876.3,-289,913c-4.7,4.7,-12.7,7,-24,7\ns-12,0,-12,0c-1.3,-3.3,-3.7,-11.7,-7,-25c-35.3,-125.3,-106.7,-373.3,-214,-744\nc-10,12,-21,25,-33,39s-32,39,-32,39c-6,-5.3,-15,-14,-27,-26s25,-30,25,-30\nc26.7,-32.7,52,-63,76,-91s52,-60,52,-60s208,722,208,722\nc56,-175.3,126.3,-397.3,211,-666c84.7,-268.7,153.8,-488.2,207.5,-658.5\nc53.7,-170.3,84.5,-266.8,92.5,-289.5z\nM" + (1001 + extraViniculum) + " " + hLinePad + "h400000v" + (40 + extraViniculum) + "h-400000z"; +}; + +var sqrtSize3 = function sqrtSize3(extraViniculum, hLinePad) { + // size3 is from glyph U221A in the font KaTeX_Size3-Regular + return "M424," + (2398 + extraViniculum + hLinePad) + "\nc-1.3,-0.7,-38.5,-172,-111.5,-514c-73,-342,-109.8,-513.3,-110.5,-514\nc0,-2,-10.7,14.3,-32,49c-4.7,7.3,-9.8,15.7,-15.5,25c-5.7,9.3,-9.8,16,-12.5,20\ns-5,7,-5,7c-4,-3.3,-8.3,-7.7,-13,-13s-13,-13,-13,-13s76,-122,76,-122s77,-121,77,-121\ns209,968,209,968c0,-2,84.7,-361.7,254,-1079c169.3,-717.3,254.7,-1077.7,256,-1081\nl" + extraViniculum / 4.223 + " -" + extraViniculum + "c4,-6.7,10,-10,18,-10 H400000\nv" + (40 + extraViniculum) + "H1014.6\ns-87.3,378.7,-272.6,1166c-185.3,787.3,-279.3,1182.3,-282,1185\nc-2,6,-10,9,-24,9\nc-8,0,-12,-0.7,-12,-2z M" + (1001 + extraViniculum) + " " + hLinePad + "\nh400000v" + (40 + extraViniculum) + "h-400000z"; +}; + +var sqrtSize4 = function sqrtSize4(extraViniculum, hLinePad) { + // size4 is from glyph U221A in the font KaTeX_Size4-Regular + return "M473," + (2713 + extraViniculum + hLinePad) + "\nc339.3,-1799.3,509.3,-2700,510,-2702 l" + extraViniculum / 5.298 + " -" + extraViniculum + "\nc3.3,-7.3,9.3,-11,18,-11 H400000v" + (40 + extraViniculum) + "H1017.7\ns-90.5,478,-276.2,1466c-185.7,988,-279.5,1483,-281.5,1485c-2,6,-10,9,-24,9\nc-8,0,-12,-0.7,-12,-2c0,-1.3,-5.3,-32,-16,-92c-50.7,-293.3,-119.7,-693.3,-207,-1200\nc0,-1.3,-5.3,8.7,-16,30c-10.7,21.3,-21.3,42.7,-32,64s-16,33,-16,33s-26,-26,-26,-26\ns76,-153,76,-153s77,-151,77,-151c0.7,0.7,35.7,202,105,604c67.3,400.7,102,602.7,104,\n606zM" + (1001 + extraViniculum) + " " + hLinePad + "h400000v" + (40 + extraViniculum) + "H1017.7z"; +}; + +var sqrtTall = function sqrtTall(extraViniculum, hLinePad, viewBoxHeight) { + // sqrtTall is from glyph U23B7 in the font KaTeX_Size4-Regular + // One path edge has a variable length. It runs vertically from the viniculumn + // to a point near (14 units) the bottom of the surd. The viniculum + // is normally 40 units thick. So the length of the line in question is: + var vertSegment = viewBoxHeight - 54 - hLinePad - extraViniculum; + return "M702 " + (extraViniculum + hLinePad) + "H400000" + (40 + extraViniculum) + "\nH742v" + vertSegment + "l-4 4-4 4c-.667.7 -2 1.5-4 2.5s-4.167 1.833-6.5 2.5-5.5 1-9.5 1\nh-12l-28-84c-16.667-52-96.667 -294.333-240-727l-212 -643 -85 170\nc-4-3.333-8.333-7.667-13 -13l-13-13l77-155 77-156c66 199.333 139 419.667\n219 661 l218 661zM702 " + hLinePad + "H400000v" + (40 + extraViniculum) + "H742z"; +}; + +var sqrtPath = function sqrtPath(size, extraViniculum, viewBoxHeight) { + extraViniculum = 1000 * extraViniculum; // Convert from document ems to viewBox. + + var path = ""; + + switch (size) { + case "sqrtMain": + path = sqrtMain(extraViniculum, hLinePad); + break; + + case "sqrtSize1": + path = sqrtSize1(extraViniculum, hLinePad); + break; + + case "sqrtSize2": + path = sqrtSize2(extraViniculum, hLinePad); + break; + + case "sqrtSize3": + path = sqrtSize3(extraViniculum, hLinePad); + break; + + case "sqrtSize4": + path = sqrtSize4(extraViniculum, hLinePad); + break; + + case "sqrtTall": + path = sqrtTall(extraViniculum, hLinePad, viewBoxHeight); + } + + return path; +}; +var svgGeometry_path = { + // Two paths that cover gaps in built-up parentheses. + leftParenInner: "M291 0 H417 V300 H291 z", + rightParenInner: "M457 0 H583 V300 H457 z", + // The doubleleftarrow geometry is from glyph U+21D0 in the font KaTeX Main + doubleleftarrow: "M262 157\nl10-10c34-36 62.7-77 86-123 3.3-8 5-13.3 5-16 0-5.3-6.7-8-20-8-7.3\n 0-12.2.5-14.5 1.5-2.3 1-4.8 4.5-7.5 10.5-49.3 97.3-121.7 169.3-217 216-28\n 14-57.3 25-88 33-6.7 2-11 3.8-13 5.5-2 1.7-3 4.2-3 7.5s1 5.8 3 7.5\nc2 1.7 6.3 3.5 13 5.5 68 17.3 128.2 47.8 180.5 91.5 52.3 43.7 93.8 96.2 124.5\n 157.5 9.3 8 15.3 12.3 18 13h6c12-.7 18-4 18-10 0-2-1.7-7-5-15-23.3-46-52-87\n-86-123l-10-10h399738v-40H218c328 0 0 0 0 0l-10-8c-26.7-20-65.7-43-117-69 2.7\n-2 6-3.7 10-5 36.7-16 72.3-37.3 107-64l10-8h399782v-40z\nm8 0v40h399730v-40zm0 194v40h399730v-40z", + // doublerightarrow is from glyph U+21D2 in font KaTeX Main + doublerightarrow: "M399738 392l\n-10 10c-34 36-62.7 77-86 123-3.3 8-5 13.3-5 16 0 5.3 6.7 8 20 8 7.3 0 12.2-.5\n 14.5-1.5 2.3-1 4.8-4.5 7.5-10.5 49.3-97.3 121.7-169.3 217-216 28-14 57.3-25 88\n-33 6.7-2 11-3.8 13-5.5 2-1.7 3-4.2 3-7.5s-1-5.8-3-7.5c-2-1.7-6.3-3.5-13-5.5-68\n-17.3-128.2-47.8-180.5-91.5-52.3-43.7-93.8-96.2-124.5-157.5-9.3-8-15.3-12.3-18\n-13h-6c-12 .7-18 4-18 10 0 2 1.7 7 5 15 23.3 46 52 87 86 123l10 10H0v40h399782\nc-328 0 0 0 0 0l10 8c26.7 20 65.7 43 117 69-2.7 2-6 3.7-10 5-36.7 16-72.3 37.3\n-107 64l-10 8H0v40zM0 157v40h399730v-40zm0 194v40h399730v-40z", + // leftarrow is from glyph U+2190 in font KaTeX Main + leftarrow: "M400000 241H110l3-3c68.7-52.7 113.7-120\n 135-202 4-14.7 6-23 6-25 0-7.3-7-11-21-11-8 0-13.2.8-15.5 2.5-2.3 1.7-4.2 5.8\n-5.5 12.5-1.3 4.7-2.7 10.3-4 17-12 48.7-34.8 92-68.5 130S65.3 228.3 18 247\nc-10 4-16 7.7-18 11 0 8.7 6 14.3 18 17 47.3 18.7 87.8 47 121.5 85S196 441.3 208\n 490c.7 2 1.3 5 2 9s1.2 6.7 1.5 8c.3 1.3 1 3.3 2 6s2.2 4.5 3.5 5.5c1.3 1 3.3\n 1.8 6 2.5s6 1 10 1c14 0 21-3.7 21-11 0-2-2-10.3-6-25-20-79.3-65-146.7-135-202\n l-3-3h399890zM100 241v40h399900v-40z", + // overbrace is from glyphs U+23A9/23A8/23A7 in font KaTeX_Size4-Regular + leftbrace: "M6 548l-6-6v-35l6-11c56-104 135.3-181.3 238-232 57.3-28.7 117\n-45 179-50h399577v120H403c-43.3 7-81 15-113 26-100.7 33-179.7 91-237 174-2.7\n 5-6 9-10 13-.7 1-7.3 1-20 1H6z", + leftbraceunder: "M0 6l6-6h17c12.688 0 19.313.3 20 1 4 4 7.313 8.3 10 13\n 35.313 51.3 80.813 93.8 136.5 127.5 55.688 33.7 117.188 55.8 184.5 66.5.688\n 0 2 .3 4 1 18.688 2.7 76 4.3 172 5h399450v120H429l-6-1c-124.688-8-235-61.7\n-331-161C60.687 138.7 32.312 99.3 7 54L0 41V6z", + // overgroup is from the MnSymbol package (public domain) + leftgroup: "M400000 80\nH435C64 80 168.3 229.4 21 260c-5.9 1.2-18 0-18 0-2 0-3-1-3-3v-38C76 61 257 0\n 435 0h399565z", + leftgroupunder: "M400000 262\nH435C64 262 168.3 112.6 21 82c-5.9-1.2-18 0-18 0-2 0-3 1-3 3v38c76 158 257 219\n 435 219h399565z", + // Harpoons are from glyph U+21BD in font KaTeX Main + leftharpoon: "M0 267c.7 5.3 3 10 7 14h399993v-40H93c3.3\n-3.3 10.2-9.5 20.5-18.5s17.8-15.8 22.5-20.5c50.7-52 88-110.3 112-175 4-11.3 5\n-18.3 3-21-1.3-4-7.3-6-18-6-8 0-13 .7-15 2s-4.7 6.7-8 16c-42 98.7-107.3 174.7\n-196 228-6.7 4.7-10.7 8-12 10-1.3 2-2 5.7-2 11zm100-26v40h399900v-40z", + leftharpoonplus: "M0 267c.7 5.3 3 10 7 14h399993v-40H93c3.3-3.3 10.2-9.5\n 20.5-18.5s17.8-15.8 22.5-20.5c50.7-52 88-110.3 112-175 4-11.3 5-18.3 3-21-1.3\n-4-7.3-6-18-6-8 0-13 .7-15 2s-4.7 6.7-8 16c-42 98.7-107.3 174.7-196 228-6.7 4.7\n-10.7 8-12 10-1.3 2-2 5.7-2 11zm100-26v40h399900v-40zM0 435v40h400000v-40z\nm0 0v40h400000v-40z", + leftharpoondown: "M7 241c-4 4-6.333 8.667-7 14 0 5.333.667 9 2 11s5.333\n 5.333 12 10c90.667 54 156 130 196 228 3.333 10.667 6.333 16.333 9 17 2 .667 5\n 1 9 1h5c10.667 0 16.667-2 18-6 2-2.667 1-9.667-3-21-32-87.333-82.667-157.667\n-152-211l-3-3h399907v-40zM93 281 H400000 v-40L7 241z", + leftharpoondownplus: "M7 435c-4 4-6.3 8.7-7 14 0 5.3.7 9 2 11s5.3 5.3 12\n 10c90.7 54 156 130 196 228 3.3 10.7 6.3 16.3 9 17 2 .7 5 1 9 1h5c10.7 0 16.7\n-2 18-6 2-2.7 1-9.7-3-21-32-87.3-82.7-157.7-152-211l-3-3h399907v-40H7zm93 0\nv40h399900v-40zM0 241v40h399900v-40zm0 0v40h399900v-40z", + // hook is from glyph U+21A9 in font KaTeX Main + lefthook: "M400000 281 H103s-33-11.2-61-33.5S0 197.3 0 164s14.2-61.2 42.5\n-83.5C70.8 58.2 104 47 142 47 c16.7 0 25 6.7 25 20 0 12-8.7 18.7-26 20-40 3.3\n-68.7 15.7-86 37-10 12-15 25.3-15 40 0 22.7 9.8 40.7 29.5 54 19.7 13.3 43.5 21\n 71.5 23h399859zM103 281v-40h399897v40z", + leftlinesegment: "M40 281 V428 H0 V94 H40 V241 H400000 v40z\nM40 281 V428 H0 V94 H40 V241 H400000 v40z", + leftmapsto: "M40 281 V448H0V74H40V241H400000v40z\nM40 281 V448H0V74H40V241H400000v40z", + // tofrom is from glyph U+21C4 in font KaTeX AMS Regular + leftToFrom: "M0 147h400000v40H0zm0 214c68 40 115.7 95.7 143 167h22c15.3 0 23\n-.3 23-1 0-1.3-5.3-13.7-16-37-18-35.3-41.3-69-70-101l-7-8h399905v-40H95l7-8\nc28.7-32 52-65.7 70-101 10.7-23.3 16-35.7 16-37 0-.7-7.7-1-23-1h-22C115.7 265.3\n 68 321 0 361zm0-174v-40h399900v40zm100 154v40h399900v-40z", + longequal: "M0 50 h400000 v40H0z m0 194h40000v40H0z\nM0 50 h400000 v40H0z m0 194h40000v40H0z", + midbrace: "M200428 334\nc-100.7-8.3-195.3-44-280-108-55.3-42-101.7-93-139-153l-9-14c-2.7 4-5.7 8.7-9 14\n-53.3 86.7-123.7 153-211 199-66.7 36-137.3 56.3-212 62H0V214h199568c178.3-11.7\n 311.7-78.3 403-201 6-8 9.7-12 11-12 .7-.7 6.7-1 18-1s17.3.3 18 1c1.3 0 5 4 11\n 12 44.7 59.3 101.3 106.3 170 141s145.3 54.3 229 60h199572v120z", + midbraceunder: "M199572 214\nc100.7 8.3 195.3 44 280 108 55.3 42 101.7 93 139 153l9 14c2.7-4 5.7-8.7 9-14\n 53.3-86.7 123.7-153 211-199 66.7-36 137.3-56.3 212-62h199568v120H200432c-178.3\n 11.7-311.7 78.3-403 201-6 8-9.7 12-11 12-.7.7-6.7 1-18 1s-17.3-.3-18-1c-1.3 0\n-5-4-11-12-44.7-59.3-101.3-106.3-170-141s-145.3-54.3-229-60H0V214z", + oiintSize1: "M512.6 71.6c272.6 0 320.3 106.8 320.3 178.2 0 70.8-47.7 177.6\n-320.3 177.6S193.1 320.6 193.1 249.8c0-71.4 46.9-178.2 319.5-178.2z\nm368.1 178.2c0-86.4-60.9-215.4-368.1-215.4-306.4 0-367.3 129-367.3 215.4 0 85.8\n60.9 214.8 367.3 214.8 307.2 0 368.1-129 368.1-214.8z", + oiintSize2: "M757.8 100.1c384.7 0 451.1 137.6 451.1 230 0 91.3-66.4 228.8\n-451.1 228.8-386.3 0-452.7-137.5-452.7-228.8 0-92.4 66.4-230 452.7-230z\nm502.4 230c0-111.2-82.4-277.2-502.4-277.2s-504 166-504 277.2\nc0 110 84 276 504 276s502.4-166 502.4-276z", + oiiintSize1: "M681.4 71.6c408.9 0 480.5 106.8 480.5 178.2 0 70.8-71.6 177.6\n-480.5 177.6S202.1 320.6 202.1 249.8c0-71.4 70.5-178.2 479.3-178.2z\nm525.8 178.2c0-86.4-86.8-215.4-525.7-215.4-437.9 0-524.7 129-524.7 215.4 0\n85.8 86.8 214.8 524.7 214.8 438.9 0 525.7-129 525.7-214.8z", + oiiintSize2: "M1021.2 53c603.6 0 707.8 165.8 707.8 277.2 0 110-104.2 275.8\n-707.8 275.8-606 0-710.2-165.8-710.2-275.8C311 218.8 415.2 53 1021.2 53z\nm770.4 277.1c0-131.2-126.4-327.6-770.5-327.6S248.4 198.9 248.4 330.1\nc0 130 128.8 326.4 772.7 326.4s770.5-196.4 770.5-326.4z", + rightarrow: "M0 241v40h399891c-47.3 35.3-84 78-110 128\n-16.7 32-27.7 63.7-33 95 0 1.3-.2 2.7-.5 4-.3 1.3-.5 2.3-.5 3 0 7.3 6.7 11 20\n 11 8 0 13.2-.8 15.5-2.5 2.3-1.7 4.2-5.5 5.5-11.5 2-13.3 5.7-27 11-41 14.7-44.7\n 39-84.5 73-119.5s73.7-60.2 119-75.5c6-2 9-5.7 9-11s-3-9-9-11c-45.3-15.3-85\n-40.5-119-75.5s-58.3-74.8-73-119.5c-4.7-14-8.3-27.3-11-40-1.3-6.7-3.2-10.8-5.5\n-12.5-2.3-1.7-7.5-2.5-15.5-2.5-14 0-21 3.7-21 11 0 2 2 10.3 6 25 20.7 83.3 67\n 151.7 139 205zm0 0v40h399900v-40z", + rightbrace: "M400000 542l\n-6 6h-17c-12.7 0-19.3-.3-20-1-4-4-7.3-8.3-10-13-35.3-51.3-80.8-93.8-136.5-127.5\ns-117.2-55.8-184.5-66.5c-.7 0-2-.3-4-1-18.7-2.7-76-4.3-172-5H0V214h399571l6 1\nc124.7 8 235 61.7 331 161 31.3 33.3 59.7 72.7 85 118l7 13v35z", + rightbraceunder: "M399994 0l6 6v35l-6 11c-56 104-135.3 181.3-238 232-57.3\n 28.7-117 45-179 50H-300V214h399897c43.3-7 81-15 113-26 100.7-33 179.7-91 237\n-174 2.7-5 6-9 10-13 .7-1 7.3-1 20-1h17z", + rightgroup: "M0 80h399565c371 0 266.7 149.4 414 180 5.9 1.2 18 0 18 0 2 0\n 3-1 3-3v-38c-76-158-257-219-435-219H0z", + rightgroupunder: "M0 262h399565c371 0 266.7-149.4 414-180 5.9-1.2 18 0 18\n 0 2 0 3 1 3 3v38c-76 158-257 219-435 219H0z", + rightharpoon: "M0 241v40h399993c4.7-4.7 7-9.3 7-14 0-9.3\n-3.7-15.3-11-18-92.7-56.7-159-133.7-199-231-3.3-9.3-6-14.7-8-16-2-1.3-7-2-15-2\n-10.7 0-16.7 2-18 6-2 2.7-1 9.7 3 21 15.3 42 36.7 81.8 64 119.5 27.3 37.7 58\n 69.2 92 94.5zm0 0v40h399900v-40z", + rightharpoonplus: "M0 241v40h399993c4.7-4.7 7-9.3 7-14 0-9.3-3.7-15.3-11\n-18-92.7-56.7-159-133.7-199-231-3.3-9.3-6-14.7-8-16-2-1.3-7-2-15-2-10.7 0-16.7\n 2-18 6-2 2.7-1 9.7 3 21 15.3 42 36.7 81.8 64 119.5 27.3 37.7 58 69.2 92 94.5z\nm0 0v40h399900v-40z m100 194v40h399900v-40zm0 0v40h399900v-40z", + rightharpoondown: "M399747 511c0 7.3 6.7 11 20 11 8 0 13-.8 15-2.5s4.7-6.8\n 8-15.5c40-94 99.3-166.3 178-217 13.3-8 20.3-12.3 21-13 5.3-3.3 8.5-5.8 9.5\n-7.5 1-1.7 1.5-5.2 1.5-10.5s-2.3-10.3-7-15H0v40h399908c-34 25.3-64.7 57-92 95\n-27.3 38-48.7 77.7-64 119-3.3 8.7-5 14-5 16zM0 241v40h399900v-40z", + rightharpoondownplus: "M399747 705c0 7.3 6.7 11 20 11 8 0 13-.8\n 15-2.5s4.7-6.8 8-15.5c40-94 99.3-166.3 178-217 13.3-8 20.3-12.3 21-13 5.3-3.3\n 8.5-5.8 9.5-7.5 1-1.7 1.5-5.2 1.5-10.5s-2.3-10.3-7-15H0v40h399908c-34 25.3\n-64.7 57-92 95-27.3 38-48.7 77.7-64 119-3.3 8.7-5 14-5 16zM0 435v40h399900v-40z\nm0-194v40h400000v-40zm0 0v40h400000v-40z", + righthook: "M399859 241c-764 0 0 0 0 0 40-3.3 68.7-15.7 86-37 10-12 15-25.3\n 15-40 0-22.7-9.8-40.7-29.5-54-19.7-13.3-43.5-21-71.5-23-17.3-1.3-26-8-26-20 0\n-13.3 8.7-20 26-20 38 0 71 11.2 99 33.5 0 0 7 5.6 21 16.7 14 11.2 21 33.5 21\n 66.8s-14 61.2-42 83.5c-28 22.3-61 33.5-99 33.5L0 241z M0 281v-40h399859v40z", + rightlinesegment: "M399960 241 V94 h40 V428 h-40 V281 H0 v-40z\nM399960 241 V94 h40 V428 h-40 V281 H0 v-40z", + rightToFrom: "M400000 167c-70.7-42-118-97.7-142-167h-23c-15.3 0-23 .3-23\n 1 0 1.3 5.3 13.7 16 37 18 35.3 41.3 69 70 101l7 8H0v40h399905l-7 8c-28.7 32\n-52 65.7-70 101-10.7 23.3-16 35.7-16 37 0 .7 7.7 1 23 1h23c24-69.3 71.3-125 142\n-167z M100 147v40h399900v-40zM0 341v40h399900v-40z", + // twoheadleftarrow is from glyph U+219E in font KaTeX AMS Regular + twoheadleftarrow: "M0 167c68 40\n 115.7 95.7 143 167h22c15.3 0 23-.3 23-1 0-1.3-5.3-13.7-16-37-18-35.3-41.3-69\n-70-101l-7-8h125l9 7c50.7 39.3 85 86 103 140h46c0-4.7-6.3-18.7-19-42-18-35.3\n-40-67.3-66-96l-9-9h399716v-40H284l9-9c26-28.7 48-60.7 66-96 12.7-23.333 19\n-37.333 19-42h-46c-18 54-52.3 100.7-103 140l-9 7H95l7-8c28.7-32 52-65.7 70-101\n 10.7-23.333 16-35.7 16-37 0-.7-7.7-1-23-1h-22C115.7 71.3 68 127 0 167z", + twoheadrightarrow: "M400000 167\nc-68-40-115.7-95.7-143-167h-22c-15.3 0-23 .3-23 1 0 1.3 5.3 13.7 16 37 18 35.3\n 41.3 69 70 101l7 8h-125l-9-7c-50.7-39.3-85-86-103-140h-46c0 4.7 6.3 18.7 19 42\n 18 35.3 40 67.3 66 96l9 9H0v40h399716l-9 9c-26 28.7-48 60.7-66 96-12.7 23.333\n-19 37.333-19 42h46c18-54 52.3-100.7 103-140l9-7h125l-7 8c-28.7 32-52 65.7-70\n 101-10.7 23.333-16 35.7-16 37 0 .7 7.7 1 23 1h22c27.3-71.3 75-127 143-167z", + // tilde1 is a modified version of a glyph from the MnSymbol package + tilde1: "M200 55.538c-77 0-168 73.953-177 73.953-3 0-7\n-2.175-9-5.437L2 97c-1-2-2-4-2-6 0-4 2-7 5-9l20-12C116 12 171 0 207 0c86 0\n 114 68 191 68 78 0 168-68 177-68 4 0 7 2 9 5l12 19c1 2.175 2 4.35 2 6.525 0\n 4.35-2 7.613-5 9.788l-19 13.05c-92 63.077-116.937 75.308-183 76.128\n-68.267.847-113-73.952-191-73.952z", + // ditto tilde2, tilde3, & tilde4 + tilde2: "M344 55.266c-142 0-300.638 81.316-311.5 86.418\n-8.01 3.762-22.5 10.91-23.5 5.562L1 120c-1-2-1-3-1-4 0-5 3-9 8-10l18.4-9C160.9\n 31.9 283 0 358 0c148 0 188 122 331 122s314-97 326-97c4 0 8 2 10 7l7 21.114\nc1 2.14 1 3.21 1 4.28 0 5.347-3 9.626-7 10.696l-22.3 12.622C852.6 158.372 751\n 181.476 676 181.476c-149 0-189-126.21-332-126.21z", + tilde3: "M786 59C457 59 32 175.242 13 175.242c-6 0-10-3.457\n-11-10.37L.15 138c-1-7 3-12 10-13l19.2-6.4C378.4 40.7 634.3 0 804.3 0c337 0\n 411.8 157 746.8 157 328 0 754-112 773-112 5 0 10 3 11 9l1 14.075c1 8.066-.697\n 16.595-6.697 17.492l-21.052 7.31c-367.9 98.146-609.15 122.696-778.15 122.696\n -338 0-409-156.573-744-156.573z", + tilde4: "M786 58C457 58 32 177.487 13 177.487c-6 0-10-3.345\n-11-10.035L.15 143c-1-7 3-12 10-13l22-6.7C381.2 35 637.15 0 807.15 0c337 0 409\n 177 744 177 328 0 754-127 773-127 5 0 10 3 11 9l1 14.794c1 7.805-3 13.38-9\n 14.495l-20.7 5.574c-366.85 99.79-607.3 139.372-776.3 139.372-338 0-409\n -175.236-744-175.236z", + // vec is from glyph U+20D7 in font KaTeX Main + vec: "M377 20c0-5.333 1.833-10 5.5-14S391 0 397 0c4.667 0 8.667 1.667 12 5\n3.333 2.667 6.667 9 10 19 6.667 24.667 20.333 43.667 41 57 7.333 4.667 11\n10.667 11 18 0 6-1 10-3 12s-6.667 5-14 9c-28.667 14.667-53.667 35.667-75 63\n-1.333 1.333-3.167 3.5-5.5 6.5s-4 4.833-5 5.5c-1 .667-2.5 1.333-4.5 2s-4.333 1\n-7 1c-4.667 0-9.167-1.833-13.5-5.5S337 184 337 178c0-12.667 15.667-32.333 47-59\nH213l-171-1c-8.667-6-13-12.333-13-19 0-4.667 4.333-11.333 13-20h359\nc-16-25.333-24-45-24-59z", + // widehat1 is a modified version of a glyph from the MnSymbol package + widehat1: "M529 0h5l519 115c5 1 9 5 9 10 0 1-1 2-1 3l-4 22\nc-1 5-5 9-11 9h-2L532 67 19 159h-2c-5 0-9-4-11-9l-5-22c-1-6 2-12 8-13z", + // ditto widehat2, widehat3, & widehat4 + widehat2: "M1181 0h2l1171 176c6 0 10 5 10 11l-2 23c-1 6-5 10\n-11 10h-1L1182 67 15 220h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z", + widehat3: "M1181 0h2l1171 236c6 0 10 5 10 11l-2 23c-1 6-5 10\n-11 10h-1L1182 67 15 280h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z", + widehat4: "M1181 0h2l1171 296c6 0 10 5 10 11l-2 23c-1 6-5 10\n-11 10h-1L1182 67 15 340h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z", + // widecheck paths are all inverted versions of widehat + widecheck1: "M529,159h5l519,-115c5,-1,9,-5,9,-10c0,-1,-1,-2,-1,-3l-4,-22c-1,\n-5,-5,-9,-11,-9h-2l-512,92l-513,-92h-2c-5,0,-9,4,-11,9l-5,22c-1,6,2,12,8,13z", + widecheck2: "M1181,220h2l1171,-176c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10,\n-11,-10h-1l-1168,153l-1167,-153h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z", + widecheck3: "M1181,280h2l1171,-236c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10,\n-11,-10h-1l-1168,213l-1167,-213h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z", + widecheck4: "M1181,340h2l1171,-296c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10,\n-11,-10h-1l-1168,273l-1167,-273h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z", + // The next ten paths support reaction arrows from the mhchem package. + // Arrows for \ce{<-->} are offset from xAxis by 0.22ex, per mhchem in LaTeX + // baraboveleftarrow is mostly from from glyph U+2190 in font KaTeX Main + baraboveleftarrow: "M400000 620h-399890l3 -3c68.7 -52.7 113.7 -120 135 -202\nc4 -14.7 6 -23 6 -25c0 -7.3 -7 -11 -21 -11c-8 0 -13.2 0.8 -15.5 2.5\nc-2.3 1.7 -4.2 5.8 -5.5 12.5c-1.3 4.7 -2.7 10.3 -4 17c-12 48.7 -34.8 92 -68.5 130\ns-74.2 66.3 -121.5 85c-10 4 -16 7.7 -18 11c0 8.7 6 14.3 18 17c47.3 18.7 87.8 47\n121.5 85s56.5 81.3 68.5 130c0.7 2 1.3 5 2 9s1.2 6.7 1.5 8c0.3 1.3 1 3.3 2 6\ns2.2 4.5 3.5 5.5c1.3 1 3.3 1.8 6 2.5s6 1 10 1c14 0 21 -3.7 21 -11\nc0 -2 -2 -10.3 -6 -25c-20 -79.3 -65 -146.7 -135 -202l-3 -3h399890z\nM100 620v40h399900v-40z M0 241v40h399900v-40zM0 241v40h399900v-40z", + // rightarrowabovebar is mostly from glyph U+2192, KaTeX Main + rightarrowabovebar: "M0 241v40h399891c-47.3 35.3-84 78-110 128-16.7 32\n-27.7 63.7-33 95 0 1.3-.2 2.7-.5 4-.3 1.3-.5 2.3-.5 3 0 7.3 6.7 11 20 11 8 0\n13.2-.8 15.5-2.5 2.3-1.7 4.2-5.5 5.5-11.5 2-13.3 5.7-27 11-41 14.7-44.7 39\n-84.5 73-119.5s73.7-60.2 119-75.5c6-2 9-5.7 9-11s-3-9-9-11c-45.3-15.3-85-40.5\n-119-75.5s-58.3-74.8-73-119.5c-4.7-14-8.3-27.3-11-40-1.3-6.7-3.2-10.8-5.5\n-12.5-2.3-1.7-7.5-2.5-15.5-2.5-14 0-21 3.7-21 11 0 2 2 10.3 6 25 20.7 83.3 67\n151.7 139 205zm96 379h399894v40H0zm0 0h399904v40H0z", + // The short left harpoon has 0.5em (i.e. 500 units) kern on the left end. + // Ref from mhchem.sty: \rlap{\raisebox{-.22ex}{$\kern0.5em + baraboveshortleftharpoon: "M507,435c-4,4,-6.3,8.7,-7,14c0,5.3,0.7,9,2,11\nc1.3,2,5.3,5.3,12,10c90.7,54,156,130,196,228c3.3,10.7,6.3,16.3,9,17\nc2,0.7,5,1,9,1c0,0,5,0,5,0c10.7,0,16.7,-2,18,-6c2,-2.7,1,-9.7,-3,-21\nc-32,-87.3,-82.7,-157.7,-152,-211c0,0,-3,-3,-3,-3l399351,0l0,-40\nc-398570,0,-399437,0,-399437,0z M593 435 v40 H399500 v-40z\nM0 281 v-40 H399908 v40z M0 281 v-40 H399908 v40z", + rightharpoonaboveshortbar: "M0,241 l0,40c399126,0,399993,0,399993,0\nc4.7,-4.7,7,-9.3,7,-14c0,-9.3,-3.7,-15.3,-11,-18c-92.7,-56.7,-159,-133.7,-199,\n-231c-3.3,-9.3,-6,-14.7,-8,-16c-2,-1.3,-7,-2,-15,-2c-10.7,0,-16.7,2,-18,6\nc-2,2.7,-1,9.7,3,21c15.3,42,36.7,81.8,64,119.5c27.3,37.7,58,69.2,92,94.5z\nM0 241 v40 H399908 v-40z M0 475 v-40 H399500 v40z M0 475 v-40 H399500 v40z", + shortbaraboveleftharpoon: "M7,435c-4,4,-6.3,8.7,-7,14c0,5.3,0.7,9,2,11\nc1.3,2,5.3,5.3,12,10c90.7,54,156,130,196,228c3.3,10.7,6.3,16.3,9,17c2,0.7,5,1,9,\n1c0,0,5,0,5,0c10.7,0,16.7,-2,18,-6c2,-2.7,1,-9.7,-3,-21c-32,-87.3,-82.7,-157.7,\n-152,-211c0,0,-3,-3,-3,-3l399907,0l0,-40c-399126,0,-399993,0,-399993,0z\nM93 435 v40 H400000 v-40z M500 241 v40 H400000 v-40z M500 241 v40 H400000 v-40z", + shortrightharpoonabovebar: "M53,241l0,40c398570,0,399437,0,399437,0\nc4.7,-4.7,7,-9.3,7,-14c0,-9.3,-3.7,-15.3,-11,-18c-92.7,-56.7,-159,-133.7,-199,\n-231c-3.3,-9.3,-6,-14.7,-8,-16c-2,-1.3,-7,-2,-15,-2c-10.7,0,-16.7,2,-18,6\nc-2,2.7,-1,9.7,3,21c15.3,42,36.7,81.8,64,119.5c27.3,37.7,58,69.2,92,94.5z\nM500 241 v40 H399408 v-40z M500 435 v40 H400000 v-40z" +}; +// CONCATENATED MODULE: ./src/tree.js + + +/** + * This node represents a document fragment, which contains elements, but when + * placed into the DOM doesn't have any representation itself. It only contains + * children and doesn't have any DOM node properties. + */ +var tree_DocumentFragment = +/*#__PURE__*/ +function () { + // HtmlDomNode + // Never used; needed for satisfying interface. + function DocumentFragment(children) { + this.children = void 0; + this.classes = void 0; + this.height = void 0; + this.depth = void 0; + this.maxFontSize = void 0; + this.style = void 0; + this.children = children; + this.classes = []; + this.height = 0; + this.depth = 0; + this.maxFontSize = 0; + this.style = {}; + } + + var _proto = DocumentFragment.prototype; + + _proto.hasClass = function hasClass(className) { + return utils.contains(this.classes, className); + } + /** Convert the fragment into a node. */ + ; + + _proto.toNode = function toNode() { + var frag = document.createDocumentFragment(); + + for (var i = 0; i < this.children.length; i++) { + frag.appendChild(this.children[i].toNode()); + } + + return frag; + } + /** Convert the fragment into HTML markup. */ + ; + + _proto.toMarkup = function toMarkup() { + var markup = ""; // Simply concatenate the markup for the children together. + + for (var i = 0; i < this.children.length; i++) { + markup += this.children[i].toMarkup(); + } + + return markup; + } + /** + * Converts the math node into a string, similar to innerText. Applies to + * MathDomNode's only. + */ + ; + + _proto.toText = function toText() { + // To avoid this, we would subclass documentFragment separately for + // MathML, but polyfills for subclassing is expensive per PR 1469. + // $FlowFixMe: Only works for ChildType = MathDomNode. + var toText = function toText(child) { + return child.toText(); + }; + + return this.children.map(toText).join(""); + }; + + return DocumentFragment; +}(); +// CONCATENATED MODULE: ./src/domTree.js +/** + * These objects store the data about the DOM nodes we create, as well as some + * extra data. They can then be transformed into real DOM nodes with the + * `toNode` function or HTML markup using `toMarkup`. They are useful for both + * storing extra properties on the nodes, as well as providing a way to easily + * work with the DOM. + * + * Similar functions for working with MathML nodes exist in mathMLTree.js. + * + * TODO: refactor `span` and `anchor` into common superclass when + * target environments support class inheritance + */ + + + + + +/** + * Create an HTML className based on a list of classes. In addition to joining + * with spaces, we also remove empty classes. + */ +var createClass = function createClass(classes) { + return classes.filter(function (cls) { + return cls; + }).join(" "); +}; + +var initNode = function initNode(classes, options, style) { + this.classes = classes || []; + this.attributes = {}; + this.height = 0; + this.depth = 0; + this.maxFontSize = 0; + this.style = style || {}; + + if (options) { + if (options.style.isTight()) { + this.classes.push("mtight"); + } + + var color = options.getColor(); + + if (color) { + this.style.color = color; + } + } +}; +/** + * Convert into an HTML node + */ + + +var _toNode = function toNode(tagName) { + var node = document.createElement(tagName); // Apply the class + + node.className = createClass(this.classes); // Apply inline styles + + for (var style in this.style) { + if (this.style.hasOwnProperty(style)) { + // $FlowFixMe Flow doesn't seem to understand span.style's type. + node.style[style] = this.style[style]; + } + } // Apply attributes + + + for (var attr in this.attributes) { + if (this.attributes.hasOwnProperty(attr)) { + node.setAttribute(attr, this.attributes[attr]); + } + } // Append the children, also as HTML nodes + + + for (var i = 0; i < this.children.length; i++) { + node.appendChild(this.children[i].toNode()); + } + + return node; +}; +/** + * Convert into an HTML markup string + */ + + +var _toMarkup = function toMarkup(tagName) { + var markup = "<" + tagName; // Add the class + + if (this.classes.length) { + markup += " class=\"" + utils.escape(createClass(this.classes)) + "\""; + } + + var styles = ""; // Add the styles, after hyphenation + + for (var style in this.style) { + if (this.style.hasOwnProperty(style)) { + styles += utils.hyphenate(style) + ":" + this.style[style] + ";"; + } + } + + if (styles) { + markup += " style=\"" + utils.escape(styles) + "\""; + } // Add the attributes + + + for (var attr in this.attributes) { + if (this.attributes.hasOwnProperty(attr)) { + markup += " " + attr + "=\"" + utils.escape(this.attributes[attr]) + "\""; + } + } + + markup += ">"; // Add the markup of the children, also as markup + + for (var i = 0; i < this.children.length; i++) { + markup += this.children[i].toMarkup(); + } + + markup += ""; + return markup; +}; // Making the type below exact with all optional fields doesn't work due to +// - https://github.com/facebook/flow/issues/4582 +// - https://github.com/facebook/flow/issues/5688 +// However, since *all* fields are optional, $Shape<> works as suggested in 5688 +// above. +// This type does not include all CSS properties. Additional properties should +// be added as needed. + + +/** + * This node represents a span node, with a className, a list of children, and + * an inline style. It also contains information about its height, depth, and + * maxFontSize. + * + * Represents two types with different uses: SvgSpan to wrap an SVG and DomSpan + * otherwise. This typesafety is important when HTML builders access a span's + * children. + */ +var domTree_Span = +/*#__PURE__*/ +function () { + function Span(classes, children, options, style) { + this.children = void 0; + this.attributes = void 0; + this.classes = void 0; + this.height = void 0; + this.depth = void 0; + this.width = void 0; + this.maxFontSize = void 0; + this.style = void 0; + initNode.call(this, classes, options, style); + this.children = children || []; + } + /** + * Sets an arbitrary attribute on the span. Warning: use this wisely. Not + * all browsers support attributes the same, and having too many custom + * attributes is probably bad. + */ + + + var _proto = Span.prototype; + + _proto.setAttribute = function setAttribute(attribute, value) { + this.attributes[attribute] = value; + }; + + _proto.hasClass = function hasClass(className) { + return utils.contains(this.classes, className); + }; + + _proto.toNode = function toNode() { + return _toNode.call(this, "span"); + }; + + _proto.toMarkup = function toMarkup() { + return _toMarkup.call(this, "span"); + }; + + return Span; +}(); +/** + * This node represents an anchor () element with a hyperlink. See `span` + * for further details. + */ + +var domTree_Anchor = +/*#__PURE__*/ +function () { + function Anchor(href, classes, children, options) { + this.children = void 0; + this.attributes = void 0; + this.classes = void 0; + this.height = void 0; + this.depth = void 0; + this.maxFontSize = void 0; + this.style = void 0; + initNode.call(this, classes, options); + this.children = children || []; + this.setAttribute('href', href); + } + + var _proto2 = Anchor.prototype; + + _proto2.setAttribute = function setAttribute(attribute, value) { + this.attributes[attribute] = value; + }; + + _proto2.hasClass = function hasClass(className) { + return utils.contains(this.classes, className); + }; + + _proto2.toNode = function toNode() { + return _toNode.call(this, "a"); + }; + + _proto2.toMarkup = function toMarkup() { + return _toMarkup.call(this, "a"); + }; + + return Anchor; +}(); +/** + * This node represents an image embed () element. + */ + +var domTree_Img = +/*#__PURE__*/ +function () { + function Img(src, alt, style) { + this.src = void 0; + this.alt = void 0; + this.classes = void 0; + this.height = void 0; + this.depth = void 0; + this.maxFontSize = void 0; + this.style = void 0; + this.alt = alt; + this.src = src; + this.classes = ["mord"]; + this.style = style; + } + + var _proto3 = Img.prototype; + + _proto3.hasClass = function hasClass(className) { + return utils.contains(this.classes, className); + }; + + _proto3.toNode = function toNode() { + var node = document.createElement("img"); + node.src = this.src; + node.alt = this.alt; + node.className = "mord"; // Apply inline styles + + for (var style in this.style) { + if (this.style.hasOwnProperty(style)) { + // $FlowFixMe + node.style[style] = this.style[style]; + } + } + + return node; + }; + + _proto3.toMarkup = function toMarkup() { + var markup = "" + this.alt + " 0) { + span = document.createElement("span"); + span.style.marginRight = this.italic + "em"; + } + + if (this.classes.length > 0) { + span = span || document.createElement("span"); + span.className = createClass(this.classes); + } + + for (var style in this.style) { + if (this.style.hasOwnProperty(style)) { + span = span || document.createElement("span"); // $FlowFixMe Flow doesn't seem to understand span.style's type. + + span.style[style] = this.style[style]; + } + } + + if (span) { + span.appendChild(node); + return span; + } else { + return node; + } + } + /** + * Creates markup for a symbol node. + */ + ; + + _proto4.toMarkup = function toMarkup() { + // TODO(alpert): More duplication than I'd like from + // span.prototype.toMarkup and symbolNode.prototype.toNode... + var needsSpan = false; + var markup = " 0) { + styles += "margin-right:" + this.italic + "em;"; + } + + for (var style in this.style) { + if (this.style.hasOwnProperty(style)) { + styles += utils.hyphenate(style) + ":" + this.style[style] + ";"; + } + } + + if (styles) { + needsSpan = true; + markup += " style=\"" + utils.escape(styles) + "\""; + } + + var escaped = utils.escape(this.text); + + if (needsSpan) { + markup += ">"; + markup += escaped; + markup += ""; + return markup; + } else { + return escaped; + } + }; + + return SymbolNode; +}(); +/** + * SVG nodes are used to render stretchy wide elements. + */ + +var SvgNode = +/*#__PURE__*/ +function () { + function SvgNode(children, attributes) { + this.children = void 0; + this.attributes = void 0; + this.children = children || []; + this.attributes = attributes || {}; + } + + var _proto5 = SvgNode.prototype; + + _proto5.toNode = function toNode() { + var svgNS = "http://www.w3.org/2000/svg"; + var node = document.createElementNS(svgNS, "svg"); // Apply attributes + + for (var attr in this.attributes) { + if (Object.prototype.hasOwnProperty.call(this.attributes, attr)) { + node.setAttribute(attr, this.attributes[attr]); + } + } + + for (var i = 0; i < this.children.length; i++) { + node.appendChild(this.children[i].toNode()); + } + + return node; + }; + + _proto5.toMarkup = function toMarkup() { + var markup = ""; + } else { + return ""; + } + }; + + return PathNode; +}(); +var LineNode = +/*#__PURE__*/ +function () { + function LineNode(attributes) { + this.attributes = void 0; + this.attributes = attributes || {}; + } + + var _proto7 = LineNode.prototype; + + _proto7.toNode = function toNode() { + var svgNS = "http://www.w3.org/2000/svg"; + var node = document.createElementNS(svgNS, "line"); // Apply attributes + + for (var attr in this.attributes) { + if (Object.prototype.hasOwnProperty.call(this.attributes, attr)) { + node.setAttribute(attr, this.attributes[attr]); + } + } + + return node; + }; + + _proto7.toMarkup = function toMarkup() { + var markup = " but got " + String(group) + "."); + } +} +// CONCATENATED MODULE: ./submodules/katex-fonts/fontMetricsData.js +// This file is GENERATED by buildMetrics.sh. DO NOT MODIFY. +/* harmony default export */ var fontMetricsData = ({ + "AMS-Regular": { + "32": [0, 0, 0, 0, 0.25], + "65": [0, 0.68889, 0, 0, 0.72222], + "66": [0, 0.68889, 0, 0, 0.66667], + "67": [0, 0.68889, 0, 0, 0.72222], + "68": [0, 0.68889, 0, 0, 0.72222], + "69": [0, 0.68889, 0, 0, 0.66667], + "70": [0, 0.68889, 0, 0, 0.61111], + "71": [0, 0.68889, 0, 0, 0.77778], + "72": [0, 0.68889, 0, 0, 0.77778], + "73": [0, 0.68889, 0, 0, 0.38889], + "74": [0.16667, 0.68889, 0, 0, 0.5], + "75": [0, 0.68889, 0, 0, 0.77778], + "76": [0, 0.68889, 0, 0, 0.66667], + "77": [0, 0.68889, 0, 0, 0.94445], + "78": [0, 0.68889, 0, 0, 0.72222], + "79": [0.16667, 0.68889, 0, 0, 0.77778], + "80": [0, 0.68889, 0, 0, 0.61111], + "81": [0.16667, 0.68889, 0, 0, 0.77778], + "82": [0, 0.68889, 0, 0, 0.72222], + "83": [0, 0.68889, 0, 0, 0.55556], + "84": [0, 0.68889, 0, 0, 0.66667], + "85": [0, 0.68889, 0, 0, 0.72222], + "86": [0, 0.68889, 0, 0, 0.72222], + "87": [0, 0.68889, 0, 0, 1.0], + "88": [0, 0.68889, 0, 0, 0.72222], + "89": [0, 0.68889, 0, 0, 0.72222], + "90": [0, 0.68889, 0, 0, 0.66667], + "107": [0, 0.68889, 0, 0, 0.55556], + "160": [0, 0, 0, 0, 0.25], + "165": [0, 0.675, 0.025, 0, 0.75], + "174": [0.15559, 0.69224, 0, 0, 0.94666], + "240": [0, 0.68889, 0, 0, 0.55556], + "295": [0, 0.68889, 0, 0, 0.54028], + "710": [0, 0.825, 0, 0, 2.33334], + "732": [0, 0.9, 0, 0, 2.33334], + "770": [0, 0.825, 0, 0, 2.33334], + "771": [0, 0.9, 0, 0, 2.33334], + "989": [0.08167, 0.58167, 0, 0, 0.77778], + "1008": [0, 0.43056, 0.04028, 0, 0.66667], + "8245": [0, 0.54986, 0, 0, 0.275], + "8463": [0, 0.68889, 0, 0, 0.54028], + "8487": [0, 0.68889, 0, 0, 0.72222], + "8498": [0, 0.68889, 0, 0, 0.55556], + "8502": [0, 0.68889, 0, 0, 0.66667], + "8503": [0, 0.68889, 0, 0, 0.44445], + "8504": [0, 0.68889, 0, 0, 0.66667], + "8513": [0, 0.68889, 0, 0, 0.63889], + "8592": [-0.03598, 0.46402, 0, 0, 0.5], + "8594": [-0.03598, 0.46402, 0, 0, 0.5], + "8602": [-0.13313, 0.36687, 0, 0, 1.0], + "8603": [-0.13313, 0.36687, 0, 0, 1.0], + "8606": [0.01354, 0.52239, 0, 0, 1.0], + "8608": [0.01354, 0.52239, 0, 0, 1.0], + "8610": [0.01354, 0.52239, 0, 0, 1.11111], + "8611": [0.01354, 0.52239, 0, 0, 1.11111], + "8619": [0, 0.54986, 0, 0, 1.0], + "8620": [0, 0.54986, 0, 0, 1.0], + "8621": [-0.13313, 0.37788, 0, 0, 1.38889], + "8622": [-0.13313, 0.36687, 0, 0, 1.0], + "8624": [0, 0.69224, 0, 0, 0.5], + "8625": [0, 0.69224, 0, 0, 0.5], + "8630": [0, 0.43056, 0, 0, 1.0], + "8631": [0, 0.43056, 0, 0, 1.0], + "8634": [0.08198, 0.58198, 0, 0, 0.77778], + "8635": [0.08198, 0.58198, 0, 0, 0.77778], + "8638": [0.19444, 0.69224, 0, 0, 0.41667], + "8639": [0.19444, 0.69224, 0, 0, 0.41667], + "8642": [0.19444, 0.69224, 0, 0, 0.41667], + "8643": [0.19444, 0.69224, 0, 0, 0.41667], + "8644": [0.1808, 0.675, 0, 0, 1.0], + "8646": [0.1808, 0.675, 0, 0, 1.0], + "8647": [0.1808, 0.675, 0, 0, 1.0], + "8648": [0.19444, 0.69224, 0, 0, 0.83334], + "8649": [0.1808, 0.675, 0, 0, 1.0], + "8650": [0.19444, 0.69224, 0, 0, 0.83334], + "8651": [0.01354, 0.52239, 0, 0, 1.0], + "8652": [0.01354, 0.52239, 0, 0, 1.0], + "8653": [-0.13313, 0.36687, 0, 0, 1.0], + "8654": [-0.13313, 0.36687, 0, 0, 1.0], + "8655": [-0.13313, 0.36687, 0, 0, 1.0], + "8666": [0.13667, 0.63667, 0, 0, 1.0], + "8667": [0.13667, 0.63667, 0, 0, 1.0], + "8669": [-0.13313, 0.37788, 0, 0, 1.0], + "8672": [-0.064, 0.437, 0, 0, 1.334], + "8674": [-0.064, 0.437, 0, 0, 1.334], + "8705": [0, 0.825, 0, 0, 0.5], + "8708": [0, 0.68889, 0, 0, 0.55556], + "8709": [0.08167, 0.58167, 0, 0, 0.77778], + "8717": [0, 0.43056, 0, 0, 0.42917], + "8722": [-0.03598, 0.46402, 0, 0, 0.5], + "8724": [0.08198, 0.69224, 0, 0, 0.77778], + "8726": [0.08167, 0.58167, 0, 0, 0.77778], + "8733": [0, 0.69224, 0, 0, 0.77778], + "8736": [0, 0.69224, 0, 0, 0.72222], + "8737": [0, 0.69224, 0, 0, 0.72222], + "8738": [0.03517, 0.52239, 0, 0, 0.72222], + "8739": [0.08167, 0.58167, 0, 0, 0.22222], + "8740": [0.25142, 0.74111, 0, 0, 0.27778], + "8741": [0.08167, 0.58167, 0, 0, 0.38889], + "8742": [0.25142, 0.74111, 0, 0, 0.5], + "8756": [0, 0.69224, 0, 0, 0.66667], + "8757": [0, 0.69224, 0, 0, 0.66667], + "8764": [-0.13313, 0.36687, 0, 0, 0.77778], + "8765": [-0.13313, 0.37788, 0, 0, 0.77778], + "8769": [-0.13313, 0.36687, 0, 0, 0.77778], + "8770": [-0.03625, 0.46375, 0, 0, 0.77778], + "8774": [0.30274, 0.79383, 0, 0, 0.77778], + "8776": [-0.01688, 0.48312, 0, 0, 0.77778], + "8778": [0.08167, 0.58167, 0, 0, 0.77778], + "8782": [0.06062, 0.54986, 0, 0, 0.77778], + "8783": [0.06062, 0.54986, 0, 0, 0.77778], + "8785": [0.08198, 0.58198, 0, 0, 0.77778], + "8786": [0.08198, 0.58198, 0, 0, 0.77778], + "8787": [0.08198, 0.58198, 0, 0, 0.77778], + "8790": [0, 0.69224, 0, 0, 0.77778], + "8791": [0.22958, 0.72958, 0, 0, 0.77778], + "8796": [0.08198, 0.91667, 0, 0, 0.77778], + "8806": [0.25583, 0.75583, 0, 0, 0.77778], + "8807": [0.25583, 0.75583, 0, 0, 0.77778], + "8808": [0.25142, 0.75726, 0, 0, 0.77778], + "8809": [0.25142, 0.75726, 0, 0, 0.77778], + "8812": [0.25583, 0.75583, 0, 0, 0.5], + "8814": [0.20576, 0.70576, 0, 0, 0.77778], + "8815": [0.20576, 0.70576, 0, 0, 0.77778], + "8816": [0.30274, 0.79383, 0, 0, 0.77778], + "8817": [0.30274, 0.79383, 0, 0, 0.77778], + "8818": [0.22958, 0.72958, 0, 0, 0.77778], + "8819": [0.22958, 0.72958, 0, 0, 0.77778], + "8822": [0.1808, 0.675, 0, 0, 0.77778], + "8823": [0.1808, 0.675, 0, 0, 0.77778], + "8828": [0.13667, 0.63667, 0, 0, 0.77778], + "8829": [0.13667, 0.63667, 0, 0, 0.77778], + "8830": [0.22958, 0.72958, 0, 0, 0.77778], + "8831": [0.22958, 0.72958, 0, 0, 0.77778], + "8832": [0.20576, 0.70576, 0, 0, 0.77778], + "8833": [0.20576, 0.70576, 0, 0, 0.77778], + "8840": [0.30274, 0.79383, 0, 0, 0.77778], + "8841": [0.30274, 0.79383, 0, 0, 0.77778], + "8842": [0.13597, 0.63597, 0, 0, 0.77778], + "8843": [0.13597, 0.63597, 0, 0, 0.77778], + "8847": [0.03517, 0.54986, 0, 0, 0.77778], + "8848": [0.03517, 0.54986, 0, 0, 0.77778], + "8858": [0.08198, 0.58198, 0, 0, 0.77778], + "8859": [0.08198, 0.58198, 0, 0, 0.77778], + "8861": [0.08198, 0.58198, 0, 0, 0.77778], + "8862": [0, 0.675, 0, 0, 0.77778], + "8863": [0, 0.675, 0, 0, 0.77778], + "8864": [0, 0.675, 0, 0, 0.77778], + "8865": [0, 0.675, 0, 0, 0.77778], + "8872": [0, 0.69224, 0, 0, 0.61111], + "8873": [0, 0.69224, 0, 0, 0.72222], + "8874": [0, 0.69224, 0, 0, 0.88889], + "8876": [0, 0.68889, 0, 0, 0.61111], + "8877": [0, 0.68889, 0, 0, 0.61111], + "8878": [0, 0.68889, 0, 0, 0.72222], + "8879": [0, 0.68889, 0, 0, 0.72222], + "8882": [0.03517, 0.54986, 0, 0, 0.77778], + "8883": [0.03517, 0.54986, 0, 0, 0.77778], + "8884": [0.13667, 0.63667, 0, 0, 0.77778], + "8885": [0.13667, 0.63667, 0, 0, 0.77778], + "8888": [0, 0.54986, 0, 0, 1.11111], + "8890": [0.19444, 0.43056, 0, 0, 0.55556], + "8891": [0.19444, 0.69224, 0, 0, 0.61111], + "8892": [0.19444, 0.69224, 0, 0, 0.61111], + "8901": [0, 0.54986, 0, 0, 0.27778], + "8903": [0.08167, 0.58167, 0, 0, 0.77778], + "8905": [0.08167, 0.58167, 0, 0, 0.77778], + "8906": [0.08167, 0.58167, 0, 0, 0.77778], + "8907": [0, 0.69224, 0, 0, 0.77778], + "8908": [0, 0.69224, 0, 0, 0.77778], + "8909": [-0.03598, 0.46402, 0, 0, 0.77778], + "8910": [0, 0.54986, 0, 0, 0.76042], + "8911": [0, 0.54986, 0, 0, 0.76042], + "8912": [0.03517, 0.54986, 0, 0, 0.77778], + "8913": [0.03517, 0.54986, 0, 0, 0.77778], + "8914": [0, 0.54986, 0, 0, 0.66667], + "8915": [0, 0.54986, 0, 0, 0.66667], + "8916": [0, 0.69224, 0, 0, 0.66667], + "8918": [0.0391, 0.5391, 0, 0, 0.77778], + "8919": [0.0391, 0.5391, 0, 0, 0.77778], + "8920": [0.03517, 0.54986, 0, 0, 1.33334], + "8921": [0.03517, 0.54986, 0, 0, 1.33334], + "8922": [0.38569, 0.88569, 0, 0, 0.77778], + "8923": [0.38569, 0.88569, 0, 0, 0.77778], + "8926": [0.13667, 0.63667, 0, 0, 0.77778], + "8927": [0.13667, 0.63667, 0, 0, 0.77778], + "8928": [0.30274, 0.79383, 0, 0, 0.77778], + "8929": [0.30274, 0.79383, 0, 0, 0.77778], + "8934": [0.23222, 0.74111, 0, 0, 0.77778], + "8935": [0.23222, 0.74111, 0, 0, 0.77778], + "8936": [0.23222, 0.74111, 0, 0, 0.77778], + "8937": [0.23222, 0.74111, 0, 0, 0.77778], + "8938": [0.20576, 0.70576, 0, 0, 0.77778], + "8939": [0.20576, 0.70576, 0, 0, 0.77778], + "8940": [0.30274, 0.79383, 0, 0, 0.77778], + "8941": [0.30274, 0.79383, 0, 0, 0.77778], + "8994": [0.19444, 0.69224, 0, 0, 0.77778], + "8995": [0.19444, 0.69224, 0, 0, 0.77778], + "9416": [0.15559, 0.69224, 0, 0, 0.90222], + "9484": [0, 0.69224, 0, 0, 0.5], + "9488": [0, 0.69224, 0, 0, 0.5], + "9492": [0, 0.37788, 0, 0, 0.5], + "9496": [0, 0.37788, 0, 0, 0.5], + "9585": [0.19444, 0.68889, 0, 0, 0.88889], + "9586": [0.19444, 0.74111, 0, 0, 0.88889], + "9632": [0, 0.675, 0, 0, 0.77778], + "9633": [0, 0.675, 0, 0, 0.77778], + "9650": [0, 0.54986, 0, 0, 0.72222], + "9651": [0, 0.54986, 0, 0, 0.72222], + "9654": [0.03517, 0.54986, 0, 0, 0.77778], + "9660": [0, 0.54986, 0, 0, 0.72222], + "9661": [0, 0.54986, 0, 0, 0.72222], + "9664": [0.03517, 0.54986, 0, 0, 0.77778], + "9674": [0.11111, 0.69224, 0, 0, 0.66667], + "9733": [0.19444, 0.69224, 0, 0, 0.94445], + "10003": [0, 0.69224, 0, 0, 0.83334], + "10016": [0, 0.69224, 0, 0, 0.83334], + "10731": [0.11111, 0.69224, 0, 0, 0.66667], + "10846": [0.19444, 0.75583, 0, 0, 0.61111], + "10877": [0.13667, 0.63667, 0, 0, 0.77778], + "10878": [0.13667, 0.63667, 0, 0, 0.77778], + "10885": [0.25583, 0.75583, 0, 0, 0.77778], + "10886": [0.25583, 0.75583, 0, 0, 0.77778], + "10887": [0.13597, 0.63597, 0, 0, 0.77778], + "10888": [0.13597, 0.63597, 0, 0, 0.77778], + "10889": [0.26167, 0.75726, 0, 0, 0.77778], + "10890": [0.26167, 0.75726, 0, 0, 0.77778], + "10891": [0.48256, 0.98256, 0, 0, 0.77778], + "10892": [0.48256, 0.98256, 0, 0, 0.77778], + "10901": [0.13667, 0.63667, 0, 0, 0.77778], + "10902": [0.13667, 0.63667, 0, 0, 0.77778], + "10933": [0.25142, 0.75726, 0, 0, 0.77778], + "10934": [0.25142, 0.75726, 0, 0, 0.77778], + "10935": [0.26167, 0.75726, 0, 0, 0.77778], + "10936": [0.26167, 0.75726, 0, 0, 0.77778], + "10937": [0.26167, 0.75726, 0, 0, 0.77778], + "10938": [0.26167, 0.75726, 0, 0, 0.77778], + "10949": [0.25583, 0.75583, 0, 0, 0.77778], + "10950": [0.25583, 0.75583, 0, 0, 0.77778], + "10955": [0.28481, 0.79383, 0, 0, 0.77778], + "10956": [0.28481, 0.79383, 0, 0, 0.77778], + "57350": [0.08167, 0.58167, 0, 0, 0.22222], + "57351": [0.08167, 0.58167, 0, 0, 0.38889], + "57352": [0.08167, 0.58167, 0, 0, 0.77778], + "57353": [0, 0.43056, 0.04028, 0, 0.66667], + "57356": [0.25142, 0.75726, 0, 0, 0.77778], + "57357": [0.25142, 0.75726, 0, 0, 0.77778], + "57358": [0.41951, 0.91951, 0, 0, 0.77778], + "57359": [0.30274, 0.79383, 0, 0, 0.77778], + "57360": [0.30274, 0.79383, 0, 0, 0.77778], + "57361": [0.41951, 0.91951, 0, 0, 0.77778], + "57366": [0.25142, 0.75726, 0, 0, 0.77778], + "57367": [0.25142, 0.75726, 0, 0, 0.77778], + "57368": [0.25142, 0.75726, 0, 0, 0.77778], + "57369": [0.25142, 0.75726, 0, 0, 0.77778], + "57370": [0.13597, 0.63597, 0, 0, 0.77778], + "57371": [0.13597, 0.63597, 0, 0, 0.77778] + }, + "Caligraphic-Regular": { + "32": [0, 0, 0, 0, 0.25], + "65": [0, 0.68333, 0, 0.19445, 0.79847], + "66": [0, 0.68333, 0.03041, 0.13889, 0.65681], + "67": [0, 0.68333, 0.05834, 0.13889, 0.52653], + "68": [0, 0.68333, 0.02778, 0.08334, 0.77139], + "69": [0, 0.68333, 0.08944, 0.11111, 0.52778], + "70": [0, 0.68333, 0.09931, 0.11111, 0.71875], + "71": [0.09722, 0.68333, 0.0593, 0.11111, 0.59487], + "72": [0, 0.68333, 0.00965, 0.11111, 0.84452], + "73": [0, 0.68333, 0.07382, 0, 0.54452], + "74": [0.09722, 0.68333, 0.18472, 0.16667, 0.67778], + "75": [0, 0.68333, 0.01445, 0.05556, 0.76195], + "76": [0, 0.68333, 0, 0.13889, 0.68972], + "77": [0, 0.68333, 0, 0.13889, 1.2009], + "78": [0, 0.68333, 0.14736, 0.08334, 0.82049], + "79": [0, 0.68333, 0.02778, 0.11111, 0.79611], + "80": [0, 0.68333, 0.08222, 0.08334, 0.69556], + "81": [0.09722, 0.68333, 0, 0.11111, 0.81667], + "82": [0, 0.68333, 0, 0.08334, 0.8475], + "83": [0, 0.68333, 0.075, 0.13889, 0.60556], + "84": [0, 0.68333, 0.25417, 0, 0.54464], + "85": [0, 0.68333, 0.09931, 0.08334, 0.62583], + "86": [0, 0.68333, 0.08222, 0, 0.61278], + "87": [0, 0.68333, 0.08222, 0.08334, 0.98778], + "88": [0, 0.68333, 0.14643, 0.13889, 0.7133], + "89": [0.09722, 0.68333, 0.08222, 0.08334, 0.66834], + "90": [0, 0.68333, 0.07944, 0.13889, 0.72473], + "160": [0, 0, 0, 0, 0.25] + }, + "Fraktur-Regular": { + "32": [0, 0, 0, 0, 0.25], + "33": [0, 0.69141, 0, 0, 0.29574], + "34": [0, 0.69141, 0, 0, 0.21471], + "38": [0, 0.69141, 0, 0, 0.73786], + "39": [0, 0.69141, 0, 0, 0.21201], + "40": [0.24982, 0.74947, 0, 0, 0.38865], + "41": [0.24982, 0.74947, 0, 0, 0.38865], + "42": [0, 0.62119, 0, 0, 0.27764], + "43": [0.08319, 0.58283, 0, 0, 0.75623], + "44": [0, 0.10803, 0, 0, 0.27764], + "45": [0.08319, 0.58283, 0, 0, 0.75623], + "46": [0, 0.10803, 0, 0, 0.27764], + "47": [0.24982, 0.74947, 0, 0, 0.50181], + "48": [0, 0.47534, 0, 0, 0.50181], + "49": [0, 0.47534, 0, 0, 0.50181], + "50": [0, 0.47534, 0, 0, 0.50181], + "51": [0.18906, 0.47534, 0, 0, 0.50181], + "52": [0.18906, 0.47534, 0, 0, 0.50181], + "53": [0.18906, 0.47534, 0, 0, 0.50181], + "54": [0, 0.69141, 0, 0, 0.50181], + "55": [0.18906, 0.47534, 0, 0, 0.50181], + "56": [0, 0.69141, 0, 0, 0.50181], + "57": [0.18906, 0.47534, 0, 0, 0.50181], + "58": [0, 0.47534, 0, 0, 0.21606], + "59": [0.12604, 0.47534, 0, 0, 0.21606], + "61": [-0.13099, 0.36866, 0, 0, 0.75623], + "63": [0, 0.69141, 0, 0, 0.36245], + "65": [0, 0.69141, 0, 0, 0.7176], + "66": [0, 0.69141, 0, 0, 0.88397], + "67": [0, 0.69141, 0, 0, 0.61254], + "68": [0, 0.69141, 0, 0, 0.83158], + "69": [0, 0.69141, 0, 0, 0.66278], + "70": [0.12604, 0.69141, 0, 0, 0.61119], + "71": [0, 0.69141, 0, 0, 0.78539], + "72": [0.06302, 0.69141, 0, 0, 0.7203], + "73": [0, 0.69141, 0, 0, 0.55448], + "74": [0.12604, 0.69141, 0, 0, 0.55231], + "75": [0, 0.69141, 0, 0, 0.66845], + "76": [0, 0.69141, 0, 0, 0.66602], + "77": [0, 0.69141, 0, 0, 1.04953], + "78": [0, 0.69141, 0, 0, 0.83212], + "79": [0, 0.69141, 0, 0, 0.82699], + "80": [0.18906, 0.69141, 0, 0, 0.82753], + "81": [0.03781, 0.69141, 0, 0, 0.82699], + "82": [0, 0.69141, 0, 0, 0.82807], + "83": [0, 0.69141, 0, 0, 0.82861], + "84": [0, 0.69141, 0, 0, 0.66899], + "85": [0, 0.69141, 0, 0, 0.64576], + "86": [0, 0.69141, 0, 0, 0.83131], + "87": [0, 0.69141, 0, 0, 1.04602], + "88": [0, 0.69141, 0, 0, 0.71922], + "89": [0.18906, 0.69141, 0, 0, 0.83293], + "90": [0.12604, 0.69141, 0, 0, 0.60201], + "91": [0.24982, 0.74947, 0, 0, 0.27764], + "93": [0.24982, 0.74947, 0, 0, 0.27764], + "94": [0, 0.69141, 0, 0, 0.49965], + "97": [0, 0.47534, 0, 0, 0.50046], + "98": [0, 0.69141, 0, 0, 0.51315], + "99": [0, 0.47534, 0, 0, 0.38946], + "100": [0, 0.62119, 0, 0, 0.49857], + "101": [0, 0.47534, 0, 0, 0.40053], + "102": [0.18906, 0.69141, 0, 0, 0.32626], + "103": [0.18906, 0.47534, 0, 0, 0.5037], + "104": [0.18906, 0.69141, 0, 0, 0.52126], + "105": [0, 0.69141, 0, 0, 0.27899], + "106": [0, 0.69141, 0, 0, 0.28088], + "107": [0, 0.69141, 0, 0, 0.38946], + "108": [0, 0.69141, 0, 0, 0.27953], + "109": [0, 0.47534, 0, 0, 0.76676], + "110": [0, 0.47534, 0, 0, 0.52666], + "111": [0, 0.47534, 0, 0, 0.48885], + "112": [0.18906, 0.52396, 0, 0, 0.50046], + "113": [0.18906, 0.47534, 0, 0, 0.48912], + "114": [0, 0.47534, 0, 0, 0.38919], + "115": [0, 0.47534, 0, 0, 0.44266], + "116": [0, 0.62119, 0, 0, 0.33301], + "117": [0, 0.47534, 0, 0, 0.5172], + "118": [0, 0.52396, 0, 0, 0.5118], + "119": [0, 0.52396, 0, 0, 0.77351], + "120": [0.18906, 0.47534, 0, 0, 0.38865], + "121": [0.18906, 0.47534, 0, 0, 0.49884], + "122": [0.18906, 0.47534, 0, 0, 0.39054], + "160": [0, 0, 0, 0, 0.25], + "8216": [0, 0.69141, 0, 0, 0.21471], + "8217": [0, 0.69141, 0, 0, 0.21471], + "58112": [0, 0.62119, 0, 0, 0.49749], + "58113": [0, 0.62119, 0, 0, 0.4983], + "58114": [0.18906, 0.69141, 0, 0, 0.33328], + "58115": [0.18906, 0.69141, 0, 0, 0.32923], + "58116": [0.18906, 0.47534, 0, 0, 0.50343], + "58117": [0, 0.69141, 0, 0, 0.33301], + "58118": [0, 0.62119, 0, 0, 0.33409], + "58119": [0, 0.47534, 0, 0, 0.50073] + }, + "Main-Bold": { + "32": [0, 0, 0, 0, 0.25], + "33": [0, 0.69444, 0, 0, 0.35], + "34": [0, 0.69444, 0, 0, 0.60278], + "35": [0.19444, 0.69444, 0, 0, 0.95833], + "36": [0.05556, 0.75, 0, 0, 0.575], + "37": [0.05556, 0.75, 0, 0, 0.95833], + "38": [0, 0.69444, 0, 0, 0.89444], + "39": [0, 0.69444, 0, 0, 0.31944], + "40": [0.25, 0.75, 0, 0, 0.44722], + "41": [0.25, 0.75, 0, 0, 0.44722], + "42": [0, 0.75, 0, 0, 0.575], + "43": [0.13333, 0.63333, 0, 0, 0.89444], + "44": [0.19444, 0.15556, 0, 0, 0.31944], + "45": [0, 0.44444, 0, 0, 0.38333], + "46": [0, 0.15556, 0, 0, 0.31944], + "47": [0.25, 0.75, 0, 0, 0.575], + "48": [0, 0.64444, 0, 0, 0.575], + "49": [0, 0.64444, 0, 0, 0.575], + "50": [0, 0.64444, 0, 0, 0.575], + "51": [0, 0.64444, 0, 0, 0.575], + "52": [0, 0.64444, 0, 0, 0.575], + "53": [0, 0.64444, 0, 0, 0.575], + "54": [0, 0.64444, 0, 0, 0.575], + "55": [0, 0.64444, 0, 0, 0.575], + "56": [0, 0.64444, 0, 0, 0.575], + "57": [0, 0.64444, 0, 0, 0.575], + "58": [0, 0.44444, 0, 0, 0.31944], + "59": [0.19444, 0.44444, 0, 0, 0.31944], + "60": [0.08556, 0.58556, 0, 0, 0.89444], + "61": [-0.10889, 0.39111, 0, 0, 0.89444], + "62": [0.08556, 0.58556, 0, 0, 0.89444], + "63": [0, 0.69444, 0, 0, 0.54305], + "64": [0, 0.69444, 0, 0, 0.89444], + "65": [0, 0.68611, 0, 0, 0.86944], + "66": [0, 0.68611, 0, 0, 0.81805], + "67": [0, 0.68611, 0, 0, 0.83055], + "68": [0, 0.68611, 0, 0, 0.88194], + "69": [0, 0.68611, 0, 0, 0.75555], + "70": [0, 0.68611, 0, 0, 0.72361], + "71": [0, 0.68611, 0, 0, 0.90416], + "72": [0, 0.68611, 0, 0, 0.9], + "73": [0, 0.68611, 0, 0, 0.43611], + "74": [0, 0.68611, 0, 0, 0.59444], + "75": [0, 0.68611, 0, 0, 0.90138], + "76": [0, 0.68611, 0, 0, 0.69166], + "77": [0, 0.68611, 0, 0, 1.09166], + "78": [0, 0.68611, 0, 0, 0.9], + "79": [0, 0.68611, 0, 0, 0.86388], + "80": [0, 0.68611, 0, 0, 0.78611], + "81": [0.19444, 0.68611, 0, 0, 0.86388], + "82": [0, 0.68611, 0, 0, 0.8625], + "83": [0, 0.68611, 0, 0, 0.63889], + "84": [0, 0.68611, 0, 0, 0.8], + "85": [0, 0.68611, 0, 0, 0.88472], + "86": [0, 0.68611, 0.01597, 0, 0.86944], + "87": [0, 0.68611, 0.01597, 0, 1.18888], + "88": [0, 0.68611, 0, 0, 0.86944], + "89": [0, 0.68611, 0.02875, 0, 0.86944], + "90": [0, 0.68611, 0, 0, 0.70277], + "91": [0.25, 0.75, 0, 0, 0.31944], + "92": [0.25, 0.75, 0, 0, 0.575], + "93": [0.25, 0.75, 0, 0, 0.31944], + "94": [0, 0.69444, 0, 0, 0.575], + "95": [0.31, 0.13444, 0.03194, 0, 0.575], + "97": [0, 0.44444, 0, 0, 0.55902], + "98": [0, 0.69444, 0, 0, 0.63889], + "99": [0, 0.44444, 0, 0, 0.51111], + "100": [0, 0.69444, 0, 0, 0.63889], + "101": [0, 0.44444, 0, 0, 0.52708], + "102": [0, 0.69444, 0.10903, 0, 0.35139], + "103": [0.19444, 0.44444, 0.01597, 0, 0.575], + "104": [0, 0.69444, 0, 0, 0.63889], + "105": [0, 0.69444, 0, 0, 0.31944], + "106": [0.19444, 0.69444, 0, 0, 0.35139], + "107": [0, 0.69444, 0, 0, 0.60694], + "108": [0, 0.69444, 0, 0, 0.31944], + "109": [0, 0.44444, 0, 0, 0.95833], + "110": [0, 0.44444, 0, 0, 0.63889], + "111": [0, 0.44444, 0, 0, 0.575], + "112": [0.19444, 0.44444, 0, 0, 0.63889], + "113": [0.19444, 0.44444, 0, 0, 0.60694], + "114": [0, 0.44444, 0, 0, 0.47361], + "115": [0, 0.44444, 0, 0, 0.45361], + "116": [0, 0.63492, 0, 0, 0.44722], + "117": [0, 0.44444, 0, 0, 0.63889], + "118": [0, 0.44444, 0.01597, 0, 0.60694], + "119": [0, 0.44444, 0.01597, 0, 0.83055], + "120": [0, 0.44444, 0, 0, 0.60694], + "121": [0.19444, 0.44444, 0.01597, 0, 0.60694], + "122": [0, 0.44444, 0, 0, 0.51111], + "123": [0.25, 0.75, 0, 0, 0.575], + "124": [0.25, 0.75, 0, 0, 0.31944], + "125": [0.25, 0.75, 0, 0, 0.575], + "126": [0.35, 0.34444, 0, 0, 0.575], + "160": [0, 0, 0, 0, 0.25], + "163": [0, 0.69444, 0, 0, 0.86853], + "168": [0, 0.69444, 0, 0, 0.575], + "172": [0, 0.44444, 0, 0, 0.76666], + "176": [0, 0.69444, 0, 0, 0.86944], + "177": [0.13333, 0.63333, 0, 0, 0.89444], + "184": [0.17014, 0, 0, 0, 0.51111], + "198": [0, 0.68611, 0, 0, 1.04166], + "215": [0.13333, 0.63333, 0, 0, 0.89444], + "216": [0.04861, 0.73472, 0, 0, 0.89444], + "223": [0, 0.69444, 0, 0, 0.59722], + "230": [0, 0.44444, 0, 0, 0.83055], + "247": [0.13333, 0.63333, 0, 0, 0.89444], + "248": [0.09722, 0.54167, 0, 0, 0.575], + "305": [0, 0.44444, 0, 0, 0.31944], + "338": [0, 0.68611, 0, 0, 1.16944], + "339": [0, 0.44444, 0, 0, 0.89444], + "567": [0.19444, 0.44444, 0, 0, 0.35139], + "710": [0, 0.69444, 0, 0, 0.575], + "711": [0, 0.63194, 0, 0, 0.575], + "713": [0, 0.59611, 0, 0, 0.575], + "714": [0, 0.69444, 0, 0, 0.575], + "715": [0, 0.69444, 0, 0, 0.575], + "728": [0, 0.69444, 0, 0, 0.575], + "729": [0, 0.69444, 0, 0, 0.31944], + "730": [0, 0.69444, 0, 0, 0.86944], + "732": [0, 0.69444, 0, 0, 0.575], + "733": [0, 0.69444, 0, 0, 0.575], + "915": [0, 0.68611, 0, 0, 0.69166], + "916": [0, 0.68611, 0, 0, 0.95833], + "920": [0, 0.68611, 0, 0, 0.89444], + "923": [0, 0.68611, 0, 0, 0.80555], + "926": [0, 0.68611, 0, 0, 0.76666], + "928": [0, 0.68611, 0, 0, 0.9], + "931": [0, 0.68611, 0, 0, 0.83055], + "933": [0, 0.68611, 0, 0, 0.89444], + "934": [0, 0.68611, 0, 0, 0.83055], + "936": [0, 0.68611, 0, 0, 0.89444], + "937": [0, 0.68611, 0, 0, 0.83055], + "8211": [0, 0.44444, 0.03194, 0, 0.575], + "8212": [0, 0.44444, 0.03194, 0, 1.14999], + "8216": [0, 0.69444, 0, 0, 0.31944], + "8217": [0, 0.69444, 0, 0, 0.31944], + "8220": [0, 0.69444, 0, 0, 0.60278], + "8221": [0, 0.69444, 0, 0, 0.60278], + "8224": [0.19444, 0.69444, 0, 0, 0.51111], + "8225": [0.19444, 0.69444, 0, 0, 0.51111], + "8242": [0, 0.55556, 0, 0, 0.34444], + "8407": [0, 0.72444, 0.15486, 0, 0.575], + "8463": [0, 0.69444, 0, 0, 0.66759], + "8465": [0, 0.69444, 0, 0, 0.83055], + "8467": [0, 0.69444, 0, 0, 0.47361], + "8472": [0.19444, 0.44444, 0, 0, 0.74027], + "8476": [0, 0.69444, 0, 0, 0.83055], + "8501": [0, 0.69444, 0, 0, 0.70277], + "8592": [-0.10889, 0.39111, 0, 0, 1.14999], + "8593": [0.19444, 0.69444, 0, 0, 0.575], + "8594": [-0.10889, 0.39111, 0, 0, 1.14999], + "8595": [0.19444, 0.69444, 0, 0, 0.575], + "8596": [-0.10889, 0.39111, 0, 0, 1.14999], + "8597": [0.25, 0.75, 0, 0, 0.575], + "8598": [0.19444, 0.69444, 0, 0, 1.14999], + "8599": [0.19444, 0.69444, 0, 0, 1.14999], + "8600": [0.19444, 0.69444, 0, 0, 1.14999], + "8601": [0.19444, 0.69444, 0, 0, 1.14999], + "8636": [-0.10889, 0.39111, 0, 0, 1.14999], + "8637": [-0.10889, 0.39111, 0, 0, 1.14999], + "8640": [-0.10889, 0.39111, 0, 0, 1.14999], + "8641": [-0.10889, 0.39111, 0, 0, 1.14999], + "8656": [-0.10889, 0.39111, 0, 0, 1.14999], + "8657": [0.19444, 0.69444, 0, 0, 0.70277], + "8658": [-0.10889, 0.39111, 0, 0, 1.14999], + "8659": [0.19444, 0.69444, 0, 0, 0.70277], + "8660": [-0.10889, 0.39111, 0, 0, 1.14999], + "8661": [0.25, 0.75, 0, 0, 0.70277], + "8704": [0, 0.69444, 0, 0, 0.63889], + "8706": [0, 0.69444, 0.06389, 0, 0.62847], + "8707": [0, 0.69444, 0, 0, 0.63889], + "8709": [0.05556, 0.75, 0, 0, 0.575], + "8711": [0, 0.68611, 0, 0, 0.95833], + "8712": [0.08556, 0.58556, 0, 0, 0.76666], + "8715": [0.08556, 0.58556, 0, 0, 0.76666], + "8722": [0.13333, 0.63333, 0, 0, 0.89444], + "8723": [0.13333, 0.63333, 0, 0, 0.89444], + "8725": [0.25, 0.75, 0, 0, 0.575], + "8726": [0.25, 0.75, 0, 0, 0.575], + "8727": [-0.02778, 0.47222, 0, 0, 0.575], + "8728": [-0.02639, 0.47361, 0, 0, 0.575], + "8729": [-0.02639, 0.47361, 0, 0, 0.575], + "8730": [0.18, 0.82, 0, 0, 0.95833], + "8733": [0, 0.44444, 0, 0, 0.89444], + "8734": [0, 0.44444, 0, 0, 1.14999], + "8736": [0, 0.69224, 0, 0, 0.72222], + "8739": [0.25, 0.75, 0, 0, 0.31944], + "8741": [0.25, 0.75, 0, 0, 0.575], + "8743": [0, 0.55556, 0, 0, 0.76666], + "8744": [0, 0.55556, 0, 0, 0.76666], + "8745": [0, 0.55556, 0, 0, 0.76666], + "8746": [0, 0.55556, 0, 0, 0.76666], + "8747": [0.19444, 0.69444, 0.12778, 0, 0.56875], + "8764": [-0.10889, 0.39111, 0, 0, 0.89444], + "8768": [0.19444, 0.69444, 0, 0, 0.31944], + "8771": [0.00222, 0.50222, 0, 0, 0.89444], + "8776": [0.02444, 0.52444, 0, 0, 0.89444], + "8781": [0.00222, 0.50222, 0, 0, 0.89444], + "8801": [0.00222, 0.50222, 0, 0, 0.89444], + "8804": [0.19667, 0.69667, 0, 0, 0.89444], + "8805": [0.19667, 0.69667, 0, 0, 0.89444], + "8810": [0.08556, 0.58556, 0, 0, 1.14999], + "8811": [0.08556, 0.58556, 0, 0, 1.14999], + "8826": [0.08556, 0.58556, 0, 0, 0.89444], + "8827": [0.08556, 0.58556, 0, 0, 0.89444], + "8834": [0.08556, 0.58556, 0, 0, 0.89444], + "8835": [0.08556, 0.58556, 0, 0, 0.89444], + "8838": [0.19667, 0.69667, 0, 0, 0.89444], + "8839": [0.19667, 0.69667, 0, 0, 0.89444], + "8846": [0, 0.55556, 0, 0, 0.76666], + "8849": [0.19667, 0.69667, 0, 0, 0.89444], + "8850": [0.19667, 0.69667, 0, 0, 0.89444], + "8851": [0, 0.55556, 0, 0, 0.76666], + "8852": [0, 0.55556, 0, 0, 0.76666], + "8853": [0.13333, 0.63333, 0, 0, 0.89444], + "8854": [0.13333, 0.63333, 0, 0, 0.89444], + "8855": [0.13333, 0.63333, 0, 0, 0.89444], + "8856": [0.13333, 0.63333, 0, 0, 0.89444], + "8857": [0.13333, 0.63333, 0, 0, 0.89444], + "8866": [0, 0.69444, 0, 0, 0.70277], + "8867": [0, 0.69444, 0, 0, 0.70277], + "8868": [0, 0.69444, 0, 0, 0.89444], + "8869": [0, 0.69444, 0, 0, 0.89444], + "8900": [-0.02639, 0.47361, 0, 0, 0.575], + "8901": [-0.02639, 0.47361, 0, 0, 0.31944], + "8902": [-0.02778, 0.47222, 0, 0, 0.575], + "8968": [0.25, 0.75, 0, 0, 0.51111], + "8969": [0.25, 0.75, 0, 0, 0.51111], + "8970": [0.25, 0.75, 0, 0, 0.51111], + "8971": [0.25, 0.75, 0, 0, 0.51111], + "8994": [-0.13889, 0.36111, 0, 0, 1.14999], + "8995": [-0.13889, 0.36111, 0, 0, 1.14999], + "9651": [0.19444, 0.69444, 0, 0, 1.02222], + "9657": [-0.02778, 0.47222, 0, 0, 0.575], + "9661": [0.19444, 0.69444, 0, 0, 1.02222], + "9667": [-0.02778, 0.47222, 0, 0, 0.575], + "9711": [0.19444, 0.69444, 0, 0, 1.14999], + "9824": [0.12963, 0.69444, 0, 0, 0.89444], + "9825": [0.12963, 0.69444, 0, 0, 0.89444], + "9826": [0.12963, 0.69444, 0, 0, 0.89444], + "9827": [0.12963, 0.69444, 0, 0, 0.89444], + "9837": [0, 0.75, 0, 0, 0.44722], + "9838": [0.19444, 0.69444, 0, 0, 0.44722], + "9839": [0.19444, 0.69444, 0, 0, 0.44722], + "10216": [0.25, 0.75, 0, 0, 0.44722], + "10217": [0.25, 0.75, 0, 0, 0.44722], + "10815": [0, 0.68611, 0, 0, 0.9], + "10927": [0.19667, 0.69667, 0, 0, 0.89444], + "10928": [0.19667, 0.69667, 0, 0, 0.89444], + "57376": [0.19444, 0.69444, 0, 0, 0] + }, + "Main-BoldItalic": { + "32": [0, 0, 0, 0, 0.25], + "33": [0, 0.69444, 0.11417, 0, 0.38611], + "34": [0, 0.69444, 0.07939, 0, 0.62055], + "35": [0.19444, 0.69444, 0.06833, 0, 0.94444], + "37": [0.05556, 0.75, 0.12861, 0, 0.94444], + "38": [0, 0.69444, 0.08528, 0, 0.88555], + "39": [0, 0.69444, 0.12945, 0, 0.35555], + "40": [0.25, 0.75, 0.15806, 0, 0.47333], + "41": [0.25, 0.75, 0.03306, 0, 0.47333], + "42": [0, 0.75, 0.14333, 0, 0.59111], + "43": [0.10333, 0.60333, 0.03306, 0, 0.88555], + "44": [0.19444, 0.14722, 0, 0, 0.35555], + "45": [0, 0.44444, 0.02611, 0, 0.41444], + "46": [0, 0.14722, 0, 0, 0.35555], + "47": [0.25, 0.75, 0.15806, 0, 0.59111], + "48": [0, 0.64444, 0.13167, 0, 0.59111], + "49": [0, 0.64444, 0.13167, 0, 0.59111], + "50": [0, 0.64444, 0.13167, 0, 0.59111], + "51": [0, 0.64444, 0.13167, 0, 0.59111], + "52": [0.19444, 0.64444, 0.13167, 0, 0.59111], + "53": [0, 0.64444, 0.13167, 0, 0.59111], + "54": [0, 0.64444, 0.13167, 0, 0.59111], + "55": [0.19444, 0.64444, 0.13167, 0, 0.59111], + "56": [0, 0.64444, 0.13167, 0, 0.59111], + "57": [0, 0.64444, 0.13167, 0, 0.59111], + "58": [0, 0.44444, 0.06695, 0, 0.35555], + "59": [0.19444, 0.44444, 0.06695, 0, 0.35555], + "61": [-0.10889, 0.39111, 0.06833, 0, 0.88555], + "63": [0, 0.69444, 0.11472, 0, 0.59111], + "64": [0, 0.69444, 0.09208, 0, 0.88555], + "65": [0, 0.68611, 0, 0, 0.86555], + "66": [0, 0.68611, 0.0992, 0, 0.81666], + "67": [0, 0.68611, 0.14208, 0, 0.82666], + "68": [0, 0.68611, 0.09062, 0, 0.87555], + "69": [0, 0.68611, 0.11431, 0, 0.75666], + "70": [0, 0.68611, 0.12903, 0, 0.72722], + "71": [0, 0.68611, 0.07347, 0, 0.89527], + "72": [0, 0.68611, 0.17208, 0, 0.8961], + "73": [0, 0.68611, 0.15681, 0, 0.47166], + "74": [0, 0.68611, 0.145, 0, 0.61055], + "75": [0, 0.68611, 0.14208, 0, 0.89499], + "76": [0, 0.68611, 0, 0, 0.69777], + "77": [0, 0.68611, 0.17208, 0, 1.07277], + "78": [0, 0.68611, 0.17208, 0, 0.8961], + "79": [0, 0.68611, 0.09062, 0, 0.85499], + "80": [0, 0.68611, 0.0992, 0, 0.78721], + "81": [0.19444, 0.68611, 0.09062, 0, 0.85499], + "82": [0, 0.68611, 0.02559, 0, 0.85944], + "83": [0, 0.68611, 0.11264, 0, 0.64999], + "84": [0, 0.68611, 0.12903, 0, 0.7961], + "85": [0, 0.68611, 0.17208, 0, 0.88083], + "86": [0, 0.68611, 0.18625, 0, 0.86555], + "87": [0, 0.68611, 0.18625, 0, 1.15999], + "88": [0, 0.68611, 0.15681, 0, 0.86555], + "89": [0, 0.68611, 0.19803, 0, 0.86555], + "90": [0, 0.68611, 0.14208, 0, 0.70888], + "91": [0.25, 0.75, 0.1875, 0, 0.35611], + "93": [0.25, 0.75, 0.09972, 0, 0.35611], + "94": [0, 0.69444, 0.06709, 0, 0.59111], + "95": [0.31, 0.13444, 0.09811, 0, 0.59111], + "97": [0, 0.44444, 0.09426, 0, 0.59111], + "98": [0, 0.69444, 0.07861, 0, 0.53222], + "99": [0, 0.44444, 0.05222, 0, 0.53222], + "100": [0, 0.69444, 0.10861, 0, 0.59111], + "101": [0, 0.44444, 0.085, 0, 0.53222], + "102": [0.19444, 0.69444, 0.21778, 0, 0.4], + "103": [0.19444, 0.44444, 0.105, 0, 0.53222], + "104": [0, 0.69444, 0.09426, 0, 0.59111], + "105": [0, 0.69326, 0.11387, 0, 0.35555], + "106": [0.19444, 0.69326, 0.1672, 0, 0.35555], + "107": [0, 0.69444, 0.11111, 0, 0.53222], + "108": [0, 0.69444, 0.10861, 0, 0.29666], + "109": [0, 0.44444, 0.09426, 0, 0.94444], + "110": [0, 0.44444, 0.09426, 0, 0.64999], + "111": [0, 0.44444, 0.07861, 0, 0.59111], + "112": [0.19444, 0.44444, 0.07861, 0, 0.59111], + "113": [0.19444, 0.44444, 0.105, 0, 0.53222], + "114": [0, 0.44444, 0.11111, 0, 0.50167], + "115": [0, 0.44444, 0.08167, 0, 0.48694], + "116": [0, 0.63492, 0.09639, 0, 0.385], + "117": [0, 0.44444, 0.09426, 0, 0.62055], + "118": [0, 0.44444, 0.11111, 0, 0.53222], + "119": [0, 0.44444, 0.11111, 0, 0.76777], + "120": [0, 0.44444, 0.12583, 0, 0.56055], + "121": [0.19444, 0.44444, 0.105, 0, 0.56166], + "122": [0, 0.44444, 0.13889, 0, 0.49055], + "126": [0.35, 0.34444, 0.11472, 0, 0.59111], + "160": [0, 0, 0, 0, 0.25], + "168": [0, 0.69444, 0.11473, 0, 0.59111], + "176": [0, 0.69444, 0, 0, 0.94888], + "184": [0.17014, 0, 0, 0, 0.53222], + "198": [0, 0.68611, 0.11431, 0, 1.02277], + "216": [0.04861, 0.73472, 0.09062, 0, 0.88555], + "223": [0.19444, 0.69444, 0.09736, 0, 0.665], + "230": [0, 0.44444, 0.085, 0, 0.82666], + "248": [0.09722, 0.54167, 0.09458, 0, 0.59111], + "305": [0, 0.44444, 0.09426, 0, 0.35555], + "338": [0, 0.68611, 0.11431, 0, 1.14054], + "339": [0, 0.44444, 0.085, 0, 0.82666], + "567": [0.19444, 0.44444, 0.04611, 0, 0.385], + "710": [0, 0.69444, 0.06709, 0, 0.59111], + "711": [0, 0.63194, 0.08271, 0, 0.59111], + "713": [0, 0.59444, 0.10444, 0, 0.59111], + "714": [0, 0.69444, 0.08528, 0, 0.59111], + "715": [0, 0.69444, 0, 0, 0.59111], + "728": [0, 0.69444, 0.10333, 0, 0.59111], + "729": [0, 0.69444, 0.12945, 0, 0.35555], + "730": [0, 0.69444, 0, 0, 0.94888], + "732": [0, 0.69444, 0.11472, 0, 0.59111], + "733": [0, 0.69444, 0.11472, 0, 0.59111], + "915": [0, 0.68611, 0.12903, 0, 0.69777], + "916": [0, 0.68611, 0, 0, 0.94444], + "920": [0, 0.68611, 0.09062, 0, 0.88555], + "923": [0, 0.68611, 0, 0, 0.80666], + "926": [0, 0.68611, 0.15092, 0, 0.76777], + "928": [0, 0.68611, 0.17208, 0, 0.8961], + "931": [0, 0.68611, 0.11431, 0, 0.82666], + "933": [0, 0.68611, 0.10778, 0, 0.88555], + "934": [0, 0.68611, 0.05632, 0, 0.82666], + "936": [0, 0.68611, 0.10778, 0, 0.88555], + "937": [0, 0.68611, 0.0992, 0, 0.82666], + "8211": [0, 0.44444, 0.09811, 0, 0.59111], + "8212": [0, 0.44444, 0.09811, 0, 1.18221], + "8216": [0, 0.69444, 0.12945, 0, 0.35555], + "8217": [0, 0.69444, 0.12945, 0, 0.35555], + "8220": [0, 0.69444, 0.16772, 0, 0.62055], + "8221": [0, 0.69444, 0.07939, 0, 0.62055] + }, + "Main-Italic": { + "32": [0, 0, 0, 0, 0.25], + "33": [0, 0.69444, 0.12417, 0, 0.30667], + "34": [0, 0.69444, 0.06961, 0, 0.51444], + "35": [0.19444, 0.69444, 0.06616, 0, 0.81777], + "37": [0.05556, 0.75, 0.13639, 0, 0.81777], + "38": [0, 0.69444, 0.09694, 0, 0.76666], + "39": [0, 0.69444, 0.12417, 0, 0.30667], + "40": [0.25, 0.75, 0.16194, 0, 0.40889], + "41": [0.25, 0.75, 0.03694, 0, 0.40889], + "42": [0, 0.75, 0.14917, 0, 0.51111], + "43": [0.05667, 0.56167, 0.03694, 0, 0.76666], + "44": [0.19444, 0.10556, 0, 0, 0.30667], + "45": [0, 0.43056, 0.02826, 0, 0.35778], + "46": [0, 0.10556, 0, 0, 0.30667], + "47": [0.25, 0.75, 0.16194, 0, 0.51111], + "48": [0, 0.64444, 0.13556, 0, 0.51111], + "49": [0, 0.64444, 0.13556, 0, 0.51111], + "50": [0, 0.64444, 0.13556, 0, 0.51111], + "51": [0, 0.64444, 0.13556, 0, 0.51111], + "52": [0.19444, 0.64444, 0.13556, 0, 0.51111], + "53": [0, 0.64444, 0.13556, 0, 0.51111], + "54": [0, 0.64444, 0.13556, 0, 0.51111], + "55": [0.19444, 0.64444, 0.13556, 0, 0.51111], + "56": [0, 0.64444, 0.13556, 0, 0.51111], + "57": [0, 0.64444, 0.13556, 0, 0.51111], + "58": [0, 0.43056, 0.0582, 0, 0.30667], + "59": [0.19444, 0.43056, 0.0582, 0, 0.30667], + "61": [-0.13313, 0.36687, 0.06616, 0, 0.76666], + "63": [0, 0.69444, 0.1225, 0, 0.51111], + "64": [0, 0.69444, 0.09597, 0, 0.76666], + "65": [0, 0.68333, 0, 0, 0.74333], + "66": [0, 0.68333, 0.10257, 0, 0.70389], + "67": [0, 0.68333, 0.14528, 0, 0.71555], + "68": [0, 0.68333, 0.09403, 0, 0.755], + "69": [0, 0.68333, 0.12028, 0, 0.67833], + "70": [0, 0.68333, 0.13305, 0, 0.65277], + "71": [0, 0.68333, 0.08722, 0, 0.77361], + "72": [0, 0.68333, 0.16389, 0, 0.74333], + "73": [0, 0.68333, 0.15806, 0, 0.38555], + "74": [0, 0.68333, 0.14028, 0, 0.525], + "75": [0, 0.68333, 0.14528, 0, 0.76888], + "76": [0, 0.68333, 0, 0, 0.62722], + "77": [0, 0.68333, 0.16389, 0, 0.89666], + "78": [0, 0.68333, 0.16389, 0, 0.74333], + "79": [0, 0.68333, 0.09403, 0, 0.76666], + "80": [0, 0.68333, 0.10257, 0, 0.67833], + "81": [0.19444, 0.68333, 0.09403, 0, 0.76666], + "82": [0, 0.68333, 0.03868, 0, 0.72944], + "83": [0, 0.68333, 0.11972, 0, 0.56222], + "84": [0, 0.68333, 0.13305, 0, 0.71555], + "85": [0, 0.68333, 0.16389, 0, 0.74333], + "86": [0, 0.68333, 0.18361, 0, 0.74333], + "87": [0, 0.68333, 0.18361, 0, 0.99888], + "88": [0, 0.68333, 0.15806, 0, 0.74333], + "89": [0, 0.68333, 0.19383, 0, 0.74333], + "90": [0, 0.68333, 0.14528, 0, 0.61333], + "91": [0.25, 0.75, 0.1875, 0, 0.30667], + "93": [0.25, 0.75, 0.10528, 0, 0.30667], + "94": [0, 0.69444, 0.06646, 0, 0.51111], + "95": [0.31, 0.12056, 0.09208, 0, 0.51111], + "97": [0, 0.43056, 0.07671, 0, 0.51111], + "98": [0, 0.69444, 0.06312, 0, 0.46], + "99": [0, 0.43056, 0.05653, 0, 0.46], + "100": [0, 0.69444, 0.10333, 0, 0.51111], + "101": [0, 0.43056, 0.07514, 0, 0.46], + "102": [0.19444, 0.69444, 0.21194, 0, 0.30667], + "103": [0.19444, 0.43056, 0.08847, 0, 0.46], + "104": [0, 0.69444, 0.07671, 0, 0.51111], + "105": [0, 0.65536, 0.1019, 0, 0.30667], + "106": [0.19444, 0.65536, 0.14467, 0, 0.30667], + "107": [0, 0.69444, 0.10764, 0, 0.46], + "108": [0, 0.69444, 0.10333, 0, 0.25555], + "109": [0, 0.43056, 0.07671, 0, 0.81777], + "110": [0, 0.43056, 0.07671, 0, 0.56222], + "111": [0, 0.43056, 0.06312, 0, 0.51111], + "112": [0.19444, 0.43056, 0.06312, 0, 0.51111], + "113": [0.19444, 0.43056, 0.08847, 0, 0.46], + "114": [0, 0.43056, 0.10764, 0, 0.42166], + "115": [0, 0.43056, 0.08208, 0, 0.40889], + "116": [0, 0.61508, 0.09486, 0, 0.33222], + "117": [0, 0.43056, 0.07671, 0, 0.53666], + "118": [0, 0.43056, 0.10764, 0, 0.46], + "119": [0, 0.43056, 0.10764, 0, 0.66444], + "120": [0, 0.43056, 0.12042, 0, 0.46389], + "121": [0.19444, 0.43056, 0.08847, 0, 0.48555], + "122": [0, 0.43056, 0.12292, 0, 0.40889], + "126": [0.35, 0.31786, 0.11585, 0, 0.51111], + "160": [0, 0, 0, 0, 0.25], + "168": [0, 0.66786, 0.10474, 0, 0.51111], + "176": [0, 0.69444, 0, 0, 0.83129], + "184": [0.17014, 0, 0, 0, 0.46], + "198": [0, 0.68333, 0.12028, 0, 0.88277], + "216": [0.04861, 0.73194, 0.09403, 0, 0.76666], + "223": [0.19444, 0.69444, 0.10514, 0, 0.53666], + "230": [0, 0.43056, 0.07514, 0, 0.71555], + "248": [0.09722, 0.52778, 0.09194, 0, 0.51111], + "338": [0, 0.68333, 0.12028, 0, 0.98499], + "339": [0, 0.43056, 0.07514, 0, 0.71555], + "710": [0, 0.69444, 0.06646, 0, 0.51111], + "711": [0, 0.62847, 0.08295, 0, 0.51111], + "713": [0, 0.56167, 0.10333, 0, 0.51111], + "714": [0, 0.69444, 0.09694, 0, 0.51111], + "715": [0, 0.69444, 0, 0, 0.51111], + "728": [0, 0.69444, 0.10806, 0, 0.51111], + "729": [0, 0.66786, 0.11752, 0, 0.30667], + "730": [0, 0.69444, 0, 0, 0.83129], + "732": [0, 0.66786, 0.11585, 0, 0.51111], + "733": [0, 0.69444, 0.1225, 0, 0.51111], + "915": [0, 0.68333, 0.13305, 0, 0.62722], + "916": [0, 0.68333, 0, 0, 0.81777], + "920": [0, 0.68333, 0.09403, 0, 0.76666], + "923": [0, 0.68333, 0, 0, 0.69222], + "926": [0, 0.68333, 0.15294, 0, 0.66444], + "928": [0, 0.68333, 0.16389, 0, 0.74333], + "931": [0, 0.68333, 0.12028, 0, 0.71555], + "933": [0, 0.68333, 0.11111, 0, 0.76666], + "934": [0, 0.68333, 0.05986, 0, 0.71555], + "936": [0, 0.68333, 0.11111, 0, 0.76666], + "937": [0, 0.68333, 0.10257, 0, 0.71555], + "8211": [0, 0.43056, 0.09208, 0, 0.51111], + "8212": [0, 0.43056, 0.09208, 0, 1.02222], + "8216": [0, 0.69444, 0.12417, 0, 0.30667], + "8217": [0, 0.69444, 0.12417, 0, 0.30667], + "8220": [0, 0.69444, 0.1685, 0, 0.51444], + "8221": [0, 0.69444, 0.06961, 0, 0.51444], + "8463": [0, 0.68889, 0, 0, 0.54028] + }, + "Main-Regular": { + "32": [0, 0, 0, 0, 0.25], + "33": [0, 0.69444, 0, 0, 0.27778], + "34": [0, 0.69444, 0, 0, 0.5], + "35": [0.19444, 0.69444, 0, 0, 0.83334], + "36": [0.05556, 0.75, 0, 0, 0.5], + "37": [0.05556, 0.75, 0, 0, 0.83334], + "38": [0, 0.69444, 0, 0, 0.77778], + "39": [0, 0.69444, 0, 0, 0.27778], + "40": [0.25, 0.75, 0, 0, 0.38889], + "41": [0.25, 0.75, 0, 0, 0.38889], + "42": [0, 0.75, 0, 0, 0.5], + "43": [0.08333, 0.58333, 0, 0, 0.77778], + "44": [0.19444, 0.10556, 0, 0, 0.27778], + "45": [0, 0.43056, 0, 0, 0.33333], + "46": [0, 0.10556, 0, 0, 0.27778], + "47": [0.25, 0.75, 0, 0, 0.5], + "48": [0, 0.64444, 0, 0, 0.5], + "49": [0, 0.64444, 0, 0, 0.5], + "50": [0, 0.64444, 0, 0, 0.5], + "51": [0, 0.64444, 0, 0, 0.5], + "52": [0, 0.64444, 0, 0, 0.5], + "53": [0, 0.64444, 0, 0, 0.5], + "54": [0, 0.64444, 0, 0, 0.5], + "55": [0, 0.64444, 0, 0, 0.5], + "56": [0, 0.64444, 0, 0, 0.5], + "57": [0, 0.64444, 0, 0, 0.5], + "58": [0, 0.43056, 0, 0, 0.27778], + "59": [0.19444, 0.43056, 0, 0, 0.27778], + "60": [0.0391, 0.5391, 0, 0, 0.77778], + "61": [-0.13313, 0.36687, 0, 0, 0.77778], + "62": [0.0391, 0.5391, 0, 0, 0.77778], + "63": [0, 0.69444, 0, 0, 0.47222], + "64": [0, 0.69444, 0, 0, 0.77778], + "65": [0, 0.68333, 0, 0, 0.75], + "66": [0, 0.68333, 0, 0, 0.70834], + "67": [0, 0.68333, 0, 0, 0.72222], + "68": [0, 0.68333, 0, 0, 0.76389], + "69": [0, 0.68333, 0, 0, 0.68056], + "70": [0, 0.68333, 0, 0, 0.65278], + "71": [0, 0.68333, 0, 0, 0.78472], + "72": [0, 0.68333, 0, 0, 0.75], + "73": [0, 0.68333, 0, 0, 0.36111], + "74": [0, 0.68333, 0, 0, 0.51389], + "75": [0, 0.68333, 0, 0, 0.77778], + "76": [0, 0.68333, 0, 0, 0.625], + "77": [0, 0.68333, 0, 0, 0.91667], + "78": [0, 0.68333, 0, 0, 0.75], + "79": [0, 0.68333, 0, 0, 0.77778], + "80": [0, 0.68333, 0, 0, 0.68056], + "81": [0.19444, 0.68333, 0, 0, 0.77778], + "82": [0, 0.68333, 0, 0, 0.73611], + "83": [0, 0.68333, 0, 0, 0.55556], + "84": [0, 0.68333, 0, 0, 0.72222], + "85": [0, 0.68333, 0, 0, 0.75], + "86": [0, 0.68333, 0.01389, 0, 0.75], + "87": [0, 0.68333, 0.01389, 0, 1.02778], + "88": [0, 0.68333, 0, 0, 0.75], + "89": [0, 0.68333, 0.025, 0, 0.75], + "90": [0, 0.68333, 0, 0, 0.61111], + "91": [0.25, 0.75, 0, 0, 0.27778], + "92": [0.25, 0.75, 0, 0, 0.5], + "93": [0.25, 0.75, 0, 0, 0.27778], + "94": [0, 0.69444, 0, 0, 0.5], + "95": [0.31, 0.12056, 0.02778, 0, 0.5], + "97": [0, 0.43056, 0, 0, 0.5], + "98": [0, 0.69444, 0, 0, 0.55556], + "99": [0, 0.43056, 0, 0, 0.44445], + "100": [0, 0.69444, 0, 0, 0.55556], + "101": [0, 0.43056, 0, 0, 0.44445], + "102": [0, 0.69444, 0.07778, 0, 0.30556], + "103": [0.19444, 0.43056, 0.01389, 0, 0.5], + "104": [0, 0.69444, 0, 0, 0.55556], + "105": [0, 0.66786, 0, 0, 0.27778], + "106": [0.19444, 0.66786, 0, 0, 0.30556], + "107": [0, 0.69444, 0, 0, 0.52778], + "108": [0, 0.69444, 0, 0, 0.27778], + "109": [0, 0.43056, 0, 0, 0.83334], + "110": [0, 0.43056, 0, 0, 0.55556], + "111": [0, 0.43056, 0, 0, 0.5], + "112": [0.19444, 0.43056, 0, 0, 0.55556], + "113": [0.19444, 0.43056, 0, 0, 0.52778], + "114": [0, 0.43056, 0, 0, 0.39167], + "115": [0, 0.43056, 0, 0, 0.39445], + "116": [0, 0.61508, 0, 0, 0.38889], + "117": [0, 0.43056, 0, 0, 0.55556], + "118": [0, 0.43056, 0.01389, 0, 0.52778], + "119": [0, 0.43056, 0.01389, 0, 0.72222], + "120": [0, 0.43056, 0, 0, 0.52778], + "121": [0.19444, 0.43056, 0.01389, 0, 0.52778], + "122": [0, 0.43056, 0, 0, 0.44445], + "123": [0.25, 0.75, 0, 0, 0.5], + "124": [0.25, 0.75, 0, 0, 0.27778], + "125": [0.25, 0.75, 0, 0, 0.5], + "126": [0.35, 0.31786, 0, 0, 0.5], + "160": [0, 0, 0, 0, 0.25], + "163": [0, 0.69444, 0, 0, 0.76909], + "167": [0.19444, 0.69444, 0, 0, 0.44445], + "168": [0, 0.66786, 0, 0, 0.5], + "172": [0, 0.43056, 0, 0, 0.66667], + "176": [0, 0.69444, 0, 0, 0.75], + "177": [0.08333, 0.58333, 0, 0, 0.77778], + "182": [0.19444, 0.69444, 0, 0, 0.61111], + "184": [0.17014, 0, 0, 0, 0.44445], + "198": [0, 0.68333, 0, 0, 0.90278], + "215": [0.08333, 0.58333, 0, 0, 0.77778], + "216": [0.04861, 0.73194, 0, 0, 0.77778], + "223": [0, 0.69444, 0, 0, 0.5], + "230": [0, 0.43056, 0, 0, 0.72222], + "247": [0.08333, 0.58333, 0, 0, 0.77778], + "248": [0.09722, 0.52778, 0, 0, 0.5], + "305": [0, 0.43056, 0, 0, 0.27778], + "338": [0, 0.68333, 0, 0, 1.01389], + "339": [0, 0.43056, 0, 0, 0.77778], + "567": [0.19444, 0.43056, 0, 0, 0.30556], + "710": [0, 0.69444, 0, 0, 0.5], + "711": [0, 0.62847, 0, 0, 0.5], + "713": [0, 0.56778, 0, 0, 0.5], + "714": [0, 0.69444, 0, 0, 0.5], + "715": [0, 0.69444, 0, 0, 0.5], + "728": [0, 0.69444, 0, 0, 0.5], + "729": [0, 0.66786, 0, 0, 0.27778], + "730": [0, 0.69444, 0, 0, 0.75], + "732": [0, 0.66786, 0, 0, 0.5], + "733": [0, 0.69444, 0, 0, 0.5], + "915": [0, 0.68333, 0, 0, 0.625], + "916": [0, 0.68333, 0, 0, 0.83334], + "920": [0, 0.68333, 0, 0, 0.77778], + "923": [0, 0.68333, 0, 0, 0.69445], + "926": [0, 0.68333, 0, 0, 0.66667], + "928": [0, 0.68333, 0, 0, 0.75], + "931": [0, 0.68333, 0, 0, 0.72222], + "933": [0, 0.68333, 0, 0, 0.77778], + "934": [0, 0.68333, 0, 0, 0.72222], + "936": [0, 0.68333, 0, 0, 0.77778], + "937": [0, 0.68333, 0, 0, 0.72222], + "8211": [0, 0.43056, 0.02778, 0, 0.5], + "8212": [0, 0.43056, 0.02778, 0, 1.0], + "8216": [0, 0.69444, 0, 0, 0.27778], + "8217": [0, 0.69444, 0, 0, 0.27778], + "8220": [0, 0.69444, 0, 0, 0.5], + "8221": [0, 0.69444, 0, 0, 0.5], + "8224": [0.19444, 0.69444, 0, 0, 0.44445], + "8225": [0.19444, 0.69444, 0, 0, 0.44445], + "8230": [0, 0.12, 0, 0, 1.172], + "8242": [0, 0.55556, 0, 0, 0.275], + "8407": [0, 0.71444, 0.15382, 0, 0.5], + "8463": [0, 0.68889, 0, 0, 0.54028], + "8465": [0, 0.69444, 0, 0, 0.72222], + "8467": [0, 0.69444, 0, 0.11111, 0.41667], + "8472": [0.19444, 0.43056, 0, 0.11111, 0.63646], + "8476": [0, 0.69444, 0, 0, 0.72222], + "8501": [0, 0.69444, 0, 0, 0.61111], + "8592": [-0.13313, 0.36687, 0, 0, 1.0], + "8593": [0.19444, 0.69444, 0, 0, 0.5], + "8594": [-0.13313, 0.36687, 0, 0, 1.0], + "8595": [0.19444, 0.69444, 0, 0, 0.5], + "8596": [-0.13313, 0.36687, 0, 0, 1.0], + "8597": [0.25, 0.75, 0, 0, 0.5], + "8598": [0.19444, 0.69444, 0, 0, 1.0], + "8599": [0.19444, 0.69444, 0, 0, 1.0], + "8600": [0.19444, 0.69444, 0, 0, 1.0], + "8601": [0.19444, 0.69444, 0, 0, 1.0], + "8614": [0.011, 0.511, 0, 0, 1.0], + "8617": [0.011, 0.511, 0, 0, 1.126], + "8618": [0.011, 0.511, 0, 0, 1.126], + "8636": [-0.13313, 0.36687, 0, 0, 1.0], + "8637": [-0.13313, 0.36687, 0, 0, 1.0], + "8640": [-0.13313, 0.36687, 0, 0, 1.0], + "8641": [-0.13313, 0.36687, 0, 0, 1.0], + "8652": [0.011, 0.671, 0, 0, 1.0], + "8656": [-0.13313, 0.36687, 0, 0, 1.0], + "8657": [0.19444, 0.69444, 0, 0, 0.61111], + "8658": [-0.13313, 0.36687, 0, 0, 1.0], + "8659": [0.19444, 0.69444, 0, 0, 0.61111], + "8660": [-0.13313, 0.36687, 0, 0, 1.0], + "8661": [0.25, 0.75, 0, 0, 0.61111], + "8704": [0, 0.69444, 0, 0, 0.55556], + "8706": [0, 0.69444, 0.05556, 0.08334, 0.5309], + "8707": [0, 0.69444, 0, 0, 0.55556], + "8709": [0.05556, 0.75, 0, 0, 0.5], + "8711": [0, 0.68333, 0, 0, 0.83334], + "8712": [0.0391, 0.5391, 0, 0, 0.66667], + "8715": [0.0391, 0.5391, 0, 0, 0.66667], + "8722": [0.08333, 0.58333, 0, 0, 0.77778], + "8723": [0.08333, 0.58333, 0, 0, 0.77778], + "8725": [0.25, 0.75, 0, 0, 0.5], + "8726": [0.25, 0.75, 0, 0, 0.5], + "8727": [-0.03472, 0.46528, 0, 0, 0.5], + "8728": [-0.05555, 0.44445, 0, 0, 0.5], + "8729": [-0.05555, 0.44445, 0, 0, 0.5], + "8730": [0.2, 0.8, 0, 0, 0.83334], + "8733": [0, 0.43056, 0, 0, 0.77778], + "8734": [0, 0.43056, 0, 0, 1.0], + "8736": [0, 0.69224, 0, 0, 0.72222], + "8739": [0.25, 0.75, 0, 0, 0.27778], + "8741": [0.25, 0.75, 0, 0, 0.5], + "8743": [0, 0.55556, 0, 0, 0.66667], + "8744": [0, 0.55556, 0, 0, 0.66667], + "8745": [0, 0.55556, 0, 0, 0.66667], + "8746": [0, 0.55556, 0, 0, 0.66667], + "8747": [0.19444, 0.69444, 0.11111, 0, 0.41667], + "8764": [-0.13313, 0.36687, 0, 0, 0.77778], + "8768": [0.19444, 0.69444, 0, 0, 0.27778], + "8771": [-0.03625, 0.46375, 0, 0, 0.77778], + "8773": [-0.022, 0.589, 0, 0, 1.0], + "8776": [-0.01688, 0.48312, 0, 0, 0.77778], + "8781": [-0.03625, 0.46375, 0, 0, 0.77778], + "8784": [-0.133, 0.67, 0, 0, 0.778], + "8801": [-0.03625, 0.46375, 0, 0, 0.77778], + "8804": [0.13597, 0.63597, 0, 0, 0.77778], + "8805": [0.13597, 0.63597, 0, 0, 0.77778], + "8810": [0.0391, 0.5391, 0, 0, 1.0], + "8811": [0.0391, 0.5391, 0, 0, 1.0], + "8826": [0.0391, 0.5391, 0, 0, 0.77778], + "8827": [0.0391, 0.5391, 0, 0, 0.77778], + "8834": [0.0391, 0.5391, 0, 0, 0.77778], + "8835": [0.0391, 0.5391, 0, 0, 0.77778], + "8838": [0.13597, 0.63597, 0, 0, 0.77778], + "8839": [0.13597, 0.63597, 0, 0, 0.77778], + "8846": [0, 0.55556, 0, 0, 0.66667], + "8849": [0.13597, 0.63597, 0, 0, 0.77778], + "8850": [0.13597, 0.63597, 0, 0, 0.77778], + "8851": [0, 0.55556, 0, 0, 0.66667], + "8852": [0, 0.55556, 0, 0, 0.66667], + "8853": [0.08333, 0.58333, 0, 0, 0.77778], + "8854": [0.08333, 0.58333, 0, 0, 0.77778], + "8855": [0.08333, 0.58333, 0, 0, 0.77778], + "8856": [0.08333, 0.58333, 0, 0, 0.77778], + "8857": [0.08333, 0.58333, 0, 0, 0.77778], + "8866": [0, 0.69444, 0, 0, 0.61111], + "8867": [0, 0.69444, 0, 0, 0.61111], + "8868": [0, 0.69444, 0, 0, 0.77778], + "8869": [0, 0.69444, 0, 0, 0.77778], + "8872": [0.249, 0.75, 0, 0, 0.867], + "8900": [-0.05555, 0.44445, 0, 0, 0.5], + "8901": [-0.05555, 0.44445, 0, 0, 0.27778], + "8902": [-0.03472, 0.46528, 0, 0, 0.5], + "8904": [0.005, 0.505, 0, 0, 0.9], + "8942": [0.03, 0.9, 0, 0, 0.278], + "8943": [-0.19, 0.31, 0, 0, 1.172], + "8945": [-0.1, 0.82, 0, 0, 1.282], + "8968": [0.25, 0.75, 0, 0, 0.44445], + "8969": [0.25, 0.75, 0, 0, 0.44445], + "8970": [0.25, 0.75, 0, 0, 0.44445], + "8971": [0.25, 0.75, 0, 0, 0.44445], + "8994": [-0.14236, 0.35764, 0, 0, 1.0], + "8995": [-0.14236, 0.35764, 0, 0, 1.0], + "9136": [0.244, 0.744, 0, 0, 0.412], + "9137": [0.244, 0.744, 0, 0, 0.412], + "9651": [0.19444, 0.69444, 0, 0, 0.88889], + "9657": [-0.03472, 0.46528, 0, 0, 0.5], + "9661": [0.19444, 0.69444, 0, 0, 0.88889], + "9667": [-0.03472, 0.46528, 0, 0, 0.5], + "9711": [0.19444, 0.69444, 0, 0, 1.0], + "9824": [0.12963, 0.69444, 0, 0, 0.77778], + "9825": [0.12963, 0.69444, 0, 0, 0.77778], + "9826": [0.12963, 0.69444, 0, 0, 0.77778], + "9827": [0.12963, 0.69444, 0, 0, 0.77778], + "9837": [0, 0.75, 0, 0, 0.38889], + "9838": [0.19444, 0.69444, 0, 0, 0.38889], + "9839": [0.19444, 0.69444, 0, 0, 0.38889], + "10216": [0.25, 0.75, 0, 0, 0.38889], + "10217": [0.25, 0.75, 0, 0, 0.38889], + "10222": [0.244, 0.744, 0, 0, 0.412], + "10223": [0.244, 0.744, 0, 0, 0.412], + "10229": [0.011, 0.511, 0, 0, 1.609], + "10230": [0.011, 0.511, 0, 0, 1.638], + "10231": [0.011, 0.511, 0, 0, 1.859], + "10232": [0.024, 0.525, 0, 0, 1.609], + "10233": [0.024, 0.525, 0, 0, 1.638], + "10234": [0.024, 0.525, 0, 0, 1.858], + "10236": [0.011, 0.511, 0, 0, 1.638], + "10815": [0, 0.68333, 0, 0, 0.75], + "10927": [0.13597, 0.63597, 0, 0, 0.77778], + "10928": [0.13597, 0.63597, 0, 0, 0.77778], + "57376": [0.19444, 0.69444, 0, 0, 0] + }, + "Math-BoldItalic": { + "32": [0, 0, 0, 0, 0.25], + "48": [0, 0.44444, 0, 0, 0.575], + "49": [0, 0.44444, 0, 0, 0.575], + "50": [0, 0.44444, 0, 0, 0.575], + "51": [0.19444, 0.44444, 0, 0, 0.575], + "52": [0.19444, 0.44444, 0, 0, 0.575], + "53": [0.19444, 0.44444, 0, 0, 0.575], + "54": [0, 0.64444, 0, 0, 0.575], + "55": [0.19444, 0.44444, 0, 0, 0.575], + "56": [0, 0.64444, 0, 0, 0.575], + "57": [0.19444, 0.44444, 0, 0, 0.575], + "65": [0, 0.68611, 0, 0, 0.86944], + "66": [0, 0.68611, 0.04835, 0, 0.8664], + "67": [0, 0.68611, 0.06979, 0, 0.81694], + "68": [0, 0.68611, 0.03194, 0, 0.93812], + "69": [0, 0.68611, 0.05451, 0, 0.81007], + "70": [0, 0.68611, 0.15972, 0, 0.68889], + "71": [0, 0.68611, 0, 0, 0.88673], + "72": [0, 0.68611, 0.08229, 0, 0.98229], + "73": [0, 0.68611, 0.07778, 0, 0.51111], + "74": [0, 0.68611, 0.10069, 0, 0.63125], + "75": [0, 0.68611, 0.06979, 0, 0.97118], + "76": [0, 0.68611, 0, 0, 0.75555], + "77": [0, 0.68611, 0.11424, 0, 1.14201], + "78": [0, 0.68611, 0.11424, 0, 0.95034], + "79": [0, 0.68611, 0.03194, 0, 0.83666], + "80": [0, 0.68611, 0.15972, 0, 0.72309], + "81": [0.19444, 0.68611, 0, 0, 0.86861], + "82": [0, 0.68611, 0.00421, 0, 0.87235], + "83": [0, 0.68611, 0.05382, 0, 0.69271], + "84": [0, 0.68611, 0.15972, 0, 0.63663], + "85": [0, 0.68611, 0.11424, 0, 0.80027], + "86": [0, 0.68611, 0.25555, 0, 0.67778], + "87": [0, 0.68611, 0.15972, 0, 1.09305], + "88": [0, 0.68611, 0.07778, 0, 0.94722], + "89": [0, 0.68611, 0.25555, 0, 0.67458], + "90": [0, 0.68611, 0.06979, 0, 0.77257], + "97": [0, 0.44444, 0, 0, 0.63287], + "98": [0, 0.69444, 0, 0, 0.52083], + "99": [0, 0.44444, 0, 0, 0.51342], + "100": [0, 0.69444, 0, 0, 0.60972], + "101": [0, 0.44444, 0, 0, 0.55361], + "102": [0.19444, 0.69444, 0.11042, 0, 0.56806], + "103": [0.19444, 0.44444, 0.03704, 0, 0.5449], + "104": [0, 0.69444, 0, 0, 0.66759], + "105": [0, 0.69326, 0, 0, 0.4048], + "106": [0.19444, 0.69326, 0.0622, 0, 0.47083], + "107": [0, 0.69444, 0.01852, 0, 0.6037], + "108": [0, 0.69444, 0.0088, 0, 0.34815], + "109": [0, 0.44444, 0, 0, 1.0324], + "110": [0, 0.44444, 0, 0, 0.71296], + "111": [0, 0.44444, 0, 0, 0.58472], + "112": [0.19444, 0.44444, 0, 0, 0.60092], + "113": [0.19444, 0.44444, 0.03704, 0, 0.54213], + "114": [0, 0.44444, 0.03194, 0, 0.5287], + "115": [0, 0.44444, 0, 0, 0.53125], + "116": [0, 0.63492, 0, 0, 0.41528], + "117": [0, 0.44444, 0, 0, 0.68102], + "118": [0, 0.44444, 0.03704, 0, 0.56666], + "119": [0, 0.44444, 0.02778, 0, 0.83148], + "120": [0, 0.44444, 0, 0, 0.65903], + "121": [0.19444, 0.44444, 0.03704, 0, 0.59028], + "122": [0, 0.44444, 0.04213, 0, 0.55509], + "160": [0, 0, 0, 0, 0.25], + "915": [0, 0.68611, 0.15972, 0, 0.65694], + "916": [0, 0.68611, 0, 0, 0.95833], + "920": [0, 0.68611, 0.03194, 0, 0.86722], + "923": [0, 0.68611, 0, 0, 0.80555], + "926": [0, 0.68611, 0.07458, 0, 0.84125], + "928": [0, 0.68611, 0.08229, 0, 0.98229], + "931": [0, 0.68611, 0.05451, 0, 0.88507], + "933": [0, 0.68611, 0.15972, 0, 0.67083], + "934": [0, 0.68611, 0, 0, 0.76666], + "936": [0, 0.68611, 0.11653, 0, 0.71402], + "937": [0, 0.68611, 0.04835, 0, 0.8789], + "945": [0, 0.44444, 0, 0, 0.76064], + "946": [0.19444, 0.69444, 0.03403, 0, 0.65972], + "947": [0.19444, 0.44444, 0.06389, 0, 0.59003], + "948": [0, 0.69444, 0.03819, 0, 0.52222], + "949": [0, 0.44444, 0, 0, 0.52882], + "950": [0.19444, 0.69444, 0.06215, 0, 0.50833], + "951": [0.19444, 0.44444, 0.03704, 0, 0.6], + "952": [0, 0.69444, 0.03194, 0, 0.5618], + "953": [0, 0.44444, 0, 0, 0.41204], + "954": [0, 0.44444, 0, 0, 0.66759], + "955": [0, 0.69444, 0, 0, 0.67083], + "956": [0.19444, 0.44444, 0, 0, 0.70787], + "957": [0, 0.44444, 0.06898, 0, 0.57685], + "958": [0.19444, 0.69444, 0.03021, 0, 0.50833], + "959": [0, 0.44444, 0, 0, 0.58472], + "960": [0, 0.44444, 0.03704, 0, 0.68241], + "961": [0.19444, 0.44444, 0, 0, 0.6118], + "962": [0.09722, 0.44444, 0.07917, 0, 0.42361], + "963": [0, 0.44444, 0.03704, 0, 0.68588], + "964": [0, 0.44444, 0.13472, 0, 0.52083], + "965": [0, 0.44444, 0.03704, 0, 0.63055], + "966": [0.19444, 0.44444, 0, 0, 0.74722], + "967": [0.19444, 0.44444, 0, 0, 0.71805], + "968": [0.19444, 0.69444, 0.03704, 0, 0.75833], + "969": [0, 0.44444, 0.03704, 0, 0.71782], + "977": [0, 0.69444, 0, 0, 0.69155], + "981": [0.19444, 0.69444, 0, 0, 0.7125], + "982": [0, 0.44444, 0.03194, 0, 0.975], + "1009": [0.19444, 0.44444, 0, 0, 0.6118], + "1013": [0, 0.44444, 0, 0, 0.48333], + "57649": [0, 0.44444, 0, 0, 0.39352], + "57911": [0.19444, 0.44444, 0, 0, 0.43889] + }, + "Math-Italic": { + "32": [0, 0, 0, 0, 0.25], + "48": [0, 0.43056, 0, 0, 0.5], + "49": [0, 0.43056, 0, 0, 0.5], + "50": [0, 0.43056, 0, 0, 0.5], + "51": [0.19444, 0.43056, 0, 0, 0.5], + "52": [0.19444, 0.43056, 0, 0, 0.5], + "53": [0.19444, 0.43056, 0, 0, 0.5], + "54": [0, 0.64444, 0, 0, 0.5], + "55": [0.19444, 0.43056, 0, 0, 0.5], + "56": [0, 0.64444, 0, 0, 0.5], + "57": [0.19444, 0.43056, 0, 0, 0.5], + "65": [0, 0.68333, 0, 0.13889, 0.75], + "66": [0, 0.68333, 0.05017, 0.08334, 0.75851], + "67": [0, 0.68333, 0.07153, 0.08334, 0.71472], + "68": [0, 0.68333, 0.02778, 0.05556, 0.82792], + "69": [0, 0.68333, 0.05764, 0.08334, 0.7382], + "70": [0, 0.68333, 0.13889, 0.08334, 0.64306], + "71": [0, 0.68333, 0, 0.08334, 0.78625], + "72": [0, 0.68333, 0.08125, 0.05556, 0.83125], + "73": [0, 0.68333, 0.07847, 0.11111, 0.43958], + "74": [0, 0.68333, 0.09618, 0.16667, 0.55451], + "75": [0, 0.68333, 0.07153, 0.05556, 0.84931], + "76": [0, 0.68333, 0, 0.02778, 0.68056], + "77": [0, 0.68333, 0.10903, 0.08334, 0.97014], + "78": [0, 0.68333, 0.10903, 0.08334, 0.80347], + "79": [0, 0.68333, 0.02778, 0.08334, 0.76278], + "80": [0, 0.68333, 0.13889, 0.08334, 0.64201], + "81": [0.19444, 0.68333, 0, 0.08334, 0.79056], + "82": [0, 0.68333, 0.00773, 0.08334, 0.75929], + "83": [0, 0.68333, 0.05764, 0.08334, 0.6132], + "84": [0, 0.68333, 0.13889, 0.08334, 0.58438], + "85": [0, 0.68333, 0.10903, 0.02778, 0.68278], + "86": [0, 0.68333, 0.22222, 0, 0.58333], + "87": [0, 0.68333, 0.13889, 0, 0.94445], + "88": [0, 0.68333, 0.07847, 0.08334, 0.82847], + "89": [0, 0.68333, 0.22222, 0, 0.58056], + "90": [0, 0.68333, 0.07153, 0.08334, 0.68264], + "97": [0, 0.43056, 0, 0, 0.52859], + "98": [0, 0.69444, 0, 0, 0.42917], + "99": [0, 0.43056, 0, 0.05556, 0.43276], + "100": [0, 0.69444, 0, 0.16667, 0.52049], + "101": [0, 0.43056, 0, 0.05556, 0.46563], + "102": [0.19444, 0.69444, 0.10764, 0.16667, 0.48959], + "103": [0.19444, 0.43056, 0.03588, 0.02778, 0.47697], + "104": [0, 0.69444, 0, 0, 0.57616], + "105": [0, 0.65952, 0, 0, 0.34451], + "106": [0.19444, 0.65952, 0.05724, 0, 0.41181], + "107": [0, 0.69444, 0.03148, 0, 0.5206], + "108": [0, 0.69444, 0.01968, 0.08334, 0.29838], + "109": [0, 0.43056, 0, 0, 0.87801], + "110": [0, 0.43056, 0, 0, 0.60023], + "111": [0, 0.43056, 0, 0.05556, 0.48472], + "112": [0.19444, 0.43056, 0, 0.08334, 0.50313], + "113": [0.19444, 0.43056, 0.03588, 0.08334, 0.44641], + "114": [0, 0.43056, 0.02778, 0.05556, 0.45116], + "115": [0, 0.43056, 0, 0.05556, 0.46875], + "116": [0, 0.61508, 0, 0.08334, 0.36111], + "117": [0, 0.43056, 0, 0.02778, 0.57246], + "118": [0, 0.43056, 0.03588, 0.02778, 0.48472], + "119": [0, 0.43056, 0.02691, 0.08334, 0.71592], + "120": [0, 0.43056, 0, 0.02778, 0.57153], + "121": [0.19444, 0.43056, 0.03588, 0.05556, 0.49028], + "122": [0, 0.43056, 0.04398, 0.05556, 0.46505], + "160": [0, 0, 0, 0, 0.25], + "915": [0, 0.68333, 0.13889, 0.08334, 0.61528], + "916": [0, 0.68333, 0, 0.16667, 0.83334], + "920": [0, 0.68333, 0.02778, 0.08334, 0.76278], + "923": [0, 0.68333, 0, 0.16667, 0.69445], + "926": [0, 0.68333, 0.07569, 0.08334, 0.74236], + "928": [0, 0.68333, 0.08125, 0.05556, 0.83125], + "931": [0, 0.68333, 0.05764, 0.08334, 0.77986], + "933": [0, 0.68333, 0.13889, 0.05556, 0.58333], + "934": [0, 0.68333, 0, 0.08334, 0.66667], + "936": [0, 0.68333, 0.11, 0.05556, 0.61222], + "937": [0, 0.68333, 0.05017, 0.08334, 0.7724], + "945": [0, 0.43056, 0.0037, 0.02778, 0.6397], + "946": [0.19444, 0.69444, 0.05278, 0.08334, 0.56563], + "947": [0.19444, 0.43056, 0.05556, 0, 0.51773], + "948": [0, 0.69444, 0.03785, 0.05556, 0.44444], + "949": [0, 0.43056, 0, 0.08334, 0.46632], + "950": [0.19444, 0.69444, 0.07378, 0.08334, 0.4375], + "951": [0.19444, 0.43056, 0.03588, 0.05556, 0.49653], + "952": [0, 0.69444, 0.02778, 0.08334, 0.46944], + "953": [0, 0.43056, 0, 0.05556, 0.35394], + "954": [0, 0.43056, 0, 0, 0.57616], + "955": [0, 0.69444, 0, 0, 0.58334], + "956": [0.19444, 0.43056, 0, 0.02778, 0.60255], + "957": [0, 0.43056, 0.06366, 0.02778, 0.49398], + "958": [0.19444, 0.69444, 0.04601, 0.11111, 0.4375], + "959": [0, 0.43056, 0, 0.05556, 0.48472], + "960": [0, 0.43056, 0.03588, 0, 0.57003], + "961": [0.19444, 0.43056, 0, 0.08334, 0.51702], + "962": [0.09722, 0.43056, 0.07986, 0.08334, 0.36285], + "963": [0, 0.43056, 0.03588, 0, 0.57141], + "964": [0, 0.43056, 0.1132, 0.02778, 0.43715], + "965": [0, 0.43056, 0.03588, 0.02778, 0.54028], + "966": [0.19444, 0.43056, 0, 0.08334, 0.65417], + "967": [0.19444, 0.43056, 0, 0.05556, 0.62569], + "968": [0.19444, 0.69444, 0.03588, 0.11111, 0.65139], + "969": [0, 0.43056, 0.03588, 0, 0.62245], + "977": [0, 0.69444, 0, 0.08334, 0.59144], + "981": [0.19444, 0.69444, 0, 0.08334, 0.59583], + "982": [0, 0.43056, 0.02778, 0, 0.82813], + "1009": [0.19444, 0.43056, 0, 0.08334, 0.51702], + "1013": [0, 0.43056, 0, 0.05556, 0.4059], + "57649": [0, 0.43056, 0, 0.02778, 0.32246], + "57911": [0.19444, 0.43056, 0, 0.08334, 0.38403] + }, + "SansSerif-Bold": { + "32": [0, 0, 0, 0, 0.25], + "33": [0, 0.69444, 0, 0, 0.36667], + "34": [0, 0.69444, 0, 0, 0.55834], + "35": [0.19444, 0.69444, 0, 0, 0.91667], + "36": [0.05556, 0.75, 0, 0, 0.55], + "37": [0.05556, 0.75, 0, 0, 1.02912], + "38": [0, 0.69444, 0, 0, 0.83056], + "39": [0, 0.69444, 0, 0, 0.30556], + "40": [0.25, 0.75, 0, 0, 0.42778], + "41": [0.25, 0.75, 0, 0, 0.42778], + "42": [0, 0.75, 0, 0, 0.55], + "43": [0.11667, 0.61667, 0, 0, 0.85556], + "44": [0.10556, 0.13056, 0, 0, 0.30556], + "45": [0, 0.45833, 0, 0, 0.36667], + "46": [0, 0.13056, 0, 0, 0.30556], + "47": [0.25, 0.75, 0, 0, 0.55], + "48": [0, 0.69444, 0, 0, 0.55], + "49": [0, 0.69444, 0, 0, 0.55], + "50": [0, 0.69444, 0, 0, 0.55], + "51": [0, 0.69444, 0, 0, 0.55], + "52": [0, 0.69444, 0, 0, 0.55], + "53": [0, 0.69444, 0, 0, 0.55], + "54": [0, 0.69444, 0, 0, 0.55], + "55": [0, 0.69444, 0, 0, 0.55], + "56": [0, 0.69444, 0, 0, 0.55], + "57": [0, 0.69444, 0, 0, 0.55], + "58": [0, 0.45833, 0, 0, 0.30556], + "59": [0.10556, 0.45833, 0, 0, 0.30556], + "61": [-0.09375, 0.40625, 0, 0, 0.85556], + "63": [0, 0.69444, 0, 0, 0.51945], + "64": [0, 0.69444, 0, 0, 0.73334], + "65": [0, 0.69444, 0, 0, 0.73334], + "66": [0, 0.69444, 0, 0, 0.73334], + "67": [0, 0.69444, 0, 0, 0.70278], + "68": [0, 0.69444, 0, 0, 0.79445], + "69": [0, 0.69444, 0, 0, 0.64167], + "70": [0, 0.69444, 0, 0, 0.61111], + "71": [0, 0.69444, 0, 0, 0.73334], + "72": [0, 0.69444, 0, 0, 0.79445], + "73": [0, 0.69444, 0, 0, 0.33056], + "74": [0, 0.69444, 0, 0, 0.51945], + "75": [0, 0.69444, 0, 0, 0.76389], + "76": [0, 0.69444, 0, 0, 0.58056], + "77": [0, 0.69444, 0, 0, 0.97778], + "78": [0, 0.69444, 0, 0, 0.79445], + "79": [0, 0.69444, 0, 0, 0.79445], + "80": [0, 0.69444, 0, 0, 0.70278], + "81": [0.10556, 0.69444, 0, 0, 0.79445], + "82": [0, 0.69444, 0, 0, 0.70278], + "83": [0, 0.69444, 0, 0, 0.61111], + "84": [0, 0.69444, 0, 0, 0.73334], + "85": [0, 0.69444, 0, 0, 0.76389], + "86": [0, 0.69444, 0.01528, 0, 0.73334], + "87": [0, 0.69444, 0.01528, 0, 1.03889], + "88": [0, 0.69444, 0, 0, 0.73334], + "89": [0, 0.69444, 0.0275, 0, 0.73334], + "90": [0, 0.69444, 0, 0, 0.67223], + "91": [0.25, 0.75, 0, 0, 0.34306], + "93": [0.25, 0.75, 0, 0, 0.34306], + "94": [0, 0.69444, 0, 0, 0.55], + "95": [0.35, 0.10833, 0.03056, 0, 0.55], + "97": [0, 0.45833, 0, 0, 0.525], + "98": [0, 0.69444, 0, 0, 0.56111], + "99": [0, 0.45833, 0, 0, 0.48889], + "100": [0, 0.69444, 0, 0, 0.56111], + "101": [0, 0.45833, 0, 0, 0.51111], + "102": [0, 0.69444, 0.07639, 0, 0.33611], + "103": [0.19444, 0.45833, 0.01528, 0, 0.55], + "104": [0, 0.69444, 0, 0, 0.56111], + "105": [0, 0.69444, 0, 0, 0.25556], + "106": [0.19444, 0.69444, 0, 0, 0.28611], + "107": [0, 0.69444, 0, 0, 0.53056], + "108": [0, 0.69444, 0, 0, 0.25556], + "109": [0, 0.45833, 0, 0, 0.86667], + "110": [0, 0.45833, 0, 0, 0.56111], + "111": [0, 0.45833, 0, 0, 0.55], + "112": [0.19444, 0.45833, 0, 0, 0.56111], + "113": [0.19444, 0.45833, 0, 0, 0.56111], + "114": [0, 0.45833, 0.01528, 0, 0.37222], + "115": [0, 0.45833, 0, 0, 0.42167], + "116": [0, 0.58929, 0, 0, 0.40417], + "117": [0, 0.45833, 0, 0, 0.56111], + "118": [0, 0.45833, 0.01528, 0, 0.5], + "119": [0, 0.45833, 0.01528, 0, 0.74445], + "120": [0, 0.45833, 0, 0, 0.5], + "121": [0.19444, 0.45833, 0.01528, 0, 0.5], + "122": [0, 0.45833, 0, 0, 0.47639], + "126": [0.35, 0.34444, 0, 0, 0.55], + "160": [0, 0, 0, 0, 0.25], + "168": [0, 0.69444, 0, 0, 0.55], + "176": [0, 0.69444, 0, 0, 0.73334], + "180": [0, 0.69444, 0, 0, 0.55], + "184": [0.17014, 0, 0, 0, 0.48889], + "305": [0, 0.45833, 0, 0, 0.25556], + "567": [0.19444, 0.45833, 0, 0, 0.28611], + "710": [0, 0.69444, 0, 0, 0.55], + "711": [0, 0.63542, 0, 0, 0.55], + "713": [0, 0.63778, 0, 0, 0.55], + "728": [0, 0.69444, 0, 0, 0.55], + "729": [0, 0.69444, 0, 0, 0.30556], + "730": [0, 0.69444, 0, 0, 0.73334], + "732": [0, 0.69444, 0, 0, 0.55], + "733": [0, 0.69444, 0, 0, 0.55], + "915": [0, 0.69444, 0, 0, 0.58056], + "916": [0, 0.69444, 0, 0, 0.91667], + "920": [0, 0.69444, 0, 0, 0.85556], + "923": [0, 0.69444, 0, 0, 0.67223], + "926": [0, 0.69444, 0, 0, 0.73334], + "928": [0, 0.69444, 0, 0, 0.79445], + "931": [0, 0.69444, 0, 0, 0.79445], + "933": [0, 0.69444, 0, 0, 0.85556], + "934": [0, 0.69444, 0, 0, 0.79445], + "936": [0, 0.69444, 0, 0, 0.85556], + "937": [0, 0.69444, 0, 0, 0.79445], + "8211": [0, 0.45833, 0.03056, 0, 0.55], + "8212": [0, 0.45833, 0.03056, 0, 1.10001], + "8216": [0, 0.69444, 0, 0, 0.30556], + "8217": [0, 0.69444, 0, 0, 0.30556], + "8220": [0, 0.69444, 0, 0, 0.55834], + "8221": [0, 0.69444, 0, 0, 0.55834] + }, + "SansSerif-Italic": { + "32": [0, 0, 0, 0, 0.25], + "33": [0, 0.69444, 0.05733, 0, 0.31945], + "34": [0, 0.69444, 0.00316, 0, 0.5], + "35": [0.19444, 0.69444, 0.05087, 0, 0.83334], + "36": [0.05556, 0.75, 0.11156, 0, 0.5], + "37": [0.05556, 0.75, 0.03126, 0, 0.83334], + "38": [0, 0.69444, 0.03058, 0, 0.75834], + "39": [0, 0.69444, 0.07816, 0, 0.27778], + "40": [0.25, 0.75, 0.13164, 0, 0.38889], + "41": [0.25, 0.75, 0.02536, 0, 0.38889], + "42": [0, 0.75, 0.11775, 0, 0.5], + "43": [0.08333, 0.58333, 0.02536, 0, 0.77778], + "44": [0.125, 0.08333, 0, 0, 0.27778], + "45": [0, 0.44444, 0.01946, 0, 0.33333], + "46": [0, 0.08333, 0, 0, 0.27778], + "47": [0.25, 0.75, 0.13164, 0, 0.5], + "48": [0, 0.65556, 0.11156, 0, 0.5], + "49": [0, 0.65556, 0.11156, 0, 0.5], + "50": [0, 0.65556, 0.11156, 0, 0.5], + "51": [0, 0.65556, 0.11156, 0, 0.5], + "52": [0, 0.65556, 0.11156, 0, 0.5], + "53": [0, 0.65556, 0.11156, 0, 0.5], + "54": [0, 0.65556, 0.11156, 0, 0.5], + "55": [0, 0.65556, 0.11156, 0, 0.5], + "56": [0, 0.65556, 0.11156, 0, 0.5], + "57": [0, 0.65556, 0.11156, 0, 0.5], + "58": [0, 0.44444, 0.02502, 0, 0.27778], + "59": [0.125, 0.44444, 0.02502, 0, 0.27778], + "61": [-0.13, 0.37, 0.05087, 0, 0.77778], + "63": [0, 0.69444, 0.11809, 0, 0.47222], + "64": [0, 0.69444, 0.07555, 0, 0.66667], + "65": [0, 0.69444, 0, 0, 0.66667], + "66": [0, 0.69444, 0.08293, 0, 0.66667], + "67": [0, 0.69444, 0.11983, 0, 0.63889], + "68": [0, 0.69444, 0.07555, 0, 0.72223], + "69": [0, 0.69444, 0.11983, 0, 0.59722], + "70": [0, 0.69444, 0.13372, 0, 0.56945], + "71": [0, 0.69444, 0.11983, 0, 0.66667], + "72": [0, 0.69444, 0.08094, 0, 0.70834], + "73": [0, 0.69444, 0.13372, 0, 0.27778], + "74": [0, 0.69444, 0.08094, 0, 0.47222], + "75": [0, 0.69444, 0.11983, 0, 0.69445], + "76": [0, 0.69444, 0, 0, 0.54167], + "77": [0, 0.69444, 0.08094, 0, 0.875], + "78": [0, 0.69444, 0.08094, 0, 0.70834], + "79": [0, 0.69444, 0.07555, 0, 0.73611], + "80": [0, 0.69444, 0.08293, 0, 0.63889], + "81": [0.125, 0.69444, 0.07555, 0, 0.73611], + "82": [0, 0.69444, 0.08293, 0, 0.64584], + "83": [0, 0.69444, 0.09205, 0, 0.55556], + "84": [0, 0.69444, 0.13372, 0, 0.68056], + "85": [0, 0.69444, 0.08094, 0, 0.6875], + "86": [0, 0.69444, 0.1615, 0, 0.66667], + "87": [0, 0.69444, 0.1615, 0, 0.94445], + "88": [0, 0.69444, 0.13372, 0, 0.66667], + "89": [0, 0.69444, 0.17261, 0, 0.66667], + "90": [0, 0.69444, 0.11983, 0, 0.61111], + "91": [0.25, 0.75, 0.15942, 0, 0.28889], + "93": [0.25, 0.75, 0.08719, 0, 0.28889], + "94": [0, 0.69444, 0.0799, 0, 0.5], + "95": [0.35, 0.09444, 0.08616, 0, 0.5], + "97": [0, 0.44444, 0.00981, 0, 0.48056], + "98": [0, 0.69444, 0.03057, 0, 0.51667], + "99": [0, 0.44444, 0.08336, 0, 0.44445], + "100": [0, 0.69444, 0.09483, 0, 0.51667], + "101": [0, 0.44444, 0.06778, 0, 0.44445], + "102": [0, 0.69444, 0.21705, 0, 0.30556], + "103": [0.19444, 0.44444, 0.10836, 0, 0.5], + "104": [0, 0.69444, 0.01778, 0, 0.51667], + "105": [0, 0.67937, 0.09718, 0, 0.23889], + "106": [0.19444, 0.67937, 0.09162, 0, 0.26667], + "107": [0, 0.69444, 0.08336, 0, 0.48889], + "108": [0, 0.69444, 0.09483, 0, 0.23889], + "109": [0, 0.44444, 0.01778, 0, 0.79445], + "110": [0, 0.44444, 0.01778, 0, 0.51667], + "111": [0, 0.44444, 0.06613, 0, 0.5], + "112": [0.19444, 0.44444, 0.0389, 0, 0.51667], + "113": [0.19444, 0.44444, 0.04169, 0, 0.51667], + "114": [0, 0.44444, 0.10836, 0, 0.34167], + "115": [0, 0.44444, 0.0778, 0, 0.38333], + "116": [0, 0.57143, 0.07225, 0, 0.36111], + "117": [0, 0.44444, 0.04169, 0, 0.51667], + "118": [0, 0.44444, 0.10836, 0, 0.46111], + "119": [0, 0.44444, 0.10836, 0, 0.68334], + "120": [0, 0.44444, 0.09169, 0, 0.46111], + "121": [0.19444, 0.44444, 0.10836, 0, 0.46111], + "122": [0, 0.44444, 0.08752, 0, 0.43472], + "126": [0.35, 0.32659, 0.08826, 0, 0.5], + "160": [0, 0, 0, 0, 0.25], + "168": [0, 0.67937, 0.06385, 0, 0.5], + "176": [0, 0.69444, 0, 0, 0.73752], + "184": [0.17014, 0, 0, 0, 0.44445], + "305": [0, 0.44444, 0.04169, 0, 0.23889], + "567": [0.19444, 0.44444, 0.04169, 0, 0.26667], + "710": [0, 0.69444, 0.0799, 0, 0.5], + "711": [0, 0.63194, 0.08432, 0, 0.5], + "713": [0, 0.60889, 0.08776, 0, 0.5], + "714": [0, 0.69444, 0.09205, 0, 0.5], + "715": [0, 0.69444, 0, 0, 0.5], + "728": [0, 0.69444, 0.09483, 0, 0.5], + "729": [0, 0.67937, 0.07774, 0, 0.27778], + "730": [0, 0.69444, 0, 0, 0.73752], + "732": [0, 0.67659, 0.08826, 0, 0.5], + "733": [0, 0.69444, 0.09205, 0, 0.5], + "915": [0, 0.69444, 0.13372, 0, 0.54167], + "916": [0, 0.69444, 0, 0, 0.83334], + "920": [0, 0.69444, 0.07555, 0, 0.77778], + "923": [0, 0.69444, 0, 0, 0.61111], + "926": [0, 0.69444, 0.12816, 0, 0.66667], + "928": [0, 0.69444, 0.08094, 0, 0.70834], + "931": [0, 0.69444, 0.11983, 0, 0.72222], + "933": [0, 0.69444, 0.09031, 0, 0.77778], + "934": [0, 0.69444, 0.04603, 0, 0.72222], + "936": [0, 0.69444, 0.09031, 0, 0.77778], + "937": [0, 0.69444, 0.08293, 0, 0.72222], + "8211": [0, 0.44444, 0.08616, 0, 0.5], + "8212": [0, 0.44444, 0.08616, 0, 1.0], + "8216": [0, 0.69444, 0.07816, 0, 0.27778], + "8217": [0, 0.69444, 0.07816, 0, 0.27778], + "8220": [0, 0.69444, 0.14205, 0, 0.5], + "8221": [0, 0.69444, 0.00316, 0, 0.5] + }, + "SansSerif-Regular": { + "32": [0, 0, 0, 0, 0.25], + "33": [0, 0.69444, 0, 0, 0.31945], + "34": [0, 0.69444, 0, 0, 0.5], + "35": [0.19444, 0.69444, 0, 0, 0.83334], + "36": [0.05556, 0.75, 0, 0, 0.5], + "37": [0.05556, 0.75, 0, 0, 0.83334], + "38": [0, 0.69444, 0, 0, 0.75834], + "39": [0, 0.69444, 0, 0, 0.27778], + "40": [0.25, 0.75, 0, 0, 0.38889], + "41": [0.25, 0.75, 0, 0, 0.38889], + "42": [0, 0.75, 0, 0, 0.5], + "43": [0.08333, 0.58333, 0, 0, 0.77778], + "44": [0.125, 0.08333, 0, 0, 0.27778], + "45": [0, 0.44444, 0, 0, 0.33333], + "46": [0, 0.08333, 0, 0, 0.27778], + "47": [0.25, 0.75, 0, 0, 0.5], + "48": [0, 0.65556, 0, 0, 0.5], + "49": [0, 0.65556, 0, 0, 0.5], + "50": [0, 0.65556, 0, 0, 0.5], + "51": [0, 0.65556, 0, 0, 0.5], + "52": [0, 0.65556, 0, 0, 0.5], + "53": [0, 0.65556, 0, 0, 0.5], + "54": [0, 0.65556, 0, 0, 0.5], + "55": [0, 0.65556, 0, 0, 0.5], + "56": [0, 0.65556, 0, 0, 0.5], + "57": [0, 0.65556, 0, 0, 0.5], + "58": [0, 0.44444, 0, 0, 0.27778], + "59": [0.125, 0.44444, 0, 0, 0.27778], + "61": [-0.13, 0.37, 0, 0, 0.77778], + "63": [0, 0.69444, 0, 0, 0.47222], + "64": [0, 0.69444, 0, 0, 0.66667], + "65": [0, 0.69444, 0, 0, 0.66667], + "66": [0, 0.69444, 0, 0, 0.66667], + "67": [0, 0.69444, 0, 0, 0.63889], + "68": [0, 0.69444, 0, 0, 0.72223], + "69": [0, 0.69444, 0, 0, 0.59722], + "70": [0, 0.69444, 0, 0, 0.56945], + "71": [0, 0.69444, 0, 0, 0.66667], + "72": [0, 0.69444, 0, 0, 0.70834], + "73": [0, 0.69444, 0, 0, 0.27778], + "74": [0, 0.69444, 0, 0, 0.47222], + "75": [0, 0.69444, 0, 0, 0.69445], + "76": [0, 0.69444, 0, 0, 0.54167], + "77": [0, 0.69444, 0, 0, 0.875], + "78": [0, 0.69444, 0, 0, 0.70834], + "79": [0, 0.69444, 0, 0, 0.73611], + "80": [0, 0.69444, 0, 0, 0.63889], + "81": [0.125, 0.69444, 0, 0, 0.73611], + "82": [0, 0.69444, 0, 0, 0.64584], + "83": [0, 0.69444, 0, 0, 0.55556], + "84": [0, 0.69444, 0, 0, 0.68056], + "85": [0, 0.69444, 0, 0, 0.6875], + "86": [0, 0.69444, 0.01389, 0, 0.66667], + "87": [0, 0.69444, 0.01389, 0, 0.94445], + "88": [0, 0.69444, 0, 0, 0.66667], + "89": [0, 0.69444, 0.025, 0, 0.66667], + "90": [0, 0.69444, 0, 0, 0.61111], + "91": [0.25, 0.75, 0, 0, 0.28889], + "93": [0.25, 0.75, 0, 0, 0.28889], + "94": [0, 0.69444, 0, 0, 0.5], + "95": [0.35, 0.09444, 0.02778, 0, 0.5], + "97": [0, 0.44444, 0, 0, 0.48056], + "98": [0, 0.69444, 0, 0, 0.51667], + "99": [0, 0.44444, 0, 0, 0.44445], + "100": [0, 0.69444, 0, 0, 0.51667], + "101": [0, 0.44444, 0, 0, 0.44445], + "102": [0, 0.69444, 0.06944, 0, 0.30556], + "103": [0.19444, 0.44444, 0.01389, 0, 0.5], + "104": [0, 0.69444, 0, 0, 0.51667], + "105": [0, 0.67937, 0, 0, 0.23889], + "106": [0.19444, 0.67937, 0, 0, 0.26667], + "107": [0, 0.69444, 0, 0, 0.48889], + "108": [0, 0.69444, 0, 0, 0.23889], + "109": [0, 0.44444, 0, 0, 0.79445], + "110": [0, 0.44444, 0, 0, 0.51667], + "111": [0, 0.44444, 0, 0, 0.5], + "112": [0.19444, 0.44444, 0, 0, 0.51667], + "113": [0.19444, 0.44444, 0, 0, 0.51667], + "114": [0, 0.44444, 0.01389, 0, 0.34167], + "115": [0, 0.44444, 0, 0, 0.38333], + "116": [0, 0.57143, 0, 0, 0.36111], + "117": [0, 0.44444, 0, 0, 0.51667], + "118": [0, 0.44444, 0.01389, 0, 0.46111], + "119": [0, 0.44444, 0.01389, 0, 0.68334], + "120": [0, 0.44444, 0, 0, 0.46111], + "121": [0.19444, 0.44444, 0.01389, 0, 0.46111], + "122": [0, 0.44444, 0, 0, 0.43472], + "126": [0.35, 0.32659, 0, 0, 0.5], + "160": [0, 0, 0, 0, 0.25], + "168": [0, 0.67937, 0, 0, 0.5], + "176": [0, 0.69444, 0, 0, 0.66667], + "184": [0.17014, 0, 0, 0, 0.44445], + "305": [0, 0.44444, 0, 0, 0.23889], + "567": [0.19444, 0.44444, 0, 0, 0.26667], + "710": [0, 0.69444, 0, 0, 0.5], + "711": [0, 0.63194, 0, 0, 0.5], + "713": [0, 0.60889, 0, 0, 0.5], + "714": [0, 0.69444, 0, 0, 0.5], + "715": [0, 0.69444, 0, 0, 0.5], + "728": [0, 0.69444, 0, 0, 0.5], + "729": [0, 0.67937, 0, 0, 0.27778], + "730": [0, 0.69444, 0, 0, 0.66667], + "732": [0, 0.67659, 0, 0, 0.5], + "733": [0, 0.69444, 0, 0, 0.5], + "915": [0, 0.69444, 0, 0, 0.54167], + "916": [0, 0.69444, 0, 0, 0.83334], + "920": [0, 0.69444, 0, 0, 0.77778], + "923": [0, 0.69444, 0, 0, 0.61111], + "926": [0, 0.69444, 0, 0, 0.66667], + "928": [0, 0.69444, 0, 0, 0.70834], + "931": [0, 0.69444, 0, 0, 0.72222], + "933": [0, 0.69444, 0, 0, 0.77778], + "934": [0, 0.69444, 0, 0, 0.72222], + "936": [0, 0.69444, 0, 0, 0.77778], + "937": [0, 0.69444, 0, 0, 0.72222], + "8211": [0, 0.44444, 0.02778, 0, 0.5], + "8212": [0, 0.44444, 0.02778, 0, 1.0], + "8216": [0, 0.69444, 0, 0, 0.27778], + "8217": [0, 0.69444, 0, 0, 0.27778], + "8220": [0, 0.69444, 0, 0, 0.5], + "8221": [0, 0.69444, 0, 0, 0.5] + }, + "Script-Regular": { + "32": [0, 0, 0, 0, 0.25], + "65": [0, 0.7, 0.22925, 0, 0.80253], + "66": [0, 0.7, 0.04087, 0, 0.90757], + "67": [0, 0.7, 0.1689, 0, 0.66619], + "68": [0, 0.7, 0.09371, 0, 0.77443], + "69": [0, 0.7, 0.18583, 0, 0.56162], + "70": [0, 0.7, 0.13634, 0, 0.89544], + "71": [0, 0.7, 0.17322, 0, 0.60961], + "72": [0, 0.7, 0.29694, 0, 0.96919], + "73": [0, 0.7, 0.19189, 0, 0.80907], + "74": [0.27778, 0.7, 0.19189, 0, 1.05159], + "75": [0, 0.7, 0.31259, 0, 0.91364], + "76": [0, 0.7, 0.19189, 0, 0.87373], + "77": [0, 0.7, 0.15981, 0, 1.08031], + "78": [0, 0.7, 0.3525, 0, 0.9015], + "79": [0, 0.7, 0.08078, 0, 0.73787], + "80": [0, 0.7, 0.08078, 0, 1.01262], + "81": [0, 0.7, 0.03305, 0, 0.88282], + "82": [0, 0.7, 0.06259, 0, 0.85], + "83": [0, 0.7, 0.19189, 0, 0.86767], + "84": [0, 0.7, 0.29087, 0, 0.74697], + "85": [0, 0.7, 0.25815, 0, 0.79996], + "86": [0, 0.7, 0.27523, 0, 0.62204], + "87": [0, 0.7, 0.27523, 0, 0.80532], + "88": [0, 0.7, 0.26006, 0, 0.94445], + "89": [0, 0.7, 0.2939, 0, 0.70961], + "90": [0, 0.7, 0.24037, 0, 0.8212], + "160": [0, 0, 0, 0, 0.25] + }, + "Size1-Regular": { + "32": [0, 0, 0, 0, 0.25], + "40": [0.35001, 0.85, 0, 0, 0.45834], + "41": [0.35001, 0.85, 0, 0, 0.45834], + "47": [0.35001, 0.85, 0, 0, 0.57778], + "91": [0.35001, 0.85, 0, 0, 0.41667], + "92": [0.35001, 0.85, 0, 0, 0.57778], + "93": [0.35001, 0.85, 0, 0, 0.41667], + "123": [0.35001, 0.85, 0, 0, 0.58334], + "125": [0.35001, 0.85, 0, 0, 0.58334], + "160": [0, 0, 0, 0, 0.25], + "710": [0, 0.72222, 0, 0, 0.55556], + "732": [0, 0.72222, 0, 0, 0.55556], + "770": [0, 0.72222, 0, 0, 0.55556], + "771": [0, 0.72222, 0, 0, 0.55556], + "8214": [-0.00099, 0.601, 0, 0, 0.77778], + "8593": [1e-05, 0.6, 0, 0, 0.66667], + "8595": [1e-05, 0.6, 0, 0, 0.66667], + "8657": [1e-05, 0.6, 0, 0, 0.77778], + "8659": [1e-05, 0.6, 0, 0, 0.77778], + "8719": [0.25001, 0.75, 0, 0, 0.94445], + "8720": [0.25001, 0.75, 0, 0, 0.94445], + "8721": [0.25001, 0.75, 0, 0, 1.05556], + "8730": [0.35001, 0.85, 0, 0, 1.0], + "8739": [-0.00599, 0.606, 0, 0, 0.33333], + "8741": [-0.00599, 0.606, 0, 0, 0.55556], + "8747": [0.30612, 0.805, 0.19445, 0, 0.47222], + "8748": [0.306, 0.805, 0.19445, 0, 0.47222], + "8749": [0.306, 0.805, 0.19445, 0, 0.47222], + "8750": [0.30612, 0.805, 0.19445, 0, 0.47222], + "8896": [0.25001, 0.75, 0, 0, 0.83334], + "8897": [0.25001, 0.75, 0, 0, 0.83334], + "8898": [0.25001, 0.75, 0, 0, 0.83334], + "8899": [0.25001, 0.75, 0, 0, 0.83334], + "8968": [0.35001, 0.85, 0, 0, 0.47222], + "8969": [0.35001, 0.85, 0, 0, 0.47222], + "8970": [0.35001, 0.85, 0, 0, 0.47222], + "8971": [0.35001, 0.85, 0, 0, 0.47222], + "9168": [-0.00099, 0.601, 0, 0, 0.66667], + "10216": [0.35001, 0.85, 0, 0, 0.47222], + "10217": [0.35001, 0.85, 0, 0, 0.47222], + "10752": [0.25001, 0.75, 0, 0, 1.11111], + "10753": [0.25001, 0.75, 0, 0, 1.11111], + "10754": [0.25001, 0.75, 0, 0, 1.11111], + "10756": [0.25001, 0.75, 0, 0, 0.83334], + "10758": [0.25001, 0.75, 0, 0, 0.83334] + }, + "Size2-Regular": { + "32": [0, 0, 0, 0, 0.25], + "40": [0.65002, 1.15, 0, 0, 0.59722], + "41": [0.65002, 1.15, 0, 0, 0.59722], + "47": [0.65002, 1.15, 0, 0, 0.81111], + "91": [0.65002, 1.15, 0, 0, 0.47222], + "92": [0.65002, 1.15, 0, 0, 0.81111], + "93": [0.65002, 1.15, 0, 0, 0.47222], + "123": [0.65002, 1.15, 0, 0, 0.66667], + "125": [0.65002, 1.15, 0, 0, 0.66667], + "160": [0, 0, 0, 0, 0.25], + "710": [0, 0.75, 0, 0, 1.0], + "732": [0, 0.75, 0, 0, 1.0], + "770": [0, 0.75, 0, 0, 1.0], + "771": [0, 0.75, 0, 0, 1.0], + "8719": [0.55001, 1.05, 0, 0, 1.27778], + "8720": [0.55001, 1.05, 0, 0, 1.27778], + "8721": [0.55001, 1.05, 0, 0, 1.44445], + "8730": [0.65002, 1.15, 0, 0, 1.0], + "8747": [0.86225, 1.36, 0.44445, 0, 0.55556], + "8748": [0.862, 1.36, 0.44445, 0, 0.55556], + "8749": [0.862, 1.36, 0.44445, 0, 0.55556], + "8750": [0.86225, 1.36, 0.44445, 0, 0.55556], + "8896": [0.55001, 1.05, 0, 0, 1.11111], + "8897": [0.55001, 1.05, 0, 0, 1.11111], + "8898": [0.55001, 1.05, 0, 0, 1.11111], + "8899": [0.55001, 1.05, 0, 0, 1.11111], + "8968": [0.65002, 1.15, 0, 0, 0.52778], + "8969": [0.65002, 1.15, 0, 0, 0.52778], + "8970": [0.65002, 1.15, 0, 0, 0.52778], + "8971": [0.65002, 1.15, 0, 0, 0.52778], + "10216": [0.65002, 1.15, 0, 0, 0.61111], + "10217": [0.65002, 1.15, 0, 0, 0.61111], + "10752": [0.55001, 1.05, 0, 0, 1.51112], + "10753": [0.55001, 1.05, 0, 0, 1.51112], + "10754": [0.55001, 1.05, 0, 0, 1.51112], + "10756": [0.55001, 1.05, 0, 0, 1.11111], + "10758": [0.55001, 1.05, 0, 0, 1.11111] + }, + "Size3-Regular": { + "32": [0, 0, 0, 0, 0.25], + "40": [0.95003, 1.45, 0, 0, 0.73611], + "41": [0.95003, 1.45, 0, 0, 0.73611], + "47": [0.95003, 1.45, 0, 0, 1.04445], + "91": [0.95003, 1.45, 0, 0, 0.52778], + "92": [0.95003, 1.45, 0, 0, 1.04445], + "93": [0.95003, 1.45, 0, 0, 0.52778], + "123": [0.95003, 1.45, 0, 0, 0.75], + "125": [0.95003, 1.45, 0, 0, 0.75], + "160": [0, 0, 0, 0, 0.25], + "710": [0, 0.75, 0, 0, 1.44445], + "732": [0, 0.75, 0, 0, 1.44445], + "770": [0, 0.75, 0, 0, 1.44445], + "771": [0, 0.75, 0, 0, 1.44445], + "8730": [0.95003, 1.45, 0, 0, 1.0], + "8968": [0.95003, 1.45, 0, 0, 0.58334], + "8969": [0.95003, 1.45, 0, 0, 0.58334], + "8970": [0.95003, 1.45, 0, 0, 0.58334], + "8971": [0.95003, 1.45, 0, 0, 0.58334], + "10216": [0.95003, 1.45, 0, 0, 0.75], + "10217": [0.95003, 1.45, 0, 0, 0.75] + }, + "Size4-Regular": { + "32": [0, 0, 0, 0, 0.25], + "40": [1.25003, 1.75, 0, 0, 0.79167], + "41": [1.25003, 1.75, 0, 0, 0.79167], + "47": [1.25003, 1.75, 0, 0, 1.27778], + "91": [1.25003, 1.75, 0, 0, 0.58334], + "92": [1.25003, 1.75, 0, 0, 1.27778], + "93": [1.25003, 1.75, 0, 0, 0.58334], + "123": [1.25003, 1.75, 0, 0, 0.80556], + "125": [1.25003, 1.75, 0, 0, 0.80556], + "160": [0, 0, 0, 0, 0.25], + "710": [0, 0.825, 0, 0, 1.8889], + "732": [0, 0.825, 0, 0, 1.8889], + "770": [0, 0.825, 0, 0, 1.8889], + "771": [0, 0.825, 0, 0, 1.8889], + "8730": [1.25003, 1.75, 0, 0, 1.0], + "8968": [1.25003, 1.75, 0, 0, 0.63889], + "8969": [1.25003, 1.75, 0, 0, 0.63889], + "8970": [1.25003, 1.75, 0, 0, 0.63889], + "8971": [1.25003, 1.75, 0, 0, 0.63889], + "9115": [0.64502, 1.155, 0, 0, 0.875], + "9116": [1e-05, 0.6, 0, 0, 0.875], + "9117": [0.64502, 1.155, 0, 0, 0.875], + "9118": [0.64502, 1.155, 0, 0, 0.875], + "9119": [1e-05, 0.6, 0, 0, 0.875], + "9120": [0.64502, 1.155, 0, 0, 0.875], + "9121": [0.64502, 1.155, 0, 0, 0.66667], + "9122": [-0.00099, 0.601, 0, 0, 0.66667], + "9123": [0.64502, 1.155, 0, 0, 0.66667], + "9124": [0.64502, 1.155, 0, 0, 0.66667], + "9125": [-0.00099, 0.601, 0, 0, 0.66667], + "9126": [0.64502, 1.155, 0, 0, 0.66667], + "9127": [1e-05, 0.9, 0, 0, 0.88889], + "9128": [0.65002, 1.15, 0, 0, 0.88889], + "9129": [0.90001, 0, 0, 0, 0.88889], + "9130": [0, 0.3, 0, 0, 0.88889], + "9131": [1e-05, 0.9, 0, 0, 0.88889], + "9132": [0.65002, 1.15, 0, 0, 0.88889], + "9133": [0.90001, 0, 0, 0, 0.88889], + "9143": [0.88502, 0.915, 0, 0, 1.05556], + "10216": [1.25003, 1.75, 0, 0, 0.80556], + "10217": [1.25003, 1.75, 0, 0, 0.80556], + "57344": [-0.00499, 0.605, 0, 0, 1.05556], + "57345": [-0.00499, 0.605, 0, 0, 1.05556], + "57680": [0, 0.12, 0, 0, 0.45], + "57681": [0, 0.12, 0, 0, 0.45], + "57682": [0, 0.12, 0, 0, 0.45], + "57683": [0, 0.12, 0, 0, 0.45] + }, + "Typewriter-Regular": { + "32": [0, 0, 0, 0, 0.525], + "33": [0, 0.61111, 0, 0, 0.525], + "34": [0, 0.61111, 0, 0, 0.525], + "35": [0, 0.61111, 0, 0, 0.525], + "36": [0.08333, 0.69444, 0, 0, 0.525], + "37": [0.08333, 0.69444, 0, 0, 0.525], + "38": [0, 0.61111, 0, 0, 0.525], + "39": [0, 0.61111, 0, 0, 0.525], + "40": [0.08333, 0.69444, 0, 0, 0.525], + "41": [0.08333, 0.69444, 0, 0, 0.525], + "42": [0, 0.52083, 0, 0, 0.525], + "43": [-0.08056, 0.53055, 0, 0, 0.525], + "44": [0.13889, 0.125, 0, 0, 0.525], + "45": [-0.08056, 0.53055, 0, 0, 0.525], + "46": [0, 0.125, 0, 0, 0.525], + "47": [0.08333, 0.69444, 0, 0, 0.525], + "48": [0, 0.61111, 0, 0, 0.525], + "49": [0, 0.61111, 0, 0, 0.525], + "50": [0, 0.61111, 0, 0, 0.525], + "51": [0, 0.61111, 0, 0, 0.525], + "52": [0, 0.61111, 0, 0, 0.525], + "53": [0, 0.61111, 0, 0, 0.525], + "54": [0, 0.61111, 0, 0, 0.525], + "55": [0, 0.61111, 0, 0, 0.525], + "56": [0, 0.61111, 0, 0, 0.525], + "57": [0, 0.61111, 0, 0, 0.525], + "58": [0, 0.43056, 0, 0, 0.525], + "59": [0.13889, 0.43056, 0, 0, 0.525], + "60": [-0.05556, 0.55556, 0, 0, 0.525], + "61": [-0.19549, 0.41562, 0, 0, 0.525], + "62": [-0.05556, 0.55556, 0, 0, 0.525], + "63": [0, 0.61111, 0, 0, 0.525], + "64": [0, 0.61111, 0, 0, 0.525], + "65": [0, 0.61111, 0, 0, 0.525], + "66": [0, 0.61111, 0, 0, 0.525], + "67": [0, 0.61111, 0, 0, 0.525], + "68": [0, 0.61111, 0, 0, 0.525], + "69": [0, 0.61111, 0, 0, 0.525], + "70": [0, 0.61111, 0, 0, 0.525], + "71": [0, 0.61111, 0, 0, 0.525], + "72": [0, 0.61111, 0, 0, 0.525], + "73": [0, 0.61111, 0, 0, 0.525], + "74": [0, 0.61111, 0, 0, 0.525], + "75": [0, 0.61111, 0, 0, 0.525], + "76": [0, 0.61111, 0, 0, 0.525], + "77": [0, 0.61111, 0, 0, 0.525], + "78": [0, 0.61111, 0, 0, 0.525], + "79": [0, 0.61111, 0, 0, 0.525], + "80": [0, 0.61111, 0, 0, 0.525], + "81": [0.13889, 0.61111, 0, 0, 0.525], + "82": [0, 0.61111, 0, 0, 0.525], + "83": [0, 0.61111, 0, 0, 0.525], + "84": [0, 0.61111, 0, 0, 0.525], + "85": [0, 0.61111, 0, 0, 0.525], + "86": [0, 0.61111, 0, 0, 0.525], + "87": [0, 0.61111, 0, 0, 0.525], + "88": [0, 0.61111, 0, 0, 0.525], + "89": [0, 0.61111, 0, 0, 0.525], + "90": [0, 0.61111, 0, 0, 0.525], + "91": [0.08333, 0.69444, 0, 0, 0.525], + "92": [0.08333, 0.69444, 0, 0, 0.525], + "93": [0.08333, 0.69444, 0, 0, 0.525], + "94": [0, 0.61111, 0, 0, 0.525], + "95": [0.09514, 0, 0, 0, 0.525], + "96": [0, 0.61111, 0, 0, 0.525], + "97": [0, 0.43056, 0, 0, 0.525], + "98": [0, 0.61111, 0, 0, 0.525], + "99": [0, 0.43056, 0, 0, 0.525], + "100": [0, 0.61111, 0, 0, 0.525], + "101": [0, 0.43056, 0, 0, 0.525], + "102": [0, 0.61111, 0, 0, 0.525], + "103": [0.22222, 0.43056, 0, 0, 0.525], + "104": [0, 0.61111, 0, 0, 0.525], + "105": [0, 0.61111, 0, 0, 0.525], + "106": [0.22222, 0.61111, 0, 0, 0.525], + "107": [0, 0.61111, 0, 0, 0.525], + "108": [0, 0.61111, 0, 0, 0.525], + "109": [0, 0.43056, 0, 0, 0.525], + "110": [0, 0.43056, 0, 0, 0.525], + "111": [0, 0.43056, 0, 0, 0.525], + "112": [0.22222, 0.43056, 0, 0, 0.525], + "113": [0.22222, 0.43056, 0, 0, 0.525], + "114": [0, 0.43056, 0, 0, 0.525], + "115": [0, 0.43056, 0, 0, 0.525], + "116": [0, 0.55358, 0, 0, 0.525], + "117": [0, 0.43056, 0, 0, 0.525], + "118": [0, 0.43056, 0, 0, 0.525], + "119": [0, 0.43056, 0, 0, 0.525], + "120": [0, 0.43056, 0, 0, 0.525], + "121": [0.22222, 0.43056, 0, 0, 0.525], + "122": [0, 0.43056, 0, 0, 0.525], + "123": [0.08333, 0.69444, 0, 0, 0.525], + "124": [0.08333, 0.69444, 0, 0, 0.525], + "125": [0.08333, 0.69444, 0, 0, 0.525], + "126": [0, 0.61111, 0, 0, 0.525], + "127": [0, 0.61111, 0, 0, 0.525], + "160": [0, 0, 0, 0, 0.525], + "176": [0, 0.61111, 0, 0, 0.525], + "184": [0.19445, 0, 0, 0, 0.525], + "305": [0, 0.43056, 0, 0, 0.525], + "567": [0.22222, 0.43056, 0, 0, 0.525], + "711": [0, 0.56597, 0, 0, 0.525], + "713": [0, 0.56555, 0, 0, 0.525], + "714": [0, 0.61111, 0, 0, 0.525], + "715": [0, 0.61111, 0, 0, 0.525], + "728": [0, 0.61111, 0, 0, 0.525], + "730": [0, 0.61111, 0, 0, 0.525], + "770": [0, 0.61111, 0, 0, 0.525], + "771": [0, 0.61111, 0, 0, 0.525], + "776": [0, 0.61111, 0, 0, 0.525], + "915": [0, 0.61111, 0, 0, 0.525], + "916": [0, 0.61111, 0, 0, 0.525], + "920": [0, 0.61111, 0, 0, 0.525], + "923": [0, 0.61111, 0, 0, 0.525], + "926": [0, 0.61111, 0, 0, 0.525], + "928": [0, 0.61111, 0, 0, 0.525], + "931": [0, 0.61111, 0, 0, 0.525], + "933": [0, 0.61111, 0, 0, 0.525], + "934": [0, 0.61111, 0, 0, 0.525], + "936": [0, 0.61111, 0, 0, 0.525], + "937": [0, 0.61111, 0, 0, 0.525], + "8216": [0, 0.61111, 0, 0, 0.525], + "8217": [0, 0.61111, 0, 0, 0.525], + "8242": [0, 0.61111, 0, 0, 0.525], + "9251": [0.11111, 0.21944, 0, 0, 0.525] + } +}); +// CONCATENATED MODULE: ./src/fontMetrics.js + + +/** + * This file contains metrics regarding fonts and individual symbols. The sigma + * and xi variables, as well as the metricMap map contain data extracted from + * TeX, TeX font metrics, and the TTF files. These data are then exposed via the + * `metrics` variable and the getCharacterMetrics function. + */ +// In TeX, there are actually three sets of dimensions, one for each of +// textstyle (size index 5 and higher: >=9pt), scriptstyle (size index 3 and 4: +// 7-8pt), and scriptscriptstyle (size index 1 and 2: 5-6pt). These are +// provided in the the arrays below, in that order. +// +// The font metrics are stored in fonts cmsy10, cmsy7, and cmsy5 respsectively. +// This was determined by running the following script: +// +// latex -interaction=nonstopmode \ +// '\documentclass{article}\usepackage{amsmath}\begin{document}' \ +// '$a$ \expandafter\show\the\textfont2' \ +// '\expandafter\show\the\scriptfont2' \ +// '\expandafter\show\the\scriptscriptfont2' \ +// '\stop' +// +// The metrics themselves were retreived using the following commands: +// +// tftopl cmsy10 +// tftopl cmsy7 +// tftopl cmsy5 +// +// The output of each of these commands is quite lengthy. The only part we +// care about is the FONTDIMEN section. Each value is measured in EMs. +var sigmasAndXis = { + slant: [0.250, 0.250, 0.250], + // sigma1 + space: [0.000, 0.000, 0.000], + // sigma2 + stretch: [0.000, 0.000, 0.000], + // sigma3 + shrink: [0.000, 0.000, 0.000], + // sigma4 + xHeight: [0.431, 0.431, 0.431], + // sigma5 + quad: [1.000, 1.171, 1.472], + // sigma6 + extraSpace: [0.000, 0.000, 0.000], + // sigma7 + num1: [0.677, 0.732, 0.925], + // sigma8 + num2: [0.394, 0.384, 0.387], + // sigma9 + num3: [0.444, 0.471, 0.504], + // sigma10 + denom1: [0.686, 0.752, 1.025], + // sigma11 + denom2: [0.345, 0.344, 0.532], + // sigma12 + sup1: [0.413, 0.503, 0.504], + // sigma13 + sup2: [0.363, 0.431, 0.404], + // sigma14 + sup3: [0.289, 0.286, 0.294], + // sigma15 + sub1: [0.150, 0.143, 0.200], + // sigma16 + sub2: [0.247, 0.286, 0.400], + // sigma17 + supDrop: [0.386, 0.353, 0.494], + // sigma18 + subDrop: [0.050, 0.071, 0.100], + // sigma19 + delim1: [2.390, 1.700, 1.980], + // sigma20 + delim2: [1.010, 1.157, 1.420], + // sigma21 + axisHeight: [0.250, 0.250, 0.250], + // sigma22 + // These font metrics are extracted from TeX by using tftopl on cmex10.tfm; + // they correspond to the font parameters of the extension fonts (family 3). + // See the TeXbook, page 441. In AMSTeX, the extension fonts scale; to + // match cmex7, we'd use cmex7.tfm values for script and scriptscript + // values. + defaultRuleThickness: [0.04, 0.049, 0.049], + // xi8; cmex7: 0.049 + bigOpSpacing1: [0.111, 0.111, 0.111], + // xi9 + bigOpSpacing2: [0.166, 0.166, 0.166], + // xi10 + bigOpSpacing3: [0.2, 0.2, 0.2], + // xi11 + bigOpSpacing4: [0.6, 0.611, 0.611], + // xi12; cmex7: 0.611 + bigOpSpacing5: [0.1, 0.143, 0.143], + // xi13; cmex7: 0.143 + // The \sqrt rule width is taken from the height of the surd character. + // Since we use the same font at all sizes, this thickness doesn't scale. + sqrtRuleThickness: [0.04, 0.04, 0.04], + // This value determines how large a pt is, for metrics which are defined + // in terms of pts. + // This value is also used in katex.less; if you change it make sure the + // values match. + ptPerEm: [10.0, 10.0, 10.0], + // The space between adjacent `|` columns in an array definition. From + // `\showthe\doublerulesep` in LaTeX. Equals 2.0 / ptPerEm. + doubleRuleSep: [0.2, 0.2, 0.2], + // The width of separator lines in {array} environments. From + // `\showthe\arrayrulewidth` in LaTeX. Equals 0.4 / ptPerEm. + arrayRuleWidth: [0.04, 0.04, 0.04], + // Two values from LaTeX source2e: + fboxsep: [0.3, 0.3, 0.3], + // 3 pt / ptPerEm + fboxrule: [0.04, 0.04, 0.04] // 0.4 pt / ptPerEm + +}; // This map contains a mapping from font name and character code to character +// metrics, including height, depth, italic correction, and skew (kern from the +// character to the corresponding \skewchar) +// This map is generated via `make metrics`. It should not be changed manually. + + // These are very rough approximations. We default to Times New Roman which +// should have Latin-1 and Cyrillic characters, but may not depending on the +// operating system. The metrics do not account for extra height from the +// accents. In the case of Cyrillic characters which have both ascenders and +// descenders we prefer approximations with ascenders, primarily to prevent +// the fraction bar or root line from intersecting the glyph. +// TODO(kevinb) allow union of multiple glyph metrics for better accuracy. + +var extraCharacterMap = { + // Latin-1 + 'Å': 'A', + 'Ç': 'C', + 'Ð': 'D', + 'Þ': 'o', + 'å': 'a', + 'ç': 'c', + 'ð': 'd', + 'þ': 'o', + // Cyrillic + 'А': 'A', + 'Б': 'B', + 'В': 'B', + 'Г': 'F', + 'Д': 'A', + 'Е': 'E', + 'Ж': 'K', + 'З': '3', + 'И': 'N', + 'Й': 'N', + 'К': 'K', + 'Л': 'N', + 'М': 'M', + 'Н': 'H', + 'О': 'O', + 'П': 'N', + 'Р': 'P', + 'С': 'C', + 'Т': 'T', + 'У': 'y', + 'Ф': 'O', + 'Х': 'X', + 'Ц': 'U', + 'Ч': 'h', + 'Ш': 'W', + 'Щ': 'W', + 'Ъ': 'B', + 'Ы': 'X', + 'Ь': 'B', + 'Э': '3', + 'Ю': 'X', + 'Я': 'R', + 'а': 'a', + 'б': 'b', + 'в': 'a', + 'г': 'r', + 'д': 'y', + 'е': 'e', + 'ж': 'm', + 'з': 'e', + 'и': 'n', + 'й': 'n', + 'к': 'n', + 'л': 'n', + 'м': 'm', + 'н': 'n', + 'о': 'o', + 'п': 'n', + 'р': 'p', + 'с': 'c', + 'т': 'o', + 'у': 'y', + 'ф': 'b', + 'х': 'x', + 'ц': 'n', + 'ч': 'n', + 'ш': 'w', + 'щ': 'w', + 'ъ': 'a', + 'ы': 'm', + 'ь': 'a', + 'э': 'e', + 'ю': 'm', + 'я': 'r' +}; + +/** + * This function adds new font metrics to default metricMap + * It can also override existing metrics + */ +function setFontMetrics(fontName, metrics) { + fontMetricsData[fontName] = metrics; +} +/** + * This function is a convenience function for looking up information in the + * metricMap table. It takes a character as a string, and a font. + * + * Note: the `width` property may be undefined if fontMetricsData.js wasn't + * built using `Make extended_metrics`. + */ + +function getCharacterMetrics(character, font, mode) { + if (!fontMetricsData[font]) { + throw new Error("Font metrics not found for font: " + font + "."); + } + + var ch = character.charCodeAt(0); + var metrics = fontMetricsData[font][ch]; + + if (!metrics && character[0] in extraCharacterMap) { + ch = extraCharacterMap[character[0]].charCodeAt(0); + metrics = fontMetricsData[font][ch]; + } + + if (!metrics && mode === 'text') { + // We don't typically have font metrics for Asian scripts. + // But since we support them in text mode, we need to return + // some sort of metrics. + // So if the character is in a script we support but we + // don't have metrics for it, just use the metrics for + // the Latin capital letter M. This is close enough because + // we (currently) only care about the height of the glpyh + // not its width. + if (supportedCodepoint(ch)) { + metrics = fontMetricsData[font][77]; // 77 is the charcode for 'M' + } + } + + if (metrics) { + return { + depth: metrics[0], + height: metrics[1], + italic: metrics[2], + skew: metrics[3], + width: metrics[4] + }; + } +} +var fontMetricsBySizeIndex = {}; +/** + * Get the font metrics for a given size. + */ + +function getGlobalMetrics(size) { + var sizeIndex; + + if (size >= 5) { + sizeIndex = 0; + } else if (size >= 3) { + sizeIndex = 1; + } else { + sizeIndex = 2; + } + + if (!fontMetricsBySizeIndex[sizeIndex]) { + var metrics = fontMetricsBySizeIndex[sizeIndex] = { + cssEmPerMu: sigmasAndXis.quad[sizeIndex] / 18 + }; + + for (var key in sigmasAndXis) { + if (sigmasAndXis.hasOwnProperty(key)) { + metrics[key] = sigmasAndXis[key][sizeIndex]; + } + } + } + + return fontMetricsBySizeIndex[sizeIndex]; +} +// CONCATENATED MODULE: ./src/symbols.js +/** + * This file holds a list of all no-argument functions and single-character + * symbols (like 'a' or ';'). + * + * For each of the symbols, there are three properties they can have: + * - font (required): the font to be used for this symbol. Either "main" (the + normal font), or "ams" (the ams fonts). + * - group (required): the ParseNode group type the symbol should have (i.e. + "textord", "mathord", etc). + See https://github.com/KaTeX/KaTeX/wiki/Examining-TeX#group-types + * - replace: the character that this symbol or function should be + * replaced with (i.e. "\phi" has a replace value of "\u03d5", the phi + * character in the main font). + * + * The outermost map in the table indicates what mode the symbols should be + * accepted in (e.g. "math" or "text"). + */ +// Some of these have a "-token" suffix since these are also used as `ParseNode` +// types for raw text tokens, and we want to avoid conflicts with higher-level +// `ParseNode` types. These `ParseNode`s are constructed within `Parser` by +// looking up the `symbols` map. +var ATOMS = { + "bin": 1, + "close": 1, + "inner": 1, + "open": 1, + "punct": 1, + "rel": 1 +}; +var NON_ATOMS = { + "accent-token": 1, + "mathord": 1, + "op-token": 1, + "spacing": 1, + "textord": 1 +}; +var symbols = { + "math": {}, + "text": {} +}; +/* harmony default export */ var src_symbols = (symbols); +/** `acceptUnicodeChar = true` is only applicable if `replace` is set. */ + +function defineSymbol(mode, font, group, replace, name, acceptUnicodeChar) { + symbols[mode][name] = { + font: font, + group: group, + replace: replace + }; + + if (acceptUnicodeChar && replace) { + symbols[mode][replace] = symbols[mode][name]; + } +} // Some abbreviations for commonly used strings. +// This helps minify the code, and also spotting typos using jshint. +// modes: + +var symbols_math = "math"; +var symbols_text = "text"; // fonts: + +var main = "main"; +var ams = "ams"; // groups: + +var symbols_accent = "accent-token"; +var bin = "bin"; +var symbols_close = "close"; +var symbols_inner = "inner"; +var mathord = "mathord"; +var op = "op-token"; +var symbols_open = "open"; +var punct = "punct"; +var rel = "rel"; +var symbols_spacing = "spacing"; +var symbols_textord = "textord"; // Now comes the symbol table +// Relation Symbols + +defineSymbol(symbols_math, main, rel, "\u2261", "\\equiv", true); +defineSymbol(symbols_math, main, rel, "\u227A", "\\prec", true); +defineSymbol(symbols_math, main, rel, "\u227B", "\\succ", true); +defineSymbol(symbols_math, main, rel, "\u223C", "\\sim", true); +defineSymbol(symbols_math, main, rel, "\u22A5", "\\perp"); +defineSymbol(symbols_math, main, rel, "\u2AAF", "\\preceq", true); +defineSymbol(symbols_math, main, rel, "\u2AB0", "\\succeq", true); +defineSymbol(symbols_math, main, rel, "\u2243", "\\simeq", true); +defineSymbol(symbols_math, main, rel, "\u2223", "\\mid", true); +defineSymbol(symbols_math, main, rel, "\u226A", "\\ll", true); +defineSymbol(symbols_math, main, rel, "\u226B", "\\gg", true); +defineSymbol(symbols_math, main, rel, "\u224D", "\\asymp", true); +defineSymbol(symbols_math, main, rel, "\u2225", "\\parallel"); +defineSymbol(symbols_math, main, rel, "\u22C8", "\\bowtie", true); +defineSymbol(symbols_math, main, rel, "\u2323", "\\smile", true); +defineSymbol(symbols_math, main, rel, "\u2291", "\\sqsubseteq", true); +defineSymbol(symbols_math, main, rel, "\u2292", "\\sqsupseteq", true); +defineSymbol(symbols_math, main, rel, "\u2250", "\\doteq", true); +defineSymbol(symbols_math, main, rel, "\u2322", "\\frown", true); +defineSymbol(symbols_math, main, rel, "\u220B", "\\ni", true); +defineSymbol(symbols_math, main, rel, "\u221D", "\\propto", true); +defineSymbol(symbols_math, main, rel, "\u22A2", "\\vdash", true); +defineSymbol(symbols_math, main, rel, "\u22A3", "\\dashv", true); +defineSymbol(symbols_math, main, rel, "\u220B", "\\owns"); // Punctuation + +defineSymbol(symbols_math, main, punct, ".", "\\ldotp"); +defineSymbol(symbols_math, main, punct, "\u22C5", "\\cdotp"); // Misc Symbols + +defineSymbol(symbols_math, main, symbols_textord, "#", "\\#"); +defineSymbol(symbols_text, main, symbols_textord, "#", "\\#"); +defineSymbol(symbols_math, main, symbols_textord, "&", "\\&"); +defineSymbol(symbols_text, main, symbols_textord, "&", "\\&"); +defineSymbol(symbols_math, main, symbols_textord, "\u2135", "\\aleph", true); +defineSymbol(symbols_math, main, symbols_textord, "\u2200", "\\forall", true); +defineSymbol(symbols_math, main, symbols_textord, "\u210F", "\\hbar", true); +defineSymbol(symbols_math, main, symbols_textord, "\u2203", "\\exists", true); +defineSymbol(symbols_math, main, symbols_textord, "\u2207", "\\nabla", true); +defineSymbol(symbols_math, main, symbols_textord, "\u266D", "\\flat", true); +defineSymbol(symbols_math, main, symbols_textord, "\u2113", "\\ell", true); +defineSymbol(symbols_math, main, symbols_textord, "\u266E", "\\natural", true); +defineSymbol(symbols_math, main, symbols_textord, "\u2663", "\\clubsuit", true); +defineSymbol(symbols_math, main, symbols_textord, "\u2118", "\\wp", true); +defineSymbol(symbols_math, main, symbols_textord, "\u266F", "\\sharp", true); +defineSymbol(symbols_math, main, symbols_textord, "\u2662", "\\diamondsuit", true); +defineSymbol(symbols_math, main, symbols_textord, "\u211C", "\\Re", true); +defineSymbol(symbols_math, main, symbols_textord, "\u2661", "\\heartsuit", true); +defineSymbol(symbols_math, main, symbols_textord, "\u2111", "\\Im", true); +defineSymbol(symbols_math, main, symbols_textord, "\u2660", "\\spadesuit", true); +defineSymbol(symbols_text, main, symbols_textord, "\xA7", "\\S", true); +defineSymbol(symbols_text, main, symbols_textord, "\xB6", "\\P", true); // Math and Text + +defineSymbol(symbols_math, main, symbols_textord, "\u2020", "\\dag"); +defineSymbol(symbols_text, main, symbols_textord, "\u2020", "\\dag"); +defineSymbol(symbols_text, main, symbols_textord, "\u2020", "\\textdagger"); +defineSymbol(symbols_math, main, symbols_textord, "\u2021", "\\ddag"); +defineSymbol(symbols_text, main, symbols_textord, "\u2021", "\\ddag"); +defineSymbol(symbols_text, main, symbols_textord, "\u2021", "\\textdaggerdbl"); // Large Delimiters + +defineSymbol(symbols_math, main, symbols_close, "\u23B1", "\\rmoustache", true); +defineSymbol(symbols_math, main, symbols_open, "\u23B0", "\\lmoustache", true); +defineSymbol(symbols_math, main, symbols_close, "\u27EF", "\\rgroup", true); +defineSymbol(symbols_math, main, symbols_open, "\u27EE", "\\lgroup", true); // Binary Operators + +defineSymbol(symbols_math, main, bin, "\u2213", "\\mp", true); +defineSymbol(symbols_math, main, bin, "\u2296", "\\ominus", true); +defineSymbol(symbols_math, main, bin, "\u228E", "\\uplus", true); +defineSymbol(symbols_math, main, bin, "\u2293", "\\sqcap", true); +defineSymbol(symbols_math, main, bin, "\u2217", "\\ast"); +defineSymbol(symbols_math, main, bin, "\u2294", "\\sqcup", true); +defineSymbol(symbols_math, main, bin, "\u25EF", "\\bigcirc"); +defineSymbol(symbols_math, main, bin, "\u2219", "\\bullet"); +defineSymbol(symbols_math, main, bin, "\u2021", "\\ddagger"); +defineSymbol(symbols_math, main, bin, "\u2240", "\\wr", true); +defineSymbol(symbols_math, main, bin, "\u2A3F", "\\amalg"); +defineSymbol(symbols_math, main, bin, "&", "\\And"); // from amsmath +// Arrow Symbols + +defineSymbol(symbols_math, main, rel, "\u27F5", "\\longleftarrow", true); +defineSymbol(symbols_math, main, rel, "\u21D0", "\\Leftarrow", true); +defineSymbol(symbols_math, main, rel, "\u27F8", "\\Longleftarrow", true); +defineSymbol(symbols_math, main, rel, "\u27F6", "\\longrightarrow", true); +defineSymbol(symbols_math, main, rel, "\u21D2", "\\Rightarrow", true); +defineSymbol(symbols_math, main, rel, "\u27F9", "\\Longrightarrow", true); +defineSymbol(symbols_math, main, rel, "\u2194", "\\leftrightarrow", true); +defineSymbol(symbols_math, main, rel, "\u27F7", "\\longleftrightarrow", true); +defineSymbol(symbols_math, main, rel, "\u21D4", "\\Leftrightarrow", true); +defineSymbol(symbols_math, main, rel, "\u27FA", "\\Longleftrightarrow", true); +defineSymbol(symbols_math, main, rel, "\u21A6", "\\mapsto", true); +defineSymbol(symbols_math, main, rel, "\u27FC", "\\longmapsto", true); +defineSymbol(symbols_math, main, rel, "\u2197", "\\nearrow", true); +defineSymbol(symbols_math, main, rel, "\u21A9", "\\hookleftarrow", true); +defineSymbol(symbols_math, main, rel, "\u21AA", "\\hookrightarrow", true); +defineSymbol(symbols_math, main, rel, "\u2198", "\\searrow", true); +defineSymbol(symbols_math, main, rel, "\u21BC", "\\leftharpoonup", true); +defineSymbol(symbols_math, main, rel, "\u21C0", "\\rightharpoonup", true); +defineSymbol(symbols_math, main, rel, "\u2199", "\\swarrow", true); +defineSymbol(symbols_math, main, rel, "\u21BD", "\\leftharpoondown", true); +defineSymbol(symbols_math, main, rel, "\u21C1", "\\rightharpoondown", true); +defineSymbol(symbols_math, main, rel, "\u2196", "\\nwarrow", true); +defineSymbol(symbols_math, main, rel, "\u21CC", "\\rightleftharpoons", true); // AMS Negated Binary Relations + +defineSymbol(symbols_math, ams, rel, "\u226E", "\\nless", true); // Symbol names preceeded by "@" each have a corresponding macro. + +defineSymbol(symbols_math, ams, rel, "\uE010", "\\@nleqslant"); +defineSymbol(symbols_math, ams, rel, "\uE011", "\\@nleqq"); +defineSymbol(symbols_math, ams, rel, "\u2A87", "\\lneq", true); +defineSymbol(symbols_math, ams, rel, "\u2268", "\\lneqq", true); +defineSymbol(symbols_math, ams, rel, "\uE00C", "\\@lvertneqq"); +defineSymbol(symbols_math, ams, rel, "\u22E6", "\\lnsim", true); +defineSymbol(symbols_math, ams, rel, "\u2A89", "\\lnapprox", true); +defineSymbol(symbols_math, ams, rel, "\u2280", "\\nprec", true); // unicode-math maps \u22e0 to \npreccurlyeq. We'll use the AMS synonym. + +defineSymbol(symbols_math, ams, rel, "\u22E0", "\\npreceq", true); +defineSymbol(symbols_math, ams, rel, "\u22E8", "\\precnsim", true); +defineSymbol(symbols_math, ams, rel, "\u2AB9", "\\precnapprox", true); +defineSymbol(symbols_math, ams, rel, "\u2241", "\\nsim", true); +defineSymbol(symbols_math, ams, rel, "\uE006", "\\@nshortmid"); +defineSymbol(symbols_math, ams, rel, "\u2224", "\\nmid", true); +defineSymbol(symbols_math, ams, rel, "\u22AC", "\\nvdash", true); +defineSymbol(symbols_math, ams, rel, "\u22AD", "\\nvDash", true); +defineSymbol(symbols_math, ams, rel, "\u22EA", "\\ntriangleleft"); +defineSymbol(symbols_math, ams, rel, "\u22EC", "\\ntrianglelefteq", true); +defineSymbol(symbols_math, ams, rel, "\u228A", "\\subsetneq", true); +defineSymbol(symbols_math, ams, rel, "\uE01A", "\\@varsubsetneq"); +defineSymbol(symbols_math, ams, rel, "\u2ACB", "\\subsetneqq", true); +defineSymbol(symbols_math, ams, rel, "\uE017", "\\@varsubsetneqq"); +defineSymbol(symbols_math, ams, rel, "\u226F", "\\ngtr", true); +defineSymbol(symbols_math, ams, rel, "\uE00F", "\\@ngeqslant"); +defineSymbol(symbols_math, ams, rel, "\uE00E", "\\@ngeqq"); +defineSymbol(symbols_math, ams, rel, "\u2A88", "\\gneq", true); +defineSymbol(symbols_math, ams, rel, "\u2269", "\\gneqq", true); +defineSymbol(symbols_math, ams, rel, "\uE00D", "\\@gvertneqq"); +defineSymbol(symbols_math, ams, rel, "\u22E7", "\\gnsim", true); +defineSymbol(symbols_math, ams, rel, "\u2A8A", "\\gnapprox", true); +defineSymbol(symbols_math, ams, rel, "\u2281", "\\nsucc", true); // unicode-math maps \u22e1 to \nsucccurlyeq. We'll use the AMS synonym. + +defineSymbol(symbols_math, ams, rel, "\u22E1", "\\nsucceq", true); +defineSymbol(symbols_math, ams, rel, "\u22E9", "\\succnsim", true); +defineSymbol(symbols_math, ams, rel, "\u2ABA", "\\succnapprox", true); // unicode-math maps \u2246 to \simneqq. We'll use the AMS synonym. + +defineSymbol(symbols_math, ams, rel, "\u2246", "\\ncong", true); +defineSymbol(symbols_math, ams, rel, "\uE007", "\\@nshortparallel"); +defineSymbol(symbols_math, ams, rel, "\u2226", "\\nparallel", true); +defineSymbol(symbols_math, ams, rel, "\u22AF", "\\nVDash", true); +defineSymbol(symbols_math, ams, rel, "\u22EB", "\\ntriangleright"); +defineSymbol(symbols_math, ams, rel, "\u22ED", "\\ntrianglerighteq", true); +defineSymbol(symbols_math, ams, rel, "\uE018", "\\@nsupseteqq"); +defineSymbol(symbols_math, ams, rel, "\u228B", "\\supsetneq", true); +defineSymbol(symbols_math, ams, rel, "\uE01B", "\\@varsupsetneq"); +defineSymbol(symbols_math, ams, rel, "\u2ACC", "\\supsetneqq", true); +defineSymbol(symbols_math, ams, rel, "\uE019", "\\@varsupsetneqq"); +defineSymbol(symbols_math, ams, rel, "\u22AE", "\\nVdash", true); +defineSymbol(symbols_math, ams, rel, "\u2AB5", "\\precneqq", true); +defineSymbol(symbols_math, ams, rel, "\u2AB6", "\\succneqq", true); +defineSymbol(symbols_math, ams, rel, "\uE016", "\\@nsubseteqq"); +defineSymbol(symbols_math, ams, bin, "\u22B4", "\\unlhd"); +defineSymbol(symbols_math, ams, bin, "\u22B5", "\\unrhd"); // AMS Negated Arrows + +defineSymbol(symbols_math, ams, rel, "\u219A", "\\nleftarrow", true); +defineSymbol(symbols_math, ams, rel, "\u219B", "\\nrightarrow", true); +defineSymbol(symbols_math, ams, rel, "\u21CD", "\\nLeftarrow", true); +defineSymbol(symbols_math, ams, rel, "\u21CF", "\\nRightarrow", true); +defineSymbol(symbols_math, ams, rel, "\u21AE", "\\nleftrightarrow", true); +defineSymbol(symbols_math, ams, rel, "\u21CE", "\\nLeftrightarrow", true); // AMS Misc + +defineSymbol(symbols_math, ams, rel, "\u25B3", "\\vartriangle"); +defineSymbol(symbols_math, ams, symbols_textord, "\u210F", "\\hslash"); +defineSymbol(symbols_math, ams, symbols_textord, "\u25BD", "\\triangledown"); +defineSymbol(symbols_math, ams, symbols_textord, "\u25CA", "\\lozenge"); +defineSymbol(symbols_math, ams, symbols_textord, "\u24C8", "\\circledS"); +defineSymbol(symbols_math, ams, symbols_textord, "\xAE", "\\circledR"); +defineSymbol(symbols_text, ams, symbols_textord, "\xAE", "\\circledR"); +defineSymbol(symbols_math, ams, symbols_textord, "\u2221", "\\measuredangle", true); +defineSymbol(symbols_math, ams, symbols_textord, "\u2204", "\\nexists"); +defineSymbol(symbols_math, ams, symbols_textord, "\u2127", "\\mho"); +defineSymbol(symbols_math, ams, symbols_textord, "\u2132", "\\Finv", true); +defineSymbol(symbols_math, ams, symbols_textord, "\u2141", "\\Game", true); +defineSymbol(symbols_math, ams, symbols_textord, "\u2035", "\\backprime"); +defineSymbol(symbols_math, ams, symbols_textord, "\u25B2", "\\blacktriangle"); +defineSymbol(symbols_math, ams, symbols_textord, "\u25BC", "\\blacktriangledown"); +defineSymbol(symbols_math, ams, symbols_textord, "\u25A0", "\\blacksquare"); +defineSymbol(symbols_math, ams, symbols_textord, "\u29EB", "\\blacklozenge"); +defineSymbol(symbols_math, ams, symbols_textord, "\u2605", "\\bigstar"); +defineSymbol(symbols_math, ams, symbols_textord, "\u2222", "\\sphericalangle", true); +defineSymbol(symbols_math, ams, symbols_textord, "\u2201", "\\complement", true); // unicode-math maps U+F0 to \matheth. We map to AMS function \eth + +defineSymbol(symbols_math, ams, symbols_textord, "\xF0", "\\eth", true); +defineSymbol(symbols_text, main, symbols_textord, "\xF0", "\xF0"); +defineSymbol(symbols_math, ams, symbols_textord, "\u2571", "\\diagup"); +defineSymbol(symbols_math, ams, symbols_textord, "\u2572", "\\diagdown"); +defineSymbol(symbols_math, ams, symbols_textord, "\u25A1", "\\square"); +defineSymbol(symbols_math, ams, symbols_textord, "\u25A1", "\\Box"); +defineSymbol(symbols_math, ams, symbols_textord, "\u25CA", "\\Diamond"); // unicode-math maps U+A5 to \mathyen. We map to AMS function \yen + +defineSymbol(symbols_math, ams, symbols_textord, "\xA5", "\\yen", true); +defineSymbol(symbols_text, ams, symbols_textord, "\xA5", "\\yen", true); +defineSymbol(symbols_math, ams, symbols_textord, "\u2713", "\\checkmark", true); +defineSymbol(symbols_text, ams, symbols_textord, "\u2713", "\\checkmark"); // AMS Hebrew + +defineSymbol(symbols_math, ams, symbols_textord, "\u2136", "\\beth", true); +defineSymbol(symbols_math, ams, symbols_textord, "\u2138", "\\daleth", true); +defineSymbol(symbols_math, ams, symbols_textord, "\u2137", "\\gimel", true); // AMS Greek + +defineSymbol(symbols_math, ams, symbols_textord, "\u03DD", "\\digamma", true); +defineSymbol(symbols_math, ams, symbols_textord, "\u03F0", "\\varkappa"); // AMS Delimiters + +defineSymbol(symbols_math, ams, symbols_open, "\u250C", "\\@ulcorner", true); +defineSymbol(symbols_math, ams, symbols_close, "\u2510", "\\@urcorner", true); +defineSymbol(symbols_math, ams, symbols_open, "\u2514", "\\@llcorner", true); +defineSymbol(symbols_math, ams, symbols_close, "\u2518", "\\@lrcorner", true); // AMS Binary Relations + +defineSymbol(symbols_math, ams, rel, "\u2266", "\\leqq", true); +defineSymbol(symbols_math, ams, rel, "\u2A7D", "\\leqslant", true); +defineSymbol(symbols_math, ams, rel, "\u2A95", "\\eqslantless", true); +defineSymbol(symbols_math, ams, rel, "\u2272", "\\lesssim", true); +defineSymbol(symbols_math, ams, rel, "\u2A85", "\\lessapprox", true); +defineSymbol(symbols_math, ams, rel, "\u224A", "\\approxeq", true); +defineSymbol(symbols_math, ams, bin, "\u22D6", "\\lessdot"); +defineSymbol(symbols_math, ams, rel, "\u22D8", "\\lll", true); +defineSymbol(symbols_math, ams, rel, "\u2276", "\\lessgtr", true); +defineSymbol(symbols_math, ams, rel, "\u22DA", "\\lesseqgtr", true); +defineSymbol(symbols_math, ams, rel, "\u2A8B", "\\lesseqqgtr", true); +defineSymbol(symbols_math, ams, rel, "\u2251", "\\doteqdot"); +defineSymbol(symbols_math, ams, rel, "\u2253", "\\risingdotseq", true); +defineSymbol(symbols_math, ams, rel, "\u2252", "\\fallingdotseq", true); +defineSymbol(symbols_math, ams, rel, "\u223D", "\\backsim", true); +defineSymbol(symbols_math, ams, rel, "\u22CD", "\\backsimeq", true); +defineSymbol(symbols_math, ams, rel, "\u2AC5", "\\subseteqq", true); +defineSymbol(symbols_math, ams, rel, "\u22D0", "\\Subset", true); +defineSymbol(symbols_math, ams, rel, "\u228F", "\\sqsubset", true); +defineSymbol(symbols_math, ams, rel, "\u227C", "\\preccurlyeq", true); +defineSymbol(symbols_math, ams, rel, "\u22DE", "\\curlyeqprec", true); +defineSymbol(symbols_math, ams, rel, "\u227E", "\\precsim", true); +defineSymbol(symbols_math, ams, rel, "\u2AB7", "\\precapprox", true); +defineSymbol(symbols_math, ams, rel, "\u22B2", "\\vartriangleleft"); +defineSymbol(symbols_math, ams, rel, "\u22B4", "\\trianglelefteq"); +defineSymbol(symbols_math, ams, rel, "\u22A8", "\\vDash", true); +defineSymbol(symbols_math, ams, rel, "\u22AA", "\\Vvdash", true); +defineSymbol(symbols_math, ams, rel, "\u2323", "\\smallsmile"); +defineSymbol(symbols_math, ams, rel, "\u2322", "\\smallfrown"); +defineSymbol(symbols_math, ams, rel, "\u224F", "\\bumpeq", true); +defineSymbol(symbols_math, ams, rel, "\u224E", "\\Bumpeq", true); +defineSymbol(symbols_math, ams, rel, "\u2267", "\\geqq", true); +defineSymbol(symbols_math, ams, rel, "\u2A7E", "\\geqslant", true); +defineSymbol(symbols_math, ams, rel, "\u2A96", "\\eqslantgtr", true); +defineSymbol(symbols_math, ams, rel, "\u2273", "\\gtrsim", true); +defineSymbol(symbols_math, ams, rel, "\u2A86", "\\gtrapprox", true); +defineSymbol(symbols_math, ams, bin, "\u22D7", "\\gtrdot"); +defineSymbol(symbols_math, ams, rel, "\u22D9", "\\ggg", true); +defineSymbol(symbols_math, ams, rel, "\u2277", "\\gtrless", true); +defineSymbol(symbols_math, ams, rel, "\u22DB", "\\gtreqless", true); +defineSymbol(symbols_math, ams, rel, "\u2A8C", "\\gtreqqless", true); +defineSymbol(symbols_math, ams, rel, "\u2256", "\\eqcirc", true); +defineSymbol(symbols_math, ams, rel, "\u2257", "\\circeq", true); +defineSymbol(symbols_math, ams, rel, "\u225C", "\\triangleq", true); +defineSymbol(symbols_math, ams, rel, "\u223C", "\\thicksim"); +defineSymbol(symbols_math, ams, rel, "\u2248", "\\thickapprox"); +defineSymbol(symbols_math, ams, rel, "\u2AC6", "\\supseteqq", true); +defineSymbol(symbols_math, ams, rel, "\u22D1", "\\Supset", true); +defineSymbol(symbols_math, ams, rel, "\u2290", "\\sqsupset", true); +defineSymbol(symbols_math, ams, rel, "\u227D", "\\succcurlyeq", true); +defineSymbol(symbols_math, ams, rel, "\u22DF", "\\curlyeqsucc", true); +defineSymbol(symbols_math, ams, rel, "\u227F", "\\succsim", true); +defineSymbol(symbols_math, ams, rel, "\u2AB8", "\\succapprox", true); +defineSymbol(symbols_math, ams, rel, "\u22B3", "\\vartriangleright"); +defineSymbol(symbols_math, ams, rel, "\u22B5", "\\trianglerighteq"); +defineSymbol(symbols_math, ams, rel, "\u22A9", "\\Vdash", true); +defineSymbol(symbols_math, ams, rel, "\u2223", "\\shortmid"); +defineSymbol(symbols_math, ams, rel, "\u2225", "\\shortparallel"); +defineSymbol(symbols_math, ams, rel, "\u226C", "\\between", true); +defineSymbol(symbols_math, ams, rel, "\u22D4", "\\pitchfork", true); +defineSymbol(symbols_math, ams, rel, "\u221D", "\\varpropto"); +defineSymbol(symbols_math, ams, rel, "\u25C0", "\\blacktriangleleft"); // unicode-math says that \therefore is a mathord atom. +// We kept the amssymb atom type, which is rel. + +defineSymbol(symbols_math, ams, rel, "\u2234", "\\therefore", true); +defineSymbol(symbols_math, ams, rel, "\u220D", "\\backepsilon"); +defineSymbol(symbols_math, ams, rel, "\u25B6", "\\blacktriangleright"); // unicode-math says that \because is a mathord atom. +// We kept the amssymb atom type, which is rel. + +defineSymbol(symbols_math, ams, rel, "\u2235", "\\because", true); +defineSymbol(symbols_math, ams, rel, "\u22D8", "\\llless"); +defineSymbol(symbols_math, ams, rel, "\u22D9", "\\gggtr"); +defineSymbol(symbols_math, ams, bin, "\u22B2", "\\lhd"); +defineSymbol(symbols_math, ams, bin, "\u22B3", "\\rhd"); +defineSymbol(symbols_math, ams, rel, "\u2242", "\\eqsim", true); +defineSymbol(symbols_math, main, rel, "\u22C8", "\\Join"); +defineSymbol(symbols_math, ams, rel, "\u2251", "\\Doteq", true); // AMS Binary Operators + +defineSymbol(symbols_math, ams, bin, "\u2214", "\\dotplus", true); +defineSymbol(symbols_math, ams, bin, "\u2216", "\\smallsetminus"); +defineSymbol(symbols_math, ams, bin, "\u22D2", "\\Cap", true); +defineSymbol(symbols_math, ams, bin, "\u22D3", "\\Cup", true); +defineSymbol(symbols_math, ams, bin, "\u2A5E", "\\doublebarwedge", true); +defineSymbol(symbols_math, ams, bin, "\u229F", "\\boxminus", true); +defineSymbol(symbols_math, ams, bin, "\u229E", "\\boxplus", true); +defineSymbol(symbols_math, ams, bin, "\u22C7", "\\divideontimes", true); +defineSymbol(symbols_math, ams, bin, "\u22C9", "\\ltimes", true); +defineSymbol(symbols_math, ams, bin, "\u22CA", "\\rtimes", true); +defineSymbol(symbols_math, ams, bin, "\u22CB", "\\leftthreetimes", true); +defineSymbol(symbols_math, ams, bin, "\u22CC", "\\rightthreetimes", true); +defineSymbol(symbols_math, ams, bin, "\u22CF", "\\curlywedge", true); +defineSymbol(symbols_math, ams, bin, "\u22CE", "\\curlyvee", true); +defineSymbol(symbols_math, ams, bin, "\u229D", "\\circleddash", true); +defineSymbol(symbols_math, ams, bin, "\u229B", "\\circledast", true); +defineSymbol(symbols_math, ams, bin, "\u22C5", "\\centerdot"); +defineSymbol(symbols_math, ams, bin, "\u22BA", "\\intercal", true); +defineSymbol(symbols_math, ams, bin, "\u22D2", "\\doublecap"); +defineSymbol(symbols_math, ams, bin, "\u22D3", "\\doublecup"); +defineSymbol(symbols_math, ams, bin, "\u22A0", "\\boxtimes", true); // AMS Arrows +// Note: unicode-math maps \u21e2 to their own function \rightdasharrow. +// We'll map it to AMS function \dashrightarrow. It produces the same atom. + +defineSymbol(symbols_math, ams, rel, "\u21E2", "\\dashrightarrow", true); // unicode-math maps \u21e0 to \leftdasharrow. We'll use the AMS synonym. + +defineSymbol(symbols_math, ams, rel, "\u21E0", "\\dashleftarrow", true); +defineSymbol(symbols_math, ams, rel, "\u21C7", "\\leftleftarrows", true); +defineSymbol(symbols_math, ams, rel, "\u21C6", "\\leftrightarrows", true); +defineSymbol(symbols_math, ams, rel, "\u21DA", "\\Lleftarrow", true); +defineSymbol(symbols_math, ams, rel, "\u219E", "\\twoheadleftarrow", true); +defineSymbol(symbols_math, ams, rel, "\u21A2", "\\leftarrowtail", true); +defineSymbol(symbols_math, ams, rel, "\u21AB", "\\looparrowleft", true); +defineSymbol(symbols_math, ams, rel, "\u21CB", "\\leftrightharpoons", true); +defineSymbol(symbols_math, ams, rel, "\u21B6", "\\curvearrowleft", true); // unicode-math maps \u21ba to \acwopencirclearrow. We'll use the AMS synonym. + +defineSymbol(symbols_math, ams, rel, "\u21BA", "\\circlearrowleft", true); +defineSymbol(symbols_math, ams, rel, "\u21B0", "\\Lsh", true); +defineSymbol(symbols_math, ams, rel, "\u21C8", "\\upuparrows", true); +defineSymbol(symbols_math, ams, rel, "\u21BF", "\\upharpoonleft", true); +defineSymbol(symbols_math, ams, rel, "\u21C3", "\\downharpoonleft", true); +defineSymbol(symbols_math, ams, rel, "\u22B8", "\\multimap", true); +defineSymbol(symbols_math, ams, rel, "\u21AD", "\\leftrightsquigarrow", true); +defineSymbol(symbols_math, ams, rel, "\u21C9", "\\rightrightarrows", true); +defineSymbol(symbols_math, ams, rel, "\u21C4", "\\rightleftarrows", true); +defineSymbol(symbols_math, ams, rel, "\u21A0", "\\twoheadrightarrow", true); +defineSymbol(symbols_math, ams, rel, "\u21A3", "\\rightarrowtail", true); +defineSymbol(symbols_math, ams, rel, "\u21AC", "\\looparrowright", true); +defineSymbol(symbols_math, ams, rel, "\u21B7", "\\curvearrowright", true); // unicode-math maps \u21bb to \cwopencirclearrow. We'll use the AMS synonym. + +defineSymbol(symbols_math, ams, rel, "\u21BB", "\\circlearrowright", true); +defineSymbol(symbols_math, ams, rel, "\u21B1", "\\Rsh", true); +defineSymbol(symbols_math, ams, rel, "\u21CA", "\\downdownarrows", true); +defineSymbol(symbols_math, ams, rel, "\u21BE", "\\upharpoonright", true); +defineSymbol(symbols_math, ams, rel, "\u21C2", "\\downharpoonright", true); +defineSymbol(symbols_math, ams, rel, "\u21DD", "\\rightsquigarrow", true); +defineSymbol(symbols_math, ams, rel, "\u21DD", "\\leadsto"); +defineSymbol(symbols_math, ams, rel, "\u21DB", "\\Rrightarrow", true); +defineSymbol(symbols_math, ams, rel, "\u21BE", "\\restriction"); +defineSymbol(symbols_math, main, symbols_textord, "\u2018", "`"); +defineSymbol(symbols_math, main, symbols_textord, "$", "\\$"); +defineSymbol(symbols_text, main, symbols_textord, "$", "\\$"); +defineSymbol(symbols_text, main, symbols_textord, "$", "\\textdollar"); +defineSymbol(symbols_math, main, symbols_textord, "%", "\\%"); +defineSymbol(symbols_text, main, symbols_textord, "%", "\\%"); +defineSymbol(symbols_math, main, symbols_textord, "_", "\\_"); +defineSymbol(symbols_text, main, symbols_textord, "_", "\\_"); +defineSymbol(symbols_text, main, symbols_textord, "_", "\\textunderscore"); +defineSymbol(symbols_math, main, symbols_textord, "\u2220", "\\angle", true); +defineSymbol(symbols_math, main, symbols_textord, "\u221E", "\\infty", true); +defineSymbol(symbols_math, main, symbols_textord, "\u2032", "\\prime"); +defineSymbol(symbols_math, main, symbols_textord, "\u25B3", "\\triangle"); +defineSymbol(symbols_math, main, symbols_textord, "\u0393", "\\Gamma", true); +defineSymbol(symbols_math, main, symbols_textord, "\u0394", "\\Delta", true); +defineSymbol(symbols_math, main, symbols_textord, "\u0398", "\\Theta", true); +defineSymbol(symbols_math, main, symbols_textord, "\u039B", "\\Lambda", true); +defineSymbol(symbols_math, main, symbols_textord, "\u039E", "\\Xi", true); +defineSymbol(symbols_math, main, symbols_textord, "\u03A0", "\\Pi", true); +defineSymbol(symbols_math, main, symbols_textord, "\u03A3", "\\Sigma", true); +defineSymbol(symbols_math, main, symbols_textord, "\u03A5", "\\Upsilon", true); +defineSymbol(symbols_math, main, symbols_textord, "\u03A6", "\\Phi", true); +defineSymbol(symbols_math, main, symbols_textord, "\u03A8", "\\Psi", true); +defineSymbol(symbols_math, main, symbols_textord, "\u03A9", "\\Omega", true); +defineSymbol(symbols_math, main, symbols_textord, "A", "\u0391"); +defineSymbol(symbols_math, main, symbols_textord, "B", "\u0392"); +defineSymbol(symbols_math, main, symbols_textord, "E", "\u0395"); +defineSymbol(symbols_math, main, symbols_textord, "Z", "\u0396"); +defineSymbol(symbols_math, main, symbols_textord, "H", "\u0397"); +defineSymbol(symbols_math, main, symbols_textord, "I", "\u0399"); +defineSymbol(symbols_math, main, symbols_textord, "K", "\u039A"); +defineSymbol(symbols_math, main, symbols_textord, "M", "\u039C"); +defineSymbol(symbols_math, main, symbols_textord, "N", "\u039D"); +defineSymbol(symbols_math, main, symbols_textord, "O", "\u039F"); +defineSymbol(symbols_math, main, symbols_textord, "P", "\u03A1"); +defineSymbol(symbols_math, main, symbols_textord, "T", "\u03A4"); +defineSymbol(symbols_math, main, symbols_textord, "X", "\u03A7"); +defineSymbol(symbols_math, main, symbols_textord, "\xAC", "\\neg", true); +defineSymbol(symbols_math, main, symbols_textord, "\xAC", "\\lnot"); +defineSymbol(symbols_math, main, symbols_textord, "\u22A4", "\\top"); +defineSymbol(symbols_math, main, symbols_textord, "\u22A5", "\\bot"); +defineSymbol(symbols_math, main, symbols_textord, "\u2205", "\\emptyset"); +defineSymbol(symbols_math, ams, symbols_textord, "\u2205", "\\varnothing"); +defineSymbol(symbols_math, main, mathord, "\u03B1", "\\alpha", true); +defineSymbol(symbols_math, main, mathord, "\u03B2", "\\beta", true); +defineSymbol(symbols_math, main, mathord, "\u03B3", "\\gamma", true); +defineSymbol(symbols_math, main, mathord, "\u03B4", "\\delta", true); +defineSymbol(symbols_math, main, mathord, "\u03F5", "\\epsilon", true); +defineSymbol(symbols_math, main, mathord, "\u03B6", "\\zeta", true); +defineSymbol(symbols_math, main, mathord, "\u03B7", "\\eta", true); +defineSymbol(symbols_math, main, mathord, "\u03B8", "\\theta", true); +defineSymbol(symbols_math, main, mathord, "\u03B9", "\\iota", true); +defineSymbol(symbols_math, main, mathord, "\u03BA", "\\kappa", true); +defineSymbol(symbols_math, main, mathord, "\u03BB", "\\lambda", true); +defineSymbol(symbols_math, main, mathord, "\u03BC", "\\mu", true); +defineSymbol(symbols_math, main, mathord, "\u03BD", "\\nu", true); +defineSymbol(symbols_math, main, mathord, "\u03BE", "\\xi", true); +defineSymbol(symbols_math, main, mathord, "\u03BF", "\\omicron", true); +defineSymbol(symbols_math, main, mathord, "\u03C0", "\\pi", true); +defineSymbol(symbols_math, main, mathord, "\u03C1", "\\rho", true); +defineSymbol(symbols_math, main, mathord, "\u03C3", "\\sigma", true); +defineSymbol(symbols_math, main, mathord, "\u03C4", "\\tau", true); +defineSymbol(symbols_math, main, mathord, "\u03C5", "\\upsilon", true); +defineSymbol(symbols_math, main, mathord, "\u03D5", "\\phi", true); +defineSymbol(symbols_math, main, mathord, "\u03C7", "\\chi", true); +defineSymbol(symbols_math, main, mathord, "\u03C8", "\\psi", true); +defineSymbol(symbols_math, main, mathord, "\u03C9", "\\omega", true); +defineSymbol(symbols_math, main, mathord, "\u03B5", "\\varepsilon", true); +defineSymbol(symbols_math, main, mathord, "\u03D1", "\\vartheta", true); +defineSymbol(symbols_math, main, mathord, "\u03D6", "\\varpi", true); +defineSymbol(symbols_math, main, mathord, "\u03F1", "\\varrho", true); +defineSymbol(symbols_math, main, mathord, "\u03C2", "\\varsigma", true); +defineSymbol(symbols_math, main, mathord, "\u03C6", "\\varphi", true); +defineSymbol(symbols_math, main, bin, "\u2217", "*"); +defineSymbol(symbols_math, main, bin, "+", "+"); +defineSymbol(symbols_math, main, bin, "\u2212", "-"); +defineSymbol(symbols_math, main, bin, "\u22C5", "\\cdot", true); +defineSymbol(symbols_math, main, bin, "\u2218", "\\circ"); +defineSymbol(symbols_math, main, bin, "\xF7", "\\div", true); +defineSymbol(symbols_math, main, bin, "\xB1", "\\pm", true); +defineSymbol(symbols_math, main, bin, "\xD7", "\\times", true); +defineSymbol(symbols_math, main, bin, "\u2229", "\\cap", true); +defineSymbol(symbols_math, main, bin, "\u222A", "\\cup", true); +defineSymbol(symbols_math, main, bin, "\u2216", "\\setminus"); +defineSymbol(symbols_math, main, bin, "\u2227", "\\land"); +defineSymbol(symbols_math, main, bin, "\u2228", "\\lor"); +defineSymbol(symbols_math, main, bin, "\u2227", "\\wedge", true); +defineSymbol(symbols_math, main, bin, "\u2228", "\\vee", true); +defineSymbol(symbols_math, main, symbols_textord, "\u221A", "\\surd"); +defineSymbol(symbols_math, main, symbols_open, "\u27E8", "\\langle", true); +defineSymbol(symbols_math, main, symbols_open, "\u2223", "\\lvert"); +defineSymbol(symbols_math, main, symbols_open, "\u2225", "\\lVert"); +defineSymbol(symbols_math, main, symbols_close, "?", "?"); +defineSymbol(symbols_math, main, symbols_close, "!", "!"); +defineSymbol(symbols_math, main, symbols_close, "\u27E9", "\\rangle", true); +defineSymbol(symbols_math, main, symbols_close, "\u2223", "\\rvert"); +defineSymbol(symbols_math, main, symbols_close, "\u2225", "\\rVert"); +defineSymbol(symbols_math, main, rel, "=", "="); +defineSymbol(symbols_math, main, rel, ":", ":"); +defineSymbol(symbols_math, main, rel, "\u2248", "\\approx", true); +defineSymbol(symbols_math, main, rel, "\u2245", "\\cong", true); +defineSymbol(symbols_math, main, rel, "\u2265", "\\ge"); +defineSymbol(symbols_math, main, rel, "\u2265", "\\geq", true); +defineSymbol(symbols_math, main, rel, "\u2190", "\\gets"); +defineSymbol(symbols_math, main, rel, ">", "\\gt", true); +defineSymbol(symbols_math, main, rel, "\u2208", "\\in", true); +defineSymbol(symbols_math, main, rel, "\uE020", "\\@not"); +defineSymbol(symbols_math, main, rel, "\u2282", "\\subset", true); +defineSymbol(symbols_math, main, rel, "\u2283", "\\supset", true); +defineSymbol(symbols_math, main, rel, "\u2286", "\\subseteq", true); +defineSymbol(symbols_math, main, rel, "\u2287", "\\supseteq", true); +defineSymbol(symbols_math, ams, rel, "\u2288", "\\nsubseteq", true); +defineSymbol(symbols_math, ams, rel, "\u2289", "\\nsupseteq", true); +defineSymbol(symbols_math, main, rel, "\u22A8", "\\models"); +defineSymbol(symbols_math, main, rel, "\u2190", "\\leftarrow", true); +defineSymbol(symbols_math, main, rel, "\u2264", "\\le"); +defineSymbol(symbols_math, main, rel, "\u2264", "\\leq", true); +defineSymbol(symbols_math, main, rel, "<", "\\lt", true); +defineSymbol(symbols_math, main, rel, "\u2192", "\\rightarrow", true); +defineSymbol(symbols_math, main, rel, "\u2192", "\\to"); +defineSymbol(symbols_math, ams, rel, "\u2271", "\\ngeq", true); +defineSymbol(symbols_math, ams, rel, "\u2270", "\\nleq", true); +defineSymbol(symbols_math, main, symbols_spacing, "\xA0", "\\ "); +defineSymbol(symbols_math, main, symbols_spacing, "\xA0", "~"); +defineSymbol(symbols_math, main, symbols_spacing, "\xA0", "\\space"); // Ref: LaTeX Source 2e: \DeclareRobustCommand{\nobreakspace}{% + +defineSymbol(symbols_math, main, symbols_spacing, "\xA0", "\\nobreakspace"); +defineSymbol(symbols_text, main, symbols_spacing, "\xA0", "\\ "); +defineSymbol(symbols_text, main, symbols_spacing, "\xA0", " "); +defineSymbol(symbols_text, main, symbols_spacing, "\xA0", "~"); +defineSymbol(symbols_text, main, symbols_spacing, "\xA0", "\\space"); +defineSymbol(symbols_text, main, symbols_spacing, "\xA0", "\\nobreakspace"); +defineSymbol(symbols_math, main, symbols_spacing, null, "\\nobreak"); +defineSymbol(symbols_math, main, symbols_spacing, null, "\\allowbreak"); +defineSymbol(symbols_math, main, punct, ",", ","); +defineSymbol(symbols_math, main, punct, ";", ";"); +defineSymbol(symbols_math, ams, bin, "\u22BC", "\\barwedge", true); +defineSymbol(symbols_math, ams, bin, "\u22BB", "\\veebar", true); +defineSymbol(symbols_math, main, bin, "\u2299", "\\odot", true); +defineSymbol(symbols_math, main, bin, "\u2295", "\\oplus", true); +defineSymbol(symbols_math, main, bin, "\u2297", "\\otimes", true); +defineSymbol(symbols_math, main, symbols_textord, "\u2202", "\\partial", true); +defineSymbol(symbols_math, main, bin, "\u2298", "\\oslash", true); +defineSymbol(symbols_math, ams, bin, "\u229A", "\\circledcirc", true); +defineSymbol(symbols_math, ams, bin, "\u22A1", "\\boxdot", true); +defineSymbol(symbols_math, main, bin, "\u25B3", "\\bigtriangleup"); +defineSymbol(symbols_math, main, bin, "\u25BD", "\\bigtriangledown"); +defineSymbol(symbols_math, main, bin, "\u2020", "\\dagger"); +defineSymbol(symbols_math, main, bin, "\u22C4", "\\diamond"); +defineSymbol(symbols_math, main, bin, "\u22C6", "\\star"); +defineSymbol(symbols_math, main, bin, "\u25C3", "\\triangleleft"); +defineSymbol(symbols_math, main, bin, "\u25B9", "\\triangleright"); +defineSymbol(symbols_math, main, symbols_open, "{", "\\{"); +defineSymbol(symbols_text, main, symbols_textord, "{", "\\{"); +defineSymbol(symbols_text, main, symbols_textord, "{", "\\textbraceleft"); +defineSymbol(symbols_math, main, symbols_close, "}", "\\}"); +defineSymbol(symbols_text, main, symbols_textord, "}", "\\}"); +defineSymbol(symbols_text, main, symbols_textord, "}", "\\textbraceright"); +defineSymbol(symbols_math, main, symbols_open, "{", "\\lbrace"); +defineSymbol(symbols_math, main, symbols_close, "}", "\\rbrace"); +defineSymbol(symbols_math, main, symbols_open, "[", "\\lbrack", true); +defineSymbol(symbols_text, main, symbols_textord, "[", "\\lbrack", true); +defineSymbol(symbols_math, main, symbols_close, "]", "\\rbrack", true); +defineSymbol(symbols_text, main, symbols_textord, "]", "\\rbrack", true); +defineSymbol(symbols_math, main, symbols_open, "(", "\\lparen", true); +defineSymbol(symbols_math, main, symbols_close, ")", "\\rparen", true); +defineSymbol(symbols_text, main, symbols_textord, "<", "\\textless", true); // in T1 fontenc + +defineSymbol(symbols_text, main, symbols_textord, ">", "\\textgreater", true); // in T1 fontenc + +defineSymbol(symbols_math, main, symbols_open, "\u230A", "\\lfloor", true); +defineSymbol(symbols_math, main, symbols_close, "\u230B", "\\rfloor", true); +defineSymbol(symbols_math, main, symbols_open, "\u2308", "\\lceil", true); +defineSymbol(symbols_math, main, symbols_close, "\u2309", "\\rceil", true); +defineSymbol(symbols_math, main, symbols_textord, "\\", "\\backslash"); +defineSymbol(symbols_math, main, symbols_textord, "\u2223", "|"); +defineSymbol(symbols_math, main, symbols_textord, "\u2223", "\\vert"); +defineSymbol(symbols_text, main, symbols_textord, "|", "\\textbar", true); // in T1 fontenc + +defineSymbol(symbols_math, main, symbols_textord, "\u2225", "\\|"); +defineSymbol(symbols_math, main, symbols_textord, "\u2225", "\\Vert"); +defineSymbol(symbols_text, main, symbols_textord, "\u2225", "\\textbardbl"); +defineSymbol(symbols_text, main, symbols_textord, "~", "\\textasciitilde"); +defineSymbol(symbols_text, main, symbols_textord, "\\", "\\textbackslash"); +defineSymbol(symbols_text, main, symbols_textord, "^", "\\textasciicircum"); +defineSymbol(symbols_math, main, rel, "\u2191", "\\uparrow", true); +defineSymbol(symbols_math, main, rel, "\u21D1", "\\Uparrow", true); +defineSymbol(symbols_math, main, rel, "\u2193", "\\downarrow", true); +defineSymbol(symbols_math, main, rel, "\u21D3", "\\Downarrow", true); +defineSymbol(symbols_math, main, rel, "\u2195", "\\updownarrow", true); +defineSymbol(symbols_math, main, rel, "\u21D5", "\\Updownarrow", true); +defineSymbol(symbols_math, main, op, "\u2210", "\\coprod"); +defineSymbol(symbols_math, main, op, "\u22C1", "\\bigvee"); +defineSymbol(symbols_math, main, op, "\u22C0", "\\bigwedge"); +defineSymbol(symbols_math, main, op, "\u2A04", "\\biguplus"); +defineSymbol(symbols_math, main, op, "\u22C2", "\\bigcap"); +defineSymbol(symbols_math, main, op, "\u22C3", "\\bigcup"); +defineSymbol(symbols_math, main, op, "\u222B", "\\int"); +defineSymbol(symbols_math, main, op, "\u222B", "\\intop"); +defineSymbol(symbols_math, main, op, "\u222C", "\\iint"); +defineSymbol(symbols_math, main, op, "\u222D", "\\iiint"); +defineSymbol(symbols_math, main, op, "\u220F", "\\prod"); +defineSymbol(symbols_math, main, op, "\u2211", "\\sum"); +defineSymbol(symbols_math, main, op, "\u2A02", "\\bigotimes"); +defineSymbol(symbols_math, main, op, "\u2A01", "\\bigoplus"); +defineSymbol(symbols_math, main, op, "\u2A00", "\\bigodot"); +defineSymbol(symbols_math, main, op, "\u222E", "\\oint"); +defineSymbol(symbols_math, main, op, "\u2A06", "\\bigsqcup"); +defineSymbol(symbols_math, main, op, "\u222B", "\\smallint"); +defineSymbol(symbols_text, main, symbols_inner, "\u2026", "\\textellipsis"); +defineSymbol(symbols_math, main, symbols_inner, "\u2026", "\\mathellipsis"); +defineSymbol(symbols_text, main, symbols_inner, "\u2026", "\\ldots", true); +defineSymbol(symbols_math, main, symbols_inner, "\u2026", "\\ldots", true); +defineSymbol(symbols_math, main, symbols_inner, "\u22EF", "\\@cdots", true); +defineSymbol(symbols_math, main, symbols_inner, "\u22F1", "\\ddots", true); +defineSymbol(symbols_math, main, symbols_textord, "\u22EE", "\\varvdots"); // \vdots is a macro + +defineSymbol(symbols_math, main, symbols_accent, "\u02CA", "\\acute"); +defineSymbol(symbols_math, main, symbols_accent, "\u02CB", "\\grave"); +defineSymbol(symbols_math, main, symbols_accent, "\xA8", "\\ddot"); +defineSymbol(symbols_math, main, symbols_accent, "~", "\\tilde"); +defineSymbol(symbols_math, main, symbols_accent, "\u02C9", "\\bar"); +defineSymbol(symbols_math, main, symbols_accent, "\u02D8", "\\breve"); +defineSymbol(symbols_math, main, symbols_accent, "\u02C7", "\\check"); +defineSymbol(symbols_math, main, symbols_accent, "^", "\\hat"); +defineSymbol(symbols_math, main, symbols_accent, "\u20D7", "\\vec"); +defineSymbol(symbols_math, main, symbols_accent, "\u02D9", "\\dot"); +defineSymbol(symbols_math, main, symbols_accent, "\u02DA", "\\mathring"); // \imath and \jmath should be invariant to \mathrm, \mathbf, etc., so use PUA + +defineSymbol(symbols_math, main, mathord, "\uE131", "\\@imath"); +defineSymbol(symbols_math, main, mathord, "\uE237", "\\@jmath"); +defineSymbol(symbols_math, main, symbols_textord, "\u0131", "\u0131"); +defineSymbol(symbols_math, main, symbols_textord, "\u0237", "\u0237"); +defineSymbol(symbols_text, main, symbols_textord, "\u0131", "\\i", true); +defineSymbol(symbols_text, main, symbols_textord, "\u0237", "\\j", true); +defineSymbol(symbols_text, main, symbols_textord, "\xDF", "\\ss", true); +defineSymbol(symbols_text, main, symbols_textord, "\xE6", "\\ae", true); +defineSymbol(symbols_text, main, symbols_textord, "\u0153", "\\oe", true); +defineSymbol(symbols_text, main, symbols_textord, "\xF8", "\\o", true); +defineSymbol(symbols_text, main, symbols_textord, "\xC6", "\\AE", true); +defineSymbol(symbols_text, main, symbols_textord, "\u0152", "\\OE", true); +defineSymbol(symbols_text, main, symbols_textord, "\xD8", "\\O", true); +defineSymbol(symbols_text, main, symbols_accent, "\u02CA", "\\'"); // acute + +defineSymbol(symbols_text, main, symbols_accent, "\u02CB", "\\`"); // grave + +defineSymbol(symbols_text, main, symbols_accent, "\u02C6", "\\^"); // circumflex + +defineSymbol(symbols_text, main, symbols_accent, "\u02DC", "\\~"); // tilde + +defineSymbol(symbols_text, main, symbols_accent, "\u02C9", "\\="); // macron + +defineSymbol(symbols_text, main, symbols_accent, "\u02D8", "\\u"); // breve + +defineSymbol(symbols_text, main, symbols_accent, "\u02D9", "\\."); // dot above + +defineSymbol(symbols_text, main, symbols_accent, "\u02DA", "\\r"); // ring above + +defineSymbol(symbols_text, main, symbols_accent, "\u02C7", "\\v"); // caron + +defineSymbol(symbols_text, main, symbols_accent, "\xA8", '\\"'); // diaresis + +defineSymbol(symbols_text, main, symbols_accent, "\u02DD", "\\H"); // double acute + +defineSymbol(symbols_text, main, symbols_accent, "\u25EF", "\\textcircled"); // \bigcirc glyph +// These ligatures are detected and created in Parser.js's `formLigatures`. + +var ligatures = { + "--": true, + "---": true, + "``": true, + "''": true +}; +defineSymbol(symbols_text, main, symbols_textord, "\u2013", "--", true); +defineSymbol(symbols_text, main, symbols_textord, "\u2013", "\\textendash"); +defineSymbol(symbols_text, main, symbols_textord, "\u2014", "---", true); +defineSymbol(symbols_text, main, symbols_textord, "\u2014", "\\textemdash"); +defineSymbol(symbols_text, main, symbols_textord, "\u2018", "`", true); +defineSymbol(symbols_text, main, symbols_textord, "\u2018", "\\textquoteleft"); +defineSymbol(symbols_text, main, symbols_textord, "\u2019", "'", true); +defineSymbol(symbols_text, main, symbols_textord, "\u2019", "\\textquoteright"); +defineSymbol(symbols_text, main, symbols_textord, "\u201C", "``", true); +defineSymbol(symbols_text, main, symbols_textord, "\u201C", "\\textquotedblleft"); +defineSymbol(symbols_text, main, symbols_textord, "\u201D", "''", true); +defineSymbol(symbols_text, main, symbols_textord, "\u201D", "\\textquotedblright"); // \degree from gensymb package + +defineSymbol(symbols_math, main, symbols_textord, "\xB0", "\\degree", true); +defineSymbol(symbols_text, main, symbols_textord, "\xB0", "\\degree"); // \textdegree from inputenc package + +defineSymbol(symbols_text, main, symbols_textord, "\xB0", "\\textdegree", true); // TODO: In LaTeX, \pounds can generate a different character in text and math +// mode, but among our fonts, only Main-Regular defines this character "163". + +defineSymbol(symbols_math, main, symbols_textord, "\xA3", "\\pounds"); +defineSymbol(symbols_math, main, symbols_textord, "\xA3", "\\mathsterling", true); +defineSymbol(symbols_text, main, symbols_textord, "\xA3", "\\pounds"); +defineSymbol(symbols_text, main, symbols_textord, "\xA3", "\\textsterling", true); +defineSymbol(symbols_math, ams, symbols_textord, "\u2720", "\\maltese"); +defineSymbol(symbols_text, ams, symbols_textord, "\u2720", "\\maltese"); // There are lots of symbols which are the same, so we add them in afterwards. +// All of these are textords in math mode + +var mathTextSymbols = "0123456789/@.\""; + +for (var symbols_i = 0; symbols_i < mathTextSymbols.length; symbols_i++) { + var symbols_ch = mathTextSymbols.charAt(symbols_i); + defineSymbol(symbols_math, main, symbols_textord, symbols_ch, symbols_ch); +} // All of these are textords in text mode + + +var textSymbols = "0123456789!@*()-=+\";:?/.,"; + +for (var src_symbols_i = 0; src_symbols_i < textSymbols.length; src_symbols_i++) { + var _ch = textSymbols.charAt(src_symbols_i); + + defineSymbol(symbols_text, main, symbols_textord, _ch, _ch); +} // All of these are textords in text mode, and mathords in math mode + + +var letters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; + +for (var symbols_i2 = 0; symbols_i2 < letters.length; symbols_i2++) { + var _ch2 = letters.charAt(symbols_i2); + + defineSymbol(symbols_math, main, mathord, _ch2, _ch2); + defineSymbol(symbols_text, main, symbols_textord, _ch2, _ch2); +} // Blackboard bold and script letters in Unicode range + + +defineSymbol(symbols_math, ams, symbols_textord, "C", "\u2102"); // blackboard bold + +defineSymbol(symbols_text, ams, symbols_textord, "C", "\u2102"); +defineSymbol(symbols_math, ams, symbols_textord, "H", "\u210D"); +defineSymbol(symbols_text, ams, symbols_textord, "H", "\u210D"); +defineSymbol(symbols_math, ams, symbols_textord, "N", "\u2115"); +defineSymbol(symbols_text, ams, symbols_textord, "N", "\u2115"); +defineSymbol(symbols_math, ams, symbols_textord, "P", "\u2119"); +defineSymbol(symbols_text, ams, symbols_textord, "P", "\u2119"); +defineSymbol(symbols_math, ams, symbols_textord, "Q", "\u211A"); +defineSymbol(symbols_text, ams, symbols_textord, "Q", "\u211A"); +defineSymbol(symbols_math, ams, symbols_textord, "R", "\u211D"); +defineSymbol(symbols_text, ams, symbols_textord, "R", "\u211D"); +defineSymbol(symbols_math, ams, symbols_textord, "Z", "\u2124"); +defineSymbol(symbols_text, ams, symbols_textord, "Z", "\u2124"); +defineSymbol(symbols_math, main, mathord, "h", "\u210E"); // italic h, Planck constant + +defineSymbol(symbols_text, main, mathord, "h", "\u210E"); // The next loop loads wide (surrogate pair) characters. +// We support some letters in the Unicode range U+1D400 to U+1D7FF, +// Mathematical Alphanumeric Symbols. +// Some editors do not deal well with wide characters. So don't write the +// string into this file. Instead, create the string from the surrogate pair. + +var symbols_wideChar = ""; + +for (var symbols_i3 = 0; symbols_i3 < letters.length; symbols_i3++) { + var _ch3 = letters.charAt(symbols_i3); // The hex numbers in the next line are a surrogate pair. + // 0xD835 is the high surrogate for all letters in the range we support. + // 0xDC00 is the low surrogate for bold A. + + + symbols_wideChar = String.fromCharCode(0xD835, 0xDC00 + symbols_i3); // A-Z a-z bold + + defineSymbol(symbols_math, main, mathord, _ch3, symbols_wideChar); + defineSymbol(symbols_text, main, symbols_textord, _ch3, symbols_wideChar); + symbols_wideChar = String.fromCharCode(0xD835, 0xDC34 + symbols_i3); // A-Z a-z italic + + defineSymbol(symbols_math, main, mathord, _ch3, symbols_wideChar); + defineSymbol(symbols_text, main, symbols_textord, _ch3, symbols_wideChar); + symbols_wideChar = String.fromCharCode(0xD835, 0xDC68 + symbols_i3); // A-Z a-z bold italic + + defineSymbol(symbols_math, main, mathord, _ch3, symbols_wideChar); + defineSymbol(symbols_text, main, symbols_textord, _ch3, symbols_wideChar); + symbols_wideChar = String.fromCharCode(0xD835, 0xDD04 + symbols_i3); // A-Z a-z Fractur + + defineSymbol(symbols_math, main, mathord, _ch3, symbols_wideChar); + defineSymbol(symbols_text, main, symbols_textord, _ch3, symbols_wideChar); + symbols_wideChar = String.fromCharCode(0xD835, 0xDDA0 + symbols_i3); // A-Z a-z sans-serif + + defineSymbol(symbols_math, main, mathord, _ch3, symbols_wideChar); + defineSymbol(symbols_text, main, symbols_textord, _ch3, symbols_wideChar); + symbols_wideChar = String.fromCharCode(0xD835, 0xDDD4 + symbols_i3); // A-Z a-z sans bold + + defineSymbol(symbols_math, main, mathord, _ch3, symbols_wideChar); + defineSymbol(symbols_text, main, symbols_textord, _ch3, symbols_wideChar); + symbols_wideChar = String.fromCharCode(0xD835, 0xDE08 + symbols_i3); // A-Z a-z sans italic + + defineSymbol(symbols_math, main, mathord, _ch3, symbols_wideChar); + defineSymbol(symbols_text, main, symbols_textord, _ch3, symbols_wideChar); + symbols_wideChar = String.fromCharCode(0xD835, 0xDE70 + symbols_i3); // A-Z a-z monospace + + defineSymbol(symbols_math, main, mathord, _ch3, symbols_wideChar); + defineSymbol(symbols_text, main, symbols_textord, _ch3, symbols_wideChar); + + if (symbols_i3 < 26) { + // KaTeX fonts have only capital letters for blackboard bold and script. + // See exception for k below. + symbols_wideChar = String.fromCharCode(0xD835, 0xDD38 + symbols_i3); // A-Z double struck + + defineSymbol(symbols_math, main, mathord, _ch3, symbols_wideChar); + defineSymbol(symbols_text, main, symbols_textord, _ch3, symbols_wideChar); + symbols_wideChar = String.fromCharCode(0xD835, 0xDC9C + symbols_i3); // A-Z script + + defineSymbol(symbols_math, main, mathord, _ch3, symbols_wideChar); + defineSymbol(symbols_text, main, symbols_textord, _ch3, symbols_wideChar); + } // TODO: Add bold script when it is supported by a KaTeX font. + +} // "k" is the only double struck lower case letter in the KaTeX fonts. + + +symbols_wideChar = String.fromCharCode(0xD835, 0xDD5C); // k double struck + +defineSymbol(symbols_math, main, mathord, "k", symbols_wideChar); +defineSymbol(symbols_text, main, symbols_textord, "k", symbols_wideChar); // Next, some wide character numerals + +for (var symbols_i4 = 0; symbols_i4 < 10; symbols_i4++) { + var _ch4 = symbols_i4.toString(); + + symbols_wideChar = String.fromCharCode(0xD835, 0xDFCE + symbols_i4); // 0-9 bold + + defineSymbol(symbols_math, main, mathord, _ch4, symbols_wideChar); + defineSymbol(symbols_text, main, symbols_textord, _ch4, symbols_wideChar); + symbols_wideChar = String.fromCharCode(0xD835, 0xDFE2 + symbols_i4); // 0-9 sans serif + + defineSymbol(symbols_math, main, mathord, _ch4, symbols_wideChar); + defineSymbol(symbols_text, main, symbols_textord, _ch4, symbols_wideChar); + symbols_wideChar = String.fromCharCode(0xD835, 0xDFEC + symbols_i4); // 0-9 bold sans + + defineSymbol(symbols_math, main, mathord, _ch4, symbols_wideChar); + defineSymbol(symbols_text, main, symbols_textord, _ch4, symbols_wideChar); + symbols_wideChar = String.fromCharCode(0xD835, 0xDFF6 + symbols_i4); // 0-9 monospace + + defineSymbol(symbols_math, main, mathord, _ch4, symbols_wideChar); + defineSymbol(symbols_text, main, symbols_textord, _ch4, symbols_wideChar); +} // We add these Latin-1 letters as symbols for backwards-compatibility, +// but they are not actually in the font, nor are they supported by the +// Unicode accent mechanism, so they fall back to Times font and look ugly. +// TODO(edemaine): Fix this. + + +var extraLatin = "\xC7\xD0\xDE\xE7\xFE"; + +for (var _i5 = 0; _i5 < extraLatin.length; _i5++) { + var _ch5 = extraLatin.charAt(_i5); + + defineSymbol(symbols_math, main, mathord, _ch5, _ch5); + defineSymbol(symbols_text, main, symbols_textord, _ch5, _ch5); +} +// CONCATENATED MODULE: ./src/wide-character.js +/** + * This file provides support for Unicode range U+1D400 to U+1D7FF, + * Mathematical Alphanumeric Symbols. + * + * Function wideCharacterFont takes a wide character as input and returns + * the font information necessary to render it properly. + */ + +/** + * Data below is from https://www.unicode.org/charts/PDF/U1D400.pdf + * That document sorts characters into groups by font type, say bold or italic. + * + * In the arrays below, each subarray consists three elements: + * * The CSS class of that group when in math mode. + * * The CSS class of that group when in text mode. + * * The font name, so that KaTeX can get font metrics. + */ + +var wideLatinLetterData = [["mathbf", "textbf", "Main-Bold"], // A-Z bold upright +["mathbf", "textbf", "Main-Bold"], // a-z bold upright +["mathnormal", "textit", "Math-Italic"], // A-Z italic +["mathnormal", "textit", "Math-Italic"], // a-z italic +["boldsymbol", "boldsymbol", "Main-BoldItalic"], // A-Z bold italic +["boldsymbol", "boldsymbol", "Main-BoldItalic"], // a-z bold italic +// Map fancy A-Z letters to script, not calligraphic. +// This aligns with unicode-math and math fonts (except Cambria Math). +["mathscr", "textscr", "Script-Regular"], // A-Z script +["", "", ""], // a-z script. No font +["", "", ""], // A-Z bold script. No font +["", "", ""], // a-z bold script. No font +["mathfrak", "textfrak", "Fraktur-Regular"], // A-Z Fraktur +["mathfrak", "textfrak", "Fraktur-Regular"], // a-z Fraktur +["mathbb", "textbb", "AMS-Regular"], // A-Z double-struck +["mathbb", "textbb", "AMS-Regular"], // k double-struck +["", "", ""], // A-Z bold Fraktur No font metrics +["", "", ""], // a-z bold Fraktur. No font. +["mathsf", "textsf", "SansSerif-Regular"], // A-Z sans-serif +["mathsf", "textsf", "SansSerif-Regular"], // a-z sans-serif +["mathboldsf", "textboldsf", "SansSerif-Bold"], // A-Z bold sans-serif +["mathboldsf", "textboldsf", "SansSerif-Bold"], // a-z bold sans-serif +["mathitsf", "textitsf", "SansSerif-Italic"], // A-Z italic sans-serif +["mathitsf", "textitsf", "SansSerif-Italic"], // a-z italic sans-serif +["", "", ""], // A-Z bold italic sans. No font +["", "", ""], // a-z bold italic sans. No font +["mathtt", "texttt", "Typewriter-Regular"], // A-Z monospace +["mathtt", "texttt", "Typewriter-Regular"]]; +var wideNumeralData = [["mathbf", "textbf", "Main-Bold"], // 0-9 bold +["", "", ""], // 0-9 double-struck. No KaTeX font. +["mathsf", "textsf", "SansSerif-Regular"], // 0-9 sans-serif +["mathboldsf", "textboldsf", "SansSerif-Bold"], // 0-9 bold sans-serif +["mathtt", "texttt", "Typewriter-Regular"]]; +var wide_character_wideCharacterFont = function wideCharacterFont(wideChar, mode) { + // IE doesn't support codePointAt(). So work with the surrogate pair. + var H = wideChar.charCodeAt(0); // high surrogate + + var L = wideChar.charCodeAt(1); // low surrogate + + var codePoint = (H - 0xD800) * 0x400 + (L - 0xDC00) + 0x10000; + var j = mode === "math" ? 0 : 1; // column index for CSS class. + + if (0x1D400 <= codePoint && codePoint < 0x1D6A4) { + // wideLatinLetterData contains exactly 26 chars on each row. + // So we can calculate the relevant row. No traverse necessary. + var i = Math.floor((codePoint - 0x1D400) / 26); + return [wideLatinLetterData[i][2], wideLatinLetterData[i][j]]; + } else if (0x1D7CE <= codePoint && codePoint <= 0x1D7FF) { + // Numerals, ten per row. + var _i = Math.floor((codePoint - 0x1D7CE) / 10); + + return [wideNumeralData[_i][2], wideNumeralData[_i][j]]; + } else if (codePoint === 0x1D6A5 || codePoint === 0x1D6A6) { + // dotless i or j + return [wideLatinLetterData[0][2], wideLatinLetterData[0][j]]; + } else if (0x1D6A6 < codePoint && codePoint < 0x1D7CE) { + // Greek letters. Not supported, yet. + return ["", ""]; + } else { + // We don't support any wide characters outside 1D400–1D7FF. + throw new src_ParseError("Unsupported character: " + wideChar); + } +}; +// CONCATENATED MODULE: ./src/Options.js +/** + * This file contains information about the options that the Parser carries + * around with it while parsing. Data is held in an `Options` object, and when + * recursing, a new `Options` object can be created with the `.with*` and + * `.reset` functions. + */ + +var sizeStyleMap = [// Each element contains [textsize, scriptsize, scriptscriptsize]. +// The size mappings are taken from TeX with \normalsize=10pt. +[1, 1, 1], // size1: [5, 5, 5] \tiny +[2, 1, 1], // size2: [6, 5, 5] +[3, 1, 1], // size3: [7, 5, 5] \scriptsize +[4, 2, 1], // size4: [8, 6, 5] \footnotesize +[5, 2, 1], // size5: [9, 6, 5] \small +[6, 3, 1], // size6: [10, 7, 5] \normalsize +[7, 4, 2], // size7: [12, 8, 6] \large +[8, 6, 3], // size8: [14.4, 10, 7] \Large +[9, 7, 6], // size9: [17.28, 12, 10] \LARGE +[10, 8, 7], // size10: [20.74, 14.4, 12] \huge +[11, 10, 9]]; +var sizeMultipliers = [// fontMetrics.js:getGlobalMetrics also uses size indexes, so if +// you change size indexes, change that function. +0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 1.2, 1.44, 1.728, 2.074, 2.488]; + +var sizeAtStyle = function sizeAtStyle(size, style) { + return style.size < 2 ? size : sizeStyleMap[size - 1][style.size - 1]; +}; // In these types, "" (empty string) means "no change". + + +/** + * This is the main options class. It contains the current style, size, color, + * and font. + * + * Options objects should not be modified. To create a new Options with + * different properties, call a `.having*` method. + */ +var Options_Options = +/*#__PURE__*/ +function () { + // A font family applies to a group of fonts (i.e. SansSerif), while a font + // represents a specific font (i.e. SansSerif Bold). + // See: https://tex.stackexchange.com/questions/22350/difference-between-textrm-and-mathrm + + /** + * The base size index. + */ + function Options(data) { + this.style = void 0; + this.color = void 0; + this.size = void 0; + this.textSize = void 0; + this.phantom = void 0; + this.font = void 0; + this.fontFamily = void 0; + this.fontWeight = void 0; + this.fontShape = void 0; + this.sizeMultiplier = void 0; + this.maxSize = void 0; + this.minRuleThickness = void 0; + this._fontMetrics = void 0; + this.style = data.style; + this.color = data.color; + this.size = data.size || Options.BASESIZE; + this.textSize = data.textSize || this.size; + this.phantom = !!data.phantom; + this.font = data.font || ""; + this.fontFamily = data.fontFamily || ""; + this.fontWeight = data.fontWeight || ''; + this.fontShape = data.fontShape || ''; + this.sizeMultiplier = sizeMultipliers[this.size - 1]; + this.maxSize = data.maxSize; + this.minRuleThickness = data.minRuleThickness; + this._fontMetrics = undefined; + } + /** + * Returns a new options object with the same properties as "this". Properties + * from "extension" will be copied to the new options object. + */ + + + var _proto = Options.prototype; + + _proto.extend = function extend(extension) { + var data = { + style: this.style, + size: this.size, + textSize: this.textSize, + color: this.color, + phantom: this.phantom, + font: this.font, + fontFamily: this.fontFamily, + fontWeight: this.fontWeight, + fontShape: this.fontShape, + maxSize: this.maxSize, + minRuleThickness: this.minRuleThickness + }; + + for (var key in extension) { + if (extension.hasOwnProperty(key)) { + data[key] = extension[key]; + } + } + + return new Options(data); + } + /** + * Return an options object with the given style. If `this.style === style`, + * returns `this`. + */ + ; + + _proto.havingStyle = function havingStyle(style) { + if (this.style === style) { + return this; + } else { + return this.extend({ + style: style, + size: sizeAtStyle(this.textSize, style) + }); + } + } + /** + * Return an options object with a cramped version of the current style. If + * the current style is cramped, returns `this`. + */ + ; + + _proto.havingCrampedStyle = function havingCrampedStyle() { + return this.havingStyle(this.style.cramp()); + } + /** + * Return an options object with the given size and in at least `\textstyle`. + * Returns `this` if appropriate. + */ + ; + + _proto.havingSize = function havingSize(size) { + if (this.size === size && this.textSize === size) { + return this; + } else { + return this.extend({ + style: this.style.text(), + size: size, + textSize: size, + sizeMultiplier: sizeMultipliers[size - 1] + }); + } + } + /** + * Like `this.havingSize(BASESIZE).havingStyle(style)`. If `style` is omitted, + * changes to at least `\textstyle`. + */ + ; + + _proto.havingBaseStyle = function havingBaseStyle(style) { + style = style || this.style.text(); + var wantSize = sizeAtStyle(Options.BASESIZE, style); + + if (this.size === wantSize && this.textSize === Options.BASESIZE && this.style === style) { + return this; + } else { + return this.extend({ + style: style, + size: wantSize + }); + } + } + /** + * Remove the effect of sizing changes such as \Huge. + * Keep the effect of the current style, such as \scriptstyle. + */ + ; + + _proto.havingBaseSizing = function havingBaseSizing() { + var size; + + switch (this.style.id) { + case 4: + case 5: + size = 3; // normalsize in scriptstyle + + break; + + case 6: + case 7: + size = 1; // normalsize in scriptscriptstyle + + break; + + default: + size = 6; + // normalsize in textstyle or displaystyle + } + + return this.extend({ + style: this.style.text(), + size: size + }); + } + /** + * Create a new options object with the given color. + */ + ; + + _proto.withColor = function withColor(color) { + return this.extend({ + color: color + }); + } + /** + * Create a new options object with "phantom" set to true. + */ + ; + + _proto.withPhantom = function withPhantom() { + return this.extend({ + phantom: true + }); + } + /** + * Creates a new options object with the given math font or old text font. + * @type {[type]} + */ + ; + + _proto.withFont = function withFont(font) { + return this.extend({ + font: font + }); + } + /** + * Create a new options objects with the given fontFamily. + */ + ; + + _proto.withTextFontFamily = function withTextFontFamily(fontFamily) { + return this.extend({ + fontFamily: fontFamily, + font: "" + }); + } + /** + * Creates a new options object with the given font weight + */ + ; + + _proto.withTextFontWeight = function withTextFontWeight(fontWeight) { + return this.extend({ + fontWeight: fontWeight, + font: "" + }); + } + /** + * Creates a new options object with the given font weight + */ + ; + + _proto.withTextFontShape = function withTextFontShape(fontShape) { + return this.extend({ + fontShape: fontShape, + font: "" + }); + } + /** + * Return the CSS sizing classes required to switch from enclosing options + * `oldOptions` to `this`. Returns an array of classes. + */ + ; + + _proto.sizingClasses = function sizingClasses(oldOptions) { + if (oldOptions.size !== this.size) { + return ["sizing", "reset-size" + oldOptions.size, "size" + this.size]; + } else { + return []; + } + } + /** + * Return the CSS sizing classes required to switch to the base size. Like + * `this.havingSize(BASESIZE).sizingClasses(this)`. + */ + ; + + _proto.baseSizingClasses = function baseSizingClasses() { + if (this.size !== Options.BASESIZE) { + return ["sizing", "reset-size" + this.size, "size" + Options.BASESIZE]; + } else { + return []; + } + } + /** + * Return the font metrics for this size. + */ + ; + + _proto.fontMetrics = function fontMetrics() { + if (!this._fontMetrics) { + this._fontMetrics = getGlobalMetrics(this.size); + } + + return this._fontMetrics; + } + /** + * Gets the CSS color of the current options object + */ + ; + + _proto.getColor = function getColor() { + if (this.phantom) { + return "transparent"; + } else { + return this.color; + } + }; + + return Options; +}(); + +Options_Options.BASESIZE = 6; +/* harmony default export */ var src_Options = (Options_Options); +// CONCATENATED MODULE: ./src/units.js +/** + * This file does conversion between units. In particular, it provides + * calculateSize to convert other units into ems. + */ + + // This table gives the number of TeX pts in one of each *absolute* TeX unit. +// Thus, multiplying a length by this number converts the length from units +// into pts. Dividing the result by ptPerEm gives the number of ems +// *assuming* a font size of ptPerEm (normal size, normal style). + +var ptPerUnit = { + // https://en.wikibooks.org/wiki/LaTeX/Lengths and + // https://tex.stackexchange.com/a/8263 + "pt": 1, + // TeX point + "mm": 7227 / 2540, + // millimeter + "cm": 7227 / 254, + // centimeter + "in": 72.27, + // inch + "bp": 803 / 800, + // big (PostScript) points + "pc": 12, + // pica + "dd": 1238 / 1157, + // didot + "cc": 14856 / 1157, + // cicero (12 didot) + "nd": 685 / 642, + // new didot + "nc": 1370 / 107, + // new cicero (12 new didot) + "sp": 1 / 65536, + // scaled point (TeX's internal smallest unit) + // https://tex.stackexchange.com/a/41371 + "px": 803 / 800 // \pdfpxdimen defaults to 1 bp in pdfTeX and LuaTeX + +}; // Dictionary of relative units, for fast validity testing. + +var relativeUnit = { + "ex": true, + "em": true, + "mu": true +}; + +/** + * Determine whether the specified unit (either a string defining the unit + * or a "size" parse node containing a unit field) is valid. + */ +var validUnit = function validUnit(unit) { + if (typeof unit !== "string") { + unit = unit.unit; + } + + return unit in ptPerUnit || unit in relativeUnit || unit === "ex"; +}; +/* + * Convert a "size" parse node (with numeric "number" and string "unit" fields, + * as parsed by functions.js argType "size") into a CSS em value for the + * current style/scale. `options` gives the current options. + */ + +var units_calculateSize = function calculateSize(sizeValue, options) { + var scale; + + if (sizeValue.unit in ptPerUnit) { + // Absolute units + scale = ptPerUnit[sizeValue.unit] // Convert unit to pt + / options.fontMetrics().ptPerEm // Convert pt to CSS em + / options.sizeMultiplier; // Unscale to make absolute units + } else if (sizeValue.unit === "mu") { + // `mu` units scale with scriptstyle/scriptscriptstyle. + scale = options.fontMetrics().cssEmPerMu; + } else { + // Other relative units always refer to the *textstyle* font + // in the current size. + var unitOptions; + + if (options.style.isTight()) { + // isTight() means current style is script/scriptscript. + unitOptions = options.havingStyle(options.style.text()); + } else { + unitOptions = options; + } // TODO: In TeX these units are relative to the quad of the current + // *text* font, e.g. cmr10. KaTeX instead uses values from the + // comparably-sized *Computer Modern symbol* font. At 10pt, these + // match. At 7pt and 5pt, they differ: cmr7=1.138894, cmsy7=1.170641; + // cmr5=1.361133, cmsy5=1.472241. Consider $\scriptsize a\kern1emb$. + // TeX \showlists shows a kern of 1.13889 * fontsize; + // KaTeX shows a kern of 1.171 * fontsize. + + + if (sizeValue.unit === "ex") { + scale = unitOptions.fontMetrics().xHeight; + } else if (sizeValue.unit === "em") { + scale = unitOptions.fontMetrics().quad; + } else { + throw new src_ParseError("Invalid unit: '" + sizeValue.unit + "'"); + } + + if (unitOptions !== options) { + scale *= unitOptions.sizeMultiplier / options.sizeMultiplier; + } + } + + return Math.min(sizeValue.number * scale, options.maxSize); +}; +// CONCATENATED MODULE: ./src/buildCommon.js +/* eslint no-console:0 */ + +/** + * This module contains general functions that can be used for building + * different kinds of domTree nodes in a consistent manner. + */ + + + + + + + +/** + * Looks up the given symbol in fontMetrics, after applying any symbol + * replacements defined in symbol.js + */ +var buildCommon_lookupSymbol = function lookupSymbol(value, // TODO(#963): Use a union type for this. +fontName, mode) { + // Replace the value with its replaced value from symbol.js + if (src_symbols[mode][value] && src_symbols[mode][value].replace) { + value = src_symbols[mode][value].replace; + } + + return { + value: value, + metrics: getCharacterMetrics(value, fontName, mode) + }; +}; +/** + * Makes a symbolNode after translation via the list of symbols in symbols.js. + * Correctly pulls out metrics for the character, and optionally takes a list of + * classes to be attached to the node. + * + * TODO: make argument order closer to makeSpan + * TODO: add a separate argument for math class (e.g. `mop`, `mbin`), which + * should if present come first in `classes`. + * TODO(#953): Make `options` mandatory and always pass it in. + */ + + +var buildCommon_makeSymbol = function makeSymbol(value, fontName, mode, options, classes) { + var lookup = buildCommon_lookupSymbol(value, fontName, mode); + var metrics = lookup.metrics; + value = lookup.value; + var symbolNode; + + if (metrics) { + var italic = metrics.italic; + + if (mode === "text" || options && options.font === "mathit") { + italic = 0; + } + + symbolNode = new domTree_SymbolNode(value, metrics.height, metrics.depth, italic, metrics.skew, metrics.width, classes); + } else { + // TODO(emily): Figure out a good way to only print this in development + typeof console !== "undefined" && console.warn("No character metrics " + ("for '" + value + "' in style '" + fontName + "' and mode '" + mode + "'")); + symbolNode = new domTree_SymbolNode(value, 0, 0, 0, 0, 0, classes); + } + + if (options) { + symbolNode.maxFontSize = options.sizeMultiplier; + + if (options.style.isTight()) { + symbolNode.classes.push("mtight"); + } + + var color = options.getColor(); + + if (color) { + symbolNode.style.color = color; + } + } + + return symbolNode; +}; +/** + * Makes a symbol in Main-Regular or AMS-Regular. + * Used for rel, bin, open, close, inner, and punct. + */ + + +var buildCommon_mathsym = function mathsym(value, mode, options, classes) { + if (classes === void 0) { + classes = []; + } + + // Decide what font to render the symbol in by its entry in the symbols + // table. + // Have a special case for when the value = \ because the \ is used as a + // textord in unsupported command errors but cannot be parsed as a regular + // text ordinal and is therefore not present as a symbol in the symbols + // table for text, as well as a special case for boldsymbol because it + // can be used for bold + and - + if (options.font === "boldsymbol" && buildCommon_lookupSymbol(value, "Main-Bold", mode).metrics) { + return buildCommon_makeSymbol(value, "Main-Bold", mode, options, classes.concat(["mathbf"])); + } else if (value === "\\" || src_symbols[mode][value].font === "main") { + return buildCommon_makeSymbol(value, "Main-Regular", mode, options, classes); + } else { + return buildCommon_makeSymbol(value, "AMS-Regular", mode, options, classes.concat(["amsrm"])); + } +}; +/** + * Determines which of the two font names (Main-Bold and Math-BoldItalic) and + * corresponding style tags (mathbf or boldsymbol) to use for font "boldsymbol", + * depending on the symbol. Use this function instead of fontMap for font + * "boldsymbol". + */ + + +var boldsymbol = function boldsymbol(value, mode, options, classes, type) { + if (type !== "textord" && buildCommon_lookupSymbol(value, "Math-BoldItalic", mode).metrics) { + return { + fontName: "Math-BoldItalic", + fontClass: "boldsymbol" + }; + } else { + // Some glyphs do not exist in Math-BoldItalic so we need to use + // Main-Bold instead. + return { + fontName: "Main-Bold", + fontClass: "mathbf" + }; + } +}; +/** + * Makes either a mathord or textord in the correct font and color. + */ + + +var buildCommon_makeOrd = function makeOrd(group, options, type) { + var mode = group.mode; + var text = group.text; + var classes = ["mord"]; // Math mode or Old font (i.e. \rm) + + var isFont = mode === "math" || mode === "text" && options.font; + var fontOrFamily = isFont ? options.font : options.fontFamily; + + if (text.charCodeAt(0) === 0xD835) { + // surrogate pairs get special treatment + var _wideCharacterFont = wide_character_wideCharacterFont(text, mode), + wideFontName = _wideCharacterFont[0], + wideFontClass = _wideCharacterFont[1]; + + return buildCommon_makeSymbol(text, wideFontName, mode, options, classes.concat(wideFontClass)); + } else if (fontOrFamily) { + var fontName; + var fontClasses; + + if (fontOrFamily === "boldsymbol") { + var fontData = boldsymbol(text, mode, options, classes, type); + fontName = fontData.fontName; + fontClasses = [fontData.fontClass]; + } else if (isFont) { + fontName = fontMap[fontOrFamily].fontName; + fontClasses = [fontOrFamily]; + } else { + fontName = retrieveTextFontName(fontOrFamily, options.fontWeight, options.fontShape); + fontClasses = [fontOrFamily, options.fontWeight, options.fontShape]; + } + + if (buildCommon_lookupSymbol(text, fontName, mode).metrics) { + return buildCommon_makeSymbol(text, fontName, mode, options, classes.concat(fontClasses)); + } else if (ligatures.hasOwnProperty(text) && fontName.substr(0, 10) === "Typewriter") { + // Deconstruct ligatures in monospace fonts (\texttt, \tt). + var parts = []; + + for (var i = 0; i < text.length; i++) { + parts.push(buildCommon_makeSymbol(text[i], fontName, mode, options, classes.concat(fontClasses))); + } + + return buildCommon_makeFragment(parts); + } + } // Makes a symbol in the default font for mathords and textords. + + + if (type === "mathord") { + return buildCommon_makeSymbol(text, "Math-Italic", mode, options, classes.concat(["mathnormal"])); + } else if (type === "textord") { + var font = src_symbols[mode][text] && src_symbols[mode][text].font; + + if (font === "ams") { + var _fontName = retrieveTextFontName("amsrm", options.fontWeight, options.fontShape); + + return buildCommon_makeSymbol(text, _fontName, mode, options, classes.concat("amsrm", options.fontWeight, options.fontShape)); + } else if (font === "main" || !font) { + var _fontName2 = retrieveTextFontName("textrm", options.fontWeight, options.fontShape); + + return buildCommon_makeSymbol(text, _fontName2, mode, options, classes.concat(options.fontWeight, options.fontShape)); + } else { + // fonts added by plugins + var _fontName3 = retrieveTextFontName(font, options.fontWeight, options.fontShape); // We add font name as a css class + + + return buildCommon_makeSymbol(text, _fontName3, mode, options, classes.concat(_fontName3, options.fontWeight, options.fontShape)); + } + } else { + throw new Error("unexpected type: " + type + " in makeOrd"); + } +}; +/** + * Returns true if subsequent symbolNodes have the same classes, skew, maxFont, + * and styles. + */ + + +var buildCommon_canCombine = function canCombine(prev, next) { + if (createClass(prev.classes) !== createClass(next.classes) || prev.skew !== next.skew || prev.maxFontSize !== next.maxFontSize) { + return false; + } + + for (var style in prev.style) { + if (prev.style.hasOwnProperty(style) && prev.style[style] !== next.style[style]) { + return false; + } + } + + for (var _style in next.style) { + if (next.style.hasOwnProperty(_style) && prev.style[_style] !== next.style[_style]) { + return false; + } + } + + return true; +}; +/** + * Combine consequetive domTree.symbolNodes into a single symbolNode. + * Note: this function mutates the argument. + */ + + +var buildCommon_tryCombineChars = function tryCombineChars(chars) { + for (var i = 0; i < chars.length - 1; i++) { + var prev = chars[i]; + var next = chars[i + 1]; + + if (prev instanceof domTree_SymbolNode && next instanceof domTree_SymbolNode && buildCommon_canCombine(prev, next)) { + prev.text += next.text; + prev.height = Math.max(prev.height, next.height); + prev.depth = Math.max(prev.depth, next.depth); // Use the last character's italic correction since we use + // it to add padding to the right of the span created from + // the combined characters. + + prev.italic = next.italic; + chars.splice(i + 1, 1); + i--; + } + } + + return chars; +}; +/** + * Calculate the height, depth, and maxFontSize of an element based on its + * children. + */ + + +var sizeElementFromChildren = function sizeElementFromChildren(elem) { + var height = 0; + var depth = 0; + var maxFontSize = 0; + + for (var i = 0; i < elem.children.length; i++) { + var child = elem.children[i]; + + if (child.height > height) { + height = child.height; + } + + if (child.depth > depth) { + depth = child.depth; + } + + if (child.maxFontSize > maxFontSize) { + maxFontSize = child.maxFontSize; + } + } + + elem.height = height; + elem.depth = depth; + elem.maxFontSize = maxFontSize; +}; +/** + * Makes a span with the given list of classes, list of children, and options. + * + * TODO(#953): Ensure that `options` is always provided (currently some call + * sites don't pass it) and make the type below mandatory. + * TODO: add a separate argument for math class (e.g. `mop`, `mbin`), which + * should if present come first in `classes`. + */ + + +var buildCommon_makeSpan = function makeSpan(classes, children, options, style) { + var span = new domTree_Span(classes, children, options, style); + sizeElementFromChildren(span); + return span; +}; // SVG one is simpler -- doesn't require height, depth, max-font setting. +// This is also a separate method for typesafety. + + +var buildCommon_makeSvgSpan = function makeSvgSpan(classes, children, options, style) { + return new domTree_Span(classes, children, options, style); +}; + +var makeLineSpan = function makeLineSpan(className, options, thickness) { + var line = buildCommon_makeSpan([className], [], options); + line.height = Math.max(thickness || options.fontMetrics().defaultRuleThickness, options.minRuleThickness); + line.style.borderBottomWidth = line.height + "em"; + line.maxFontSize = 1.0; + return line; +}; +/** + * Makes an anchor with the given href, list of classes, list of children, + * and options. + */ + + +var buildCommon_makeAnchor = function makeAnchor(href, classes, children, options) { + var anchor = new domTree_Anchor(href, classes, children, options); + sizeElementFromChildren(anchor); + return anchor; +}; +/** + * Makes a document fragment with the given list of children. + */ + + +var buildCommon_makeFragment = function makeFragment(children) { + var fragment = new tree_DocumentFragment(children); + sizeElementFromChildren(fragment); + return fragment; +}; +/** + * Wraps group in a span if it's a document fragment, allowing to apply classes + * and styles + */ + + +var buildCommon_wrapFragment = function wrapFragment(group, options) { + if (group instanceof tree_DocumentFragment) { + return buildCommon_makeSpan([], [group], options); + } + + return group; +}; // These are exact object types to catch typos in the names of the optional fields. + + +// Computes the updated `children` list and the overall depth. +// +// This helper function for makeVList makes it easier to enforce type safety by +// allowing early exits (returns) in the logic. +var getVListChildrenAndDepth = function getVListChildrenAndDepth(params) { + if (params.positionType === "individualShift") { + var oldChildren = params.children; + var children = [oldChildren[0]]; // Add in kerns to the list of params.children to get each element to be + // shifted to the correct specified shift + + var _depth = -oldChildren[0].shift - oldChildren[0].elem.depth; + + var currPos = _depth; + + for (var i = 1; i < oldChildren.length; i++) { + var diff = -oldChildren[i].shift - currPos - oldChildren[i].elem.depth; + var size = diff - (oldChildren[i - 1].elem.height + oldChildren[i - 1].elem.depth); + currPos = currPos + diff; + children.push({ + type: "kern", + size: size + }); + children.push(oldChildren[i]); + } + + return { + children: children, + depth: _depth + }; + } + + var depth; + + if (params.positionType === "top") { + // We always start at the bottom, so calculate the bottom by adding up + // all the sizes + var bottom = params.positionData; + + for (var _i = 0; _i < params.children.length; _i++) { + var child = params.children[_i]; + bottom -= child.type === "kern" ? child.size : child.elem.height + child.elem.depth; + } + + depth = bottom; + } else if (params.positionType === "bottom") { + depth = -params.positionData; + } else { + var firstChild = params.children[0]; + + if (firstChild.type !== "elem") { + throw new Error('First child must have type "elem".'); + } + + if (params.positionType === "shift") { + depth = -firstChild.elem.depth - params.positionData; + } else if (params.positionType === "firstBaseline") { + depth = -firstChild.elem.depth; + } else { + throw new Error("Invalid positionType " + params.positionType + "."); + } + } + + return { + children: params.children, + depth: depth + }; +}; +/** + * Makes a vertical list by stacking elements and kerns on top of each other. + * Allows for many different ways of specifying the positioning method. + * + * See VListParam documentation above. + */ + + +var buildCommon_makeVList = function makeVList(params, options) { + var _getVListChildrenAndD = getVListChildrenAndDepth(params), + children = _getVListChildrenAndD.children, + depth = _getVListChildrenAndD.depth; // Create a strut that is taller than any list item. The strut is added to + // each item, where it will determine the item's baseline. Since it has + // `overflow:hidden`, the strut's top edge will sit on the item's line box's + // top edge and the strut's bottom edge will sit on the item's baseline, + // with no additional line-height spacing. This allows the item baseline to + // be positioned precisely without worrying about font ascent and + // line-height. + + + var pstrutSize = 0; + + for (var i = 0; i < children.length; i++) { + var child = children[i]; + + if (child.type === "elem") { + var elem = child.elem; + pstrutSize = Math.max(pstrutSize, elem.maxFontSize, elem.height); + } + } + + pstrutSize += 2; + var pstrut = buildCommon_makeSpan(["pstrut"], []); + pstrut.style.height = pstrutSize + "em"; // Create a new list of actual children at the correct offsets + + var realChildren = []; + var minPos = depth; + var maxPos = depth; + var currPos = depth; + + for (var _i2 = 0; _i2 < children.length; _i2++) { + var _child = children[_i2]; + + if (_child.type === "kern") { + currPos += _child.size; + } else { + var _elem = _child.elem; + var classes = _child.wrapperClasses || []; + var style = _child.wrapperStyle || {}; + var childWrap = buildCommon_makeSpan(classes, [pstrut, _elem], undefined, style); + childWrap.style.top = -pstrutSize - currPos - _elem.depth + "em"; + + if (_child.marginLeft) { + childWrap.style.marginLeft = _child.marginLeft; + } + + if (_child.marginRight) { + childWrap.style.marginRight = _child.marginRight; + } + + realChildren.push(childWrap); + currPos += _elem.height + _elem.depth; + } + + minPos = Math.min(minPos, currPos); + maxPos = Math.max(maxPos, currPos); + } // The vlist contents go in a table-cell with `vertical-align:bottom`. + // This cell's bottom edge will determine the containing table's baseline + // without overly expanding the containing line-box. + + + var vlist = buildCommon_makeSpan(["vlist"], realChildren); + vlist.style.height = maxPos + "em"; // A second row is used if necessary to represent the vlist's depth. + + var rows; + + if (minPos < 0) { + // We will define depth in an empty span with display: table-cell. + // It should render with the height that we define. But Chrome, in + // contenteditable mode only, treats that span as if it contains some + // text content. And that min-height over-rides our desired height. + // So we put another empty span inside the depth strut span. + var emptySpan = buildCommon_makeSpan([], []); + var depthStrut = buildCommon_makeSpan(["vlist"], [emptySpan]); + depthStrut.style.height = -minPos + "em"; // Safari wants the first row to have inline content; otherwise it + // puts the bottom of the *second* row on the baseline. + + var topStrut = buildCommon_makeSpan(["vlist-s"], [new domTree_SymbolNode("\u200B")]); + rows = [buildCommon_makeSpan(["vlist-r"], [vlist, topStrut]), buildCommon_makeSpan(["vlist-r"], [depthStrut])]; + } else { + rows = [buildCommon_makeSpan(["vlist-r"], [vlist])]; + } + + var vtable = buildCommon_makeSpan(["vlist-t"], rows); + + if (rows.length === 2) { + vtable.classes.push("vlist-t2"); + } + + vtable.height = maxPos; + vtable.depth = -minPos; + return vtable; +}; // Glue is a concept from TeX which is a flexible space between elements in +// either a vertical or horizontal list. In KaTeX, at least for now, it's +// static space between elements in a horizontal layout. + + +var buildCommon_makeGlue = function makeGlue(measurement, options) { + // Make an empty span for the space + var rule = buildCommon_makeSpan(["mspace"], [], options); + var size = units_calculateSize(measurement, options); + rule.style.marginRight = size + "em"; + return rule; +}; // Takes font options, and returns the appropriate fontLookup name + + +var retrieveTextFontName = function retrieveTextFontName(fontFamily, fontWeight, fontShape) { + var baseFontName = ""; + + switch (fontFamily) { + case "amsrm": + baseFontName = "AMS"; + break; + + case "textrm": + baseFontName = "Main"; + break; + + case "textsf": + baseFontName = "SansSerif"; + break; + + case "texttt": + baseFontName = "Typewriter"; + break; + + default: + baseFontName = fontFamily; + // use fonts added by a plugin + } + + var fontStylesName; + + if (fontWeight === "textbf" && fontShape === "textit") { + fontStylesName = "BoldItalic"; + } else if (fontWeight === "textbf") { + fontStylesName = "Bold"; + } else if (fontWeight === "textit") { + fontStylesName = "Italic"; + } else { + fontStylesName = "Regular"; + } + + return baseFontName + "-" + fontStylesName; +}; +/** + * Maps TeX font commands to objects containing: + * - variant: string used for "mathvariant" attribute in buildMathML.js + * - fontName: the "style" parameter to fontMetrics.getCharacterMetrics + */ +// A map between tex font commands an MathML mathvariant attribute values + + +var fontMap = { + // styles + "mathbf": { + variant: "bold", + fontName: "Main-Bold" + }, + "mathrm": { + variant: "normal", + fontName: "Main-Regular" + }, + "textit": { + variant: "italic", + fontName: "Main-Italic" + }, + "mathit": { + variant: "italic", + fontName: "Main-Italic" + }, + "mathnormal": { + variant: "italic", + fontName: "Math-Italic" + }, + // "boldsymbol" is missing because they require the use of multiple fonts: + // Math-BoldItalic and Main-Bold. This is handled by a special case in + // makeOrd which ends up calling boldsymbol. + // families + "mathbb": { + variant: "double-struck", + fontName: "AMS-Regular" + }, + "mathcal": { + variant: "script", + fontName: "Caligraphic-Regular" + }, + "mathfrak": { + variant: "fraktur", + fontName: "Fraktur-Regular" + }, + "mathscr": { + variant: "script", + fontName: "Script-Regular" + }, + "mathsf": { + variant: "sans-serif", + fontName: "SansSerif-Regular" + }, + "mathtt": { + variant: "monospace", + fontName: "Typewriter-Regular" + } +}; +var svgData = { + // path, width, height + vec: ["vec", 0.471, 0.714], + // values from the font glyph + oiintSize1: ["oiintSize1", 0.957, 0.499], + // oval to overlay the integrand + oiintSize2: ["oiintSize2", 1.472, 0.659], + oiiintSize1: ["oiiintSize1", 1.304, 0.499], + oiiintSize2: ["oiiintSize2", 1.98, 0.659], + leftParenInner: ["leftParenInner", 0.875, 0.3], + rightParenInner: ["rightParenInner", 0.875, 0.3] +}; + +var buildCommon_staticSvg = function staticSvg(value, options) { + // Create a span with inline SVG for the element. + var _svgData$value = svgData[value], + pathName = _svgData$value[0], + width = _svgData$value[1], + height = _svgData$value[2]; + var path = new domTree_PathNode(pathName); + var svgNode = new SvgNode([path], { + "width": width + "em", + "height": height + "em", + // Override CSS rule `.katex svg { width: 100% }` + "style": "width:" + width + "em", + "viewBox": "0 0 " + 1000 * width + " " + 1000 * height, + "preserveAspectRatio": "xMinYMin" + }); + var span = buildCommon_makeSvgSpan(["overlay"], [svgNode], options); + span.height = height; + span.style.height = height + "em"; + span.style.width = width + "em"; + return span; +}; + +/* harmony default export */ var buildCommon = ({ + fontMap: fontMap, + makeSymbol: buildCommon_makeSymbol, + mathsym: buildCommon_mathsym, + makeSpan: buildCommon_makeSpan, + makeSvgSpan: buildCommon_makeSvgSpan, + makeLineSpan: makeLineSpan, + makeAnchor: buildCommon_makeAnchor, + makeFragment: buildCommon_makeFragment, + wrapFragment: buildCommon_wrapFragment, + makeVList: buildCommon_makeVList, + makeOrd: buildCommon_makeOrd, + makeGlue: buildCommon_makeGlue, + staticSvg: buildCommon_staticSvg, + svgData: svgData, + tryCombineChars: buildCommon_tryCombineChars +}); +// CONCATENATED MODULE: ./src/spacingData.js +/** + * Describes spaces between different classes of atoms. + */ +var thinspace = { + number: 3, + unit: "mu" +}; +var mediumspace = { + number: 4, + unit: "mu" +}; +var thickspace = { + number: 5, + unit: "mu" +}; // Making the type below exact with all optional fields doesn't work due to +// - https://github.com/facebook/flow/issues/4582 +// - https://github.com/facebook/flow/issues/5688 +// However, since *all* fields are optional, $Shape<> works as suggested in 5688 +// above. + +// Spacing relationships for display and text styles +var spacings = { + mord: { + mop: thinspace, + mbin: mediumspace, + mrel: thickspace, + minner: thinspace + }, + mop: { + mord: thinspace, + mop: thinspace, + mrel: thickspace, + minner: thinspace + }, + mbin: { + mord: mediumspace, + mop: mediumspace, + mopen: mediumspace, + minner: mediumspace + }, + mrel: { + mord: thickspace, + mop: thickspace, + mopen: thickspace, + minner: thickspace + }, + mopen: {}, + mclose: { + mop: thinspace, + mbin: mediumspace, + mrel: thickspace, + minner: thinspace + }, + mpunct: { + mord: thinspace, + mop: thinspace, + mrel: thickspace, + mopen: thinspace, + mclose: thinspace, + mpunct: thinspace, + minner: thinspace + }, + minner: { + mord: thinspace, + mop: thinspace, + mbin: mediumspace, + mrel: thickspace, + mopen: thinspace, + mpunct: thinspace, + minner: thinspace + } +}; // Spacing relationships for script and scriptscript styles + +var tightSpacings = { + mord: { + mop: thinspace + }, + mop: { + mord: thinspace, + mop: thinspace + }, + mbin: {}, + mrel: {}, + mopen: {}, + mclose: { + mop: thinspace + }, + mpunct: {}, + minner: { + mop: thinspace + } +}; +// CONCATENATED MODULE: ./src/defineFunction.js +/** Context provided to function handlers for error messages. */ +// Note: reverse the order of the return type union will cause a flow error. +// See https://github.com/facebook/flow/issues/3663. +// More general version of `HtmlBuilder` for nodes (e.g. \sum, accent types) +// whose presence impacts super/subscripting. In this case, ParseNode<"supsub"> +// delegates its HTML building to the HtmlBuilder corresponding to these nodes. + +/** + * Final function spec for use at parse time. + * This is almost identical to `FunctionPropSpec`, except it + * 1. includes the function handler, and + * 2. requires all arguments except argTypes. + * It is generated by `defineFunction()` below. + */ + +/** + * All registered functions. + * `functions.js` just exports this same dictionary again and makes it public. + * `Parser.js` requires this dictionary. + */ +var _functions = {}; +/** + * All HTML builders. Should be only used in the `define*` and the `build*ML` + * functions. + */ + +var _htmlGroupBuilders = {}; +/** + * All MathML builders. Should be only used in the `define*` and the `build*ML` + * functions. + */ + +var _mathmlGroupBuilders = {}; +function defineFunction(_ref) { + var type = _ref.type, + names = _ref.names, + props = _ref.props, + handler = _ref.handler, + htmlBuilder = _ref.htmlBuilder, + mathmlBuilder = _ref.mathmlBuilder; + // Set default values of functions + var data = { + type: type, + numArgs: props.numArgs, + argTypes: props.argTypes, + greediness: props.greediness === undefined ? 1 : props.greediness, + allowedInText: !!props.allowedInText, + allowedInMath: props.allowedInMath === undefined ? true : props.allowedInMath, + numOptionalArgs: props.numOptionalArgs || 0, + infix: !!props.infix, + handler: handler + }; + + for (var i = 0; i < names.length; ++i) { + _functions[names[i]] = data; + } + + if (type) { + if (htmlBuilder) { + _htmlGroupBuilders[type] = htmlBuilder; + } + + if (mathmlBuilder) { + _mathmlGroupBuilders[type] = mathmlBuilder; + } + } +} +/** + * Use this to register only the HTML and MathML builders for a function (e.g. + * if the function's ParseNode is generated in Parser.js rather than via a + * stand-alone handler provided to `defineFunction`). + */ + +function defineFunctionBuilders(_ref2) { + var type = _ref2.type, + htmlBuilder = _ref2.htmlBuilder, + mathmlBuilder = _ref2.mathmlBuilder; + defineFunction({ + type: type, + names: [], + props: { + numArgs: 0 + }, + handler: function handler() { + throw new Error('Should never be called.'); + }, + htmlBuilder: htmlBuilder, + mathmlBuilder: mathmlBuilder + }); +} // Since the corresponding buildHTML/buildMathML function expects a +// list of elements, we normalize for different kinds of arguments + +var ordargument = function ordargument(arg) { + return arg.type === "ordgroup" ? arg.body : [arg]; +}; +// CONCATENATED MODULE: ./src/buildHTML.js +/** + * This file does the main work of building a domTree structure from a parse + * tree. The entry point is the `buildHTML` function, which takes a parse tree. + * Then, the buildExpression, buildGroup, and various groupBuilders functions + * are called, to produce a final HTML tree. + */ + + + + + + + + +var buildHTML_makeSpan = buildCommon.makeSpan; // Binary atoms (first class `mbin`) change into ordinary atoms (`mord`) +// depending on their surroundings. See TeXbook pg. 442-446, Rules 5 and 6, +// and the text before Rule 19. + +var binLeftCanceller = ["leftmost", "mbin", "mopen", "mrel", "mop", "mpunct"]; +var binRightCanceller = ["rightmost", "mrel", "mclose", "mpunct"]; +var styleMap = { + "display": src_Style.DISPLAY, + "text": src_Style.TEXT, + "script": src_Style.SCRIPT, + "scriptscript": src_Style.SCRIPTSCRIPT +}; +var DomEnum = { + mord: "mord", + mop: "mop", + mbin: "mbin", + mrel: "mrel", + mopen: "mopen", + mclose: "mclose", + mpunct: "mpunct", + minner: "minner" +}; + +/** + * Take a list of nodes, build them in order, and return a list of the built + * nodes. documentFragments are flattened into their contents, so the + * returned list contains no fragments. `isRealGroup` is true if `expression` + * is a real group (no atoms will be added on either side), as opposed to + * a partial group (e.g. one created by \color). `surrounding` is an array + * consisting type of nodes that will be added to the left and right. + */ +var buildHTML_buildExpression = function buildExpression(expression, options, isRealGroup, surrounding) { + if (surrounding === void 0) { + surrounding = [null, null]; + } + + // Parse expressions into `groups`. + var groups = []; + + for (var i = 0; i < expression.length; i++) { + var output = buildHTML_buildGroup(expression[i], options); + + if (output instanceof tree_DocumentFragment) { + var children = output.children; + groups.push.apply(groups, children); + } else { + groups.push(output); + } + } // If `expression` is a partial group, let the parent handle spacings + // to avoid processing groups multiple times. + + + if (!isRealGroup) { + return groups; + } + + var glueOptions = options; + + if (expression.length === 1) { + var node = expression[0]; + + if (node.type === "sizing") { + glueOptions = options.havingSize(node.size); + } else if (node.type === "styling") { + glueOptions = options.havingStyle(styleMap[node.style]); + } + } // Dummy spans for determining spacings between surrounding atoms. + // If `expression` has no atoms on the left or right, class "leftmost" + // or "rightmost", respectively, is used to indicate it. + + + var dummyPrev = buildHTML_makeSpan([surrounding[0] || "leftmost"], [], options); + var dummyNext = buildHTML_makeSpan([surrounding[1] || "rightmost"], [], options); // TODO: These code assumes that a node's math class is the first element + // of its `classes` array. A later cleanup should ensure this, for + // instance by changing the signature of `makeSpan`. + // Before determining what spaces to insert, perform bin cancellation. + // Binary operators change to ordinary symbols in some contexts. + + var isRoot = isRealGroup === "root"; + traverseNonSpaceNodes(groups, function (node, prev) { + var prevType = prev.classes[0]; + var type = node.classes[0]; + + if (prevType === "mbin" && utils.contains(binRightCanceller, type)) { + prev.classes[0] = "mord"; + } else if (type === "mbin" && utils.contains(binLeftCanceller, prevType)) { + node.classes[0] = "mord"; + } + }, { + node: dummyPrev + }, dummyNext, isRoot); + traverseNonSpaceNodes(groups, function (node, prev) { + var prevType = getTypeOfDomTree(prev); + var type = getTypeOfDomTree(node); // 'mtight' indicates that the node is script or scriptscript style. + + var space = prevType && type ? node.hasClass("mtight") ? tightSpacings[prevType][type] : spacings[prevType][type] : null; + + if (space) { + // Insert glue (spacing) after the `prev`. + return buildCommon.makeGlue(space, glueOptions); + } + }, { + node: dummyPrev + }, dummyNext, isRoot); + return groups; +}; // Depth-first traverse non-space `nodes`, calling `callback` with the current and +// previous node as arguments, optionally returning a node to insert after the +// previous node. `prev` is an object with the previous node and `insertAfter` +// function to insert after it. `next` is a node that will be added to the right. +// Used for bin cancellation and inserting spacings. + +var traverseNonSpaceNodes = function traverseNonSpaceNodes(nodes, callback, prev, next, isRoot) { + if (next) { + // temporarily append the right node, if exists + nodes.push(next); + } + + var i = 0; + + for (; i < nodes.length; i++) { + var node = nodes[i]; + var partialGroup = buildHTML_checkPartialGroup(node); + + if (partialGroup) { + // Recursive DFS + // $FlowFixMe: make nodes a $ReadOnlyArray by returning a new array + traverseNonSpaceNodes(partialGroup.children, callback, prev, null, isRoot); + continue; + } // Ignore explicit spaces (e.g., \;, \,) when determining what implicit + // spacing should go between atoms of different classes + + + var nonspace = !node.hasClass("mspace"); + + if (nonspace) { + var result = callback(node, prev.node); + + if (result) { + if (prev.insertAfter) { + prev.insertAfter(result); + } else { + // insert at front + nodes.unshift(result); + i++; + } + } + } + + if (nonspace) { + prev.node = node; + } else if (isRoot && node.hasClass("newline")) { + prev.node = buildHTML_makeSpan(["leftmost"]); // treat like beginning of line + } + + prev.insertAfter = function (index) { + return function (n) { + nodes.splice(index + 1, 0, n); + i++; + }; + }(i); + } + + if (next) { + nodes.pop(); + } +}; // Check if given node is a partial group, i.e., does not affect spacing around. + + +var buildHTML_checkPartialGroup = function checkPartialGroup(node) { + if (node instanceof tree_DocumentFragment || node instanceof domTree_Anchor || node instanceof domTree_Span && node.hasClass("enclosing")) { + return node; + } + + return null; +}; // Return the outermost node of a domTree. + + +var getOutermostNode = function getOutermostNode(node, side) { + var partialGroup = buildHTML_checkPartialGroup(node); + + if (partialGroup) { + var children = partialGroup.children; + + if (children.length) { + if (side === "right") { + return getOutermostNode(children[children.length - 1], "right"); + } else if (side === "left") { + return getOutermostNode(children[0], "left"); + } + } + } + + return node; +}; // Return math atom class (mclass) of a domTree. +// If `side` is given, it will get the type of the outermost node at given side. + + +var getTypeOfDomTree = function getTypeOfDomTree(node, side) { + if (!node) { + return null; + } + + if (side) { + node = getOutermostNode(node, side); + } // This makes a lot of assumptions as to where the type of atom + // appears. We should do a better job of enforcing this. + + + return DomEnum[node.classes[0]] || null; +}; +var makeNullDelimiter = function makeNullDelimiter(options, classes) { + var moreClasses = ["nulldelimiter"].concat(options.baseSizingClasses()); + return buildHTML_makeSpan(classes.concat(moreClasses)); +}; +/** + * buildGroup is the function that takes a group and calls the correct groupType + * function for it. It also handles the interaction of size and style changes + * between parents and children. + */ + +var buildHTML_buildGroup = function buildGroup(group, options, baseOptions) { + if (!group) { + return buildHTML_makeSpan(); + } + + if (_htmlGroupBuilders[group.type]) { + // Call the groupBuilders function + var groupNode = _htmlGroupBuilders[group.type](group, options); // If the size changed between the parent and the current group, account + // for that size difference. + + if (baseOptions && options.size !== baseOptions.size) { + groupNode = buildHTML_makeSpan(options.sizingClasses(baseOptions), [groupNode], options); + var multiplier = options.sizeMultiplier / baseOptions.sizeMultiplier; + groupNode.height *= multiplier; + groupNode.depth *= multiplier; + } + + return groupNode; + } else { + throw new src_ParseError("Got group of unknown type: '" + group.type + "'"); + } +}; +/** + * Combine an array of HTML DOM nodes (e.g., the output of `buildExpression`) + * into an unbreakable HTML node of class .base, with proper struts to + * guarantee correct vertical extent. `buildHTML` calls this repeatedly to + * make up the entire expression as a sequence of unbreakable units. + */ + +function buildHTMLUnbreakable(children, options) { + // Compute height and depth of this chunk. + var body = buildHTML_makeSpan(["base"], children, options); // Add strut, which ensures that the top of the HTML element falls at + // the height of the expression, and the bottom of the HTML element + // falls at the depth of the expression. + + var strut = buildHTML_makeSpan(["strut"]); + strut.style.height = body.height + body.depth + "em"; + strut.style.verticalAlign = -body.depth + "em"; + body.children.unshift(strut); + return body; +} +/** + * Take an entire parse tree, and build it into an appropriate set of HTML + * nodes. + */ + + +function buildHTML(tree, options) { + // Strip off outer tag wrapper for processing below. + var tag = null; + + if (tree.length === 1 && tree[0].type === "tag") { + tag = tree[0].tag; + tree = tree[0].body; + } // Build the expression contained in the tree + + + var expression = buildHTML_buildExpression(tree, options, "root"); + var children = []; // Create one base node for each chunk between potential line breaks. + // The TeXBook [p.173] says "A formula will be broken only after a + // relation symbol like $=$ or $<$ or $\rightarrow$, or after a binary + // operation symbol like $+$ or $-$ or $\times$, where the relation or + // binary operation is on the ``outer level'' of the formula (i.e., not + // enclosed in {...} and not part of an \over construction)." + + var parts = []; + + for (var i = 0; i < expression.length; i++) { + parts.push(expression[i]); + + if (expression[i].hasClass("mbin") || expression[i].hasClass("mrel") || expression[i].hasClass("allowbreak")) { + // Put any post-operator glue on same line as operator. + // Watch for \nobreak along the way, and stop at \newline. + var nobreak = false; + + while (i < expression.length - 1 && expression[i + 1].hasClass("mspace") && !expression[i + 1].hasClass("newline")) { + i++; + parts.push(expression[i]); + + if (expression[i].hasClass("nobreak")) { + nobreak = true; + } + } // Don't allow break if \nobreak among the post-operator glue. + + + if (!nobreak) { + children.push(buildHTMLUnbreakable(parts, options)); + parts = []; + } + } else if (expression[i].hasClass("newline")) { + // Write the line except the newline + parts.pop(); + + if (parts.length > 0) { + children.push(buildHTMLUnbreakable(parts, options)); + parts = []; + } // Put the newline at the top level + + + children.push(expression[i]); + } + } + + if (parts.length > 0) { + children.push(buildHTMLUnbreakable(parts, options)); + } // Now, if there was a tag, build it too and append it as a final child. + + + var tagChild; + + if (tag) { + tagChild = buildHTMLUnbreakable(buildHTML_buildExpression(tag, options, true)); + tagChild.classes = ["tag"]; + children.push(tagChild); + } + + var htmlNode = buildHTML_makeSpan(["katex-html"], children); + htmlNode.setAttribute("aria-hidden", "true"); // Adjust the strut of the tag to be the maximum height of all children + // (the height of the enclosing htmlNode) for proper vertical alignment. + + if (tagChild) { + var strut = tagChild.children[0]; + strut.style.height = htmlNode.height + htmlNode.depth + "em"; + strut.style.verticalAlign = -htmlNode.depth + "em"; + } + + return htmlNode; +} +// CONCATENATED MODULE: ./src/mathMLTree.js +/** + * These objects store data about MathML nodes. This is the MathML equivalent + * of the types in domTree.js. Since MathML handles its own rendering, and + * since we're mainly using MathML to improve accessibility, we don't manage + * any of the styling state that the plain DOM nodes do. + * + * The `toNode` and `toMarkup` functions work simlarly to how they do in + * domTree.js, creating namespaced DOM nodes and HTML text markup respectively. + */ + + +function newDocumentFragment(children) { + return new tree_DocumentFragment(children); +} +/** + * This node represents a general purpose MathML node of any type. The + * constructor requires the type of node to create (for example, `"mo"` or + * `"mspace"`, corresponding to `` and `` tags). + */ + +var mathMLTree_MathNode = +/*#__PURE__*/ +function () { + function MathNode(type, children) { + this.type = void 0; + this.attributes = void 0; + this.children = void 0; + this.type = type; + this.attributes = {}; + this.children = children || []; + } + /** + * Sets an attribute on a MathML node. MathML depends on attributes to convey a + * semantic content, so this is used heavily. + */ + + + var _proto = MathNode.prototype; + + _proto.setAttribute = function setAttribute(name, value) { + this.attributes[name] = value; + } + /** + * Gets an attribute on a MathML node. + */ + ; + + _proto.getAttribute = function getAttribute(name) { + return this.attributes[name]; + } + /** + * Converts the math node into a MathML-namespaced DOM element. + */ + ; + + _proto.toNode = function toNode() { + var node = document.createElementNS("http://www.w3.org/1998/Math/MathML", this.type); + + for (var attr in this.attributes) { + if (Object.prototype.hasOwnProperty.call(this.attributes, attr)) { + node.setAttribute(attr, this.attributes[attr]); + } + } + + for (var i = 0; i < this.children.length; i++) { + node.appendChild(this.children[i].toNode()); + } + + return node; + } + /** + * Converts the math node into an HTML markup string. + */ + ; + + _proto.toMarkup = function toMarkup() { + var markup = "<" + this.type; // Add the attributes + + for (var attr in this.attributes) { + if (Object.prototype.hasOwnProperty.call(this.attributes, attr)) { + markup += " " + attr + "=\""; + markup += utils.escape(this.attributes[attr]); + markup += "\""; + } + } + + markup += ">"; + + for (var i = 0; i < this.children.length; i++) { + markup += this.children[i].toMarkup(); + } + + markup += ""; + return markup; + } + /** + * Converts the math node into a string, similar to innerText, but escaped. + */ + ; + + _proto.toText = function toText() { + return this.children.map(function (child) { + return child.toText(); + }).join(""); + }; + + return MathNode; +}(); +/** + * This node represents a piece of text. + */ + +var mathMLTree_TextNode = +/*#__PURE__*/ +function () { + function TextNode(text) { + this.text = void 0; + this.text = text; + } + /** + * Converts the text node into a DOM text node. + */ + + + var _proto2 = TextNode.prototype; + + _proto2.toNode = function toNode() { + return document.createTextNode(this.text); + } + /** + * Converts the text node into escaped HTML markup + * (representing the text itself). + */ + ; + + _proto2.toMarkup = function toMarkup() { + return utils.escape(this.toText()); + } + /** + * Converts the text node into a string + * (representing the text iteself). + */ + ; + + _proto2.toText = function toText() { + return this.text; + }; + + return TextNode; +}(); +/** + * This node represents a space, but may render as or as text, + * depending on the width. + */ + +var SpaceNode = +/*#__PURE__*/ +function () { + /** + * Create a Space node with width given in CSS ems. + */ + function SpaceNode(width) { + this.width = void 0; + this.character = void 0; + this.width = width; // See https://www.w3.org/TR/2000/WD-MathML2-20000328/chapter6.html + // for a table of space-like characters. We use Unicode + // representations instead of &LongNames; as it's not clear how to + // make the latter via document.createTextNode. + + if (width >= 0.05555 && width <= 0.05556) { + this.character = "\u200A"; //   + } else if (width >= 0.1666 && width <= 0.1667) { + this.character = "\u2009"; //   + } else if (width >= 0.2222 && width <= 0.2223) { + this.character = "\u2005"; //   + } else if (width >= 0.2777 && width <= 0.2778) { + this.character = "\u2005\u200A"; //    + } else if (width >= -0.05556 && width <= -0.05555) { + this.character = "\u200A\u2063"; // ​ + } else if (width >= -0.1667 && width <= -0.1666) { + this.character = "\u2009\u2063"; // ​ + } else if (width >= -0.2223 && width <= -0.2222) { + this.character = "\u205F\u2063"; // ​ + } else if (width >= -0.2778 && width <= -0.2777) { + this.character = "\u2005\u2063"; // ​ + } else { + this.character = null; + } + } + /** + * Converts the math node into a MathML-namespaced DOM element. + */ + + + var _proto3 = SpaceNode.prototype; + + _proto3.toNode = function toNode() { + if (this.character) { + return document.createTextNode(this.character); + } else { + var node = document.createElementNS("http://www.w3.org/1998/Math/MathML", "mspace"); + node.setAttribute("width", this.width + "em"); + return node; + } + } + /** + * Converts the math node into an HTML markup string. + */ + ; + + _proto3.toMarkup = function toMarkup() { + if (this.character) { + return "" + this.character + ""; + } else { + return ""; + } + } + /** + * Converts the math node into a string, similar to innerText. + */ + ; + + _proto3.toText = function toText() { + if (this.character) { + return this.character; + } else { + return " "; + } + }; + + return SpaceNode; +}(); + +/* harmony default export */ var mathMLTree = ({ + MathNode: mathMLTree_MathNode, + TextNode: mathMLTree_TextNode, + SpaceNode: SpaceNode, + newDocumentFragment: newDocumentFragment +}); +// CONCATENATED MODULE: ./src/buildMathML.js +/** + * This file converts a parse tree into a cooresponding MathML tree. The main + * entry point is the `buildMathML` function, which takes a parse tree from the + * parser. + */ + + + + + + + + + +/** + * Takes a symbol and converts it into a MathML text node after performing + * optional replacement from symbols.js. + */ +var buildMathML_makeText = function makeText(text, mode, options) { + if (src_symbols[mode][text] && src_symbols[mode][text].replace && text.charCodeAt(0) !== 0xD835 && !(ligatures.hasOwnProperty(text) && options && (options.fontFamily && options.fontFamily.substr(4, 2) === "tt" || options.font && options.font.substr(4, 2) === "tt"))) { + text = src_symbols[mode][text].replace; + } + + return new mathMLTree.TextNode(text); +}; +/** + * Wrap the given array of nodes in an node if needed, i.e., + * unless the array has length 1. Always returns a single node. + */ + +var buildMathML_makeRow = function makeRow(body) { + if (body.length === 1) { + return body[0]; + } else { + return new mathMLTree.MathNode("mrow", body); + } +}; +/** + * Returns the math variant as a string or null if none is required. + */ + +var buildMathML_getVariant = function getVariant(group, options) { + // Handle \text... font specifiers as best we can. + // MathML has a limited list of allowable mathvariant specifiers; see + // https://www.w3.org/TR/MathML3/chapter3.html#presm.commatt + if (options.fontFamily === "texttt") { + return "monospace"; + } else if (options.fontFamily === "textsf") { + if (options.fontShape === "textit" && options.fontWeight === "textbf") { + return "sans-serif-bold-italic"; + } else if (options.fontShape === "textit") { + return "sans-serif-italic"; + } else if (options.fontWeight === "textbf") { + return "bold-sans-serif"; + } else { + return "sans-serif"; + } + } else if (options.fontShape === "textit" && options.fontWeight === "textbf") { + return "bold-italic"; + } else if (options.fontShape === "textit") { + return "italic"; + } else if (options.fontWeight === "textbf") { + return "bold"; + } + + var font = options.font; + + if (!font || font === "mathnormal") { + return null; + } + + var mode = group.mode; + + if (font === "mathit") { + return "italic"; + } else if (font === "boldsymbol") { + return group.type === "textord" ? "bold" : "bold-italic"; + } else if (font === "mathbf") { + return "bold"; + } else if (font === "mathbb") { + return "double-struck"; + } else if (font === "mathfrak") { + return "fraktur"; + } else if (font === "mathscr" || font === "mathcal") { + // MathML makes no distinction between script and caligrahpic + return "script"; + } else if (font === "mathsf") { + return "sans-serif"; + } else if (font === "mathtt") { + return "monospace"; + } + + var text = group.text; + + if (utils.contains(["\\imath", "\\jmath"], text)) { + return null; + } + + if (src_symbols[mode][text] && src_symbols[mode][text].replace) { + text = src_symbols[mode][text].replace; + } + + var fontName = buildCommon.fontMap[font].fontName; + + if (getCharacterMetrics(text, fontName, mode)) { + return buildCommon.fontMap[font].variant; + } + + return null; +}; +/** + * Takes a list of nodes, builds them, and returns a list of the generated + * MathML nodes. Also combine consecutive outputs into a single + * tag. + */ + +var buildMathML_buildExpression = function buildExpression(expression, options, isOrdgroup) { + if (expression.length === 1) { + var group = buildMathML_buildGroup(expression[0], options); + + if (isOrdgroup && group instanceof mathMLTree_MathNode && group.type === "mo") { + // When TeX writers want to suppress spacing on an operator, + // they often put the operator by itself inside braces. + group.setAttribute("lspace", "0em"); + group.setAttribute("rspace", "0em"); + } + + return [group]; + } + + var groups = []; + var lastGroup; + + for (var i = 0; i < expression.length; i++) { + var _group = buildMathML_buildGroup(expression[i], options); + + if (_group instanceof mathMLTree_MathNode && lastGroup instanceof mathMLTree_MathNode) { + // Concatenate adjacent s + if (_group.type === 'mtext' && lastGroup.type === 'mtext' && _group.getAttribute('mathvariant') === lastGroup.getAttribute('mathvariant')) { + var _lastGroup$children; + + (_lastGroup$children = lastGroup.children).push.apply(_lastGroup$children, _group.children); + + continue; // Concatenate adjacent s + } else if (_group.type === 'mn' && lastGroup.type === 'mn') { + var _lastGroup$children2; + + (_lastGroup$children2 = lastGroup.children).push.apply(_lastGroup$children2, _group.children); + + continue; // Concatenate ... followed by . + } else if (_group.type === 'mi' && _group.children.length === 1 && lastGroup.type === 'mn') { + var child = _group.children[0]; + + if (child instanceof mathMLTree_TextNode && child.text === '.') { + var _lastGroup$children3; + + (_lastGroup$children3 = lastGroup.children).push.apply(_lastGroup$children3, _group.children); + + continue; + } + } else if (lastGroup.type === 'mi' && lastGroup.children.length === 1) { + var lastChild = lastGroup.children[0]; + + if (lastChild instanceof mathMLTree_TextNode && lastChild.text === "\u0338" && (_group.type === 'mo' || _group.type === 'mi' || _group.type === 'mn')) { + var _child = _group.children[0]; + + if (_child instanceof mathMLTree_TextNode && _child.text.length > 0) { + // Overlay with combining character long solidus + _child.text = _child.text.slice(0, 1) + "\u0338" + _child.text.slice(1); + groups.pop(); + } + } + } + } + + groups.push(_group); + lastGroup = _group; + } + + return groups; +}; +/** + * Equivalent to buildExpression, but wraps the elements in an + * if there's more than one. Returns a single node instead of an array. + */ + +var buildExpressionRow = function buildExpressionRow(expression, options, isOrdgroup) { + return buildMathML_makeRow(buildMathML_buildExpression(expression, options, isOrdgroup)); +}; +/** + * Takes a group from the parser and calls the appropriate groupBuilders function + * on it to produce a MathML node. + */ + +var buildMathML_buildGroup = function buildGroup(group, options) { + if (!group) { + return new mathMLTree.MathNode("mrow"); + } + + if (_mathmlGroupBuilders[group.type]) { + // Call the groupBuilders function + var result = _mathmlGroupBuilders[group.type](group, options); + return result; + } else { + throw new src_ParseError("Got group of unknown type: '" + group.type + "'"); + } +}; +/** + * Takes a full parse tree and settings and builds a MathML representation of + * it. In particular, we put the elements from building the parse tree into a + * tag so we can also include that TeX source as an annotation. + * + * Note that we actually return a domTree element with a `` inside it so + * we can do appropriate styling. + */ + +function buildMathML(tree, texExpression, options, isDisplayMode, forMathmlOnly) { + var expression = buildMathML_buildExpression(tree, options); // Wrap up the expression in an mrow so it is presented in the semantics + // tag correctly, unless it's a single or . + + var wrapper; + + if (expression.length === 1 && expression[0] instanceof mathMLTree_MathNode && utils.contains(["mrow", "mtable"], expression[0].type)) { + wrapper = expression[0]; + } else { + wrapper = new mathMLTree.MathNode("mrow", expression); + } // Build a TeX annotation of the source + + + var annotation = new mathMLTree.MathNode("annotation", [new mathMLTree.TextNode(texExpression)]); + annotation.setAttribute("encoding", "application/x-tex"); + var semantics = new mathMLTree.MathNode("semantics", [wrapper, annotation]); + var math = new mathMLTree.MathNode("math", [semantics]); + math.setAttribute("xmlns", "http://www.w3.org/1998/Math/MathML"); + + if (isDisplayMode) { + math.setAttribute("display", "block"); + } // You can't style nodes, so we wrap the node in a span. + // NOTE: The span class is not typed to have nodes as children, and + // we don't want to make the children type more generic since the children + // of span are expected to have more fields in `buildHtml` contexts. + + + var wrapperClass = forMathmlOnly ? "katex" : "katex-mathml"; // $FlowFixMe + + return buildCommon.makeSpan([wrapperClass], [math]); +} +// CONCATENATED MODULE: ./src/buildTree.js + + + + + + + +var buildTree_optionsFromSettings = function optionsFromSettings(settings) { + return new src_Options({ + style: settings.displayMode ? src_Style.DISPLAY : src_Style.TEXT, + maxSize: settings.maxSize, + minRuleThickness: settings.minRuleThickness + }); +}; + +var buildTree_displayWrap = function displayWrap(node, settings) { + if (settings.displayMode) { + var classes = ["katex-display"]; + + if (settings.leqno) { + classes.push("leqno"); + } + + if (settings.fleqn) { + classes.push("fleqn"); + } + + node = buildCommon.makeSpan(classes, [node]); + } + + return node; +}; + +var buildTree_buildTree = function buildTree(tree, expression, settings) { + var options = buildTree_optionsFromSettings(settings); + var katexNode; + + if (settings.output === "mathml") { + return buildMathML(tree, expression, options, settings.displayMode, true); + } else if (settings.output === "html") { + var htmlNode = buildHTML(tree, options); + katexNode = buildCommon.makeSpan(["katex"], [htmlNode]); + } else { + var mathMLNode = buildMathML(tree, expression, options, settings.displayMode, false); + + var _htmlNode = buildHTML(tree, options); + + katexNode = buildCommon.makeSpan(["katex"], [mathMLNode, _htmlNode]); + } + + return buildTree_displayWrap(katexNode, settings); +}; +var buildTree_buildHTMLTree = function buildHTMLTree(tree, expression, settings) { + var options = buildTree_optionsFromSettings(settings); + var htmlNode = buildHTML(tree, options); + var katexNode = buildCommon.makeSpan(["katex"], [htmlNode]); + return buildTree_displayWrap(katexNode, settings); +}; +/* harmony default export */ var src_buildTree = (buildTree_buildTree); +// CONCATENATED MODULE: ./src/stretchy.js +/** + * This file provides support to buildMathML.js and buildHTML.js + * for stretchy wide elements rendered from SVG files + * and other CSS trickery. + */ + + + + +var stretchyCodePoint = { + widehat: "^", + widecheck: "ˇ", + widetilde: "~", + utilde: "~", + overleftarrow: "\u2190", + underleftarrow: "\u2190", + xleftarrow: "\u2190", + overrightarrow: "\u2192", + underrightarrow: "\u2192", + xrightarrow: "\u2192", + underbrace: "\u23DF", + overbrace: "\u23DE", + overgroup: "\u23E0", + undergroup: "\u23E1", + overleftrightarrow: "\u2194", + underleftrightarrow: "\u2194", + xleftrightarrow: "\u2194", + Overrightarrow: "\u21D2", + xRightarrow: "\u21D2", + overleftharpoon: "\u21BC", + xleftharpoonup: "\u21BC", + overrightharpoon: "\u21C0", + xrightharpoonup: "\u21C0", + xLeftarrow: "\u21D0", + xLeftrightarrow: "\u21D4", + xhookleftarrow: "\u21A9", + xhookrightarrow: "\u21AA", + xmapsto: "\u21A6", + xrightharpoondown: "\u21C1", + xleftharpoondown: "\u21BD", + xrightleftharpoons: "\u21CC", + xleftrightharpoons: "\u21CB", + xtwoheadleftarrow: "\u219E", + xtwoheadrightarrow: "\u21A0", + xlongequal: "=", + xtofrom: "\u21C4", + xrightleftarrows: "\u21C4", + xrightequilibrium: "\u21CC", + // Not a perfect match. + xleftequilibrium: "\u21CB" // None better available. + +}; + +var stretchy_mathMLnode = function mathMLnode(label) { + var node = new mathMLTree.MathNode("mo", [new mathMLTree.TextNode(stretchyCodePoint[label.substr(1)])]); + node.setAttribute("stretchy", "true"); + return node; +}; // Many of the KaTeX SVG images have been adapted from glyphs in KaTeX fonts. +// Copyright (c) 2009-2010, Design Science, Inc. () +// Copyright (c) 2014-2017 Khan Academy () +// Licensed under the SIL Open Font License, Version 1.1. +// See \nhttp://scripts.sil.org/OFL +// Very Long SVGs +// Many of the KaTeX stretchy wide elements use a long SVG image and an +// overflow: hidden tactic to achieve a stretchy image while avoiding +// distortion of arrowheads or brace corners. +// The SVG typically contains a very long (400 em) arrow. +// The SVG is in a container span that has overflow: hidden, so the span +// acts like a window that exposes only part of the SVG. +// The SVG always has a longer, thinner aspect ratio than the container span. +// After the SVG fills 100% of the height of the container span, +// there is a long arrow shaft left over. That left-over shaft is not shown. +// Instead, it is sliced off because the span's CSS has overflow: hidden. +// Thus, the reader sees an arrow that matches the subject matter width +// without distortion. +// Some functions, such as \cancel, need to vary their aspect ratio. These +// functions do not get the overflow SVG treatment. +// Second Brush Stroke +// Low resolution monitors struggle to display images in fine detail. +// So browsers apply anti-aliasing. A long straight arrow shaft therefore +// will sometimes appear as if it has a blurred edge. +// To mitigate this, these SVG files contain a second "brush-stroke" on the +// arrow shafts. That is, a second long thin rectangular SVG path has been +// written directly on top of each arrow shaft. This reinforcement causes +// some of the screen pixels to display as black instead of the anti-aliased +// gray pixel that a single path would generate. So we get arrow shafts +// whose edges appear to be sharper. +// In the katexImagesData object just below, the dimensions all +// correspond to path geometry inside the relevant SVG. +// For example, \overrightarrow uses the same arrowhead as glyph U+2192 +// from the KaTeX Main font. The scaling factor is 1000. +// That is, inside the font, that arrowhead is 522 units tall, which +// corresponds to 0.522 em inside the document. + + +var katexImagesData = { + // path(s), minWidth, height, align + overrightarrow: [["rightarrow"], 0.888, 522, "xMaxYMin"], + overleftarrow: [["leftarrow"], 0.888, 522, "xMinYMin"], + underrightarrow: [["rightarrow"], 0.888, 522, "xMaxYMin"], + underleftarrow: [["leftarrow"], 0.888, 522, "xMinYMin"], + xrightarrow: [["rightarrow"], 1.469, 522, "xMaxYMin"], + xleftarrow: [["leftarrow"], 1.469, 522, "xMinYMin"], + Overrightarrow: [["doublerightarrow"], 0.888, 560, "xMaxYMin"], + xRightarrow: [["doublerightarrow"], 1.526, 560, "xMaxYMin"], + xLeftarrow: [["doubleleftarrow"], 1.526, 560, "xMinYMin"], + overleftharpoon: [["leftharpoon"], 0.888, 522, "xMinYMin"], + xleftharpoonup: [["leftharpoon"], 0.888, 522, "xMinYMin"], + xleftharpoondown: [["leftharpoondown"], 0.888, 522, "xMinYMin"], + overrightharpoon: [["rightharpoon"], 0.888, 522, "xMaxYMin"], + xrightharpoonup: [["rightharpoon"], 0.888, 522, "xMaxYMin"], + xrightharpoondown: [["rightharpoondown"], 0.888, 522, "xMaxYMin"], + xlongequal: [["longequal"], 0.888, 334, "xMinYMin"], + xtwoheadleftarrow: [["twoheadleftarrow"], 0.888, 334, "xMinYMin"], + xtwoheadrightarrow: [["twoheadrightarrow"], 0.888, 334, "xMaxYMin"], + overleftrightarrow: [["leftarrow", "rightarrow"], 0.888, 522], + overbrace: [["leftbrace", "midbrace", "rightbrace"], 1.6, 548], + underbrace: [["leftbraceunder", "midbraceunder", "rightbraceunder"], 1.6, 548], + underleftrightarrow: [["leftarrow", "rightarrow"], 0.888, 522], + xleftrightarrow: [["leftarrow", "rightarrow"], 1.75, 522], + xLeftrightarrow: [["doubleleftarrow", "doublerightarrow"], 1.75, 560], + xrightleftharpoons: [["leftharpoondownplus", "rightharpoonplus"], 1.75, 716], + xleftrightharpoons: [["leftharpoonplus", "rightharpoondownplus"], 1.75, 716], + xhookleftarrow: [["leftarrow", "righthook"], 1.08, 522], + xhookrightarrow: [["lefthook", "rightarrow"], 1.08, 522], + overlinesegment: [["leftlinesegment", "rightlinesegment"], 0.888, 522], + underlinesegment: [["leftlinesegment", "rightlinesegment"], 0.888, 522], + overgroup: [["leftgroup", "rightgroup"], 0.888, 342], + undergroup: [["leftgroupunder", "rightgroupunder"], 0.888, 342], + xmapsto: [["leftmapsto", "rightarrow"], 1.5, 522], + xtofrom: [["leftToFrom", "rightToFrom"], 1.75, 528], + // The next three arrows are from the mhchem package. + // In mhchem.sty, min-length is 2.0em. But these arrows might appear in the + // document as \xrightarrow or \xrightleftharpoons. Those have + // min-length = 1.75em, so we set min-length on these next three to match. + xrightleftarrows: [["baraboveleftarrow", "rightarrowabovebar"], 1.75, 901], + xrightequilibrium: [["baraboveshortleftharpoon", "rightharpoonaboveshortbar"], 1.75, 716], + xleftequilibrium: [["shortbaraboveleftharpoon", "shortrightharpoonabovebar"], 1.75, 716] +}; + +var groupLength = function groupLength(arg) { + if (arg.type === "ordgroup") { + return arg.body.length; + } else { + return 1; + } +}; + +var stretchy_svgSpan = function svgSpan(group, options) { + // Create a span with inline SVG for the element. + function buildSvgSpan_() { + var viewBoxWidth = 400000; // default + + var label = group.label.substr(1); + + if (utils.contains(["widehat", "widecheck", "widetilde", "utilde"], label)) { + // Each type in the `if` statement corresponds to one of the ParseNode + // types below. This narrowing is required to access `grp.base`. + var grp = group; // There are four SVG images available for each function. + // Choose a taller image when there are more characters. + + var numChars = groupLength(grp.base); + var viewBoxHeight; + var pathName; + + var _height; + + if (numChars > 5) { + if (label === "widehat" || label === "widecheck") { + viewBoxHeight = 420; + viewBoxWidth = 2364; + _height = 0.42; + pathName = label + "4"; + } else { + viewBoxHeight = 312; + viewBoxWidth = 2340; + _height = 0.34; + pathName = "tilde4"; + } + } else { + var imgIndex = [1, 1, 2, 2, 3, 3][numChars]; + + if (label === "widehat" || label === "widecheck") { + viewBoxWidth = [0, 1062, 2364, 2364, 2364][imgIndex]; + viewBoxHeight = [0, 239, 300, 360, 420][imgIndex]; + _height = [0, 0.24, 0.3, 0.3, 0.36, 0.42][imgIndex]; + pathName = label + imgIndex; + } else { + viewBoxWidth = [0, 600, 1033, 2339, 2340][imgIndex]; + viewBoxHeight = [0, 260, 286, 306, 312][imgIndex]; + _height = [0, 0.26, 0.286, 0.3, 0.306, 0.34][imgIndex]; + pathName = "tilde" + imgIndex; + } + } + + var path = new domTree_PathNode(pathName); + var svgNode = new SvgNode([path], { + "width": "100%", + "height": _height + "em", + "viewBox": "0 0 " + viewBoxWidth + " " + viewBoxHeight, + "preserveAspectRatio": "none" + }); + return { + span: buildCommon.makeSvgSpan([], [svgNode], options), + minWidth: 0, + height: _height + }; + } else { + var spans = []; + var data = katexImagesData[label]; + var paths = data[0], + _minWidth = data[1], + _viewBoxHeight = data[2]; + + var _height2 = _viewBoxHeight / 1000; + + var numSvgChildren = paths.length; + var widthClasses; + var aligns; + + if (numSvgChildren === 1) { + // $FlowFixMe: All these cases must be of the 4-tuple type. + var align1 = data[3]; + widthClasses = ["hide-tail"]; + aligns = [align1]; + } else if (numSvgChildren === 2) { + widthClasses = ["halfarrow-left", "halfarrow-right"]; + aligns = ["xMinYMin", "xMaxYMin"]; + } else if (numSvgChildren === 3) { + widthClasses = ["brace-left", "brace-center", "brace-right"]; + aligns = ["xMinYMin", "xMidYMin", "xMaxYMin"]; + } else { + throw new Error("Correct katexImagesData or update code here to support\n " + numSvgChildren + " children."); + } + + for (var i = 0; i < numSvgChildren; i++) { + var _path = new domTree_PathNode(paths[i]); + + var _svgNode = new SvgNode([_path], { + "width": "400em", + "height": _height2 + "em", + "viewBox": "0 0 " + viewBoxWidth + " " + _viewBoxHeight, + "preserveAspectRatio": aligns[i] + " slice" + }); + + var _span = buildCommon.makeSvgSpan([widthClasses[i]], [_svgNode], options); + + if (numSvgChildren === 1) { + return { + span: _span, + minWidth: _minWidth, + height: _height2 + }; + } else { + _span.style.height = _height2 + "em"; + spans.push(_span); + } + } + + return { + span: buildCommon.makeSpan(["stretchy"], spans, options), + minWidth: _minWidth, + height: _height2 + }; + } + } // buildSvgSpan_() + + + var _buildSvgSpan_ = buildSvgSpan_(), + span = _buildSvgSpan_.span, + minWidth = _buildSvgSpan_.minWidth, + height = _buildSvgSpan_.height; // Note that we are returning span.depth = 0. + // Any adjustments relative to the baseline must be done in buildHTML. + + + span.height = height; + span.style.height = height + "em"; + + if (minWidth > 0) { + span.style.minWidth = minWidth + "em"; + } + + return span; +}; + +var stretchy_encloseSpan = function encloseSpan(inner, label, pad, options) { + // Return an image span for \cancel, \bcancel, \xcancel, or \fbox + var img; + var totalHeight = inner.height + inner.depth + 2 * pad; + + if (/fbox|color/.test(label)) { + img = buildCommon.makeSpan(["stretchy", label], [], options); + + if (label === "fbox") { + var color = options.color && options.getColor(); + + if (color) { + img.style.borderColor = color; + } + } + } else { + // \cancel, \bcancel, or \xcancel + // Since \cancel's SVG is inline and it omits the viewBox attribute, + // its stroke-width will not vary with span area. + var lines = []; + + if (/^[bx]cancel$/.test(label)) { + lines.push(new LineNode({ + "x1": "0", + "y1": "0", + "x2": "100%", + "y2": "100%", + "stroke-width": "0.046em" + })); + } + + if (/^x?cancel$/.test(label)) { + lines.push(new LineNode({ + "x1": "0", + "y1": "100%", + "x2": "100%", + "y2": "0", + "stroke-width": "0.046em" + })); + } + + var svgNode = new SvgNode(lines, { + "width": "100%", + "height": totalHeight + "em" + }); + img = buildCommon.makeSvgSpan([], [svgNode], options); + } + + img.height = totalHeight; + img.style.height = totalHeight + "em"; + return img; +}; + +/* harmony default export */ var stretchy = ({ + encloseSpan: stretchy_encloseSpan, + mathMLnode: stretchy_mathMLnode, + svgSpan: stretchy_svgSpan +}); +// CONCATENATED MODULE: ./src/parseNode.js + + +/** + * Asserts that the node is of the given type and returns it with stricter + * typing. Throws if the node's type does not match. + */ +function assertNodeType(node, type) { + if (!node || node.type !== type) { + throw new Error("Expected node of type " + type + ", but got " + (node ? "node of type " + node.type : String(node))); + } + + return node; +} +/** + * Returns the node more strictly typed iff it is of the given type. Otherwise, + * returns null. + */ + +function assertSymbolNodeType(node) { + var typedNode = checkSymbolNodeType(node); + + if (!typedNode) { + throw new Error("Expected node of symbol group type, but got " + (node ? "node of type " + node.type : String(node))); + } + + return typedNode; +} +/** + * Returns the node more strictly typed iff it is of the given type. Otherwise, + * returns null. + */ + +function checkSymbolNodeType(node) { + if (node && (node.type === "atom" || NON_ATOMS.hasOwnProperty(node.type))) { + // $FlowFixMe + return node; + } + + return null; +} +// CONCATENATED MODULE: ./src/functions/accent.js + + + + + + + + + +// NOTE: Unlike most `htmlBuilder`s, this one handles not only "accent", but +var accent_htmlBuilder = function htmlBuilder(grp, options) { + // Accents are handled in the TeXbook pg. 443, rule 12. + var base; + var group; + var supSubGroup; + + if (grp && grp.type === "supsub") { + // If our base is a character box, and we have superscripts and + // subscripts, the supsub will defer to us. In particular, we want + // to attach the superscripts and subscripts to the inner body (so + // that the position of the superscripts and subscripts won't be + // affected by the height of the accent). We accomplish this by + // sticking the base of the accent into the base of the supsub, and + // rendering that, while keeping track of where the accent is. + // The real accent group is the base of the supsub group + group = assertNodeType(grp.base, "accent"); // The character box is the base of the accent group + + base = group.base; // Stick the character box into the base of the supsub group + + grp.base = base; // Rerender the supsub group with its new base, and store that + // result. + + supSubGroup = assertSpan(buildHTML_buildGroup(grp, options)); // reset original base + + grp.base = group; + } else { + group = assertNodeType(grp, "accent"); + base = group.base; + } // Build the base group + + + var body = buildHTML_buildGroup(base, options.havingCrampedStyle()); // Does the accent need to shift for the skew of a character? + + var mustShift = group.isShifty && utils.isCharacterBox(base); // Calculate the skew of the accent. This is based on the line "If the + // nucleus is not a single character, let s = 0; otherwise set s to the + // kern amount for the nucleus followed by the \skewchar of its font." + // Note that our skew metrics are just the kern between each character + // and the skewchar. + + var skew = 0; + + if (mustShift) { + // If the base is a character box, then we want the skew of the + // innermost character. To do that, we find the innermost character: + var baseChar = utils.getBaseElem(base); // Then, we render its group to get the symbol inside it + + var baseGroup = buildHTML_buildGroup(baseChar, options.havingCrampedStyle()); // Finally, we pull the skew off of the symbol. + + skew = assertSymbolDomNode(baseGroup).skew; // Note that we now throw away baseGroup, because the layers we + // removed with getBaseElem might contain things like \color which + // we can't get rid of. + // TODO(emily): Find a better way to get the skew + } // calculate the amount of space between the body and the accent + + + var clearance = Math.min(body.height, options.fontMetrics().xHeight); // Build the accent + + var accentBody; + + if (!group.isStretchy) { + var accent; + var width; + + if (group.label === "\\vec") { + // Before version 0.9, \vec used the combining font glyph U+20D7. + // But browsers, especially Safari, are not consistent in how they + // render combining characters when not preceded by a character. + // So now we use an SVG. + // If Safari reforms, we should consider reverting to the glyph. + accent = buildCommon.staticSvg("vec", options); + width = buildCommon.svgData.vec[1]; + } else { + accent = buildCommon.makeOrd({ + mode: group.mode, + text: group.label + }, options, "textord"); + accent = assertSymbolDomNode(accent); // Remove the italic correction of the accent, because it only serves to + // shift the accent over to a place we don't want. + + accent.italic = 0; + width = accent.width; + } + + accentBody = buildCommon.makeSpan(["accent-body"], [accent]); // "Full" accents expand the width of the resulting symbol to be + // at least the width of the accent, and overlap directly onto the + // character without any vertical offset. + + var accentFull = group.label === "\\textcircled"; + + if (accentFull) { + accentBody.classes.push('accent-full'); + clearance = body.height; + } // Shift the accent over by the skew. + + + var left = skew; // CSS defines `.katex .accent .accent-body:not(.accent-full) { width: 0 }` + // so that the accent doesn't contribute to the bounding box. + // We need to shift the character by its width (effectively half + // its width) to compensate. + + if (!accentFull) { + left -= width / 2; + } + + accentBody.style.left = left + "em"; // \textcircled uses the \bigcirc glyph, so it needs some + // vertical adjustment to match LaTeX. + + if (group.label === "\\textcircled") { + accentBody.style.top = ".2em"; + } + + accentBody = buildCommon.makeVList({ + positionType: "firstBaseline", + children: [{ + type: "elem", + elem: body + }, { + type: "kern", + size: -clearance + }, { + type: "elem", + elem: accentBody + }] + }, options); + } else { + accentBody = stretchy.svgSpan(group, options); + accentBody = buildCommon.makeVList({ + positionType: "firstBaseline", + children: [{ + type: "elem", + elem: body + }, { + type: "elem", + elem: accentBody, + wrapperClasses: ["svg-align"], + wrapperStyle: skew > 0 ? { + width: "calc(100% - " + 2 * skew + "em)", + marginLeft: 2 * skew + "em" + } : undefined + }] + }, options); + } + + var accentWrap = buildCommon.makeSpan(["mord", "accent"], [accentBody], options); + + if (supSubGroup) { + // Here, we replace the "base" child of the supsub with our newly + // generated accent. + supSubGroup.children[0] = accentWrap; // Since we don't rerun the height calculation after replacing the + // accent, we manually recalculate height. + + supSubGroup.height = Math.max(accentWrap.height, supSubGroup.height); // Accents should always be ords, even when their innards are not. + + supSubGroup.classes[0] = "mord"; + return supSubGroup; + } else { + return accentWrap; + } +}; + +var accent_mathmlBuilder = function mathmlBuilder(group, options) { + var accentNode = group.isStretchy ? stretchy.mathMLnode(group.label) : new mathMLTree.MathNode("mo", [buildMathML_makeText(group.label, group.mode)]); + var node = new mathMLTree.MathNode("mover", [buildMathML_buildGroup(group.base, options), accentNode]); + node.setAttribute("accent", "true"); + return node; +}; + +var NON_STRETCHY_ACCENT_REGEX = new RegExp(["\\acute", "\\grave", "\\ddot", "\\tilde", "\\bar", "\\breve", "\\check", "\\hat", "\\vec", "\\dot", "\\mathring"].map(function (accent) { + return "\\" + accent; +}).join("|")); // Accents + +defineFunction({ + type: "accent", + names: ["\\acute", "\\grave", "\\ddot", "\\tilde", "\\bar", "\\breve", "\\check", "\\hat", "\\vec", "\\dot", "\\mathring", "\\widecheck", "\\widehat", "\\widetilde", "\\overrightarrow", "\\overleftarrow", "\\Overrightarrow", "\\overleftrightarrow", "\\overgroup", "\\overlinesegment", "\\overleftharpoon", "\\overrightharpoon"], + props: { + numArgs: 1 + }, + handler: function handler(context, args) { + var base = args[0]; + var isStretchy = !NON_STRETCHY_ACCENT_REGEX.test(context.funcName); + var isShifty = !isStretchy || context.funcName === "\\widehat" || context.funcName === "\\widetilde" || context.funcName === "\\widecheck"; + return { + type: "accent", + mode: context.parser.mode, + label: context.funcName, + isStretchy: isStretchy, + isShifty: isShifty, + base: base + }; + }, + htmlBuilder: accent_htmlBuilder, + mathmlBuilder: accent_mathmlBuilder +}); // Text-mode accents + +defineFunction({ + type: "accent", + names: ["\\'", "\\`", "\\^", "\\~", "\\=", "\\u", "\\.", '\\"', "\\r", "\\H", "\\v", "\\textcircled"], + props: { + numArgs: 1, + allowedInText: true, + allowedInMath: false + }, + handler: function handler(context, args) { + var base = args[0]; + return { + type: "accent", + mode: context.parser.mode, + label: context.funcName, + isStretchy: false, + isShifty: true, + base: base + }; + }, + htmlBuilder: accent_htmlBuilder, + mathmlBuilder: accent_mathmlBuilder +}); +// CONCATENATED MODULE: ./src/functions/accentunder.js +// Horizontal overlap functions + + + + + + +defineFunction({ + type: "accentUnder", + names: ["\\underleftarrow", "\\underrightarrow", "\\underleftrightarrow", "\\undergroup", "\\underlinesegment", "\\utilde"], + props: { + numArgs: 1 + }, + handler: function handler(_ref, args) { + var parser = _ref.parser, + funcName = _ref.funcName; + var base = args[0]; + return { + type: "accentUnder", + mode: parser.mode, + label: funcName, + base: base + }; + }, + htmlBuilder: function htmlBuilder(group, options) { + // Treat under accents much like underlines. + var innerGroup = buildHTML_buildGroup(group.base, options); + var accentBody = stretchy.svgSpan(group, options); + var kern = group.label === "\\utilde" ? 0.12 : 0; // Generate the vlist, with the appropriate kerns + + var vlist = buildCommon.makeVList({ + positionType: "top", + positionData: innerGroup.height, + children: [{ + type: "elem", + elem: accentBody, + wrapperClasses: ["svg-align"] + }, { + type: "kern", + size: kern + }, { + type: "elem", + elem: innerGroup + }] + }, options); + return buildCommon.makeSpan(["mord", "accentunder"], [vlist], options); + }, + mathmlBuilder: function mathmlBuilder(group, options) { + var accentNode = stretchy.mathMLnode(group.label); + var node = new mathMLTree.MathNode("munder", [buildMathML_buildGroup(group.base, options), accentNode]); + node.setAttribute("accentunder", "true"); + return node; + } +}); +// CONCATENATED MODULE: ./src/functions/arrow.js + + + + + + + +// Helper function +var arrow_paddedNode = function paddedNode(group) { + var node = new mathMLTree.MathNode("mpadded", group ? [group] : []); + node.setAttribute("width", "+0.6em"); + node.setAttribute("lspace", "0.3em"); + return node; +}; // Stretchy arrows with an optional argument + + +defineFunction({ + type: "xArrow", + names: ["\\xleftarrow", "\\xrightarrow", "\\xLeftarrow", "\\xRightarrow", "\\xleftrightarrow", "\\xLeftrightarrow", "\\xhookleftarrow", "\\xhookrightarrow", "\\xmapsto", "\\xrightharpoondown", "\\xrightharpoonup", "\\xleftharpoondown", "\\xleftharpoonup", "\\xrightleftharpoons", "\\xleftrightharpoons", "\\xlongequal", "\\xtwoheadrightarrow", "\\xtwoheadleftarrow", "\\xtofrom", // The next 3 functions are here to support the mhchem extension. + // Direct use of these functions is discouraged and may break someday. + "\\xrightleftarrows", "\\xrightequilibrium", "\\xleftequilibrium"], + props: { + numArgs: 1, + numOptionalArgs: 1 + }, + handler: function handler(_ref, args, optArgs) { + var parser = _ref.parser, + funcName = _ref.funcName; + return { + type: "xArrow", + mode: parser.mode, + label: funcName, + body: args[0], + below: optArgs[0] + }; + }, + // Flow is unable to correctly infer the type of `group`, even though it's + // unamibiguously determined from the passed-in `type` above. + htmlBuilder: function htmlBuilder(group, options) { + var style = options.style; // Build the argument groups in the appropriate style. + // Ref: amsmath.dtx: \hbox{$\scriptstyle\mkern#3mu{#6}\mkern#4mu$}% + // Some groups can return document fragments. Handle those by wrapping + // them in a span. + + var newOptions = options.havingStyle(style.sup()); + var upperGroup = buildCommon.wrapFragment(buildHTML_buildGroup(group.body, newOptions, options), options); + upperGroup.classes.push("x-arrow-pad"); + var lowerGroup; + + if (group.below) { + // Build the lower group + newOptions = options.havingStyle(style.sub()); + lowerGroup = buildCommon.wrapFragment(buildHTML_buildGroup(group.below, newOptions, options), options); + lowerGroup.classes.push("x-arrow-pad"); + } + + var arrowBody = stretchy.svgSpan(group, options); // Re shift: Note that stretchy.svgSpan returned arrowBody.depth = 0. + // The point we want on the math axis is at 0.5 * arrowBody.height. + + var arrowShift = -options.fontMetrics().axisHeight + 0.5 * arrowBody.height; // 2 mu kern. Ref: amsmath.dtx: #7\if0#2\else\mkern#2mu\fi + + var upperShift = -options.fontMetrics().axisHeight - 0.5 * arrowBody.height - 0.111; // 0.111 em = 2 mu + + if (upperGroup.depth > 0.25 || group.label === "\\xleftequilibrium") { + upperShift -= upperGroup.depth; // shift up if depth encroaches + } // Generate the vlist + + + var vlist; + + if (lowerGroup) { + var lowerShift = -options.fontMetrics().axisHeight + lowerGroup.height + 0.5 * arrowBody.height + 0.111; + vlist = buildCommon.makeVList({ + positionType: "individualShift", + children: [{ + type: "elem", + elem: upperGroup, + shift: upperShift + }, { + type: "elem", + elem: arrowBody, + shift: arrowShift + }, { + type: "elem", + elem: lowerGroup, + shift: lowerShift + }] + }, options); + } else { + vlist = buildCommon.makeVList({ + positionType: "individualShift", + children: [{ + type: "elem", + elem: upperGroup, + shift: upperShift + }, { + type: "elem", + elem: arrowBody, + shift: arrowShift + }] + }, options); + } // $FlowFixMe: Replace this with passing "svg-align" into makeVList. + + + vlist.children[0].children[0].children[1].classes.push("svg-align"); + return buildCommon.makeSpan(["mrel", "x-arrow"], [vlist], options); + }, + mathmlBuilder: function mathmlBuilder(group, options) { + var arrowNode = stretchy.mathMLnode(group.label); + var node; + + if (group.body) { + var upperNode = arrow_paddedNode(buildMathML_buildGroup(group.body, options)); + + if (group.below) { + var lowerNode = arrow_paddedNode(buildMathML_buildGroup(group.below, options)); + node = new mathMLTree.MathNode("munderover", [arrowNode, lowerNode, upperNode]); + } else { + node = new mathMLTree.MathNode("mover", [arrowNode, upperNode]); + } + } else if (group.below) { + var _lowerNode = arrow_paddedNode(buildMathML_buildGroup(group.below, options)); + + node = new mathMLTree.MathNode("munder", [arrowNode, _lowerNode]); + } else { + // This should never happen. + // Parser.js throws an error if there is no argument. + node = arrow_paddedNode(); + node = new mathMLTree.MathNode("mover", [arrowNode, node]); + } + + return node; + } +}); +// CONCATENATED MODULE: ./src/functions/char.js + + + // \@char is an internal function that takes a grouped decimal argument like +// {123} and converts into symbol with code 123. It is used by the *macro* +// \char defined in macros.js. + +defineFunction({ + type: "textord", + names: ["\\@char"], + props: { + numArgs: 1, + allowedInText: true + }, + handler: function handler(_ref, args) { + var parser = _ref.parser; + var arg = assertNodeType(args[0], "ordgroup"); + var group = arg.body; + var number = ""; + + for (var i = 0; i < group.length; i++) { + var node = assertNodeType(group[i], "textord"); + number += node.text; + } + + var code = parseInt(number); + + if (isNaN(code)) { + throw new src_ParseError("\\@char has non-numeric argument " + number); + } + + return { + type: "textord", + mode: parser.mode, + text: String.fromCharCode(code) + }; + } +}); +// CONCATENATED MODULE: ./src/functions/color.js + + + + + + + +var color_htmlBuilder = function htmlBuilder(group, options) { + var elements = buildHTML_buildExpression(group.body, options.withColor(group.color), false); // \color isn't supposed to affect the type of the elements it contains. + // To accomplish this, we wrap the results in a fragment, so the inner + // elements will be able to directly interact with their neighbors. For + // example, `\color{red}{2 +} 3` has the same spacing as `2 + 3` + + return buildCommon.makeFragment(elements); +}; + +var color_mathmlBuilder = function mathmlBuilder(group, options) { + var inner = buildMathML_buildExpression(group.body, options.withColor(group.color)); + var node = new mathMLTree.MathNode("mstyle", inner); + node.setAttribute("mathcolor", group.color); + return node; +}; + +defineFunction({ + type: "color", + names: ["\\textcolor"], + props: { + numArgs: 2, + allowedInText: true, + greediness: 3, + argTypes: ["color", "original"] + }, + handler: function handler(_ref, args) { + var parser = _ref.parser; + var color = assertNodeType(args[0], "color-token").color; + var body = args[1]; + return { + type: "color", + mode: parser.mode, + color: color, + body: ordargument(body) + }; + }, + htmlBuilder: color_htmlBuilder, + mathmlBuilder: color_mathmlBuilder +}); +defineFunction({ + type: "color", + names: ["\\color"], + props: { + numArgs: 1, + allowedInText: true, + greediness: 3, + argTypes: ["color"] + }, + handler: function handler(_ref2, args) { + var parser = _ref2.parser, + breakOnTokenText = _ref2.breakOnTokenText; + var color = assertNodeType(args[0], "color-token").color; // Set macro \current@color in current namespace to store the current + // color, mimicking the behavior of color.sty. + // This is currently used just to correctly color a \right + // that follows a \color command. + + parser.gullet.macros.set("\\current@color", color); // Parse out the implicit body that should be colored. + + var body = parser.parseExpression(true, breakOnTokenText); + return { + type: "color", + mode: parser.mode, + color: color, + body: body + }; + }, + htmlBuilder: color_htmlBuilder, + mathmlBuilder: color_mathmlBuilder +}); +// CONCATENATED MODULE: ./src/functions/cr.js +// Row breaks within tabular environments, and line breaks at top level + + + + + + // \\ is a macro mapping to either \cr or \newline. Because they have the +// same signature, we implement them as one megafunction, with newRow +// indicating whether we're in the \cr case, and newLine indicating whether +// to break the line in the \newline case. + +defineFunction({ + type: "cr", + names: ["\\cr", "\\newline"], + props: { + numArgs: 0, + numOptionalArgs: 1, + argTypes: ["size"], + allowedInText: true + }, + handler: function handler(_ref, args, optArgs) { + var parser = _ref.parser, + funcName = _ref.funcName; + var size = optArgs[0]; + var newRow = funcName === "\\cr"; + var newLine = false; + + if (!newRow) { + if (parser.settings.displayMode && parser.settings.useStrictBehavior("newLineInDisplayMode", "In LaTeX, \\\\ or \\newline " + "does nothing in display mode")) { + newLine = false; + } else { + newLine = true; + } + } + + return { + type: "cr", + mode: parser.mode, + newLine: newLine, + newRow: newRow, + size: size && assertNodeType(size, "size").value + }; + }, + // The following builders are called only at the top level, + // not within tabular/array environments. + htmlBuilder: function htmlBuilder(group, options) { + if (group.newRow) { + throw new src_ParseError("\\cr valid only within a tabular/array environment"); + } + + var span = buildCommon.makeSpan(["mspace"], [], options); + + if (group.newLine) { + span.classes.push("newline"); + + if (group.size) { + span.style.marginTop = units_calculateSize(group.size, options) + "em"; + } + } + + return span; + }, + mathmlBuilder: function mathmlBuilder(group, options) { + var node = new mathMLTree.MathNode("mspace"); + + if (group.newLine) { + node.setAttribute("linebreak", "newline"); + + if (group.size) { + node.setAttribute("height", units_calculateSize(group.size, options) + "em"); + } + } + + return node; + } +}); +// CONCATENATED MODULE: ./src/functions/def.js + + + +var globalMap = { + "\\global": "\\global", + "\\long": "\\\\globallong", + "\\\\globallong": "\\\\globallong", + "\\def": "\\gdef", + "\\gdef": "\\gdef", + "\\edef": "\\xdef", + "\\xdef": "\\xdef", + "\\let": "\\\\globallet", + "\\futurelet": "\\\\globalfuture" +}; + +var def_checkControlSequence = function checkControlSequence(tok) { + var name = tok.text; + + if (/^(?:[\\{}$&#^_]|EOF)$/.test(name)) { + throw new src_ParseError("Expected a control sequence", tok); + } + + return name; +}; + +var getRHS = function getRHS(parser) { + var tok = parser.gullet.popToken(); + + if (tok.text === "=") { + // consume optional equals + tok = parser.gullet.popToken(); + + if (tok.text === " ") { + // consume one optional space + tok = parser.gullet.popToken(); + } + } + + return tok; +}; + +var letCommand = function letCommand(parser, name, tok, global) { + var macro = parser.gullet.macros.get(tok.text); + + if (macro == null) { + // don't expand it later even if a macro with the same name is defined + // e.g., \let\foo=\frac \def\frac{\relax} \frac12 + tok.noexpand = true; + macro = { + tokens: [tok], + numArgs: 0, + // reproduce the same behavior in expansion + unexpandable: !parser.gullet.isExpandable(tok.text) + }; + } + + parser.gullet.macros.set(name, macro, global); +}; // -> | +// -> |\global +// -> | +// -> \global|\long|\outer + + +defineFunction({ + type: "internal", + names: ["\\global", "\\long", "\\\\globallong"], + props: { + numArgs: 0, + allowedInText: true + }, + handler: function handler(_ref) { + var parser = _ref.parser, + funcName = _ref.funcName; + parser.consumeSpaces(); + var token = parser.fetch(); + + if (globalMap[token.text]) { + // KaTeX doesn't have \par, so ignore \long + if (funcName === "\\global" || funcName === "\\\\globallong") { + token.text = globalMap[token.text]; + } + + return assertNodeType(parser.parseFunction(), "internal"); + } + + throw new src_ParseError("Invalid token after macro prefix", token); + } +}); // Basic support for macro definitions: \def, \gdef, \edef, \xdef +// -> +// -> \def|\gdef|\edef|\xdef +// -> + +defineFunction({ + type: "internal", + names: ["\\def", "\\gdef", "\\edef", "\\xdef"], + props: { + numArgs: 0, + allowedInText: true + }, + handler: function handler(_ref2) { + var parser = _ref2.parser, + funcName = _ref2.funcName; + var arg = parser.gullet.consumeArgs(1)[0]; + + if (arg.length !== 1) { + throw new src_ParseError("\\gdef's first argument must be a macro name"); + } + + var name = arg[0].text; // Count argument specifiers, and check they are in the order #1 #2 ... + + var numArgs = 0; + arg = parser.gullet.consumeArgs(1)[0]; + + while (arg.length === 1 && arg[0].text === "#") { + arg = parser.gullet.consumeArgs(1)[0]; + + if (arg.length !== 1) { + throw new src_ParseError("Invalid argument number length \"" + arg.length + "\""); + } + + if (!/^[1-9]$/.test(arg[0].text)) { + throw new src_ParseError("Invalid argument number \"" + arg[0].text + "\""); + } + + numArgs++; + + if (parseInt(arg[0].text) !== numArgs) { + throw new src_ParseError("Argument number \"" + arg[0].text + "\" out of order"); + } + + arg = parser.gullet.consumeArgs(1)[0]; + } + + if (funcName === "\\edef" || funcName === "\\xdef") { + arg = parser.gullet.expandTokens(arg); + arg.reverse(); // to fit in with stack order + } // Final arg is the expansion of the macro + + + parser.gullet.macros.set(name, { + tokens: arg, + numArgs: numArgs + }, funcName === globalMap[funcName]); + return { + type: "internal", + mode: parser.mode + }; + } +}); // -> +// -> \futurelet +// | \let +// -> |= + +defineFunction({ + type: "internal", + names: ["\\let", "\\\\globallet"], + props: { + numArgs: 0, + allowedInText: true + }, + handler: function handler(_ref3) { + var parser = _ref3.parser, + funcName = _ref3.funcName; + var name = def_checkControlSequence(parser.gullet.popToken()); + parser.gullet.consumeSpaces(); + var tok = getRHS(parser); + letCommand(parser, name, tok, funcName === "\\\\globallet"); + return { + type: "internal", + mode: parser.mode + }; + } +}); // ref: https://www.tug.org/TUGboat/tb09-3/tb22bechtolsheim.pdf + +defineFunction({ + type: "internal", + names: ["\\futurelet", "\\\\globalfuture"], + props: { + numArgs: 0, + allowedInText: true + }, + handler: function handler(_ref4) { + var parser = _ref4.parser, + funcName = _ref4.funcName; + var name = def_checkControlSequence(parser.gullet.popToken()); + var middle = parser.gullet.popToken(); + var tok = parser.gullet.popToken(); + letCommand(parser, name, tok, funcName === "\\\\globalfuture"); + parser.gullet.pushToken(tok); + parser.gullet.pushToken(middle); + return { + type: "internal", + mode: parser.mode + }; + } +}); +// CONCATENATED MODULE: ./src/delimiter.js +/** + * This file deals with creating delimiters of various sizes. The TeXbook + * discusses these routines on page 441-442, in the "Another subroutine sets box + * x to a specified variable delimiter" paragraph. + * + * There are three main routines here. `makeSmallDelim` makes a delimiter in the + * normal font, but in either text, script, or scriptscript style. + * `makeLargeDelim` makes a delimiter in textstyle, but in one of the Size1, + * Size2, Size3, or Size4 fonts. `makeStackedDelim` makes a delimiter out of + * smaller pieces that are stacked on top of one another. + * + * The functions take a parameter `center`, which determines if the delimiter + * should be centered around the axis. + * + * Then, there are three exposed functions. `sizedDelim` makes a delimiter in + * one of the given sizes. This is used for things like `\bigl`. + * `customSizedDelim` makes a delimiter with a given total height+depth. It is + * called in places like `\sqrt`. `leftRightDelim` makes an appropriate + * delimiter which surrounds an expression of a given height an depth. It is + * used in `\left` and `\right`. + */ + + + + + + + + + +/** + * Get the metrics for a given symbol and font, after transformation (i.e. + * after following replacement from symbols.js) + */ +var delimiter_getMetrics = function getMetrics(symbol, font, mode) { + var replace = src_symbols.math[symbol] && src_symbols.math[symbol].replace; + var metrics = getCharacterMetrics(replace || symbol, font, mode); + + if (!metrics) { + throw new Error("Unsupported symbol " + symbol + " and font size " + font + "."); + } + + return metrics; +}; +/** + * Puts a delimiter span in a given style, and adds appropriate height, depth, + * and maxFontSizes. + */ + + +var delimiter_styleWrap = function styleWrap(delim, toStyle, options, classes) { + var newOptions = options.havingBaseStyle(toStyle); + var span = buildCommon.makeSpan(classes.concat(newOptions.sizingClasses(options)), [delim], options); + var delimSizeMultiplier = newOptions.sizeMultiplier / options.sizeMultiplier; + span.height *= delimSizeMultiplier; + span.depth *= delimSizeMultiplier; + span.maxFontSize = newOptions.sizeMultiplier; + return span; +}; + +var centerSpan = function centerSpan(span, options, style) { + var newOptions = options.havingBaseStyle(style); + var shift = (1 - options.sizeMultiplier / newOptions.sizeMultiplier) * options.fontMetrics().axisHeight; + span.classes.push("delimcenter"); + span.style.top = shift + "em"; + span.height -= shift; + span.depth += shift; +}; +/** + * Makes a small delimiter. This is a delimiter that comes in the Main-Regular + * font, but is restyled to either be in textstyle, scriptstyle, or + * scriptscriptstyle. + */ + + +var delimiter_makeSmallDelim = function makeSmallDelim(delim, style, center, options, mode, classes) { + var text = buildCommon.makeSymbol(delim, "Main-Regular", mode, options); + var span = delimiter_styleWrap(text, style, options, classes); + + if (center) { + centerSpan(span, options, style); + } + + return span; +}; +/** + * Builds a symbol in the given font size (note size is an integer) + */ + + +var delimiter_mathrmSize = function mathrmSize(value, size, mode, options) { + return buildCommon.makeSymbol(value, "Size" + size + "-Regular", mode, options); +}; +/** + * Makes a large delimiter. This is a delimiter that comes in the Size1, Size2, + * Size3, or Size4 fonts. It is always rendered in textstyle. + */ + + +var delimiter_makeLargeDelim = function makeLargeDelim(delim, size, center, options, mode, classes) { + var inner = delimiter_mathrmSize(delim, size, mode, options); + var span = delimiter_styleWrap(buildCommon.makeSpan(["delimsizing", "size" + size], [inner], options), src_Style.TEXT, options, classes); + + if (center) { + centerSpan(span, options, src_Style.TEXT); + } + + return span; +}; +/** + * Make an inner span with the given offset and in the given font. This is used + * in `makeStackedDelim` to make the stacking pieces for the delimiter. + */ + + +var delimiter_makeInner = function makeInner(symbol, font, mode) { + var sizeClass; // Apply the correct CSS class to choose the right font. + + if (font === "Size1-Regular") { + sizeClass = "delim-size1"; + } else + /* if (font === "Size4-Regular") */ + { + sizeClass = "delim-size4"; + } + + var inner = buildCommon.makeSpan(["delimsizinginner", sizeClass], [buildCommon.makeSpan([], [buildCommon.makeSymbol(symbol, font, mode)])]); // Since this will be passed into `makeVList` in the end, wrap the element + // in the appropriate tag that VList uses. + + return { + type: "elem", + elem: inner + }; +}; // Helper for makeStackedDelim + + +var lap = { + type: "kern", + size: -0.005 +}; +/** + * Make a stacked delimiter out of a given delimiter, with the total height at + * least `heightTotal`. This routine is mentioned on page 442 of the TeXbook. + */ + +var delimiter_makeStackedDelim = function makeStackedDelim(delim, heightTotal, center, options, mode, classes) { + // There are four parts, the top, an optional middle, a repeated part, and a + // bottom. + var top; + var middle; + var repeat; + var bottom; + top = repeat = bottom = delim; + middle = null; // Also keep track of what font the delimiters are in + + var font = "Size1-Regular"; // We set the parts and font based on the symbol. Note that we use + // '\u23d0' instead of '|' and '\u2016' instead of '\\|' for the + // repeats of the arrows + + if (delim === "\\uparrow") { + repeat = bottom = "\u23D0"; + } else if (delim === "\\Uparrow") { + repeat = bottom = "\u2016"; + } else if (delim === "\\downarrow") { + top = repeat = "\u23D0"; + } else if (delim === "\\Downarrow") { + top = repeat = "\u2016"; + } else if (delim === "\\updownarrow") { + top = "\\uparrow"; + repeat = "\u23D0"; + bottom = "\\downarrow"; + } else if (delim === "\\Updownarrow") { + top = "\\Uparrow"; + repeat = "\u2016"; + bottom = "\\Downarrow"; + } else if (delim === "[" || delim === "\\lbrack") { + top = "\u23A1"; + repeat = "\u23A2"; + bottom = "\u23A3"; + font = "Size4-Regular"; + } else if (delim === "]" || delim === "\\rbrack") { + top = "\u23A4"; + repeat = "\u23A5"; + bottom = "\u23A6"; + font = "Size4-Regular"; + } else if (delim === "\\lfloor" || delim === "\u230A") { + repeat = top = "\u23A2"; + bottom = "\u23A3"; + font = "Size4-Regular"; + } else if (delim === "\\lceil" || delim === "\u2308") { + top = "\u23A1"; + repeat = bottom = "\u23A2"; + font = "Size4-Regular"; + } else if (delim === "\\rfloor" || delim === "\u230B") { + repeat = top = "\u23A5"; + bottom = "\u23A6"; + font = "Size4-Regular"; + } else if (delim === "\\rceil" || delim === "\u2309") { + top = "\u23A4"; + repeat = bottom = "\u23A5"; + font = "Size4-Regular"; + } else if (delim === "(" || delim === "\\lparen") { + top = "\u239B"; + repeat = "\u239C"; + bottom = "\u239D"; + font = "Size4-Regular"; + } else if (delim === ")" || delim === "\\rparen") { + top = "\u239E"; + repeat = "\u239F"; + bottom = "\u23A0"; + font = "Size4-Regular"; + } else if (delim === "\\{" || delim === "\\lbrace") { + top = "\u23A7"; + middle = "\u23A8"; + bottom = "\u23A9"; + repeat = "\u23AA"; + font = "Size4-Regular"; + } else if (delim === "\\}" || delim === "\\rbrace") { + top = "\u23AB"; + middle = "\u23AC"; + bottom = "\u23AD"; + repeat = "\u23AA"; + font = "Size4-Regular"; + } else if (delim === "\\lgroup" || delim === "\u27EE") { + top = "\u23A7"; + bottom = "\u23A9"; + repeat = "\u23AA"; + font = "Size4-Regular"; + } else if (delim === "\\rgroup" || delim === "\u27EF") { + top = "\u23AB"; + bottom = "\u23AD"; + repeat = "\u23AA"; + font = "Size4-Regular"; + } else if (delim === "\\lmoustache" || delim === "\u23B0") { + top = "\u23A7"; + bottom = "\u23AD"; + repeat = "\u23AA"; + font = "Size4-Regular"; + } else if (delim === "\\rmoustache" || delim === "\u23B1") { + top = "\u23AB"; + bottom = "\u23A9"; + repeat = "\u23AA"; + font = "Size4-Regular"; + } // Get the metrics of the four sections + + + var topMetrics = delimiter_getMetrics(top, font, mode); + var topHeightTotal = topMetrics.height + topMetrics.depth; + var repeatMetrics = delimiter_getMetrics(repeat, font, mode); + var repeatHeightTotal = repeatMetrics.height + repeatMetrics.depth; + var bottomMetrics = delimiter_getMetrics(bottom, font, mode); + var bottomHeightTotal = bottomMetrics.height + bottomMetrics.depth; + var middleHeightTotal = 0; + var middleFactor = 1; + + if (middle !== null) { + var middleMetrics = delimiter_getMetrics(middle, font, mode); + middleHeightTotal = middleMetrics.height + middleMetrics.depth; + middleFactor = 2; // repeat symmetrically above and below middle + } // Calcuate the minimal height that the delimiter can have. + // It is at least the size of the top, bottom, and optional middle combined. + + + var minHeight = topHeightTotal + bottomHeightTotal + middleHeightTotal; // Compute the number of copies of the repeat symbol we will need + + var repeatCount = Math.max(0, Math.ceil((heightTotal - minHeight) / (middleFactor * repeatHeightTotal))); // Compute the total height of the delimiter including all the symbols + + var realHeightTotal = minHeight + repeatCount * middleFactor * repeatHeightTotal; // The center of the delimiter is placed at the center of the axis. Note + // that in this context, "center" means that the delimiter should be + // centered around the axis in the current style, while normally it is + // centered around the axis in textstyle. + + var axisHeight = options.fontMetrics().axisHeight; + + if (center) { + axisHeight *= options.sizeMultiplier; + } // Calculate the depth + + + var depth = realHeightTotal / 2 - axisHeight; // This function differs from the TeX procedure in one way. + // We shift each repeat element downwards by 0.005em, to prevent a gap + // due to browser floating point rounding error. + // Then, at the last element-to element joint, we add one extra repeat + // element to cover the gap created by the shifts. + // Find the shift needed to align the upper end of the extra element at a point + // 0.005em above the lower end of the top element. + + var shiftOfExtraElement = (repeatCount + 1) * 0.005 - repeatHeightTotal; // Now, we start building the pieces that will go into the vlist + // Keep a list of the inner pieces + + var inners = []; // Add the bottom symbol + + inners.push(delimiter_makeInner(bottom, font, mode)); + + if (middle === null) { + // Add that many symbols + for (var i = 0; i < repeatCount; i++) { + inners.push(lap); // overlap + + inners.push(delimiter_makeInner(repeat, font, mode)); + } + } else { + // When there is a middle bit, we need the middle part and two repeated + // sections + for (var _i = 0; _i < repeatCount; _i++) { + inners.push(lap); + inners.push(delimiter_makeInner(repeat, font, mode)); + } // Insert one extra repeat element. + + + inners.push({ + type: "kern", + size: shiftOfExtraElement + }); + inners.push(delimiter_makeInner(repeat, font, mode)); + inners.push(lap); // Now insert the middle of the brace. + + inners.push(delimiter_makeInner(middle, font, mode)); + + for (var _i2 = 0; _i2 < repeatCount; _i2++) { + inners.push(lap); + inners.push(delimiter_makeInner(repeat, font, mode)); + } + } // To cover the gap create by the overlaps, insert one more repeat element, + // at a position that juts 0.005 above the bottom of the top element. + + + if ((repeat === "\u239C" || repeat === "\u239F") && repeatCount === 0) { + // Parentheses need a short repeat element in order to avoid an overrun. + // We'll make a 0.3em tall element from a SVG. + var overlap = buildCommon.svgData.leftParenInner[2] / 2; + inners.push({ + type: "kern", + size: -overlap + }); + var pathName = repeat === "\u239C" ? "leftParenInner" : "rightParenInner"; + var innerSpan = buildCommon.staticSvg(pathName, options); + inners.push({ + type: "elem", + elem: innerSpan + }); + inners.push({ + type: "kern", + size: -overlap + }); + } else { + inners.push({ + type: "kern", + size: shiftOfExtraElement + }); + inners.push(delimiter_makeInner(repeat, font, mode)); + inners.push(lap); + } // Add the top symbol + + + inners.push(delimiter_makeInner(top, font, mode)); // Finally, build the vlist + + var newOptions = options.havingBaseStyle(src_Style.TEXT); + var inner = buildCommon.makeVList({ + positionType: "bottom", + positionData: depth, + children: inners + }, newOptions); + return delimiter_styleWrap(buildCommon.makeSpan(["delimsizing", "mult"], [inner], newOptions), src_Style.TEXT, options, classes); +}; // All surds have 0.08em padding above the viniculum inside the SVG. +// That keeps browser span height rounding error from pinching the line. + + +var vbPad = 80; // padding above the surd, measured inside the viewBox. + +var emPad = 0.08; // padding, in ems, measured in the document. + +var delimiter_sqrtSvg = function sqrtSvg(sqrtName, height, viewBoxHeight, extraViniculum, options) { + var path = sqrtPath(sqrtName, extraViniculum, viewBoxHeight); + var pathNode = new domTree_PathNode(sqrtName, path); + var svg = new SvgNode([pathNode], { + // Note: 1000:1 ratio of viewBox to document em width. + "width": "400em", + "height": height + "em", + "viewBox": "0 0 400000 " + viewBoxHeight, + "preserveAspectRatio": "xMinYMin slice" + }); + return buildCommon.makeSvgSpan(["hide-tail"], [svg], options); +}; +/** + * Make a sqrt image of the given height, + */ + + +var makeSqrtImage = function makeSqrtImage(height, options) { + // Define a newOptions that removes the effect of size changes such as \Huge. + // We don't pick different a height surd for \Huge. For it, we scale up. + var newOptions = options.havingBaseSizing(); // Pick the desired surd glyph from a sequence of surds. + + var delim = traverseSequence("\\surd", height * newOptions.sizeMultiplier, stackLargeDelimiterSequence, newOptions); + var sizeMultiplier = newOptions.sizeMultiplier; // default + // The standard sqrt SVGs each have a 0.04em thick viniculum. + // If Settings.minRuleThickness is larger than that, we add extraViniculum. + + var extraViniculum = Math.max(0, options.minRuleThickness - options.fontMetrics().sqrtRuleThickness); // Create a span containing an SVG image of a sqrt symbol. + + var span; + var spanHeight = 0; + var texHeight = 0; + var viewBoxHeight = 0; + var advanceWidth; // We create viewBoxes with 80 units of "padding" above each surd. + // Then browser rounding error on the parent span height will not + // encroach on the ink of the viniculum. But that padding is not + // included in the TeX-like `height` used for calculation of + // vertical alignment. So texHeight = span.height < span.style.height. + + if (delim.type === "small") { + // Get an SVG that is derived from glyph U+221A in font KaTeX-Main. + // 1000 unit normal glyph height. + viewBoxHeight = 1000 + 1000 * extraViniculum + vbPad; + + if (height < 1.0) { + sizeMultiplier = 1.0; // mimic a \textfont radical + } else if (height < 1.4) { + sizeMultiplier = 0.7; // mimic a \scriptfont radical + } + + spanHeight = (1.0 + extraViniculum + emPad) / sizeMultiplier; + texHeight = (1.00 + extraViniculum) / sizeMultiplier; + span = delimiter_sqrtSvg("sqrtMain", spanHeight, viewBoxHeight, extraViniculum, options); + span.style.minWidth = "0.853em"; + advanceWidth = 0.833 / sizeMultiplier; // from the font. + } else if (delim.type === "large") { + // These SVGs come from fonts: KaTeX_Size1, _Size2, etc. + viewBoxHeight = (1000 + vbPad) * sizeToMaxHeight[delim.size]; + texHeight = (sizeToMaxHeight[delim.size] + extraViniculum) / sizeMultiplier; + spanHeight = (sizeToMaxHeight[delim.size] + extraViniculum + emPad) / sizeMultiplier; + span = delimiter_sqrtSvg("sqrtSize" + delim.size, spanHeight, viewBoxHeight, extraViniculum, options); + span.style.minWidth = "1.02em"; + advanceWidth = 1.0 / sizeMultiplier; // 1.0 from the font. + } else { + // Tall sqrt. In TeX, this would be stacked using multiple glyphs. + // We'll use a single SVG to accomplish the same thing. + spanHeight = height + extraViniculum + emPad; + texHeight = height + extraViniculum; + viewBoxHeight = Math.floor(1000 * height + extraViniculum) + vbPad; + span = delimiter_sqrtSvg("sqrtTall", spanHeight, viewBoxHeight, extraViniculum, options); + span.style.minWidth = "0.742em"; + advanceWidth = 1.056; + } + + span.height = texHeight; + span.style.height = spanHeight + "em"; + return { + span: span, + advanceWidth: advanceWidth, + // Calculate the actual line width. + // This actually should depend on the chosen font -- e.g. \boldmath + // should use the thicker surd symbols from e.g. KaTeX_Main-Bold, and + // have thicker rules. + ruleWidth: (options.fontMetrics().sqrtRuleThickness + extraViniculum) * sizeMultiplier + }; +}; // There are three kinds of delimiters, delimiters that stack when they become +// too large + + +var stackLargeDelimiters = ["(", "\\lparen", ")", "\\rparen", "[", "\\lbrack", "]", "\\rbrack", "\\{", "\\lbrace", "\\}", "\\rbrace", "\\lfloor", "\\rfloor", "\u230A", "\u230B", "\\lceil", "\\rceil", "\u2308", "\u2309", "\\surd"]; // delimiters that always stack + +var stackAlwaysDelimiters = ["\\uparrow", "\\downarrow", "\\updownarrow", "\\Uparrow", "\\Downarrow", "\\Updownarrow", "|", "\\|", "\\vert", "\\Vert", "\\lvert", "\\rvert", "\\lVert", "\\rVert", "\\lgroup", "\\rgroup", "\u27EE", "\u27EF", "\\lmoustache", "\\rmoustache", "\u23B0", "\u23B1"]; // and delimiters that never stack + +var stackNeverDelimiters = ["<", ">", "\\langle", "\\rangle", "/", "\\backslash", "\\lt", "\\gt"]; // Metrics of the different sizes. Found by looking at TeX's output of +// $\bigl| // \Bigl| \biggl| \Biggl| \showlists$ +// Used to create stacked delimiters of appropriate sizes in makeSizedDelim. + +var sizeToMaxHeight = [0, 1.2, 1.8, 2.4, 3.0]; +/** + * Used to create a delimiter of a specific size, where `size` is 1, 2, 3, or 4. + */ + +var delimiter_makeSizedDelim = function makeSizedDelim(delim, size, options, mode, classes) { + // < and > turn into \langle and \rangle in delimiters + if (delim === "<" || delim === "\\lt" || delim === "\u27E8") { + delim = "\\langle"; + } else if (delim === ">" || delim === "\\gt" || delim === "\u27E9") { + delim = "\\rangle"; + } // Sized delimiters are never centered. + + + if (utils.contains(stackLargeDelimiters, delim) || utils.contains(stackNeverDelimiters, delim)) { + return delimiter_makeLargeDelim(delim, size, false, options, mode, classes); + } else if (utils.contains(stackAlwaysDelimiters, delim)) { + return delimiter_makeStackedDelim(delim, sizeToMaxHeight[size], false, options, mode, classes); + } else { + throw new src_ParseError("Illegal delimiter: '" + delim + "'"); + } +}; +/** + * There are three different sequences of delimiter sizes that the delimiters + * follow depending on the kind of delimiter. This is used when creating custom + * sized delimiters to decide whether to create a small, large, or stacked + * delimiter. + * + * In real TeX, these sequences aren't explicitly defined, but are instead + * defined inside the font metrics. Since there are only three sequences that + * are possible for the delimiters that TeX defines, it is easier to just encode + * them explicitly here. + */ + + +// Delimiters that never stack try small delimiters and large delimiters only +var stackNeverDelimiterSequence = [{ + type: "small", + style: src_Style.SCRIPTSCRIPT +}, { + type: "small", + style: src_Style.SCRIPT +}, { + type: "small", + style: src_Style.TEXT +}, { + type: "large", + size: 1 +}, { + type: "large", + size: 2 +}, { + type: "large", + size: 3 +}, { + type: "large", + size: 4 +}]; // Delimiters that always stack try the small delimiters first, then stack + +var stackAlwaysDelimiterSequence = [{ + type: "small", + style: src_Style.SCRIPTSCRIPT +}, { + type: "small", + style: src_Style.SCRIPT +}, { + type: "small", + style: src_Style.TEXT +}, { + type: "stack" +}]; // Delimiters that stack when large try the small and then large delimiters, and +// stack afterwards + +var stackLargeDelimiterSequence = [{ + type: "small", + style: src_Style.SCRIPTSCRIPT +}, { + type: "small", + style: src_Style.SCRIPT +}, { + type: "small", + style: src_Style.TEXT +}, { + type: "large", + size: 1 +}, { + type: "large", + size: 2 +}, { + type: "large", + size: 3 +}, { + type: "large", + size: 4 +}, { + type: "stack" +}]; +/** + * Get the font used in a delimiter based on what kind of delimiter it is. + * TODO(#963) Use more specific font family return type once that is introduced. + */ + +var delimTypeToFont = function delimTypeToFont(type) { + if (type.type === "small") { + return "Main-Regular"; + } else if (type.type === "large") { + return "Size" + type.size + "-Regular"; + } else if (type.type === "stack") { + return "Size4-Regular"; + } else { + throw new Error("Add support for delim type '" + type.type + "' here."); + } +}; +/** + * Traverse a sequence of types of delimiters to decide what kind of delimiter + * should be used to create a delimiter of the given height+depth. + */ + + +var traverseSequence = function traverseSequence(delim, height, sequence, options) { + // Here, we choose the index we should start at in the sequences. In smaller + // sizes (which correspond to larger numbers in style.size) we start earlier + // in the sequence. Thus, scriptscript starts at index 3-3=0, script starts + // at index 3-2=1, text starts at 3-1=2, and display starts at min(2,3-0)=2 + var start = Math.min(2, 3 - options.style.size); + + for (var i = start; i < sequence.length; i++) { + if (sequence[i].type === "stack") { + // This is always the last delimiter, so we just break the loop now. + break; + } + + var metrics = delimiter_getMetrics(delim, delimTypeToFont(sequence[i]), "math"); + var heightDepth = metrics.height + metrics.depth; // Small delimiters are scaled down versions of the same font, so we + // account for the style change size. + + if (sequence[i].type === "small") { + var newOptions = options.havingBaseStyle(sequence[i].style); + heightDepth *= newOptions.sizeMultiplier; + } // Check if the delimiter at this size works for the given height. + + + if (heightDepth > height) { + return sequence[i]; + } + } // If we reached the end of the sequence, return the last sequence element. + + + return sequence[sequence.length - 1]; +}; +/** + * Make a delimiter of a given height+depth, with optional centering. Here, we + * traverse the sequences, and create a delimiter that the sequence tells us to. + */ + + +var delimiter_makeCustomSizedDelim = function makeCustomSizedDelim(delim, height, center, options, mode, classes) { + if (delim === "<" || delim === "\\lt" || delim === "\u27E8") { + delim = "\\langle"; + } else if (delim === ">" || delim === "\\gt" || delim === "\u27E9") { + delim = "\\rangle"; + } // Decide what sequence to use + + + var sequence; + + if (utils.contains(stackNeverDelimiters, delim)) { + sequence = stackNeverDelimiterSequence; + } else if (utils.contains(stackLargeDelimiters, delim)) { + sequence = stackLargeDelimiterSequence; + } else { + sequence = stackAlwaysDelimiterSequence; + } // Look through the sequence + + + var delimType = traverseSequence(delim, height, sequence, options); // Get the delimiter from font glyphs. + // Depending on the sequence element we decided on, call the + // appropriate function. + + if (delimType.type === "small") { + return delimiter_makeSmallDelim(delim, delimType.style, center, options, mode, classes); + } else if (delimType.type === "large") { + return delimiter_makeLargeDelim(delim, delimType.size, center, options, mode, classes); + } else + /* if (delimType.type === "stack") */ + { + return delimiter_makeStackedDelim(delim, height, center, options, mode, classes); + } +}; +/** + * Make a delimiter for use with `\left` and `\right`, given a height and depth + * of an expression that the delimiters surround. + */ + + +var makeLeftRightDelim = function makeLeftRightDelim(delim, height, depth, options, mode, classes) { + // We always center \left/\right delimiters, so the axis is always shifted + var axisHeight = options.fontMetrics().axisHeight * options.sizeMultiplier; // Taken from TeX source, tex.web, function make_left_right + + var delimiterFactor = 901; + var delimiterExtend = 5.0 / options.fontMetrics().ptPerEm; + var maxDistFromAxis = Math.max(height - axisHeight, depth + axisHeight); + var totalHeight = Math.max( // In real TeX, calculations are done using integral values which are + // 65536 per pt, or 655360 per em. So, the division here truncates in + // TeX but doesn't here, producing different results. If we wanted to + // exactly match TeX's calculation, we could do + // Math.floor(655360 * maxDistFromAxis / 500) * + // delimiterFactor / 655360 + // (To see the difference, compare + // x^{x^{\left(\rule{0.1em}{0.68em}\right)}} + // in TeX and KaTeX) + maxDistFromAxis / 500 * delimiterFactor, 2 * maxDistFromAxis - delimiterExtend); // Finally, we defer to `makeCustomSizedDelim` with our calculated total + // height + + return delimiter_makeCustomSizedDelim(delim, totalHeight, true, options, mode, classes); +}; + +/* harmony default export */ var delimiter = ({ + sqrtImage: makeSqrtImage, + sizedDelim: delimiter_makeSizedDelim, + customSizedDelim: delimiter_makeCustomSizedDelim, + leftRightDelim: makeLeftRightDelim +}); +// CONCATENATED MODULE: ./src/functions/delimsizing.js + + + + + + + + + +// Extra data needed for the delimiter handler down below +var delimiterSizes = { + "\\bigl": { + mclass: "mopen", + size: 1 + }, + "\\Bigl": { + mclass: "mopen", + size: 2 + }, + "\\biggl": { + mclass: "mopen", + size: 3 + }, + "\\Biggl": { + mclass: "mopen", + size: 4 + }, + "\\bigr": { + mclass: "mclose", + size: 1 + }, + "\\Bigr": { + mclass: "mclose", + size: 2 + }, + "\\biggr": { + mclass: "mclose", + size: 3 + }, + "\\Biggr": { + mclass: "mclose", + size: 4 + }, + "\\bigm": { + mclass: "mrel", + size: 1 + }, + "\\Bigm": { + mclass: "mrel", + size: 2 + }, + "\\biggm": { + mclass: "mrel", + size: 3 + }, + "\\Biggm": { + mclass: "mrel", + size: 4 + }, + "\\big": { + mclass: "mord", + size: 1 + }, + "\\Big": { + mclass: "mord", + size: 2 + }, + "\\bigg": { + mclass: "mord", + size: 3 + }, + "\\Bigg": { + mclass: "mord", + size: 4 + } +}; +var delimiters = ["(", "\\lparen", ")", "\\rparen", "[", "\\lbrack", "]", "\\rbrack", "\\{", "\\lbrace", "\\}", "\\rbrace", "\\lfloor", "\\rfloor", "\u230A", "\u230B", "\\lceil", "\\rceil", "\u2308", "\u2309", "<", ">", "\\langle", "\u27E8", "\\rangle", "\u27E9", "\\lt", "\\gt", "\\lvert", "\\rvert", "\\lVert", "\\rVert", "\\lgroup", "\\rgroup", "\u27EE", "\u27EF", "\\lmoustache", "\\rmoustache", "\u23B0", "\u23B1", "/", "\\backslash", "|", "\\vert", "\\|", "\\Vert", "\\uparrow", "\\Uparrow", "\\downarrow", "\\Downarrow", "\\updownarrow", "\\Updownarrow", "."]; + +// Delimiter functions +function checkDelimiter(delim, context) { + var symDelim = checkSymbolNodeType(delim); + + if (symDelim && utils.contains(delimiters, symDelim.text)) { + return symDelim; + } else if (symDelim) { + throw new src_ParseError("Invalid delimiter '" + symDelim.text + "' after '" + context.funcName + "'", delim); + } else { + throw new src_ParseError("Invalid delimiter type '" + delim.type + "'", delim); + } +} + +defineFunction({ + type: "delimsizing", + names: ["\\bigl", "\\Bigl", "\\biggl", "\\Biggl", "\\bigr", "\\Bigr", "\\biggr", "\\Biggr", "\\bigm", "\\Bigm", "\\biggm", "\\Biggm", "\\big", "\\Big", "\\bigg", "\\Bigg"], + props: { + numArgs: 1 + }, + handler: function handler(context, args) { + var delim = checkDelimiter(args[0], context); + return { + type: "delimsizing", + mode: context.parser.mode, + size: delimiterSizes[context.funcName].size, + mclass: delimiterSizes[context.funcName].mclass, + delim: delim.text + }; + }, + htmlBuilder: function htmlBuilder(group, options) { + if (group.delim === ".") { + // Empty delimiters still count as elements, even though they don't + // show anything. + return buildCommon.makeSpan([group.mclass]); + } // Use delimiter.sizedDelim to generate the delimiter. + + + return delimiter.sizedDelim(group.delim, group.size, options, group.mode, [group.mclass]); + }, + mathmlBuilder: function mathmlBuilder(group) { + var children = []; + + if (group.delim !== ".") { + children.push(buildMathML_makeText(group.delim, group.mode)); + } + + var node = new mathMLTree.MathNode("mo", children); + + if (group.mclass === "mopen" || group.mclass === "mclose") { + // Only some of the delimsizing functions act as fences, and they + // return "mopen" or "mclose" mclass. + node.setAttribute("fence", "true"); + } else { + // Explicitly disable fencing if it's not a fence, to override the + // defaults. + node.setAttribute("fence", "false"); + } + + return node; + } +}); + +function assertParsed(group) { + if (!group.body) { + throw new Error("Bug: The leftright ParseNode wasn't fully parsed."); + } +} + +defineFunction({ + type: "leftright-right", + names: ["\\right"], + props: { + numArgs: 1 + }, + handler: function handler(context, args) { + // \left case below triggers parsing of \right in + // `const right = parser.parseFunction();` + // uses this return value. + var color = context.parser.gullet.macros.get("\\current@color"); + + if (color && typeof color !== "string") { + throw new src_ParseError("\\current@color set to non-string in \\right"); + } + + return { + type: "leftright-right", + mode: context.parser.mode, + delim: checkDelimiter(args[0], context).text, + color: color // undefined if not set via \color + + }; + } +}); +defineFunction({ + type: "leftright", + names: ["\\left"], + props: { + numArgs: 1 + }, + handler: function handler(context, args) { + var delim = checkDelimiter(args[0], context); + var parser = context.parser; // Parse out the implicit body + + ++parser.leftrightDepth; // parseExpression stops before '\\right' + + var body = parser.parseExpression(false); + --parser.leftrightDepth; // Check the next token + + parser.expect("\\right", false); + var right = assertNodeType(parser.parseFunction(), "leftright-right"); + return { + type: "leftright", + mode: parser.mode, + body: body, + left: delim.text, + right: right.delim, + rightColor: right.color + }; + }, + htmlBuilder: function htmlBuilder(group, options) { + assertParsed(group); // Build the inner expression + + var inner = buildHTML_buildExpression(group.body, options, true, ["mopen", "mclose"]); + var innerHeight = 0; + var innerDepth = 0; + var hadMiddle = false; // Calculate its height and depth + + for (var i = 0; i < inner.length; i++) { + // Property `isMiddle` not defined on `span`. See comment in + // "middle"'s htmlBuilder. + // $FlowFixMe + if (inner[i].isMiddle) { + hadMiddle = true; + } else { + innerHeight = Math.max(inner[i].height, innerHeight); + innerDepth = Math.max(inner[i].depth, innerDepth); + } + } // The size of delimiters is the same, regardless of what style we are + // in. Thus, to correctly calculate the size of delimiter we need around + // a group, we scale down the inner size based on the size. + + + innerHeight *= options.sizeMultiplier; + innerDepth *= options.sizeMultiplier; + var leftDelim; + + if (group.left === ".") { + // Empty delimiters in \left and \right make null delimiter spaces. + leftDelim = makeNullDelimiter(options, ["mopen"]); + } else { + // Otherwise, use leftRightDelim to generate the correct sized + // delimiter. + leftDelim = delimiter.leftRightDelim(group.left, innerHeight, innerDepth, options, group.mode, ["mopen"]); + } // Add it to the beginning of the expression + + + inner.unshift(leftDelim); // Handle middle delimiters + + if (hadMiddle) { + for (var _i = 1; _i < inner.length; _i++) { + var middleDelim = inner[_i]; // Property `isMiddle` not defined on `span`. See comment in + // "middle"'s htmlBuilder. + // $FlowFixMe + + var isMiddle = middleDelim.isMiddle; + + if (isMiddle) { + // Apply the options that were active when \middle was called + inner[_i] = delimiter.leftRightDelim(isMiddle.delim, innerHeight, innerDepth, isMiddle.options, group.mode, []); + } + } + } + + var rightDelim; // Same for the right delimiter, but using color specified by \color + + if (group.right === ".") { + rightDelim = makeNullDelimiter(options, ["mclose"]); + } else { + var colorOptions = group.rightColor ? options.withColor(group.rightColor) : options; + rightDelim = delimiter.leftRightDelim(group.right, innerHeight, innerDepth, colorOptions, group.mode, ["mclose"]); + } // Add it to the end of the expression. + + + inner.push(rightDelim); + return buildCommon.makeSpan(["minner"], inner, options); + }, + mathmlBuilder: function mathmlBuilder(group, options) { + assertParsed(group); + var inner = buildMathML_buildExpression(group.body, options); + + if (group.left !== ".") { + var leftNode = new mathMLTree.MathNode("mo", [buildMathML_makeText(group.left, group.mode)]); + leftNode.setAttribute("fence", "true"); + inner.unshift(leftNode); + } + + if (group.right !== ".") { + var rightNode = new mathMLTree.MathNode("mo", [buildMathML_makeText(group.right, group.mode)]); + rightNode.setAttribute("fence", "true"); + + if (group.rightColor) { + rightNode.setAttribute("mathcolor", group.rightColor); + } + + inner.push(rightNode); + } + + return buildMathML_makeRow(inner); + } +}); +defineFunction({ + type: "middle", + names: ["\\middle"], + props: { + numArgs: 1 + }, + handler: function handler(context, args) { + var delim = checkDelimiter(args[0], context); + + if (!context.parser.leftrightDepth) { + throw new src_ParseError("\\middle without preceding \\left", delim); + } + + return { + type: "middle", + mode: context.parser.mode, + delim: delim.text + }; + }, + htmlBuilder: function htmlBuilder(group, options) { + var middleDelim; + + if (group.delim === ".") { + middleDelim = makeNullDelimiter(options, []); + } else { + middleDelim = delimiter.sizedDelim(group.delim, 1, options, group.mode, []); + var isMiddle = { + delim: group.delim, + options: options + }; // Property `isMiddle` not defined on `span`. It is only used in + // this file above. + // TODO: Fix this violation of the `span` type and possibly rename + // things since `isMiddle` sounds like a boolean, but is a struct. + // $FlowFixMe + + middleDelim.isMiddle = isMiddle; + } + + return middleDelim; + }, + mathmlBuilder: function mathmlBuilder(group, options) { + // A Firefox \middle will strech a character vertically only if it + // is in the fence part of the operator dictionary at: + // https://www.w3.org/TR/MathML3/appendixc.html. + // So we need to avoid U+2223 and use plain "|" instead. + var textNode = group.delim === "\\vert" || group.delim === "|" ? buildMathML_makeText("|", "text") : buildMathML_makeText(group.delim, group.mode); + var middleNode = new mathMLTree.MathNode("mo", [textNode]); + middleNode.setAttribute("fence", "true"); // MathML gives 5/18em spacing to each element. + // \middle should get delimiter spacing instead. + + middleNode.setAttribute("lspace", "0.05em"); + middleNode.setAttribute("rspace", "0.05em"); + return middleNode; + } +}); +// CONCATENATED MODULE: ./src/functions/enclose.js + + + + + + + + + +var enclose_htmlBuilder = function htmlBuilder(group, options) { + // \cancel, \bcancel, \xcancel, \sout, \fbox, \colorbox, \fcolorbox + // Some groups can return document fragments. Handle those by wrapping + // them in a span. + var inner = buildCommon.wrapFragment(buildHTML_buildGroup(group.body, options), options); + var label = group.label.substr(1); + var scale = options.sizeMultiplier; + var img; + var imgShift = 0; // In the LaTeX cancel package, line geometry is slightly different + // depending on whether the subject is wider than it is tall, or vice versa. + // We don't know the width of a group, so as a proxy, we test if + // the subject is a single character. This captures most of the + // subjects that should get the "tall" treatment. + + var isSingleChar = utils.isCharacterBox(group.body); + + if (label === "sout") { + img = buildCommon.makeSpan(["stretchy", "sout"]); + img.height = options.fontMetrics().defaultRuleThickness / scale; + imgShift = -0.5 * options.fontMetrics().xHeight; + } else { + // Add horizontal padding + if (/cancel/.test(label)) { + if (!isSingleChar) { + inner.classes.push("cancel-pad"); + } + } else { + inner.classes.push("boxpad"); + } // Add vertical padding + + + var vertPad = 0; + var ruleThickness = 0; // ref: cancel package: \advance\totalheight2\p@ % "+2" + + if (/box/.test(label)) { + ruleThickness = Math.max(options.fontMetrics().fboxrule, // default + options.minRuleThickness // User override. + ); + vertPad = options.fontMetrics().fboxsep + (label === "colorbox" ? 0 : ruleThickness); + } else { + vertPad = isSingleChar ? 0.2 : 0; + } + + img = stretchy.encloseSpan(inner, label, vertPad, options); + + if (/fbox|boxed|fcolorbox/.test(label)) { + img.style.borderStyle = "solid"; + img.style.borderWidth = ruleThickness + "em"; + } + + imgShift = inner.depth + vertPad; + + if (group.backgroundColor) { + img.style.backgroundColor = group.backgroundColor; + + if (group.borderColor) { + img.style.borderColor = group.borderColor; + } + } + } + + var vlist; + + if (group.backgroundColor) { + vlist = buildCommon.makeVList({ + positionType: "individualShift", + children: [// Put the color background behind inner; + { + type: "elem", + elem: img, + shift: imgShift + }, { + type: "elem", + elem: inner, + shift: 0 + }] + }, options); + } else { + vlist = buildCommon.makeVList({ + positionType: "individualShift", + children: [// Write the \cancel stroke on top of inner. + { + type: "elem", + elem: inner, + shift: 0 + }, { + type: "elem", + elem: img, + shift: imgShift, + wrapperClasses: /cancel/.test(label) ? ["svg-align"] : [] + }] + }, options); + } + + if (/cancel/.test(label)) { + // The cancel package documentation says that cancel lines add their height + // to the expression, but tests show that isn't how it actually works. + vlist.height = inner.height; + vlist.depth = inner.depth; + } + + if (/cancel/.test(label) && !isSingleChar) { + // cancel does not create horiz space for its line extension. + return buildCommon.makeSpan(["mord", "cancel-lap"], [vlist], options); + } else { + return buildCommon.makeSpan(["mord"], [vlist], options); + } +}; + +var enclose_mathmlBuilder = function mathmlBuilder(group, options) { + var fboxsep = 0; + var node = new mathMLTree.MathNode(group.label.indexOf("colorbox") > -1 ? "mpadded" : "menclose", [buildMathML_buildGroup(group.body, options)]); + + switch (group.label) { + case "\\cancel": + node.setAttribute("notation", "updiagonalstrike"); + break; + + case "\\bcancel": + node.setAttribute("notation", "downdiagonalstrike"); + break; + + case "\\sout": + node.setAttribute("notation", "horizontalstrike"); + break; + + case "\\fbox": + node.setAttribute("notation", "box"); + break; + + case "\\fcolorbox": + case "\\colorbox": + // doesn't have a good notation option. So use + // instead. Set some attributes that come included with . + fboxsep = options.fontMetrics().fboxsep * options.fontMetrics().ptPerEm; + node.setAttribute("width", "+" + 2 * fboxsep + "pt"); + node.setAttribute("height", "+" + 2 * fboxsep + "pt"); + node.setAttribute("lspace", fboxsep + "pt"); // + + node.setAttribute("voffset", fboxsep + "pt"); + + if (group.label === "\\fcolorbox") { + var thk = Math.max(options.fontMetrics().fboxrule, // default + options.minRuleThickness // user override + ); + node.setAttribute("style", "border: " + thk + "em solid " + String(group.borderColor)); + } + + break; + + case "\\xcancel": + node.setAttribute("notation", "updiagonalstrike downdiagonalstrike"); + break; + } + + if (group.backgroundColor) { + node.setAttribute("mathbackground", group.backgroundColor); + } + + return node; +}; + +defineFunction({ + type: "enclose", + names: ["\\colorbox"], + props: { + numArgs: 2, + allowedInText: true, + greediness: 3, + argTypes: ["color", "text"] + }, + handler: function handler(_ref, args, optArgs) { + var parser = _ref.parser, + funcName = _ref.funcName; + var color = assertNodeType(args[0], "color-token").color; + var body = args[1]; + return { + type: "enclose", + mode: parser.mode, + label: funcName, + backgroundColor: color, + body: body + }; + }, + htmlBuilder: enclose_htmlBuilder, + mathmlBuilder: enclose_mathmlBuilder +}); +defineFunction({ + type: "enclose", + names: ["\\fcolorbox"], + props: { + numArgs: 3, + allowedInText: true, + greediness: 3, + argTypes: ["color", "color", "text"] + }, + handler: function handler(_ref2, args, optArgs) { + var parser = _ref2.parser, + funcName = _ref2.funcName; + var borderColor = assertNodeType(args[0], "color-token").color; + var backgroundColor = assertNodeType(args[1], "color-token").color; + var body = args[2]; + return { + type: "enclose", + mode: parser.mode, + label: funcName, + backgroundColor: backgroundColor, + borderColor: borderColor, + body: body + }; + }, + htmlBuilder: enclose_htmlBuilder, + mathmlBuilder: enclose_mathmlBuilder +}); +defineFunction({ + type: "enclose", + names: ["\\fbox"], + props: { + numArgs: 1, + argTypes: ["hbox"], + allowedInText: true + }, + handler: function handler(_ref3, args) { + var parser = _ref3.parser; + return { + type: "enclose", + mode: parser.mode, + label: "\\fbox", + body: args[0] + }; + } +}); +defineFunction({ + type: "enclose", + names: ["\\cancel", "\\bcancel", "\\xcancel", "\\sout"], + props: { + numArgs: 1 + }, + handler: function handler(_ref4, args, optArgs) { + var parser = _ref4.parser, + funcName = _ref4.funcName; + var body = args[0]; + return { + type: "enclose", + mode: parser.mode, + label: funcName, + body: body + }; + }, + htmlBuilder: enclose_htmlBuilder, + mathmlBuilder: enclose_mathmlBuilder +}); +// CONCATENATED MODULE: ./src/defineEnvironment.js + + +/** + * All registered environments. + * `environments.js` exports this same dictionary again and makes it public. + * `Parser.js` requires this dictionary via `environments.js`. + */ +var _environments = {}; +function defineEnvironment(_ref) { + var type = _ref.type, + names = _ref.names, + props = _ref.props, + handler = _ref.handler, + htmlBuilder = _ref.htmlBuilder, + mathmlBuilder = _ref.mathmlBuilder; + // Set default values of environments. + var data = { + type: type, + numArgs: props.numArgs || 0, + greediness: 1, + allowedInText: false, + numOptionalArgs: 0, + handler: handler + }; + + for (var i = 0; i < names.length; ++i) { + // TODO: The value type of _environments should be a type union of all + // possible `EnvSpec<>` possibilities instead of `EnvSpec<*>`, which is + // an existential type. + // $FlowFixMe + _environments[names[i]] = data; + } + + if (htmlBuilder) { + _htmlGroupBuilders[type] = htmlBuilder; + } + + if (mathmlBuilder) { + _mathmlGroupBuilders[type] = mathmlBuilder; + } +} +// CONCATENATED MODULE: ./src/environments/array.js + + + + + + + + + + + + + +function getHLines(parser) { + // Return an array. The array length = number of hlines. + // Each element in the array tells if the line is dashed. + var hlineInfo = []; + parser.consumeSpaces(); + var nxt = parser.fetch().text; + + while (nxt === "\\hline" || nxt === "\\hdashline") { + parser.consume(); + hlineInfo.push(nxt === "\\hdashline"); + parser.consumeSpaces(); + nxt = parser.fetch().text; + } + + return hlineInfo; +} +/** + * Parse the body of the environment, with rows delimited by \\ and + * columns delimited by &, and create a nested list in row-major order + * with one group per cell. If given an optional argument style + * ("text", "display", etc.), then each cell is cast into that style. + */ + + +function parseArray(parser, _ref, style) { + var hskipBeforeAndAfter = _ref.hskipBeforeAndAfter, + addJot = _ref.addJot, + cols = _ref.cols, + arraystretch = _ref.arraystretch, + colSeparationType = _ref.colSeparationType; + // Parse body of array with \\ temporarily mapped to \cr + parser.gullet.beginGroup(); + parser.gullet.macros.set("\\\\", "\\cr"); // Get current arraystretch if it's not set by the environment + + if (!arraystretch) { + var stretch = parser.gullet.expandMacroAsText("\\arraystretch"); + + if (stretch == null) { + // Default \arraystretch from lttab.dtx + arraystretch = 1; + } else { + arraystretch = parseFloat(stretch); + + if (!arraystretch || arraystretch < 0) { + throw new src_ParseError("Invalid \\arraystretch: " + stretch); + } + } + } // Start group for first cell + + + parser.gullet.beginGroup(); + var row = []; + var body = [row]; + var rowGaps = []; + var hLinesBeforeRow = []; // Test for \hline at the top of the array. + + hLinesBeforeRow.push(getHLines(parser)); + + while (true) { + // eslint-disable-line no-constant-condition + // Parse each cell in its own group (namespace) + var cell = parser.parseExpression(false, "\\cr"); + parser.gullet.endGroup(); + parser.gullet.beginGroup(); + cell = { + type: "ordgroup", + mode: parser.mode, + body: cell + }; + + if (style) { + cell = { + type: "styling", + mode: parser.mode, + style: style, + body: [cell] + }; + } + + row.push(cell); + var next = parser.fetch().text; + + if (next === "&") { + parser.consume(); + } else if (next === "\\end") { + // Arrays terminate newlines with `\crcr` which consumes a `\cr` if + // the last line is empty. + // NOTE: Currently, `cell` is the last item added into `row`. + if (row.length === 1 && cell.type === "styling" && cell.body[0].body.length === 0) { + body.pop(); + } + + if (hLinesBeforeRow.length < body.length + 1) { + hLinesBeforeRow.push([]); + } + + break; + } else if (next === "\\cr") { + var cr = assertNodeType(parser.parseFunction(), "cr"); + rowGaps.push(cr.size); // check for \hline(s) following the row separator + + hLinesBeforeRow.push(getHLines(parser)); + row = []; + body.push(row); + } else { + throw new src_ParseError("Expected & or \\\\ or \\cr or \\end", parser.nextToken); + } + } // End cell group + + + parser.gullet.endGroup(); // End array group defining \\ + + parser.gullet.endGroup(); + return { + type: "array", + mode: parser.mode, + addJot: addJot, + arraystretch: arraystretch, + body: body, + cols: cols, + rowGaps: rowGaps, + hskipBeforeAndAfter: hskipBeforeAndAfter, + hLinesBeforeRow: hLinesBeforeRow, + colSeparationType: colSeparationType + }; +} // Decides on a style for cells in an array according to whether the given +// environment name starts with the letter 'd'. + + +function dCellStyle(envName) { + if (envName.substr(0, 1) === "d") { + return "display"; + } else { + return "text"; + } +} + +var array_htmlBuilder = function htmlBuilder(group, options) { + var r; + var c; + var nr = group.body.length; + var hLinesBeforeRow = group.hLinesBeforeRow; + var nc = 0; + var body = new Array(nr); + var hlines = []; + var ruleThickness = Math.max( // From LaTeX \showthe\arrayrulewidth. Equals 0.04 em. + options.fontMetrics().arrayRuleWidth, options.minRuleThickness // User override. + ); // Horizontal spacing + + var pt = 1 / options.fontMetrics().ptPerEm; + var arraycolsep = 5 * pt; // default value, i.e. \arraycolsep in article.cls + + if (group.colSeparationType && group.colSeparationType === "small") { + // We're in a {smallmatrix}. Default column space is \thickspace, + // i.e. 5/18em = 0.2778em, per amsmath.dtx for {smallmatrix}. + // But that needs adjustment because LaTeX applies \scriptstyle to the + // entire array, including the colspace, but this function applies + // \scriptstyle only inside each element. + var localMultiplier = options.havingStyle(src_Style.SCRIPT).sizeMultiplier; + arraycolsep = 0.2778 * (localMultiplier / options.sizeMultiplier); + } // Vertical spacing + + + var baselineskip = 12 * pt; // see size10.clo + // Default \jot from ltmath.dtx + // TODO(edemaine): allow overriding \jot via \setlength (#687) + + var jot = 3 * pt; + var arrayskip = group.arraystretch * baselineskip; + var arstrutHeight = 0.7 * arrayskip; // \strutbox in ltfsstrc.dtx and + + var arstrutDepth = 0.3 * arrayskip; // \@arstrutbox in lttab.dtx + + var totalHeight = 0; // Set a position for \hline(s) at the top of the array, if any. + + function setHLinePos(hlinesInGap) { + for (var i = 0; i < hlinesInGap.length; ++i) { + if (i > 0) { + totalHeight += 0.25; + } + + hlines.push({ + pos: totalHeight, + isDashed: hlinesInGap[i] + }); + } + } + + setHLinePos(hLinesBeforeRow[0]); + + for (r = 0; r < group.body.length; ++r) { + var inrow = group.body[r]; + var height = arstrutHeight; // \@array adds an \@arstrut + + var depth = arstrutDepth; // to each tow (via the template) + + if (nc < inrow.length) { + nc = inrow.length; + } + + var outrow = new Array(inrow.length); + + for (c = 0; c < inrow.length; ++c) { + var elt = buildHTML_buildGroup(inrow[c], options); + + if (depth < elt.depth) { + depth = elt.depth; + } + + if (height < elt.height) { + height = elt.height; + } + + outrow[c] = elt; + } + + var rowGap = group.rowGaps[r]; + var gap = 0; + + if (rowGap) { + gap = units_calculateSize(rowGap, options); + + if (gap > 0) { + // \@argarraycr + gap += arstrutDepth; + + if (depth < gap) { + depth = gap; // \@xargarraycr + } + + gap = 0; + } + } // In AMS multiline environments such as aligned and gathered, rows + // correspond to lines that have additional \jot added to the + // \baselineskip via \openup. + + + if (group.addJot) { + depth += jot; + } + + outrow.height = height; + outrow.depth = depth; + totalHeight += height; + outrow.pos = totalHeight; + totalHeight += depth + gap; // \@yargarraycr + + body[r] = outrow; // Set a position for \hline(s), if any. + + setHLinePos(hLinesBeforeRow[r + 1]); + } + + var offset = totalHeight / 2 + options.fontMetrics().axisHeight; + var colDescriptions = group.cols || []; + var cols = []; + var colSep; + var colDescrNum; + + for (c = 0, colDescrNum = 0; // Continue while either there are more columns or more column + // descriptions, so trailing separators don't get lost. + c < nc || colDescrNum < colDescriptions.length; ++c, ++colDescrNum) { + var colDescr = colDescriptions[colDescrNum] || {}; + var firstSeparator = true; + + while (colDescr.type === "separator") { + // If there is more than one separator in a row, add a space + // between them. + if (!firstSeparator) { + colSep = buildCommon.makeSpan(["arraycolsep"], []); + colSep.style.width = options.fontMetrics().doubleRuleSep + "em"; + cols.push(colSep); + } + + if (colDescr.separator === "|" || colDescr.separator === ":") { + var lineType = colDescr.separator === "|" ? "solid" : "dashed"; + var separator = buildCommon.makeSpan(["vertical-separator"], [], options); + separator.style.height = totalHeight + "em"; + separator.style.borderRightWidth = ruleThickness + "em"; + separator.style.borderRightStyle = lineType; + separator.style.margin = "0 -" + ruleThickness / 2 + "em"; + separator.style.verticalAlign = -(totalHeight - offset) + "em"; + cols.push(separator); + } else { + throw new src_ParseError("Invalid separator type: " + colDescr.separator); + } + + colDescrNum++; + colDescr = colDescriptions[colDescrNum] || {}; + firstSeparator = false; + } + + if (c >= nc) { + continue; + } + + var sepwidth = void 0; + + if (c > 0 || group.hskipBeforeAndAfter) { + sepwidth = utils.deflt(colDescr.pregap, arraycolsep); + + if (sepwidth !== 0) { + colSep = buildCommon.makeSpan(["arraycolsep"], []); + colSep.style.width = sepwidth + "em"; + cols.push(colSep); + } + } + + var col = []; + + for (r = 0; r < nr; ++r) { + var row = body[r]; + var elem = row[c]; + + if (!elem) { + continue; + } + + var shift = row.pos - offset; + elem.depth = row.depth; + elem.height = row.height; + col.push({ + type: "elem", + elem: elem, + shift: shift + }); + } + + col = buildCommon.makeVList({ + positionType: "individualShift", + children: col + }, options); + col = buildCommon.makeSpan(["col-align-" + (colDescr.align || "c")], [col]); + cols.push(col); + + if (c < nc - 1 || group.hskipBeforeAndAfter) { + sepwidth = utils.deflt(colDescr.postgap, arraycolsep); + + if (sepwidth !== 0) { + colSep = buildCommon.makeSpan(["arraycolsep"], []); + colSep.style.width = sepwidth + "em"; + cols.push(colSep); + } + } + } + + body = buildCommon.makeSpan(["mtable"], cols); // Add \hline(s), if any. + + if (hlines.length > 0) { + var line = buildCommon.makeLineSpan("hline", options, ruleThickness); + var dashes = buildCommon.makeLineSpan("hdashline", options, ruleThickness); + var vListElems = [{ + type: "elem", + elem: body, + shift: 0 + }]; + + while (hlines.length > 0) { + var hline = hlines.pop(); + var lineShift = hline.pos - offset; + + if (hline.isDashed) { + vListElems.push({ + type: "elem", + elem: dashes, + shift: lineShift + }); + } else { + vListElems.push({ + type: "elem", + elem: line, + shift: lineShift + }); + } + } + + body = buildCommon.makeVList({ + positionType: "individualShift", + children: vListElems + }, options); + } + + return buildCommon.makeSpan(["mord"], [body], options); +}; + +var alignMap = { + c: "center ", + l: "left ", + r: "right " +}; + +var array_mathmlBuilder = function mathmlBuilder(group, options) { + var table = new mathMLTree.MathNode("mtable", group.body.map(function (row) { + return new mathMLTree.MathNode("mtr", row.map(function (cell) { + return new mathMLTree.MathNode("mtd", [buildMathML_buildGroup(cell, options)]); + })); + })); // Set column alignment, row spacing, column spacing, and + // array lines by setting attributes on the table element. + // Set the row spacing. In MathML, we specify a gap distance. + // We do not use rowGap[] because MathML automatically increases + // cell height with the height/depth of the element content. + // LaTeX \arraystretch multiplies the row baseline-to-baseline distance. + // We simulate this by adding (arraystretch - 1)em to the gap. This + // does a reasonable job of adjusting arrays containing 1 em tall content. + // The 0.16 and 0.09 values are found emprically. They produce an array + // similar to LaTeX and in which content does not interfere with \hines. + + var gap = group.arraystretch === 0.5 ? 0.1 // {smallmatrix}, {subarray} + : 0.16 + group.arraystretch - 1 + (group.addJot ? 0.09 : 0); + table.setAttribute("rowspacing", gap + "em"); // MathML table lines go only between cells. + // To place a line on an edge we'll use , if necessary. + + var menclose = ""; + var align = ""; + + if (group.cols && group.cols.length > 0) { + // Find column alignment, column spacing, and vertical lines. + var cols = group.cols; + var columnLines = ""; + var prevTypeWasAlign = false; + var iStart = 0; + var iEnd = cols.length; + + if (cols[0].type === "separator") { + menclose += "top "; + iStart = 1; + } + + if (cols[cols.length - 1].type === "separator") { + menclose += "bottom "; + iEnd -= 1; + } + + for (var i = iStart; i < iEnd; i++) { + if (cols[i].type === "align") { + align += alignMap[cols[i].align]; + + if (prevTypeWasAlign) { + columnLines += "none "; + } + + prevTypeWasAlign = true; + } else if (cols[i].type === "separator") { + // MathML accepts only single lines between cells. + // So we read only the first of consecutive separators. + if (prevTypeWasAlign) { + columnLines += cols[i].separator === "|" ? "solid " : "dashed "; + prevTypeWasAlign = false; + } + } + } + + table.setAttribute("columnalign", align.trim()); + + if (/[sd]/.test(columnLines)) { + table.setAttribute("columnlines", columnLines.trim()); + } + } // Set column spacing. + + + if (group.colSeparationType === "align") { + var _cols = group.cols || []; + + var spacing = ""; + + for (var _i = 1; _i < _cols.length; _i++) { + spacing += _i % 2 ? "0em " : "1em "; + } + + table.setAttribute("columnspacing", spacing.trim()); + } else if (group.colSeparationType === "alignat") { + table.setAttribute("columnspacing", "0em"); + } else if (group.colSeparationType === "small") { + table.setAttribute("columnspacing", "0.2778em"); + } else { + table.setAttribute("columnspacing", "1em"); + } // Address \hline and \hdashline + + + var rowLines = ""; + var hlines = group.hLinesBeforeRow; + menclose += hlines[0].length > 0 ? "left " : ""; + menclose += hlines[hlines.length - 1].length > 0 ? "right " : ""; + + for (var _i2 = 1; _i2 < hlines.length - 1; _i2++) { + rowLines += hlines[_i2].length === 0 ? "none " // MathML accepts only a single line between rows. Read one element. + : hlines[_i2][0] ? "dashed " : "solid "; + } + + if (/[sd]/.test(rowLines)) { + table.setAttribute("rowlines", rowLines.trim()); + } + + if (menclose !== "") { + table = new mathMLTree.MathNode("menclose", [table]); + table.setAttribute("notation", menclose.trim()); + } + + if (group.arraystretch && group.arraystretch < 1) { + // A small array. Wrap in scriptstyle so row gap is not too large. + table = new mathMLTree.MathNode("mstyle", [table]); + table.setAttribute("scriptlevel", "1"); + } + + return table; +}; // Convenience function for aligned and alignedat environments. + + +var array_alignedHandler = function alignedHandler(context, args) { + var cols = []; + var res = parseArray(context.parser, { + cols: cols, + addJot: true + }, "display"); // Determining number of columns. + // 1. If the first argument is given, we use it as a number of columns, + // and makes sure that each row doesn't exceed that number. + // 2. Otherwise, just count number of columns = maximum number + // of cells in each row ("aligned" mode -- isAligned will be true). + // + // At the same time, prepend empty group {} at beginning of every second + // cell in each row (starting with second cell) so that operators become + // binary. This behavior is implemented in amsmath's \start@aligned. + + var numMaths; + var numCols = 0; + var emptyGroup = { + type: "ordgroup", + mode: context.mode, + body: [] + }; + + if (args[0] && args[0].type === "ordgroup") { + var arg0 = ""; + + for (var i = 0; i < args[0].body.length; i++) { + var textord = assertNodeType(args[0].body[i], "textord"); + arg0 += textord.text; + } + + numMaths = Number(arg0); + numCols = numMaths * 2; + } + + var isAligned = !numCols; + res.body.forEach(function (row) { + for (var _i3 = 1; _i3 < row.length; _i3 += 2) { + // Modify ordgroup node within styling node + var styling = assertNodeType(row[_i3], "styling"); + var ordgroup = assertNodeType(styling.body[0], "ordgroup"); + ordgroup.body.unshift(emptyGroup); + } + + if (!isAligned) { + // Case 1 + var curMaths = row.length / 2; + + if (numMaths < curMaths) { + throw new src_ParseError("Too many math in a row: " + ("expected " + numMaths + ", but got " + curMaths), row[0]); + } + } else if (numCols < row.length) { + // Case 2 + numCols = row.length; + } + }); // Adjusting alignment. + // In aligned mode, we add one \qquad between columns; + // otherwise we add nothing. + + for (var _i4 = 0; _i4 < numCols; ++_i4) { + var align = "r"; + var pregap = 0; + + if (_i4 % 2 === 1) { + align = "l"; + } else if (_i4 > 0 && isAligned) { + // "aligned" mode. + pregap = 1; // add one \quad + } + + cols[_i4] = { + type: "align", + align: align, + pregap: pregap, + postgap: 0 + }; + } + + res.colSeparationType = isAligned ? "align" : "alignat"; + return res; +}; // Arrays are part of LaTeX, defined in lttab.dtx so its documentation +// is part of the source2e.pdf file of LaTeX2e source documentation. +// {darray} is an {array} environment where cells are set in \displaystyle, +// as defined in nccmath.sty. + + +defineEnvironment({ + type: "array", + names: ["array", "darray"], + props: { + numArgs: 1 + }, + handler: function handler(context, args) { + // Since no types are specified above, the two possibilities are + // - The argument is wrapped in {} or [], in which case Parser's + // parseGroup() returns an "ordgroup" wrapping some symbol node. + // - The argument is a bare symbol node. + var symNode = checkSymbolNodeType(args[0]); + var colalign = symNode ? [args[0]] : assertNodeType(args[0], "ordgroup").body; + var cols = colalign.map(function (nde) { + var node = assertSymbolNodeType(nde); + var ca = node.text; + + if ("lcr".indexOf(ca) !== -1) { + return { + type: "align", + align: ca + }; + } else if (ca === "|") { + return { + type: "separator", + separator: "|" + }; + } else if (ca === ":") { + return { + type: "separator", + separator: ":" + }; + } + + throw new src_ParseError("Unknown column alignment: " + ca, nde); + }); + var res = { + cols: cols, + hskipBeforeAndAfter: true // \@preamble in lttab.dtx + + }; + return parseArray(context.parser, res, dCellStyle(context.envName)); + }, + htmlBuilder: array_htmlBuilder, + mathmlBuilder: array_mathmlBuilder +}); // The matrix environments of amsmath builds on the array environment +// of LaTeX, which is discussed above. + +defineEnvironment({ + type: "array", + names: ["matrix", "pmatrix", "bmatrix", "Bmatrix", "vmatrix", "Vmatrix"], + props: { + numArgs: 0 + }, + handler: function handler(context) { + var delimiters = { + "matrix": null, + "pmatrix": ["(", ")"], + "bmatrix": ["[", "]"], + "Bmatrix": ["\\{", "\\}"], + "vmatrix": ["|", "|"], + "Vmatrix": ["\\Vert", "\\Vert"] + }[context.envName]; // \hskip -\arraycolsep in amsmath + + var payload = { + hskipBeforeAndAfter: false + }; + var res = parseArray(context.parser, payload, dCellStyle(context.envName)); + return delimiters ? { + type: "leftright", + mode: context.mode, + body: [res], + left: delimiters[0], + right: delimiters[1], + rightColor: undefined // \right uninfluenced by \color in array + + } : res; + }, + htmlBuilder: array_htmlBuilder, + mathmlBuilder: array_mathmlBuilder +}); +defineEnvironment({ + type: "array", + names: ["smallmatrix"], + props: { + numArgs: 0 + }, + handler: function handler(context) { + var payload = { + arraystretch: 0.5 + }; + var res = parseArray(context.parser, payload, "script"); + res.colSeparationType = "small"; + return res; + }, + htmlBuilder: array_htmlBuilder, + mathmlBuilder: array_mathmlBuilder +}); +defineEnvironment({ + type: "array", + names: ["subarray"], + props: { + numArgs: 1 + }, + handler: function handler(context, args) { + // Parsing of {subarray} is similar to {array} + var symNode = checkSymbolNodeType(args[0]); + var colalign = symNode ? [args[0]] : assertNodeType(args[0], "ordgroup").body; + var cols = colalign.map(function (nde) { + var node = assertSymbolNodeType(nde); + var ca = node.text; // {subarray} only recognizes "l" & "c" + + if ("lc".indexOf(ca) !== -1) { + return { + type: "align", + align: ca + }; + } + + throw new src_ParseError("Unknown column alignment: " + ca, nde); + }); + + if (cols.length > 1) { + throw new src_ParseError("{subarray} can contain only one column"); + } + + var res = { + cols: cols, + hskipBeforeAndAfter: false, + arraystretch: 0.5 + }; + res = parseArray(context.parser, res, "script"); + + if (res.body.length > 0 && res.body[0].length > 1) { + throw new src_ParseError("{subarray} can contain only one column"); + } + + return res; + }, + htmlBuilder: array_htmlBuilder, + mathmlBuilder: array_mathmlBuilder +}); // A cases environment (in amsmath.sty) is almost equivalent to +// \def\arraystretch{1.2}% +// \left\{\begin{array}{@{}l@{\quad}l@{}} … \end{array}\right. +// {dcases} is a {cases} environment where cells are set in \displaystyle, +// as defined in mathtools.sty. +// {rcases} is another mathtools environment. It's brace is on the right side. + +defineEnvironment({ + type: "array", + names: ["cases", "dcases", "rcases", "drcases"], + props: { + numArgs: 0 + }, + handler: function handler(context) { + var payload = { + arraystretch: 1.2, + cols: [{ + type: "align", + align: "l", + pregap: 0, + // TODO(kevinb) get the current style. + // For now we use the metrics for TEXT style which is what we were + // doing before. Before attempting to get the current style we + // should look at TeX's behavior especially for \over and matrices. + postgap: 1.0 + /* 1em quad */ + + }, { + type: "align", + align: "l", + pregap: 0, + postgap: 0 + }] + }; + var res = parseArray(context.parser, payload, dCellStyle(context.envName)); + return { + type: "leftright", + mode: context.mode, + body: [res], + left: context.envName.indexOf("r") > -1 ? "." : "\\{", + right: context.envName.indexOf("r") > -1 ? "\\}" : ".", + rightColor: undefined + }; + }, + htmlBuilder: array_htmlBuilder, + mathmlBuilder: array_mathmlBuilder +}); // An aligned environment is like the align* environment +// except it operates within math mode. +// Note that we assume \nomallineskiplimit to be zero, +// so that \strut@ is the same as \strut. + +defineEnvironment({ + type: "array", + names: ["aligned"], + props: { + numArgs: 0 + }, + handler: array_alignedHandler, + htmlBuilder: array_htmlBuilder, + mathmlBuilder: array_mathmlBuilder +}); // A gathered environment is like an array environment with one centered +// column, but where rows are considered lines so get \jot line spacing +// and contents are set in \displaystyle. + +defineEnvironment({ + type: "array", + names: ["gathered"], + props: { + numArgs: 0 + }, + handler: function handler(context) { + var res = { + cols: [{ + type: "align", + align: "c" + }], + addJot: true + }; + return parseArray(context.parser, res, "display"); + }, + htmlBuilder: array_htmlBuilder, + mathmlBuilder: array_mathmlBuilder +}); // alignat environment is like an align environment, but one must explicitly +// specify maximum number of columns in each row, and can adjust spacing between +// each columns. + +defineEnvironment({ + type: "array", + names: ["alignedat"], + // One for numbered and for unnumbered; + // but, KaTeX doesn't supports math numbering yet, + // they make no difference for now. + props: { + numArgs: 1 + }, + handler: array_alignedHandler, + htmlBuilder: array_htmlBuilder, + mathmlBuilder: array_mathmlBuilder +}); // Catch \hline outside array environment + +defineFunction({ + type: "text", + // Doesn't matter what this is. + names: ["\\hline", "\\hdashline"], + props: { + numArgs: 0, + allowedInText: true, + allowedInMath: true + }, + handler: function handler(context, args) { + throw new src_ParseError(context.funcName + " valid only within array environment"); + } +}); +// CONCATENATED MODULE: ./src/environments.js + +var environments = _environments; +/* harmony default export */ var src_environments = (environments); // All environment definitions should be imported below + + +// CONCATENATED MODULE: ./src/functions/environment.js + + + + // Environment delimiters. HTML/MathML rendering is defined in the corresponding +// defineEnvironment definitions. +// $FlowFixMe, "environment" handler returns an environment ParseNode + +defineFunction({ + type: "environment", + names: ["\\begin", "\\end"], + props: { + numArgs: 1, + argTypes: ["text"] + }, + handler: function handler(_ref, args) { + var parser = _ref.parser, + funcName = _ref.funcName; + var nameGroup = args[0]; + + if (nameGroup.type !== "ordgroup") { + throw new src_ParseError("Invalid environment name", nameGroup); + } + + var envName = ""; + + for (var i = 0; i < nameGroup.body.length; ++i) { + envName += assertNodeType(nameGroup.body[i], "textord").text; + } + + if (funcName === "\\begin") { + // begin...end is similar to left...right + if (!src_environments.hasOwnProperty(envName)) { + throw new src_ParseError("No such environment: " + envName, nameGroup); + } // Build the environment object. Arguments and other information will + // be made available to the begin and end methods using properties. + + + var env = src_environments[envName]; + + var _parser$parseArgument = parser.parseArguments("\\begin{" + envName + "}", env), + _args = _parser$parseArgument.args, + optArgs = _parser$parseArgument.optArgs; + + var context = { + mode: parser.mode, + envName: envName, + parser: parser + }; + var result = env.handler(context, _args, optArgs); + parser.expect("\\end", false); + var endNameToken = parser.nextToken; + var end = assertNodeType(parser.parseFunction(), "environment"); + + if (end.name !== envName) { + throw new src_ParseError("Mismatch: \\begin{" + envName + "} matched by \\end{" + end.name + "}", endNameToken); + } + + return result; + } + + return { + type: "environment", + mode: parser.mode, + name: envName, + nameGroup: nameGroup + }; + } +}); +// CONCATENATED MODULE: ./src/functions/mclass.js + + + + + + +var mclass_makeSpan = buildCommon.makeSpan; + +function mclass_htmlBuilder(group, options) { + var elements = buildHTML_buildExpression(group.body, options, true); + return mclass_makeSpan([group.mclass], elements, options); +} + +function mclass_mathmlBuilder(group, options) { + var node; + var inner = buildMathML_buildExpression(group.body, options); + + if (group.mclass === "minner") { + return mathMLTree.newDocumentFragment(inner); + } else if (group.mclass === "mord") { + if (group.isCharacterBox) { + node = inner[0]; + node.type = "mi"; + } else { + node = new mathMLTree.MathNode("mi", inner); + } + } else { + if (group.isCharacterBox) { + node = inner[0]; + node.type = "mo"; + } else { + node = new mathMLTree.MathNode("mo", inner); + } // Set spacing based on what is the most likely adjacent atom type. + // See TeXbook p170. + + + if (group.mclass === "mbin") { + node.attributes.lspace = "0.22em"; // medium space + + node.attributes.rspace = "0.22em"; + } else if (group.mclass === "mpunct") { + node.attributes.lspace = "0em"; + node.attributes.rspace = "0.17em"; // thinspace + } else if (group.mclass === "mopen" || group.mclass === "mclose") { + node.attributes.lspace = "0em"; + node.attributes.rspace = "0em"; + } // MathML default space is 5/18 em, so needs no action. + // Ref: https://developer.mozilla.org/en-US/docs/Web/MathML/Element/mo + + } + + return node; +} // Math class commands except \mathop + + +defineFunction({ + type: "mclass", + names: ["\\mathord", "\\mathbin", "\\mathrel", "\\mathopen", "\\mathclose", "\\mathpunct", "\\mathinner"], + props: { + numArgs: 1 + }, + handler: function handler(_ref, args) { + var parser = _ref.parser, + funcName = _ref.funcName; + var body = args[0]; + return { + type: "mclass", + mode: parser.mode, + mclass: "m" + funcName.substr(5), + // TODO(kevinb): don't prefix with 'm' + body: ordargument(body), + isCharacterBox: utils.isCharacterBox(body) + }; + }, + htmlBuilder: mclass_htmlBuilder, + mathmlBuilder: mclass_mathmlBuilder +}); +var binrelClass = function binrelClass(arg) { + // \binrel@ spacing varies with (bin|rel|ord) of the atom in the argument. + // (by rendering separately and with {}s before and after, and measuring + // the change in spacing). We'll do roughly the same by detecting the + // atom type directly. + var atom = arg.type === "ordgroup" && arg.body.length ? arg.body[0] : arg; + + if (atom.type === "atom" && (atom.family === "bin" || atom.family === "rel")) { + return "m" + atom.family; + } else { + return "mord"; + } +}; // \@binrel{x}{y} renders like y but as mbin/mrel/mord if x is mbin/mrel/mord. +// This is equivalent to \binrel@{x}\binrel@@{y} in AMSTeX. + +defineFunction({ + type: "mclass", + names: ["\\@binrel"], + props: { + numArgs: 2 + }, + handler: function handler(_ref2, args) { + var parser = _ref2.parser; + return { + type: "mclass", + mode: parser.mode, + mclass: binrelClass(args[0]), + body: [args[1]], + isCharacterBox: utils.isCharacterBox(args[1]) + }; + } +}); // Build a relation or stacked op by placing one symbol on top of another + +defineFunction({ + type: "mclass", + names: ["\\stackrel", "\\overset", "\\underset"], + props: { + numArgs: 2 + }, + handler: function handler(_ref3, args) { + var parser = _ref3.parser, + funcName = _ref3.funcName; + var baseArg = args[1]; + var shiftedArg = args[0]; + var mclass; + + if (funcName !== "\\stackrel") { + // LaTeX applies \binrel spacing to \overset and \underset. + mclass = binrelClass(baseArg); + } else { + mclass = "mrel"; // for \stackrel + } + + var baseOp = { + type: "op", + mode: baseArg.mode, + limits: true, + alwaysHandleSupSub: true, + parentIsSupSub: false, + symbol: false, + suppressBaseShift: funcName !== "\\stackrel", + body: ordargument(baseArg) + }; + var supsub = { + type: "supsub", + mode: shiftedArg.mode, + base: baseOp, + sup: funcName === "\\underset" ? null : shiftedArg, + sub: funcName === "\\underset" ? shiftedArg : null + }; + return { + type: "mclass", + mode: parser.mode, + mclass: mclass, + body: [supsub], + isCharacterBox: utils.isCharacterBox(supsub) + }; + }, + htmlBuilder: mclass_htmlBuilder, + mathmlBuilder: mclass_mathmlBuilder +}); +// CONCATENATED MODULE: ./src/functions/font.js +// TODO(kevinb): implement \\sl and \\sc + + + + + + +var font_htmlBuilder = function htmlBuilder(group, options) { + var font = group.font; + var newOptions = options.withFont(font); + return buildHTML_buildGroup(group.body, newOptions); +}; + +var font_mathmlBuilder = function mathmlBuilder(group, options) { + var font = group.font; + var newOptions = options.withFont(font); + return buildMathML_buildGroup(group.body, newOptions); +}; + +var fontAliases = { + "\\Bbb": "\\mathbb", + "\\bold": "\\mathbf", + "\\frak": "\\mathfrak", + "\\bm": "\\boldsymbol" +}; +defineFunction({ + type: "font", + names: [// styles, except \boldsymbol defined below + "\\mathrm", "\\mathit", "\\mathbf", "\\mathnormal", // families + "\\mathbb", "\\mathcal", "\\mathfrak", "\\mathscr", "\\mathsf", "\\mathtt", // aliases, except \bm defined below + "\\Bbb", "\\bold", "\\frak"], + props: { + numArgs: 1, + greediness: 2 + }, + handler: function handler(_ref, args) { + var parser = _ref.parser, + funcName = _ref.funcName; + var body = args[0]; + var func = funcName; + + if (func in fontAliases) { + func = fontAliases[func]; + } + + return { + type: "font", + mode: parser.mode, + font: func.slice(1), + body: body + }; + }, + htmlBuilder: font_htmlBuilder, + mathmlBuilder: font_mathmlBuilder +}); +defineFunction({ + type: "mclass", + names: ["\\boldsymbol", "\\bm"], + props: { + numArgs: 1, + greediness: 2 + }, + handler: function handler(_ref2, args) { + var parser = _ref2.parser; + var body = args[0]; + var isCharacterBox = utils.isCharacterBox(body); // amsbsy.sty's \boldsymbol uses \binrel spacing to inherit the + // argument's bin|rel|ord status + + return { + type: "mclass", + mode: parser.mode, + mclass: binrelClass(body), + body: [{ + type: "font", + mode: parser.mode, + font: "boldsymbol", + body: body + }], + isCharacterBox: isCharacterBox + }; + } +}); // Old font changing functions + +defineFunction({ + type: "font", + names: ["\\rm", "\\sf", "\\tt", "\\bf", "\\it", "\\cal"], + props: { + numArgs: 0, + allowedInText: true + }, + handler: function handler(_ref3, args) { + var parser = _ref3.parser, + funcName = _ref3.funcName, + breakOnTokenText = _ref3.breakOnTokenText; + var mode = parser.mode; + var body = parser.parseExpression(true, breakOnTokenText); + var style = "math" + funcName.slice(1); + return { + type: "font", + mode: mode, + font: style, + body: { + type: "ordgroup", + mode: parser.mode, + body: body + } + }; + }, + htmlBuilder: font_htmlBuilder, + mathmlBuilder: font_mathmlBuilder +}); +// CONCATENATED MODULE: ./src/functions/genfrac.js + + + + + + + + + + + +var genfrac_adjustStyle = function adjustStyle(size, originalStyle) { + // Figure out what style this fraction should be in based on the + // function used + var style = originalStyle; + + if (size === "display") { + // Get display style as a default. + // If incoming style is sub/sup, use style.text() to get correct size. + style = style.id >= src_Style.SCRIPT.id ? style.text() : src_Style.DISPLAY; + } else if (size === "text" && style.size === src_Style.DISPLAY.size) { + // We're in a \tfrac but incoming style is displaystyle, so: + style = src_Style.TEXT; + } else if (size === "script") { + style = src_Style.SCRIPT; + } else if (size === "scriptscript") { + style = src_Style.SCRIPTSCRIPT; + } + + return style; +}; + +var genfrac_htmlBuilder = function htmlBuilder(group, options) { + // Fractions are handled in the TeXbook on pages 444-445, rules 15(a-e). + var style = genfrac_adjustStyle(group.size, options.style); + var nstyle = style.fracNum(); + var dstyle = style.fracDen(); + var newOptions; + newOptions = options.havingStyle(nstyle); + var numerm = buildHTML_buildGroup(group.numer, newOptions, options); + + if (group.continued) { + // \cfrac inserts a \strut into the numerator. + // Get \strut dimensions from TeXbook page 353. + var hStrut = 8.5 / options.fontMetrics().ptPerEm; + var dStrut = 3.5 / options.fontMetrics().ptPerEm; + numerm.height = numerm.height < hStrut ? hStrut : numerm.height; + numerm.depth = numerm.depth < dStrut ? dStrut : numerm.depth; + } + + newOptions = options.havingStyle(dstyle); + var denomm = buildHTML_buildGroup(group.denom, newOptions, options); + var rule; + var ruleWidth; + var ruleSpacing; + + if (group.hasBarLine) { + if (group.barSize) { + ruleWidth = units_calculateSize(group.barSize, options); + rule = buildCommon.makeLineSpan("frac-line", options, ruleWidth); + } else { + rule = buildCommon.makeLineSpan("frac-line", options); + } + + ruleWidth = rule.height; + ruleSpacing = rule.height; + } else { + rule = null; + ruleWidth = 0; + ruleSpacing = options.fontMetrics().defaultRuleThickness; + } // Rule 15b + + + var numShift; + var clearance; + var denomShift; + + if (style.size === src_Style.DISPLAY.size || group.size === "display") { + numShift = options.fontMetrics().num1; + + if (ruleWidth > 0) { + clearance = 3 * ruleSpacing; + } else { + clearance = 7 * ruleSpacing; + } + + denomShift = options.fontMetrics().denom1; + } else { + if (ruleWidth > 0) { + numShift = options.fontMetrics().num2; + clearance = ruleSpacing; + } else { + numShift = options.fontMetrics().num3; + clearance = 3 * ruleSpacing; + } + + denomShift = options.fontMetrics().denom2; + } + + var frac; + + if (!rule) { + // Rule 15c + var candidateClearance = numShift - numerm.depth - (denomm.height - denomShift); + + if (candidateClearance < clearance) { + numShift += 0.5 * (clearance - candidateClearance); + denomShift += 0.5 * (clearance - candidateClearance); + } + + frac = buildCommon.makeVList({ + positionType: "individualShift", + children: [{ + type: "elem", + elem: denomm, + shift: denomShift + }, { + type: "elem", + elem: numerm, + shift: -numShift + }] + }, options); + } else { + // Rule 15d + var axisHeight = options.fontMetrics().axisHeight; + + if (numShift - numerm.depth - (axisHeight + 0.5 * ruleWidth) < clearance) { + numShift += clearance - (numShift - numerm.depth - (axisHeight + 0.5 * ruleWidth)); + } + + if (axisHeight - 0.5 * ruleWidth - (denomm.height - denomShift) < clearance) { + denomShift += clearance - (axisHeight - 0.5 * ruleWidth - (denomm.height - denomShift)); + } + + var midShift = -(axisHeight - 0.5 * ruleWidth); + frac = buildCommon.makeVList({ + positionType: "individualShift", + children: [{ + type: "elem", + elem: denomm, + shift: denomShift + }, { + type: "elem", + elem: rule, + shift: midShift + }, { + type: "elem", + elem: numerm, + shift: -numShift + }] + }, options); + } // Since we manually change the style sometimes (with \dfrac or \tfrac), + // account for the possible size change here. + + + newOptions = options.havingStyle(style); + frac.height *= newOptions.sizeMultiplier / options.sizeMultiplier; + frac.depth *= newOptions.sizeMultiplier / options.sizeMultiplier; // Rule 15e + + var delimSize; + + if (style.size === src_Style.DISPLAY.size) { + delimSize = options.fontMetrics().delim1; + } else { + delimSize = options.fontMetrics().delim2; + } + + var leftDelim; + var rightDelim; + + if (group.leftDelim == null) { + leftDelim = makeNullDelimiter(options, ["mopen"]); + } else { + leftDelim = delimiter.customSizedDelim(group.leftDelim, delimSize, true, options.havingStyle(style), group.mode, ["mopen"]); + } + + if (group.continued) { + rightDelim = buildCommon.makeSpan([]); // zero width for \cfrac + } else if (group.rightDelim == null) { + rightDelim = makeNullDelimiter(options, ["mclose"]); + } else { + rightDelim = delimiter.customSizedDelim(group.rightDelim, delimSize, true, options.havingStyle(style), group.mode, ["mclose"]); + } + + return buildCommon.makeSpan(["mord"].concat(newOptions.sizingClasses(options)), [leftDelim, buildCommon.makeSpan(["mfrac"], [frac]), rightDelim], options); +}; + +var genfrac_mathmlBuilder = function mathmlBuilder(group, options) { + var node = new mathMLTree.MathNode("mfrac", [buildMathML_buildGroup(group.numer, options), buildMathML_buildGroup(group.denom, options)]); + + if (!group.hasBarLine) { + node.setAttribute("linethickness", "0px"); + } else if (group.barSize) { + var ruleWidth = units_calculateSize(group.barSize, options); + node.setAttribute("linethickness", ruleWidth + "em"); + } + + var style = genfrac_adjustStyle(group.size, options.style); + + if (style.size !== options.style.size) { + node = new mathMLTree.MathNode("mstyle", [node]); + var isDisplay = style.size === src_Style.DISPLAY.size ? "true" : "false"; + node.setAttribute("displaystyle", isDisplay); + node.setAttribute("scriptlevel", "0"); + } + + if (group.leftDelim != null || group.rightDelim != null) { + var withDelims = []; + + if (group.leftDelim != null) { + var leftOp = new mathMLTree.MathNode("mo", [new mathMLTree.TextNode(group.leftDelim.replace("\\", ""))]); + leftOp.setAttribute("fence", "true"); + withDelims.push(leftOp); + } + + withDelims.push(node); + + if (group.rightDelim != null) { + var rightOp = new mathMLTree.MathNode("mo", [new mathMLTree.TextNode(group.rightDelim.replace("\\", ""))]); + rightOp.setAttribute("fence", "true"); + withDelims.push(rightOp); + } + + return buildMathML_makeRow(withDelims); + } + + return node; +}; + +defineFunction({ + type: "genfrac", + names: ["\\cfrac", "\\dfrac", "\\frac", "\\tfrac", "\\dbinom", "\\binom", "\\tbinom", "\\\\atopfrac", // can’t be entered directly + "\\\\bracefrac", "\\\\brackfrac"], + props: { + numArgs: 2, + greediness: 2 + }, + handler: function handler(_ref, args) { + var parser = _ref.parser, + funcName = _ref.funcName; + var numer = args[0]; + var denom = args[1]; + var hasBarLine; + var leftDelim = null; + var rightDelim = null; + var size = "auto"; + + switch (funcName) { + case "\\cfrac": + case "\\dfrac": + case "\\frac": + case "\\tfrac": + hasBarLine = true; + break; + + case "\\\\atopfrac": + hasBarLine = false; + break; + + case "\\dbinom": + case "\\binom": + case "\\tbinom": + hasBarLine = false; + leftDelim = "("; + rightDelim = ")"; + break; + + case "\\\\bracefrac": + hasBarLine = false; + leftDelim = "\\{"; + rightDelim = "\\}"; + break; + + case "\\\\brackfrac": + hasBarLine = false; + leftDelim = "["; + rightDelim = "]"; + break; + + default: + throw new Error("Unrecognized genfrac command"); + } + + switch (funcName) { + case "\\cfrac": + case "\\dfrac": + case "\\dbinom": + size = "display"; + break; + + case "\\tfrac": + case "\\tbinom": + size = "text"; + break; + } + + return { + type: "genfrac", + mode: parser.mode, + continued: funcName === "\\cfrac", + numer: numer, + denom: denom, + hasBarLine: hasBarLine, + leftDelim: leftDelim, + rightDelim: rightDelim, + size: size, + barSize: null + }; + }, + htmlBuilder: genfrac_htmlBuilder, + mathmlBuilder: genfrac_mathmlBuilder +}); // Infix generalized fractions -- these are not rendered directly, but replaced +// immediately by one of the variants above. + +defineFunction({ + type: "infix", + names: ["\\over", "\\choose", "\\atop", "\\brace", "\\brack"], + props: { + numArgs: 0, + infix: true + }, + handler: function handler(_ref2) { + var parser = _ref2.parser, + funcName = _ref2.funcName, + token = _ref2.token; + var replaceWith; + + switch (funcName) { + case "\\over": + replaceWith = "\\frac"; + break; + + case "\\choose": + replaceWith = "\\binom"; + break; + + case "\\atop": + replaceWith = "\\\\atopfrac"; + break; + + case "\\brace": + replaceWith = "\\\\bracefrac"; + break; + + case "\\brack": + replaceWith = "\\\\brackfrac"; + break; + + default: + throw new Error("Unrecognized infix genfrac command"); + } + + return { + type: "infix", + mode: parser.mode, + replaceWith: replaceWith, + token: token + }; + } +}); +var stylArray = ["display", "text", "script", "scriptscript"]; + +var delimFromValue = function delimFromValue(delimString) { + var delim = null; + + if (delimString.length > 0) { + delim = delimString; + delim = delim === "." ? null : delim; + } + + return delim; +}; + +defineFunction({ + type: "genfrac", + names: ["\\genfrac"], + props: { + numArgs: 6, + greediness: 6, + argTypes: ["math", "math", "size", "text", "math", "math"] + }, + handler: function handler(_ref3, args) { + var parser = _ref3.parser; + var numer = args[4]; + var denom = args[5]; // Look into the parse nodes to get the desired delimiters. + + var leftDelim = args[0].type === "atom" && args[0].family === "open" ? delimFromValue(args[0].text) : null; + var rightDelim = args[1].type === "atom" && args[1].family === "close" ? delimFromValue(args[1].text) : null; + var barNode = assertNodeType(args[2], "size"); + var hasBarLine; + var barSize = null; + + if (barNode.isBlank) { + // \genfrac acts differently than \above. + // \genfrac treats an empty size group as a signal to use a + // standard bar size. \above would see size = 0 and omit the bar. + hasBarLine = true; + } else { + barSize = barNode.value; + hasBarLine = barSize.number > 0; + } // Find out if we want displaystyle, textstyle, etc. + + + var size = "auto"; + var styl = args[3]; + + if (styl.type === "ordgroup") { + if (styl.body.length > 0) { + var textOrd = assertNodeType(styl.body[0], "textord"); + size = stylArray[Number(textOrd.text)]; + } + } else { + styl = assertNodeType(styl, "textord"); + size = stylArray[Number(styl.text)]; + } + + return { + type: "genfrac", + mode: parser.mode, + numer: numer, + denom: denom, + continued: false, + hasBarLine: hasBarLine, + barSize: barSize, + leftDelim: leftDelim, + rightDelim: rightDelim, + size: size + }; + }, + htmlBuilder: genfrac_htmlBuilder, + mathmlBuilder: genfrac_mathmlBuilder +}); // \above is an infix fraction that also defines a fraction bar size. + +defineFunction({ + type: "infix", + names: ["\\above"], + props: { + numArgs: 1, + argTypes: ["size"], + infix: true + }, + handler: function handler(_ref4, args) { + var parser = _ref4.parser, + funcName = _ref4.funcName, + token = _ref4.token; + return { + type: "infix", + mode: parser.mode, + replaceWith: "\\\\abovefrac", + size: assertNodeType(args[0], "size").value, + token: token + }; + } +}); +defineFunction({ + type: "genfrac", + names: ["\\\\abovefrac"], + props: { + numArgs: 3, + argTypes: ["math", "size", "math"] + }, + handler: function handler(_ref5, args) { + var parser = _ref5.parser, + funcName = _ref5.funcName; + var numer = args[0]; + var barSize = assert(assertNodeType(args[1], "infix").size); + var denom = args[2]; + var hasBarLine = barSize.number > 0; + return { + type: "genfrac", + mode: parser.mode, + numer: numer, + denom: denom, + continued: false, + hasBarLine: hasBarLine, + barSize: barSize, + leftDelim: null, + rightDelim: null, + size: "auto" + }; + }, + htmlBuilder: genfrac_htmlBuilder, + mathmlBuilder: genfrac_mathmlBuilder +}); +// CONCATENATED MODULE: ./src/functions/horizBrace.js + + + + + + + + +// NOTE: Unlike most `htmlBuilder`s, this one handles not only "horizBrace", but +var horizBrace_htmlBuilder = function htmlBuilder(grp, options) { + var style = options.style; // Pull out the `ParseNode<"horizBrace">` if `grp` is a "supsub" node. + + var supSubGroup; + var group; + + if (grp.type === "supsub") { + // Ref: LaTeX source2e: }}}}\limits} + // i.e. LaTeX treats the brace similar to an op and passes it + // with \limits, so we need to assign supsub style. + supSubGroup = grp.sup ? buildHTML_buildGroup(grp.sup, options.havingStyle(style.sup()), options) : buildHTML_buildGroup(grp.sub, options.havingStyle(style.sub()), options); + group = assertNodeType(grp.base, "horizBrace"); + } else { + group = assertNodeType(grp, "horizBrace"); + } // Build the base group + + + var body = buildHTML_buildGroup(group.base, options.havingBaseStyle(src_Style.DISPLAY)); // Create the stretchy element + + var braceBody = stretchy.svgSpan(group, options); // Generate the vlist, with the appropriate kerns ┏━━━━━━━━┓ + // This first vlist contains the content and the brace: equation + + var vlist; + + if (group.isOver) { + vlist = buildCommon.makeVList({ + positionType: "firstBaseline", + children: [{ + type: "elem", + elem: body + }, { + type: "kern", + size: 0.1 + }, { + type: "elem", + elem: braceBody + }] + }, options); // $FlowFixMe: Replace this with passing "svg-align" into makeVList. + + vlist.children[0].children[0].children[1].classes.push("svg-align"); + } else { + vlist = buildCommon.makeVList({ + positionType: "bottom", + positionData: body.depth + 0.1 + braceBody.height, + children: [{ + type: "elem", + elem: braceBody + }, { + type: "kern", + size: 0.1 + }, { + type: "elem", + elem: body + }] + }, options); // $FlowFixMe: Replace this with passing "svg-align" into makeVList. + + vlist.children[0].children[0].children[0].classes.push("svg-align"); + } + + if (supSubGroup) { + // To write the supsub, wrap the first vlist in another vlist: + // They can't all go in the same vlist, because the note might be + // wider than the equation. We want the equation to control the + // brace width. + // note long note long note + // ┏━━━━━━━━┓ or ┏━━━┓ not ┏━━━━━━━━━┓ + // equation eqn eqn + var vSpan = buildCommon.makeSpan(["mord", group.isOver ? "mover" : "munder"], [vlist], options); + + if (group.isOver) { + vlist = buildCommon.makeVList({ + positionType: "firstBaseline", + children: [{ + type: "elem", + elem: vSpan + }, { + type: "kern", + size: 0.2 + }, { + type: "elem", + elem: supSubGroup + }] + }, options); + } else { + vlist = buildCommon.makeVList({ + positionType: "bottom", + positionData: vSpan.depth + 0.2 + supSubGroup.height + supSubGroup.depth, + children: [{ + type: "elem", + elem: supSubGroup + }, { + type: "kern", + size: 0.2 + }, { + type: "elem", + elem: vSpan + }] + }, options); + } + } + + return buildCommon.makeSpan(["mord", group.isOver ? "mover" : "munder"], [vlist], options); +}; + +var horizBrace_mathmlBuilder = function mathmlBuilder(group, options) { + var accentNode = stretchy.mathMLnode(group.label); + return new mathMLTree.MathNode(group.isOver ? "mover" : "munder", [buildMathML_buildGroup(group.base, options), accentNode]); +}; // Horizontal stretchy braces + + +defineFunction({ + type: "horizBrace", + names: ["\\overbrace", "\\underbrace"], + props: { + numArgs: 1 + }, + handler: function handler(_ref, args) { + var parser = _ref.parser, + funcName = _ref.funcName; + return { + type: "horizBrace", + mode: parser.mode, + label: funcName, + isOver: /^\\over/.test(funcName), + base: args[0] + }; + }, + htmlBuilder: horizBrace_htmlBuilder, + mathmlBuilder: horizBrace_mathmlBuilder +}); +// CONCATENATED MODULE: ./src/functions/href.js + + + + + + +defineFunction({ + type: "href", + names: ["\\href"], + props: { + numArgs: 2, + argTypes: ["url", "original"], + allowedInText: true + }, + handler: function handler(_ref, args) { + var parser = _ref.parser; + var body = args[1]; + var href = assertNodeType(args[0], "url").url; + + if (!parser.settings.isTrusted({ + command: "\\href", + url: href + })) { + return parser.formatUnsupportedCmd("\\href"); + } + + return { + type: "href", + mode: parser.mode, + href: href, + body: ordargument(body) + }; + }, + htmlBuilder: function htmlBuilder(group, options) { + var elements = buildHTML_buildExpression(group.body, options, false); + return buildCommon.makeAnchor(group.href, [], elements, options); + }, + mathmlBuilder: function mathmlBuilder(group, options) { + var math = buildExpressionRow(group.body, options); + + if (!(math instanceof mathMLTree_MathNode)) { + math = new mathMLTree_MathNode("mrow", [math]); + } + + math.setAttribute("href", group.href); + return math; + } +}); +defineFunction({ + type: "href", + names: ["\\url"], + props: { + numArgs: 1, + argTypes: ["url"], + allowedInText: true + }, + handler: function handler(_ref2, args) { + var parser = _ref2.parser; + var href = assertNodeType(args[0], "url").url; + + if (!parser.settings.isTrusted({ + command: "\\url", + url: href + })) { + return parser.formatUnsupportedCmd("\\url"); + } + + var chars = []; + + for (var i = 0; i < href.length; i++) { + var c = href[i]; + + if (c === "~") { + c = "\\textasciitilde"; + } + + chars.push({ + type: "textord", + mode: "text", + text: c + }); + } + + var body = { + type: "text", + mode: parser.mode, + font: "\\texttt", + body: chars + }; + return { + type: "href", + mode: parser.mode, + href: href, + body: ordargument(body) + }; + } +}); +// CONCATENATED MODULE: ./src/functions/html.js + + + + + + +defineFunction({ + type: "html", + names: ["\\htmlClass", "\\htmlId", "\\htmlStyle", "\\htmlData"], + props: { + numArgs: 2, + argTypes: ["raw", "original"], + allowedInText: true + }, + handler: function handler(_ref, args) { + var parser = _ref.parser, + funcName = _ref.funcName, + token = _ref.token; + var value = assertNodeType(args[0], "raw").string; + var body = args[1]; + + if (parser.settings.strict) { + parser.settings.reportNonstrict("htmlExtension", "HTML extension is disabled on strict mode"); + } + + var trustContext; + var attributes = {}; + + switch (funcName) { + case "\\htmlClass": + attributes.class = value; + trustContext = { + command: "\\htmlClass", + class: value + }; + break; + + case "\\htmlId": + attributes.id = value; + trustContext = { + command: "\\htmlId", + id: value + }; + break; + + case "\\htmlStyle": + attributes.style = value; + trustContext = { + command: "\\htmlStyle", + style: value + }; + break; + + case "\\htmlData": + { + var data = value.split(","); + + for (var i = 0; i < data.length; i++) { + var keyVal = data[i].split("="); + + if (keyVal.length !== 2) { + throw new src_ParseError("Error parsing key-value for \\htmlData"); + } + + attributes["data-" + keyVal[0].trim()] = keyVal[1].trim(); + } + + trustContext = { + command: "\\htmlData", + attributes: attributes + }; + break; + } + + default: + throw new Error("Unrecognized html command"); + } + + if (!parser.settings.isTrusted(trustContext)) { + return parser.formatUnsupportedCmd(funcName); + } + + return { + type: "html", + mode: parser.mode, + attributes: attributes, + body: ordargument(body) + }; + }, + htmlBuilder: function htmlBuilder(group, options) { + var elements = buildHTML_buildExpression(group.body, options, false); + var classes = ["enclosing"]; + + if (group.attributes.class) { + classes.push.apply(classes, group.attributes.class.trim().split(/\s+/)); + } + + var span = buildCommon.makeSpan(classes, elements, options); + + for (var attr in group.attributes) { + if (attr !== "class" && group.attributes.hasOwnProperty(attr)) { + span.setAttribute(attr, group.attributes[attr]); + } + } + + return span; + }, + mathmlBuilder: function mathmlBuilder(group, options) { + return buildExpressionRow(group.body, options); + } +}); +// CONCATENATED MODULE: ./src/functions/htmlmathml.js + + + + +defineFunction({ + type: "htmlmathml", + names: ["\\html@mathml"], + props: { + numArgs: 2, + allowedInText: true + }, + handler: function handler(_ref, args) { + var parser = _ref.parser; + return { + type: "htmlmathml", + mode: parser.mode, + html: ordargument(args[0]), + mathml: ordargument(args[1]) + }; + }, + htmlBuilder: function htmlBuilder(group, options) { + var elements = buildHTML_buildExpression(group.html, options, false); + return buildCommon.makeFragment(elements); + }, + mathmlBuilder: function mathmlBuilder(group, options) { + return buildExpressionRow(group.mathml, options); + } +}); +// CONCATENATED MODULE: ./src/functions/includegraphics.js + + + + + + + +var includegraphics_sizeData = function sizeData(str) { + if (/^[-+]? *(\d+(\.\d*)?|\.\d+)$/.test(str)) { + // str is a number with no unit specified. + // default unit is bp, per graphix package. + return { + number: +str, + unit: "bp" + }; + } else { + var match = /([-+]?) *(\d+(?:\.\d*)?|\.\d+) *([a-z]{2})/.exec(str); + + if (!match) { + throw new src_ParseError("Invalid size: '" + str + "' in \\includegraphics"); + } + + var data = { + number: +(match[1] + match[2]), + // sign + magnitude, cast to number + unit: match[3] + }; + + if (!validUnit(data)) { + throw new src_ParseError("Invalid unit: '" + data.unit + "' in \\includegraphics."); + } + + return data; + } +}; + +defineFunction({ + type: "includegraphics", + names: ["\\includegraphics"], + props: { + numArgs: 1, + numOptionalArgs: 1, + argTypes: ["raw", "url"], + allowedInText: false + }, + handler: function handler(_ref, args, optArgs) { + var parser = _ref.parser; + var width = { + number: 0, + unit: "em" + }; + var height = { + number: 0.9, + unit: "em" + }; // sorta character sized. + + var totalheight = { + number: 0, + unit: "em" + }; + var alt = ""; + + if (optArgs[0]) { + var attributeStr = assertNodeType(optArgs[0], "raw").string; // Parser.js does not parse key/value pairs. We get a string. + + var attributes = attributeStr.split(","); + + for (var i = 0; i < attributes.length; i++) { + var keyVal = attributes[i].split("="); + + if (keyVal.length === 2) { + var str = keyVal[1].trim(); + + switch (keyVal[0].trim()) { + case "alt": + alt = str; + break; + + case "width": + width = includegraphics_sizeData(str); + break; + + case "height": + height = includegraphics_sizeData(str); + break; + + case "totalheight": + totalheight = includegraphics_sizeData(str); + break; + + default: + throw new src_ParseError("Invalid key: '" + keyVal[0] + "' in \\includegraphics."); + } + } + } + } + + var src = assertNodeType(args[0], "url").url; + + if (alt === "") { + // No alt given. Use the file name. Strip away the path. + alt = src; + alt = alt.replace(/^.*[\\/]/, ''); + alt = alt.substring(0, alt.lastIndexOf('.')); + } + + if (!parser.settings.isTrusted({ + command: "\\includegraphics", + url: src + })) { + return parser.formatUnsupportedCmd("\\includegraphics"); + } + + return { + type: "includegraphics", + mode: parser.mode, + alt: alt, + width: width, + height: height, + totalheight: totalheight, + src: src + }; + }, + htmlBuilder: function htmlBuilder(group, options) { + var height = units_calculateSize(group.height, options); + var depth = 0; + + if (group.totalheight.number > 0) { + depth = units_calculateSize(group.totalheight, options) - height; + depth = Number(depth.toFixed(2)); + } + + var width = 0; + + if (group.width.number > 0) { + width = units_calculateSize(group.width, options); + } + + var style = { + height: height + depth + "em" + }; + + if (width > 0) { + style.width = width + "em"; + } + + if (depth > 0) { + style.verticalAlign = -depth + "em"; + } + + var node = new domTree_Img(group.src, group.alt, style); + node.height = height; + node.depth = depth; + return node; + }, + mathmlBuilder: function mathmlBuilder(group, options) { + var node = new mathMLTree.MathNode("mglyph", []); + node.setAttribute("alt", group.alt); + var height = units_calculateSize(group.height, options); + var depth = 0; + + if (group.totalheight.number > 0) { + depth = units_calculateSize(group.totalheight, options) - height; + depth = depth.toFixed(2); + node.setAttribute("valign", "-" + depth + "em"); + } + + node.setAttribute("height", height + depth + "em"); + + if (group.width.number > 0) { + var width = units_calculateSize(group.width, options); + node.setAttribute("width", width + "em"); + } + + node.setAttribute("src", group.src); + return node; + } +}); +// CONCATENATED MODULE: ./src/functions/kern.js +// Horizontal spacing commands + + + + + // TODO: \hskip and \mskip should support plus and minus in lengths + +defineFunction({ + type: "kern", + names: ["\\kern", "\\mkern", "\\hskip", "\\mskip"], + props: { + numArgs: 1, + argTypes: ["size"], + allowedInText: true + }, + handler: function handler(_ref, args) { + var parser = _ref.parser, + funcName = _ref.funcName; + var size = assertNodeType(args[0], "size"); + + if (parser.settings.strict) { + var mathFunction = funcName[1] === 'm'; // \mkern, \mskip + + var muUnit = size.value.unit === 'mu'; + + if (mathFunction) { + if (!muUnit) { + parser.settings.reportNonstrict("mathVsTextUnits", "LaTeX's " + funcName + " supports only mu units, " + ("not " + size.value.unit + " units")); + } + + if (parser.mode !== "math") { + parser.settings.reportNonstrict("mathVsTextUnits", "LaTeX's " + funcName + " works only in math mode"); + } + } else { + // !mathFunction + if (muUnit) { + parser.settings.reportNonstrict("mathVsTextUnits", "LaTeX's " + funcName + " doesn't support mu units"); + } + } + } + + return { + type: "kern", + mode: parser.mode, + dimension: size.value + }; + }, + htmlBuilder: function htmlBuilder(group, options) { + return buildCommon.makeGlue(group.dimension, options); + }, + mathmlBuilder: function mathmlBuilder(group, options) { + var dimension = units_calculateSize(group.dimension, options); + return new mathMLTree.SpaceNode(dimension); + } +}); +// CONCATENATED MODULE: ./src/functions/lap.js +// Horizontal overlap functions + + + + + +defineFunction({ + type: "lap", + names: ["\\mathllap", "\\mathrlap", "\\mathclap"], + props: { + numArgs: 1, + allowedInText: true + }, + handler: function handler(_ref, args) { + var parser = _ref.parser, + funcName = _ref.funcName; + var body = args[0]; + return { + type: "lap", + mode: parser.mode, + alignment: funcName.slice(5), + body: body + }; + }, + htmlBuilder: function htmlBuilder(group, options) { + // mathllap, mathrlap, mathclap + var inner; + + if (group.alignment === "clap") { + // ref: https://www.math.lsu.edu/~aperlis/publications/mathclap/ + inner = buildCommon.makeSpan([], [buildHTML_buildGroup(group.body, options)]); // wrap, since CSS will center a .clap > .inner > span + + inner = buildCommon.makeSpan(["inner"], [inner], options); + } else { + inner = buildCommon.makeSpan(["inner"], [buildHTML_buildGroup(group.body, options)]); + } + + var fix = buildCommon.makeSpan(["fix"], []); + var node = buildCommon.makeSpan([group.alignment], [inner, fix], options); // At this point, we have correctly set horizontal alignment of the + // two items involved in the lap. + // Next, use a strut to set the height of the HTML bounding box. + // Otherwise, a tall argument may be misplaced. + // This code resolved issue #1153 + + var strut = buildCommon.makeSpan(["strut"]); + strut.style.height = node.height + node.depth + "em"; + strut.style.verticalAlign = -node.depth + "em"; + node.children.unshift(strut); // Next, prevent vertical misplacement when next to something tall. + // This code resolves issue #1234 + + node = buildCommon.makeSpan(["thinbox"], [node], options); + return buildCommon.makeSpan(["mord", "vbox"], [node], options); + }, + mathmlBuilder: function mathmlBuilder(group, options) { + // mathllap, mathrlap, mathclap + var node = new mathMLTree.MathNode("mpadded", [buildMathML_buildGroup(group.body, options)]); + + if (group.alignment !== "rlap") { + var offset = group.alignment === "llap" ? "-1" : "-0.5"; + node.setAttribute("lspace", offset + "width"); + } + + node.setAttribute("width", "0px"); + return node; + } +}); +// CONCATENATED MODULE: ./src/functions/math.js + + // Switching from text mode back to math mode + +defineFunction({ + type: "styling", + names: ["\\(", "$"], + props: { + numArgs: 0, + allowedInText: true, + allowedInMath: false + }, + handler: function handler(_ref, args) { + var funcName = _ref.funcName, + parser = _ref.parser; + var outerMode = parser.mode; + parser.switchMode("math"); + var close = funcName === "\\(" ? "\\)" : "$"; + var body = parser.parseExpression(false, close); + parser.expect(close); + parser.switchMode(outerMode); + return { + type: "styling", + mode: parser.mode, + style: "text", + body: body + }; + } +}); // Check for extra closing math delimiters + +defineFunction({ + type: "text", + // Doesn't matter what this is. + names: ["\\)", "\\]"], + props: { + numArgs: 0, + allowedInText: true, + allowedInMath: false + }, + handler: function handler(context, args) { + throw new src_ParseError("Mismatched " + context.funcName); + } +}); +// CONCATENATED MODULE: ./src/functions/mathchoice.js + + + + + + +var mathchoice_chooseMathStyle = function chooseMathStyle(group, options) { + switch (options.style.size) { + case src_Style.DISPLAY.size: + return group.display; + + case src_Style.TEXT.size: + return group.text; + + case src_Style.SCRIPT.size: + return group.script; + + case src_Style.SCRIPTSCRIPT.size: + return group.scriptscript; + + default: + return group.text; + } +}; + +defineFunction({ + type: "mathchoice", + names: ["\\mathchoice"], + props: { + numArgs: 4 + }, + handler: function handler(_ref, args) { + var parser = _ref.parser; + return { + type: "mathchoice", + mode: parser.mode, + display: ordargument(args[0]), + text: ordargument(args[1]), + script: ordargument(args[2]), + scriptscript: ordargument(args[3]) + }; + }, + htmlBuilder: function htmlBuilder(group, options) { + var body = mathchoice_chooseMathStyle(group, options); + var elements = buildHTML_buildExpression(body, options, false); + return buildCommon.makeFragment(elements); + }, + mathmlBuilder: function mathmlBuilder(group, options) { + var body = mathchoice_chooseMathStyle(group, options); + return buildExpressionRow(body, options); + } +}); +// CONCATENATED MODULE: ./src/functions/utils/assembleSupSub.js + + +// For an operator with limits, assemble the base, sup, and sub into a span. +var assembleSupSub_assembleSupSub = function assembleSupSub(base, supGroup, subGroup, options, style, slant, baseShift) { + base = buildCommon.makeSpan([], [base]); + var sub; + var sup; // We manually have to handle the superscripts and subscripts. This, + // aside from the kern calculations, is copied from supsub. + + if (supGroup) { + var elem = buildHTML_buildGroup(supGroup, options.havingStyle(style.sup()), options); + sup = { + elem: elem, + kern: Math.max(options.fontMetrics().bigOpSpacing1, options.fontMetrics().bigOpSpacing3 - elem.depth) + }; + } + + if (subGroup) { + var _elem = buildHTML_buildGroup(subGroup, options.havingStyle(style.sub()), options); + + sub = { + elem: _elem, + kern: Math.max(options.fontMetrics().bigOpSpacing2, options.fontMetrics().bigOpSpacing4 - _elem.height) + }; + } // Build the final group as a vlist of the possible subscript, base, + // and possible superscript. + + + var finalGroup; + + if (sup && sub) { + var bottom = options.fontMetrics().bigOpSpacing5 + sub.elem.height + sub.elem.depth + sub.kern + base.depth + baseShift; + finalGroup = buildCommon.makeVList({ + positionType: "bottom", + positionData: bottom, + children: [{ + type: "kern", + size: options.fontMetrics().bigOpSpacing5 + }, { + type: "elem", + elem: sub.elem, + marginLeft: -slant + "em" + }, { + type: "kern", + size: sub.kern + }, { + type: "elem", + elem: base + }, { + type: "kern", + size: sup.kern + }, { + type: "elem", + elem: sup.elem, + marginLeft: slant + "em" + }, { + type: "kern", + size: options.fontMetrics().bigOpSpacing5 + }] + }, options); + } else if (sub) { + var top = base.height - baseShift; // Shift the limits by the slant of the symbol. Note + // that we are supposed to shift the limits by 1/2 of the slant, + // but since we are centering the limits adding a full slant of + // margin will shift by 1/2 that. + + finalGroup = buildCommon.makeVList({ + positionType: "top", + positionData: top, + children: [{ + type: "kern", + size: options.fontMetrics().bigOpSpacing5 + }, { + type: "elem", + elem: sub.elem, + marginLeft: -slant + "em" + }, { + type: "kern", + size: sub.kern + }, { + type: "elem", + elem: base + }] + }, options); + } else if (sup) { + var _bottom = base.depth + baseShift; + + finalGroup = buildCommon.makeVList({ + positionType: "bottom", + positionData: _bottom, + children: [{ + type: "elem", + elem: base + }, { + type: "kern", + size: sup.kern + }, { + type: "elem", + elem: sup.elem, + marginLeft: slant + "em" + }, { + type: "kern", + size: options.fontMetrics().bigOpSpacing5 + }] + }, options); + } else { + // This case probably shouldn't occur (this would mean the + // supsub was sending us a group with no superscript or + // subscript) but be safe. + return base; + } + + return buildCommon.makeSpan(["mop", "op-limits"], [finalGroup], options); +}; +// CONCATENATED MODULE: ./src/functions/op.js +// Limits, symbols + + + + + + + + + + +// Most operators have a large successor symbol, but these don't. +var noSuccessor = ["\\smallint"]; // NOTE: Unlike most `htmlBuilder`s, this one handles not only "op", but also +// "supsub" since some of them (like \int) can affect super/subscripting. + +var op_htmlBuilder = function htmlBuilder(grp, options) { + // Operators are handled in the TeXbook pg. 443-444, rule 13(a). + var supGroup; + var subGroup; + var hasLimits = false; + var group; + + if (grp.type === "supsub") { + // If we have limits, supsub will pass us its group to handle. Pull + // out the superscript and subscript and set the group to the op in + // its base. + supGroup = grp.sup; + subGroup = grp.sub; + group = assertNodeType(grp.base, "op"); + hasLimits = true; + } else { + group = assertNodeType(grp, "op"); + } + + var style = options.style; + var large = false; + + if (style.size === src_Style.DISPLAY.size && group.symbol && !utils.contains(noSuccessor, group.name)) { + // Most symbol operators get larger in displaystyle (rule 13) + large = true; + } + + var base; + + if (group.symbol) { + // If this is a symbol, create the symbol. + var fontName = large ? "Size2-Regular" : "Size1-Regular"; + var stash = ""; + + if (group.name === "\\oiint" || group.name === "\\oiiint") { + // No font glyphs yet, so use a glyph w/o the oval. + // TODO: When font glyphs are available, delete this code. + stash = group.name.substr(1); // $FlowFixMe + + group.name = stash === "oiint" ? "\\iint" : "\\iiint"; + } + + base = buildCommon.makeSymbol(group.name, fontName, "math", options, ["mop", "op-symbol", large ? "large-op" : "small-op"]); + + if (stash.length > 0) { + // We're in \oiint or \oiiint. Overlay the oval. + // TODO: When font glyphs are available, delete this code. + var italic = base.italic; + var oval = buildCommon.staticSvg(stash + "Size" + (large ? "2" : "1"), options); + base = buildCommon.makeVList({ + positionType: "individualShift", + children: [{ + type: "elem", + elem: base, + shift: 0 + }, { + type: "elem", + elem: oval, + shift: large ? 0.08 : 0 + }] + }, options); // $FlowFixMe + + group.name = "\\" + stash; + base.classes.unshift("mop"); // $FlowFixMe + + base.italic = italic; + } + } else if (group.body) { + // If this is a list, compose that list. + var inner = buildHTML_buildExpression(group.body, options, true); + + if (inner.length === 1 && inner[0] instanceof domTree_SymbolNode) { + base = inner[0]; + base.classes[0] = "mop"; // replace old mclass + } else { + base = buildCommon.makeSpan(["mop"], buildCommon.tryCombineChars(inner), options); + } + } else { + // Otherwise, this is a text operator. Build the text from the + // operator's name. + // TODO(emily): Add a space in the middle of some of these + // operators, like \limsup + var output = []; + + for (var i = 1; i < group.name.length; i++) { + output.push(buildCommon.mathsym(group.name[i], group.mode, options)); + } + + base = buildCommon.makeSpan(["mop"], output, options); + } // If content of op is a single symbol, shift it vertically. + + + var baseShift = 0; + var slant = 0; + + if ((base instanceof domTree_SymbolNode || group.name === "\\oiint" || group.name === "\\oiiint") && !group.suppressBaseShift) { + // We suppress the shift of the base of \overset and \underset. Otherwise, + // shift the symbol so its center lies on the axis (rule 13). It + // appears that our fonts have the centers of the symbols already + // almost on the axis, so these numbers are very small. Note we + // don't actually apply this here, but instead it is used either in + // the vlist creation or separately when there are no limits. + baseShift = (base.height - base.depth) / 2 - options.fontMetrics().axisHeight; // The slant of the symbol is just its italic correction. + // $FlowFixMe + + slant = base.italic; + } + + if (hasLimits) { + return assembleSupSub_assembleSupSub(base, supGroup, subGroup, options, style, slant, baseShift); + } else { + if (baseShift) { + base.style.position = "relative"; + base.style.top = baseShift + "em"; + } + + return base; + } +}; + +var op_mathmlBuilder = function mathmlBuilder(group, options) { + var node; + + if (group.symbol) { + // This is a symbol. Just add the symbol. + node = new mathMLTree_MathNode("mo", [buildMathML_makeText(group.name, group.mode)]); + + if (utils.contains(noSuccessor, group.name)) { + node.setAttribute("largeop", "false"); + } + } else if (group.body) { + // This is an operator with children. Add them. + node = new mathMLTree_MathNode("mo", buildMathML_buildExpression(group.body, options)); + } else { + // This is a text operator. Add all of the characters from the + // operator's name. + node = new mathMLTree_MathNode("mi", [new mathMLTree_TextNode(group.name.slice(1))]); // Append an . + // ref: https://www.w3.org/TR/REC-MathML/chap3_2.html#sec3.2.4 + + var operator = new mathMLTree_MathNode("mo", [buildMathML_makeText("\u2061", "text")]); + + if (group.parentIsSupSub) { + node = new mathMLTree_MathNode("mo", [node, operator]); + } else { + node = newDocumentFragment([node, operator]); + } + } + + return node; +}; + +var singleCharBigOps = { + "\u220F": "\\prod", + "\u2210": "\\coprod", + "\u2211": "\\sum", + "\u22C0": "\\bigwedge", + "\u22C1": "\\bigvee", + "\u22C2": "\\bigcap", + "\u22C3": "\\bigcup", + "\u2A00": "\\bigodot", + "\u2A01": "\\bigoplus", + "\u2A02": "\\bigotimes", + "\u2A04": "\\biguplus", + "\u2A06": "\\bigsqcup" +}; +defineFunction({ + type: "op", + names: ["\\coprod", "\\bigvee", "\\bigwedge", "\\biguplus", "\\bigcap", "\\bigcup", "\\intop", "\\prod", "\\sum", "\\bigotimes", "\\bigoplus", "\\bigodot", "\\bigsqcup", "\\smallint", "\u220F", "\u2210", "\u2211", "\u22C0", "\u22C1", "\u22C2", "\u22C3", "\u2A00", "\u2A01", "\u2A02", "\u2A04", "\u2A06"], + props: { + numArgs: 0 + }, + handler: function handler(_ref, args) { + var parser = _ref.parser, + funcName = _ref.funcName; + var fName = funcName; + + if (fName.length === 1) { + fName = singleCharBigOps[fName]; + } + + return { + type: "op", + mode: parser.mode, + limits: true, + parentIsSupSub: false, + symbol: true, + name: fName + }; + }, + htmlBuilder: op_htmlBuilder, + mathmlBuilder: op_mathmlBuilder +}); // Note: calling defineFunction with a type that's already been defined only +// works because the same htmlBuilder and mathmlBuilder are being used. + +defineFunction({ + type: "op", + names: ["\\mathop"], + props: { + numArgs: 1 + }, + handler: function handler(_ref2, args) { + var parser = _ref2.parser; + var body = args[0]; + return { + type: "op", + mode: parser.mode, + limits: false, + parentIsSupSub: false, + symbol: false, + body: ordargument(body) + }; + }, + htmlBuilder: op_htmlBuilder, + mathmlBuilder: op_mathmlBuilder +}); // There are 2 flags for operators; whether they produce limits in +// displaystyle, and whether they are symbols and should grow in +// displaystyle. These four groups cover the four possible choices. + +var singleCharIntegrals = { + "\u222B": "\\int", + "\u222C": "\\iint", + "\u222D": "\\iiint", + "\u222E": "\\oint", + "\u222F": "\\oiint", + "\u2230": "\\oiiint" +}; // No limits, not symbols + +defineFunction({ + type: "op", + names: ["\\arcsin", "\\arccos", "\\arctan", "\\arctg", "\\arcctg", "\\arg", "\\ch", "\\cos", "\\cosec", "\\cosh", "\\cot", "\\cotg", "\\coth", "\\csc", "\\ctg", "\\cth", "\\deg", "\\dim", "\\exp", "\\hom", "\\ker", "\\lg", "\\ln", "\\log", "\\sec", "\\sin", "\\sinh", "\\sh", "\\tan", "\\tanh", "\\tg", "\\th"], + props: { + numArgs: 0 + }, + handler: function handler(_ref3) { + var parser = _ref3.parser, + funcName = _ref3.funcName; + return { + type: "op", + mode: parser.mode, + limits: false, + parentIsSupSub: false, + symbol: false, + name: funcName + }; + }, + htmlBuilder: op_htmlBuilder, + mathmlBuilder: op_mathmlBuilder +}); // Limits, not symbols + +defineFunction({ + type: "op", + names: ["\\det", "\\gcd", "\\inf", "\\lim", "\\max", "\\min", "\\Pr", "\\sup"], + props: { + numArgs: 0 + }, + handler: function handler(_ref4) { + var parser = _ref4.parser, + funcName = _ref4.funcName; + return { + type: "op", + mode: parser.mode, + limits: true, + parentIsSupSub: false, + symbol: false, + name: funcName + }; + }, + htmlBuilder: op_htmlBuilder, + mathmlBuilder: op_mathmlBuilder +}); // No limits, symbols + +defineFunction({ + type: "op", + names: ["\\int", "\\iint", "\\iiint", "\\oint", "\\oiint", "\\oiiint", "\u222B", "\u222C", "\u222D", "\u222E", "\u222F", "\u2230"], + props: { + numArgs: 0 + }, + handler: function handler(_ref5) { + var parser = _ref5.parser, + funcName = _ref5.funcName; + var fName = funcName; + + if (fName.length === 1) { + fName = singleCharIntegrals[fName]; + } + + return { + type: "op", + mode: parser.mode, + limits: false, + parentIsSupSub: false, + symbol: true, + name: fName + }; + }, + htmlBuilder: op_htmlBuilder, + mathmlBuilder: op_mathmlBuilder +}); +// CONCATENATED MODULE: ./src/functions/operatorname.js + + + + + + + + +// NOTE: Unlike most `htmlBuilder`s, this one handles not only +// "operatorname", but also "supsub" since \operatorname* can +var operatorname_htmlBuilder = function htmlBuilder(grp, options) { + // Operators are handled in the TeXbook pg. 443-444, rule 13(a). + var supGroup; + var subGroup; + var hasLimits = false; + var group; + + if (grp.type === "supsub") { + // If we have limits, supsub will pass us its group to handle. Pull + // out the superscript and subscript and set the group to the op in + // its base. + supGroup = grp.sup; + subGroup = grp.sub; + group = assertNodeType(grp.base, "operatorname"); + hasLimits = true; + } else { + group = assertNodeType(grp, "operatorname"); + } + + var base; + + if (group.body.length > 0) { + var body = group.body.map(function (child) { + // $FlowFixMe: Check if the node has a string `text` property. + var childText = child.text; + + if (typeof childText === "string") { + return { + type: "textord", + mode: child.mode, + text: childText + }; + } else { + return child; + } + }); // Consolidate function names into symbol characters. + + var expression = buildHTML_buildExpression(body, options.withFont("mathrm"), true); + + for (var i = 0; i < expression.length; i++) { + var child = expression[i]; + + if (child instanceof domTree_SymbolNode) { + // Per amsopn package, + // change minus to hyphen and \ast to asterisk + child.text = child.text.replace(/\u2212/, "-").replace(/\u2217/, "*"); + } + } + + base = buildCommon.makeSpan(["mop"], expression, options); + } else { + base = buildCommon.makeSpan(["mop"], [], options); + } + + if (hasLimits) { + return assembleSupSub_assembleSupSub(base, supGroup, subGroup, options, options.style, 0, 0); + } else { + return base; + } +}; + +var operatorname_mathmlBuilder = function mathmlBuilder(group, options) { + // The steps taken here are similar to the html version. + var expression = buildMathML_buildExpression(group.body, options.withFont("mathrm")); // Is expression a string or has it something like a fraction? + + var isAllString = true; // default + + for (var i = 0; i < expression.length; i++) { + var node = expression[i]; + + if (node instanceof mathMLTree.SpaceNode) {// Do nothing + } else if (node instanceof mathMLTree.MathNode) { + switch (node.type) { + case "mi": + case "mn": + case "ms": + case "mspace": + case "mtext": + break; + // Do nothing yet. + + case "mo": + { + var child = node.children[0]; + + if (node.children.length === 1 && child instanceof mathMLTree.TextNode) { + child.text = child.text.replace(/\u2212/, "-").replace(/\u2217/, "*"); + } else { + isAllString = false; + } + + break; + } + + default: + isAllString = false; + } + } else { + isAllString = false; + } + } + + if (isAllString) { + // Write a single TextNode instead of multiple nested tags. + var word = expression.map(function (node) { + return node.toText(); + }).join(""); + expression = [new mathMLTree.TextNode(word)]; + } + + var identifier = new mathMLTree.MathNode("mi", expression); + identifier.setAttribute("mathvariant", "normal"); // \u2061 is the same as ⁡ + // ref: https://www.w3schools.com/charsets/ref_html_entities_a.asp + + var operator = new mathMLTree.MathNode("mo", [buildMathML_makeText("\u2061", "text")]); + + if (group.parentIsSupSub) { + return new mathMLTree.MathNode("mo", [identifier, operator]); + } else { + return mathMLTree.newDocumentFragment([identifier, operator]); + } +}; // \operatorname +// amsopn.dtx: \mathop{#1\kern\z@\operator@font#3}\newmcodes@ + + +defineFunction({ + type: "operatorname", + names: ["\\operatorname", "\\operatorname*"], + props: { + numArgs: 1 + }, + handler: function handler(_ref, args) { + var parser = _ref.parser, + funcName = _ref.funcName; + var body = args[0]; + return { + type: "operatorname", + mode: parser.mode, + body: ordargument(body), + alwaysHandleSupSub: funcName === "\\operatorname*", + limits: false, + parentIsSupSub: false + }; + }, + htmlBuilder: operatorname_htmlBuilder, + mathmlBuilder: operatorname_mathmlBuilder +}); +// CONCATENATED MODULE: ./src/functions/ordgroup.js + + + + +defineFunctionBuilders({ + type: "ordgroup", + htmlBuilder: function htmlBuilder(group, options) { + if (group.semisimple) { + return buildCommon.makeFragment(buildHTML_buildExpression(group.body, options, false)); + } + + return buildCommon.makeSpan(["mord"], buildHTML_buildExpression(group.body, options, true), options); + }, + mathmlBuilder: function mathmlBuilder(group, options) { + return buildExpressionRow(group.body, options, true); + } +}); +// CONCATENATED MODULE: ./src/functions/overline.js + + + + + +defineFunction({ + type: "overline", + names: ["\\overline"], + props: { + numArgs: 1 + }, + handler: function handler(_ref, args) { + var parser = _ref.parser; + var body = args[0]; + return { + type: "overline", + mode: parser.mode, + body: body + }; + }, + htmlBuilder: function htmlBuilder(group, options) { + // Overlines are handled in the TeXbook pg 443, Rule 9. + // Build the inner group in the cramped style. + var innerGroup = buildHTML_buildGroup(group.body, options.havingCrampedStyle()); // Create the line above the body + + var line = buildCommon.makeLineSpan("overline-line", options); // Generate the vlist, with the appropriate kerns + + var defaultRuleThickness = options.fontMetrics().defaultRuleThickness; + var vlist = buildCommon.makeVList({ + positionType: "firstBaseline", + children: [{ + type: "elem", + elem: innerGroup + }, { + type: "kern", + size: 3 * defaultRuleThickness + }, { + type: "elem", + elem: line + }, { + type: "kern", + size: defaultRuleThickness + }] + }, options); + return buildCommon.makeSpan(["mord", "overline"], [vlist], options); + }, + mathmlBuilder: function mathmlBuilder(group, options) { + var operator = new mathMLTree.MathNode("mo", [new mathMLTree.TextNode("\u203E")]); + operator.setAttribute("stretchy", "true"); + var node = new mathMLTree.MathNode("mover", [buildMathML_buildGroup(group.body, options), operator]); + node.setAttribute("accent", "true"); + return node; + } +}); +// CONCATENATED MODULE: ./src/functions/phantom.js + + + + + +defineFunction({ + type: "phantom", + names: ["\\phantom"], + props: { + numArgs: 1, + allowedInText: true + }, + handler: function handler(_ref, args) { + var parser = _ref.parser; + var body = args[0]; + return { + type: "phantom", + mode: parser.mode, + body: ordargument(body) + }; + }, + htmlBuilder: function htmlBuilder(group, options) { + var elements = buildHTML_buildExpression(group.body, options.withPhantom(), false); // \phantom isn't supposed to affect the elements it contains. + // See "color" for more details. + + return buildCommon.makeFragment(elements); + }, + mathmlBuilder: function mathmlBuilder(group, options) { + var inner = buildMathML_buildExpression(group.body, options); + return new mathMLTree.MathNode("mphantom", inner); + } +}); +defineFunction({ + type: "hphantom", + names: ["\\hphantom"], + props: { + numArgs: 1, + allowedInText: true + }, + handler: function handler(_ref2, args) { + var parser = _ref2.parser; + var body = args[0]; + return { + type: "hphantom", + mode: parser.mode, + body: body + }; + }, + htmlBuilder: function htmlBuilder(group, options) { + var node = buildCommon.makeSpan([], [buildHTML_buildGroup(group.body, options.withPhantom())]); + node.height = 0; + node.depth = 0; + + if (node.children) { + for (var i = 0; i < node.children.length; i++) { + node.children[i].height = 0; + node.children[i].depth = 0; + } + } // See smash for comment re: use of makeVList + + + node = buildCommon.makeVList({ + positionType: "firstBaseline", + children: [{ + type: "elem", + elem: node + }] + }, options); // For spacing, TeX treats \smash as a math group (same spacing as ord). + + return buildCommon.makeSpan(["mord"], [node], options); + }, + mathmlBuilder: function mathmlBuilder(group, options) { + var inner = buildMathML_buildExpression(ordargument(group.body), options); + var phantom = new mathMLTree.MathNode("mphantom", inner); + var node = new mathMLTree.MathNode("mpadded", [phantom]); + node.setAttribute("height", "0px"); + node.setAttribute("depth", "0px"); + return node; + } +}); +defineFunction({ + type: "vphantom", + names: ["\\vphantom"], + props: { + numArgs: 1, + allowedInText: true + }, + handler: function handler(_ref3, args) { + var parser = _ref3.parser; + var body = args[0]; + return { + type: "vphantom", + mode: parser.mode, + body: body + }; + }, + htmlBuilder: function htmlBuilder(group, options) { + var inner = buildCommon.makeSpan(["inner"], [buildHTML_buildGroup(group.body, options.withPhantom())]); + var fix = buildCommon.makeSpan(["fix"], []); + return buildCommon.makeSpan(["mord", "rlap"], [inner, fix], options); + }, + mathmlBuilder: function mathmlBuilder(group, options) { + var inner = buildMathML_buildExpression(ordargument(group.body), options); + var phantom = new mathMLTree.MathNode("mphantom", inner); + var node = new mathMLTree.MathNode("mpadded", [phantom]); + node.setAttribute("width", "0px"); + return node; + } +}); +// CONCATENATED MODULE: ./src/functions/raisebox.js + + + + + + + // Box manipulation + +defineFunction({ + type: "raisebox", + names: ["\\raisebox"], + props: { + numArgs: 2, + argTypes: ["size", "hbox"], + allowedInText: true + }, + handler: function handler(_ref, args) { + var parser = _ref.parser; + var amount = assertNodeType(args[0], "size").value; + var body = args[1]; + return { + type: "raisebox", + mode: parser.mode, + dy: amount, + body: body + }; + }, + htmlBuilder: function htmlBuilder(group, options) { + var body = buildHTML_buildGroup(group.body, options); + var dy = units_calculateSize(group.dy, options); + return buildCommon.makeVList({ + positionType: "shift", + positionData: -dy, + children: [{ + type: "elem", + elem: body + }] + }, options); + }, + mathmlBuilder: function mathmlBuilder(group, options) { + var node = new mathMLTree.MathNode("mpadded", [buildMathML_buildGroup(group.body, options)]); + var dy = group.dy.number + group.dy.unit; + node.setAttribute("voffset", dy); + return node; + } +}); +// CONCATENATED MODULE: ./src/functions/rule.js + + + + + +defineFunction({ + type: "rule", + names: ["\\rule"], + props: { + numArgs: 2, + numOptionalArgs: 1, + argTypes: ["size", "size", "size"] + }, + handler: function handler(_ref, args, optArgs) { + var parser = _ref.parser; + var shift = optArgs[0]; + var width = assertNodeType(args[0], "size"); + var height = assertNodeType(args[1], "size"); + return { + type: "rule", + mode: parser.mode, + shift: shift && assertNodeType(shift, "size").value, + width: width.value, + height: height.value + }; + }, + htmlBuilder: function htmlBuilder(group, options) { + // Make an empty span for the rule + var rule = buildCommon.makeSpan(["mord", "rule"], [], options); // Calculate the shift, width, and height of the rule, and account for units + + var width = units_calculateSize(group.width, options); + var height = units_calculateSize(group.height, options); + var shift = group.shift ? units_calculateSize(group.shift, options) : 0; // Style the rule to the right size + + rule.style.borderRightWidth = width + "em"; + rule.style.borderTopWidth = height + "em"; + rule.style.bottom = shift + "em"; // Record the height and width + + rule.width = width; + rule.height = height + shift; + rule.depth = -shift; // Font size is the number large enough that the browser will + // reserve at least `absHeight` space above the baseline. + // The 1.125 factor was empirically determined + + rule.maxFontSize = height * 1.125 * options.sizeMultiplier; + return rule; + }, + mathmlBuilder: function mathmlBuilder(group, options) { + var width = units_calculateSize(group.width, options); + var height = units_calculateSize(group.height, options); + var shift = group.shift ? units_calculateSize(group.shift, options) : 0; + var color = options.color && options.getColor() || "black"; + var rule = new mathMLTree.MathNode("mspace"); + rule.setAttribute("mathbackground", color); + rule.setAttribute("width", width + "em"); + rule.setAttribute("height", height + "em"); + var wrapper = new mathMLTree.MathNode("mpadded", [rule]); + + if (shift >= 0) { + wrapper.setAttribute("height", "+" + shift + "em"); + } else { + wrapper.setAttribute("height", shift + "em"); + wrapper.setAttribute("depth", "+" + -shift + "em"); + } + + wrapper.setAttribute("voffset", shift + "em"); + return wrapper; + } +}); +// CONCATENATED MODULE: ./src/functions/sizing.js + + + + + +function sizingGroup(value, options, baseOptions) { + var inner = buildHTML_buildExpression(value, options, false); + var multiplier = options.sizeMultiplier / baseOptions.sizeMultiplier; // Add size-resetting classes to the inner list and set maxFontSize + // manually. Handle nested size changes. + + for (var i = 0; i < inner.length; i++) { + var pos = inner[i].classes.indexOf("sizing"); + + if (pos < 0) { + Array.prototype.push.apply(inner[i].classes, options.sizingClasses(baseOptions)); + } else if (inner[i].classes[pos + 1] === "reset-size" + options.size) { + // This is a nested size change: e.g., inner[i] is the "b" in + // `\Huge a \small b`. Override the old size (the `reset-` class) + // but not the new size. + inner[i].classes[pos + 1] = "reset-size" + baseOptions.size; + } + + inner[i].height *= multiplier; + inner[i].depth *= multiplier; + } + + return buildCommon.makeFragment(inner); +} +var sizeFuncs = ["\\tiny", "\\sixptsize", "\\scriptsize", "\\footnotesize", "\\small", "\\normalsize", "\\large", "\\Large", "\\LARGE", "\\huge", "\\Huge"]; +var sizing_htmlBuilder = function htmlBuilder(group, options) { + // Handle sizing operators like \Huge. Real TeX doesn't actually allow + // these functions inside of math expressions, so we do some special + // handling. + var newOptions = options.havingSize(group.size); + return sizingGroup(group.body, newOptions, options); +}; +defineFunction({ + type: "sizing", + names: sizeFuncs, + props: { + numArgs: 0, + allowedInText: true + }, + handler: function handler(_ref, args) { + var breakOnTokenText = _ref.breakOnTokenText, + funcName = _ref.funcName, + parser = _ref.parser; + var body = parser.parseExpression(false, breakOnTokenText); + return { + type: "sizing", + mode: parser.mode, + // Figure out what size to use based on the list of functions above + size: sizeFuncs.indexOf(funcName) + 1, + body: body + }; + }, + htmlBuilder: sizing_htmlBuilder, + mathmlBuilder: function mathmlBuilder(group, options) { + var newOptions = options.havingSize(group.size); + var inner = buildMathML_buildExpression(group.body, newOptions); + var node = new mathMLTree.MathNode("mstyle", inner); // TODO(emily): This doesn't produce the correct size for nested size + // changes, because we don't keep state of what style we're currently + // in, so we can't reset the size to normal before changing it. Now + // that we're passing an options parameter we should be able to fix + // this. + + node.setAttribute("mathsize", newOptions.sizeMultiplier + "em"); + return node; + } +}); +// CONCATENATED MODULE: ./src/functions/smash.js +// smash, with optional [tb], as in AMS + + + + + + +defineFunction({ + type: "smash", + names: ["\\smash"], + props: { + numArgs: 1, + numOptionalArgs: 1, + allowedInText: true + }, + handler: function handler(_ref, args, optArgs) { + var parser = _ref.parser; + var smashHeight = false; + var smashDepth = false; + var tbArg = optArgs[0] && assertNodeType(optArgs[0], "ordgroup"); + + if (tbArg) { + // Optional [tb] argument is engaged. + // ref: amsmath: \renewcommand{\smash}[1][tb]{% + // def\mb@t{\ht}\def\mb@b{\dp}\def\mb@tb{\ht\z@\z@\dp}% + var letter = ""; + + for (var i = 0; i < tbArg.body.length; ++i) { + var node = tbArg.body[i]; // $FlowFixMe: Not every node type has a `text` property. + + letter = node.text; + + if (letter === "t") { + smashHeight = true; + } else if (letter === "b") { + smashDepth = true; + } else { + smashHeight = false; + smashDepth = false; + break; + } + } + } else { + smashHeight = true; + smashDepth = true; + } + + var body = args[0]; + return { + type: "smash", + mode: parser.mode, + body: body, + smashHeight: smashHeight, + smashDepth: smashDepth + }; + }, + htmlBuilder: function htmlBuilder(group, options) { + var node = buildCommon.makeSpan([], [buildHTML_buildGroup(group.body, options)]); + + if (!group.smashHeight && !group.smashDepth) { + return node; + } + + if (group.smashHeight) { + node.height = 0; // In order to influence makeVList, we have to reset the children. + + if (node.children) { + for (var i = 0; i < node.children.length; i++) { + node.children[i].height = 0; + } + } + } + + if (group.smashDepth) { + node.depth = 0; + + if (node.children) { + for (var _i = 0; _i < node.children.length; _i++) { + node.children[_i].depth = 0; + } + } + } // At this point, we've reset the TeX-like height and depth values. + // But the span still has an HTML line height. + // makeVList applies "display: table-cell", which prevents the browser + // from acting on that line height. So we'll call makeVList now. + + + var smashedNode = buildCommon.makeVList({ + positionType: "firstBaseline", + children: [{ + type: "elem", + elem: node + }] + }, options); // For spacing, TeX treats \hphantom as a math group (same spacing as ord). + + return buildCommon.makeSpan(["mord"], [smashedNode], options); + }, + mathmlBuilder: function mathmlBuilder(group, options) { + var node = new mathMLTree.MathNode("mpadded", [buildMathML_buildGroup(group.body, options)]); + + if (group.smashHeight) { + node.setAttribute("height", "0px"); + } + + if (group.smashDepth) { + node.setAttribute("depth", "0px"); + } + + return node; + } +}); +// CONCATENATED MODULE: ./src/functions/sqrt.js + + + + + + + +defineFunction({ + type: "sqrt", + names: ["\\sqrt"], + props: { + numArgs: 1, + numOptionalArgs: 1 + }, + handler: function handler(_ref, args, optArgs) { + var parser = _ref.parser; + var index = optArgs[0]; + var body = args[0]; + return { + type: "sqrt", + mode: parser.mode, + body: body, + index: index + }; + }, + htmlBuilder: function htmlBuilder(group, options) { + // Square roots are handled in the TeXbook pg. 443, Rule 11. + // First, we do the same steps as in overline to build the inner group + // and line + var inner = buildHTML_buildGroup(group.body, options.havingCrampedStyle()); + + if (inner.height === 0) { + // Render a small surd. + inner.height = options.fontMetrics().xHeight; + } // Some groups can return document fragments. Handle those by wrapping + // them in a span. + + + inner = buildCommon.wrapFragment(inner, options); // Calculate the minimum size for the \surd delimiter + + var metrics = options.fontMetrics(); + var theta = metrics.defaultRuleThickness; + var phi = theta; + + if (options.style.id < src_Style.TEXT.id) { + phi = options.fontMetrics().xHeight; + } // Calculate the clearance between the body and line + + + var lineClearance = theta + phi / 4; + var minDelimiterHeight = inner.height + inner.depth + lineClearance + theta; // Create a sqrt SVG of the required minimum size + + var _delimiter$sqrtImage = delimiter.sqrtImage(minDelimiterHeight, options), + img = _delimiter$sqrtImage.span, + ruleWidth = _delimiter$sqrtImage.ruleWidth, + advanceWidth = _delimiter$sqrtImage.advanceWidth; + + var delimDepth = img.height - ruleWidth; // Adjust the clearance based on the delimiter size + + if (delimDepth > inner.height + inner.depth + lineClearance) { + lineClearance = (lineClearance + delimDepth - inner.height - inner.depth) / 2; + } // Shift the sqrt image + + + var imgShift = img.height - inner.height - lineClearance - ruleWidth; + inner.style.paddingLeft = advanceWidth + "em"; // Overlay the image and the argument. + + var body = buildCommon.makeVList({ + positionType: "firstBaseline", + children: [{ + type: "elem", + elem: inner, + wrapperClasses: ["svg-align"] + }, { + type: "kern", + size: -(inner.height + imgShift) + }, { + type: "elem", + elem: img + }, { + type: "kern", + size: ruleWidth + }] + }, options); + + if (!group.index) { + return buildCommon.makeSpan(["mord", "sqrt"], [body], options); + } else { + // Handle the optional root index + // The index is always in scriptscript style + var newOptions = options.havingStyle(src_Style.SCRIPTSCRIPT); + var rootm = buildHTML_buildGroup(group.index, newOptions, options); // The amount the index is shifted by. This is taken from the TeX + // source, in the definition of `\r@@t`. + + var toShift = 0.6 * (body.height - body.depth); // Build a VList with the superscript shifted up correctly + + var rootVList = buildCommon.makeVList({ + positionType: "shift", + positionData: -toShift, + children: [{ + type: "elem", + elem: rootm + }] + }, options); // Add a class surrounding it so we can add on the appropriate + // kerning + + var rootVListWrap = buildCommon.makeSpan(["root"], [rootVList]); + return buildCommon.makeSpan(["mord", "sqrt"], [rootVListWrap, body], options); + } + }, + mathmlBuilder: function mathmlBuilder(group, options) { + var body = group.body, + index = group.index; + return index ? new mathMLTree.MathNode("mroot", [buildMathML_buildGroup(body, options), buildMathML_buildGroup(index, options)]) : new mathMLTree.MathNode("msqrt", [buildMathML_buildGroup(body, options)]); + } +}); +// CONCATENATED MODULE: ./src/functions/styling.js + + + + + +var styling_styleMap = { + "display": src_Style.DISPLAY, + "text": src_Style.TEXT, + "script": src_Style.SCRIPT, + "scriptscript": src_Style.SCRIPTSCRIPT +}; +defineFunction({ + type: "styling", + names: ["\\displaystyle", "\\textstyle", "\\scriptstyle", "\\scriptscriptstyle"], + props: { + numArgs: 0, + allowedInText: true + }, + handler: function handler(_ref, args) { + var breakOnTokenText = _ref.breakOnTokenText, + funcName = _ref.funcName, + parser = _ref.parser; + // parse out the implicit body + var body = parser.parseExpression(true, breakOnTokenText); // TODO: Refactor to avoid duplicating styleMap in multiple places (e.g. + // here and in buildHTML and de-dupe the enumeration of all the styles). + // $FlowFixMe: The names above exactly match the styles. + + var style = funcName.slice(1, funcName.length - 5); + return { + type: "styling", + mode: parser.mode, + // Figure out what style to use by pulling out the style from + // the function name + style: style, + body: body + }; + }, + htmlBuilder: function htmlBuilder(group, options) { + // Style changes are handled in the TeXbook on pg. 442, Rule 3. + var newStyle = styling_styleMap[group.style]; + var newOptions = options.havingStyle(newStyle).withFont(''); + return sizingGroup(group.body, newOptions, options); + }, + mathmlBuilder: function mathmlBuilder(group, options) { + // Figure out what style we're changing to. + var newStyle = styling_styleMap[group.style]; + var newOptions = options.havingStyle(newStyle); + var inner = buildMathML_buildExpression(group.body, newOptions); + var node = new mathMLTree.MathNode("mstyle", inner); + var styleAttributes = { + "display": ["0", "true"], + "text": ["0", "false"], + "script": ["1", "false"], + "scriptscript": ["2", "false"] + }; + var attr = styleAttributes[group.style]; + node.setAttribute("scriptlevel", attr[0]); + node.setAttribute("displaystyle", attr[1]); + return node; + } +}); +// CONCATENATED MODULE: ./src/functions/supsub.js + + + + + + + + + + + + + +/** + * Sometimes, groups perform special rules when they have superscripts or + * subscripts attached to them. This function lets the `supsub` group know that + * Sometimes, groups perform special rules when they have superscripts or + * its inner element should handle the superscripts and subscripts instead of + * handling them itself. + */ +var supsub_htmlBuilderDelegate = function htmlBuilderDelegate(group, options) { + var base = group.base; + + if (!base) { + return null; + } else if (base.type === "op") { + // Operators handle supsubs differently when they have limits + // (e.g. `\displaystyle\sum_2^3`) + var delegate = base.limits && (options.style.size === src_Style.DISPLAY.size || base.alwaysHandleSupSub); + return delegate ? op_htmlBuilder : null; + } else if (base.type === "operatorname") { + var _delegate = base.alwaysHandleSupSub && (options.style.size === src_Style.DISPLAY.size || base.limits); + + return _delegate ? operatorname_htmlBuilder : null; + } else if (base.type === "accent") { + return utils.isCharacterBox(base.base) ? accent_htmlBuilder : null; + } else if (base.type === "horizBrace") { + var isSup = !group.sub; + return isSup === base.isOver ? horizBrace_htmlBuilder : null; + } else { + return null; + } +}; // Super scripts and subscripts, whose precise placement can depend on other +// functions that precede them. + + +defineFunctionBuilders({ + type: "supsub", + htmlBuilder: function htmlBuilder(group, options) { + // Superscript and subscripts are handled in the TeXbook on page + // 445-446, rules 18(a-f). + // Here is where we defer to the inner group if it should handle + // superscripts and subscripts itself. + var builderDelegate = supsub_htmlBuilderDelegate(group, options); + + if (builderDelegate) { + return builderDelegate(group, options); + } + + var valueBase = group.base, + valueSup = group.sup, + valueSub = group.sub; + var base = buildHTML_buildGroup(valueBase, options); + var supm; + var subm; + var metrics = options.fontMetrics(); // Rule 18a + + var supShift = 0; + var subShift = 0; + var isCharacterBox = valueBase && utils.isCharacterBox(valueBase); + + if (valueSup) { + var newOptions = options.havingStyle(options.style.sup()); + supm = buildHTML_buildGroup(valueSup, newOptions, options); + + if (!isCharacterBox) { + supShift = base.height - newOptions.fontMetrics().supDrop * newOptions.sizeMultiplier / options.sizeMultiplier; + } + } + + if (valueSub) { + var _newOptions = options.havingStyle(options.style.sub()); + + subm = buildHTML_buildGroup(valueSub, _newOptions, options); + + if (!isCharacterBox) { + subShift = base.depth + _newOptions.fontMetrics().subDrop * _newOptions.sizeMultiplier / options.sizeMultiplier; + } + } // Rule 18c + + + var minSupShift; + + if (options.style === src_Style.DISPLAY) { + minSupShift = metrics.sup1; + } else if (options.style.cramped) { + minSupShift = metrics.sup3; + } else { + minSupShift = metrics.sup2; + } // scriptspace is a font-size-independent size, so scale it + // appropriately for use as the marginRight. + + + var multiplier = options.sizeMultiplier; + var marginRight = 0.5 / metrics.ptPerEm / multiplier + "em"; + var marginLeft = null; + + if (subm) { + // Subscripts shouldn't be shifted by the base's italic correction. + // Account for that by shifting the subscript back the appropriate + // amount. Note we only do this when the base is a single symbol. + var isOiint = group.base && group.base.type === "op" && group.base.name && (group.base.name === "\\oiint" || group.base.name === "\\oiiint"); + + if (base instanceof domTree_SymbolNode || isOiint) { + // $FlowFixMe + marginLeft = -base.italic + "em"; + } + } + + var supsub; + + if (supm && subm) { + supShift = Math.max(supShift, minSupShift, supm.depth + 0.25 * metrics.xHeight); + subShift = Math.max(subShift, metrics.sub2); + var ruleWidth = metrics.defaultRuleThickness; // Rule 18e + + var maxWidth = 4 * ruleWidth; + + if (supShift - supm.depth - (subm.height - subShift) < maxWidth) { + subShift = maxWidth - (supShift - supm.depth) + subm.height; + var psi = 0.8 * metrics.xHeight - (supShift - supm.depth); + + if (psi > 0) { + supShift += psi; + subShift -= psi; + } + } + + var vlistElem = [{ + type: "elem", + elem: subm, + shift: subShift, + marginRight: marginRight, + marginLeft: marginLeft + }, { + type: "elem", + elem: supm, + shift: -supShift, + marginRight: marginRight + }]; + supsub = buildCommon.makeVList({ + positionType: "individualShift", + children: vlistElem + }, options); + } else if (subm) { + // Rule 18b + subShift = Math.max(subShift, metrics.sub1, subm.height - 0.8 * metrics.xHeight); + var _vlistElem = [{ + type: "elem", + elem: subm, + marginLeft: marginLeft, + marginRight: marginRight + }]; + supsub = buildCommon.makeVList({ + positionType: "shift", + positionData: subShift, + children: _vlistElem + }, options); + } else if (supm) { + // Rule 18c, d + supShift = Math.max(supShift, minSupShift, supm.depth + 0.25 * metrics.xHeight); + supsub = buildCommon.makeVList({ + positionType: "shift", + positionData: -supShift, + children: [{ + type: "elem", + elem: supm, + marginRight: marginRight + }] + }, options); + } else { + throw new Error("supsub must have either sup or sub."); + } // Wrap the supsub vlist in a span.msupsub to reset text-align. + + + var mclass = getTypeOfDomTree(base, "right") || "mord"; + return buildCommon.makeSpan([mclass], [base, buildCommon.makeSpan(["msupsub"], [supsub])], options); + }, + mathmlBuilder: function mathmlBuilder(group, options) { + // Is the inner group a relevant horizonal brace? + var isBrace = false; + var isOver; + var isSup; + + if (group.base && group.base.type === "horizBrace") { + isSup = !!group.sup; + + if (isSup === group.base.isOver) { + isBrace = true; + isOver = group.base.isOver; + } + } + + if (group.base && (group.base.type === "op" || group.base.type === "operatorname")) { + group.base.parentIsSupSub = true; + } + + var children = [buildMathML_buildGroup(group.base, options)]; + + if (group.sub) { + children.push(buildMathML_buildGroup(group.sub, options)); + } + + if (group.sup) { + children.push(buildMathML_buildGroup(group.sup, options)); + } + + var nodeType; + + if (isBrace) { + nodeType = isOver ? "mover" : "munder"; + } else if (!group.sub) { + var base = group.base; + + if (base && base.type === "op" && base.limits && (options.style === src_Style.DISPLAY || base.alwaysHandleSupSub)) { + nodeType = "mover"; + } else if (base && base.type === "operatorname" && base.alwaysHandleSupSub && (base.limits || options.style === src_Style.DISPLAY)) { + nodeType = "mover"; + } else { + nodeType = "msup"; + } + } else if (!group.sup) { + var _base = group.base; + + if (_base && _base.type === "op" && _base.limits && (options.style === src_Style.DISPLAY || _base.alwaysHandleSupSub)) { + nodeType = "munder"; + } else if (_base && _base.type === "operatorname" && _base.alwaysHandleSupSub && (_base.limits || options.style === src_Style.DISPLAY)) { + nodeType = "munder"; + } else { + nodeType = "msub"; + } + } else { + var _base2 = group.base; + + if (_base2 && _base2.type === "op" && _base2.limits && options.style === src_Style.DISPLAY) { + nodeType = "munderover"; + } else if (_base2 && _base2.type === "operatorname" && _base2.alwaysHandleSupSub && (options.style === src_Style.DISPLAY || _base2.limits)) { + nodeType = "munderover"; + } else { + nodeType = "msubsup"; + } + } + + var node = new mathMLTree.MathNode(nodeType, children); + return node; + } +}); +// CONCATENATED MODULE: ./src/functions/symbolsOp.js + + + + // Operator ParseNodes created in Parser.js from symbol Groups in src/symbols.js. + +defineFunctionBuilders({ + type: "atom", + htmlBuilder: function htmlBuilder(group, options) { + return buildCommon.mathsym(group.text, group.mode, options, ["m" + group.family]); + }, + mathmlBuilder: function mathmlBuilder(group, options) { + var node = new mathMLTree.MathNode("mo", [buildMathML_makeText(group.text, group.mode)]); + + if (group.family === "bin") { + var variant = buildMathML_getVariant(group, options); + + if (variant === "bold-italic") { + node.setAttribute("mathvariant", variant); + } + } else if (group.family === "punct") { + node.setAttribute("separator", "true"); + } else if (group.family === "open" || group.family === "close") { + // Delims built here should not stretch vertically. + // See delimsizing.js for stretchy delims. + node.setAttribute("stretchy", "false"); + } + + return node; + } +}); +// CONCATENATED MODULE: ./src/functions/symbolsOrd.js + + + + +// "mathord" and "textord" ParseNodes created in Parser.js from symbol Groups in +var defaultVariant = { + "mi": "italic", + "mn": "normal", + "mtext": "normal" +}; +defineFunctionBuilders({ + type: "mathord", + htmlBuilder: function htmlBuilder(group, options) { + return buildCommon.makeOrd(group, options, "mathord"); + }, + mathmlBuilder: function mathmlBuilder(group, options) { + var node = new mathMLTree.MathNode("mi", [buildMathML_makeText(group.text, group.mode, options)]); + var variant = buildMathML_getVariant(group, options) || "italic"; + + if (variant !== defaultVariant[node.type]) { + node.setAttribute("mathvariant", variant); + } + + return node; + } +}); +defineFunctionBuilders({ + type: "textord", + htmlBuilder: function htmlBuilder(group, options) { + return buildCommon.makeOrd(group, options, "textord"); + }, + mathmlBuilder: function mathmlBuilder(group, options) { + var text = buildMathML_makeText(group.text, group.mode, options); + var variant = buildMathML_getVariant(group, options) || "normal"; + var node; + + if (group.mode === 'text') { + node = new mathMLTree.MathNode("mtext", [text]); + } else if (/[0-9]/.test(group.text)) { + // TODO(kevinb) merge adjacent nodes + // do it as a post processing step + node = new mathMLTree.MathNode("mn", [text]); + } else if (group.text === "\\prime") { + node = new mathMLTree.MathNode("mo", [text]); + } else { + node = new mathMLTree.MathNode("mi", [text]); + } + + if (variant !== defaultVariant[node.type]) { + node.setAttribute("mathvariant", variant); + } + + return node; + } +}); +// CONCATENATED MODULE: ./src/functions/symbolsSpacing.js + + + + // A map of CSS-based spacing functions to their CSS class. + +var cssSpace = { + "\\nobreak": "nobreak", + "\\allowbreak": "allowbreak" +}; // A lookup table to determine whether a spacing function/symbol should be +// treated like a regular space character. If a symbol or command is a key +// in this table, then it should be a regular space character. Furthermore, +// the associated value may have a `className` specifying an extra CSS class +// to add to the created `span`. + +var regularSpace = { + " ": {}, + "\\ ": {}, + "~": { + className: "nobreak" + }, + "\\space": {}, + "\\nobreakspace": { + className: "nobreak" + } +}; // ParseNode<"spacing"> created in Parser.js from the "spacing" symbol Groups in +// src/symbols.js. + +defineFunctionBuilders({ + type: "spacing", + htmlBuilder: function htmlBuilder(group, options) { + if (regularSpace.hasOwnProperty(group.text)) { + var className = regularSpace[group.text].className || ""; // Spaces are generated by adding an actual space. Each of these + // things has an entry in the symbols table, so these will be turned + // into appropriate outputs. + + if (group.mode === "text") { + var ord = buildCommon.makeOrd(group, options, "textord"); + ord.classes.push(className); + return ord; + } else { + return buildCommon.makeSpan(["mspace", className], [buildCommon.mathsym(group.text, group.mode, options)], options); + } + } else if (cssSpace.hasOwnProperty(group.text)) { + // Spaces based on just a CSS class. + return buildCommon.makeSpan(["mspace", cssSpace[group.text]], [], options); + } else { + throw new src_ParseError("Unknown type of space \"" + group.text + "\""); + } + }, + mathmlBuilder: function mathmlBuilder(group, options) { + var node; + + if (regularSpace.hasOwnProperty(group.text)) { + node = new mathMLTree.MathNode("mtext", [new mathMLTree.TextNode("\xA0")]); + } else if (cssSpace.hasOwnProperty(group.text)) { + // CSS-based MathML spaces (\nobreak, \allowbreak) are ignored + return new mathMLTree.MathNode("mspace"); + } else { + throw new src_ParseError("Unknown type of space \"" + group.text + "\""); + } + + return node; + } +}); +// CONCATENATED MODULE: ./src/functions/tag.js + + + + +var tag_pad = function pad() { + var padNode = new mathMLTree.MathNode("mtd", []); + padNode.setAttribute("width", "50%"); + return padNode; +}; + +defineFunctionBuilders({ + type: "tag", + mathmlBuilder: function mathmlBuilder(group, options) { + var table = new mathMLTree.MathNode("mtable", [new mathMLTree.MathNode("mtr", [tag_pad(), new mathMLTree.MathNode("mtd", [buildExpressionRow(group.body, options)]), tag_pad(), new mathMLTree.MathNode("mtd", [buildExpressionRow(group.tag, options)])])]); + table.setAttribute("width", "100%"); + return table; // TODO: Left-aligned tags. + // Currently, the group and options passed here do not contain + // enough info to set tag alignment. `leqno` is in Settings but it is + // not passed to Options. On the HTML side, leqno is + // set by a CSS class applied in buildTree.js. That would have worked + // in MathML if browsers supported . Since they don't, we + // need to rewrite the way this function is called. + } +}); +// CONCATENATED MODULE: ./src/functions/text.js + + + + // Non-mathy text, possibly in a font + +var textFontFamilies = { + "\\text": undefined, + "\\textrm": "textrm", + "\\textsf": "textsf", + "\\texttt": "texttt", + "\\textnormal": "textrm" +}; +var textFontWeights = { + "\\textbf": "textbf", + "\\textmd": "textmd" +}; +var textFontShapes = { + "\\textit": "textit", + "\\textup": "textup" +}; + +var optionsWithFont = function optionsWithFont(group, options) { + var font = group.font; // Checks if the argument is a font family or a font style. + + if (!font) { + return options; + } else if (textFontFamilies[font]) { + return options.withTextFontFamily(textFontFamilies[font]); + } else if (textFontWeights[font]) { + return options.withTextFontWeight(textFontWeights[font]); + } else { + return options.withTextFontShape(textFontShapes[font]); + } +}; + +defineFunction({ + type: "text", + names: [// Font families + "\\text", "\\textrm", "\\textsf", "\\texttt", "\\textnormal", // Font weights + "\\textbf", "\\textmd", // Font Shapes + "\\textit", "\\textup"], + props: { + numArgs: 1, + argTypes: ["text"], + greediness: 2, + allowedInText: true + }, + handler: function handler(_ref, args) { + var parser = _ref.parser, + funcName = _ref.funcName; + var body = args[0]; + return { + type: "text", + mode: parser.mode, + body: ordargument(body), + font: funcName + }; + }, + htmlBuilder: function htmlBuilder(group, options) { + var newOptions = optionsWithFont(group, options); + var inner = buildHTML_buildExpression(group.body, newOptions, true); + return buildCommon.makeSpan(["mord", "text"], buildCommon.tryCombineChars(inner), newOptions); + }, + mathmlBuilder: function mathmlBuilder(group, options) { + var newOptions = optionsWithFont(group, options); + return buildExpressionRow(group.body, newOptions); + } +}); +// CONCATENATED MODULE: ./src/functions/underline.js + + + + + +defineFunction({ + type: "underline", + names: ["\\underline"], + props: { + numArgs: 1, + allowedInText: true + }, + handler: function handler(_ref, args) { + var parser = _ref.parser; + return { + type: "underline", + mode: parser.mode, + body: args[0] + }; + }, + htmlBuilder: function htmlBuilder(group, options) { + // Underlines are handled in the TeXbook pg 443, Rule 10. + // Build the inner group. + var innerGroup = buildHTML_buildGroup(group.body, options); // Create the line to go below the body + + var line = buildCommon.makeLineSpan("underline-line", options); // Generate the vlist, with the appropriate kerns + + var defaultRuleThickness = options.fontMetrics().defaultRuleThickness; + var vlist = buildCommon.makeVList({ + positionType: "top", + positionData: innerGroup.height, + children: [{ + type: "kern", + size: defaultRuleThickness + }, { + type: "elem", + elem: line + }, { + type: "kern", + size: 3 * defaultRuleThickness + }, { + type: "elem", + elem: innerGroup + }] + }, options); + return buildCommon.makeSpan(["mord", "underline"], [vlist], options); + }, + mathmlBuilder: function mathmlBuilder(group, options) { + var operator = new mathMLTree.MathNode("mo", [new mathMLTree.TextNode("\u203E")]); + operator.setAttribute("stretchy", "true"); + var node = new mathMLTree.MathNode("munder", [buildMathML_buildGroup(group.body, options), operator]); + node.setAttribute("accentunder", "true"); + return node; + } +}); +// CONCATENATED MODULE: ./src/functions/verb.js + + + + +defineFunction({ + type: "verb", + names: ["\\verb"], + props: { + numArgs: 0, + allowedInText: true + }, + handler: function handler(context, args, optArgs) { + // \verb and \verb* are dealt with directly in Parser.js. + // If we end up here, it's because of a failure to match the two delimiters + // in the regex in Lexer.js. LaTeX raises the following error when \verb is + // terminated by end of line (or file). + throw new src_ParseError("\\verb ended by end of line instead of matching delimiter"); + }, + htmlBuilder: function htmlBuilder(group, options) { + var text = makeVerb(group); + var body = []; // \verb enters text mode and therefore is sized like \textstyle + + var newOptions = options.havingStyle(options.style.text()); + + for (var i = 0; i < text.length; i++) { + var c = text[i]; + + if (c === '~') { + c = '\\textasciitilde'; + } + + body.push(buildCommon.makeSymbol(c, "Typewriter-Regular", group.mode, newOptions, ["mord", "texttt"])); + } + + return buildCommon.makeSpan(["mord", "text"].concat(newOptions.sizingClasses(options)), buildCommon.tryCombineChars(body), newOptions); + }, + mathmlBuilder: function mathmlBuilder(group, options) { + var text = new mathMLTree.TextNode(makeVerb(group)); + var node = new mathMLTree.MathNode("mtext", [text]); + node.setAttribute("mathvariant", "monospace"); + return node; + } +}); +/** + * Converts verb group into body string. + * + * \verb* replaces each space with an open box \u2423 + * \verb replaces each space with a no-break space \xA0 + */ + +var makeVerb = function makeVerb(group) { + return group.body.replace(/ /g, group.star ? "\u2423" : '\xA0'); +}; +// CONCATENATED MODULE: ./src/functions.js +/** Include this to ensure that all functions are defined. */ + +var functions = _functions; +/* harmony default export */ var src_functions = (functions); // TODO(kevinb): have functions return an object and call defineFunction with +// that object in this file instead of relying on side-effects. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +// CONCATENATED MODULE: ./src/Lexer.js +/** + * The Lexer class handles tokenizing the input in various ways. Since our + * parser expects us to be able to backtrack, the lexer allows lexing from any + * given starting point. + * + * Its main exposed function is the `lex` function, which takes a position to + * lex from and a type of token to lex. It defers to the appropriate `_innerLex` + * function. + * + * The various `_innerLex` functions perform the actual lexing of different + * kinds. + */ + + + + +/* The following tokenRegex + * - matches typical whitespace (but not NBSP etc.) using its first group + * - does not match any control character \x00-\x1f except whitespace + * - does not match a bare backslash + * - matches any ASCII character except those just mentioned + * - does not match the BMP private use area \uE000-\uF8FF + * - does not match bare surrogate code units + * - matches any BMP character except for those just described + * - matches any valid Unicode surrogate pair + * - matches a backslash followed by one or more letters + * - matches a backslash followed by any BMP character, including newline + * Just because the Lexer matches something doesn't mean it's valid input: + * If there is no matching function or symbol definition, the Parser will + * still reject the input. + */ +var spaceRegexString = "[ \r\n\t]"; +var controlWordRegexString = "\\\\[a-zA-Z@]+"; +var controlSymbolRegexString = "\\\\[^\uD800-\uDFFF]"; +var controlWordWhitespaceRegexString = "" + controlWordRegexString + spaceRegexString + "*"; +var controlWordWhitespaceRegex = new RegExp("^(" + controlWordRegexString + ")" + spaceRegexString + "*$"); +var combiningDiacriticalMarkString = "[\u0300-\u036F]"; +var combiningDiacriticalMarksEndRegex = new RegExp(combiningDiacriticalMarkString + "+$"); +var tokenRegexString = "(" + spaceRegexString + "+)|" + // whitespace +"([!-\\[\\]-\u2027\u202A-\uD7FF\uF900-\uFFFF]" + ( // single codepoint +combiningDiacriticalMarkString + "*") + // ...plus accents +"|[\uD800-\uDBFF][\uDC00-\uDFFF]" + ( // surrogate pair +combiningDiacriticalMarkString + "*") + // ...plus accents +"|\\\\verb\\*([^]).*?\\3" + // \verb* +"|\\\\verb([^*a-zA-Z]).*?\\4" + // \verb unstarred +"|\\\\operatorname\\*" + ( // \operatorname* +"|" + controlWordWhitespaceRegexString) + ( // \macroName + spaces +"|" + controlSymbolRegexString + ")"); // \\, \', etc. + +/** Main Lexer class */ + +var Lexer_Lexer = +/*#__PURE__*/ +function () { + // category codes, only supports comment characters (14) for now + function Lexer(input, settings) { + this.input = void 0; + this.settings = void 0; + this.tokenRegex = void 0; + this.catcodes = void 0; + // Separate accents from characters + this.input = input; + this.settings = settings; + this.tokenRegex = new RegExp(tokenRegexString, 'g'); + this.catcodes = { + "%": 14 // comment character + + }; + } + + var _proto = Lexer.prototype; + + _proto.setCatcode = function setCatcode(char, code) { + this.catcodes[char] = code; + } + /** + * This function lexes a single token. + */ + ; + + _proto.lex = function lex() { + var input = this.input; + var pos = this.tokenRegex.lastIndex; + + if (pos === input.length) { + return new Token_Token("EOF", new SourceLocation(this, pos, pos)); + } + + var match = this.tokenRegex.exec(input); + + if (match === null || match.index !== pos) { + throw new src_ParseError("Unexpected character: '" + input[pos] + "'", new Token_Token(input[pos], new SourceLocation(this, pos, pos + 1))); + } + + var text = match[2] || " "; + + if (this.catcodes[text] === 14) { + // comment character + var nlIndex = input.indexOf('\n', this.tokenRegex.lastIndex); + + if (nlIndex === -1) { + this.tokenRegex.lastIndex = input.length; // EOF + + this.settings.reportNonstrict("commentAtEnd", "% comment has no terminating newline; LaTeX would " + "fail because of commenting the end of math mode (e.g. $)"); + } else { + this.tokenRegex.lastIndex = nlIndex + 1; + } + + return this.lex(); + } // Trim any trailing whitespace from control word match + + + var controlMatch = text.match(controlWordWhitespaceRegex); + + if (controlMatch) { + text = controlMatch[1]; + } + + return new Token_Token(text, new SourceLocation(this, pos, this.tokenRegex.lastIndex)); + }; + + return Lexer; +}(); + + +// CONCATENATED MODULE: ./src/Namespace.js +/** + * A `Namespace` refers to a space of nameable things like macros or lengths, + * which can be `set` either globally or local to a nested group, using an + * undo stack similar to how TeX implements this functionality. + * Performance-wise, `get` and local `set` take constant time, while global + * `set` takes time proportional to the depth of group nesting. + */ + + +var Namespace_Namespace = +/*#__PURE__*/ +function () { + /** + * Both arguments are optional. The first argument is an object of + * built-in mappings which never change. The second argument is an object + * of initial (global-level) mappings, which will constantly change + * according to any global/top-level `set`s done. + */ + function Namespace(builtins, globalMacros) { + if (builtins === void 0) { + builtins = {}; + } + + if (globalMacros === void 0) { + globalMacros = {}; + } + + this.current = void 0; + this.builtins = void 0; + this.undefStack = void 0; + this.current = globalMacros; + this.builtins = builtins; + this.undefStack = []; + } + /** + * Start a new nested group, affecting future local `set`s. + */ + + + var _proto = Namespace.prototype; + + _proto.beginGroup = function beginGroup() { + this.undefStack.push({}); + } + /** + * End current nested group, restoring values before the group began. + */ + ; + + _proto.endGroup = function endGroup() { + if (this.undefStack.length === 0) { + throw new src_ParseError("Unbalanced namespace destruction: attempt " + "to pop global namespace; please report this as a bug"); + } + + var undefs = this.undefStack.pop(); + + for (var undef in undefs) { + if (undefs.hasOwnProperty(undef)) { + if (undefs[undef] === undefined) { + delete this.current[undef]; + } else { + this.current[undef] = undefs[undef]; + } + } + } + } + /** + * Detect whether `name` has a definition. Equivalent to + * `get(name) != null`. + */ + ; + + _proto.has = function has(name) { + return this.current.hasOwnProperty(name) || this.builtins.hasOwnProperty(name); + } + /** + * Get the current value of a name, or `undefined` if there is no value. + * + * Note: Do not use `if (namespace.get(...))` to detect whether a macro + * is defined, as the definition may be the empty string which evaluates + * to `false` in JavaScript. Use `if (namespace.get(...) != null)` or + * `if (namespace.has(...))`. + */ + ; + + _proto.get = function get(name) { + if (this.current.hasOwnProperty(name)) { + return this.current[name]; + } else { + return this.builtins[name]; + } + } + /** + * Set the current value of a name, and optionally set it globally too. + * Local set() sets the current value and (when appropriate) adds an undo + * operation to the undo stack. Global set() may change the undo + * operation at every level, so takes time linear in their number. + */ + ; + + _proto.set = function set(name, value, global) { + if (global === void 0) { + global = false; + } + + if (global) { + // Global set is equivalent to setting in all groups. Simulate this + // by destroying any undos currently scheduled for this name, + // and adding an undo with the *new* value (in case it later gets + // locally reset within this environment). + for (var i = 0; i < this.undefStack.length; i++) { + delete this.undefStack[i][name]; + } + + if (this.undefStack.length > 0) { + this.undefStack[this.undefStack.length - 1][name] = value; + } + } else { + // Undo this set at end of this group (possibly to `undefined`), + // unless an undo is already in place, in which case that older + // value is the correct one. + var top = this.undefStack[this.undefStack.length - 1]; + + if (top && !top.hasOwnProperty(name)) { + top[name] = this.current[name]; + } + } + + this.current[name] = value; + }; + + return Namespace; +}(); + + +// CONCATENATED MODULE: ./src/macros.js +/** + * Predefined macros for KaTeX. + * This can be used to define some commands in terms of others. + */ + + + + + + +var builtinMacros = {}; +/* harmony default export */ var macros = (builtinMacros); // This function might one day accept an additional argument and do more things. + +function defineMacro(name, body) { + builtinMacros[name] = body; +} ////////////////////////////////////////////////////////////////////// +// macro tools + +defineMacro("\\noexpand", function (context) { + // The expansion is the token itself; but that token is interpreted + // as if its meaning were ‘\relax’ if it is a control sequence that + // would ordinarily be expanded by TeX’s expansion rules. + var t = context.popToken(); + + if (context.isExpandable(t.text)) { + t.noexpand = true; + t.treatAsRelax = true; + } + + return { + tokens: [t], + numArgs: 0 + }; +}); +defineMacro("\\expandafter", function (context) { + // TeX first reads the token that comes immediately after \expandafter, + // without expanding it; let’s call this token t. Then TeX reads the + // token that comes after t (and possibly more tokens, if that token + // has an argument), replacing it by its expansion. Finally TeX puts + // t back in front of that expansion. + var t = context.popToken(); + context.expandOnce(true); // expand only an expandable token + + return { + tokens: [t], + numArgs: 0 + }; +}); // LaTeX's \@firstoftwo{#1}{#2} expands to #1, skipping #2 +// TeX source: \long\def\@firstoftwo#1#2{#1} + +defineMacro("\\@firstoftwo", function (context) { + var args = context.consumeArgs(2); + return { + tokens: args[0], + numArgs: 0 + }; +}); // LaTeX's \@secondoftwo{#1}{#2} expands to #2, skipping #1 +// TeX source: \long\def\@secondoftwo#1#2{#2} + +defineMacro("\\@secondoftwo", function (context) { + var args = context.consumeArgs(2); + return { + tokens: args[1], + numArgs: 0 + }; +}); // LaTeX's \@ifnextchar{#1}{#2}{#3} looks ahead to the next (unexpanded) +// symbol that isn't a space, consuming any spaces but not consuming the +// first nonspace character. If that nonspace character matches #1, then +// the macro expands to #2; otherwise, it expands to #3. + +defineMacro("\\@ifnextchar", function (context) { + var args = context.consumeArgs(3); // symbol, if, else + + context.consumeSpaces(); + var nextToken = context.future(); + + if (args[0].length === 1 && args[0][0].text === nextToken.text) { + return { + tokens: args[1], + numArgs: 0 + }; + } else { + return { + tokens: args[2], + numArgs: 0 + }; + } +}); // LaTeX's \@ifstar{#1}{#2} looks ahead to the next (unexpanded) symbol. +// If it is `*`, then it consumes the symbol, and the macro expands to #1; +// otherwise, the macro expands to #2 (without consuming the symbol). +// TeX source: \def\@ifstar#1{\@ifnextchar *{\@firstoftwo{#1}}} + +defineMacro("\\@ifstar", "\\@ifnextchar *{\\@firstoftwo{#1}}"); // LaTeX's \TextOrMath{#1}{#2} expands to #1 in text mode, #2 in math mode + +defineMacro("\\TextOrMath", function (context) { + var args = context.consumeArgs(2); + + if (context.mode === 'text') { + return { + tokens: args[0], + numArgs: 0 + }; + } else { + return { + tokens: args[1], + numArgs: 0 + }; + } +}); // Lookup table for parsing numbers in base 8 through 16 + +var digitToNumber = { + "0": 0, + "1": 1, + "2": 2, + "3": 3, + "4": 4, + "5": 5, + "6": 6, + "7": 7, + "8": 8, + "9": 9, + "a": 10, + "A": 10, + "b": 11, + "B": 11, + "c": 12, + "C": 12, + "d": 13, + "D": 13, + "e": 14, + "E": 14, + "f": 15, + "F": 15 +}; // TeX \char makes a literal character (catcode 12) using the following forms: +// (see The TeXBook, p. 43) +// \char123 -- decimal +// \char'123 -- octal +// \char"123 -- hex +// \char`x -- character that can be written (i.e. isn't active) +// \char`\x -- character that cannot be written (e.g. %) +// These all refer to characters from the font, so we turn them into special +// calls to a function \@char dealt with in the Parser. + +defineMacro("\\char", function (context) { + var token = context.popToken(); + var base; + var number = ''; + + if (token.text === "'") { + base = 8; + token = context.popToken(); + } else if (token.text === '"') { + base = 16; + token = context.popToken(); + } else if (token.text === "`") { + token = context.popToken(); + + if (token.text[0] === "\\") { + number = token.text.charCodeAt(1); + } else if (token.text === "EOF") { + throw new src_ParseError("\\char` missing argument"); + } else { + number = token.text.charCodeAt(0); + } + } else { + base = 10; + } + + if (base) { + // Parse a number in the given base, starting with first `token`. + number = digitToNumber[token.text]; + + if (number == null || number >= base) { + throw new src_ParseError("Invalid base-" + base + " digit " + token.text); + } + + var digit; + + while ((digit = digitToNumber[context.future().text]) != null && digit < base) { + number *= base; + number += digit; + context.popToken(); + } + } + + return "\\@char{" + number + "}"; +}); // \newcommand{\macro}[args]{definition} +// \renewcommand{\macro}[args]{definition} +// TODO: Optional arguments: \newcommand{\macro}[args][default]{definition} + +var macros_newcommand = function newcommand(context, existsOK, nonexistsOK) { + var arg = context.consumeArgs(1)[0]; + + if (arg.length !== 1) { + throw new src_ParseError("\\newcommand's first argument must be a macro name"); + } + + var name = arg[0].text; + var exists = context.isDefined(name); + + if (exists && !existsOK) { + throw new src_ParseError("\\newcommand{" + name + "} attempting to redefine " + (name + "; use \\renewcommand")); + } + + if (!exists && !nonexistsOK) { + throw new src_ParseError("\\renewcommand{" + name + "} when command " + name + " " + "does not yet exist; use \\newcommand"); + } + + var numArgs = 0; + arg = context.consumeArgs(1)[0]; + + if (arg.length === 1 && arg[0].text === "[") { + var argText = ''; + var token = context.expandNextToken(); + + while (token.text !== "]" && token.text !== "EOF") { + // TODO: Should properly expand arg, e.g., ignore {}s + argText += token.text; + token = context.expandNextToken(); + } + + if (!argText.match(/^\s*[0-9]+\s*$/)) { + throw new src_ParseError("Invalid number of arguments: " + argText); + } + + numArgs = parseInt(argText); + arg = context.consumeArgs(1)[0]; + } // Final arg is the expansion of the macro + + + context.macros.set(name, { + tokens: arg, + numArgs: numArgs + }); + return ''; +}; + +defineMacro("\\newcommand", function (context) { + return macros_newcommand(context, false, true); +}); +defineMacro("\\renewcommand", function (context) { + return macros_newcommand(context, true, false); +}); +defineMacro("\\providecommand", function (context) { + return macros_newcommand(context, true, true); +}); // terminal (console) tools + +defineMacro("\\message", function (context) { + var arg = context.consumeArgs(1)[0]; // eslint-disable-next-line no-console + + console.log(arg.reverse().map(function (token) { + return token.text; + }).join("")); + return ''; +}); +defineMacro("\\errmessage", function (context) { + var arg = context.consumeArgs(1)[0]; // eslint-disable-next-line no-console + + console.error(arg.reverse().map(function (token) { + return token.text; + }).join("")); + return ''; +}); +defineMacro("\\show", function (context) { + var tok = context.popToken(); + var name = tok.text; // eslint-disable-next-line no-console + + console.log(tok, context.macros.get(name), src_functions[name], src_symbols.math[name], src_symbols.text[name]); + return ''; +}); ////////////////////////////////////////////////////////////////////// +// Grouping +// \let\bgroup={ \let\egroup=} + +defineMacro("\\bgroup", "{"); +defineMacro("\\egroup", "}"); // Symbols from latex.ltx: +// \def\lq{`} +// \def\rq{'} +// \def \aa {\r a} +// \def \AA {\r A} + +defineMacro("\\lq", "`"); +defineMacro("\\rq", "'"); +defineMacro("\\aa", "\\r a"); +defineMacro("\\AA", "\\r A"); // Copyright (C) and registered (R) symbols. Use raw symbol in MathML. +// \DeclareTextCommandDefault{\textcopyright}{\textcircled{c}} +// \DeclareTextCommandDefault{\textregistered}{\textcircled{% +// \check@mathfonts\fontsize\sf@size\z@\math@fontsfalse\selectfont R}} +// \DeclareRobustCommand{\copyright}{% +// \ifmmode{\nfss@text{\textcopyright}}\else\textcopyright\fi} + +defineMacro("\\textcopyright", "\\html@mathml{\\textcircled{c}}{\\char`©}"); +defineMacro("\\copyright", "\\TextOrMath{\\textcopyright}{\\text{\\textcopyright}}"); +defineMacro("\\textregistered", "\\html@mathml{\\textcircled{\\scriptsize R}}{\\char`®}"); // Characters omitted from Unicode range 1D400–1D7FF + +defineMacro("\u212C", "\\mathscr{B}"); // script + +defineMacro("\u2130", "\\mathscr{E}"); +defineMacro("\u2131", "\\mathscr{F}"); +defineMacro("\u210B", "\\mathscr{H}"); +defineMacro("\u2110", "\\mathscr{I}"); +defineMacro("\u2112", "\\mathscr{L}"); +defineMacro("\u2133", "\\mathscr{M}"); +defineMacro("\u211B", "\\mathscr{R}"); +defineMacro("\u212D", "\\mathfrak{C}"); // Fraktur + +defineMacro("\u210C", "\\mathfrak{H}"); +defineMacro("\u2128", "\\mathfrak{Z}"); // Define \Bbbk with a macro that works in both HTML and MathML. + +defineMacro("\\Bbbk", "\\Bbb{k}"); // Unicode middle dot +// The KaTeX fonts do not contain U+00B7. Instead, \cdotp displays +// the dot at U+22C5 and gives it punct spacing. + +defineMacro("\xB7", "\\cdotp"); // \llap and \rlap render their contents in text mode + +defineMacro("\\llap", "\\mathllap{\\textrm{#1}}"); +defineMacro("\\rlap", "\\mathrlap{\\textrm{#1}}"); +defineMacro("\\clap", "\\mathclap{\\textrm{#1}}"); // \not is defined by base/fontmath.ltx via +// \DeclareMathSymbol{\not}{\mathrel}{symbols}{"36} +// It's thus treated like a \mathrel, but defined by a symbol that has zero +// width but extends to the right. We use \rlap to get that spacing. +// For MathML we write U+0338 here. buildMathML.js will then do the overlay. + +defineMacro("\\not", '\\html@mathml{\\mathrel{\\mathrlap\\@not}}{\\char"338}'); // Negated symbols from base/fontmath.ltx: +// \def\neq{\not=} \let\ne=\neq +// \DeclareRobustCommand +// \notin{\mathrel{\m@th\mathpalette\c@ncel\in}} +// \def\c@ncel#1#2{\m@th\ooalign{$\hfil#1\mkern1mu/\hfil$\crcr$#1#2$}} + +defineMacro("\\neq", "\\html@mathml{\\mathrel{\\not=}}{\\mathrel{\\char`≠}}"); +defineMacro("\\ne", "\\neq"); +defineMacro("\u2260", "\\neq"); +defineMacro("\\notin", "\\html@mathml{\\mathrel{{\\in}\\mathllap{/\\mskip1mu}}}" + "{\\mathrel{\\char`∉}}"); +defineMacro("\u2209", "\\notin"); // Unicode stacked relations + +defineMacro("\u2258", "\\html@mathml{" + "\\mathrel{=\\kern{-1em}\\raisebox{0.4em}{$\\scriptsize\\frown$}}" + "}{\\mathrel{\\char`\u2258}}"); +defineMacro("\u2259", "\\html@mathml{\\stackrel{\\tiny\\wedge}{=}}{\\mathrel{\\char`\u2258}}"); +defineMacro("\u225A", "\\html@mathml{\\stackrel{\\tiny\\vee}{=}}{\\mathrel{\\char`\u225A}}"); +defineMacro("\u225B", "\\html@mathml{\\stackrel{\\scriptsize\\star}{=}}" + "{\\mathrel{\\char`\u225B}}"); +defineMacro("\u225D", "\\html@mathml{\\stackrel{\\tiny\\mathrm{def}}{=}}" + "{\\mathrel{\\char`\u225D}}"); +defineMacro("\u225E", "\\html@mathml{\\stackrel{\\tiny\\mathrm{m}}{=}}" + "{\\mathrel{\\char`\u225E}}"); +defineMacro("\u225F", "\\html@mathml{\\stackrel{\\tiny?}{=}}{\\mathrel{\\char`\u225F}}"); // Misc Unicode + +defineMacro("\u27C2", "\\perp"); +defineMacro("\u203C", "\\mathclose{!\\mkern-0.8mu!}"); +defineMacro("\u220C", "\\notni"); +defineMacro("\u231C", "\\ulcorner"); +defineMacro("\u231D", "\\urcorner"); +defineMacro("\u231E", "\\llcorner"); +defineMacro("\u231F", "\\lrcorner"); +defineMacro("\xA9", "\\copyright"); +defineMacro("\xAE", "\\textregistered"); +defineMacro("\uFE0F", "\\textregistered"); // The KaTeX fonts have corners at codepoints that don't match Unicode. +// For MathML purposes, use the Unicode code point. + +defineMacro("\\ulcorner", "\\html@mathml{\\@ulcorner}{\\mathop{\\char\"231c}}"); +defineMacro("\\urcorner", "\\html@mathml{\\@urcorner}{\\mathop{\\char\"231d}}"); +defineMacro("\\llcorner", "\\html@mathml{\\@llcorner}{\\mathop{\\char\"231e}}"); +defineMacro("\\lrcorner", "\\html@mathml{\\@lrcorner}{\\mathop{\\char\"231f}}"); ////////////////////////////////////////////////////////////////////// +// LaTeX_2ε +// \vdots{\vbox{\baselineskip4\p@ \lineskiplimit\z@ +// \kern6\p@\hbox{.}\hbox{.}\hbox{.}}} +// We'll call \varvdots, which gets a glyph from symbols.js. +// The zero-width rule gets us an equivalent to the vertical 6pt kern. + +defineMacro("\\vdots", "\\mathord{\\varvdots\\rule{0pt}{15pt}}"); +defineMacro("\u22EE", "\\vdots"); ////////////////////////////////////////////////////////////////////// +// amsmath.sty +// http://mirrors.concertpass.com/tex-archive/macros/latex/required/amsmath/amsmath.pdf +// Italic Greek capital letters. AMS defines these with \DeclareMathSymbol, +// but they are equivalent to \mathit{\Letter}. + +defineMacro("\\varGamma", "\\mathit{\\Gamma}"); +defineMacro("\\varDelta", "\\mathit{\\Delta}"); +defineMacro("\\varTheta", "\\mathit{\\Theta}"); +defineMacro("\\varLambda", "\\mathit{\\Lambda}"); +defineMacro("\\varXi", "\\mathit{\\Xi}"); +defineMacro("\\varPi", "\\mathit{\\Pi}"); +defineMacro("\\varSigma", "\\mathit{\\Sigma}"); +defineMacro("\\varUpsilon", "\\mathit{\\Upsilon}"); +defineMacro("\\varPhi", "\\mathit{\\Phi}"); +defineMacro("\\varPsi", "\\mathit{\\Psi}"); +defineMacro("\\varOmega", "\\mathit{\\Omega}"); //\newcommand{\substack}[1]{\subarray{c}#1\endsubarray} + +defineMacro("\\substack", "\\begin{subarray}{c}#1\\end{subarray}"); // \renewcommand{\colon}{\nobreak\mskip2mu\mathpunct{}\nonscript +// \mkern-\thinmuskip{:}\mskip6muplus1mu\relax} + +defineMacro("\\colon", "\\nobreak\\mskip2mu\\mathpunct{}" + "\\mathchoice{\\mkern-3mu}{\\mkern-3mu}{}{}{:}\\mskip6mu"); // \newcommand{\boxed}[1]{\fbox{\m@th$\displaystyle#1$}} + +defineMacro("\\boxed", "\\fbox{$\\displaystyle{#1}$}"); // \def\iff{\DOTSB\;\Longleftrightarrow\;} +// \def\implies{\DOTSB\;\Longrightarrow\;} +// \def\impliedby{\DOTSB\;\Longleftarrow\;} + +defineMacro("\\iff", "\\DOTSB\\;\\Longleftrightarrow\\;"); +defineMacro("\\implies", "\\DOTSB\\;\\Longrightarrow\\;"); +defineMacro("\\impliedby", "\\DOTSB\\;\\Longleftarrow\\;"); // AMSMath's automatic \dots, based on \mdots@@ macro. + +var dotsByToken = { + ',': '\\dotsc', + '\\not': '\\dotsb', + // \keybin@ checks for the following: + '+': '\\dotsb', + '=': '\\dotsb', + '<': '\\dotsb', + '>': '\\dotsb', + '-': '\\dotsb', + '*': '\\dotsb', + ':': '\\dotsb', + // Symbols whose definition starts with \DOTSB: + '\\DOTSB': '\\dotsb', + '\\coprod': '\\dotsb', + '\\bigvee': '\\dotsb', + '\\bigwedge': '\\dotsb', + '\\biguplus': '\\dotsb', + '\\bigcap': '\\dotsb', + '\\bigcup': '\\dotsb', + '\\prod': '\\dotsb', + '\\sum': '\\dotsb', + '\\bigotimes': '\\dotsb', + '\\bigoplus': '\\dotsb', + '\\bigodot': '\\dotsb', + '\\bigsqcup': '\\dotsb', + '\\And': '\\dotsb', + '\\longrightarrow': '\\dotsb', + '\\Longrightarrow': '\\dotsb', + '\\longleftarrow': '\\dotsb', + '\\Longleftarrow': '\\dotsb', + '\\longleftrightarrow': '\\dotsb', + '\\Longleftrightarrow': '\\dotsb', + '\\mapsto': '\\dotsb', + '\\longmapsto': '\\dotsb', + '\\hookrightarrow': '\\dotsb', + '\\doteq': '\\dotsb', + // Symbols whose definition starts with \mathbin: + '\\mathbin': '\\dotsb', + // Symbols whose definition starts with \mathrel: + '\\mathrel': '\\dotsb', + '\\relbar': '\\dotsb', + '\\Relbar': '\\dotsb', + '\\xrightarrow': '\\dotsb', + '\\xleftarrow': '\\dotsb', + // Symbols whose definition starts with \DOTSI: + '\\DOTSI': '\\dotsi', + '\\int': '\\dotsi', + '\\oint': '\\dotsi', + '\\iint': '\\dotsi', + '\\iiint': '\\dotsi', + '\\iiiint': '\\dotsi', + '\\idotsint': '\\dotsi', + // Symbols whose definition starts with \DOTSX: + '\\DOTSX': '\\dotsx' +}; +defineMacro("\\dots", function (context) { + // TODO: If used in text mode, should expand to \textellipsis. + // However, in KaTeX, \textellipsis and \ldots behave the same + // (in text mode), and it's unlikely we'd see any of the math commands + // that affect the behavior of \dots when in text mode. So fine for now + // (until we support \ifmmode ... \else ... \fi). + var thedots = '\\dotso'; + var next = context.expandAfterFuture().text; + + if (next in dotsByToken) { + thedots = dotsByToken[next]; + } else if (next.substr(0, 4) === '\\not') { + thedots = '\\dotsb'; + } else if (next in src_symbols.math) { + if (utils.contains(['bin', 'rel'], src_symbols.math[next].group)) { + thedots = '\\dotsb'; + } + } + + return thedots; +}); +var spaceAfterDots = { + // \rightdelim@ checks for the following: + ')': true, + ']': true, + '\\rbrack': true, + '\\}': true, + '\\rbrace': true, + '\\rangle': true, + '\\rceil': true, + '\\rfloor': true, + '\\rgroup': true, + '\\rmoustache': true, + '\\right': true, + '\\bigr': true, + '\\biggr': true, + '\\Bigr': true, + '\\Biggr': true, + // \extra@ also tests for the following: + '$': true, + // \extrap@ checks for the following: + ';': true, + '.': true, + ',': true +}; +defineMacro("\\dotso", function (context) { + var next = context.future().text; + + if (next in spaceAfterDots) { + return "\\ldots\\,"; + } else { + return "\\ldots"; + } +}); +defineMacro("\\dotsc", function (context) { + var next = context.future().text; // \dotsc uses \extra@ but not \extrap@, instead specially checking for + // ';' and '.', but doesn't check for ','. + + if (next in spaceAfterDots && next !== ',') { + return "\\ldots\\,"; + } else { + return "\\ldots"; + } +}); +defineMacro("\\cdots", function (context) { + var next = context.future().text; + + if (next in spaceAfterDots) { + return "\\@cdots\\,"; + } else { + return "\\@cdots"; + } +}); +defineMacro("\\dotsb", "\\cdots"); +defineMacro("\\dotsm", "\\cdots"); +defineMacro("\\dotsi", "\\!\\cdots"); // amsmath doesn't actually define \dotsx, but \dots followed by a macro +// starting with \DOTSX implies \dotso, and then \extra@ detects this case +// and forces the added `\,`. + +defineMacro("\\dotsx", "\\ldots\\,"); // \let\DOTSI\relax +// \let\DOTSB\relax +// \let\DOTSX\relax + +defineMacro("\\DOTSI", "\\relax"); +defineMacro("\\DOTSB", "\\relax"); +defineMacro("\\DOTSX", "\\relax"); // Spacing, based on amsmath.sty's override of LaTeX defaults +// \DeclareRobustCommand{\tmspace}[3]{% +// \ifmmode\mskip#1#2\else\kern#1#3\fi\relax} + +defineMacro("\\tmspace", "\\TextOrMath{\\kern#1#3}{\\mskip#1#2}\\relax"); // \renewcommand{\,}{\tmspace+\thinmuskip{.1667em}} +// TODO: math mode should use \thinmuskip + +defineMacro("\\,", "\\tmspace+{3mu}{.1667em}"); // \let\thinspace\, + +defineMacro("\\thinspace", "\\,"); // \def\>{\mskip\medmuskip} +// \renewcommand{\:}{\tmspace+\medmuskip{.2222em}} +// TODO: \> and math mode of \: should use \medmuskip = 4mu plus 2mu minus 4mu + +defineMacro("\\>", "\\mskip{4mu}"); +defineMacro("\\:", "\\tmspace+{4mu}{.2222em}"); // \let\medspace\: + +defineMacro("\\medspace", "\\:"); // \renewcommand{\;}{\tmspace+\thickmuskip{.2777em}} +// TODO: math mode should use \thickmuskip = 5mu plus 5mu + +defineMacro("\\;", "\\tmspace+{5mu}{.2777em}"); // \let\thickspace\; + +defineMacro("\\thickspace", "\\;"); // \renewcommand{\!}{\tmspace-\thinmuskip{.1667em}} +// TODO: math mode should use \thinmuskip + +defineMacro("\\!", "\\tmspace-{3mu}{.1667em}"); // \let\negthinspace\! + +defineMacro("\\negthinspace", "\\!"); // \newcommand{\negmedspace}{\tmspace-\medmuskip{.2222em}} +// TODO: math mode should use \medmuskip + +defineMacro("\\negmedspace", "\\tmspace-{4mu}{.2222em}"); // \newcommand{\negthickspace}{\tmspace-\thickmuskip{.2777em}} +// TODO: math mode should use \thickmuskip + +defineMacro("\\negthickspace", "\\tmspace-{5mu}{.277em}"); // \def\enspace{\kern.5em } + +defineMacro("\\enspace", "\\kern.5em "); // \def\enskip{\hskip.5em\relax} + +defineMacro("\\enskip", "\\hskip.5em\\relax"); // \def\quad{\hskip1em\relax} + +defineMacro("\\quad", "\\hskip1em\\relax"); // \def\qquad{\hskip2em\relax} + +defineMacro("\\qquad", "\\hskip2em\\relax"); // \tag@in@display form of \tag + +defineMacro("\\tag", "\\@ifstar\\tag@literal\\tag@paren"); +defineMacro("\\tag@paren", "\\tag@literal{({#1})}"); +defineMacro("\\tag@literal", function (context) { + if (context.macros.get("\\df@tag")) { + throw new src_ParseError("Multiple \\tag"); + } + + return "\\gdef\\df@tag{\\text{#1}}"; +}); // \renewcommand{\bmod}{\nonscript\mskip-\medmuskip\mkern5mu\mathbin +// {\operator@font mod}\penalty900 +// \mkern5mu\nonscript\mskip-\medmuskip} +// \newcommand{\pod}[1]{\allowbreak +// \if@display\mkern18mu\else\mkern8mu\fi(#1)} +// \renewcommand{\pmod}[1]{\pod{{\operator@font mod}\mkern6mu#1}} +// \newcommand{\mod}[1]{\allowbreak\if@display\mkern18mu +// \else\mkern12mu\fi{\operator@font mod}\,\,#1} +// TODO: math mode should use \medmuskip = 4mu plus 2mu minus 4mu + +defineMacro("\\bmod", "\\mathchoice{\\mskip1mu}{\\mskip1mu}{\\mskip5mu}{\\mskip5mu}" + "\\mathbin{\\rm mod}" + "\\mathchoice{\\mskip1mu}{\\mskip1mu}{\\mskip5mu}{\\mskip5mu}"); +defineMacro("\\pod", "\\allowbreak" + "\\mathchoice{\\mkern18mu}{\\mkern8mu}{\\mkern8mu}{\\mkern8mu}(#1)"); +defineMacro("\\pmod", "\\pod{{\\rm mod}\\mkern6mu#1}"); +defineMacro("\\mod", "\\allowbreak" + "\\mathchoice{\\mkern18mu}{\\mkern12mu}{\\mkern12mu}{\\mkern12mu}" + "{\\rm mod}\\,\\,#1"); // \pmb -- A simulation of bold. +// The version in ambsy.sty works by typesetting three copies of the argument +// with small offsets. We use two copies. We omit the vertical offset because +// of rendering problems that makeVList encounters in Safari. + +defineMacro("\\pmb", "\\html@mathml{" + "\\@binrel{#1}{\\mathrlap{#1}\\kern0.5px#1}}" + "{\\mathbf{#1}}"); ////////////////////////////////////////////////////////////////////// +// LaTeX source2e +// \\ defaults to \newline, but changes to \cr within array environment + +defineMacro("\\\\", "\\newline"); // \def\TeX{T\kern-.1667em\lower.5ex\hbox{E}\kern-.125emX\@} +// TODO: Doesn't normally work in math mode because \@ fails. KaTeX doesn't +// support \@ yet, so that's omitted, and we add \text so that the result +// doesn't look funny in math mode. + +defineMacro("\\TeX", "\\textrm{\\html@mathml{" + "T\\kern-.1667em\\raisebox{-.5ex}{E}\\kern-.125emX" + "}{TeX}}"); // \DeclareRobustCommand{\LaTeX}{L\kern-.36em% +// {\sbox\z@ T% +// \vbox to\ht\z@{\hbox{\check@mathfonts +// \fontsize\sf@size\z@ +// \math@fontsfalse\selectfont +// A}% +// \vss}% +// }% +// \kern-.15em% +// \TeX} +// This code aligns the top of the A with the T (from the perspective of TeX's +// boxes, though visually the A appears to extend above slightly). +// We compute the corresponding \raisebox when A is rendered in \normalsize +// \scriptstyle, which has a scale factor of 0.7 (see Options.js). + +var latexRaiseA = fontMetricsData['Main-Regular']["T".charCodeAt(0)][1] - 0.7 * fontMetricsData['Main-Regular']["A".charCodeAt(0)][1] + "em"; +defineMacro("\\LaTeX", "\\textrm{\\html@mathml{" + ("L\\kern-.36em\\raisebox{" + latexRaiseA + "}{\\scriptstyle A}") + "\\kern-.15em\\TeX}{LaTeX}}"); // New KaTeX logo based on tweaking LaTeX logo + +defineMacro("\\KaTeX", "\\textrm{\\html@mathml{" + ("K\\kern-.17em\\raisebox{" + latexRaiseA + "}{\\scriptstyle A}") + "\\kern-.15em\\TeX}{KaTeX}}"); // \DeclareRobustCommand\hspace{\@ifstar\@hspacer\@hspace} +// \def\@hspace#1{\hskip #1\relax} +// \def\@hspacer#1{\vrule \@width\z@\nobreak +// \hskip #1\hskip \z@skip} + +defineMacro("\\hspace", "\\@ifstar\\@hspacer\\@hspace"); +defineMacro("\\@hspace", "\\hskip #1\\relax"); +defineMacro("\\@hspacer", "\\rule{0pt}{0pt}\\hskip #1\\relax"); ////////////////////////////////////////////////////////////////////// +// mathtools.sty +//\providecommand\ordinarycolon{:} + +defineMacro("\\ordinarycolon", ":"); //\def\vcentcolon{\mathrel{\mathop\ordinarycolon}} +//TODO(edemaine): Not yet centered. Fix via \raisebox or #726 + +defineMacro("\\vcentcolon", "\\mathrel{\\mathop\\ordinarycolon}"); // \providecommand*\dblcolon{\vcentcolon\mathrel{\mkern-.9mu}\vcentcolon} + +defineMacro("\\dblcolon", "\\html@mathml{" + "\\mathrel{\\vcentcolon\\mathrel{\\mkern-.9mu}\\vcentcolon}}" + "{\\mathop{\\char\"2237}}"); // \providecommand*\coloneqq{\vcentcolon\mathrel{\mkern-1.2mu}=} + +defineMacro("\\coloneqq", "\\html@mathml{" + "\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}=}}" + "{\\mathop{\\char\"2254}}"); // ≔ +// \providecommand*\Coloneqq{\dblcolon\mathrel{\mkern-1.2mu}=} + +defineMacro("\\Coloneqq", "\\html@mathml{" + "\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}=}}" + "{\\mathop{\\char\"2237\\char\"3d}}"); // \providecommand*\coloneq{\vcentcolon\mathrel{\mkern-1.2mu}\mathrel{-}} + +defineMacro("\\coloneq", "\\html@mathml{" + "\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}}" + "{\\mathop{\\char\"3a\\char\"2212}}"); // \providecommand*\Coloneq{\dblcolon\mathrel{\mkern-1.2mu}\mathrel{-}} + +defineMacro("\\Coloneq", "\\html@mathml{" + "\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}}" + "{\\mathop{\\char\"2237\\char\"2212}}"); // \providecommand*\eqqcolon{=\mathrel{\mkern-1.2mu}\vcentcolon} + +defineMacro("\\eqqcolon", "\\html@mathml{" + "\\mathrel{=\\mathrel{\\mkern-1.2mu}\\vcentcolon}}" + "{\\mathop{\\char\"2255}}"); // ≕ +// \providecommand*\Eqqcolon{=\mathrel{\mkern-1.2mu}\dblcolon} + +defineMacro("\\Eqqcolon", "\\html@mathml{" + "\\mathrel{=\\mathrel{\\mkern-1.2mu}\\dblcolon}}" + "{\\mathop{\\char\"3d\\char\"2237}}"); // \providecommand*\eqcolon{\mathrel{-}\mathrel{\mkern-1.2mu}\vcentcolon} + +defineMacro("\\eqcolon", "\\html@mathml{" + "\\mathrel{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\vcentcolon}}" + "{\\mathop{\\char\"2239}}"); // \providecommand*\Eqcolon{\mathrel{-}\mathrel{\mkern-1.2mu}\dblcolon} + +defineMacro("\\Eqcolon", "\\html@mathml{" + "\\mathrel{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\dblcolon}}" + "{\\mathop{\\char\"2212\\char\"2237}}"); // \providecommand*\colonapprox{\vcentcolon\mathrel{\mkern-1.2mu}\approx} + +defineMacro("\\colonapprox", "\\html@mathml{" + "\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\approx}}" + "{\\mathop{\\char\"3a\\char\"2248}}"); // \providecommand*\Colonapprox{\dblcolon\mathrel{\mkern-1.2mu}\approx} + +defineMacro("\\Colonapprox", "\\html@mathml{" + "\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\approx}}" + "{\\mathop{\\char\"2237\\char\"2248}}"); // \providecommand*\colonsim{\vcentcolon\mathrel{\mkern-1.2mu}\sim} + +defineMacro("\\colonsim", "\\html@mathml{" + "\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\sim}}" + "{\\mathop{\\char\"3a\\char\"223c}}"); // \providecommand*\Colonsim{\dblcolon\mathrel{\mkern-1.2mu}\sim} + +defineMacro("\\Colonsim", "\\html@mathml{" + "\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\sim}}" + "{\\mathop{\\char\"2237\\char\"223c}}"); // Some Unicode characters are implemented with macros to mathtools functions. + +defineMacro("\u2237", "\\dblcolon"); // :: + +defineMacro("\u2239", "\\eqcolon"); // -: + +defineMacro("\u2254", "\\coloneqq"); // := + +defineMacro("\u2255", "\\eqqcolon"); // =: + +defineMacro("\u2A74", "\\Coloneqq"); // ::= +////////////////////////////////////////////////////////////////////// +// colonequals.sty +// Alternate names for mathtools's macros: + +defineMacro("\\ratio", "\\vcentcolon"); +defineMacro("\\coloncolon", "\\dblcolon"); +defineMacro("\\colonequals", "\\coloneqq"); +defineMacro("\\coloncolonequals", "\\Coloneqq"); +defineMacro("\\equalscolon", "\\eqqcolon"); +defineMacro("\\equalscoloncolon", "\\Eqqcolon"); +defineMacro("\\colonminus", "\\coloneq"); +defineMacro("\\coloncolonminus", "\\Coloneq"); +defineMacro("\\minuscolon", "\\eqcolon"); +defineMacro("\\minuscoloncolon", "\\Eqcolon"); // \colonapprox name is same in mathtools and colonequals. + +defineMacro("\\coloncolonapprox", "\\Colonapprox"); // \colonsim name is same in mathtools and colonequals. + +defineMacro("\\coloncolonsim", "\\Colonsim"); // Additional macros, implemented by analogy with mathtools definitions: + +defineMacro("\\simcolon", "\\mathrel{\\sim\\mathrel{\\mkern-1.2mu}\\vcentcolon}"); +defineMacro("\\simcoloncolon", "\\mathrel{\\sim\\mathrel{\\mkern-1.2mu}\\dblcolon}"); +defineMacro("\\approxcolon", "\\mathrel{\\approx\\mathrel{\\mkern-1.2mu}\\vcentcolon}"); +defineMacro("\\approxcoloncolon", "\\mathrel{\\approx\\mathrel{\\mkern-1.2mu}\\dblcolon}"); // Present in newtxmath, pxfonts and txfonts + +defineMacro("\\notni", "\\html@mathml{\\not\\ni}{\\mathrel{\\char`\u220C}}"); +defineMacro("\\limsup", "\\DOTSB\\operatorname*{lim\\,sup}"); +defineMacro("\\liminf", "\\DOTSB\\operatorname*{lim\\,inf}"); ////////////////////////////////////////////////////////////////////// +// MathML alternates for KaTeX glyphs in the Unicode private area + +defineMacro("\\gvertneqq", "\\html@mathml{\\@gvertneqq}{\u2269}"); +defineMacro("\\lvertneqq", "\\html@mathml{\\@lvertneqq}{\u2268}"); +defineMacro("\\ngeqq", "\\html@mathml{\\@ngeqq}{\u2271}"); +defineMacro("\\ngeqslant", "\\html@mathml{\\@ngeqslant}{\u2271}"); +defineMacro("\\nleqq", "\\html@mathml{\\@nleqq}{\u2270}"); +defineMacro("\\nleqslant", "\\html@mathml{\\@nleqslant}{\u2270}"); +defineMacro("\\nshortmid", "\\html@mathml{\\@nshortmid}{∤}"); +defineMacro("\\nshortparallel", "\\html@mathml{\\@nshortparallel}{∦}"); +defineMacro("\\nsubseteqq", "\\html@mathml{\\@nsubseteqq}{\u2288}"); +defineMacro("\\nsupseteqq", "\\html@mathml{\\@nsupseteqq}{\u2289}"); +defineMacro("\\varsubsetneq", "\\html@mathml{\\@varsubsetneq}{⊊}"); +defineMacro("\\varsubsetneqq", "\\html@mathml{\\@varsubsetneqq}{⫋}"); +defineMacro("\\varsupsetneq", "\\html@mathml{\\@varsupsetneq}{⊋}"); +defineMacro("\\varsupsetneqq", "\\html@mathml{\\@varsupsetneqq}{⫌}"); +defineMacro("\\imath", "\\html@mathml{\\@imath}{\u0131}"); +defineMacro("\\jmath", "\\html@mathml{\\@jmath}{\u0237}"); ////////////////////////////////////////////////////////////////////// +// stmaryrd and semantic +// The stmaryrd and semantic packages render the next four items by calling a +// glyph. Those glyphs do not exist in the KaTeX fonts. Hence the macros. + +defineMacro("\\llbracket", "\\html@mathml{" + "\\mathopen{[\\mkern-3.2mu[}}" + "{\\mathopen{\\char`\u27E6}}"); +defineMacro("\\rrbracket", "\\html@mathml{" + "\\mathclose{]\\mkern-3.2mu]}}" + "{\\mathclose{\\char`\u27E7}}"); +defineMacro("\u27E6", "\\llbracket"); // blackboard bold [ + +defineMacro("\u27E7", "\\rrbracket"); // blackboard bold ] + +defineMacro("\\lBrace", "\\html@mathml{" + "\\mathopen{\\{\\mkern-3.2mu[}}" + "{\\mathopen{\\char`\u2983}}"); +defineMacro("\\rBrace", "\\html@mathml{" + "\\mathclose{]\\mkern-3.2mu\\}}}" + "{\\mathclose{\\char`\u2984}}"); +defineMacro("\u2983", "\\lBrace"); // blackboard bold { + +defineMacro("\u2984", "\\rBrace"); // blackboard bold } +// TODO: Create variable sized versions of the last two items. I believe that +// will require new font glyphs. +// The stmaryrd function `\minuso` provides a "Plimsoll" symbol that +// superimposes the characters \circ and \mathminus. Used in chemistry. + +defineMacro("\\minuso", "\\mathbin{\\html@mathml{" + "{\\mathrlap{\\mathchoice{\\kern{0.145em}}{\\kern{0.145em}}" + "{\\kern{0.1015em}}{\\kern{0.0725em}}\\circ}{-}}}" + "{\\char`⦵}}"); +defineMacro("⦵", "\\minuso"); ////////////////////////////////////////////////////////////////////// +// texvc.sty +// The texvc package contains macros available in mediawiki pages. +// We omit the functions deprecated at +// https://en.wikipedia.org/wiki/Help:Displaying_a_formula#Deprecated_syntax +// We also omit texvc's \O, which conflicts with \text{\O} + +defineMacro("\\darr", "\\downarrow"); +defineMacro("\\dArr", "\\Downarrow"); +defineMacro("\\Darr", "\\Downarrow"); +defineMacro("\\lang", "\\langle"); +defineMacro("\\rang", "\\rangle"); +defineMacro("\\uarr", "\\uparrow"); +defineMacro("\\uArr", "\\Uparrow"); +defineMacro("\\Uarr", "\\Uparrow"); +defineMacro("\\N", "\\mathbb{N}"); +defineMacro("\\R", "\\mathbb{R}"); +defineMacro("\\Z", "\\mathbb{Z}"); +defineMacro("\\alef", "\\aleph"); +defineMacro("\\alefsym", "\\aleph"); +defineMacro("\\Alpha", "\\mathrm{A}"); +defineMacro("\\Beta", "\\mathrm{B}"); +defineMacro("\\bull", "\\bullet"); +defineMacro("\\Chi", "\\mathrm{X}"); +defineMacro("\\clubs", "\\clubsuit"); +defineMacro("\\cnums", "\\mathbb{C}"); +defineMacro("\\Complex", "\\mathbb{C}"); +defineMacro("\\Dagger", "\\ddagger"); +defineMacro("\\diamonds", "\\diamondsuit"); +defineMacro("\\empty", "\\emptyset"); +defineMacro("\\Epsilon", "\\mathrm{E}"); +defineMacro("\\Eta", "\\mathrm{H}"); +defineMacro("\\exist", "\\exists"); +defineMacro("\\harr", "\\leftrightarrow"); +defineMacro("\\hArr", "\\Leftrightarrow"); +defineMacro("\\Harr", "\\Leftrightarrow"); +defineMacro("\\hearts", "\\heartsuit"); +defineMacro("\\image", "\\Im"); +defineMacro("\\infin", "\\infty"); +defineMacro("\\Iota", "\\mathrm{I}"); +defineMacro("\\isin", "\\in"); +defineMacro("\\Kappa", "\\mathrm{K}"); +defineMacro("\\larr", "\\leftarrow"); +defineMacro("\\lArr", "\\Leftarrow"); +defineMacro("\\Larr", "\\Leftarrow"); +defineMacro("\\lrarr", "\\leftrightarrow"); +defineMacro("\\lrArr", "\\Leftrightarrow"); +defineMacro("\\Lrarr", "\\Leftrightarrow"); +defineMacro("\\Mu", "\\mathrm{M}"); +defineMacro("\\natnums", "\\mathbb{N}"); +defineMacro("\\Nu", "\\mathrm{N}"); +defineMacro("\\Omicron", "\\mathrm{O}"); +defineMacro("\\plusmn", "\\pm"); +defineMacro("\\rarr", "\\rightarrow"); +defineMacro("\\rArr", "\\Rightarrow"); +defineMacro("\\Rarr", "\\Rightarrow"); +defineMacro("\\real", "\\Re"); +defineMacro("\\reals", "\\mathbb{R}"); +defineMacro("\\Reals", "\\mathbb{R}"); +defineMacro("\\Rho", "\\mathrm{P}"); +defineMacro("\\sdot", "\\cdot"); +defineMacro("\\sect", "\\S"); +defineMacro("\\spades", "\\spadesuit"); +defineMacro("\\sub", "\\subset"); +defineMacro("\\sube", "\\subseteq"); +defineMacro("\\supe", "\\supseteq"); +defineMacro("\\Tau", "\\mathrm{T}"); +defineMacro("\\thetasym", "\\vartheta"); // TODO: defineMacro("\\varcoppa", "\\\mbox{\\coppa}"); + +defineMacro("\\weierp", "\\wp"); +defineMacro("\\Zeta", "\\mathrm{Z}"); ////////////////////////////////////////////////////////////////////// +// statmath.sty +// https://ctan.math.illinois.edu/macros/latex/contrib/statmath/statmath.pdf + +defineMacro("\\argmin", "\\DOTSB\\operatorname*{arg\\,min}"); +defineMacro("\\argmax", "\\DOTSB\\operatorname*{arg\\,max}"); +defineMacro("\\plim", "\\DOTSB\\mathop{\\operatorname{plim}}\\limits"); ////////////////////////////////////////////////////////////////////// +// braket.sty +// http://ctan.math.washington.edu/tex-archive/macros/latex/contrib/braket/braket.pdf + +defineMacro("\\bra", "\\mathinner{\\langle{#1}|}"); +defineMacro("\\ket", "\\mathinner{|{#1}\\rangle}"); +defineMacro("\\braket", "\\mathinner{\\langle{#1}\\rangle}"); +defineMacro("\\Bra", "\\left\\langle#1\\right|"); +defineMacro("\\Ket", "\\left|#1\\right\\rangle"); // Custom Khan Academy colors, should be moved to an optional package + +defineMacro("\\blue", "\\textcolor{##6495ed}{#1}"); +defineMacro("\\orange", "\\textcolor{##ffa500}{#1}"); +defineMacro("\\pink", "\\textcolor{##ff00af}{#1}"); +defineMacro("\\red", "\\textcolor{##df0030}{#1}"); +defineMacro("\\green", "\\textcolor{##28ae7b}{#1}"); +defineMacro("\\gray", "\\textcolor{gray}{#1}"); +defineMacro("\\purple", "\\textcolor{##9d38bd}{#1}"); +defineMacro("\\blueA", "\\textcolor{##ccfaff}{#1}"); +defineMacro("\\blueB", "\\textcolor{##80f6ff}{#1}"); +defineMacro("\\blueC", "\\textcolor{##63d9ea}{#1}"); +defineMacro("\\blueD", "\\textcolor{##11accd}{#1}"); +defineMacro("\\blueE", "\\textcolor{##0c7f99}{#1}"); +defineMacro("\\tealA", "\\textcolor{##94fff5}{#1}"); +defineMacro("\\tealB", "\\textcolor{##26edd5}{#1}"); +defineMacro("\\tealC", "\\textcolor{##01d1c1}{#1}"); +defineMacro("\\tealD", "\\textcolor{##01a995}{#1}"); +defineMacro("\\tealE", "\\textcolor{##208170}{#1}"); +defineMacro("\\greenA", "\\textcolor{##b6ffb0}{#1}"); +defineMacro("\\greenB", "\\textcolor{##8af281}{#1}"); +defineMacro("\\greenC", "\\textcolor{##74cf70}{#1}"); +defineMacro("\\greenD", "\\textcolor{##1fab54}{#1}"); +defineMacro("\\greenE", "\\textcolor{##0d923f}{#1}"); +defineMacro("\\goldA", "\\textcolor{##ffd0a9}{#1}"); +defineMacro("\\goldB", "\\textcolor{##ffbb71}{#1}"); +defineMacro("\\goldC", "\\textcolor{##ff9c39}{#1}"); +defineMacro("\\goldD", "\\textcolor{##e07d10}{#1}"); +defineMacro("\\goldE", "\\textcolor{##a75a05}{#1}"); +defineMacro("\\redA", "\\textcolor{##fca9a9}{#1}"); +defineMacro("\\redB", "\\textcolor{##ff8482}{#1}"); +defineMacro("\\redC", "\\textcolor{##f9685d}{#1}"); +defineMacro("\\redD", "\\textcolor{##e84d39}{#1}"); +defineMacro("\\redE", "\\textcolor{##bc2612}{#1}"); +defineMacro("\\maroonA", "\\textcolor{##ffbde0}{#1}"); +defineMacro("\\maroonB", "\\textcolor{##ff92c6}{#1}"); +defineMacro("\\maroonC", "\\textcolor{##ed5fa6}{#1}"); +defineMacro("\\maroonD", "\\textcolor{##ca337c}{#1}"); +defineMacro("\\maroonE", "\\textcolor{##9e034e}{#1}"); +defineMacro("\\purpleA", "\\textcolor{##ddd7ff}{#1}"); +defineMacro("\\purpleB", "\\textcolor{##c6b9fc}{#1}"); +defineMacro("\\purpleC", "\\textcolor{##aa87ff}{#1}"); +defineMacro("\\purpleD", "\\textcolor{##7854ab}{#1}"); +defineMacro("\\purpleE", "\\textcolor{##543b78}{#1}"); +defineMacro("\\mintA", "\\textcolor{##f5f9e8}{#1}"); +defineMacro("\\mintB", "\\textcolor{##edf2df}{#1}"); +defineMacro("\\mintC", "\\textcolor{##e0e5cc}{#1}"); +defineMacro("\\grayA", "\\textcolor{##f6f7f7}{#1}"); +defineMacro("\\grayB", "\\textcolor{##f0f1f2}{#1}"); +defineMacro("\\grayC", "\\textcolor{##e3e5e6}{#1}"); +defineMacro("\\grayD", "\\textcolor{##d6d8da}{#1}"); +defineMacro("\\grayE", "\\textcolor{##babec2}{#1}"); +defineMacro("\\grayF", "\\textcolor{##888d93}{#1}"); +defineMacro("\\grayG", "\\textcolor{##626569}{#1}"); +defineMacro("\\grayH", "\\textcolor{##3b3e40}{#1}"); +defineMacro("\\grayI", "\\textcolor{##21242c}{#1}"); +defineMacro("\\kaBlue", "\\textcolor{##314453}{#1}"); +defineMacro("\\kaGreen", "\\textcolor{##71B307}{#1}"); +// CONCATENATED MODULE: ./src/MacroExpander.js +/** + * This file contains the “gullet” where macros are expanded + * until only non-macro tokens remain. + */ + + + + + + + +// List of commands that act like macros but aren't defined as a macro, +// function, or symbol. Used in `isDefined`. +var implicitCommands = { + "\\relax": true, + // MacroExpander.js + "^": true, + // Parser.js + "_": true, + // Parser.js + "\\limits": true, + // Parser.js + "\\nolimits": true // Parser.js + +}; + +var MacroExpander_MacroExpander = +/*#__PURE__*/ +function () { + function MacroExpander(input, settings, mode) { + this.settings = void 0; + this.expansionCount = void 0; + this.lexer = void 0; + this.macros = void 0; + this.stack = void 0; + this.mode = void 0; + this.settings = settings; + this.expansionCount = 0; + this.feed(input); // Make new global namespace + + this.macros = new Namespace_Namespace(macros, settings.macros); + this.mode = mode; + this.stack = []; // contains tokens in REVERSE order + } + /** + * Feed a new input string to the same MacroExpander + * (with existing macros etc.). + */ + + + var _proto = MacroExpander.prototype; + + _proto.feed = function feed(input) { + this.lexer = new Lexer_Lexer(input, this.settings); + } + /** + * Switches between "text" and "math" modes. + */ + ; + + _proto.switchMode = function switchMode(newMode) { + this.mode = newMode; + } + /** + * Start a new group nesting within all namespaces. + */ + ; + + _proto.beginGroup = function beginGroup() { + this.macros.beginGroup(); + } + /** + * End current group nesting within all namespaces. + */ + ; + + _proto.endGroup = function endGroup() { + this.macros.endGroup(); + } + /** + * Returns the topmost token on the stack, without expanding it. + * Similar in behavior to TeX's `\futurelet`. + */ + ; + + _proto.future = function future() { + if (this.stack.length === 0) { + this.pushToken(this.lexer.lex()); + } + + return this.stack[this.stack.length - 1]; + } + /** + * Remove and return the next unexpanded token. + */ + ; + + _proto.popToken = function popToken() { + this.future(); // ensure non-empty stack + + return this.stack.pop(); + } + /** + * Add a given token to the token stack. In particular, this get be used + * to put back a token returned from one of the other methods. + */ + ; + + _proto.pushToken = function pushToken(token) { + this.stack.push(token); + } + /** + * Append an array of tokens to the token stack. + */ + ; + + _proto.pushTokens = function pushTokens(tokens) { + var _this$stack; + + (_this$stack = this.stack).push.apply(_this$stack, tokens); + } + /** + * Consume all following space tokens, without expansion. + */ + ; + + _proto.consumeSpaces = function consumeSpaces() { + for (;;) { + var token = this.future(); + + if (token.text === " ") { + this.stack.pop(); + } else { + break; + } + } + } + /** + * Consume the specified number of arguments from the token stream, + * and return the resulting array of arguments. + */ + ; + + _proto.consumeArgs = function consumeArgs(numArgs) { + var args = []; // obtain arguments, either single token or balanced {…} group + + for (var i = 0; i < numArgs; ++i) { + this.consumeSpaces(); // ignore spaces before each argument + + var startOfArg = this.popToken(); + + if (startOfArg.text === "{") { + var arg = []; + var depth = 1; + + while (depth !== 0) { + var tok = this.popToken(); + arg.push(tok); + + if (tok.text === "{") { + ++depth; + } else if (tok.text === "}") { + --depth; + } else if (tok.text === "EOF") { + throw new src_ParseError("End of input in macro argument", startOfArg); + } + } + + arg.pop(); // remove last } + + arg.reverse(); // like above, to fit in with stack order + + args[i] = arg; + } else if (startOfArg.text === "EOF") { + throw new src_ParseError("End of input expecting macro argument"); + } else { + args[i] = [startOfArg]; + } + } + + return args; + } + /** + * Expand the next token only once if possible. + * + * If the token is expanded, the resulting tokens will be pushed onto + * the stack in reverse order and will be returned as an array, + * also in reverse order. + * + * If not, the next token will be returned without removing it + * from the stack. This case can be detected by a `Token` return value + * instead of an `Array` return value. + * + * In either case, the next token will be on the top of the stack, + * or the stack will be empty. + * + * Used to implement `expandAfterFuture` and `expandNextToken`. + * + * At the moment, macro expansion doesn't handle delimited macros, + * i.e. things like those defined by \def\foo#1\end{…}. + * See the TeX book page 202ff. for details on how those should behave. + * + * If expandableOnly, only expandable tokens are expanded and + * an undefined control sequence results in an error. + */ + ; + + _proto.expandOnce = function expandOnce(expandableOnly) { + var topToken = this.popToken(); + var name = topToken.text; + var expansion = !topToken.noexpand ? this._getExpansion(name) : null; + + if (expansion == null || expandableOnly && expansion.unexpandable) { + if (expandableOnly && expansion == null && name[0] === "\\" && !this.isDefined(name)) { + throw new src_ParseError("Undefined control sequence: " + name); + } + + this.pushToken(topToken); + return topToken; + } + + this.expansionCount++; + + if (this.expansionCount > this.settings.maxExpand) { + throw new src_ParseError("Too many expansions: infinite loop or " + "need to increase maxExpand setting"); + } + + var tokens = expansion.tokens; + + if (expansion.numArgs) { + var args = this.consumeArgs(expansion.numArgs); // paste arguments in place of the placeholders + + tokens = tokens.slice(); // make a shallow copy + + for (var i = tokens.length - 1; i >= 0; --i) { + var tok = tokens[i]; + + if (tok.text === "#") { + if (i === 0) { + throw new src_ParseError("Incomplete placeholder at end of macro body", tok); + } + + tok = tokens[--i]; // next token on stack + + if (tok.text === "#") { + // ## → # + tokens.splice(i + 1, 1); // drop first # + } else if (/^[1-9]$/.test(tok.text)) { + var _tokens; + + // replace the placeholder with the indicated argument + (_tokens = tokens).splice.apply(_tokens, [i, 2].concat(args[+tok.text - 1])); + } else { + throw new src_ParseError("Not a valid argument number", tok); + } + } + } + } // Concatenate expansion onto top of stack. + + + this.pushTokens(tokens); + return tokens; + } + /** + * Expand the next token only once (if possible), and return the resulting + * top token on the stack (without removing anything from the stack). + * Similar in behavior to TeX's `\expandafter\futurelet`. + * Equivalent to expandOnce() followed by future(). + */ + ; + + _proto.expandAfterFuture = function expandAfterFuture() { + this.expandOnce(); + return this.future(); + } + /** + * Recursively expand first token, then return first non-expandable token. + */ + ; + + _proto.expandNextToken = function expandNextToken() { + for (;;) { + var expanded = this.expandOnce(); // expandOnce returns Token if and only if it's fully expanded. + + if (expanded instanceof Token_Token) { + // \relax stops the expansion, but shouldn't get returned (a + // null return value couldn't get implemented as a function). + // the token after \noexpand is interpreted as if its meaning + // were ‘\relax’ + if (expanded.text === "\\relax" || expanded.treatAsRelax) { + this.stack.pop(); + } else { + return this.stack.pop(); // === expanded + } + } + } // Flow unable to figure out that this pathway is impossible. + // https://github.com/facebook/flow/issues/4808 + + + throw new Error(); // eslint-disable-line no-unreachable + } + /** + * Fully expand the given macro name and return the resulting list of + * tokens, or return `undefined` if no such macro is defined. + */ + ; + + _proto.expandMacro = function expandMacro(name) { + return this.macros.has(name) ? this.expandTokens([new Token_Token(name)]) : undefined; + } + /** + * Fully expand the given token stream and return the resulting list of tokens + */ + ; + + _proto.expandTokens = function expandTokens(tokens) { + var output = []; + var oldStackLength = this.stack.length; + this.pushTokens(tokens); + + while (this.stack.length > oldStackLength) { + var expanded = this.expandOnce(true); // expand only expandable tokens + // expandOnce returns Token if and only if it's fully expanded. + + if (expanded instanceof Token_Token) { + if (expanded.treatAsRelax) { + // the expansion of \noexpand is the token itself + expanded.noexpand = false; + expanded.treatAsRelax = false; + } + + output.push(this.stack.pop()); + } + } + + return output; + } + /** + * Fully expand the given macro name and return the result as a string, + * or return `undefined` if no such macro is defined. + */ + ; + + _proto.expandMacroAsText = function expandMacroAsText(name) { + var tokens = this.expandMacro(name); + + if (tokens) { + return tokens.map(function (token) { + return token.text; + }).join(""); + } else { + return tokens; + } + } + /** + * Returns the expanded macro as a reversed array of tokens and a macro + * argument count. Or returns `null` if no such macro. + */ + ; + + _proto._getExpansion = function _getExpansion(name) { + var definition = this.macros.get(name); + + if (definition == null) { + // mainly checking for undefined here + return definition; + } + + var expansion = typeof definition === "function" ? definition(this) : definition; + + if (typeof expansion === "string") { + var numArgs = 0; + + if (expansion.indexOf("#") !== -1) { + var stripped = expansion.replace(/##/g, ""); + + while (stripped.indexOf("#" + (numArgs + 1)) !== -1) { + ++numArgs; + } + } + + var bodyLexer = new Lexer_Lexer(expansion, this.settings); + var tokens = []; + var tok = bodyLexer.lex(); + + while (tok.text !== "EOF") { + tokens.push(tok); + tok = bodyLexer.lex(); + } + + tokens.reverse(); // to fit in with stack using push and pop + + var expanded = { + tokens: tokens, + numArgs: numArgs + }; + return expanded; + } + + return expansion; + } + /** + * Determine whether a command is currently "defined" (has some + * functionality), meaning that it's a macro (in the current group), + * a function, a symbol, or one of the special commands listed in + * `implicitCommands`. + */ + ; + + _proto.isDefined = function isDefined(name) { + return this.macros.has(name) || src_functions.hasOwnProperty(name) || src_symbols.math.hasOwnProperty(name) || src_symbols.text.hasOwnProperty(name) || implicitCommands.hasOwnProperty(name); + } + /** + * Determine whether a command is expandable. + */ + ; + + _proto.isExpandable = function isExpandable(name) { + var macro = this.macros.get(name); + return macro != null ? typeof macro === "string" || typeof macro === "function" || !macro.unexpandable // TODO(ylem): #2085 + : src_functions.hasOwnProperty(name) + /* && !functions[name].primitive*/ + ; + }; + + return MacroExpander; +}(); + + +// CONCATENATED MODULE: ./src/Parser.js +/* eslint no-constant-condition:0 */ + + + + + + + + + + // Pre-evaluate both modules as unicodeSymbols require String.normalize() + +var unicodeAccents = { + "́": { + "text": "\\'", + "math": "\\acute" + }, + "̀": { + "text": "\\`", + "math": "\\grave" + }, + "̈": { + "text": "\\\"", + "math": "\\ddot" + }, + "̃": { + "text": "\\~", + "math": "\\tilde" + }, + "̄": { + "text": "\\=", + "math": "\\bar" + }, + "̆": { + "text": "\\u", + "math": "\\breve" + }, + "̌": { + "text": "\\v", + "math": "\\check" + }, + "̂": { + "text": "\\^", + "math": "\\hat" + }, + "̇": { + "text": "\\.", + "math": "\\dot" + }, + "̊": { + "text": "\\r", + "math": "\\mathring" + }, + "̋": { + "text": "\\H" + } +}; +var unicodeSymbols = { + "á": "á", + "à": "à", + "ä": "ä", + "ǟ": "ǟ", + "ã": "ã", + "ā": "ā", + "ă": "ă", + "ắ": "ắ", + "ằ": "ằ", + "ẵ": "ẵ", + "ǎ": "ǎ", + "â": "â", + "ấ": "ấ", + "ầ": "ầ", + "ẫ": "ẫ", + "ȧ": "ȧ", + "ǡ": "ǡ", + "å": "å", + "ǻ": "ǻ", + "ḃ": "ḃ", + "ć": "ć", + "č": "č", + "ĉ": "ĉ", + "ċ": "ċ", + "ď": "ď", + "ḋ": "ḋ", + "é": "é", + "è": "è", + "ë": "ë", + "ẽ": "ẽ", + "ē": "ē", + "ḗ": "ḗ", + "ḕ": "ḕ", + "ĕ": "ĕ", + "ě": "ě", + "ê": "ê", + "ế": "ế", + "ề": "ề", + "ễ": "ễ", + "ė": "ė", + "ḟ": "ḟ", + "ǵ": "ǵ", + "ḡ": "ḡ", + "ğ": "ğ", + "ǧ": "ǧ", + "ĝ": "ĝ", + "ġ": "ġ", + "ḧ": "ḧ", + "ȟ": "ȟ", + "ĥ": "ĥ", + "ḣ": "ḣ", + "í": "í", + "ì": "ì", + "ï": "ï", + "ḯ": "ḯ", + "ĩ": "ĩ", + "ī": "ī", + "ĭ": "ĭ", + "ǐ": "ǐ", + "î": "î", + "ǰ": "ǰ", + "ĵ": "ĵ", + "ḱ": "ḱ", + "ǩ": "ǩ", + "ĺ": "ĺ", + "ľ": "ľ", + "ḿ": "ḿ", + "ṁ": "ṁ", + "ń": "ń", + "ǹ": "ǹ", + "ñ": "ñ", + "ň": "ň", + "ṅ": "ṅ", + "ó": "ó", + "ò": "ò", + "ö": "ö", + "ȫ": "ȫ", + "õ": "õ", + "ṍ": "ṍ", + "ṏ": "ṏ", + "ȭ": "ȭ", + "ō": "ō", + "ṓ": "ṓ", + "ṑ": "ṑ", + "ŏ": "ŏ", + "ǒ": "ǒ", + "ô": "ô", + "ố": "ố", + "ồ": "ồ", + "ỗ": "ỗ", + "ȯ": "ȯ", + "ȱ": "ȱ", + "ő": "ő", + "ṕ": "ṕ", + "ṗ": "ṗ", + "ŕ": "ŕ", + "ř": "ř", + "ṙ": "ṙ", + "ś": "ś", + "ṥ": "ṥ", + "š": "š", + "ṧ": "ṧ", + "ŝ": "ŝ", + "ṡ": "ṡ", + "ẗ": "ẗ", + "ť": "ť", + "ṫ": "ṫ", + "ú": "ú", + "ù": "ù", + "ü": "ü", + "ǘ": "ǘ", + "ǜ": "ǜ", + "ǖ": "ǖ", + "ǚ": "ǚ", + "ũ": "ũ", + "ṹ": "ṹ", + "ū": "ū", + "ṻ": "ṻ", + "ŭ": "ŭ", + "ǔ": "ǔ", + "û": "û", + "ů": "ů", + "ű": "ű", + "ṽ": "ṽ", + "ẃ": "ẃ", + "ẁ": "ẁ", + "ẅ": "ẅ", + "ŵ": "ŵ", + "ẇ": "ẇ", + "ẘ": "ẘ", + "ẍ": "ẍ", + "ẋ": "ẋ", + "ý": "ý", + "ỳ": "ỳ", + "ÿ": "ÿ", + "ỹ": "ỹ", + "ȳ": "ȳ", + "ŷ": "ŷ", + "ẏ": "ẏ", + "ẙ": "ẙ", + "ź": "ź", + "ž": "ž", + "ẑ": "ẑ", + "ż": "ż", + "Á": "Á", + "À": "À", + "Ä": "Ä", + "Ǟ": "Ǟ", + "Ã": "Ã", + "Ā": "Ā", + "Ă": "Ă", + "Ắ": "Ắ", + "Ằ": "Ằ", + "Ẵ": "Ẵ", + "Ǎ": "Ǎ", + "Â": "Â", + "Ấ": "Ấ", + "Ầ": "Ầ", + "Ẫ": "Ẫ", + "Ȧ": "Ȧ", + "Ǡ": "Ǡ", + "Å": "Å", + "Ǻ": "Ǻ", + "Ḃ": "Ḃ", + "Ć": "Ć", + "Č": "Č", + "Ĉ": "Ĉ", + "Ċ": "Ċ", + "Ď": "Ď", + "Ḋ": "Ḋ", + "É": "É", + "È": "È", + "Ë": "Ë", + "Ẽ": "Ẽ", + "Ē": "Ē", + "Ḗ": "Ḗ", + "Ḕ": "Ḕ", + "Ĕ": "Ĕ", + "Ě": "Ě", + "Ê": "Ê", + "Ế": "Ế", + "Ề": "Ề", + "Ễ": "Ễ", + "Ė": "Ė", + "Ḟ": "Ḟ", + "Ǵ": "Ǵ", + "Ḡ": "Ḡ", + "Ğ": "Ğ", + "Ǧ": "Ǧ", + "Ĝ": "Ĝ", + "Ġ": "Ġ", + "Ḧ": "Ḧ", + "Ȟ": "Ȟ", + "Ĥ": "Ĥ", + "Ḣ": "Ḣ", + "Í": "Í", + "Ì": "Ì", + "Ï": "Ï", + "Ḯ": "Ḯ", + "Ĩ": "Ĩ", + "Ī": "Ī", + "Ĭ": "Ĭ", + "Ǐ": "Ǐ", + "Î": "Î", + "İ": "İ", + "Ĵ": "Ĵ", + "Ḱ": "Ḱ", + "Ǩ": "Ǩ", + "Ĺ": "Ĺ", + "Ľ": "Ľ", + "Ḿ": "Ḿ", + "Ṁ": "Ṁ", + "Ń": "Ń", + "Ǹ": "Ǹ", + "Ñ": "Ñ", + "Ň": "Ň", + "Ṅ": "Ṅ", + "Ó": "Ó", + "Ò": "Ò", + "Ö": "Ö", + "Ȫ": "Ȫ", + "Õ": "Õ", + "Ṍ": "Ṍ", + "Ṏ": "Ṏ", + "Ȭ": "Ȭ", + "Ō": "Ō", + "Ṓ": "Ṓ", + "Ṑ": "Ṑ", + "Ŏ": "Ŏ", + "Ǒ": "Ǒ", + "Ô": "Ô", + "Ố": "Ố", + "Ồ": "Ồ", + "Ỗ": "Ỗ", + "Ȯ": "Ȯ", + "Ȱ": "Ȱ", + "Ő": "Ő", + "Ṕ": "Ṕ", + "Ṗ": "Ṗ", + "Ŕ": "Ŕ", + "Ř": "Ř", + "Ṙ": "Ṙ", + "Ś": "Ś", + "Ṥ": "Ṥ", + "Š": "Š", + "Ṧ": "Ṧ", + "Ŝ": "Ŝ", + "Ṡ": "Ṡ", + "Ť": "Ť", + "Ṫ": "Ṫ", + "Ú": "Ú", + "Ù": "Ù", + "Ü": "Ü", + "Ǘ": "Ǘ", + "Ǜ": "Ǜ", + "Ǖ": "Ǖ", + "Ǚ": "Ǚ", + "Ũ": "Ũ", + "Ṹ": "Ṹ", + "Ū": "Ū", + "Ṻ": "Ṻ", + "Ŭ": "Ŭ", + "Ǔ": "Ǔ", + "Û": "Û", + "Ů": "Ů", + "Ű": "Ű", + "Ṽ": "Ṽ", + "Ẃ": "Ẃ", + "Ẁ": "Ẁ", + "Ẅ": "Ẅ", + "Ŵ": "Ŵ", + "Ẇ": "Ẇ", + "Ẍ": "Ẍ", + "Ẋ": "Ẋ", + "Ý": "Ý", + "Ỳ": "Ỳ", + "Ÿ": "Ÿ", + "Ỹ": "Ỹ", + "Ȳ": "Ȳ", + "Ŷ": "Ŷ", + "Ẏ": "Ẏ", + "Ź": "Ź", + "Ž": "Ž", + "Ẑ": "Ẑ", + "Ż": "Ż", + "ά": "ά", + "ὰ": "ὰ", + "ᾱ": "ᾱ", + "ᾰ": "ᾰ", + "έ": "έ", + "ὲ": "ὲ", + "ή": "ή", + "ὴ": "ὴ", + "ί": "ί", + "ὶ": "ὶ", + "ϊ": "ϊ", + "ΐ": "ΐ", + "ῒ": "ῒ", + "ῑ": "ῑ", + "ῐ": "ῐ", + "ό": "ό", + "ὸ": "ὸ", + "ύ": "ύ", + "ὺ": "ὺ", + "ϋ": "ϋ", + "ΰ": "ΰ", + "ῢ": "ῢ", + "ῡ": "ῡ", + "ῠ": "ῠ", + "ώ": "ώ", + "ὼ": "ὼ", + "Ύ": "Ύ", + "Ὺ": "Ὺ", + "Ϋ": "Ϋ", + "Ῡ": "Ῡ", + "Ῠ": "Ῠ", + "Ώ": "Ώ", + "Ὼ": "Ὼ" +}; + +/** + * This file contains the parser used to parse out a TeX expression from the + * input. Since TeX isn't context-free, standard parsers don't work particularly + * well. + * + * The strategy of this parser is as such: + * + * The main functions (the `.parse...` ones) take a position in the current + * parse string to parse tokens from. The lexer (found in Lexer.js, stored at + * this.gullet.lexer) also supports pulling out tokens at arbitrary places. When + * individual tokens are needed at a position, the lexer is called to pull out a + * token, which is then used. + * + * The parser has a property called "mode" indicating the mode that + * the parser is currently in. Currently it has to be one of "math" or + * "text", which denotes whether the current environment is a math-y + * one or a text-y one (e.g. inside \text). Currently, this serves to + * limit the functions which can be used in text mode. + * + * The main functions then return an object which contains the useful data that + * was parsed at its given point, and a new position at the end of the parsed + * data. The main functions can call each other and continue the parsing by + * using the returned position as a new starting point. + * + * There are also extra `.handle...` functions, which pull out some reused + * functionality into self-contained functions. + * + * The functions return ParseNodes. + */ +var Parser_Parser = +/*#__PURE__*/ +function () { + function Parser(input, settings) { + this.mode = void 0; + this.gullet = void 0; + this.settings = void 0; + this.leftrightDepth = void 0; + this.nextToken = void 0; + // Start in math mode + this.mode = "math"; // Create a new macro expander (gullet) and (indirectly via that) also a + // new lexer (mouth) for this parser (stomach, in the language of TeX) + + this.gullet = new MacroExpander_MacroExpander(input, settings, this.mode); // Store the settings for use in parsing + + this.settings = settings; // Count leftright depth (for \middle errors) + + this.leftrightDepth = 0; + } + /** + * Checks a result to make sure it has the right type, and throws an + * appropriate error otherwise. + */ + + + var _proto = Parser.prototype; + + _proto.expect = function expect(text, consume) { + if (consume === void 0) { + consume = true; + } + + if (this.fetch().text !== text) { + throw new src_ParseError("Expected '" + text + "', got '" + this.fetch().text + "'", this.fetch()); + } + + if (consume) { + this.consume(); + } + } + /** + * Discards the current lookahead token, considering it consumed. + */ + ; + + _proto.consume = function consume() { + this.nextToken = null; + } + /** + * Return the current lookahead token, or if there isn't one (at the + * beginning, or if the previous lookahead token was consume()d), + * fetch the next token as the new lookahead token and return it. + */ + ; + + _proto.fetch = function fetch() { + if (this.nextToken == null) { + this.nextToken = this.gullet.expandNextToken(); + } + + return this.nextToken; + } + /** + * Switches between "text" and "math" modes. + */ + ; + + _proto.switchMode = function switchMode(newMode) { + this.mode = newMode; + this.gullet.switchMode(newMode); + } + /** + * Main parsing function, which parses an entire input. + */ + ; + + _proto.parse = function parse() { + if (!this.settings.globalGroup) { + // Create a group namespace for the math expression. + // (LaTeX creates a new group for every $...$, $$...$$, \[...\].) + this.gullet.beginGroup(); + } // Use old \color behavior (same as LaTeX's \textcolor) if requested. + // We do this within the group for the math expression, so it doesn't + // pollute settings.macros. + + + if (this.settings.colorIsTextColor) { + this.gullet.macros.set("\\color", "\\textcolor"); + } // Try to parse the input + + + var parse = this.parseExpression(false); // If we succeeded, make sure there's an EOF at the end + + this.expect("EOF"); // End the group namespace for the expression + + if (!this.settings.globalGroup) { + this.gullet.endGroup(); + } + + return parse; + }; + + _proto.parseExpression = function parseExpression(breakOnInfix, breakOnTokenText) { + var body = []; // Keep adding atoms to the body until we can't parse any more atoms (either + // we reached the end, a }, or a \right) + + while (true) { + // Ignore spaces in math mode + if (this.mode === "math") { + this.consumeSpaces(); + } + + var lex = this.fetch(); + + if (Parser.endOfExpression.indexOf(lex.text) !== -1) { + break; + } + + if (breakOnTokenText && lex.text === breakOnTokenText) { + break; + } + + if (breakOnInfix && src_functions[lex.text] && src_functions[lex.text].infix) { + break; + } + + var atom = this.parseAtom(breakOnTokenText); + + if (!atom) { + break; + } else if (atom.type === "internal") { + continue; + } + + body.push(atom); + } + + if (this.mode === "text") { + this.formLigatures(body); + } + + return this.handleInfixNodes(body); + } + /** + * Rewrites infix operators such as \over with corresponding commands such + * as \frac. + * + * There can only be one infix operator per group. If there's more than one + * then the expression is ambiguous. This can be resolved by adding {}. + */ + ; + + _proto.handleInfixNodes = function handleInfixNodes(body) { + var overIndex = -1; + var funcName; + + for (var i = 0; i < body.length; i++) { + if (body[i].type === "infix") { + if (overIndex !== -1) { + throw new src_ParseError("only one infix operator per group", body[i].token); + } + + overIndex = i; + funcName = body[i].replaceWith; + } + } + + if (overIndex !== -1 && funcName) { + var numerNode; + var denomNode; + var numerBody = body.slice(0, overIndex); + var denomBody = body.slice(overIndex + 1); + + if (numerBody.length === 1 && numerBody[0].type === "ordgroup") { + numerNode = numerBody[0]; + } else { + numerNode = { + type: "ordgroup", + mode: this.mode, + body: numerBody + }; + } + + if (denomBody.length === 1 && denomBody[0].type === "ordgroup") { + denomNode = denomBody[0]; + } else { + denomNode = { + type: "ordgroup", + mode: this.mode, + body: denomBody + }; + } + + var node; + + if (funcName === "\\\\abovefrac") { + node = this.callFunction(funcName, [numerNode, body[overIndex], denomNode], []); + } else { + node = this.callFunction(funcName, [numerNode, denomNode], []); + } + + return [node]; + } else { + return body; + } + } // The greediness of a superscript or subscript + ; + + /** + * Handle a subscript or superscript with nice errors. + */ + _proto.handleSupSubscript = function handleSupSubscript(name) { + var symbolToken = this.fetch(); + var symbol = symbolToken.text; + this.consume(); + var group = this.parseGroup(name, false, Parser.SUPSUB_GREEDINESS, undefined, undefined, true); // ignore spaces before sup/subscript argument + + if (!group) { + throw new src_ParseError("Expected group after '" + symbol + "'", symbolToken); + } + + return group; + } + /** + * Converts the textual input of an unsupported command into a text node + * contained within a color node whose color is determined by errorColor + */ + ; + + _proto.formatUnsupportedCmd = function formatUnsupportedCmd(text) { + var textordArray = []; + + for (var i = 0; i < text.length; i++) { + textordArray.push({ + type: "textord", + mode: "text", + text: text[i] + }); + } + + var textNode = { + type: "text", + mode: this.mode, + body: textordArray + }; + var colorNode = { + type: "color", + mode: this.mode, + color: this.settings.errorColor, + body: [textNode] + }; + return colorNode; + } + /** + * Parses a group with optional super/subscripts. + */ + ; + + _proto.parseAtom = function parseAtom(breakOnTokenText) { + // The body of an atom is an implicit group, so that things like + // \left(x\right)^2 work correctly. + var base = this.parseGroup("atom", false, null, breakOnTokenText); // In text mode, we don't have superscripts or subscripts + + if (this.mode === "text") { + return base; + } // Note that base may be empty (i.e. null) at this point. + + + var superscript; + var subscript; + + while (true) { + // Guaranteed in math mode, so eat any spaces first. + this.consumeSpaces(); // Lex the first token + + var lex = this.fetch(); + + if (lex.text === "\\limits" || lex.text === "\\nolimits") { + // We got a limit control + if (base && base.type === "op") { + var limits = lex.text === "\\limits"; + base.limits = limits; + base.alwaysHandleSupSub = true; + } else if (base && base.type === "operatorname" && base.alwaysHandleSupSub) { + var _limits = lex.text === "\\limits"; + + base.limits = _limits; + } else { + throw new src_ParseError("Limit controls must follow a math operator", lex); + } + + this.consume(); + } else if (lex.text === "^") { + // We got a superscript start + if (superscript) { + throw new src_ParseError("Double superscript", lex); + } + + superscript = this.handleSupSubscript("superscript"); + } else if (lex.text === "_") { + // We got a subscript start + if (subscript) { + throw new src_ParseError("Double subscript", lex); + } + + subscript = this.handleSupSubscript("subscript"); + } else if (lex.text === "'") { + // We got a prime + if (superscript) { + throw new src_ParseError("Double superscript", lex); + } + + var prime = { + type: "textord", + mode: this.mode, + text: "\\prime" + }; // Many primes can be grouped together, so we handle this here + + var primes = [prime]; + this.consume(); // Keep lexing tokens until we get something that's not a prime + + while (this.fetch().text === "'") { + // For each one, add another prime to the list + primes.push(prime); + this.consume(); + } // If there's a superscript following the primes, combine that + // superscript in with the primes. + + + if (this.fetch().text === "^") { + primes.push(this.handleSupSubscript("superscript")); + } // Put everything into an ordgroup as the superscript + + + superscript = { + type: "ordgroup", + mode: this.mode, + body: primes + }; + } else { + // If it wasn't ^, _, or ', stop parsing super/subscripts + break; + } + } // Base must be set if superscript or subscript are set per logic above, + // but need to check here for type check to pass. + + + if (superscript || subscript) { + // If we got either a superscript or subscript, create a supsub + return { + type: "supsub", + mode: this.mode, + base: base, + sup: superscript, + sub: subscript + }; + } else { + // Otherwise return the original body + return base; + } + } + /** + * Parses an entire function, including its base and all of its arguments. + */ + ; + + _proto.parseFunction = function parseFunction(breakOnTokenText, name, // For error reporting. + greediness) { + var token = this.fetch(); + var func = token.text; + var funcData = src_functions[func]; + + if (!funcData) { + return null; + } + + this.consume(); // consume command token + + if (greediness != null && funcData.greediness <= greediness) { + throw new src_ParseError("Got function '" + func + "' with no arguments" + (name ? " as " + name : ""), token); + } else if (this.mode === "text" && !funcData.allowedInText) { + throw new src_ParseError("Can't use function '" + func + "' in text mode", token); + } else if (this.mode === "math" && funcData.allowedInMath === false) { + throw new src_ParseError("Can't use function '" + func + "' in math mode", token); + } + + var _this$parseArguments = this.parseArguments(func, funcData), + args = _this$parseArguments.args, + optArgs = _this$parseArguments.optArgs; + + return this.callFunction(func, args, optArgs, token, breakOnTokenText); + } + /** + * Call a function handler with a suitable context and arguments. + */ + ; + + _proto.callFunction = function callFunction(name, args, optArgs, token, breakOnTokenText) { + var context = { + funcName: name, + parser: this, + token: token, + breakOnTokenText: breakOnTokenText + }; + var func = src_functions[name]; + + if (func && func.handler) { + return func.handler(context, args, optArgs); + } else { + throw new src_ParseError("No function handler for " + name); + } + } + /** + * Parses the arguments of a function or environment + */ + ; + + _proto.parseArguments = function parseArguments(func, // Should look like "\name" or "\begin{name}". + funcData) { + var totalArgs = funcData.numArgs + funcData.numOptionalArgs; + + if (totalArgs === 0) { + return { + args: [], + optArgs: [] + }; + } + + var baseGreediness = funcData.greediness; + var args = []; + var optArgs = []; + + for (var i = 0; i < totalArgs; i++) { + var argType = funcData.argTypes && funcData.argTypes[i]; + var isOptional = i < funcData.numOptionalArgs; // Ignore spaces between arguments. As the TeXbook says: + // "After you have said ‘\def\row#1#2{...}’, you are allowed to + // put spaces between the arguments (e.g., ‘\row x n’), because + // TeX doesn’t use single spaces as undelimited arguments." + + var consumeSpaces = i > 0 && !isOptional || // Also consume leading spaces in math mode, as parseSymbol + // won't know what to do with them. This can only happen with + // macros, e.g. \frac\foo\foo where \foo expands to a space symbol. + // In LaTeX, the \foo's get treated as (blank) arguments. + // In KaTeX, for now, both spaces will get consumed. + // TODO(edemaine) + i === 0 && !isOptional && this.mode === "math"; + var arg = this.parseGroupOfType("argument to '" + func + "'", argType, isOptional, baseGreediness, consumeSpaces); + + if (!arg) { + if (isOptional) { + optArgs.push(null); + continue; + } + + throw new src_ParseError("Expected group after '" + func + "'", this.fetch()); + } + + (isOptional ? optArgs : args).push(arg); + } + + return { + args: args, + optArgs: optArgs + }; + } + /** + * Parses a group when the mode is changing. + */ + ; + + _proto.parseGroupOfType = function parseGroupOfType(name, type, optional, greediness, consumeSpaces) { + switch (type) { + case "color": + if (consumeSpaces) { + this.consumeSpaces(); + } + + return this.parseColorGroup(optional); + + case "size": + if (consumeSpaces) { + this.consumeSpaces(); + } + + return this.parseSizeGroup(optional); + + case "url": + return this.parseUrlGroup(optional, consumeSpaces); + + case "math": + case "text": + return this.parseGroup(name, optional, greediness, undefined, type, consumeSpaces); + + case "hbox": + { + // hbox argument type wraps the argument in the equivalent of + // \hbox, which is like \text but switching to \textstyle size. + var group = this.parseGroup(name, optional, greediness, undefined, "text", consumeSpaces); + + if (!group) { + return group; + } + + var styledGroup = { + type: "styling", + mode: group.mode, + body: [group], + style: "text" // simulate \textstyle + + }; + return styledGroup; + } + + case "raw": + { + if (consumeSpaces) { + this.consumeSpaces(); + } + + if (optional && this.fetch().text === "{") { + return null; + } + + var token = this.parseStringGroup("raw", optional, true); + + if (token) { + return { + type: "raw", + mode: "text", + string: token.text + }; + } else { + throw new src_ParseError("Expected raw group", this.fetch()); + } + } + + case "original": + case null: + case undefined: + return this.parseGroup(name, optional, greediness, undefined, undefined, consumeSpaces); + + default: + throw new src_ParseError("Unknown group type as " + name, this.fetch()); + } + } + /** + * Discard any space tokens, fetching the next non-space token. + */ + ; + + _proto.consumeSpaces = function consumeSpaces() { + while (this.fetch().text === " ") { + this.consume(); + } + } + /** + * Parses a group, essentially returning the string formed by the + * brace-enclosed tokens plus some position information. + */ + ; + + _proto.parseStringGroup = function parseStringGroup(modeName, // Used to describe the mode in error messages. + optional, raw) { + var groupBegin = optional ? "[" : "{"; + var groupEnd = optional ? "]" : "}"; + var beginToken = this.fetch(); + + if (beginToken.text !== groupBegin) { + if (optional) { + return null; + } else if (raw && beginToken.text !== "EOF" && /[^{}[\]]/.test(beginToken.text)) { + this.consume(); + return beginToken; + } + } + + var outerMode = this.mode; + this.mode = "text"; + this.expect(groupBegin); + var str = ""; + var firstToken = this.fetch(); + var nested = 0; // allow nested braces in raw string group + + var lastToken = firstToken; + var nextToken; + + while ((nextToken = this.fetch()).text !== groupEnd || raw && nested > 0) { + switch (nextToken.text) { + case "EOF": + throw new src_ParseError("Unexpected end of input in " + modeName, firstToken.range(lastToken, str)); + + case groupBegin: + nested++; + break; + + case groupEnd: + nested--; + break; + } + + lastToken = nextToken; + str += lastToken.text; + this.consume(); + } + + this.expect(groupEnd); + this.mode = outerMode; + return firstToken.range(lastToken, str); + } + /** + * Parses a regex-delimited group: the largest sequence of tokens + * whose concatenated strings match `regex`. Returns the string + * formed by the tokens plus some position information. + */ + ; + + _proto.parseRegexGroup = function parseRegexGroup(regex, modeName) { + var outerMode = this.mode; + this.mode = "text"; + var firstToken = this.fetch(); + var lastToken = firstToken; + var str = ""; + var nextToken; + + while ((nextToken = this.fetch()).text !== "EOF" && regex.test(str + nextToken.text)) { + lastToken = nextToken; + str += lastToken.text; + this.consume(); + } + + if (str === "") { + throw new src_ParseError("Invalid " + modeName + ": '" + firstToken.text + "'", firstToken); + } + + this.mode = outerMode; + return firstToken.range(lastToken, str); + } + /** + * Parses a color description. + */ + ; + + _proto.parseColorGroup = function parseColorGroup(optional) { + var res = this.parseStringGroup("color", optional); + + if (!res) { + return null; + } + + var match = /^(#[a-f0-9]{3}|#?[a-f0-9]{6}|[a-z]+)$/i.exec(res.text); + + if (!match) { + throw new src_ParseError("Invalid color: '" + res.text + "'", res); + } + + var color = match[0]; + + if (/^[0-9a-f]{6}$/i.test(color)) { + // We allow a 6-digit HTML color spec without a leading "#". + // This follows the xcolor package's HTML color model. + // Predefined color names are all missed by this RegEx pattern. + color = "#" + color; + } + + return { + type: "color-token", + mode: this.mode, + color: color + }; + } + /** + * Parses a size specification, consisting of magnitude and unit. + */ + ; + + _proto.parseSizeGroup = function parseSizeGroup(optional) { + var res; + var isBlank = false; + + if (!optional && this.fetch().text !== "{") { + res = this.parseRegexGroup(/^[-+]? *(?:$|\d+|\d+\.\d*|\.\d*) *[a-z]{0,2} *$/, "size"); + } else { + res = this.parseStringGroup("size", optional); + } + + if (!res) { + return null; + } + + if (!optional && res.text.length === 0) { + // Because we've tested for what is !optional, this block won't + // affect \kern, \hspace, etc. It will capture the mandatory arguments + // to \genfrac and \above. + res.text = "0pt"; // Enable \above{} + + isBlank = true; // This is here specifically for \genfrac + } + + var match = /([-+]?) *(\d+(?:\.\d*)?|\.\d+) *([a-z]{2})/.exec(res.text); + + if (!match) { + throw new src_ParseError("Invalid size: '" + res.text + "'", res); + } + + var data = { + number: +(match[1] + match[2]), + // sign + magnitude, cast to number + unit: match[3] + }; + + if (!validUnit(data)) { + throw new src_ParseError("Invalid unit: '" + data.unit + "'", res); + } + + return { + type: "size", + mode: this.mode, + value: data, + isBlank: isBlank + }; + } + /** + * Parses an URL, checking escaped letters and allowed protocols, + * and setting the catcode of % as an active character (as in \hyperref). + */ + ; + + _proto.parseUrlGroup = function parseUrlGroup(optional, consumeSpaces) { + this.gullet.lexer.setCatcode("%", 13); // active character + + var res = this.parseStringGroup("url", optional, true); // get raw string + + this.gullet.lexer.setCatcode("%", 14); // comment character + + if (!res) { + return null; + } // hyperref package allows backslashes alone in href, but doesn't + // generate valid links in such cases; we interpret this as + // "undefined" behaviour, and keep them as-is. Some browser will + // replace backslashes with forward slashes. + + + var url = res.text.replace(/\\([#$%&~_^{}])/g, '$1'); + return { + type: "url", + mode: this.mode, + url: url + }; + } + /** + * If `optional` is false or absent, this parses an ordinary group, + * which is either a single nucleus (like "x") or an expression + * in braces (like "{x+y}") or an implicit group, a group that starts + * at the current position, and ends right before a higher explicit + * group ends, or at EOF. + * If `optional` is true, it parses either a bracket-delimited expression + * (like "[x+y]") or returns null to indicate the absence of a + * bracket-enclosed group. + * If `mode` is present, switches to that mode while parsing the group, + * and switches back after. + */ + ; + + _proto.parseGroup = function parseGroup(name, // For error reporting. + optional, greediness, breakOnTokenText, mode, consumeSpaces) { + // Switch to specified mode + var outerMode = this.mode; + + if (mode) { + this.switchMode(mode); + } // Consume spaces if requested, crucially *after* we switch modes, + // so that the next non-space token is parsed in the correct mode. + + + if (consumeSpaces) { + this.consumeSpaces(); + } // Get first token + + + var firstToken = this.fetch(); + var text = firstToken.text; + var result; // Try to parse an open brace or \begingroup + + if (optional ? text === "[" : text === "{" || text === "\\begingroup") { + this.consume(); + var groupEnd = Parser.endOfGroup[text]; // Start a new group namespace + + this.gullet.beginGroup(); // If we get a brace, parse an expression + + var expression = this.parseExpression(false, groupEnd); + var lastToken = this.fetch(); // Check that we got a matching closing brace + + this.expect(groupEnd); // End group namespace + + this.gullet.endGroup(); + result = { + type: "ordgroup", + mode: this.mode, + loc: SourceLocation.range(firstToken, lastToken), + body: expression, + // A group formed by \begingroup...\endgroup is a semi-simple group + // which doesn't affect spacing in math mode, i.e., is transparent. + // https://tex.stackexchange.com/questions/1930/when-should-one- + // use-begingroup-instead-of-bgroup + semisimple: text === "\\begingroup" || undefined + }; + } else if (optional) { + // Return nothing for an optional group + result = null; + } else { + // If there exists a function with this name, parse the function. + // Otherwise, just return a nucleus + result = this.parseFunction(breakOnTokenText, name, greediness) || this.parseSymbol(); + + if (result == null && text[0] === "\\" && !implicitCommands.hasOwnProperty(text)) { + if (this.settings.throwOnError) { + throw new src_ParseError("Undefined control sequence: " + text, firstToken); + } + + result = this.formatUnsupportedCmd(text); + this.consume(); + } + } // Switch mode back + + + if (mode) { + this.switchMode(outerMode); + } + + return result; + } + /** + * Form ligature-like combinations of characters for text mode. + * This includes inputs like "--", "---", "``" and "''". + * The result will simply replace multiple textord nodes with a single + * character in each value by a single textord node having multiple + * characters in its value. The representation is still ASCII source. + * The group will be modified in place. + */ + ; + + _proto.formLigatures = function formLigatures(group) { + var n = group.length - 1; + + for (var i = 0; i < n; ++i) { + var a = group[i]; // $FlowFixMe: Not every node type has a `text` property. + + var v = a.text; + + if (v === "-" && group[i + 1].text === "-") { + if (i + 1 < n && group[i + 2].text === "-") { + group.splice(i, 3, { + type: "textord", + mode: "text", + loc: SourceLocation.range(a, group[i + 2]), + text: "---" + }); + n -= 2; + } else { + group.splice(i, 2, { + type: "textord", + mode: "text", + loc: SourceLocation.range(a, group[i + 1]), + text: "--" + }); + n -= 1; + } + } + + if ((v === "'" || v === "`") && group[i + 1].text === v) { + group.splice(i, 2, { + type: "textord", + mode: "text", + loc: SourceLocation.range(a, group[i + 1]), + text: v + v + }); + n -= 1; + } + } + } + /** + * Parse a single symbol out of the string. Here, we handle single character + * symbols and special functions like \verb. + */ + ; + + _proto.parseSymbol = function parseSymbol() { + var nucleus = this.fetch(); + var text = nucleus.text; + + if (/^\\verb[^a-zA-Z]/.test(text)) { + this.consume(); + var arg = text.slice(5); + var star = arg.charAt(0) === "*"; + + if (star) { + arg = arg.slice(1); + } // Lexer's tokenRegex is constructed to always have matching + // first/last characters. + + + if (arg.length < 2 || arg.charAt(0) !== arg.slice(-1)) { + throw new src_ParseError("\\verb assertion failed --\n please report what input caused this bug"); + } + + arg = arg.slice(1, -1); // remove first and last char + + return { + type: "verb", + mode: "text", + body: arg, + star: star + }; + } // At this point, we should have a symbol, possibly with accents. + // First expand any accented base symbol according to unicodeSymbols. + + + if (unicodeSymbols.hasOwnProperty(text[0]) && !src_symbols[this.mode][text[0]]) { + // This behavior is not strict (XeTeX-compatible) in math mode. + if (this.settings.strict && this.mode === "math") { + this.settings.reportNonstrict("unicodeTextInMathMode", "Accented Unicode text character \"" + text[0] + "\" used in " + "math mode", nucleus); + } + + text = unicodeSymbols[text[0]] + text.substr(1); + } // Strip off any combining characters + + + var match = combiningDiacriticalMarksEndRegex.exec(text); + + if (match) { + text = text.substring(0, match.index); + + if (text === 'i') { + text = "\u0131"; // dotless i, in math and text mode + } else if (text === 'j') { + text = "\u0237"; // dotless j, in math and text mode + } + } // Recognize base symbol + + + var symbol; + + if (src_symbols[this.mode][text]) { + if (this.settings.strict && this.mode === 'math' && extraLatin.indexOf(text) >= 0) { + this.settings.reportNonstrict("unicodeTextInMathMode", "Latin-1/Unicode text character \"" + text[0] + "\" used in " + "math mode", nucleus); + } + + var group = src_symbols[this.mode][text].group; + var loc = SourceLocation.range(nucleus); + var s; + + if (ATOMS.hasOwnProperty(group)) { + // $FlowFixMe + var family = group; + s = { + type: "atom", + mode: this.mode, + family: family, + loc: loc, + text: text + }; + } else { + // $FlowFixMe + s = { + type: group, + mode: this.mode, + loc: loc, + text: text + }; + } + + symbol = s; + } else if (text.charCodeAt(0) >= 0x80) { + // no symbol for e.g. ^ + if (this.settings.strict) { + if (!supportedCodepoint(text.charCodeAt(0))) { + this.settings.reportNonstrict("unknownSymbol", "Unrecognized Unicode character \"" + text[0] + "\"" + (" (" + text.charCodeAt(0) + ")"), nucleus); + } else if (this.mode === "math") { + this.settings.reportNonstrict("unicodeTextInMathMode", "Unicode text character \"" + text[0] + "\" used in math mode", nucleus); + } + } // All nonmathematical Unicode characters are rendered as if they + // are in text mode (wrapped in \text) because that's what it + // takes to render them in LaTeX. Setting `mode: this.mode` is + // another natural choice (the user requested math mode), but + // this makes it more difficult for getCharacterMetrics() to + // distinguish Unicode characters without metrics and those for + // which we want to simulate the letter M. + + + symbol = { + type: "textord", + mode: "text", + loc: SourceLocation.range(nucleus), + text: text + }; + } else { + return null; // EOF, ^, _, {, }, etc. + } + + this.consume(); // Transform combining characters into accents + + if (match) { + for (var i = 0; i < match[0].length; i++) { + var accent = match[0][i]; + + if (!unicodeAccents[accent]) { + throw new src_ParseError("Unknown accent ' " + accent + "'", nucleus); + } + + var command = unicodeAccents[accent][this.mode]; + + if (!command) { + throw new src_ParseError("Accent " + accent + " unsupported in " + this.mode + " mode", nucleus); + } + + symbol = { + type: "accent", + mode: this.mode, + loc: SourceLocation.range(nucleus), + label: command, + isStretchy: false, + isShifty: true, + base: symbol + }; + } + } + + return symbol; + }; + + return Parser; +}(); + +Parser_Parser.endOfExpression = ["}", "\\endgroup", "\\end", "\\right", "&"]; +Parser_Parser.endOfGroup = { + "[": "]", + "{": "}", + "\\begingroup": "\\endgroup" + /** + * Parses an "expression", which is a list of atoms. + * + * `breakOnInfix`: Should the parsing stop when we hit infix nodes? This + * happens when functions have higher precendence han infix + * nodes in implicit parses. + * + * `breakOnTokenText`: The text of the token that the expression should end + * with, or `null` if something else should end the + * expression. + */ + +}; +Parser_Parser.SUPSUB_GREEDINESS = 1; + +// CONCATENATED MODULE: ./src/parseTree.js +/** + * Provides a single function for parsing an expression using a Parser + * TODO(emily): Remove this + */ + + + +/** + * Parses an expression using a Parser, then returns the parsed result. + */ +var parseTree_parseTree = function parseTree(toParse, settings) { + if (!(typeof toParse === 'string' || toParse instanceof String)) { + throw new TypeError('KaTeX can only parse string typed expression'); + } + + var parser = new Parser_Parser(toParse, settings); // Blank out any \df@tag to avoid spurious "Duplicate \tag" errors + + delete parser.gullet.macros.current["\\df@tag"]; + var tree = parser.parse(); // If the input used \tag, it will set the \df@tag macro to the tag. + // In this case, we separately parse the tag and wrap the tree. + + if (parser.gullet.macros.get("\\df@tag")) { + if (!settings.displayMode) { + throw new src_ParseError("\\tag works only in display equations"); + } + + parser.gullet.feed("\\df@tag"); + tree = [{ + type: "tag", + mode: "text", + body: tree, + tag: parser.parse() + }]; + } + + return tree; +}; + +/* harmony default export */ var src_parseTree = (parseTree_parseTree); +// CONCATENATED MODULE: ./katex.js +/* eslint no-console:0 */ + +/** + * This is the main entry point for KaTeX. Here, we expose functions for + * rendering expressions either to DOM nodes or to markup strings. + * + * We also expose the ParseError class to check if errors thrown from KaTeX are + * errors in the expression, or errors in javascript handling. + */ + + + + + + + + + + +/** + * Parse and build an expression, and place that expression in the DOM node + * given. + */ +var katex_render = function render(expression, baseNode, options) { + baseNode.textContent = ""; + var node = katex_renderToDomTree(expression, options).toNode(); + baseNode.appendChild(node); +}; // KaTeX's styles don't work properly in quirks mode. Print out an error, and +// disable rendering. + + +if (typeof document !== "undefined") { + if (document.compatMode !== "CSS1Compat") { + typeof console !== "undefined" && console.warn("Warning: KaTeX doesn't work in quirks mode. Make sure your " + "website has a suitable doctype."); + + katex_render = function render() { + throw new src_ParseError("KaTeX doesn't work in quirks mode."); + }; + } +} +/** + * Parse and build an expression, and return the markup for that. + */ + + +var renderToString = function renderToString(expression, options) { + var markup = katex_renderToDomTree(expression, options).toMarkup(); + return markup; +}; +/** + * Parse an expression and return the parse tree. + */ + + +var katex_generateParseTree = function generateParseTree(expression, options) { + var settings = new Settings_Settings(options); + return src_parseTree(expression, settings); +}; +/** + * If the given error is a KaTeX ParseError and options.throwOnError is false, + * renders the invalid LaTeX as a span with hover title giving the KaTeX + * error message. Otherwise, simply throws the error. + */ + + +var katex_renderError = function renderError(error, expression, options) { + if (options.throwOnError || !(error instanceof src_ParseError)) { + throw error; + } + + var node = buildCommon.makeSpan(["katex-error"], [new domTree_SymbolNode(expression)]); + node.setAttribute("title", error.toString()); + node.setAttribute("style", "color:" + options.errorColor); + return node; +}; +/** + * Generates and returns the katex build tree. This is used for advanced + * use cases (like rendering to custom output). + */ + + +var katex_renderToDomTree = function renderToDomTree(expression, options) { + var settings = new Settings_Settings(options); + + try { + var tree = src_parseTree(expression, settings); + return buildTree_buildTree(tree, expression, settings); + } catch (error) { + return katex_renderError(error, expression, settings); + } +}; +/** + * Generates and returns the katex build tree, with just HTML (no MathML). + * This is used for advanced use cases (like rendering to custom output). + */ + + +var katex_renderToHTMLTree = function renderToHTMLTree(expression, options) { + var settings = new Settings_Settings(options); + + try { + var tree = src_parseTree(expression, settings); + return buildTree_buildHTMLTree(tree, expression, settings); + } catch (error) { + return katex_renderError(error, expression, settings); + } +}; + +/* harmony default export */ var katex_0 = ({ + /** + * Current KaTeX version + */ + version: "0.12.0", + + /** + * Renders the given LaTeX into an HTML+MathML combination, and adds + * it as a child to the specified DOM node. + */ + render: katex_render, + + /** + * Renders the given LaTeX into an HTML+MathML combination string, + * for sending to the client. + */ + renderToString: renderToString, + + /** + * KaTeX error, usually during parsing. + */ + ParseError: src_ParseError, + + /** + * Parses the given LaTeX into KaTeX's internal parse tree structure, + * without rendering to HTML or MathML. + * + * NOTE: This method is not currently recommended for public use. + * The internal tree representation is unstable and is very likely + * to change. Use at your own risk. + */ + __parse: katex_generateParseTree, + + /** + * Renders the given LaTeX into an HTML+MathML internal DOM tree + * representation, without flattening that representation to a string. + * + * NOTE: This method is not currently recommended for public use. + * The internal tree representation is unstable and is very likely + * to change. Use at your own risk. + */ + __renderToDomTree: katex_renderToDomTree, + + /** + * Renders the given LaTeX into an HTML internal DOM tree representation, + * without MathML and without flattening that representation to a string. + * + * NOTE: This method is not currently recommended for public use. + * The internal tree representation is unstable and is very likely + * to change. Use at your own risk. + */ + __renderToHTMLTree: katex_renderToHTMLTree, + + /** + * extends internal font metrics object with a new object + * each key in the new object represents a font name + */ + __setFontMetrics: setFontMetrics, + + /** + * adds a new symbol to builtin symbols table + */ + __defineSymbol: defineSymbol, + + /** + * adds a new macro to builtin macro list + */ + __defineMacro: defineMacro, + + /** + * Expose the dom tree node types, which can be useful for type checking nodes. + * + * NOTE: This method is not currently recommended for public use. + * The internal tree representation is unstable and is very likely + * to change. Use at your own risk. + */ + __domTree: { + Span: domTree_Span, + Anchor: domTree_Anchor, + SymbolNode: domTree_SymbolNode, + SvgNode: SvgNode, + PathNode: domTree_PathNode, + LineNode: LineNode + } +}); +// CONCATENATED MODULE: ./katex.webpack.js +/** + * This is the webpack entry point for KaTeX. As ECMAScript, flow[1] and jest[2] + * doesn't support CSS modules natively, a separate entry point is used and + * it is not flowtyped. + * + * [1] https://gist.github.com/lambdahands/d19e0da96285b749f0ef + * [2] https://facebook.github.io/jest/docs/en/webpack.html + */ + + +/* harmony default export */ var katex_webpack = __webpack_exports__["default"] = (katex_0); + +/***/ }) +/******/ ])["default"]; +}); \ No newline at end of file diff --git a/katex/katex.min.css b/katex/katex.min.css new file mode 100644 index 000000000..98b7c7bde --- /dev/null +++ b/katex/katex.min.css @@ -0,0 +1 @@ +@font-face{font-family:KaTeX_AMS;src:url(fonts/KaTeX_AMS-Regular.woff2) format("woff2"),url(fonts/KaTeX_AMS-Regular.woff) format("woff"),url(fonts/KaTeX_AMS-Regular.ttf) format("truetype");font-weight:400;font-style:normal}@font-face{font-family:KaTeX_Caligraphic;src:url(fonts/KaTeX_Caligraphic-Bold.woff2) format("woff2"),url(fonts/KaTeX_Caligraphic-Bold.woff) format("woff"),url(fonts/KaTeX_Caligraphic-Bold.ttf) format("truetype");font-weight:700;font-style:normal}@font-face{font-family:KaTeX_Caligraphic;src:url(fonts/KaTeX_Caligraphic-Regular.woff2) format("woff2"),url(fonts/KaTeX_Caligraphic-Regular.woff) format("woff"),url(fonts/KaTeX_Caligraphic-Regular.ttf) format("truetype");font-weight:400;font-style:normal}@font-face{font-family:KaTeX_Fraktur;src:url(fonts/KaTeX_Fraktur-Bold.woff2) format("woff2"),url(fonts/KaTeX_Fraktur-Bold.woff) format("woff"),url(fonts/KaTeX_Fraktur-Bold.ttf) format("truetype");font-weight:700;font-style:normal}@font-face{font-family:KaTeX_Fraktur;src:url(fonts/KaTeX_Fraktur-Regular.woff2) format("woff2"),url(fonts/KaTeX_Fraktur-Regular.woff) format("woff"),url(fonts/KaTeX_Fraktur-Regular.ttf) format("truetype");font-weight:400;font-style:normal}@font-face{font-family:KaTeX_Main;src:url(fonts/KaTeX_Main-Bold.woff2) format("woff2"),url(fonts/KaTeX_Main-Bold.woff) format("woff"),url(fonts/KaTeX_Main-Bold.ttf) format("truetype");font-weight:700;font-style:normal}@font-face{font-family:KaTeX_Main;src:url(fonts/KaTeX_Main-BoldItalic.woff2) format("woff2"),url(fonts/KaTeX_Main-BoldItalic.woff) format("woff"),url(fonts/KaTeX_Main-BoldItalic.ttf) format("truetype");font-weight:700;font-style:italic}@font-face{font-family:KaTeX_Main;src:url(fonts/KaTeX_Main-Italic.woff2) format("woff2"),url(fonts/KaTeX_Main-Italic.woff) format("woff"),url(fonts/KaTeX_Main-Italic.ttf) format("truetype");font-weight:400;font-style:italic}@font-face{font-family:KaTeX_Main;src:url(fonts/KaTeX_Main-Regular.woff2) format("woff2"),url(fonts/KaTeX_Main-Regular.woff) format("woff"),url(fonts/KaTeX_Main-Regular.ttf) format("truetype");font-weight:400;font-style:normal}@font-face{font-family:KaTeX_Math;src:url(fonts/KaTeX_Math-BoldItalic.woff2) format("woff2"),url(fonts/KaTeX_Math-BoldItalic.woff) format("woff"),url(fonts/KaTeX_Math-BoldItalic.ttf) format("truetype");font-weight:700;font-style:italic}@font-face{font-family:KaTeX_Math;src:url(fonts/KaTeX_Math-Italic.woff2) format("woff2"),url(fonts/KaTeX_Math-Italic.woff) format("woff"),url(fonts/KaTeX_Math-Italic.ttf) format("truetype");font-weight:400;font-style:italic}@font-face{font-family:"KaTeX_SansSerif";src:url(fonts/KaTeX_SansSerif-Bold.woff2) format("woff2"),url(fonts/KaTeX_SansSerif-Bold.woff) format("woff"),url(fonts/KaTeX_SansSerif-Bold.ttf) format("truetype");font-weight:700;font-style:normal}@font-face{font-family:"KaTeX_SansSerif";src:url(fonts/KaTeX_SansSerif-Italic.woff2) format("woff2"),url(fonts/KaTeX_SansSerif-Italic.woff) format("woff"),url(fonts/KaTeX_SansSerif-Italic.ttf) format("truetype");font-weight:400;font-style:italic}@font-face{font-family:"KaTeX_SansSerif";src:url(fonts/KaTeX_SansSerif-Regular.woff2) format("woff2"),url(fonts/KaTeX_SansSerif-Regular.woff) format("woff"),url(fonts/KaTeX_SansSerif-Regular.ttf) format("truetype");font-weight:400;font-style:normal}@font-face{font-family:KaTeX_Script;src:url(fonts/KaTeX_Script-Regular.woff2) format("woff2"),url(fonts/KaTeX_Script-Regular.woff) format("woff"),url(fonts/KaTeX_Script-Regular.ttf) format("truetype");font-weight:400;font-style:normal}@font-face{font-family:KaTeX_Size1;src:url(fonts/KaTeX_Size1-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size1-Regular.woff) format("woff"),url(fonts/KaTeX_Size1-Regular.ttf) format("truetype");font-weight:400;font-style:normal}@font-face{font-family:KaTeX_Size2;src:url(fonts/KaTeX_Size2-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size2-Regular.woff) format("woff"),url(fonts/KaTeX_Size2-Regular.ttf) format("truetype");font-weight:400;font-style:normal}@font-face{font-family:KaTeX_Size3;src:url(fonts/KaTeX_Size3-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size3-Regular.woff) format("woff"),url(fonts/KaTeX_Size3-Regular.ttf) format("truetype");font-weight:400;font-style:normal}@font-face{font-family:KaTeX_Size4;src:url(fonts/KaTeX_Size4-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size4-Regular.woff) format("woff"),url(fonts/KaTeX_Size4-Regular.ttf) format("truetype");font-weight:400;font-style:normal}@font-face{font-family:KaTeX_Typewriter;src:url(fonts/KaTeX_Typewriter-Regular.woff2) format("woff2"),url(fonts/KaTeX_Typewriter-Regular.woff) format("woff"),url(fonts/KaTeX_Typewriter-Regular.ttf) format("truetype");font-weight:400;font-style:normal}.katex{font:normal 1.21em KaTeX_Main,Times New Roman,serif;line-height:1.2;text-indent:0;text-rendering:auto;border-color:currentColor}.katex *{-ms-high-contrast-adjust:none!important}.katex .katex-version:after{content:"0.12.0"}.katex .katex-mathml{position:absolute;clip:rect(1px,1px,1px,1px);padding:0;border:0;height:1px;width:1px;overflow:hidden}.katex .katex-html>.newline{display:block}.katex .base{position:relative;white-space:nowrap;width:min-content}.katex .base,.katex .strut{display:inline-block}.katex .textbf{font-weight:700}.katex .textit{font-style:italic}.katex .textrm{font-family:KaTeX_Main}.katex .textsf{font-family:KaTeX_SansSerif}.katex .texttt{font-family:KaTeX_Typewriter}.katex .mathnormal{font-family:KaTeX_Math;font-style:italic}.katex .mathit{font-family:KaTeX_Main;font-style:italic}.katex .mathrm{font-style:normal}.katex .mathbf{font-family:KaTeX_Main;font-weight:700}.katex .boldsymbol{font-family:KaTeX_Math;font-weight:700;font-style:italic}.katex .amsrm,.katex .mathbb,.katex .textbb{font-family:KaTeX_AMS}.katex .mathcal{font-family:KaTeX_Caligraphic}.katex .mathfrak,.katex .textfrak{font-family:KaTeX_Fraktur}.katex .mathtt{font-family:KaTeX_Typewriter}.katex .mathscr,.katex .textscr{font-family:KaTeX_Script}.katex .mathsf,.katex .textsf{font-family:KaTeX_SansSerif}.katex .mathboldsf,.katex .textboldsf{font-family:KaTeX_SansSerif;font-weight:700}.katex .mathitsf,.katex .textitsf{font-family:KaTeX_SansSerif;font-style:italic}.katex .mainrm{font-family:KaTeX_Main;font-style:normal}.katex .vlist-t{display:inline-table;table-layout:fixed;border-collapse:collapse}.katex .vlist-r{display:table-row}.katex .vlist{display:table-cell;vertical-align:bottom;position:relative}.katex .vlist>span{display:block;height:0;position:relative}.katex .vlist>span>span{display:inline-block}.katex .vlist>span>.pstrut{overflow:hidden;width:0}.katex .vlist-t2{margin-right:-2px}.katex .vlist-s{display:table-cell;vertical-align:bottom;font-size:1px;width:2px;min-width:2px}.katex .vbox{-ms-flex-direction:column;flex-direction:column;align-items:baseline}.katex .hbox,.katex .vbox{display:-ms-inline-flexbox;display:inline-flex}.katex .hbox{-ms-flex-direction:row;flex-direction:row;width:100%}.katex .thinbox{display:inline-flex;flex-direction:row;width:0;max-width:0}.katex .msupsub{text-align:left}.katex .mfrac>span>span{text-align:center}.katex .mfrac .frac-line{display:inline-block;width:100%;border-bottom-style:solid}.katex .hdashline,.katex .hline,.katex .mfrac .frac-line,.katex .overline .overline-line,.katex .rule,.katex .underline .underline-line{min-height:1px}.katex .mspace{display:inline-block}.katex .clap,.katex .llap,.katex .rlap{width:0;position:relative}.katex .clap>.inner,.katex .llap>.inner,.katex .rlap>.inner{position:absolute}.katex .clap>.fix,.katex .llap>.fix,.katex .rlap>.fix{display:inline-block}.katex .llap>.inner{right:0}.katex .clap>.inner,.katex .rlap>.inner{left:0}.katex .clap>.inner>span{margin-left:-50%;margin-right:50%}.katex .rule{display:inline-block;border:0 solid;position:relative}.katex .hline,.katex .overline .overline-line,.katex .underline .underline-line{display:inline-block;width:100%;border-bottom-style:solid}.katex .hdashline{display:inline-block;width:100%;border-bottom-style:dashed}.katex .sqrt>.root{margin-left:.27777778em;margin-right:-.55555556em}.katex .fontsize-ensurer.reset-size1.size1,.katex .sizing.reset-size1.size1{font-size:1em}.katex .fontsize-ensurer.reset-size1.size2,.katex .sizing.reset-size1.size2{font-size:1.2em}.katex .fontsize-ensurer.reset-size1.size3,.katex .sizing.reset-size1.size3{font-size:1.4em}.katex .fontsize-ensurer.reset-size1.size4,.katex .sizing.reset-size1.size4{font-size:1.6em}.katex .fontsize-ensurer.reset-size1.size5,.katex .sizing.reset-size1.size5{font-size:1.8em}.katex .fontsize-ensurer.reset-size1.size6,.katex .sizing.reset-size1.size6{font-size:2em}.katex .fontsize-ensurer.reset-size1.size7,.katex .sizing.reset-size1.size7{font-size:2.4em}.katex .fontsize-ensurer.reset-size1.size8,.katex .sizing.reset-size1.size8{font-size:2.88em}.katex .fontsize-ensurer.reset-size1.size9,.katex .sizing.reset-size1.size9{font-size:3.456em}.katex .fontsize-ensurer.reset-size1.size10,.katex .sizing.reset-size1.size10{font-size:4.148em}.katex .fontsize-ensurer.reset-size1.size11,.katex .sizing.reset-size1.size11{font-size:4.976em}.katex .fontsize-ensurer.reset-size2.size1,.katex .sizing.reset-size2.size1{font-size:.83333333em}.katex .fontsize-ensurer.reset-size2.size2,.katex .sizing.reset-size2.size2{font-size:1em}.katex .fontsize-ensurer.reset-size2.size3,.katex .sizing.reset-size2.size3{font-size:1.16666667em}.katex .fontsize-ensurer.reset-size2.size4,.katex .sizing.reset-size2.size4{font-size:1.33333333em}.katex .fontsize-ensurer.reset-size2.size5,.katex .sizing.reset-size2.size5{font-size:1.5em}.katex .fontsize-ensurer.reset-size2.size6,.katex .sizing.reset-size2.size6{font-size:1.66666667em}.katex .fontsize-ensurer.reset-size2.size7,.katex .sizing.reset-size2.size7{font-size:2em}.katex .fontsize-ensurer.reset-size2.size8,.katex .sizing.reset-size2.size8{font-size:2.4em}.katex .fontsize-ensurer.reset-size2.size9,.katex .sizing.reset-size2.size9{font-size:2.88em}.katex .fontsize-ensurer.reset-size2.size10,.katex .sizing.reset-size2.size10{font-size:3.45666667em}.katex .fontsize-ensurer.reset-size2.size11,.katex .sizing.reset-size2.size11{font-size:4.14666667em}.katex .fontsize-ensurer.reset-size3.size1,.katex .sizing.reset-size3.size1{font-size:.71428571em}.katex .fontsize-ensurer.reset-size3.size2,.katex .sizing.reset-size3.size2{font-size:.85714286em}.katex .fontsize-ensurer.reset-size3.size3,.katex .sizing.reset-size3.size3{font-size:1em}.katex .fontsize-ensurer.reset-size3.size4,.katex .sizing.reset-size3.size4{font-size:1.14285714em}.katex .fontsize-ensurer.reset-size3.size5,.katex .sizing.reset-size3.size5{font-size:1.28571429em}.katex .fontsize-ensurer.reset-size3.size6,.katex .sizing.reset-size3.size6{font-size:1.42857143em}.katex .fontsize-ensurer.reset-size3.size7,.katex .sizing.reset-size3.size7{font-size:1.71428571em}.katex .fontsize-ensurer.reset-size3.size8,.katex .sizing.reset-size3.size8{font-size:2.05714286em}.katex .fontsize-ensurer.reset-size3.size9,.katex .sizing.reset-size3.size9{font-size:2.46857143em}.katex .fontsize-ensurer.reset-size3.size10,.katex .sizing.reset-size3.size10{font-size:2.96285714em}.katex .fontsize-ensurer.reset-size3.size11,.katex .sizing.reset-size3.size11{font-size:3.55428571em}.katex .fontsize-ensurer.reset-size4.size1,.katex .sizing.reset-size4.size1{font-size:.625em}.katex .fontsize-ensurer.reset-size4.size2,.katex .sizing.reset-size4.size2{font-size:.75em}.katex .fontsize-ensurer.reset-size4.size3,.katex .sizing.reset-size4.size3{font-size:.875em}.katex .fontsize-ensurer.reset-size4.size4,.katex .sizing.reset-size4.size4{font-size:1em}.katex .fontsize-ensurer.reset-size4.size5,.katex .sizing.reset-size4.size5{font-size:1.125em}.katex .fontsize-ensurer.reset-size4.size6,.katex .sizing.reset-size4.size6{font-size:1.25em}.katex .fontsize-ensurer.reset-size4.size7,.katex .sizing.reset-size4.size7{font-size:1.5em}.katex .fontsize-ensurer.reset-size4.size8,.katex .sizing.reset-size4.size8{font-size:1.8em}.katex .fontsize-ensurer.reset-size4.size9,.katex .sizing.reset-size4.size9{font-size:2.16em}.katex .fontsize-ensurer.reset-size4.size10,.katex .sizing.reset-size4.size10{font-size:2.5925em}.katex .fontsize-ensurer.reset-size4.size11,.katex .sizing.reset-size4.size11{font-size:3.11em}.katex .fontsize-ensurer.reset-size5.size1,.katex .sizing.reset-size5.size1{font-size:.55555556em}.katex .fontsize-ensurer.reset-size5.size2,.katex .sizing.reset-size5.size2{font-size:.66666667em}.katex .fontsize-ensurer.reset-size5.size3,.katex .sizing.reset-size5.size3{font-size:.77777778em}.katex .fontsize-ensurer.reset-size5.size4,.katex .sizing.reset-size5.size4{font-size:.88888889em}.katex .fontsize-ensurer.reset-size5.size5,.katex .sizing.reset-size5.size5{font-size:1em}.katex .fontsize-ensurer.reset-size5.size6,.katex .sizing.reset-size5.size6{font-size:1.11111111em}.katex .fontsize-ensurer.reset-size5.size7,.katex .sizing.reset-size5.size7{font-size:1.33333333em}.katex .fontsize-ensurer.reset-size5.size8,.katex .sizing.reset-size5.size8{font-size:1.6em}.katex .fontsize-ensurer.reset-size5.size9,.katex .sizing.reset-size5.size9{font-size:1.92em}.katex .fontsize-ensurer.reset-size5.size10,.katex .sizing.reset-size5.size10{font-size:2.30444444em}.katex .fontsize-ensurer.reset-size5.size11,.katex .sizing.reset-size5.size11{font-size:2.76444444em}.katex .fontsize-ensurer.reset-size6.size1,.katex .sizing.reset-size6.size1{font-size:.5em}.katex .fontsize-ensurer.reset-size6.size2,.katex .sizing.reset-size6.size2{font-size:.6em}.katex .fontsize-ensurer.reset-size6.size3,.katex .sizing.reset-size6.size3{font-size:.7em}.katex .fontsize-ensurer.reset-size6.size4,.katex .sizing.reset-size6.size4{font-size:.8em}.katex .fontsize-ensurer.reset-size6.size5,.katex .sizing.reset-size6.size5{font-size:.9em}.katex .fontsize-ensurer.reset-size6.size6,.katex .sizing.reset-size6.size6{font-size:1em}.katex .fontsize-ensurer.reset-size6.size7,.katex .sizing.reset-size6.size7{font-size:1.2em}.katex .fontsize-ensurer.reset-size6.size8,.katex .sizing.reset-size6.size8{font-size:1.44em}.katex .fontsize-ensurer.reset-size6.size9,.katex .sizing.reset-size6.size9{font-size:1.728em}.katex .fontsize-ensurer.reset-size6.size10,.katex .sizing.reset-size6.size10{font-size:2.074em}.katex .fontsize-ensurer.reset-size6.size11,.katex .sizing.reset-size6.size11{font-size:2.488em}.katex .fontsize-ensurer.reset-size7.size1,.katex .sizing.reset-size7.size1{font-size:.41666667em}.katex .fontsize-ensurer.reset-size7.size2,.katex .sizing.reset-size7.size2{font-size:.5em}.katex .fontsize-ensurer.reset-size7.size3,.katex .sizing.reset-size7.size3{font-size:.58333333em}.katex .fontsize-ensurer.reset-size7.size4,.katex .sizing.reset-size7.size4{font-size:.66666667em}.katex .fontsize-ensurer.reset-size7.size5,.katex .sizing.reset-size7.size5{font-size:.75em}.katex .fontsize-ensurer.reset-size7.size6,.katex .sizing.reset-size7.size6{font-size:.83333333em}.katex .fontsize-ensurer.reset-size7.size7,.katex .sizing.reset-size7.size7{font-size:1em}.katex .fontsize-ensurer.reset-size7.size8,.katex .sizing.reset-size7.size8{font-size:1.2em}.katex .fontsize-ensurer.reset-size7.size9,.katex .sizing.reset-size7.size9{font-size:1.44em}.katex .fontsize-ensurer.reset-size7.size10,.katex .sizing.reset-size7.size10{font-size:1.72833333em}.katex .fontsize-ensurer.reset-size7.size11,.katex .sizing.reset-size7.size11{font-size:2.07333333em}.katex .fontsize-ensurer.reset-size8.size1,.katex .sizing.reset-size8.size1{font-size:.34722222em}.katex .fontsize-ensurer.reset-size8.size2,.katex .sizing.reset-size8.size2{font-size:.41666667em}.katex .fontsize-ensurer.reset-size8.size3,.katex .sizing.reset-size8.size3{font-size:.48611111em}.katex .fontsize-ensurer.reset-size8.size4,.katex .sizing.reset-size8.size4{font-size:.55555556em}.katex .fontsize-ensurer.reset-size8.size5,.katex .sizing.reset-size8.size5{font-size:.625em}.katex .fontsize-ensurer.reset-size8.size6,.katex .sizing.reset-size8.size6{font-size:.69444444em}.katex .fontsize-ensurer.reset-size8.size7,.katex .sizing.reset-size8.size7{font-size:.83333333em}.katex .fontsize-ensurer.reset-size8.size8,.katex .sizing.reset-size8.size8{font-size:1em}.katex .fontsize-ensurer.reset-size8.size9,.katex .sizing.reset-size8.size9{font-size:1.2em}.katex .fontsize-ensurer.reset-size8.size10,.katex .sizing.reset-size8.size10{font-size:1.44027778em}.katex .fontsize-ensurer.reset-size8.size11,.katex .sizing.reset-size8.size11{font-size:1.72777778em}.katex .fontsize-ensurer.reset-size9.size1,.katex .sizing.reset-size9.size1{font-size:.28935185em}.katex .fontsize-ensurer.reset-size9.size2,.katex .sizing.reset-size9.size2{font-size:.34722222em}.katex .fontsize-ensurer.reset-size9.size3,.katex .sizing.reset-size9.size3{font-size:.40509259em}.katex .fontsize-ensurer.reset-size9.size4,.katex .sizing.reset-size9.size4{font-size:.46296296em}.katex .fontsize-ensurer.reset-size9.size5,.katex .sizing.reset-size9.size5{font-size:.52083333em}.katex .fontsize-ensurer.reset-size9.size6,.katex .sizing.reset-size9.size6{font-size:.5787037em}.katex .fontsize-ensurer.reset-size9.size7,.katex .sizing.reset-size9.size7{font-size:.69444444em}.katex .fontsize-ensurer.reset-size9.size8,.katex .sizing.reset-size9.size8{font-size:.83333333em}.katex .fontsize-ensurer.reset-size9.size9,.katex .sizing.reset-size9.size9{font-size:1em}.katex .fontsize-ensurer.reset-size9.size10,.katex .sizing.reset-size9.size10{font-size:1.20023148em}.katex .fontsize-ensurer.reset-size9.size11,.katex .sizing.reset-size9.size11{font-size:1.43981481em}.katex .fontsize-ensurer.reset-size10.size1,.katex .sizing.reset-size10.size1{font-size:.24108004em}.katex .fontsize-ensurer.reset-size10.size2,.katex .sizing.reset-size10.size2{font-size:.28929605em}.katex .fontsize-ensurer.reset-size10.size3,.katex .sizing.reset-size10.size3{font-size:.33751205em}.katex .fontsize-ensurer.reset-size10.size4,.katex .sizing.reset-size10.size4{font-size:.38572806em}.katex .fontsize-ensurer.reset-size10.size5,.katex .sizing.reset-size10.size5{font-size:.43394407em}.katex .fontsize-ensurer.reset-size10.size6,.katex .sizing.reset-size10.size6{font-size:.48216008em}.katex .fontsize-ensurer.reset-size10.size7,.katex .sizing.reset-size10.size7{font-size:.57859209em}.katex .fontsize-ensurer.reset-size10.size8,.katex .sizing.reset-size10.size8{font-size:.69431051em}.katex .fontsize-ensurer.reset-size10.size9,.katex .sizing.reset-size10.size9{font-size:.83317261em}.katex .fontsize-ensurer.reset-size10.size10,.katex .sizing.reset-size10.size10{font-size:1em}.katex .fontsize-ensurer.reset-size10.size11,.katex .sizing.reset-size10.size11{font-size:1.19961427em}.katex .fontsize-ensurer.reset-size11.size1,.katex .sizing.reset-size11.size1{font-size:.20096463em}.katex .fontsize-ensurer.reset-size11.size2,.katex .sizing.reset-size11.size2{font-size:.24115756em}.katex .fontsize-ensurer.reset-size11.size3,.katex .sizing.reset-size11.size3{font-size:.28135048em}.katex .fontsize-ensurer.reset-size11.size4,.katex .sizing.reset-size11.size4{font-size:.32154341em}.katex .fontsize-ensurer.reset-size11.size5,.katex .sizing.reset-size11.size5{font-size:.36173633em}.katex .fontsize-ensurer.reset-size11.size6,.katex .sizing.reset-size11.size6{font-size:.40192926em}.katex .fontsize-ensurer.reset-size11.size7,.katex .sizing.reset-size11.size7{font-size:.48231511em}.katex .fontsize-ensurer.reset-size11.size8,.katex .sizing.reset-size11.size8{font-size:.57877814em}.katex .fontsize-ensurer.reset-size11.size9,.katex .sizing.reset-size11.size9{font-size:.69453376em}.katex .fontsize-ensurer.reset-size11.size10,.katex .sizing.reset-size11.size10{font-size:.83360129em}.katex .fontsize-ensurer.reset-size11.size11,.katex .sizing.reset-size11.size11{font-size:1em}.katex .delimsizing.size1{font-family:KaTeX_Size1}.katex .delimsizing.size2{font-family:KaTeX_Size2}.katex .delimsizing.size3{font-family:KaTeX_Size3}.katex .delimsizing.size4{font-family:KaTeX_Size4}.katex .delimsizing.mult .delim-size1>span{font-family:KaTeX_Size1}.katex .delimsizing.mult .delim-size4>span{font-family:KaTeX_Size4}.katex .nulldelimiter{display:inline-block;width:.12em}.katex .delimcenter,.katex .op-symbol{position:relative}.katex .op-symbol.small-op{font-family:KaTeX_Size1}.katex .op-symbol.large-op{font-family:KaTeX_Size2}.katex .op-limits>.vlist-t{text-align:center}.katex .accent>.vlist-t{text-align:center}.katex .accent .accent-body{position:relative}.katex .accent .accent-body:not(.accent-full){width:0}.katex .overlay{display:block}.katex .mtable .vertical-separator{display:inline-block;min-width:1px}.katex .mtable .arraycolsep{display:inline-block}.katex .mtable .col-align-c>.vlist-t{text-align:center}.katex .mtable .col-align-l>.vlist-t{text-align:left}.katex .mtable .col-align-r>.vlist-t{text-align:right}.katex .svg-align{text-align:left}.katex svg{display:block;position:absolute;width:100%;height:inherit;fill:currentColor;stroke:currentColor;fill-rule:nonzero;fill-opacity:1;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1}.katex svg path{stroke:none}.katex img{border-style:none;min-width:0;min-height:0;max-width:none;max-height:none}.katex .stretchy{width:100%;display:block;position:relative;overflow:hidden}.katex .stretchy:after,.katex .stretchy:before{content:""}.katex .hide-tail{width:100%;position:relative;overflow:hidden}.katex .halfarrow-left{position:absolute;left:0;width:50.2%;overflow:hidden}.katex .halfarrow-right{position:absolute;right:0;width:50.2%;overflow:hidden}.katex .brace-left{position:absolute;left:0;width:25.1%;overflow:hidden}.katex .brace-center{position:absolute;left:25%;width:50%;overflow:hidden}.katex .brace-right{position:absolute;right:0;width:25.1%;overflow:hidden}.katex .x-arrow-pad{padding:0 .5em}.katex .mover,.katex .munder,.katex .x-arrow{text-align:center}.katex .boxpad{padding:0 .3em}.katex .fbox,.katex .fcolorbox{box-sizing:border-box;border:.04em solid}.katex .cancel-pad{padding:0 .2em}.katex .cancel-lap{margin-left:-.2em;margin-right:-.2em}.katex .sout{border-bottom-style:solid;border-bottom-width:.08em}.katex-display{display:block;margin:1em 0;text-align:center}.katex-display>.katex{display:block;text-align:center;white-space:nowrap}.katex-display>.katex>.katex-html{display:block;position:relative}.katex-display>.katex>.katex-html>.tag{position:absolute;right:0}.katex-display.leqno>.katex>.katex-html>.tag{left:0;right:auto}.katex-display.fleqn>.katex{text-align:left;padding-left:2em} diff --git a/katex/katex.min.js b/katex/katex.min.js new file mode 100644 index 000000000..8e73b8620 --- /dev/null +++ b/katex/katex.min.js @@ -0,0 +1 @@ +!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.katex=e():t.katex=e()}("undefined"!=typeof self?self:this,function(){return function(t){var e={};function r(a){if(e[a])return e[a].exports;var n=e[a]={i:a,l:!1,exports:{}};return t[a].call(n.exports,n,n.exports,r),n.l=!0,n.exports}return r.m=t,r.c=e,r.d=function(t,e,a){r.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:a})},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 a=Object.create(null);if(r.r(a),Object.defineProperty(a,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var n in t)r.d(a,n,function(e){return t[e]}.bind(null,n));return a},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=1)}([function(t,e,r){},function(t,e,r){"use strict";r.r(e);r(0);var a=function(){function t(t,e,r){this.lexer=void 0,this.start=void 0,this.end=void 0,this.lexer=t,this.start=e,this.end=r}return t.range=function(e,r){return r?e&&e.loc&&r.loc&&e.loc.lexer===r.loc.lexer?new t(e.loc.lexer,e.loc.start,r.loc.end):null:e&&e.loc},t}(),n=function(){function t(t,e){this.text=void 0,this.loc=void 0,this.noexpand=void 0,this.treatAsRelax=void 0,this.text=t,this.loc=e}return t.prototype.range=function(e,r){return new t(r,a.range(this,e))},t}(),i=function t(e,r){this.position=void 0;var a,n="KaTeX parse error: "+e,i=r&&r.loc;if(i&&i.start<=i.end){var o=i.lexer.input;a=i.start;var s=i.end;a===o.length?n+=" at end of input: ":n+=" at position "+(a+1)+": ";var l=o.slice(a,s).replace(/[^]/g,"$&\u0332");n+=(a>15?"\u2026"+o.slice(a-15,a):o.slice(0,a))+l+(s+15":">","<":"<",'"':""","'":"'"},h=/[&><"']/g;var m=function t(e){return"ordgroup"===e.type?1===e.body.length?t(e.body[0]):e:"color"===e.type?1===e.body.length?t(e.body[0]):e:"font"===e.type?t(e.body):e},c={contains:function(t,e){return-1!==t.indexOf(e)},deflt:function(t,e){return void 0===t?e:t},escape:function(t){return String(t).replace(h,function(t){return l[t]})},hyphenate:function(t){return t.replace(s,"-$1").toLowerCase()},getBaseElem:m,isCharacterBox:function(t){var e=m(t);return"mathord"===e.type||"textord"===e.type||"atom"===e.type},protocolFromUrl:function(t){var e=/^\s*([^\\/#]*?)(?::|�*58|�*3a)/i.exec(t);return null!=e?e[1]:"_relative"}},u=function(){function t(t){this.displayMode=void 0,this.output=void 0,this.leqno=void 0,this.fleqn=void 0,this.throwOnError=void 0,this.errorColor=void 0,this.macros=void 0,this.minRuleThickness=void 0,this.colorIsTextColor=void 0,this.strict=void 0,this.trust=void 0,this.maxSize=void 0,this.maxExpand=void 0,this.globalGroup=void 0,t=t||{},this.displayMode=c.deflt(t.displayMode,!1),this.output=c.deflt(t.output,"htmlAndMathml"),this.leqno=c.deflt(t.leqno,!1),this.fleqn=c.deflt(t.fleqn,!1),this.throwOnError=c.deflt(t.throwOnError,!0),this.errorColor=c.deflt(t.errorColor,"#cc0000"),this.macros=t.macros||{},this.minRuleThickness=Math.max(0,c.deflt(t.minRuleThickness,0)),this.colorIsTextColor=c.deflt(t.colorIsTextColor,!1),this.strict=c.deflt(t.strict,"warn"),this.trust=c.deflt(t.trust,!1),this.maxSize=Math.max(0,c.deflt(t.maxSize,1/0)),this.maxExpand=Math.max(0,c.deflt(t.maxExpand,1e3)),this.globalGroup=c.deflt(t.globalGroup,!1)}var e=t.prototype;return e.reportNonstrict=function(t,e,r){var a=this.strict;if("function"==typeof a&&(a=a(t,e,r)),a&&"ignore"!==a){if(!0===a||"error"===a)throw new o("LaTeX-incompatible input and strict mode is set to 'error': "+e+" ["+t+"]",r);"warn"===a?"undefined"!=typeof console&&console.warn("LaTeX-incompatible input and strict mode is set to 'warn': "+e+" ["+t+"]"):"undefined"!=typeof console&&console.warn("LaTeX-incompatible input and strict mode is set to unrecognized '"+a+"': "+e+" ["+t+"]")}},e.useStrictBehavior=function(t,e,r){var a=this.strict;if("function"==typeof a)try{a=a(t,e,r)}catch(t){a="error"}return!(!a||"ignore"===a)&&(!0===a||"error"===a||("warn"===a?("undefined"!=typeof console&&console.warn("LaTeX-incompatible input and strict mode is set to 'warn': "+e+" ["+t+"]"),!1):("undefined"!=typeof console&&console.warn("LaTeX-incompatible input and strict mode is set to unrecognized '"+a+"': "+e+" ["+t+"]"),!1)))},e.isTrusted=function(t){t.url&&!t.protocol&&(t.protocol=c.protocolFromUrl(t.url));var e="function"==typeof this.trust?this.trust(t):this.trust;return Boolean(e)},t}(),p=function(){function t(t,e,r){this.id=void 0,this.size=void 0,this.cramped=void 0,this.id=t,this.size=e,this.cramped=r}var e=t.prototype;return e.sup=function(){return d[f[this.id]]},e.sub=function(){return d[g[this.id]]},e.fracNum=function(){return d[x[this.id]]},e.fracDen=function(){return d[v[this.id]]},e.cramp=function(){return d[b[this.id]]},e.text=function(){return d[y[this.id]]},e.isTight=function(){return this.size>=2},t}(),d=[new p(0,0,!1),new p(1,0,!0),new p(2,1,!1),new p(3,1,!0),new p(4,2,!1),new p(5,2,!0),new p(6,3,!1),new p(7,3,!0)],f=[4,5,4,5,6,7,6,7],g=[5,5,5,5,7,7,7,7],x=[2,3,4,5,6,7,6,7],v=[3,3,5,5,7,7,7,7],b=[1,1,3,3,5,5,7,7],y=[0,1,2,3,2,3,2,3],w={DISPLAY:d[0],TEXT:d[2],SCRIPT:d[4],SCRIPTSCRIPT:d[6]},k=[{name:"latin",blocks:[[256,591],[768,879]]},{name:"cyrillic",blocks:[[1024,1279]]},{name:"brahmic",blocks:[[2304,4255]]},{name:"georgian",blocks:[[4256,4351]]},{name:"cjk",blocks:[[12288,12543],[19968,40879],[65280,65376]]},{name:"hangul",blocks:[[44032,55215]]}];var S=[];function M(t){for(var e=0;e=S[e]&&t<=S[e+1])return!0;return!1}k.forEach(function(t){return t.blocks.forEach(function(t){return S.push.apply(S,t)})});var z={leftParenInner:"M291 0 H417 V300 H291 z",rightParenInner:"M457 0 H583 V300 H457 z",doubleleftarrow:"M262 157\nl10-10c34-36 62.7-77 86-123 3.3-8 5-13.3 5-16 0-5.3-6.7-8-20-8-7.3\n 0-12.2.5-14.5 1.5-2.3 1-4.8 4.5-7.5 10.5-49.3 97.3-121.7 169.3-217 216-28\n 14-57.3 25-88 33-6.7 2-11 3.8-13 5.5-2 1.7-3 4.2-3 7.5s1 5.8 3 7.5\nc2 1.7 6.3 3.5 13 5.5 68 17.3 128.2 47.8 180.5 91.5 52.3 43.7 93.8 96.2 124.5\n 157.5 9.3 8 15.3 12.3 18 13h6c12-.7 18-4 18-10 0-2-1.7-7-5-15-23.3-46-52-87\n-86-123l-10-10h399738v-40H218c328 0 0 0 0 0l-10-8c-26.7-20-65.7-43-117-69 2.7\n-2 6-3.7 10-5 36.7-16 72.3-37.3 107-64l10-8h399782v-40z\nm8 0v40h399730v-40zm0 194v40h399730v-40z",doublerightarrow:"M399738 392l\n-10 10c-34 36-62.7 77-86 123-3.3 8-5 13.3-5 16 0 5.3 6.7 8 20 8 7.3 0 12.2-.5\n 14.5-1.5 2.3-1 4.8-4.5 7.5-10.5 49.3-97.3 121.7-169.3 217-216 28-14 57.3-25 88\n-33 6.7-2 11-3.8 13-5.5 2-1.7 3-4.2 3-7.5s-1-5.8-3-7.5c-2-1.7-6.3-3.5-13-5.5-68\n-17.3-128.2-47.8-180.5-91.5-52.3-43.7-93.8-96.2-124.5-157.5-9.3-8-15.3-12.3-18\n-13h-6c-12 .7-18 4-18 10 0 2 1.7 7 5 15 23.3 46 52 87 86 123l10 10H0v40h399782\nc-328 0 0 0 0 0l10 8c26.7 20 65.7 43 117 69-2.7 2-6 3.7-10 5-36.7 16-72.3 37.3\n-107 64l-10 8H0v40zM0 157v40h399730v-40zm0 194v40h399730v-40z",leftarrow:"M400000 241H110l3-3c68.7-52.7 113.7-120\n 135-202 4-14.7 6-23 6-25 0-7.3-7-11-21-11-8 0-13.2.8-15.5 2.5-2.3 1.7-4.2 5.8\n-5.5 12.5-1.3 4.7-2.7 10.3-4 17-12 48.7-34.8 92-68.5 130S65.3 228.3 18 247\nc-10 4-16 7.7-18 11 0 8.7 6 14.3 18 17 47.3 18.7 87.8 47 121.5 85S196 441.3 208\n 490c.7 2 1.3 5 2 9s1.2 6.7 1.5 8c.3 1.3 1 3.3 2 6s2.2 4.5 3.5 5.5c1.3 1 3.3\n 1.8 6 2.5s6 1 10 1c14 0 21-3.7 21-11 0-2-2-10.3-6-25-20-79.3-65-146.7-135-202\n l-3-3h399890zM100 241v40h399900v-40z",leftbrace:"M6 548l-6-6v-35l6-11c56-104 135.3-181.3 238-232 57.3-28.7 117\n-45 179-50h399577v120H403c-43.3 7-81 15-113 26-100.7 33-179.7 91-237 174-2.7\n 5-6 9-10 13-.7 1-7.3 1-20 1H6z",leftbraceunder:"M0 6l6-6h17c12.688 0 19.313.3 20 1 4 4 7.313 8.3 10 13\n 35.313 51.3 80.813 93.8 136.5 127.5 55.688 33.7 117.188 55.8 184.5 66.5.688\n 0 2 .3 4 1 18.688 2.7 76 4.3 172 5h399450v120H429l-6-1c-124.688-8-235-61.7\n-331-161C60.687 138.7 32.312 99.3 7 54L0 41V6z",leftgroup:"M400000 80\nH435C64 80 168.3 229.4 21 260c-5.9 1.2-18 0-18 0-2 0-3-1-3-3v-38C76 61 257 0\n 435 0h399565z",leftgroupunder:"M400000 262\nH435C64 262 168.3 112.6 21 82c-5.9-1.2-18 0-18 0-2 0-3 1-3 3v38c76 158 257 219\n 435 219h399565z",leftharpoon:"M0 267c.7 5.3 3 10 7 14h399993v-40H93c3.3\n-3.3 10.2-9.5 20.5-18.5s17.8-15.8 22.5-20.5c50.7-52 88-110.3 112-175 4-11.3 5\n-18.3 3-21-1.3-4-7.3-6-18-6-8 0-13 .7-15 2s-4.7 6.7-8 16c-42 98.7-107.3 174.7\n-196 228-6.7 4.7-10.7 8-12 10-1.3 2-2 5.7-2 11zm100-26v40h399900v-40z",leftharpoonplus:"M0 267c.7 5.3 3 10 7 14h399993v-40H93c3.3-3.3 10.2-9.5\n 20.5-18.5s17.8-15.8 22.5-20.5c50.7-52 88-110.3 112-175 4-11.3 5-18.3 3-21-1.3\n-4-7.3-6-18-6-8 0-13 .7-15 2s-4.7 6.7-8 16c-42 98.7-107.3 174.7-196 228-6.7 4.7\n-10.7 8-12 10-1.3 2-2 5.7-2 11zm100-26v40h399900v-40zM0 435v40h400000v-40z\nm0 0v40h400000v-40z",leftharpoondown:"M7 241c-4 4-6.333 8.667-7 14 0 5.333.667 9 2 11s5.333\n 5.333 12 10c90.667 54 156 130 196 228 3.333 10.667 6.333 16.333 9 17 2 .667 5\n 1 9 1h5c10.667 0 16.667-2 18-6 2-2.667 1-9.667-3-21-32-87.333-82.667-157.667\n-152-211l-3-3h399907v-40zM93 281 H400000 v-40L7 241z",leftharpoondownplus:"M7 435c-4 4-6.3 8.7-7 14 0 5.3.7 9 2 11s5.3 5.3 12\n 10c90.7 54 156 130 196 228 3.3 10.7 6.3 16.3 9 17 2 .7 5 1 9 1h5c10.7 0 16.7\n-2 18-6 2-2.7 1-9.7-3-21-32-87.3-82.7-157.7-152-211l-3-3h399907v-40H7zm93 0\nv40h399900v-40zM0 241v40h399900v-40zm0 0v40h399900v-40z",lefthook:"M400000 281 H103s-33-11.2-61-33.5S0 197.3 0 164s14.2-61.2 42.5\n-83.5C70.8 58.2 104 47 142 47 c16.7 0 25 6.7 25 20 0 12-8.7 18.7-26 20-40 3.3\n-68.7 15.7-86 37-10 12-15 25.3-15 40 0 22.7 9.8 40.7 29.5 54 19.7 13.3 43.5 21\n 71.5 23h399859zM103 281v-40h399897v40z",leftlinesegment:"M40 281 V428 H0 V94 H40 V241 H400000 v40z\nM40 281 V428 H0 V94 H40 V241 H400000 v40z",leftmapsto:"M40 281 V448H0V74H40V241H400000v40z\nM40 281 V448H0V74H40V241H400000v40z",leftToFrom:"M0 147h400000v40H0zm0 214c68 40 115.7 95.7 143 167h22c15.3 0 23\n-.3 23-1 0-1.3-5.3-13.7-16-37-18-35.3-41.3-69-70-101l-7-8h399905v-40H95l7-8\nc28.7-32 52-65.7 70-101 10.7-23.3 16-35.7 16-37 0-.7-7.7-1-23-1h-22C115.7 265.3\n 68 321 0 361zm0-174v-40h399900v40zm100 154v40h399900v-40z",longequal:"M0 50 h400000 v40H0z m0 194h40000v40H0z\nM0 50 h400000 v40H0z m0 194h40000v40H0z",midbrace:"M200428 334\nc-100.7-8.3-195.3-44-280-108-55.3-42-101.7-93-139-153l-9-14c-2.7 4-5.7 8.7-9 14\n-53.3 86.7-123.7 153-211 199-66.7 36-137.3 56.3-212 62H0V214h199568c178.3-11.7\n 311.7-78.3 403-201 6-8 9.7-12 11-12 .7-.7 6.7-1 18-1s17.3.3 18 1c1.3 0 5 4 11\n 12 44.7 59.3 101.3 106.3 170 141s145.3 54.3 229 60h199572v120z",midbraceunder:"M199572 214\nc100.7 8.3 195.3 44 280 108 55.3 42 101.7 93 139 153l9 14c2.7-4 5.7-8.7 9-14\n 53.3-86.7 123.7-153 211-199 66.7-36 137.3-56.3 212-62h199568v120H200432c-178.3\n 11.7-311.7 78.3-403 201-6 8-9.7 12-11 12-.7.7-6.7 1-18 1s-17.3-.3-18-1c-1.3 0\n-5-4-11-12-44.7-59.3-101.3-106.3-170-141s-145.3-54.3-229-60H0V214z",oiintSize1:"M512.6 71.6c272.6 0 320.3 106.8 320.3 178.2 0 70.8-47.7 177.6\n-320.3 177.6S193.1 320.6 193.1 249.8c0-71.4 46.9-178.2 319.5-178.2z\nm368.1 178.2c0-86.4-60.9-215.4-368.1-215.4-306.4 0-367.3 129-367.3 215.4 0 85.8\n60.9 214.8 367.3 214.8 307.2 0 368.1-129 368.1-214.8z",oiintSize2:"M757.8 100.1c384.7 0 451.1 137.6 451.1 230 0 91.3-66.4 228.8\n-451.1 228.8-386.3 0-452.7-137.5-452.7-228.8 0-92.4 66.4-230 452.7-230z\nm502.4 230c0-111.2-82.4-277.2-502.4-277.2s-504 166-504 277.2\nc0 110 84 276 504 276s502.4-166 502.4-276z",oiiintSize1:"M681.4 71.6c408.9 0 480.5 106.8 480.5 178.2 0 70.8-71.6 177.6\n-480.5 177.6S202.1 320.6 202.1 249.8c0-71.4 70.5-178.2 479.3-178.2z\nm525.8 178.2c0-86.4-86.8-215.4-525.7-215.4-437.9 0-524.7 129-524.7 215.4 0\n85.8 86.8 214.8 524.7 214.8 438.9 0 525.7-129 525.7-214.8z",oiiintSize2:"M1021.2 53c603.6 0 707.8 165.8 707.8 277.2 0 110-104.2 275.8\n-707.8 275.8-606 0-710.2-165.8-710.2-275.8C311 218.8 415.2 53 1021.2 53z\nm770.4 277.1c0-131.2-126.4-327.6-770.5-327.6S248.4 198.9 248.4 330.1\nc0 130 128.8 326.4 772.7 326.4s770.5-196.4 770.5-326.4z",rightarrow:"M0 241v40h399891c-47.3 35.3-84 78-110 128\n-16.7 32-27.7 63.7-33 95 0 1.3-.2 2.7-.5 4-.3 1.3-.5 2.3-.5 3 0 7.3 6.7 11 20\n 11 8 0 13.2-.8 15.5-2.5 2.3-1.7 4.2-5.5 5.5-11.5 2-13.3 5.7-27 11-41 14.7-44.7\n 39-84.5 73-119.5s73.7-60.2 119-75.5c6-2 9-5.7 9-11s-3-9-9-11c-45.3-15.3-85\n-40.5-119-75.5s-58.3-74.8-73-119.5c-4.7-14-8.3-27.3-11-40-1.3-6.7-3.2-10.8-5.5\n-12.5-2.3-1.7-7.5-2.5-15.5-2.5-14 0-21 3.7-21 11 0 2 2 10.3 6 25 20.7 83.3 67\n 151.7 139 205zm0 0v40h399900v-40z",rightbrace:"M400000 542l\n-6 6h-17c-12.7 0-19.3-.3-20-1-4-4-7.3-8.3-10-13-35.3-51.3-80.8-93.8-136.5-127.5\ns-117.2-55.8-184.5-66.5c-.7 0-2-.3-4-1-18.7-2.7-76-4.3-172-5H0V214h399571l6 1\nc124.7 8 235 61.7 331 161 31.3 33.3 59.7 72.7 85 118l7 13v35z",rightbraceunder:"M399994 0l6 6v35l-6 11c-56 104-135.3 181.3-238 232-57.3\n 28.7-117 45-179 50H-300V214h399897c43.3-7 81-15 113-26 100.7-33 179.7-91 237\n-174 2.7-5 6-9 10-13 .7-1 7.3-1 20-1h17z",rightgroup:"M0 80h399565c371 0 266.7 149.4 414 180 5.9 1.2 18 0 18 0 2 0\n 3-1 3-3v-38c-76-158-257-219-435-219H0z",rightgroupunder:"M0 262h399565c371 0 266.7-149.4 414-180 5.9-1.2 18 0 18\n 0 2 0 3 1 3 3v38c-76 158-257 219-435 219H0z",rightharpoon:"M0 241v40h399993c4.7-4.7 7-9.3 7-14 0-9.3\n-3.7-15.3-11-18-92.7-56.7-159-133.7-199-231-3.3-9.3-6-14.7-8-16-2-1.3-7-2-15-2\n-10.7 0-16.7 2-18 6-2 2.7-1 9.7 3 21 15.3 42 36.7 81.8 64 119.5 27.3 37.7 58\n 69.2 92 94.5zm0 0v40h399900v-40z",rightharpoonplus:"M0 241v40h399993c4.7-4.7 7-9.3 7-14 0-9.3-3.7-15.3-11\n-18-92.7-56.7-159-133.7-199-231-3.3-9.3-6-14.7-8-16-2-1.3-7-2-15-2-10.7 0-16.7\n 2-18 6-2 2.7-1 9.7 3 21 15.3 42 36.7 81.8 64 119.5 27.3 37.7 58 69.2 92 94.5z\nm0 0v40h399900v-40z m100 194v40h399900v-40zm0 0v40h399900v-40z",rightharpoondown:"M399747 511c0 7.3 6.7 11 20 11 8 0 13-.8 15-2.5s4.7-6.8\n 8-15.5c40-94 99.3-166.3 178-217 13.3-8 20.3-12.3 21-13 5.3-3.3 8.5-5.8 9.5\n-7.5 1-1.7 1.5-5.2 1.5-10.5s-2.3-10.3-7-15H0v40h399908c-34 25.3-64.7 57-92 95\n-27.3 38-48.7 77.7-64 119-3.3 8.7-5 14-5 16zM0 241v40h399900v-40z",rightharpoondownplus:"M399747 705c0 7.3 6.7 11 20 11 8 0 13-.8\n 15-2.5s4.7-6.8 8-15.5c40-94 99.3-166.3 178-217 13.3-8 20.3-12.3 21-13 5.3-3.3\n 8.5-5.8 9.5-7.5 1-1.7 1.5-5.2 1.5-10.5s-2.3-10.3-7-15H0v40h399908c-34 25.3\n-64.7 57-92 95-27.3 38-48.7 77.7-64 119-3.3 8.7-5 14-5 16zM0 435v40h399900v-40z\nm0-194v40h400000v-40zm0 0v40h400000v-40z",righthook:"M399859 241c-764 0 0 0 0 0 40-3.3 68.7-15.7 86-37 10-12 15-25.3\n 15-40 0-22.7-9.8-40.7-29.5-54-19.7-13.3-43.5-21-71.5-23-17.3-1.3-26-8-26-20 0\n-13.3 8.7-20 26-20 38 0 71 11.2 99 33.5 0 0 7 5.6 21 16.7 14 11.2 21 33.5 21\n 66.8s-14 61.2-42 83.5c-28 22.3-61 33.5-99 33.5L0 241z M0 281v-40h399859v40z",rightlinesegment:"M399960 241 V94 h40 V428 h-40 V281 H0 v-40z\nM399960 241 V94 h40 V428 h-40 V281 H0 v-40z",rightToFrom:"M400000 167c-70.7-42-118-97.7-142-167h-23c-15.3 0-23 .3-23\n 1 0 1.3 5.3 13.7 16 37 18 35.3 41.3 69 70 101l7 8H0v40h399905l-7 8c-28.7 32\n-52 65.7-70 101-10.7 23.3-16 35.7-16 37 0 .7 7.7 1 23 1h23c24-69.3 71.3-125 142\n-167z M100 147v40h399900v-40zM0 341v40h399900v-40z",twoheadleftarrow:"M0 167c68 40\n 115.7 95.7 143 167h22c15.3 0 23-.3 23-1 0-1.3-5.3-13.7-16-37-18-35.3-41.3-69\n-70-101l-7-8h125l9 7c50.7 39.3 85 86 103 140h46c0-4.7-6.3-18.7-19-42-18-35.3\n-40-67.3-66-96l-9-9h399716v-40H284l9-9c26-28.7 48-60.7 66-96 12.7-23.333 19\n-37.333 19-42h-46c-18 54-52.3 100.7-103 140l-9 7H95l7-8c28.7-32 52-65.7 70-101\n 10.7-23.333 16-35.7 16-37 0-.7-7.7-1-23-1h-22C115.7 71.3 68 127 0 167z",twoheadrightarrow:"M400000 167\nc-68-40-115.7-95.7-143-167h-22c-15.3 0-23 .3-23 1 0 1.3 5.3 13.7 16 37 18 35.3\n 41.3 69 70 101l7 8h-125l-9-7c-50.7-39.3-85-86-103-140h-46c0 4.7 6.3 18.7 19 42\n 18 35.3 40 67.3 66 96l9 9H0v40h399716l-9 9c-26 28.7-48 60.7-66 96-12.7 23.333\n-19 37.333-19 42h46c18-54 52.3-100.7 103-140l9-7h125l-7 8c-28.7 32-52 65.7-70\n 101-10.7 23.333-16 35.7-16 37 0 .7 7.7 1 23 1h22c27.3-71.3 75-127 143-167z",tilde1:"M200 55.538c-77 0-168 73.953-177 73.953-3 0-7\n-2.175-9-5.437L2 97c-1-2-2-4-2-6 0-4 2-7 5-9l20-12C116 12 171 0 207 0c86 0\n 114 68 191 68 78 0 168-68 177-68 4 0 7 2 9 5l12 19c1 2.175 2 4.35 2 6.525 0\n 4.35-2 7.613-5 9.788l-19 13.05c-92 63.077-116.937 75.308-183 76.128\n-68.267.847-113-73.952-191-73.952z",tilde2:"M344 55.266c-142 0-300.638 81.316-311.5 86.418\n-8.01 3.762-22.5 10.91-23.5 5.562L1 120c-1-2-1-3-1-4 0-5 3-9 8-10l18.4-9C160.9\n 31.9 283 0 358 0c148 0 188 122 331 122s314-97 326-97c4 0 8 2 10 7l7 21.114\nc1 2.14 1 3.21 1 4.28 0 5.347-3 9.626-7 10.696l-22.3 12.622C852.6 158.372 751\n 181.476 676 181.476c-149 0-189-126.21-332-126.21z",tilde3:"M786 59C457 59 32 175.242 13 175.242c-6 0-10-3.457\n-11-10.37L.15 138c-1-7 3-12 10-13l19.2-6.4C378.4 40.7 634.3 0 804.3 0c337 0\n 411.8 157 746.8 157 328 0 754-112 773-112 5 0 10 3 11 9l1 14.075c1 8.066-.697\n 16.595-6.697 17.492l-21.052 7.31c-367.9 98.146-609.15 122.696-778.15 122.696\n -338 0-409-156.573-744-156.573z",tilde4:"M786 58C457 58 32 177.487 13 177.487c-6 0-10-3.345\n-11-10.035L.15 143c-1-7 3-12 10-13l22-6.7C381.2 35 637.15 0 807.15 0c337 0 409\n 177 744 177 328 0 754-127 773-127 5 0 10 3 11 9l1 14.794c1 7.805-3 13.38-9\n 14.495l-20.7 5.574c-366.85 99.79-607.3 139.372-776.3 139.372-338 0-409\n -175.236-744-175.236z",vec:"M377 20c0-5.333 1.833-10 5.5-14S391 0 397 0c4.667 0 8.667 1.667 12 5\n3.333 2.667 6.667 9 10 19 6.667 24.667 20.333 43.667 41 57 7.333 4.667 11\n10.667 11 18 0 6-1 10-3 12s-6.667 5-14 9c-28.667 14.667-53.667 35.667-75 63\n-1.333 1.333-3.167 3.5-5.5 6.5s-4 4.833-5 5.5c-1 .667-2.5 1.333-4.5 2s-4.333 1\n-7 1c-4.667 0-9.167-1.833-13.5-5.5S337 184 337 178c0-12.667 15.667-32.333 47-59\nH213l-171-1c-8.667-6-13-12.333-13-19 0-4.667 4.333-11.333 13-20h359\nc-16-25.333-24-45-24-59z",widehat1:"M529 0h5l519 115c5 1 9 5 9 10 0 1-1 2-1 3l-4 22\nc-1 5-5 9-11 9h-2L532 67 19 159h-2c-5 0-9-4-11-9l-5-22c-1-6 2-12 8-13z",widehat2:"M1181 0h2l1171 176c6 0 10 5 10 11l-2 23c-1 6-5 10\n-11 10h-1L1182 67 15 220h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z",widehat3:"M1181 0h2l1171 236c6 0 10 5 10 11l-2 23c-1 6-5 10\n-11 10h-1L1182 67 15 280h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z",widehat4:"M1181 0h2l1171 296c6 0 10 5 10 11l-2 23c-1 6-5 10\n-11 10h-1L1182 67 15 340h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z",widecheck1:"M529,159h5l519,-115c5,-1,9,-5,9,-10c0,-1,-1,-2,-1,-3l-4,-22c-1,\n-5,-5,-9,-11,-9h-2l-512,92l-513,-92h-2c-5,0,-9,4,-11,9l-5,22c-1,6,2,12,8,13z",widecheck2:"M1181,220h2l1171,-176c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10,\n-11,-10h-1l-1168,153l-1167,-153h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z",widecheck3:"M1181,280h2l1171,-236c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10,\n-11,-10h-1l-1168,213l-1167,-213h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z",widecheck4:"M1181,340h2l1171,-296c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10,\n-11,-10h-1l-1168,273l-1167,-273h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z",baraboveleftarrow:"M400000 620h-399890l3 -3c68.7 -52.7 113.7 -120 135 -202\nc4 -14.7 6 -23 6 -25c0 -7.3 -7 -11 -21 -11c-8 0 -13.2 0.8 -15.5 2.5\nc-2.3 1.7 -4.2 5.8 -5.5 12.5c-1.3 4.7 -2.7 10.3 -4 17c-12 48.7 -34.8 92 -68.5 130\ns-74.2 66.3 -121.5 85c-10 4 -16 7.7 -18 11c0 8.7 6 14.3 18 17c47.3 18.7 87.8 47\n121.5 85s56.5 81.3 68.5 130c0.7 2 1.3 5 2 9s1.2 6.7 1.5 8c0.3 1.3 1 3.3 2 6\ns2.2 4.5 3.5 5.5c1.3 1 3.3 1.8 6 2.5s6 1 10 1c14 0 21 -3.7 21 -11\nc0 -2 -2 -10.3 -6 -25c-20 -79.3 -65 -146.7 -135 -202l-3 -3h399890z\nM100 620v40h399900v-40z M0 241v40h399900v-40zM0 241v40h399900v-40z",rightarrowabovebar:"M0 241v40h399891c-47.3 35.3-84 78-110 128-16.7 32\n-27.7 63.7-33 95 0 1.3-.2 2.7-.5 4-.3 1.3-.5 2.3-.5 3 0 7.3 6.7 11 20 11 8 0\n13.2-.8 15.5-2.5 2.3-1.7 4.2-5.5 5.5-11.5 2-13.3 5.7-27 11-41 14.7-44.7 39\n-84.5 73-119.5s73.7-60.2 119-75.5c6-2 9-5.7 9-11s-3-9-9-11c-45.3-15.3-85-40.5\n-119-75.5s-58.3-74.8-73-119.5c-4.7-14-8.3-27.3-11-40-1.3-6.7-3.2-10.8-5.5\n-12.5-2.3-1.7-7.5-2.5-15.5-2.5-14 0-21 3.7-21 11 0 2 2 10.3 6 25 20.7 83.3 67\n151.7 139 205zm96 379h399894v40H0zm0 0h399904v40H0z",baraboveshortleftharpoon:"M507,435c-4,4,-6.3,8.7,-7,14c0,5.3,0.7,9,2,11\nc1.3,2,5.3,5.3,12,10c90.7,54,156,130,196,228c3.3,10.7,6.3,16.3,9,17\nc2,0.7,5,1,9,1c0,0,5,0,5,0c10.7,0,16.7,-2,18,-6c2,-2.7,1,-9.7,-3,-21\nc-32,-87.3,-82.7,-157.7,-152,-211c0,0,-3,-3,-3,-3l399351,0l0,-40\nc-398570,0,-399437,0,-399437,0z M593 435 v40 H399500 v-40z\nM0 281 v-40 H399908 v40z M0 281 v-40 H399908 v40z",rightharpoonaboveshortbar:"M0,241 l0,40c399126,0,399993,0,399993,0\nc4.7,-4.7,7,-9.3,7,-14c0,-9.3,-3.7,-15.3,-11,-18c-92.7,-56.7,-159,-133.7,-199,\n-231c-3.3,-9.3,-6,-14.7,-8,-16c-2,-1.3,-7,-2,-15,-2c-10.7,0,-16.7,2,-18,6\nc-2,2.7,-1,9.7,3,21c15.3,42,36.7,81.8,64,119.5c27.3,37.7,58,69.2,92,94.5z\nM0 241 v40 H399908 v-40z M0 475 v-40 H399500 v40z M0 475 v-40 H399500 v40z",shortbaraboveleftharpoon:"M7,435c-4,4,-6.3,8.7,-7,14c0,5.3,0.7,9,2,11\nc1.3,2,5.3,5.3,12,10c90.7,54,156,130,196,228c3.3,10.7,6.3,16.3,9,17c2,0.7,5,1,9,\n1c0,0,5,0,5,0c10.7,0,16.7,-2,18,-6c2,-2.7,1,-9.7,-3,-21c-32,-87.3,-82.7,-157.7,\n-152,-211c0,0,-3,-3,-3,-3l399907,0l0,-40c-399126,0,-399993,0,-399993,0z\nM93 435 v40 H400000 v-40z M500 241 v40 H400000 v-40z M500 241 v40 H400000 v-40z",shortrightharpoonabovebar:"M53,241l0,40c398570,0,399437,0,399437,0\nc4.7,-4.7,7,-9.3,7,-14c0,-9.3,-3.7,-15.3,-11,-18c-92.7,-56.7,-159,-133.7,-199,\n-231c-3.3,-9.3,-6,-14.7,-8,-16c-2,-1.3,-7,-2,-15,-2c-10.7,0,-16.7,2,-18,6\nc-2,2.7,-1,9.7,3,21c15.3,42,36.7,81.8,64,119.5c27.3,37.7,58,69.2,92,94.5z\nM500 241 v40 H399408 v-40z M500 435 v40 H400000 v-40z"},A=function(){function t(t){this.children=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,this.children=t,this.classes=[],this.height=0,this.depth=0,this.maxFontSize=0,this.style={}}var e=t.prototype;return e.hasClass=function(t){return c.contains(this.classes,t)},e.toNode=function(){for(var t=document.createDocumentFragment(),e=0;e"},N=function(){function t(t,e,r,a){this.children=void 0,this.attributes=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.width=void 0,this.maxFontSize=void 0,this.style=void 0,B.call(this,t,r,a),this.children=e||[]}var e=t.prototype;return e.setAttribute=function(t,e){this.attributes[t]=e},e.hasClass=function(t){return c.contains(this.classes,t)},e.toNode=function(){return C.call(this,"span")},e.toMarkup=function(){return q.call(this,"span")},t}(),I=function(){function t(t,e,r,a){this.children=void 0,this.attributes=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,B.call(this,e,a),this.children=r||[],this.setAttribute("href",t)}var e=t.prototype;return e.setAttribute=function(t,e){this.attributes[t]=e},e.hasClass=function(t){return c.contains(this.classes,t)},e.toNode=function(){return C.call(this,"a")},e.toMarkup=function(){return q.call(this,"a")},t}(),O=function(){function t(t,e,r){this.src=void 0,this.alt=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,this.alt=e,this.src=t,this.classes=["mord"],this.style=r}var e=t.prototype;return e.hasClass=function(t){return c.contains(this.classes,t)},e.toNode=function(){var t=document.createElement("img");for(var e in t.src=this.src,t.alt=this.alt,t.className="mord",this.style)this.style.hasOwnProperty(e)&&(t.style[e]=this.style[e]);return t},e.toMarkup=function(){var t=""+this.alt+"=n[0]&&t<=n[1])return r.name}return null}(this.text.charCodeAt(0));l&&this.classes.push(l+"_fallback"),/[\xee\xef\xed\xec]/.test(this.text)&&(this.text=R[this.text])}var e=t.prototype;return e.hasClass=function(t){return c.contains(this.classes,t)},e.toNode=function(){var t=document.createTextNode(this.text),e=null;for(var r in this.italic>0&&((e=document.createElement("span")).style.marginRight=this.italic+"em"),this.classes.length>0&&((e=e||document.createElement("span")).className=T(this.classes)),this.style)this.style.hasOwnProperty(r)&&((e=e||document.createElement("span")).style[r]=this.style[r]);return e?(e.appendChild(t),e):t},e.toMarkup=function(){var t=!1,e="0&&(r+="margin-right:"+this.italic+"em;"),this.style)this.style.hasOwnProperty(a)&&(r+=c.hyphenate(a)+":"+this.style[a]+";");r&&(t=!0,e+=' style="'+c.escape(r)+'"');var n=c.escape(this.text);return t?(e+=">",e+=n,e+=""):n},t}(),L=function(){function t(t,e){this.children=void 0,this.attributes=void 0,this.children=t||[],this.attributes=e||{}}var e=t.prototype;return e.toNode=function(){var t=document.createElementNS("http://www.w3.org/2000/svg","svg");for(var e in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,e)&&t.setAttribute(e,this.attributes[e]);for(var r=0;r":""},t}(),D=function(){function t(t){this.attributes=void 0,this.attributes=t||{}}var e=t.prototype;return e.toNode=function(){var t=document.createElementNS("http://www.w3.org/2000/svg","line");for(var e in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,e)&&t.setAttribute(e,this.attributes[e]);return t},e.toMarkup=function(){var t="","\\gt",!0),$("math",Z,et,"\u2208","\\in",!0),$("math",Z,et,"\ue020","\\@not"),$("math",Z,et,"\u2282","\\subset",!0),$("math",Z,et,"\u2283","\\supset",!0),$("math",Z,et,"\u2286","\\subseteq",!0),$("math",Z,et,"\u2287","\\supseteq",!0),$("math",K,et,"\u2288","\\nsubseteq",!0),$("math",K,et,"\u2289","\\nsupseteq",!0),$("math",Z,et,"\u22a8","\\models"),$("math",Z,et,"\u2190","\\leftarrow",!0),$("math",Z,et,"\u2264","\\le"),$("math",Z,et,"\u2264","\\leq",!0),$("math",Z,et,"<","\\lt",!0),$("math",Z,et,"\u2192","\\rightarrow",!0),$("math",Z,et,"\u2192","\\to"),$("math",K,et,"\u2271","\\ngeq",!0),$("math",K,et,"\u2270","\\nleq",!0),$("math",Z,"spacing","\xa0","\\ "),$("math",Z,"spacing","\xa0","~"),$("math",Z,"spacing","\xa0","\\space"),$("math",Z,"spacing","\xa0","\\nobreakspace"),$("text",Z,"spacing","\xa0","\\ "),$("text",Z,"spacing","\xa0"," "),$("text",Z,"spacing","\xa0","~"),$("text",Z,"spacing","\xa0","\\space"),$("text",Z,"spacing","\xa0","\\nobreakspace"),$("math",Z,"spacing",null,"\\nobreak"),$("math",Z,"spacing",null,"\\allowbreak"),$("math",Z,"punct",",",","),$("math",Z,"punct",";",";"),$("math",K,J,"\u22bc","\\barwedge",!0),$("math",K,J,"\u22bb","\\veebar",!0),$("math",Z,J,"\u2299","\\odot",!0),$("math",Z,J,"\u2295","\\oplus",!0),$("math",Z,J,"\u2297","\\otimes",!0),$("math",Z,"textord","\u2202","\\partial",!0),$("math",Z,J,"\u2298","\\oslash",!0),$("math",K,J,"\u229a","\\circledcirc",!0),$("math",K,J,"\u22a1","\\boxdot",!0),$("math",Z,J,"\u25b3","\\bigtriangleup"),$("math",Z,J,"\u25bd","\\bigtriangledown"),$("math",Z,J,"\u2020","\\dagger"),$("math",Z,J,"\u22c4","\\diamond"),$("math",Z,J,"\u22c6","\\star"),$("math",Z,J,"\u25c3","\\triangleleft"),$("math",Z,J,"\u25b9","\\triangleright"),$("math",Z,"open","{","\\{"),$("text",Z,"textord","{","\\{"),$("text",Z,"textord","{","\\textbraceleft"),$("math",Z,"close","}","\\}"),$("text",Z,"textord","}","\\}"),$("text",Z,"textord","}","\\textbraceright"),$("math",Z,"open","{","\\lbrace"),$("math",Z,"close","}","\\rbrace"),$("math",Z,"open","[","\\lbrack",!0),$("text",Z,"textord","[","\\lbrack",!0),$("math",Z,"close","]","\\rbrack",!0),$("text",Z,"textord","]","\\rbrack",!0),$("math",Z,"open","(","\\lparen",!0),$("math",Z,"close",")","\\rparen",!0),$("text",Z,"textord","<","\\textless",!0),$("text",Z,"textord",">","\\textgreater",!0),$("math",Z,"open","\u230a","\\lfloor",!0),$("math",Z,"close","\u230b","\\rfloor",!0),$("math",Z,"open","\u2308","\\lceil",!0),$("math",Z,"close","\u2309","\\rceil",!0),$("math",Z,"textord","\\","\\backslash"),$("math",Z,"textord","\u2223","|"),$("math",Z,"textord","\u2223","\\vert"),$("text",Z,"textord","|","\\textbar",!0),$("math",Z,"textord","\u2225","\\|"),$("math",Z,"textord","\u2225","\\Vert"),$("text",Z,"textord","\u2225","\\textbardbl"),$("text",Z,"textord","~","\\textasciitilde"),$("text",Z,"textord","\\","\\textbackslash"),$("text",Z,"textord","^","\\textasciicircum"),$("math",Z,et,"\u2191","\\uparrow",!0),$("math",Z,et,"\u21d1","\\Uparrow",!0),$("math",Z,et,"\u2193","\\downarrow",!0),$("math",Z,et,"\u21d3","\\Downarrow",!0),$("math",Z,et,"\u2195","\\updownarrow",!0),$("math",Z,et,"\u21d5","\\Updownarrow",!0),$("math",Z,tt,"\u2210","\\coprod"),$("math",Z,tt,"\u22c1","\\bigvee"),$("math",Z,tt,"\u22c0","\\bigwedge"),$("math",Z,tt,"\u2a04","\\biguplus"),$("math",Z,tt,"\u22c2","\\bigcap"),$("math",Z,tt,"\u22c3","\\bigcup"),$("math",Z,tt,"\u222b","\\int"),$("math",Z,tt,"\u222b","\\intop"),$("math",Z,tt,"\u222c","\\iint"),$("math",Z,tt,"\u222d","\\iiint"),$("math",Z,tt,"\u220f","\\prod"),$("math",Z,tt,"\u2211","\\sum"),$("math",Z,tt,"\u2a02","\\bigotimes"),$("math",Z,tt,"\u2a01","\\bigoplus"),$("math",Z,tt,"\u2a00","\\bigodot"),$("math",Z,tt,"\u222e","\\oint"),$("math",Z,tt,"\u2a06","\\bigsqcup"),$("math",Z,tt,"\u222b","\\smallint"),$("text",Z,"inner","\u2026","\\textellipsis"),$("math",Z,"inner","\u2026","\\mathellipsis"),$("text",Z,"inner","\u2026","\\ldots",!0),$("math",Z,"inner","\u2026","\\ldots",!0),$("math",Z,"inner","\u22ef","\\@cdots",!0),$("math",Z,"inner","\u22f1","\\ddots",!0),$("math",Z,"textord","\u22ee","\\varvdots"),$("math",Z,"accent-token","\u02ca","\\acute"),$("math",Z,"accent-token","\u02cb","\\grave"),$("math",Z,"accent-token","\xa8","\\ddot"),$("math",Z,"accent-token","~","\\tilde"),$("math",Z,"accent-token","\u02c9","\\bar"),$("math",Z,"accent-token","\u02d8","\\breve"),$("math",Z,"accent-token","\u02c7","\\check"),$("math",Z,"accent-token","^","\\hat"),$("math",Z,"accent-token","\u20d7","\\vec"),$("math",Z,"accent-token","\u02d9","\\dot"),$("math",Z,"accent-token","\u02da","\\mathring"),$("math",Z,Q,"\ue131","\\@imath"),$("math",Z,Q,"\ue237","\\@jmath"),$("math",Z,"textord","\u0131","\u0131"),$("math",Z,"textord","\u0237","\u0237"),$("text",Z,"textord","\u0131","\\i",!0),$("text",Z,"textord","\u0237","\\j",!0),$("text",Z,"textord","\xdf","\\ss",!0),$("text",Z,"textord","\xe6","\\ae",!0),$("text",Z,"textord","\u0153","\\oe",!0),$("text",Z,"textord","\xf8","\\o",!0),$("text",Z,"textord","\xc6","\\AE",!0),$("text",Z,"textord","\u0152","\\OE",!0),$("text",Z,"textord","\xd8","\\O",!0),$("text",Z,"accent-token","\u02ca","\\'"),$("text",Z,"accent-token","\u02cb","\\`"),$("text",Z,"accent-token","\u02c6","\\^"),$("text",Z,"accent-token","\u02dc","\\~"),$("text",Z,"accent-token","\u02c9","\\="),$("text",Z,"accent-token","\u02d8","\\u"),$("text",Z,"accent-token","\u02d9","\\."),$("text",Z,"accent-token","\u02da","\\r"),$("text",Z,"accent-token","\u02c7","\\v"),$("text",Z,"accent-token","\xa8",'\\"'),$("text",Z,"accent-token","\u02dd","\\H"),$("text",Z,"accent-token","\u25ef","\\textcircled");var rt={"--":!0,"---":!0,"``":!0,"''":!0};$("text",Z,"textord","\u2013","--",!0),$("text",Z,"textord","\u2013","\\textendash"),$("text",Z,"textord","\u2014","---",!0),$("text",Z,"textord","\u2014","\\textemdash"),$("text",Z,"textord","\u2018","`",!0),$("text",Z,"textord","\u2018","\\textquoteleft"),$("text",Z,"textord","\u2019","'",!0),$("text",Z,"textord","\u2019","\\textquoteright"),$("text",Z,"textord","\u201c","``",!0),$("text",Z,"textord","\u201c","\\textquotedblleft"),$("text",Z,"textord","\u201d","''",!0),$("text",Z,"textord","\u201d","\\textquotedblright"),$("math",Z,"textord","\xb0","\\degree",!0),$("text",Z,"textord","\xb0","\\degree"),$("text",Z,"textord","\xb0","\\textdegree",!0),$("math",Z,"textord","\xa3","\\pounds"),$("math",Z,"textord","\xa3","\\mathsterling",!0),$("text",Z,"textord","\xa3","\\pounds"),$("text",Z,"textord","\xa3","\\textsterling",!0),$("math",K,"textord","\u2720","\\maltese"),$("text",K,"textord","\u2720","\\maltese");for(var at=0;at<'0123456789/@."'.length;at++){var nt='0123456789/@."'.charAt(at);$("math",Z,"textord",nt,nt)}for(var it=0;it<'0123456789!@*()-=+";:?/.,'.length;it++){var ot='0123456789!@*()-=+";:?/.,'.charAt(it);$("text",Z,"textord",ot,ot)}for(var st="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",lt=0;lt=5?0:t>=3?1:2]){var r=Y[e]={cssEmPerMu:V.quad[e]/18};for(var a in V)V.hasOwnProperty(a)&&(r[a]=V[a][e])}return Y[e]}(this.size)),this._fontMetrics},e.getColor=function(){return this.phantom?"transparent":this.color},t}();kt.BASESIZE=6;var St=kt,Mt={pt:1,mm:7227/2540,cm:7227/254,in:72.27,bp:1.00375,pc:12,dd:1238/1157,cc:14856/1157,nd:685/642,nc:1370/107,sp:1/65536,px:1.00375},zt={ex:!0,em:!0,mu:!0},At=function(t){return"string"!=typeof t&&(t=t.unit),t in Mt||t in zt||"ex"===t},Tt=function(t,e){var r;if(t.unit in Mt)r=Mt[t.unit]/e.fontMetrics().ptPerEm/e.sizeMultiplier;else if("mu"===t.unit)r=e.fontMetrics().cssEmPerMu;else{var a;if(a=e.style.isTight()?e.havingStyle(e.style.text()):e,"ex"===t.unit)r=a.fontMetrics().xHeight;else{if("em"!==t.unit)throw new o("Invalid unit: '"+t.unit+"'");r=a.fontMetrics().quad}a!==e&&(r*=a.sizeMultiplier/e.sizeMultiplier)}return Math.min(t.number*r,e.maxSize)},Bt=function(t,e,r){return j[r][t]&&j[r][t].replace&&(t=j[r][t].replace),{value:t,metrics:G(t,e,r)}},Ct=function(t,e,r,a,n){var i,o=Bt(t,e,r),s=o.metrics;if(t=o.value,s){var l=s.italic;("text"===r||a&&"mathit"===a.font)&&(l=0),i=new E(t,s.height,s.depth,l,s.skew,s.width,n)}else"undefined"!=typeof console&&console.warn("No character metrics for '"+t+"' in style '"+e+"' and mode '"+r+"'"),i=new E(t,0,0,0,0,0,n);if(a){i.maxFontSize=a.sizeMultiplier,a.style.isTight()&&i.classes.push("mtight");var h=a.getColor();h&&(i.style.color=h)}return i},qt=function(t,e){if(T(t.classes)!==T(e.classes)||t.skew!==e.skew||t.maxFontSize!==e.maxFontSize)return!1;for(var r in t.style)if(t.style.hasOwnProperty(r)&&t.style[r]!==e.style[r])return!1;for(var a in e.style)if(e.style.hasOwnProperty(a)&&t.style[a]!==e.style[a])return!1;return!0},Nt=function(t){for(var e=0,r=0,a=0,n=0;ne&&(e=i.height),i.depth>r&&(r=i.depth),i.maxFontSize>a&&(a=i.maxFontSize)}t.height=e,t.depth=r,t.maxFontSize=a},It=function(t,e,r,a){var n=new N(t,e,r,a);return Nt(n),n},Ot=function(t,e,r,a){return new N(t,e,r,a)},Rt=function(t){var e=new A(t);return Nt(e),e},Et=function(t,e,r){var a="";switch(t){case"amsrm":a="AMS";break;case"textrm":a="Main";break;case"textsf":a="SansSerif";break;case"texttt":a="Typewriter";break;default:a=t}return a+"-"+("textbf"===e&&"textit"===r?"BoldItalic":"textbf"===e?"Bold":"textit"===e?"Italic":"Regular")},Lt={mathbf:{variant:"bold",fontName:"Main-Bold"},mathrm:{variant:"normal",fontName:"Main-Regular"},textit:{variant:"italic",fontName:"Main-Italic"},mathit:{variant:"italic",fontName:"Main-Italic"},mathnormal:{variant:"italic",fontName:"Math-Italic"},mathbb:{variant:"double-struck",fontName:"AMS-Regular"},mathcal:{variant:"script",fontName:"Caligraphic-Regular"},mathfrak:{variant:"fraktur",fontName:"Fraktur-Regular"},mathscr:{variant:"script",fontName:"Script-Regular"},mathsf:{variant:"sans-serif",fontName:"SansSerif-Regular"},mathtt:{variant:"monospace",fontName:"Typewriter-Regular"}},Pt={vec:["vec",.471,.714],oiintSize1:["oiintSize1",.957,.499],oiintSize2:["oiintSize2",1.472,.659],oiiintSize1:["oiiintSize1",1.304,.499],oiiintSize2:["oiiintSize2",1.98,.659],leftParenInner:["leftParenInner",.875,.3],rightParenInner:["rightParenInner",.875,.3]},Dt={fontMap:Lt,makeSymbol:Ct,mathsym:function(t,e,r,a){return void 0===a&&(a=[]),"boldsymbol"===r.font&&Bt(t,"Main-Bold",e).metrics?Ct(t,"Main-Bold",e,r,a.concat(["mathbf"])):"\\"===t||"main"===j[e][t].font?Ct(t,"Main-Regular",e,r,a):Ct(t,"AMS-Regular",e,r,a.concat(["amsrm"]))},makeSpan:It,makeSvgSpan:Ot,makeLineSpan:function(t,e,r){var a=It([t],[],e);return a.height=Math.max(r||e.fontMetrics().defaultRuleThickness,e.minRuleThickness),a.style.borderBottomWidth=a.height+"em",a.maxFontSize=1,a},makeAnchor:function(t,e,r,a){var n=new I(t,e,r,a);return Nt(n),n},makeFragment:Rt,wrapFragment:function(t,e){return t instanceof A?It([],[t],e):t},makeVList:function(t,e){for(var r=function(t){if("individualShift"===t.positionType){for(var e=t.children,r=[e[0]],a=-e[0].shift-e[0].elem.depth,n=a,i=1;i0&&(i.push(se(o,e)),o=[]),i.push(n[s]));o.length>0&&i.push(se(o,e)),r&&((a=se(ee(r,e,!0))).classes=["tag"],i.push(a));var h=Zt(["katex-html"],i);if(h.setAttribute("aria-hidden","true"),a){var m=a.children[0];m.style.height=h.height+h.depth+"em",m.style.verticalAlign=-h.depth+"em"}return h}function he(t){return new A(t)}var me=function(){function t(t,e){this.type=void 0,this.attributes=void 0,this.children=void 0,this.type=t,this.attributes={},this.children=e||[]}var e=t.prototype;return e.setAttribute=function(t,e){this.attributes[t]=e},e.getAttribute=function(t){return this.attributes[t]},e.toNode=function(){var t=document.createElementNS("http://www.w3.org/1998/Math/MathML",this.type);for(var e in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,e)&&t.setAttribute(e,this.attributes[e]);for(var r=0;r"},e.toText=function(){return this.children.map(function(t){return t.toText()}).join("")},t}(),ce=function(){function t(t){this.text=void 0,this.text=t}var e=t.prototype;return e.toNode=function(){return document.createTextNode(this.text)},e.toMarkup=function(){return c.escape(this.toText())},e.toText=function(){return this.text},t}(),ue={MathNode:me,TextNode:ce,SpaceNode:function(){function t(t){this.width=void 0,this.character=void 0,this.width=t,this.character=t>=.05555&&t<=.05556?"\u200a":t>=.1666&&t<=.1667?"\u2009":t>=.2222&&t<=.2223?"\u2005":t>=.2777&&t<=.2778?"\u2005\u200a":t>=-.05556&&t<=-.05555?"\u200a\u2063":t>=-.1667&&t<=-.1666?"\u2009\u2063":t>=-.2223&&t<=-.2222?"\u205f\u2063":t>=-.2778&&t<=-.2777?"\u2005\u2063":null}var e=t.prototype;return e.toNode=function(){if(this.character)return document.createTextNode(this.character);var t=document.createElementNS("http://www.w3.org/1998/Math/MathML","mspace");return t.setAttribute("width",this.width+"em"),t},e.toMarkup=function(){return this.character?""+this.character+"":''},e.toText=function(){return this.character?this.character:" "},t}(),newDocumentFragment:he},pe=function(t,e,r){return!j[e][t]||!j[e][t].replace||55349===t.charCodeAt(0)||rt.hasOwnProperty(t)&&r&&(r.fontFamily&&"tt"===r.fontFamily.substr(4,2)||r.font&&"tt"===r.font.substr(4,2))||(t=j[e][t].replace),new ue.TextNode(t)},de=function(t){return 1===t.length?t[0]:new ue.MathNode("mrow",t)},fe=function(t,e){if("texttt"===e.fontFamily)return"monospace";if("textsf"===e.fontFamily)return"textit"===e.fontShape&&"textbf"===e.fontWeight?"sans-serif-bold-italic":"textit"===e.fontShape?"sans-serif-italic":"textbf"===e.fontWeight?"bold-sans-serif":"sans-serif";if("textit"===e.fontShape&&"textbf"===e.fontWeight)return"bold-italic";if("textit"===e.fontShape)return"italic";if("textbf"===e.fontWeight)return"bold";var r=e.font;if(!r||"mathnormal"===r)return null;var a=t.mode;if("mathit"===r)return"italic";if("boldsymbol"===r)return"textord"===t.type?"bold":"bold-italic";if("mathbf"===r)return"bold";if("mathbb"===r)return"double-struck";if("mathfrak"===r)return"fraktur";if("mathscr"===r||"mathcal"===r)return"script";if("mathsf"===r)return"sans-serif";if("mathtt"===r)return"monospace";var n=t.text;return c.contains(["\\imath","\\jmath"],n)?null:(j[a][n]&&j[a][n].replace&&(n=j[a][n].replace),G(n,Dt.fontMap[r].fontName,a)?Dt.fontMap[r].variant:null)},ge=function(t,e,r){if(1===t.length){var a=ve(t[0],e);return r&&a instanceof me&&"mo"===a.type&&(a.setAttribute("lspace","0em"),a.setAttribute("rspace","0em")),[a]}for(var n,i=[],o=0;o0&&(p.text=p.text.slice(0,1)+"\u0338"+p.text.slice(1),i.pop())}}}i.push(s),n=s}return i},xe=function(t,e,r){return de(ge(t,e,r))},ve=function(t,e){if(!t)return new ue.MathNode("mrow");if(Xt[t.type])return Xt[t.type](t,e);throw new o("Got group of unknown type: '"+t.type+"'")};function be(t,e,r,a,n){var i,o=ge(t,r);i=1===o.length&&o[0]instanceof me&&c.contains(["mrow","mtable"],o[0].type)?o[0]:new ue.MathNode("mrow",o);var s=new ue.MathNode("annotation",[new ue.TextNode(e)]);s.setAttribute("encoding","application/x-tex");var l=new ue.MathNode("semantics",[i,s]),h=new ue.MathNode("math",[l]);h.setAttribute("xmlns","http://www.w3.org/1998/Math/MathML"),a&&h.setAttribute("display","block");var m=n?"katex":"katex-mathml";return Dt.makeSpan([m],[h])}var ye=function(t){return new St({style:t.displayMode?w.DISPLAY:w.TEXT,maxSize:t.maxSize,minRuleThickness:t.minRuleThickness})},we=function(t,e){if(e.displayMode){var r=["katex-display"];e.leqno&&r.push("leqno"),e.fleqn&&r.push("fleqn"),t=Dt.makeSpan(r,[t])}return t},ke=function(t,e,r){var a,n=ye(r);if("mathml"===r.output)return be(t,e,n,r.displayMode,!0);if("html"===r.output){var i=le(t,n);a=Dt.makeSpan(["katex"],[i])}else{var o=be(t,e,n,r.displayMode,!1),s=le(t,n);a=Dt.makeSpan(["katex"],[o,s])}return we(a,r)},Se={widehat:"^",widecheck:"\u02c7",widetilde:"~",utilde:"~",overleftarrow:"\u2190",underleftarrow:"\u2190",xleftarrow:"\u2190",overrightarrow:"\u2192",underrightarrow:"\u2192",xrightarrow:"\u2192",underbrace:"\u23df",overbrace:"\u23de",overgroup:"\u23e0",undergroup:"\u23e1",overleftrightarrow:"\u2194",underleftrightarrow:"\u2194",xleftrightarrow:"\u2194",Overrightarrow:"\u21d2",xRightarrow:"\u21d2",overleftharpoon:"\u21bc",xleftharpoonup:"\u21bc",overrightharpoon:"\u21c0",xrightharpoonup:"\u21c0",xLeftarrow:"\u21d0",xLeftrightarrow:"\u21d4",xhookleftarrow:"\u21a9",xhookrightarrow:"\u21aa",xmapsto:"\u21a6",xrightharpoondown:"\u21c1",xleftharpoondown:"\u21bd",xrightleftharpoons:"\u21cc",xleftrightharpoons:"\u21cb",xtwoheadleftarrow:"\u219e",xtwoheadrightarrow:"\u21a0",xlongequal:"=",xtofrom:"\u21c4",xrightleftarrows:"\u21c4",xrightequilibrium:"\u21cc",xleftequilibrium:"\u21cb"},Me={overrightarrow:[["rightarrow"],.888,522,"xMaxYMin"],overleftarrow:[["leftarrow"],.888,522,"xMinYMin"],underrightarrow:[["rightarrow"],.888,522,"xMaxYMin"],underleftarrow:[["leftarrow"],.888,522,"xMinYMin"],xrightarrow:[["rightarrow"],1.469,522,"xMaxYMin"],xleftarrow:[["leftarrow"],1.469,522,"xMinYMin"],Overrightarrow:[["doublerightarrow"],.888,560,"xMaxYMin"],xRightarrow:[["doublerightarrow"],1.526,560,"xMaxYMin"],xLeftarrow:[["doubleleftarrow"],1.526,560,"xMinYMin"],overleftharpoon:[["leftharpoon"],.888,522,"xMinYMin"],xleftharpoonup:[["leftharpoon"],.888,522,"xMinYMin"],xleftharpoondown:[["leftharpoondown"],.888,522,"xMinYMin"],overrightharpoon:[["rightharpoon"],.888,522,"xMaxYMin"],xrightharpoonup:[["rightharpoon"],.888,522,"xMaxYMin"],xrightharpoondown:[["rightharpoondown"],.888,522,"xMaxYMin"],xlongequal:[["longequal"],.888,334,"xMinYMin"],xtwoheadleftarrow:[["twoheadleftarrow"],.888,334,"xMinYMin"],xtwoheadrightarrow:[["twoheadrightarrow"],.888,334,"xMaxYMin"],overleftrightarrow:[["leftarrow","rightarrow"],.888,522],overbrace:[["leftbrace","midbrace","rightbrace"],1.6,548],underbrace:[["leftbraceunder","midbraceunder","rightbraceunder"],1.6,548],underleftrightarrow:[["leftarrow","rightarrow"],.888,522],xleftrightarrow:[["leftarrow","rightarrow"],1.75,522],xLeftrightarrow:[["doubleleftarrow","doublerightarrow"],1.75,560],xrightleftharpoons:[["leftharpoondownplus","rightharpoonplus"],1.75,716],xleftrightharpoons:[["leftharpoonplus","rightharpoondownplus"],1.75,716],xhookleftarrow:[["leftarrow","righthook"],1.08,522],xhookrightarrow:[["lefthook","rightarrow"],1.08,522],overlinesegment:[["leftlinesegment","rightlinesegment"],.888,522],underlinesegment:[["leftlinesegment","rightlinesegment"],.888,522],overgroup:[["leftgroup","rightgroup"],.888,342],undergroup:[["leftgroupunder","rightgroupunder"],.888,342],xmapsto:[["leftmapsto","rightarrow"],1.5,522],xtofrom:[["leftToFrom","rightToFrom"],1.75,528],xrightleftarrows:[["baraboveleftarrow","rightarrowabovebar"],1.75,901],xrightequilibrium:[["baraboveshortleftharpoon","rightharpoonaboveshortbar"],1.75,716],xleftequilibrium:[["shortbaraboveleftharpoon","shortrightharpoonabovebar"],1.75,716]},ze=function(t){return"ordgroup"===t.type?t.body.length:1},Ae=function(t,e,r,a){var n,i=t.height+t.depth+2*r;if(/fbox|color/.test(e)){if(n=Dt.makeSpan(["stretchy",e],[],a),"fbox"===e){var o=a.color&&a.getColor();o&&(n.style.borderColor=o)}}else{var s=[];/^[bx]cancel$/.test(e)&&s.push(new D({x1:"0",y1:"0",x2:"100%",y2:"100%","stroke-width":"0.046em"})),/^x?cancel$/.test(e)&&s.push(new D({x1:"0",y1:"100%",x2:"100%",y2:"0","stroke-width":"0.046em"}));var l=new L(s,{width:"100%",height:i+"em"});n=Dt.makeSvgSpan([],[l],a)}return n.height=i,n.style.height=i+"em",n},Te=function(t){var e=new ue.MathNode("mo",[new ue.TextNode(Se[t.substr(1)])]);return e.setAttribute("stretchy","true"),e},Be=function(t,e){var r=function(){var r=4e5,a=t.label.substr(1);if(c.contains(["widehat","widecheck","widetilde","utilde"],a)){var n,i,o,s=ze(t.base);if(s>5)"widehat"===a||"widecheck"===a?(n=420,r=2364,o=.42,i=a+"4"):(n=312,r=2340,o=.34,i="tilde4");else{var l=[1,1,2,2,3,3][s];"widehat"===a||"widecheck"===a?(r=[0,1062,2364,2364,2364][l],n=[0,239,300,360,420][l],o=[0,.24,.3,.3,.36,.42][l],i=a+l):(r=[0,600,1033,2339,2340][l],n=[0,260,286,306,312][l],o=[0,.26,.286,.3,.306,.34][l],i="tilde"+l)}var h=new P(i),m=new L([h],{width:"100%",height:o+"em",viewBox:"0 0 "+r+" "+n,preserveAspectRatio:"none"});return{span:Dt.makeSvgSpan([],[m],e),minWidth:0,height:o}}var u,p,d=[],f=Me[a],g=f[0],x=f[1],v=f[2],b=v/1e3,y=g.length;if(1===y)u=["hide-tail"],p=[f[3]];else if(2===y)u=["halfarrow-left","halfarrow-right"],p=["xMinYMin","xMaxYMin"];else{if(3!==y)throw new Error("Correct katexImagesData or update code here to support\n "+y+" children.");u=["brace-left","brace-center","brace-right"],p=["xMinYMin","xMidYMin","xMaxYMin"]}for(var w=0;w0&&(a.style.minWidth=n+"em"),a};function Ce(t,e){if(!t||t.type!==e)throw new Error("Expected node of type "+e+", but got "+(t?"node of type "+t.type:String(t)));return t}function qe(t){var e=Ne(t);if(!e)throw new Error("Expected node of symbol group type, but got "+(t?"node of type "+t.type:String(t)));return e}function Ne(t){return t&&("atom"===t.type||X.hasOwnProperty(t.type))?t:null}var Ie=function(t,e){var r,a,n;t&&"supsub"===t.type?(r=(a=Ce(t.base,"accent")).base,t.base=r,n=function(t){if(t instanceof N)return t;throw new Error("Expected span but got "+String(t)+".")}(oe(t,e)),t.base=a):r=(a=Ce(t,"accent")).base;var i=oe(r,e.havingCrampedStyle()),o=0;if(a.isShifty&&c.isCharacterBox(r)){var s=c.getBaseElem(r);o=H(oe(s,e.havingCrampedStyle())).skew}var l,h=Math.min(i.height,e.fontMetrics().xHeight);if(a.isStretchy)l=Be(a,e),l=Dt.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:i},{type:"elem",elem:l,wrapperClasses:["svg-align"],wrapperStyle:o>0?{width:"calc(100% - "+2*o+"em)",marginLeft:2*o+"em"}:void 0}]},e);else{var m,u;"\\vec"===a.label?(m=Dt.staticSvg("vec",e),u=Dt.svgData.vec[1]):((m=H(m=Dt.makeOrd({mode:a.mode,text:a.label},e,"textord"))).italic=0,u=m.width),l=Dt.makeSpan(["accent-body"],[m]);var p="\\textcircled"===a.label;p&&(l.classes.push("accent-full"),h=i.height);var d=o;p||(d-=u/2),l.style.left=d+"em","\\textcircled"===a.label&&(l.style.top=".2em"),l=Dt.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:i},{type:"kern",size:-h},{type:"elem",elem:l}]},e)}var f=Dt.makeSpan(["mord","accent"],[l],e);return n?(n.children[0]=f,n.height=Math.max(f.height,n.height),n.classes[0]="mord",n):f},Oe=function(t,e){var r=t.isStretchy?Te(t.label):new ue.MathNode("mo",[pe(t.label,t.mode)]),a=new ue.MathNode("mover",[ve(t.base,e),r]);return a.setAttribute("accent","true"),a},Re=new RegExp(["\\acute","\\grave","\\ddot","\\tilde","\\bar","\\breve","\\check","\\hat","\\vec","\\dot","\\mathring"].map(function(t){return"\\"+t}).join("|"));_t({type:"accent",names:["\\acute","\\grave","\\ddot","\\tilde","\\bar","\\breve","\\check","\\hat","\\vec","\\dot","\\mathring","\\widecheck","\\widehat","\\widetilde","\\overrightarrow","\\overleftarrow","\\Overrightarrow","\\overleftrightarrow","\\overgroup","\\overlinesegment","\\overleftharpoon","\\overrightharpoon"],props:{numArgs:1},handler:function(t,e){var r=e[0],a=!Re.test(t.funcName),n=!a||"\\widehat"===t.funcName||"\\widetilde"===t.funcName||"\\widecheck"===t.funcName;return{type:"accent",mode:t.parser.mode,label:t.funcName,isStretchy:a,isShifty:n,base:r}},htmlBuilder:Ie,mathmlBuilder:Oe}),_t({type:"accent",names:["\\'","\\`","\\^","\\~","\\=","\\u","\\.",'\\"',"\\r","\\H","\\v","\\textcircled"],props:{numArgs:1,allowedInText:!0,allowedInMath:!1},handler:function(t,e){var r=e[0];return{type:"accent",mode:t.parser.mode,label:t.funcName,isStretchy:!1,isShifty:!0,base:r}},htmlBuilder:Ie,mathmlBuilder:Oe}),_t({type:"accentUnder",names:["\\underleftarrow","\\underrightarrow","\\underleftrightarrow","\\undergroup","\\underlinesegment","\\utilde"],props:{numArgs:1},handler:function(t,e){var r=t.parser,a=t.funcName,n=e[0];return{type:"accentUnder",mode:r.mode,label:a,base:n}},htmlBuilder:function(t,e){var r=oe(t.base,e),a=Be(t,e),n="\\utilde"===t.label?.12:0,i=Dt.makeVList({positionType:"top",positionData:r.height,children:[{type:"elem",elem:a,wrapperClasses:["svg-align"]},{type:"kern",size:n},{type:"elem",elem:r}]},e);return Dt.makeSpan(["mord","accentunder"],[i],e)},mathmlBuilder:function(t,e){var r=Te(t.label),a=new ue.MathNode("munder",[ve(t.base,e),r]);return a.setAttribute("accentunder","true"),a}});var Ee=function(t){var e=new ue.MathNode("mpadded",t?[t]:[]);return e.setAttribute("width","+0.6em"),e.setAttribute("lspace","0.3em"),e};_t({type:"xArrow",names:["\\xleftarrow","\\xrightarrow","\\xLeftarrow","\\xRightarrow","\\xleftrightarrow","\\xLeftrightarrow","\\xhookleftarrow","\\xhookrightarrow","\\xmapsto","\\xrightharpoondown","\\xrightharpoonup","\\xleftharpoondown","\\xleftharpoonup","\\xrightleftharpoons","\\xleftrightharpoons","\\xlongequal","\\xtwoheadrightarrow","\\xtwoheadleftarrow","\\xtofrom","\\xrightleftarrows","\\xrightequilibrium","\\xleftequilibrium"],props:{numArgs:1,numOptionalArgs:1},handler:function(t,e,r){var a=t.parser,n=t.funcName;return{type:"xArrow",mode:a.mode,label:n,body:e[0],below:r[0]}},htmlBuilder:function(t,e){var r,a=e.style,n=e.havingStyle(a.sup()),i=Dt.wrapFragment(oe(t.body,n,e),e);i.classes.push("x-arrow-pad"),t.below&&(n=e.havingStyle(a.sub()),(r=Dt.wrapFragment(oe(t.below,n,e),e)).classes.push("x-arrow-pad"));var o,s=Be(t,e),l=-e.fontMetrics().axisHeight+.5*s.height,h=-e.fontMetrics().axisHeight-.5*s.height-.111;if((i.depth>.25||"\\xleftequilibrium"===t.label)&&(h-=i.depth),r){var m=-e.fontMetrics().axisHeight+r.height+.5*s.height+.111;o=Dt.makeVList({positionType:"individualShift",children:[{type:"elem",elem:i,shift:h},{type:"elem",elem:s,shift:l},{type:"elem",elem:r,shift:m}]},e)}else o=Dt.makeVList({positionType:"individualShift",children:[{type:"elem",elem:i,shift:h},{type:"elem",elem:s,shift:l}]},e);return o.children[0].children[0].children[1].classes.push("svg-align"),Dt.makeSpan(["mrel","x-arrow"],[o],e)},mathmlBuilder:function(t,e){var r,a=Te(t.label);if(t.body){var n=Ee(ve(t.body,e));if(t.below){var i=Ee(ve(t.below,e));r=new ue.MathNode("munderover",[a,i,n])}else r=new ue.MathNode("mover",[a,n])}else if(t.below){var o=Ee(ve(t.below,e));r=new ue.MathNode("munder",[a,o])}else r=Ee(),r=new ue.MathNode("mover",[a,r]);return r}}),_t({type:"textord",names:["\\@char"],props:{numArgs:1,allowedInText:!0},handler:function(t,e){for(var r=t.parser,a=Ce(e[0],"ordgroup").body,n="",i=0;i","\\langle","\\rangle","/","\\backslash","\\lt","\\gt"],Je=[0,1.2,1.8,2.4,3],Qe=[{type:"small",style:w.SCRIPTSCRIPT},{type:"small",style:w.SCRIPT},{type:"small",style:w.TEXT},{type:"large",size:1},{type:"large",size:2},{type:"large",size:3},{type:"large",size:4}],tr=[{type:"small",style:w.SCRIPTSCRIPT},{type:"small",style:w.SCRIPT},{type:"small",style:w.TEXT},{type:"stack"}],er=[{type:"small",style:w.SCRIPTSCRIPT},{type:"small",style:w.SCRIPT},{type:"small",style:w.TEXT},{type:"large",size:1},{type:"large",size:2},{type:"large",size:3},{type:"large",size:4},{type:"stack"}],rr=function(t){if("small"===t.type)return"Main-Regular";if("large"===t.type)return"Size"+t.size+"-Regular";if("stack"===t.type)return"Size4-Regular";throw new Error("Add support for delim type '"+t.type+"' here.")},ar=function(t,e,r,a){for(var n=Math.min(2,3-a.style.size);ne)return r[n]}return r[r.length-1]},nr=function(t,e,r,a,n,i){var o;"<"===t||"\\lt"===t||"\u27e8"===t?t="\\langle":">"!==t&&"\\gt"!==t&&"\u27e9"!==t||(t="\\rangle"),o=c.contains(Ke,t)?Qe:c.contains($e,t)?er:tr;var s=ar(t,e,o,a);return"small"===s.type?function(t,e,r,a,n,i){var o=Dt.makeSymbol(t,"Main-Regular",n,a),s=Ue(o,e,a,i);return r&&Ge(s,a,e),s}(t,s.style,r,a,n,i):"large"===s.type?Ye(t,s.size,r,a,n,i):_e(t,e,r,a,n,i)},ir=function(t,e){var r,a,n=e.havingBaseSizing(),i=ar("\\surd",t*n.sizeMultiplier,er,n),o=n.sizeMultiplier,s=Math.max(0,e.minRuleThickness-e.fontMetrics().sqrtRuleThickness),l=0,h=0,m=0;return"small"===i.type?(t<1?o=1:t<1.4&&(o=.7),h=(1+s)/o,(r=je("sqrtMain",l=(1+s+.08)/o,m=1e3+1e3*s+80,s,e)).style.minWidth="0.853em",a=.833/o):"large"===i.type?(m=1080*Je[i.size],h=(Je[i.size]+s)/o,l=(Je[i.size]+s+.08)/o,(r=je("sqrtSize"+i.size,l,m,s,e)).style.minWidth="1.02em",a=1/o):(l=t+s+.08,h=t+s,m=Math.floor(1e3*t+s)+80,(r=je("sqrtTall",l,m,s,e)).style.minWidth="0.742em",a=1.056),r.height=h,r.style.height=l+"em",{span:r,advanceWidth:a,ruleWidth:(e.fontMetrics().sqrtRuleThickness+s)*o}},or=function(t,e,r,a,n){if("<"===t||"\\lt"===t||"\u27e8"===t?t="\\langle":">"!==t&&"\\gt"!==t&&"\u27e9"!==t||(t="\\rangle"),c.contains($e,t)||c.contains(Ke,t))return Ye(t,e,!1,r,a,n);if(c.contains(Ze,t))return _e(t,Je[e],!1,r,a,n);throw new o("Illegal delimiter: '"+t+"'")},sr=nr,lr=function(t,e,r,a,n,i){var o=a.fontMetrics().axisHeight*a.sizeMultiplier,s=5/a.fontMetrics().ptPerEm,l=Math.max(e-o,r+o),h=Math.max(l/500*901,2*l-s);return nr(t,h,!0,a,n,i)},hr={"\\bigl":{mclass:"mopen",size:1},"\\Bigl":{mclass:"mopen",size:2},"\\biggl":{mclass:"mopen",size:3},"\\Biggl":{mclass:"mopen",size:4},"\\bigr":{mclass:"mclose",size:1},"\\Bigr":{mclass:"mclose",size:2},"\\biggr":{mclass:"mclose",size:3},"\\Biggr":{mclass:"mclose",size:4},"\\bigm":{mclass:"mrel",size:1},"\\Bigm":{mclass:"mrel",size:2},"\\biggm":{mclass:"mrel",size:3},"\\Biggm":{mclass:"mrel",size:4},"\\big":{mclass:"mord",size:1},"\\Big":{mclass:"mord",size:2},"\\bigg":{mclass:"mord",size:3},"\\Bigg":{mclass:"mord",size:4}},mr=["(","\\lparen",")","\\rparen","[","\\lbrack","]","\\rbrack","\\{","\\lbrace","\\}","\\rbrace","\\lfloor","\\rfloor","\u230a","\u230b","\\lceil","\\rceil","\u2308","\u2309","<",">","\\langle","\u27e8","\\rangle","\u27e9","\\lt","\\gt","\\lvert","\\rvert","\\lVert","\\rVert","\\lgroup","\\rgroup","\u27ee","\u27ef","\\lmoustache","\\rmoustache","\u23b0","\u23b1","/","\\backslash","|","\\vert","\\|","\\Vert","\\uparrow","\\Uparrow","\\downarrow","\\Downarrow","\\updownarrow","\\Updownarrow","."];function cr(t,e){var r=Ne(t);if(r&&c.contains(mr,r.text))return r;throw new o(r?"Invalid delimiter '"+r.text+"' after '"+e.funcName+"'":"Invalid delimiter type '"+t.type+"'",t)}function ur(t){if(!t.body)throw new Error("Bug: The leftright ParseNode wasn't fully parsed.")}_t({type:"delimsizing",names:["\\bigl","\\Bigl","\\biggl","\\Biggl","\\bigr","\\Bigr","\\biggr","\\Biggr","\\bigm","\\Bigm","\\biggm","\\Biggm","\\big","\\Big","\\bigg","\\Bigg"],props:{numArgs:1},handler:function(t,e){var r=cr(e[0],t);return{type:"delimsizing",mode:t.parser.mode,size:hr[t.funcName].size,mclass:hr[t.funcName].mclass,delim:r.text}},htmlBuilder:function(t,e){return"."===t.delim?Dt.makeSpan([t.mclass]):or(t.delim,t.size,e,t.mode,[t.mclass])},mathmlBuilder:function(t){var e=[];"."!==t.delim&&e.push(pe(t.delim,t.mode));var r=new ue.MathNode("mo",e);return"mopen"===t.mclass||"mclose"===t.mclass?r.setAttribute("fence","true"):r.setAttribute("fence","false"),r}}),_t({type:"leftright-right",names:["\\right"],props:{numArgs:1},handler:function(t,e){var r=t.parser.gullet.macros.get("\\current@color");if(r&&"string"!=typeof r)throw new o("\\current@color set to non-string in \\right");return{type:"leftright-right",mode:t.parser.mode,delim:cr(e[0],t).text,color:r}}}),_t({type:"leftright",names:["\\left"],props:{numArgs:1},handler:function(t,e){var r=cr(e[0],t),a=t.parser;++a.leftrightDepth;var n=a.parseExpression(!1);--a.leftrightDepth,a.expect("\\right",!1);var i=Ce(a.parseFunction(),"leftright-right");return{type:"leftright",mode:a.mode,body:n,left:r.text,right:i.delim,rightColor:i.color}},htmlBuilder:function(t,e){ur(t);for(var r,a,n=ee(t.body,e,!0,["mopen","mclose"]),i=0,o=0,s=!1,l=0;l-1?"mpadded":"menclose",[ve(t.body,e)]);switch(t.label){case"\\cancel":a.setAttribute("notation","updiagonalstrike");break;case"\\bcancel":a.setAttribute("notation","downdiagonalstrike");break;case"\\sout":a.setAttribute("notation","horizontalstrike");break;case"\\fbox":a.setAttribute("notation","box");break;case"\\fcolorbox":case"\\colorbox":if(r=e.fontMetrics().fboxsep*e.fontMetrics().ptPerEm,a.setAttribute("width","+"+2*r+"pt"),a.setAttribute("height","+"+2*r+"pt"),a.setAttribute("lspace",r+"pt"),a.setAttribute("voffset",r+"pt"),"\\fcolorbox"===t.label){var n=Math.max(e.fontMetrics().fboxrule,e.minRuleThickness);a.setAttribute("style","border: "+n+"em solid "+String(t.borderColor))}break;case"\\xcancel":a.setAttribute("notation","updiagonalstrike downdiagonalstrike")}return t.backgroundColor&&a.setAttribute("mathbackground",t.backgroundColor),a};_t({type:"enclose",names:["\\colorbox"],props:{numArgs:2,allowedInText:!0,greediness:3,argTypes:["color","text"]},handler:function(t,e,r){var a=t.parser,n=t.funcName,i=Ce(e[0],"color-token").color,o=e[1];return{type:"enclose",mode:a.mode,label:n,backgroundColor:i,body:o}},htmlBuilder:pr,mathmlBuilder:dr}),_t({type:"enclose",names:["\\fcolorbox"],props:{numArgs:3,allowedInText:!0,greediness:3,argTypes:["color","color","text"]},handler:function(t,e,r){var a=t.parser,n=t.funcName,i=Ce(e[0],"color-token").color,o=Ce(e[1],"color-token").color,s=e[2];return{type:"enclose",mode:a.mode,label:n,backgroundColor:o,borderColor:i,body:s}},htmlBuilder:pr,mathmlBuilder:dr}),_t({type:"enclose",names:["\\fbox"],props:{numArgs:1,argTypes:["hbox"],allowedInText:!0},handler:function(t,e){return{type:"enclose",mode:t.parser.mode,label:"\\fbox",body:e[0]}}}),_t({type:"enclose",names:["\\cancel","\\bcancel","\\xcancel","\\sout"],props:{numArgs:1},handler:function(t,e,r){var a=t.parser,n=t.funcName,i=e[0];return{type:"enclose",mode:a.mode,label:n,body:i}},htmlBuilder:pr,mathmlBuilder:dr});var fr={};function gr(t){for(var e=t.type,r=t.names,a=t.props,n=t.handler,i=t.htmlBuilder,o=t.mathmlBuilder,s={type:e,numArgs:a.numArgs||0,greediness:1,allowedInText:!1,numOptionalArgs:0,handler:n},l=0;l0&&(b+=.25),h.push({pos:b,isDashed:t[e]})}for(y(i[0]),r=0;r0&&(M<(B+=v)&&(M=B),B=0),t.addJot&&(M+=f),z.height=S,z.depth=M,b+=S,z.pos=b,b+=M+B,l[r]=z,y(i[r+1])}var C,q,N=b/2+e.fontMetrics().axisHeight,I=t.cols||[],O=[];for(a=0,q=0;a=s)){var D=void 0;(a>0||t.hskipBeforeAndAfter)&&0!==(D=c.deflt(R.pregap,p))&&((C=Dt.makeSpan(["arraycolsep"],[])).style.width=D+"em",O.push(C));var H=[];for(r=0;r0){for(var G=Dt.makeLineSpan("hline",e,m),Y=Dt.makeLineSpan("hdashline",e,m),W=[{type:"elem",elem:l,shift:0}];h.length>0;){var X=h.pop(),_=X.pos-N;X.isDashed?W.push({type:"elem",elem:Y,shift:_}):W.push({type:"elem",elem:G,shift:_})}l=Dt.makeVList({positionType:"individualShift",children:W},e)}return Dt.makeSpan(["mord"],[l],e)},wr={c:"center ",l:"left ",r:"right "},kr=function(t,e){var r=new ue.MathNode("mtable",t.body.map(function(t){return new ue.MathNode("mtr",t.map(function(t){return new ue.MathNode("mtd",[ve(t,e)])}))})),a=.5===t.arraystretch?.1:.16+t.arraystretch-1+(t.addJot?.09:0);r.setAttribute("rowspacing",a+"em");var n="",i="";if(t.cols&&t.cols.length>0){var o=t.cols,s="",l=!1,h=0,m=o.length;"separator"===o[0].type&&(n+="top ",h=1),"separator"===o[o.length-1].type&&(n+="bottom ",m-=1);for(var c=h;c0?"left ":"",n+=g[g.length-1].length>0?"right ":"";for(var x=1;x0&&m&&(p=1),a[c]={type:"align",align:u,pregap:p,postgap:0}}return n.colSeparationType=m?"align":"alignat",n};gr({type:"array",names:["array","darray"],props:{numArgs:1},handler:function(t,e){var r={cols:(Ne(e[0])?[e[0]]:Ce(e[0],"ordgroup").body).map(function(t){var e=qe(t).text;if(-1!=="lcr".indexOf(e))return{type:"align",align:e};if("|"===e)return{type:"separator",separator:"|"};if(":"===e)return{type:"separator",separator:":"};throw new o("Unknown column alignment: "+e,t)}),hskipBeforeAndAfter:!0};return vr(t.parser,r,br(t.envName))},htmlBuilder:yr,mathmlBuilder:kr}),gr({type:"array",names:["matrix","pmatrix","bmatrix","Bmatrix","vmatrix","Vmatrix"],props:{numArgs:0},handler:function(t){var e={matrix:null,pmatrix:["(",")"],bmatrix:["[","]"],Bmatrix:["\\{","\\}"],vmatrix:["|","|"],Vmatrix:["\\Vert","\\Vert"]}[t.envName],r=vr(t.parser,{hskipBeforeAndAfter:!1},br(t.envName));return e?{type:"leftright",mode:t.mode,body:[r],left:e[0],right:e[1],rightColor:void 0}:r},htmlBuilder:yr,mathmlBuilder:kr}),gr({type:"array",names:["smallmatrix"],props:{numArgs:0},handler:function(t){var e=vr(t.parser,{arraystretch:.5},"script");return e.colSeparationType="small",e},htmlBuilder:yr,mathmlBuilder:kr}),gr({type:"array",names:["subarray"],props:{numArgs:1},handler:function(t,e){var r=(Ne(e[0])?[e[0]]:Ce(e[0],"ordgroup").body).map(function(t){var e=qe(t).text;if(-1!=="lc".indexOf(e))return{type:"align",align:e};throw new o("Unknown column alignment: "+e,t)});if(r.length>1)throw new o("{subarray} can contain only one column");var a={cols:r,hskipBeforeAndAfter:!1,arraystretch:.5};if((a=vr(t.parser,a,"script")).body.length>0&&a.body[0].length>1)throw new o("{subarray} can contain only one column");return a},htmlBuilder:yr,mathmlBuilder:kr}),gr({type:"array",names:["cases","dcases","rcases","drcases"],props:{numArgs:0},handler:function(t){var e=vr(t.parser,{arraystretch:1.2,cols:[{type:"align",align:"l",pregap:0,postgap:1},{type:"align",align:"l",pregap:0,postgap:0}]},br(t.envName));return{type:"leftright",mode:t.mode,body:[e],left:t.envName.indexOf("r")>-1?".":"\\{",right:t.envName.indexOf("r")>-1?"\\}":".",rightColor:void 0}},htmlBuilder:yr,mathmlBuilder:kr}),gr({type:"array",names:["aligned"],props:{numArgs:0},handler:Sr,htmlBuilder:yr,mathmlBuilder:kr}),gr({type:"array",names:["gathered"],props:{numArgs:0},handler:function(t){return vr(t.parser,{cols:[{type:"align",align:"c"}],addJot:!0},"display")},htmlBuilder:yr,mathmlBuilder:kr}),gr({type:"array",names:["alignedat"],props:{numArgs:1},handler:Sr,htmlBuilder:yr,mathmlBuilder:kr}),_t({type:"text",names:["\\hline","\\hdashline"],props:{numArgs:0,allowedInText:!0,allowedInMath:!0},handler:function(t,e){throw new o(t.funcName+" valid only within array environment")}});var Mr=fr;_t({type:"environment",names:["\\begin","\\end"],props:{numArgs:1,argTypes:["text"]},handler:function(t,e){var r=t.parser,a=t.funcName,n=e[0];if("ordgroup"!==n.type)throw new o("Invalid environment name",n);for(var i="",s=0;s=w.SCRIPT.id?r.text():w.DISPLAY:"text"===t&&r.size===w.DISPLAY.size?r=w.TEXT:"script"===t?r=w.SCRIPT:"scriptscript"===t&&(r=w.SCRIPTSCRIPT),r},Or=function(t,e){var r,a=Ir(t.size,e.style),n=a.fracNum(),i=a.fracDen();r=e.havingStyle(n);var o=oe(t.numer,r,e);if(t.continued){var s=8.5/e.fontMetrics().ptPerEm,l=3.5/e.fontMetrics().ptPerEm;o.height=o.height0?3*c:7*c,d=e.fontMetrics().denom1):(m>0?(u=e.fontMetrics().num2,p=c):(u=e.fontMetrics().num3,p=3*c),d=e.fontMetrics().denom2),h){var y=e.fontMetrics().axisHeight;u-o.depth-(y+.5*m)0&&(e="."===(e=t)?null:e),e};_t({type:"genfrac",names:["\\genfrac"],props:{numArgs:6,greediness:6,argTypes:["math","math","size","text","math","math"]},handler:function(t,e){var r,a=t.parser,n=e[4],i=e[5],o="atom"===e[0].type&&"open"===e[0].family?Lr(e[0].text):null,s="atom"===e[1].type&&"close"===e[1].family?Lr(e[1].text):null,l=Ce(e[2],"size"),h=null;r=!!l.isBlank||(h=l.value).number>0;var m="auto",c=e[3];if("ordgroup"===c.type){if(c.body.length>0){var u=Ce(c.body[0],"textord");m=Er[Number(u.text)]}}else c=Ce(c,"textord"),m=Er[Number(c.text)];return{type:"genfrac",mode:a.mode,numer:n,denom:i,continued:!1,hasBarLine:r,barSize:h,leftDelim:o,rightDelim:s,size:m}},htmlBuilder:Or,mathmlBuilder:Rr}),_t({type:"infix",names:["\\above"],props:{numArgs:1,argTypes:["size"],infix:!0},handler:function(t,e){var r=t.parser,a=(t.funcName,t.token);return{type:"infix",mode:r.mode,replaceWith:"\\\\abovefrac",size:Ce(e[0],"size").value,token:a}}}),_t({type:"genfrac",names:["\\\\abovefrac"],props:{numArgs:3,argTypes:["math","size","math"]},handler:function(t,e){var r=t.parser,a=(t.funcName,e[0]),n=function(t){if(!t)throw new Error("Expected non-null, but got "+String(t));return t}(Ce(e[1],"infix").size),i=e[2],o=n.number>0;return{type:"genfrac",mode:r.mode,numer:a,denom:i,continued:!1,hasBarLine:o,barSize:n,leftDelim:null,rightDelim:null,size:"auto"}},htmlBuilder:Or,mathmlBuilder:Rr});var Pr=function(t,e){var r,a,n=e.style;"supsub"===t.type?(r=t.sup?oe(t.sup,e.havingStyle(n.sup()),e):oe(t.sub,e.havingStyle(n.sub()),e),a=Ce(t.base,"horizBrace")):a=Ce(t,"horizBrace");var i,o=oe(a.base,e.havingBaseStyle(w.DISPLAY)),s=Be(a,e);if(a.isOver?(i=Dt.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:o},{type:"kern",size:.1},{type:"elem",elem:s}]},e)).children[0].children[0].children[1].classes.push("svg-align"):(i=Dt.makeVList({positionType:"bottom",positionData:o.depth+.1+s.height,children:[{type:"elem",elem:s},{type:"kern",size:.1},{type:"elem",elem:o}]},e)).children[0].children[0].children[0].classes.push("svg-align"),r){var l=Dt.makeSpan(["mord",a.isOver?"mover":"munder"],[i],e);i=a.isOver?Dt.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:l},{type:"kern",size:.2},{type:"elem",elem:r}]},e):Dt.makeVList({positionType:"bottom",positionData:l.depth+.2+r.height+r.depth,children:[{type:"elem",elem:r},{type:"kern",size:.2},{type:"elem",elem:l}]},e)}return Dt.makeSpan(["mord",a.isOver?"mover":"munder"],[i],e)};_t({type:"horizBrace",names:["\\overbrace","\\underbrace"],props:{numArgs:1},handler:function(t,e){var r=t.parser,a=t.funcName;return{type:"horizBrace",mode:r.mode,label:a,isOver:/^\\over/.test(a),base:e[0]}},htmlBuilder:Pr,mathmlBuilder:function(t,e){var r=Te(t.label);return new ue.MathNode(t.isOver?"mover":"munder",[ve(t.base,e),r])}}),_t({type:"href",names:["\\href"],props:{numArgs:2,argTypes:["url","original"],allowedInText:!0},handler:function(t,e){var r=t.parser,a=e[1],n=Ce(e[0],"url").url;return r.settings.isTrusted({command:"\\href",url:n})?{type:"href",mode:r.mode,href:n,body:$t(a)}:r.formatUnsupportedCmd("\\href")},htmlBuilder:function(t,e){var r=ee(t.body,e,!1);return Dt.makeAnchor(t.href,[],r,e)},mathmlBuilder:function(t,e){var r=xe(t.body,e);return r instanceof me||(r=new me("mrow",[r])),r.setAttribute("href",t.href),r}}),_t({type:"href",names:["\\url"],props:{numArgs:1,argTypes:["url"],allowedInText:!0},handler:function(t,e){var r=t.parser,a=Ce(e[0],"url").url;if(!r.settings.isTrusted({command:"\\url",url:a}))return r.formatUnsupportedCmd("\\url");for(var n=[],i=0;i0&&(a=Tt(t.totalheight,e)-r,a=Number(a.toFixed(2)));var n=0;t.width.number>0&&(n=Tt(t.width,e));var i={height:r+a+"em"};n>0&&(i.width=n+"em"),a>0&&(i.verticalAlign=-a+"em");var o=new O(t.src,t.alt,i);return o.height=r,o.depth=a,o},mathmlBuilder:function(t,e){var r=new ue.MathNode("mglyph",[]);r.setAttribute("alt",t.alt);var a=Tt(t.height,e),n=0;if(t.totalheight.number>0&&(n=(n=Tt(t.totalheight,e)-a).toFixed(2),r.setAttribute("valign","-"+n+"em")),r.setAttribute("height",a+n+"em"),t.width.number>0){var i=Tt(t.width,e);r.setAttribute("width",i+"em")}return r.setAttribute("src",t.src),r}}),_t({type:"kern",names:["\\kern","\\mkern","\\hskip","\\mskip"],props:{numArgs:1,argTypes:["size"],allowedInText:!0},handler:function(t,e){var r=t.parser,a=t.funcName,n=Ce(e[0],"size");if(r.settings.strict){var i="m"===a[1],o="mu"===n.value.unit;i?(o||r.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+a+" supports only mu units, not "+n.value.unit+" units"),"math"!==r.mode&&r.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+a+" works only in math mode")):o&&r.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+a+" doesn't support mu units")}return{type:"kern",mode:r.mode,dimension:n.value}},htmlBuilder:function(t,e){return Dt.makeGlue(t.dimension,e)},mathmlBuilder:function(t,e){var r=Tt(t.dimension,e);return new ue.SpaceNode(r)}}),_t({type:"lap",names:["\\mathllap","\\mathrlap","\\mathclap"],props:{numArgs:1,allowedInText:!0},handler:function(t,e){var r=t.parser,a=t.funcName,n=e[0];return{type:"lap",mode:r.mode,alignment:a.slice(5),body:n}},htmlBuilder:function(t,e){var r;"clap"===t.alignment?(r=Dt.makeSpan([],[oe(t.body,e)]),r=Dt.makeSpan(["inner"],[r],e)):r=Dt.makeSpan(["inner"],[oe(t.body,e)]);var a=Dt.makeSpan(["fix"],[]),n=Dt.makeSpan([t.alignment],[r,a],e),i=Dt.makeSpan(["strut"]);return i.style.height=n.height+n.depth+"em",i.style.verticalAlign=-n.depth+"em",n.children.unshift(i),n=Dt.makeSpan(["thinbox"],[n],e),Dt.makeSpan(["mord","vbox"],[n],e)},mathmlBuilder:function(t,e){var r=new ue.MathNode("mpadded",[ve(t.body,e)]);if("rlap"!==t.alignment){var a="llap"===t.alignment?"-1":"-0.5";r.setAttribute("lspace",a+"width")}return r.setAttribute("width","0px"),r}}),_t({type:"styling",names:["\\(","$"],props:{numArgs:0,allowedInText:!0,allowedInMath:!1},handler:function(t,e){var r=t.funcName,a=t.parser,n=a.mode;a.switchMode("math");var i="\\("===r?"\\)":"$",o=a.parseExpression(!1,i);return a.expect(i),a.switchMode(n),{type:"styling",mode:a.mode,style:"text",body:o}}}),_t({type:"text",names:["\\)","\\]"],props:{numArgs:0,allowedInText:!0,allowedInMath:!1},handler:function(t,e){throw new o("Mismatched "+t.funcName)}});var Hr=function(t,e){switch(e.style.size){case w.DISPLAY.size:return t.display;case w.TEXT.size:return t.text;case w.SCRIPT.size:return t.script;case w.SCRIPTSCRIPT.size:return t.scriptscript;default:return t.text}};_t({type:"mathchoice",names:["\\mathchoice"],props:{numArgs:4},handler:function(t,e){return{type:"mathchoice",mode:t.parser.mode,display:$t(e[0]),text:$t(e[1]),script:$t(e[2]),scriptscript:$t(e[3])}},htmlBuilder:function(t,e){var r=Hr(t,e),a=ee(r,e,!1);return Dt.makeFragment(a)},mathmlBuilder:function(t,e){var r=Hr(t,e);return xe(r,e)}});var Fr=function(t,e,r,a,n,i,o){var s,l,h;if(t=Dt.makeSpan([],[t]),e){var m=oe(e,a.havingStyle(n.sup()),a);l={elem:m,kern:Math.max(a.fontMetrics().bigOpSpacing1,a.fontMetrics().bigOpSpacing3-m.depth)}}if(r){var c=oe(r,a.havingStyle(n.sub()),a);s={elem:c,kern:Math.max(a.fontMetrics().bigOpSpacing2,a.fontMetrics().bigOpSpacing4-c.height)}}if(l&&s){var u=a.fontMetrics().bigOpSpacing5+s.elem.height+s.elem.depth+s.kern+t.depth+o;h=Dt.makeVList({positionType:"bottom",positionData:u,children:[{type:"kern",size:a.fontMetrics().bigOpSpacing5},{type:"elem",elem:s.elem,marginLeft:-i+"em"},{type:"kern",size:s.kern},{type:"elem",elem:t},{type:"kern",size:l.kern},{type:"elem",elem:l.elem,marginLeft:i+"em"},{type:"kern",size:a.fontMetrics().bigOpSpacing5}]},a)}else if(s){var p=t.height-o;h=Dt.makeVList({positionType:"top",positionData:p,children:[{type:"kern",size:a.fontMetrics().bigOpSpacing5},{type:"elem",elem:s.elem,marginLeft:-i+"em"},{type:"kern",size:s.kern},{type:"elem",elem:t}]},a)}else{if(!l)return t;var d=t.depth+o;h=Dt.makeVList({positionType:"bottom",positionData:d,children:[{type:"elem",elem:t},{type:"kern",size:l.kern},{type:"elem",elem:l.elem,marginLeft:i+"em"},{type:"kern",size:a.fontMetrics().bigOpSpacing5}]},a)}return Dt.makeSpan(["mop","op-limits"],[h],a)},Vr=["\\smallint"],Ur=function(t,e){var r,a,n,i=!1;"supsub"===t.type?(r=t.sup,a=t.sub,n=Ce(t.base,"op"),i=!0):n=Ce(t,"op");var o,s=e.style,l=!1;if(s.size===w.DISPLAY.size&&n.symbol&&!c.contains(Vr,n.name)&&(l=!0),n.symbol){var h=l?"Size2-Regular":"Size1-Regular",m="";if("\\oiint"!==n.name&&"\\oiiint"!==n.name||(m=n.name.substr(1),n.name="oiint"===m?"\\iint":"\\iiint"),o=Dt.makeSymbol(n.name,h,"math",e,["mop","op-symbol",l?"large-op":"small-op"]),m.length>0){var u=o.italic,p=Dt.staticSvg(m+"Size"+(l?"2":"1"),e);o=Dt.makeVList({positionType:"individualShift",children:[{type:"elem",elem:o,shift:0},{type:"elem",elem:p,shift:l?.08:0}]},e),n.name="\\"+m,o.classes.unshift("mop"),o.italic=u}}else if(n.body){var d=ee(n.body,e,!0);1===d.length&&d[0]instanceof E?(o=d[0]).classes[0]="mop":o=Dt.makeSpan(["mop"],Dt.tryCombineChars(d),e)}else{for(var f=[],g=1;g0){for(var s=n.body.map(function(t){var e=t.text;return"string"==typeof e?{type:"textord",mode:t.mode,text:e}:t}),l=ee(s,e.withFont("mathrm"),!0),h=0;h=0?s.setAttribute("height","+"+n+"em"):(s.setAttribute("height",n+"em"),s.setAttribute("depth","+"+-n+"em")),s.setAttribute("voffset",n+"em"),s}});var jr=["\\tiny","\\sixptsize","\\scriptsize","\\footnotesize","\\small","\\normalsize","\\large","\\Large","\\LARGE","\\huge","\\Huge"];_t({type:"sizing",names:jr,props:{numArgs:0,allowedInText:!0},handler:function(t,e){var r=t.breakOnTokenText,a=t.funcName,n=t.parser,i=n.parseExpression(!1,r);return{type:"sizing",mode:n.mode,size:jr.indexOf(a)+1,body:i}},htmlBuilder:function(t,e){var r=e.havingSize(t.size);return _r(t.body,r,e)},mathmlBuilder:function(t,e){var r=e.havingSize(t.size),a=ge(t.body,r),n=new ue.MathNode("mstyle",a);return n.setAttribute("mathsize",r.sizeMultiplier+"em"),n}}),_t({type:"smash",names:["\\smash"],props:{numArgs:1,numOptionalArgs:1,allowedInText:!0},handler:function(t,e,r){var a=t.parser,n=!1,i=!1,o=r[0]&&Ce(r[0],"ordgroup");if(o)for(var s="",l=0;lr.height+r.depth+i&&(i=(i+c-r.height-r.depth)/2);var u=l.height-r.height-i-h;r.style.paddingLeft=m+"em";var p=Dt.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:r,wrapperClasses:["svg-align"]},{type:"kern",size:-(r.height+u)},{type:"elem",elem:l},{type:"kern",size:h}]},e);if(t.index){var d=e.havingStyle(w.SCRIPTSCRIPT),f=oe(t.index,d,e),g=.6*(p.height-p.depth),x=Dt.makeVList({positionType:"shift",positionData:-g,children:[{type:"elem",elem:f}]},e),v=Dt.makeSpan(["root"],[x]);return Dt.makeSpan(["mord","sqrt"],[v,p],e)}return Dt.makeSpan(["mord","sqrt"],[p],e)},mathmlBuilder:function(t,e){var r=t.body,a=t.index;return a?new ue.MathNode("mroot",[ve(r,e),ve(a,e)]):new ue.MathNode("msqrt",[ve(r,e)])}});var $r={display:w.DISPLAY,text:w.TEXT,script:w.SCRIPT,scriptscript:w.SCRIPTSCRIPT};_t({type:"styling",names:["\\displaystyle","\\textstyle","\\scriptstyle","\\scriptscriptstyle"],props:{numArgs:0,allowedInText:!0},handler:function(t,e){var r=t.breakOnTokenText,a=t.funcName,n=t.parser,i=n.parseExpression(!0,r),o=a.slice(1,a.length-5);return{type:"styling",mode:n.mode,style:o,body:i}},htmlBuilder:function(t,e){var r=$r[t.style],a=e.havingStyle(r).withFont("");return _r(t.body,a,e)},mathmlBuilder:function(t,e){var r=$r[t.style],a=e.havingStyle(r),n=ge(t.body,a),i=new ue.MathNode("mstyle",n),o={display:["0","true"],text:["0","false"],script:["1","false"],scriptscript:["2","false"]}[t.style];return i.setAttribute("scriptlevel",o[0]),i.setAttribute("displaystyle",o[1]),i}});jt({type:"supsub",htmlBuilder:function(t,e){var r=function(t,e){var r=t.base;return r?"op"===r.type?r.limits&&(e.style.size===w.DISPLAY.size||r.alwaysHandleSupSub)?Ur:null:"operatorname"===r.type?r.alwaysHandleSupSub&&(e.style.size===w.DISPLAY.size||r.limits)?Xr:null:"accent"===r.type?c.isCharacterBox(r.base)?Ie:null:"horizBrace"===r.type&&!t.sub===r.isOver?Pr:null:null}(t,e);if(r)return r(t,e);var a,n,i,o=t.base,s=t.sup,l=t.sub,h=oe(o,e),m=e.fontMetrics(),u=0,p=0,d=o&&c.isCharacterBox(o);if(s){var f=e.havingStyle(e.style.sup());a=oe(s,f,e),d||(u=h.height-f.fontMetrics().supDrop*f.sizeMultiplier/e.sizeMultiplier)}if(l){var g=e.havingStyle(e.style.sub());n=oe(l,g,e),d||(p=h.depth+g.fontMetrics().subDrop*g.sizeMultiplier/e.sizeMultiplier)}i=e.style===w.DISPLAY?m.sup1:e.style.cramped?m.sup3:m.sup2;var x,v=e.sizeMultiplier,b=.5/m.ptPerEm/v+"em",y=null;if(n){var k=t.base&&"op"===t.base.type&&t.base.name&&("\\oiint"===t.base.name||"\\oiiint"===t.base.name);(h instanceof E||k)&&(y=-h.italic+"em")}if(a&&n){u=Math.max(u,i,a.depth+.25*m.xHeight),p=Math.max(p,m.sub2);var S=4*m.defaultRuleThickness;if(u-a.depth-(n.height-p)0&&(u+=M,p-=M)}var z=[{type:"elem",elem:n,shift:p,marginRight:b,marginLeft:y},{type:"elem",elem:a,shift:-u,marginRight:b}];x=Dt.makeVList({positionType:"individualShift",children:z},e)}else if(n){p=Math.max(p,m.sub1,n.height-.8*m.xHeight);var A=[{type:"elem",elem:n,marginLeft:y,marginRight:b}];x=Dt.makeVList({positionType:"shift",positionData:p,children:A},e)}else{if(!a)throw new Error("supsub must have either sup or sub.");u=Math.max(u,i,a.depth+.25*m.xHeight),x=Dt.makeVList({positionType:"shift",positionData:-u,children:[{type:"elem",elem:a,marginRight:b}]},e)}var T=ne(h,"right")||"mord";return Dt.makeSpan([T],[h,Dt.makeSpan(["msupsub"],[x])],e)},mathmlBuilder:function(t,e){var r,a=!1;t.base&&"horizBrace"===t.base.type&&!!t.sup===t.base.isOver&&(a=!0,r=t.base.isOver),!t.base||"op"!==t.base.type&&"operatorname"!==t.base.type||(t.base.parentIsSupSub=!0);var n,i=[ve(t.base,e)];if(t.sub&&i.push(ve(t.sub,e)),t.sup&&i.push(ve(t.sup,e)),a)n=r?"mover":"munder";else if(t.sub)if(t.sup){var o=t.base;n=o&&"op"===o.type&&o.limits&&e.style===w.DISPLAY?"munderover":o&&"operatorname"===o.type&&o.alwaysHandleSupSub&&(e.style===w.DISPLAY||o.limits)?"munderover":"msubsup"}else{var s=t.base;n=s&&"op"===s.type&&s.limits&&(e.style===w.DISPLAY||s.alwaysHandleSupSub)?"munder":s&&"operatorname"===s.type&&s.alwaysHandleSupSub&&(s.limits||e.style===w.DISPLAY)?"munder":"msub"}else{var l=t.base;n=l&&"op"===l.type&&l.limits&&(e.style===w.DISPLAY||l.alwaysHandleSupSub)?"mover":l&&"operatorname"===l.type&&l.alwaysHandleSupSub&&(l.limits||e.style===w.DISPLAY)?"mover":"msup"}return new ue.MathNode(n,i)}}),jt({type:"atom",htmlBuilder:function(t,e){return Dt.mathsym(t.text,t.mode,e,["m"+t.family])},mathmlBuilder:function(t,e){var r=new ue.MathNode("mo",[pe(t.text,t.mode)]);if("bin"===t.family){var a=fe(t,e);"bold-italic"===a&&r.setAttribute("mathvariant",a)}else"punct"===t.family?r.setAttribute("separator","true"):"open"!==t.family&&"close"!==t.family||r.setAttribute("stretchy","false");return r}});var Zr={mi:"italic",mn:"normal",mtext:"normal"};jt({type:"mathord",htmlBuilder:function(t,e){return Dt.makeOrd(t,e,"mathord")},mathmlBuilder:function(t,e){var r=new ue.MathNode("mi",[pe(t.text,t.mode,e)]),a=fe(t,e)||"italic";return a!==Zr[r.type]&&r.setAttribute("mathvariant",a),r}}),jt({type:"textord",htmlBuilder:function(t,e){return Dt.makeOrd(t,e,"textord")},mathmlBuilder:function(t,e){var r,a=pe(t.text,t.mode,e),n=fe(t,e)||"normal";return r="text"===t.mode?new ue.MathNode("mtext",[a]):/[0-9]/.test(t.text)?new ue.MathNode("mn",[a]):"\\prime"===t.text?new ue.MathNode("mo",[a]):new ue.MathNode("mi",[a]),n!==Zr[r.type]&&r.setAttribute("mathvariant",n),r}});var Kr={"\\nobreak":"nobreak","\\allowbreak":"allowbreak"},Jr={" ":{},"\\ ":{},"~":{className:"nobreak"},"\\space":{},"\\nobreakspace":{className:"nobreak"}};jt({type:"spacing",htmlBuilder:function(t,e){if(Jr.hasOwnProperty(t.text)){var r=Jr[t.text].className||"";if("text"===t.mode){var a=Dt.makeOrd(t,e,"textord");return a.classes.push(r),a}return Dt.makeSpan(["mspace",r],[Dt.mathsym(t.text,t.mode,e)],e)}if(Kr.hasOwnProperty(t.text))return Dt.makeSpan(["mspace",Kr[t.text]],[],e);throw new o('Unknown type of space "'+t.text+'"')},mathmlBuilder:function(t,e){if(!Jr.hasOwnProperty(t.text)){if(Kr.hasOwnProperty(t.text))return new ue.MathNode("mspace");throw new o('Unknown type of space "'+t.text+'"')}return new ue.MathNode("mtext",[new ue.TextNode("\xa0")])}});var Qr=function(){var t=new ue.MathNode("mtd",[]);return t.setAttribute("width","50%"),t};jt({type:"tag",mathmlBuilder:function(t,e){var r=new ue.MathNode("mtable",[new ue.MathNode("mtr",[Qr(),new ue.MathNode("mtd",[xe(t.body,e)]),Qr(),new ue.MathNode("mtd",[xe(t.tag,e)])])]);return r.setAttribute("width","100%"),r}});var ta={"\\text":void 0,"\\textrm":"textrm","\\textsf":"textsf","\\texttt":"texttt","\\textnormal":"textrm"},ea={"\\textbf":"textbf","\\textmd":"textmd"},ra={"\\textit":"textit","\\textup":"textup"},aa=function(t,e){var r=t.font;return r?ta[r]?e.withTextFontFamily(ta[r]):ea[r]?e.withTextFontWeight(ea[r]):e.withTextFontShape(ra[r]):e};_t({type:"text",names:["\\text","\\textrm","\\textsf","\\texttt","\\textnormal","\\textbf","\\textmd","\\textit","\\textup"],props:{numArgs:1,argTypes:["text"],greediness:2,allowedInText:!0},handler:function(t,e){var r=t.parser,a=t.funcName,n=e[0];return{type:"text",mode:r.mode,body:$t(n),font:a}},htmlBuilder:function(t,e){var r=aa(t,e),a=ee(t.body,r,!0);return Dt.makeSpan(["mord","text"],Dt.tryCombineChars(a),r)},mathmlBuilder:function(t,e){var r=aa(t,e);return xe(t.body,r)}}),_t({type:"underline",names:["\\underline"],props:{numArgs:1,allowedInText:!0},handler:function(t,e){return{type:"underline",mode:t.parser.mode,body:e[0]}},htmlBuilder:function(t,e){var r=oe(t.body,e),a=Dt.makeLineSpan("underline-line",e),n=e.fontMetrics().defaultRuleThickness,i=Dt.makeVList({positionType:"top",positionData:r.height,children:[{type:"kern",size:n},{type:"elem",elem:a},{type:"kern",size:3*n},{type:"elem",elem:r}]},e);return Dt.makeSpan(["mord","underline"],[i],e)},mathmlBuilder:function(t,e){var r=new ue.MathNode("mo",[new ue.TextNode("\u203e")]);r.setAttribute("stretchy","true");var a=new ue.MathNode("munder",[ve(t.body,e),r]);return a.setAttribute("accentunder","true"),a}}),_t({type:"verb",names:["\\verb"],props:{numArgs:0,allowedInText:!0},handler:function(t,e,r){throw new o("\\verb ended by end of line instead of matching delimiter")},htmlBuilder:function(t,e){for(var r=na(t),a=[],n=e.havingStyle(e.style.text()),i=0;i0&&(this.undefStack[this.undefStack.length-1][t]=e)}else{var n=this.undefStack[this.undefStack.length-1];n&&!n.hasOwnProperty(t)&&(n[t]=this.current[t])}this.current[t]=e},t}(),ca={},ua=ca;function pa(t,e){ca[t]=e}pa("\\noexpand",function(t){var e=t.popToken();return t.isExpandable(e.text)&&(e.noexpand=!0,e.treatAsRelax=!0),{tokens:[e],numArgs:0}}),pa("\\expandafter",function(t){var e=t.popToken();return t.expandOnce(!0),{tokens:[e],numArgs:0}}),pa("\\@firstoftwo",function(t){return{tokens:t.consumeArgs(2)[0],numArgs:0}}),pa("\\@secondoftwo",function(t){return{tokens:t.consumeArgs(2)[1],numArgs:0}}),pa("\\@ifnextchar",function(t){var e=t.consumeArgs(3);t.consumeSpaces();var r=t.future();return 1===e[0].length&&e[0][0].text===r.text?{tokens:e[1],numArgs:0}:{tokens:e[2],numArgs:0}}),pa("\\@ifstar","\\@ifnextchar *{\\@firstoftwo{#1}}"),pa("\\TextOrMath",function(t){var e=t.consumeArgs(2);return"text"===t.mode?{tokens:e[0],numArgs:0}:{tokens:e[1],numArgs:0}});var da={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,a:10,A:10,b:11,B:11,c:12,C:12,d:13,D:13,e:14,E:14,f:15,F:15};pa("\\char",function(t){var e,r=t.popToken(),a="";if("'"===r.text)e=8,r=t.popToken();else if('"'===r.text)e=16,r=t.popToken();else if("`"===r.text)if("\\"===(r=t.popToken()).text[0])a=r.text.charCodeAt(1);else{if("EOF"===r.text)throw new o("\\char` missing argument");a=r.text.charCodeAt(0)}else e=10;if(e){if(null==(a=da[r.text])||a>=e)throw new o("Invalid base-"+e+" digit "+r.text);for(var n;null!=(n=da[t.future().text])&&n":"\\dotsb","-":"\\dotsb","*":"\\dotsb",":":"\\dotsb","\\DOTSB":"\\dotsb","\\coprod":"\\dotsb","\\bigvee":"\\dotsb","\\bigwedge":"\\dotsb","\\biguplus":"\\dotsb","\\bigcap":"\\dotsb","\\bigcup":"\\dotsb","\\prod":"\\dotsb","\\sum":"\\dotsb","\\bigotimes":"\\dotsb","\\bigoplus":"\\dotsb","\\bigodot":"\\dotsb","\\bigsqcup":"\\dotsb","\\And":"\\dotsb","\\longrightarrow":"\\dotsb","\\Longrightarrow":"\\dotsb","\\longleftarrow":"\\dotsb","\\Longleftarrow":"\\dotsb","\\longleftrightarrow":"\\dotsb","\\Longleftrightarrow":"\\dotsb","\\mapsto":"\\dotsb","\\longmapsto":"\\dotsb","\\hookrightarrow":"\\dotsb","\\doteq":"\\dotsb","\\mathbin":"\\dotsb","\\mathrel":"\\dotsb","\\relbar":"\\dotsb","\\Relbar":"\\dotsb","\\xrightarrow":"\\dotsb","\\xleftarrow":"\\dotsb","\\DOTSI":"\\dotsi","\\int":"\\dotsi","\\oint":"\\dotsi","\\iint":"\\dotsi","\\iiint":"\\dotsi","\\iiiint":"\\dotsi","\\idotsint":"\\dotsi","\\DOTSX":"\\dotsx"};pa("\\dots",function(t){var e="\\dotso",r=t.expandAfterFuture().text;return r in ga?e=ga[r]:"\\not"===r.substr(0,4)?e="\\dotsb":r in j.math&&c.contains(["bin","rel"],j.math[r].group)&&(e="\\dotsb"),e});var xa={")":!0,"]":!0,"\\rbrack":!0,"\\}":!0,"\\rbrace":!0,"\\rangle":!0,"\\rceil":!0,"\\rfloor":!0,"\\rgroup":!0,"\\rmoustache":!0,"\\right":!0,"\\bigr":!0,"\\biggr":!0,"\\Bigr":!0,"\\Biggr":!0,$:!0,";":!0,".":!0,",":!0};pa("\\dotso",function(t){return t.future().text in xa?"\\ldots\\,":"\\ldots"}),pa("\\dotsc",function(t){var e=t.future().text;return e in xa&&","!==e?"\\ldots\\,":"\\ldots"}),pa("\\cdots",function(t){return t.future().text in xa?"\\@cdots\\,":"\\@cdots"}),pa("\\dotsb","\\cdots"),pa("\\dotsm","\\cdots"),pa("\\dotsi","\\!\\cdots"),pa("\\dotsx","\\ldots\\,"),pa("\\DOTSI","\\relax"),pa("\\DOTSB","\\relax"),pa("\\DOTSX","\\relax"),pa("\\tmspace","\\TextOrMath{\\kern#1#3}{\\mskip#1#2}\\relax"),pa("\\,","\\tmspace+{3mu}{.1667em}"),pa("\\thinspace","\\,"),pa("\\>","\\mskip{4mu}"),pa("\\:","\\tmspace+{4mu}{.2222em}"),pa("\\medspace","\\:"),pa("\\;","\\tmspace+{5mu}{.2777em}"),pa("\\thickspace","\\;"),pa("\\!","\\tmspace-{3mu}{.1667em}"),pa("\\negthinspace","\\!"),pa("\\negmedspace","\\tmspace-{4mu}{.2222em}"),pa("\\negthickspace","\\tmspace-{5mu}{.277em}"),pa("\\enspace","\\kern.5em "),pa("\\enskip","\\hskip.5em\\relax"),pa("\\quad","\\hskip1em\\relax"),pa("\\qquad","\\hskip2em\\relax"),pa("\\tag","\\@ifstar\\tag@literal\\tag@paren"),pa("\\tag@paren","\\tag@literal{({#1})}"),pa("\\tag@literal",function(t){if(t.macros.get("\\df@tag"))throw new o("Multiple \\tag");return"\\gdef\\df@tag{\\text{#1}}"}),pa("\\bmod","\\mathchoice{\\mskip1mu}{\\mskip1mu}{\\mskip5mu}{\\mskip5mu}\\mathbin{\\rm mod}\\mathchoice{\\mskip1mu}{\\mskip1mu}{\\mskip5mu}{\\mskip5mu}"),pa("\\pod","\\allowbreak\\mathchoice{\\mkern18mu}{\\mkern8mu}{\\mkern8mu}{\\mkern8mu}(#1)"),pa("\\pmod","\\pod{{\\rm mod}\\mkern6mu#1}"),pa("\\mod","\\allowbreak\\mathchoice{\\mkern18mu}{\\mkern12mu}{\\mkern12mu}{\\mkern12mu}{\\rm mod}\\,\\,#1"),pa("\\pmb","\\html@mathml{\\@binrel{#1}{\\mathrlap{#1}\\kern0.5px#1}}{\\mathbf{#1}}"),pa("\\\\","\\newline"),pa("\\TeX","\\textrm{\\html@mathml{T\\kern-.1667em\\raisebox{-.5ex}{E}\\kern-.125emX}{TeX}}");var va=F["Main-Regular"]["T".charCodeAt(0)][1]-.7*F["Main-Regular"]["A".charCodeAt(0)][1]+"em";pa("\\LaTeX","\\textrm{\\html@mathml{L\\kern-.36em\\raisebox{"+va+"}{\\scriptstyle A}\\kern-.15em\\TeX}{LaTeX}}"),pa("\\KaTeX","\\textrm{\\html@mathml{K\\kern-.17em\\raisebox{"+va+"}{\\scriptstyle A}\\kern-.15em\\TeX}{KaTeX}}"),pa("\\hspace","\\@ifstar\\@hspacer\\@hspace"),pa("\\@hspace","\\hskip #1\\relax"),pa("\\@hspacer","\\rule{0pt}{0pt}\\hskip #1\\relax"),pa("\\ordinarycolon",":"),pa("\\vcentcolon","\\mathrel{\\mathop\\ordinarycolon}"),pa("\\dblcolon",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-.9mu}\\vcentcolon}}{\\mathop{\\char"2237}}'),pa("\\coloneqq",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}=}}{\\mathop{\\char"2254}}'),pa("\\Coloneqq",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}=}}{\\mathop{\\char"2237\\char"3d}}'),pa("\\coloneq",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}}{\\mathop{\\char"3a\\char"2212}}'),pa("\\Coloneq",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}}{\\mathop{\\char"2237\\char"2212}}'),pa("\\eqqcolon",'\\html@mathml{\\mathrel{=\\mathrel{\\mkern-1.2mu}\\vcentcolon}}{\\mathop{\\char"2255}}'),pa("\\Eqqcolon",'\\html@mathml{\\mathrel{=\\mathrel{\\mkern-1.2mu}\\dblcolon}}{\\mathop{\\char"3d\\char"2237}}'),pa("\\eqcolon",'\\html@mathml{\\mathrel{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\vcentcolon}}{\\mathop{\\char"2239}}'),pa("\\Eqcolon",'\\html@mathml{\\mathrel{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\dblcolon}}{\\mathop{\\char"2212\\char"2237}}'),pa("\\colonapprox",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\approx}}{\\mathop{\\char"3a\\char"2248}}'),pa("\\Colonapprox",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\approx}}{\\mathop{\\char"2237\\char"2248}}'),pa("\\colonsim",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\sim}}{\\mathop{\\char"3a\\char"223c}}'),pa("\\Colonsim",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\sim}}{\\mathop{\\char"2237\\char"223c}}'),pa("\u2237","\\dblcolon"),pa("\u2239","\\eqcolon"),pa("\u2254","\\coloneqq"),pa("\u2255","\\eqqcolon"),pa("\u2a74","\\Coloneqq"),pa("\\ratio","\\vcentcolon"),pa("\\coloncolon","\\dblcolon"),pa("\\colonequals","\\coloneqq"),pa("\\coloncolonequals","\\Coloneqq"),pa("\\equalscolon","\\eqqcolon"),pa("\\equalscoloncolon","\\Eqqcolon"),pa("\\colonminus","\\coloneq"),pa("\\coloncolonminus","\\Coloneq"),pa("\\minuscolon","\\eqcolon"),pa("\\minuscoloncolon","\\Eqcolon"),pa("\\coloncolonapprox","\\Colonapprox"),pa("\\coloncolonsim","\\Colonsim"),pa("\\simcolon","\\mathrel{\\sim\\mathrel{\\mkern-1.2mu}\\vcentcolon}"),pa("\\simcoloncolon","\\mathrel{\\sim\\mathrel{\\mkern-1.2mu}\\dblcolon}"),pa("\\approxcolon","\\mathrel{\\approx\\mathrel{\\mkern-1.2mu}\\vcentcolon}"),pa("\\approxcoloncolon","\\mathrel{\\approx\\mathrel{\\mkern-1.2mu}\\dblcolon}"),pa("\\notni","\\html@mathml{\\not\\ni}{\\mathrel{\\char`\u220c}}"),pa("\\limsup","\\DOTSB\\operatorname*{lim\\,sup}"),pa("\\liminf","\\DOTSB\\operatorname*{lim\\,inf}"),pa("\\gvertneqq","\\html@mathml{\\@gvertneqq}{\u2269}"),pa("\\lvertneqq","\\html@mathml{\\@lvertneqq}{\u2268}"),pa("\\ngeqq","\\html@mathml{\\@ngeqq}{\u2271}"),pa("\\ngeqslant","\\html@mathml{\\@ngeqslant}{\u2271}"),pa("\\nleqq","\\html@mathml{\\@nleqq}{\u2270}"),pa("\\nleqslant","\\html@mathml{\\@nleqslant}{\u2270}"),pa("\\nshortmid","\\html@mathml{\\@nshortmid}{\u2224}"),pa("\\nshortparallel","\\html@mathml{\\@nshortparallel}{\u2226}"),pa("\\nsubseteqq","\\html@mathml{\\@nsubseteqq}{\u2288}"),pa("\\nsupseteqq","\\html@mathml{\\@nsupseteqq}{\u2289}"),pa("\\varsubsetneq","\\html@mathml{\\@varsubsetneq}{\u228a}"),pa("\\varsubsetneqq","\\html@mathml{\\@varsubsetneqq}{\u2acb}"),pa("\\varsupsetneq","\\html@mathml{\\@varsupsetneq}{\u228b}"),pa("\\varsupsetneqq","\\html@mathml{\\@varsupsetneqq}{\u2acc}"),pa("\\imath","\\html@mathml{\\@imath}{\u0131}"),pa("\\jmath","\\html@mathml{\\@jmath}{\u0237}"),pa("\\llbracket","\\html@mathml{\\mathopen{[\\mkern-3.2mu[}}{\\mathopen{\\char`\u27e6}}"),pa("\\rrbracket","\\html@mathml{\\mathclose{]\\mkern-3.2mu]}}{\\mathclose{\\char`\u27e7}}"),pa("\u27e6","\\llbracket"),pa("\u27e7","\\rrbracket"),pa("\\lBrace","\\html@mathml{\\mathopen{\\{\\mkern-3.2mu[}}{\\mathopen{\\char`\u2983}}"),pa("\\rBrace","\\html@mathml{\\mathclose{]\\mkern-3.2mu\\}}}{\\mathclose{\\char`\u2984}}"),pa("\u2983","\\lBrace"),pa("\u2984","\\rBrace"),pa("\\minuso","\\mathbin{\\html@mathml{{\\mathrlap{\\mathchoice{\\kern{0.145em}}{\\kern{0.145em}}{\\kern{0.1015em}}{\\kern{0.0725em}}\\circ}{-}}}{\\char`\u29b5}}"),pa("\u29b5","\\minuso"),pa("\\darr","\\downarrow"),pa("\\dArr","\\Downarrow"),pa("\\Darr","\\Downarrow"),pa("\\lang","\\langle"),pa("\\rang","\\rangle"),pa("\\uarr","\\uparrow"),pa("\\uArr","\\Uparrow"),pa("\\Uarr","\\Uparrow"),pa("\\N","\\mathbb{N}"),pa("\\R","\\mathbb{R}"),pa("\\Z","\\mathbb{Z}"),pa("\\alef","\\aleph"),pa("\\alefsym","\\aleph"),pa("\\Alpha","\\mathrm{A}"),pa("\\Beta","\\mathrm{B}"),pa("\\bull","\\bullet"),pa("\\Chi","\\mathrm{X}"),pa("\\clubs","\\clubsuit"),pa("\\cnums","\\mathbb{C}"),pa("\\Complex","\\mathbb{C}"),pa("\\Dagger","\\ddagger"),pa("\\diamonds","\\diamondsuit"),pa("\\empty","\\emptyset"),pa("\\Epsilon","\\mathrm{E}"),pa("\\Eta","\\mathrm{H}"),pa("\\exist","\\exists"),pa("\\harr","\\leftrightarrow"),pa("\\hArr","\\Leftrightarrow"),pa("\\Harr","\\Leftrightarrow"),pa("\\hearts","\\heartsuit"),pa("\\image","\\Im"),pa("\\infin","\\infty"),pa("\\Iota","\\mathrm{I}"),pa("\\isin","\\in"),pa("\\Kappa","\\mathrm{K}"),pa("\\larr","\\leftarrow"),pa("\\lArr","\\Leftarrow"),pa("\\Larr","\\Leftarrow"),pa("\\lrarr","\\leftrightarrow"),pa("\\lrArr","\\Leftrightarrow"),pa("\\Lrarr","\\Leftrightarrow"),pa("\\Mu","\\mathrm{M}"),pa("\\natnums","\\mathbb{N}"),pa("\\Nu","\\mathrm{N}"),pa("\\Omicron","\\mathrm{O}"),pa("\\plusmn","\\pm"),pa("\\rarr","\\rightarrow"),pa("\\rArr","\\Rightarrow"),pa("\\Rarr","\\Rightarrow"),pa("\\real","\\Re"),pa("\\reals","\\mathbb{R}"),pa("\\Reals","\\mathbb{R}"),pa("\\Rho","\\mathrm{P}"),pa("\\sdot","\\cdot"),pa("\\sect","\\S"),pa("\\spades","\\spadesuit"),pa("\\sub","\\subset"),pa("\\sube","\\subseteq"),pa("\\supe","\\supseteq"),pa("\\Tau","\\mathrm{T}"),pa("\\thetasym","\\vartheta"),pa("\\weierp","\\wp"),pa("\\Zeta","\\mathrm{Z}"),pa("\\argmin","\\DOTSB\\operatorname*{arg\\,min}"),pa("\\argmax","\\DOTSB\\operatorname*{arg\\,max}"),pa("\\plim","\\DOTSB\\mathop{\\operatorname{plim}}\\limits"),pa("\\bra","\\mathinner{\\langle{#1}|}"),pa("\\ket","\\mathinner{|{#1}\\rangle}"),pa("\\braket","\\mathinner{\\langle{#1}\\rangle}"),pa("\\Bra","\\left\\langle#1\\right|"),pa("\\Ket","\\left|#1\\right\\rangle"),pa("\\blue","\\textcolor{##6495ed}{#1}"),pa("\\orange","\\textcolor{##ffa500}{#1}"),pa("\\pink","\\textcolor{##ff00af}{#1}"),pa("\\red","\\textcolor{##df0030}{#1}"),pa("\\green","\\textcolor{##28ae7b}{#1}"),pa("\\gray","\\textcolor{gray}{#1}"),pa("\\purple","\\textcolor{##9d38bd}{#1}"),pa("\\blueA","\\textcolor{##ccfaff}{#1}"),pa("\\blueB","\\textcolor{##80f6ff}{#1}"),pa("\\blueC","\\textcolor{##63d9ea}{#1}"),pa("\\blueD","\\textcolor{##11accd}{#1}"),pa("\\blueE","\\textcolor{##0c7f99}{#1}"),pa("\\tealA","\\textcolor{##94fff5}{#1}"),pa("\\tealB","\\textcolor{##26edd5}{#1}"),pa("\\tealC","\\textcolor{##01d1c1}{#1}"),pa("\\tealD","\\textcolor{##01a995}{#1}"),pa("\\tealE","\\textcolor{##208170}{#1}"),pa("\\greenA","\\textcolor{##b6ffb0}{#1}"),pa("\\greenB","\\textcolor{##8af281}{#1}"),pa("\\greenC","\\textcolor{##74cf70}{#1}"),pa("\\greenD","\\textcolor{##1fab54}{#1}"),pa("\\greenE","\\textcolor{##0d923f}{#1}"),pa("\\goldA","\\textcolor{##ffd0a9}{#1}"),pa("\\goldB","\\textcolor{##ffbb71}{#1}"),pa("\\goldC","\\textcolor{##ff9c39}{#1}"),pa("\\goldD","\\textcolor{##e07d10}{#1}"),pa("\\goldE","\\textcolor{##a75a05}{#1}"),pa("\\redA","\\textcolor{##fca9a9}{#1}"),pa("\\redB","\\textcolor{##ff8482}{#1}"),pa("\\redC","\\textcolor{##f9685d}{#1}"),pa("\\redD","\\textcolor{##e84d39}{#1}"),pa("\\redE","\\textcolor{##bc2612}{#1}"),pa("\\maroonA","\\textcolor{##ffbde0}{#1}"),pa("\\maroonB","\\textcolor{##ff92c6}{#1}"),pa("\\maroonC","\\textcolor{##ed5fa6}{#1}"),pa("\\maroonD","\\textcolor{##ca337c}{#1}"),pa("\\maroonE","\\textcolor{##9e034e}{#1}"),pa("\\purpleA","\\textcolor{##ddd7ff}{#1}"),pa("\\purpleB","\\textcolor{##c6b9fc}{#1}"),pa("\\purpleC","\\textcolor{##aa87ff}{#1}"),pa("\\purpleD","\\textcolor{##7854ab}{#1}"),pa("\\purpleE","\\textcolor{##543b78}{#1}"),pa("\\mintA","\\textcolor{##f5f9e8}{#1}"),pa("\\mintB","\\textcolor{##edf2df}{#1}"),pa("\\mintC","\\textcolor{##e0e5cc}{#1}"),pa("\\grayA","\\textcolor{##f6f7f7}{#1}"),pa("\\grayB","\\textcolor{##f0f1f2}{#1}"),pa("\\grayC","\\textcolor{##e3e5e6}{#1}"),pa("\\grayD","\\textcolor{##d6d8da}{#1}"),pa("\\grayE","\\textcolor{##babec2}{#1}"),pa("\\grayF","\\textcolor{##888d93}{#1}"),pa("\\grayG","\\textcolor{##626569}{#1}"),pa("\\grayH","\\textcolor{##3b3e40}{#1}"),pa("\\grayI","\\textcolor{##21242c}{#1}"),pa("\\kaBlue","\\textcolor{##314453}{#1}"),pa("\\kaGreen","\\textcolor{##71B307}{#1}");var ba={"\\relax":!0,"^":!0,_:!0,"\\limits":!0,"\\nolimits":!0},ya=function(){function t(t,e,r){this.settings=void 0,this.expansionCount=void 0,this.lexer=void 0,this.macros=void 0,this.stack=void 0,this.mode=void 0,this.settings=e,this.expansionCount=0,this.feed(t),this.macros=new ma(ua,e.macros),this.mode=r,this.stack=[]}var e=t.prototype;return e.feed=function(t){this.lexer=new ha(t,this.settings)},e.switchMode=function(t){this.mode=t},e.beginGroup=function(){this.macros.beginGroup()},e.endGroup=function(){this.macros.endGroup()},e.future=function(){return 0===this.stack.length&&this.pushToken(this.lexer.lex()),this.stack[this.stack.length-1]},e.popToken=function(){return this.future(),this.stack.pop()},e.pushToken=function(t){this.stack.push(t)},e.pushTokens=function(t){var e;(e=this.stack).push.apply(e,t)},e.consumeSpaces=function(){for(;;){if(" "!==this.future().text)break;this.stack.pop()}},e.consumeArgs=function(t){for(var e=[],r=0;rthis.settings.maxExpand)throw new o("Too many expansions: infinite loop or need to increase maxExpand setting");var n=a.tokens;if(a.numArgs)for(var i=this.consumeArgs(a.numArgs),s=(n=n.slice()).length-1;s>=0;--s){var l=n[s];if("#"===l.text){if(0===s)throw new o("Incomplete placeholder at end of macro body",l);if("#"===(l=n[--s]).text)n.splice(s+1,1);else{if(!/^[1-9]$/.test(l.text))throw new o("Not a valid argument number",l);var h;(h=n).splice.apply(h,[s,2].concat(i[+l.text-1]))}}}return this.pushTokens(n),n},e.expandAfterFuture=function(){return this.expandOnce(),this.future()},e.expandNextToken=function(){for(;;){var t=this.expandOnce();if(t instanceof n){if("\\relax"!==t.text&&!t.treatAsRelax)return this.stack.pop();this.stack.pop()}}throw new Error},e.expandMacro=function(t){return this.macros.has(t)?this.expandTokens([new n(t)]):void 0},e.expandTokens=function(t){var e=[],r=this.stack.length;for(this.pushTokens(t);this.stack.length>r;){var a=this.expandOnce(!0);a instanceof n&&(a.treatAsRelax&&(a.noexpand=!1,a.treatAsRelax=!1),e.push(this.stack.pop()))}return e},e.expandMacroAsText=function(t){var e=this.expandMacro(t);return e?e.map(function(t){return t.text}).join(""):e},e._getExpansion=function(t){var e=this.macros.get(t);if(null==e)return e;var r="function"==typeof e?e(this):e;if("string"==typeof r){var a=0;if(-1!==r.indexOf("#"))for(var n=r.replace(/##/g,"");-1!==n.indexOf("#"+(a+1));)++a;for(var i=new ha(r,this.settings),o=[],s=i.lex();"EOF"!==s.text;)o.push(s),s=i.lex();return o.reverse(),{tokens:o,numArgs:a}}return r},e.isDefined=function(t){return this.macros.has(t)||ia.hasOwnProperty(t)||j.math.hasOwnProperty(t)||j.text.hasOwnProperty(t)||ba.hasOwnProperty(t)},e.isExpandable=function(t){var e=this.macros.get(t);return null!=e?"string"==typeof e||"function"==typeof e||!e.unexpandable:ia.hasOwnProperty(t)},t}(),wa={"\u0301":{text:"\\'",math:"\\acute"},"\u0300":{text:"\\`",math:"\\grave"},"\u0308":{text:'\\"',math:"\\ddot"},"\u0303":{text:"\\~",math:"\\tilde"},"\u0304":{text:"\\=",math:"\\bar"},"\u0306":{text:"\\u",math:"\\breve"},"\u030c":{text:"\\v",math:"\\check"},"\u0302":{text:"\\^",math:"\\hat"},"\u0307":{text:"\\.",math:"\\dot"},"\u030a":{text:"\\r",math:"\\mathring"},"\u030b":{text:"\\H"}},ka={"\xe1":"a\u0301","\xe0":"a\u0300","\xe4":"a\u0308","\u01df":"a\u0308\u0304","\xe3":"a\u0303","\u0101":"a\u0304","\u0103":"a\u0306","\u1eaf":"a\u0306\u0301","\u1eb1":"a\u0306\u0300","\u1eb5":"a\u0306\u0303","\u01ce":"a\u030c","\xe2":"a\u0302","\u1ea5":"a\u0302\u0301","\u1ea7":"a\u0302\u0300","\u1eab":"a\u0302\u0303","\u0227":"a\u0307","\u01e1":"a\u0307\u0304","\xe5":"a\u030a","\u01fb":"a\u030a\u0301","\u1e03":"b\u0307","\u0107":"c\u0301","\u010d":"c\u030c","\u0109":"c\u0302","\u010b":"c\u0307","\u010f":"d\u030c","\u1e0b":"d\u0307","\xe9":"e\u0301","\xe8":"e\u0300","\xeb":"e\u0308","\u1ebd":"e\u0303","\u0113":"e\u0304","\u1e17":"e\u0304\u0301","\u1e15":"e\u0304\u0300","\u0115":"e\u0306","\u011b":"e\u030c","\xea":"e\u0302","\u1ebf":"e\u0302\u0301","\u1ec1":"e\u0302\u0300","\u1ec5":"e\u0302\u0303","\u0117":"e\u0307","\u1e1f":"f\u0307","\u01f5":"g\u0301","\u1e21":"g\u0304","\u011f":"g\u0306","\u01e7":"g\u030c","\u011d":"g\u0302","\u0121":"g\u0307","\u1e27":"h\u0308","\u021f":"h\u030c","\u0125":"h\u0302","\u1e23":"h\u0307","\xed":"i\u0301","\xec":"i\u0300","\xef":"i\u0308","\u1e2f":"i\u0308\u0301","\u0129":"i\u0303","\u012b":"i\u0304","\u012d":"i\u0306","\u01d0":"i\u030c","\xee":"i\u0302","\u01f0":"j\u030c","\u0135":"j\u0302","\u1e31":"k\u0301","\u01e9":"k\u030c","\u013a":"l\u0301","\u013e":"l\u030c","\u1e3f":"m\u0301","\u1e41":"m\u0307","\u0144":"n\u0301","\u01f9":"n\u0300","\xf1":"n\u0303","\u0148":"n\u030c","\u1e45":"n\u0307","\xf3":"o\u0301","\xf2":"o\u0300","\xf6":"o\u0308","\u022b":"o\u0308\u0304","\xf5":"o\u0303","\u1e4d":"o\u0303\u0301","\u1e4f":"o\u0303\u0308","\u022d":"o\u0303\u0304","\u014d":"o\u0304","\u1e53":"o\u0304\u0301","\u1e51":"o\u0304\u0300","\u014f":"o\u0306","\u01d2":"o\u030c","\xf4":"o\u0302","\u1ed1":"o\u0302\u0301","\u1ed3":"o\u0302\u0300","\u1ed7":"o\u0302\u0303","\u022f":"o\u0307","\u0231":"o\u0307\u0304","\u0151":"o\u030b","\u1e55":"p\u0301","\u1e57":"p\u0307","\u0155":"r\u0301","\u0159":"r\u030c","\u1e59":"r\u0307","\u015b":"s\u0301","\u1e65":"s\u0301\u0307","\u0161":"s\u030c","\u1e67":"s\u030c\u0307","\u015d":"s\u0302","\u1e61":"s\u0307","\u1e97":"t\u0308","\u0165":"t\u030c","\u1e6b":"t\u0307","\xfa":"u\u0301","\xf9":"u\u0300","\xfc":"u\u0308","\u01d8":"u\u0308\u0301","\u01dc":"u\u0308\u0300","\u01d6":"u\u0308\u0304","\u01da":"u\u0308\u030c","\u0169":"u\u0303","\u1e79":"u\u0303\u0301","\u016b":"u\u0304","\u1e7b":"u\u0304\u0308","\u016d":"u\u0306","\u01d4":"u\u030c","\xfb":"u\u0302","\u016f":"u\u030a","\u0171":"u\u030b","\u1e7d":"v\u0303","\u1e83":"w\u0301","\u1e81":"w\u0300","\u1e85":"w\u0308","\u0175":"w\u0302","\u1e87":"w\u0307","\u1e98":"w\u030a","\u1e8d":"x\u0308","\u1e8b":"x\u0307","\xfd":"y\u0301","\u1ef3":"y\u0300","\xff":"y\u0308","\u1ef9":"y\u0303","\u0233":"y\u0304","\u0177":"y\u0302","\u1e8f":"y\u0307","\u1e99":"y\u030a","\u017a":"z\u0301","\u017e":"z\u030c","\u1e91":"z\u0302","\u017c":"z\u0307","\xc1":"A\u0301","\xc0":"A\u0300","\xc4":"A\u0308","\u01de":"A\u0308\u0304","\xc3":"A\u0303","\u0100":"A\u0304","\u0102":"A\u0306","\u1eae":"A\u0306\u0301","\u1eb0":"A\u0306\u0300","\u1eb4":"A\u0306\u0303","\u01cd":"A\u030c","\xc2":"A\u0302","\u1ea4":"A\u0302\u0301","\u1ea6":"A\u0302\u0300","\u1eaa":"A\u0302\u0303","\u0226":"A\u0307","\u01e0":"A\u0307\u0304","\xc5":"A\u030a","\u01fa":"A\u030a\u0301","\u1e02":"B\u0307","\u0106":"C\u0301","\u010c":"C\u030c","\u0108":"C\u0302","\u010a":"C\u0307","\u010e":"D\u030c","\u1e0a":"D\u0307","\xc9":"E\u0301","\xc8":"E\u0300","\xcb":"E\u0308","\u1ebc":"E\u0303","\u0112":"E\u0304","\u1e16":"E\u0304\u0301","\u1e14":"E\u0304\u0300","\u0114":"E\u0306","\u011a":"E\u030c","\xca":"E\u0302","\u1ebe":"E\u0302\u0301","\u1ec0":"E\u0302\u0300","\u1ec4":"E\u0302\u0303","\u0116":"E\u0307","\u1e1e":"F\u0307","\u01f4":"G\u0301","\u1e20":"G\u0304","\u011e":"G\u0306","\u01e6":"G\u030c","\u011c":"G\u0302","\u0120":"G\u0307","\u1e26":"H\u0308","\u021e":"H\u030c","\u0124":"H\u0302","\u1e22":"H\u0307","\xcd":"I\u0301","\xcc":"I\u0300","\xcf":"I\u0308","\u1e2e":"I\u0308\u0301","\u0128":"I\u0303","\u012a":"I\u0304","\u012c":"I\u0306","\u01cf":"I\u030c","\xce":"I\u0302","\u0130":"I\u0307","\u0134":"J\u0302","\u1e30":"K\u0301","\u01e8":"K\u030c","\u0139":"L\u0301","\u013d":"L\u030c","\u1e3e":"M\u0301","\u1e40":"M\u0307","\u0143":"N\u0301","\u01f8":"N\u0300","\xd1":"N\u0303","\u0147":"N\u030c","\u1e44":"N\u0307","\xd3":"O\u0301","\xd2":"O\u0300","\xd6":"O\u0308","\u022a":"O\u0308\u0304","\xd5":"O\u0303","\u1e4c":"O\u0303\u0301","\u1e4e":"O\u0303\u0308","\u022c":"O\u0303\u0304","\u014c":"O\u0304","\u1e52":"O\u0304\u0301","\u1e50":"O\u0304\u0300","\u014e":"O\u0306","\u01d1":"O\u030c","\xd4":"O\u0302","\u1ed0":"O\u0302\u0301","\u1ed2":"O\u0302\u0300","\u1ed6":"O\u0302\u0303","\u022e":"O\u0307","\u0230":"O\u0307\u0304","\u0150":"O\u030b","\u1e54":"P\u0301","\u1e56":"P\u0307","\u0154":"R\u0301","\u0158":"R\u030c","\u1e58":"R\u0307","\u015a":"S\u0301","\u1e64":"S\u0301\u0307","\u0160":"S\u030c","\u1e66":"S\u030c\u0307","\u015c":"S\u0302","\u1e60":"S\u0307","\u0164":"T\u030c","\u1e6a":"T\u0307","\xda":"U\u0301","\xd9":"U\u0300","\xdc":"U\u0308","\u01d7":"U\u0308\u0301","\u01db":"U\u0308\u0300","\u01d5":"U\u0308\u0304","\u01d9":"U\u0308\u030c","\u0168":"U\u0303","\u1e78":"U\u0303\u0301","\u016a":"U\u0304","\u1e7a":"U\u0304\u0308","\u016c":"U\u0306","\u01d3":"U\u030c","\xdb":"U\u0302","\u016e":"U\u030a","\u0170":"U\u030b","\u1e7c":"V\u0303","\u1e82":"W\u0301","\u1e80":"W\u0300","\u1e84":"W\u0308","\u0174":"W\u0302","\u1e86":"W\u0307","\u1e8c":"X\u0308","\u1e8a":"X\u0307","\xdd":"Y\u0301","\u1ef2":"Y\u0300","\u0178":"Y\u0308","\u1ef8":"Y\u0303","\u0232":"Y\u0304","\u0176":"Y\u0302","\u1e8e":"Y\u0307","\u0179":"Z\u0301","\u017d":"Z\u030c","\u1e90":"Z\u0302","\u017b":"Z\u0307","\u03ac":"\u03b1\u0301","\u1f70":"\u03b1\u0300","\u1fb1":"\u03b1\u0304","\u1fb0":"\u03b1\u0306","\u03ad":"\u03b5\u0301","\u1f72":"\u03b5\u0300","\u03ae":"\u03b7\u0301","\u1f74":"\u03b7\u0300","\u03af":"\u03b9\u0301","\u1f76":"\u03b9\u0300","\u03ca":"\u03b9\u0308","\u0390":"\u03b9\u0308\u0301","\u1fd2":"\u03b9\u0308\u0300","\u1fd1":"\u03b9\u0304","\u1fd0":"\u03b9\u0306","\u03cc":"\u03bf\u0301","\u1f78":"\u03bf\u0300","\u03cd":"\u03c5\u0301","\u1f7a":"\u03c5\u0300","\u03cb":"\u03c5\u0308","\u03b0":"\u03c5\u0308\u0301","\u1fe2":"\u03c5\u0308\u0300","\u1fe1":"\u03c5\u0304","\u1fe0":"\u03c5\u0306","\u03ce":"\u03c9\u0301","\u1f7c":"\u03c9\u0300","\u038e":"\u03a5\u0301","\u1fea":"\u03a5\u0300","\u03ab":"\u03a5\u0308","\u1fe9":"\u03a5\u0304","\u1fe8":"\u03a5\u0306","\u038f":"\u03a9\u0301","\u1ffa":"\u03a9\u0300"},Sa=function(){function t(t,e){this.mode=void 0,this.gullet=void 0,this.settings=void 0,this.leftrightDepth=void 0,this.nextToken=void 0,this.mode="math",this.gullet=new ya(t,e,this.mode),this.settings=e,this.leftrightDepth=0}var e=t.prototype;return e.expect=function(t,e){if(void 0===e&&(e=!0),this.fetch().text!==t)throw new o("Expected '"+t+"', got '"+this.fetch().text+"'",this.fetch());e&&this.consume()},e.consume=function(){this.nextToken=null},e.fetch=function(){return null==this.nextToken&&(this.nextToken=this.gullet.expandNextToken()),this.nextToken},e.switchMode=function(t){this.mode=t,this.gullet.switchMode(t)},e.parse=function(){this.settings.globalGroup||this.gullet.beginGroup(),this.settings.colorIsTextColor&&this.gullet.macros.set("\\color","\\textcolor");var t=this.parseExpression(!1);return this.expect("EOF"),this.settings.globalGroup||this.gullet.endGroup(),t},e.parseExpression=function(e,r){for(var a=[];;){"math"===this.mode&&this.consumeSpaces();var n=this.fetch();if(-1!==t.endOfExpression.indexOf(n.text))break;if(r&&n.text===r)break;if(e&&ia[n.text]&&ia[n.text].infix)break;var i=this.parseAtom(r);if(!i)break;"internal"!==i.type&&a.push(i)}return"text"===this.mode&&this.formLigatures(a),this.handleInfixNodes(a)},e.handleInfixNodes=function(t){for(var e,r=-1,a=0;a0&&!h||0===s&&!h&&"math"===this.mode,c=this.parseGroupOfType("argument to '"+t+"'",l,h,a,m);if(!c){if(h){i.push(null);continue}throw new o("Expected group after '"+t+"'",this.fetch())}(h?i:n).push(c)}return{args:n,optArgs:i}},e.parseGroupOfType=function(t,e,r,a,n){switch(e){case"color":return n&&this.consumeSpaces(),this.parseColorGroup(r);case"size":return n&&this.consumeSpaces(),this.parseSizeGroup(r);case"url":return this.parseUrlGroup(r,n);case"math":case"text":return this.parseGroup(t,r,a,void 0,e,n);case"hbox":var i=this.parseGroup(t,r,a,void 0,"text",n);return i?{type:"styling",mode:i.mode,body:[i],style:"text"}:i;case"raw":if(n&&this.consumeSpaces(),r&&"{"===this.fetch().text)return null;var s=this.parseStringGroup("raw",r,!0);if(s)return{type:"raw",mode:"text",string:s.text};throw new o("Expected raw group",this.fetch());case"original":case null:case void 0:return this.parseGroup(t,r,a,void 0,void 0,n);default:throw new o("Unknown group type as "+t,this.fetch())}},e.consumeSpaces=function(){for(;" "===this.fetch().text;)this.consume()},e.parseStringGroup=function(t,e,r){var a=e?"[":"{",n=e?"]":"}",i=this.fetch();if(i.text!==a){if(e)return null;if(r&&"EOF"!==i.text&&/[^{}[\]]/.test(i.text))return this.consume(),i}var s=this.mode;this.mode="text",this.expect(a);for(var l,h="",m=this.fetch(),c=0,u=m;(l=this.fetch()).text!==n||r&&c>0;){switch(l.text){case"EOF":throw new o("Unexpected end of input in "+t,m.range(u,h));case a:c++;break;case n:c--}h+=(u=l).text,this.consume()}return this.expect(n),this.mode=s,m.range(u,h)},e.parseRegexGroup=function(t,e){var r=this.mode;this.mode="text";for(var a,n=this.fetch(),i=n,s="";"EOF"!==(a=this.fetch()).text&&t.test(s+a.text);)s+=(i=a).text,this.consume();if(""===s)throw new o("Invalid "+e+": '"+n.text+"'",n);return this.mode=r,n.range(i,s)},e.parseColorGroup=function(t){var e=this.parseStringGroup("color",t);if(!e)return null;var r=/^(#[a-f0-9]{3}|#?[a-f0-9]{6}|[a-z]+)$/i.exec(e.text);if(!r)throw new o("Invalid color: '"+e.text+"'",e);var a=r[0];return/^[0-9a-f]{6}$/i.test(a)&&(a="#"+a),{type:"color-token",mode:this.mode,color:a}},e.parseSizeGroup=function(t){var e,r=!1;if(!(e=t||"{"===this.fetch().text?this.parseStringGroup("size",t):this.parseRegexGroup(/^[-+]? *(?:$|\d+|\d+\.\d*|\.\d*) *[a-z]{0,2} *$/,"size")))return null;t||0!==e.text.length||(e.text="0pt",r=!0);var a=/([-+]?) *(\d+(?:\.\d*)?|\.\d+) *([a-z]{2})/.exec(e.text);if(!a)throw new o("Invalid size: '"+e.text+"'",e);var n={number:+(a[1]+a[2]),unit:a[3]};if(!At(n))throw new o("Invalid unit: '"+n.unit+"'",e);return{type:"size",mode:this.mode,value:n,isBlank:r}},e.parseUrlGroup=function(t,e){this.gullet.lexer.setCatcode("%",13);var r=this.parseStringGroup("url",t,!0);if(this.gullet.lexer.setCatcode("%",14),!r)return null;var a=r.text.replace(/\\([#$%&~_^{}])/g,"$1");return{type:"url",mode:this.mode,url:a}},e.parseGroup=function(e,r,n,i,s,l){var h=this.mode;s&&this.switchMode(s),l&&this.consumeSpaces();var m,c=this.fetch(),u=c.text;if(r?"["===u:"{"===u||"\\begingroup"===u){this.consume();var p=t.endOfGroup[u];this.gullet.beginGroup();var d=this.parseExpression(!1,p),f=this.fetch();this.expect(p),this.gullet.endGroup(),m={type:"ordgroup",mode:this.mode,loc:a.range(c,f),body:d,semisimple:"\\begingroup"===u||void 0}}else if(r)m=null;else if(null==(m=this.parseFunction(i,e,n)||this.parseSymbol())&&"\\"===u[0]&&!ba.hasOwnProperty(u)){if(this.settings.throwOnError)throw new o("Undefined control sequence: "+u,c);m=this.formatUnsupportedCmd(u),this.consume()}return s&&this.switchMode(h),m},e.formLigatures=function(t){for(var e=t.length-1,r=0;r=0&&this.settings.reportNonstrict("unicodeTextInMathMode",'Latin-1/Unicode text character "'+e[0]+'" used in math mode',t);var l,h=j[this.mode][e].group,m=a.range(t);if(W.hasOwnProperty(h)){var c=h;l={type:"atom",mode:this.mode,family:c,loc:m,text:e}}else l={type:h,mode:this.mode,loc:m,text:e};i=l}else{if(!(e.charCodeAt(0)>=128))return null;this.settings.strict&&(M(e.charCodeAt(0))?"math"===this.mode&&this.settings.reportNonstrict("unicodeTextInMathMode",'Unicode text character "'+e[0]+'" used in math mode',t):this.settings.reportNonstrict("unknownSymbol",'Unrecognized Unicode character "'+e[0]+'" ('+e.charCodeAt(0)+")",t)),i={type:"textord",mode:"text",loc:a.range(t),text:e}}if(this.consume(),s)for(var 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 RrP=?*2*L7aCs@NsIFT1gP^am zZ8W;?Y)mx96{A6?^R96N*&s@vOL#BYc(7%*%)w%Qq16`aKh#hwh;|h>rIYJI%ytz_Cly;T7JU5|sXfguIQk-7Kacor9> z-6Jp*O+o7uS|5}xG)f}RX*OVWsf!etBn8KVdu?7MkIB-wF8sHLGhx{IIMv(NK2FmY zwPU`p`Y;$AjsYO6V!4xti;WmkTI0j8(TlSV9pXekQ8bF##kR&6k8@#yef!NC(6Z!3 z2HeZ~W8`a`g(!I_z9f}BCan(f^!@mz`2xt|EZG-V)9@a%T(uG(rxI`hgy`Li@?xPv%LgMz;D8N9K}3pC ze1S_gd*mW` z?({~tDYlpnjUsiovkyJM7IW=)mT;oGnS@YarlFcz@E^=ar!)X9p|i^0cVUW=y!cp$ z{uOlqG(8y4#E#Q6AEJ^iH-$@Y#WEDJ0)E$ta3oE*i-`Vw_hsRBamfts?KW9`EzM?e z#bt`bRDs#LffM2&l?zicH4$gz+asAy`E0(b-{>UW;E&$-sL;zQM zPN^J>sPy?R#h+6wlgsLtR^nY#cW@bypcTRp3vyU76o8J4M#Y=@Vig2D z*Wa@VGG0`y6r17n_iHd$m&*v}e0(OVMr?vcmc7HDF4 zIu}nM#MjxrzjgpW?<83~etQE0QH=5YkCu;ACKhrDn~{U+6`X7A#^4{(6FQf9gUO5* z2aWV`{gn9T>~CB5D1ByjWIH#xzfIWNM~$~sfv)vGn}@IXtJUT^*Za2D<6F8PTg;ai zh0tp?k002X9<6cpNc*VQkuX?|f=f+sXyMl1C1O0ZJl1Wmo0PWzSVMO{0`Z)ar_8z^ zWRsw(7Hpq~{zyt*I`471-{H-?#W4vxJGMn2(K6%el) zrF&$q5Rj!ReYQaZ38&)X^FLKx&%Z(5dU5irxGZJKNj@tfTP^n=L8svxWw0O?EPoI@ zv+D+95(od$OtWo?oWv%I1HS_|t}A}5_+owjd{)}q{ET<822#~0}QQ^rO=RDui{u4Pm~FtF!Bx(rZ4))Yqp<*1^H zlZWX=^)Aiio@wwf%1}uFYETV7eMx-$RPAFtjxtMYArSKTDZPSd3t+zbSIOTCzE-7Hu;oR`p0dI(Y_cBtWj%?^8ZXG2?97@P&wBBHem>grua=Lx5dRiD$bYhC*~femiL+edKZ)E~ z|6eYSM9Qqof3`+{wnqQfTciID5prm=_0q(TiIs77K*N=88CesH9a%80pqf^7eX3W46dTAg|rX5m^F6id+ZZdxLDF z5K065re4VxDYH=PjT3EyVtsNpc_7N_aGE zq;!#$AdWIPy7WLkV390UjE#oi5=Tp#aVlq4DKMpFfooJoz9AopZ|mWWJ7r!CA6H2Q z5;&B76~s{!7KM+(XtNj)CX>R)n6HY@>0Xh^S`u#DBXsF6z=pZNr05RqGQtg90AYF5 zDDbIe6}JVsg^?AHGJl;h_{`-RnJERr30wdsM`i#JK&GrgT8)dXm4$AZ{0CmDSx|pI z@g}9?#Rl->n~Nzmp&W9Az)Wl_9r%tUakA`n(u=y8P@N);B7?*N6i};&u=MgGIX0fZ zofs1@<>fQhhnAoSOyyr1v*HI{OyC+ZK?!AYHn{6@eo|+D7x7TE6o#H005}nNAI9D# zRP112#1md>M{^;RMfU!ki}`Rojj2wkw_oc60ZRf`-$M$9w0NT3(!qqog=e?pUZUbQ zpw(t+v5Gw|d}Cpshv?mUa?DSm=dH7X-*NkNK8P(llccDOi_K;Sfp8iECVI@@-Rjzr zfSVC^TPSOmH=SOC_{)+3J)O>$Sfk@$oOS_5l{PWS8Ay%0Dm>*!0f5s3FjFh0n6U?5 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 Y6gPWHw?3s?pVF;Q>DK=)y0z;61E3;;xc~qF literal 0 HcmV?d00001 diff --git a/loading.gif b/loading.gif new file mode 100644 index 0000000000000000000000000000000000000000..d184902902c7d28d53dbb2229f5b31f71e906444 GIT binary patch literal 269157 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 z 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 literal 0 HcmV?d00001 diff --git a/logicjavascript.js b/logicjavascript.js new file mode 100644 index 000000000..9f38c5a74 --- /dev/null +++ b/logicjavascript.js @@ -0,0 +1,1254 @@ +function convertkatex(element,value){ + var x=nerdamer(value); + var value=x.toTeX() + katex.render(value, element, { + throwOnError: false + }); + } +//start of roman +function expandedform(input){ + if(input=='inpo'){ + var num=parseInt(document.getElementById(input).value); + } + else{ + var num=parseInt(document.getElementById(input).textContent); + } + i=1; + j=0; + var ar=[]; + var temp=""; + while(parseInt(num)!=0){ + var last=parseInt(num%10); + var br=last*i; + ar[j]=br; + num=num/10; + i=i*10; + j++; + } + var temp=ar.reverse().join("+"); + return temp; + + } + + function romanize (input) { + if(input=='inpo'){ + var num=parseInt(document.getElementById(input).value); + } + else{ + var num=parseInt(input); + } + if (!+num) + return ""; + var digits = String(+num).split(""), + key = ["","C","CC","CCC","CD","D","DC","DCC","DCCC","CM", + "","X","XX","XXX","XL","L","LX","LXX","LXXX","XC", + "","I","II","III","IV","V","VI","VII","VIII","IX"], + roman = "", + i = 3; + while (i--) + roman = (key[+digits.pop() + (i * 10)] || "") + roman; + return Array(+digits.join("") + 1).join("M") + roman; + +} + +function deromanize (str) { + var str = str.toUpperCase(), + validator = /^M*(?:D?C{0,3}|C[MD])(?:L?X{0,3}|X[CL])(?:V?I{0,3}|I[XV])$/, + token = /[MDLV]|C[MD]?|X[CL]?|I[XV]?/g, + key = {M:1000,CM:900,D:500,CD:400,C:100,XC:90,L:50,XL:40,X:10,IX:9,V:5,IV:4,I:1}, + num = 0, m; + if (!(str && validator.test(str))) + if(document.getElementById('rinp').value==""){ + return "" + } + else{ + return "Enter Valid Roman Number"; + } + var temp=""; + while (m = token.exec(str)) + num += key[m[0]]; + return num; +} + +function callder(){ + document.getElementById('out2').innerHTML=(deromanize(document.getElementById('rinp').value)) +} +function callr(){ + document.getElementById('ouroman').innerHTML=romanize('inpo'); + +} + +function expandedformde(input,output){ + var val=document.getElementById(input).textContent; + var expanded=expandedform(input) + var ar=[] + ar=expanded.split("+") + var temp="" + for(i of ar){ + if(i==0){ + temp+=""; + } + else{ + temp+=(romanize(i))+"+"; + } + } + temp=temp.slice(0,-1); + document.getElementById(output).innerHTML=temp; +} + +//end of roman + + function performdivide(){ + var num1=parseFloat(document.getElementById("dividendnum").value); + var num3=parseFloat(document.getElementById("divisornumwith").value); + if(String(num3)=='NaN' || String(num1)=='NaN' || num3==0 ){ + if(String(num1)=='NaN'){ + document.getElementById("resultdivi").innerHTML='Enter Dividend' + } + if(String(num3)=='NaN'){ + document.getElementById("resultdivi").innerHTML='Enter Divisor' + } + if(num3==0){ + document.getElementById("resultdivi").innerHTML=''; + } + if(String(num3)=='NaN' && String(num1)=='NaN'){ + document.getElementById("resultdivi").innerHTML='Enter Divisor and Dividend' + } + + } + else{ + var rem=num1%num3; + var c=num1/num3; + var temp=num1+"÷"+num3+"="+c+"
    "+"Quotient ="+parseInt(c)+"
    "+"Remainder ="+rem; + document.getElementById("resultdivi").innerHTML=temp; + } + + + + + } + + function printfactors(){ + var num2=parseInt(document.getElementById("num2").value); + var temp=""; + var tt=""; + var v=""; + for(i=2;i<=num2;i++){ + var j=true; + while (j==true){ + if((num2%i)==0){ + temp+=i+"   
    "; + v+=i+"   "; + tt+=""+num2+"
    "; + num2=num2/i; + } + else{ + j=false; + } + } + document.getElementById("result").innerHTML=temp; + document.getElementById("result1").innerHTML=tt; + document.getElementById("result12").innerHTML="Prime Factors are [   "+v+"]
    "; + } + } + + function printhcffactor(val,outputf){ + var num2=parseInt(val); + var temp=""; + for(i=2;i<=num2;i++){ + var j=true; + while (j==true){ + if((num2%i)==0){ + temp+=i+" "; + num2=num2/i; + } + else{ + j=false; + } + } + + }; + temp=temp.split(" "); + temp=removeDuplicates(temp); + var newtemp=""; + for (ih of temp){ + newtemp+=ih+" "; + } + return newtemp; + } + function removeDuplicates(array) { + return array.filter((a, b) => array.indexOf(a) === b) + } + function printtable(){ + var temp=""; + var num=parseInt(document.getElementById("num").value); + var end=parseInt(document.getElementById("ending") .value); + for(var i=1;i<=end;i++){ + temp+="" + temp+=''; + temp+="" + } + temp+="
    '+num+'X'+i+'='+num*i+'
    " + document.getElementById("resulttable").innerHTML=""+temp+""; + } + + + function solvesimpletrigo(){ + var pp=document.getElementById("p").value; + var base=document.getElementById("b").value; + var hyp=document.getElementById("h").value; +// if((pp=='' && base=='')||(base=='' && hyp=='')||(hyp='' && pp=='')){ +// document.getElementById('soltri').innerHTML="Kindly fill Atleast 2 fields"; +// } + if(parseInt(hyp)'; + temp+='Therefore,Perimeter of Square is '+sol; + document.getElementById("resultofperisq").innerHTML=temp; + } + + } + function solveareasq(){ + var oi=document.getElementById("inputsqside").value; + if(oi==''){ + document.getElementById("resultofareasq").innerHTML=''; + }else{ + sol=eval(String(oi)+'*'+String(oi)); + temp=oi+' x '+oi+' = '+sol+'
    '; + temp+='Therefore,Area of Square is '+sol; + document.getElementById("resultofareasq").innerHTML=temp; + } + + } + function printmorefactors(input,output){ + document.getElementById(output).textContent=""; + var ar=[]; + var ll=document.getElementById(input).value; + if (ll.includes(" ")){ + ll=ll.split(" ") + for (kj of ll){ + ar.push(kj) + } + ar = ar.filter(function(str) { + return /\S/.test(str); + }); + } + else{ + ar.push(parseInt(document.getElementById(input).value)); + } + var temp=""; + for (jk of ar){ + var nnuumm2=jk; + var getnu="Prime Factors of "+nnuumm2+" is "; + for(i=2;i<=nnuumm2;i++){ + var j=true; + while (j==true){ + if((nnuumm2%i)==0){ + temp+=i+"   "; + nnuumm2=nnuumm2/i; + } + else{ + j=false; + } + } + } + document.getElementById(output).innerHTML+=getnu+"
    [   
    "+temp+"]

    "; + temp+="
    " + temp=""; + } + } + function printmorefactorshcf(input,output){ + document.getElementById(output).textContent=""; + var ar=[]; + var ll=document.getElementById(input).value; + if (ll.includes(" ")){ + ll=ll.split(" ") + for (kj of ll){ + ar.push(kj) + } + ar = ar.filter(function(str) { + return /\S/.test(str); + }); + } + else{ + ar.push(parseInt(document.getElementById(input).value)); + } + var temp=""; + for (jk of ar){ + var nnuumm2=jk; + var getnu="Prime Factors of "+nnuumm2+" is "; + temp+="1   "; + for(i=2;i<=nnuumm2;i++){ + var j=true; + while (j==true){ + if((nnuumm2%i)==0){ + temp+=i+"   "; + nnuumm2=nnuumm2/i; + } + else{ + j=false; + } + } + + } + document.getElementById(output).innerHTML+=getnu+"
    [  
    "+temp+"]

    "; + temp+="
    " + temp=""; + } + } + + + function hcf() { + var ar=[]; + var ll=document.getElementById("num22").value; + if (ll.includes(" ")){ + ll=ll.split(" ") + var flag=0; + for (kj of ll){ + ar.push(parseInt(kj)); + } + ar = ar.filter(function(str) { + return /\S/.test(str); + }); + } + else{ + flag=1; + ar.push(parseInt(document.getElementById("num22").value)); + } + input=ar; + if (toString.call(input) !== "[object Array]") + return false; + var len, a, b; + len = input.length; + if ( !len ) { + return null; + } + a = input[ 0 ]; + for ( var i = 1; i < len; i++ ) { + b = input[ i ]; + a = gcd_two_numbers( a, b ); + } + if(flag==1){ + document.getElementById("result22").innerHTML+=" HCF is "+a+""; + } + else{ + var hcffac=printhcffactor(a,'result22'); + if (hcffac==" "){ + hcffac="1 " + } + document.getElementById("result22").innerHTML=hcffac+" are in Common.Therefore,"; + + document.getElementById("result22").innerHTML+=" HCF is "+a+""; + } + +} + +function gcd_two_numbers(x, y) { + if ((typeof x !== 'number') || (typeof y !== 'number')) + return false; + x = Math.abs(x); + y = Math.abs(y); + while(y) { + var t = y; + y = x % y; + x = t; + } + return x; +} + + function solvelaplace(){ + var lurl=encodeURIComponent(document.getElementById("inputlaplace").value); + window.open("https://www.emathhelp.net/calculators/differential-equations/laplace-transform-calculator/?f="+lurl+"#solution"); + } + function solveinverselaplace(){ + var ilurl=encodeURIComponent(document.getElementById("inputinverselaplace").value); + window.open("https://www.emathhelp.net/calculators/differential-equations/inverse-laplace-transform-calculator/?f="+ilurl+"#solution"); + } + var diffvariable=""; + var difforder=""; + function getdiffvariable(value){ + diffvariable=value; + } + + function getdifforder(value){ + difforder=value; + } + + function clearit(input,output){ + document.getElementById(output).innerHTML=''; + document.getElementById(input).value=''; + } + function solveintegralwithoutsteps(){ + var intval=document.getElementById("inputintegral").value; + //var integration=nerdamer.integrate(intval,integralvar) + + } +// function mathrender(input,output){ +// MathJax.Hub.processSectionDelay = 0 +// var Render = document.getElementById(output) +// var inp=document.getElementById(input).value; +// var mmaath = MathJax.Hub.getAllJax('Render')[0] +// demoSour=inp +// alert(demoSour) +// MathJax.Hub.Typeset(['Text',mmaath,demoSour]) +// } + var intsol=""; + function findintesol(input,output){ + var inp=document.getElementById(input).value; + intsol=nerdamer.integrate(inp,'x') + document.getElementById(input).value+=""; + } + + function changebackground(value){ + if (typeof(Storage) !== "undefined") { + // Store + localStorage.setItem("backgroundcolor",value); + // Retrieve + document.body.style.backgroundColor = localStorage.getItem("backgroundcolor"); +// document.body.style.backgroundImage = localStorage.getItem("backgroundcolor"); +// document.getElementById('main').style.background= localStorage.getItem("backgroundcolor"); + } + + } + function opencal(){ + $('#cal').slideToggle(); + } + + function getran(l) + { + var text = ""; + var char_list = "0123456789+-/="; + for(var i=0; i < l; i++ ) + { + text += char_list.charAt(Math.floor(Math.random() * char_list.length)); + } + return text; + } + + function getbackval(value){ + localStorage.setItem("backgroundtype",value); + } + function animatedback(){ + if(localStorage.getItem("backgroundtype")==null){ + localStorage.setItem("backgroundtype","Animated"); + } + if(localStorage.getItem("backgroundtype")=="Animated"){ + var script = document.createElement('script'); + script.id="bb" + script.src = "js/dynamic.js"; + document.getElementsByTagName('body')[0].appendChild(script); + } + + } + + function orderas(){ + document.getElementById("orderresult").innerHTML=""; + var val=document.getElementById("ordergetval").value; + val=val.split(" "); + val = val.filter(function(str) { + return /\S/.test(str); + }); + var len=parseInt(val.length); + for(i=0;i<=len-1;i++){ + for(j=0;j<=len-1-i;j++){ + if(parseInt(val[j])>parseInt(val[j+1])){ + temp=parseInt(val[j]); + val[j]=parseInt(val[j+1]); + val[j+1]=temp; + } + } + } + val=val.join('   ') + document.getElementById("orderresult").innerHTML+="Ascending Order "; + document.getElementById("orderresult").innerHTML+="[   "+val+"   ]
    "; + } + + function orderde(){ + document.getElementById("orderresultde").innerHTML=""; + var val=document.getElementById("ordergetval").value; + val=val.split(" "); + val = val.filter(function(str) { + return /\S/.test(str); + }); + var len=parseInt(val.length); + for(i=0;i<=len-1;i++){ + for(j=0;j<=len-1-i;j++){ + if(parseInt(val[j])"; + } + function orderfieldclear(){ + if(document.getElementById("orderresult").textContent!="" || document.getElementById("orderresultde").textContent!=""){ + document.getElementById("orderresult").innerHTML="" + document.getElementById("orderresultde").innerHTML="" + } + + } + + function checkdivisibility(){ + var n1=parseInt(document.getElementById("n1").value); + var n2=parseInt(document.getElementById("n2").value); + if(n1%n2==0){ + document.getElementById("divisibilitycheckresult").innerHTML="Yes! "+String(n1)+" is Divisible by "+n2+"
    "; + document.getElementById("divisibilitycheckresult").innerHTML+=String(n1)+" / "+String(n2)+" = "+eval(String(n1/n2))+"
    "; + document.getElementById("divisibilitycheckresultex").innerHTML="Explanation:
    When "+String(n1)+" divides with "+String(n2)+" leaves Remainder 0."; +// var btn = document.createElement('input'); +// btn.id="showcheckdivisibilitysteps" +// btn.type = "button"; +// btn.className="btn btn-info"; +// btn.value="Show Steps" +// document.getElementById('checkdivisibility').appendChild(btn); + } + else{ + document.getElementById("divisibilitycheckresult").innerHTML="No! "+String(n1)+" is not Divisible by "+n2; + document.getElementById("divisibilitycheckresultex").innerHTML="Explanation:
    When "+String(n1)+" divides with "+String(n2)+" leaves Remainder "+eval(n1%n2)+"."; + } + } + + + function internationalwords(num){ + var a = ['','one ','two ','three ','four ', 'five ','six ','seven ','eight ','nine ','ten ','eleven ','twelve ','thirteen ','fourteen ','fifteen ','sixteen ','seventeen ','eighteen ','nineteen ']; + var b = ['', '', 'twenty','thirty','forty','fifty', 'sixty','seventy','eighty','ninety']; + if ((num = num.toString()).length > 9) return 'overflow'; + n = ('000000000' + num).substr(-9).match(/^(\d{2})(\d{2})(\d{2})(\d{1})(\d{2})$/); + if (!n) return; var str = ''; + str += (n[1] != 0) ? (a[Number(n[1])] || b[n[1][0]] + ' ' + a[n[1][1]]) + 'crore ' : ''; + str += (n[2] != 0) ? (a[Number(n[2])] || b[n[2][0]] + ' ' + a[n[2][1]]) + 'lakh ' : ''; + str += (n[3] != 0) ? (a[Number(n[3])] || b[n[3][0]] + ' ' + a[n[3][1]]) + 'thousand ' : ''; + str += (n[4] != 0) ? (a[Number(n[4])] || b[n[4][0]] + ' ' + a[n[4][1]]) + 'hundred ' : ''; + str += (n[5] != 0) ? ((str != '') ? 'and ' : '') + (a[Number(n[5])] || b[n[5][0]] + ' ' + a[n[5][1]]) + 'only ' : ''; + if(count(num)>=9){ + document.getElementById("interresult").innerHTML='Upto 8 digits only'; + }else{ + document.getElementById("interresult").innerHTML=str; + } + + } + + function printfactorsfl(value){ + var num2=parseInt(value); + var temp=[]; + ind=-1; + for(i=2;i<=num2;i++){ + var j=true; + while (j==true){ + if((num2%i)==0){ + ind+=1; + temp[ind]=i; + num2=num2/i; + } + else{ + j=false; + } + } + } + return temp; + } + function lcmsol(){ + document.getElementById("resultlcm").innerHTML=""; + document.getElementById("resultfac").innerHTML=""; + document.getElementById('resultlcms').innerHTML=""; + var num=document.getElementById('numlcm').value; + num=num.split(' '); + num = num.filter(function(str) { + return /\S/.test(str); + }); + var temp=""; + var tempfac="
    "; + if(num.length==1){ + document.getElementById("resultlcm").innerHTML="Should Be more Than 1"; + document.getElementById('resultlcms').innerHTML=""; + } + else if(num.length==2){ + var lcmis=nerdamer.lcm(parseInt(num[0]),parseInt(num[1])); + } + else if(num.length==3){ + var lcmis=nerdamer.lcm(parseInt(num[0]),parseInt(num[1]),parseInt(num[2])); + } + else if(num.length==4){ + var lcmis=nerdamer.lcm(parseInt(num[0]),parseInt(num[1]),parseInt(num[2]),parseInt(num[3])); + } + else if(num.length==5){ + var lcmis=nerdamer.lcm(parseInt(num[0]),parseInt(num[1]),parseInt(num[2]),parseInt(num[3]),parseInt(num[4])); + } + else if(num.length==6){ + var lcmis=nerdamer.lcm(parseInt(num[0]),parseInt(num[1]),parseInt(num[2]),parseInt(num[3]),parseInt(num[4]),parseInt(num[5])); + } + else if(num.length==7){ + var lcmis=nerdamer.lcm(parseInt(num[0]),parseInt(num[1]),parseInt(num[2]),parseInt(num[3]),parseInt(num[4]),parseInt(num[5]),parseInt(num[6])); + } + else if(num.length==8){ + var lcmis=nerdamer.lcm(parseInt(num[0]),parseInt(num[1]),parseInt(num[2]),parseInt(num[3]),parseInt(num[4]),parseInt(num[5]),parseInt(num[6]),parseInt(num[7])); + } + else if(num.length==9){ + var lcmis=nerdamer.lcm(parseInt(num[0]),parseInt(num[1]),parseInt(num[2]),parseInt(num[3]),parseInt(num[4]),parseInt(num[5]),parseInt(num[6]),parseInt(num[7]),parseInt(num[8])); + } + else if(num.length==10){ + var lcmis=nerdamer.lcm(parseInt(num[0]),parseInt(num[1]),parseInt(num[2]),parseInt(num[3]),parseInt(num[4]),parseInt(num[5]),parseInt(num[6]),parseInt(num[7]),parseInt(num[8]),parseInt(num[9])); + } + else if(num.length==11){ + var lcmis=nerdamer.lcm(parseInt(num[0]),parseInt(num[1]),parseInt(num[2]),parseInt(num[3]),parseInt(num[4]),parseInt(num[5]),parseInt(num[6]),parseInt(num[7]),parseInt(num[8]),parseInt(num[9]),parseInt(num[10])); + }else if(num.length==12){ + var lcmis=nerdamer.lcm(parseInt(num[0]),parseInt(num[1]),parseInt(num[2]),parseInt(num[3]),parseInt(num[4]),parseInt(num[5]),parseInt(num[6]),parseInt(num[7]),parseInt(num[8]),parseInt(num[9]),parseInt(num[10]),parseInt(num[11])); + }else if(num.length==13){ + var lcmis=nerdamer.lcm(parseInt(num[0]),parseInt(num[1]),parseInt(num[2]),parseInt(num[3]),parseInt(num[4]),parseInt(num[5]),parseInt(num[6]),parseInt(num[7]),parseInt(num[8]),parseInt(num[9]),parseInt(num[10]),parseInt(num[11]),parseInt(num[12])); + }else if(num.length==14){ + var lcmis=nerdamer.lcm(parseInt(num[0]),parseInt(num[1]),parseInt(num[2]),parseInt(num[3]),parseInt(num[4]),parseInt(num[5]),parseInt(num[6]),parseInt(num[7]),parseInt(num[8]),parseInt(num[9]),parseInt(num[10]),parseInt(num[11]),parseInt(num[12]),parseInt(num[13])); + }else if(num.length==15){ + var lcmis=nerdamer.lcm(parseInt(num[0]),parseInt(num[1]),parseInt(num[2]),parseInt(num[3]),parseInt(num[4]),parseInt(num[5]),parseInt(num[6]),parseInt(num[7]),parseInt(num[8]),parseInt(num[9]),parseInt(num[10]),parseInt(num[11]),parseInt(num[12]),parseInt(num[13]),parseInt(num[14])); + }else if(num.length==16){ + var lcmis=nerdamer.lcm(parseInt(num[0]),parseInt(num[1]),parseInt(num[2]),parseInt(num[3]),parseInt(num[4]),parseInt(num[5]),parseInt(num[6]),parseInt(num[7]),parseInt(num[8]),parseInt(num[9]),parseInt(num[10]),parseInt(num[11]),parseInt(num[12]),parseInt(num[13]),parseInt(num[14]),parseInt(num[15])); + }else if(num.length==17){ + var lcmis=nerdamer.lcm(parseInt(num[0]),parseInt(num[1]),parseInt(num[2]),parseInt(num[3]),parseInt(num[4]),parseInt(num[5]),parseInt(num[6]),parseInt(num[7]),parseInt(num[8]),parseInt(num[9]),parseInt(num[10]),parseInt(num[11]),parseInt(num[12]),parseInt(num[13]),parseInt(num[14]),parseInt(num[15]),parseInt(num[16])); + }else if(num.length==18){ + var lcmis=nerdamer.lcm(parseInt(num[0]),parseInt(num[1]),parseInt(num[2]),parseInt(num[3]),parseInt(num[4]),parseInt(num[5]),parseInt(num[6]),parseInt(num[7]),parseInt(num[8]),parseInt(num[9]),parseInt(num[10]),parseInt(num[11]),parseInt(num[12]),parseInt(num[13]),parseInt(num[14]),parseInt(num[15]),parseInt(num[16]),parseInt(num[17])); + }else if(num.length==19){ + var lcmis=nerdamer.lcm(parseInt(num[0]),parseInt(num[1]),parseInt(num[2]),parseInt(num[3]),parseInt(num[4]),parseInt(num[5]),parseInt(num[6]),parseInt(num[7]),parseInt(num[8]),parseInt(num[9]),parseInt(num[10]),parseInt(num[11]),parseInt(num[12]),parseInt(num[13]),parseInt(num[14]),parseInt(num[15]),parseInt(num[16]),parseInt(num[17]),parseInt(num[18])); + }else if(num.length==20){ + var lcmis=nerdamer.lcm(parseInt(num[0]),parseInt(num[1]),parseInt(num[2]),parseInt(num[3]),parseInt(num[4]),parseInt(num[5]),parseInt(num[6]),parseInt(num[7]),parseInt(num[8]),parseInt(num[9]),parseInt(num[10]),parseInt(num[11]),parseInt(num[12]),parseInt(num[13]),parseInt(num[14]),parseInt(num[15]),parseInt(num[16]),parseInt(num[17]),parseInt(num[18]),parseInt(num[19])); + } + else{ + document.getElementById('resultlcm').innerHTML+="Upto 20 Numbers Supported
    and you inputted "+String(num.length)+" Numbers"; + document.getElementById('resultlcms').innerHTML=""; + } + var facar=printfactorsfl(parseInt(lcmis)); + if(num.length>20 || num.length==1){ + document.getElementById('resultlcm').innerHTML+=""; + document.getElementById('resultlcms').innerHTML=""; + } + else{ + //document.getElementById('resultlcm').innerHTML+=" "+num+"
    "; + temp+="" + for(kl of num){ + temp+=""; + } + temp+="" + } + for(i=0;i
    "; + temp+="" + for(kl of num){ + temp+="
    "; + } + temp+="" + + } + for(mm=0;mm"; + tempfac+=""; + } + if(num.length==1){ + document.getElementById('resultlcms').innerHTML=""; + } + else{ + document.getElementById('resultlcms').innerHTML+="Lcm is "+String(lcmis); + } + document.getElementById('resultfac').innerHTML=tempfac; + document.getElementById('resultlcm').innerHTML=temp; + + } + + function multiplywithsteps(numm,withnum){ + var num=document.getElementById(numm).value.toString(); + var numwith=document.getElementById(withnum).value.toString(); + if(num%1==0 && numwith%1!=0){ + var sw=numwith; + numwith=num; + num=sw; + document.getElementById(withnum).value=numwith; + document.getElementById(numm).value=num; + } + var flag=0; // num + if(num%1!=0) + flag=1; //float + var countdot=0; + var countdotwith=0; + + if(flag==1){ + for(i=num.length-1;i>=0;i--){ + if(num[i]=='.'){ + break; + } + countdot++; + } + for(j=numwith.length-1;j>=0;j--){ + if(numwith[j]=='.'){ + break; + } + countdotwith++; + } + var v=0; + if((countdotwith>countdot) && (numwith%1!=0)){ + var sw=numwith; + numwith=num; + num=sw; + document.getElementById(withnum).value=numwith; + document.getElementById(numm).value=num; + v=1; + } + + } + var r=document.getElementById("resultmulsol"); + var temp=""; + var m=""; + var line=""; + var mulsol=eval(nerdamer(String(numwith)+'*'+String(num)).evaluate().toString()); + if(numwith.length>1){ + numwith=numwith.split(''); + for(i=numwith.length-1;i>=0;i--){ + if(numwith[i]=='.') + continue; + if(numwith.length==m.length+1){ + var vm=eval(nerdamer(String(numwith[i])+'*'+String(num)).evaluate().toString()); + temp+="+ "+String(vm).replace('.','')+m; + } + else{ + var vm=eval(nerdamer(String(numwith[i])+'*'+String(num)).evaluate().toString()) + temp+=String(vm).replace('.','')+m; + + } + temp+="
    "; + m+="×"; + } + for(i=0;i"; + r.innerHTML+="x "+numwith+"
    " + r.innerHTML+=line+"
    "; + r.innerHTML+=mulsol+"
    "; + r.innerHTML+=line+"
    "; + } + else{ + r.innerHTML=""; + r.innerHTML+=num+"
    "; + r.innerHTML+="x "+numwith.join('')+"
    " + r.innerHTML+=line+"
    "; + r.innerHTML+=temp; + r.innerHTML+=line+"
    "; + r.innerHTML+=mulsol+"
    "; + r.innerHTML+=line+"
    "; + } + } + + function showdivisionstepsforcheckdivisibility(){ + $('html, body').animate({ + scrollTop: $("#divide").offset().top + }, 100); + document.getElementById('divisornumwith').value=document.getElementById('n2').value; + document.getElementById('dividendnum').value=document.getElementById('n1').value; + divisionwithsteps(); + $("#showcheckdivisibilitysteps").click(function() { + $('html, body').animate({ + scrollTop: $("#divide").offset().top + }, 2000); + }); + } + + function divisionwithsteps() { + performdivide(); + var dividend=document.getElementById("dividendnum").value; + var divisor=document.getElementById("divisornumwith").value; + var resultContainer = $('#resultofdivsteps'); + var numberFormatTester = new RegExp("^[1-9]{1}[0-9]*$"); + var isDecimal = ('' + dividend).indexOf('.') > -1 || ('' + divisor).indexOf('.') > -1; + var isNum = !(isNaN(+dividend) && isNaN(+divisor)) && parseFloat(dividend) >= 0 && parseFloat(divisor) >= 0; + if(String(dividend)=='' || String(divisor)==''){ + document.getElementById("resultofdivsteps").innerHTML=""; + } + else if (('' + divisor) == '0') { + document.getElementById("resultofdivsteps").innerHTML="You cannot divide by 0"; + return false; + } + else if (isDecimal) { + document.getElementById("resultofdivsteps").innerHTML="Can't show steps for Decimal Division"; + return false; + } + + else if (!numberFormatTester.test(divisor)) { + if(String(divisor)==''){ + document.getElementById("resultofdivsteps").innerHTML=""; + } + else{ + document.getElementById("resultofdivsteps").innerHTML="Can't show steps for Negative Divisor"; + } + return false; + } + else if (!numberFormatTester.test(dividend)) { + if(String(dividend)==''){ + document.getElementById("resultofdivsteps").innerHTML=""; + } + else{ + document.getElementById("resultofdivsteps").innerHTML="Can't show steps for Negative Dividend"; + } + return false; + } + else{ + var quotient = Math.floor(dividend / divisor); + var remainder = dividend % divisor; + var dividendLength = (dividend.toString()).length; + var divisorLength = (divisor.toString()).length; + var tableBody = ''; + var tableNumColumns = dividendLength + divisorLength; + var tableNumRows = dividendLength * 2 + 2; + var numSteps = dividendLength + 1; + var tmpVar; + for (a = 1; a <= tableNumRows; a++) { + tableBody += '
    '; + for (b = 1; b <= tableNumColumns; b++) { + tableBody += ''; + } + tableBody += ''; + } + resultContainer.html('

    "+kl+"
    "+kl+"
    "+facar[mm]+"
    ' + tableBody + '
    '); + var tableRows = resultContainer.find('table tr'); + for (i = 0; i < divisorLength; i++) { + tableRows.eq(1).find('td').eq(i).html((divisor.toString())[i]); + } + tableRows.eq(1).find('td').eq(divisorLength - 1).css('border-right', '6px solid white'); + for (i = 0; i < dividendLength; i++) { + tableRows.eq(1).find('td').eq(divisorLength + i).html((dividend.toString())[i]).css('border-top', '6px solid white'); + } + for (currentStep = 1; currentStep < numSteps; currentStep++) { + if (!bufferVar) var bufferVar = (dividend.toString())[0]; + var stepResult = Math.floor(bufferVar / divisor); + tableRows.eq(0).find('td').eq(divisorLength + currentStep - 1).html(stepResult); + tmpVar = (stepResult * divisor).toString(); + for (a = tmpVar.length - 1; a >= 0; a--) { + tableRows.eq(currentStep * 2).find('td').eq(divisorLength + currentStep - a - 1).html(tmpVar[tmpVar.length - a - 1]).css('border-bottom', '6px solid white'); + } + tmpVar = (bufferVar - stepResult * divisor).toString(); + for (a = tmpVar.length - 1; a >= 0; a--) { + tableRows.eq(currentStep * 2 + 1).find('td').eq(divisorLength + currentStep - a - 1).html(tmpVar[tmpVar.length - a - 1]); + } + tableRows.eq(currentStep * 2 + 1).find('td').eq(divisorLength + currentStep).html((dividend.toString())[currentStep]); + bufferVar = tmpVar + (dividend.toString())[currentStep]; + } + } + } + + function keyboard(field){ + var field=document.getElementById(field); + } + + function bodyload(){ + animatedback(); + //localStorage.removeItem('backgroundcolor') + //changebackground(localStorage.getItem('backgroundcolor')); + + var ar=JSON.parse(localStorage.getItem('favouritearray')); + var oid=JSON.parse(localStorage.getItem('openingidarray')); + var tp=JSON.parse(localStorage.getItem('typearray')); + var imgar=JSON.parse(localStorage.getItem('imgarray')); + var favar=JSON.parse(localStorage.getItem('favarray')); + if(oid!=null){ + for(i=0;i -1) { + document.getElementById(imgarray[index]).src='unfavourite.png'; + openingid.splice(index, 1); + favouritearray.splice(index, 1); + typearray.splice(index, 1); + imgarray.splice(index, 1); + favarray.splice(index,1); + } + localStorage.setItem("favouritearray",JSON.stringify(favouritearray)); + localStorage.setItem("openingidarray",JSON.stringify(openingid)); + localStorage.setItem("typearray",JSON.stringify(typearray)); + localStorage.setItem("imgarray",JSON.stringify(imgarray)); + localStorage.setItem("favarray",JSON.stringify(favarray)); + checkfavourite() + } + } + + function checkfavourite(){ + removeall('favourite') + var ar=JSON.parse(localStorage.getItem('favouritearray')) + var oid=JSON.parse(localStorage.getItem('openingidarray')) + var tp=JSON.parse(localStorage.getItem('typearray')) + var imgar=JSON.parse(localStorage.getItem('imgarray')) + var favar=JSON.parse(localStorage.getItem('favarray')) + if(ar.length==0){ + $('#favourite').removeClass('headingdiv') + } + else{ + $('#favourite').addClass('headingdiv') + } + if(ar.length!=0){ + for(i=0;iTherefore,Area of Rectangle is "+eval(String(length)+'*'+String(breadth)); + + resultperi.innerHTML="2( "+length+" + "+breadth+" ) = 2( "+eval(String(length)+'+'+String(breadth))+" ) = "+eval('2*('+String(length)+'+'+String(breadth)+")"); + resultperi.innerHTML+="
    Therefore,Perimeter of Rectangle is "+eval('2*('+String(length)+'+'+String(breadth)+")"); + } + else{ + resultarea.innerHTML=''; + resultperi.innerHTML=''; + } + } + function plotit(input,output,funcname){ + var val=funcname; + document.getElementById(output).innerHTML=''; + function draw() { + try { + //val=val.replace(/s/g, 'x'); + // compile the expression once + const expression =val; + const expr = math.compile(expression) + // evaluate the expression repeatedly for different values of x + const xValues = math.range(-10, 10, 0.5).toArray() + const yValues = xValues.map(function (x) { + return expr.evaluate({x: x}) + }) + // render the plot using plotly + const trace1 = { + x: xValues, + y: yValues, + type: 'scatter' + } + const data = [trace1] + Plotly.newPlot(output, data) + } + catch (err) { + document.getElementById(output).innerHTML="Only PLOT for Single Variable 'x'
    " + document.getElementById(output).innerHTML+="Sorry! Can't Plot because "; + document.getElementById(output).innerHTML+=""+err+""; + } + } + draw() + } + + + + + diff --git a/logicjquery.js b/logicjquery.js new file mode 100644 index 000000000..a95948b11 --- /dev/null +++ b/logicjquery.js @@ -0,0 +1,86 @@ +function openit(id){ + var ids=['#mulsolwithsteps','#table','#areacal','#divide','#simpletrignocollapse','#factors','#integralcollapse','#differentiatecollapse','#partialdiffcollapse','#laplacecollapse','#matrixcollapse','#multiplematrixcollapse','#singlematrixcollapse','#about'] + for(i=0;i0; i--) { + var b = Math.pow(base, i), //we want as many wholes as possible + q = t/b, + sign = Math.sign(q); + var c = sign*Math.floor(Math.abs(q)); + t -= c*b; + terms[i] = c; + } + if(t !== 0) return null; + for(var i=0; i 0 + for(var j=i; j 0) { + b = this.coeffs[j]; + break; + } + } + + if(b) { //if such a coefficient exists + for(j; j>i; j--) { //go down the line and adjust using p + this.coeffs[j] = this.coeffs[j].subtract(new Frac(1)); + this.coeffs[j-1] = this.coeffs[j-1].add(new Frac(p)); + } + c = this.coeffs[i]; //reset c + } + } + + var d = c.mod(p); + var w = c.subtract(d).divide(p); + if(!w.equals(0)) { + var up_one = i+1; + var next = this.coeffs[up_one] || new Frac(0); + next = next.add(w); + this.coeffs[up_one] = new Frac(next); + this.coeffs[i] = new Frac(d); + } + } + + return this; + }, + /** + * Adds together 2 polynomials + * @param {Polynomial} poly + */ + add: function(poly) { + var l = Math.max(this.coeffs.length, poly.coeffs.length); + for(var i=0; i P^p. e.g. (x+1)^2 + * @param {bool} incl_img - Include imaginary numbers + */ + quad: function(incl_img) { + var roots = []; + if(this.coeffs.length > 3) throw new Error('Cannot calculate quadratic order of '+(this.coeffs.length-1)); + if(this.coeffs.length === 0) throw new Error('Polynomial array has no terms'); + var a = this.coeffs[2] || 0, b = this.coeffs[1] || 0, c = this.coeffs[0]; + var dsc = b*b-4*a*c; + if(dsc < 0 && !incl_img) return roots; + else { + roots[0] = (-b+Math.sqrt(dsc))/(2*a); + roots[1] = (-b-Math.sqrt(dsc))/(2*a); + } + return roots; + }, + /** + * Makes polynomial square free + * @returns {Array} + */ + squareFree: function() { + var a = this.clone(), + i = 1, + b = a.clone().diff(), + c = a.clone().gcd(b), + w = a.divide(c)[0]; + var output = Polynomial.fromArray([new Frac(1)], a.variable); + while(!c.equalsNumber(1)) { + var y = w.gcd(c); + var z = w.divide(y)[0]; + //one of the factors may have shown up since it's square but smaller than the + //one where finding + if(!z.equalsNumber(1) && i>1) { + var t = z.clone(); + for(var j=1; j

  • \n' + this.left.toHTML(depth + 2, indent) + tab(depth + 1) + '
  • \n' : ''; + var right = this.right ? tab(depth + 1) + '
  • \n' + this.right.toHTML(depth + 2, indent) + tab(depth + 1) + '
  • \n' : ''; + var html = tab(depth) + '
    ' + this.value + '
    ' + tab(depth) + '\n'; + if (left || right) { + html += tab(depth) + '
      \n' + left + right + tab(depth) + '
    \n'; + } + html += ''; + return html; + }; + + this.tree = function (tokens) { + var Q = []; + for (var i = 0; i < tokens.length; i++) { + var e = tokens[i]; + //Arrays indicate a new scope so parse that out + if (Array.isArray(e)) { + e = this.tree(e); + //if it's a comma then it's just arguments + Q.push(e); + continue; + } + if (e.type === Token.OPERATOR) { + if (e.is_prefix || e.postfix) { + //prefixes go to the left, postfix to the right + var location = e.is_prefix ? 'left' : 'right'; + var last = Q.pop(); + e = new Node(e); + e[location] = last; + Q.push(e); + } + else { + e = new Node(e); + e.right = Q.pop(); + e.left = Q.pop(); + Q.push(e); + } + } + else if (e.type === Token.FUNCTION) { + e = new Node(e); + var args = Q.pop(); + e.right = args; + if (e.value === 'object') { + //check if Q has a value + var last = Q[Q.length - 1]; + if (last) { + while (last.right) { + last = last.right; + } + last.right = e; + continue; + } + } + + Q.push(e); + } + else { + Q.push(new Node(e)); + } + } + + return Q[0]; + }; + this.parse = function (e, substitutions) { + e = prepare_expression(e); + substitutions = substitutions || {}; + //three passes but easier to debug + var tokens = this.tokenize(e); + var rpn = this.toRPN(tokens); + return this.parseRPN(rpn, substitutions); + }; + /** + * TODO: Switch to Parser.tokenize for this method + * Reads a string into an array of Symbols and operators + * @param {String} expression_string + * @returns {Array} + */ + this.toObject = function (expression_string) { + var objectify = function (tokens) { + var output = []; + for (var i = 0, l = tokens.length; i < l; i++) { + var token = tokens[i]; + var v = token.value; + if (token.type === Token.VARIABLE_OR_LITERAL) { + output.push(new Symbol(v)); + } + else if (token.type === Token.FUNCTION) { + //jump ahead since the next object are the arguments + i++; + //create a symbolic function and stick it on output + var f = _.symfunction(v, objectify(tokens[i])); + f.isConversion = true; + output.push(f); + } + else if (token.type === Token.OPERATOR) { + output.push(v); + } + else { + output.push(objectify(token)); + } + } + + return output; + }; + return objectify(_.tokenize(expression_string)); + }; + //helper method for toTeX + var chunkAtCommas = function (arr) { + var j, k = 0, chunks = [[]]; + for (var j = 0, l = arr.length; j < l; j++) { + if (arr[j] === ',') { + k++; + chunks[k] = []; + } + else { + chunks[k].push(arr[j]); + } + } + return chunks; + }; + //helper method for toTeX + var rem_brackets = function (str) { + return str.replace(/^\\left\((.+)\\right\)$/g, function (str, a) { + if (a) + return a; + return str; + }); + }; + /* + * Convert expression or object to LaTeX + * @param {String} expression_or_obj + * @param {object} opt + * @returns {String} + */ + this.toTeX = function (expression_or_obj, opt) { + opt = opt || {}; + var obj = typeof expression_or_obj === 'string' ? this.toObject(expression_or_obj) : expression_or_obj, + TeX = [], + cdot = typeof opt.cdot === 'undefined' ? '\\cdot' : opt.cdot; //set omit cdot to true by default + + if (isArray(obj)) { + var nobj = [], a, b; + //first handle ^ + for (var i = 0; i < obj.length; i++) { + a = obj[i]; + + if (obj[i + 1] === '^') { + b = obj[i + 2]; + nobj.push(LaTeX.braces(this.toTeX([a])) + '^' + LaTeX.braces(this.toTeX([b]))); + i += 2; + } + else + nobj.push(a); + } + obj = nobj; + } + + for (var i = 0, l = obj.length; i < l; i++) { + var e = obj[i]; + //convert * to cdot + if (e === '*') { + e = cdot; + } + + if (isSymbol(e)) { + if (e.group === FN) { + var fname = e.fname, f; + + if (fname === SQRT) + f = '\\sqrt' + LaTeX.braces(this.toTeX(e.args)); + else if (fname === ABS) + f = LaTeX.brackets(this.toTeX(e.args), 'abs'); + else if (fname === PARENTHESIS) + f = LaTeX.brackets(this.toTeX(e.args), 'parens'); + else if (fname === Settings.LOG10) { + f = '\\'+Settings.LOG10_LATEX+'\\left( ' + this.toTeX(e.args) + '\\right)'; + } + else if (fname === 'integrate') { + /* Retrive [Expression, x] */ + var chunks = chunkAtCommas(e.args); + /* Build TeX */ + var expr = LaTeX.braces(this.toTeX(chunks[0])), + dx = this.toTeX(chunks[1]); + f = '\\int ' + expr + '\\, d' + dx; + } + else if (fname === 'defint') { + var chunks = chunkAtCommas(e.args), + expr = LaTeX.braces(this.toTeX(chunks[0])), + dx = this.toTeX(chunks[3]), + lb = this.toTeX(chunks[1]), + ub = this.toTeX(chunks[2]); + f = '\\int\\limits_{' + lb + '}^{' + ub + '} ' + expr + '\\, d' + dx; + + } + else if (fname === 'diff') { + var chunks = chunkAtCommas(e.args); + var dx = '', expr = LaTeX.braces(this.toTeX(chunks[0])); + /* Handle cases: one argument provided, we need to guess the variable, and assume n = 1 */ + if (chunks.length === 1) { + var vars = []; + for (j = 0; j < chunks[0].length; j++) { + if (chunks[0][j].group === 3) { + vars.push(chunks[0][j].value); + } + } + vars.sort(); + dx = vars.length > 0 ? ('\\frac{d}{d ' + vars[0] + '}') : '\\frac{d}{d x}'; + } + /* If two arguments, we have expression and variable, we assume n = 1 */ + else if (chunks.length === 2) { + dx = '\\frac{d}{d ' + chunks[1] + '}'; + } + /* If we have more than 2 arguments, we assume we've got everything */ + else { + dx = '\\frac{d^{' + chunks[2] + '}}{d ' + this.toTeX(chunks[1]) + '^{' + chunks[2] + '}}'; + } + + f = dx + '\\left(' + expr + '\\right)'; + + } + else if (fname === 'sum' || fname === 'product') { + // Split e.args into 4 parts based on locations of , symbols. + var argSplit = [[], [], [], []], j = 0, i; + for (i = 0; i < e.args.length; i++) { + if (e.args[i] === ',') { + j++; + continue; + } + argSplit[j].push(e.args[i]); + } + // Then build TeX string. + f = (fname === 'sum' ? '\\sum_' : '\\prod_') + LaTeX.braces(this.toTeX(argSplit[1]) + ' = ' + this.toTeX(argSplit[2])); + f += '^' + LaTeX.braces(this.toTeX(argSplit[3])) + LaTeX.braces(this.toTeX(argSplit[0])); + } + else if (fname === 'limit') { + var args = chunkAtCommas(e.args).map(function (x) { + if (Array.isArray(x)) + return _.toTeX(x.join('')); + return _.toTeX(String(x)); + }); + f = '\\lim_' + LaTeX.braces(args[1] + '\\to ' + args[2]) + ' ' + LaTeX.braces(args[0]); + } + else if (fname === FACTORIAL || fname === DOUBLEFACTORIAL) + f = this.toTeX(e.args) + (fname === FACTORIAL ? '!' : '!!'); + else { + f = LaTeX.latex(e); + //f = '\\mathrm'+LaTeX.braces(fname.replace(/_/g, '\\_')) + LaTeX.brackets(this.toTeX(e.args), 'parens'); + } + + TeX.push(f); + } + else + TeX.push(LaTeX.latex(e)); + } + else if (isArray(e)) { + TeX.push(LaTeX.brackets(this.toTeX(e))); + } + else { + if (e === '/') + TeX.push(LaTeX.frac(rem_brackets(TeX.pop()), rem_brackets(this.toTeX([obj[++i]])))); + else + TeX.push(e); + } + } + + return TeX.join(' '); + }; + +//Parser.functions ============================================================== + /* Although parens is not a "real" function it is important in some cases when the + * symbol must carry parenthesis. Once set you don't have to worry about it anymore + * as the parser will get rid of it at the first opportunity + */ + function parens(symbol) { + if (Settings.PARSE2NUMBER) { + return symbol; + } + return _.symfunction('parens', [symbol]); + } + + function abs(symbol) { + + //|-∞| = ∞ + if(symbol.isInfinity) { + return Symbol.infinity(); + } + if (symbol.multiplier.lessThan(0)) + symbol.multiplier.negate(); + + if (symbol.isImaginary()) { + var re = symbol.realpart(); + var im = symbol.imagpart(); + if (re.isConstant() && im.isConstant()) + return sqrt(_.add(_.pow(re, new Symbol(2)), _.pow(im, new Symbol(2)))); + } + else if (isNumericSymbol(symbol) || even(symbol.power)) { + return symbol; + } + + if (symbol.isComposite()) { + var ms = []; + symbol.each(function (x) { + ms.push(x.multiplier); + }); + var gcd = Math2.QGCD.apply(null, ms); + if (gcd.lessThan(0)) { + symbol.multiplier = symbol.multiplier.multiply(new Frac(-1)); + symbol.distributeMultiplier(); + } + } + + //convert |n*x| to n*|x| + var m = _.parse(symbol.multiplier); + symbol.toUnitMultiplier(); + + return _.multiply(m, _.symfunction(ABS, [symbol])); + } + /** + * The factorial function + * @param {Symbol} symbol + * @return {Symbol} + */ + function factorial(symbol) { + var retval; + if (isVector(symbol)) { + var V = new Vector(); + symbol.each(function (x, i) { + //i start at one. + V.set(i - 1, factorial(x)); + }); + return V; + } + if (isMatrix(symbol)) { + var M = new Matrix(); + symbol.each(function (x, i, j) { + //i start at one. + M.set(i, j, factorial(x)); + }); + return M; + } + if (Settings.PARSE2NUMBER && symbol.isConstant()) { + if (isInt(symbol)) { + retval = Math2.bigfactorial(symbol); + } + else { + retval = Math2.gamma(symbol.multiplier.add(new Frac(1)).toDecimal()); + } + + retval = bigConvert(retval); + return retval; + } + else if (symbol.isConstant()) { + var den = symbol.getDenom(); + if (den.equals(2)) { + var num = symbol.getNum(); + var a, b, c, n; + + if (!symbol.multiplier.isNegative()) { + n = _.add(num, new Symbol(1)).multiplier.divide(new Frac(2)); + a = Math2.bigfactorial(new Frac(2).multiply(n)); + b = _.pow(new Symbol(4), new Symbol(n)).multiplier.multiply(Math2.bigfactorial(n)); + } + else { + n = _.subtract(num.negate(), new Symbol(1)).multiplier.divide(new Frac(2)); + a = _.pow(new Symbol(-4), new Symbol(n)).multiplier.multiply(Math2.bigfactorial(n)); + b = Math2.bigfactorial(new Frac(2).multiply(n)); + } + c = a.divide(b); + return _.multiply(_.parse('sqrt(pi)'), new Symbol(c)); + } + } + return _.symfunction(FACTORIAL, [symbol]); + } + ; + /** + * Returns the continued fraction of a number + * @param {Symbol} symbol + * @param {Symbol} n + * @returns {Symbol} + */ + function continued_fraction(symbol, n) { + var _symbol = evaluate(symbol); + if (_symbol.isConstant()) { + var cf = Math2.continuedFraction(_symbol, n); + //convert the fractions array to a new Vector + var fractions = Vector.fromArray(cf.fractions.map(function (x) { + return new Symbol(x); + })); + return Vector.fromArray([new Symbol(cf.sign), new Symbol(cf.whole), fractions]); + } + return _.symfunction('continued_fraction', arguments); + } + /** + * Returns the error function + * @param {Symbol} symbol + * @returns {Symbol} + */ + function erf(symbol) { + var _symbol = evaluate(symbol); + + if (_symbol.isConstant()) { + return Math2.erf(_symbol); + } + else if(_symbol.isImaginary()) { + return complex.erf(symbol); + } + return _.symfunction('erf', arguments); + } + ; + /** + * The mod function + * @param {Symbol} symbol1 + * @param {Symbol} symbol2 + * @returns {Symbol} + */ + function mod(symbol1, symbol2) { + if (symbol1.isConstant() && symbol2.isConstant()) { + var retval = new Symbol(1); + retval.multiplier = retval.multiplier.multiply(symbol1.multiplier.mod(symbol2.multiplier)); + return retval; + } + //try to see if division has remainder of zero + var r = _.divide(symbol1.clone(), symbol2.clone()); + if (isInt(r)) + return new Symbol(0); + return _.symfunction('mod', [symbol1, symbol2]); + } + /** + * A branghing function + * @param {Boolean} condition + * @param {Symbol} a + * @param {Symbol} b + * @returns {Symbol} + */ + function IF(condition, a, b) { + if (typeof condition !== 'boolean') + if (isNumericSymbol(condition)) + condition = !!Number(condition); + if (condition) + return a; + return b; + } + /** + * + * @param {Matrix|Vector|Set|Collection} obj + * @param {Symbol} item + * @returns {Boolean} + */ + function is_in(obj, item) { + if(isMatrix(obj)) { + for(var i=0, l=obj.rows(); i 0^(1/0) => undefined + if(p.equals(0)) { + throw new UndefinedError('Unable to calculate nthroots of zero'); + } + + //Stop computation if it negative and even since we have an imaginary result + if(num < 0 && even(p)) + throw new Error('Cannot calculate nthroot of negative number for even powers'); + + //return non numeric values unevaluated + if(!num.isConstant(true)) { + return _.symfunction('nthroot', arguments); + } + + //evaluate numeric values + if(num.group !== N) { + num = evaluate(num); + } + + //default is to return a big value + if (typeof asbig === 'undefined') + asbig = true; + + prec = prec || 25; + + var sign = num.sign(); + var retval; + var ans; + + if(sign < 0) { + num = abs(num); //remove the sign + } + + if (isInt(num) && p.isConstant()) { + + if (num < 18446744073709551616) { + //2^64 + ans = Frac.create(Math.pow(num, 1 / p)); + } + else { + ans = Math2.nthroot(num, p); + } + + var retval; + if (asbig) { + retval = new Symbol(ans); + } + retval = new Symbol(ans.toDecimal(prec)); + + return _.multiply(new Symbol(sign), retval); + } + } + + function pfactor(symbol) { + //Fix issue #458 | nerdamer("sqrt(1-(3.3333333550520926e-7)^2)").evaluate().text() + //More Big Number issues >:( + if (symbol.greaterThan(9.999999999998891e+41) || symbol.equals(-1)) + return symbol; + //Fix issue #298 + if (symbol.equals(Math.PI)) + return new Symbol(Math.PI); + //evaluate the symbol to merge constants + symbol = evaluate(symbol.clone()); + + + if (symbol.isConstant()) { + var retval = new Symbol(1); + var m = symbol.toString(); + if (isInt(m)) { + var factors = Math2.ifactor(m); + for (var factor in factors) { + var p = factors[factor]; + retval = _.multiply(retval, _.symfunction('parens', [new Symbol(factor).setPower(new Frac(p))])); + } + } + else { + var n = pfactor(new Symbol(symbol.multiplier.num)); + var d = pfactor(new Symbol(symbol.multiplier.den)); + retval = _.multiply(_.symfunction('parens', [n]), _.symfunction('parens', [d]).invert()); + } + } + else + retval = _.symfunction('pfactor', arguments); + return retval; + } + + /** + * Get's the real part of a complex number. Return number if real + * @param {Symbol} symbol + * @returns {Symbol} + */ + function realpart(symbol) { + return symbol.realpart(); + } + + /** + * Get's the imaginary part of a complex number + * @param {Symbol} symbol + * @returns {Symbol} + */ + function imagpart(symbol) { + return symbol.imagpart(); + } + + /** + * Computes the conjugate of a complex number + * @param {Symbol} symbol + * @returns {Symbol} + */ + function conjugate(symbol) { + var re = symbol.realpart(); + var im = symbol.imagpart(); + return _.add(re, _.multiply(im.negate(), Symbol.imaginary())); + } + + /** + * Returns the arugment of a complex number + * @param {Symbol} symbol + * @returns {Symbol} + */ + function arg(symbol) { + var re = symbol.realpart(); + var im = symbol.imagpart(); + if (re.isConstant() && im.isConstant()) + return new Symbol(Math.atan2(im, re)); + return _.symfunction('atan2', [im, re]); + } + + /** + * Returns the arugment of a complex number + * @param {Symbol} symbol + * @returns {Symbol} + */ + function arg(symbol) { + var re = symbol.realpart(); + var im = symbol.imagpart(); + if (re.isConstant() && im.isConstant()) { + if(im.equals(0) && re.equals(-1)) { + return _.parse('pi'); + } + else if(im.equals(1) && re.equals(0)) { + return _.parse('pi/2'); + } + else if(im.equals(1) && re.equals(1)) { + return _.parse('pi/4'); + } + return new Symbol(Math.atan2(im, re)); + } + return _.symfunction('atan2', [im, re]); + } + + /** + * Returns the polarform of a complex number + * @param {Symbol} symbol + * @returns {Symbol} + */ + function polarform(symbol) { + var p, r, e, theta; + p = Symbol.toPolarFormArray(symbol); + theta = p[1]; + r = p[0]; + e = _.parse(format('e^({0}*({1}))', Settings.IMAGINARY, theta)); + return _.multiply(r, e); + } + + /** + * Returns the rectangular form of a complex number. Does not work for symbolic coefficients + * @param {Symbol} symbol + * @returns {Symbol} + */ + function rectform(symbol) { + //TODO: e^((i*pi)/4) + var original = symbol.clone(); + try { + var f, p, q, s, h, d, n; + f = decompose_fn(symbol, 'e', true); + p = _.divide(f.x.power, Symbol.imaginary()); + q = evaluate(trig.tan(p)); + s = _.pow(f.a, new Symbol(2)); + d = q.getDenom(true); + n = q.getNum(); + h = Symbol.hyp(n, d); + //check + if (h.equals(f.a)) { + return _.add(d, _.multiply(Symbol.imaginary(), n)); + } + else { + return original; + } + } + catch (e) { + return original; + } + } + + function symMinMax(f, args) { + args.map(function (x) { + x.numVal = evaluate(x).multiplier; + }); + var l, a, b, a_val, b_val; + while (true) { + l = args.length; + if (l < 2) + return args[0]; + a = args.pop(); + b = args[l - 2]; + if (f === 'min' ? a.numVal < b.numVal : a.numVal > b.numVal) { + args.pop(); + args.push(a); + } + } + } + + /** + * Returns maximum of a set of numbers + * @returns {Symbol} + */ + function max() { + var args = [].slice.call(arguments); + if (allSame(args)) + return args[0]; + if (allNumbers(args)) + return new Symbol(Math.max.apply(null, args)); + if (Settings.SYMBOLIC_MIN_MAX && allConstants(args)) + return symMinMax('max', args); + return _.symfunction('max', args); + } + + /** + * Returns minimum of a set of numbers + * @returns {Symbol} + */ + function min() { + var args = [].slice.call(arguments); + if (allSame(args)) + return args[0]; + if (allNumbers(args)) + return new Symbol(Math.min.apply(null, args)); + if (Settings.SYMBOLIC_MIN_MAX && allConstants(args)) + return symMinMax('min', args); + return _.symfunction('min', args); + } + + /** + * Returns the sign of a number + * @param {Symbol} x + * @returns {Symbol} + */ + function sign(x) { + if (x.isConstant(true)) + return new Symbol(Math.sign(evaluate(x))); + return _.symfunction('sign', arguments); + } + + function sort(symbol, opt) { + opt = opt ? opt.toString() : 'asc'; + var getval = function (e) { + if (e.group === N) + return e.multiplier; + if (e.group === FN) { + if (e.fname === '') + return getval(e.args[0]); + return e.fname; + } + if (e.group === S) + return e.power; + + return e.value; + }; + var symbols = isVector(symbol) ? symbol.elements : symbol.collectSymbols(); + return new Vector(symbols.sort(function (a, b) { + var aval = getval(a), + bval = getval(b); + if (opt === 'desc') + return bval - aval; + return aval - bval; + })); + } + + /** + * The log function + * @param {Symbol} symbol + * @param {Symbol} base + * @returns {Symbol} + */ + function log(symbol, base) { + if(symbol.equals(1)) { + return new Symbol(0); + } + + var retval; + if (symbol.fname === SQRT && symbol.multiplier.equals(1)) { + return _.divide(log(symbol.args[0]), new Symbol(2)); + } + + //log(0) is undefined so complain + if (symbol.equals(0)) { + throw new UndefinedError(Settings.LOG+'(0) is undefined!'); + } + + //deal with imaginary values + if (symbol.isImaginary()) { + return complex.evaluate(symbol, Settings.LOG); + /* + var a = format('log(sqrt(({0})^2+({1})^2))-({2})*atan2(({1}),({0}))', symbol.imagpart(), symbol.realpart(), Settings.IMAGINARY), + b = format('({0})*PI/2', Settings.IMAGINARY); + + return _.add(_.parse(a), _.parse(b)); + */ + } + + if (symbol.isConstant() && typeof base !== 'undefined' && base.isConstant()) { + /* + var log_sym = Math2.bigLog(symbol.multiplier); + var log_base = Math2.bigLog(base.multiplier); + retval = new Symbol(log_sym.divide()); + */ + var log_sym = Math.log(symbol); + var log_base = Math.log(base); + retval = new Symbol(log_sym / log_base); + } + else if (symbol.group === EX && symbol.power.multiplier.lessThan(0) || symbol.power.toString() === '-1') { + symbol.power.negate(); + //move the negative outside but keep the positive inside :) + retval = log(symbol).negate(); + } + else if (symbol.value === 'e' && symbol.multiplier.equals(1)) { + var p = symbol.power; + retval = isSymbol(p) ? p : new Symbol(p); + } + else if (symbol.group === FN && symbol.fname === 'exp') { + var s = symbol.args[0]; + if (symbol.multiplier.equals(1)) + retval = _.multiply(s, new Symbol(symbol.power)); + else + retval = _.symfunction(Settings.LOG, [symbol]); + } + else if (Settings.PARSE2NUMBER && isNumericSymbol(symbol)) { + var img_part; + if (symbol.multiplier.lessThan(0)) { + symbol.negate(); + img_part = _.multiply(new Symbol(Math.PI), new Symbol('i')); + } + retval = new Symbol(Math.log(symbol.multiplier.toDecimal())); + if (img_part) + retval = _.add(retval, img_part); + } + else { + var s; + if (!symbol.power.equals(1)) { + s = symbol.group === EX ? symbol.power : new Symbol(symbol.power); + symbol.toLinear(); + } + //log(a,a) = 1 since the base is allowed to be changed. + //This was pointed out by Happypig375 in issue #280 + if (arguments.length > 1 && allSame(arguments)) + retval = new Symbol(1); + else + retval = _.symfunction(Settings.LOG, arguments); + + if (s) + retval = _.multiply(s, retval); + } + return retval; + } + + /** + * Round a number up to s decimal places + * @param {Number} x + * @param {int} s - the number of decimal places + * @returns {undefined} + */ + function round(x, s) { + var sIsConstant = s && s.isConstant() || typeof s === 'undefined'; + if (x.isConstant() && sIsConstant) { + var v, e, exp, retval; + v = x; + //round the coefficient of then number but not the actual decimal value + //we know this because a negative number was passed + if (s && s.lessThan(0)) { + s = abs(s); + //convert the number to exponential form + e = Number(x).toExponential().toString().split('e'); + //point v to the coefficient of then number + v = e[0]; + //set the expontent + exp = e[1]; + } + //round the number to the requested precision + retval = new Symbol(nround(v, Number(s || 0))); + //if there's a exponent then put it back + return _.multiply(retval, _.pow(new Symbol(10), new Symbol(exp || 0))) + } + + + return _.symfunction('round', arguments); + } + + /** + * Gets the quadrant of the trig function + * @param {Frac} m + * @returns {Int} + */ + function getQuadrant(m) { + var v = m % 2, quadrant; + + if (v < 0) + v = 2 + v; //put it in terms of pi + + if (v >= 0 && v <= 0.5) + quadrant = 1; + else if (v > 0.5 && v <= 1) + quadrant = 2; + else if (v > 1 && v <= 1.5) + quadrant = 3; + else + quadrant = 4; + return quadrant; + } + + /* + * Serves as a bridge between numbers and bigNumbers + * @param {Frac|Number} n + * @returns {Symbol} + */ + function bigConvert(n) { + if (!isFinite(n)) { + var sign = Math.sign(n); + var r = new Symbol(String(Math.abs(n))); + r.multiplier = r.multiplier.multiply(new Frac(sign)); + return r; + } + if (isSymbol(n)) + return n; + if (typeof n === 'number') { + try { + n = Frac.simple(n); + } + catch (e) { + n = new Frac(n); + } + } + + var symbol = new Symbol(0); + symbol.multiplier = n; + return symbol; + } + ; + + function clean(symbol) { + // handle functions with numeric values + // handle denominator within denominator + // handle trig simplifications + var g = symbol.group, retval; + //Now let's get to work + if (g === CP) { + var num = symbol.getNum(), + den = symbol.getDenom() || new Symbol(1), + p = Number(symbol.power), + factor = new Symbol(1); + if (Math.abs(p) === 1) { + den.each(function (x) { + if (x.group === CB) { + factor = _.multiply(factor, clean(x.getDenom())); + } + else if (x.power.lessThan(0)) { + factor = _.multiply(factor, clean(x.clone().toUnitMultiplier())); + } + }); + + var new_den = new Symbol(0); + //now divide out the factor and add to new den + den.each(function (x) { + new_den = _.add(_.divide(x, factor.clone()), new_den); + }); + + factor.invert(); //invert so it can be added to the top + var new_num; + if (num.isComposite()) { + new_num = new Symbol(0); + num.each(function (x) { + new_num = _.add(_.multiply(clean(x), factor.clone()), new_num); + }); + } + else + new_num = _.multiply(factor, num); + + retval = _.divide(new_num, new_den); + } + } + else if (g === CB) { + retval = new Symbol(1); + symbol.each(function (x) { + retval = _.multiply(retval, _.clean(x)); + }); + } + else if (g === FN) { + if (symbol.args.length === 1 && symbol.args[0].isConstant()) + retval = block('PARSE2NUMBER', function () { + return _.parse(symbol); + }, true); + } + + if (!retval) + retval = symbol; + + return retval; + } + + /** + * Expands a symbol + * @param symbol + */ + function expand(symbol) { + //deal with parenthesis + if (symbol.group === FN && symbol.fname === '') { + return _.expand(symbol.args[0]); + } + + //TODO - some test need to be verified in order to implement this + /* + if(symbol.group === FN) { + symbol.args[0] = _.expand(symbol.args[0]); + symbol.updateHash(); + return symbol; + } + */ + + if (!symbol.symbols) + return symbol; //nothing to do + + var original = symbol.clone(); + try { + + if (!symbol.symbols) + return symbol; + + //expand all the symbols + for (var s in symbol.symbols) { + var x = symbol.symbols[s]; + symbol.symbols[s] = expand(x); + } + + symbol = _.parse(symbol); + + var p = symbol.power, + m = symbol.multiplier.clone(), + pn = Number(p); + if (isInt(pn) && pn > 0 && symbol.isComposite()) { + var f = new Symbol(0); + //we loop through the f and make sure that it's fully expanded + for (var x in symbol.symbols) { + var sym = symbol.symbols[x]; + if (sym.power.greaterThan(1)) + sym = _.expand(sym); + f = _.add(f, sym); + } + + //assume (a+b)^3 = (a+b)(a+b)(a+b) = (b^2+2*a*b+a^2)(a+b) + //we have n=p-1=2 iterations where p=3 in this case + var n = pn - 1; + //Initiate with the first term. Remember that we have p-1 iterations because + //the first iteration is equal to P where p is the polynomial + var result = f.clone(); //initiate this as the first term + //the first loop is the top iterator and remains untouched. No sub-symbols + //from this symbol are allowed to be touched + for (var i = 0; i < n; i++) { + var t = new Symbol(0); + for (var x in f.symbols) { + var a = f.symbols[x]; + //we now loop through the + for (var y in result.symbols) { + var b = _.multiply(a.clone(), result.symbols[y]); + //the result must always be a composite. If not expand + if (b.group === CB) + b = _.expand(b); + t = _.add(t, b); + } + } + ; + result = t; + } + + //put back the multiplier + if (!m.equals(1)) { + for (var s in result.symbols) { + var x = result.symbols[s]; + x.multiplier = x.multiplier.multiply(m); + if (x.isComposite()) + x.distributeMultiplier(); + symbol.symbols[s] = x; + } + } + + return result; + } + else if (symbol.group === CB) { + //check if the symbol has composites + var hascomposites = false, + sp = symbol.power.clone(), + sign = symbol.power.sign(); + + for (var x in symbol.symbols) { + var sub = symbol.symbols[x]; + if (sub.isComposite()) { + hascomposites = true; + break; + } + + if (isSymbol(sub.power) || isSymbol(sp)) { + sub.power = _.multiply(sub.power, Symbol(sp)); + sub.group = EX; + } + else + sub.power = sub.power.multiply(sp); + } + + symbol.toLinear(); + + //I'm going to be super lazy here and take the easy way out. TODO: do this without re-parsing + symbol = _.parse(symbol.text()); + + if (!hascomposites) + return symbol; //nothing to do here + + var result = new Symbol(0); + var composites = [], + non_composites = new Symbol(symbol.multiplier); + + //sort them out + for (var s in symbol.symbols) { + var x = symbol.symbols[s]; + + if (x.group === EX) + continue; + if (x.isComposite()) { + var p = x.power, isDenom = false; + ; + if (isInt(p)) { + if (p < 0) { + x.power.negate(); + isDenom = true; + } + } + + if (isDenom) { + x.power.negate(); + non_composites = _.multiply(non_composites, x); + } + else + composites.push(x); + } + else + non_composites = _.multiply(non_composites, x); + } + + //grab the first symbol since we'll loop over that one to begin + result = composites.pop(); + + while (composites.length) { + var s = composites.pop(); + var t = new Symbol(0); + result.each(function (x) { + s.each(function (y) { + var prod = _.multiply(x.clone(), y.clone()); + t = _.add(t, prod); + }); + }); + + result = t; + } + + var finalResult = new Symbol(0); + //put back the multiplier + result.each(function (x) { + finalResult = _.add(finalResult, expand(_.multiply(non_composites, x))); + }); + //expand the power + finalResult.power = finalResult.power.multiply(sp.abs()); + + symbol = _.expand(finalResult); + + if (sign < 0) + symbol.invert(); + } + } + catch (e) { + return original; + } + + return symbol; + } + + /** + * Returns an identity matrix of nxn + * @param {Number} n + * @returns {Matrix} + */ + function imatrix(n) { + return Matrix.identity(n); + } + + /** + * Retrieves and item from a vector + * @param {Vector} vector + * @param {Number} index + * @returns {Vector|Symbol} + */ + function vecget(vector, index) { + if (index.isConstant() && isInt(index)) + return vector.elements[index]; + return _.symfunction('vecget', arguments); + } + + /** + * Removes duplicates from a vector + * @param {Vector} vector + * @param {Number} tolerance + * @returns {Vector} + */ + function vectrim(vector, tolerance) { + tolerance = typeof tolerance === 'undefined' ? 1e-14 : tolerance; + + vector = vector.clone(); + + tolerance = Number(tolerance); + //place algebraic solutions first + vector.elements.sort(function(a, b) { + return b.group - a.group; + }); + //depending on the start point we may have duplicates so we need to clean those up a bit. + //start by creating an object with the solution and the numeric value. This way we don't destroy algebraic values + vector.elements = removeDuplicates(vector.elements, function(a, b) { + var diff = Number(_.subtract(evaluate(a), evaluate(b)).abs()); + return diff <= tolerance; + }); + + return vector; + } + + /** + * Set a value for a vector at a given index + * @param {Vector} vector + * @param {Number} index + * @param {Symbol} value + * @returns {Vector} + */ + function vecset(vector, index, value) { + if (!index.isConstant) + return _.symfunction('vecset', arguments); + vector.elements[index] = value; + return vector; + } + + function matget(matrix, i, j) { + if (i.isConstant() && j.isConstant()) + return matrix.elements[i][j]; + return _.symfunction('matget', arguments); + } + + function matgetrow(matrix, i) { + if (i.isConstant()) + return new Matrix(matrix.elements[i]); + return _.symfunction('matgetrow', arguments); + } + + function matsetrow(matrix, i, x) { + //handle symbolics + if (!i.isConstant()) + return _.symfunction('matsetrow', arguments); + if (matrix.elements[i].length !== x.elements.length) + throw new DimensionError('Matrix row must match row dimensions!'); + var M = matrix.clone(); + M.elements[i] = x.clone().elements; + return M; + } + + function matgetcol(matrix, col_index) { + //handle symbolics + if (!col_index.isConstant()) + return _.symfunction('matgetcol', arguments); + col_index = Number(col_index); + var M = Matrix.fromArray([]); + matrix.each(function (x, i, j) { + if (j === col_index) { + M.elements.push([x.clone()]); + } + }); + return M; + } + + function matsetcol(matrix, j, col) { + //handle symbolics + if (!j.isConstant()) + return _.symfunction('matsetcol', arguments); + j = Number(j); + if (matrix.rows() !== col.elements.length) + throw new DimensionError('Matrix columns must match number of columns!'); + col.each(function (x, i) { + matrix.set(i - 1, j, x.elements[0].clone()); + }); + return matrix; + } + + + function matset(matrix, i, j, value) { + matrix.elements[i][j] = value; + return matrix; + } + + //the constructor for vectors + function vector() { + return new Vector([].slice.call(arguments)); + } + + //the constructor for matrices + function matrix() { + return Matrix.fromArray(arguments); + } + + //the constructor for sets + function set() { + return Set.fromArray(arguments); + } + + function determinant(symbol) { + if (isMatrix(symbol)) { + return symbol.determinant(); + } + return symbol; + } + + function size(symbol) { + var retval; + if (isMatrix(symbol)) + retval = [new Symbol(symbol.cols()), new Symbol(symbol.rows())]; + else if(isVector(symbol) || isSet(symbol)) + retval = new Symbol(symbol.elements.length); + else + err('size expects a matrix or a vector'); + return retval; + } + + function dot(vec1, vec2) { + if (isVector(vec1) && isVector(vec2)) + return vec1.dot(vec2); + err('function dot expects 2 vectors'); + } + + function cross(vec1, vec2) { + if (isVector(vec1) && isVector(vec2)) + return vec1.cross(vec2); + err('function cross expects 2 vectors'); + } + + function transpose(mat) { + if (isMatrix(mat)) + return mat.transpose(); + err('function transpose expects a matrix'); + } + + function invert(mat) { + if (isMatrix(mat)) + return mat.invert(); + err('invert expects a matrix'); + } + + //basic set functions + function union(set1, set2) { + return set1.union(set2); + } + + function intersection(set1, set2) { + return set1.intersection(set2); + } + + function contains(set1, e) { + return set1.contains(e); + } + + function difference(set1, set2) { + return set1.difference(set2); + } + + function intersects(set1, set2) { + return new Symbol(Number(set1.intersects(set2))); + } + + function is_subset(set1, set2) { + return new Symbol(Number(set1.is_subset(set2))); + } + + function print() { + arguments2Array(arguments).map(function(x) { + console.log(x.toString()); + }); + } + + function testSQRT(symbol) { + //wrap the symbol in sqrt. This eliminates one more check down the line. + if (!isSymbol(symbol.power) && symbol.power.absEquals(0.5)) { + var sign = symbol.power.sign(); + //don't devide the power directly. Notice the use of toString. This makes it possible + //to use a bigNumber library in the future + var retval = sqrt(symbol.group === P ? new Symbol(symbol.value) : symbol.toLinear()); + //place back the sign of the power + if (sign < 0) + retval.invert(); + return retval; + } + return symbol; + } + + //try to reduce a symbol by pulling its power + function testPow(symbol) { + if (symbol.group === P) { + var v = symbol.value; + + var fct = primeFactors(v)[0]; + + //safety + if(!fct) { + warn('Unable to compute prime factors. This should not happen. Please review and report.'); + return symbol; + } + + var n = new Frac(Math.log(v) / Math.log(fct)), + p = n.multiply(symbol.power); + + //we don't want a more complex number than before + if (p.den > symbol.power.den) + return symbol; + + if (isInt(p)) + symbol = Symbol(Math.pow(fct, p)); + else + symbol = new Symbol(fct).setPower(p); + } + + return symbol; + } + + //Link the functions to the parse so they're available outside of the library. + //This is strictly for convenience and may be deprecated. + this.expand = expand; + this.round = round; + this.clean = clean; + this.sqrt = sqrt; + this.cbrt = cbrt; + this.abs = abs; + this.log = log; + this.rationalize = rationalize; + this.nthroot = nthroot; + this.arg = arg; + this.conjugate = conjugate; + this.imagpart = imagpart; + this.realpart = realpart; + + //TODO: + //Utilize the function below instead of the linked function + this.getFunction = function(name) { + return functions[name][0]; + }; + +//Parser.methods =============================================================== + this.addPreprocessor = function (name, action, order, shift_cells) { + var names = preprocessors.names; + var actions = preprocessors.actions; + if ((typeof action !== 'function')) //the person probably forgot to specify a name + throw new PreprocessorError('Incorrect parameters. Function expected!'); + if (!order) { + names.push(name); + actions.push(action); + } + else { + if (shift_cells) { + names.splice(order, 0, name); + actions.splice(order, 0, action); + } + else { + names[order] = name; + actions[order] = action; + } + } + }; + + this.getPreprocessors = function () { + var preprocessors = {}; + for (var i = 0, l = preprocessors.names.length; i < l; i++) { + var name = preprocessors.names[i]; + preprocessors[name] = { + order: i, + action: preprocessors.actions[i] + }; + } + return preprocessors; + }; + + this.removePreprocessor = function (name, shift_cells) { + var i = preprocessors.names.indexOf(name); + if (shift_cells) { + remove(preprocessors.names, i); + remove(preprocessors.actions, i); + } + else { + preprocessors.names[i] = undefined; + preprocessors.actions[i] = undefined; + } + }; + + //The loader for functions which are not part of Math2 + this.mapped_function = function () { + var subs = {}, + params = this.params; + for (var i = 0; i < params.length; i++) + subs[params[i]] = arguments[i]; + + return _.parse(this.body, subs); + }; + /** + * Adds two symbols + * @param {Symbol} a + * @param {Symbol} b + * @returns {Symbol} + */ + this.add = function (a, b) { + var aIsSymbol = isSymbol(a), + bIsSymbol = isSymbol(b); + //we're dealing with two symbols + if (aIsSymbol && bIsSymbol) { + //forward the adding of symbols with units to the Unit module + if (a.unit || b.unit) { + return _.Unit.add(a, b); + } + //handle Infinity + //https://www.encyclopediaofmath.org/index.php/Infinity + if (a.isInfinity || b.isInfinity) { + var aneg = a.multiplier.lessThan(0), + bneg = b.multiplier.lessThan(0); + + if (a.isInfinity && b.isInfinity && aneg !== bneg) { + throw new UndefinedError('(' + a + ')+(' + b + ') is not defined!'); + } + + var inf = Symbol.infinity(); + if (bneg) + inf.negate(); + return inf; + } + + if (a.isComposite() && a.isLinear() && b.isComposite() && b.isLinear()) { + a.distributeMultiplier(); + b.distributeMultiplier(); + } + //no need to waste time on zeroes + if (a.multiplier.equals(0)) + return b; + if (b.multiplier.equals(0)) + return a; + + if (a.isConstant() && b.isConstant() && Settings.PARSE2NUMBER) { + var result = new Symbol(a.multiplier.add(b.multiplier).toDecimal(Settings.PRECISION)); + return result; + } + + var g1 = a.group, + g2 = b.group, + ap = a.power.toString(), + bp = b.power.toString(); + + //always keep the greater group on the left. + if (g1 < g2 || (g1 === g2 && ap > bp && bp > 0)) { + return this.add(b, a); + } + + /*note to self: Please don't forget about this dilemma ever again. In this model PL and CB goes crazy + * because it doesn't know which one to prioritize. */ + //correction to PL dilemma + if (g1 === CB && g2 === PL && a.value === b.value) { + //swap + var t = a; + a = b; + b = t; + g1 = a.group; + g2 = b.group; + ap = a.power.toString(); + bp = b.power.toString(); + } + + var powEQ = ap === bp, + v1 = a.value, + v2 = b.value, + aIsComposite = a.isComposite(), + bIsComposite = b.isComposite(), + h1, h2, result; + + if (aIsComposite) + h1 = text(a, 'hash'); + if (bIsComposite) + h2 = text(b, 'hash'); + + if (g1 === CP && g2 === CP && b.isLinear() && !a.isLinear() && h1 !== h2) { + return this.add(b, a); + } + + //PL & PL should compare hashes and not values e.g. compare x+x^2 with x+x^3 and not x with x + if (g1 === PL && g2 === PL) { + v1 = h1; + v2 = h2; + } + + var PN = g1 === P && g2 === N, + PNEQ = a.value === b.multiplier.toString(), + valEQ = (v1 === v2 || h1 === h2 && h1 !== undefined || (PN && PNEQ)); + + //equal values, equal powers + if (valEQ && powEQ && g1 === g2) { + //make sure to convert N to something P can work with + if (PN) + b = b.convert(P);//CL + + //handle PL + if (g1 === PL && (g2 === S || g2 === P)) { + a.distributeMultiplier(); + result = a.attach(b); + } + else { + result = a;//CL + if (a.multiplier.isOne() && b.multiplier.isOne() && g1 === CP && a.isLinear() && b.isLinear()) { + for (var s in b.symbols) { + var x = b.symbols[s]; + result.attach(x); + } + } + else + result.multiplier = result.multiplier.add(b.multiplier); + } + } + //equal values uneven powers + else if (valEQ && g1 !== PL) { + //break the tie for e.g. (x+1)+((x+1)^2+(x+1)^3) + if (g1 === CP && g2 === PL) { + b.insert(a); + result = b; + } + else { + result = Symbol.shell(PL).attach([a, b]); + //update the hash + result.value = g1 === PL ? h1 : v1; + } + } + else if (aIsComposite && a.isLinear()) { + var canIterate = g1 === g2, + bothPL = g1 === PL && g2 === PL; + + //we can only iterate group PL if they values match + if (bothPL) + canIterate = a.value === b.value; + //distribute the multiplier over the entire symbol + a.distributeMultiplier(); + + if (b.isComposite() && b.isLinear() && canIterate) { + b.distributeMultiplier(); + //CL + for (var s in b.symbols) { + var x = b.symbols[s]; + a.attach(x); + } + result = a; + } + //handle cases like 2*(x+x^2)^2+2*(x+x^2)^3+4*(x+x^2)^2 + else if (bothPL && a.value !== h2 || g1 === PL && !valEQ) { + result = Symbol.shell(CP).attach([a, b]); + result.updateHash(); + + } + else { + result = a.attach(b); + } + } + else { + if (g1 === FN && a.fname === SQRT && g2 !== EX && b.power.equals(0.5)) { + var m = b.multiplier.clone(); + b = sqrt(b.toUnitMultiplier().toLinear()); + b.multiplier = m; + } + //fix for issue #3 and #159 + if (a.length === 2 && b.length === 2 && even(a.power) && even(b.power)) { + result = _.add(expand(a), expand(b)); + } + else { + result = Symbol.shell(CP).attach([a, b]); + result.updateHash(); + } + } + + if (result.multiplier.equals(0)) + result = new Symbol(0); + + //make sure to remove unnecessary wraps + if (result.length === 1) { + var m = result.multiplier; + result = firstObject(result.symbols); + result.multiplier = result.multiplier.multiply(m); + } + + return result; + } + else { + //keep symbols to the right + if (bIsSymbol && !aIsSymbol) { + var t = a; + a = b; + b = t; //swap + t = bIsSymbol; + bIsSymbol = aIsSymbol; + aIsSymbol = t; + } + + var bIsMatrix = isMatrix(b); + + if (aIsSymbol && bIsMatrix) { + var M = new Matrix(); + b.eachElement(function (e, i, j) { + M.set(i, j, _.add(a.clone(), e)); + }); + + b = M + } + else { + if (isMatrix(a) && bIsMatrix) { + b = a.add(b); + } + else if (aIsSymbol && isVector(b)) { + b.each(function (x, i) { + i--; + b.elements[i] = _.add(a.clone(), b.elements[i]); + }); + } + else { + if (isVector(a) && isVector(b)) { + b.each(function (x, i) { + i--; + b.elements[i] = _.add(a.elements[i], b.elements[i]); + }); + } + else if (isVector(a) && isMatrix(b)) { + //try to convert a to a matrix + return _.add(b, a); + } + else if (isMatrix(a) && isVector(b)) { + if (b.elements.length === a.rows()) { + var M = new Matrix(), l = a.cols(); + b.each(function (e, i) { + var row = []; + for (var j = 0; j < l; j++) { + row.push(_.add(a.elements[i - 1][j].clone(), e.clone())); + } + M.elements.push(row); + }); + return M; + } + else + err('Dimensions must match!'); + } + } + } + return b; + } + + }; + /** + * Gets called when the parser finds the - operator. Not the prefix operator. See this.add + * @param {Symbol} a + * @param {Symbol} b + * @returns {Symbol} + */ + this.subtract = function (a, b) { + var aIsSymbol = aIsSymbol = isSymbol(a), + bIsSymbol = isSymbol(b), t; + + if (aIsSymbol && bIsSymbol) { + if (a.unit || b.unit) { + return _.Unit.subtract(a, b); + } + return this.add(a, b.negate()); + } + else { + if (bIsSymbol && isVector(a)) { + b = a.map(function (x) { + return _.subtract(x, b.clone()); + }); + } + else if (aIsSymbol && isVector(b)) { + b = b.map(function (x) { + return _.subtract(a.clone(), x); + }); + } + else if (isVector(a) && isVector(b)) { + if (a.dimensions() === b.dimensions()) + b = a.subtract(b); + else + _.error('Unable to subtract vectors. Dimensions do not match.'); + } + else if (isMatrix(a) && isVector(b)) { + if (b.elements.length === a.rows()) { + var M = new Matrix(), l = a.cols(); + b.each(function (e, i) { + var row = []; + for (var j = 0; j < l; j++) { + row.push(_.subtract(a.elements[i - 1][j].clone(), e.clone())); + } + M.elements.push(row); + }); + return M; + } + else + err('Dimensions must match!'); + } + else if (isVector(a) && isMatrix(b)) { + var M = b.clone().negate(); + return _.add(M, a); + } + else if (isMatrix(a) && isMatrix(b)) { + b = a.subtract(b); + } + else if(isMatrix(a) && bIsSymbol) { + var M = new Matrix(); + a.each(function(x, i, j) { + M.set(i, j, _.subtract(x, b.clone())); + }); + b = M; + } + else if(aIsSymbol && isMatrix(b)) { + var M = new Matrix(); + b.each(function(x, i, j) { + M.set(i, j, _.subtract(a.clone(), x)); + }); + b = M; + } + return b; + } + }; + /** + * Gets called when the parser finds the * operator. See this.add + * @param {Symbol} a + * @param {Symbol} b + * @returns {Symbol} + */ + this.multiply = function (a, b) { + var aIsSymbol = isSymbol(a), + bIsSymbol = isSymbol(b); + //we're dealing with function assignment here + if (aIsSymbol && b instanceof Collection) { + b.elements.push(a); + return b; + } + if (aIsSymbol && bIsSymbol) { + //if it has a unit then add it and return it right away. + if (b.isUnit) { + var result = a.clone(); + a.unit = b; + return result; + } + //if it has units then just forward that problem to the unit module + if (a.unit || b.unit) { + return _.Unit.multiply(a, b); + } + + //handle Infinty + if (a.isInfinity || b.isInfinity) { + if (a.equals(0) || b.equals(0)) + throw new UndefinedError(a + '*' + b + ' is undefined!'); + //x/infinity + if (b.power.lessThan(0)) { + if (!a.isInfinity) { + return new Symbol(0); + } + else { + throw new UndefinedError('Infinity/Infinity is not defined!'); + } + } + + var sign = a.multiplier.multiply(b.multiplier).sign(), + inf = Symbol.infinity(); + if (a.isConstant() || b.isConstant() || (a.isInfinity && b.isInfinity)) { + if (sign < 0) + inf.negate(); + + return inf; + } + } + //the quickies + if (a.isConstant() && b.isConstant() && Settings.PARSE2NUMBER) { + var t = new bigDec(a.multiplier.toDecimal()).times(new bigDec(b.multiplier.toDecimal())).toFixed(); + var retval = new Symbol(t); + return retval; + } + + //don't waste time + if (a.isOne()) { + return b.clone(); + } + if (b.isOne()) { + return a.clone(); + } + + if (a.multiplier.equals(0) || b.multiplier.equals(0)) + return new Symbol(0); + + if (b.group > a.group && !(b.group === CP)) + return this.multiply(b, a); + //correction for PL/CB dilemma + if (a.group === CB && b.group === PL && a.value === b.value) { + var t = a; + a = b; + b = t;//swap + } + + var g1 = a.group, + g2 = b.group, + bnum = b.multiplier.num, + bden = b.multiplier.den; + + if (g1 === FN && a.fname === SQRT && !b.isConstant() && a.args[0].value === b.value && !a.args[0].multiplier.lessThan(0)) { + //unwrap sqrt + var a_pow = a.power; + a = a.args[0].clone(); + a.setPower(new Frac(0.5).multiply(a_pow)); + g1 = a.group; + } + //simplify n/sqrt(n). Being very specific + else if(g1 === FN && a.fname === SQRT && a.multiplier.equals(1) && a.power.equals(-1) && b.isConstant() && a.args[0].equals(b)) { + a = _.symfunction(SQRT,[b.clone()]); + b = new Symbol(1); + }; + + var v1 = a.value, + v2 = b.value, + sign = new Frac(a.sign()), + //since P is just a morphed version of N we need to see if they relate + ONN = (g1 === P && g2 === N && b.multiplier.equals(a.value)), + //don't multiply the multiplier of b since that's equal to the value of a + m = ONN ? new Frac(1).multiply(a.multiplier).abs() : a.multiplier.multiply(b.multiplier).abs(), + result = a.clone().toUnitMultiplier(); + b = b.clone().toUnitMultiplier(true); + + //further simplification of sqrt + if (g1 === FN && g2 === FN) { + var u = a.args[0].clone(); + var v = b.args[0].clone(); + if (a.fname === SQRT && b.fname === SQRT && a.isLinear() && b.isLinear()) { + + var q = _.divide(u, v).invert(); + if (q.gt(1) && isInt(q)) { + //b contains a factor a which can be moved to a + result = _.multiply(a.args[0].clone(), sqrt(q.clone())); + b = new Symbol(1); + } + } + //simplify factorial but only if + //1 - It's division so b will have a negative power + //2 - We're not dealing with factorials of numbers + else if (a.fname === FACTORIAL && b.fname === FACTORIAL && !u.isConstant() && !v.isConstant() && b.power < 0) { + //assume that n = positive + var d = _.subtract(u.clone(), v.clone()); + + //if it's not numeric then we don't know if we can simplify so just return + if(!d.isConstant()) { + b = new Symbol(1); + } + else { + //there will never be a case where d == 0 since this will already have + //been handled at the beginning of this function + t = new Symbol(1); + if(d < 0) { + //If d is negative then the numerator is larger so expand that + for(var i=0, n = Math.abs(d); i<=n; i++) { + var s = _.add(u.clone(), new Symbol(i)); + t = _.multiply(t, s); + } + + result = _.multiply(_.pow(u, new Symbol(a.power)), _.pow(t, new Symbol(b.power))); + + b = new Symbol(1); + } + else { + //Otherwise the denominator is larger so expand that + for(var i=0, n = Math.abs(d); i<=n; i++) { + var s = _.add(v.clone(), new Symbol(i)); + t = _.multiply(t, s); + } + + result = _.multiply(_.pow(t, new Symbol(a.power)), _.pow(v, new Symbol(b.power))); + + b = new Symbol(1); + } + } + } + } + + + //if both are PL then their hashes have to match + if (v1 === v2 && g1 === PL && g1 === g2) { + v1 = a.text('hash'); + v2 = b.text('hash'); + } + + //same issue with (x^2+1)^x*(x^2+1) + //EX needs an exception when multiplying because it needs to recognize + //that (x+x^2)^x has the same hash as (x+x^2). The latter is kept as x + if (g2 === EX && b.previousGroup === PL && g1 === PL) { + v1 = text(a, 'hash', EX); + } + + if ((v1 === v2 || ONN) && !(g1 === PL && (g2 === S || g2 === P || g2 === FN)) && !(g1 === PL && g2 === CB)) { + var p1 = a.power, + p2 = b.power, + isSymbolP1 = isSymbol(p1), + isSymbolP2 = isSymbol(p2), + toEX = (isSymbolP1 || isSymbolP2); + //TODO: this needs cleaning up + if (g1 === PL && g2 !== PL && b.previousGroup !== PL && p1.equals(1)) { + result = new Symbol(0); + a.each(function (x) { + result = _.add(result, _.multiply(x, b.clone())); + }, true); + } + else { + //add the powers + result.power = toEX ? _.add( + !(isSymbol(p1)) ? new Symbol(p1) : p1, + !(isSymbol(p2)) ? new Symbol(p2) : p2 + ) : (g1 === N /*don't add powers for N*/ ? p1 : p1.add(p2)); + + //eliminate zero power values and convert them to numbers + if (result.power.equals(0)) + result = result.convert(N); + + //properly convert to EX + if (toEX) + result.convert(EX); + + //take care of imaginaries + if (a.imaginary && b.imaginary) { + var isEven = even(result.power % 2); + if (isEven) { + result = new Symbol(1); + m.negate(); + } + } + + //cleanup: this causes the LaTeX generator to get confused as to how to render the symbol + if (result.group !== EX && result.previousGroup) + result.previousGroup = undefined; + //the sign for b is floating around. Remember we are assuming that the odd variable will carry + //the sign but this isn't true if they're equals symbols + result.multiplier = result.multiplier.multiply(b.multiplier); + } + } + else if (g1 === CB && a.isLinear()) { + if (g2 === CB) + b.distributeExponent(); + if (g2 === CB && b.isLinear()) { + for (var s in b.symbols) { + var x = b.symbols[s]; + result = result.combine(x); + } + result.multiplier = result.multiplier.multiply(b.multiplier); + } + else { + result.combine(b); + } + } + else { + //the multiplier was already handled so nothing left to do + if (g1 !== N) { + if (g1 === CB) { + result.distributeExponent(); + result.combine(b); + } + else if (!b.isOne()) { + var bm = b.multiplier.clone(); + b.toUnitMultiplier(); + result = Symbol.shell(CB).combine([result, b]); + //transfer the multiplier to the outside + result.multiplier = result.multiplier.multiply(bm); + } + } + else { + result = b.clone().toUnitMultiplier(); + } + } + + if (result.group === P) { + var logV = Math.log(result.value), + n1 = Math.log(bnum) / logV, + n2 = Math.log(bden) / logV, + ndiv = m.num / bnum, + ddiv = m.den / bden; + //we don't want to divide by zero no do we? Strange things happen. + if (n1 !== 0 && isInt(n1) && isInt(ndiv)) { + result.power = result.power.add(new Frac(n1)); + m.num /= bnum; //BigInt? Keep that in mind for the future. + } + if (n2 !== 0 && isInt(n2) && isInt(ddiv)) { + result.power = result.power.subtract(new Frac(n2)); + m.den /= bden; //BigInt? Keep that in mind for the future. + } + } + + //unpack CB if length is only one + if (result.length === 1) { + var t = result.multiplier; + //transfer the multiplier + result = firstObject(result.symbols); + result.multiplier = result.multiplier.multiply(t); + } + + //reduce square root + var ps = result.power.toString(); + if (even(ps) && result.fname === SQRT) { + //grab the sign of the symbol + sign = sign * result.sign(); + var p = result.power; + result = result.args[0]; + result = _.multiply(new Symbol(m), _.pow(result, new Symbol(p.divide(new Frac(2))))); + //flip it back to the correct sign + if (sign < 0) + result.negate() + } + else { + result.multiplier = result.multiplier.multiply(m).multiply(sign); + if (result.group === CP && result.isImaginary()) + result.distributeMultiplier(); + } + + //back convert group P to a simpler group N if possible + if (result.group === P && isInt(result.power.toDecimal())) + result = result.convert(N); + + return result; + } + else { + //****** Matrices & Vector *****// + if (bIsSymbol && !aIsSymbol) { //keep symbols to the right + t = a; + a = b; + b = t; //swap + t = bIsSymbol; + bIsSymbol = aIsSymbol; + aIsSymbol = t; + } + + var isMatrixB = isMatrix(b), isMatrixA = isMatrix(a); + if (aIsSymbol && isMatrixB) { + var M = new Matrix(); + b.eachElement(function (e, i, j) { + M.set(i, j, _.multiply(a.clone(), e)); + }); + + b = M; + } + else { + if (isMatrixA && isMatrixB) { + b = a.multiply(b); + } + else if (aIsSymbol && isVector(b)) { + b.each(function (x, i) { + i--; + b.elements[i] = _.multiply(a.clone(), b.elements[i]); + }); + } + else { + if (isVector(a) && isVector(b)) { + b.each(function (x, i) { + i--; + b.elements[i] = _.multiply(a.elements[i], b.elements[i]); + }); + } + else if (isVector(a) && isMatrix(b)) { + //try to convert a to a matrix + return this.multiply(b, a); + } + else if (isMatrix(a) && isVector(b)) { + if (b.elements.length === a.rows()) { + var M = new Matrix(), l = a.cols(); + b.each(function (e, i) { + var row = []; + for (var j = 0; j < l; j++) { + row.push(_.multiply(a.elements[i - 1][j].clone(), e.clone())); + } + M.elements.push(row); + }); + return M; + } + else + err('Dimensions must match!'); + } + } + } + + return b; + } + }; + /** + * Gets called when the parser finds the / operator. See this.add + * @param {Symbol} a + * @param {Symbol} b + * @returns {Symbol} + */ + this.divide = function (a, b) { + var aIsSymbol = isSymbol(a), + bIsSymbol = isSymbol(b); + + if (aIsSymbol && bIsSymbol) { + //forward to Unit division + if (a.unit || b.unit) { + return _.Unit.divide(a, b); + } + var result; + if (b.equals(0)) + throw new DivisionByZero('Division by zero not allowed!'); + + if (a.isConstant() && b.isConstant()) { + result = a.clone(); + result.multiplier = result.multiplier.divide(b.multiplier); + } + else { + b.invert(); + result = _.multiply(a, b); + } + return result; + } + else { + //******* Vectors & Matrices *********// + var isVectorA = isVector(a), isVectorB = isVector(b); + if (aIsSymbol && isVectorB) { + b = b.map(function (x) { + return _.divide(a.clone(), x); + }); + } + else if (isVectorA && bIsSymbol) { + b = a.map(function (x) { + return _.divide(x, b.clone()); + }); + } + else if (isVectorA && isVectorB) { + if (a.dimensions() === b.dimensions()) { + b = b.map(function (x, i) { + return _.divide(a.elements[--i], x); + }); + } + else + _.error('Cannot divide vectors. Dimensions do not match!'); + } + else { + var isMatrixA = isMatrix(a), isMatrixB = isMatrix(b); + if (isMatrixA && bIsSymbol) { + var M = new Matrix(); + a.eachElement(function (x, i, j) { + M.set(i, j, _.divide(x, b.clone())); + }); + b = M; + } + else if(aIsSymbol && isMatrixB) { + var M = new Matrix(); + b.eachElement(function (x, i, j) { + M.set(i, j, _.divide(a.clone(), x)); + }); + b = M; + } + else if (isMatrixA && isMatrixB) { + var M = new Matrix(); + if (a.rows() === b.rows() && a.cols() === b.cols()) { + a.eachElement(function (x, i, j) { + M.set(i, j, _.divide(x, b.elements[i][j])); + }); + b = M; + } + else { + _.error('Dimensions do not match!'); + } + } + else if (isMatrixA && isVectorB) { + if (a.cols() === b.dimensions()) { + var M = new Matrix(); + a.eachElement(function (x, i, j) { + M.set(i, j, _.divide(x, b.elements[i].clone())); + }); + b = M; + } + else { + _.error('Unable to divide matrix by vector.'); + } + } + } + return b; + } + }; + /** + * Gets called when the parser finds the ^ operator. See this.add + * @param {Symbol} a + * @param {Symbol} b + * @returns {Symbol} + */ + this.pow = function (a, b) { + var aIsSymbol = isSymbol(a), + bIsSymbol = isSymbol(b); + if (aIsSymbol && bIsSymbol) { + //it has units then it's the Unit module's problem + if (a.unit || b.unit) { + return _.Unit.pow(a, b); + } + //handle infinity + if (a.isInfinity || b.isInfinity) { + if (a.isInfinity && b.isInfinity) + throw new UndefinedError('(' + a + ')^(' + b + ') is undefined!'); + + if (a.isConstant() && b.isInfinity) { + if (a.equals(0)) { + if (b.lessThan(0)) + throw new UndefinedError('0^Infinity is undefined!'); + return new Symbol(0); + } + if (a.equals(1)) + throw new UndefinedError('1^' + b.toString() + ' is undefined!'); + //a^-oo + if (b.lessThan(0)) + return new Symbol(0); + //a^oo + if (!a.lessThan(0)) + return Symbol.infinity(); + } + + if (a.isInfinity && b.isConstant()) { + if (b.equals(0)) + throw new UndefinedError(a + '^0 is undefined!'); + if (b.lessThan(0)) + return new Symbol(0); + return _.multiply(Symbol.infinity(), _.pow(new Symbol(a.sign()), b.clone())); + } + } + + var aIsZero = a.equals(0); + var bIsZero = b.equals(0); + if (aIsZero && bIsZero) + throw new UndefinedError('0^0 is undefined!'); + //return 0 right away if possible + if (aIsZero && b.isConstant() && b.multiplier.greaterThan(0)) + return new Symbol(0); + + if (bIsZero) + return new Symbol(1); + + var bIsConstant = b.isConstant(), + aIsConstant = a.isConstant(), + bIsInt = b.isInteger(), + m = a.multiplier, + result = a.clone(); + if (aIsConstant && bIsConstant && a.equals(0) && b.lessThan(0)) + throw new UndefinedError('Division by zero is not allowed!'); + + //compute imaginary numbers right away + if (Settings.PARSE2NUMBER && aIsConstant && bIsConstant && a.sign() < 0 && evenFraction(b)) { + var k, re, im; + k = Math.PI * b; + re = new Symbol(Math.cos(k)); + im = _.multiply(Symbol.imaginary(), new Symbol(Math.sin(k))); + return _.add(re, im); + } + + //imaginary number under negative nthroot or to the n + if (Settings.PARSE2NUMBER && a.isImaginary() && bIsConstant && isInt(b) && !b.lessThan(0)) { + var re, im, r, theta, nre, nim; + re = a.realpart(); + im = a.imagpart(); + if (re.isConstant('all') && im.isConstant('all')) { + theta = new Symbol(Math.atan2(im, re) * b); + r = _.pow(Symbol.hyp(re, im), b); + nre = _.multiply(r.clone(), _.trig.cos(theta.clone())); + nim = _.multiply(r, _.trig.sin(theta)); + return _.add(nre, _.multiply(Symbol.imaginary(), nim)); + } + } + + /* + if(a.isImaginary() && bIsConstant && b.multiplier.num.abs().equals(1) && !b.multiplier.den.equals(1)) { + var sign = b.sign(); + b = abs(b); + var p, re, im, theta, n, ai, bi, di, ei, ii, th; + p = Symbol.toPolarFormArray(a); + theta = _.multiply(b.clone(), arg(a)); + di = _.pow(p[0], b); + ai = _.trig.cos(theta.clone()); + bi = _.trig.sin(theta); + + if(sign < 0) { + re = _.divide(ai, di.clone()); + im = _.divide(bi, di); + } + else { + re = _.multiply(ai, di.clone()); + im = _.multiply(bi, di); + } + return _.add(re, _.multiply(im, Symbol.imaginary())); + } + */ + + //take care of the symbolic part + result.toUnitMultiplier(); + //simpifly sqrt + if (result.group === FN && result.fname === SQRT && !bIsConstant) { + var s = result.args[0]; + s.multiplyPower(new Symbol(0.5)); + s.multiplier.multiply(result.multiplier); + s.multiplyPower(b); + result = s; + } + else { + var sign = m.sign(); + //handle cases such as (-a^3)^(1/4) + if (evenFraction(b) && sign < 0) { + //swaperoo + //first put the sign back on the symbol + result.negate(); + //wrap it in brackets + result = _.symfunction(PARENTHESIS, [result]); + //move the sign back the exterior and let nerdamer handle the rest + result.negate(); + } + + result.multiplyPower(b); + } + + if (aIsConstant && bIsConstant && Settings.PARSE2NUMBER) { + var c; + //remove the sign + if (sign < 0) { + a.negate(); + if (b.multiplier.den.equals(2)) + //we know that the numerator has to be odd and therefore it's i + c = new Symbol(Settings.IMAGINARY); + else if (isInt(b.multiplier)) { + if (even(b.multiplier)) + c = new Symbol(1); + else + c = new Symbol(-1); + } + else if (!even(b.multiplier.den)) { + c = new Symbol(Math.pow(sign, b.multiplier.num)); + } + else { + c = _.pow(_.symfunction(PARENTHESIS, [new Symbol(sign)]), b.clone()); + } + } + + result = new Symbol(Math.pow(a.multiplier.toDecimal(), b.multiplier.toDecimal())); + + //result = new Symbol(Math2.bigpow(a.multiplier, b.multiplier)); + //put the back sign + if (c) + result = _.multiply(result, c); + } + else if (bIsInt && !m.equals(1)) { + var abs_b = b.abs(); + // Provide fall back to JS until big number implementation is improved + if(abs_b.gt(Settings.MAX_EXP)) { + if(b.sign() < 0) + return new Symbol(0); + return Symbol.infinity(); + } + else { + var p = b.multiplier.toDecimal(); + var sgn = Math.sign(p); + p = Math.abs(p); + var multiplier = new Frac(1); + multiplier.num = m.num.pow(p); + multiplier.den = m.den.pow(p); + if (sgn < 0) + multiplier.invert(); + //multiplying is justified since after mulltiplyPower if it was of group P it will now be of group N + result.multiplier = result.multiplier.multiply(multiplier); + } + } + else { + var sign = a.sign(); + if (b.isConstant() && a.isConstant() && !b.multiplier.den.equals(1) && sign < 0) { + //we know the sign is negative so if the denominator for b == 2 then it's i + if (b.multiplier.den.equals(2)) { + var i = new Symbol(Settings.IMAGINARY); + a.negate();//remove the sign + //if the power is negative then i is negative + if (b.lessThan(0)) { + i.negate(); + b.negate();//remove the sign from the power + } + //pull the power normally and put back the imaginary + result = _.multiply(_.pow(a, b), i); + } + else { +// if(a.equals(-1)) { +// var theta = _.multiply(b, _.parse('pi')); +// result = evaluate(_.add(trig.cos(theta), _.multiply(Symbol.imaginary(), trig.sin(theta)))); +// } +// else { + var aa = a.clone(); + aa.multiplier.negate(); + result = _.pow(_.symfunction(PARENTHESIS, [new Symbol(sign)]), b.clone()); + var _a = _.pow(new Symbol(aa.multiplier.num), b.clone()); + var _b = _.pow(new Symbol(aa.multiplier.den), b.clone()); + var r = _.divide(_a, _b); + result = _.multiply(result, r); +// } + } + } + else if (Settings.PARSE2NUMBER && b.isImaginary()) { + //4^(i + 2) = e^(- (2 - 4 i) π n + (2 + i) log(4)) + var re, im, aa, a1, b1, c1; + aa = a.clone().toLinear(); + re = b.realpart(); + im = b.imagpart(); + a1 = _.pow(aa.clone(), re); + b1 = trig.cos(_.multiply(im.clone(), log(aa.clone()))); + c1 = _.multiply(trig.sin(_.multiply(im, log(aa))), Symbol.imaginary()); + result = _.multiply(a1, _.add(b1, c1)); + result = _.expand(_.parse(result)); + } + else { + //b is a symbol + var neg_num = a.group === N && sign < 0, + num = testSQRT(new Symbol(neg_num ? m.num : Math.abs(m.num)).setPower(b.clone())), + den = testSQRT(new Symbol(m.den).setPower(b.clone()).invert()); + + //eliminate imaginary if possible + if (a.imaginary) { + if (bIsInt) { + var s, p, n; + s = Math.sign(b); + p = abs(b); + n = p % 4; + result = new Symbol(even(n) ? -1 : Settings.IMAGINARY); + if (n === 0 || s < 0 && (n === 1) || s > 0 && (n === 3)) { + result.negate(); + } + } + else { + //assume i = sqrt(-1) -> (-1)^(1/2) + var nr = b.multiplier.multiply(Frac.quick(1, 2)), + //the denominator denotes the power so raise to it. It will turn positive it round + tn = Math.pow(-1, nr.num); + result = even(nr.den) ? new Symbol(-1).setPower(nr, true) : new Symbol(tn); + } + } + //ensure that the sign is carried by the symbol and not the multiplier + //this enables us to check down the line if the multiplier can indeed be transferred + if (sign < 0 && !neg_num) + result.negate(); + + //retain the absolute value + if (bIsConstant && a.group !== EX) { + var evenr = even(b.multiplier.den), + evenp = even(a.power), + n = result.power.toDecimal(), + evennp = even(n); + if (evenr && evenp && !evennp) { + if (n === 1) + result = _.symfunction(ABS, [result]); + else if (!isInt(n)) { + var p = result.power; + result = _.symfunction(ABS, [result.toLinear()]).setPower(p); + } + else { + result = _.multiply(_.symfunction(ABS, [result.clone().toLinear()]), + result.clone().setPower(new Frac(n - 1))); + } + //quick workaround. Revisit + if (Settings.POSITIVE_MULTIPLIERS && result.fname === ABS) + result = result.args[0]; + } + } + //multiply out sqrt + if(b.equals(2) && result.group === CB) { + var _result = new Symbol(1); + result.each(function(sym) { + _result = _.multiply(_result, _.pow(sym, b)); + }); + result = _result; + } + } + } + + result = testSQRT(result); + + //don't multiply until we've tested the remaining symbol + if (num && den) + result = _.multiply(result, testPow(_.multiply(num, den))); + + //reduce square root + if (result.fname === SQRT) { + var isEX = result.group === EX; + var t = isEX ? result.power.multiplier.toString() : result.power.toString(); + if (even(t)) { + var pt = isEX ? _.divide(result.power, new Symbol(2)) : new Symbol(result.power.divide(new Frac(2))), + m = result.multiplier; + result = _.pow(result.args[0], pt); + result.multiplier = result.multiplier.multiply(m); + } + } + //detect Euler's identity + else if (!Settings.IGNORE_E && result.isE() && result.group === EX && result.power.contains('pi') + && result.power.contains(Settings.IMAGINARY)) { + var theta = b.stripVar(Settings.IMAGINARY); + result = _.add(trig.cos(theta), _.multiply(Symbol.imaginary(), trig.sin(theta))); +// //we have a match +// var m1 = result.multiplier, +// m2 = result.power.multiplier; +// result = new Symbol(even(m2.num) ? m1 : m1.negate()); +// result = _.pow(result, new Symbol(m2.den).invert()); + } + + return result; + } + else { + if (isVector(a) && bIsSymbol) { + a = a.map(function (x) { + return _.pow(x, b.clone()); + }); + } + else if (isMatrix(a) && bIsSymbol) { + var M = new Matrix(); + a.eachElement(function (x, i, j) { + M.set(i, j, _.pow(x, b.clone())); + }); + a = M; + } + else if(aIsSymbol && isMatrix(b)) { + var M = new Matrix(); + b.eachElement(function (x, i, j) { + M.set(i, j, _.pow(a.clone(), x)); + }); + a = M; + } + return a; + } + }; + //gets called when the parser finds the , operator. + //Commas return a Collector object which roughly an array + this.comma = function (a, b) { + if (!(a instanceof Collection)) + a = Collection.create(a); + a.append(b); + return a; + }; + //link to modulus + this.mod = function (a, b) { + return mod(a, b); + }; + //used to slice elements from arrays + this.slice = function (a, b) { + return new Slice(a, b); + }; + //the equality setter + this.equals = function (a, b) { + //equality can only be set for group S so complain it's not + if (a.group !== S && !a.isLinear()) + err('Cannot set equality for ' + a.toString()); + VARS[a.value] = b.clone(); + return b; + }; + //percent + this.percent = function (a) { + return _.divide(a, new Symbol(100)); + }; + //set variable + this.assign = function (a, b) { + if (a instanceof Collection && b instanceof Collection) { + a.elements.map(function (x, i) { + return _.assign(x, b.elements[i]); + }); + return Vector.fromArray(b.elements); + } + if(a.parent) { + //it's referring to the parent instead. The current item can be discarded + var e = a.parent; + e.elements[e.getter] = b; + delete e.getter; + return e; + } + + if (a.group !== S) + throw new NerdamerValueError('Cannot complete operation. Incorrect LH value for ' + a); + VARS[a.value] = b; + return b; + }; + this.function_assign = function (a, b) { + var f = a.elements.pop(); + return setFunction(f, a.elements, b); + }; + //function to quickly convert bools to Symbols + var bool2Symbol = function (x) { + return new Symbol(x === true ? 1 : 0); + }; + //check for equality + this.eq = function (a, b) { + return bool2Symbol(a.equals(b)); + }; + //checks for greater than + this.gt = function (a, b) { + return bool2Symbol(a.gt(b)); + }; + //checks for greater than equal + this.gte = function (a, b) { + return bool2Symbol(a.gte(b)); + }; + //checks for less than + this.lt = function (a, b) { + return bool2Symbol(a.lt(b)); + }; + //checks for less than equal + this.lte = function (a, b) { + return bool2Symbol(a.lte(b)); + }; + //wraps the factorial + this.factorial = function (a) { + return this.symfunction(FACTORIAL, [a]); + }; + //wraps the double factorial + this.dfactorial = function (a) { + return this.symfunction(DOUBLEFACTORIAL, [a]); + }; + } + ; + + /* "STATIC" */ + //converts a number to a fraction. + var Fraction = { + /** + * Converts a decimal to a fraction + * @param {number} value + * @param {object} opts + * @returns {Array} - an array containing the denominator and the numerator + */ + convert: function (value, opts) { + var frac; + if (value === 0) { + frac = [0, 1]; + } + else { + if (value < 1e-6 || value > 1e20) { + var qc = this.quickConversion(Number(value)); + if (qc[1] <= 1e20) { + var abs = Math.abs(value); + var sign = value / abs; + frac = this.fullConversion(abs.toFixed((qc[1] + '').length - 1)); + frac[0] = frac[0] * sign; + } + else { + frac = qc; + } + } + else { + frac = this.fullConversion(value); + } + } + return frac; + }, + /** + * If the fraction is too small or too large this gets called instead of fullConversion method + * @param {number} dec + * @returns {Array} - an array containing the denominator and the numerator + */ + quickConversion: function (dec) { + var x = (dec.toExponential() + '').split('e'); + var d = x[0].split('.')[1];// get the number of places after the decimal + var l = (d ? d.length : 0)-parseInt(x[1]); // maybe the coefficient is an integer; + //call Math.round to avoid rounding error + return [Math.round(Math.pow(10, l) * x[0]), Math.pow(10, Math.abs(x[1]) + l)]; + }, + /** + * Returns a good approximation of a fraction. This method gets called by convert + * http://mathforum.org/library/drmath/view/61772.html + * Decimal To Fraction Conversion - A Simpler Version + * Dr Peterson + * @param {number} dec + * @returns {Array} - an array containing the denominator and the numerator + */ + fullConversion: function (dec) { + var done = false; + //you can adjust the epsilon to a larger number if you don't need very high precision + var n1 = 0, d1 = 1, n2 = 1, d2 = 0, n = 0, q = dec, epsilon = 1e-16; + while (!done) { + n++; + if (n > 10000) { + done = true; + } + var a = Math.floor(q); + var num = n1 + a * n2; + var den = d1 + a * d2; + var e = (q - a); + if (e < epsilon) { + done = true; + } + q = 1 / e; + n1 = n2; + d1 = d2; + n2 = num; + d2 = den; + if (Math.abs(num / den - dec) < epsilon || n > 30) { + done = true; + } + } + return [num, den]; + } + }; + //Depends on Fraction + + //The latex generator + var LaTeX = { + parser: (function () { + //create a parser and strip it from everything except the items that you need + var keep = ['classes', 'setOperator', 'getOperators', 'getBrackets', 'tokenize', 'toRPN', 'tree', 'units']; + var parser = new Parser(); + for (var x in parser) { + if (keep.indexOf(x) === -1) + delete parser[x]; + } + //declare the operators + parser.setOperator({ + precedence: 8, + operator: '\\', + action: 'slash', + prefix: true, + postfix: false, + leftAssoc: true, + operation: function (e) { + return e; //bypass the slash + } + }); + parser.setOperator({ + precedence: 8, + operator: '\\,', + action: 'slash_comma', + prefix: true, + postfix: false, + leftAssoc: true, + operation: function (e) { + return e; //bypass the slash + } + }); + //have braces not map to anything. We want them to be return as-is + var brackets = parser.getBrackets(); + brackets['{'].maps_to = undefined; + return parser; + })(), + space: '~', + dot: ' \\cdot ', + //grab a list of supported functions but remove the excluded ones found in exclFN + + latex: function (symbol, option) { + //it might be an array + if (symbol.clone) { + symbol = symbol.clone(); //leave original as-is + } + if (symbol instanceof _.classes.Collection) + symbol = symbol.elements; + + if (isArray(symbol)) { + var LaTeXArray = []; + for (var i = 0; i < symbol.length; i++) { + var sym = symbol[i]; + //This way I can generate LaTeX on an array of strings. + if (!isSymbol(sym)) + sym = _.parse(sym); + LaTeXArray.push(this.latex(sym, option)); + } + return this.brackets(LaTeXArray.join(', '), 'square'); + } + + else if (isMatrix(symbol)) { + var TeX = '\\begin{pmatrix}\n'; + for (var i = 0; i < symbol.elements.length; i++) { + var rowTeX = [], + e = symbol.elements[i]; + for (var j = 0; j < e.length; j++) { + rowTeX.push(this.latex(e[j], option)); + } + TeX += rowTeX.join(' & '); + if (i < symbol.elements.length - 1) { + TeX += '\\\\\n'; + } + } + TeX += '\\end{pmatrix}'; + return TeX; + } + + else if (isVector(symbol)) { + var TeX = '\\left['; + for (var i = 0; i < symbol.elements.length; i++) { + TeX += this.latex(symbol.elements[i], option) + ' ' + (i !== symbol.elements.length - 1 ? ',\\,' : ''); + } + TeX += '\\right]'; + return TeX; + } + + else if(isSet(symbol)) { + var TeX = '\\{'; + for (var i = 0; i < symbol.elements.length; i++) { + TeX += this.latex(symbol.elements[i], option) + ' ' + (i !== symbol.elements.length - 1 ? ',\\,' : ''); + } + TeX += '\\}'; + return TeX; + } + + symbol = symbol.clone(); + var decimal = (option === 'decimal' || option === 'decimals'), + power = symbol.power, + invert = isNegative(power), + negative = symbol.multiplier.lessThan(0); + + if (symbol.group === P && decimal) { + return String(symbol.multiplier.toDecimal() * Math.pow(symbol.value, symbol.power.toDecimal())); + } + else { + symbol.multiplier = symbol.multiplier.abs(); + + //if the user wants the result in decimal format then return it as such by placing it at the top part + var m_array; + + if (decimal) { + var m = String(symbol.multiplier.toDecimal()); + //if(String(m) === '1' && !decimal) m = ''; + m_array = [m, '']; + } + else { + m_array = [symbol.multiplier.num, symbol.multiplier.den]; + } + //get the value as a two part array + var v_array = this.value(symbol, invert, option, negative), + p; + //make it all positive since we know whether to push the power to the numerator or denominator already. + if (invert) + power.negate(); + //the power is simple since it requires no additional formatting. We can get it to a + //string right away. pass in true to neglect unit powers + if (decimal) { + p = isSymbol(power) ? LaTeX.latex(power, option) : String(power.toDecimal()); + if (String(p) === '1') + p = ''; + } + //get the latex representation + else if (isSymbol(power)) + p = this.latex(power, option); + //get it as a fraction + else + p = this.formatFrac(power, true); + //use this array to specify if the power is getting attached to the top or the bottom + var p_array = ['', ''], + //stick it to the top or the bottom. If it's negative then the power gets placed on the bottom + index = invert ? 1 : 0; + p_array[index] = p; + + //special case group P and decimal + var retval = (negative ? '-' : '') + this.set(m_array, v_array, p_array, symbol.group === CB); + + return retval.replace(/\+\-/gi, '-'); + } + + }, + //greek mapping + greek: { + alpha: '\\alpha', + beta: '\\beta', + gamma: '\\gamma', + delta: '\\delta', + epsilon: '\\epsilon', + zeta: '\\zeta', + eta: '\\eta', + theta: '\\theta', + iota: '\\iota', + kappa: '\\kappa', + lambda: '\\lambda', + mu: '\\mu', + nu: '\\nu', + xi: '\\xi', + omnikron: '\\omnikron', + pi: '\\pi', + rho: '\\rho', + sigma: '\\sigma', + tau: '\\tau', + upsilon: '\\upsilon', + phi: '\\phi', + chi: '\\chi', + psi: '\\psi', + omega: '\\omega', + Gamma: '\\Gamma', + Delta: '\\Delta', + Epsilon: '\\Epsilon', + Theta: '\\Theta', + Lambda: '\\Lambda', + Xi: '\\Xi', + Pi: '\\Pi', + Sigma: '\\Sigma', + Phi: '\\Phi', + Psi: '\\Psi', + Omega: '\\Omega' + }, + symbols: { + arccos: '\\arccos', + cos: '\\cos', + csc: '\\csc', + exp: '\\exp', + ker: '\\ker', + limsup: '\\limsup', + min: '\\min', + sinh: '\\sinh', + arcsin: '\\arcsin', + cosh: '\\cosh', + deg: '\\deg', + gcd: '\\gcd', + lg: '\\lg', + ln: '\\ln', + Pr: '\\Pr', + sqrt: '\\sqrt', + sup: '\\sup', + arctan: '\\arctan', + cot: '\\cot', + det: '\\det', + hom: '\\hom', + lim: '\\lim', + log: '\\log', + LN: '\\LN', + sec: '\\sec', + tan: '\\tan', + arg: '\\arg', + coth: '\\coth', + dim: '\\dim', + inf: '\\inf', + liminf: '\\liminf', + max: '\\max', + sin: '\\sin', + tanh: '\\tanh' + }, + //get the raw value of the symbol as an array + value: function (symbol, inverted, option, negative) { + var group = symbol.group, + previousGroup = symbol.previousGroup, + v = ['', ''], + index = inverted ? 1 : 0; + /*if(group === N) //do nothing since we want to return top & bottom blank; */ + if (symbol.isInfinity) { + v[index] = '\\infty'; + } + else if (group === S || group === P || previousGroup === S || previousGroup === P || previousGroup === N) { + var value = symbol.value; + if (value.replace) + value = value.replace(/(.+)_$/, '$1\\_'); + //split it so we can check for instances of alpha as well as alpha_b + var t_varray = String(value).split('_'); + var greek = this.greek[t_varray[0]]; + if (greek) { + t_varray[0] = greek; + value = t_varray.join('_'); + } + var symbol = this.symbols[t_varray[0]]; + if (symbol) { + t_varray[0] = symbol; + value = t_varray.join('_'); + } + v[index] = value; + } + else if (group === FN || previousGroup === FN) { + var name, + input = [], + fname = symbol.fname; + //collect the arguments + for (var i = 0; i < symbol.args.length; i++) { + var arg = symbol.args[i], item; + if (typeof arg === 'string') + item = arg; + else { + item = this.latex(arg, option); + } + input.push(item); + } + + if (fname === SQRT) { + v[index] = '\\sqrt' + this.braces(input.join(',')); + } + else if (fname === ABS) { + v[index] = this.brackets(input.join(','), 'abs'); + } + else if (fname === PARENTHESIS) { + v[index] = this.brackets(input.join(','), 'parens'); + } + else if (fname === 'limit') { + v[index] = ' \\lim\\limits_{' + input[1] + ' \\to ' + input[2] + '} ' + input[0]; + } + else if (fname === 'integrate') { + v[index] = '\\int' + this.braces(input[0]) + this.braces('d' + input[1]); + } + else if (fname === 'defint') { + v[index] = '\\int\\limits_' + this.braces(input[1]) + '^' + this.braces(input[2]) + ' ' + input[0] + ' d' + input[3]; + } + else if (fname === FACTORIAL || fname === DOUBLEFACTORIAL) { + var arg = symbol.args[0]; + if (arg.power.equals(1) && (arg.isComposite() || arg.isCombination())) { + input[0] = this.brackets(input[0]); + } + v[index] = input[0] + (fname === FACTORIAL ? '!' : '!!'); + } + else if (fname === 'floor') { + v[index] = '\\left \\lfloor' + this.braces(input[0]) + '\\right \\rfloor'; + } + else if (fname === 'ceil') { + v[index] = '\\left \\lceil' + this.braces(input[0]) + '\\right \\rceil'; + } + //capture log(a, b) + else if (fname === Settings.LOG && input.length > 1) { + v[index] = '\\mathrm' + this.braces(Settings.LOG) + '_' + this.braces(input[1]) + this.brackets(input[0]); + } + //capture log(a, b) + else if (fname === Settings.LOG10) { + v[index] = '\\mathrm' + this.braces(Settings.LOG) + '_' + this.braces(10) + this.brackets(input[0]); + } + else if (fname === 'sum') { + var a = input[0], + b = input[1], + c = input[2], + d = input[3]; + v[index] = '\\sum\\limits_{' + this.braces(b) + '=' + this.braces(c) + '}^' + this.braces(d) + ' ' + this.braces(a) + ''; + } + else if (fname === 'product') { + var a = input[0], + b = input[1], + c = input[2], + d = input[3]; + v[index] = '\\prod\\limits_{' + this.braces(b) + '=' + this.braces(c) + '}^' + this.braces(d) + ' ' + this.braces(a) + ''; + } + else if (fname === 'nthroot') { + v[index] = '\\sqrt[' + input[1] + ']' + this.braces(input[0]); + } + else if (fname === 'mod') { + v[index] = input[0] + ' \\bmod ' + input[1]; + } + else if (fname === 'realpart') { + v[index] = '\\operatorname{Re}' + this.brackets(input[0]); + } + else if (fname === 'imagpart') { + v[index] = '\\operatorname{Im}' + this.brackets(input[0]); + } + else { + var name = fname !== '' ? '\\mathrm' + this.braces(fname.replace(/_/g, '\\_')) : ''; + if (symbol.isConversion) + v[index] = name + this.brackets(input.join(''), 'parens'); + else + v[index] = name + this.brackets(input.join(','), 'parens'); + } + } + else if (symbol.isComposite()) { + var collected = symbol.collectSymbols().sort( + group === CP || previousGroup === CP ? + function (a, b) { + return b.group - a.group; + } : + function (a, b) { + var x = isSymbol(a.power) ? -1 : a.power; + var y = isSymbol(b.power) ? -1 : b.power; + return y - x; + } + ), + symbols = [], + l = collected.length; + for (var i = 0; i < l; i++) { + symbols.push(LaTeX.latex(collected[i], option)); + } + var value = symbols.join('+'); + + v[index] = !(symbol.isLinear() && symbol.multiplier.equals(1)) || negative ? this.brackets(value, 'parens') : value; + } + else if (group === CB || previousGroup === EX || previousGroup === CB) { + if (group === CB) + symbol.distributeExponent(); + //this almost feels a little like cheating but I need to know if I should be wrapping the symbol + //in brackets or not. We'll do this by checking the value of the numerator and then comparing it + //to whether the symbol value is "simple" or not. + var denominator = [], + numerator = []; + //generate a profile + var den_map = [], num_map = [], num_c = 0, den_c = 0; + var setBrackets = function (container, map, counter) { + if (counter > 1 && map.length > 0) { + var l = map.length; + for (var i = 0; i < l; i++) { + var idx = map[i], item = container[idx]; + if (!(/^\\left\(.+\\right\)\^\{.+\}$/g.test(item) || /^\\left\(.+\\right\)$/g.test(item))) { + container[idx] = LaTeX.brackets(item, 'parens'); + } + } + } + return container; + }; + + //generate latex for each of them + symbol.each(function (x) { + var isDenom = isNegative(x.power), + laTex; + + if (isDenom) { + laTex = LaTeX.latex(x.invert(), option); + den_c++; + if (x.isComposite()) { + if (symbol.multiplier.den != 1 && Math.abs(x.power) == 1) + laTex = LaTeX.brackets(laTex, 'parens'); + den_map.push(denominator.length); //make a note of where the composite was found + } + + denominator.push(laTex); + } + else { + laTex = LaTeX.latex(x, option); + num_c++; + if (x.isComposite()) { + if (symbol.multiplier.num != 1 && Math.abs(x.power) == 1) + laTex = LaTeX.brackets(laTex, 'parens'); + num_map.push(numerator.length); //make a note of where the composite was found + } + numerator.push(laTex); + } + }); + + //apply brackets + setBrackets(numerator, num_map, num_c); + v[0] = numerator.join(this.dot); //collapse the numerator into one string + + setBrackets(denominator, den_map, den_c); + v[1] = denominator.join(this.dot); + } + + return v; + }, + set: function (m, v, p, combine_power) { + var isBracketed = function (v) { + return /^\\left\(.+\\right\)$/.test(v); + }; + //format the power if it exists + if (p) + p = this.formatP(p); + //group CB will have to be wrapped since the power applies to both it's numerator and denominator + if (combine_power) { + //POSSIBLE BUG: If powers for group CB format wrong, investigate this since I might have overlooked something + //the assumption is that in every case the denonimator should be empty when dealing with CB. I can't think + //of a case where this isn't true + var tp = p[0]; + p[0] = ''; //temporarily make p blank + } + + //merge v and p. Not that v MUST be first since the order matters + v = this.merge(v, p); + var mn = m[0], md = m[1], vn = v[0], vd = v[1]; + //filters + //if the top has a variable but the numerator is one drop it + if (vn && Number(mn) === 1) + mn = ''; + //if denominator is 1 drop it always + if (Number(md) === 1) + md = ''; + //prepare the top portion but check that it's not already bracketed. If it is then leave out the cdot + var top = this.join(mn, vn, !isBracketed(vn) ? this.dot : ''); + + //prepare the bottom portion but check that it's not already bracketed. If it is then leave out the cdot + var bottom = this.join(md, vd, !isBracketed(vd) ? this.dot : ''); + //format the power if it exists + //make it a fraction if both top and bottom exists + if (top && bottom) { + var frac = this.frac(top, bottom); + if (combine_power && tp) + frac = this.brackets(frac) + tp; + return frac; + } + //otherwise only the top exists so return that + else + return top; + }, + merge: function (a, b) { + var r = []; + for (var i = 0; i < 2; i++) + r[i] = a[i] + b[i]; + return r; + }, + //joins together two strings if both exist + join: function (n, d, glue) { + if (!n && !d) + return ''; + if (n && !d) + return n; + if (d && !n) + return d; + return n + glue + d; + }, + formatP: function (p_array) { + for (var i = 0; i < 2; i++) { + var p = p_array[i]; + if (p) + p_array[i] = '^' + this.braces(p); + } + return p_array; + }, + /** + * formats the fractions accordingly. + * @param {Frac} f + * @param {bool} is_pow + */ + formatFrac: function (f, is_pow) { + var n = f.num.toString(), + d = f.den.toString(); + //no need to have x^1 + if (is_pow && n === '1' && d === '1') + return ''; + //no need to have x/1 + if (d === '1') + return n; + return this.frac(n, d); + }, + frac: function (n, d) { + return '\\frac' + this.braces(n) + this.braces(d); + }, + braces: function (e) { + return '{' + e + '}'; + }, + brackets: function (e, typ) { + typ = typ || 'parens'; + var bracketTypes = { + parens: ['(', ')'], + square: ['[', ']'], + brace: ['{', '}'], + abs: ['|', '|'], + angle: ['\\langle', '\\rangle'] + }; + var bracket = bracketTypes[typ]; + return '\\left' + bracket[0] + e + '\\right' + bracket[1]; + }, + /** + * Removes extreneous tokens + * @param {Tokens[]} tokens + * @returns {Tokens[]} + */ + filterTokens: function (tokens) { + var filtered = []; + //the items that need to be disposed + var d = ['\\', 'left', 'right', 'big', 'Big', 'large', 'Large']; + for (var i = 0, l = tokens.length; i < l; i++) { + var token = tokens[i]; + if (isArray(token)) + filtered.push(LaTeX.filterTokens(token)); + else if (d.indexOf(token.value) === -1) + filtered.push(token); + } + return filtered; + }, + /* + * Parses tokens from LaTeX string. Does not do any error checking + * @param {Tokens[]} rpn + * @returns {String} + */ + parse: function (raw_tokens) { + var i, l; + var retval = ''; + var tokens = this.filterTokens(raw_tokens); + var replace = { + 'cdot': '', + 'times': '', + 'infty': 'Infinity' + }; + //get the next token + var next = function () { + return tokens[++i]; + }; + var parse_next = function () { + return LaTeX.parse(next()); + }; + var get = function (token) { + if (token in replace) + return replace[token]; + return token; + }; + + //start parsing the tokens + for (i = 0, l = tokens.length; i < l; i++) { + var token = tokens[i]; + //fractions + if (token.value === 'frac') { + //parse and wrap it in brackets + var n = parse_next(); + var d = parse_next(); + retval += n + '/' + d; + } + else if (token.value in LaTeX.symbols) { + retval += token.value + parse_next(); + } + else if (token.value === 'int') { + var f = parse_next(); + //skip the comma + i++; + //get the variable of integration + var dx = next().value; + dx = get(dx.substring(1, dx.length)); + retval += 'integrate' + inBrackets(f + ',' + dx); + } + else if (token.value === 'mathrm') { + var f = tokens[++i][0].value; + retval += f + parse_next(); + } + //sum and product + else if (token.value === 'sum_' || token.value === 'prod_') { + var fn = token.value === 'sum_' ? 'sum' : 'product'; + var nxt = next(); + i++; //skip the caret + var end = parse_next(); + var f = parse_next(); + retval += fn + inBrackets([f, get(nxt[0]), get(nxt[2]), get(end)].join(',')); + } + else if (token.value === 'lim_') { + var nxt = next(); + retval += 'limit' + inBrackets([parse_next(), get(nxt[0]), get(nxt[2])].join(',')); + } + else { + if(Array.isArray(token)) { + retval += get(LaTeX.parse(token)); + } + else + retval += get(token.value.toString()); + } + } + return inBrackets(retval); + } + }; +//Vector ======================================================================= + function Vector(v) { + if (isVector(v)) + this.elements = v.items.slice(0); + else if (isArray(v)) + this.elements = v.slice(0); + else + this.elements = [].slice.call(arguments); + } + /* + * Generates a pre-filled array + * @param {type} n + * @param {type} val + * @returns {unresolved} + */ + Vector.arrayPrefill = function (n, val) { + var a = []; + val = val || 0; + for (var i = 0; i < n; i++) + a[i] = val; + return a; + }; + /** + * Generate a vector from and array + * @param {type} a + * @returns {unresolved} + */ + Vector.fromArray = function (a) { + var v = new Vector(); + v.elements = a; + return v; + }; + + /** + * Convert a Set to a Vector + * @param {Set} set + * @returns {Vector} + */ + Vector.fromSet = function(set) { + return Vector.fromArray(set.elements); + }; + + //Ported from Sylvester.js + Vector.prototype = { + custom: true, + // Returns element i of the vector + e: function (i) { + return (i < 1 || i > this.elements.length) ? null : this.elements[i - 1]; + }, + + set: function (i, val) { + if (!isSymbol(val)) + val = new Symbol(val); + this.elements[i] = val; + }, + + // Returns the number of elements the vector has + dimensions: function () { + return this.elements.length; + }, + + // Returns the modulus ('length') of the vector + modulus: function () { + return block('SAFE', function () { + return _.pow((this.dot(this.clone())), new Symbol(0.5)); + }, undefined, this); + }, + + // Returns true iff the vector is equal to the argument + eql: function (vector) { + var n = this.elements.length; + var V = vector.elements || vector; + if (n !== V.length) { + return false; + } + do { + if (Math.abs(_.subtract(this.elements[n - 1], V[n - 1]).valueOf()) > PRECISION) { + return false; + } + } + while (--n); + return true; + }, + + // Returns a clone of the vector + clone: function () { + var V = new Vector(), + l = this.elements.length; + for (var i = 0; i < l; i++) { + //Rule: all items within the vector must have a clone method. + V.elements.push(this.elements[i].clone()); + } + if (this.getter) { + V.getter = this.getter.clone(); + } + return V; + }, + + // Maps the vector to another vector according to the given function + map: function (fn) { + var elements = []; + this.each(function (x, i) { + elements.push(fn(x, i)); + }); + + return new Vector(elements); + }, + + // Calls the iterator for each element of the vector in turn + each: function (fn) { + var n = this.elements.length, k = n, i; + do { + i = k - n; + fn(this.elements[i], i + 1); + } + while (--n); + }, + + // Returns a new vector created by normalizing the receiver + toUnitVector: function () { + return block('SAFE', function () { + var r = this.modulus(); + if (r.valueOf() === 0) { + return this.clone(); + } + return this.map(function (x) { + return _.divide(x, r); + }); + }, undefined, this); + }, + + // Returns the angle between the vector and the argument (also a vector) + angleFrom: function (vector) { + return block('SAFE', function () { + var V = vector.elements || vector; + var n = this.elements.length; + if (n !== V.length) { + return null; + } + var dot = new Symbol(0), mod1 = new Symbol(0), mod2 = new Symbol(0); + // Work things out in parallel to save time + this.each(function (x, i) { + dot = _.add(dot, _.multiply(x, V[i - 1])); + mod1 = _.add(mod1, _.multiply(x, x));//will not conflict in safe block + mod2 = _.add(mod2, _.multiply(V[i - 1], V[i - 1]));//will not conflict in safe block + }); + mod1 = _.pow(mod1, new Symbol(0.5)); + mod2 = _.pow(mod2, new Symbol(0.5)); + var product = _.multiply(mod1, mod2); + if (product.valueOf() === 0) { + return null; + } + var theta = _.divide(dot, product); + var theta_val = theta.valueOf(); + if (theta_val < -1) { + theta = -1; + } + if (theta_val > 1) { + theta = 1; + } + return new Symbol(Math.acos(theta)); + }, undefined, this); + }, + + // Returns true iff the vector is parallel to the argument + isParallelTo: function (vector) { + var angle = this.angleFrom(vector).valueOf(); + return (angle === null) ? null : (angle <= PRECISION); + }, + + // Returns true iff the vector is antiparallel to the argument + isAntiparallelTo: function (vector) { + var angle = this.angleFrom(vector).valueOf(); + return (angle === null) ? null : (Math.abs(angle - Math.PI) <= PRECISION); + }, + + // Returns true iff the vector is perpendicular to the argument + isPerpendicularTo: function (vector) { + var dot = this.dot(vector); + return (dot === null) ? null : (Math.abs(dot) <= PRECISION); + }, + + // Returns the result of adding the argument to the vector + add: function (vector) { + return block('SAFE', function () { + var V = vector.elements || vector; + if (this.elements.length !== V.length) { + return null; + } + return this.map(function (x, i) { + return _.add(x, V[i - 1]); + }); + }, undefined, this); + }, + + // Returns the result of subtracting the argument from the vector + subtract: function (vector) { + return block('SAFE', function () { + var V = vector.elements || vector; + if (this.elements.length !== V.length) { + return null; + } + return this.map(function (x, i) { + return _.subtract(x, V[i - 1]); + }); + }, undefined, this); + }, + + // Returns the result of multiplying the elements of the vector by the argument + multiply: function (k) { + return this.map(function (x) { + return x.clone() * k.clone(); + }); + }, + + x: function (k) { + return this.multiply(k); + }, + + // Returns the scalar product of the vector with the argument + // Both vectors must have equal dimensionality + dot: function (vector) { + return block('SAFE', function () { + var V = vector.elements || vector; + var product = new Symbol(0), n = this.elements.length; + if (n !== V.length) { + return null; + } + do { + product = _.add(product, _.multiply(this.elements[n - 1], V[n - 1])); + } + while (--n); + return product; + }, undefined, this); + }, + + // Returns the vector product of the vector with the argument + // Both vectors must have dimensionality 3 + cross: function (vector) { + var B = vector.elements || vector; + if (this.elements.length !== 3 || B.length !== 3) { + return null; + } + var A = this.elements; + return block('SAFE', function () { + return new Vector([ + _.subtract(_.multiply(A[1], B[2]), _.multiply(A[2], B[1])), + _.subtract(_.multiply(A[2], B[0]), _.multiply(A[0], B[2])), + _.subtract(_.multiply(A[0], B[1]), _.multiply(A[1], B[0])) + ]); + }, undefined, this); + }, + + // Returns the (absolute) largest element of the vector + max: function () { + var m = 0, n = this.elements.length, k = n, i; + do { + i = k - n; + if (Math.abs(this.elements[i].valueOf()) > Math.abs(m.valueOf())) { + m = this.elements[i]; + } + } + while (--n); + return m; + }, + magnitude: function() { + var magnitude = new Symbol(0); + this.each(function(e) { + magnitude = _.add(magnitude, _.pow(e, new Symbol(2))); + }); + return _.sqrt(magnitude); + }, + // Returns the index of the first match found + indexOf: function (x) { + var index = null, n = this.elements.length, k = n, i; + do { + i = k - n; + if (index === null && this.elements[i].valueOf() === x.valueOf()) { + index = i + 1; + } + } + while (--n); + return index; + }, + text: function (x) { + return text(this); + }, + toString: function () { + return this.text(); + }, + latex: function (option) { + var tex = []; + for (var i = 0; i < this.elements.length; i++) { + tex.push(LaTeX.latex.call(LaTeX, this.elements[i], option)); + } + return '[' + tex.join(', ') + ']'; + } + }; + +//Matrix ======================================================================= + function Matrix() { + var m = arguments, + l = m.length, i, el = []; + if (isMatrix(m)) { //if it's a matrix then make a clone + for (i = 0; i < l; i++) { + el.push(m[i].slice(0)); + } + } + else { + var row, lw, rl; + for (i = 0; i < l; i++) { + row = m[i]; + if (isVector(row)) + row = row.elements; + if (!isArray(row)) + row = [row]; + rl = row.length; + if (lw && lw !== rl) + err('Unable to create Matrix. Row dimensions do not match!'); + el.push(row); + lw = rl; + } + } + this.elements = el; + } + Matrix.identity = function (n) { + var m = new Matrix(); + for (var i = 0; i < n; i++) { + m.elements.push([]); + for (var j = 0; j < n; j++) { + m.set(i, j, i === j ? new Symbol(1) : new Symbol(0)); + } + } + return m; + }; + Matrix.fromArray = function (arr) { + function F(args) { + return Matrix.apply(this, args); + } + F.prototype = Matrix.prototype; + + return new F(arr); + }; + Matrix.zeroMatrix = function (rows, cols) { + var m = new Matrix(); + for (var i = 0; i < rows; i++) { + m.elements.push(Vector.arrayPrefill(cols, new Symbol(0))); + } + return m; + }; + Matrix.prototype = { + //needs be true to let the parser know not to try to cast it to a symbol + custom: true, + get: function (row, column) { + if (!this.elements[row]) + return undefined; + return this.elements[row][column]; + }, + map: function(f, raw_values) { + var M = new Matrix(); + this.each(function(e, i, j) { + M.set( i, j, f.call(M, e), raw_values); + }); + return M; + }, + set: function (row, column, value, raw) { + if (!this.elements[row]) + this.elements[row] = []; + this.elements[row][column] = raw ? value : (isSymbol(value) ? value : new Symbol(value)); + }, + cols: function () { + return this.elements[0].length; + }, + rows: function () { + return this.elements.length; + }, + row: function (n) { + if (!n || n > this.cols()) + return []; + return this.elements[n - 1]; + }, + col: function (n) { + var nr = this.rows(), + col = []; + if (n > this.cols() || !n) + return col; + for (var i = 0; i < nr; i++) { + col.push(this.elements[i][n - 1]); + } + return col; + }, + eachElement: function (fn) { + var nr = this.rows(), + nc = this.cols(), i, j; + for (i = 0; i < nr; i++) { + for (j = 0; j < nc; j++) { + fn.call(this, this.elements[i][j], i, j); + } + } + }, + //ported from Sylvester.js + determinant: function () { + if (!this.isSquare()) { + return null; + } + var M = this.toRightTriangular(); + var det = M.elements[0][0], n = M.elements.length - 1, k = n, i; + do { + i = k - n + 1; + det = _.multiply(det, M.elements[i][i]); + } + while (--n); + return det; + }, + isSquare: function () { + return this.elements.length === this.elements[0].length; + }, + isSingular: function () { + return this.isSquare() && this.determinant() === 0; + }, + augment: function (m) { + var r = this.rows(), rr = m.rows(); + if (r !== rr) + err("Cannot augment matrix. Rows don't match."); + for (var i = 0; i < r; i++) { + this.elements[i] = this.elements[i].concat(m.elements[i]); + } + + return this; + }, + clone: function () { + var r = this.rows(), c = this.cols(), + m = new Matrix(); + for (var i = 0; i < r; i++) { + m.elements[i] = []; + for (var j = 0; j < c; j++) { + var symbol = this.elements[i][j]; + m.elements[i][j] = isSymbol(symbol) ? symbol.clone() : symbol; + } + } + return m; + }, + //ported from Sylvester.js + invert: function () { + if (!this.isSquare()) + err('Matrix is not square!'); + return block('SAFE', function () { + var ni = this.elements.length, ki = ni, i, j; + var imatrix = Matrix.identity(ni); + var M = this.augment(imatrix).toRightTriangular(); + var np, kp = M.elements[0].length, p, els, divisor; + var inverse_elements = [], new_element; + // Matrix is non-singular so there will be no zeros on the diagonal + // Cycle through rows from last to first + do { + i = ni - 1; + // First, normalise diagonal elements to 1 + els = []; + np = kp; + inverse_elements[i] = []; + divisor = M.elements[i][i]; + do { + p = kp - np; + new_element = _.divide(M.elements[i][p], divisor.clone()); + els.push(new_element); + // Shuffle of the current row of the right hand side into the results + // array as it will not be modified by later runs through this loop + if (p >= ki) { + inverse_elements[i].push(new_element); + } + } + while (--np); + M.elements[i] = els; + // Then, subtract this row from those above it to + // give the identity matrix on the left hand side + for (j = 0; j < i; j++) { + els = []; + np = kp; + do { + p = kp - np; + els.push(_.subtract(M.elements[j][p].clone(), _.multiply(M.elements[i][p].clone(), M.elements[j][i].clone()))); + } + while (--np); + M.elements[j] = els; + } + } + while (--ni); + return Matrix.fromArray(inverse_elements); + }, undefined, this); + }, + //ported from Sylvester.js + toRightTriangular: function () { + return block('SAFE', function () { + var M = this.clone(), els, fel, nel, + n = this.elements.length, k = n, i, np, kp = this.elements[0].length, p; + do { + i = k - n; + fel = M.elements[i][i]; + if (fel.valueOf() === 0) { + for (var j = i + 1; j < k; j++) { + nel = M.elements[j][i]; + if (nel && nel.valueOf() !== 0) { + els = []; + np = kp; + do { + p = kp - np; + els.push(_.add(M.elements[i][p].clone(), M.elements[j][p].clone())); + } + while (--np); + M.elements[i] = els; + break; + } + } + } + var fel = M.elements[i][i]; + if (fel.valueOf() !== 0) { + for (j = i + 1; j < k; j++) { + var multiplier = _.divide(M.elements[j][i].clone(), M.elements[i][i].clone()); + els = []; + np = kp; + do { + p = kp - np; + // Elements with column numbers up to an including the number + // of the row that we're subtracting can safely be set straight to + // zero, since that's the point of this routine and it avoids having + // to loop over and correct rounding errors later + els.push(p <= i ? new Symbol(0) : + _.subtract(M.elements[j][p].clone(), _.multiply(M.elements[i][p].clone(), multiplier.clone()))); + } + while (--np); + M.elements[j] = els; + } + } + } + while (--n); + + return M; + }, undefined, this); + }, + transpose: function () { + var rows = this.elements.length, cols = this.elements[0].length; + var M = new Matrix(), ni = cols, i, nj, j; + + do { + i = cols - ni; + M.elements[i] = []; + nj = rows; + do { + j = rows - nj; + M.elements[i][j] = this.elements[j][i].clone(); + } + while (--nj); + } + while (--ni); + return M; + }, + // Returns true if the matrix can multiply the argument from the left + canMultiplyFromLeft: function (matrix) { + var l = isMatrix(matrix) ? matrix.elements.length : matrix.length; + // this.columns should equal matrix.rows + return (this.elements[0].length === l); + }, + sameSize: function (matrix) { + return this.rows() === matrix.rows() && this.cols() === matrix.cols(); + }, + multiply: function (matrix) { + return block('SAFE', function () { + var M = matrix.elements || matrix; + if (!this.canMultiplyFromLeft(M)) { + if (this.sameSize(matrix)) { + var MM = new Matrix(); + var rows = this.rows(); + for (var i = 0; i < rows; i++) { + var e = _.multiply(new Vector(this.elements[i]), new Vector(matrix.elements[i])); + MM.elements[i] = e.elements; + } + return MM; + } + return null; + } + var ni = this.elements.length, ki = ni, i, nj, kj = M[0].length, j; + var cols = this.elements[0].length, elements = [], sum, nc, c; + do { + i = ki - ni; + elements[i] = []; + nj = kj; + do { + j = kj - nj; + sum = new Symbol(0); + nc = cols; + do { + c = cols - nc; + sum = _.add(sum, _.multiply(this.elements[i][c], M[c][j])); + } + while (--nc); + elements[i][j] = sum; + } + while (--nj); + } + while (--ni); + return Matrix.fromArray(elements); + }, undefined, this); + }, + add: function (matrix, callback) { + var M = new Matrix(); + if (this.sameSize(matrix)) { + this.eachElement(function (e, i, j) { + var result = _.add(e.clone(), matrix.elements[i][j].clone()); + if(callback) { + result = callback.call(M, result, e, matrix.elements[i][j]); + } + M.set(i, j, result); + }); + } + return M; + }, + subtract: function (matrix, callback) { + var M = new Matrix(); + if (this.sameSize(matrix)) { + this.eachElement(function (e, i, j) { + var result = _.subtract(e.clone(), matrix.elements[i][j].clone()); + if(callback) { + result = callback.call(M, result, e, matrix.elements[i][j]); + } + M.set(i, j, result); + }); + } + return M; + }, + negate: function () { + this.each(function (e) { + return e.negate(); + }); + return this; + }, + toVector: function () { + if (this.rows() === 1 || this.cols() === 1) { + var v = new Vector(); + v.elements = this.elements; + return v; + } + return this; + }, + toString: function (newline, to_decimal) { + var l = this.rows(), + s = []; + newline = newline === undefined ? '\n' : newline; + for (var i = 0; i < l; i++) { + s.push('[' + this.elements[i].map(function (x) { + var v = to_decimal ? x.multiplier.toDecimal() : x.toString(); + return x !== undefined ? v : ''; + }).join(',') + ']'); + } + return 'matrix' + inBrackets(s.join(',')); + }, + text: function () { + return 'matrix(' + this.elements.toString('') + ')'; + }, + latex: function (option) { + var cols = this.cols(), elements = this.elements; + return format('\\begin{vmatrix}{0}\\end{vmatrix}', function () { + var tex = []; + for (var row in elements) { + var row_tex = []; + for (var i = 0; i < cols; i++) { + row_tex.push(LaTeX.latex.call(LaTeX, elements[row][i], option)); + } + tex.push(row_tex.join(' & ')); + } + return tex.join(' \\cr '); + }); + } + }; + //aliases + Matrix.prototype.each = Matrix.prototype.eachElement; + + + function Set(set) { + this.elements = []; + //if the first object isn't an array, convert it to one. + if(!isVector(set)) + set = Vector.fromArray(arguments); + + if(set) { + var elements = set.elements; + for(var i=0, l=elements.length; i 0; + }, + is_subset: function(set) { + var elements = set.elements; + for(var i=0, l=elements.length; i 1 ? components[1] : components[0])+'='+dependencies[x]+';'; + replacements[x] = components.pop(); + } + + return [replacements, dep_string]; + }, + getArgsDeps: function(symbol, dependencies) { + var args = symbol.args; + for(var i=0; i\n' + + '
      \n' + + '
    • \n' + + tree.toHTML(3, indent) + '\n' + + '
    • \n' + + '
    \n' + + ''; + }; + + libExports.addPeeker = function(name, f) { + if(_.peekers[name]) + _.peekers[name].push(f); + }; + + libExports.removePeeker = function(name, f) { + remove(_.peekers[name], f); + }; + + libExports.parse = function(e) { + return String(e).split(';').map(function(x) { + return _.parse(x); + }); + }; + + libExports.api(); + + return libExports; //Done +//imports ====================================================================== +})({ + //https://github.com/peterolson/BigInteger.js + bigInt: (function(){ + var bigInt=function(undefined){"use strict";var BASE=1e7,LOG_BASE=7,MAX_INT=9007199254740992,MAX_INT_ARR=smallToArray(MAX_INT),LOG_MAX_INT=Math.log(MAX_INT);function Integer(v,radix){if(typeof v==="undefined")return Integer[0];if(typeof radix!=="undefined")return+radix===10?parseValue(v):parseBase(v,radix);return parseValue(v)}function BigInteger(value,sign){this.value=value;this.sign=sign;this.isSmall=false}BigInteger.prototype=Object.create(Integer.prototype);function SmallInteger(value){this.value=value;this.sign=value<0;this.isSmall=true}SmallInteger.prototype=Object.create(Integer.prototype);function isPrecise(n){return-MAX_INT0)return Math.floor(n);return Math.ceil(n)}function add(a,b){var l_a=a.length,l_b=b.length,r=new Array(l_a),carry=0,base=BASE,sum,i;for(i=0;i=base?1:0;r[i]=sum-carry*base}while(i0)r.push(carry);return r}function addAny(a,b){if(a.length>=b.length)return add(a,b);return add(b,a)}function addSmall(a,carry){var l=a.length,r=new Array(l),base=BASE,sum,i;for(i=0;i0){r[i++]=carry%base;carry=Math.floor(carry/base)}return r}BigInteger.prototype.add=function(v){var n=parseValue(v);if(this.sign!==n.sign){return this.subtract(n.negate())}var a=this.value,b=n.value;if(n.isSmall){return new BigInteger(addSmall(a,Math.abs(b)),this.sign)}return new BigInteger(addAny(a,b),this.sign)};BigInteger.prototype.plus=BigInteger.prototype.add;SmallInteger.prototype.add=function(v){var n=parseValue(v);var a=this.value;if(a<0!==n.sign){return this.subtract(n.negate())}var b=n.value;if(n.isSmall){if(isPrecise(a+b))return new SmallInteger(a+b);b=smallToArray(Math.abs(b))}return new BigInteger(addSmall(b,Math.abs(a)),a<0)};SmallInteger.prototype.plus=SmallInteger.prototype.add;function subtract(a,b){var a_l=a.length,b_l=b.length,r=new Array(a_l),borrow=0,base=BASE,i,difference;for(i=0;i=0){value=subtract(a,b)}else{value=subtract(b,a);sign=!sign}value=arrayToSmall(value);if(typeof value==="number"){if(sign)value=-value;return new SmallInteger(value)}return new BigInteger(value,sign)}function subtractSmall(a,b,sign){var l=a.length,r=new Array(l),carry=-b,base=BASE,i,difference;for(i=0;i=0)};SmallInteger.prototype.minus=SmallInteger.prototype.subtract;BigInteger.prototype.negate=function(){return new BigInteger(this.value,!this.sign)};SmallInteger.prototype.negate=function(){var sign=this.sign;var small=new SmallInteger(-this.value);small.sign=!sign;return small};BigInteger.prototype.abs=function(){return new BigInteger(this.value,false)};SmallInteger.prototype.abs=function(){return new SmallInteger(Math.abs(this.value))};function multiplyLong(a,b){var a_l=a.length,b_l=b.length,l=a_l+b_l,r=createArray(l),base=BASE,product,carry,i,a_i,b_j;for(i=0;i0){r[i++]=carry%base;carry=Math.floor(carry/base)}return r}function shiftLeft(x,n){var r=[];while(n-- >0)r.push(0);return r.concat(x)}function multiplyKaratsuba(x,y){var n=Math.max(x.length,y.length);if(n<=30)return multiplyLong(x,y);n=Math.ceil(n/2);var b=x.slice(n),a=x.slice(0,n),d=y.slice(n),c=y.slice(0,n);var ac=multiplyKaratsuba(a,c),bd=multiplyKaratsuba(b,d),abcd=multiplyKaratsuba(addAny(a,b),addAny(c,d));var product=addAny(addAny(ac,shiftLeft(subtract(subtract(abcd,ac),bd),n)),shiftLeft(bd,2*n));trim(product);return product}function useKaratsuba(l1,l2){return-.012*l1-.012*l2+15e-6*l1*l2>0}BigInteger.prototype.multiply=function(v){var n=parseValue(v),a=this.value,b=n.value,sign=this.sign!==n.sign,abs;if(n.isSmall){if(b===0)return Integer[0];if(b===1)return this;if(b===-1)return this.negate();abs=Math.abs(b);if(abs=0;shift--){quotientDigit=base-1;if(remainder[shift+b_l]!==divisorMostSignificantDigit){quotientDigit=Math.floor((remainder[shift+b_l]*base+remainder[shift+b_l-1])/divisorMostSignificantDigit)}carry=0;borrow=0;l=divisor.length;for(i=0;ib_l){highx=(highx+1)*base}guess=Math.ceil(highx/highy);do{check=multiplySmall(b,guess);if(compareAbs(check,part)<=0)break;guess--}while(guess);result.push(guess);part=subtract(part,check)}result.reverse();return[arrayToSmall(result),arrayToSmall(part)]}function divModSmall(value,lambda){var length=value.length,quotient=createArray(length),base=BASE,i,q,remainder,divisor;remainder=0;for(i=length-1;i>=0;--i){divisor=remainder*base+value[i];q=truncate(divisor/lambda);remainder=divisor-q*lambda;quotient[i]=q|0}return[quotient,remainder|0]}function divModAny(self,v){var value,n=parseValue(v);var a=self.value,b=n.value;var quotient;if(b===0)throw new Error("Cannot divide by zero");if(self.isSmall){if(n.isSmall){return[new SmallInteger(truncate(a/b)),new SmallInteger(a%b)]}return[Integer[0],self]}if(n.isSmall){if(b===1)return[self,Integer[0]];if(b==-1)return[self.negate(),Integer[0]];var abs=Math.abs(b);if(absb.length?1:-1}for(var i=a.length-1;i>=0;i--){if(a[i]!==b[i])return a[i]>b[i]?1:-1}return 0}BigInteger.prototype.compareAbs=function(v){var n=parseValue(v),a=this.value,b=n.value;if(n.isSmall)return 1;return compareAbs(a,b)};SmallInteger.prototype.compareAbs=function(v){var n=parseValue(v),a=Math.abs(this.value),b=n.value;if(n.isSmall){b=Math.abs(b);return a===b?0:a>b?1:-1}return-1};BigInteger.prototype.compare=function(v){if(v===Infinity){return-1}if(v===-Infinity){return 1}var n=parseValue(v),a=this.value,b=n.value;if(this.sign!==n.sign){return n.sign?1:-1}if(n.isSmall){return this.sign?-1:1}return compareAbs(a,b)*(this.sign?-1:1)};BigInteger.prototype.compareTo=BigInteger.prototype.compare;SmallInteger.prototype.compare=function(v){if(v===Infinity){return-1}if(v===-Infinity){return 1}var n=parseValue(v),a=this.value,b=n.value;if(n.isSmall){return a==b?0:a>b?1:-1}if(a<0!==n.sign){return a<0?-1:1}return a<0?1:-1};SmallInteger.prototype.compareTo=SmallInteger.prototype.compare;BigInteger.prototype.equals=function(v){return this.compare(v)===0};SmallInteger.prototype.eq=SmallInteger.prototype.equals=BigInteger.prototype.eq=BigInteger.prototype.equals;BigInteger.prototype.notEquals=function(v){return this.compare(v)!==0};SmallInteger.prototype.neq=SmallInteger.prototype.notEquals=BigInteger.prototype.neq=BigInteger.prototype.notEquals;BigInteger.prototype.greater=function(v){return this.compare(v)>0};SmallInteger.prototype.gt=SmallInteger.prototype.greater=BigInteger.prototype.gt=BigInteger.prototype.greater;BigInteger.prototype.lesser=function(v){return this.compare(v)<0};SmallInteger.prototype.lt=SmallInteger.prototype.lesser=BigInteger.prototype.lt=BigInteger.prototype.lesser;BigInteger.prototype.greaterOrEquals=function(v){return this.compare(v)>=0};SmallInteger.prototype.geq=SmallInteger.prototype.greaterOrEquals=BigInteger.prototype.geq=BigInteger.prototype.greaterOrEquals;BigInteger.prototype.lesserOrEquals=function(v){return this.compare(v)<=0};SmallInteger.prototype.leq=SmallInteger.prototype.lesserOrEquals=BigInteger.prototype.leq=BigInteger.prototype.lesserOrEquals;BigInteger.prototype.isEven=function(){return(this.value[0]&1)===0};SmallInteger.prototype.isEven=function(){return(this.value&1)===0};BigInteger.prototype.isOdd=function(){return(this.value[0]&1)===1};SmallInteger.prototype.isOdd=function(){return(this.value&1)===1};BigInteger.prototype.isPositive=function(){return!this.sign};SmallInteger.prototype.isPositive=function(){return this.value>0};BigInteger.prototype.isNegative=function(){return this.sign};SmallInteger.prototype.isNegative=function(){return this.value<0};BigInteger.prototype.isUnit=function(){return false};SmallInteger.prototype.isUnit=function(){return Math.abs(this.value)===1};BigInteger.prototype.isZero=function(){return false};SmallInteger.prototype.isZero=function(){return this.value===0};BigInteger.prototype.isDivisibleBy=function(v){var n=parseValue(v);var value=n.value;if(value===0)return false;if(value===1)return true;if(value===2)return this.isEven();return this.mod(n).equals(Integer[0])};SmallInteger.prototype.isDivisibleBy=BigInteger.prototype.isDivisibleBy;function isBasicPrime(v){var n=v.abs();if(n.isUnit())return false;if(n.equals(2)||n.equals(3)||n.equals(5))return true;if(n.isEven()||n.isDivisibleBy(3)||n.isDivisibleBy(5))return false;if(n.lesser(49))return true}function millerRabinTest(n,a){var nPrev=n.prev(),b=nPrev,r=0,d,t,i,x;while(b.isEven())b=b.divide(2),r++;next:for(i=0;i-MAX_INT)return new SmallInteger(value-1);return new BigInteger(MAX_INT_ARR,true)};var powersOfTwo=[1];while(2*powersOfTwo[powersOfTwo.length-1]<=BASE)powersOfTwo.push(2*powersOfTwo[powersOfTwo.length-1]);var powers2Length=powersOfTwo.length,highestPower2=powersOfTwo[powers2Length-1];function shift_isSmall(n){return(typeof n==="number"||typeof n==="string")&&+Math.abs(n)<=BASE||n instanceof BigInteger&&n.value.length<=1}BigInteger.prototype.shiftLeft=function(n){if(!shift_isSmall(n)){throw new Error(String(n)+" is too large for shifting.")}n=+n;if(n<0)return this.shiftRight(-n);var result=this;if(result.isZero())return result;while(n>=powers2Length){result=result.multiply(highestPower2);n-=powers2Length-1}return result.multiply(powersOfTwo[n])};SmallInteger.prototype.shiftLeft=BigInteger.prototype.shiftLeft;BigInteger.prototype.shiftRight=function(n){var remQuo;if(!shift_isSmall(n)){throw new Error(String(n)+" is too large for shifting.")}n=+n;if(n<0)return this.shiftLeft(-n);var result=this;while(n>=powers2Length){if(result.isZero()||result.isNegative()&&result.isUnit())return result;remQuo=divModAny(result,highestPower2);result=remQuo[1].isNegative()?remQuo[0].prev():remQuo[0];n-=powers2Length-1}remQuo=divModAny(result,powersOfTwo[n]);return remQuo[1].isNegative()?remQuo[0].prev():remQuo[0]};SmallInteger.prototype.shiftRight=BigInteger.prototype.shiftRight;function bitwise(x,y,fn){y=parseValue(y);var xSign=x.isNegative(),ySign=y.isNegative();var xRem=xSign?x.not():x,yRem=ySign?y.not():y;var xDigit=0,yDigit=0;var xDivMod=null,yDivMod=null;var result=[];while(!xRem.isZero()||!yRem.isZero()){xDivMod=divModAny(xRem,highestPower2);xDigit=xDivMod[1].toJSNumber();if(xSign){xDigit=highestPower2-1-xDigit}yDivMod=divModAny(yRem,highestPower2);yDigit=yDivMod[1].toJSNumber();if(ySign){yDigit=highestPower2-1-yDigit}xRem=xDivMod[0];yRem=yDivMod[0];result.push(fn(xDigit,yDigit))}var sum=fn(xSign?1:0,ySign?1:0)!==0?bigInt(-1):bigInt(0);for(var i=result.length-1;i>=0;i-=1){sum=sum.multiply(highestPower2).add(bigInt(result[i]))}return sum}BigInteger.prototype.not=function(){return this.negate().prev()};SmallInteger.prototype.not=BigInteger.prototype.not;BigInteger.prototype.and=function(n){return bitwise(this,n,function(a,b){return a&b})};SmallInteger.prototype.and=BigInteger.prototype.and;BigInteger.prototype.or=function(n){return bitwise(this,n,function(a,b){return a|b})};SmallInteger.prototype.or=BigInteger.prototype.or;BigInteger.prototype.xor=function(n){return bitwise(this,n,function(a,b){return a^b})};SmallInteger.prototype.xor=BigInteger.prototype.xor;var LOBMASK_I=1<<30,LOBMASK_BI=(BASE&-BASE)*(BASE&-BASE)|LOBMASK_I;function roughLOB(n){var v=n.value,x=typeof v==="number"?v|LOBMASK_I:v[0]+v[1]*BASE|LOBMASK_BI;return x&-x}function integerLogarithm(value,base){if(base.compareTo(value)<=0){var tmp=integerLogarithm(value,base.square(base));var p=tmp.p;var e=tmp.e;var t=p.multiply(base);return t.compareTo(value)<=0?{p:t,e:e*2+1}:{p:p,e:e*2}}return{p:bigInt(1),e:0}}BigInteger.prototype.bitLength=function(){var n=this;if(n.compareTo(bigInt(0))<0){n=n.negate().subtract(bigInt(1))}if(n.compareTo(bigInt(0))===0){return bigInt(0)}return bigInt(integerLogarithm(n,bigInt(2)).e).add(bigInt(1))};SmallInteger.prototype.bitLength=BigInteger.prototype.bitLength;function max(a,b){a=parseValue(a);b=parseValue(b);return a.greater(b)?a:b}function min(a,b){a=parseValue(a);b=parseValue(b);return a.lesser(b)?a:b}function gcd(a,b){a=parseValue(a).abs();b=parseValue(b).abs();if(a.equals(b))return a;if(a.isZero())return b;if(b.isZero())return a;var c=Integer[1],d,t;while(a.isEven()&&b.isEven()){d=Math.min(roughLOB(a),roughLOB(b));a=a.divide(d);b=b.divide(d);c=c.multiply(d)}while(a.isEven()){a=a.divide(roughLOB(a))}do{while(b.isEven()){b=b.divide(roughLOB(b))}if(a.greater(b)){t=b;b=a;a=t}b=b.subtract(a)}while(!b.isZero());return c.isUnit()?a:a.multiply(c)}function lcm(a,b){a=parseValue(a).abs();b=parseValue(b).abs();return a.divide(gcd(a,b)).multiply(b)}function randBetween(a,b){a=parseValue(a);b=parseValue(b);var low=min(a,b),high=max(a,b);var range=high.subtract(low).add(1);if(range.isSmall)return low.add(Math.floor(Math.random()*range));var length=range.value.length-1;var result=[],restricted=true;for(var i=length;i>=0;i--){var top=restricted?range.value[i]:BASE;var digit=truncate(Math.random()*top);result.unshift(digit);if(digit=absBase){if(c==="1"&&absBase===1)continue;throw new Error(c+" is not a valid digit in base "+base+".")}else if(c.charCodeAt(0)-87>=absBase){throw new Error(c+" is not a valid digit in base "+base+".")}}}if(2<=base&&base<=36){if(length<=LOG_MAX_INT/Math.log(base)){var result=parseInt(text,base);if(isNaN(result)){throw new Error(c+" is not a valid digit in base "+base+".")}return new SmallInteger(parseInt(text,base))}}base=parseValue(base);var digits=[];var isNegative=text[0]==="-";for(i=isNegative?1:0;i");digits.push(parseValue(text.slice(start+1,i)))}else throw new Error(c+" is not a valid character")}return parseBaseFromArray(digits,base,isNegative)};function parseBaseFromArray(digits,base,isNegative){var val=Integer[0],pow=Integer[1],i;for(i=digits.length-1;i>=0;i--){val=val.add(digits[i].times(pow));pow=pow.times(base)}return isNegative?val.negate():val}function stringify(digit){if(digit<=35){return"0123456789abcdefghijklmnopqrstuvwxyz".charAt(digit)}return"<"+digit+">"}function toBase(n,base){base=bigInt(base);if(base.isZero()){if(n.isZero())return{value:[0],isNegative:false};throw new Error("Cannot convert nonzero numbers to base 0.")}if(base.equals(-1)){if(n.isZero())return{value:[0],isNegative:false};if(n.isNegative())return{value:[].concat.apply([],Array.apply(null,Array(-n)).map(Array.prototype.valueOf,[1,0])),isNegative:false};var arr=Array.apply(null,Array(+n-1)).map(Array.prototype.valueOf,[0,1]);arr.unshift([1]);return{value:[].concat.apply([],arr),isNegative:false}}var neg=false;if(n.isNegative()&&base.isPositive()){neg=true;n=n.abs()}if(base.equals(1)){if(n.isZero())return{value:[0],isNegative:false};return{value:Array.apply(null,Array(+n)).map(Number.prototype.valueOf,1),isNegative:neg}}var out=[];var left=n,divmod;while(left.isNegative()||left.compareAbs(base)>=0){divmod=left.divmod(base);left=divmod.quotient;var digit=divmod.remainder;if(digit.isNegative()){digit=base.minus(digit).abs();left=left.next()}out.push(digit.toJSNumber())}out.push(left.toJSNumber());return{value:out.reverse(),isNegative:neg}}function toBaseString(n,base){var arr=toBase(n,base);return(arr.isNegative?"-":"")+arr.value.map(stringify).join("")}BigInteger.prototype.toArray=function(radix){return toBase(this,radix)};SmallInteger.prototype.toArray=function(radix){return toBase(this,radix)};BigInteger.prototype.toString=function(radix){if(radix===undefined)radix=10;if(radix!==10)return toBaseString(this,radix);var v=this.value,l=v.length,str=String(v[--l]),zeros="0000000",digit;while(--l>=0){digit=String(v[l]);str+=zeros.slice(digit.length)+digit}var sign=this.sign?"-":"";return sign+str};SmallInteger.prototype.toString=function(radix){if(radix===undefined)radix=10;if(radix!=10)return toBaseString(this,radix);return String(this.value)};BigInteger.prototype.toJSON=SmallInteger.prototype.toJSON=function(){return this.toString()};BigInteger.prototype.valueOf=function(){return parseInt(this.toString(),10)};BigInteger.prototype.toJSNumber=BigInteger.prototype.valueOf;SmallInteger.prototype.valueOf=function(){return this.value};SmallInteger.prototype.toJSNumber=SmallInteger.prototype.valueOf;function parseStringValue(v){if(isPrecise(+v)){var x=+v;if(x===truncate(x))return new SmallInteger(x);throw new Error("Invalid integer: "+v)}var sign=v[0]==="-";if(sign)v=v.slice(1);var split=v.split(/e/i);if(split.length>2)throw new Error("Invalid integer: "+split.join("e"));if(split.length===2){var exp=split[1];if(exp[0]==="+")exp=exp.slice(1);exp=+exp;if(exp!==truncate(exp)||!isPrecise(exp))throw new Error("Invalid integer: "+exp+" is not a valid exponent.");var text=split[0];var decimalPlace=text.indexOf(".");if(decimalPlace>=0){exp-=text.length-decimalPlace-1;text=text.slice(0,decimalPlace)+text.slice(decimalPlace+1)}if(exp<0)throw new Error("Cannot include negative exponent part for integers");text+=new Array(exp+1).join("0");v=text}var isValid=/^([0-9][0-9]*)$/.test(v);if(!isValid)throw new Error("Invalid integer: "+v);var r=[],max=v.length,l=LOG_BASE,min=max-l;while(max>0){r.push(+v.slice(min,max));min-=l;if(min<0)min=0;max-=l}trim(r);return new BigInteger(r,sign)}function parseNumberValue(v){if(isPrecise(v)){if(v!==truncate(v))throw new Error(v+" is not an integer.");return new SmallInteger(v)}return parseStringValue(v.toString())}function parseValue(v){if(typeof v==="number"){return parseNumberValue(v)}if(typeof v==="string"){return parseStringValue(v)}return v}for(var i=0;i<1e3;i++){Integer[i]=new SmallInteger(i);if(i>0)Integer[-i]=new SmallInteger(-i)}Integer.one=Integer[1];Integer.zero=Integer[0];Integer.minusOne=Integer[-1];Integer.max=max;Integer.min=min;Integer.gcd=gcd;Integer.lcm=lcm;Integer.isInstance=function(x){return x instanceof BigInteger||x instanceof SmallInteger};Integer.randBetween=randBetween;Integer.fromArray=function(digits,base,isNegative){return parseBaseFromArray(digits.map(parseValue),parseValue(base||10),isNegative)};return Integer}();if(typeof module!=="undefined"&&module.hasOwnProperty("exports")){module.exports=bigInt}if(typeof define==="function"&&define.amd){define("big-integer",[],function(){return bigInt})} + return bigInt; + })(), + /* big.js v5.2.2 https://github.com/MikeMcl/big.js/LICENCE */ + bigDec: function(n){"use strict";var e,i,t,r=9e15,s=1e9,o="0123456789abcdef",u="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",c="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",f={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-r,maxE:r,crypto:!1},h=!0,a="[DecimalError] ",d=a+"Invalid argument: ",l=a+"Precision limit exceeded",p=a+"crypto unavailable",g=Math.floor,w=Math.pow,m=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,v=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,N=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,b=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,E=1e7,x=7,M=u.length-1,y=c.length-1,q={name:"[object Decimal]"};function O(n){var e,i,t,r=n.length-1,s="",o=n[0];if(r>0){for(s+=o,e=1;ei)throw Error(d+n)}function A(n,e,i,t){var r,s,o,u;for(s=n[0];s>=10;s/=10)--e;return--e<0?(e+=x,r=0):(r=Math.ceil((e+1)/x),e%=x),s=w(10,x-e),u=n[r]%s|0,null==t?e<3?(0==e?u=u/100|0:1==e&&(u=u/10|0),o=i<4&&99999==u||i>3&&49999==u||5e4==u||0==u):o=(i<4&&u+1==s||i>3&&u+1==s/2)&&(n[r+1]/s/100|0)==w(10,e-2)-1||(u==s/2||0==u)&&0==(n[r+1]/s/100|0):e<4?(0==e?u=u/1e3|0:1==e?u=u/100|0:2==e&&(u=u/10|0),o=(t||i<4)&&9999==u||!t&&i>3&&4999==u):o=((t||i<4)&&u+1==s||!t&&i>3&&u+1==s/2)&&(n[r+1]/s/1e3|0)==w(10,e-3)-1,o}function D(n,e,i){for(var t,r,s=[0],u=0,c=n.length;ui-1&&(void 0===s[t+1]&&(s[t+1]=0),s[t+1]+=s[t]/i|0,s[t]%=i)}return s.reverse()}q.absoluteValue=q.abs=function(){var n=new this.constructor(this);return n.s<0&&(n.s=1),P(n)},q.ceil=function(){return P(new this.constructor(this),this.e+1,2)},q.comparedTo=q.cmp=function(n){var e,i,t,r,s=this,o=s.d,u=(n=new s.constructor(n)).d,c=s.s,f=n.s;if(!o||!u)return c&&f?c!==f?c:o===u?0:!o^c<0?1:-1:NaN;if(!o[0]||!u[0])return o[0]?c:u[0]?-f:0;if(c!==f)return c;if(s.e!==n.e)return s.e>n.e^c<0?1:-1;for(e=0,i=(t=o.length)<(r=u.length)?t:r;eu[e]^c<0?1:-1;return t===r?0:t>r^c<0?1:-1},q.cosine=q.cos=function(){var n,e,i=this,r=i.constructor;return i.d?i.d[0]?(n=r.precision,e=r.rounding,r.precision=n+Math.max(i.e,i.sd())+x,r.rounding=1,i=function(n,e){var i,t,r=e.d.length;r<32?(i=Math.ceil(r/3),t=Math.pow(4,-i).toString()):(i=16,t="2.3283064365386962890625e-10");n.precision+=i,e=W(n,1,e.times(t),new n(1));for(var s=i;s--;){var o=e.times(e);e=o.times(o).minus(o).times(8).plus(1)}return n.precision-=i,e}(r,J(r,i)),r.precision=n,r.rounding=e,P(2==t||3==t?i.neg():i,n,e,!0)):new r(1):new r(NaN)},q.cubeRoot=q.cbrt=function(){var n,e,i,t,r,s,o,u,c,f,a=this,d=a.constructor;if(!a.isFinite()||a.isZero())return new d(a);for(h=!1,(s=a.s*Math.pow(a.s*a,1/3))&&Math.abs(s)!=1/0?t=new d(s.toString()):(i=O(a.d),(s=((n=a.e)-i.length+1)%3)&&(i+=1==s||-2==s?"0":"00"),s=Math.pow(i,1/3),n=g((n+1)/3)-(n%3==(n<0?-1:2)),(t=new d(i=s==1/0?"5e"+n:(i=s.toExponential()).slice(0,i.indexOf("e")+1)+n)).s=a.s),o=(n=d.precision)+3;;)if(f=(c=(u=t).times(u).times(u)).plus(a),t=Z(f.plus(a).times(u),f.plus(c),o+2,1),O(u.d).slice(0,o)===(i=O(t.d)).slice(0,o)){if("9999"!=(i=i.slice(o-3,o+1))&&(r||"4999"!=i)){+i&&(+i.slice(1)||"5"!=i.charAt(0))||(P(t,n+1,1),e=!t.times(t).times(t).eq(a));break}if(!r&&(P(u,n+1,0),u.times(u).times(u).eq(a))){t=u;break}o+=4,r=1}return h=!0,P(t,n,d.rounding,e)},q.decimalPlaces=q.dp=function(){var n,e=this.d,i=NaN;if(e){if(i=((n=e.length-1)-g(this.e/x))*x,n=e[n])for(;n%10==0;n/=10)i--;i<0&&(i=0)}return i},q.dividedBy=q.div=function(n){return Z(this,new this.constructor(n))},q.dividedToIntegerBy=q.divToInt=function(n){var e=this.constructor;return P(Z(this,new e(n),0,1,1),e.precision,e.rounding)},q.equals=q.eq=function(n){return 0===this.cmp(n)},q.floor=function(){return P(new this.constructor(this),this.e+1,3)},q.greaterThan=q.gt=function(n){return this.cmp(n)>0},q.greaterThanOrEqualTo=q.gte=function(n){var e=this.cmp(n);return 1==e||0===e},q.hyperbolicCosine=q.cosh=function(){var n,e,i,t,r,s=this,o=s.constructor,u=new o(1);if(!s.isFinite())return new o(s.s?1/0:NaN);if(s.isZero())return u;i=o.precision,t=o.rounding,o.precision=i+Math.max(s.e,s.sd())+4,o.rounding=1,(r=s.d.length)<32?(n=Math.ceil(r/3),e=Math.pow(4,-n).toString()):(n=16,e="2.3283064365386962890625e-10"),s=W(o,1,s.times(e),new o(1),!0);for(var c,f=n,h=new o(8);f--;)c=s.times(s),s=u.minus(c.times(h.minus(c.times(h))));return P(s,o.precision=i,o.rounding=t,!0)},q.hyperbolicSine=q.sinh=function(){var n,e,i,t,r=this,s=r.constructor;if(!r.isFinite()||r.isZero())return new s(r);if(e=s.precision,i=s.rounding,s.precision=e+Math.max(r.e,r.sd())+4,s.rounding=1,(t=r.d.length)<3)r=W(s,2,r,r,!0);else{n=(n=1.4*Math.sqrt(t))>16?16:0|n,r=W(s,2,r=r.times(Math.pow(5,-n)),r,!0);for(var o,u=new s(5),c=new s(16),f=new s(20);n--;)o=r.times(r),r=r.times(u.plus(o.times(c.times(o).plus(f))))}return s.precision=e,s.rounding=i,P(r,e,i,!0)},q.hyperbolicTangent=q.tanh=function(){var n,e,i=this,t=i.constructor;return i.isFinite()?i.isZero()?new t(i):(n=t.precision,e=t.rounding,t.precision=n+7,t.rounding=1,Z(i.sinh(),i.cosh(),t.precision=n,t.rounding=e)):new t(i.s)},q.inverseCosine=q.acos=function(){var n,e=this,i=e.constructor,t=e.abs().cmp(1),r=i.precision,s=i.rounding;return-1!==t?0===t?e.isNeg()?_(i,r,s):new i(0):new i(NaN):e.isZero()?_(i,r+4,s).times(.5):(i.precision=r+6,i.rounding=1,e=e.asin(),n=_(i,r+4,s).times(.5),i.precision=r,i.rounding=s,n.minus(e))},q.inverseHyperbolicCosine=q.acosh=function(){var n,e,i=this,t=i.constructor;return i.lte(1)?new t(i.eq(1)?0:NaN):i.isFinite()?(n=t.precision,e=t.rounding,t.precision=n+Math.max(Math.abs(i.e),i.sd())+4,t.rounding=1,h=!1,i=i.times(i).minus(1).sqrt().plus(i),h=!0,t.precision=n,t.rounding=e,i.ln()):new t(i)},q.inverseHyperbolicSine=q.asinh=function(){var n,e,i=this,t=i.constructor;return!i.isFinite()||i.isZero()?new t(i):(n=t.precision,e=t.rounding,t.precision=n+2*Math.max(Math.abs(i.e),i.sd())+6,t.rounding=1,h=!1,i=i.times(i).plus(1).sqrt().plus(i),h=!0,t.precision=n,t.rounding=e,i.ln())},q.inverseHyperbolicTangent=q.atanh=function(){var n,e,i,t,r=this,s=r.constructor;return r.isFinite()?r.e>=0?new s(r.abs().eq(1)?r.s/0:r.isZero()?r:NaN):(n=s.precision,e=s.rounding,t=r.sd(),Math.max(t,n)<2*-r.e-1?P(new s(r),n,e,!0):(s.precision=i=t-r.e,r=Z(r.plus(1),new s(1).minus(r),i+n,1),s.precision=n+4,s.rounding=1,r=r.ln(),s.precision=n,s.rounding=e,r.times(.5))):new s(NaN)},q.inverseSine=q.asin=function(){var n,e,i,t,r=this,s=r.constructor;return r.isZero()?new s(r):(e=r.abs().cmp(1),i=s.precision,t=s.rounding,-1!==e?0===e?((n=_(s,i+4,t).times(.5)).s=r.s,n):new s(NaN):(s.precision=i+6,s.rounding=1,r=r.div(new s(1).minus(r.times(r)).sqrt().plus(1)).atan(),s.precision=i,s.rounding=t,r.times(2)))},q.inverseTangent=q.atan=function(){var n,e,i,t,r,s,o,u,c,f=this,a=f.constructor,d=a.precision,l=a.rounding;if(f.isFinite()){if(f.isZero())return new a(f);if(f.abs().eq(1)&&d+4<=y)return(o=_(a,d+4,l).times(.25)).s=f.s,o}else{if(!f.s)return new a(NaN);if(d+4<=y)return(o=_(a,d+4,l).times(.5)).s=f.s,o}for(a.precision=u=d+10,a.rounding=1,n=i=Math.min(28,u/x+2|0);n;--n)f=f.div(f.times(f).plus(1).sqrt().plus(1));for(h=!1,e=Math.ceil(u/x),t=1,c=f.times(f),o=new a(f),r=f;-1!==n;)if(r=r.times(c),s=o.minus(r.div(t+=2)),r=r.times(c),void 0!==(o=s.plus(r.div(t+=2))).d[e])for(n=e;o.d[n]===s.d[n]&&n--;);return i&&(o=o.times(2<this.d.length-2},q.isNaN=function(){return!this.s},q.isNegative=q.isNeg=function(){return this.s<0},q.isPositive=q.isPos=function(){return this.s>0},q.isZero=function(){return!!this.d&&0===this.d[0]},q.lessThan=q.lt=function(n){return this.cmp(n)<0},q.lessThanOrEqualTo=q.lte=function(n){return this.cmp(n)<1},q.logarithm=q.log=function(n){var e,i,t,r,s,o,u,c,f=this.constructor,a=f.precision,d=f.rounding;if(null==n)n=new f(10),e=!0;else{if(i=(n=new f(n)).d,n.s<0||!i||!i[0]||n.eq(1))return new f(NaN);e=n.eq(10)}if(i=this.d,this.s<0||!i||!i[0]||this.eq(1))return new f(i&&!i[0]?-1/0:1!=this.s?NaN:i?0:1/0);if(e)if(i.length>1)s=!0;else{for(r=i[0];r%10==0;)r/=10;s=1!==r}if(h=!1,o=B(this,u=a+5),t=e?U(f,u+10):B(n,u),A((c=Z(o,t,u,1)).d,r=a,d))do{if(o=B(this,u+=10),t=e?U(f,u+10):B(n,u),c=Z(o,t,u,1),!s){+O(c.d).slice(r+1,r+15)+1==1e14&&(c=P(c,a+1,0));break}}while(A(c.d,r+=10,d));return h=!0,P(c,a,d)},q.minus=q.sub=function(n){var e,i,t,r,s,o,u,c,f,a,d,l,p=this,w=p.constructor;if(n=new w(n),!p.d||!n.d)return p.s&&n.s?p.d?n.s=-n.s:n=new w(n.d||p.s!==n.s?p:NaN):n=new w(NaN),n;if(p.s!=n.s)return n.s=-n.s,p.plus(n);if(f=p.d,l=n.d,u=w.precision,c=w.rounding,!f[0]||!l[0]){if(l[0])n.s=-n.s;else{if(!f[0])return new w(3===c?-0:0);n=new w(p)}return h?P(n,u,c):n}if(i=g(n.e/x),a=g(p.e/x),f=f.slice(),s=a-i){for((d=s<0)?(e=f,s=-s,o=l.length):(e=l,i=a,o=f.length),s>(t=Math.max(Math.ceil(u/x),o)+2)&&(s=t,e.length=1),e.reverse(),t=s;t--;)e.push(0);e.reverse()}else{for((d=(t=f.length)<(o=l.length))&&(o=t),t=0;t0;--t)f[o++]=0;for(t=l.length;t>s;){if(f[--t](o=(s=Math.ceil(u/x))>o?s+1:o+1)&&(r=o,i.length=1),i.reverse();r--;)i.push(0);i.reverse()}for((o=f.length)-(r=a.length)<0&&(r=o,i=a,a=f,f=i),e=0;r;)e=(f[--r]=f[r]+a[r]+e)/E|0,f[r]%=E;for(e&&(f.unshift(e),++t),o=f.length;0==f[--o];)f.pop();return n.d=f,n.e=L(f,t),h?P(n,u,c):n},q.precision=q.sd=function(n){var e,i=this;if(void 0!==n&&n!==!!n&&1!==n&&0!==n)throw Error(d+n);return i.d?(e=k(i.d),n&&i.e+1>e&&(e=i.e+1)):e=NaN,e},q.round=function(){var n=this,e=n.constructor;return P(new e(n),n.e+1,e.rounding)},q.sine=q.sin=function(){var n,e,i=this,r=i.constructor;return i.isFinite()?i.isZero()?new r(i):(n=r.precision,e=r.rounding,r.precision=n+Math.max(i.e,i.sd())+x,r.rounding=1,i=function(n,e){var i,t=e.d.length;if(t<3)return W(n,2,e,e);i=(i=1.4*Math.sqrt(t))>16?16:0|i,e=e.times(Math.pow(5,-i)),e=W(n,2,e,e);for(var r,s=new n(5),o=new n(16),u=new n(20);i--;)r=e.times(e),e=e.times(s.plus(r.times(o.times(r).minus(u))));return e}(r,J(r,i)),r.precision=n,r.rounding=e,P(t>2?i.neg():i,n,e,!0)):new r(NaN)},q.squareRoot=q.sqrt=function(){var n,e,i,t,r,s,o=this,u=o.d,c=o.e,f=o.s,a=o.constructor;if(1!==f||!u||!u[0])return new a(!f||f<0&&(!u||u[0])?NaN:u?o:1/0);for(h=!1,0==(f=Math.sqrt(+o))||f==1/0?(((e=O(u)).length+c)%2==0&&(e+="0"),f=Math.sqrt(e),c=g((c+1)/2)-(c<0||c%2),t=new a(e=f==1/0?"1e"+c:(e=f.toExponential()).slice(0,e.indexOf("e")+1)+c)):t=new a(f.toString()),i=(c=a.precision)+3;;)if(t=(s=t).plus(Z(o,s,i+2,1)).times(.5),O(s.d).slice(0,i)===(e=O(t.d)).slice(0,i)){if("9999"!=(e=e.slice(i-3,i+1))&&(r||"4999"!=e)){+e&&(+e.slice(1)||"5"!=e.charAt(0))||(P(t,c+1,1),n=!t.times(t).eq(o));break}if(!r&&(P(s,c+1,0),s.times(s).eq(o))){t=s;break}i+=4,r=1}return h=!0,P(t,c,a.rounding,n)},q.tangent=q.tan=function(){var n,e,i=this,r=i.constructor;return i.isFinite()?i.isZero()?new r(i):(n=r.precision,e=r.rounding,r.precision=n+10,r.rounding=1,(i=i.sin()).s=1,i=Z(i,new r(1).minus(i.times(i)).sqrt(),n+10,0),r.precision=n,r.rounding=e,P(2==t||4==t?i.neg():i,n,e,!0)):new r(NaN)},q.times=q.mul=function(n){var e,i,t,r,s,o,u,c,f,a=this,d=a.constructor,l=a.d,p=(n=new d(n)).d;if(n.s*=a.s,!(l&&l[0]&&p&&p[0]))return new d(!n.s||l&&!l[0]&&!p||p&&!p[0]&&!l?NaN:l&&p?0*n.s:n.s/0);for(i=g(a.e/x)+g(n.e/x),(c=l.length)<(f=p.length)&&(s=l,l=p,p=s,o=c,c=f,f=o),s=[],t=o=c+f;t--;)s.push(0);for(t=f;--t>=0;){for(e=0,r=c+t;r>t;)u=s[r]+p[t]*l[r-t-1]+e,s[r--]=u%E|0,e=u/E|0;s[r]=(s[r]+e)%E|0}for(;!s[--o];)s.pop();return e?++i:s.shift(),n.d=s,n.e=L(s,i),h?P(n,d.precision,d.rounding):n},q.toBinary=function(n,e){return z(this,2,n,e)},q.toDecimalPlaces=q.toDP=function(n,e){var i=this,t=i.constructor;return i=new t(i),void 0===n?i:(F(n,0,s),void 0===e?e=t.rounding:F(e,0,8),P(i,n+i.e+1,e))},q.toExponential=function(n,e){var i,t=this,r=t.constructor;return void 0===n?i=R(t,!0):(F(n,0,s),void 0===e?e=r.rounding:F(e,0,8),i=R(t=P(new r(t),n+1,e),!0,n+1)),t.isNeg()&&!t.isZero()?"-"+i:i},q.toFixed=function(n,e){var i,t,r=this,o=r.constructor;return void 0===n?i=R(r):(F(n,0,s),void 0===e?e=o.rounding:F(e,0,8),i=R(t=P(new o(r),n+r.e+1,e),!1,n+t.e+1)),r.isNeg()&&!r.isZero()?"-"+i:i},q.toFraction=function(n){var e,i,t,r,s,o,u,c,f,a,l,p,g=this,m=g.d,v=g.constructor;if(!m)return new v(g);if(f=i=new v(1),t=c=new v(0),o=(s=(e=new v(t)).e=k(m)-g.e-1)%x,e.d[0]=w(10,o<0?x+o:o),null==n)n=s>0?e:f;else{if(!(u=new v(n)).isInt()||u.lt(f))throw Error(d+u);n=u.gt(e)?s>0?e:f:u}for(h=!1,u=new v(O(m)),a=v.precision,v.precision=s=m.length*x*2;l=Z(u,e,0,1,1),1!=(r=i.plus(l.times(t))).cmp(n);)i=t,t=r,r=f,f=c.plus(l.times(r)),c=r,r=e,e=u.minus(l.times(r)),u=r;return r=Z(n.minus(i),t,0,1,1),c=c.plus(r.times(f)),i=i.plus(r.times(t)),c.s=f.s=g.s,p=Z(f,t,s,1).minus(g).abs().cmp(Z(c,i,s,1).minus(g).abs())<1?[f,t]:[c,i],v.precision=a,h=!0,p},q.toHexadecimal=q.toHex=function(n,e){return z(this,16,n,e)},q.toNearest=function(n,e){var i=this,t=i.constructor;if(i=new t(i),null==n){if(!i.d)return i;n=new t(1),e=t.rounding}else{if(n=new t(n),void 0===e?e=t.rounding:F(e,0,8),!i.d)return n.s?i:n;if(!n.d)return n.s&&(n.s=i.s),n}return n.d[0]?(h=!1,i=Z(i,n,0,e,1).times(n),h=!0,P(i)):(n.s=i.s,i=n),i},q.toNumber=function(){return+this},q.toOctal=function(n,e){return z(this,8,n,e)},q.toPower=q.pow=function(n){var e,i,t,r,s,o,u=this,c=u.constructor,f=+(n=new c(n));if(!(u.d&&n.d&&u.d[0]&&n.d[0]))return new c(w(+u,f));if((u=new c(u)).eq(1))return u;if(t=c.precision,s=c.rounding,n.eq(1))return P(u,t,s);if((e=g(n.e/x))>=n.d.length-1&&(i=f<0?-f:f)<=9007199254740991)return r=T(c,u,i,t),n.s<0?new c(1).div(r):P(r,t,s);if((o=u.s)<0){if(ec.maxE+1||e0?o/0:0):(h=!1,c.rounding=u.s=1,i=Math.min(12,(e+"").length),(r=H(n.times(B(u,t+i)),t)).d&&A((r=P(r,t+5,1)).d,t,s)&&(e=t+10,+O((r=P(H(n.times(B(u,e+i)),e),e+5,1)).d).slice(t+1,t+15)+1==1e14&&(r=P(r,t+1,0))),r.s=o,h=!0,c.rounding=s,P(r,t,s))},q.toPrecision=function(n,e){var i,t=this,r=t.constructor;return void 0===n?i=R(t,t.e<=r.toExpNeg||t.e>=r.toExpPos):(F(n,1,s),void 0===e?e=r.rounding:F(e,0,8),i=R(t=P(new r(t),n,e),n<=t.e||t.e<=r.toExpNeg,n)),t.isNeg()&&!t.isZero()?"-"+i:i},q.toSignificantDigits=q.toSD=function(n,e){var i=this.constructor;return void 0===n?(n=i.precision,e=i.rounding):(F(n,1,s),void 0===e?e=i.rounding:F(e,0,8)),P(new i(this),n,e)},q.toString=function(){var n=this,e=n.constructor,i=R(n,n.e<=e.toExpNeg||n.e>=e.toExpPos);return n.isNeg()&&!n.isZero()?"-"+i:i},q.truncated=q.trunc=function(){return P(new this.constructor(this),this.e+1,1)},q.valueOf=q.toJSON=function(){var n=this,e=n.constructor,i=R(n,n.e<=e.toExpNeg||n.e>=e.toExpPos);return n.isNeg()?"-"+i:i};var Z=function(){function n(n,e,i){var t,r=0,s=n.length;for(n=n.slice();s--;)t=n[s]*e+r,n[s]=t%i|0,r=t/i|0;return r&&n.unshift(r),n}function e(n,e,i,t){var r,s;if(i!=t)s=i>t?1:-1;else for(r=s=0;re[r]?1:-1;break}return s}function t(n,e,i,t){for(var r=0;i--;)n[i]-=r,r=n[i]1;)n.shift()}return function(r,s,o,u,c,f){var h,a,d,l,p,w,m,v,N,b,M,y,q,O,F,A,D,Z,R,L,U=r.constructor,_=r.s==s.s?1:-1,k=r.d,S=s.d;if(!(k&&k[0]&&S&&S[0]))return new U(r.s&&s.s&&(k?!S||k[0]!=S[0]:S)?k&&0==k[0]||!S?0*_:_/0:NaN);for(f?(p=1,a=r.e-s.e):(f=E,p=x,a=g(r.e/p)-g(s.e/p)),R=S.length,D=k.length,b=(N=new U(_)).d=[],d=0;S[d]==(k[d]||0);d++);if(S[d]>(k[d]||0)&&a--,null==o?(O=o=U.precision,u=U.rounding):O=c?o+(r.e-s.e)+1:o,O<0)b.push(1),w=!0;else{if(O=O/p+2|0,d=0,1==R){for(l=0,S=S[0],O++;(d1&&(S=n(S,l,f),k=n(k,l,f),R=S.length,D=k.length),A=R,y=(M=k.slice(0,R)).length;y=f/2&&++Z;do{l=0,(h=e(S,M,R,y))<0?(q=M[0],R!=y&&(q=q*f+(M[1]||0)),(l=q/Z|0)>1?(l>=f&&(l=f-1),1==(h=e(m=n(S,l,f),M,v=m.length,y=M.length))&&(l--,t(m,R=10;l/=10)d++;N.e=d+a*p-1,P(N,c?o+N.e+1:o,u,w)}return N}}();function P(n,e,i,t){var r,s,o,u,c,f,a,d,l,p=n.constructor;n:if(null!=e){if(!(d=n.d))return n;for(r=1,u=d[0];u>=10;u/=10)r++;if((s=e-r)<0)s+=x,o=e,c=(a=d[l=0])/w(10,r-o-1)%10|0;else if((l=Math.ceil((s+1)/x))>=(u=d.length)){if(!t)break n;for(;u++<=l;)d.push(0);a=c=0,r=1,o=(s%=x)-x+1}else{for(a=u=d[l],r=1;u>=10;u/=10)r++;c=(o=(s%=x)-x+r)<0?0:a/w(10,r-o-1)%10|0}if(t=t||e<0||void 0!==d[l+1]||(o<0?a:a%w(10,r-o-1)),f=i<4?(c||t)&&(0==i||i==(n.s<0?3:2)):c>5||5==c&&(4==i||t||6==i&&(s>0?o>0?a/w(10,r-o):0:d[l-1])%10&1||i==(n.s<0?8:7)),e<1||!d[0])return d.length=0,f?(e-=n.e+1,d[0]=w(10,(x-e%x)%x),n.e=-e||0):d[0]=n.e=0,n;if(0==s?(d.length=l,u=1,l--):(d.length=l+1,u=w(10,x-s),d[l]=o>0?(a/w(10,r-o)%w(10,o)|0)*u:0),f)for(;;){if(0==l){for(s=1,o=d[0];o>=10;o/=10)s++;for(o=d[0]+=u,u=1;o>=10;o/=10)u++;s!=u&&(n.e++,d[0]==E&&(d[0]=1));break}if(d[l]+=u,d[l]!=E)break;d[l--]=0,u=1}for(s=d.length;0===d[--s];)d.pop()}return h&&(n.e>p.maxE?(n.d=null,n.e=NaN):n.e0?s=s.charAt(0)+"."+s.slice(1)+S(t):o>1&&(s=s.charAt(0)+"."+s.slice(1)),s=s+(n.e<0?"e":"e+")+n.e):r<0?(s="0."+S(-r-1)+s,i&&(t=i-o)>0&&(s+=S(t))):r>=o?(s+=S(r+1-o),i&&(t=i-r-1)>0&&(s=s+"."+S(t))):((t=r+1)0&&(r+1===o&&(s+="."),s+=S(t))),s}function L(n,e){var i=n[0];for(e*=x;i>=10;i/=10)e++;return e}function U(n,e,i){if(e>M)throw h=!0,i&&(n.precision=i),Error(l);return P(new n(u),e,1,!0)}function _(n,e,i){if(e>y)throw Error(l);return P(new n(c),e,i,!0)}function k(n){var e=n.length-1,i=e*x+1;if(e=n[e]){for(;e%10==0;e/=10)i--;for(e=n[0];e>=10;e/=10)i++}return i}function S(n){for(var e="";n--;)e+="0";return e}function T(n,e,i,t){var r,s=new n(1),o=Math.ceil(t/x+4);for(h=!1;;){if(i%2&&G((s=s.times(e)).d,o)&&(r=!0),0===(i=g(i/2))){i=s.d.length-1,r&&0===s.d[i]&&++s.d[i];break}G((e=e.times(e)).d,o)}return h=!0,s}function I(n){return 1&n.d[n.d.length-1]}function C(n,e,i){for(var t,r=new n(e[0]),s=0;++s17)return new l(n.d?n.d[0]?n.s<0?0:1/0:1:n.s?n.s<0?0:n:NaN);for(null==e?(h=!1,c=g):c=e,u=new l(.03125);n.e>-2;)n=n.times(u),d+=5;for(c+=t=Math.log(w(2,d))/Math.LN10*2+5|0,i=s=o=new l(1),l.precision=c;;){if(s=P(s.times(n),c,1),i=i.times(++a),O((u=o.plus(Z(s,i,c,1))).d).slice(0,c)===O(o.d).slice(0,c)){for(r=d;r--;)o=P(o.times(o),c,1);if(null!=e)return l.precision=g,o;if(!(f<3&&A(o.d,c-t,p,f)))return P(o,l.precision=g,p,h=!0);l.precision=c+=10,i=s=u=new l(1),a=0,f++}o=u}}function B(n,e){var i,t,r,s,o,u,c,f,a,d,l,p=1,g=n,w=g.d,m=g.constructor,v=m.rounding,N=m.precision;if(g.s<0||!w||!w[0]||!g.e&&1==w[0]&&1==w.length)return new m(w&&!w[0]?-1/0:1!=g.s?NaN:w?0:g);if(null==e?(h=!1,a=N):a=e,m.precision=a+=10,t=(i=O(w)).charAt(0),!(Math.abs(s=g.e)<15e14))return f=U(m,a+2,N).times(s+""),g=B(new m(t+"."+i.slice(1)),a-10).plus(f),m.precision=N,null==e?P(g,N,v,h=!0):g;for(;t<7&&1!=t||1==t&&i.charAt(1)>3;)t=(i=O((g=g.times(n)).d)).charAt(0),p++;for(s=g.e,t>1?(g=new m("0."+i),s++):g=new m(t+"."+i.slice(1)),d=g,c=o=g=Z(g.minus(1),g.plus(1),a,1),l=P(g.times(g),a,1),r=3;;){if(o=P(o.times(l),a,1),O((f=c.plus(Z(o,new m(r),a,1))).d).slice(0,a)===O(c.d).slice(0,a)){if(c=c.times(2),0!==s&&(c=c.plus(U(m,a+2,N).times(s+""))),c=Z(c,new m(p),a,1),null!=e)return m.precision=N,c;if(!A(c.d,a-10,v,u))return P(c,m.precision=N,v,h=!0);m.precision=a+=10,f=o=g=Z(d.minus(1),d.plus(1),a,1),l=P(g.times(g),a,1),r=u=1}c=f,r+=2}}function V(n){return String(n.s*n.s/0)}function j(n,e){var i,t,r;for((i=e.indexOf("."))>-1&&(e=e.replace(".","")),(t=e.search(/e/i))>0?(i<0&&(i=t),i+=+e.slice(t+1),e=e.substring(0,t)):i<0&&(i=e.length),t=0;48===e.charCodeAt(t);t++);for(r=e.length;48===e.charCodeAt(r-1);--r);if(e=e.slice(t,r)){if(r-=t,n.e=i=i-t-1,n.d=[],t=(i+1)%x,i<0&&(t+=x),tn.constructor.maxE?(n.d=null,n.e=NaN):n.e0?(f=+i.slice(o+1),i=i.substring(2,o)):i=i.slice(2),u=(o=i.indexOf("."))>=0,r=n.constructor,u&&(o=(c=(i=i.replace(".","")).length)-o,s=T(r,new r(t),o,2*o)),o=l=(a=D(i,t,E)).length-1;0===a[o];--o)a.pop();return o<0?new r(0*n.s):(n.e=L(a,l),n.d=a,h=!1,u&&(n=Z(n,s,4*c)),f&&(n=n.times(Math.abs(f)<54?Math.pow(2,f):e.pow(2,f))),h=!0,n)}function W(n,e,i,t,r){var s,o,u,c,f=n.precision,a=Math.ceil(f/x);for(h=!1,c=i.times(i),u=new n(t);;){if(o=Z(u.times(c),new n(e++*e++),f,1),u=r?t.plus(o):t.minus(o),t=Z(o.times(c),new n(e++*e++),f,1),void 0!==(o=u.plus(t)).d[a]){for(s=a;o.d[s]===u.d[s]&&s--;);if(-1==s)break}s=u,u=t,t=o,o=s,0}return h=!0,o.d.length=a+1,o}function J(n,e){var i,r=e.s<0,s=_(n,n.precision,1),o=s.times(.5);if((e=e.abs()).lte(o))return t=r?4:1,e;if((i=e.divToInt(s)).isZero())t=r?3:2;else{if((e=e.minus(i.times(s))).lte(o))return t=I(i)?r?2:3:r?4:1,e;t=I(i)?r?1:4:r?3:2}return e.minus(s).abs()}function z(n,e,t,r){var u,c,f,h,a,d,l,p,g,w=n.constructor,m=void 0!==t;if(m?(F(t,1,s),void 0===r?r=w.rounding:F(r,0,8)):(t=w.precision,r=w.rounding),n.isFinite()){for(m?(u=2,16==e?t=4*t-3:8==e&&(t=3*t-2)):u=e,(f=(l=R(n)).indexOf("."))>=0&&(l=l.replace(".",""),(g=new w(1)).e=l.length-f,g.d=D(R(g),10,u),g.e=g.d.length),c=a=(p=D(l,10,u)).length;0==p[--a];)p.pop();if(p[0]){if(f<0?c--:((n=new w(n)).d=p,n.e=c,p=(n=Z(n,g,t,r,0,u)).d,c=n.e,d=i),f=p[t],h=u/2,d=d||void 0!==p[t+1],d=r<4?(void 0!==f||d)&&(0===r||r===(n.s<0?3:2)):f>h||f===h&&(4===r||d||6===r&&1&p[t-1]||r===(n.s<0?8:7)),p.length=t,d)for(;++p[--t]>u-1;)p[t]=0,t||(++c,p.unshift(1));for(a=p.length;!p[a-1];--a);for(f=0,l="";f1)if(16==e||8==e){for(f=16==e?4:3,--a;a%f;a++)l+="0";for(a=(p=D(l,u,e)).length;!p[a-1];--a);for(f=1,l="1.";fa)for(c-=a;c--;)l+="0";else ce)return n.length=e,!0}function K(n){return new this(n).abs()}function Q(n){return new this(n).acos()}function X(n){return new this(n).acosh()}function Y(n,e){return new this(n).plus(e)}function nn(n){return new this(n).asin()}function en(n){return new this(n).asinh()}function tn(n){return new this(n).atan()}function rn(n){return new this(n).atanh()}function sn(n,e){n=new this(n),e=new this(e);var i,t=this.precision,r=this.rounding,s=t+4;return n.s&&e.s?n.d||e.d?!e.d||n.isZero()?(i=e.s<0?_(this,t,r):new this(0)).s=n.s:!n.d||e.isZero()?(i=_(this,s,1).times(.5)).s=n.s:e.s<0?(this.precision=s,this.rounding=1,i=this.atan(Z(n,e,s,1)),e=_(this,s,1),this.precision=t,this.rounding=r,i=n.s<0?i.minus(e):i.plus(e)):i=this.atan(Z(n,e,s,1)):(i=_(this,s,1).times(e.s>0?.25:.75)).s=n.s:i=new this(NaN),i}function on(n){return new this(n).cbrt()}function un(n){return P(n=new this(n),n.e+1,2)}function cn(n){if(!n||"object"!=typeof n)throw Error(a+"Object expected");var e,i,t,o=!0===n.defaults,u=["precision",1,s,"rounding",0,8,"toExpNeg",-r,0,"toExpPos",0,r,"maxE",0,r,"minE",-r,0,"modulo",0,9];for(e=0;e=u[e+1]&&t<=u[e+2]))throw Error(d+i+": "+t);this[i]=t}if(i="crypto",o&&(this[i]=f[i]),void 0!==(t=n[i])){if(!0!==t&&!1!==t&&0!==t&&1!==t)throw Error(d+i+": "+t);if(t){if("undefined"==typeof crypto||!crypto||!crypto.getRandomValues&&!crypto.randomBytes)throw Error(p);this[i]=!0}else this[i]=!1}return this}function fn(n){return new this(n).cos()}function hn(n){return new this(n).cosh()}function an(n,e){return new this(n).div(e)}function dn(n){return new this(n).exp()}function ln(n){return P(n=new this(n),n.e+1,3)}function pn(){var n,e,i=new this(0);for(h=!1,n=0;n=429e7?e[o]=crypto.getRandomValues(new Uint32Array(1))[0]:c[o++]=r%1e7;else{if(!crypto.randomBytes)throw Error(p);for(e=crypto.randomBytes(t*=4);o=214e7?crypto.randomBytes(4).copy(e,o):(c.push(r%1e7),o+=4);o=t/4}else for(;o=10;r/=10)t++;ts.maxE?(r.e=NaN,r.d=null):n.e=10;i/=10)e++;return void(h?e>s.maxE?(r.e=NaN,r.d=null):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 Bh7$k) literal 0 HcmV?d00001 diff --git a/pictures/righttriangle.png b/pictures/righttriangle.png new file mode 100644 index 0000000000000000000000000000000000000000..af759eba7e7cd7c8c0e412c94826744622b0b31c GIT binary patch literal 8234 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 literal 0 HcmV?d00001 diff --git a/pictures/square.png b/pictures/square.png new file mode 100644 index 0000000000000000000000000000000000000000..29f799806f83c716d33f73c3ee2cc32b51068e2c GIT binary patch literal 5350 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 Is>j3s0bB>GI8_lNQ@Q|Q;8r`?~e^s8`{cZ$# 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

    lED zu@l$1u8mxuAC?L&nc`M}-<^{X@xJhmdM~$qDuIcCIo^~yG)8>g3A|$-FT7w@BbGitr6XmF5xktW(U~+hLRhjWNHUiN&Io28 ziZmHaVw6`IInHyXW@RxAY__=koOZg{_^8d3DF3Q@;H@)b^!iS;61$6}7yZYT1IsC@ z6atTNqoaM0J0y~D~w4koc`h#<<2AeF^>1ST5bKtR-qy(M&9~48;-SEp$ShBA%{QZN^ zZ6ACgG(x_4WALI&puem4k}CbPSXCV|{p^|HbFDFV2M12Ah5o$ zK7riY8?Qjr2EH7oHUDe<8EjZ+Da~IsxW2H-}oHCpw;EuvR z@*Ek`@GjKFQ|{DjaX$0)7%VexD=;jNbzZx3pS>tWa-@S}s~jGmwK5#N%o-opQTjH; zqoiktG8)ItW9oJm78d@(#m_(A2q};KJ+@cuP4GFROh3}_WTUOyzQyK#Aw{(RW7!uw zMz>XO&ZifQux>xtAg5=@u%waanJ~w)E*I=Ilht>87iuN|Op&>%vNFClFHi8m{d~jM z80opLt6#xV(w}nhGxY5VOCbjt#O8#slliakdu2WQL(>aVj^+7z1FqPQj>g8n&K)`P z@R93TPXX!EzgAaQ|58wp$U>L0C9u0TWTnPMNuIq<-jNCb*nzdfLzzarD-EL^mqYFHpi6ga90@`BGq>7q@jlJ0k36^~?_d>v`W*jW{1KT`^fmU1Yw!msf^tJd?S0I#67Z+BD@F zei5KNHYR=Cy^DnQvP<}iCTLK$OZ_!YcgRFs1bKOh=tEX{Vz;QD_>57wkXyOBx_V=n zC_f)6%_93r%?2JoSC=iFjS4>6S6|`&jYV}fpC3UX?)Hdf;S9yGVD4}>Pf!B0SLWWC zYK;}-eWV-eyji1A_N)%8&W?4}_AoG@n#nmWX0hJ=Az*V;oGa*RcWapSO!4HpoD>^i zupk?eAu6w0vb@BjL7-PoB;>_wk%c0sK(1WJD5l`VmlNpowctbds_FBfy`0nDx@F*oe|q6W@jA`2%Tp9*V!VZqYG!s1^gy<@4OX(f)k?@{lvx%6cAzKX}!m$ESyY_quf zx-BuZ#?>V0c2u@zyDxC-2dx!O&GJ$W?SGOb7jb=Xatdbx@)dC<_6dGrZ&nVar>AfF zrjk%m%X+k_gGr5;v;<`KjVbagSp8QV$A_)Okv6;SsYCinB3X-LYI<7OFHX;siOgeM z<=|CqJGGgmrF^f;DSMjw#l=PUpGy{b`SsbxQ58LkSK{IkWY`L1ogA@S1&8QiHD2nk z%SZE2mKOYa-fyL)1UNXVfAKhAjbIJN*r9EnfWSbnv$M0Pd@@R91x-z2E(8^oxq`d9fSqv^6EGco zD~z}}#{5JuuP02g5D@AL(7^gyRt9|e5>4{D;B!Sq1OaT@=+_Eo?3TIDojo3$=wzcO zLWDynuO)v#j3%K7bFE>!k0%HhtXeRI^249h#0ank4K1x9c1s$VNP$dOS2wh>l6TA@ zK}nC|ldmu9^O)EFBL(v5_BYNM85yE*DH{na`*h(2{3V~b)$^Eyx%OWB|9^m}DFqw_;;o$)o-S>h* zE|e6ol6TBF=P?MzVvv8}P=6i}5a6*gAexXqeU~=;pBDrIIW#n;Q4@TThqoc7_+tU9 zg&)L6gX70ke7g0c*@K7fNNJ5BUpy#3Q&bh$7wa1qoE;Yh9(2694Zl=l|cMw%&fkLWPKv VG3SXjV4COvb!8o;YDKH?{|7bfcDDck literal 0 HcmV?d00001 diff --git a/popper.js b/popper.js new file mode 100644 index 000000000..5a431c7a5 --- /dev/null +++ b/popper.js @@ -0,0 +1,2616 @@ +/**! + * @fileOverview Kickass library to create and place poppers near their reference elements. + * @version 1.16.0 + * @license + * Copyright (c) 2016 Federico Zivolo and contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +var isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && typeof navigator !== 'undefined'; + +var timeoutDuration = function () { + var longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox']; + for (var i = 0; i < longerTimeoutBrowsers.length; i += 1) { + if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) { + return 1; + } + } + return 0; +}(); + +function microtaskDebounce(fn) { + var called = false; + return function () { + if (called) { + return; + } + called = true; + window.Promise.resolve().then(function () { + called = false; + fn(); + }); + }; +} + +function taskDebounce(fn) { + var scheduled = false; + return function () { + if (!scheduled) { + scheduled = true; + setTimeout(function () { + scheduled = false; + fn(); + }, timeoutDuration); + } + }; +} + +var supportsMicroTasks = isBrowser && window.Promise; + +/** +* Create a debounced version of a method, that's asynchronously deferred +* but called in the minimum time possible. +* +* @method +* @memberof Popper.Utils +* @argument {Function} fn +* @returns {Function} +*/ +var debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce; + +/** + * Check if the given variable is a function + * @method + * @memberof Popper.Utils + * @argument {Any} functionToCheck - variable to check + * @returns {Boolean} answer to: is a function? + */ +function isFunction(functionToCheck) { + var getType = {}; + return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]'; +} + +/** + * Get CSS computed property of the given element + * @method + * @memberof Popper.Utils + * @argument {Eement} element + * @argument {String} property + */ +function getStyleComputedProperty(element, property) { + if (element.nodeType !== 1) { + return []; + } + // NOTE: 1 DOM access here + var window = element.ownerDocument.defaultView; + var css = window.getComputedStyle(element, null); + return property ? css[property] : css; +} + +/** + * Returns the parentNode or the host of the element + * @method + * @memberof Popper.Utils + * @argument {Element} element + * @returns {Element} parent + */ +function getParentNode(element) { + if (element.nodeName === 'HTML') { + return element; + } + return element.parentNode || element.host; +} + +/** + * Returns the scrolling parent of the given element + * @method + * @memberof Popper.Utils + * @argument {Element} element + * @returns {Element} scroll parent + */ +function getScrollParent(element) { + // Return body, `getScroll` will take care to get the correct `scrollTop` from it + if (!element) { + return document.body; + } + + switch (element.nodeName) { + case 'HTML': + case 'BODY': + return element.ownerDocument.body; + case '#document': + return element.body; + } + + // Firefox want us to check `-x` and `-y` variations as well + + var _getStyleComputedProp = getStyleComputedProperty(element), + overflow = _getStyleComputedProp.overflow, + overflowX = _getStyleComputedProp.overflowX, + overflowY = _getStyleComputedProp.overflowY; + + if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) { + return element; + } + + return getScrollParent(getParentNode(element)); +} + +/** + * Returns the reference node of the reference object, or the reference object itself. + * @method + * @memberof Popper.Utils + * @param {Element|Object} reference - the reference element (the popper will be relative to this) + * @returns {Element} parent + */ +function getReferenceNode(reference) { + return reference && reference.referenceNode ? reference.referenceNode : reference; +} + +var isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode); +var isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent); + +/** + * Determines if the browser is Internet Explorer + * @method + * @memberof Popper.Utils + * @param {Number} version to check + * @returns {Boolean} isIE + */ +function isIE(version) { + if (version === 11) { + return isIE11; + } + if (version === 10) { + return isIE10; + } + return isIE11 || isIE10; +} + +/** + * Returns the offset parent of the given element + * @method + * @memberof Popper.Utils + * @argument {Element} element + * @returns {Element} offset parent + */ +function getOffsetParent(element) { + if (!element) { + return document.documentElement; + } + + var noOffsetParent = isIE(10) ? document.body : null; + + // NOTE: 1 DOM access here + var offsetParent = element.offsetParent || null; + // Skip hidden elements which don't have an offsetParent + while (offsetParent === noOffsetParent && element.nextElementSibling) { + offsetParent = (element = element.nextElementSibling).offsetParent; + } + + var nodeName = offsetParent && offsetParent.nodeName; + + if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') { + return element ? element.ownerDocument.documentElement : document.documentElement; + } + + // .offsetParent will return the closest TH, TD or TABLE in case + // no offsetParent is present, I hate this job... + if (['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') { + return getOffsetParent(offsetParent); + } + + return offsetParent; +} + +function isOffsetContainer(element) { + var nodeName = element.nodeName; + + if (nodeName === 'BODY') { + return false; + } + return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element; +} + +/** + * Finds the root node (document, shadowDOM root) of the given element + * @method + * @memberof Popper.Utils + * @argument {Element} node + * @returns {Element} root node + */ +function getRoot(node) { + if (node.parentNode !== null) { + return getRoot(node.parentNode); + } + + return node; +} + +/** + * Finds the offset parent common to the two provided nodes + * @method + * @memberof Popper.Utils + * @argument {Element} element1 + * @argument {Element} element2 + * @returns {Element} common offset parent + */ +function findCommonOffsetParent(element1, element2) { + // This check is needed to avoid errors in case one of the elements isn't defined for any reason + if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) { + return document.documentElement; + } + + // Here we make sure to give as "start" the element that comes first in the DOM + var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING; + var start = order ? element1 : element2; + var end = order ? element2 : element1; + + // Get common ancestor container + var range = document.createRange(); + range.setStart(start, 0); + range.setEnd(end, 0); + var commonAncestorContainer = range.commonAncestorContainer; + + // Both nodes are inside #document + + if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) { + if (isOffsetContainer(commonAncestorContainer)) { + return commonAncestorContainer; + } + + return getOffsetParent(commonAncestorContainer); + } + + // one of the nodes is inside shadowDOM, find which one + var element1root = getRoot(element1); + if (element1root.host) { + return findCommonOffsetParent(element1root.host, element2); + } else { + return findCommonOffsetParent(element1, getRoot(element2).host); + } +} + +/** + * Gets the scroll value of the given element in the given side (top and left) + * @method + * @memberof Popper.Utils + * @argument {Element} element + * @argument {String} side `top` or `left` + * @returns {number} amount of scrolled pixels + */ +function getScroll(element) { + var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top'; + + var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft'; + var nodeName = element.nodeName; + + if (nodeName === 'BODY' || nodeName === 'HTML') { + var html = element.ownerDocument.documentElement; + var scrollingElement = element.ownerDocument.scrollingElement || html; + return scrollingElement[upperSide]; + } + + return element[upperSide]; +} + +/* + * Sum or subtract the element scroll values (left and top) from a given rect object + * @method + * @memberof Popper.Utils + * @param {Object} rect - Rect object you want to change + * @param {HTMLElement} element - The element from the function reads the scroll values + * @param {Boolean} subtract - set to true if you want to subtract the scroll values + * @return {Object} rect - The modifier rect object + */ +function includeScroll(rect, element) { + var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; + + var scrollTop = getScroll(element, 'top'); + var scrollLeft = getScroll(element, 'left'); + var modifier = subtract ? -1 : 1; + rect.top += scrollTop * modifier; + rect.bottom += scrollTop * modifier; + rect.left += scrollLeft * modifier; + rect.right += scrollLeft * modifier; + return rect; +} + +/* + * Helper to detect borders of a given element + * @method + * @memberof Popper.Utils + * @param {CSSStyleDeclaration} styles + * Result of `getStyleComputedProperty` on the given element + * @param {String} axis - `x` or `y` + * @return {number} borders - The borders size of the given axis + */ + +function getBordersSize(styles, axis) { + var sideA = axis === 'x' ? 'Left' : 'Top'; + var sideB = sideA === 'Left' ? 'Right' : 'Bottom'; + + return parseFloat(styles['border' + sideA + 'Width'], 10) + parseFloat(styles['border' + sideB + 'Width'], 10); +} + +function getSize(axis, body, html, computedStyle) { + return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? parseInt(html['offset' + axis]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')]) : 0); +} + +function getWindowSizes(document) { + var body = document.body; + var html = document.documentElement; + var computedStyle = isIE(10) && getComputedStyle(html); + + return { + height: getSize('Height', body, html, computedStyle), + width: getSize('Width', body, html, computedStyle) + }; +} + +var classCallCheck = function (instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } +}; + +var createClass = function () { + function defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + + return function (Constructor, protoProps, staticProps) { + if (protoProps) defineProperties(Constructor.prototype, protoProps); + if (staticProps) defineProperties(Constructor, staticProps); + return Constructor; + }; +}(); + + + + + +var defineProperty = function (obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value: value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + + return obj; +}; + +var _extends = Object.assign || function (target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i]; + + for (var key in source) { + if (Object.prototype.hasOwnProperty.call(source, key)) { + target[key] = source[key]; + } + } + } + + return target; +}; + +/** + * Given element offsets, generate an output similar to getBoundingClientRect + * @method + * @memberof Popper.Utils + * @argument {Object} offsets + * @returns {Object} ClientRect like output + */ +function getClientRect(offsets) { + return _extends({}, offsets, { + right: offsets.left + offsets.width, + bottom: offsets.top + offsets.height + }); +} + +/** + * Get bounding client rect of given element + * @method + * @memberof Popper.Utils + * @param {HTMLElement} element + * @return {Object} client rect + */ +function getBoundingClientRect(element) { + var rect = {}; + + // IE10 10 FIX: Please, don't ask, the element isn't + // considered in DOM in some circumstances... + // This isn't reproducible in IE10 compatibility mode of IE11 + try { + if (isIE(10)) { + rect = element.getBoundingClientRect(); + var scrollTop = getScroll(element, 'top'); + var scrollLeft = getScroll(element, 'left'); + rect.top += scrollTop; + rect.left += scrollLeft; + rect.bottom += scrollTop; + rect.right += scrollLeft; + } else { + rect = element.getBoundingClientRect(); + } + } catch (e) {} + + var result = { + left: rect.left, + top: rect.top, + width: rect.right - rect.left, + height: rect.bottom - rect.top + }; + + // subtract scrollbar size from sizes + var sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {}; + var width = sizes.width || element.clientWidth || result.width; + var height = sizes.height || element.clientHeight || result.height; + + var horizScrollbar = element.offsetWidth - width; + var vertScrollbar = element.offsetHeight - height; + + // if an hypothetical scrollbar is detected, we must be sure it's not a `border` + // we make this check conditional for performance reasons + if (horizScrollbar || vertScrollbar) { + var styles = getStyleComputedProperty(element); + horizScrollbar -= getBordersSize(styles, 'x'); + vertScrollbar -= getBordersSize(styles, 'y'); + + result.width -= horizScrollbar; + result.height -= vertScrollbar; + } + + return getClientRect(result); +} + +function getOffsetRectRelativeToArbitraryNode(children, parent) { + var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; + + var isIE10 = isIE(10); + var isHTML = parent.nodeName === 'HTML'; + var childrenRect = getBoundingClientRect(children); + var parentRect = getBoundingClientRect(parent); + var scrollParent = getScrollParent(children); + + var styles = getStyleComputedProperty(parent); + var borderTopWidth = parseFloat(styles.borderTopWidth, 10); + var borderLeftWidth = parseFloat(styles.borderLeftWidth, 10); + + // In cases where the parent is fixed, we must ignore negative scroll in offset calc + if (fixedPosition && isHTML) { + parentRect.top = Math.max(parentRect.top, 0); + parentRect.left = Math.max(parentRect.left, 0); + } + var offsets = getClientRect({ + top: childrenRect.top - parentRect.top - borderTopWidth, + left: childrenRect.left - parentRect.left - borderLeftWidth, + width: childrenRect.width, + height: childrenRect.height + }); + offsets.marginTop = 0; + offsets.marginLeft = 0; + + // Subtract margins of documentElement in case it's being used as parent + // we do this only on HTML because it's the only element that behaves + // differently when margins are applied to it. The margins are included in + // the box of the documentElement, in the other cases not. + if (!isIE10 && isHTML) { + var marginTop = parseFloat(styles.marginTop, 10); + var marginLeft = parseFloat(styles.marginLeft, 10); + + offsets.top -= borderTopWidth - marginTop; + offsets.bottom -= borderTopWidth - marginTop; + offsets.left -= borderLeftWidth - marginLeft; + offsets.right -= borderLeftWidth - marginLeft; + + // Attach marginTop and marginLeft because in some circumstances we may need them + offsets.marginTop = marginTop; + offsets.marginLeft = marginLeft; + } + + if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') { + offsets = includeScroll(offsets, parent); + } + + return offsets; +} + +function getViewportOffsetRectRelativeToArtbitraryNode(element) { + var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; + + var html = element.ownerDocument.documentElement; + var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html); + var width = Math.max(html.clientWidth, window.innerWidth || 0); + var height = Math.max(html.clientHeight, window.innerHeight || 0); + + var scrollTop = !excludeScroll ? getScroll(html) : 0; + var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0; + + var offset = { + top: scrollTop - relativeOffset.top + relativeOffset.marginTop, + left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft, + width: width, + height: height + }; + + return getClientRect(offset); +} + +/** + * Check if the given element is fixed or is inside a fixed parent + * @method + * @memberof Popper.Utils + * @argument {Element} element + * @argument {Element} customContainer + * @returns {Boolean} answer to "isFixed?" + */ +function isFixed(element) { + var nodeName = element.nodeName; + if (nodeName === 'BODY' || nodeName === 'HTML') { + return false; + } + if (getStyleComputedProperty(element, 'position') === 'fixed') { + return true; + } + var parentNode = getParentNode(element); + if (!parentNode) { + return false; + } + return isFixed(parentNode); +} + +/** + * Finds the first parent of an element that has a transformed property defined + * @method + * @memberof Popper.Utils + * @argument {Element} element + * @returns {Element} first transformed parent or documentElement + */ + +function getFixedPositionOffsetParent(element) { + // This check is needed to avoid errors in case one of the elements isn't defined for any reason + if (!element || !element.parentElement || isIE()) { + return document.documentElement; + } + var el = element.parentElement; + while (el && getStyleComputedProperty(el, 'transform') === 'none') { + el = el.parentElement; + } + return el || document.documentElement; +} + +/** + * Computed the boundaries limits and return them + * @method + * @memberof Popper.Utils + * @param {HTMLElement} popper + * @param {HTMLElement} reference + * @param {number} padding + * @param {HTMLElement} boundariesElement - Element used to define the boundaries + * @param {Boolean} fixedPosition - Is in fixed position mode + * @returns {Object} Coordinates of the boundaries + */ +function getBoundaries(popper, reference, padding, boundariesElement) { + var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false; + + // NOTE: 1 DOM access here + + var boundaries = { top: 0, left: 0 }; + var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference)); + + // Handle viewport case + if (boundariesElement === 'viewport') { + boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition); + } else { + // Handle other cases based on DOM element used as boundaries + var boundariesNode = void 0; + if (boundariesElement === 'scrollParent') { + boundariesNode = getScrollParent(getParentNode(reference)); + if (boundariesNode.nodeName === 'BODY') { + boundariesNode = popper.ownerDocument.documentElement; + } + } else if (boundariesElement === 'window') { + boundariesNode = popper.ownerDocument.documentElement; + } else { + boundariesNode = boundariesElement; + } + + var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition); + + // In case of HTML, we need a different computation + if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) { + var _getWindowSizes = getWindowSizes(popper.ownerDocument), + height = _getWindowSizes.height, + width = _getWindowSizes.width; + + boundaries.top += offsets.top - offsets.marginTop; + boundaries.bottom = height + offsets.top; + boundaries.left += offsets.left - offsets.marginLeft; + boundaries.right = width + offsets.left; + } else { + // for all the other DOM elements, this one is good + boundaries = offsets; + } + } + + // Add paddings + padding = padding || 0; + var isPaddingNumber = typeof padding === 'number'; + boundaries.left += isPaddingNumber ? padding : padding.left || 0; + boundaries.top += isPaddingNumber ? padding : padding.top || 0; + boundaries.right -= isPaddingNumber ? padding : padding.right || 0; + boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0; + + return boundaries; +} + +function getArea(_ref) { + var width = _ref.width, + height = _ref.height; + + return width * height; +} + +/** + * Utility used to transform the `auto` placement to the placement with more + * available space. + * @method + * @memberof Popper.Utils + * @argument {Object} data - The data object generated by update method + * @argument {Object} options - Modifiers configuration and options + * @returns {Object} The data object, properly modified + */ +function computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) { + var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0; + + if (placement.indexOf('auto') === -1) { + return placement; + } + + var boundaries = getBoundaries(popper, reference, padding, boundariesElement); + + var rects = { + top: { + width: boundaries.width, + height: refRect.top - boundaries.top + }, + right: { + width: boundaries.right - refRect.right, + height: boundaries.height + }, + bottom: { + width: boundaries.width, + height: boundaries.bottom - refRect.bottom + }, + left: { + width: refRect.left - boundaries.left, + height: boundaries.height + } + }; + + var sortedAreas = Object.keys(rects).map(function (key) { + return _extends({ + key: key + }, rects[key], { + area: getArea(rects[key]) + }); + }).sort(function (a, b) { + return b.area - a.area; + }); + + var filteredAreas = sortedAreas.filter(function (_ref2) { + var width = _ref2.width, + height = _ref2.height; + return width >= popper.clientWidth && height >= popper.clientHeight; + }); + + var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key; + + var variation = placement.split('-')[1]; + + return computedPlacement + (variation ? '-' + variation : ''); +} + +/** + * Get offsets to the reference element + * @method + * @memberof Popper.Utils + * @param {Object} state + * @param {Element} popper - the popper element + * @param {Element} reference - the reference element (the popper will be relative to this) + * @param {Element} fixedPosition - is in fixed position mode + * @returns {Object} An object containing the offsets which will be applied to the popper + */ +function getReferenceOffsets(state, popper, reference) { + var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null; + + var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference)); + return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition); +} + +/** + * Get the outer sizes of the given element (offset size + margins) + * @method + * @memberof Popper.Utils + * @argument {Element} element + * @returns {Object} object containing width and height properties + */ +function getOuterSizes(element) { + var window = element.ownerDocument.defaultView; + var styles = window.getComputedStyle(element); + var x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0); + var y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0); + var result = { + width: element.offsetWidth + y, + height: element.offsetHeight + x + }; + return result; +} + +/** + * Get the opposite placement of the given one + * @method + * @memberof Popper.Utils + * @argument {String} placement + * @returns {String} flipped placement + */ +function getOppositePlacement(placement) { + var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' }; + return placement.replace(/left|right|bottom|top/g, function (matched) { + return hash[matched]; + }); +} + +/** + * Get offsets to the popper + * @method + * @memberof Popper.Utils + * @param {Object} position - CSS position the Popper will get applied + * @param {HTMLElement} popper - the popper element + * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this) + * @param {String} placement - one of the valid placement options + * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper + */ +function getPopperOffsets(popper, referenceOffsets, placement) { + placement = placement.split('-')[0]; + + // Get popper node sizes + var popperRect = getOuterSizes(popper); + + // Add position, width and height to our offsets object + var popperOffsets = { + width: popperRect.width, + height: popperRect.height + }; + + // depending by the popper placement we have to compute its offsets slightly differently + var isHoriz = ['right', 'left'].indexOf(placement) !== -1; + var mainSide = isHoriz ? 'top' : 'left'; + var secondarySide = isHoriz ? 'left' : 'top'; + var measurement = isHoriz ? 'height' : 'width'; + var secondaryMeasurement = !isHoriz ? 'height' : 'width'; + + popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2; + if (placement === secondarySide) { + popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement]; + } else { + popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)]; + } + + return popperOffsets; +} + +/** + * Mimics the `find` method of Array + * @method + * @memberof Popper.Utils + * @argument {Array} arr + * @argument prop + * @argument value + * @returns index or -1 + */ +function find(arr, check) { + // use native find if supported + if (Array.prototype.find) { + return arr.find(check); + } + + // use `filter` to obtain the same behavior of `find` + return arr.filter(check)[0]; +} + +/** + * Return the index of the matching object + * @method + * @memberof Popper.Utils + * @argument {Array} arr + * @argument prop + * @argument value + * @returns index or -1 + */ +function findIndex(arr, prop, value) { + // use native findIndex if supported + if (Array.prototype.findIndex) { + return arr.findIndex(function (cur) { + return cur[prop] === value; + }); + } + + // use `find` + `indexOf` if `findIndex` isn't supported + var match = find(arr, function (obj) { + return obj[prop] === value; + }); + return arr.indexOf(match); +} + +/** + * Loop trough the list of modifiers and run them in order, + * each of them will then edit the data object. + * @method + * @memberof Popper.Utils + * @param {dataObject} data + * @param {Array} modifiers + * @param {String} ends - Optional modifier name used as stopper + * @returns {dataObject} + */ +function runModifiers(modifiers, data, ends) { + var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends)); + + modifiersToRun.forEach(function (modifier) { + if (modifier['function']) { + // eslint-disable-line dot-notation + console.warn('`modifier.function` is deprecated, use `modifier.fn`!'); + } + var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation + if (modifier.enabled && isFunction(fn)) { + // Add properties to offsets to make them a complete clientRect object + // we do this before each modifier to make sure the previous one doesn't + // mess with these values + data.offsets.popper = getClientRect(data.offsets.popper); + data.offsets.reference = getClientRect(data.offsets.reference); + + data = fn(data, modifier); + } + }); + + return data; +} + +/** + * Updates the position of the popper, computing the new offsets and applying + * the new style.
    + * Prefer `scheduleUpdate` over `update` because of performance reasons. + * @method + * @memberof Popper + */ +function update() { + // if popper is destroyed, don't perform any further update + if (this.state.isDestroyed) { + return; + } + + var data = { + instance: this, + styles: {}, + arrowStyles: {}, + attributes: {}, + flipped: false, + offsets: {} + }; + + // compute reference element offsets + data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed); + + // compute auto placement, store placement inside the data object, + // modifiers will be able to edit `placement` if needed + // and refer to originalPlacement to know the original value + data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding); + + // store the computed placement inside `originalPlacement` + data.originalPlacement = data.placement; + + data.positionFixed = this.options.positionFixed; + + // compute the popper offsets + data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement); + + data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute'; + + // run the modifiers + data = runModifiers(this.modifiers, data); + + // the first `update` will call `onCreate` callback + // the other ones will call `onUpdate` callback + if (!this.state.isCreated) { + this.state.isCreated = true; + this.options.onCreate(data); + } else { + this.options.onUpdate(data); + } +} + +/** + * Helper used to know if the given modifier is enabled. + * @method + * @memberof Popper.Utils + * @returns {Boolean} + */ +function isModifierEnabled(modifiers, modifierName) { + return modifiers.some(function (_ref) { + var name = _ref.name, + enabled = _ref.enabled; + return enabled && name === modifierName; + }); +} + +/** + * Get the prefixed supported property name + * @method + * @memberof Popper.Utils + * @argument {String} property (camelCase) + * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix) + */ +function getSupportedPropertyName(property) { + var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O']; + var upperProp = property.charAt(0).toUpperCase() + property.slice(1); + + for (var i = 0; i < prefixes.length; i++) { + var prefix = prefixes[i]; + var toCheck = prefix ? '' + prefix + upperProp : property; + if (typeof document.body.style[toCheck] !== 'undefined') { + return toCheck; + } + } + return null; +} + +/** + * Destroys the popper. + * @method + * @memberof Popper + */ +function destroy() { + this.state.isDestroyed = true; + + // touch DOM only if `applyStyle` modifier is enabled + if (isModifierEnabled(this.modifiers, 'applyStyle')) { + this.popper.removeAttribute('x-placement'); + this.popper.style.position = ''; + this.popper.style.top = ''; + this.popper.style.left = ''; + this.popper.style.right = ''; + this.popper.style.bottom = ''; + this.popper.style.willChange = ''; + this.popper.style[getSupportedPropertyName('transform')] = ''; + } + + this.disableEventListeners(); + + // remove the popper if user explicitly asked for the deletion on destroy + // do not use `remove` because IE11 doesn't support it + if (this.options.removeOnDestroy) { + this.popper.parentNode.removeChild(this.popper); + } + return this; +} + +/** + * Get the window associated with the element + * @argument {Element} element + * @returns {Window} + */ +function getWindow(element) { + var ownerDocument = element.ownerDocument; + return ownerDocument ? ownerDocument.defaultView : window; +} + +function attachToScrollParents(scrollParent, event, callback, scrollParents) { + var isBody = scrollParent.nodeName === 'BODY'; + var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent; + target.addEventListener(event, callback, { passive: true }); + + if (!isBody) { + attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents); + } + scrollParents.push(target); +} + +/** + * Setup needed event listeners used to update the popper position + * @method + * @memberof Popper.Utils + * @private + */ +function setupEventListeners(reference, options, state, updateBound) { + // Resize event listener on window + state.updateBound = updateBound; + getWindow(reference).addEventListener('resize', state.updateBound, { passive: true }); + + // Scroll event listener on scroll parents + var scrollElement = getScrollParent(reference); + attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents); + state.scrollElement = scrollElement; + state.eventsEnabled = true; + + return state; +} + +/** + * It will add resize/scroll events and start recalculating + * position of the popper element when they are triggered. + * @method + * @memberof Popper + */ +function enableEventListeners() { + if (!this.state.eventsEnabled) { + this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate); + } +} + +/** + * Remove event listeners used to update the popper position + * @method + * @memberof Popper.Utils + * @private + */ +function removeEventListeners(reference, state) { + // Remove resize event listener on window + getWindow(reference).removeEventListener('resize', state.updateBound); + + // Remove scroll event listener on scroll parents + state.scrollParents.forEach(function (target) { + target.removeEventListener('scroll', state.updateBound); + }); + + // Reset state + state.updateBound = null; + state.scrollParents = []; + state.scrollElement = null; + state.eventsEnabled = false; + return state; +} + +/** + * It will remove resize/scroll events and won't recalculate popper position + * when they are triggered. It also won't trigger `onUpdate` callback anymore, + * unless you call `update` method manually. + * @method + * @memberof Popper + */ +function disableEventListeners() { + if (this.state.eventsEnabled) { + cancelAnimationFrame(this.scheduleUpdate); + this.state = removeEventListeners(this.reference, this.state); + } +} + +/** + * Tells if a given input is a number + * @method + * @memberof Popper.Utils + * @param {*} input to check + * @return {Boolean} + */ +function isNumeric(n) { + return n !== '' && !isNaN(parseFloat(n)) && isFinite(n); +} + +/** + * Set the style to the given popper + * @method + * @memberof Popper.Utils + * @argument {Element} element - Element to apply the style to + * @argument {Object} styles + * Object with a list of properties and values which will be applied to the element + */ +function setStyles(element, styles) { + Object.keys(styles).forEach(function (prop) { + var unit = ''; + // add unit if the value is numeric and is one of the following + if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) { + unit = 'px'; + } + element.style[prop] = styles[prop] + unit; + }); +} + +/** + * Set the attributes to the given popper + * @method + * @memberof Popper.Utils + * @argument {Element} element - Element to apply the attributes to + * @argument {Object} styles + * Object with a list of properties and values which will be applied to the element + */ +function setAttributes(element, attributes) { + Object.keys(attributes).forEach(function (prop) { + var value = attributes[prop]; + if (value !== false) { + element.setAttribute(prop, attributes[prop]); + } else { + element.removeAttribute(prop); + } + }); +} + +/** + * @function + * @memberof Modifiers + * @argument {Object} data - The data object generated by `update` method + * @argument {Object} data.styles - List of style properties - values to apply to popper element + * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element + * @argument {Object} options - Modifiers configuration and options + * @returns {Object} The same data object + */ +function applyStyle(data) { + // any property present in `data.styles` will be applied to the popper, + // in this way we can make the 3rd party modifiers add custom styles to it + // Be aware, modifiers could override the properties defined in the previous + // lines of this modifier! + setStyles(data.instance.popper, data.styles); + + // any property present in `data.attributes` will be applied to the popper, + // they will be set as HTML attributes of the element + setAttributes(data.instance.popper, data.attributes); + + // if arrowElement is defined and arrowStyles has some properties + if (data.arrowElement && Object.keys(data.arrowStyles).length) { + setStyles(data.arrowElement, data.arrowStyles); + } + + return data; +} + +/** + * Set the x-placement attribute before everything else because it could be used + * to add margins to the popper margins needs to be calculated to get the + * correct popper offsets. + * @method + * @memberof Popper.modifiers + * @param {HTMLElement} reference - The reference element used to position the popper + * @param {HTMLElement} popper - The HTML element used as popper + * @param {Object} options - Popper.js options + */ +function applyStyleOnLoad(reference, popper, options, modifierOptions, state) { + // compute reference element offsets + var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed); + + // compute auto placement, store placement inside the data object, + // modifiers will be able to edit `placement` if needed + // and refer to originalPlacement to know the original value + var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding); + + popper.setAttribute('x-placement', placement); + + // Apply `position` to popper before anything else because + // without the position applied we can't guarantee correct computations + setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' }); + + return options; +} + +/** + * @function + * @memberof Popper.Utils + * @argument {Object} data - The data object generated by `update` method + * @argument {Boolean} shouldRound - If the offsets should be rounded at all + * @returns {Object} The popper's position offsets rounded + * + * The tale of pixel-perfect positioning. It's still not 100% perfect, but as + * good as it can be within reason. + * Discussion here: https://github.com/FezVrasta/popper.js/pull/715 + * + * Low DPI screens cause a popper to be blurry if not using full pixels (Safari + * as well on High DPI screens). + * + * Firefox prefers no rounding for positioning and does not have blurriness on + * high DPI screens. + * + * Only horizontal placement and left/right values need to be considered. + */ +function getRoundedOffsets(data, shouldRound) { + var _data$offsets = data.offsets, + popper = _data$offsets.popper, + reference = _data$offsets.reference; + var round = Math.round, + floor = Math.floor; + + var noRound = function noRound(v) { + return v; + }; + + var referenceWidth = round(reference.width); + var popperWidth = round(popper.width); + + var isVertical = ['left', 'right'].indexOf(data.placement) !== -1; + var isVariation = data.placement.indexOf('-') !== -1; + var sameWidthParity = referenceWidth % 2 === popperWidth % 2; + var bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1; + + var horizontalToInteger = !shouldRound ? noRound : isVertical || isVariation || sameWidthParity ? round : floor; + var verticalToInteger = !shouldRound ? noRound : round; + + return { + left: horizontalToInteger(bothOddWidth && !isVariation && shouldRound ? popper.left - 1 : popper.left), + top: verticalToInteger(popper.top), + bottom: verticalToInteger(popper.bottom), + right: horizontalToInteger(popper.right) + }; +} + +var isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent); + +/** + * @function + * @memberof Modifiers + * @argument {Object} data - The data object generated by `update` method + * @argument {Object} options - Modifiers configuration and options + * @returns {Object} The data object, properly modified + */ +function computeStyle(data, options) { + var x = options.x, + y = options.y; + var popper = data.offsets.popper; + + // Remove this legacy support in Popper.js v2 + + var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) { + return modifier.name === 'applyStyle'; + }).gpuAcceleration; + if (legacyGpuAccelerationOption !== undefined) { + console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!'); + } + var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration; + + var offsetParent = getOffsetParent(data.instance.popper); + var offsetParentRect = getBoundingClientRect(offsetParent); + + // Styles + var styles = { + position: popper.position + }; + + var offsets = getRoundedOffsets(data, window.devicePixelRatio < 2 || !isFirefox); + + var sideA = x === 'bottom' ? 'top' : 'bottom'; + var sideB = y === 'right' ? 'left' : 'right'; + + // if gpuAcceleration is set to `true` and transform is supported, + // we use `translate3d` to apply the position to the popper we + // automatically use the supported prefixed version if needed + var prefixedProperty = getSupportedPropertyName('transform'); + + // now, let's make a step back and look at this code closely (wtf?) + // If the content of the popper grows once it's been positioned, it + // may happen that the popper gets misplaced because of the new content + // overflowing its reference element + // To avoid this problem, we provide two options (x and y), which allow + // the consumer to define the offset origin. + // If we position a popper on top of a reference element, we can set + // `x` to `top` to make the popper grow towards its top instead of + // its bottom. + var left = void 0, + top = void 0; + if (sideA === 'bottom') { + // when offsetParent is the positioning is relative to the bottom of the screen (excluding the scrollbar) + // and not the bottom of the html element + if (offsetParent.nodeName === 'HTML') { + top = -offsetParent.clientHeight + offsets.bottom; + } else { + top = -offsetParentRect.height + offsets.bottom; + } + } else { + top = offsets.top; + } + if (sideB === 'right') { + if (offsetParent.nodeName === 'HTML') { + left = -offsetParent.clientWidth + offsets.right; + } else { + left = -offsetParentRect.width + offsets.right; + } + } else { + left = offsets.left; + } + if (gpuAcceleration && prefixedProperty) { + styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)'; + styles[sideA] = 0; + styles[sideB] = 0; + styles.willChange = 'transform'; + } else { + // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties + var invertTop = sideA === 'bottom' ? -1 : 1; + var invertLeft = sideB === 'right' ? -1 : 1; + styles[sideA] = top * invertTop; + styles[sideB] = left * invertLeft; + styles.willChange = sideA + ', ' + sideB; + } + + // Attributes + var attributes = { + 'x-placement': data.placement + }; + + // Update `data` attributes, styles and arrowStyles + data.attributes = _extends({}, attributes, data.attributes); + data.styles = _extends({}, styles, data.styles); + data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles); + + return data; +} + +/** + * Helper used to know if the given modifier depends from another one.
    + * It checks if the needed modifier is listed and enabled. + * @method + * @memberof Popper.Utils + * @param {Array} modifiers - list of modifiers + * @param {String} requestingName - name of requesting modifier + * @param {String} requestedName - name of requested modifier + * @returns {Boolean} + */ +function isModifierRequired(modifiers, requestingName, requestedName) { + var requesting = find(modifiers, function (_ref) { + var name = _ref.name; + return name === requestingName; + }); + + var isRequired = !!requesting && modifiers.some(function (modifier) { + return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order; + }); + + if (!isRequired) { + var _requesting = '`' + requestingName + '`'; + var requested = '`' + requestedName + '`'; + console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!'); + } + return isRequired; +} + +/** + * @function + * @memberof Modifiers + * @argument {Object} data - The data object generated by update method + * @argument {Object} options - Modifiers configuration and options + * @returns {Object} The data object, properly modified + */ +function arrow(data, options) { + var _data$offsets$arrow; + + // arrow depends on keepTogether in order to work + if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) { + return data; + } + + var arrowElement = options.element; + + // if arrowElement is a string, suppose it's a CSS selector + if (typeof arrowElement === 'string') { + arrowElement = data.instance.popper.querySelector(arrowElement); + + // if arrowElement is not found, don't run the modifier + if (!arrowElement) { + return data; + } + } else { + // if the arrowElement isn't a query selector we must check that the + // provided DOM node is child of its popper node + if (!data.instance.popper.contains(arrowElement)) { + console.warn('WARNING: `arrow.element` must be child of its popper element!'); + return data; + } + } + + var placement = data.placement.split('-')[0]; + var _data$offsets = data.offsets, + popper = _data$offsets.popper, + reference = _data$offsets.reference; + + var isVertical = ['left', 'right'].indexOf(placement) !== -1; + + var len = isVertical ? 'height' : 'width'; + var sideCapitalized = isVertical ? 'Top' : 'Left'; + var side = sideCapitalized.toLowerCase(); + var altSide = isVertical ? 'left' : 'top'; + var opSide = isVertical ? 'bottom' : 'right'; + var arrowElementSize = getOuterSizes(arrowElement)[len]; + + // + // extends keepTogether behavior making sure the popper and its + // reference have enough pixels in conjunction + // + + // top/left side + if (reference[opSide] - arrowElementSize < popper[side]) { + data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize); + } + // bottom/right side + if (reference[side] + arrowElementSize > popper[opSide]) { + data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide]; + } + data.offsets.popper = getClientRect(data.offsets.popper); + + // compute center of the popper + var center = reference[side] + reference[len] / 2 - arrowElementSize / 2; + + // Compute the sideValue using the updated popper offsets + // take popper margin in account because we don't have this info available + var css = getStyleComputedProperty(data.instance.popper); + var popperMarginSide = parseFloat(css['margin' + sideCapitalized], 10); + var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width'], 10); + var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide; + + // prevent arrowElement from being placed not contiguously to its popper + sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0); + + data.arrowElement = arrowElement; + data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow); + + return data; +} + +/** + * Get the opposite placement variation of the given one + * @method + * @memberof Popper.Utils + * @argument {String} placement variation + * @returns {String} flipped placement variation + */ +function getOppositeVariation(variation) { + if (variation === 'end') { + return 'start'; + } else if (variation === 'start') { + return 'end'; + } + return variation; +} + +/** + * List of accepted placements to use as values of the `placement` option.
    + * Valid placements are: + * - `auto` + * - `top` + * - `right` + * - `bottom` + * - `left` + * + * Each placement can have a variation from this list: + * - `-start` + * - `-end` + * + * Variations are interpreted easily if you think of them as the left to right + * written languages. Horizontally (`top` and `bottom`), `start` is left and `end` + * is right.
    + * Vertically (`left` and `right`), `start` is top and `end` is bottom. + * + * Some valid examples are: + * - `top-end` (on top of reference, right aligned) + * - `right-start` (on right of reference, top aligned) + * - `bottom` (on bottom, centered) + * - `auto-end` (on the side with more space available, alignment depends by placement) + * + * @static + * @type {Array} + * @enum {String} + * @readonly + * @method placements + * @memberof Popper + */ +var placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start']; + +// Get rid of `auto` `auto-start` and `auto-end` +var validPlacements = placements.slice(3); + +/** + * Given an initial placement, returns all the subsequent placements + * clockwise (or counter-clockwise). + * + * @method + * @memberof Popper.Utils + * @argument {String} placement - A valid placement (it accepts variations) + * @argument {Boolean} counter - Set to true to walk the placements counterclockwise + * @returns {Array} placements including their variations + */ +function clockwise(placement) { + var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; + + var index = validPlacements.indexOf(placement); + var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index)); + return counter ? arr.reverse() : arr; +} + +var BEHAVIORS = { + FLIP: 'flip', + CLOCKWISE: 'clockwise', + COUNTERCLOCKWISE: 'counterclockwise' +}; + +/** + * @function + * @memberof Modifiers + * @argument {Object} data - The data object generated by update method + * @argument {Object} options - Modifiers configuration and options + * @returns {Object} The data object, properly modified + */ +function flip(data, options) { + // if `inner` modifier is enabled, we can't use the `flip` modifier + if (isModifierEnabled(data.instance.modifiers, 'inner')) { + return data; + } + + if (data.flipped && data.placement === data.originalPlacement) { + // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides + return data; + } + + var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed); + + var placement = data.placement.split('-')[0]; + var placementOpposite = getOppositePlacement(placement); + var variation = data.placement.split('-')[1] || ''; + + var flipOrder = []; + + switch (options.behavior) { + case BEHAVIORS.FLIP: + flipOrder = [placement, placementOpposite]; + break; + case BEHAVIORS.CLOCKWISE: + flipOrder = clockwise(placement); + break; + case BEHAVIORS.COUNTERCLOCKWISE: + flipOrder = clockwise(placement, true); + break; + default: + flipOrder = options.behavior; + } + + flipOrder.forEach(function (step, index) { + if (placement !== step || flipOrder.length === index + 1) { + return data; + } + + placement = data.placement.split('-')[0]; + placementOpposite = getOppositePlacement(placement); + + var popperOffsets = data.offsets.popper; + var refOffsets = data.offsets.reference; + + // using floor because the reference offsets may contain decimals we are not going to consider here + var floor = Math.floor; + var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom); + + var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left); + var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right); + var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top); + var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom); + + var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom; + + // flip the variation if required + var isVertical = ['top', 'bottom'].indexOf(placement) !== -1; + + // flips variation if reference element overflows boundaries + var flippedVariationByRef = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom); + + // flips variation if popper content overflows boundaries + var flippedVariationByContent = !!options.flipVariationsByContent && (isVertical && variation === 'start' && overflowsRight || isVertical && variation === 'end' && overflowsLeft || !isVertical && variation === 'start' && overflowsBottom || !isVertical && variation === 'end' && overflowsTop); + + var flippedVariation = flippedVariationByRef || flippedVariationByContent; + + if (overlapsRef || overflowsBoundaries || flippedVariation) { + // this boolean to detect any flip loop + data.flipped = true; + + if (overlapsRef || overflowsBoundaries) { + placement = flipOrder[index + 1]; + } + + if (flippedVariation) { + variation = getOppositeVariation(variation); + } + + data.placement = placement + (variation ? '-' + variation : ''); + + // this object contains `position`, we want to preserve it along with + // any additional property we may add in the future + data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement)); + + data = runModifiers(data.instance.modifiers, data, 'flip'); + } + }); + return data; +} + +/** + * @function + * @memberof Modifiers + * @argument {Object} data - The data object generated by update method + * @argument {Object} options - Modifiers configuration and options + * @returns {Object} The data object, properly modified + */ +function keepTogether(data) { + var _data$offsets = data.offsets, + popper = _data$offsets.popper, + reference = _data$offsets.reference; + + var placement = data.placement.split('-')[0]; + var floor = Math.floor; + var isVertical = ['top', 'bottom'].indexOf(placement) !== -1; + var side = isVertical ? 'right' : 'bottom'; + var opSide = isVertical ? 'left' : 'top'; + var measurement = isVertical ? 'width' : 'height'; + + if (popper[side] < floor(reference[opSide])) { + data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement]; + } + if (popper[opSide] > floor(reference[side])) { + data.offsets.popper[opSide] = floor(reference[side]); + } + + return data; +} + +/** + * Converts a string containing value + unit into a px value number + * @function + * @memberof {modifiers~offset} + * @private + * @argument {String} str - Value + unit string + * @argument {String} measurement - `height` or `width` + * @argument {Object} popperOffsets + * @argument {Object} referenceOffsets + * @returns {Number|String} + * Value in pixels, or original string if no values were extracted + */ +function toValue(str, measurement, popperOffsets, referenceOffsets) { + // separate value from unit + var split = str.match(/((?:\-|\+)?\d*\.?\d*)(.*)/); + var value = +split[1]; + var unit = split[2]; + + // If it's not a number it's an operator, I guess + if (!value) { + return str; + } + + if (unit.indexOf('%') === 0) { + var element = void 0; + switch (unit) { + case '%p': + element = popperOffsets; + break; + case '%': + case '%r': + default: + element = referenceOffsets; + } + + var rect = getClientRect(element); + return rect[measurement] / 100 * value; + } else if (unit === 'vh' || unit === 'vw') { + // if is a vh or vw, we calculate the size based on the viewport + var size = void 0; + if (unit === 'vh') { + size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0); + } else { + size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0); + } + return size / 100 * value; + } else { + // if is an explicit pixel unit, we get rid of the unit and keep the value + // if is an implicit unit, it's px, and we return just the value + return value; + } +} + +/** + * Parse an `offset` string to extrapolate `x` and `y` numeric offsets. + * @function + * @memberof {modifiers~offset} + * @private + * @argument {String} offset + * @argument {Object} popperOffsets + * @argument {Object} referenceOffsets + * @argument {String} basePlacement + * @returns {Array} a two cells array with x and y offsets in numbers + */ +function parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) { + var offsets = [0, 0]; + + // Use height if placement is left or right and index is 0 otherwise use width + // in this way the first offset will use an axis and the second one + // will use the other one + var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1; + + // Split the offset string to obtain a list of values and operands + // The regex addresses values with the plus or minus sign in front (+10, -20, etc) + var fragments = offset.split(/(\+|\-)/).map(function (frag) { + return frag.trim(); + }); + + // Detect if the offset string contains a pair of values or a single one + // they could be separated by comma or space + var divider = fragments.indexOf(find(fragments, function (frag) { + return frag.search(/,|\s/) !== -1; + })); + + if (fragments[divider] && fragments[divider].indexOf(',') === -1) { + console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.'); + } + + // If divider is found, we divide the list of values and operands to divide + // them by ofset X and Y. + var splitRegex = /\s*,\s*|\s+/; + var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments]; + + // Convert the values with units to absolute pixels to allow our computations + ops = ops.map(function (op, index) { + // Most of the units rely on the orientation of the popper + var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width'; + var mergeWithPrevious = false; + return op + // This aggregates any `+` or `-` sign that aren't considered operators + // e.g.: 10 + +5 => [10, +, +5] + .reduce(function (a, b) { + if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) { + a[a.length - 1] = b; + mergeWithPrevious = true; + return a; + } else if (mergeWithPrevious) { + a[a.length - 1] += b; + mergeWithPrevious = false; + return a; + } else { + return a.concat(b); + } + }, []) + // Here we convert the string values into number values (in px) + .map(function (str) { + return toValue(str, measurement, popperOffsets, referenceOffsets); + }); + }); + + // Loop trough the offsets arrays and execute the operations + ops.forEach(function (op, index) { + op.forEach(function (frag, index2) { + if (isNumeric(frag)) { + offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1); + } + }); + }); + return offsets; +} + +/** + * @function + * @memberof Modifiers + * @argument {Object} data - The data object generated by update method + * @argument {Object} options - Modifiers configuration and options + * @argument {Number|String} options.offset=0 + * The offset value as described in the modifier description + * @returns {Object} The data object, properly modified + */ +function offset(data, _ref) { + var offset = _ref.offset; + var placement = data.placement, + _data$offsets = data.offsets, + popper = _data$offsets.popper, + reference = _data$offsets.reference; + + var basePlacement = placement.split('-')[0]; + + var offsets = void 0; + if (isNumeric(+offset)) { + offsets = [+offset, 0]; + } else { + offsets = parseOffset(offset, popper, reference, basePlacement); + } + + if (basePlacement === 'left') { + popper.top += offsets[0]; + popper.left -= offsets[1]; + } else if (basePlacement === 'right') { + popper.top += offsets[0]; + popper.left += offsets[1]; + } else if (basePlacement === 'top') { + popper.left += offsets[0]; + popper.top -= offsets[1]; + } else if (basePlacement === 'bottom') { + popper.left += offsets[0]; + popper.top += offsets[1]; + } + + data.popper = popper; + return data; +} + +/** + * @function + * @memberof Modifiers + * @argument {Object} data - The data object generated by `update` method + * @argument {Object} options - Modifiers configuration and options + * @returns {Object} The data object, properly modified + */ +function preventOverflow(data, options) { + var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper); + + // If offsetParent is the reference element, we really want to + // go one step up and use the next offsetParent as reference to + // avoid to make this modifier completely useless and look like broken + if (data.instance.reference === boundariesElement) { + boundariesElement = getOffsetParent(boundariesElement); + } + + // NOTE: DOM access here + // resets the popper's position so that the document size can be calculated excluding + // the size of the popper element itself + var transformProp = getSupportedPropertyName('transform'); + var popperStyles = data.instance.popper.style; // assignment to help minification + var top = popperStyles.top, + left = popperStyles.left, + transform = popperStyles[transformProp]; + + popperStyles.top = ''; + popperStyles.left = ''; + popperStyles[transformProp] = ''; + + var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed); + + // NOTE: DOM access here + // restores the original style properties after the offsets have been computed + popperStyles.top = top; + popperStyles.left = left; + popperStyles[transformProp] = transform; + + options.boundaries = boundaries; + + var order = options.priority; + var popper = data.offsets.popper; + + var check = { + primary: function primary(placement) { + var value = popper[placement]; + if (popper[placement] < boundaries[placement] && !options.escapeWithReference) { + value = Math.max(popper[placement], boundaries[placement]); + } + return defineProperty({}, placement, value); + }, + secondary: function secondary(placement) { + var mainSide = placement === 'right' ? 'left' : 'top'; + var value = popper[mainSide]; + if (popper[placement] > boundaries[placement] && !options.escapeWithReference) { + value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height)); + } + return defineProperty({}, mainSide, value); + } + }; + + order.forEach(function (placement) { + var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary'; + popper = _extends({}, popper, check[side](placement)); + }); + + data.offsets.popper = popper; + + return data; +} + +/** + * @function + * @memberof Modifiers + * @argument {Object} data - The data object generated by `update` method + * @argument {Object} options - Modifiers configuration and options + * @returns {Object} The data object, properly modified + */ +function shift(data) { + var placement = data.placement; + var basePlacement = placement.split('-')[0]; + var shiftvariation = placement.split('-')[1]; + + // if shift shiftvariation is specified, run the modifier + if (shiftvariation) { + var _data$offsets = data.offsets, + reference = _data$offsets.reference, + popper = _data$offsets.popper; + + var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1; + var side = isVertical ? 'left' : 'top'; + var measurement = isVertical ? 'width' : 'height'; + + var shiftOffsets = { + start: defineProperty({}, side, reference[side]), + end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement]) + }; + + data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]); + } + + return data; +} + +/** + * @function + * @memberof Modifiers + * @argument {Object} data - The data object generated by update method + * @argument {Object} options - Modifiers configuration and options + * @returns {Object} The data object, properly modified + */ +function hide(data) { + if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) { + return data; + } + + var refRect = data.offsets.reference; + var bound = find(data.instance.modifiers, function (modifier) { + return modifier.name === 'preventOverflow'; + }).boundaries; + + if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) { + // Avoid unnecessary DOM access if visibility hasn't changed + if (data.hide === true) { + return data; + } + + data.hide = true; + data.attributes['x-out-of-boundaries'] = ''; + } else { + // Avoid unnecessary DOM access if visibility hasn't changed + if (data.hide === false) { + return data; + } + + data.hide = false; + data.attributes['x-out-of-boundaries'] = false; + } + + return data; +} + +/** + * @function + * @memberof Modifiers + * @argument {Object} data - The data object generated by `update` method + * @argument {Object} options - Modifiers configuration and options + * @returns {Object} The data object, properly modified + */ +function inner(data) { + var placement = data.placement; + var basePlacement = placement.split('-')[0]; + var _data$offsets = data.offsets, + popper = _data$offsets.popper, + reference = _data$offsets.reference; + + var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1; + + var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1; + + popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0); + + data.placement = getOppositePlacement(placement); + data.offsets.popper = getClientRect(popper); + + return data; +} + +/** + * Modifier function, each modifier can have a function of this type assigned + * to its `fn` property.
    + * These functions will be called on each update, this means that you must + * make sure they are performant enough to avoid performance bottlenecks. + * + * @function ModifierFn + * @argument {dataObject} data - The data object generated by `update` method + * @argument {Object} options - Modifiers configuration and options + * @returns {dataObject} The data object, properly modified + */ + +/** + * Modifiers are plugins used to alter the behavior of your poppers.
    + * Popper.js uses a set of 9 modifiers to provide all the basic functionalities + * needed by the library. + * + * Usually you don't want to override the `order`, `fn` and `onLoad` props. + * All the other properties are configurations that could be tweaked. + * @namespace modifiers + */ +var modifiers = { + /** + * Modifier used to shift the popper on the start or end of its reference + * element.
    + * It will read the variation of the `placement` property.
    + * It can be one either `-end` or `-start`. + * @memberof modifiers + * @inner + */ + shift: { + /** @prop {number} order=100 - Index used to define the order of execution */ + order: 100, + /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */ + enabled: true, + /** @prop {ModifierFn} */ + fn: shift + }, + + /** + * The `offset` modifier can shift your popper on both its axis. + * + * It accepts the following units: + * - `px` or unit-less, interpreted as pixels + * - `%` or `%r`, percentage relative to the length of the reference element + * - `%p`, percentage relative to the length of the popper element + * - `vw`, CSS viewport width unit + * - `vh`, CSS viewport height unit + * + * For length is intended the main axis relative to the placement of the popper.
    + * This means that if the placement is `top` or `bottom`, the length will be the + * `width`. In case of `left` or `right`, it will be the `height`. + * + * You can provide a single value (as `Number` or `String`), or a pair of values + * as `String` divided by a comma or one (or more) white spaces.
    + * The latter is a deprecated method because it leads to confusion and will be + * removed in v2.
    + * Additionally, it accepts additions and subtractions between different units. + * Note that multiplications and divisions aren't supported. + * + * Valid examples are: + * ``` + * 10 + * '10%' + * '10, 10' + * '10%, 10' + * '10 + 10%' + * '10 - 5vh + 3%' + * '-10px + 5vh, 5px - 6%' + * ``` + * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap + * > with their reference element, unfortunately, you will have to disable the `flip` modifier. + * > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373). + * + * @memberof modifiers + * @inner + */ + offset: { + /** @prop {number} order=200 - Index used to define the order of execution */ + order: 200, + /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */ + enabled: true, + /** @prop {ModifierFn} */ + fn: offset, + /** @prop {Number|String} offset=0 + * The offset value as described in the modifier description + */ + offset: 0 + }, + + /** + * Modifier used to prevent the popper from being positioned outside the boundary. + * + * A scenario exists where the reference itself is not within the boundaries.
    + * We can say it has "escaped the boundaries" — or just "escaped".
    + * In this case we need to decide whether the popper should either: + * + * - detach from the reference and remain "trapped" in the boundaries, or + * - if it should ignore the boundary and "escape with its reference" + * + * When `escapeWithReference` is set to`true` and reference is completely + * outside its boundaries, the popper will overflow (or completely leave) + * the boundaries in order to remain attached to the edge of the reference. + * + * @memberof modifiers + * @inner + */ + preventOverflow: { + /** @prop {number} order=300 - Index used to define the order of execution */ + order: 300, + /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */ + enabled: true, + /** @prop {ModifierFn} */ + fn: preventOverflow, + /** + * @prop {Array} [priority=['left','right','top','bottom']] + * Popper will try to prevent overflow following these priorities by default, + * then, it could overflow on the left and on top of the `boundariesElement` + */ + priority: ['left', 'right', 'top', 'bottom'], + /** + * @prop {number} padding=5 + * Amount of pixel used to define a minimum distance between the boundaries + * and the popper. This makes sure the popper always has a little padding + * between the edges of its container + */ + padding: 5, + /** + * @prop {String|HTMLElement} boundariesElement='scrollParent' + * Boundaries used by the modifier. Can be `scrollParent`, `window`, + * `viewport` or any DOM element. + */ + boundariesElement: 'scrollParent' + }, + + /** + * Modifier used to make sure the reference and its popper stay near each other + * without leaving any gap between the two. Especially useful when the arrow is + * enabled and you want to ensure that it points to its reference element. + * It cares only about the first axis. You can still have poppers with margin + * between the popper and its reference element. + * @memberof modifiers + * @inner + */ + keepTogether: { + /** @prop {number} order=400 - Index used to define the order of execution */ + order: 400, + /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */ + enabled: true, + /** @prop {ModifierFn} */ + fn: keepTogether + }, + + /** + * This modifier is used to move the `arrowElement` of the popper to make + * sure it is positioned between the reference element and its popper element. + * It will read the outer size of the `arrowElement` node to detect how many + * pixels of conjunction are needed. + * + * It has no effect if no `arrowElement` is provided. + * @memberof modifiers + * @inner + */ + arrow: { + /** @prop {number} order=500 - Index used to define the order of execution */ + order: 500, + /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */ + enabled: true, + /** @prop {ModifierFn} */ + fn: arrow, + /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */ + element: '[x-arrow]' + }, + + /** + * Modifier used to flip the popper's placement when it starts to overlap its + * reference element. + * + * Requires the `preventOverflow` modifier before it in order to work. + * + * **NOTE:** this modifier will interrupt the current update cycle and will + * restart it if it detects the need to flip the placement. + * @memberof modifiers + * @inner + */ + flip: { + /** @prop {number} order=600 - Index used to define the order of execution */ + order: 600, + /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */ + enabled: true, + /** @prop {ModifierFn} */ + fn: flip, + /** + * @prop {String|Array} behavior='flip' + * The behavior used to change the popper's placement. It can be one of + * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid + * placements (with optional variations) + */ + behavior: 'flip', + /** + * @prop {number} padding=5 + * The popper will flip if it hits the edges of the `boundariesElement` + */ + padding: 5, + /** + * @prop {String|HTMLElement} boundariesElement='viewport' + * The element which will define the boundaries of the popper position. + * The popper will never be placed outside of the defined boundaries + * (except if `keepTogether` is enabled) + */ + boundariesElement: 'viewport', + /** + * @prop {Boolean} flipVariations=false + * The popper will switch placement variation between `-start` and `-end` when + * the reference element overlaps its boundaries. + * + * The original placement should have a set variation. + */ + flipVariations: false, + /** + * @prop {Boolean} flipVariationsByContent=false + * The popper will switch placement variation between `-start` and `-end` when + * the popper element overlaps its reference boundaries. + * + * The original placement should have a set variation. + */ + flipVariationsByContent: false + }, + + /** + * Modifier used to make the popper flow toward the inner of the reference element. + * By default, when this modifier is disabled, the popper will be placed outside + * the reference element. + * @memberof modifiers + * @inner + */ + inner: { + /** @prop {number} order=700 - Index used to define the order of execution */ + order: 700, + /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */ + enabled: false, + /** @prop {ModifierFn} */ + fn: inner + }, + + /** + * Modifier used to hide the popper when its reference element is outside of the + * popper boundaries. It will set a `x-out-of-boundaries` attribute which can + * be used to hide with a CSS selector the popper when its reference is + * out of boundaries. + * + * Requires the `preventOverflow` modifier before it in order to work. + * @memberof modifiers + * @inner + */ + hide: { + /** @prop {number} order=800 - Index used to define the order of execution */ + order: 800, + /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */ + enabled: true, + /** @prop {ModifierFn} */ + fn: hide + }, + + /** + * Computes the style that will be applied to the popper element to gets + * properly positioned. + * + * Note that this modifier will not touch the DOM, it just prepares the styles + * so that `applyStyle` modifier can apply it. This separation is useful + * in case you need to replace `applyStyle` with a custom implementation. + * + * This modifier has `850` as `order` value to maintain backward compatibility + * with previous versions of Popper.js. Expect the modifiers ordering method + * to change in future major versions of the library. + * + * @memberof modifiers + * @inner + */ + computeStyle: { + /** @prop {number} order=850 - Index used to define the order of execution */ + order: 850, + /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */ + enabled: true, + /** @prop {ModifierFn} */ + fn: computeStyle, + /** + * @prop {Boolean} gpuAcceleration=true + * If true, it uses the CSS 3D transformation to position the popper. + * Otherwise, it will use the `top` and `left` properties + */ + gpuAcceleration: true, + /** + * @prop {string} [x='bottom'] + * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin. + * Change this if your popper should grow in a direction different from `bottom` + */ + x: 'bottom', + /** + * @prop {string} [x='left'] + * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin. + * Change this if your popper should grow in a direction different from `right` + */ + y: 'right' + }, + + /** + * Applies the computed styles to the popper element. + * + * All the DOM manipulations are limited to this modifier. This is useful in case + * you want to integrate Popper.js inside a framework or view library and you + * want to delegate all the DOM manipulations to it. + * + * Note that if you disable this modifier, you must make sure the popper element + * has its position set to `absolute` before Popper.js can do its work! + * + * Just disable this modifier and define your own to achieve the desired effect. + * + * @memberof modifiers + * @inner + */ + applyStyle: { + /** @prop {number} order=900 - Index used to define the order of execution */ + order: 900, + /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */ + enabled: true, + /** @prop {ModifierFn} */ + fn: applyStyle, + /** @prop {Function} */ + onLoad: applyStyleOnLoad, + /** + * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier + * @prop {Boolean} gpuAcceleration=true + * If true, it uses the CSS 3D transformation to position the popper. + * Otherwise, it will use the `top` and `left` properties + */ + gpuAcceleration: undefined + } +}; + +/** + * The `dataObject` is an object containing all the information used by Popper.js. + * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks. + * @name dataObject + * @property {Object} data.instance The Popper.js instance + * @property {String} data.placement Placement applied to popper + * @property {String} data.originalPlacement Placement originally defined on init + * @property {Boolean} data.flipped True if popper has been flipped by flip modifier + * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper + * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier + * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`) + * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`) + * @property {Object} data.boundaries Offsets of the popper boundaries + * @property {Object} data.offsets The measurements of popper, reference and arrow elements + * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values + * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values + * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0 + */ + +/** + * Default options provided to Popper.js constructor.
    + * These can be overridden using the `options` argument of Popper.js.
    + * To override an option, simply pass an object with the same + * structure of the `options` object, as the 3rd argument. For example: + * ``` + * new Popper(ref, pop, { + * modifiers: { + * preventOverflow: { enabled: false } + * } + * }) + * ``` + * @type {Object} + * @static + * @memberof Popper + */ +var Defaults = { + /** + * Popper's placement. + * @prop {Popper.placements} placement='bottom' + */ + placement: 'bottom', + + /** + * Set this to true if you want popper to position it self in 'fixed' mode + * @prop {Boolean} positionFixed=false + */ + positionFixed: false, + + /** + * Whether events (resize, scroll) are initially enabled. + * @prop {Boolean} eventsEnabled=true + */ + eventsEnabled: true, + + /** + * Set to true if you want to automatically remove the popper when + * you call the `destroy` method. + * @prop {Boolean} removeOnDestroy=false + */ + removeOnDestroy: false, + + /** + * Callback called when the popper is created.
    + * By default, it is set to no-op.
    + * Access Popper.js instance with `data.instance`. + * @prop {onCreate} + */ + onCreate: function onCreate() {}, + + /** + * Callback called when the popper is updated. This callback is not called + * on the initialization/creation of the popper, but only on subsequent + * updates.
    + * By default, it is set to no-op.
    + * Access Popper.js instance with `data.instance`. + * @prop {onUpdate} + */ + onUpdate: function onUpdate() {}, + + /** + * List of modifiers used to modify the offsets before they are applied to the popper. + * They provide most of the functionalities of Popper.js. + * @prop {modifiers} + */ + modifiers: modifiers +}; + +/** + * @callback onCreate + * @param {dataObject} data + */ + +/** + * @callback onUpdate + * @param {dataObject} data + */ + +// Utils +// Methods +var Popper = function () { + /** + * Creates a new Popper.js instance. + * @class Popper + * @param {Element|referenceObject} reference - The reference element used to position the popper + * @param {Element} popper - The HTML / XML element used as the popper + * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults) + * @return {Object} instance - The generated Popper.js instance + */ + function Popper(reference, popper) { + var _this = this; + + var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; + classCallCheck(this, Popper); + + this.scheduleUpdate = function () { + return requestAnimationFrame(_this.update); + }; + + // make update() debounced, so that it only runs at most once-per-tick + this.update = debounce(this.update.bind(this)); + + // with {} we create a new object with the options inside it + this.options = _extends({}, Popper.Defaults, options); + + // init state + this.state = { + isDestroyed: false, + isCreated: false, + scrollParents: [] + }; + + // get reference and popper elements (allow jQuery wrappers) + this.reference = reference && reference.jquery ? reference[0] : reference; + this.popper = popper && popper.jquery ? popper[0] : popper; + + // Deep merge modifiers options + this.options.modifiers = {}; + Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) { + _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {}); + }); + + // Refactoring modifiers' list (Object => Array) + this.modifiers = Object.keys(this.options.modifiers).map(function (name) { + return _extends({ + name: name + }, _this.options.modifiers[name]); + }) + // sort the modifiers by order + .sort(function (a, b) { + return a.order - b.order; + }); + + // modifiers have the ability to execute arbitrary code when Popper.js get inited + // such code is executed in the same order of its modifier + // they could add new properties to their options configuration + // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`! + this.modifiers.forEach(function (modifierOptions) { + if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) { + modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state); + } + }); + + // fire the first update to position the popper in the right place + this.update(); + + var eventsEnabled = this.options.eventsEnabled; + if (eventsEnabled) { + // setup event listeners, they will take care of update the position in specific situations + this.enableEventListeners(); + } + + this.state.eventsEnabled = eventsEnabled; + } + + // We can't use class properties because they don't get listed in the + // class prototype and break stuff like Sinon stubs + + + createClass(Popper, [{ + key: 'update', + value: function update$$1() { + return update.call(this); + } + }, { + key: 'destroy', + value: function destroy$$1() { + return destroy.call(this); + } + }, { + key: 'enableEventListeners', + value: function enableEventListeners$$1() { + return enableEventListeners.call(this); + } + }, { + key: 'disableEventListeners', + value: function disableEventListeners$$1() { + return disableEventListeners.call(this); + } + + /** + * Schedules an update. It will run on the next UI update available. + * @method scheduleUpdate + * @memberof Popper + */ + + + /** + * Collection of utilities useful when writing custom modifiers. + * Starting from version 1.7, this method is available only if you + * include `popper-utils.js` before `popper.js`. + * + * **DEPRECATION**: This way to access PopperUtils is deprecated + * and will be removed in v2! Use the PopperUtils module directly instead. + * Due to the high instability of the methods contained in Utils, we can't + * guarantee them to follow semver. Use them at your own risk! + * @static + * @private + * @type {Object} + * @deprecated since version 1.8 + * @member Utils + * @memberof Popper + */ + + }]); + return Popper; +}(); + +/** + * The `referenceObject` is an object that provides an interface compatible with Popper.js + * and lets you use it as replacement of a real DOM node.
    + * You can use this method to position a popper relatively to a set of coordinates + * in case you don't have a DOM node to use as reference. + * + * ``` + * new Popper(referenceObject, popperNode); + * ``` + * + * NB: This feature isn't supported in Internet Explorer 10. + * @name referenceObject + * @property {Function} data.getBoundingClientRect + * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method. + * @property {number} data.clientWidth + * An ES6 getter that will return the width of the virtual reference element. + * @property {number} data.clientHeight + * An ES6 getter that will return the height of the virtual reference element. + */ + + +Popper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils; +Popper.placements = placements; +Popper.Defaults = Defaults; + +export default Popper; +//# sourceMappingURL=popper.js.map diff --git a/popper.min.js b/popper.min.js new file mode 100644 index 000000000..94a5c26fc --- /dev/null +++ b/popper.min.js @@ -0,0 +1,5 @@ +/* + Copyright (C) Federico Zivolo 2019 + Distributed under the MIT License (license terms are at http://opensource.org/licenses/MIT). + */(function(e,t){'object'==typeof exports&&'undefined'!=typeof module?module.exports=t():'function'==typeof define&&define.amd?define(t):e.Popper=t()})(this,function(){'use strict';function e(e){return e&&'[object Function]'==={}.toString.call(e)}function t(e,t){if(1!==e.nodeType)return[];var o=e.ownerDocument.defaultView,n=o.getComputedStyle(e,null);return t?n[t]:n}function o(e){return'HTML'===e.nodeName?e:e.parentNode||e.host}function n(e){if(!e)return document.body;switch(e.nodeName){case'HTML':case'BODY':return e.ownerDocument.body;case'#document':return e.body;}var i=t(e),r=i.overflow,p=i.overflowX,s=i.overflowY;return /(auto|scroll|overlay)/.test(r+s+p)?e:n(o(e))}function r(e){return 11===e?pe:10===e?se:pe||se}function p(e){if(!e)return document.documentElement;for(var o=r(10)?document.body:null,n=e.offsetParent||null;n===o&&e.nextElementSibling;)n=(e=e.nextElementSibling).offsetParent;var i=n&&n.nodeName;return i&&'BODY'!==i&&'HTML'!==i?-1!==['TH','TD','TABLE'].indexOf(n.nodeName)&&'static'===t(n,'position')?p(n):n:e?e.ownerDocument.documentElement:document.documentElement}function s(e){var t=e.nodeName;return'BODY'!==t&&('HTML'===t||p(e.firstElementChild)===e)}function d(e){return null===e.parentNode?e:d(e.parentNode)}function a(e,t){if(!e||!e.nodeType||!t||!t.nodeType)return document.documentElement;var o=e.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_FOLLOWING,n=o?e:t,i=o?t:e,r=document.createRange();r.setStart(n,0),r.setEnd(i,0);var l=r.commonAncestorContainer;if(e!==l&&t!==l||n.contains(i))return s(l)?l:p(l);var f=d(e);return f.host?a(f.host,t):a(e,d(t).host)}function l(e){var t=1=o.clientWidth&&n>=o.clientHeight}),l=0a[e]&&!t.escapeWithReference&&(n=Q(f[o],a[e]-('right'===e?f.width:f.height))),le({},o,n)}};return l.forEach(function(e){var t=-1===['left','top'].indexOf(e)?'secondary':'primary';f=fe({},f,m[t](e))}),e.offsets.popper=f,e},priority:['left','right','top','bottom'],padding:5,boundariesElement:'scrollParent'},keepTogether:{order:400,enabled:!0,fn:function(e){var t=e.offsets,o=t.popper,n=t.reference,i=e.placement.split('-')[0],r=Z,p=-1!==['top','bottom'].indexOf(i),s=p?'right':'bottom',d=p?'left':'top',a=p?'width':'height';return o[s]r(n[s])&&(e.offsets.popper[d]=r(n[s])),e}},arrow:{order:500,enabled:!0,fn:function(e,o){var n;if(!K(e.instance.modifiers,'arrow','keepTogether'))return e;var i=o.element;if('string'==typeof i){if(i=e.instance.popper.querySelector(i),!i)return e;}else if(!e.instance.popper.contains(i))return console.warn('WARNING: `arrow.element` must be child of its popper element!'),e;var r=e.placement.split('-')[0],p=e.offsets,s=p.popper,d=p.reference,a=-1!==['left','right'].indexOf(r),l=a?'height':'width',f=a?'Top':'Left',m=f.toLowerCase(),h=a?'left':'top',c=a?'bottom':'right',u=S(i)[l];d[c]-us[c]&&(e.offsets.popper[m]+=d[m]+u-s[c]),e.offsets.popper=g(e.offsets.popper);var b=d[m]+d[l]/2-u/2,w=t(e.instance.popper),y=parseFloat(w['margin'+f],10),E=parseFloat(w['border'+f+'Width'],10),v=b-e.offsets.popper[m]-y-E;return v=ee(Q(s[l]-u,v),0),e.arrowElement=i,e.offsets.arrow=(n={},le(n,m,$(v)),le(n,h,''),n),e},element:'[x-arrow]'},flip:{order:600,enabled:!0,fn:function(e,t){if(W(e.instance.modifiers,'inner'))return e;if(e.flipped&&e.placement===e.originalPlacement)return e;var o=v(e.instance.popper,e.instance.reference,t.padding,t.boundariesElement,e.positionFixed),n=e.placement.split('-')[0],i=T(n),r=e.placement.split('-')[1]||'',p=[];switch(t.behavior){case ge.FLIP:p=[n,i];break;case ge.CLOCKWISE:p=G(n);break;case ge.COUNTERCLOCKWISE:p=G(n,!0);break;default:p=t.behavior;}return p.forEach(function(s,d){if(n!==s||p.length===d+1)return e;n=e.placement.split('-')[0],i=T(n);var a=e.offsets.popper,l=e.offsets.reference,f=Z,m='left'===n&&f(a.right)>f(l.left)||'right'===n&&f(a.left)f(l.top)||'bottom'===n&&f(a.top)f(o.right),g=f(a.top)f(o.bottom),b='left'===n&&h||'right'===n&&c||'top'===n&&g||'bottom'===n&&u,w=-1!==['top','bottom'].indexOf(n),y=!!t.flipVariations&&(w&&'start'===r&&h||w&&'end'===r&&c||!w&&'start'===r&&g||!w&&'end'===r&&u);(m||b||y)&&(e.flipped=!0,(m||b)&&(n=p[d+1]),y&&(r=z(r)),e.placement=n+(r?'-'+r:''),e.offsets.popper=fe({},e.offsets.popper,D(e.instance.popper,e.offsets.reference,e.placement)),e=P(e.instance.modifiers,e,'flip'))}),e},behavior:'flip',padding:5,boundariesElement:'viewport'},inner:{order:700,enabled:!1,fn:function(e){var t=e.placement,o=t.split('-')[0],n=e.offsets,i=n.popper,r=n.reference,p=-1!==['left','right'].indexOf(o),s=-1===['top','left'].indexOf(o);return i[p?'left':'top']=r[o]-(s?i[p?'width':'height']:0),e.placement=T(t),e.offsets.popper=g(i),e}},hide:{order:800,enabled:!0,fn:function(e){if(!K(e.instance.modifiers,'hide','preventOverflow'))return e;var t=e.offsets.reference,o=C(e.instance.modifiers,function(e){return'preventOverflow'===e.name}).boundaries;if(t.bottomo.right||t.top>o.bottom||t.rightwindow.devicePixelRatio||!me),c='bottom'===o?'top':'bottom',g='right'===n?'left':'right',b=H('transform');if(d='bottom'==c?'HTML'===l.nodeName?-l.clientHeight+h.bottom:-f.height+h.bottom:h.top,s='right'==g?'HTML'===l.nodeName?-l.clientWidth+h.right:-f.width+h.right:h.left,a&&b)m[b]='translate3d('+s+'px, '+d+'px, 0)',m[c]=0,m[g]=0,m.willChange='transform';else{var w='bottom'==c?-1:1,y='right'==g?-1:1;m[c]=d*w,m[g]=s*y,m.willChange=c+', '+g}var E={"x-placement":e.placement};return e.attributes=fe({},E,e.attributes),e.styles=fe({},m,e.styles),e.arrowStyles=fe({},e.offsets.arrow,e.arrowStyles),e},gpuAcceleration:!0,x:'bottom',y:'right'},applyStyle:{order:900,enabled:!0,fn:function(e){return j(e.instance.popper,e.styles),V(e.instance.popper,e.attributes),e.arrowElement&&Object.keys(e.arrowStyles).length&&j(e.arrowElement,e.arrowStyles),e},onLoad:function(e,t,o,n,i){var r=L(i,t,e,o.positionFixed),p=O(o.placement,r,t,e,o.modifiers.flip.boundariesElement,o.modifiers.flip.padding);return t.setAttribute('x-placement',p),j(t,{position:o.positionFixed?'fixed':'absolute'}),o},gpuAcceleration:void 0}}},ue}); +//# sourceMappingURL=popper.min.js.map diff --git a/scrollbarstyle.css b/scrollbarstyle.css new file mode 100644 index 000000000..d129c8fe3 --- /dev/null +++ b/scrollbarstyle.css @@ -0,0 +1,21 @@ +/* width */ +::-webkit-scrollbar { + width: 10px; +} + +/* Track */ +::-webkit-scrollbar-track { + box-shadow: inset 0 0 5px grey; + border-radius: 10px; +} + +/* Handle */ +::-webkit-scrollbar-thumb { + background: #aa42f5; + border-radius: 10px; +} + +/* Handle on hover */ +::-webkit-scrollbar-thumb:hover { + background: #a32ff7; +} diff --git a/searchbar.css b/searchbar.css new file mode 100644 index 000000000..f4764af00 --- /dev/null +++ b/searchbar.css @@ -0,0 +1,43 @@ +/*the container must be positioned relative:*/ +.autocomplete { + position: relative; + display: inline-block; +} + + + +.autocomplete-items { + font-family:mathfont; + position: absolute; + //border: 1px solid #d4d4d4; + border-bottom: none; + border-top: none; + z-index: 99; + /*position the autocomplete items to be the same width as the container:*/ + top: 100%; + left: 0; + right: 0; + //border-radius:50px !important; +} + +.autocomplete-items div { + padding: 10px; + cursor: pointer; + background-color: #fff; + border-bottom: 3px solid #ff00a2; + box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19); + border-bottom-left-radius:10px !important; + border-bottom-right-radius:10px !important; + //border-radius:10px !important; +} + +/*when hovering an item:*/ +.autocomplete-items div:hover { + font-size:15px; +} + +/*when navigating through the items using the arrow keys:*/ +.autocomplete-active { + background-color: DodgerBlue !important; + color: #ffffff; +} \ No newline at end of file diff --git a/searchbar.js b/searchbar.js new file mode 100644 index 000000000..363e72498 --- /dev/null +++ b/searchbar.js @@ -0,0 +1,189 @@ +function autocomplete(inp, arr) { + /*the autocomplete function takes two arguments, + the text field element and an array of possible autocompleted values:*/ + var currentFocus; + /*execute a function when someone writes in the text field:*/ + inp.addEventListener("input", function(e) { + var a, b, i, val = this.value; + /*close any already open lists of autocompleted values*/ + closeAllLists(); + if (!val) { return false;} + currentFocus = -1; + /*create a DIV element that will contain the items (values):*/ + a = document.createElement("DIV"); + a.setAttribute("id", this.id + "autocomplete-list"); + a.setAttribute("class", "autocomplete-items"); + /*append the DIV element as a child of the autocomplete container:*/ + this.parentNode.appendChild(a); + /*for each item in the array...*/ + for (i = 0; i < arr.length; i++) { + /*check if the item starts with the same letters as the text field value:*/ + if (arr[i].substr(0, val.length).toUpperCase() == val.toUpperCase()) { + /*create a DIV element for each matching element:*/ + b = document.createElement("DIV"); + /*make the matching letters bold:*/ + b.innerHTML = "" + arr[i].substr(0, val.length) + ""; + b.innerHTML += arr[i].substr(val.length); + /*insert a input field that will hold the current array item's value:*/ + b.innerHTML += ""; + /*execute a function when someone clicks on the item value (DIV element):*/ + b.addEventListener("click", function(e) { + /*insert the value for the autocomplete text field:*/ + inp.value = this.getElementsByTagName("input")[0].value; + + /*close the list of autocompleted values, + (or any other open lists of autocompleted values:*/ + closeAllLists(); + if(inp.value.toUpperCase()=="INTEGRATION"){ + $("#integralcollapse").slideToggle(); + } + else if(inp.value.toUpperCase()=="DIFFERENTIATION"){ + $("#differentiatecollapse").slideToggle(); + } + else if(inp.value.toUpperCase()=="DIVIDE"){ + $("#divide").slideToggle(); + } + else if(inp.value.toUpperCase()=="ABOUT"){ + $("#about").slideToggle(); + } + else if(inp.value.toUpperCase()=="FACTORS"){ + $("#factors").slideToggle(); + } + else if(inp.value.toUpperCase()=="MATRIX"){ + $("#matrixcollapse").slideToggle(); + } + else if(inp.value.toUpperCase()=="MULTIPLICATION TABLE"){ + $("#table").slideToggle(); + } + else if(inp.value.toUpperCase()=="PARTIAL DIFFERENTIATE"){ + $("#partialdiffcollapse").slideToggle(); + } + else if(inp.value.toUpperCase()=="LAPLACE"){ + $("#laplacecollapse").slideDown(); + + $("#laplacecollapseit").slideToggle(); + $("#inverselaplacecollapse").slideUp(); + } + else if(inp.value.toUpperCase()=="AREA FOR SHAPES"){ + $("#areacal").slideToggle(); + } + else if(inp.value.toUpperCase()=="SIMPLE TRIGNOMETRY"){ + $("#simpletrignocollapse").slideToggle(); + } + else if(inp.value.toUpperCase()=="INVERSE LAPLACE"){ + $("#laplacecollapse").slideDown(); + $("#inverselaplacecollapse").slideToggle(); + $("#laplacecollapseit").slideToggle(); + + } + + }); + a.appendChild(b); + } + } + }); + /*execute a function presses a key on the keyboard:*/ + inp.addEventListener("keydown", function(e) { + var x = document.getElementById(this.id + "autocomplete-list"); + if (x) x = x.getElementsByTagName("div"); + if (e.keyCode == 40) { + /*If the arrow DOWN key is pressed, + increase the currentFocus variable:*/ + currentFocus++; + /*and and make the current item more visible:*/ + addActive(x); + } else if (e.keyCode == 38) { //up + /*If the arrow UP key is pressed, + decrease the currentFocus variable:*/ + currentFocus--; + /*and and make the current item more visible:*/ + addActive(x); + } else if (e.keyCode == 13) { + /*If the ENTER key is pressed, prevent the form from being submitted,*/ + e.preventDefault(); + if (currentFocus > -1) { + /*and simulate a click on the "active" item:*/ + if (x) x[currentFocus].click(); + } + } + }); + + function addActive(x) { + /*a function to classify an item as "active":*/ + if (!x) return false; + /*start by removing the "active" class on all items:*/ + removeActive(x); + if (currentFocus >= x.length) currentFocus = 0; + if (currentFocus < 0) currentFocus = (x.length - 1); + /*add class "autocomplete-active":*/ + x[currentFocus].classList.add("autocomplete-active"); + } + function removeActive(x) { + /*a function to remove the "active" class from all autocomplete items:*/ + for (var i = 0; i < x.length; i++) { + x[i].classList.remove("autocomplete-active"); + } + } + function closeAllLists(elmnt) { + /*close all autocomplete lists in the document, + except the one passed as an argument:*/ + var x = document.getElementsByClassName("autocomplete-items"); + for (var i = 0; i < x.length; i++) { + if (elmnt != x[i] && elmnt != inp) { + x[i].parentNode.removeChild(x[i]); + } + } + } + /*execute a function when someone clicks in the document:*/ + document.addEventListener("click", function (e) { + closeAllLists(e.target); + }); +} +var countries = ["Divide","Integration","Differentiation","Laplace","Inverse Laplace","Multiplication Table","Partial Differentiate","Area for Shapes","Factors","Matrix"]; +/*initiate the autocomplete function on the "myInput" element, and pass along the countries array as possible autocomplete values:*/ +autocomplete(document.getElementById("myInput"), countries); + +function handleclick(value){ + if(value.toUpperCase()=="INTEGRATION"){ + $("#integralcollapse").slideToggle(); + } + else if(value.toUpperCase()=="DIFFERENTIATION"){ + $("#differentiatecollapse").slideToggle(); + } + else if(value.toUpperCase()=="DIVIDE"){ + $("#divide").slideToggle(); + } + else if(value.toUpperCase()=="ABOUT"){ + $("#about").slideToggle(); + } + else if(value.toUpperCase()=="FACTORS"){ + $("#factors").slideToggle(); + } + else if(value.toUpperCase()=="MATRIX"){ + $("#matrixcollapse").slideToggle(); + } + else if(value.toUpperCase()=="MULTIPLICATION TABLE"){ + $("#table").slideToggle(); + } + else if(value.toUpperCase()=="PARTIAL DIFFERENTIATE"){ + $("#partialdiffcollapse").slideToggle(); + } + else if(value.toUpperCase()=="LAPLACE"){ + $("#laplacecollapse").slideDown(); + $("#inverselaplacecollapse").slideUp(); + $("#laplacecollapseit").slideToggle(); + } + else if(value.toUpperCase()=="AREA FOR SHAPES"){ + $("#areacal").slideToggle(); + } + else if(value.toUpperCase()=="SIMPLE TRIGNOMETRY"){ + $("#simpletrignocollapse").slideToggle(); + } + else if(value.toUpperCase()=="INVERSE LAPLACE"){ + $("#laplacecollapse").slideDown(); + $("#inverselaplacecollapse").slideToggle(); + $("#laplacecollapseit").slideUp(); + } + + +} \ No newline at end of file diff --git a/settings.html b/settings.html new file mode 100644 index 000000000..e69de29bb diff --git a/simplecal.css b/simplecal.css new file mode 100644 index 000000000..8f2605cae --- /dev/null +++ b/simplecal.css @@ -0,0 +1,97 @@ +.bodyof{ + display: flex; + justify-content: center; + align-items: center; +} +.calculator{ + opacity:0.9; + position:static; + display: grid; +} +.calculator .soltext{ + grid-column: span 5; + text-align: right; + font-size:25px; + outline: none; + color:blue; + padding:30px 10px; + max-height:5px; + height:auto; + border:none; + } + +.calculator .value{ + grid-column: span 5; + max-height:70px; + height:auto; + overflow-wrap: break-word; + word-wrap: break-word; + hyphens: auto; + position:relative; + min-height:60px; + background:#fff; + text-align: right; + border:none; + border-radius:30px 30px 0 0; + outline: none; + padding:30px 10px; + font-size:30px; + +} +.calculator span{ + font-size:25px; + display: grid; + width: 80px; + height: 80px; + color:#fff; + background: #0c2835; + place-items: center; + border:1px solid rgba(0,0,0,.1); +} + +.calculator span:active{ + color: #ff3077; +} + +.calculator span.clear{ + grid-column: span 1; + width:80px; + background: #ff3077; +} + +.calculator span.back{ + grid-column: span 1; + width:80px; + background: #0c2835; +} +.bk:active{ + filter:invert(50%) !important; +} + +.calculator span.plus{ + grid-row: span 1; + background: #163152; + height:80px; +} +.calculator span.sub{ + grid-row: span 1; + background: #163152; + height:80px; +} +.calculator span.mul{ + grid-row: span 1; + background: #163152; + height:80px; +} +.calculator span.divi{ + grid-row: span 1; + background: #163152; + height:80px; +} +.calculator span.equal{ + background: #03b1ff; + border-radius:0 0 40px 0; +} +.calculator span.zero{ + border-radius:0 0 0 40px; +} diff --git a/simplecallogic.js b/simplecallogic.js new file mode 100644 index 000000000..c6c7aa22b --- /dev/null +++ b/simplecallogic.js @@ -0,0 +1,185 @@ +function back(vlu) { +// if(document.getElementById('txt').value.includes("Ans is:")){ +// for (i of vlu){ +// if(i=="A"){ +// var ind=vlu.indexOf("A") +// var cc=parseInt(vlu.length-ind) +// vlu=vlu.slice(0,-cc); +// } +// } +// document.getElementById('txt').value=vlu; +// } +// if(document.getElementById('txt').value.includes("Sqrt is:")){ +// for (i of vlu){ +// if(i=="S"){ +// var ind=vlu.indexOf("S") +// var cc=parseInt(vlu.length-ind) +// vlu=vlu.slice(0,-cc); +// } +// } +// document.getElementById('txt').value=vlu; +// } + if(document.getElementById('txt').value=="Invalid Expression"){ + newStr=""; + } + else{ + var newStr = vlu.slice(0, -1); + } + document.getElementById('txt').value=newStr; + } + function replaceAll(string, search, replace) { + return string.split(search).join(replace); + } + function calsol(va) { //oninput call this + va=va.replace(/\s+/g, ''); + try{ + var solution=String(nerdamer(va).evaluate().toString()) + var soo=document.getElementById('txt').value=va; + document.getElementById("soltxt").value="\nAns is: "+solution; + } + + catch(err){ + document.getElementById("soltxt").value=""; + } + + } + function ans(hj){ + for (i of hj){ + hj=hj.replace(i,''); + if(i==":"){ + break; + } + } + document.getElementById('txt').value=hj; + document.getElementById('soltxt').value=''; + } + + function calsq(valui){ + valui=valui.replace(/\s+/g, ''); + try{ + document.getElementById('txt').value=valui; + document.getElementById('soltxt').value="\nSqrt is: "+nerdamer.sqrt(valui).toString(); + } + catch(e){ + document.getElementById('soltxt').value="Invalid Expression"; + } + } +function chh(value){ + if(value==""){ + document.getElementById('soltxt').value=""; + } +} + +function calsoleq(va) { + va=va.replace(/\s+/g, ''); + try{ + if(document.getElementById('soltxt').value!=''){ + ans(document.getElementById('soltxt').value); + } + else{ + document.getElementById('soltxt').value="Invalid Expression"; + } + } + catch (err) { + document.getElementById('soltxt').value="Invalid Expression"; + } + } + + function more(){ + var one=document.getElementById('one'); + var two=document.getElementById('two'); + var three=document.getElementById('three'); + var four=document.getElementById('four'); + var five=document.getElementById('five'); + var percent=document.getElementById('percent'); + var six=document.getElementById('six'); + var seven=document.getElementById('seven'); + var eight=document.getElementById('eight'); + var nine=document.getElementById('nine'); + var zero=document.getElementById('zero'); + var dot=document.getElementById('dot'); + + if(one.innerText=="1"){ + one.innerText='asin(' + }else{ + one.innerText='1' + } + + if(two.innerText=="2"){ + two.innerText='acos(' + }else{ + two.innerText='2' + } + + if(three.innerText=="3"){ + three.innerText='atan(' + }else{ + three.innerText='3' + } + + if(four.innerText=="4"){ + four.innerText='csc(' + }else{ + four.innerText='4' + } + + if(five.innerText=="5"){ + five.innerText='sec(' + }else{ + five.innerText='5' + } + + if(six.innerText=="6"){ + six.innerText='cot(' + }else{ + six.innerText='6' + } + + if(seven.innerText=="7"){ + seven.innerText='sin(' + }else{ + seven.innerText='7' + } + + if(eight.innerText=="8"){ + eight.innerText='cos(' + }else{ + eight.innerText='8' + } + + if(nine.innerText=="9"){ + nine.innerText='tan(' + }else{ + nine.innerText='9' + } + + if(zero.innerText=="0"){ + zero.innerText='pi' + }else{ + zero.innerText='0' + } + + if(dot.innerText=="."){ + dot.innerText='.' + }else{ + dot.innerText='.' + } + + if(percent.innerText=="%"){ + percent.innerText='RAD' + }else{ + percent.innerText='%' + } + } + function todeci(){ + var el=document.getElementById('deci'); + if(el.innerText=="Deci."){ + var val=document.getElementById('soltxt').value; + document.getElementById('soltxt').value='Ans is: '+eval(val.slice(7)) + el.innerText="Frac." + } + else{ + el.innerText="Deci." + calsol(document.getElementById('txt').value) + } + } \ No newline at end of file diff --git a/speechlogo.png b/speechlogo.png new file mode 100644 index 0000000000000000000000000000000000000000..f91923e9973f0214c9ce1bf60e923b8eec144d46 GIT binary patch literal 17994 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 A=Kufz literal 0 HcmV?d00001 diff --git a/speechlogostatic.png b/speechlogostatic.png new file mode 100644 index 0000000000000000000000000000000000000000..baf9774e45121e9a6259c80bdf6ead8a16af7b9c GIT binary patch literal 6961 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 literal 0 HcmV?d00001 diff --git a/speechstop.png b/speechstop.png new file mode 100644 index 0000000000000000000000000000000000000000..ff73ff524178ca3a4bfe721d66cd886c4b607552 GIT binary patch literal 41632 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 literal 0 HcmV?d00001 diff --git a/splashanimated.gif b/splashanimated.gif new file mode 100644 index 0000000000000000000000000000000000000000..9f7902d9a94b75db5bc0c77e6e546ee461f6b185 GIT binary patch literal 305199 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

    |+I_NnKxYyZ|juo4b* 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 J0utan`X6a@wDJG| literal 0 HcmV?d00001 diff --git a/test.html b/test.html new file mode 100644 index 000000000..9c23e93fa --- /dev/null +++ b/test.html @@ -0,0 +1,24 @@ + + + + + + + + How to add WhatsApp share + button on website? + + + + + + +

    Whatsapp sharing

    + + +share + + + diff --git a/unfavourite.png b/unfavourite.png new file mode 100644 index 0000000000000000000000000000000000000000..ef505d5ef6adedbae799433fba9b1a2fb570fd0f GIT binary patch literal 5035 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 Vzo(7Ok&888hm*VGBYQ^Te*yDuen|iT literal 0 HcmV?d00001

    LFc$pzZZYWIWJ8S!Wn7aRr)R3sde&nukLbvhP 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 h%mEph%mKxjAZ5KpX literal 0 HcmV?d00001 diff --git a/katex/fonts/KaTeX_Main-Italic.woff2 b/katex/fonts/KaTeX_Main-Italic.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..08510d85a779a19c24b2514204ff9e204edbb3df GIT binary patch literal 22076 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%0DjK5ntrP1S!Fr{s-lgGXP4QfS5*|bBDT`8 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 Zj(WZPj*iS#Z&FWfoFALYu%~4Ie*o*0b$9>( literal 0 HcmV?d00001 diff --git a/katex/fonts/KaTeX_Main-Regular.woff b/katex/fonts/KaTeX_Main-Regular.woff new file mode 100644 index 0000000000000000000000000000000000000000..42b74ab13306c0c6c361740282b13a3b36c56065 GIT binary patch literal 37856 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 J00IC101uI2uebmJ literal 0 HcmV?d00001 diff --git a/katex/fonts/KaTeX_Main-Regular.woff2 b/katex/fonts/KaTeX_Main-Regular.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..18647fa6afbc40c64b6cb0a5142c2ebae8a21212 GIT binary patch literal 32312 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≦e4Xlp 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 Jcf!)<{68y9_K^Sp literal 0 HcmV?d00001 diff --git a/katex/fonts/KaTeX_Math-BoldItalic.woff b/katex/fonts/KaTeX_Math-BoldItalic.woff new file mode 100644 index 0000000000000000000000000000000000000000..5b4041aa87c634e4550920a48e033b4af133d7c8 GIT binary patch literal 23980 zcmY(JV~{3Il!f26ZQHgnZQHh{ZFf)Gwr$(?v~AlqcD~sCvp3?2%6sCR$oy4tBdgrx z#l!$WfPbZ11%UtWS0eg2=${Aj|3Eai z_AmngfJ6WQ`E&pvnmCg#5Y@ue&;$Tb-2LZa{|{`sls1ch;=g_W=>UR%kV0&O@LAY6 zyZ<{H=D)nuKiaS{5GAecjQ{x*|5*Ur|1tEO2WDgF{%>D}-G4pde*ne7%Gny)nEpHS z(7#+9003&D>*VcWZ|CF;0O+Xv(-i)3q!hT$X76bFFRS_bFBkrg8Aa2wiJY74vJ>|8tyiWcKgMSNTOr&(YsqS^ z^Q1T3A28)!J&GMW{cmQ#pe}${hX^1Lu#r}Y7(tRHu`(oT4xzVq3WmiCRIjhv^H(@* z9_Nc2$}j=AUu6Tqc626TNHuoe-7mM}!4b7d6!;qJ5(Qg2xaN}{H;Rs!Yn7QdaU7HN}j8-E_o zghvx~=M*2-CGKDrSV$ym!zD;Rb1yJN!pu%bGHZF!l1_J6T+XJ_q{;c#e(~e3r%t?y zi+#2)_RKO8Oac?)g7@_f=l&u0{?rDBJnb>V06+peOuywGOAN_@7>k{g@=&$9h0N~{=!dw)1fl|S+tY+d zS2`-1JdrLQ98*-hw?S}Mja#^+ZA}vJeaOdw>b-tY%pmo=VLjk`54h&F!XvYdzlvDUP#59VAWC}=iaYqmbC41Fu+1Ignod7$IDb5Ds9D6J;I}rdp_hFEXF21x+8w+5{V8d z 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 G{{Roxxs>z( literal 0 HcmV?d00001 diff --git a/katex/fonts/KaTeX_Math-BoldItalic.woff2 b/katex/fonts/KaTeX_Math-BoldItalic.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..ba55276d03067f0c9f592d1d9e4faa43482b7454 GIT binary patch literal 21192 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 literal 0 HcmV?d00001 diff --git a/katex/fonts/KaTeX_Math-Italic.ttf b/katex/fonts/KaTeX_Math-Italic.ttf new file mode 100644 index 0000000000000000000000000000000000000000..f148fceeb07b6482aeb5944dafd3749d62416327 GIT binary patch literal 44484 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 O)nJ$a0RRF2{{Rp8?Uzsh literal 0 HcmV?d00001 diff --git a/katex/fonts/KaTeX_Math-Italic.woff2 b/katex/fonts/KaTeX_Math-Italic.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..9871ab6b83556fe1ebfe44fd44184d58432ff4ea GIT binary patch literal 21668 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 Zj7;W$;!FUjs5g250000100IC101w}UK;!@b literal 0 HcmV?d00001 diff --git a/katex/fonts/KaTeX_SansSerif-Bold.woff2 b/katex/fonts/KaTeX_SansSerif-Bold.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..6dd10388adaf48c986009e84fe140d000dc0d8b3 GIT binary patch literal 15296 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 literal 0 HcmV?d00001 diff --git a/katex/fonts/KaTeX_SansSerif-Italic.woff b/katex/fonts/KaTeX_SansSerif-Italic.woff new file mode 100644 index 0000000000000000000000000000000000000000..f4fa252a2c1626909a43a41af1e57ca25ee0f176 GIT binary patch literal 17044 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 L00962|Nj6F18sz3 literal 0 HcmV?d00001 diff --git a/katex/fonts/KaTeX_SansSerif-Italic.woff2 b/katex/fonts/KaTeX_SansSerif-Italic.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..9f2501a3aacb36edb18aa674188250d43992ff2e GIT binary patch literal 14484 zcmV;FIBUmuPew8T0RR91063HY4gdfE0CgMy0601T0RR9100000000000000000000 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