diff --git "a/dist/distill.bundle.js" "b/dist/distill.bundle.js" --- "a/dist/distill.bundle.js" +++ "b/dist/distill.bundle.js" @@ -1,2 +1,2 @@ -(()=>{var n={265:(n,t,e)=>{var i,r;function o(n){var t="function"==typeof Map?new Map:void 0;return o=function(n){if(null===n||!function(n){try{return-1!==Function.toString.call(n).indexOf("[native code]")}catch(t){return"function"==typeof n}}(n))return n;if("function"!=typeof n)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(n))return t.get(n);t.set(n,e)}function e(){return function(n,t,e){if(l())return Reflect.construct.apply(null,arguments);var i=[null];i.push.apply(i,t);var r=new(n.bind.apply(n,i));return e&&h(r,e.prototype),r}(n,arguments,c(this).constructor)}return e.prototype=Object.create(n.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),h(e,n)},o(n)}function a(n,t){var e="undefined"!=typeof Symbol&&n[Symbol.iterator]||n["@@iterator"];if(!e){if(Array.isArray(n)||(e=v(n))||t&&n&&"number"==typeof n.length){e&&(n=e);var i=0,r=function(){};return{s:r,n:function(){return i>=n.length?{done:!0}:{done:!1,value:n[i++]}},e:function(n){throw n},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,s=!1;return{s:function(){e=e.call(n)},n:function(){var n=e.next();return a=n.done,n},e:function(n){s=!0,o=n},f:function(){try{a||null==e.return||e.return()}finally{if(s)throw o}}}}function s(n,t,e){return t=c(t),function(n,t){if(t&&("object"==p(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(n){if(void 0===n)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return n}(n)}(n,l()?Reflect.construct(t,e||[],c(n).constructor):t.apply(n,e))}function l(){try{var n=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(n){}return(l=function(){return!!n})()}function u(){return u="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(n,t,e){var i=function(n,t){for(;!{}.hasOwnProperty.call(n,t)&&null!==(n=c(n)););return n}(n,t);if(i){var r=Object.getOwnPropertyDescriptor(i,t);return r.get?r.get.call(arguments.length<3?n:e):r.value}},u.apply(null,arguments)}function c(n){return c=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},c(n)}function d(n,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");n.prototype=Object.create(t&&t.prototype,{constructor:{value:n,writable:!0,configurable:!0}}),Object.defineProperty(n,"prototype",{writable:!1}),t&&h(n,t)}function h(n,t){return h=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(n,t){return n.__proto__=t,n},h(n,t)}function p(n){return p="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(n){return typeof n}:function(n){return n&&"function"==typeof Symbol&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},p(n)}function f(n,t){if(!(n instanceof t))throw new TypeError("Cannot call a class as a function")}function g(n,t){for(var e=0;en.length)&&(t=n.length);for(var e=0,i=Array(t);e2?this.authors[0].lastName+", et al.":2===this.authors.length?this.authors[0].lastName+" & "+this.authors[1].lastName:1===this.authors.length?this.authors[0].lastName:void 0}},{key:"bibtexAuthors",get:function(){return this.authors.map((function(n){return n.lastName+", "+n.firstName})).join(" and ")}},{key:"slug",get:function(){var n="";return this.authors.length&&(n+=this.authors[0].lastName.toLowerCase(),n+=this.publishedYear,n+=this.title.split(" ")[0].toLowerCase()),n||"Untitled"}},{key:"bibliographyEntries",get:function(){var n=this;return new Map(this.citations.map((function(t){return[t,n.bibliography.get(t)]})))}},{key:"bibliography",get:function(){return this._bibliography},set:function(n){n instanceof Map?this._bibliography=n:"object"===p(n)&&(this._bibliography=function(n){var t=new Map;for(var e in n)n.hasOwnProperty(e)&&t.set(e,n[e]);return t}(n))}},{key:"assignToObject",value:function(n){Object.assign(n,this),n.bibliography=function(n){return Array.from(n).reduce((function(n,t){var e,i,r,o=y(t,2),a=o[0],s=o[1];return Object.assign(n,(e={},r=s,(i=b(i=a))in e?Object.defineProperty(e,i,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[i]=r,e))}),{})}(this.bibliographyEntries),n.url=this.url,n.doi=this.doi,n.githubUrl=this.githubUrl,n.previewURL=this.previewURL,this.publishedDate&&(n.volume=this.volume,n.issue=this.issue,n.publishedDateRFC=this.publishedDateRFC,n.publishedYear=this.publishedYear,n.publishedMonth=this.publishedMonth,n.publishedDay=this.publishedDay,n.publishedMonthPadded=this.publishedMonthPadded,n.publishedDayPadded=this.publishedDayPadded),this.updatedDate&&(n.updatedDateRFC=this.updatedDateRFC),n.concatenatedAuthors=this.concatenatedAuthors,n.bibtexAuthors=this.bibtexAuthors,n.slug=this.slug}}],[{key:"fromObject",value:function(t){var e=new n;return Object.assign(e,t),e}}])}(),g=function(n){return function(n){function t(){var n;f(this,t),n=s(this,t);var e={childList:!0,characterData:!0,subtree:!0},i=new MutationObserver((function(){i.disconnect(),n.renderIfPossible(),i.observe(n,e)}));return i.observe(n,e),n}return d(t,n),m(t,[{key:"connectedCallback",value:function(){u(c(t.prototype),"connectedCallback",this).call(this),this.renderIfPossible()}},{key:"renderIfPossible",value:function(){this.textContent&&this.root&&this.renderContent()}},{key:"renderContent",value:function(){console.error("Your class ".concat(this.constructor.name," must provide a custom renderContent() method!"))}}])}(n)},x=function(n,t){var e=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];return function(i){var r=document.createElement("template");return r.innerHTML=t,e&&"ShadyCSS"in window&&ShadyCSS.prepareTemplate(r,n),function(t){function i(){var n;return f(this,i),(n=s(this,i)).clone=document.importNode(r.content,!0),e&&(n.attachShadow({mode:"open"}),n.shadowRoot.appendChild(n.clone)),n}return d(i,t),m(i,[{key:"connectedCallback",value:function(){this.hasAttribute("distill-prerendered")||(e?"ShadyCSS"in window&&ShadyCSS.styleElement(this):this.insertBefore(this.clone,this.firstChild))}},{key:"root",get:function(){return e?this.shadowRoot:this}},{key:"$",value:function(n){return this.root.querySelector(n)}},{key:"$$",value:function(n){return this.root.querySelectorAll(n)}}],[{key:"is",get:function(){return n}}])}(i)}},k='/*\n * Copyright 2018 The Distill Template Authors\n *\n * Licensed under the Apache License, Version 2.0 (the "License");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an "AS IS" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nspan.katex-display {\n text-align: left;\n padding: 8px 0 8px 0;\n margin: 0.5em 0 0.5em 1em;\n}\n\nspan.katex {\n -webkit-font-smoothing: antialiased;\n color: rgba(0, 0, 0, 0.8);\n font-size: 1.18em;\n}\n',S=function(n,t,e){for(var i=e,r=0,o=n.length;i',N=function(n){function t(){return f(this,t),s(this,t,arguments)}return d(t,n),m(t,[{key:"options",get:function(){var n={displayMode:this.hasAttribute("block")};return Object.assign(n,t.katexOptions)}},{key:"connectedCallback",value:function(){u(c(t.prototype),"connectedCallback",this).call(this),t.katexAdded||t.addKatex()}},{key:"renderContent",value:function(){if("undefined"!=typeof katex){var n=this.root.querySelector("#katex-container");katex.render(this.textContent,n,this.options)}}}],[{key:"katexOptions",get:function(){return t._katexOptions||(t._katexOptions={delimiters:[{left:"$$",right:"$$",display:!1}]}),t._katexOptions},set:function(n){t._katexOptions=n,t.katexOptions.delimiters&&(t.katexAdded?t.katexLoadedCallback():t.addKatex())}},{key:"katexLoadedCallback",value:function(){var n,e=a(document.querySelectorAll("d-math"));try{for(e.s();!(n=e.n()).done;)n.value.renderContent()}catch(n){e.e(n)}finally{e.f()}t.katexOptions.delimiters&&E(document.body,t.katexOptions)}},{key:"addKatex",value:function(){document.head.insertAdjacentHTML("beforeend",C);var n=document.createElement("script");n.src="https://distill.pub/third-party/katex/katex.min.js",n.async=!0,n.onload=t.katexLoadedCallback,n.crossorigin="anonymous",document.head.appendChild(n),t.katexAdded=!0}}])}(g(x("d-math","\n".concat(C,"\n\n\n"))(HTMLElement)));function L(){var n,t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:document,i=new Set,r=a(e.querySelectorAll("d-cite"));try{for(r.s();!(n=r.n()).done;){var o,s=n.value,l=a((s.getAttribute("key")||s.getAttribute("bibtex-key")).split(",").map((function(n){return n.trim()})));try{for(l.s();!(o=l.n()).done;){var u=o.value;i.add(u)}}catch(n){l.e(n)}finally{l.f()}}}catch(n){r.e(n)}finally{r.f()}return function(n){if(Array.isArray(n))return w(n)}(t=i)||function(n){if("undefined"!=typeof Symbol&&null!=n[Symbol.iterator]||null!=n["@@iterator"])return Array.from(n)}(t)||v(t)||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 O(n,t,e,i){if(null==n.author)return"";var r=n.author.split(" and "),o=r.map((function(n){if(-1!=(n=n.trim()).indexOf(","))var e=n.split(",")[0].trim(),i=n.split(",")[1];else-1!=n.indexOf(" ")?(e=n.split(" ").slice(-1)[0].trim(),i=n.split(" ").slice(0,-1).join(" ")):e=n.trim();var r="";return null!=i&&(r=(r=i.trim().split(" ").map((function(n){return n.trim()[0]}))).join(".")+"."),t.replace("${F}",i).replace("${L}",e).replace("${I}",r).trim()}));return r.length>1?o.slice(0,r.length-1).join(e)+((i||e)+o[r.length-1]):o[0]}function D(n){var t=n.journal||n.booktitle||"";if("volume"in n){var e=n.issue||n.number;e=null!=e?"("+e+")":"",t+=", Vol "+n.volume+e}return"pages"in n&&(t+=", pp. "+n.pages),""!=t&&(t+=". "),"publisher"in n&&"."!=(t+=n.publisher)[t.length-1]&&(t+="."),t}function I(n){if("url"in n){var t=n.url,e=/arxiv\.org\/abs\/([0-9\.]*)/.exec(t);if(null!=e&&(t="http://arxiv.org/pdf/".concat(e[1],".pdf")),".pdf"==t.slice(-4))var i="PDF";else".html"==t.slice(-5)&&(i="HTML");return'  [').concat(i||"link","]")}return""}function R(n,t){return"doi"in n?"".concat(t?"
":"",' DOI: ').concat(n.doi,""):""}function F(n,t){if(n){var e=function(n){return''+n.title+" "}(n);return e+=I(n)+"
",n.author&&(e+=O(n,"${L}, ${I}",", "," and "),(n.year||n.date)&&(e+=", ")),n.year||n.date?e+=(n.year||n.date)+". ":e+=". ",(e+=D(n))+R(n)}return"?"}function U(n){if(n){var t="";t+=""+n.title+"",t+=I(n),t+="
";var e=O(n,"${I} ${L}",", ")+".",i=D(n).trim()+" "+n.year+". "+R(n,!0);return(e+i).length"+i,t}return"?"}function P(){return-1!==["interactive","complete"].indexOf(document.readyState)}function H(n){var t=n.firstElementChild;if(t){if("json"==t.getAttribute("type").split("/")[1]){var e=t.textContent;return function(n){var t,e=a(n.authors);try{for(e.s();!(t=e.n()).done;){var i=t.value,r=Boolean(i.affiliation),o=Boolean(i.affiliations);if(r)if(o)console.warn("Author ".concat(i.author,' has both old-style ("affiliation" & "affiliationURL") and new style ("affiliations") affiliation information!'));else{var s={name:i.affiliation};i.affiliationURL&&(s.url=i.affiliationURL),i.affiliations=[s]}}}catch(n){e.e(n)}finally{e.f()}return n}(JSON.parse(e))}console.error("Distill only supports JSON frontmatter tags anymore; no more YAML.")}else console.error("You added a frontmatter tag but did not provide a script tag with front matter data in it. Please take a look at our templates.");return{}}N.katexAdded=!1,N.inlineMathRendered=!1,window.DMath=N;var j=function(n){function t(){var n;f(this,t),n=s(this,t);return new MutationObserver((function(t){var e,i=a(t);try{for(i.s();!(e=i.n()).done;){var r=e.value;if("SCRIPT"===r.target.nodeName||"characterData"===r.type){var o=H(n);n.notify(o)}}}catch(n){i.e(n)}finally{i.f()}})).observe(n,{childList:!0,characterData:!0,subtree:!0}),n}return d(t,n),m(t,[{key:"notify",value:function(n){var t=new CustomEvent("onFrontMatterChanged",{detail:n,bubbles:!0});document.dispatchEvent(t)}}],[{key:"is",get:function(){return"d-front-matter"}}])}(o(HTMLElement));var z=new h,$={frontMatter:z,waitingOn:{bibliography:[],citations:[]},listeners:{onCiteKeyCreated:function(n){var t=y(n.detail,2),e=t[0],i=t[1];if(z.citationsCollected)if(z.bibliographyParsed){var r=i.map((function(n){return z.citations.indexOf(n)}));e.numbers=r;var o=i.map((function(n){return z.bibliography.get(n)}));e.entries=o}else $.waitingOn.bibliography.push((function(){return $.listeners.onCiteKeyCreated(n)}));else $.waitingOn.citations.push((function(){return $.listeners.onCiteKeyCreated(n)}))},onCiteKeyChanged:function(){z.citations=L(),z.citationsCollected=!0;var n,t=a($.waitingOn.citations.slice());try{for(t.s();!(n=t.n()).done;)(0,n.value)()}catch(n){t.e(n)}finally{t.f()}var e=document.querySelector("d-citation-list"),i=new Map(z.citations.map((function(n){return[n,z.bibliography.get(n)]})));e.citations=i;var r,o=a(document.querySelectorAll("d-cite"));try{for(o.s();!(r=o.n()).done;){var s=r.value;console.log(s);var l=s.keys,u=l.map((function(n){return z.citations.indexOf(n)}));s.numbers=u;var c=l.map((function(n){return z.bibliography.get(n)}));s.entries=c}}catch(n){o.e(n)}finally{o.f()}},onCiteKeyRemoved:function(n){$.listeners.onCiteKeyChanged(n)},onBibliographyChanged:function(n){var t=document.querySelector("d-citation-list"),e=n.detail;z.bibliography=e,z.bibliographyParsed=!0;var i,r=a($.waitingOn.bibliography.slice());try{for(r.s();!(i=r.n()).done;)(0,i.value)()}catch(n){r.e(n)}finally{r.f()}if(z.citationsCollected)if(t.hasAttribute("distill-prerendered"))console.debug("Citation list was prerendered; not updating it.");else{var o=new Map(z.citations.map((function(n){return[n,z.bibliography.get(n)]})));t.citations=o}else $.waitingOn.citations.push((function(){$.listeners.onBibliographyChanged({target:n.target,detail:n.detail})}))},onFootnoteChanged:function(){var n=document.querySelector("d-footnote-list");if(n){var t=document.querySelectorAll("d-footnote");n.footnotes=t}},onFrontMatterChanged:function(n){var t,e,i=n.detail;e=i,(t=z).title=e.title,e.published&&(e.published instanceof Date?t.publishedDate=e.published:e.published.constructor===String&&(t.publishedDate=new Date(e.published))),e.publishedDate&&(e.publishedDate instanceof Date?t.publishedDate=e.publishedDate:e.publishedDate.constructor===String?t.publishedDate=new Date(e.publishedDate):console.error("Don't know what to do with published date: "+e.publishedDate)),t.description=e.description,t.authors=e.authors.map((function(n){return new l(n)})),t.katex=e.katex,t.password=e.password,e.doi&&(t.doi=e.doi);var r=document.querySelector("d-interstitial");if(r&&(void 0!==z.password?r.password=z.password:r.parentElement.removeChild(r)),!document.body.hasAttribute("distill-prerendered")&&P()){!function(n,t){var e=n.body,i=e.querySelector("d-article");if(i){var r=n.querySelector("d-byline");r||(t.authors?(r=n.createElement("d-byline"),e.insertBefore(r,i)):console.warn("No authors found in front matter; please add them before submission!"));var o=n.querySelector("d-title");o||(o=n.createElement("d-title"),e.insertBefore(o,r));var a=o.querySelector("h1");a||((a=n.createElement("h1")).textContent=t.title,o.insertBefore(a,o.firstChild));var s=void 0!==t.password,l=e.querySelector("d-interstitial");if(s&&!l){var u="undefined"!=typeof window,c=u&&window.location.hostname.includes("localhost");u&&c||((l=n.createElement("d-interstitial")).password=t.password,e.insertBefore(l,e.firstChild))}else!s&&l&&l.parentElement.removeChild(this);var d=n.querySelector("d-appendix");d||(d=n.createElement("d-appendix"),n.body.appendChild(d));var h=n.querySelector("d-footnote-list");h||(h=n.createElement("d-footnote-list"),d.appendChild(h));var p=n.querySelector("d-citation-list");p||(p=n.createElement("d-citation-list"),d.appendChild(p))}else console.warn("No d-article tag found; skipping adding optional components!")}(document,z);var o=document.querySelector("distill-appendix");o&&(o.frontMatter=z);var a=document.querySelector("d-byline");a&&(a.frontMatter=z),i.katex&&(N.katexOptions=i.katex)}},DOMContentLoaded:function(){if($.loaded)console.warn("Controller received DOMContentLoaded but was already loaded!");else if(P()){$.loaded=!0,console.debug("Runlevel 4: Controller running DOMContentLoaded");var n=document.querySelector("d-front-matter");if(n){var t=H(n);$.listeners.onFrontMatterChanged({detail:t})}z.citations=L(),z.citationsCollected=!0;var e,i=a($.waitingOn.citations.slice());try{for(i.s();!(e=i.n()).done;)(0,e.value)()}catch(n){i.e(n)}finally{i.f()}if(z.bibliographyParsed){var r,o=a($.waitingOn.bibliography.slice());try{for(o.s();!(r=o.n()).done;)(0,r.value)()}catch(n){o.e(n)}finally{o.f()}}var s=document.querySelector("d-footnote-list");if(s){var l=document.querySelectorAll("d-footnote");s.footnotes=l}}else console.warn("Controller received DOMContentLoaded at document.readyState: "+document.readyState+"!")}}},q='/*\n * Copyright 2018 The Distill Template Authors\n *\n * Licensed under the Apache License, Version 2.0 (the "License");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an "AS IS" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nhtml {\n font-size: 14px;\n\tline-height: 1.6em;\n /* font-family: "Libre Franklin", "Helvetica Neue", sans-serif; */\n font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", Arial, sans-serif;\n /*, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";*/\n text-size-adjust: 100%;\n -ms-text-size-adjust: 100%;\n -webkit-text-size-adjust: 100%;\n}\n\n@media(min-width: 768px) {\n html {\n font-size: 16px;\n }\n}\n\nbody {\n margin: 0;\n}\n\na {\n color: #004276;\n}\n\nfigure {\n margin: 0;\n}\n\ntable {\n\tborder-collapse: collapse;\n\tborder-spacing: 0;\n}\n\ntable th {\n\ttext-align: left;\n}\n\ntable thead {\n border-bottom: 1px solid rgba(0, 0, 0, 0.05);\n}\n\ntable thead th {\n padding-bottom: 0.5em;\n}\n\ntable tbody :first-child td {\n padding-top: 0.5em;\n}\n\npre {\n overflow: auto;\n max-width: 100%;\n}\n\np {\n margin-top: 0;\n margin-bottom: 1em;\n}\n\nsup, sub {\n vertical-align: baseline;\n position: relative;\n top: -0.4em;\n line-height: 1em;\n}\n\nsub {\n top: 0.4em;\n}\n\n.kicker,\n.marker {\n font-size: 15px;\n font-weight: 600;\n color: rgba(0, 0, 0, 0.5);\n}\n\n\n/* Headline */\n\n@media(min-width: 1024px) {\n d-title h1 span {\n display: block;\n }\n}\n\n/* Figure */\n\nfigure {\n position: relative;\n margin-bottom: 2.5em;\n margin-top: 1.5em;\n}\n\nfigcaption+figure {\n\n}\n\nfigure img {\n width: 100%;\n}\n\nfigure svg text,\nfigure svg tspan {\n}\n\nfigcaption,\n.figcaption {\n color: rgba(0, 0, 0, 0.6);\n font-size: 12px;\n line-height: 1.5em;\n}\n\n@media(min-width: 1024px) {\nfigcaption,\n.figcaption {\n font-size: 13px;\n }\n}\n\nfigure.external img {\n background: white;\n border: 1px solid rgba(0, 0, 0, 0.1);\n box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1);\n padding: 18px;\n box-sizing: border-box;\n}\n\nfigcaption a {\n color: rgba(0, 0, 0, 0.6);\n}\n\nfigcaption b,\nfigcaption strong, {\n font-weight: 600;\n color: rgba(0, 0, 0, 1.0);\n}\n/*\n * Copyright 2018 The Distill Template Authors\n *\n * Licensed under the Apache License, Version 2.0 (the "License");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an "AS IS" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n@supports not (display: grid) {\n .base-grid,\n distill-header,\n d-title,\n d-abstract,\n d-article,\n d-appendix,\n distill-appendix,\n d-byline,\n d-footnote-list,\n d-citation-list,\n distill-footer {\n display: block;\n padding: 8px;\n }\n}\n\n.base-grid,\ndistill-header,\nd-title,\nd-abstract,\nd-article,\nd-appendix,\ndistill-appendix,\nd-byline,\nd-footnote-list,\nd-citation-list,\ndistill-footer {\n display: grid;\n justify-items: stretch;\n grid-template-columns: [screen-start] 8px [page-start kicker-start text-start gutter-start middle-start] 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr [text-end page-end gutter-end kicker-end middle-end] 8px [screen-end];\n grid-column-gap: 8px;\n}\n\n.grid {\n display: grid;\n grid-column-gap: 8px;\n}\n\n@media(min-width: 768px) {\n .base-grid,\n distill-header,\n d-title,\n d-abstract,\n d-article,\n d-appendix,\n distill-appendix,\n d-byline,\n d-footnote-list,\n d-citation-list,\n distill-footer {\n grid-template-columns: [screen-start] 1fr [page-start kicker-start middle-start text-start] 45px 45px 45px 45px 45px 45px 45px 45px [ kicker-end text-end gutter-start] 45px [middle-end] 45px [page-end gutter-end] 1fr [screen-end];\n grid-column-gap: 16px;\n }\n\n .grid {\n grid-column-gap: 16px;\n }\n}\n\n@media(min-width: 1000px) {\n .base-grid,\n distill-header,\n d-title,\n d-abstract,\n d-article,\n d-appendix,\n distill-appendix,\n d-byline,\n d-footnote-list,\n d-citation-list,\n distill-footer {\n grid-template-columns: [screen-start] 1fr [page-start kicker-start] 50px [middle-start] 50px [text-start kicker-end] 50px 50px 50px 50px 50px 50px 50px 50px [text-end gutter-start] 50px [middle-end] 50px [page-end gutter-end] 1fr [screen-end];\n grid-column-gap: 16px;\n }\n\n .grid {\n grid-column-gap: 16px;\n }\n}\n\n@media(min-width: 1180px) {\n .base-grid,\n distill-header,\n d-title,\n d-abstract,\n d-article,\n d-appendix,\n distill-appendix,\n d-byline,\n d-footnote-list,\n d-citation-list,\n distill-footer {\n grid-template-columns: [screen-start] 1fr [page-start kicker-start] 60px [middle-start] 60px [text-start kicker-end] 60px 60px 60px 60px 60px 60px 60px 60px [text-end gutter-start] 60px [middle-end] 60px [page-end gutter-end] 1fr [screen-end];\n grid-column-gap: 32px;\n }\n\n .grid {\n grid-column-gap: 32px;\n }\n}\n\n\n\n\n.base-grid {\n grid-column: screen;\n}\n\n/* .l-body,\nd-article > * {\n grid-column: text;\n}\n\n.l-page,\nd-title > *,\nd-figure {\n grid-column: page;\n} */\n\n.l-gutter {\n grid-column: gutter;\n}\n\n.l-text,\n.l-body {\n grid-column: text;\n}\n\n.l-page {\n grid-column: page;\n}\n\n.l-body-outset {\n grid-column: middle;\n}\n\n.l-page-outset {\n grid-column: page;\n}\n\n.l-screen {\n grid-column: screen;\n}\n\n.l-screen-inset {\n grid-column: screen;\n padding-left: 16px;\n padding-left: 16px;\n}\n\n\n/* Aside */\n\nd-article aside {\n grid-column: gutter;\n font-size: 12px;\n line-height: 1.6em;\n color: rgba(0, 0, 0, 0.6)\n}\n\n@media(min-width: 768px) {\n aside {\n grid-column: gutter;\n }\n\n .side {\n grid-column: gutter;\n }\n}\n/*\n * Copyright 2018 The Distill Template Authors\n *\n * Licensed under the Apache License, Version 2.0 (the "License");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an "AS IS" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nd-title {\n padding: 2rem 0 1.5rem;\n contain: layout style;\n overflow-x: hidden;\n}\n\n@media(min-width: 768px) {\n d-title {\n padding: 4rem 0 1.5rem;\n }\n}\n\nd-title h1 {\n grid-column: text;\n font-size: 40px;\n font-weight: 700;\n line-height: 1.1em;\n margin: 0 0 0.5rem;\n}\n\n@media(min-width: 768px) {\n d-title h1 {\n font-size: 50px;\n }\n}\n\nd-title p {\n font-weight: 300;\n font-size: 1.2rem;\n line-height: 1.55em;\n grid-column: text;\n}\n\nd-title .status {\n margin-top: 0px;\n font-size: 12px;\n color: #009688;\n opacity: 0.8;\n grid-column: kicker;\n}\n\nd-title .status span {\n line-height: 1;\n display: inline-block;\n padding: 6px 0;\n border-bottom: 1px solid #80cbc4;\n font-size: 11px;\n text-transform: uppercase;\n}\n/*\n * Copyright 2018 The Distill Template Authors\n *\n * Licensed under the Apache License, Version 2.0 (the "License");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an "AS IS" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nd-byline {\n contain: style;\n overflow: hidden;\n border-top: 1px solid rgba(0, 0, 0, 0.1);\n font-size: 0.8rem;\n line-height: 1.8em;\n padding: 1.5rem 0;\n min-height: 1.8em;\n}\n\n\nd-byline .byline {\n grid-template-columns: 1fr 1fr;\n grid-column: text;\n}\n\n@media(min-width: 768px) {\n d-byline .byline {\n grid-template-columns: 1fr 1fr 1fr 1fr;\n }\n}\n\nd-byline .authors-affiliations {\n grid-column-end: span 2;\n grid-template-columns: 1fr 1fr;\n margin-bottom: 1em;\n}\n\n@media(min-width: 768px) {\n d-byline .authors-affiliations {\n margin-bottom: 0;\n }\n}\n\nd-byline h3 {\n font-size: 0.6rem;\n font-weight: 400;\n color: rgba(0, 0, 0, 0.5);\n margin: 0;\n text-transform: uppercase;\n}\n\nd-byline p {\n margin: 0;\n}\n\nd-byline a,\nd-article d-byline a {\n color: rgba(0, 0, 0, 0.8);\n text-decoration: none;\n border-bottom: none;\n}\n\nd-article d-byline a:hover {\n text-decoration: underline;\n border-bottom: none;\n}\n\nd-byline p.author {\n font-weight: 500;\n}\n\nd-byline .affiliations {\n\n}\n/*\n * Copyright 2018 The Distill Template Authors\n *\n * Licensed under the Apache License, Version 2.0 (the "License");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an "AS IS" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nd-article {\n contain: layout style;\n overflow-x: hidden;\n border-top: 1px solid rgba(0, 0, 0, 0.1);\n padding-top: 2rem;\n color: rgba(0, 0, 0, 0.8);\n}\n\nd-article > * {\n grid-column: text;\n}\n\n@media(min-width: 768px) {\n d-article {\n font-size: 16px;\n }\n}\n\n@media(min-width: 1024px) {\n d-article {\n font-size: 1.06rem;\n line-height: 1.7em;\n }\n}\n\n\n/* H2 */\n\n\nd-article .marker {\n text-decoration: none;\n border: none;\n counter-reset: section;\n grid-column: kicker;\n line-height: 1.7em;\n}\n\nd-article .marker:hover {\n border: none;\n}\n\nd-article .marker span {\n padding: 0 3px 4px;\n border-bottom: 1px solid rgba(0, 0, 0, 0.2);\n position: relative;\n top: 4px;\n}\n\nd-article .marker:hover span {\n color: rgba(0, 0, 0, 0.7);\n border-bottom: 1px solid rgba(0, 0, 0, 0.7);\n}\n\nd-article h2 {\n font-weight: 600;\n font-size: 24px;\n line-height: 1.25em;\n margin: 2rem 0 1.5rem 0;\n border-bottom: 1px solid rgba(0, 0, 0, 0.1);\n padding-bottom: 1rem;\n}\n\n@media(min-width: 1024px) {\n d-article h2 {\n font-size: 36px;\n }\n}\n\n/* H3 */\n\nd-article h3 {\n font-weight: 700;\n font-size: 18px;\n line-height: 1.4em;\n margin-bottom: 1em;\n margin-top: 2em;\n}\n\n@media(min-width: 1024px) {\n d-article h3 {\n font-size: 20px;\n }\n}\n\n/* H4 */\n\nd-article h4 {\n font-weight: 600;\n text-transform: uppercase;\n font-size: 14px;\n line-height: 1.4em;\n}\n\nd-article a {\n color: inherit;\n}\n\nd-article p,\nd-article ul,\nd-article ol,\nd-article blockquote {\n margin-top: 0;\n margin-bottom: 1em;\n margin-left: 0;\n margin-right: 0;\n}\n\nd-article blockquote {\n border-left: 2px solid rgba(0, 0, 0, 0.2);\n padding-left: 2em;\n font-style: italic;\n color: rgba(0, 0, 0, 0.6);\n}\n\nd-article a {\n border-bottom: 1px solid rgba(0, 0, 0, 0.4);\n text-decoration: none;\n}\n\nd-article a:hover {\n border-bottom: 1px solid rgba(0, 0, 0, 0.8);\n}\n\nd-article .link {\n text-decoration: underline;\n cursor: pointer;\n}\n\nd-article ul,\nd-article ol {\n padding-left: 24px;\n}\n\nd-article li {\n margin-bottom: 1em;\n margin-left: 0;\n padding-left: 0;\n}\n\nd-article li:last-child {\n margin-bottom: 0;\n}\n\nd-article pre {\n font-size: 14px;\n margin-bottom: 20px;\n}\n\nd-article hr {\n grid-column: screen;\n width: 100%;\n border: none;\n border-bottom: 1px solid rgba(0, 0, 0, 0.1);\n margin-top: 60px;\n margin-bottom: 60px;\n}\n\nd-article section {\n margin-top: 60px;\n margin-bottom: 60px;\n}\n\nd-article span.equation-mimic {\n font-family: georgia;\n font-size: 115%;\n font-style: italic;\n}\n\nd-article > d-code,\nd-article section > d-code {\n display: block;\n}\n\nd-article > d-math[block],\nd-article section > d-math[block] {\n display: block;\n}\n\n@media (max-width: 768px) {\n d-article > d-code,\n d-article section > d-code,\n d-article > d-math[block],\n d-article section > d-math[block] {\n overflow-x: scroll;\n -ms-overflow-style: none; // IE 10+\n overflow: -moz-scrollbars-none; // Firefox\n }\n\n d-article > d-code::-webkit-scrollbar,\n d-article section > d-code::-webkit-scrollbar,\n d-article > d-math[block]::-webkit-scrollbar,\n d-article section > d-math[block]::-webkit-scrollbar {\n display: none; // Safari and Chrome\n }\n}\n\nd-article .citation {\n color: #668;\n cursor: pointer;\n}\n\nd-include {\n width: auto;\n display: block;\n}\n\nd-figure {\n contain: layout style;\n}\n\n/* KaTeX */\n\n.katex, .katex-prerendered {\n contain: style;\n display: inline-block;\n}\n\n/* Tables */\n\nd-article table {\n border-collapse: collapse;\n margin-bottom: 1.5rem;\n border-bottom: 1px solid rgba(0, 0, 0, 0.2);\n}\n\nd-article table th {\n border-bottom: 1px solid rgba(0, 0, 0, 0.2);\n}\n\nd-article table td {\n border-bottom: 1px solid rgba(0, 0, 0, 0.05);\n}\n\nd-article table tr:last-of-type td {\n border-bottom: none;\n}\n\nd-article table th,\nd-article table td {\n font-size: 15px;\n padding: 2px 8px;\n}\n\nd-article table tbody :first-child td {\n padding-top: 2px;\n}\n'+k+'/*\n * Copyright 2018 The Distill Template Authors\n *\n * Licensed under the Apache License, Version 2.0 (the "License");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an "AS IS" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n@media print {\n\n @page {\n size: 8in 11in;\n @bottom-right {\n content: counter(page) " of " counter(pages);\n }\n }\n\n html {\n /* no general margins -- CSS Grid takes care of those */\n }\n\n p, code {\n page-break-inside: avoid;\n }\n\n h2, h3 {\n page-break-after: avoid;\n }\n\n d-header {\n visibility: hidden;\n }\n\n d-footer {\n display: none!important;\n }\n\n}\n';function B(n,t){console.debug("Runlevel 0: Polyfill required: "+n.name);var e=document.createElement("script");e.src=n.url,e.async=!1,t&&(e.onload=function(){t(n)}),e.onerror=function(){new Error("Runlevel 0: Polyfills failed to load script "+n.name)},document.head.appendChild(e)}var Y=[{name:"WebComponents",support:function(){return"customElements"in window&&"attachShadow"in Element.prototype&&"getRootNode"in Element.prototype&&"content"in document.createElement("template")&&"Promise"in window&&"from"in Array},url:"https://distill.pub/third-party/polyfills/webcomponents-lite.js"},{name:"IntersectionObserver",support:function(){return"IntersectionObserver"in window&&"IntersectionObserverEntry"in window},url:"https://distill.pub/third-party/polyfills/intersection-observer.js"}],W=function(){function n(){f(this,n)}return m(n,null,[{key:"browserSupportsAllFeatures",value:function(){return Y.every((function(n){return n.support()}))}},{key:"load",value:function(t){var e,i=function(e){e.loaded=!0,console.debug("Runlevel 0: Polyfill has finished loading: "+e.name),n.neededPolyfills.every((function(n){return n.loaded}))&&(console.debug("Runlevel 0: All required polyfills have finished loading."),console.debug("Runlevel 0->1."),window.distillRunlevel=1,t())},r=a(n.neededPolyfills);try{for(r.s();!(e=r.n()).done;)B(e.value,i)}catch(n){r.e(n)}finally{r.f()}}},{key:"neededPolyfills",get:function(){return n._neededPolyfills||(n._neededPolyfills=Y.filter((function(n){return!n.support()}))),n._neededPolyfills}}])}();var G=function(n){function t(){return f(this,t),s(this,t,arguments)}return d(t,n),m(t)}(x("d-abstract","\n\n\n\n"))(HTMLElement)),V=function(n){function t(){return f(this,t),s(this,t,arguments)}return d(t,n),m(t)}(x("d-appendix","\n\n\n",!1)(HTMLElement)),K=/^\s*$/,X=function(n){function t(){var n;return f(this,t),n=s(this,t),new MutationObserver((function(n){var t,e=a(n);try{for(e.s();!(t=e.n()).done;){var i,r=a(t.value.addedNodes);try{for(r.s();!(i=r.n()).done;){var o=i.value;if("#text"===o.nodeName){var s=o.nodeValue;if(!K.test(s)){console.warn("Use of unwrapped text in distill articles is discouraged as it breaks layout! Please wrap any text in a or

tag. We found the following text: "+s);var l=document.createElement("span");l.innerHTML=o.nodeValue,o.parentNode.insertBefore(l,o),o.parentNode.removeChild(o)}}}}catch(n){r.e(n)}finally{r.f()}}}catch(n){e.e(n)}finally{e.f()}})).observe(n,{childList:!0}),n}return d(t,n),m(t,null,[{key:"is",get:function(){return"d-article"}}])}(o(HTMLElement)),Z="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:void 0!==e.g?e.g:"undefined"!=typeof self?self:{};function Q(n,t){return n(t={exports:{}},t.exports),t.exports}var J=Q((function(n,t){!function(n){function t(){this.months=["jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec"],this.notKey=[",","{","}"," ","="],this.pos=0,this.input="",this.entries=new Array,this.currentEntry="",this.setInput=function(n){this.input=n},this.getEntries=function(){return this.entries},this.isWhitespace=function(n){return" "==n||"\r"==n||"\t"==n||"\n"==n},this.match=function(n,t){if(null!=t&&null!=t||(t=!0),this.skipWhitespace(t),this.input.substring(this.pos,this.pos+n.length)!=n)throw"Token mismatch, expected "+n+", found "+this.input.substring(this.pos);this.pos+=n.length,this.skipWhitespace(t)},this.tryMatch=function(n,t){return null!=t&&null!=t||(t=!0),this.skipWhitespace(t),this.input.substring(this.pos,this.pos+n.length)==n},this.matchAt=function(){for(;this.input.length>this.pos&&"@"!=this.input[this.pos];)this.pos++;return"@"==this.input[this.pos]},this.skipWhitespace=function(n){for(;this.isWhitespace(this.input[this.pos]);)this.pos++;if("%"==this.input[this.pos]&&1==n){for(;"\n"!=this.input[this.pos];)this.pos++;this.skipWhitespace(n)}},this.value_braces=function(){var n=0;this.match("{",!1);for(var t=this.pos,e=!1;;){if(!e)if("}"==this.input[this.pos]){if(!(n>0)){var i=this.pos;return this.match("}",!1),this.input.substring(t,i)}n--}else if("{"==this.input[this.pos])n++;else if(this.pos>=this.input.length-1)throw"Unterminated value";e="\\"==this.input[this.pos]&&0==e,this.pos++}},this.value_comment=function(){for(var n="",t=0;!this.tryMatch("}",!1)||0!=t;){if(n+=this.input[this.pos],"{"==this.input[this.pos]&&t++,"}"==this.input[this.pos]&&t--,this.pos>=this.input.length-1)throw"Unterminated value:"+this.input.substring(start);this.pos++}return n},this.value_quotes=function(){this.match('"',!1);for(var n=this.pos,t=!1;;){if(!t){if('"'==this.input[this.pos]){var e=this.pos;return this.match('"',!1),this.input.substring(n,e)}if(this.pos>=this.input.length-1)throw"Unterminated value:"+this.input.substring(n)}t="\\"==this.input[this.pos]&&0==t,this.pos++}},this.single_value=function(){var n=this.pos;if(this.tryMatch("{"))return this.value_braces();if(this.tryMatch('"'))return this.value_quotes();var t=this.key();if(t.match("^[0-9]+$"))return t;if(this.months.indexOf(t.toLowerCase())>=0)return t.toLowerCase();throw"Value expected:"+this.input.substring(n)+" for key: "+t},this.value=function(){var n=[];for(n.push(this.single_value());this.tryMatch("#");)this.match("#"),n.push(this.single_value());return n.join("")},this.key=function(){for(var n=this.pos;;){if(this.pos>=this.input.length)throw"Runaway key";if(this.notKey.indexOf(this.input[this.pos])>=0)return this.input.substring(n,this.pos);this.pos++}},this.key_equals_value=function(){var n=this.key();if(this.tryMatch("="))return this.match("="),[n,this.value()];throw"... = value expected, equals sign missing:"+this.input.substring(this.pos)},this.key_value_list=function(){var n=this.key_equals_value();for(this.currentEntry.entryTags={},this.currentEntry.entryTags[n[0]]=n[1];this.tryMatch(",")&&(this.match(","),!this.tryMatch("}"));)n=this.key_equals_value(),this.currentEntry.entryTags[n[0]]=n[1]},this.entry_body=function(n){this.currentEntry={},this.currentEntry.citationKey=this.key(),this.currentEntry.entryType=n.substring(1),this.match(","),this.key_value_list(),this.entries.push(this.currentEntry)},this.directive=function(){return this.match("@"),"@"+this.key()},this.preamble=function(){this.currentEntry={},this.currentEntry.entryType="PREAMBLE",this.currentEntry.entry=this.value_comment(),this.entries.push(this.currentEntry)},this.comment=function(){this.currentEntry={},this.currentEntry.entryType="COMMENT",this.currentEntry.entry=this.value_comment(),this.entries.push(this.currentEntry)},this.entry=function(n){this.entry_body(n)},this.bibtex=function(){for(;this.matchAt();){var n=this.directive();this.match("{"),"@STRING"==n?this.string():"@PREAMBLE"==n?this.preamble():"@COMMENT"==n?this.comment():this.entry(n),this.match("}")}}}n.toJSON=function(n){var e=new t;return e.setInput(n),e.bibtex(),e.entries},n.toBibtex=function(n){var t="";for(var e in n){if(t+="@"+n[e].entryType,t+="{",n[e].citationKey&&(t+=n[e].citationKey+", "),n[e].entry&&(t+=n[e].entry),n[e].entryTags){var i="";for(var r in n[e].entryTags)0!=i.length&&(i+=", "),i+=r+"= {"+n[e].entryTags[r]+"}";t+=i}t+="}\n\n"}return t}}(t)}));function nn(n){return n.replace(/[\t\n ]+/g," ").replace(/{\\["^`.'acu~Hvs]( )?([a-zA-Z])}/g,(function(n,t,e){return e})).replace(/{\\([a-zA-Z])}/g,(function(n,t){return t}))}function tn(n){var t,e=new Map,i=a(J.toJSON(n));try{for(i.s();!(t=i.n()).done;){for(var r=t.value,o=0,s=Object.entries(r.entryTags);o

\n

Authors

\n
\n '.concat(n.authors.map((function(t,e){return'\n \n '.concat(t.personalURL?'\n ').concat(t.name)+(e+1":'\n '.concat(t.name)+(e+1","\n \n ")})).join(""),'\n
\n
\n \n
\n

Published

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

Footnotes

\n
    \n",!1)(HTMLElement)),dn=function(n){function t(){return f(this,t),s(this,t)}return d(t,n),m(t,[{key:"connectedCallback",value:function(){}},{key:"listen",value:function(n){this.bindDivEvents(this),this.bindTriggerEvents(n)}},{key:"bindDivEvents",value:function(n){var t=this;n.addEventListener("mouseover",(function(){t.visible||t.showAtNode(n),t.stopTimeout()})),n.addEventListener("mouseout",(function(){t.extendTimeout(500)})),n.addEventListener("touchstart",(function(n){n.stopPropagation()}),{passive:!0}),document.body.addEventListener("touchstart",(function(){t.hide()}),{passive:!0})}},{key:"bindTriggerEvents",value:function(n){var t=this;n.addEventListener("mouseover",(function(){t.visible||t.showAtNode(n),t.stopTimeout()})),n.addEventListener("mouseout",(function(){t.extendTimeout(300)})),n.addEventListener("touchstart",(function(e){t.visible?t.hide():t.showAtNode(n),e.stopPropagation()}),{passive:!0})}},{key:"show",value:function(n){this.visible=!0,this.style.display="block",this.style.top=Math.round(n[1]+10)+"px"}},{key:"showAtNode",value:function(n){var t=n.getBoundingClientRect();this.show([n.offsetLeft+t.width,n.offsetTop+t.height])}},{key:"hide",value:function(){this.visible=!1,this.style.display="none",this.stopTimeout()}},{key:"stopTimeout",value:function(){this.timeout&&clearTimeout(this.timeout)}},{key:"extendTimeout",value:function(n){var t=this;this.stopTimeout(),this.timeout=setTimeout((function(){t.hide()}),n)}}])}(x("d-hover-box",'\n\n\n
    \n
    \n \n
    \n
    \n')(HTMLElement)),hn=function(n){function t(){return f(this,t),s(this,t,arguments)}return d(t,n),m(t,null,[{key:"is",get:function(){return"d-title"}}])}(o(HTMLElement)),pn=function(n){function t(){return f(this,t),s(this,t,arguments)}return d(t,n),m(t)}(x("d-references","\n\n",!1)(HTMLElement)),fn=function(n){function t(){return f(this,t),s(this,t,arguments)}return d(t,n),m(t,[{key:"connectedCallback",value:function(){var n=this;this.getAttribute("prerendered")||(window.onload=function(){var t=document.querySelector("d-article").querySelectorAll("h2, h3");!function(n,t){var e,i='\n \n \n

    Table of contents

    \n
      ',r=a(t);try{for(r.s();!(e=r.n()).done;){var o=e.value,s="D-TITLE"==o.parentElement.tagName,l=o.getAttribute("no-toc");if(!s&&!l){var u=o.textContent,c='
    • '+u+"
    • ";"H3"==o.tagName?c="
        "+c+"
      ":c+="
      ",i+=c}}}catch(n){r.e(n)}finally{r.f()}i+="
    ",n.innerHTML=i}(n,t)})}}],[{key:"is",get:function(){return"d-toc"}}])}(o(HTMLElement));var gn=function(n){function t(){var n;return f(this,t),(n=s(this,t))._ready=!1,n._onscreen=!1,n._offscreen=!0,n}return d(t,n),m(t,[{key:"connectedCallback",value:function(){this.loadsWhileScrolling=this.hasAttribute("loadsWhileScrolling"),t.marginObserver.observe(this),t.directObserver.observe(this)}},{key:"disconnectedCallback",value:function(){t.marginObserver.unobserve(this),t.directObserver.unobserve(this)}},{key:"addEventListener",value:function(n,e){u(c(t.prototype),"addEventListener",this).call(this,n,e),"ready"===n&&-1!==t.readyQueue.indexOf(this)&&(this._ready=!1,t.runReadyQueue()),"onscreen"===n&&this.onscreen()}},{key:"ready",value:function(){this._ready=!0,t.marginObserver.unobserve(this);var n=new CustomEvent("ready");this.dispatchEvent(n)}},{key:"onscreen",value:function(){this._onscreen=!0,this._offscreen=!1;var n=new CustomEvent("onscreen");this.dispatchEvent(n)}},{key:"offscreen",value:function(){this._onscreen=!1,this._offscreen=!0;var n=new CustomEvent("offscreen");this.dispatchEvent(n)}}],[{key:"is",get:function(){return"d-figure"}},{key:"readyQueue",get:function(){return t._readyQueue||(t._readyQueue=[]),t._readyQueue}},{key:"addToReadyQueue",value:function(n){-1===t.readyQueue.indexOf(n)&&(t.readyQueue.push(n),t.runReadyQueue())}},{key:"runReadyQueue",value:function(){var n=t.readyQueue.sort((function(n,t){return n._seenOnScreen-t._seenOnScreen})).filter((function(n){return!n._ready})).pop();n&&(n.ready(),requestAnimationFrame(t.runReadyQueue))}},{key:"marginObserver",get:function(){if(!t._marginObserver){var n=window.innerHeight,e=Math.floor(2*n),i={rootMargin:e+"px 0px "+e+"px 0px",threshold:.01},r=t.didObserveMarginIntersection,o=new IntersectionObserver(r,i);t._marginObserver=o}return t._marginObserver}},{key:"didObserveMarginIntersection",value:function(n){var e,i=a(n);try{for(i.s();!(e=i.n()).done;){var r=e.value,o=r.target;r.isIntersecting&&!o._ready&&t.addToReadyQueue(o)}}catch(n){i.e(n)}finally{i.f()}}},{key:"directObserver",get:function(){return t._directObserver||(t._directObserver=new IntersectionObserver(t.didObserveDirectIntersection,{rootMargin:"0px",threshold:[0,1]})),t._directObserver}},{key:"didObserveDirectIntersection",value:function(n){var t,e=a(n);try{for(e.s();!(t=e.n()).done;){var i=t.value,r=i.target;i.isIntersecting?(r._seenOnScreen=new Date,r._offscreen&&r.onscreen()):r._onscreen&&r.offscreen()}}catch(n){e.e(n)}finally{e.f()}}}])}(o(HTMLElement));if("undefined"!=typeof window){var mn;gn.isScrolling=!1;window.addEventListener("scroll",(function(){gn.isScrolling=!0,clearTimeout(mn),mn=setTimeout((function(){gn.isScrolling=!1,gn.runReadyQueue()}),500)}),!0)}var bn=function(n){function t(){return f(this,t),s(this,t,arguments)}return d(t,n),m(t,[{key:"connectedCallback",value:function(){var n=this;this.shouldRemoveSelf()?this.parentElement.removeChild(this):this.root.querySelector("#interstitial-password-input").oninput=function(t){return n.passwordChanged(t)}}},{key:"passwordChanged",value:function(n){n.target.value===this.password&&(console.log("Correct password entered."),this.parentElement.removeChild(this),"undefined"!=typeof Storage&&(console.log("Saved that correct password was entered."),localStorage.setItem(this.localStorageIdentifier(),"true")))}},{key:"shouldRemoveSelf",value:function(){return window&&"distill.pub"===window.location.hostname?(console.warn("Interstitial found on production, hiding it."),!0):"undefined"!=typeof Storage&&"true"===localStorage.getItem(this.localStorageIdentifier())&&(console.log("Loaded that correct password was entered before; skipping interstitial."),!0)}},{key:"localStorageIdentifier",value:function(){return"distill-drafts"+(window?window.location.pathname:"-")+"interstitial-password-correct"}}])}(x("d-interstitial",'\n\n\n
    \n
    \n

    This article is in review.

    \n

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

    \n \n

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

    \n
    \n
    \n')(HTMLElement));function yn(n,t){return nt?1:n>=t?0:NaN}var vn,wn,xn=(vn=yn,1===vn.length&&(wn=vn,vn=function(n,t){return yn(wn(n),t)}),{left:function(n,t,e,i){for(null==e&&(e=0),null==i&&(i=n.length);e>>1;vn(n[r],t)<0?e=r+1:i=r}return e},right:function(n,t,e,i){for(null==e&&(e=0),null==i&&(i=n.length);e>>1;vn(n[r],t)>0?i=r:e=r+1}return e}}).right;var kn=Math.sqrt(50),Sn=Math.sqrt(10),Mn=Math.sqrt(2);function Tn(n,t,e){var i=(t-n)/Math.max(0,e),r=Math.floor(Math.log(i)/Math.LN10),o=i/Math.pow(10,r);return r>=0?(o>=kn?10:o>=Sn?5:o>=Mn?2:1)*Math.pow(10,r):-Math.pow(10,-r)/(o>=kn?10:o>=Sn?5:o>=Mn?2:1)}function _n(n,t){switch(arguments.length){case 0:break;case 1:this.range(n);break;default:this.range(t).domain(n)}return this}function An(n,t,e){n.prototype=t.prototype=e,e.constructor=n}function En(n,t){var e=Object.create(n.prototype);for(var i in t)e[i]=t[i];return e}function Cn(){}var Nn=.7,Ln=1/Nn,On="\\s*([+-]?\\d+)\\s*",Dn="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)\\s*",In="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)%\\s*",Rn=/^#([0-9a-f]{3,8})$/,Fn=new RegExp("^rgb\\("+[On,On,On]+"\\)$"),Un=new RegExp("^rgb\\("+[In,In,In]+"\\)$"),Pn=new RegExp("^rgba\\("+[On,On,On,Dn]+"\\)$"),Hn=new RegExp("^rgba\\("+[In,In,In,Dn]+"\\)$"),jn=new RegExp("^hsl\\("+[Dn,In,In]+"\\)$"),zn=new RegExp("^hsla\\("+[Dn,In,In,Dn]+"\\)$"),$n={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 qn(){return this.rgb().formatHex()}function Bn(){return this.rgb().formatRgb()}function Yn(n){var t,e;return n=(n+"").trim().toLowerCase(),(t=Rn.exec(n))?(e=t[1].length,t=parseInt(t[1],16),6===e?Wn(t):3===e?new Xn(t>>8&15|t>>4&240,t>>4&15|240&t,(15&t)<<4|15&t,1):8===e?Gn(t>>24&255,t>>16&255,t>>8&255,(255&t)/255):4===e?Gn(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|240&t,((15&t)<<4|15&t)/255):null):(t=Fn.exec(n))?new Xn(t[1],t[2],t[3],1):(t=Un.exec(n))?new Xn(255*t[1]/100,255*t[2]/100,255*t[3]/100,1):(t=Pn.exec(n))?Gn(t[1],t[2],t[3],t[4]):(t=Hn.exec(n))?Gn(255*t[1]/100,255*t[2]/100,255*t[3]/100,t[4]):(t=jn.exec(n))?nt(t[1],t[2]/100,t[3]/100,1):(t=zn.exec(n))?nt(t[1],t[2]/100,t[3]/100,t[4]):$n.hasOwnProperty(n)?Wn($n[n]):"transparent"===n?new Xn(NaN,NaN,NaN,0):null}function Wn(n){return new Xn(n>>16&255,n>>8&255,255&n,1)}function Gn(n,t,e,i){return i<=0&&(n=t=e=NaN),new Xn(n,t,e,i)}function Vn(n){return n instanceof Cn||(n=Yn(n)),n?new Xn((n=n.rgb()).r,n.g,n.b,n.opacity):new Xn}function Kn(n,t,e,i){return 1===arguments.length?Vn(n):new Xn(n,t,e,null==i?1:i)}function Xn(n,t,e,i){this.r=+n,this.g=+t,this.b=+e,this.opacity=+i}function Zn(){return"#"+Jn(this.r)+Jn(this.g)+Jn(this.b)}function Qn(){var n=this.opacity;return(1===(n=isNaN(n)?1:Math.max(0,Math.min(1,n)))?"rgb(":"rgba(")+Math.max(0,Math.min(255,Math.round(this.r)||0))+", "+Math.max(0,Math.min(255,Math.round(this.g)||0))+", "+Math.max(0,Math.min(255,Math.round(this.b)||0))+(1===n?")":", "+n+")")}function Jn(n){return((n=Math.max(0,Math.min(255,Math.round(n)||0)))<16?"0":"")+n.toString(16)}function nt(n,t,e,i){return i<=0?n=t=e=NaN:e<=0||e>=1?n=t=NaN:t<=0&&(n=NaN),new et(n,t,e,i)}function tt(n){if(n instanceof et)return new et(n.h,n.s,n.l,n.opacity);if(n instanceof Cn||(n=Yn(n)),!n)return new et;if(n instanceof et)return n;var t=(n=n.rgb()).r/255,e=n.g/255,i=n.b/255,r=Math.min(t,e,i),o=Math.max(t,e,i),a=NaN,s=o-r,l=(o+r)/2;return s?(a=t===o?(e-i)/s+6*(e0&&l<1?0:a,new et(a,s,l,n.opacity)}function et(n,t,e,i){this.h=+n,this.s=+t,this.l=+e,this.opacity=+i}function it(n,t,e){return 255*(n<60?t+(e-t)*n/60:n<180?e:n<240?t+(e-t)*(240-n)/60:t)}An(Cn,Yn,{copy:function(n){return Object.assign(new this.constructor,this,n)},displayable:function(){return this.rgb().displayable()},hex:qn,formatHex:qn,formatHsl:function(){return tt(this).formatHsl()},formatRgb:Bn,toString:Bn}),An(Xn,Kn,En(Cn,{brighter:function(n){return n=null==n?Ln:Math.pow(Ln,n),new Xn(this.r*n,this.g*n,this.b*n,this.opacity)},darker:function(n){return n=null==n?Nn:Math.pow(Nn,n),new Xn(this.r*n,this.g*n,this.b*n,this.opacity)},rgb:function(){return this},displayable:function(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:Zn,formatHex:Zn,formatRgb:Qn,toString:Qn})),An(et,(function(n,t,e,i){return 1===arguments.length?tt(n):new et(n,t,e,null==i?1:i)}),En(Cn,{brighter:function(n){return n=null==n?Ln:Math.pow(Ln,n),new et(this.h,this.s,this.l*n,this.opacity)},darker:function(n){return n=null==n?Nn:Math.pow(Nn,n),new et(this.h,this.s,this.l*n,this.opacity)},rgb:function(){var n=this.h%360+360*(this.h<0),t=isNaN(n)||isNaN(this.s)?0:this.s,e=this.l,i=e+(e<.5?e:1-e)*t,r=2*e-i;return new Xn(it(n>=240?n-240:n+120,r,i),it(n,r,i),it(n<120?n+240:n-120,r,i),this.opacity)},displayable:function(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl:function(){var n=this.opacity;return(1===(n=isNaN(n)?1:Math.max(0,Math.min(1,n)))?"hsl(":"hsla(")+(this.h||0)+", "+100*(this.s||0)+"%, "+100*(this.l||0)+"%"+(1===n?")":", "+n+")")}}));var rt=Math.PI/180,ot=180/Math.PI,at=.96422,st=1,lt=.82521,ut=4/29,ct=6/29,dt=3*ct*ct,ht=ct*ct*ct;function pt(n){if(n instanceof ft)return new ft(n.l,n.a,n.b,n.opacity);if(n instanceof vt)return wt(n);n instanceof Xn||(n=Vn(n));var t,e,i=yt(n.r),r=yt(n.g),o=yt(n.b),a=gt((.2225045*i+.7168786*r+.0606169*o)/st);return i===r&&r===o?t=e=a:(t=gt((.4360747*i+.3850649*r+.1430804*o)/at),e=gt((.0139322*i+.0971045*r+.7141733*o)/lt)),new ft(116*a-16,500*(t-a),200*(a-e),n.opacity)}function ft(n,t,e,i){this.l=+n,this.a=+t,this.b=+e,this.opacity=+i}function gt(n){return n>ht?Math.pow(n,1/3):n/dt+ut}function mt(n){return n>ct?n*n*n:dt*(n-ut)}function bt(n){return 255*(n<=.0031308?12.92*n:1.055*Math.pow(n,1/2.4)-.055)}function yt(n){return(n/=255)<=.04045?n/12.92:Math.pow((n+.055)/1.055,2.4)}function vt(n,t,e,i){this.h=+n,this.c=+t,this.l=+e,this.opacity=+i}function wt(n){if(isNaN(n.h))return new ft(n.l,0,0,n.opacity);var t=n.h*rt;return new ft(n.l,Math.cos(t)*n.c,Math.sin(t)*n.c,n.opacity)}An(ft,(function(n,t,e,i){return 1===arguments.length?pt(n):new ft(n,t,e,null==i?1:i)}),En(Cn,{brighter:function(n){return new ft(this.l+18*(null==n?1:n),this.a,this.b,this.opacity)},darker:function(n){return new ft(this.l-18*(null==n?1:n),this.a,this.b,this.opacity)},rgb:function(){var n=(this.l+16)/116,t=isNaN(this.a)?n:n+this.a/500,e=isNaN(this.b)?n:n-this.b/200;return new Xn(bt(3.1338561*(t=at*mt(t))-1.6168667*(n=st*mt(n))-.4906146*(e=lt*mt(e))),bt(-.9787684*t+1.9161415*n+.033454*e),bt(.0719453*t-.2289914*n+1.4052427*e),this.opacity)}})),An(vt,(function(n,t,e,i){return 1===arguments.length?function(n){if(n instanceof vt)return new vt(n.h,n.c,n.l,n.opacity);if(n instanceof ft||(n=pt(n)),0===n.a&&0===n.b)return new vt(NaN,0o&&(r=t.slice(o,r),s[a]?s[a]+=r:s[++a]=r),(e=e[0])===(i=i[0])?s[a]?s[a]+=i:s[++a]=i:(s[++a]=null,l.push({i:a,x:Ut(e,i)})),o=jt.lastIndex;return ot&&(e=n,n=t,t=e),u=function(e){return Math.max(n,Math.min(t,e))}),i=l>2?Kt:Vt,r=o=null,d}function d(t){return isNaN(t=+t)?e:(r||(r=i(a.map(n),s,l)))(n(u(t)))}return d.invert=function(e){return u(t((o||(o=i(s,a.map(n),Ut)))(e)))},d.domain=function(n){return arguments.length?(a=Array.from(n,Bt),c()):a.slice()},d.range=function(n){return arguments.length?(s=Array.from(n),c()):s.slice()},d.rangeRound=function(n){return s=Array.from(n),l=qt,c()},d.clamp=function(n){return arguments.length?(u=!!n||Wt,c()):u!==Wt},d.interpolate=function(n){return arguments.length?(l=n,c()):l},d.unknown=function(n){return arguments.length?(e=n,d):e},function(e,i){return n=e,t=i,c()}}function Zt(n,t){if((e=(n=t?n.toExponential(t-1):n.toExponential()).indexOf("e"))<0)return null;var e,i=n.slice(0,e);return[i.length>1?i[0]+i.slice(2):i,+n.slice(e+1)]}function Qt(n){return(n=Zt(Math.abs(n)))?n[1]:NaN}var Jt,ne=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function te(n){if(!(t=ne.exec(n)))throw new Error("invalid format: "+n);var t;return new ee({fill:t[1],align:t[2],sign:t[3],symbol:t[4],zero:t[5],width:t[6],comma:t[7],precision:t[8]&&t[8].slice(1),trim:t[9],type:t[10]})}function ee(n){this.fill=void 0===n.fill?" ":n.fill+"",this.align=void 0===n.align?">":n.align+"",this.sign=void 0===n.sign?"-":n.sign+"",this.symbol=void 0===n.symbol?"":n.symbol+"",this.zero=!!n.zero,this.width=void 0===n.width?void 0:+n.width,this.comma=!!n.comma,this.precision=void 0===n.precision?void 0:+n.precision,this.trim=!!n.trim,this.type=void 0===n.type?"":n.type+""}function ie(n,t){var e=Zt(n,t);if(!e)return n+"";var i=e[0],r=e[1];return r<0?"0."+new Array(-r).join("0")+i:i.length>r+1?i.slice(0,r+1)+"."+i.slice(r+1):i+new Array(r-i.length+2).join("0")}te.prototype=ee.prototype,ee.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(void 0===this.width?"":Math.max(1,0|this.width))+(this.comma?",":"")+(void 0===this.precision?"":"."+Math.max(0,0|this.precision))+(this.trim?"~":"")+this.type};var re={"%":function(n,t){return(100*n).toFixed(t)},b:function(n){return Math.round(n).toString(2)},c:function(n){return n+""},d:function(n){return Math.round(n).toString(10)},e:function(n,t){return n.toExponential(t)},f:function(n,t){return n.toFixed(t)},g:function(n,t){return n.toPrecision(t)},o:function(n){return Math.round(n).toString(8)},p:function(n,t){return ie(100*n,t)},r:ie,s:function(n,t){var e=Zt(n,t);if(!e)return n+"";var i=e[0],r=e[1],o=r-(Jt=3*Math.max(-8,Math.min(8,Math.floor(r/3))))+1,a=i.length;return o===a?i:o>a?i+new Array(o-a+1).join("0"):o>0?i.slice(0,o)+"."+i.slice(o):"0."+new Array(1-o).join("0")+Zt(n,Math.max(0,t+o-1))[0]},X:function(n){return Math.round(n).toString(16).toUpperCase()},x:function(n){return Math.round(n).toString(16)}};function oe(n){return n}var ae,se,le,ue=Array.prototype.map,ce=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function de(n){var t,e,i=void 0===n.grouping||void 0===n.thousands?oe:(t=ue.call(n.grouping,Number),e=n.thousands+"",function(n,i){for(var r=n.length,o=[],a=0,s=t[0],l=0;r>0&&s>0&&(l+s+1>i&&(s=Math.max(1,i-l)),o.push(n.substring(r-=s,r+s)),!((l+=s+1)>i));)s=t[a=(a+1)%t.length];return o.reverse().join(e)}),r=void 0===n.currency?"":n.currency[0]+"",o=void 0===n.currency?"":n.currency[1]+"",a=void 0===n.decimal?".":n.decimal+"",s=void 0===n.numerals?oe:function(n){return function(t){return t.replace(/[0-9]/g,(function(t){return n[+t]}))}}(ue.call(n.numerals,String)),l=void 0===n.percent?"%":n.percent+"",u=void 0===n.minus?"-":n.minus+"",c=void 0===n.nan?"NaN":n.nan+"";function d(n){var t=(n=te(n)).fill,e=n.align,d=n.sign,h=n.symbol,p=n.zero,f=n.width,g=n.comma,m=n.precision,b=n.trim,y=n.type;"n"===y?(g=!0,y="g"):re[y]||(void 0===m&&(m=12),b=!0,y="g"),(p||"0"===t&&"="===e)&&(p=!0,t="0",e="=");var v="$"===h?r:"#"===h&&/[boxX]/.test(y)?"0"+y.toLowerCase():"",w="$"===h?o:/[%p]/.test(y)?l:"",x=re[y],k=/[defgprs%]/.test(y);function S(n){var r,o,l,h=v,S=w;if("c"===y)S=x(n)+S,n="";else{var M=(n=+n)<0||1/n<0;if(n=isNaN(n)?c:x(Math.abs(n),m),b&&(n=function(n){n:for(var t,e=n.length,i=1,r=-1;i0&&(r=0)}return r>0?n.slice(0,r)+n.slice(t+1):n}(n)),M&&0==+n&&"+"!==d&&(M=!1),h=(M?"("===d?d:u:"-"===d||"("===d?"":d)+h,S=("s"===y?ce[8+Jt/3]:"")+S+(M&&"("===d?")":""),k)for(r=-1,o=n.length;++r(l=n.charCodeAt(r))||l>57){S=(46===l?a+n.slice(r+1):n.slice(r))+S,n=n.slice(0,r);break}}g&&!p&&(n=i(n,1/0));var T=h.length+n.length+S.length,_=T>1)+h+n+S+_.slice(T);break;default:n=_+h+n+S}return s(n)}return m=void 0===m?6:/[gprs]/.test(y)?Math.max(1,Math.min(21,m)):Math.max(0,Math.min(20,m)),S.toString=function(){return n+""},S}return{format:d,formatPrefix:function(n,t){var e=d(((n=te(n)).type="f",n)),i=3*Math.max(-8,Math.min(8,Math.floor(Qt(t)/3))),r=Math.pow(10,-i),o=ce[8+i/3];return function(n){return e(r*n)+o}}}}function he(n,t,e,i){var r,o=function(n,t,e){var i=Math.abs(t-n)/Math.max(0,e),r=Math.pow(10,Math.floor(Math.log(i)/Math.LN10)),o=i/r;return o>=kn?r*=10:o>=Sn?r*=5:o>=Mn&&(r*=2),t0)return[n];if((i=t0)for(n=Math.ceil(n/a),t=Math.floor(t/a),o=new Array(r=Math.ceil(t-n+1));++s0?i=Tn(s=Math.floor(s/i)*i,l=Math.ceil(l/i)*i,e):i<0&&(i=Tn(s=Math.ceil(s*i)/i,l=Math.floor(l*i)/i,e)),i>0?(r[o]=Math.floor(s/i)*i,r[a]=Math.ceil(l/i)*i,t(r)):i<0&&(r[o]=Math.ceil(s*i)/i,r[a]=Math.floor(l*i)/i,t(r)),n},n}function fe(){var n=Xt()(Wt,Wt);return n.copy=function(){return t=n,fe().domain(t.domain()).range(t.range()).interpolate(t.interpolate()).clamp(t.clamp()).unknown(t.unknown());var t},_n.apply(n,arguments),pe(n)}ae=de({decimal:".",thousands:",",grouping:[3],currency:["$",""],minus:"-"}),se=ae.format,le=ae.formatPrefix;var ge=new Date,me=new Date;function be(n,t,e,i){function r(t){return n(t=0===arguments.length?new Date:new Date(+t)),t}return r.floor=function(t){return n(t=new Date(+t)),t},r.ceil=function(e){return n(e=new Date(e-1)),t(e,1),n(e),e},r.round=function(n){var t=r(n),e=r.ceil(n);return n-t0))return s;do{s.push(a=new Date(+e)),t(e,o),n(e)}while(a=t)for(;n(t),!e(t);)t.setTime(t-1)}),(function(n,i){if(n>=n)if(i<0)for(;++i<=0;)for(;t(n,-1),!e(n););else for(;--i>=0;)for(;t(n,1),!e(n););}))},e&&(r.count=function(t,i){return ge.setTime(+t),me.setTime(+i),n(ge),n(me),Math.floor(e(ge,me))},r.every=function(n){return n=Math.floor(n),isFinite(n)&&n>0?n>1?r.filter(i?function(t){return i(t)%n==0}:function(t){return r.count(0,t)%n==0}):r:null}),r}var ye=be((function(){}),(function(n,t){n.setTime(+n+t)}),(function(n,t){return t-n}));ye.every=function(n){return n=Math.floor(n),isFinite(n)&&n>0?n>1?be((function(t){t.setTime(Math.floor(t/n)*n)}),(function(t,e){t.setTime(+t+e*n)}),(function(t,e){return(e-t)/n})):ye:null};var ve=1e3,we=6e4,xe=36e5,ke=864e5,Se=6048e5,Me=(be((function(n){n.setTime(n-n.getMilliseconds())}),(function(n,t){n.setTime(+n+t*ve)}),(function(n,t){return(t-n)/ve}),(function(n){return n.getUTCSeconds()})),be((function(n){n.setTime(n-n.getMilliseconds()-n.getSeconds()*ve)}),(function(n,t){n.setTime(+n+t*we)}),(function(n,t){return(t-n)/we}),(function(n){return n.getMinutes()})),be((function(n){n.setTime(n-n.getMilliseconds()-n.getSeconds()*ve-n.getMinutes()*we)}),(function(n,t){n.setTime(+n+t*xe)}),(function(n,t){return(t-n)/xe}),(function(n){return n.getHours()})),be((function(n){n.setHours(0,0,0,0)}),(function(n,t){n.setDate(n.getDate()+t)}),(function(n,t){return(t-n-(t.getTimezoneOffset()-n.getTimezoneOffset())*we)/ke}),(function(n){return n.getDate()-1})));function Te(n){return be((function(t){t.setDate(t.getDate()-(t.getDay()+7-n)%7),t.setHours(0,0,0,0)}),(function(n,t){n.setDate(n.getDate()+7*t)}),(function(n,t){return(t-n-(t.getTimezoneOffset()-n.getTimezoneOffset())*we)/Se}))}var _e=Te(0),Ae=Te(1),Ee=(Te(2),Te(3),Te(4)),Ce=(Te(5),Te(6),be((function(n){n.setDate(1),n.setHours(0,0,0,0)}),(function(n,t){n.setMonth(n.getMonth()+t)}),(function(n,t){return t.getMonth()-n.getMonth()+12*(t.getFullYear()-n.getFullYear())}),(function(n){return n.getMonth()})),be((function(n){n.setMonth(0,1),n.setHours(0,0,0,0)}),(function(n,t){n.setFullYear(n.getFullYear()+t)}),(function(n,t){return t.getFullYear()-n.getFullYear()}),(function(n){return n.getFullYear()})));Ce.every=function(n){return isFinite(n=Math.floor(n))&&n>0?be((function(t){t.setFullYear(Math.floor(t.getFullYear()/n)*n),t.setMonth(0,1),t.setHours(0,0,0,0)}),(function(t,e){t.setFullYear(t.getFullYear()+e*n)})):null},be((function(n){n.setUTCSeconds(0,0)}),(function(n,t){n.setTime(+n+t*we)}),(function(n,t){return(t-n)/we}),(function(n){return n.getUTCMinutes()})),be((function(n){n.setUTCMinutes(0,0,0)}),(function(n,t){n.setTime(+n+t*xe)}),(function(n,t){return(t-n)/xe}),(function(n){return n.getUTCHours()}));var Ne=be((function(n){n.setUTCHours(0,0,0,0)}),(function(n,t){n.setUTCDate(n.getUTCDate()+t)}),(function(n,t){return(t-n)/ke}),(function(n){return n.getUTCDate()-1}));function Le(n){return be((function(t){t.setUTCDate(t.getUTCDate()-(t.getUTCDay()+7-n)%7),t.setUTCHours(0,0,0,0)}),(function(n,t){n.setUTCDate(n.getUTCDate()+7*t)}),(function(n,t){return(t-n)/Se}))}var Oe=Le(0),De=Le(1),Ie=(Le(2),Le(3),Le(4)),Re=(Le(5),Le(6),be((function(n){n.setUTCDate(1),n.setUTCHours(0,0,0,0)}),(function(n,t){n.setUTCMonth(n.getUTCMonth()+t)}),(function(n,t){return t.getUTCMonth()-n.getUTCMonth()+12*(t.getUTCFullYear()-n.getUTCFullYear())}),(function(n){return n.getUTCMonth()})),be((function(n){n.setUTCMonth(0,1),n.setUTCHours(0,0,0,0)}),(function(n,t){n.setUTCFullYear(n.getUTCFullYear()+t)}),(function(n,t){return t.getUTCFullYear()-n.getUTCFullYear()}),(function(n){return n.getUTCFullYear()})));function Fe(n){if(0<=n.y&&n.y<100){var t=new Date(-1,n.m,n.d,n.H,n.M,n.S,n.L);return t.setFullYear(n.y),t}return new Date(n.y,n.m,n.d,n.H,n.M,n.S,n.L)}function Ue(n){if(0<=n.y&&n.y<100){var t=new Date(Date.UTC(-1,n.m,n.d,n.H,n.M,n.S,n.L));return t.setUTCFullYear(n.y),t}return new Date(Date.UTC(n.y,n.m,n.d,n.H,n.M,n.S,n.L))}function Pe(n,t,e){return{y:n,m:t,d:e,H:0,M:0,S:0,L:0}}Re.every=function(n){return isFinite(n=Math.floor(n))&&n>0?be((function(t){t.setUTCFullYear(Math.floor(t.getUTCFullYear()/n)*n),t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)}),(function(t,e){t.setUTCFullYear(t.getUTCFullYear()+e*n)})):null};var He,je,ze,$e={"-":"",_:" ",0:"0"},qe=/^\s*\d+/,Be=/^%/,Ye=/[\\^$*+?|[\]().{}]/g;function We(n,t,e){var i=n<0?"-":"",r=(i?-n:n)+"",o=r.length;return i+(o68?1900:2e3),e+i[0].length):-1}function ii(n,t,e){var i=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(t.slice(e,e+6));return i?(n.Z=i[1]?0:-(i[2]+(i[3]||"00")),e+i[0].length):-1}function ri(n,t,e){var i=qe.exec(t.slice(e,e+1));return i?(n.q=3*i[0]-3,e+i[0].length):-1}function oi(n,t,e){var i=qe.exec(t.slice(e,e+2));return i?(n.m=i[0]-1,e+i[0].length):-1}function ai(n,t,e){var i=qe.exec(t.slice(e,e+2));return i?(n.d=+i[0],e+i[0].length):-1}function si(n,t,e){var i=qe.exec(t.slice(e,e+3));return i?(n.m=0,n.d=+i[0],e+i[0].length):-1}function li(n,t,e){var i=qe.exec(t.slice(e,e+2));return i?(n.H=+i[0],e+i[0].length):-1}function ui(n,t,e){var i=qe.exec(t.slice(e,e+2));return i?(n.M=+i[0],e+i[0].length):-1}function ci(n,t,e){var i=qe.exec(t.slice(e,e+2));return i?(n.S=+i[0],e+i[0].length):-1}function di(n,t,e){var i=qe.exec(t.slice(e,e+3));return i?(n.L=+i[0],e+i[0].length):-1}function hi(n,t,e){var i=qe.exec(t.slice(e,e+6));return i?(n.L=Math.floor(i[0]/1e3),e+i[0].length):-1}function pi(n,t,e){var i=Be.exec(t.slice(e,e+1));return i?e+i[0].length:-1}function fi(n,t,e){var i=qe.exec(t.slice(e));return i?(n.Q=+i[0],e+i[0].length):-1}function gi(n,t,e){var i=qe.exec(t.slice(e));return i?(n.s=+i[0],e+i[0].length):-1}function mi(n,t){return We(n.getDate(),t,2)}function bi(n,t){return We(n.getHours(),t,2)}function yi(n,t){return We(n.getHours()%12||12,t,2)}function vi(n,t){return We(1+Me.count(Ce(n),n),t,3)}function wi(n,t){return We(n.getMilliseconds(),t,3)}function xi(n,t){return wi(n,t)+"000"}function ki(n,t){return We(n.getMonth()+1,t,2)}function Si(n,t){return We(n.getMinutes(),t,2)}function Mi(n,t){return We(n.getSeconds(),t,2)}function Ti(n){var t=n.getDay();return 0===t?7:t}function _i(n,t){return We(_e.count(Ce(n)-1,n),t,2)}function Ai(n,t){var e=n.getDay();return n=e>=4||0===e?Ee(n):Ee.ceil(n),We(Ee.count(Ce(n),n)+(4===Ce(n).getDay()),t,2)}function Ei(n){return n.getDay()}function Ci(n,t){return We(Ae.count(Ce(n)-1,n),t,2)}function Ni(n,t){return We(n.getFullYear()%100,t,2)}function Li(n,t){return We(n.getFullYear()%1e4,t,4)}function Oi(n){var t=n.getTimezoneOffset();return(t>0?"-":(t*=-1,"+"))+We(t/60|0,"0",2)+We(t%60,"0",2)}function Di(n,t){return We(n.getUTCDate(),t,2)}function Ii(n,t){return We(n.getUTCHours(),t,2)}function Ri(n,t){return We(n.getUTCHours()%12||12,t,2)}function Fi(n,t){return We(1+Ne.count(Re(n),n),t,3)}function Ui(n,t){return We(n.getUTCMilliseconds(),t,3)}function Pi(n,t){return Ui(n,t)+"000"}function Hi(n,t){return We(n.getUTCMonth()+1,t,2)}function ji(n,t){return We(n.getUTCMinutes(),t,2)}function zi(n,t){return We(n.getUTCSeconds(),t,2)}function $i(n){var t=n.getUTCDay();return 0===t?7:t}function qi(n,t){return We(Oe.count(Re(n)-1,n),t,2)}function Bi(n,t){var e=n.getUTCDay();return n=e>=4||0===e?Ie(n):Ie.ceil(n),We(Ie.count(Re(n),n)+(4===Re(n).getUTCDay()),t,2)}function Yi(n){return n.getUTCDay()}function Wi(n,t){return We(De.count(Re(n)-1,n),t,2)}function Gi(n,t){return We(n.getUTCFullYear()%100,t,2)}function Vi(n,t){return We(n.getUTCFullYear()%1e4,t,4)}function Ki(){return"+0000"}function Xi(){return"%"}function Zi(n){return+n}function Qi(n){return Math.floor(+n/1e3)}!function(n){(He=function(n){var t=n.dateTime,e=n.date,i=n.time,r=n.periods,o=n.days,a=n.shortDays,s=n.months,l=n.shortMonths,u=Ve(r),c=Ke(r),d=Ve(o),h=Ke(o),p=Ve(a),f=Ke(a),g=Ve(s),m=Ke(s),b=Ve(l),y=Ke(l),v={a:function(n){return a[n.getDay()]},A:function(n){return o[n.getDay()]},b:function(n){return l[n.getMonth()]},B:function(n){return s[n.getMonth()]},c:null,d:mi,e:mi,f:xi,H:bi,I:yi,j:vi,L:wi,m:ki,M:Si,p:function(n){return r[+(n.getHours()>=12)]},q:function(n){return 1+~~(n.getMonth()/3)},Q:Zi,s:Qi,S:Mi,u:Ti,U:_i,V:Ai,w:Ei,W:Ci,x:null,X:null,y:Ni,Y:Li,Z:Oi,"%":Xi},w={a:function(n){return a[n.getUTCDay()]},A:function(n){return o[n.getUTCDay()]},b:function(n){return l[n.getUTCMonth()]},B:function(n){return s[n.getUTCMonth()]},c:null,d:Di,e:Di,f:Pi,H:Ii,I:Ri,j:Fi,L:Ui,m:Hi,M:ji,p:function(n){return r[+(n.getUTCHours()>=12)]},q:function(n){return 1+~~(n.getUTCMonth()/3)},Q:Zi,s:Qi,S:zi,u:$i,U:qi,V:Bi,w:Yi,W:Wi,x:null,X:null,y:Gi,Y:Vi,Z:Ki,"%":Xi},x={a:function(n,t,e){var i=p.exec(t.slice(e));return i?(n.w=f[i[0].toLowerCase()],e+i[0].length):-1},A:function(n,t,e){var i=d.exec(t.slice(e));return i?(n.w=h[i[0].toLowerCase()],e+i[0].length):-1},b:function(n,t,e){var i=b.exec(t.slice(e));return i?(n.m=y[i[0].toLowerCase()],e+i[0].length):-1},B:function(n,t,e){var i=g.exec(t.slice(e));return i?(n.m=m[i[0].toLowerCase()],e+i[0].length):-1},c:function(n,e,i){return M(n,t,e,i)},d:ai,e:ai,f:hi,H:li,I:li,j:si,L:di,m:oi,M:ui,p:function(n,t,e){var i=u.exec(t.slice(e));return i?(n.p=c[i[0].toLowerCase()],e+i[0].length):-1},q:ri,Q:fi,s:gi,S:ci,u:Ze,U:Qe,V:Je,w:Xe,W:ni,x:function(n,t,i){return M(n,e,t,i)},X:function(n,t,e){return M(n,i,t,e)},y:ei,Y:ti,Z:ii,"%":pi};function k(n,t){return function(e){var i,r,o,a=[],s=-1,l=0,u=n.length;for(e instanceof Date||(e=new Date(+e));++s53)return null;"w"in o||(o.w=1),"Z"in o?(r=(i=Ue(Pe(o.y,0,1))).getUTCDay(),i=r>4||0===r?De.ceil(i):De(i),i=Ne.offset(i,7*(o.V-1)),o.y=i.getUTCFullYear(),o.m=i.getUTCMonth(),o.d=i.getUTCDate()+(o.w+6)%7):(r=(i=Fe(Pe(o.y,0,1))).getDay(),i=r>4||0===r?Ae.ceil(i):Ae(i),i=Me.offset(i,7*(o.V-1)),o.y=i.getFullYear(),o.m=i.getMonth(),o.d=i.getDate()+(o.w+6)%7)}else("W"in o||"U"in o)&&("w"in o||(o.w="u"in o?o.u%7:"W"in o?1:0),r="Z"in o?Ue(Pe(o.y,0,1)).getUTCDay():Fe(Pe(o.y,0,1)).getDay(),o.m=0,o.d="W"in o?(o.w+6)%7+7*o.W-(r+5)%7:o.w+7*o.U-(r+6)%7);return"Z"in o?(o.H+=o.Z/100|0,o.M+=o.Z%100,Ue(o)):Fe(o)}}function M(n,t,e,i){for(var r,o,a=0,s=t.length,l=e.length;a=l)return-1;if(37===(r=t.charCodeAt(a++))){if(r=t.charAt(a++),!(o=x[r in $e?t.charAt(a++):r])||(i=o(n,e,i))<0)return-1}else if(r!=e.charCodeAt(i++))return-1}return i}return v.x=k(e,v),v.X=k(i,v),v.c=k(t,v),w.x=k(e,w),w.X=k(i,w),w.c=k(t,w),{format:function(n){var t=k(n+="",v);return t.toString=function(){return n},t},parse:function(n){var t=S(n+="",!1);return t.toString=function(){return n},t},utcFormat:function(n){var t=k(n+="",w);return t.toString=function(){return n},t},utcParse:function(n){var t=S(n+="",!0);return t.toString=function(){return n},t}}}(n)).format,He.parse,je=He.utcFormat,ze=He.utcParse}({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});var Ji="%Y-%m-%dT%H:%M:%S.%LZ";Date.prototype.toISOString||je(Ji),+new Date("2000-01-01T00:00:00.000Z")||ze(Ji);var nr={value:function(){}};function tr(){for(var n,t=0,e=arguments.length,i={};t=0&&(t=n.slice(e+1),n=n.slice(0,e)),n&&!i.hasOwnProperty(n))throw new Error("unknown type: "+n);return{type:n,name:t}}))),a=-1,s=o.length;if(!(arguments.length<2)){if(null!=t&&"function"!=typeof t)throw new Error("invalid callback: "+t);for(;++a0)for(var e,i,r=new Array(e),o=0;o=0&&"xmlns"!==(t=n.slice(0,e))&&(n=n.slice(e+1)),ar.hasOwnProperty(t)?{space:ar[t],local:n}:n}function lr(n){return function(){var t=this.ownerDocument,e=this.namespaceURI;return e===or&&t.documentElement.namespaceURI===or?t.createElement(n):t.createElementNS(e,n)}}function ur(n){return function(){return this.ownerDocument.createElementNS(n.space,n.local)}}function cr(n){var t=sr(n);return(t.local?ur:lr)(t)}function dr(){}function hr(n){return null==n?dr:function(){return this.querySelector(n)}}function pr(){return[]}function fr(n){return new Array(n.length)}function gr(n,t){this.ownerDocument=n.ownerDocument,this.namespaceURI=n.namespaceURI,this._next=null,this._parent=n,this.__data__=t}gr.prototype={constructor:gr,appendChild:function(n){return this._parent.insertBefore(n,this._next)},insertBefore:function(n,t){return this._parent.insertBefore(n,t)},querySelector:function(n){return this._parent.querySelector(n)},querySelectorAll:function(n){return this._parent.querySelectorAll(n)}};var mr="$";function br(n,t,e,i,r,o){for(var a,s=0,l=t.length,u=o.length;st?1:n>=t?0:NaN}function wr(n){return function(){this.removeAttribute(n)}}function xr(n){return function(){this.removeAttributeNS(n.space,n.local)}}function kr(n,t){return function(){this.setAttribute(n,t)}}function Sr(n,t){return function(){this.setAttributeNS(n.space,n.local,t)}}function Mr(n,t){return function(){var e=t.apply(this,arguments);null==e?this.removeAttribute(n):this.setAttribute(n,e)}}function Tr(n,t){return function(){var e=t.apply(this,arguments);null==e?this.removeAttributeNS(n.space,n.local):this.setAttributeNS(n.space,n.local,e)}}function _r(n){return n.ownerDocument&&n.ownerDocument.defaultView||n.document&&n||n.defaultView}function Ar(n){return function(){this.style.removeProperty(n)}}function Er(n,t,e){return function(){this.style.setProperty(n,t,e)}}function Cr(n,t,e){return function(){var i=t.apply(this,arguments);null==i?this.style.removeProperty(n):this.style.setProperty(n,i,e)}}function Nr(n){return function(){delete this[n]}}function Lr(n,t){return function(){this[n]=t}}function Or(n,t){return function(){var e=t.apply(this,arguments);null==e?delete this[n]:this[n]=e}}function Dr(n){return n.trim().split(/^|\s+/)}function Ir(n){return n.classList||new Rr(n)}function Rr(n){this._node=n,this._names=Dr(n.getAttribute("class")||"")}function Fr(n,t){for(var e=Ir(n),i=-1,r=t.length;++i=0&&(this._names.splice(t,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(n){return this._names.indexOf(n)>=0}};var Jr={},no=null;function to(n,t,e){return n=eo(n,t,e),function(t){var e=t.relatedTarget;e&&(e===this||8&e.compareDocumentPosition(this))||n.call(this,t)}}function eo(n,t,e){return function(i){var r=no;no=i;try{n.call(this,this.__data__,t,e)}finally{no=r}}}function io(n){return function(){var t=this.__on;if(t){for(var e,i=0,r=-1,o=t.length;id}l.mouse("drag")}function g(){ho(no.view).on("mousemove.drag mouseup.drag",null),function(n,t){var e=n.document.documentElement,i=ho(n).on("dragstart.drag",null);t&&(i.on("click.drag",yo,!0),setTimeout((function(){i.on("click.drag",null)}),0)),"onselectstart"in e?i.on("selectstart.drag",null):(e.style.MozUserSelect=e.__noselect,delete e.__noselect)}(no.view,e),yo(),l.mouse("end")}function m(){if(r.apply(this,arguments)){var n,t,e=no.changedTouches,i=o.apply(this,arguments),a=e.length;for(n=0;n=x&&(x=w+1);!(v=b[x])&&++x=0;)(i=r[o])&&(a&&4^i.compareDocumentPosition(a)&&a.parentNode.insertBefore(i,a),a=i);return this},sort:function(n){function t(t,e){return t&&e?n(t.__data__,e.__data__):!t-!e}n||(n=vr);for(var e=this._groups,i=e.length,r=new Array(i),o=0;o1?this.each((null==t?Ar:"function"==typeof t?Cr:Er)(n,t,null==e?"":e)):function(n,t){return n.style.getPropertyValue(t)||_r(n).getComputedStyle(n,null).getPropertyValue(t)}(this.node(),n)},property:function(n,t){return arguments.length>1?this.each((null==t?Nr:"function"==typeof t?Or:Lr)(n,t)):this.node()[n]},classed:function(n,t){var e=Dr(n+"");if(arguments.length<2){for(var i=Ir(this.node()),r=-1,o=e.length;++r=0&&(t=n.slice(e+1),n=n.slice(0,e)),{type:n,name:t}}))}(n+""),a=o.length;if(!(arguments.length<2)){for(s=t?ro:io,null==e&&(e=!1),i=0;i\n :host {\n position: relative;\n display: inline-block;\n }\n\n :host(:focus) {\n outline: none;\n }\n\n .background {\n padding: 9px 0;\n color: white;\n position: relative;\n }\n\n .track {\n height: 3px;\n width: 100%;\n border-radius: 2px;\n background-color: hsla(0, 0%, 0%, 0.2);\n }\n\n .track-fill {\n position: absolute;\n top: 9px;\n height: 3px;\n border-radius: 4px;\n background-color: hsl(24, 100%, 50%);\n }\n\n .knob-container {\n position: absolute;\n top: 10px;\n }\n\n .knob {\n position: absolute;\n top: -6px;\n left: -6px;\n width: 13px;\n height: 13px;\n background-color: hsl(24, 100%, 50%);\n border-radius: 50%;\n transition-property: transform;\n transition-duration: 0.18s;\n transition-timing-function: ease;\n }\n .mousedown .knob {\n transform: scale(1.5);\n }\n\n .knob-highlight {\n position: absolute;\n top: -6px;\n left: -6px;\n width: 13px;\n height: 13px;\n background-color: hsla(0, 0%, 0%, 0.1);\n border-radius: 50%;\n transition-property: transform;\n transition-duration: 0.18s;\n transition-timing-function: ease;\n }\n\n .focus .knob-highlight {\n transform: scale(2);\n }\n\n .ticks {\n position: absolute;\n top: 16px;\n height: 4px;\n width: 100%;\n z-index: -1;\n }\n\n .ticks .tick {\n position: absolute;\n height: 100%;\n border-left: 1px solid hsla(0, 0%, 0%, 0.2);\n }\n\n\n\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n"),Ao=37,Eo=38,Co=39,No=40,Lo=33,Oo=34,Do=35,Io=36,Ro=function(n){function t(){return f(this,t),s(this,t,arguments)}return d(t,n),m(t,[{key:"connectedCallback",value:function(){var n=this;this.connected=!0,this.setAttribute("role","slider"),this.hasAttribute("tabindex")||this.setAttribute("tabindex",0),this.mouseEvent=!1,this.knob=this.root.querySelector(".knob-container"),this.background=this.root.querySelector(".background"),this.trackFill=this.root.querySelector(".track-fill"),this.track=this.root.querySelector(".track"),this.min=this.min?this.min:0,this.max=this.max?this.max:100,this.scale=fe().domain([this.min,this.max]).range([0,1]).clamp(!0),this.origin=void 0!==this.origin?this.origin:this.min,this.step=this.step?this.step:1,this.update(this.value?this.value:0),this.ticks=!!this.ticks&&this.ticks,this.renderTicks(),this.drag=To().container(this.background).on("start",(function(){n.mouseEvent=!0,n.background.classList.add("mousedown"),n.changeValue=n.value,n.dragUpdate()})).on("drag",(function(){n.dragUpdate()})).on("end",(function(){n.mouseEvent=!1,n.background.classList.remove("mousedown"),n.dragUpdate(),n.changeValue!==n.value&&n.dispatchChange(),n.changeValue=n.value})),this.drag(ho(this.background)),this.addEventListener("focusin",(function(){n.mouseEvent||n.background.classList.add("focus")})),this.addEventListener("focusout",(function(){n.background.classList.remove("focus")})),this.addEventListener("keydown",this.onKeyDown)}},{key:"attributeChangedCallback",value:function(n,t,e){isNaN(e)||null==e||("min"==n&&(this.min=+e,this.setAttribute("aria-valuemin",this.min)),"max"==n&&(this.max=+e,this.setAttribute("aria-valuemax",this.max)),"value"==n&&this.update(+e),"origin"==n&&(this.origin=+e),"step"==n&&e>0&&(this.step=+e),"ticks"==n&&(this.ticks=""===e||e))}},{key:"onKeyDown",value:function(n){this.changeValue=this.value;var t=!1;switch(n.keyCode){case Ao:case No:this.update(this.value-this.step),t=!0;break;case Co:case Eo:this.update(this.value+this.step),t=!0;break;case Lo:case Oo:this.update(this.value+10*this.step),t=!0;break;case Io:this.update(this.min),t=!0;break;case Do:this.update(this.max),t=!0}t&&(this.background.classList.add("focus"),n.preventDefault(),n.stopPropagation(),this.changeValue!==this.value&&this.dispatchChange())}},{key:"validateValueRange",value:function(n,t,e){return Math.max(Math.min(t,e),n)}},{key:"quantizeValue",value:function(n,t){return Math.round(n/t)*t}},{key:"dragUpdate",value:function(){var n=this.background.getBoundingClientRect(),t=no.x,e=n.width;this.update(this.scale.invert(t/e))}},{key:"update",value:function(n){var t=n;"any"!==this.step&&(t=this.quantizeValue(n,this.step)),t=this.validateValueRange(this.min,this.max,t),this.connected&&(this.knob.style.left=100*this.scale(t)+"%",this.trackFill.style.width=100*this.scale(this.min+Math.abs(t-this.origin))+"%",this.trackFill.style.left=100*this.scale(Math.min(t,this.origin))+"%"),this.value!==t&&(this.value=t,this.setAttribute("aria-valuenow",this.value),this.dispatchInput())}},{key:"dispatchChange",value:function(){var n=new Event("change");this.dispatchEvent(n,{})}},{key:"dispatchInput",value:function(){var n=new Event("input");this.dispatchEvent(n,{})}},{key:"renderTicks",value:function(){var n=this,t=this.root.querySelector(".ticks");!1!==this.ticks?(this.ticks>0?this.scale.ticks(this.ticks):"any"===this.step?this.scale.ticks():function(n,t,e){n=+n,t=+t,e=(r=arguments.length)<2?(t=n,n=0,1):r<3?1:+e;for(var i=-1,r=0|Math.max(0,Math.ceil((t-n)/e)),o=new Array(r);++i\n \n\n',Uo=function(n){function t(){return f(this,t),s(this,t,arguments)}return d(t,n),m(t)}(x("distill-header",'\n\n\n'),!1)(HTMLElement));var Po=function(n){function t(){return f(this,t),s(this,t,arguments)}return d(t,n),m(t,[{key:"frontMatter",set:function(n){this.innerHTML=function(n){var t="\n\n";void 0!==n.githubUrl&&(t+='\n

    Updates and Corrections

    \n

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

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

    Reuse

    \n

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

    \n ')),void 0!==n.publishedDate&&(t+='\n

    Citation

    \n

    For attribution in academic contexts, please cite this work as

    \n
    '.concat(n.concatenatedAuthors,', "').concat(n.title,'", Distill, ').concat(n.publishedYear,'.
    \n

    BibTeX citation

    \n
    ').concat(function(n){return"@article{".concat(n.slug,",\n  author = {").concat(n.bibtexAuthors,"},\n  title = {").concat(n.title,"},\n  journal = {").concat(n.journal.title,"},\n  year = {").concat(n.publishedYear,"},\n  note = {").concat(n.url,"},\n  doi = {").concat(n.doi,"}\n}")}(n),"
    \n ")),t}(n)}}],[{key:"is",get:function(){return"distill-appendix"}}])}(o(HTMLElement)),Ho=function(n){function t(){return f(this,t),s(this,t,arguments)}return d(t,n),m(t)}(x("distill-footer",'\n\n\n
    \n\n is dedicated to clear explanations of machine learning\n\n \n\n
    \n\n'))(HTMLElement));window.distill={runlevel:0,initialize:function(){if(window.distill.runlevel<1)throw new Error("Insufficient Runlevel for Distill Template!");if("distill"in window&&window.distill.templateIsLoading)throw new Error("Runlevel 1: Distill Template is getting loaded more than once, aborting!");window.distill.templateIsLoading=!0,console.debug("Runlevel 1: Distill Template has started loading."),function(n){var t="distill-prerendered-styles";if(!n.getElementById(t)){var e=n.createElement("style");e.id=t,e.type="text/css";var i=n.createTextNode(q);e.appendChild(i);var r=n.head.querySelector("script");n.head.insertBefore(e,r)}}(document),console.debug("Runlevel 1: Static Distill styles have been added."),console.debug("Runlevel 1->2."),window.distill.runlevel+=1;for(var n=0,t=Object.entries($.listeners);n3."),window.distill.runlevel+=1;var o=[G,V,X,en,rn,on,an,ln,un,cn,j,dn,hn,N,pn,fn,gn,Ro,bn],s=[Uo,Po,Ho];if(window.distill.runlevel<2)throw new Error("Insufficient Runlevel for adding custom elements!");var l,u=a(o.concat(s));try{for(u.s();!(l=u.n()).done;){var c=l.value;console.debug("Runlevel 2: Registering custom element: "+c.is),customElements.define(c.is,c)}}catch(n){u.e(n)}finally{u.f()}console.debug("Runlevel 3: Distill Template finished registering custom elements."),console.debug("Runlevel 3->4."),window.distill.runlevel+=1,P()&&$.listeners.DOMContentLoaded(),console.debug("Runlevel 4: Distill Template initialisation complete."),window.distill.templateIsLoading=!1,window.distill.templateHasLoaded=!0},templateIsLoading:!1},W.browserSupportsAllFeatures()?(console.debug("Runlevel 0: No need for polyfills."),console.debug("Runlevel 0->1."),window.distill.runlevel+=1,window.distill.initialize()):(console.debug("Runlevel 0: Distill Template is loading polyfills."),W.load(window.distill.initialize))},void 0===(r=i.call(t,e,t,n))||(n.exports=r)}},t={};function e(i){var r=t[i];if(void 0!==r)return r.exports;var o=t[i]={exports:{}};return n[i](o,o.exports,e),o.exports}e.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(n){if("object"==typeof window)return window}}(),e(265)})(); +(()=>{var n={265:(n,t,e)=>{var i,r;function o(n){var t="function"==typeof Map?new Map:void 0;return o=function(n){if(null===n||!function(n){try{return-1!==Function.toString.call(n).indexOf("[native code]")}catch(t){return"function"==typeof n}}(n))return n;if("function"!=typeof n)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(n))return t.get(n);t.set(n,e)}function e(){return function(n,t,e){if(l())return Reflect.construct.apply(null,arguments);var i=[null];i.push.apply(i,t);var r=new(n.bind.apply(n,i));return e&&h(r,e.prototype),r}(n,arguments,c(this).constructor)}return e.prototype=Object.create(n.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),h(e,n)},o(n)}function a(n,t){var e="undefined"!=typeof Symbol&&n[Symbol.iterator]||n["@@iterator"];if(!e){if(Array.isArray(n)||(e=v(n))||t&&n&&"number"==typeof n.length){e&&(n=e);var i=0,r=function(){};return{s:r,n:function(){return i>=n.length?{done:!0}:{done:!1,value:n[i++]}},e:function(n){throw n},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,s=!1;return{s:function(){e=e.call(n)},n:function(){var n=e.next();return a=n.done,n},e:function(n){s=!0,o=n},f:function(){try{a||null==e.return||e.return()}finally{if(s)throw o}}}}function s(n,t,e){return t=c(t),function(n,t){if(t&&("object"==p(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(n){if(void 0===n)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return n}(n)}(n,l()?Reflect.construct(t,e||[],c(n).constructor):t.apply(n,e))}function l(){try{var n=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(n){}return(l=function(){return!!n})()}function u(){return u="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(n,t,e){var i=function(n,t){for(;!{}.hasOwnProperty.call(n,t)&&null!==(n=c(n)););return n}(n,t);if(i){var r=Object.getOwnPropertyDescriptor(i,t);return r.get?r.get.call(arguments.length<3?n:e):r.value}},u.apply(null,arguments)}function c(n){return c=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},c(n)}function d(n,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");n.prototype=Object.create(t&&t.prototype,{constructor:{value:n,writable:!0,configurable:!0}}),Object.defineProperty(n,"prototype",{writable:!1}),t&&h(n,t)}function h(n,t){return h=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(n,t){return n.__proto__=t,n},h(n,t)}function p(n){return p="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(n){return typeof n}:function(n){return n&&"function"==typeof Symbol&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},p(n)}function f(n,t){if(!(n instanceof t))throw new TypeError("Cannot call a class as a function")}function g(n,t){for(var e=0;en.length)&&(t=n.length);for(var e=0,i=Array(t);e2?this.authors[0].lastName+", et al.":2===this.authors.length?this.authors[0].lastName+" & "+this.authors[1].lastName:1===this.authors.length?this.authors[0].lastName:void 0}},{key:"bibtexAuthors",get:function(){return this.authors.map((function(n){return n.lastName+", "+n.firstName})).join(" and ")}},{key:"slug",get:function(){var n="";return this.authors.length&&(n+=this.authors[0].lastName.toLowerCase(),n+=this.publishedYear,n+=this.title.split(" ")[0].toLowerCase()),n||"Untitled"}},{key:"bibliographyEntries",get:function(){var n=this;return new Map(this.citations.map((function(t){return[t,n.bibliography.get(t)]})))}},{key:"bibliography",get:function(){return this._bibliography},set:function(n){n instanceof Map?this._bibliography=n:"object"===p(n)&&(this._bibliography=function(n){var t=new Map;for(var e in n)n.hasOwnProperty(e)&&t.set(e,n[e]);return t}(n))}},{key:"assignToObject",value:function(n){Object.assign(n,this),n.bibliography=function(n){return Array.from(n).reduce((function(n,t){var e,i,r,o=y(t,2),a=o[0],s=o[1];return Object.assign(n,(e={},r=s,(i=b(i=a))in e?Object.defineProperty(e,i,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[i]=r,e))}),{})}(this.bibliographyEntries),n.url=this.url,n.doi=this.doi,n.githubUrl=this.githubUrl,n.previewURL=this.previewURL,this.publishedDate&&(n.volume=this.volume,n.issue=this.issue,n.publishedDateRFC=this.publishedDateRFC,n.publishedYear=this.publishedYear,n.publishedMonth=this.publishedMonth,n.publishedDay=this.publishedDay,n.publishedMonthPadded=this.publishedMonthPadded,n.publishedDayPadded=this.publishedDayPadded),this.updatedDate&&(n.updatedDateRFC=this.updatedDateRFC),n.concatenatedAuthors=this.concatenatedAuthors,n.bibtexAuthors=this.bibtexAuthors,n.slug=this.slug}}],[{key:"fromObject",value:function(t){var e=new n;return Object.assign(e,t),e}}])}(),g=function(n){return function(n){function t(){var n;f(this,t),n=s(this,t);var e={childList:!0,characterData:!0,subtree:!0},i=new MutationObserver((function(){i.disconnect(),n.renderIfPossible(),i.observe(n,e)}));return i.observe(n,e),n}return d(t,n),m(t,[{key:"connectedCallback",value:function(){u(c(t.prototype),"connectedCallback",this).call(this),this.renderIfPossible()}},{key:"renderIfPossible",value:function(){this.textContent&&this.root&&this.renderContent()}},{key:"renderContent",value:function(){console.error("Your class ".concat(this.constructor.name," must provide a custom renderContent() method!"))}}])}(n)},x=function(n,t){var e=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];return function(i){var r=document.createElement("template");return r.innerHTML=t,e&&"ShadyCSS"in window&&ShadyCSS.prepareTemplate(r,n),function(t){function i(){var n;return f(this,i),(n=s(this,i)).clone=document.importNode(r.content,!0),e&&(n.attachShadow({mode:"open"}),n.shadowRoot.appendChild(n.clone)),n}return d(i,t),m(i,[{key:"connectedCallback",value:function(){this.hasAttribute("distill-prerendered")||(e?"ShadyCSS"in window&&ShadyCSS.styleElement(this):this.insertBefore(this.clone,this.firstChild))}},{key:"root",get:function(){return e?this.shadowRoot:this}},{key:"$",value:function(n){return this.root.querySelector(n)}},{key:"$$",value:function(n){return this.root.querySelectorAll(n)}}],[{key:"is",get:function(){return n}}])}(i)}},k='/*\n * Copyright 2018 The Distill Template Authors\n *\n * Licensed under the Apache License, Version 2.0 (the "License");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an "AS IS" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nspan.katex-display {\n text-align: left;\n padding: 8px 0 8px 0;\n margin: 0.5em 0 0.5em 1em;\n}\n\nspan.katex {\n -webkit-font-smoothing: antialiased;\n color: rgba(0, 0, 0, 0.8);\n font-size: 1.18em;\n}\n',S=function(n,t,e){for(var i=e,r=0,o=n.length;i',N=function(n){function t(){return f(this,t),s(this,t,arguments)}return d(t,n),m(t,[{key:"options",get:function(){var n={displayMode:this.hasAttribute("block")};return Object.assign(n,t.katexOptions)}},{key:"connectedCallback",value:function(){u(c(t.prototype),"connectedCallback",this).call(this),t.katexAdded||t.addKatex()}},{key:"renderContent",value:function(){if("undefined"!=typeof katex){var n=this.root.querySelector("#katex-container");katex.render(this.textContent,n,this.options)}}}],[{key:"katexOptions",get:function(){return t._katexOptions||(t._katexOptions={delimiters:[{left:"$$",right:"$$",display:!1}]}),t._katexOptions},set:function(n){t._katexOptions=n,t.katexOptions.delimiters&&(t.katexAdded?t.katexLoadedCallback():t.addKatex())}},{key:"katexLoadedCallback",value:function(){var n,e=a(document.querySelectorAll("d-math"));try{for(e.s();!(n=e.n()).done;)n.value.renderContent()}catch(n){e.e(n)}finally{e.f()}t.katexOptions.delimiters&&E(document.body,t.katexOptions)}},{key:"addKatex",value:function(){document.head.insertAdjacentHTML("beforeend",C);var n=document.createElement("script");n.src="https://distill.pub/third-party/katex/katex.min.js",n.async=!0,n.onload=t.katexLoadedCallback,n.crossorigin="anonymous",document.head.appendChild(n),t.katexAdded=!0}}])}(g(x("d-math","\n".concat(C,"\n\n\n"))(HTMLElement)));function L(){var n,t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:document,i=new Set,r=a(e.querySelectorAll("d-cite"));try{for(r.s();!(n=r.n()).done;){var o,s=n.value,l=a((s.getAttribute("key")||s.getAttribute("bibtex-key")).split(",").map((function(n){return n.trim()})));try{for(l.s();!(o=l.n()).done;){var u=o.value;i.add(u)}}catch(n){l.e(n)}finally{l.f()}}}catch(n){r.e(n)}finally{r.f()}return function(n){if(Array.isArray(n))return w(n)}(t=i)||function(n){if("undefined"!=typeof Symbol&&null!=n[Symbol.iterator]||null!=n["@@iterator"])return Array.from(n)}(t)||v(t)||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 O(n,t,e,i){if(null==n.author)return"";var r=n.author.split(" and "),o=r.map((function(n){if(-1!=(n=n.trim()).indexOf(","))var e=n.split(",")[0].trim(),i=n.split(",")[1];else-1!=n.indexOf(" ")?(e=n.split(" ").slice(-1)[0].trim(),i=n.split(" ").slice(0,-1).join(" ")):e=n.trim();var r="";return null!=i&&(r=(r=i.trim().split(" ").map((function(n){return n.trim()[0]}))).join(".")+"."),t.replace("${F}",i).replace("${L}",e).replace("${I}",r).trim()}));return r.length>1?o.slice(0,r.length-1).join(e)+((i||e)+o[r.length-1]):o[0]}function D(n){var t=n.journal||n.booktitle||"";if("volume"in n){var e=n.issue||n.number;e=null!=e?"("+e+")":"",t+=", Vol "+n.volume+e}return"pages"in n&&(t+=", pp. "+n.pages),""!=t&&(t+=". "),"publisher"in n&&"."!=(t+=n.publisher)[t.length-1]&&(t+="."),t}function I(n){if("url"in n){var t=n.url,e=/arxiv\.org\/abs\/([0-9\.]*)/.exec(t);if(null!=e&&(t="http://arxiv.org/pdf/".concat(e[1],".pdf")),".pdf"==t.slice(-4))var i="PDF";else".html"==t.slice(-5)&&(i="HTML");return'  [').concat(i||"link","]")}return""}function R(n,t){return"doi"in n?"".concat(t?"
    ":"",' DOI: ').concat(n.doi,""):""}function F(n,t){if(n){var e=function(n){return''+n.title+" "}(n);return e+=I(n)+"
    ",n.author&&(e+=O(n,"${L}, ${I}",", "," and "),(n.year||n.date)&&(e+=", ")),n.year||n.date?e+=(n.year||n.date)+". ":e+=". ",(e+=D(n))+R(n)}return"?"}function U(n){if(n){var t="";t+=""+n.title+"",t+=I(n),t+="
    ";var e=O(n,"${I} ${L}",", ")+".",i=D(n).trim()+" "+n.year+". "+R(n,!0);return(e+i).length"+i,t}return"?"}function P(){return-1!==["interactive","complete"].indexOf(document.readyState)}function H(n){var t=n.firstElementChild;if(t){if("json"==t.getAttribute("type").split("/")[1]){var e=t.textContent;return function(n){var t,e=a(n.authors);try{for(e.s();!(t=e.n()).done;){var i=t.value,r=Boolean(i.affiliation),o=Boolean(i.affiliations);if(r)if(o)console.warn("Author ".concat(i.author,' has both old-style ("affiliation" & "affiliationURL") and new style ("affiliations") affiliation information!'));else{var s={name:i.affiliation};i.affiliationURL&&(s.url=i.affiliationURL),i.affiliations=[s]}}}catch(n){e.e(n)}finally{e.f()}return n}(JSON.parse(e))}console.error("Distill only supports JSON frontmatter tags anymore; no more YAML.")}else console.error("You added a frontmatter tag but did not provide a script tag with front matter data in it. Please take a look at our templates.");return{}}N.katexAdded=!1,N.inlineMathRendered=!1,window.DMath=N;var j=function(n){function t(){var n;f(this,t),n=s(this,t);return new MutationObserver((function(t){var e,i=a(t);try{for(i.s();!(e=i.n()).done;){var r=e.value;if("SCRIPT"===r.target.nodeName||"characterData"===r.type){var o=H(n);n.notify(o)}}}catch(n){i.e(n)}finally{i.f()}})).observe(n,{childList:!0,characterData:!0,subtree:!0}),n}return d(t,n),m(t,[{key:"notify",value:function(n){var t=new CustomEvent("onFrontMatterChanged",{detail:n,bubbles:!0});document.dispatchEvent(t)}}],[{key:"is",get:function(){return"d-front-matter"}}])}(o(HTMLElement));var z=new h,$={frontMatter:z,waitingOn:{bibliography:[],citations:[]},listeners:{onCiteKeyCreated:function(n){var t=y(n.detail,2),e=t[0],i=t[1];if(z.citationsCollected)if(z.bibliographyParsed){var r=i.map((function(n){return z.citations.indexOf(n)}));e.numbers=r;var o=i.map((function(n){return z.bibliography.get(n)}));e.entries=o}else $.waitingOn.bibliography.push((function(){return $.listeners.onCiteKeyCreated(n)}));else $.waitingOn.citations.push((function(){return $.listeners.onCiteKeyCreated(n)}))},onCiteKeyChanged:function(){z.citations=L(),z.citationsCollected=!0;var n,t=a($.waitingOn.citations.slice());try{for(t.s();!(n=t.n()).done;)(0,n.value)()}catch(n){t.e(n)}finally{t.f()}var e=document.querySelector("d-citation-list"),i=new Map(z.citations.map((function(n){return[n,z.bibliography.get(n)]})));e.citations=i;var r,o=a(document.querySelectorAll("d-cite"));try{for(o.s();!(r=o.n()).done;){var s=r.value;console.log(s);var l=s.keys,u=l.map((function(n){return z.citations.indexOf(n)}));s.numbers=u;var c=l.map((function(n){return z.bibliography.get(n)}));s.entries=c}}catch(n){o.e(n)}finally{o.f()}},onCiteKeyRemoved:function(n){$.listeners.onCiteKeyChanged(n)},onBibliographyChanged:function(n){var t=document.querySelector("d-citation-list"),e=n.detail;z.bibliography=e,z.bibliographyParsed=!0;var i,r=a($.waitingOn.bibliography.slice());try{for(r.s();!(i=r.n()).done;)(0,i.value)()}catch(n){r.e(n)}finally{r.f()}if(z.citationsCollected)if(t.hasAttribute("distill-prerendered"))console.debug("Citation list was prerendered; not updating it.");else{var o=new Map(z.citations.map((function(n){return[n,z.bibliography.get(n)]})));t.citations=o}else $.waitingOn.citations.push((function(){$.listeners.onBibliographyChanged({target:n.target,detail:n.detail})}))},onFootnoteChanged:function(){var n=document.querySelector("d-footnote-list");if(n){var t=document.querySelectorAll("d-footnote");n.footnotes=t}},onFrontMatterChanged:function(n){var t,e,i=n.detail;e=i,(t=z).title=e.title,e.published&&(e.published instanceof Date?t.publishedDate=e.published:e.published.constructor===String&&(t.publishedDate=new Date(e.published))),e.publishedDate&&(e.publishedDate instanceof Date?t.publishedDate=e.publishedDate:e.publishedDate.constructor===String?t.publishedDate=new Date(e.publishedDate):console.error("Don't know what to do with published date: "+e.publishedDate)),t.description=e.description,t.authors=e.authors.map((function(n){return new l(n)})),t.katex=e.katex,t.password=e.password,e.doi&&(t.doi=e.doi);var r=document.querySelector("d-interstitial");if(r&&(void 0!==z.password?r.password=z.password:r.parentElement.removeChild(r)),!document.body.hasAttribute("distill-prerendered")&&P()){!function(n,t){var e=n.body,i=e.querySelector("d-article");if(i){var r=n.querySelector("d-byline");r||(t.authors?(r=n.createElement("d-byline"),e.insertBefore(r,i)):console.warn("No authors found in front matter; please add them before submission!"));var o=n.querySelector("d-title");o||(o=n.createElement("d-title"),e.insertBefore(o,r));var a=o.querySelector("h1");a||((a=n.createElement("h1")).textContent=t.title,o.insertBefore(a,o.firstChild));var s=void 0!==t.password,l=e.querySelector("d-interstitial");if(s&&!l){var u="undefined"!=typeof window,c=u&&window.location.hostname.includes("localhost");u&&c||((l=n.createElement("d-interstitial")).password=t.password,e.insertBefore(l,e.firstChild))}else!s&&l&&l.parentElement.removeChild(this);var d=n.querySelector("d-appendix");d||(d=n.createElement("d-appendix"),n.body.appendChild(d));var h=n.querySelector("d-footnote-list");h||(h=n.createElement("d-footnote-list"),d.appendChild(h));var p=n.querySelector("d-citation-list");p||(p=n.createElement("d-citation-list"),d.appendChild(p))}else console.warn("No d-article tag found; skipping adding optional components!")}(document,z);var o=document.querySelector("distill-appendix");o&&(o.frontMatter=z);var a=document.querySelector("d-byline");a&&(a.frontMatter=z),i.katex&&(N.katexOptions=i.katex)}},DOMContentLoaded:function(){if($.loaded)console.warn("Controller received DOMContentLoaded but was already loaded!");else if(P()){$.loaded=!0,console.debug("Runlevel 4: Controller running DOMContentLoaded");var n=document.querySelector("d-front-matter");if(n){var t=H(n);$.listeners.onFrontMatterChanged({detail:t})}z.citations=L(),z.citationsCollected=!0;var e,i=a($.waitingOn.citations.slice());try{for(i.s();!(e=i.n()).done;)(0,e.value)()}catch(n){i.e(n)}finally{i.f()}if(z.bibliographyParsed){var r,o=a($.waitingOn.bibliography.slice());try{for(o.s();!(r=o.n()).done;)(0,r.value)()}catch(n){o.e(n)}finally{o.f()}}var s=document.querySelector("d-footnote-list");if(s){var l=document.querySelectorAll("d-footnote");s.footnotes=l}}else console.warn("Controller received DOMContentLoaded at document.readyState: "+document.readyState+"!")}}},q='/*\n * Copyright 2018 The Distill Template Authors\n *\n * Licensed under the Apache License, Version 2.0 (the "License");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an "AS IS" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nhtml {\n font-size: 14px;\n\tline-height: 1.6em;\n /* font-family: "Libre Franklin", "Helvetica Neue", sans-serif; */\n font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", Arial, sans-serif;\n /*, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";*/\n text-size-adjust: 100%;\n -ms-text-size-adjust: 100%;\n -webkit-text-size-adjust: 100%;\n}\n\n@media(min-width: 768px) {\n html {\n font-size: 16px;\n }\n}\n\nbody {\n margin: 0;\n}\n\na {\n color: #004276;\n}\n\nfigure {\n margin: 0;\n}\n\ntable {\n\tborder-collapse: collapse;\n\tborder-spacing: 0;\n}\n\ntable th {\n\ttext-align: left;\n}\n\ntable thead {\n border-bottom: 1px solid rgba(0, 0, 0, 0.05);\n}\n\ntable thead th {\n padding-bottom: 0.5em;\n}\n\ntable tbody :first-child td {\n padding-top: 0.5em;\n}\n\npre {\n overflow: auto;\n max-width: 100%;\n}\n\np {\n margin-top: 0;\n margin-bottom: 1em;\n}\n\nsup, sub {\n vertical-align: baseline;\n position: relative;\n top: -0.4em;\n line-height: 1em;\n}\n\nsub {\n top: 0.4em;\n}\n\n.kicker,\n.marker {\n font-size: 15px;\n font-weight: 600;\n color: rgba(0, 0, 0, 0.5);\n}\n\n\n/* Headline */\n\n@media(min-width: 1024px) {\n d-title h1 span {\n display: block;\n }\n}\n\n/* Figure */\n\nfigure {\n position: relative;\n margin-bottom: 2.5em;\n margin-top: 1.5em;\n}\n\nfigcaption+figure {\n\n}\n\nfigure img {\n width: 100%;\n}\n\nfigure svg text,\nfigure svg tspan {\n}\n\nfigcaption,\n.figcaption {\n color: rgba(0, 0, 0, 0.6);\n font-size: 12px;\n line-height: 1.5em;\n}\n\n@media(min-width: 1024px) {\nfigcaption,\n.figcaption {\n font-size: 13px;\n }\n}\n\nfigure.external img {\n background: white;\n border: 1px solid rgba(0, 0, 0, 0.1);\n box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1);\n padding: 18px;\n box-sizing: border-box;\n}\n\nfigcaption a {\n color: rgba(0, 0, 0, 0.6);\n}\n\nfigcaption b,\nfigcaption strong, {\n font-weight: 600;\n color: rgba(0, 0, 0, 1.0);\n}\n/*\n * Copyright 2018 The Distill Template Authors\n *\n * Licensed under the Apache License, Version 2.0 (the "License");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an "AS IS" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n@supports not (display: grid) {\n .base-grid,\n distill-header,\n d-title,\n d-abstract,\n d-article,\n d-appendix,\n distill-appendix,\n d-byline,\n d-footnote-list,\n d-citation-list,\n distill-footer {\n display: block;\n padding: 8px;\n }\n}\n\n.base-grid,\ndistill-header,\nd-title,\nd-abstract,\nd-article,\nd-appendix,\ndistill-appendix,\nd-byline,\nd-footnote-list,\nd-citation-list,\ndistill-footer {\n display: grid;\n justify-items: stretch;\n grid-template-columns: [screen-start] 8px [page-start kicker-start text-start gutter-start middle-start] 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr [text-end page-end gutter-end kicker-end middle-end] 8px [screen-end];\n grid-column-gap: 8px;\n}\n\n.grid {\n display: grid;\n grid-column-gap: 8px;\n}\n\n@media(min-width: 768px) {\n .base-grid,\n distill-header,\n d-title,\n d-abstract,\n d-article,\n d-appendix,\n distill-appendix,\n d-byline,\n d-footnote-list,\n d-citation-list,\n distill-footer {\n grid-template-columns: [screen-start] 1fr [page-start kicker-start middle-start text-start] 45px 45px 45px 45px 45px 45px 45px 45px [ kicker-end text-end gutter-start] 45px [middle-end] 45px [page-end gutter-end] 1fr [screen-end];\n grid-column-gap: 16px;\n }\n\n .grid {\n grid-column-gap: 16px;\n }\n}\n\n@media(min-width: 1000px) {\n .base-grid,\n distill-header,\n d-title,\n d-abstract,\n d-article,\n d-appendix,\n distill-appendix,\n d-byline,\n d-footnote-list,\n d-citation-list,\n distill-footer {\n grid-template-columns: [screen-start] 1fr [page-start kicker-start] 50px [middle-start] 50px [text-start kicker-end] 50px 50px 50px 50px 50px 50px 50px 50px [text-end gutter-start] 50px [middle-end] 50px [page-end gutter-end] 1fr [screen-end];\n grid-column-gap: 16px;\n }\n\n .grid {\n grid-column-gap: 16px;\n }\n}\n\n@media(min-width: 1180px) {\n .base-grid,\n distill-header,\n d-title,\n d-abstract,\n d-article,\n d-appendix,\n distill-appendix,\n d-byline,\n d-footnote-list,\n d-citation-list,\n distill-footer {\n grid-template-columns: [screen-start] 1fr [page-start kicker-start] 60px [middle-start] 60px [text-start kicker-end] 60px 60px 60px 60px 60px 60px 60px 60px [text-end gutter-start] 60px [middle-end] 60px [page-end gutter-end] 1fr [screen-end];\n grid-column-gap: 32px;\n }\n\n .grid {\n grid-column-gap: 32px;\n }\n}\n\n\n\n\n.base-grid {\n grid-column: screen;\n}\n\n/* .l-body,\nd-article > * {\n grid-column: text;\n}\n\n.l-page,\nd-title > *,\nd-figure {\n grid-column: page;\n} */\n\n.l-gutter {\n grid-column: gutter;\n}\n\n.l-text,\n.l-body {\n grid-column: text;\n}\n\n.l-page {\n grid-column: page;\n}\n\n.l-body-outset {\n grid-column: middle;\n}\n\n.l-page-outset {\n grid-column: page;\n}\n\n.l-screen {\n grid-column: screen;\n}\n\n.l-screen-inset {\n grid-column: screen;\n padding-left: 16px;\n padding-left: 16px;\n}\n\n\n/* Aside */\n\nd-article aside {\n grid-column: gutter;\n font-size: 12px;\n line-height: 1.6em;\n color: rgba(0, 0, 0, 0.6)\n}\n\n@media(min-width: 768px) {\n aside {\n grid-column: gutter;\n }\n\n .side {\n grid-column: gutter;\n }\n}\n/*\n * Copyright 2018 The Distill Template Authors\n *\n * Licensed under the Apache License, Version 2.0 (the "License");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an "AS IS" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nd-title {\n padding: 2rem 0 1.5rem;\n contain: layout style;\n overflow-x: hidden;\n}\n\n@media(min-width: 768px) {\n d-title {\n padding: 4rem 0 1.5rem;\n }\n}\n\nd-title h1 {\n grid-column: text;\n font-size: 40px;\n font-weight: 700;\n line-height: 1.1em;\n margin: 0 0 0.5rem;\n}\n\n@media(min-width: 768px) {\n d-title h1 {\n font-size: 50px;\n }\n}\n\nd-title p {\n font-weight: 300;\n font-size: 1.2rem;\n line-height: 1.55em;\n grid-column: text;\n}\n\nd-title .status {\n margin-top: 0px;\n font-size: 12px;\n color: #009688;\n opacity: 0.8;\n grid-column: kicker;\n}\n\nd-title .status span {\n line-height: 1;\n display: inline-block;\n padding: 6px 0;\n border-bottom: 1px solid #80cbc4;\n font-size: 11px;\n text-transform: uppercase;\n}\n/*\n * Copyright 2018 The Distill Template Authors\n *\n * Licensed under the Apache License, Version 2.0 (the "License");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an "AS IS" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nd-byline {\n contain: style;\n overflow: hidden;\n border-top: 1px solid rgba(0, 0, 0, 0.1);\n font-size: 0.8rem;\n line-height: 1.8em;\n padding: 1.5rem 0;\n min-height: 1.8em;\n}\n\n\nd-byline .byline {\n grid-template-columns: 1fr 1fr;\n grid-column: text;\n}\n\n@media(min-width: 768px) {\n d-byline .byline {\n grid-template-columns: 1fr 1fr 1fr 1fr;\n }\n}\n\nd-byline .authors-affiliations {\n grid-column-end: span 2;\n grid-template-columns: 1fr 1fr;\n margin-bottom: 1em;\n}\n\n@media(min-width: 768px) {\n d-byline .authors-affiliations {\n margin-bottom: 0;\n }\n}\n\nd-byline h3 {\n font-size: 0.6rem;\n font-weight: 400;\n color: rgba(0, 0, 0, 0.5);\n margin: 0;\n text-transform: uppercase;\n}\n\nd-byline p {\n margin: 0;\n}\n\nd-byline a,\nd-article d-byline a {\n color: rgba(0, 0, 0, 0.8);\n text-decoration: none;\n border-bottom: none;\n}\n\nd-article d-byline a:hover {\n text-decoration: underline;\n border-bottom: none;\n}\n\nd-byline p.author {\n font-weight: 500;\n}\n\nd-byline .affiliations {\n\n}\n/*\n * Copyright 2018 The Distill Template Authors\n *\n * Licensed under the Apache License, Version 2.0 (the "License");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an "AS IS" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nd-article {\n contain: layout style;\n overflow-x: hidden;\n border-top: 1px solid rgba(0, 0, 0, 0.1);\n padding-top: 2rem;\n color: rgba(0, 0, 0, 0.8);\n}\n\nd-article > * {\n grid-column: text;\n}\n\n@media(min-width: 768px) {\n d-article {\n font-size: 16px;\n }\n}\n\n@media(min-width: 1024px) {\n d-article {\n font-size: 1.06rem;\n line-height: 1.7em;\n }\n}\n\n\n/* H2 */\n\n\nd-article .marker {\n text-decoration: none;\n border: none;\n counter-reset: section;\n grid-column: kicker;\n line-height: 1.7em;\n}\n\nd-article .marker:hover {\n border: none;\n}\n\nd-article .marker span {\n padding: 0 3px 4px;\n border-bottom: 1px solid rgba(0, 0, 0, 0.2);\n position: relative;\n top: 4px;\n}\n\nd-article .marker:hover span {\n color: rgba(0, 0, 0, 0.7);\n border-bottom: 1px solid rgba(0, 0, 0, 0.7);\n}\n\nd-article h2 {\n font-weight: 600;\n font-size: 24px;\n line-height: 1.25em;\n margin: 2rem 0 1.5rem 0;\n border-bottom: 1px solid rgba(0, 0, 0, 0.1);\n padding-bottom: 1rem;\n}\n\n@media(min-width: 1024px) {\n d-article h2 {\n font-size: 36px;\n }\n}\n\n/* H3 */\n\nd-article h3 {\n font-weight: 700;\n font-size: 18px;\n line-height: 1.4em;\n margin-bottom: 1em;\n margin-top: 2em;\n}\n\n@media(min-width: 1024px) {\n d-article h3 {\n font-size: 20px;\n }\n}\n\n/* H4 */\n\nd-article h4 {\n font-weight: 600;\n text-transform: uppercase;\n font-size: 14px;\n line-height: 1.4em;\n}\n\nd-article a {\n color: inherit;\n}\n\nd-article p,\nd-article ul,\nd-article ol,\nd-article blockquote {\n margin-top: 0;\n margin-bottom: 1em;\n margin-left: 0;\n margin-right: 0;\n}\n\nd-article blockquote {\n border-left: 2px solid rgba(0, 0, 0, 0.2);\n padding-left: 2em;\n font-style: italic;\n color: rgba(0, 0, 0, 0.6);\n}\n\nd-article a {\n border-bottom: 1px solid rgba(0, 0, 0, 0.4);\n text-decoration: none;\n}\n\nd-article a:hover {\n border-bottom: 1px solid rgba(0, 0, 0, 0.8);\n}\n\nd-article .link {\n text-decoration: underline;\n cursor: pointer;\n}\n\nd-article ul,\nd-article ol {\n padding-left: 24px;\n}\n\nd-article li {\n margin-bottom: 1em;\n margin-left: 0;\n padding-left: 0;\n}\n\nd-article li:last-child {\n margin-bottom: 0;\n}\n\nd-article pre {\n font-size: 14px;\n margin-bottom: 20px;\n}\n\nd-article hr {\n grid-column: screen;\n width: 100%;\n border: none;\n border-bottom: 1px solid rgba(0, 0, 0, 0.1);\n margin-top: 60px;\n margin-bottom: 60px;\n}\n\nd-article section {\n margin-top: 60px;\n margin-bottom: 60px;\n}\n\nd-article span.equation-mimic {\n font-family: georgia;\n font-size: 115%;\n font-style: italic;\n}\n\nd-article > d-code,\nd-article section > d-code {\n display: block;\n}\n\nd-article > d-math[block],\nd-article section > d-math[block] {\n display: block;\n}\n\n@media (max-width: 768px) {\n d-article > d-code,\n d-article section > d-code,\n d-article > d-math[block],\n d-article section > d-math[block] {\n overflow-x: scroll;\n -ms-overflow-style: none; // IE 10+\n overflow: -moz-scrollbars-none; // Firefox\n }\n\n d-article > d-code::-webkit-scrollbar,\n d-article section > d-code::-webkit-scrollbar,\n d-article > d-math[block]::-webkit-scrollbar,\n d-article section > d-math[block]::-webkit-scrollbar {\n display: none; // Safari and Chrome\n }\n}\n\nd-article .citation {\n color: #668;\n cursor: pointer;\n}\n\nd-include {\n width: auto;\n display: block;\n}\n\nd-figure {\n contain: layout style;\n}\n\n/* KaTeX */\n\n.katex, .katex-prerendered {\n contain: style;\n display: inline-block;\n}\n\n/* Tables */\n\nd-article table {\n border-collapse: collapse;\n margin-bottom: 1.5rem;\n border-bottom: 1px solid rgba(0, 0, 0, 0.2);\n}\n\nd-article table th {\n border-bottom: 1px solid rgba(0, 0, 0, 0.2);\n}\n\nd-article table td {\n border-bottom: 1px solid rgba(0, 0, 0, 0.05);\n}\n\nd-article table tr:last-of-type td {\n border-bottom: none;\n}\n\nd-article table th,\nd-article table td {\n font-size: 15px;\n padding: 2px 8px;\n}\n\nd-article table tbody :first-child td {\n padding-top: 2px;\n}\n'+k+'/*\n * Copyright 2018 The Distill Template Authors\n *\n * Licensed under the Apache License, Version 2.0 (the "License");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an "AS IS" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n@media print {\n\n @page {\n size: 8in 11in;\n @bottom-right {\n content: counter(page) " of " counter(pages);\n }\n }\n\n html {\n /* no general margins -- CSS Grid takes care of those */\n }\n\n p, code {\n page-break-inside: avoid;\n }\n\n h2, h3 {\n page-break-after: avoid;\n }\n\n d-header {\n visibility: hidden;\n }\n\n d-footer {\n display: none!important;\n }\n\n}\n';function B(n,t){console.debug("Runlevel 0: Polyfill required: "+n.name);var e=document.createElement("script");e.src=n.url,e.async=!1,t&&(e.onload=function(){t(n)}),e.onerror=function(){new Error("Runlevel 0: Polyfills failed to load script "+n.name)},document.head.appendChild(e)}var Y=[{name:"WebComponents",support:function(){return"customElements"in window&&"attachShadow"in Element.prototype&&"getRootNode"in Element.prototype&&"content"in document.createElement("template")&&"Promise"in window&&"from"in Array},url:"https://distill.pub/third-party/polyfills/webcomponents-lite.js"},{name:"IntersectionObserver",support:function(){return"IntersectionObserver"in window&&"IntersectionObserverEntry"in window},url:"https://distill.pub/third-party/polyfills/intersection-observer.js"}],W=function(){function n(){f(this,n)}return m(n,null,[{key:"browserSupportsAllFeatures",value:function(){return Y.every((function(n){return n.support()}))}},{key:"load",value:function(t){var e,i=function(e){e.loaded=!0,console.debug("Runlevel 0: Polyfill has finished loading: "+e.name),n.neededPolyfills.every((function(n){return n.loaded}))&&(console.debug("Runlevel 0: All required polyfills have finished loading."),console.debug("Runlevel 0->1."),window.distillRunlevel=1,t())},r=a(n.neededPolyfills);try{for(r.s();!(e=r.n()).done;)B(e.value,i)}catch(n){r.e(n)}finally{r.f()}}},{key:"neededPolyfills",get:function(){return n._neededPolyfills||(n._neededPolyfills=Y.filter((function(n){return!n.support()}))),n._neededPolyfills}}])}();var G=function(n){function t(){return f(this,t),s(this,t,arguments)}return d(t,n),m(t)}(x("d-abstract","\n\n\n\n"))(HTMLElement)),V=function(n){function t(){return f(this,t),s(this,t,arguments)}return d(t,n),m(t)}(x("d-appendix","\n\n\n",!1)(HTMLElement)),K=/^\s*$/,X=function(n){function t(){var n;return f(this,t),n=s(this,t),new MutationObserver((function(n){var t,e=a(n);try{for(e.s();!(t=e.n()).done;){var i,r=a(t.value.addedNodes);try{for(r.s();!(i=r.n()).done;){var o=i.value;if("#text"===o.nodeName){var s=o.nodeValue;if(!K.test(s)){console.warn("Use of unwrapped text in distill articles is discouraged as it breaks layout! Please wrap any text in a or

    tag. We found the following text: "+s);var l=document.createElement("span");l.innerHTML=o.nodeValue,o.parentNode.insertBefore(l,o),o.parentNode.removeChild(o)}}}}catch(n){r.e(n)}finally{r.f()}}}catch(n){e.e(n)}finally{e.f()}})).observe(n,{childList:!0}),n}return d(t,n),m(t,null,[{key:"is",get:function(){return"d-article"}}])}(o(HTMLElement)),Z="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:void 0!==e.g?e.g:"undefined"!=typeof self?self:{};function Q(n,t){return n(t={exports:{}},t.exports),t.exports}var J=Q((function(n,t){!function(n){function t(){this.months=["jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec"],this.notKey=[",","{","}"," ","="],this.pos=0,this.input="",this.entries=new Array,this.currentEntry="",this.setInput=function(n){this.input=n},this.getEntries=function(){return this.entries},this.isWhitespace=function(n){return" "==n||"\r"==n||"\t"==n||"\n"==n},this.match=function(n,t){if(null!=t&&null!=t||(t=!0),this.skipWhitespace(t),this.input.substring(this.pos,this.pos+n.length)!=n)throw"Token mismatch, expected "+n+", found "+this.input.substring(this.pos);this.pos+=n.length,this.skipWhitespace(t)},this.tryMatch=function(n,t){return null!=t&&null!=t||(t=!0),this.skipWhitespace(t),this.input.substring(this.pos,this.pos+n.length)==n},this.matchAt=function(){for(;this.input.length>this.pos&&"@"!=this.input[this.pos];)this.pos++;return"@"==this.input[this.pos]},this.skipWhitespace=function(n){for(;this.isWhitespace(this.input[this.pos]);)this.pos++;if("%"==this.input[this.pos]&&1==n){for(;"\n"!=this.input[this.pos];)this.pos++;this.skipWhitespace(n)}},this.value_braces=function(){var n=0;this.match("{",!1);for(var t=this.pos,e=!1;;){if(!e)if("}"==this.input[this.pos]){if(!(n>0)){var i=this.pos;return this.match("}",!1),this.input.substring(t,i)}n--}else if("{"==this.input[this.pos])n++;else if(this.pos>=this.input.length-1)throw"Unterminated value";e="\\"==this.input[this.pos]&&0==e,this.pos++}},this.value_comment=function(){for(var n="",t=0;!this.tryMatch("}",!1)||0!=t;){if(n+=this.input[this.pos],"{"==this.input[this.pos]&&t++,"}"==this.input[this.pos]&&t--,this.pos>=this.input.length-1)throw"Unterminated value:"+this.input.substring(start);this.pos++}return n},this.value_quotes=function(){this.match('"',!1);for(var n=this.pos,t=!1;;){if(!t){if('"'==this.input[this.pos]){var e=this.pos;return this.match('"',!1),this.input.substring(n,e)}if(this.pos>=this.input.length-1)throw"Unterminated value:"+this.input.substring(n)}t="\\"==this.input[this.pos]&&0==t,this.pos++}},this.single_value=function(){var n=this.pos;if(this.tryMatch("{"))return this.value_braces();if(this.tryMatch('"'))return this.value_quotes();var t=this.key();if(t.match("^[0-9]+$"))return t;if(this.months.indexOf(t.toLowerCase())>=0)return t.toLowerCase();throw"Value expected:"+this.input.substring(n)+" for key: "+t},this.value=function(){var n=[];for(n.push(this.single_value());this.tryMatch("#");)this.match("#"),n.push(this.single_value());return n.join("")},this.key=function(){for(var n=this.pos;;){if(this.pos>=this.input.length)throw"Runaway key";if(this.notKey.indexOf(this.input[this.pos])>=0)return this.input.substring(n,this.pos);this.pos++}},this.key_equals_value=function(){var n=this.key();if(this.tryMatch("="))return this.match("="),[n,this.value()];throw"... = value expected, equals sign missing:"+this.input.substring(this.pos)},this.key_value_list=function(){var n=this.key_equals_value();for(this.currentEntry.entryTags={},this.currentEntry.entryTags[n[0]]=n[1];this.tryMatch(",")&&(this.match(","),!this.tryMatch("}"));)n=this.key_equals_value(),this.currentEntry.entryTags[n[0]]=n[1]},this.entry_body=function(n){this.currentEntry={},this.currentEntry.citationKey=this.key(),this.currentEntry.entryType=n.substring(1),this.match(","),this.key_value_list(),this.entries.push(this.currentEntry)},this.directive=function(){return this.match("@"),"@"+this.key()},this.preamble=function(){this.currentEntry={},this.currentEntry.entryType="PREAMBLE",this.currentEntry.entry=this.value_comment(),this.entries.push(this.currentEntry)},this.comment=function(){this.currentEntry={},this.currentEntry.entryType="COMMENT",this.currentEntry.entry=this.value_comment(),this.entries.push(this.currentEntry)},this.entry=function(n){this.entry_body(n)},this.bibtex=function(){for(;this.matchAt();){var n=this.directive();this.match("{"),"@STRING"==n?this.string():"@PREAMBLE"==n?this.preamble():"@COMMENT"==n?this.comment():this.entry(n),this.match("}")}}}n.toJSON=function(n){var e=new t;return e.setInput(n),e.bibtex(),e.entries},n.toBibtex=function(n){var t="";for(var e in n){if(t+="@"+n[e].entryType,t+="{",n[e].citationKey&&(t+=n[e].citationKey+", "),n[e].entry&&(t+=n[e].entry),n[e].entryTags){var i="";for(var r in n[e].entryTags)0!=i.length&&(i+=", "),i+=r+"= {"+n[e].entryTags[r]+"}";t+=i}t+="}\n\n"}return t}}(t)}));function nn(n){return n.replace(/[\t\n ]+/g," ").replace(/{\\["^`.'acu~Hvs]( )?([a-zA-Z])}/g,(function(n,t,e){return e})).replace(/{\\([a-zA-Z])}/g,(function(n,t){return t}))}function tn(n){var t,e=new Map,i=a(J.toJSON(n));try{for(i.s();!(t=i.n()).done;){for(var r=t.value,o=0,s=Object.entries(r.entryTags);o

    \n

    Authors

    \n
    \n '.concat(n.authors.map((function(t,e){return'\n \n '.concat(t.personalURL?'\n ').concat(t.name)+(e+1":'\n '.concat(t.name)+(e+1","\n \n ")})).join(""),'\n
    \n
    \n \n
    \n

    Published

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

    Footnotes

    \n
      \n",!1)(HTMLElement)),dn=function(n){function t(){return f(this,t),s(this,t)}return d(t,n),m(t,[{key:"connectedCallback",value:function(){}},{key:"listen",value:function(n){this.bindDivEvents(this),this.bindTriggerEvents(n)}},{key:"bindDivEvents",value:function(n){var t=this;n.addEventListener("mouseover",(function(){t.visible||t.showAtNode(n),t.stopTimeout()})),n.addEventListener("mouseout",(function(){t.extendTimeout(500)})),n.addEventListener("touchstart",(function(n){n.stopPropagation()}),{passive:!0}),document.body.addEventListener("touchstart",(function(){t.hide()}),{passive:!0})}},{key:"bindTriggerEvents",value:function(n){var t=this;n.addEventListener("mouseover",(function(){t.visible||t.showAtNode(n),t.stopTimeout()})),n.addEventListener("mouseout",(function(){t.extendTimeout(300)})),n.addEventListener("touchstart",(function(e){t.visible?t.hide():t.showAtNode(n),e.stopPropagation()}),{passive:!0})}},{key:"show",value:function(n){this.visible=!0,this.style.display="block",this.style.top=Math.round(n[1]+10)+"px"}},{key:"showAtNode",value:function(n){var t=n.getBoundingClientRect();this.show([n.offsetLeft+t.width,n.offsetTop+t.height])}},{key:"hide",value:function(){this.visible=!1,this.style.display="none",this.stopTimeout()}},{key:"stopTimeout",value:function(){this.timeout&&clearTimeout(this.timeout)}},{key:"extendTimeout",value:function(n){var t=this;this.stopTimeout(),this.timeout=setTimeout((function(){t.hide()}),n)}}])}(x("d-hover-box",'\n\n\n
      \n
      \n \n
      \n
      \n')(HTMLElement)),hn=function(n){function t(){return f(this,t),s(this,t,arguments)}return d(t,n),m(t,null,[{key:"is",get:function(){return"d-title"}}])}(o(HTMLElement)),pn=function(n){function t(){return f(this,t),s(this,t,arguments)}return d(t,n),m(t)}(x("d-references","\n\n",!1)(HTMLElement)),fn=function(n){function t(){return f(this,t),s(this,t,arguments)}return d(t,n),m(t,[{key:"connectedCallback",value:function(){var n=this;this.getAttribute("prerendered")||(window.onload=function(){var t=document.querySelector("d-article").querySelectorAll("h2, h3");!function(n,t){var e,i='\n \n \n

      Table of contents

      \n
        ',r=a(t);try{for(r.s();!(e=r.n()).done;){var o=e.value,s="D-TITLE"==o.parentElement.tagName,l=o.getAttribute("no-toc");if(!s&&!l){var u=o.textContent,c='
      • '+u+"
      • ";"H3"==o.tagName?c="
          "+c+"
        ":c+="
        ",i+=c}}}catch(n){r.e(n)}finally{r.f()}i+="
      ",n.innerHTML=i}(n,t)})}}],[{key:"is",get:function(){return"d-toc"}}])}(o(HTMLElement));var gn=function(n){function t(){var n;return f(this,t),(n=s(this,t))._ready=!1,n._onscreen=!1,n._offscreen=!0,n}return d(t,n),m(t,[{key:"connectedCallback",value:function(){this.loadsWhileScrolling=this.hasAttribute("loadsWhileScrolling"),t.marginObserver.observe(this),t.directObserver.observe(this)}},{key:"disconnectedCallback",value:function(){t.marginObserver.unobserve(this),t.directObserver.unobserve(this)}},{key:"addEventListener",value:function(n,e){u(c(t.prototype),"addEventListener",this).call(this,n,e),"ready"===n&&-1!==t.readyQueue.indexOf(this)&&(this._ready=!1,t.runReadyQueue()),"onscreen"===n&&this.onscreen()}},{key:"ready",value:function(){this._ready=!0,t.marginObserver.unobserve(this);var n=new CustomEvent("ready");this.dispatchEvent(n)}},{key:"onscreen",value:function(){this._onscreen=!0,this._offscreen=!1;var n=new CustomEvent("onscreen");this.dispatchEvent(n)}},{key:"offscreen",value:function(){this._onscreen=!1,this._offscreen=!0;var n=new CustomEvent("offscreen");this.dispatchEvent(n)}}],[{key:"is",get:function(){return"d-figure"}},{key:"readyQueue",get:function(){return t._readyQueue||(t._readyQueue=[]),t._readyQueue}},{key:"addToReadyQueue",value:function(n){-1===t.readyQueue.indexOf(n)&&(t.readyQueue.push(n),t.runReadyQueue())}},{key:"runReadyQueue",value:function(){var n=t.readyQueue.sort((function(n,t){return n._seenOnScreen-t._seenOnScreen})).filter((function(n){return!n._ready})).pop();n&&(n.ready(),requestAnimationFrame(t.runReadyQueue))}},{key:"marginObserver",get:function(){if(!t._marginObserver){var n=window.innerHeight,e=Math.floor(2*n),i={rootMargin:e+"px 0px "+e+"px 0px",threshold:.01},r=t.didObserveMarginIntersection,o=new IntersectionObserver(r,i);t._marginObserver=o}return t._marginObserver}},{key:"didObserveMarginIntersection",value:function(n){var e,i=a(n);try{for(i.s();!(e=i.n()).done;){var r=e.value,o=r.target;r.isIntersecting&&!o._ready&&t.addToReadyQueue(o)}}catch(n){i.e(n)}finally{i.f()}}},{key:"directObserver",get:function(){return t._directObserver||(t._directObserver=new IntersectionObserver(t.didObserveDirectIntersection,{rootMargin:"0px",threshold:[0,1]})),t._directObserver}},{key:"didObserveDirectIntersection",value:function(n){var t,e=a(n);try{for(e.s();!(t=e.n()).done;){var i=t.value,r=i.target;i.isIntersecting?(r._seenOnScreen=new Date,r._offscreen&&r.onscreen()):r._onscreen&&r.offscreen()}}catch(n){e.e(n)}finally{e.f()}}}])}(o(HTMLElement));if("undefined"!=typeof window){var mn;gn.isScrolling=!1;window.addEventListener("scroll",(function(){gn.isScrolling=!0,clearTimeout(mn),mn=setTimeout((function(){gn.isScrolling=!1,gn.runReadyQueue()}),500)}),!0)}var bn=function(n){function t(){return f(this,t),s(this,t,arguments)}return d(t,n),m(t,[{key:"connectedCallback",value:function(){var n=this;this.shouldRemoveSelf()?this.parentElement.removeChild(this):this.root.querySelector("#interstitial-password-input").oninput=function(t){return n.passwordChanged(t)}}},{key:"passwordChanged",value:function(n){n.target.value===this.password&&(console.log("Correct password entered."),this.parentElement.removeChild(this),"undefined"!=typeof Storage&&(console.log("Saved that correct password was entered."),localStorage.setItem(this.localStorageIdentifier(),"true")))}},{key:"shouldRemoveSelf",value:function(){return window&&"distill.pub"===window.location.hostname?(console.warn("Interstitial found on production, hiding it."),!0):"undefined"!=typeof Storage&&"true"===localStorage.getItem(this.localStorageIdentifier())&&(console.log("Loaded that correct password was entered before; skipping interstitial."),!0)}},{key:"localStorageIdentifier",value:function(){return"distill-drafts"+(window?window.location.pathname:"-")+"interstitial-password-correct"}}])}(x("d-interstitial",'\n\n\n
      \n
      \n

      This article is in review.

      \n

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

      \n \n

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

      \n
      \n
      \n')(HTMLElement));function yn(n,t){return nt?1:n>=t?0:NaN}var vn,wn,xn=(vn=yn,1===vn.length&&(wn=vn,vn=function(n,t){return yn(wn(n),t)}),{left:function(n,t,e,i){for(null==e&&(e=0),null==i&&(i=n.length);e>>1;vn(n[r],t)<0?e=r+1:i=r}return e},right:function(n,t,e,i){for(null==e&&(e=0),null==i&&(i=n.length);e>>1;vn(n[r],t)>0?i=r:e=r+1}return e}}).right;var kn=Math.sqrt(50),Sn=Math.sqrt(10),Mn=Math.sqrt(2);function Tn(n,t,e){var i=(t-n)/Math.max(0,e),r=Math.floor(Math.log(i)/Math.LN10),o=i/Math.pow(10,r);return r>=0?(o>=kn?10:o>=Sn?5:o>=Mn?2:1)*Math.pow(10,r):-Math.pow(10,-r)/(o>=kn?10:o>=Sn?5:o>=Mn?2:1)}function _n(n,t){switch(arguments.length){case 0:break;case 1:this.range(n);break;default:this.range(t).domain(n)}return this}function An(n,t,e){n.prototype=t.prototype=e,e.constructor=n}function En(n,t){var e=Object.create(n.prototype);for(var i in t)e[i]=t[i];return e}function Cn(){}var Nn=.7,Ln=1/Nn,On="\\s*([+-]?\\d+)\\s*",Dn="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)\\s*",In="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)%\\s*",Rn=/^#([0-9a-f]{3,8})$/,Fn=new RegExp("^rgb\\("+[On,On,On]+"\\)$"),Un=new RegExp("^rgb\\("+[In,In,In]+"\\)$"),Pn=new RegExp("^rgba\\("+[On,On,On,Dn]+"\\)$"),Hn=new RegExp("^rgba\\("+[In,In,In,Dn]+"\\)$"),jn=new RegExp("^hsl\\("+[Dn,In,In]+"\\)$"),zn=new RegExp("^hsla\\("+[Dn,In,In,Dn]+"\\)$"),$n={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 qn(){return this.rgb().formatHex()}function Bn(){return this.rgb().formatRgb()}function Yn(n){var t,e;return n=(n+"").trim().toLowerCase(),(t=Rn.exec(n))?(e=t[1].length,t=parseInt(t[1],16),6===e?Wn(t):3===e?new Xn(t>>8&15|t>>4&240,t>>4&15|240&t,(15&t)<<4|15&t,1):8===e?Gn(t>>24&255,t>>16&255,t>>8&255,(255&t)/255):4===e?Gn(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|240&t,((15&t)<<4|15&t)/255):null):(t=Fn.exec(n))?new Xn(t[1],t[2],t[3],1):(t=Un.exec(n))?new Xn(255*t[1]/100,255*t[2]/100,255*t[3]/100,1):(t=Pn.exec(n))?Gn(t[1],t[2],t[3],t[4]):(t=Hn.exec(n))?Gn(255*t[1]/100,255*t[2]/100,255*t[3]/100,t[4]):(t=jn.exec(n))?nt(t[1],t[2]/100,t[3]/100,1):(t=zn.exec(n))?nt(t[1],t[2]/100,t[3]/100,t[4]):$n.hasOwnProperty(n)?Wn($n[n]):"transparent"===n?new Xn(NaN,NaN,NaN,0):null}function Wn(n){return new Xn(n>>16&255,n>>8&255,255&n,1)}function Gn(n,t,e,i){return i<=0&&(n=t=e=NaN),new Xn(n,t,e,i)}function Vn(n){return n instanceof Cn||(n=Yn(n)),n?new Xn((n=n.rgb()).r,n.g,n.b,n.opacity):new Xn}function Kn(n,t,e,i){return 1===arguments.length?Vn(n):new Xn(n,t,e,null==i?1:i)}function Xn(n,t,e,i){this.r=+n,this.g=+t,this.b=+e,this.opacity=+i}function Zn(){return"#"+Jn(this.r)+Jn(this.g)+Jn(this.b)}function Qn(){var n=this.opacity;return(1===(n=isNaN(n)?1:Math.max(0,Math.min(1,n)))?"rgb(":"rgba(")+Math.max(0,Math.min(255,Math.round(this.r)||0))+", "+Math.max(0,Math.min(255,Math.round(this.g)||0))+", "+Math.max(0,Math.min(255,Math.round(this.b)||0))+(1===n?")":", "+n+")")}function Jn(n){return((n=Math.max(0,Math.min(255,Math.round(n)||0)))<16?"0":"")+n.toString(16)}function nt(n,t,e,i){return i<=0?n=t=e=NaN:e<=0||e>=1?n=t=NaN:t<=0&&(n=NaN),new et(n,t,e,i)}function tt(n){if(n instanceof et)return new et(n.h,n.s,n.l,n.opacity);if(n instanceof Cn||(n=Yn(n)),!n)return new et;if(n instanceof et)return n;var t=(n=n.rgb()).r/255,e=n.g/255,i=n.b/255,r=Math.min(t,e,i),o=Math.max(t,e,i),a=NaN,s=o-r,l=(o+r)/2;return s?(a=t===o?(e-i)/s+6*(e0&&l<1?0:a,new et(a,s,l,n.opacity)}function et(n,t,e,i){this.h=+n,this.s=+t,this.l=+e,this.opacity=+i}function it(n,t,e){return 255*(n<60?t+(e-t)*n/60:n<180?e:n<240?t+(e-t)*(240-n)/60:t)}An(Cn,Yn,{copy:function(n){return Object.assign(new this.constructor,this,n)},displayable:function(){return this.rgb().displayable()},hex:qn,formatHex:qn,formatHsl:function(){return tt(this).formatHsl()},formatRgb:Bn,toString:Bn}),An(Xn,Kn,En(Cn,{brighter:function(n){return n=null==n?Ln:Math.pow(Ln,n),new Xn(this.r*n,this.g*n,this.b*n,this.opacity)},darker:function(n){return n=null==n?Nn:Math.pow(Nn,n),new Xn(this.r*n,this.g*n,this.b*n,this.opacity)},rgb:function(){return this},displayable:function(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:Zn,formatHex:Zn,formatRgb:Qn,toString:Qn})),An(et,(function(n,t,e,i){return 1===arguments.length?tt(n):new et(n,t,e,null==i?1:i)}),En(Cn,{brighter:function(n){return n=null==n?Ln:Math.pow(Ln,n),new et(this.h,this.s,this.l*n,this.opacity)},darker:function(n){return n=null==n?Nn:Math.pow(Nn,n),new et(this.h,this.s,this.l*n,this.opacity)},rgb:function(){var n=this.h%360+360*(this.h<0),t=isNaN(n)||isNaN(this.s)?0:this.s,e=this.l,i=e+(e<.5?e:1-e)*t,r=2*e-i;return new Xn(it(n>=240?n-240:n+120,r,i),it(n,r,i),it(n<120?n+240:n-120,r,i),this.opacity)},displayable:function(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl:function(){var n=this.opacity;return(1===(n=isNaN(n)?1:Math.max(0,Math.min(1,n)))?"hsl(":"hsla(")+(this.h||0)+", "+100*(this.s||0)+"%, "+100*(this.l||0)+"%"+(1===n?")":", "+n+")")}}));var rt=Math.PI/180,ot=180/Math.PI,at=.96422,st=1,lt=.82521,ut=4/29,ct=6/29,dt=3*ct*ct,ht=ct*ct*ct;function pt(n){if(n instanceof ft)return new ft(n.l,n.a,n.b,n.opacity);if(n instanceof vt)return wt(n);n instanceof Xn||(n=Vn(n));var t,e,i=yt(n.r),r=yt(n.g),o=yt(n.b),a=gt((.2225045*i+.7168786*r+.0606169*o)/st);return i===r&&r===o?t=e=a:(t=gt((.4360747*i+.3850649*r+.1430804*o)/at),e=gt((.0139322*i+.0971045*r+.7141733*o)/lt)),new ft(116*a-16,500*(t-a),200*(a-e),n.opacity)}function ft(n,t,e,i){this.l=+n,this.a=+t,this.b=+e,this.opacity=+i}function gt(n){return n>ht?Math.pow(n,1/3):n/dt+ut}function mt(n){return n>ct?n*n*n:dt*(n-ut)}function bt(n){return 255*(n<=.0031308?12.92*n:1.055*Math.pow(n,1/2.4)-.055)}function yt(n){return(n/=255)<=.04045?n/12.92:Math.pow((n+.055)/1.055,2.4)}function vt(n,t,e,i){this.h=+n,this.c=+t,this.l=+e,this.opacity=+i}function wt(n){if(isNaN(n.h))return new ft(n.l,0,0,n.opacity);var t=n.h*rt;return new ft(n.l,Math.cos(t)*n.c,Math.sin(t)*n.c,n.opacity)}An(ft,(function(n,t,e,i){return 1===arguments.length?pt(n):new ft(n,t,e,null==i?1:i)}),En(Cn,{brighter:function(n){return new ft(this.l+18*(null==n?1:n),this.a,this.b,this.opacity)},darker:function(n){return new ft(this.l-18*(null==n?1:n),this.a,this.b,this.opacity)},rgb:function(){var n=(this.l+16)/116,t=isNaN(this.a)?n:n+this.a/500,e=isNaN(this.b)?n:n-this.b/200;return new Xn(bt(3.1338561*(t=at*mt(t))-1.6168667*(n=st*mt(n))-.4906146*(e=lt*mt(e))),bt(-.9787684*t+1.9161415*n+.033454*e),bt(.0719453*t-.2289914*n+1.4052427*e),this.opacity)}})),An(vt,(function(n,t,e,i){return 1===arguments.length?function(n){if(n instanceof vt)return new vt(n.h,n.c,n.l,n.opacity);if(n instanceof ft||(n=pt(n)),0===n.a&&0===n.b)return new vt(NaN,0o&&(r=t.slice(o,r),s[a]?s[a]+=r:s[++a]=r),(e=e[0])===(i=i[0])?s[a]?s[a]+=i:s[++a]=i:(s[++a]=null,l.push({i:a,x:Ut(e,i)})),o=jt.lastIndex;return ot&&(e=n,n=t,t=e),u=function(e){return Math.max(n,Math.min(t,e))}),i=l>2?Kt:Vt,r=o=null,d}function d(t){return isNaN(t=+t)?e:(r||(r=i(a.map(n),s,l)))(n(u(t)))}return d.invert=function(e){return u(t((o||(o=i(s,a.map(n),Ut)))(e)))},d.domain=function(n){return arguments.length?(a=Array.from(n,Bt),c()):a.slice()},d.range=function(n){return arguments.length?(s=Array.from(n),c()):s.slice()},d.rangeRound=function(n){return s=Array.from(n),l=qt,c()},d.clamp=function(n){return arguments.length?(u=!!n||Wt,c()):u!==Wt},d.interpolate=function(n){return arguments.length?(l=n,c()):l},d.unknown=function(n){return arguments.length?(e=n,d):e},function(e,i){return n=e,t=i,c()}}function Zt(n,t){if((e=(n=t?n.toExponential(t-1):n.toExponential()).indexOf("e"))<0)return null;var e,i=n.slice(0,e);return[i.length>1?i[0]+i.slice(2):i,+n.slice(e+1)]}function Qt(n){return(n=Zt(Math.abs(n)))?n[1]:NaN}var Jt,ne=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function te(n){if(!(t=ne.exec(n)))throw new Error("invalid format: "+n);var t;return new ee({fill:t[1],align:t[2],sign:t[3],symbol:t[4],zero:t[5],width:t[6],comma:t[7],precision:t[8]&&t[8].slice(1),trim:t[9],type:t[10]})}function ee(n){this.fill=void 0===n.fill?" ":n.fill+"",this.align=void 0===n.align?">":n.align+"",this.sign=void 0===n.sign?"-":n.sign+"",this.symbol=void 0===n.symbol?"":n.symbol+"",this.zero=!!n.zero,this.width=void 0===n.width?void 0:+n.width,this.comma=!!n.comma,this.precision=void 0===n.precision?void 0:+n.precision,this.trim=!!n.trim,this.type=void 0===n.type?"":n.type+""}function ie(n,t){var e=Zt(n,t);if(!e)return n+"";var i=e[0],r=e[1];return r<0?"0."+new Array(-r).join("0")+i:i.length>r+1?i.slice(0,r+1)+"."+i.slice(r+1):i+new Array(r-i.length+2).join("0")}te.prototype=ee.prototype,ee.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(void 0===this.width?"":Math.max(1,0|this.width))+(this.comma?",":"")+(void 0===this.precision?"":"."+Math.max(0,0|this.precision))+(this.trim?"~":"")+this.type};var re={"%":function(n,t){return(100*n).toFixed(t)},b:function(n){return Math.round(n).toString(2)},c:function(n){return n+""},d:function(n){return Math.round(n).toString(10)},e:function(n,t){return n.toExponential(t)},f:function(n,t){return n.toFixed(t)},g:function(n,t){return n.toPrecision(t)},o:function(n){return Math.round(n).toString(8)},p:function(n,t){return ie(100*n,t)},r:ie,s:function(n,t){var e=Zt(n,t);if(!e)return n+"";var i=e[0],r=e[1],o=r-(Jt=3*Math.max(-8,Math.min(8,Math.floor(r/3))))+1,a=i.length;return o===a?i:o>a?i+new Array(o-a+1).join("0"):o>0?i.slice(0,o)+"."+i.slice(o):"0."+new Array(1-o).join("0")+Zt(n,Math.max(0,t+o-1))[0]},X:function(n){return Math.round(n).toString(16).toUpperCase()},x:function(n){return Math.round(n).toString(16)}};function oe(n){return n}var ae,se,le,ue=Array.prototype.map,ce=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function de(n){var t,e,i=void 0===n.grouping||void 0===n.thousands?oe:(t=ue.call(n.grouping,Number),e=n.thousands+"",function(n,i){for(var r=n.length,o=[],a=0,s=t[0],l=0;r>0&&s>0&&(l+s+1>i&&(s=Math.max(1,i-l)),o.push(n.substring(r-=s,r+s)),!((l+=s+1)>i));)s=t[a=(a+1)%t.length];return o.reverse().join(e)}),r=void 0===n.currency?"":n.currency[0]+"",o=void 0===n.currency?"":n.currency[1]+"",a=void 0===n.decimal?".":n.decimal+"",s=void 0===n.numerals?oe:function(n){return function(t){return t.replace(/[0-9]/g,(function(t){return n[+t]}))}}(ue.call(n.numerals,String)),l=void 0===n.percent?"%":n.percent+"",u=void 0===n.minus?"-":n.minus+"",c=void 0===n.nan?"NaN":n.nan+"";function d(n){var t=(n=te(n)).fill,e=n.align,d=n.sign,h=n.symbol,p=n.zero,f=n.width,g=n.comma,m=n.precision,b=n.trim,y=n.type;"n"===y?(g=!0,y="g"):re[y]||(void 0===m&&(m=12),b=!0,y="g"),(p||"0"===t&&"="===e)&&(p=!0,t="0",e="=");var v="$"===h?r:"#"===h&&/[boxX]/.test(y)?"0"+y.toLowerCase():"",w="$"===h?o:/[%p]/.test(y)?l:"",x=re[y],k=/[defgprs%]/.test(y);function S(n){var r,o,l,h=v,S=w;if("c"===y)S=x(n)+S,n="";else{var M=(n=+n)<0||1/n<0;if(n=isNaN(n)?c:x(Math.abs(n),m),b&&(n=function(n){n:for(var t,e=n.length,i=1,r=-1;i0&&(r=0)}return r>0?n.slice(0,r)+n.slice(t+1):n}(n)),M&&0==+n&&"+"!==d&&(M=!1),h=(M?"("===d?d:u:"-"===d||"("===d?"":d)+h,S=("s"===y?ce[8+Jt/3]:"")+S+(M&&"("===d?")":""),k)for(r=-1,o=n.length;++r(l=n.charCodeAt(r))||l>57){S=(46===l?a+n.slice(r+1):n.slice(r))+S,n=n.slice(0,r);break}}g&&!p&&(n=i(n,1/0));var T=h.length+n.length+S.length,_=T>1)+h+n+S+_.slice(T);break;default:n=_+h+n+S}return s(n)}return m=void 0===m?6:/[gprs]/.test(y)?Math.max(1,Math.min(21,m)):Math.max(0,Math.min(20,m)),S.toString=function(){return n+""},S}return{format:d,formatPrefix:function(n,t){var e=d(((n=te(n)).type="f",n)),i=3*Math.max(-8,Math.min(8,Math.floor(Qt(t)/3))),r=Math.pow(10,-i),o=ce[8+i/3];return function(n){return e(r*n)+o}}}}function he(n,t,e,i){var r,o=function(n,t,e){var i=Math.abs(t-n)/Math.max(0,e),r=Math.pow(10,Math.floor(Math.log(i)/Math.LN10)),o=i/r;return o>=kn?r*=10:o>=Sn?r*=5:o>=Mn&&(r*=2),t0)return[n];if((i=t0)for(n=Math.ceil(n/a),t=Math.floor(t/a),o=new Array(r=Math.ceil(t-n+1));++s0?i=Tn(s=Math.floor(s/i)*i,l=Math.ceil(l/i)*i,e):i<0&&(i=Tn(s=Math.ceil(s*i)/i,l=Math.floor(l*i)/i,e)),i>0?(r[o]=Math.floor(s/i)*i,r[a]=Math.ceil(l/i)*i,t(r)):i<0&&(r[o]=Math.ceil(s*i)/i,r[a]=Math.floor(l*i)/i,t(r)),n},n}function fe(){var n=Xt()(Wt,Wt);return n.copy=function(){return t=n,fe().domain(t.domain()).range(t.range()).interpolate(t.interpolate()).clamp(t.clamp()).unknown(t.unknown());var t},_n.apply(n,arguments),pe(n)}ae=de({decimal:".",thousands:",",grouping:[3],currency:["$",""],minus:"-"}),se=ae.format,le=ae.formatPrefix;var ge=new Date,me=new Date;function be(n,t,e,i){function r(t){return n(t=0===arguments.length?new Date:new Date(+t)),t}return r.floor=function(t){return n(t=new Date(+t)),t},r.ceil=function(e){return n(e=new Date(e-1)),t(e,1),n(e),e},r.round=function(n){var t=r(n),e=r.ceil(n);return n-t0))return s;do{s.push(a=new Date(+e)),t(e,o),n(e)}while(a=t)for(;n(t),!e(t);)t.setTime(t-1)}),(function(n,i){if(n>=n)if(i<0)for(;++i<=0;)for(;t(n,-1),!e(n););else for(;--i>=0;)for(;t(n,1),!e(n););}))},e&&(r.count=function(t,i){return ge.setTime(+t),me.setTime(+i),n(ge),n(me),Math.floor(e(ge,me))},r.every=function(n){return n=Math.floor(n),isFinite(n)&&n>0?n>1?r.filter(i?function(t){return i(t)%n==0}:function(t){return r.count(0,t)%n==0}):r:null}),r}var ye=be((function(){}),(function(n,t){n.setTime(+n+t)}),(function(n,t){return t-n}));ye.every=function(n){return n=Math.floor(n),isFinite(n)&&n>0?n>1?be((function(t){t.setTime(Math.floor(t/n)*n)}),(function(t,e){t.setTime(+t+e*n)}),(function(t,e){return(e-t)/n})):ye:null};var ve=1e3,we=6e4,xe=36e5,ke=864e5,Se=6048e5,Me=(be((function(n){n.setTime(n-n.getMilliseconds())}),(function(n,t){n.setTime(+n+t*ve)}),(function(n,t){return(t-n)/ve}),(function(n){return n.getUTCSeconds()})),be((function(n){n.setTime(n-n.getMilliseconds()-n.getSeconds()*ve)}),(function(n,t){n.setTime(+n+t*we)}),(function(n,t){return(t-n)/we}),(function(n){return n.getMinutes()})),be((function(n){n.setTime(n-n.getMilliseconds()-n.getSeconds()*ve-n.getMinutes()*we)}),(function(n,t){n.setTime(+n+t*xe)}),(function(n,t){return(t-n)/xe}),(function(n){return n.getHours()})),be((function(n){n.setHours(0,0,0,0)}),(function(n,t){n.setDate(n.getDate()+t)}),(function(n,t){return(t-n-(t.getTimezoneOffset()-n.getTimezoneOffset())*we)/ke}),(function(n){return n.getDate()-1})));function Te(n){return be((function(t){t.setDate(t.getDate()-(t.getDay()+7-n)%7),t.setHours(0,0,0,0)}),(function(n,t){n.setDate(n.getDate()+7*t)}),(function(n,t){return(t-n-(t.getTimezoneOffset()-n.getTimezoneOffset())*we)/Se}))}var _e=Te(0),Ae=Te(1),Ee=(Te(2),Te(3),Te(4)),Ce=(Te(5),Te(6),be((function(n){n.setDate(1),n.setHours(0,0,0,0)}),(function(n,t){n.setMonth(n.getMonth()+t)}),(function(n,t){return t.getMonth()-n.getMonth()+12*(t.getFullYear()-n.getFullYear())}),(function(n){return n.getMonth()})),be((function(n){n.setMonth(0,1),n.setHours(0,0,0,0)}),(function(n,t){n.setFullYear(n.getFullYear()+t)}),(function(n,t){return t.getFullYear()-n.getFullYear()}),(function(n){return n.getFullYear()})));Ce.every=function(n){return isFinite(n=Math.floor(n))&&n>0?be((function(t){t.setFullYear(Math.floor(t.getFullYear()/n)*n),t.setMonth(0,1),t.setHours(0,0,0,0)}),(function(t,e){t.setFullYear(t.getFullYear()+e*n)})):null},be((function(n){n.setUTCSeconds(0,0)}),(function(n,t){n.setTime(+n+t*we)}),(function(n,t){return(t-n)/we}),(function(n){return n.getUTCMinutes()})),be((function(n){n.setUTCMinutes(0,0,0)}),(function(n,t){n.setTime(+n+t*xe)}),(function(n,t){return(t-n)/xe}),(function(n){return n.getUTCHours()}));var Ne=be((function(n){n.setUTCHours(0,0,0,0)}),(function(n,t){n.setUTCDate(n.getUTCDate()+t)}),(function(n,t){return(t-n)/ke}),(function(n){return n.getUTCDate()-1}));function Le(n){return be((function(t){t.setUTCDate(t.getUTCDate()-(t.getUTCDay()+7-n)%7),t.setUTCHours(0,0,0,0)}),(function(n,t){n.setUTCDate(n.getUTCDate()+7*t)}),(function(n,t){return(t-n)/Se}))}var Oe=Le(0),De=Le(1),Ie=(Le(2),Le(3),Le(4)),Re=(Le(5),Le(6),be((function(n){n.setUTCDate(1),n.setUTCHours(0,0,0,0)}),(function(n,t){n.setUTCMonth(n.getUTCMonth()+t)}),(function(n,t){return t.getUTCMonth()-n.getUTCMonth()+12*(t.getUTCFullYear()-n.getUTCFullYear())}),(function(n){return n.getUTCMonth()})),be((function(n){n.setUTCMonth(0,1),n.setUTCHours(0,0,0,0)}),(function(n,t){n.setUTCFullYear(n.getUTCFullYear()+t)}),(function(n,t){return t.getUTCFullYear()-n.getUTCFullYear()}),(function(n){return n.getUTCFullYear()})));function Fe(n){if(0<=n.y&&n.y<100){var t=new Date(-1,n.m,n.d,n.H,n.M,n.S,n.L);return t.setFullYear(n.y),t}return new Date(n.y,n.m,n.d,n.H,n.M,n.S,n.L)}function Ue(n){if(0<=n.y&&n.y<100){var t=new Date(Date.UTC(-1,n.m,n.d,n.H,n.M,n.S,n.L));return t.setUTCFullYear(n.y),t}return new Date(Date.UTC(n.y,n.m,n.d,n.H,n.M,n.S,n.L))}function Pe(n,t,e){return{y:n,m:t,d:e,H:0,M:0,S:0,L:0}}Re.every=function(n){return isFinite(n=Math.floor(n))&&n>0?be((function(t){t.setUTCFullYear(Math.floor(t.getUTCFullYear()/n)*n),t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)}),(function(t,e){t.setUTCFullYear(t.getUTCFullYear()+e*n)})):null};var He,je,ze,$e={"-":"",_:" ",0:"0"},qe=/^\s*\d+/,Be=/^%/,Ye=/[\\^$*+?|[\]().{}]/g;function We(n,t,e){var i=n<0?"-":"",r=(i?-n:n)+"",o=r.length;return i+(o68?1900:2e3),e+i[0].length):-1}function ii(n,t,e){var i=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(t.slice(e,e+6));return i?(n.Z=i[1]?0:-(i[2]+(i[3]||"00")),e+i[0].length):-1}function ri(n,t,e){var i=qe.exec(t.slice(e,e+1));return i?(n.q=3*i[0]-3,e+i[0].length):-1}function oi(n,t,e){var i=qe.exec(t.slice(e,e+2));return i?(n.m=i[0]-1,e+i[0].length):-1}function ai(n,t,e){var i=qe.exec(t.slice(e,e+2));return i?(n.d=+i[0],e+i[0].length):-1}function si(n,t,e){var i=qe.exec(t.slice(e,e+3));return i?(n.m=0,n.d=+i[0],e+i[0].length):-1}function li(n,t,e){var i=qe.exec(t.slice(e,e+2));return i?(n.H=+i[0],e+i[0].length):-1}function ui(n,t,e){var i=qe.exec(t.slice(e,e+2));return i?(n.M=+i[0],e+i[0].length):-1}function ci(n,t,e){var i=qe.exec(t.slice(e,e+2));return i?(n.S=+i[0],e+i[0].length):-1}function di(n,t,e){var i=qe.exec(t.slice(e,e+3));return i?(n.L=+i[0],e+i[0].length):-1}function hi(n,t,e){var i=qe.exec(t.slice(e,e+6));return i?(n.L=Math.floor(i[0]/1e3),e+i[0].length):-1}function pi(n,t,e){var i=Be.exec(t.slice(e,e+1));return i?e+i[0].length:-1}function fi(n,t,e){var i=qe.exec(t.slice(e));return i?(n.Q=+i[0],e+i[0].length):-1}function gi(n,t,e){var i=qe.exec(t.slice(e));return i?(n.s=+i[0],e+i[0].length):-1}function mi(n,t){return We(n.getDate(),t,2)}function bi(n,t){return We(n.getHours(),t,2)}function yi(n,t){return We(n.getHours()%12||12,t,2)}function vi(n,t){return We(1+Me.count(Ce(n),n),t,3)}function wi(n,t){return We(n.getMilliseconds(),t,3)}function xi(n,t){return wi(n,t)+"000"}function ki(n,t){return We(n.getMonth()+1,t,2)}function Si(n,t){return We(n.getMinutes(),t,2)}function Mi(n,t){return We(n.getSeconds(),t,2)}function Ti(n){var t=n.getDay();return 0===t?7:t}function _i(n,t){return We(_e.count(Ce(n)-1,n),t,2)}function Ai(n,t){var e=n.getDay();return n=e>=4||0===e?Ee(n):Ee.ceil(n),We(Ee.count(Ce(n),n)+(4===Ce(n).getDay()),t,2)}function Ei(n){return n.getDay()}function Ci(n,t){return We(Ae.count(Ce(n)-1,n),t,2)}function Ni(n,t){return We(n.getFullYear()%100,t,2)}function Li(n,t){return We(n.getFullYear()%1e4,t,4)}function Oi(n){var t=n.getTimezoneOffset();return(t>0?"-":(t*=-1,"+"))+We(t/60|0,"0",2)+We(t%60,"0",2)}function Di(n,t){return We(n.getUTCDate(),t,2)}function Ii(n,t){return We(n.getUTCHours(),t,2)}function Ri(n,t){return We(n.getUTCHours()%12||12,t,2)}function Fi(n,t){return We(1+Ne.count(Re(n),n),t,3)}function Ui(n,t){return We(n.getUTCMilliseconds(),t,3)}function Pi(n,t){return Ui(n,t)+"000"}function Hi(n,t){return We(n.getUTCMonth()+1,t,2)}function ji(n,t){return We(n.getUTCMinutes(),t,2)}function zi(n,t){return We(n.getUTCSeconds(),t,2)}function $i(n){var t=n.getUTCDay();return 0===t?7:t}function qi(n,t){return We(Oe.count(Re(n)-1,n),t,2)}function Bi(n,t){var e=n.getUTCDay();return n=e>=4||0===e?Ie(n):Ie.ceil(n),We(Ie.count(Re(n),n)+(4===Re(n).getUTCDay()),t,2)}function Yi(n){return n.getUTCDay()}function Wi(n,t){return We(De.count(Re(n)-1,n),t,2)}function Gi(n,t){return We(n.getUTCFullYear()%100,t,2)}function Vi(n,t){return We(n.getUTCFullYear()%1e4,t,4)}function Ki(){return"+0000"}function Xi(){return"%"}function Zi(n){return+n}function Qi(n){return Math.floor(+n/1e3)}!function(n){(He=function(n){var t=n.dateTime,e=n.date,i=n.time,r=n.periods,o=n.days,a=n.shortDays,s=n.months,l=n.shortMonths,u=Ve(r),c=Ke(r),d=Ve(o),h=Ke(o),p=Ve(a),f=Ke(a),g=Ve(s),m=Ke(s),b=Ve(l),y=Ke(l),v={a:function(n){return a[n.getDay()]},A:function(n){return o[n.getDay()]},b:function(n){return l[n.getMonth()]},B:function(n){return s[n.getMonth()]},c:null,d:mi,e:mi,f:xi,H:bi,I:yi,j:vi,L:wi,m:ki,M:Si,p:function(n){return r[+(n.getHours()>=12)]},q:function(n){return 1+~~(n.getMonth()/3)},Q:Zi,s:Qi,S:Mi,u:Ti,U:_i,V:Ai,w:Ei,W:Ci,x:null,X:null,y:Ni,Y:Li,Z:Oi,"%":Xi},w={a:function(n){return a[n.getUTCDay()]},A:function(n){return o[n.getUTCDay()]},b:function(n){return l[n.getUTCMonth()]},B:function(n){return s[n.getUTCMonth()]},c:null,d:Di,e:Di,f:Pi,H:Ii,I:Ri,j:Fi,L:Ui,m:Hi,M:ji,p:function(n){return r[+(n.getUTCHours()>=12)]},q:function(n){return 1+~~(n.getUTCMonth()/3)},Q:Zi,s:Qi,S:zi,u:$i,U:qi,V:Bi,w:Yi,W:Wi,x:null,X:null,y:Gi,Y:Vi,Z:Ki,"%":Xi},x={a:function(n,t,e){var i=p.exec(t.slice(e));return i?(n.w=f[i[0].toLowerCase()],e+i[0].length):-1},A:function(n,t,e){var i=d.exec(t.slice(e));return i?(n.w=h[i[0].toLowerCase()],e+i[0].length):-1},b:function(n,t,e){var i=b.exec(t.slice(e));return i?(n.m=y[i[0].toLowerCase()],e+i[0].length):-1},B:function(n,t,e){var i=g.exec(t.slice(e));return i?(n.m=m[i[0].toLowerCase()],e+i[0].length):-1},c:function(n,e,i){return M(n,t,e,i)},d:ai,e:ai,f:hi,H:li,I:li,j:si,L:di,m:oi,M:ui,p:function(n,t,e){var i=u.exec(t.slice(e));return i?(n.p=c[i[0].toLowerCase()],e+i[0].length):-1},q:ri,Q:fi,s:gi,S:ci,u:Ze,U:Qe,V:Je,w:Xe,W:ni,x:function(n,t,i){return M(n,e,t,i)},X:function(n,t,e){return M(n,i,t,e)},y:ei,Y:ti,Z:ii,"%":pi};function k(n,t){return function(e){var i,r,o,a=[],s=-1,l=0,u=n.length;for(e instanceof Date||(e=new Date(+e));++s53)return null;"w"in o||(o.w=1),"Z"in o?(r=(i=Ue(Pe(o.y,0,1))).getUTCDay(),i=r>4||0===r?De.ceil(i):De(i),i=Ne.offset(i,7*(o.V-1)),o.y=i.getUTCFullYear(),o.m=i.getUTCMonth(),o.d=i.getUTCDate()+(o.w+6)%7):(r=(i=Fe(Pe(o.y,0,1))).getDay(),i=r>4||0===r?Ae.ceil(i):Ae(i),i=Me.offset(i,7*(o.V-1)),o.y=i.getFullYear(),o.m=i.getMonth(),o.d=i.getDate()+(o.w+6)%7)}else("W"in o||"U"in o)&&("w"in o||(o.w="u"in o?o.u%7:"W"in o?1:0),r="Z"in o?Ue(Pe(o.y,0,1)).getUTCDay():Fe(Pe(o.y,0,1)).getDay(),o.m=0,o.d="W"in o?(o.w+6)%7+7*o.W-(r+5)%7:o.w+7*o.U-(r+6)%7);return"Z"in o?(o.H+=o.Z/100|0,o.M+=o.Z%100,Ue(o)):Fe(o)}}function M(n,t,e,i){for(var r,o,a=0,s=t.length,l=e.length;a=l)return-1;if(37===(r=t.charCodeAt(a++))){if(r=t.charAt(a++),!(o=x[r in $e?t.charAt(a++):r])||(i=o(n,e,i))<0)return-1}else if(r!=e.charCodeAt(i++))return-1}return i}return v.x=k(e,v),v.X=k(i,v),v.c=k(t,v),w.x=k(e,w),w.X=k(i,w),w.c=k(t,w),{format:function(n){var t=k(n+="",v);return t.toString=function(){return n},t},parse:function(n){var t=S(n+="",!1);return t.toString=function(){return n},t},utcFormat:function(n){var t=k(n+="",w);return t.toString=function(){return n},t},utcParse:function(n){var t=S(n+="",!0);return t.toString=function(){return n},t}}}(n)).format,He.parse,je=He.utcFormat,ze=He.utcParse}({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});var Ji="%Y-%m-%dT%H:%M:%S.%LZ";Date.prototype.toISOString||je(Ji),+new Date("2000-01-01T00:00:00.000Z")||ze(Ji);var nr={value:function(){}};function tr(){for(var n,t=0,e=arguments.length,i={};t=0&&(t=n.slice(e+1),n=n.slice(0,e)),n&&!i.hasOwnProperty(n))throw new Error("unknown type: "+n);return{type:n,name:t}}))),a=-1,s=o.length;if(!(arguments.length<2)){if(null!=t&&"function"!=typeof t)throw new Error("invalid callback: "+t);for(;++a0)for(var e,i,r=new Array(e),o=0;o=0&&"xmlns"!==(t=n.slice(0,e))&&(n=n.slice(e+1)),ar.hasOwnProperty(t)?{space:ar[t],local:n}:n}function lr(n){return function(){var t=this.ownerDocument,e=this.namespaceURI;return e===or&&t.documentElement.namespaceURI===or?t.createElement(n):t.createElementNS(e,n)}}function ur(n){return function(){return this.ownerDocument.createElementNS(n.space,n.local)}}function cr(n){var t=sr(n);return(t.local?ur:lr)(t)}function dr(){}function hr(n){return null==n?dr:function(){return this.querySelector(n)}}function pr(){return[]}function fr(n){return new Array(n.length)}function gr(n,t){this.ownerDocument=n.ownerDocument,this.namespaceURI=n.namespaceURI,this._next=null,this._parent=n,this.__data__=t}gr.prototype={constructor:gr,appendChild:function(n){return this._parent.insertBefore(n,this._next)},insertBefore:function(n,t){return this._parent.insertBefore(n,t)},querySelector:function(n){return this._parent.querySelector(n)},querySelectorAll:function(n){return this._parent.querySelectorAll(n)}};var mr="$";function br(n,t,e,i,r,o){for(var a,s=0,l=t.length,u=o.length;st?1:n>=t?0:NaN}function wr(n){return function(){this.removeAttribute(n)}}function xr(n){return function(){this.removeAttributeNS(n.space,n.local)}}function kr(n,t){return function(){this.setAttribute(n,t)}}function Sr(n,t){return function(){this.setAttributeNS(n.space,n.local,t)}}function Mr(n,t){return function(){var e=t.apply(this,arguments);null==e?this.removeAttribute(n):this.setAttribute(n,e)}}function Tr(n,t){return function(){var e=t.apply(this,arguments);null==e?this.removeAttributeNS(n.space,n.local):this.setAttributeNS(n.space,n.local,e)}}function _r(n){return n.ownerDocument&&n.ownerDocument.defaultView||n.document&&n||n.defaultView}function Ar(n){return function(){this.style.removeProperty(n)}}function Er(n,t,e){return function(){this.style.setProperty(n,t,e)}}function Cr(n,t,e){return function(){var i=t.apply(this,arguments);null==i?this.style.removeProperty(n):this.style.setProperty(n,i,e)}}function Nr(n){return function(){delete this[n]}}function Lr(n,t){return function(){this[n]=t}}function Or(n,t){return function(){var e=t.apply(this,arguments);null==e?delete this[n]:this[n]=e}}function Dr(n){return n.trim().split(/^|\s+/)}function Ir(n){return n.classList||new Rr(n)}function Rr(n){this._node=n,this._names=Dr(n.getAttribute("class")||"")}function Fr(n,t){for(var e=Ir(n),i=-1,r=t.length;++i=0&&(this._names.splice(t,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(n){return this._names.indexOf(n)>=0}};var Jr={},no=null;function to(n,t,e){return n=eo(n,t,e),function(t){var e=t.relatedTarget;e&&(e===this||8&e.compareDocumentPosition(this))||n.call(this,t)}}function eo(n,t,e){return function(i){var r=no;no=i;try{n.call(this,this.__data__,t,e)}finally{no=r}}}function io(n){return function(){var t=this.__on;if(t){for(var e,i=0,r=-1,o=t.length;id}l.mouse("drag")}function g(){ho(no.view).on("mousemove.drag mouseup.drag",null),function(n,t){var e=n.document.documentElement,i=ho(n).on("dragstart.drag",null);t&&(i.on("click.drag",yo,!0),setTimeout((function(){i.on("click.drag",null)}),0)),"onselectstart"in e?i.on("selectstart.drag",null):(e.style.MozUserSelect=e.__noselect,delete e.__noselect)}(no.view,e),yo(),l.mouse("end")}function m(){if(r.apply(this,arguments)){var n,t,e=no.changedTouches,i=o.apply(this,arguments),a=e.length;for(n=0;n=x&&(x=w+1);!(v=b[x])&&++x=0;)(i=r[o])&&(a&&4^i.compareDocumentPosition(a)&&a.parentNode.insertBefore(i,a),a=i);return this},sort:function(n){function t(t,e){return t&&e?n(t.__data__,e.__data__):!t-!e}n||(n=vr);for(var e=this._groups,i=e.length,r=new Array(i),o=0;o1?this.each((null==t?Ar:"function"==typeof t?Cr:Er)(n,t,null==e?"":e)):function(n,t){return n.style.getPropertyValue(t)||_r(n).getComputedStyle(n,null).getPropertyValue(t)}(this.node(),n)},property:function(n,t){return arguments.length>1?this.each((null==t?Nr:"function"==typeof t?Or:Lr)(n,t)):this.node()[n]},classed:function(n,t){var e=Dr(n+"");if(arguments.length<2){for(var i=Ir(this.node()),r=-1,o=e.length;++r=0&&(t=n.slice(e+1),n=n.slice(0,e)),{type:n,name:t}}))}(n+""),a=o.length;if(!(arguments.length<2)){for(s=t?ro:io,null==e&&(e=!1),i=0;i\n :host {\n position: relative;\n display: inline-block;\n }\n\n :host(:focus) {\n outline: none;\n }\n\n .background {\n padding: 9px 0;\n color: white;\n position: relative;\n }\n\n .track {\n height: 3px;\n width: 100%;\n border-radius: 2px;\n background-color: hsla(0, 0%, 0%, 0.2);\n }\n\n .track-fill {\n position: absolute;\n top: 9px;\n height: 3px;\n border-radius: 4px;\n background-color: hsl(24, 100%, 50%);\n }\n\n .knob-container {\n position: absolute;\n top: 10px;\n }\n\n .knob {\n position: absolute;\n top: -6px;\n left: -6px;\n width: 13px;\n height: 13px;\n background-color: hsl(24, 100%, 50%);\n border-radius: 50%;\n transition-property: transform;\n transition-duration: 0.18s;\n transition-timing-function: ease;\n }\n .mousedown .knob {\n transform: scale(1.5);\n }\n\n .knob-highlight {\n position: absolute;\n top: -6px;\n left: -6px;\n width: 13px;\n height: 13px;\n background-color: hsla(0, 0%, 0%, 0.1);\n border-radius: 50%;\n transition-property: transform;\n transition-duration: 0.18s;\n transition-timing-function: ease;\n }\n\n .focus .knob-highlight {\n transform: scale(2);\n }\n\n .ticks {\n position: absolute;\n top: 16px;\n height: 4px;\n width: 100%;\n z-index: -1;\n }\n\n .ticks .tick {\n position: absolute;\n height: 100%;\n border-left: 1px solid hsla(0, 0%, 0%, 0.2);\n }\n\n\n\n
      \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n"),Ao=37,Eo=38,Co=39,No=40,Lo=33,Oo=34,Do=35,Io=36,Ro=function(n){function t(){return f(this,t),s(this,t,arguments)}return d(t,n),m(t,[{key:"connectedCallback",value:function(){var n=this;this.connected=!0,this.setAttribute("role","slider"),this.hasAttribute("tabindex")||this.setAttribute("tabindex",0),this.mouseEvent=!1,this.knob=this.root.querySelector(".knob-container"),this.background=this.root.querySelector(".background"),this.trackFill=this.root.querySelector(".track-fill"),this.track=this.root.querySelector(".track"),this.min=this.min?this.min:0,this.max=this.max?this.max:100,this.scale=fe().domain([this.min,this.max]).range([0,1]).clamp(!0),this.origin=void 0!==this.origin?this.origin:this.min,this.step=this.step?this.step:1,this.update(this.value?this.value:0),this.ticks=!!this.ticks&&this.ticks,this.renderTicks(),this.drag=To().container(this.background).on("start",(function(){n.mouseEvent=!0,n.background.classList.add("mousedown"),n.changeValue=n.value,n.dragUpdate()})).on("drag",(function(){n.dragUpdate()})).on("end",(function(){n.mouseEvent=!1,n.background.classList.remove("mousedown"),n.dragUpdate(),n.changeValue!==n.value&&n.dispatchChange(),n.changeValue=n.value})),this.drag(ho(this.background)),this.addEventListener("focusin",(function(){n.mouseEvent||n.background.classList.add("focus")})),this.addEventListener("focusout",(function(){n.background.classList.remove("focus")})),this.addEventListener("keydown",this.onKeyDown)}},{key:"attributeChangedCallback",value:function(n,t,e){isNaN(e)||null==e||("min"==n&&(this.min=+e,this.setAttribute("aria-valuemin",this.min)),"max"==n&&(this.max=+e,this.setAttribute("aria-valuemax",this.max)),"value"==n&&this.update(+e),"origin"==n&&(this.origin=+e),"step"==n&&e>0&&(this.step=+e),"ticks"==n&&(this.ticks=""===e||e))}},{key:"onKeyDown",value:function(n){this.changeValue=this.value;var t=!1;switch(n.keyCode){case Ao:case No:this.update(this.value-this.step),t=!0;break;case Co:case Eo:this.update(this.value+this.step),t=!0;break;case Lo:case Oo:this.update(this.value+10*this.step),t=!0;break;case Io:this.update(this.min),t=!0;break;case Do:this.update(this.max),t=!0}t&&(this.background.classList.add("focus"),n.preventDefault(),n.stopPropagation(),this.changeValue!==this.value&&this.dispatchChange())}},{key:"validateValueRange",value:function(n,t,e){return Math.max(Math.min(t,e),n)}},{key:"quantizeValue",value:function(n,t){return Math.round(n/t)*t}},{key:"dragUpdate",value:function(){var n=this.background.getBoundingClientRect(),t=no.x,e=n.width;this.update(this.scale.invert(t/e))}},{key:"update",value:function(n){var t=n;"any"!==this.step&&(t=this.quantizeValue(n,this.step)),t=this.validateValueRange(this.min,this.max,t),this.connected&&(this.knob.style.left=100*this.scale(t)+"%",this.trackFill.style.width=100*this.scale(this.min+Math.abs(t-this.origin))+"%",this.trackFill.style.left=100*this.scale(Math.min(t,this.origin))+"%"),this.value!==t&&(this.value=t,this.setAttribute("aria-valuenow",this.value),this.dispatchInput())}},{key:"dispatchChange",value:function(){var n=new Event("change");this.dispatchEvent(n,{})}},{key:"dispatchInput",value:function(){var n=new Event("input");this.dispatchEvent(n,{})}},{key:"renderTicks",value:function(){var n=this,t=this.root.querySelector(".ticks");!1!==this.ticks?(this.ticks>0?this.scale.ticks(this.ticks):"any"===this.step?this.scale.ticks():function(n,t,e){n=+n,t=+t,e=(r=arguments.length)<2?(t=n,n=0,1):r<3?1:+e;for(var i=-1,r=0|Math.max(0,Math.ceil((t-n)/e)),o=new Array(r);++i\n \n\n',Uo=function(n){function t(){return f(this,t),s(this,t,arguments)}return d(t,n),m(t)}(x("distill-header",'\n\n\n'),!1)(HTMLElement));var Po=function(n){function t(){return f(this,t),s(this,t,arguments)}return d(t,n),m(t,[{key:"frontMatter",set:function(n){this.innerHTML=function(n){var t="\n\n";void 0!==n.githubUrl&&(t+='\n

      Updates and Corrections

      \n

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

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

      Reuse

      \n

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

      \n ')),void 0!==n.publishedDate&&(t+='\n

      Citation

      \n

      For attribution in academic contexts, please cite this work as

      \n
      '.concat(n.concatenatedAuthors,', "').concat(n.title,'", Distill, ').concat(n.publishedYear,'.
      \n

      BibTeX citation

      \n
      ').concat(function(n){return"@article{".concat(n.slug,",\n  author = {").concat(n.bibtexAuthors,"},\n  title = {").concat(n.title,"},\n  journal = {").concat(n.journal.title,"},\n  year = {").concat(n.publishedYear,"},\n  note = {").concat(n.url,"},\n  doi = {").concat(n.doi,"}\n}")}(n),"
      \n ")),t}(n)}}],[{key:"is",get:function(){return"distill-appendix"}}])}(o(HTMLElement)),Ho=function(n){function t(){return f(this,t),s(this,t,arguments)}return d(t,n),m(t)}(x("distill-footer",'\n\n\n
      \n\n is dedicated to clear explanations of machine learning\n\n \n\n
      \n\n'))(HTMLElement));window.distill={runlevel:0,initialize:function(){if(window.distill.runlevel<1)throw new Error("Insufficient Runlevel for Distill Template!");if("distill"in window&&window.distill.templateIsLoading)throw new Error("Runlevel 1: Distill Template is getting loaded more than once, aborting!");window.distill.templateIsLoading=!0,console.debug("Runlevel 1: Distill Template has started loading."),function(n){var t="distill-prerendered-styles";if(!n.getElementById(t)){var e=n.createElement("style");e.id=t,e.type="text/css";var i=n.createTextNode(q);e.appendChild(i);var r=n.head.querySelector("script");n.head.insertBefore(e,r)}}(document),console.debug("Runlevel 1: Static Distill styles have been added."),console.debug("Runlevel 1->2."),window.distill.runlevel+=1;for(var n=0,t=Object.entries($.listeners);n3."),window.distill.runlevel+=1;var o=[G,V,X,en,rn,on,an,ln,un,cn,j,dn,hn,N,pn,fn,gn,Ro,bn],s=[Uo,Po,Ho];if(window.distill.runlevel<2)throw new Error("Insufficient Runlevel for adding custom elements!");var l,u=a(o.concat(s));try{for(u.s();!(l=u.n()).done;){var c=l.value;console.debug("Runlevel 2: Registering custom element: "+c.is),customElements.define(c.is,c)}}catch(n){u.e(n)}finally{u.f()}console.debug("Runlevel 3: Distill Template finished registering custom elements."),console.debug("Runlevel 3->4."),window.distill.runlevel+=1,P()&&$.listeners.DOMContentLoaded(),console.debug("Runlevel 4: Distill Template initialisation complete."),window.distill.templateIsLoading=!1,window.distill.templateHasLoaded=!0},templateIsLoading:!1},W.browserSupportsAllFeatures()?(console.debug("Runlevel 0: No need for polyfills."),console.debug("Runlevel 0->1."),window.distill.runlevel+=1,window.distill.initialize()):(console.debug("Runlevel 0: Distill Template is loading polyfills."),W.load(window.distill.initialize))},void 0===(r=i.call(t,e,t,n))||(n.exports=r)}},t={};function e(i){var r=t[i];if(void 0!==r)return r.exports;var o=t[i]={exports:{}};return n[i](o,o.exports,e),o.exports}e.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(n){if("object"==typeof window)return window}}(),e(265)})(); //# sourceMappingURL=distill.bundle.js.map \ No newline at end of file