`+i),Nutshell.htmlCache[e]=i,t(i)})),setTimeout((()=>{n(`
\n ${Nutshell.getLocalizedText("wikiError")}\n ${e}\n
`)}),6999)}else if(_isYouTube(e)){let n,r;(e=new URL(e)).host.indexOf("youtube.com")>=0?n=e.searchParams.get("v"):e.host.indexOf("youtu.be")>=0&&(n=e.pathname.slice(1)),r=parseInt(e.searchParams.get("t")||e.searchParams.get("start")||"0"),t(`\n\n ${Nutshell.getLocalizedText("notFoundError")}\n ${e}\n
`);{let r=document.createElement("iframe");r.setAttribute("sandbox","allow-scripts"),r.style.display="none",r.src=e;let i=window.addEventListener("message",(n=>{let r=JSON.parse(n.data);r.url==e&&(o(),t(r.html))})),l=!1,o=()=>{l||(window.removeEventListener("message",i),document.body.removeChild(r),l=!0)};document.body.appendChild(r),setTimeout((()=>{o(),n(`\n ${Nutshell.getLocalizedText("corsError")}\n ${e}\n
`)}),6999)}}))})).then((n=>{Nutshell.htmlCache[e]=_purifyHTML(n,e),t(Nutshell.htmlCache[e])}))}}));let _purifyHTML=(e,t)=>{let n=DOMPurify.sanitize(e,{FORBID_ATTR:["style","id","class"],FORBID_TAGS:["style"],ADD_TAGS:["iframe","audio","video"]}),r=document.createElement("div");return r.innerHTML=n,[...r.querySelectorAll("iframe")].forEach((e=>{e.setAttribute("sandbox","allow-scripts")})),_convertRelativeToAbsoluteLinks("iframe","src",t,r),_convertRelativeToAbsoluteLinks("img","src",t,r),_convertRelativeToAbsoluteLinks("a","href",t,r),[...r.querySelectorAll("a")].forEach((e=>{e.target="_blank"})),r.innerHTML},_isWikipedia=e=>e.indexOf("wikipedia.org")>=0,_isYouTube=e=>e.indexOf("youtu.be")>=0||e.indexOf("youtube.com")>=0,_objectToURLParams=e=>Object.keys(e).map((t=>`${encodeURIComponent(t)}=${encodeURIComponent(e[t])}`)).join("&"),_convertRelativeToAbsoluteLinks=(e,t,n,r)=>{[...r.querySelectorAll(e)].forEach((e=>{let r=e.getAttribute(t),i=new URL(r,n).href;e[t]=i}))},_sendParentMyHTML=()=>{window.parent.postMessage(JSON.stringify({url:Nutshell.thisPageURL,html:document.body.innerHTML}),"*")};Nutshell.promiseSectionContainer=e=>new Promise(((t,n)=>{let r=e.href.split("#"),i=r[0],l=r[1],o=document.createElement("div"),u="";Nutshell.promisePurifiedHTMLFromURL(i).then((e=>{if(_isWikipedia(i)||_isYouTube(i))u=e;else{let n=document.createElement("div");if(n.innerHTML=e,!l||""==l.trim()){Nutshell.hideHeadings(n),_convertRelativeToAbsoluteLinks("a","href",i,n);let e=n.querySelector("p").parentNode;return void t(e)}let r=l.split("&"),o={};if(r.forEach((e=>{if(e.indexOf("=")>0){let t=e.split("="),n=t[0],r=t[1];o[n]=r}})),r[0].indexOf("=")<0){let e=r[0],t=null;for(let r=0;r"+t+"
")}else r=!0;let i=o.cut?parseInt(o.cut):0;for(let t=0;t"+t+"
"}_forgivingMatchTest(t,n)&&(i=!0),u+=r.outerHTML,e--}else i=!0}}else u=`${Nutshell.getLocalizedText("startTextError").replace("[start]",e)}
`}o.before&&(u=_decodeParsePurifyItalics(o.before)+u),o.after&&(u+=_decodeParsePurifyItalics(o.after))}o.innerHTML=_addSource(i)+u,t(o)})).catch((e=>{o.innerHTML=e,t(o)}))}));let _decodeParsePurifyItalics=e=>""+DOMPurify.sanitize(marked.parse(decodeURIComponent(e)))+"",_addSource=e=>{if(e==Nutshell.thisPageURL)return"";{let t=e.split("://")[1];return`from ${t}
`}},_forgivingMatchTest=(e,t)=>(e=e.toLowerCase().replace(/[^a-z0-9]/g,""),t=t.toLowerCase().replace(/[^a-z0-9]/g,""),e.indexOf(t)>=0);Nutshell.createBubble=(e,t)=>{let n=document.createElement("div");n.className="nutshell-bubble",n.style.top="-5px",setTimeout((()=>{n.style.top="0px"}),1);let r=e.parentNode||document.body,i=window.getComputedStyle(r);n.style.color=i.color,n.style.fontSize=i.fontSize,n.style.fontStyle=i.fontStyle,n.style.fontWeight=i.fontWeight,n.style.lineHeight=i.lineHeight,n.style.textDecoration=i.textDecoration;let l=document.createElement("div");l.className="nutshell-bubble-arrow",n.appendChild(l),n.style.borderColor=i.color,l.style.borderBottomColor=i.color;let o=i.backgroundColor,u=r.parentNode,a=10;for(;"rgba(0, 0, 0, 0)"==o&&u&&u.tagName&&a-- >0;)o=window.getComputedStyle(u).backgroundColor,u=u.parentNode;"rgba(0, 0, 0, 0)"==o&&(o="#fff"),l.style.setProperty("--arrow-background",o),n.style.background=o;{let n=t-22,r=_findFirstParentWithFilter(e,(e=>"P"==e.tagName));r=r||document.body;let i=r.getBoundingClientRect().width,o=_findFirstParentWithFilter(r,(e=>"nutshell-bubble-overflow-section"==e.className));if(o){n+=(o.getBoundingClientRect().width-i)/2-3}n<33&&(n=33),n>i-33&&(n=i-33),l.style.left=n+"px"}let s=document.createElement("div");s.className="nutshell-bubble-overflow",s.setAttribute("mode","opening"),s.style.height="0px",n.appendChild(s);let c=document.createElement("div");c.className="nutshell-bubble-overflow-embed-button",c.innerHTML=`'s margins */\n }\n .nutshell-bubble-overflow-section > div{\n margin: 1em 0; /* if you people forgot to put your text in
's -_- */\n }\n .nutshell-bubble-overflow-section img{\n max-width:100%; /* so it fits */\n }\n .nutshell-bubble-overflow-section video{\n max-width:100%; /* so it fits */\n }\n /* Total hack for nice styling */\n .nutshell-bubble-overflow-section img[data-float=left]{\n float: left;\n margin: 1em;\n }\n .nutshell-bubble-overflow-section img[data-float=right]{\n float: right;\n margin: 1em;\n }\n .nutshell-bubble-overflow-section iframe{\n max-width:100%; /* so it fits */\n border: 1px solid rgba(0,0,0,0.2);\n }\n .nutshell-bubble-overflow-section .nutshell-bubble{\n /* So that recursive bubbles don't get squashed too quickly */\n width: calc(100% + 2em - 6px); /* undo section's padding, minus a gap */\n position: relative;\n right: calc(1em - 2px);\n }\n\n /* From */\n .nutshell-bubble-from{\n font-size: 0.69em;\n /* line-height: 0.69em; */\n margin-bottom: -0.69em;\n opacity: 0.69;\n }\n\n /* Foot: is a close button, too. */\n .nutshell-bubble-overflow-close{\n\n /* A × sign */\n font-family: inherit;\n font-size: 1rem;\n text-align: center;\n\n /* Whole-width bottom */\n position:absolute;\n width:100%;\n bottom:0;\n border: 0;\n background: none;\n\n /* A button that gets darker. */\n cursor:pointer;\n opacity: 0.33;\n transition: opacity 0.1s ease-in-out;\n\n }\n .nutshell-bubble-overflow-close:hover{\n background: none;\n opacity:1;\n }\n\n /* Misc styling for bubbles. I am a busybody. */\n .nutshell-bubble li{\n margin-bottom: 0.5em;\n }\n .nutshell-bubble code{\n background: #ddd;\n border-radius: 5px;\n /*font-weight:100;*/\n padding: 0 5px;\n }\n .nutshell-bubble blockquote{\n /*background: #eee;*/\n margin-left: 0px;\n margin-right: 0px;\n border-left: 0.5em solid #eee;\n padding: 1px 1em 1px 1.5em;\n margin-top: 0;\n }\n\n /***************************************************\n EMBED MODAL\n ***************************************************/\n\n .nutshell-embed-modal{\n\n /* TAKE UP WHOLE SCREEN */\n position: fixed;\n z-index: 99999;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n\n /* Animate by fade in */\n transition: opacity 0.3s ease-in-out;\n opacity: 1;\n }\n .nutshell-embed-modal[mode=shown]{ opacity:1; }\n .nutshell-embed-modal[mode=hidden]{ opacity:0; }\n\n /* Background is a big transparent black */\n #nutshell-embed-modal-bg{\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background: rgba(0,0,0,0.5);\n }\n\n /* Bubble is a big white rounded rect */\n #nutshell-embed-modal-bubble{\n\n /* In the middle */\n position: absolute;\n margin: auto;\n top: 0; left: 0; right: 0; bottom: 0;\n width: 600px;\n height: fit-content;\n\n /* Color & font */\n background: #fff;\n color: #000;\n border-radius: 30px;\n font-size: 20px;\n line-height: 1.5em;\n\n /* Animate by slide up */\n transition: top 0.3s ease-in-out;\n }\n #nutshell-embed-modal-bubble a{\n color: #000;\n }\n\n .nutshell-embed-modal[mode=shown] #nutshell-embed-modal-bubble{ top:0; }\n .nutshell-embed-modal[mode=hidden] #nutshell-embed-modal-bubble{ top:100px; }\n\n /* Close button */\n #nutshell-embed-modal-close{\n\n /* Top right button */\n z-index: 999;\n position: absolute;\n top: 5px; right: 10px;\n cursor: pointer;\n\n /* Just a times sign */\n font-size: 40px;\n /*font-weight: 100;*/\n height: 40px;\n\n /* Anim */\n opacity: 0.25;\n transition: opacity 0.1s ease-in-out;\n\n }\n #nutshell-embed-modal-close:hover{\n opacity:1;\n }\n\n /* Can scroll inside! */\n #nutshell-embed-modal-overflow{\n overflow-x: visible;\n // overflow-y: scroll;\n padding: 15px 30px;\n width: calc(100% - 60px);\n height: calc(100% - 30px);\n }\n\n /* The \"inputs\" in the modal should look code-like */\n #nutshell-embed-modal-bubble input{\n width: 100%;\n font-size: 14px;\n font-family: monospace;\n }\n\n /* Learn More */\n // #nutshell-embed-p4{\n // font-size: 0.7em;\n // line-height: 0em;\n // text-align: center;\n // margin-top: 3em;\n // }\n\n /***************************************************\n CLOSE ALL NUTSHELLS\n ***************************************************/\n\n #nutshell-close-all{\n\n /* Top-right */\n position: fixed;\n top: 0; right: 0;\n\n /* Fades in & out */\n transition: opacity 0.9s ease-in-out;\n opacity: 0;\n text-align: right;\n cursor: pointer;\n\n /* Little text */\n font-size: 0.7em;\n line-height: 1.2em;\n\n /* Rounded corner */\n /*background: inherit;*/\n background: #fff;\n padding: 0.7em;\n border-radius: 0 0 0 1em;\n\n }\n #nutshell-close-all[show=yes]{\n opacity:1;\n }\n #nutshell-close-all[show=no]{\n opacity:0;\n }\n\n ",Nutshell.firefoxStyle="\n /* Ball animation! Depends on open/closed, hover */\n .nutshell-expandable[mode=closed] .nutshell-ball-up{ top:0.2em; }\n .nutshell-expandable[mode=closed] .nutshell-ball-down{ top:0.5em; }\n .nutshell-expandable[mode=closed]:hover .nutshell-ball-up{ top:0.0em; }\n .nutshell-expandable[mode=closed]:hover .nutshell-ball-down{ top:0.7em; }\n .nutshell-expandable[mode=open] .nutshell-ball-up{ top:0.2em; }\n .nutshell-expandable[mode=open] .nutshell-ball-down{ top:0.5em; }\n .nutshell-expandable[mode=open]:hover .nutshell-ball-up{ top:0.35em; }\n .nutshell-expandable[mode=open]:hover .nutshell-ball-down{ top:0.35em; }\n ",Nutshell.addStyles=()=>{let e;navigator.userAgent.indexOf("Firefox")>0&&(e=document.createElement("style"),e.innerHTML=Nutshell.firefoxStyle,document.head.prepend(e)),e=document.createElement("style"),e.innerHTML=Nutshell.defaultStyle,document.head.prepend(e)},function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).DOMPurify=t()}(this,(function(){"use strict";function e(t){return(e="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})(t)}function t(e,n){return(t=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,n)}function n(e,r,i){return(n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}()?Reflect.construct:function(e,n,r){var i=[null];i.push.apply(i,n);var l=new(Function.bind.apply(e,i));return r&&t(l,r.prototype),l}).apply(null,arguments)}function r(e){return function(e){if(Array.isArray(e))return i(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return i(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?i(e,t):void 0}}(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 i(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n "+e+"'+(n?e:p(e,!0))+"
\n":"
\n"},n.blockquote=function(e){return""+(n?e:p(e,!0))+"
\n"+e+"
\n"},n.html=function(e){return e},n.heading=function(e,t,n,r){return this.options.headerIds?"
\n":"
\n"},n.list=function(e,t,n){var r=t?"ol":"ul";return"<"+r+(t&&1!==n?' start="'+n+'"':"")+">\n"+e+""+r+">\n"},n.listitem=function(e){return"\n\n"+e+"\n"+(t=t&&""+t+"")+"
\n"},n.tablerow=function(e){return"\n"+e+" \n"},n.tablecell=function(e,t){var n=t.header?"th":"td";return(t.align?"<"+n+' align="'+t.align+'">':"<"+n+">")+e+""+n+">\n"},n.strong=function(e){return""+e+""},n.em=function(e){return""+e+""},n.codespan=function(e){return""+e+"
"},n.br=function(){return this.options.xhtml?"
":"
"},n.del=function(e){return""+e+""},n.link=function(e,t,n){return null===(e=b(this.options.sanitize,this.options.baseUrl,e))?n:(e='"+n+"")},n.image=function(e,t,n){return null===(e=b(this.options.sanitize,this.options.baseUrl,e))?n:(e='":">"))},n.text=function(e){return e},t}(),M=function(){function e(){}var t=e.prototype;return t.strong=function(e){return e},t.em=function(e){return e},t.codespan=function(e){return e},t.del=function(e){return e},t.html=function(e){return e},t.text=function(e){return e},t.link=function(e,t,n){return""+n},t.image=function(e,t,n){return""+n},t.br=function(){return""},e}(),O=function(){function e(){this.seen={}}var t=e.prototype;return t.serialize=function(e){return e.toLowerCase().trim().replace(/<[!\/a-z].*?>/gi,"").replace(/[\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,./:;<=>?@[\]^`{|}~]/g,"").replace(/\s/g,"-")},t.getNextSafeSlug=function(e,t){var n=e,r=0;if(this.seen.hasOwnProperty(n))for(r=this.seen[e];n=e+"-"+ ++r,this.seen.hasOwnProperty(n););return t||(this.seen[e]=r,this.seen[n]=0),n},t.slug=function(e,t){return void 0===t&&(t={}),e=this.serialize(e),this.getNextSafeSlug(e,t.dryrun)},e}(),P=function(){function t(t){this.options=t||e.defaults,this.options.renderer=this.options.renderer||new R,this.renderer=this.options.renderer,this.renderer.options=this.options,this.textRenderer=new M,this.slugger=new O}t.parse=function(e,n){return new t(n).parse(e)},t.parseInline=function(e,n){return new t(n).parseInline(e)};var n=t.prototype;return n.parse=function(e,t){void 0===t&&(t=!0);for(var n,r,i,l,o,u,a,s,c,p,h,D,m,f,g,b,k="",A=e.length,E=0;EAn error occurred:
"+p(e.message+"",!0)+"";throw e}}H.options=H.setOptions=function(t){return y(H.defaults,t),t=H.defaults,e.defaults=t,H},H.getDefaults=i,H.defaults=e.defaults,H.use=function(){for(var e=arguments.length,t=new Array(e),n=0;n
"+p(e.message+"",!0)+"";throw e}},H.Parser=P,H.parser=P.parse,H.Renderer=R,H.TextRenderer=M,H.Lexer=z,H.lexer=z.lex,H.Tokenizer=N,H.Slugger=O;C=(H.parse=H).options;var U=H.setOptions,j=H.use,q=H.walkTokens,Q=H.parseInline,K=H,G=P.parse,V=z.lex;e.Lexer=z,e.Parser=P,e.Renderer=R,e.Slugger=O,e.TextRenderer=M,e.Tokenizer=N,e.getDefaults=i,e.lexer=V,e.marked=H,e.options=C,e.parse=K,e.parseInline=Q,e.parser=G,e.setOptions=U,e.use=j,e.walkTokens=q,Object.defineProperty(e,"__esModule",{value:!0})}))