diff --git a/404.html b/404.html
index 96b05511..253334eb 100644
--- a/404.html
+++ b/404.html
@@ -11,13 +11,13 @@
 
 
 <script src="/js/carbon.js" async></script><title data-rh="true">Page Not Found | Task</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://taskfile.dev/404.html"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_tag" content="default"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:docusaurus_tag" content="default"><meta data-rh="true" name="og:image" content="https://preview-taskfile.netlify.app/img/logo.svg"><meta data-rh="true" property="og:title" content="Page Not Found | Task"><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://taskfile.dev/404.html"><link data-rh="true" rel="alternate" href="https://taskfile.dev/404.html" hreflang="en"><link data-rh="true" rel="alternate" href="https://taskfile.dev/404.html" hreflang="x-default"><link rel="stylesheet" href="/assets/css/styles.3fb3b1af.css">
-<link rel="preload" href="/assets/js/runtime~main.ecad62b6.js" as="script">
-<link rel="preload" href="/assets/js/main.02eb1717.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.dc8eec3e.js" as="script">
+<link rel="preload" href="/assets/js/main.a2abdebd.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
-<div role="region"><a href="#" class="skipToContent_ZgBM">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><div class="navbar__logo"><img src="/img/logo.svg" alt="Task Logo" class="themedImage_W2Cr themedImage--light_TfLj"><img src="/img/logo.svg" alt="Task Logo" class="themedImage_W2Cr themedImage--dark_oUvU"></div><b class="navbar__title text--truncate">Task</b></a><a class="navbar__item navbar__link" href="/installation/">Installation</a><a class="navbar__item navbar__link" href="/usage/">Usage</a><a class="navbar__item navbar__link" href="/donate/">Donate</a></div><div class="navbar__items navbar__items--right"><a href="https://github.com/go-task/task" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">GitHub<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a><a href="https://discord.gg/6TY36E39UK" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a><div class="toggle_S7eR colorModeToggle_vKtC"><button class="clean-btn toggleButton_rCf9 toggleButtonDisabled_Pu9x" type="button" disabled="" title="Switch between dark and light mode (currently light mode)" aria-label="Switch between dark and light mode (currently light mode)"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_v35p"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_nQuB"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_dLyj"></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div class="main-wrapper"><main class="container margin-vert--xl"><div class="row"><div class="col col--6 col--offset-3"><h1 class="hero__title">Page Not Found</h1><p>We could not find what you were looking for.</p><p>Please contact the owner of the site that linked you to the original URL and let them know their link is broken.</p></div></div></main></div><footer class="footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Docs</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/installation/">Installation</a></li><li class="footer__item"><a class="footer__link-item" href="/usage/">Usage</a></li><li class="footer__item"><a class="footer__link-item" href="/donate/">Donate</a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://github.com/go-task/task" target="_blank" rel="noopener noreferrer" class="footer__link-item">GitHub<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discord.gg/6TY36E39UK" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://opencollective.com/task" target="_blank" rel="noopener noreferrer" class="footer__link-item">OpenCollective<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.ecad62b6.js"></script>
-<script src="/assets/js/main.02eb1717.js"></script>
+<div role="region"><a href="#" class="skipToContent_ZgBM">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><div class="navbar__logo"><img src="/img/logo.svg" alt="Task Logo" class="themedImage_W2Cr themedImage--light_TfLj"><img src="/img/logo.svg" alt="Task Logo" class="themedImage_W2Cr themedImage--dark_oUvU"></div><b class="navbar__title text--truncate">Task</b></a><a class="navbar__item navbar__link" href="/installation/">Installation</a><a class="navbar__item navbar__link" href="/usage/">Usage</a><a class="navbar__item navbar__link" href="/api/">API</a><a class="navbar__item navbar__link" href="/donate/">Donate</a></div><div class="navbar__items navbar__items--right"><a href="https://github.com/go-task/task" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">GitHub<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a><a href="https://discord.gg/6TY36E39UK" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a><div class="toggle_S7eR colorModeToggle_vKtC"><button class="clean-btn toggleButton_rCf9 toggleButtonDisabled_Pu9x" type="button" disabled="" title="Switch between dark and light mode (currently light mode)" aria-label="Switch between dark and light mode (currently light mode)"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_v35p"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_nQuB"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_dLyj"></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div class="main-wrapper"><main class="container margin-vert--xl"><div class="row"><div class="col col--6 col--offset-3"><h1 class="hero__title">Page Not Found</h1><p>We could not find what you were looking for.</p><p>Please contact the owner of the site that linked you to the original URL and let them know their link is broken.</p></div></div></main></div><footer class="footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Docs</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/installation/">Installation</a></li><li class="footer__item"><a class="footer__link-item" href="/usage/">Usage</a></li><li class="footer__item"><a class="footer__link-item" href="/donate/">Donate</a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://github.com/go-task/task" target="_blank" rel="noopener noreferrer" class="footer__link-item">GitHub<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discord.gg/6TY36E39UK" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://opencollective.com/task" target="_blank" rel="noopener noreferrer" class="footer__link-item">OpenCollective<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div></div></footer></div>
+<script src="/assets/js/runtime~main.dc8eec3e.js"></script>
+<script src="/assets/js/main.a2abdebd.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/api/index.html b/api/index.html
new file mode 100644
index 00000000..5a655cca
--- /dev/null
+++ b/api/index.html
@@ -0,0 +1,27 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="docs-wrapper docs-doc-page docs-version-current plugin-docs plugin-id-default docs-doc-id-api_reference">
+<head>
+<meta charset="UTF-8">
+<meta name="viewport" content="width=device-width,initial-scale=1">
+<meta name="generator" content="Docusaurus v2.0.0-beta.20">
+<link rel="preconnect" href="https://www.google-analytics.com">
+<link rel="preconnect" href="https://www.googletagmanager.com">
+<script async src="https://www.googletagmanager.com/gtag/js?id=G-4RT25NXQ7N"></script>
+<script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-4RT25NXQ7N",{anonymize_ip:!0})</script>
+
+
+<script src="/js/carbon.js" async></script><title data-rh="true">API Reference | Task</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://taskfile.dev/api/"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="og:image" content="https://preview-taskfile.netlify.app/img/logo.svg"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="API Reference | Task"><meta data-rh="true" name="description" content="CLI"><meta data-rh="true" property="og:description" content="CLI"><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://taskfile.dev/api/"><link data-rh="true" rel="alternate" href="https://taskfile.dev/api/" hreflang="en"><link data-rh="true" rel="alternate" href="https://taskfile.dev/api/" hreflang="x-default"><link rel="stylesheet" href="/assets/css/styles.3fb3b1af.css">
+<link rel="preload" href="/assets/js/runtime~main.dc8eec3e.js" as="script">
+<link rel="preload" href="/assets/js/main.a2abdebd.js" as="script">
+</head>
+<body class="navigation-with-keyboard">
+<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
+<div role="region"><a href="#" class="skipToContent_ZgBM">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><div class="navbar__logo"><img src="/img/logo.svg" alt="Task Logo" class="themedImage_W2Cr themedImage--light_TfLj"><img src="/img/logo.svg" alt="Task Logo" class="themedImage_W2Cr themedImage--dark_oUvU"></div><b class="navbar__title text--truncate">Task</b></a><a class="navbar__item navbar__link navbar__link--active" href="/installation/">Installation</a><a class="navbar__item navbar__link navbar__link--active" href="/usage/">Usage</a><a aria-current="page" class="navbar__item navbar__link navbar__link--active" href="/api/">API</a><a class="navbar__item navbar__link navbar__link--active" href="/donate/">Donate</a></div><div class="navbar__items navbar__items--right"><a href="https://github.com/go-task/task" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">GitHub<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a><a href="https://discord.gg/6TY36E39UK" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a><div class="toggle_S7eR colorModeToggle_vKtC"><button class="clean-btn toggleButton_rCf9 toggleButtonDisabled_Pu9x" type="button" disabled="" title="Switch between dark and light mode (currently light mode)" aria-label="Switch between dark and light mode (currently light mode)"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_v35p"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_nQuB"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_dLyj"></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div class="main-wrapper docsWrapper_mKqt"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_RiI4" type="button"></button><div class="docPage_ualW"><aside class="theme-doc-sidebar-container docSidebarContainer_UQUJ"><div class="sidebar_RiAD"><nav class="menu thin-scrollbar menu_izAj"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/">Home</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/installation/">Installation</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/usage/">Usage</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" href="/api/">API Reference</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/styleguide/">Styleguide</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/changelog/">Changelog</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/community/">Community</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/releasing/">Releasing</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/taskfile-versions/">Taskfile Versions</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/donate/">Donate</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1"><div id="sidebar-ads"></div></li></ul></nav></div></aside><main class="docMainContainer_uL0j"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_DM6M"><div class="docItemContainer_vinB"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Xlws" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_kU5B"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">API Reference</span><meta itemprop="position" content="1"></li></ul></nav><div class="tocCollapsible_bZGK theme-doc-toc-mobile tocMobile_TmEX"><button type="button" class="clean-btn tocCollapsibleButton_l22C">On this page</button></div><div class="theme-doc-markdown markdown"><h1>API Reference</h1><h2 class="anchor anchorWithStickyNavbar_mojV" id="cli">CLI<a class="hash-link" href="#cli" title="Direct link to heading">​</a></h2><p>Task command line tool has the following syntax:</p><div class="language-bash codeBlockContainer_MPoW theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_B9tL"><pre tabindex="0" class="prism-code language-bash codeBlock__0OG thin-scrollbar"><code class="codeBlockLines_gEuF"><span class="token-line" style="color:#393A34"><span class="token plain">task </span><span class="token punctuation" style="color:#393A34">[</span><span class="token plain">--flags</span><span class="token punctuation" style="color:#393A34">]</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">[</span><span class="token plain">tasks</span><span class="token punctuation" style="color:#393A34">..</span><span class="token plain">.</span><span class="token punctuation" style="color:#393A34">]</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">[</span><span class="token plain">-- CLI_ARGS</span><span class="token punctuation" style="color:#393A34">..</span><span class="token plain">.</span><span class="token punctuation" style="color:#393A34">]</span><br></span></code></pre><div class="buttonGroup_hRr1"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_W9eQ" aria-hidden="true"><svg class="copyButtonIcon_XEyF" viewBox="0 0 24 24"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg class="copyButtonSuccessIcon_i9w9" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><div class="admonition admonition-tip alert alert--success"><div class="admonition-heading"><h5><span class="admonition-icon"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="16" viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"></path></svg></span>tip</h5></div><div class="admonition-content"><p>If <code>--</code> is given, all remaning arguments to assigned to a special <code>CLI_ARGS</code>
+variable</p></div></div><table><thead><tr><th>Short</th><th>Flag</th><th>Type</th><th>Default</th><th>Description</th></tr></thead><tbody><tr><td><code>-c</code></td><td><code>--color</code></td><td><code>bool</code></td><td><code>true</code></td><td>Colored output. Enabled by default. Set flag to <code>false</code> or use <code>NO_COLOR=1</code> to disable.</td></tr><tr><td><code>-C</code></td><td><code>--concurrency</code></td><td><code>int</code></td><td><code>0</code></td><td>Limit number tasks to run concurrently. Zero means unlimited.</td></tr><tr><td><code>-d</code></td><td><code>--dir</code></td><td><code>string</code></td><td>Working directory</td><td>Sets directory of execution.</td></tr><tr><td></td><td><code>--dry</code></td><td><code>bool</code></td><td><code>false</code></td><td>Compiles and prints tasks in the order that they would be run, without executing them.</td></tr><tr><td><code>-f</code></td><td><code>--force</code></td><td><code>bool</code></td><td><code>false</code></td><td>Forces execution even when the task is up-to-date.</td></tr><tr><td><code>-h</code></td><td><code>--help</code></td><td><code>bool</code></td><td><code>false</code></td><td>Shows Task usage.</td></tr><tr><td><code>-i</code></td><td><code>--init</code></td><td><code>bool</code></td><td><code>false</code></td><td>Creates a new Taskfile.yaml in the current folder.</td></tr><tr><td><code>-l</code></td><td><code>--list</code></td><td><code>bool</code></td><td><code>false</code></td><td>Lists tasks with description of current Taskfile.</td></tr><tr><td><code>-a</code></td><td><code>--list-all</code></td><td><code>bool</code></td><td><code>false</code></td><td>Lists tasks with or without a description.</td></tr><tr><td><code>-o</code></td><td><code>--output</code></td><td><code>string</code></td><td>Default set in the Taskfile or <code>intervealed</code></td><td>Sets output style: <!-- -->[<code>interleaved</code>/<code>group</code>/<code>prefixed</code>]<!-- -->.</td></tr><tr><td></td><td><code>--output-group-begin</code></td><td><code>string</code></td><td></td><td>Message template to print before a task&#x27;s grouped output.</td></tr><tr><td></td><td><code>--output-group-end </code></td><td><code>string</code></td><td></td><td>Message template to print after a task&#x27;s grouped output.</td></tr><tr><td><code>-p</code></td><td><code>--parallel</code></td><td><code>bool</code></td><td><code>false</code></td><td>Executes tasks provided on command line in parallel.</td></tr><tr><td><code>-s</code></td><td><code>--silent</code></td><td><code>bool</code></td><td><code>false</code></td><td>Disables echoing.</td></tr><tr><td></td><td><code>--status</code></td><td><code>bool</code></td><td><code>false</code></td><td>Exits with non-zero exit code if any of the given tasks is not up-to-date.</td></tr><tr><td></td><td><code>--summary</code></td><td><code>bool</code></td><td><code>false</code></td><td>Show summary about a task.</td></tr><tr><td><code>-t</code></td><td><code>--taskfile</code></td><td><code>string</code></td><td><code>Taskfile.yml</code> or <code>Taskfile.yaml</code></td><td></td></tr><tr><td><code>-v</code></td><td><code>--verbose</code></td><td><code>bool</code></td><td><code>false</code></td><td>Enables verbose mode.</td></tr><tr><td></td><td><code>--version</code></td><td><code>bool</code></td><td><code>false</code></td><td>Show Task version.</td></tr><tr><td><code>-w</code></td><td><code>--watch</code></td><td><code>bool</code></td><td><code>false</code></td><td>Enables watch of the given task.</td></tr></tbody></table><h2 class="anchor anchorWithStickyNavbar_mojV" id="schema">Schema<a class="hash-link" href="#schema" title="Direct link to heading">​</a></h2><h3 class="anchor anchorWithStickyNavbar_mojV" id="taskfile">Taskfile<a class="hash-link" href="#taskfile" title="Direct link to heading">​</a></h3><table><thead><tr><th>Attribute</th><th>Type</th><th>Default</th><th>Description</th></tr></thead><tbody><tr><td><code>version</code></td><td><code>string</code></td><td></td><td>Version of the Taskfile. The current version is <code>3</code>.</td></tr><tr><td><code>includes</code></td><td><a href="#include"><code>map[string]Include</code></a></td><td></td><td>Additional Taskfiles to be included.</td></tr><tr><td><code>output</code></td><td><code>string</code></td><td><code>interleaved</code></td><td>Output mode. Available options: <code>interleaved</code>, <code>group</code> and <code>prefixed</code>.</td></tr><tr><td><code>method</code></td><td><code>string</code></td><td><code>checksum</code></td><td>Default method in this Taskfile. Can be overriden in a task by task basis. Available options: <code>checksum</code>, <code>timestamp</code> and <code>none</code>.</td></tr><tr><td><code>silent</code></td><td><code>bool</code></td><td><code>false</code></td><td>Default &quot;silent&quot; options for this Taskfile. If <code>false</code>, can be overidden with <code>true</code> in a task by task basis.</td></tr><tr><td><code>run</code></td><td><code>string</code></td><td><code>always</code></td><td>Default &quot;run&quot; option for this Taskfile. Available options: <code>always</code>, <code>once</code> and <code>when_changed</code>.</td></tr><tr><td><code>vars</code></td><td><a href="#variable"><code>map[string]Variable</code></a></td><td></td><td>Global variables.</td></tr><tr><td><code>env</code></td><td><a href="#variable"><code>map[string]Variable</code></a></td><td></td><td>Global environment.</td></tr><tr><td><code>dotenv</code></td><td><code>[]string</code></td><td></td><td>A list of <code>.env</code> file paths to be parsed.</td></tr><tr><td><code>tasks</code></td><td><a href="#task"><code>map[string]Task</code></a></td><td></td><td>The task definitions.</td></tr></tbody></table><h3 class="anchor anchorWithStickyNavbar_mojV" id="include">Include<a class="hash-link" href="#include" title="Direct link to heading">​</a></h3><table><thead><tr><th>Attribute</th><th>Type</th><th>Default</th><th>Description</th></tr></thead><tbody><tr><td><code>taskfile</code></td><td><code>string</code></td><td></td><td>The path for the Taskfile or directory to be included. If a directory, Task will look for files named <code>Taskfile.yml</code> or <code>Taskfile.yaml</code> inside that directory.</td></tr><tr><td><code>dir</code></td><td><code>string</code></td><td>The parent Taskfile directory</td><td>The working directory of the included tasks when run.</td></tr><tr><td><code>optional</code></td><td><code>bool</code></td><td><code>false</code></td><td>If <code>true</code>, no errors will be thrown if the specified file does not exist.</td></tr></tbody></table><div class="admonition admonition-info alert alert--info"><div class="admonition-heading"><h5><span class="admonition-icon"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="16" viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>info</h5></div><div class="admonition-content"><p>Informing only a string like below is equivalent to setting that value to the <code>taskfile</code> attribute.</p><div class="language-yaml codeBlockContainer_MPoW theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_B9tL"><pre tabindex="0" class="prism-code language-yaml codeBlock__0OG thin-scrollbar"><code class="codeBlockLines_gEuF"><span class="token-line" style="color:#393A34"><span class="token key atrule" style="color:#00a4db">includes</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#00a4db">foo</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> ./path</span><br></span></code></pre><div class="buttonGroup_hRr1"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_W9eQ" aria-hidden="true"><svg class="copyButtonIcon_XEyF" viewBox="0 0 24 24"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg class="copyButtonSuccessIcon_i9w9" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div></div></div><h3 class="anchor anchorWithStickyNavbar_mojV" id="task">Task<a class="hash-link" href="#task" title="Direct link to heading">​</a></h3><table><thead><tr><th>Attribute</th><th>Type</th><th>Default</th><th>Description</th></tr></thead><tbody><tr><td><code>desc</code></td><td><code>string</code></td><td></td><td>A short description of the task. This is listed when calling <code>task --list</code>.</td></tr><tr><td><code>summary</code></td><td><code>string</code></td><td></td><td>A longer description of the task. This is listed when calling <code>task --summary [task]</code>.</td></tr><tr><td><code>sources</code></td><td><code>[]string</code></td><td></td><td>List of sources to check before running this task. Relevant for <code>checksum</code> and <code>timestamp</code> methods. Can be file paths or star globs.</td></tr><tr><td><code>dir</code></td><td><code>string</code></td><td></td><td>The current directory which this task should run.</td></tr><tr><td><code>method</code></td><td><code>string</code></td><td><code>checksum</code></td><td>Method used by this task. Default to the one declared globally or <code>checksum</code>. Available options: <code>checksum</code>, <code>timestamp</code> and <code>none</code></td></tr><tr><td><code>silent</code></td><td><code>bool</code></td><td><code>false</code></td><td>Skips some output for this task. Note that STDOUT and STDERR of the commands will still be redirected.</td></tr><tr><td><code>run</code></td><td><code>string</code></td><td>The one declared globally in the Taskfile or <code>always</code></td><td>Specifies whether the task should run again or not if called more than once. Available options: <code>always</code>, <code>once</code> and <code>when_changed</code>.</td></tr><tr><td><code>prefix</code></td><td><code>string</code></td><td></td><td>Allows to override the prefix print before the STDOUT. Only relevant when using the <code>prefixed</code> output mode.</td></tr><tr><td><code>ignore_error</code></td><td><code>bool</code></td><td><code>false</code></td><td>Continue execution if errors happen while executing the commands.</td></tr><tr><td><code>generates</code></td><td><code>[]string</code></td><td></td><td>List of files meant to be generated by this task. Relevant for <code>timestamp</code> method. Can be file paths or star globs.</td></tr><tr><td><code>status</code></td><td><code>[]string</code></td><td></td><td>List of commands to check if this task should run. The task is skipped otherwise. This overrides <code>method</code>, <code>sources</code> and <code>generates</code>.</td></tr><tr><td><code>preconditions</code></td><td><a href="#precondition"><code>[]Precondition</code></a></td><td></td><td>List of commands to check if this task should run. The task errors otherwise.</td></tr><tr><td><code>vars</code></td><td><a href="#variable"><code>map[string]Variable</code></a></td><td></td><td>Task variables.</td></tr><tr><td><code>env</code></td><td><a href="#variable"><code>map[string]Variable</code></a></td><td></td><td>Task environment.</td></tr><tr><td><code>deps</code></td><td><a href="#dependency"><code>[]Dependency</code></a></td><td></td><td>List of dependencies of this task.</td></tr><tr><td><code>cmds</code></td><td><a href="#command"><code>[]Command</code></a></td><td></td><td>List of commands to be executed.</td></tr></tbody></table><div class="admonition admonition-info alert alert--info"><div class="admonition-heading"><h5><span class="admonition-icon"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="16" viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>info</h5></div><div class="admonition-content"><p>These alternative syntaxes are available. They will set the given values to
+<code>cmds</code> and everything else will be set to their default values:</p><div class="language-yaml codeBlockContainer_MPoW theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_B9tL"><pre tabindex="0" class="prism-code language-yaml codeBlock__0OG thin-scrollbar"><code class="codeBlockLines_gEuF"><span class="token-line" style="color:#393A34"><span class="token key atrule" style="color:#00a4db">tasks</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#00a4db">foo</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> echo &quot;foo&quot;</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#00a4db">foobar</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain"> echo &quot;foo&quot;</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain"> echo &quot;bar&quot;</span><br></span></code></pre><div class="buttonGroup_hRr1"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_W9eQ" aria-hidden="true"><svg class="copyButtonIcon_XEyF" viewBox="0 0 24 24"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg class="copyButtonSuccessIcon_i9w9" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div></div></div><h3 class="anchor anchorWithStickyNavbar_mojV" id="dependency">Dependency<a class="hash-link" href="#dependency" title="Direct link to heading">​</a></h3><table><thead><tr><th>Attribute</th><th>Type</th><th>Default</th><th>Description</th></tr></thead><tbody><tr><td><code>task</code></td><td><code>string</code></td><td></td><td>The task to be execute as a dependency.</td></tr><tr><td><code>vars</code></td><td><a href="#variable"><code>map[string]Variable</code></a></td><td></td><td>Optional additional variables to be passed to this task.</td></tr></tbody></table><div class="admonition admonition-tip alert alert--success"><div class="admonition-heading"><h5><span class="admonition-icon"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="16" viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"></path></svg></span>tip</h5></div><div class="admonition-content"><p>If you don&#x27;t want to set additional variables, it&#x27;s enough to declare the
+dependency as a list of strings (they will be assigned to <code>task</code>):</p><div class="language-yaml codeBlockContainer_MPoW theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_B9tL"><pre tabindex="0" class="prism-code language-yaml codeBlock__0OG thin-scrollbar"><code class="codeBlockLines_gEuF"><span class="token-line" style="color:#393A34"><span class="token key atrule" style="color:#00a4db">tasks</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#00a4db">foo</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token key atrule" style="color:#00a4db">deps</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">[</span><span class="token plain">foo</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> bar</span><span class="token punctuation" style="color:#393A34">]</span><br></span></code></pre><div class="buttonGroup_hRr1"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_W9eQ" aria-hidden="true"><svg class="copyButtonIcon_XEyF" viewBox="0 0 24 24"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg class="copyButtonSuccessIcon_i9w9" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div></div></div><h3 class="anchor anchorWithStickyNavbar_mojV" id="command">Command<a class="hash-link" href="#command" title="Direct link to heading">​</a></h3><table><thead><tr><th>Attribute</th><th>Type</th><th>Default</th><th>Description</th></tr></thead><tbody><tr><td><code>cmd</code></td><td><code>string</code></td><td></td><td>The shell command to be executed.</td></tr><tr><td><code>defer</code></td><td><code>string</code></td><td></td><td>Alternative to <code>cmd</code>, but schedules the command to be executed at the end of this task instead of immediately. This cannot be used together with <code>cmd</code>.</td></tr><tr><td><code>silent</code></td><td><code>bool</code></td><td><code>false</code></td><td>Skips some output for this command. Note that STDOUT and STDERR of the commands will still be redirected.</td></tr><tr><td><code>ignore_error</code></td><td><code>bool</code></td><td><code>false</code></td><td>Continue execution if errors happen while executing the command.</td></tr><tr><td><code>task</code></td><td><code>string</code></td><td></td><td>Set this to trigger execution of another task instead of running a command. This cannot be set together with <code>cmd</code>.</td></tr><tr><td><code>vars</code></td><td><a href="#variable"><code>map[string]Variable</code></a></td><td></td><td>Optional additional variables to be passed to the referenced task. Only relevant when setting <code>task</code> instead of <code>cmd</code>.</td></tr></tbody></table><div class="admonition admonition-info alert alert--info"><div class="admonition-heading"><h5><span class="admonition-icon"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="16" viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>info</h5></div><div class="admonition-content"><p>If given as a a string, the value will be assigned to <code>cmd</code>:</p><div class="language-yaml codeBlockContainer_MPoW theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_B9tL"><pre tabindex="0" class="prism-code language-yaml codeBlock__0OG thin-scrollbar"><code class="codeBlockLines_gEuF"><span class="token-line" style="color:#393A34"><span class="token key atrule" style="color:#00a4db">tasks</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#00a4db">foo</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token key atrule" style="color:#00a4db">cmds</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain"> echo &quot;foo&quot;</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain"> echo &quot;bar&quot;</span><br></span></code></pre><div class="buttonGroup_hRr1"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_W9eQ" aria-hidden="true"><svg class="copyButtonIcon_XEyF" viewBox="0 0 24 24"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg class="copyButtonSuccessIcon_i9w9" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div></div></div><h3 class="anchor anchorWithStickyNavbar_mojV" id="variable">Variable<a class="hash-link" href="#variable" title="Direct link to heading">​</a></h3><table><thead><tr><th>Attribute</th><th>Type</th><th>Default</th><th>Description</th></tr></thead><tbody><tr><td><em>itself</em></td><td><code>string</code></td><td></td><td>A static value that will be set to the variable.</td></tr><tr><td><code>sh</code></td><td><code>string</code></td><td></td><td>A shell command. The output (<code>STDOUT</code>) will be assigned to the variable.</td></tr></tbody></table><div class="admonition admonition-info alert alert--info"><div class="admonition-heading"><h5><span class="admonition-icon"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="16" viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>info</h5></div><div class="admonition-content"><p>Static and dynamic variables have different syntaxes, like below:</p><div class="language-yaml codeBlockContainer_MPoW theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_B9tL"><pre tabindex="0" class="prism-code language-yaml codeBlock__0OG thin-scrollbar"><code class="codeBlockLines_gEuF"><span class="token-line" style="color:#393A34"><span class="token key atrule" style="color:#00a4db">vars</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#00a4db">STATIC</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> static</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#00a4db">DYNAMIC</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token key atrule" style="color:#00a4db">sh</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> echo &quot;dynamic&quot;</span><br></span></code></pre><div class="buttonGroup_hRr1"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_W9eQ" aria-hidden="true"><svg class="copyButtonIcon_XEyF" viewBox="0 0 24 24"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg class="copyButtonSuccessIcon_i9w9" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div></div></div><h3 class="anchor anchorWithStickyNavbar_mojV" id="precondition">Precondition<a class="hash-link" href="#precondition" title="Direct link to heading">​</a></h3><table><thead><tr><th>Attribute</th><th>Type</th><th>Default</th><th>Description</th></tr></thead><tbody><tr><td><code>sh</code></td><td><code>string</code></td><td></td><td>Command to be executed. If a non-zero exit code is returned, the task errors without executing its commands.</td></tr><tr><td><code>msg</code></td><td><code>string</code></td><td></td><td>Optional message to print if the precondition isn&#x27;t met.</td></tr></tbody></table><div class="admonition admonition-tip alert alert--success"><div class="admonition-heading"><h5><span class="admonition-icon"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="16" viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"></path></svg></span>tip</h5></div><div class="admonition-content"><p>If you don&#x27;t want to set a different message, you can declare a precondition
+like this and the value will be assigned to <code>sh</code>:</p><div class="language-yaml codeBlockContainer_MPoW theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_B9tL"><pre tabindex="0" class="prism-code language-yaml codeBlock__0OG thin-scrollbar"><code class="codeBlockLines_gEuF"><span class="token-line" style="color:#393A34"><span class="token key atrule" style="color:#00a4db">tasks</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#00a4db">foo</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token key atrule" style="color:#00a4db">precondition</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> test </span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain">f Taskfile.yml</span><br></span></code></pre><div class="buttonGroup_hRr1"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_W9eQ" aria-hidden="true"><svg class="copyButtonIcon_XEyF" viewBox="0 0 24 24"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg class="copyButtonSuccessIcon_i9w9" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div></div></div></div></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages navigation"><a class="pagination-nav__link pagination-nav__link--prev" href="/usage/"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Usage</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/styleguide/"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">Styleguide</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_cNA8 thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#cli" class="table-of-contents__link toc-highlight">CLI</a></li><li><a href="#schema" class="table-of-contents__link toc-highlight">Schema</a><ul><li><a href="#taskfile" class="table-of-contents__link toc-highlight">Taskfile</a></li><li><a href="#include" class="table-of-contents__link toc-highlight">Include</a></li><li><a href="#task" class="table-of-contents__link toc-highlight">Task</a></li><li><a href="#dependency" class="table-of-contents__link toc-highlight">Dependency</a></li><li><a href="#command" class="table-of-contents__link toc-highlight">Command</a></li><li><a href="#variable" class="table-of-contents__link toc-highlight">Variable</a></li><li><a href="#precondition" class="table-of-contents__link toc-highlight">Precondition</a></li></ul></li></ul></div></div></div></div></main></div></div><footer class="footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Docs</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/installation/">Installation</a></li><li class="footer__item"><a class="footer__link-item" href="/usage/">Usage</a></li><li class="footer__item"><a class="footer__link-item" href="/donate/">Donate</a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://github.com/go-task/task" target="_blank" rel="noopener noreferrer" class="footer__link-item">GitHub<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discord.gg/6TY36E39UK" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://opencollective.com/task" target="_blank" rel="noopener noreferrer" class="footer__link-item">OpenCollective<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div></div></footer></div>
+<script src="/assets/js/runtime~main.dc8eec3e.js"></script>
+<script src="/assets/js/main.a2abdebd.js"></script>
+</body>
+</html>
\ No newline at end of file
diff --git a/assets/js/0afd354a.47e323cd.js b/assets/js/0afd354a.3d55476b.js
similarity index 98%
rename from assets/js/0afd354a.47e323cd.js
rename to assets/js/0afd354a.3d55476b.js
index 31343bc9..410c0344 100644
--- a/assets/js/0afd354a.47e323cd.js
+++ b/assets/js/0afd354a.3d55476b.js
@@ -1 +1 @@
-"use strict";(self.webpackChunktaskfile_dev=self.webpackChunktaskfile_dev||[]).push([[552],{3905:function(e,n,t){t.d(n,{Zo:function(){return u},kt:function(){return k}});var a=t(7294);function r(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function l(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}return t}function i(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?l(Object(t),!0).forEach((function(n){r(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):l(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function o(e,n){if(null==e)return{};var t,a,r=function(e,n){if(null==e)return{};var t,a,r={},l=Object.keys(e);for(a=0;a<l.length;a++)t=l[a],n.indexOf(t)>=0||(r[t]=e[t]);return r}(e,n);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a<l.length;a++)t=l[a],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}var s=a.createContext({}),p=function(e){var n=a.useContext(s),t=n;return e&&(t="function"==typeof e?e(n):i(i({},n),e)),t},u=function(e){var n=p(e.components);return a.createElement(s.Provider,{value:n},e.children)},c={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},d=a.forwardRef((function(e,n){var t=e.components,r=e.mdxType,l=e.originalType,s=e.parentName,u=o(e,["components","mdxType","originalType","parentName"]),d=p(t),k=r,m=d["".concat(s,".").concat(k)]||d[k]||c[k]||l;return t?a.createElement(m,i(i({ref:n},u),{},{components:t})):a.createElement(m,i({ref:n},u))}));function k(e,n){var t=arguments,r=n&&n.mdxType;if("string"==typeof e||r){var l=t.length,i=new Array(l);i[0]=d;var o={};for(var s in n)hasOwnProperty.call(n,s)&&(o[s]=n[s]);o.originalType=e,o.mdxType="string"==typeof e?e:r,i[1]=o;for(var p=2;p<l;p++)i[p]=t[p];return a.createElement.apply(null,i)}return a.createElement.apply(null,t)}d.displayName="MDXCreateElement"},2926:function(e,n,t){t.r(n),t.d(n,{assets:function(){return u},contentTitle:function(){return s},default:function(){return k},frontMatter:function(){return o},metadata:function(){return p},toc:function(){return c}});var a=t(7462),r=t(3366),l=(t(7294),t(3905)),i=["components"],o={slug:"/taskfile-versions/",sidebar_position:7},s="Taskfile Versions",p={unversionedId:"taskfile_versions",id:"taskfile_versions",title:"Taskfile Versions",description:"The Taskfile syntax and features changed with time. This document explains what",source:"@site/docs/taskfile_versions.md",sourceDirName:".",slug:"/taskfile-versions/",permalink:"/taskfile-versions/",draft:!1,tags:[],version:"current",sidebarPosition:7,frontMatter:{slug:"/taskfile-versions/",sidebar_position:7},sidebar:"tutorialSidebar",previous:{title:"Releasing",permalink:"/releasing/"},next:{title:"Donate",permalink:"/donate/"}},u={},c=[{value:"What the Taskfile version mean",id:"what-the-taskfile-version-mean",level:2},{value:"Version 1",id:"version-1",level:2},{value:"Version 2.0",id:"version-20",level:2},{value:"Version 2.1",id:"version-21",level:2},{value:"Version 2.2",id:"version-22",level:2},{value:"Version 2.6",id:"version-26",level:2},{value:"Version 3",id:"version-3",level:2}],d={toc:c};function k(e){var n=e.components,t=(0,r.Z)(e,i);return(0,l.kt)("wrapper",(0,a.Z)({},d,t,{components:n,mdxType:"MDXLayout"}),(0,l.kt)("h1",{id:"taskfile-versions"},"Taskfile Versions"),(0,l.kt)("p",null,"The Taskfile syntax and features changed with time. This document explains what\nchanged on each version and how to upgrade your Taskfile."),(0,l.kt)("h2",{id:"what-the-taskfile-version-mean"},"What the Taskfile version mean"),(0,l.kt)("p",null,"The Taskfile version follows the Task version. E.g. the change to Taskfile\nversion ",(0,l.kt)("inlineCode",{parentName:"p"},"2")," means that Task ",(0,l.kt)("inlineCode",{parentName:"p"},"v2.0.0")," should be release to support it."),(0,l.kt)("p",null,"The ",(0,l.kt)("inlineCode",{parentName:"p"},"version:")," key on Taskfile accepts a semver string, so either ",(0,l.kt)("inlineCode",{parentName:"p"},"2"),", ",(0,l.kt)("inlineCode",{parentName:"p"},"2.0")," or\n",(0,l.kt)("inlineCode",{parentName:"p"},"2.0.0")," is accepted. If you choose to use ",(0,l.kt)("inlineCode",{parentName:"p"},"2.0")," Task will not enable future\n",(0,l.kt)("inlineCode",{parentName:"p"},"2.1")," features, but if you choose to use ",(0,l.kt)("inlineCode",{parentName:"p"},"2"),", then any ",(0,l.kt)("inlineCode",{parentName:"p"},"2.x.x")," features will be\navailable, but not ",(0,l.kt)("inlineCode",{parentName:"p"},"3.0.0+"),"."),(0,l.kt)("h2",{id:"version-1"},"Version 1"),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"NOTE: Taskfiles in version 1 are not supported on Task >= v3.0.0 anymore.")),(0,l.kt)("p",null,"In the first version of the ",(0,l.kt)("inlineCode",{parentName:"p"},"Taskfile"),", the ",(0,l.kt)("inlineCode",{parentName:"p"},"version:")," key was not available,\nbecause the tasks was in the root of the YAML document. Like this:"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-yaml"},'echo:\n  cmds:\n    - echo "Hello, World!"\n')),(0,l.kt)("p",null,"The variable priority order was also different:"),(0,l.kt)("ol",null,(0,l.kt)("li",{parentName:"ol"},"Call variables"),(0,l.kt)("li",{parentName:"ol"},"Environment"),(0,l.kt)("li",{parentName:"ol"},"Task variables"),(0,l.kt)("li",{parentName:"ol"},(0,l.kt)("inlineCode",{parentName:"li"},"Taskvars.yml")," variables")),(0,l.kt)("h2",{id:"version-20"},"Version 2.0"),(0,l.kt)("p",null,"At version 2, we introduced the ",(0,l.kt)("inlineCode",{parentName:"p"},"version:")," key, to allow us to evolve Task\nwith new features without breaking existing Taskfiles. The new syntax is as\nfollows:"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-yaml"},"version: '2'\n\ntasks:\n  echo:\n    cmds:\n      - echo \"Hello, World!\"\n")),(0,l.kt)("p",null,"Version 2 allows you to write global variables directly in the Taskfile,\nif you don't want to create a ",(0,l.kt)("inlineCode",{parentName:"p"},"Taskvars.yml"),":"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-yaml"},"version: '2'\n\nvars:\n  GREETING: Hello, World!\n\ntasks:\n  greet:\n    cmds:\n      - echo \"{{.GREETING}}\"\n")),(0,l.kt)("p",null,"The variable priority order changed to the following:"),(0,l.kt)("ol",null,(0,l.kt)("li",{parentName:"ol"},"Task variables"),(0,l.kt)("li",{parentName:"ol"},"Call variables"),(0,l.kt)("li",{parentName:"ol"},"Taskfile variables"),(0,l.kt)("li",{parentName:"ol"},"Taskvars file variables"),(0,l.kt)("li",{parentName:"ol"},"Environment variables")),(0,l.kt)("p",null,"A new global option was added to configure the number of variables expansions\n(which default to 2):"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-yaml"},'version: \'2\'\n\nexpansions: 3\n\nvars:\n  FOO: foo\n  BAR: bar\n  BAZ: baz\n  FOOBAR: "{{.FOO}}{{.BAR}}"\n  FOOBARBAZ: "{{.FOOBAR}}{{.BAZ}}"\n\ntasks:\n  default:\n    cmds:\n      - echo "{{.FOOBARBAZ}}"\n')),(0,l.kt)("h2",{id:"version-21"},"Version 2.1"),(0,l.kt)("p",null,"Version 2.1 includes a global ",(0,l.kt)("inlineCode",{parentName:"p"},"output")," option, to allow having more control\nover how commands output are printed to the console\n(see ",(0,l.kt)("a",{parentName:"p",href:"/usage/#output-syntax"},"documentation")," for more info):"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-yaml"},"version: '2'\n\noutput: prefixed\n\ntasks:\n  server:\n    cmds:\n      - go run main.go\n  prefix: server\n")),(0,l.kt)("p",null,"From this version it's also possible to ignore errors of a command or task\n(check documentation ",(0,l.kt)("a",{parentName:"p",href:"/usage/#ignore-errors"},"here"),"):"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-yaml"},'version: \'2\'\n\ntasks:\n  example-1:\n    cmds:\n      - cmd: exit 1\n        ignore_error: true\n      - echo "This will be print"\n\n  example-2:\n    cmds:\n      - exit 1\n      - echo "This will be print"\n    ignore_error: true\n')),(0,l.kt)("h2",{id:"version-22"},"Version 2.2"),(0,l.kt)("p",null,"Version 2.2 comes with a global ",(0,l.kt)("inlineCode",{parentName:"p"},"includes")," options to include other\nTaskfiles:"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-yaml"},"version: '2'\n\nincludes:\n  docs: ./documentation # will look for ./documentation/Taskfile.yml\n  docker: ./DockerTasks.yml\n")),(0,l.kt)("h2",{id:"version-26"},"Version 2.6"),(0,l.kt)("p",null,"Version 2.6 comes with ",(0,l.kt)("inlineCode",{parentName:"p"},"preconditions")," stanza in tasks."),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-yaml"},"version: '2'\n\ntasks:\n  upload_environment:\n    preconditions:\n      - test -f .env\n    cmds:\n      - aws s3 cp .env s3://myenvironment\n")),(0,l.kt)("p",null,"Please check the ",(0,l.kt)("a",{parentName:"p",href:"/usage/#including-other-taskfiles"},"documentation")),(0,l.kt)("h2",{id:"version-3"},"Version 3"),(0,l.kt)("p",null,"These are some major changes done on ",(0,l.kt)("inlineCode",{parentName:"p"},"v3"),":"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Task's output will now be colored"),(0,l.kt)("li",{parentName:"ul"},"Added support for ",(0,l.kt)("inlineCode",{parentName:"li"},".env")," like files"),(0,l.kt)("li",{parentName:"ul"},"Added ",(0,l.kt)("inlineCode",{parentName:"li"},"label:")," setting to task so one can override how the task name\nappear in the logs"),(0,l.kt)("li",{parentName:"ul"},"A global ",(0,l.kt)("inlineCode",{parentName:"li"},"method:")," was added to allow setting the default method,\nand Task's default changed to ",(0,l.kt)("inlineCode",{parentName:"li"},"checksum")),(0,l.kt)("li",{parentName:"ul"},"Two magic variables were added when using ",(0,l.kt)("inlineCode",{parentName:"li"},"status:"),": ",(0,l.kt)("inlineCode",{parentName:"li"},"CHECKSUM")," and\n",(0,l.kt)("inlineCode",{parentName:"li"},"TIMESTAMP")," which contains, respectively, the md5 checksum and greatest\nmodification timestamp of the files listed on ",(0,l.kt)("inlineCode",{parentName:"li"},"sources:")),(0,l.kt)("li",{parentName:"ul"},"Also, the ",(0,l.kt)("inlineCode",{parentName:"li"},"TASK")," variable is always available with the current task name"),(0,l.kt)("li",{parentName:"ul"},"CLI variables are always treated as global variables"),(0,l.kt)("li",{parentName:"ul"},"Added ",(0,l.kt)("inlineCode",{parentName:"li"},"dir:")," option to ",(0,l.kt)("inlineCode",{parentName:"li"},"includes")," to allow choosing on which directory an\nincluded Taskfile will run:")),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-yaml"},"includes:\n  docs:\n    taskfile: ./docs\n    dir: ./docs\n")),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Implemented short task syntax. All below syntaxes are equivalent:")),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-yaml"},"version: '3'\n\ntasks:\n  print:\n    cmds:\n      - echo \"Hello, World!\"\n")),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-yaml"},"version: '3'\n\ntasks:\n  print:\n    - echo \"Hello, World!\"\n")),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-yaml"},"version: '3'\n\ntasks:\n  print: echo \"Hello, World!\"\n")),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"There was a major refactor on how variables are handled. They're now easier\nto understand. The ",(0,l.kt)("inlineCode",{parentName:"li"},"expansions:")," setting was removed as it became unncessary.\nThis is the order in which Task will process variables, each level can see\nthe variables set by the previous one and override those.",(0,l.kt)("ul",{parentName:"li"},(0,l.kt)("li",{parentName:"ul"},"Environment variables"),(0,l.kt)("li",{parentName:"ul"},"Global + CLI variables"),(0,l.kt)("li",{parentName:"ul"},"Call variables"),(0,l.kt)("li",{parentName:"ul"},"Task variables")))))}k.isMDXComponent=!0}}]);
\ No newline at end of file
+"use strict";(self.webpackChunktaskfile_dev=self.webpackChunktaskfile_dev||[]).push([[552],{3905:function(e,n,t){t.d(n,{Zo:function(){return u},kt:function(){return k}});var a=t(7294);function r(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function l(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}return t}function i(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?l(Object(t),!0).forEach((function(n){r(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):l(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function o(e,n){if(null==e)return{};var t,a,r=function(e,n){if(null==e)return{};var t,a,r={},l=Object.keys(e);for(a=0;a<l.length;a++)t=l[a],n.indexOf(t)>=0||(r[t]=e[t]);return r}(e,n);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a<l.length;a++)t=l[a],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}var s=a.createContext({}),p=function(e){var n=a.useContext(s),t=n;return e&&(t="function"==typeof e?e(n):i(i({},n),e)),t},u=function(e){var n=p(e.components);return a.createElement(s.Provider,{value:n},e.children)},c={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},d=a.forwardRef((function(e,n){var t=e.components,r=e.mdxType,l=e.originalType,s=e.parentName,u=o(e,["components","mdxType","originalType","parentName"]),d=p(t),k=r,m=d["".concat(s,".").concat(k)]||d[k]||c[k]||l;return t?a.createElement(m,i(i({ref:n},u),{},{components:t})):a.createElement(m,i({ref:n},u))}));function k(e,n){var t=arguments,r=n&&n.mdxType;if("string"==typeof e||r){var l=t.length,i=new Array(l);i[0]=d;var o={};for(var s in n)hasOwnProperty.call(n,s)&&(o[s]=n[s]);o.originalType=e,o.mdxType="string"==typeof e?e:r,i[1]=o;for(var p=2;p<l;p++)i[p]=t[p];return a.createElement.apply(null,i)}return a.createElement.apply(null,t)}d.displayName="MDXCreateElement"},2926:function(e,n,t){t.r(n),t.d(n,{assets:function(){return u},contentTitle:function(){return s},default:function(){return k},frontMatter:function(){return o},metadata:function(){return p},toc:function(){return c}});var a=t(7462),r=t(3366),l=(t(7294),t(3905)),i=["components"],o={slug:"/taskfile-versions/",sidebar_position:8},s="Taskfile Versions",p={unversionedId:"taskfile_versions",id:"taskfile_versions",title:"Taskfile Versions",description:"The Taskfile syntax and features changed with time. This document explains what",source:"@site/docs/taskfile_versions.md",sourceDirName:".",slug:"/taskfile-versions/",permalink:"/taskfile-versions/",draft:!1,tags:[],version:"current",sidebarPosition:8,frontMatter:{slug:"/taskfile-versions/",sidebar_position:8},sidebar:"tutorialSidebar",previous:{title:"Releasing",permalink:"/releasing/"},next:{title:"Donate",permalink:"/donate/"}},u={},c=[{value:"What the Taskfile version mean",id:"what-the-taskfile-version-mean",level:2},{value:"Version 1",id:"version-1",level:2},{value:"Version 2.0",id:"version-20",level:2},{value:"Version 2.1",id:"version-21",level:2},{value:"Version 2.2",id:"version-22",level:2},{value:"Version 2.6",id:"version-26",level:2},{value:"Version 3",id:"version-3",level:2}],d={toc:c};function k(e){var n=e.components,t=(0,r.Z)(e,i);return(0,l.kt)("wrapper",(0,a.Z)({},d,t,{components:n,mdxType:"MDXLayout"}),(0,l.kt)("h1",{id:"taskfile-versions"},"Taskfile Versions"),(0,l.kt)("p",null,"The Taskfile syntax and features changed with time. This document explains what\nchanged on each version and how to upgrade your Taskfile."),(0,l.kt)("h2",{id:"what-the-taskfile-version-mean"},"What the Taskfile version mean"),(0,l.kt)("p",null,"The Taskfile version follows the Task version. E.g. the change to Taskfile\nversion ",(0,l.kt)("inlineCode",{parentName:"p"},"2")," means that Task ",(0,l.kt)("inlineCode",{parentName:"p"},"v2.0.0")," should be release to support it."),(0,l.kt)("p",null,"The ",(0,l.kt)("inlineCode",{parentName:"p"},"version:")," key on Taskfile accepts a semver string, so either ",(0,l.kt)("inlineCode",{parentName:"p"},"2"),", ",(0,l.kt)("inlineCode",{parentName:"p"},"2.0")," or\n",(0,l.kt)("inlineCode",{parentName:"p"},"2.0.0")," is accepted. If you choose to use ",(0,l.kt)("inlineCode",{parentName:"p"},"2.0")," Task will not enable future\n",(0,l.kt)("inlineCode",{parentName:"p"},"2.1")," features, but if you choose to use ",(0,l.kt)("inlineCode",{parentName:"p"},"2"),", then any ",(0,l.kt)("inlineCode",{parentName:"p"},"2.x.x")," features will be\navailable, but not ",(0,l.kt)("inlineCode",{parentName:"p"},"3.0.0+"),"."),(0,l.kt)("h2",{id:"version-1"},"Version 1"),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"NOTE: Taskfiles in version 1 are not supported on Task >= v3.0.0 anymore.")),(0,l.kt)("p",null,"In the first version of the ",(0,l.kt)("inlineCode",{parentName:"p"},"Taskfile"),", the ",(0,l.kt)("inlineCode",{parentName:"p"},"version:")," key was not available,\nbecause the tasks was in the root of the YAML document. Like this:"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-yaml"},'echo:\n  cmds:\n    - echo "Hello, World!"\n')),(0,l.kt)("p",null,"The variable priority order was also different:"),(0,l.kt)("ol",null,(0,l.kt)("li",{parentName:"ol"},"Call variables"),(0,l.kt)("li",{parentName:"ol"},"Environment"),(0,l.kt)("li",{parentName:"ol"},"Task variables"),(0,l.kt)("li",{parentName:"ol"},(0,l.kt)("inlineCode",{parentName:"li"},"Taskvars.yml")," variables")),(0,l.kt)("h2",{id:"version-20"},"Version 2.0"),(0,l.kt)("p",null,"At version 2, we introduced the ",(0,l.kt)("inlineCode",{parentName:"p"},"version:")," key, to allow us to evolve Task\nwith new features without breaking existing Taskfiles. The new syntax is as\nfollows:"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-yaml"},"version: '2'\n\ntasks:\n  echo:\n    cmds:\n      - echo \"Hello, World!\"\n")),(0,l.kt)("p",null,"Version 2 allows you to write global variables directly in the Taskfile,\nif you don't want to create a ",(0,l.kt)("inlineCode",{parentName:"p"},"Taskvars.yml"),":"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-yaml"},"version: '2'\n\nvars:\n  GREETING: Hello, World!\n\ntasks:\n  greet:\n    cmds:\n      - echo \"{{.GREETING}}\"\n")),(0,l.kt)("p",null,"The variable priority order changed to the following:"),(0,l.kt)("ol",null,(0,l.kt)("li",{parentName:"ol"},"Task variables"),(0,l.kt)("li",{parentName:"ol"},"Call variables"),(0,l.kt)("li",{parentName:"ol"},"Taskfile variables"),(0,l.kt)("li",{parentName:"ol"},"Taskvars file variables"),(0,l.kt)("li",{parentName:"ol"},"Environment variables")),(0,l.kt)("p",null,"A new global option was added to configure the number of variables expansions\n(which default to 2):"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-yaml"},'version: \'2\'\n\nexpansions: 3\n\nvars:\n  FOO: foo\n  BAR: bar\n  BAZ: baz\n  FOOBAR: "{{.FOO}}{{.BAR}}"\n  FOOBARBAZ: "{{.FOOBAR}}{{.BAZ}}"\n\ntasks:\n  default:\n    cmds:\n      - echo "{{.FOOBARBAZ}}"\n')),(0,l.kt)("h2",{id:"version-21"},"Version 2.1"),(0,l.kt)("p",null,"Version 2.1 includes a global ",(0,l.kt)("inlineCode",{parentName:"p"},"output")," option, to allow having more control\nover how commands output are printed to the console\n(see ",(0,l.kt)("a",{parentName:"p",href:"/usage/#output-syntax"},"documentation")," for more info):"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-yaml"},"version: '2'\n\noutput: prefixed\n\ntasks:\n  server:\n    cmds:\n      - go run main.go\n  prefix: server\n")),(0,l.kt)("p",null,"From this version it's also possible to ignore errors of a command or task\n(check documentation ",(0,l.kt)("a",{parentName:"p",href:"/usage/#ignore-errors"},"here"),"):"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-yaml"},'version: \'2\'\n\ntasks:\n  example-1:\n    cmds:\n      - cmd: exit 1\n        ignore_error: true\n      - echo "This will be print"\n\n  example-2:\n    cmds:\n      - exit 1\n      - echo "This will be print"\n    ignore_error: true\n')),(0,l.kt)("h2",{id:"version-22"},"Version 2.2"),(0,l.kt)("p",null,"Version 2.2 comes with a global ",(0,l.kt)("inlineCode",{parentName:"p"},"includes")," options to include other\nTaskfiles:"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-yaml"},"version: '2'\n\nincludes:\n  docs: ./documentation # will look for ./documentation/Taskfile.yml\n  docker: ./DockerTasks.yml\n")),(0,l.kt)("h2",{id:"version-26"},"Version 2.6"),(0,l.kt)("p",null,"Version 2.6 comes with ",(0,l.kt)("inlineCode",{parentName:"p"},"preconditions")," stanza in tasks."),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-yaml"},"version: '2'\n\ntasks:\n  upload_environment:\n    preconditions:\n      - test -f .env\n    cmds:\n      - aws s3 cp .env s3://myenvironment\n")),(0,l.kt)("p",null,"Please check the ",(0,l.kt)("a",{parentName:"p",href:"/usage/#including-other-taskfiles"},"documentation")),(0,l.kt)("h2",{id:"version-3"},"Version 3"),(0,l.kt)("p",null,"These are some major changes done on ",(0,l.kt)("inlineCode",{parentName:"p"},"v3"),":"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Task's output will now be colored"),(0,l.kt)("li",{parentName:"ul"},"Added support for ",(0,l.kt)("inlineCode",{parentName:"li"},".env")," like files"),(0,l.kt)("li",{parentName:"ul"},"Added ",(0,l.kt)("inlineCode",{parentName:"li"},"label:")," setting to task so one can override how the task name\nappear in the logs"),(0,l.kt)("li",{parentName:"ul"},"A global ",(0,l.kt)("inlineCode",{parentName:"li"},"method:")," was added to allow setting the default method,\nand Task's default changed to ",(0,l.kt)("inlineCode",{parentName:"li"},"checksum")),(0,l.kt)("li",{parentName:"ul"},"Two magic variables were added when using ",(0,l.kt)("inlineCode",{parentName:"li"},"status:"),": ",(0,l.kt)("inlineCode",{parentName:"li"},"CHECKSUM")," and\n",(0,l.kt)("inlineCode",{parentName:"li"},"TIMESTAMP")," which contains, respectively, the md5 checksum and greatest\nmodification timestamp of the files listed on ",(0,l.kt)("inlineCode",{parentName:"li"},"sources:")),(0,l.kt)("li",{parentName:"ul"},"Also, the ",(0,l.kt)("inlineCode",{parentName:"li"},"TASK")," variable is always available with the current task name"),(0,l.kt)("li",{parentName:"ul"},"CLI variables are always treated as global variables"),(0,l.kt)("li",{parentName:"ul"},"Added ",(0,l.kt)("inlineCode",{parentName:"li"},"dir:")," option to ",(0,l.kt)("inlineCode",{parentName:"li"},"includes")," to allow choosing on which directory an\nincluded Taskfile will run:")),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-yaml"},"includes:\n  docs:\n    taskfile: ./docs\n    dir: ./docs\n")),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Implemented short task syntax. All below syntaxes are equivalent:")),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-yaml"},"version: '3'\n\ntasks:\n  print:\n    cmds:\n      - echo \"Hello, World!\"\n")),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-yaml"},"version: '3'\n\ntasks:\n  print:\n    - echo \"Hello, World!\"\n")),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-yaml"},"version: '3'\n\ntasks:\n  print: echo \"Hello, World!\"\n")),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"There was a major refactor on how variables are handled. They're now easier\nto understand. The ",(0,l.kt)("inlineCode",{parentName:"li"},"expansions:")," setting was removed as it became unncessary.\nThis is the order in which Task will process variables, each level can see\nthe variables set by the previous one and override those.",(0,l.kt)("ul",{parentName:"li"},(0,l.kt)("li",{parentName:"ul"},"Environment variables"),(0,l.kt)("li",{parentName:"ul"},"Global + CLI variables"),(0,l.kt)("li",{parentName:"ul"},"Call variables"),(0,l.kt)("li",{parentName:"ul"},"Task variables")))))}k.isMDXComponent=!0}}]);
\ No newline at end of file
diff --git a/assets/js/1c56b476.1d08191c.js b/assets/js/1c56b476.58966a33.js
similarity index 96%
rename from assets/js/1c56b476.1d08191c.js
rename to assets/js/1c56b476.58966a33.js
index c8e991b9..b39ad67e 100644
--- a/assets/js/1c56b476.1d08191c.js
+++ b/assets/js/1c56b476.58966a33.js
@@ -1 +1 @@
-"use strict";(self.webpackChunktaskfile_dev=self.webpackChunktaskfile_dev||[]).push([[713],{3905:function(e,t,n){n.d(t,{Zo:function(){return p},kt:function(){return d}});var r=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function l(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var c=r.createContext({}),u=function(e){var t=r.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=u(e.components);return r.createElement(c.Provider,{value:t},e.children)},s={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},f=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,c=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),f=u(n),d=o,m=f["".concat(c,".").concat(d)]||f[d]||s[d]||a;return n?r.createElement(m,i(i({ref:t},p),{},{components:n})):r.createElement(m,i({ref:t},p))}));function d(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=f;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l.mdxType="string"==typeof e?e:o,i[1]=l;for(var u=2;u<a;u++)i[u]=n[u];return r.createElement.apply(null,i)}return r.createElement.apply(null,n)}f.displayName="MDXCreateElement"},2577:function(e,t,n){n.r(t),n.d(t,{assets:function(){return p},contentTitle:function(){return c},default:function(){return d},frontMatter:function(){return l},metadata:function(){return u},toc:function(){return s}});var r=n(7462),o=n(3366),a=(n(7294),n(3905)),i=["components"],l={slug:"/donate/",sidebar_position:8},c="Donate",u={unversionedId:"donate",id:"donate",title:"Donate",description:"If you find this project useful, you can consider donating by using one of the",source:"@site/docs/donate.md",sourceDirName:".",slug:"/donate/",permalink:"/donate/",draft:!1,tags:[],version:"current",sidebarPosition:8,frontMatter:{slug:"/donate/",sidebar_position:8},sidebar:"tutorialSidebar",previous:{title:"Taskfile Versions",permalink:"/taskfile-versions/"}},p={},s=[{value:"Open Collective",id:"open-collective",level:2},{value:"PayPal",id:"paypal",level:2},{value:"PIX (Brazil only)",id:"pix-brazil-only",level:2}],f={toc:s};function d(e){var t=e.components,l=(0,o.Z)(e,i);return(0,a.kt)("wrapper",(0,r.Z)({},f,l,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"donate"},"Donate"),(0,a.kt)("p",null,"If you find this project useful, you can consider donating by using one of the\nchannels listed below."),(0,a.kt)("p",null,'This is just a way of saying "thank you", it won\'t give you any benefits like\nhigher priority on issues or something similar.'),(0,a.kt)("h2",{id:"open-collective"},"Open Collective"),(0,a.kt)("p",null,"Task is on ",(0,a.kt)("a",{parentName:"p",href:"https://opencollective.com/task"},"Open Collective")," and you have\nthese options to donate:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://opencollective.com/task/contribute/backer-4034/checkout"},"$2 per month")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://opencollective.com/task/contribute/supporter-8404/checkout"},"$5 per month")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://opencollective.com/task/contribute/sponsor-4035/checkout"},"$20 per month")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://opencollective.com/task/contribute/sponsor-28775/checkout"},"$50 per month")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://opencollective.com/task/donate"},"Custom value - One-time donation option supported"))),(0,a.kt)("h2",{id:"paypal"},"PayPal"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=GSVDU63RKG45A&currency_code=USD&source=url"},"Any value - One-time donation"))),(0,a.kt)("h2",{id:"pix-brazil-only"},"PIX (Brazil only)"),(0,a.kt)("p",null,"If you're Brazilian, you can donate any value by\n",(0,a.kt)("a",{target:"_blank",href:n(3874).Z},"using this QR Code"),"."))}d.isMDXComponent=!0},3874:function(e,t,n){t.Z=n.p+"assets/files/pix-a244c9047807d622a0e1b54930f30234.png"}}]);
\ No newline at end of file
+"use strict";(self.webpackChunktaskfile_dev=self.webpackChunktaskfile_dev||[]).push([[713],{3905:function(e,t,n){n.d(t,{Zo:function(){return p},kt:function(){return d}});var r=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function l(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var c=r.createContext({}),u=function(e){var t=r.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=u(e.components);return r.createElement(c.Provider,{value:t},e.children)},s={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},f=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,c=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),f=u(n),d=o,m=f["".concat(c,".").concat(d)]||f[d]||s[d]||a;return n?r.createElement(m,i(i({ref:t},p),{},{components:n})):r.createElement(m,i({ref:t},p))}));function d(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=f;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l.mdxType="string"==typeof e?e:o,i[1]=l;for(var u=2;u<a;u++)i[u]=n[u];return r.createElement.apply(null,i)}return r.createElement.apply(null,n)}f.displayName="MDXCreateElement"},2577:function(e,t,n){n.r(t),n.d(t,{assets:function(){return p},contentTitle:function(){return c},default:function(){return d},frontMatter:function(){return l},metadata:function(){return u},toc:function(){return s}});var r=n(7462),o=n(3366),a=(n(7294),n(3905)),i=["components"],l={slug:"/donate/",sidebar_position:9},c="Donate",u={unversionedId:"donate",id:"donate",title:"Donate",description:"If you find this project useful, you can consider donating by using one of the",source:"@site/docs/donate.md",sourceDirName:".",slug:"/donate/",permalink:"/donate/",draft:!1,tags:[],version:"current",sidebarPosition:9,frontMatter:{slug:"/donate/",sidebar_position:9},sidebar:"tutorialSidebar",previous:{title:"Taskfile Versions",permalink:"/taskfile-versions/"}},p={},s=[{value:"Open Collective",id:"open-collective",level:2},{value:"PayPal",id:"paypal",level:2},{value:"PIX (Brazil only)",id:"pix-brazil-only",level:2}],f={toc:s};function d(e){var t=e.components,l=(0,o.Z)(e,i);return(0,a.kt)("wrapper",(0,r.Z)({},f,l,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"donate"},"Donate"),(0,a.kt)("p",null,"If you find this project useful, you can consider donating by using one of the\nchannels listed below."),(0,a.kt)("p",null,'This is just a way of saying "thank you", it won\'t give you any benefits like\nhigher priority on issues or something similar.'),(0,a.kt)("h2",{id:"open-collective"},"Open Collective"),(0,a.kt)("p",null,"Task is on ",(0,a.kt)("a",{parentName:"p",href:"https://opencollective.com/task"},"Open Collective")," and you have\nthese options to donate:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://opencollective.com/task/contribute/backer-4034/checkout"},"$2 per month")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://opencollective.com/task/contribute/supporter-8404/checkout"},"$5 per month")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://opencollective.com/task/contribute/sponsor-4035/checkout"},"$20 per month")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://opencollective.com/task/contribute/sponsor-28775/checkout"},"$50 per month")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://opencollective.com/task/donate"},"Custom value - One-time donation option supported"))),(0,a.kt)("h2",{id:"paypal"},"PayPal"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=GSVDU63RKG45A&currency_code=USD&source=url"},"Any value - One-time donation"))),(0,a.kt)("h2",{id:"pix-brazil-only"},"PIX (Brazil only)"),(0,a.kt)("p",null,"If you're Brazilian, you can donate any value by\n",(0,a.kt)("a",{target:"_blank",href:n(3874).Z},"using this QR Code"),"."))}d.isMDXComponent=!0},3874:function(e,t,n){t.Z=n.p+"assets/files/pix-a244c9047807d622a0e1b54930f30234.png"}}]);
\ No newline at end of file
diff --git a/assets/js/3c140c84.58503430.js b/assets/js/3c140c84.58503430.js
deleted file mode 100644
index 0e13e609..00000000
--- a/assets/js/3c140c84.58503430.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunktaskfile_dev=self.webpackChunktaskfile_dev||[]).push([[648],{3905:function(e,n,t){t.d(n,{Zo:function(){return d},kt:function(){return m}});var a=t(7294);function s(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function r(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}return t}function o(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?r(Object(t),!0).forEach((function(n){s(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):r(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function i(e,n){if(null==e)return{};var t,a,s=function(e,n){if(null==e)return{};var t,a,s={},r=Object.keys(e);for(a=0;a<r.length;a++)t=r[a],n.indexOf(t)>=0||(s[t]=e[t]);return s}(e,n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a<r.length;a++)t=r[a],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(s[t]=e[t])}return s}var l=a.createContext({}),c=function(e){var n=a.useContext(l),t=n;return e&&(t="function"==typeof e?e(n):o(o({},n),e)),t},d=function(e){var n=c(e.components);return a.createElement(l.Provider,{value:n},e.children)},u={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},p=a.forwardRef((function(e,n){var t=e.components,s=e.mdxType,r=e.originalType,l=e.parentName,d=i(e,["components","mdxType","originalType","parentName"]),p=c(t),m=s,k=p["".concat(l,".").concat(m)]||p[m]||u[m]||r;return t?a.createElement(k,o(o({ref:n},d),{},{components:t})):a.createElement(k,o({ref:n},d))}));function m(e,n){var t=arguments,s=n&&n.mdxType;if("string"==typeof e||s){var r=t.length,o=new Array(r);o[0]=p;var i={};for(var l in n)hasOwnProperty.call(n,l)&&(i[l]=n[l]);i.originalType=e,i.mdxType="string"==typeof e?e:s,o[1]=i;for(var c=2;c<r;c++)o[c]=t[c];return a.createElement.apply(null,o)}return a.createElement.apply(null,t)}p.displayName="MDXCreateElement"},3501:function(e,n,t){t.r(n),t.d(n,{assets:function(){return d},contentTitle:function(){return l},default:function(){return m},frontMatter:function(){return i},metadata:function(){return c},toc:function(){return u}});var a=t(7462),s=t(3366),r=(t(7294),t(3905)),o=["components"],i={slug:"/styleguide/",sidebar_position:4},l="Styleguide",c={unversionedId:"styleguide",id:"styleguide",title:"Styleguide",description:"This is the official Task styleguide for Taskfile.yml files. This guide",source:"@site/docs/styleguide.md",sourceDirName:".",slug:"/styleguide/",permalink:"/styleguide/",draft:!1,tags:[],version:"current",sidebarPosition:4,frontMatter:{slug:"/styleguide/",sidebar_position:4},sidebar:"tutorialSidebar",previous:{title:"Usage",permalink:"/usage/"},next:{title:"Community",permalink:"/community/"}},d={},u=[{value:"Use <code>Taskfile.yml</code> and not <code>taskfile.yml</code>",id:"use-taskfileyml-and-not-taskfileyml",level:2},{value:"Use the correct order of keywords",id:"use-the-correct-order-of-keywords",level:2},{value:"Use 2 spaces for indentation",id:"use-2-spaces-for-indentation",level:2},{value:"Separate with spaces the mains sections",id:"separate-with-spaces-the-mains-sections",level:2},{value:"Add spaces between tasks",id:"add-spaces-between-tasks",level:2},{value:"Use upper-case variable names",id:"use-upper-case-variable-names",level:2},{value:"Don&#39;t wrap vars in spaces when templating",id:"dont-wrap-vars-in-spaces-when-templating",level:2},{value:"Separate task name words with a dash",id:"separate-task-name-words-with-a-dash",level:2},{value:"Use colon for task namespacing",id:"use-colon-for-task-namespacing",level:2}],p={toc:u};function m(e){var n=e.components,t=(0,s.Z)(e,o);return(0,r.kt)("wrapper",(0,a.Z)({},p,t,{components:n,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"styleguide"},"Styleguide"),(0,r.kt)("p",null,"This is the official Task styleguide for ",(0,r.kt)("inlineCode",{parentName:"p"},"Taskfile.yml")," files. This guide\ncontains some basic instructions to keep your Taskfile clean and familiar to\nother users."),(0,r.kt)("p",null,"This contains general guidelines, but they don't necessarily need to be strictly\nfollowed. Feel free to disagree and proceed differently at some point if you\nneed or want to. Also, feel free to open issues or pull requests with\nimprovements to this guide."),(0,r.kt)("h2",{id:"use-taskfileyml-and-not-taskfileyml"},"Use ",(0,r.kt)("inlineCode",{parentName:"h2"},"Taskfile.yml")," and not ",(0,r.kt)("inlineCode",{parentName:"h2"},"taskfile.yml")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-yaml"},"# bad\ntaskfile.yml\n\n\n# good\nTaskfile.yml\n")),(0,r.kt)("p",null,"This is important especially for Linux users. Windows and macOS have case\ninsensitive filesystems, so ",(0,r.kt)("inlineCode",{parentName:"p"},"taskfile.yml")," will end up working, even that not\nofficially supported. On Linux, only ",(0,r.kt)("inlineCode",{parentName:"p"},"Taskfile.yml")," will work, though."),(0,r.kt)("h2",{id:"use-the-correct-order-of-keywords"},"Use the correct order of keywords"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"version:")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"includes:")),(0,r.kt)("li",{parentName:"ul"},"Configuration ones, like ",(0,r.kt)("inlineCode",{parentName:"li"},"output:")," or ",(0,r.kt)("inlineCode",{parentName:"li"},"silent:")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"vars:")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"env:")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"tasks:"))),(0,r.kt)("h2",{id:"use-2-spaces-for-indentation"},"Use 2 spaces for indentation"),(0,r.kt)("p",null,"This is the most common convention for YAML files, and Task follows it."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-yaml"},"# bad\ntasks:\n    foo:\n        cmds:\n            - echo 'foo'\n\n\n# good\ntasks:\n  foo:\n    cmds:\n      - echo 'foo'\n")),(0,r.kt)("h2",{id:"separate-with-spaces-the-mains-sections"},"Separate with spaces the mains sections"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-yaml"},"# bad\nversion: '3'\nincludes:\n  docker: ./docker/Taskfile.yml\noutput: prefixed\nvars:\n  FOO: bar\nenv:\n  BAR: baz\ntasks:\n  # ...\n\n\n# good\nversion: '3'\n\nincludes:\n  docker: ./docker/Taskfile.yml\n\noutput: prefixed\n\nvars:\n  FOO: bar\n\nenv:\n  BAR: baz\n\ntasks:\n  # ...\n")),(0,r.kt)("h2",{id:"add-spaces-between-tasks"},"Add spaces between tasks"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-yaml"},"# bad\nversion: '3'\n\ntasks:\n  foo:\n    cmds:\n      - echo 'foo'\n  bar:\n    cmds:\n      - echo 'bar'\n  baz:\n    cmds:\n      - echo 'baz'\n\n\n# good\nversion: '3'\n\ntasks:\n  foo:\n    cmds:\n      - echo 'foo'\n\n  bar:\n    cmds:\n      - echo 'bar'\n\n  baz:\n    cmds:\n      - echo 'baz'\n")),(0,r.kt)("h2",{id:"use-upper-case-variable-names"},"Use upper-case variable names"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-yaml"},"# bad\nversion: '3'\n\nvars:\n  binary_name: myapp\n\ntasks:\n  build:\n    cmds:\n      - go build -o {{.binary_name}} .\n\n\n# good\nversion: '3'\n\nvars:\n  BINARY_NAME: myapp\n\ntasks:\n  build:\n    cmds:\n      - go build -o {{.BINARY_NAME}} .\n")),(0,r.kt)("h2",{id:"dont-wrap-vars-in-spaces-when-templating"},"Don't wrap vars in spaces when templating"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-yaml"},"# bad\nversion: '3'\n\ntasks:\n  greet:\n    cmds:\n      - echo '{{ .MESSAGE }}'\n\n\n# good\nversion: '3'\n\ntasks:\n  greet:\n    cmds:\n      - echo '{{.MESSAGE}}'\n")),(0,r.kt)("p",null,"This convention is also used by most people for any Go templating."),(0,r.kt)("h2",{id:"separate-task-name-words-with-a-dash"},"Separate task name words with a dash"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-yaml"},"# bad\nversion: '3'\n\ntasks:\n  do_something_fancy:\n    cmds:\n      - echo 'Do something'\n\n\n# good\nversion: '3'\n\ntasks:\n  do-something-fancy:\n    cmds:\n      - echo 'Do something'\n")),(0,r.kt)("h2",{id:"use-colon-for-task-namespacing"},"Use colon for task namespacing"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-yaml"},"# good\nversion: '3'\n\ntasks:\n  docker:build:\n    cmds:\n      - docker ...\n\n  docker:run:\n    cmds:\n      - docker-compose ...\n")),(0,r.kt)("p",null,"This is also done automatically when using included Taskfiles."))}m.isMDXComponent=!0}}]);
\ No newline at end of file
diff --git a/assets/js/3c140c84.c2d43167.js b/assets/js/3c140c84.c2d43167.js
new file mode 100644
index 00000000..2cd04151
--- /dev/null
+++ b/assets/js/3c140c84.c2d43167.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunktaskfile_dev=self.webpackChunktaskfile_dev||[]).push([[648],{3905:function(e,n,t){t.d(n,{Zo:function(){return d},kt:function(){return m}});var a=t(7294);function s(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function r(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}return t}function o(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?r(Object(t),!0).forEach((function(n){s(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):r(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function i(e,n){if(null==e)return{};var t,a,s=function(e,n){if(null==e)return{};var t,a,s={},r=Object.keys(e);for(a=0;a<r.length;a++)t=r[a],n.indexOf(t)>=0||(s[t]=e[t]);return s}(e,n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a<r.length;a++)t=r[a],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(s[t]=e[t])}return s}var l=a.createContext({}),c=function(e){var n=a.useContext(l),t=n;return e&&(t="function"==typeof e?e(n):o(o({},n),e)),t},d=function(e){var n=c(e.components);return a.createElement(l.Provider,{value:n},e.children)},p={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},u=a.forwardRef((function(e,n){var t=e.components,s=e.mdxType,r=e.originalType,l=e.parentName,d=i(e,["components","mdxType","originalType","parentName"]),u=c(t),m=s,k=u["".concat(l,".").concat(m)]||u[m]||p[m]||r;return t?a.createElement(k,o(o({ref:n},d),{},{components:t})):a.createElement(k,o({ref:n},d))}));function m(e,n){var t=arguments,s=n&&n.mdxType;if("string"==typeof e||s){var r=t.length,o=new Array(r);o[0]=u;var i={};for(var l in n)hasOwnProperty.call(n,l)&&(i[l]=n[l]);i.originalType=e,i.mdxType="string"==typeof e?e:s,o[1]=i;for(var c=2;c<r;c++)o[c]=t[c];return a.createElement.apply(null,o)}return a.createElement.apply(null,t)}u.displayName="MDXCreateElement"},3501:function(e,n,t){t.r(n),t.d(n,{assets:function(){return d},contentTitle:function(){return l},default:function(){return m},frontMatter:function(){return i},metadata:function(){return c},toc:function(){return p}});var a=t(7462),s=t(3366),r=(t(7294),t(3905)),o=["components"],i={slug:"/styleguide/",sidebar_position:5},l="Styleguide",c={unversionedId:"styleguide",id:"styleguide",title:"Styleguide",description:"This is the official Task styleguide for Taskfile.yml files. This guide",source:"@site/docs/styleguide.md",sourceDirName:".",slug:"/styleguide/",permalink:"/styleguide/",draft:!1,tags:[],version:"current",sidebarPosition:5,frontMatter:{slug:"/styleguide/",sidebar_position:5},sidebar:"tutorialSidebar",previous:{title:"API Reference",permalink:"/api/"},next:{title:"Changelog",permalink:"/changelog/"}},d={},p=[{value:"Use <code>Taskfile.yml</code> and not <code>taskfile.yml</code>",id:"use-taskfileyml-and-not-taskfileyml",level:2},{value:"Use the correct order of keywords",id:"use-the-correct-order-of-keywords",level:2},{value:"Use 2 spaces for indentation",id:"use-2-spaces-for-indentation",level:2},{value:"Separate with spaces the mains sections",id:"separate-with-spaces-the-mains-sections",level:2},{value:"Add spaces between tasks",id:"add-spaces-between-tasks",level:2},{value:"Use upper-case variable names",id:"use-upper-case-variable-names",level:2},{value:"Don&#39;t wrap vars in spaces when templating",id:"dont-wrap-vars-in-spaces-when-templating",level:2},{value:"Separate task name words with a dash",id:"separate-task-name-words-with-a-dash",level:2},{value:"Use colon for task namespacing",id:"use-colon-for-task-namespacing",level:2}],u={toc:p};function m(e){var n=e.components,t=(0,s.Z)(e,o);return(0,r.kt)("wrapper",(0,a.Z)({},u,t,{components:n,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"styleguide"},"Styleguide"),(0,r.kt)("p",null,"This is the official Task styleguide for ",(0,r.kt)("inlineCode",{parentName:"p"},"Taskfile.yml")," files. This guide\ncontains some basic instructions to keep your Taskfile clean and familiar to\nother users."),(0,r.kt)("p",null,"This contains general guidelines, but they don't necessarily need to be strictly\nfollowed. Feel free to disagree and proceed differently at some point if you\nneed or want to. Also, feel free to open issues or pull requests with\nimprovements to this guide."),(0,r.kt)("h2",{id:"use-taskfileyml-and-not-taskfileyml"},"Use ",(0,r.kt)("inlineCode",{parentName:"h2"},"Taskfile.yml")," and not ",(0,r.kt)("inlineCode",{parentName:"h2"},"taskfile.yml")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-yaml"},"# bad\ntaskfile.yml\n\n\n# good\nTaskfile.yml\n")),(0,r.kt)("p",null,"This is important especially for Linux users. Windows and macOS have case\ninsensitive filesystems, so ",(0,r.kt)("inlineCode",{parentName:"p"},"taskfile.yml")," will end up working, even that not\nofficially supported. On Linux, only ",(0,r.kt)("inlineCode",{parentName:"p"},"Taskfile.yml")," will work, though."),(0,r.kt)("h2",{id:"use-the-correct-order-of-keywords"},"Use the correct order of keywords"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"version:")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"includes:")),(0,r.kt)("li",{parentName:"ul"},"Configuration ones, like ",(0,r.kt)("inlineCode",{parentName:"li"},"output:"),", ",(0,r.kt)("inlineCode",{parentName:"li"},"silent:"),", ",(0,r.kt)("inlineCode",{parentName:"li"},"method:")," and ",(0,r.kt)("inlineCode",{parentName:"li"},"run:")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"vars:")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"env:"),", ",(0,r.kt)("inlineCode",{parentName:"li"},"dotenv:")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"tasks:"))),(0,r.kt)("h2",{id:"use-2-spaces-for-indentation"},"Use 2 spaces for indentation"),(0,r.kt)("p",null,"This is the most common convention for YAML files, and Task follows it."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-yaml"},"# bad\ntasks:\n    foo:\n        cmds:\n            - echo 'foo'\n\n\n# good\ntasks:\n  foo:\n    cmds:\n      - echo 'foo'\n")),(0,r.kt)("h2",{id:"separate-with-spaces-the-mains-sections"},"Separate with spaces the mains sections"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-yaml"},"# bad\nversion: '3'\nincludes:\n  docker: ./docker/Taskfile.yml\noutput: prefixed\nvars:\n  FOO: bar\nenv:\n  BAR: baz\ntasks:\n  # ...\n\n\n# good\nversion: '3'\n\nincludes:\n  docker: ./docker/Taskfile.yml\n\noutput: prefixed\n\nvars:\n  FOO: bar\n\nenv:\n  BAR: baz\n\ntasks:\n  # ...\n")),(0,r.kt)("h2",{id:"add-spaces-between-tasks"},"Add spaces between tasks"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-yaml"},"# bad\nversion: '3'\n\ntasks:\n  foo:\n    cmds:\n      - echo 'foo'\n  bar:\n    cmds:\n      - echo 'bar'\n  baz:\n    cmds:\n      - echo 'baz'\n\n\n# good\nversion: '3'\n\ntasks:\n  foo:\n    cmds:\n      - echo 'foo'\n\n  bar:\n    cmds:\n      - echo 'bar'\n\n  baz:\n    cmds:\n      - echo 'baz'\n")),(0,r.kt)("h2",{id:"use-upper-case-variable-names"},"Use upper-case variable names"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-yaml"},"# bad\nversion: '3'\n\nvars:\n  binary_name: myapp\n\ntasks:\n  build:\n    cmds:\n      - go build -o {{.binary_name}} .\n\n\n# good\nversion: '3'\n\nvars:\n  BINARY_NAME: myapp\n\ntasks:\n  build:\n    cmds:\n      - go build -o {{.BINARY_NAME}} .\n")),(0,r.kt)("h2",{id:"dont-wrap-vars-in-spaces-when-templating"},"Don't wrap vars in spaces when templating"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-yaml"},"# bad\nversion: '3'\n\ntasks:\n  greet:\n    cmds:\n      - echo '{{ .MESSAGE }}'\n\n\n# good\nversion: '3'\n\ntasks:\n  greet:\n    cmds:\n      - echo '{{.MESSAGE}}'\n")),(0,r.kt)("p",null,"This convention is also used by most people for any Go templating."),(0,r.kt)("h2",{id:"separate-task-name-words-with-a-dash"},"Separate task name words with a dash"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-yaml"},"# bad\nversion: '3'\n\ntasks:\n  do_something_fancy:\n    cmds:\n      - echo 'Do something'\n\n\n# good\nversion: '3'\n\ntasks:\n  do-something-fancy:\n    cmds:\n      - echo 'Do something'\n")),(0,r.kt)("h2",{id:"use-colon-for-task-namespacing"},"Use colon for task namespacing"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-yaml"},"# good\nversion: '3'\n\ntasks:\n  docker:build:\n    cmds:\n      - docker ...\n\n  docker:run:\n    cmds:\n      - docker-compose ...\n")),(0,r.kt)("p",null,"This is also done automatically when using included Taskfiles."))}m.isMDXComponent=!0}}]);
\ No newline at end of file
diff --git a/assets/js/5ef0e9d6.362b8bbb.js b/assets/js/5ef0e9d6.362b8bbb.js
deleted file mode 100644
index fa99ec64..00000000
--- a/assets/js/5ef0e9d6.362b8bbb.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunktaskfile_dev=self.webpackChunktaskfile_dev||[]).push([[880],{3905:function(e,t,n){n.d(t,{Zo:function(){return p},kt:function(){return h}});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,a,r=function(e,t){if(null==e)return{};var n,a,r={},i=Object.keys(e);for(a=0;a<i.length;a++)n=i[a],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a<i.length;a++)n=i[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var l=a.createContext({}),u=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},p=function(e){var t=u(e.components);return a.createElement(l.Provider,{value:t},e.children)},c={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,i=e.originalType,l=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),m=u(n),h=r,d=m["".concat(l,".").concat(h)]||m[h]||c[h]||i;return n?a.createElement(d,o(o({ref:t},p),{},{components:n})):a.createElement(d,o({ref:t},p))}));function h(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=n.length,o=new Array(i);o[0]=m;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s.mdxType="string"==typeof e?e:r,o[1]=s;for(var u=2;u<i;u++)o[u]=n[u];return a.createElement.apply(null,o)}return a.createElement.apply(null,n)}m.displayName="MDXCreateElement"},5330:function(e,t,n){n.r(t),n.d(t,{assets:function(){return p},contentTitle:function(){return l},default:function(){return h},frontMatter:function(){return s},metadata:function(){return u},toc:function(){return c}});var a=n(7462),r=n(3366),i=(n(7294),n(3905)),o=["components"],s={slug:"/community/",sidebar_position:5},l="Community",u={unversionedId:"community",id:"community",title:"Community",description:"Some of the work to improve the Task ecosystem is done by the community, be",source:"@site/docs/community.md",sourceDirName:".",slug:"/community/",permalink:"/community/",draft:!1,tags:[],version:"current",sidebarPosition:5,frontMatter:{slug:"/community/",sidebar_position:5},sidebar:"tutorialSidebar",previous:{title:"Styleguide",permalink:"/styleguide/"},next:{title:"Changelog",permalink:"/changelog/"}},p={},c=[{value:"Editor Integrations",id:"editor-integrations",level:2},{value:"JSON Schema",id:"json-schema",level:3},{value:"Visual Studio Code extension",id:"visual-studio-code-extension",level:3},{value:"Sublime Text 4 package",id:"sublime-text-4-package",level:3},{value:"IntelliJ plugin",id:"intellij-plugin",level:3},{value:"Installation methods",id:"installation-methods",level:2},{value:"More",id:"more",level:2}],m={toc:c};function h(e){var t=e.components,n=(0,r.Z)(e,o);return(0,i.kt)("wrapper",(0,a.Z)({},m,n,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"community"},"Community"),(0,i.kt)("p",null,"Some of the work to improve the Task ecosystem is done by the community, be\nit installation methods or integrations with code editor. I (the author) am\nthankful for everyone that helps me to improve the overall experience."),(0,i.kt)("h2",{id:"editor-integrations"},"Editor Integrations"),(0,i.kt)("h3",{id:"json-schema"},"JSON Schema"),(0,i.kt)("p",null,(0,i.kt)("a",{parentName:"p",href:"https://github.com/KROSF"},"@KROSF")," worked on a JSON Schema ",(0,i.kt)("a",{parentName:"p",href:"https://gist.github.com/KROSF/c5435acf590acd632f71bb720f685895"},"into this Gist"),",\nwhich later was made officially available by ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/Crandel"},"@Crandel"),"\nat ",(0,i.kt)("a",{parentName:"p",href:"https://json.schemastore.org/taskfile.json"},"https://json.schemastore.org/taskfile.json"),".\nFurther improvements are possible by opening pull requests changing\n",(0,i.kt)("a",{parentName:"p",href:"https://github.com/SchemaStore/schemastore/blob/master/src/schemas/json/taskfile.json"},"this file"),".\nSome code editors, like Visual Studio Code, make use of Schema Store\nautomatically."),(0,i.kt)("h3",{id:"visual-studio-code-extension"},"Visual Studio Code extension"),(0,i.kt)("p",null,"Additionally, there's also some work done by\n",(0,i.kt)("a",{parentName:"p",href:"https://github.com/paulvarache"},"@paulvarache")," in making an Visual Studio Code\nextension, which has its code ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/paulvarache/vscode-taskfile"},"here"),"\nand is published ",(0,i.kt)("a",{parentName:"p",href:"https://marketplace.visualstudio.com/items?itemName=paulvarache.vscode-taskfile"},"here"),"."),(0,i.kt)("h3",{id:"sublime-text-4-package"},"Sublime Text 4 package"),(0,i.kt)("p",null,"There is a convenience wrapper for initializing and running tasks from Sublime Text's command palette. The package is\ndeveloped by ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/biozz"},"@biozz"),", the source code is available ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/biozz/sublime-taskfile"},"here"),"\nand it is published on Package Control ",(0,i.kt)("a",{parentName:"p",href:"https://packagecontrol.io/packages/Taskfile"},"here"),"."),(0,i.kt)("h3",{id:"intellij-plugin"},"IntelliJ plugin"),(0,i.kt)("p",null,"There's a JetBrains IntelliJ plugin done by\n",(0,i.kt)("a",{parentName:"p",href:"https://github.com/lechuckroh"},"@lechuckroh"),", which has its code ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/lechuckroh/task-intellij-plugin"},"here"),"\nand is published ",(0,i.kt)("a",{parentName:"p",href:"https://plugins.jetbrains.com/plugin/17058-taskfile"},"here"),"."),(0,i.kt)("h2",{id:"installation-methods"},"Installation methods"),(0,i.kt)("p",null,"Some installation methods are maintained by third party:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/arduino/setup-task"},"GitHub Actions"),"\nby ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/arduino"},"@arduino")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://aur.archlinux.org/packages/taskfile-git"},"AUR"),"\nby ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/kovetskiy"},"@kovetskiy")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/lukesampson/scoop-extras/blob/master/bucket/task.json"},"Scoop"))),(0,i.kt)("h2",{id:"more"},"More"),(0,i.kt)("p",null,"Also, thanks for all the ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/go-task/task/graphs/contributors"},"code contributors"),",\n",(0,i.kt)("a",{parentName:"p",href:"https://opencollective.com/task"},"financial contributors"),", all those who\n",(0,i.kt)("a",{parentName:"p",href:"https://github.com/go-task/task/issues?q=is%3Aissue"},"reported bugs")," and\n",(0,i.kt)("a",{parentName:"p",href:"https://github.com/go-task/task/discussions"},"answered questions"),"."),(0,i.kt)("p",null,"If you know something that is missing in this document, please submit a\npull request."))}h.isMDXComponent=!0}}]);
\ No newline at end of file
diff --git a/assets/js/5ef0e9d6.e861607f.js b/assets/js/5ef0e9d6.e861607f.js
new file mode 100644
index 00000000..d55d283b
--- /dev/null
+++ b/assets/js/5ef0e9d6.e861607f.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunktaskfile_dev=self.webpackChunktaskfile_dev||[]).push([[880],{3905:function(e,t,n){n.d(t,{Zo:function(){return p},kt:function(){return h}});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,a,r=function(e,t){if(null==e)return{};var n,a,r={},i=Object.keys(e);for(a=0;a<i.length;a++)n=i[a],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a<i.length;a++)n=i[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var l=a.createContext({}),u=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},p=function(e){var t=u(e.components);return a.createElement(l.Provider,{value:t},e.children)},c={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,i=e.originalType,l=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),m=u(n),h=r,d=m["".concat(l,".").concat(h)]||m[h]||c[h]||i;return n?a.createElement(d,o(o({ref:t},p),{},{components:n})):a.createElement(d,o({ref:t},p))}));function h(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=n.length,o=new Array(i);o[0]=m;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s.mdxType="string"==typeof e?e:r,o[1]=s;for(var u=2;u<i;u++)o[u]=n[u];return a.createElement.apply(null,o)}return a.createElement.apply(null,n)}m.displayName="MDXCreateElement"},5330:function(e,t,n){n.r(t),n.d(t,{assets:function(){return p},contentTitle:function(){return l},default:function(){return h},frontMatter:function(){return s},metadata:function(){return u},toc:function(){return c}});var a=n(7462),r=n(3366),i=(n(7294),n(3905)),o=["components"],s={slug:"/community/",sidebar_position:6},l="Community",u={unversionedId:"community",id:"community",title:"Community",description:"Some of the work to improve the Task ecosystem is done by the community, be",source:"@site/docs/community.md",sourceDirName:".",slug:"/community/",permalink:"/community/",draft:!1,tags:[],version:"current",sidebarPosition:6,frontMatter:{slug:"/community/",sidebar_position:6},sidebar:"tutorialSidebar",previous:{title:"Changelog",permalink:"/changelog/"},next:{title:"Releasing",permalink:"/releasing/"}},p={},c=[{value:"Editor Integrations",id:"editor-integrations",level:2},{value:"JSON Schema",id:"json-schema",level:3},{value:"Visual Studio Code extension",id:"visual-studio-code-extension",level:3},{value:"Sublime Text 4 package",id:"sublime-text-4-package",level:3},{value:"IntelliJ plugin",id:"intellij-plugin",level:3},{value:"Installation methods",id:"installation-methods",level:2},{value:"More",id:"more",level:2}],m={toc:c};function h(e){var t=e.components,n=(0,r.Z)(e,o);return(0,i.kt)("wrapper",(0,a.Z)({},m,n,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"community"},"Community"),(0,i.kt)("p",null,"Some of the work to improve the Task ecosystem is done by the community, be\nit installation methods or integrations with code editor. I (the author) am\nthankful for everyone that helps me to improve the overall experience."),(0,i.kt)("h2",{id:"editor-integrations"},"Editor Integrations"),(0,i.kt)("h3",{id:"json-schema"},"JSON Schema"),(0,i.kt)("p",null,(0,i.kt)("a",{parentName:"p",href:"https://github.com/KROSF"},"@KROSF")," worked on a JSON Schema ",(0,i.kt)("a",{parentName:"p",href:"https://gist.github.com/KROSF/c5435acf590acd632f71bb720f685895"},"into this Gist"),",\nwhich later was made officially available by ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/Crandel"},"@Crandel"),"\nat ",(0,i.kt)("a",{parentName:"p",href:"https://json.schemastore.org/taskfile.json"},"https://json.schemastore.org/taskfile.json"),".\nFurther improvements are possible by opening pull requests changing\n",(0,i.kt)("a",{parentName:"p",href:"https://github.com/SchemaStore/schemastore/blob/master/src/schemas/json/taskfile.json"},"this file"),".\nSome code editors, like Visual Studio Code, make use of Schema Store\nautomatically."),(0,i.kt)("h3",{id:"visual-studio-code-extension"},"Visual Studio Code extension"),(0,i.kt)("p",null,"Additionally, there's also some work done by\n",(0,i.kt)("a",{parentName:"p",href:"https://github.com/paulvarache"},"@paulvarache")," in making an Visual Studio Code\nextension, which has its code ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/paulvarache/vscode-taskfile"},"here"),"\nand is published ",(0,i.kt)("a",{parentName:"p",href:"https://marketplace.visualstudio.com/items?itemName=paulvarache.vscode-taskfile"},"here"),"."),(0,i.kt)("h3",{id:"sublime-text-4-package"},"Sublime Text 4 package"),(0,i.kt)("p",null,"There is a convenience wrapper for initializing and running tasks from Sublime Text's command palette. The package is\ndeveloped by ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/biozz"},"@biozz"),", the source code is available ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/biozz/sublime-taskfile"},"here"),"\nand it is published on Package Control ",(0,i.kt)("a",{parentName:"p",href:"https://packagecontrol.io/packages/Taskfile"},"here"),"."),(0,i.kt)("h3",{id:"intellij-plugin"},"IntelliJ plugin"),(0,i.kt)("p",null,"There's a JetBrains IntelliJ plugin done by\n",(0,i.kt)("a",{parentName:"p",href:"https://github.com/lechuckroh"},"@lechuckroh"),", which has its code ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/lechuckroh/task-intellij-plugin"},"here"),"\nand is published ",(0,i.kt)("a",{parentName:"p",href:"https://plugins.jetbrains.com/plugin/17058-taskfile"},"here"),"."),(0,i.kt)("h2",{id:"installation-methods"},"Installation methods"),(0,i.kt)("p",null,"Some installation methods are maintained by third party:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/arduino/setup-task"},"GitHub Actions"),"\nby ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/arduino"},"@arduino")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://aur.archlinux.org/packages/taskfile-git"},"AUR"),"\nby ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/kovetskiy"},"@kovetskiy")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/lukesampson/scoop-extras/blob/master/bucket/task.json"},"Scoop"))),(0,i.kt)("h2",{id:"more"},"More"),(0,i.kt)("p",null,"Also, thanks for all the ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/go-task/task/graphs/contributors"},"code contributors"),",\n",(0,i.kt)("a",{parentName:"p",href:"https://opencollective.com/task"},"financial contributors"),", all those who\n",(0,i.kt)("a",{parentName:"p",href:"https://github.com/go-task/task/issues?q=is%3Aissue"},"reported bugs")," and\n",(0,i.kt)("a",{parentName:"p",href:"https://github.com/go-task/task/discussions"},"answered questions"),"."),(0,i.kt)("p",null,"If you know something that is missing in this document, please submit a\npull request."))}h.isMDXComponent=!0}}]);
\ No newline at end of file
diff --git a/assets/js/6476eba6.10c0779c.js b/assets/js/6476eba6.10c0779c.js
deleted file mode 100644
index 2eb57e0b..00000000
--- a/assets/js/6476eba6.10c0779c.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunktaskfile_dev=self.webpackChunktaskfile_dev||[]).push([[827],{3905:function(e,n,t){t.d(n,{Zo:function(){return d},kt:function(){return u}});var a=t(7294);function i(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function s(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}return t}function l(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?s(Object(t),!0).forEach((function(n){i(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):s(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function o(e,n){if(null==e)return{};var t,a,i=function(e,n){if(null==e)return{};var t,a,i={},s=Object.keys(e);for(a=0;a<s.length;a++)t=s[a],n.indexOf(t)>=0||(i[t]=e[t]);return i}(e,n);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(a=0;a<s.length;a++)t=s[a],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}var r=a.createContext({}),p=function(e){var n=a.useContext(r),t=n;return e&&(t="function"==typeof e?e(n):l(l({},n),e)),t},d=function(e){var n=p(e.components);return a.createElement(r.Provider,{value:n},e.children)},m={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},c=a.forwardRef((function(e,n){var t=e.components,i=e.mdxType,s=e.originalType,r=e.parentName,d=o(e,["components","mdxType","originalType","parentName"]),c=p(t),u=i,k=c["".concat(r,".").concat(u)]||c[u]||m[u]||s;return t?a.createElement(k,l(l({ref:n},d),{},{components:t})):a.createElement(k,l({ref:n},d))}));function u(e,n){var t=arguments,i=n&&n.mdxType;if("string"==typeof e||i){var s=t.length,l=new Array(s);l[0]=c;var o={};for(var r in n)hasOwnProperty.call(n,r)&&(o[r]=n[r]);o.originalType=e,o.mdxType="string"==typeof e?e:i,l[1]=o;for(var p=2;p<s;p++)l[p]=t[p];return a.createElement.apply(null,l)}return a.createElement.apply(null,t)}c.displayName="MDXCreateElement"},2175:function(e,n,t){t.r(n),t.d(n,{assets:function(){return d},contentTitle:function(){return r},default:function(){return u},frontMatter:function(){return o},metadata:function(){return p},toc:function(){return m}});var a=t(7462),i=t(3366),s=(t(7294),t(3905)),l=["components"],o={slug:"/usage/",sidebar_position:3},r="Usage",p={unversionedId:"usage",id:"usage",title:"Usage",description:"Getting started",source:"@site/docs/usage.md",sourceDirName:".",slug:"/usage/",permalink:"/usage/",draft:!1,tags:[],version:"current",sidebarPosition:3,frontMatter:{slug:"/usage/",sidebar_position:3},sidebar:"tutorialSidebar",previous:{title:"Installation",permalink:"/installation/"},next:{title:"Styleguide",permalink:"/styleguide/"}},d={},m=[{value:"Getting started",id:"getting-started",level:2},{value:"Supported file names",id:"supported-file-names",level:2},{value:"Environment variables",id:"environment-variables",level:2},{value:"Task",id:"task",level:3},{value:".env files",id:"env-files",level:3},{value:"Including other Taskfiles",id:"including-other-taskfiles",level:2},{value:"OS-specific Taskfiles",id:"os-specific-taskfiles",level:3},{value:"Directory of included Taskfile",id:"directory-of-included-taskfile",level:3},{value:"Optional includes",id:"optional-includes",level:3},{value:"Vars of included Taskfiles",id:"vars-of-included-taskfiles",level:3},{value:"Task directory",id:"task-directory",level:2},{value:"Task dependencies",id:"task-dependencies",level:2},{value:"Calling another task",id:"calling-another-task",level:2},{value:"Prevent unnecessary work",id:"prevent-unnecessary-work",level:2},{value:"By fingerprinting locally generated files and their sources",id:"by-fingerprinting-locally-generated-files-and-their-sources",level:3},{value:"Using programmatic checks to indicate a task is up to date.",id:"using-programmatic-checks-to-indicate-a-task-is-up-to-date",level:3},{value:"Using programmatic checks to cancel execution of an task and it&#39;s dependencies",id:"using-programmatic-checks-to-cancel-execution-of-an-task-and-its-dependencies",level:3},{value:"Limiting when tasks run",id:"limiting-when-tasks-run",level:3},{value:"Variables",id:"variables",level:2},{value:"Dynamic variables",id:"dynamic-variables",level:3},{value:"Forwarding CLI arguments to commands",id:"forwarding-cli-arguments-to-commands",level:2},{value:"Doing task cleanup with <code>defer</code>",id:"doing-task-cleanup-with-defer",level:2},{value:"Go&#39;s template engine",id:"gos-template-engine",level:2},{value:"Help",id:"help",level:2},{value:"Display summary of task",id:"display-summary-of-task",level:2},{value:"Overriding task name",id:"overriding-task-name",level:2},{value:"Silent mode",id:"silent-mode",level:2},{value:"Dry run mode",id:"dry-run-mode",level:2},{value:"Ignore errors",id:"ignore-errors",level:2},{value:"Output syntax",id:"output-syntax",level:2},{value:"Interactive CLI application",id:"interactive-cli-application",level:2},{value:"Short task syntax",id:"short-task-syntax",level:2},{value:"Watch tasks",id:"watch-tasks",level:2}],c={toc:m};function u(e){var n=e.components,t=(0,i.Z)(e,l);return(0,s.kt)("wrapper",(0,a.Z)({},c,t,{components:n,mdxType:"MDXLayout"}),(0,s.kt)("h1",{id:"usage"},"Usage"),(0,s.kt)("h2",{id:"getting-started"},"Getting started"),(0,s.kt)("p",null,"Create a file called ",(0,s.kt)("inlineCode",{parentName:"p"},"Taskfile.yml")," in the root of your project.\nThe ",(0,s.kt)("inlineCode",{parentName:"p"},"cmds")," attribute should contain the commands of a task.\nThe example below allows compiling a Go app and uses ",(0,s.kt)("a",{parentName:"p",href:"https://github.com/tdewolff/minify/tree/master/cmd/minify"},"Minify")," to concat\nand minify multiple CSS files into a single one."),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-yaml"},"version: '3'\n\ntasks:\n  build:\n    cmds:\n      - go build -v -i main.go\n\n  assets:\n    cmds:\n      - minify -o public/style.css src/css\n")),(0,s.kt)("p",null,"Running the tasks is as simple as running:"),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-bash"},"task assets build\n")),(0,s.kt)("p",null,"Task uses ",(0,s.kt)("a",{parentName:"p",href:"https://mvdan.cc/sh/"},"mvdan.cc/sh"),", a native Go sh\ninterpreter. So you can write sh/bash commands and it will work even on\nWindows, where ",(0,s.kt)("inlineCode",{parentName:"p"},"sh")," or ",(0,s.kt)("inlineCode",{parentName:"p"},"bash")," are usually not available. Just remember any\nexecutable called must be available by the OS or in PATH."),(0,s.kt)("p",null,'If you omit a task name, "default" will be assumed.'),(0,s.kt)("h2",{id:"supported-file-names"},"Supported file names"),(0,s.kt)("p",null,"Task will look for the following file names, in order of priority:"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},"Taskfile.yml"),(0,s.kt)("li",{parentName:"ul"},"Taskfile.yaml"),(0,s.kt)("li",{parentName:"ul"},"Taskfile.dist.yml"),(0,s.kt)("li",{parentName:"ul"},"Taskfile.dist.yaml")),(0,s.kt)("p",null,"The intention of having the ",(0,s.kt)("inlineCode",{parentName:"p"},".dist")," variants is to allow projects to have one\ncommitted version (",(0,s.kt)("inlineCode",{parentName:"p"},".dist"),") while still allowing individual users to override\nthe Taskfile by adding an additional ",(0,s.kt)("inlineCode",{parentName:"p"},"Taskfile.yml")," (which would be on\n",(0,s.kt)("inlineCode",{parentName:"p"},".gitignore"),")."),(0,s.kt)("h2",{id:"environment-variables"},"Environment variables"),(0,s.kt)("h3",{id:"task"},"Task"),(0,s.kt)("p",null,"You can use ",(0,s.kt)("inlineCode",{parentName:"p"},"env")," to set custom environment variables for a specific task:"),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-yaml"},"version: '3'\n\ntasks:\n  greet:\n    cmds:\n      - echo $GREETING\n    env:\n      GREETING: Hey, there!\n")),(0,s.kt)("p",null,"Additionally, you can set globally environment variables, that'll be available\nto all tasks:"),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-yaml"},"version: '3'\n\nenv:\n  GREETING: Hey, there!\n\ntasks:\n  greet:\n    cmds:\n      - echo $GREETING\n")),(0,s.kt)("div",{className:"admonition admonition-info alert alert--info"},(0,s.kt)("div",{parentName:"div",className:"admonition-heading"},(0,s.kt)("h5",{parentName:"div"},(0,s.kt)("span",{parentName:"h5",className:"admonition-icon"},(0,s.kt)("svg",{parentName:"span",xmlns:"http://www.w3.org/2000/svg",width:"14",height:"16",viewBox:"0 0 14 16"},(0,s.kt)("path",{parentName:"svg",fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"}))),"info")),(0,s.kt)("div",{parentName:"div",className:"admonition-content"},(0,s.kt)("p",{parentName:"div"},(0,s.kt)("inlineCode",{parentName:"p"},"env")," supports expansion and retrieving output from a shell command\njust like variables, as you can see on the ",(0,s.kt)("a",{parentName:"p",href:"#variables"},"Variables")," section."))),(0,s.kt)("h3",{id:"env-files"},".env files"),(0,s.kt)("p",null,"You can also ask Task to include ",(0,s.kt)("inlineCode",{parentName:"p"},".env")," like files by using the ",(0,s.kt)("inlineCode",{parentName:"p"},"dotenv:"),"\nsetting:"),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-bash",metastring:'title=".env"',title:'".env"'},"KEYNAME=VALUE\n")),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-bash",metastring:'title="testing/.env"',title:'"testing/.env"'},"ENDPOINT=testing.com\n")),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-yaml",metastring:'title="Taskfile.yml"',title:'"Taskfile.yml"'},"version: '3'\n\nenv:\n  ENV: testing\n\ndotenv: ['.env', '{{.ENV}}/.env.', '{{.HOME}}/.env']\n\ntasks:\n  greet:\n    cmds:\n      - echo \"Using $KEYNAME and endpoint $ENDPOINT\"\n")),(0,s.kt)("h2",{id:"including-other-taskfiles"},"Including other Taskfiles"),(0,s.kt)("p",null,"If you want to share tasks between different projects (Taskfiles), you can use\nthe importing mechanism to include other Taskfiles using the ",(0,s.kt)("inlineCode",{parentName:"p"},"includes")," keyword:"),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-yaml"},"version: '3'\n\nincludes:\n  docs: ./documentation # will look for ./documentation/Taskfile.yml\n  docker: ./DockerTasks.yml\n")),(0,s.kt)("p",null,"The tasks described in the given Taskfiles will be available with the informed\nnamespace. So, you'd call ",(0,s.kt)("inlineCode",{parentName:"p"},"task docs:serve")," to run the ",(0,s.kt)("inlineCode",{parentName:"p"},"serve")," task from\n",(0,s.kt)("inlineCode",{parentName:"p"},"documentation/Taskfile.yml")," or ",(0,s.kt)("inlineCode",{parentName:"p"},"task docker:build")," to run the ",(0,s.kt)("inlineCode",{parentName:"p"},"build")," task\nfrom the ",(0,s.kt)("inlineCode",{parentName:"p"},"DockerTasks.yml")," file."),(0,s.kt)("h3",{id:"os-specific-taskfiles"},"OS-specific Taskfiles"),(0,s.kt)("p",null,"With ",(0,s.kt)("inlineCode",{parentName:"p"},"version: '2'"),", task automatically includes any ",(0,s.kt)("inlineCode",{parentName:"p"},"Taskfile_{{OS}}.yml"),"\nif it exists (for example: ",(0,s.kt)("inlineCode",{parentName:"p"},"Taskfile_windows.yml"),", ",(0,s.kt)("inlineCode",{parentName:"p"},"Taskfile_linux.yml")," or\n",(0,s.kt)("inlineCode",{parentName:"p"},"Taskfile_darwin.yml"),"). Since this behavior was a bit too implicit, it\nwas removed on version 3, but you still can have a similar behavior by\nexplicitly importing these files:"),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-yaml"},"version: '3'\n\nincludes:\n  build: ./Taskfile_{{OS}}.yml\n")),(0,s.kt)("h3",{id:"directory-of-included-taskfile"},"Directory of included Taskfile"),(0,s.kt)("p",null,"By default, included Taskfile's tasks are ran in the current directory, even\nif the Taskfile is in another directory, but you can force its tasks to run\nin another directory by using this alternative syntax:"),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-yaml"},"version: '3'\n\nincludes:\n  docs:\n    taskfile: ./docs/Taskfile.yml\n    dir: ./docs\n")),(0,s.kt)("div",{className:"admonition admonition-info alert alert--info"},(0,s.kt)("div",{parentName:"div",className:"admonition-heading"},(0,s.kt)("h5",{parentName:"div"},(0,s.kt)("span",{parentName:"h5",className:"admonition-icon"},(0,s.kt)("svg",{parentName:"span",xmlns:"http://www.w3.org/2000/svg",width:"14",height:"16",viewBox:"0 0 14 16"},(0,s.kt)("path",{parentName:"svg",fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"}))),"info")),(0,s.kt)("div",{parentName:"div",className:"admonition-content"},(0,s.kt)("p",{parentName:"div"},"The included Taskfiles must be using the same schema version the main\nTaskfile uses."))),(0,s.kt)("h3",{id:"optional-includes"},"Optional includes"),(0,s.kt)("p",null,"Includes marked as optional will allow Task to continue execution as normal if\nthe included file is missing."),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-yaml"},"version: '3'\n\nincludes:\n  tests:\n    taskfile: ./tests/Taskfile.yml\n    optional: true\n\ntasks:\n  greet:\n    cmds:\n      - echo \"This command can still be successfully executed if ./tests/Taskfile.yml does not exist\"\n")),(0,s.kt)("h3",{id:"vars-of-included-taskfiles"},"Vars of included Taskfiles"),(0,s.kt)("p",null,"You can also specify variables when including a Taskfile. This may be useful\nfor having reusable Taskfile that can be tweaked or even included more than once:"),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-yaml"},"version: '3'\n\nincludes:\n  backend:\n    taskfile: ./taskfiles/Docker.yml\n    vars:\n      DOCKER_IMAGE: backend_image\n\n  frontend:\n    taskfile: ./taskfiles/Docker.yml\n    vars:\n      DOCKER_IMAGE: frontend_image\n")),(0,s.kt)("div",{className:"admonition admonition-info alert alert--info"},(0,s.kt)("div",{parentName:"div",className:"admonition-heading"},(0,s.kt)("h5",{parentName:"div"},(0,s.kt)("span",{parentName:"h5",className:"admonition-icon"},(0,s.kt)("svg",{parentName:"span",xmlns:"http://www.w3.org/2000/svg",width:"14",height:"16",viewBox:"0 0 14 16"},(0,s.kt)("path",{parentName:"svg",fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"}))),"info")),(0,s.kt)("div",{parentName:"div",className:"admonition-content"},(0,s.kt)("p",{parentName:"div"},"Vars declared in the included Taskfile have preference over the\nincluded ones! If you want a variable in an included Taskfile to be overridable\nuse the ",(0,s.kt)("a",{parentName:"p",href:"https://go-task.github.io/slim-sprig/defaults.html"},"default function"),":\n",(0,s.kt)("inlineCode",{parentName:"p"},"MY_VAR: '{{.MY_VAR | default \"my-default-value\"}}'"),"."))),(0,s.kt)("h2",{id:"task-directory"},"Task directory"),(0,s.kt)("p",null,"By default, tasks will be executed in the directory where the Taskfile is\nlocated. But you can easily make the task run in another folder informing\n",(0,s.kt)("inlineCode",{parentName:"p"},"dir"),":"),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-yaml"},"version: '3'\n\ntasks:\n  serve:\n    dir: public/www\n    cmds:\n      # run http server\n      - caddy\n")),(0,s.kt)("p",null,"If the directory doesn't exist, ",(0,s.kt)("inlineCode",{parentName:"p"},"task")," creates it."),(0,s.kt)("h2",{id:"task-dependencies"},"Task dependencies"),(0,s.kt)("blockquote",null,(0,s.kt)("p",{parentName:"blockquote"},"Dependencies run in parallel, so dependencies of a task shouldn't depend one\nanother. If you want to force tasks to run serially take a look at the\n",(0,s.kt)("a",{parentName:"p",href:"#calling-another-task"},"Calling Another Task")," section below.")),(0,s.kt)("p",null,"You may have tasks that depend on others. Just pointing them on ",(0,s.kt)("inlineCode",{parentName:"p"},"deps")," will\nmake them run automatically before running the parent task:"),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-yaml"},"version: '3'\n\ntasks:\n  build:\n    deps: [assets]\n    cmds:\n      - go build -v -i main.go\n\n  assets:\n    cmds:\n      - minify -o public/style.css src/css\n")),(0,s.kt)("p",null,"In the above example, ",(0,s.kt)("inlineCode",{parentName:"p"},"assets")," will always run right before ",(0,s.kt)("inlineCode",{parentName:"p"},"build")," if you run\n",(0,s.kt)("inlineCode",{parentName:"p"},"task build"),"."),(0,s.kt)("p",null,"A task can have only dependencies and no commands to group tasks together:"),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-yaml"},"version: '3'\n\ntasks:\n  assets:\n    deps: [js, css]\n\n  js:\n    cmds:\n      - minify -o public/script.js src/js\n\n  css:\n    cmds:\n      - minify -o public/style.css src/css\n")),(0,s.kt)("p",null,"If there is more than one dependency, they always run in parallel for better\nperformance."),(0,s.kt)("div",{className:"admonition admonition-tip alert alert--success"},(0,s.kt)("div",{parentName:"div",className:"admonition-heading"},(0,s.kt)("h5",{parentName:"div"},(0,s.kt)("span",{parentName:"h5",className:"admonition-icon"},(0,s.kt)("svg",{parentName:"span",xmlns:"http://www.w3.org/2000/svg",width:"12",height:"16",viewBox:"0 0 12 16"},(0,s.kt)("path",{parentName:"svg",fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"}))),"tip")),(0,s.kt)("div",{parentName:"div",className:"admonition-content"},(0,s.kt)("p",{parentName:"div"},"You can also make the tasks given by the command line run in parallel by\nusing the ",(0,s.kt)("inlineCode",{parentName:"p"},"--parallel")," flag (alias ",(0,s.kt)("inlineCode",{parentName:"p"},"-p"),"). Example: ",(0,s.kt)("inlineCode",{parentName:"p"},"task --parallel js css"),"."))),(0,s.kt)("p",null,"If you want to pass information to dependencies, you can do that the same\nmanner as you would to ",(0,s.kt)("a",{parentName:"p",href:"#calling-another-task"},"call another task"),":"),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-yaml"},'version: \'3\'\n\ntasks:\n  default:\n    deps:\n      - task: echo_sth\n        vars: {TEXT: "before 1"}\n      - task: echo_sth\n        vars: {TEXT: "before 2"}\n    cmds:\n      - echo "after"\n\n  echo_sth:\n    cmds:\n      - echo {{.TEXT}}\n')),(0,s.kt)("h2",{id:"calling-another-task"},"Calling another task"),(0,s.kt)("p",null,"When a task has many dependencies, they are executed concurrently. This will\noften result in a faster build pipeline. But in some situations you may need\nto call other tasks serially. In this case, just use the following syntax:"),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-yaml"},'version: \'3\'\n\ntasks:\n  main-task:\n    cmds:\n      - task: task-to-be-called\n      - task: another-task\n      - echo "Both done"\n\n  task-to-be-called:\n    cmds:\n      - echo "Task to be called"\n\n  another-task:\n    cmds:\n      - echo "Another task"\n')),(0,s.kt)("p",null,"Overriding variables in the called task is as simple as informing ",(0,s.kt)("inlineCode",{parentName:"p"},"vars"),"\nattribute:"),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-yaml"},'version: \'3\'\n\ntasks:\n  greet:\n    vars:\n      RECIPIENT: \'{{default "World" .RECIPIENT}}\'\n    cmds:\n      - echo "Hello, {{.RECIPIENT}}!"\n\n  greet-pessimistically:\n    cmds:\n      - task: greet\n        vars: {RECIPIENT: "Cruel World"}\n')),(0,s.kt)("p",null,"The above syntax is also supported in ",(0,s.kt)("inlineCode",{parentName:"p"},"deps"),"."),(0,s.kt)("div",{className:"admonition admonition-tip alert alert--success"},(0,s.kt)("div",{parentName:"div",className:"admonition-heading"},(0,s.kt)("h5",{parentName:"div"},(0,s.kt)("span",{parentName:"h5",className:"admonition-icon"},(0,s.kt)("svg",{parentName:"span",xmlns:"http://www.w3.org/2000/svg",width:"12",height:"16",viewBox:"0 0 12 16"},(0,s.kt)("path",{parentName:"svg",fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"}))),"tip")),(0,s.kt)("div",{parentName:"div",className:"admonition-content"},(0,s.kt)("p",{parentName:"div"},"NOTE: If you want to call a task declared in the root Taskfile from within an\n",(0,s.kt)("a",{parentName:"p",href:"#including-other-taskfiles"},"included Taskfile"),", add a leading ",(0,s.kt)("inlineCode",{parentName:"p"},":")," like this:\n",(0,s.kt)("inlineCode",{parentName:"p"},"task: :task-name"),"."))),(0,s.kt)("h2",{id:"prevent-unnecessary-work"},"Prevent unnecessary work"),(0,s.kt)("h3",{id:"by-fingerprinting-locally-generated-files-and-their-sources"},"By fingerprinting locally generated files and their sources"),(0,s.kt)("p",null,"If a task generates something, you can inform Task the source and generated\nfiles, so Task will prevent to run them if not necessary."),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-yaml"},"version: '3'\n\ntasks:\n  build:\n    deps: [js, css]\n    cmds:\n      - go build -v -i main.go\n\n  js:\n    cmds:\n      - minify -o public/script.js src/js\n    sources:\n      - src/js/**/*.js\n    generates:\n      - public/script.js\n\n  css:\n    cmds:\n      - minify -o public/style.css src/css\n    sources:\n      - src/css/**/*.css\n    generates:\n      - public/style.css\n")),(0,s.kt)("p",null,(0,s.kt)("inlineCode",{parentName:"p"},"sources")," and ",(0,s.kt)("inlineCode",{parentName:"p"},"generates")," can be files or file patterns. When given,\nTask will compare the checksum of the source files to determine if it's\nnecessary to run the task. If not, it will just print a message like\n",(0,s.kt)("inlineCode",{parentName:"p"},'Task "js" is up to date'),".\nYou will probably want to ignore the ",(0,s.kt)("inlineCode",{parentName:"p"},".task")," folder in your ",(0,s.kt)("inlineCode",{parentName:"p"},".gitignore")," file\n(It's there that Task stores the last checksum)."),(0,s.kt)("p",null,"If you prefer this check to be made by the modification timestamp of the files,\ninstead of its checksum (content), just set the ",(0,s.kt)("inlineCode",{parentName:"p"},"method")," property to ",(0,s.kt)("inlineCode",{parentName:"p"},"timestamp"),"."),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-yaml"},"version: '3'\n\ntasks:\n  build:\n    cmds:\n      - go build .\n    sources:\n      - ./*.go\n    generates:\n      - app{{exeExt}}\n    method: checksum\n")),(0,s.kt)("div",{className:"admonition admonition-info alert alert--info"},(0,s.kt)("div",{parentName:"div",className:"admonition-heading"},(0,s.kt)("h5",{parentName:"div"},(0,s.kt)("span",{parentName:"h5",className:"admonition-icon"},(0,s.kt)("svg",{parentName:"span",xmlns:"http://www.w3.org/2000/svg",width:"14",height:"16",viewBox:"0 0 14 16"},(0,s.kt)("path",{parentName:"svg",fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"}))),"info")),(0,s.kt)("div",{parentName:"div",className:"admonition-content"},(0,s.kt)("p",{parentName:"div"},"Each task has only one checksum stored for its ",(0,s.kt)("inlineCode",{parentName:"p"},"sources"),". If you want\nto distinguish a task by any of its input variables, you can add those\nvariables as part of the task's label and it will be considered a different\ntask."),(0,s.kt)("p",{parentName:"div"},"This is useful if you want to run a task once for each distinct set of\ninputs until the sources actually change. For example if the sources depend\non the value of a variable, or you want the task to rerun if some arguments\nchange even if the source hasn't."))),(0,s.kt)("div",{className:"admonition admonition-tip alert alert--success"},(0,s.kt)("div",{parentName:"div",className:"admonition-heading"},(0,s.kt)("h5",{parentName:"div"},(0,s.kt)("span",{parentName:"h5",className:"admonition-icon"},(0,s.kt)("svg",{parentName:"span",xmlns:"http://www.w3.org/2000/svg",width:"12",height:"16",viewBox:"0 0 12 16"},(0,s.kt)("path",{parentName:"svg",fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"}))),"tip")),(0,s.kt)("div",{parentName:"div",className:"admonition-content"},(0,s.kt)("p",{parentName:"div"},"The method ",(0,s.kt)("inlineCode",{parentName:"p"},"none")," skips any validation and always run the task."))),(0,s.kt)("div",{className:"admonition admonition-info alert alert--info"},(0,s.kt)("div",{parentName:"div",className:"admonition-heading"},(0,s.kt)("h5",{parentName:"div"},(0,s.kt)("span",{parentName:"h5",className:"admonition-icon"},(0,s.kt)("svg",{parentName:"span",xmlns:"http://www.w3.org/2000/svg",width:"14",height:"16",viewBox:"0 0 14 16"},(0,s.kt)("path",{parentName:"svg",fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"}))),"info")),(0,s.kt)("div",{parentName:"div",className:"admonition-content"},(0,s.kt)("p",{parentName:"div"},"For the ",(0,s.kt)("inlineCode",{parentName:"p"},"checksum")," (default) method to work, it's only necessary to\ninform the source files, but if you want to use the ",(0,s.kt)("inlineCode",{parentName:"p"},"timestamp")," method, you\nalso need to inform the generated files with ",(0,s.kt)("inlineCode",{parentName:"p"},"generates"),"."))),(0,s.kt)("h3",{id:"using-programmatic-checks-to-indicate-a-task-is-up-to-date"},"Using programmatic checks to indicate a task is up to date."),(0,s.kt)("p",null,"Alternatively, you can inform a sequence of tests as ",(0,s.kt)("inlineCode",{parentName:"p"},"status"),". If no error\nis returned (exit status 0), the task is considered up-to-date:"),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-yaml"},"version: '3'\n\ntasks:\n  generate-files:\n    cmds:\n      - mkdir directory\n      - touch directory/file1.txt\n      - touch directory/file2.txt\n    # test existence of files\n    status:\n      - test -d directory\n      - test -f directory/file1.txt\n      - test -f directory/file2.txt\n")),(0,s.kt)("p",null,"Normally, you would use ",(0,s.kt)("inlineCode",{parentName:"p"},"sources")," in combination with\n",(0,s.kt)("inlineCode",{parentName:"p"},"generates")," - but for tasks that generate remote artifacts (Docker images,\ndeploys, CD releases) the checksum source and timestamps require either\naccess to the artifact or for an out-of-band refresh of the ",(0,s.kt)("inlineCode",{parentName:"p"},".checksum"),"\nfingerprint file."),(0,s.kt)("p",null,"Two special variables ",(0,s.kt)("inlineCode",{parentName:"p"},"{{.CHECKSUM}}")," and ",(0,s.kt)("inlineCode",{parentName:"p"},"{{.TIMESTAMP}}")," are available\nfor interpolation within ",(0,s.kt)("inlineCode",{parentName:"p"},"status")," commands, depending on the method assigned\nto fingerprint the sources. Only ",(0,s.kt)("inlineCode",{parentName:"p"},"source")," globs are fingerprinted."),(0,s.kt)("p",null,"Note that the ",(0,s.kt)("inlineCode",{parentName:"p"},"{{.TIMESTAMP}}"),' variable is a "live" Go ',(0,s.kt)("inlineCode",{parentName:"p"},"time.Time")," struct, and\ncan be formatted using any of the methods that ",(0,s.kt)("inlineCode",{parentName:"p"},"time.Time")," responds to."),(0,s.kt)("p",null,"See ",(0,s.kt)("a",{parentName:"p",href:"https://golang.org/pkg/time/"},"the Go Time documentation")," for more information."),(0,s.kt)("p",null,"You can use ",(0,s.kt)("inlineCode",{parentName:"p"},"--force")," or ",(0,s.kt)("inlineCode",{parentName:"p"},"-f")," if you want to force a task to run even when\nup-to-date."),(0,s.kt)("p",null,"Also, ",(0,s.kt)("inlineCode",{parentName:"p"},"task --status [tasks]...")," will exit with a non-zero exit code if any of\nthe tasks are not up-to-date."),(0,s.kt)("h3",{id:"using-programmatic-checks-to-cancel-execution-of-an-task-and-its-dependencies"},"Using programmatic checks to cancel execution of an task and it's dependencies"),(0,s.kt)("p",null,"In addition to ",(0,s.kt)("inlineCode",{parentName:"p"},"status")," checks, there are also ",(0,s.kt)("inlineCode",{parentName:"p"},"preconditions")," checks, which are\nthe logical inverse of ",(0,s.kt)("inlineCode",{parentName:"p"},"status")," checks.  That is, if you need a certain set of\nconditions to be ",(0,s.kt)("em",{parentName:"p"},"true")," you can use the ",(0,s.kt)("inlineCode",{parentName:"p"},"preconditions")," stanza.\n",(0,s.kt)("inlineCode",{parentName:"p"},"preconditions")," are similar to ",(0,s.kt)("inlineCode",{parentName:"p"},"status")," lines except they support ",(0,s.kt)("inlineCode",{parentName:"p"},"sh"),"\nexpansion and they SHOULD all return 0."),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-yaml"},'version: \'3\'\n\ntasks:\n  generate-files:\n    cmds:\n      - mkdir directory\n      - touch directory/file1.txt\n      - touch directory/file2.txt\n    # test existence of files\n    preconditions:\n      - test -f .env\n      - sh: "[ 1 = 0 ]"\n        msg: "One doesn\'t equal Zero, Halting"\n')),(0,s.kt)("p",null,"Preconditions can set specific failure messages that can tell\na user what steps to take using the ",(0,s.kt)("inlineCode",{parentName:"p"},"msg")," field."),(0,s.kt)("p",null,"If a task has a dependency on a sub-task with a precondition, and that\nprecondition is not met - the calling task will fail.  Note that a task\nexecuted with a failing precondition will not run unless ",(0,s.kt)("inlineCode",{parentName:"p"},"--force")," is\ngiven."),(0,s.kt)("p",null,"Unlike ",(0,s.kt)("inlineCode",{parentName:"p"},"status")," which will skip a task if it is up to date, and continue\nexecuting tasks that depend on it, a ",(0,s.kt)("inlineCode",{parentName:"p"},"precondition")," will fail a task, along\nwith any other tasks that depend on it."),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-yaml"},'version: \'3\'\n\ntasks:\n  task-will-fail:\n    preconditions:\n      - sh: "exit 1"\n\n  task-will-also-fail:\n    deps:\n      - task-will-fail\n\n  task-will-still-fail:\n    cmds:\n      - task: task-will-fail\n      - echo "I will not run"\n')),(0,s.kt)("h3",{id:"limiting-when-tasks-run"},"Limiting when tasks run"),(0,s.kt)("p",null,"If a task executed by multiple ",(0,s.kt)("inlineCode",{parentName:"p"},"cmds")," or multiple ",(0,s.kt)("inlineCode",{parentName:"p"},"deps")," you can control\nwhen it is executed using ",(0,s.kt)("inlineCode",{parentName:"p"},"run"),". ",(0,s.kt)("inlineCode",{parentName:"p"},"run")," can also be set at the root\nof the Taskfile to change the behavior of all the tasks unless explicitly\noverridden."),(0,s.kt)("p",null,"Supported values for ",(0,s.kt)("inlineCode",{parentName:"p"},"run"),":"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("inlineCode",{parentName:"li"},"always")," (default) always attempt to invoke the task regardless of the\nnumber of previous executions"),(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("inlineCode",{parentName:"li"},"once")," only invoke this task once regardless of the number of references"),(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("inlineCode",{parentName:"li"},"when_changed")," only invokes the task once for each unique set of variables\npassed into the task")),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-yaml"},"version: '3'\n\ntasks:\n  default:\n    cmds:\n      - task: generate-file\n        vars: { CONTENT: '1' }\n      - task: generate-file\n        vars: { CONTENT: '2' }\n      - task: generate-file\n        vars: { CONTENT: '2' }\n\n  generate-file:\n    run: when_changed\n    deps:\n      - install-deps\n    cmds:\n      - echo {{.CONTENT}}\n\n  install-deps:\n    run: once\n    cmds:\n      - sleep 5 # long operation like installing packages\n")),(0,s.kt)("h2",{id:"variables"},"Variables"),(0,s.kt)("p",null,"When doing interpolation of variables, Task will look for the below.\nThey are listed below in order of importance (e.g. most important first):"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},"Variables declared in the task definition"),(0,s.kt)("li",{parentName:"ul"},"Variables given while calling a task from another\n(See ",(0,s.kt)("a",{parentName:"li",href:"#calling-another-task"},"Calling another task")," above)"),(0,s.kt)("li",{parentName:"ul"},"Variables of the ",(0,s.kt)("a",{parentName:"li",href:"#including-other-taskfiles"},"included Taskfile")," (when the task is included)"),(0,s.kt)("li",{parentName:"ul"},"Variables of the ",(0,s.kt)("a",{parentName:"li",href:"#vars-of-included-taskfiles"},"inclusion of the Taskfile")," (when the task is included)"),(0,s.kt)("li",{parentName:"ul"},"Global variables (those declared in the ",(0,s.kt)("inlineCode",{parentName:"li"},"vars:")," option in the Taskfile)"),(0,s.kt)("li",{parentName:"ul"},"Environment variables")),(0,s.kt)("p",null,"Example of sending parameters with environment variables:"),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-bash"},"$ TASK_VARIABLE=a-value task do-something\n")),(0,s.kt)("div",{className:"admonition admonition-tip alert alert--success"},(0,s.kt)("div",{parentName:"div",className:"admonition-heading"},(0,s.kt)("h5",{parentName:"div"},(0,s.kt)("span",{parentName:"h5",className:"admonition-icon"},(0,s.kt)("svg",{parentName:"span",xmlns:"http://www.w3.org/2000/svg",width:"12",height:"16",viewBox:"0 0 12 16"},(0,s.kt)("path",{parentName:"svg",fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"}))),"tip")),(0,s.kt)("div",{parentName:"div",className:"admonition-content"},(0,s.kt)("p",{parentName:"div"},"A special variable ",(0,s.kt)("inlineCode",{parentName:"p"},".TASK")," is always available containing the task name."))),(0,s.kt)("p",null,"Since some shells don't support above syntax to set environment variables\n(Windows) tasks also accepts a similar style when not in the beginning of\nthe command."),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-bash"},'$ task write-file FILE=file.txt "CONTENT=Hello, World!" print "MESSAGE=All done!"\n')),(0,s.kt)("p",null,"Example of locally declared vars:"),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-yaml"},"version: '3'\n\ntasks:\n  print-var:\n    cmds:\n      - echo \"{{.VAR}}\"\n    vars:\n      VAR: Hello!\n")),(0,s.kt)("p",null,"Example of global vars in a ",(0,s.kt)("inlineCode",{parentName:"p"},"Taskfile.yml"),":"),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-yaml"},"version: '3'\n\nvars:\n  GREETING: Hello from Taskfile!\n\ntasks:\n  greet:\n    cmds:\n      - echo \"{{.GREETING}}\"\n")),(0,s.kt)("h3",{id:"dynamic-variables"},"Dynamic variables"),(0,s.kt)("p",null,"The below syntax (",(0,s.kt)("inlineCode",{parentName:"p"},"sh:")," prop in a variable) is considered a dynamic variable.\nThe value will be treated as a command and the output assigned. If there is one\nor more trailing newlines, the last newline will be trimmed."),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-yaml"},"version: '3'\n\ntasks:\n  build:\n    cmds:\n      - go build -ldflags=\"-X main.Version={{.GIT_COMMIT}}\" main.go\n    vars:\n      GIT_COMMIT:\n        sh: git log -n 1 --format=%h\n")),(0,s.kt)("p",null,"This works for all types of variables."),(0,s.kt)("h2",{id:"forwarding-cli-arguments-to-commands"},"Forwarding CLI arguments to commands"),(0,s.kt)("p",null,"If ",(0,s.kt)("inlineCode",{parentName:"p"},"--")," is given in the CLI, all following parameters are added to a\nspecial ",(0,s.kt)("inlineCode",{parentName:"p"},".CLI_ARGS")," variable. This is useful to forward arguments to another\ncommand."),(0,s.kt)("p",null,"The below example will run ",(0,s.kt)("inlineCode",{parentName:"p"},"yarn install"),"."),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-bash"},"$ task yarn -- install\n")),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-yaml"},"version: '3'\n\ntasks:\n  yarn:\n    cmds:\n      - yarn {{.CLI_ARGS}}\n")),(0,s.kt)("h2",{id:"doing-task-cleanup-with-defer"},"Doing task cleanup with ",(0,s.kt)("inlineCode",{parentName:"h2"},"defer")),(0,s.kt)("p",null,"With the ",(0,s.kt)("inlineCode",{parentName:"p"},"defer")," keyword, it's possible to schedule cleanup to be run once\nthe task finishes. The difference with just putting it as the last command is\nthat this command will run even when the task fails."),(0,s.kt)("p",null,"In the example below ",(0,s.kt)("inlineCode",{parentName:"p"},"rm -rf tmpdir/")," will run even if the third command fails:"),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-yaml"},"version: '3'\n\ntasks:\n  default:\n    cmds:\n      - mkdir -p tmpdir/\n      - defer: rm -rf tmpdir/\n      - echo 'Do work on tmpdir/'\n")),(0,s.kt)("p",null,"If you want to move the cleanup command into another task, that's possible as\nwell:"),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-yaml"},"version: '3'\n\ntasks:\n  default:\n    cmds:\n      - mkdir -p tmpdir/\n      - defer: { task: cleanup }\n      - echo 'Do work on tmpdir/'\n\n  cleanup: rm -rf tmpdir/\n")),(0,s.kt)("div",{className:"admonition admonition-info alert alert--info"},(0,s.kt)("div",{parentName:"div",className:"admonition-heading"},(0,s.kt)("h5",{parentName:"div"},(0,s.kt)("span",{parentName:"h5",className:"admonition-icon"},(0,s.kt)("svg",{parentName:"span",xmlns:"http://www.w3.org/2000/svg",width:"14",height:"16",viewBox:"0 0 14 16"},(0,s.kt)("path",{parentName:"svg",fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"}))),"info")),(0,s.kt)("div",{parentName:"div",className:"admonition-content"},(0,s.kt)("p",{parentName:"div"},"Due to the nature of how the\n",(0,s.kt)("a",{parentName:"p",href:"https://go.dev/tour/flowcontrol/13"},"Go's own ",(0,s.kt)("inlineCode",{parentName:"a"},"defer")," work"),", the deferred\ncommands are executed in the reverse order if you schedule multiple of them."))),(0,s.kt)("h2",{id:"gos-template-engine"},"Go's template engine"),(0,s.kt)("p",null,"Task parse commands as ",(0,s.kt)("a",{parentName:"p",href:"https://golang.org/pkg/text/template/"},"Go's template engine")," before executing\nthem. Variables are accessible through dot syntax (",(0,s.kt)("inlineCode",{parentName:"p"},".VARNAME"),")."),(0,s.kt)("p",null,"All functions by the Go's ",(0,s.kt)("a",{parentName:"p",href:"https://go-task.github.io/slim-sprig/"},"slim-sprig lib"),"\nare available. The following example gets the current date in a given format:"),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-yaml"},"version: '3'\n\ntasks:\n  print-date:\n    cmds:\n      - echo {{now | date \"2006-01-02\"}}\n")),(0,s.kt)("p",null,"Task also adds the following functions:"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("inlineCode",{parentName:"li"},"OS"),': Returns operating system. Possible values are "windows", "linux",\n"darwin" (macOS) and "freebsd".'),(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("inlineCode",{parentName:"li"},"ARCH"),': return the architecture Task was compiled to: "386", "amd64", "arm"\nor "s390x".'),(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("inlineCode",{parentName:"li"},"splitLines"),": Splits Unix (\\n) and Windows (\\r\\n) styled newlines."),(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("inlineCode",{parentName:"li"},"catLines"),": Replaces Unix (\\n) and Windows (\\r\\n) styled newlines with a space."),(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("inlineCode",{parentName:"li"},"toSlash"),": Does nothing on Unix, but on Windows converts a string from ",(0,s.kt)("inlineCode",{parentName:"li"},"\\"),"\npath format to ",(0,s.kt)("inlineCode",{parentName:"li"},"/"),"."),(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("inlineCode",{parentName:"li"},"fromSlash"),": Opposite of ",(0,s.kt)("inlineCode",{parentName:"li"},"toSlash"),". Does nothing on Unix, but on Windows\nconverts a string from ",(0,s.kt)("inlineCode",{parentName:"li"},"/")," path format to ",(0,s.kt)("inlineCode",{parentName:"li"},"\\"),"."),(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("inlineCode",{parentName:"li"},"exeExt"),": Returns the right executable extension for the current OS\n(",(0,s.kt)("inlineCode",{parentName:"li"},'".exe"')," for Windows, ",(0,s.kt)("inlineCode",{parentName:"li"},'""')," for others)."),(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("inlineCode",{parentName:"li"},"shellQuote"),": Quotes a string to make it safe for use in shell scripts.\nTask uses ",(0,s.kt)("a",{parentName:"li",href:"https://pkg.go.dev/mvdan.cc/sh/v3@v3.4.0/syntax#Quote"},"this Go function"),"\nfor this. The Bash dialect is assumed.")),(0,s.kt)("p",null,"Example:"),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-yaml"},"version: '3'\n\ntasks:\n  print-os:\n    cmds:\n      - echo '{{OS}} {{ARCH}}'\n      - echo '{{if eq OS \"windows\"}}windows-command{{else}}unix-command{{end}}'\n      # This will be path/to/file on Unix but path\\to\\file on Windows\n      - echo '{{fromSlash \"path/to/file\"}}'\n  enumerated-file:\n    vars:\n      CONTENT: |\n        foo\n        bar\n    cmds:\n      - |\n        cat << EOF > output.txt\n        {{range $i, $line := .CONTENT | splitLines -}}\n        {{printf \"%3d\" $i}}: {{$line}}\n        {{end}}EOF\n")),(0,s.kt)("h2",{id:"help"},"Help"),(0,s.kt)("p",null,"Running ",(0,s.kt)("inlineCode",{parentName:"p"},"task --list")," (or ",(0,s.kt)("inlineCode",{parentName:"p"},"task -l"),") lists all tasks with a description.\nThe following Taskfile:"),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-yaml"},"version: '3'\n\ntasks:\n  build:\n    desc: Build the go binary.\n    cmds:\n      - go build -v -i main.go\n\n  test:\n    desc: Run all the go tests.\n    cmds:\n      - go test -race ./...\n\n  js:\n    cmds:\n      - minify -o public/script.js src/js\n\n  css:\n    cmds:\n      - minify -o public/style.css src/css\n")),(0,s.kt)("p",null,"would print the following output:"),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-bash"},"* build:   Build the go binary.\n* test:    Run all the go tests.\n")),(0,s.kt)("p",null,"If you want to see all tasks, there's a ",(0,s.kt)("inlineCode",{parentName:"p"},"--list-all")," (alias ",(0,s.kt)("inlineCode",{parentName:"p"},"-a"),") flag as well."),(0,s.kt)("h2",{id:"display-summary-of-task"},"Display summary of task"),(0,s.kt)("p",null,"Running ",(0,s.kt)("inlineCode",{parentName:"p"},"task --summary task-name")," will show a summary of a task.\nThe following Taskfile:"),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-yaml"},"version: '3'\n\ntasks:\n  release:\n    deps: [build]\n    summary: |\n      Release your project to github\n\n      It will build your project before starting the release.\n      Please make sure that you have set GITHUB_TOKEN before starting.\n    cmds:\n      - your-release-tool\n\n  build:\n    cmds:\n      - your-build-tool\n")),(0,s.kt)("p",null,"with running ",(0,s.kt)("inlineCode",{parentName:"p"},"task --summary release")," would print the following output:"),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre"},"task: release\n\nRelease your project to github\n\nIt will build your project before starting the release.\nPlease make sure that you have set GITHUB_TOKEN before starting.\n\ndependencies:\n - build\n\ncommands:\n - your-release-tool\n")),(0,s.kt)("p",null,"If a summary is missing, the description will be printed.\nIf the task does not have a summary or a description, a warning is printed."),(0,s.kt)("p",null,"Please note: ",(0,s.kt)("em",{parentName:"p"},"showing the summary will not execute the command"),"."),(0,s.kt)("h2",{id:"overriding-task-name"},"Overriding task name"),(0,s.kt)("p",null,"Sometimes you may want to override the task name print on summary, up-to-date\nmessages to STDOUT, etc. In this case you can just set ",(0,s.kt)("inlineCode",{parentName:"p"},"label:"),", which can also\nbe interpolated with variables:"),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-yaml"},"version: '3'\n\ntasks:\n  default:\n    - task: print\n      vars:\n        MESSAGE: hello\n    - task: print\n      vars:\n        MESSAGE: world\n\n  print:\n    label: 'print-{{.MESSAGE}}'\n    cmds:\n      - echo \"{{.MESSAGE}}\"\n")),(0,s.kt)("h2",{id:"silent-mode"},"Silent mode"),(0,s.kt)("p",null,"Silent mode disables echoing of commands before Task runs it.\nFor the following Taskfile:"),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-yaml"},"version: '3'\n\ntasks:\n  echo:\n    cmds:\n      - echo \"Print something\"\n")),(0,s.kt)("p",null,"Normally this will be print:"),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-sh"},'echo "Print something"\nPrint something\n')),(0,s.kt)("p",null,"With silent mode on, the below will be print instead:"),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-sh"},"Print something\n")),(0,s.kt)("p",null,"There are four ways to enable silent mode:"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},"At command level:")),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-yaml"},"version: '3'\n\ntasks:\n  echo:\n    cmds:\n      - cmd: echo \"Print something\"\n        silent: true\n")),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},"At task level:")),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-yaml"},"version: '3'\n\ntasks:\n  echo:\n    cmds:\n      - echo \"Print something\"\n    silent: true\n")),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},"Globally at Taskfile level:")),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-yaml"},"version: '3'\n\nsilent: true\n\ntasks:\n  echo:\n    cmds:\n      - echo \"Print something\"\n")),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},"Or globally with ",(0,s.kt)("inlineCode",{parentName:"li"},"--silent")," or ",(0,s.kt)("inlineCode",{parentName:"li"},"-s")," flag")),(0,s.kt)("p",null,"If you want to suppress STDOUT instead, just redirect a command to ",(0,s.kt)("inlineCode",{parentName:"p"},"/dev/null"),":"),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-yaml"},"version: '3'\n\ntasks:\n  echo:\n    cmds:\n      - echo \"This will print nothing\" > /dev/null\n")),(0,s.kt)("h2",{id:"dry-run-mode"},"Dry run mode"),(0,s.kt)("p",null,"Dry run mode (",(0,s.kt)("inlineCode",{parentName:"p"},"--dry"),") compiles and steps through each task, printing the commands\nthat would be run without executing them. This is useful for debugging your Taskfiles."),(0,s.kt)("h2",{id:"ignore-errors"},"Ignore errors"),(0,s.kt)("p",null,"You have the option to ignore errors during command execution.\nGiven the following Taskfile:"),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-yaml"},"version: '3'\n\ntasks:\n  echo:\n    cmds:\n      - exit 1\n      - echo \"Hello World\"\n")),(0,s.kt)("p",null,"Task will abort the execution after running ",(0,s.kt)("inlineCode",{parentName:"p"},"exit 1")," because the status code ",(0,s.kt)("inlineCode",{parentName:"p"},"1")," stands for ",(0,s.kt)("inlineCode",{parentName:"p"},"EXIT_FAILURE"),".\nHowever it is possible to continue with execution using ",(0,s.kt)("inlineCode",{parentName:"p"},"ignore_error"),":"),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-yaml"},"version: '3'\n\ntasks:\n  echo:\n    cmds:\n      - cmd: exit 1\n        ignore_error: true\n      - echo \"Hello World\"\n")),(0,s.kt)("p",null,(0,s.kt)("inlineCode",{parentName:"p"},"ignore_error")," can also be set for a task, which mean errors will be suppressed\nfor all commands. But keep in mind this option won't propagate to other tasks\ncalled either by ",(0,s.kt)("inlineCode",{parentName:"p"},"deps")," or ",(0,s.kt)("inlineCode",{parentName:"p"},"cmds"),"!"),(0,s.kt)("h2",{id:"output-syntax"},"Output syntax"),(0,s.kt)("p",null,"By default, Task just redirect the STDOUT and STDERR of the running commands\nto the shell in real time. This is good for having live feedback for log\nprinted by commands, but the output can become messy if you have multiple\ncommands running at the same time and printing lots of stuff."),(0,s.kt)("p",null,"To make this more customizable, there are currently three different output\noptions you can choose:"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("inlineCode",{parentName:"li"},"interleaved")," (default)"),(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("inlineCode",{parentName:"li"},"group")),(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("inlineCode",{parentName:"li"},"prefixed"))),(0,s.kt)("p",null,"To choose another one, just set it to root in the Taskfile:"),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-yaml"},"version: '3'\n\noutput: 'group'\n\ntasks:\n  # ...\n")),(0,s.kt)("p",null,"The ",(0,s.kt)("inlineCode",{parentName:"p"},"group")," output will print the entire output of a command once, after it\nfinishes, so you won't have live feedback for commands that take a long time\nto run."),(0,s.kt)("p",null,"When using the ",(0,s.kt)("inlineCode",{parentName:"p"},"group")," output, you can optionally provide a templated message\nto print at the start and end of the group. This can be useful for instructing\nCI systems to group all of the output for a given task, such as with\n",(0,s.kt)("a",{parentName:"p",href:"https://docs.github.com/en/actions/learn-github-actions/workflow-commands-for-github-actions#grouping-log-lines"},"GitHub Actions' ",(0,s.kt)("inlineCode",{parentName:"a"},"::group::")," command"),"\nor ",(0,s.kt)("a",{parentName:"p",href:"https://docs.microsoft.com/en-us/azure/devops/pipelines/scripts/logging-commands?expand=1&view=azure-devops&tabs=bash#formatting-commands"},"Azure Pipelines"),"."),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-yaml"},"version: '3'\n\noutput:\n  group:\n    begin: '::begin::{{.TASK}}'\n    end: '::endgroup::'\n\ntasks:\n  default:\n    cmds:\n      - echo 'Hello, World!'\n    silent: true\n")),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-bash"},"$ task default\n::begin::default\nHello, World!\n::endgroup::\n")),(0,s.kt)("p",null,"The ",(0,s.kt)("inlineCode",{parentName:"p"},"prefix")," output will prefix every line printed by a command with\n",(0,s.kt)("inlineCode",{parentName:"p"},"[task-name] ")," as the prefix, but you can customize the prefix for a command\nwith the ",(0,s.kt)("inlineCode",{parentName:"p"},"prefix:")," attribute:"),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-yaml"},'version: \'3\'\n\noutput: prefixed\n\ntasks:\n default:\n   deps:\n     - task: print\n       vars: {TEXT: foo}\n     - task: print\n       vars: {TEXT: bar}\n     - task: print\n       vars: {TEXT: baz}\n\n print:\n   cmds:\n     - echo "{{.TEXT}}"\n   prefix: "print-{{.TEXT}}"\n   silent: true\n')),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-bash"},"$ task default\n[print-foo] foo\n[print-bar] bar\n[print-baz] baz\n")),(0,s.kt)("div",{className:"admonition admonition-tip alert alert--success"},(0,s.kt)("div",{parentName:"div",className:"admonition-heading"},(0,s.kt)("h5",{parentName:"div"},(0,s.kt)("span",{parentName:"h5",className:"admonition-icon"},(0,s.kt)("svg",{parentName:"span",xmlns:"http://www.w3.org/2000/svg",width:"12",height:"16",viewBox:"0 0 12 16"},(0,s.kt)("path",{parentName:"svg",fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"}))),"tip")),(0,s.kt)("div",{parentName:"div",className:"admonition-content"},(0,s.kt)("p",{parentName:"div"},"The ",(0,s.kt)("inlineCode",{parentName:"p"},"output")," option can also be specified by the ",(0,s.kt)("inlineCode",{parentName:"p"},"--output")," or ",(0,s.kt)("inlineCode",{parentName:"p"},"-o")," flags."))),(0,s.kt)("h2",{id:"interactive-cli-application"},"Interactive CLI application"),(0,s.kt)("p",null,"When running interactive CLI applications inside Task they can sometimes behave\nweirdly, specially when the ",(0,s.kt)("a",{parentName:"p",href:"#output-syntax"},"output mode")," is set to something\nother than ",(0,s.kt)("inlineCode",{parentName:"p"},"interleaved")," (the default), or when interactive apps are ran in\nparallel with other tasks."),(0,s.kt)("p",null,"The ",(0,s.kt)("inlineCode",{parentName:"p"},"interactive: true")," tells Task this is an interactive application, and Task\nwill try to optimize for it:"),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-yaml"},"version: '3'\n\ntasks:\n  default:\n    cmds:\n      - vim my-file.txt\n    interactive: true\n")),(0,s.kt)("p",null,"If you still have problem running an interactive app through Task, please open\nan issue about it."),(0,s.kt)("h2",{id:"short-task-syntax"},"Short task syntax"),(0,s.kt)("p",null,"Starting on Task v3, you can now write tasks with a shorter syntax if they\nhave the default settings (e.g. no custom ",(0,s.kt)("inlineCode",{parentName:"p"},"env:"),", ",(0,s.kt)("inlineCode",{parentName:"p"},"vars:"),", ",(0,s.kt)("inlineCode",{parentName:"p"},"desc:"),", ",(0,s.kt)("inlineCode",{parentName:"p"},"silent:")," , etc):"),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-yaml"},"version: '3'\n\ntasks:\n  build: go build -v -o ./app{{exeExt}} .\n\n  run:\n    - task: build\n    - ./app{{exeExt}} -h localhost -p 8080\n")),(0,s.kt)("h2",{id:"watch-tasks"},"Watch tasks"),(0,s.kt)("p",null,"With the flags ",(0,s.kt)("inlineCode",{parentName:"p"},"--watch")," or ",(0,s.kt)("inlineCode",{parentName:"p"},"-w")," task will watch for file changes\nand run the task again. This requires the ",(0,s.kt)("inlineCode",{parentName:"p"},"sources")," attribute to be given,\nso task knows which files to watch."))}u.isMDXComponent=!0}}]);
\ No newline at end of file
diff --git a/assets/js/6476eba6.6289932b.js b/assets/js/6476eba6.6289932b.js
new file mode 100644
index 00000000..47a7d953
--- /dev/null
+++ b/assets/js/6476eba6.6289932b.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunktaskfile_dev=self.webpackChunktaskfile_dev||[]).push([[827],{3905:function(e,n,t){t.d(n,{Zo:function(){return d},kt:function(){return u}});var a=t(7294);function i(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function s(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}return t}function l(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?s(Object(t),!0).forEach((function(n){i(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):s(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function o(e,n){if(null==e)return{};var t,a,i=function(e,n){if(null==e)return{};var t,a,i={},s=Object.keys(e);for(a=0;a<s.length;a++)t=s[a],n.indexOf(t)>=0||(i[t]=e[t]);return i}(e,n);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(a=0;a<s.length;a++)t=s[a],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}var r=a.createContext({}),p=function(e){var n=a.useContext(r),t=n;return e&&(t="function"==typeof e?e(n):l(l({},n),e)),t},d=function(e){var n=p(e.components);return a.createElement(r.Provider,{value:n},e.children)},m={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},c=a.forwardRef((function(e,n){var t=e.components,i=e.mdxType,s=e.originalType,r=e.parentName,d=o(e,["components","mdxType","originalType","parentName"]),c=p(t),u=i,k=c["".concat(r,".").concat(u)]||c[u]||m[u]||s;return t?a.createElement(k,l(l({ref:n},d),{},{components:t})):a.createElement(k,l({ref:n},d))}));function u(e,n){var t=arguments,i=n&&n.mdxType;if("string"==typeof e||i){var s=t.length,l=new Array(s);l[0]=c;var o={};for(var r in n)hasOwnProperty.call(n,r)&&(o[r]=n[r]);o.originalType=e,o.mdxType="string"==typeof e?e:i,l[1]=o;for(var p=2;p<s;p++)l[p]=t[p];return a.createElement.apply(null,l)}return a.createElement.apply(null,t)}c.displayName="MDXCreateElement"},2175:function(e,n,t){t.r(n),t.d(n,{assets:function(){return d},contentTitle:function(){return r},default:function(){return u},frontMatter:function(){return o},metadata:function(){return p},toc:function(){return m}});var a=t(7462),i=t(3366),s=(t(7294),t(3905)),l=["components"],o={slug:"/usage/",sidebar_position:3},r="Usage",p={unversionedId:"usage",id:"usage",title:"Usage",description:"Getting started",source:"@site/docs/usage.md",sourceDirName:".",slug:"/usage/",permalink:"/usage/",draft:!1,tags:[],version:"current",sidebarPosition:3,frontMatter:{slug:"/usage/",sidebar_position:3},sidebar:"tutorialSidebar",previous:{title:"Installation",permalink:"/installation/"},next:{title:"API Reference",permalink:"/api/"}},d={},m=[{value:"Getting started",id:"getting-started",level:2},{value:"Supported file names",id:"supported-file-names",level:2},{value:"Environment variables",id:"environment-variables",level:2},{value:"Task",id:"task",level:3},{value:".env files",id:"env-files",level:3},{value:"Including other Taskfiles",id:"including-other-taskfiles",level:2},{value:"OS-specific Taskfiles",id:"os-specific-taskfiles",level:3},{value:"Directory of included Taskfile",id:"directory-of-included-taskfile",level:3},{value:"Optional includes",id:"optional-includes",level:3},{value:"Vars of included Taskfiles",id:"vars-of-included-taskfiles",level:3},{value:"Task directory",id:"task-directory",level:2},{value:"Task dependencies",id:"task-dependencies",level:2},{value:"Calling another task",id:"calling-another-task",level:2},{value:"Prevent unnecessary work",id:"prevent-unnecessary-work",level:2},{value:"By fingerprinting locally generated files and their sources",id:"by-fingerprinting-locally-generated-files-and-their-sources",level:3},{value:"Using programmatic checks to indicate a task is up to date.",id:"using-programmatic-checks-to-indicate-a-task-is-up-to-date",level:3},{value:"Using programmatic checks to cancel execution of an task and it&#39;s dependencies",id:"using-programmatic-checks-to-cancel-execution-of-an-task-and-its-dependencies",level:3},{value:"Limiting when tasks run",id:"limiting-when-tasks-run",level:3},{value:"Variables",id:"variables",level:2},{value:"Dynamic variables",id:"dynamic-variables",level:3},{value:"Forwarding CLI arguments to commands",id:"forwarding-cli-arguments-to-commands",level:2},{value:"Doing task cleanup with <code>defer</code>",id:"doing-task-cleanup-with-defer",level:2},{value:"Go&#39;s template engine",id:"gos-template-engine",level:2},{value:"Help",id:"help",level:2},{value:"Display summary of task",id:"display-summary-of-task",level:2},{value:"Overriding task name",id:"overriding-task-name",level:2},{value:"Silent mode",id:"silent-mode",level:2},{value:"Dry run mode",id:"dry-run-mode",level:2},{value:"Ignore errors",id:"ignore-errors",level:2},{value:"Output syntax",id:"output-syntax",level:2},{value:"Interactive CLI application",id:"interactive-cli-application",level:2},{value:"Short task syntax",id:"short-task-syntax",level:2},{value:"Watch tasks",id:"watch-tasks",level:2}],c={toc:m};function u(e){var n=e.components,t=(0,i.Z)(e,l);return(0,s.kt)("wrapper",(0,a.Z)({},c,t,{components:n,mdxType:"MDXLayout"}),(0,s.kt)("h1",{id:"usage"},"Usage"),(0,s.kt)("h2",{id:"getting-started"},"Getting started"),(0,s.kt)("p",null,"Create a file called ",(0,s.kt)("inlineCode",{parentName:"p"},"Taskfile.yml")," in the root of your project.\nThe ",(0,s.kt)("inlineCode",{parentName:"p"},"cmds")," attribute should contain the commands of a task.\nThe example below allows compiling a Go app and uses ",(0,s.kt)("a",{parentName:"p",href:"https://github.com/tdewolff/minify/tree/master/cmd/minify"},"Minify")," to concat\nand minify multiple CSS files into a single one."),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-yaml"},"version: '3'\n\ntasks:\n  build:\n    cmds:\n      - go build -v -i main.go\n\n  assets:\n    cmds:\n      - minify -o public/style.css src/css\n")),(0,s.kt)("p",null,"Running the tasks is as simple as running:"),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-bash"},"task assets build\n")),(0,s.kt)("p",null,"Task uses ",(0,s.kt)("a",{parentName:"p",href:"https://mvdan.cc/sh/"},"mvdan.cc/sh"),", a native Go sh\ninterpreter. So you can write sh/bash commands and it will work even on\nWindows, where ",(0,s.kt)("inlineCode",{parentName:"p"},"sh")," or ",(0,s.kt)("inlineCode",{parentName:"p"},"bash")," are usually not available. Just remember any\nexecutable called must be available by the OS or in PATH."),(0,s.kt)("p",null,'If you omit a task name, "default" will be assumed.'),(0,s.kt)("h2",{id:"supported-file-names"},"Supported file names"),(0,s.kt)("p",null,"Task will look for the following file names, in order of priority:"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},"Taskfile.yml"),(0,s.kt)("li",{parentName:"ul"},"Taskfile.yaml"),(0,s.kt)("li",{parentName:"ul"},"Taskfile.dist.yml"),(0,s.kt)("li",{parentName:"ul"},"Taskfile.dist.yaml")),(0,s.kt)("p",null,"The intention of having the ",(0,s.kt)("inlineCode",{parentName:"p"},".dist")," variants is to allow projects to have one\ncommitted version (",(0,s.kt)("inlineCode",{parentName:"p"},".dist"),") while still allowing individual users to override\nthe Taskfile by adding an additional ",(0,s.kt)("inlineCode",{parentName:"p"},"Taskfile.yml")," (which would be on\n",(0,s.kt)("inlineCode",{parentName:"p"},".gitignore"),")."),(0,s.kt)("h2",{id:"environment-variables"},"Environment variables"),(0,s.kt)("h3",{id:"task"},"Task"),(0,s.kt)("p",null,"You can use ",(0,s.kt)("inlineCode",{parentName:"p"},"env")," to set custom environment variables for a specific task:"),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-yaml"},"version: '3'\n\ntasks:\n  greet:\n    cmds:\n      - echo $GREETING\n    env:\n      GREETING: Hey, there!\n")),(0,s.kt)("p",null,"Additionally, you can set globally environment variables, that'll be available\nto all tasks:"),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-yaml"},"version: '3'\n\nenv:\n  GREETING: Hey, there!\n\ntasks:\n  greet:\n    cmds:\n      - echo $GREETING\n")),(0,s.kt)("div",{className:"admonition admonition-info alert alert--info"},(0,s.kt)("div",{parentName:"div",className:"admonition-heading"},(0,s.kt)("h5",{parentName:"div"},(0,s.kt)("span",{parentName:"h5",className:"admonition-icon"},(0,s.kt)("svg",{parentName:"span",xmlns:"http://www.w3.org/2000/svg",width:"14",height:"16",viewBox:"0 0 14 16"},(0,s.kt)("path",{parentName:"svg",fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"}))),"info")),(0,s.kt)("div",{parentName:"div",className:"admonition-content"},(0,s.kt)("p",{parentName:"div"},(0,s.kt)("inlineCode",{parentName:"p"},"env")," supports expansion and retrieving output from a shell command\njust like variables, as you can see on the ",(0,s.kt)("a",{parentName:"p",href:"#variables"},"Variables")," section."))),(0,s.kt)("h3",{id:"env-files"},".env files"),(0,s.kt)("p",null,"You can also ask Task to include ",(0,s.kt)("inlineCode",{parentName:"p"},".env")," like files by using the ",(0,s.kt)("inlineCode",{parentName:"p"},"dotenv:"),"\nsetting:"),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-bash",metastring:'title=".env"',title:'".env"'},"KEYNAME=VALUE\n")),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-bash",metastring:'title="testing/.env"',title:'"testing/.env"'},"ENDPOINT=testing.com\n")),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-yaml",metastring:'title="Taskfile.yml"',title:'"Taskfile.yml"'},"version: '3'\n\nenv:\n  ENV: testing\n\ndotenv: ['.env', '{{.ENV}}/.env.', '{{.HOME}}/.env']\n\ntasks:\n  greet:\n    cmds:\n      - echo \"Using $KEYNAME and endpoint $ENDPOINT\"\n")),(0,s.kt)("h2",{id:"including-other-taskfiles"},"Including other Taskfiles"),(0,s.kt)("p",null,"If you want to share tasks between different projects (Taskfiles), you can use\nthe importing mechanism to include other Taskfiles using the ",(0,s.kt)("inlineCode",{parentName:"p"},"includes")," keyword:"),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-yaml"},"version: '3'\n\nincludes:\n  docs: ./documentation # will look for ./documentation/Taskfile.yml\n  docker: ./DockerTasks.yml\n")),(0,s.kt)("p",null,"The tasks described in the given Taskfiles will be available with the informed\nnamespace. So, you'd call ",(0,s.kt)("inlineCode",{parentName:"p"},"task docs:serve")," to run the ",(0,s.kt)("inlineCode",{parentName:"p"},"serve")," task from\n",(0,s.kt)("inlineCode",{parentName:"p"},"documentation/Taskfile.yml")," or ",(0,s.kt)("inlineCode",{parentName:"p"},"task docker:build")," to run the ",(0,s.kt)("inlineCode",{parentName:"p"},"build")," task\nfrom the ",(0,s.kt)("inlineCode",{parentName:"p"},"DockerTasks.yml")," file."),(0,s.kt)("h3",{id:"os-specific-taskfiles"},"OS-specific Taskfiles"),(0,s.kt)("p",null,"With ",(0,s.kt)("inlineCode",{parentName:"p"},"version: '2'"),", task automatically includes any ",(0,s.kt)("inlineCode",{parentName:"p"},"Taskfile_{{OS}}.yml"),"\nif it exists (for example: ",(0,s.kt)("inlineCode",{parentName:"p"},"Taskfile_windows.yml"),", ",(0,s.kt)("inlineCode",{parentName:"p"},"Taskfile_linux.yml")," or\n",(0,s.kt)("inlineCode",{parentName:"p"},"Taskfile_darwin.yml"),"). Since this behavior was a bit too implicit, it\nwas removed on version 3, but you still can have a similar behavior by\nexplicitly importing these files:"),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-yaml"},"version: '3'\n\nincludes:\n  build: ./Taskfile_{{OS}}.yml\n")),(0,s.kt)("h3",{id:"directory-of-included-taskfile"},"Directory of included Taskfile"),(0,s.kt)("p",null,"By default, included Taskfile's tasks are ran in the current directory, even\nif the Taskfile is in another directory, but you can force its tasks to run\nin another directory by using this alternative syntax:"),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-yaml"},"version: '3'\n\nincludes:\n  docs:\n    taskfile: ./docs/Taskfile.yml\n    dir: ./docs\n")),(0,s.kt)("div",{className:"admonition admonition-info alert alert--info"},(0,s.kt)("div",{parentName:"div",className:"admonition-heading"},(0,s.kt)("h5",{parentName:"div"},(0,s.kt)("span",{parentName:"h5",className:"admonition-icon"},(0,s.kt)("svg",{parentName:"span",xmlns:"http://www.w3.org/2000/svg",width:"14",height:"16",viewBox:"0 0 14 16"},(0,s.kt)("path",{parentName:"svg",fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"}))),"info")),(0,s.kt)("div",{parentName:"div",className:"admonition-content"},(0,s.kt)("p",{parentName:"div"},"The included Taskfiles must be using the same schema version the main\nTaskfile uses."))),(0,s.kt)("h3",{id:"optional-includes"},"Optional includes"),(0,s.kt)("p",null,"Includes marked as optional will allow Task to continue execution as normal if\nthe included file is missing."),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-yaml"},"version: '3'\n\nincludes:\n  tests:\n    taskfile: ./tests/Taskfile.yml\n    optional: true\n\ntasks:\n  greet:\n    cmds:\n      - echo \"This command can still be successfully executed if ./tests/Taskfile.yml does not exist\"\n")),(0,s.kt)("h3",{id:"vars-of-included-taskfiles"},"Vars of included Taskfiles"),(0,s.kt)("p",null,"You can also specify variables when including a Taskfile. This may be useful\nfor having reusable Taskfile that can be tweaked or even included more than once:"),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-yaml"},"version: '3'\n\nincludes:\n  backend:\n    taskfile: ./taskfiles/Docker.yml\n    vars:\n      DOCKER_IMAGE: backend_image\n\n  frontend:\n    taskfile: ./taskfiles/Docker.yml\n    vars:\n      DOCKER_IMAGE: frontend_image\n")),(0,s.kt)("div",{className:"admonition admonition-info alert alert--info"},(0,s.kt)("div",{parentName:"div",className:"admonition-heading"},(0,s.kt)("h5",{parentName:"div"},(0,s.kt)("span",{parentName:"h5",className:"admonition-icon"},(0,s.kt)("svg",{parentName:"span",xmlns:"http://www.w3.org/2000/svg",width:"14",height:"16",viewBox:"0 0 14 16"},(0,s.kt)("path",{parentName:"svg",fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"}))),"info")),(0,s.kt)("div",{parentName:"div",className:"admonition-content"},(0,s.kt)("p",{parentName:"div"},"Vars declared in the included Taskfile have preference over the\nincluded ones! If you want a variable in an included Taskfile to be overridable\nuse the ",(0,s.kt)("a",{parentName:"p",href:"https://go-task.github.io/slim-sprig/defaults.html"},"default function"),":\n",(0,s.kt)("inlineCode",{parentName:"p"},"MY_VAR: '{{.MY_VAR | default \"my-default-value\"}}'"),"."))),(0,s.kt)("h2",{id:"task-directory"},"Task directory"),(0,s.kt)("p",null,"By default, tasks will be executed in the directory where the Taskfile is\nlocated. But you can easily make the task run in another folder informing\n",(0,s.kt)("inlineCode",{parentName:"p"},"dir"),":"),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-yaml"},"version: '3'\n\ntasks:\n  serve:\n    dir: public/www\n    cmds:\n      # run http server\n      - caddy\n")),(0,s.kt)("p",null,"If the directory doesn't exist, ",(0,s.kt)("inlineCode",{parentName:"p"},"task")," creates it."),(0,s.kt)("h2",{id:"task-dependencies"},"Task dependencies"),(0,s.kt)("blockquote",null,(0,s.kt)("p",{parentName:"blockquote"},"Dependencies run in parallel, so dependencies of a task shouldn't depend one\nanother. If you want to force tasks to run serially take a look at the\n",(0,s.kt)("a",{parentName:"p",href:"#calling-another-task"},"Calling Another Task")," section below.")),(0,s.kt)("p",null,"You may have tasks that depend on others. Just pointing them on ",(0,s.kt)("inlineCode",{parentName:"p"},"deps")," will\nmake them run automatically before running the parent task:"),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-yaml"},"version: '3'\n\ntasks:\n  build:\n    deps: [assets]\n    cmds:\n      - go build -v -i main.go\n\n  assets:\n    cmds:\n      - minify -o public/style.css src/css\n")),(0,s.kt)("p",null,"In the above example, ",(0,s.kt)("inlineCode",{parentName:"p"},"assets")," will always run right before ",(0,s.kt)("inlineCode",{parentName:"p"},"build")," if you run\n",(0,s.kt)("inlineCode",{parentName:"p"},"task build"),"."),(0,s.kt)("p",null,"A task can have only dependencies and no commands to group tasks together:"),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-yaml"},"version: '3'\n\ntasks:\n  assets:\n    deps: [js, css]\n\n  js:\n    cmds:\n      - minify -o public/script.js src/js\n\n  css:\n    cmds:\n      - minify -o public/style.css src/css\n")),(0,s.kt)("p",null,"If there is more than one dependency, they always run in parallel for better\nperformance."),(0,s.kt)("div",{className:"admonition admonition-tip alert alert--success"},(0,s.kt)("div",{parentName:"div",className:"admonition-heading"},(0,s.kt)("h5",{parentName:"div"},(0,s.kt)("span",{parentName:"h5",className:"admonition-icon"},(0,s.kt)("svg",{parentName:"span",xmlns:"http://www.w3.org/2000/svg",width:"12",height:"16",viewBox:"0 0 12 16"},(0,s.kt)("path",{parentName:"svg",fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"}))),"tip")),(0,s.kt)("div",{parentName:"div",className:"admonition-content"},(0,s.kt)("p",{parentName:"div"},"You can also make the tasks given by the command line run in parallel by\nusing the ",(0,s.kt)("inlineCode",{parentName:"p"},"--parallel")," flag (alias ",(0,s.kt)("inlineCode",{parentName:"p"},"-p"),"). Example: ",(0,s.kt)("inlineCode",{parentName:"p"},"task --parallel js css"),"."))),(0,s.kt)("p",null,"If you want to pass information to dependencies, you can do that the same\nmanner as you would to ",(0,s.kt)("a",{parentName:"p",href:"#calling-another-task"},"call another task"),":"),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-yaml"},'version: \'3\'\n\ntasks:\n  default:\n    deps:\n      - task: echo_sth\n        vars: {TEXT: "before 1"}\n      - task: echo_sth\n        vars: {TEXT: "before 2"}\n    cmds:\n      - echo "after"\n\n  echo_sth:\n    cmds:\n      - echo {{.TEXT}}\n')),(0,s.kt)("h2",{id:"calling-another-task"},"Calling another task"),(0,s.kt)("p",null,"When a task has many dependencies, they are executed concurrently. This will\noften result in a faster build pipeline. But in some situations you may need\nto call other tasks serially. In this case, just use the following syntax:"),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-yaml"},'version: \'3\'\n\ntasks:\n  main-task:\n    cmds:\n      - task: task-to-be-called\n      - task: another-task\n      - echo "Both done"\n\n  task-to-be-called:\n    cmds:\n      - echo "Task to be called"\n\n  another-task:\n    cmds:\n      - echo "Another task"\n')),(0,s.kt)("p",null,"Overriding variables in the called task is as simple as informing ",(0,s.kt)("inlineCode",{parentName:"p"},"vars"),"\nattribute:"),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-yaml"},'version: \'3\'\n\ntasks:\n  greet:\n    vars:\n      RECIPIENT: \'{{default "World" .RECIPIENT}}\'\n    cmds:\n      - echo "Hello, {{.RECIPIENT}}!"\n\n  greet-pessimistically:\n    cmds:\n      - task: greet\n        vars: {RECIPIENT: "Cruel World"}\n')),(0,s.kt)("p",null,"The above syntax is also supported in ",(0,s.kt)("inlineCode",{parentName:"p"},"deps"),"."),(0,s.kt)("div",{className:"admonition admonition-tip alert alert--success"},(0,s.kt)("div",{parentName:"div",className:"admonition-heading"},(0,s.kt)("h5",{parentName:"div"},(0,s.kt)("span",{parentName:"h5",className:"admonition-icon"},(0,s.kt)("svg",{parentName:"span",xmlns:"http://www.w3.org/2000/svg",width:"12",height:"16",viewBox:"0 0 12 16"},(0,s.kt)("path",{parentName:"svg",fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"}))),"tip")),(0,s.kt)("div",{parentName:"div",className:"admonition-content"},(0,s.kt)("p",{parentName:"div"},"NOTE: If you want to call a task declared in the root Taskfile from within an\n",(0,s.kt)("a",{parentName:"p",href:"#including-other-taskfiles"},"included Taskfile"),", add a leading ",(0,s.kt)("inlineCode",{parentName:"p"},":")," like this:\n",(0,s.kt)("inlineCode",{parentName:"p"},"task: :task-name"),"."))),(0,s.kt)("h2",{id:"prevent-unnecessary-work"},"Prevent unnecessary work"),(0,s.kt)("h3",{id:"by-fingerprinting-locally-generated-files-and-their-sources"},"By fingerprinting locally generated files and their sources"),(0,s.kt)("p",null,"If a task generates something, you can inform Task the source and generated\nfiles, so Task will prevent to run them if not necessary."),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-yaml"},"version: '3'\n\ntasks:\n  build:\n    deps: [js, css]\n    cmds:\n      - go build -v -i main.go\n\n  js:\n    cmds:\n      - minify -o public/script.js src/js\n    sources:\n      - src/js/**/*.js\n    generates:\n      - public/script.js\n\n  css:\n    cmds:\n      - minify -o public/style.css src/css\n    sources:\n      - src/css/**/*.css\n    generates:\n      - public/style.css\n")),(0,s.kt)("p",null,(0,s.kt)("inlineCode",{parentName:"p"},"sources")," and ",(0,s.kt)("inlineCode",{parentName:"p"},"generates")," can be files or file patterns. When given,\nTask will compare the checksum of the source files to determine if it's\nnecessary to run the task. If not, it will just print a message like\n",(0,s.kt)("inlineCode",{parentName:"p"},'Task "js" is up to date'),".\nYou will probably want to ignore the ",(0,s.kt)("inlineCode",{parentName:"p"},".task")," folder in your ",(0,s.kt)("inlineCode",{parentName:"p"},".gitignore")," file\n(It's there that Task stores the last checksum)."),(0,s.kt)("p",null,"If you prefer this check to be made by the modification timestamp of the files,\ninstead of its checksum (content), just set the ",(0,s.kt)("inlineCode",{parentName:"p"},"method")," property to ",(0,s.kt)("inlineCode",{parentName:"p"},"timestamp"),"."),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-yaml"},"version: '3'\n\ntasks:\n  build:\n    cmds:\n      - go build .\n    sources:\n      - ./*.go\n    generates:\n      - app{{exeExt}}\n    method: checksum\n")),(0,s.kt)("div",{className:"admonition admonition-info alert alert--info"},(0,s.kt)("div",{parentName:"div",className:"admonition-heading"},(0,s.kt)("h5",{parentName:"div"},(0,s.kt)("span",{parentName:"h5",className:"admonition-icon"},(0,s.kt)("svg",{parentName:"span",xmlns:"http://www.w3.org/2000/svg",width:"14",height:"16",viewBox:"0 0 14 16"},(0,s.kt)("path",{parentName:"svg",fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"}))),"info")),(0,s.kt)("div",{parentName:"div",className:"admonition-content"},(0,s.kt)("p",{parentName:"div"},"Each task has only one checksum stored for its ",(0,s.kt)("inlineCode",{parentName:"p"},"sources"),". If you want\nto distinguish a task by any of its input variables, you can add those\nvariables as part of the task's label and it will be considered a different\ntask."),(0,s.kt)("p",{parentName:"div"},"This is useful if you want to run a task once for each distinct set of\ninputs until the sources actually change. For example if the sources depend\non the value of a variable, or you want the task to rerun if some arguments\nchange even if the source hasn't."))),(0,s.kt)("div",{className:"admonition admonition-tip alert alert--success"},(0,s.kt)("div",{parentName:"div",className:"admonition-heading"},(0,s.kt)("h5",{parentName:"div"},(0,s.kt)("span",{parentName:"h5",className:"admonition-icon"},(0,s.kt)("svg",{parentName:"span",xmlns:"http://www.w3.org/2000/svg",width:"12",height:"16",viewBox:"0 0 12 16"},(0,s.kt)("path",{parentName:"svg",fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"}))),"tip")),(0,s.kt)("div",{parentName:"div",className:"admonition-content"},(0,s.kt)("p",{parentName:"div"},"The method ",(0,s.kt)("inlineCode",{parentName:"p"},"none")," skips any validation and always run the task."))),(0,s.kt)("div",{className:"admonition admonition-info alert alert--info"},(0,s.kt)("div",{parentName:"div",className:"admonition-heading"},(0,s.kt)("h5",{parentName:"div"},(0,s.kt)("span",{parentName:"h5",className:"admonition-icon"},(0,s.kt)("svg",{parentName:"span",xmlns:"http://www.w3.org/2000/svg",width:"14",height:"16",viewBox:"0 0 14 16"},(0,s.kt)("path",{parentName:"svg",fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"}))),"info")),(0,s.kt)("div",{parentName:"div",className:"admonition-content"},(0,s.kt)("p",{parentName:"div"},"For the ",(0,s.kt)("inlineCode",{parentName:"p"},"checksum")," (default) method to work, it's only necessary to\ninform the source files, but if you want to use the ",(0,s.kt)("inlineCode",{parentName:"p"},"timestamp")," method, you\nalso need to inform the generated files with ",(0,s.kt)("inlineCode",{parentName:"p"},"generates"),"."))),(0,s.kt)("h3",{id:"using-programmatic-checks-to-indicate-a-task-is-up-to-date"},"Using programmatic checks to indicate a task is up to date."),(0,s.kt)("p",null,"Alternatively, you can inform a sequence of tests as ",(0,s.kt)("inlineCode",{parentName:"p"},"status"),". If no error\nis returned (exit status 0), the task is considered up-to-date:"),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-yaml"},"version: '3'\n\ntasks:\n  generate-files:\n    cmds:\n      - mkdir directory\n      - touch directory/file1.txt\n      - touch directory/file2.txt\n    # test existence of files\n    status:\n      - test -d directory\n      - test -f directory/file1.txt\n      - test -f directory/file2.txt\n")),(0,s.kt)("p",null,"Normally, you would use ",(0,s.kt)("inlineCode",{parentName:"p"},"sources")," in combination with\n",(0,s.kt)("inlineCode",{parentName:"p"},"generates")," - but for tasks that generate remote artifacts (Docker images,\ndeploys, CD releases) the checksum source and timestamps require either\naccess to the artifact or for an out-of-band refresh of the ",(0,s.kt)("inlineCode",{parentName:"p"},".checksum"),"\nfingerprint file."),(0,s.kt)("p",null,"Two special variables ",(0,s.kt)("inlineCode",{parentName:"p"},"{{.CHECKSUM}}")," and ",(0,s.kt)("inlineCode",{parentName:"p"},"{{.TIMESTAMP}}")," are available\nfor interpolation within ",(0,s.kt)("inlineCode",{parentName:"p"},"status")," commands, depending on the method assigned\nto fingerprint the sources. Only ",(0,s.kt)("inlineCode",{parentName:"p"},"source")," globs are fingerprinted."),(0,s.kt)("p",null,"Note that the ",(0,s.kt)("inlineCode",{parentName:"p"},"{{.TIMESTAMP}}"),' variable is a "live" Go ',(0,s.kt)("inlineCode",{parentName:"p"},"time.Time")," struct, and\ncan be formatted using any of the methods that ",(0,s.kt)("inlineCode",{parentName:"p"},"time.Time")," responds to."),(0,s.kt)("p",null,"See ",(0,s.kt)("a",{parentName:"p",href:"https://golang.org/pkg/time/"},"the Go Time documentation")," for more information."),(0,s.kt)("p",null,"You can use ",(0,s.kt)("inlineCode",{parentName:"p"},"--force")," or ",(0,s.kt)("inlineCode",{parentName:"p"},"-f")," if you want to force a task to run even when\nup-to-date."),(0,s.kt)("p",null,"Also, ",(0,s.kt)("inlineCode",{parentName:"p"},"task --status [tasks]...")," will exit with a non-zero exit code if any of\nthe tasks are not up-to-date."),(0,s.kt)("h3",{id:"using-programmatic-checks-to-cancel-execution-of-an-task-and-its-dependencies"},"Using programmatic checks to cancel execution of an task and it's dependencies"),(0,s.kt)("p",null,"In addition to ",(0,s.kt)("inlineCode",{parentName:"p"},"status")," checks, there are also ",(0,s.kt)("inlineCode",{parentName:"p"},"preconditions")," checks, which are\nthe logical inverse of ",(0,s.kt)("inlineCode",{parentName:"p"},"status")," checks.  That is, if you need a certain set of\nconditions to be ",(0,s.kt)("em",{parentName:"p"},"true")," you can use the ",(0,s.kt)("inlineCode",{parentName:"p"},"preconditions")," stanza.\n",(0,s.kt)("inlineCode",{parentName:"p"},"preconditions")," are similar to ",(0,s.kt)("inlineCode",{parentName:"p"},"status")," lines except they support ",(0,s.kt)("inlineCode",{parentName:"p"},"sh"),"\nexpansion and they SHOULD all return 0."),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-yaml"},'version: \'3\'\n\ntasks:\n  generate-files:\n    cmds:\n      - mkdir directory\n      - touch directory/file1.txt\n      - touch directory/file2.txt\n    # test existence of files\n    preconditions:\n      - test -f .env\n      - sh: "[ 1 = 0 ]"\n        msg: "One doesn\'t equal Zero, Halting"\n')),(0,s.kt)("p",null,"Preconditions can set specific failure messages that can tell\na user what steps to take using the ",(0,s.kt)("inlineCode",{parentName:"p"},"msg")," field."),(0,s.kt)("p",null,"If a task has a dependency on a sub-task with a precondition, and that\nprecondition is not met - the calling task will fail.  Note that a task\nexecuted with a failing precondition will not run unless ",(0,s.kt)("inlineCode",{parentName:"p"},"--force")," is\ngiven."),(0,s.kt)("p",null,"Unlike ",(0,s.kt)("inlineCode",{parentName:"p"},"status")," which will skip a task if it is up to date, and continue\nexecuting tasks that depend on it, a ",(0,s.kt)("inlineCode",{parentName:"p"},"precondition")," will fail a task, along\nwith any other tasks that depend on it."),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-yaml"},'version: \'3\'\n\ntasks:\n  task-will-fail:\n    preconditions:\n      - sh: "exit 1"\n\n  task-will-also-fail:\n    deps:\n      - task-will-fail\n\n  task-will-still-fail:\n    cmds:\n      - task: task-will-fail\n      - echo "I will not run"\n')),(0,s.kt)("h3",{id:"limiting-when-tasks-run"},"Limiting when tasks run"),(0,s.kt)("p",null,"If a task executed by multiple ",(0,s.kt)("inlineCode",{parentName:"p"},"cmds")," or multiple ",(0,s.kt)("inlineCode",{parentName:"p"},"deps")," you can control\nwhen it is executed using ",(0,s.kt)("inlineCode",{parentName:"p"},"run"),". ",(0,s.kt)("inlineCode",{parentName:"p"},"run")," can also be set at the root\nof the Taskfile to change the behavior of all the tasks unless explicitly\noverridden."),(0,s.kt)("p",null,"Supported values for ",(0,s.kt)("inlineCode",{parentName:"p"},"run"),":"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("inlineCode",{parentName:"li"},"always")," (default) always attempt to invoke the task regardless of the\nnumber of previous executions"),(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("inlineCode",{parentName:"li"},"once")," only invoke this task once regardless of the number of references"),(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("inlineCode",{parentName:"li"},"when_changed")," only invokes the task once for each unique set of variables\npassed into the task")),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-yaml"},"version: '3'\n\ntasks:\n  default:\n    cmds:\n      - task: generate-file\n        vars: { CONTENT: '1' }\n      - task: generate-file\n        vars: { CONTENT: '2' }\n      - task: generate-file\n        vars: { CONTENT: '2' }\n\n  generate-file:\n    run: when_changed\n    deps:\n      - install-deps\n    cmds:\n      - echo {{.CONTENT}}\n\n  install-deps:\n    run: once\n    cmds:\n      - sleep 5 # long operation like installing packages\n")),(0,s.kt)("h2",{id:"variables"},"Variables"),(0,s.kt)("p",null,"When doing interpolation of variables, Task will look for the below.\nThey are listed below in order of importance (e.g. most important first):"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},"Variables declared in the task definition"),(0,s.kt)("li",{parentName:"ul"},"Variables given while calling a task from another\n(See ",(0,s.kt)("a",{parentName:"li",href:"#calling-another-task"},"Calling another task")," above)"),(0,s.kt)("li",{parentName:"ul"},"Variables of the ",(0,s.kt)("a",{parentName:"li",href:"#including-other-taskfiles"},"included Taskfile")," (when the task is included)"),(0,s.kt)("li",{parentName:"ul"},"Variables of the ",(0,s.kt)("a",{parentName:"li",href:"#vars-of-included-taskfiles"},"inclusion of the Taskfile")," (when the task is included)"),(0,s.kt)("li",{parentName:"ul"},"Global variables (those declared in the ",(0,s.kt)("inlineCode",{parentName:"li"},"vars:")," option in the Taskfile)"),(0,s.kt)("li",{parentName:"ul"},"Environment variables")),(0,s.kt)("p",null,"Example of sending parameters with environment variables:"),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-bash"},"$ TASK_VARIABLE=a-value task do-something\n")),(0,s.kt)("div",{className:"admonition admonition-tip alert alert--success"},(0,s.kt)("div",{parentName:"div",className:"admonition-heading"},(0,s.kt)("h5",{parentName:"div"},(0,s.kt)("span",{parentName:"h5",className:"admonition-icon"},(0,s.kt)("svg",{parentName:"span",xmlns:"http://www.w3.org/2000/svg",width:"12",height:"16",viewBox:"0 0 12 16"},(0,s.kt)("path",{parentName:"svg",fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"}))),"tip")),(0,s.kt)("div",{parentName:"div",className:"admonition-content"},(0,s.kt)("p",{parentName:"div"},"A special variable ",(0,s.kt)("inlineCode",{parentName:"p"},".TASK")," is always available containing the task name."))),(0,s.kt)("p",null,"Since some shells don't support above syntax to set environment variables\n(Windows) tasks also accepts a similar style when not in the beginning of\nthe command."),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-bash"},'$ task write-file FILE=file.txt "CONTENT=Hello, World!" print "MESSAGE=All done!"\n')),(0,s.kt)("p",null,"Example of locally declared vars:"),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-yaml"},"version: '3'\n\ntasks:\n  print-var:\n    cmds:\n      - echo \"{{.VAR}}\"\n    vars:\n      VAR: Hello!\n")),(0,s.kt)("p",null,"Example of global vars in a ",(0,s.kt)("inlineCode",{parentName:"p"},"Taskfile.yml"),":"),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-yaml"},"version: '3'\n\nvars:\n  GREETING: Hello from Taskfile!\n\ntasks:\n  greet:\n    cmds:\n      - echo \"{{.GREETING}}\"\n")),(0,s.kt)("h3",{id:"dynamic-variables"},"Dynamic variables"),(0,s.kt)("p",null,"The below syntax (",(0,s.kt)("inlineCode",{parentName:"p"},"sh:")," prop in a variable) is considered a dynamic variable.\nThe value will be treated as a command and the output assigned. If there is one\nor more trailing newlines, the last newline will be trimmed."),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-yaml"},"version: '3'\n\ntasks:\n  build:\n    cmds:\n      - go build -ldflags=\"-X main.Version={{.GIT_COMMIT}}\" main.go\n    vars:\n      GIT_COMMIT:\n        sh: git log -n 1 --format=%h\n")),(0,s.kt)("p",null,"This works for all types of variables."),(0,s.kt)("h2",{id:"forwarding-cli-arguments-to-commands"},"Forwarding CLI arguments to commands"),(0,s.kt)("p",null,"If ",(0,s.kt)("inlineCode",{parentName:"p"},"--")," is given in the CLI, all following parameters are added to a\nspecial ",(0,s.kt)("inlineCode",{parentName:"p"},".CLI_ARGS")," variable. This is useful to forward arguments to another\ncommand."),(0,s.kt)("p",null,"The below example will run ",(0,s.kt)("inlineCode",{parentName:"p"},"yarn install"),"."),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-bash"},"$ task yarn -- install\n")),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-yaml"},"version: '3'\n\ntasks:\n  yarn:\n    cmds:\n      - yarn {{.CLI_ARGS}}\n")),(0,s.kt)("h2",{id:"doing-task-cleanup-with-defer"},"Doing task cleanup with ",(0,s.kt)("inlineCode",{parentName:"h2"},"defer")),(0,s.kt)("p",null,"With the ",(0,s.kt)("inlineCode",{parentName:"p"},"defer")," keyword, it's possible to schedule cleanup to be run once\nthe task finishes. The difference with just putting it as the last command is\nthat this command will run even when the task fails."),(0,s.kt)("p",null,"In the example below ",(0,s.kt)("inlineCode",{parentName:"p"},"rm -rf tmpdir/")," will run even if the third command fails:"),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-yaml"},"version: '3'\n\ntasks:\n  default:\n    cmds:\n      - mkdir -p tmpdir/\n      - defer: rm -rf tmpdir/\n      - echo 'Do work on tmpdir/'\n")),(0,s.kt)("p",null,"If you want to move the cleanup command into another task, that's possible as\nwell:"),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-yaml"},"version: '3'\n\ntasks:\n  default:\n    cmds:\n      - mkdir -p tmpdir/\n      - defer: { task: cleanup }\n      - echo 'Do work on tmpdir/'\n\n  cleanup: rm -rf tmpdir/\n")),(0,s.kt)("div",{className:"admonition admonition-info alert alert--info"},(0,s.kt)("div",{parentName:"div",className:"admonition-heading"},(0,s.kt)("h5",{parentName:"div"},(0,s.kt)("span",{parentName:"h5",className:"admonition-icon"},(0,s.kt)("svg",{parentName:"span",xmlns:"http://www.w3.org/2000/svg",width:"14",height:"16",viewBox:"0 0 14 16"},(0,s.kt)("path",{parentName:"svg",fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"}))),"info")),(0,s.kt)("div",{parentName:"div",className:"admonition-content"},(0,s.kt)("p",{parentName:"div"},"Due to the nature of how the\n",(0,s.kt)("a",{parentName:"p",href:"https://go.dev/tour/flowcontrol/13"},"Go's own ",(0,s.kt)("inlineCode",{parentName:"a"},"defer")," work"),", the deferred\ncommands are executed in the reverse order if you schedule multiple of them."))),(0,s.kt)("h2",{id:"gos-template-engine"},"Go's template engine"),(0,s.kt)("p",null,"Task parse commands as ",(0,s.kt)("a",{parentName:"p",href:"https://golang.org/pkg/text/template/"},"Go's template engine")," before executing\nthem. Variables are accessible through dot syntax (",(0,s.kt)("inlineCode",{parentName:"p"},".VARNAME"),")."),(0,s.kt)("p",null,"All functions by the Go's ",(0,s.kt)("a",{parentName:"p",href:"https://go-task.github.io/slim-sprig/"},"slim-sprig lib"),"\nare available. The following example gets the current date in a given format:"),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-yaml"},"version: '3'\n\ntasks:\n  print-date:\n    cmds:\n      - echo {{now | date \"2006-01-02\"}}\n")),(0,s.kt)("p",null,"Task also adds the following functions:"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("inlineCode",{parentName:"li"},"OS"),': Returns operating system. Possible values are "windows", "linux",\n"darwin" (macOS) and "freebsd".'),(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("inlineCode",{parentName:"li"},"ARCH"),': return the architecture Task was compiled to: "386", "amd64", "arm"\nor "s390x".'),(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("inlineCode",{parentName:"li"},"splitLines"),": Splits Unix (\\n) and Windows (\\r\\n) styled newlines."),(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("inlineCode",{parentName:"li"},"catLines"),": Replaces Unix (\\n) and Windows (\\r\\n) styled newlines with a space."),(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("inlineCode",{parentName:"li"},"toSlash"),": Does nothing on Unix, but on Windows converts a string from ",(0,s.kt)("inlineCode",{parentName:"li"},"\\"),"\npath format to ",(0,s.kt)("inlineCode",{parentName:"li"},"/"),"."),(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("inlineCode",{parentName:"li"},"fromSlash"),": Opposite of ",(0,s.kt)("inlineCode",{parentName:"li"},"toSlash"),". Does nothing on Unix, but on Windows\nconverts a string from ",(0,s.kt)("inlineCode",{parentName:"li"},"/")," path format to ",(0,s.kt)("inlineCode",{parentName:"li"},"\\"),"."),(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("inlineCode",{parentName:"li"},"exeExt"),": Returns the right executable extension for the current OS\n(",(0,s.kt)("inlineCode",{parentName:"li"},'".exe"')," for Windows, ",(0,s.kt)("inlineCode",{parentName:"li"},'""')," for others)."),(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("inlineCode",{parentName:"li"},"shellQuote"),": Quotes a string to make it safe for use in shell scripts.\nTask uses ",(0,s.kt)("a",{parentName:"li",href:"https://pkg.go.dev/mvdan.cc/sh/v3@v3.4.0/syntax#Quote"},"this Go function"),"\nfor this. The Bash dialect is assumed.")),(0,s.kt)("p",null,"Example:"),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-yaml"},"version: '3'\n\ntasks:\n  print-os:\n    cmds:\n      - echo '{{OS}} {{ARCH}}'\n      - echo '{{if eq OS \"windows\"}}windows-command{{else}}unix-command{{end}}'\n      # This will be path/to/file on Unix but path\\to\\file on Windows\n      - echo '{{fromSlash \"path/to/file\"}}'\n  enumerated-file:\n    vars:\n      CONTENT: |\n        foo\n        bar\n    cmds:\n      - |\n        cat << EOF > output.txt\n        {{range $i, $line := .CONTENT | splitLines -}}\n        {{printf \"%3d\" $i}}: {{$line}}\n        {{end}}EOF\n")),(0,s.kt)("h2",{id:"help"},"Help"),(0,s.kt)("p",null,"Running ",(0,s.kt)("inlineCode",{parentName:"p"},"task --list")," (or ",(0,s.kt)("inlineCode",{parentName:"p"},"task -l"),") lists all tasks with a description.\nThe following Taskfile:"),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-yaml"},"version: '3'\n\ntasks:\n  build:\n    desc: Build the go binary.\n    cmds:\n      - go build -v -i main.go\n\n  test:\n    desc: Run all the go tests.\n    cmds:\n      - go test -race ./...\n\n  js:\n    cmds:\n      - minify -o public/script.js src/js\n\n  css:\n    cmds:\n      - minify -o public/style.css src/css\n")),(0,s.kt)("p",null,"would print the following output:"),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-bash"},"* build:   Build the go binary.\n* test:    Run all the go tests.\n")),(0,s.kt)("p",null,"If you want to see all tasks, there's a ",(0,s.kt)("inlineCode",{parentName:"p"},"--list-all")," (alias ",(0,s.kt)("inlineCode",{parentName:"p"},"-a"),") flag as well."),(0,s.kt)("h2",{id:"display-summary-of-task"},"Display summary of task"),(0,s.kt)("p",null,"Running ",(0,s.kt)("inlineCode",{parentName:"p"},"task --summary task-name")," will show a summary of a task.\nThe following Taskfile:"),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-yaml"},"version: '3'\n\ntasks:\n  release:\n    deps: [build]\n    summary: |\n      Release your project to github\n\n      It will build your project before starting the release.\n      Please make sure that you have set GITHUB_TOKEN before starting.\n    cmds:\n      - your-release-tool\n\n  build:\n    cmds:\n      - your-build-tool\n")),(0,s.kt)("p",null,"with running ",(0,s.kt)("inlineCode",{parentName:"p"},"task --summary release")," would print the following output:"),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre"},"task: release\n\nRelease your project to github\n\nIt will build your project before starting the release.\nPlease make sure that you have set GITHUB_TOKEN before starting.\n\ndependencies:\n - build\n\ncommands:\n - your-release-tool\n")),(0,s.kt)("p",null,"If a summary is missing, the description will be printed.\nIf the task does not have a summary or a description, a warning is printed."),(0,s.kt)("p",null,"Please note: ",(0,s.kt)("em",{parentName:"p"},"showing the summary will not execute the command"),"."),(0,s.kt)("h2",{id:"overriding-task-name"},"Overriding task name"),(0,s.kt)("p",null,"Sometimes you may want to override the task name print on summary, up-to-date\nmessages to STDOUT, etc. In this case you can just set ",(0,s.kt)("inlineCode",{parentName:"p"},"label:"),", which can also\nbe interpolated with variables:"),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-yaml"},"version: '3'\n\ntasks:\n  default:\n    - task: print\n      vars:\n        MESSAGE: hello\n    - task: print\n      vars:\n        MESSAGE: world\n\n  print:\n    label: 'print-{{.MESSAGE}}'\n    cmds:\n      - echo \"{{.MESSAGE}}\"\n")),(0,s.kt)("h2",{id:"silent-mode"},"Silent mode"),(0,s.kt)("p",null,"Silent mode disables echoing of commands before Task runs it.\nFor the following Taskfile:"),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-yaml"},"version: '3'\n\ntasks:\n  echo:\n    cmds:\n      - echo \"Print something\"\n")),(0,s.kt)("p",null,"Normally this will be print:"),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-sh"},'echo "Print something"\nPrint something\n')),(0,s.kt)("p",null,"With silent mode on, the below will be print instead:"),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-sh"},"Print something\n")),(0,s.kt)("p",null,"There are four ways to enable silent mode:"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},"At command level:")),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-yaml"},"version: '3'\n\ntasks:\n  echo:\n    cmds:\n      - cmd: echo \"Print something\"\n        silent: true\n")),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},"At task level:")),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-yaml"},"version: '3'\n\ntasks:\n  echo:\n    cmds:\n      - echo \"Print something\"\n    silent: true\n")),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},"Globally at Taskfile level:")),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-yaml"},"version: '3'\n\nsilent: true\n\ntasks:\n  echo:\n    cmds:\n      - echo \"Print something\"\n")),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},"Or globally with ",(0,s.kt)("inlineCode",{parentName:"li"},"--silent")," or ",(0,s.kt)("inlineCode",{parentName:"li"},"-s")," flag")),(0,s.kt)("p",null,"If you want to suppress STDOUT instead, just redirect a command to ",(0,s.kt)("inlineCode",{parentName:"p"},"/dev/null"),":"),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-yaml"},"version: '3'\n\ntasks:\n  echo:\n    cmds:\n      - echo \"This will print nothing\" > /dev/null\n")),(0,s.kt)("h2",{id:"dry-run-mode"},"Dry run mode"),(0,s.kt)("p",null,"Dry run mode (",(0,s.kt)("inlineCode",{parentName:"p"},"--dry"),") compiles and steps through each task, printing the commands\nthat would be run without executing them. This is useful for debugging your Taskfiles."),(0,s.kt)("h2",{id:"ignore-errors"},"Ignore errors"),(0,s.kt)("p",null,"You have the option to ignore errors during command execution.\nGiven the following Taskfile:"),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-yaml"},"version: '3'\n\ntasks:\n  echo:\n    cmds:\n      - exit 1\n      - echo \"Hello World\"\n")),(0,s.kt)("p",null,"Task will abort the execution after running ",(0,s.kt)("inlineCode",{parentName:"p"},"exit 1")," because the status code ",(0,s.kt)("inlineCode",{parentName:"p"},"1")," stands for ",(0,s.kt)("inlineCode",{parentName:"p"},"EXIT_FAILURE"),".\nHowever it is possible to continue with execution using ",(0,s.kt)("inlineCode",{parentName:"p"},"ignore_error"),":"),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-yaml"},"version: '3'\n\ntasks:\n  echo:\n    cmds:\n      - cmd: exit 1\n        ignore_error: true\n      - echo \"Hello World\"\n")),(0,s.kt)("p",null,(0,s.kt)("inlineCode",{parentName:"p"},"ignore_error")," can also be set for a task, which mean errors will be suppressed\nfor all commands. But keep in mind this option won't propagate to other tasks\ncalled either by ",(0,s.kt)("inlineCode",{parentName:"p"},"deps")," or ",(0,s.kt)("inlineCode",{parentName:"p"},"cmds"),"!"),(0,s.kt)("h2",{id:"output-syntax"},"Output syntax"),(0,s.kt)("p",null,"By default, Task just redirect the STDOUT and STDERR of the running commands\nto the shell in real time. This is good for having live feedback for log\nprinted by commands, but the output can become messy if you have multiple\ncommands running at the same time and printing lots of stuff."),(0,s.kt)("p",null,"To make this more customizable, there are currently three different output\noptions you can choose:"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("inlineCode",{parentName:"li"},"interleaved")," (default)"),(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("inlineCode",{parentName:"li"},"group")),(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("inlineCode",{parentName:"li"},"prefixed"))),(0,s.kt)("p",null,"To choose another one, just set it to root in the Taskfile:"),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-yaml"},"version: '3'\n\noutput: 'group'\n\ntasks:\n  # ...\n")),(0,s.kt)("p",null,"The ",(0,s.kt)("inlineCode",{parentName:"p"},"group")," output will print the entire output of a command once, after it\nfinishes, so you won't have live feedback for commands that take a long time\nto run."),(0,s.kt)("p",null,"When using the ",(0,s.kt)("inlineCode",{parentName:"p"},"group")," output, you can optionally provide a templated message\nto print at the start and end of the group. This can be useful for instructing\nCI systems to group all of the output for a given task, such as with\n",(0,s.kt)("a",{parentName:"p",href:"https://docs.github.com/en/actions/learn-github-actions/workflow-commands-for-github-actions#grouping-log-lines"},"GitHub Actions' ",(0,s.kt)("inlineCode",{parentName:"a"},"::group::")," command"),"\nor ",(0,s.kt)("a",{parentName:"p",href:"https://docs.microsoft.com/en-us/azure/devops/pipelines/scripts/logging-commands?expand=1&view=azure-devops&tabs=bash#formatting-commands"},"Azure Pipelines"),"."),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-yaml"},"version: '3'\n\noutput:\n  group:\n    begin: '::begin::{{.TASK}}'\n    end: '::endgroup::'\n\ntasks:\n  default:\n    cmds:\n      - echo 'Hello, World!'\n    silent: true\n")),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-bash"},"$ task default\n::begin::default\nHello, World!\n::endgroup::\n")),(0,s.kt)("p",null,"The ",(0,s.kt)("inlineCode",{parentName:"p"},"prefix")," output will prefix every line printed by a command with\n",(0,s.kt)("inlineCode",{parentName:"p"},"[task-name] ")," as the prefix, but you can customize the prefix for a command\nwith the ",(0,s.kt)("inlineCode",{parentName:"p"},"prefix:")," attribute:"),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-yaml"},'version: \'3\'\n\noutput: prefixed\n\ntasks:\n default:\n   deps:\n     - task: print\n       vars: {TEXT: foo}\n     - task: print\n       vars: {TEXT: bar}\n     - task: print\n       vars: {TEXT: baz}\n\n print:\n   cmds:\n     - echo "{{.TEXT}}"\n   prefix: "print-{{.TEXT}}"\n   silent: true\n')),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-bash"},"$ task default\n[print-foo] foo\n[print-bar] bar\n[print-baz] baz\n")),(0,s.kt)("div",{className:"admonition admonition-tip alert alert--success"},(0,s.kt)("div",{parentName:"div",className:"admonition-heading"},(0,s.kt)("h5",{parentName:"div"},(0,s.kt)("span",{parentName:"h5",className:"admonition-icon"},(0,s.kt)("svg",{parentName:"span",xmlns:"http://www.w3.org/2000/svg",width:"12",height:"16",viewBox:"0 0 12 16"},(0,s.kt)("path",{parentName:"svg",fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"}))),"tip")),(0,s.kt)("div",{parentName:"div",className:"admonition-content"},(0,s.kt)("p",{parentName:"div"},"The ",(0,s.kt)("inlineCode",{parentName:"p"},"output")," option can also be specified by the ",(0,s.kt)("inlineCode",{parentName:"p"},"--output")," or ",(0,s.kt)("inlineCode",{parentName:"p"},"-o")," flags."))),(0,s.kt)("h2",{id:"interactive-cli-application"},"Interactive CLI application"),(0,s.kt)("p",null,"When running interactive CLI applications inside Task they can sometimes behave\nweirdly, specially when the ",(0,s.kt)("a",{parentName:"p",href:"#output-syntax"},"output mode")," is set to something\nother than ",(0,s.kt)("inlineCode",{parentName:"p"},"interleaved")," (the default), or when interactive apps are ran in\nparallel with other tasks."),(0,s.kt)("p",null,"The ",(0,s.kt)("inlineCode",{parentName:"p"},"interactive: true")," tells Task this is an interactive application, and Task\nwill try to optimize for it:"),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-yaml"},"version: '3'\n\ntasks:\n  default:\n    cmds:\n      - vim my-file.txt\n    interactive: true\n")),(0,s.kt)("p",null,"If you still have problem running an interactive app through Task, please open\nan issue about it."),(0,s.kt)("h2",{id:"short-task-syntax"},"Short task syntax"),(0,s.kt)("p",null,"Starting on Task v3, you can now write tasks with a shorter syntax if they\nhave the default settings (e.g. no custom ",(0,s.kt)("inlineCode",{parentName:"p"},"env:"),", ",(0,s.kt)("inlineCode",{parentName:"p"},"vars:"),", ",(0,s.kt)("inlineCode",{parentName:"p"},"desc:"),", ",(0,s.kt)("inlineCode",{parentName:"p"},"silent:")," , etc):"),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-yaml"},"version: '3'\n\ntasks:\n  build: go build -v -o ./app{{exeExt}} .\n\n  run:\n    - task: build\n    - ./app{{exeExt}} -h localhost -p 8080\n")),(0,s.kt)("h2",{id:"watch-tasks"},"Watch tasks"),(0,s.kt)("p",null,"With the flags ",(0,s.kt)("inlineCode",{parentName:"p"},"--watch")," or ",(0,s.kt)("inlineCode",{parentName:"p"},"-w")," task will watch for file changes\nand run the task again. This requires the ",(0,s.kt)("inlineCode",{parentName:"p"},"sources")," attribute to be given,\nso task knows which files to watch."))}u.isMDXComponent=!0}}]);
\ No newline at end of file
diff --git a/assets/js/7d415946.89adb532.js b/assets/js/7d415946.d16538a2.js
similarity index 86%
rename from assets/js/7d415946.89adb532.js
rename to assets/js/7d415946.d16538a2.js
index 9f6e4471..f75290aa 100644
--- a/assets/js/7d415946.89adb532.js
+++ b/assets/js/7d415946.d16538a2.js
@@ -1 +1 @@
-"use strict";(self.webpackChunktaskfile_dev=self.webpackChunktaskfile_dev||[]).push([[705],{3905:function(e,t,n){n.d(t,{Zo:function(){return u},kt:function(){return h}});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=r.createContext({}),p=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},u=function(e){var t=p(e.components);return r.createElement(l.Provider,{value:t},e.children)},c={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},f=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),f=p(n),h=a,m=f["".concat(l,".").concat(h)]||f[h]||c[h]||o;return n?r.createElement(m,i(i({ref:t},u),{},{components:n})):r.createElement(m,i({ref:t},u))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=f;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s.mdxType="string"==typeof e?e:a,i[1]=s;for(var p=2;p<o;p++)i[p]=n[p];return r.createElement.apply(null,i)}return r.createElement.apply(null,n)}f.displayName="MDXCreateElement"},8134:function(e,t,n){n.r(t),n.d(t,{assets:function(){return u},contentTitle:function(){return l},default:function(){return h},frontMatter:function(){return s},metadata:function(){return p},toc:function(){return c}});var r=n(7462),a=n(3366),o=(n(7294),n(3905)),i=["components"],s={slug:"/releasing/",sidebar_position:6},l="Releasing",p={unversionedId:"releasing",id:"releasing",title:"Releasing",description:"The release process of Task is done with the help of",source:"@site/docs/releasing.md",sourceDirName:".",slug:"/releasing/",permalink:"/releasing/",draft:!1,tags:[],version:"current",sidebarPosition:6,frontMatter:{slug:"/releasing/",sidebar_position:6},sidebar:"tutorialSidebar",previous:{title:"Changelog",permalink:"/changelog/"},next:{title:"Taskfile Versions",permalink:"/taskfile-versions/"}},u={},c=[],f={toc:c};function h(e){var t=e.components,n=(0,a.Z)(e,i);return(0,o.kt)("wrapper",(0,r.Z)({},f,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"releasing"},"Releasing"),(0,o.kt)("p",null,"The release process of Task is done with the help of\n",(0,o.kt)("a",{parentName:"p",href:"https://goreleaser.com/"},"GoReleaser"),". You can test the release process locally by calling\nthe ",(0,o.kt)("inlineCode",{parentName:"p"},"test-release")," task of the Taskfile."),(0,o.kt)("p",null,(0,o.kt)("a",{parentName:"p",href:"https://github.com/go-task/task/actions"},"GitHub Actions")," should release\nartifacts automatically when a new Git tag is pushed to master\n(raw executables and DEB and RPM packages)."),(0,o.kt)("h1",{id:"homebrew"},"Homebrew"),(0,o.kt)("p",null,"To release a new version on the ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/go-task/homebrew-tap"},"Homebrew tap")," edit the\n",(0,o.kt)("a",{parentName:"p",href:"https://github.com/go-task/homebrew-tap/blob/master/Formula/go-task.rb"},"Formula/go-task.rb")," file, updating with the new version, download\nURL and sha256."),(0,o.kt)("h1",{id:"snapcraft"},"Snapcraft"),(0,o.kt)("p",null,"The exception is the publishing of a new version of the\n",(0,o.kt)("a",{parentName:"p",href:"https://github.com/go-task/snap"},"snap package"),". This current require two steps after publishing\nthe binaries:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Updating the current version on ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/go-task/snap/blob/master/snap/snapcraft.yaml#L2"},"snapcraft.yaml"),";"),(0,o.kt)("li",{parentName:"ul"},"Moving both ",(0,o.kt)("inlineCode",{parentName:"li"},"i386")," and ",(0,o.kt)("inlineCode",{parentName:"li"},"amd64")," new artifacts to the stable channel on\nthe ",(0,o.kt)("a",{parentName:"li",href:"https://snapcraft.io/task/releases"},"Snapcraft dashboard"))),(0,o.kt)("h1",{id:"scoop"},"Scoop"),(0,o.kt)("p",null,"Scoop is a community owned installation method. Scoop owners usually take care\nof updating versions there by editing\n",(0,o.kt)("a",{parentName:"p",href:"https://github.com/lukesampson/scoop-extras/blob/master/bucket/task.json"},"this file"),".\nIf you think its Task version is outdated, open an issue to let us know."),(0,o.kt)("h1",{id:"nix"},"Nix"),(0,o.kt)("p",null,"Nix is a community owned installation method. Nix package maintainers usually take care\nof updating versions there by editing\n",(0,o.kt)("a",{parentName:"p",href:"https://github.com/NixOS/nixpkgs/blob/nixos-unstable/pkgs/development/tools/go-task/default.nix"},"this file"),".\nIf you think its Task version is outdated, open an issue to let us know."))}h.isMDXComponent=!0}}]);
\ No newline at end of file
+"use strict";(self.webpackChunktaskfile_dev=self.webpackChunktaskfile_dev||[]).push([[705],{3905:function(e,t,n){n.d(t,{Zo:function(){return u},kt:function(){return m}});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=r.createContext({}),p=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},u=function(e){var t=p(e.components);return r.createElement(l.Provider,{value:t},e.children)},c={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},f=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),f=p(n),m=a,h=f["".concat(l,".").concat(m)]||f[m]||c[m]||o;return n?r.createElement(h,i(i({ref:t},u),{},{components:n})):r.createElement(h,i({ref:t},u))}));function m(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=f;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s.mdxType="string"==typeof e?e:a,i[1]=s;for(var p=2;p<o;p++)i[p]=n[p];return r.createElement.apply(null,i)}return r.createElement.apply(null,n)}f.displayName="MDXCreateElement"},8134:function(e,t,n){n.r(t),n.d(t,{assets:function(){return u},contentTitle:function(){return l},default:function(){return m},frontMatter:function(){return s},metadata:function(){return p},toc:function(){return c}});var r=n(7462),a=n(3366),o=(n(7294),n(3905)),i=["components"],s={slug:"/releasing/",sidebar_position:7},l="Releasing",p={unversionedId:"releasing",id:"releasing",title:"Releasing",description:"The release process of Task is done with the help of",source:"@site/docs/releasing.md",sourceDirName:".",slug:"/releasing/",permalink:"/releasing/",draft:!1,tags:[],version:"current",sidebarPosition:7,frontMatter:{slug:"/releasing/",sidebar_position:7},sidebar:"tutorialSidebar",previous:{title:"Community",permalink:"/community/"},next:{title:"Taskfile Versions",permalink:"/taskfile-versions/"}},u={},c=[],f={toc:c};function m(e){var t=e.components,n=(0,a.Z)(e,i);return(0,o.kt)("wrapper",(0,r.Z)({},f,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"releasing"},"Releasing"),(0,o.kt)("p",null,"The release process of Task is done with the help of\n",(0,o.kt)("a",{parentName:"p",href:"https://goreleaser.com/"},"GoReleaser"),". You can test the release process locally by calling\nthe ",(0,o.kt)("inlineCode",{parentName:"p"},"test-release")," task of the Taskfile."),(0,o.kt)("p",null,(0,o.kt)("a",{parentName:"p",href:"https://github.com/go-task/task/actions"},"GitHub Actions")," should release\nartifacts automatically when a new Git tag is pushed to master\n(raw executables and DEB and RPM packages)."),(0,o.kt)("h1",{id:"homebrew"},"Homebrew"),(0,o.kt)("p",null,"To release a new version on the ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/go-task/homebrew-tap"},"Homebrew tap")," edit the\n",(0,o.kt)("a",{parentName:"p",href:"https://github.com/go-task/homebrew-tap/blob/master/Formula/go-task.rb"},"Formula/go-task.rb")," file, updating with the new version, download\nURL and sha256."),(0,o.kt)("h1",{id:"snapcraft"},"Snapcraft"),(0,o.kt)("p",null,"The exception is the publishing of a new version of the\n",(0,o.kt)("a",{parentName:"p",href:"https://github.com/go-task/snap"},"snap package"),". This current require two steps after publishing\nthe binaries:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Updating the current version on ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/go-task/snap/blob/master/snap/snapcraft.yaml#L2"},"snapcraft.yaml"),";"),(0,o.kt)("li",{parentName:"ul"},"Moving both ",(0,o.kt)("inlineCode",{parentName:"li"},"i386")," and ",(0,o.kt)("inlineCode",{parentName:"li"},"amd64")," new artifacts to the stable channel on\nthe ",(0,o.kt)("a",{parentName:"li",href:"https://snapcraft.io/task/releases"},"Snapcraft dashboard"))),(0,o.kt)("h1",{id:"scoop"},"Scoop"),(0,o.kt)("p",null,"Scoop is a community owned installation method. Scoop owners usually take care\nof updating versions there by editing\n",(0,o.kt)("a",{parentName:"p",href:"https://github.com/lukesampson/scoop-extras/blob/master/bucket/task.json"},"this file"),".\nIf you think its Task version is outdated, open an issue to let us know."),(0,o.kt)("h1",{id:"nix"},"Nix"),(0,o.kt)("p",null,"Nix is a community owned installation method. Nix package maintainers usually take care\nof updating versions there by editing\n",(0,o.kt)("a",{parentName:"p",href:"https://github.com/NixOS/nixpkgs/blob/nixos-unstable/pkgs/development/tools/go-task/default.nix"},"this file"),".\nIf you think its Task version is outdated, open an issue to let us know."))}m.isMDXComponent=!0}}]);
\ No newline at end of file
diff --git a/assets/js/935f2afb.dd36ec53.js b/assets/js/935f2afb.dd36ec53.js
deleted file mode 100644
index 0feae5a7..00000000
--- a/assets/js/935f2afb.dd36ec53.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunktaskfile_dev=self.webpackChunktaskfile_dev||[]).push([[53],{1109:function(e){e.exports=JSON.parse('{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"tutorialSidebar":[{"type":"link","label":"Home","href":"/","docId":"intro"},{"type":"link","label":"Installation","href":"/installation/","docId":"installation"},{"type":"link","label":"Usage","href":"/usage/","docId":"usage"},{"type":"link","label":"Styleguide","href":"/styleguide/","docId":"styleguide"},{"type":"link","label":"Community","href":"/community/","docId":"community"},{"type":"link","label":"Changelog","href":"/changelog/","docId":"changelog"},{"type":"link","label":"Releasing","href":"/releasing/","docId":"releasing"},{"type":"link","label":"Taskfile Versions","href":"/taskfile-versions/","docId":"taskfile_versions"},{"type":"link","label":"Donate","href":"/donate/","docId":"donate"},{"type":"html","value":"<div id=\\"sidebar-ads\\"></div>"}]},"docs":{"changelog":{"id":"changelog","title":"Changelog","description":"v3.12.1 - 2022-05-10","sidebar":"tutorialSidebar"},"community":{"id":"community","title":"Community","description":"Some of the work to improve the Task ecosystem is done by the community, be","sidebar":"tutorialSidebar"},"donate":{"id":"donate","title":"Donate","description":"If you find this project useful, you can consider donating by using one of the","sidebar":"tutorialSidebar"},"installation":{"id":"installation","title":"Installation","description":"Task offers many installation methods. Check out the available methods below.","sidebar":"tutorialSidebar"},"intro":{"id":"intro","title":"Home","description":"Task is a task runner / build tool that aims to be simpler and easier to use","sidebar":"tutorialSidebar"},"releasing":{"id":"releasing","title":"Releasing","description":"The release process of Task is done with the help of","sidebar":"tutorialSidebar"},"styleguide":{"id":"styleguide","title":"Styleguide","description":"This is the official Task styleguide for Taskfile.yml files. This guide","sidebar":"tutorialSidebar"},"taskfile_versions":{"id":"taskfile_versions","title":"Taskfile Versions","description":"The Taskfile syntax and features changed with time. This document explains what","sidebar":"tutorialSidebar"},"usage":{"id":"usage","title":"Usage","description":"Getting started","sidebar":"tutorialSidebar"}}}')}}]);
\ No newline at end of file
diff --git a/assets/js/935f2afb.eb0fa274.js b/assets/js/935f2afb.eb0fa274.js
new file mode 100644
index 00000000..2927860a
--- /dev/null
+++ b/assets/js/935f2afb.eb0fa274.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunktaskfile_dev=self.webpackChunktaskfile_dev||[]).push([[53],{1109:function(e){e.exports=JSON.parse('{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"tutorialSidebar":[{"type":"link","label":"Home","href":"/","docId":"intro"},{"type":"link","label":"Installation","href":"/installation/","docId":"installation"},{"type":"link","label":"Usage","href":"/usage/","docId":"usage"},{"type":"link","label":"API Reference","href":"/api/","docId":"api_reference"},{"type":"link","label":"Styleguide","href":"/styleguide/","docId":"styleguide"},{"type":"link","label":"Changelog","href":"/changelog/","docId":"changelog"},{"type":"link","label":"Community","href":"/community/","docId":"community"},{"type":"link","label":"Releasing","href":"/releasing/","docId":"releasing"},{"type":"link","label":"Taskfile Versions","href":"/taskfile-versions/","docId":"taskfile_versions"},{"type":"link","label":"Donate","href":"/donate/","docId":"donate"},{"type":"html","value":"<div id=\\"sidebar-ads\\"></div>"}]},"docs":{"api_reference":{"id":"api_reference","title":"API Reference","description":"CLI","sidebar":"tutorialSidebar"},"changelog":{"id":"changelog","title":"Changelog","description":"v3.12.1 - 2022-05-10","sidebar":"tutorialSidebar"},"community":{"id":"community","title":"Community","description":"Some of the work to improve the Task ecosystem is done by the community, be","sidebar":"tutorialSidebar"},"donate":{"id":"donate","title":"Donate","description":"If you find this project useful, you can consider donating by using one of the","sidebar":"tutorialSidebar"},"installation":{"id":"installation","title":"Installation","description":"Task offers many installation methods. Check out the available methods below.","sidebar":"tutorialSidebar"},"intro":{"id":"intro","title":"Home","description":"Task is a task runner / build tool that aims to be simpler and easier to use","sidebar":"tutorialSidebar"},"releasing":{"id":"releasing","title":"Releasing","description":"The release process of Task is done with the help of","sidebar":"tutorialSidebar"},"styleguide":{"id":"styleguide","title":"Styleguide","description":"This is the official Task styleguide for Taskfile.yml files. This guide","sidebar":"tutorialSidebar"},"taskfile_versions":{"id":"taskfile_versions","title":"Taskfile Versions","description":"The Taskfile syntax and features changed with time. This document explains what","sidebar":"tutorialSidebar"},"usage":{"id":"usage","title":"Usage","description":"Getting started","sidebar":"tutorialSidebar"}}}')}}]);
\ No newline at end of file
diff --git a/assets/js/9beb87c2.1ad0c845.js b/assets/js/9beb87c2.1ad0c845.js
new file mode 100644
index 00000000..b82d9ddf
--- /dev/null
+++ b/assets/js/9beb87c2.1ad0c845.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunktaskfile_dev=self.webpackChunktaskfile_dev||[]).push([[80],{3905:function(e,t,a){a.d(t,{Zo:function(){return k},kt:function(){return h}});var i=a(7294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,i)}return a}function s(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?l(Object(a),!0).forEach((function(t){n(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):l(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function r(e,t){if(null==e)return{};var a,i,n=function(e,t){if(null==e)return{};var a,i,n={},l=Object.keys(e);for(i=0;i<l.length;i++)a=l[i],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(i=0;i<l.length;i++)a=l[i],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var o=i.createContext({}),u=function(e){var t=i.useContext(o),a=t;return e&&(a="function"==typeof e?e(t):s(s({},t),e)),a},k=function(e){var t=u(e.components);return i.createElement(o.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},m=i.forwardRef((function(e,t){var a=e.components,n=e.mdxType,l=e.originalType,o=e.parentName,k=r(e,["components","mdxType","originalType","parentName"]),m=u(a),h=n,d=m["".concat(o,".").concat(h)]||m[h]||p[h]||l;return a?i.createElement(d,s(s({ref:t},k),{},{components:a})):i.createElement(d,s({ref:t},k))}));function h(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var l=a.length,s=new Array(l);s[0]=m;var r={};for(var o in t)hasOwnProperty.call(t,o)&&(r[o]=t[o]);r.originalType=e,r.mdxType="string"==typeof e?e:n,s[1]=r;for(var u=2;u<l;u++)s[u]=a[u];return i.createElement.apply(null,s)}return i.createElement.apply(null,a)}m.displayName="MDXCreateElement"},1016:function(e,t,a){a.r(t),a.d(t,{assets:function(){return k},contentTitle:function(){return o},default:function(){return h},frontMatter:function(){return r},metadata:function(){return u},toc:function(){return p}});var i=a(7462),n=a(3366),l=(a(7294),a(3905)),s=["components"],r={slug:"/changelog/",sidebar_position:6},o="Changelog",u={unversionedId:"changelog",id:"changelog",title:"Changelog",description:"v3.12.1 - 2022-05-10",source:"@site/docs/changelog.md",sourceDirName:".",slug:"/changelog/",permalink:"/changelog/",draft:!1,tags:[],version:"current",sidebarPosition:6,frontMatter:{slug:"/changelog/",sidebar_position:6},sidebar:"tutorialSidebar",previous:{title:"Styleguide",permalink:"/styleguide/"},next:{title:"Community",permalink:"/community/"}},k={},p=[{value:"v3.12.1 - 2022-05-10",id:"v3121---2022-05-10",level:2},{value:"v3.12.0 - 2022-03-31",id:"v3120---2022-03-31",level:2},{value:"v3.11.0 - 2022-02-19",id:"v3110---2022-02-19",level:2},{value:"v3.10.0 - 2022-01-04",id:"v3100---2022-01-04",level:2},{value:"v3.9.2 - 2021-12-02",id:"v392---2021-12-02",level:2},{value:"v3.9.1 - 2021-11-28",id:"v391---2021-11-28",level:2},{value:"v3.9.0 - 2021-10-02",id:"v390---2021-10-02",level:2},{value:"v3.8.0 - 2021-09-26",id:"v380---2021-09-26",level:2},{value:"v3.7.3 - 2021-09-04",id:"v373---2021-09-04",level:2},{value:"v3.7.0 - 2021-07-31",id:"v370---2021-07-31",level:2},{value:"v3.6.0 - 2021-07-10",id:"v360---2021-07-10",level:2},{value:"v3.5.0 - 2021-07-04",id:"v350---2021-07-04",level:2},{value:"v3.4.3 - 2021-05-30",id:"v343---2021-05-30",level:2},{value:"v3.4.2 - 2021-04-23",id:"v342---2021-04-23",level:2},{value:"v3.4.1 - 2021-04-17",id:"v341---2021-04-17",level:2},{value:"v3.3.0 - 2021-03-20",id:"v330---2021-03-20",level:2},{value:"v3.2.2 - 2021-01-12",id:"v322---2021-01-12",level:2},{value:"v3.2.1 - 2021-01-09",id:"v321---2021-01-09",level:2},{value:"v3.2.0 - 2021-01-07",id:"v320---2021-01-07",level:2},{value:"v3.1.0 - 2021-01-03",id:"v310---2021-01-03",level:2},{value:"v3.0.1 - 2020-12-26",id:"v301---2020-12-26",level:2},{value:"v3.0.0 - 2020-08-16",id:"v300---2020-08-16",level:2},{value:"v2.8.1 - 2020-05-20",id:"v281---2020-05-20",level:2},{value:"v2.8.0 - 2019-12-07",id:"v280---2019-12-07",level:2},{value:"v2.7.1 - 2019-11-10",id:"v271---2019-11-10",level:2},{value:"v2.7.0 - 2019-09-22",id:"v270---2019-09-22",level:2},{value:"v2.6.0 - 2019-07-21",id:"v260---2019-07-21",level:2},{value:"v2.5.2 - 2019-05-11",id:"v252---2019-05-11",level:2},{value:"2.5.1 - 2019-04-27",id:"251---2019-04-27",level:2},{value:"v2.5.0 - 2019-03-16",id:"v250---2019-03-16",level:2},{value:"v2.4.0 - 2019-02-21",id:"v240---2019-02-21",level:2},{value:"v2.3.0 - 2019-01-02",id:"v230---2019-01-02",level:2},{value:"v2.2.1 - 2018-12-09",id:"v221---2018-12-09",level:2},{value:"v2.2.0 - 2018-10-25",id:"v220---2018-10-25",level:2},{value:"v2.1.1 - 2018-09-17",id:"v211---2018-09-17",level:2},{value:"v2.1.0 - 2018-08-19",id:"v210---2018-08-19",level:2},{value:"v2.0.3 - 2018-06-24",id:"v203---2018-06-24",level:2},{value:"v2.0.2 - 2018-05-01",id:"v202---2018-05-01",level:2},{value:"v2.0.1 - 2018-03-11",id:"v201---2018-03-11",level:2},{value:"v2.0.0 - 2018-03-08",id:"v200---2018-03-08",level:2},{value:"v1.4.4 - 2017-11-19",id:"v144---2017-11-19",level:2},{value:"v1.4.3 - 2017-09-07",id:"v143---2017-09-07",level:2},{value:"v1.4.2 - 2017-07-30",id:"v142---2017-07-30",level:2},{value:"v1.4.1 - 2017-07-15",id:"v141---2017-07-15",level:2},{value:"v1.4.0 - 2017-07-06",id:"v140---2017-07-06",level:2},{value:"v1.3.1 - 2017-06-14",id:"v131---2017-06-14",level:2},{value:"v1.3.0 - 2017-04-24",id:"v130---2017-04-24",level:2},{value:"v1.2.0 - 2017-04-02",id:"v120---2017-04-02",level:2},{value:"v1.1.0 - 2017-03-08",id:"v110---2017-03-08",level:2},{value:"v1.0.0 - 2017-02-28",id:"v100---2017-02-28",level:2}],m={toc:p};function h(e){var t=e.components,a=(0,n.Z)(e,s);return(0,l.kt)("wrapper",(0,i.Z)({},m,a,{components:t,mdxType:"MDXLayout"}),(0,l.kt)("h1",{id:"changelog"},"Changelog"),(0,l.kt)("h2",{id:"v3121---2022-05-10"},"v3.12.1 - 2022-05-10"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Fixed bug where, on Windows, variables were ending with ",(0,l.kt)("inlineCode",{parentName:"li"},"\\r")," because we were\nonly removing the final ",(0,l.kt)("inlineCode",{parentName:"li"},"\\n")," but not ",(0,l.kt)("inlineCode",{parentName:"li"},"\\r\\n"),"\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/717"},"#717"),").")),(0,l.kt)("h2",{id:"v3120---2022-03-31"},"v3.12.0 - 2022-03-31"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"The ",(0,l.kt)("inlineCode",{parentName:"li"},"--list")," and ",(0,l.kt)("inlineCode",{parentName:"li"},"--list-all")," flags can now be combined with the ",(0,l.kt)("inlineCode",{parentName:"li"},"--silent"),"\nflag to print the task names only, without their description\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/691"},"#691"),")."),(0,l.kt)("li",{parentName:"ul"},"Added support for multi-level inclusion of Taskfiles. This means that\nincluded Taskfiles can also include other Taskfiles. Before this was limited\nto one level\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/390"},"#390"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/discussions/623"},"#623"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/656"},"#656"),")."),(0,l.kt)("li",{parentName:"ul"},"Add ability to specify vars when including a Taskfile.\n",(0,l.kt)("a",{parentName:"li",href:"https://taskfile.dev/#/usage?id=vars-of-included-taskfiles"},"Check out the documentation"),"\nfor more information.\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/677"},"#677"),").")),(0,l.kt)("h2",{id:"v3110---2022-02-19"},"v3.11.0 - 2022-02-19"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Task now supports printing begin and end messages when using the ",(0,l.kt)("inlineCode",{parentName:"li"},"group"),"\noutput mode, useful for grouping tasks in CI systems.\n",(0,l.kt)("a",{parentName:"li",href:"http://taskfile.dev/#/usage?id=output-syntax"},"Check out the documentation")," for more information\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/647"},"#647"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/651"},"#651"),")."),(0,l.kt)("li",{parentName:"ul"},"Add ",(0,l.kt)("inlineCode",{parentName:"li"},"Taskfile.dist.yml")," and ",(0,l.kt)("inlineCode",{parentName:"li"},"Taskfile.dist.yaml")," to the supported file\nname list. ",(0,l.kt)("a",{parentName:"li",href:"https://taskfile.dev/#/usage?id=supported-file-names"},"Check out the documentation")," for more information\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/498"},"#498"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/666"},"#666"),").")),(0,l.kt)("h2",{id:"v3100---2022-01-04"},"v3.10.0 - 2022-01-04"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"A new ",(0,l.kt)("inlineCode",{parentName:"li"},"--list-all")," (alias ",(0,l.kt)("inlineCode",{parentName:"li"},"-a"),") flag is now available. It's similar to the\nexiting ",(0,l.kt)("inlineCode",{parentName:"li"},"--list")," (",(0,l.kt)("inlineCode",{parentName:"li"},"-l"),") but prints all tasks, even those without a\ndescription\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/383"},"#383"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/401"},"#401"),")."),(0,l.kt)("li",{parentName:"ul"},"It's now possible to schedule cleanup commands to run once a task finishes\nwith the ",(0,l.kt)("inlineCode",{parentName:"li"},"defer:")," keyword\n(",(0,l.kt)("a",{parentName:"li",href:"https://taskfile.dev/#/usage?id=doing-task-cleanup-with-defer"},"Documentation"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/475"},"#475"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/626"},"#626"),")."),(0,l.kt)("li",{parentName:"ul"},"Remove long deprecated and undocumented ",(0,l.kt)("inlineCode",{parentName:"li"},"$")," variable prefix and ",(0,l.kt)("inlineCode",{parentName:"li"},"^")," command\nprefix\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/642"},"#642"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/644"},"#644"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/645"},"#645"),")."),(0,l.kt)("li",{parentName:"ul"},"Add support for ",(0,l.kt)("inlineCode",{parentName:"li"},".yaml")," extension (as an alternative to ",(0,l.kt)("inlineCode",{parentName:"li"},".yml"),").\nThis was requested multiple times throughout the years. Enjoy!\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/183"},"#183"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/184"},"#184"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/369"},"#369"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/584"},"#584"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/621"},"#621"),")."),(0,l.kt)("li",{parentName:"ul"},"Fixed error when computing a variable when the task directory do not exist\nyet\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/481"},"#481"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/579"},"#579"),").")),(0,l.kt)("h2",{id:"v392---2021-12-02"},"v3.9.2 - 2021-12-02"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Upgrade ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/mvdan/sh"},"mvdan/sh")," which contains a fix a for\na important regression on Windows\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/619"},"#619"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/mvdan/sh/issues/768"},"mvdan/sh#768"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/mvdan/sh/pull/769"},"mvdan/sh#769"),").")),(0,l.kt)("h2",{id:"v391---2021-11-28"},"v3.9.1 - 2021-11-28"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Add logging in verbose mode for when a task starts and finishes\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/533"},"#533"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/588"},"#588"),")."),(0,l.kt)("li",{parentName:"ul"},"Fix an issue with preconditions and context errors\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/597"},"#597"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/598"},"#598"),")."),(0,l.kt)("li",{parentName:"ul"},"Quote each ",(0,l.kt)("inlineCode",{parentName:"li"},"{{.CLI_ARGS}}")," argument to prevent one with spaces to become many\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/613"},"#613"),")."),(0,l.kt)("li",{parentName:"ul"},"Fix  nil pointer when ",(0,l.kt)("inlineCode",{parentName:"li"},"cmd:")," was left empty\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/612"},"#612"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/614"},"#614"),")."),(0,l.kt)("li",{parentName:"ul"},"Upgrade ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/mvdan/sh"},"mvdan/sh")," which contains two\nrelevant fixes:",(0,l.kt)("ul",{parentName:"li"},(0,l.kt)("li",{parentName:"ul"},"Fix quote of empty strings in ",(0,l.kt)("inlineCode",{parentName:"li"},"shellQuote"),"\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/609"},"#609"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/mvdan/sh/issues/763"},"mvdan/sh#763"),")."),(0,l.kt)("li",{parentName:"ul"},"Fix issue of wrong environment variable being picked when there's another\nvery similar one\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/586"},"#586"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/mvdan/sh/pull/745"},"mvdan/sh#745"),")."))),(0,l.kt)("li",{parentName:"ul"},"Install shell completions automatically when installing via Homebrew\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/264"},"#264"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/592"},"#592"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/homebrew-tap/pull/2"},"go-task/homebrew-tap#2"),").")),(0,l.kt)("h2",{id:"v390---2021-10-02"},"v3.9.0 - 2021-10-02"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"A new ",(0,l.kt)("inlineCode",{parentName:"li"},"shellQuote")," function was added to the template system\n(",(0,l.kt)("inlineCode",{parentName:"li"},'{{shellQuote "a string"}}'),") to ensure a string is safe for use in shell\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/mvdan/sh/pull/727"},"mvdan/sh#727"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/mvdan/sh/pull/737"},"mvdan/sh#737"),", ",(0,l.kt)("a",{parentName:"li",href:"https://pkg.go.dev/mvdan.cc/sh/v3@v3.4.0/syntax#Quote"},"Documentation"),")"),(0,l.kt)("li",{parentName:"ul"},"In this version ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/mvdan/sh"},"mvdan.cc/sh")," was upgraded\nwith some small fixes and features",(0,l.kt)("ul",{parentName:"li"},(0,l.kt)("li",{parentName:"ul"},"The ",(0,l.kt)("inlineCode",{parentName:"li"},"read -p")," flag is now supported\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/314"},"#314"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/mvdan/sh/issues/551"},"mvdan/sh#551"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/mvdan/sh/pull/722"},"mvdan/sh#772"),")"),(0,l.kt)("li",{parentName:"ul"},"The ",(0,l.kt)("inlineCode",{parentName:"li"},"pwd -P")," and ",(0,l.kt)("inlineCode",{parentName:"li"},"pwd -L")," flags are now supported\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/553"},"#553"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/mvdan/sh/issues/724"},"mvdan/sh#724"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/mvdan/sh/pull/728"},"mvdan/sh#728"),")"),(0,l.kt)("li",{parentName:"ul"},"The ",(0,l.kt)("inlineCode",{parentName:"li"},"$GID")," environment variable is now correctly being set\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/561"},"#561"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/mvdan/sh/pull/723"},"mvdan/sh#723"),")")))),(0,l.kt)("h2",{id:"v380---2021-09-26"},"v3.8.0 - 2021-09-26"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Add ",(0,l.kt)("inlineCode",{parentName:"li"},"interactive: true")," setting to improve support for interactive CLI apps\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/217"},"#217"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/563"},"#563"),")."),(0,l.kt)("li",{parentName:"ul"},"Fix some ",(0,l.kt)("inlineCode",{parentName:"li"},"nil")," errors\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/534"},"#534"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/573"},"#573"),")."),(0,l.kt)("li",{parentName:"ul"},"Add ability to declare an included Taskfile as optional\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/519"},"#519"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/552"},"#552"),")."),(0,l.kt)("li",{parentName:"ul"},"Add support for including Taskfiles in the home directory by using ",(0,l.kt)("inlineCode",{parentName:"li"},"~"),"\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/539"},"#539"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/557"},"#557"),").")),(0,l.kt)("h2",{id:"v373---2021-09-04"},"v3.7.3 - 2021-09-04"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Add official support to Apple M1 (",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/564"},"#564"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/567"},"#567"),")."),(0,l.kt)("li",{parentName:"ul"},"Our ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/homebrew-tap"},"official Homebrew tap")," will\nsupport more platforms, including Apple M1")),(0,l.kt)("h2",{id:"v370---2021-07-31"},"v3.7.0 - 2021-07-31"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Add ",(0,l.kt)("inlineCode",{parentName:"li"},"run:")," setting to control if tasks should run multiple times or not.\nAvailable options are ",(0,l.kt)("inlineCode",{parentName:"li"},"always")," (the default), ",(0,l.kt)("inlineCode",{parentName:"li"},"when_changed")," (if a variable\nmodified the task) and ",(0,l.kt)("inlineCode",{parentName:"li"},"once")," (run only once no matter what).\nThis is a long time requested feature. Enjoy!\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/53"},"#53"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/359"},"#359"),").")),(0,l.kt)("h2",{id:"v360---2021-07-10"},"v3.6.0 - 2021-07-10"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Allow using both ",(0,l.kt)("inlineCode",{parentName:"li"},"sources:")," and ",(0,l.kt)("inlineCode",{parentName:"li"},"status:")," in the same task\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/411"},"#411"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/427"},"#427"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/477"},"#477"),")."),(0,l.kt)("li",{parentName:"ul"},"Small optimization and bug fix: don't compute variables if not needed for\n",(0,l.kt)("inlineCode",{parentName:"li"},"dotenv:")," (",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/517"},"#517"),").")),(0,l.kt)("h2",{id:"v350---2021-07-04"},"v3.5.0 - 2021-07-04"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Add support for interpolation in ",(0,l.kt)("inlineCode",{parentName:"li"},"dotenv:"),"\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/discussions/433"},"#433"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/434"},"#434"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/453"},"#453"),").")),(0,l.kt)("h2",{id:"v343---2021-05-30"},"v3.4.3 - 2021-05-30"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Add support for the ",(0,l.kt)("inlineCode",{parentName:"li"},"NO_COLOR")," environment variable.\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/459"},"#459"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/fatih/color/pull/137"},"fatih/color#137"),")."),(0,l.kt)("li",{parentName:"ul"},"Fix bug where sources were not considering the right directory\nin ",(0,l.kt)("inlineCode",{parentName:"li"},"--watch")," mode\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/484"},"#484"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/485"},"#485"),").")),(0,l.kt)("h2",{id:"v342---2021-04-23"},"v3.4.2 - 2021-04-23"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"On watch, report which file failed to read\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/472"},"#472"),")."),(0,l.kt)("li",{parentName:"ul"},"Do not try to catch SIGKILL signal, which are not actually possible\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/476"},"#476"),")."),(0,l.kt)("li",{parentName:"ul"},"Improve version reporting when building Task from source using Go Modules\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/462"},"#462"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/473"},"#473"),").")),(0,l.kt)("h2",{id:"v341---2021-04-17"},"v3.4.1 - 2021-04-17"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Improve error reporting when parsing YAML: in some situations where you\nwould just see an generic error, you'll now see the actual error with\nmore detail: the YAML line the failed to parse, for example\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/467"},"#467"),")."),(0,l.kt)("li",{parentName:"ul"},"A JSON Schema was published ",(0,l.kt)("a",{parentName:"li",href:"https://json.schemastore.org/taskfile.json"},"here"),"\nand is automatically being used by some editors like Visual Studio Code\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/135"},"#135"),")."),(0,l.kt)("li",{parentName:"ul"},"Print task name before the command in the log output\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/398"},"#398"),").")),(0,l.kt)("h2",{id:"v330---2021-03-20"},"v3.3.0 - 2021-03-20"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Add support for delegating CLI arguments to commands with ",(0,l.kt)("inlineCode",{parentName:"li"},"--")," and a\nspecial ",(0,l.kt)("inlineCode",{parentName:"li"},"CLI_ARGS")," variable\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/327"},"#327"),")."),(0,l.kt)("li",{parentName:"ul"},"Add a ",(0,l.kt)("inlineCode",{parentName:"li"},"--concurrency")," (alias ",(0,l.kt)("inlineCode",{parentName:"li"},"-C"),") flag, to limit the number of tasks that\nrun concurrently. This is useful for heavy workloads.\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/345"},"#345"),").")),(0,l.kt)("h2",{id:"v322---2021-01-12"},"v3.2.2 - 2021-01-12"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Improve performance of ",(0,l.kt)("inlineCode",{parentName:"li"},"--list")," and ",(0,l.kt)("inlineCode",{parentName:"li"},"--summary")," by skipping running shell\nvariables for these flags\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/332"},"#332"),")."),(0,l.kt)("li",{parentName:"ul"},"Fixed a bug where an environment in a Taskfile was not always overridable\nby the system environment\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/425"},"#425"),")."),(0,l.kt)("li",{parentName:"ul"},"Fixed environment from .env files not being available as variables\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/379"},"#379"),")."),(0,l.kt)("li",{parentName:"ul"},"The install script is now working for ARM platforms\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/428"},"#428"),").")),(0,l.kt)("h2",{id:"v321---2021-01-09"},"v3.2.1 - 2021-01-09"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Fixed some bugs and regressions regarding dynamic variables and directories\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/426"},"#426"),")."),(0,l.kt)("li",{parentName:"ul"},"The ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/slim-sprig"},"slim-sprig")," package was updated\nwith the upstream ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/Masterminds/sprig"},"sprig"),".")),(0,l.kt)("h2",{id:"v320---2021-01-07"},"v3.2.0 - 2021-01-07"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Fix the ",(0,l.kt)("inlineCode",{parentName:"li"},".task")," directory being created in the task directory instead of the\nTaskfile directory\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/247"},"#247"),")."),(0,l.kt)("li",{parentName:"ul"},"Fix a bug where dynamic variables (those declared with ",(0,l.kt)("inlineCode",{parentName:"li"},"sh:"),") were not\nrunning in the task directory when the task has a custom dir or it was\nin an included Taskfile\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/384"},"#384"),")."),(0,l.kt)("li",{parentName:"ul"},"The watch feature (via the ",(0,l.kt)("inlineCode",{parentName:"li"},"--watch")," flag) got a few different bug fixes and\nshould be more stable now\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/423"},"#423"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/365"},"#365"),").")),(0,l.kt)("h2",{id:"v310---2021-01-03"},"v3.1.0 - 2021-01-03"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Fix a bug when the checksum up-to-date resolution is used by a task\nwith a custom ",(0,l.kt)("inlineCode",{parentName:"li"},"label:")," attribute\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/412"},"#412"),")."),(0,l.kt)("li",{parentName:"ul"},"Starting from this release, we're releasing official ARMv6 and ARM64 binaries\nfor Linux\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/375"},"#375"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/418"},"#418"),")."),(0,l.kt)("li",{parentName:"ul"},"Task now respects the order of declaration of included Taskfiles when\nevaluating variables declaring by them\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/393"},"#393"),")."),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"set -e")," is now automatically set on every command. This was done to fix an\nissue where multiline string commands wouldn't really fail unless the\nsentence was in the last line\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/403"},"#403"),").")),(0,l.kt)("h2",{id:"v301---2020-12-26"},"v3.0.1 - 2020-12-26"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Allow use as a library by moving the required packages out of the ",(0,l.kt)("inlineCode",{parentName:"li"},"internal"),"\ndirectory\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/358"},"#358"),")."),(0,l.kt)("li",{parentName:"ul"},"Do not error if a specified dotenv file does not exist\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/378"},"#378"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/385"},"#385"),")."),(0,l.kt)("li",{parentName:"ul"},"Fix panic when you have empty tasks in your Taskfile\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/338"},"#338"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/362"},"#362"),").")),(0,l.kt)("h2",{id:"v300---2020-08-16"},"v3.0.0 - 2020-08-16"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"On ",(0,l.kt)("inlineCode",{parentName:"li"},"v3"),", all CLI variables will be considered global variables\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/336"},"#336"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/341"},"#341"),")"),(0,l.kt)("li",{parentName:"ul"},"Add support to ",(0,l.kt)("inlineCode",{parentName:"li"},".env")," like files\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/324"},"#324"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/356"},"#356"),")."),(0,l.kt)("li",{parentName:"ul"},"Add ",(0,l.kt)("inlineCode",{parentName:"li"},"label:")," to task so you can override the task name in the logs\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/321%5D"},"#321"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/337"},"#337"),")."),(0,l.kt)("li",{parentName:"ul"},"Refactor how variables work on version 3\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/311"},"#311"),")."),(0,l.kt)("li",{parentName:"ul"},"Disallow ",(0,l.kt)("inlineCode",{parentName:"li"},"expansions")," on v3 since it has no effect."),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"Taskvars.yml")," is not automatically included anymore."),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"Taskfile_{{OS}}.yml")," is not automatically included anymore."),(0,l.kt)("li",{parentName:"ul"},"Allow interpolation on ",(0,l.kt)("inlineCode",{parentName:"li"},"includes"),", so you can manually include a Taskfile\nbased on operation system, for example."),(0,l.kt)("li",{parentName:"ul"},"Expose ",(0,l.kt)("inlineCode",{parentName:"li"},".TASK")," variable in templates with the task name\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/252"},"#252"),")."),(0,l.kt)("li",{parentName:"ul"},"Implement short task syntax\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/194"},"#194"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/240"},"#240"),")."),(0,l.kt)("li",{parentName:"ul"},"Added option to make included Taskfile run commands on its own directory\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/260"},"#260"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/144"},"#144"),")"),(0,l.kt)("li",{parentName:"ul"},"Taskfiles in version 1 are not supported anymore\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/237"},"#237"),")."),(0,l.kt)("li",{parentName:"ul"},"Added global ",(0,l.kt)("inlineCode",{parentName:"li"},"method:")," option. With this option, you can set a default\nmethod to all tasks in a Taskfile\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/246"},"#246"),")."),(0,l.kt)("li",{parentName:"ul"},"Changed default method from ",(0,l.kt)("inlineCode",{parentName:"li"},"timestamp")," to ",(0,l.kt)("inlineCode",{parentName:"li"},"checksum"),"\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/246"},"#246"),")."),(0,l.kt)("li",{parentName:"ul"},"New magic variables are now available when using ",(0,l.kt)("inlineCode",{parentName:"li"},"status:"),":\n",(0,l.kt)("inlineCode",{parentName:"li"},".TIMESTAMP")," which contains the greatest modification date\nfrom the files listed in ",(0,l.kt)("inlineCode",{parentName:"li"},"sources:"),", and ",(0,l.kt)("inlineCode",{parentName:"li"},".CHECKSUM"),", which\ncontains a checksum of all files listed in ",(0,l.kt)("inlineCode",{parentName:"li"},"status:"),".\nThis is useful for manual checking when using external, or even remote,\nartifacts when using ",(0,l.kt)("inlineCode",{parentName:"li"},"status:"),"\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/216"},"#216"),")."),(0,l.kt)("li",{parentName:"ul"},"We're now using ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/slim-sprig"},"slim-sprig")," instead of\n",(0,l.kt)("a",{parentName:"li",href:"https://github.com/Masterminds/sprig"},"sprig"),", which allowed a file size\nreduction of about 22%\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/219"},"#219"),")."),(0,l.kt)("li",{parentName:"ul"},"We now use some colors on Task output to better distinguish message types -\ncommands are green, errors are red, etc\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/207"},"#207"),").")),(0,l.kt)("h2",{id:"v281---2020-05-20"},"v2.8.1 - 2020-05-20"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Fix error code for the ",(0,l.kt)("inlineCode",{parentName:"li"},"--help")," flag\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/300"},"#300"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/330"},"#330"),")."),(0,l.kt)("li",{parentName:"ul"},"Print version to stdout instead of stderr\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/299"},"#299"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/329"},"#329"),")."),(0,l.kt)("li",{parentName:"ul"},"Supress ",(0,l.kt)("inlineCode",{parentName:"li"},"context")," errors when using the ",(0,l.kt)("inlineCode",{parentName:"li"},"--watch")," flag\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/313"},"#313"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/317"},"#317"),")."),(0,l.kt)("li",{parentName:"ul"},"Support templating on description\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/276"},"#276"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/283"},"#283"),").")),(0,l.kt)("h2",{id:"v280---2019-12-07"},"v2.8.0 - 2019-12-07"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Add ",(0,l.kt)("inlineCode",{parentName:"li"},"--parallel")," flag (alias ",(0,l.kt)("inlineCode",{parentName:"li"},"-p"),") to run tasks given by the command line in\nparallel\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/266"},"#266"),")."),(0,l.kt)("li",{parentName:"ul"},"Fixed bug where calling the ",(0,l.kt)("inlineCode",{parentName:"li"},"task")," CLI only informing global vars would not\nexecute the ",(0,l.kt)("inlineCode",{parentName:"li"},"default")," task."),(0,l.kt)("li",{parentName:"ul"},"Add hability to silent all tasks by adding ",(0,l.kt)("inlineCode",{parentName:"li"},"silent: true")," a the root of the\nTaskfile.")),(0,l.kt)("h2",{id:"v271---2019-11-10"},"v2.7.1 - 2019-11-10"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Fix error being raised when ",(0,l.kt)("inlineCode",{parentName:"li"},"exit 0")," was called\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/251"},"#251"),").")),(0,l.kt)("h2",{id:"v270---2019-09-22"},"v2.7.0 - 2019-09-22"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Fixed panic bug when assigning a global variable\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/229"},"#229"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/234"},"#243"),")."),(0,l.kt)("li",{parentName:"ul"},"A task with ",(0,l.kt)("inlineCode",{parentName:"li"},"method: checksum")," will now re-run if generated files are deleted\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/228"},"#228"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/238"},"#238"),").")),(0,l.kt)("h2",{id:"v260---2019-07-21"},"v2.6.0 - 2019-07-21"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Fixed some bugs regarding minor version checks on ",(0,l.kt)("inlineCode",{parentName:"li"},"version:"),"."),(0,l.kt)("li",{parentName:"ul"},"Add ",(0,l.kt)("inlineCode",{parentName:"li"},"preconditions:")," to task\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/205"},"#205"),")."),(0,l.kt)("li",{parentName:"ul"},"Create directory informed on ",(0,l.kt)("inlineCode",{parentName:"li"},"dir:")," if it doesn't exist\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/209"},"#209"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/211"},"#211"),")."),(0,l.kt)("li",{parentName:"ul"},"We now have a ",(0,l.kt)("inlineCode",{parentName:"li"},"--taskfile")," flag (alias ",(0,l.kt)("inlineCode",{parentName:"li"},"-t"),"), which can be used to run\nanother Taskfile (other than the default ",(0,l.kt)("inlineCode",{parentName:"li"},"Taskfile.yml"),")\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/221"},"#221"),")."),(0,l.kt)("li",{parentName:"ul"},"It's now possible to install Task using Homebrew on Linux\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/homebrew-tap/pull/1"},"go-task/homebrew-tap#1"),").")),(0,l.kt)("h2",{id:"v252---2019-05-11"},"v2.5.2 - 2019-05-11"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Reverted YAML upgrade due issues with CRLF on Windows\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/201"},"#201"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-yaml/yaml/issues/450"},"go-yaml/yaml#450"),")."),(0,l.kt)("li",{parentName:"ul"},"Allow setting global variables through the CLI\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/192"},"#192"),").")),(0,l.kt)("h2",{id:"251---2019-04-27"},"2.5.1 - 2019-04-27"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Fixed some issues with interactive command line tools, where sometimes\nthe output were not being shown, and similar issues\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/114"},"#114"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/190"},"#190"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/200"},"#200"),")."),(0,l.kt)("li",{parentName:"ul"},"Upgraded ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-yaml/yaml"},"go-yaml/yaml")," from v2 to v3.")),(0,l.kt)("h2",{id:"v250---2019-03-16"},"v2.5.0 - 2019-03-16"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"We moved from the taskfile.org domain to the new fancy taskfile.dev domain.\nWhile stuff is being redirected, we strongly recommend to everyone that use\n",(0,l.kt)("a",{parentName:"li",href:"https://taskfile.dev/#/installation?id=install-script"},"this install script"),"\nto use the new taskfile.dev domain on scripts from now on."),(0,l.kt)("li",{parentName:"ul"},"Fixed to the ZSH completion\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/182"},"#182"),")."),(0,l.kt)("li",{parentName:"ul"},"Add ",(0,l.kt)("a",{parentName:"li",href:"https://taskfile.org/#/usage?id=display-summary-of-task"},(0,l.kt)("inlineCode",{parentName:"a"},"--summary")," flag along with ",(0,l.kt)("inlineCode",{parentName:"a"},"summary:")," task attribute"),"\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/180"},"#180"),").")),(0,l.kt)("h2",{id:"v240---2019-02-21"},"v2.4.0 - 2019-02-21"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Allow calling a task of the root Taskfile from an included Taskfile\nby prefixing it with ",(0,l.kt)("inlineCode",{parentName:"li"},":"),"\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/161"},"#161"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/172"},"#172"),"),"),(0,l.kt)("li",{parentName:"ul"},"Add flag to override the ",(0,l.kt)("inlineCode",{parentName:"li"},"output")," option\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/173"},"#173"),");"),(0,l.kt)("li",{parentName:"ul"},"Fix bug where Task was persisting the new checksum on the disk when the Dry\nMode is enabled\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/166"},"#166"),");"),(0,l.kt)("li",{parentName:"ul"},"Fix file timestamp issue when the file name has spaces\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/176"},"#176"),");"),(0,l.kt)("li",{parentName:"ul"},"Mitigating path expanding issues on Windows\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/170"},"#170"),").")),(0,l.kt)("h2",{id:"v230---2019-01-02"},"v2.3.0 - 2019-01-02"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"On Windows, Task can now be installed using ",(0,l.kt)("a",{parentName:"li",href:"https://scoop.sh/"},"Scoop"),"\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/152"},"#152"),");"),(0,l.kt)("li",{parentName:"ul"},"Fixed issue with file/directory globing\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/153"},"#153"),");"),(0,l.kt)("li",{parentName:"ul"},"Added ability to globally set environment variables\n(\n",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/138"},"#138"),",\n",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/159"},"#159"),"\n).")),(0,l.kt)("h2",{id:"v221---2018-12-09"},"v2.2.1 - 2018-12-09"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"This repository now uses Go Modules (#143). We'll still keep the ",(0,l.kt)("inlineCode",{parentName:"li"},"vendor")," directory in sync for some time, though;"),(0,l.kt)("li",{parentName:"ul"},"Fixing a bug when the Taskfile has no tasks but includes another Taskfile (#150);"),(0,l.kt)("li",{parentName:"ul"},"Fix a bug when calling another task or a dependency in an included Taskfile (#151).")),(0,l.kt)("h2",{id:"v220---2018-10-25"},"v2.2.0 - 2018-10-25"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Added support for ",(0,l.kt)("a",{parentName:"li",href:"https://taskfile.org/#/usage?id=including-other-taskfiles"},"including other Taskfiles")," (#98)",(0,l.kt)("ul",{parentName:"li"},(0,l.kt)("li",{parentName:"ul"},"This should be considered experimental. For now, only including local files is supported, but support for including remote Taskfiles is being discussed. If you have any feedback, please comment on #98."))),(0,l.kt)("li",{parentName:"ul"},"Task now have a dedicated documentation site: ",(0,l.kt)("a",{parentName:"li",href:"https://taskfile.org"},"https://taskfile.org"),(0,l.kt)("ul",{parentName:"li"},(0,l.kt)("li",{parentName:"ul"},"Thanks to ",(0,l.kt)("a",{parentName:"li",href:"https://docsify.js.org/"},"Docsify")," for making this pretty easy. To check the source code, just take a look at the ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/tree/master/docs"},"docs")," directory of this repository. Contributions to the documentation is really appreciated.")))),(0,l.kt)("h2",{id:"v211---2018-09-17"},"v2.1.1 - 2018-09-17"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Fix suggestion to use ",(0,l.kt)("inlineCode",{parentName:"li"},"task --init")," not being shown anymore (when a ",(0,l.kt)("inlineCode",{parentName:"li"},"Taskfile.yml")," is not found)"),(0,l.kt)("li",{parentName:"ul"},"Fix error when using checksum method and no file exists for a source glob (#131)"),(0,l.kt)("li",{parentName:"ul"},"Fix signal handling when the ",(0,l.kt)("inlineCode",{parentName:"li"},"--watch")," flag is given (#132)")),(0,l.kt)("h2",{id:"v210---2018-08-19"},"v2.1.0 - 2018-08-19"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Add a ",(0,l.kt)("inlineCode",{parentName:"li"},"ignore_error")," option to task and command (#123)"),(0,l.kt)("li",{parentName:"ul"},"Add a dry run mode (",(0,l.kt)("inlineCode",{parentName:"li"},"--dry")," flag) (#126)")),(0,l.kt)("h2",{id:"v203---2018-06-24"},"v2.0.3 - 2018-06-24"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},'Expand environment variables on "dir", "sources" and "generates" (#116)'),(0,l.kt)("li",{parentName:"ul"},"Fix YAML merging syntax (#112)"),(0,l.kt)("li",{parentName:"ul"},"Add ZSH completion (#111)"),(0,l.kt)("li",{parentName:"ul"},"Implement new ",(0,l.kt)("inlineCode",{parentName:"li"},"output")," option. Please check out the ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task#output-syntax"},"documentation"))),(0,l.kt)("h2",{id:"v202---2018-05-01"},"v2.0.2 - 2018-05-01"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Fix merging of YAML anchors (#112)")),(0,l.kt)("h2",{id:"v201---2018-03-11"},"v2.0.1 - 2018-03-11"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Fixes panic on ",(0,l.kt)("inlineCode",{parentName:"li"},"task --list"))),(0,l.kt)("h2",{id:"v200---2018-03-08"},"v2.0.0 - 2018-03-08"),(0,l.kt)("p",null,"Version 2.0.0 is here, with a new Taskfile format."),(0,l.kt)("p",null,"Please, make sure to read the ",(0,l.kt)("a",{parentName:"p",href:"https://github.com/go-task/task/blob/master/TASKFILE_VERSIONS.md"},"Taskfile versions")," document, since it describes in depth what changed for this version."),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"New Taskfile version 2 (",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/77"},"https://github.com/go-task/task/issues/77"),")"),(0,l.kt)("li",{parentName:"ul"},"Possibility to have global variables in the ",(0,l.kt)("inlineCode",{parentName:"li"},"Taskfile.yml")," instead of ",(0,l.kt)("inlineCode",{parentName:"li"},"Taskvars.yml")," (",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/66"},"https://github.com/go-task/task/issues/66"),")"),(0,l.kt)("li",{parentName:"ul"},"Small improvements and fixes")),(0,l.kt)("h2",{id:"v144---2017-11-19"},"v1.4.4 - 2017-11-19"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Handle SIGINT and SIGTERM (#75);"),(0,l.kt)("li",{parentName:"ul"},"List: print message with there's no task with description;"),(0,l.kt)("li",{parentName:"ul"},'Expand home dir ("~" symbol) on paths (#74);'),(0,l.kt)("li",{parentName:"ul"},"Add Snap as an installation method;"),(0,l.kt)("li",{parentName:"ul"},"Move examples to its own repo;"),(0,l.kt)("li",{parentName:"ul"},'Watch: also walk on tasks called on on "cmds", and not only on "deps";'),(0,l.kt)("li",{parentName:"ul"},"Print logs to stderr instead of stdout (#68);"),(0,l.kt)("li",{parentName:"ul"},"Remove deprecated ",(0,l.kt)("inlineCode",{parentName:"li"},"set")," keyword;"),(0,l.kt)("li",{parentName:"ul"},"Add checksum based status check, alternative to timestamp based.")),(0,l.kt)("h2",{id:"v143---2017-09-07"},"v1.4.3 - 2017-09-07"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Allow assigning variables to tasks at run time via CLI (#33)"),(0,l.kt)("li",{parentName:"ul"},"Added suport for multiline variables from sh (#64)"),(0,l.kt)("li",{parentName:"ul"},"Fixes env: remove square braces and evaluate shell (#62)"),(0,l.kt)("li",{parentName:"ul"},"Watch: change watch library and few fixes and improvements"),(0,l.kt)("li",{parentName:"ul"},"When use watching, cancel and restart long running process on file change (#59 and #60)")),(0,l.kt)("h2",{id:"v142---2017-07-30"},"v1.4.2 - 2017-07-30"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Flag to set directory of execution"),(0,l.kt)("li",{parentName:"ul"},"Always echo command if is verbose mode"),(0,l.kt)("li",{parentName:"ul"},"Add silent mode to disable echoing of commands"),(0,l.kt)("li",{parentName:"ul"},"Fixes and improvements of variables (#56)")),(0,l.kt)("h2",{id:"v141---2017-07-15"},"v1.4.1 - 2017-07-15"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Allow use of YAML for dynamic variables instead of $ prefix",(0,l.kt)("ul",{parentName:"li"},(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"VAR: {sh: echo Hello}")," instead of ",(0,l.kt)("inlineCode",{parentName:"li"},"VAR: $echo Hello")))),(0,l.kt)("li",{parentName:"ul"},"Add ",(0,l.kt)("inlineCode",{parentName:"li"},"--list")," (or ",(0,l.kt)("inlineCode",{parentName:"li"},"-l"),") flag to print existing tasks"),(0,l.kt)("li",{parentName:"ul"},"OS specific Taskvars file (e.g. ",(0,l.kt)("inlineCode",{parentName:"li"},"Taskvars_windows.yml"),", ",(0,l.kt)("inlineCode",{parentName:"li"},"Taskvars_linux.yml"),", etc)"),(0,l.kt)("li",{parentName:"ul"},"Consider task up-to-date on equal timestamps (#49)"),(0,l.kt)("li",{parentName:"ul"},"Allow absolute path in generates section (#48)"),(0,l.kt)("li",{parentName:"ul"},"Bugfix: allow templating when calling deps (#42)"),(0,l.kt)("li",{parentName:"ul"},"Fix panic for invalid task in cyclic dep detection"),(0,l.kt)("li",{parentName:"ul"},"Better error output for dynamic variables in Taskvars.yml (#41)"),(0,l.kt)("li",{parentName:"ul"},"Allow template evaluation in parameters")),(0,l.kt)("h2",{id:"v140---2017-07-06"},"v1.4.0 - 2017-07-06"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Cache dynamic variables"),(0,l.kt)("li",{parentName:"ul"},"Add verbose mode (",(0,l.kt)("inlineCode",{parentName:"li"},"-v")," flag)"),(0,l.kt)("li",{parentName:"ul"},"Support to task parameters (overriding vars) (#31) (#32)"),(0,l.kt)("li",{parentName:"ul"},'Print command, also when "set:" is specified (#35)'),(0,l.kt)("li",{parentName:"ul"},"Improve task command help text (#35)")),(0,l.kt)("h2",{id:"v131---2017-06-14"},"v1.3.1 - 2017-06-14"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Fix glob not working on commands (#28)"),(0,l.kt)("li",{parentName:"ul"},"Add ExeExt template function"),(0,l.kt)("li",{parentName:"ul"},"Add ",(0,l.kt)("inlineCode",{parentName:"li"},"--init")," flag to create a new Taskfile"),(0,l.kt)("li",{parentName:"ul"},"Add status option to prevent task from running (#27)"),(0,l.kt)("li",{parentName:"ul"},"Allow interpolation on ",(0,l.kt)("inlineCode",{parentName:"li"},"generates")," and ",(0,l.kt)("inlineCode",{parentName:"li"},"sources")," attributes (#26)")),(0,l.kt)("h2",{id:"v130---2017-04-24"},"v1.3.0 - 2017-04-24"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Migrate from os/exec.Cmd to a native Go sh/bash interpreter",(0,l.kt)("ul",{parentName:"li"},(0,l.kt)("li",{parentName:"ul"},"This is a potentially breaking change if you use Windows."),(0,l.kt)("li",{parentName:"ul"},"Now, ",(0,l.kt)("inlineCode",{parentName:"li"},"cmd")," is not used anymore on Windows. Always use Bash-like syntax for your commands, even on Windows."))),(0,l.kt)("li",{parentName:"ul"},'Add "ToSlash" and "FromSlash" to template functions'),(0,l.kt)("li",{parentName:"ul"},"Use functions defined on github.com/Masterminds/sprig"),(0,l.kt)("li",{parentName:"ul"},"Do not redirect stdin while running variables commands"),(0,l.kt)("li",{parentName:"ul"},"Using ",(0,l.kt)("inlineCode",{parentName:"li"},"context")," and ",(0,l.kt)("inlineCode",{parentName:"li"},"errgroup")," packages (this will make other tasks to be cancelled, if one returned an error)")),(0,l.kt)("h2",{id:"v120---2017-04-02"},"v1.2.0 - 2017-04-02"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"More tests and Travis integration"),(0,l.kt)("li",{parentName:"ul"},"Watch a task (experimental)"),(0,l.kt)("li",{parentName:"ul"},"Possibility to call another task"),(0,l.kt)("li",{parentName:"ul"},'Fix "=" not being reconized in variables/environment variables'),(0,l.kt)("li",{parentName:"ul"},"Tasks can now have a description, and help will print them (#10)"),(0,l.kt)("li",{parentName:"ul"},"Task dependencies now run concurrently"),(0,l.kt)("li",{parentName:"ul"},"Support for a default task (#16)")),(0,l.kt)("h2",{id:"v110---2017-03-08"},"v1.1.0 - 2017-03-08"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Support for YAML, TOML and JSON (#1)"),(0,l.kt)("li",{parentName:"ul"},"Support running command in another directory (#4)"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"--force")," or ",(0,l.kt)("inlineCode",{parentName:"li"},"-f")," flag to force execution of task even when it's up-to-date"),(0,l.kt)("li",{parentName:"ul"},"Detection of cyclic dependencies (#5)"),(0,l.kt)("li",{parentName:"ul"},"Support for variables (#6, #9, #14)"),(0,l.kt)("li",{parentName:"ul"},"Operation System specific commands and variables (#13)")),(0,l.kt)("h2",{id:"v100---2017-02-28"},"v1.0.0 - 2017-02-28"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Add LICENSE file")))}h.isMDXComponent=!0}}]);
\ No newline at end of file
diff --git a/assets/js/9beb87c2.eb06bf2a.js b/assets/js/9beb87c2.eb06bf2a.js
deleted file mode 100644
index 8d4b2a23..00000000
--- a/assets/js/9beb87c2.eb06bf2a.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunktaskfile_dev=self.webpackChunktaskfile_dev||[]).push([[80],{3905:function(e,t,a){a.d(t,{Zo:function(){return k},kt:function(){return h}});var i=a(7294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,i)}return a}function s(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?l(Object(a),!0).forEach((function(t){n(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):l(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function r(e,t){if(null==e)return{};var a,i,n=function(e,t){if(null==e)return{};var a,i,n={},l=Object.keys(e);for(i=0;i<l.length;i++)a=l[i],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(i=0;i<l.length;i++)a=l[i],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var o=i.createContext({}),u=function(e){var t=i.useContext(o),a=t;return e&&(a="function"==typeof e?e(t):s(s({},t),e)),a},k=function(e){var t=u(e.components);return i.createElement(o.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},m=i.forwardRef((function(e,t){var a=e.components,n=e.mdxType,l=e.originalType,o=e.parentName,k=r(e,["components","mdxType","originalType","parentName"]),m=u(a),h=n,d=m["".concat(o,".").concat(h)]||m[h]||p[h]||l;return a?i.createElement(d,s(s({ref:t},k),{},{components:a})):i.createElement(d,s({ref:t},k))}));function h(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var l=a.length,s=new Array(l);s[0]=m;var r={};for(var o in t)hasOwnProperty.call(t,o)&&(r[o]=t[o]);r.originalType=e,r.mdxType="string"==typeof e?e:n,s[1]=r;for(var u=2;u<l;u++)s[u]=a[u];return i.createElement.apply(null,s)}return i.createElement.apply(null,a)}m.displayName="MDXCreateElement"},1016:function(e,t,a){a.r(t),a.d(t,{assets:function(){return k},contentTitle:function(){return o},default:function(){return h},frontMatter:function(){return r},metadata:function(){return u},toc:function(){return p}});var i=a(7462),n=a(3366),l=(a(7294),a(3905)),s=["components"],r={slug:"/changelog/",sidebar_position:6},o="Changelog",u={unversionedId:"changelog",id:"changelog",title:"Changelog",description:"v3.12.1 - 2022-05-10",source:"@site/docs/changelog.md",sourceDirName:".",slug:"/changelog/",permalink:"/changelog/",draft:!1,tags:[],version:"current",sidebarPosition:6,frontMatter:{slug:"/changelog/",sidebar_position:6},sidebar:"tutorialSidebar",previous:{title:"Community",permalink:"/community/"},next:{title:"Releasing",permalink:"/releasing/"}},k={},p=[{value:"v3.12.1 - 2022-05-10",id:"v3121---2022-05-10",level:2},{value:"v3.12.0 - 2022-03-31",id:"v3120---2022-03-31",level:2},{value:"v3.11.0 - 2022-02-19",id:"v3110---2022-02-19",level:2},{value:"v3.10.0 - 2022-01-04",id:"v3100---2022-01-04",level:2},{value:"v3.9.2 - 2021-12-02",id:"v392---2021-12-02",level:2},{value:"v3.9.1 - 2021-11-28",id:"v391---2021-11-28",level:2},{value:"v3.9.0 - 2021-10-02",id:"v390---2021-10-02",level:2},{value:"v3.8.0 - 2021-09-26",id:"v380---2021-09-26",level:2},{value:"v3.7.3 - 2021-09-04",id:"v373---2021-09-04",level:2},{value:"v3.7.0 - 2021-07-31",id:"v370---2021-07-31",level:2},{value:"v3.6.0 - 2021-07-10",id:"v360---2021-07-10",level:2},{value:"v3.5.0 - 2021-07-04",id:"v350---2021-07-04",level:2},{value:"v3.4.3 - 2021-05-30",id:"v343---2021-05-30",level:2},{value:"v3.4.2 - 2021-04-23",id:"v342---2021-04-23",level:2},{value:"v3.4.1 - 2021-04-17",id:"v341---2021-04-17",level:2},{value:"v3.3.0 - 2021-03-20",id:"v330---2021-03-20",level:2},{value:"v3.2.2 - 2021-01-12",id:"v322---2021-01-12",level:2},{value:"v3.2.1 - 2021-01-09",id:"v321---2021-01-09",level:2},{value:"v3.2.0 - 2021-01-07",id:"v320---2021-01-07",level:2},{value:"v3.1.0 - 2021-01-03",id:"v310---2021-01-03",level:2},{value:"v3.0.1 - 2020-12-26",id:"v301---2020-12-26",level:2},{value:"v3.0.0 - 2020-08-16",id:"v300---2020-08-16",level:2},{value:"v2.8.1 - 2020-05-20",id:"v281---2020-05-20",level:2},{value:"v2.8.0 - 2019-12-07",id:"v280---2019-12-07",level:2},{value:"v2.7.1 - 2019-11-10",id:"v271---2019-11-10",level:2},{value:"v2.7.0 - 2019-09-22",id:"v270---2019-09-22",level:2},{value:"v2.6.0 - 2019-07-21",id:"v260---2019-07-21",level:2},{value:"v2.5.2 - 2019-05-11",id:"v252---2019-05-11",level:2},{value:"2.5.1 - 2019-04-27",id:"251---2019-04-27",level:2},{value:"v2.5.0 - 2019-03-16",id:"v250---2019-03-16",level:2},{value:"v2.4.0 - 2019-02-21",id:"v240---2019-02-21",level:2},{value:"v2.3.0 - 2019-01-02",id:"v230---2019-01-02",level:2},{value:"v2.2.1 - 2018-12-09",id:"v221---2018-12-09",level:2},{value:"v2.2.0 - 2018-10-25",id:"v220---2018-10-25",level:2},{value:"v2.1.1 - 2018-09-17",id:"v211---2018-09-17",level:2},{value:"v2.1.0 - 2018-08-19",id:"v210---2018-08-19",level:2},{value:"v2.0.3 - 2018-06-24",id:"v203---2018-06-24",level:2},{value:"v2.0.2 - 2018-05-01",id:"v202---2018-05-01",level:2},{value:"v2.0.1 - 2018-03-11",id:"v201---2018-03-11",level:2},{value:"v2.0.0 - 2018-03-08",id:"v200---2018-03-08",level:2},{value:"v1.4.4 - 2017-11-19",id:"v144---2017-11-19",level:2},{value:"v1.4.3 - 2017-09-07",id:"v143---2017-09-07",level:2},{value:"v1.4.2 - 2017-07-30",id:"v142---2017-07-30",level:2},{value:"v1.4.1 - 2017-07-15",id:"v141---2017-07-15",level:2},{value:"v1.4.0 - 2017-07-06",id:"v140---2017-07-06",level:2},{value:"v1.3.1 - 2017-06-14",id:"v131---2017-06-14",level:2},{value:"v1.3.0 - 2017-04-24",id:"v130---2017-04-24",level:2},{value:"v1.2.0 - 2017-04-02",id:"v120---2017-04-02",level:2},{value:"v1.1.0 - 2017-03-08",id:"v110---2017-03-08",level:2},{value:"v1.0.0 - 2017-02-28",id:"v100---2017-02-28",level:2}],m={toc:p};function h(e){var t=e.components,a=(0,n.Z)(e,s);return(0,l.kt)("wrapper",(0,i.Z)({},m,a,{components:t,mdxType:"MDXLayout"}),(0,l.kt)("h1",{id:"changelog"},"Changelog"),(0,l.kt)("h2",{id:"v3121---2022-05-10"},"v3.12.1 - 2022-05-10"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Fixed bug where, on Windows, variables were ending with ",(0,l.kt)("inlineCode",{parentName:"li"},"\\r")," because we were\nonly removing the final ",(0,l.kt)("inlineCode",{parentName:"li"},"\\n")," but not ",(0,l.kt)("inlineCode",{parentName:"li"},"\\r\\n"),"\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/717"},"#717"),").")),(0,l.kt)("h2",{id:"v3120---2022-03-31"},"v3.12.0 - 2022-03-31"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"The ",(0,l.kt)("inlineCode",{parentName:"li"},"--list")," and ",(0,l.kt)("inlineCode",{parentName:"li"},"--list-all")," flags can now be combined with the ",(0,l.kt)("inlineCode",{parentName:"li"},"--silent"),"\nflag to print the task names only, without their description\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/691"},"#691"),")."),(0,l.kt)("li",{parentName:"ul"},"Added support for multi-level inclusion of Taskfiles. This means that\nincluded Taskfiles can also include other Taskfiles. Before this was limited\nto one level\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/390"},"#390"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/discussions/623"},"#623"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/656"},"#656"),")."),(0,l.kt)("li",{parentName:"ul"},"Add ability to specify vars when including a Taskfile.\n",(0,l.kt)("a",{parentName:"li",href:"https://taskfile.dev/#/usage?id=vars-of-included-taskfiles"},"Check out the documentation"),"\nfor more information.\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/677"},"#677"),").")),(0,l.kt)("h2",{id:"v3110---2022-02-19"},"v3.11.0 - 2022-02-19"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Task now supports printing begin and end messages when using the ",(0,l.kt)("inlineCode",{parentName:"li"},"group"),"\noutput mode, useful for grouping tasks in CI systems.\n",(0,l.kt)("a",{parentName:"li",href:"http://taskfile.dev/#/usage?id=output-syntax"},"Check out the documentation")," for more information\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/647"},"#647"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/651"},"#651"),")."),(0,l.kt)("li",{parentName:"ul"},"Add ",(0,l.kt)("inlineCode",{parentName:"li"},"Taskfile.dist.yml")," and ",(0,l.kt)("inlineCode",{parentName:"li"},"Taskfile.dist.yaml")," to the supported file\nname list. ",(0,l.kt)("a",{parentName:"li",href:"https://taskfile.dev/#/usage?id=supported-file-names"},"Check out the documentation")," for more information\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/498"},"#498"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/666"},"#666"),").")),(0,l.kt)("h2",{id:"v3100---2022-01-04"},"v3.10.0 - 2022-01-04"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"A new ",(0,l.kt)("inlineCode",{parentName:"li"},"--list-all")," (alias ",(0,l.kt)("inlineCode",{parentName:"li"},"-a"),") flag is now available. It's similar to the\nexiting ",(0,l.kt)("inlineCode",{parentName:"li"},"--list")," (",(0,l.kt)("inlineCode",{parentName:"li"},"-l"),") but prints all tasks, even those without a\ndescription\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/383"},"#383"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/401"},"#401"),")."),(0,l.kt)("li",{parentName:"ul"},"It's now possible to schedule cleanup commands to run once a task finishes\nwith the ",(0,l.kt)("inlineCode",{parentName:"li"},"defer:")," keyword\n(",(0,l.kt)("a",{parentName:"li",href:"https://taskfile.dev/#/usage?id=doing-task-cleanup-with-defer"},"Documentation"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/475"},"#475"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/626"},"#626"),")."),(0,l.kt)("li",{parentName:"ul"},"Remove long deprecated and undocumented ",(0,l.kt)("inlineCode",{parentName:"li"},"$")," variable prefix and ",(0,l.kt)("inlineCode",{parentName:"li"},"^")," command\nprefix\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/642"},"#642"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/644"},"#644"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/645"},"#645"),")."),(0,l.kt)("li",{parentName:"ul"},"Add support for ",(0,l.kt)("inlineCode",{parentName:"li"},".yaml")," extension (as an alternative to ",(0,l.kt)("inlineCode",{parentName:"li"},".yml"),").\nThis was requested multiple times throughout the years. Enjoy!\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/183"},"#183"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/184"},"#184"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/369"},"#369"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/584"},"#584"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/621"},"#621"),")."),(0,l.kt)("li",{parentName:"ul"},"Fixed error when computing a variable when the task directory do not exist\nyet\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/481"},"#481"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/579"},"#579"),").")),(0,l.kt)("h2",{id:"v392---2021-12-02"},"v3.9.2 - 2021-12-02"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Upgrade ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/mvdan/sh"},"mvdan/sh")," which contains a fix a for\na important regression on Windows\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/619"},"#619"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/mvdan/sh/issues/768"},"mvdan/sh#768"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/mvdan/sh/pull/769"},"mvdan/sh#769"),").")),(0,l.kt)("h2",{id:"v391---2021-11-28"},"v3.9.1 - 2021-11-28"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Add logging in verbose mode for when a task starts and finishes\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/533"},"#533"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/588"},"#588"),")."),(0,l.kt)("li",{parentName:"ul"},"Fix an issue with preconditions and context errors\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/597"},"#597"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/598"},"#598"),")."),(0,l.kt)("li",{parentName:"ul"},"Quote each ",(0,l.kt)("inlineCode",{parentName:"li"},"{{.CLI_ARGS}}")," argument to prevent one with spaces to become many\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/613"},"#613"),")."),(0,l.kt)("li",{parentName:"ul"},"Fix  nil pointer when ",(0,l.kt)("inlineCode",{parentName:"li"},"cmd:")," was left empty\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/612"},"#612"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/614"},"#614"),")."),(0,l.kt)("li",{parentName:"ul"},"Upgrade ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/mvdan/sh"},"mvdan/sh")," which contains two\nrelevant fixes:",(0,l.kt)("ul",{parentName:"li"},(0,l.kt)("li",{parentName:"ul"},"Fix quote of empty strings in ",(0,l.kt)("inlineCode",{parentName:"li"},"shellQuote"),"\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/609"},"#609"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/mvdan/sh/issues/763"},"mvdan/sh#763"),")."),(0,l.kt)("li",{parentName:"ul"},"Fix issue of wrong environment variable being picked when there's another\nvery similar one\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/586"},"#586"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/mvdan/sh/pull/745"},"mvdan/sh#745"),")."))),(0,l.kt)("li",{parentName:"ul"},"Install shell completions automatically when installing via Homebrew\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/264"},"#264"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/592"},"#592"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/homebrew-tap/pull/2"},"go-task/homebrew-tap#2"),").")),(0,l.kt)("h2",{id:"v390---2021-10-02"},"v3.9.0 - 2021-10-02"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"A new ",(0,l.kt)("inlineCode",{parentName:"li"},"shellQuote")," function was added to the template system\n(",(0,l.kt)("inlineCode",{parentName:"li"},'{{shellQuote "a string"}}'),") to ensure a string is safe for use in shell\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/mvdan/sh/pull/727"},"mvdan/sh#727"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/mvdan/sh/pull/737"},"mvdan/sh#737"),", ",(0,l.kt)("a",{parentName:"li",href:"https://pkg.go.dev/mvdan.cc/sh/v3@v3.4.0/syntax#Quote"},"Documentation"),")"),(0,l.kt)("li",{parentName:"ul"},"In this version ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/mvdan/sh"},"mvdan.cc/sh")," was upgraded\nwith some small fixes and features",(0,l.kt)("ul",{parentName:"li"},(0,l.kt)("li",{parentName:"ul"},"The ",(0,l.kt)("inlineCode",{parentName:"li"},"read -p")," flag is now supported\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/314"},"#314"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/mvdan/sh/issues/551"},"mvdan/sh#551"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/mvdan/sh/pull/722"},"mvdan/sh#772"),")"),(0,l.kt)("li",{parentName:"ul"},"The ",(0,l.kt)("inlineCode",{parentName:"li"},"pwd -P")," and ",(0,l.kt)("inlineCode",{parentName:"li"},"pwd -L")," flags are now supported\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/553"},"#553"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/mvdan/sh/issues/724"},"mvdan/sh#724"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/mvdan/sh/pull/728"},"mvdan/sh#728"),")"),(0,l.kt)("li",{parentName:"ul"},"The ",(0,l.kt)("inlineCode",{parentName:"li"},"$GID")," environment variable is now correctly being set\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/561"},"#561"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/mvdan/sh/pull/723"},"mvdan/sh#723"),")")))),(0,l.kt)("h2",{id:"v380---2021-09-26"},"v3.8.0 - 2021-09-26"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Add ",(0,l.kt)("inlineCode",{parentName:"li"},"interactive: true")," setting to improve support for interactive CLI apps\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/217"},"#217"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/563"},"#563"),")."),(0,l.kt)("li",{parentName:"ul"},"Fix some ",(0,l.kt)("inlineCode",{parentName:"li"},"nil")," errors\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/534"},"#534"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/573"},"#573"),")."),(0,l.kt)("li",{parentName:"ul"},"Add ability to declare an included Taskfile as optional\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/519"},"#519"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/552"},"#552"),")."),(0,l.kt)("li",{parentName:"ul"},"Add support for including Taskfiles in the home directory by using ",(0,l.kt)("inlineCode",{parentName:"li"},"~"),"\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/539"},"#539"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/557"},"#557"),").")),(0,l.kt)("h2",{id:"v373---2021-09-04"},"v3.7.3 - 2021-09-04"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Add official support to Apple M1 (",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/564"},"#564"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/567"},"#567"),")."),(0,l.kt)("li",{parentName:"ul"},"Our ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/homebrew-tap"},"official Homebrew tap")," will\nsupport more platforms, including Apple M1")),(0,l.kt)("h2",{id:"v370---2021-07-31"},"v3.7.0 - 2021-07-31"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Add ",(0,l.kt)("inlineCode",{parentName:"li"},"run:")," setting to control if tasks should run multiple times or not.\nAvailable options are ",(0,l.kt)("inlineCode",{parentName:"li"},"always")," (the default), ",(0,l.kt)("inlineCode",{parentName:"li"},"when_changed")," (if a variable\nmodified the task) and ",(0,l.kt)("inlineCode",{parentName:"li"},"once")," (run only once no matter what).\nThis is a long time requested feature. Enjoy!\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/53"},"#53"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/359"},"#359"),").")),(0,l.kt)("h2",{id:"v360---2021-07-10"},"v3.6.0 - 2021-07-10"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Allow using both ",(0,l.kt)("inlineCode",{parentName:"li"},"sources:")," and ",(0,l.kt)("inlineCode",{parentName:"li"},"status:")," in the same task\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/411"},"#411"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/427"},"#427"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/477"},"#477"),")."),(0,l.kt)("li",{parentName:"ul"},"Small optimization and bug fix: don't compute variables if not needed for\n",(0,l.kt)("inlineCode",{parentName:"li"},"dotenv:")," (",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/517"},"#517"),").")),(0,l.kt)("h2",{id:"v350---2021-07-04"},"v3.5.0 - 2021-07-04"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Add support for interpolation in ",(0,l.kt)("inlineCode",{parentName:"li"},"dotenv:"),"\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/discussions/433"},"#433"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/434"},"#434"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/453"},"#453"),").")),(0,l.kt)("h2",{id:"v343---2021-05-30"},"v3.4.3 - 2021-05-30"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Add support for the ",(0,l.kt)("inlineCode",{parentName:"li"},"NO_COLOR")," environment variable.\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/459"},"#459"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/fatih/color/pull/137"},"fatih/color#137"),")."),(0,l.kt)("li",{parentName:"ul"},"Fix bug where sources were not considering the right directory\nin ",(0,l.kt)("inlineCode",{parentName:"li"},"--watch")," mode\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/484"},"#484"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/485"},"#485"),").")),(0,l.kt)("h2",{id:"v342---2021-04-23"},"v3.4.2 - 2021-04-23"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"On watch, report which file failed to read\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/472"},"#472"),")."),(0,l.kt)("li",{parentName:"ul"},"Do not try to catch SIGKILL signal, which are not actually possible\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/476"},"#476"),")."),(0,l.kt)("li",{parentName:"ul"},"Improve version reporting when building Task from source using Go Modules\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/462"},"#462"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/473"},"#473"),").")),(0,l.kt)("h2",{id:"v341---2021-04-17"},"v3.4.1 - 2021-04-17"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Improve error reporting when parsing YAML: in some situations where you\nwould just see an generic error, you'll now see the actual error with\nmore detail: the YAML line the failed to parse, for example\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/467"},"#467"),")."),(0,l.kt)("li",{parentName:"ul"},"A JSON Schema was published ",(0,l.kt)("a",{parentName:"li",href:"https://json.schemastore.org/taskfile.json"},"here"),"\nand is automatically being used by some editors like Visual Studio Code\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/135"},"#135"),")."),(0,l.kt)("li",{parentName:"ul"},"Print task name before the command in the log output\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/398"},"#398"),").")),(0,l.kt)("h2",{id:"v330---2021-03-20"},"v3.3.0 - 2021-03-20"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Add support for delegating CLI arguments to commands with ",(0,l.kt)("inlineCode",{parentName:"li"},"--")," and a\nspecial ",(0,l.kt)("inlineCode",{parentName:"li"},"CLI_ARGS")," variable\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/327"},"#327"),")."),(0,l.kt)("li",{parentName:"ul"},"Add a ",(0,l.kt)("inlineCode",{parentName:"li"},"--concurrency")," (alias ",(0,l.kt)("inlineCode",{parentName:"li"},"-C"),") flag, to limit the number of tasks that\nrun concurrently. This is useful for heavy workloads.\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/345"},"#345"),").")),(0,l.kt)("h2",{id:"v322---2021-01-12"},"v3.2.2 - 2021-01-12"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Improve performance of ",(0,l.kt)("inlineCode",{parentName:"li"},"--list")," and ",(0,l.kt)("inlineCode",{parentName:"li"},"--summary")," by skipping running shell\nvariables for these flags\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/332"},"#332"),")."),(0,l.kt)("li",{parentName:"ul"},"Fixed a bug where an environment in a Taskfile was not always overridable\nby the system environment\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/425"},"#425"),")."),(0,l.kt)("li",{parentName:"ul"},"Fixed environment from .env files not being available as variables\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/379"},"#379"),")."),(0,l.kt)("li",{parentName:"ul"},"The install script is now working for ARM platforms\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/428"},"#428"),").")),(0,l.kt)("h2",{id:"v321---2021-01-09"},"v3.2.1 - 2021-01-09"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Fixed some bugs and regressions regarding dynamic variables and directories\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/426"},"#426"),")."),(0,l.kt)("li",{parentName:"ul"},"The ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/slim-sprig"},"slim-sprig")," package was updated\nwith the upstream ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/Masterminds/sprig"},"sprig"),".")),(0,l.kt)("h2",{id:"v320---2021-01-07"},"v3.2.0 - 2021-01-07"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Fix the ",(0,l.kt)("inlineCode",{parentName:"li"},".task")," directory being created in the task directory instead of the\nTaskfile directory\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/247"},"#247"),")."),(0,l.kt)("li",{parentName:"ul"},"Fix a bug where dynamic variables (those declared with ",(0,l.kt)("inlineCode",{parentName:"li"},"sh:"),") were not\nrunning in the task directory when the task has a custom dir or it was\nin an included Taskfile\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/384"},"#384"),")."),(0,l.kt)("li",{parentName:"ul"},"The watch feature (via the ",(0,l.kt)("inlineCode",{parentName:"li"},"--watch")," flag) got a few different bug fixes and\nshould be more stable now\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/423"},"#423"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/365"},"#365"),").")),(0,l.kt)("h2",{id:"v310---2021-01-03"},"v3.1.0 - 2021-01-03"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Fix a bug when the checksum up-to-date resolution is used by a task\nwith a custom ",(0,l.kt)("inlineCode",{parentName:"li"},"label:")," attribute\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/412"},"#412"),")."),(0,l.kt)("li",{parentName:"ul"},"Starting from this release, we're releasing official ARMv6 and ARM64 binaries\nfor Linux\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/375"},"#375"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/418"},"#418"),")."),(0,l.kt)("li",{parentName:"ul"},"Task now respects the order of declaration of included Taskfiles when\nevaluating variables declaring by them\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/393"},"#393"),")."),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"set -e")," is now automatically set on every command. This was done to fix an\nissue where multiline string commands wouldn't really fail unless the\nsentence was in the last line\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/403"},"#403"),").")),(0,l.kt)("h2",{id:"v301---2020-12-26"},"v3.0.1 - 2020-12-26"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Allow use as a library by moving the required packages out of the ",(0,l.kt)("inlineCode",{parentName:"li"},"internal"),"\ndirectory\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/358"},"#358"),")."),(0,l.kt)("li",{parentName:"ul"},"Do not error if a specified dotenv file does not exist\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/378"},"#378"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/385"},"#385"),")."),(0,l.kt)("li",{parentName:"ul"},"Fix panic when you have empty tasks in your Taskfile\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/338"},"#338"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/362"},"#362"),").")),(0,l.kt)("h2",{id:"v300---2020-08-16"},"v3.0.0 - 2020-08-16"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"On ",(0,l.kt)("inlineCode",{parentName:"li"},"v3"),", all CLI variables will be considered global variables\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/336"},"#336"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/341"},"#341"),")"),(0,l.kt)("li",{parentName:"ul"},"Add support to ",(0,l.kt)("inlineCode",{parentName:"li"},".env")," like files\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/324"},"#324"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/356"},"#356"),")."),(0,l.kt)("li",{parentName:"ul"},"Add ",(0,l.kt)("inlineCode",{parentName:"li"},"label:")," to task so you can override the task name in the logs\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/321%5D"},"#321"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/337"},"#337"),")."),(0,l.kt)("li",{parentName:"ul"},"Refactor how variables work on version 3\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/311"},"#311"),")."),(0,l.kt)("li",{parentName:"ul"},"Disallow ",(0,l.kt)("inlineCode",{parentName:"li"},"expansions")," on v3 since it has no effect."),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"Taskvars.yml")," is not automatically included anymore."),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"Taskfile_{{OS}}.yml")," is not automatically included anymore."),(0,l.kt)("li",{parentName:"ul"},"Allow interpolation on ",(0,l.kt)("inlineCode",{parentName:"li"},"includes"),", so you can manually include a Taskfile\nbased on operation system, for example."),(0,l.kt)("li",{parentName:"ul"},"Expose ",(0,l.kt)("inlineCode",{parentName:"li"},".TASK")," variable in templates with the task name\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/252"},"#252"),")."),(0,l.kt)("li",{parentName:"ul"},"Implement short task syntax\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/194"},"#194"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/240"},"#240"),")."),(0,l.kt)("li",{parentName:"ul"},"Added option to make included Taskfile run commands on its own directory\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/260"},"#260"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/144"},"#144"),")"),(0,l.kt)("li",{parentName:"ul"},"Taskfiles in version 1 are not supported anymore\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/237"},"#237"),")."),(0,l.kt)("li",{parentName:"ul"},"Added global ",(0,l.kt)("inlineCode",{parentName:"li"},"method:")," option. With this option, you can set a default\nmethod to all tasks in a Taskfile\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/246"},"#246"),")."),(0,l.kt)("li",{parentName:"ul"},"Changed default method from ",(0,l.kt)("inlineCode",{parentName:"li"},"timestamp")," to ",(0,l.kt)("inlineCode",{parentName:"li"},"checksum"),"\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/246"},"#246"),")."),(0,l.kt)("li",{parentName:"ul"},"New magic variables are now available when using ",(0,l.kt)("inlineCode",{parentName:"li"},"status:"),":\n",(0,l.kt)("inlineCode",{parentName:"li"},".TIMESTAMP")," which contains the greatest modification date\nfrom the files listed in ",(0,l.kt)("inlineCode",{parentName:"li"},"sources:"),", and ",(0,l.kt)("inlineCode",{parentName:"li"},".CHECKSUM"),", which\ncontains a checksum of all files listed in ",(0,l.kt)("inlineCode",{parentName:"li"},"status:"),".\nThis is useful for manual checking when using external, or even remote,\nartifacts when using ",(0,l.kt)("inlineCode",{parentName:"li"},"status:"),"\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/216"},"#216"),")."),(0,l.kt)("li",{parentName:"ul"},"We're now using ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/slim-sprig"},"slim-sprig")," instead of\n",(0,l.kt)("a",{parentName:"li",href:"https://github.com/Masterminds/sprig"},"sprig"),", which allowed a file size\nreduction of about 22%\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/219"},"#219"),")."),(0,l.kt)("li",{parentName:"ul"},"We now use some colors on Task output to better distinguish message types -\ncommands are green, errors are red, etc\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/207"},"#207"),").")),(0,l.kt)("h2",{id:"v281---2020-05-20"},"v2.8.1 - 2020-05-20"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Fix error code for the ",(0,l.kt)("inlineCode",{parentName:"li"},"--help")," flag\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/300"},"#300"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/330"},"#330"),")."),(0,l.kt)("li",{parentName:"ul"},"Print version to stdout instead of stderr\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/299"},"#299"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/329"},"#329"),")."),(0,l.kt)("li",{parentName:"ul"},"Supress ",(0,l.kt)("inlineCode",{parentName:"li"},"context")," errors when using the ",(0,l.kt)("inlineCode",{parentName:"li"},"--watch")," flag\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/313"},"#313"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/317"},"#317"),")."),(0,l.kt)("li",{parentName:"ul"},"Support templating on description\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/276"},"#276"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/283"},"#283"),").")),(0,l.kt)("h2",{id:"v280---2019-12-07"},"v2.8.0 - 2019-12-07"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Add ",(0,l.kt)("inlineCode",{parentName:"li"},"--parallel")," flag (alias ",(0,l.kt)("inlineCode",{parentName:"li"},"-p"),") to run tasks given by the command line in\nparallel\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/266"},"#266"),")."),(0,l.kt)("li",{parentName:"ul"},"Fixed bug where calling the ",(0,l.kt)("inlineCode",{parentName:"li"},"task")," CLI only informing global vars would not\nexecute the ",(0,l.kt)("inlineCode",{parentName:"li"},"default")," task."),(0,l.kt)("li",{parentName:"ul"},"Add hability to silent all tasks by adding ",(0,l.kt)("inlineCode",{parentName:"li"},"silent: true")," a the root of the\nTaskfile.")),(0,l.kt)("h2",{id:"v271---2019-11-10"},"v2.7.1 - 2019-11-10"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Fix error being raised when ",(0,l.kt)("inlineCode",{parentName:"li"},"exit 0")," was called\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/251"},"#251"),").")),(0,l.kt)("h2",{id:"v270---2019-09-22"},"v2.7.0 - 2019-09-22"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Fixed panic bug when assigning a global variable\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/229"},"#229"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/234"},"#243"),")."),(0,l.kt)("li",{parentName:"ul"},"A task with ",(0,l.kt)("inlineCode",{parentName:"li"},"method: checksum")," will now re-run if generated files are deleted\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/228"},"#228"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/238"},"#238"),").")),(0,l.kt)("h2",{id:"v260---2019-07-21"},"v2.6.0 - 2019-07-21"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Fixed some bugs regarding minor version checks on ",(0,l.kt)("inlineCode",{parentName:"li"},"version:"),"."),(0,l.kt)("li",{parentName:"ul"},"Add ",(0,l.kt)("inlineCode",{parentName:"li"},"preconditions:")," to task\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/205"},"#205"),")."),(0,l.kt)("li",{parentName:"ul"},"Create directory informed on ",(0,l.kt)("inlineCode",{parentName:"li"},"dir:")," if it doesn't exist\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/209"},"#209"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/211"},"#211"),")."),(0,l.kt)("li",{parentName:"ul"},"We now have a ",(0,l.kt)("inlineCode",{parentName:"li"},"--taskfile")," flag (alias ",(0,l.kt)("inlineCode",{parentName:"li"},"-t"),"), which can be used to run\nanother Taskfile (other than the default ",(0,l.kt)("inlineCode",{parentName:"li"},"Taskfile.yml"),")\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/221"},"#221"),")."),(0,l.kt)("li",{parentName:"ul"},"It's now possible to install Task using Homebrew on Linux\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/homebrew-tap/pull/1"},"go-task/homebrew-tap#1"),").")),(0,l.kt)("h2",{id:"v252---2019-05-11"},"v2.5.2 - 2019-05-11"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Reverted YAML upgrade due issues with CRLF on Windows\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/201"},"#201"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-yaml/yaml/issues/450"},"go-yaml/yaml#450"),")."),(0,l.kt)("li",{parentName:"ul"},"Allow setting global variables through the CLI\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/192"},"#192"),").")),(0,l.kt)("h2",{id:"251---2019-04-27"},"2.5.1 - 2019-04-27"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Fixed some issues with interactive command line tools, where sometimes\nthe output were not being shown, and similar issues\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/114"},"#114"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/190"},"#190"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/200"},"#200"),")."),(0,l.kt)("li",{parentName:"ul"},"Upgraded ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-yaml/yaml"},"go-yaml/yaml")," from v2 to v3.")),(0,l.kt)("h2",{id:"v250---2019-03-16"},"v2.5.0 - 2019-03-16"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"We moved from the taskfile.org domain to the new fancy taskfile.dev domain.\nWhile stuff is being redirected, we strongly recommend to everyone that use\n",(0,l.kt)("a",{parentName:"li",href:"https://taskfile.dev/#/installation?id=install-script"},"this install script"),"\nto use the new taskfile.dev domain on scripts from now on."),(0,l.kt)("li",{parentName:"ul"},"Fixed to the ZSH completion\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/182"},"#182"),")."),(0,l.kt)("li",{parentName:"ul"},"Add ",(0,l.kt)("a",{parentName:"li",href:"https://taskfile.org/#/usage?id=display-summary-of-task"},(0,l.kt)("inlineCode",{parentName:"a"},"--summary")," flag along with ",(0,l.kt)("inlineCode",{parentName:"a"},"summary:")," task attribute"),"\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/180"},"#180"),").")),(0,l.kt)("h2",{id:"v240---2019-02-21"},"v2.4.0 - 2019-02-21"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Allow calling a task of the root Taskfile from an included Taskfile\nby prefixing it with ",(0,l.kt)("inlineCode",{parentName:"li"},":"),"\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/161"},"#161"),", ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/172"},"#172"),"),"),(0,l.kt)("li",{parentName:"ul"},"Add flag to override the ",(0,l.kt)("inlineCode",{parentName:"li"},"output")," option\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/173"},"#173"),");"),(0,l.kt)("li",{parentName:"ul"},"Fix bug where Task was persisting the new checksum on the disk when the Dry\nMode is enabled\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/166"},"#166"),");"),(0,l.kt)("li",{parentName:"ul"},"Fix file timestamp issue when the file name has spaces\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/176"},"#176"),");"),(0,l.kt)("li",{parentName:"ul"},"Mitigating path expanding issues on Windows\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/170"},"#170"),").")),(0,l.kt)("h2",{id:"v230---2019-01-02"},"v2.3.0 - 2019-01-02"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"On Windows, Task can now be installed using ",(0,l.kt)("a",{parentName:"li",href:"https://scoop.sh/"},"Scoop"),"\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/152"},"#152"),");"),(0,l.kt)("li",{parentName:"ul"},"Fixed issue with file/directory globing\n(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/153"},"#153"),");"),(0,l.kt)("li",{parentName:"ul"},"Added ability to globally set environment variables\n(\n",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/138"},"#138"),",\n",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/pull/159"},"#159"),"\n).")),(0,l.kt)("h2",{id:"v221---2018-12-09"},"v2.2.1 - 2018-12-09"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"This repository now uses Go Modules (#143). We'll still keep the ",(0,l.kt)("inlineCode",{parentName:"li"},"vendor")," directory in sync for some time, though;"),(0,l.kt)("li",{parentName:"ul"},"Fixing a bug when the Taskfile has no tasks but includes another Taskfile (#150);"),(0,l.kt)("li",{parentName:"ul"},"Fix a bug when calling another task or a dependency in an included Taskfile (#151).")),(0,l.kt)("h2",{id:"v220---2018-10-25"},"v2.2.0 - 2018-10-25"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Added support for ",(0,l.kt)("a",{parentName:"li",href:"https://taskfile.org/#/usage?id=including-other-taskfiles"},"including other Taskfiles")," (#98)",(0,l.kt)("ul",{parentName:"li"},(0,l.kt)("li",{parentName:"ul"},"This should be considered experimental. For now, only including local files is supported, but support for including remote Taskfiles is being discussed. If you have any feedback, please comment on #98."))),(0,l.kt)("li",{parentName:"ul"},"Task now have a dedicated documentation site: ",(0,l.kt)("a",{parentName:"li",href:"https://taskfile.org"},"https://taskfile.org"),(0,l.kt)("ul",{parentName:"li"},(0,l.kt)("li",{parentName:"ul"},"Thanks to ",(0,l.kt)("a",{parentName:"li",href:"https://docsify.js.org/"},"Docsify")," for making this pretty easy. To check the source code, just take a look at the ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/tree/master/docs"},"docs")," directory of this repository. Contributions to the documentation is really appreciated.")))),(0,l.kt)("h2",{id:"v211---2018-09-17"},"v2.1.1 - 2018-09-17"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Fix suggestion to use ",(0,l.kt)("inlineCode",{parentName:"li"},"task --init")," not being shown anymore (when a ",(0,l.kt)("inlineCode",{parentName:"li"},"Taskfile.yml")," is not found)"),(0,l.kt)("li",{parentName:"ul"},"Fix error when using checksum method and no file exists for a source glob (#131)"),(0,l.kt)("li",{parentName:"ul"},"Fix signal handling when the ",(0,l.kt)("inlineCode",{parentName:"li"},"--watch")," flag is given (#132)")),(0,l.kt)("h2",{id:"v210---2018-08-19"},"v2.1.0 - 2018-08-19"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Add a ",(0,l.kt)("inlineCode",{parentName:"li"},"ignore_error")," option to task and command (#123)"),(0,l.kt)("li",{parentName:"ul"},"Add a dry run mode (",(0,l.kt)("inlineCode",{parentName:"li"},"--dry")," flag) (#126)")),(0,l.kt)("h2",{id:"v203---2018-06-24"},"v2.0.3 - 2018-06-24"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},'Expand environment variables on "dir", "sources" and "generates" (#116)'),(0,l.kt)("li",{parentName:"ul"},"Fix YAML merging syntax (#112)"),(0,l.kt)("li",{parentName:"ul"},"Add ZSH completion (#111)"),(0,l.kt)("li",{parentName:"ul"},"Implement new ",(0,l.kt)("inlineCode",{parentName:"li"},"output")," option. Please check out the ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task#output-syntax"},"documentation"))),(0,l.kt)("h2",{id:"v202---2018-05-01"},"v2.0.2 - 2018-05-01"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Fix merging of YAML anchors (#112)")),(0,l.kt)("h2",{id:"v201---2018-03-11"},"v2.0.1 - 2018-03-11"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Fixes panic on ",(0,l.kt)("inlineCode",{parentName:"li"},"task --list"))),(0,l.kt)("h2",{id:"v200---2018-03-08"},"v2.0.0 - 2018-03-08"),(0,l.kt)("p",null,"Version 2.0.0 is here, with a new Taskfile format."),(0,l.kt)("p",null,"Please, make sure to read the ",(0,l.kt)("a",{parentName:"p",href:"https://github.com/go-task/task/blob/master/TASKFILE_VERSIONS.md"},"Taskfile versions")," document, since it describes in depth what changed for this version."),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"New Taskfile version 2 (",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/77"},"https://github.com/go-task/task/issues/77"),")"),(0,l.kt)("li",{parentName:"ul"},"Possibility to have global variables in the ",(0,l.kt)("inlineCode",{parentName:"li"},"Taskfile.yml")," instead of ",(0,l.kt)("inlineCode",{parentName:"li"},"Taskvars.yml")," (",(0,l.kt)("a",{parentName:"li",href:"https://github.com/go-task/task/issues/66"},"https://github.com/go-task/task/issues/66"),")"),(0,l.kt)("li",{parentName:"ul"},"Small improvements and fixes")),(0,l.kt)("h2",{id:"v144---2017-11-19"},"v1.4.4 - 2017-11-19"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Handle SIGINT and SIGTERM (#75);"),(0,l.kt)("li",{parentName:"ul"},"List: print message with there's no task with description;"),(0,l.kt)("li",{parentName:"ul"},'Expand home dir ("~" symbol) on paths (#74);'),(0,l.kt)("li",{parentName:"ul"},"Add Snap as an installation method;"),(0,l.kt)("li",{parentName:"ul"},"Move examples to its own repo;"),(0,l.kt)("li",{parentName:"ul"},'Watch: also walk on tasks called on on "cmds", and not only on "deps";'),(0,l.kt)("li",{parentName:"ul"},"Print logs to stderr instead of stdout (#68);"),(0,l.kt)("li",{parentName:"ul"},"Remove deprecated ",(0,l.kt)("inlineCode",{parentName:"li"},"set")," keyword;"),(0,l.kt)("li",{parentName:"ul"},"Add checksum based status check, alternative to timestamp based.")),(0,l.kt)("h2",{id:"v143---2017-09-07"},"v1.4.3 - 2017-09-07"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Allow assigning variables to tasks at run time via CLI (#33)"),(0,l.kt)("li",{parentName:"ul"},"Added suport for multiline variables from sh (#64)"),(0,l.kt)("li",{parentName:"ul"},"Fixes env: remove square braces and evaluate shell (#62)"),(0,l.kt)("li",{parentName:"ul"},"Watch: change watch library and few fixes and improvements"),(0,l.kt)("li",{parentName:"ul"},"When use watching, cancel and restart long running process on file change (#59 and #60)")),(0,l.kt)("h2",{id:"v142---2017-07-30"},"v1.4.2 - 2017-07-30"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Flag to set directory of execution"),(0,l.kt)("li",{parentName:"ul"},"Always echo command if is verbose mode"),(0,l.kt)("li",{parentName:"ul"},"Add silent mode to disable echoing of commands"),(0,l.kt)("li",{parentName:"ul"},"Fixes and improvements of variables (#56)")),(0,l.kt)("h2",{id:"v141---2017-07-15"},"v1.4.1 - 2017-07-15"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Allow use of YAML for dynamic variables instead of $ prefix",(0,l.kt)("ul",{parentName:"li"},(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"VAR: {sh: echo Hello}")," instead of ",(0,l.kt)("inlineCode",{parentName:"li"},"VAR: $echo Hello")))),(0,l.kt)("li",{parentName:"ul"},"Add ",(0,l.kt)("inlineCode",{parentName:"li"},"--list")," (or ",(0,l.kt)("inlineCode",{parentName:"li"},"-l"),") flag to print existing tasks"),(0,l.kt)("li",{parentName:"ul"},"OS specific Taskvars file (e.g. ",(0,l.kt)("inlineCode",{parentName:"li"},"Taskvars_windows.yml"),", ",(0,l.kt)("inlineCode",{parentName:"li"},"Taskvars_linux.yml"),", etc)"),(0,l.kt)("li",{parentName:"ul"},"Consider task up-to-date on equal timestamps (#49)"),(0,l.kt)("li",{parentName:"ul"},"Allow absolute path in generates section (#48)"),(0,l.kt)("li",{parentName:"ul"},"Bugfix: allow templating when calling deps (#42)"),(0,l.kt)("li",{parentName:"ul"},"Fix panic for invalid task in cyclic dep detection"),(0,l.kt)("li",{parentName:"ul"},"Better error output for dynamic variables in Taskvars.yml (#41)"),(0,l.kt)("li",{parentName:"ul"},"Allow template evaluation in parameters")),(0,l.kt)("h2",{id:"v140---2017-07-06"},"v1.4.0 - 2017-07-06"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Cache dynamic variables"),(0,l.kt)("li",{parentName:"ul"},"Add verbose mode (",(0,l.kt)("inlineCode",{parentName:"li"},"-v")," flag)"),(0,l.kt)("li",{parentName:"ul"},"Support to task parameters (overriding vars) (#31) (#32)"),(0,l.kt)("li",{parentName:"ul"},'Print command, also when "set:" is specified (#35)'),(0,l.kt)("li",{parentName:"ul"},"Improve task command help text (#35)")),(0,l.kt)("h2",{id:"v131---2017-06-14"},"v1.3.1 - 2017-06-14"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Fix glob not working on commands (#28)"),(0,l.kt)("li",{parentName:"ul"},"Add ExeExt template function"),(0,l.kt)("li",{parentName:"ul"},"Add ",(0,l.kt)("inlineCode",{parentName:"li"},"--init")," flag to create a new Taskfile"),(0,l.kt)("li",{parentName:"ul"},"Add status option to prevent task from running (#27)"),(0,l.kt)("li",{parentName:"ul"},"Allow interpolation on ",(0,l.kt)("inlineCode",{parentName:"li"},"generates")," and ",(0,l.kt)("inlineCode",{parentName:"li"},"sources")," attributes (#26)")),(0,l.kt)("h2",{id:"v130---2017-04-24"},"v1.3.0 - 2017-04-24"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Migrate from os/exec.Cmd to a native Go sh/bash interpreter",(0,l.kt)("ul",{parentName:"li"},(0,l.kt)("li",{parentName:"ul"},"This is a potentially breaking change if you use Windows."),(0,l.kt)("li",{parentName:"ul"},"Now, ",(0,l.kt)("inlineCode",{parentName:"li"},"cmd")," is not used anymore on Windows. Always use Bash-like syntax for your commands, even on Windows."))),(0,l.kt)("li",{parentName:"ul"},'Add "ToSlash" and "FromSlash" to template functions'),(0,l.kt)("li",{parentName:"ul"},"Use functions defined on github.com/Masterminds/sprig"),(0,l.kt)("li",{parentName:"ul"},"Do not redirect stdin while running variables commands"),(0,l.kt)("li",{parentName:"ul"},"Using ",(0,l.kt)("inlineCode",{parentName:"li"},"context")," and ",(0,l.kt)("inlineCode",{parentName:"li"},"errgroup")," packages (this will make other tasks to be cancelled, if one returned an error)")),(0,l.kt)("h2",{id:"v120---2017-04-02"},"v1.2.0 - 2017-04-02"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"More tests and Travis integration"),(0,l.kt)("li",{parentName:"ul"},"Watch a task (experimental)"),(0,l.kt)("li",{parentName:"ul"},"Possibility to call another task"),(0,l.kt)("li",{parentName:"ul"},'Fix "=" not being reconized in variables/environment variables'),(0,l.kt)("li",{parentName:"ul"},"Tasks can now have a description, and help will print them (#10)"),(0,l.kt)("li",{parentName:"ul"},"Task dependencies now run concurrently"),(0,l.kt)("li",{parentName:"ul"},"Support for a default task (#16)")),(0,l.kt)("h2",{id:"v110---2017-03-08"},"v1.1.0 - 2017-03-08"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Support for YAML, TOML and JSON (#1)"),(0,l.kt)("li",{parentName:"ul"},"Support running command in another directory (#4)"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"--force")," or ",(0,l.kt)("inlineCode",{parentName:"li"},"-f")," flag to force execution of task even when it's up-to-date"),(0,l.kt)("li",{parentName:"ul"},"Detection of cyclic dependencies (#5)"),(0,l.kt)("li",{parentName:"ul"},"Support for variables (#6, #9, #14)"),(0,l.kt)("li",{parentName:"ul"},"Operation System specific commands and variables (#13)")),(0,l.kt)("h2",{id:"v100---2017-02-28"},"v1.0.0 - 2017-02-28"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Add LICENSE file")))}h.isMDXComponent=!0}}]);
\ No newline at end of file
diff --git a/assets/js/f7fd502c.4de9d797.js b/assets/js/f7fd502c.4de9d797.js
new file mode 100644
index 00000000..e2048e8e
--- /dev/null
+++ b/assets/js/f7fd502c.4de9d797.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunktaskfile_dev=self.webpackChunktaskfile_dev||[]).push([[582],{3905:function(t,e,n){n.d(e,{Zo:function(){return o},kt:function(){return s}});var a=n(7294);function l(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function r(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);e&&(a=a.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,a)}return n}function i(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?r(Object(n),!0).forEach((function(e){l(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):r(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}function d(t,e){if(null==t)return{};var n,a,l=function(t,e){if(null==t)return{};var n,a,l={},r=Object.keys(t);for(a=0;a<r.length;a++)n=r[a],e.indexOf(n)>=0||(l[n]=t[n]);return l}(t,e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);for(a=0;a<r.length;a++)n=r[a],e.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(l[n]=t[n])}return l}var m=a.createContext({}),p=function(t){var e=a.useContext(m),n=e;return t&&(n="function"==typeof t?t(e):i(i({},e),t)),n},o=function(t){var e=p(t.components);return a.createElement(m.Provider,{value:e},t.children)},k={inlineCode:"code",wrapper:function(t){var e=t.children;return a.createElement(a.Fragment,{},e)}},N=a.forwardRef((function(t,e){var n=t.components,l=t.mdxType,r=t.originalType,m=t.parentName,o=d(t,["components","mdxType","originalType","parentName"]),N=p(n),s=l,u=N["".concat(m,".").concat(s)]||N[s]||k[s]||r;return n?a.createElement(u,i(i({ref:e},o),{},{components:n})):a.createElement(u,i({ref:e},o))}));function s(t,e){var n=arguments,l=e&&e.mdxType;if("string"==typeof t||l){var r=n.length,i=new Array(r);i[0]=N;var d={};for(var m in e)hasOwnProperty.call(e,m)&&(d[m]=e[m]);d.originalType=t,d.mdxType="string"==typeof t?t:l,i[1]=d;for(var p=2;p<r;p++)i[p]=n[p];return a.createElement.apply(null,i)}return a.createElement.apply(null,n)}N.displayName="MDXCreateElement"},3500:function(t,e,n){n.r(e),n.d(e,{assets:function(){return o},contentTitle:function(){return m},default:function(){return s},frontMatter:function(){return d},metadata:function(){return p},toc:function(){return k}});var a=n(7462),l=n(3366),r=(n(7294),n(3905)),i=["components"],d={slug:"/api/",sidebar_position:4},m="API Reference",p={unversionedId:"api_reference",id:"api_reference",title:"API Reference",description:"CLI",source:"@site/docs/api_reference.md",sourceDirName:".",slug:"/api/",permalink:"/api/",draft:!1,tags:[],version:"current",sidebarPosition:4,frontMatter:{slug:"/api/",sidebar_position:4},sidebar:"tutorialSidebar",previous:{title:"Usage",permalink:"/usage/"},next:{title:"Styleguide",permalink:"/styleguide/"}},o={},k=[{value:"CLI",id:"cli",level:2},{value:"Schema",id:"schema",level:2},{value:"Taskfile",id:"taskfile",level:3},{value:"Include",id:"include",level:3},{value:"Task",id:"task",level:3},{value:"Dependency",id:"dependency",level:3},{value:"Command",id:"command",level:3},{value:"Variable",id:"variable",level:3},{value:"Precondition",id:"precondition",level:3}],N={toc:k};function s(t){var e=t.components,n=(0,l.Z)(t,i);return(0,r.kt)("wrapper",(0,a.Z)({},N,n,{components:e,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"api-reference"},"API Reference"),(0,r.kt)("h2",{id:"cli"},"CLI"),(0,r.kt)("p",null,"Task command line tool has the following syntax:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"task [--flags] [tasks...] [-- CLI_ARGS...]\n")),(0,r.kt)("div",{className:"admonition admonition-tip alert alert--success"},(0,r.kt)("div",{parentName:"div",className:"admonition-heading"},(0,r.kt)("h5",{parentName:"div"},(0,r.kt)("span",{parentName:"h5",className:"admonition-icon"},(0,r.kt)("svg",{parentName:"span",xmlns:"http://www.w3.org/2000/svg",width:"12",height:"16",viewBox:"0 0 12 16"},(0,r.kt)("path",{parentName:"svg",fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"}))),"tip")),(0,r.kt)("div",{parentName:"div",className:"admonition-content"},(0,r.kt)("p",{parentName:"div"},"If ",(0,r.kt)("inlineCode",{parentName:"p"},"--")," is given, all remaning arguments to assigned to a special ",(0,r.kt)("inlineCode",{parentName:"p"},"CLI_ARGS"),"\nvariable"))),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"Short"),(0,r.kt)("th",{parentName:"tr",align:null},"Flag"),(0,r.kt)("th",{parentName:"tr",align:null},"Type"),(0,r.kt)("th",{parentName:"tr",align:null},"Default"),(0,r.kt)("th",{parentName:"tr",align:null},"Description"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"-c")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"--color")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"bool")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"true")),(0,r.kt)("td",{parentName:"tr",align:null},"Colored output. Enabled by default. Set flag to ",(0,r.kt)("inlineCode",{parentName:"td"},"false")," or use ",(0,r.kt)("inlineCode",{parentName:"td"},"NO_COLOR=1")," to disable.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"-C")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"--concurrency")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"int")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"0")),(0,r.kt)("td",{parentName:"tr",align:null},"Limit number tasks to run concurrently. Zero means unlimited.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"-d")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"--dir")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"string")),(0,r.kt)("td",{parentName:"tr",align:null},"Working directory"),(0,r.kt)("td",{parentName:"tr",align:null},"Sets directory of execution.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null}),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"--dry")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"bool")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"false")),(0,r.kt)("td",{parentName:"tr",align:null},"Compiles and prints tasks in the order that they would be run, without executing them.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"-f")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"--force")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"bool")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"false")),(0,r.kt)("td",{parentName:"tr",align:null},"Forces execution even when the task is up-to-date.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"-h")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"--help")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"bool")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"false")),(0,r.kt)("td",{parentName:"tr",align:null},"Shows Task usage.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"-i")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"--init")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"bool")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"false")),(0,r.kt)("td",{parentName:"tr",align:null},"Creates a new Taskfile.yaml in the current folder.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"-l")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"--list")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"bool")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"false")),(0,r.kt)("td",{parentName:"tr",align:null},"Lists tasks with description of current Taskfile.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"-a")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"--list-all")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"bool")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"false")),(0,r.kt)("td",{parentName:"tr",align:null},"Lists tasks with or without a description.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"-o")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"--output")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"string")),(0,r.kt)("td",{parentName:"tr",align:null},"Default set in the Taskfile or ",(0,r.kt)("inlineCode",{parentName:"td"},"intervealed")),(0,r.kt)("td",{parentName:"tr",align:null},"Sets output style: ","[",(0,r.kt)("inlineCode",{parentName:"td"},"interleaved"),"/",(0,r.kt)("inlineCode",{parentName:"td"},"group"),"/",(0,r.kt)("inlineCode",{parentName:"td"},"prefixed"),"]",".")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null}),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"--output-group-begin")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"string")),(0,r.kt)("td",{parentName:"tr",align:null}),(0,r.kt)("td",{parentName:"tr",align:null},"Message template to print before a task's grouped output.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null}),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"--output-group-end ")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"string")),(0,r.kt)("td",{parentName:"tr",align:null}),(0,r.kt)("td",{parentName:"tr",align:null},"Message template to print after a task's grouped output.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"-p")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"--parallel")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"bool")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"false")),(0,r.kt)("td",{parentName:"tr",align:null},"Executes tasks provided on command line in parallel.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"-s")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"--silent")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"bool")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"false")),(0,r.kt)("td",{parentName:"tr",align:null},"Disables echoing.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null}),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"--status")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"bool")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"false")),(0,r.kt)("td",{parentName:"tr",align:null},"Exits with non-zero exit code if any of the given tasks is not up-to-date.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null}),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"--summary")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"bool")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"false")),(0,r.kt)("td",{parentName:"tr",align:null},"Show summary about a task.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"-t")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"--taskfile")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"string")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"Taskfile.yml")," or ",(0,r.kt)("inlineCode",{parentName:"td"},"Taskfile.yaml")),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"-v")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"--verbose")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"bool")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"false")),(0,r.kt)("td",{parentName:"tr",align:null},"Enables verbose mode.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null}),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"--version")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"bool")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"false")),(0,r.kt)("td",{parentName:"tr",align:null},"Show Task version.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"-w")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"--watch")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"bool")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"false")),(0,r.kt)("td",{parentName:"tr",align:null},"Enables watch of the given task.")))),(0,r.kt)("h2",{id:"schema"},"Schema"),(0,r.kt)("h3",{id:"taskfile"},"Taskfile"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"Attribute"),(0,r.kt)("th",{parentName:"tr",align:null},"Type"),(0,r.kt)("th",{parentName:"tr",align:null},"Default"),(0,r.kt)("th",{parentName:"tr",align:null},"Description"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"version")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"string")),(0,r.kt)("td",{parentName:"tr",align:null}),(0,r.kt)("td",{parentName:"tr",align:null},"Version of the Taskfile. The current version is ",(0,r.kt)("inlineCode",{parentName:"td"},"3"),".")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"includes")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("a",{parentName:"td",href:"#include"},(0,r.kt)("inlineCode",{parentName:"a"},"map[string]Include"))),(0,r.kt)("td",{parentName:"tr",align:null}),(0,r.kt)("td",{parentName:"tr",align:null},"Additional Taskfiles to be included.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"output")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"string")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"interleaved")),(0,r.kt)("td",{parentName:"tr",align:null},"Output mode. Available options: ",(0,r.kt)("inlineCode",{parentName:"td"},"interleaved"),", ",(0,r.kt)("inlineCode",{parentName:"td"},"group")," and ",(0,r.kt)("inlineCode",{parentName:"td"},"prefixed"),".")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"method")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"string")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"checksum")),(0,r.kt)("td",{parentName:"tr",align:null},"Default method in this Taskfile. Can be overriden in a task by task basis. Available options: ",(0,r.kt)("inlineCode",{parentName:"td"},"checksum"),", ",(0,r.kt)("inlineCode",{parentName:"td"},"timestamp")," and ",(0,r.kt)("inlineCode",{parentName:"td"},"none"),".")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"silent")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"bool")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"false")),(0,r.kt)("td",{parentName:"tr",align:null},'Default "silent" options for this Taskfile. If ',(0,r.kt)("inlineCode",{parentName:"td"},"false"),", can be overidden with ",(0,r.kt)("inlineCode",{parentName:"td"},"true")," in a task by task basis.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"run")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"string")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"always")),(0,r.kt)("td",{parentName:"tr",align:null},'Default "run" option for this Taskfile. Available options: ',(0,r.kt)("inlineCode",{parentName:"td"},"always"),", ",(0,r.kt)("inlineCode",{parentName:"td"},"once")," and ",(0,r.kt)("inlineCode",{parentName:"td"},"when_changed"),".")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"vars")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("a",{parentName:"td",href:"#variable"},(0,r.kt)("inlineCode",{parentName:"a"},"map[string]Variable"))),(0,r.kt)("td",{parentName:"tr",align:null}),(0,r.kt)("td",{parentName:"tr",align:null},"Global variables.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"env")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("a",{parentName:"td",href:"#variable"},(0,r.kt)("inlineCode",{parentName:"a"},"map[string]Variable"))),(0,r.kt)("td",{parentName:"tr",align:null}),(0,r.kt)("td",{parentName:"tr",align:null},"Global environment.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"dotenv")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"[]string")),(0,r.kt)("td",{parentName:"tr",align:null}),(0,r.kt)("td",{parentName:"tr",align:null},"A list of ",(0,r.kt)("inlineCode",{parentName:"td"},".env")," file paths to be parsed.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"tasks")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("a",{parentName:"td",href:"#task"},(0,r.kt)("inlineCode",{parentName:"a"},"map[string]Task"))),(0,r.kt)("td",{parentName:"tr",align:null}),(0,r.kt)("td",{parentName:"tr",align:null},"The task definitions.")))),(0,r.kt)("h3",{id:"include"},"Include"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"Attribute"),(0,r.kt)("th",{parentName:"tr",align:null},"Type"),(0,r.kt)("th",{parentName:"tr",align:null},"Default"),(0,r.kt)("th",{parentName:"tr",align:null},"Description"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"taskfile")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"string")),(0,r.kt)("td",{parentName:"tr",align:null}),(0,r.kt)("td",{parentName:"tr",align:null},"The path for the Taskfile or directory to be included. If a directory, Task will look for files named ",(0,r.kt)("inlineCode",{parentName:"td"},"Taskfile.yml")," or ",(0,r.kt)("inlineCode",{parentName:"td"},"Taskfile.yaml")," inside that directory.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"dir")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"string")),(0,r.kt)("td",{parentName:"tr",align:null},"The parent Taskfile directory"),(0,r.kt)("td",{parentName:"tr",align:null},"The working directory of the included tasks when run.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"optional")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"bool")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"false")),(0,r.kt)("td",{parentName:"tr",align:null},"If ",(0,r.kt)("inlineCode",{parentName:"td"},"true"),", no errors will be thrown if the specified file does not exist.")))),(0,r.kt)("div",{className:"admonition admonition-info alert alert--info"},(0,r.kt)("div",{parentName:"div",className:"admonition-heading"},(0,r.kt)("h5",{parentName:"div"},(0,r.kt)("span",{parentName:"h5",className:"admonition-icon"},(0,r.kt)("svg",{parentName:"span",xmlns:"http://www.w3.org/2000/svg",width:"14",height:"16",viewBox:"0 0 14 16"},(0,r.kt)("path",{parentName:"svg",fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"}))),"info")),(0,r.kt)("div",{parentName:"div",className:"admonition-content"},(0,r.kt)("p",{parentName:"div"},"Informing only a string like below is equivalent to setting that value to the ",(0,r.kt)("inlineCode",{parentName:"p"},"taskfile")," attribute."),(0,r.kt)("pre",{parentName:"div"},(0,r.kt)("code",{parentName:"pre",className:"language-yaml"},"includes:\n  foo: ./path\n")))),(0,r.kt)("h3",{id:"task"},"Task"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"Attribute"),(0,r.kt)("th",{parentName:"tr",align:null},"Type"),(0,r.kt)("th",{parentName:"tr",align:null},"Default"),(0,r.kt)("th",{parentName:"tr",align:null},"Description"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"desc")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"string")),(0,r.kt)("td",{parentName:"tr",align:null}),(0,r.kt)("td",{parentName:"tr",align:null},"A short description of the task. This is listed when calling ",(0,r.kt)("inlineCode",{parentName:"td"},"task --list"),".")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"summary")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"string")),(0,r.kt)("td",{parentName:"tr",align:null}),(0,r.kt)("td",{parentName:"tr",align:null},"A longer description of the task. This is listed when calling ",(0,r.kt)("inlineCode",{parentName:"td"},"task --summary [task]"),".")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"sources")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"[]string")),(0,r.kt)("td",{parentName:"tr",align:null}),(0,r.kt)("td",{parentName:"tr",align:null},"List of sources to check before running this task. Relevant for ",(0,r.kt)("inlineCode",{parentName:"td"},"checksum")," and ",(0,r.kt)("inlineCode",{parentName:"td"},"timestamp")," methods. Can be file paths or star globs.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"dir")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"string")),(0,r.kt)("td",{parentName:"tr",align:null}),(0,r.kt)("td",{parentName:"tr",align:null},"The current directory which this task should run.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"method")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"string")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"checksum")),(0,r.kt)("td",{parentName:"tr",align:null},"Method used by this task. Default to the one declared globally or ",(0,r.kt)("inlineCode",{parentName:"td"},"checksum"),". Available options: ",(0,r.kt)("inlineCode",{parentName:"td"},"checksum"),", ",(0,r.kt)("inlineCode",{parentName:"td"},"timestamp")," and ",(0,r.kt)("inlineCode",{parentName:"td"},"none"))),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"silent")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"bool")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"false")),(0,r.kt)("td",{parentName:"tr",align:null},"Skips some output for this task. Note that STDOUT and STDERR of the commands will still be redirected.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"run")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"string")),(0,r.kt)("td",{parentName:"tr",align:null},"The one declared globally in the Taskfile or ",(0,r.kt)("inlineCode",{parentName:"td"},"always")),(0,r.kt)("td",{parentName:"tr",align:null},"Specifies whether the task should run again or not if called more than once. Available options: ",(0,r.kt)("inlineCode",{parentName:"td"},"always"),", ",(0,r.kt)("inlineCode",{parentName:"td"},"once")," and ",(0,r.kt)("inlineCode",{parentName:"td"},"when_changed"),".")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"prefix")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"string")),(0,r.kt)("td",{parentName:"tr",align:null}),(0,r.kt)("td",{parentName:"tr",align:null},"Allows to override the prefix print before the STDOUT. Only relevant when using the ",(0,r.kt)("inlineCode",{parentName:"td"},"prefixed")," output mode.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"ignore_error")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"bool")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"false")),(0,r.kt)("td",{parentName:"tr",align:null},"Continue execution if errors happen while executing the commands.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"generates")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"[]string")),(0,r.kt)("td",{parentName:"tr",align:null}),(0,r.kt)("td",{parentName:"tr",align:null},"List of files meant to be generated by this task. Relevant for ",(0,r.kt)("inlineCode",{parentName:"td"},"timestamp")," method. Can be file paths or star globs.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"status")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"[]string")),(0,r.kt)("td",{parentName:"tr",align:null}),(0,r.kt)("td",{parentName:"tr",align:null},"List of commands to check if this task should run. The task is skipped otherwise. This overrides ",(0,r.kt)("inlineCode",{parentName:"td"},"method"),", ",(0,r.kt)("inlineCode",{parentName:"td"},"sources")," and ",(0,r.kt)("inlineCode",{parentName:"td"},"generates"),".")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"preconditions")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("a",{parentName:"td",href:"#precondition"},(0,r.kt)("inlineCode",{parentName:"a"},"[]Precondition"))),(0,r.kt)("td",{parentName:"tr",align:null}),(0,r.kt)("td",{parentName:"tr",align:null},"List of commands to check if this task should run. The task errors otherwise.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"vars")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("a",{parentName:"td",href:"#variable"},(0,r.kt)("inlineCode",{parentName:"a"},"map[string]Variable"))),(0,r.kt)("td",{parentName:"tr",align:null}),(0,r.kt)("td",{parentName:"tr",align:null},"Task variables.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"env")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("a",{parentName:"td",href:"#variable"},(0,r.kt)("inlineCode",{parentName:"a"},"map[string]Variable"))),(0,r.kt)("td",{parentName:"tr",align:null}),(0,r.kt)("td",{parentName:"tr",align:null},"Task environment.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"deps")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("a",{parentName:"td",href:"#dependency"},(0,r.kt)("inlineCode",{parentName:"a"},"[]Dependency"))),(0,r.kt)("td",{parentName:"tr",align:null}),(0,r.kt)("td",{parentName:"tr",align:null},"List of dependencies of this task.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"cmds")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("a",{parentName:"td",href:"#command"},(0,r.kt)("inlineCode",{parentName:"a"},"[]Command"))),(0,r.kt)("td",{parentName:"tr",align:null}),(0,r.kt)("td",{parentName:"tr",align:null},"List of commands to be executed.")))),(0,r.kt)("div",{className:"admonition admonition-info alert alert--info"},(0,r.kt)("div",{parentName:"div",className:"admonition-heading"},(0,r.kt)("h5",{parentName:"div"},(0,r.kt)("span",{parentName:"h5",className:"admonition-icon"},(0,r.kt)("svg",{parentName:"span",xmlns:"http://www.w3.org/2000/svg",width:"14",height:"16",viewBox:"0 0 14 16"},(0,r.kt)("path",{parentName:"svg",fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"}))),"info")),(0,r.kt)("div",{parentName:"div",className:"admonition-content"},(0,r.kt)("p",{parentName:"div"},"These alternative syntaxes are available. They will set the given values to\n",(0,r.kt)("inlineCode",{parentName:"p"},"cmds")," and everything else will be set to their default values:"),(0,r.kt)("pre",{parentName:"div"},(0,r.kt)("code",{parentName:"pre",className:"language-yaml"},'tasks:\n  foo: echo "foo"\n\n  foobar:\n    - echo "foo"\n    - echo "bar"\n')))),(0,r.kt)("h3",{id:"dependency"},"Dependency"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"Attribute"),(0,r.kt)("th",{parentName:"tr",align:null},"Type"),(0,r.kt)("th",{parentName:"tr",align:null},"Default"),(0,r.kt)("th",{parentName:"tr",align:null},"Description"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"task")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"string")),(0,r.kt)("td",{parentName:"tr",align:null}),(0,r.kt)("td",{parentName:"tr",align:null},"The task to be execute as a dependency.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"vars")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("a",{parentName:"td",href:"#variable"},(0,r.kt)("inlineCode",{parentName:"a"},"map[string]Variable"))),(0,r.kt)("td",{parentName:"tr",align:null}),(0,r.kt)("td",{parentName:"tr",align:null},"Optional additional variables to be passed to this task.")))),(0,r.kt)("div",{className:"admonition admonition-tip alert alert--success"},(0,r.kt)("div",{parentName:"div",className:"admonition-heading"},(0,r.kt)("h5",{parentName:"div"},(0,r.kt)("span",{parentName:"h5",className:"admonition-icon"},(0,r.kt)("svg",{parentName:"span",xmlns:"http://www.w3.org/2000/svg",width:"12",height:"16",viewBox:"0 0 12 16"},(0,r.kt)("path",{parentName:"svg",fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"}))),"tip")),(0,r.kt)("div",{parentName:"div",className:"admonition-content"},(0,r.kt)("p",{parentName:"div"},"If you don't want to set additional variables, it's enough to declare the\ndependency as a list of strings (they will be assigned to ",(0,r.kt)("inlineCode",{parentName:"p"},"task"),"):"),(0,r.kt)("pre",{parentName:"div"},(0,r.kt)("code",{parentName:"pre",className:"language-yaml"},"tasks:\n  foo:\n    deps: [foo, bar]\n")))),(0,r.kt)("h3",{id:"command"},"Command"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"Attribute"),(0,r.kt)("th",{parentName:"tr",align:null},"Type"),(0,r.kt)("th",{parentName:"tr",align:null},"Default"),(0,r.kt)("th",{parentName:"tr",align:null},"Description"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"cmd")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"string")),(0,r.kt)("td",{parentName:"tr",align:null}),(0,r.kt)("td",{parentName:"tr",align:null},"The shell command to be executed.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"defer")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"string")),(0,r.kt)("td",{parentName:"tr",align:null}),(0,r.kt)("td",{parentName:"tr",align:null},"Alternative to ",(0,r.kt)("inlineCode",{parentName:"td"},"cmd"),", but schedules the command to be executed at the end of this task instead of immediately. This cannot be used together with ",(0,r.kt)("inlineCode",{parentName:"td"},"cmd"),".")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"silent")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"bool")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"false")),(0,r.kt)("td",{parentName:"tr",align:null},"Skips some output for this command. Note that STDOUT and STDERR of the commands will still be redirected.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"ignore_error")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"bool")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"false")),(0,r.kt)("td",{parentName:"tr",align:null},"Continue execution if errors happen while executing the command.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"task")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"string")),(0,r.kt)("td",{parentName:"tr",align:null}),(0,r.kt)("td",{parentName:"tr",align:null},"Set this to trigger execution of another task instead of running a command. This cannot be set together with ",(0,r.kt)("inlineCode",{parentName:"td"},"cmd"),".")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"vars")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("a",{parentName:"td",href:"#variable"},(0,r.kt)("inlineCode",{parentName:"a"},"map[string]Variable"))),(0,r.kt)("td",{parentName:"tr",align:null}),(0,r.kt)("td",{parentName:"tr",align:null},"Optional additional variables to be passed to the referenced task. Only relevant when setting ",(0,r.kt)("inlineCode",{parentName:"td"},"task")," instead of ",(0,r.kt)("inlineCode",{parentName:"td"},"cmd"),".")))),(0,r.kt)("div",{className:"admonition admonition-info alert alert--info"},(0,r.kt)("div",{parentName:"div",className:"admonition-heading"},(0,r.kt)("h5",{parentName:"div"},(0,r.kt)("span",{parentName:"h5",className:"admonition-icon"},(0,r.kt)("svg",{parentName:"span",xmlns:"http://www.w3.org/2000/svg",width:"14",height:"16",viewBox:"0 0 14 16"},(0,r.kt)("path",{parentName:"svg",fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"}))),"info")),(0,r.kt)("div",{parentName:"div",className:"admonition-content"},(0,r.kt)("p",{parentName:"div"},"If given as a a string, the value will be assigned to ",(0,r.kt)("inlineCode",{parentName:"p"},"cmd"),":"),(0,r.kt)("pre",{parentName:"div"},(0,r.kt)("code",{parentName:"pre",className:"language-yaml"},'tasks:\n  foo:\n    cmds:\n      - echo "foo"\n      - echo "bar"\n')))),(0,r.kt)("h3",{id:"variable"},"Variable"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"Attribute"),(0,r.kt)("th",{parentName:"tr",align:null},"Type"),(0,r.kt)("th",{parentName:"tr",align:null},"Default"),(0,r.kt)("th",{parentName:"tr",align:null},"Description"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("em",{parentName:"td"},"itself")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"string")),(0,r.kt)("td",{parentName:"tr",align:null}),(0,r.kt)("td",{parentName:"tr",align:null},"A static value that will be set to the variable.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"sh")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"string")),(0,r.kt)("td",{parentName:"tr",align:null}),(0,r.kt)("td",{parentName:"tr",align:null},"A shell command. The output (",(0,r.kt)("inlineCode",{parentName:"td"},"STDOUT"),") will be assigned to the variable.")))),(0,r.kt)("div",{className:"admonition admonition-info alert alert--info"},(0,r.kt)("div",{parentName:"div",className:"admonition-heading"},(0,r.kt)("h5",{parentName:"div"},(0,r.kt)("span",{parentName:"h5",className:"admonition-icon"},(0,r.kt)("svg",{parentName:"span",xmlns:"http://www.w3.org/2000/svg",width:"14",height:"16",viewBox:"0 0 14 16"},(0,r.kt)("path",{parentName:"svg",fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"}))),"info")),(0,r.kt)("div",{parentName:"div",className:"admonition-content"},(0,r.kt)("p",{parentName:"div"},"Static and dynamic variables have different syntaxes, like below:"),(0,r.kt)("pre",{parentName:"div"},(0,r.kt)("code",{parentName:"pre",className:"language-yaml"},'vars:\n  STATIC: static\n  DYNAMIC:\n    sh: echo "dynamic"\n')))),(0,r.kt)("h3",{id:"precondition"},"Precondition"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"Attribute"),(0,r.kt)("th",{parentName:"tr",align:null},"Type"),(0,r.kt)("th",{parentName:"tr",align:null},"Default"),(0,r.kt)("th",{parentName:"tr",align:null},"Description"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"sh")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"string")),(0,r.kt)("td",{parentName:"tr",align:null}),(0,r.kt)("td",{parentName:"tr",align:null},"Command to be executed. If a non-zero exit code is returned, the task errors without executing its commands.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"msg")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"string")),(0,r.kt)("td",{parentName:"tr",align:null}),(0,r.kt)("td",{parentName:"tr",align:null},"Optional message to print if the precondition isn't met.")))),(0,r.kt)("div",{className:"admonition admonition-tip alert alert--success"},(0,r.kt)("div",{parentName:"div",className:"admonition-heading"},(0,r.kt)("h5",{parentName:"div"},(0,r.kt)("span",{parentName:"h5",className:"admonition-icon"},(0,r.kt)("svg",{parentName:"span",xmlns:"http://www.w3.org/2000/svg",width:"12",height:"16",viewBox:"0 0 12 16"},(0,r.kt)("path",{parentName:"svg",fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"}))),"tip")),(0,r.kt)("div",{parentName:"div",className:"admonition-content"},(0,r.kt)("p",{parentName:"div"},"If you don't want to set a different message, you can declare a precondition\nlike this and the value will be assigned to ",(0,r.kt)("inlineCode",{parentName:"p"},"sh"),":"),(0,r.kt)("pre",{parentName:"div"},(0,r.kt)("code",{parentName:"pre",className:"language-yaml"},"tasks:\n  foo:\n    precondition: test -f Taskfile.yml\n")))))}s.isMDXComponent=!0}}]);
\ No newline at end of file
diff --git a/assets/js/main.02eb1717.js b/assets/js/main.02eb1717.js
deleted file mode 100644
index b0b891dc..00000000
--- a/assets/js/main.02eb1717.js
+++ /dev/null
@@ -1,2 +0,0 @@
-/*! For license information please see main.02eb1717.js.LICENSE.txt */
-(self.webpackChunktaskfile_dev=self.webpackChunktaskfile_dev||[]).push([[179],{9782:function(e,t){"use strict";t.Z={title:"Task",tagline:"A task runner / simpler Make alternative written in Go ",url:"https://taskfile.dev",baseUrl:"/",onBrokenLinks:"throw",onBrokenMarkdownLinks:"throw",favicon:"img/favicon.ico",organizationName:"go-task",projectName:"task",deploymentBranch:"gh-pages",i18n:{defaultLocale:"en",locales:["en"],localeConfigs:{}},presets:[["classic",{docs:{routeBasePath:"/",sidebarPath:"/home/runner/work/task/task/docs/sidebars.js"},blog:!1,theme:{customCss:["/home/runner/work/task/task/docs/src/css/custom.css","/home/runner/work/task/task/docs/src/css/carbon.css"]},gtag:{trackingID:"G-4RT25NXQ7N",anonymizeIP:!0},sitemap:{changefreq:"weekly",priority:.5,ignorePatterns:["/tags/**"]}}]],themeConfig:{metadata:[{name:"og:image",content:"https://preview-taskfile.netlify.app/img/logo.svg"}],navbar:{title:"Task",logo:{alt:"Task Logo",src:"img/logo.svg"},items:[{type:"doc",docId:"installation",position:"left",label:"Installation"},{type:"doc",docId:"usage",position:"left",label:"Usage"},{type:"doc",docId:"donate",position:"left",label:"Donate"},{href:"https://github.com/go-task/task",label:"GitHub",position:"right"},{href:"https://discord.gg/6TY36E39UK",label:"Discord",position:"right"}],hideOnScroll:!1},footer:{style:"dark",links:[{title:"Docs",items:[{label:"Installation",to:"/installation/"},{label:"Usage",to:"/usage/"},{label:"Donate",to:"/donate/"}]},{title:"Community",items:[{label:"GitHub",href:"https://github.com/go-task/task"},{label:"Discord",href:"https://discord.gg/6TY36E39UK"},{label:"OpenCollective",href:"https://opencollective.com/task"}]}]},prism:{theme:{plain:{color:"#393A34",backgroundColor:"#f6f8fa"},styles:[{types:["comment","prolog","doctype","cdata"],style:{color:"#999988",fontStyle:"italic"}},{types:["namespace"],style:{opacity:.7}},{types:["string","attr-value"],style:{color:"#e3116c"}},{types:["punctuation","operator"],style:{color:"#393A34"}},{types:["entity","url","symbol","number","boolean","variable","constant","property","regex","inserted"],style:{color:"#36acaa"}},{types:["atrule","keyword","attr-name","selector"],style:{color:"#00a4db"}},{types:["function","deleted","tag"],style:{color:"#d73a49"}},{types:["function-variable"],style:{color:"#6f42c1"}},{types:["tag","selector","keyword"],style:{color:"#00009f"}}]},darkTheme:{plain:{color:"#F8F8F2",backgroundColor:"#282A36"},styles:[{types:["prolog","constant","builtin"],style:{color:"rgb(189, 147, 249)"}},{types:["inserted","function"],style:{color:"rgb(80, 250, 123)"}},{types:["deleted"],style:{color:"rgb(255, 85, 85)"}},{types:["changed"],style:{color:"rgb(255, 184, 108)"}},{types:["punctuation","symbol"],style:{color:"rgb(248, 248, 242)"}},{types:["string","char","tag","selector"],style:{color:"rgb(255, 121, 198)"}},{types:["keyword","variable"],style:{color:"rgb(189, 147, 249)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(98, 114, 164)"}},{types:["attr-name"],style:{color:"rgb(241, 250, 140)"}}]},additionalLanguages:[],magicComments:[{className:"theme-code-block-highlighted-line",line:"highlight-next-line",block:{start:"highlight-start",end:"highlight-end"}}]},colorMode:{defaultMode:"light",disableSwitch:!1,respectPrefersColorScheme:!1},docs:{versionPersistence:"localStorage",sidebar:{hideable:!1,autoCollapseCategories:!1}},tableOfContents:{minHeadingLevel:2,maxHeadingLevel:3}},scripts:[{src:"/js/carbon.js",async:!0}],baseUrlIssueBanner:!0,onDuplicateRoutes:"warn",staticDirectories:["static"],customFields:{},plugins:[],themes:[],stylesheets:[],clientModules:[],titleDelimiter:"|",noIndex:!1}},723:function(e,t,n){"use strict";n.d(t,{Z:function(){return p}});var r=n(7294),a=n(7462),o=n(8356),i=n.n(o);function l(e){var t=e.error,n=e.retry,a=e.pastDelay;return t?r.createElement("div",{style:{textAlign:"center",color:"#fff",backgroundColor:"#fa383e",borderColor:"#fa383e",borderStyle:"solid",borderRadius:"0.25rem",borderWidth:"1px",boxSizing:"border-box",display:"block",padding:"1rem",flex:"0 0 50%",marginLeft:"25%",marginRight:"25%",marginTop:"5rem",maxWidth:"50%",width:"100%"}},r.createElement("p",null,t.message),r.createElement("div",null,r.createElement("button",{type:"button",onClick:n},"Retry"))):a?r.createElement("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh"}},r.createElement("svg",{id:"loader",style:{width:128,height:110,position:"absolute",top:"calc(100vh - 64%)"},viewBox:"0 0 45 45",xmlns:"http://www.w3.org/2000/svg",stroke:"#61dafb"},r.createElement("g",{fill:"none",fillRule:"evenodd",transform:"translate(1 1)",strokeWidth:"2"},r.createElement("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0"},r.createElement("animate",{attributeName:"r",begin:"1.5s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-opacity",begin:"1.5s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-width",begin:"1.5s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})),r.createElement("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0"},r.createElement("animate",{attributeName:"r",begin:"3s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-opacity",begin:"3s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-width",begin:"3s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})),r.createElement("circle",{cx:"22",cy:"22",r:"8"},r.createElement("animate",{attributeName:"r",begin:"0s",dur:"1.5s",values:"6;1;2;3;4;5;6",calcMode:"linear",repeatCount:"indefinite"}))))):null}var u=n(6887),s={"0afd354a":[function(){return n.e(552).then(n.bind(n,2926))},"@site/docs/taskfile_versions.md",2926],"0e384e19":[function(){return n.e(671).then(n.bind(n,9881))},"@site/docs/intro.md",9881],17896441:[function(){return Promise.all([n.e(532),n.e(918)]).then(n.bind(n,7209))},"@theme/DocItem",7209],"1be78505":[function(){return Promise.all([n.e(532),n.e(514)]).then(n.bind(n,9068))},"@theme/DocPage",9068],"1c56b476":[function(){return n.e(713).then(n.bind(n,2577))},"@site/docs/donate.md",2577],"3b8c55ea":[function(){return n.e(217).then(n.bind(n,9803))},"@site/docs/installation.md",9803],"3c140c84":[function(){return n.e(648).then(n.bind(n,3501))},"@site/docs/styleguide.md",3501],"5ef0e9d6":[function(){return n.e(880).then(n.bind(n,5330))},"@site/docs/community.md",5330],"6476eba6":[function(){return n.e(827).then(n.bind(n,2175))},"@site/docs/usage.md",2175],"7d415946":[function(){return n.e(705).then(n.bind(n,8134))},"@site/docs/releasing.md",8134],"935f2afb":[function(){return n.e(53).then(n.t.bind(n,1109,19))},"~docs/default/version-current-metadata-prop-751.json",1109],"9beb87c2":[function(){return n.e(80).then(n.bind(n,1016))},"@site/docs/changelog.md",1016],d0766b26:[function(){return n.e(595).then(n.t.bind(n,3769,19))},"/home/runner/work/task/task/docs/.docusaurus/docusaurus-plugin-content-docs/default/plugin-route-context-module-100.json",3769]},c=n(9670),f=n(226);function d(e,t){if("*"===e)return i()({loading:l,loader:function(){return n.e(608).then(n.bind(n,4608)).then((function(e){var t=e.default;return function(e){return r.createElement(f.z,{value:{plugin:{name:"native",id:"default"}}},r.createElement(t,e))}}))}});var o=u[e+"-"+t],d={},p=[],m=[],h=(0,c.Z)(o);return Object.entries(h).forEach((function(e){var t=e[0],n=e[1],r=s[n];r&&(d[t]=r[0],p.push(r[1]),m.push(r[2]))})),i().Map({loading:l,loader:d,modules:p,webpack:function(){return m},render:function(t,n){var i=JSON.parse(JSON.stringify(o));Object.entries(t).forEach((function(t){var n=t[0],r=t[1],a=r.default;if(!a)throw new Error("The page component at "+e+" doesn't have a default export. This makes it impossible to render anything. Consider default-exporting a React component.");"object"!=typeof a&&"function"!=typeof a||Object.keys(r).filter((function(e){return"default"!==e})).forEach((function(e){a[e]=r[e]}));var o=i,l=n.split(".");l.slice(0,-1).forEach((function(e){o=o[e]})),o[l[l.length-1]]=a}));var l=i.__comp;delete i.__comp;var u=i.__context;return delete i.__context,r.createElement(f.z,{value:u},r.createElement(l,(0,a.Z)({},i,n)))}})}var p=[{path:"/",component:d("/","4ef"),routes:[{path:"/",component:d("/","96c"),exact:!0,sidebar:"tutorialSidebar"},{path:"/changelog/",component:d("/changelog/","6e0"),exact:!0,sidebar:"tutorialSidebar"},{path:"/community/",component:d("/community/","bea"),exact:!0,sidebar:"tutorialSidebar"},{path:"/donate/",component:d("/donate/","bf9"),exact:!0,sidebar:"tutorialSidebar"},{path:"/installation/",component:d("/installation/","5f4"),exact:!0,sidebar:"tutorialSidebar"},{path:"/releasing/",component:d("/releasing/","94f"),exact:!0,sidebar:"tutorialSidebar"},{path:"/styleguide/",component:d("/styleguide/","68d"),exact:!0,sidebar:"tutorialSidebar"},{path:"/taskfile-versions/",component:d("/taskfile-versions/","045"),exact:!0,sidebar:"tutorialSidebar"},{path:"/usage/",component:d("/usage/","6a8"),exact:!0,sidebar:"tutorialSidebar"}]},{path:"*",component:d("*")}]},8934:function(e,t,n){"use strict";n.d(t,{_:function(){return a},t:function(){return o}});var r=n(7294),a=r.createContext(!1);function o(e){var t=e.children,n=(0,r.useState)(!1),o=n[0],i=n[1];return(0,r.useEffect)((function(){i(!0)}),[]),r.createElement(a.Provider,{value:o},t)}},8864:function(e,t,n){"use strict";var r=n(7294),a=n(3935),o=n(3727),i=n(405),l=n(412),u=[n(6657),n(2497),n(2448),n(6743),n(8320),n(2295),n(4383)],s=n(723),c=n(6775),f=n(8790),d=new Map;function p(e){if(d.has(e.pathname))return Object.assign({},e,{pathname:d.get(e.pathname)});if((0,f.f)(s.Z,e.pathname).some((function(e){return!0===e.route.exact})))return d.set(e.pathname,e.pathname),e;var t=e.pathname.trim().replace(/(?:\/index)?\.html$/,"")||"/";return d.set(e.pathname,t),Object.assign({},e,{pathname:t})}var m=n(8934),h=n(595),g=n(4578);function v(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];var a=u.map((function(t){var r,a,o=null!=(r=null==t||null==(a=t.default)?void 0:a[e])?r:t[e];return null==o?void 0:o.apply(void 0,n)}));return function(){return a.forEach((function(e){return null==e?void 0:e()}))}}var b=function(e){var t=e.children,n=e.location,a=e.previousLocation;return(0,r.useLayoutEffect)((function(){a!==n&&(a&&function(e){var t=e.hash;if(t){var n=decodeURIComponent(t.substring(1)),r=document.getElementById(n);null==r||r.scrollIntoView()}else window.scrollTo(0,0)}(n),v("onRouteDidUpdate",{previousLocation:a,location:n}))}),[a,n]),t};function y(e){var t=(0,f.f)(s.Z,e);return Promise.all(t.map((function(e){var t;return null==(t=e.route.component)||null==t.preload?void 0:t.preload()})))}var w=function(e){function t(t){var n;return(n=e.call(this,t)||this).previousLocation=null,n.routeUpdateCleanupCb=l.Z.canUseDOM?v("onRouteUpdate",{previousLocation:null,location:n.props.location}):function(){},n.state={nextRouteHasLoaded:!0},n}(0,g.Z)(t,e);var n=t.prototype;return n.shouldComponentUpdate=function(e,t){var n=this;if(e.location===this.props.location)return t.nextRouteHasLoaded;var r=e.location;return this.previousLocation=this.props.location,this.setState({nextRouteHasLoaded:!1}),this.routeUpdateCleanupCb=v("onRouteUpdate",{previousLocation:this.previousLocation,location:r}),y(r.pathname).then((function(){null==n.routeUpdateCleanupCb||n.routeUpdateCleanupCb(),n.setState({nextRouteHasLoaded:!0})})).catch((function(e){return console.warn(e)})),!1},n.render=function(){var e=this.props,t=e.children,n=e.location;return r.createElement(b,{previousLocation:this.previousLocation,location:n},r.createElement(c.AW,{location:n,render:function(){return t}}))},t}(r.Component),k=n(5742),E=n(2263),S="docusaurus-base-url-issue-banner-container",x="docusaurus-base-url-issue-banner-suggestion-container",_="__DOCUSAURUS_INSERT_BASEURL_BANNER";function C(e){return"\nwindow['"+_+"'] = true;\n\ndocument.addEventListener('DOMContentLoaded', maybeInsertBanner);\n\nfunction maybeInsertBanner() {\n  var shouldInsert = window['"+_+"'];\n  shouldInsert && insertBanner();\n}\n\nfunction insertBanner() {\n  var bannerContainer = document.getElementById('"+S+"');\n  if (!bannerContainer) {\n    return;\n  }\n  var bannerHtml = "+JSON.stringify(function(e){return'\n<div id="docusaurus-base-url-issue-banner" style="border: thick solid red; background-color: rgb(255, 230, 179); margin: 20px; padding: 20px; font-size: 20px;">\n   <p style="font-weight: bold; font-size: 30px;">Your Docusaurus site did not load properly.</p>\n   <p>A very common reason is a wrong site <a href="https://docusaurus.io/docs/docusaurus.config.js/#baseurl" style="font-weight: bold;">baseUrl configuration</a>.</p>\n   <p>Current configured baseUrl = <span style="font-weight: bold; color: red;">'+e+"</span> "+("/"===e?" (default value)":"")+'</p>\n   <p>We suggest trying baseUrl = <span id="'+x+'" style="font-weight: bold; color: green;"></span></p>\n</div>\n'}(e)).replace(/</g,"\\<")+";\n  bannerContainer.innerHTML = bannerHtml;\n  var suggestionContainer = document.getElementById('"+x+"');\n  var actualHomePagePath = window.location.pathname;\n  var suggestedBaseUrl = actualHomePagePath.substr(-1) === '/'\n        ? actualHomePagePath\n        : actualHomePagePath + '/';\n  suggestionContainer.innerHTML = suggestedBaseUrl;\n}\n"}function T(){var e=(0,E.Z)().siteConfig.baseUrl;return(0,r.useLayoutEffect)((function(){window[_]=!1}),[]),r.createElement(r.Fragment,null,!l.Z.canUseDOM&&r.createElement(k.Z,null,r.createElement("script",null,C(e))),r.createElement("div",{id:S}))}function A(){var e=(0,E.Z)().siteConfig,t=e.baseUrl,n=e.baseUrlIssueBanner,a=(0,c.TH)().pathname;return n&&a===t?r.createElement(T,null):null}var O=n(4996);function L(){var e=(0,E.Z)(),t=e.siteConfig,n=t.favicon,a=t.tagline,o=t.title,i=e.i18n,l=i.currentLocale,u=i.localeConfigs,s=(0,O.Z)(n),c=u[l],f=c.htmlLang,d=c.direction;return r.createElement(k.Z,{defaultTitle:o+(a?" \xb7 "+a:"")},r.createElement("html",{lang:f,dir:d}),n&&r.createElement("link",{rel:"icon",href:s}))}function P(e){var t=e.children;return r.createElement(r.Fragment,null,t)}var R=n(7462),N=n(4739),I=n(4711),D=n(6668),M=n(9727),F=n(1944),j=n(3320);function B(){var e=(0,E.Z)().i18n,t=e.defaultLocale,n=e.localeConfigs,a=(0,I.l)();return r.createElement(k.Z,null,Object.entries(n).map((function(e){var t=e[0],n=e[1].htmlLang;return r.createElement("link",{key:t,rel:"alternate",href:a.createUrl({locale:t,fullyQualified:!0}),hrefLang:n})})),r.createElement("link",{rel:"alternate",href:a.createUrl({locale:t,fullyQualified:!0}),hrefLang:"x-default"}))}function z(e){var t=e.permalink,n=(0,E.Z)().siteConfig.url,a=function(){var e=(0,E.Z)().siteConfig.url,t=(0,c.TH)().pathname;return e+(0,O.Z)(t)}(),o=t?""+n+t:a;return r.createElement(k.Z,null,r.createElement("meta",{property:"og:url",content:o}),r.createElement("link",{rel:"canonical",href:o}))}function U(){var e=(0,E.Z)().i18n.currentLocale,t=(0,D.L)(),n=t.metadata,a=t.image;return r.createElement(r.Fragment,null,r.createElement(k.Z,null,r.createElement("meta",{name:"twitter:card",content:"summary_large_image"}),r.createElement("body",{className:M.h})),a&&r.createElement(F.d,{image:a}),r.createElement(z,null),r.createElement(B,null),r.createElement(N.Z,{tag:j.HX,locale:e}),r.createElement(k.Z,null,n.map((function(e,t){return r.createElement("meta",(0,R.Z)({key:t},e))}))))}var Z=n(780),$=n(4953);function q(){var e=(0,f.H)(s.Z),t=(0,c.TH)();return r.createElement(Z.Z,{fallback:$.Z},r.createElement(h.M,null,r.createElement(m.t,null,r.createElement(P,null,r.createElement(L,null),r.createElement(U,null),r.createElement(A,null),r.createElement(w,{location:p(t)},e)))))}var G=n(6887);var H=function(e){try{var t;return null==(t=document.createElement("link").relList)||null==t.supports?void 0:t.supports(e)}catch(n){return!1}}("prefetch")?function(e){return new Promise((function(t,n){var r,a;if("undefined"!=typeof document){var o=document.createElement("link");o.setAttribute("rel","prefetch"),o.setAttribute("href",e),o.onload=function(){return t()},o.onerror=function(){return n()};var i=null!=(r=document.getElementsByTagName("head")[0])?r:null==(a=document.getElementsByName("script")[0])?void 0:a.parentNode;null==i||i.appendChild(o)}else n()}))}:function(e){return new Promise((function(t,n){var r=new XMLHttpRequest;r.open("GET",e,!0),r.withCredentials=!0,r.onload=function(){200===r.status?t():n()},r.send(null)}))};var V=n(9670),W=new Set,Y=new Set,K=function(){var e,t;return(null==(e=navigator.connection)?void 0:e.effectiveType.includes("2g"))||(null==(t=navigator.connection)?void 0:t.saveData)},Q={prefetch:function(e){if(!function(e){return!K()&&!Y.has(e)&&!W.has(e)}(e))return!1;W.add(e);var t=(0,f.f)(s.Z,e).flatMap((function(e){return t=e.route.path,Object.entries(G).filter((function(e){return e[0].replace(/-[^-]+$/,"")===t})).flatMap((function(e){var t=e[1];return Object.values((0,V.Z)(t))}));var t}));return Promise.all(t.map((function(e){var t=n.gca(e);return t&&!/undefined/.test(t)?H(t).catch((function(){})):Promise.resolve()})))},preload:function(e){return!!function(e){return!K()&&!Y.has(e)}(e)&&(Y.add(e),y(e))}},X=Object.freeze(Q);if(l.Z.canUseDOM){window.docusaurus=X;var J=a.hydrate;y(window.location.pathname).then((function(){J(r.createElement(i.B6,null,r.createElement(o.VK,null,r.createElement(q,null))),document.getElementById("__docusaurus"))}))}},595:function(e,t,n){"use strict";n.d(t,{_:function(){return c},M:function(){return f}});var r=n(7294),a=n(9782),o=n(1115),i=JSON.parse('{"defaultLocale":"en","locales":["en"],"currentLocale":"en","localeConfigs":{"en":{"label":"English","direction":"ltr","htmlLang":"en","calendar":"gregory"}}}'),l=n(7529),u=JSON.parse('{"docusaurusVersion":"2.0.0-beta.20","siteVersion":"0.0.0","pluginVersions":{"docusaurus-plugin-content-docs":{"type":"package","name":"@docusaurus/plugin-content-docs","version":"2.0.0-beta.20"},"docusaurus-plugin-content-pages":{"type":"package","name":"@docusaurus/plugin-content-pages","version":"2.0.0-beta.20"},"docusaurus-plugin-google-gtag":{"type":"package","name":"@docusaurus/plugin-google-gtag","version":"2.0.0-beta.20"},"docusaurus-plugin-sitemap":{"type":"package","name":"@docusaurus/plugin-sitemap","version":"2.0.0-beta.20"},"docusaurus-theme-classic":{"type":"package","name":"@docusaurus/theme-classic","version":"2.0.0-beta.20"}}}'),s={siteConfig:a.Z,siteMetadata:u,globalData:o,i18n:i,codeTranslations:l},c=r.createContext(s);function f(e){var t=e.children;return r.createElement(c.Provider,{value:s},t)}},780:function(e,t,n){"use strict";n.d(t,{Z:function(){return l}});var r=n(4578),a=n(7294),o=n(412),i=n(4953),l=function(e){function t(t){var n;return(n=e.call(this,t)||this).state={error:null},n}(0,r.Z)(t,e);var n=t.prototype;return n.componentDidCatch=function(e){o.Z.canUseDOM&&this.setState({error:e})},n.render=function(){var e,t=this,n=this.props.children,r=this.state.error;return r?(null!=(e=this.props.fallback)?e:i.Z)({error:r,tryAgain:function(){return t.setState({error:null})}}):null!=n?n:null},t}(a.Component)},412:function(e,t){"use strict";var n=!("undefined"==typeof window||!window.document||!window.document.createElement),r={canUseDOM:n,canUseEventListeners:n&&!(!window.addEventListener&&!window.attachEvent),canUseIntersectionObserver:n&&"IntersectionObserver"in window,canUseViewport:n&&!!window.screen};t.Z=r},5742:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(7294),a=n(405);function o(e){return r.createElement(a.ql,e)}},9960:function(e,t,n){"use strict";n.d(t,{Z:function(){return h}});var r=n(7462),a=n(3366),o=n(7294),i=n(3727),l=n(2263),u=n(3919),s=n(412),c=o.createContext({collectLink:function(){}});var f=n(4996),d=n(8780),p=["isNavLink","to","href","activeClassName","isActive","data-noBrokenLinkCheck","autoAddBaseUrl"];function m(e,t){var n,m,h=e.isNavLink,g=e.to,v=e.href,b=e.activeClassName,y=e.isActive,w=e["data-noBrokenLinkCheck"],k=e.autoAddBaseUrl,E=void 0===k||k,S=(0,a.Z)(e,p),x=(0,l.Z)().siteConfig,_=x.trailingSlash,C=x.baseUrl,T=(0,f.C)().withBaseUrl,A=(0,o.useContext)(c),O=(0,o.useRef)(null);(0,o.useImperativeHandle)(t,(function(){return O.current}));var L=g||v;var P,R=(0,u.Z)(L),N=null==L?void 0:L.replace("pathname://",""),I=void 0!==N?(P=N,E&&function(e){return e.startsWith("/")}(P)?T(P):P):void 0;I&&R&&(I=(0,d.applyTrailingSlash)(I,{trailingSlash:_,baseUrl:C}));var D=(0,o.useRef)(!1),M=h?i.OL:i.rU,F=s.Z.canUseIntersectionObserver,j=(0,o.useRef)();(0,o.useEffect)((function(){return!F&&R&&null!=I&&window.docusaurus.prefetch(I),function(){F&&j.current&&j.current.disconnect()}}),[j,I,F,R]);var B=null!=(n=null==(m=I)?void 0:m.startsWith("#"))&&n,z=!I||!R||B;return z||w||A.collectLink(I),z?o.createElement("a",(0,r.Z)({ref:O,href:I},L&&!R&&{target:"_blank",rel:"noopener noreferrer"},S)):o.createElement(M,(0,r.Z)({},S,{onMouseEnter:function(){D.current||null==I||(window.docusaurus.preload(I),D.current=!0)},innerRef:function(e){O.current=e,F&&e&&R&&(j.current=new window.IntersectionObserver((function(t){t.forEach((function(t){e===t.target&&(t.isIntersecting||t.intersectionRatio>0)&&(j.current.unobserve(e),j.current.disconnect(),null!=I&&window.docusaurus.prefetch(I))}))})),j.current.observe(e))},to:I},h&&{isActive:y,activeClassName:b}))}var h=o.forwardRef(m)},5999:function(e,t,n){"use strict";n.d(t,{Z:function(){return u},I:function(){return l}});var r=n(7294);function a(e,t){var n=e.split(/(\{\w+\})/).map((function(e,n){if(n%2==1){var r=null==t?void 0:t[e.slice(1,-1)];if(void 0!==r)return r}return e}));return n.some((function(e){return(0,r.isValidElement)(e)}))?n.map((function(e,t){return(0,r.isValidElement)(e)?r.cloneElement(e,{key:t}):e})).filter((function(e){return""!==e})):n.join("")}var o=n(7529);function i(e){var t,n,r=e.id,a=e.message;if(void 0===r&&void 0===a)throw new Error("Docusaurus translation declarations must have at least a translation id or a default translation message");return null!=(t=null!=(n=o[null!=r?r:a])?n:a)?t:r}function l(e,t){return a(i({message:e.message,id:e.id}),t)}function u(e){var t=e.children,n=e.id,o=e.values;if(t&&"string"!=typeof t)throw console.warn("Illegal <Translate> children",t),new Error("The Docusaurus <Translate> component only accept simple string values");var l=i({message:t,id:n});return r.createElement(r.Fragment,null,a(l,o))}},9935:function(e,t,n){"use strict";n.d(t,{m:function(){return r}});var r="default"},3919:function(e,t,n){"use strict";function r(e){return!0===/^(?:\w*:|\/\/)/.test(e)}function a(e){return void 0!==e&&!r(e)}n.d(t,{Z:function(){return a},b:function(){return r}})},8143:function(e,t,n){"use strict";n.r(t),n.d(t,{Redirect:function(){return r.l_},matchPath:function(){return r.LX},useHistory:function(){return r.k6},useLocation:function(){return r.TH}});var r=n(6775)},4996:function(e,t,n){"use strict";n.d(t,{C:function(){return o},Z:function(){return i}});var r=n(2263),a=n(3919);function o(){var e=(0,r.Z)().siteConfig,t=e.baseUrl,n=e.url;return{withBaseUrl:function(e,r){return function(e,t,n,r){var o=void 0===r?{}:r,i=o.forcePrependBaseUrl,l=void 0!==i&&i,u=o.absolute,s=void 0!==u&&u;if(!n||n.startsWith("#")||(0,a.b)(n))return n;if(l)return t+n.replace(/^\//,"");if(n===t.replace(/\/$/,""))return t;var c=n.startsWith(t)?n:t+n.replace(/^\//,"");return s?e+c:c}(n,t,e,r)}}}function i(e,t){return void 0===t&&(t={}),(0,o().withBaseUrl)(e,t)}},2263:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(7294),a=n(595);function o(){return(0,r.useContext)(a._)}},8084:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return o},useAllPluginInstancesData:function(){return i},usePluginData:function(){return l}});var r=n(2263),a=n(9935);function o(){var e=(0,r.Z)().globalData;if(!e)throw new Error("Docusaurus global data not found.");return e}function i(e,t){void 0===t&&(t={});var n=o()[e];if(!n&&t.failfast)throw new Error('Docusaurus plugin global data not found for "'+e+'" plugin.');return n}function l(e,t,n){void 0===t&&(t=a.m),void 0===n&&(n={});var r=i(e),o=null==r?void 0:r[t];if(!o&&n.failfast)throw new Error('Docusaurus plugin global data not found for "'+e+'" plugin with id "'+t+'".');return o}},2389:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(7294),a=n(8934);function o(){return(0,r.useContext)(a._)}},9670:function(e,t,n){"use strict";n.d(t,{Z:function(){return r}});function r(e){var t={};return function e(n,r){Object.entries(n).forEach((function(n){var a,o=n[0],i=n[1],l=r?r+"."+o:o;"object"==typeof(a=i)&&a&&Object.keys(a).length>0?e(i,l):t[l]=i}))}(e),t}},226:function(e,t,n){"use strict";n.d(t,{_:function(){return a},z:function(){return o}});var r=n(7294),a=r.createContext(null);function o(e){var t=e.children,n=e.value,o=r.useContext(a),i=(0,r.useMemo)((function(){return function(e){var t=e.parent,n=e.value;if(!t){if(!n)throw new Error("Unexpected: no Docusaurus route context found");if(!("plugin"in n))throw new Error("Unexpected: Docusaurus topmost route context has no `plugin` attribute");return n}var r=Object.assign({},t.data,null==n?void 0:n.data);return{plugin:t.plugin,data:r}}({parent:o,value:n})}),[o,n]);return r.createElement(a.Provider,{value:i},t)}},4953:function(e,t,n){"use strict";n.d(t,{Z:function(){return u}});var r=n(7294),a=n(8277),o=n(780),i=n(5742);function l(e){var t=e.error,n=e.tryAgain;return r.createElement("div",{style:{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center",height:"50vh",width:"100%",fontSize:"20px"}},r.createElement("h1",null,"This page crashed."),r.createElement("p",null,t.message),r.createElement("button",{type:"button",onClick:n},"Try again"))}function u(e){var t=e.error,n=e.tryAgain;return r.createElement(o.Z,{fallback:function(){return r.createElement(l,{error:t,tryAgain:n})}},r.createElement(i.Z,null,r.createElement("title",null,"Page Error")),r.createElement(a.Z,null,r.createElement(l,{error:t,tryAgain:n})))}},8408:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getDocVersionSuggestions=t.getActiveDocContext=t.getActiveVersion=t.getLatestVersion=t.getActivePlugin=void 0;var r=n(8143);t.getActivePlugin=function(e,t,n){void 0===n&&(n={});var a=Object.entries(e).sort((function(e,t){return t[1].path.localeCompare(e[1].path)})).find((function(e){var n=e[1];return!!(0,r.matchPath)(t,{path:n.path,exact:!1,strict:!1})})),o=a?{pluginId:a[0],pluginData:a[1]}:void 0;if(!o&&n.failfast)throw new Error("Can't find active docs plugin for \""+t+'" pathname, while it was expected to be found. Maybe you tried to use a docs feature that can only be used on a docs-related page? Existing docs plugin paths are: '+Object.values(e).map((function(e){return e.path})).join(", "));return o};function a(e,n){var a=(0,t.getLatestVersion)(e);return[].concat(e.versions.filter((function(e){return e!==a})),[a]).find((function(e){return!!(0,r.matchPath)(n,{path:e.path,exact:!1,strict:!1})}))}function o(e,t){var n,o,i=a(e,t),l=null==i?void 0:i.docs.find((function(e){return!!(0,r.matchPath)(t,{path:e.path,exact:!0,strict:!1})}));return{activeVersion:i,activeDoc:l,alternateDocVersions:l?(n=l.id,o={},e.versions.forEach((function(e){e.docs.forEach((function(t){t.id===n&&(o[e.name]=t)}))})),o):{}}}t.getLatestVersion=function(e){return e.versions.find((function(e){return e.isLast}))},t.getActiveVersion=a,t.getActiveDocContext=o,t.getDocVersionSuggestions=function(e,n){var r=(0,t.getLatestVersion)(e),a=o(e,n);return{latestDocSuggestion:null==a?void 0:a.alternateDocVersions[r.name],latestVersionSuggestion:r}}},5551:function(e,t,n){"use strict";t.Jo=t.Iw=t.yW=t.gB=t.gA=t.zh=t._r=void 0;var r=n(8143),a=n(8084),o=n(8408),i={};t._r=function(){var e;return null!=(e=(0,a.useAllPluginInstancesData)("docusaurus-plugin-content-docs"))?e:i};function l(e){void 0===e&&(e={});var n=(0,t._r)(),a=(0,r.useLocation)().pathname;return(0,o.getActivePlugin)(n,a,e)}t.zh=function(e){return(0,a.usePluginData)("docusaurus-plugin-content-docs",e,{failfast:!0})},t.gA=l,t.gB=function(e){return(0,t.zh)(e).versions},t.yW=function(e){var n=(0,t.zh)(e);return(0,o.getLatestVersion)(n)},t.Iw=function(e){var n=(0,t.zh)(e),a=(0,r.useLocation)().pathname;return(0,o.getActiveDocContext)(n,a)},t.Jo=function(e){var n=(0,t.zh)(e),a=(0,r.useLocation)().pathname;return(0,o.getDocVersionSuggestions)(n,a)}},6657:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(655).__importDefault(n(1115)).default["docusaurus-plugin-google-gtag"].default.trackingID,a={onRouteDidUpdate:function(e){var t=e.location,n=e.previousLocation;n&&t.pathname!==n.pathname&&(window.gtag("config",r,{page_path:t.pathname,page_title:document.title}),window.gtag("event","page_view",{page_title:document.title,page_location:window.location.href,page_path:t.pathname}))}};t.default=a},541:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(7294),a="iconExternalLink_I5OW";function o(e){var t=e.width,n=void 0===t?13.5:t,o=e.height,i=void 0===o?13.5:o;return r.createElement("svg",{width:n,height:i,"aria-hidden":"true",viewBox:"0 0 24 24",className:a},r.createElement("path",{fill:"currentColor",d:"M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"}))}},8277:function(e,t,n){"use strict";n.d(t,{Z:function(){return Et}});var r=n(7294),a=n(6010),o=n(780),i=n(5999),l=n(6775),u=n(5936),s=n(5281);function c(e){e.setAttribute("tabindex","-1"),e.focus(),e.removeAttribute("tabindex")}var f="skipToContent_ZgBM";function d(){var e=function(){var e=(0,r.useRef)(null),t=(0,l.k6)().action,n=(0,r.useCallback)((function(e){e.preventDefault();var t=document.querySelector("main:first-of-type")||document.querySelector("."+s.k.wrapper.main);t&&c(t)}),[]);return(0,u.S)((function(n){var r=n.location;e.current&&!r.hash&&"PUSH"===t&&c(e.current)})),{containerRef:e,handleSkip:n}}(),t=e.containerRef,n=e.handleSkip;return r.createElement("div",{ref:t,role:"region"},r.createElement("a",{href:"#",className:f,onClick:n},r.createElement(i.Z,{id:"theme.common.skipToMainContent",description:"The skip to content label used for accessibility, allowing to rapidly navigate to main content with keyboard tab/enter navigation"},"Skip to main content")))}var p=n(9689),m=n(6668),h=n(7462),g=n(3366),v=["width","height","color","strokeWidth","className"];function b(e){var t=e.width,n=void 0===t?21:t,a=e.height,o=void 0===a?21:a,i=e.color,l=void 0===i?"currentColor":i,u=e.strokeWidth,s=void 0===u?1.2:u,c=(e.className,(0,g.Z)(e,v));return r.createElement("svg",(0,h.Z)({viewBox:"0 0 15 15",width:n,height:o},c),r.createElement("g",{stroke:l,strokeWidth:s},r.createElement("path",{d:"M.75.75l13.5 13.5M14.25.75L.75 14.25"})))}var y="announcementBar_IbjG",w="announcementBarPlaceholder_NC_W",k="announcementBarClose_FG1z",E="announcementBarContent_KsVm";function S(){var e=(0,p.nT)(),t=e.isActive,n=e.close,o=(0,m.L)().announcementBar;if(!t)return null;var l=o.content,u=o.backgroundColor,s=o.textColor,c=o.isCloseable;return r.createElement("div",{className:y,style:{backgroundColor:u,color:s},role:"banner"},c&&r.createElement("div",{className:w}),r.createElement("div",{className:E,dangerouslySetInnerHTML:{__html:l}}),c?r.createElement("button",{type:"button",className:(0,a.Z)("clean-btn close",k),onClick:n,"aria-label":(0,i.I)({id:"theme.AnnouncementBar.closeButtonAriaLabel",message:"Close",description:"The ARIA label for close button of announcement bar"})},r.createElement(b,{width:14,height:14,strokeWidth:3.1})):null)}var x=n(9688),_=n(2961),C=n(3102),T=r.createContext(null);function A(e){var t,n,a,o,i,l,u,s=e.children,c=(t=(0,_.e)(),n=(0,C.HY)(),a=(0,r.useState)(!1),o=a[0],i=a[1],l=null!==n.component,u=(0,x.D9)(l),(0,r.useEffect)((function(){l&&!u&&i(!0)}),[l,u]),(0,r.useEffect)((function(){l?t.shown||i(!0):i(!1)}),[t.shown,l]),(0,r.useMemo)((function(){return[o,i]}),[o]));return r.createElement(T.Provider,{value:c},s)}function O(e){if(e.component){var t=e.component;return r.createElement(t,Object.assign({},e.props))}}function L(){var e=(0,r.useContext)(T);if(!e)throw new x.i6("NavbarSecondaryMenuDisplayProvider");var t=e[0],n=e[1],a=(0,r.useCallback)((function(){return n(!1)}),[n]),o=(0,C.HY)();return(0,r.useMemo)((function(){return{shown:t,hide:a,content:O(o)}}),[a,o,t])}function P(e){var t=e.header,n=e.primaryMenu,o=e.secondaryMenu,i=L().shown;return r.createElement("div",{className:"navbar-sidebar"},t,r.createElement("div",{className:(0,a.Z)("navbar-sidebar__items",{"navbar-sidebar__items--show-secondary":i})},r.createElement("div",{className:"navbar-sidebar__item menu"},n),r.createElement("div",{className:"navbar-sidebar__item menu"},o)))}var R=n(2949),N=n(2389);function I(e){return r.createElement("svg",(0,h.Z)({viewBox:"0 0 24 24",width:24,height:24},e),r.createElement("path",{fill:"currentColor",d:"M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"}))}function D(e){return r.createElement("svg",(0,h.Z)({viewBox:"0 0 24 24",width:24,height:24},e),r.createElement("path",{fill:"currentColor",d:"M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"}))}var M={toggle:"toggle_S7eR",toggleButton:"toggleButton_rCf9",darkToggleIcon:"darkToggleIcon_nQuB",lightToggleIcon:"lightToggleIcon_v35p",toggleButtonDisabled:"toggleButtonDisabled_Pu9x"};function F(e){var t=e.className,n=e.value,o=e.onChange,l=(0,N.Z)(),u=(0,i.I)({message:"Switch between dark and light mode (currently {mode})",id:"theme.colorToggle.ariaLabel",description:"The ARIA label for the navbar color mode toggle"},{mode:"dark"===n?(0,i.I)({message:"dark mode",id:"theme.colorToggle.ariaLabel.mode.dark",description:"The name for the dark color mode"}):(0,i.I)({message:"light mode",id:"theme.colorToggle.ariaLabel.mode.light",description:"The name for the light color mode"})});return r.createElement("div",{className:(0,a.Z)(M.toggle,t)},r.createElement("button",{className:(0,a.Z)("clean-btn",M.toggleButton,!l&&M.toggleButtonDisabled),type:"button",onClick:function(){return o("dark"===n?"light":"dark")},disabled:!l,title:u,"aria-label":u},r.createElement(I,{className:(0,a.Z)(M.toggleIcon,M.lightToggleIcon)}),r.createElement(D,{className:(0,a.Z)(M.toggleIcon,M.darkToggleIcon)})))}var j=r.memo(F);function B(e){var t=e.className,n=(0,m.L)().colorMode.disableSwitch,a=(0,R.I)(),o=a.colorMode,i=a.setColorMode;return n?null:r.createElement(j,{className:t,value:o,onChange:i})}var z=n(5537);function U(){return r.createElement(z.Z,{className:"navbar__brand",imageClassName:"navbar__logo",titleClassName:"navbar__title text--truncate"})}function Z(){var e=(0,_.e)();return r.createElement("button",{type:"button",className:"clean-btn navbar-sidebar__close",onClick:function(){return e.toggle()}},r.createElement(b,{color:"var(--ifm-color-emphasis-600)"}))}function $(){return r.createElement("div",{className:"navbar-sidebar__brand"},r.createElement(U,null),r.createElement(B,{className:"margin-right--md"}),r.createElement(Z,null))}var q=n(9960),G=n(4996),H=n(541),V=n(3919);function W(e,t){return void 0!==e&&void 0!==t&&new RegExp(e,"gi").test(t)}var Y=["activeBasePath","activeBaseRegex","to","href","label","html","activeClassName","prependBaseUrlToHref"];function K(e){var t,n=e.activeBasePath,a=e.activeBaseRegex,o=e.to,i=e.href,l=e.label,u=e.html,s=e.activeClassName,c=void 0===s?"":s,f=e.prependBaseUrlToHref,d=(0,g.Z)(e,Y),p=(0,G.Z)(o),m=(0,G.Z)(n),v=(0,G.Z)(i,{forcePrependBaseUrl:!0}),b=l&&i&&!(0,V.Z)(i),y="dropdown__link--active"===c,w=u?{dangerouslySetInnerHTML:{__html:u}}:{children:r.createElement(r.Fragment,null,l,b&&r.createElement(H.Z,y&&{width:12,height:12}))};return i?r.createElement(q.Z,(0,h.Z)({href:f?v:i},d,w)):r.createElement(q.Z,(0,h.Z)({to:p,isNavLink:!0,activeClassName:null!=(t=d.className)&&t.includes(c)?"":c},(n||a)&&{isActive:function(e,t){return a?W(a,t.pathname):t.pathname.startsWith(m)}},d,w))}var Q=function(e){return e?"menu__link--active":"navbar__link--active"},X=["className","isDropdownItem"],J=["className","isDropdownItem"],ee=["mobile","position"];function te(e){var t=e.className,n=e.isDropdownItem,o=void 0!==n&&n,i=(0,g.Z)(e,X),l=r.createElement(K,(0,h.Z)({className:(0,a.Z)(o?"dropdown__link":"navbar__item navbar__link",t)},i));return o?r.createElement("li",null,l):l}function ne(e){var t=e.className,n=(e.isDropdownItem,(0,g.Z)(e,J));return r.createElement("li",{className:"menu__list-item"},r.createElement(K,(0,h.Z)({className:(0,a.Z)("menu__link",t)},n)))}function re(e){var t,n=e.mobile,a=void 0!==n&&n,o=(e.position,(0,g.Z)(e,ee)),i=a?ne:te;return r.createElement(i,(0,h.Z)({},o,{activeClassName:null!=(t=o.activeClassName)?t:Q(a)}))}var ae=n(8596),oe=n(2263);var ie=n(6043),le=["items","position","className"],ue=["items","className","position"],se=["mobile"];function ce(e,t){return e.some((function(e){return function(e,t){return!!(0,ae.Mg)(e.to,t)||!!W(e.activeBaseRegex,t)||!(!e.activeBasePath||!t.startsWith(e.activeBasePath))}(e,t)}))}function fe(e){var t,n=e.items,o=e.position,i=e.className,l=(0,g.Z)(e,le),u=(0,r.useRef)(null),s=(0,r.useState)(!1),c=s[0],f=s[1];return(0,r.useEffect)((function(){var e=function(e){u.current&&!u.current.contains(e.target)&&f(!1)};return document.addEventListener("mousedown",e),document.addEventListener("touchstart",e),function(){document.removeEventListener("mousedown",e),document.removeEventListener("touchstart",e)}}),[u]),r.createElement("div",{ref:u,className:(0,a.Z)("navbar__item","dropdown","dropdown--hoverable",{"dropdown--right":"right"===o,"dropdown--show":c})},r.createElement(K,(0,h.Z)({"aria-haspopup":"true","aria-expanded":c,role:"button",href:l.to?void 0:"#",className:(0,a.Z)("navbar__link",i)},l,{onClick:l.to?void 0:function(e){return e.preventDefault()},onKeyDown:function(e){"Enter"===e.key&&(e.preventDefault(),f(!c))}}),null!=(t=l.children)?t:l.label),r.createElement("ul",{className:"dropdown__menu"},n.map((function(e,t){return r.createElement(Re,(0,h.Z)({isDropdownItem:!0,onKeyDown:function(e){if(t===n.length-1&&"Tab"===e.key){e.preventDefault(),f(!1);var r=u.current.nextElementSibling;if(r)(r instanceof HTMLAnchorElement?r:r.querySelector("a")).focus()}},activeClassName:"dropdown__link--active"},e,{key:t}))}))))}function de(e){var t,n,o=e.items,i=e.className,u=(e.position,(0,g.Z)(e,ue)),s=(n=(0,oe.Z)().siteConfig.baseUrl,(0,l.TH)().pathname.replace(n,"/")),c=ce(o,s),f=(0,ie.u)({initialState:function(){return!c}}),d=f.collapsed,p=f.toggleCollapsed,m=f.setCollapsed;return(0,r.useEffect)((function(){c&&m(!c)}),[s,c,m]),r.createElement("li",{className:(0,a.Z)("menu__list-item",{"menu__list-item--collapsed":d})},r.createElement(K,(0,h.Z)({role:"button",className:(0,a.Z)("menu__link menu__link--sublist menu__link--sublist-caret",i)},u,{onClick:function(e){e.preventDefault(),p()}}),null!=(t=u.children)?t:u.label),r.createElement(ie.z,{lazy:!0,as:"ul",className:"menu__list",collapsed:d},o.map((function(e,t){return r.createElement(Re,(0,h.Z)({mobile:!0,isDropdownItem:!0,onClick:u.onClick,activeClassName:"menu__link--active"},e,{key:t}))}))))}function pe(e){var t=e.mobile,n=void 0!==t&&t,a=(0,g.Z)(e,se),o=n?de:fe;return r.createElement(o,a)}var me=["width","height"];function he(e){var t=e.width,n=void 0===t?20:t,a=e.height,o=void 0===a?20:a,i=(0,g.Z)(e,me);return r.createElement("svg",(0,h.Z)({viewBox:"0 0 24 24",width:n,height:o,"aria-hidden":!0},i),r.createElement("path",{fill:"currentColor",d:"M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"}))}var ge=n(4711),ve="iconLanguage_dNtB",be=["mobile","dropdownItemsBefore","dropdownItemsAfter"];var ye=function(){return null},we="searchBox_dLyj";function ke(e){var t=e.children;return r.createElement("div",{className:we},t)}var Ee=n(5551),Se=n(8425),xe=["docId","label","docsPluginId"];var _e=["sidebarId","label","docsPluginId"];var Ce=["label","to","docsPluginId"];var Te=n(373),Ae=["mobile","docsPluginId","dropdownActiveClassDisabled","dropdownItemsBefore","dropdownItemsAfter"],Oe=function(e){return e.docs.find((function(t){return t.id===e.mainDocId}))};var Le={default:re,localeDropdown:function(e){var t=e.mobile,n=e.dropdownItemsBefore,a=e.dropdownItemsAfter,o=(0,g.Z)(e,be),l=(0,oe.Z)().i18n,u=l.currentLocale,s=l.locales,c=l.localeConfigs,f=(0,ge.l)(),d=s.map((function(e){var t="pathname://"+f.createUrl({locale:e,fullyQualified:!1});return{isNavLink:!0,label:c[e].label,to:t,target:"_self",autoAddBaseUrl:!1,className:e===u?"dropdown__link--active":""}})),p=[].concat(n,d,a),m=t?(0,i.I)({message:"Languages",id:"theme.navbar.mobileLanguageDropdown.label",description:"The label for the mobile language switcher dropdown"}):c[u].label;return r.createElement(pe,(0,h.Z)({},o,{mobile:t,label:r.createElement(r.Fragment,null,r.createElement(he,{className:ve}),m),items:p}))},search:function(e){return e.mobile?null:r.createElement(ke,null,r.createElement(ye,null))},dropdown:pe,html:function(e){var t=e.value,n=e.className,o=e.mobile,i=void 0!==o&&o,l=e.isDropdownItem,u=void 0!==l&&l,s=u?"li":"div";return r.createElement(s,{className:(0,a.Z)({navbar__item:!i&&!u,"menu__list-item":i},n),dangerouslySetInnerHTML:{__html:t}})},doc:function(e){var t,n=e.docId,o=e.label,i=e.docsPluginId,l=(0,g.Z)(e,xe),u=(0,Ee.Iw)(i).activeDoc,s=(0,Se.vY)(n,i);if(null===s)return null;var c=Q(l.mobile);return r.createElement(re,(0,h.Z)({exact:!0},l,{className:(0,a.Z)(l.className,(t={},t[c]=(null==u?void 0:u.sidebar)&&u.sidebar===s.sidebar,t)),activeClassName:c,label:null!=o?o:s.id,to:s.path}))},docSidebar:function(e){var t,n=e.sidebarId,o=e.label,i=e.docsPluginId,l=(0,g.Z)(e,_e),u=(0,Ee.Iw)(i).activeDoc,s=(0,Se.oz)(n,i).link;if(!s)throw new Error('DocSidebarNavbarItem: Sidebar with ID "'+n+"\" doesn't have anything to be linked to.");var c=Q(l.mobile);return r.createElement(re,(0,h.Z)({exact:!0},l,{className:(0,a.Z)(l.className,(t={},t[c]=(null==u?void 0:u.sidebar)===n,t)),activeClassName:c,label:null!=o?o:s.label,to:s.path}))},docsVersion:function(e){var t=e.label,n=e.to,a=e.docsPluginId,o=(0,g.Z)(e,Ce),i=(0,Se.lO)(a)[0],l=null!=t?t:i.label,u=null!=n?n:function(e){return e.docs.find((function(t){return t.id===e.mainDocId}))}(i).path;return r.createElement(re,(0,h.Z)({},o,{label:l,to:u}))},docsVersionDropdown:function(e){var t=e.mobile,n=e.docsPluginId,a=e.dropdownActiveClassDisabled,o=e.dropdownItemsBefore,l=e.dropdownItemsAfter,u=(0,g.Z)(e,Ae),s=(0,Ee.Iw)(n),c=(0,Ee.gB)(n),f=(0,Te.J)(n).savePreferredVersionName,d=c.map((function(e){var t,n=null!=(t=null==s?void 0:s.alternateDocVersions[e.name])?t:Oe(e);return{isNavLink:!0,label:e.label,to:n.path,isActive:function(){return e===(null==s?void 0:s.activeVersion)},onClick:function(){return f(e.name)}}})),p=[].concat(o,d,l),m=(0,Se.lO)(n)[0],v=t&&p.length>1?(0,i.I)({id:"theme.navbar.mobileVersionsDropdown.label",message:"Versions",description:"The label for the navbar versions dropdown on mobile view"}):m.label,b=t&&p.length>1?void 0:Oe(m).path;return p.length<=1?r.createElement(re,(0,h.Z)({},u,{mobile:t,label:v,to:b,isActive:a?function(){return!1}:void 0})):r.createElement(pe,(0,h.Z)({},u,{mobile:t,label:v,to:b,items:p,isActive:a?function(){return!1}:void 0}))}},Pe=["type"];function Re(e){var t=e.type,n=(0,g.Z)(e,Pe),a=function(e,t){return e&&"default"!==e?e:t?"dropdown":"default"}(t,void 0!==n.items),o=function(e){var t=Le[e];if(!t)throw new Error('No NavbarItem component found for type "'+e+'".');return t}(a);return r.createElement(o,n)}function Ne(){var e=(0,_.e)(),t=(0,m.L)().navbar.items;return r.createElement("ul",{className:"menu__list"},t.map((function(t,n){return r.createElement(Re,(0,h.Z)({mobile:!0},t,{onClick:function(){return e.toggle()},key:n}))})))}function Ie(e){return r.createElement("button",(0,h.Z)({},e,{type:"button",className:"clean-btn navbar-sidebar__back"}),r.createElement(i.Z,{id:"theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel",description:"The label of the back button to return to main menu, inside the mobile navbar sidebar secondary menu (notably used to display the docs sidebar)"},"\u2190 Back to main menu"))}function De(){var e=0===(0,m.L)().navbar.items.length,t=L();return r.createElement(r.Fragment,null,!e&&r.createElement(Ie,{onClick:function(){return t.hide()}}),t.content)}function Me(){var e,t=(0,_.e)();return void 0===(e=t.shown)&&(e=!0),(0,r.useEffect)((function(){return document.body.style.overflow=e?"hidden":"visible",function(){document.body.style.overflow="visible"}}),[e]),t.shouldRender?r.createElement(P,{header:r.createElement($,null),primaryMenu:r.createElement(Ne,null),secondaryMenu:r.createElement(De,null)}):null}var Fe=n(2466);var je="navbarHideable_ObN2",Be="navbarHidden_FtgE";function ze(e){return r.createElement("div",(0,h.Z)({role:"presentation"},e,{className:(0,a.Z)("navbar-sidebar__backdrop",e.className)}))}function Ue(e){var t=e.children,n=(0,m.L)().navbar,o=n.hideOnScroll,i=n.style,l=(0,_.e)(),s=function(e){var t=(0,r.useState)(e),n=t[0],a=t[1],o=(0,r.useRef)(!1),i=(0,r.useRef)(0),l=(0,r.useCallback)((function(e){null!==e&&(i.current=e.getBoundingClientRect().height)}),[]);return(0,Fe.RF)((function(t,n){var r=t.scrollY;if(e)if(r<i.current)a(!0);else if(o.current)o.current=!1;else{var l=null==n?void 0:n.scrollY,u=document.documentElement.scrollHeight-i.current,s=window.innerHeight;l&&r>=l?a(!1):r+s<u&&a(!0)}})),(0,u.S)((function(t){if(e)return t.location.hash?(o.current=!0,void a(!1)):void a(!0)})),{navbarRef:l,isNavbarVisible:n}}(o),c=s.navbarRef,f=s.isNavbarVisible;return r.createElement("nav",{ref:c,className:(0,a.Z)("navbar","navbar--fixed-top",o&&[je,!f&&Be],{"navbar--dark":"dark"===i,"navbar--primary":"primary"===i,"navbar-sidebar--show":l.shown})},t,r.createElement(ze,{onClick:l.toggle}),r.createElement(Me,null))}function Ze(e){var t=e.children;return r.createElement(C.n2,null,r.createElement(_.M,null,r.createElement(A,null,t)))}var $e=["width","height","className"];function qe(e){var t=e.width,n=void 0===t?30:t,a=e.height,o=void 0===a?30:a,i=e.className,l=(0,g.Z)(e,$e);return r.createElement("svg",(0,h.Z)({className:i,width:n,height:o,viewBox:"0 0 30 30","aria-hidden":"true"},l),r.createElement("path",{stroke:"currentColor",strokeLinecap:"round",strokeMiterlimit:"10",strokeWidth:"2",d:"M4 7h22M4 15h22M4 23h22"}))}function Ge(){var e=(0,_.e)();return r.createElement("button",{onClick:e.toggle,onKeyDown:e.toggle,"aria-label":"Navigation bar toggle",className:"navbar__toggle clean-btn",type:"button",tabIndex:0},r.createElement(qe,null))}var He="colorModeToggle_vKtC";function Ve(e){var t=e.items;return r.createElement(r.Fragment,null,t.map((function(e,t){return r.createElement(Re,(0,h.Z)({},e,{key:t}))})))}function We(e){var t=e.left,n=e.right;return r.createElement("div",{className:"navbar__inner"},r.createElement("div",{className:"navbar__items"},t),r.createElement("div",{className:"navbar__items navbar__items--right"},n))}function Ye(){var e=(0,_.e)(),t=(0,m.L)().navbar.items,n=function(e){function t(e){var t;return"left"===(null!=(t=e.position)?t:"right")}return[e.filter(t),e.filter((function(e){return!t(e)}))]}(t),a=n[0],o=n[1],i=!t.some((function(e){return"search"===e.type}));return r.createElement(We,{left:r.createElement(r.Fragment,null,!e.disabled&&r.createElement(Ge,null),r.createElement(U,null),r.createElement(Ve,{items:a})),right:r.createElement(r.Fragment,null,r.createElement(Ve,{items:o}),r.createElement(B,{className:He}),i&&r.createElement(ke,null,r.createElement(ye,null)))})}function Ke(){return r.createElement(Ue,null,r.createElement(Ye,null))}var Qe=["to","href","label","prependBaseUrlToHref"];function Xe(e){var t=e.item,n=t.to,a=t.href,o=t.label,i=t.prependBaseUrlToHref,l=(0,g.Z)(t,Qe),u=(0,G.Z)(n),s=(0,G.Z)(a,{forcePrependBaseUrl:!0});return r.createElement(q.Z,(0,h.Z)({className:"footer__link-item"},a?{href:i?s:a}:{to:u},l),o,a&&!(0,V.Z)(a)&&r.createElement(H.Z,null))}function Je(e){var t=e.item;return t.html?r.createElement("li",{className:"footer__item",dangerouslySetInnerHTML:{__html:t.html}}):r.createElement("li",{key:t.href||t.to,className:"footer__item"},r.createElement(Xe,{item:t}))}function et(e){var t=e.column;return r.createElement("div",{className:"col footer__col"},r.createElement("div",{className:"footer__title"},t.title),r.createElement("ul",{className:"footer__items clean-list"},t.items.map((function(e,t){return r.createElement(Je,{key:t,item:e})}))))}function tt(e){var t=e.columns;return r.createElement("div",{className:"row footer__links"},t.map((function(e,t){return r.createElement(et,{key:t,column:e})})))}function nt(){return r.createElement("span",{className:"footer__link-separator"},"\xb7")}function rt(e){var t=e.item;return t.html?r.createElement("span",{className:"footer__link-item",dangerouslySetInnerHTML:{__html:t.html}}):r.createElement(Xe,{item:t})}function at(e){var t=e.links;return r.createElement("div",{className:"footer__links text--center"},r.createElement("div",{className:"footer__links"},t.map((function(e,n){return r.createElement(r.Fragment,{key:n},r.createElement(rt,{item:e}),t.length!==n+1&&r.createElement(nt,null))}))))}function ot(e){var t=e.links;return function(e){return"title"in e[0]}(t)?r.createElement(tt,{columns:t}):r.createElement(at,{links:t})}var it="footerLogoLink_gHmE",lt=n(9750);function ut(e){var t,n=e.logo,a=(0,G.C)().withBaseUrl,o={light:a(n.src),dark:a(null!=(t=n.srcDark)?t:n.src)};return r.createElement(lt.Z,{className:"footer__logo",alt:n.alt,sources:o,width:n.width,height:n.height})}function st(e){var t=e.logo;return t.href?r.createElement(q.Z,{href:t.href,className:it},r.createElement(ut,{logo:t})):r.createElement(ut,{logo:t})}function ct(e){var t=e.copyright;return r.createElement("div",{className:"footer__copyright",dangerouslySetInnerHTML:{__html:t}})}function ft(e){var t=e.style,n=e.links,o=e.logo,i=e.copyright;return r.createElement("footer",{className:(0,a.Z)("footer",{"footer--dark":"dark"===t})},r.createElement("div",{className:"container container-fluid"},n,(o||i)&&r.createElement("div",{className:"footer__bottom text--center"},o&&r.createElement("div",{className:"margin-bottom--sm"},o),i)))}function dt(){var e=(0,m.L)().footer;if(!e)return null;var t=e.copyright,n=e.links,a=e.logo,o=e.style;return r.createElement(ft,{style:o,links:n&&n.length>0&&r.createElement(ot,{links:n}),logo:a&&r.createElement(st,{logo:a}),copyright:t&&r.createElement(ct,{copyright:t})})}var pt=r.memo(dt),mt=n(12),ht="docusaurus.tab.",gt=r.createContext(void 0);function vt(e){var t=e.children,n=function(){var e=(0,r.useState)({}),t=e[0],n=e[1],a=(0,r.useCallback)((function(e,t){(0,mt.W)("docusaurus.tab."+e).set(t)}),[]);(0,r.useEffect)((function(){try{var e={};(0,mt._)().forEach((function(t){if(t.startsWith(ht)){var n=t.substring(ht.length);e[n]=(0,mt.W)(t).get()}})),n(e)}catch(t){console.error(t)}}),[]);var o=(0,r.useCallback)((function(e,t){n((function(n){var r;return Object.assign({},n,((r={})[e]=t,r))})),a(e,t)}),[a]);return(0,r.useMemo)((function(){return{tabGroupChoices:t,setTabGroupChoices:o}}),[t,o])}();return r.createElement(gt.Provider,{value:n},t)}var bt=n(1944);function yt(e){var t=e.children;return r.createElement(R.S,null,r.createElement(p.pl,null,r.createElement(vt,null,r.createElement(Fe.OC,null,r.createElement(Te.L5,null,r.createElement(bt.VC,null,r.createElement(Ze,null,t)))))))}var wt=n(9727);function kt(e){var t=e.error,n=e.tryAgain;return r.createElement("main",{className:"container margin-vert--xl"},r.createElement("div",{className:"row"},r.createElement("div",{className:"col col--6 col--offset-3"},r.createElement("h1",{className:"hero__title"},r.createElement(i.Z,{id:"theme.ErrorPageContent.title",description:"The title of the fallback page when the page crashed"},"This page crashed.")),r.createElement("p",null,t.message),r.createElement("div",null,r.createElement("button",{type:"button",onClick:n},r.createElement(i.Z,{id:"theme.ErrorPageContent.tryAgain",description:"The label of the button to try again when the page crashed"},"Try again"))))))}function Et(e){var t=e.children,n=e.noFooter,i=e.wrapperClassName,l=e.title,u=e.description;return(0,wt.t)(),r.createElement(yt,null,r.createElement(bt.d,{title:l,description:u}),r.createElement(d,null),r.createElement(S,null),r.createElement(Ke,null),r.createElement("div",{className:(0,a.Z)(s.k.wrapper.main,i)},r.createElement(o.Z,{fallback:kt},t)),!n&&r.createElement(pt,null))}},5537:function(e,t,n){"use strict";n.d(t,{Z:function(){return d}});var r=n(7462),a=n(3366),o=n(7294),i=n(9960),l=n(9750),u=n(4996),s=n(2263),c=n(6668),f=["imageClassName","titleClassName"];function d(e){var t=(0,s.Z)().siteConfig.title,n=(0,c.L)().navbar,d=n.title,p=n.logo,m=void 0===p?{src:""}:p,h=e.imageClassName,g=e.titleClassName,v=(0,a.Z)(e,f),b=(0,u.Z)(m.href||"/"),y={light:(0,u.Z)(m.src),dark:(0,u.Z)(m.srcDark||m.src)},w=o.createElement(l.Z,{sources:y,height:m.height,width:m.width,alt:m.alt||d||t});return o.createElement(i.Z,(0,r.Z)({to:b},v,m.target&&{target:m.target}),m.src&&(h?o.createElement("div",{className:h},w):w),null!=d&&o.createElement("b",{className:g},d))}},4739:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(7294),a=n(5742);function o(e){var t=e.locale,n=e.version,o=e.tag,i=t;return r.createElement(a.Z,null,t&&r.createElement("meta",{name:"docusaurus_locale",content:t}),n&&r.createElement("meta",{name:"docusaurus_version",content:n}),o&&r.createElement("meta",{name:"docusaurus_tag",content:o}),i&&r.createElement("meta",{name:"docsearch:language",content:i}),n&&r.createElement("meta",{name:"docsearch:version",content:n}),o&&r.createElement("meta",{name:"docsearch:docusaurus_tag",content:o}))}},9750:function(e,t,n){"use strict";n.d(t,{Z:function(){return f}});var r=n(7462),a=n(3366),o=n(7294),i=n(6010),l=n(2389),u=n(2949),s={themedImage:"themedImage_W2Cr","themedImage--light":"themedImage--light_TfLj","themedImage--dark":"themedImage--dark_oUvU"},c=["sources","className","alt"];function f(e){var t=(0,l.Z)(),n=(0,u.I)().colorMode,f=e.sources,d=e.className,p=e.alt,m=(0,a.Z)(e,c),h=t?"dark"===n?["dark"]:["light"]:["light","dark"];return o.createElement(o.Fragment,null,h.map((function(e){return o.createElement("img",(0,r.Z)({key:e,src:f[e],alt:p,className:(0,i.Z)(s.themedImage,s["themedImage--"+e],d)},m))})))}},467:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return a}});var r=n(9782);function a(e){var t=r.Z.themeConfig.prism.additionalLanguages;globalThis.Prism=e,t.forEach((function(e){n(6726)("./prism-"+e)})),delete globalThis.Prism}},8320:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r,a=(r=n(4865))&&r.__esModule?r:{default:r};n(9014),a.default.configure({showSpinner:!1});var o={onRouteUpdate:function(e){var t=e.location,n=e.previousLocation;if(n&&t.pathname!==n.pathname){var r=window.setTimeout((function(){a.default.start()}),200);return function(){return window.clearTimeout(r)}}},onRouteDidUpdate:function(){a.default.done()}};t.default=o},2448:function(e,t,n){"use strict";var r=a(n(7410));function a(e){return e&&e.__esModule?e:{default:e}}(0,a(n(467)).default)(r.default)},6043:function(e,t,n){"use strict";n.d(t,{u:function(){return u},z:function(){return g}});var r=n(3366),a=n(412),o=n(7294),i=["collapsed"],l=["lazy"];function u(e){var t=e.initialState,n=(0,o.useState)(null!=t&&t),r=n[0],a=n[1],i=(0,o.useCallback)((function(){a((function(e){return!e}))}),[]);return{collapsed:r,setCollapsed:a,toggleCollapsed:i}}var s={display:"none",overflow:"hidden",height:"0px"},c={display:"block",overflow:"visible",height:"auto"};function f(e,t){var n=t?s:c;e.style.display=n.display,e.style.overflow=n.overflow,e.style.height=n.height}function d(e){var t=e.collapsibleRef,n=e.collapsed,r=e.animation,a=(0,o.useRef)(!1);(0,o.useEffect)((function(){var e,o=t.current;function i(){var e,t,n=o.scrollHeight,a=null!=(e=null==r?void 0:r.duration)?e:function(e){var t=e/36;return Math.round(10*(4+15*Math.pow(t,.25)+t/5))}(n);return{transition:"height "+a+"ms "+(null!=(t=null==r?void 0:r.easing)?t:"ease-in-out"),height:n+"px"}}function l(){var e=i();o.style.transition=e.transition,o.style.height=e.height}if(!a.current)return f(o,n),void(a.current=!0);return o.style.willChange="height",e=requestAnimationFrame((function(){n?(l(),requestAnimationFrame((function(){o.style.height=s.height,o.style.overflow=s.overflow}))):(o.style.display="block",requestAnimationFrame((function(){l()})))})),function(){return cancelAnimationFrame(e)}}),[t,n,r])}function p(e){if(!a.Z.canUseDOM)return e?s:c}function m(e){var t=e.as,n=void 0===t?"div":t,r=e.collapsed,a=e.children,i=e.animation,l=e.onCollapseTransitionEnd,u=e.className,s=e.disableSSRStyle,c=(0,o.useRef)(null);return d({collapsibleRef:c,collapsed:r,animation:i}),o.createElement(n,{ref:c,style:s?void 0:p(r),onTransitionEnd:function(e){"height"===e.propertyName&&(f(c.current,r),null==l||l(r))},className:u},a)}function h(e){var t=e.collapsed,n=(0,r.Z)(e,i),a=(0,o.useState)(!t),l=a[0],u=a[1],s=(0,o.useState)(t),c=s[0],f=s[1];return(0,o.useLayoutEffect)((function(){t||u(!0)}),[t]),(0,o.useLayoutEffect)((function(){l&&f(t)}),[l,t]),l?o.createElement(m,Object.assign({},n,{collapsed:c})):null}function g(e){var t=e.lazy,n=(0,r.Z)(e,l),a=t?h:m;return o.createElement(a,Object.assign({},n))}},9689:function(e,t,n){"use strict";n.d(t,{nT:function(){return m},pl:function(){return p}});var r=n(7294),a=n(2389),o=n(12),i=n(9688),l=n(6668),u=(0,o.W)("docusaurus.announcement.dismiss"),s=(0,o.W)("docusaurus.announcement.id"),c=function(){return"true"===u.get()},f=function(e){return u.set(String(e))},d=r.createContext(null);function p(e){var t=e.children,n=function(){var e=(0,l.L)().announcementBar,t=(0,a.Z)(),n=(0,r.useState)((function(){return!!t&&c()})),o=n[0],i=n[1];(0,r.useEffect)((function(){i(c())}),[]);var u=(0,r.useCallback)((function(){f(!0),i(!0)}),[]);return(0,r.useEffect)((function(){if(e){var t=e.id,n=s.get();"annoucement-bar"===n&&(n="announcement-bar");var r=t!==n;s.set(t),r&&f(!1),!r&&c()||i(!1)}}),[e]),(0,r.useMemo)((function(){return{isActive:!!e&&!o,close:u}}),[e,o,u])}();return r.createElement(d.Provider,{value:n},t)}function m(){var e=(0,r.useContext)(d);if(!e)throw new i.i6("AnnouncementBarProvider");return e}},2949:function(e,t,n){"use strict";n.d(t,{I:function(){return g},S:function(){return h}});var r=n(7294),a=n(9688),o=n(412),i=n(12),l=n(6668),u=r.createContext(void 0),s="theme",c=(0,i.W)(s),f="light",d="dark",p=function(e){return e===d?d:f};function m(){var e=(0,l.L)().colorMode,t=e.defaultMode,n=e.disableSwitch,a=e.respectPrefersColorScheme,i=(0,r.useState)(function(e){return o.Z.canUseDOM?p(document.documentElement.getAttribute("data-theme")):p(e)}(t)),u=i[0],m=i[1];(0,r.useEffect)((function(){n&&c.del()}),[n]);var h=(0,r.useCallback)((function(e,n){void 0===n&&(n={});var r=n.persist,o=void 0===r||r;e?(m(e),o&&function(e){c.set(p(e))}(e)):(m(a?window.matchMedia("(prefers-color-scheme: dark)").matches?d:f:t),c.del())}),[a,t]);(0,r.useEffect)((function(){document.documentElement.setAttribute("data-theme",p(u))}),[u]),(0,r.useEffect)((function(){if(!n){var e=function(e){if(e.key===s){var t=c.get();null!==t&&h(p(t))}};return window.addEventListener("storage",e),function(){return window.removeEventListener("storage",e)}}}),[n,h]);var g=(0,r.useRef)(!1);return(0,r.useEffect)((function(){if(!n||a){var e=window.matchMedia("(prefers-color-scheme: dark)"),t=function(){window.matchMedia("print").matches||g.current?g.current=window.matchMedia("print").matches:h(null)};return e.addListener(t),function(){return e.removeListener(t)}}}),[h,n,a]),(0,r.useMemo)((function(){return{colorMode:u,setColorMode:h,get isDarkTheme(){return u===d},setLightTheme:function(){h(f)},setDarkTheme:function(){h(d)}}}),[u,h])}function h(e){var t=e.children,n=m();return r.createElement(u.Provider,{value:n},t)}function g(){var e=(0,r.useContext)(u);if(null==e)throw new a.i6("ColorModeProvider","Please see https://docusaurus.io/docs/api/themes/configuration#use-color-mode.");return e}},373:function(e,t,n){"use strict";n.d(t,{J:function(){return y},L5:function(){return v}});var r=n(7294),a=n(6668),o=n(8425),i=n(9688),l=n(12),u=n(5551),s=n(9935),c=function(e){return"docs-preferred-version-"+e},f=function(e,t,n){(0,l.W)(c(e),{persistence:t}).set(n)},d=function(e,t){return(0,l.W)(c(e),{persistence:t}).get()},p=function(e,t){(0,l.W)(c(e),{persistence:t}).del()};var m=r.createContext(null);function h(){var e=(0,u._r)(),t=(0,a.L)().docs.versionPersistence,n=(0,r.useMemo)((function(){return Object.keys(e)}),[e]),o=(0,r.useState)((function(){return function(e){return Object.fromEntries(e.map((function(e){return[e,{preferredVersionName:null}]})))}(n)})),i=o[0],l=o[1];return(0,r.useEffect)((function(){l(function(e){var t=e.pluginIds,n=e.versionPersistence,r=e.allDocsData;return Object.fromEntries(t.map((function(e){return[e,(t=e,a=d(t,n),r[t].versions.some((function(e){return e.name===a}))?{preferredVersionName:a}:(p(t,n),{preferredVersionName:null}))];var t,a})))}({allDocsData:e,versionPersistence:t,pluginIds:n}))}),[e,t,n]),[i,(0,r.useMemo)((function(){return{savePreferredVersion:function(e,n){f(e,t,n),l((function(t){var r;return Object.assign({},t,((r={})[e]={preferredVersionName:n},r))}))}}}),[t])]}function g(e){var t=e.children,n=h();return r.createElement(m.Provider,{value:n},t)}function v(e){var t=e.children;return o.cE?r.createElement(g,null,t):t}function b(){var e=(0,r.useContext)(m);if(!e)throw new i.i6("DocsPreferredVersionContextProvider");return e}function y(e){var t;void 0===e&&(e=s.m);var n=(0,u.zh)(e),a=b(),o=a[0],i=a[1],l=o[e].preferredVersionName;return{preferredVersion:null!=(t=n.versions.find((function(e){return e.name===l})))?t:null,savePreferredVersionName:(0,r.useCallback)((function(t){i.savePreferredVersion(e,t)}),[i,e])}}},1116:function(e,t,n){"use strict";n.d(t,{V:function(){return u},b:function(){return l}});var r=n(7294),a=n(9688),o=Symbol("EmptyContext"),i=r.createContext(o);function l(e){var t=e.children,n=e.name,a=e.items,o=(0,r.useMemo)((function(){return n&&a?{name:n,items:a}:null}),[n,a]);return r.createElement(i.Provider,{value:o},t)}function u(){var e=(0,r.useContext)(i);if(e===o)throw new a.i6("DocsSidebarProvider");return e}},2961:function(e,t,n){"use strict";n.d(t,{M:function(){return d},e:function(){return p}});var r=n(7294),a=n(3102),o=n(7524),i=n(6775),l=n(9688);function u(e){!function(e){var t=(0,i.k6)().block,n=(0,l.ed)(e);(0,r.useEffect)((function(){return t((function(e,t){return n(e,t)}))}),[t,n])}((function(t,n){if("POP"===n)return e(t,n)}))}var s=n(6668),c=r.createContext(void 0);function f(){var e,t=(e=(0,a.HY)(),0===(0,s.L)().navbar.items.length&&!e.component),n=(0,o.i)(),i=!t&&"mobile"===n,l=(0,r.useState)(!1),c=l[0],f=l[1];u((function(){if(c)return f(!1),!1}));var d=(0,r.useCallback)((function(){f((function(e){return!e}))}),[]);return(0,r.useEffect)((function(){"desktop"===n&&f(!1)}),[n]),(0,r.useMemo)((function(){return{disabled:t,shouldRender:i,toggle:d,shown:c}}),[t,i,d,c])}function d(e){var t=e.children,n=f();return r.createElement(c.Provider,{value:n},t)}function p(){var e=r.useContext(c);if(void 0===e)throw new l.i6("NavbarMobileSidebarProvider");return e}},3102:function(e,t,n){"use strict";n.d(t,{HY:function(){return l},Zo:function(){return u},n2:function(){return i}});var r=n(7294),a=n(9688),o=r.createContext(null);function i(e){var t=e.children,n=(0,r.useState)({component:null,props:null});return r.createElement(o.Provider,{value:n},t)}function l(){var e=(0,r.useContext)(o);if(!e)throw new a.i6("NavbarSecondaryMenuContentProvider");return e[0]}function u(e){var t=e.component,n=e.props,i=(0,r.useContext)(o);if(!i)throw new a.i6("NavbarSecondaryMenuContentProvider");var l,u=i[1],s=(l=n,(0,r.useMemo)((function(){return l}),[].concat(Object.keys(l),Object.values(l))));return(0,r.useEffect)((function(){u({component:t,props:s})}),[u,t,s]),(0,r.useEffect)((function(){return function(){return u({component:null,props:null})}}),[u]),null}},9727:function(e,t,n){"use strict";n.d(t,{h:function(){return a},t:function(){return o}});var r=n(7294),a="navigation-with-keyboard";function o(){(0,r.useEffect)((function(){function e(e){"keydown"===e.type&&"Tab"===e.key&&document.body.classList.add(a),"mousedown"===e.type&&document.body.classList.remove(a)}return document.addEventListener("keydown",e),document.addEventListener("mousedown",e),function(){document.body.classList.remove(a),document.removeEventListener("keydown",e),document.removeEventListener("mousedown",e)}}),[])}},7524:function(e,t,n){"use strict";n.d(t,{i:function(){return s}});var r=n(7294),a=n(412),o="desktop",i="mobile",l="ssr";function u(){return a.Z.canUseDOM?window.innerWidth>996?o:i:l}function s(){var e=(0,r.useState)((function(){return u()})),t=e[0],n=e[1];return(0,r.useEffect)((function(){function e(){n(u())}return window.addEventListener("resize",e),function(){window.removeEventListener("resize",e),clearTimeout(undefined)}}),[]),t}},5281:function(e,t,n){"use strict";n.d(t,{k:function(){return r}});var r={page:{blogListPage:"blog-list-page",blogPostPage:"blog-post-page",blogTagsListPage:"blog-tags-list-page",blogTagPostListPage:"blog-tags-post-list-page",docsDocPage:"docs-doc-page",docsTagsListPage:"docs-tags-list-page",docsTagDocListPage:"docs-tags-doc-list-page",mdxPage:"mdx-page"},wrapper:{main:"main-wrapper",blogPages:"blog-wrapper",docsPages:"docs-wrapper",mdxPages:"mdx-wrapper"},common:{editThisPage:"theme-edit-this-page",lastUpdated:"theme-last-updated",backToTopButton:"theme-back-to-top-button",codeBlock:"theme-code-block"},layout:{},docs:{docVersionBanner:"theme-doc-version-banner",docVersionBadge:"theme-doc-version-badge",docBreadcrumbs:"theme-doc-breadcrumbs",docMarkdown:"theme-doc-markdown",docTocMobile:"theme-doc-toc-mobile",docTocDesktop:"theme-doc-toc-desktop",docFooter:"theme-doc-footer",docFooterTagsRow:"theme-doc-footer-tags-row",docFooterEditMetaRow:"theme-doc-footer-edit-meta-row",docSidebarContainer:"theme-doc-sidebar-container",docSidebarMenu:"theme-doc-sidebar-menu",docSidebarItemCategory:"theme-doc-sidebar-item-category",docSidebarItemLink:"theme-doc-sidebar-item-link",docSidebarItemCategoryLevel:function(e){return"theme-doc-sidebar-item-category-level-"+e},docSidebarItemLinkLevel:function(e){return"theme-doc-sidebar-item-link-level-"+e}},blog:{}}},8425:function(e,t,n){"use strict";function r(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function a(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(n)return(n=n.call(e)).next.bind(n);if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return r(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?r(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var a=0;return function(){return a>=e.length?{done:!0}:{done:!1,value:e[a++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}n.d(t,{Wl:function(){return m},_F:function(){return g},cE:function(){return p},hI:function(){return k},lO:function(){return b},vY:function(){return w},oz:function(){return y},s1:function(){return v}});var o=n(7294),i=n(5551),l=n(373),u=n(1116);function s(e){return Array.from(new Set(e))}var c=n(8596),f=n(6775),d=n(8790),p=!!i._r;function m(e){if(e.href)return e.href;for(var t,n=a(e.items);!(t=n()).done;){var r=t.value;if("link"===r.type)return r.href;if("category"===r.type){var o=m(r);if(o)return o}}}var h=function(e,t){return void 0!==e&&(0,c.Mg)(e,t)};function g(e,t){return"link"===e.type?h(e.href,t):"category"===e.type&&(h(e.href,t)||function(e,t){return e.some((function(e){return g(e,t)}))}(e.items,t))}function v(){var e,t=(0,u.V)(),n=(0,f.TH)().pathname;if(!1===(null==(e=(0,i.gA)())?void 0:e.pluginData.breadcrumbs)||!t)return null;var r=[];return function e(t){for(var o,i=a(t);!(o=i()).done;){var l=o.value;if("category"===l.type&&((0,c.Mg)(l.href,n)||e(l.items))||"link"===l.type&&(0,c.Mg)(l.href,n))return r.push(l),!0}return!1}(t.items),r.reverse()}function b(e){var t=(0,i.Iw)(e).activeVersion,n=(0,l.J)(e).preferredVersion,r=(0,i.yW)(e);return(0,o.useMemo)((function(){return s([t,n,r].filter(Boolean))}),[t,n,r])}function y(e,t){var n=b(t);return(0,o.useMemo)((function(){var t=n.flatMap((function(e){return e.sidebars?Object.entries(e.sidebars):[]})),r=t.find((function(t){return t[0]===e}));if(!r)throw new Error("Can't find any sidebar with id \""+e+'" in version'+(n.length>1?"s":"")+" "+n.map((function(e){return e.name})).join(", ")+'".\n  Available sidebar ids are:\n  - '+Object.keys(t).join("\n- "));return r[1]}),[e,n])}function w(e,t){var n=b(t);return(0,o.useMemo)((function(){var t=n.flatMap((function(e){return e.docs})),r=t.find((function(t){return t.id===e}));if(!r){if(n.flatMap((function(e){return e.draftIds})).includes(e))return null;throw new Error("DocNavbarItem: couldn't find any doc with id \""+e+'" in version'+(n.length>1?"s":"")+" "+n.map((function(e){return e.name})).join(", ")+'".\nAvailable doc ids are:\n- '+s(t.map((function(e){return e.id}))).join("\n- "))}return r}),[e,n])}function k(e){var t=e.route,n=e.versionMetadata,r=(0,f.TH)(),a=t.routes,o=a.find((function(e){return(0,f.LX)(r.pathname,e)}));if(!o)return null;var i=o.sidebar,l=i?n.docsSidebars[i]:void 0;return{docElement:(0,d.H)(a,{versionMetadata:n}),sidebarName:i,sidebarItems:l}}},1944:function(e,t,n){"use strict";n.d(t,{FG:function(){return d},d:function(){return c},VC:function(){return p}});var r=n(7294),a=n(5742),o=n(6010),i=n(226);function l(){var e=r.useContext(i._);if(!e)throw new Error("Unexpected: no Docusaurus route context found");return e}var u=n(4996),s=n(2263);function c(e){var t=e.title,n=e.description,o=e.keywords,i=e.image,l=e.children,c=function(e){var t=(0,s.Z)().siteConfig,n=t.title,r=t.titleDelimiter;return null!=e&&e.trim().length?e.trim()+" "+r+" "+n:n}(t),f=(0,u.C)().withBaseUrl,d=i?f(i,{absolute:!0}):void 0;return r.createElement(a.Z,null,t&&r.createElement("title",null,c),t&&r.createElement("meta",{property:"og:title",content:c}),n&&r.createElement("meta",{name:"description",content:n}),n&&r.createElement("meta",{property:"og:description",content:n}),o&&r.createElement("meta",{name:"keywords",content:Array.isArray(o)?o.join(","):o}),d&&r.createElement("meta",{property:"og:image",content:d}),d&&r.createElement("meta",{name:"twitter:image",content:d}),l)}var f=r.createContext(void 0);function d(e){var t=e.className,n=e.children,i=r.useContext(f),l=(0,o.Z)(i,t);return r.createElement(f.Provider,{value:l},r.createElement(a.Z,null,r.createElement("html",{className:l})),n)}function p(e){var t=e.children,n=l(),a="plugin-"+n.plugin.name.replace(/docusaurus-(?:plugin|theme)-(?:content-)?/gi,""),i="plugin-id-"+n.plugin.id;return r.createElement(d,{className:(0,o.Z)(a,i)},t)}},9688:function(e,t,n){"use strict";n.d(t,{i6:function(){return m},ed:function(){return d},D9:function(){return p}});var r=n(6528),a=n(4578);function o(e){return o=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},o(e)}var i=n(9611);function l(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}function u(e,t,n){return u=l()?Reflect.construct.bind():function(e,t,n){var r=[null];r.push.apply(r,t);var a=new(Function.bind.apply(e,r));return n&&(0,i.Z)(a,n.prototype),a},u.apply(null,arguments)}function s(e){var t="function"==typeof Map?new Map:void 0;return s=function(e){if(null===e||(n=e,-1===Function.toString.call(n).indexOf("[native code]")))return e;var n;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,r)}function r(){return u(e,arguments,o(this).constructor)}return r.prototype=Object.create(e.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),(0,i.Z)(r,e)},s(e)}var c=n(7294),f=n(412).Z.canUseDOM?c.useLayoutEffect:c.useEffect;function d(e){var t=(0,c.useRef)(e);return f((function(){t.current=e}),[e]),(0,c.useCallback)((function(){return t.current.apply(t,arguments)}),[])}function p(e){var t=(0,c.useRef)();return f((function(){t.current=e})),t.current}var m=function(e){function t(t,n){var a,o,i,l;return(l=e.call(this)||this).name="ReactContextError",l.message="Hook "+(null==(a=l.stack)||null==(o=a.split("\n")[1])||null==(i=o.match((0,r.Z)(/at (?:\w+\.)?(\w+)/,{name:1})))?void 0:i.groups.name)+" is called outside the <"+t+">. "+(n||""),l}return(0,a.Z)(t,e),t}(s(Error))},8596:function(e,t,n){"use strict";n.d(t,{Mg:function(){return i},Ns:function(){return l}});var r=n(7294),a=n(723),o=n(2263);function i(e,t){var n=function(e){var t;return null==(t=!e||null!=e&&e.endsWith("/")?e:e+"/")?void 0:t.toLowerCase()};return n(e)===n(t)}function l(){var e=(0,o.Z)().siteConfig.baseUrl;return(0,r.useMemo)((function(){return function(e){var t=e.baseUrl;function n(e){return e.path===t&&!0===e.exact}function r(e){return e.path===t&&!e.exact}return function e(t){if(0!==t.length)return t.find(n)||e(t.filter(r).flatMap((function(e){var t;return null!=(t=e.routes)?t:[]})))}(e.routes)}({routes:a.Z,baseUrl:e})}),[e])}},2466:function(e,t,n){"use strict";n.d(t,{Ct:function(){return d},OC:function(){return u},RF:function(){return f}});var r=n(7294),a=n(9688),o=n(412),i=n(2389);var l=r.createContext(void 0);function u(e){var t,n=e.children,a=(t=(0,r.useRef)(!0),(0,r.useMemo)((function(){return{scrollEventsEnabledRef:t,enableScrollEvents:function(){t.current=!0},disableScrollEvents:function(){t.current=!1}}}),[]));return r.createElement(l.Provider,{value:a},n)}function s(){var e=(0,r.useContext)(l);if(null==e)throw new a.i6("ScrollControllerProvider");return e}var c=function(){return o.Z.canUseDOM?{scrollX:window.pageXOffset,scrollY:window.pageYOffset}:null};function f(e,t){void 0===t&&(t=[]);var n=s().scrollEventsEnabledRef,o=(0,r.useRef)(c()),i=(0,a.ed)(e);(0,r.useEffect)((function(){var e=function(){if(n.current){var e=c();i&&i(e,o.current),o.current=e}},t={passive:!0};return e(),window.addEventListener("scroll",e,t),function(){return window.removeEventListener("scroll",e,t)}}),[i,n].concat(t))}function d(){var e=(0,r.useRef)(null),t=(0,i.Z)()&&"smooth"===getComputedStyle(document.documentElement).scrollBehavior;return{startScroll:function(n){e.current=t?function(e){return window.scrollTo({top:e,behavior:"smooth"}),function(){}}(n):function(e){var t=null,n=document.documentElement.scrollTop>e;return function r(){var a=document.documentElement.scrollTop;(n&&a>e||!n&&a<e)&&(t=requestAnimationFrame(r),window.scrollTo(0,Math.floor(.85*(a-e))+e))}(),function(){return t&&cancelAnimationFrame(t)}}(n)},cancelScroll:function(){return null==e.current?void 0:e.current()}}}},3320:function(e,t,n){"use strict";n.d(t,{HX:function(){return r},os:function(){return a}});n(2263);var r="default";function a(e,t){return"docs-"+e+"-"+t}},12:function(e,t,n){"use strict";n.d(t,{W:function(){return l},_:function(){return u}});var r="localStorage";function a(e){if(void 0===e&&(e=r),"undefined"==typeof window)throw new Error("Browser storage is not available on Node.js/Docusaurus SSR process.");if("none"===e)return null;try{return window[e]}catch(n){return t=n,o||(console.warn("Docusaurus browser storage is not available.\nPossible reasons: running Docusaurus in an iframe, in an incognito browser session, or using too strict browser privacy settings.",t),o=!0),null}var t}var o=!1;var i={get:function(){return null},set:function(){},del:function(){}};function l(e,t){if("undefined"==typeof window)return function(e){function t(){throw new Error('Illegal storage API usage for storage key "'+e+'".\nDocusaurus storage APIs are not supposed to be called on the server-rendering process.\nPlease only call storage APIs in effects and event handlers.')}return{get:t,set:t,del:t}}(e);var n=a(null==t?void 0:t.persistence);return null===n?i:{get:function(){try{return n.getItem(e)}catch(t){return console.error("Docusaurus storage error, can't get key="+e,t),null}},set:function(t){try{n.setItem(e,t)}catch(r){console.error("Docusaurus storage error, can't set "+e+"="+t,r)}},del:function(){try{n.removeItem(e)}catch(t){console.error("Docusaurus storage error, can't delete key="+e,t)}}}}function u(e){void 0===e&&(e=r);var t=a(e);if(!t)return[];for(var n=[],o=0;o<t.length;o+=1){var i=t.key(o);null!==i&&n.push(i)}return n}},4711:function(e,t,n){"use strict";n.d(t,{l:function(){return o}});var r=n(2263),a=n(6775);function o(){var e=(0,r.Z)(),t=e.siteConfig,n=t.baseUrl,o=t.url,i=e.i18n,l=i.defaultLocale,u=i.currentLocale,s=(0,a.TH)().pathname,c=u===l?n:n.replace("/"+u+"/","/"),f=s.replace(n,"");return{createUrl:function(e){var t=e.locale;return""+(e.fullyQualified?o:"")+function(e){return e===l?""+c:""+c+e+"/"}(t)+f}}}},5936:function(e,t,n){"use strict";n.d(t,{S:function(){return i}});var r=n(7294),a=n(6775),o=n(9688);function i(e){var t=(0,a.TH)(),n=(0,o.D9)(t),i=(0,o.ed)(e);(0,r.useEffect)((function(){n&&t!==n&&i({location:t,previousLocation:n})}),[i,t,n])}},6668:function(e,t,n){"use strict";n.d(t,{L:function(){return a}});var r=n(2263);function a(){return(0,r.Z)().siteConfig.themeConfig}},8802:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){var n=t.trailingSlash,r=t.baseUrl;if(e.startsWith("#"))return e;if(void 0===n)return e;var a,o=e.split(/[#?]/)[0],i="/"===o||o===r?o:(a=o,n?function(e){return e.endsWith("/")?e:e+"/"}(a):function(e){return e.endsWith("/")?e.slice(0,-1):e}(a));return e.replace(o,i)}},8780:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.applyTrailingSlash=t.blogPostContainerID=void 0,t.blogPostContainerID="post-content";var a=n(8802);Object.defineProperty(t,"applyTrailingSlash",{enumerable:!0,get:function(){return r(a).default}})},6010:function(e,t,n){"use strict";function r(e){var t,n,a="";if("string"==typeof e||"number"==typeof e)a+=e;else if("object"==typeof e)if(Array.isArray(e))for(t=0;t<e.length;t++)e[t]&&(n=r(e[t]))&&(a&&(a+=" "),a+=n);else for(t in e)e[t]&&(a&&(a+=" "),a+=t);return a}function a(){for(var e,t,n=0,a="";n<arguments.length;)(e=arguments[n++])&&(t=r(e))&&(a&&(a+=" "),a+=t);return a}n.d(t,{Z:function(){return a}})},2358:function(e,t,n){"use strict";n.d(t,{lX:function(){return S},q_:function(){return O},ob:function(){return h},PP:function(){return P},Ep:function(){return m},Hp:function(){return g}});var r=n(7462);function a(e){return"/"===e.charAt(0)}function o(e,t){for(var n=t,r=n+1,a=e.length;r<a;n+=1,r+=1)e[n]=e[r];e.pop()}var i=function(e,t){void 0===t&&(t="");var n,r=e&&e.split("/")||[],i=t&&t.split("/")||[],l=e&&a(e),u=t&&a(t),s=l||u;if(e&&a(e)?i=r:r.length&&(i.pop(),i=i.concat(r)),!i.length)return"/";if(i.length){var c=i[i.length-1];n="."===c||".."===c||""===c}else n=!1;for(var f=0,d=i.length;d>=0;d--){var p=i[d];"."===p?o(i,d):".."===p?(o(i,d),f++):f&&(o(i,d),f--)}if(!s)for(;f--;f)i.unshift("..");!s||""===i[0]||i[0]&&a(i[0])||i.unshift("");var m=i.join("/");return n&&"/"!==m.substr(-1)&&(m+="/"),m};function l(e){return e.valueOf?e.valueOf():Object.prototype.valueOf.call(e)}var u=function e(t,n){if(t===n)return!0;if(null==t||null==n)return!1;if(Array.isArray(t))return Array.isArray(n)&&t.length===n.length&&t.every((function(t,r){return e(t,n[r])}));if("object"==typeof t||"object"==typeof n){var r=l(t),a=l(n);return r!==t||a!==n?e(r,a):Object.keys(Object.assign({},t,n)).every((function(r){return e(t[r],n[r])}))}return!1},s=n(2177);function c(e){return"/"===e.charAt(0)?e:"/"+e}function f(e){return"/"===e.charAt(0)?e.substr(1):e}function d(e,t){return function(e,t){return 0===e.toLowerCase().indexOf(t.toLowerCase())&&-1!=="/?#".indexOf(e.charAt(t.length))}(e,t)?e.substr(t.length):e}function p(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e}function m(e){var t=e.pathname,n=e.search,r=e.hash,a=t||"/";return n&&"?"!==n&&(a+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(a+="#"===r.charAt(0)?r:"#"+r),a}function h(e,t,n,a){var o;"string"==typeof e?(o=function(e){var t=e||"/",n="",r="",a=t.indexOf("#");-1!==a&&(r=t.substr(a),t=t.substr(0,a));var o=t.indexOf("?");return-1!==o&&(n=t.substr(o),t=t.substr(0,o)),{pathname:t,search:"?"===n?"":n,hash:"#"===r?"":r}}(e),o.state=t):(void 0===(o=(0,r.Z)({},e)).pathname&&(o.pathname=""),o.search?"?"!==o.search.charAt(0)&&(o.search="?"+o.search):o.search="",o.hash?"#"!==o.hash.charAt(0)&&(o.hash="#"+o.hash):o.hash="",void 0!==t&&void 0===o.state&&(o.state=t));try{o.pathname=decodeURI(o.pathname)}catch(l){throw l instanceof URIError?new URIError('Pathname "'+o.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):l}return n&&(o.key=n),a?o.pathname?"/"!==o.pathname.charAt(0)&&(o.pathname=i(o.pathname,a.pathname)):o.pathname=a.pathname:o.pathname||(o.pathname="/"),o}function g(e,t){return e.pathname===t.pathname&&e.search===t.search&&e.hash===t.hash&&e.key===t.key&&u(e.state,t.state)}function v(){var e=null;var t=[];return{setPrompt:function(t){return e=t,function(){e===t&&(e=null)}},confirmTransitionTo:function(t,n,r,a){if(null!=e){var o="function"==typeof e?e(t,n):e;"string"==typeof o?"function"==typeof r?r(o,a):a(!0):a(!1!==o)}else a(!0)},appendListener:function(e){var n=!0;function r(){n&&e.apply(void 0,arguments)}return t.push(r),function(){n=!1,t=t.filter((function(e){return e!==r}))}},notifyListeners:function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];t.forEach((function(e){return e.apply(void 0,n)}))}}}var b=!("undefined"==typeof window||!window.document||!window.document.createElement);function y(e,t){t(window.confirm(e))}var w="popstate",k="hashchange";function E(){try{return window.history.state||{}}catch(e){return{}}}function S(e){void 0===e&&(e={}),b||(0,s.Z)(!1);var t,n=window.history,a=(-1===(t=window.navigator.userAgent).indexOf("Android 2.")&&-1===t.indexOf("Android 4.0")||-1===t.indexOf("Mobile Safari")||-1!==t.indexOf("Chrome")||-1!==t.indexOf("Windows Phone"))&&window.history&&"pushState"in window.history,o=!(-1===window.navigator.userAgent.indexOf("Trident")),i=e,l=i.forceRefresh,u=void 0!==l&&l,f=i.getUserConfirmation,g=void 0===f?y:f,S=i.keyLength,x=void 0===S?6:S,_=e.basename?p(c(e.basename)):"";function C(e){var t=e||{},n=t.key,r=t.state,a=window.location,o=a.pathname+a.search+a.hash;return _&&(o=d(o,_)),h(o,r,n)}function T(){return Math.random().toString(36).substr(2,x)}var A=v();function O(e){(0,r.Z)(U,e),U.length=n.length,A.notifyListeners(U.location,U.action)}function L(e){(function(e){return void 0===e.state&&-1===navigator.userAgent.indexOf("CriOS")})(e)||N(C(e.state))}function P(){N(C(E()))}var R=!1;function N(e){if(R)R=!1,O();else{A.confirmTransitionTo(e,"POP",g,(function(t){t?O({action:"POP",location:e}):function(e){var t=U.location,n=D.indexOf(t.key);-1===n&&(n=0);var r=D.indexOf(e.key);-1===r&&(r=0);var a=n-r;a&&(R=!0,F(a))}(e)}))}}var I=C(E()),D=[I.key];function M(e){return _+m(e)}function F(e){n.go(e)}var j=0;function B(e){1===(j+=e)&&1===e?(window.addEventListener(w,L),o&&window.addEventListener(k,P)):0===j&&(window.removeEventListener(w,L),o&&window.removeEventListener(k,P))}var z=!1;var U={length:n.length,action:"POP",location:I,createHref:M,push:function(e,t){var r="PUSH",o=h(e,t,T(),U.location);A.confirmTransitionTo(o,r,g,(function(e){if(e){var t=M(o),i=o.key,l=o.state;if(a)if(n.pushState({key:i,state:l},null,t),u)window.location.href=t;else{var s=D.indexOf(U.location.key),c=D.slice(0,s+1);c.push(o.key),D=c,O({action:r,location:o})}else window.location.href=t}}))},replace:function(e,t){var r="REPLACE",o=h(e,t,T(),U.location);A.confirmTransitionTo(o,r,g,(function(e){if(e){var t=M(o),i=o.key,l=o.state;if(a)if(n.replaceState({key:i,state:l},null,t),u)window.location.replace(t);else{var s=D.indexOf(U.location.key);-1!==s&&(D[s]=o.key),O({action:r,location:o})}else window.location.replace(t)}}))},go:F,goBack:function(){F(-1)},goForward:function(){F(1)},block:function(e){void 0===e&&(e=!1);var t=A.setPrompt(e);return z||(B(1),z=!0),function(){return z&&(z=!1,B(-1)),t()}},listen:function(e){var t=A.appendListener(e);return B(1),function(){B(-1),t()}}};return U}var x="hashchange",_={hashbang:{encodePath:function(e){return"!"===e.charAt(0)?e:"!/"+f(e)},decodePath:function(e){return"!"===e.charAt(0)?e.substr(1):e}},noslash:{encodePath:f,decodePath:c},slash:{encodePath:c,decodePath:c}};function C(e){var t=e.indexOf("#");return-1===t?e:e.slice(0,t)}function T(){var e=window.location.href,t=e.indexOf("#");return-1===t?"":e.substring(t+1)}function A(e){window.location.replace(C(window.location.href)+"#"+e)}function O(e){void 0===e&&(e={}),b||(0,s.Z)(!1);var t=window.history,n=(window.navigator.userAgent.indexOf("Firefox"),e),a=n.getUserConfirmation,o=void 0===a?y:a,i=n.hashType,l=void 0===i?"slash":i,u=e.basename?p(c(e.basename)):"",f=_[l],g=f.encodePath,w=f.decodePath;function k(){var e=w(T());return u&&(e=d(e,u)),h(e)}var E=v();function S(e){(0,r.Z)(z,e),z.length=t.length,E.notifyListeners(z.location,z.action)}var O=!1,L=null;function P(){var e,t,n=T(),r=g(n);if(n!==r)A(r);else{var a=k(),i=z.location;if(!O&&(t=a,(e=i).pathname===t.pathname&&e.search===t.search&&e.hash===t.hash))return;if(L===m(a))return;L=null,function(e){if(O)O=!1,S();else{var t="POP";E.confirmTransitionTo(e,t,o,(function(n){n?S({action:t,location:e}):function(e){var t=z.location,n=D.lastIndexOf(m(t));-1===n&&(n=0);var r=D.lastIndexOf(m(e));-1===r&&(r=0);var a=n-r;a&&(O=!0,M(a))}(e)}))}}(a)}}var R=T(),N=g(R);R!==N&&A(N);var I=k(),D=[m(I)];function M(e){t.go(e)}var F=0;function j(e){1===(F+=e)&&1===e?window.addEventListener(x,P):0===F&&window.removeEventListener(x,P)}var B=!1;var z={length:t.length,action:"POP",location:I,createHref:function(e){var t=document.querySelector("base"),n="";return t&&t.getAttribute("href")&&(n=C(window.location.href)),n+"#"+g(u+m(e))},push:function(e,t){var n="PUSH",r=h(e,void 0,void 0,z.location);E.confirmTransitionTo(r,n,o,(function(e){if(e){var t=m(r),a=g(u+t);if(T()!==a){L=t,function(e){window.location.hash=e}(a);var o=D.lastIndexOf(m(z.location)),i=D.slice(0,o+1);i.push(t),D=i,S({action:n,location:r})}else S()}}))},replace:function(e,t){var n="REPLACE",r=h(e,void 0,void 0,z.location);E.confirmTransitionTo(r,n,o,(function(e){if(e){var t=m(r),a=g(u+t);T()!==a&&(L=t,A(a));var o=D.indexOf(m(z.location));-1!==o&&(D[o]=t),S({action:n,location:r})}}))},go:M,goBack:function(){M(-1)},goForward:function(){M(1)},block:function(e){void 0===e&&(e=!1);var t=E.setPrompt(e);return B||(j(1),B=!0),function(){return B&&(B=!1,j(-1)),t()}},listen:function(e){var t=E.appendListener(e);return j(1),function(){j(-1),t()}}};return z}function L(e,t,n){return Math.min(Math.max(e,t),n)}function P(e){void 0===e&&(e={});var t=e,n=t.getUserConfirmation,a=t.initialEntries,o=void 0===a?["/"]:a,i=t.initialIndex,l=void 0===i?0:i,u=t.keyLength,s=void 0===u?6:u,c=v();function f(e){(0,r.Z)(w,e),w.length=w.entries.length,c.notifyListeners(w.location,w.action)}function d(){return Math.random().toString(36).substr(2,s)}var p=L(l,0,o.length-1),g=o.map((function(e){return h(e,void 0,"string"==typeof e?d():e.key||d())})),b=m;function y(e){var t=L(w.index+e,0,w.entries.length-1),r=w.entries[t];c.confirmTransitionTo(r,"POP",n,(function(e){e?f({action:"POP",location:r,index:t}):f()}))}var w={length:g.length,action:"POP",location:g[p],index:p,entries:g,createHref:b,push:function(e,t){var r="PUSH",a=h(e,t,d(),w.location);c.confirmTransitionTo(a,r,n,(function(e){if(e){var t=w.index+1,n=w.entries.slice(0);n.length>t?n.splice(t,n.length-t,a):n.push(a),f({action:r,location:a,index:t,entries:n})}}))},replace:function(e,t){var r="REPLACE",a=h(e,t,d(),w.location);c.confirmTransitionTo(a,r,n,(function(e){e&&(w.entries[w.index]=a,f({action:r,location:a}))}))},go:y,goBack:function(){y(-1)},goForward:function(){y(1)},canGo:function(e){var t=w.index+e;return t>=0&&t<w.entries.length},block:function(e){return void 0===e&&(e=!1),c.setPrompt(e)},listen:function(e){return c.appendListener(e)}};return w}},8679:function(e,t,n){"use strict";var r=n(9864),a={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},o={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},i={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},l={};function u(e){return r.isMemo(e)?i:l[e.$$typeof]||a}l[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},l[r.Memo]=i;var s=Object.defineProperty,c=Object.getOwnPropertyNames,f=Object.getOwnPropertySymbols,d=Object.getOwnPropertyDescriptor,p=Object.getPrototypeOf,m=Object.prototype;e.exports=function e(t,n,r){if("string"!=typeof n){if(m){var a=p(n);a&&a!==m&&e(t,a,r)}var i=c(n);f&&(i=i.concat(f(n)));for(var l=u(t),h=u(n),g=0;g<i.length;++g){var v=i[g];if(!(o[v]||r&&r[v]||h&&h[v]||l&&l[v])){var b=d(n,v);try{s(t,v,b)}catch(y){}}}}return t}},1143:function(e){"use strict";e.exports=function(e,t,n,r,a,o,i,l){if(!e){var u;if(void 0===t)u=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var s=[n,r,a,o,i,l],c=0;(u=new Error(t.replace(/%s/g,(function(){return s[c++]})))).name="Invariant Violation"}throw u.framesToPop=1,u}}},5826:function(e){e.exports=Array.isArray||function(e){return"[object Array]"==Object.prototype.toString.call(e)}},6743:function(e,t,n){"use strict";n.r(t)},9014:function(e,t,n){"use strict";n.r(t)},2497:function(e,t,n){"use strict";n.r(t)},4383:function(e,t,n){"use strict";n.r(t)},2295:function(e,t,n){"use strict";n.r(t)},4865:function(e,t,n){var r,a;r=function(){var e,t,n={version:"0.2.0"},r=n.settings={minimum:.08,easing:"ease",positionUsing:"",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,showSpinner:!0,barSelector:'[role="bar"]',spinnerSelector:'[role="spinner"]',parent:"body",template:'<div class="bar" role="bar"><div class="peg"></div></div><div class="spinner" role="spinner"><div class="spinner-icon"></div></div>'};function a(e,t,n){return e<t?t:e>n?n:e}function o(e){return 100*(-1+e)}function i(e,t,n){var a;return(a="translate3d"===r.positionUsing?{transform:"translate3d("+o(e)+"%,0,0)"}:"translate"===r.positionUsing?{transform:"translate("+o(e)+"%,0)"}:{"margin-left":o(e)+"%"}).transition="all "+t+"ms "+n,a}n.configure=function(e){var t,n;for(t in e)void 0!==(n=e[t])&&e.hasOwnProperty(t)&&(r[t]=n);return this},n.status=null,n.set=function(e){var t=n.isStarted();e=a(e,r.minimum,1),n.status=1===e?null:e;var o=n.render(!t),s=o.querySelector(r.barSelector),c=r.speed,f=r.easing;return o.offsetWidth,l((function(t){""===r.positionUsing&&(r.positionUsing=n.getPositioningCSS()),u(s,i(e,c,f)),1===e?(u(o,{transition:"none",opacity:1}),o.offsetWidth,setTimeout((function(){u(o,{transition:"all "+c+"ms linear",opacity:0}),setTimeout((function(){n.remove(),t()}),c)}),c)):setTimeout(t,c)})),this},n.isStarted=function(){return"number"==typeof n.status},n.start=function(){n.status||n.set(0);var e=function(){setTimeout((function(){n.status&&(n.trickle(),e())}),r.trickleSpeed)};return r.trickle&&e(),this},n.done=function(e){return e||n.status?n.inc(.3+.5*Math.random()).set(1):this},n.inc=function(e){var t=n.status;return t?("number"!=typeof e&&(e=(1-t)*a(Math.random()*t,.1,.95)),t=a(t+e,0,.994),n.set(t)):n.start()},n.trickle=function(){return n.inc(Math.random()*r.trickleRate)},e=0,t=0,n.promise=function(r){return r&&"resolved"!==r.state()?(0===t&&n.start(),e++,t++,r.always((function(){0==--t?(e=0,n.done()):n.set((e-t)/e)})),this):this},n.render=function(e){if(n.isRendered())return document.getElementById("nprogress");c(document.documentElement,"nprogress-busy");var t=document.createElement("div");t.id="nprogress",t.innerHTML=r.template;var a,i=t.querySelector(r.barSelector),l=e?"-100":o(n.status||0),s=document.querySelector(r.parent);return u(i,{transition:"all 0 linear",transform:"translate3d("+l+"%,0,0)"}),r.showSpinner||(a=t.querySelector(r.spinnerSelector))&&p(a),s!=document.body&&c(s,"nprogress-custom-parent"),s.appendChild(t),t},n.remove=function(){f(document.documentElement,"nprogress-busy"),f(document.querySelector(r.parent),"nprogress-custom-parent");var e=document.getElementById("nprogress");e&&p(e)},n.isRendered=function(){return!!document.getElementById("nprogress")},n.getPositioningCSS=function(){var e=document.body.style,t="WebkitTransform"in e?"Webkit":"MozTransform"in e?"Moz":"msTransform"in e?"ms":"OTransform"in e?"O":"";return t+"Perspective"in e?"translate3d":t+"Transform"in e?"translate":"margin"};var l=function(){var e=[];function t(){var n=e.shift();n&&n(t)}return function(n){e.push(n),1==e.length&&t()}}(),u=function(){var e=["Webkit","O","Moz","ms"],t={};function n(e){return e.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,(function(e,t){return t.toUpperCase()}))}function r(t){var n=document.body.style;if(t in n)return t;for(var r,a=e.length,o=t.charAt(0).toUpperCase()+t.slice(1);a--;)if((r=e[a]+o)in n)return r;return t}function a(e){return e=n(e),t[e]||(t[e]=r(e))}function o(e,t,n){t=a(t),e.style[t]=n}return function(e,t){var n,r,a=arguments;if(2==a.length)for(n in t)void 0!==(r=t[n])&&t.hasOwnProperty(n)&&o(e,n,r);else o(e,a[1],a[2])}}();function s(e,t){return("string"==typeof e?e:d(e)).indexOf(" "+t+" ")>=0}function c(e,t){var n=d(e),r=n+t;s(n,t)||(e.className=r.substring(1))}function f(e,t){var n,r=d(e);s(e,t)&&(n=r.replace(" "+t+" "," "),e.className=n.substring(1,n.length-1))}function d(e){return(" "+(e.className||"")+" ").replace(/\s+/gi," ")}function p(e){e&&e.parentNode&&e.parentNode.removeChild(e)}return n},void 0===(a="function"==typeof r?r.call(t,n,t,e):r)||(e.exports=a)},7418:function(e){"use strict";var t=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,r=Object.prototype.propertyIsEnumerable;function a(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(e){r[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(a){return!1}}()?Object.assign:function(e,o){for(var i,l,u=a(e),s=1;s<arguments.length;s++){for(var c in i=Object(arguments[s]))n.call(i,c)&&(u[c]=i[c]);if(t){l=t(i);for(var f=0;f<l.length;f++)r.call(i,l[f])&&(u[l[f]]=i[l[f]])}}return u}},7410:function(e,t,n){"use strict";n.r(t);var r=function(){var e=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,t=0,n={},r={util:{encode:function e(t){return t instanceof a?new a(t.type,e(t.content),t.alias):Array.isArray(t)?t.map(e):t.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/\u00a0/g," ")},type:function(e){return Object.prototype.toString.call(e).slice(8,-1)},objId:function(e){return e.__id||Object.defineProperty(e,"__id",{value:++t}),e.__id},clone:function e(t,n){var a,o;switch(n=n||{},r.util.type(t)){case"Object":if(o=r.util.objId(t),n[o])return n[o];for(var i in a={},n[o]=a,t)t.hasOwnProperty(i)&&(a[i]=e(t[i],n));return a;case"Array":return o=r.util.objId(t),n[o]?n[o]:(a=[],n[o]=a,t.forEach((function(t,r){a[r]=e(t,n)})),a);default:return t}},getLanguage:function(t){for(;t;){var n=e.exec(t.className);if(n)return n[1].toLowerCase();t=t.parentElement}return"none"},setLanguage:function(t,n){t.className=t.className.replace(RegExp(e,"gi"),""),t.classList.add("language-"+n)},isActive:function(e,t,n){for(var r="no-"+t;e;){var a=e.classList;if(a.contains(t))return!0;if(a.contains(r))return!1;e=e.parentElement}return!!n}},languages:{plain:n,plaintext:n,text:n,txt:n,extend:function(e,t){var n=r.util.clone(r.languages[e]);for(var a in t)n[a]=t[a];return n},insertBefore:function(e,t,n,a){var o=(a=a||r.languages)[e],i={};for(var l in o)if(o.hasOwnProperty(l)){if(l==t)for(var u in n)n.hasOwnProperty(u)&&(i[u]=n[u]);n.hasOwnProperty(l)||(i[l]=o[l])}var s=a[e];return a[e]=i,r.languages.DFS(r.languages,(function(t,n){n===s&&t!=e&&(this[t]=i)})),i},DFS:function e(t,n,a,o){o=o||{};var i=r.util.objId;for(var l in t)if(t.hasOwnProperty(l)){n.call(t,l,t[l],a||l);var u=t[l],s=r.util.type(u);"Object"!==s||o[i(u)]?"Array"!==s||o[i(u)]||(o[i(u)]=!0,e(u,n,l,o)):(o[i(u)]=!0,e(u,n,null,o))}}},plugins:{},highlight:function(e,t,n){var o={code:e,grammar:t,language:n};return r.hooks.run("before-tokenize",o),o.tokens=r.tokenize(o.code,o.grammar),r.hooks.run("after-tokenize",o),a.stringify(r.util.encode(o.tokens),o.language)},tokenize:function(e,t){var n=t.rest;if(n){for(var r in n)t[r]=n[r];delete t.rest}var a=new l;return u(a,a.head,e),i(e,a,t,a.head,0),function(e){var t=[],n=e.head.next;for(;n!==e.tail;)t.push(n.value),n=n.next;return t}(a)},hooks:{all:{},add:function(e,t){var n=r.hooks.all;n[e]=n[e]||[],n[e].push(t)},run:function(e,t){var n=r.hooks.all[e];if(n&&n.length)for(var a,o=0;a=n[o++];)a(t)}},Token:a};function a(e,t,n,r){this.type=e,this.content=t,this.alias=n,this.length=0|(r||"").length}function o(e,t,n,r){e.lastIndex=t;var a=e.exec(n);if(a&&r&&a[1]){var o=a[1].length;a.index+=o,a[0]=a[0].slice(o)}return a}function i(e,t,n,l,c,f){for(var d in n)if(n.hasOwnProperty(d)&&n[d]){var p=n[d];p=Array.isArray(p)?p:[p];for(var m=0;m<p.length;++m){if(f&&f.cause==d+","+m)return;var h=p[m],g=h.inside,v=!!h.lookbehind,b=!!h.greedy,y=h.alias;if(b&&!h.pattern.global){var w=h.pattern.toString().match(/[imsuy]*$/)[0];h.pattern=RegExp(h.pattern.source,w+"g")}for(var k=h.pattern||h,E=l.next,S=c;E!==t.tail&&!(f&&S>=f.reach);S+=E.value.length,E=E.next){var x=E.value;if(t.length>e.length)return;if(!(x instanceof a)){var _,C=1;if(b){if(!(_=o(k,S,e,v))||_.index>=e.length)break;var T=_.index,A=_.index+_[0].length,O=S;for(O+=E.value.length;T>=O;)O+=(E=E.next).value.length;if(S=O-=E.value.length,E.value instanceof a)continue;for(var L=E;L!==t.tail&&(O<A||"string"==typeof L.value);L=L.next)C++,O+=L.value.length;C--,x=e.slice(S,O),_.index-=S}else if(!(_=o(k,0,x,v)))continue;T=_.index;var P=_[0],R=x.slice(0,T),N=x.slice(T+P.length),I=S+x.length;f&&I>f.reach&&(f.reach=I);var D=E.prev;if(R&&(D=u(t,D,R),S+=R.length),s(t,D,C),E=u(t,D,new a(d,g?r.tokenize(P,g):P,y,P)),N&&u(t,E,N),C>1){var M={cause:d+","+m,reach:I};i(e,t,n,E.prev,S,M),f&&M.reach>f.reach&&(f.reach=M.reach)}}}}}}function l(){var e={value:null,prev:null,next:null},t={value:null,prev:e,next:null};e.next=t,this.head=e,this.tail=t,this.length=0}function u(e,t,n){var r=t.next,a={value:n,prev:t,next:r};return t.next=a,r.prev=a,e.length++,a}function s(e,t,n){for(var r=t.next,a=0;a<n&&r!==e.tail;a++)r=r.next;t.next=r,r.prev=t,e.length-=a}return a.stringify=function e(t,n){if("string"==typeof t)return t;if(Array.isArray(t)){var a="";return t.forEach((function(t){a+=e(t,n)})),a}var o={type:t.type,content:e(t.content,n),tag:"span",classes:["token",t.type],attributes:{},language:n},i=t.alias;i&&(Array.isArray(i)?Array.prototype.push.apply(o.classes,i):o.classes.push(i)),r.hooks.run("wrap",o);var l="";for(var u in o.attributes)l+=" "+u+'="'+(o.attributes[u]||"").replace(/"/g,"&quot;")+'"';return"<"+o.tag+' class="'+o.classes.join(" ")+'"'+l+">"+o.content+"</"+o.tag+">"},r}(),a=r;r.default=r,a.languages.markup={comment:{pattern:/<!--(?:(?!<!--)[\s\S])*?-->/,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/<!DOCTYPE(?:[^>"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|<!--(?:[^-]|-(?!->))*-->)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^<!|>$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},a.languages.markup.tag.inside["attr-value"].inside.entity=a.languages.markup.entity,a.languages.markup.doctype.inside["internal-subset"].inside=a.languages.markup,a.hooks.add("wrap",(function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&amp;/,"&"))})),Object.defineProperty(a.languages.markup.tag,"addInlined",{value:function(e,t){var n={};n["language-"+t]={pattern:/(^<!\[CDATA\[)[\s\S]+?(?=\]\]>$)/i,lookbehind:!0,inside:a.languages[t]},n.cdata=/^<!\[CDATA\[|\]\]>$/i;var r={"included-cdata":{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,inside:n}};r["language-"+t]={pattern:/[\s\S]+/,inside:a.languages[t]};var o={};o[e]={pattern:RegExp(/(<__[^>]*>)(?:<!\[CDATA\[(?:[^\]]|\](?!\]>))*\]\]>|(?!<!\[CDATA\[)[\s\S])*?(?=<\/__>)/.source.replace(/__/g,(function(){return e})),"i"),lookbehind:!0,greedy:!0,inside:r},a.languages.insertBefore("markup","cdata",o)}}),Object.defineProperty(a.languages.markup.tag,"addAttribute",{value:function(e,t){a.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+e+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[t,"language-"+t],inside:a.languages[t]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),a.languages.html=a.languages.markup,a.languages.mathml=a.languages.markup,a.languages.svg=a.languages.markup,a.languages.xml=a.languages.extend("markup",{}),a.languages.ssml=a.languages.xml,a.languages.atom=a.languages.xml,a.languages.rss=a.languages.xml,function(e){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",n={pattern:/(^(["']?)\w+\2)[ \t]+\S.*/,lookbehind:!0,alias:"punctuation",inside:null},r={bash:n,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}|U[0-9a-fA-F]{8}|u[0-9a-fA-F]{4}|x[0-9a-fA-F]{1,2})/};e.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[\s\S]*?(?:\r?\n|\r)\2/,lookbehind:!0,greedy:!0,inside:r},{pattern:/((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s[\s\S]*?(?:\r?\n|\r)\3/,lookbehind:!0,greedy:!0,inside:{bash:n}},{pattern:/(^|[^\\](?:\\\\)*)"(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|[^"\\`$])*"/,lookbehind:!0,greedy:!0,inside:r},{pattern:/(^|[^$\\])'[^']*'/,lookbehind:!0,greedy:!0},{pattern:/\$'(?:[^'\\]|\\[\s\S])*'/,greedy:!0,inside:{entity:r.entity}}],environment:{pattern:RegExp("\\$?"+t),alias:"constant"},variable:r.variable,function:{pattern:/(^|[\s;|&]|[<>]\()(?:add|apropos|apt|apt-cache|apt-get|aptitude|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|docker|docker-compose|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|node|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|podman|podman-compose|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|vcpkg|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;|&]|[<>]\()(?:case|do|done|elif|else|esac|fi|for|function|if|in|select|then|until|while)(?=$|[)\s;|&])/,lookbehind:!0},builtin:{pattern:/(^|[\s;|&]|[<>]\()(?:\.|:|alias|bind|break|builtin|caller|cd|command|continue|declare|echo|enable|eval|exec|exit|export|getopts|hash|help|let|local|logout|mapfile|printf|pwd|read|readarray|readonly|return|set|shift|shopt|source|test|times|trap|type|typeset|ulimit|umask|unalias|unset)(?=$|[)\s;|&])/,lookbehind:!0,alias:"class-name"},boolean:{pattern:/(^|[\s;|&]|[<>]\()(?:false|true)(?=$|[)\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}},n.inside=e.languages.bash;for(var a=["comment","function-name","for-or-select","assign-left","string","environment","function","keyword","builtin","boolean","file-descriptor","operator","punctuation","number"],o=r.variable[1].inside,i=0;i<a.length;i++)o[a[i]]=e.languages.bash[a[i]];e.languages.shell=e.languages.bash}(a),a.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/,boolean:/\b(?:false|true)\b/,function:/\b\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/},a.languages.c=a.languages.extend("clike",{comment:{pattern:/\/\/(?:[^\r\n\\]|\\(?:\r\n?|\n|(?![\r\n])))*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},"class-name":{pattern:/(\b(?:enum|struct)\s+(?:__attribute__\s*\(\([\s\S]*?\)\)\s*)?)\w+|\b[a-z]\w*_t\b/,lookbehind:!0},keyword:/\b(?:_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|__attribute__|asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|inline|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|typeof|union|unsigned|void|volatile|while)\b/,function:/\b[a-z_]\w*(?=\s*\()/i,number:/(?:\b0x(?:[\da-f]+(?:\.[\da-f]*)?|\.[\da-f]+)(?:p[+-]?\d+)?|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)[ful]{0,4}/i,operator:/>>=?|<<=?|->|([-+&|:])\1|[?:~]|[-+*/%&|^!=<>]=?/}),a.languages.insertBefore("c","string",{char:{pattern:/'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n]){0,32}'/,greedy:!0}}),a.languages.insertBefore("c","string",{macro:{pattern:/(^[\t ]*)#\s*[a-z](?:[^\r\n\\/]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|\\(?:\r\n|[\s\S]))*/im,lookbehind:!0,greedy:!0,alias:"property",inside:{string:[{pattern:/^(#\s*include\s*)<[^>]+>/,lookbehind:!0},a.languages.c.string],char:a.languages.c.char,comment:a.languages.c.comment,"macro-name":[{pattern:/(^#\s*define\s+)\w+\b(?!\()/i,lookbehind:!0},{pattern:/(^#\s*define\s+)\w+\b(?=\()/i,lookbehind:!0,alias:"function"}],directive:{pattern:/^(#\s*)[a-z]+/,lookbehind:!0,alias:"keyword"},"directive-hash":/^#/,punctuation:/##|\\(?=[\r\n])/,expression:{pattern:/\S[\s\S]*/,inside:a.languages.c}}}}),a.languages.insertBefore("c","function",{constant:/\b(?:EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|__DATE__|__FILE__|__LINE__|__TIMESTAMP__|__TIME__|__func__|stderr|stdin|stdout)\b/}),delete a.languages.c.boolean,function(e){var t=/\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|char8_t|class|co_await|co_return|co_yield|compl|concept|const|const_cast|consteval|constexpr|constinit|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|final|float|for|friend|goto|if|import|inline|int|int16_t|int32_t|int64_t|int8_t|long|module|mutable|namespace|new|noexcept|nullptr|operator|override|private|protected|public|register|reinterpret_cast|requires|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|uint16_t|uint32_t|uint64_t|uint8_t|union|unsigned|using|virtual|void|volatile|wchar_t|while)\b/,n=/\b(?!<keyword>)\w+(?:\s*\.\s*\w+)*\b/.source.replace(/<keyword>/g,(function(){return t.source}));e.languages.cpp=e.languages.extend("c",{"class-name":[{pattern:RegExp(/(\b(?:class|concept|enum|struct|typename)\s+)(?!<keyword>)\w+/.source.replace(/<keyword>/g,(function(){return t.source}))),lookbehind:!0},/\b[A-Z]\w*(?=\s*::\s*\w+\s*\()/,/\b[A-Z_]\w*(?=\s*::\s*~\w+\s*\()/i,/\b\w+(?=\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>\s*::\s*\w+\s*\()/],keyword:t,number:{pattern:/(?:\b0b[01']+|\b0x(?:[\da-f']+(?:\.[\da-f']*)?|\.[\da-f']+)(?:p[+-]?[\d']+)?|(?:\b[\d']+(?:\.[\d']*)?|\B\.[\d']+)(?:e[+-]?[\d']+)?)[ful]{0,4}/i,greedy:!0},operator:/>>=?|<<=?|->|--|\+\+|&&|\|\||[?:~]|<=>|[-+*/%&|^!=<>]=?|\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\b/,boolean:/\b(?:false|true)\b/}),e.languages.insertBefore("cpp","string",{module:{pattern:RegExp(/(\b(?:import|module)\s+)/.source+"(?:"+/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|<[^<>\r\n]*>/.source+"|"+/<mod-name>(?:\s*:\s*<mod-name>)?|:\s*<mod-name>/.source.replace(/<mod-name>/g,(function(){return n}))+")"),lookbehind:!0,greedy:!0,inside:{string:/^[<"][\s\S]+/,operator:/:/,punctuation:/\./}},"raw-string":{pattern:/R"([^()\\ ]{0,16})\([\s\S]*?\)\1"/,alias:"string",greedy:!0}}),e.languages.insertBefore("cpp","keyword",{"generic-function":{pattern:/\b(?!operator\b)[a-z_]\w*\s*<(?:[^<>]|<[^<>]*>)*>(?=\s*\()/i,inside:{function:/^\w+/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:e.languages.cpp}}}}),e.languages.insertBefore("cpp","operator",{"double-colon":{pattern:/::/,alias:"punctuation"}}),e.languages.insertBefore("cpp","class-name",{"base-clause":{pattern:/(\b(?:class|struct)\s+\w+\s*:\s*)[^;{}"'\s]+(?:\s+[^;{}"'\s]+)*(?=\s*[;{])/,lookbehind:!0,greedy:!0,inside:e.languages.extend("cpp",{})}}),e.languages.insertBefore("inside","double-colon",{"class-name":/\b[a-z_]\w*\b(?!\s*::)/i},e.languages.cpp["base-clause"])}(a),function(e){var t=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;e.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:/@[\w-](?:[^;{\s]|\s+(?![\s{]))*(?:;|(?=\s*\{))/,inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+t.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+t.source+"$"),alias:"url"}}},selector:{pattern:RegExp("(^|[{}\\s])[^{}\\s](?:[^{};\"'\\s]|\\s+(?![\\s{])|"+t.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:t,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},e.languages.css.atrule.inside.rest=e.languages.css;var n=e.languages.markup;n&&(n.tag.addInlined("style","css"),n.tag.addAttribute("style","css"))}(a),function(e){var t,n=/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/;e.languages.css.selector={pattern:e.languages.css.selector.pattern,lookbehind:!0,inside:t={"pseudo-element":/:(?:after|before|first-letter|first-line|selection)|::[-\w]+/,"pseudo-class":/:[-\w]+/,class:/\.[-\w]+/,id:/#[-\w]+/,attribute:{pattern:RegExp("\\[(?:[^[\\]\"']|"+n.source+")*\\]"),greedy:!0,inside:{punctuation:/^\[|\]$/,"case-sensitivity":{pattern:/(\s)[si]$/i,lookbehind:!0,alias:"keyword"},namespace:{pattern:/^(\s*)(?:(?!\s)[-*\w\xA0-\uFFFF])*\|(?!=)/,lookbehind:!0,inside:{punctuation:/\|$/}},"attr-name":{pattern:/^(\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+/,lookbehind:!0},"attr-value":[n,{pattern:/(=\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+(?=\s*$)/,lookbehind:!0}],operator:/[|~*^$]?=/}},"n-th":[{pattern:/(\(\s*)[+-]?\d*[\dn](?:\s*[+-]\s*\d+)?(?=\s*\))/,lookbehind:!0,inside:{number:/[\dn]+/,operator:/[+-]/}},{pattern:/(\(\s*)(?:even|odd)(?=\s*\))/i,lookbehind:!0}],combinator:/>|\+|~|\|\|/,punctuation:/[(),]/}},e.languages.css.atrule.inside["selector-function-argument"].inside=t,e.languages.insertBefore("css","property",{variable:{pattern:/(^|[^-\w\xA0-\uFFFF])--(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*/i,lookbehind:!0}});var r={pattern:/(\b\d+)(?:%|[a-z]+(?![\w-]))/,lookbehind:!0},a={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0};e.languages.insertBefore("css","function",{operator:{pattern:/(\s)[+\-*\/](?=\s)/,lookbehind:!0},hexcode:{pattern:/\B#[\da-f]{3,8}\b/i,alias:"color"},color:[{pattern:/(^|[^\w-])(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)(?![\w-])/i,lookbehind:!0},{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:r,number:a,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:r,number:a})}(a),a.languages.javascript=a.languages.extend("clike",{"class-name":[a.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),a.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,a.languages.insertBefore("javascript","keyword",{regex:{pattern:/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)\/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/,lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:a.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:a.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:a.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:a.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]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:a.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),a.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"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:a.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),a.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),a.languages.markup&&(a.languages.markup.tag.addInlined("script","javascript"),a.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript")),a.languages.js=a.languages.javascript,function(e){var t=/#(?!\{).+/,n={pattern:/#\{[^}]+\}/,alias:"variable"};e.languages.coffeescript=e.languages.extend("javascript",{comment:t,string:[{pattern:/'(?:\\[\s\S]|[^\\'])*'/,greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,greedy:!0,inside:{interpolation:n}}],keyword:/\b(?:and|break|by|catch|class|continue|debugger|delete|do|each|else|extend|extends|false|finally|for|if|in|instanceof|is|isnt|let|loop|namespace|new|no|not|null|of|off|on|or|own|return|super|switch|then|this|throw|true|try|typeof|undefined|unless|until|when|while|window|with|yes|yield)\b/,"class-member":{pattern:/@(?!\d)\w+/,alias:"variable"}}),e.languages.insertBefore("coffeescript","comment",{"multiline-comment":{pattern:/###[\s\S]+?###/,alias:"comment"},"block-regex":{pattern:/\/{3}[\s\S]*?\/{3}/,alias:"regex",inside:{comment:t,interpolation:n}}}),e.languages.insertBefore("coffeescript","string",{"inline-javascript":{pattern:/`(?:\\[\s\S]|[^\\`])*`/,inside:{delimiter:{pattern:/^`|`$/,alias:"punctuation"},script:{pattern:/[\s\S]+/,alias:"language-javascript",inside:e.languages.javascript}}},"multiline-string":[{pattern:/'''[\s\S]*?'''/,greedy:!0,alias:"string"},{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string",inside:{interpolation:n}}]}),e.languages.insertBefore("coffeescript","keyword",{property:/(?!\d)\w+(?=\s*:(?!:))/}),delete e.languages.coffeescript["template-string"],e.languages.coffee=e.languages.coffeescript}(a),function(e){var t=/[*&][^\s[\]{},]+/,n=/!(?:<[\w\-%#;/?:@&=+$,.!~*'()[\]]+>|(?:[a-zA-Z\d-]*!)?[\w\-%#;/?:@&=+$.~*'()]+)?/,r="(?:"+n.source+"(?:[ \t]+"+t.source+")?|"+t.source+"(?:[ \t]+"+n.source+")?)",a=/(?:[^\s\x00-\x08\x0e-\x1f!"#%&'*,\-:>?@[\]`{|}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]|[?:-]<PLAIN>)(?:[ \t]*(?:(?![#:])<PLAIN>|:<PLAIN>))*/.source.replace(/<PLAIN>/g,(function(){return/[^\s\x00-\x08\x0e-\x1f,[\]{}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]/.source})),o=/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\\\r\n]|\\.)*'/.source;function i(e,t){t=(t||"").replace(/m/g,"")+"m";var n=/([:\-,[{]\s*(?:\s<<prop>>[ \t]+)?)(?:<<value>>)(?=[ \t]*(?:$|,|\]|\}|(?:[\r\n]\s*)?#))/.source.replace(/<<prop>>/g,(function(){return r})).replace(/<<value>>/g,(function(){return e}));return RegExp(n,t)}e.languages.yaml={scalar:{pattern:RegExp(/([\-:]\s*(?:\s<<prop>>[ \t]+)?[|>])[ \t]*(?:((?:\r?\n|\r)[ \t]+)\S[^\r\n]*(?:\2[^\r\n]+)*)/.source.replace(/<<prop>>/g,(function(){return r}))),lookbehind:!0,alias:"string"},comment:/#.*/,key:{pattern:RegExp(/((?:^|[:\-,[{\r\n?])[ \t]*(?:<<prop>>[ \t]+)?)<<key>>(?=\s*:\s)/.source.replace(/<<prop>>/g,(function(){return r})).replace(/<<key>>/g,(function(){return"(?:"+a+"|"+o+")"}))),lookbehind:!0,greedy:!0,alias:"atrule"},directive:{pattern:/(^[ \t]*)%.+/m,lookbehind:!0,alias:"important"},datetime:{pattern:i(/\d{4}-\d\d?-\d\d?(?:[tT]|[ \t]+)\d\d?:\d{2}:\d{2}(?:\.\d*)?(?:[ \t]*(?:Z|[-+]\d\d?(?::\d{2})?))?|\d{4}-\d{2}-\d{2}|\d\d?:\d{2}(?::\d{2}(?:\.\d*)?)?/.source),lookbehind:!0,alias:"number"},boolean:{pattern:i(/false|true/.source,"i"),lookbehind:!0,alias:"important"},null:{pattern:i(/null|~/.source,"i"),lookbehind:!0,alias:"important"},string:{pattern:i(o),lookbehind:!0,greedy:!0},number:{pattern:i(/[+-]?(?:0x[\da-f]+|0o[0-7]+|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?|\.inf|\.nan)/.source,"i"),lookbehind:!0},tag:n,important:t,punctuation:/---|[:[\]{}\-,|>?]|\.\.\./},e.languages.yml=e.languages.yaml}(a),function(e){var t=/(?:\\.|[^\\\n\r]|(?:\n|\r\n?)(?![\r\n]))/.source;function n(e){return e=e.replace(/<inner>/g,(function(){return t})),RegExp(/((?:^|[^\\])(?:\\{2})*)/.source+"(?:"+e+")")}var r=/(?:\\.|``(?:[^`\r\n]|`(?!`))+``|`[^`\r\n]+`|[^\\|\r\n`])+/.source,a=/\|?__(?:\|__)+\|?(?:(?:\n|\r\n?)|(?![\s\S]))/.source.replace(/__/g,(function(){return r})),o=/\|?[ \t]*:?-{3,}:?[ \t]*(?:\|[ \t]*:?-{3,}:?[ \t]*)+\|?(?:\n|\r\n?)/.source;e.languages.markdown=e.languages.extend("markup",{}),e.languages.insertBefore("markdown","prolog",{"front-matter-block":{pattern:/(^(?:\s*[\r\n])?)---(?!.)[\s\S]*?[\r\n]---(?!.)/,lookbehind:!0,greedy:!0,inside:{punctuation:/^---|---$/,"front-matter":{pattern:/\S+(?:\s+\S+)*/,alias:["yaml","language-yaml"],inside:e.languages.yaml}}},blockquote:{pattern:/^>(?:[\t ]*>)*/m,alias:"punctuation"},table:{pattern:RegExp("^"+a+o+"(?:"+a+")*","m"),inside:{"table-data-rows":{pattern:RegExp("^("+a+o+")(?:"+a+")*$"),lookbehind:!0,inside:{"table-data":{pattern:RegExp(r),inside:e.languages.markdown},punctuation:/\|/}},"table-line":{pattern:RegExp("^("+a+")"+o+"$"),lookbehind:!0,inside:{punctuation:/\||:?-{3,}:?/}},"table-header-row":{pattern:RegExp("^"+a+"$"),inside:{"table-header":{pattern:RegExp(r),alias:"important",inside:e.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:/^```[\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:n(/\b__(?:(?!_)<inner>|_(?:(?!_)<inner>)+_)+__\b|\*\*(?:(?!\*)<inner>|\*(?:(?!\*)<inner>)+\*)+\*\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^..)[\s\S]+(?=..$)/,lookbehind:!0,inside:{}},punctuation:/\*\*|__/}},italic:{pattern:n(/\b_(?:(?!_)<inner>|__(?:(?!_)<inner>)+__)+_\b|\*(?:(?!\*)<inner>|\*\*(?:(?!\*)<inner>)+\*\*)+\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^.)[\s\S]+(?=.$)/,lookbehind:!0,inside:{}},punctuation:/[*_]/}},strike:{pattern:n(/(~~?)(?:(?!~)<inner>)+\2/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^~~?)[\s\S]+(?=\1$)/,lookbehind:!0,inside:{}},punctuation:/~~?/}},"code-snippet":{pattern:/(^|[^\\`])(?:``[^`\r\n]+(?:`[^`\r\n]+)*``(?!`)|`[^`\r\n]+`(?!`))/,lookbehind:!0,greedy:!0,alias:["code","keyword"]},url:{pattern:n(/!?\[(?:(?!\])<inner>)+\](?:\([^\s)]+(?:[\t ]+"(?:\\.|[^"\\])*")?\)|[ \t]?\[(?:(?!\])<inner>)+\])/.source),lookbehind:!0,greedy:!0,inside:{operator:/^!/,content:{pattern:/(^\[)[^\]]+(?=\])/,lookbehind:!0,inside:{}},variable:{pattern:/(^\][ \t]?\[)[^\]]+(?=\]$)/,lookbehind:!0},url:{pattern:/(^\]\()[^\s)]+/,lookbehind:!0},string:{pattern:/(^[ \t]+)"(?:\\.|[^"\\])*"(?=\)$)/,lookbehind:!0}}}}),["url","bold","italic","strike"].forEach((function(t){["url","bold","italic","strike","code-snippet"].forEach((function(n){t!==n&&(e.languages.markdown[t].inside.content.inside[n]=e.languages.markdown[n])}))})),e.hooks.add("after-tokenize",(function(e){"markdown"!==e.language&&"md"!==e.language||function e(t){if(t&&"string"!=typeof t)for(var n=0,r=t.length;n<r;n++){var a=t[n];if("code"===a.type){var o=a.content[1],i=a.content[3];if(o&&i&&"code-language"===o.type&&"code-block"===i.type&&"string"==typeof o.content){var l=o.content.replace(/\b#/g,"sharp").replace(/\b\+\+/g,"pp"),u="language-"+(l=(/[a-z][\w-]*/i.exec(l)||[""])[0].toLowerCase());i.alias?"string"==typeof i.alias?i.alias=[i.alias,u]:i.alias.push(u):i.alias=[u]}}else e(a.content)}}(e.tokens)})),e.hooks.add("wrap",(function(t){if("code-block"===t.type){for(var n="",r=0,a=t.classes.length;r<a;r++){var o=t.classes[r],s=/language-(.+)/.exec(o);if(s){n=s[1];break}}var c,f=e.languages[n];if(f)t.content=e.highlight((c=t.content,c.replace(i,"").replace(/&(\w{1,8}|#x?[\da-f]{1,8});/gi,(function(e,t){var n;if("#"===(t=t.toLowerCase())[0])return n="x"===t[1]?parseInt(t.slice(2),16):Number(t.slice(1)),u(n);var r=l[t];return r||e}))),f,n);else if(n&&"none"!==n&&e.plugins.autoloader){var d="md-"+(new Date).valueOf()+"-"+Math.floor(1e16*Math.random());t.attributes.id=d,e.plugins.autoloader.loadLanguages(n,(function(){var t=document.getElementById(d);t&&(t.innerHTML=e.highlight(t.textContent,e.languages[n],n))}))}}}));var i=RegExp(e.languages.markup.tag.pattern.source,"gi"),l={amp:"&",lt:"<",gt:">",quot:'"'},u=String.fromCodePoint||String.fromCharCode;e.languages.md=e.languages.markdown}(a),a.languages.graphql={comment:/#.*/,description:{pattern:/(?:"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*")(?=\s*[a-z_])/i,greedy:!0,alias:"string",inside:{"language-markdown":{pattern:/(^"(?:"")?)(?!\1)[\s\S]+(?=\1$)/,lookbehind:!0,inside:a.languages.markdown}}},string:{pattern:/"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*"/,greedy:!0},number:/(?:\B-|\b)\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,boolean:/\b(?:false|true)\b/,variable:/\$[a-z_]\w*/i,directive:{pattern:/@[a-z_]\w*/i,alias:"function"},"attr-name":{pattern:/\b[a-z_]\w*(?=\s*(?:\((?:[^()"]|"(?:\\.|[^\\"\r\n])*")*\))?:)/i,greedy:!0},"atom-input":{pattern:/\b[A-Z]\w*Input\b/,alias:"class-name"},scalar:/\b(?:Boolean|Float|ID|Int|String)\b/,constant:/\b[A-Z][A-Z_\d]*\b/,"class-name":{pattern:/(\b(?:enum|implements|interface|on|scalar|type|union)\s+|&\s*|:\s*|\[)[A-Z_]\w*/,lookbehind:!0},fragment:{pattern:/(\bfragment\s+|\.{3}\s*(?!on\b))[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-mutation":{pattern:/(\bmutation\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-query":{pattern:/(\bquery\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},keyword:/\b(?:directive|enum|extend|fragment|implements|input|interface|mutation|on|query|repeatable|scalar|schema|subscription|type|union)\b/,operator:/[!=|&]|\.{3}/,"property-query":/\w+(?=\s*\()/,object:/\w+(?=\s*\{)/,punctuation:/[!(){}\[\]:=,]/,property:/\w+/},a.hooks.add("after-tokenize",(function(e){if("graphql"===e.language)for(var t=e.tokens.filter((function(e){return"string"!=typeof e&&"comment"!==e.type&&"scalar"!==e.type})),n=0;n<t.length;){var r=t[n++];if("keyword"===r.type&&"mutation"===r.content){var a=[];if(f(["definition-mutation","punctuation"])&&"("===c(1).content){n+=2;var o=d(/^\($/,/^\)$/);if(-1===o)continue;for(;n<o;n++){var i=c(0);"variable"===i.type&&(p(i,"variable-input"),a.push(i.content))}n=o+1}if(f(["punctuation","property-query"])&&"{"===c(0).content&&(n++,p(c(0),"property-mutation"),a.length>0)){var l=d(/^\{$/,/^\}$/);if(-1===l)continue;for(var u=n;u<l;u++){var s=t[u];"variable"===s.type&&a.indexOf(s.content)>=0&&p(s,"variable-input")}}}}function c(e){return t[n+e]}function f(e,t){t=t||0;for(var n=0;n<e.length;n++){var r=c(n+t);if(!r||r.type!==e[n])return!1}return!0}function d(e,r){for(var a=1,o=n;o<t.length;o++){var i=t[o],l=i.content;if("punctuation"===i.type&&"string"==typeof l)if(e.test(l))a++;else if(r.test(l)&&0===--a)return o}return-1}function p(e,t){var n=e.alias;n?Array.isArray(n)||(e.alias=n=[n]):e.alias=n=[],n.push(t)}})),a.languages.sql={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|(?:--|\/\/|#).*)/,lookbehind:!0},variable:[{pattern:/@(["'`])(?:\\[\s\S]|(?!\1)[^\\])+\1/,greedy:!0},/@[\w.$]+/],string:{pattern:/(^|[^@\\])("|')(?:\\[\s\S]|(?!\2)[^\\]|\2\2)*\2/,greedy:!0,lookbehind:!0},identifier:{pattern:/(^|[^@\\])`(?:\\[\s\S]|[^`\\]|``)*`/,greedy:!0,lookbehind:!0,inside:{punctuation:/^`|`$/}},function:/\b(?:AVG|COUNT|FIRST|FORMAT|LAST|LCASE|LEN|MAX|MID|MIN|MOD|NOW|ROUND|SUM|UCASE)(?=\s*\()/i,keyword:/\b(?:ACTION|ADD|AFTER|ALGORITHM|ALL|ALTER|ANALYZE|ANY|APPLY|AS|ASC|AUTHORIZATION|AUTO_INCREMENT|BACKUP|BDB|BEGIN|BERKELEYDB|BIGINT|BINARY|BIT|BLOB|BOOL|BOOLEAN|BREAK|BROWSE|BTREE|BULK|BY|CALL|CASCADED?|CASE|CHAIN|CHAR(?:ACTER|SET)?|CHECK(?:POINT)?|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMNS?|COMMENT|COMMIT(?:TED)?|COMPUTE|CONNECT|CONSISTENT|CONSTRAINT|CONTAINS(?:TABLE)?|CONTINUE|CONVERT|CREATE|CROSS|CURRENT(?:_DATE|_TIME|_TIMESTAMP|_USER)?|CURSOR|CYCLE|DATA(?:BASES?)?|DATE(?:TIME)?|DAY|DBCC|DEALLOCATE|DEC|DECIMAL|DECLARE|DEFAULT|DEFINER|DELAYED|DELETE|DELIMITERS?|DENY|DESC|DESCRIBE|DETERMINISTIC|DISABLE|DISCARD|DISK|DISTINCT|DISTINCTROW|DISTRIBUTED|DO|DOUBLE|DROP|DUMMY|DUMP(?:FILE)?|DUPLICATE|ELSE(?:IF)?|ENABLE|ENCLOSED|END|ENGINE|ENUM|ERRLVL|ERRORS|ESCAPED?|EXCEPT|EXEC(?:UTE)?|EXISTS|EXIT|EXPLAIN|EXTENDED|FETCH|FIELDS|FILE|FILLFACTOR|FIRST|FIXED|FLOAT|FOLLOWING|FOR(?: EACH ROW)?|FORCE|FOREIGN|FREETEXT(?:TABLE)?|FROM|FULL|FUNCTION|GEOMETRY(?:COLLECTION)?|GLOBAL|GOTO|GRANT|GROUP|HANDLER|HASH|HAVING|HOLDLOCK|HOUR|IDENTITY(?:COL|_INSERT)?|IF|IGNORE|IMPORT|INDEX|INFILE|INNER|INNODB|INOUT|INSERT|INT|INTEGER|INTERSECT|INTERVAL|INTO|INVOKER|ISOLATION|ITERATE|JOIN|KEYS?|KILL|LANGUAGE|LAST|LEAVE|LEFT|LEVEL|LIMIT|LINENO|LINES|LINESTRING|LOAD|LOCAL|LOCK|LONG(?:BLOB|TEXT)|LOOP|MATCH(?:ED)?|MEDIUM(?:BLOB|INT|TEXT)|MERGE|MIDDLEINT|MINUTE|MODE|MODIFIES|MODIFY|MONTH|MULTI(?:LINESTRING|POINT|POLYGON)|NATIONAL|NATURAL|NCHAR|NEXT|NO|NONCLUSTERED|NULLIF|NUMERIC|OFF?|OFFSETS?|ON|OPEN(?:DATASOURCE|QUERY|ROWSET)?|OPTIMIZE|OPTION(?:ALLY)?|ORDER|OUT(?:ER|FILE)?|OVER|PARTIAL|PARTITION|PERCENT|PIVOT|PLAN|POINT|POLYGON|PRECEDING|PRECISION|PREPARE|PREV|PRIMARY|PRINT|PRIVILEGES|PROC(?:EDURE)?|PUBLIC|PURGE|QUICK|RAISERROR|READS?|REAL|RECONFIGURE|REFERENCES|RELEASE|RENAME|REPEAT(?:ABLE)?|REPLACE|REPLICATION|REQUIRE|RESIGNAL|RESTORE|RESTRICT|RETURN(?:ING|S)?|REVOKE|RIGHT|ROLLBACK|ROUTINE|ROW(?:COUNT|GUIDCOL|S)?|RTREE|RULE|SAVE(?:POINT)?|SCHEMA|SECOND|SELECT|SERIAL(?:IZABLE)?|SESSION(?:_USER)?|SET(?:USER)?|SHARE|SHOW|SHUTDOWN|SIMPLE|SMALLINT|SNAPSHOT|SOME|SONAME|SQL|START(?:ING)?|STATISTICS|STATUS|STRIPED|SYSTEM_USER|TABLES?|TABLESPACE|TEMP(?:ORARY|TABLE)?|TERMINATED|TEXT(?:SIZE)?|THEN|TIME(?:STAMP)?|TINY(?:BLOB|INT|TEXT)|TOP?|TRAN(?:SACTIONS?)?|TRIGGER|TRUNCATE|TSEQUAL|TYPES?|UNBOUNDED|UNCOMMITTED|UNDEFINED|UNION|UNIQUE|UNLOCK|UNPIVOT|UNSIGNED|UPDATE(?:TEXT)?|USAGE|USE|USER|USING|VALUES?|VAR(?:BINARY|CHAR|CHARACTER|YING)|VIEW|WAITFOR|WARNINGS|WHEN|WHERE|WHILE|WITH(?: ROLLUP|IN)?|WORK|WRITE(?:TEXT)?|YEAR)\b/i,boolean:/\b(?:FALSE|NULL|TRUE)\b/i,number:/\b0x[\da-f]+\b|\b\d+(?:\.\d*)?|\B\.\d+\b/i,operator:/[-+*\/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?|\b(?:AND|BETWEEN|DIV|ILIKE|IN|IS|LIKE|NOT|OR|REGEXP|RLIKE|SOUNDS LIKE|XOR)\b/i,punctuation:/[;[\]()`,.]/},function(e){var t=e.languages.javascript["template-string"],n=t.pattern.source,r=t.inside.interpolation,a=r.inside["interpolation-punctuation"],o=r.pattern.source;function i(t,r){if(e.languages[t])return{pattern:RegExp("((?:"+r+")\\s*)"+n),lookbehind:!0,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},"embedded-code":{pattern:/[\s\S]+/,alias:t}}}}function l(e,t){return"___"+t.toUpperCase()+"_"+e+"___"}function u(t,n,r){var a={code:t,grammar:n,language:r};return e.hooks.run("before-tokenize",a),a.tokens=e.tokenize(a.code,a.grammar),e.hooks.run("after-tokenize",a),a.tokens}function s(t){var n={};n["interpolation-punctuation"]=a;var o=e.tokenize(t,n);if(3===o.length){var i=[1,1];i.push.apply(i,u(o[1],e.languages.javascript,"javascript")),o.splice.apply(o,i)}return new e.Token("interpolation",o,r.alias,t)}function c(t,n,r){var a=e.tokenize(t,{interpolation:{pattern:RegExp(o),lookbehind:!0}}),i=0,c={},f=u(a.map((function(e){if("string"==typeof e)return e;for(var n,a=e.content;-1!==t.indexOf(n=l(i++,r)););return c[n]=a,n})).join(""),n,r),d=Object.keys(c);return i=0,function e(t){for(var n=0;n<t.length;n++){if(i>=d.length)return;var r=t[n];if("string"==typeof r||"string"==typeof r.content){var a=d[i],o="string"==typeof r?r:r.content,l=o.indexOf(a);if(-1!==l){++i;var u=o.substring(0,l),f=s(c[a]),p=o.substring(l+a.length),m=[];if(u&&m.push(u),m.push(f),p){var h=[p];e(h),m.push.apply(m,h)}"string"==typeof r?(t.splice.apply(t,[n,1].concat(m)),n+=m.length-1):r.content=m}}else{var g=r.content;Array.isArray(g)?e(g):e([g])}}}(f),new e.Token(r,f,"language-"+r,t)}e.languages.javascript["template-string"]=[i("css",/\b(?:styled(?:\([^)]*\))?(?:\s*\.\s*\w+(?:\([^)]*\))*)*|css(?:\s*\.\s*(?:global|resolve))?|createGlobalStyle|keyframes)/.source),i("html",/\bhtml|\.\s*(?:inner|outer)HTML\s*\+?=/.source),i("svg",/\bsvg/.source),i("markdown",/\b(?:markdown|md)/.source),i("graphql",/\b(?:gql|graphql(?:\s*\.\s*experimental)?)/.source),i("sql",/\bsql/.source),t].filter(Boolean);var f={javascript:!0,js:!0,typescript:!0,ts:!0,jsx:!0,tsx:!0};function d(e){return"string"==typeof e?e:Array.isArray(e)?e.map(d).join(""):d(e.content)}e.hooks.add("after-tokenize",(function(t){t.language in f&&function t(n){for(var r=0,a=n.length;r<a;r++){var o=n[r];if("string"!=typeof o){var i=o.content;if(Array.isArray(i))if("template-string"===o.type){var l=i[1];if(3===i.length&&"string"!=typeof l&&"embedded-code"===l.type){var u=d(l),s=l.alias,f=Array.isArray(s)?s[0]:s,p=e.languages[f];if(!p)continue;i[1]=c(u,p,f)}}else t(i);else"string"!=typeof i&&t([i])}}}(t.tokens)}))}(a),function(e){e.languages.typescript=e.languages.extend("javascript",{"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|type)\s+)(?!keyof\b)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?:\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,lookbehind:!0,greedy:!0,inside:null},builtin:/\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\b/}),e.languages.typescript.keyword.push(/\b(?:abstract|declare|is|keyof|readonly|require)\b/,/\b(?:asserts|infer|interface|module|namespace|type)\b(?=\s*(?:[{_$a-zA-Z\xA0-\uFFFF]|$))/,/\btype\b(?=\s*(?:[\{*]|$))/),delete e.languages.typescript.parameter,delete e.languages.typescript["literal-property"];var t=e.languages.extend("typescript",{});delete t["class-name"],e.languages.typescript["class-name"].inside=t,e.languages.insertBefore("typescript","function",{decorator:{pattern:/@[$\w\xA0-\uFFFF]+/,inside:{at:{pattern:/^@/,alias:"operator"},function:/^[\s\S]+/}},"generic-function":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\s*\()/,greedy:!0,inside:{function:/^#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:t}}}}),e.languages.ts=e.languages.typescript}(a),function(e){function t(e,t){return RegExp(e.replace(/<ID>/g,(function(){return/(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/.source})),t)}e.languages.insertBefore("javascript","function-variable",{"method-variable":{pattern:RegExp("(\\.\\s*)"+e.languages.javascript["function-variable"].pattern.source),lookbehind:!0,alias:["function-variable","method","function","property-access"]}}),e.languages.insertBefore("javascript","function",{method:{pattern:RegExp("(\\.\\s*)"+e.languages.javascript.function.source),lookbehind:!0,alias:["function","property-access"]}}),e.languages.insertBefore("javascript","constant",{"known-class-name":[{pattern:/\b(?:(?:Float(?:32|64)|(?:Int|Uint)(?:8|16|32)|Uint8Clamped)?Array|ArrayBuffer|BigInt|Boolean|DataView|Date|Error|Function|Intl|JSON|(?:Weak)?(?:Map|Set)|Math|Number|Object|Promise|Proxy|Reflect|RegExp|String|Symbol|WebAssembly)\b/,alias:"class-name"},{pattern:/\b(?:[A-Z]\w*)Error\b/,alias:"class-name"}]}),e.languages.insertBefore("javascript","keyword",{imports:{pattern:t(/(\bimport\b\s*)(?:<ID>(?:\s*,\s*(?:\*\s*as\s+<ID>|\{[^{}]*\}))?|\*\s*as\s+<ID>|\{[^{}]*\})(?=\s*\bfrom\b)/.source),lookbehind:!0,inside:e.languages.javascript},exports:{pattern:t(/(\bexport\b\s*)(?:\*(?:\s*as\s+<ID>)?(?=\s*\bfrom\b)|\{[^{}]*\})/.source),lookbehind:!0,inside:e.languages.javascript}}),e.languages.javascript.keyword.unshift({pattern:/\b(?:as|default|export|from|import)\b/,alias:"module"},{pattern:/\b(?:await|break|catch|continue|do|else|finally|for|if|return|switch|throw|try|while|yield)\b/,alias:"control-flow"},{pattern:/\bnull\b/,alias:["null","nil"]},{pattern:/\bundefined\b/,alias:"nil"}),e.languages.insertBefore("javascript","operator",{spread:{pattern:/\.{3}/,alias:"operator"},arrow:{pattern:/=>/,alias:"operator"}}),e.languages.insertBefore("javascript","punctuation",{"property-access":{pattern:t(/(\.\s*)#?<ID>/.source),lookbehind:!0},"maybe-class-name":{pattern:/(^|[^$\w\xA0-\uFFFF])[A-Z][$\w\xA0-\uFFFF]+/,lookbehind:!0},dom:{pattern:/\b(?:document|(?:local|session)Storage|location|navigator|performance|window)\b/,alias:"variable"},console:{pattern:/\bconsole(?=\s*\.)/,alias:"class-name"}});for(var n=["function","function-variable","method","method-variable","property-access"],r=0;r<n.length;r++){var a=n[r],o=e.languages.javascript[a];"RegExp"===e.util.type(o)&&(o=e.languages.javascript[a]={pattern:o});var i=o.inside||{};o.inside=i,i["maybe-class-name"]=/^[A-Z][\s\S]*/}}(a),function(e){var t=e.util.clone(e.languages.javascript),n=/(?:\s|\/\/.*(?!.)|\/\*(?:[^*]|\*(?!\/))\*\/)/.source,r=/(?:\{(?:\{(?:\{[^{}]*\}|[^{}])*\}|[^{}])*\})/.source,a=/(?:\{<S>*\.{3}(?:[^{}]|<BRACES>)*\})/.source;function o(e,t){return e=e.replace(/<S>/g,(function(){return n})).replace(/<BRACES>/g,(function(){return r})).replace(/<SPREAD>/g,(function(){return a})),RegExp(e,t)}a=o(a).source,e.languages.jsx=e.languages.extend("markup",t),e.languages.jsx.tag.pattern=o(/<\/?(?:[\w.:-]+(?:<S>+(?:[\w.:$-]+(?:=(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s{'"/>=]+|<BRACES>))?|<SPREAD>))*<S>*\/?)?>/.source),e.languages.jsx.tag.inside.tag.pattern=/^<\/?[^\s>\/]*/,e.languages.jsx.tag.inside["attr-value"].pattern=/=(?!\{)(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s'">]+)/,e.languages.jsx.tag.inside.tag.inside["class-name"]=/^[A-Z]\w*(?:\.[A-Z]\w*)*$/,e.languages.jsx.tag.inside.comment=t.comment,e.languages.insertBefore("inside","attr-name",{spread:{pattern:o(/<SPREAD>/.source),inside:e.languages.jsx}},e.languages.jsx.tag),e.languages.insertBefore("inside","special-attr",{script:{pattern:o(/=<BRACES>/.source),alias:"language-javascript",inside:{"script-punctuation":{pattern:/^=(?=\{)/,alias:"punctuation"},rest:e.languages.jsx}}},e.languages.jsx.tag);var i=function(e){return e?"string"==typeof e?e:"string"==typeof e.content?e.content:e.content.map(i).join(""):""},l=function(t){for(var n=[],r=0;r<t.length;r++){var a=t[r],o=!1;if("string"!=typeof a&&("tag"===a.type&&a.content[0]&&"tag"===a.content[0].type?"</"===a.content[0].content[0].content?n.length>0&&n[n.length-1].tagName===i(a.content[0].content[1])&&n.pop():"/>"===a.content[a.content.length-1].content||n.push({tagName:i(a.content[0].content[1]),openedBraces:0}):n.length>0&&"punctuation"===a.type&&"{"===a.content?n[n.length-1].openedBraces++:n.length>0&&n[n.length-1].openedBraces>0&&"punctuation"===a.type&&"}"===a.content?n[n.length-1].openedBraces--:o=!0),(o||"string"==typeof a)&&n.length>0&&0===n[n.length-1].openedBraces){var u=i(a);r<t.length-1&&("string"==typeof t[r+1]||"plain-text"===t[r+1].type)&&(u+=i(t[r+1]),t.splice(r+1,1)),r>0&&("string"==typeof t[r-1]||"plain-text"===t[r-1].type)&&(u=i(t[r-1])+u,t.splice(r-1,1),r--),t[r]=new e.Token("plain-text",u,null,u)}a.content&&"string"!=typeof a.content&&l(a.content)}};e.hooks.add("after-tokenize",(function(e){"jsx"!==e.language&&"tsx"!==e.language||l(e.tokens)}))}(a),function(e){e.languages.diff={coord:[/^(?:\*{3}|-{3}|\+{3}).*$/m,/^@@.*@@$/m,/^\d.*$/m]};var t={"deleted-sign":"-","deleted-arrow":"<","inserted-sign":"+","inserted-arrow":">",unchanged:" ",diff:"!"};Object.keys(t).forEach((function(n){var r=t[n],a=[];/^\w+$/.test(n)||a.push(/\w+/.exec(n)[0]),"diff"===n&&a.push("bold"),e.languages.diff[n]={pattern:RegExp("^(?:["+r+"].*(?:\r\n?|\n|(?![\\s\\S])))+","m"),alias:a,inside:{line:{pattern:/(.)(?=[\s\S]).*(?:\r\n?|\n)?/,lookbehind:!0},prefix:{pattern:/[\s\S]/,alias:/\w+/.exec(n)[0]}}}})),Object.defineProperty(e.languages.diff,"PREFIXES",{value:t})}(a),a.languages.git={comment:/^#.*/m,deleted:/^[-\u2013].*/m,inserted:/^\+.*/m,string:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,command:{pattern:/^.*\$ git .*$/m,inside:{parameter:/\s--?\w+/}},coord:/^@@.*@@$/m,"commit-sha1":/^commit \w{40}$/m},a.languages.go=a.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"|`[^`]*`/,lookbehind:!0,greedy:!0},keyword:/\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\b/,boolean:/\b(?:_|false|iota|nil|true)\b/,number:[/\b0(?:b[01_]+|o[0-7_]+)i?\b/i,/\b0x(?:[a-f\d_]+(?:\.[a-f\d_]*)?|\.[a-f\d_]+)(?:p[+-]?\d+(?:_\d+)*)?i?(?!\w)/i,/(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?[\d_]+)?i?(?!\w)/i],operator:/[*\/%^!=]=?|\+[=+]?|-[=-]?|\|[=|]?|&(?:=|&|\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\./,builtin:/\b(?:append|bool|byte|cap|close|complex|complex(?:64|128)|copy|delete|error|float(?:32|64)|u?int(?:8|16|32|64)?|imag|len|make|new|panic|print(?:ln)?|real|recover|rune|string|uintptr)\b/}),a.languages.insertBefore("go","string",{char:{pattern:/'(?:\\.|[^'\\\r\n]){0,10}'/,greedy:!0}}),delete a.languages.go["class-name"],function(e){function t(e,t){return"___"+e.toUpperCase()+t+"___"}Object.defineProperties(e.languages["markup-templating"]={},{buildPlaceholders:{value:function(n,r,a,o){if(n.language===r){var i=n.tokenStack=[];n.code=n.code.replace(a,(function(e){if("function"==typeof o&&!o(e))return e;for(var a,l=i.length;-1!==n.code.indexOf(a=t(r,l));)++l;return i[l]=e,a})),n.grammar=e.languages.markup}}},tokenizePlaceholders:{value:function(n,r){if(n.language===r&&n.tokenStack){n.grammar=e.languages[r];var a=0,o=Object.keys(n.tokenStack);!function i(l){for(var u=0;u<l.length&&!(a>=o.length);u++){var s=l[u];if("string"==typeof s||s.content&&"string"==typeof s.content){var c=o[a],f=n.tokenStack[c],d="string"==typeof s?s:s.content,p=t(r,c),m=d.indexOf(p);if(m>-1){++a;var h=d.substring(0,m),g=new e.Token(r,e.tokenize(f,n.grammar),"language-"+r,f),v=d.substring(m+p.length),b=[];h&&b.push.apply(b,i([h])),b.push(g),v&&b.push.apply(b,i([v])),"string"==typeof s?l.splice.apply(l,[u,1].concat(b)):s.content=b}}else s.content&&i(s.content)}return l}(n.tokens)}}}})}(a),function(e){e.languages.handlebars={comment:/\{\{![\s\S]*?\}\}/,delimiter:{pattern:/^\{\{\{?|\}\}\}?$/,alias:"punctuation"},string:/(["'])(?:\\.|(?!\1)[^\\\r\n])*\1/,number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee][+-]?\d+)?/,boolean:/\b(?:false|true)\b/,block:{pattern:/^(\s*(?:~\s*)?)[#\/]\S+?(?=\s*(?:~\s*)?$|\s)/,lookbehind:!0,alias:"keyword"},brackets:{pattern:/\[[^\]]+\]/,inside:{punctuation:/\[|\]/,variable:/[\s\S]+/}},punctuation:/[!"#%&':()*+,.\/;<=>@\[\\\]^`{|}~]/,variable:/[^!"#%&'()*+,\/;<=>@\[\\\]^`{|}~\s]+/},e.hooks.add("before-tokenize",(function(t){e.languages["markup-templating"].buildPlaceholders(t,"handlebars",/\{\{\{[\s\S]+?\}\}\}|\{\{[\s\S]+?\}\}/g)})),e.hooks.add("after-tokenize",(function(t){e.languages["markup-templating"].tokenizePlaceholders(t,"handlebars")})),e.languages.hbs=e.languages.handlebars}(a),a.languages.json={property:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?=\s*:)/,lookbehind:!0,greedy:!0},string:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,lookbehind:!0,greedy:!0},comment:{pattern:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,punctuation:/[{}[\],]/,operator:/:/,boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"}},a.languages.webmanifest=a.languages.json,a.languages.less=a.languages.extend("css",{comment:[/\/\*[\s\S]*?\*\//,{pattern:/(^|[^\\])\/\/.*/,lookbehind:!0}],atrule:{pattern:/@[\w-](?:\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{punctuation:/[:()]/}},selector:{pattern:/(?:@\{[\w-]+\}|[^{};\s@])(?:@\{[\w-]+\}|\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};@\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{variable:/@+[\w-]+/}},property:/(?:@\{[\w-]+\}|[\w-])+(?:\+_?)?(?=\s*:)/,operator:/[+\-*\/]/}),a.languages.insertBefore("less","property",{variable:[{pattern:/@[\w-]+\s*:/,inside:{punctuation:/:/}},/@@?[\w-]+/],"mixin-usage":{pattern:/([{;]\s*)[.#](?!\d)[\w-].*?(?=[(;])/,lookbehind:!0,alias:"function"}}),a.languages.makefile={comment:{pattern:/(^|[^\\])#(?:\\(?:\r\n|[\s\S])|[^\\\r\n])*/,lookbehind:!0},string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"builtin-target":{pattern:/\.[A-Z][^:#=\s]+(?=\s*:(?!=))/,alias:"builtin"},target:{pattern:/^(?:[^:=\s]|[ \t]+(?![\s:]))+(?=\s*:(?!=))/m,alias:"symbol",inside:{variable:/\$+(?:(?!\$)[^(){}:#=\s]+|(?=[({]))/}},variable:/\$+(?:(?!\$)[^(){}:#=\s]+|\([@*%<^+?][DF]\)|(?=[({]))/,keyword:/-include\b|\b(?:define|else|endef|endif|export|ifn?def|ifn?eq|include|override|private|sinclude|undefine|unexport|vpath)\b/,function:{pattern:/(\()(?:abspath|addsuffix|and|basename|call|dir|error|eval|file|filter(?:-out)?|findstring|firstword|flavor|foreach|guile|if|info|join|lastword|load|notdir|or|origin|patsubst|realpath|shell|sort|strip|subst|suffix|value|warning|wildcard|word(?:list|s)?)(?=[ \t])/,lookbehind:!0},operator:/(?:::|[?:+!])?=|[|@]/,punctuation:/[:;(){}]/},a.languages.objectivec=a.languages.extend("c",{string:{pattern:/@?"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},keyword:/\b(?:asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|in|inline|int|long|register|return|self|short|signed|sizeof|static|struct|super|switch|typedef|typeof|union|unsigned|void|volatile|while)\b|(?:@interface|@end|@implementation|@protocol|@class|@public|@protected|@private|@property|@try|@catch|@finally|@throw|@synthesize|@dynamic|@selector)\b/,operator:/-[->]?|\+\+?|!=?|<<?=?|>>?=?|==?|&&?|\|\|?|[~^%?*\/@]/}),delete a.languages.objectivec["class-name"],a.languages.objc=a.languages.objectivec,a.languages.ocaml={comment:{pattern:/\(\*[\s\S]*?\*\)/,greedy:!0},char:{pattern:/'(?:[^\\\r\n']|\\(?:.|[ox]?[0-9a-f]{1,3}))'/i,greedy:!0},string:[{pattern:/"(?:\\(?:[\s\S]|\r\n)|[^\\\r\n"])*"/,greedy:!0},{pattern:/\{([a-z_]*)\|[\s\S]*?\|\1\}/,greedy:!0}],number:[/\b(?:0b[01][01_]*|0o[0-7][0-7_]*)\b/i,/\b0x[a-f0-9][a-f0-9_]*(?:\.[a-f0-9_]*)?(?:p[+-]?\d[\d_]*)?(?!\w)/i,/\b\d[\d_]*(?:\.[\d_]*)?(?:e[+-]?\d[\d_]*)?(?!\w)/i],directive:{pattern:/\B#\w+/,alias:"property"},label:{pattern:/\B~\w+/,alias:"property"},"type-variable":{pattern:/\B'\w+/,alias:"function"},variant:{pattern:/`\w+/,alias:"symbol"},keyword:/\b(?:as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|match|method|module|mutable|new|nonrec|object|of|open|private|rec|sig|struct|then|to|try|type|val|value|virtual|when|where|while|with)\b/,boolean:/\b(?:false|true)\b/,"operator-like-punctuation":{pattern:/\[[<>|]|[>|]\]|\{<|>\}/,alias:"punctuation"},operator:/\.[.~]|:[=>]|[=<>@^|&+\-*\/$%!?~][!$%&*+\-.\/:<=>?@^|~]*|\b(?:and|asr|land|lor|lsl|lsr|lxor|mod|or)\b/,punctuation:/;;|::|[(){}\[\].,:;#]|\b_\b/},a.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0,greedy:!0},"string-interpolation":{pattern:/(?:f|fr|rf)(?:("""|''')[\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]|br|rb)?("""|''')[\s\S]*?\1/i,greedy:!0,alias:"string"},string:{pattern:/(?:[rub]|br|rb)?("|')(?:\\.|(?!\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:/(^[\t ]*)@\w+(?:\.\w+)*/m,lookbehind:!0,alias:["annotation","punctuation"],inside:{punctuation:/\./}},keyword:/\b(?:_(?=\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|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(?:False|None|True)\b/,number:/\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\b|(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+(?:_\d+)*)(?:e[+-]?\d+(?:_\d+)*)?j?(?!\w)/i,operator:/[-+%=]=?|!=|:=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/},a.languages.python["string-interpolation"].inside.interpolation.inside.rest=a.languages.python,a.languages.py=a.languages.python,a.languages.reason=a.languages.extend("clike",{string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^\\\r\n"])*"/,greedy:!0},"class-name":/\b[A-Z]\w*/,keyword:/\b(?:and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|method|module|mutable|new|nonrec|object|of|open|or|private|rec|sig|struct|switch|then|to|try|type|val|virtual|when|while|with)\b/,operator:/\.{3}|:[:=]|\|>|->|=(?:==?|>)?|<=?|>=?|[|^?'#!~`]|[+\-*\/]\.?|\b(?:asr|land|lor|lsl|lsr|lxor|mod)\b/}),a.languages.insertBefore("reason","class-name",{char:{pattern:/'(?:\\x[\da-f]{2}|\\o[0-3][0-7][0-7]|\\\d{3}|\\.|[^'\\\r\n])'/,greedy:!0},constructor:/\b[A-Z]\w*\b(?!\s*\.)/,label:{pattern:/\b[a-z]\w*(?=::)/,alias:"symbol"}}),delete a.languages.reason.function,function(e){e.languages.sass=e.languages.extend("css",{comment:{pattern:/^([ \t]*)\/[\/*].*(?:(?:\r?\n|\r)\1[ \t].+)*/m,lookbehind:!0,greedy:!0}}),e.languages.insertBefore("sass","atrule",{"atrule-line":{pattern:/^(?:[ \t]*)[@+=].+/m,greedy:!0,inside:{atrule:/(?:@[\w-]+|[+=])/}}}),delete e.languages.sass.atrule;var t=/\$[-\w]+|#\{\$[-\w]+\}/,n=[/[+*\/%]|[=!]=|<=?|>=?|\b(?:and|not|or)\b/,{pattern:/(\s)-(?=\s)/,lookbehind:!0}];e.languages.insertBefore("sass","property",{"variable-line":{pattern:/^[ \t]*\$.+/m,greedy:!0,inside:{punctuation:/:/,variable:t,operator:n}},"property-line":{pattern:/^[ \t]*(?:[^:\s]+ *:.*|:[^:\s].*)/m,greedy:!0,inside:{property:[/[^:\s]+(?=\s*:)/,{pattern:/(:)[^:\s]+/,lookbehind:!0}],punctuation:/:/,variable:t,operator:n,important:e.languages.sass.important}}}),delete e.languages.sass.property,delete e.languages.sass.important,e.languages.insertBefore("sass","punctuation",{selector:{pattern:/^([ \t]*)\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*(?:,(?:\r?\n|\r)\1[ \t]+\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*)*/m,lookbehind:!0,greedy:!0}})}(a),a.languages.scss=a.languages.extend("css",{comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},atrule:{pattern:/@[\w-](?:\([^()]+\)|[^()\s]|\s+(?!\s))*?(?=\s+[{;])/,inside:{rule:/@[\w-]+/}},url:/(?:[-a-z]+-)?url(?=\()/i,selector:{pattern:/(?=\S)[^@;{}()]?(?:[^@;{}()\s]|\s+(?!\s)|#\{\$[-\w]+\})+(?=\s*\{(?:\}|\s|[^}][^:{}]*[:{][^}]))/,inside:{parent:{pattern:/&/,alias:"important"},placeholder:/%[-\w]+/,variable:/\$[-\w]+|#\{\$[-\w]+\}/}},property:{pattern:/(?:[-\w]|\$[-\w]|#\{\$[-\w]+\})+(?=\s*:)/,inside:{variable:/\$[-\w]+|#\{\$[-\w]+\}/}}}),a.languages.insertBefore("scss","atrule",{keyword:[/@(?:content|debug|each|else(?: if)?|extend|for|forward|function|if|import|include|mixin|return|use|warn|while)\b/i,{pattern:/( )(?:from|through)(?= )/,lookbehind:!0}]}),a.languages.insertBefore("scss","important",{variable:/\$[-\w]+|#\{\$[-\w]+\}/}),a.languages.insertBefore("scss","function",{"module-modifier":{pattern:/\b(?:as|hide|show|with)\b/i,alias:"keyword"},placeholder:{pattern:/%[-\w]+/,alias:"selector"},statement:{pattern:/\B!(?:default|optional)\b/i,alias:"keyword"},boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"},operator:{pattern:/(\s)(?:[-+*\/%]|[=!]=|<=?|>=?|and|not|or)(?=\s)/,lookbehind:!0}}),a.languages.scss.atrule.inside.rest=a.languages.scss,function(e){var t={pattern:/(\b\d+)(?:%|[a-z]+)/,lookbehind:!0},n={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0},r={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},url:{pattern:/\burl\((["']?).*?\1\)/i,greedy:!0},string:{pattern:/("|')(?:(?!\1)[^\\\r\n]|\\(?:\r\n|[\s\S]))*\1/,greedy:!0},interpolation:null,func:null,important:/\B!(?:important|optional)\b/i,keyword:{pattern:/(^|\s+)(?:(?:else|for|if|return|unless)(?=\s|$)|@[\w-]+)/,lookbehind:!0},hexcode:/#[\da-f]{3,6}/i,color:[/\b(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)\b/i,{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:t,number:n,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:t,boolean:/\b(?:false|true)\b/,operator:[/~|[+!\/%<>?=]=?|[-:]=|\*[*=]?|\.{2,3}|&&|\|\||\B-\B|\b(?:and|in|is(?: a| defined| not|nt)?|not|or)\b/],number:n,punctuation:/[{}()\[\];:,]/};r.interpolation={pattern:/\{[^\r\n}:]+\}/,alias:"variable",inside:{delimiter:{pattern:/^\{|\}$/,alias:"punctuation"},rest:r}},r.func={pattern:/[\w-]+\([^)]*\).*/,inside:{function:/^[^(]+/,rest:r}},e.languages.stylus={"atrule-declaration":{pattern:/(^[ \t]*)@.+/m,lookbehind:!0,inside:{atrule:/^@[\w-]+/,rest:r}},"variable-declaration":{pattern:/(^[ \t]*)[\w$-]+\s*.?=[ \t]*(?:\{[^{}]*\}|\S.*|$)/m,lookbehind:!0,inside:{variable:/^\S+/,rest:r}},statement:{pattern:/(^[ \t]*)(?:else|for|if|return|unless)[ \t].+/m,lookbehind:!0,inside:{keyword:/^\S+/,rest:r}},"property-declaration":{pattern:/((?:^|\{)([ \t]*))(?:[\w-]|\{[^}\r\n]+\})+(?:\s*:\s*|[ \t]+)(?!\s)[^{\r\n]*(?:;|[^{\r\n,]$(?!(?:\r?\n|\r)(?:\{|\2[ \t])))/m,lookbehind:!0,inside:{property:{pattern:/^[^\s:]+/,inside:{interpolation:r.interpolation}},rest:r}},selector:{pattern:/(^[ \t]*)(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)(?:(?:\r?\n|\r)(?:\1(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)))*(?:,$|\{|(?=(?:\r?\n|\r)(?:\{|\1[ \t])))/m,lookbehind:!0,inside:{interpolation:r.interpolation,comment:r.comment,punctuation:/[{},]/}},func:r.func,string:r.string,comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0,greedy:!0},interpolation:r.interpolation,punctuation:/[{}()\[\];:.]/}}(a),function(e){var t=e.util.clone(e.languages.typescript);e.languages.tsx=e.languages.extend("jsx",t),delete e.languages.tsx.parameter,delete e.languages.tsx["literal-property"];var n=e.languages.tsx.tag;n.pattern=RegExp(/(^|[^\w$]|(?=<\/))/.source+"(?:"+n.pattern.source+")",n.pattern.flags),n.lookbehind=!0}(a),a.languages.wasm={comment:[/\(;[\s\S]*?;\)/,{pattern:/;;.*/,greedy:!0}],string:{pattern:/"(?:\\[\s\S]|[^"\\])*"/,greedy:!0},keyword:[{pattern:/\b(?:align|offset)=/,inside:{operator:/=/}},{pattern:/\b(?:(?:f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|neg?|nearest|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|sqrt|store(?:8|16|32)?|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))?|memory\.(?:grow|size))\b/,inside:{punctuation:/\./}},/\b(?:anyfunc|block|br(?:_if|_table)?|call(?:_indirect)?|data|drop|elem|else|end|export|func|get_(?:global|local)|global|if|import|local|loop|memory|module|mut|nop|offset|param|result|return|select|set_(?:global|local)|start|table|tee_local|then|type|unreachable)\b/],variable:/\$[\w!#$%&'*+\-./:<=>?@\\^`|~]+/,number:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/,punctuation:/[()]/},t.default=a},9901:function(e){e.exports&&(e.exports={core:{meta:{path:"components/prism-core.js",option:"mandatory"},core:"Core"},themes:{meta:{path:"themes/{id}.css",link:"index.html?theme={id}",exclusive:!0},prism:{title:"Default",option:"default"},"prism-dark":"Dark","prism-funky":"Funky","prism-okaidia":{title:"Okaidia",owner:"ocodia"},"prism-twilight":{title:"Twilight",owner:"remybach"},"prism-coy":{title:"Coy",owner:"tshedor"},"prism-solarizedlight":{title:"Solarized Light",owner:"hectormatos2011 "},"prism-tomorrow":{title:"Tomorrow Night",owner:"Rosey"}},languages:{meta:{path:"components/prism-{id}",noCSS:!0,examplesPath:"examples/prism-{id}",addCheckAll:!0},markup:{title:"Markup",alias:["html","xml","svg","mathml","ssml","atom","rss"],aliasTitles:{html:"HTML",xml:"XML",svg:"SVG",mathml:"MathML",ssml:"SSML",atom:"Atom",rss:"RSS"},option:"default"},css:{title:"CSS",option:"default",modify:"markup"},clike:{title:"C-like",option:"default"},javascript:{title:"JavaScript",require:"clike",modify:"markup",optional:"regex",alias:"js",option:"default"},abap:{title:"ABAP",owner:"dellagustin"},abnf:{title:"ABNF",owner:"RunDevelopment"},actionscript:{title:"ActionScript",require:"javascript",modify:"markup",owner:"Golmote"},ada:{title:"Ada",owner:"Lucretia"},agda:{title:"Agda",owner:"xy-ren"},al:{title:"AL",owner:"RunDevelopment"},antlr4:{title:"ANTLR4",alias:"g4",owner:"RunDevelopment"},apacheconf:{title:"Apache Configuration",owner:"GuiTeK"},apex:{title:"Apex",require:["clike","sql"],owner:"RunDevelopment"},apl:{title:"APL",owner:"ngn"},applescript:{title:"AppleScript",owner:"Golmote"},aql:{title:"AQL",owner:"RunDevelopment"},arduino:{title:"Arduino",require:"cpp",alias:"ino",owner:"dkern"},arff:{title:"ARFF",owner:"Golmote"},armasm:{title:"ARM Assembly",alias:"arm-asm",owner:"RunDevelopment"},arturo:{title:"Arturo",alias:"art",optional:["bash","css","javascript","markup","markdown","sql"],owner:"drkameleon"},asciidoc:{alias:"adoc",title:"AsciiDoc",owner:"Golmote"},aspnet:{title:"ASP.NET (C#)",require:["markup","csharp"],owner:"nauzilus"},asm6502:{title:"6502 Assembly",owner:"kzurawel"},asmatmel:{title:"Atmel AVR Assembly",owner:"cerkit"},autohotkey:{title:"AutoHotkey",owner:"aviaryan"},autoit:{title:"AutoIt",owner:"Golmote"},avisynth:{title:"AviSynth",alias:"avs",owner:"Zinfidel"},"avro-idl":{title:"Avro IDL",alias:"avdl",owner:"RunDevelopment"},awk:{title:"AWK",alias:"gawk",aliasTitles:{gawk:"GAWK"},owner:"RunDevelopment"},bash:{title:"Bash",alias:"shell",aliasTitles:{shell:"Shell"},owner:"zeitgeist87"},basic:{title:"BASIC",owner:"Golmote"},batch:{title:"Batch",owner:"Golmote"},bbcode:{title:"BBcode",alias:"shortcode",aliasTitles:{shortcode:"Shortcode"},owner:"RunDevelopment"},bicep:{title:"Bicep",owner:"johnnyreilly"},birb:{title:"Birb",require:"clike",owner:"Calamity210"},bison:{title:"Bison",require:"c",owner:"Golmote"},bnf:{title:"BNF",alias:"rbnf",aliasTitles:{rbnf:"RBNF"},owner:"RunDevelopment"},brainfuck:{title:"Brainfuck",owner:"Golmote"},brightscript:{title:"BrightScript",owner:"RunDevelopment"},bro:{title:"Bro",owner:"wayward710"},bsl:{title:"BSL (1C:Enterprise)",alias:"oscript",aliasTitles:{oscript:"OneScript"},owner:"Diversus23"},c:{title:"C",require:"clike",owner:"zeitgeist87"},csharp:{title:"C#",require:"clike",alias:["cs","dotnet"],owner:"mvalipour"},cpp:{title:"C++",require:"c",owner:"zeitgeist87"},cfscript:{title:"CFScript",require:"clike",alias:"cfc",owner:"mjclemente"},chaiscript:{title:"ChaiScript",require:["clike","cpp"],owner:"RunDevelopment"},cil:{title:"CIL",owner:"sbrl"},clojure:{title:"Clojure",owner:"troglotit"},cmake:{title:"CMake",owner:"mjrogozinski"},cobol:{title:"COBOL",owner:"RunDevelopment"},coffeescript:{title:"CoffeeScript",require:"javascript",alias:"coffee",owner:"R-osey"},concurnas:{title:"Concurnas",alias:"conc",owner:"jasontatton"},csp:{title:"Content-Security-Policy",owner:"ScottHelme"},cooklang:{title:"Cooklang",owner:"ahue"},coq:{title:"Coq",owner:"RunDevelopment"},crystal:{title:"Crystal",require:"ruby",owner:"MakeNowJust"},"css-extras":{title:"CSS Extras",require:"css",modify:"css",owner:"milesj"},csv:{title:"CSV",owner:"RunDevelopment"},cue:{title:"CUE",owner:"RunDevelopment"},cypher:{title:"Cypher",owner:"RunDevelopment"},d:{title:"D",require:"clike",owner:"Golmote"},dart:{title:"Dart",require:"clike",owner:"Golmote"},dataweave:{title:"DataWeave",owner:"machaval"},dax:{title:"DAX",owner:"peterbud"},dhall:{title:"Dhall",owner:"RunDevelopment"},diff:{title:"Diff",owner:"uranusjr"},django:{title:"Django/Jinja2",require:"markup-templating",alias:"jinja2",owner:"romanvm"},"dns-zone-file":{title:"DNS zone file",owner:"RunDevelopment",alias:"dns-zone"},docker:{title:"Docker",alias:"dockerfile",owner:"JustinBeckwith"},dot:{title:"DOT (Graphviz)",alias:"gv",optional:"markup",owner:"RunDevelopment"},ebnf:{title:"EBNF",owner:"RunDevelopment"},editorconfig:{title:"EditorConfig",owner:"osipxd"},eiffel:{title:"Eiffel",owner:"Conaclos"},ejs:{title:"EJS",require:["javascript","markup-templating"],owner:"RunDevelopment",alias:"eta",aliasTitles:{eta:"Eta"}},elixir:{title:"Elixir",owner:"Golmote"},elm:{title:"Elm",owner:"zwilias"},etlua:{title:"Embedded Lua templating",require:["lua","markup-templating"],owner:"RunDevelopment"},erb:{title:"ERB",require:["ruby","markup-templating"],owner:"Golmote"},erlang:{title:"Erlang",owner:"Golmote"},"excel-formula":{title:"Excel Formula",alias:["xlsx","xls"],owner:"RunDevelopment"},fsharp:{title:"F#",require:"clike",owner:"simonreynolds7"},factor:{title:"Factor",owner:"catb0t"},false:{title:"False",owner:"edukisto"},"firestore-security-rules":{title:"Firestore security rules",require:"clike",owner:"RunDevelopment"},flow:{title:"Flow",require:"javascript",owner:"Golmote"},fortran:{title:"Fortran",owner:"Golmote"},ftl:{title:"FreeMarker Template Language",require:"markup-templating",owner:"RunDevelopment"},gml:{title:"GameMaker Language",alias:"gamemakerlanguage",require:"clike",owner:"LiarOnce"},gap:{title:"GAP (CAS)",owner:"RunDevelopment"},gcode:{title:"G-code",owner:"RunDevelopment"},gdscript:{title:"GDScript",owner:"RunDevelopment"},gedcom:{title:"GEDCOM",owner:"Golmote"},gettext:{title:"gettext",alias:"po",owner:"RunDevelopment"},gherkin:{title:"Gherkin",owner:"hason"},git:{title:"Git",owner:"lgiraudel"},glsl:{title:"GLSL",require:"c",owner:"Golmote"},gn:{title:"GN",alias:"gni",owner:"RunDevelopment"},"linker-script":{title:"GNU Linker Script",alias:"ld",owner:"RunDevelopment"},go:{title:"Go",require:"clike",owner:"arnehormann"},"go-module":{title:"Go module",alias:"go-mod",owner:"RunDevelopment"},graphql:{title:"GraphQL",optional:"markdown",owner:"Golmote"},groovy:{title:"Groovy",require:"clike",owner:"robfletcher"},haml:{title:"Haml",require:"ruby",optional:["css","css-extras","coffeescript","erb","javascript","less","markdown","scss","textile"],owner:"Golmote"},handlebars:{title:"Handlebars",require:"markup-templating",alias:["hbs","mustache"],aliasTitles:{mustache:"Mustache"},owner:"Golmote"},haskell:{title:"Haskell",alias:"hs",owner:"bholst"},haxe:{title:"Haxe",require:"clike",optional:"regex",owner:"Golmote"},hcl:{title:"HCL",owner:"outsideris"},hlsl:{title:"HLSL",require:"c",owner:"RunDevelopment"},hoon:{title:"Hoon",owner:"matildepark"},http:{title:"HTTP",optional:["csp","css","hpkp","hsts","javascript","json","markup","uri"],owner:"danielgtaylor"},hpkp:{title:"HTTP Public-Key-Pins",owner:"ScottHelme"},hsts:{title:"HTTP Strict-Transport-Security",owner:"ScottHelme"},ichigojam:{title:"IchigoJam",owner:"BlueCocoa"},icon:{title:"Icon",owner:"Golmote"},"icu-message-format":{title:"ICU Message Format",owner:"RunDevelopment"},idris:{title:"Idris",alias:"idr",owner:"KeenS",require:"haskell"},ignore:{title:".ignore",owner:"osipxd",alias:["gitignore","hgignore","npmignore"],aliasTitles:{gitignore:".gitignore",hgignore:".hgignore",npmignore:".npmignore"}},inform7:{title:"Inform 7",owner:"Golmote"},ini:{title:"Ini",owner:"aviaryan"},io:{title:"Io",owner:"AlesTsurko"},j:{title:"J",owner:"Golmote"},java:{title:"Java",require:"clike",owner:"sherblot"},javadoc:{title:"JavaDoc",require:["markup","java","javadoclike"],modify:"java",optional:"scala",owner:"RunDevelopment"},javadoclike:{title:"JavaDoc-like",modify:["java","javascript","php"],owner:"RunDevelopment"},javastacktrace:{title:"Java stack trace",owner:"RunDevelopment"},jexl:{title:"Jexl",owner:"czosel"},jolie:{title:"Jolie",require:"clike",owner:"thesave"},jq:{title:"JQ",owner:"RunDevelopment"},jsdoc:{title:"JSDoc",require:["javascript","javadoclike","typescript"],modify:"javascript",optional:["actionscript","coffeescript"],owner:"RunDevelopment"},"js-extras":{title:"JS Extras",require:"javascript",modify:"javascript",optional:["actionscript","coffeescript","flow","n4js","typescript"],owner:"RunDevelopment"},json:{title:"JSON",alias:"webmanifest",aliasTitles:{webmanifest:"Web App Manifest"},owner:"CupOfTea696"},json5:{title:"JSON5",require:"json",owner:"RunDevelopment"},jsonp:{title:"JSONP",require:"json",owner:"RunDevelopment"},jsstacktrace:{title:"JS stack trace",owner:"sbrl"},"js-templates":{title:"JS Templates",require:"javascript",modify:"javascript",optional:["css","css-extras","graphql","markdown","markup","sql"],owner:"RunDevelopment"},julia:{title:"Julia",owner:"cdagnino"},keepalived:{title:"Keepalived Configure",owner:"dev-itsheng"},keyman:{title:"Keyman",owner:"mcdurdin"},kotlin:{title:"Kotlin",alias:["kt","kts"],aliasTitles:{kts:"Kotlin Script"},require:"clike",owner:"Golmote"},kumir:{title:"KuMir (\u041a\u0443\u041c\u0438\u0440)",alias:"kum",owner:"edukisto"},kusto:{title:"Kusto",owner:"RunDevelopment"},latex:{title:"LaTeX",alias:["tex","context"],aliasTitles:{tex:"TeX",context:"ConTeXt"},owner:"japborst"},latte:{title:"Latte",require:["clike","markup-templating","php"],owner:"nette"},less:{title:"Less",require:"css",optional:"css-extras",owner:"Golmote"},lilypond:{title:"LilyPond",require:"scheme",alias:"ly",owner:"RunDevelopment"},liquid:{title:"Liquid",require:"markup-templating",owner:"cinhtau"},lisp:{title:"Lisp",alias:["emacs","elisp","emacs-lisp"],owner:"JuanCaicedo"},livescript:{title:"LiveScript",owner:"Golmote"},llvm:{title:"LLVM IR",owner:"porglezomp"},log:{title:"Log file",optional:"javastacktrace",owner:"RunDevelopment"},lolcode:{title:"LOLCODE",owner:"Golmote"},lua:{title:"Lua",owner:"Golmote"},magma:{title:"Magma (CAS)",owner:"RunDevelopment"},makefile:{title:"Makefile",owner:"Golmote"},markdown:{title:"Markdown",require:"markup",optional:"yaml",alias:"md",owner:"Golmote"},"markup-templating":{title:"Markup templating",require:"markup",owner:"Golmote"},mata:{title:"Mata",owner:"RunDevelopment"},matlab:{title:"MATLAB",owner:"Golmote"},maxscript:{title:"MAXScript",owner:"RunDevelopment"},mel:{title:"MEL",owner:"Golmote"},mermaid:{title:"Mermaid",owner:"RunDevelopment"},mizar:{title:"Mizar",owner:"Golmote"},mongodb:{title:"MongoDB",owner:"airs0urce",require:"javascript"},monkey:{title:"Monkey",owner:"Golmote"},moonscript:{title:"MoonScript",alias:"moon",owner:"RunDevelopment"},n1ql:{title:"N1QL",owner:"TMWilds"},n4js:{title:"N4JS",require:"javascript",optional:"jsdoc",alias:"n4jsd",owner:"bsmith-n4"},"nand2tetris-hdl":{title:"Nand To Tetris HDL",owner:"stephanmax"},naniscript:{title:"Naninovel Script",owner:"Elringus",alias:"nani"},nasm:{title:"NASM",owner:"rbmj"},neon:{title:"NEON",owner:"nette"},nevod:{title:"Nevod",owner:"nezaboodka"},nginx:{title:"nginx",owner:"volado"},nim:{title:"Nim",owner:"Golmote"},nix:{title:"Nix",owner:"Golmote"},nsis:{title:"NSIS",owner:"idleberg"},objectivec:{title:"Objective-C",require:"c",alias:"objc",owner:"uranusjr"},ocaml:{title:"OCaml",owner:"Golmote"},odin:{title:"Odin",owner:"edukisto"},opencl:{title:"OpenCL",require:"c",modify:["c","cpp"],owner:"Milania1"},openqasm:{title:"OpenQasm",alias:"qasm",owner:"RunDevelopment"},oz:{title:"Oz",owner:"Golmote"},parigp:{title:"PARI/GP",owner:"Golmote"},parser:{title:"Parser",require:"markup",owner:"Golmote"},pascal:{title:"Pascal",alias:"objectpascal",aliasTitles:{objectpascal:"Object Pascal"},owner:"Golmote"},pascaligo:{title:"Pascaligo",owner:"DefinitelyNotAGoat"},psl:{title:"PATROL Scripting Language",owner:"bertysentry"},pcaxis:{title:"PC-Axis",alias:"px",owner:"RunDevelopment"},peoplecode:{title:"PeopleCode",alias:"pcode",owner:"RunDevelopment"},perl:{title:"Perl",owner:"Golmote"},php:{title:"PHP",require:"markup-templating",owner:"milesj"},phpdoc:{title:"PHPDoc",require:["php","javadoclike"],modify:"php",owner:"RunDevelopment"},"php-extras":{title:"PHP Extras",require:"php",modify:"php",owner:"milesj"},"plant-uml":{title:"PlantUML",alias:"plantuml",owner:"RunDevelopment"},plsql:{title:"PL/SQL",require:"sql",owner:"Golmote"},powerquery:{title:"PowerQuery",alias:["pq","mscript"],owner:"peterbud"},powershell:{title:"PowerShell",owner:"nauzilus"},processing:{title:"Processing",require:"clike",owner:"Golmote"},prolog:{title:"Prolog",owner:"Golmote"},promql:{title:"PromQL",owner:"arendjr"},properties:{title:".properties",owner:"Golmote"},protobuf:{title:"Protocol Buffers",require:"clike",owner:"just-boris"},pug:{title:"Pug",require:["markup","javascript"],optional:["coffeescript","ejs","handlebars","less","livescript","markdown","scss","stylus","twig"],owner:"Golmote"},puppet:{title:"Puppet",owner:"Golmote"},pure:{title:"Pure",optional:["c","cpp","fortran"],owner:"Golmote"},purebasic:{title:"PureBasic",require:"clike",alias:"pbfasm",owner:"HeX0R101"},purescript:{title:"PureScript",require:"haskell",alias:"purs",owner:"sriharshachilakapati"},python:{title:"Python",alias:"py",owner:"multipetros"},qsharp:{title:"Q#",require:"clike",alias:"qs",owner:"fedonman"},q:{title:"Q (kdb+ database)",owner:"Golmote"},qml:{title:"QML",require:"javascript",owner:"RunDevelopment"},qore:{title:"Qore",require:"clike",owner:"temnroegg"},r:{title:"R",owner:"Golmote"},racket:{title:"Racket",require:"scheme",alias:"rkt",owner:"RunDevelopment"},cshtml:{title:"Razor C#",alias:"razor",require:["markup","csharp"],optional:["css","css-extras","javascript","js-extras"],owner:"RunDevelopment"},jsx:{title:"React JSX",require:["markup","javascript"],optional:["jsdoc","js-extras","js-templates"],owner:"vkbansal"},tsx:{title:"React TSX",require:["jsx","typescript"]},reason:{title:"Reason",require:"clike",owner:"Golmote"},regex:{title:"Regex",owner:"RunDevelopment"},rego:{title:"Rego",owner:"JordanSh"},renpy:{title:"Ren'py",alias:"rpy",owner:"HyuchiaDiego"},rescript:{title:"ReScript",alias:"res",owner:"vmarcosp"},rest:{title:"reST (reStructuredText)",owner:"Golmote"},rip:{title:"Rip",owner:"ravinggenius"},roboconf:{title:"Roboconf",owner:"Golmote"},robotframework:{title:"Robot Framework",alias:"robot",owner:"RunDevelopment"},ruby:{title:"Ruby",require:"clike",alias:"rb",owner:"samflores"},rust:{title:"Rust",owner:"Golmote"},sas:{title:"SAS",optional:["groovy","lua","sql"],owner:"Golmote"},sass:{title:"Sass (Sass)",require:"css",optional:"css-extras",owner:"Golmote"},scss:{title:"Sass (Scss)",require:"css",optional:"css-extras",owner:"MoOx"},scala:{title:"Scala",require:"java",owner:"jozic"},scheme:{title:"Scheme",owner:"bacchus123"},"shell-session":{title:"Shell session",require:"bash",alias:["sh-session","shellsession"],owner:"RunDevelopment"},smali:{title:"Smali",owner:"RunDevelopment"},smalltalk:{title:"Smalltalk",owner:"Golmote"},smarty:{title:"Smarty",require:"markup-templating",optional:"php",owner:"Golmote"},sml:{title:"SML",alias:"smlnj",aliasTitles:{smlnj:"SML/NJ"},owner:"RunDevelopment"},solidity:{title:"Solidity (Ethereum)",alias:"sol",require:"clike",owner:"glachaud"},"solution-file":{title:"Solution file",alias:"sln",owner:"RunDevelopment"},soy:{title:"Soy (Closure Template)",require:"markup-templating",owner:"Golmote"},sparql:{title:"SPARQL",require:"turtle",owner:"Triply-Dev",alias:"rq"},"splunk-spl":{title:"Splunk SPL",owner:"RunDevelopment"},sqf:{title:"SQF: Status Quo Function (Arma 3)",require:"clike",owner:"RunDevelopment"},sql:{title:"SQL",owner:"multipetros"},squirrel:{title:"Squirrel",require:"clike",owner:"RunDevelopment"},stan:{title:"Stan",owner:"RunDevelopment"},stata:{title:"Stata Ado",require:["mata","java","python"],owner:"RunDevelopment"},iecst:{title:"Structured Text (IEC 61131-3)",owner:"serhioromano"},stylus:{title:"Stylus",owner:"vkbansal"},supercollider:{title:"SuperCollider",alias:"sclang",owner:"RunDevelopment"},swift:{title:"Swift",owner:"chrischares"},systemd:{title:"Systemd configuration file",owner:"RunDevelopment"},"t4-templating":{title:"T4 templating",owner:"RunDevelopment"},"t4-cs":{title:"T4 Text Templates (C#)",require:["t4-templating","csharp"],alias:"t4",owner:"RunDevelopment"},"t4-vb":{title:"T4 Text Templates (VB)",require:["t4-templating","vbnet"],owner:"RunDevelopment"},tap:{title:"TAP",owner:"isaacs",require:"yaml"},tcl:{title:"Tcl",owner:"PeterChaplin"},tt2:{title:"Template Toolkit 2",require:["clike","markup-templating"],owner:"gflohr"},textile:{title:"Textile",require:"markup",optional:"css",owner:"Golmote"},toml:{title:"TOML",owner:"RunDevelopment"},tremor:{title:"Tremor",alias:["trickle","troy"],owner:"darach",aliasTitles:{trickle:"trickle",troy:"troy"}},turtle:{title:"Turtle",alias:"trig",aliasTitles:{trig:"TriG"},owner:"jakubklimek"},twig:{title:"Twig",require:"markup-templating",owner:"brandonkelly"},typescript:{title:"TypeScript",require:"javascript",optional:"js-templates",alias:"ts",owner:"vkbansal"},typoscript:{title:"TypoScript",alias:"tsconfig",aliasTitles:{tsconfig:"TSConfig"},owner:"dkern"},unrealscript:{title:"UnrealScript",alias:["uscript","uc"],owner:"RunDevelopment"},uorazor:{title:"UO Razor Script",owner:"jaseowns"},uri:{title:"URI",alias:"url",aliasTitles:{url:"URL"},owner:"RunDevelopment"},v:{title:"V",require:"clike",owner:"taggon"},vala:{title:"Vala",require:"clike",optional:"regex",owner:"TemplarVolk"},vbnet:{title:"VB.Net",require:"basic",owner:"Bigsby"},velocity:{title:"Velocity",require:"markup",owner:"Golmote"},verilog:{title:"Verilog",owner:"a-rey"},vhdl:{title:"VHDL",owner:"a-rey"},vim:{title:"vim",owner:"westonganger"},"visual-basic":{title:"Visual Basic",alias:["vb","vba"],aliasTitles:{vba:"VBA"},owner:"Golmote"},warpscript:{title:"WarpScript",owner:"RunDevelopment"},wasm:{title:"WebAssembly",owner:"Golmote"},"web-idl":{title:"Web IDL",alias:"webidl",owner:"RunDevelopment"},wiki:{title:"Wiki markup",require:"markup",owner:"Golmote"},wolfram:{title:"Wolfram language",alias:["mathematica","nb","wl"],aliasTitles:{mathematica:"Mathematica",nb:"Mathematica Notebook"},owner:"msollami"},wren:{title:"Wren",owner:"clsource"},xeora:{title:"Xeora",require:"markup",alias:"xeoracube",aliasTitles:{xeoracube:"XeoraCube"},owner:"freakmaxi"},"xml-doc":{title:"XML doc (.net)",require:"markup",modify:["csharp","fsharp","vbnet"],owner:"RunDevelopment"},xojo:{title:"Xojo (REALbasic)",owner:"Golmote"},xquery:{title:"XQuery",require:"markup",owner:"Golmote"},yaml:{title:"YAML",alias:"yml",owner:"hason"},yang:{title:"YANG",owner:"RunDevelopment"},zig:{title:"Zig",owner:"RunDevelopment"}},plugins:{meta:{path:"plugins/{id}/prism-{id}",link:"plugins/{id}/"},"line-highlight":{title:"Line Highlight",description:"Highlights specific lines and/or line ranges."},"line-numbers":{title:"Line Numbers",description:"Line number at the beginning of code lines.",owner:"kuba-kubula"},"show-invisibles":{title:"Show Invisibles",description:"Show hidden characters such as tabs and line breaks.",optional:["autolinker","data-uri-highlight"]},autolinker:{title:"Autolinker",description:"Converts URLs and emails in code to clickable links. Parses Markdown links in comments."},wpd:{title:"WebPlatform Docs",description:'Makes tokens link to <a href="https://webplatform.github.io/docs/">WebPlatform.org documentation</a>. The links open in a new tab.'},"custom-class":{title:"Custom Class",description:"This plugin allows you to prefix Prism's default classes (<code>.comment</code> can become <code>.namespace--comment</code>) or replace them with your defined ones (like <code>.editor__comment</code>). You can even add new classes.",owner:"dvkndn",noCSS:!0},"file-highlight":{title:"File Highlight",description:"Fetch external files and highlight them with Prism. Used on the Prism website itself.",noCSS:!0},"show-language":{title:"Show Language",description:"Display the highlighted language in code blocks (inline code does not show the label).",owner:"nauzilus",noCSS:!0,require:"toolbar"},"jsonp-highlight":{title:"JSONP Highlight",description:"Fetch content with JSONP and highlight some interesting content (e.g. GitHub/Gists or Bitbucket API).",noCSS:!0,owner:"nauzilus"},"highlight-keywords":{title:"Highlight Keywords",description:"Adds special CSS classes for each keyword for fine-grained highlighting.",owner:"vkbansal",noCSS:!0},"remove-initial-line-feed":{title:"Remove initial line feed",description:"Removes the initial line feed in code blocks.",owner:"Golmote",noCSS:!0},"inline-color":{title:"Inline color",description:"Adds a small inline preview for colors in style sheets.",require:"css-extras",owner:"RunDevelopment"},previewers:{title:"Previewers",description:"Previewers for angles, colors, gradients, easing and time.",require:"css-extras",owner:"Golmote"},autoloader:{title:"Autoloader",description:"Automatically loads the needed languages to highlight the code blocks.",owner:"Golmote",noCSS:!0},"keep-markup":{title:"Keep Markup",description:"Prevents custom markup from being dropped out during highlighting.",owner:"Golmote",optional:"normalize-whitespace",noCSS:!0},"command-line":{title:"Command Line",description:"Display a command line with a prompt and, optionally, the output/response from the commands.",owner:"chriswells0"},"unescaped-markup":{title:"Unescaped Markup",description:"Write markup without having to escape anything."},"normalize-whitespace":{title:"Normalize Whitespace",description:"Supports multiple operations to normalize whitespace in code blocks.",owner:"zeitgeist87",optional:"unescaped-markup",noCSS:!0},"data-uri-highlight":{title:"Data-URI Highlight",description:"Highlights data-URI contents.",owner:"Golmote",noCSS:!0},toolbar:{title:"Toolbar",description:"Attach a toolbar for plugins to easily register buttons on the top of a code block.",owner:"mAAdhaTTah"},"copy-to-clipboard":{title:"Copy to Clipboard Button",description:"Add a button that copies the code block to the clipboard when clicked.",owner:"mAAdhaTTah",require:"toolbar",noCSS:!0},"download-button":{title:"Download Button",description:"A button in the toolbar of a code block adding a convenient way to download a code file.",owner:"Golmote",require:"toolbar",noCSS:!0},"match-braces":{title:"Match braces",description:"Highlights matching braces.",owner:"RunDevelopment"},"diff-highlight":{title:"Diff Highlight",description:"Highlights the code inside diff blocks.",owner:"RunDevelopment",require:"diff"},"filter-highlight-all":{title:"Filter highlightAll",description:"Filters the elements the <code>highlightAll</code> and <code>highlightAllUnder</code> methods actually highlight.",owner:"RunDevelopment",noCSS:!0},treeview:{title:"Treeview",description:"A language with special styles to highlight file system tree structures.",owner:"Golmote"}}})},2885:function(e,t,n){const r=n(9901),a=n(9642),o=new Set;function i(e){void 0===e?e=Object.keys(r.languages).filter((e=>"meta"!=e)):Array.isArray(e)||(e=[e]);const t=[...o,...Object.keys(Prism.languages)];a(r,e,t).load((e=>{if(!(e in r.languages))return void(i.silent||console.warn("Language does not exist: "+e));const t="./prism-"+e;delete n.c[n(6500).resolve(t)],delete Prism.languages[e],n(6500)(t),o.add(e)}))}i.silent=!1,e.exports=i},6726:function(e,t,n){var r={"./":2885};function a(e){var t=o(e);return n(t)}function o(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}a.keys=function(){return Object.keys(r)},a.resolve=o,e.exports=a,a.id=6726},6500:function(e,t,n){var r={"./":2885};function a(e){var t=o(e);return n(t)}function o(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}a.keys=function(){return Object.keys(r)},a.resolve=o,e.exports=a,a.id=6500},9642:function(e){"use strict";var t=function(){var e=function(){};function t(e,t){Array.isArray(e)?e.forEach(t):null!=e&&t(e,0)}function n(e){for(var t={},n=0,r=e.length;n<r;n++)t[e[n]]=!0;return t}function r(e){var n={},r=[];function a(r,o){if(!(r in n)){o.push(r);var i=o.indexOf(r);if(i<o.length-1)throw new Error("Circular dependency: "+o.slice(i).join(" -> "));var l={},u=e[r];if(u){function s(t){if(!(t in e))throw new Error(r+" depends on an unknown component "+t);if(!(t in l))for(var i in a(t,o),l[t]=!0,n[t])l[i]=!0}t(u.require,s),t(u.optional,s),t(u.modify,s)}n[r]=l,o.pop()}}return function(e){var t=n[e];return t||(a(e,r),t=n[e]),t}}function a(e){for(var t in e)return!0;return!1}return function(o,i,l){var u=function(e){var t={};for(var n in e){var r=e[n];for(var a in r)if("meta"!=a){var o=r[a];t[a]="string"==typeof o?{title:o}:o}}return t}(o),s=function(e){var n;return function(r){if(r in e)return r;if(!n)for(var a in n={},e){var o=e[a];t(o&&o.alias,(function(t){if(t in n)throw new Error(t+" cannot be alias for both "+a+" and "+n[t]);if(t in e)throw new Error(t+" cannot be alias of "+a+" because it is a component.");n[t]=a}))}return n[r]||r}}(u);i=i.map(s),l=(l||[]).map(s);var c=n(i),f=n(l);i.forEach((function e(n){var r=u[n];t(r&&r.require,(function(t){t in f||(c[t]=!0,e(t))}))}));for(var d,p=r(u),m=c;a(m);){for(var h in d={},m){var g=u[h];t(g&&g.modify,(function(e){e in f&&(d[e]=!0)}))}for(var v in f)if(!(v in c))for(var b in p(v))if(b in c){d[v]=!0;break}for(var y in m=d)c[y]=!0}var w={getIds:function(){var e=[];return w.load((function(t){e.push(t)})),e},load:function(t,n){return function(t,n,r,a){var o=a?a.series:void 0,i=a?a.parallel:e,l={},u={};function s(e){if(e in l)return l[e];u[e]=!0;var a,c=[];for(var f in t(e))f in n&&c.push(f);if(0===c.length)a=r(e);else{var d=i(c.map((function(e){var t=s(e);return delete u[e],t})));o?a=o(d,(function(){return r(e)})):r(e)}return l[e]=a}for(var c in n)s(c);var f=[];for(var d in u)f.push(l[d]);return i(f)}(p,c,t,n)}};return w}}();e.exports=t},2703:function(e,t,n){"use strict";var r=n(414);function a(){}function o(){}o.resetWarningCache=a,e.exports=function(){function e(e,t,n,a,o,i){if(i!==r){var l=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw l.name="Invariant Violation",l}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:o,resetWarningCache:a};return n.PropTypes=n,n}},5697:function(e,t,n){e.exports=n(2703)()},414:function(e){"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},4448:function(e,t,n){"use strict";var r=n(7294),a=n(7418),o=n(3840);function i(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}if(!r)throw Error(i(227));var l=new Set,u={};function s(e,t){c(e,t),c(e+"Capture",t)}function c(e,t){for(u[e]=t,e=0;e<t.length;e++)l.add(t[e])}var f=!("undefined"==typeof window||void 0===window.document||void 0===window.document.createElement),d=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,p=Object.prototype.hasOwnProperty,m={},h={};function g(e,t,n,r,a,o,i){this.acceptsBooleans=2===t||3===t||4===t,this.attributeName=r,this.attributeNamespace=a,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=o,this.removeEmptyString=i}var v={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach((function(e){v[e]=new g(e,0,!1,e,null,!1,!1)})),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach((function(e){var t=e[0];v[t]=new g(t,1,!1,e[1],null,!1,!1)})),["contentEditable","draggable","spellCheck","value"].forEach((function(e){v[e]=new g(e,2,!1,e.toLowerCase(),null,!1,!1)})),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach((function(e){v[e]=new g(e,2,!1,e,null,!1,!1)})),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach((function(e){v[e]=new g(e,3,!1,e.toLowerCase(),null,!1,!1)})),["checked","multiple","muted","selected"].forEach((function(e){v[e]=new g(e,3,!0,e,null,!1,!1)})),["capture","download"].forEach((function(e){v[e]=new g(e,4,!1,e,null,!1,!1)})),["cols","rows","size","span"].forEach((function(e){v[e]=new g(e,6,!1,e,null,!1,!1)})),["rowSpan","start"].forEach((function(e){v[e]=new g(e,5,!1,e.toLowerCase(),null,!1,!1)}));var b=/[\-:]([a-z])/g;function y(e){return e[1].toUpperCase()}function w(e,t,n,r){var a=v.hasOwnProperty(t)?v[t]:null;(null!==a?0===a.type:!r&&(2<t.length&&("o"===t[0]||"O"===t[0])&&("n"===t[1]||"N"===t[1])))||(function(e,t,n,r){if(null==t||function(e,t,n,r){if(null!==n&&0===n.type)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return!r&&(null!==n?!n.acceptsBooleans:"data-"!==(e=e.toLowerCase().slice(0,5))&&"aria-"!==e);default:return!1}}(e,t,n,r))return!0;if(r)return!1;if(null!==n)switch(n.type){case 3:return!t;case 4:return!1===t;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}(t,n,a,r)&&(n=null),r||null===a?function(e){return!!p.call(h,e)||!p.call(m,e)&&(d.test(e)?h[e]=!0:(m[e]=!0,!1))}(t)&&(null===n?e.removeAttribute(t):e.setAttribute(t,""+n)):a.mustUseProperty?e[a.propertyName]=null===n?3!==a.type&&"":n:(t=a.attributeName,r=a.attributeNamespace,null===n?e.removeAttribute(t):(n=3===(a=a.type)||4===a&&!0===n?"":""+n,r?e.setAttributeNS(r,t,n):e.setAttribute(t,n))))}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach((function(e){var t=e.replace(b,y);v[t]=new g(t,1,!1,e,null,!1,!1)})),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach((function(e){var t=e.replace(b,y);v[t]=new g(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)})),["xml:base","xml:lang","xml:space"].forEach((function(e){var t=e.replace(b,y);v[t]=new g(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)})),["tabIndex","crossOrigin"].forEach((function(e){v[e]=new g(e,1,!1,e.toLowerCase(),null,!1,!1)})),v.xlinkHref=new g("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach((function(e){v[e]=new g(e,1,!1,e.toLowerCase(),null,!0,!0)}));var k=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,E=60103,S=60106,x=60107,_=60108,C=60114,T=60109,A=60110,O=60112,L=60113,P=60120,R=60115,N=60116,I=60121,D=60128,M=60129,F=60130,j=60131;if("function"==typeof Symbol&&Symbol.for){var B=Symbol.for;E=B("react.element"),S=B("react.portal"),x=B("react.fragment"),_=B("react.strict_mode"),C=B("react.profiler"),T=B("react.provider"),A=B("react.context"),O=B("react.forward_ref"),L=B("react.suspense"),P=B("react.suspense_list"),R=B("react.memo"),N=B("react.lazy"),I=B("react.block"),B("react.scope"),D=B("react.opaque.id"),M=B("react.debug_trace_mode"),F=B("react.offscreen"),j=B("react.legacy_hidden")}var z,U="function"==typeof Symbol&&Symbol.iterator;function Z(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=U&&e[U]||e["@@iterator"])?e:null}function $(e){if(void 0===z)try{throw Error()}catch(n){var t=n.stack.trim().match(/\n( *(at )?)/);z=t&&t[1]||""}return"\n"+z+e}var q=!1;function G(e,t){if(!e||q)return"";q=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(t)if(t=function(){throw Error()},Object.defineProperty(t.prototype,"props",{set:function(){throw Error()}}),"object"==typeof Reflect&&Reflect.construct){try{Reflect.construct(t,[])}catch(u){var r=u}Reflect.construct(e,[],t)}else{try{t.call()}catch(u){r=u}e.call(t.prototype)}else{try{throw Error()}catch(u){r=u}e()}}catch(u){if(u&&r&&"string"==typeof u.stack){for(var a=u.stack.split("\n"),o=r.stack.split("\n"),i=a.length-1,l=o.length-1;1<=i&&0<=l&&a[i]!==o[l];)l--;for(;1<=i&&0<=l;i--,l--)if(a[i]!==o[l]){if(1!==i||1!==l)do{if(i--,0>--l||a[i]!==o[l])return"\n"+a[i].replace(" at new "," at ")}while(1<=i&&0<=l);break}}}finally{q=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?$(e):""}function H(e){switch(e.tag){case 5:return $(e.type);case 16:return $("Lazy");case 13:return $("Suspense");case 19:return $("SuspenseList");case 0:case 2:case 15:return e=G(e.type,!1);case 11:return e=G(e.type.render,!1);case 22:return e=G(e.type._render,!1);case 1:return e=G(e.type,!0);default:return""}}function V(e){if(null==e)return null;if("function"==typeof e)return e.displayName||e.name||null;if("string"==typeof e)return e;switch(e){case x:return"Fragment";case S:return"Portal";case C:return"Profiler";case _:return"StrictMode";case L:return"Suspense";case P:return"SuspenseList"}if("object"==typeof e)switch(e.$$typeof){case A:return(e.displayName||"Context")+".Consumer";case T:return(e._context.displayName||"Context")+".Provider";case O:var t=e.render;return t=t.displayName||t.name||"",e.displayName||(""!==t?"ForwardRef("+t+")":"ForwardRef");case R:return V(e.type);case I:return V(e._render);case N:t=e._payload,e=e._init;try{return V(e(t))}catch(n){}}return null}function W(e){switch(typeof e){case"boolean":case"number":case"object":case"string":case"undefined":return e;default:return""}}function Y(e){var t=e.type;return(e=e.nodeName)&&"input"===e.toLowerCase()&&("checkbox"===t||"radio"===t)}function K(e){e._valueTracker||(e._valueTracker=function(e){var t=Y(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&void 0!==n&&"function"==typeof n.get&&"function"==typeof n.set){var a=n.get,o=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return a.call(this)},set:function(e){r=""+e,o.call(this,e)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(e){r=""+e},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}(e))}function Q(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=Y(e)?e.checked?"true":"false":e.value),(e=r)!==n&&(t.setValue(e),!0)}function X(e){if(void 0===(e=e||("undefined"!=typeof document?document:void 0)))return null;try{return e.activeElement||e.body}catch(t){return e.body}}function J(e,t){var n=t.checked;return a({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=n?n:e._wrapperState.initialChecked})}function ee(e,t){var n=null==t.defaultValue?"":t.defaultValue,r=null!=t.checked?t.checked:t.defaultChecked;n=W(null!=t.value?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:"checkbox"===t.type||"radio"===t.type?null!=t.checked:null!=t.value}}function te(e,t){null!=(t=t.checked)&&w(e,"checked",t,!1)}function ne(e,t){te(e,t);var n=W(t.value),r=t.type;if(null!=n)"number"===r?(0===n&&""===e.value||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if("submit"===r||"reset"===r)return void e.removeAttribute("value");t.hasOwnProperty("value")?ae(e,t.type,n):t.hasOwnProperty("defaultValue")&&ae(e,t.type,W(t.defaultValue)),null==t.checked&&null!=t.defaultChecked&&(e.defaultChecked=!!t.defaultChecked)}function re(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!("submit"!==r&&"reset"!==r||void 0!==t.value&&null!==t.value))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}""!==(n=e.name)&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,""!==n&&(e.name=n)}function ae(e,t,n){"number"===t&&X(e.ownerDocument)===e||(null==n?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}function oe(e,t){return e=a({children:void 0},t),(t=function(e){var t="";return r.Children.forEach(e,(function(e){null!=e&&(t+=e)})),t}(t.children))&&(e.children=t),e}function ie(e,t,n,r){if(e=e.options,t){t={};for(var a=0;a<n.length;a++)t["$"+n[a]]=!0;for(n=0;n<e.length;n++)a=t.hasOwnProperty("$"+e[n].value),e[n].selected!==a&&(e[n].selected=a),a&&r&&(e[n].defaultSelected=!0)}else{for(n=""+W(n),t=null,a=0;a<e.length;a++){if(e[a].value===n)return e[a].selected=!0,void(r&&(e[a].defaultSelected=!0));null!==t||e[a].disabled||(t=e[a])}null!==t&&(t.selected=!0)}}function le(e,t){if(null!=t.dangerouslySetInnerHTML)throw Error(i(91));return a({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue})}function ue(e,t){var n=t.value;if(null==n){if(n=t.children,t=t.defaultValue,null!=n){if(null!=t)throw Error(i(92));if(Array.isArray(n)){if(!(1>=n.length))throw Error(i(93));n=n[0]}t=n}null==t&&(t=""),n=t}e._wrapperState={initialValue:W(n)}}function se(e,t){var n=W(t.value),r=W(t.defaultValue);null!=n&&((n=""+n)!==e.value&&(e.value=n),null==t.defaultValue&&e.defaultValue!==n&&(e.defaultValue=n)),null!=r&&(e.defaultValue=""+r)}function ce(e){var t=e.textContent;t===e._wrapperState.initialValue&&""!==t&&null!==t&&(e.value=t)}var fe="http://www.w3.org/1999/xhtml",de="http://www.w3.org/2000/svg";function pe(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function me(e,t){return null==e||"http://www.w3.org/1999/xhtml"===e?pe(t):"http://www.w3.org/2000/svg"===e&&"foreignObject"===t?"http://www.w3.org/1999/xhtml":e}var he,ge,ve=(ge=function(e,t){if(e.namespaceURI!==de||"innerHTML"in e)e.innerHTML=t;else{for((he=he||document.createElement("div")).innerHTML="<svg>"+t.valueOf().toString()+"</svg>",t=he.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}},"undefined"!=typeof MSApp&&MSApp.execUnsafeLocalFunction?function(e,t,n,r){MSApp.execUnsafeLocalFunction((function(){return ge(e,t)}))}:ge);function be(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&3===n.nodeType)return void(n.nodeValue=t)}e.textContent=t}var ye={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},we=["Webkit","ms","Moz","O"];function ke(e,t,n){return null==t||"boolean"==typeof t||""===t?"":n||"number"!=typeof t||0===t||ye.hasOwnProperty(e)&&ye[e]?(""+t).trim():t+"px"}function Ee(e,t){for(var n in e=e.style,t)if(t.hasOwnProperty(n)){var r=0===n.indexOf("--"),a=ke(n,t[n],r);"float"===n&&(n="cssFloat"),r?e.setProperty(n,a):e[n]=a}}Object.keys(ye).forEach((function(e){we.forEach((function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),ye[t]=ye[e]}))}));var Se=a({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function xe(e,t){if(t){if(Se[e]&&(null!=t.children||null!=t.dangerouslySetInnerHTML))throw Error(i(137,e));if(null!=t.dangerouslySetInnerHTML){if(null!=t.children)throw Error(i(60));if("object"!=typeof t.dangerouslySetInnerHTML||!("__html"in t.dangerouslySetInnerHTML))throw Error(i(61))}if(null!=t.style&&"object"!=typeof t.style)throw Error(i(62))}}function _e(e,t){if(-1===e.indexOf("-"))return"string"==typeof t.is;switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}function Ce(e){return(e=e.target||e.srcElement||window).correspondingUseElement&&(e=e.correspondingUseElement),3===e.nodeType?e.parentNode:e}var Te=null,Ae=null,Oe=null;function Le(e){if(e=ra(e)){if("function"!=typeof Te)throw Error(i(280));var t=e.stateNode;t&&(t=oa(t),Te(e.stateNode,e.type,t))}}function Pe(e){Ae?Oe?Oe.push(e):Oe=[e]:Ae=e}function Re(){if(Ae){var e=Ae,t=Oe;if(Oe=Ae=null,Le(e),t)for(e=0;e<t.length;e++)Le(t[e])}}function Ne(e,t){return e(t)}function Ie(e,t,n,r,a){return e(t,n,r,a)}function De(){}var Me=Ne,Fe=!1,je=!1;function Be(){null===Ae&&null===Oe||(De(),Re())}function ze(e,t){var n=e.stateNode;if(null===n)return null;var r=oa(n);if(null===r)return null;n=r[t];e:switch(t){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(r=!r.disabled)||(r=!("button"===(e=e.type)||"input"===e||"select"===e||"textarea"===e)),e=!r;break e;default:e=!1}if(e)return null;if(n&&"function"!=typeof n)throw Error(i(231,t,typeof n));return n}var Ue=!1;if(f)try{var Ze={};Object.defineProperty(Ze,"passive",{get:function(){Ue=!0}}),window.addEventListener("test",Ze,Ze),window.removeEventListener("test",Ze,Ze)}catch(ge){Ue=!1}function $e(e,t,n,r,a,o,i,l,u){var s=Array.prototype.slice.call(arguments,3);try{t.apply(n,s)}catch(c){this.onError(c)}}var qe=!1,Ge=null,He=!1,Ve=null,We={onError:function(e){qe=!0,Ge=e}};function Ye(e,t,n,r,a,o,i,l,u){qe=!1,Ge=null,$e.apply(We,arguments)}function Ke(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do{0!=(1026&(t=e).flags)&&(n=t.return),e=t.return}while(e)}return 3===t.tag?n:null}function Qe(e){if(13===e.tag){var t=e.memoizedState;if(null===t&&(null!==(e=e.alternate)&&(t=e.memoizedState)),null!==t)return t.dehydrated}return null}function Xe(e){if(Ke(e)!==e)throw Error(i(188))}function Je(e){if(e=function(e){var t=e.alternate;if(!t){if(null===(t=Ke(e)))throw Error(i(188));return t!==e?null:e}for(var n=e,r=t;;){var a=n.return;if(null===a)break;var o=a.alternate;if(null===o){if(null!==(r=a.return)){n=r;continue}break}if(a.child===o.child){for(o=a.child;o;){if(o===n)return Xe(a),e;if(o===r)return Xe(a),t;o=o.sibling}throw Error(i(188))}if(n.return!==r.return)n=a,r=o;else{for(var l=!1,u=a.child;u;){if(u===n){l=!0,n=a,r=o;break}if(u===r){l=!0,r=a,n=o;break}u=u.sibling}if(!l){for(u=o.child;u;){if(u===n){l=!0,n=o,r=a;break}if(u===r){l=!0,r=o,n=a;break}u=u.sibling}if(!l)throw Error(i(189))}}if(n.alternate!==r)throw Error(i(190))}if(3!==n.tag)throw Error(i(188));return n.stateNode.current===n?e:t}(e),!e)return null;for(var t=e;;){if(5===t.tag||6===t.tag)return t;if(t.child)t.child.return=t,t=t.child;else{if(t===e)break;for(;!t.sibling;){if(!t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}}return null}function et(e,t){for(var n=e.alternate;null!==t;){if(t===e||t===n)return!0;t=t.return}return!1}var tt,nt,rt,at,ot=!1,it=[],lt=null,ut=null,st=null,ct=new Map,ft=new Map,dt=[],pt="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit".split(" ");function mt(e,t,n,r,a){return{blockedOn:e,domEventName:t,eventSystemFlags:16|n,nativeEvent:a,targetContainers:[r]}}function ht(e,t){switch(e){case"focusin":case"focusout":lt=null;break;case"dragenter":case"dragleave":ut=null;break;case"mouseover":case"mouseout":st=null;break;case"pointerover":case"pointerout":ct.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":ft.delete(t.pointerId)}}function gt(e,t,n,r,a,o){return null===e||e.nativeEvent!==o?(e=mt(t,n,r,a,o),null!==t&&(null!==(t=ra(t))&&nt(t)),e):(e.eventSystemFlags|=r,t=e.targetContainers,null!==a&&-1===t.indexOf(a)&&t.push(a),e)}function vt(e){var t=na(e.target);if(null!==t){var n=Ke(t);if(null!==n)if(13===(t=n.tag)){if(null!==(t=Qe(n)))return e.blockedOn=t,void at(e.lanePriority,(function(){o.unstable_runWithPriority(e.priority,(function(){rt(n)}))}))}else if(3===t&&n.stateNode.hydrate)return void(e.blockedOn=3===n.tag?n.stateNode.containerInfo:null)}e.blockedOn=null}function bt(e){if(null!==e.blockedOn)return!1;for(var t=e.targetContainers;0<t.length;){var n=Jt(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(null!==n)return null!==(t=ra(n))&&nt(t),e.blockedOn=n,!1;t.shift()}return!0}function yt(e,t,n){bt(e)&&n.delete(t)}function wt(){for(ot=!1;0<it.length;){var e=it[0];if(null!==e.blockedOn){null!==(e=ra(e.blockedOn))&&tt(e);break}for(var t=e.targetContainers;0<t.length;){var n=Jt(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(null!==n){e.blockedOn=n;break}t.shift()}null===e.blockedOn&&it.shift()}null!==lt&&bt(lt)&&(lt=null),null!==ut&&bt(ut)&&(ut=null),null!==st&&bt(st)&&(st=null),ct.forEach(yt),ft.forEach(yt)}function kt(e,t){e.blockedOn===t&&(e.blockedOn=null,ot||(ot=!0,o.unstable_scheduleCallback(o.unstable_NormalPriority,wt)))}function Et(e){function t(t){return kt(t,e)}if(0<it.length){kt(it[0],e);for(var n=1;n<it.length;n++){var r=it[n];r.blockedOn===e&&(r.blockedOn=null)}}for(null!==lt&&kt(lt,e),null!==ut&&kt(ut,e),null!==st&&kt(st,e),ct.forEach(t),ft.forEach(t),n=0;n<dt.length;n++)(r=dt[n]).blockedOn===e&&(r.blockedOn=null);for(;0<dt.length&&null===(n=dt[0]).blockedOn;)vt(n),null===n.blockedOn&&dt.shift()}function St(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var xt={animationend:St("Animation","AnimationEnd"),animationiteration:St("Animation","AnimationIteration"),animationstart:St("Animation","AnimationStart"),transitionend:St("Transition","TransitionEnd")},_t={},Ct={};function Tt(e){if(_t[e])return _t[e];if(!xt[e])return e;var t,n=xt[e];for(t in n)if(n.hasOwnProperty(t)&&t in Ct)return _t[e]=n[t];return e}f&&(Ct=document.createElement("div").style,"AnimationEvent"in window||(delete xt.animationend.animation,delete xt.animationiteration.animation,delete xt.animationstart.animation),"TransitionEvent"in window||delete xt.transitionend.transition);var At=Tt("animationend"),Ot=Tt("animationiteration"),Lt=Tt("animationstart"),Pt=Tt("transitionend"),Rt=new Map,Nt=new Map,It=["abort","abort",At,"animationEnd",Ot,"animationIteration",Lt,"animationStart","canplay","canPlay","canplaythrough","canPlayThrough","durationchange","durationChange","emptied","emptied","encrypted","encrypted","ended","ended","error","error","gotpointercapture","gotPointerCapture","load","load","loadeddata","loadedData","loadedmetadata","loadedMetadata","loadstart","loadStart","lostpointercapture","lostPointerCapture","playing","playing","progress","progress","seeking","seeking","stalled","stalled","suspend","suspend","timeupdate","timeUpdate",Pt,"transitionEnd","waiting","waiting"];function Dt(e,t){for(var n=0;n<e.length;n+=2){var r=e[n],a=e[n+1];a="on"+(a[0].toUpperCase()+a.slice(1)),Nt.set(r,t),Rt.set(r,a),s(a,[r])}}(0,o.unstable_now)();var Mt=8;function Ft(e){if(0!=(1&e))return Mt=15,1;if(0!=(2&e))return Mt=14,2;if(0!=(4&e))return Mt=13,4;var t=24&e;return 0!==t?(Mt=12,t):0!=(32&e)?(Mt=11,32):0!==(t=192&e)?(Mt=10,t):0!=(256&e)?(Mt=9,256):0!==(t=3584&e)?(Mt=8,t):0!=(4096&e)?(Mt=7,4096):0!==(t=4186112&e)?(Mt=6,t):0!==(t=62914560&e)?(Mt=5,t):67108864&e?(Mt=4,67108864):0!=(134217728&e)?(Mt=3,134217728):0!==(t=805306368&e)?(Mt=2,t):0!=(1073741824&e)?(Mt=1,1073741824):(Mt=8,e)}function jt(e,t){var n=e.pendingLanes;if(0===n)return Mt=0;var r=0,a=0,o=e.expiredLanes,i=e.suspendedLanes,l=e.pingedLanes;if(0!==o)r=o,a=Mt=15;else if(0!==(o=134217727&n)){var u=o&~i;0!==u?(r=Ft(u),a=Mt):0!==(l&=o)&&(r=Ft(l),a=Mt)}else 0!==(o=n&~i)?(r=Ft(o),a=Mt):0!==l&&(r=Ft(l),a=Mt);if(0===r)return 0;if(r=n&((0>(r=31-qt(r))?0:1<<r)<<1)-1,0!==t&&t!==r&&0==(t&i)){if(Ft(t),a<=Mt)return t;Mt=a}if(0!==(t=e.entangledLanes))for(e=e.entanglements,t&=r;0<t;)a=1<<(n=31-qt(t)),r|=e[n],t&=~a;return r}function Bt(e){return 0!==(e=-1073741825&e.pendingLanes)?e:1073741824&e?1073741824:0}function zt(e,t){switch(e){case 15:return 1;case 14:return 2;case 12:return 0===(e=Ut(24&~t))?zt(10,t):e;case 10:return 0===(e=Ut(192&~t))?zt(8,t):e;case 8:return 0===(e=Ut(3584&~t))&&(0===(e=Ut(4186112&~t))&&(e=512)),e;case 2:return 0===(t=Ut(805306368&~t))&&(t=268435456),t}throw Error(i(358,e))}function Ut(e){return e&-e}function Zt(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function $t(e,t,n){e.pendingLanes|=t;var r=t-1;e.suspendedLanes&=r,e.pingedLanes&=r,(e=e.eventTimes)[t=31-qt(t)]=n}var qt=Math.clz32?Math.clz32:function(e){return 0===e?32:31-(Gt(e)/Ht|0)|0},Gt=Math.log,Ht=Math.LN2;var Vt=o.unstable_UserBlockingPriority,Wt=o.unstable_runWithPriority,Yt=!0;function Kt(e,t,n,r){Fe||De();var a=Xt,o=Fe;Fe=!0;try{Ie(a,e,t,n,r)}finally{(Fe=o)||Be()}}function Qt(e,t,n,r){Wt(Vt,Xt.bind(null,e,t,n,r))}function Xt(e,t,n,r){var a;if(Yt)if((a=0==(4&t))&&0<it.length&&-1<pt.indexOf(e))e=mt(null,e,t,n,r),it.push(e);else{var o=Jt(e,t,n,r);if(null===o)a&&ht(e,r);else{if(a){if(-1<pt.indexOf(e))return e=mt(o,e,t,n,r),void it.push(e);if(function(e,t,n,r,a){switch(t){case"focusin":return lt=gt(lt,e,t,n,r,a),!0;case"dragenter":return ut=gt(ut,e,t,n,r,a),!0;case"mouseover":return st=gt(st,e,t,n,r,a),!0;case"pointerover":var o=a.pointerId;return ct.set(o,gt(ct.get(o)||null,e,t,n,r,a)),!0;case"gotpointercapture":return o=a.pointerId,ft.set(o,gt(ft.get(o)||null,e,t,n,r,a)),!0}return!1}(o,e,t,n,r))return;ht(e,r)}Dr(e,t,r,null,n)}}}function Jt(e,t,n,r){var a=Ce(r);if(null!==(a=na(a))){var o=Ke(a);if(null===o)a=null;else{var i=o.tag;if(13===i){if(null!==(a=Qe(o)))return a;a=null}else if(3===i){if(o.stateNode.hydrate)return 3===o.tag?o.stateNode.containerInfo:null;a=null}else o!==a&&(a=null)}}return Dr(e,t,r,a,n),null}var en=null,tn=null,nn=null;function rn(){if(nn)return nn;var e,t,n=tn,r=n.length,a="value"in en?en.value:en.textContent,o=a.length;for(e=0;e<r&&n[e]===a[e];e++);var i=r-e;for(t=1;t<=i&&n[r-t]===a[o-t];t++);return nn=a.slice(e,1<t?1-t:void 0)}function an(e){var t=e.keyCode;return"charCode"in e?0===(e=e.charCode)&&13===t&&(e=13):e=t,10===e&&(e=13),32<=e||13===e?e:0}function on(){return!0}function ln(){return!1}function un(e){function t(t,n,r,a,o){for(var i in this._reactName=t,this._targetInst=r,this.type=n,this.nativeEvent=a,this.target=o,this.currentTarget=null,e)e.hasOwnProperty(i)&&(t=e[i],this[i]=t?t(a):a[i]);return this.isDefaultPrevented=(null!=a.defaultPrevented?a.defaultPrevented:!1===a.returnValue)?on:ln,this.isPropagationStopped=ln,this}return a(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():"unknown"!=typeof e.returnValue&&(e.returnValue=!1),this.isDefaultPrevented=on)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():"unknown"!=typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=on)},persist:function(){},isPersistent:on}),t}var sn,cn,fn,dn={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},pn=un(dn),mn=a({},dn,{view:0,detail:0}),hn=un(mn),gn=a({},mn,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:An,button:0,buttons:0,relatedTarget:function(e){return void 0===e.relatedTarget?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return"movementX"in e?e.movementX:(e!==fn&&(fn&&"mousemove"===e.type?(sn=e.screenX-fn.screenX,cn=e.screenY-fn.screenY):cn=sn=0,fn=e),sn)},movementY:function(e){return"movementY"in e?e.movementY:cn}}),vn=un(gn),bn=un(a({},gn,{dataTransfer:0})),yn=un(a({},mn,{relatedTarget:0})),wn=un(a({},dn,{animationName:0,elapsedTime:0,pseudoElement:0})),kn=a({},dn,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),En=un(kn),Sn=un(a({},dn,{data:0})),xn={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},_n={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},Cn={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function Tn(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):!!(e=Cn[e])&&!!t[e]}function An(){return Tn}var On=a({},mn,{key:function(e){if(e.key){var t=xn[e.key]||e.key;if("Unidentified"!==t)return t}return"keypress"===e.type?13===(e=an(e))?"Enter":String.fromCharCode(e):"keydown"===e.type||"keyup"===e.type?_n[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:An,charCode:function(e){return"keypress"===e.type?an(e):0},keyCode:function(e){return"keydown"===e.type||"keyup"===e.type?e.keyCode:0},which:function(e){return"keypress"===e.type?an(e):"keydown"===e.type||"keyup"===e.type?e.keyCode:0}}),Ln=un(On),Pn=un(a({},gn,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0})),Rn=un(a({},mn,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:An})),Nn=un(a({},dn,{propertyName:0,elapsedTime:0,pseudoElement:0})),In=a({},gn,{deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0}),Dn=un(In),Mn=[9,13,27,32],Fn=f&&"CompositionEvent"in window,jn=null;f&&"documentMode"in document&&(jn=document.documentMode);var Bn=f&&"TextEvent"in window&&!jn,zn=f&&(!Fn||jn&&8<jn&&11>=jn),Un=String.fromCharCode(32),Zn=!1;function $n(e,t){switch(e){case"keyup":return-1!==Mn.indexOf(t.keyCode);case"keydown":return 229!==t.keyCode;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function qn(e){return"object"==typeof(e=e.detail)&&"data"in e?e.data:null}var Gn=!1;var Hn={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function Vn(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===t?!!Hn[e.type]:"textarea"===t}function Wn(e,t,n,r){Pe(r),0<(t=Fr(t,"onChange")).length&&(n=new pn("onChange","change",null,n,r),e.push({event:n,listeners:t}))}var Yn=null,Kn=null;function Qn(e){Or(e,0)}function Xn(e){if(Q(aa(e)))return e}function Jn(e,t){if("change"===e)return t}var er=!1;if(f){var tr;if(f){var nr="oninput"in document;if(!nr){var rr=document.createElement("div");rr.setAttribute("oninput","return;"),nr="function"==typeof rr.oninput}tr=nr}else tr=!1;er=tr&&(!document.documentMode||9<document.documentMode)}function ar(){Yn&&(Yn.detachEvent("onpropertychange",or),Kn=Yn=null)}function or(e){if("value"===e.propertyName&&Xn(Kn)){var t=[];if(Wn(t,Kn,e,Ce(e)),e=Qn,Fe)e(t);else{Fe=!0;try{Ne(e,t)}finally{Fe=!1,Be()}}}}function ir(e,t,n){"focusin"===e?(ar(),Kn=n,(Yn=t).attachEvent("onpropertychange",or)):"focusout"===e&&ar()}function lr(e){if("selectionchange"===e||"keyup"===e||"keydown"===e)return Xn(Kn)}function ur(e,t){if("click"===e)return Xn(t)}function sr(e,t){if("input"===e||"change"===e)return Xn(t)}var cr="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},fr=Object.prototype.hasOwnProperty;function dr(e,t){if(cr(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(r=0;r<n.length;r++)if(!fr.call(t,n[r])||!cr(e[n[r]],t[n[r]]))return!1;return!0}function pr(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function mr(e,t){var n,r=pr(e);for(e=0;r;){if(3===r.nodeType){if(n=e+r.textContent.length,e<=t&&n>=t)return{node:r,offset:t-e};e=n}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=pr(r)}}function hr(e,t){return!(!e||!t)&&(e===t||(!e||3!==e.nodeType)&&(t&&3===t.nodeType?hr(e,t.parentNode):"contains"in e?e.contains(t):!!e.compareDocumentPosition&&!!(16&e.compareDocumentPosition(t))))}function gr(){for(var e=window,t=X();t instanceof e.HTMLIFrameElement;){try{var n="string"==typeof t.contentWindow.location.href}catch(r){n=!1}if(!n)break;t=X((e=t.contentWindow).document)}return t}function vr(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&("input"===t&&("text"===e.type||"search"===e.type||"tel"===e.type||"url"===e.type||"password"===e.type)||"textarea"===t||"true"===e.contentEditable)}var br=f&&"documentMode"in document&&11>=document.documentMode,yr=null,wr=null,kr=null,Er=!1;function Sr(e,t,n){var r=n.window===n?n.document:9===n.nodeType?n:n.ownerDocument;Er||null==yr||yr!==X(r)||("selectionStart"in(r=yr)&&vr(r)?r={start:r.selectionStart,end:r.selectionEnd}:r={anchorNode:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection()).anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset},kr&&dr(kr,r)||(kr=r,0<(r=Fr(wr,"onSelect")).length&&(t=new pn("onSelect","select",null,t,n),e.push({event:t,listeners:r}),t.target=yr)))}Dt("cancel cancel click click close close contextmenu contextMenu copy copy cut cut auxclick auxClick dblclick doubleClick dragend dragEnd dragstart dragStart drop drop focusin focus focusout blur input input invalid invalid keydown keyDown keypress keyPress keyup keyUp mousedown mouseDown mouseup mouseUp paste paste pause pause play play pointercancel pointerCancel pointerdown pointerDown pointerup pointerUp ratechange rateChange reset reset seeked seeked submit submit touchcancel touchCancel touchend touchEnd touchstart touchStart volumechange volumeChange".split(" "),0),Dt("drag drag dragenter dragEnter dragexit dragExit dragleave dragLeave dragover dragOver mousemove mouseMove mouseout mouseOut mouseover mouseOver pointermove pointerMove pointerout pointerOut pointerover pointerOver scroll scroll toggle toggle touchmove touchMove wheel wheel".split(" "),1),Dt(It,2);for(var xr="change selectionchange textInput compositionstart compositionend compositionupdate".split(" "),_r=0;_r<xr.length;_r++)Nt.set(xr[_r],0);c("onMouseEnter",["mouseout","mouseover"]),c("onMouseLeave",["mouseout","mouseover"]),c("onPointerEnter",["pointerout","pointerover"]),c("onPointerLeave",["pointerout","pointerover"]),s("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),s("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),s("onBeforeInput",["compositionend","keypress","textInput","paste"]),s("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),s("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),s("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var Cr="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),Tr=new Set("cancel close invalid load scroll toggle".split(" ").concat(Cr));function Ar(e,t,n){var r=e.type||"unknown-event";e.currentTarget=n,function(e,t,n,r,a,o,l,u,s){if(Ye.apply(this,arguments),qe){if(!qe)throw Error(i(198));var c=Ge;qe=!1,Ge=null,He||(He=!0,Ve=c)}}(r,t,void 0,e),e.currentTarget=null}function Or(e,t){t=0!=(4&t);for(var n=0;n<e.length;n++){var r=e[n],a=r.event;r=r.listeners;e:{var o=void 0;if(t)for(var i=r.length-1;0<=i;i--){var l=r[i],u=l.instance,s=l.currentTarget;if(l=l.listener,u!==o&&a.isPropagationStopped())break e;Ar(a,l,s),o=u}else for(i=0;i<r.length;i++){if(u=(l=r[i]).instance,s=l.currentTarget,l=l.listener,u!==o&&a.isPropagationStopped())break e;Ar(a,l,s),o=u}}}if(He)throw e=Ve,He=!1,Ve=null,e}function Lr(e,t){var n=ia(t),r=e+"__bubble";n.has(r)||(Ir(t,e,2,!1),n.add(r))}var Pr="_reactListening"+Math.random().toString(36).slice(2);function Rr(e){e[Pr]||(e[Pr]=!0,l.forEach((function(t){Tr.has(t)||Nr(t,!1,e,null),Nr(t,!0,e,null)})))}function Nr(e,t,n,r){var a=4<arguments.length&&void 0!==arguments[4]?arguments[4]:0,o=n;if("selectionchange"===e&&9!==n.nodeType&&(o=n.ownerDocument),null!==r&&!t&&Tr.has(e)){if("scroll"!==e)return;a|=2,o=r}var i=ia(o),l=e+"__"+(t?"capture":"bubble");i.has(l)||(t&&(a|=4),Ir(o,e,a,t),i.add(l))}function Ir(e,t,n,r){var a=Nt.get(t);switch(void 0===a?2:a){case 0:a=Kt;break;case 1:a=Qt;break;default:a=Xt}n=a.bind(null,t,n,e),a=void 0,!Ue||"touchstart"!==t&&"touchmove"!==t&&"wheel"!==t||(a=!0),r?void 0!==a?e.addEventListener(t,n,{capture:!0,passive:a}):e.addEventListener(t,n,!0):void 0!==a?e.addEventListener(t,n,{passive:a}):e.addEventListener(t,n,!1)}function Dr(e,t,n,r,a){var o=r;if(0==(1&t)&&0==(2&t)&&null!==r)e:for(;;){if(null===r)return;var i=r.tag;if(3===i||4===i){var l=r.stateNode.containerInfo;if(l===a||8===l.nodeType&&l.parentNode===a)break;if(4===i)for(i=r.return;null!==i;){var u=i.tag;if((3===u||4===u)&&((u=i.stateNode.containerInfo)===a||8===u.nodeType&&u.parentNode===a))return;i=i.return}for(;null!==l;){if(null===(i=na(l)))return;if(5===(u=i.tag)||6===u){r=o=i;continue e}l=l.parentNode}}r=r.return}!function(e,t,n){if(je)return e(t,n);je=!0;try{Me(e,t,n)}finally{je=!1,Be()}}((function(){var r=o,a=Ce(n),i=[];e:{var l=Rt.get(e);if(void 0!==l){var u=pn,s=e;switch(e){case"keypress":if(0===an(n))break e;case"keydown":case"keyup":u=Ln;break;case"focusin":s="focus",u=yn;break;case"focusout":s="blur",u=yn;break;case"beforeblur":case"afterblur":u=yn;break;case"click":if(2===n.button)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":u=vn;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":u=bn;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":u=Rn;break;case At:case Ot:case Lt:u=wn;break;case Pt:u=Nn;break;case"scroll":u=hn;break;case"wheel":u=Dn;break;case"copy":case"cut":case"paste":u=En;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":u=Pn}var c=0!=(4&t),f=!c&&"scroll"===e,d=c?null!==l?l+"Capture":null:l;c=[];for(var p,m=r;null!==m;){var h=(p=m).stateNode;if(5===p.tag&&null!==h&&(p=h,null!==d&&(null!=(h=ze(m,d))&&c.push(Mr(m,h,p)))),f)break;m=m.return}0<c.length&&(l=new u(l,s,null,n,a),i.push({event:l,listeners:c}))}}if(0==(7&t)){if(u="mouseout"===e||"pointerout"===e,(!(l="mouseover"===e||"pointerover"===e)||0!=(16&t)||!(s=n.relatedTarget||n.fromElement)||!na(s)&&!s[ea])&&(u||l)&&(l=a.window===a?a:(l=a.ownerDocument)?l.defaultView||l.parentWindow:window,u?(u=r,null!==(s=(s=n.relatedTarget||n.toElement)?na(s):null)&&(s!==(f=Ke(s))||5!==s.tag&&6!==s.tag)&&(s=null)):(u=null,s=r),u!==s)){if(c=vn,h="onMouseLeave",d="onMouseEnter",m="mouse","pointerout"!==e&&"pointerover"!==e||(c=Pn,h="onPointerLeave",d="onPointerEnter",m="pointer"),f=null==u?l:aa(u),p=null==s?l:aa(s),(l=new c(h,m+"leave",u,n,a)).target=f,l.relatedTarget=p,h=null,na(a)===r&&((c=new c(d,m+"enter",s,n,a)).target=p,c.relatedTarget=f,h=c),f=h,u&&s)e:{for(d=s,m=0,p=c=u;p;p=jr(p))m++;for(p=0,h=d;h;h=jr(h))p++;for(;0<m-p;)c=jr(c),m--;for(;0<p-m;)d=jr(d),p--;for(;m--;){if(c===d||null!==d&&c===d.alternate)break e;c=jr(c),d=jr(d)}c=null}else c=null;null!==u&&Br(i,l,u,c,!1),null!==s&&null!==f&&Br(i,f,s,c,!0)}if("select"===(u=(l=r?aa(r):window).nodeName&&l.nodeName.toLowerCase())||"input"===u&&"file"===l.type)var g=Jn;else if(Vn(l))if(er)g=sr;else{g=lr;var v=ir}else(u=l.nodeName)&&"input"===u.toLowerCase()&&("checkbox"===l.type||"radio"===l.type)&&(g=ur);switch(g&&(g=g(e,r))?Wn(i,g,n,a):(v&&v(e,l,r),"focusout"===e&&(v=l._wrapperState)&&v.controlled&&"number"===l.type&&ae(l,"number",l.value)),v=r?aa(r):window,e){case"focusin":(Vn(v)||"true"===v.contentEditable)&&(yr=v,wr=r,kr=null);break;case"focusout":kr=wr=yr=null;break;case"mousedown":Er=!0;break;case"contextmenu":case"mouseup":case"dragend":Er=!1,Sr(i,n,a);break;case"selectionchange":if(br)break;case"keydown":case"keyup":Sr(i,n,a)}var b;if(Fn)e:{switch(e){case"compositionstart":var y="onCompositionStart";break e;case"compositionend":y="onCompositionEnd";break e;case"compositionupdate":y="onCompositionUpdate";break e}y=void 0}else Gn?$n(e,n)&&(y="onCompositionEnd"):"keydown"===e&&229===n.keyCode&&(y="onCompositionStart");y&&(zn&&"ko"!==n.locale&&(Gn||"onCompositionStart"!==y?"onCompositionEnd"===y&&Gn&&(b=rn()):(tn="value"in(en=a)?en.value:en.textContent,Gn=!0)),0<(v=Fr(r,y)).length&&(y=new Sn(y,e,null,n,a),i.push({event:y,listeners:v}),b?y.data=b:null!==(b=qn(n))&&(y.data=b))),(b=Bn?function(e,t){switch(e){case"compositionend":return qn(t);case"keypress":return 32!==t.which?null:(Zn=!0,Un);case"textInput":return(e=t.data)===Un&&Zn?null:e;default:return null}}(e,n):function(e,t){if(Gn)return"compositionend"===e||!Fn&&$n(e,t)?(e=rn(),nn=tn=en=null,Gn=!1,e):null;switch(e){case"paste":default:return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case"compositionend":return zn&&"ko"!==t.locale?null:t.data}}(e,n))&&(0<(r=Fr(r,"onBeforeInput")).length&&(a=new Sn("onBeforeInput","beforeinput",null,n,a),i.push({event:a,listeners:r}),a.data=b))}Or(i,t)}))}function Mr(e,t,n){return{instance:e,listener:t,currentTarget:n}}function Fr(e,t){for(var n=t+"Capture",r=[];null!==e;){var a=e,o=a.stateNode;5===a.tag&&null!==o&&(a=o,null!=(o=ze(e,n))&&r.unshift(Mr(e,o,a)),null!=(o=ze(e,t))&&r.push(Mr(e,o,a))),e=e.return}return r}function jr(e){if(null===e)return null;do{e=e.return}while(e&&5!==e.tag);return e||null}function Br(e,t,n,r,a){for(var o=t._reactName,i=[];null!==n&&n!==r;){var l=n,u=l.alternate,s=l.stateNode;if(null!==u&&u===r)break;5===l.tag&&null!==s&&(l=s,a?null!=(u=ze(n,o))&&i.unshift(Mr(n,u,l)):a||null!=(u=ze(n,o))&&i.push(Mr(n,u,l))),n=n.return}0!==i.length&&e.push({event:t,listeners:i})}function zr(){}var Ur=null,Zr=null;function $r(e,t){switch(e){case"button":case"input":case"select":case"textarea":return!!t.autoFocus}return!1}function qr(e,t){return"textarea"===e||"option"===e||"noscript"===e||"string"==typeof t.children||"number"==typeof t.children||"object"==typeof t.dangerouslySetInnerHTML&&null!==t.dangerouslySetInnerHTML&&null!=t.dangerouslySetInnerHTML.__html}var Gr="function"==typeof setTimeout?setTimeout:void 0,Hr="function"==typeof clearTimeout?clearTimeout:void 0;function Vr(e){1===e.nodeType?e.textContent="":9===e.nodeType&&(null!=(e=e.body)&&(e.textContent=""))}function Wr(e){for(;null!=e;e=e.nextSibling){var t=e.nodeType;if(1===t||3===t)break}return e}function Yr(e){e=e.previousSibling;for(var t=0;e;){if(8===e.nodeType){var n=e.data;if("$"===n||"$!"===n||"$?"===n){if(0===t)return e;t--}else"/$"===n&&t++}e=e.previousSibling}return null}var Kr=0;var Qr=Math.random().toString(36).slice(2),Xr="__reactFiber$"+Qr,Jr="__reactProps$"+Qr,ea="__reactContainer$"+Qr,ta="__reactEvents$"+Qr;function na(e){var t=e[Xr];if(t)return t;for(var n=e.parentNode;n;){if(t=n[ea]||n[Xr]){if(n=t.alternate,null!==t.child||null!==n&&null!==n.child)for(e=Yr(e);null!==e;){if(n=e[Xr])return n;e=Yr(e)}return t}n=(e=n).parentNode}return null}function ra(e){return!(e=e[Xr]||e[ea])||5!==e.tag&&6!==e.tag&&13!==e.tag&&3!==e.tag?null:e}function aa(e){if(5===e.tag||6===e.tag)return e.stateNode;throw Error(i(33))}function oa(e){return e[Jr]||null}function ia(e){var t=e[ta];return void 0===t&&(t=e[ta]=new Set),t}var la=[],ua=-1;function sa(e){return{current:e}}function ca(e){0>ua||(e.current=la[ua],la[ua]=null,ua--)}function fa(e,t){ua++,la[ua]=e.current,e.current=t}var da={},pa=sa(da),ma=sa(!1),ha=da;function ga(e,t){var n=e.type.contextTypes;if(!n)return da;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var a,o={};for(a in n)o[a]=t[a];return r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=o),o}function va(e){return null!=(e=e.childContextTypes)}function ba(){ca(ma),ca(pa)}function ya(e,t,n){if(pa.current!==da)throw Error(i(168));fa(pa,t),fa(ma,n)}function wa(e,t,n){var r=e.stateNode;if(e=t.childContextTypes,"function"!=typeof r.getChildContext)return n;for(var o in r=r.getChildContext())if(!(o in e))throw Error(i(108,V(t)||"Unknown",o));return a({},n,r)}function ka(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||da,ha=pa.current,fa(pa,e),fa(ma,ma.current),!0}function Ea(e,t,n){var r=e.stateNode;if(!r)throw Error(i(169));n?(e=wa(e,t,ha),r.__reactInternalMemoizedMergedChildContext=e,ca(ma),ca(pa),fa(pa,e)):ca(ma),fa(ma,n)}var Sa=null,xa=null,_a=o.unstable_runWithPriority,Ca=o.unstable_scheduleCallback,Ta=o.unstable_cancelCallback,Aa=o.unstable_shouldYield,Oa=o.unstable_requestPaint,La=o.unstable_now,Pa=o.unstable_getCurrentPriorityLevel,Ra=o.unstable_ImmediatePriority,Na=o.unstable_UserBlockingPriority,Ia=o.unstable_NormalPriority,Da=o.unstable_LowPriority,Ma=o.unstable_IdlePriority,Fa={},ja=void 0!==Oa?Oa:function(){},Ba=null,za=null,Ua=!1,Za=La(),$a=1e4>Za?La:function(){return La()-Za};function qa(){switch(Pa()){case Ra:return 99;case Na:return 98;case Ia:return 97;case Da:return 96;case Ma:return 95;default:throw Error(i(332))}}function Ga(e){switch(e){case 99:return Ra;case 98:return Na;case 97:return Ia;case 96:return Da;case 95:return Ma;default:throw Error(i(332))}}function Ha(e,t){return e=Ga(e),_a(e,t)}function Va(e,t,n){return e=Ga(e),Ca(e,t,n)}function Wa(){if(null!==za){var e=za;za=null,Ta(e)}Ya()}function Ya(){if(!Ua&&null!==Ba){Ua=!0;var e=0;try{var t=Ba;Ha(99,(function(){for(;e<t.length;e++){var n=t[e];do{n=n(!0)}while(null!==n)}})),Ba=null}catch(n){throw null!==Ba&&(Ba=Ba.slice(e+1)),Ca(Ra,Wa),n}finally{Ua=!1}}}var Ka=k.ReactCurrentBatchConfig;function Qa(e,t){if(e&&e.defaultProps){for(var n in t=a({},t),e=e.defaultProps)void 0===t[n]&&(t[n]=e[n]);return t}return t}var Xa=sa(null),Ja=null,eo=null,to=null;function no(){to=eo=Ja=null}function ro(e){var t=Xa.current;ca(Xa),e.type._context._currentValue=t}function ao(e,t){for(;null!==e;){var n=e.alternate;if((e.childLanes&t)===t){if(null===n||(n.childLanes&t)===t)break;n.childLanes|=t}else e.childLanes|=t,null!==n&&(n.childLanes|=t);e=e.return}}function oo(e,t){Ja=e,to=eo=null,null!==(e=e.dependencies)&&null!==e.firstContext&&(0!=(e.lanes&t)&&(Fi=!0),e.firstContext=null)}function io(e,t){if(to!==e&&!1!==t&&0!==t)if("number"==typeof t&&1073741823!==t||(to=e,t=1073741823),t={context:e,observedBits:t,next:null},null===eo){if(null===Ja)throw Error(i(308));eo=t,Ja.dependencies={lanes:0,firstContext:t,responders:null}}else eo=eo.next=t;return e._currentValue}var lo=!1;function uo(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null},effects:null}}function so(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function co(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function fo(e,t){if(null!==(e=e.updateQueue)){var n=(e=e.shared).pending;null===n?t.next=t:(t.next=n.next,n.next=t),e.pending=t}}function po(e,t){var n=e.updateQueue,r=e.alternate;if(null!==r&&n===(r=r.updateQueue)){var a=null,o=null;if(null!==(n=n.firstBaseUpdate)){do{var i={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};null===o?a=o=i:o=o.next=i,n=n.next}while(null!==n);null===o?a=o=t:o=o.next=t}else a=o=t;return n={baseState:r.baseState,firstBaseUpdate:a,lastBaseUpdate:o,shared:r.shared,effects:r.effects},void(e.updateQueue=n)}null===(e=n.lastBaseUpdate)?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function mo(e,t,n,r){var o=e.updateQueue;lo=!1;var i=o.firstBaseUpdate,l=o.lastBaseUpdate,u=o.shared.pending;if(null!==u){o.shared.pending=null;var s=u,c=s.next;s.next=null,null===l?i=c:l.next=c,l=s;var f=e.alternate;if(null!==f){var d=(f=f.updateQueue).lastBaseUpdate;d!==l&&(null===d?f.firstBaseUpdate=c:d.next=c,f.lastBaseUpdate=s)}}if(null!==i){for(d=o.baseState,l=0,f=c=s=null;;){u=i.lane;var p=i.eventTime;if((r&u)===u){null!==f&&(f=f.next={eventTime:p,lane:0,tag:i.tag,payload:i.payload,callback:i.callback,next:null});e:{var m=e,h=i;switch(u=t,p=n,h.tag){case 1:if("function"==typeof(m=h.payload)){d=m.call(p,d,u);break e}d=m;break e;case 3:m.flags=-4097&m.flags|64;case 0:if(null==(u="function"==typeof(m=h.payload)?m.call(p,d,u):m))break e;d=a({},d,u);break e;case 2:lo=!0}}null!==i.callback&&(e.flags|=32,null===(u=o.effects)?o.effects=[i]:u.push(i))}else p={eventTime:p,lane:u,tag:i.tag,payload:i.payload,callback:i.callback,next:null},null===f?(c=f=p,s=d):f=f.next=p,l|=u;if(null===(i=i.next)){if(null===(u=o.shared.pending))break;i=u.next,u.next=null,o.lastBaseUpdate=u,o.shared.pending=null}}null===f&&(s=d),o.baseState=s,o.firstBaseUpdate=c,o.lastBaseUpdate=f,Ul|=l,e.lanes=l,e.memoizedState=d}}function ho(e,t,n){if(e=t.effects,t.effects=null,null!==e)for(t=0;t<e.length;t++){var r=e[t],a=r.callback;if(null!==a){if(r.callback=null,r=n,"function"!=typeof a)throw Error(i(191,a));a.call(r)}}}var go=(new r.Component).refs;function vo(e,t,n,r){n=null==(n=n(r,t=e.memoizedState))?t:a({},t,n),e.memoizedState=n,0===e.lanes&&(e.updateQueue.baseState=n)}var bo={isMounted:function(e){return!!(e=e._reactInternals)&&Ke(e)===e},enqueueSetState:function(e,t,n){e=e._reactInternals;var r=du(),a=pu(e),o=co(r,a);o.payload=t,null!=n&&(o.callback=n),fo(e,o),mu(e,a,r)},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var r=du(),a=pu(e),o=co(r,a);o.tag=1,o.payload=t,null!=n&&(o.callback=n),fo(e,o),mu(e,a,r)},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=du(),r=pu(e),a=co(n,r);a.tag=2,null!=t&&(a.callback=t),fo(e,a),mu(e,r,n)}};function yo(e,t,n,r,a,o,i){return"function"==typeof(e=e.stateNode).shouldComponentUpdate?e.shouldComponentUpdate(r,o,i):!t.prototype||!t.prototype.isPureReactComponent||(!dr(n,r)||!dr(a,o))}function wo(e,t,n){var r=!1,a=da,o=t.contextType;return"object"==typeof o&&null!==o?o=io(o):(a=va(t)?ha:pa.current,o=(r=null!=(r=t.contextTypes))?ga(e,a):da),t=new t(n,o),e.memoizedState=null!==t.state&&void 0!==t.state?t.state:null,t.updater=bo,e.stateNode=t,t._reactInternals=e,r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=a,e.__reactInternalMemoizedMaskedChildContext=o),t}function ko(e,t,n,r){e=t.state,"function"==typeof t.componentWillReceiveProps&&t.componentWillReceiveProps(n,r),"function"==typeof t.UNSAFE_componentWillReceiveProps&&t.UNSAFE_componentWillReceiveProps(n,r),t.state!==e&&bo.enqueueReplaceState(t,t.state,null)}function Eo(e,t,n,r){var a=e.stateNode;a.props=n,a.state=e.memoizedState,a.refs=go,uo(e);var o=t.contextType;"object"==typeof o&&null!==o?a.context=io(o):(o=va(t)?ha:pa.current,a.context=ga(e,o)),mo(e,n,a,r),a.state=e.memoizedState,"function"==typeof(o=t.getDerivedStateFromProps)&&(vo(e,t,o,n),a.state=e.memoizedState),"function"==typeof t.getDerivedStateFromProps||"function"==typeof a.getSnapshotBeforeUpdate||"function"!=typeof a.UNSAFE_componentWillMount&&"function"!=typeof a.componentWillMount||(t=a.state,"function"==typeof a.componentWillMount&&a.componentWillMount(),"function"==typeof a.UNSAFE_componentWillMount&&a.UNSAFE_componentWillMount(),t!==a.state&&bo.enqueueReplaceState(a,a.state,null),mo(e,n,a,r),a.state=e.memoizedState),"function"==typeof a.componentDidMount&&(e.flags|=4)}var So=Array.isArray;function xo(e,t,n){if(null!==(e=n.ref)&&"function"!=typeof e&&"object"!=typeof e){if(n._owner){if(n=n._owner){if(1!==n.tag)throw Error(i(309));var r=n.stateNode}if(!r)throw Error(i(147,e));var a=""+e;return null!==t&&null!==t.ref&&"function"==typeof t.ref&&t.ref._stringRef===a?t.ref:(t=function(e){var t=r.refs;t===go&&(t=r.refs={}),null===e?delete t[a]:t[a]=e},t._stringRef=a,t)}if("string"!=typeof e)throw Error(i(284));if(!n._owner)throw Error(i(290,e))}return e}function _o(e,t){if("textarea"!==e.type)throw Error(i(31,"[object Object]"===Object.prototype.toString.call(t)?"object with keys {"+Object.keys(t).join(", ")+"}":t))}function Co(e){function t(t,n){if(e){var r=t.lastEffect;null!==r?(r.nextEffect=n,t.lastEffect=n):t.firstEffect=t.lastEffect=n,n.nextEffect=null,n.flags=8}}function n(n,r){if(!e)return null;for(;null!==r;)t(n,r),r=r.sibling;return null}function r(e,t){for(e=new Map;null!==t;)null!==t.key?e.set(t.key,t):e.set(t.index,t),t=t.sibling;return e}function a(e,t){return(e=Hu(e,t)).index=0,e.sibling=null,e}function o(t,n,r){return t.index=r,e?null!==(r=t.alternate)?(r=r.index)<n?(t.flags=2,n):r:(t.flags=2,n):n}function l(t){return e&&null===t.alternate&&(t.flags=2),t}function u(e,t,n,r){return null===t||6!==t.tag?((t=Ku(n,e.mode,r)).return=e,t):((t=a(t,n)).return=e,t)}function s(e,t,n,r){return null!==t&&t.elementType===n.type?((r=a(t,n.props)).ref=xo(e,t,n),r.return=e,r):((r=Vu(n.type,n.key,n.props,null,e.mode,r)).ref=xo(e,t,n),r.return=e,r)}function c(e,t,n,r){return null===t||4!==t.tag||t.stateNode.containerInfo!==n.containerInfo||t.stateNode.implementation!==n.implementation?((t=Qu(n,e.mode,r)).return=e,t):((t=a(t,n.children||[])).return=e,t)}function f(e,t,n,r,o){return null===t||7!==t.tag?((t=Wu(n,e.mode,r,o)).return=e,t):((t=a(t,n)).return=e,t)}function d(e,t,n){if("string"==typeof t||"number"==typeof t)return(t=Ku(""+t,e.mode,n)).return=e,t;if("object"==typeof t&&null!==t){switch(t.$$typeof){case E:return(n=Vu(t.type,t.key,t.props,null,e.mode,n)).ref=xo(e,null,t),n.return=e,n;case S:return(t=Qu(t,e.mode,n)).return=e,t}if(So(t)||Z(t))return(t=Wu(t,e.mode,n,null)).return=e,t;_o(e,t)}return null}function p(e,t,n,r){var a=null!==t?t.key:null;if("string"==typeof n||"number"==typeof n)return null!==a?null:u(e,t,""+n,r);if("object"==typeof n&&null!==n){switch(n.$$typeof){case E:return n.key===a?n.type===x?f(e,t,n.props.children,r,a):s(e,t,n,r):null;case S:return n.key===a?c(e,t,n,r):null}if(So(n)||Z(n))return null!==a?null:f(e,t,n,r,null);_o(e,n)}return null}function m(e,t,n,r,a){if("string"==typeof r||"number"==typeof r)return u(t,e=e.get(n)||null,""+r,a);if("object"==typeof r&&null!==r){switch(r.$$typeof){case E:return e=e.get(null===r.key?n:r.key)||null,r.type===x?f(t,e,r.props.children,a,r.key):s(t,e,r,a);case S:return c(t,e=e.get(null===r.key?n:r.key)||null,r,a)}if(So(r)||Z(r))return f(t,e=e.get(n)||null,r,a,null);_o(t,r)}return null}function h(a,i,l,u){for(var s=null,c=null,f=i,h=i=0,g=null;null!==f&&h<l.length;h++){f.index>h?(g=f,f=null):g=f.sibling;var v=p(a,f,l[h],u);if(null===v){null===f&&(f=g);break}e&&f&&null===v.alternate&&t(a,f),i=o(v,i,h),null===c?s=v:c.sibling=v,c=v,f=g}if(h===l.length)return n(a,f),s;if(null===f){for(;h<l.length;h++)null!==(f=d(a,l[h],u))&&(i=o(f,i,h),null===c?s=f:c.sibling=f,c=f);return s}for(f=r(a,f);h<l.length;h++)null!==(g=m(f,a,h,l[h],u))&&(e&&null!==g.alternate&&f.delete(null===g.key?h:g.key),i=o(g,i,h),null===c?s=g:c.sibling=g,c=g);return e&&f.forEach((function(e){return t(a,e)})),s}function g(a,l,u,s){var c=Z(u);if("function"!=typeof c)throw Error(i(150));if(null==(u=c.call(u)))throw Error(i(151));for(var f=c=null,h=l,g=l=0,v=null,b=u.next();null!==h&&!b.done;g++,b=u.next()){h.index>g?(v=h,h=null):v=h.sibling;var y=p(a,h,b.value,s);if(null===y){null===h&&(h=v);break}e&&h&&null===y.alternate&&t(a,h),l=o(y,l,g),null===f?c=y:f.sibling=y,f=y,h=v}if(b.done)return n(a,h),c;if(null===h){for(;!b.done;g++,b=u.next())null!==(b=d(a,b.value,s))&&(l=o(b,l,g),null===f?c=b:f.sibling=b,f=b);return c}for(h=r(a,h);!b.done;g++,b=u.next())null!==(b=m(h,a,g,b.value,s))&&(e&&null!==b.alternate&&h.delete(null===b.key?g:b.key),l=o(b,l,g),null===f?c=b:f.sibling=b,f=b);return e&&h.forEach((function(e){return t(a,e)})),c}return function(e,r,o,u){var s="object"==typeof o&&null!==o&&o.type===x&&null===o.key;s&&(o=o.props.children);var c="object"==typeof o&&null!==o;if(c)switch(o.$$typeof){case E:e:{for(c=o.key,s=r;null!==s;){if(s.key===c){if(7===s.tag){if(o.type===x){n(e,s.sibling),(r=a(s,o.props.children)).return=e,e=r;break e}}else if(s.elementType===o.type){n(e,s.sibling),(r=a(s,o.props)).ref=xo(e,s,o),r.return=e,e=r;break e}n(e,s);break}t(e,s),s=s.sibling}o.type===x?((r=Wu(o.props.children,e.mode,u,o.key)).return=e,e=r):((u=Vu(o.type,o.key,o.props,null,e.mode,u)).ref=xo(e,r,o),u.return=e,e=u)}return l(e);case S:e:{for(s=o.key;null!==r;){if(r.key===s){if(4===r.tag&&r.stateNode.containerInfo===o.containerInfo&&r.stateNode.implementation===o.implementation){n(e,r.sibling),(r=a(r,o.children||[])).return=e,e=r;break e}n(e,r);break}t(e,r),r=r.sibling}(r=Qu(o,e.mode,u)).return=e,e=r}return l(e)}if("string"==typeof o||"number"==typeof o)return o=""+o,null!==r&&6===r.tag?(n(e,r.sibling),(r=a(r,o)).return=e,e=r):(n(e,r),(r=Ku(o,e.mode,u)).return=e,e=r),l(e);if(So(o))return h(e,r,o,u);if(Z(o))return g(e,r,o,u);if(c&&_o(e,o),void 0===o&&!s)switch(e.tag){case 1:case 22:case 0:case 11:case 15:throw Error(i(152,V(e.type)||"Component"))}return n(e,r)}}var To=Co(!0),Ao=Co(!1),Oo={},Lo=sa(Oo),Po=sa(Oo),Ro=sa(Oo);function No(e){if(e===Oo)throw Error(i(174));return e}function Io(e,t){switch(fa(Ro,t),fa(Po,e),fa(Lo,Oo),e=t.nodeType){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:me(null,"");break;default:t=me(t=(e=8===e?t.parentNode:t).namespaceURI||null,e=e.tagName)}ca(Lo),fa(Lo,t)}function Do(){ca(Lo),ca(Po),ca(Ro)}function Mo(e){No(Ro.current);var t=No(Lo.current),n=me(t,e.type);t!==n&&(fa(Po,e),fa(Lo,n))}function Fo(e){Po.current===e&&(ca(Lo),ca(Po))}var jo=sa(0);function Bo(e){for(var t=e;null!==t;){if(13===t.tag){var n=t.memoizedState;if(null!==n&&(null===(n=n.dehydrated)||"$?"===n.data||"$!"===n.data))return t}else if(19===t.tag&&void 0!==t.memoizedProps.revealOrder){if(0!=(64&t.flags))return t}else if(null!==t.child){t.child.return=t,t=t.child;continue}if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var zo=null,Uo=null,Zo=!1;function $o(e,t){var n=qu(5,null,null,0);n.elementType="DELETED",n.type="DELETED",n.stateNode=t,n.return=e,n.flags=8,null!==e.lastEffect?(e.lastEffect.nextEffect=n,e.lastEffect=n):e.firstEffect=e.lastEffect=n}function qo(e,t){switch(e.tag){case 5:var n=e.type;return null!==(t=1!==t.nodeType||n.toLowerCase()!==t.nodeName.toLowerCase()?null:t)&&(e.stateNode=t,!0);case 6:return null!==(t=""===e.pendingProps||3!==t.nodeType?null:t)&&(e.stateNode=t,!0);default:return!1}}function Go(e){if(Zo){var t=Uo;if(t){var n=t;if(!qo(e,t)){if(!(t=Wr(n.nextSibling))||!qo(e,t))return e.flags=-1025&e.flags|2,Zo=!1,void(zo=e);$o(zo,n)}zo=e,Uo=Wr(t.firstChild)}else e.flags=-1025&e.flags|2,Zo=!1,zo=e}}function Ho(e){for(e=e.return;null!==e&&5!==e.tag&&3!==e.tag&&13!==e.tag;)e=e.return;zo=e}function Vo(e){if(e!==zo)return!1;if(!Zo)return Ho(e),Zo=!0,!1;var t=e.type;if(5!==e.tag||"head"!==t&&"body"!==t&&!qr(t,e.memoizedProps))for(t=Uo;t;)$o(e,t),t=Wr(t.nextSibling);if(Ho(e),13===e.tag){if(!(e=null!==(e=e.memoizedState)?e.dehydrated:null))throw Error(i(317));e:{for(e=e.nextSibling,t=0;e;){if(8===e.nodeType){var n=e.data;if("/$"===n){if(0===t){Uo=Wr(e.nextSibling);break e}t--}else"$"!==n&&"$!"!==n&&"$?"!==n||t++}e=e.nextSibling}Uo=null}}else Uo=zo?Wr(e.stateNode.nextSibling):null;return!0}function Wo(){Uo=zo=null,Zo=!1}var Yo=[];function Ko(){for(var e=0;e<Yo.length;e++)Yo[e]._workInProgressVersionPrimary=null;Yo.length=0}var Qo=k.ReactCurrentDispatcher,Xo=k.ReactCurrentBatchConfig,Jo=0,ei=null,ti=null,ni=null,ri=!1,ai=!1;function oi(){throw Error(i(321))}function ii(e,t){if(null===t)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!cr(e[n],t[n]))return!1;return!0}function li(e,t,n,r,a,o){if(Jo=o,ei=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,Qo.current=null===e||null===e.memoizedState?Ni:Ii,e=n(r,a),ai){o=0;do{if(ai=!1,!(25>o))throw Error(i(301));o+=1,ni=ti=null,t.updateQueue=null,Qo.current=Di,e=n(r,a)}while(ai)}if(Qo.current=Ri,t=null!==ti&&null!==ti.next,Jo=0,ni=ti=ei=null,ri=!1,t)throw Error(i(300));return e}function ui(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return null===ni?ei.memoizedState=ni=e:ni=ni.next=e,ni}function si(){if(null===ti){var e=ei.alternate;e=null!==e?e.memoizedState:null}else e=ti.next;var t=null===ni?ei.memoizedState:ni.next;if(null!==t)ni=t,ti=e;else{if(null===e)throw Error(i(310));e={memoizedState:(ti=e).memoizedState,baseState:ti.baseState,baseQueue:ti.baseQueue,queue:ti.queue,next:null},null===ni?ei.memoizedState=ni=e:ni=ni.next=e}return ni}function ci(e,t){return"function"==typeof t?t(e):t}function fi(e){var t=si(),n=t.queue;if(null===n)throw Error(i(311));n.lastRenderedReducer=e;var r=ti,a=r.baseQueue,o=n.pending;if(null!==o){if(null!==a){var l=a.next;a.next=o.next,o.next=l}r.baseQueue=a=o,n.pending=null}if(null!==a){a=a.next,r=r.baseState;var u=l=o=null,s=a;do{var c=s.lane;if((Jo&c)===c)null!==u&&(u=u.next={lane:0,action:s.action,eagerReducer:s.eagerReducer,eagerState:s.eagerState,next:null}),r=s.eagerReducer===e?s.eagerState:e(r,s.action);else{var f={lane:c,action:s.action,eagerReducer:s.eagerReducer,eagerState:s.eagerState,next:null};null===u?(l=u=f,o=r):u=u.next=f,ei.lanes|=c,Ul|=c}s=s.next}while(null!==s&&s!==a);null===u?o=r:u.next=l,cr(r,t.memoizedState)||(Fi=!0),t.memoizedState=r,t.baseState=o,t.baseQueue=u,n.lastRenderedState=r}return[t.memoizedState,n.dispatch]}function di(e){var t=si(),n=t.queue;if(null===n)throw Error(i(311));n.lastRenderedReducer=e;var r=n.dispatch,a=n.pending,o=t.memoizedState;if(null!==a){n.pending=null;var l=a=a.next;do{o=e(o,l.action),l=l.next}while(l!==a);cr(o,t.memoizedState)||(Fi=!0),t.memoizedState=o,null===t.baseQueue&&(t.baseState=o),n.lastRenderedState=o}return[o,r]}function pi(e,t,n){var r=t._getVersion;r=r(t._source);var a=t._workInProgressVersionPrimary;if(null!==a?e=a===r:(e=e.mutableReadLanes,(e=(Jo&e)===e)&&(t._workInProgressVersionPrimary=r,Yo.push(t))),e)return n(t._source);throw Yo.push(t),Error(i(350))}function mi(e,t,n,r){var a=Nl;if(null===a)throw Error(i(349));var o=t._getVersion,l=o(t._source),u=Qo.current,s=u.useState((function(){return pi(a,t,n)})),c=s[1],f=s[0];s=ni;var d=e.memoizedState,p=d.refs,m=p.getSnapshot,h=d.source;d=d.subscribe;var g=ei;return e.memoizedState={refs:p,source:t,subscribe:r},u.useEffect((function(){p.getSnapshot=n,p.setSnapshot=c;var e=o(t._source);if(!cr(l,e)){e=n(t._source),cr(f,e)||(c(e),e=pu(g),a.mutableReadLanes|=e&a.pendingLanes),e=a.mutableReadLanes,a.entangledLanes|=e;for(var r=a.entanglements,i=e;0<i;){var u=31-qt(i),s=1<<u;r[u]|=e,i&=~s}}}),[n,t,r]),u.useEffect((function(){return r(t._source,(function(){var e=p.getSnapshot,n=p.setSnapshot;try{n(e(t._source));var r=pu(g);a.mutableReadLanes|=r&a.pendingLanes}catch(o){n((function(){throw o}))}}))}),[t,r]),cr(m,n)&&cr(h,t)&&cr(d,r)||((e={pending:null,dispatch:null,lastRenderedReducer:ci,lastRenderedState:f}).dispatch=c=Pi.bind(null,ei,e),s.queue=e,s.baseQueue=null,f=pi(a,t,n),s.memoizedState=s.baseState=f),f}function hi(e,t,n){return mi(si(),e,t,n)}function gi(e){var t=ui();return"function"==typeof e&&(e=e()),t.memoizedState=t.baseState=e,e=(e=t.queue={pending:null,dispatch:null,lastRenderedReducer:ci,lastRenderedState:e}).dispatch=Pi.bind(null,ei,e),[t.memoizedState,e]}function vi(e,t,n,r){return e={tag:e,create:t,destroy:n,deps:r,next:null},null===(t=ei.updateQueue)?(t={lastEffect:null},ei.updateQueue=t,t.lastEffect=e.next=e):null===(n=t.lastEffect)?t.lastEffect=e.next=e:(r=n.next,n.next=e,e.next=r,t.lastEffect=e),e}function bi(e){return e={current:e},ui().memoizedState=e}function yi(){return si().memoizedState}function wi(e,t,n,r){var a=ui();ei.flags|=e,a.memoizedState=vi(1|t,n,void 0,void 0===r?null:r)}function ki(e,t,n,r){var a=si();r=void 0===r?null:r;var o=void 0;if(null!==ti){var i=ti.memoizedState;if(o=i.destroy,null!==r&&ii(r,i.deps))return void vi(t,n,o,r)}ei.flags|=e,a.memoizedState=vi(1|t,n,o,r)}function Ei(e,t){return wi(516,4,e,t)}function Si(e,t){return ki(516,4,e,t)}function xi(e,t){return ki(4,2,e,t)}function _i(e,t){return"function"==typeof t?(e=e(),t(e),function(){t(null)}):null!=t?(e=e(),t.current=e,function(){t.current=null}):void 0}function Ci(e,t,n){return n=null!=n?n.concat([e]):null,ki(4,2,_i.bind(null,t,e),n)}function Ti(){}function Ai(e,t){var n=si();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&ii(t,r[1])?r[0]:(n.memoizedState=[e,t],e)}function Oi(e,t){var n=si();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&ii(t,r[1])?r[0]:(e=e(),n.memoizedState=[e,t],e)}function Li(e,t){var n=qa();Ha(98>n?98:n,(function(){e(!0)})),Ha(97<n?97:n,(function(){var n=Xo.transition;Xo.transition=1;try{e(!1),t()}finally{Xo.transition=n}}))}function Pi(e,t,n){var r=du(),a=pu(e),o={lane:a,action:n,eagerReducer:null,eagerState:null,next:null},i=t.pending;if(null===i?o.next=o:(o.next=i.next,i.next=o),t.pending=o,i=e.alternate,e===ei||null!==i&&i===ei)ai=ri=!0;else{if(0===e.lanes&&(null===i||0===i.lanes)&&null!==(i=t.lastRenderedReducer))try{var l=t.lastRenderedState,u=i(l,n);if(o.eagerReducer=i,o.eagerState=u,cr(u,l))return}catch(s){}mu(e,a,r)}}var Ri={readContext:io,useCallback:oi,useContext:oi,useEffect:oi,useImperativeHandle:oi,useLayoutEffect:oi,useMemo:oi,useReducer:oi,useRef:oi,useState:oi,useDebugValue:oi,useDeferredValue:oi,useTransition:oi,useMutableSource:oi,useOpaqueIdentifier:oi,unstable_isNewReconciler:!1},Ni={readContext:io,useCallback:function(e,t){return ui().memoizedState=[e,void 0===t?null:t],e},useContext:io,useEffect:Ei,useImperativeHandle:function(e,t,n){return n=null!=n?n.concat([e]):null,wi(4,2,_i.bind(null,t,e),n)},useLayoutEffect:function(e,t){return wi(4,2,e,t)},useMemo:function(e,t){var n=ui();return t=void 0===t?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=ui();return t=void 0!==n?n(t):t,r.memoizedState=r.baseState=t,e=(e=r.queue={pending:null,dispatch:null,lastRenderedReducer:e,lastRenderedState:t}).dispatch=Pi.bind(null,ei,e),[r.memoizedState,e]},useRef:bi,useState:gi,useDebugValue:Ti,useDeferredValue:function(e){var t=gi(e),n=t[0],r=t[1];return Ei((function(){var t=Xo.transition;Xo.transition=1;try{r(e)}finally{Xo.transition=t}}),[e]),n},useTransition:function(){var e=gi(!1),t=e[0];return bi(e=Li.bind(null,e[1])),[e,t]},useMutableSource:function(e,t,n){var r=ui();return r.memoizedState={refs:{getSnapshot:t,setSnapshot:null},source:e,subscribe:n},mi(r,e,t,n)},useOpaqueIdentifier:function(){if(Zo){var e=!1,t=function(e){return{$$typeof:D,toString:e,valueOf:e}}((function(){throw e||(e=!0,n("r:"+(Kr++).toString(36))),Error(i(355))})),n=gi(t)[1];return 0==(2&ei.mode)&&(ei.flags|=516,vi(5,(function(){n("r:"+(Kr++).toString(36))}),void 0,null)),t}return gi(t="r:"+(Kr++).toString(36)),t},unstable_isNewReconciler:!1},Ii={readContext:io,useCallback:Ai,useContext:io,useEffect:Si,useImperativeHandle:Ci,useLayoutEffect:xi,useMemo:Oi,useReducer:fi,useRef:yi,useState:function(){return fi(ci)},useDebugValue:Ti,useDeferredValue:function(e){var t=fi(ci),n=t[0],r=t[1];return Si((function(){var t=Xo.transition;Xo.transition=1;try{r(e)}finally{Xo.transition=t}}),[e]),n},useTransition:function(){var e=fi(ci)[0];return[yi().current,e]},useMutableSource:hi,useOpaqueIdentifier:function(){return fi(ci)[0]},unstable_isNewReconciler:!1},Di={readContext:io,useCallback:Ai,useContext:io,useEffect:Si,useImperativeHandle:Ci,useLayoutEffect:xi,useMemo:Oi,useReducer:di,useRef:yi,useState:function(){return di(ci)},useDebugValue:Ti,useDeferredValue:function(e){var t=di(ci),n=t[0],r=t[1];return Si((function(){var t=Xo.transition;Xo.transition=1;try{r(e)}finally{Xo.transition=t}}),[e]),n},useTransition:function(){var e=di(ci)[0];return[yi().current,e]},useMutableSource:hi,useOpaqueIdentifier:function(){return di(ci)[0]},unstable_isNewReconciler:!1},Mi=k.ReactCurrentOwner,Fi=!1;function ji(e,t,n,r){t.child=null===e?Ao(t,null,n,r):To(t,e.child,n,r)}function Bi(e,t,n,r,a){n=n.render;var o=t.ref;return oo(t,a),r=li(e,t,n,r,o,a),null===e||Fi?(t.flags|=1,ji(e,t,r,a),t.child):(t.updateQueue=e.updateQueue,t.flags&=-517,e.lanes&=~a,ol(e,t,a))}function zi(e,t,n,r,a,o){if(null===e){var i=n.type;return"function"!=typeof i||Gu(i)||void 0!==i.defaultProps||null!==n.compare||void 0!==n.defaultProps?((e=Vu(n.type,null,r,t,t.mode,o)).ref=t.ref,e.return=t,t.child=e):(t.tag=15,t.type=i,Ui(e,t,i,r,a,o))}return i=e.child,0==(a&o)&&(a=i.memoizedProps,(n=null!==(n=n.compare)?n:dr)(a,r)&&e.ref===t.ref)?ol(e,t,o):(t.flags|=1,(e=Hu(i,r)).ref=t.ref,e.return=t,t.child=e)}function Ui(e,t,n,r,a,o){if(null!==e&&dr(e.memoizedProps,r)&&e.ref===t.ref){if(Fi=!1,0==(o&a))return t.lanes=e.lanes,ol(e,t,o);0!=(16384&e.flags)&&(Fi=!0)}return qi(e,t,n,r,o)}function Zi(e,t,n){var r=t.pendingProps,a=r.children,o=null!==e?e.memoizedState:null;if("hidden"===r.mode||"unstable-defer-without-hiding"===r.mode)if(0==(4&t.mode))t.memoizedState={baseLanes:0},Eu(t,n);else{if(0==(1073741824&n))return e=null!==o?o.baseLanes|n:n,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e},Eu(t,e),null;t.memoizedState={baseLanes:0},Eu(t,null!==o?o.baseLanes:n)}else null!==o?(r=o.baseLanes|n,t.memoizedState=null):r=n,Eu(t,r);return ji(e,t,a,n),t.child}function $i(e,t){var n=t.ref;(null===e&&null!==n||null!==e&&e.ref!==n)&&(t.flags|=128)}function qi(e,t,n,r,a){var o=va(n)?ha:pa.current;return o=ga(t,o),oo(t,a),n=li(e,t,n,r,o,a),null===e||Fi?(t.flags|=1,ji(e,t,n,a),t.child):(t.updateQueue=e.updateQueue,t.flags&=-517,e.lanes&=~a,ol(e,t,a))}function Gi(e,t,n,r,a){if(va(n)){var o=!0;ka(t)}else o=!1;if(oo(t,a),null===t.stateNode)null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),wo(t,n,r),Eo(t,n,r,a),r=!0;else if(null===e){var i=t.stateNode,l=t.memoizedProps;i.props=l;var u=i.context,s=n.contextType;"object"==typeof s&&null!==s?s=io(s):s=ga(t,s=va(n)?ha:pa.current);var c=n.getDerivedStateFromProps,f="function"==typeof c||"function"==typeof i.getSnapshotBeforeUpdate;f||"function"!=typeof i.UNSAFE_componentWillReceiveProps&&"function"!=typeof i.componentWillReceiveProps||(l!==r||u!==s)&&ko(t,i,r,s),lo=!1;var d=t.memoizedState;i.state=d,mo(t,r,i,a),u=t.memoizedState,l!==r||d!==u||ma.current||lo?("function"==typeof c&&(vo(t,n,c,r),u=t.memoizedState),(l=lo||yo(t,n,l,r,d,u,s))?(f||"function"!=typeof i.UNSAFE_componentWillMount&&"function"!=typeof i.componentWillMount||("function"==typeof i.componentWillMount&&i.componentWillMount(),"function"==typeof i.UNSAFE_componentWillMount&&i.UNSAFE_componentWillMount()),"function"==typeof i.componentDidMount&&(t.flags|=4)):("function"==typeof i.componentDidMount&&(t.flags|=4),t.memoizedProps=r,t.memoizedState=u),i.props=r,i.state=u,i.context=s,r=l):("function"==typeof i.componentDidMount&&(t.flags|=4),r=!1)}else{i=t.stateNode,so(e,t),l=t.memoizedProps,s=t.type===t.elementType?l:Qa(t.type,l),i.props=s,f=t.pendingProps,d=i.context,"object"==typeof(u=n.contextType)&&null!==u?u=io(u):u=ga(t,u=va(n)?ha:pa.current);var p=n.getDerivedStateFromProps;(c="function"==typeof p||"function"==typeof i.getSnapshotBeforeUpdate)||"function"!=typeof i.UNSAFE_componentWillReceiveProps&&"function"!=typeof i.componentWillReceiveProps||(l!==f||d!==u)&&ko(t,i,r,u),lo=!1,d=t.memoizedState,i.state=d,mo(t,r,i,a);var m=t.memoizedState;l!==f||d!==m||ma.current||lo?("function"==typeof p&&(vo(t,n,p,r),m=t.memoizedState),(s=lo||yo(t,n,s,r,d,m,u))?(c||"function"!=typeof i.UNSAFE_componentWillUpdate&&"function"!=typeof i.componentWillUpdate||("function"==typeof i.componentWillUpdate&&i.componentWillUpdate(r,m,u),"function"==typeof i.UNSAFE_componentWillUpdate&&i.UNSAFE_componentWillUpdate(r,m,u)),"function"==typeof i.componentDidUpdate&&(t.flags|=4),"function"==typeof i.getSnapshotBeforeUpdate&&(t.flags|=256)):("function"!=typeof i.componentDidUpdate||l===e.memoizedProps&&d===e.memoizedState||(t.flags|=4),"function"!=typeof i.getSnapshotBeforeUpdate||l===e.memoizedProps&&d===e.memoizedState||(t.flags|=256),t.memoizedProps=r,t.memoizedState=m),i.props=r,i.state=m,i.context=u,r=s):("function"!=typeof i.componentDidUpdate||l===e.memoizedProps&&d===e.memoizedState||(t.flags|=4),"function"!=typeof i.getSnapshotBeforeUpdate||l===e.memoizedProps&&d===e.memoizedState||(t.flags|=256),r=!1)}return Hi(e,t,n,r,o,a)}function Hi(e,t,n,r,a,o){$i(e,t);var i=0!=(64&t.flags);if(!r&&!i)return a&&Ea(t,n,!1),ol(e,t,o);r=t.stateNode,Mi.current=t;var l=i&&"function"!=typeof n.getDerivedStateFromError?null:r.render();return t.flags|=1,null!==e&&i?(t.child=To(t,e.child,null,o),t.child=To(t,null,l,o)):ji(e,t,l,o),t.memoizedState=r.state,a&&Ea(t,n,!0),t.child}function Vi(e){var t=e.stateNode;t.pendingContext?ya(0,t.pendingContext,t.pendingContext!==t.context):t.context&&ya(0,t.context,!1),Io(e,t.containerInfo)}var Wi,Yi,Ki,Qi={dehydrated:null,retryLane:0};function Xi(e,t,n){var r,a=t.pendingProps,o=jo.current,i=!1;return(r=0!=(64&t.flags))||(r=(null===e||null!==e.memoizedState)&&0!=(2&o)),r?(i=!0,t.flags&=-65):null!==e&&null===e.memoizedState||void 0===a.fallback||!0===a.unstable_avoidThisFallback||(o|=1),fa(jo,1&o),null===e?(void 0!==a.fallback&&Go(t),e=a.children,o=a.fallback,i?(e=Ji(t,e,o,n),t.child.memoizedState={baseLanes:n},t.memoizedState=Qi,e):"number"==typeof a.unstable_expectedLoadTime?(e=Ji(t,e,o,n),t.child.memoizedState={baseLanes:n},t.memoizedState=Qi,t.lanes=33554432,e):((n=Yu({mode:"visible",children:e},t.mode,n,null)).return=t,t.child=n)):(e.memoizedState,i?(a=tl(e,t,a.children,a.fallback,n),i=t.child,o=e.child.memoizedState,i.memoizedState=null===o?{baseLanes:n}:{baseLanes:o.baseLanes|n},i.childLanes=e.childLanes&~n,t.memoizedState=Qi,a):(n=el(e,t,a.children,n),t.memoizedState=null,n))}function Ji(e,t,n,r){var a=e.mode,o=e.child;return t={mode:"hidden",children:t},0==(2&a)&&null!==o?(o.childLanes=0,o.pendingProps=t):o=Yu(t,a,0,null),n=Wu(n,a,r,null),o.return=e,n.return=e,o.sibling=n,e.child=o,n}function el(e,t,n,r){var a=e.child;return e=a.sibling,n=Hu(a,{mode:"visible",children:n}),0==(2&t.mode)&&(n.lanes=r),n.return=t,n.sibling=null,null!==e&&(e.nextEffect=null,e.flags=8,t.firstEffect=t.lastEffect=e),t.child=n}function tl(e,t,n,r,a){var o=t.mode,i=e.child;e=i.sibling;var l={mode:"hidden",children:n};return 0==(2&o)&&t.child!==i?((n=t.child).childLanes=0,n.pendingProps=l,null!==(i=n.lastEffect)?(t.firstEffect=n.firstEffect,t.lastEffect=i,i.nextEffect=null):t.firstEffect=t.lastEffect=null):n=Hu(i,l),null!==e?r=Hu(e,r):(r=Wu(r,o,a,null)).flags|=2,r.return=t,n.return=t,n.sibling=r,t.child=n,r}function nl(e,t){e.lanes|=t;var n=e.alternate;null!==n&&(n.lanes|=t),ao(e.return,t)}function rl(e,t,n,r,a,o){var i=e.memoizedState;null===i?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:a,lastEffect:o}:(i.isBackwards=t,i.rendering=null,i.renderingStartTime=0,i.last=r,i.tail=n,i.tailMode=a,i.lastEffect=o)}function al(e,t,n){var r=t.pendingProps,a=r.revealOrder,o=r.tail;if(ji(e,t,r.children,n),0!=(2&(r=jo.current)))r=1&r|2,t.flags|=64;else{if(null!==e&&0!=(64&e.flags))e:for(e=t.child;null!==e;){if(13===e.tag)null!==e.memoizedState&&nl(e,n);else if(19===e.tag)nl(e,n);else if(null!==e.child){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;null===e.sibling;){if(null===e.return||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}r&=1}if(fa(jo,r),0==(2&t.mode))t.memoizedState=null;else switch(a){case"forwards":for(n=t.child,a=null;null!==n;)null!==(e=n.alternate)&&null===Bo(e)&&(a=n),n=n.sibling;null===(n=a)?(a=t.child,t.child=null):(a=n.sibling,n.sibling=null),rl(t,!1,a,n,o,t.lastEffect);break;case"backwards":for(n=null,a=t.child,t.child=null;null!==a;){if(null!==(e=a.alternate)&&null===Bo(e)){t.child=a;break}e=a.sibling,a.sibling=n,n=a,a=e}rl(t,!0,n,null,o,t.lastEffect);break;case"together":rl(t,!1,null,null,void 0,t.lastEffect);break;default:t.memoizedState=null}return t.child}function ol(e,t,n){if(null!==e&&(t.dependencies=e.dependencies),Ul|=t.lanes,0!=(n&t.childLanes)){if(null!==e&&t.child!==e.child)throw Error(i(153));if(null!==t.child){for(n=Hu(e=t.child,e.pendingProps),t.child=n,n.return=t;null!==e.sibling;)e=e.sibling,(n=n.sibling=Hu(e,e.pendingProps)).return=t;n.sibling=null}return t.child}return null}function il(e,t){if(!Zo)switch(e.tailMode){case"hidden":t=e.tail;for(var n=null;null!==t;)null!==t.alternate&&(n=t),t=t.sibling;null===n?e.tail=null:n.sibling=null;break;case"collapsed":n=e.tail;for(var r=null;null!==n;)null!==n.alternate&&(r=n),n=n.sibling;null===r?t||null===e.tail?e.tail=null:e.tail.sibling=null:r.sibling=null}}function ll(e,t,n){var r=t.pendingProps;switch(t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return null;case 1:case 17:return va(t.type)&&ba(),null;case 3:return Do(),ca(ma),ca(pa),Ko(),(r=t.stateNode).pendingContext&&(r.context=r.pendingContext,r.pendingContext=null),null!==e&&null!==e.child||(Vo(t)?t.flags|=4:r.hydrate||(t.flags|=256)),null;case 5:Fo(t);var o=No(Ro.current);if(n=t.type,null!==e&&null!=t.stateNode)Yi(e,t,n,r),e.ref!==t.ref&&(t.flags|=128);else{if(!r){if(null===t.stateNode)throw Error(i(166));return null}if(e=No(Lo.current),Vo(t)){r=t.stateNode,n=t.type;var l=t.memoizedProps;switch(r[Xr]=t,r[Jr]=l,n){case"dialog":Lr("cancel",r),Lr("close",r);break;case"iframe":case"object":case"embed":Lr("load",r);break;case"video":case"audio":for(e=0;e<Cr.length;e++)Lr(Cr[e],r);break;case"source":Lr("error",r);break;case"img":case"image":case"link":Lr("error",r),Lr("load",r);break;case"details":Lr("toggle",r);break;case"input":ee(r,l),Lr("invalid",r);break;case"select":r._wrapperState={wasMultiple:!!l.multiple},Lr("invalid",r);break;case"textarea":ue(r,l),Lr("invalid",r)}for(var s in xe(n,l),e=null,l)l.hasOwnProperty(s)&&(o=l[s],"children"===s?"string"==typeof o?r.textContent!==o&&(e=["children",o]):"number"==typeof o&&r.textContent!==""+o&&(e=["children",""+o]):u.hasOwnProperty(s)&&null!=o&&"onScroll"===s&&Lr("scroll",r));switch(n){case"input":K(r),re(r,l,!0);break;case"textarea":K(r),ce(r);break;case"select":case"option":break;default:"function"==typeof l.onClick&&(r.onclick=zr)}r=e,t.updateQueue=r,null!==r&&(t.flags|=4)}else{switch(s=9===o.nodeType?o:o.ownerDocument,e===fe&&(e=pe(n)),e===fe?"script"===n?((e=s.createElement("div")).innerHTML="<script><\/script>",e=e.removeChild(e.firstChild)):"string"==typeof r.is?e=s.createElement(n,{is:r.is}):(e=s.createElement(n),"select"===n&&(s=e,r.multiple?s.multiple=!0:r.size&&(s.size=r.size))):e=s.createElementNS(e,n),e[Xr]=t,e[Jr]=r,Wi(e,t),t.stateNode=e,s=_e(n,r),n){case"dialog":Lr("cancel",e),Lr("close",e),o=r;break;case"iframe":case"object":case"embed":Lr("load",e),o=r;break;case"video":case"audio":for(o=0;o<Cr.length;o++)Lr(Cr[o],e);o=r;break;case"source":Lr("error",e),o=r;break;case"img":case"image":case"link":Lr("error",e),Lr("load",e),o=r;break;case"details":Lr("toggle",e),o=r;break;case"input":ee(e,r),o=J(e,r),Lr("invalid",e);break;case"option":o=oe(e,r);break;case"select":e._wrapperState={wasMultiple:!!r.multiple},o=a({},r,{value:void 0}),Lr("invalid",e);break;case"textarea":ue(e,r),o=le(e,r),Lr("invalid",e);break;default:o=r}xe(n,o);var c=o;for(l in c)if(c.hasOwnProperty(l)){var f=c[l];"style"===l?Ee(e,f):"dangerouslySetInnerHTML"===l?null!=(f=f?f.__html:void 0)&&ve(e,f):"children"===l?"string"==typeof f?("textarea"!==n||""!==f)&&be(e,f):"number"==typeof f&&be(e,""+f):"suppressContentEditableWarning"!==l&&"suppressHydrationWarning"!==l&&"autoFocus"!==l&&(u.hasOwnProperty(l)?null!=f&&"onScroll"===l&&Lr("scroll",e):null!=f&&w(e,l,f,s))}switch(n){case"input":K(e),re(e,r,!1);break;case"textarea":K(e),ce(e);break;case"option":null!=r.value&&e.setAttribute("value",""+W(r.value));break;case"select":e.multiple=!!r.multiple,null!=(l=r.value)?ie(e,!!r.multiple,l,!1):null!=r.defaultValue&&ie(e,!!r.multiple,r.defaultValue,!0);break;default:"function"==typeof o.onClick&&(e.onclick=zr)}$r(n,r)&&(t.flags|=4)}null!==t.ref&&(t.flags|=128)}return null;case 6:if(e&&null!=t.stateNode)Ki(0,t,e.memoizedProps,r);else{if("string"!=typeof r&&null===t.stateNode)throw Error(i(166));n=No(Ro.current),No(Lo.current),Vo(t)?(r=t.stateNode,n=t.memoizedProps,r[Xr]=t,r.nodeValue!==n&&(t.flags|=4)):((r=(9===n.nodeType?n:n.ownerDocument).createTextNode(r))[Xr]=t,t.stateNode=r)}return null;case 13:return ca(jo),r=t.memoizedState,0!=(64&t.flags)?(t.lanes=n,t):(r=null!==r,n=!1,null===e?void 0!==t.memoizedProps.fallback&&Vo(t):n=null!==e.memoizedState,r&&!n&&0!=(2&t.mode)&&(null===e&&!0!==t.memoizedProps.unstable_avoidThisFallback||0!=(1&jo.current)?0===jl&&(jl=3):(0!==jl&&3!==jl||(jl=4),null===Nl||0==(134217727&Ul)&&0==(134217727&Zl)||bu(Nl,Dl))),(r||n)&&(t.flags|=4),null);case 4:return Do(),null===e&&Rr(t.stateNode.containerInfo),null;case 10:return ro(t),null;case 19:if(ca(jo),null===(r=t.memoizedState))return null;if(l=0!=(64&t.flags),null===(s=r.rendering))if(l)il(r,!1);else{if(0!==jl||null!==e&&0!=(64&e.flags))for(e=t.child;null!==e;){if(null!==(s=Bo(e))){for(t.flags|=64,il(r,!1),null!==(l=s.updateQueue)&&(t.updateQueue=l,t.flags|=4),null===r.lastEffect&&(t.firstEffect=null),t.lastEffect=r.lastEffect,r=n,n=t.child;null!==n;)e=r,(l=n).flags&=2,l.nextEffect=null,l.firstEffect=null,l.lastEffect=null,null===(s=l.alternate)?(l.childLanes=0,l.lanes=e,l.child=null,l.memoizedProps=null,l.memoizedState=null,l.updateQueue=null,l.dependencies=null,l.stateNode=null):(l.childLanes=s.childLanes,l.lanes=s.lanes,l.child=s.child,l.memoizedProps=s.memoizedProps,l.memoizedState=s.memoizedState,l.updateQueue=s.updateQueue,l.type=s.type,e=s.dependencies,l.dependencies=null===e?null:{lanes:e.lanes,firstContext:e.firstContext}),n=n.sibling;return fa(jo,1&jo.current|2),t.child}e=e.sibling}null!==r.tail&&$a()>Hl&&(t.flags|=64,l=!0,il(r,!1),t.lanes=33554432)}else{if(!l)if(null!==(e=Bo(s))){if(t.flags|=64,l=!0,null!==(n=e.updateQueue)&&(t.updateQueue=n,t.flags|=4),il(r,!0),null===r.tail&&"hidden"===r.tailMode&&!s.alternate&&!Zo)return null!==(t=t.lastEffect=r.lastEffect)&&(t.nextEffect=null),null}else 2*$a()-r.renderingStartTime>Hl&&1073741824!==n&&(t.flags|=64,l=!0,il(r,!1),t.lanes=33554432);r.isBackwards?(s.sibling=t.child,t.child=s):(null!==(n=r.last)?n.sibling=s:t.child=s,r.last=s)}return null!==r.tail?(n=r.tail,r.rendering=n,r.tail=n.sibling,r.lastEffect=t.lastEffect,r.renderingStartTime=$a(),n.sibling=null,t=jo.current,fa(jo,l?1&t|2:1&t),n):null;case 23:case 24:return Su(),null!==e&&null!==e.memoizedState!=(null!==t.memoizedState)&&"unstable-defer-without-hiding"!==r.mode&&(t.flags|=4),null}throw Error(i(156,t.tag))}function ul(e){switch(e.tag){case 1:va(e.type)&&ba();var t=e.flags;return 4096&t?(e.flags=-4097&t|64,e):null;case 3:if(Do(),ca(ma),ca(pa),Ko(),0!=(64&(t=e.flags)))throw Error(i(285));return e.flags=-4097&t|64,e;case 5:return Fo(e),null;case 13:return ca(jo),4096&(t=e.flags)?(e.flags=-4097&t|64,e):null;case 19:return ca(jo),null;case 4:return Do(),null;case 10:return ro(e),null;case 23:case 24:return Su(),null;default:return null}}function sl(e,t){try{var n="",r=t;do{n+=H(r),r=r.return}while(r);var a=n}catch(o){a="\nError generating stack: "+o.message+"\n"+o.stack}return{value:e,source:t,stack:a}}function cl(e,t){try{console.error(t.value)}catch(n){setTimeout((function(){throw n}))}}Wi=function(e,t){for(var n=t.child;null!==n;){if(5===n.tag||6===n.tag)e.appendChild(n.stateNode);else if(4!==n.tag&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===t)break;for(;null===n.sibling;){if(null===n.return||n.return===t)return;n=n.return}n.sibling.return=n.return,n=n.sibling}},Yi=function(e,t,n,r){var o=e.memoizedProps;if(o!==r){e=t.stateNode,No(Lo.current);var i,l=null;switch(n){case"input":o=J(e,o),r=J(e,r),l=[];break;case"option":o=oe(e,o),r=oe(e,r),l=[];break;case"select":o=a({},o,{value:void 0}),r=a({},r,{value:void 0}),l=[];break;case"textarea":o=le(e,o),r=le(e,r),l=[];break;default:"function"!=typeof o.onClick&&"function"==typeof r.onClick&&(e.onclick=zr)}for(f in xe(n,r),n=null,o)if(!r.hasOwnProperty(f)&&o.hasOwnProperty(f)&&null!=o[f])if("style"===f){var s=o[f];for(i in s)s.hasOwnProperty(i)&&(n||(n={}),n[i]="")}else"dangerouslySetInnerHTML"!==f&&"children"!==f&&"suppressContentEditableWarning"!==f&&"suppressHydrationWarning"!==f&&"autoFocus"!==f&&(u.hasOwnProperty(f)?l||(l=[]):(l=l||[]).push(f,null));for(f in r){var c=r[f];if(s=null!=o?o[f]:void 0,r.hasOwnProperty(f)&&c!==s&&(null!=c||null!=s))if("style"===f)if(s){for(i in s)!s.hasOwnProperty(i)||c&&c.hasOwnProperty(i)||(n||(n={}),n[i]="");for(i in c)c.hasOwnProperty(i)&&s[i]!==c[i]&&(n||(n={}),n[i]=c[i])}else n||(l||(l=[]),l.push(f,n)),n=c;else"dangerouslySetInnerHTML"===f?(c=c?c.__html:void 0,s=s?s.__html:void 0,null!=c&&s!==c&&(l=l||[]).push(f,c)):"children"===f?"string"!=typeof c&&"number"!=typeof c||(l=l||[]).push(f,""+c):"suppressContentEditableWarning"!==f&&"suppressHydrationWarning"!==f&&(u.hasOwnProperty(f)?(null!=c&&"onScroll"===f&&Lr("scroll",e),l||s===c||(l=[])):"object"==typeof c&&null!==c&&c.$$typeof===D?c.toString():(l=l||[]).push(f,c))}n&&(l=l||[]).push("style",n);var f=l;(t.updateQueue=f)&&(t.flags|=4)}},Ki=function(e,t,n,r){n!==r&&(t.flags|=4)};var fl="function"==typeof WeakMap?WeakMap:Map;function dl(e,t,n){(n=co(-1,n)).tag=3,n.payload={element:null};var r=t.value;return n.callback=function(){Kl||(Kl=!0,Ql=r),cl(0,t)},n}function pl(e,t,n){(n=co(-1,n)).tag=3;var r=e.type.getDerivedStateFromError;if("function"==typeof r){var a=t.value;n.payload=function(){return cl(0,t),r(a)}}var o=e.stateNode;return null!==o&&"function"==typeof o.componentDidCatch&&(n.callback=function(){"function"!=typeof r&&(null===Xl?Xl=new Set([this]):Xl.add(this),cl(0,t));var e=t.stack;this.componentDidCatch(t.value,{componentStack:null!==e?e:""})}),n}var ml="function"==typeof WeakSet?WeakSet:Set;function hl(e){var t=e.ref;if(null!==t)if("function"==typeof t)try{t(null)}catch(n){zu(e,n)}else t.current=null}function gl(e,t){switch(t.tag){case 0:case 11:case 15:case 22:case 5:case 6:case 4:case 17:return;case 1:if(256&t.flags&&null!==e){var n=e.memoizedProps,r=e.memoizedState;t=(e=t.stateNode).getSnapshotBeforeUpdate(t.elementType===t.type?n:Qa(t.type,n),r),e.__reactInternalSnapshotBeforeUpdate=t}return;case 3:return void(256&t.flags&&Vr(t.stateNode.containerInfo))}throw Error(i(163))}function vl(e,t,n){switch(n.tag){case 0:case 11:case 15:case 22:if(null!==(t=null!==(t=n.updateQueue)?t.lastEffect:null)){e=t=t.next;do{if(3==(3&e.tag)){var r=e.create;e.destroy=r()}e=e.next}while(e!==t)}if(null!==(t=null!==(t=n.updateQueue)?t.lastEffect:null)){e=t=t.next;do{var a=e;r=a.next,0!=(4&(a=a.tag))&&0!=(1&a)&&(Fu(n,e),Mu(n,e)),e=r}while(e!==t)}return;case 1:return e=n.stateNode,4&n.flags&&(null===t?e.componentDidMount():(r=n.elementType===n.type?t.memoizedProps:Qa(n.type,t.memoizedProps),e.componentDidUpdate(r,t.memoizedState,e.__reactInternalSnapshotBeforeUpdate))),void(null!==(t=n.updateQueue)&&ho(n,t,e));case 3:if(null!==(t=n.updateQueue)){if(e=null,null!==n.child)switch(n.child.tag){case 5:case 1:e=n.child.stateNode}ho(n,t,e)}return;case 5:return e=n.stateNode,void(null===t&&4&n.flags&&$r(n.type,n.memoizedProps)&&e.focus());case 6:case 4:case 12:case 19:case 17:case 20:case 21:case 23:case 24:return;case 13:return void(null===n.memoizedState&&(n=n.alternate,null!==n&&(n=n.memoizedState,null!==n&&(n=n.dehydrated,null!==n&&Et(n)))))}throw Error(i(163))}function bl(e,t){for(var n=e;;){if(5===n.tag){var r=n.stateNode;if(t)"function"==typeof(r=r.style).setProperty?r.setProperty("display","none","important"):r.display="none";else{r=n.stateNode;var a=n.memoizedProps.style;a=null!=a&&a.hasOwnProperty("display")?a.display:null,r.style.display=ke("display",a)}}else if(6===n.tag)n.stateNode.nodeValue=t?"":n.memoizedProps;else if((23!==n.tag&&24!==n.tag||null===n.memoizedState||n===e)&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===e)break;for(;null===n.sibling;){if(null===n.return||n.return===e)return;n=n.return}n.sibling.return=n.return,n=n.sibling}}function yl(e,t){if(xa&&"function"==typeof xa.onCommitFiberUnmount)try{xa.onCommitFiberUnmount(Sa,t)}catch(o){}switch(t.tag){case 0:case 11:case 14:case 15:case 22:if(null!==(e=t.updateQueue)&&null!==(e=e.lastEffect)){var n=e=e.next;do{var r=n,a=r.destroy;if(r=r.tag,void 0!==a)if(0!=(4&r))Fu(t,n);else{r=t;try{a()}catch(o){zu(r,o)}}n=n.next}while(n!==e)}break;case 1:if(hl(t),"function"==typeof(e=t.stateNode).componentWillUnmount)try{e.props=t.memoizedProps,e.state=t.memoizedState,e.componentWillUnmount()}catch(o){zu(t,o)}break;case 5:hl(t);break;case 4:_l(e,t)}}function wl(e){e.alternate=null,e.child=null,e.dependencies=null,e.firstEffect=null,e.lastEffect=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.return=null,e.updateQueue=null}function kl(e){return 5===e.tag||3===e.tag||4===e.tag}function El(e){e:{for(var t=e.return;null!==t;){if(kl(t))break e;t=t.return}throw Error(i(160))}var n=t;switch(t=n.stateNode,n.tag){case 5:var r=!1;break;case 3:case 4:t=t.containerInfo,r=!0;break;default:throw Error(i(161))}16&n.flags&&(be(t,""),n.flags&=-17);e:t:for(n=e;;){for(;null===n.sibling;){if(null===n.return||kl(n.return)){n=null;break e}n=n.return}for(n.sibling.return=n.return,n=n.sibling;5!==n.tag&&6!==n.tag&&18!==n.tag;){if(2&n.flags)continue t;if(null===n.child||4===n.tag)continue t;n.child.return=n,n=n.child}if(!(2&n.flags)){n=n.stateNode;break e}}r?Sl(e,n,t):xl(e,n,t)}function Sl(e,t,n){var r=e.tag,a=5===r||6===r;if(a)e=a?e.stateNode:e.stateNode.instance,t?8===n.nodeType?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(8===n.nodeType?(t=n.parentNode).insertBefore(e,n):(t=n).appendChild(e),null!=(n=n._reactRootContainer)||null!==t.onclick||(t.onclick=zr));else if(4!==r&&null!==(e=e.child))for(Sl(e,t,n),e=e.sibling;null!==e;)Sl(e,t,n),e=e.sibling}function xl(e,t,n){var r=e.tag,a=5===r||6===r;if(a)e=a?e.stateNode:e.stateNode.instance,t?n.insertBefore(e,t):n.appendChild(e);else if(4!==r&&null!==(e=e.child))for(xl(e,t,n),e=e.sibling;null!==e;)xl(e,t,n),e=e.sibling}function _l(e,t){for(var n,r,a=t,o=!1;;){if(!o){o=a.return;e:for(;;){if(null===o)throw Error(i(160));switch(n=o.stateNode,o.tag){case 5:r=!1;break e;case 3:case 4:n=n.containerInfo,r=!0;break e}o=o.return}o=!0}if(5===a.tag||6===a.tag){e:for(var l=e,u=a,s=u;;)if(yl(l,s),null!==s.child&&4!==s.tag)s.child.return=s,s=s.child;else{if(s===u)break e;for(;null===s.sibling;){if(null===s.return||s.return===u)break e;s=s.return}s.sibling.return=s.return,s=s.sibling}r?(l=n,u=a.stateNode,8===l.nodeType?l.parentNode.removeChild(u):l.removeChild(u)):n.removeChild(a.stateNode)}else if(4===a.tag){if(null!==a.child){n=a.stateNode.containerInfo,r=!0,a.child.return=a,a=a.child;continue}}else if(yl(e,a),null!==a.child){a.child.return=a,a=a.child;continue}if(a===t)break;for(;null===a.sibling;){if(null===a.return||a.return===t)return;4===(a=a.return).tag&&(o=!1)}a.sibling.return=a.return,a=a.sibling}}function Cl(e,t){switch(t.tag){case 0:case 11:case 14:case 15:case 22:var n=t.updateQueue;if(null!==(n=null!==n?n.lastEffect:null)){var r=n=n.next;do{3==(3&r.tag)&&(e=r.destroy,r.destroy=void 0,void 0!==e&&e()),r=r.next}while(r!==n)}return;case 1:case 12:case 17:return;case 5:if(null!=(n=t.stateNode)){r=t.memoizedProps;var a=null!==e?e.memoizedProps:r;e=t.type;var o=t.updateQueue;if(t.updateQueue=null,null!==o){for(n[Jr]=r,"input"===e&&"radio"===r.type&&null!=r.name&&te(n,r),_e(e,a),t=_e(e,r),a=0;a<o.length;a+=2){var l=o[a],u=o[a+1];"style"===l?Ee(n,u):"dangerouslySetInnerHTML"===l?ve(n,u):"children"===l?be(n,u):w(n,l,u,t)}switch(e){case"input":ne(n,r);break;case"textarea":se(n,r);break;case"select":e=n._wrapperState.wasMultiple,n._wrapperState.wasMultiple=!!r.multiple,null!=(o=r.value)?ie(n,!!r.multiple,o,!1):e!==!!r.multiple&&(null!=r.defaultValue?ie(n,!!r.multiple,r.defaultValue,!0):ie(n,!!r.multiple,r.multiple?[]:"",!1))}}}return;case 6:if(null===t.stateNode)throw Error(i(162));return void(t.stateNode.nodeValue=t.memoizedProps);case 3:return void((n=t.stateNode).hydrate&&(n.hydrate=!1,Et(n.containerInfo)));case 13:return null!==t.memoizedState&&(Gl=$a(),bl(t.child,!0)),void Tl(t);case 19:return void Tl(t);case 23:case 24:return void bl(t,null!==t.memoizedState)}throw Error(i(163))}function Tl(e){var t=e.updateQueue;if(null!==t){e.updateQueue=null;var n=e.stateNode;null===n&&(n=e.stateNode=new ml),t.forEach((function(t){var r=Zu.bind(null,e,t);n.has(t)||(n.add(t),t.then(r,r))}))}}function Al(e,t){return null!==e&&(null===(e=e.memoizedState)||null!==e.dehydrated)&&(null!==(t=t.memoizedState)&&null===t.dehydrated)}var Ol=Math.ceil,Ll=k.ReactCurrentDispatcher,Pl=k.ReactCurrentOwner,Rl=0,Nl=null,Il=null,Dl=0,Ml=0,Fl=sa(0),jl=0,Bl=null,zl=0,Ul=0,Zl=0,$l=0,ql=null,Gl=0,Hl=1/0;function Vl(){Hl=$a()+500}var Wl,Yl=null,Kl=!1,Ql=null,Xl=null,Jl=!1,eu=null,tu=90,nu=[],ru=[],au=null,ou=0,iu=null,lu=-1,uu=0,su=0,cu=null,fu=!1;function du(){return 0!=(48&Rl)?$a():-1!==lu?lu:lu=$a()}function pu(e){if(0==(2&(e=e.mode)))return 1;if(0==(4&e))return 99===qa()?1:2;if(0===uu&&(uu=zl),0!==Ka.transition){0!==su&&(su=null!==ql?ql.pendingLanes:0),e=uu;var t=4186112&~su;return 0===(t&=-t)&&(0===(t=(e=4186112&~e)&-e)&&(t=8192)),t}return e=qa(),0!=(4&Rl)&&98===e?e=zt(12,uu):e=zt(e=function(e){switch(e){case 99:return 15;case 98:return 10;case 97:case 96:return 8;case 95:return 2;default:return 0}}(e),uu),e}function mu(e,t,n){if(50<ou)throw ou=0,iu=null,Error(i(185));if(null===(e=hu(e,t)))return null;$t(e,t,n),e===Nl&&(Zl|=t,4===jl&&bu(e,Dl));var r=qa();1===t?0!=(8&Rl)&&0==(48&Rl)?yu(e):(gu(e,n),0===Rl&&(Vl(),Wa())):(0==(4&Rl)||98!==r&&99!==r||(null===au?au=new Set([e]):au.add(e)),gu(e,n)),ql=e}function hu(e,t){e.lanes|=t;var n=e.alternate;for(null!==n&&(n.lanes|=t),n=e,e=e.return;null!==e;)e.childLanes|=t,null!==(n=e.alternate)&&(n.childLanes|=t),n=e,e=e.return;return 3===n.tag?n.stateNode:null}function gu(e,t){for(var n=e.callbackNode,r=e.suspendedLanes,a=e.pingedLanes,o=e.expirationTimes,l=e.pendingLanes;0<l;){var u=31-qt(l),s=1<<u,c=o[u];if(-1===c){if(0==(s&r)||0!=(s&a)){c=t,Ft(s);var f=Mt;o[u]=10<=f?c+250:6<=f?c+5e3:-1}}else c<=t&&(e.expiredLanes|=s);l&=~s}if(r=jt(e,e===Nl?Dl:0),t=Mt,0===r)null!==n&&(n!==Fa&&Ta(n),e.callbackNode=null,e.callbackPriority=0);else{if(null!==n){if(e.callbackPriority===t)return;n!==Fa&&Ta(n)}15===t?(n=yu.bind(null,e),null===Ba?(Ba=[n],za=Ca(Ra,Ya)):Ba.push(n),n=Fa):14===t?n=Va(99,yu.bind(null,e)):(n=function(e){switch(e){case 15:case 14:return 99;case 13:case 12:case 11:case 10:return 98;case 9:case 8:case 7:case 6:case 4:case 5:return 97;case 3:case 2:case 1:return 95;case 0:return 90;default:throw Error(i(358,e))}}(t),n=Va(n,vu.bind(null,e))),e.callbackPriority=t,e.callbackNode=n}}function vu(e){if(lu=-1,su=uu=0,0!=(48&Rl))throw Error(i(327));var t=e.callbackNode;if(Du()&&e.callbackNode!==t)return null;var n=jt(e,e===Nl?Dl:0);if(0===n)return null;var r=n,a=Rl;Rl|=16;var o=Cu();for(Nl===e&&Dl===r||(Vl(),xu(e,r));;)try{Ou();break}catch(u){_u(e,u)}if(no(),Ll.current=o,Rl=a,null!==Il?r=0:(Nl=null,Dl=0,r=jl),0!=(zl&Zl))xu(e,0);else if(0!==r){if(2===r&&(Rl|=64,e.hydrate&&(e.hydrate=!1,Vr(e.containerInfo)),0!==(n=Bt(e))&&(r=Tu(e,n))),1===r)throw t=Bl,xu(e,0),bu(e,n),gu(e,$a()),t;switch(e.finishedWork=e.current.alternate,e.finishedLanes=n,r){case 0:case 1:throw Error(i(345));case 2:case 5:Ru(e);break;case 3:if(bu(e,n),(62914560&n)===n&&10<(r=Gl+500-$a())){if(0!==jt(e,0))break;if(((a=e.suspendedLanes)&n)!==n){du(),e.pingedLanes|=e.suspendedLanes&a;break}e.timeoutHandle=Gr(Ru.bind(null,e),r);break}Ru(e);break;case 4:if(bu(e,n),(4186112&n)===n)break;for(r=e.eventTimes,a=-1;0<n;){var l=31-qt(n);o=1<<l,(l=r[l])>a&&(a=l),n&=~o}if(n=a,10<(n=(120>(n=$a()-n)?120:480>n?480:1080>n?1080:1920>n?1920:3e3>n?3e3:4320>n?4320:1960*Ol(n/1960))-n)){e.timeoutHandle=Gr(Ru.bind(null,e),n);break}Ru(e);break;default:throw Error(i(329))}}return gu(e,$a()),e.callbackNode===t?vu.bind(null,e):null}function bu(e,t){for(t&=~$l,t&=~Zl,e.suspendedLanes|=t,e.pingedLanes&=~t,e=e.expirationTimes;0<t;){var n=31-qt(t),r=1<<n;e[n]=-1,t&=~r}}function yu(e){if(0!=(48&Rl))throw Error(i(327));if(Du(),e===Nl&&0!=(e.expiredLanes&Dl)){var t=Dl,n=Tu(e,t);0!=(zl&Zl)&&(n=Tu(e,t=jt(e,t)))}else n=Tu(e,t=jt(e,0));if(0!==e.tag&&2===n&&(Rl|=64,e.hydrate&&(e.hydrate=!1,Vr(e.containerInfo)),0!==(t=Bt(e))&&(n=Tu(e,t))),1===n)throw n=Bl,xu(e,0),bu(e,t),gu(e,$a()),n;return e.finishedWork=e.current.alternate,e.finishedLanes=t,Ru(e),gu(e,$a()),null}function wu(e,t){var n=Rl;Rl|=1;try{return e(t)}finally{0===(Rl=n)&&(Vl(),Wa())}}function ku(e,t){var n=Rl;Rl&=-2,Rl|=8;try{return e(t)}finally{0===(Rl=n)&&(Vl(),Wa())}}function Eu(e,t){fa(Fl,Ml),Ml|=t,zl|=t}function Su(){Ml=Fl.current,ca(Fl)}function xu(e,t){e.finishedWork=null,e.finishedLanes=0;var n=e.timeoutHandle;if(-1!==n&&(e.timeoutHandle=-1,Hr(n)),null!==Il)for(n=Il.return;null!==n;){var r=n;switch(r.tag){case 1:null!=(r=r.type.childContextTypes)&&ba();break;case 3:Do(),ca(ma),ca(pa),Ko();break;case 5:Fo(r);break;case 4:Do();break;case 13:case 19:ca(jo);break;case 10:ro(r);break;case 23:case 24:Su()}n=n.return}Nl=e,Il=Hu(e.current,null),Dl=Ml=zl=t,jl=0,Bl=null,$l=Zl=Ul=0}function _u(e,t){for(;;){var n=Il;try{if(no(),Qo.current=Ri,ri){for(var r=ei.memoizedState;null!==r;){var a=r.queue;null!==a&&(a.pending=null),r=r.next}ri=!1}if(Jo=0,ni=ti=ei=null,ai=!1,Pl.current=null,null===n||null===n.return){jl=1,Bl=t,Il=null;break}e:{var o=e,i=n.return,l=n,u=t;if(t=Dl,l.flags|=2048,l.firstEffect=l.lastEffect=null,null!==u&&"object"==typeof u&&"function"==typeof u.then){var s=u;if(0==(2&l.mode)){var c=l.alternate;c?(l.updateQueue=c.updateQueue,l.memoizedState=c.memoizedState,l.lanes=c.lanes):(l.updateQueue=null,l.memoizedState=null)}var f=0!=(1&jo.current),d=i;do{var p;if(p=13===d.tag){var m=d.memoizedState;if(null!==m)p=null!==m.dehydrated;else{var h=d.memoizedProps;p=void 0!==h.fallback&&(!0!==h.unstable_avoidThisFallback||!f)}}if(p){var g=d.updateQueue;if(null===g){var v=new Set;v.add(s),d.updateQueue=v}else g.add(s);if(0==(2&d.mode)){if(d.flags|=64,l.flags|=16384,l.flags&=-2981,1===l.tag)if(null===l.alternate)l.tag=17;else{var b=co(-1,1);b.tag=2,fo(l,b)}l.lanes|=1;break e}u=void 0,l=t;var y=o.pingCache;if(null===y?(y=o.pingCache=new fl,u=new Set,y.set(s,u)):void 0===(u=y.get(s))&&(u=new Set,y.set(s,u)),!u.has(l)){u.add(l);var w=Uu.bind(null,o,s,l);s.then(w,w)}d.flags|=4096,d.lanes=t;break e}d=d.return}while(null!==d);u=Error((V(l.type)||"A React component")+" suspended while rendering, but no fallback UI was specified.\n\nAdd a <Suspense fallback=...> component higher in the tree to provide a loading indicator or placeholder to display.")}5!==jl&&(jl=2),u=sl(u,l),d=i;do{switch(d.tag){case 3:o=u,d.flags|=4096,t&=-t,d.lanes|=t,po(d,dl(0,o,t));break e;case 1:o=u;var k=d.type,E=d.stateNode;if(0==(64&d.flags)&&("function"==typeof k.getDerivedStateFromError||null!==E&&"function"==typeof E.componentDidCatch&&(null===Xl||!Xl.has(E)))){d.flags|=4096,t&=-t,d.lanes|=t,po(d,pl(d,o,t));break e}}d=d.return}while(null!==d)}Pu(n)}catch(S){t=S,Il===n&&null!==n&&(Il=n=n.return);continue}break}}function Cu(){var e=Ll.current;return Ll.current=Ri,null===e?Ri:e}function Tu(e,t){var n=Rl;Rl|=16;var r=Cu();for(Nl===e&&Dl===t||xu(e,t);;)try{Au();break}catch(a){_u(e,a)}if(no(),Rl=n,Ll.current=r,null!==Il)throw Error(i(261));return Nl=null,Dl=0,jl}function Au(){for(;null!==Il;)Lu(Il)}function Ou(){for(;null!==Il&&!Aa();)Lu(Il)}function Lu(e){var t=Wl(e.alternate,e,Ml);e.memoizedProps=e.pendingProps,null===t?Pu(e):Il=t,Pl.current=null}function Pu(e){var t=e;do{var n=t.alternate;if(e=t.return,0==(2048&t.flags)){if(null!==(n=ll(n,t,Ml)))return void(Il=n);if(24!==(n=t).tag&&23!==n.tag||null===n.memoizedState||0!=(1073741824&Ml)||0==(4&n.mode)){for(var r=0,a=n.child;null!==a;)r|=a.lanes|a.childLanes,a=a.sibling;n.childLanes=r}null!==e&&0==(2048&e.flags)&&(null===e.firstEffect&&(e.firstEffect=t.firstEffect),null!==t.lastEffect&&(null!==e.lastEffect&&(e.lastEffect.nextEffect=t.firstEffect),e.lastEffect=t.lastEffect),1<t.flags&&(null!==e.lastEffect?e.lastEffect.nextEffect=t:e.firstEffect=t,e.lastEffect=t))}else{if(null!==(n=ul(t)))return n.flags&=2047,void(Il=n);null!==e&&(e.firstEffect=e.lastEffect=null,e.flags|=2048)}if(null!==(t=t.sibling))return void(Il=t);Il=t=e}while(null!==t);0===jl&&(jl=5)}function Ru(e){var t=qa();return Ha(99,Nu.bind(null,e,t)),null}function Nu(e,t){do{Du()}while(null!==eu);if(0!=(48&Rl))throw Error(i(327));var n=e.finishedWork;if(null===n)return null;if(e.finishedWork=null,e.finishedLanes=0,n===e.current)throw Error(i(177));e.callbackNode=null;var r=n.lanes|n.childLanes,a=r,o=e.pendingLanes&~a;e.pendingLanes=a,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=a,e.mutableReadLanes&=a,e.entangledLanes&=a,a=e.entanglements;for(var l=e.eventTimes,u=e.expirationTimes;0<o;){var s=31-qt(o),c=1<<s;a[s]=0,l[s]=-1,u[s]=-1,o&=~c}if(null!==au&&0==(24&r)&&au.has(e)&&au.delete(e),e===Nl&&(Il=Nl=null,Dl=0),1<n.flags?null!==n.lastEffect?(n.lastEffect.nextEffect=n,r=n.firstEffect):r=n:r=n.firstEffect,null!==r){if(a=Rl,Rl|=32,Pl.current=null,Ur=Yt,vr(l=gr())){if("selectionStart"in l)u={start:l.selectionStart,end:l.selectionEnd};else e:if(u=(u=l.ownerDocument)&&u.defaultView||window,(c=u.getSelection&&u.getSelection())&&0!==c.rangeCount){u=c.anchorNode,o=c.anchorOffset,s=c.focusNode,c=c.focusOffset;try{u.nodeType,s.nodeType}catch(C){u=null;break e}var f=0,d=-1,p=-1,m=0,h=0,g=l,v=null;t:for(;;){for(var b;g!==u||0!==o&&3!==g.nodeType||(d=f+o),g!==s||0!==c&&3!==g.nodeType||(p=f+c),3===g.nodeType&&(f+=g.nodeValue.length),null!==(b=g.firstChild);)v=g,g=b;for(;;){if(g===l)break t;if(v===u&&++m===o&&(d=f),v===s&&++h===c&&(p=f),null!==(b=g.nextSibling))break;v=(g=v).parentNode}g=b}u=-1===d||-1===p?null:{start:d,end:p}}else u=null;u=u||{start:0,end:0}}else u=null;Zr={focusedElem:l,selectionRange:u},Yt=!1,cu=null,fu=!1,Yl=r;do{try{Iu()}catch(C){if(null===Yl)throw Error(i(330));zu(Yl,C),Yl=Yl.nextEffect}}while(null!==Yl);cu=null,Yl=r;do{try{for(l=e;null!==Yl;){var y=Yl.flags;if(16&y&&be(Yl.stateNode,""),128&y){var w=Yl.alternate;if(null!==w){var k=w.ref;null!==k&&("function"==typeof k?k(null):k.current=null)}}switch(1038&y){case 2:El(Yl),Yl.flags&=-3;break;case 6:El(Yl),Yl.flags&=-3,Cl(Yl.alternate,Yl);break;case 1024:Yl.flags&=-1025;break;case 1028:Yl.flags&=-1025,Cl(Yl.alternate,Yl);break;case 4:Cl(Yl.alternate,Yl);break;case 8:_l(l,u=Yl);var E=u.alternate;wl(u),null!==E&&wl(E)}Yl=Yl.nextEffect}}catch(C){if(null===Yl)throw Error(i(330));zu(Yl,C),Yl=Yl.nextEffect}}while(null!==Yl);if(k=Zr,w=gr(),y=k.focusedElem,l=k.selectionRange,w!==y&&y&&y.ownerDocument&&hr(y.ownerDocument.documentElement,y)){null!==l&&vr(y)&&(w=l.start,void 0===(k=l.end)&&(k=w),"selectionStart"in y?(y.selectionStart=w,y.selectionEnd=Math.min(k,y.value.length)):(k=(w=y.ownerDocument||document)&&w.defaultView||window).getSelection&&(k=k.getSelection(),u=y.textContent.length,E=Math.min(l.start,u),l=void 0===l.end?E:Math.min(l.end,u),!k.extend&&E>l&&(u=l,l=E,E=u),u=mr(y,E),o=mr(y,l),u&&o&&(1!==k.rangeCount||k.anchorNode!==u.node||k.anchorOffset!==u.offset||k.focusNode!==o.node||k.focusOffset!==o.offset)&&((w=w.createRange()).setStart(u.node,u.offset),k.removeAllRanges(),E>l?(k.addRange(w),k.extend(o.node,o.offset)):(w.setEnd(o.node,o.offset),k.addRange(w))))),w=[];for(k=y;k=k.parentNode;)1===k.nodeType&&w.push({element:k,left:k.scrollLeft,top:k.scrollTop});for("function"==typeof y.focus&&y.focus(),y=0;y<w.length;y++)(k=w[y]).element.scrollLeft=k.left,k.element.scrollTop=k.top}Yt=!!Ur,Zr=Ur=null,e.current=n,Yl=r;do{try{for(y=e;null!==Yl;){var S=Yl.flags;if(36&S&&vl(y,Yl.alternate,Yl),128&S){w=void 0;var x=Yl.ref;if(null!==x){var _=Yl.stateNode;Yl.tag,w=_,"function"==typeof x?x(w):x.current=w}}Yl=Yl.nextEffect}}catch(C){if(null===Yl)throw Error(i(330));zu(Yl,C),Yl=Yl.nextEffect}}while(null!==Yl);Yl=null,ja(),Rl=a}else e.current=n;if(Jl)Jl=!1,eu=e,tu=t;else for(Yl=r;null!==Yl;)t=Yl.nextEffect,Yl.nextEffect=null,8&Yl.flags&&((S=Yl).sibling=null,S.stateNode=null),Yl=t;if(0===(r=e.pendingLanes)&&(Xl=null),1===r?e===iu?ou++:(ou=0,iu=e):ou=0,n=n.stateNode,xa&&"function"==typeof xa.onCommitFiberRoot)try{xa.onCommitFiberRoot(Sa,n,void 0,64==(64&n.current.flags))}catch(C){}if(gu(e,$a()),Kl)throw Kl=!1,e=Ql,Ql=null,e;return 0!=(8&Rl)||Wa(),null}function Iu(){for(;null!==Yl;){var e=Yl.alternate;fu||null===cu||(0!=(8&Yl.flags)?et(Yl,cu)&&(fu=!0):13===Yl.tag&&Al(e,Yl)&&et(Yl,cu)&&(fu=!0));var t=Yl.flags;0!=(256&t)&&gl(e,Yl),0==(512&t)||Jl||(Jl=!0,Va(97,(function(){return Du(),null}))),Yl=Yl.nextEffect}}function Du(){if(90!==tu){var e=97<tu?97:tu;return tu=90,Ha(e,ju)}return!1}function Mu(e,t){nu.push(t,e),Jl||(Jl=!0,Va(97,(function(){return Du(),null})))}function Fu(e,t){ru.push(t,e),Jl||(Jl=!0,Va(97,(function(){return Du(),null})))}function ju(){if(null===eu)return!1;var e=eu;if(eu=null,0!=(48&Rl))throw Error(i(331));var t=Rl;Rl|=32;var n=ru;ru=[];for(var r=0;r<n.length;r+=2){var a=n[r],o=n[r+1],l=a.destroy;if(a.destroy=void 0,"function"==typeof l)try{l()}catch(s){if(null===o)throw Error(i(330));zu(o,s)}}for(n=nu,nu=[],r=0;r<n.length;r+=2){a=n[r],o=n[r+1];try{var u=a.create;a.destroy=u()}catch(s){if(null===o)throw Error(i(330));zu(o,s)}}for(u=e.current.firstEffect;null!==u;)e=u.nextEffect,u.nextEffect=null,8&u.flags&&(u.sibling=null,u.stateNode=null),u=e;return Rl=t,Wa(),!0}function Bu(e,t,n){fo(e,t=dl(0,t=sl(n,t),1)),t=du(),null!==(e=hu(e,1))&&($t(e,1,t),gu(e,t))}function zu(e,t){if(3===e.tag)Bu(e,e,t);else for(var n=e.return;null!==n;){if(3===n.tag){Bu(n,e,t);break}if(1===n.tag){var r=n.stateNode;if("function"==typeof n.type.getDerivedStateFromError||"function"==typeof r.componentDidCatch&&(null===Xl||!Xl.has(r))){var a=pl(n,e=sl(t,e),1);if(fo(n,a),a=du(),null!==(n=hu(n,1)))$t(n,1,a),gu(n,a);else if("function"==typeof r.componentDidCatch&&(null===Xl||!Xl.has(r)))try{r.componentDidCatch(t,e)}catch(o){}break}}n=n.return}}function Uu(e,t,n){var r=e.pingCache;null!==r&&r.delete(t),t=du(),e.pingedLanes|=e.suspendedLanes&n,Nl===e&&(Dl&n)===n&&(4===jl||3===jl&&(62914560&Dl)===Dl&&500>$a()-Gl?xu(e,0):$l|=n),gu(e,t)}function Zu(e,t){var n=e.stateNode;null!==n&&n.delete(t),0===(t=0)&&(0==(2&(t=e.mode))?t=1:0==(4&t)?t=99===qa()?1:2:(0===uu&&(uu=zl),0===(t=Ut(62914560&~uu))&&(t=4194304))),n=du(),null!==(e=hu(e,t))&&($t(e,t,n),gu(e,n))}function $u(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.flags=0,this.lastEffect=this.firstEffect=this.nextEffect=null,this.childLanes=this.lanes=0,this.alternate=null}function qu(e,t,n,r){return new $u(e,t,n,r)}function Gu(e){return!(!(e=e.prototype)||!e.isReactComponent)}function Hu(e,t){var n=e.alternate;return null===n?((n=qu(e.tag,t,e.key,e.mode)).elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.nextEffect=null,n.firstEffect=null,n.lastEffect=null),n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=null===t?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Vu(e,t,n,r,a,o){var l=2;if(r=e,"function"==typeof e)Gu(e)&&(l=1);else if("string"==typeof e)l=5;else e:switch(e){case x:return Wu(n.children,a,o,t);case M:l=8,a|=16;break;case _:l=8,a|=1;break;case C:return(e=qu(12,n,t,8|a)).elementType=C,e.type=C,e.lanes=o,e;case L:return(e=qu(13,n,t,a)).type=L,e.elementType=L,e.lanes=o,e;case P:return(e=qu(19,n,t,a)).elementType=P,e.lanes=o,e;case F:return Yu(n,a,o,t);case j:return(e=qu(24,n,t,a)).elementType=j,e.lanes=o,e;default:if("object"==typeof e&&null!==e)switch(e.$$typeof){case T:l=10;break e;case A:l=9;break e;case O:l=11;break e;case R:l=14;break e;case N:l=16,r=null;break e;case I:l=22;break e}throw Error(i(130,null==e?e:typeof e,""))}return(t=qu(l,n,t,a)).elementType=e,t.type=r,t.lanes=o,t}function Wu(e,t,n,r){return(e=qu(7,e,r,t)).lanes=n,e}function Yu(e,t,n,r){return(e=qu(23,e,r,t)).elementType=F,e.lanes=n,e}function Ku(e,t,n){return(e=qu(6,e,null,t)).lanes=n,e}function Qu(e,t,n){return(t=qu(4,null!==e.children?e.children:[],e.key,t)).lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function Xu(e,t,n){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.pendingContext=this.context=null,this.hydrate=n,this.callbackNode=null,this.callbackPriority=0,this.eventTimes=Zt(0),this.expirationTimes=Zt(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Zt(0),this.mutableSourceEagerHydrationData=null}function Ju(e,t,n){var r=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:S,key:null==r?null:""+r,children:e,containerInfo:t,implementation:n}}function es(e,t,n,r){var a=t.current,o=du(),l=pu(a);e:if(n){t:{if(Ke(n=n._reactInternals)!==n||1!==n.tag)throw Error(i(170));var u=n;do{switch(u.tag){case 3:u=u.stateNode.context;break t;case 1:if(va(u.type)){u=u.stateNode.__reactInternalMemoizedMergedChildContext;break t}}u=u.return}while(null!==u);throw Error(i(171))}if(1===n.tag){var s=n.type;if(va(s)){n=wa(n,s,u);break e}}n=u}else n=da;return null===t.context?t.context=n:t.pendingContext=n,(t=co(o,l)).payload={element:e},null!==(r=void 0===r?null:r)&&(t.callback=r),fo(a,t),mu(a,l,o),l}function ts(e){return(e=e.current).child?(e.child.tag,e.child.stateNode):null}function ns(e,t){if(null!==(e=e.memoizedState)&&null!==e.dehydrated){var n=e.retryLane;e.retryLane=0!==n&&n<t?n:t}}function rs(e,t){ns(e,t),(e=e.alternate)&&ns(e,t)}function as(e,t,n){var r=null!=n&&null!=n.hydrationOptions&&n.hydrationOptions.mutableSources||null;if(n=new Xu(e,t,null!=n&&!0===n.hydrate),t=qu(3,null,null,2===t?7:1===t?3:0),n.current=t,t.stateNode=n,uo(t),e[ea]=n.current,Rr(8===e.nodeType?e.parentNode:e),r)for(e=0;e<r.length;e++){var a=(t=r[e])._getVersion;a=a(t._source),null==n.mutableSourceEagerHydrationData?n.mutableSourceEagerHydrationData=[t,a]:n.mutableSourceEagerHydrationData.push(t,a)}this._internalRoot=n}function os(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType&&(8!==e.nodeType||" react-mount-point-unstable "!==e.nodeValue))}function is(e,t,n,r,a){var o=n._reactRootContainer;if(o){var i=o._internalRoot;if("function"==typeof a){var l=a;a=function(){var e=ts(i);l.call(e)}}es(t,i,e,a)}else{if(o=n._reactRootContainer=function(e,t){if(t||(t=!(!(t=e?9===e.nodeType?e.documentElement:e.firstChild:null)||1!==t.nodeType||!t.hasAttribute("data-reactroot"))),!t)for(var n;n=e.lastChild;)e.removeChild(n);return new as(e,0,t?{hydrate:!0}:void 0)}(n,r),i=o._internalRoot,"function"==typeof a){var u=a;a=function(){var e=ts(i);u.call(e)}}ku((function(){es(t,i,e,a)}))}return ts(i)}function ls(e,t){var n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!os(t))throw Error(i(200));return Ju(e,t,null,n)}Wl=function(e,t,n){var r=t.lanes;if(null!==e)if(e.memoizedProps!==t.pendingProps||ma.current)Fi=!0;else{if(0==(n&r)){switch(Fi=!1,t.tag){case 3:Vi(t),Wo();break;case 5:Mo(t);break;case 1:va(t.type)&&ka(t);break;case 4:Io(t,t.stateNode.containerInfo);break;case 10:r=t.memoizedProps.value;var a=t.type._context;fa(Xa,a._currentValue),a._currentValue=r;break;case 13:if(null!==t.memoizedState)return 0!=(n&t.child.childLanes)?Xi(e,t,n):(fa(jo,1&jo.current),null!==(t=ol(e,t,n))?t.sibling:null);fa(jo,1&jo.current);break;case 19:if(r=0!=(n&t.childLanes),0!=(64&e.flags)){if(r)return al(e,t,n);t.flags|=64}if(null!==(a=t.memoizedState)&&(a.rendering=null,a.tail=null,a.lastEffect=null),fa(jo,jo.current),r)break;return null;case 23:case 24:return t.lanes=0,Zi(e,t,n)}return ol(e,t,n)}Fi=0!=(16384&e.flags)}else Fi=!1;switch(t.lanes=0,t.tag){case 2:if(r=t.type,null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),e=t.pendingProps,a=ga(t,pa.current),oo(t,n),a=li(null,t,r,e,a,n),t.flags|=1,"object"==typeof a&&null!==a&&"function"==typeof a.render&&void 0===a.$$typeof){if(t.tag=1,t.memoizedState=null,t.updateQueue=null,va(r)){var o=!0;ka(t)}else o=!1;t.memoizedState=null!==a.state&&void 0!==a.state?a.state:null,uo(t);var l=r.getDerivedStateFromProps;"function"==typeof l&&vo(t,r,l,e),a.updater=bo,t.stateNode=a,a._reactInternals=t,Eo(t,r,e,n),t=Hi(null,t,r,!0,o,n)}else t.tag=0,ji(null,t,a,n),t=t.child;return t;case 16:a=t.elementType;e:{switch(null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),e=t.pendingProps,a=(o=a._init)(a._payload),t.type=a,o=t.tag=function(e){if("function"==typeof e)return Gu(e)?1:0;if(null!=e){if((e=e.$$typeof)===O)return 11;if(e===R)return 14}return 2}(a),e=Qa(a,e),o){case 0:t=qi(null,t,a,e,n);break e;case 1:t=Gi(null,t,a,e,n);break e;case 11:t=Bi(null,t,a,e,n);break e;case 14:t=zi(null,t,a,Qa(a.type,e),r,n);break e}throw Error(i(306,a,""))}return t;case 0:return r=t.type,a=t.pendingProps,qi(e,t,r,a=t.elementType===r?a:Qa(r,a),n);case 1:return r=t.type,a=t.pendingProps,Gi(e,t,r,a=t.elementType===r?a:Qa(r,a),n);case 3:if(Vi(t),r=t.updateQueue,null===e||null===r)throw Error(i(282));if(r=t.pendingProps,a=null!==(a=t.memoizedState)?a.element:null,so(e,t),mo(t,r,null,n),(r=t.memoizedState.element)===a)Wo(),t=ol(e,t,n);else{if((o=(a=t.stateNode).hydrate)&&(Uo=Wr(t.stateNode.containerInfo.firstChild),zo=t,o=Zo=!0),o){if(null!=(e=a.mutableSourceEagerHydrationData))for(a=0;a<e.length;a+=2)(o=e[a])._workInProgressVersionPrimary=e[a+1],Yo.push(o);for(n=Ao(t,null,r,n),t.child=n;n;)n.flags=-3&n.flags|1024,n=n.sibling}else ji(e,t,r,n),Wo();t=t.child}return t;case 5:return Mo(t),null===e&&Go(t),r=t.type,a=t.pendingProps,o=null!==e?e.memoizedProps:null,l=a.children,qr(r,a)?l=null:null!==o&&qr(r,o)&&(t.flags|=16),$i(e,t),ji(e,t,l,n),t.child;case 6:return null===e&&Go(t),null;case 13:return Xi(e,t,n);case 4:return Io(t,t.stateNode.containerInfo),r=t.pendingProps,null===e?t.child=To(t,null,r,n):ji(e,t,r,n),t.child;case 11:return r=t.type,a=t.pendingProps,Bi(e,t,r,a=t.elementType===r?a:Qa(r,a),n);case 7:return ji(e,t,t.pendingProps,n),t.child;case 8:case 12:return ji(e,t,t.pendingProps.children,n),t.child;case 10:e:{r=t.type._context,a=t.pendingProps,l=t.memoizedProps,o=a.value;var u=t.type._context;if(fa(Xa,u._currentValue),u._currentValue=o,null!==l)if(u=l.value,0===(o=cr(u,o)?0:0|("function"==typeof r._calculateChangedBits?r._calculateChangedBits(u,o):1073741823))){if(l.children===a.children&&!ma.current){t=ol(e,t,n);break e}}else for(null!==(u=t.child)&&(u.return=t);null!==u;){var s=u.dependencies;if(null!==s){l=u.child;for(var c=s.firstContext;null!==c;){if(c.context===r&&0!=(c.observedBits&o)){1===u.tag&&((c=co(-1,n&-n)).tag=2,fo(u,c)),u.lanes|=n,null!==(c=u.alternate)&&(c.lanes|=n),ao(u.return,n),s.lanes|=n;break}c=c.next}}else l=10===u.tag&&u.type===t.type?null:u.child;if(null!==l)l.return=u;else for(l=u;null!==l;){if(l===t){l=null;break}if(null!==(u=l.sibling)){u.return=l.return,l=u;break}l=l.return}u=l}ji(e,t,a.children,n),t=t.child}return t;case 9:return a=t.type,r=(o=t.pendingProps).children,oo(t,n),r=r(a=io(a,o.unstable_observedBits)),t.flags|=1,ji(e,t,r,n),t.child;case 14:return o=Qa(a=t.type,t.pendingProps),zi(e,t,a,o=Qa(a.type,o),r,n);case 15:return Ui(e,t,t.type,t.pendingProps,r,n);case 17:return r=t.type,a=t.pendingProps,a=t.elementType===r?a:Qa(r,a),null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),t.tag=1,va(r)?(e=!0,ka(t)):e=!1,oo(t,n),wo(t,r,a),Eo(t,r,a,n),Hi(null,t,r,!0,e,n);case 19:return al(e,t,n);case 23:case 24:return Zi(e,t,n)}throw Error(i(156,t.tag))},as.prototype.render=function(e){es(e,this._internalRoot,null,null)},as.prototype.unmount=function(){var e=this._internalRoot,t=e.containerInfo;es(null,e,null,(function(){t[ea]=null}))},tt=function(e){13===e.tag&&(mu(e,4,du()),rs(e,4))},nt=function(e){13===e.tag&&(mu(e,67108864,du()),rs(e,67108864))},rt=function(e){if(13===e.tag){var t=du(),n=pu(e);mu(e,n,t),rs(e,n)}},at=function(e,t){return t()},Te=function(e,t,n){switch(t){case"input":if(ne(e,n),t=n.name,"radio"===n.type&&null!=t){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll("input[name="+JSON.stringify(""+t)+'][type="radio"]'),t=0;t<n.length;t++){var r=n[t];if(r!==e&&r.form===e.form){var a=oa(r);if(!a)throw Error(i(90));Q(r),ne(r,a)}}}break;case"textarea":se(e,n);break;case"select":null!=(t=n.value)&&ie(e,!!n.multiple,t,!1)}},Ne=wu,Ie=function(e,t,n,r,a){var o=Rl;Rl|=4;try{return Ha(98,e.bind(null,t,n,r,a))}finally{0===(Rl=o)&&(Vl(),Wa())}},De=function(){0==(49&Rl)&&(function(){if(null!==au){var e=au;au=null,e.forEach((function(e){e.expiredLanes|=24&e.pendingLanes,gu(e,$a())}))}Wa()}(),Du())},Me=function(e,t){var n=Rl;Rl|=2;try{return e(t)}finally{0===(Rl=n)&&(Vl(),Wa())}};var us={Events:[ra,aa,oa,Pe,Re,Du,{current:!1}]},ss={findFiberByHostInstance:na,bundleType:0,version:"17.0.2",rendererPackageName:"react-dom"},cs={bundleType:ss.bundleType,version:ss.version,rendererPackageName:ss.rendererPackageName,rendererConfig:ss.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:k.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return null===(e=Je(e))?null:e.stateNode},findFiberByHostInstance:ss.findFiberByHostInstance||function(){return null},findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null};if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var fs=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!fs.isDisabled&&fs.supportsFiber)try{Sa=fs.inject(cs),xa=fs}catch(ge){}}t.hydrate=function(e,t,n){if(!os(t))throw Error(i(200));return is(null,e,t,!0,n)}},3935:function(e,t,n){"use strict";!function e(){if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}(),e.exports=n(4448)},9590:function(e){var t="undefined"!=typeof Element,n="function"==typeof Map,r="function"==typeof Set,a="function"==typeof ArrayBuffer&&!!ArrayBuffer.isView;function o(e,i){if(e===i)return!0;if(e&&i&&"object"==typeof e&&"object"==typeof i){if(e.constructor!==i.constructor)return!1;var l,u,s,c;if(Array.isArray(e)){if((l=e.length)!=i.length)return!1;for(u=l;0!=u--;)if(!o(e[u],i[u]))return!1;return!0}if(n&&e instanceof Map&&i instanceof Map){if(e.size!==i.size)return!1;for(c=e.entries();!(u=c.next()).done;)if(!i.has(u.value[0]))return!1;for(c=e.entries();!(u=c.next()).done;)if(!o(u.value[1],i.get(u.value[0])))return!1;return!0}if(r&&e instanceof Set&&i instanceof Set){if(e.size!==i.size)return!1;for(c=e.entries();!(u=c.next()).done;)if(!i.has(u.value[0]))return!1;return!0}if(a&&ArrayBuffer.isView(e)&&ArrayBuffer.isView(i)){if((l=e.length)!=i.length)return!1;for(u=l;0!=u--;)if(e[u]!==i[u])return!1;return!0}if(e.constructor===RegExp)return e.source===i.source&&e.flags===i.flags;if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===i.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===i.toString();if((l=(s=Object.keys(e)).length)!==Object.keys(i).length)return!1;for(u=l;0!=u--;)if(!Object.prototype.hasOwnProperty.call(i,s[u]))return!1;if(t&&e instanceof Element)return!1;for(u=l;0!=u--;)if(("_owner"!==s[u]&&"__v"!==s[u]&&"__o"!==s[u]||!e.$$typeof)&&!o(e[s[u]],i[s[u]]))return!1;return!0}return e!=e&&i!=i}e.exports=function(e,t){try{return o(e,t)}catch(n){if((n.message||"").match(/stack|recursion/i))return console.warn("react-fast-compare cannot handle circular refs"),!1;throw n}}},405:function(e,t,n){"use strict";n.d(t,{B6:function(){return G},ql:function(){return J}});var r=n(7294),a=n(5697),o=n.n(a),i=n(9590),l=n.n(i),u=n(1143),s=n.n(u),c=n(6774),f=n.n(c);function d(){return d=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},d.apply(this,arguments)}function p(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,m(e,t)}function m(e,t){return m=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},m(e,t)}function h(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)t.indexOf(n=o[r])>=0||(a[n]=e[n]);return a}var g={BASE:"base",BODY:"body",HEAD:"head",HTML:"html",LINK:"link",META:"meta",NOSCRIPT:"noscript",SCRIPT:"script",STYLE:"style",TITLE:"title",FRAGMENT:"Symbol(react.fragment)"},v={rel:["amphtml","canonical","alternate"]},b={type:["application/ld+json"]},y={charset:"",name:["robots","description"],property:["og:type","og:title","og:url","og:image","og:image:alt","og:description","twitter:url","twitter:title","twitter:description","twitter:image","twitter:image:alt","twitter:card","twitter:site"]},w=Object.keys(g).map((function(e){return g[e]})),k={accesskey:"accessKey",charset:"charSet",class:"className",contenteditable:"contentEditable",contextmenu:"contextMenu","http-equiv":"httpEquiv",itemprop:"itemProp",tabindex:"tabIndex"},E=Object.keys(k).reduce((function(e,t){return e[k[t]]=t,e}),{}),S=function(e,t){for(var n=e.length-1;n>=0;n-=1){var r=e[n];if(Object.prototype.hasOwnProperty.call(r,t))return r[t]}return null},x=function(e){var t=S(e,g.TITLE),n=S(e,"titleTemplate");if(Array.isArray(t)&&(t=t.join("")),n&&t)return n.replace(/%s/g,(function(){return t}));var r=S(e,"defaultTitle");return t||r||void 0},_=function(e){return S(e,"onChangeClientState")||function(){}},C=function(e,t){return t.filter((function(t){return void 0!==t[e]})).map((function(t){return t[e]})).reduce((function(e,t){return d({},e,t)}),{})},T=function(e,t){return t.filter((function(e){return void 0!==e[g.BASE]})).map((function(e){return e[g.BASE]})).reverse().reduce((function(t,n){if(!t.length)for(var r=Object.keys(n),a=0;a<r.length;a+=1){var o=r[a].toLowerCase();if(-1!==e.indexOf(o)&&n[o])return t.concat(n)}return t}),[])},A=function(e,t,n){var r={};return n.filter((function(t){return!!Array.isArray(t[e])||(void 0!==t[e]&&console&&"function"==typeof console.warn&&console.warn("Helmet: "+e+' should be of type "Array". Instead found type "'+typeof t[e]+'"'),!1)})).map((function(t){return t[e]})).reverse().reduce((function(e,n){var a={};n.filter((function(e){for(var n,o=Object.keys(e),i=0;i<o.length;i+=1){var l=o[i],u=l.toLowerCase();-1===t.indexOf(u)||"rel"===n&&"canonical"===e[n].toLowerCase()||"rel"===u&&"stylesheet"===e[u].toLowerCase()||(n=u),-1===t.indexOf(l)||"innerHTML"!==l&&"cssText"!==l&&"itemprop"!==l||(n=l)}if(!n||!e[n])return!1;var s=e[n].toLowerCase();return r[n]||(r[n]={}),a[n]||(a[n]={}),!r[n][s]&&(a[n][s]=!0,!0)})).reverse().forEach((function(t){return e.push(t)}));for(var o=Object.keys(a),i=0;i<o.length;i+=1){var l=o[i],u=d({},r[l],a[l]);r[l]=u}return e}),[]).reverse()},O=function(e,t){if(Array.isArray(e)&&e.length)for(var n=0;n<e.length;n+=1)if(e[n][t])return!0;return!1},L=function(e){return Array.isArray(e)?e.join(""):e},P=function(e,t){return Array.isArray(e)?e.reduce((function(e,n){return function(e,t){for(var n=Object.keys(e),r=0;r<n.length;r+=1)if(t[n[r]]&&t[n[r]].includes(e[n[r]]))return!0;return!1}(n,t)?e.priority.push(n):e.default.push(n),e}),{priority:[],default:[]}):{default:e}},R=function(e,t){var n;return d({},e,((n={})[t]=void 0,n))},N=[g.NOSCRIPT,g.SCRIPT,g.STYLE],I=function(e,t){return void 0===t&&(t=!0),!1===t?String(e):String(e).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#x27;")},D=function(e){return Object.keys(e).reduce((function(t,n){var r=void 0!==e[n]?n+'="'+e[n]+'"':""+n;return t?t+" "+r:r}),"")},M=function(e,t){return void 0===t&&(t={}),Object.keys(e).reduce((function(t,n){return t[k[n]||n]=e[n],t}),t)},F=function(e,t){return t.map((function(t,n){var a,o=((a={key:n})["data-rh"]=!0,a);return Object.keys(t).forEach((function(e){var n=k[e]||e;"innerHTML"===n||"cssText"===n?o.dangerouslySetInnerHTML={__html:t.innerHTML||t.cssText}:o[n]=t[e]})),r.createElement(e,o)}))},j=function(e,t,n){switch(e){case g.TITLE:return{toComponent:function(){return n=t.titleAttributes,(a={key:e=t.title})["data-rh"]=!0,o=M(n,a),[r.createElement(g.TITLE,o,e)];var e,n,a,o},toString:function(){return function(e,t,n,r){var a=D(n),o=L(t);return a?"<"+e+' data-rh="true" '+a+">"+I(o,r)+"</"+e+">":"<"+e+' data-rh="true">'+I(o,r)+"</"+e+">"}(e,t.title,t.titleAttributes,n)}};case"bodyAttributes":case"htmlAttributes":return{toComponent:function(){return M(t)},toString:function(){return D(t)}};default:return{toComponent:function(){return F(e,t)},toString:function(){return function(e,t,n){return t.reduce((function(t,r){var a=Object.keys(r).filter((function(e){return!("innerHTML"===e||"cssText"===e)})).reduce((function(e,t){var a=void 0===r[t]?t:t+'="'+I(r[t],n)+'"';return e?e+" "+a:a}),""),o=r.innerHTML||r.cssText||"",i=-1===N.indexOf(e);return t+"<"+e+' data-rh="true" '+a+(i?"/>":">"+o+"</"+e+">")}),"")}(e,t,n)}}}},B=function(e){var t=e.baseTag,n=e.bodyAttributes,r=e.encode,a=e.htmlAttributes,o=e.noscriptTags,i=e.styleTags,l=e.title,u=void 0===l?"":l,s=e.titleAttributes,c=e.linkTags,f=e.metaTags,d=e.scriptTags,p={toComponent:function(){},toString:function(){return""}};if(e.prioritizeSeoTags){var m=function(e){var t=e.linkTags,n=e.scriptTags,r=e.encode,a=P(e.metaTags,y),o=P(t,v),i=P(n,b);return{priorityMethods:{toComponent:function(){return[].concat(F(g.META,a.priority),F(g.LINK,o.priority),F(g.SCRIPT,i.priority))},toString:function(){return j(g.META,a.priority,r)+" "+j(g.LINK,o.priority,r)+" "+j(g.SCRIPT,i.priority,r)}},metaTags:a.default,linkTags:o.default,scriptTags:i.default}}(e);p=m.priorityMethods,c=m.linkTags,f=m.metaTags,d=m.scriptTags}return{priority:p,base:j(g.BASE,t,r),bodyAttributes:j("bodyAttributes",n,r),htmlAttributes:j("htmlAttributes",a,r),link:j(g.LINK,c,r),meta:j(g.META,f,r),noscript:j(g.NOSCRIPT,o,r),script:j(g.SCRIPT,d,r),style:j(g.STYLE,i,r),title:j(g.TITLE,{title:u,titleAttributes:s},r)}},z=[],U=function(e,t){var n=this;void 0===t&&(t="undefined"!=typeof document),this.instances=[],this.value={setHelmet:function(e){n.context.helmet=e},helmetInstances:{get:function(){return n.canUseDOM?z:n.instances},add:function(e){(n.canUseDOM?z:n.instances).push(e)},remove:function(e){var t=(n.canUseDOM?z:n.instances).indexOf(e);(n.canUseDOM?z:n.instances).splice(t,1)}}},this.context=e,this.canUseDOM=t,t||(e.helmet=B({baseTag:[],bodyAttributes:{},encodeSpecialCharacters:!0,htmlAttributes:{},linkTags:[],metaTags:[],noscriptTags:[],scriptTags:[],styleTags:[],title:"",titleAttributes:{}}))},Z=r.createContext({}),$=o().shape({setHelmet:o().func,helmetInstances:o().shape({get:o().func,add:o().func,remove:o().func})}),q="undefined"!=typeof document,G=function(e){function t(n){var r;return(r=e.call(this,n)||this).helmetData=new U(r.props.context,t.canUseDOM),r}return p(t,e),t.prototype.render=function(){return r.createElement(Z.Provider,{value:this.helmetData.value},this.props.children)},t}(r.Component);G.canUseDOM=q,G.propTypes={context:o().shape({helmet:o().shape()}),children:o().node.isRequired},G.defaultProps={context:{}},G.displayName="HelmetProvider";var H=function(e,t){var n,r=document.head||document.querySelector(g.HEAD),a=r.querySelectorAll(e+"[data-rh]"),o=[].slice.call(a),i=[];return t&&t.length&&t.forEach((function(t){var r=document.createElement(e);for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&("innerHTML"===a?r.innerHTML=t.innerHTML:"cssText"===a?r.styleSheet?r.styleSheet.cssText=t.cssText:r.appendChild(document.createTextNode(t.cssText)):r.setAttribute(a,void 0===t[a]?"":t[a]));r.setAttribute("data-rh","true"),o.some((function(e,t){return n=t,r.isEqualNode(e)}))?o.splice(n,1):i.push(r)})),o.forEach((function(e){return e.parentNode.removeChild(e)})),i.forEach((function(e){return r.appendChild(e)})),{oldTags:o,newTags:i}},V=function(e,t){var n=document.getElementsByTagName(e)[0];if(n){for(var r=n.getAttribute("data-rh"),a=r?r.split(","):[],o=[].concat(a),i=Object.keys(t),l=0;l<i.length;l+=1){var u=i[l],s=t[u]||"";n.getAttribute(u)!==s&&n.setAttribute(u,s),-1===a.indexOf(u)&&a.push(u);var c=o.indexOf(u);-1!==c&&o.splice(c,1)}for(var f=o.length-1;f>=0;f-=1)n.removeAttribute(o[f]);a.length===o.length?n.removeAttribute("data-rh"):n.getAttribute("data-rh")!==i.join(",")&&n.setAttribute("data-rh",i.join(","))}},W=function(e,t){var n=e.baseTag,r=e.htmlAttributes,a=e.linkTags,o=e.metaTags,i=e.noscriptTags,l=e.onChangeClientState,u=e.scriptTags,s=e.styleTags,c=e.title,f=e.titleAttributes;V(g.BODY,e.bodyAttributes),V(g.HTML,r),function(e,t){void 0!==e&&document.title!==e&&(document.title=L(e)),V(g.TITLE,t)}(c,f);var d={baseTag:H(g.BASE,n),linkTags:H(g.LINK,a),metaTags:H(g.META,o),noscriptTags:H(g.NOSCRIPT,i),scriptTags:H(g.SCRIPT,u),styleTags:H(g.STYLE,s)},p={},m={};Object.keys(d).forEach((function(e){var t=d[e],n=t.newTags,r=t.oldTags;n.length&&(p[e]=n),r.length&&(m[e]=d[e].oldTags)})),t&&t(),l(e,p,m)},Y=null,K=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),a=0;a<n;a++)r[a]=arguments[a];return(t=e.call.apply(e,[this].concat(r))||this).rendered=!1,t}p(t,e);var n=t.prototype;return n.shouldComponentUpdate=function(e){return!f()(e,this.props)},n.componentDidUpdate=function(){this.emitChange()},n.componentWillUnmount=function(){this.props.context.helmetInstances.remove(this),this.emitChange()},n.emitChange=function(){var e,t,n=this.props.context,r=n.setHelmet,a=null,o=(e=n.helmetInstances.get().map((function(e){var t=d({},e.props);return delete t.context,t})),{baseTag:T(["href"],e),bodyAttributes:C("bodyAttributes",e),defer:S(e,"defer"),encode:S(e,"encodeSpecialCharacters"),htmlAttributes:C("htmlAttributes",e),linkTags:A(g.LINK,["rel","href"],e),metaTags:A(g.META,["name","charset","http-equiv","property","itemprop"],e),noscriptTags:A(g.NOSCRIPT,["innerHTML"],e),onChangeClientState:_(e),scriptTags:A(g.SCRIPT,["src","innerHTML"],e),styleTags:A(g.STYLE,["cssText"],e),title:x(e),titleAttributes:C("titleAttributes",e),prioritizeSeoTags:O(e,"prioritizeSeoTags")});G.canUseDOM?(t=o,Y&&cancelAnimationFrame(Y),t.defer?Y=requestAnimationFrame((function(){W(t,(function(){Y=null}))})):(W(t),Y=null)):B&&(a=B(o)),r(a)},n.init=function(){this.rendered||(this.rendered=!0,this.props.context.helmetInstances.add(this),this.emitChange())},n.render=function(){return this.init(),null},t}(r.Component);K.propTypes={context:$.isRequired},K.displayName="HelmetDispatcher";var Q=["children"],X=["children"],J=function(e){function t(){return e.apply(this,arguments)||this}p(t,e);var n=t.prototype;return n.shouldComponentUpdate=function(e){return!l()(R(this.props,"helmetData"),R(e,"helmetData"))},n.mapNestedChildrenToProps=function(e,t){if(!t)return null;switch(e.type){case g.SCRIPT:case g.NOSCRIPT:return{innerHTML:t};case g.STYLE:return{cssText:t};default:throw new Error("<"+e.type+" /> elements are self-closing and can not contain children. Refer to our API for more information.")}},n.flattenArrayTypeChildren=function(e){var t,n=e.child,r=e.arrayTypeChildren;return d({},r,((t={})[n.type]=[].concat(r[n.type]||[],[d({},e.newChildProps,this.mapNestedChildrenToProps(n,e.nestedChildren))]),t))},n.mapObjectTypeChildren=function(e){var t,n,r=e.child,a=e.newProps,o=e.newChildProps,i=e.nestedChildren;switch(r.type){case g.TITLE:return d({},a,((t={})[r.type]=i,t.titleAttributes=d({},o),t));case g.BODY:return d({},a,{bodyAttributes:d({},o)});case g.HTML:return d({},a,{htmlAttributes:d({},o)});default:return d({},a,((n={})[r.type]=d({},o),n))}},n.mapArrayTypeChildrenToProps=function(e,t){var n=d({},t);return Object.keys(e).forEach((function(t){var r;n=d({},n,((r={})[t]=e[t],r))})),n},n.warnOnInvalidChildren=function(e,t){return s()(w.some((function(t){return e.type===t})),"function"==typeof e.type?"You may be attempting to nest <Helmet> components within each other, which is not allowed. Refer to our API for more information.":"Only elements types "+w.join(", ")+" are allowed. Helmet does not support rendering <"+e.type+"> elements. Refer to our API for more information."),s()(!t||"string"==typeof t||Array.isArray(t)&&!t.some((function(e){return"string"!=typeof e})),"Helmet expects a string as a child of <"+e.type+">. Did you forget to wrap your children in braces? ( <"+e.type+">{``}</"+e.type+"> ) Refer to our API for more information."),!0},n.mapChildrenToProps=function(e,t){var n=this,a={};return r.Children.forEach(e,(function(e){if(e&&e.props){var r=e.props,o=r.children,i=h(r,Q),l=Object.keys(i).reduce((function(e,t){return e[E[t]||t]=i[t],e}),{}),u=e.type;switch("symbol"==typeof u?u=u.toString():n.warnOnInvalidChildren(e,o),u){case g.FRAGMENT:t=n.mapChildrenToProps(o,t);break;case g.LINK:case g.META:case g.NOSCRIPT:case g.SCRIPT:case g.STYLE:a=n.flattenArrayTypeChildren({child:e,arrayTypeChildren:a,newChildProps:l,nestedChildren:o});break;default:t=n.mapObjectTypeChildren({child:e,newProps:t,newChildProps:l,nestedChildren:o})}}})),this.mapArrayTypeChildrenToProps(a,t)},n.render=function(){var e=this.props,t=e.children,n=h(e,X),a=d({},n),o=n.helmetData;return t&&(a=this.mapChildrenToProps(t,a)),!o||o instanceof U||(o=new U(o.context,o.instances)),o?r.createElement(K,d({},a,{context:o.value,helmetData:void 0})):r.createElement(Z.Consumer,null,(function(e){return r.createElement(K,d({},a,{context:e}))}))},t}(r.Component);J.propTypes={base:o().object,bodyAttributes:o().object,children:o().oneOfType([o().arrayOf(o().node),o().node]),defaultTitle:o().string,defer:o().bool,encodeSpecialCharacters:o().bool,htmlAttributes:o().object,link:o().arrayOf(o().object),meta:o().arrayOf(o().object),noscript:o().arrayOf(o().object),onChangeClientState:o().func,script:o().arrayOf(o().object),style:o().arrayOf(o().object),title:o().string,titleAttributes:o().object,titleTemplate:o().string,prioritizeSeoTags:o().bool,helmetData:o().object},J.defaultProps={defer:!0,encodeSpecialCharacters:!0,prioritizeSeoTags:!1},J.displayName="Helmet"},9921:function(e,t){"use strict";var n="function"==typeof Symbol&&Symbol.for,r=n?Symbol.for("react.element"):60103,a=n?Symbol.for("react.portal"):60106,o=n?Symbol.for("react.fragment"):60107,i=n?Symbol.for("react.strict_mode"):60108,l=n?Symbol.for("react.profiler"):60114,u=n?Symbol.for("react.provider"):60109,s=n?Symbol.for("react.context"):60110,c=n?Symbol.for("react.async_mode"):60111,f=n?Symbol.for("react.concurrent_mode"):60111,d=n?Symbol.for("react.forward_ref"):60112,p=n?Symbol.for("react.suspense"):60113,m=n?Symbol.for("react.suspense_list"):60120,h=n?Symbol.for("react.memo"):60115,g=n?Symbol.for("react.lazy"):60116,v=n?Symbol.for("react.block"):60121,b=n?Symbol.for("react.fundamental"):60117,y=n?Symbol.for("react.responder"):60118,w=n?Symbol.for("react.scope"):60119;function k(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case r:switch(e=e.type){case c:case f:case o:case l:case i:case p:return e;default:switch(e=e&&e.$$typeof){case s:case d:case g:case h:case u:return e;default:return t}}case a:return t}}}function E(e){return k(e)===f}t.AsyncMode=c,t.ConcurrentMode=f,t.ContextConsumer=s,t.ContextProvider=u,t.Element=r,t.ForwardRef=d,t.Fragment=o,t.Lazy=g,t.Memo=h,t.Portal=a,t.Profiler=l,t.StrictMode=i,t.Suspense=p,t.isAsyncMode=function(e){return E(e)||k(e)===c},t.isConcurrentMode=E,t.isContextConsumer=function(e){return k(e)===s},t.isContextProvider=function(e){return k(e)===u},t.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===r},t.isForwardRef=function(e){return k(e)===d},t.isFragment=function(e){return k(e)===o},t.isLazy=function(e){return k(e)===g},t.isMemo=function(e){return k(e)===h},t.isPortal=function(e){return k(e)===a},t.isProfiler=function(e){return k(e)===l},t.isStrictMode=function(e){return k(e)===i},t.isSuspense=function(e){return k(e)===p},t.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===o||e===f||e===l||e===i||e===p||e===m||"object"==typeof e&&null!==e&&(e.$$typeof===g||e.$$typeof===h||e.$$typeof===u||e.$$typeof===s||e.$$typeof===d||e.$$typeof===b||e.$$typeof===y||e.$$typeof===w||e.$$typeof===v)},t.typeOf=k},9864:function(e,t,n){"use strict";e.exports=n(9921)},8356:function(e,t,n){"use strict";function r(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}function a(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(){return i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},i.apply(this,arguments)}var l=n(7294),u=n(5697),s=[],c=[];function f(e){var t=e(),n={loading:!0,loaded:null,error:null};return n.promise=t.then((function(e){return n.loading=!1,n.loaded=e,e})).catch((function(e){throw n.loading=!1,n.error=e,e})),n}function d(e){var t={loading:!1,loaded:{},error:null},n=[];try{Object.keys(e).forEach((function(r){var a=f(e[r]);a.loading?t.loading=!0:(t.loaded[r]=a.loaded,t.error=a.error),n.push(a.promise),a.promise.then((function(e){t.loaded[r]=e})).catch((function(e){t.error=e}))}))}catch(r){t.error=r}return t.promise=Promise.all(n).then((function(e){return t.loading=!1,e})).catch((function(e){throw t.loading=!1,e})),t}function p(e,t){return l.createElement((n=e)&&n.__esModule?n.default:n,t);var n}function m(e,t){var f,d;if(!t.loading)throw new Error("react-loadable requires a `loading` component");var m=i({loader:null,loading:null,delay:200,timeout:null,render:p,webpack:null,modules:null},t),h=null;function g(){return h||(h=e(m.loader)),h.promise}return s.push(g),"function"==typeof m.webpack&&c.push((function(){if((0,m.webpack)().every((function(e){return void 0!==e&&void 0!==n.m[e]})))return g()})),d=f=function(t){function n(n){var r;return o(a(a(r=t.call(this,n)||this)),"retry",(function(){r.setState({error:null,loading:!0,timedOut:!1}),h=e(m.loader),r._loadModule()})),g(),r.state={error:h.error,pastDelay:!1,timedOut:!1,loading:h.loading,loaded:h.loaded},r}r(n,t),n.preload=function(){return g()};var i=n.prototype;return i.UNSAFE_componentWillMount=function(){this._loadModule()},i.componentDidMount=function(){this._mounted=!0},i._loadModule=function(){var e=this;if(this.context.loadable&&Array.isArray(m.modules)&&m.modules.forEach((function(t){e.context.loadable.report(t)})),h.loading){var t=function(t){e._mounted&&e.setState(t)};"number"==typeof m.delay&&(0===m.delay?this.setState({pastDelay:!0}):this._delay=setTimeout((function(){t({pastDelay:!0})}),m.delay)),"number"==typeof m.timeout&&(this._timeout=setTimeout((function(){t({timedOut:!0})}),m.timeout));var n=function(){t({error:h.error,loaded:h.loaded,loading:h.loading}),e._clearTimeouts()};h.promise.then((function(){return n(),null})).catch((function(e){return n(),null}))}},i.componentWillUnmount=function(){this._mounted=!1,this._clearTimeouts()},i._clearTimeouts=function(){clearTimeout(this._delay),clearTimeout(this._timeout)},i.render=function(){return this.state.loading||this.state.error?l.createElement(m.loading,{isLoading:this.state.loading,pastDelay:this.state.pastDelay,timedOut:this.state.timedOut,error:this.state.error,retry:this.retry}):this.state.loaded?m.render(this.state.loaded,this.props):null},n}(l.Component),o(f,"contextTypes",{loadable:u.shape({report:u.func.isRequired})}),d}function h(e){return m(f,e)}h.Map=function(e){if("function"!=typeof e.render)throw new Error("LoadableMap requires a `render(loaded, props)` function");return m(d,e)};var g=function(e){function t(){return e.apply(this,arguments)||this}r(t,e);var n=t.prototype;return n.getChildContext=function(){return{loadable:{report:this.props.report}}},n.render=function(){return l.Children.only(this.props.children)},t}(l.Component);function v(e){for(var t=[];e.length;){var n=e.pop();t.push(n())}return Promise.all(t).then((function(){if(e.length)return v(e)}))}o(g,"propTypes",{report:u.func.isRequired}),o(g,"childContextTypes",{loadable:u.shape({report:u.func.isRequired}).isRequired}),h.Capture=g,h.preloadAll=function(){return new Promise((function(e,t){v(s).then(e,t)}))},h.preloadReady=function(){return new Promise((function(e,t){v(c).then(e,e)}))},e.exports=h},8790:function(e,t,n){"use strict";n.d(t,{H:function(){return l},f:function(){return i}});var r=n(6775),a=n(7462),o=n(7294);function i(e,t,n){return void 0===n&&(n=[]),e.some((function(e){var a=e.path?(0,r.LX)(t,e):n.length?n[n.length-1].match:r.F0.computeRootMatch(t);return a&&(n.push({route:e,match:a}),e.routes&&i(e.routes,t,n)),a})),n}function l(e,t,n){return void 0===t&&(t={}),void 0===n&&(n={}),e?o.createElement(r.rs,n,e.map((function(e,n){return o.createElement(r.AW,{key:e.key||n,path:e.path,exact:e.exact,strict:e.strict,render:function(n){return e.render?e.render((0,a.Z)({},n,{},t,{route:e})):o.createElement(e.component,(0,a.Z)({},n,t,{route:e}))}})}))):null}},3727:function(e,t,n){"use strict";n.d(t,{OL:function(){return y},VK:function(){return c},rU:function(){return g}});var r=n(6775),a=n(4578),o=n(7294),i=n(2358),l=n(7462),u=n(3366),s=n(2177),c=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),a=0;a<n;a++)r[a]=arguments[a];return(t=e.call.apply(e,[this].concat(r))||this).history=(0,i.lX)(t.props),t}return(0,a.Z)(t,e),t.prototype.render=function(){return o.createElement(r.F0,{history:this.history,children:this.props.children})},t}(o.Component);o.Component;var f=function(e,t){return"function"==typeof e?e(t):e},d=function(e,t){return"string"==typeof e?(0,i.ob)(e,null,null,t):e},p=function(e){return e},m=o.forwardRef;void 0===m&&(m=p);var h=m((function(e,t){var n=e.innerRef,r=e.navigate,a=e.onClick,i=(0,u.Z)(e,["innerRef","navigate","onClick"]),s=i.target,c=(0,l.Z)({},i,{onClick:function(e){try{a&&a(e)}catch(t){throw e.preventDefault(),t}e.defaultPrevented||0!==e.button||s&&"_self"!==s||function(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}(e)||(e.preventDefault(),r())}});return c.ref=p!==m&&t||n,o.createElement("a",c)}));var g=m((function(e,t){var n=e.component,a=void 0===n?h:n,c=e.replace,g=e.to,v=e.innerRef,b=(0,u.Z)(e,["component","replace","to","innerRef"]);return o.createElement(r.s6.Consumer,null,(function(e){e||(0,s.Z)(!1);var n=e.history,r=d(f(g,e.location),e.location),u=r?n.createHref(r):"",h=(0,l.Z)({},b,{href:u,navigate:function(){var t=f(g,e.location),r=(0,i.Ep)(e.location)===(0,i.Ep)(d(t));(c||r?n.replace:n.push)(t)}});return p!==m?h.ref=t||v:h.innerRef=v,o.createElement(a,h)}))})),v=function(e){return e},b=o.forwardRef;void 0===b&&(b=v);var y=b((function(e,t){var n=e["aria-current"],a=void 0===n?"page":n,i=e.activeClassName,c=void 0===i?"active":i,p=e.activeStyle,m=e.className,h=e.exact,y=e.isActive,w=e.location,k=e.sensitive,E=e.strict,S=e.style,x=e.to,_=e.innerRef,C=(0,u.Z)(e,["aria-current","activeClassName","activeStyle","className","exact","isActive","location","sensitive","strict","style","to","innerRef"]);return o.createElement(r.s6.Consumer,null,(function(e){e||(0,s.Z)(!1);var n=w||e.location,i=d(f(x,n),n),u=i.pathname,T=u&&u.replace(/([.+*?=^!:${}()[\]|/\\])/g,"\\$1"),A=T?(0,r.LX)(n.pathname,{path:T,exact:h,sensitive:k,strict:E}):null,O=!!(y?y(A,n):A),L="function"==typeof m?m(O):m,P="function"==typeof S?S(O):S;O&&(L=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return t.filter((function(e){return e})).join(" ")}(L,c),P=(0,l.Z)({},P,p));var R=(0,l.Z)({"aria-current":O&&a||null,className:L,style:P,to:i},C);return v!==b?R.ref=t||_:R.innerRef=_,o.createElement(g,R)}))}))},6775:function(e,t,n){"use strict";n.d(t,{l_:function(){return C},AW:function(){return L},F0:function(){return k},rs:function(){return M},s6:function(){return w},LX:function(){return O},k6:function(){return j},TH:function(){return B}});var r=n(4578),a=n(7294),o=n(2358),i=n(5697),l=n.n(i),u=1073741823,s="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:void 0!==n.g?n.g:{};function c(e){var t=[];return{on:function(e){t.push(e)},off:function(e){t=t.filter((function(t){return t!==e}))},get:function(){return e},set:function(n,r){e=n,t.forEach((function(t){return t(e,r)}))}}}var f=a.createContext||function(e,t){var n,o,i="__create-react-context-"+function(){var e="__global_unique_id__";return s[e]=(s[e]||0)+1}()+"__",f=function(e){function n(){var t;return(t=e.apply(this,arguments)||this).emitter=c(t.props.value),t}(0,r.Z)(n,e);var a=n.prototype;return a.getChildContext=function(){var e;return(e={})[i]=this.emitter,e},a.componentWillReceiveProps=function(e){if(this.props.value!==e.value){var n,r=this.props.value,a=e.value;((o=r)===(i=a)?0!==o||1/o==1/i:o!=o&&i!=i)?n=0:(n="function"==typeof t?t(r,a):u,0!==(n|=0)&&this.emitter.set(e.value,n))}var o,i},a.render=function(){return this.props.children},n}(a.Component);f.childContextTypes=((n={})[i]=l().object.isRequired,n);var d=function(t){function n(){var e;return(e=t.apply(this,arguments)||this).state={value:e.getValue()},e.onUpdate=function(t,n){0!=((0|e.observedBits)&n)&&e.setState({value:e.getValue()})},e}(0,r.Z)(n,t);var a=n.prototype;return a.componentWillReceiveProps=function(e){var t=e.observedBits;this.observedBits=null==t?u:t},a.componentDidMount=function(){this.context[i]&&this.context[i].on(this.onUpdate);var e=this.props.observedBits;this.observedBits=null==e?u:e},a.componentWillUnmount=function(){this.context[i]&&this.context[i].off(this.onUpdate)},a.getValue=function(){return this.context[i]?this.context[i].get():e},a.render=function(){return(e=this.props.children,Array.isArray(e)?e[0]:e)(this.state.value);var e},n}(a.Component);return d.contextTypes=((o={})[i]=l().object,o),{Provider:f,Consumer:d}},d=f,p=n(2177),m=n(7462),h=n(9658),g=n.n(h),v=(n(9864),n(3366)),b=(n(8679),function(e){var t=d();return t.displayName=e,t}),y=b("Router-History"),w=b("Router"),k=function(e){function t(t){var n;return(n=e.call(this,t)||this).state={location:t.history.location},n._isMounted=!1,n._pendingLocation=null,t.staticContext||(n.unlisten=t.history.listen((function(e){n._pendingLocation=e}))),n}(0,r.Z)(t,e),t.computeRootMatch=function(e){return{path:"/",url:"/",params:{},isExact:"/"===e}};var n=t.prototype;return n.componentDidMount=function(){var e=this;this._isMounted=!0,this.unlisten&&this.unlisten(),this.props.staticContext||(this.unlisten=this.props.history.listen((function(t){e._isMounted&&e.setState({location:t})}))),this._pendingLocation&&this.setState({location:this._pendingLocation})},n.componentWillUnmount=function(){this.unlisten&&(this.unlisten(),this._isMounted=!1,this._pendingLocation=null)},n.render=function(){return a.createElement(w.Provider,{value:{history:this.props.history,location:this.state.location,match:t.computeRootMatch(this.state.location.pathname),staticContext:this.props.staticContext}},a.createElement(y.Provider,{children:this.props.children||null,value:this.props.history}))},t}(a.Component);a.Component;var E=function(e){function t(){return e.apply(this,arguments)||this}(0,r.Z)(t,e);var n=t.prototype;return n.componentDidMount=function(){this.props.onMount&&this.props.onMount.call(this,this)},n.componentDidUpdate=function(e){this.props.onUpdate&&this.props.onUpdate.call(this,this,e)},n.componentWillUnmount=function(){this.props.onUnmount&&this.props.onUnmount.call(this,this)},n.render=function(){return null},t}(a.Component);var S={},x=0;function _(e,t){return void 0===e&&(e="/"),void 0===t&&(t={}),"/"===e?e:function(e){if(S[e])return S[e];var t=g().compile(e);return x<1e4&&(S[e]=t,x++),t}(e)(t,{pretty:!0})}function C(e){var t=e.computedMatch,n=e.to,r=e.push,i=void 0!==r&&r;return a.createElement(w.Consumer,null,(function(e){e||(0,p.Z)(!1);var r=e.history,l=e.staticContext,u=i?r.push:r.replace,s=(0,o.ob)(t?"string"==typeof n?_(n,t.params):(0,m.Z)({},n,{pathname:_(n.pathname,t.params)}):n);return l?(u(s),null):a.createElement(E,{onMount:function(){u(s)},onUpdate:function(e,t){var n=(0,o.ob)(t.to);(0,o.Hp)(n,(0,m.Z)({},s,{key:n.key}))||u(s)},to:n})}))}var T={},A=0;function O(e,t){void 0===t&&(t={}),("string"==typeof t||Array.isArray(t))&&(t={path:t});var n=t,r=n.path,a=n.exact,o=void 0!==a&&a,i=n.strict,l=void 0!==i&&i,u=n.sensitive,s=void 0!==u&&u;return[].concat(r).reduce((function(t,n){if(!n&&""!==n)return null;if(t)return t;var r=function(e,t){var n=""+t.end+t.strict+t.sensitive,r=T[n]||(T[n]={});if(r[e])return r[e];var a=[],o={regexp:g()(e,a,t),keys:a};return A<1e4&&(r[e]=o,A++),o}(n,{end:o,strict:l,sensitive:s}),a=r.regexp,i=r.keys,u=a.exec(e);if(!u)return null;var c=u[0],f=u.slice(1),d=e===c;return o&&!d?null:{path:n,url:"/"===n&&""===c?"/":c,isExact:d,params:i.reduce((function(e,t,n){return e[t.name]=f[n],e}),{})}}),null)}var L=function(e){function t(){return e.apply(this,arguments)||this}return(0,r.Z)(t,e),t.prototype.render=function(){var e=this;return a.createElement(w.Consumer,null,(function(t){t||(0,p.Z)(!1);var n=e.props.location||t.location,r=e.props.computedMatch?e.props.computedMatch:e.props.path?O(n.pathname,e.props):t.match,o=(0,m.Z)({},t,{location:n,match:r}),i=e.props,l=i.children,u=i.component,s=i.render;return Array.isArray(l)&&function(e){return 0===a.Children.count(e)}(l)&&(l=null),a.createElement(w.Provider,{value:o},o.match?l?"function"==typeof l?l(o):l:u?a.createElement(u,o):s?s(o):null:"function"==typeof l?l(o):null)}))},t}(a.Component);function P(e){return"/"===e.charAt(0)?e:"/"+e}function R(e,t){if(!e)return t;var n=P(e);return 0!==t.pathname.indexOf(n)?t:(0,m.Z)({},t,{pathname:t.pathname.substr(n.length)})}function N(e){return"string"==typeof e?e:(0,o.Ep)(e)}function I(e){return function(){(0,p.Z)(!1)}}function D(){}a.Component;var M=function(e){function t(){return e.apply(this,arguments)||this}return(0,r.Z)(t,e),t.prototype.render=function(){var e=this;return a.createElement(w.Consumer,null,(function(t){t||(0,p.Z)(!1);var n,r,o=e.props.location||t.location;return a.Children.forEach(e.props.children,(function(e){if(null==r&&a.isValidElement(e)){n=e;var i=e.props.path||e.props.from;r=i?O(o.pathname,(0,m.Z)({},e.props,{path:i})):t.match}})),r?a.cloneElement(n,{location:o,computedMatch:r}):null}))},t}(a.Component);var F=a.useContext;function j(){return F(y)}function B(){return F(w).location}},9658:function(e,t,n){var r=n(5826);e.exports=p,e.exports.parse=o,e.exports.compile=function(e,t){return l(o(e,t),t)},e.exports.tokensToFunction=l,e.exports.tokensToRegExp=d;var a=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function o(e,t){for(var n,r=[],o=0,i=0,l="",c=t&&t.delimiter||"/";null!=(n=a.exec(e));){var f=n[0],d=n[1],p=n.index;if(l+=e.slice(i,p),i=p+f.length,d)l+=d[1];else{var m=e[i],h=n[2],g=n[3],v=n[4],b=n[5],y=n[6],w=n[7];l&&(r.push(l),l="");var k=null!=h&&null!=m&&m!==h,E="+"===y||"*"===y,S="?"===y||"*"===y,x=n[2]||c,_=v||b;r.push({name:g||o++,prefix:h||"",delimiter:x,optional:S,repeat:E,partial:k,asterisk:!!w,pattern:_?s(_):w?".*":"[^"+u(x)+"]+?"})}}return i<e.length&&(l+=e.substr(i)),l&&r.push(l),r}function i(e){return encodeURI(e).replace(/[\/?#]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()}))}function l(e,t){for(var n=new Array(e.length),a=0;a<e.length;a++)"object"==typeof e[a]&&(n[a]=new RegExp("^(?:"+e[a].pattern+")$",f(t)));return function(t,a){for(var o="",l=t||{},u=(a||{}).pretty?i:encodeURIComponent,s=0;s<e.length;s++){var c=e[s];if("string"!=typeof c){var f,d=l[c.name];if(null==d){if(c.optional){c.partial&&(o+=c.prefix);continue}throw new TypeError('Expected "'+c.name+'" to be defined')}if(r(d)){if(!c.repeat)throw new TypeError('Expected "'+c.name+'" to not repeat, but received `'+JSON.stringify(d)+"`");if(0===d.length){if(c.optional)continue;throw new TypeError('Expected "'+c.name+'" to not be empty')}for(var p=0;p<d.length;p++){if(f=u(d[p]),!n[s].test(f))throw new TypeError('Expected all "'+c.name+'" to match "'+c.pattern+'", but received `'+JSON.stringify(f)+"`");o+=(0===p?c.prefix:c.delimiter)+f}}else{if(f=c.asterisk?encodeURI(d).replace(/[?#]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()})):u(d),!n[s].test(f))throw new TypeError('Expected "'+c.name+'" to match "'+c.pattern+'", but received "'+f+'"');o+=c.prefix+f}}else o+=c}return o}}function u(e){return e.replace(/([.+*?=^!:${}()[\]|\/\\])/g,"\\$1")}function s(e){return e.replace(/([=!:$\/()])/g,"\\$1")}function c(e,t){return e.keys=t,e}function f(e){return e&&e.sensitive?"":"i"}function d(e,t,n){r(t)||(n=t||n,t=[]);for(var a=(n=n||{}).strict,o=!1!==n.end,i="",l=0;l<e.length;l++){var s=e[l];if("string"==typeof s)i+=u(s);else{var d=u(s.prefix),p="(?:"+s.pattern+")";t.push(s),s.repeat&&(p+="(?:"+d+p+")*"),i+=p=s.optional?s.partial?d+"("+p+")?":"(?:"+d+"("+p+"))?":d+"("+p+")"}}var m=u(n.delimiter||"/"),h=i.slice(-m.length)===m;return a||(i=(h?i.slice(0,-m.length):i)+"(?:"+m+"(?=$))?"),i+=o?"$":a&&h?"":"(?="+m+"|$)",c(new RegExp("^"+i,f(n)),t)}function p(e,t,n){return r(t)||(n=t||n,t=[]),n=n||{},e instanceof RegExp?function(e,t){var n=e.source.match(/\((?!\?)/g);if(n)for(var r=0;r<n.length;r++)t.push({name:r,prefix:null,delimiter:null,optional:!1,repeat:!1,partial:!1,asterisk:!1,pattern:null});return c(e,t)}(e,t):r(e)?function(e,t,n){for(var r=[],a=0;a<e.length;a++)r.push(p(e[a],t,n).source);return c(new RegExp("(?:"+r.join("|")+")",f(n)),t)}(e,t,n):function(e,t,n){return d(o(e,n),t,n)}(e,t,n)}},2408:function(e,t,n){"use strict";var r=n(7418),a=60103,o=60106;t.Fragment=60107,t.StrictMode=60108,t.Profiler=60114;var i=60109,l=60110,u=60112;t.Suspense=60113;var s=60115,c=60116;if("function"==typeof Symbol&&Symbol.for){var f=Symbol.for;a=f("react.element"),o=f("react.portal"),t.Fragment=f("react.fragment"),t.StrictMode=f("react.strict_mode"),t.Profiler=f("react.profiler"),i=f("react.provider"),l=f("react.context"),u=f("react.forward_ref"),t.Suspense=f("react.suspense"),s=f("react.memo"),c=f("react.lazy")}var d="function"==typeof Symbol&&Symbol.iterator;function p(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var m={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},h={};function g(e,t,n){this.props=e,this.context=t,this.refs=h,this.updater=n||m}function v(){}function b(e,t,n){this.props=e,this.context=t,this.refs=h,this.updater=n||m}g.prototype.isReactComponent={},g.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw Error(p(85));this.updater.enqueueSetState(this,e,t,"setState")},g.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},v.prototype=g.prototype;var y=b.prototype=new v;y.constructor=b,r(y,g.prototype),y.isPureReactComponent=!0;var w={current:null},k=Object.prototype.hasOwnProperty,E={key:!0,ref:!0,__self:!0,__source:!0};function S(e,t,n){var r,o={},i=null,l=null;if(null!=t)for(r in void 0!==t.ref&&(l=t.ref),void 0!==t.key&&(i=""+t.key),t)k.call(t,r)&&!E.hasOwnProperty(r)&&(o[r]=t[r]);var u=arguments.length-2;if(1===u)o.children=n;else if(1<u){for(var s=Array(u),c=0;c<u;c++)s[c]=arguments[c+2];o.children=s}if(e&&e.defaultProps)for(r in u=e.defaultProps)void 0===o[r]&&(o[r]=u[r]);return{$$typeof:a,type:e,key:i,ref:l,props:o,_owner:w.current}}function x(e){return"object"==typeof e&&null!==e&&e.$$typeof===a}var _=/\/+/g;function C(e,t){return"object"==typeof e&&null!==e&&null!=e.key?function(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,(function(e){return t[e]}))}(""+e.key):t.toString(36)}function T(e,t,n,r,i){var l=typeof e;"undefined"!==l&&"boolean"!==l||(e=null);var u=!1;if(null===e)u=!0;else switch(l){case"string":case"number":u=!0;break;case"object":switch(e.$$typeof){case a:case o:u=!0}}if(u)return i=i(u=e),e=""===r?"."+C(u,0):r,Array.isArray(i)?(n="",null!=e&&(n=e.replace(_,"$&/")+"/"),T(i,t,n,"",(function(e){return e}))):null!=i&&(x(i)&&(i=function(e,t){return{$$typeof:a,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}(i,n+(!i.key||u&&u.key===i.key?"":(""+i.key).replace(_,"$&/")+"/")+e)),t.push(i)),1;if(u=0,r=""===r?".":r+":",Array.isArray(e))for(var s=0;s<e.length;s++){var c=r+C(l=e[s],s);u+=T(l,t,n,c,i)}else if(c=function(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=d&&e[d]||e["@@iterator"])?e:null}(e),"function"==typeof c)for(e=c.call(e),s=0;!(l=e.next()).done;)u+=T(l=l.value,t,n,c=r+C(l,s++),i);else if("object"===l)throw t=""+e,Error(p(31,"[object Object]"===t?"object with keys {"+Object.keys(e).join(", ")+"}":t));return u}function A(e,t,n){if(null==e)return e;var r=[],a=0;return T(e,r,"","",(function(e){return t.call(n,e,a++)})),r}function O(e){if(-1===e._status){var t=e._result;t=t(),e._status=0,e._result=t,t.then((function(t){0===e._status&&(t=t.default,e._status=1,e._result=t)}),(function(t){0===e._status&&(e._status=2,e._result=t)}))}if(1===e._status)return e._result;throw e._result}var L={current:null};function P(){var e=L.current;if(null===e)throw Error(p(321));return e}var R={ReactCurrentDispatcher:L,ReactCurrentBatchConfig:{transition:0},ReactCurrentOwner:w,IsSomeRendererActing:{current:!1},assign:r};t.Children={map:A,forEach:function(e,t,n){A(e,(function(){t.apply(this,arguments)}),n)},count:function(e){var t=0;return A(e,(function(){t++})),t},toArray:function(e){return A(e,(function(e){return e}))||[]},only:function(e){if(!x(e))throw Error(p(143));return e}},t.Component=g,t.PureComponent=b,t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=R,t.cloneElement=function(e,t,n){if(null==e)throw Error(p(267,e));var o=r({},e.props),i=e.key,l=e.ref,u=e._owner;if(null!=t){if(void 0!==t.ref&&(l=t.ref,u=w.current),void 0!==t.key&&(i=""+t.key),e.type&&e.type.defaultProps)var s=e.type.defaultProps;for(c in t)k.call(t,c)&&!E.hasOwnProperty(c)&&(o[c]=void 0===t[c]&&void 0!==s?s[c]:t[c])}var c=arguments.length-2;if(1===c)o.children=n;else if(1<c){s=Array(c);for(var f=0;f<c;f++)s[f]=arguments[f+2];o.children=s}return{$$typeof:a,type:e.type,key:i,ref:l,props:o,_owner:u}},t.createContext=function(e,t){return void 0===t&&(t=null),(e={$$typeof:l,_calculateChangedBits:t,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null}).Provider={$$typeof:i,_context:e},e.Consumer=e},t.createElement=S,t.createFactory=function(e){var t=S.bind(null,e);return t.type=e,t},t.createRef=function(){return{current:null}},t.forwardRef=function(e){return{$$typeof:u,render:e}},t.isValidElement=x,t.lazy=function(e){return{$$typeof:c,_payload:{_status:-1,_result:e},_init:O}},t.memo=function(e,t){return{$$typeof:s,type:e,compare:void 0===t?null:t}},t.useCallback=function(e,t){return P().useCallback(e,t)},t.useContext=function(e,t){return P().useContext(e,t)},t.useDebugValue=function(){},t.useEffect=function(e,t){return P().useEffect(e,t)},t.useImperativeHandle=function(e,t,n){return P().useImperativeHandle(e,t,n)},t.useLayoutEffect=function(e,t){return P().useLayoutEffect(e,t)},t.useMemo=function(e,t){return P().useMemo(e,t)},t.useReducer=function(e,t,n){return P().useReducer(e,t,n)},t.useRef=function(e){return P().useRef(e)},t.useState=function(e){return P().useState(e)},t.version="17.0.2"},7294:function(e,t,n){"use strict";e.exports=n(2408)},53:function(e,t){"use strict";var n,r,a,o;if("object"==typeof performance&&"function"==typeof performance.now){var i=performance;t.unstable_now=function(){return i.now()}}else{var l=Date,u=l.now();t.unstable_now=function(){return l.now()-u}}if("undefined"==typeof window||"function"!=typeof MessageChannel){var s=null,c=null,f=function(){if(null!==s)try{var e=t.unstable_now();s(!0,e),s=null}catch(n){throw setTimeout(f,0),n}};n=function(e){null!==s?setTimeout(n,0,e):(s=e,setTimeout(f,0))},r=function(e,t){c=setTimeout(e,t)},a=function(){clearTimeout(c)},t.unstable_shouldYield=function(){return!1},o=t.unstable_forceFrameRate=function(){}}else{var d=window.setTimeout,p=window.clearTimeout;if("undefined"!=typeof console){var m=window.cancelAnimationFrame;"function"!=typeof window.requestAnimationFrame&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills"),"function"!=typeof m&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills")}var h=!1,g=null,v=-1,b=5,y=0;t.unstable_shouldYield=function(){return t.unstable_now()>=y},o=function(){},t.unstable_forceFrameRate=function(e){0>e||125<e?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):b=0<e?Math.floor(1e3/e):5};var w=new MessageChannel,k=w.port2;w.port1.onmessage=function(){if(null!==g){var e=t.unstable_now();y=e+b;try{g(!0,e)?k.postMessage(null):(h=!1,g=null)}catch(n){throw k.postMessage(null),n}}else h=!1},n=function(e){g=e,h||(h=!0,k.postMessage(null))},r=function(e,n){v=d((function(){e(t.unstable_now())}),n)},a=function(){p(v),v=-1}}function E(e,t){var n=e.length;e.push(t);e:for(;;){var r=n-1>>>1,a=e[r];if(!(void 0!==a&&0<_(a,t)))break e;e[r]=t,e[n]=a,n=r}}function S(e){return void 0===(e=e[0])?null:e}function x(e){var t=e[0];if(void 0!==t){var n=e.pop();if(n!==t){e[0]=n;e:for(var r=0,a=e.length;r<a;){var o=2*(r+1)-1,i=e[o],l=o+1,u=e[l];if(void 0!==i&&0>_(i,n))void 0!==u&&0>_(u,i)?(e[r]=u,e[l]=n,r=l):(e[r]=i,e[o]=n,r=o);else{if(!(void 0!==u&&0>_(u,n)))break e;e[r]=u,e[l]=n,r=l}}}return t}return null}function _(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}var C=[],T=[],A=1,O=null,L=3,P=!1,R=!1,N=!1;function I(e){for(var t=S(T);null!==t;){if(null===t.callback)x(T);else{if(!(t.startTime<=e))break;x(T),t.sortIndex=t.expirationTime,E(C,t)}t=S(T)}}function D(e){if(N=!1,I(e),!R)if(null!==S(C))R=!0,n(M);else{var t=S(T);null!==t&&r(D,t.startTime-e)}}function M(e,n){R=!1,N&&(N=!1,a()),P=!0;var o=L;try{for(I(n),O=S(C);null!==O&&(!(O.expirationTime>n)||e&&!t.unstable_shouldYield());){var i=O.callback;if("function"==typeof i){O.callback=null,L=O.priorityLevel;var l=i(O.expirationTime<=n);n=t.unstable_now(),"function"==typeof l?O.callback=l:O===S(C)&&x(C),I(n)}else x(C);O=S(C)}if(null!==O)var u=!0;else{var s=S(T);null!==s&&r(D,s.startTime-n),u=!1}return u}finally{O=null,L=o,P=!1}}var F=o;t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(e){e.callback=null},t.unstable_continueExecution=function(){R||P||(R=!0,n(M))},t.unstable_getCurrentPriorityLevel=function(){return L},t.unstable_getFirstCallbackNode=function(){return S(C)},t.unstable_next=function(e){switch(L){case 1:case 2:case 3:var t=3;break;default:t=L}var n=L;L=t;try{return e()}finally{L=n}},t.unstable_pauseExecution=function(){},t.unstable_requestPaint=F,t.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=L;L=e;try{return t()}finally{L=n}},t.unstable_scheduleCallback=function(e,o,i){var l=t.unstable_now();switch("object"==typeof i&&null!==i?i="number"==typeof(i=i.delay)&&0<i?l+i:l:i=l,e){case 1:var u=-1;break;case 2:u=250;break;case 5:u=1073741823;break;case 4:u=1e4;break;default:u=5e3}return e={id:A++,callback:o,priorityLevel:e,startTime:i,expirationTime:u=i+u,sortIndex:-1},i>l?(e.sortIndex=i,E(T,e),null===S(C)&&e===S(T)&&(N?a():N=!0,r(D,i-l))):(e.sortIndex=u,E(C,e),R||P||(R=!0,n(M))),e},t.unstable_wrapCallback=function(e){var t=L;return function(){var n=L;L=t;try{return e.apply(this,arguments)}finally{L=n}}}},3840:function(e,t,n){"use strict";e.exports=n(53)},6774:function(e){e.exports=function(e,t,n,r){var a=n?n.call(r,e,t):void 0;if(void 0!==a)return!!a;if(e===t)return!0;if("object"!=typeof e||!e||"object"!=typeof t||!t)return!1;var o=Object.keys(e),i=Object.keys(t);if(o.length!==i.length)return!1;for(var l=Object.prototype.hasOwnProperty.bind(t),u=0;u<o.length;u++){var s=o[u];if(!l(s))return!1;var c=e[s],f=t[s];if(!1===(a=n?n.call(r,c,f,s):void 0)||void 0===a&&c!==f)return!1}return!0}},2177:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r="Invariant failed";function a(e,t){if(!e)throw new Error(r)}},655:function(e,t,n){"use strict";n.r(t),n.d(t,{__assign:function(){return o},__asyncDelegator:function(){return k},__asyncGenerator:function(){return w},__asyncValues:function(){return E},__await:function(){return y},__awaiter:function(){return c},__classPrivateFieldGet:function(){return T},__classPrivateFieldIn:function(){return O},__classPrivateFieldSet:function(){return A},__createBinding:function(){return d},__decorate:function(){return l},__exportStar:function(){return p},__extends:function(){return a},__generator:function(){return f},__importDefault:function(){return C},__importStar:function(){return _},__makeTemplateObject:function(){return S},__metadata:function(){return s},__param:function(){return u},__read:function(){return h},__rest:function(){return i},__spread:function(){return g},__spreadArray:function(){return b},__spreadArrays:function(){return v},__values:function(){return m}});var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},r(e,t)};function a(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}var o=function(){return o=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var a in t=arguments[n])Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a]);return e},o.apply(this,arguments)};function i(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(r=Object.getOwnPropertySymbols(e);a<r.length;a++)t.indexOf(r[a])<0&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]])}return n}function l(e,t,n,r){var a,o=arguments.length,i=o<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(i=(o<3?a(i):o>3?a(t,n,i):a(t,n))||i);return o>3&&i&&Object.defineProperty(t,n,i),i}function u(e,t){return function(n,r){t(n,r,e)}}function s(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)}function c(e,t,n,r){return new(n||(n=Promise))((function(a,o){function i(e){try{u(r.next(e))}catch(t){o(t)}}function l(e){try{u(r.throw(e))}catch(t){o(t)}}function u(e){var t;e.done?a(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(i,l)}u((r=r.apply(e,t||[])).next())}))}function f(e,t){var n,r,a,o,i={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]};return o={next:l(0),throw:l(1),return:l(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function l(o){return function(l){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;i;)try{if(n=1,r&&(a=2&o[0]?r.return:o[0]?r.throw||((a=r.return)&&a.call(r),0):r.next)&&!(a=a.call(r,o[1])).done)return a;switch(r=0,a&&(o=[2&o[0],a.value]),o[0]){case 0:case 1:a=o;break;case 4:return i.label++,{value:o[1],done:!1};case 5:i.label++,r=o[1],o=[0];continue;case 7:o=i.ops.pop(),i.trys.pop();continue;default:if(!(a=i.trys,(a=a.length>0&&a[a.length-1])||6!==o[0]&&2!==o[0])){i=0;continue}if(3===o[0]&&(!a||o[1]>a[0]&&o[1]<a[3])){i.label=o[1];break}if(6===o[0]&&i.label<a[1]){i.label=a[1],a=o;break}if(a&&i.label<a[2]){i.label=a[2],i.ops.push(o);break}a[2]&&i.ops.pop(),i.trys.pop();continue}o=t.call(e,i)}catch(l){o=[6,l],r=0}finally{n=a=0}if(5&o[0])throw o[1];return{value:o[0]?o[1]:void 0,done:!0}}([o,l])}}}var d=Object.create?function(e,t,n,r){void 0===r&&(r=n);var a=Object.getOwnPropertyDescriptor(t,n);a&&!("get"in a?!t.__esModule:a.writable||a.configurable)||(a={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,a)}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]};function p(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||d(t,e,n)}function m(e){var t="function"==typeof Symbol&&Symbol.iterator,n=t&&e[t],r=0;if(n)return n.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function h(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,a,o=n.call(e),i=[];try{for(;(void 0===t||t-- >0)&&!(r=o.next()).done;)i.push(r.value)}catch(l){a={error:l}}finally{try{r&&!r.done&&(n=o.return)&&n.call(o)}finally{if(a)throw a.error}}return i}function g(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(h(arguments[t]));return e}function v(){for(var e=0,t=0,n=arguments.length;t<n;t++)e+=arguments[t].length;var r=Array(e),a=0;for(t=0;t<n;t++)for(var o=arguments[t],i=0,l=o.length;i<l;i++,a++)r[a]=o[i];return r}function b(e,t,n){if(n||2===arguments.length)for(var r,a=0,o=t.length;a<o;a++)!r&&a in t||(r||(r=Array.prototype.slice.call(t,0,a)),r[a]=t[a]);return e.concat(r||Array.prototype.slice.call(t))}function y(e){return this instanceof y?(this.v=e,this):new y(e)}function w(e,t,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r,a=n.apply(e,t||[]),o=[];return r={},i("next"),i("throw"),i("return"),r[Symbol.asyncIterator]=function(){return this},r;function i(e){a[e]&&(r[e]=function(t){return new Promise((function(n,r){o.push([e,t,n,r])>1||l(e,t)}))})}function l(e,t){try{(n=a[e](t)).value instanceof y?Promise.resolve(n.value.v).then(u,s):c(o[0][2],n)}catch(r){c(o[0][3],r)}var n}function u(e){l("next",e)}function s(e){l("throw",e)}function c(e,t){e(t),o.shift(),o.length&&l(o[0][0],o[0][1])}}function k(e){var t,n;return t={},r("next"),r("throw",(function(e){throw e})),r("return"),t[Symbol.iterator]=function(){return this},t;function r(r,a){t[r]=e[r]?function(t){return(n=!n)?{value:y(e[r](t)),done:"return"===r}:a?a(t):t}:a}}function E(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t,n=e[Symbol.asyncIterator];return n?n.call(e):(e=m(e),t={},r("next"),r("throw"),r("return"),t[Symbol.asyncIterator]=function(){return this},t);function r(n){t[n]=e[n]&&function(t){return new Promise((function(r,a){(function(e,t,n,r){Promise.resolve(r).then((function(t){e({value:t,done:n})}),t)})(r,a,(t=e[n](t)).done,t.value)}))}}}function S(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e}var x=Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t};function _(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&d(t,e,n);return x(t,e),t}function C(e){return e&&e.__esModule?e:{default:e}}function T(e,t,n,r){if("a"===n&&!r)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!r:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===n?r:"a"===n?r.call(e):r?r.value:t.get(e)}function A(e,t,n,r,a){if("m"===r)throw new TypeError("Private method is not writable");if("a"===r&&!a)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!a:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===r?a.call(e,n):a?a.value=n:t.set(e,n),n}function O(e,t){if(null===t||"object"!=typeof t&&"function"!=typeof t)throw new TypeError("Cannot use 'in' operator on non-object");return"function"==typeof e?t===e:e.has(t)}},7462:function(e,t,n){"use strict";function r(){return r=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},r.apply(this,arguments)}n.d(t,{Z:function(){return r}})},4578:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(9611);function a(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,(0,r.Z)(e,t)}},3366:function(e,t,n){"use strict";function r(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}n.d(t,{Z:function(){return r}})},9611:function(e,t,n){"use strict";function r(e,t){return r=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},r(e,t)}n.d(t,{Z:function(){return r}})},6528:function(e,t,n){"use strict";function r(e){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(e)}n.d(t,{Z:function(){return i}});var a=n(9611);function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&(0,a.Z)(e,t)}function i(){i=function(e,t){return new n(e,void 0,t)};var e=RegExp.prototype,t=new WeakMap;function n(e,r,o){var i=new RegExp(e,r);return t.set(i,o||t.get(e)),(0,a.Z)(i,n.prototype)}function l(e,n){var r=t.get(n);return Object.keys(r).reduce((function(t,n){return t[n]=e[r[n]],t}),Object.create(null))}return o(n,RegExp),n.prototype.exec=function(t){var n=e.exec.call(this,t);return n&&(n.groups=l(n,this)),n},n.prototype[Symbol.replace]=function(n,a){if("string"==typeof a){var o=t.get(this);return e[Symbol.replace].call(this,n,a.replace(/\$<([^>]+)>/g,(function(e,t){return"$"+o[t]})))}if("function"==typeof a){var i=this;return e[Symbol.replace].call(this,n,(function(){var e=arguments;return"object"!=r(e[e.length-1])&&(e=[].slice.call(e)).push(l(e,i)),a.apply(this,e)}))}return e[Symbol.replace].call(this,n,a)},i.apply(this,arguments)}},7529:function(e){"use strict";e.exports={}},1115:function(e){"use strict";e.exports=JSON.parse('{"docusaurus-plugin-google-gtag":{"default":{"trackingID":"G-4RT25NXQ7N","anonymizeIP":true,"id":"default"}},"docusaurus-plugin-content-docs":{"default":{"path":"/","versions":[{"name":"current","label":"Next","isLast":true,"path":"/","mainDocId":"intro","docs":[{"id":"changelog","path":"/changelog/","sidebar":"tutorialSidebar"},{"id":"community","path":"/community/","sidebar":"tutorialSidebar"},{"id":"donate","path":"/donate/","sidebar":"tutorialSidebar"},{"id":"installation","path":"/installation/","sidebar":"tutorialSidebar"},{"id":"intro","path":"/","sidebar":"tutorialSidebar"},{"id":"releasing","path":"/releasing/","sidebar":"tutorialSidebar"},{"id":"styleguide","path":"/styleguide/","sidebar":"tutorialSidebar"},{"id":"taskfile_versions","path":"/taskfile-versions/","sidebar":"tutorialSidebar"},{"id":"usage","path":"/usage/","sidebar":"tutorialSidebar"}],"draftIds":[],"sidebars":{"tutorialSidebar":{"link":{"path":"/","label":"intro"}}}}],"breadcrumbs":true}}}')},6887:function(e){"use strict";e.exports=JSON.parse('{"/-4ef":{"__comp":"1be78505","__context":{"plugin":"d0766b26"},"versionMetadata":"935f2afb"},"/-96c":{"__comp":"17896441","content":"0e384e19"},"/changelog/-6e0":{"__comp":"17896441","content":"9beb87c2"},"/community/-bea":{"__comp":"17896441","content":"5ef0e9d6"},"/donate/-bf9":{"__comp":"17896441","content":"1c56b476"},"/installation/-5f4":{"__comp":"17896441","content":"3b8c55ea"},"/releasing/-94f":{"__comp":"17896441","content":"7d415946"},"/styleguide/-68d":{"__comp":"17896441","content":"3c140c84"},"/taskfile-versions/-045":{"__comp":"17896441","content":"0afd354a"},"/usage/-6a8":{"__comp":"17896441","content":"6476eba6"}}')}},function(e){e.O(0,[532],(function(){return t=8864,e(e.s=t);var t}));e.O()}]);
\ No newline at end of file
diff --git a/assets/js/main.a2abdebd.js b/assets/js/main.a2abdebd.js
new file mode 100644
index 00000000..b20c8034
--- /dev/null
+++ b/assets/js/main.a2abdebd.js
@@ -0,0 +1,2 @@
+/*! For license information please see main.a2abdebd.js.LICENSE.txt */
+(self.webpackChunktaskfile_dev=self.webpackChunktaskfile_dev||[]).push([[179],{9782:function(e,t){"use strict";t.Z={title:"Task",tagline:"A task runner / simpler Make alternative written in Go ",url:"https://taskfile.dev",baseUrl:"/",onBrokenLinks:"throw",onBrokenMarkdownLinks:"throw",favicon:"img/favicon.ico",organizationName:"go-task",projectName:"task",deploymentBranch:"gh-pages",i18n:{defaultLocale:"en",locales:["en"],localeConfigs:{}},presets:[["classic",{docs:{routeBasePath:"/",sidebarPath:"/home/runner/work/task/task/docs/sidebars.js"},blog:!1,theme:{customCss:["/home/runner/work/task/task/docs/src/css/custom.css","/home/runner/work/task/task/docs/src/css/carbon.css"]},gtag:{trackingID:"G-4RT25NXQ7N",anonymizeIP:!0},sitemap:{changefreq:"weekly",priority:.5,ignorePatterns:["/tags/**"]}}]],themeConfig:{metadata:[{name:"og:image",content:"https://preview-taskfile.netlify.app/img/logo.svg"}],navbar:{title:"Task",logo:{alt:"Task Logo",src:"img/logo.svg"},items:[{type:"doc",docId:"installation",position:"left",label:"Installation"},{type:"doc",docId:"usage",position:"left",label:"Usage"},{type:"doc",docId:"api_reference",position:"left",label:"API"},{type:"doc",docId:"donate",position:"left",label:"Donate"},{href:"https://github.com/go-task/task",label:"GitHub",position:"right"},{href:"https://discord.gg/6TY36E39UK",label:"Discord",position:"right"}],hideOnScroll:!1},footer:{style:"dark",links:[{title:"Docs",items:[{label:"Installation",to:"/installation/"},{label:"Usage",to:"/usage/"},{label:"Donate",to:"/donate/"}]},{title:"Community",items:[{label:"GitHub",href:"https://github.com/go-task/task"},{label:"Discord",href:"https://discord.gg/6TY36E39UK"},{label:"OpenCollective",href:"https://opencollective.com/task"}]}]},prism:{theme:{plain:{color:"#393A34",backgroundColor:"#f6f8fa"},styles:[{types:["comment","prolog","doctype","cdata"],style:{color:"#999988",fontStyle:"italic"}},{types:["namespace"],style:{opacity:.7}},{types:["string","attr-value"],style:{color:"#e3116c"}},{types:["punctuation","operator"],style:{color:"#393A34"}},{types:["entity","url","symbol","number","boolean","variable","constant","property","regex","inserted"],style:{color:"#36acaa"}},{types:["atrule","keyword","attr-name","selector"],style:{color:"#00a4db"}},{types:["function","deleted","tag"],style:{color:"#d73a49"}},{types:["function-variable"],style:{color:"#6f42c1"}},{types:["tag","selector","keyword"],style:{color:"#00009f"}}]},darkTheme:{plain:{color:"#F8F8F2",backgroundColor:"#282A36"},styles:[{types:["prolog","constant","builtin"],style:{color:"rgb(189, 147, 249)"}},{types:["inserted","function"],style:{color:"rgb(80, 250, 123)"}},{types:["deleted"],style:{color:"rgb(255, 85, 85)"}},{types:["changed"],style:{color:"rgb(255, 184, 108)"}},{types:["punctuation","symbol"],style:{color:"rgb(248, 248, 242)"}},{types:["string","char","tag","selector"],style:{color:"rgb(255, 121, 198)"}},{types:["keyword","variable"],style:{color:"rgb(189, 147, 249)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(98, 114, 164)"}},{types:["attr-name"],style:{color:"rgb(241, 250, 140)"}}]},additionalLanguages:[],magicComments:[{className:"theme-code-block-highlighted-line",line:"highlight-next-line",block:{start:"highlight-start",end:"highlight-end"}}]},colorMode:{defaultMode:"light",disableSwitch:!1,respectPrefersColorScheme:!1},docs:{versionPersistence:"localStorage",sidebar:{hideable:!1,autoCollapseCategories:!1}},tableOfContents:{minHeadingLevel:2,maxHeadingLevel:3}},scripts:[{src:"/js/carbon.js",async:!0}],baseUrlIssueBanner:!0,onDuplicateRoutes:"warn",staticDirectories:["static"],customFields:{},plugins:[],themes:[],stylesheets:[],clientModules:[],titleDelimiter:"|",noIndex:!1}},723:function(e,t,n){"use strict";n.d(t,{Z:function(){return p}});var r=n(7294),a=n(7462),o=n(8356),i=n.n(o);function l(e){var t=e.error,n=e.retry,a=e.pastDelay;return t?r.createElement("div",{style:{textAlign:"center",color:"#fff",backgroundColor:"#fa383e",borderColor:"#fa383e",borderStyle:"solid",borderRadius:"0.25rem",borderWidth:"1px",boxSizing:"border-box",display:"block",padding:"1rem",flex:"0 0 50%",marginLeft:"25%",marginRight:"25%",marginTop:"5rem",maxWidth:"50%",width:"100%"}},r.createElement("p",null,t.message),r.createElement("div",null,r.createElement("button",{type:"button",onClick:n},"Retry"))):a?r.createElement("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh"}},r.createElement("svg",{id:"loader",style:{width:128,height:110,position:"absolute",top:"calc(100vh - 64%)"},viewBox:"0 0 45 45",xmlns:"http://www.w3.org/2000/svg",stroke:"#61dafb"},r.createElement("g",{fill:"none",fillRule:"evenodd",transform:"translate(1 1)",strokeWidth:"2"},r.createElement("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0"},r.createElement("animate",{attributeName:"r",begin:"1.5s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-opacity",begin:"1.5s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-width",begin:"1.5s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})),r.createElement("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0"},r.createElement("animate",{attributeName:"r",begin:"3s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-opacity",begin:"3s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-width",begin:"3s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})),r.createElement("circle",{cx:"22",cy:"22",r:"8"},r.createElement("animate",{attributeName:"r",begin:"0s",dur:"1.5s",values:"6;1;2;3;4;5;6",calcMode:"linear",repeatCount:"indefinite"}))))):null}var u=n(6887),s={"0afd354a":[function(){return n.e(552).then(n.bind(n,2926))},"@site/docs/taskfile_versions.md",2926],"0e384e19":[function(){return n.e(671).then(n.bind(n,9881))},"@site/docs/intro.md",9881],17896441:[function(){return Promise.all([n.e(532),n.e(918)]).then(n.bind(n,7209))},"@theme/DocItem",7209],"1be78505":[function(){return Promise.all([n.e(532),n.e(514)]).then(n.bind(n,9068))},"@theme/DocPage",9068],"1c56b476":[function(){return n.e(713).then(n.bind(n,2577))},"@site/docs/donate.md",2577],"3b8c55ea":[function(){return n.e(217).then(n.bind(n,9803))},"@site/docs/installation.md",9803],"3c140c84":[function(){return n.e(648).then(n.bind(n,3501))},"@site/docs/styleguide.md",3501],"5ef0e9d6":[function(){return n.e(880).then(n.bind(n,5330))},"@site/docs/community.md",5330],"6476eba6":[function(){return n.e(827).then(n.bind(n,2175))},"@site/docs/usage.md",2175],"7d415946":[function(){return n.e(705).then(n.bind(n,8134))},"@site/docs/releasing.md",8134],"935f2afb":[function(){return n.e(53).then(n.t.bind(n,1109,19))},"~docs/default/version-current-metadata-prop-751.json",1109],"9beb87c2":[function(){return n.e(80).then(n.bind(n,1016))},"@site/docs/changelog.md",1016],d0766b26:[function(){return n.e(595).then(n.t.bind(n,3769,19))},"/home/runner/work/task/task/docs/.docusaurus/docusaurus-plugin-content-docs/default/plugin-route-context-module-100.json",3769],f7fd502c:[function(){return n.e(582).then(n.bind(n,3500))},"@site/docs/api_reference.md",3500]},c=n(9670),f=n(226);function d(e,t){if("*"===e)return i()({loading:l,loader:function(){return n.e(608).then(n.bind(n,4608)).then((function(e){var t=e.default;return function(e){return r.createElement(f.z,{value:{plugin:{name:"native",id:"default"}}},r.createElement(t,e))}}))}});var o=u[e+"-"+t],d={},p=[],m=[],h=(0,c.Z)(o);return Object.entries(h).forEach((function(e){var t=e[0],n=e[1],r=s[n];r&&(d[t]=r[0],p.push(r[1]),m.push(r[2]))})),i().Map({loading:l,loader:d,modules:p,webpack:function(){return m},render:function(t,n){var i=JSON.parse(JSON.stringify(o));Object.entries(t).forEach((function(t){var n=t[0],r=t[1],a=r.default;if(!a)throw new Error("The page component at "+e+" doesn't have a default export. This makes it impossible to render anything. Consider default-exporting a React component.");"object"!=typeof a&&"function"!=typeof a||Object.keys(r).filter((function(e){return"default"!==e})).forEach((function(e){a[e]=r[e]}));var o=i,l=n.split(".");l.slice(0,-1).forEach((function(e){o=o[e]})),o[l[l.length-1]]=a}));var l=i.__comp;delete i.__comp;var u=i.__context;return delete i.__context,r.createElement(f.z,{value:u},r.createElement(l,(0,a.Z)({},i,n)))}})}var p=[{path:"/",component:d("/","086"),routes:[{path:"/",component:d("/","96c"),exact:!0,sidebar:"tutorialSidebar"},{path:"/api/",component:d("/api/","057"),exact:!0,sidebar:"tutorialSidebar"},{path:"/changelog/",component:d("/changelog/","6e0"),exact:!0,sidebar:"tutorialSidebar"},{path:"/community/",component:d("/community/","bea"),exact:!0,sidebar:"tutorialSidebar"},{path:"/donate/",component:d("/donate/","bf9"),exact:!0,sidebar:"tutorialSidebar"},{path:"/installation/",component:d("/installation/","5f4"),exact:!0,sidebar:"tutorialSidebar"},{path:"/releasing/",component:d("/releasing/","94f"),exact:!0,sidebar:"tutorialSidebar"},{path:"/styleguide/",component:d("/styleguide/","68d"),exact:!0,sidebar:"tutorialSidebar"},{path:"/taskfile-versions/",component:d("/taskfile-versions/","045"),exact:!0,sidebar:"tutorialSidebar"},{path:"/usage/",component:d("/usage/","6a8"),exact:!0,sidebar:"tutorialSidebar"}]},{path:"*",component:d("*")}]},8934:function(e,t,n){"use strict";n.d(t,{_:function(){return a},t:function(){return o}});var r=n(7294),a=r.createContext(!1);function o(e){var t=e.children,n=(0,r.useState)(!1),o=n[0],i=n[1];return(0,r.useEffect)((function(){i(!0)}),[]),r.createElement(a.Provider,{value:o},t)}},8864:function(e,t,n){"use strict";var r=n(7294),a=n(3935),o=n(3727),i=n(405),l=n(412),u=[n(6657),n(2497),n(2448),n(6743),n(8320),n(2295),n(4383)],s=n(723),c=n(6775),f=n(8790),d=new Map;function p(e){if(d.has(e.pathname))return Object.assign({},e,{pathname:d.get(e.pathname)});if((0,f.f)(s.Z,e.pathname).some((function(e){return!0===e.route.exact})))return d.set(e.pathname,e.pathname),e;var t=e.pathname.trim().replace(/(?:\/index)?\.html$/,"")||"/";return d.set(e.pathname,t),Object.assign({},e,{pathname:t})}var m=n(8934),h=n(595),g=n(4578);function v(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];var a=u.map((function(t){var r,a,o=null!=(r=null==t||null==(a=t.default)?void 0:a[e])?r:t[e];return null==o?void 0:o.apply(void 0,n)}));return function(){return a.forEach((function(e){return null==e?void 0:e()}))}}var b=function(e){var t=e.children,n=e.location,a=e.previousLocation;return(0,r.useLayoutEffect)((function(){a!==n&&(a&&function(e){var t=e.hash;if(t){var n=decodeURIComponent(t.substring(1)),r=document.getElementById(n);null==r||r.scrollIntoView()}else window.scrollTo(0,0)}(n),v("onRouteDidUpdate",{previousLocation:a,location:n}))}),[a,n]),t};function y(e){var t=(0,f.f)(s.Z,e);return Promise.all(t.map((function(e){var t;return null==(t=e.route.component)||null==t.preload?void 0:t.preload()})))}var w=function(e){function t(t){var n;return(n=e.call(this,t)||this).previousLocation=null,n.routeUpdateCleanupCb=l.Z.canUseDOM?v("onRouteUpdate",{previousLocation:null,location:n.props.location}):function(){},n.state={nextRouteHasLoaded:!0},n}(0,g.Z)(t,e);var n=t.prototype;return n.shouldComponentUpdate=function(e,t){var n=this;if(e.location===this.props.location)return t.nextRouteHasLoaded;var r=e.location;return this.previousLocation=this.props.location,this.setState({nextRouteHasLoaded:!1}),this.routeUpdateCleanupCb=v("onRouteUpdate",{previousLocation:this.previousLocation,location:r}),y(r.pathname).then((function(){null==n.routeUpdateCleanupCb||n.routeUpdateCleanupCb(),n.setState({nextRouteHasLoaded:!0})})).catch((function(e){return console.warn(e)})),!1},n.render=function(){var e=this.props,t=e.children,n=e.location;return r.createElement(b,{previousLocation:this.previousLocation,location:n},r.createElement(c.AW,{location:n,render:function(){return t}}))},t}(r.Component),k=n(5742),E=n(2263),S="docusaurus-base-url-issue-banner-container",x="docusaurus-base-url-issue-banner-suggestion-container",_="__DOCUSAURUS_INSERT_BASEURL_BANNER";function C(e){return"\nwindow['"+_+"'] = true;\n\ndocument.addEventListener('DOMContentLoaded', maybeInsertBanner);\n\nfunction maybeInsertBanner() {\n  var shouldInsert = window['"+_+"'];\n  shouldInsert && insertBanner();\n}\n\nfunction insertBanner() {\n  var bannerContainer = document.getElementById('"+S+"');\n  if (!bannerContainer) {\n    return;\n  }\n  var bannerHtml = "+JSON.stringify(function(e){return'\n<div id="docusaurus-base-url-issue-banner" style="border: thick solid red; background-color: rgb(255, 230, 179); margin: 20px; padding: 20px; font-size: 20px;">\n   <p style="font-weight: bold; font-size: 30px;">Your Docusaurus site did not load properly.</p>\n   <p>A very common reason is a wrong site <a href="https://docusaurus.io/docs/docusaurus.config.js/#baseurl" style="font-weight: bold;">baseUrl configuration</a>.</p>\n   <p>Current configured baseUrl = <span style="font-weight: bold; color: red;">'+e+"</span> "+("/"===e?" (default value)":"")+'</p>\n   <p>We suggest trying baseUrl = <span id="'+x+'" style="font-weight: bold; color: green;"></span></p>\n</div>\n'}(e)).replace(/</g,"\\<")+";\n  bannerContainer.innerHTML = bannerHtml;\n  var suggestionContainer = document.getElementById('"+x+"');\n  var actualHomePagePath = window.location.pathname;\n  var suggestedBaseUrl = actualHomePagePath.substr(-1) === '/'\n        ? actualHomePagePath\n        : actualHomePagePath + '/';\n  suggestionContainer.innerHTML = suggestedBaseUrl;\n}\n"}function T(){var e=(0,E.Z)().siteConfig.baseUrl;return(0,r.useLayoutEffect)((function(){window[_]=!1}),[]),r.createElement(r.Fragment,null,!l.Z.canUseDOM&&r.createElement(k.Z,null,r.createElement("script",null,C(e))),r.createElement("div",{id:S}))}function A(){var e=(0,E.Z)().siteConfig,t=e.baseUrl,n=e.baseUrlIssueBanner,a=(0,c.TH)().pathname;return n&&a===t?r.createElement(T,null):null}var O=n(4996);function L(){var e=(0,E.Z)(),t=e.siteConfig,n=t.favicon,a=t.tagline,o=t.title,i=e.i18n,l=i.currentLocale,u=i.localeConfigs,s=(0,O.Z)(n),c=u[l],f=c.htmlLang,d=c.direction;return r.createElement(k.Z,{defaultTitle:o+(a?" \xb7 "+a:"")},r.createElement("html",{lang:f,dir:d}),n&&r.createElement("link",{rel:"icon",href:s}))}function P(e){var t=e.children;return r.createElement(r.Fragment,null,t)}var R=n(7462),N=n(4739),I=n(4711),D=n(6668),M=n(9727),F=n(1944),j=n(3320);function B(){var e=(0,E.Z)().i18n,t=e.defaultLocale,n=e.localeConfigs,a=(0,I.l)();return r.createElement(k.Z,null,Object.entries(n).map((function(e){var t=e[0],n=e[1].htmlLang;return r.createElement("link",{key:t,rel:"alternate",href:a.createUrl({locale:t,fullyQualified:!0}),hrefLang:n})})),r.createElement("link",{rel:"alternate",href:a.createUrl({locale:t,fullyQualified:!0}),hrefLang:"x-default"}))}function z(e){var t=e.permalink,n=(0,E.Z)().siteConfig.url,a=function(){var e=(0,E.Z)().siteConfig.url,t=(0,c.TH)().pathname;return e+(0,O.Z)(t)}(),o=t?""+n+t:a;return r.createElement(k.Z,null,r.createElement("meta",{property:"og:url",content:o}),r.createElement("link",{rel:"canonical",href:o}))}function U(){var e=(0,E.Z)().i18n.currentLocale,t=(0,D.L)(),n=t.metadata,a=t.image;return r.createElement(r.Fragment,null,r.createElement(k.Z,null,r.createElement("meta",{name:"twitter:card",content:"summary_large_image"}),r.createElement("body",{className:M.h})),a&&r.createElement(F.d,{image:a}),r.createElement(z,null),r.createElement(B,null),r.createElement(N.Z,{tag:j.HX,locale:e}),r.createElement(k.Z,null,n.map((function(e,t){return r.createElement("meta",(0,R.Z)({key:t},e))}))))}var Z=n(780),$=n(4953);function q(){var e=(0,f.H)(s.Z),t=(0,c.TH)();return r.createElement(Z.Z,{fallback:$.Z},r.createElement(h.M,null,r.createElement(m.t,null,r.createElement(P,null,r.createElement(L,null),r.createElement(U,null),r.createElement(A,null),r.createElement(w,{location:p(t)},e)))))}var G=n(6887);var H=function(e){try{var t;return null==(t=document.createElement("link").relList)||null==t.supports?void 0:t.supports(e)}catch(n){return!1}}("prefetch")?function(e){return new Promise((function(t,n){var r,a;if("undefined"!=typeof document){var o=document.createElement("link");o.setAttribute("rel","prefetch"),o.setAttribute("href",e),o.onload=function(){return t()},o.onerror=function(){return n()};var i=null!=(r=document.getElementsByTagName("head")[0])?r:null==(a=document.getElementsByName("script")[0])?void 0:a.parentNode;null==i||i.appendChild(o)}else n()}))}:function(e){return new Promise((function(t,n){var r=new XMLHttpRequest;r.open("GET",e,!0),r.withCredentials=!0,r.onload=function(){200===r.status?t():n()},r.send(null)}))};var V=n(9670),W=new Set,Y=new Set,K=function(){var e,t;return(null==(e=navigator.connection)?void 0:e.effectiveType.includes("2g"))||(null==(t=navigator.connection)?void 0:t.saveData)},Q={prefetch:function(e){if(!function(e){return!K()&&!Y.has(e)&&!W.has(e)}(e))return!1;W.add(e);var t=(0,f.f)(s.Z,e).flatMap((function(e){return t=e.route.path,Object.entries(G).filter((function(e){return e[0].replace(/-[^-]+$/,"")===t})).flatMap((function(e){var t=e[1];return Object.values((0,V.Z)(t))}));var t}));return Promise.all(t.map((function(e){var t=n.gca(e);return t&&!/undefined/.test(t)?H(t).catch((function(){})):Promise.resolve()})))},preload:function(e){return!!function(e){return!K()&&!Y.has(e)}(e)&&(Y.add(e),y(e))}},X=Object.freeze(Q);if(l.Z.canUseDOM){window.docusaurus=X;var J=a.hydrate;y(window.location.pathname).then((function(){J(r.createElement(i.B6,null,r.createElement(o.VK,null,r.createElement(q,null))),document.getElementById("__docusaurus"))}))}},595:function(e,t,n){"use strict";n.d(t,{_:function(){return c},M:function(){return f}});var r=n(7294),a=n(9782),o=n(1115),i=JSON.parse('{"defaultLocale":"en","locales":["en"],"currentLocale":"en","localeConfigs":{"en":{"label":"English","direction":"ltr","htmlLang":"en","calendar":"gregory"}}}'),l=n(7529),u=JSON.parse('{"docusaurusVersion":"2.0.0-beta.20","siteVersion":"0.0.0","pluginVersions":{"docusaurus-plugin-content-docs":{"type":"package","name":"@docusaurus/plugin-content-docs","version":"2.0.0-beta.20"},"docusaurus-plugin-content-pages":{"type":"package","name":"@docusaurus/plugin-content-pages","version":"2.0.0-beta.20"},"docusaurus-plugin-google-gtag":{"type":"package","name":"@docusaurus/plugin-google-gtag","version":"2.0.0-beta.20"},"docusaurus-plugin-sitemap":{"type":"package","name":"@docusaurus/plugin-sitemap","version":"2.0.0-beta.20"},"docusaurus-theme-classic":{"type":"package","name":"@docusaurus/theme-classic","version":"2.0.0-beta.20"}}}'),s={siteConfig:a.Z,siteMetadata:u,globalData:o,i18n:i,codeTranslations:l},c=r.createContext(s);function f(e){var t=e.children;return r.createElement(c.Provider,{value:s},t)}},780:function(e,t,n){"use strict";n.d(t,{Z:function(){return l}});var r=n(4578),a=n(7294),o=n(412),i=n(4953),l=function(e){function t(t){var n;return(n=e.call(this,t)||this).state={error:null},n}(0,r.Z)(t,e);var n=t.prototype;return n.componentDidCatch=function(e){o.Z.canUseDOM&&this.setState({error:e})},n.render=function(){var e,t=this,n=this.props.children,r=this.state.error;return r?(null!=(e=this.props.fallback)?e:i.Z)({error:r,tryAgain:function(){return t.setState({error:null})}}):null!=n?n:null},t}(a.Component)},412:function(e,t){"use strict";var n=!("undefined"==typeof window||!window.document||!window.document.createElement),r={canUseDOM:n,canUseEventListeners:n&&!(!window.addEventListener&&!window.attachEvent),canUseIntersectionObserver:n&&"IntersectionObserver"in window,canUseViewport:n&&!!window.screen};t.Z=r},5742:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(7294),a=n(405);function o(e){return r.createElement(a.ql,e)}},9960:function(e,t,n){"use strict";n.d(t,{Z:function(){return h}});var r=n(7462),a=n(3366),o=n(7294),i=n(3727),l=n(2263),u=n(3919),s=n(412),c=o.createContext({collectLink:function(){}});var f=n(4996),d=n(8780),p=["isNavLink","to","href","activeClassName","isActive","data-noBrokenLinkCheck","autoAddBaseUrl"];function m(e,t){var n,m,h=e.isNavLink,g=e.to,v=e.href,b=e.activeClassName,y=e.isActive,w=e["data-noBrokenLinkCheck"],k=e.autoAddBaseUrl,E=void 0===k||k,S=(0,a.Z)(e,p),x=(0,l.Z)().siteConfig,_=x.trailingSlash,C=x.baseUrl,T=(0,f.C)().withBaseUrl,A=(0,o.useContext)(c),O=(0,o.useRef)(null);(0,o.useImperativeHandle)(t,(function(){return O.current}));var L=g||v;var P,R=(0,u.Z)(L),N=null==L?void 0:L.replace("pathname://",""),I=void 0!==N?(P=N,E&&function(e){return e.startsWith("/")}(P)?T(P):P):void 0;I&&R&&(I=(0,d.applyTrailingSlash)(I,{trailingSlash:_,baseUrl:C}));var D=(0,o.useRef)(!1),M=h?i.OL:i.rU,F=s.Z.canUseIntersectionObserver,j=(0,o.useRef)();(0,o.useEffect)((function(){return!F&&R&&null!=I&&window.docusaurus.prefetch(I),function(){F&&j.current&&j.current.disconnect()}}),[j,I,F,R]);var B=null!=(n=null==(m=I)?void 0:m.startsWith("#"))&&n,z=!I||!R||B;return z||w||A.collectLink(I),z?o.createElement("a",(0,r.Z)({ref:O,href:I},L&&!R&&{target:"_blank",rel:"noopener noreferrer"},S)):o.createElement(M,(0,r.Z)({},S,{onMouseEnter:function(){D.current||null==I||(window.docusaurus.preload(I),D.current=!0)},innerRef:function(e){O.current=e,F&&e&&R&&(j.current=new window.IntersectionObserver((function(t){t.forEach((function(t){e===t.target&&(t.isIntersecting||t.intersectionRatio>0)&&(j.current.unobserve(e),j.current.disconnect(),null!=I&&window.docusaurus.prefetch(I))}))})),j.current.observe(e))},to:I},h&&{isActive:y,activeClassName:b}))}var h=o.forwardRef(m)},5999:function(e,t,n){"use strict";n.d(t,{Z:function(){return u},I:function(){return l}});var r=n(7294);function a(e,t){var n=e.split(/(\{\w+\})/).map((function(e,n){if(n%2==1){var r=null==t?void 0:t[e.slice(1,-1)];if(void 0!==r)return r}return e}));return n.some((function(e){return(0,r.isValidElement)(e)}))?n.map((function(e,t){return(0,r.isValidElement)(e)?r.cloneElement(e,{key:t}):e})).filter((function(e){return""!==e})):n.join("")}var o=n(7529);function i(e){var t,n,r=e.id,a=e.message;if(void 0===r&&void 0===a)throw new Error("Docusaurus translation declarations must have at least a translation id or a default translation message");return null!=(t=null!=(n=o[null!=r?r:a])?n:a)?t:r}function l(e,t){return a(i({message:e.message,id:e.id}),t)}function u(e){var t=e.children,n=e.id,o=e.values;if(t&&"string"!=typeof t)throw console.warn("Illegal <Translate> children",t),new Error("The Docusaurus <Translate> component only accept simple string values");var l=i({message:t,id:n});return r.createElement(r.Fragment,null,a(l,o))}},9935:function(e,t,n){"use strict";n.d(t,{m:function(){return r}});var r="default"},3919:function(e,t,n){"use strict";function r(e){return!0===/^(?:\w*:|\/\/)/.test(e)}function a(e){return void 0!==e&&!r(e)}n.d(t,{Z:function(){return a},b:function(){return r}})},8143:function(e,t,n){"use strict";n.r(t),n.d(t,{Redirect:function(){return r.l_},matchPath:function(){return r.LX},useHistory:function(){return r.k6},useLocation:function(){return r.TH}});var r=n(6775)},4996:function(e,t,n){"use strict";n.d(t,{C:function(){return o},Z:function(){return i}});var r=n(2263),a=n(3919);function o(){var e=(0,r.Z)().siteConfig,t=e.baseUrl,n=e.url;return{withBaseUrl:function(e,r){return function(e,t,n,r){var o=void 0===r?{}:r,i=o.forcePrependBaseUrl,l=void 0!==i&&i,u=o.absolute,s=void 0!==u&&u;if(!n||n.startsWith("#")||(0,a.b)(n))return n;if(l)return t+n.replace(/^\//,"");if(n===t.replace(/\/$/,""))return t;var c=n.startsWith(t)?n:t+n.replace(/^\//,"");return s?e+c:c}(n,t,e,r)}}}function i(e,t){return void 0===t&&(t={}),(0,o().withBaseUrl)(e,t)}},2263:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(7294),a=n(595);function o(){return(0,r.useContext)(a._)}},8084:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return o},useAllPluginInstancesData:function(){return i},usePluginData:function(){return l}});var r=n(2263),a=n(9935);function o(){var e=(0,r.Z)().globalData;if(!e)throw new Error("Docusaurus global data not found.");return e}function i(e,t){void 0===t&&(t={});var n=o()[e];if(!n&&t.failfast)throw new Error('Docusaurus plugin global data not found for "'+e+'" plugin.');return n}function l(e,t,n){void 0===t&&(t=a.m),void 0===n&&(n={});var r=i(e),o=null==r?void 0:r[t];if(!o&&n.failfast)throw new Error('Docusaurus plugin global data not found for "'+e+'" plugin with id "'+t+'".');return o}},2389:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(7294),a=n(8934);function o(){return(0,r.useContext)(a._)}},9670:function(e,t,n){"use strict";n.d(t,{Z:function(){return r}});function r(e){var t={};return function e(n,r){Object.entries(n).forEach((function(n){var a,o=n[0],i=n[1],l=r?r+"."+o:o;"object"==typeof(a=i)&&a&&Object.keys(a).length>0?e(i,l):t[l]=i}))}(e),t}},226:function(e,t,n){"use strict";n.d(t,{_:function(){return a},z:function(){return o}});var r=n(7294),a=r.createContext(null);function o(e){var t=e.children,n=e.value,o=r.useContext(a),i=(0,r.useMemo)((function(){return function(e){var t=e.parent,n=e.value;if(!t){if(!n)throw new Error("Unexpected: no Docusaurus route context found");if(!("plugin"in n))throw new Error("Unexpected: Docusaurus topmost route context has no `plugin` attribute");return n}var r=Object.assign({},t.data,null==n?void 0:n.data);return{plugin:t.plugin,data:r}}({parent:o,value:n})}),[o,n]);return r.createElement(a.Provider,{value:i},t)}},4953:function(e,t,n){"use strict";n.d(t,{Z:function(){return u}});var r=n(7294),a=n(8277),o=n(780),i=n(5742);function l(e){var t=e.error,n=e.tryAgain;return r.createElement("div",{style:{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center",height:"50vh",width:"100%",fontSize:"20px"}},r.createElement("h1",null,"This page crashed."),r.createElement("p",null,t.message),r.createElement("button",{type:"button",onClick:n},"Try again"))}function u(e){var t=e.error,n=e.tryAgain;return r.createElement(o.Z,{fallback:function(){return r.createElement(l,{error:t,tryAgain:n})}},r.createElement(i.Z,null,r.createElement("title",null,"Page Error")),r.createElement(a.Z,null,r.createElement(l,{error:t,tryAgain:n})))}},8408:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getDocVersionSuggestions=t.getActiveDocContext=t.getActiveVersion=t.getLatestVersion=t.getActivePlugin=void 0;var r=n(8143);t.getActivePlugin=function(e,t,n){void 0===n&&(n={});var a=Object.entries(e).sort((function(e,t){return t[1].path.localeCompare(e[1].path)})).find((function(e){var n=e[1];return!!(0,r.matchPath)(t,{path:n.path,exact:!1,strict:!1})})),o=a?{pluginId:a[0],pluginData:a[1]}:void 0;if(!o&&n.failfast)throw new Error("Can't find active docs plugin for \""+t+'" pathname, while it was expected to be found. Maybe you tried to use a docs feature that can only be used on a docs-related page? Existing docs plugin paths are: '+Object.values(e).map((function(e){return e.path})).join(", "));return o};function a(e,n){var a=(0,t.getLatestVersion)(e);return[].concat(e.versions.filter((function(e){return e!==a})),[a]).find((function(e){return!!(0,r.matchPath)(n,{path:e.path,exact:!1,strict:!1})}))}function o(e,t){var n,o,i=a(e,t),l=null==i?void 0:i.docs.find((function(e){return!!(0,r.matchPath)(t,{path:e.path,exact:!0,strict:!1})}));return{activeVersion:i,activeDoc:l,alternateDocVersions:l?(n=l.id,o={},e.versions.forEach((function(e){e.docs.forEach((function(t){t.id===n&&(o[e.name]=t)}))})),o):{}}}t.getLatestVersion=function(e){return e.versions.find((function(e){return e.isLast}))},t.getActiveVersion=a,t.getActiveDocContext=o,t.getDocVersionSuggestions=function(e,n){var r=(0,t.getLatestVersion)(e),a=o(e,n);return{latestDocSuggestion:null==a?void 0:a.alternateDocVersions[r.name],latestVersionSuggestion:r}}},5551:function(e,t,n){"use strict";t.Jo=t.Iw=t.yW=t.gB=t.gA=t.zh=t._r=void 0;var r=n(8143),a=n(8084),o=n(8408),i={};t._r=function(){var e;return null!=(e=(0,a.useAllPluginInstancesData)("docusaurus-plugin-content-docs"))?e:i};function l(e){void 0===e&&(e={});var n=(0,t._r)(),a=(0,r.useLocation)().pathname;return(0,o.getActivePlugin)(n,a,e)}t.zh=function(e){return(0,a.usePluginData)("docusaurus-plugin-content-docs",e,{failfast:!0})},t.gA=l,t.gB=function(e){return(0,t.zh)(e).versions},t.yW=function(e){var n=(0,t.zh)(e);return(0,o.getLatestVersion)(n)},t.Iw=function(e){var n=(0,t.zh)(e),a=(0,r.useLocation)().pathname;return(0,o.getActiveDocContext)(n,a)},t.Jo=function(e){var n=(0,t.zh)(e),a=(0,r.useLocation)().pathname;return(0,o.getDocVersionSuggestions)(n,a)}},6657:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(655).__importDefault(n(1115)).default["docusaurus-plugin-google-gtag"].default.trackingID,a={onRouteDidUpdate:function(e){var t=e.location,n=e.previousLocation;n&&t.pathname!==n.pathname&&(window.gtag("config",r,{page_path:t.pathname,page_title:document.title}),window.gtag("event","page_view",{page_title:document.title,page_location:window.location.href,page_path:t.pathname}))}};t.default=a},541:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(7294),a="iconExternalLink_I5OW";function o(e){var t=e.width,n=void 0===t?13.5:t,o=e.height,i=void 0===o?13.5:o;return r.createElement("svg",{width:n,height:i,"aria-hidden":"true",viewBox:"0 0 24 24",className:a},r.createElement("path",{fill:"currentColor",d:"M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"}))}},8277:function(e,t,n){"use strict";n.d(t,{Z:function(){return Et}});var r=n(7294),a=n(6010),o=n(780),i=n(5999),l=n(6775),u=n(5936),s=n(5281);function c(e){e.setAttribute("tabindex","-1"),e.focus(),e.removeAttribute("tabindex")}var f="skipToContent_ZgBM";function d(){var e=function(){var e=(0,r.useRef)(null),t=(0,l.k6)().action,n=(0,r.useCallback)((function(e){e.preventDefault();var t=document.querySelector("main:first-of-type")||document.querySelector("."+s.k.wrapper.main);t&&c(t)}),[]);return(0,u.S)((function(n){var r=n.location;e.current&&!r.hash&&"PUSH"===t&&c(e.current)})),{containerRef:e,handleSkip:n}}(),t=e.containerRef,n=e.handleSkip;return r.createElement("div",{ref:t,role:"region"},r.createElement("a",{href:"#",className:f,onClick:n},r.createElement(i.Z,{id:"theme.common.skipToMainContent",description:"The skip to content label used for accessibility, allowing to rapidly navigate to main content with keyboard tab/enter navigation"},"Skip to main content")))}var p=n(9689),m=n(6668),h=n(7462),g=n(3366),v=["width","height","color","strokeWidth","className"];function b(e){var t=e.width,n=void 0===t?21:t,a=e.height,o=void 0===a?21:a,i=e.color,l=void 0===i?"currentColor":i,u=e.strokeWidth,s=void 0===u?1.2:u,c=(e.className,(0,g.Z)(e,v));return r.createElement("svg",(0,h.Z)({viewBox:"0 0 15 15",width:n,height:o},c),r.createElement("g",{stroke:l,strokeWidth:s},r.createElement("path",{d:"M.75.75l13.5 13.5M14.25.75L.75 14.25"})))}var y="announcementBar_IbjG",w="announcementBarPlaceholder_NC_W",k="announcementBarClose_FG1z",E="announcementBarContent_KsVm";function S(){var e=(0,p.nT)(),t=e.isActive,n=e.close,o=(0,m.L)().announcementBar;if(!t)return null;var l=o.content,u=o.backgroundColor,s=o.textColor,c=o.isCloseable;return r.createElement("div",{className:y,style:{backgroundColor:u,color:s},role:"banner"},c&&r.createElement("div",{className:w}),r.createElement("div",{className:E,dangerouslySetInnerHTML:{__html:l}}),c?r.createElement("button",{type:"button",className:(0,a.Z)("clean-btn close",k),onClick:n,"aria-label":(0,i.I)({id:"theme.AnnouncementBar.closeButtonAriaLabel",message:"Close",description:"The ARIA label for close button of announcement bar"})},r.createElement(b,{width:14,height:14,strokeWidth:3.1})):null)}var x=n(9688),_=n(2961),C=n(3102),T=r.createContext(null);function A(e){var t,n,a,o,i,l,u,s=e.children,c=(t=(0,_.e)(),n=(0,C.HY)(),a=(0,r.useState)(!1),o=a[0],i=a[1],l=null!==n.component,u=(0,x.D9)(l),(0,r.useEffect)((function(){l&&!u&&i(!0)}),[l,u]),(0,r.useEffect)((function(){l?t.shown||i(!0):i(!1)}),[t.shown,l]),(0,r.useMemo)((function(){return[o,i]}),[o]));return r.createElement(T.Provider,{value:c},s)}function O(e){if(e.component){var t=e.component;return r.createElement(t,Object.assign({},e.props))}}function L(){var e=(0,r.useContext)(T);if(!e)throw new x.i6("NavbarSecondaryMenuDisplayProvider");var t=e[0],n=e[1],a=(0,r.useCallback)((function(){return n(!1)}),[n]),o=(0,C.HY)();return(0,r.useMemo)((function(){return{shown:t,hide:a,content:O(o)}}),[a,o,t])}function P(e){var t=e.header,n=e.primaryMenu,o=e.secondaryMenu,i=L().shown;return r.createElement("div",{className:"navbar-sidebar"},t,r.createElement("div",{className:(0,a.Z)("navbar-sidebar__items",{"navbar-sidebar__items--show-secondary":i})},r.createElement("div",{className:"navbar-sidebar__item menu"},n),r.createElement("div",{className:"navbar-sidebar__item menu"},o)))}var R=n(2949),N=n(2389);function I(e){return r.createElement("svg",(0,h.Z)({viewBox:"0 0 24 24",width:24,height:24},e),r.createElement("path",{fill:"currentColor",d:"M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"}))}function D(e){return r.createElement("svg",(0,h.Z)({viewBox:"0 0 24 24",width:24,height:24},e),r.createElement("path",{fill:"currentColor",d:"M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"}))}var M={toggle:"toggle_S7eR",toggleButton:"toggleButton_rCf9",darkToggleIcon:"darkToggleIcon_nQuB",lightToggleIcon:"lightToggleIcon_v35p",toggleButtonDisabled:"toggleButtonDisabled_Pu9x"};function F(e){var t=e.className,n=e.value,o=e.onChange,l=(0,N.Z)(),u=(0,i.I)({message:"Switch between dark and light mode (currently {mode})",id:"theme.colorToggle.ariaLabel",description:"The ARIA label for the navbar color mode toggle"},{mode:"dark"===n?(0,i.I)({message:"dark mode",id:"theme.colorToggle.ariaLabel.mode.dark",description:"The name for the dark color mode"}):(0,i.I)({message:"light mode",id:"theme.colorToggle.ariaLabel.mode.light",description:"The name for the light color mode"})});return r.createElement("div",{className:(0,a.Z)(M.toggle,t)},r.createElement("button",{className:(0,a.Z)("clean-btn",M.toggleButton,!l&&M.toggleButtonDisabled),type:"button",onClick:function(){return o("dark"===n?"light":"dark")},disabled:!l,title:u,"aria-label":u},r.createElement(I,{className:(0,a.Z)(M.toggleIcon,M.lightToggleIcon)}),r.createElement(D,{className:(0,a.Z)(M.toggleIcon,M.darkToggleIcon)})))}var j=r.memo(F);function B(e){var t=e.className,n=(0,m.L)().colorMode.disableSwitch,a=(0,R.I)(),o=a.colorMode,i=a.setColorMode;return n?null:r.createElement(j,{className:t,value:o,onChange:i})}var z=n(5537);function U(){return r.createElement(z.Z,{className:"navbar__brand",imageClassName:"navbar__logo",titleClassName:"navbar__title text--truncate"})}function Z(){var e=(0,_.e)();return r.createElement("button",{type:"button",className:"clean-btn navbar-sidebar__close",onClick:function(){return e.toggle()}},r.createElement(b,{color:"var(--ifm-color-emphasis-600)"}))}function $(){return r.createElement("div",{className:"navbar-sidebar__brand"},r.createElement(U,null),r.createElement(B,{className:"margin-right--md"}),r.createElement(Z,null))}var q=n(9960),G=n(4996),H=n(541),V=n(3919);function W(e,t){return void 0!==e&&void 0!==t&&new RegExp(e,"gi").test(t)}var Y=["activeBasePath","activeBaseRegex","to","href","label","html","activeClassName","prependBaseUrlToHref"];function K(e){var t,n=e.activeBasePath,a=e.activeBaseRegex,o=e.to,i=e.href,l=e.label,u=e.html,s=e.activeClassName,c=void 0===s?"":s,f=e.prependBaseUrlToHref,d=(0,g.Z)(e,Y),p=(0,G.Z)(o),m=(0,G.Z)(n),v=(0,G.Z)(i,{forcePrependBaseUrl:!0}),b=l&&i&&!(0,V.Z)(i),y="dropdown__link--active"===c,w=u?{dangerouslySetInnerHTML:{__html:u}}:{children:r.createElement(r.Fragment,null,l,b&&r.createElement(H.Z,y&&{width:12,height:12}))};return i?r.createElement(q.Z,(0,h.Z)({href:f?v:i},d,w)):r.createElement(q.Z,(0,h.Z)({to:p,isNavLink:!0,activeClassName:null!=(t=d.className)&&t.includes(c)?"":c},(n||a)&&{isActive:function(e,t){return a?W(a,t.pathname):t.pathname.startsWith(m)}},d,w))}var Q=function(e){return e?"menu__link--active":"navbar__link--active"},X=["className","isDropdownItem"],J=["className","isDropdownItem"],ee=["mobile","position"];function te(e){var t=e.className,n=e.isDropdownItem,o=void 0!==n&&n,i=(0,g.Z)(e,X),l=r.createElement(K,(0,h.Z)({className:(0,a.Z)(o?"dropdown__link":"navbar__item navbar__link",t)},i));return o?r.createElement("li",null,l):l}function ne(e){var t=e.className,n=(e.isDropdownItem,(0,g.Z)(e,J));return r.createElement("li",{className:"menu__list-item"},r.createElement(K,(0,h.Z)({className:(0,a.Z)("menu__link",t)},n)))}function re(e){var t,n=e.mobile,a=void 0!==n&&n,o=(e.position,(0,g.Z)(e,ee)),i=a?ne:te;return r.createElement(i,(0,h.Z)({},o,{activeClassName:null!=(t=o.activeClassName)?t:Q(a)}))}var ae=n(8596),oe=n(2263);var ie=n(6043),le=["items","position","className"],ue=["items","className","position"],se=["mobile"];function ce(e,t){return e.some((function(e){return function(e,t){return!!(0,ae.Mg)(e.to,t)||!!W(e.activeBaseRegex,t)||!(!e.activeBasePath||!t.startsWith(e.activeBasePath))}(e,t)}))}function fe(e){var t,n=e.items,o=e.position,i=e.className,l=(0,g.Z)(e,le),u=(0,r.useRef)(null),s=(0,r.useState)(!1),c=s[0],f=s[1];return(0,r.useEffect)((function(){var e=function(e){u.current&&!u.current.contains(e.target)&&f(!1)};return document.addEventListener("mousedown",e),document.addEventListener("touchstart",e),function(){document.removeEventListener("mousedown",e),document.removeEventListener("touchstart",e)}}),[u]),r.createElement("div",{ref:u,className:(0,a.Z)("navbar__item","dropdown","dropdown--hoverable",{"dropdown--right":"right"===o,"dropdown--show":c})},r.createElement(K,(0,h.Z)({"aria-haspopup":"true","aria-expanded":c,role:"button",href:l.to?void 0:"#",className:(0,a.Z)("navbar__link",i)},l,{onClick:l.to?void 0:function(e){return e.preventDefault()},onKeyDown:function(e){"Enter"===e.key&&(e.preventDefault(),f(!c))}}),null!=(t=l.children)?t:l.label),r.createElement("ul",{className:"dropdown__menu"},n.map((function(e,t){return r.createElement(Re,(0,h.Z)({isDropdownItem:!0,onKeyDown:function(e){if(t===n.length-1&&"Tab"===e.key){e.preventDefault(),f(!1);var r=u.current.nextElementSibling;if(r)(r instanceof HTMLAnchorElement?r:r.querySelector("a")).focus()}},activeClassName:"dropdown__link--active"},e,{key:t}))}))))}function de(e){var t,n,o=e.items,i=e.className,u=(e.position,(0,g.Z)(e,ue)),s=(n=(0,oe.Z)().siteConfig.baseUrl,(0,l.TH)().pathname.replace(n,"/")),c=ce(o,s),f=(0,ie.u)({initialState:function(){return!c}}),d=f.collapsed,p=f.toggleCollapsed,m=f.setCollapsed;return(0,r.useEffect)((function(){c&&m(!c)}),[s,c,m]),r.createElement("li",{className:(0,a.Z)("menu__list-item",{"menu__list-item--collapsed":d})},r.createElement(K,(0,h.Z)({role:"button",className:(0,a.Z)("menu__link menu__link--sublist menu__link--sublist-caret",i)},u,{onClick:function(e){e.preventDefault(),p()}}),null!=(t=u.children)?t:u.label),r.createElement(ie.z,{lazy:!0,as:"ul",className:"menu__list",collapsed:d},o.map((function(e,t){return r.createElement(Re,(0,h.Z)({mobile:!0,isDropdownItem:!0,onClick:u.onClick,activeClassName:"menu__link--active"},e,{key:t}))}))))}function pe(e){var t=e.mobile,n=void 0!==t&&t,a=(0,g.Z)(e,se),o=n?de:fe;return r.createElement(o,a)}var me=["width","height"];function he(e){var t=e.width,n=void 0===t?20:t,a=e.height,o=void 0===a?20:a,i=(0,g.Z)(e,me);return r.createElement("svg",(0,h.Z)({viewBox:"0 0 24 24",width:n,height:o,"aria-hidden":!0},i),r.createElement("path",{fill:"currentColor",d:"M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"}))}var ge=n(4711),ve="iconLanguage_dNtB",be=["mobile","dropdownItemsBefore","dropdownItemsAfter"];var ye=function(){return null},we="searchBox_dLyj";function ke(e){var t=e.children;return r.createElement("div",{className:we},t)}var Ee=n(5551),Se=n(8425),xe=["docId","label","docsPluginId"];var _e=["sidebarId","label","docsPluginId"];var Ce=["label","to","docsPluginId"];var Te=n(373),Ae=["mobile","docsPluginId","dropdownActiveClassDisabled","dropdownItemsBefore","dropdownItemsAfter"],Oe=function(e){return e.docs.find((function(t){return t.id===e.mainDocId}))};var Le={default:re,localeDropdown:function(e){var t=e.mobile,n=e.dropdownItemsBefore,a=e.dropdownItemsAfter,o=(0,g.Z)(e,be),l=(0,oe.Z)().i18n,u=l.currentLocale,s=l.locales,c=l.localeConfigs,f=(0,ge.l)(),d=s.map((function(e){var t="pathname://"+f.createUrl({locale:e,fullyQualified:!1});return{isNavLink:!0,label:c[e].label,to:t,target:"_self",autoAddBaseUrl:!1,className:e===u?"dropdown__link--active":""}})),p=[].concat(n,d,a),m=t?(0,i.I)({message:"Languages",id:"theme.navbar.mobileLanguageDropdown.label",description:"The label for the mobile language switcher dropdown"}):c[u].label;return r.createElement(pe,(0,h.Z)({},o,{mobile:t,label:r.createElement(r.Fragment,null,r.createElement(he,{className:ve}),m),items:p}))},search:function(e){return e.mobile?null:r.createElement(ke,null,r.createElement(ye,null))},dropdown:pe,html:function(e){var t=e.value,n=e.className,o=e.mobile,i=void 0!==o&&o,l=e.isDropdownItem,u=void 0!==l&&l,s=u?"li":"div";return r.createElement(s,{className:(0,a.Z)({navbar__item:!i&&!u,"menu__list-item":i},n),dangerouslySetInnerHTML:{__html:t}})},doc:function(e){var t,n=e.docId,o=e.label,i=e.docsPluginId,l=(0,g.Z)(e,xe),u=(0,Ee.Iw)(i).activeDoc,s=(0,Se.vY)(n,i);if(null===s)return null;var c=Q(l.mobile);return r.createElement(re,(0,h.Z)({exact:!0},l,{className:(0,a.Z)(l.className,(t={},t[c]=(null==u?void 0:u.sidebar)&&u.sidebar===s.sidebar,t)),activeClassName:c,label:null!=o?o:s.id,to:s.path}))},docSidebar:function(e){var t,n=e.sidebarId,o=e.label,i=e.docsPluginId,l=(0,g.Z)(e,_e),u=(0,Ee.Iw)(i).activeDoc,s=(0,Se.oz)(n,i).link;if(!s)throw new Error('DocSidebarNavbarItem: Sidebar with ID "'+n+"\" doesn't have anything to be linked to.");var c=Q(l.mobile);return r.createElement(re,(0,h.Z)({exact:!0},l,{className:(0,a.Z)(l.className,(t={},t[c]=(null==u?void 0:u.sidebar)===n,t)),activeClassName:c,label:null!=o?o:s.label,to:s.path}))},docsVersion:function(e){var t=e.label,n=e.to,a=e.docsPluginId,o=(0,g.Z)(e,Ce),i=(0,Se.lO)(a)[0],l=null!=t?t:i.label,u=null!=n?n:function(e){return e.docs.find((function(t){return t.id===e.mainDocId}))}(i).path;return r.createElement(re,(0,h.Z)({},o,{label:l,to:u}))},docsVersionDropdown:function(e){var t=e.mobile,n=e.docsPluginId,a=e.dropdownActiveClassDisabled,o=e.dropdownItemsBefore,l=e.dropdownItemsAfter,u=(0,g.Z)(e,Ae),s=(0,Ee.Iw)(n),c=(0,Ee.gB)(n),f=(0,Te.J)(n).savePreferredVersionName,d=c.map((function(e){var t,n=null!=(t=null==s?void 0:s.alternateDocVersions[e.name])?t:Oe(e);return{isNavLink:!0,label:e.label,to:n.path,isActive:function(){return e===(null==s?void 0:s.activeVersion)},onClick:function(){return f(e.name)}}})),p=[].concat(o,d,l),m=(0,Se.lO)(n)[0],v=t&&p.length>1?(0,i.I)({id:"theme.navbar.mobileVersionsDropdown.label",message:"Versions",description:"The label for the navbar versions dropdown on mobile view"}):m.label,b=t&&p.length>1?void 0:Oe(m).path;return p.length<=1?r.createElement(re,(0,h.Z)({},u,{mobile:t,label:v,to:b,isActive:a?function(){return!1}:void 0})):r.createElement(pe,(0,h.Z)({},u,{mobile:t,label:v,to:b,items:p,isActive:a?function(){return!1}:void 0}))}},Pe=["type"];function Re(e){var t=e.type,n=(0,g.Z)(e,Pe),a=function(e,t){return e&&"default"!==e?e:t?"dropdown":"default"}(t,void 0!==n.items),o=function(e){var t=Le[e];if(!t)throw new Error('No NavbarItem component found for type "'+e+'".');return t}(a);return r.createElement(o,n)}function Ne(){var e=(0,_.e)(),t=(0,m.L)().navbar.items;return r.createElement("ul",{className:"menu__list"},t.map((function(t,n){return r.createElement(Re,(0,h.Z)({mobile:!0},t,{onClick:function(){return e.toggle()},key:n}))})))}function Ie(e){return r.createElement("button",(0,h.Z)({},e,{type:"button",className:"clean-btn navbar-sidebar__back"}),r.createElement(i.Z,{id:"theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel",description:"The label of the back button to return to main menu, inside the mobile navbar sidebar secondary menu (notably used to display the docs sidebar)"},"\u2190 Back to main menu"))}function De(){var e=0===(0,m.L)().navbar.items.length,t=L();return r.createElement(r.Fragment,null,!e&&r.createElement(Ie,{onClick:function(){return t.hide()}}),t.content)}function Me(){var e,t=(0,_.e)();return void 0===(e=t.shown)&&(e=!0),(0,r.useEffect)((function(){return document.body.style.overflow=e?"hidden":"visible",function(){document.body.style.overflow="visible"}}),[e]),t.shouldRender?r.createElement(P,{header:r.createElement($,null),primaryMenu:r.createElement(Ne,null),secondaryMenu:r.createElement(De,null)}):null}var Fe=n(2466);var je="navbarHideable_ObN2",Be="navbarHidden_FtgE";function ze(e){return r.createElement("div",(0,h.Z)({role:"presentation"},e,{className:(0,a.Z)("navbar-sidebar__backdrop",e.className)}))}function Ue(e){var t=e.children,n=(0,m.L)().navbar,o=n.hideOnScroll,i=n.style,l=(0,_.e)(),s=function(e){var t=(0,r.useState)(e),n=t[0],a=t[1],o=(0,r.useRef)(!1),i=(0,r.useRef)(0),l=(0,r.useCallback)((function(e){null!==e&&(i.current=e.getBoundingClientRect().height)}),[]);return(0,Fe.RF)((function(t,n){var r=t.scrollY;if(e)if(r<i.current)a(!0);else if(o.current)o.current=!1;else{var l=null==n?void 0:n.scrollY,u=document.documentElement.scrollHeight-i.current,s=window.innerHeight;l&&r>=l?a(!1):r+s<u&&a(!0)}})),(0,u.S)((function(t){if(e)return t.location.hash?(o.current=!0,void a(!1)):void a(!0)})),{navbarRef:l,isNavbarVisible:n}}(o),c=s.navbarRef,f=s.isNavbarVisible;return r.createElement("nav",{ref:c,className:(0,a.Z)("navbar","navbar--fixed-top",o&&[je,!f&&Be],{"navbar--dark":"dark"===i,"navbar--primary":"primary"===i,"navbar-sidebar--show":l.shown})},t,r.createElement(ze,{onClick:l.toggle}),r.createElement(Me,null))}function Ze(e){var t=e.children;return r.createElement(C.n2,null,r.createElement(_.M,null,r.createElement(A,null,t)))}var $e=["width","height","className"];function qe(e){var t=e.width,n=void 0===t?30:t,a=e.height,o=void 0===a?30:a,i=e.className,l=(0,g.Z)(e,$e);return r.createElement("svg",(0,h.Z)({className:i,width:n,height:o,viewBox:"0 0 30 30","aria-hidden":"true"},l),r.createElement("path",{stroke:"currentColor",strokeLinecap:"round",strokeMiterlimit:"10",strokeWidth:"2",d:"M4 7h22M4 15h22M4 23h22"}))}function Ge(){var e=(0,_.e)();return r.createElement("button",{onClick:e.toggle,onKeyDown:e.toggle,"aria-label":"Navigation bar toggle",className:"navbar__toggle clean-btn",type:"button",tabIndex:0},r.createElement(qe,null))}var He="colorModeToggle_vKtC";function Ve(e){var t=e.items;return r.createElement(r.Fragment,null,t.map((function(e,t){return r.createElement(Re,(0,h.Z)({},e,{key:t}))})))}function We(e){var t=e.left,n=e.right;return r.createElement("div",{className:"navbar__inner"},r.createElement("div",{className:"navbar__items"},t),r.createElement("div",{className:"navbar__items navbar__items--right"},n))}function Ye(){var e=(0,_.e)(),t=(0,m.L)().navbar.items,n=function(e){function t(e){var t;return"left"===(null!=(t=e.position)?t:"right")}return[e.filter(t),e.filter((function(e){return!t(e)}))]}(t),a=n[0],o=n[1],i=!t.some((function(e){return"search"===e.type}));return r.createElement(We,{left:r.createElement(r.Fragment,null,!e.disabled&&r.createElement(Ge,null),r.createElement(U,null),r.createElement(Ve,{items:a})),right:r.createElement(r.Fragment,null,r.createElement(Ve,{items:o}),r.createElement(B,{className:He}),i&&r.createElement(ke,null,r.createElement(ye,null)))})}function Ke(){return r.createElement(Ue,null,r.createElement(Ye,null))}var Qe=["to","href","label","prependBaseUrlToHref"];function Xe(e){var t=e.item,n=t.to,a=t.href,o=t.label,i=t.prependBaseUrlToHref,l=(0,g.Z)(t,Qe),u=(0,G.Z)(n),s=(0,G.Z)(a,{forcePrependBaseUrl:!0});return r.createElement(q.Z,(0,h.Z)({className:"footer__link-item"},a?{href:i?s:a}:{to:u},l),o,a&&!(0,V.Z)(a)&&r.createElement(H.Z,null))}function Je(e){var t=e.item;return t.html?r.createElement("li",{className:"footer__item",dangerouslySetInnerHTML:{__html:t.html}}):r.createElement("li",{key:t.href||t.to,className:"footer__item"},r.createElement(Xe,{item:t}))}function et(e){var t=e.column;return r.createElement("div",{className:"col footer__col"},r.createElement("div",{className:"footer__title"},t.title),r.createElement("ul",{className:"footer__items clean-list"},t.items.map((function(e,t){return r.createElement(Je,{key:t,item:e})}))))}function tt(e){var t=e.columns;return r.createElement("div",{className:"row footer__links"},t.map((function(e,t){return r.createElement(et,{key:t,column:e})})))}function nt(){return r.createElement("span",{className:"footer__link-separator"},"\xb7")}function rt(e){var t=e.item;return t.html?r.createElement("span",{className:"footer__link-item",dangerouslySetInnerHTML:{__html:t.html}}):r.createElement(Xe,{item:t})}function at(e){var t=e.links;return r.createElement("div",{className:"footer__links text--center"},r.createElement("div",{className:"footer__links"},t.map((function(e,n){return r.createElement(r.Fragment,{key:n},r.createElement(rt,{item:e}),t.length!==n+1&&r.createElement(nt,null))}))))}function ot(e){var t=e.links;return function(e){return"title"in e[0]}(t)?r.createElement(tt,{columns:t}):r.createElement(at,{links:t})}var it="footerLogoLink_gHmE",lt=n(9750);function ut(e){var t,n=e.logo,a=(0,G.C)().withBaseUrl,o={light:a(n.src),dark:a(null!=(t=n.srcDark)?t:n.src)};return r.createElement(lt.Z,{className:"footer__logo",alt:n.alt,sources:o,width:n.width,height:n.height})}function st(e){var t=e.logo;return t.href?r.createElement(q.Z,{href:t.href,className:it},r.createElement(ut,{logo:t})):r.createElement(ut,{logo:t})}function ct(e){var t=e.copyright;return r.createElement("div",{className:"footer__copyright",dangerouslySetInnerHTML:{__html:t}})}function ft(e){var t=e.style,n=e.links,o=e.logo,i=e.copyright;return r.createElement("footer",{className:(0,a.Z)("footer",{"footer--dark":"dark"===t})},r.createElement("div",{className:"container container-fluid"},n,(o||i)&&r.createElement("div",{className:"footer__bottom text--center"},o&&r.createElement("div",{className:"margin-bottom--sm"},o),i)))}function dt(){var e=(0,m.L)().footer;if(!e)return null;var t=e.copyright,n=e.links,a=e.logo,o=e.style;return r.createElement(ft,{style:o,links:n&&n.length>0&&r.createElement(ot,{links:n}),logo:a&&r.createElement(st,{logo:a}),copyright:t&&r.createElement(ct,{copyright:t})})}var pt=r.memo(dt),mt=n(12),ht="docusaurus.tab.",gt=r.createContext(void 0);function vt(e){var t=e.children,n=function(){var e=(0,r.useState)({}),t=e[0],n=e[1],a=(0,r.useCallback)((function(e,t){(0,mt.W)("docusaurus.tab."+e).set(t)}),[]);(0,r.useEffect)((function(){try{var e={};(0,mt._)().forEach((function(t){if(t.startsWith(ht)){var n=t.substring(ht.length);e[n]=(0,mt.W)(t).get()}})),n(e)}catch(t){console.error(t)}}),[]);var o=(0,r.useCallback)((function(e,t){n((function(n){var r;return Object.assign({},n,((r={})[e]=t,r))})),a(e,t)}),[a]);return(0,r.useMemo)((function(){return{tabGroupChoices:t,setTabGroupChoices:o}}),[t,o])}();return r.createElement(gt.Provider,{value:n},t)}var bt=n(1944);function yt(e){var t=e.children;return r.createElement(R.S,null,r.createElement(p.pl,null,r.createElement(vt,null,r.createElement(Fe.OC,null,r.createElement(Te.L5,null,r.createElement(bt.VC,null,r.createElement(Ze,null,t)))))))}var wt=n(9727);function kt(e){var t=e.error,n=e.tryAgain;return r.createElement("main",{className:"container margin-vert--xl"},r.createElement("div",{className:"row"},r.createElement("div",{className:"col col--6 col--offset-3"},r.createElement("h1",{className:"hero__title"},r.createElement(i.Z,{id:"theme.ErrorPageContent.title",description:"The title of the fallback page when the page crashed"},"This page crashed.")),r.createElement("p",null,t.message),r.createElement("div",null,r.createElement("button",{type:"button",onClick:n},r.createElement(i.Z,{id:"theme.ErrorPageContent.tryAgain",description:"The label of the button to try again when the page crashed"},"Try again"))))))}function Et(e){var t=e.children,n=e.noFooter,i=e.wrapperClassName,l=e.title,u=e.description;return(0,wt.t)(),r.createElement(yt,null,r.createElement(bt.d,{title:l,description:u}),r.createElement(d,null),r.createElement(S,null),r.createElement(Ke,null),r.createElement("div",{className:(0,a.Z)(s.k.wrapper.main,i)},r.createElement(o.Z,{fallback:kt},t)),!n&&r.createElement(pt,null))}},5537:function(e,t,n){"use strict";n.d(t,{Z:function(){return d}});var r=n(7462),a=n(3366),o=n(7294),i=n(9960),l=n(9750),u=n(4996),s=n(2263),c=n(6668),f=["imageClassName","titleClassName"];function d(e){var t=(0,s.Z)().siteConfig.title,n=(0,c.L)().navbar,d=n.title,p=n.logo,m=void 0===p?{src:""}:p,h=e.imageClassName,g=e.titleClassName,v=(0,a.Z)(e,f),b=(0,u.Z)(m.href||"/"),y={light:(0,u.Z)(m.src),dark:(0,u.Z)(m.srcDark||m.src)},w=o.createElement(l.Z,{sources:y,height:m.height,width:m.width,alt:m.alt||d||t});return o.createElement(i.Z,(0,r.Z)({to:b},v,m.target&&{target:m.target}),m.src&&(h?o.createElement("div",{className:h},w):w),null!=d&&o.createElement("b",{className:g},d))}},4739:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(7294),a=n(5742);function o(e){var t=e.locale,n=e.version,o=e.tag,i=t;return r.createElement(a.Z,null,t&&r.createElement("meta",{name:"docusaurus_locale",content:t}),n&&r.createElement("meta",{name:"docusaurus_version",content:n}),o&&r.createElement("meta",{name:"docusaurus_tag",content:o}),i&&r.createElement("meta",{name:"docsearch:language",content:i}),n&&r.createElement("meta",{name:"docsearch:version",content:n}),o&&r.createElement("meta",{name:"docsearch:docusaurus_tag",content:o}))}},9750:function(e,t,n){"use strict";n.d(t,{Z:function(){return f}});var r=n(7462),a=n(3366),o=n(7294),i=n(6010),l=n(2389),u=n(2949),s={themedImage:"themedImage_W2Cr","themedImage--light":"themedImage--light_TfLj","themedImage--dark":"themedImage--dark_oUvU"},c=["sources","className","alt"];function f(e){var t=(0,l.Z)(),n=(0,u.I)().colorMode,f=e.sources,d=e.className,p=e.alt,m=(0,a.Z)(e,c),h=t?"dark"===n?["dark"]:["light"]:["light","dark"];return o.createElement(o.Fragment,null,h.map((function(e){return o.createElement("img",(0,r.Z)({key:e,src:f[e],alt:p,className:(0,i.Z)(s.themedImage,s["themedImage--"+e],d)},m))})))}},467:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return a}});var r=n(9782);function a(e){var t=r.Z.themeConfig.prism.additionalLanguages;globalThis.Prism=e,t.forEach((function(e){n(6726)("./prism-"+e)})),delete globalThis.Prism}},8320:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r,a=(r=n(4865))&&r.__esModule?r:{default:r};n(9014),a.default.configure({showSpinner:!1});var o={onRouteUpdate:function(e){var t=e.location,n=e.previousLocation;if(n&&t.pathname!==n.pathname){var r=window.setTimeout((function(){a.default.start()}),200);return function(){return window.clearTimeout(r)}}},onRouteDidUpdate:function(){a.default.done()}};t.default=o},2448:function(e,t,n){"use strict";var r=a(n(7410));function a(e){return e&&e.__esModule?e:{default:e}}(0,a(n(467)).default)(r.default)},6043:function(e,t,n){"use strict";n.d(t,{u:function(){return u},z:function(){return g}});var r=n(3366),a=n(412),o=n(7294),i=["collapsed"],l=["lazy"];function u(e){var t=e.initialState,n=(0,o.useState)(null!=t&&t),r=n[0],a=n[1],i=(0,o.useCallback)((function(){a((function(e){return!e}))}),[]);return{collapsed:r,setCollapsed:a,toggleCollapsed:i}}var s={display:"none",overflow:"hidden",height:"0px"},c={display:"block",overflow:"visible",height:"auto"};function f(e,t){var n=t?s:c;e.style.display=n.display,e.style.overflow=n.overflow,e.style.height=n.height}function d(e){var t=e.collapsibleRef,n=e.collapsed,r=e.animation,a=(0,o.useRef)(!1);(0,o.useEffect)((function(){var e,o=t.current;function i(){var e,t,n=o.scrollHeight,a=null!=(e=null==r?void 0:r.duration)?e:function(e){var t=e/36;return Math.round(10*(4+15*Math.pow(t,.25)+t/5))}(n);return{transition:"height "+a+"ms "+(null!=(t=null==r?void 0:r.easing)?t:"ease-in-out"),height:n+"px"}}function l(){var e=i();o.style.transition=e.transition,o.style.height=e.height}if(!a.current)return f(o,n),void(a.current=!0);return o.style.willChange="height",e=requestAnimationFrame((function(){n?(l(),requestAnimationFrame((function(){o.style.height=s.height,o.style.overflow=s.overflow}))):(o.style.display="block",requestAnimationFrame((function(){l()})))})),function(){return cancelAnimationFrame(e)}}),[t,n,r])}function p(e){if(!a.Z.canUseDOM)return e?s:c}function m(e){var t=e.as,n=void 0===t?"div":t,r=e.collapsed,a=e.children,i=e.animation,l=e.onCollapseTransitionEnd,u=e.className,s=e.disableSSRStyle,c=(0,o.useRef)(null);return d({collapsibleRef:c,collapsed:r,animation:i}),o.createElement(n,{ref:c,style:s?void 0:p(r),onTransitionEnd:function(e){"height"===e.propertyName&&(f(c.current,r),null==l||l(r))},className:u},a)}function h(e){var t=e.collapsed,n=(0,r.Z)(e,i),a=(0,o.useState)(!t),l=a[0],u=a[1],s=(0,o.useState)(t),c=s[0],f=s[1];return(0,o.useLayoutEffect)((function(){t||u(!0)}),[t]),(0,o.useLayoutEffect)((function(){l&&f(t)}),[l,t]),l?o.createElement(m,Object.assign({},n,{collapsed:c})):null}function g(e){var t=e.lazy,n=(0,r.Z)(e,l),a=t?h:m;return o.createElement(a,Object.assign({},n))}},9689:function(e,t,n){"use strict";n.d(t,{nT:function(){return m},pl:function(){return p}});var r=n(7294),a=n(2389),o=n(12),i=n(9688),l=n(6668),u=(0,o.W)("docusaurus.announcement.dismiss"),s=(0,o.W)("docusaurus.announcement.id"),c=function(){return"true"===u.get()},f=function(e){return u.set(String(e))},d=r.createContext(null);function p(e){var t=e.children,n=function(){var e=(0,l.L)().announcementBar,t=(0,a.Z)(),n=(0,r.useState)((function(){return!!t&&c()})),o=n[0],i=n[1];(0,r.useEffect)((function(){i(c())}),[]);var u=(0,r.useCallback)((function(){f(!0),i(!0)}),[]);return(0,r.useEffect)((function(){if(e){var t=e.id,n=s.get();"annoucement-bar"===n&&(n="announcement-bar");var r=t!==n;s.set(t),r&&f(!1),!r&&c()||i(!1)}}),[e]),(0,r.useMemo)((function(){return{isActive:!!e&&!o,close:u}}),[e,o,u])}();return r.createElement(d.Provider,{value:n},t)}function m(){var e=(0,r.useContext)(d);if(!e)throw new i.i6("AnnouncementBarProvider");return e}},2949:function(e,t,n){"use strict";n.d(t,{I:function(){return g},S:function(){return h}});var r=n(7294),a=n(9688),o=n(412),i=n(12),l=n(6668),u=r.createContext(void 0),s="theme",c=(0,i.W)(s),f="light",d="dark",p=function(e){return e===d?d:f};function m(){var e=(0,l.L)().colorMode,t=e.defaultMode,n=e.disableSwitch,a=e.respectPrefersColorScheme,i=(0,r.useState)(function(e){return o.Z.canUseDOM?p(document.documentElement.getAttribute("data-theme")):p(e)}(t)),u=i[0],m=i[1];(0,r.useEffect)((function(){n&&c.del()}),[n]);var h=(0,r.useCallback)((function(e,n){void 0===n&&(n={});var r=n.persist,o=void 0===r||r;e?(m(e),o&&function(e){c.set(p(e))}(e)):(m(a?window.matchMedia("(prefers-color-scheme: dark)").matches?d:f:t),c.del())}),[a,t]);(0,r.useEffect)((function(){document.documentElement.setAttribute("data-theme",p(u))}),[u]),(0,r.useEffect)((function(){if(!n){var e=function(e){if(e.key===s){var t=c.get();null!==t&&h(p(t))}};return window.addEventListener("storage",e),function(){return window.removeEventListener("storage",e)}}}),[n,h]);var g=(0,r.useRef)(!1);return(0,r.useEffect)((function(){if(!n||a){var e=window.matchMedia("(prefers-color-scheme: dark)"),t=function(){window.matchMedia("print").matches||g.current?g.current=window.matchMedia("print").matches:h(null)};return e.addListener(t),function(){return e.removeListener(t)}}}),[h,n,a]),(0,r.useMemo)((function(){return{colorMode:u,setColorMode:h,get isDarkTheme(){return u===d},setLightTheme:function(){h(f)},setDarkTheme:function(){h(d)}}}),[u,h])}function h(e){var t=e.children,n=m();return r.createElement(u.Provider,{value:n},t)}function g(){var e=(0,r.useContext)(u);if(null==e)throw new a.i6("ColorModeProvider","Please see https://docusaurus.io/docs/api/themes/configuration#use-color-mode.");return e}},373:function(e,t,n){"use strict";n.d(t,{J:function(){return y},L5:function(){return v}});var r=n(7294),a=n(6668),o=n(8425),i=n(9688),l=n(12),u=n(5551),s=n(9935),c=function(e){return"docs-preferred-version-"+e},f=function(e,t,n){(0,l.W)(c(e),{persistence:t}).set(n)},d=function(e,t){return(0,l.W)(c(e),{persistence:t}).get()},p=function(e,t){(0,l.W)(c(e),{persistence:t}).del()};var m=r.createContext(null);function h(){var e=(0,u._r)(),t=(0,a.L)().docs.versionPersistence,n=(0,r.useMemo)((function(){return Object.keys(e)}),[e]),o=(0,r.useState)((function(){return function(e){return Object.fromEntries(e.map((function(e){return[e,{preferredVersionName:null}]})))}(n)})),i=o[0],l=o[1];return(0,r.useEffect)((function(){l(function(e){var t=e.pluginIds,n=e.versionPersistence,r=e.allDocsData;return Object.fromEntries(t.map((function(e){return[e,(t=e,a=d(t,n),r[t].versions.some((function(e){return e.name===a}))?{preferredVersionName:a}:(p(t,n),{preferredVersionName:null}))];var t,a})))}({allDocsData:e,versionPersistence:t,pluginIds:n}))}),[e,t,n]),[i,(0,r.useMemo)((function(){return{savePreferredVersion:function(e,n){f(e,t,n),l((function(t){var r;return Object.assign({},t,((r={})[e]={preferredVersionName:n},r))}))}}}),[t])]}function g(e){var t=e.children,n=h();return r.createElement(m.Provider,{value:n},t)}function v(e){var t=e.children;return o.cE?r.createElement(g,null,t):t}function b(){var e=(0,r.useContext)(m);if(!e)throw new i.i6("DocsPreferredVersionContextProvider");return e}function y(e){var t;void 0===e&&(e=s.m);var n=(0,u.zh)(e),a=b(),o=a[0],i=a[1],l=o[e].preferredVersionName;return{preferredVersion:null!=(t=n.versions.find((function(e){return e.name===l})))?t:null,savePreferredVersionName:(0,r.useCallback)((function(t){i.savePreferredVersion(e,t)}),[i,e])}}},1116:function(e,t,n){"use strict";n.d(t,{V:function(){return u},b:function(){return l}});var r=n(7294),a=n(9688),o=Symbol("EmptyContext"),i=r.createContext(o);function l(e){var t=e.children,n=e.name,a=e.items,o=(0,r.useMemo)((function(){return n&&a?{name:n,items:a}:null}),[n,a]);return r.createElement(i.Provider,{value:o},t)}function u(){var e=(0,r.useContext)(i);if(e===o)throw new a.i6("DocsSidebarProvider");return e}},2961:function(e,t,n){"use strict";n.d(t,{M:function(){return d},e:function(){return p}});var r=n(7294),a=n(3102),o=n(7524),i=n(6775),l=n(9688);function u(e){!function(e){var t=(0,i.k6)().block,n=(0,l.ed)(e);(0,r.useEffect)((function(){return t((function(e,t){return n(e,t)}))}),[t,n])}((function(t,n){if("POP"===n)return e(t,n)}))}var s=n(6668),c=r.createContext(void 0);function f(){var e,t=(e=(0,a.HY)(),0===(0,s.L)().navbar.items.length&&!e.component),n=(0,o.i)(),i=!t&&"mobile"===n,l=(0,r.useState)(!1),c=l[0],f=l[1];u((function(){if(c)return f(!1),!1}));var d=(0,r.useCallback)((function(){f((function(e){return!e}))}),[]);return(0,r.useEffect)((function(){"desktop"===n&&f(!1)}),[n]),(0,r.useMemo)((function(){return{disabled:t,shouldRender:i,toggle:d,shown:c}}),[t,i,d,c])}function d(e){var t=e.children,n=f();return r.createElement(c.Provider,{value:n},t)}function p(){var e=r.useContext(c);if(void 0===e)throw new l.i6("NavbarMobileSidebarProvider");return e}},3102:function(e,t,n){"use strict";n.d(t,{HY:function(){return l},Zo:function(){return u},n2:function(){return i}});var r=n(7294),a=n(9688),o=r.createContext(null);function i(e){var t=e.children,n=(0,r.useState)({component:null,props:null});return r.createElement(o.Provider,{value:n},t)}function l(){var e=(0,r.useContext)(o);if(!e)throw new a.i6("NavbarSecondaryMenuContentProvider");return e[0]}function u(e){var t=e.component,n=e.props,i=(0,r.useContext)(o);if(!i)throw new a.i6("NavbarSecondaryMenuContentProvider");var l,u=i[1],s=(l=n,(0,r.useMemo)((function(){return l}),[].concat(Object.keys(l),Object.values(l))));return(0,r.useEffect)((function(){u({component:t,props:s})}),[u,t,s]),(0,r.useEffect)((function(){return function(){return u({component:null,props:null})}}),[u]),null}},9727:function(e,t,n){"use strict";n.d(t,{h:function(){return a},t:function(){return o}});var r=n(7294),a="navigation-with-keyboard";function o(){(0,r.useEffect)((function(){function e(e){"keydown"===e.type&&"Tab"===e.key&&document.body.classList.add(a),"mousedown"===e.type&&document.body.classList.remove(a)}return document.addEventListener("keydown",e),document.addEventListener("mousedown",e),function(){document.body.classList.remove(a),document.removeEventListener("keydown",e),document.removeEventListener("mousedown",e)}}),[])}},7524:function(e,t,n){"use strict";n.d(t,{i:function(){return s}});var r=n(7294),a=n(412),o="desktop",i="mobile",l="ssr";function u(){return a.Z.canUseDOM?window.innerWidth>996?o:i:l}function s(){var e=(0,r.useState)((function(){return u()})),t=e[0],n=e[1];return(0,r.useEffect)((function(){function e(){n(u())}return window.addEventListener("resize",e),function(){window.removeEventListener("resize",e),clearTimeout(undefined)}}),[]),t}},5281:function(e,t,n){"use strict";n.d(t,{k:function(){return r}});var r={page:{blogListPage:"blog-list-page",blogPostPage:"blog-post-page",blogTagsListPage:"blog-tags-list-page",blogTagPostListPage:"blog-tags-post-list-page",docsDocPage:"docs-doc-page",docsTagsListPage:"docs-tags-list-page",docsTagDocListPage:"docs-tags-doc-list-page",mdxPage:"mdx-page"},wrapper:{main:"main-wrapper",blogPages:"blog-wrapper",docsPages:"docs-wrapper",mdxPages:"mdx-wrapper"},common:{editThisPage:"theme-edit-this-page",lastUpdated:"theme-last-updated",backToTopButton:"theme-back-to-top-button",codeBlock:"theme-code-block"},layout:{},docs:{docVersionBanner:"theme-doc-version-banner",docVersionBadge:"theme-doc-version-badge",docBreadcrumbs:"theme-doc-breadcrumbs",docMarkdown:"theme-doc-markdown",docTocMobile:"theme-doc-toc-mobile",docTocDesktop:"theme-doc-toc-desktop",docFooter:"theme-doc-footer",docFooterTagsRow:"theme-doc-footer-tags-row",docFooterEditMetaRow:"theme-doc-footer-edit-meta-row",docSidebarContainer:"theme-doc-sidebar-container",docSidebarMenu:"theme-doc-sidebar-menu",docSidebarItemCategory:"theme-doc-sidebar-item-category",docSidebarItemLink:"theme-doc-sidebar-item-link",docSidebarItemCategoryLevel:function(e){return"theme-doc-sidebar-item-category-level-"+e},docSidebarItemLinkLevel:function(e){return"theme-doc-sidebar-item-link-level-"+e}},blog:{}}},8425:function(e,t,n){"use strict";function r(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function a(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(n)return(n=n.call(e)).next.bind(n);if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return r(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?r(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var a=0;return function(){return a>=e.length?{done:!0}:{done:!1,value:e[a++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}n.d(t,{Wl:function(){return m},_F:function(){return g},cE:function(){return p},hI:function(){return k},lO:function(){return b},vY:function(){return w},oz:function(){return y},s1:function(){return v}});var o=n(7294),i=n(5551),l=n(373),u=n(1116);function s(e){return Array.from(new Set(e))}var c=n(8596),f=n(6775),d=n(8790),p=!!i._r;function m(e){if(e.href)return e.href;for(var t,n=a(e.items);!(t=n()).done;){var r=t.value;if("link"===r.type)return r.href;if("category"===r.type){var o=m(r);if(o)return o}}}var h=function(e,t){return void 0!==e&&(0,c.Mg)(e,t)};function g(e,t){return"link"===e.type?h(e.href,t):"category"===e.type&&(h(e.href,t)||function(e,t){return e.some((function(e){return g(e,t)}))}(e.items,t))}function v(){var e,t=(0,u.V)(),n=(0,f.TH)().pathname;if(!1===(null==(e=(0,i.gA)())?void 0:e.pluginData.breadcrumbs)||!t)return null;var r=[];return function e(t){for(var o,i=a(t);!(o=i()).done;){var l=o.value;if("category"===l.type&&((0,c.Mg)(l.href,n)||e(l.items))||"link"===l.type&&(0,c.Mg)(l.href,n))return r.push(l),!0}return!1}(t.items),r.reverse()}function b(e){var t=(0,i.Iw)(e).activeVersion,n=(0,l.J)(e).preferredVersion,r=(0,i.yW)(e);return(0,o.useMemo)((function(){return s([t,n,r].filter(Boolean))}),[t,n,r])}function y(e,t){var n=b(t);return(0,o.useMemo)((function(){var t=n.flatMap((function(e){return e.sidebars?Object.entries(e.sidebars):[]})),r=t.find((function(t){return t[0]===e}));if(!r)throw new Error("Can't find any sidebar with id \""+e+'" in version'+(n.length>1?"s":"")+" "+n.map((function(e){return e.name})).join(", ")+'".\n  Available sidebar ids are:\n  - '+Object.keys(t).join("\n- "));return r[1]}),[e,n])}function w(e,t){var n=b(t);return(0,o.useMemo)((function(){var t=n.flatMap((function(e){return e.docs})),r=t.find((function(t){return t.id===e}));if(!r){if(n.flatMap((function(e){return e.draftIds})).includes(e))return null;throw new Error("DocNavbarItem: couldn't find any doc with id \""+e+'" in version'+(n.length>1?"s":"")+" "+n.map((function(e){return e.name})).join(", ")+'".\nAvailable doc ids are:\n- '+s(t.map((function(e){return e.id}))).join("\n- "))}return r}),[e,n])}function k(e){var t=e.route,n=e.versionMetadata,r=(0,f.TH)(),a=t.routes,o=a.find((function(e){return(0,f.LX)(r.pathname,e)}));if(!o)return null;var i=o.sidebar,l=i?n.docsSidebars[i]:void 0;return{docElement:(0,d.H)(a,{versionMetadata:n}),sidebarName:i,sidebarItems:l}}},1944:function(e,t,n){"use strict";n.d(t,{FG:function(){return d},d:function(){return c},VC:function(){return p}});var r=n(7294),a=n(5742),o=n(6010),i=n(226);function l(){var e=r.useContext(i._);if(!e)throw new Error("Unexpected: no Docusaurus route context found");return e}var u=n(4996),s=n(2263);function c(e){var t=e.title,n=e.description,o=e.keywords,i=e.image,l=e.children,c=function(e){var t=(0,s.Z)().siteConfig,n=t.title,r=t.titleDelimiter;return null!=e&&e.trim().length?e.trim()+" "+r+" "+n:n}(t),f=(0,u.C)().withBaseUrl,d=i?f(i,{absolute:!0}):void 0;return r.createElement(a.Z,null,t&&r.createElement("title",null,c),t&&r.createElement("meta",{property:"og:title",content:c}),n&&r.createElement("meta",{name:"description",content:n}),n&&r.createElement("meta",{property:"og:description",content:n}),o&&r.createElement("meta",{name:"keywords",content:Array.isArray(o)?o.join(","):o}),d&&r.createElement("meta",{property:"og:image",content:d}),d&&r.createElement("meta",{name:"twitter:image",content:d}),l)}var f=r.createContext(void 0);function d(e){var t=e.className,n=e.children,i=r.useContext(f),l=(0,o.Z)(i,t);return r.createElement(f.Provider,{value:l},r.createElement(a.Z,null,r.createElement("html",{className:l})),n)}function p(e){var t=e.children,n=l(),a="plugin-"+n.plugin.name.replace(/docusaurus-(?:plugin|theme)-(?:content-)?/gi,""),i="plugin-id-"+n.plugin.id;return r.createElement(d,{className:(0,o.Z)(a,i)},t)}},9688:function(e,t,n){"use strict";n.d(t,{i6:function(){return m},ed:function(){return d},D9:function(){return p}});var r=n(6528),a=n(4578);function o(e){return o=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},o(e)}var i=n(9611);function l(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}function u(e,t,n){return u=l()?Reflect.construct.bind():function(e,t,n){var r=[null];r.push.apply(r,t);var a=new(Function.bind.apply(e,r));return n&&(0,i.Z)(a,n.prototype),a},u.apply(null,arguments)}function s(e){var t="function"==typeof Map?new Map:void 0;return s=function(e){if(null===e||(n=e,-1===Function.toString.call(n).indexOf("[native code]")))return e;var n;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,r)}function r(){return u(e,arguments,o(this).constructor)}return r.prototype=Object.create(e.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),(0,i.Z)(r,e)},s(e)}var c=n(7294),f=n(412).Z.canUseDOM?c.useLayoutEffect:c.useEffect;function d(e){var t=(0,c.useRef)(e);return f((function(){t.current=e}),[e]),(0,c.useCallback)((function(){return t.current.apply(t,arguments)}),[])}function p(e){var t=(0,c.useRef)();return f((function(){t.current=e})),t.current}var m=function(e){function t(t,n){var a,o,i,l;return(l=e.call(this)||this).name="ReactContextError",l.message="Hook "+(null==(a=l.stack)||null==(o=a.split("\n")[1])||null==(i=o.match((0,r.Z)(/at (?:\w+\.)?(\w+)/,{name:1})))?void 0:i.groups.name)+" is called outside the <"+t+">. "+(n||""),l}return(0,a.Z)(t,e),t}(s(Error))},8596:function(e,t,n){"use strict";n.d(t,{Mg:function(){return i},Ns:function(){return l}});var r=n(7294),a=n(723),o=n(2263);function i(e,t){var n=function(e){var t;return null==(t=!e||null!=e&&e.endsWith("/")?e:e+"/")?void 0:t.toLowerCase()};return n(e)===n(t)}function l(){var e=(0,o.Z)().siteConfig.baseUrl;return(0,r.useMemo)((function(){return function(e){var t=e.baseUrl;function n(e){return e.path===t&&!0===e.exact}function r(e){return e.path===t&&!e.exact}return function e(t){if(0!==t.length)return t.find(n)||e(t.filter(r).flatMap((function(e){var t;return null!=(t=e.routes)?t:[]})))}(e.routes)}({routes:a.Z,baseUrl:e})}),[e])}},2466:function(e,t,n){"use strict";n.d(t,{Ct:function(){return d},OC:function(){return u},RF:function(){return f}});var r=n(7294),a=n(9688),o=n(412),i=n(2389);var l=r.createContext(void 0);function u(e){var t,n=e.children,a=(t=(0,r.useRef)(!0),(0,r.useMemo)((function(){return{scrollEventsEnabledRef:t,enableScrollEvents:function(){t.current=!0},disableScrollEvents:function(){t.current=!1}}}),[]));return r.createElement(l.Provider,{value:a},n)}function s(){var e=(0,r.useContext)(l);if(null==e)throw new a.i6("ScrollControllerProvider");return e}var c=function(){return o.Z.canUseDOM?{scrollX:window.pageXOffset,scrollY:window.pageYOffset}:null};function f(e,t){void 0===t&&(t=[]);var n=s().scrollEventsEnabledRef,o=(0,r.useRef)(c()),i=(0,a.ed)(e);(0,r.useEffect)((function(){var e=function(){if(n.current){var e=c();i&&i(e,o.current),o.current=e}},t={passive:!0};return e(),window.addEventListener("scroll",e,t),function(){return window.removeEventListener("scroll",e,t)}}),[i,n].concat(t))}function d(){var e=(0,r.useRef)(null),t=(0,i.Z)()&&"smooth"===getComputedStyle(document.documentElement).scrollBehavior;return{startScroll:function(n){e.current=t?function(e){return window.scrollTo({top:e,behavior:"smooth"}),function(){}}(n):function(e){var t=null,n=document.documentElement.scrollTop>e;return function r(){var a=document.documentElement.scrollTop;(n&&a>e||!n&&a<e)&&(t=requestAnimationFrame(r),window.scrollTo(0,Math.floor(.85*(a-e))+e))}(),function(){return t&&cancelAnimationFrame(t)}}(n)},cancelScroll:function(){return null==e.current?void 0:e.current()}}}},3320:function(e,t,n){"use strict";n.d(t,{HX:function(){return r},os:function(){return a}});n(2263);var r="default";function a(e,t){return"docs-"+e+"-"+t}},12:function(e,t,n){"use strict";n.d(t,{W:function(){return l},_:function(){return u}});var r="localStorage";function a(e){if(void 0===e&&(e=r),"undefined"==typeof window)throw new Error("Browser storage is not available on Node.js/Docusaurus SSR process.");if("none"===e)return null;try{return window[e]}catch(n){return t=n,o||(console.warn("Docusaurus browser storage is not available.\nPossible reasons: running Docusaurus in an iframe, in an incognito browser session, or using too strict browser privacy settings.",t),o=!0),null}var t}var o=!1;var i={get:function(){return null},set:function(){},del:function(){}};function l(e,t){if("undefined"==typeof window)return function(e){function t(){throw new Error('Illegal storage API usage for storage key "'+e+'".\nDocusaurus storage APIs are not supposed to be called on the server-rendering process.\nPlease only call storage APIs in effects and event handlers.')}return{get:t,set:t,del:t}}(e);var n=a(null==t?void 0:t.persistence);return null===n?i:{get:function(){try{return n.getItem(e)}catch(t){return console.error("Docusaurus storage error, can't get key="+e,t),null}},set:function(t){try{n.setItem(e,t)}catch(r){console.error("Docusaurus storage error, can't set "+e+"="+t,r)}},del:function(){try{n.removeItem(e)}catch(t){console.error("Docusaurus storage error, can't delete key="+e,t)}}}}function u(e){void 0===e&&(e=r);var t=a(e);if(!t)return[];for(var n=[],o=0;o<t.length;o+=1){var i=t.key(o);null!==i&&n.push(i)}return n}},4711:function(e,t,n){"use strict";n.d(t,{l:function(){return o}});var r=n(2263),a=n(6775);function o(){var e=(0,r.Z)(),t=e.siteConfig,n=t.baseUrl,o=t.url,i=e.i18n,l=i.defaultLocale,u=i.currentLocale,s=(0,a.TH)().pathname,c=u===l?n:n.replace("/"+u+"/","/"),f=s.replace(n,"");return{createUrl:function(e){var t=e.locale;return""+(e.fullyQualified?o:"")+function(e){return e===l?""+c:""+c+e+"/"}(t)+f}}}},5936:function(e,t,n){"use strict";n.d(t,{S:function(){return i}});var r=n(7294),a=n(6775),o=n(9688);function i(e){var t=(0,a.TH)(),n=(0,o.D9)(t),i=(0,o.ed)(e);(0,r.useEffect)((function(){n&&t!==n&&i({location:t,previousLocation:n})}),[i,t,n])}},6668:function(e,t,n){"use strict";n.d(t,{L:function(){return a}});var r=n(2263);function a(){return(0,r.Z)().siteConfig.themeConfig}},8802:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){var n=t.trailingSlash,r=t.baseUrl;if(e.startsWith("#"))return e;if(void 0===n)return e;var a,o=e.split(/[#?]/)[0],i="/"===o||o===r?o:(a=o,n?function(e){return e.endsWith("/")?e:e+"/"}(a):function(e){return e.endsWith("/")?e.slice(0,-1):e}(a));return e.replace(o,i)}},8780:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.applyTrailingSlash=t.blogPostContainerID=void 0,t.blogPostContainerID="post-content";var a=n(8802);Object.defineProperty(t,"applyTrailingSlash",{enumerable:!0,get:function(){return r(a).default}})},6010:function(e,t,n){"use strict";function r(e){var t,n,a="";if("string"==typeof e||"number"==typeof e)a+=e;else if("object"==typeof e)if(Array.isArray(e))for(t=0;t<e.length;t++)e[t]&&(n=r(e[t]))&&(a&&(a+=" "),a+=n);else for(t in e)e[t]&&(a&&(a+=" "),a+=t);return a}function a(){for(var e,t,n=0,a="";n<arguments.length;)(e=arguments[n++])&&(t=r(e))&&(a&&(a+=" "),a+=t);return a}n.d(t,{Z:function(){return a}})},2358:function(e,t,n){"use strict";n.d(t,{lX:function(){return S},q_:function(){return O},ob:function(){return h},PP:function(){return P},Ep:function(){return m},Hp:function(){return g}});var r=n(7462);function a(e){return"/"===e.charAt(0)}function o(e,t){for(var n=t,r=n+1,a=e.length;r<a;n+=1,r+=1)e[n]=e[r];e.pop()}var i=function(e,t){void 0===t&&(t="");var n,r=e&&e.split("/")||[],i=t&&t.split("/")||[],l=e&&a(e),u=t&&a(t),s=l||u;if(e&&a(e)?i=r:r.length&&(i.pop(),i=i.concat(r)),!i.length)return"/";if(i.length){var c=i[i.length-1];n="."===c||".."===c||""===c}else n=!1;for(var f=0,d=i.length;d>=0;d--){var p=i[d];"."===p?o(i,d):".."===p?(o(i,d),f++):f&&(o(i,d),f--)}if(!s)for(;f--;f)i.unshift("..");!s||""===i[0]||i[0]&&a(i[0])||i.unshift("");var m=i.join("/");return n&&"/"!==m.substr(-1)&&(m+="/"),m};function l(e){return e.valueOf?e.valueOf():Object.prototype.valueOf.call(e)}var u=function e(t,n){if(t===n)return!0;if(null==t||null==n)return!1;if(Array.isArray(t))return Array.isArray(n)&&t.length===n.length&&t.every((function(t,r){return e(t,n[r])}));if("object"==typeof t||"object"==typeof n){var r=l(t),a=l(n);return r!==t||a!==n?e(r,a):Object.keys(Object.assign({},t,n)).every((function(r){return e(t[r],n[r])}))}return!1},s=n(2177);function c(e){return"/"===e.charAt(0)?e:"/"+e}function f(e){return"/"===e.charAt(0)?e.substr(1):e}function d(e,t){return function(e,t){return 0===e.toLowerCase().indexOf(t.toLowerCase())&&-1!=="/?#".indexOf(e.charAt(t.length))}(e,t)?e.substr(t.length):e}function p(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e}function m(e){var t=e.pathname,n=e.search,r=e.hash,a=t||"/";return n&&"?"!==n&&(a+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(a+="#"===r.charAt(0)?r:"#"+r),a}function h(e,t,n,a){var o;"string"==typeof e?(o=function(e){var t=e||"/",n="",r="",a=t.indexOf("#");-1!==a&&(r=t.substr(a),t=t.substr(0,a));var o=t.indexOf("?");return-1!==o&&(n=t.substr(o),t=t.substr(0,o)),{pathname:t,search:"?"===n?"":n,hash:"#"===r?"":r}}(e),o.state=t):(void 0===(o=(0,r.Z)({},e)).pathname&&(o.pathname=""),o.search?"?"!==o.search.charAt(0)&&(o.search="?"+o.search):o.search="",o.hash?"#"!==o.hash.charAt(0)&&(o.hash="#"+o.hash):o.hash="",void 0!==t&&void 0===o.state&&(o.state=t));try{o.pathname=decodeURI(o.pathname)}catch(l){throw l instanceof URIError?new URIError('Pathname "'+o.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):l}return n&&(o.key=n),a?o.pathname?"/"!==o.pathname.charAt(0)&&(o.pathname=i(o.pathname,a.pathname)):o.pathname=a.pathname:o.pathname||(o.pathname="/"),o}function g(e,t){return e.pathname===t.pathname&&e.search===t.search&&e.hash===t.hash&&e.key===t.key&&u(e.state,t.state)}function v(){var e=null;var t=[];return{setPrompt:function(t){return e=t,function(){e===t&&(e=null)}},confirmTransitionTo:function(t,n,r,a){if(null!=e){var o="function"==typeof e?e(t,n):e;"string"==typeof o?"function"==typeof r?r(o,a):a(!0):a(!1!==o)}else a(!0)},appendListener:function(e){var n=!0;function r(){n&&e.apply(void 0,arguments)}return t.push(r),function(){n=!1,t=t.filter((function(e){return e!==r}))}},notifyListeners:function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];t.forEach((function(e){return e.apply(void 0,n)}))}}}var b=!("undefined"==typeof window||!window.document||!window.document.createElement);function y(e,t){t(window.confirm(e))}var w="popstate",k="hashchange";function E(){try{return window.history.state||{}}catch(e){return{}}}function S(e){void 0===e&&(e={}),b||(0,s.Z)(!1);var t,n=window.history,a=(-1===(t=window.navigator.userAgent).indexOf("Android 2.")&&-1===t.indexOf("Android 4.0")||-1===t.indexOf("Mobile Safari")||-1!==t.indexOf("Chrome")||-1!==t.indexOf("Windows Phone"))&&window.history&&"pushState"in window.history,o=!(-1===window.navigator.userAgent.indexOf("Trident")),i=e,l=i.forceRefresh,u=void 0!==l&&l,f=i.getUserConfirmation,g=void 0===f?y:f,S=i.keyLength,x=void 0===S?6:S,_=e.basename?p(c(e.basename)):"";function C(e){var t=e||{},n=t.key,r=t.state,a=window.location,o=a.pathname+a.search+a.hash;return _&&(o=d(o,_)),h(o,r,n)}function T(){return Math.random().toString(36).substr(2,x)}var A=v();function O(e){(0,r.Z)(U,e),U.length=n.length,A.notifyListeners(U.location,U.action)}function L(e){(function(e){return void 0===e.state&&-1===navigator.userAgent.indexOf("CriOS")})(e)||N(C(e.state))}function P(){N(C(E()))}var R=!1;function N(e){if(R)R=!1,O();else{A.confirmTransitionTo(e,"POP",g,(function(t){t?O({action:"POP",location:e}):function(e){var t=U.location,n=D.indexOf(t.key);-1===n&&(n=0);var r=D.indexOf(e.key);-1===r&&(r=0);var a=n-r;a&&(R=!0,F(a))}(e)}))}}var I=C(E()),D=[I.key];function M(e){return _+m(e)}function F(e){n.go(e)}var j=0;function B(e){1===(j+=e)&&1===e?(window.addEventListener(w,L),o&&window.addEventListener(k,P)):0===j&&(window.removeEventListener(w,L),o&&window.removeEventListener(k,P))}var z=!1;var U={length:n.length,action:"POP",location:I,createHref:M,push:function(e,t){var r="PUSH",o=h(e,t,T(),U.location);A.confirmTransitionTo(o,r,g,(function(e){if(e){var t=M(o),i=o.key,l=o.state;if(a)if(n.pushState({key:i,state:l},null,t),u)window.location.href=t;else{var s=D.indexOf(U.location.key),c=D.slice(0,s+1);c.push(o.key),D=c,O({action:r,location:o})}else window.location.href=t}}))},replace:function(e,t){var r="REPLACE",o=h(e,t,T(),U.location);A.confirmTransitionTo(o,r,g,(function(e){if(e){var t=M(o),i=o.key,l=o.state;if(a)if(n.replaceState({key:i,state:l},null,t),u)window.location.replace(t);else{var s=D.indexOf(U.location.key);-1!==s&&(D[s]=o.key),O({action:r,location:o})}else window.location.replace(t)}}))},go:F,goBack:function(){F(-1)},goForward:function(){F(1)},block:function(e){void 0===e&&(e=!1);var t=A.setPrompt(e);return z||(B(1),z=!0),function(){return z&&(z=!1,B(-1)),t()}},listen:function(e){var t=A.appendListener(e);return B(1),function(){B(-1),t()}}};return U}var x="hashchange",_={hashbang:{encodePath:function(e){return"!"===e.charAt(0)?e:"!/"+f(e)},decodePath:function(e){return"!"===e.charAt(0)?e.substr(1):e}},noslash:{encodePath:f,decodePath:c},slash:{encodePath:c,decodePath:c}};function C(e){var t=e.indexOf("#");return-1===t?e:e.slice(0,t)}function T(){var e=window.location.href,t=e.indexOf("#");return-1===t?"":e.substring(t+1)}function A(e){window.location.replace(C(window.location.href)+"#"+e)}function O(e){void 0===e&&(e={}),b||(0,s.Z)(!1);var t=window.history,n=(window.navigator.userAgent.indexOf("Firefox"),e),a=n.getUserConfirmation,o=void 0===a?y:a,i=n.hashType,l=void 0===i?"slash":i,u=e.basename?p(c(e.basename)):"",f=_[l],g=f.encodePath,w=f.decodePath;function k(){var e=w(T());return u&&(e=d(e,u)),h(e)}var E=v();function S(e){(0,r.Z)(z,e),z.length=t.length,E.notifyListeners(z.location,z.action)}var O=!1,L=null;function P(){var e,t,n=T(),r=g(n);if(n!==r)A(r);else{var a=k(),i=z.location;if(!O&&(t=a,(e=i).pathname===t.pathname&&e.search===t.search&&e.hash===t.hash))return;if(L===m(a))return;L=null,function(e){if(O)O=!1,S();else{var t="POP";E.confirmTransitionTo(e,t,o,(function(n){n?S({action:t,location:e}):function(e){var t=z.location,n=D.lastIndexOf(m(t));-1===n&&(n=0);var r=D.lastIndexOf(m(e));-1===r&&(r=0);var a=n-r;a&&(O=!0,M(a))}(e)}))}}(a)}}var R=T(),N=g(R);R!==N&&A(N);var I=k(),D=[m(I)];function M(e){t.go(e)}var F=0;function j(e){1===(F+=e)&&1===e?window.addEventListener(x,P):0===F&&window.removeEventListener(x,P)}var B=!1;var z={length:t.length,action:"POP",location:I,createHref:function(e){var t=document.querySelector("base"),n="";return t&&t.getAttribute("href")&&(n=C(window.location.href)),n+"#"+g(u+m(e))},push:function(e,t){var n="PUSH",r=h(e,void 0,void 0,z.location);E.confirmTransitionTo(r,n,o,(function(e){if(e){var t=m(r),a=g(u+t);if(T()!==a){L=t,function(e){window.location.hash=e}(a);var o=D.lastIndexOf(m(z.location)),i=D.slice(0,o+1);i.push(t),D=i,S({action:n,location:r})}else S()}}))},replace:function(e,t){var n="REPLACE",r=h(e,void 0,void 0,z.location);E.confirmTransitionTo(r,n,o,(function(e){if(e){var t=m(r),a=g(u+t);T()!==a&&(L=t,A(a));var o=D.indexOf(m(z.location));-1!==o&&(D[o]=t),S({action:n,location:r})}}))},go:M,goBack:function(){M(-1)},goForward:function(){M(1)},block:function(e){void 0===e&&(e=!1);var t=E.setPrompt(e);return B||(j(1),B=!0),function(){return B&&(B=!1,j(-1)),t()}},listen:function(e){var t=E.appendListener(e);return j(1),function(){j(-1),t()}}};return z}function L(e,t,n){return Math.min(Math.max(e,t),n)}function P(e){void 0===e&&(e={});var t=e,n=t.getUserConfirmation,a=t.initialEntries,o=void 0===a?["/"]:a,i=t.initialIndex,l=void 0===i?0:i,u=t.keyLength,s=void 0===u?6:u,c=v();function f(e){(0,r.Z)(w,e),w.length=w.entries.length,c.notifyListeners(w.location,w.action)}function d(){return Math.random().toString(36).substr(2,s)}var p=L(l,0,o.length-1),g=o.map((function(e){return h(e,void 0,"string"==typeof e?d():e.key||d())})),b=m;function y(e){var t=L(w.index+e,0,w.entries.length-1),r=w.entries[t];c.confirmTransitionTo(r,"POP",n,(function(e){e?f({action:"POP",location:r,index:t}):f()}))}var w={length:g.length,action:"POP",location:g[p],index:p,entries:g,createHref:b,push:function(e,t){var r="PUSH",a=h(e,t,d(),w.location);c.confirmTransitionTo(a,r,n,(function(e){if(e){var t=w.index+1,n=w.entries.slice(0);n.length>t?n.splice(t,n.length-t,a):n.push(a),f({action:r,location:a,index:t,entries:n})}}))},replace:function(e,t){var r="REPLACE",a=h(e,t,d(),w.location);c.confirmTransitionTo(a,r,n,(function(e){e&&(w.entries[w.index]=a,f({action:r,location:a}))}))},go:y,goBack:function(){y(-1)},goForward:function(){y(1)},canGo:function(e){var t=w.index+e;return t>=0&&t<w.entries.length},block:function(e){return void 0===e&&(e=!1),c.setPrompt(e)},listen:function(e){return c.appendListener(e)}};return w}},8679:function(e,t,n){"use strict";var r=n(9864),a={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},o={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},i={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},l={};function u(e){return r.isMemo(e)?i:l[e.$$typeof]||a}l[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},l[r.Memo]=i;var s=Object.defineProperty,c=Object.getOwnPropertyNames,f=Object.getOwnPropertySymbols,d=Object.getOwnPropertyDescriptor,p=Object.getPrototypeOf,m=Object.prototype;e.exports=function e(t,n,r){if("string"!=typeof n){if(m){var a=p(n);a&&a!==m&&e(t,a,r)}var i=c(n);f&&(i=i.concat(f(n)));for(var l=u(t),h=u(n),g=0;g<i.length;++g){var v=i[g];if(!(o[v]||r&&r[v]||h&&h[v]||l&&l[v])){var b=d(n,v);try{s(t,v,b)}catch(y){}}}}return t}},1143:function(e){"use strict";e.exports=function(e,t,n,r,a,o,i,l){if(!e){var u;if(void 0===t)u=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var s=[n,r,a,o,i,l],c=0;(u=new Error(t.replace(/%s/g,(function(){return s[c++]})))).name="Invariant Violation"}throw u.framesToPop=1,u}}},5826:function(e){e.exports=Array.isArray||function(e){return"[object Array]"==Object.prototype.toString.call(e)}},6743:function(e,t,n){"use strict";n.r(t)},9014:function(e,t,n){"use strict";n.r(t)},2497:function(e,t,n){"use strict";n.r(t)},4383:function(e,t,n){"use strict";n.r(t)},2295:function(e,t,n){"use strict";n.r(t)},4865:function(e,t,n){var r,a;r=function(){var e,t,n={version:"0.2.0"},r=n.settings={minimum:.08,easing:"ease",positionUsing:"",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,showSpinner:!0,barSelector:'[role="bar"]',spinnerSelector:'[role="spinner"]',parent:"body",template:'<div class="bar" role="bar"><div class="peg"></div></div><div class="spinner" role="spinner"><div class="spinner-icon"></div></div>'};function a(e,t,n){return e<t?t:e>n?n:e}function o(e){return 100*(-1+e)}function i(e,t,n){var a;return(a="translate3d"===r.positionUsing?{transform:"translate3d("+o(e)+"%,0,0)"}:"translate"===r.positionUsing?{transform:"translate("+o(e)+"%,0)"}:{"margin-left":o(e)+"%"}).transition="all "+t+"ms "+n,a}n.configure=function(e){var t,n;for(t in e)void 0!==(n=e[t])&&e.hasOwnProperty(t)&&(r[t]=n);return this},n.status=null,n.set=function(e){var t=n.isStarted();e=a(e,r.minimum,1),n.status=1===e?null:e;var o=n.render(!t),s=o.querySelector(r.barSelector),c=r.speed,f=r.easing;return o.offsetWidth,l((function(t){""===r.positionUsing&&(r.positionUsing=n.getPositioningCSS()),u(s,i(e,c,f)),1===e?(u(o,{transition:"none",opacity:1}),o.offsetWidth,setTimeout((function(){u(o,{transition:"all "+c+"ms linear",opacity:0}),setTimeout((function(){n.remove(),t()}),c)}),c)):setTimeout(t,c)})),this},n.isStarted=function(){return"number"==typeof n.status},n.start=function(){n.status||n.set(0);var e=function(){setTimeout((function(){n.status&&(n.trickle(),e())}),r.trickleSpeed)};return r.trickle&&e(),this},n.done=function(e){return e||n.status?n.inc(.3+.5*Math.random()).set(1):this},n.inc=function(e){var t=n.status;return t?("number"!=typeof e&&(e=(1-t)*a(Math.random()*t,.1,.95)),t=a(t+e,0,.994),n.set(t)):n.start()},n.trickle=function(){return n.inc(Math.random()*r.trickleRate)},e=0,t=0,n.promise=function(r){return r&&"resolved"!==r.state()?(0===t&&n.start(),e++,t++,r.always((function(){0==--t?(e=0,n.done()):n.set((e-t)/e)})),this):this},n.render=function(e){if(n.isRendered())return document.getElementById("nprogress");c(document.documentElement,"nprogress-busy");var t=document.createElement("div");t.id="nprogress",t.innerHTML=r.template;var a,i=t.querySelector(r.barSelector),l=e?"-100":o(n.status||0),s=document.querySelector(r.parent);return u(i,{transition:"all 0 linear",transform:"translate3d("+l+"%,0,0)"}),r.showSpinner||(a=t.querySelector(r.spinnerSelector))&&p(a),s!=document.body&&c(s,"nprogress-custom-parent"),s.appendChild(t),t},n.remove=function(){f(document.documentElement,"nprogress-busy"),f(document.querySelector(r.parent),"nprogress-custom-parent");var e=document.getElementById("nprogress");e&&p(e)},n.isRendered=function(){return!!document.getElementById("nprogress")},n.getPositioningCSS=function(){var e=document.body.style,t="WebkitTransform"in e?"Webkit":"MozTransform"in e?"Moz":"msTransform"in e?"ms":"OTransform"in e?"O":"";return t+"Perspective"in e?"translate3d":t+"Transform"in e?"translate":"margin"};var l=function(){var e=[];function t(){var n=e.shift();n&&n(t)}return function(n){e.push(n),1==e.length&&t()}}(),u=function(){var e=["Webkit","O","Moz","ms"],t={};function n(e){return e.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,(function(e,t){return t.toUpperCase()}))}function r(t){var n=document.body.style;if(t in n)return t;for(var r,a=e.length,o=t.charAt(0).toUpperCase()+t.slice(1);a--;)if((r=e[a]+o)in n)return r;return t}function a(e){return e=n(e),t[e]||(t[e]=r(e))}function o(e,t,n){t=a(t),e.style[t]=n}return function(e,t){var n,r,a=arguments;if(2==a.length)for(n in t)void 0!==(r=t[n])&&t.hasOwnProperty(n)&&o(e,n,r);else o(e,a[1],a[2])}}();function s(e,t){return("string"==typeof e?e:d(e)).indexOf(" "+t+" ")>=0}function c(e,t){var n=d(e),r=n+t;s(n,t)||(e.className=r.substring(1))}function f(e,t){var n,r=d(e);s(e,t)&&(n=r.replace(" "+t+" "," "),e.className=n.substring(1,n.length-1))}function d(e){return(" "+(e.className||"")+" ").replace(/\s+/gi," ")}function p(e){e&&e.parentNode&&e.parentNode.removeChild(e)}return n},void 0===(a="function"==typeof r?r.call(t,n,t,e):r)||(e.exports=a)},7418:function(e){"use strict";var t=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,r=Object.prototype.propertyIsEnumerable;function a(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(e){r[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(a){return!1}}()?Object.assign:function(e,o){for(var i,l,u=a(e),s=1;s<arguments.length;s++){for(var c in i=Object(arguments[s]))n.call(i,c)&&(u[c]=i[c]);if(t){l=t(i);for(var f=0;f<l.length;f++)r.call(i,l[f])&&(u[l[f]]=i[l[f]])}}return u}},7410:function(e,t,n){"use strict";n.r(t);var r=function(){var e=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,t=0,n={},r={util:{encode:function e(t){return t instanceof a?new a(t.type,e(t.content),t.alias):Array.isArray(t)?t.map(e):t.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/\u00a0/g," ")},type:function(e){return Object.prototype.toString.call(e).slice(8,-1)},objId:function(e){return e.__id||Object.defineProperty(e,"__id",{value:++t}),e.__id},clone:function e(t,n){var a,o;switch(n=n||{},r.util.type(t)){case"Object":if(o=r.util.objId(t),n[o])return n[o];for(var i in a={},n[o]=a,t)t.hasOwnProperty(i)&&(a[i]=e(t[i],n));return a;case"Array":return o=r.util.objId(t),n[o]?n[o]:(a=[],n[o]=a,t.forEach((function(t,r){a[r]=e(t,n)})),a);default:return t}},getLanguage:function(t){for(;t;){var n=e.exec(t.className);if(n)return n[1].toLowerCase();t=t.parentElement}return"none"},setLanguage:function(t,n){t.className=t.className.replace(RegExp(e,"gi"),""),t.classList.add("language-"+n)},isActive:function(e,t,n){for(var r="no-"+t;e;){var a=e.classList;if(a.contains(t))return!0;if(a.contains(r))return!1;e=e.parentElement}return!!n}},languages:{plain:n,plaintext:n,text:n,txt:n,extend:function(e,t){var n=r.util.clone(r.languages[e]);for(var a in t)n[a]=t[a];return n},insertBefore:function(e,t,n,a){var o=(a=a||r.languages)[e],i={};for(var l in o)if(o.hasOwnProperty(l)){if(l==t)for(var u in n)n.hasOwnProperty(u)&&(i[u]=n[u]);n.hasOwnProperty(l)||(i[l]=o[l])}var s=a[e];return a[e]=i,r.languages.DFS(r.languages,(function(t,n){n===s&&t!=e&&(this[t]=i)})),i},DFS:function e(t,n,a,o){o=o||{};var i=r.util.objId;for(var l in t)if(t.hasOwnProperty(l)){n.call(t,l,t[l],a||l);var u=t[l],s=r.util.type(u);"Object"!==s||o[i(u)]?"Array"!==s||o[i(u)]||(o[i(u)]=!0,e(u,n,l,o)):(o[i(u)]=!0,e(u,n,null,o))}}},plugins:{},highlight:function(e,t,n){var o={code:e,grammar:t,language:n};return r.hooks.run("before-tokenize",o),o.tokens=r.tokenize(o.code,o.grammar),r.hooks.run("after-tokenize",o),a.stringify(r.util.encode(o.tokens),o.language)},tokenize:function(e,t){var n=t.rest;if(n){for(var r in n)t[r]=n[r];delete t.rest}var a=new l;return u(a,a.head,e),i(e,a,t,a.head,0),function(e){var t=[],n=e.head.next;for(;n!==e.tail;)t.push(n.value),n=n.next;return t}(a)},hooks:{all:{},add:function(e,t){var n=r.hooks.all;n[e]=n[e]||[],n[e].push(t)},run:function(e,t){var n=r.hooks.all[e];if(n&&n.length)for(var a,o=0;a=n[o++];)a(t)}},Token:a};function a(e,t,n,r){this.type=e,this.content=t,this.alias=n,this.length=0|(r||"").length}function o(e,t,n,r){e.lastIndex=t;var a=e.exec(n);if(a&&r&&a[1]){var o=a[1].length;a.index+=o,a[0]=a[0].slice(o)}return a}function i(e,t,n,l,c,f){for(var d in n)if(n.hasOwnProperty(d)&&n[d]){var p=n[d];p=Array.isArray(p)?p:[p];for(var m=0;m<p.length;++m){if(f&&f.cause==d+","+m)return;var h=p[m],g=h.inside,v=!!h.lookbehind,b=!!h.greedy,y=h.alias;if(b&&!h.pattern.global){var w=h.pattern.toString().match(/[imsuy]*$/)[0];h.pattern=RegExp(h.pattern.source,w+"g")}for(var k=h.pattern||h,E=l.next,S=c;E!==t.tail&&!(f&&S>=f.reach);S+=E.value.length,E=E.next){var x=E.value;if(t.length>e.length)return;if(!(x instanceof a)){var _,C=1;if(b){if(!(_=o(k,S,e,v))||_.index>=e.length)break;var T=_.index,A=_.index+_[0].length,O=S;for(O+=E.value.length;T>=O;)O+=(E=E.next).value.length;if(S=O-=E.value.length,E.value instanceof a)continue;for(var L=E;L!==t.tail&&(O<A||"string"==typeof L.value);L=L.next)C++,O+=L.value.length;C--,x=e.slice(S,O),_.index-=S}else if(!(_=o(k,0,x,v)))continue;T=_.index;var P=_[0],R=x.slice(0,T),N=x.slice(T+P.length),I=S+x.length;f&&I>f.reach&&(f.reach=I);var D=E.prev;if(R&&(D=u(t,D,R),S+=R.length),s(t,D,C),E=u(t,D,new a(d,g?r.tokenize(P,g):P,y,P)),N&&u(t,E,N),C>1){var M={cause:d+","+m,reach:I};i(e,t,n,E.prev,S,M),f&&M.reach>f.reach&&(f.reach=M.reach)}}}}}}function l(){var e={value:null,prev:null,next:null},t={value:null,prev:e,next:null};e.next=t,this.head=e,this.tail=t,this.length=0}function u(e,t,n){var r=t.next,a={value:n,prev:t,next:r};return t.next=a,r.prev=a,e.length++,a}function s(e,t,n){for(var r=t.next,a=0;a<n&&r!==e.tail;a++)r=r.next;t.next=r,r.prev=t,e.length-=a}return a.stringify=function e(t,n){if("string"==typeof t)return t;if(Array.isArray(t)){var a="";return t.forEach((function(t){a+=e(t,n)})),a}var o={type:t.type,content:e(t.content,n),tag:"span",classes:["token",t.type],attributes:{},language:n},i=t.alias;i&&(Array.isArray(i)?Array.prototype.push.apply(o.classes,i):o.classes.push(i)),r.hooks.run("wrap",o);var l="";for(var u in o.attributes)l+=" "+u+'="'+(o.attributes[u]||"").replace(/"/g,"&quot;")+'"';return"<"+o.tag+' class="'+o.classes.join(" ")+'"'+l+">"+o.content+"</"+o.tag+">"},r}(),a=r;r.default=r,a.languages.markup={comment:{pattern:/<!--(?:(?!<!--)[\s\S])*?-->/,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/<!DOCTYPE(?:[^>"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|<!--(?:[^-]|-(?!->))*-->)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^<!|>$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},a.languages.markup.tag.inside["attr-value"].inside.entity=a.languages.markup.entity,a.languages.markup.doctype.inside["internal-subset"].inside=a.languages.markup,a.hooks.add("wrap",(function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&amp;/,"&"))})),Object.defineProperty(a.languages.markup.tag,"addInlined",{value:function(e,t){var n={};n["language-"+t]={pattern:/(^<!\[CDATA\[)[\s\S]+?(?=\]\]>$)/i,lookbehind:!0,inside:a.languages[t]},n.cdata=/^<!\[CDATA\[|\]\]>$/i;var r={"included-cdata":{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,inside:n}};r["language-"+t]={pattern:/[\s\S]+/,inside:a.languages[t]};var o={};o[e]={pattern:RegExp(/(<__[^>]*>)(?:<!\[CDATA\[(?:[^\]]|\](?!\]>))*\]\]>|(?!<!\[CDATA\[)[\s\S])*?(?=<\/__>)/.source.replace(/__/g,(function(){return e})),"i"),lookbehind:!0,greedy:!0,inside:r},a.languages.insertBefore("markup","cdata",o)}}),Object.defineProperty(a.languages.markup.tag,"addAttribute",{value:function(e,t){a.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+e+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[t,"language-"+t],inside:a.languages[t]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),a.languages.html=a.languages.markup,a.languages.mathml=a.languages.markup,a.languages.svg=a.languages.markup,a.languages.xml=a.languages.extend("markup",{}),a.languages.ssml=a.languages.xml,a.languages.atom=a.languages.xml,a.languages.rss=a.languages.xml,function(e){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",n={pattern:/(^(["']?)\w+\2)[ \t]+\S.*/,lookbehind:!0,alias:"punctuation",inside:null},r={bash:n,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}|U[0-9a-fA-F]{8}|u[0-9a-fA-F]{4}|x[0-9a-fA-F]{1,2})/};e.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[\s\S]*?(?:\r?\n|\r)\2/,lookbehind:!0,greedy:!0,inside:r},{pattern:/((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s[\s\S]*?(?:\r?\n|\r)\3/,lookbehind:!0,greedy:!0,inside:{bash:n}},{pattern:/(^|[^\\](?:\\\\)*)"(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|[^"\\`$])*"/,lookbehind:!0,greedy:!0,inside:r},{pattern:/(^|[^$\\])'[^']*'/,lookbehind:!0,greedy:!0},{pattern:/\$'(?:[^'\\]|\\[\s\S])*'/,greedy:!0,inside:{entity:r.entity}}],environment:{pattern:RegExp("\\$?"+t),alias:"constant"},variable:r.variable,function:{pattern:/(^|[\s;|&]|[<>]\()(?:add|apropos|apt|apt-cache|apt-get|aptitude|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|docker|docker-compose|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|node|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|podman|podman-compose|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|vcpkg|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;|&]|[<>]\()(?:case|do|done|elif|else|esac|fi|for|function|if|in|select|then|until|while)(?=$|[)\s;|&])/,lookbehind:!0},builtin:{pattern:/(^|[\s;|&]|[<>]\()(?:\.|:|alias|bind|break|builtin|caller|cd|command|continue|declare|echo|enable|eval|exec|exit|export|getopts|hash|help|let|local|logout|mapfile|printf|pwd|read|readarray|readonly|return|set|shift|shopt|source|test|times|trap|type|typeset|ulimit|umask|unalias|unset)(?=$|[)\s;|&])/,lookbehind:!0,alias:"class-name"},boolean:{pattern:/(^|[\s;|&]|[<>]\()(?:false|true)(?=$|[)\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}},n.inside=e.languages.bash;for(var a=["comment","function-name","for-or-select","assign-left","string","environment","function","keyword","builtin","boolean","file-descriptor","operator","punctuation","number"],o=r.variable[1].inside,i=0;i<a.length;i++)o[a[i]]=e.languages.bash[a[i]];e.languages.shell=e.languages.bash}(a),a.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/,boolean:/\b(?:false|true)\b/,function:/\b\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/},a.languages.c=a.languages.extend("clike",{comment:{pattern:/\/\/(?:[^\r\n\\]|\\(?:\r\n?|\n|(?![\r\n])))*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},"class-name":{pattern:/(\b(?:enum|struct)\s+(?:__attribute__\s*\(\([\s\S]*?\)\)\s*)?)\w+|\b[a-z]\w*_t\b/,lookbehind:!0},keyword:/\b(?:_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|__attribute__|asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|inline|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|typeof|union|unsigned|void|volatile|while)\b/,function:/\b[a-z_]\w*(?=\s*\()/i,number:/(?:\b0x(?:[\da-f]+(?:\.[\da-f]*)?|\.[\da-f]+)(?:p[+-]?\d+)?|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)[ful]{0,4}/i,operator:/>>=?|<<=?|->|([-+&|:])\1|[?:~]|[-+*/%&|^!=<>]=?/}),a.languages.insertBefore("c","string",{char:{pattern:/'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n]){0,32}'/,greedy:!0}}),a.languages.insertBefore("c","string",{macro:{pattern:/(^[\t ]*)#\s*[a-z](?:[^\r\n\\/]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|\\(?:\r\n|[\s\S]))*/im,lookbehind:!0,greedy:!0,alias:"property",inside:{string:[{pattern:/^(#\s*include\s*)<[^>]+>/,lookbehind:!0},a.languages.c.string],char:a.languages.c.char,comment:a.languages.c.comment,"macro-name":[{pattern:/(^#\s*define\s+)\w+\b(?!\()/i,lookbehind:!0},{pattern:/(^#\s*define\s+)\w+\b(?=\()/i,lookbehind:!0,alias:"function"}],directive:{pattern:/^(#\s*)[a-z]+/,lookbehind:!0,alias:"keyword"},"directive-hash":/^#/,punctuation:/##|\\(?=[\r\n])/,expression:{pattern:/\S[\s\S]*/,inside:a.languages.c}}}}),a.languages.insertBefore("c","function",{constant:/\b(?:EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|__DATE__|__FILE__|__LINE__|__TIMESTAMP__|__TIME__|__func__|stderr|stdin|stdout)\b/}),delete a.languages.c.boolean,function(e){var t=/\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|char8_t|class|co_await|co_return|co_yield|compl|concept|const|const_cast|consteval|constexpr|constinit|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|final|float|for|friend|goto|if|import|inline|int|int16_t|int32_t|int64_t|int8_t|long|module|mutable|namespace|new|noexcept|nullptr|operator|override|private|protected|public|register|reinterpret_cast|requires|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|uint16_t|uint32_t|uint64_t|uint8_t|union|unsigned|using|virtual|void|volatile|wchar_t|while)\b/,n=/\b(?!<keyword>)\w+(?:\s*\.\s*\w+)*\b/.source.replace(/<keyword>/g,(function(){return t.source}));e.languages.cpp=e.languages.extend("c",{"class-name":[{pattern:RegExp(/(\b(?:class|concept|enum|struct|typename)\s+)(?!<keyword>)\w+/.source.replace(/<keyword>/g,(function(){return t.source}))),lookbehind:!0},/\b[A-Z]\w*(?=\s*::\s*\w+\s*\()/,/\b[A-Z_]\w*(?=\s*::\s*~\w+\s*\()/i,/\b\w+(?=\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>\s*::\s*\w+\s*\()/],keyword:t,number:{pattern:/(?:\b0b[01']+|\b0x(?:[\da-f']+(?:\.[\da-f']*)?|\.[\da-f']+)(?:p[+-]?[\d']+)?|(?:\b[\d']+(?:\.[\d']*)?|\B\.[\d']+)(?:e[+-]?[\d']+)?)[ful]{0,4}/i,greedy:!0},operator:/>>=?|<<=?|->|--|\+\+|&&|\|\||[?:~]|<=>|[-+*/%&|^!=<>]=?|\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\b/,boolean:/\b(?:false|true)\b/}),e.languages.insertBefore("cpp","string",{module:{pattern:RegExp(/(\b(?:import|module)\s+)/.source+"(?:"+/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|<[^<>\r\n]*>/.source+"|"+/<mod-name>(?:\s*:\s*<mod-name>)?|:\s*<mod-name>/.source.replace(/<mod-name>/g,(function(){return n}))+")"),lookbehind:!0,greedy:!0,inside:{string:/^[<"][\s\S]+/,operator:/:/,punctuation:/\./}},"raw-string":{pattern:/R"([^()\\ ]{0,16})\([\s\S]*?\)\1"/,alias:"string",greedy:!0}}),e.languages.insertBefore("cpp","keyword",{"generic-function":{pattern:/\b(?!operator\b)[a-z_]\w*\s*<(?:[^<>]|<[^<>]*>)*>(?=\s*\()/i,inside:{function:/^\w+/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:e.languages.cpp}}}}),e.languages.insertBefore("cpp","operator",{"double-colon":{pattern:/::/,alias:"punctuation"}}),e.languages.insertBefore("cpp","class-name",{"base-clause":{pattern:/(\b(?:class|struct)\s+\w+\s*:\s*)[^;{}"'\s]+(?:\s+[^;{}"'\s]+)*(?=\s*[;{])/,lookbehind:!0,greedy:!0,inside:e.languages.extend("cpp",{})}}),e.languages.insertBefore("inside","double-colon",{"class-name":/\b[a-z_]\w*\b(?!\s*::)/i},e.languages.cpp["base-clause"])}(a),function(e){var t=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;e.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:/@[\w-](?:[^;{\s]|\s+(?![\s{]))*(?:;|(?=\s*\{))/,inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+t.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+t.source+"$"),alias:"url"}}},selector:{pattern:RegExp("(^|[{}\\s])[^{}\\s](?:[^{};\"'\\s]|\\s+(?![\\s{])|"+t.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:t,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},e.languages.css.atrule.inside.rest=e.languages.css;var n=e.languages.markup;n&&(n.tag.addInlined("style","css"),n.tag.addAttribute("style","css"))}(a),function(e){var t,n=/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/;e.languages.css.selector={pattern:e.languages.css.selector.pattern,lookbehind:!0,inside:t={"pseudo-element":/:(?:after|before|first-letter|first-line|selection)|::[-\w]+/,"pseudo-class":/:[-\w]+/,class:/\.[-\w]+/,id:/#[-\w]+/,attribute:{pattern:RegExp("\\[(?:[^[\\]\"']|"+n.source+")*\\]"),greedy:!0,inside:{punctuation:/^\[|\]$/,"case-sensitivity":{pattern:/(\s)[si]$/i,lookbehind:!0,alias:"keyword"},namespace:{pattern:/^(\s*)(?:(?!\s)[-*\w\xA0-\uFFFF])*\|(?!=)/,lookbehind:!0,inside:{punctuation:/\|$/}},"attr-name":{pattern:/^(\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+/,lookbehind:!0},"attr-value":[n,{pattern:/(=\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+(?=\s*$)/,lookbehind:!0}],operator:/[|~*^$]?=/}},"n-th":[{pattern:/(\(\s*)[+-]?\d*[\dn](?:\s*[+-]\s*\d+)?(?=\s*\))/,lookbehind:!0,inside:{number:/[\dn]+/,operator:/[+-]/}},{pattern:/(\(\s*)(?:even|odd)(?=\s*\))/i,lookbehind:!0}],combinator:/>|\+|~|\|\|/,punctuation:/[(),]/}},e.languages.css.atrule.inside["selector-function-argument"].inside=t,e.languages.insertBefore("css","property",{variable:{pattern:/(^|[^-\w\xA0-\uFFFF])--(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*/i,lookbehind:!0}});var r={pattern:/(\b\d+)(?:%|[a-z]+(?![\w-]))/,lookbehind:!0},a={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0};e.languages.insertBefore("css","function",{operator:{pattern:/(\s)[+\-*\/](?=\s)/,lookbehind:!0},hexcode:{pattern:/\B#[\da-f]{3,8}\b/i,alias:"color"},color:[{pattern:/(^|[^\w-])(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)(?![\w-])/i,lookbehind:!0},{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:r,number:a,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:r,number:a})}(a),a.languages.javascript=a.languages.extend("clike",{"class-name":[a.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),a.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,a.languages.insertBefore("javascript","keyword",{regex:{pattern:/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)\/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/,lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:a.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:a.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:a.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:a.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]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:a.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),a.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"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:a.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),a.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),a.languages.markup&&(a.languages.markup.tag.addInlined("script","javascript"),a.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript")),a.languages.js=a.languages.javascript,function(e){var t=/#(?!\{).+/,n={pattern:/#\{[^}]+\}/,alias:"variable"};e.languages.coffeescript=e.languages.extend("javascript",{comment:t,string:[{pattern:/'(?:\\[\s\S]|[^\\'])*'/,greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,greedy:!0,inside:{interpolation:n}}],keyword:/\b(?:and|break|by|catch|class|continue|debugger|delete|do|each|else|extend|extends|false|finally|for|if|in|instanceof|is|isnt|let|loop|namespace|new|no|not|null|of|off|on|or|own|return|super|switch|then|this|throw|true|try|typeof|undefined|unless|until|when|while|window|with|yes|yield)\b/,"class-member":{pattern:/@(?!\d)\w+/,alias:"variable"}}),e.languages.insertBefore("coffeescript","comment",{"multiline-comment":{pattern:/###[\s\S]+?###/,alias:"comment"},"block-regex":{pattern:/\/{3}[\s\S]*?\/{3}/,alias:"regex",inside:{comment:t,interpolation:n}}}),e.languages.insertBefore("coffeescript","string",{"inline-javascript":{pattern:/`(?:\\[\s\S]|[^\\`])*`/,inside:{delimiter:{pattern:/^`|`$/,alias:"punctuation"},script:{pattern:/[\s\S]+/,alias:"language-javascript",inside:e.languages.javascript}}},"multiline-string":[{pattern:/'''[\s\S]*?'''/,greedy:!0,alias:"string"},{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string",inside:{interpolation:n}}]}),e.languages.insertBefore("coffeescript","keyword",{property:/(?!\d)\w+(?=\s*:(?!:))/}),delete e.languages.coffeescript["template-string"],e.languages.coffee=e.languages.coffeescript}(a),function(e){var t=/[*&][^\s[\]{},]+/,n=/!(?:<[\w\-%#;/?:@&=+$,.!~*'()[\]]+>|(?:[a-zA-Z\d-]*!)?[\w\-%#;/?:@&=+$.~*'()]+)?/,r="(?:"+n.source+"(?:[ \t]+"+t.source+")?|"+t.source+"(?:[ \t]+"+n.source+")?)",a=/(?:[^\s\x00-\x08\x0e-\x1f!"#%&'*,\-:>?@[\]`{|}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]|[?:-]<PLAIN>)(?:[ \t]*(?:(?![#:])<PLAIN>|:<PLAIN>))*/.source.replace(/<PLAIN>/g,(function(){return/[^\s\x00-\x08\x0e-\x1f,[\]{}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]/.source})),o=/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\\\r\n]|\\.)*'/.source;function i(e,t){t=(t||"").replace(/m/g,"")+"m";var n=/([:\-,[{]\s*(?:\s<<prop>>[ \t]+)?)(?:<<value>>)(?=[ \t]*(?:$|,|\]|\}|(?:[\r\n]\s*)?#))/.source.replace(/<<prop>>/g,(function(){return r})).replace(/<<value>>/g,(function(){return e}));return RegExp(n,t)}e.languages.yaml={scalar:{pattern:RegExp(/([\-:]\s*(?:\s<<prop>>[ \t]+)?[|>])[ \t]*(?:((?:\r?\n|\r)[ \t]+)\S[^\r\n]*(?:\2[^\r\n]+)*)/.source.replace(/<<prop>>/g,(function(){return r}))),lookbehind:!0,alias:"string"},comment:/#.*/,key:{pattern:RegExp(/((?:^|[:\-,[{\r\n?])[ \t]*(?:<<prop>>[ \t]+)?)<<key>>(?=\s*:\s)/.source.replace(/<<prop>>/g,(function(){return r})).replace(/<<key>>/g,(function(){return"(?:"+a+"|"+o+")"}))),lookbehind:!0,greedy:!0,alias:"atrule"},directive:{pattern:/(^[ \t]*)%.+/m,lookbehind:!0,alias:"important"},datetime:{pattern:i(/\d{4}-\d\d?-\d\d?(?:[tT]|[ \t]+)\d\d?:\d{2}:\d{2}(?:\.\d*)?(?:[ \t]*(?:Z|[-+]\d\d?(?::\d{2})?))?|\d{4}-\d{2}-\d{2}|\d\d?:\d{2}(?::\d{2}(?:\.\d*)?)?/.source),lookbehind:!0,alias:"number"},boolean:{pattern:i(/false|true/.source,"i"),lookbehind:!0,alias:"important"},null:{pattern:i(/null|~/.source,"i"),lookbehind:!0,alias:"important"},string:{pattern:i(o),lookbehind:!0,greedy:!0},number:{pattern:i(/[+-]?(?:0x[\da-f]+|0o[0-7]+|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?|\.inf|\.nan)/.source,"i"),lookbehind:!0},tag:n,important:t,punctuation:/---|[:[\]{}\-,|>?]|\.\.\./},e.languages.yml=e.languages.yaml}(a),function(e){var t=/(?:\\.|[^\\\n\r]|(?:\n|\r\n?)(?![\r\n]))/.source;function n(e){return e=e.replace(/<inner>/g,(function(){return t})),RegExp(/((?:^|[^\\])(?:\\{2})*)/.source+"(?:"+e+")")}var r=/(?:\\.|``(?:[^`\r\n]|`(?!`))+``|`[^`\r\n]+`|[^\\|\r\n`])+/.source,a=/\|?__(?:\|__)+\|?(?:(?:\n|\r\n?)|(?![\s\S]))/.source.replace(/__/g,(function(){return r})),o=/\|?[ \t]*:?-{3,}:?[ \t]*(?:\|[ \t]*:?-{3,}:?[ \t]*)+\|?(?:\n|\r\n?)/.source;e.languages.markdown=e.languages.extend("markup",{}),e.languages.insertBefore("markdown","prolog",{"front-matter-block":{pattern:/(^(?:\s*[\r\n])?)---(?!.)[\s\S]*?[\r\n]---(?!.)/,lookbehind:!0,greedy:!0,inside:{punctuation:/^---|---$/,"front-matter":{pattern:/\S+(?:\s+\S+)*/,alias:["yaml","language-yaml"],inside:e.languages.yaml}}},blockquote:{pattern:/^>(?:[\t ]*>)*/m,alias:"punctuation"},table:{pattern:RegExp("^"+a+o+"(?:"+a+")*","m"),inside:{"table-data-rows":{pattern:RegExp("^("+a+o+")(?:"+a+")*$"),lookbehind:!0,inside:{"table-data":{pattern:RegExp(r),inside:e.languages.markdown},punctuation:/\|/}},"table-line":{pattern:RegExp("^("+a+")"+o+"$"),lookbehind:!0,inside:{punctuation:/\||:?-{3,}:?/}},"table-header-row":{pattern:RegExp("^"+a+"$"),inside:{"table-header":{pattern:RegExp(r),alias:"important",inside:e.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:/^```[\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:n(/\b__(?:(?!_)<inner>|_(?:(?!_)<inner>)+_)+__\b|\*\*(?:(?!\*)<inner>|\*(?:(?!\*)<inner>)+\*)+\*\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^..)[\s\S]+(?=..$)/,lookbehind:!0,inside:{}},punctuation:/\*\*|__/}},italic:{pattern:n(/\b_(?:(?!_)<inner>|__(?:(?!_)<inner>)+__)+_\b|\*(?:(?!\*)<inner>|\*\*(?:(?!\*)<inner>)+\*\*)+\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^.)[\s\S]+(?=.$)/,lookbehind:!0,inside:{}},punctuation:/[*_]/}},strike:{pattern:n(/(~~?)(?:(?!~)<inner>)+\2/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^~~?)[\s\S]+(?=\1$)/,lookbehind:!0,inside:{}},punctuation:/~~?/}},"code-snippet":{pattern:/(^|[^\\`])(?:``[^`\r\n]+(?:`[^`\r\n]+)*``(?!`)|`[^`\r\n]+`(?!`))/,lookbehind:!0,greedy:!0,alias:["code","keyword"]},url:{pattern:n(/!?\[(?:(?!\])<inner>)+\](?:\([^\s)]+(?:[\t ]+"(?:\\.|[^"\\])*")?\)|[ \t]?\[(?:(?!\])<inner>)+\])/.source),lookbehind:!0,greedy:!0,inside:{operator:/^!/,content:{pattern:/(^\[)[^\]]+(?=\])/,lookbehind:!0,inside:{}},variable:{pattern:/(^\][ \t]?\[)[^\]]+(?=\]$)/,lookbehind:!0},url:{pattern:/(^\]\()[^\s)]+/,lookbehind:!0},string:{pattern:/(^[ \t]+)"(?:\\.|[^"\\])*"(?=\)$)/,lookbehind:!0}}}}),["url","bold","italic","strike"].forEach((function(t){["url","bold","italic","strike","code-snippet"].forEach((function(n){t!==n&&(e.languages.markdown[t].inside.content.inside[n]=e.languages.markdown[n])}))})),e.hooks.add("after-tokenize",(function(e){"markdown"!==e.language&&"md"!==e.language||function e(t){if(t&&"string"!=typeof t)for(var n=0,r=t.length;n<r;n++){var a=t[n];if("code"===a.type){var o=a.content[1],i=a.content[3];if(o&&i&&"code-language"===o.type&&"code-block"===i.type&&"string"==typeof o.content){var l=o.content.replace(/\b#/g,"sharp").replace(/\b\+\+/g,"pp"),u="language-"+(l=(/[a-z][\w-]*/i.exec(l)||[""])[0].toLowerCase());i.alias?"string"==typeof i.alias?i.alias=[i.alias,u]:i.alias.push(u):i.alias=[u]}}else e(a.content)}}(e.tokens)})),e.hooks.add("wrap",(function(t){if("code-block"===t.type){for(var n="",r=0,a=t.classes.length;r<a;r++){var o=t.classes[r],s=/language-(.+)/.exec(o);if(s){n=s[1];break}}var c,f=e.languages[n];if(f)t.content=e.highlight((c=t.content,c.replace(i,"").replace(/&(\w{1,8}|#x?[\da-f]{1,8});/gi,(function(e,t){var n;if("#"===(t=t.toLowerCase())[0])return n="x"===t[1]?parseInt(t.slice(2),16):Number(t.slice(1)),u(n);var r=l[t];return r||e}))),f,n);else if(n&&"none"!==n&&e.plugins.autoloader){var d="md-"+(new Date).valueOf()+"-"+Math.floor(1e16*Math.random());t.attributes.id=d,e.plugins.autoloader.loadLanguages(n,(function(){var t=document.getElementById(d);t&&(t.innerHTML=e.highlight(t.textContent,e.languages[n],n))}))}}}));var i=RegExp(e.languages.markup.tag.pattern.source,"gi"),l={amp:"&",lt:"<",gt:">",quot:'"'},u=String.fromCodePoint||String.fromCharCode;e.languages.md=e.languages.markdown}(a),a.languages.graphql={comment:/#.*/,description:{pattern:/(?:"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*")(?=\s*[a-z_])/i,greedy:!0,alias:"string",inside:{"language-markdown":{pattern:/(^"(?:"")?)(?!\1)[\s\S]+(?=\1$)/,lookbehind:!0,inside:a.languages.markdown}}},string:{pattern:/"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*"/,greedy:!0},number:/(?:\B-|\b)\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,boolean:/\b(?:false|true)\b/,variable:/\$[a-z_]\w*/i,directive:{pattern:/@[a-z_]\w*/i,alias:"function"},"attr-name":{pattern:/\b[a-z_]\w*(?=\s*(?:\((?:[^()"]|"(?:\\.|[^\\"\r\n])*")*\))?:)/i,greedy:!0},"atom-input":{pattern:/\b[A-Z]\w*Input\b/,alias:"class-name"},scalar:/\b(?:Boolean|Float|ID|Int|String)\b/,constant:/\b[A-Z][A-Z_\d]*\b/,"class-name":{pattern:/(\b(?:enum|implements|interface|on|scalar|type|union)\s+|&\s*|:\s*|\[)[A-Z_]\w*/,lookbehind:!0},fragment:{pattern:/(\bfragment\s+|\.{3}\s*(?!on\b))[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-mutation":{pattern:/(\bmutation\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-query":{pattern:/(\bquery\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},keyword:/\b(?:directive|enum|extend|fragment|implements|input|interface|mutation|on|query|repeatable|scalar|schema|subscription|type|union)\b/,operator:/[!=|&]|\.{3}/,"property-query":/\w+(?=\s*\()/,object:/\w+(?=\s*\{)/,punctuation:/[!(){}\[\]:=,]/,property:/\w+/},a.hooks.add("after-tokenize",(function(e){if("graphql"===e.language)for(var t=e.tokens.filter((function(e){return"string"!=typeof e&&"comment"!==e.type&&"scalar"!==e.type})),n=0;n<t.length;){var r=t[n++];if("keyword"===r.type&&"mutation"===r.content){var a=[];if(f(["definition-mutation","punctuation"])&&"("===c(1).content){n+=2;var o=d(/^\($/,/^\)$/);if(-1===o)continue;for(;n<o;n++){var i=c(0);"variable"===i.type&&(p(i,"variable-input"),a.push(i.content))}n=o+1}if(f(["punctuation","property-query"])&&"{"===c(0).content&&(n++,p(c(0),"property-mutation"),a.length>0)){var l=d(/^\{$/,/^\}$/);if(-1===l)continue;for(var u=n;u<l;u++){var s=t[u];"variable"===s.type&&a.indexOf(s.content)>=0&&p(s,"variable-input")}}}}function c(e){return t[n+e]}function f(e,t){t=t||0;for(var n=0;n<e.length;n++){var r=c(n+t);if(!r||r.type!==e[n])return!1}return!0}function d(e,r){for(var a=1,o=n;o<t.length;o++){var i=t[o],l=i.content;if("punctuation"===i.type&&"string"==typeof l)if(e.test(l))a++;else if(r.test(l)&&0===--a)return o}return-1}function p(e,t){var n=e.alias;n?Array.isArray(n)||(e.alias=n=[n]):e.alias=n=[],n.push(t)}})),a.languages.sql={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|(?:--|\/\/|#).*)/,lookbehind:!0},variable:[{pattern:/@(["'`])(?:\\[\s\S]|(?!\1)[^\\])+\1/,greedy:!0},/@[\w.$]+/],string:{pattern:/(^|[^@\\])("|')(?:\\[\s\S]|(?!\2)[^\\]|\2\2)*\2/,greedy:!0,lookbehind:!0},identifier:{pattern:/(^|[^@\\])`(?:\\[\s\S]|[^`\\]|``)*`/,greedy:!0,lookbehind:!0,inside:{punctuation:/^`|`$/}},function:/\b(?:AVG|COUNT|FIRST|FORMAT|LAST|LCASE|LEN|MAX|MID|MIN|MOD|NOW|ROUND|SUM|UCASE)(?=\s*\()/i,keyword:/\b(?:ACTION|ADD|AFTER|ALGORITHM|ALL|ALTER|ANALYZE|ANY|APPLY|AS|ASC|AUTHORIZATION|AUTO_INCREMENT|BACKUP|BDB|BEGIN|BERKELEYDB|BIGINT|BINARY|BIT|BLOB|BOOL|BOOLEAN|BREAK|BROWSE|BTREE|BULK|BY|CALL|CASCADED?|CASE|CHAIN|CHAR(?:ACTER|SET)?|CHECK(?:POINT)?|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMNS?|COMMENT|COMMIT(?:TED)?|COMPUTE|CONNECT|CONSISTENT|CONSTRAINT|CONTAINS(?:TABLE)?|CONTINUE|CONVERT|CREATE|CROSS|CURRENT(?:_DATE|_TIME|_TIMESTAMP|_USER)?|CURSOR|CYCLE|DATA(?:BASES?)?|DATE(?:TIME)?|DAY|DBCC|DEALLOCATE|DEC|DECIMAL|DECLARE|DEFAULT|DEFINER|DELAYED|DELETE|DELIMITERS?|DENY|DESC|DESCRIBE|DETERMINISTIC|DISABLE|DISCARD|DISK|DISTINCT|DISTINCTROW|DISTRIBUTED|DO|DOUBLE|DROP|DUMMY|DUMP(?:FILE)?|DUPLICATE|ELSE(?:IF)?|ENABLE|ENCLOSED|END|ENGINE|ENUM|ERRLVL|ERRORS|ESCAPED?|EXCEPT|EXEC(?:UTE)?|EXISTS|EXIT|EXPLAIN|EXTENDED|FETCH|FIELDS|FILE|FILLFACTOR|FIRST|FIXED|FLOAT|FOLLOWING|FOR(?: EACH ROW)?|FORCE|FOREIGN|FREETEXT(?:TABLE)?|FROM|FULL|FUNCTION|GEOMETRY(?:COLLECTION)?|GLOBAL|GOTO|GRANT|GROUP|HANDLER|HASH|HAVING|HOLDLOCK|HOUR|IDENTITY(?:COL|_INSERT)?|IF|IGNORE|IMPORT|INDEX|INFILE|INNER|INNODB|INOUT|INSERT|INT|INTEGER|INTERSECT|INTERVAL|INTO|INVOKER|ISOLATION|ITERATE|JOIN|KEYS?|KILL|LANGUAGE|LAST|LEAVE|LEFT|LEVEL|LIMIT|LINENO|LINES|LINESTRING|LOAD|LOCAL|LOCK|LONG(?:BLOB|TEXT)|LOOP|MATCH(?:ED)?|MEDIUM(?:BLOB|INT|TEXT)|MERGE|MIDDLEINT|MINUTE|MODE|MODIFIES|MODIFY|MONTH|MULTI(?:LINESTRING|POINT|POLYGON)|NATIONAL|NATURAL|NCHAR|NEXT|NO|NONCLUSTERED|NULLIF|NUMERIC|OFF?|OFFSETS?|ON|OPEN(?:DATASOURCE|QUERY|ROWSET)?|OPTIMIZE|OPTION(?:ALLY)?|ORDER|OUT(?:ER|FILE)?|OVER|PARTIAL|PARTITION|PERCENT|PIVOT|PLAN|POINT|POLYGON|PRECEDING|PRECISION|PREPARE|PREV|PRIMARY|PRINT|PRIVILEGES|PROC(?:EDURE)?|PUBLIC|PURGE|QUICK|RAISERROR|READS?|REAL|RECONFIGURE|REFERENCES|RELEASE|RENAME|REPEAT(?:ABLE)?|REPLACE|REPLICATION|REQUIRE|RESIGNAL|RESTORE|RESTRICT|RETURN(?:ING|S)?|REVOKE|RIGHT|ROLLBACK|ROUTINE|ROW(?:COUNT|GUIDCOL|S)?|RTREE|RULE|SAVE(?:POINT)?|SCHEMA|SECOND|SELECT|SERIAL(?:IZABLE)?|SESSION(?:_USER)?|SET(?:USER)?|SHARE|SHOW|SHUTDOWN|SIMPLE|SMALLINT|SNAPSHOT|SOME|SONAME|SQL|START(?:ING)?|STATISTICS|STATUS|STRIPED|SYSTEM_USER|TABLES?|TABLESPACE|TEMP(?:ORARY|TABLE)?|TERMINATED|TEXT(?:SIZE)?|THEN|TIME(?:STAMP)?|TINY(?:BLOB|INT|TEXT)|TOP?|TRAN(?:SACTIONS?)?|TRIGGER|TRUNCATE|TSEQUAL|TYPES?|UNBOUNDED|UNCOMMITTED|UNDEFINED|UNION|UNIQUE|UNLOCK|UNPIVOT|UNSIGNED|UPDATE(?:TEXT)?|USAGE|USE|USER|USING|VALUES?|VAR(?:BINARY|CHAR|CHARACTER|YING)|VIEW|WAITFOR|WARNINGS|WHEN|WHERE|WHILE|WITH(?: ROLLUP|IN)?|WORK|WRITE(?:TEXT)?|YEAR)\b/i,boolean:/\b(?:FALSE|NULL|TRUE)\b/i,number:/\b0x[\da-f]+\b|\b\d+(?:\.\d*)?|\B\.\d+\b/i,operator:/[-+*\/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?|\b(?:AND|BETWEEN|DIV|ILIKE|IN|IS|LIKE|NOT|OR|REGEXP|RLIKE|SOUNDS LIKE|XOR)\b/i,punctuation:/[;[\]()`,.]/},function(e){var t=e.languages.javascript["template-string"],n=t.pattern.source,r=t.inside.interpolation,a=r.inside["interpolation-punctuation"],o=r.pattern.source;function i(t,r){if(e.languages[t])return{pattern:RegExp("((?:"+r+")\\s*)"+n),lookbehind:!0,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},"embedded-code":{pattern:/[\s\S]+/,alias:t}}}}function l(e,t){return"___"+t.toUpperCase()+"_"+e+"___"}function u(t,n,r){var a={code:t,grammar:n,language:r};return e.hooks.run("before-tokenize",a),a.tokens=e.tokenize(a.code,a.grammar),e.hooks.run("after-tokenize",a),a.tokens}function s(t){var n={};n["interpolation-punctuation"]=a;var o=e.tokenize(t,n);if(3===o.length){var i=[1,1];i.push.apply(i,u(o[1],e.languages.javascript,"javascript")),o.splice.apply(o,i)}return new e.Token("interpolation",o,r.alias,t)}function c(t,n,r){var a=e.tokenize(t,{interpolation:{pattern:RegExp(o),lookbehind:!0}}),i=0,c={},f=u(a.map((function(e){if("string"==typeof e)return e;for(var n,a=e.content;-1!==t.indexOf(n=l(i++,r)););return c[n]=a,n})).join(""),n,r),d=Object.keys(c);return i=0,function e(t){for(var n=0;n<t.length;n++){if(i>=d.length)return;var r=t[n];if("string"==typeof r||"string"==typeof r.content){var a=d[i],o="string"==typeof r?r:r.content,l=o.indexOf(a);if(-1!==l){++i;var u=o.substring(0,l),f=s(c[a]),p=o.substring(l+a.length),m=[];if(u&&m.push(u),m.push(f),p){var h=[p];e(h),m.push.apply(m,h)}"string"==typeof r?(t.splice.apply(t,[n,1].concat(m)),n+=m.length-1):r.content=m}}else{var g=r.content;Array.isArray(g)?e(g):e([g])}}}(f),new e.Token(r,f,"language-"+r,t)}e.languages.javascript["template-string"]=[i("css",/\b(?:styled(?:\([^)]*\))?(?:\s*\.\s*\w+(?:\([^)]*\))*)*|css(?:\s*\.\s*(?:global|resolve))?|createGlobalStyle|keyframes)/.source),i("html",/\bhtml|\.\s*(?:inner|outer)HTML\s*\+?=/.source),i("svg",/\bsvg/.source),i("markdown",/\b(?:markdown|md)/.source),i("graphql",/\b(?:gql|graphql(?:\s*\.\s*experimental)?)/.source),i("sql",/\bsql/.source),t].filter(Boolean);var f={javascript:!0,js:!0,typescript:!0,ts:!0,jsx:!0,tsx:!0};function d(e){return"string"==typeof e?e:Array.isArray(e)?e.map(d).join(""):d(e.content)}e.hooks.add("after-tokenize",(function(t){t.language in f&&function t(n){for(var r=0,a=n.length;r<a;r++){var o=n[r];if("string"!=typeof o){var i=o.content;if(Array.isArray(i))if("template-string"===o.type){var l=i[1];if(3===i.length&&"string"!=typeof l&&"embedded-code"===l.type){var u=d(l),s=l.alias,f=Array.isArray(s)?s[0]:s,p=e.languages[f];if(!p)continue;i[1]=c(u,p,f)}}else t(i);else"string"!=typeof i&&t([i])}}}(t.tokens)}))}(a),function(e){e.languages.typescript=e.languages.extend("javascript",{"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|type)\s+)(?!keyof\b)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?:\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,lookbehind:!0,greedy:!0,inside:null},builtin:/\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\b/}),e.languages.typescript.keyword.push(/\b(?:abstract|declare|is|keyof|readonly|require)\b/,/\b(?:asserts|infer|interface|module|namespace|type)\b(?=\s*(?:[{_$a-zA-Z\xA0-\uFFFF]|$))/,/\btype\b(?=\s*(?:[\{*]|$))/),delete e.languages.typescript.parameter,delete e.languages.typescript["literal-property"];var t=e.languages.extend("typescript",{});delete t["class-name"],e.languages.typescript["class-name"].inside=t,e.languages.insertBefore("typescript","function",{decorator:{pattern:/@[$\w\xA0-\uFFFF]+/,inside:{at:{pattern:/^@/,alias:"operator"},function:/^[\s\S]+/}},"generic-function":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\s*\()/,greedy:!0,inside:{function:/^#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:t}}}}),e.languages.ts=e.languages.typescript}(a),function(e){function t(e,t){return RegExp(e.replace(/<ID>/g,(function(){return/(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/.source})),t)}e.languages.insertBefore("javascript","function-variable",{"method-variable":{pattern:RegExp("(\\.\\s*)"+e.languages.javascript["function-variable"].pattern.source),lookbehind:!0,alias:["function-variable","method","function","property-access"]}}),e.languages.insertBefore("javascript","function",{method:{pattern:RegExp("(\\.\\s*)"+e.languages.javascript.function.source),lookbehind:!0,alias:["function","property-access"]}}),e.languages.insertBefore("javascript","constant",{"known-class-name":[{pattern:/\b(?:(?:Float(?:32|64)|(?:Int|Uint)(?:8|16|32)|Uint8Clamped)?Array|ArrayBuffer|BigInt|Boolean|DataView|Date|Error|Function|Intl|JSON|(?:Weak)?(?:Map|Set)|Math|Number|Object|Promise|Proxy|Reflect|RegExp|String|Symbol|WebAssembly)\b/,alias:"class-name"},{pattern:/\b(?:[A-Z]\w*)Error\b/,alias:"class-name"}]}),e.languages.insertBefore("javascript","keyword",{imports:{pattern:t(/(\bimport\b\s*)(?:<ID>(?:\s*,\s*(?:\*\s*as\s+<ID>|\{[^{}]*\}))?|\*\s*as\s+<ID>|\{[^{}]*\})(?=\s*\bfrom\b)/.source),lookbehind:!0,inside:e.languages.javascript},exports:{pattern:t(/(\bexport\b\s*)(?:\*(?:\s*as\s+<ID>)?(?=\s*\bfrom\b)|\{[^{}]*\})/.source),lookbehind:!0,inside:e.languages.javascript}}),e.languages.javascript.keyword.unshift({pattern:/\b(?:as|default|export|from|import)\b/,alias:"module"},{pattern:/\b(?:await|break|catch|continue|do|else|finally|for|if|return|switch|throw|try|while|yield)\b/,alias:"control-flow"},{pattern:/\bnull\b/,alias:["null","nil"]},{pattern:/\bundefined\b/,alias:"nil"}),e.languages.insertBefore("javascript","operator",{spread:{pattern:/\.{3}/,alias:"operator"},arrow:{pattern:/=>/,alias:"operator"}}),e.languages.insertBefore("javascript","punctuation",{"property-access":{pattern:t(/(\.\s*)#?<ID>/.source),lookbehind:!0},"maybe-class-name":{pattern:/(^|[^$\w\xA0-\uFFFF])[A-Z][$\w\xA0-\uFFFF]+/,lookbehind:!0},dom:{pattern:/\b(?:document|(?:local|session)Storage|location|navigator|performance|window)\b/,alias:"variable"},console:{pattern:/\bconsole(?=\s*\.)/,alias:"class-name"}});for(var n=["function","function-variable","method","method-variable","property-access"],r=0;r<n.length;r++){var a=n[r],o=e.languages.javascript[a];"RegExp"===e.util.type(o)&&(o=e.languages.javascript[a]={pattern:o});var i=o.inside||{};o.inside=i,i["maybe-class-name"]=/^[A-Z][\s\S]*/}}(a),function(e){var t=e.util.clone(e.languages.javascript),n=/(?:\s|\/\/.*(?!.)|\/\*(?:[^*]|\*(?!\/))\*\/)/.source,r=/(?:\{(?:\{(?:\{[^{}]*\}|[^{}])*\}|[^{}])*\})/.source,a=/(?:\{<S>*\.{3}(?:[^{}]|<BRACES>)*\})/.source;function o(e,t){return e=e.replace(/<S>/g,(function(){return n})).replace(/<BRACES>/g,(function(){return r})).replace(/<SPREAD>/g,(function(){return a})),RegExp(e,t)}a=o(a).source,e.languages.jsx=e.languages.extend("markup",t),e.languages.jsx.tag.pattern=o(/<\/?(?:[\w.:-]+(?:<S>+(?:[\w.:$-]+(?:=(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s{'"/>=]+|<BRACES>))?|<SPREAD>))*<S>*\/?)?>/.source),e.languages.jsx.tag.inside.tag.pattern=/^<\/?[^\s>\/]*/,e.languages.jsx.tag.inside["attr-value"].pattern=/=(?!\{)(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s'">]+)/,e.languages.jsx.tag.inside.tag.inside["class-name"]=/^[A-Z]\w*(?:\.[A-Z]\w*)*$/,e.languages.jsx.tag.inside.comment=t.comment,e.languages.insertBefore("inside","attr-name",{spread:{pattern:o(/<SPREAD>/.source),inside:e.languages.jsx}},e.languages.jsx.tag),e.languages.insertBefore("inside","special-attr",{script:{pattern:o(/=<BRACES>/.source),alias:"language-javascript",inside:{"script-punctuation":{pattern:/^=(?=\{)/,alias:"punctuation"},rest:e.languages.jsx}}},e.languages.jsx.tag);var i=function(e){return e?"string"==typeof e?e:"string"==typeof e.content?e.content:e.content.map(i).join(""):""},l=function(t){for(var n=[],r=0;r<t.length;r++){var a=t[r],o=!1;if("string"!=typeof a&&("tag"===a.type&&a.content[0]&&"tag"===a.content[0].type?"</"===a.content[0].content[0].content?n.length>0&&n[n.length-1].tagName===i(a.content[0].content[1])&&n.pop():"/>"===a.content[a.content.length-1].content||n.push({tagName:i(a.content[0].content[1]),openedBraces:0}):n.length>0&&"punctuation"===a.type&&"{"===a.content?n[n.length-1].openedBraces++:n.length>0&&n[n.length-1].openedBraces>0&&"punctuation"===a.type&&"}"===a.content?n[n.length-1].openedBraces--:o=!0),(o||"string"==typeof a)&&n.length>0&&0===n[n.length-1].openedBraces){var u=i(a);r<t.length-1&&("string"==typeof t[r+1]||"plain-text"===t[r+1].type)&&(u+=i(t[r+1]),t.splice(r+1,1)),r>0&&("string"==typeof t[r-1]||"plain-text"===t[r-1].type)&&(u=i(t[r-1])+u,t.splice(r-1,1),r--),t[r]=new e.Token("plain-text",u,null,u)}a.content&&"string"!=typeof a.content&&l(a.content)}};e.hooks.add("after-tokenize",(function(e){"jsx"!==e.language&&"tsx"!==e.language||l(e.tokens)}))}(a),function(e){e.languages.diff={coord:[/^(?:\*{3}|-{3}|\+{3}).*$/m,/^@@.*@@$/m,/^\d.*$/m]};var t={"deleted-sign":"-","deleted-arrow":"<","inserted-sign":"+","inserted-arrow":">",unchanged:" ",diff:"!"};Object.keys(t).forEach((function(n){var r=t[n],a=[];/^\w+$/.test(n)||a.push(/\w+/.exec(n)[0]),"diff"===n&&a.push("bold"),e.languages.diff[n]={pattern:RegExp("^(?:["+r+"].*(?:\r\n?|\n|(?![\\s\\S])))+","m"),alias:a,inside:{line:{pattern:/(.)(?=[\s\S]).*(?:\r\n?|\n)?/,lookbehind:!0},prefix:{pattern:/[\s\S]/,alias:/\w+/.exec(n)[0]}}}})),Object.defineProperty(e.languages.diff,"PREFIXES",{value:t})}(a),a.languages.git={comment:/^#.*/m,deleted:/^[-\u2013].*/m,inserted:/^\+.*/m,string:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,command:{pattern:/^.*\$ git .*$/m,inside:{parameter:/\s--?\w+/}},coord:/^@@.*@@$/m,"commit-sha1":/^commit \w{40}$/m},a.languages.go=a.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"|`[^`]*`/,lookbehind:!0,greedy:!0},keyword:/\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\b/,boolean:/\b(?:_|false|iota|nil|true)\b/,number:[/\b0(?:b[01_]+|o[0-7_]+)i?\b/i,/\b0x(?:[a-f\d_]+(?:\.[a-f\d_]*)?|\.[a-f\d_]+)(?:p[+-]?\d+(?:_\d+)*)?i?(?!\w)/i,/(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?[\d_]+)?i?(?!\w)/i],operator:/[*\/%^!=]=?|\+[=+]?|-[=-]?|\|[=|]?|&(?:=|&|\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\./,builtin:/\b(?:append|bool|byte|cap|close|complex|complex(?:64|128)|copy|delete|error|float(?:32|64)|u?int(?:8|16|32|64)?|imag|len|make|new|panic|print(?:ln)?|real|recover|rune|string|uintptr)\b/}),a.languages.insertBefore("go","string",{char:{pattern:/'(?:\\.|[^'\\\r\n]){0,10}'/,greedy:!0}}),delete a.languages.go["class-name"],function(e){function t(e,t){return"___"+e.toUpperCase()+t+"___"}Object.defineProperties(e.languages["markup-templating"]={},{buildPlaceholders:{value:function(n,r,a,o){if(n.language===r){var i=n.tokenStack=[];n.code=n.code.replace(a,(function(e){if("function"==typeof o&&!o(e))return e;for(var a,l=i.length;-1!==n.code.indexOf(a=t(r,l));)++l;return i[l]=e,a})),n.grammar=e.languages.markup}}},tokenizePlaceholders:{value:function(n,r){if(n.language===r&&n.tokenStack){n.grammar=e.languages[r];var a=0,o=Object.keys(n.tokenStack);!function i(l){for(var u=0;u<l.length&&!(a>=o.length);u++){var s=l[u];if("string"==typeof s||s.content&&"string"==typeof s.content){var c=o[a],f=n.tokenStack[c],d="string"==typeof s?s:s.content,p=t(r,c),m=d.indexOf(p);if(m>-1){++a;var h=d.substring(0,m),g=new e.Token(r,e.tokenize(f,n.grammar),"language-"+r,f),v=d.substring(m+p.length),b=[];h&&b.push.apply(b,i([h])),b.push(g),v&&b.push.apply(b,i([v])),"string"==typeof s?l.splice.apply(l,[u,1].concat(b)):s.content=b}}else s.content&&i(s.content)}return l}(n.tokens)}}}})}(a),function(e){e.languages.handlebars={comment:/\{\{![\s\S]*?\}\}/,delimiter:{pattern:/^\{\{\{?|\}\}\}?$/,alias:"punctuation"},string:/(["'])(?:\\.|(?!\1)[^\\\r\n])*\1/,number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee][+-]?\d+)?/,boolean:/\b(?:false|true)\b/,block:{pattern:/^(\s*(?:~\s*)?)[#\/]\S+?(?=\s*(?:~\s*)?$|\s)/,lookbehind:!0,alias:"keyword"},brackets:{pattern:/\[[^\]]+\]/,inside:{punctuation:/\[|\]/,variable:/[\s\S]+/}},punctuation:/[!"#%&':()*+,.\/;<=>@\[\\\]^`{|}~]/,variable:/[^!"#%&'()*+,\/;<=>@\[\\\]^`{|}~\s]+/},e.hooks.add("before-tokenize",(function(t){e.languages["markup-templating"].buildPlaceholders(t,"handlebars",/\{\{\{[\s\S]+?\}\}\}|\{\{[\s\S]+?\}\}/g)})),e.hooks.add("after-tokenize",(function(t){e.languages["markup-templating"].tokenizePlaceholders(t,"handlebars")})),e.languages.hbs=e.languages.handlebars}(a),a.languages.json={property:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?=\s*:)/,lookbehind:!0,greedy:!0},string:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,lookbehind:!0,greedy:!0},comment:{pattern:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,punctuation:/[{}[\],]/,operator:/:/,boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"}},a.languages.webmanifest=a.languages.json,a.languages.less=a.languages.extend("css",{comment:[/\/\*[\s\S]*?\*\//,{pattern:/(^|[^\\])\/\/.*/,lookbehind:!0}],atrule:{pattern:/@[\w-](?:\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{punctuation:/[:()]/}},selector:{pattern:/(?:@\{[\w-]+\}|[^{};\s@])(?:@\{[\w-]+\}|\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};@\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{variable:/@+[\w-]+/}},property:/(?:@\{[\w-]+\}|[\w-])+(?:\+_?)?(?=\s*:)/,operator:/[+\-*\/]/}),a.languages.insertBefore("less","property",{variable:[{pattern:/@[\w-]+\s*:/,inside:{punctuation:/:/}},/@@?[\w-]+/],"mixin-usage":{pattern:/([{;]\s*)[.#](?!\d)[\w-].*?(?=[(;])/,lookbehind:!0,alias:"function"}}),a.languages.makefile={comment:{pattern:/(^|[^\\])#(?:\\(?:\r\n|[\s\S])|[^\\\r\n])*/,lookbehind:!0},string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"builtin-target":{pattern:/\.[A-Z][^:#=\s]+(?=\s*:(?!=))/,alias:"builtin"},target:{pattern:/^(?:[^:=\s]|[ \t]+(?![\s:]))+(?=\s*:(?!=))/m,alias:"symbol",inside:{variable:/\$+(?:(?!\$)[^(){}:#=\s]+|(?=[({]))/}},variable:/\$+(?:(?!\$)[^(){}:#=\s]+|\([@*%<^+?][DF]\)|(?=[({]))/,keyword:/-include\b|\b(?:define|else|endef|endif|export|ifn?def|ifn?eq|include|override|private|sinclude|undefine|unexport|vpath)\b/,function:{pattern:/(\()(?:abspath|addsuffix|and|basename|call|dir|error|eval|file|filter(?:-out)?|findstring|firstword|flavor|foreach|guile|if|info|join|lastword|load|notdir|or|origin|patsubst|realpath|shell|sort|strip|subst|suffix|value|warning|wildcard|word(?:list|s)?)(?=[ \t])/,lookbehind:!0},operator:/(?:::|[?:+!])?=|[|@]/,punctuation:/[:;(){}]/},a.languages.objectivec=a.languages.extend("c",{string:{pattern:/@?"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},keyword:/\b(?:asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|in|inline|int|long|register|return|self|short|signed|sizeof|static|struct|super|switch|typedef|typeof|union|unsigned|void|volatile|while)\b|(?:@interface|@end|@implementation|@protocol|@class|@public|@protected|@private|@property|@try|@catch|@finally|@throw|@synthesize|@dynamic|@selector)\b/,operator:/-[->]?|\+\+?|!=?|<<?=?|>>?=?|==?|&&?|\|\|?|[~^%?*\/@]/}),delete a.languages.objectivec["class-name"],a.languages.objc=a.languages.objectivec,a.languages.ocaml={comment:{pattern:/\(\*[\s\S]*?\*\)/,greedy:!0},char:{pattern:/'(?:[^\\\r\n']|\\(?:.|[ox]?[0-9a-f]{1,3}))'/i,greedy:!0},string:[{pattern:/"(?:\\(?:[\s\S]|\r\n)|[^\\\r\n"])*"/,greedy:!0},{pattern:/\{([a-z_]*)\|[\s\S]*?\|\1\}/,greedy:!0}],number:[/\b(?:0b[01][01_]*|0o[0-7][0-7_]*)\b/i,/\b0x[a-f0-9][a-f0-9_]*(?:\.[a-f0-9_]*)?(?:p[+-]?\d[\d_]*)?(?!\w)/i,/\b\d[\d_]*(?:\.[\d_]*)?(?:e[+-]?\d[\d_]*)?(?!\w)/i],directive:{pattern:/\B#\w+/,alias:"property"},label:{pattern:/\B~\w+/,alias:"property"},"type-variable":{pattern:/\B'\w+/,alias:"function"},variant:{pattern:/`\w+/,alias:"symbol"},keyword:/\b(?:as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|match|method|module|mutable|new|nonrec|object|of|open|private|rec|sig|struct|then|to|try|type|val|value|virtual|when|where|while|with)\b/,boolean:/\b(?:false|true)\b/,"operator-like-punctuation":{pattern:/\[[<>|]|[>|]\]|\{<|>\}/,alias:"punctuation"},operator:/\.[.~]|:[=>]|[=<>@^|&+\-*\/$%!?~][!$%&*+\-.\/:<=>?@^|~]*|\b(?:and|asr|land|lor|lsl|lsr|lxor|mod|or)\b/,punctuation:/;;|::|[(){}\[\].,:;#]|\b_\b/},a.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0,greedy:!0},"string-interpolation":{pattern:/(?:f|fr|rf)(?:("""|''')[\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]|br|rb)?("""|''')[\s\S]*?\1/i,greedy:!0,alias:"string"},string:{pattern:/(?:[rub]|br|rb)?("|')(?:\\.|(?!\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:/(^[\t ]*)@\w+(?:\.\w+)*/m,lookbehind:!0,alias:["annotation","punctuation"],inside:{punctuation:/\./}},keyword:/\b(?:_(?=\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|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(?:False|None|True)\b/,number:/\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\b|(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+(?:_\d+)*)(?:e[+-]?\d+(?:_\d+)*)?j?(?!\w)/i,operator:/[-+%=]=?|!=|:=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/},a.languages.python["string-interpolation"].inside.interpolation.inside.rest=a.languages.python,a.languages.py=a.languages.python,a.languages.reason=a.languages.extend("clike",{string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^\\\r\n"])*"/,greedy:!0},"class-name":/\b[A-Z]\w*/,keyword:/\b(?:and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|method|module|mutable|new|nonrec|object|of|open|or|private|rec|sig|struct|switch|then|to|try|type|val|virtual|when|while|with)\b/,operator:/\.{3}|:[:=]|\|>|->|=(?:==?|>)?|<=?|>=?|[|^?'#!~`]|[+\-*\/]\.?|\b(?:asr|land|lor|lsl|lsr|lxor|mod)\b/}),a.languages.insertBefore("reason","class-name",{char:{pattern:/'(?:\\x[\da-f]{2}|\\o[0-3][0-7][0-7]|\\\d{3}|\\.|[^'\\\r\n])'/,greedy:!0},constructor:/\b[A-Z]\w*\b(?!\s*\.)/,label:{pattern:/\b[a-z]\w*(?=::)/,alias:"symbol"}}),delete a.languages.reason.function,function(e){e.languages.sass=e.languages.extend("css",{comment:{pattern:/^([ \t]*)\/[\/*].*(?:(?:\r?\n|\r)\1[ \t].+)*/m,lookbehind:!0,greedy:!0}}),e.languages.insertBefore("sass","atrule",{"atrule-line":{pattern:/^(?:[ \t]*)[@+=].+/m,greedy:!0,inside:{atrule:/(?:@[\w-]+|[+=])/}}}),delete e.languages.sass.atrule;var t=/\$[-\w]+|#\{\$[-\w]+\}/,n=[/[+*\/%]|[=!]=|<=?|>=?|\b(?:and|not|or)\b/,{pattern:/(\s)-(?=\s)/,lookbehind:!0}];e.languages.insertBefore("sass","property",{"variable-line":{pattern:/^[ \t]*\$.+/m,greedy:!0,inside:{punctuation:/:/,variable:t,operator:n}},"property-line":{pattern:/^[ \t]*(?:[^:\s]+ *:.*|:[^:\s].*)/m,greedy:!0,inside:{property:[/[^:\s]+(?=\s*:)/,{pattern:/(:)[^:\s]+/,lookbehind:!0}],punctuation:/:/,variable:t,operator:n,important:e.languages.sass.important}}}),delete e.languages.sass.property,delete e.languages.sass.important,e.languages.insertBefore("sass","punctuation",{selector:{pattern:/^([ \t]*)\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*(?:,(?:\r?\n|\r)\1[ \t]+\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*)*/m,lookbehind:!0,greedy:!0}})}(a),a.languages.scss=a.languages.extend("css",{comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},atrule:{pattern:/@[\w-](?:\([^()]+\)|[^()\s]|\s+(?!\s))*?(?=\s+[{;])/,inside:{rule:/@[\w-]+/}},url:/(?:[-a-z]+-)?url(?=\()/i,selector:{pattern:/(?=\S)[^@;{}()]?(?:[^@;{}()\s]|\s+(?!\s)|#\{\$[-\w]+\})+(?=\s*\{(?:\}|\s|[^}][^:{}]*[:{][^}]))/,inside:{parent:{pattern:/&/,alias:"important"},placeholder:/%[-\w]+/,variable:/\$[-\w]+|#\{\$[-\w]+\}/}},property:{pattern:/(?:[-\w]|\$[-\w]|#\{\$[-\w]+\})+(?=\s*:)/,inside:{variable:/\$[-\w]+|#\{\$[-\w]+\}/}}}),a.languages.insertBefore("scss","atrule",{keyword:[/@(?:content|debug|each|else(?: if)?|extend|for|forward|function|if|import|include|mixin|return|use|warn|while)\b/i,{pattern:/( )(?:from|through)(?= )/,lookbehind:!0}]}),a.languages.insertBefore("scss","important",{variable:/\$[-\w]+|#\{\$[-\w]+\}/}),a.languages.insertBefore("scss","function",{"module-modifier":{pattern:/\b(?:as|hide|show|with)\b/i,alias:"keyword"},placeholder:{pattern:/%[-\w]+/,alias:"selector"},statement:{pattern:/\B!(?:default|optional)\b/i,alias:"keyword"},boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"},operator:{pattern:/(\s)(?:[-+*\/%]|[=!]=|<=?|>=?|and|not|or)(?=\s)/,lookbehind:!0}}),a.languages.scss.atrule.inside.rest=a.languages.scss,function(e){var t={pattern:/(\b\d+)(?:%|[a-z]+)/,lookbehind:!0},n={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0},r={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},url:{pattern:/\burl\((["']?).*?\1\)/i,greedy:!0},string:{pattern:/("|')(?:(?!\1)[^\\\r\n]|\\(?:\r\n|[\s\S]))*\1/,greedy:!0},interpolation:null,func:null,important:/\B!(?:important|optional)\b/i,keyword:{pattern:/(^|\s+)(?:(?:else|for|if|return|unless)(?=\s|$)|@[\w-]+)/,lookbehind:!0},hexcode:/#[\da-f]{3,6}/i,color:[/\b(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)\b/i,{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:t,number:n,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:t,boolean:/\b(?:false|true)\b/,operator:[/~|[+!\/%<>?=]=?|[-:]=|\*[*=]?|\.{2,3}|&&|\|\||\B-\B|\b(?:and|in|is(?: a| defined| not|nt)?|not|or)\b/],number:n,punctuation:/[{}()\[\];:,]/};r.interpolation={pattern:/\{[^\r\n}:]+\}/,alias:"variable",inside:{delimiter:{pattern:/^\{|\}$/,alias:"punctuation"},rest:r}},r.func={pattern:/[\w-]+\([^)]*\).*/,inside:{function:/^[^(]+/,rest:r}},e.languages.stylus={"atrule-declaration":{pattern:/(^[ \t]*)@.+/m,lookbehind:!0,inside:{atrule:/^@[\w-]+/,rest:r}},"variable-declaration":{pattern:/(^[ \t]*)[\w$-]+\s*.?=[ \t]*(?:\{[^{}]*\}|\S.*|$)/m,lookbehind:!0,inside:{variable:/^\S+/,rest:r}},statement:{pattern:/(^[ \t]*)(?:else|for|if|return|unless)[ \t].+/m,lookbehind:!0,inside:{keyword:/^\S+/,rest:r}},"property-declaration":{pattern:/((?:^|\{)([ \t]*))(?:[\w-]|\{[^}\r\n]+\})+(?:\s*:\s*|[ \t]+)(?!\s)[^{\r\n]*(?:;|[^{\r\n,]$(?!(?:\r?\n|\r)(?:\{|\2[ \t])))/m,lookbehind:!0,inside:{property:{pattern:/^[^\s:]+/,inside:{interpolation:r.interpolation}},rest:r}},selector:{pattern:/(^[ \t]*)(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)(?:(?:\r?\n|\r)(?:\1(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)))*(?:,$|\{|(?=(?:\r?\n|\r)(?:\{|\1[ \t])))/m,lookbehind:!0,inside:{interpolation:r.interpolation,comment:r.comment,punctuation:/[{},]/}},func:r.func,string:r.string,comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0,greedy:!0},interpolation:r.interpolation,punctuation:/[{}()\[\];:.]/}}(a),function(e){var t=e.util.clone(e.languages.typescript);e.languages.tsx=e.languages.extend("jsx",t),delete e.languages.tsx.parameter,delete e.languages.tsx["literal-property"];var n=e.languages.tsx.tag;n.pattern=RegExp(/(^|[^\w$]|(?=<\/))/.source+"(?:"+n.pattern.source+")",n.pattern.flags),n.lookbehind=!0}(a),a.languages.wasm={comment:[/\(;[\s\S]*?;\)/,{pattern:/;;.*/,greedy:!0}],string:{pattern:/"(?:\\[\s\S]|[^"\\])*"/,greedy:!0},keyword:[{pattern:/\b(?:align|offset)=/,inside:{operator:/=/}},{pattern:/\b(?:(?:f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|neg?|nearest|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|sqrt|store(?:8|16|32)?|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))?|memory\.(?:grow|size))\b/,inside:{punctuation:/\./}},/\b(?:anyfunc|block|br(?:_if|_table)?|call(?:_indirect)?|data|drop|elem|else|end|export|func|get_(?:global|local)|global|if|import|local|loop|memory|module|mut|nop|offset|param|result|return|select|set_(?:global|local)|start|table|tee_local|then|type|unreachable)\b/],variable:/\$[\w!#$%&'*+\-./:<=>?@\\^`|~]+/,number:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/,punctuation:/[()]/},t.default=a},9901:function(e){e.exports&&(e.exports={core:{meta:{path:"components/prism-core.js",option:"mandatory"},core:"Core"},themes:{meta:{path:"themes/{id}.css",link:"index.html?theme={id}",exclusive:!0},prism:{title:"Default",option:"default"},"prism-dark":"Dark","prism-funky":"Funky","prism-okaidia":{title:"Okaidia",owner:"ocodia"},"prism-twilight":{title:"Twilight",owner:"remybach"},"prism-coy":{title:"Coy",owner:"tshedor"},"prism-solarizedlight":{title:"Solarized Light",owner:"hectormatos2011 "},"prism-tomorrow":{title:"Tomorrow Night",owner:"Rosey"}},languages:{meta:{path:"components/prism-{id}",noCSS:!0,examplesPath:"examples/prism-{id}",addCheckAll:!0},markup:{title:"Markup",alias:["html","xml","svg","mathml","ssml","atom","rss"],aliasTitles:{html:"HTML",xml:"XML",svg:"SVG",mathml:"MathML",ssml:"SSML",atom:"Atom",rss:"RSS"},option:"default"},css:{title:"CSS",option:"default",modify:"markup"},clike:{title:"C-like",option:"default"},javascript:{title:"JavaScript",require:"clike",modify:"markup",optional:"regex",alias:"js",option:"default"},abap:{title:"ABAP",owner:"dellagustin"},abnf:{title:"ABNF",owner:"RunDevelopment"},actionscript:{title:"ActionScript",require:"javascript",modify:"markup",owner:"Golmote"},ada:{title:"Ada",owner:"Lucretia"},agda:{title:"Agda",owner:"xy-ren"},al:{title:"AL",owner:"RunDevelopment"},antlr4:{title:"ANTLR4",alias:"g4",owner:"RunDevelopment"},apacheconf:{title:"Apache Configuration",owner:"GuiTeK"},apex:{title:"Apex",require:["clike","sql"],owner:"RunDevelopment"},apl:{title:"APL",owner:"ngn"},applescript:{title:"AppleScript",owner:"Golmote"},aql:{title:"AQL",owner:"RunDevelopment"},arduino:{title:"Arduino",require:"cpp",alias:"ino",owner:"dkern"},arff:{title:"ARFF",owner:"Golmote"},armasm:{title:"ARM Assembly",alias:"arm-asm",owner:"RunDevelopment"},arturo:{title:"Arturo",alias:"art",optional:["bash","css","javascript","markup","markdown","sql"],owner:"drkameleon"},asciidoc:{alias:"adoc",title:"AsciiDoc",owner:"Golmote"},aspnet:{title:"ASP.NET (C#)",require:["markup","csharp"],owner:"nauzilus"},asm6502:{title:"6502 Assembly",owner:"kzurawel"},asmatmel:{title:"Atmel AVR Assembly",owner:"cerkit"},autohotkey:{title:"AutoHotkey",owner:"aviaryan"},autoit:{title:"AutoIt",owner:"Golmote"},avisynth:{title:"AviSynth",alias:"avs",owner:"Zinfidel"},"avro-idl":{title:"Avro IDL",alias:"avdl",owner:"RunDevelopment"},awk:{title:"AWK",alias:"gawk",aliasTitles:{gawk:"GAWK"},owner:"RunDevelopment"},bash:{title:"Bash",alias:"shell",aliasTitles:{shell:"Shell"},owner:"zeitgeist87"},basic:{title:"BASIC",owner:"Golmote"},batch:{title:"Batch",owner:"Golmote"},bbcode:{title:"BBcode",alias:"shortcode",aliasTitles:{shortcode:"Shortcode"},owner:"RunDevelopment"},bicep:{title:"Bicep",owner:"johnnyreilly"},birb:{title:"Birb",require:"clike",owner:"Calamity210"},bison:{title:"Bison",require:"c",owner:"Golmote"},bnf:{title:"BNF",alias:"rbnf",aliasTitles:{rbnf:"RBNF"},owner:"RunDevelopment"},brainfuck:{title:"Brainfuck",owner:"Golmote"},brightscript:{title:"BrightScript",owner:"RunDevelopment"},bro:{title:"Bro",owner:"wayward710"},bsl:{title:"BSL (1C:Enterprise)",alias:"oscript",aliasTitles:{oscript:"OneScript"},owner:"Diversus23"},c:{title:"C",require:"clike",owner:"zeitgeist87"},csharp:{title:"C#",require:"clike",alias:["cs","dotnet"],owner:"mvalipour"},cpp:{title:"C++",require:"c",owner:"zeitgeist87"},cfscript:{title:"CFScript",require:"clike",alias:"cfc",owner:"mjclemente"},chaiscript:{title:"ChaiScript",require:["clike","cpp"],owner:"RunDevelopment"},cil:{title:"CIL",owner:"sbrl"},clojure:{title:"Clojure",owner:"troglotit"},cmake:{title:"CMake",owner:"mjrogozinski"},cobol:{title:"COBOL",owner:"RunDevelopment"},coffeescript:{title:"CoffeeScript",require:"javascript",alias:"coffee",owner:"R-osey"},concurnas:{title:"Concurnas",alias:"conc",owner:"jasontatton"},csp:{title:"Content-Security-Policy",owner:"ScottHelme"},cooklang:{title:"Cooklang",owner:"ahue"},coq:{title:"Coq",owner:"RunDevelopment"},crystal:{title:"Crystal",require:"ruby",owner:"MakeNowJust"},"css-extras":{title:"CSS Extras",require:"css",modify:"css",owner:"milesj"},csv:{title:"CSV",owner:"RunDevelopment"},cue:{title:"CUE",owner:"RunDevelopment"},cypher:{title:"Cypher",owner:"RunDevelopment"},d:{title:"D",require:"clike",owner:"Golmote"},dart:{title:"Dart",require:"clike",owner:"Golmote"},dataweave:{title:"DataWeave",owner:"machaval"},dax:{title:"DAX",owner:"peterbud"},dhall:{title:"Dhall",owner:"RunDevelopment"},diff:{title:"Diff",owner:"uranusjr"},django:{title:"Django/Jinja2",require:"markup-templating",alias:"jinja2",owner:"romanvm"},"dns-zone-file":{title:"DNS zone file",owner:"RunDevelopment",alias:"dns-zone"},docker:{title:"Docker",alias:"dockerfile",owner:"JustinBeckwith"},dot:{title:"DOT (Graphviz)",alias:"gv",optional:"markup",owner:"RunDevelopment"},ebnf:{title:"EBNF",owner:"RunDevelopment"},editorconfig:{title:"EditorConfig",owner:"osipxd"},eiffel:{title:"Eiffel",owner:"Conaclos"},ejs:{title:"EJS",require:["javascript","markup-templating"],owner:"RunDevelopment",alias:"eta",aliasTitles:{eta:"Eta"}},elixir:{title:"Elixir",owner:"Golmote"},elm:{title:"Elm",owner:"zwilias"},etlua:{title:"Embedded Lua templating",require:["lua","markup-templating"],owner:"RunDevelopment"},erb:{title:"ERB",require:["ruby","markup-templating"],owner:"Golmote"},erlang:{title:"Erlang",owner:"Golmote"},"excel-formula":{title:"Excel Formula",alias:["xlsx","xls"],owner:"RunDevelopment"},fsharp:{title:"F#",require:"clike",owner:"simonreynolds7"},factor:{title:"Factor",owner:"catb0t"},false:{title:"False",owner:"edukisto"},"firestore-security-rules":{title:"Firestore security rules",require:"clike",owner:"RunDevelopment"},flow:{title:"Flow",require:"javascript",owner:"Golmote"},fortran:{title:"Fortran",owner:"Golmote"},ftl:{title:"FreeMarker Template Language",require:"markup-templating",owner:"RunDevelopment"},gml:{title:"GameMaker Language",alias:"gamemakerlanguage",require:"clike",owner:"LiarOnce"},gap:{title:"GAP (CAS)",owner:"RunDevelopment"},gcode:{title:"G-code",owner:"RunDevelopment"},gdscript:{title:"GDScript",owner:"RunDevelopment"},gedcom:{title:"GEDCOM",owner:"Golmote"},gettext:{title:"gettext",alias:"po",owner:"RunDevelopment"},gherkin:{title:"Gherkin",owner:"hason"},git:{title:"Git",owner:"lgiraudel"},glsl:{title:"GLSL",require:"c",owner:"Golmote"},gn:{title:"GN",alias:"gni",owner:"RunDevelopment"},"linker-script":{title:"GNU Linker Script",alias:"ld",owner:"RunDevelopment"},go:{title:"Go",require:"clike",owner:"arnehormann"},"go-module":{title:"Go module",alias:"go-mod",owner:"RunDevelopment"},graphql:{title:"GraphQL",optional:"markdown",owner:"Golmote"},groovy:{title:"Groovy",require:"clike",owner:"robfletcher"},haml:{title:"Haml",require:"ruby",optional:["css","css-extras","coffeescript","erb","javascript","less","markdown","scss","textile"],owner:"Golmote"},handlebars:{title:"Handlebars",require:"markup-templating",alias:["hbs","mustache"],aliasTitles:{mustache:"Mustache"},owner:"Golmote"},haskell:{title:"Haskell",alias:"hs",owner:"bholst"},haxe:{title:"Haxe",require:"clike",optional:"regex",owner:"Golmote"},hcl:{title:"HCL",owner:"outsideris"},hlsl:{title:"HLSL",require:"c",owner:"RunDevelopment"},hoon:{title:"Hoon",owner:"matildepark"},http:{title:"HTTP",optional:["csp","css","hpkp","hsts","javascript","json","markup","uri"],owner:"danielgtaylor"},hpkp:{title:"HTTP Public-Key-Pins",owner:"ScottHelme"},hsts:{title:"HTTP Strict-Transport-Security",owner:"ScottHelme"},ichigojam:{title:"IchigoJam",owner:"BlueCocoa"},icon:{title:"Icon",owner:"Golmote"},"icu-message-format":{title:"ICU Message Format",owner:"RunDevelopment"},idris:{title:"Idris",alias:"idr",owner:"KeenS",require:"haskell"},ignore:{title:".ignore",owner:"osipxd",alias:["gitignore","hgignore","npmignore"],aliasTitles:{gitignore:".gitignore",hgignore:".hgignore",npmignore:".npmignore"}},inform7:{title:"Inform 7",owner:"Golmote"},ini:{title:"Ini",owner:"aviaryan"},io:{title:"Io",owner:"AlesTsurko"},j:{title:"J",owner:"Golmote"},java:{title:"Java",require:"clike",owner:"sherblot"},javadoc:{title:"JavaDoc",require:["markup","java","javadoclike"],modify:"java",optional:"scala",owner:"RunDevelopment"},javadoclike:{title:"JavaDoc-like",modify:["java","javascript","php"],owner:"RunDevelopment"},javastacktrace:{title:"Java stack trace",owner:"RunDevelopment"},jexl:{title:"Jexl",owner:"czosel"},jolie:{title:"Jolie",require:"clike",owner:"thesave"},jq:{title:"JQ",owner:"RunDevelopment"},jsdoc:{title:"JSDoc",require:["javascript","javadoclike","typescript"],modify:"javascript",optional:["actionscript","coffeescript"],owner:"RunDevelopment"},"js-extras":{title:"JS Extras",require:"javascript",modify:"javascript",optional:["actionscript","coffeescript","flow","n4js","typescript"],owner:"RunDevelopment"},json:{title:"JSON",alias:"webmanifest",aliasTitles:{webmanifest:"Web App Manifest"},owner:"CupOfTea696"},json5:{title:"JSON5",require:"json",owner:"RunDevelopment"},jsonp:{title:"JSONP",require:"json",owner:"RunDevelopment"},jsstacktrace:{title:"JS stack trace",owner:"sbrl"},"js-templates":{title:"JS Templates",require:"javascript",modify:"javascript",optional:["css","css-extras","graphql","markdown","markup","sql"],owner:"RunDevelopment"},julia:{title:"Julia",owner:"cdagnino"},keepalived:{title:"Keepalived Configure",owner:"dev-itsheng"},keyman:{title:"Keyman",owner:"mcdurdin"},kotlin:{title:"Kotlin",alias:["kt","kts"],aliasTitles:{kts:"Kotlin Script"},require:"clike",owner:"Golmote"},kumir:{title:"KuMir (\u041a\u0443\u041c\u0438\u0440)",alias:"kum",owner:"edukisto"},kusto:{title:"Kusto",owner:"RunDevelopment"},latex:{title:"LaTeX",alias:["tex","context"],aliasTitles:{tex:"TeX",context:"ConTeXt"},owner:"japborst"},latte:{title:"Latte",require:["clike","markup-templating","php"],owner:"nette"},less:{title:"Less",require:"css",optional:"css-extras",owner:"Golmote"},lilypond:{title:"LilyPond",require:"scheme",alias:"ly",owner:"RunDevelopment"},liquid:{title:"Liquid",require:"markup-templating",owner:"cinhtau"},lisp:{title:"Lisp",alias:["emacs","elisp","emacs-lisp"],owner:"JuanCaicedo"},livescript:{title:"LiveScript",owner:"Golmote"},llvm:{title:"LLVM IR",owner:"porglezomp"},log:{title:"Log file",optional:"javastacktrace",owner:"RunDevelopment"},lolcode:{title:"LOLCODE",owner:"Golmote"},lua:{title:"Lua",owner:"Golmote"},magma:{title:"Magma (CAS)",owner:"RunDevelopment"},makefile:{title:"Makefile",owner:"Golmote"},markdown:{title:"Markdown",require:"markup",optional:"yaml",alias:"md",owner:"Golmote"},"markup-templating":{title:"Markup templating",require:"markup",owner:"Golmote"},mata:{title:"Mata",owner:"RunDevelopment"},matlab:{title:"MATLAB",owner:"Golmote"},maxscript:{title:"MAXScript",owner:"RunDevelopment"},mel:{title:"MEL",owner:"Golmote"},mermaid:{title:"Mermaid",owner:"RunDevelopment"},mizar:{title:"Mizar",owner:"Golmote"},mongodb:{title:"MongoDB",owner:"airs0urce",require:"javascript"},monkey:{title:"Monkey",owner:"Golmote"},moonscript:{title:"MoonScript",alias:"moon",owner:"RunDevelopment"},n1ql:{title:"N1QL",owner:"TMWilds"},n4js:{title:"N4JS",require:"javascript",optional:"jsdoc",alias:"n4jsd",owner:"bsmith-n4"},"nand2tetris-hdl":{title:"Nand To Tetris HDL",owner:"stephanmax"},naniscript:{title:"Naninovel Script",owner:"Elringus",alias:"nani"},nasm:{title:"NASM",owner:"rbmj"},neon:{title:"NEON",owner:"nette"},nevod:{title:"Nevod",owner:"nezaboodka"},nginx:{title:"nginx",owner:"volado"},nim:{title:"Nim",owner:"Golmote"},nix:{title:"Nix",owner:"Golmote"},nsis:{title:"NSIS",owner:"idleberg"},objectivec:{title:"Objective-C",require:"c",alias:"objc",owner:"uranusjr"},ocaml:{title:"OCaml",owner:"Golmote"},odin:{title:"Odin",owner:"edukisto"},opencl:{title:"OpenCL",require:"c",modify:["c","cpp"],owner:"Milania1"},openqasm:{title:"OpenQasm",alias:"qasm",owner:"RunDevelopment"},oz:{title:"Oz",owner:"Golmote"},parigp:{title:"PARI/GP",owner:"Golmote"},parser:{title:"Parser",require:"markup",owner:"Golmote"},pascal:{title:"Pascal",alias:"objectpascal",aliasTitles:{objectpascal:"Object Pascal"},owner:"Golmote"},pascaligo:{title:"Pascaligo",owner:"DefinitelyNotAGoat"},psl:{title:"PATROL Scripting Language",owner:"bertysentry"},pcaxis:{title:"PC-Axis",alias:"px",owner:"RunDevelopment"},peoplecode:{title:"PeopleCode",alias:"pcode",owner:"RunDevelopment"},perl:{title:"Perl",owner:"Golmote"},php:{title:"PHP",require:"markup-templating",owner:"milesj"},phpdoc:{title:"PHPDoc",require:["php","javadoclike"],modify:"php",owner:"RunDevelopment"},"php-extras":{title:"PHP Extras",require:"php",modify:"php",owner:"milesj"},"plant-uml":{title:"PlantUML",alias:"plantuml",owner:"RunDevelopment"},plsql:{title:"PL/SQL",require:"sql",owner:"Golmote"},powerquery:{title:"PowerQuery",alias:["pq","mscript"],owner:"peterbud"},powershell:{title:"PowerShell",owner:"nauzilus"},processing:{title:"Processing",require:"clike",owner:"Golmote"},prolog:{title:"Prolog",owner:"Golmote"},promql:{title:"PromQL",owner:"arendjr"},properties:{title:".properties",owner:"Golmote"},protobuf:{title:"Protocol Buffers",require:"clike",owner:"just-boris"},pug:{title:"Pug",require:["markup","javascript"],optional:["coffeescript","ejs","handlebars","less","livescript","markdown","scss","stylus","twig"],owner:"Golmote"},puppet:{title:"Puppet",owner:"Golmote"},pure:{title:"Pure",optional:["c","cpp","fortran"],owner:"Golmote"},purebasic:{title:"PureBasic",require:"clike",alias:"pbfasm",owner:"HeX0R101"},purescript:{title:"PureScript",require:"haskell",alias:"purs",owner:"sriharshachilakapati"},python:{title:"Python",alias:"py",owner:"multipetros"},qsharp:{title:"Q#",require:"clike",alias:"qs",owner:"fedonman"},q:{title:"Q (kdb+ database)",owner:"Golmote"},qml:{title:"QML",require:"javascript",owner:"RunDevelopment"},qore:{title:"Qore",require:"clike",owner:"temnroegg"},r:{title:"R",owner:"Golmote"},racket:{title:"Racket",require:"scheme",alias:"rkt",owner:"RunDevelopment"},cshtml:{title:"Razor C#",alias:"razor",require:["markup","csharp"],optional:["css","css-extras","javascript","js-extras"],owner:"RunDevelopment"},jsx:{title:"React JSX",require:["markup","javascript"],optional:["jsdoc","js-extras","js-templates"],owner:"vkbansal"},tsx:{title:"React TSX",require:["jsx","typescript"]},reason:{title:"Reason",require:"clike",owner:"Golmote"},regex:{title:"Regex",owner:"RunDevelopment"},rego:{title:"Rego",owner:"JordanSh"},renpy:{title:"Ren'py",alias:"rpy",owner:"HyuchiaDiego"},rescript:{title:"ReScript",alias:"res",owner:"vmarcosp"},rest:{title:"reST (reStructuredText)",owner:"Golmote"},rip:{title:"Rip",owner:"ravinggenius"},roboconf:{title:"Roboconf",owner:"Golmote"},robotframework:{title:"Robot Framework",alias:"robot",owner:"RunDevelopment"},ruby:{title:"Ruby",require:"clike",alias:"rb",owner:"samflores"},rust:{title:"Rust",owner:"Golmote"},sas:{title:"SAS",optional:["groovy","lua","sql"],owner:"Golmote"},sass:{title:"Sass (Sass)",require:"css",optional:"css-extras",owner:"Golmote"},scss:{title:"Sass (Scss)",require:"css",optional:"css-extras",owner:"MoOx"},scala:{title:"Scala",require:"java",owner:"jozic"},scheme:{title:"Scheme",owner:"bacchus123"},"shell-session":{title:"Shell session",require:"bash",alias:["sh-session","shellsession"],owner:"RunDevelopment"},smali:{title:"Smali",owner:"RunDevelopment"},smalltalk:{title:"Smalltalk",owner:"Golmote"},smarty:{title:"Smarty",require:"markup-templating",optional:"php",owner:"Golmote"},sml:{title:"SML",alias:"smlnj",aliasTitles:{smlnj:"SML/NJ"},owner:"RunDevelopment"},solidity:{title:"Solidity (Ethereum)",alias:"sol",require:"clike",owner:"glachaud"},"solution-file":{title:"Solution file",alias:"sln",owner:"RunDevelopment"},soy:{title:"Soy (Closure Template)",require:"markup-templating",owner:"Golmote"},sparql:{title:"SPARQL",require:"turtle",owner:"Triply-Dev",alias:"rq"},"splunk-spl":{title:"Splunk SPL",owner:"RunDevelopment"},sqf:{title:"SQF: Status Quo Function (Arma 3)",require:"clike",owner:"RunDevelopment"},sql:{title:"SQL",owner:"multipetros"},squirrel:{title:"Squirrel",require:"clike",owner:"RunDevelopment"},stan:{title:"Stan",owner:"RunDevelopment"},stata:{title:"Stata Ado",require:["mata","java","python"],owner:"RunDevelopment"},iecst:{title:"Structured Text (IEC 61131-3)",owner:"serhioromano"},stylus:{title:"Stylus",owner:"vkbansal"},supercollider:{title:"SuperCollider",alias:"sclang",owner:"RunDevelopment"},swift:{title:"Swift",owner:"chrischares"},systemd:{title:"Systemd configuration file",owner:"RunDevelopment"},"t4-templating":{title:"T4 templating",owner:"RunDevelopment"},"t4-cs":{title:"T4 Text Templates (C#)",require:["t4-templating","csharp"],alias:"t4",owner:"RunDevelopment"},"t4-vb":{title:"T4 Text Templates (VB)",require:["t4-templating","vbnet"],owner:"RunDevelopment"},tap:{title:"TAP",owner:"isaacs",require:"yaml"},tcl:{title:"Tcl",owner:"PeterChaplin"},tt2:{title:"Template Toolkit 2",require:["clike","markup-templating"],owner:"gflohr"},textile:{title:"Textile",require:"markup",optional:"css",owner:"Golmote"},toml:{title:"TOML",owner:"RunDevelopment"},tremor:{title:"Tremor",alias:["trickle","troy"],owner:"darach",aliasTitles:{trickle:"trickle",troy:"troy"}},turtle:{title:"Turtle",alias:"trig",aliasTitles:{trig:"TriG"},owner:"jakubklimek"},twig:{title:"Twig",require:"markup-templating",owner:"brandonkelly"},typescript:{title:"TypeScript",require:"javascript",optional:"js-templates",alias:"ts",owner:"vkbansal"},typoscript:{title:"TypoScript",alias:"tsconfig",aliasTitles:{tsconfig:"TSConfig"},owner:"dkern"},unrealscript:{title:"UnrealScript",alias:["uscript","uc"],owner:"RunDevelopment"},uorazor:{title:"UO Razor Script",owner:"jaseowns"},uri:{title:"URI",alias:"url",aliasTitles:{url:"URL"},owner:"RunDevelopment"},v:{title:"V",require:"clike",owner:"taggon"},vala:{title:"Vala",require:"clike",optional:"regex",owner:"TemplarVolk"},vbnet:{title:"VB.Net",require:"basic",owner:"Bigsby"},velocity:{title:"Velocity",require:"markup",owner:"Golmote"},verilog:{title:"Verilog",owner:"a-rey"},vhdl:{title:"VHDL",owner:"a-rey"},vim:{title:"vim",owner:"westonganger"},"visual-basic":{title:"Visual Basic",alias:["vb","vba"],aliasTitles:{vba:"VBA"},owner:"Golmote"},warpscript:{title:"WarpScript",owner:"RunDevelopment"},wasm:{title:"WebAssembly",owner:"Golmote"},"web-idl":{title:"Web IDL",alias:"webidl",owner:"RunDevelopment"},wiki:{title:"Wiki markup",require:"markup",owner:"Golmote"},wolfram:{title:"Wolfram language",alias:["mathematica","nb","wl"],aliasTitles:{mathematica:"Mathematica",nb:"Mathematica Notebook"},owner:"msollami"},wren:{title:"Wren",owner:"clsource"},xeora:{title:"Xeora",require:"markup",alias:"xeoracube",aliasTitles:{xeoracube:"XeoraCube"},owner:"freakmaxi"},"xml-doc":{title:"XML doc (.net)",require:"markup",modify:["csharp","fsharp","vbnet"],owner:"RunDevelopment"},xojo:{title:"Xojo (REALbasic)",owner:"Golmote"},xquery:{title:"XQuery",require:"markup",owner:"Golmote"},yaml:{title:"YAML",alias:"yml",owner:"hason"},yang:{title:"YANG",owner:"RunDevelopment"},zig:{title:"Zig",owner:"RunDevelopment"}},plugins:{meta:{path:"plugins/{id}/prism-{id}",link:"plugins/{id}/"},"line-highlight":{title:"Line Highlight",description:"Highlights specific lines and/or line ranges."},"line-numbers":{title:"Line Numbers",description:"Line number at the beginning of code lines.",owner:"kuba-kubula"},"show-invisibles":{title:"Show Invisibles",description:"Show hidden characters such as tabs and line breaks.",optional:["autolinker","data-uri-highlight"]},autolinker:{title:"Autolinker",description:"Converts URLs and emails in code to clickable links. Parses Markdown links in comments."},wpd:{title:"WebPlatform Docs",description:'Makes tokens link to <a href="https://webplatform.github.io/docs/">WebPlatform.org documentation</a>. The links open in a new tab.'},"custom-class":{title:"Custom Class",description:"This plugin allows you to prefix Prism's default classes (<code>.comment</code> can become <code>.namespace--comment</code>) or replace them with your defined ones (like <code>.editor__comment</code>). You can even add new classes.",owner:"dvkndn",noCSS:!0},"file-highlight":{title:"File Highlight",description:"Fetch external files and highlight them with Prism. Used on the Prism website itself.",noCSS:!0},"show-language":{title:"Show Language",description:"Display the highlighted language in code blocks (inline code does not show the label).",owner:"nauzilus",noCSS:!0,require:"toolbar"},"jsonp-highlight":{title:"JSONP Highlight",description:"Fetch content with JSONP and highlight some interesting content (e.g. GitHub/Gists or Bitbucket API).",noCSS:!0,owner:"nauzilus"},"highlight-keywords":{title:"Highlight Keywords",description:"Adds special CSS classes for each keyword for fine-grained highlighting.",owner:"vkbansal",noCSS:!0},"remove-initial-line-feed":{title:"Remove initial line feed",description:"Removes the initial line feed in code blocks.",owner:"Golmote",noCSS:!0},"inline-color":{title:"Inline color",description:"Adds a small inline preview for colors in style sheets.",require:"css-extras",owner:"RunDevelopment"},previewers:{title:"Previewers",description:"Previewers for angles, colors, gradients, easing and time.",require:"css-extras",owner:"Golmote"},autoloader:{title:"Autoloader",description:"Automatically loads the needed languages to highlight the code blocks.",owner:"Golmote",noCSS:!0},"keep-markup":{title:"Keep Markup",description:"Prevents custom markup from being dropped out during highlighting.",owner:"Golmote",optional:"normalize-whitespace",noCSS:!0},"command-line":{title:"Command Line",description:"Display a command line with a prompt and, optionally, the output/response from the commands.",owner:"chriswells0"},"unescaped-markup":{title:"Unescaped Markup",description:"Write markup without having to escape anything."},"normalize-whitespace":{title:"Normalize Whitespace",description:"Supports multiple operations to normalize whitespace in code blocks.",owner:"zeitgeist87",optional:"unescaped-markup",noCSS:!0},"data-uri-highlight":{title:"Data-URI Highlight",description:"Highlights data-URI contents.",owner:"Golmote",noCSS:!0},toolbar:{title:"Toolbar",description:"Attach a toolbar for plugins to easily register buttons on the top of a code block.",owner:"mAAdhaTTah"},"copy-to-clipboard":{title:"Copy to Clipboard Button",description:"Add a button that copies the code block to the clipboard when clicked.",owner:"mAAdhaTTah",require:"toolbar",noCSS:!0},"download-button":{title:"Download Button",description:"A button in the toolbar of a code block adding a convenient way to download a code file.",owner:"Golmote",require:"toolbar",noCSS:!0},"match-braces":{title:"Match braces",description:"Highlights matching braces.",owner:"RunDevelopment"},"diff-highlight":{title:"Diff Highlight",description:"Highlights the code inside diff blocks.",owner:"RunDevelopment",require:"diff"},"filter-highlight-all":{title:"Filter highlightAll",description:"Filters the elements the <code>highlightAll</code> and <code>highlightAllUnder</code> methods actually highlight.",owner:"RunDevelopment",noCSS:!0},treeview:{title:"Treeview",description:"A language with special styles to highlight file system tree structures.",owner:"Golmote"}}})},2885:function(e,t,n){const r=n(9901),a=n(9642),o=new Set;function i(e){void 0===e?e=Object.keys(r.languages).filter((e=>"meta"!=e)):Array.isArray(e)||(e=[e]);const t=[...o,...Object.keys(Prism.languages)];a(r,e,t).load((e=>{if(!(e in r.languages))return void(i.silent||console.warn("Language does not exist: "+e));const t="./prism-"+e;delete n.c[n(6500).resolve(t)],delete Prism.languages[e],n(6500)(t),o.add(e)}))}i.silent=!1,e.exports=i},6726:function(e,t,n){var r={"./":2885};function a(e){var t=o(e);return n(t)}function o(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}a.keys=function(){return Object.keys(r)},a.resolve=o,e.exports=a,a.id=6726},6500:function(e,t,n){var r={"./":2885};function a(e){var t=o(e);return n(t)}function o(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}a.keys=function(){return Object.keys(r)},a.resolve=o,e.exports=a,a.id=6500},9642:function(e){"use strict";var t=function(){var e=function(){};function t(e,t){Array.isArray(e)?e.forEach(t):null!=e&&t(e,0)}function n(e){for(var t={},n=0,r=e.length;n<r;n++)t[e[n]]=!0;return t}function r(e){var n={},r=[];function a(r,o){if(!(r in n)){o.push(r);var i=o.indexOf(r);if(i<o.length-1)throw new Error("Circular dependency: "+o.slice(i).join(" -> "));var l={},u=e[r];if(u){function s(t){if(!(t in e))throw new Error(r+" depends on an unknown component "+t);if(!(t in l))for(var i in a(t,o),l[t]=!0,n[t])l[i]=!0}t(u.require,s),t(u.optional,s),t(u.modify,s)}n[r]=l,o.pop()}}return function(e){var t=n[e];return t||(a(e,r),t=n[e]),t}}function a(e){for(var t in e)return!0;return!1}return function(o,i,l){var u=function(e){var t={};for(var n in e){var r=e[n];for(var a in r)if("meta"!=a){var o=r[a];t[a]="string"==typeof o?{title:o}:o}}return t}(o),s=function(e){var n;return function(r){if(r in e)return r;if(!n)for(var a in n={},e){var o=e[a];t(o&&o.alias,(function(t){if(t in n)throw new Error(t+" cannot be alias for both "+a+" and "+n[t]);if(t in e)throw new Error(t+" cannot be alias of "+a+" because it is a component.");n[t]=a}))}return n[r]||r}}(u);i=i.map(s),l=(l||[]).map(s);var c=n(i),f=n(l);i.forEach((function e(n){var r=u[n];t(r&&r.require,(function(t){t in f||(c[t]=!0,e(t))}))}));for(var d,p=r(u),m=c;a(m);){for(var h in d={},m){var g=u[h];t(g&&g.modify,(function(e){e in f&&(d[e]=!0)}))}for(var v in f)if(!(v in c))for(var b in p(v))if(b in c){d[v]=!0;break}for(var y in m=d)c[y]=!0}var w={getIds:function(){var e=[];return w.load((function(t){e.push(t)})),e},load:function(t,n){return function(t,n,r,a){var o=a?a.series:void 0,i=a?a.parallel:e,l={},u={};function s(e){if(e in l)return l[e];u[e]=!0;var a,c=[];for(var f in t(e))f in n&&c.push(f);if(0===c.length)a=r(e);else{var d=i(c.map((function(e){var t=s(e);return delete u[e],t})));o?a=o(d,(function(){return r(e)})):r(e)}return l[e]=a}for(var c in n)s(c);var f=[];for(var d in u)f.push(l[d]);return i(f)}(p,c,t,n)}};return w}}();e.exports=t},2703:function(e,t,n){"use strict";var r=n(414);function a(){}function o(){}o.resetWarningCache=a,e.exports=function(){function e(e,t,n,a,o,i){if(i!==r){var l=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw l.name="Invariant Violation",l}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:o,resetWarningCache:a};return n.PropTypes=n,n}},5697:function(e,t,n){e.exports=n(2703)()},414:function(e){"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},4448:function(e,t,n){"use strict";var r=n(7294),a=n(7418),o=n(3840);function i(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}if(!r)throw Error(i(227));var l=new Set,u={};function s(e,t){c(e,t),c(e+"Capture",t)}function c(e,t){for(u[e]=t,e=0;e<t.length;e++)l.add(t[e])}var f=!("undefined"==typeof window||void 0===window.document||void 0===window.document.createElement),d=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,p=Object.prototype.hasOwnProperty,m={},h={};function g(e,t,n,r,a,o,i){this.acceptsBooleans=2===t||3===t||4===t,this.attributeName=r,this.attributeNamespace=a,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=o,this.removeEmptyString=i}var v={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach((function(e){v[e]=new g(e,0,!1,e,null,!1,!1)})),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach((function(e){var t=e[0];v[t]=new g(t,1,!1,e[1],null,!1,!1)})),["contentEditable","draggable","spellCheck","value"].forEach((function(e){v[e]=new g(e,2,!1,e.toLowerCase(),null,!1,!1)})),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach((function(e){v[e]=new g(e,2,!1,e,null,!1,!1)})),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach((function(e){v[e]=new g(e,3,!1,e.toLowerCase(),null,!1,!1)})),["checked","multiple","muted","selected"].forEach((function(e){v[e]=new g(e,3,!0,e,null,!1,!1)})),["capture","download"].forEach((function(e){v[e]=new g(e,4,!1,e,null,!1,!1)})),["cols","rows","size","span"].forEach((function(e){v[e]=new g(e,6,!1,e,null,!1,!1)})),["rowSpan","start"].forEach((function(e){v[e]=new g(e,5,!1,e.toLowerCase(),null,!1,!1)}));var b=/[\-:]([a-z])/g;function y(e){return e[1].toUpperCase()}function w(e,t,n,r){var a=v.hasOwnProperty(t)?v[t]:null;(null!==a?0===a.type:!r&&(2<t.length&&("o"===t[0]||"O"===t[0])&&("n"===t[1]||"N"===t[1])))||(function(e,t,n,r){if(null==t||function(e,t,n,r){if(null!==n&&0===n.type)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return!r&&(null!==n?!n.acceptsBooleans:"data-"!==(e=e.toLowerCase().slice(0,5))&&"aria-"!==e);default:return!1}}(e,t,n,r))return!0;if(r)return!1;if(null!==n)switch(n.type){case 3:return!t;case 4:return!1===t;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}(t,n,a,r)&&(n=null),r||null===a?function(e){return!!p.call(h,e)||!p.call(m,e)&&(d.test(e)?h[e]=!0:(m[e]=!0,!1))}(t)&&(null===n?e.removeAttribute(t):e.setAttribute(t,""+n)):a.mustUseProperty?e[a.propertyName]=null===n?3!==a.type&&"":n:(t=a.attributeName,r=a.attributeNamespace,null===n?e.removeAttribute(t):(n=3===(a=a.type)||4===a&&!0===n?"":""+n,r?e.setAttributeNS(r,t,n):e.setAttribute(t,n))))}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach((function(e){var t=e.replace(b,y);v[t]=new g(t,1,!1,e,null,!1,!1)})),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach((function(e){var t=e.replace(b,y);v[t]=new g(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)})),["xml:base","xml:lang","xml:space"].forEach((function(e){var t=e.replace(b,y);v[t]=new g(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)})),["tabIndex","crossOrigin"].forEach((function(e){v[e]=new g(e,1,!1,e.toLowerCase(),null,!1,!1)})),v.xlinkHref=new g("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach((function(e){v[e]=new g(e,1,!1,e.toLowerCase(),null,!0,!0)}));var k=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,E=60103,S=60106,x=60107,_=60108,C=60114,T=60109,A=60110,O=60112,L=60113,P=60120,R=60115,N=60116,I=60121,D=60128,M=60129,F=60130,j=60131;if("function"==typeof Symbol&&Symbol.for){var B=Symbol.for;E=B("react.element"),S=B("react.portal"),x=B("react.fragment"),_=B("react.strict_mode"),C=B("react.profiler"),T=B("react.provider"),A=B("react.context"),O=B("react.forward_ref"),L=B("react.suspense"),P=B("react.suspense_list"),R=B("react.memo"),N=B("react.lazy"),I=B("react.block"),B("react.scope"),D=B("react.opaque.id"),M=B("react.debug_trace_mode"),F=B("react.offscreen"),j=B("react.legacy_hidden")}var z,U="function"==typeof Symbol&&Symbol.iterator;function Z(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=U&&e[U]||e["@@iterator"])?e:null}function $(e){if(void 0===z)try{throw Error()}catch(n){var t=n.stack.trim().match(/\n( *(at )?)/);z=t&&t[1]||""}return"\n"+z+e}var q=!1;function G(e,t){if(!e||q)return"";q=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(t)if(t=function(){throw Error()},Object.defineProperty(t.prototype,"props",{set:function(){throw Error()}}),"object"==typeof Reflect&&Reflect.construct){try{Reflect.construct(t,[])}catch(u){var r=u}Reflect.construct(e,[],t)}else{try{t.call()}catch(u){r=u}e.call(t.prototype)}else{try{throw Error()}catch(u){r=u}e()}}catch(u){if(u&&r&&"string"==typeof u.stack){for(var a=u.stack.split("\n"),o=r.stack.split("\n"),i=a.length-1,l=o.length-1;1<=i&&0<=l&&a[i]!==o[l];)l--;for(;1<=i&&0<=l;i--,l--)if(a[i]!==o[l]){if(1!==i||1!==l)do{if(i--,0>--l||a[i]!==o[l])return"\n"+a[i].replace(" at new "," at ")}while(1<=i&&0<=l);break}}}finally{q=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?$(e):""}function H(e){switch(e.tag){case 5:return $(e.type);case 16:return $("Lazy");case 13:return $("Suspense");case 19:return $("SuspenseList");case 0:case 2:case 15:return e=G(e.type,!1);case 11:return e=G(e.type.render,!1);case 22:return e=G(e.type._render,!1);case 1:return e=G(e.type,!0);default:return""}}function V(e){if(null==e)return null;if("function"==typeof e)return e.displayName||e.name||null;if("string"==typeof e)return e;switch(e){case x:return"Fragment";case S:return"Portal";case C:return"Profiler";case _:return"StrictMode";case L:return"Suspense";case P:return"SuspenseList"}if("object"==typeof e)switch(e.$$typeof){case A:return(e.displayName||"Context")+".Consumer";case T:return(e._context.displayName||"Context")+".Provider";case O:var t=e.render;return t=t.displayName||t.name||"",e.displayName||(""!==t?"ForwardRef("+t+")":"ForwardRef");case R:return V(e.type);case I:return V(e._render);case N:t=e._payload,e=e._init;try{return V(e(t))}catch(n){}}return null}function W(e){switch(typeof e){case"boolean":case"number":case"object":case"string":case"undefined":return e;default:return""}}function Y(e){var t=e.type;return(e=e.nodeName)&&"input"===e.toLowerCase()&&("checkbox"===t||"radio"===t)}function K(e){e._valueTracker||(e._valueTracker=function(e){var t=Y(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&void 0!==n&&"function"==typeof n.get&&"function"==typeof n.set){var a=n.get,o=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return a.call(this)},set:function(e){r=""+e,o.call(this,e)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(e){r=""+e},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}(e))}function Q(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=Y(e)?e.checked?"true":"false":e.value),(e=r)!==n&&(t.setValue(e),!0)}function X(e){if(void 0===(e=e||("undefined"!=typeof document?document:void 0)))return null;try{return e.activeElement||e.body}catch(t){return e.body}}function J(e,t){var n=t.checked;return a({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=n?n:e._wrapperState.initialChecked})}function ee(e,t){var n=null==t.defaultValue?"":t.defaultValue,r=null!=t.checked?t.checked:t.defaultChecked;n=W(null!=t.value?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:"checkbox"===t.type||"radio"===t.type?null!=t.checked:null!=t.value}}function te(e,t){null!=(t=t.checked)&&w(e,"checked",t,!1)}function ne(e,t){te(e,t);var n=W(t.value),r=t.type;if(null!=n)"number"===r?(0===n&&""===e.value||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if("submit"===r||"reset"===r)return void e.removeAttribute("value");t.hasOwnProperty("value")?ae(e,t.type,n):t.hasOwnProperty("defaultValue")&&ae(e,t.type,W(t.defaultValue)),null==t.checked&&null!=t.defaultChecked&&(e.defaultChecked=!!t.defaultChecked)}function re(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!("submit"!==r&&"reset"!==r||void 0!==t.value&&null!==t.value))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}""!==(n=e.name)&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,""!==n&&(e.name=n)}function ae(e,t,n){"number"===t&&X(e.ownerDocument)===e||(null==n?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}function oe(e,t){return e=a({children:void 0},t),(t=function(e){var t="";return r.Children.forEach(e,(function(e){null!=e&&(t+=e)})),t}(t.children))&&(e.children=t),e}function ie(e,t,n,r){if(e=e.options,t){t={};for(var a=0;a<n.length;a++)t["$"+n[a]]=!0;for(n=0;n<e.length;n++)a=t.hasOwnProperty("$"+e[n].value),e[n].selected!==a&&(e[n].selected=a),a&&r&&(e[n].defaultSelected=!0)}else{for(n=""+W(n),t=null,a=0;a<e.length;a++){if(e[a].value===n)return e[a].selected=!0,void(r&&(e[a].defaultSelected=!0));null!==t||e[a].disabled||(t=e[a])}null!==t&&(t.selected=!0)}}function le(e,t){if(null!=t.dangerouslySetInnerHTML)throw Error(i(91));return a({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue})}function ue(e,t){var n=t.value;if(null==n){if(n=t.children,t=t.defaultValue,null!=n){if(null!=t)throw Error(i(92));if(Array.isArray(n)){if(!(1>=n.length))throw Error(i(93));n=n[0]}t=n}null==t&&(t=""),n=t}e._wrapperState={initialValue:W(n)}}function se(e,t){var n=W(t.value),r=W(t.defaultValue);null!=n&&((n=""+n)!==e.value&&(e.value=n),null==t.defaultValue&&e.defaultValue!==n&&(e.defaultValue=n)),null!=r&&(e.defaultValue=""+r)}function ce(e){var t=e.textContent;t===e._wrapperState.initialValue&&""!==t&&null!==t&&(e.value=t)}var fe="http://www.w3.org/1999/xhtml",de="http://www.w3.org/2000/svg";function pe(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function me(e,t){return null==e||"http://www.w3.org/1999/xhtml"===e?pe(t):"http://www.w3.org/2000/svg"===e&&"foreignObject"===t?"http://www.w3.org/1999/xhtml":e}var he,ge,ve=(ge=function(e,t){if(e.namespaceURI!==de||"innerHTML"in e)e.innerHTML=t;else{for((he=he||document.createElement("div")).innerHTML="<svg>"+t.valueOf().toString()+"</svg>",t=he.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}},"undefined"!=typeof MSApp&&MSApp.execUnsafeLocalFunction?function(e,t,n,r){MSApp.execUnsafeLocalFunction((function(){return ge(e,t)}))}:ge);function be(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&3===n.nodeType)return void(n.nodeValue=t)}e.textContent=t}var ye={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},we=["Webkit","ms","Moz","O"];function ke(e,t,n){return null==t||"boolean"==typeof t||""===t?"":n||"number"!=typeof t||0===t||ye.hasOwnProperty(e)&&ye[e]?(""+t).trim():t+"px"}function Ee(e,t){for(var n in e=e.style,t)if(t.hasOwnProperty(n)){var r=0===n.indexOf("--"),a=ke(n,t[n],r);"float"===n&&(n="cssFloat"),r?e.setProperty(n,a):e[n]=a}}Object.keys(ye).forEach((function(e){we.forEach((function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),ye[t]=ye[e]}))}));var Se=a({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function xe(e,t){if(t){if(Se[e]&&(null!=t.children||null!=t.dangerouslySetInnerHTML))throw Error(i(137,e));if(null!=t.dangerouslySetInnerHTML){if(null!=t.children)throw Error(i(60));if("object"!=typeof t.dangerouslySetInnerHTML||!("__html"in t.dangerouslySetInnerHTML))throw Error(i(61))}if(null!=t.style&&"object"!=typeof t.style)throw Error(i(62))}}function _e(e,t){if(-1===e.indexOf("-"))return"string"==typeof t.is;switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}function Ce(e){return(e=e.target||e.srcElement||window).correspondingUseElement&&(e=e.correspondingUseElement),3===e.nodeType?e.parentNode:e}var Te=null,Ae=null,Oe=null;function Le(e){if(e=ra(e)){if("function"!=typeof Te)throw Error(i(280));var t=e.stateNode;t&&(t=oa(t),Te(e.stateNode,e.type,t))}}function Pe(e){Ae?Oe?Oe.push(e):Oe=[e]:Ae=e}function Re(){if(Ae){var e=Ae,t=Oe;if(Oe=Ae=null,Le(e),t)for(e=0;e<t.length;e++)Le(t[e])}}function Ne(e,t){return e(t)}function Ie(e,t,n,r,a){return e(t,n,r,a)}function De(){}var Me=Ne,Fe=!1,je=!1;function Be(){null===Ae&&null===Oe||(De(),Re())}function ze(e,t){var n=e.stateNode;if(null===n)return null;var r=oa(n);if(null===r)return null;n=r[t];e:switch(t){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(r=!r.disabled)||(r=!("button"===(e=e.type)||"input"===e||"select"===e||"textarea"===e)),e=!r;break e;default:e=!1}if(e)return null;if(n&&"function"!=typeof n)throw Error(i(231,t,typeof n));return n}var Ue=!1;if(f)try{var Ze={};Object.defineProperty(Ze,"passive",{get:function(){Ue=!0}}),window.addEventListener("test",Ze,Ze),window.removeEventListener("test",Ze,Ze)}catch(ge){Ue=!1}function $e(e,t,n,r,a,o,i,l,u){var s=Array.prototype.slice.call(arguments,3);try{t.apply(n,s)}catch(c){this.onError(c)}}var qe=!1,Ge=null,He=!1,Ve=null,We={onError:function(e){qe=!0,Ge=e}};function Ye(e,t,n,r,a,o,i,l,u){qe=!1,Ge=null,$e.apply(We,arguments)}function Ke(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do{0!=(1026&(t=e).flags)&&(n=t.return),e=t.return}while(e)}return 3===t.tag?n:null}function Qe(e){if(13===e.tag){var t=e.memoizedState;if(null===t&&(null!==(e=e.alternate)&&(t=e.memoizedState)),null!==t)return t.dehydrated}return null}function Xe(e){if(Ke(e)!==e)throw Error(i(188))}function Je(e){if(e=function(e){var t=e.alternate;if(!t){if(null===(t=Ke(e)))throw Error(i(188));return t!==e?null:e}for(var n=e,r=t;;){var a=n.return;if(null===a)break;var o=a.alternate;if(null===o){if(null!==(r=a.return)){n=r;continue}break}if(a.child===o.child){for(o=a.child;o;){if(o===n)return Xe(a),e;if(o===r)return Xe(a),t;o=o.sibling}throw Error(i(188))}if(n.return!==r.return)n=a,r=o;else{for(var l=!1,u=a.child;u;){if(u===n){l=!0,n=a,r=o;break}if(u===r){l=!0,r=a,n=o;break}u=u.sibling}if(!l){for(u=o.child;u;){if(u===n){l=!0,n=o,r=a;break}if(u===r){l=!0,r=o,n=a;break}u=u.sibling}if(!l)throw Error(i(189))}}if(n.alternate!==r)throw Error(i(190))}if(3!==n.tag)throw Error(i(188));return n.stateNode.current===n?e:t}(e),!e)return null;for(var t=e;;){if(5===t.tag||6===t.tag)return t;if(t.child)t.child.return=t,t=t.child;else{if(t===e)break;for(;!t.sibling;){if(!t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}}return null}function et(e,t){for(var n=e.alternate;null!==t;){if(t===e||t===n)return!0;t=t.return}return!1}var tt,nt,rt,at,ot=!1,it=[],lt=null,ut=null,st=null,ct=new Map,ft=new Map,dt=[],pt="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit".split(" ");function mt(e,t,n,r,a){return{blockedOn:e,domEventName:t,eventSystemFlags:16|n,nativeEvent:a,targetContainers:[r]}}function ht(e,t){switch(e){case"focusin":case"focusout":lt=null;break;case"dragenter":case"dragleave":ut=null;break;case"mouseover":case"mouseout":st=null;break;case"pointerover":case"pointerout":ct.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":ft.delete(t.pointerId)}}function gt(e,t,n,r,a,o){return null===e||e.nativeEvent!==o?(e=mt(t,n,r,a,o),null!==t&&(null!==(t=ra(t))&&nt(t)),e):(e.eventSystemFlags|=r,t=e.targetContainers,null!==a&&-1===t.indexOf(a)&&t.push(a),e)}function vt(e){var t=na(e.target);if(null!==t){var n=Ke(t);if(null!==n)if(13===(t=n.tag)){if(null!==(t=Qe(n)))return e.blockedOn=t,void at(e.lanePriority,(function(){o.unstable_runWithPriority(e.priority,(function(){rt(n)}))}))}else if(3===t&&n.stateNode.hydrate)return void(e.blockedOn=3===n.tag?n.stateNode.containerInfo:null)}e.blockedOn=null}function bt(e){if(null!==e.blockedOn)return!1;for(var t=e.targetContainers;0<t.length;){var n=Jt(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(null!==n)return null!==(t=ra(n))&&nt(t),e.blockedOn=n,!1;t.shift()}return!0}function yt(e,t,n){bt(e)&&n.delete(t)}function wt(){for(ot=!1;0<it.length;){var e=it[0];if(null!==e.blockedOn){null!==(e=ra(e.blockedOn))&&tt(e);break}for(var t=e.targetContainers;0<t.length;){var n=Jt(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(null!==n){e.blockedOn=n;break}t.shift()}null===e.blockedOn&&it.shift()}null!==lt&&bt(lt)&&(lt=null),null!==ut&&bt(ut)&&(ut=null),null!==st&&bt(st)&&(st=null),ct.forEach(yt),ft.forEach(yt)}function kt(e,t){e.blockedOn===t&&(e.blockedOn=null,ot||(ot=!0,o.unstable_scheduleCallback(o.unstable_NormalPriority,wt)))}function Et(e){function t(t){return kt(t,e)}if(0<it.length){kt(it[0],e);for(var n=1;n<it.length;n++){var r=it[n];r.blockedOn===e&&(r.blockedOn=null)}}for(null!==lt&&kt(lt,e),null!==ut&&kt(ut,e),null!==st&&kt(st,e),ct.forEach(t),ft.forEach(t),n=0;n<dt.length;n++)(r=dt[n]).blockedOn===e&&(r.blockedOn=null);for(;0<dt.length&&null===(n=dt[0]).blockedOn;)vt(n),null===n.blockedOn&&dt.shift()}function St(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var xt={animationend:St("Animation","AnimationEnd"),animationiteration:St("Animation","AnimationIteration"),animationstart:St("Animation","AnimationStart"),transitionend:St("Transition","TransitionEnd")},_t={},Ct={};function Tt(e){if(_t[e])return _t[e];if(!xt[e])return e;var t,n=xt[e];for(t in n)if(n.hasOwnProperty(t)&&t in Ct)return _t[e]=n[t];return e}f&&(Ct=document.createElement("div").style,"AnimationEvent"in window||(delete xt.animationend.animation,delete xt.animationiteration.animation,delete xt.animationstart.animation),"TransitionEvent"in window||delete xt.transitionend.transition);var At=Tt("animationend"),Ot=Tt("animationiteration"),Lt=Tt("animationstart"),Pt=Tt("transitionend"),Rt=new Map,Nt=new Map,It=["abort","abort",At,"animationEnd",Ot,"animationIteration",Lt,"animationStart","canplay","canPlay","canplaythrough","canPlayThrough","durationchange","durationChange","emptied","emptied","encrypted","encrypted","ended","ended","error","error","gotpointercapture","gotPointerCapture","load","load","loadeddata","loadedData","loadedmetadata","loadedMetadata","loadstart","loadStart","lostpointercapture","lostPointerCapture","playing","playing","progress","progress","seeking","seeking","stalled","stalled","suspend","suspend","timeupdate","timeUpdate",Pt,"transitionEnd","waiting","waiting"];function Dt(e,t){for(var n=0;n<e.length;n+=2){var r=e[n],a=e[n+1];a="on"+(a[0].toUpperCase()+a.slice(1)),Nt.set(r,t),Rt.set(r,a),s(a,[r])}}(0,o.unstable_now)();var Mt=8;function Ft(e){if(0!=(1&e))return Mt=15,1;if(0!=(2&e))return Mt=14,2;if(0!=(4&e))return Mt=13,4;var t=24&e;return 0!==t?(Mt=12,t):0!=(32&e)?(Mt=11,32):0!==(t=192&e)?(Mt=10,t):0!=(256&e)?(Mt=9,256):0!==(t=3584&e)?(Mt=8,t):0!=(4096&e)?(Mt=7,4096):0!==(t=4186112&e)?(Mt=6,t):0!==(t=62914560&e)?(Mt=5,t):67108864&e?(Mt=4,67108864):0!=(134217728&e)?(Mt=3,134217728):0!==(t=805306368&e)?(Mt=2,t):0!=(1073741824&e)?(Mt=1,1073741824):(Mt=8,e)}function jt(e,t){var n=e.pendingLanes;if(0===n)return Mt=0;var r=0,a=0,o=e.expiredLanes,i=e.suspendedLanes,l=e.pingedLanes;if(0!==o)r=o,a=Mt=15;else if(0!==(o=134217727&n)){var u=o&~i;0!==u?(r=Ft(u),a=Mt):0!==(l&=o)&&(r=Ft(l),a=Mt)}else 0!==(o=n&~i)?(r=Ft(o),a=Mt):0!==l&&(r=Ft(l),a=Mt);if(0===r)return 0;if(r=n&((0>(r=31-qt(r))?0:1<<r)<<1)-1,0!==t&&t!==r&&0==(t&i)){if(Ft(t),a<=Mt)return t;Mt=a}if(0!==(t=e.entangledLanes))for(e=e.entanglements,t&=r;0<t;)a=1<<(n=31-qt(t)),r|=e[n],t&=~a;return r}function Bt(e){return 0!==(e=-1073741825&e.pendingLanes)?e:1073741824&e?1073741824:0}function zt(e,t){switch(e){case 15:return 1;case 14:return 2;case 12:return 0===(e=Ut(24&~t))?zt(10,t):e;case 10:return 0===(e=Ut(192&~t))?zt(8,t):e;case 8:return 0===(e=Ut(3584&~t))&&(0===(e=Ut(4186112&~t))&&(e=512)),e;case 2:return 0===(t=Ut(805306368&~t))&&(t=268435456),t}throw Error(i(358,e))}function Ut(e){return e&-e}function Zt(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function $t(e,t,n){e.pendingLanes|=t;var r=t-1;e.suspendedLanes&=r,e.pingedLanes&=r,(e=e.eventTimes)[t=31-qt(t)]=n}var qt=Math.clz32?Math.clz32:function(e){return 0===e?32:31-(Gt(e)/Ht|0)|0},Gt=Math.log,Ht=Math.LN2;var Vt=o.unstable_UserBlockingPriority,Wt=o.unstable_runWithPriority,Yt=!0;function Kt(e,t,n,r){Fe||De();var a=Xt,o=Fe;Fe=!0;try{Ie(a,e,t,n,r)}finally{(Fe=o)||Be()}}function Qt(e,t,n,r){Wt(Vt,Xt.bind(null,e,t,n,r))}function Xt(e,t,n,r){var a;if(Yt)if((a=0==(4&t))&&0<it.length&&-1<pt.indexOf(e))e=mt(null,e,t,n,r),it.push(e);else{var o=Jt(e,t,n,r);if(null===o)a&&ht(e,r);else{if(a){if(-1<pt.indexOf(e))return e=mt(o,e,t,n,r),void it.push(e);if(function(e,t,n,r,a){switch(t){case"focusin":return lt=gt(lt,e,t,n,r,a),!0;case"dragenter":return ut=gt(ut,e,t,n,r,a),!0;case"mouseover":return st=gt(st,e,t,n,r,a),!0;case"pointerover":var o=a.pointerId;return ct.set(o,gt(ct.get(o)||null,e,t,n,r,a)),!0;case"gotpointercapture":return o=a.pointerId,ft.set(o,gt(ft.get(o)||null,e,t,n,r,a)),!0}return!1}(o,e,t,n,r))return;ht(e,r)}Dr(e,t,r,null,n)}}}function Jt(e,t,n,r){var a=Ce(r);if(null!==(a=na(a))){var o=Ke(a);if(null===o)a=null;else{var i=o.tag;if(13===i){if(null!==(a=Qe(o)))return a;a=null}else if(3===i){if(o.stateNode.hydrate)return 3===o.tag?o.stateNode.containerInfo:null;a=null}else o!==a&&(a=null)}}return Dr(e,t,r,a,n),null}var en=null,tn=null,nn=null;function rn(){if(nn)return nn;var e,t,n=tn,r=n.length,a="value"in en?en.value:en.textContent,o=a.length;for(e=0;e<r&&n[e]===a[e];e++);var i=r-e;for(t=1;t<=i&&n[r-t]===a[o-t];t++);return nn=a.slice(e,1<t?1-t:void 0)}function an(e){var t=e.keyCode;return"charCode"in e?0===(e=e.charCode)&&13===t&&(e=13):e=t,10===e&&(e=13),32<=e||13===e?e:0}function on(){return!0}function ln(){return!1}function un(e){function t(t,n,r,a,o){for(var i in this._reactName=t,this._targetInst=r,this.type=n,this.nativeEvent=a,this.target=o,this.currentTarget=null,e)e.hasOwnProperty(i)&&(t=e[i],this[i]=t?t(a):a[i]);return this.isDefaultPrevented=(null!=a.defaultPrevented?a.defaultPrevented:!1===a.returnValue)?on:ln,this.isPropagationStopped=ln,this}return a(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():"unknown"!=typeof e.returnValue&&(e.returnValue=!1),this.isDefaultPrevented=on)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():"unknown"!=typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=on)},persist:function(){},isPersistent:on}),t}var sn,cn,fn,dn={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},pn=un(dn),mn=a({},dn,{view:0,detail:0}),hn=un(mn),gn=a({},mn,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:An,button:0,buttons:0,relatedTarget:function(e){return void 0===e.relatedTarget?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return"movementX"in e?e.movementX:(e!==fn&&(fn&&"mousemove"===e.type?(sn=e.screenX-fn.screenX,cn=e.screenY-fn.screenY):cn=sn=0,fn=e),sn)},movementY:function(e){return"movementY"in e?e.movementY:cn}}),vn=un(gn),bn=un(a({},gn,{dataTransfer:0})),yn=un(a({},mn,{relatedTarget:0})),wn=un(a({},dn,{animationName:0,elapsedTime:0,pseudoElement:0})),kn=a({},dn,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),En=un(kn),Sn=un(a({},dn,{data:0})),xn={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},_n={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},Cn={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function Tn(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):!!(e=Cn[e])&&!!t[e]}function An(){return Tn}var On=a({},mn,{key:function(e){if(e.key){var t=xn[e.key]||e.key;if("Unidentified"!==t)return t}return"keypress"===e.type?13===(e=an(e))?"Enter":String.fromCharCode(e):"keydown"===e.type||"keyup"===e.type?_n[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:An,charCode:function(e){return"keypress"===e.type?an(e):0},keyCode:function(e){return"keydown"===e.type||"keyup"===e.type?e.keyCode:0},which:function(e){return"keypress"===e.type?an(e):"keydown"===e.type||"keyup"===e.type?e.keyCode:0}}),Ln=un(On),Pn=un(a({},gn,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0})),Rn=un(a({},mn,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:An})),Nn=un(a({},dn,{propertyName:0,elapsedTime:0,pseudoElement:0})),In=a({},gn,{deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0}),Dn=un(In),Mn=[9,13,27,32],Fn=f&&"CompositionEvent"in window,jn=null;f&&"documentMode"in document&&(jn=document.documentMode);var Bn=f&&"TextEvent"in window&&!jn,zn=f&&(!Fn||jn&&8<jn&&11>=jn),Un=String.fromCharCode(32),Zn=!1;function $n(e,t){switch(e){case"keyup":return-1!==Mn.indexOf(t.keyCode);case"keydown":return 229!==t.keyCode;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function qn(e){return"object"==typeof(e=e.detail)&&"data"in e?e.data:null}var Gn=!1;var Hn={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function Vn(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===t?!!Hn[e.type]:"textarea"===t}function Wn(e,t,n,r){Pe(r),0<(t=Fr(t,"onChange")).length&&(n=new pn("onChange","change",null,n,r),e.push({event:n,listeners:t}))}var Yn=null,Kn=null;function Qn(e){Or(e,0)}function Xn(e){if(Q(aa(e)))return e}function Jn(e,t){if("change"===e)return t}var er=!1;if(f){var tr;if(f){var nr="oninput"in document;if(!nr){var rr=document.createElement("div");rr.setAttribute("oninput","return;"),nr="function"==typeof rr.oninput}tr=nr}else tr=!1;er=tr&&(!document.documentMode||9<document.documentMode)}function ar(){Yn&&(Yn.detachEvent("onpropertychange",or),Kn=Yn=null)}function or(e){if("value"===e.propertyName&&Xn(Kn)){var t=[];if(Wn(t,Kn,e,Ce(e)),e=Qn,Fe)e(t);else{Fe=!0;try{Ne(e,t)}finally{Fe=!1,Be()}}}}function ir(e,t,n){"focusin"===e?(ar(),Kn=n,(Yn=t).attachEvent("onpropertychange",or)):"focusout"===e&&ar()}function lr(e){if("selectionchange"===e||"keyup"===e||"keydown"===e)return Xn(Kn)}function ur(e,t){if("click"===e)return Xn(t)}function sr(e,t){if("input"===e||"change"===e)return Xn(t)}var cr="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},fr=Object.prototype.hasOwnProperty;function dr(e,t){if(cr(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(r=0;r<n.length;r++)if(!fr.call(t,n[r])||!cr(e[n[r]],t[n[r]]))return!1;return!0}function pr(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function mr(e,t){var n,r=pr(e);for(e=0;r;){if(3===r.nodeType){if(n=e+r.textContent.length,e<=t&&n>=t)return{node:r,offset:t-e};e=n}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=pr(r)}}function hr(e,t){return!(!e||!t)&&(e===t||(!e||3!==e.nodeType)&&(t&&3===t.nodeType?hr(e,t.parentNode):"contains"in e?e.contains(t):!!e.compareDocumentPosition&&!!(16&e.compareDocumentPosition(t))))}function gr(){for(var e=window,t=X();t instanceof e.HTMLIFrameElement;){try{var n="string"==typeof t.contentWindow.location.href}catch(r){n=!1}if(!n)break;t=X((e=t.contentWindow).document)}return t}function vr(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&("input"===t&&("text"===e.type||"search"===e.type||"tel"===e.type||"url"===e.type||"password"===e.type)||"textarea"===t||"true"===e.contentEditable)}var br=f&&"documentMode"in document&&11>=document.documentMode,yr=null,wr=null,kr=null,Er=!1;function Sr(e,t,n){var r=n.window===n?n.document:9===n.nodeType?n:n.ownerDocument;Er||null==yr||yr!==X(r)||("selectionStart"in(r=yr)&&vr(r)?r={start:r.selectionStart,end:r.selectionEnd}:r={anchorNode:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection()).anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset},kr&&dr(kr,r)||(kr=r,0<(r=Fr(wr,"onSelect")).length&&(t=new pn("onSelect","select",null,t,n),e.push({event:t,listeners:r}),t.target=yr)))}Dt("cancel cancel click click close close contextmenu contextMenu copy copy cut cut auxclick auxClick dblclick doubleClick dragend dragEnd dragstart dragStart drop drop focusin focus focusout blur input input invalid invalid keydown keyDown keypress keyPress keyup keyUp mousedown mouseDown mouseup mouseUp paste paste pause pause play play pointercancel pointerCancel pointerdown pointerDown pointerup pointerUp ratechange rateChange reset reset seeked seeked submit submit touchcancel touchCancel touchend touchEnd touchstart touchStart volumechange volumeChange".split(" "),0),Dt("drag drag dragenter dragEnter dragexit dragExit dragleave dragLeave dragover dragOver mousemove mouseMove mouseout mouseOut mouseover mouseOver pointermove pointerMove pointerout pointerOut pointerover pointerOver scroll scroll toggle toggle touchmove touchMove wheel wheel".split(" "),1),Dt(It,2);for(var xr="change selectionchange textInput compositionstart compositionend compositionupdate".split(" "),_r=0;_r<xr.length;_r++)Nt.set(xr[_r],0);c("onMouseEnter",["mouseout","mouseover"]),c("onMouseLeave",["mouseout","mouseover"]),c("onPointerEnter",["pointerout","pointerover"]),c("onPointerLeave",["pointerout","pointerover"]),s("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),s("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),s("onBeforeInput",["compositionend","keypress","textInput","paste"]),s("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),s("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),s("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var Cr="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),Tr=new Set("cancel close invalid load scroll toggle".split(" ").concat(Cr));function Ar(e,t,n){var r=e.type||"unknown-event";e.currentTarget=n,function(e,t,n,r,a,o,l,u,s){if(Ye.apply(this,arguments),qe){if(!qe)throw Error(i(198));var c=Ge;qe=!1,Ge=null,He||(He=!0,Ve=c)}}(r,t,void 0,e),e.currentTarget=null}function Or(e,t){t=0!=(4&t);for(var n=0;n<e.length;n++){var r=e[n],a=r.event;r=r.listeners;e:{var o=void 0;if(t)for(var i=r.length-1;0<=i;i--){var l=r[i],u=l.instance,s=l.currentTarget;if(l=l.listener,u!==o&&a.isPropagationStopped())break e;Ar(a,l,s),o=u}else for(i=0;i<r.length;i++){if(u=(l=r[i]).instance,s=l.currentTarget,l=l.listener,u!==o&&a.isPropagationStopped())break e;Ar(a,l,s),o=u}}}if(He)throw e=Ve,He=!1,Ve=null,e}function Lr(e,t){var n=ia(t),r=e+"__bubble";n.has(r)||(Ir(t,e,2,!1),n.add(r))}var Pr="_reactListening"+Math.random().toString(36).slice(2);function Rr(e){e[Pr]||(e[Pr]=!0,l.forEach((function(t){Tr.has(t)||Nr(t,!1,e,null),Nr(t,!0,e,null)})))}function Nr(e,t,n,r){var a=4<arguments.length&&void 0!==arguments[4]?arguments[4]:0,o=n;if("selectionchange"===e&&9!==n.nodeType&&(o=n.ownerDocument),null!==r&&!t&&Tr.has(e)){if("scroll"!==e)return;a|=2,o=r}var i=ia(o),l=e+"__"+(t?"capture":"bubble");i.has(l)||(t&&(a|=4),Ir(o,e,a,t),i.add(l))}function Ir(e,t,n,r){var a=Nt.get(t);switch(void 0===a?2:a){case 0:a=Kt;break;case 1:a=Qt;break;default:a=Xt}n=a.bind(null,t,n,e),a=void 0,!Ue||"touchstart"!==t&&"touchmove"!==t&&"wheel"!==t||(a=!0),r?void 0!==a?e.addEventListener(t,n,{capture:!0,passive:a}):e.addEventListener(t,n,!0):void 0!==a?e.addEventListener(t,n,{passive:a}):e.addEventListener(t,n,!1)}function Dr(e,t,n,r,a){var o=r;if(0==(1&t)&&0==(2&t)&&null!==r)e:for(;;){if(null===r)return;var i=r.tag;if(3===i||4===i){var l=r.stateNode.containerInfo;if(l===a||8===l.nodeType&&l.parentNode===a)break;if(4===i)for(i=r.return;null!==i;){var u=i.tag;if((3===u||4===u)&&((u=i.stateNode.containerInfo)===a||8===u.nodeType&&u.parentNode===a))return;i=i.return}for(;null!==l;){if(null===(i=na(l)))return;if(5===(u=i.tag)||6===u){r=o=i;continue e}l=l.parentNode}}r=r.return}!function(e,t,n){if(je)return e(t,n);je=!0;try{Me(e,t,n)}finally{je=!1,Be()}}((function(){var r=o,a=Ce(n),i=[];e:{var l=Rt.get(e);if(void 0!==l){var u=pn,s=e;switch(e){case"keypress":if(0===an(n))break e;case"keydown":case"keyup":u=Ln;break;case"focusin":s="focus",u=yn;break;case"focusout":s="blur",u=yn;break;case"beforeblur":case"afterblur":u=yn;break;case"click":if(2===n.button)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":u=vn;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":u=bn;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":u=Rn;break;case At:case Ot:case Lt:u=wn;break;case Pt:u=Nn;break;case"scroll":u=hn;break;case"wheel":u=Dn;break;case"copy":case"cut":case"paste":u=En;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":u=Pn}var c=0!=(4&t),f=!c&&"scroll"===e,d=c?null!==l?l+"Capture":null:l;c=[];for(var p,m=r;null!==m;){var h=(p=m).stateNode;if(5===p.tag&&null!==h&&(p=h,null!==d&&(null!=(h=ze(m,d))&&c.push(Mr(m,h,p)))),f)break;m=m.return}0<c.length&&(l=new u(l,s,null,n,a),i.push({event:l,listeners:c}))}}if(0==(7&t)){if(u="mouseout"===e||"pointerout"===e,(!(l="mouseover"===e||"pointerover"===e)||0!=(16&t)||!(s=n.relatedTarget||n.fromElement)||!na(s)&&!s[ea])&&(u||l)&&(l=a.window===a?a:(l=a.ownerDocument)?l.defaultView||l.parentWindow:window,u?(u=r,null!==(s=(s=n.relatedTarget||n.toElement)?na(s):null)&&(s!==(f=Ke(s))||5!==s.tag&&6!==s.tag)&&(s=null)):(u=null,s=r),u!==s)){if(c=vn,h="onMouseLeave",d="onMouseEnter",m="mouse","pointerout"!==e&&"pointerover"!==e||(c=Pn,h="onPointerLeave",d="onPointerEnter",m="pointer"),f=null==u?l:aa(u),p=null==s?l:aa(s),(l=new c(h,m+"leave",u,n,a)).target=f,l.relatedTarget=p,h=null,na(a)===r&&((c=new c(d,m+"enter",s,n,a)).target=p,c.relatedTarget=f,h=c),f=h,u&&s)e:{for(d=s,m=0,p=c=u;p;p=jr(p))m++;for(p=0,h=d;h;h=jr(h))p++;for(;0<m-p;)c=jr(c),m--;for(;0<p-m;)d=jr(d),p--;for(;m--;){if(c===d||null!==d&&c===d.alternate)break e;c=jr(c),d=jr(d)}c=null}else c=null;null!==u&&Br(i,l,u,c,!1),null!==s&&null!==f&&Br(i,f,s,c,!0)}if("select"===(u=(l=r?aa(r):window).nodeName&&l.nodeName.toLowerCase())||"input"===u&&"file"===l.type)var g=Jn;else if(Vn(l))if(er)g=sr;else{g=lr;var v=ir}else(u=l.nodeName)&&"input"===u.toLowerCase()&&("checkbox"===l.type||"radio"===l.type)&&(g=ur);switch(g&&(g=g(e,r))?Wn(i,g,n,a):(v&&v(e,l,r),"focusout"===e&&(v=l._wrapperState)&&v.controlled&&"number"===l.type&&ae(l,"number",l.value)),v=r?aa(r):window,e){case"focusin":(Vn(v)||"true"===v.contentEditable)&&(yr=v,wr=r,kr=null);break;case"focusout":kr=wr=yr=null;break;case"mousedown":Er=!0;break;case"contextmenu":case"mouseup":case"dragend":Er=!1,Sr(i,n,a);break;case"selectionchange":if(br)break;case"keydown":case"keyup":Sr(i,n,a)}var b;if(Fn)e:{switch(e){case"compositionstart":var y="onCompositionStart";break e;case"compositionend":y="onCompositionEnd";break e;case"compositionupdate":y="onCompositionUpdate";break e}y=void 0}else Gn?$n(e,n)&&(y="onCompositionEnd"):"keydown"===e&&229===n.keyCode&&(y="onCompositionStart");y&&(zn&&"ko"!==n.locale&&(Gn||"onCompositionStart"!==y?"onCompositionEnd"===y&&Gn&&(b=rn()):(tn="value"in(en=a)?en.value:en.textContent,Gn=!0)),0<(v=Fr(r,y)).length&&(y=new Sn(y,e,null,n,a),i.push({event:y,listeners:v}),b?y.data=b:null!==(b=qn(n))&&(y.data=b))),(b=Bn?function(e,t){switch(e){case"compositionend":return qn(t);case"keypress":return 32!==t.which?null:(Zn=!0,Un);case"textInput":return(e=t.data)===Un&&Zn?null:e;default:return null}}(e,n):function(e,t){if(Gn)return"compositionend"===e||!Fn&&$n(e,t)?(e=rn(),nn=tn=en=null,Gn=!1,e):null;switch(e){case"paste":default:return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case"compositionend":return zn&&"ko"!==t.locale?null:t.data}}(e,n))&&(0<(r=Fr(r,"onBeforeInput")).length&&(a=new Sn("onBeforeInput","beforeinput",null,n,a),i.push({event:a,listeners:r}),a.data=b))}Or(i,t)}))}function Mr(e,t,n){return{instance:e,listener:t,currentTarget:n}}function Fr(e,t){for(var n=t+"Capture",r=[];null!==e;){var a=e,o=a.stateNode;5===a.tag&&null!==o&&(a=o,null!=(o=ze(e,n))&&r.unshift(Mr(e,o,a)),null!=(o=ze(e,t))&&r.push(Mr(e,o,a))),e=e.return}return r}function jr(e){if(null===e)return null;do{e=e.return}while(e&&5!==e.tag);return e||null}function Br(e,t,n,r,a){for(var o=t._reactName,i=[];null!==n&&n!==r;){var l=n,u=l.alternate,s=l.stateNode;if(null!==u&&u===r)break;5===l.tag&&null!==s&&(l=s,a?null!=(u=ze(n,o))&&i.unshift(Mr(n,u,l)):a||null!=(u=ze(n,o))&&i.push(Mr(n,u,l))),n=n.return}0!==i.length&&e.push({event:t,listeners:i})}function zr(){}var Ur=null,Zr=null;function $r(e,t){switch(e){case"button":case"input":case"select":case"textarea":return!!t.autoFocus}return!1}function qr(e,t){return"textarea"===e||"option"===e||"noscript"===e||"string"==typeof t.children||"number"==typeof t.children||"object"==typeof t.dangerouslySetInnerHTML&&null!==t.dangerouslySetInnerHTML&&null!=t.dangerouslySetInnerHTML.__html}var Gr="function"==typeof setTimeout?setTimeout:void 0,Hr="function"==typeof clearTimeout?clearTimeout:void 0;function Vr(e){1===e.nodeType?e.textContent="":9===e.nodeType&&(null!=(e=e.body)&&(e.textContent=""))}function Wr(e){for(;null!=e;e=e.nextSibling){var t=e.nodeType;if(1===t||3===t)break}return e}function Yr(e){e=e.previousSibling;for(var t=0;e;){if(8===e.nodeType){var n=e.data;if("$"===n||"$!"===n||"$?"===n){if(0===t)return e;t--}else"/$"===n&&t++}e=e.previousSibling}return null}var Kr=0;var Qr=Math.random().toString(36).slice(2),Xr="__reactFiber$"+Qr,Jr="__reactProps$"+Qr,ea="__reactContainer$"+Qr,ta="__reactEvents$"+Qr;function na(e){var t=e[Xr];if(t)return t;for(var n=e.parentNode;n;){if(t=n[ea]||n[Xr]){if(n=t.alternate,null!==t.child||null!==n&&null!==n.child)for(e=Yr(e);null!==e;){if(n=e[Xr])return n;e=Yr(e)}return t}n=(e=n).parentNode}return null}function ra(e){return!(e=e[Xr]||e[ea])||5!==e.tag&&6!==e.tag&&13!==e.tag&&3!==e.tag?null:e}function aa(e){if(5===e.tag||6===e.tag)return e.stateNode;throw Error(i(33))}function oa(e){return e[Jr]||null}function ia(e){var t=e[ta];return void 0===t&&(t=e[ta]=new Set),t}var la=[],ua=-1;function sa(e){return{current:e}}function ca(e){0>ua||(e.current=la[ua],la[ua]=null,ua--)}function fa(e,t){ua++,la[ua]=e.current,e.current=t}var da={},pa=sa(da),ma=sa(!1),ha=da;function ga(e,t){var n=e.type.contextTypes;if(!n)return da;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var a,o={};for(a in n)o[a]=t[a];return r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=o),o}function va(e){return null!=(e=e.childContextTypes)}function ba(){ca(ma),ca(pa)}function ya(e,t,n){if(pa.current!==da)throw Error(i(168));fa(pa,t),fa(ma,n)}function wa(e,t,n){var r=e.stateNode;if(e=t.childContextTypes,"function"!=typeof r.getChildContext)return n;for(var o in r=r.getChildContext())if(!(o in e))throw Error(i(108,V(t)||"Unknown",o));return a({},n,r)}function ka(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||da,ha=pa.current,fa(pa,e),fa(ma,ma.current),!0}function Ea(e,t,n){var r=e.stateNode;if(!r)throw Error(i(169));n?(e=wa(e,t,ha),r.__reactInternalMemoizedMergedChildContext=e,ca(ma),ca(pa),fa(pa,e)):ca(ma),fa(ma,n)}var Sa=null,xa=null,_a=o.unstable_runWithPriority,Ca=o.unstable_scheduleCallback,Ta=o.unstable_cancelCallback,Aa=o.unstable_shouldYield,Oa=o.unstable_requestPaint,La=o.unstable_now,Pa=o.unstable_getCurrentPriorityLevel,Ra=o.unstable_ImmediatePriority,Na=o.unstable_UserBlockingPriority,Ia=o.unstable_NormalPriority,Da=o.unstable_LowPriority,Ma=o.unstable_IdlePriority,Fa={},ja=void 0!==Oa?Oa:function(){},Ba=null,za=null,Ua=!1,Za=La(),$a=1e4>Za?La:function(){return La()-Za};function qa(){switch(Pa()){case Ra:return 99;case Na:return 98;case Ia:return 97;case Da:return 96;case Ma:return 95;default:throw Error(i(332))}}function Ga(e){switch(e){case 99:return Ra;case 98:return Na;case 97:return Ia;case 96:return Da;case 95:return Ma;default:throw Error(i(332))}}function Ha(e,t){return e=Ga(e),_a(e,t)}function Va(e,t,n){return e=Ga(e),Ca(e,t,n)}function Wa(){if(null!==za){var e=za;za=null,Ta(e)}Ya()}function Ya(){if(!Ua&&null!==Ba){Ua=!0;var e=0;try{var t=Ba;Ha(99,(function(){for(;e<t.length;e++){var n=t[e];do{n=n(!0)}while(null!==n)}})),Ba=null}catch(n){throw null!==Ba&&(Ba=Ba.slice(e+1)),Ca(Ra,Wa),n}finally{Ua=!1}}}var Ka=k.ReactCurrentBatchConfig;function Qa(e,t){if(e&&e.defaultProps){for(var n in t=a({},t),e=e.defaultProps)void 0===t[n]&&(t[n]=e[n]);return t}return t}var Xa=sa(null),Ja=null,eo=null,to=null;function no(){to=eo=Ja=null}function ro(e){var t=Xa.current;ca(Xa),e.type._context._currentValue=t}function ao(e,t){for(;null!==e;){var n=e.alternate;if((e.childLanes&t)===t){if(null===n||(n.childLanes&t)===t)break;n.childLanes|=t}else e.childLanes|=t,null!==n&&(n.childLanes|=t);e=e.return}}function oo(e,t){Ja=e,to=eo=null,null!==(e=e.dependencies)&&null!==e.firstContext&&(0!=(e.lanes&t)&&(Fi=!0),e.firstContext=null)}function io(e,t){if(to!==e&&!1!==t&&0!==t)if("number"==typeof t&&1073741823!==t||(to=e,t=1073741823),t={context:e,observedBits:t,next:null},null===eo){if(null===Ja)throw Error(i(308));eo=t,Ja.dependencies={lanes:0,firstContext:t,responders:null}}else eo=eo.next=t;return e._currentValue}var lo=!1;function uo(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null},effects:null}}function so(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function co(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function fo(e,t){if(null!==(e=e.updateQueue)){var n=(e=e.shared).pending;null===n?t.next=t:(t.next=n.next,n.next=t),e.pending=t}}function po(e,t){var n=e.updateQueue,r=e.alternate;if(null!==r&&n===(r=r.updateQueue)){var a=null,o=null;if(null!==(n=n.firstBaseUpdate)){do{var i={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};null===o?a=o=i:o=o.next=i,n=n.next}while(null!==n);null===o?a=o=t:o=o.next=t}else a=o=t;return n={baseState:r.baseState,firstBaseUpdate:a,lastBaseUpdate:o,shared:r.shared,effects:r.effects},void(e.updateQueue=n)}null===(e=n.lastBaseUpdate)?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function mo(e,t,n,r){var o=e.updateQueue;lo=!1;var i=o.firstBaseUpdate,l=o.lastBaseUpdate,u=o.shared.pending;if(null!==u){o.shared.pending=null;var s=u,c=s.next;s.next=null,null===l?i=c:l.next=c,l=s;var f=e.alternate;if(null!==f){var d=(f=f.updateQueue).lastBaseUpdate;d!==l&&(null===d?f.firstBaseUpdate=c:d.next=c,f.lastBaseUpdate=s)}}if(null!==i){for(d=o.baseState,l=0,f=c=s=null;;){u=i.lane;var p=i.eventTime;if((r&u)===u){null!==f&&(f=f.next={eventTime:p,lane:0,tag:i.tag,payload:i.payload,callback:i.callback,next:null});e:{var m=e,h=i;switch(u=t,p=n,h.tag){case 1:if("function"==typeof(m=h.payload)){d=m.call(p,d,u);break e}d=m;break e;case 3:m.flags=-4097&m.flags|64;case 0:if(null==(u="function"==typeof(m=h.payload)?m.call(p,d,u):m))break e;d=a({},d,u);break e;case 2:lo=!0}}null!==i.callback&&(e.flags|=32,null===(u=o.effects)?o.effects=[i]:u.push(i))}else p={eventTime:p,lane:u,tag:i.tag,payload:i.payload,callback:i.callback,next:null},null===f?(c=f=p,s=d):f=f.next=p,l|=u;if(null===(i=i.next)){if(null===(u=o.shared.pending))break;i=u.next,u.next=null,o.lastBaseUpdate=u,o.shared.pending=null}}null===f&&(s=d),o.baseState=s,o.firstBaseUpdate=c,o.lastBaseUpdate=f,Ul|=l,e.lanes=l,e.memoizedState=d}}function ho(e,t,n){if(e=t.effects,t.effects=null,null!==e)for(t=0;t<e.length;t++){var r=e[t],a=r.callback;if(null!==a){if(r.callback=null,r=n,"function"!=typeof a)throw Error(i(191,a));a.call(r)}}}var go=(new r.Component).refs;function vo(e,t,n,r){n=null==(n=n(r,t=e.memoizedState))?t:a({},t,n),e.memoizedState=n,0===e.lanes&&(e.updateQueue.baseState=n)}var bo={isMounted:function(e){return!!(e=e._reactInternals)&&Ke(e)===e},enqueueSetState:function(e,t,n){e=e._reactInternals;var r=du(),a=pu(e),o=co(r,a);o.payload=t,null!=n&&(o.callback=n),fo(e,o),mu(e,a,r)},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var r=du(),a=pu(e),o=co(r,a);o.tag=1,o.payload=t,null!=n&&(o.callback=n),fo(e,o),mu(e,a,r)},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=du(),r=pu(e),a=co(n,r);a.tag=2,null!=t&&(a.callback=t),fo(e,a),mu(e,r,n)}};function yo(e,t,n,r,a,o,i){return"function"==typeof(e=e.stateNode).shouldComponentUpdate?e.shouldComponentUpdate(r,o,i):!t.prototype||!t.prototype.isPureReactComponent||(!dr(n,r)||!dr(a,o))}function wo(e,t,n){var r=!1,a=da,o=t.contextType;return"object"==typeof o&&null!==o?o=io(o):(a=va(t)?ha:pa.current,o=(r=null!=(r=t.contextTypes))?ga(e,a):da),t=new t(n,o),e.memoizedState=null!==t.state&&void 0!==t.state?t.state:null,t.updater=bo,e.stateNode=t,t._reactInternals=e,r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=a,e.__reactInternalMemoizedMaskedChildContext=o),t}function ko(e,t,n,r){e=t.state,"function"==typeof t.componentWillReceiveProps&&t.componentWillReceiveProps(n,r),"function"==typeof t.UNSAFE_componentWillReceiveProps&&t.UNSAFE_componentWillReceiveProps(n,r),t.state!==e&&bo.enqueueReplaceState(t,t.state,null)}function Eo(e,t,n,r){var a=e.stateNode;a.props=n,a.state=e.memoizedState,a.refs=go,uo(e);var o=t.contextType;"object"==typeof o&&null!==o?a.context=io(o):(o=va(t)?ha:pa.current,a.context=ga(e,o)),mo(e,n,a,r),a.state=e.memoizedState,"function"==typeof(o=t.getDerivedStateFromProps)&&(vo(e,t,o,n),a.state=e.memoizedState),"function"==typeof t.getDerivedStateFromProps||"function"==typeof a.getSnapshotBeforeUpdate||"function"!=typeof a.UNSAFE_componentWillMount&&"function"!=typeof a.componentWillMount||(t=a.state,"function"==typeof a.componentWillMount&&a.componentWillMount(),"function"==typeof a.UNSAFE_componentWillMount&&a.UNSAFE_componentWillMount(),t!==a.state&&bo.enqueueReplaceState(a,a.state,null),mo(e,n,a,r),a.state=e.memoizedState),"function"==typeof a.componentDidMount&&(e.flags|=4)}var So=Array.isArray;function xo(e,t,n){if(null!==(e=n.ref)&&"function"!=typeof e&&"object"!=typeof e){if(n._owner){if(n=n._owner){if(1!==n.tag)throw Error(i(309));var r=n.stateNode}if(!r)throw Error(i(147,e));var a=""+e;return null!==t&&null!==t.ref&&"function"==typeof t.ref&&t.ref._stringRef===a?t.ref:(t=function(e){var t=r.refs;t===go&&(t=r.refs={}),null===e?delete t[a]:t[a]=e},t._stringRef=a,t)}if("string"!=typeof e)throw Error(i(284));if(!n._owner)throw Error(i(290,e))}return e}function _o(e,t){if("textarea"!==e.type)throw Error(i(31,"[object Object]"===Object.prototype.toString.call(t)?"object with keys {"+Object.keys(t).join(", ")+"}":t))}function Co(e){function t(t,n){if(e){var r=t.lastEffect;null!==r?(r.nextEffect=n,t.lastEffect=n):t.firstEffect=t.lastEffect=n,n.nextEffect=null,n.flags=8}}function n(n,r){if(!e)return null;for(;null!==r;)t(n,r),r=r.sibling;return null}function r(e,t){for(e=new Map;null!==t;)null!==t.key?e.set(t.key,t):e.set(t.index,t),t=t.sibling;return e}function a(e,t){return(e=Hu(e,t)).index=0,e.sibling=null,e}function o(t,n,r){return t.index=r,e?null!==(r=t.alternate)?(r=r.index)<n?(t.flags=2,n):r:(t.flags=2,n):n}function l(t){return e&&null===t.alternate&&(t.flags=2),t}function u(e,t,n,r){return null===t||6!==t.tag?((t=Ku(n,e.mode,r)).return=e,t):((t=a(t,n)).return=e,t)}function s(e,t,n,r){return null!==t&&t.elementType===n.type?((r=a(t,n.props)).ref=xo(e,t,n),r.return=e,r):((r=Vu(n.type,n.key,n.props,null,e.mode,r)).ref=xo(e,t,n),r.return=e,r)}function c(e,t,n,r){return null===t||4!==t.tag||t.stateNode.containerInfo!==n.containerInfo||t.stateNode.implementation!==n.implementation?((t=Qu(n,e.mode,r)).return=e,t):((t=a(t,n.children||[])).return=e,t)}function f(e,t,n,r,o){return null===t||7!==t.tag?((t=Wu(n,e.mode,r,o)).return=e,t):((t=a(t,n)).return=e,t)}function d(e,t,n){if("string"==typeof t||"number"==typeof t)return(t=Ku(""+t,e.mode,n)).return=e,t;if("object"==typeof t&&null!==t){switch(t.$$typeof){case E:return(n=Vu(t.type,t.key,t.props,null,e.mode,n)).ref=xo(e,null,t),n.return=e,n;case S:return(t=Qu(t,e.mode,n)).return=e,t}if(So(t)||Z(t))return(t=Wu(t,e.mode,n,null)).return=e,t;_o(e,t)}return null}function p(e,t,n,r){var a=null!==t?t.key:null;if("string"==typeof n||"number"==typeof n)return null!==a?null:u(e,t,""+n,r);if("object"==typeof n&&null!==n){switch(n.$$typeof){case E:return n.key===a?n.type===x?f(e,t,n.props.children,r,a):s(e,t,n,r):null;case S:return n.key===a?c(e,t,n,r):null}if(So(n)||Z(n))return null!==a?null:f(e,t,n,r,null);_o(e,n)}return null}function m(e,t,n,r,a){if("string"==typeof r||"number"==typeof r)return u(t,e=e.get(n)||null,""+r,a);if("object"==typeof r&&null!==r){switch(r.$$typeof){case E:return e=e.get(null===r.key?n:r.key)||null,r.type===x?f(t,e,r.props.children,a,r.key):s(t,e,r,a);case S:return c(t,e=e.get(null===r.key?n:r.key)||null,r,a)}if(So(r)||Z(r))return f(t,e=e.get(n)||null,r,a,null);_o(t,r)}return null}function h(a,i,l,u){for(var s=null,c=null,f=i,h=i=0,g=null;null!==f&&h<l.length;h++){f.index>h?(g=f,f=null):g=f.sibling;var v=p(a,f,l[h],u);if(null===v){null===f&&(f=g);break}e&&f&&null===v.alternate&&t(a,f),i=o(v,i,h),null===c?s=v:c.sibling=v,c=v,f=g}if(h===l.length)return n(a,f),s;if(null===f){for(;h<l.length;h++)null!==(f=d(a,l[h],u))&&(i=o(f,i,h),null===c?s=f:c.sibling=f,c=f);return s}for(f=r(a,f);h<l.length;h++)null!==(g=m(f,a,h,l[h],u))&&(e&&null!==g.alternate&&f.delete(null===g.key?h:g.key),i=o(g,i,h),null===c?s=g:c.sibling=g,c=g);return e&&f.forEach((function(e){return t(a,e)})),s}function g(a,l,u,s){var c=Z(u);if("function"!=typeof c)throw Error(i(150));if(null==(u=c.call(u)))throw Error(i(151));for(var f=c=null,h=l,g=l=0,v=null,b=u.next();null!==h&&!b.done;g++,b=u.next()){h.index>g?(v=h,h=null):v=h.sibling;var y=p(a,h,b.value,s);if(null===y){null===h&&(h=v);break}e&&h&&null===y.alternate&&t(a,h),l=o(y,l,g),null===f?c=y:f.sibling=y,f=y,h=v}if(b.done)return n(a,h),c;if(null===h){for(;!b.done;g++,b=u.next())null!==(b=d(a,b.value,s))&&(l=o(b,l,g),null===f?c=b:f.sibling=b,f=b);return c}for(h=r(a,h);!b.done;g++,b=u.next())null!==(b=m(h,a,g,b.value,s))&&(e&&null!==b.alternate&&h.delete(null===b.key?g:b.key),l=o(b,l,g),null===f?c=b:f.sibling=b,f=b);return e&&h.forEach((function(e){return t(a,e)})),c}return function(e,r,o,u){var s="object"==typeof o&&null!==o&&o.type===x&&null===o.key;s&&(o=o.props.children);var c="object"==typeof o&&null!==o;if(c)switch(o.$$typeof){case E:e:{for(c=o.key,s=r;null!==s;){if(s.key===c){if(7===s.tag){if(o.type===x){n(e,s.sibling),(r=a(s,o.props.children)).return=e,e=r;break e}}else if(s.elementType===o.type){n(e,s.sibling),(r=a(s,o.props)).ref=xo(e,s,o),r.return=e,e=r;break e}n(e,s);break}t(e,s),s=s.sibling}o.type===x?((r=Wu(o.props.children,e.mode,u,o.key)).return=e,e=r):((u=Vu(o.type,o.key,o.props,null,e.mode,u)).ref=xo(e,r,o),u.return=e,e=u)}return l(e);case S:e:{for(s=o.key;null!==r;){if(r.key===s){if(4===r.tag&&r.stateNode.containerInfo===o.containerInfo&&r.stateNode.implementation===o.implementation){n(e,r.sibling),(r=a(r,o.children||[])).return=e,e=r;break e}n(e,r);break}t(e,r),r=r.sibling}(r=Qu(o,e.mode,u)).return=e,e=r}return l(e)}if("string"==typeof o||"number"==typeof o)return o=""+o,null!==r&&6===r.tag?(n(e,r.sibling),(r=a(r,o)).return=e,e=r):(n(e,r),(r=Ku(o,e.mode,u)).return=e,e=r),l(e);if(So(o))return h(e,r,o,u);if(Z(o))return g(e,r,o,u);if(c&&_o(e,o),void 0===o&&!s)switch(e.tag){case 1:case 22:case 0:case 11:case 15:throw Error(i(152,V(e.type)||"Component"))}return n(e,r)}}var To=Co(!0),Ao=Co(!1),Oo={},Lo=sa(Oo),Po=sa(Oo),Ro=sa(Oo);function No(e){if(e===Oo)throw Error(i(174));return e}function Io(e,t){switch(fa(Ro,t),fa(Po,e),fa(Lo,Oo),e=t.nodeType){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:me(null,"");break;default:t=me(t=(e=8===e?t.parentNode:t).namespaceURI||null,e=e.tagName)}ca(Lo),fa(Lo,t)}function Do(){ca(Lo),ca(Po),ca(Ro)}function Mo(e){No(Ro.current);var t=No(Lo.current),n=me(t,e.type);t!==n&&(fa(Po,e),fa(Lo,n))}function Fo(e){Po.current===e&&(ca(Lo),ca(Po))}var jo=sa(0);function Bo(e){for(var t=e;null!==t;){if(13===t.tag){var n=t.memoizedState;if(null!==n&&(null===(n=n.dehydrated)||"$?"===n.data||"$!"===n.data))return t}else if(19===t.tag&&void 0!==t.memoizedProps.revealOrder){if(0!=(64&t.flags))return t}else if(null!==t.child){t.child.return=t,t=t.child;continue}if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var zo=null,Uo=null,Zo=!1;function $o(e,t){var n=qu(5,null,null,0);n.elementType="DELETED",n.type="DELETED",n.stateNode=t,n.return=e,n.flags=8,null!==e.lastEffect?(e.lastEffect.nextEffect=n,e.lastEffect=n):e.firstEffect=e.lastEffect=n}function qo(e,t){switch(e.tag){case 5:var n=e.type;return null!==(t=1!==t.nodeType||n.toLowerCase()!==t.nodeName.toLowerCase()?null:t)&&(e.stateNode=t,!0);case 6:return null!==(t=""===e.pendingProps||3!==t.nodeType?null:t)&&(e.stateNode=t,!0);default:return!1}}function Go(e){if(Zo){var t=Uo;if(t){var n=t;if(!qo(e,t)){if(!(t=Wr(n.nextSibling))||!qo(e,t))return e.flags=-1025&e.flags|2,Zo=!1,void(zo=e);$o(zo,n)}zo=e,Uo=Wr(t.firstChild)}else e.flags=-1025&e.flags|2,Zo=!1,zo=e}}function Ho(e){for(e=e.return;null!==e&&5!==e.tag&&3!==e.tag&&13!==e.tag;)e=e.return;zo=e}function Vo(e){if(e!==zo)return!1;if(!Zo)return Ho(e),Zo=!0,!1;var t=e.type;if(5!==e.tag||"head"!==t&&"body"!==t&&!qr(t,e.memoizedProps))for(t=Uo;t;)$o(e,t),t=Wr(t.nextSibling);if(Ho(e),13===e.tag){if(!(e=null!==(e=e.memoizedState)?e.dehydrated:null))throw Error(i(317));e:{for(e=e.nextSibling,t=0;e;){if(8===e.nodeType){var n=e.data;if("/$"===n){if(0===t){Uo=Wr(e.nextSibling);break e}t--}else"$"!==n&&"$!"!==n&&"$?"!==n||t++}e=e.nextSibling}Uo=null}}else Uo=zo?Wr(e.stateNode.nextSibling):null;return!0}function Wo(){Uo=zo=null,Zo=!1}var Yo=[];function Ko(){for(var e=0;e<Yo.length;e++)Yo[e]._workInProgressVersionPrimary=null;Yo.length=0}var Qo=k.ReactCurrentDispatcher,Xo=k.ReactCurrentBatchConfig,Jo=0,ei=null,ti=null,ni=null,ri=!1,ai=!1;function oi(){throw Error(i(321))}function ii(e,t){if(null===t)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!cr(e[n],t[n]))return!1;return!0}function li(e,t,n,r,a,o){if(Jo=o,ei=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,Qo.current=null===e||null===e.memoizedState?Ni:Ii,e=n(r,a),ai){o=0;do{if(ai=!1,!(25>o))throw Error(i(301));o+=1,ni=ti=null,t.updateQueue=null,Qo.current=Di,e=n(r,a)}while(ai)}if(Qo.current=Ri,t=null!==ti&&null!==ti.next,Jo=0,ni=ti=ei=null,ri=!1,t)throw Error(i(300));return e}function ui(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return null===ni?ei.memoizedState=ni=e:ni=ni.next=e,ni}function si(){if(null===ti){var e=ei.alternate;e=null!==e?e.memoizedState:null}else e=ti.next;var t=null===ni?ei.memoizedState:ni.next;if(null!==t)ni=t,ti=e;else{if(null===e)throw Error(i(310));e={memoizedState:(ti=e).memoizedState,baseState:ti.baseState,baseQueue:ti.baseQueue,queue:ti.queue,next:null},null===ni?ei.memoizedState=ni=e:ni=ni.next=e}return ni}function ci(e,t){return"function"==typeof t?t(e):t}function fi(e){var t=si(),n=t.queue;if(null===n)throw Error(i(311));n.lastRenderedReducer=e;var r=ti,a=r.baseQueue,o=n.pending;if(null!==o){if(null!==a){var l=a.next;a.next=o.next,o.next=l}r.baseQueue=a=o,n.pending=null}if(null!==a){a=a.next,r=r.baseState;var u=l=o=null,s=a;do{var c=s.lane;if((Jo&c)===c)null!==u&&(u=u.next={lane:0,action:s.action,eagerReducer:s.eagerReducer,eagerState:s.eagerState,next:null}),r=s.eagerReducer===e?s.eagerState:e(r,s.action);else{var f={lane:c,action:s.action,eagerReducer:s.eagerReducer,eagerState:s.eagerState,next:null};null===u?(l=u=f,o=r):u=u.next=f,ei.lanes|=c,Ul|=c}s=s.next}while(null!==s&&s!==a);null===u?o=r:u.next=l,cr(r,t.memoizedState)||(Fi=!0),t.memoizedState=r,t.baseState=o,t.baseQueue=u,n.lastRenderedState=r}return[t.memoizedState,n.dispatch]}function di(e){var t=si(),n=t.queue;if(null===n)throw Error(i(311));n.lastRenderedReducer=e;var r=n.dispatch,a=n.pending,o=t.memoizedState;if(null!==a){n.pending=null;var l=a=a.next;do{o=e(o,l.action),l=l.next}while(l!==a);cr(o,t.memoizedState)||(Fi=!0),t.memoizedState=o,null===t.baseQueue&&(t.baseState=o),n.lastRenderedState=o}return[o,r]}function pi(e,t,n){var r=t._getVersion;r=r(t._source);var a=t._workInProgressVersionPrimary;if(null!==a?e=a===r:(e=e.mutableReadLanes,(e=(Jo&e)===e)&&(t._workInProgressVersionPrimary=r,Yo.push(t))),e)return n(t._source);throw Yo.push(t),Error(i(350))}function mi(e,t,n,r){var a=Nl;if(null===a)throw Error(i(349));var o=t._getVersion,l=o(t._source),u=Qo.current,s=u.useState((function(){return pi(a,t,n)})),c=s[1],f=s[0];s=ni;var d=e.memoizedState,p=d.refs,m=p.getSnapshot,h=d.source;d=d.subscribe;var g=ei;return e.memoizedState={refs:p,source:t,subscribe:r},u.useEffect((function(){p.getSnapshot=n,p.setSnapshot=c;var e=o(t._source);if(!cr(l,e)){e=n(t._source),cr(f,e)||(c(e),e=pu(g),a.mutableReadLanes|=e&a.pendingLanes),e=a.mutableReadLanes,a.entangledLanes|=e;for(var r=a.entanglements,i=e;0<i;){var u=31-qt(i),s=1<<u;r[u]|=e,i&=~s}}}),[n,t,r]),u.useEffect((function(){return r(t._source,(function(){var e=p.getSnapshot,n=p.setSnapshot;try{n(e(t._source));var r=pu(g);a.mutableReadLanes|=r&a.pendingLanes}catch(o){n((function(){throw o}))}}))}),[t,r]),cr(m,n)&&cr(h,t)&&cr(d,r)||((e={pending:null,dispatch:null,lastRenderedReducer:ci,lastRenderedState:f}).dispatch=c=Pi.bind(null,ei,e),s.queue=e,s.baseQueue=null,f=pi(a,t,n),s.memoizedState=s.baseState=f),f}function hi(e,t,n){return mi(si(),e,t,n)}function gi(e){var t=ui();return"function"==typeof e&&(e=e()),t.memoizedState=t.baseState=e,e=(e=t.queue={pending:null,dispatch:null,lastRenderedReducer:ci,lastRenderedState:e}).dispatch=Pi.bind(null,ei,e),[t.memoizedState,e]}function vi(e,t,n,r){return e={tag:e,create:t,destroy:n,deps:r,next:null},null===(t=ei.updateQueue)?(t={lastEffect:null},ei.updateQueue=t,t.lastEffect=e.next=e):null===(n=t.lastEffect)?t.lastEffect=e.next=e:(r=n.next,n.next=e,e.next=r,t.lastEffect=e),e}function bi(e){return e={current:e},ui().memoizedState=e}function yi(){return si().memoizedState}function wi(e,t,n,r){var a=ui();ei.flags|=e,a.memoizedState=vi(1|t,n,void 0,void 0===r?null:r)}function ki(e,t,n,r){var a=si();r=void 0===r?null:r;var o=void 0;if(null!==ti){var i=ti.memoizedState;if(o=i.destroy,null!==r&&ii(r,i.deps))return void vi(t,n,o,r)}ei.flags|=e,a.memoizedState=vi(1|t,n,o,r)}function Ei(e,t){return wi(516,4,e,t)}function Si(e,t){return ki(516,4,e,t)}function xi(e,t){return ki(4,2,e,t)}function _i(e,t){return"function"==typeof t?(e=e(),t(e),function(){t(null)}):null!=t?(e=e(),t.current=e,function(){t.current=null}):void 0}function Ci(e,t,n){return n=null!=n?n.concat([e]):null,ki(4,2,_i.bind(null,t,e),n)}function Ti(){}function Ai(e,t){var n=si();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&ii(t,r[1])?r[0]:(n.memoizedState=[e,t],e)}function Oi(e,t){var n=si();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&ii(t,r[1])?r[0]:(e=e(),n.memoizedState=[e,t],e)}function Li(e,t){var n=qa();Ha(98>n?98:n,(function(){e(!0)})),Ha(97<n?97:n,(function(){var n=Xo.transition;Xo.transition=1;try{e(!1),t()}finally{Xo.transition=n}}))}function Pi(e,t,n){var r=du(),a=pu(e),o={lane:a,action:n,eagerReducer:null,eagerState:null,next:null},i=t.pending;if(null===i?o.next=o:(o.next=i.next,i.next=o),t.pending=o,i=e.alternate,e===ei||null!==i&&i===ei)ai=ri=!0;else{if(0===e.lanes&&(null===i||0===i.lanes)&&null!==(i=t.lastRenderedReducer))try{var l=t.lastRenderedState,u=i(l,n);if(o.eagerReducer=i,o.eagerState=u,cr(u,l))return}catch(s){}mu(e,a,r)}}var Ri={readContext:io,useCallback:oi,useContext:oi,useEffect:oi,useImperativeHandle:oi,useLayoutEffect:oi,useMemo:oi,useReducer:oi,useRef:oi,useState:oi,useDebugValue:oi,useDeferredValue:oi,useTransition:oi,useMutableSource:oi,useOpaqueIdentifier:oi,unstable_isNewReconciler:!1},Ni={readContext:io,useCallback:function(e,t){return ui().memoizedState=[e,void 0===t?null:t],e},useContext:io,useEffect:Ei,useImperativeHandle:function(e,t,n){return n=null!=n?n.concat([e]):null,wi(4,2,_i.bind(null,t,e),n)},useLayoutEffect:function(e,t){return wi(4,2,e,t)},useMemo:function(e,t){var n=ui();return t=void 0===t?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=ui();return t=void 0!==n?n(t):t,r.memoizedState=r.baseState=t,e=(e=r.queue={pending:null,dispatch:null,lastRenderedReducer:e,lastRenderedState:t}).dispatch=Pi.bind(null,ei,e),[r.memoizedState,e]},useRef:bi,useState:gi,useDebugValue:Ti,useDeferredValue:function(e){var t=gi(e),n=t[0],r=t[1];return Ei((function(){var t=Xo.transition;Xo.transition=1;try{r(e)}finally{Xo.transition=t}}),[e]),n},useTransition:function(){var e=gi(!1),t=e[0];return bi(e=Li.bind(null,e[1])),[e,t]},useMutableSource:function(e,t,n){var r=ui();return r.memoizedState={refs:{getSnapshot:t,setSnapshot:null},source:e,subscribe:n},mi(r,e,t,n)},useOpaqueIdentifier:function(){if(Zo){var e=!1,t=function(e){return{$$typeof:D,toString:e,valueOf:e}}((function(){throw e||(e=!0,n("r:"+(Kr++).toString(36))),Error(i(355))})),n=gi(t)[1];return 0==(2&ei.mode)&&(ei.flags|=516,vi(5,(function(){n("r:"+(Kr++).toString(36))}),void 0,null)),t}return gi(t="r:"+(Kr++).toString(36)),t},unstable_isNewReconciler:!1},Ii={readContext:io,useCallback:Ai,useContext:io,useEffect:Si,useImperativeHandle:Ci,useLayoutEffect:xi,useMemo:Oi,useReducer:fi,useRef:yi,useState:function(){return fi(ci)},useDebugValue:Ti,useDeferredValue:function(e){var t=fi(ci),n=t[0],r=t[1];return Si((function(){var t=Xo.transition;Xo.transition=1;try{r(e)}finally{Xo.transition=t}}),[e]),n},useTransition:function(){var e=fi(ci)[0];return[yi().current,e]},useMutableSource:hi,useOpaqueIdentifier:function(){return fi(ci)[0]},unstable_isNewReconciler:!1},Di={readContext:io,useCallback:Ai,useContext:io,useEffect:Si,useImperativeHandle:Ci,useLayoutEffect:xi,useMemo:Oi,useReducer:di,useRef:yi,useState:function(){return di(ci)},useDebugValue:Ti,useDeferredValue:function(e){var t=di(ci),n=t[0],r=t[1];return Si((function(){var t=Xo.transition;Xo.transition=1;try{r(e)}finally{Xo.transition=t}}),[e]),n},useTransition:function(){var e=di(ci)[0];return[yi().current,e]},useMutableSource:hi,useOpaqueIdentifier:function(){return di(ci)[0]},unstable_isNewReconciler:!1},Mi=k.ReactCurrentOwner,Fi=!1;function ji(e,t,n,r){t.child=null===e?Ao(t,null,n,r):To(t,e.child,n,r)}function Bi(e,t,n,r,a){n=n.render;var o=t.ref;return oo(t,a),r=li(e,t,n,r,o,a),null===e||Fi?(t.flags|=1,ji(e,t,r,a),t.child):(t.updateQueue=e.updateQueue,t.flags&=-517,e.lanes&=~a,ol(e,t,a))}function zi(e,t,n,r,a,o){if(null===e){var i=n.type;return"function"!=typeof i||Gu(i)||void 0!==i.defaultProps||null!==n.compare||void 0!==n.defaultProps?((e=Vu(n.type,null,r,t,t.mode,o)).ref=t.ref,e.return=t,t.child=e):(t.tag=15,t.type=i,Ui(e,t,i,r,a,o))}return i=e.child,0==(a&o)&&(a=i.memoizedProps,(n=null!==(n=n.compare)?n:dr)(a,r)&&e.ref===t.ref)?ol(e,t,o):(t.flags|=1,(e=Hu(i,r)).ref=t.ref,e.return=t,t.child=e)}function Ui(e,t,n,r,a,o){if(null!==e&&dr(e.memoizedProps,r)&&e.ref===t.ref){if(Fi=!1,0==(o&a))return t.lanes=e.lanes,ol(e,t,o);0!=(16384&e.flags)&&(Fi=!0)}return qi(e,t,n,r,o)}function Zi(e,t,n){var r=t.pendingProps,a=r.children,o=null!==e?e.memoizedState:null;if("hidden"===r.mode||"unstable-defer-without-hiding"===r.mode)if(0==(4&t.mode))t.memoizedState={baseLanes:0},Eu(t,n);else{if(0==(1073741824&n))return e=null!==o?o.baseLanes|n:n,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e},Eu(t,e),null;t.memoizedState={baseLanes:0},Eu(t,null!==o?o.baseLanes:n)}else null!==o?(r=o.baseLanes|n,t.memoizedState=null):r=n,Eu(t,r);return ji(e,t,a,n),t.child}function $i(e,t){var n=t.ref;(null===e&&null!==n||null!==e&&e.ref!==n)&&(t.flags|=128)}function qi(e,t,n,r,a){var o=va(n)?ha:pa.current;return o=ga(t,o),oo(t,a),n=li(e,t,n,r,o,a),null===e||Fi?(t.flags|=1,ji(e,t,n,a),t.child):(t.updateQueue=e.updateQueue,t.flags&=-517,e.lanes&=~a,ol(e,t,a))}function Gi(e,t,n,r,a){if(va(n)){var o=!0;ka(t)}else o=!1;if(oo(t,a),null===t.stateNode)null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),wo(t,n,r),Eo(t,n,r,a),r=!0;else if(null===e){var i=t.stateNode,l=t.memoizedProps;i.props=l;var u=i.context,s=n.contextType;"object"==typeof s&&null!==s?s=io(s):s=ga(t,s=va(n)?ha:pa.current);var c=n.getDerivedStateFromProps,f="function"==typeof c||"function"==typeof i.getSnapshotBeforeUpdate;f||"function"!=typeof i.UNSAFE_componentWillReceiveProps&&"function"!=typeof i.componentWillReceiveProps||(l!==r||u!==s)&&ko(t,i,r,s),lo=!1;var d=t.memoizedState;i.state=d,mo(t,r,i,a),u=t.memoizedState,l!==r||d!==u||ma.current||lo?("function"==typeof c&&(vo(t,n,c,r),u=t.memoizedState),(l=lo||yo(t,n,l,r,d,u,s))?(f||"function"!=typeof i.UNSAFE_componentWillMount&&"function"!=typeof i.componentWillMount||("function"==typeof i.componentWillMount&&i.componentWillMount(),"function"==typeof i.UNSAFE_componentWillMount&&i.UNSAFE_componentWillMount()),"function"==typeof i.componentDidMount&&(t.flags|=4)):("function"==typeof i.componentDidMount&&(t.flags|=4),t.memoizedProps=r,t.memoizedState=u),i.props=r,i.state=u,i.context=s,r=l):("function"==typeof i.componentDidMount&&(t.flags|=4),r=!1)}else{i=t.stateNode,so(e,t),l=t.memoizedProps,s=t.type===t.elementType?l:Qa(t.type,l),i.props=s,f=t.pendingProps,d=i.context,"object"==typeof(u=n.contextType)&&null!==u?u=io(u):u=ga(t,u=va(n)?ha:pa.current);var p=n.getDerivedStateFromProps;(c="function"==typeof p||"function"==typeof i.getSnapshotBeforeUpdate)||"function"!=typeof i.UNSAFE_componentWillReceiveProps&&"function"!=typeof i.componentWillReceiveProps||(l!==f||d!==u)&&ko(t,i,r,u),lo=!1,d=t.memoizedState,i.state=d,mo(t,r,i,a);var m=t.memoizedState;l!==f||d!==m||ma.current||lo?("function"==typeof p&&(vo(t,n,p,r),m=t.memoizedState),(s=lo||yo(t,n,s,r,d,m,u))?(c||"function"!=typeof i.UNSAFE_componentWillUpdate&&"function"!=typeof i.componentWillUpdate||("function"==typeof i.componentWillUpdate&&i.componentWillUpdate(r,m,u),"function"==typeof i.UNSAFE_componentWillUpdate&&i.UNSAFE_componentWillUpdate(r,m,u)),"function"==typeof i.componentDidUpdate&&(t.flags|=4),"function"==typeof i.getSnapshotBeforeUpdate&&(t.flags|=256)):("function"!=typeof i.componentDidUpdate||l===e.memoizedProps&&d===e.memoizedState||(t.flags|=4),"function"!=typeof i.getSnapshotBeforeUpdate||l===e.memoizedProps&&d===e.memoizedState||(t.flags|=256),t.memoizedProps=r,t.memoizedState=m),i.props=r,i.state=m,i.context=u,r=s):("function"!=typeof i.componentDidUpdate||l===e.memoizedProps&&d===e.memoizedState||(t.flags|=4),"function"!=typeof i.getSnapshotBeforeUpdate||l===e.memoizedProps&&d===e.memoizedState||(t.flags|=256),r=!1)}return Hi(e,t,n,r,o,a)}function Hi(e,t,n,r,a,o){$i(e,t);var i=0!=(64&t.flags);if(!r&&!i)return a&&Ea(t,n,!1),ol(e,t,o);r=t.stateNode,Mi.current=t;var l=i&&"function"!=typeof n.getDerivedStateFromError?null:r.render();return t.flags|=1,null!==e&&i?(t.child=To(t,e.child,null,o),t.child=To(t,null,l,o)):ji(e,t,l,o),t.memoizedState=r.state,a&&Ea(t,n,!0),t.child}function Vi(e){var t=e.stateNode;t.pendingContext?ya(0,t.pendingContext,t.pendingContext!==t.context):t.context&&ya(0,t.context,!1),Io(e,t.containerInfo)}var Wi,Yi,Ki,Qi={dehydrated:null,retryLane:0};function Xi(e,t,n){var r,a=t.pendingProps,o=jo.current,i=!1;return(r=0!=(64&t.flags))||(r=(null===e||null!==e.memoizedState)&&0!=(2&o)),r?(i=!0,t.flags&=-65):null!==e&&null===e.memoizedState||void 0===a.fallback||!0===a.unstable_avoidThisFallback||(o|=1),fa(jo,1&o),null===e?(void 0!==a.fallback&&Go(t),e=a.children,o=a.fallback,i?(e=Ji(t,e,o,n),t.child.memoizedState={baseLanes:n},t.memoizedState=Qi,e):"number"==typeof a.unstable_expectedLoadTime?(e=Ji(t,e,o,n),t.child.memoizedState={baseLanes:n},t.memoizedState=Qi,t.lanes=33554432,e):((n=Yu({mode:"visible",children:e},t.mode,n,null)).return=t,t.child=n)):(e.memoizedState,i?(a=tl(e,t,a.children,a.fallback,n),i=t.child,o=e.child.memoizedState,i.memoizedState=null===o?{baseLanes:n}:{baseLanes:o.baseLanes|n},i.childLanes=e.childLanes&~n,t.memoizedState=Qi,a):(n=el(e,t,a.children,n),t.memoizedState=null,n))}function Ji(e,t,n,r){var a=e.mode,o=e.child;return t={mode:"hidden",children:t},0==(2&a)&&null!==o?(o.childLanes=0,o.pendingProps=t):o=Yu(t,a,0,null),n=Wu(n,a,r,null),o.return=e,n.return=e,o.sibling=n,e.child=o,n}function el(e,t,n,r){var a=e.child;return e=a.sibling,n=Hu(a,{mode:"visible",children:n}),0==(2&t.mode)&&(n.lanes=r),n.return=t,n.sibling=null,null!==e&&(e.nextEffect=null,e.flags=8,t.firstEffect=t.lastEffect=e),t.child=n}function tl(e,t,n,r,a){var o=t.mode,i=e.child;e=i.sibling;var l={mode:"hidden",children:n};return 0==(2&o)&&t.child!==i?((n=t.child).childLanes=0,n.pendingProps=l,null!==(i=n.lastEffect)?(t.firstEffect=n.firstEffect,t.lastEffect=i,i.nextEffect=null):t.firstEffect=t.lastEffect=null):n=Hu(i,l),null!==e?r=Hu(e,r):(r=Wu(r,o,a,null)).flags|=2,r.return=t,n.return=t,n.sibling=r,t.child=n,r}function nl(e,t){e.lanes|=t;var n=e.alternate;null!==n&&(n.lanes|=t),ao(e.return,t)}function rl(e,t,n,r,a,o){var i=e.memoizedState;null===i?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:a,lastEffect:o}:(i.isBackwards=t,i.rendering=null,i.renderingStartTime=0,i.last=r,i.tail=n,i.tailMode=a,i.lastEffect=o)}function al(e,t,n){var r=t.pendingProps,a=r.revealOrder,o=r.tail;if(ji(e,t,r.children,n),0!=(2&(r=jo.current)))r=1&r|2,t.flags|=64;else{if(null!==e&&0!=(64&e.flags))e:for(e=t.child;null!==e;){if(13===e.tag)null!==e.memoizedState&&nl(e,n);else if(19===e.tag)nl(e,n);else if(null!==e.child){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;null===e.sibling;){if(null===e.return||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}r&=1}if(fa(jo,r),0==(2&t.mode))t.memoizedState=null;else switch(a){case"forwards":for(n=t.child,a=null;null!==n;)null!==(e=n.alternate)&&null===Bo(e)&&(a=n),n=n.sibling;null===(n=a)?(a=t.child,t.child=null):(a=n.sibling,n.sibling=null),rl(t,!1,a,n,o,t.lastEffect);break;case"backwards":for(n=null,a=t.child,t.child=null;null!==a;){if(null!==(e=a.alternate)&&null===Bo(e)){t.child=a;break}e=a.sibling,a.sibling=n,n=a,a=e}rl(t,!0,n,null,o,t.lastEffect);break;case"together":rl(t,!1,null,null,void 0,t.lastEffect);break;default:t.memoizedState=null}return t.child}function ol(e,t,n){if(null!==e&&(t.dependencies=e.dependencies),Ul|=t.lanes,0!=(n&t.childLanes)){if(null!==e&&t.child!==e.child)throw Error(i(153));if(null!==t.child){for(n=Hu(e=t.child,e.pendingProps),t.child=n,n.return=t;null!==e.sibling;)e=e.sibling,(n=n.sibling=Hu(e,e.pendingProps)).return=t;n.sibling=null}return t.child}return null}function il(e,t){if(!Zo)switch(e.tailMode){case"hidden":t=e.tail;for(var n=null;null!==t;)null!==t.alternate&&(n=t),t=t.sibling;null===n?e.tail=null:n.sibling=null;break;case"collapsed":n=e.tail;for(var r=null;null!==n;)null!==n.alternate&&(r=n),n=n.sibling;null===r?t||null===e.tail?e.tail=null:e.tail.sibling=null:r.sibling=null}}function ll(e,t,n){var r=t.pendingProps;switch(t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return null;case 1:case 17:return va(t.type)&&ba(),null;case 3:return Do(),ca(ma),ca(pa),Ko(),(r=t.stateNode).pendingContext&&(r.context=r.pendingContext,r.pendingContext=null),null!==e&&null!==e.child||(Vo(t)?t.flags|=4:r.hydrate||(t.flags|=256)),null;case 5:Fo(t);var o=No(Ro.current);if(n=t.type,null!==e&&null!=t.stateNode)Yi(e,t,n,r),e.ref!==t.ref&&(t.flags|=128);else{if(!r){if(null===t.stateNode)throw Error(i(166));return null}if(e=No(Lo.current),Vo(t)){r=t.stateNode,n=t.type;var l=t.memoizedProps;switch(r[Xr]=t,r[Jr]=l,n){case"dialog":Lr("cancel",r),Lr("close",r);break;case"iframe":case"object":case"embed":Lr("load",r);break;case"video":case"audio":for(e=0;e<Cr.length;e++)Lr(Cr[e],r);break;case"source":Lr("error",r);break;case"img":case"image":case"link":Lr("error",r),Lr("load",r);break;case"details":Lr("toggle",r);break;case"input":ee(r,l),Lr("invalid",r);break;case"select":r._wrapperState={wasMultiple:!!l.multiple},Lr("invalid",r);break;case"textarea":ue(r,l),Lr("invalid",r)}for(var s in xe(n,l),e=null,l)l.hasOwnProperty(s)&&(o=l[s],"children"===s?"string"==typeof o?r.textContent!==o&&(e=["children",o]):"number"==typeof o&&r.textContent!==""+o&&(e=["children",""+o]):u.hasOwnProperty(s)&&null!=o&&"onScroll"===s&&Lr("scroll",r));switch(n){case"input":K(r),re(r,l,!0);break;case"textarea":K(r),ce(r);break;case"select":case"option":break;default:"function"==typeof l.onClick&&(r.onclick=zr)}r=e,t.updateQueue=r,null!==r&&(t.flags|=4)}else{switch(s=9===o.nodeType?o:o.ownerDocument,e===fe&&(e=pe(n)),e===fe?"script"===n?((e=s.createElement("div")).innerHTML="<script><\/script>",e=e.removeChild(e.firstChild)):"string"==typeof r.is?e=s.createElement(n,{is:r.is}):(e=s.createElement(n),"select"===n&&(s=e,r.multiple?s.multiple=!0:r.size&&(s.size=r.size))):e=s.createElementNS(e,n),e[Xr]=t,e[Jr]=r,Wi(e,t),t.stateNode=e,s=_e(n,r),n){case"dialog":Lr("cancel",e),Lr("close",e),o=r;break;case"iframe":case"object":case"embed":Lr("load",e),o=r;break;case"video":case"audio":for(o=0;o<Cr.length;o++)Lr(Cr[o],e);o=r;break;case"source":Lr("error",e),o=r;break;case"img":case"image":case"link":Lr("error",e),Lr("load",e),o=r;break;case"details":Lr("toggle",e),o=r;break;case"input":ee(e,r),o=J(e,r),Lr("invalid",e);break;case"option":o=oe(e,r);break;case"select":e._wrapperState={wasMultiple:!!r.multiple},o=a({},r,{value:void 0}),Lr("invalid",e);break;case"textarea":ue(e,r),o=le(e,r),Lr("invalid",e);break;default:o=r}xe(n,o);var c=o;for(l in c)if(c.hasOwnProperty(l)){var f=c[l];"style"===l?Ee(e,f):"dangerouslySetInnerHTML"===l?null!=(f=f?f.__html:void 0)&&ve(e,f):"children"===l?"string"==typeof f?("textarea"!==n||""!==f)&&be(e,f):"number"==typeof f&&be(e,""+f):"suppressContentEditableWarning"!==l&&"suppressHydrationWarning"!==l&&"autoFocus"!==l&&(u.hasOwnProperty(l)?null!=f&&"onScroll"===l&&Lr("scroll",e):null!=f&&w(e,l,f,s))}switch(n){case"input":K(e),re(e,r,!1);break;case"textarea":K(e),ce(e);break;case"option":null!=r.value&&e.setAttribute("value",""+W(r.value));break;case"select":e.multiple=!!r.multiple,null!=(l=r.value)?ie(e,!!r.multiple,l,!1):null!=r.defaultValue&&ie(e,!!r.multiple,r.defaultValue,!0);break;default:"function"==typeof o.onClick&&(e.onclick=zr)}$r(n,r)&&(t.flags|=4)}null!==t.ref&&(t.flags|=128)}return null;case 6:if(e&&null!=t.stateNode)Ki(0,t,e.memoizedProps,r);else{if("string"!=typeof r&&null===t.stateNode)throw Error(i(166));n=No(Ro.current),No(Lo.current),Vo(t)?(r=t.stateNode,n=t.memoizedProps,r[Xr]=t,r.nodeValue!==n&&(t.flags|=4)):((r=(9===n.nodeType?n:n.ownerDocument).createTextNode(r))[Xr]=t,t.stateNode=r)}return null;case 13:return ca(jo),r=t.memoizedState,0!=(64&t.flags)?(t.lanes=n,t):(r=null!==r,n=!1,null===e?void 0!==t.memoizedProps.fallback&&Vo(t):n=null!==e.memoizedState,r&&!n&&0!=(2&t.mode)&&(null===e&&!0!==t.memoizedProps.unstable_avoidThisFallback||0!=(1&jo.current)?0===jl&&(jl=3):(0!==jl&&3!==jl||(jl=4),null===Nl||0==(134217727&Ul)&&0==(134217727&Zl)||bu(Nl,Dl))),(r||n)&&(t.flags|=4),null);case 4:return Do(),null===e&&Rr(t.stateNode.containerInfo),null;case 10:return ro(t),null;case 19:if(ca(jo),null===(r=t.memoizedState))return null;if(l=0!=(64&t.flags),null===(s=r.rendering))if(l)il(r,!1);else{if(0!==jl||null!==e&&0!=(64&e.flags))for(e=t.child;null!==e;){if(null!==(s=Bo(e))){for(t.flags|=64,il(r,!1),null!==(l=s.updateQueue)&&(t.updateQueue=l,t.flags|=4),null===r.lastEffect&&(t.firstEffect=null),t.lastEffect=r.lastEffect,r=n,n=t.child;null!==n;)e=r,(l=n).flags&=2,l.nextEffect=null,l.firstEffect=null,l.lastEffect=null,null===(s=l.alternate)?(l.childLanes=0,l.lanes=e,l.child=null,l.memoizedProps=null,l.memoizedState=null,l.updateQueue=null,l.dependencies=null,l.stateNode=null):(l.childLanes=s.childLanes,l.lanes=s.lanes,l.child=s.child,l.memoizedProps=s.memoizedProps,l.memoizedState=s.memoizedState,l.updateQueue=s.updateQueue,l.type=s.type,e=s.dependencies,l.dependencies=null===e?null:{lanes:e.lanes,firstContext:e.firstContext}),n=n.sibling;return fa(jo,1&jo.current|2),t.child}e=e.sibling}null!==r.tail&&$a()>Hl&&(t.flags|=64,l=!0,il(r,!1),t.lanes=33554432)}else{if(!l)if(null!==(e=Bo(s))){if(t.flags|=64,l=!0,null!==(n=e.updateQueue)&&(t.updateQueue=n,t.flags|=4),il(r,!0),null===r.tail&&"hidden"===r.tailMode&&!s.alternate&&!Zo)return null!==(t=t.lastEffect=r.lastEffect)&&(t.nextEffect=null),null}else 2*$a()-r.renderingStartTime>Hl&&1073741824!==n&&(t.flags|=64,l=!0,il(r,!1),t.lanes=33554432);r.isBackwards?(s.sibling=t.child,t.child=s):(null!==(n=r.last)?n.sibling=s:t.child=s,r.last=s)}return null!==r.tail?(n=r.tail,r.rendering=n,r.tail=n.sibling,r.lastEffect=t.lastEffect,r.renderingStartTime=$a(),n.sibling=null,t=jo.current,fa(jo,l?1&t|2:1&t),n):null;case 23:case 24:return Su(),null!==e&&null!==e.memoizedState!=(null!==t.memoizedState)&&"unstable-defer-without-hiding"!==r.mode&&(t.flags|=4),null}throw Error(i(156,t.tag))}function ul(e){switch(e.tag){case 1:va(e.type)&&ba();var t=e.flags;return 4096&t?(e.flags=-4097&t|64,e):null;case 3:if(Do(),ca(ma),ca(pa),Ko(),0!=(64&(t=e.flags)))throw Error(i(285));return e.flags=-4097&t|64,e;case 5:return Fo(e),null;case 13:return ca(jo),4096&(t=e.flags)?(e.flags=-4097&t|64,e):null;case 19:return ca(jo),null;case 4:return Do(),null;case 10:return ro(e),null;case 23:case 24:return Su(),null;default:return null}}function sl(e,t){try{var n="",r=t;do{n+=H(r),r=r.return}while(r);var a=n}catch(o){a="\nError generating stack: "+o.message+"\n"+o.stack}return{value:e,source:t,stack:a}}function cl(e,t){try{console.error(t.value)}catch(n){setTimeout((function(){throw n}))}}Wi=function(e,t){for(var n=t.child;null!==n;){if(5===n.tag||6===n.tag)e.appendChild(n.stateNode);else if(4!==n.tag&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===t)break;for(;null===n.sibling;){if(null===n.return||n.return===t)return;n=n.return}n.sibling.return=n.return,n=n.sibling}},Yi=function(e,t,n,r){var o=e.memoizedProps;if(o!==r){e=t.stateNode,No(Lo.current);var i,l=null;switch(n){case"input":o=J(e,o),r=J(e,r),l=[];break;case"option":o=oe(e,o),r=oe(e,r),l=[];break;case"select":o=a({},o,{value:void 0}),r=a({},r,{value:void 0}),l=[];break;case"textarea":o=le(e,o),r=le(e,r),l=[];break;default:"function"!=typeof o.onClick&&"function"==typeof r.onClick&&(e.onclick=zr)}for(f in xe(n,r),n=null,o)if(!r.hasOwnProperty(f)&&o.hasOwnProperty(f)&&null!=o[f])if("style"===f){var s=o[f];for(i in s)s.hasOwnProperty(i)&&(n||(n={}),n[i]="")}else"dangerouslySetInnerHTML"!==f&&"children"!==f&&"suppressContentEditableWarning"!==f&&"suppressHydrationWarning"!==f&&"autoFocus"!==f&&(u.hasOwnProperty(f)?l||(l=[]):(l=l||[]).push(f,null));for(f in r){var c=r[f];if(s=null!=o?o[f]:void 0,r.hasOwnProperty(f)&&c!==s&&(null!=c||null!=s))if("style"===f)if(s){for(i in s)!s.hasOwnProperty(i)||c&&c.hasOwnProperty(i)||(n||(n={}),n[i]="");for(i in c)c.hasOwnProperty(i)&&s[i]!==c[i]&&(n||(n={}),n[i]=c[i])}else n||(l||(l=[]),l.push(f,n)),n=c;else"dangerouslySetInnerHTML"===f?(c=c?c.__html:void 0,s=s?s.__html:void 0,null!=c&&s!==c&&(l=l||[]).push(f,c)):"children"===f?"string"!=typeof c&&"number"!=typeof c||(l=l||[]).push(f,""+c):"suppressContentEditableWarning"!==f&&"suppressHydrationWarning"!==f&&(u.hasOwnProperty(f)?(null!=c&&"onScroll"===f&&Lr("scroll",e),l||s===c||(l=[])):"object"==typeof c&&null!==c&&c.$$typeof===D?c.toString():(l=l||[]).push(f,c))}n&&(l=l||[]).push("style",n);var f=l;(t.updateQueue=f)&&(t.flags|=4)}},Ki=function(e,t,n,r){n!==r&&(t.flags|=4)};var fl="function"==typeof WeakMap?WeakMap:Map;function dl(e,t,n){(n=co(-1,n)).tag=3,n.payload={element:null};var r=t.value;return n.callback=function(){Kl||(Kl=!0,Ql=r),cl(0,t)},n}function pl(e,t,n){(n=co(-1,n)).tag=3;var r=e.type.getDerivedStateFromError;if("function"==typeof r){var a=t.value;n.payload=function(){return cl(0,t),r(a)}}var o=e.stateNode;return null!==o&&"function"==typeof o.componentDidCatch&&(n.callback=function(){"function"!=typeof r&&(null===Xl?Xl=new Set([this]):Xl.add(this),cl(0,t));var e=t.stack;this.componentDidCatch(t.value,{componentStack:null!==e?e:""})}),n}var ml="function"==typeof WeakSet?WeakSet:Set;function hl(e){var t=e.ref;if(null!==t)if("function"==typeof t)try{t(null)}catch(n){zu(e,n)}else t.current=null}function gl(e,t){switch(t.tag){case 0:case 11:case 15:case 22:case 5:case 6:case 4:case 17:return;case 1:if(256&t.flags&&null!==e){var n=e.memoizedProps,r=e.memoizedState;t=(e=t.stateNode).getSnapshotBeforeUpdate(t.elementType===t.type?n:Qa(t.type,n),r),e.__reactInternalSnapshotBeforeUpdate=t}return;case 3:return void(256&t.flags&&Vr(t.stateNode.containerInfo))}throw Error(i(163))}function vl(e,t,n){switch(n.tag){case 0:case 11:case 15:case 22:if(null!==(t=null!==(t=n.updateQueue)?t.lastEffect:null)){e=t=t.next;do{if(3==(3&e.tag)){var r=e.create;e.destroy=r()}e=e.next}while(e!==t)}if(null!==(t=null!==(t=n.updateQueue)?t.lastEffect:null)){e=t=t.next;do{var a=e;r=a.next,0!=(4&(a=a.tag))&&0!=(1&a)&&(Fu(n,e),Mu(n,e)),e=r}while(e!==t)}return;case 1:return e=n.stateNode,4&n.flags&&(null===t?e.componentDidMount():(r=n.elementType===n.type?t.memoizedProps:Qa(n.type,t.memoizedProps),e.componentDidUpdate(r,t.memoizedState,e.__reactInternalSnapshotBeforeUpdate))),void(null!==(t=n.updateQueue)&&ho(n,t,e));case 3:if(null!==(t=n.updateQueue)){if(e=null,null!==n.child)switch(n.child.tag){case 5:case 1:e=n.child.stateNode}ho(n,t,e)}return;case 5:return e=n.stateNode,void(null===t&&4&n.flags&&$r(n.type,n.memoizedProps)&&e.focus());case 6:case 4:case 12:case 19:case 17:case 20:case 21:case 23:case 24:return;case 13:return void(null===n.memoizedState&&(n=n.alternate,null!==n&&(n=n.memoizedState,null!==n&&(n=n.dehydrated,null!==n&&Et(n)))))}throw Error(i(163))}function bl(e,t){for(var n=e;;){if(5===n.tag){var r=n.stateNode;if(t)"function"==typeof(r=r.style).setProperty?r.setProperty("display","none","important"):r.display="none";else{r=n.stateNode;var a=n.memoizedProps.style;a=null!=a&&a.hasOwnProperty("display")?a.display:null,r.style.display=ke("display",a)}}else if(6===n.tag)n.stateNode.nodeValue=t?"":n.memoizedProps;else if((23!==n.tag&&24!==n.tag||null===n.memoizedState||n===e)&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===e)break;for(;null===n.sibling;){if(null===n.return||n.return===e)return;n=n.return}n.sibling.return=n.return,n=n.sibling}}function yl(e,t){if(xa&&"function"==typeof xa.onCommitFiberUnmount)try{xa.onCommitFiberUnmount(Sa,t)}catch(o){}switch(t.tag){case 0:case 11:case 14:case 15:case 22:if(null!==(e=t.updateQueue)&&null!==(e=e.lastEffect)){var n=e=e.next;do{var r=n,a=r.destroy;if(r=r.tag,void 0!==a)if(0!=(4&r))Fu(t,n);else{r=t;try{a()}catch(o){zu(r,o)}}n=n.next}while(n!==e)}break;case 1:if(hl(t),"function"==typeof(e=t.stateNode).componentWillUnmount)try{e.props=t.memoizedProps,e.state=t.memoizedState,e.componentWillUnmount()}catch(o){zu(t,o)}break;case 5:hl(t);break;case 4:_l(e,t)}}function wl(e){e.alternate=null,e.child=null,e.dependencies=null,e.firstEffect=null,e.lastEffect=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.return=null,e.updateQueue=null}function kl(e){return 5===e.tag||3===e.tag||4===e.tag}function El(e){e:{for(var t=e.return;null!==t;){if(kl(t))break e;t=t.return}throw Error(i(160))}var n=t;switch(t=n.stateNode,n.tag){case 5:var r=!1;break;case 3:case 4:t=t.containerInfo,r=!0;break;default:throw Error(i(161))}16&n.flags&&(be(t,""),n.flags&=-17);e:t:for(n=e;;){for(;null===n.sibling;){if(null===n.return||kl(n.return)){n=null;break e}n=n.return}for(n.sibling.return=n.return,n=n.sibling;5!==n.tag&&6!==n.tag&&18!==n.tag;){if(2&n.flags)continue t;if(null===n.child||4===n.tag)continue t;n.child.return=n,n=n.child}if(!(2&n.flags)){n=n.stateNode;break e}}r?Sl(e,n,t):xl(e,n,t)}function Sl(e,t,n){var r=e.tag,a=5===r||6===r;if(a)e=a?e.stateNode:e.stateNode.instance,t?8===n.nodeType?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(8===n.nodeType?(t=n.parentNode).insertBefore(e,n):(t=n).appendChild(e),null!=(n=n._reactRootContainer)||null!==t.onclick||(t.onclick=zr));else if(4!==r&&null!==(e=e.child))for(Sl(e,t,n),e=e.sibling;null!==e;)Sl(e,t,n),e=e.sibling}function xl(e,t,n){var r=e.tag,a=5===r||6===r;if(a)e=a?e.stateNode:e.stateNode.instance,t?n.insertBefore(e,t):n.appendChild(e);else if(4!==r&&null!==(e=e.child))for(xl(e,t,n),e=e.sibling;null!==e;)xl(e,t,n),e=e.sibling}function _l(e,t){for(var n,r,a=t,o=!1;;){if(!o){o=a.return;e:for(;;){if(null===o)throw Error(i(160));switch(n=o.stateNode,o.tag){case 5:r=!1;break e;case 3:case 4:n=n.containerInfo,r=!0;break e}o=o.return}o=!0}if(5===a.tag||6===a.tag){e:for(var l=e,u=a,s=u;;)if(yl(l,s),null!==s.child&&4!==s.tag)s.child.return=s,s=s.child;else{if(s===u)break e;for(;null===s.sibling;){if(null===s.return||s.return===u)break e;s=s.return}s.sibling.return=s.return,s=s.sibling}r?(l=n,u=a.stateNode,8===l.nodeType?l.parentNode.removeChild(u):l.removeChild(u)):n.removeChild(a.stateNode)}else if(4===a.tag){if(null!==a.child){n=a.stateNode.containerInfo,r=!0,a.child.return=a,a=a.child;continue}}else if(yl(e,a),null!==a.child){a.child.return=a,a=a.child;continue}if(a===t)break;for(;null===a.sibling;){if(null===a.return||a.return===t)return;4===(a=a.return).tag&&(o=!1)}a.sibling.return=a.return,a=a.sibling}}function Cl(e,t){switch(t.tag){case 0:case 11:case 14:case 15:case 22:var n=t.updateQueue;if(null!==(n=null!==n?n.lastEffect:null)){var r=n=n.next;do{3==(3&r.tag)&&(e=r.destroy,r.destroy=void 0,void 0!==e&&e()),r=r.next}while(r!==n)}return;case 1:case 12:case 17:return;case 5:if(null!=(n=t.stateNode)){r=t.memoizedProps;var a=null!==e?e.memoizedProps:r;e=t.type;var o=t.updateQueue;if(t.updateQueue=null,null!==o){for(n[Jr]=r,"input"===e&&"radio"===r.type&&null!=r.name&&te(n,r),_e(e,a),t=_e(e,r),a=0;a<o.length;a+=2){var l=o[a],u=o[a+1];"style"===l?Ee(n,u):"dangerouslySetInnerHTML"===l?ve(n,u):"children"===l?be(n,u):w(n,l,u,t)}switch(e){case"input":ne(n,r);break;case"textarea":se(n,r);break;case"select":e=n._wrapperState.wasMultiple,n._wrapperState.wasMultiple=!!r.multiple,null!=(o=r.value)?ie(n,!!r.multiple,o,!1):e!==!!r.multiple&&(null!=r.defaultValue?ie(n,!!r.multiple,r.defaultValue,!0):ie(n,!!r.multiple,r.multiple?[]:"",!1))}}}return;case 6:if(null===t.stateNode)throw Error(i(162));return void(t.stateNode.nodeValue=t.memoizedProps);case 3:return void((n=t.stateNode).hydrate&&(n.hydrate=!1,Et(n.containerInfo)));case 13:return null!==t.memoizedState&&(Gl=$a(),bl(t.child,!0)),void Tl(t);case 19:return void Tl(t);case 23:case 24:return void bl(t,null!==t.memoizedState)}throw Error(i(163))}function Tl(e){var t=e.updateQueue;if(null!==t){e.updateQueue=null;var n=e.stateNode;null===n&&(n=e.stateNode=new ml),t.forEach((function(t){var r=Zu.bind(null,e,t);n.has(t)||(n.add(t),t.then(r,r))}))}}function Al(e,t){return null!==e&&(null===(e=e.memoizedState)||null!==e.dehydrated)&&(null!==(t=t.memoizedState)&&null===t.dehydrated)}var Ol=Math.ceil,Ll=k.ReactCurrentDispatcher,Pl=k.ReactCurrentOwner,Rl=0,Nl=null,Il=null,Dl=0,Ml=0,Fl=sa(0),jl=0,Bl=null,zl=0,Ul=0,Zl=0,$l=0,ql=null,Gl=0,Hl=1/0;function Vl(){Hl=$a()+500}var Wl,Yl=null,Kl=!1,Ql=null,Xl=null,Jl=!1,eu=null,tu=90,nu=[],ru=[],au=null,ou=0,iu=null,lu=-1,uu=0,su=0,cu=null,fu=!1;function du(){return 0!=(48&Rl)?$a():-1!==lu?lu:lu=$a()}function pu(e){if(0==(2&(e=e.mode)))return 1;if(0==(4&e))return 99===qa()?1:2;if(0===uu&&(uu=zl),0!==Ka.transition){0!==su&&(su=null!==ql?ql.pendingLanes:0),e=uu;var t=4186112&~su;return 0===(t&=-t)&&(0===(t=(e=4186112&~e)&-e)&&(t=8192)),t}return e=qa(),0!=(4&Rl)&&98===e?e=zt(12,uu):e=zt(e=function(e){switch(e){case 99:return 15;case 98:return 10;case 97:case 96:return 8;case 95:return 2;default:return 0}}(e),uu),e}function mu(e,t,n){if(50<ou)throw ou=0,iu=null,Error(i(185));if(null===(e=hu(e,t)))return null;$t(e,t,n),e===Nl&&(Zl|=t,4===jl&&bu(e,Dl));var r=qa();1===t?0!=(8&Rl)&&0==(48&Rl)?yu(e):(gu(e,n),0===Rl&&(Vl(),Wa())):(0==(4&Rl)||98!==r&&99!==r||(null===au?au=new Set([e]):au.add(e)),gu(e,n)),ql=e}function hu(e,t){e.lanes|=t;var n=e.alternate;for(null!==n&&(n.lanes|=t),n=e,e=e.return;null!==e;)e.childLanes|=t,null!==(n=e.alternate)&&(n.childLanes|=t),n=e,e=e.return;return 3===n.tag?n.stateNode:null}function gu(e,t){for(var n=e.callbackNode,r=e.suspendedLanes,a=e.pingedLanes,o=e.expirationTimes,l=e.pendingLanes;0<l;){var u=31-qt(l),s=1<<u,c=o[u];if(-1===c){if(0==(s&r)||0!=(s&a)){c=t,Ft(s);var f=Mt;o[u]=10<=f?c+250:6<=f?c+5e3:-1}}else c<=t&&(e.expiredLanes|=s);l&=~s}if(r=jt(e,e===Nl?Dl:0),t=Mt,0===r)null!==n&&(n!==Fa&&Ta(n),e.callbackNode=null,e.callbackPriority=0);else{if(null!==n){if(e.callbackPriority===t)return;n!==Fa&&Ta(n)}15===t?(n=yu.bind(null,e),null===Ba?(Ba=[n],za=Ca(Ra,Ya)):Ba.push(n),n=Fa):14===t?n=Va(99,yu.bind(null,e)):(n=function(e){switch(e){case 15:case 14:return 99;case 13:case 12:case 11:case 10:return 98;case 9:case 8:case 7:case 6:case 4:case 5:return 97;case 3:case 2:case 1:return 95;case 0:return 90;default:throw Error(i(358,e))}}(t),n=Va(n,vu.bind(null,e))),e.callbackPriority=t,e.callbackNode=n}}function vu(e){if(lu=-1,su=uu=0,0!=(48&Rl))throw Error(i(327));var t=e.callbackNode;if(Du()&&e.callbackNode!==t)return null;var n=jt(e,e===Nl?Dl:0);if(0===n)return null;var r=n,a=Rl;Rl|=16;var o=Cu();for(Nl===e&&Dl===r||(Vl(),xu(e,r));;)try{Ou();break}catch(u){_u(e,u)}if(no(),Ll.current=o,Rl=a,null!==Il?r=0:(Nl=null,Dl=0,r=jl),0!=(zl&Zl))xu(e,0);else if(0!==r){if(2===r&&(Rl|=64,e.hydrate&&(e.hydrate=!1,Vr(e.containerInfo)),0!==(n=Bt(e))&&(r=Tu(e,n))),1===r)throw t=Bl,xu(e,0),bu(e,n),gu(e,$a()),t;switch(e.finishedWork=e.current.alternate,e.finishedLanes=n,r){case 0:case 1:throw Error(i(345));case 2:case 5:Ru(e);break;case 3:if(bu(e,n),(62914560&n)===n&&10<(r=Gl+500-$a())){if(0!==jt(e,0))break;if(((a=e.suspendedLanes)&n)!==n){du(),e.pingedLanes|=e.suspendedLanes&a;break}e.timeoutHandle=Gr(Ru.bind(null,e),r);break}Ru(e);break;case 4:if(bu(e,n),(4186112&n)===n)break;for(r=e.eventTimes,a=-1;0<n;){var l=31-qt(n);o=1<<l,(l=r[l])>a&&(a=l),n&=~o}if(n=a,10<(n=(120>(n=$a()-n)?120:480>n?480:1080>n?1080:1920>n?1920:3e3>n?3e3:4320>n?4320:1960*Ol(n/1960))-n)){e.timeoutHandle=Gr(Ru.bind(null,e),n);break}Ru(e);break;default:throw Error(i(329))}}return gu(e,$a()),e.callbackNode===t?vu.bind(null,e):null}function bu(e,t){for(t&=~$l,t&=~Zl,e.suspendedLanes|=t,e.pingedLanes&=~t,e=e.expirationTimes;0<t;){var n=31-qt(t),r=1<<n;e[n]=-1,t&=~r}}function yu(e){if(0!=(48&Rl))throw Error(i(327));if(Du(),e===Nl&&0!=(e.expiredLanes&Dl)){var t=Dl,n=Tu(e,t);0!=(zl&Zl)&&(n=Tu(e,t=jt(e,t)))}else n=Tu(e,t=jt(e,0));if(0!==e.tag&&2===n&&(Rl|=64,e.hydrate&&(e.hydrate=!1,Vr(e.containerInfo)),0!==(t=Bt(e))&&(n=Tu(e,t))),1===n)throw n=Bl,xu(e,0),bu(e,t),gu(e,$a()),n;return e.finishedWork=e.current.alternate,e.finishedLanes=t,Ru(e),gu(e,$a()),null}function wu(e,t){var n=Rl;Rl|=1;try{return e(t)}finally{0===(Rl=n)&&(Vl(),Wa())}}function ku(e,t){var n=Rl;Rl&=-2,Rl|=8;try{return e(t)}finally{0===(Rl=n)&&(Vl(),Wa())}}function Eu(e,t){fa(Fl,Ml),Ml|=t,zl|=t}function Su(){Ml=Fl.current,ca(Fl)}function xu(e,t){e.finishedWork=null,e.finishedLanes=0;var n=e.timeoutHandle;if(-1!==n&&(e.timeoutHandle=-1,Hr(n)),null!==Il)for(n=Il.return;null!==n;){var r=n;switch(r.tag){case 1:null!=(r=r.type.childContextTypes)&&ba();break;case 3:Do(),ca(ma),ca(pa),Ko();break;case 5:Fo(r);break;case 4:Do();break;case 13:case 19:ca(jo);break;case 10:ro(r);break;case 23:case 24:Su()}n=n.return}Nl=e,Il=Hu(e.current,null),Dl=Ml=zl=t,jl=0,Bl=null,$l=Zl=Ul=0}function _u(e,t){for(;;){var n=Il;try{if(no(),Qo.current=Ri,ri){for(var r=ei.memoizedState;null!==r;){var a=r.queue;null!==a&&(a.pending=null),r=r.next}ri=!1}if(Jo=0,ni=ti=ei=null,ai=!1,Pl.current=null,null===n||null===n.return){jl=1,Bl=t,Il=null;break}e:{var o=e,i=n.return,l=n,u=t;if(t=Dl,l.flags|=2048,l.firstEffect=l.lastEffect=null,null!==u&&"object"==typeof u&&"function"==typeof u.then){var s=u;if(0==(2&l.mode)){var c=l.alternate;c?(l.updateQueue=c.updateQueue,l.memoizedState=c.memoizedState,l.lanes=c.lanes):(l.updateQueue=null,l.memoizedState=null)}var f=0!=(1&jo.current),d=i;do{var p;if(p=13===d.tag){var m=d.memoizedState;if(null!==m)p=null!==m.dehydrated;else{var h=d.memoizedProps;p=void 0!==h.fallback&&(!0!==h.unstable_avoidThisFallback||!f)}}if(p){var g=d.updateQueue;if(null===g){var v=new Set;v.add(s),d.updateQueue=v}else g.add(s);if(0==(2&d.mode)){if(d.flags|=64,l.flags|=16384,l.flags&=-2981,1===l.tag)if(null===l.alternate)l.tag=17;else{var b=co(-1,1);b.tag=2,fo(l,b)}l.lanes|=1;break e}u=void 0,l=t;var y=o.pingCache;if(null===y?(y=o.pingCache=new fl,u=new Set,y.set(s,u)):void 0===(u=y.get(s))&&(u=new Set,y.set(s,u)),!u.has(l)){u.add(l);var w=Uu.bind(null,o,s,l);s.then(w,w)}d.flags|=4096,d.lanes=t;break e}d=d.return}while(null!==d);u=Error((V(l.type)||"A React component")+" suspended while rendering, but no fallback UI was specified.\n\nAdd a <Suspense fallback=...> component higher in the tree to provide a loading indicator or placeholder to display.")}5!==jl&&(jl=2),u=sl(u,l),d=i;do{switch(d.tag){case 3:o=u,d.flags|=4096,t&=-t,d.lanes|=t,po(d,dl(0,o,t));break e;case 1:o=u;var k=d.type,E=d.stateNode;if(0==(64&d.flags)&&("function"==typeof k.getDerivedStateFromError||null!==E&&"function"==typeof E.componentDidCatch&&(null===Xl||!Xl.has(E)))){d.flags|=4096,t&=-t,d.lanes|=t,po(d,pl(d,o,t));break e}}d=d.return}while(null!==d)}Pu(n)}catch(S){t=S,Il===n&&null!==n&&(Il=n=n.return);continue}break}}function Cu(){var e=Ll.current;return Ll.current=Ri,null===e?Ri:e}function Tu(e,t){var n=Rl;Rl|=16;var r=Cu();for(Nl===e&&Dl===t||xu(e,t);;)try{Au();break}catch(a){_u(e,a)}if(no(),Rl=n,Ll.current=r,null!==Il)throw Error(i(261));return Nl=null,Dl=0,jl}function Au(){for(;null!==Il;)Lu(Il)}function Ou(){for(;null!==Il&&!Aa();)Lu(Il)}function Lu(e){var t=Wl(e.alternate,e,Ml);e.memoizedProps=e.pendingProps,null===t?Pu(e):Il=t,Pl.current=null}function Pu(e){var t=e;do{var n=t.alternate;if(e=t.return,0==(2048&t.flags)){if(null!==(n=ll(n,t,Ml)))return void(Il=n);if(24!==(n=t).tag&&23!==n.tag||null===n.memoizedState||0!=(1073741824&Ml)||0==(4&n.mode)){for(var r=0,a=n.child;null!==a;)r|=a.lanes|a.childLanes,a=a.sibling;n.childLanes=r}null!==e&&0==(2048&e.flags)&&(null===e.firstEffect&&(e.firstEffect=t.firstEffect),null!==t.lastEffect&&(null!==e.lastEffect&&(e.lastEffect.nextEffect=t.firstEffect),e.lastEffect=t.lastEffect),1<t.flags&&(null!==e.lastEffect?e.lastEffect.nextEffect=t:e.firstEffect=t,e.lastEffect=t))}else{if(null!==(n=ul(t)))return n.flags&=2047,void(Il=n);null!==e&&(e.firstEffect=e.lastEffect=null,e.flags|=2048)}if(null!==(t=t.sibling))return void(Il=t);Il=t=e}while(null!==t);0===jl&&(jl=5)}function Ru(e){var t=qa();return Ha(99,Nu.bind(null,e,t)),null}function Nu(e,t){do{Du()}while(null!==eu);if(0!=(48&Rl))throw Error(i(327));var n=e.finishedWork;if(null===n)return null;if(e.finishedWork=null,e.finishedLanes=0,n===e.current)throw Error(i(177));e.callbackNode=null;var r=n.lanes|n.childLanes,a=r,o=e.pendingLanes&~a;e.pendingLanes=a,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=a,e.mutableReadLanes&=a,e.entangledLanes&=a,a=e.entanglements;for(var l=e.eventTimes,u=e.expirationTimes;0<o;){var s=31-qt(o),c=1<<s;a[s]=0,l[s]=-1,u[s]=-1,o&=~c}if(null!==au&&0==(24&r)&&au.has(e)&&au.delete(e),e===Nl&&(Il=Nl=null,Dl=0),1<n.flags?null!==n.lastEffect?(n.lastEffect.nextEffect=n,r=n.firstEffect):r=n:r=n.firstEffect,null!==r){if(a=Rl,Rl|=32,Pl.current=null,Ur=Yt,vr(l=gr())){if("selectionStart"in l)u={start:l.selectionStart,end:l.selectionEnd};else e:if(u=(u=l.ownerDocument)&&u.defaultView||window,(c=u.getSelection&&u.getSelection())&&0!==c.rangeCount){u=c.anchorNode,o=c.anchorOffset,s=c.focusNode,c=c.focusOffset;try{u.nodeType,s.nodeType}catch(C){u=null;break e}var f=0,d=-1,p=-1,m=0,h=0,g=l,v=null;t:for(;;){for(var b;g!==u||0!==o&&3!==g.nodeType||(d=f+o),g!==s||0!==c&&3!==g.nodeType||(p=f+c),3===g.nodeType&&(f+=g.nodeValue.length),null!==(b=g.firstChild);)v=g,g=b;for(;;){if(g===l)break t;if(v===u&&++m===o&&(d=f),v===s&&++h===c&&(p=f),null!==(b=g.nextSibling))break;v=(g=v).parentNode}g=b}u=-1===d||-1===p?null:{start:d,end:p}}else u=null;u=u||{start:0,end:0}}else u=null;Zr={focusedElem:l,selectionRange:u},Yt=!1,cu=null,fu=!1,Yl=r;do{try{Iu()}catch(C){if(null===Yl)throw Error(i(330));zu(Yl,C),Yl=Yl.nextEffect}}while(null!==Yl);cu=null,Yl=r;do{try{for(l=e;null!==Yl;){var y=Yl.flags;if(16&y&&be(Yl.stateNode,""),128&y){var w=Yl.alternate;if(null!==w){var k=w.ref;null!==k&&("function"==typeof k?k(null):k.current=null)}}switch(1038&y){case 2:El(Yl),Yl.flags&=-3;break;case 6:El(Yl),Yl.flags&=-3,Cl(Yl.alternate,Yl);break;case 1024:Yl.flags&=-1025;break;case 1028:Yl.flags&=-1025,Cl(Yl.alternate,Yl);break;case 4:Cl(Yl.alternate,Yl);break;case 8:_l(l,u=Yl);var E=u.alternate;wl(u),null!==E&&wl(E)}Yl=Yl.nextEffect}}catch(C){if(null===Yl)throw Error(i(330));zu(Yl,C),Yl=Yl.nextEffect}}while(null!==Yl);if(k=Zr,w=gr(),y=k.focusedElem,l=k.selectionRange,w!==y&&y&&y.ownerDocument&&hr(y.ownerDocument.documentElement,y)){null!==l&&vr(y)&&(w=l.start,void 0===(k=l.end)&&(k=w),"selectionStart"in y?(y.selectionStart=w,y.selectionEnd=Math.min(k,y.value.length)):(k=(w=y.ownerDocument||document)&&w.defaultView||window).getSelection&&(k=k.getSelection(),u=y.textContent.length,E=Math.min(l.start,u),l=void 0===l.end?E:Math.min(l.end,u),!k.extend&&E>l&&(u=l,l=E,E=u),u=mr(y,E),o=mr(y,l),u&&o&&(1!==k.rangeCount||k.anchorNode!==u.node||k.anchorOffset!==u.offset||k.focusNode!==o.node||k.focusOffset!==o.offset)&&((w=w.createRange()).setStart(u.node,u.offset),k.removeAllRanges(),E>l?(k.addRange(w),k.extend(o.node,o.offset)):(w.setEnd(o.node,o.offset),k.addRange(w))))),w=[];for(k=y;k=k.parentNode;)1===k.nodeType&&w.push({element:k,left:k.scrollLeft,top:k.scrollTop});for("function"==typeof y.focus&&y.focus(),y=0;y<w.length;y++)(k=w[y]).element.scrollLeft=k.left,k.element.scrollTop=k.top}Yt=!!Ur,Zr=Ur=null,e.current=n,Yl=r;do{try{for(y=e;null!==Yl;){var S=Yl.flags;if(36&S&&vl(y,Yl.alternate,Yl),128&S){w=void 0;var x=Yl.ref;if(null!==x){var _=Yl.stateNode;Yl.tag,w=_,"function"==typeof x?x(w):x.current=w}}Yl=Yl.nextEffect}}catch(C){if(null===Yl)throw Error(i(330));zu(Yl,C),Yl=Yl.nextEffect}}while(null!==Yl);Yl=null,ja(),Rl=a}else e.current=n;if(Jl)Jl=!1,eu=e,tu=t;else for(Yl=r;null!==Yl;)t=Yl.nextEffect,Yl.nextEffect=null,8&Yl.flags&&((S=Yl).sibling=null,S.stateNode=null),Yl=t;if(0===(r=e.pendingLanes)&&(Xl=null),1===r?e===iu?ou++:(ou=0,iu=e):ou=0,n=n.stateNode,xa&&"function"==typeof xa.onCommitFiberRoot)try{xa.onCommitFiberRoot(Sa,n,void 0,64==(64&n.current.flags))}catch(C){}if(gu(e,$a()),Kl)throw Kl=!1,e=Ql,Ql=null,e;return 0!=(8&Rl)||Wa(),null}function Iu(){for(;null!==Yl;){var e=Yl.alternate;fu||null===cu||(0!=(8&Yl.flags)?et(Yl,cu)&&(fu=!0):13===Yl.tag&&Al(e,Yl)&&et(Yl,cu)&&(fu=!0));var t=Yl.flags;0!=(256&t)&&gl(e,Yl),0==(512&t)||Jl||(Jl=!0,Va(97,(function(){return Du(),null}))),Yl=Yl.nextEffect}}function Du(){if(90!==tu){var e=97<tu?97:tu;return tu=90,Ha(e,ju)}return!1}function Mu(e,t){nu.push(t,e),Jl||(Jl=!0,Va(97,(function(){return Du(),null})))}function Fu(e,t){ru.push(t,e),Jl||(Jl=!0,Va(97,(function(){return Du(),null})))}function ju(){if(null===eu)return!1;var e=eu;if(eu=null,0!=(48&Rl))throw Error(i(331));var t=Rl;Rl|=32;var n=ru;ru=[];for(var r=0;r<n.length;r+=2){var a=n[r],o=n[r+1],l=a.destroy;if(a.destroy=void 0,"function"==typeof l)try{l()}catch(s){if(null===o)throw Error(i(330));zu(o,s)}}for(n=nu,nu=[],r=0;r<n.length;r+=2){a=n[r],o=n[r+1];try{var u=a.create;a.destroy=u()}catch(s){if(null===o)throw Error(i(330));zu(o,s)}}for(u=e.current.firstEffect;null!==u;)e=u.nextEffect,u.nextEffect=null,8&u.flags&&(u.sibling=null,u.stateNode=null),u=e;return Rl=t,Wa(),!0}function Bu(e,t,n){fo(e,t=dl(0,t=sl(n,t),1)),t=du(),null!==(e=hu(e,1))&&($t(e,1,t),gu(e,t))}function zu(e,t){if(3===e.tag)Bu(e,e,t);else for(var n=e.return;null!==n;){if(3===n.tag){Bu(n,e,t);break}if(1===n.tag){var r=n.stateNode;if("function"==typeof n.type.getDerivedStateFromError||"function"==typeof r.componentDidCatch&&(null===Xl||!Xl.has(r))){var a=pl(n,e=sl(t,e),1);if(fo(n,a),a=du(),null!==(n=hu(n,1)))$t(n,1,a),gu(n,a);else if("function"==typeof r.componentDidCatch&&(null===Xl||!Xl.has(r)))try{r.componentDidCatch(t,e)}catch(o){}break}}n=n.return}}function Uu(e,t,n){var r=e.pingCache;null!==r&&r.delete(t),t=du(),e.pingedLanes|=e.suspendedLanes&n,Nl===e&&(Dl&n)===n&&(4===jl||3===jl&&(62914560&Dl)===Dl&&500>$a()-Gl?xu(e,0):$l|=n),gu(e,t)}function Zu(e,t){var n=e.stateNode;null!==n&&n.delete(t),0===(t=0)&&(0==(2&(t=e.mode))?t=1:0==(4&t)?t=99===qa()?1:2:(0===uu&&(uu=zl),0===(t=Ut(62914560&~uu))&&(t=4194304))),n=du(),null!==(e=hu(e,t))&&($t(e,t,n),gu(e,n))}function $u(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.flags=0,this.lastEffect=this.firstEffect=this.nextEffect=null,this.childLanes=this.lanes=0,this.alternate=null}function qu(e,t,n,r){return new $u(e,t,n,r)}function Gu(e){return!(!(e=e.prototype)||!e.isReactComponent)}function Hu(e,t){var n=e.alternate;return null===n?((n=qu(e.tag,t,e.key,e.mode)).elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.nextEffect=null,n.firstEffect=null,n.lastEffect=null),n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=null===t?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Vu(e,t,n,r,a,o){var l=2;if(r=e,"function"==typeof e)Gu(e)&&(l=1);else if("string"==typeof e)l=5;else e:switch(e){case x:return Wu(n.children,a,o,t);case M:l=8,a|=16;break;case _:l=8,a|=1;break;case C:return(e=qu(12,n,t,8|a)).elementType=C,e.type=C,e.lanes=o,e;case L:return(e=qu(13,n,t,a)).type=L,e.elementType=L,e.lanes=o,e;case P:return(e=qu(19,n,t,a)).elementType=P,e.lanes=o,e;case F:return Yu(n,a,o,t);case j:return(e=qu(24,n,t,a)).elementType=j,e.lanes=o,e;default:if("object"==typeof e&&null!==e)switch(e.$$typeof){case T:l=10;break e;case A:l=9;break e;case O:l=11;break e;case R:l=14;break e;case N:l=16,r=null;break e;case I:l=22;break e}throw Error(i(130,null==e?e:typeof e,""))}return(t=qu(l,n,t,a)).elementType=e,t.type=r,t.lanes=o,t}function Wu(e,t,n,r){return(e=qu(7,e,r,t)).lanes=n,e}function Yu(e,t,n,r){return(e=qu(23,e,r,t)).elementType=F,e.lanes=n,e}function Ku(e,t,n){return(e=qu(6,e,null,t)).lanes=n,e}function Qu(e,t,n){return(t=qu(4,null!==e.children?e.children:[],e.key,t)).lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function Xu(e,t,n){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.pendingContext=this.context=null,this.hydrate=n,this.callbackNode=null,this.callbackPriority=0,this.eventTimes=Zt(0),this.expirationTimes=Zt(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Zt(0),this.mutableSourceEagerHydrationData=null}function Ju(e,t,n){var r=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:S,key:null==r?null:""+r,children:e,containerInfo:t,implementation:n}}function es(e,t,n,r){var a=t.current,o=du(),l=pu(a);e:if(n){t:{if(Ke(n=n._reactInternals)!==n||1!==n.tag)throw Error(i(170));var u=n;do{switch(u.tag){case 3:u=u.stateNode.context;break t;case 1:if(va(u.type)){u=u.stateNode.__reactInternalMemoizedMergedChildContext;break t}}u=u.return}while(null!==u);throw Error(i(171))}if(1===n.tag){var s=n.type;if(va(s)){n=wa(n,s,u);break e}}n=u}else n=da;return null===t.context?t.context=n:t.pendingContext=n,(t=co(o,l)).payload={element:e},null!==(r=void 0===r?null:r)&&(t.callback=r),fo(a,t),mu(a,l,o),l}function ts(e){return(e=e.current).child?(e.child.tag,e.child.stateNode):null}function ns(e,t){if(null!==(e=e.memoizedState)&&null!==e.dehydrated){var n=e.retryLane;e.retryLane=0!==n&&n<t?n:t}}function rs(e,t){ns(e,t),(e=e.alternate)&&ns(e,t)}function as(e,t,n){var r=null!=n&&null!=n.hydrationOptions&&n.hydrationOptions.mutableSources||null;if(n=new Xu(e,t,null!=n&&!0===n.hydrate),t=qu(3,null,null,2===t?7:1===t?3:0),n.current=t,t.stateNode=n,uo(t),e[ea]=n.current,Rr(8===e.nodeType?e.parentNode:e),r)for(e=0;e<r.length;e++){var a=(t=r[e])._getVersion;a=a(t._source),null==n.mutableSourceEagerHydrationData?n.mutableSourceEagerHydrationData=[t,a]:n.mutableSourceEagerHydrationData.push(t,a)}this._internalRoot=n}function os(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType&&(8!==e.nodeType||" react-mount-point-unstable "!==e.nodeValue))}function is(e,t,n,r,a){var o=n._reactRootContainer;if(o){var i=o._internalRoot;if("function"==typeof a){var l=a;a=function(){var e=ts(i);l.call(e)}}es(t,i,e,a)}else{if(o=n._reactRootContainer=function(e,t){if(t||(t=!(!(t=e?9===e.nodeType?e.documentElement:e.firstChild:null)||1!==t.nodeType||!t.hasAttribute("data-reactroot"))),!t)for(var n;n=e.lastChild;)e.removeChild(n);return new as(e,0,t?{hydrate:!0}:void 0)}(n,r),i=o._internalRoot,"function"==typeof a){var u=a;a=function(){var e=ts(i);u.call(e)}}ku((function(){es(t,i,e,a)}))}return ts(i)}function ls(e,t){var n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!os(t))throw Error(i(200));return Ju(e,t,null,n)}Wl=function(e,t,n){var r=t.lanes;if(null!==e)if(e.memoizedProps!==t.pendingProps||ma.current)Fi=!0;else{if(0==(n&r)){switch(Fi=!1,t.tag){case 3:Vi(t),Wo();break;case 5:Mo(t);break;case 1:va(t.type)&&ka(t);break;case 4:Io(t,t.stateNode.containerInfo);break;case 10:r=t.memoizedProps.value;var a=t.type._context;fa(Xa,a._currentValue),a._currentValue=r;break;case 13:if(null!==t.memoizedState)return 0!=(n&t.child.childLanes)?Xi(e,t,n):(fa(jo,1&jo.current),null!==(t=ol(e,t,n))?t.sibling:null);fa(jo,1&jo.current);break;case 19:if(r=0!=(n&t.childLanes),0!=(64&e.flags)){if(r)return al(e,t,n);t.flags|=64}if(null!==(a=t.memoizedState)&&(a.rendering=null,a.tail=null,a.lastEffect=null),fa(jo,jo.current),r)break;return null;case 23:case 24:return t.lanes=0,Zi(e,t,n)}return ol(e,t,n)}Fi=0!=(16384&e.flags)}else Fi=!1;switch(t.lanes=0,t.tag){case 2:if(r=t.type,null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),e=t.pendingProps,a=ga(t,pa.current),oo(t,n),a=li(null,t,r,e,a,n),t.flags|=1,"object"==typeof a&&null!==a&&"function"==typeof a.render&&void 0===a.$$typeof){if(t.tag=1,t.memoizedState=null,t.updateQueue=null,va(r)){var o=!0;ka(t)}else o=!1;t.memoizedState=null!==a.state&&void 0!==a.state?a.state:null,uo(t);var l=r.getDerivedStateFromProps;"function"==typeof l&&vo(t,r,l,e),a.updater=bo,t.stateNode=a,a._reactInternals=t,Eo(t,r,e,n),t=Hi(null,t,r,!0,o,n)}else t.tag=0,ji(null,t,a,n),t=t.child;return t;case 16:a=t.elementType;e:{switch(null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),e=t.pendingProps,a=(o=a._init)(a._payload),t.type=a,o=t.tag=function(e){if("function"==typeof e)return Gu(e)?1:0;if(null!=e){if((e=e.$$typeof)===O)return 11;if(e===R)return 14}return 2}(a),e=Qa(a,e),o){case 0:t=qi(null,t,a,e,n);break e;case 1:t=Gi(null,t,a,e,n);break e;case 11:t=Bi(null,t,a,e,n);break e;case 14:t=zi(null,t,a,Qa(a.type,e),r,n);break e}throw Error(i(306,a,""))}return t;case 0:return r=t.type,a=t.pendingProps,qi(e,t,r,a=t.elementType===r?a:Qa(r,a),n);case 1:return r=t.type,a=t.pendingProps,Gi(e,t,r,a=t.elementType===r?a:Qa(r,a),n);case 3:if(Vi(t),r=t.updateQueue,null===e||null===r)throw Error(i(282));if(r=t.pendingProps,a=null!==(a=t.memoizedState)?a.element:null,so(e,t),mo(t,r,null,n),(r=t.memoizedState.element)===a)Wo(),t=ol(e,t,n);else{if((o=(a=t.stateNode).hydrate)&&(Uo=Wr(t.stateNode.containerInfo.firstChild),zo=t,o=Zo=!0),o){if(null!=(e=a.mutableSourceEagerHydrationData))for(a=0;a<e.length;a+=2)(o=e[a])._workInProgressVersionPrimary=e[a+1],Yo.push(o);for(n=Ao(t,null,r,n),t.child=n;n;)n.flags=-3&n.flags|1024,n=n.sibling}else ji(e,t,r,n),Wo();t=t.child}return t;case 5:return Mo(t),null===e&&Go(t),r=t.type,a=t.pendingProps,o=null!==e?e.memoizedProps:null,l=a.children,qr(r,a)?l=null:null!==o&&qr(r,o)&&(t.flags|=16),$i(e,t),ji(e,t,l,n),t.child;case 6:return null===e&&Go(t),null;case 13:return Xi(e,t,n);case 4:return Io(t,t.stateNode.containerInfo),r=t.pendingProps,null===e?t.child=To(t,null,r,n):ji(e,t,r,n),t.child;case 11:return r=t.type,a=t.pendingProps,Bi(e,t,r,a=t.elementType===r?a:Qa(r,a),n);case 7:return ji(e,t,t.pendingProps,n),t.child;case 8:case 12:return ji(e,t,t.pendingProps.children,n),t.child;case 10:e:{r=t.type._context,a=t.pendingProps,l=t.memoizedProps,o=a.value;var u=t.type._context;if(fa(Xa,u._currentValue),u._currentValue=o,null!==l)if(u=l.value,0===(o=cr(u,o)?0:0|("function"==typeof r._calculateChangedBits?r._calculateChangedBits(u,o):1073741823))){if(l.children===a.children&&!ma.current){t=ol(e,t,n);break e}}else for(null!==(u=t.child)&&(u.return=t);null!==u;){var s=u.dependencies;if(null!==s){l=u.child;for(var c=s.firstContext;null!==c;){if(c.context===r&&0!=(c.observedBits&o)){1===u.tag&&((c=co(-1,n&-n)).tag=2,fo(u,c)),u.lanes|=n,null!==(c=u.alternate)&&(c.lanes|=n),ao(u.return,n),s.lanes|=n;break}c=c.next}}else l=10===u.tag&&u.type===t.type?null:u.child;if(null!==l)l.return=u;else for(l=u;null!==l;){if(l===t){l=null;break}if(null!==(u=l.sibling)){u.return=l.return,l=u;break}l=l.return}u=l}ji(e,t,a.children,n),t=t.child}return t;case 9:return a=t.type,r=(o=t.pendingProps).children,oo(t,n),r=r(a=io(a,o.unstable_observedBits)),t.flags|=1,ji(e,t,r,n),t.child;case 14:return o=Qa(a=t.type,t.pendingProps),zi(e,t,a,o=Qa(a.type,o),r,n);case 15:return Ui(e,t,t.type,t.pendingProps,r,n);case 17:return r=t.type,a=t.pendingProps,a=t.elementType===r?a:Qa(r,a),null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),t.tag=1,va(r)?(e=!0,ka(t)):e=!1,oo(t,n),wo(t,r,a),Eo(t,r,a,n),Hi(null,t,r,!0,e,n);case 19:return al(e,t,n);case 23:case 24:return Zi(e,t,n)}throw Error(i(156,t.tag))},as.prototype.render=function(e){es(e,this._internalRoot,null,null)},as.prototype.unmount=function(){var e=this._internalRoot,t=e.containerInfo;es(null,e,null,(function(){t[ea]=null}))},tt=function(e){13===e.tag&&(mu(e,4,du()),rs(e,4))},nt=function(e){13===e.tag&&(mu(e,67108864,du()),rs(e,67108864))},rt=function(e){if(13===e.tag){var t=du(),n=pu(e);mu(e,n,t),rs(e,n)}},at=function(e,t){return t()},Te=function(e,t,n){switch(t){case"input":if(ne(e,n),t=n.name,"radio"===n.type&&null!=t){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll("input[name="+JSON.stringify(""+t)+'][type="radio"]'),t=0;t<n.length;t++){var r=n[t];if(r!==e&&r.form===e.form){var a=oa(r);if(!a)throw Error(i(90));Q(r),ne(r,a)}}}break;case"textarea":se(e,n);break;case"select":null!=(t=n.value)&&ie(e,!!n.multiple,t,!1)}},Ne=wu,Ie=function(e,t,n,r,a){var o=Rl;Rl|=4;try{return Ha(98,e.bind(null,t,n,r,a))}finally{0===(Rl=o)&&(Vl(),Wa())}},De=function(){0==(49&Rl)&&(function(){if(null!==au){var e=au;au=null,e.forEach((function(e){e.expiredLanes|=24&e.pendingLanes,gu(e,$a())}))}Wa()}(),Du())},Me=function(e,t){var n=Rl;Rl|=2;try{return e(t)}finally{0===(Rl=n)&&(Vl(),Wa())}};var us={Events:[ra,aa,oa,Pe,Re,Du,{current:!1}]},ss={findFiberByHostInstance:na,bundleType:0,version:"17.0.2",rendererPackageName:"react-dom"},cs={bundleType:ss.bundleType,version:ss.version,rendererPackageName:ss.rendererPackageName,rendererConfig:ss.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:k.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return null===(e=Je(e))?null:e.stateNode},findFiberByHostInstance:ss.findFiberByHostInstance||function(){return null},findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null};if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var fs=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!fs.isDisabled&&fs.supportsFiber)try{Sa=fs.inject(cs),xa=fs}catch(ge){}}t.hydrate=function(e,t,n){if(!os(t))throw Error(i(200));return is(null,e,t,!0,n)}},3935:function(e,t,n){"use strict";!function e(){if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}(),e.exports=n(4448)},9590:function(e){var t="undefined"!=typeof Element,n="function"==typeof Map,r="function"==typeof Set,a="function"==typeof ArrayBuffer&&!!ArrayBuffer.isView;function o(e,i){if(e===i)return!0;if(e&&i&&"object"==typeof e&&"object"==typeof i){if(e.constructor!==i.constructor)return!1;var l,u,s,c;if(Array.isArray(e)){if((l=e.length)!=i.length)return!1;for(u=l;0!=u--;)if(!o(e[u],i[u]))return!1;return!0}if(n&&e instanceof Map&&i instanceof Map){if(e.size!==i.size)return!1;for(c=e.entries();!(u=c.next()).done;)if(!i.has(u.value[0]))return!1;for(c=e.entries();!(u=c.next()).done;)if(!o(u.value[1],i.get(u.value[0])))return!1;return!0}if(r&&e instanceof Set&&i instanceof Set){if(e.size!==i.size)return!1;for(c=e.entries();!(u=c.next()).done;)if(!i.has(u.value[0]))return!1;return!0}if(a&&ArrayBuffer.isView(e)&&ArrayBuffer.isView(i)){if((l=e.length)!=i.length)return!1;for(u=l;0!=u--;)if(e[u]!==i[u])return!1;return!0}if(e.constructor===RegExp)return e.source===i.source&&e.flags===i.flags;if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===i.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===i.toString();if((l=(s=Object.keys(e)).length)!==Object.keys(i).length)return!1;for(u=l;0!=u--;)if(!Object.prototype.hasOwnProperty.call(i,s[u]))return!1;if(t&&e instanceof Element)return!1;for(u=l;0!=u--;)if(("_owner"!==s[u]&&"__v"!==s[u]&&"__o"!==s[u]||!e.$$typeof)&&!o(e[s[u]],i[s[u]]))return!1;return!0}return e!=e&&i!=i}e.exports=function(e,t){try{return o(e,t)}catch(n){if((n.message||"").match(/stack|recursion/i))return console.warn("react-fast-compare cannot handle circular refs"),!1;throw n}}},405:function(e,t,n){"use strict";n.d(t,{B6:function(){return G},ql:function(){return J}});var r=n(7294),a=n(5697),o=n.n(a),i=n(9590),l=n.n(i),u=n(1143),s=n.n(u),c=n(6774),f=n.n(c);function d(){return d=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},d.apply(this,arguments)}function p(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,m(e,t)}function m(e,t){return m=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},m(e,t)}function h(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)t.indexOf(n=o[r])>=0||(a[n]=e[n]);return a}var g={BASE:"base",BODY:"body",HEAD:"head",HTML:"html",LINK:"link",META:"meta",NOSCRIPT:"noscript",SCRIPT:"script",STYLE:"style",TITLE:"title",FRAGMENT:"Symbol(react.fragment)"},v={rel:["amphtml","canonical","alternate"]},b={type:["application/ld+json"]},y={charset:"",name:["robots","description"],property:["og:type","og:title","og:url","og:image","og:image:alt","og:description","twitter:url","twitter:title","twitter:description","twitter:image","twitter:image:alt","twitter:card","twitter:site"]},w=Object.keys(g).map((function(e){return g[e]})),k={accesskey:"accessKey",charset:"charSet",class:"className",contenteditable:"contentEditable",contextmenu:"contextMenu","http-equiv":"httpEquiv",itemprop:"itemProp",tabindex:"tabIndex"},E=Object.keys(k).reduce((function(e,t){return e[k[t]]=t,e}),{}),S=function(e,t){for(var n=e.length-1;n>=0;n-=1){var r=e[n];if(Object.prototype.hasOwnProperty.call(r,t))return r[t]}return null},x=function(e){var t=S(e,g.TITLE),n=S(e,"titleTemplate");if(Array.isArray(t)&&(t=t.join("")),n&&t)return n.replace(/%s/g,(function(){return t}));var r=S(e,"defaultTitle");return t||r||void 0},_=function(e){return S(e,"onChangeClientState")||function(){}},C=function(e,t){return t.filter((function(t){return void 0!==t[e]})).map((function(t){return t[e]})).reduce((function(e,t){return d({},e,t)}),{})},T=function(e,t){return t.filter((function(e){return void 0!==e[g.BASE]})).map((function(e){return e[g.BASE]})).reverse().reduce((function(t,n){if(!t.length)for(var r=Object.keys(n),a=0;a<r.length;a+=1){var o=r[a].toLowerCase();if(-1!==e.indexOf(o)&&n[o])return t.concat(n)}return t}),[])},A=function(e,t,n){var r={};return n.filter((function(t){return!!Array.isArray(t[e])||(void 0!==t[e]&&console&&"function"==typeof console.warn&&console.warn("Helmet: "+e+' should be of type "Array". Instead found type "'+typeof t[e]+'"'),!1)})).map((function(t){return t[e]})).reverse().reduce((function(e,n){var a={};n.filter((function(e){for(var n,o=Object.keys(e),i=0;i<o.length;i+=1){var l=o[i],u=l.toLowerCase();-1===t.indexOf(u)||"rel"===n&&"canonical"===e[n].toLowerCase()||"rel"===u&&"stylesheet"===e[u].toLowerCase()||(n=u),-1===t.indexOf(l)||"innerHTML"!==l&&"cssText"!==l&&"itemprop"!==l||(n=l)}if(!n||!e[n])return!1;var s=e[n].toLowerCase();return r[n]||(r[n]={}),a[n]||(a[n]={}),!r[n][s]&&(a[n][s]=!0,!0)})).reverse().forEach((function(t){return e.push(t)}));for(var o=Object.keys(a),i=0;i<o.length;i+=1){var l=o[i],u=d({},r[l],a[l]);r[l]=u}return e}),[]).reverse()},O=function(e,t){if(Array.isArray(e)&&e.length)for(var n=0;n<e.length;n+=1)if(e[n][t])return!0;return!1},L=function(e){return Array.isArray(e)?e.join(""):e},P=function(e,t){return Array.isArray(e)?e.reduce((function(e,n){return function(e,t){for(var n=Object.keys(e),r=0;r<n.length;r+=1)if(t[n[r]]&&t[n[r]].includes(e[n[r]]))return!0;return!1}(n,t)?e.priority.push(n):e.default.push(n),e}),{priority:[],default:[]}):{default:e}},R=function(e,t){var n;return d({},e,((n={})[t]=void 0,n))},N=[g.NOSCRIPT,g.SCRIPT,g.STYLE],I=function(e,t){return void 0===t&&(t=!0),!1===t?String(e):String(e).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#x27;")},D=function(e){return Object.keys(e).reduce((function(t,n){var r=void 0!==e[n]?n+'="'+e[n]+'"':""+n;return t?t+" "+r:r}),"")},M=function(e,t){return void 0===t&&(t={}),Object.keys(e).reduce((function(t,n){return t[k[n]||n]=e[n],t}),t)},F=function(e,t){return t.map((function(t,n){var a,o=((a={key:n})["data-rh"]=!0,a);return Object.keys(t).forEach((function(e){var n=k[e]||e;"innerHTML"===n||"cssText"===n?o.dangerouslySetInnerHTML={__html:t.innerHTML||t.cssText}:o[n]=t[e]})),r.createElement(e,o)}))},j=function(e,t,n){switch(e){case g.TITLE:return{toComponent:function(){return n=t.titleAttributes,(a={key:e=t.title})["data-rh"]=!0,o=M(n,a),[r.createElement(g.TITLE,o,e)];var e,n,a,o},toString:function(){return function(e,t,n,r){var a=D(n),o=L(t);return a?"<"+e+' data-rh="true" '+a+">"+I(o,r)+"</"+e+">":"<"+e+' data-rh="true">'+I(o,r)+"</"+e+">"}(e,t.title,t.titleAttributes,n)}};case"bodyAttributes":case"htmlAttributes":return{toComponent:function(){return M(t)},toString:function(){return D(t)}};default:return{toComponent:function(){return F(e,t)},toString:function(){return function(e,t,n){return t.reduce((function(t,r){var a=Object.keys(r).filter((function(e){return!("innerHTML"===e||"cssText"===e)})).reduce((function(e,t){var a=void 0===r[t]?t:t+'="'+I(r[t],n)+'"';return e?e+" "+a:a}),""),o=r.innerHTML||r.cssText||"",i=-1===N.indexOf(e);return t+"<"+e+' data-rh="true" '+a+(i?"/>":">"+o+"</"+e+">")}),"")}(e,t,n)}}}},B=function(e){var t=e.baseTag,n=e.bodyAttributes,r=e.encode,a=e.htmlAttributes,o=e.noscriptTags,i=e.styleTags,l=e.title,u=void 0===l?"":l,s=e.titleAttributes,c=e.linkTags,f=e.metaTags,d=e.scriptTags,p={toComponent:function(){},toString:function(){return""}};if(e.prioritizeSeoTags){var m=function(e){var t=e.linkTags,n=e.scriptTags,r=e.encode,a=P(e.metaTags,y),o=P(t,v),i=P(n,b);return{priorityMethods:{toComponent:function(){return[].concat(F(g.META,a.priority),F(g.LINK,o.priority),F(g.SCRIPT,i.priority))},toString:function(){return j(g.META,a.priority,r)+" "+j(g.LINK,o.priority,r)+" "+j(g.SCRIPT,i.priority,r)}},metaTags:a.default,linkTags:o.default,scriptTags:i.default}}(e);p=m.priorityMethods,c=m.linkTags,f=m.metaTags,d=m.scriptTags}return{priority:p,base:j(g.BASE,t,r),bodyAttributes:j("bodyAttributes",n,r),htmlAttributes:j("htmlAttributes",a,r),link:j(g.LINK,c,r),meta:j(g.META,f,r),noscript:j(g.NOSCRIPT,o,r),script:j(g.SCRIPT,d,r),style:j(g.STYLE,i,r),title:j(g.TITLE,{title:u,titleAttributes:s},r)}},z=[],U=function(e,t){var n=this;void 0===t&&(t="undefined"!=typeof document),this.instances=[],this.value={setHelmet:function(e){n.context.helmet=e},helmetInstances:{get:function(){return n.canUseDOM?z:n.instances},add:function(e){(n.canUseDOM?z:n.instances).push(e)},remove:function(e){var t=(n.canUseDOM?z:n.instances).indexOf(e);(n.canUseDOM?z:n.instances).splice(t,1)}}},this.context=e,this.canUseDOM=t,t||(e.helmet=B({baseTag:[],bodyAttributes:{},encodeSpecialCharacters:!0,htmlAttributes:{},linkTags:[],metaTags:[],noscriptTags:[],scriptTags:[],styleTags:[],title:"",titleAttributes:{}}))},Z=r.createContext({}),$=o().shape({setHelmet:o().func,helmetInstances:o().shape({get:o().func,add:o().func,remove:o().func})}),q="undefined"!=typeof document,G=function(e){function t(n){var r;return(r=e.call(this,n)||this).helmetData=new U(r.props.context,t.canUseDOM),r}return p(t,e),t.prototype.render=function(){return r.createElement(Z.Provider,{value:this.helmetData.value},this.props.children)},t}(r.Component);G.canUseDOM=q,G.propTypes={context:o().shape({helmet:o().shape()}),children:o().node.isRequired},G.defaultProps={context:{}},G.displayName="HelmetProvider";var H=function(e,t){var n,r=document.head||document.querySelector(g.HEAD),a=r.querySelectorAll(e+"[data-rh]"),o=[].slice.call(a),i=[];return t&&t.length&&t.forEach((function(t){var r=document.createElement(e);for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&("innerHTML"===a?r.innerHTML=t.innerHTML:"cssText"===a?r.styleSheet?r.styleSheet.cssText=t.cssText:r.appendChild(document.createTextNode(t.cssText)):r.setAttribute(a,void 0===t[a]?"":t[a]));r.setAttribute("data-rh","true"),o.some((function(e,t){return n=t,r.isEqualNode(e)}))?o.splice(n,1):i.push(r)})),o.forEach((function(e){return e.parentNode.removeChild(e)})),i.forEach((function(e){return r.appendChild(e)})),{oldTags:o,newTags:i}},V=function(e,t){var n=document.getElementsByTagName(e)[0];if(n){for(var r=n.getAttribute("data-rh"),a=r?r.split(","):[],o=[].concat(a),i=Object.keys(t),l=0;l<i.length;l+=1){var u=i[l],s=t[u]||"";n.getAttribute(u)!==s&&n.setAttribute(u,s),-1===a.indexOf(u)&&a.push(u);var c=o.indexOf(u);-1!==c&&o.splice(c,1)}for(var f=o.length-1;f>=0;f-=1)n.removeAttribute(o[f]);a.length===o.length?n.removeAttribute("data-rh"):n.getAttribute("data-rh")!==i.join(",")&&n.setAttribute("data-rh",i.join(","))}},W=function(e,t){var n=e.baseTag,r=e.htmlAttributes,a=e.linkTags,o=e.metaTags,i=e.noscriptTags,l=e.onChangeClientState,u=e.scriptTags,s=e.styleTags,c=e.title,f=e.titleAttributes;V(g.BODY,e.bodyAttributes),V(g.HTML,r),function(e,t){void 0!==e&&document.title!==e&&(document.title=L(e)),V(g.TITLE,t)}(c,f);var d={baseTag:H(g.BASE,n),linkTags:H(g.LINK,a),metaTags:H(g.META,o),noscriptTags:H(g.NOSCRIPT,i),scriptTags:H(g.SCRIPT,u),styleTags:H(g.STYLE,s)},p={},m={};Object.keys(d).forEach((function(e){var t=d[e],n=t.newTags,r=t.oldTags;n.length&&(p[e]=n),r.length&&(m[e]=d[e].oldTags)})),t&&t(),l(e,p,m)},Y=null,K=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),a=0;a<n;a++)r[a]=arguments[a];return(t=e.call.apply(e,[this].concat(r))||this).rendered=!1,t}p(t,e);var n=t.prototype;return n.shouldComponentUpdate=function(e){return!f()(e,this.props)},n.componentDidUpdate=function(){this.emitChange()},n.componentWillUnmount=function(){this.props.context.helmetInstances.remove(this),this.emitChange()},n.emitChange=function(){var e,t,n=this.props.context,r=n.setHelmet,a=null,o=(e=n.helmetInstances.get().map((function(e){var t=d({},e.props);return delete t.context,t})),{baseTag:T(["href"],e),bodyAttributes:C("bodyAttributes",e),defer:S(e,"defer"),encode:S(e,"encodeSpecialCharacters"),htmlAttributes:C("htmlAttributes",e),linkTags:A(g.LINK,["rel","href"],e),metaTags:A(g.META,["name","charset","http-equiv","property","itemprop"],e),noscriptTags:A(g.NOSCRIPT,["innerHTML"],e),onChangeClientState:_(e),scriptTags:A(g.SCRIPT,["src","innerHTML"],e),styleTags:A(g.STYLE,["cssText"],e),title:x(e),titleAttributes:C("titleAttributes",e),prioritizeSeoTags:O(e,"prioritizeSeoTags")});G.canUseDOM?(t=o,Y&&cancelAnimationFrame(Y),t.defer?Y=requestAnimationFrame((function(){W(t,(function(){Y=null}))})):(W(t),Y=null)):B&&(a=B(o)),r(a)},n.init=function(){this.rendered||(this.rendered=!0,this.props.context.helmetInstances.add(this),this.emitChange())},n.render=function(){return this.init(),null},t}(r.Component);K.propTypes={context:$.isRequired},K.displayName="HelmetDispatcher";var Q=["children"],X=["children"],J=function(e){function t(){return e.apply(this,arguments)||this}p(t,e);var n=t.prototype;return n.shouldComponentUpdate=function(e){return!l()(R(this.props,"helmetData"),R(e,"helmetData"))},n.mapNestedChildrenToProps=function(e,t){if(!t)return null;switch(e.type){case g.SCRIPT:case g.NOSCRIPT:return{innerHTML:t};case g.STYLE:return{cssText:t};default:throw new Error("<"+e.type+" /> elements are self-closing and can not contain children. Refer to our API for more information.")}},n.flattenArrayTypeChildren=function(e){var t,n=e.child,r=e.arrayTypeChildren;return d({},r,((t={})[n.type]=[].concat(r[n.type]||[],[d({},e.newChildProps,this.mapNestedChildrenToProps(n,e.nestedChildren))]),t))},n.mapObjectTypeChildren=function(e){var t,n,r=e.child,a=e.newProps,o=e.newChildProps,i=e.nestedChildren;switch(r.type){case g.TITLE:return d({},a,((t={})[r.type]=i,t.titleAttributes=d({},o),t));case g.BODY:return d({},a,{bodyAttributes:d({},o)});case g.HTML:return d({},a,{htmlAttributes:d({},o)});default:return d({},a,((n={})[r.type]=d({},o),n))}},n.mapArrayTypeChildrenToProps=function(e,t){var n=d({},t);return Object.keys(e).forEach((function(t){var r;n=d({},n,((r={})[t]=e[t],r))})),n},n.warnOnInvalidChildren=function(e,t){return s()(w.some((function(t){return e.type===t})),"function"==typeof e.type?"You may be attempting to nest <Helmet> components within each other, which is not allowed. Refer to our API for more information.":"Only elements types "+w.join(", ")+" are allowed. Helmet does not support rendering <"+e.type+"> elements. Refer to our API for more information."),s()(!t||"string"==typeof t||Array.isArray(t)&&!t.some((function(e){return"string"!=typeof e})),"Helmet expects a string as a child of <"+e.type+">. Did you forget to wrap your children in braces? ( <"+e.type+">{``}</"+e.type+"> ) Refer to our API for more information."),!0},n.mapChildrenToProps=function(e,t){var n=this,a={};return r.Children.forEach(e,(function(e){if(e&&e.props){var r=e.props,o=r.children,i=h(r,Q),l=Object.keys(i).reduce((function(e,t){return e[E[t]||t]=i[t],e}),{}),u=e.type;switch("symbol"==typeof u?u=u.toString():n.warnOnInvalidChildren(e,o),u){case g.FRAGMENT:t=n.mapChildrenToProps(o,t);break;case g.LINK:case g.META:case g.NOSCRIPT:case g.SCRIPT:case g.STYLE:a=n.flattenArrayTypeChildren({child:e,arrayTypeChildren:a,newChildProps:l,nestedChildren:o});break;default:t=n.mapObjectTypeChildren({child:e,newProps:t,newChildProps:l,nestedChildren:o})}}})),this.mapArrayTypeChildrenToProps(a,t)},n.render=function(){var e=this.props,t=e.children,n=h(e,X),a=d({},n),o=n.helmetData;return t&&(a=this.mapChildrenToProps(t,a)),!o||o instanceof U||(o=new U(o.context,o.instances)),o?r.createElement(K,d({},a,{context:o.value,helmetData:void 0})):r.createElement(Z.Consumer,null,(function(e){return r.createElement(K,d({},a,{context:e}))}))},t}(r.Component);J.propTypes={base:o().object,bodyAttributes:o().object,children:o().oneOfType([o().arrayOf(o().node),o().node]),defaultTitle:o().string,defer:o().bool,encodeSpecialCharacters:o().bool,htmlAttributes:o().object,link:o().arrayOf(o().object),meta:o().arrayOf(o().object),noscript:o().arrayOf(o().object),onChangeClientState:o().func,script:o().arrayOf(o().object),style:o().arrayOf(o().object),title:o().string,titleAttributes:o().object,titleTemplate:o().string,prioritizeSeoTags:o().bool,helmetData:o().object},J.defaultProps={defer:!0,encodeSpecialCharacters:!0,prioritizeSeoTags:!1},J.displayName="Helmet"},9921:function(e,t){"use strict";var n="function"==typeof Symbol&&Symbol.for,r=n?Symbol.for("react.element"):60103,a=n?Symbol.for("react.portal"):60106,o=n?Symbol.for("react.fragment"):60107,i=n?Symbol.for("react.strict_mode"):60108,l=n?Symbol.for("react.profiler"):60114,u=n?Symbol.for("react.provider"):60109,s=n?Symbol.for("react.context"):60110,c=n?Symbol.for("react.async_mode"):60111,f=n?Symbol.for("react.concurrent_mode"):60111,d=n?Symbol.for("react.forward_ref"):60112,p=n?Symbol.for("react.suspense"):60113,m=n?Symbol.for("react.suspense_list"):60120,h=n?Symbol.for("react.memo"):60115,g=n?Symbol.for("react.lazy"):60116,v=n?Symbol.for("react.block"):60121,b=n?Symbol.for("react.fundamental"):60117,y=n?Symbol.for("react.responder"):60118,w=n?Symbol.for("react.scope"):60119;function k(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case r:switch(e=e.type){case c:case f:case o:case l:case i:case p:return e;default:switch(e=e&&e.$$typeof){case s:case d:case g:case h:case u:return e;default:return t}}case a:return t}}}function E(e){return k(e)===f}t.AsyncMode=c,t.ConcurrentMode=f,t.ContextConsumer=s,t.ContextProvider=u,t.Element=r,t.ForwardRef=d,t.Fragment=o,t.Lazy=g,t.Memo=h,t.Portal=a,t.Profiler=l,t.StrictMode=i,t.Suspense=p,t.isAsyncMode=function(e){return E(e)||k(e)===c},t.isConcurrentMode=E,t.isContextConsumer=function(e){return k(e)===s},t.isContextProvider=function(e){return k(e)===u},t.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===r},t.isForwardRef=function(e){return k(e)===d},t.isFragment=function(e){return k(e)===o},t.isLazy=function(e){return k(e)===g},t.isMemo=function(e){return k(e)===h},t.isPortal=function(e){return k(e)===a},t.isProfiler=function(e){return k(e)===l},t.isStrictMode=function(e){return k(e)===i},t.isSuspense=function(e){return k(e)===p},t.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===o||e===f||e===l||e===i||e===p||e===m||"object"==typeof e&&null!==e&&(e.$$typeof===g||e.$$typeof===h||e.$$typeof===u||e.$$typeof===s||e.$$typeof===d||e.$$typeof===b||e.$$typeof===y||e.$$typeof===w||e.$$typeof===v)},t.typeOf=k},9864:function(e,t,n){"use strict";e.exports=n(9921)},8356:function(e,t,n){"use strict";function r(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}function a(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(){return i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},i.apply(this,arguments)}var l=n(7294),u=n(5697),s=[],c=[];function f(e){var t=e(),n={loading:!0,loaded:null,error:null};return n.promise=t.then((function(e){return n.loading=!1,n.loaded=e,e})).catch((function(e){throw n.loading=!1,n.error=e,e})),n}function d(e){var t={loading:!1,loaded:{},error:null},n=[];try{Object.keys(e).forEach((function(r){var a=f(e[r]);a.loading?t.loading=!0:(t.loaded[r]=a.loaded,t.error=a.error),n.push(a.promise),a.promise.then((function(e){t.loaded[r]=e})).catch((function(e){t.error=e}))}))}catch(r){t.error=r}return t.promise=Promise.all(n).then((function(e){return t.loading=!1,e})).catch((function(e){throw t.loading=!1,e})),t}function p(e,t){return l.createElement((n=e)&&n.__esModule?n.default:n,t);var n}function m(e,t){var f,d;if(!t.loading)throw new Error("react-loadable requires a `loading` component");var m=i({loader:null,loading:null,delay:200,timeout:null,render:p,webpack:null,modules:null},t),h=null;function g(){return h||(h=e(m.loader)),h.promise}return s.push(g),"function"==typeof m.webpack&&c.push((function(){if((0,m.webpack)().every((function(e){return void 0!==e&&void 0!==n.m[e]})))return g()})),d=f=function(t){function n(n){var r;return o(a(a(r=t.call(this,n)||this)),"retry",(function(){r.setState({error:null,loading:!0,timedOut:!1}),h=e(m.loader),r._loadModule()})),g(),r.state={error:h.error,pastDelay:!1,timedOut:!1,loading:h.loading,loaded:h.loaded},r}r(n,t),n.preload=function(){return g()};var i=n.prototype;return i.UNSAFE_componentWillMount=function(){this._loadModule()},i.componentDidMount=function(){this._mounted=!0},i._loadModule=function(){var e=this;if(this.context.loadable&&Array.isArray(m.modules)&&m.modules.forEach((function(t){e.context.loadable.report(t)})),h.loading){var t=function(t){e._mounted&&e.setState(t)};"number"==typeof m.delay&&(0===m.delay?this.setState({pastDelay:!0}):this._delay=setTimeout((function(){t({pastDelay:!0})}),m.delay)),"number"==typeof m.timeout&&(this._timeout=setTimeout((function(){t({timedOut:!0})}),m.timeout));var n=function(){t({error:h.error,loaded:h.loaded,loading:h.loading}),e._clearTimeouts()};h.promise.then((function(){return n(),null})).catch((function(e){return n(),null}))}},i.componentWillUnmount=function(){this._mounted=!1,this._clearTimeouts()},i._clearTimeouts=function(){clearTimeout(this._delay),clearTimeout(this._timeout)},i.render=function(){return this.state.loading||this.state.error?l.createElement(m.loading,{isLoading:this.state.loading,pastDelay:this.state.pastDelay,timedOut:this.state.timedOut,error:this.state.error,retry:this.retry}):this.state.loaded?m.render(this.state.loaded,this.props):null},n}(l.Component),o(f,"contextTypes",{loadable:u.shape({report:u.func.isRequired})}),d}function h(e){return m(f,e)}h.Map=function(e){if("function"!=typeof e.render)throw new Error("LoadableMap requires a `render(loaded, props)` function");return m(d,e)};var g=function(e){function t(){return e.apply(this,arguments)||this}r(t,e);var n=t.prototype;return n.getChildContext=function(){return{loadable:{report:this.props.report}}},n.render=function(){return l.Children.only(this.props.children)},t}(l.Component);function v(e){for(var t=[];e.length;){var n=e.pop();t.push(n())}return Promise.all(t).then((function(){if(e.length)return v(e)}))}o(g,"propTypes",{report:u.func.isRequired}),o(g,"childContextTypes",{loadable:u.shape({report:u.func.isRequired}).isRequired}),h.Capture=g,h.preloadAll=function(){return new Promise((function(e,t){v(s).then(e,t)}))},h.preloadReady=function(){return new Promise((function(e,t){v(c).then(e,e)}))},e.exports=h},8790:function(e,t,n){"use strict";n.d(t,{H:function(){return l},f:function(){return i}});var r=n(6775),a=n(7462),o=n(7294);function i(e,t,n){return void 0===n&&(n=[]),e.some((function(e){var a=e.path?(0,r.LX)(t,e):n.length?n[n.length-1].match:r.F0.computeRootMatch(t);return a&&(n.push({route:e,match:a}),e.routes&&i(e.routes,t,n)),a})),n}function l(e,t,n){return void 0===t&&(t={}),void 0===n&&(n={}),e?o.createElement(r.rs,n,e.map((function(e,n){return o.createElement(r.AW,{key:e.key||n,path:e.path,exact:e.exact,strict:e.strict,render:function(n){return e.render?e.render((0,a.Z)({},n,{},t,{route:e})):o.createElement(e.component,(0,a.Z)({},n,t,{route:e}))}})}))):null}},3727:function(e,t,n){"use strict";n.d(t,{OL:function(){return y},VK:function(){return c},rU:function(){return g}});var r=n(6775),a=n(4578),o=n(7294),i=n(2358),l=n(7462),u=n(3366),s=n(2177),c=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),a=0;a<n;a++)r[a]=arguments[a];return(t=e.call.apply(e,[this].concat(r))||this).history=(0,i.lX)(t.props),t}return(0,a.Z)(t,e),t.prototype.render=function(){return o.createElement(r.F0,{history:this.history,children:this.props.children})},t}(o.Component);o.Component;var f=function(e,t){return"function"==typeof e?e(t):e},d=function(e,t){return"string"==typeof e?(0,i.ob)(e,null,null,t):e},p=function(e){return e},m=o.forwardRef;void 0===m&&(m=p);var h=m((function(e,t){var n=e.innerRef,r=e.navigate,a=e.onClick,i=(0,u.Z)(e,["innerRef","navigate","onClick"]),s=i.target,c=(0,l.Z)({},i,{onClick:function(e){try{a&&a(e)}catch(t){throw e.preventDefault(),t}e.defaultPrevented||0!==e.button||s&&"_self"!==s||function(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}(e)||(e.preventDefault(),r())}});return c.ref=p!==m&&t||n,o.createElement("a",c)}));var g=m((function(e,t){var n=e.component,a=void 0===n?h:n,c=e.replace,g=e.to,v=e.innerRef,b=(0,u.Z)(e,["component","replace","to","innerRef"]);return o.createElement(r.s6.Consumer,null,(function(e){e||(0,s.Z)(!1);var n=e.history,r=d(f(g,e.location),e.location),u=r?n.createHref(r):"",h=(0,l.Z)({},b,{href:u,navigate:function(){var t=f(g,e.location),r=(0,i.Ep)(e.location)===(0,i.Ep)(d(t));(c||r?n.replace:n.push)(t)}});return p!==m?h.ref=t||v:h.innerRef=v,o.createElement(a,h)}))})),v=function(e){return e},b=o.forwardRef;void 0===b&&(b=v);var y=b((function(e,t){var n=e["aria-current"],a=void 0===n?"page":n,i=e.activeClassName,c=void 0===i?"active":i,p=e.activeStyle,m=e.className,h=e.exact,y=e.isActive,w=e.location,k=e.sensitive,E=e.strict,S=e.style,x=e.to,_=e.innerRef,C=(0,u.Z)(e,["aria-current","activeClassName","activeStyle","className","exact","isActive","location","sensitive","strict","style","to","innerRef"]);return o.createElement(r.s6.Consumer,null,(function(e){e||(0,s.Z)(!1);var n=w||e.location,i=d(f(x,n),n),u=i.pathname,T=u&&u.replace(/([.+*?=^!:${}()[\]|/\\])/g,"\\$1"),A=T?(0,r.LX)(n.pathname,{path:T,exact:h,sensitive:k,strict:E}):null,O=!!(y?y(A,n):A),L="function"==typeof m?m(O):m,P="function"==typeof S?S(O):S;O&&(L=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return t.filter((function(e){return e})).join(" ")}(L,c),P=(0,l.Z)({},P,p));var R=(0,l.Z)({"aria-current":O&&a||null,className:L,style:P,to:i},C);return v!==b?R.ref=t||_:R.innerRef=_,o.createElement(g,R)}))}))},6775:function(e,t,n){"use strict";n.d(t,{l_:function(){return C},AW:function(){return L},F0:function(){return k},rs:function(){return M},s6:function(){return w},LX:function(){return O},k6:function(){return j},TH:function(){return B}});var r=n(4578),a=n(7294),o=n(2358),i=n(5697),l=n.n(i),u=1073741823,s="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:void 0!==n.g?n.g:{};function c(e){var t=[];return{on:function(e){t.push(e)},off:function(e){t=t.filter((function(t){return t!==e}))},get:function(){return e},set:function(n,r){e=n,t.forEach((function(t){return t(e,r)}))}}}var f=a.createContext||function(e,t){var n,o,i="__create-react-context-"+function(){var e="__global_unique_id__";return s[e]=(s[e]||0)+1}()+"__",f=function(e){function n(){var t;return(t=e.apply(this,arguments)||this).emitter=c(t.props.value),t}(0,r.Z)(n,e);var a=n.prototype;return a.getChildContext=function(){var e;return(e={})[i]=this.emitter,e},a.componentWillReceiveProps=function(e){if(this.props.value!==e.value){var n,r=this.props.value,a=e.value;((o=r)===(i=a)?0!==o||1/o==1/i:o!=o&&i!=i)?n=0:(n="function"==typeof t?t(r,a):u,0!==(n|=0)&&this.emitter.set(e.value,n))}var o,i},a.render=function(){return this.props.children},n}(a.Component);f.childContextTypes=((n={})[i]=l().object.isRequired,n);var d=function(t){function n(){var e;return(e=t.apply(this,arguments)||this).state={value:e.getValue()},e.onUpdate=function(t,n){0!=((0|e.observedBits)&n)&&e.setState({value:e.getValue()})},e}(0,r.Z)(n,t);var a=n.prototype;return a.componentWillReceiveProps=function(e){var t=e.observedBits;this.observedBits=null==t?u:t},a.componentDidMount=function(){this.context[i]&&this.context[i].on(this.onUpdate);var e=this.props.observedBits;this.observedBits=null==e?u:e},a.componentWillUnmount=function(){this.context[i]&&this.context[i].off(this.onUpdate)},a.getValue=function(){return this.context[i]?this.context[i].get():e},a.render=function(){return(e=this.props.children,Array.isArray(e)?e[0]:e)(this.state.value);var e},n}(a.Component);return d.contextTypes=((o={})[i]=l().object,o),{Provider:f,Consumer:d}},d=f,p=n(2177),m=n(7462),h=n(9658),g=n.n(h),v=(n(9864),n(3366)),b=(n(8679),function(e){var t=d();return t.displayName=e,t}),y=b("Router-History"),w=b("Router"),k=function(e){function t(t){var n;return(n=e.call(this,t)||this).state={location:t.history.location},n._isMounted=!1,n._pendingLocation=null,t.staticContext||(n.unlisten=t.history.listen((function(e){n._pendingLocation=e}))),n}(0,r.Z)(t,e),t.computeRootMatch=function(e){return{path:"/",url:"/",params:{},isExact:"/"===e}};var n=t.prototype;return n.componentDidMount=function(){var e=this;this._isMounted=!0,this.unlisten&&this.unlisten(),this.props.staticContext||(this.unlisten=this.props.history.listen((function(t){e._isMounted&&e.setState({location:t})}))),this._pendingLocation&&this.setState({location:this._pendingLocation})},n.componentWillUnmount=function(){this.unlisten&&(this.unlisten(),this._isMounted=!1,this._pendingLocation=null)},n.render=function(){return a.createElement(w.Provider,{value:{history:this.props.history,location:this.state.location,match:t.computeRootMatch(this.state.location.pathname),staticContext:this.props.staticContext}},a.createElement(y.Provider,{children:this.props.children||null,value:this.props.history}))},t}(a.Component);a.Component;var E=function(e){function t(){return e.apply(this,arguments)||this}(0,r.Z)(t,e);var n=t.prototype;return n.componentDidMount=function(){this.props.onMount&&this.props.onMount.call(this,this)},n.componentDidUpdate=function(e){this.props.onUpdate&&this.props.onUpdate.call(this,this,e)},n.componentWillUnmount=function(){this.props.onUnmount&&this.props.onUnmount.call(this,this)},n.render=function(){return null},t}(a.Component);var S={},x=0;function _(e,t){return void 0===e&&(e="/"),void 0===t&&(t={}),"/"===e?e:function(e){if(S[e])return S[e];var t=g().compile(e);return x<1e4&&(S[e]=t,x++),t}(e)(t,{pretty:!0})}function C(e){var t=e.computedMatch,n=e.to,r=e.push,i=void 0!==r&&r;return a.createElement(w.Consumer,null,(function(e){e||(0,p.Z)(!1);var r=e.history,l=e.staticContext,u=i?r.push:r.replace,s=(0,o.ob)(t?"string"==typeof n?_(n,t.params):(0,m.Z)({},n,{pathname:_(n.pathname,t.params)}):n);return l?(u(s),null):a.createElement(E,{onMount:function(){u(s)},onUpdate:function(e,t){var n=(0,o.ob)(t.to);(0,o.Hp)(n,(0,m.Z)({},s,{key:n.key}))||u(s)},to:n})}))}var T={},A=0;function O(e,t){void 0===t&&(t={}),("string"==typeof t||Array.isArray(t))&&(t={path:t});var n=t,r=n.path,a=n.exact,o=void 0!==a&&a,i=n.strict,l=void 0!==i&&i,u=n.sensitive,s=void 0!==u&&u;return[].concat(r).reduce((function(t,n){if(!n&&""!==n)return null;if(t)return t;var r=function(e,t){var n=""+t.end+t.strict+t.sensitive,r=T[n]||(T[n]={});if(r[e])return r[e];var a=[],o={regexp:g()(e,a,t),keys:a};return A<1e4&&(r[e]=o,A++),o}(n,{end:o,strict:l,sensitive:s}),a=r.regexp,i=r.keys,u=a.exec(e);if(!u)return null;var c=u[0],f=u.slice(1),d=e===c;return o&&!d?null:{path:n,url:"/"===n&&""===c?"/":c,isExact:d,params:i.reduce((function(e,t,n){return e[t.name]=f[n],e}),{})}}),null)}var L=function(e){function t(){return e.apply(this,arguments)||this}return(0,r.Z)(t,e),t.prototype.render=function(){var e=this;return a.createElement(w.Consumer,null,(function(t){t||(0,p.Z)(!1);var n=e.props.location||t.location,r=e.props.computedMatch?e.props.computedMatch:e.props.path?O(n.pathname,e.props):t.match,o=(0,m.Z)({},t,{location:n,match:r}),i=e.props,l=i.children,u=i.component,s=i.render;return Array.isArray(l)&&function(e){return 0===a.Children.count(e)}(l)&&(l=null),a.createElement(w.Provider,{value:o},o.match?l?"function"==typeof l?l(o):l:u?a.createElement(u,o):s?s(o):null:"function"==typeof l?l(o):null)}))},t}(a.Component);function P(e){return"/"===e.charAt(0)?e:"/"+e}function R(e,t){if(!e)return t;var n=P(e);return 0!==t.pathname.indexOf(n)?t:(0,m.Z)({},t,{pathname:t.pathname.substr(n.length)})}function N(e){return"string"==typeof e?e:(0,o.Ep)(e)}function I(e){return function(){(0,p.Z)(!1)}}function D(){}a.Component;var M=function(e){function t(){return e.apply(this,arguments)||this}return(0,r.Z)(t,e),t.prototype.render=function(){var e=this;return a.createElement(w.Consumer,null,(function(t){t||(0,p.Z)(!1);var n,r,o=e.props.location||t.location;return a.Children.forEach(e.props.children,(function(e){if(null==r&&a.isValidElement(e)){n=e;var i=e.props.path||e.props.from;r=i?O(o.pathname,(0,m.Z)({},e.props,{path:i})):t.match}})),r?a.cloneElement(n,{location:o,computedMatch:r}):null}))},t}(a.Component);var F=a.useContext;function j(){return F(y)}function B(){return F(w).location}},9658:function(e,t,n){var r=n(5826);e.exports=p,e.exports.parse=o,e.exports.compile=function(e,t){return l(o(e,t),t)},e.exports.tokensToFunction=l,e.exports.tokensToRegExp=d;var a=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function o(e,t){for(var n,r=[],o=0,i=0,l="",c=t&&t.delimiter||"/";null!=(n=a.exec(e));){var f=n[0],d=n[1],p=n.index;if(l+=e.slice(i,p),i=p+f.length,d)l+=d[1];else{var m=e[i],h=n[2],g=n[3],v=n[4],b=n[5],y=n[6],w=n[7];l&&(r.push(l),l="");var k=null!=h&&null!=m&&m!==h,E="+"===y||"*"===y,S="?"===y||"*"===y,x=n[2]||c,_=v||b;r.push({name:g||o++,prefix:h||"",delimiter:x,optional:S,repeat:E,partial:k,asterisk:!!w,pattern:_?s(_):w?".*":"[^"+u(x)+"]+?"})}}return i<e.length&&(l+=e.substr(i)),l&&r.push(l),r}function i(e){return encodeURI(e).replace(/[\/?#]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()}))}function l(e,t){for(var n=new Array(e.length),a=0;a<e.length;a++)"object"==typeof e[a]&&(n[a]=new RegExp("^(?:"+e[a].pattern+")$",f(t)));return function(t,a){for(var o="",l=t||{},u=(a||{}).pretty?i:encodeURIComponent,s=0;s<e.length;s++){var c=e[s];if("string"!=typeof c){var f,d=l[c.name];if(null==d){if(c.optional){c.partial&&(o+=c.prefix);continue}throw new TypeError('Expected "'+c.name+'" to be defined')}if(r(d)){if(!c.repeat)throw new TypeError('Expected "'+c.name+'" to not repeat, but received `'+JSON.stringify(d)+"`");if(0===d.length){if(c.optional)continue;throw new TypeError('Expected "'+c.name+'" to not be empty')}for(var p=0;p<d.length;p++){if(f=u(d[p]),!n[s].test(f))throw new TypeError('Expected all "'+c.name+'" to match "'+c.pattern+'", but received `'+JSON.stringify(f)+"`");o+=(0===p?c.prefix:c.delimiter)+f}}else{if(f=c.asterisk?encodeURI(d).replace(/[?#]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()})):u(d),!n[s].test(f))throw new TypeError('Expected "'+c.name+'" to match "'+c.pattern+'", but received "'+f+'"');o+=c.prefix+f}}else o+=c}return o}}function u(e){return e.replace(/([.+*?=^!:${}()[\]|\/\\])/g,"\\$1")}function s(e){return e.replace(/([=!:$\/()])/g,"\\$1")}function c(e,t){return e.keys=t,e}function f(e){return e&&e.sensitive?"":"i"}function d(e,t,n){r(t)||(n=t||n,t=[]);for(var a=(n=n||{}).strict,o=!1!==n.end,i="",l=0;l<e.length;l++){var s=e[l];if("string"==typeof s)i+=u(s);else{var d=u(s.prefix),p="(?:"+s.pattern+")";t.push(s),s.repeat&&(p+="(?:"+d+p+")*"),i+=p=s.optional?s.partial?d+"("+p+")?":"(?:"+d+"("+p+"))?":d+"("+p+")"}}var m=u(n.delimiter||"/"),h=i.slice(-m.length)===m;return a||(i=(h?i.slice(0,-m.length):i)+"(?:"+m+"(?=$))?"),i+=o?"$":a&&h?"":"(?="+m+"|$)",c(new RegExp("^"+i,f(n)),t)}function p(e,t,n){return r(t)||(n=t||n,t=[]),n=n||{},e instanceof RegExp?function(e,t){var n=e.source.match(/\((?!\?)/g);if(n)for(var r=0;r<n.length;r++)t.push({name:r,prefix:null,delimiter:null,optional:!1,repeat:!1,partial:!1,asterisk:!1,pattern:null});return c(e,t)}(e,t):r(e)?function(e,t,n){for(var r=[],a=0;a<e.length;a++)r.push(p(e[a],t,n).source);return c(new RegExp("(?:"+r.join("|")+")",f(n)),t)}(e,t,n):function(e,t,n){return d(o(e,n),t,n)}(e,t,n)}},2408:function(e,t,n){"use strict";var r=n(7418),a=60103,o=60106;t.Fragment=60107,t.StrictMode=60108,t.Profiler=60114;var i=60109,l=60110,u=60112;t.Suspense=60113;var s=60115,c=60116;if("function"==typeof Symbol&&Symbol.for){var f=Symbol.for;a=f("react.element"),o=f("react.portal"),t.Fragment=f("react.fragment"),t.StrictMode=f("react.strict_mode"),t.Profiler=f("react.profiler"),i=f("react.provider"),l=f("react.context"),u=f("react.forward_ref"),t.Suspense=f("react.suspense"),s=f("react.memo"),c=f("react.lazy")}var d="function"==typeof Symbol&&Symbol.iterator;function p(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var m={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},h={};function g(e,t,n){this.props=e,this.context=t,this.refs=h,this.updater=n||m}function v(){}function b(e,t,n){this.props=e,this.context=t,this.refs=h,this.updater=n||m}g.prototype.isReactComponent={},g.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw Error(p(85));this.updater.enqueueSetState(this,e,t,"setState")},g.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},v.prototype=g.prototype;var y=b.prototype=new v;y.constructor=b,r(y,g.prototype),y.isPureReactComponent=!0;var w={current:null},k=Object.prototype.hasOwnProperty,E={key:!0,ref:!0,__self:!0,__source:!0};function S(e,t,n){var r,o={},i=null,l=null;if(null!=t)for(r in void 0!==t.ref&&(l=t.ref),void 0!==t.key&&(i=""+t.key),t)k.call(t,r)&&!E.hasOwnProperty(r)&&(o[r]=t[r]);var u=arguments.length-2;if(1===u)o.children=n;else if(1<u){for(var s=Array(u),c=0;c<u;c++)s[c]=arguments[c+2];o.children=s}if(e&&e.defaultProps)for(r in u=e.defaultProps)void 0===o[r]&&(o[r]=u[r]);return{$$typeof:a,type:e,key:i,ref:l,props:o,_owner:w.current}}function x(e){return"object"==typeof e&&null!==e&&e.$$typeof===a}var _=/\/+/g;function C(e,t){return"object"==typeof e&&null!==e&&null!=e.key?function(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,(function(e){return t[e]}))}(""+e.key):t.toString(36)}function T(e,t,n,r,i){var l=typeof e;"undefined"!==l&&"boolean"!==l||(e=null);var u=!1;if(null===e)u=!0;else switch(l){case"string":case"number":u=!0;break;case"object":switch(e.$$typeof){case a:case o:u=!0}}if(u)return i=i(u=e),e=""===r?"."+C(u,0):r,Array.isArray(i)?(n="",null!=e&&(n=e.replace(_,"$&/")+"/"),T(i,t,n,"",(function(e){return e}))):null!=i&&(x(i)&&(i=function(e,t){return{$$typeof:a,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}(i,n+(!i.key||u&&u.key===i.key?"":(""+i.key).replace(_,"$&/")+"/")+e)),t.push(i)),1;if(u=0,r=""===r?".":r+":",Array.isArray(e))for(var s=0;s<e.length;s++){var c=r+C(l=e[s],s);u+=T(l,t,n,c,i)}else if(c=function(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=d&&e[d]||e["@@iterator"])?e:null}(e),"function"==typeof c)for(e=c.call(e),s=0;!(l=e.next()).done;)u+=T(l=l.value,t,n,c=r+C(l,s++),i);else if("object"===l)throw t=""+e,Error(p(31,"[object Object]"===t?"object with keys {"+Object.keys(e).join(", ")+"}":t));return u}function A(e,t,n){if(null==e)return e;var r=[],a=0;return T(e,r,"","",(function(e){return t.call(n,e,a++)})),r}function O(e){if(-1===e._status){var t=e._result;t=t(),e._status=0,e._result=t,t.then((function(t){0===e._status&&(t=t.default,e._status=1,e._result=t)}),(function(t){0===e._status&&(e._status=2,e._result=t)}))}if(1===e._status)return e._result;throw e._result}var L={current:null};function P(){var e=L.current;if(null===e)throw Error(p(321));return e}var R={ReactCurrentDispatcher:L,ReactCurrentBatchConfig:{transition:0},ReactCurrentOwner:w,IsSomeRendererActing:{current:!1},assign:r};t.Children={map:A,forEach:function(e,t,n){A(e,(function(){t.apply(this,arguments)}),n)},count:function(e){var t=0;return A(e,(function(){t++})),t},toArray:function(e){return A(e,(function(e){return e}))||[]},only:function(e){if(!x(e))throw Error(p(143));return e}},t.Component=g,t.PureComponent=b,t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=R,t.cloneElement=function(e,t,n){if(null==e)throw Error(p(267,e));var o=r({},e.props),i=e.key,l=e.ref,u=e._owner;if(null!=t){if(void 0!==t.ref&&(l=t.ref,u=w.current),void 0!==t.key&&(i=""+t.key),e.type&&e.type.defaultProps)var s=e.type.defaultProps;for(c in t)k.call(t,c)&&!E.hasOwnProperty(c)&&(o[c]=void 0===t[c]&&void 0!==s?s[c]:t[c])}var c=arguments.length-2;if(1===c)o.children=n;else if(1<c){s=Array(c);for(var f=0;f<c;f++)s[f]=arguments[f+2];o.children=s}return{$$typeof:a,type:e.type,key:i,ref:l,props:o,_owner:u}},t.createContext=function(e,t){return void 0===t&&(t=null),(e={$$typeof:l,_calculateChangedBits:t,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null}).Provider={$$typeof:i,_context:e},e.Consumer=e},t.createElement=S,t.createFactory=function(e){var t=S.bind(null,e);return t.type=e,t},t.createRef=function(){return{current:null}},t.forwardRef=function(e){return{$$typeof:u,render:e}},t.isValidElement=x,t.lazy=function(e){return{$$typeof:c,_payload:{_status:-1,_result:e},_init:O}},t.memo=function(e,t){return{$$typeof:s,type:e,compare:void 0===t?null:t}},t.useCallback=function(e,t){return P().useCallback(e,t)},t.useContext=function(e,t){return P().useContext(e,t)},t.useDebugValue=function(){},t.useEffect=function(e,t){return P().useEffect(e,t)},t.useImperativeHandle=function(e,t,n){return P().useImperativeHandle(e,t,n)},t.useLayoutEffect=function(e,t){return P().useLayoutEffect(e,t)},t.useMemo=function(e,t){return P().useMemo(e,t)},t.useReducer=function(e,t,n){return P().useReducer(e,t,n)},t.useRef=function(e){return P().useRef(e)},t.useState=function(e){return P().useState(e)},t.version="17.0.2"},7294:function(e,t,n){"use strict";e.exports=n(2408)},53:function(e,t){"use strict";var n,r,a,o;if("object"==typeof performance&&"function"==typeof performance.now){var i=performance;t.unstable_now=function(){return i.now()}}else{var l=Date,u=l.now();t.unstable_now=function(){return l.now()-u}}if("undefined"==typeof window||"function"!=typeof MessageChannel){var s=null,c=null,f=function(){if(null!==s)try{var e=t.unstable_now();s(!0,e),s=null}catch(n){throw setTimeout(f,0),n}};n=function(e){null!==s?setTimeout(n,0,e):(s=e,setTimeout(f,0))},r=function(e,t){c=setTimeout(e,t)},a=function(){clearTimeout(c)},t.unstable_shouldYield=function(){return!1},o=t.unstable_forceFrameRate=function(){}}else{var d=window.setTimeout,p=window.clearTimeout;if("undefined"!=typeof console){var m=window.cancelAnimationFrame;"function"!=typeof window.requestAnimationFrame&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills"),"function"!=typeof m&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills")}var h=!1,g=null,v=-1,b=5,y=0;t.unstable_shouldYield=function(){return t.unstable_now()>=y},o=function(){},t.unstable_forceFrameRate=function(e){0>e||125<e?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):b=0<e?Math.floor(1e3/e):5};var w=new MessageChannel,k=w.port2;w.port1.onmessage=function(){if(null!==g){var e=t.unstable_now();y=e+b;try{g(!0,e)?k.postMessage(null):(h=!1,g=null)}catch(n){throw k.postMessage(null),n}}else h=!1},n=function(e){g=e,h||(h=!0,k.postMessage(null))},r=function(e,n){v=d((function(){e(t.unstable_now())}),n)},a=function(){p(v),v=-1}}function E(e,t){var n=e.length;e.push(t);e:for(;;){var r=n-1>>>1,a=e[r];if(!(void 0!==a&&0<_(a,t)))break e;e[r]=t,e[n]=a,n=r}}function S(e){return void 0===(e=e[0])?null:e}function x(e){var t=e[0];if(void 0!==t){var n=e.pop();if(n!==t){e[0]=n;e:for(var r=0,a=e.length;r<a;){var o=2*(r+1)-1,i=e[o],l=o+1,u=e[l];if(void 0!==i&&0>_(i,n))void 0!==u&&0>_(u,i)?(e[r]=u,e[l]=n,r=l):(e[r]=i,e[o]=n,r=o);else{if(!(void 0!==u&&0>_(u,n)))break e;e[r]=u,e[l]=n,r=l}}}return t}return null}function _(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}var C=[],T=[],A=1,O=null,L=3,P=!1,R=!1,N=!1;function I(e){for(var t=S(T);null!==t;){if(null===t.callback)x(T);else{if(!(t.startTime<=e))break;x(T),t.sortIndex=t.expirationTime,E(C,t)}t=S(T)}}function D(e){if(N=!1,I(e),!R)if(null!==S(C))R=!0,n(M);else{var t=S(T);null!==t&&r(D,t.startTime-e)}}function M(e,n){R=!1,N&&(N=!1,a()),P=!0;var o=L;try{for(I(n),O=S(C);null!==O&&(!(O.expirationTime>n)||e&&!t.unstable_shouldYield());){var i=O.callback;if("function"==typeof i){O.callback=null,L=O.priorityLevel;var l=i(O.expirationTime<=n);n=t.unstable_now(),"function"==typeof l?O.callback=l:O===S(C)&&x(C),I(n)}else x(C);O=S(C)}if(null!==O)var u=!0;else{var s=S(T);null!==s&&r(D,s.startTime-n),u=!1}return u}finally{O=null,L=o,P=!1}}var F=o;t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(e){e.callback=null},t.unstable_continueExecution=function(){R||P||(R=!0,n(M))},t.unstable_getCurrentPriorityLevel=function(){return L},t.unstable_getFirstCallbackNode=function(){return S(C)},t.unstable_next=function(e){switch(L){case 1:case 2:case 3:var t=3;break;default:t=L}var n=L;L=t;try{return e()}finally{L=n}},t.unstable_pauseExecution=function(){},t.unstable_requestPaint=F,t.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=L;L=e;try{return t()}finally{L=n}},t.unstable_scheduleCallback=function(e,o,i){var l=t.unstable_now();switch("object"==typeof i&&null!==i?i="number"==typeof(i=i.delay)&&0<i?l+i:l:i=l,e){case 1:var u=-1;break;case 2:u=250;break;case 5:u=1073741823;break;case 4:u=1e4;break;default:u=5e3}return e={id:A++,callback:o,priorityLevel:e,startTime:i,expirationTime:u=i+u,sortIndex:-1},i>l?(e.sortIndex=i,E(T,e),null===S(C)&&e===S(T)&&(N?a():N=!0,r(D,i-l))):(e.sortIndex=u,E(C,e),R||P||(R=!0,n(M))),e},t.unstable_wrapCallback=function(e){var t=L;return function(){var n=L;L=t;try{return e.apply(this,arguments)}finally{L=n}}}},3840:function(e,t,n){"use strict";e.exports=n(53)},6774:function(e){e.exports=function(e,t,n,r){var a=n?n.call(r,e,t):void 0;if(void 0!==a)return!!a;if(e===t)return!0;if("object"!=typeof e||!e||"object"!=typeof t||!t)return!1;var o=Object.keys(e),i=Object.keys(t);if(o.length!==i.length)return!1;for(var l=Object.prototype.hasOwnProperty.bind(t),u=0;u<o.length;u++){var s=o[u];if(!l(s))return!1;var c=e[s],f=t[s];if(!1===(a=n?n.call(r,c,f,s):void 0)||void 0===a&&c!==f)return!1}return!0}},2177:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r="Invariant failed";function a(e,t){if(!e)throw new Error(r)}},655:function(e,t,n){"use strict";n.r(t),n.d(t,{__assign:function(){return o},__asyncDelegator:function(){return k},__asyncGenerator:function(){return w},__asyncValues:function(){return E},__await:function(){return y},__awaiter:function(){return c},__classPrivateFieldGet:function(){return T},__classPrivateFieldIn:function(){return O},__classPrivateFieldSet:function(){return A},__createBinding:function(){return d},__decorate:function(){return l},__exportStar:function(){return p},__extends:function(){return a},__generator:function(){return f},__importDefault:function(){return C},__importStar:function(){return _},__makeTemplateObject:function(){return S},__metadata:function(){return s},__param:function(){return u},__read:function(){return h},__rest:function(){return i},__spread:function(){return g},__spreadArray:function(){return b},__spreadArrays:function(){return v},__values:function(){return m}});var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},r(e,t)};function a(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}var o=function(){return o=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var a in t=arguments[n])Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a]);return e},o.apply(this,arguments)};function i(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(r=Object.getOwnPropertySymbols(e);a<r.length;a++)t.indexOf(r[a])<0&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]])}return n}function l(e,t,n,r){var a,o=arguments.length,i=o<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(i=(o<3?a(i):o>3?a(t,n,i):a(t,n))||i);return o>3&&i&&Object.defineProperty(t,n,i),i}function u(e,t){return function(n,r){t(n,r,e)}}function s(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)}function c(e,t,n,r){return new(n||(n=Promise))((function(a,o){function i(e){try{u(r.next(e))}catch(t){o(t)}}function l(e){try{u(r.throw(e))}catch(t){o(t)}}function u(e){var t;e.done?a(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(i,l)}u((r=r.apply(e,t||[])).next())}))}function f(e,t){var n,r,a,o,i={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]};return o={next:l(0),throw:l(1),return:l(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function l(o){return function(l){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;i;)try{if(n=1,r&&(a=2&o[0]?r.return:o[0]?r.throw||((a=r.return)&&a.call(r),0):r.next)&&!(a=a.call(r,o[1])).done)return a;switch(r=0,a&&(o=[2&o[0],a.value]),o[0]){case 0:case 1:a=o;break;case 4:return i.label++,{value:o[1],done:!1};case 5:i.label++,r=o[1],o=[0];continue;case 7:o=i.ops.pop(),i.trys.pop();continue;default:if(!(a=i.trys,(a=a.length>0&&a[a.length-1])||6!==o[0]&&2!==o[0])){i=0;continue}if(3===o[0]&&(!a||o[1]>a[0]&&o[1]<a[3])){i.label=o[1];break}if(6===o[0]&&i.label<a[1]){i.label=a[1],a=o;break}if(a&&i.label<a[2]){i.label=a[2],i.ops.push(o);break}a[2]&&i.ops.pop(),i.trys.pop();continue}o=t.call(e,i)}catch(l){o=[6,l],r=0}finally{n=a=0}if(5&o[0])throw o[1];return{value:o[0]?o[1]:void 0,done:!0}}([o,l])}}}var d=Object.create?function(e,t,n,r){void 0===r&&(r=n);var a=Object.getOwnPropertyDescriptor(t,n);a&&!("get"in a?!t.__esModule:a.writable||a.configurable)||(a={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,a)}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]};function p(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||d(t,e,n)}function m(e){var t="function"==typeof Symbol&&Symbol.iterator,n=t&&e[t],r=0;if(n)return n.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function h(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,a,o=n.call(e),i=[];try{for(;(void 0===t||t-- >0)&&!(r=o.next()).done;)i.push(r.value)}catch(l){a={error:l}}finally{try{r&&!r.done&&(n=o.return)&&n.call(o)}finally{if(a)throw a.error}}return i}function g(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(h(arguments[t]));return e}function v(){for(var e=0,t=0,n=arguments.length;t<n;t++)e+=arguments[t].length;var r=Array(e),a=0;for(t=0;t<n;t++)for(var o=arguments[t],i=0,l=o.length;i<l;i++,a++)r[a]=o[i];return r}function b(e,t,n){if(n||2===arguments.length)for(var r,a=0,o=t.length;a<o;a++)!r&&a in t||(r||(r=Array.prototype.slice.call(t,0,a)),r[a]=t[a]);return e.concat(r||Array.prototype.slice.call(t))}function y(e){return this instanceof y?(this.v=e,this):new y(e)}function w(e,t,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r,a=n.apply(e,t||[]),o=[];return r={},i("next"),i("throw"),i("return"),r[Symbol.asyncIterator]=function(){return this},r;function i(e){a[e]&&(r[e]=function(t){return new Promise((function(n,r){o.push([e,t,n,r])>1||l(e,t)}))})}function l(e,t){try{(n=a[e](t)).value instanceof y?Promise.resolve(n.value.v).then(u,s):c(o[0][2],n)}catch(r){c(o[0][3],r)}var n}function u(e){l("next",e)}function s(e){l("throw",e)}function c(e,t){e(t),o.shift(),o.length&&l(o[0][0],o[0][1])}}function k(e){var t,n;return t={},r("next"),r("throw",(function(e){throw e})),r("return"),t[Symbol.iterator]=function(){return this},t;function r(r,a){t[r]=e[r]?function(t){return(n=!n)?{value:y(e[r](t)),done:"return"===r}:a?a(t):t}:a}}function E(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t,n=e[Symbol.asyncIterator];return n?n.call(e):(e=m(e),t={},r("next"),r("throw"),r("return"),t[Symbol.asyncIterator]=function(){return this},t);function r(n){t[n]=e[n]&&function(t){return new Promise((function(r,a){(function(e,t,n,r){Promise.resolve(r).then((function(t){e({value:t,done:n})}),t)})(r,a,(t=e[n](t)).done,t.value)}))}}}function S(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e}var x=Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t};function _(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&d(t,e,n);return x(t,e),t}function C(e){return e&&e.__esModule?e:{default:e}}function T(e,t,n,r){if("a"===n&&!r)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!r:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===n?r:"a"===n?r.call(e):r?r.value:t.get(e)}function A(e,t,n,r,a){if("m"===r)throw new TypeError("Private method is not writable");if("a"===r&&!a)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!a:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===r?a.call(e,n):a?a.value=n:t.set(e,n),n}function O(e,t){if(null===t||"object"!=typeof t&&"function"!=typeof t)throw new TypeError("Cannot use 'in' operator on non-object");return"function"==typeof e?t===e:e.has(t)}},7462:function(e,t,n){"use strict";function r(){return r=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},r.apply(this,arguments)}n.d(t,{Z:function(){return r}})},4578:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(9611);function a(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,(0,r.Z)(e,t)}},3366:function(e,t,n){"use strict";function r(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}n.d(t,{Z:function(){return r}})},9611:function(e,t,n){"use strict";function r(e,t){return r=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},r(e,t)}n.d(t,{Z:function(){return r}})},6528:function(e,t,n){"use strict";function r(e){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(e)}n.d(t,{Z:function(){return i}});var a=n(9611);function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&(0,a.Z)(e,t)}function i(){i=function(e,t){return new n(e,void 0,t)};var e=RegExp.prototype,t=new WeakMap;function n(e,r,o){var i=new RegExp(e,r);return t.set(i,o||t.get(e)),(0,a.Z)(i,n.prototype)}function l(e,n){var r=t.get(n);return Object.keys(r).reduce((function(t,n){return t[n]=e[r[n]],t}),Object.create(null))}return o(n,RegExp),n.prototype.exec=function(t){var n=e.exec.call(this,t);return n&&(n.groups=l(n,this)),n},n.prototype[Symbol.replace]=function(n,a){if("string"==typeof a){var o=t.get(this);return e[Symbol.replace].call(this,n,a.replace(/\$<([^>]+)>/g,(function(e,t){return"$"+o[t]})))}if("function"==typeof a){var i=this;return e[Symbol.replace].call(this,n,(function(){var e=arguments;return"object"!=r(e[e.length-1])&&(e=[].slice.call(e)).push(l(e,i)),a.apply(this,e)}))}return e[Symbol.replace].call(this,n,a)},i.apply(this,arguments)}},7529:function(e){"use strict";e.exports={}},1115:function(e){"use strict";e.exports=JSON.parse('{"docusaurus-plugin-google-gtag":{"default":{"trackingID":"G-4RT25NXQ7N","anonymizeIP":true,"id":"default"}},"docusaurus-plugin-content-docs":{"default":{"path":"/","versions":[{"name":"current","label":"Next","isLast":true,"path":"/","mainDocId":"intro","docs":[{"id":"api_reference","path":"/api/","sidebar":"tutorialSidebar"},{"id":"changelog","path":"/changelog/","sidebar":"tutorialSidebar"},{"id":"community","path":"/community/","sidebar":"tutorialSidebar"},{"id":"donate","path":"/donate/","sidebar":"tutorialSidebar"},{"id":"installation","path":"/installation/","sidebar":"tutorialSidebar"},{"id":"intro","path":"/","sidebar":"tutorialSidebar"},{"id":"releasing","path":"/releasing/","sidebar":"tutorialSidebar"},{"id":"styleguide","path":"/styleguide/","sidebar":"tutorialSidebar"},{"id":"taskfile_versions","path":"/taskfile-versions/","sidebar":"tutorialSidebar"},{"id":"usage","path":"/usage/","sidebar":"tutorialSidebar"}],"draftIds":[],"sidebars":{"tutorialSidebar":{"link":{"path":"/","label":"intro"}}}}],"breadcrumbs":true}}}')},6887:function(e){"use strict";e.exports=JSON.parse('{"/-086":{"__comp":"1be78505","__context":{"plugin":"d0766b26"},"versionMetadata":"935f2afb"},"/-96c":{"__comp":"17896441","content":"0e384e19"},"/api/-057":{"__comp":"17896441","content":"f7fd502c"},"/changelog/-6e0":{"__comp":"17896441","content":"9beb87c2"},"/community/-bea":{"__comp":"17896441","content":"5ef0e9d6"},"/donate/-bf9":{"__comp":"17896441","content":"1c56b476"},"/installation/-5f4":{"__comp":"17896441","content":"3b8c55ea"},"/releasing/-94f":{"__comp":"17896441","content":"7d415946"},"/styleguide/-68d":{"__comp":"17896441","content":"3c140c84"},"/taskfile-versions/-045":{"__comp":"17896441","content":"0afd354a"},"/usage/-6a8":{"__comp":"17896441","content":"6476eba6"}}')}},function(e){e.O(0,[532],(function(){return t=8864,e(e.s=t);var t}));e.O()}]);
\ No newline at end of file
diff --git a/assets/js/main.02eb1717.js.LICENSE.txt b/assets/js/main.a2abdebd.js.LICENSE.txt
similarity index 100%
rename from assets/js/main.02eb1717.js.LICENSE.txt
rename to assets/js/main.a2abdebd.js.LICENSE.txt
diff --git a/assets/js/runtime~main.dc8eec3e.js b/assets/js/runtime~main.dc8eec3e.js
new file mode 100644
index 00000000..07634b6b
--- /dev/null
+++ b/assets/js/runtime~main.dc8eec3e.js
@@ -0,0 +1 @@
+!function(){"use strict";var e,t,n,r,o,f={},u={};function i(e){var t=u[e];if(void 0!==t)return t.exports;var n=u[e]={id:e,loaded:!1,exports:{}};return f[e].call(n.exports,n,n.exports,i),n.loaded=!0,n.exports}i.m=f,i.c=u,e=[],i.O=function(t,n,r,o){if(!n){var f=1/0;for(d=0;d<e.length;d++){n=e[d][0],r=e[d][1],o=e[d][2];for(var u=!0,c=0;c<n.length;c++)(!1&o||f>=o)&&Object.keys(i.O).every((function(e){return i.O[e](n[c])}))?n.splice(c--,1):(u=!1,o<f&&(f=o));if(u){e.splice(d--,1);var a=r();void 0!==a&&(t=a)}}return t}o=o||0;for(var d=e.length;d>0&&e[d-1][2]>o;d--)e[d]=e[d-1];e[d]=[n,r,o]},i.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(t,{a:t}),t},n=Object.getPrototypeOf?function(e){return Object.getPrototypeOf(e)}:function(e){return e.__proto__},i.t=function(e,r){if(1&r&&(e=this(e)),8&r)return e;if("object"==typeof e&&e){if(4&r&&e.__esModule)return e;if(16&r&&"function"==typeof e.then)return e}var o=Object.create(null);i.r(o);var f={};t=t||[null,n({}),n([]),n(n)];for(var u=2&r&&e;"object"==typeof u&&!~t.indexOf(u);u=n(u))Object.getOwnPropertyNames(u).forEach((function(t){f[t]=function(){return e[t]}}));return f.default=function(){return e},i.d(o,f),o},i.d=function(e,t){for(var n in t)i.o(t,n)&&!i.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},i.f={},i.e=function(e){return Promise.all(Object.keys(i.f).reduce((function(t,n){return i.f[n](e,t),t}),[]))},i.u=function(e){return"assets/js/"+({53:"935f2afb",80:"9beb87c2",217:"3b8c55ea",514:"1be78505",552:"0afd354a",582:"f7fd502c",595:"d0766b26",648:"3c140c84",671:"0e384e19",705:"7d415946",713:"1c56b476",827:"6476eba6",880:"5ef0e9d6",918:"17896441"}[e]||e)+"."+{53:"eb0fa274",80:"1ad0c845",217:"f6a92632",514:"96ec3c46",552:"3d55476b",582:"4de9d797",595:"c5627647",608:"2212f0b1",648:"c2d43167",671:"66633c62",705:"d16538a2",713:"58966a33",827:"6289932b",880:"e861607f",918:"411a0ff5"}[e]+".js"},i.miniCssF=function(e){},i.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r={},o="taskfile-dev:",i.l=function(e,t,n,f){if(r[e])r[e].push(t);else{var u,c;if(void 0!==n)for(var a=document.getElementsByTagName("script"),d=0;d<a.length;d++){var l=a[d];if(l.getAttribute("src")==e||l.getAttribute("data-webpack")==o+n){u=l;break}}u||(c=!0,(u=document.createElement("script")).charset="utf-8",u.timeout=120,i.nc&&u.setAttribute("nonce",i.nc),u.setAttribute("data-webpack",o+n),u.src=e),r[e]=[t];var s=function(t,n){u.onerror=u.onload=null,clearTimeout(b);var o=r[e];if(delete r[e],u.parentNode&&u.parentNode.removeChild(u),o&&o.forEach((function(e){return e(n)})),t)return t(n)},b=setTimeout(s.bind(null,void 0,{type:"timeout",target:u}),12e4);u.onerror=s.bind(null,u.onerror),u.onload=s.bind(null,u.onload),c&&document.head.appendChild(u)}},i.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.p="/",i.gca=function(e){return e={17896441:"918","935f2afb":"53","9beb87c2":"80","3b8c55ea":"217","1be78505":"514","0afd354a":"552",f7fd502c:"582",d0766b26:"595","3c140c84":"648","0e384e19":"671","7d415946":"705","1c56b476":"713","6476eba6":"827","5ef0e9d6":"880"}[e]||e,i.p+i.u(e)},function(){var e={303:0,532:0};i.f.j=function(t,n){var r=i.o(e,t)?e[t]:void 0;if(0!==r)if(r)n.push(r[2]);else if(/^(303|532)$/.test(t))e[t]=0;else{var o=new Promise((function(n,o){r=e[t]=[n,o]}));n.push(r[2]=o);var f=i.p+i.u(t),u=new Error;i.l(f,(function(n){if(i.o(e,t)&&(0!==(r=e[t])&&(e[t]=void 0),r)){var o=n&&("load"===n.type?"missing":n.type),f=n&&n.target&&n.target.src;u.message="Loading chunk "+t+" failed.\n("+o+": "+f+")",u.name="ChunkLoadError",u.type=o,u.request=f,r[1](u)}}),"chunk-"+t,t)}},i.O.j=function(t){return 0===e[t]};var t=function(t,n){var r,o,f=n[0],u=n[1],c=n[2],a=0;if(f.some((function(t){return 0!==e[t]}))){for(r in u)i.o(u,r)&&(i.m[r]=u[r]);if(c)var d=c(i)}for(t&&t(n);a<f.length;a++)o=f[a],i.o(e,o)&&e[o]&&e[o][0](),e[o]=0;return i.O(d)},n=self.webpackChunktaskfile_dev=self.webpackChunktaskfile_dev||[];n.forEach(t.bind(null,0)),n.push=t.bind(null,n.push.bind(n))}()}();
\ No newline at end of file
diff --git a/assets/js/runtime~main.ecad62b6.js b/assets/js/runtime~main.ecad62b6.js
deleted file mode 100644
index 12cfe241..00000000
--- a/assets/js/runtime~main.ecad62b6.js
+++ /dev/null
@@ -1 +0,0 @@
-!function(){"use strict";var e,t,n,r,o,u={},f={};function i(e){var t=f[e];if(void 0!==t)return t.exports;var n=f[e]={id:e,loaded:!1,exports:{}};return u[e].call(n.exports,n,n.exports,i),n.loaded=!0,n.exports}i.m=u,i.c=f,e=[],i.O=function(t,n,r,o){if(!n){var u=1/0;for(d=0;d<e.length;d++){n=e[d][0],r=e[d][1],o=e[d][2];for(var f=!0,c=0;c<n.length;c++)(!1&o||u>=o)&&Object.keys(i.O).every((function(e){return i.O[e](n[c])}))?n.splice(c--,1):(f=!1,o<u&&(u=o));if(f){e.splice(d--,1);var a=r();void 0!==a&&(t=a)}}return t}o=o||0;for(var d=e.length;d>0&&e[d-1][2]>o;d--)e[d]=e[d-1];e[d]=[n,r,o]},i.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(t,{a:t}),t},n=Object.getPrototypeOf?function(e){return Object.getPrototypeOf(e)}:function(e){return e.__proto__},i.t=function(e,r){if(1&r&&(e=this(e)),8&r)return e;if("object"==typeof e&&e){if(4&r&&e.__esModule)return e;if(16&r&&"function"==typeof e.then)return e}var o=Object.create(null);i.r(o);var u={};t=t||[null,n({}),n([]),n(n)];for(var f=2&r&&e;"object"==typeof f&&!~t.indexOf(f);f=n(f))Object.getOwnPropertyNames(f).forEach((function(t){u[t]=function(){return e[t]}}));return u.default=function(){return e},i.d(o,u),o},i.d=function(e,t){for(var n in t)i.o(t,n)&&!i.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},i.f={},i.e=function(e){return Promise.all(Object.keys(i.f).reduce((function(t,n){return i.f[n](e,t),t}),[]))},i.u=function(e){return"assets/js/"+({53:"935f2afb",80:"9beb87c2",217:"3b8c55ea",514:"1be78505",552:"0afd354a",595:"d0766b26",648:"3c140c84",671:"0e384e19",705:"7d415946",713:"1c56b476",827:"6476eba6",880:"5ef0e9d6",918:"17896441"}[e]||e)+"."+{53:"dd36ec53",80:"eb06bf2a",217:"f6a92632",514:"96ec3c46",552:"47e323cd",595:"c5627647",608:"2212f0b1",648:"58503430",671:"66633c62",705:"89adb532",713:"1d08191c",827:"10c0779c",880:"362b8bbb",918:"411a0ff5"}[e]+".js"},i.miniCssF=function(e){},i.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r={},o="taskfile-dev:",i.l=function(e,t,n,u){if(r[e])r[e].push(t);else{var f,c;if(void 0!==n)for(var a=document.getElementsByTagName("script"),d=0;d<a.length;d++){var l=a[d];if(l.getAttribute("src")==e||l.getAttribute("data-webpack")==o+n){f=l;break}}f||(c=!0,(f=document.createElement("script")).charset="utf-8",f.timeout=120,i.nc&&f.setAttribute("nonce",i.nc),f.setAttribute("data-webpack",o+n),f.src=e),r[e]=[t];var s=function(t,n){f.onerror=f.onload=null,clearTimeout(b);var o=r[e];if(delete r[e],f.parentNode&&f.parentNode.removeChild(f),o&&o.forEach((function(e){return e(n)})),t)return t(n)},b=setTimeout(s.bind(null,void 0,{type:"timeout",target:f}),12e4);f.onerror=s.bind(null,f.onerror),f.onload=s.bind(null,f.onload),c&&document.head.appendChild(f)}},i.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.p="/",i.gca=function(e){return e={17896441:"918","935f2afb":"53","9beb87c2":"80","3b8c55ea":"217","1be78505":"514","0afd354a":"552",d0766b26:"595","3c140c84":"648","0e384e19":"671","7d415946":"705","1c56b476":"713","6476eba6":"827","5ef0e9d6":"880"}[e]||e,i.p+i.u(e)},function(){var e={303:0,532:0};i.f.j=function(t,n){var r=i.o(e,t)?e[t]:void 0;if(0!==r)if(r)n.push(r[2]);else if(/^(303|532)$/.test(t))e[t]=0;else{var o=new Promise((function(n,o){r=e[t]=[n,o]}));n.push(r[2]=o);var u=i.p+i.u(t),f=new Error;i.l(u,(function(n){if(i.o(e,t)&&(0!==(r=e[t])&&(e[t]=void 0),r)){var o=n&&("load"===n.type?"missing":n.type),u=n&&n.target&&n.target.src;f.message="Loading chunk "+t+" failed.\n("+o+": "+u+")",f.name="ChunkLoadError",f.type=o,f.request=u,r[1](f)}}),"chunk-"+t,t)}},i.O.j=function(t){return 0===e[t]};var t=function(t,n){var r,o,u=n[0],f=n[1],c=n[2],a=0;if(u.some((function(t){return 0!==e[t]}))){for(r in f)i.o(f,r)&&(i.m[r]=f[r]);if(c)var d=c(i)}for(t&&t(n);a<u.length;a++)o=u[a],i.o(e,o)&&e[o]&&e[o][0](),e[o]=0;return i.O(d)},n=self.webpackChunktaskfile_dev=self.webpackChunktaskfile_dev||[];n.forEach(t.bind(null,0)),n.push=t.bind(null,n.push.bind(n))}()}();
\ No newline at end of file
diff --git a/changelog/index.html b/changelog/index.html
index 5ad8116e..be90a00d 100644
--- a/changelog/index.html
+++ b/changelog/index.html
@@ -11,12 +11,12 @@
 
 
 <script src="/js/carbon.js" async></script><title data-rh="true">Changelog | Task</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://taskfile.dev/changelog/"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="og:image" content="https://preview-taskfile.netlify.app/img/logo.svg"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Changelog | Task"><meta data-rh="true" name="description" content="v3.12.1 - 2022-05-10"><meta data-rh="true" property="og:description" content="v3.12.1 - 2022-05-10"><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://taskfile.dev/changelog/"><link data-rh="true" rel="alternate" href="https://taskfile.dev/changelog/" hreflang="en"><link data-rh="true" rel="alternate" href="https://taskfile.dev/changelog/" hreflang="x-default"><link rel="stylesheet" href="/assets/css/styles.3fb3b1af.css">
-<link rel="preload" href="/assets/js/runtime~main.ecad62b6.js" as="script">
-<link rel="preload" href="/assets/js/main.02eb1717.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.dc8eec3e.js" as="script">
+<link rel="preload" href="/assets/js/main.a2abdebd.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
-<div role="region"><a href="#" class="skipToContent_ZgBM">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><div class="navbar__logo"><img src="/img/logo.svg" alt="Task Logo" class="themedImage_W2Cr themedImage--light_TfLj"><img src="/img/logo.svg" alt="Task Logo" class="themedImage_W2Cr themedImage--dark_oUvU"></div><b class="navbar__title text--truncate">Task</b></a><a class="navbar__item navbar__link navbar__link--active" href="/installation/">Installation</a><a class="navbar__item navbar__link navbar__link--active" href="/usage/">Usage</a><a class="navbar__item navbar__link navbar__link--active" href="/donate/">Donate</a></div><div class="navbar__items navbar__items--right"><a href="https://github.com/go-task/task" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">GitHub<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a><a href="https://discord.gg/6TY36E39UK" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a><div class="toggle_S7eR colorModeToggle_vKtC"><button class="clean-btn toggleButton_rCf9 toggleButtonDisabled_Pu9x" type="button" disabled="" title="Switch between dark and light mode (currently light mode)" aria-label="Switch between dark and light mode (currently light mode)"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_v35p"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_nQuB"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_dLyj"></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div class="main-wrapper docsWrapper_mKqt"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_RiI4" type="button"></button><div class="docPage_ualW"><aside class="theme-doc-sidebar-container docSidebarContainer_UQUJ"><div class="sidebar_RiAD"><nav class="menu thin-scrollbar menu_izAj"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/">Home</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/installation/">Installation</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/usage/">Usage</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/styleguide/">Styleguide</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/community/">Community</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" href="/changelog/">Changelog</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/releasing/">Releasing</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/taskfile-versions/">Taskfile Versions</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/donate/">Donate</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1"><div id="sidebar-ads"></div></li></ul></nav></div></aside><main class="docMainContainer_uL0j"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_DM6M"><div class="docItemContainer_vinB"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Xlws" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_kU5B"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Changelog</span><meta itemprop="position" content="1"></li></ul></nav><div class="tocCollapsible_bZGK theme-doc-toc-mobile tocMobile_TmEX"><button type="button" class="clean-btn tocCollapsibleButton_l22C">On this page</button></div><div class="theme-doc-markdown markdown"><h1>Changelog</h1><h2 class="anchor anchorWithStickyNavbar_mojV" id="v3121---2022-05-10">v3.12.1 - 2022-05-10<a class="hash-link" href="#v3121---2022-05-10" title="Direct link to heading">​</a></h2><ul><li>Fixed bug where, on Windows, variables were ending with <code>\r</code> because we were
+<div role="region"><a href="#" class="skipToContent_ZgBM">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><div class="navbar__logo"><img src="/img/logo.svg" alt="Task Logo" class="themedImage_W2Cr themedImage--light_TfLj"><img src="/img/logo.svg" alt="Task Logo" class="themedImage_W2Cr themedImage--dark_oUvU"></div><b class="navbar__title text--truncate">Task</b></a><a class="navbar__item navbar__link navbar__link--active" href="/installation/">Installation</a><a class="navbar__item navbar__link navbar__link--active" href="/usage/">Usage</a><a class="navbar__item navbar__link navbar__link--active" href="/api/">API</a><a class="navbar__item navbar__link navbar__link--active" href="/donate/">Donate</a></div><div class="navbar__items navbar__items--right"><a href="https://github.com/go-task/task" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">GitHub<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a><a href="https://discord.gg/6TY36E39UK" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a><div class="toggle_S7eR colorModeToggle_vKtC"><button class="clean-btn toggleButton_rCf9 toggleButtonDisabled_Pu9x" type="button" disabled="" title="Switch between dark and light mode (currently light mode)" aria-label="Switch between dark and light mode (currently light mode)"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_v35p"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_nQuB"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_dLyj"></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div class="main-wrapper docsWrapper_mKqt"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_RiI4" type="button"></button><div class="docPage_ualW"><aside class="theme-doc-sidebar-container docSidebarContainer_UQUJ"><div class="sidebar_RiAD"><nav class="menu thin-scrollbar menu_izAj"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/">Home</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/installation/">Installation</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/usage/">Usage</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/api/">API Reference</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/styleguide/">Styleguide</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" href="/changelog/">Changelog</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/community/">Community</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/releasing/">Releasing</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/taskfile-versions/">Taskfile Versions</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/donate/">Donate</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1"><div id="sidebar-ads"></div></li></ul></nav></div></aside><main class="docMainContainer_uL0j"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_DM6M"><div class="docItemContainer_vinB"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Xlws" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_kU5B"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Changelog</span><meta itemprop="position" content="1"></li></ul></nav><div class="tocCollapsible_bZGK theme-doc-toc-mobile tocMobile_TmEX"><button type="button" class="clean-btn tocCollapsibleButton_l22C">On this page</button></div><div class="theme-doc-markdown markdown"><h1>Changelog</h1><h2 class="anchor anchorWithStickyNavbar_mojV" id="v3121---2022-05-10">v3.12.1 - 2022-05-10<a class="hash-link" href="#v3121---2022-05-10" title="Direct link to heading">​</a></h2><ul><li>Fixed bug where, on Windows, variables were ending with <code>\r</code> because we were
 only removing the final <code>\n</code> but not <code>\r\n</code>
 (<a href="https://github.com/go-task/task/issues/717" target="_blank" rel="noopener noreferrer">#717</a>).</li></ul><h2 class="anchor anchorWithStickyNavbar_mojV" id="v3120---2022-03-31">v3.12.0 - 2022-03-31<a class="hash-link" href="#v3120---2022-03-31" title="Direct link to heading">​</a></h2><ul><li>The <code>--list</code> and <code>--list-all</code> flags can now be combined with the <code>--silent</code>
 flag to print the task names only, without their description
@@ -176,8 +176,8 @@ Mode is enabled
 (
 <a href="https://github.com/go-task/task/pull/138" target="_blank" rel="noopener noreferrer">#138</a>,
 <a href="https://github.com/go-task/task/pull/159" target="_blank" rel="noopener noreferrer">#159</a>
-).</li></ul><h2 class="anchor anchorWithStickyNavbar_mojV" id="v221---2018-12-09">v2.2.1 - 2018-12-09<a class="hash-link" href="#v221---2018-12-09" title="Direct link to heading">​</a></h2><ul><li>This repository now uses Go Modules (#143). We&#x27;ll still keep the <code>vendor</code> directory in sync for some time, though;</li><li>Fixing a bug when the Taskfile has no tasks but includes another Taskfile (#150);</li><li>Fix a bug when calling another task or a dependency in an included Taskfile (#151).</li></ul><h2 class="anchor anchorWithStickyNavbar_mojV" id="v220---2018-10-25">v2.2.0 - 2018-10-25<a class="hash-link" href="#v220---2018-10-25" title="Direct link to heading">​</a></h2><ul><li>Added support for <a href="https://taskfile.org/#/usage?id=including-other-taskfiles" target="_blank" rel="noopener noreferrer">including other Taskfiles</a> (#98)<ul><li>This should be considered experimental. For now, only including local files is supported, but support for including remote Taskfiles is being discussed. If you have any feedback, please comment on #98.</li></ul></li><li>Task now have a dedicated documentation site: <a href="https://taskfile.org" target="_blank" rel="noopener noreferrer">https://taskfile.org</a><ul><li>Thanks to <a href="https://docsify.js.org/" target="_blank" rel="noopener noreferrer">Docsify</a> for making this pretty easy. To check the source code, just take a look at the <a href="https://github.com/go-task/task/tree/master/docs" target="_blank" rel="noopener noreferrer">docs</a> directory of this repository. Contributions to the documentation is really appreciated.</li></ul></li></ul><h2 class="anchor anchorWithStickyNavbar_mojV" id="v211---2018-09-17">v2.1.1 - 2018-09-17<a class="hash-link" href="#v211---2018-09-17" title="Direct link to heading">​</a></h2><ul><li>Fix suggestion to use <code>task --init</code> not being shown anymore (when a <code>Taskfile.yml</code> is not found)</li><li>Fix error when using checksum method and no file exists for a source glob (#131)</li><li>Fix signal handling when the <code>--watch</code> flag is given (#132)</li></ul><h2 class="anchor anchorWithStickyNavbar_mojV" id="v210---2018-08-19">v2.1.0 - 2018-08-19<a class="hash-link" href="#v210---2018-08-19" title="Direct link to heading">​</a></h2><ul><li>Add a <code>ignore_error</code> option to task and command (#123)</li><li>Add a dry run mode (<code>--dry</code> flag) (#126)</li></ul><h2 class="anchor anchorWithStickyNavbar_mojV" id="v203---2018-06-24">v2.0.3 - 2018-06-24<a class="hash-link" href="#v203---2018-06-24" title="Direct link to heading">​</a></h2><ul><li>Expand environment variables on &quot;dir&quot;, &quot;sources&quot; and &quot;generates&quot; (#116)</li><li>Fix YAML merging syntax (#112)</li><li>Add ZSH completion (#111)</li><li>Implement new <code>output</code> option. Please check out the <a href="https://github.com/go-task/task#output-syntax" target="_blank" rel="noopener noreferrer">documentation</a></li></ul><h2 class="anchor anchorWithStickyNavbar_mojV" id="v202---2018-05-01">v2.0.2 - 2018-05-01<a class="hash-link" href="#v202---2018-05-01" title="Direct link to heading">​</a></h2><ul><li>Fix merging of YAML anchors (#112)</li></ul><h2 class="anchor anchorWithStickyNavbar_mojV" id="v201---2018-03-11">v2.0.1 - 2018-03-11<a class="hash-link" href="#v201---2018-03-11" title="Direct link to heading">​</a></h2><ul><li>Fixes panic on <code>task --list</code></li></ul><h2 class="anchor anchorWithStickyNavbar_mojV" id="v200---2018-03-08">v2.0.0 - 2018-03-08<a class="hash-link" href="#v200---2018-03-08" title="Direct link to heading">​</a></h2><p>Version 2.0.0 is here, with a new Taskfile format.</p><p>Please, make sure to read the <a href="https://github.com/go-task/task/blob/master/TASKFILE_VERSIONS.md" target="_blank" rel="noopener noreferrer">Taskfile versions</a> document, since it describes in depth what changed for this version.</p><ul><li>New Taskfile version 2 (<a href="https://github.com/go-task/task/issues/77" target="_blank" rel="noopener noreferrer">https://github.com/go-task/task/issues/77</a>)</li><li>Possibility to have global variables in the <code>Taskfile.yml</code> instead of <code>Taskvars.yml</code> (<a href="https://github.com/go-task/task/issues/66" target="_blank" rel="noopener noreferrer">https://github.com/go-task/task/issues/66</a>)</li><li>Small improvements and fixes</li></ul><h2 class="anchor anchorWithStickyNavbar_mojV" id="v144---2017-11-19">v1.4.4 - 2017-11-19<a class="hash-link" href="#v144---2017-11-19" title="Direct link to heading">​</a></h2><ul><li>Handle SIGINT and SIGTERM (#75);</li><li>List: print message with there&#x27;s no task with description;</li><li>Expand home dir (&quot;~&quot; symbol) on paths (#74);</li><li>Add Snap as an installation method;</li><li>Move examples to its own repo;</li><li>Watch: also walk on tasks called on on &quot;cmds&quot;, and not only on &quot;deps&quot;;</li><li>Print logs to stderr instead of stdout (#68);</li><li>Remove deprecated <code>set</code> keyword;</li><li>Add checksum based status check, alternative to timestamp based.</li></ul><h2 class="anchor anchorWithStickyNavbar_mojV" id="v143---2017-09-07">v1.4.3 - 2017-09-07<a class="hash-link" href="#v143---2017-09-07" title="Direct link to heading">​</a></h2><ul><li>Allow assigning variables to tasks at run time via CLI (#33)</li><li>Added suport for multiline variables from sh (#64)</li><li>Fixes env: remove square braces and evaluate shell (#62)</li><li>Watch: change watch library and few fixes and improvements</li><li>When use watching, cancel and restart long running process on file change (#59 and #60)</li></ul><h2 class="anchor anchorWithStickyNavbar_mojV" id="v142---2017-07-30">v1.4.2 - 2017-07-30<a class="hash-link" href="#v142---2017-07-30" title="Direct link to heading">​</a></h2><ul><li>Flag to set directory of execution</li><li>Always echo command if is verbose mode</li><li>Add silent mode to disable echoing of commands</li><li>Fixes and improvements of variables (#56)</li></ul><h2 class="anchor anchorWithStickyNavbar_mojV" id="v141---2017-07-15">v1.4.1 - 2017-07-15<a class="hash-link" href="#v141---2017-07-15" title="Direct link to heading">​</a></h2><ul><li>Allow use of YAML for dynamic variables instead of $ prefix<ul><li><code>VAR: {sh: echo Hello}</code> instead of <code>VAR: $echo Hello</code></li></ul></li><li>Add <code>--list</code> (or <code>-l</code>) flag to print existing tasks</li><li>OS specific Taskvars file (e.g. <code>Taskvars_windows.yml</code>, <code>Taskvars_linux.yml</code>, etc)</li><li>Consider task up-to-date on equal timestamps (#49)</li><li>Allow absolute path in generates section (#48)</li><li>Bugfix: allow templating when calling deps (#42)</li><li>Fix panic for invalid task in cyclic dep detection</li><li>Better error output for dynamic variables in Taskvars.yml (#41)</li><li>Allow template evaluation in parameters</li></ul><h2 class="anchor anchorWithStickyNavbar_mojV" id="v140---2017-07-06">v1.4.0 - 2017-07-06<a class="hash-link" href="#v140---2017-07-06" title="Direct link to heading">​</a></h2><ul><li>Cache dynamic variables</li><li>Add verbose mode (<code>-v</code> flag)</li><li>Support to task parameters (overriding vars) (#31) (#32)</li><li>Print command, also when &quot;set:&quot; is specified (#35)</li><li>Improve task command help text (#35)</li></ul><h2 class="anchor anchorWithStickyNavbar_mojV" id="v131---2017-06-14">v1.3.1 - 2017-06-14<a class="hash-link" href="#v131---2017-06-14" title="Direct link to heading">​</a></h2><ul><li>Fix glob not working on commands (#28)</li><li>Add ExeExt template function</li><li>Add <code>--init</code> flag to create a new Taskfile</li><li>Add status option to prevent task from running (#27)</li><li>Allow interpolation on <code>generates</code> and <code>sources</code> attributes (#26)</li></ul><h2 class="anchor anchorWithStickyNavbar_mojV" id="v130---2017-04-24">v1.3.0 - 2017-04-24<a class="hash-link" href="#v130---2017-04-24" title="Direct link to heading">​</a></h2><ul><li>Migrate from os/exec.Cmd to a native Go sh/bash interpreter<ul><li>This is a potentially breaking change if you use Windows.</li><li>Now, <code>cmd</code> is not used anymore on Windows. Always use Bash-like syntax for your commands, even on Windows.</li></ul></li><li>Add &quot;ToSlash&quot; and &quot;FromSlash&quot; to template functions</li><li>Use functions defined on github.com/Masterminds/sprig</li><li>Do not redirect stdin while running variables commands</li><li>Using <code>context</code> and <code>errgroup</code> packages (this will make other tasks to be cancelled, if one returned an error)</li></ul><h2 class="anchor anchorWithStickyNavbar_mojV" id="v120---2017-04-02">v1.2.0 - 2017-04-02<a class="hash-link" href="#v120---2017-04-02" title="Direct link to heading">​</a></h2><ul><li>More tests and Travis integration</li><li>Watch a task (experimental)</li><li>Possibility to call another task</li><li>Fix &quot;=&quot; not being reconized in variables/environment variables</li><li>Tasks can now have a description, and help will print them (#10)</li><li>Task dependencies now run concurrently</li><li>Support for a default task (#16)</li></ul><h2 class="anchor anchorWithStickyNavbar_mojV" id="v110---2017-03-08">v1.1.0 - 2017-03-08<a class="hash-link" href="#v110---2017-03-08" title="Direct link to heading">​</a></h2><ul><li>Support for YAML, TOML and JSON (#1)</li><li>Support running command in another directory (#4)</li><li><code>--force</code> or <code>-f</code> flag to force execution of task even when it&#x27;s up-to-date</li><li>Detection of cyclic dependencies (#5)</li><li>Support for variables (#6, #9, #14)</li><li>Operation System specific commands and variables (#13)</li></ul><h2 class="anchor anchorWithStickyNavbar_mojV" id="v100---2017-02-28">v1.0.0 - 2017-02-28<a class="hash-link" href="#v100---2017-02-28" title="Direct link to heading">​</a></h2><ul><li>Add LICENSE file</li></ul></div></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages navigation"><a class="pagination-nav__link pagination-nav__link--prev" href="/community/"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Community</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/releasing/"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">Releasing</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_cNA8 thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#v3121---2022-05-10" class="table-of-contents__link toc-highlight">v3.12.1 - 2022-05-10</a></li><li><a href="#v3120---2022-03-31" class="table-of-contents__link toc-highlight">v3.12.0 - 2022-03-31</a></li><li><a href="#v3110---2022-02-19" class="table-of-contents__link toc-highlight">v3.11.0 - 2022-02-19</a></li><li><a href="#v3100---2022-01-04" class="table-of-contents__link toc-highlight">v3.10.0 - 2022-01-04</a></li><li><a href="#v392---2021-12-02" class="table-of-contents__link toc-highlight">v3.9.2 - 2021-12-02</a></li><li><a href="#v391---2021-11-28" class="table-of-contents__link toc-highlight">v3.9.1 - 2021-11-28</a></li><li><a href="#v390---2021-10-02" class="table-of-contents__link toc-highlight">v3.9.0 - 2021-10-02</a></li><li><a href="#v380---2021-09-26" class="table-of-contents__link toc-highlight">v3.8.0 - 2021-09-26</a></li><li><a href="#v373---2021-09-04" class="table-of-contents__link toc-highlight">v3.7.3 - 2021-09-04</a></li><li><a href="#v370---2021-07-31" class="table-of-contents__link toc-highlight">v3.7.0 - 2021-07-31</a></li><li><a href="#v360---2021-07-10" class="table-of-contents__link toc-highlight">v3.6.0 - 2021-07-10</a></li><li><a href="#v350---2021-07-04" class="table-of-contents__link toc-highlight">v3.5.0 - 2021-07-04</a></li><li><a href="#v343---2021-05-30" class="table-of-contents__link toc-highlight">v3.4.3 - 2021-05-30</a></li><li><a href="#v342---2021-04-23" class="table-of-contents__link toc-highlight">v3.4.2 - 2021-04-23</a></li><li><a href="#v341---2021-04-17" class="table-of-contents__link toc-highlight">v3.4.1 - 2021-04-17</a></li><li><a href="#v330---2021-03-20" class="table-of-contents__link toc-highlight">v3.3.0 - 2021-03-20</a></li><li><a href="#v322---2021-01-12" class="table-of-contents__link toc-highlight">v3.2.2 - 2021-01-12</a></li><li><a href="#v321---2021-01-09" class="table-of-contents__link toc-highlight">v3.2.1 - 2021-01-09</a></li><li><a href="#v320---2021-01-07" class="table-of-contents__link toc-highlight">v3.2.0 - 2021-01-07</a></li><li><a href="#v310---2021-01-03" class="table-of-contents__link toc-highlight">v3.1.0 - 2021-01-03</a></li><li><a href="#v301---2020-12-26" class="table-of-contents__link toc-highlight">v3.0.1 - 2020-12-26</a></li><li><a href="#v300---2020-08-16" class="table-of-contents__link toc-highlight">v3.0.0 - 2020-08-16</a></li><li><a href="#v281---2020-05-20" class="table-of-contents__link toc-highlight">v2.8.1 - 2020-05-20</a></li><li><a href="#v280---2019-12-07" class="table-of-contents__link toc-highlight">v2.8.0 - 2019-12-07</a></li><li><a href="#v271---2019-11-10" class="table-of-contents__link toc-highlight">v2.7.1 - 2019-11-10</a></li><li><a href="#v270---2019-09-22" class="table-of-contents__link toc-highlight">v2.7.0 - 2019-09-22</a></li><li><a href="#v260---2019-07-21" class="table-of-contents__link toc-highlight">v2.6.0 - 2019-07-21</a></li><li><a href="#v252---2019-05-11" class="table-of-contents__link toc-highlight">v2.5.2 - 2019-05-11</a></li><li><a href="#251---2019-04-27" class="table-of-contents__link toc-highlight">2.5.1 - 2019-04-27</a></li><li><a href="#v250---2019-03-16" class="table-of-contents__link toc-highlight">v2.5.0 - 2019-03-16</a></li><li><a href="#v240---2019-02-21" class="table-of-contents__link toc-highlight">v2.4.0 - 2019-02-21</a></li><li><a href="#v230---2019-01-02" class="table-of-contents__link toc-highlight">v2.3.0 - 2019-01-02</a></li><li><a href="#v221---2018-12-09" class="table-of-contents__link toc-highlight">v2.2.1 - 2018-12-09</a></li><li><a href="#v220---2018-10-25" class="table-of-contents__link toc-highlight">v2.2.0 - 2018-10-25</a></li><li><a href="#v211---2018-09-17" class="table-of-contents__link toc-highlight">v2.1.1 - 2018-09-17</a></li><li><a href="#v210---2018-08-19" class="table-of-contents__link toc-highlight">v2.1.0 - 2018-08-19</a></li><li><a href="#v203---2018-06-24" class="table-of-contents__link toc-highlight">v2.0.3 - 2018-06-24</a></li><li><a href="#v202---2018-05-01" class="table-of-contents__link toc-highlight">v2.0.2 - 2018-05-01</a></li><li><a href="#v201---2018-03-11" class="table-of-contents__link toc-highlight">v2.0.1 - 2018-03-11</a></li><li><a href="#v200---2018-03-08" class="table-of-contents__link toc-highlight">v2.0.0 - 2018-03-08</a></li><li><a href="#v144---2017-11-19" class="table-of-contents__link toc-highlight">v1.4.4 - 2017-11-19</a></li><li><a href="#v143---2017-09-07" class="table-of-contents__link toc-highlight">v1.4.3 - 2017-09-07</a></li><li><a href="#v142---2017-07-30" class="table-of-contents__link toc-highlight">v1.4.2 - 2017-07-30</a></li><li><a href="#v141---2017-07-15" class="table-of-contents__link toc-highlight">v1.4.1 - 2017-07-15</a></li><li><a href="#v140---2017-07-06" class="table-of-contents__link toc-highlight">v1.4.0 - 2017-07-06</a></li><li><a href="#v131---2017-06-14" class="table-of-contents__link toc-highlight">v1.3.1 - 2017-06-14</a></li><li><a href="#v130---2017-04-24" class="table-of-contents__link toc-highlight">v1.3.0 - 2017-04-24</a></li><li><a href="#v120---2017-04-02" class="table-of-contents__link toc-highlight">v1.2.0 - 2017-04-02</a></li><li><a href="#v110---2017-03-08" class="table-of-contents__link toc-highlight">v1.1.0 - 2017-03-08</a></li><li><a href="#v100---2017-02-28" class="table-of-contents__link toc-highlight">v1.0.0 - 2017-02-28</a></li></ul></div></div></div></div></main></div></div><footer class="footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Docs</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/installation/">Installation</a></li><li class="footer__item"><a class="footer__link-item" href="/usage/">Usage</a></li><li class="footer__item"><a class="footer__link-item" href="/donate/">Donate</a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://github.com/go-task/task" target="_blank" rel="noopener noreferrer" class="footer__link-item">GitHub<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discord.gg/6TY36E39UK" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://opencollective.com/task" target="_blank" rel="noopener noreferrer" class="footer__link-item">OpenCollective<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.ecad62b6.js"></script>
-<script src="/assets/js/main.02eb1717.js"></script>
+).</li></ul><h2 class="anchor anchorWithStickyNavbar_mojV" id="v221---2018-12-09">v2.2.1 - 2018-12-09<a class="hash-link" href="#v221---2018-12-09" title="Direct link to heading">​</a></h2><ul><li>This repository now uses Go Modules (#143). We&#x27;ll still keep the <code>vendor</code> directory in sync for some time, though;</li><li>Fixing a bug when the Taskfile has no tasks but includes another Taskfile (#150);</li><li>Fix a bug when calling another task or a dependency in an included Taskfile (#151).</li></ul><h2 class="anchor anchorWithStickyNavbar_mojV" id="v220---2018-10-25">v2.2.0 - 2018-10-25<a class="hash-link" href="#v220---2018-10-25" title="Direct link to heading">​</a></h2><ul><li>Added support for <a href="https://taskfile.org/#/usage?id=including-other-taskfiles" target="_blank" rel="noopener noreferrer">including other Taskfiles</a> (#98)<ul><li>This should be considered experimental. For now, only including local files is supported, but support for including remote Taskfiles is being discussed. If you have any feedback, please comment on #98.</li></ul></li><li>Task now have a dedicated documentation site: <a href="https://taskfile.org" target="_blank" rel="noopener noreferrer">https://taskfile.org</a><ul><li>Thanks to <a href="https://docsify.js.org/" target="_blank" rel="noopener noreferrer">Docsify</a> for making this pretty easy. To check the source code, just take a look at the <a href="https://github.com/go-task/task/tree/master/docs" target="_blank" rel="noopener noreferrer">docs</a> directory of this repository. Contributions to the documentation is really appreciated.</li></ul></li></ul><h2 class="anchor anchorWithStickyNavbar_mojV" id="v211---2018-09-17">v2.1.1 - 2018-09-17<a class="hash-link" href="#v211---2018-09-17" title="Direct link to heading">​</a></h2><ul><li>Fix suggestion to use <code>task --init</code> not being shown anymore (when a <code>Taskfile.yml</code> is not found)</li><li>Fix error when using checksum method and no file exists for a source glob (#131)</li><li>Fix signal handling when the <code>--watch</code> flag is given (#132)</li></ul><h2 class="anchor anchorWithStickyNavbar_mojV" id="v210---2018-08-19">v2.1.0 - 2018-08-19<a class="hash-link" href="#v210---2018-08-19" title="Direct link to heading">​</a></h2><ul><li>Add a <code>ignore_error</code> option to task and command (#123)</li><li>Add a dry run mode (<code>--dry</code> flag) (#126)</li></ul><h2 class="anchor anchorWithStickyNavbar_mojV" id="v203---2018-06-24">v2.0.3 - 2018-06-24<a class="hash-link" href="#v203---2018-06-24" title="Direct link to heading">​</a></h2><ul><li>Expand environment variables on &quot;dir&quot;, &quot;sources&quot; and &quot;generates&quot; (#116)</li><li>Fix YAML merging syntax (#112)</li><li>Add ZSH completion (#111)</li><li>Implement new <code>output</code> option. Please check out the <a href="https://github.com/go-task/task#output-syntax" target="_blank" rel="noopener noreferrer">documentation</a></li></ul><h2 class="anchor anchorWithStickyNavbar_mojV" id="v202---2018-05-01">v2.0.2 - 2018-05-01<a class="hash-link" href="#v202---2018-05-01" title="Direct link to heading">​</a></h2><ul><li>Fix merging of YAML anchors (#112)</li></ul><h2 class="anchor anchorWithStickyNavbar_mojV" id="v201---2018-03-11">v2.0.1 - 2018-03-11<a class="hash-link" href="#v201---2018-03-11" title="Direct link to heading">​</a></h2><ul><li>Fixes panic on <code>task --list</code></li></ul><h2 class="anchor anchorWithStickyNavbar_mojV" id="v200---2018-03-08">v2.0.0 - 2018-03-08<a class="hash-link" href="#v200---2018-03-08" title="Direct link to heading">​</a></h2><p>Version 2.0.0 is here, with a new Taskfile format.</p><p>Please, make sure to read the <a href="https://github.com/go-task/task/blob/master/TASKFILE_VERSIONS.md" target="_blank" rel="noopener noreferrer">Taskfile versions</a> document, since it describes in depth what changed for this version.</p><ul><li>New Taskfile version 2 (<a href="https://github.com/go-task/task/issues/77" target="_blank" rel="noopener noreferrer">https://github.com/go-task/task/issues/77</a>)</li><li>Possibility to have global variables in the <code>Taskfile.yml</code> instead of <code>Taskvars.yml</code> (<a href="https://github.com/go-task/task/issues/66" target="_blank" rel="noopener noreferrer">https://github.com/go-task/task/issues/66</a>)</li><li>Small improvements and fixes</li></ul><h2 class="anchor anchorWithStickyNavbar_mojV" id="v144---2017-11-19">v1.4.4 - 2017-11-19<a class="hash-link" href="#v144---2017-11-19" title="Direct link to heading">​</a></h2><ul><li>Handle SIGINT and SIGTERM (#75);</li><li>List: print message with there&#x27;s no task with description;</li><li>Expand home dir (&quot;~&quot; symbol) on paths (#74);</li><li>Add Snap as an installation method;</li><li>Move examples to its own repo;</li><li>Watch: also walk on tasks called on on &quot;cmds&quot;, and not only on &quot;deps&quot;;</li><li>Print logs to stderr instead of stdout (#68);</li><li>Remove deprecated <code>set</code> keyword;</li><li>Add checksum based status check, alternative to timestamp based.</li></ul><h2 class="anchor anchorWithStickyNavbar_mojV" id="v143---2017-09-07">v1.4.3 - 2017-09-07<a class="hash-link" href="#v143---2017-09-07" title="Direct link to heading">​</a></h2><ul><li>Allow assigning variables to tasks at run time via CLI (#33)</li><li>Added suport for multiline variables from sh (#64)</li><li>Fixes env: remove square braces and evaluate shell (#62)</li><li>Watch: change watch library and few fixes and improvements</li><li>When use watching, cancel and restart long running process on file change (#59 and #60)</li></ul><h2 class="anchor anchorWithStickyNavbar_mojV" id="v142---2017-07-30">v1.4.2 - 2017-07-30<a class="hash-link" href="#v142---2017-07-30" title="Direct link to heading">​</a></h2><ul><li>Flag to set directory of execution</li><li>Always echo command if is verbose mode</li><li>Add silent mode to disable echoing of commands</li><li>Fixes and improvements of variables (#56)</li></ul><h2 class="anchor anchorWithStickyNavbar_mojV" id="v141---2017-07-15">v1.4.1 - 2017-07-15<a class="hash-link" href="#v141---2017-07-15" title="Direct link to heading">​</a></h2><ul><li>Allow use of YAML for dynamic variables instead of $ prefix<ul><li><code>VAR: {sh: echo Hello}</code> instead of <code>VAR: $echo Hello</code></li></ul></li><li>Add <code>--list</code> (or <code>-l</code>) flag to print existing tasks</li><li>OS specific Taskvars file (e.g. <code>Taskvars_windows.yml</code>, <code>Taskvars_linux.yml</code>, etc)</li><li>Consider task up-to-date on equal timestamps (#49)</li><li>Allow absolute path in generates section (#48)</li><li>Bugfix: allow templating when calling deps (#42)</li><li>Fix panic for invalid task in cyclic dep detection</li><li>Better error output for dynamic variables in Taskvars.yml (#41)</li><li>Allow template evaluation in parameters</li></ul><h2 class="anchor anchorWithStickyNavbar_mojV" id="v140---2017-07-06">v1.4.0 - 2017-07-06<a class="hash-link" href="#v140---2017-07-06" title="Direct link to heading">​</a></h2><ul><li>Cache dynamic variables</li><li>Add verbose mode (<code>-v</code> flag)</li><li>Support to task parameters (overriding vars) (#31) (#32)</li><li>Print command, also when &quot;set:&quot; is specified (#35)</li><li>Improve task command help text (#35)</li></ul><h2 class="anchor anchorWithStickyNavbar_mojV" id="v131---2017-06-14">v1.3.1 - 2017-06-14<a class="hash-link" href="#v131---2017-06-14" title="Direct link to heading">​</a></h2><ul><li>Fix glob not working on commands (#28)</li><li>Add ExeExt template function</li><li>Add <code>--init</code> flag to create a new Taskfile</li><li>Add status option to prevent task from running (#27)</li><li>Allow interpolation on <code>generates</code> and <code>sources</code> attributes (#26)</li></ul><h2 class="anchor anchorWithStickyNavbar_mojV" id="v130---2017-04-24">v1.3.0 - 2017-04-24<a class="hash-link" href="#v130---2017-04-24" title="Direct link to heading">​</a></h2><ul><li>Migrate from os/exec.Cmd to a native Go sh/bash interpreter<ul><li>This is a potentially breaking change if you use Windows.</li><li>Now, <code>cmd</code> is not used anymore on Windows. Always use Bash-like syntax for your commands, even on Windows.</li></ul></li><li>Add &quot;ToSlash&quot; and &quot;FromSlash&quot; to template functions</li><li>Use functions defined on github.com/Masterminds/sprig</li><li>Do not redirect stdin while running variables commands</li><li>Using <code>context</code> and <code>errgroup</code> packages (this will make other tasks to be cancelled, if one returned an error)</li></ul><h2 class="anchor anchorWithStickyNavbar_mojV" id="v120---2017-04-02">v1.2.0 - 2017-04-02<a class="hash-link" href="#v120---2017-04-02" title="Direct link to heading">​</a></h2><ul><li>More tests and Travis integration</li><li>Watch a task (experimental)</li><li>Possibility to call another task</li><li>Fix &quot;=&quot; not being reconized in variables/environment variables</li><li>Tasks can now have a description, and help will print them (#10)</li><li>Task dependencies now run concurrently</li><li>Support for a default task (#16)</li></ul><h2 class="anchor anchorWithStickyNavbar_mojV" id="v110---2017-03-08">v1.1.0 - 2017-03-08<a class="hash-link" href="#v110---2017-03-08" title="Direct link to heading">​</a></h2><ul><li>Support for YAML, TOML and JSON (#1)</li><li>Support running command in another directory (#4)</li><li><code>--force</code> or <code>-f</code> flag to force execution of task even when it&#x27;s up-to-date</li><li>Detection of cyclic dependencies (#5)</li><li>Support for variables (#6, #9, #14)</li><li>Operation System specific commands and variables (#13)</li></ul><h2 class="anchor anchorWithStickyNavbar_mojV" id="v100---2017-02-28">v1.0.0 - 2017-02-28<a class="hash-link" href="#v100---2017-02-28" title="Direct link to heading">​</a></h2><ul><li>Add LICENSE file</li></ul></div></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages navigation"><a class="pagination-nav__link pagination-nav__link--prev" href="/styleguide/"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Styleguide</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/community/"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">Community</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_cNA8 thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#v3121---2022-05-10" class="table-of-contents__link toc-highlight">v3.12.1 - 2022-05-10</a></li><li><a href="#v3120---2022-03-31" class="table-of-contents__link toc-highlight">v3.12.0 - 2022-03-31</a></li><li><a href="#v3110---2022-02-19" class="table-of-contents__link toc-highlight">v3.11.0 - 2022-02-19</a></li><li><a href="#v3100---2022-01-04" class="table-of-contents__link toc-highlight">v3.10.0 - 2022-01-04</a></li><li><a href="#v392---2021-12-02" class="table-of-contents__link toc-highlight">v3.9.2 - 2021-12-02</a></li><li><a href="#v391---2021-11-28" class="table-of-contents__link toc-highlight">v3.9.1 - 2021-11-28</a></li><li><a href="#v390---2021-10-02" class="table-of-contents__link toc-highlight">v3.9.0 - 2021-10-02</a></li><li><a href="#v380---2021-09-26" class="table-of-contents__link toc-highlight">v3.8.0 - 2021-09-26</a></li><li><a href="#v373---2021-09-04" class="table-of-contents__link toc-highlight">v3.7.3 - 2021-09-04</a></li><li><a href="#v370---2021-07-31" class="table-of-contents__link toc-highlight">v3.7.0 - 2021-07-31</a></li><li><a href="#v360---2021-07-10" class="table-of-contents__link toc-highlight">v3.6.0 - 2021-07-10</a></li><li><a href="#v350---2021-07-04" class="table-of-contents__link toc-highlight">v3.5.0 - 2021-07-04</a></li><li><a href="#v343---2021-05-30" class="table-of-contents__link toc-highlight">v3.4.3 - 2021-05-30</a></li><li><a href="#v342---2021-04-23" class="table-of-contents__link toc-highlight">v3.4.2 - 2021-04-23</a></li><li><a href="#v341---2021-04-17" class="table-of-contents__link toc-highlight">v3.4.1 - 2021-04-17</a></li><li><a href="#v330---2021-03-20" class="table-of-contents__link toc-highlight">v3.3.0 - 2021-03-20</a></li><li><a href="#v322---2021-01-12" class="table-of-contents__link toc-highlight">v3.2.2 - 2021-01-12</a></li><li><a href="#v321---2021-01-09" class="table-of-contents__link toc-highlight">v3.2.1 - 2021-01-09</a></li><li><a href="#v320---2021-01-07" class="table-of-contents__link toc-highlight">v3.2.0 - 2021-01-07</a></li><li><a href="#v310---2021-01-03" class="table-of-contents__link toc-highlight">v3.1.0 - 2021-01-03</a></li><li><a href="#v301---2020-12-26" class="table-of-contents__link toc-highlight">v3.0.1 - 2020-12-26</a></li><li><a href="#v300---2020-08-16" class="table-of-contents__link toc-highlight">v3.0.0 - 2020-08-16</a></li><li><a href="#v281---2020-05-20" class="table-of-contents__link toc-highlight">v2.8.1 - 2020-05-20</a></li><li><a href="#v280---2019-12-07" class="table-of-contents__link toc-highlight">v2.8.0 - 2019-12-07</a></li><li><a href="#v271---2019-11-10" class="table-of-contents__link toc-highlight">v2.7.1 - 2019-11-10</a></li><li><a href="#v270---2019-09-22" class="table-of-contents__link toc-highlight">v2.7.0 - 2019-09-22</a></li><li><a href="#v260---2019-07-21" class="table-of-contents__link toc-highlight">v2.6.0 - 2019-07-21</a></li><li><a href="#v252---2019-05-11" class="table-of-contents__link toc-highlight">v2.5.2 - 2019-05-11</a></li><li><a href="#251---2019-04-27" class="table-of-contents__link toc-highlight">2.5.1 - 2019-04-27</a></li><li><a href="#v250---2019-03-16" class="table-of-contents__link toc-highlight">v2.5.0 - 2019-03-16</a></li><li><a href="#v240---2019-02-21" class="table-of-contents__link toc-highlight">v2.4.0 - 2019-02-21</a></li><li><a href="#v230---2019-01-02" class="table-of-contents__link toc-highlight">v2.3.0 - 2019-01-02</a></li><li><a href="#v221---2018-12-09" class="table-of-contents__link toc-highlight">v2.2.1 - 2018-12-09</a></li><li><a href="#v220---2018-10-25" class="table-of-contents__link toc-highlight">v2.2.0 - 2018-10-25</a></li><li><a href="#v211---2018-09-17" class="table-of-contents__link toc-highlight">v2.1.1 - 2018-09-17</a></li><li><a href="#v210---2018-08-19" class="table-of-contents__link toc-highlight">v2.1.0 - 2018-08-19</a></li><li><a href="#v203---2018-06-24" class="table-of-contents__link toc-highlight">v2.0.3 - 2018-06-24</a></li><li><a href="#v202---2018-05-01" class="table-of-contents__link toc-highlight">v2.0.2 - 2018-05-01</a></li><li><a href="#v201---2018-03-11" class="table-of-contents__link toc-highlight">v2.0.1 - 2018-03-11</a></li><li><a href="#v200---2018-03-08" class="table-of-contents__link toc-highlight">v2.0.0 - 2018-03-08</a></li><li><a href="#v144---2017-11-19" class="table-of-contents__link toc-highlight">v1.4.4 - 2017-11-19</a></li><li><a href="#v143---2017-09-07" class="table-of-contents__link toc-highlight">v1.4.3 - 2017-09-07</a></li><li><a href="#v142---2017-07-30" class="table-of-contents__link toc-highlight">v1.4.2 - 2017-07-30</a></li><li><a href="#v141---2017-07-15" class="table-of-contents__link toc-highlight">v1.4.1 - 2017-07-15</a></li><li><a href="#v140---2017-07-06" class="table-of-contents__link toc-highlight">v1.4.0 - 2017-07-06</a></li><li><a href="#v131---2017-06-14" class="table-of-contents__link toc-highlight">v1.3.1 - 2017-06-14</a></li><li><a href="#v130---2017-04-24" class="table-of-contents__link toc-highlight">v1.3.0 - 2017-04-24</a></li><li><a href="#v120---2017-04-02" class="table-of-contents__link toc-highlight">v1.2.0 - 2017-04-02</a></li><li><a href="#v110---2017-03-08" class="table-of-contents__link toc-highlight">v1.1.0 - 2017-03-08</a></li><li><a href="#v100---2017-02-28" class="table-of-contents__link toc-highlight">v1.0.0 - 2017-02-28</a></li></ul></div></div></div></div></main></div></div><footer class="footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Docs</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/installation/">Installation</a></li><li class="footer__item"><a class="footer__link-item" href="/usage/">Usage</a></li><li class="footer__item"><a class="footer__link-item" href="/donate/">Donate</a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://github.com/go-task/task" target="_blank" rel="noopener noreferrer" class="footer__link-item">GitHub<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discord.gg/6TY36E39UK" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://opencollective.com/task" target="_blank" rel="noopener noreferrer" class="footer__link-item">OpenCollective<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div></div></footer></div>
+<script src="/assets/js/runtime~main.dc8eec3e.js"></script>
+<script src="/assets/js/main.a2abdebd.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/community/index.html b/community/index.html
index 11bdc102..50eec56d 100644
--- a/community/index.html
+++ b/community/index.html
@@ -11,12 +11,12 @@
 
 
 <script src="/js/carbon.js" async></script><title data-rh="true">Community | Task</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://taskfile.dev/community/"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="og:image" content="https://preview-taskfile.netlify.app/img/logo.svg"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Community | Task"><meta data-rh="true" name="description" content="Some of the work to improve the Task ecosystem is done by the community, be"><meta data-rh="true" property="og:description" content="Some of the work to improve the Task ecosystem is done by the community, be"><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://taskfile.dev/community/"><link data-rh="true" rel="alternate" href="https://taskfile.dev/community/" hreflang="en"><link data-rh="true" rel="alternate" href="https://taskfile.dev/community/" hreflang="x-default"><link rel="stylesheet" href="/assets/css/styles.3fb3b1af.css">
-<link rel="preload" href="/assets/js/runtime~main.ecad62b6.js" as="script">
-<link rel="preload" href="/assets/js/main.02eb1717.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.dc8eec3e.js" as="script">
+<link rel="preload" href="/assets/js/main.a2abdebd.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
-<div role="region"><a href="#" class="skipToContent_ZgBM">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><div class="navbar__logo"><img src="/img/logo.svg" alt="Task Logo" class="themedImage_W2Cr themedImage--light_TfLj"><img src="/img/logo.svg" alt="Task Logo" class="themedImage_W2Cr themedImage--dark_oUvU"></div><b class="navbar__title text--truncate">Task</b></a><a class="navbar__item navbar__link navbar__link--active" href="/installation/">Installation</a><a class="navbar__item navbar__link navbar__link--active" href="/usage/">Usage</a><a class="navbar__item navbar__link navbar__link--active" href="/donate/">Donate</a></div><div class="navbar__items navbar__items--right"><a href="https://github.com/go-task/task" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">GitHub<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a><a href="https://discord.gg/6TY36E39UK" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a><div class="toggle_S7eR colorModeToggle_vKtC"><button class="clean-btn toggleButton_rCf9 toggleButtonDisabled_Pu9x" type="button" disabled="" title="Switch between dark and light mode (currently light mode)" aria-label="Switch between dark and light mode (currently light mode)"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_v35p"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_nQuB"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_dLyj"></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div class="main-wrapper docsWrapper_mKqt"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_RiI4" type="button"></button><div class="docPage_ualW"><aside class="theme-doc-sidebar-container docSidebarContainer_UQUJ"><div class="sidebar_RiAD"><nav class="menu thin-scrollbar menu_izAj"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/">Home</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/installation/">Installation</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/usage/">Usage</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/styleguide/">Styleguide</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" href="/community/">Community</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/changelog/">Changelog</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/releasing/">Releasing</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/taskfile-versions/">Taskfile Versions</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/donate/">Donate</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1"><div id="sidebar-ads"></div></li></ul></nav></div></aside><main class="docMainContainer_uL0j"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_DM6M"><div class="docItemContainer_vinB"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Xlws" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_kU5B"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Community</span><meta itemprop="position" content="1"></li></ul></nav><div class="tocCollapsible_bZGK theme-doc-toc-mobile tocMobile_TmEX"><button type="button" class="clean-btn tocCollapsibleButton_l22C">On this page</button></div><div class="theme-doc-markdown markdown"><h1>Community</h1><p>Some of the work to improve the Task ecosystem is done by the community, be
+<div role="region"><a href="#" class="skipToContent_ZgBM">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><div class="navbar__logo"><img src="/img/logo.svg" alt="Task Logo" class="themedImage_W2Cr themedImage--light_TfLj"><img src="/img/logo.svg" alt="Task Logo" class="themedImage_W2Cr themedImage--dark_oUvU"></div><b class="navbar__title text--truncate">Task</b></a><a class="navbar__item navbar__link navbar__link--active" href="/installation/">Installation</a><a class="navbar__item navbar__link navbar__link--active" href="/usage/">Usage</a><a class="navbar__item navbar__link navbar__link--active" href="/api/">API</a><a class="navbar__item navbar__link navbar__link--active" href="/donate/">Donate</a></div><div class="navbar__items navbar__items--right"><a href="https://github.com/go-task/task" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">GitHub<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a><a href="https://discord.gg/6TY36E39UK" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a><div class="toggle_S7eR colorModeToggle_vKtC"><button class="clean-btn toggleButton_rCf9 toggleButtonDisabled_Pu9x" type="button" disabled="" title="Switch between dark and light mode (currently light mode)" aria-label="Switch between dark and light mode (currently light mode)"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_v35p"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_nQuB"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_dLyj"></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div class="main-wrapper docsWrapper_mKqt"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_RiI4" type="button"></button><div class="docPage_ualW"><aside class="theme-doc-sidebar-container docSidebarContainer_UQUJ"><div class="sidebar_RiAD"><nav class="menu thin-scrollbar menu_izAj"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/">Home</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/installation/">Installation</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/usage/">Usage</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/api/">API Reference</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/styleguide/">Styleguide</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/changelog/">Changelog</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" href="/community/">Community</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/releasing/">Releasing</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/taskfile-versions/">Taskfile Versions</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/donate/">Donate</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1"><div id="sidebar-ads"></div></li></ul></nav></div></aside><main class="docMainContainer_uL0j"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_DM6M"><div class="docItemContainer_vinB"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Xlws" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_kU5B"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Community</span><meta itemprop="position" content="1"></li></ul></nav><div class="tocCollapsible_bZGK theme-doc-toc-mobile tocMobile_TmEX"><button type="button" class="clean-btn tocCollapsibleButton_l22C">On this page</button></div><div class="theme-doc-markdown markdown"><h1>Community</h1><p>Some of the work to improve the Task ecosystem is done by the community, be
 it installation methods or integrations with code editor. I (the author) am
 thankful for everyone that helps me to improve the overall experience.</p><h2 class="anchor anchorWithStickyNavbar_mojV" id="editor-integrations">Editor Integrations<a class="hash-link" href="#editor-integrations" title="Direct link to heading">​</a></h2><h3 class="anchor anchorWithStickyNavbar_mojV" id="json-schema">JSON Schema<a class="hash-link" href="#json-schema" title="Direct link to heading">​</a></h3><p><a href="https://github.com/KROSF" target="_blank" rel="noopener noreferrer">@KROSF</a> worked on a JSON Schema <a href="https://gist.github.com/KROSF/c5435acf590acd632f71bb720f685895" target="_blank" rel="noopener noreferrer">into this Gist</a>,
 which later was made officially available by <a href="https://github.com/Crandel" target="_blank" rel="noopener noreferrer">@Crandel</a>
@@ -37,8 +37,8 @@ by <a href="https://github.com/kovetskiy" target="_blank" rel="noopener noreferr
 <a href="https://opencollective.com/task" target="_blank" rel="noopener noreferrer">financial contributors</a>, all those who
 <a href="https://github.com/go-task/task/issues?q=is%3Aissue" target="_blank" rel="noopener noreferrer">reported bugs</a> and
 <a href="https://github.com/go-task/task/discussions" target="_blank" rel="noopener noreferrer">answered questions</a>.</p><p>If you know something that is missing in this document, please submit a
-pull request.</p></div></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages navigation"><a class="pagination-nav__link pagination-nav__link--prev" href="/styleguide/"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Styleguide</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/changelog/"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">Changelog</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_cNA8 thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#editor-integrations" class="table-of-contents__link toc-highlight">Editor Integrations</a><ul><li><a href="#json-schema" class="table-of-contents__link toc-highlight">JSON Schema</a></li><li><a href="#visual-studio-code-extension" class="table-of-contents__link toc-highlight">Visual Studio Code extension</a></li><li><a href="#sublime-text-4-package" class="table-of-contents__link toc-highlight">Sublime Text 4 package</a></li><li><a href="#intellij-plugin" class="table-of-contents__link toc-highlight">IntelliJ plugin</a></li></ul></li><li><a href="#installation-methods" class="table-of-contents__link toc-highlight">Installation methods</a></li><li><a href="#more" class="table-of-contents__link toc-highlight">More</a></li></ul></div></div></div></div></main></div></div><footer class="footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Docs</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/installation/">Installation</a></li><li class="footer__item"><a class="footer__link-item" href="/usage/">Usage</a></li><li class="footer__item"><a class="footer__link-item" href="/donate/">Donate</a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://github.com/go-task/task" target="_blank" rel="noopener noreferrer" class="footer__link-item">GitHub<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discord.gg/6TY36E39UK" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://opencollective.com/task" target="_blank" rel="noopener noreferrer" class="footer__link-item">OpenCollective<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.ecad62b6.js"></script>
-<script src="/assets/js/main.02eb1717.js"></script>
+pull request.</p></div></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages navigation"><a class="pagination-nav__link pagination-nav__link--prev" href="/changelog/"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Changelog</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/releasing/"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">Releasing</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_cNA8 thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#editor-integrations" class="table-of-contents__link toc-highlight">Editor Integrations</a><ul><li><a href="#json-schema" class="table-of-contents__link toc-highlight">JSON Schema</a></li><li><a href="#visual-studio-code-extension" class="table-of-contents__link toc-highlight">Visual Studio Code extension</a></li><li><a href="#sublime-text-4-package" class="table-of-contents__link toc-highlight">Sublime Text 4 package</a></li><li><a href="#intellij-plugin" class="table-of-contents__link toc-highlight">IntelliJ plugin</a></li></ul></li><li><a href="#installation-methods" class="table-of-contents__link toc-highlight">Installation methods</a></li><li><a href="#more" class="table-of-contents__link toc-highlight">More</a></li></ul></div></div></div></div></main></div></div><footer class="footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Docs</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/installation/">Installation</a></li><li class="footer__item"><a class="footer__link-item" href="/usage/">Usage</a></li><li class="footer__item"><a class="footer__link-item" href="/donate/">Donate</a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://github.com/go-task/task" target="_blank" rel="noopener noreferrer" class="footer__link-item">GitHub<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discord.gg/6TY36E39UK" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://opencollective.com/task" target="_blank" rel="noopener noreferrer" class="footer__link-item">OpenCollective<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div></div></footer></div>
+<script src="/assets/js/runtime~main.dc8eec3e.js"></script>
+<script src="/assets/js/main.a2abdebd.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/donate/index.html b/donate/index.html
index 11e6bbc4..9759cc36 100644
--- a/donate/index.html
+++ b/donate/index.html
@@ -11,17 +11,17 @@
 
 
 <script src="/js/carbon.js" async></script><title data-rh="true">Donate | Task</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://taskfile.dev/donate/"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="og:image" content="https://preview-taskfile.netlify.app/img/logo.svg"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Donate | Task"><meta data-rh="true" name="description" content="If you find this project useful, you can consider donating by using one of the"><meta data-rh="true" property="og:description" content="If you find this project useful, you can consider donating by using one of the"><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://taskfile.dev/donate/"><link data-rh="true" rel="alternate" href="https://taskfile.dev/donate/" hreflang="en"><link data-rh="true" rel="alternate" href="https://taskfile.dev/donate/" hreflang="x-default"><link rel="stylesheet" href="/assets/css/styles.3fb3b1af.css">
-<link rel="preload" href="/assets/js/runtime~main.ecad62b6.js" as="script">
-<link rel="preload" href="/assets/js/main.02eb1717.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.dc8eec3e.js" as="script">
+<link rel="preload" href="/assets/js/main.a2abdebd.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
-<div role="region"><a href="#" class="skipToContent_ZgBM">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><div class="navbar__logo"><img src="/img/logo.svg" alt="Task Logo" class="themedImage_W2Cr themedImage--light_TfLj"><img src="/img/logo.svg" alt="Task Logo" class="themedImage_W2Cr themedImage--dark_oUvU"></div><b class="navbar__title text--truncate">Task</b></a><a class="navbar__item navbar__link navbar__link--active" href="/installation/">Installation</a><a class="navbar__item navbar__link navbar__link--active" href="/usage/">Usage</a><a aria-current="page" class="navbar__item navbar__link navbar__link--active" href="/donate/">Donate</a></div><div class="navbar__items navbar__items--right"><a href="https://github.com/go-task/task" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">GitHub<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a><a href="https://discord.gg/6TY36E39UK" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a><div class="toggle_S7eR colorModeToggle_vKtC"><button class="clean-btn toggleButton_rCf9 toggleButtonDisabled_Pu9x" type="button" disabled="" title="Switch between dark and light mode (currently light mode)" aria-label="Switch between dark and light mode (currently light mode)"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_v35p"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_nQuB"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_dLyj"></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div class="main-wrapper docsWrapper_mKqt"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_RiI4" type="button"></button><div class="docPage_ualW"><aside class="theme-doc-sidebar-container docSidebarContainer_UQUJ"><div class="sidebar_RiAD"><nav class="menu thin-scrollbar menu_izAj"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/">Home</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/installation/">Installation</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/usage/">Usage</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/styleguide/">Styleguide</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/community/">Community</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/changelog/">Changelog</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/releasing/">Releasing</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/taskfile-versions/">Taskfile Versions</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" href="/donate/">Donate</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1"><div id="sidebar-ads"></div></li></ul></nav></div></aside><main class="docMainContainer_uL0j"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_DM6M"><div class="docItemContainer_vinB"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Xlws" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_kU5B"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Donate</span><meta itemprop="position" content="1"></li></ul></nav><div class="tocCollapsible_bZGK theme-doc-toc-mobile tocMobile_TmEX"><button type="button" class="clean-btn tocCollapsibleButton_l22C">On this page</button></div><div class="theme-doc-markdown markdown"><h1>Donate</h1><p>If you find this project useful, you can consider donating by using one of the
+<div role="region"><a href="#" class="skipToContent_ZgBM">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><div class="navbar__logo"><img src="/img/logo.svg" alt="Task Logo" class="themedImage_W2Cr themedImage--light_TfLj"><img src="/img/logo.svg" alt="Task Logo" class="themedImage_W2Cr themedImage--dark_oUvU"></div><b class="navbar__title text--truncate">Task</b></a><a class="navbar__item navbar__link navbar__link--active" href="/installation/">Installation</a><a class="navbar__item navbar__link navbar__link--active" href="/usage/">Usage</a><a class="navbar__item navbar__link navbar__link--active" href="/api/">API</a><a aria-current="page" class="navbar__item navbar__link navbar__link--active" href="/donate/">Donate</a></div><div class="navbar__items navbar__items--right"><a href="https://github.com/go-task/task" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">GitHub<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a><a href="https://discord.gg/6TY36E39UK" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a><div class="toggle_S7eR colorModeToggle_vKtC"><button class="clean-btn toggleButton_rCf9 toggleButtonDisabled_Pu9x" type="button" disabled="" title="Switch between dark and light mode (currently light mode)" aria-label="Switch between dark and light mode (currently light mode)"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_v35p"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_nQuB"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_dLyj"></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div class="main-wrapper docsWrapper_mKqt"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_RiI4" type="button"></button><div class="docPage_ualW"><aside class="theme-doc-sidebar-container docSidebarContainer_UQUJ"><div class="sidebar_RiAD"><nav class="menu thin-scrollbar menu_izAj"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/">Home</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/installation/">Installation</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/usage/">Usage</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/api/">API Reference</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/styleguide/">Styleguide</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/changelog/">Changelog</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/community/">Community</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/releasing/">Releasing</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/taskfile-versions/">Taskfile Versions</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" href="/donate/">Donate</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1"><div id="sidebar-ads"></div></li></ul></nav></div></aside><main class="docMainContainer_uL0j"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_DM6M"><div class="docItemContainer_vinB"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Xlws" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_kU5B"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Donate</span><meta itemprop="position" content="1"></li></ul></nav><div class="tocCollapsible_bZGK theme-doc-toc-mobile tocMobile_TmEX"><button type="button" class="clean-btn tocCollapsibleButton_l22C">On this page</button></div><div class="theme-doc-markdown markdown"><h1>Donate</h1><p>If you find this project useful, you can consider donating by using one of the
 channels listed below.</p><p>This is just a way of saying &quot;thank you&quot;, it won&#x27;t give you any benefits like
 higher priority on issues or something similar.</p><h2 class="anchor anchorWithStickyNavbar_mojV" id="open-collective">Open Collective<a class="hash-link" href="#open-collective" title="Direct link to heading">​</a></h2><p>Task is on <a href="https://opencollective.com/task" target="_blank" rel="noopener noreferrer">Open Collective</a> and you have
 these options to donate:</p><ul><li><a href="https://opencollective.com/task/contribute/backer-4034/checkout" target="_blank" rel="noopener noreferrer">$2 per month</a></li><li><a href="https://opencollective.com/task/contribute/supporter-8404/checkout" target="_blank" rel="noopener noreferrer">$5 per month</a></li><li><a href="https://opencollective.com/task/contribute/sponsor-4035/checkout" target="_blank" rel="noopener noreferrer">$20 per month</a></li><li><a href="https://opencollective.com/task/contribute/sponsor-28775/checkout" target="_blank" rel="noopener noreferrer">$50 per month</a></li><li><a href="https://opencollective.com/task/donate" target="_blank" rel="noopener noreferrer">Custom value - One-time donation option supported</a></li></ul><h2 class="anchor anchorWithStickyNavbar_mojV" id="paypal">PayPal<a class="hash-link" href="#paypal" title="Direct link to heading">​</a></h2><ul><li><a href="https://www.paypal.com/cgi-bin/webscr?cmd=_donations&amp;business=GSVDU63RKG45A&amp;currency_code=USD&amp;source=url" target="_blank" rel="noopener noreferrer">Any value - One-time donation</a></li></ul><h2 class="anchor anchorWithStickyNavbar_mojV" id="pix-brazil-only">PIX (Brazil only)<a class="hash-link" href="#pix-brazil-only" title="Direct link to heading">​</a></h2><p>If you&#x27;re Brazilian, you can donate any value by
 <a target="_blank" href="/assets/files/pix-a244c9047807d622a0e1b54930f30234.png">using this QR Code</a>.</p></div></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages navigation"><a class="pagination-nav__link pagination-nav__link--prev" href="/taskfile-versions/"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Taskfile Versions</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_cNA8 thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#open-collective" class="table-of-contents__link toc-highlight">Open Collective</a></li><li><a href="#paypal" class="table-of-contents__link toc-highlight">PayPal</a></li><li><a href="#pix-brazil-only" class="table-of-contents__link toc-highlight">PIX (Brazil only)</a></li></ul></div></div></div></div></main></div></div><footer class="footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Docs</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/installation/">Installation</a></li><li class="footer__item"><a class="footer__link-item" href="/usage/">Usage</a></li><li class="footer__item"><a class="footer__link-item" href="/donate/">Donate</a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://github.com/go-task/task" target="_blank" rel="noopener noreferrer" class="footer__link-item">GitHub<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discord.gg/6TY36E39UK" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://opencollective.com/task" target="_blank" rel="noopener noreferrer" class="footer__link-item">OpenCollective<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.ecad62b6.js"></script>
-<script src="/assets/js/main.02eb1717.js"></script>
+<script src="/assets/js/runtime~main.dc8eec3e.js"></script>
+<script src="/assets/js/main.a2abdebd.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/index.html b/index.html
index 8108a9ac..27615423 100644
--- a/index.html
+++ b/index.html
@@ -11,12 +11,12 @@
 
 
 <script src="/js/carbon.js" async></script><title data-rh="true">Home | Task</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://taskfile.dev/"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="og:image" content="https://preview-taskfile.netlify.app/img/logo.svg"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Home | Task"><meta data-rh="true" name="description" content="Task is a task runner / build tool that aims to be simpler and easier to use"><meta data-rh="true" property="og:description" content="Task is a task runner / build tool that aims to be simpler and easier to use"><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://taskfile.dev/"><link data-rh="true" rel="alternate" href="https://taskfile.dev/" hreflang="en"><link data-rh="true" rel="alternate" href="https://taskfile.dev/" hreflang="x-default"><script data-rh="true">function maybeInsertBanner(){window.__DOCUSAURUS_INSERT_BASEURL_BANNER&&insertBanner()}function insertBanner(){var n=document.getElementById("docusaurus-base-url-issue-banner-container");if(n){n.innerHTML='\n<div id="docusaurus-base-url-issue-banner" style="border: thick solid red; background-color: rgb(255, 230, 179); margin: 20px; padding: 20px; font-size: 20px;">\n   <p style="font-weight: bold; font-size: 30px;">Your Docusaurus site did not load properly.</p>\n   <p>A very common reason is a wrong site <a href="https://docusaurus.io/docs/docusaurus.config.js/#baseurl" style="font-weight: bold;">baseUrl configuration</a>.</p>\n   <p>Current configured baseUrl = <span style="font-weight: bold; color: red;">/</span>  (default value)</p>\n   <p>We suggest trying baseUrl = <span id="docusaurus-base-url-issue-banner-suggestion-container" style="font-weight: bold; color: green;"></span></p>\n</div>\n';var e=document.getElementById("docusaurus-base-url-issue-banner-suggestion-container"),s=window.location.pathname,r="/"===s.substr(-1)?s:s+"/";e.innerHTML=r}}window.__DOCUSAURUS_INSERT_BASEURL_BANNER=!0,document.addEventListener("DOMContentLoaded",maybeInsertBanner)</script><link rel="stylesheet" href="/assets/css/styles.3fb3b1af.css">
-<link rel="preload" href="/assets/js/runtime~main.ecad62b6.js" as="script">
-<link rel="preload" href="/assets/js/main.02eb1717.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.dc8eec3e.js" as="script">
+<link rel="preload" href="/assets/js/main.a2abdebd.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
-<div id="docusaurus-base-url-issue-banner-container"></div><div role="region"><a href="#" class="skipToContent_ZgBM">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><div class="navbar__logo"><img src="/img/logo.svg" alt="Task Logo" class="themedImage_W2Cr themedImage--light_TfLj"><img src="/img/logo.svg" alt="Task Logo" class="themedImage_W2Cr themedImage--dark_oUvU"></div><b class="navbar__title text--truncate">Task</b></a><a class="navbar__item navbar__link navbar__link--active" href="/installation/">Installation</a><a class="navbar__item navbar__link navbar__link--active" href="/usage/">Usage</a><a class="navbar__item navbar__link navbar__link--active" href="/donate/">Donate</a></div><div class="navbar__items navbar__items--right"><a href="https://github.com/go-task/task" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">GitHub<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a><a href="https://discord.gg/6TY36E39UK" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a><div class="toggle_S7eR colorModeToggle_vKtC"><button class="clean-btn toggleButton_rCf9 toggleButtonDisabled_Pu9x" type="button" disabled="" title="Switch between dark and light mode (currently light mode)" aria-label="Switch between dark and light mode (currently light mode)"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_v35p"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_nQuB"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_dLyj"></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div class="main-wrapper docsWrapper_mKqt"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_RiI4" type="button"></button><div class="docPage_ualW"><aside class="theme-doc-sidebar-container docSidebarContainer_UQUJ"><div class="sidebar_RiAD"><nav class="menu thin-scrollbar menu_izAj"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" href="/">Home</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/installation/">Installation</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/usage/">Usage</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/styleguide/">Styleguide</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/community/">Community</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/changelog/">Changelog</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/releasing/">Releasing</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/taskfile-versions/">Taskfile Versions</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/donate/">Donate</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1"><div id="sidebar-ads"></div></li></ul></nav></div></aside><main class="docMainContainer_uL0j"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_DM6M"><div class="docItemContainer_vinB"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Xlws" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_kU5B"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Home</span><meta itemprop="position" content="1"></li></ul></nav><div class="tocCollapsible_bZGK theme-doc-toc-mobile tocMobile_TmEX"><button type="button" class="clean-btn tocCollapsibleButton_l22C">On this page</button></div><div class="theme-doc-markdown markdown"><h1>Task</h1><div align="center"><img loading="lazy" id="logo" src="img/logo.svg" height="250px" width="250px" class="img_E7b_"></div><p>Task is a task runner / build tool that aims to be simpler and easier to use
+<div id="docusaurus-base-url-issue-banner-container"></div><div role="region"><a href="#" class="skipToContent_ZgBM">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><div class="navbar__logo"><img src="/img/logo.svg" alt="Task Logo" class="themedImage_W2Cr themedImage--light_TfLj"><img src="/img/logo.svg" alt="Task Logo" class="themedImage_W2Cr themedImage--dark_oUvU"></div><b class="navbar__title text--truncate">Task</b></a><a class="navbar__item navbar__link navbar__link--active" href="/installation/">Installation</a><a class="navbar__item navbar__link navbar__link--active" href="/usage/">Usage</a><a class="navbar__item navbar__link navbar__link--active" href="/api/">API</a><a class="navbar__item navbar__link navbar__link--active" href="/donate/">Donate</a></div><div class="navbar__items navbar__items--right"><a href="https://github.com/go-task/task" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">GitHub<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a><a href="https://discord.gg/6TY36E39UK" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a><div class="toggle_S7eR colorModeToggle_vKtC"><button class="clean-btn toggleButton_rCf9 toggleButtonDisabled_Pu9x" type="button" disabled="" title="Switch between dark and light mode (currently light mode)" aria-label="Switch between dark and light mode (currently light mode)"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_v35p"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_nQuB"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_dLyj"></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div class="main-wrapper docsWrapper_mKqt"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_RiI4" type="button"></button><div class="docPage_ualW"><aside class="theme-doc-sidebar-container docSidebarContainer_UQUJ"><div class="sidebar_RiAD"><nav class="menu thin-scrollbar menu_izAj"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" href="/">Home</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/installation/">Installation</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/usage/">Usage</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/api/">API Reference</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/styleguide/">Styleguide</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/changelog/">Changelog</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/community/">Community</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/releasing/">Releasing</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/taskfile-versions/">Taskfile Versions</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/donate/">Donate</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1"><div id="sidebar-ads"></div></li></ul></nav></div></aside><main class="docMainContainer_uL0j"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_DM6M"><div class="docItemContainer_vinB"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Xlws" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_kU5B"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Home</span><meta itemprop="position" content="1"></li></ul></nav><div class="tocCollapsible_bZGK theme-doc-toc-mobile tocMobile_TmEX"><button type="button" class="clean-btn tocCollapsibleButton_l22C">On this page</button></div><div class="theme-doc-markdown markdown"><h1>Task</h1><div align="center"><img loading="lazy" id="logo" src="img/logo.svg" height="250px" width="250px" class="img_E7b_"></div><p>Task is a task runner / build tool that aims to be simpler and easier to use
 than, for example, <a href="https://www.gnu.org/software/make/" target="_blank" rel="noopener noreferrer">GNU Make</a>.</p><p>Since it&#x27;s written in <a href="https://go.dev/" target="_blank" rel="noopener noreferrer">Go</a>, Task is just a single binary and has no other
 dependencies, which means you don&#x27;t need to mess with any complicated install
 setups just to use a build tool.</p><p>Once <a href="/installation/">installed</a>, you just need to describe your build tasks
@@ -28,7 +28,7 @@ to install on your CI script and you&#x27;re done to use Task as part of your CI
 Task also supports Windows thanks to <a href="https://mvdan.cc/sh" target="_blank" rel="noopener noreferrer">this shell interpreter for Go</a>;</li><li>Great for code generation: you can easily <a href="/usage#prevent-unnecessary-work">prevent a task from running</a>
 if a given set of files haven&#x27;t changed since last run (based either on its
 timestamp or content).</li></ul></div></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages navigation"><a class="pagination-nav__link pagination-nav__link--next" href="/installation/"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">Installation</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_cNA8 thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#features" class="table-of-contents__link toc-highlight">Features</a></li></ul></div></div></div></div></main></div></div><footer class="footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Docs</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/installation/">Installation</a></li><li class="footer__item"><a class="footer__link-item" href="/usage/">Usage</a></li><li class="footer__item"><a class="footer__link-item" href="/donate/">Donate</a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://github.com/go-task/task" target="_blank" rel="noopener noreferrer" class="footer__link-item">GitHub<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discord.gg/6TY36E39UK" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://opencollective.com/task" target="_blank" rel="noopener noreferrer" class="footer__link-item">OpenCollective<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.ecad62b6.js"></script>
-<script src="/assets/js/main.02eb1717.js"></script>
+<script src="/assets/js/runtime~main.dc8eec3e.js"></script>
+<script src="/assets/js/main.a2abdebd.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/installation/index.html b/installation/index.html
index e7bdd356..8df683db 100644
--- a/installation/index.html
+++ b/installation/index.html
@@ -11,12 +11,12 @@
 
 
 <script src="/js/carbon.js" async></script><title data-rh="true">Installation | Task</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://taskfile.dev/installation/"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="og:image" content="https://preview-taskfile.netlify.app/img/logo.svg"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Installation | Task"><meta data-rh="true" name="description" content="Task offers many installation methods. Check out the available methods below."><meta data-rh="true" property="og:description" content="Task offers many installation methods. Check out the available methods below."><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://taskfile.dev/installation/"><link data-rh="true" rel="alternate" href="https://taskfile.dev/installation/" hreflang="en"><link data-rh="true" rel="alternate" href="https://taskfile.dev/installation/" hreflang="x-default"><link rel="stylesheet" href="/assets/css/styles.3fb3b1af.css">
-<link rel="preload" href="/assets/js/runtime~main.ecad62b6.js" as="script">
-<link rel="preload" href="/assets/js/main.02eb1717.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.dc8eec3e.js" as="script">
+<link rel="preload" href="/assets/js/main.a2abdebd.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
-<div role="region"><a href="#" class="skipToContent_ZgBM">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><div class="navbar__logo"><img src="/img/logo.svg" alt="Task Logo" class="themedImage_W2Cr themedImage--light_TfLj"><img src="/img/logo.svg" alt="Task Logo" class="themedImage_W2Cr themedImage--dark_oUvU"></div><b class="navbar__title text--truncate">Task</b></a><a aria-current="page" class="navbar__item navbar__link navbar__link--active" href="/installation/">Installation</a><a class="navbar__item navbar__link navbar__link--active" href="/usage/">Usage</a><a class="navbar__item navbar__link navbar__link--active" href="/donate/">Donate</a></div><div class="navbar__items navbar__items--right"><a href="https://github.com/go-task/task" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">GitHub<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a><a href="https://discord.gg/6TY36E39UK" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a><div class="toggle_S7eR colorModeToggle_vKtC"><button class="clean-btn toggleButton_rCf9 toggleButtonDisabled_Pu9x" type="button" disabled="" title="Switch between dark and light mode (currently light mode)" aria-label="Switch between dark and light mode (currently light mode)"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_v35p"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_nQuB"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_dLyj"></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div class="main-wrapper docsWrapper_mKqt"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_RiI4" type="button"></button><div class="docPage_ualW"><aside class="theme-doc-sidebar-container docSidebarContainer_UQUJ"><div class="sidebar_RiAD"><nav class="menu thin-scrollbar menu_izAj"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/">Home</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" href="/installation/">Installation</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/usage/">Usage</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/styleguide/">Styleguide</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/community/">Community</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/changelog/">Changelog</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/releasing/">Releasing</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/taskfile-versions/">Taskfile Versions</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/donate/">Donate</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1"><div id="sidebar-ads"></div></li></ul></nav></div></aside><main class="docMainContainer_uL0j"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_DM6M"><div class="docItemContainer_vinB"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Xlws" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_kU5B"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Installation</span><meta itemprop="position" content="1"></li></ul></nav><div class="tocCollapsible_bZGK theme-doc-toc-mobile tocMobile_TmEX"><button type="button" class="clean-btn tocCollapsibleButton_l22C">On this page</button></div><div class="theme-doc-markdown markdown"><h1>Installation</h1><p>Task offers many installation methods. Check out the available methods below.</p><h2 class="anchor anchorWithStickyNavbar_mojV" id="package-managers">Package Managers<a class="hash-link" href="#package-managers" title="Direct link to heading">​</a></h2><h3 class="anchor anchorWithStickyNavbar_mojV" id="homebrew"><strong>Homebrew</strong><a class="hash-link" href="#homebrew" title="Direct link to heading">​</a></h3><p>If you&#x27;re on macOS or Linux and have <a href="https://brew.sh/" target="_blank" rel="noopener noreferrer">Homebrew</a> installed, getting
+<div role="region"><a href="#" class="skipToContent_ZgBM">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><div class="navbar__logo"><img src="/img/logo.svg" alt="Task Logo" class="themedImage_W2Cr themedImage--light_TfLj"><img src="/img/logo.svg" alt="Task Logo" class="themedImage_W2Cr themedImage--dark_oUvU"></div><b class="navbar__title text--truncate">Task</b></a><a aria-current="page" class="navbar__item navbar__link navbar__link--active" href="/installation/">Installation</a><a class="navbar__item navbar__link navbar__link--active" href="/usage/">Usage</a><a class="navbar__item navbar__link navbar__link--active" href="/api/">API</a><a class="navbar__item navbar__link navbar__link--active" href="/donate/">Donate</a></div><div class="navbar__items navbar__items--right"><a href="https://github.com/go-task/task" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">GitHub<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a><a href="https://discord.gg/6TY36E39UK" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a><div class="toggle_S7eR colorModeToggle_vKtC"><button class="clean-btn toggleButton_rCf9 toggleButtonDisabled_Pu9x" type="button" disabled="" title="Switch between dark and light mode (currently light mode)" aria-label="Switch between dark and light mode (currently light mode)"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_v35p"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_nQuB"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_dLyj"></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div class="main-wrapper docsWrapper_mKqt"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_RiI4" type="button"></button><div class="docPage_ualW"><aside class="theme-doc-sidebar-container docSidebarContainer_UQUJ"><div class="sidebar_RiAD"><nav class="menu thin-scrollbar menu_izAj"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/">Home</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" href="/installation/">Installation</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/usage/">Usage</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/api/">API Reference</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/styleguide/">Styleguide</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/changelog/">Changelog</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/community/">Community</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/releasing/">Releasing</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/taskfile-versions/">Taskfile Versions</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/donate/">Donate</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1"><div id="sidebar-ads"></div></li></ul></nav></div></aside><main class="docMainContainer_uL0j"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_DM6M"><div class="docItemContainer_vinB"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Xlws" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_kU5B"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Installation</span><meta itemprop="position" content="1"></li></ul></nav><div class="tocCollapsible_bZGK theme-doc-toc-mobile tocMobile_TmEX"><button type="button" class="clean-btn tocCollapsibleButton_l22C">On this page</button></div><div class="theme-doc-markdown markdown"><h1>Installation</h1><p>Task offers many installation methods. Check out the available methods below.</p><h2 class="anchor anchorWithStickyNavbar_mojV" id="package-managers">Package Managers<a class="hash-link" href="#package-managers" title="Direct link to heading">​</a></h2><h3 class="anchor anchorWithStickyNavbar_mojV" id="homebrew"><strong>Homebrew</strong><a class="hash-link" href="#homebrew" title="Direct link to heading">​</a></h3><p>If you&#x27;re on macOS or Linux and have <a href="https://brew.sh/" target="_blank" rel="noopener noreferrer">Homebrew</a> installed, getting
 Task is as simple as running:</p><div class="language-bash codeBlockContainer_MPoW theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_B9tL"><pre tabindex="0" class="prism-code language-bash codeBlock__0OG thin-scrollbar"><code class="codeBlockLines_gEuF"><span class="token-line" style="color:#393A34"><span class="token plain">brew </span><span class="token function" style="color:#d73a49">install</span><span class="token plain"> go-task/tap/go-task</span><br></span></code></pre><div class="buttonGroup_hRr1"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_W9eQ" aria-hidden="true"><svg class="copyButtonIcon_XEyF" viewBox="0 0 24 24"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg class="copyButtonSuccessIcon_i9w9" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><h3 class="anchor anchorWithStickyNavbar_mojV" id="snap"><strong>Snap</strong><a class="hash-link" href="#snap" title="Direct link to heading">​</a></h3><p>Task is available in <a href="https://snapcraft.io/task" target="_blank" rel="noopener noreferrer">Snapcraft</a>, but keep in mind that your
 Linux distribution should allow classic confinement for Snaps to Task work
 right:</p><div class="language-bash codeBlockContainer_MPoW theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_B9tL"><pre tabindex="0" class="prism-code language-bash codeBlock__0OG thin-scrollbar"><code class="codeBlockLines_gEuF"><span class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">sudo</span><span class="token plain"> snap </span><span class="token function" style="color:#d73a49">install</span><span class="token plain"> task --classic</span><br></span></code></pre><div class="buttonGroup_hRr1"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_W9eQ" aria-hidden="true"><svg class="copyButtonIcon_XEyF" viewBox="0 0 24 24"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg class="copyButtonSuccessIcon_i9w9" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><h3 class="anchor anchorWithStickyNavbar_mojV" id="chocolatey"><strong>Chocolatey</strong><a class="hash-link" href="#chocolatey" title="Direct link to heading">​</a></h3><p>If you&#x27;re on Windows and have <a href="https://chocolatey.org/" target="_blank" rel="noopener noreferrer">Chocolatey</a> installed, getting
@@ -35,7 +35,7 @@ easy generation of this script.</p><div class="language-bash codeBlockContainer_
 by the Arduino team:</p><div class="language-yaml codeBlockContainer_MPoW theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_B9tL"><pre tabindex="0" class="prism-code language-yaml codeBlock__0OG thin-scrollbar"><code class="codeBlockLines_gEuF"><span class="token-line" style="color:#393A34"><span class="token punctuation" style="color:#393A34">-</span><span class="token plain"> </span><span class="token key atrule" style="color:#00a4db">name</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> Install Task</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#00a4db">uses</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> arduino/setup</span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain">task@v1</span><br></span></code></pre><div class="buttonGroup_hRr1"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_W9eQ" aria-hidden="true"><svg class="copyButtonIcon_XEyF" viewBox="0 0 24 24"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg class="copyButtonSuccessIcon_i9w9" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>This installation method is community owned.</p><h2 class="anchor anchorWithStickyNavbar_mojV" id="build-from-source">Build From Source<a class="hash-link" href="#build-from-source" title="Direct link to heading">​</a></h2><h3 class="anchor anchorWithStickyNavbar_mojV" id="go-modules"><strong>Go Modules</strong><a class="hash-link" href="#go-modules" title="Direct link to heading">​</a></h3><p>First, make sure you have <a href="https://golang.org/" target="_blank" rel="noopener noreferrer">Go</a> properly installed and setup.</p><p>You can easily install the latest release globally by running:</p><div class="language-bash codeBlockContainer_MPoW theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_B9tL"><pre tabindex="0" class="prism-code language-bash codeBlock__0OG thin-scrollbar"><code class="codeBlockLines_gEuF"><span class="token-line" style="color:#393A34"><span class="token plain">go </span><span class="token function" style="color:#d73a49">install</span><span class="token plain"> github.com/go-task/task/v3/cmd/task@latest</span><br></span></code></pre><div class="buttonGroup_hRr1"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_W9eQ" aria-hidden="true"><svg class="copyButtonIcon_XEyF" viewBox="0 0 24 24"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg class="copyButtonSuccessIcon_i9w9" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>Or you can install into another directory:</p><div class="language-bash codeBlockContainer_MPoW theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_B9tL"><pre tabindex="0" class="prism-code language-bash codeBlock__0OG thin-scrollbar"><code class="codeBlockLines_gEuF"><span class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">env</span><span class="token plain"> </span><span class="token assign-left variable" style="color:#36acaa">GOBIN</span><span class="token operator" style="color:#393A34">=</span><span class="token plain">/bin go </span><span class="token function" style="color:#d73a49">install</span><span class="token plain"> github.com/go-task/task/v3/cmd/task@latest</span><br></span></code></pre><div class="buttonGroup_hRr1"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_W9eQ" aria-hidden="true"><svg class="copyButtonIcon_XEyF" viewBox="0 0 24 24"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg class="copyButtonSuccessIcon_i9w9" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>If using Go 1.15 or earlier, instead use:</p><div class="language-bash codeBlockContainer_MPoW theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_B9tL"><pre tabindex="0" class="prism-code language-bash codeBlock__0OG thin-scrollbar"><code class="codeBlockLines_gEuF"><span class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">env</span><span class="token plain"> </span><span class="token assign-left variable" style="color:#36acaa">GO111MODULE</span><span class="token operator" style="color:#393A34">=</span><span class="token plain">on go get -u github.com/go-task/task/v3/cmd/task@latest</span><br></span></code></pre><div class="buttonGroup_hRr1"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_W9eQ" aria-hidden="true"><svg class="copyButtonIcon_XEyF" viewBox="0 0 24 24"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg class="copyButtonSuccessIcon_i9w9" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><div class="admonition admonition-tip alert alert--success"><div class="admonition-heading"><h5><span class="admonition-icon"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="16" viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"></path></svg></span>tip</h5></div><div class="admonition-content"><p>For CI environments we recommend using the <a href="#get-the-binary">install script</a>
 instead, which is faster and more stable, since it&#x27;ll just download the latest
 released binary.</p></div></div></div></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages navigation"><a class="pagination-nav__link pagination-nav__link--prev" href="/"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Home</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/usage/"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">Usage</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_cNA8 thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#package-managers" class="table-of-contents__link toc-highlight">Package Managers</a><ul><li><a href="#homebrew" class="table-of-contents__link toc-highlight"><strong>Homebrew</strong></a></li><li><a href="#snap" class="table-of-contents__link toc-highlight"><strong>Snap</strong></a></li><li><a href="#chocolatey" class="table-of-contents__link toc-highlight"><strong>Chocolatey</strong></a></li><li><a href="#scoop" class="table-of-contents__link toc-highlight"><strong>Scoop</strong></a></li><li><a href="#aur" class="table-of-contents__link toc-highlight"><strong>AUR</strong></a></li><li><a href="#nix" class="table-of-contents__link toc-highlight"><strong>Nix</strong></a></li></ul></li><li><a href="#get-the-binary" class="table-of-contents__link toc-highlight">Get The Binary</a><ul><li><a href="#binary" class="table-of-contents__link toc-highlight"><strong>Binary</strong></a></li><li><a href="#install-script" class="table-of-contents__link toc-highlight"><strong>Install Script</strong></a></li><li><a href="#github-actions" class="table-of-contents__link toc-highlight"><strong>GitHub Actions</strong></a></li></ul></li><li><a href="#build-from-source" class="table-of-contents__link toc-highlight">Build From Source</a><ul><li><a href="#go-modules" class="table-of-contents__link toc-highlight"><strong>Go Modules</strong></a></li></ul></li></ul></div></div></div></div></main></div></div><footer class="footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Docs</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/installation/">Installation</a></li><li class="footer__item"><a class="footer__link-item" href="/usage/">Usage</a></li><li class="footer__item"><a class="footer__link-item" href="/donate/">Donate</a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://github.com/go-task/task" target="_blank" rel="noopener noreferrer" class="footer__link-item">GitHub<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discord.gg/6TY36E39UK" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://opencollective.com/task" target="_blank" rel="noopener noreferrer" class="footer__link-item">OpenCollective<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.ecad62b6.js"></script>
-<script src="/assets/js/main.02eb1717.js"></script>
+<script src="/assets/js/runtime~main.dc8eec3e.js"></script>
+<script src="/assets/js/main.a2abdebd.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/releasing/index.html b/releasing/index.html
index 247ae270..fdd81122 100644
--- a/releasing/index.html
+++ b/releasing/index.html
@@ -11,12 +11,12 @@
 
 
 <script src="/js/carbon.js" async></script><title data-rh="true">Releasing | Task</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://taskfile.dev/releasing/"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="og:image" content="https://preview-taskfile.netlify.app/img/logo.svg"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Releasing | Task"><meta data-rh="true" name="description" content="The release process of Task is done with the help of"><meta data-rh="true" property="og:description" content="The release process of Task is done with the help of"><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://taskfile.dev/releasing/"><link data-rh="true" rel="alternate" href="https://taskfile.dev/releasing/" hreflang="en"><link data-rh="true" rel="alternate" href="https://taskfile.dev/releasing/" hreflang="x-default"><link rel="stylesheet" href="/assets/css/styles.3fb3b1af.css">
-<link rel="preload" href="/assets/js/runtime~main.ecad62b6.js" as="script">
-<link rel="preload" href="/assets/js/main.02eb1717.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.dc8eec3e.js" as="script">
+<link rel="preload" href="/assets/js/main.a2abdebd.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
-<div role="region"><a href="#" class="skipToContent_ZgBM">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><div class="navbar__logo"><img src="/img/logo.svg" alt="Task Logo" class="themedImage_W2Cr themedImage--light_TfLj"><img src="/img/logo.svg" alt="Task Logo" class="themedImage_W2Cr themedImage--dark_oUvU"></div><b class="navbar__title text--truncate">Task</b></a><a class="navbar__item navbar__link navbar__link--active" href="/installation/">Installation</a><a class="navbar__item navbar__link navbar__link--active" href="/usage/">Usage</a><a class="navbar__item navbar__link navbar__link--active" href="/donate/">Donate</a></div><div class="navbar__items navbar__items--right"><a href="https://github.com/go-task/task" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">GitHub<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a><a href="https://discord.gg/6TY36E39UK" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a><div class="toggle_S7eR colorModeToggle_vKtC"><button class="clean-btn toggleButton_rCf9 toggleButtonDisabled_Pu9x" type="button" disabled="" title="Switch between dark and light mode (currently light mode)" aria-label="Switch between dark and light mode (currently light mode)"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_v35p"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_nQuB"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_dLyj"></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div class="main-wrapper docsWrapper_mKqt"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_RiI4" type="button"></button><div class="docPage_ualW"><aside class="theme-doc-sidebar-container docSidebarContainer_UQUJ"><div class="sidebar_RiAD"><nav class="menu thin-scrollbar menu_izAj"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/">Home</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/installation/">Installation</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/usage/">Usage</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/styleguide/">Styleguide</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/community/">Community</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/changelog/">Changelog</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" href="/releasing/">Releasing</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/taskfile-versions/">Taskfile Versions</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/donate/">Donate</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1"><div id="sidebar-ads"></div></li></ul></nav></div></aside><main class="docMainContainer_uL0j"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_DM6M"><div class="docItemContainer_vinB"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Xlws" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_kU5B"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Releasing</span><meta itemprop="position" content="1"></li></ul></nav><div class="theme-doc-markdown markdown"><h1>Releasing</h1><p>The release process of Task is done with the help of
+<div role="region"><a href="#" class="skipToContent_ZgBM">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><div class="navbar__logo"><img src="/img/logo.svg" alt="Task Logo" class="themedImage_W2Cr themedImage--light_TfLj"><img src="/img/logo.svg" alt="Task Logo" class="themedImage_W2Cr themedImage--dark_oUvU"></div><b class="navbar__title text--truncate">Task</b></a><a class="navbar__item navbar__link navbar__link--active" href="/installation/">Installation</a><a class="navbar__item navbar__link navbar__link--active" href="/usage/">Usage</a><a class="navbar__item navbar__link navbar__link--active" href="/api/">API</a><a class="navbar__item navbar__link navbar__link--active" href="/donate/">Donate</a></div><div class="navbar__items navbar__items--right"><a href="https://github.com/go-task/task" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">GitHub<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a><a href="https://discord.gg/6TY36E39UK" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a><div class="toggle_S7eR colorModeToggle_vKtC"><button class="clean-btn toggleButton_rCf9 toggleButtonDisabled_Pu9x" type="button" disabled="" title="Switch between dark and light mode (currently light mode)" aria-label="Switch between dark and light mode (currently light mode)"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_v35p"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_nQuB"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_dLyj"></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div class="main-wrapper docsWrapper_mKqt"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_RiI4" type="button"></button><div class="docPage_ualW"><aside class="theme-doc-sidebar-container docSidebarContainer_UQUJ"><div class="sidebar_RiAD"><nav class="menu thin-scrollbar menu_izAj"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/">Home</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/installation/">Installation</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/usage/">Usage</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/api/">API Reference</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/styleguide/">Styleguide</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/changelog/">Changelog</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/community/">Community</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" href="/releasing/">Releasing</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/taskfile-versions/">Taskfile Versions</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/donate/">Donate</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1"><div id="sidebar-ads"></div></li></ul></nav></div></aside><main class="docMainContainer_uL0j"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_DM6M"><div class="docItemContainer_vinB"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Xlws" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_kU5B"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Releasing</span><meta itemprop="position" content="1"></li></ul></nav><div class="theme-doc-markdown markdown"><h1>Releasing</h1><p>The release process of Task is done with the help of
 <a href="https://goreleaser.com/" target="_blank" rel="noopener noreferrer">GoReleaser</a>. You can test the release process locally by calling
 the <code>test-release</code> task of the Taskfile.</p><p><a href="https://github.com/go-task/task/actions" target="_blank" rel="noopener noreferrer">GitHub Actions</a> should release
 artifacts automatically when a new Git tag is pushed to master
@@ -31,8 +31,8 @@ of updating versions there by editing
 If you think its Task version is outdated, open an issue to let us know.</p><h1>Nix</h1><p>Nix is a community owned installation method. Nix package maintainers usually take care
 of updating versions there by editing
 <a href="https://github.com/NixOS/nixpkgs/blob/nixos-unstable/pkgs/development/tools/go-task/default.nix" target="_blank" rel="noopener noreferrer">this file</a>.
-If you think its Task version is outdated, open an issue to let us know.</p></div></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages navigation"><a class="pagination-nav__link pagination-nav__link--prev" href="/changelog/"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Changelog</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/taskfile-versions/"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">Taskfile Versions</div></a></nav></div></div></div></div></main></div></div><footer class="footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Docs</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/installation/">Installation</a></li><li class="footer__item"><a class="footer__link-item" href="/usage/">Usage</a></li><li class="footer__item"><a class="footer__link-item" href="/donate/">Donate</a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://github.com/go-task/task" target="_blank" rel="noopener noreferrer" class="footer__link-item">GitHub<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discord.gg/6TY36E39UK" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://opencollective.com/task" target="_blank" rel="noopener noreferrer" class="footer__link-item">OpenCollective<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.ecad62b6.js"></script>
-<script src="/assets/js/main.02eb1717.js"></script>
+If you think its Task version is outdated, open an issue to let us know.</p></div></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages navigation"><a class="pagination-nav__link pagination-nav__link--prev" href="/community/"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Community</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/taskfile-versions/"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">Taskfile Versions</div></a></nav></div></div></div></div></main></div></div><footer class="footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Docs</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/installation/">Installation</a></li><li class="footer__item"><a class="footer__link-item" href="/usage/">Usage</a></li><li class="footer__item"><a class="footer__link-item" href="/donate/">Donate</a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://github.com/go-task/task" target="_blank" rel="noopener noreferrer" class="footer__link-item">GitHub<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discord.gg/6TY36E39UK" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://opencollective.com/task" target="_blank" rel="noopener noreferrer" class="footer__link-item">OpenCollective<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div></div></footer></div>
+<script src="/assets/js/runtime~main.dc8eec3e.js"></script>
+<script src="/assets/js/main.a2abdebd.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/sitemap.xml b/sitemap.xml
index 60b622b2..abdfa5ed 100644
--- a/sitemap.xml
+++ b/sitemap.xml
@@ -1 +1 @@
-<?xml version="1.0" encoding="UTF-8"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:news="http://www.google.com/schemas/sitemap-news/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1" xmlns:video="http://www.google.com/schemas/sitemap-video/1.1"><url><loc>https://taskfile.dev/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://taskfile.dev/changelog/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://taskfile.dev/community/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://taskfile.dev/donate/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://taskfile.dev/installation/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://taskfile.dev/releasing/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://taskfile.dev/styleguide/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://taskfile.dev/taskfile-versions/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://taskfile.dev/usage/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url></urlset>
\ No newline at end of file
+<?xml version="1.0" encoding="UTF-8"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:news="http://www.google.com/schemas/sitemap-news/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1" xmlns:video="http://www.google.com/schemas/sitemap-video/1.1"><url><loc>https://taskfile.dev/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://taskfile.dev/api/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://taskfile.dev/changelog/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://taskfile.dev/community/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://taskfile.dev/donate/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://taskfile.dev/installation/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://taskfile.dev/releasing/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://taskfile.dev/styleguide/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://taskfile.dev/taskfile-versions/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://taskfile.dev/usage/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url></urlset>
\ No newline at end of file
diff --git a/styleguide/index.html b/styleguide/index.html
index 2c4a42d5..87896112 100644
--- a/styleguide/index.html
+++ b/styleguide/index.html
@@ -11,20 +11,20 @@
 
 
 <script src="/js/carbon.js" async></script><title data-rh="true">Styleguide | Task</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://taskfile.dev/styleguide/"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="og:image" content="https://preview-taskfile.netlify.app/img/logo.svg"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Styleguide | Task"><meta data-rh="true" name="description" content="This is the official Task styleguide for Taskfile.yml files. This guide"><meta data-rh="true" property="og:description" content="This is the official Task styleguide for Taskfile.yml files. This guide"><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://taskfile.dev/styleguide/"><link data-rh="true" rel="alternate" href="https://taskfile.dev/styleguide/" hreflang="en"><link data-rh="true" rel="alternate" href="https://taskfile.dev/styleguide/" hreflang="x-default"><link rel="stylesheet" href="/assets/css/styles.3fb3b1af.css">
-<link rel="preload" href="/assets/js/runtime~main.ecad62b6.js" as="script">
-<link rel="preload" href="/assets/js/main.02eb1717.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.dc8eec3e.js" as="script">
+<link rel="preload" href="/assets/js/main.a2abdebd.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
-<div role="region"><a href="#" class="skipToContent_ZgBM">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><div class="navbar__logo"><img src="/img/logo.svg" alt="Task Logo" class="themedImage_W2Cr themedImage--light_TfLj"><img src="/img/logo.svg" alt="Task Logo" class="themedImage_W2Cr themedImage--dark_oUvU"></div><b class="navbar__title text--truncate">Task</b></a><a class="navbar__item navbar__link navbar__link--active" href="/installation/">Installation</a><a class="navbar__item navbar__link navbar__link--active" href="/usage/">Usage</a><a class="navbar__item navbar__link navbar__link--active" href="/donate/">Donate</a></div><div class="navbar__items navbar__items--right"><a href="https://github.com/go-task/task" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">GitHub<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a><a href="https://discord.gg/6TY36E39UK" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a><div class="toggle_S7eR colorModeToggle_vKtC"><button class="clean-btn toggleButton_rCf9 toggleButtonDisabled_Pu9x" type="button" disabled="" title="Switch between dark and light mode (currently light mode)" aria-label="Switch between dark and light mode (currently light mode)"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_v35p"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_nQuB"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_dLyj"></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div class="main-wrapper docsWrapper_mKqt"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_RiI4" type="button"></button><div class="docPage_ualW"><aside class="theme-doc-sidebar-container docSidebarContainer_UQUJ"><div class="sidebar_RiAD"><nav class="menu thin-scrollbar menu_izAj"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/">Home</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/installation/">Installation</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/usage/">Usage</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" href="/styleguide/">Styleguide</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/community/">Community</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/changelog/">Changelog</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/releasing/">Releasing</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/taskfile-versions/">Taskfile Versions</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/donate/">Donate</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1"><div id="sidebar-ads"></div></li></ul></nav></div></aside><main class="docMainContainer_uL0j"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_DM6M"><div class="docItemContainer_vinB"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Xlws" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_kU5B"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Styleguide</span><meta itemprop="position" content="1"></li></ul></nav><div class="tocCollapsible_bZGK theme-doc-toc-mobile tocMobile_TmEX"><button type="button" class="clean-btn tocCollapsibleButton_l22C">On this page</button></div><div class="theme-doc-markdown markdown"><h1>Styleguide</h1><p>This is the official Task styleguide for <code>Taskfile.yml</code> files. This guide
+<div role="region"><a href="#" class="skipToContent_ZgBM">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><div class="navbar__logo"><img src="/img/logo.svg" alt="Task Logo" class="themedImage_W2Cr themedImage--light_TfLj"><img src="/img/logo.svg" alt="Task Logo" class="themedImage_W2Cr themedImage--dark_oUvU"></div><b class="navbar__title text--truncate">Task</b></a><a class="navbar__item navbar__link navbar__link--active" href="/installation/">Installation</a><a class="navbar__item navbar__link navbar__link--active" href="/usage/">Usage</a><a class="navbar__item navbar__link navbar__link--active" href="/api/">API</a><a class="navbar__item navbar__link navbar__link--active" href="/donate/">Donate</a></div><div class="navbar__items navbar__items--right"><a href="https://github.com/go-task/task" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">GitHub<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a><a href="https://discord.gg/6TY36E39UK" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a><div class="toggle_S7eR colorModeToggle_vKtC"><button class="clean-btn toggleButton_rCf9 toggleButtonDisabled_Pu9x" type="button" disabled="" title="Switch between dark and light mode (currently light mode)" aria-label="Switch between dark and light mode (currently light mode)"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_v35p"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_nQuB"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_dLyj"></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div class="main-wrapper docsWrapper_mKqt"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_RiI4" type="button"></button><div class="docPage_ualW"><aside class="theme-doc-sidebar-container docSidebarContainer_UQUJ"><div class="sidebar_RiAD"><nav class="menu thin-scrollbar menu_izAj"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/">Home</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/installation/">Installation</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/usage/">Usage</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/api/">API Reference</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" href="/styleguide/">Styleguide</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/changelog/">Changelog</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/community/">Community</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/releasing/">Releasing</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/taskfile-versions/">Taskfile Versions</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/donate/">Donate</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1"><div id="sidebar-ads"></div></li></ul></nav></div></aside><main class="docMainContainer_uL0j"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_DM6M"><div class="docItemContainer_vinB"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Xlws" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_kU5B"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Styleguide</span><meta itemprop="position" content="1"></li></ul></nav><div class="tocCollapsible_bZGK theme-doc-toc-mobile tocMobile_TmEX"><button type="button" class="clean-btn tocCollapsibleButton_l22C">On this page</button></div><div class="theme-doc-markdown markdown"><h1>Styleguide</h1><p>This is the official Task styleguide for <code>Taskfile.yml</code> files. This guide
 contains some basic instructions to keep your Taskfile clean and familiar to
 other users.</p><p>This contains general guidelines, but they don&#x27;t necessarily need to be strictly
 followed. Feel free to disagree and proceed differently at some point if you
 need or want to. Also, feel free to open issues or pull requests with
 improvements to this guide.</p><h2 class="anchor anchorWithStickyNavbar_mojV" id="use-taskfileyml-and-not-taskfileyml">Use <code>Taskfile.yml</code> and not <code>taskfile.yml</code><a class="hash-link" href="#use-taskfileyml-and-not-taskfileyml" title="Direct link to heading">​</a></h2><div class="language-yaml codeBlockContainer_MPoW theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_B9tL"><pre tabindex="0" class="prism-code language-yaml codeBlock__0OG thin-scrollbar"><code class="codeBlockLines_gEuF"><span class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic"># bad</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">taskfile.yml</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic"># good</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">Taskfile.yml</span><br></span></code></pre><div class="buttonGroup_hRr1"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_W9eQ" aria-hidden="true"><svg class="copyButtonIcon_XEyF" viewBox="0 0 24 24"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg class="copyButtonSuccessIcon_i9w9" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>This is important especially for Linux users. Windows and macOS have case
 insensitive filesystems, so <code>taskfile.yml</code> will end up working, even that not
-officially supported. On Linux, only <code>Taskfile.yml</code> will work, though.</p><h2 class="anchor anchorWithStickyNavbar_mojV" id="use-the-correct-order-of-keywords">Use the correct order of keywords<a class="hash-link" href="#use-the-correct-order-of-keywords" title="Direct link to heading">​</a></h2><ul><li><code>version:</code></li><li><code>includes:</code></li><li>Configuration ones, like <code>output:</code> or <code>silent:</code></li><li><code>vars:</code></li><li><code>env:</code></li><li><code>tasks:</code></li></ul><h2 class="anchor anchorWithStickyNavbar_mojV" id="use-2-spaces-for-indentation">Use 2 spaces for indentation<a class="hash-link" href="#use-2-spaces-for-indentation" title="Direct link to heading">​</a></h2><p>This is the most common convention for YAML files, and Task follows it.</p><div class="language-yaml codeBlockContainer_MPoW theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_B9tL"><pre tabindex="0" class="prism-code language-yaml codeBlock__0OG thin-scrollbar"><code class="codeBlockLines_gEuF"><span class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic"># bad</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">tasks</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token key atrule" style="color:#00a4db">foo</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        </span><span class="token key atrule" style="color:#00a4db">cmds</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">            </span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain"> echo &#x27;foo&#x27;</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic"># good</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">tasks</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#00a4db">foo</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token key atrule" style="color:#00a4db">cmds</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain"> echo &#x27;foo&#x27;</span><br></span></code></pre><div class="buttonGroup_hRr1"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_W9eQ" aria-hidden="true"><svg class="copyButtonIcon_XEyF" viewBox="0 0 24 24"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg class="copyButtonSuccessIcon_i9w9" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><h2 class="anchor anchorWithStickyNavbar_mojV" id="separate-with-spaces-the-mains-sections">Separate with spaces the mains sections<a class="hash-link" href="#separate-with-spaces-the-mains-sections" title="Direct link to heading">​</a></h2><div class="language-yaml codeBlockContainer_MPoW theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_B9tL"><pre tabindex="0" class="prism-code language-yaml codeBlock__0OG thin-scrollbar"><code class="codeBlockLines_gEuF"><span class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic"># bad</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">version</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">&#x27;3&#x27;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">includes</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#00a4db">docker</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> ./docker/Taskfile.yml</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">output</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> prefixed</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">vars</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#00a4db">FOO</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> bar</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">env</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#00a4db">BAR</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> baz</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">tasks</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token comment" style="color:#999988;font-style:italic"># ...</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic"># good</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">version</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">&#x27;3&#x27;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">includes</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#00a4db">docker</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> ./docker/Taskfile.yml</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">output</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> prefixed</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">vars</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#00a4db">FOO</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> bar</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">env</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#00a4db">BAR</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> baz</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">tasks</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token comment" style="color:#999988;font-style:italic"># ...</span><br></span></code></pre><div class="buttonGroup_hRr1"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_W9eQ" aria-hidden="true"><svg class="copyButtonIcon_XEyF" viewBox="0 0 24 24"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg class="copyButtonSuccessIcon_i9w9" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><h2 class="anchor anchorWithStickyNavbar_mojV" id="add-spaces-between-tasks">Add spaces between tasks<a class="hash-link" href="#add-spaces-between-tasks" title="Direct link to heading">​</a></h2><div class="language-yaml codeBlockContainer_MPoW theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_B9tL"><pre tabindex="0" class="prism-code language-yaml codeBlock__0OG thin-scrollbar"><code class="codeBlockLines_gEuF"><span class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic"># bad</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">version</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">&#x27;3&#x27;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">tasks</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#00a4db">foo</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token key atrule" style="color:#00a4db">cmds</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain"> echo &#x27;foo&#x27;</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#00a4db">bar</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token key atrule" style="color:#00a4db">cmds</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain"> echo &#x27;bar&#x27;</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#00a4db">baz</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token key atrule" style="color:#00a4db">cmds</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain"> echo &#x27;baz&#x27;</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic"># good</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">version</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">&#x27;3&#x27;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">tasks</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#00a4db">foo</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token key atrule" style="color:#00a4db">cmds</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain"> echo &#x27;foo&#x27;</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#00a4db">bar</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token key atrule" style="color:#00a4db">cmds</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain"> echo &#x27;bar&#x27;</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#00a4db">baz</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token key atrule" style="color:#00a4db">cmds</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain"> echo &#x27;baz&#x27;</span><br></span></code></pre><div class="buttonGroup_hRr1"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_W9eQ" aria-hidden="true"><svg class="copyButtonIcon_XEyF" viewBox="0 0 24 24"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg class="copyButtonSuccessIcon_i9w9" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><h2 class="anchor anchorWithStickyNavbar_mojV" id="use-upper-case-variable-names">Use upper-case variable names<a class="hash-link" href="#use-upper-case-variable-names" title="Direct link to heading">​</a></h2><div class="language-yaml codeBlockContainer_MPoW theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_B9tL"><pre tabindex="0" class="prism-code language-yaml codeBlock__0OG thin-scrollbar"><code class="codeBlockLines_gEuF"><span class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic"># bad</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">version</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">&#x27;3&#x27;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">vars</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#00a4db">binary_name</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> myapp</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">tasks</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#00a4db">build</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token key atrule" style="color:#00a4db">cmds</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain"> go build </span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain">o </span><span class="token punctuation" style="color:#393A34">{</span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain">.binary_name</span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain"> .</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic"># good</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">version</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">&#x27;3&#x27;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">vars</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#00a4db">BINARY_NAME</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> myapp</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">tasks</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#00a4db">build</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token key atrule" style="color:#00a4db">cmds</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain"> go build </span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain">o </span><span class="token punctuation" style="color:#393A34">{</span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain">.BINARY_NAME</span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain"> .</span><br></span></code></pre><div class="buttonGroup_hRr1"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_W9eQ" aria-hidden="true"><svg class="copyButtonIcon_XEyF" viewBox="0 0 24 24"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg class="copyButtonSuccessIcon_i9w9" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><h2 class="anchor anchorWithStickyNavbar_mojV" id="dont-wrap-vars-in-spaces-when-templating">Don&#x27;t wrap vars in spaces when templating<a class="hash-link" href="#dont-wrap-vars-in-spaces-when-templating" title="Direct link to heading">​</a></h2><div class="language-yaml codeBlockContainer_MPoW theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_B9tL"><pre tabindex="0" class="prism-code language-yaml codeBlock__0OG thin-scrollbar"><code class="codeBlockLines_gEuF"><span class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic"># bad</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">version</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">&#x27;3&#x27;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">tasks</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#00a4db">greet</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token key atrule" style="color:#00a4db">cmds</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain"> echo &#x27;</span><span class="token punctuation" style="color:#393A34">{</span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"> .MESSAGE </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain">&#x27;</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic"># good</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">version</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">&#x27;3&#x27;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">tasks</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#00a4db">greet</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token key atrule" style="color:#00a4db">cmds</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain"> echo &#x27;</span><span class="token punctuation" style="color:#393A34">{</span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain">.MESSAGE</span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain">&#x27;</span><br></span></code></pre><div class="buttonGroup_hRr1"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_W9eQ" aria-hidden="true"><svg class="copyButtonIcon_XEyF" viewBox="0 0 24 24"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg class="copyButtonSuccessIcon_i9w9" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>This convention is also used by most people for any Go templating.</p><h2 class="anchor anchorWithStickyNavbar_mojV" id="separate-task-name-words-with-a-dash">Separate task name words with a dash<a class="hash-link" href="#separate-task-name-words-with-a-dash" title="Direct link to heading">​</a></h2><div class="language-yaml codeBlockContainer_MPoW theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_B9tL"><pre tabindex="0" class="prism-code language-yaml codeBlock__0OG thin-scrollbar"><code class="codeBlockLines_gEuF"><span class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic"># bad</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">version</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">&#x27;3&#x27;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">tasks</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#00a4db">do_something_fancy</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token key atrule" style="color:#00a4db">cmds</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain"> echo &#x27;Do something&#x27;</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic"># good</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">version</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">&#x27;3&#x27;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">tasks</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#00a4db">do-something-fancy</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token key atrule" style="color:#00a4db">cmds</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain"> echo &#x27;Do something&#x27;</span><br></span></code></pre><div class="buttonGroup_hRr1"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_W9eQ" aria-hidden="true"><svg class="copyButtonIcon_XEyF" viewBox="0 0 24 24"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg class="copyButtonSuccessIcon_i9w9" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><h2 class="anchor anchorWithStickyNavbar_mojV" id="use-colon-for-task-namespacing">Use colon for task namespacing<a class="hash-link" href="#use-colon-for-task-namespacing" title="Direct link to heading">​</a></h2><div class="language-yaml codeBlockContainer_MPoW theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_B9tL"><pre tabindex="0" class="prism-code language-yaml codeBlock__0OG thin-scrollbar"><code class="codeBlockLines_gEuF"><span class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic"># good</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">version</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">&#x27;3&#x27;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">tasks</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#00a4db">docker:build</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token key atrule" style="color:#00a4db">cmds</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain"> docker </span><span class="token punctuation" style="color:#393A34">...</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#00a4db">docker:run</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token key atrule" style="color:#00a4db">cmds</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain"> docker</span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain">compose </span><span class="token punctuation" style="color:#393A34">...</span><br></span></code></pre><div class="buttonGroup_hRr1"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_W9eQ" aria-hidden="true"><svg class="copyButtonIcon_XEyF" viewBox="0 0 24 24"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg class="copyButtonSuccessIcon_i9w9" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>This is also done automatically when using included Taskfiles.</p></div></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages navigation"><a class="pagination-nav__link pagination-nav__link--prev" href="/usage/"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Usage</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/community/"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">Community</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_cNA8 thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#use-taskfileyml-and-not-taskfileyml" class="table-of-contents__link toc-highlight">Use <code>Taskfile.yml</code> and not <code>taskfile.yml</code></a></li><li><a href="#use-the-correct-order-of-keywords" class="table-of-contents__link toc-highlight">Use the correct order of keywords</a></li><li><a href="#use-2-spaces-for-indentation" class="table-of-contents__link toc-highlight">Use 2 spaces for indentation</a></li><li><a href="#separate-with-spaces-the-mains-sections" class="table-of-contents__link toc-highlight">Separate with spaces the mains sections</a></li><li><a href="#add-spaces-between-tasks" class="table-of-contents__link toc-highlight">Add spaces between tasks</a></li><li><a href="#use-upper-case-variable-names" class="table-of-contents__link toc-highlight">Use upper-case variable names</a></li><li><a href="#dont-wrap-vars-in-spaces-when-templating" class="table-of-contents__link toc-highlight">Don&#39;t wrap vars in spaces when templating</a></li><li><a href="#separate-task-name-words-with-a-dash" class="table-of-contents__link toc-highlight">Separate task name words with a dash</a></li><li><a href="#use-colon-for-task-namespacing" class="table-of-contents__link toc-highlight">Use colon for task namespacing</a></li></ul></div></div></div></div></main></div></div><footer class="footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Docs</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/installation/">Installation</a></li><li class="footer__item"><a class="footer__link-item" href="/usage/">Usage</a></li><li class="footer__item"><a class="footer__link-item" href="/donate/">Donate</a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://github.com/go-task/task" target="_blank" rel="noopener noreferrer" class="footer__link-item">GitHub<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discord.gg/6TY36E39UK" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://opencollective.com/task" target="_blank" rel="noopener noreferrer" class="footer__link-item">OpenCollective<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.ecad62b6.js"></script>
-<script src="/assets/js/main.02eb1717.js"></script>
+officially supported. On Linux, only <code>Taskfile.yml</code> will work, though.</p><h2 class="anchor anchorWithStickyNavbar_mojV" id="use-the-correct-order-of-keywords">Use the correct order of keywords<a class="hash-link" href="#use-the-correct-order-of-keywords" title="Direct link to heading">​</a></h2><ul><li><code>version:</code></li><li><code>includes:</code></li><li>Configuration ones, like <code>output:</code>, <code>silent:</code>, <code>method:</code> and <code>run:</code></li><li><code>vars:</code></li><li><code>env:</code>, <code>dotenv:</code></li><li><code>tasks:</code></li></ul><h2 class="anchor anchorWithStickyNavbar_mojV" id="use-2-spaces-for-indentation">Use 2 spaces for indentation<a class="hash-link" href="#use-2-spaces-for-indentation" title="Direct link to heading">​</a></h2><p>This is the most common convention for YAML files, and Task follows it.</p><div class="language-yaml codeBlockContainer_MPoW theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_B9tL"><pre tabindex="0" class="prism-code language-yaml codeBlock__0OG thin-scrollbar"><code class="codeBlockLines_gEuF"><span class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic"># bad</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">tasks</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token key atrule" style="color:#00a4db">foo</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        </span><span class="token key atrule" style="color:#00a4db">cmds</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">            </span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain"> echo &#x27;foo&#x27;</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic"># good</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">tasks</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#00a4db">foo</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token key atrule" style="color:#00a4db">cmds</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain"> echo &#x27;foo&#x27;</span><br></span></code></pre><div class="buttonGroup_hRr1"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_W9eQ" aria-hidden="true"><svg class="copyButtonIcon_XEyF" viewBox="0 0 24 24"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg class="copyButtonSuccessIcon_i9w9" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><h2 class="anchor anchorWithStickyNavbar_mojV" id="separate-with-spaces-the-mains-sections">Separate with spaces the mains sections<a class="hash-link" href="#separate-with-spaces-the-mains-sections" title="Direct link to heading">​</a></h2><div class="language-yaml codeBlockContainer_MPoW theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_B9tL"><pre tabindex="0" class="prism-code language-yaml codeBlock__0OG thin-scrollbar"><code class="codeBlockLines_gEuF"><span class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic"># bad</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">version</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">&#x27;3&#x27;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">includes</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#00a4db">docker</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> ./docker/Taskfile.yml</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">output</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> prefixed</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">vars</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#00a4db">FOO</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> bar</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">env</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#00a4db">BAR</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> baz</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">tasks</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token comment" style="color:#999988;font-style:italic"># ...</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic"># good</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">version</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">&#x27;3&#x27;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">includes</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#00a4db">docker</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> ./docker/Taskfile.yml</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">output</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> prefixed</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">vars</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#00a4db">FOO</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> bar</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">env</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#00a4db">BAR</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> baz</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">tasks</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token comment" style="color:#999988;font-style:italic"># ...</span><br></span></code></pre><div class="buttonGroup_hRr1"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_W9eQ" aria-hidden="true"><svg class="copyButtonIcon_XEyF" viewBox="0 0 24 24"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg class="copyButtonSuccessIcon_i9w9" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><h2 class="anchor anchorWithStickyNavbar_mojV" id="add-spaces-between-tasks">Add spaces between tasks<a class="hash-link" href="#add-spaces-between-tasks" title="Direct link to heading">​</a></h2><div class="language-yaml codeBlockContainer_MPoW theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_B9tL"><pre tabindex="0" class="prism-code language-yaml codeBlock__0OG thin-scrollbar"><code class="codeBlockLines_gEuF"><span class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic"># bad</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">version</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">&#x27;3&#x27;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">tasks</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#00a4db">foo</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token key atrule" style="color:#00a4db">cmds</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain"> echo &#x27;foo&#x27;</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#00a4db">bar</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token key atrule" style="color:#00a4db">cmds</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain"> echo &#x27;bar&#x27;</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#00a4db">baz</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token key atrule" style="color:#00a4db">cmds</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain"> echo &#x27;baz&#x27;</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic"># good</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">version</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">&#x27;3&#x27;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">tasks</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#00a4db">foo</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token key atrule" style="color:#00a4db">cmds</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain"> echo &#x27;foo&#x27;</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#00a4db">bar</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token key atrule" style="color:#00a4db">cmds</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain"> echo &#x27;bar&#x27;</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#00a4db">baz</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token key atrule" style="color:#00a4db">cmds</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain"> echo &#x27;baz&#x27;</span><br></span></code></pre><div class="buttonGroup_hRr1"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_W9eQ" aria-hidden="true"><svg class="copyButtonIcon_XEyF" viewBox="0 0 24 24"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg class="copyButtonSuccessIcon_i9w9" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><h2 class="anchor anchorWithStickyNavbar_mojV" id="use-upper-case-variable-names">Use upper-case variable names<a class="hash-link" href="#use-upper-case-variable-names" title="Direct link to heading">​</a></h2><div class="language-yaml codeBlockContainer_MPoW theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_B9tL"><pre tabindex="0" class="prism-code language-yaml codeBlock__0OG thin-scrollbar"><code class="codeBlockLines_gEuF"><span class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic"># bad</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">version</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">&#x27;3&#x27;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">vars</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#00a4db">binary_name</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> myapp</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">tasks</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#00a4db">build</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token key atrule" style="color:#00a4db">cmds</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain"> go build </span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain">o </span><span class="token punctuation" style="color:#393A34">{</span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain">.binary_name</span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain"> .</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic"># good</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">version</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">&#x27;3&#x27;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">vars</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#00a4db">BINARY_NAME</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> myapp</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">tasks</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#00a4db">build</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token key atrule" style="color:#00a4db">cmds</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain"> go build </span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain">o </span><span class="token punctuation" style="color:#393A34">{</span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain">.BINARY_NAME</span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain"> .</span><br></span></code></pre><div class="buttonGroup_hRr1"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_W9eQ" aria-hidden="true"><svg class="copyButtonIcon_XEyF" viewBox="0 0 24 24"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg class="copyButtonSuccessIcon_i9w9" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><h2 class="anchor anchorWithStickyNavbar_mojV" id="dont-wrap-vars-in-spaces-when-templating">Don&#x27;t wrap vars in spaces when templating<a class="hash-link" href="#dont-wrap-vars-in-spaces-when-templating" title="Direct link to heading">​</a></h2><div class="language-yaml codeBlockContainer_MPoW theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_B9tL"><pre tabindex="0" class="prism-code language-yaml codeBlock__0OG thin-scrollbar"><code class="codeBlockLines_gEuF"><span class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic"># bad</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">version</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">&#x27;3&#x27;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">tasks</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#00a4db">greet</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token key atrule" style="color:#00a4db">cmds</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain"> echo &#x27;</span><span class="token punctuation" style="color:#393A34">{</span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"> .MESSAGE </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain">&#x27;</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic"># good</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">version</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">&#x27;3&#x27;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">tasks</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#00a4db">greet</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token key atrule" style="color:#00a4db">cmds</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain"> echo &#x27;</span><span class="token punctuation" style="color:#393A34">{</span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain">.MESSAGE</span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain">&#x27;</span><br></span></code></pre><div class="buttonGroup_hRr1"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_W9eQ" aria-hidden="true"><svg class="copyButtonIcon_XEyF" viewBox="0 0 24 24"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg class="copyButtonSuccessIcon_i9w9" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>This convention is also used by most people for any Go templating.</p><h2 class="anchor anchorWithStickyNavbar_mojV" id="separate-task-name-words-with-a-dash">Separate task name words with a dash<a class="hash-link" href="#separate-task-name-words-with-a-dash" title="Direct link to heading">​</a></h2><div class="language-yaml codeBlockContainer_MPoW theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_B9tL"><pre tabindex="0" class="prism-code language-yaml codeBlock__0OG thin-scrollbar"><code class="codeBlockLines_gEuF"><span class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic"># bad</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">version</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">&#x27;3&#x27;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">tasks</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#00a4db">do_something_fancy</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token key atrule" style="color:#00a4db">cmds</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain"> echo &#x27;Do something&#x27;</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic"># good</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">version</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">&#x27;3&#x27;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">tasks</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#00a4db">do-something-fancy</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token key atrule" style="color:#00a4db">cmds</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain"> echo &#x27;Do something&#x27;</span><br></span></code></pre><div class="buttonGroup_hRr1"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_W9eQ" aria-hidden="true"><svg class="copyButtonIcon_XEyF" viewBox="0 0 24 24"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg class="copyButtonSuccessIcon_i9w9" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><h2 class="anchor anchorWithStickyNavbar_mojV" id="use-colon-for-task-namespacing">Use colon for task namespacing<a class="hash-link" href="#use-colon-for-task-namespacing" title="Direct link to heading">​</a></h2><div class="language-yaml codeBlockContainer_MPoW theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_B9tL"><pre tabindex="0" class="prism-code language-yaml codeBlock__0OG thin-scrollbar"><code class="codeBlockLines_gEuF"><span class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic"># good</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">version</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">&#x27;3&#x27;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">tasks</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#00a4db">docker:build</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token key atrule" style="color:#00a4db">cmds</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain"> docker </span><span class="token punctuation" style="color:#393A34">...</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#00a4db">docker:run</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token key atrule" style="color:#00a4db">cmds</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain"> docker</span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain">compose </span><span class="token punctuation" style="color:#393A34">...</span><br></span></code></pre><div class="buttonGroup_hRr1"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_W9eQ" aria-hidden="true"><svg class="copyButtonIcon_XEyF" viewBox="0 0 24 24"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg class="copyButtonSuccessIcon_i9w9" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>This is also done automatically when using included Taskfiles.</p></div></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages navigation"><a class="pagination-nav__link pagination-nav__link--prev" href="/api/"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">API Reference</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/changelog/"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">Changelog</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_cNA8 thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#use-taskfileyml-and-not-taskfileyml" class="table-of-contents__link toc-highlight">Use <code>Taskfile.yml</code> and not <code>taskfile.yml</code></a></li><li><a href="#use-the-correct-order-of-keywords" class="table-of-contents__link toc-highlight">Use the correct order of keywords</a></li><li><a href="#use-2-spaces-for-indentation" class="table-of-contents__link toc-highlight">Use 2 spaces for indentation</a></li><li><a href="#separate-with-spaces-the-mains-sections" class="table-of-contents__link toc-highlight">Separate with spaces the mains sections</a></li><li><a href="#add-spaces-between-tasks" class="table-of-contents__link toc-highlight">Add spaces between tasks</a></li><li><a href="#use-upper-case-variable-names" class="table-of-contents__link toc-highlight">Use upper-case variable names</a></li><li><a href="#dont-wrap-vars-in-spaces-when-templating" class="table-of-contents__link toc-highlight">Don&#39;t wrap vars in spaces when templating</a></li><li><a href="#separate-task-name-words-with-a-dash" class="table-of-contents__link toc-highlight">Separate task name words with a dash</a></li><li><a href="#use-colon-for-task-namespacing" class="table-of-contents__link toc-highlight">Use colon for task namespacing</a></li></ul></div></div></div></div></main></div></div><footer class="footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Docs</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/installation/">Installation</a></li><li class="footer__item"><a class="footer__link-item" href="/usage/">Usage</a></li><li class="footer__item"><a class="footer__link-item" href="/donate/">Donate</a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://github.com/go-task/task" target="_blank" rel="noopener noreferrer" class="footer__link-item">GitHub<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discord.gg/6TY36E39UK" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://opencollective.com/task" target="_blank" rel="noopener noreferrer" class="footer__link-item">OpenCollective<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div></div></footer></div>
+<script src="/assets/js/runtime~main.dc8eec3e.js"></script>
+<script src="/assets/js/main.a2abdebd.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/taskfile-versions/index.html b/taskfile-versions/index.html
index e5bcf982..f36e1d2b 100644
--- a/taskfile-versions/index.html
+++ b/taskfile-versions/index.html
@@ -11,12 +11,12 @@
 
 
 <script src="/js/carbon.js" async></script><title data-rh="true">Taskfile Versions | Task</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://taskfile.dev/taskfile-versions/"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="og:image" content="https://preview-taskfile.netlify.app/img/logo.svg"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Taskfile Versions | Task"><meta data-rh="true" name="description" content="The Taskfile syntax and features changed with time. This document explains what"><meta data-rh="true" property="og:description" content="The Taskfile syntax and features changed with time. This document explains what"><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://taskfile.dev/taskfile-versions/"><link data-rh="true" rel="alternate" href="https://taskfile.dev/taskfile-versions/" hreflang="en"><link data-rh="true" rel="alternate" href="https://taskfile.dev/taskfile-versions/" hreflang="x-default"><link rel="stylesheet" href="/assets/css/styles.3fb3b1af.css">
-<link rel="preload" href="/assets/js/runtime~main.ecad62b6.js" as="script">
-<link rel="preload" href="/assets/js/main.02eb1717.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.dc8eec3e.js" as="script">
+<link rel="preload" href="/assets/js/main.a2abdebd.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
-<div role="region"><a href="#" class="skipToContent_ZgBM">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><div class="navbar__logo"><img src="/img/logo.svg" alt="Task Logo" class="themedImage_W2Cr themedImage--light_TfLj"><img src="/img/logo.svg" alt="Task Logo" class="themedImage_W2Cr themedImage--dark_oUvU"></div><b class="navbar__title text--truncate">Task</b></a><a class="navbar__item navbar__link navbar__link--active" href="/installation/">Installation</a><a class="navbar__item navbar__link navbar__link--active" href="/usage/">Usage</a><a class="navbar__item navbar__link navbar__link--active" href="/donate/">Donate</a></div><div class="navbar__items navbar__items--right"><a href="https://github.com/go-task/task" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">GitHub<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a><a href="https://discord.gg/6TY36E39UK" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a><div class="toggle_S7eR colorModeToggle_vKtC"><button class="clean-btn toggleButton_rCf9 toggleButtonDisabled_Pu9x" type="button" disabled="" title="Switch between dark and light mode (currently light mode)" aria-label="Switch between dark and light mode (currently light mode)"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_v35p"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_nQuB"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_dLyj"></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div class="main-wrapper docsWrapper_mKqt"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_RiI4" type="button"></button><div class="docPage_ualW"><aside class="theme-doc-sidebar-container docSidebarContainer_UQUJ"><div class="sidebar_RiAD"><nav class="menu thin-scrollbar menu_izAj"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/">Home</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/installation/">Installation</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/usage/">Usage</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/styleguide/">Styleguide</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/community/">Community</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/changelog/">Changelog</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/releasing/">Releasing</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" href="/taskfile-versions/">Taskfile Versions</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/donate/">Donate</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1"><div id="sidebar-ads"></div></li></ul></nav></div></aside><main class="docMainContainer_uL0j"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_DM6M"><div class="docItemContainer_vinB"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Xlws" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_kU5B"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Taskfile Versions</span><meta itemprop="position" content="1"></li></ul></nav><div class="tocCollapsible_bZGK theme-doc-toc-mobile tocMobile_TmEX"><button type="button" class="clean-btn tocCollapsibleButton_l22C">On this page</button></div><div class="theme-doc-markdown markdown"><h1>Taskfile Versions</h1><p>The Taskfile syntax and features changed with time. This document explains what
+<div role="region"><a href="#" class="skipToContent_ZgBM">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><div class="navbar__logo"><img src="/img/logo.svg" alt="Task Logo" class="themedImage_W2Cr themedImage--light_TfLj"><img src="/img/logo.svg" alt="Task Logo" class="themedImage_W2Cr themedImage--dark_oUvU"></div><b class="navbar__title text--truncate">Task</b></a><a class="navbar__item navbar__link navbar__link--active" href="/installation/">Installation</a><a class="navbar__item navbar__link navbar__link--active" href="/usage/">Usage</a><a class="navbar__item navbar__link navbar__link--active" href="/api/">API</a><a class="navbar__item navbar__link navbar__link--active" href="/donate/">Donate</a></div><div class="navbar__items navbar__items--right"><a href="https://github.com/go-task/task" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">GitHub<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a><a href="https://discord.gg/6TY36E39UK" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a><div class="toggle_S7eR colorModeToggle_vKtC"><button class="clean-btn toggleButton_rCf9 toggleButtonDisabled_Pu9x" type="button" disabled="" title="Switch between dark and light mode (currently light mode)" aria-label="Switch between dark and light mode (currently light mode)"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_v35p"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_nQuB"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_dLyj"></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div class="main-wrapper docsWrapper_mKqt"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_RiI4" type="button"></button><div class="docPage_ualW"><aside class="theme-doc-sidebar-container docSidebarContainer_UQUJ"><div class="sidebar_RiAD"><nav class="menu thin-scrollbar menu_izAj"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/">Home</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/installation/">Installation</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/usage/">Usage</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/api/">API Reference</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/styleguide/">Styleguide</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/changelog/">Changelog</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/community/">Community</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/releasing/">Releasing</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" href="/taskfile-versions/">Taskfile Versions</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/donate/">Donate</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1"><div id="sidebar-ads"></div></li></ul></nav></div></aside><main class="docMainContainer_uL0j"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_DM6M"><div class="docItemContainer_vinB"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Xlws" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_kU5B"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Taskfile Versions</span><meta itemprop="position" content="1"></li></ul></nav><div class="tocCollapsible_bZGK theme-doc-toc-mobile tocMobile_TmEX"><button type="button" class="clean-btn tocCollapsibleButton_l22C">On this page</button></div><div class="theme-doc-markdown markdown"><h1>Taskfile Versions</h1><p>The Taskfile syntax and features changed with time. This document explains what
 changed on each version and how to upgrade your Taskfile.</p><h2 class="anchor anchorWithStickyNavbar_mojV" id="what-the-taskfile-version-mean">What the Taskfile version mean<a class="hash-link" href="#what-the-taskfile-version-mean" title="Direct link to heading">​</a></h2><p>The Taskfile version follows the Task version. E.g. the change to Taskfile
 version <code>2</code> means that Task <code>v2.0.0</code> should be release to support it.</p><p>The <code>version:</code> key on Taskfile accepts a semver string, so either <code>2</code>, <code>2.0</code> or
 <code>2.0.0</code> is accepted. If you choose to use <code>2.0</code> Task will not enable future
@@ -39,7 +39,7 @@ included Taskfile will run:</li></ul><div class="language-yaml codeBlockContaine
 to understand. The <code>expansions:</code> setting was removed as it became unncessary.
 This is the order in which Task will process variables, each level can see
 the variables set by the previous one and override those.<ul><li>Environment variables</li><li>Global + CLI variables</li><li>Call variables</li><li>Task variables</li></ul></li></ul></div></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages navigation"><a class="pagination-nav__link pagination-nav__link--prev" href="/releasing/"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Releasing</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/donate/"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">Donate</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_cNA8 thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#what-the-taskfile-version-mean" class="table-of-contents__link toc-highlight">What the Taskfile version mean</a></li><li><a href="#version-1" class="table-of-contents__link toc-highlight">Version 1</a></li><li><a href="#version-20" class="table-of-contents__link toc-highlight">Version 2.0</a></li><li><a href="#version-21" class="table-of-contents__link toc-highlight">Version 2.1</a></li><li><a href="#version-22" class="table-of-contents__link toc-highlight">Version 2.2</a></li><li><a href="#version-26" class="table-of-contents__link toc-highlight">Version 2.6</a></li><li><a href="#version-3" class="table-of-contents__link toc-highlight">Version 3</a></li></ul></div></div></div></div></main></div></div><footer class="footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Docs</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/installation/">Installation</a></li><li class="footer__item"><a class="footer__link-item" href="/usage/">Usage</a></li><li class="footer__item"><a class="footer__link-item" href="/donate/">Donate</a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://github.com/go-task/task" target="_blank" rel="noopener noreferrer" class="footer__link-item">GitHub<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discord.gg/6TY36E39UK" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://opencollective.com/task" target="_blank" rel="noopener noreferrer" class="footer__link-item">OpenCollective<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.ecad62b6.js"></script>
-<script src="/assets/js/main.02eb1717.js"></script>
+<script src="/assets/js/runtime~main.dc8eec3e.js"></script>
+<script src="/assets/js/main.a2abdebd.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/usage/index.html b/usage/index.html
index dfac41fa..356c621f 100644
--- a/usage/index.html
+++ b/usage/index.html
@@ -11,12 +11,12 @@
 
 
 <script src="/js/carbon.js" async></script><title data-rh="true">Usage | Task</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://taskfile.dev/usage/"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="og:image" content="https://preview-taskfile.netlify.app/img/logo.svg"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Usage | Task"><meta data-rh="true" name="description" content="Getting started"><meta data-rh="true" property="og:description" content="Getting started"><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://taskfile.dev/usage/"><link data-rh="true" rel="alternate" href="https://taskfile.dev/usage/" hreflang="en"><link data-rh="true" rel="alternate" href="https://taskfile.dev/usage/" hreflang="x-default"><link rel="stylesheet" href="/assets/css/styles.3fb3b1af.css">
-<link rel="preload" href="/assets/js/runtime~main.ecad62b6.js" as="script">
-<link rel="preload" href="/assets/js/main.02eb1717.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.dc8eec3e.js" as="script">
+<link rel="preload" href="/assets/js/main.a2abdebd.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
-<div role="region"><a href="#" class="skipToContent_ZgBM">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><div class="navbar__logo"><img src="/img/logo.svg" alt="Task Logo" class="themedImage_W2Cr themedImage--light_TfLj"><img src="/img/logo.svg" alt="Task Logo" class="themedImage_W2Cr themedImage--dark_oUvU"></div><b class="navbar__title text--truncate">Task</b></a><a class="navbar__item navbar__link navbar__link--active" href="/installation/">Installation</a><a aria-current="page" class="navbar__item navbar__link navbar__link--active" href="/usage/">Usage</a><a class="navbar__item navbar__link navbar__link--active" href="/donate/">Donate</a></div><div class="navbar__items navbar__items--right"><a href="https://github.com/go-task/task" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">GitHub<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a><a href="https://discord.gg/6TY36E39UK" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a><div class="toggle_S7eR colorModeToggle_vKtC"><button class="clean-btn toggleButton_rCf9 toggleButtonDisabled_Pu9x" type="button" disabled="" title="Switch between dark and light mode (currently light mode)" aria-label="Switch between dark and light mode (currently light mode)"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_v35p"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_nQuB"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_dLyj"></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div class="main-wrapper docsWrapper_mKqt"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_RiI4" type="button"></button><div class="docPage_ualW"><aside class="theme-doc-sidebar-container docSidebarContainer_UQUJ"><div class="sidebar_RiAD"><nav class="menu thin-scrollbar menu_izAj"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/">Home</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/installation/">Installation</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" href="/usage/">Usage</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/styleguide/">Styleguide</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/community/">Community</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/changelog/">Changelog</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/releasing/">Releasing</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/taskfile-versions/">Taskfile Versions</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/donate/">Donate</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1"><div id="sidebar-ads"></div></li></ul></nav></div></aside><main class="docMainContainer_uL0j"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_DM6M"><div class="docItemContainer_vinB"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Xlws" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_kU5B"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Usage</span><meta itemprop="position" content="1"></li></ul></nav><div class="tocCollapsible_bZGK theme-doc-toc-mobile tocMobile_TmEX"><button type="button" class="clean-btn tocCollapsibleButton_l22C">On this page</button></div><div class="theme-doc-markdown markdown"><h1>Usage</h1><h2 class="anchor anchorWithStickyNavbar_mojV" id="getting-started">Getting started<a class="hash-link" href="#getting-started" title="Direct link to heading">​</a></h2><p>Create a file called <code>Taskfile.yml</code> in the root of your project.
+<div role="region"><a href="#" class="skipToContent_ZgBM">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><div class="navbar__logo"><img src="/img/logo.svg" alt="Task Logo" class="themedImage_W2Cr themedImage--light_TfLj"><img src="/img/logo.svg" alt="Task Logo" class="themedImage_W2Cr themedImage--dark_oUvU"></div><b class="navbar__title text--truncate">Task</b></a><a class="navbar__item navbar__link navbar__link--active" href="/installation/">Installation</a><a aria-current="page" class="navbar__item navbar__link navbar__link--active" href="/usage/">Usage</a><a class="navbar__item navbar__link navbar__link--active" href="/api/">API</a><a class="navbar__item navbar__link navbar__link--active" href="/donate/">Donate</a></div><div class="navbar__items navbar__items--right"><a href="https://github.com/go-task/task" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">GitHub<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a><a href="https://discord.gg/6TY36E39UK" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a><div class="toggle_S7eR colorModeToggle_vKtC"><button class="clean-btn toggleButton_rCf9 toggleButtonDisabled_Pu9x" type="button" disabled="" title="Switch between dark and light mode (currently light mode)" aria-label="Switch between dark and light mode (currently light mode)"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_v35p"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_nQuB"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_dLyj"></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div class="main-wrapper docsWrapper_mKqt"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_RiI4" type="button"></button><div class="docPage_ualW"><aside class="theme-doc-sidebar-container docSidebarContainer_UQUJ"><div class="sidebar_RiAD"><nav class="menu thin-scrollbar menu_izAj"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/">Home</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/installation/">Installation</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" href="/usage/">Usage</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/api/">API Reference</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/styleguide/">Styleguide</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/changelog/">Changelog</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/community/">Community</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/releasing/">Releasing</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/taskfile-versions/">Taskfile Versions</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/donate/">Donate</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1"><div id="sidebar-ads"></div></li></ul></nav></div></aside><main class="docMainContainer_uL0j"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_DM6M"><div class="docItemContainer_vinB"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Xlws" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_kU5B"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Usage</span><meta itemprop="position" content="1"></li></ul></nav><div class="tocCollapsible_bZGK theme-doc-toc-mobile tocMobile_TmEX"><button type="button" class="clean-btn tocCollapsibleButton_l22C">On this page</button></div><div class="theme-doc-markdown markdown"><h1>Usage</h1><h2 class="anchor anchorWithStickyNavbar_mojV" id="getting-started">Getting started<a class="hash-link" href="#getting-started" title="Direct link to heading">​</a></h2><p>Create a file called <code>Taskfile.yml</code> in the root of your project.
 The <code>cmds</code> attribute should contain the commands of a task.
 The example below allows compiling a Go app and uses <a href="https://github.com/tdewolff/minify/tree/master/cmd/minify" target="_blank" rel="noopener noreferrer">Minify</a> to concat
 and minify multiple CSS files into a single one.</p><div class="language-yaml codeBlockContainer_MPoW theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_B9tL"><pre tabindex="0" class="prism-code language-yaml codeBlock__0OG thin-scrollbar"><code class="codeBlockLines_gEuF"><span class="token-line" style="color:#393A34"><span class="token key atrule" style="color:#00a4db">version</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">&#x27;3&#x27;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">tasks</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#00a4db">build</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token key atrule" style="color:#00a4db">cmds</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain"> go build </span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain">v </span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain">i main.go</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#00a4db">assets</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token key atrule" style="color:#00a4db">cmds</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain"> minify </span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain">o public/style.css src/css</span><br></span></code></pre><div class="buttonGroup_hRr1"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_W9eQ" aria-hidden="true"><svg class="copyButtonIcon_XEyF" viewBox="0 0 24 24"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg class="copyButtonSuccessIcon_i9w9" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>Running the tasks is as simple as running:</p><div class="language-bash codeBlockContainer_MPoW theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_B9tL"><pre tabindex="0" class="prism-code language-bash codeBlock__0OG thin-scrollbar"><code class="codeBlockLines_gEuF"><span class="token-line" style="color:#393A34"><span class="token plain">task assets build</span><br></span></code></pre><div class="buttonGroup_hRr1"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_W9eQ" aria-hidden="true"><svg class="copyButtonIcon_XEyF" viewBox="0 0 24 24"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg class="copyButtonSuccessIcon_i9w9" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>Task uses <a href="https://mvdan.cc/sh/" target="_blank" rel="noopener noreferrer">mvdan.cc/sh</a>, a native Go sh
@@ -151,8 +151,8 @@ will try to optimize for it:</p><div class="language-yaml codeBlockContainer_MPo
 an issue about it.</p><h2 class="anchor anchorWithStickyNavbar_mojV" id="short-task-syntax">Short task syntax<a class="hash-link" href="#short-task-syntax" title="Direct link to heading">​</a></h2><p>Starting on Task v3, you can now write tasks with a shorter syntax if they
 have the default settings (e.g. no custom <code>env:</code>, <code>vars:</code>, <code>desc:</code>, <code>silent:</code> , etc):</p><div class="language-yaml codeBlockContainer_MPoW theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_B9tL"><pre tabindex="0" class="prism-code language-yaml codeBlock__0OG thin-scrollbar"><code class="codeBlockLines_gEuF"><span class="token-line" style="color:#393A34"><span class="token key atrule" style="color:#00a4db">version</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">&#x27;3&#x27;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">tasks</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#00a4db">build</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> go build </span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain">v </span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain">o ./app</span><span class="token punctuation" style="color:#393A34">{</span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain">exeExt</span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain"> .</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#00a4db">run</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain"> </span><span class="token key atrule" style="color:#00a4db">task</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> build</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain"> ./app</span><span class="token punctuation" style="color:#393A34">{</span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain">exeExt</span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain">h localhost </span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain">p 8080</span><br></span></code></pre><div class="buttonGroup_hRr1"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_W9eQ" aria-hidden="true"><svg class="copyButtonIcon_XEyF" viewBox="0 0 24 24"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg class="copyButtonSuccessIcon_i9w9" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><h2 class="anchor anchorWithStickyNavbar_mojV" id="watch-tasks">Watch tasks<a class="hash-link" href="#watch-tasks" title="Direct link to heading">​</a></h2><p>With the flags <code>--watch</code> or <code>-w</code> task will watch for file changes
 and run the task again. This requires the <code>sources</code> attribute to be given,
-so task knows which files to watch.</p></div></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages navigation"><a class="pagination-nav__link pagination-nav__link--prev" href="/installation/"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Installation</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/styleguide/"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">Styleguide</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_cNA8 thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#getting-started" class="table-of-contents__link toc-highlight">Getting started</a></li><li><a href="#supported-file-names" class="table-of-contents__link toc-highlight">Supported file names</a></li><li><a href="#environment-variables" class="table-of-contents__link toc-highlight">Environment variables</a><ul><li><a href="#task" class="table-of-contents__link toc-highlight">Task</a></li><li><a href="#env-files" class="table-of-contents__link toc-highlight">.env files</a></li></ul></li><li><a href="#including-other-taskfiles" class="table-of-contents__link toc-highlight">Including other Taskfiles</a><ul><li><a href="#os-specific-taskfiles" class="table-of-contents__link toc-highlight">OS-specific Taskfiles</a></li><li><a href="#directory-of-included-taskfile" class="table-of-contents__link toc-highlight">Directory of included Taskfile</a></li><li><a href="#optional-includes" class="table-of-contents__link toc-highlight">Optional includes</a></li><li><a href="#vars-of-included-taskfiles" class="table-of-contents__link toc-highlight">Vars of included Taskfiles</a></li></ul></li><li><a href="#task-directory" class="table-of-contents__link toc-highlight">Task directory</a></li><li><a href="#task-dependencies" class="table-of-contents__link toc-highlight">Task dependencies</a></li><li><a href="#calling-another-task" class="table-of-contents__link toc-highlight">Calling another task</a></li><li><a href="#prevent-unnecessary-work" class="table-of-contents__link toc-highlight">Prevent unnecessary work</a><ul><li><a href="#by-fingerprinting-locally-generated-files-and-their-sources" class="table-of-contents__link toc-highlight">By fingerprinting locally generated files and their sources</a></li><li><a href="#using-programmatic-checks-to-indicate-a-task-is-up-to-date" class="table-of-contents__link toc-highlight">Using programmatic checks to indicate a task is up to date.</a></li><li><a href="#using-programmatic-checks-to-cancel-execution-of-an-task-and-its-dependencies" class="table-of-contents__link toc-highlight">Using programmatic checks to cancel execution of an task and it&#39;s dependencies</a></li><li><a href="#limiting-when-tasks-run" class="table-of-contents__link toc-highlight">Limiting when tasks run</a></li></ul></li><li><a href="#variables" class="table-of-contents__link toc-highlight">Variables</a><ul><li><a href="#dynamic-variables" class="table-of-contents__link toc-highlight">Dynamic variables</a></li></ul></li><li><a href="#forwarding-cli-arguments-to-commands" class="table-of-contents__link toc-highlight">Forwarding CLI arguments to commands</a></li><li><a href="#doing-task-cleanup-with-defer" class="table-of-contents__link toc-highlight">Doing task cleanup with <code>defer</code></a></li><li><a href="#gos-template-engine" class="table-of-contents__link toc-highlight">Go&#39;s template engine</a></li><li><a href="#help" class="table-of-contents__link toc-highlight">Help</a></li><li><a href="#display-summary-of-task" class="table-of-contents__link toc-highlight">Display summary of task</a></li><li><a href="#overriding-task-name" class="table-of-contents__link toc-highlight">Overriding task name</a></li><li><a href="#silent-mode" class="table-of-contents__link toc-highlight">Silent mode</a></li><li><a href="#dry-run-mode" class="table-of-contents__link toc-highlight">Dry run mode</a></li><li><a href="#ignore-errors" class="table-of-contents__link toc-highlight">Ignore errors</a></li><li><a href="#output-syntax" class="table-of-contents__link toc-highlight">Output syntax</a></li><li><a href="#interactive-cli-application" class="table-of-contents__link toc-highlight">Interactive CLI application</a></li><li><a href="#short-task-syntax" class="table-of-contents__link toc-highlight">Short task syntax</a></li><li><a href="#watch-tasks" class="table-of-contents__link toc-highlight">Watch tasks</a></li></ul></div></div></div></div></main></div></div><footer class="footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Docs</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/installation/">Installation</a></li><li class="footer__item"><a class="footer__link-item" href="/usage/">Usage</a></li><li class="footer__item"><a class="footer__link-item" href="/donate/">Donate</a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://github.com/go-task/task" target="_blank" rel="noopener noreferrer" class="footer__link-item">GitHub<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discord.gg/6TY36E39UK" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://opencollective.com/task" target="_blank" rel="noopener noreferrer" class="footer__link-item">OpenCollective<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.ecad62b6.js"></script>
-<script src="/assets/js/main.02eb1717.js"></script>
+so task knows which files to watch.</p></div></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages navigation"><a class="pagination-nav__link pagination-nav__link--prev" href="/installation/"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Installation</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/api/"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">API Reference</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_cNA8 thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#getting-started" class="table-of-contents__link toc-highlight">Getting started</a></li><li><a href="#supported-file-names" class="table-of-contents__link toc-highlight">Supported file names</a></li><li><a href="#environment-variables" class="table-of-contents__link toc-highlight">Environment variables</a><ul><li><a href="#task" class="table-of-contents__link toc-highlight">Task</a></li><li><a href="#env-files" class="table-of-contents__link toc-highlight">.env files</a></li></ul></li><li><a href="#including-other-taskfiles" class="table-of-contents__link toc-highlight">Including other Taskfiles</a><ul><li><a href="#os-specific-taskfiles" class="table-of-contents__link toc-highlight">OS-specific Taskfiles</a></li><li><a href="#directory-of-included-taskfile" class="table-of-contents__link toc-highlight">Directory of included Taskfile</a></li><li><a href="#optional-includes" class="table-of-contents__link toc-highlight">Optional includes</a></li><li><a href="#vars-of-included-taskfiles" class="table-of-contents__link toc-highlight">Vars of included Taskfiles</a></li></ul></li><li><a href="#task-directory" class="table-of-contents__link toc-highlight">Task directory</a></li><li><a href="#task-dependencies" class="table-of-contents__link toc-highlight">Task dependencies</a></li><li><a href="#calling-another-task" class="table-of-contents__link toc-highlight">Calling another task</a></li><li><a href="#prevent-unnecessary-work" class="table-of-contents__link toc-highlight">Prevent unnecessary work</a><ul><li><a href="#by-fingerprinting-locally-generated-files-and-their-sources" class="table-of-contents__link toc-highlight">By fingerprinting locally generated files and their sources</a></li><li><a href="#using-programmatic-checks-to-indicate-a-task-is-up-to-date" class="table-of-contents__link toc-highlight">Using programmatic checks to indicate a task is up to date.</a></li><li><a href="#using-programmatic-checks-to-cancel-execution-of-an-task-and-its-dependencies" class="table-of-contents__link toc-highlight">Using programmatic checks to cancel execution of an task and it&#39;s dependencies</a></li><li><a href="#limiting-when-tasks-run" class="table-of-contents__link toc-highlight">Limiting when tasks run</a></li></ul></li><li><a href="#variables" class="table-of-contents__link toc-highlight">Variables</a><ul><li><a href="#dynamic-variables" class="table-of-contents__link toc-highlight">Dynamic variables</a></li></ul></li><li><a href="#forwarding-cli-arguments-to-commands" class="table-of-contents__link toc-highlight">Forwarding CLI arguments to commands</a></li><li><a href="#doing-task-cleanup-with-defer" class="table-of-contents__link toc-highlight">Doing task cleanup with <code>defer</code></a></li><li><a href="#gos-template-engine" class="table-of-contents__link toc-highlight">Go&#39;s template engine</a></li><li><a href="#help" class="table-of-contents__link toc-highlight">Help</a></li><li><a href="#display-summary-of-task" class="table-of-contents__link toc-highlight">Display summary of task</a></li><li><a href="#overriding-task-name" class="table-of-contents__link toc-highlight">Overriding task name</a></li><li><a href="#silent-mode" class="table-of-contents__link toc-highlight">Silent mode</a></li><li><a href="#dry-run-mode" class="table-of-contents__link toc-highlight">Dry run mode</a></li><li><a href="#ignore-errors" class="table-of-contents__link toc-highlight">Ignore errors</a></li><li><a href="#output-syntax" class="table-of-contents__link toc-highlight">Output syntax</a></li><li><a href="#interactive-cli-application" class="table-of-contents__link toc-highlight">Interactive CLI application</a></li><li><a href="#short-task-syntax" class="table-of-contents__link toc-highlight">Short task syntax</a></li><li><a href="#watch-tasks" class="table-of-contents__link toc-highlight">Watch tasks</a></li></ul></div></div></div></div></main></div></div><footer class="footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Docs</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/installation/">Installation</a></li><li class="footer__item"><a class="footer__link-item" href="/usage/">Usage</a></li><li class="footer__item"><a class="footer__link-item" href="/donate/">Donate</a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://github.com/go-task/task" target="_blank" rel="noopener noreferrer" class="footer__link-item">GitHub<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discord.gg/6TY36E39UK" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://opencollective.com/task" target="_blank" rel="noopener noreferrer" class="footer__link-item">OpenCollective<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div></div></footer></div>
+<script src="/assets/js/runtime~main.dc8eec3e.js"></script>
+<script src="/assets/js/main.a2abdebd.js"></script>
 </body>
 </html>
\ No newline at end of file