@rhizomatics/signalk-boat-tech-directory-plugin 1.2.2 → 1.2.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/package.json +1 -1
  2. package/public/404.html +5 -4
  3. package/public/_astro/common.DWLYySiw.css +3 -0
  4. package/public/charts/index.html +13 -9
  5. package/public/contributing/index.html +15 -8
  6. package/public/education/index.html +8 -8
  7. package/public/favicon.svg +10 -0
  8. package/public/images/badge.svg +30 -0
  9. package/public/images/icons/pypi.ico +0 -0
  10. package/public/index-of-terms/index.html +77 -49
  11. package/public/index.html +12 -12
  12. package/public/llms-full.txt +138 -52
  13. package/public/llms-small.txt +24 -9
  14. package/public/llms.txt +12 -8
  15. package/public/news/index.html +8 -8
  16. package/public/open-source-projects/index.html +19 -11
  17. package/public/pagefind/fragment/en_2875c6c.pf_fragment +0 -0
  18. package/public/pagefind/fragment/en_2c2287e.pf_fragment +0 -0
  19. package/public/pagefind/fragment/en_4363a6c.pf_fragment +0 -0
  20. package/public/pagefind/fragment/en_4639db7.pf_fragment +0 -0
  21. package/public/pagefind/fragment/en_5ab54c2.pf_fragment +0 -0
  22. package/public/pagefind/fragment/en_98947e1.pf_fragment +0 -0
  23. package/public/pagefind/fragment/en_e4a3ab9.pf_fragment +0 -0
  24. package/public/pagefind/fragment/en_ff67eba.pf_fragment +0 -0
  25. package/public/pagefind/index/en_bd6823f.pf_index +0 -0
  26. package/public/pagefind/pagefind-entry.json +1 -1
  27. package/public/pagefind/pagefind.en_a246882be9.pf_meta +0 -0
  28. package/public/protocols/index.html +20 -10
  29. package/public/reference/index.html +8 -8
  30. package/public/robots.txt +1 -1
  31. package/public/sitemap-0.xml +1 -1
  32. package/public/sitemap.xml +1 -0
  33. package/public/social/index.html +130 -0
  34. package/public/social-media/index.html +1 -124
  35. package/public/social_media/index.html +1 -0
  36. package/public/vendors/index.html +14 -8
  37. package/public/_astro/common.BVvL3Ez1.css +0 -3
  38. package/public/pagefind/fragment/en_2121df9.pf_fragment +0 -0
  39. package/public/pagefind/fragment/en_61fd815.pf_fragment +0 -0
  40. package/public/pagefind/fragment/en_8a7845c.pf_fragment +0 -0
  41. package/public/pagefind/fragment/en_adb50b1.pf_fragment +0 -0
  42. package/public/pagefind/fragment/en_bcdb7bc.pf_fragment +0 -0
  43. package/public/pagefind/fragment/en_c12327a.pf_fragment +0 -0
  44. package/public/pagefind/fragment/en_c73f33e.pf_fragment +0 -0
  45. package/public/pagefind/fragment/en_e715258.pf_fragment +0 -0
  46. package/public/pagefind/index/en_a1bb12c.pf_index +0 -0
  47. package/public/pagefind/pagefind.en_209d8f63ce.pf_meta +0 -0
@@ -1,4 +1,4 @@
1
- <!DOCTYPE html><html lang="en" dir="ltr" data-theme="dark" data-has-sidebar class="astro-vdxcvpsm"><head><meta charset="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><title>Vendors | Boat Tech Directory</title><link rel="canonical" href="https://boat-tech-directory.rhizomatics.org.uk/@rhizomatics/signalk-boat-tech-directory-plugin/vendors/"/><link rel="sitemap" href="/@rhizomatics/signalk-boat-tech-directory-plugin/sitemap-index.xml"/><link rel="shortcut icon" href="/@rhizomatics/signalk-boat-tech-directory-plugin/favicon.svg" type="image/svg+xml"/><meta name="generator" content="Astro v7.2.0"/><meta name="generator" content="Starlight v0.41.7"/><meta property="og:title" content="Vendors"/><meta property="og:type" content="article"/><meta property="og:url" content="https://boat-tech-directory.rhizomatics.org.uk/@rhizomatics/signalk-boat-tech-directory-plugin/vendors/"/><meta property="og:locale" content="en"/><meta property="og:description" content="Hardware and software vendors, and specialist consultants."/><meta property="og:site_name" content="Boat Tech Directory"/><meta name="twitter:card" content="summary_large_image"/><meta name="description" content="Hardware and software vendors, and specialist consultants."/><script>
1
+ <!DOCTYPE html><html lang="en" dir="ltr" data-theme="dark" data-has-sidebar class="astro-g5ptsecz"><head><meta charset="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><title>Vendors | Boat Tech Directory</title><link rel="canonical" href="https://boat-tech-directory.rhizomatics.org.uk/@rhizomatics/signalk-boat-tech-directory-plugin/vendors/"/><link rel="sitemap" href="/@rhizomatics/signalk-boat-tech-directory-plugin/sitemap-index.xml"/><link rel="shortcut icon" href="/@rhizomatics/signalk-boat-tech-directory-plugin/favicon.svg" type="image/svg+xml"/><meta name="generator" content="Astro v7.3.2"/><meta name="generator" content="Starlight v0.42.1"/><meta property="og:title" content="Vendors"/><meta property="og:type" content="article"/><meta property="og:url" content="https://boat-tech-directory.rhizomatics.org.uk/@rhizomatics/signalk-boat-tech-directory-plugin/vendors/"/><meta property="og:locale" content="en"/><meta property="og:description" content="Hardware and software vendors, and specialist consultants."/><meta property="og:site_name" content="Boat Tech Directory"/><meta name="description" content="Hardware and software vendors, and specialist consultants."/><meta property="og:image" content="https://boat-tech-directory.rhizomatics.org.uk/images/social-preview.jpg"/><meta property="og:image:width" content="1536"/><meta property="og:image:height" content="1024"/><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:image" content="https://boat-tech-directory.rhizomatics.org.uk/images/social-preview.jpg"/><script>
2
2
  window.StarlightThemeProvider = (() => {
3
3
  const storedTheme =
4
4
  typeof localStorage !== 'undefined' && localStorage.getItem('starlight-theme');
@@ -24,7 +24,7 @@
24
24
  },
25
25
  };
26
26
  })();
27
- </script><template id="theme-icons"><svg aria-hidden="true" class="light astro-n5k4ipy7" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M5 12a1 1 0 0 0-1-1H3a1 1 0 0 0 0 2h1a1 1 0 0 0 1-1Zm.64 5-.71.71a1 1 0 0 0 0 1.41 1 1 0 0 0 1.41 0l.71-.71A1 1 0 0 0 5.64 17ZM12 5a1 1 0 0 0 1-1V3a1 1 0 0 0-2 0v1a1 1 0 0 0 1 1Zm5.66 2.34a1 1 0 0 0 .7-.29l.71-.71a1 1 0 1 0-1.41-1.41l-.66.71a1 1 0 0 0 0 1.41 1 1 0 0 0 .66.29Zm-12-.29a1 1 0 0 0 1.41 0 1 1 0 0 0 0-1.41l-.71-.71a1.004 1.004 0 1 0-1.43 1.41l.73.71ZM21 11h-1a1 1 0 0 0 0 2h1a1 1 0 0 0 0-2Zm-2.64 6A1 1 0 0 0 17 18.36l.71.71a1 1 0 0 0 1.41 0 1 1 0 0 0 0-1.41l-.76-.66ZM12 6.5a5.5 5.5 0 1 0 5.5 5.5A5.51 5.51 0 0 0 12 6.5Zm0 9a3.5 3.5 0 1 1 0-7 3.5 3.5 0 0 1 0 7Zm0 3.5a1 1 0 0 0-1 1v1a1 1 0 0 0 2 0v-1a1 1 0 0 0-1-1Z"/></svg><svg aria-hidden="true" class="dark astro-n5k4ipy7" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M21.64 13a1 1 0 0 0-1.05-.14 8.049 8.049 0 0 1-3.37.73 8.15 8.15 0 0 1-8.14-8.1 8.59 8.59 0 0 1 .25-2A1 1 0 0 0 8 2.36a10.14 10.14 0 1 0 14 11.69 1 1 0 0 0-.36-1.05Zm-9.5 6.69A8.14 8.14 0 0 1 7.08 5.22v.27a10.15 10.15 0 0 0 10.14 10.14 9.784 9.784 0 0 0 2.1-.22 8.11 8.11 0 0 1-7.18 4.32v-.04Z"/></svg><svg aria-hidden="true" class="auto astro-n5k4ipy7" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M21 14h-1V7a3 3 0 0 0-3-3H7a3 3 0 0 0-3 3v7H3a1 1 0 0 0-1 1v2a3 3 0 0 0 3 3h14a3 3 0 0 0 3-3v-2a1 1 0 0 0-1-1ZM6 7a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v7H6V7Zm14 10a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-1h16v1Z"/></svg></template><link rel="stylesheet" href="/@rhizomatics/signalk-boat-tech-directory-plugin/_astro/print.ehPL0gv-.css" media="print"><link rel="stylesheet" href="/@rhizomatics/signalk-boat-tech-directory-plugin/_astro/common.BVvL3Ez1.css"><script type="module" src="/@rhizomatics/signalk-boat-tech-directory-plugin/_astro/page.LAbJoB63.js"></script></head><body class="astro-vdxcvpsm"><a class="sl-skip-link astro-vxeigawq" href="#_top">Skip to content</a><div class="page sl-flex astro-gqpr5s5a"><header class="header astro-gqpr5s5a"><div class="header astro-nczgtkxc"><div class="title-wrapper sl-flex astro-nczgtkxc"><a href="/@rhizomatics/signalk-boat-tech-directory-plugin/" class="site-title sl-flex astro-clw6ags5"><span class="astro-clw6ags5" translate="no">Boat Tech Directory</span></a></div><div class="sl-flex print:hidden astro-nczgtkxc"><site-search class="astro-nczgtkxc astro-ac66eqjo" data-translations="{&quot;placeholder&quot;:&quot;Search&quot;}"><button data-open-modal disabled aria-label="Search" aria-keyshortcuts="Control+K" class="astro-ac66eqjo"><svg aria-hidden="true" class="astro-ac66eqjo astro-n5k4ipy7" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M21.71 20.29 18 16.61A9 9 0 1 0 16.61 18l3.68 3.68a.999.999 0 0 0 1.42 0 1 1 0 0 0 0-1.39ZM11 18a7 7 0 1 1 0-14 7 7 0 0 1 0 14Z"/></svg><span class="sl-hidden md:sl-block astro-ac66eqjo" aria-hidden="true">Search</span><kbd class="sl-hidden md:sl-flex astro-ac66eqjo" style="display: none;"><kbd class="astro-ac66eqjo">Ctrl</kbd><kbd class="astro-ac66eqjo">K</kbd></kbd></button><dialog style="padding:0" aria-label="Search" class="astro-ac66eqjo"><div class="dialog-frame sl-flex astro-ac66eqjo"><button data-close-modal class="sl-flex md:sl-hidden astro-ac66eqjo">Cancel</button><div class="search-container astro-ac66eqjo"><div id="starlight__search" class="astro-ac66eqjo"><form id="starlight__search-form" role="search" aria-label="Search" class="astro-ac66eqjo"><input id="starlight__search-input" type="text" autocapitalize="none" enterkeyhint="search" placeholder="Search" title="Search" class="astro-ac66eqjo"><button type="button" id="starlight__search-clear" hidden class="astro-ac66eqjo">Search</button></form><div id="starlight__search-results-area" hidden class="astro-ac66eqjo"><p id="starlight__search-message" role="status" class="astro-ac66eqjo"></p><ol id="starlight__search-results" class="astro-ac66eqjo"></ol></div></div></div></div></dialog></site-search><script>
27
+ </script><template id="theme-icons"><svg aria-hidden="true" class="light astro-hkc32dio" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M5 12a1 1 0 0 0-1-1H3a1 1 0 0 0 0 2h1a1 1 0 0 0 1-1Zm.64 5-.71.71a1 1 0 0 0 0 1.41 1 1 0 0 0 1.41 0l.71-.71A1 1 0 0 0 5.64 17ZM12 5a1 1 0 0 0 1-1V3a1 1 0 0 0-2 0v1a1 1 0 0 0 1 1Zm5.66 2.34a1 1 0 0 0 .7-.29l.71-.71a1 1 0 1 0-1.41-1.41l-.66.71a1 1 0 0 0 0 1.41 1 1 0 0 0 .66.29Zm-12-.29a1 1 0 0 0 1.41 0 1 1 0 0 0 0-1.41l-.71-.71a1.004 1.004 0 1 0-1.43 1.41l.73.71ZM21 11h-1a1 1 0 0 0 0 2h1a1 1 0 0 0 0-2Zm-2.64 6A1 1 0 0 0 17 18.36l.71.71a1 1 0 0 0 1.41 0 1 1 0 0 0 0-1.41l-.76-.66ZM12 6.5a5.5 5.5 0 1 0 5.5 5.5A5.51 5.51 0 0 0 12 6.5Zm0 9a3.5 3.5 0 1 1 0-7 3.5 3.5 0 0 1 0 7Zm0 3.5a1 1 0 0 0-1 1v1a1 1 0 0 0 2 0v-1a1 1 0 0 0-1-1Z"/></svg><svg aria-hidden="true" class="dark astro-hkc32dio" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M21.64 13a1 1 0 0 0-1.05-.14 8.049 8.049 0 0 1-3.37.73 8.15 8.15 0 0 1-8.14-8.1 8.59 8.59 0 0 1 .25-2A1 1 0 0 0 8 2.36a10.14 10.14 0 1 0 14 11.69 1 1 0 0 0-.36-1.05Zm-9.5 6.69A8.14 8.14 0 0 1 7.08 5.22v.27a10.15 10.15 0 0 0 10.14 10.14 9.784 9.784 0 0 0 2.1-.22 8.11 8.11 0 0 1-7.18 4.32v-.04Z"/></svg><svg aria-hidden="true" class="auto astro-hkc32dio" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M21 14h-1V7a3 3 0 0 0-3-3H7a3 3 0 0 0-3 3v7H3a1 1 0 0 0-1 1v2a3 3 0 0 0 3 3h14a3 3 0 0 0 3-3v-2a1 1 0 0 0-1-1ZM6 7a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v7H6V7Zm14 10a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-1h16v1Z"/></svg></template><link rel="stylesheet" href="/@rhizomatics/signalk-boat-tech-directory-plugin/_astro/print.ehPL0gv-.css" media="print"><link rel="stylesheet" href="/@rhizomatics/signalk-boat-tech-directory-plugin/_astro/common.DWLYySiw.css"><script type="module" src="/@rhizomatics/signalk-boat-tech-directory-plugin/_astro/page.LAbJoB63.js"></script></head><body class="astro-g5ptsecz"><a class="sl-skip-link astro-qb7clj6f" href="#_top">Skip to content</a><div class="page sl-flex astro-yntsjkba"><header class="header astro-yntsjkba"><div class="header astro-by6fddyj"><div class="title-wrapper sl-flex astro-by6fddyj"><a href="/@rhizomatics/signalk-boat-tech-directory-plugin/" class="site-title sl-flex astro-6rvad3va"><span class="astro-6rvad3va" translate="no">Boat Tech Directory</span></a></div><div class="sl-flex print:hidden astro-by6fddyj"><site-search class="astro-by6fddyj astro-ac66eqjo" data-translations="{&quot;placeholder&quot;:&quot;Search&quot;}"><button data-open-modal disabled aria-label="Search" aria-keyshortcuts="Control+K" class="astro-ac66eqjo"><svg aria-hidden="true" class="astro-ac66eqjo astro-hkc32dio" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M21.71 20.29 18 16.61A9 9 0 1 0 16.61 18l3.68 3.68a.999.999 0 0 0 1.42 0 1 1 0 0 0 0-1.39ZM11 18a7 7 0 1 1 0-14 7 7 0 0 1 0 14Z"/></svg><span class="sl-hidden md:sl-block astro-ac66eqjo" aria-hidden="true">Search</span><kbd class="sl-hidden md:sl-flex astro-ac66eqjo" style="display: none;"><kbd class="astro-ac66eqjo">Ctrl</kbd><kbd class="astro-ac66eqjo">K</kbd></kbd></button><dialog style="padding:0" aria-label="Search" class="astro-ac66eqjo"><div class="dialog-frame sl-flex astro-ac66eqjo"><button data-close-modal class="sl-flex md:sl-hidden astro-ac66eqjo">Cancel</button><div class="search-container astro-ac66eqjo"><div id="starlight__search" class="astro-ac66eqjo"><form id="starlight__search-form" role="search" aria-label="Search" class="astro-ac66eqjo"><input id="starlight__search-input" type="text" autocapitalize="none" enterkeyhint="search" placeholder="Search" title="Search" class="astro-ac66eqjo"><button type="button" id="starlight__search-clear" hidden class="astro-ac66eqjo">Search</button></form><div id="starlight__search-results-area" hidden class="astro-ac66eqjo"><p id="starlight__search-message" role="status" class="astro-ac66eqjo"></p><ol id="starlight__search-results" class="astro-ac66eqjo"></ol></div></div></div></div></dialog></site-search><script>
28
28
  (() => {
29
29
  const openBtn = document.querySelector('button[data-open-modal]');
30
30
  const shortcut = openBtn?.querySelector('kbd');
@@ -36,9 +36,9 @@
36
36
  }
37
37
  shortcut.style.display = '';
38
38
  })();
39
- </script><script type="module" src="/@rhizomatics/signalk-boat-tech-directory-plugin/_astro/Search.astro_astro_type_script_index_0_lang.3ca-UBSH.js"></script></div><div class="sl-hidden md:sl-flex print:hidden right-group astro-nczgtkxc"><div class="sl-flex social-icons astro-nczgtkxc"><a href="https://github.com/rhizomatics/boat-tech-directory" rel="me" class="sl-flex astro-cg55etiy"><span class="sr-only astro-cg55etiy">GitHub</span><svg aria-hidden="true" class="astro-cg55etiy astro-n5k4ipy7" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M12 .3a12 12 0 0 0-3.8 23.38c.6.12.83-.26.83-.57L9 21.07c-3.34.72-4.04-1.61-4.04-1.61-.55-1.39-1.34-1.76-1.34-1.76-1.08-.74.09-.73.09-.73 1.2.09 1.83 1.24 1.83 1.24 1.08 1.83 2.81 1.3 3.5 1 .1-.78.42-1.31.76-1.61-2.67-.3-5.47-1.33-5.47-5.93 0-1.31.47-2.38 1.24-3.22-.14-.3-.54-1.52.1-3.18 0 0 1-.32 3.3 1.23a11.5 11.5 0 0 1 6 0c2.28-1.55 3.29-1.23 3.29-1.23.64 1.66.24 2.88.12 3.18a4.65 4.65 0 0 1 1.23 3.22c0 4.61-2.8 5.63-5.48 5.92.42.36.81 1.1.81 2.22l-.01 3.29c0 .31.2.69.82.57A12 12 0 0 0 12 .3Z"/></svg></a></div><starlight-theme-select><label style="--sl-select-width: 6.25em" class="astro-r2p65idu"><span class="sr-only astro-r2p65idu">Select theme</span><svg aria-hidden="true" class="icon label-icon astro-r2p65idu astro-n5k4ipy7" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M21 14h-1V7a3 3 0 0 0-3-3H7a3 3 0 0 0-3 3v7H3a1 1 0 0 0-1 1v2a3 3 0 0 0 3 3h14a3 3 0 0 0 3-3v-2a1 1 0 0 0-1-1ZM6 7a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v7H6V7Zm14 10a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-1h16v1Z"/></svg><select autocomplete="off" class="astro-r2p65idu"><option value="dark" class="astro-r2p65idu">Dark</option><option value="light" class="astro-r2p65idu">Light</option><option value="auto" selected class="astro-r2p65idu">Auto</option></select><svg aria-hidden="true" class="icon caret astro-r2p65idu astro-n5k4ipy7" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M17 9.17a1 1 0 0 0-1.41 0L12 12.71 8.46 9.17a1 1 0 1 0-1.41 1.42l4.24 4.24a1.002 1.002 0 0 0 1.42 0L17 10.59a1.002 1.002 0 0 0 0-1.42Z"/></svg></label></starlight-theme-select><script>
39
+ </script><script type="module" src="/@rhizomatics/signalk-boat-tech-directory-plugin/_astro/Search.astro_astro_type_script_index_0_lang.3ca-UBSH.js"></script></div><div class="sl-hidden md:sl-flex print:hidden right-group astro-by6fddyj"><div class="sl-flex social-icons astro-by6fddyj"><a href="https://github.com/rhizomatics/boat-tech-directory" rel="me" class="sl-flex astro-n2mnl6yq"><span class="sr-only astro-n2mnl6yq">GitHub</span><svg aria-hidden="true" class="astro-n2mnl6yq astro-hkc32dio" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M12 .3a12 12 0 0 0-3.8 23.38c.6.12.83-.26.83-.57L9 21.07c-3.34.72-4.04-1.61-4.04-1.61-.55-1.39-1.34-1.76-1.34-1.76-1.08-.74.09-.73.09-.73 1.2.09 1.83 1.24 1.83 1.24 1.08 1.83 2.81 1.3 3.5 1 .1-.78.42-1.31.76-1.61-2.67-.3-5.47-1.33-5.47-5.93 0-1.31.47-2.38 1.24-3.22-.14-.3-.54-1.52.1-3.18 0 0 1-.32 3.3 1.23a11.5 11.5 0 0 1 6 0c2.28-1.55 3.29-1.23 3.29-1.23.64 1.66.24 2.88.12 3.18a4.65 4.65 0 0 1 1.23 3.22c0 4.61-2.8 5.63-5.48 5.92.42.36.81 1.1.81 2.22l-.01 3.29c0 .31.2.69.82.57A12 12 0 0 0 12 .3Z"/></svg></a></div><starlight-theme-select><label style="--sl-select-width: 6.25em" class="astro-2z5xp7gb"><span class="sr-only astro-2z5xp7gb">Select theme</span><svg aria-hidden="true" class="icon label-icon astro-2z5xp7gb astro-hkc32dio" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M21 14h-1V7a3 3 0 0 0-3-3H7a3 3 0 0 0-3 3v7H3a1 1 0 0 0-1 1v2a3 3 0 0 0 3 3h14a3 3 0 0 0 3-3v-2a1 1 0 0 0-1-1ZM6 7a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v7H6V7Zm14 10a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-1h16v1Z"/></svg><select autocomplete="off" class="astro-2z5xp7gb"><option value="dark" class="astro-2z5xp7gb">Dark</option><option value="light" class="astro-2z5xp7gb">Light</option><option value="auto" selected class="astro-2z5xp7gb">Auto</option></select><svg aria-hidden="true" class="icon caret astro-2z5xp7gb astro-hkc32dio" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M17 9.17a1 1 0 0 0-1.41 0L12 12.71 8.46 9.17a1 1 0 1 0-1.41 1.42l4.24 4.24a1.002 1.002 0 0 0 1.42 0L17 10.59a1.002 1.002 0 0 0 0-1.42Z"/></svg></label></starlight-theme-select><script>
40
40
  StarlightThemeProvider.updatePickers();
41
- </script><script type="module">var e=`starlight-theme`,t=e=>e===`auto`||e===`dark`||e===`light`?e:`auto`,n=()=>t(typeof localStorage<`u`&&localStorage.getItem(e));function r(t){typeof localStorage<`u`&&localStorage.setItem(e,t===`light`||t===`dark`?t:``)}var i=()=>matchMedia(`(prefers-color-scheme: light)`).matches?`light`:`dark`;function a(e){StarlightThemeProvider.updatePickers(e),document.documentElement.dataset.theme=e===`auto`?i():e,r(e)}matchMedia(`(prefers-color-scheme: light)`).addEventListener(`change`,()=>{n()===`auto`&&a(`auto`)});var o=class extends HTMLElement{constructor(){super(),a(n()),this.querySelector(`select`)?.addEventListener(`change`,e=>{e.currentTarget instanceof HTMLSelectElement&&a(t(e.currentTarget.value))})}};customElements.define(`starlight-theme-select`,o);</script><script type="module">var e=class extends HTMLElement{constructor(){super();let e=this.querySelector(`select`);e&&(e.addEventListener(`change`,e=>{e.currentTarget instanceof HTMLSelectElement&&(window.location.pathname=e.currentTarget.value)}),window.addEventListener(`pageshow`,t=>{if(!t.persisted)return;let n=e.querySelector(`option[selected]`)?.index;n!==e.selectedIndex&&(e.selectedIndex=n??0)}))}};customElements.define(`starlight-lang-select`,e);</script></div></div></header><nav class="sidebar print:hidden astro-gqpr5s5a" aria-label="Main"><starlight-menu-button class="print:hidden astro-vvx7mffu"><button aria-expanded="false" aria-label="Menu" aria-controls="starlight__sidebar" class="sl-flex md:sl-hidden astro-vvx7mffu"><svg aria-hidden="true" class="open-menu astro-vvx7mffu astro-n5k4ipy7" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M3 8h18a1 1 0 1 0 0-2H3a1 1 0 0 0 0 2Zm18 8H3a1 1 0 0 0 0 2h18a1 1 0 0 0 0-2Zm0-5H3a1 1 0 0 0 0 2h18a1 1 0 0 0 0-2Z"/></svg><svg aria-hidden="true" class="close-menu astro-vvx7mffu astro-n5k4ipy7" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="m13.41 12 6.3-6.29a1.004 1.004 0 1 0-1.42-1.42L12 10.59l-6.29-6.3a1.004 1.004 0 0 0-1.42 1.42l6.3 6.29-6.3 6.29a1 1 0 0 0 0 1.42.998.998 0 0 0 1.42 0l6.29-6.3 6.29 6.3a.999.999 0 0 0 1.42 0 1 1 0 0 0 0-1.42L13.41 12Z"/></svg></button></starlight-menu-button><script type="module">var e=class extends HTMLElement{btn=this.querySelector(`button`);constructor(){super(),this.btn.addEventListener(`click`,()=>this.toggleExpanded());let e=this.closest(`nav`);e&&e.addEventListener(`keyup`,e=>this.closeOnEscape(e)),matchMedia(`(min-width: 50em)`).addEventListener(`change`,()=>this.setExpanded(!1))}setExpanded(e){this.setAttribute(`aria-expanded`,String(e)),document.body.toggleAttribute(`data-mobile-menu-expanded`,e),document.querySelectorAll(`.main-frame, .sl-skip-link`).forEach(t=>{t.toggleAttribute(`inert`,e)})}toggleExpanded(){this.setExpanded(this.getAttribute(`aria-expanded`)!==`true`)}closeOnEscape(e){e.code===`Escape`&&(this.setExpanded(!1),this.btn.focus())}};customElements.define(`starlight-menu-button`,e);</script><div id="starlight__sidebar" class="sidebar-pane astro-gqpr5s5a"><div class="sidebar-content sl-flex astro-gqpr5s5a"><sl-sidebar-state-persist data-hash="070u86e" class="astro-f5yvicm7"><script aria-hidden="true">
41
+ </script><script type="module">var e=`starlight-theme`,t=e=>e===`auto`||e===`dark`||e===`light`?e:`auto`,n=()=>t(typeof localStorage<`u`&&localStorage.getItem(e));function r(t){typeof localStorage<`u`&&localStorage.setItem(e,t===`light`||t===`dark`?t:``)}var i=()=>matchMedia(`(prefers-color-scheme: light)`).matches?`light`:`dark`;function a(e){StarlightThemeProvider.updatePickers(e),document.documentElement.dataset.theme=e===`auto`?i():e,r(e)}matchMedia(`(prefers-color-scheme: light)`).addEventListener(`change`,()=>{n()===`auto`&&a(`auto`)});var o=class extends HTMLElement{constructor(){super(),a(n()),this.querySelector(`select`)?.addEventListener(`change`,e=>{e.currentTarget instanceof HTMLSelectElement&&a(t(e.currentTarget.value))})}};customElements.define(`starlight-theme-select`,o);</script><script type="module">var e=class extends HTMLElement{constructor(){super();let e=this.querySelector(`select`);e&&(e.addEventListener(`change`,e=>{e.currentTarget instanceof HTMLSelectElement&&(window.location.pathname=e.currentTarget.value)}),window.addEventListener(`pageshow`,t=>{if(!t.persisted)return;let n=e.querySelector(`option[selected]`)?.index;n!==e.selectedIndex&&(e.selectedIndex=n??0)}))}};customElements.define(`starlight-lang-select`,e);</script></div></div></header><nav class="sidebar print:hidden astro-yntsjkba" aria-label="Main"><button popovertarget="starlight__sidebar" class="sl-menu-button sl-flex md:sl-hidden print:hidden astro-r2osgdlg"><svg aria-hidden="true" class="open-menu astro-r2osgdlg astro-hkc32dio" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M3 8h18a1 1 0 1 0 0-2H3a1 1 0 0 0 0 2Zm18 8H3a1 1 0 0 0 0 2h18a1 1 0 0 0 0-2Zm0-5H3a1 1 0 0 0 0 2h18a1 1 0 0 0 0-2Z"/></svg><svg aria-hidden="true" class="close-menu astro-r2osgdlg astro-hkc32dio" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="m13.41 12 6.3-6.29a1.004 1.004 0 1 0-1.42-1.42L12 10.59l-6.29-6.3a1.004 1.004 0 0 0-1.42 1.42l6.3 6.29-6.3 6.29a1 1 0 0 0 0 1.42.998.998 0 0 0 1.42 0l6.29-6.3 6.29 6.3a.999.999 0 0 0 1.42 0 1 1 0 0 0 0-1.42L13.41 12Z"/></svg><span class="sr-only astro-r2osgdlg">Menu</span></button><script type="module">var e=class extends HTMLElement{constructor(){super();let e=matchMedia(`(min-width: 50em)`),t=()=>{this.popover=e.matches?null:`auto`};t(),e.addEventListener(`change`,()=>t()),this.addEventListener(`toggle`,({newState:e})=>this.trapFocus(e===`open`))}trapFocus(e){document.querySelectorAll(`.main-frame, .sl-skip-link`).forEach(t=>{t.toggleAttribute(`inert`,e)})}};customElements.define(`sl-sidebar-pane`,e);</script><sl-sidebar-pane popover id="starlight__sidebar" class="sidebar-pane astro-yntsjkba"><div class="sidebar-content sl-flex astro-yntsjkba"><sl-sidebar-state-persist data-hash="0xizxmh" class="astro-ipdry5cl"><script aria-hidden="true">
42
42
  (() => {
43
43
  try {
44
44
  if (!matchMedia('(min-width: 50em)').matches) return;
@@ -61,16 +61,16 @@
61
61
  );
62
62
  } catch {}
63
63
  })();
64
- </script><ul class="top-level astro-wv7whodv"><li class="astro-wv7whodv"><a href="/@rhizomatics/signalk-boat-tech-directory-plugin/" class="large astro-wv7whodv"><span class="astro-wv7whodv">Home</span></a></li><li class="astro-wv7whodv"><a href="/@rhizomatics/signalk-boat-tech-directory-plugin/social-media/" class="large astro-wv7whodv"><span class="astro-wv7whodv">Social Media</span></a></li><li class="astro-wv7whodv"><a href="/@rhizomatics/signalk-boat-tech-directory-plugin/charts/" class="large astro-wv7whodv"><span class="astro-wv7whodv">Charts and Data</span></a></li><li class="astro-wv7whodv"><a href="/@rhizomatics/signalk-boat-tech-directory-plugin/open-source-projects/" class="large astro-wv7whodv"><span class="astro-wv7whodv">Open Source Projects</span></a></li><li class="astro-wv7whodv"><a href="/@rhizomatics/signalk-boat-tech-directory-plugin/protocols/" class="large astro-wv7whodv"><span class="astro-wv7whodv">Protocols</span></a></li><li class="astro-wv7whodv"><a href="/@rhizomatics/signalk-boat-tech-directory-plugin/vendors/" aria-current="page" class="large astro-wv7whodv"><span class="astro-wv7whodv">Vendors</span></a><ul class="page-toc astro-wv7whodv"><li class="depth-3 astro-wv7whodv"><a href="#hardware" class="astro-wv7whodv">Hardware</a></li><li class="depth-3 astro-wv7whodv"><a href="#software" class="astro-wv7whodv">Software</a></li><li class="depth-3 astro-wv7whodv"><a href="#consultants" class="astro-wv7whodv">Consultants</a></li></ul></li><li class="astro-wv7whodv"><a href="/@rhizomatics/signalk-boat-tech-directory-plugin/news/" class="large astro-wv7whodv"><span class="astro-wv7whodv">News</span></a></li><li class="astro-wv7whodv"><a href="/@rhizomatics/signalk-boat-tech-directory-plugin/education/" class="large astro-wv7whodv"><span class="astro-wv7whodv">Education</span></a></li><li class="astro-wv7whodv"><a href="/@rhizomatics/signalk-boat-tech-directory-plugin/reference/" class="large astro-wv7whodv"><span class="astro-wv7whodv">Reference</span></a></li><li class="astro-wv7whodv"><a href="/@rhizomatics/signalk-boat-tech-directory-plugin/index-of-terms/" class="large astro-wv7whodv"><span class="astro-wv7whodv">Index</span></a></li><li class="astro-wv7whodv"><a href="/@rhizomatics/signalk-boat-tech-directory-plugin/contributing/" class="large astro-wv7whodv"><span class="astro-wv7whodv">Contributing</span></a></li></ul><script aria-hidden="true">
64
+ </script><ul class="top-level astro-wv7whodv"><li class="astro-wv7whodv"><a href="/@rhizomatics/signalk-boat-tech-directory-plugin/" class="large astro-wv7whodv"><span class="astro-wv7whodv">Home</span></a></li><li class="astro-wv7whodv"><a href="/@rhizomatics/signalk-boat-tech-directory-plugin/social/" class="large astro-wv7whodv"><span class="astro-wv7whodv">Social</span></a></li><li class="astro-wv7whodv"><a href="/@rhizomatics/signalk-boat-tech-directory-plugin/charts/" class="large astro-wv7whodv"><span class="astro-wv7whodv">Charts and Data</span></a></li><li class="astro-wv7whodv"><a href="/@rhizomatics/signalk-boat-tech-directory-plugin/open-source-projects/" class="large astro-wv7whodv"><span class="astro-wv7whodv">Open Source Projects</span></a></li><li class="astro-wv7whodv"><a href="/@rhizomatics/signalk-boat-tech-directory-plugin/protocols/" class="large astro-wv7whodv"><span class="astro-wv7whodv">Protocols</span></a></li><li class="astro-wv7whodv"><a href="/@rhizomatics/signalk-boat-tech-directory-plugin/vendors/" aria-current="page" class="large astro-wv7whodv"><span class="astro-wv7whodv">Vendors</span></a><ul class="page-toc astro-wv7whodv"><li class="depth-3 astro-wv7whodv"><a href="#hardware" class="astro-wv7whodv">Hardware</a></li><li class="depth-3 astro-wv7whodv"><a href="#software" class="astro-wv7whodv">Software</a></li><li class="depth-3 astro-wv7whodv"><a href="#consultants" class="astro-wv7whodv">Consultants</a></li></ul></li><li class="astro-wv7whodv"><a href="/@rhizomatics/signalk-boat-tech-directory-plugin/news/" class="large astro-wv7whodv"><span class="astro-wv7whodv">News</span></a></li><li class="astro-wv7whodv"><a href="/@rhizomatics/signalk-boat-tech-directory-plugin/education/" class="large astro-wv7whodv"><span class="astro-wv7whodv">Education</span></a></li><li class="astro-wv7whodv"><a href="/@rhizomatics/signalk-boat-tech-directory-plugin/reference/" class="large astro-wv7whodv"><span class="astro-wv7whodv">Reference</span></a></li><li class="astro-wv7whodv"><a href="/@rhizomatics/signalk-boat-tech-directory-plugin/index-of-terms/" class="large astro-wv7whodv"><span class="astro-wv7whodv">Index</span></a></li><li class="astro-wv7whodv"><a href="/@rhizomatics/signalk-boat-tech-directory-plugin/contributing/" class="large astro-wv7whodv"><span class="astro-wv7whodv">Contributing</span></a></li></ul><script aria-hidden="true">
65
65
  (() => {
66
66
  const scroller = document.getElementById('starlight__sidebar');
67
67
  if (!window._starlightScrollRestore || !scroller) return;
68
68
  scroller.scrollTop = window._starlightScrollRestore;
69
69
  delete window._starlightScrollRestore;
70
70
  })();
71
- </script></sl-sidebar-state-persist><div class="md:sl-hidden astro-wv7whodv"><div class="mobile-preferences sl-flex astro-b5gddk54"><div class="social-icons astro-b5gddk54"><a href="https://github.com/rhizomatics/boat-tech-directory" rel="me" class="sl-flex astro-cg55etiy"><span class="sr-only astro-cg55etiy">GitHub</span><svg aria-hidden="true" class="astro-cg55etiy astro-n5k4ipy7" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M12 .3a12 12 0 0 0-3.8 23.38c.6.12.83-.26.83-.57L9 21.07c-3.34.72-4.04-1.61-4.04-1.61-.55-1.39-1.34-1.76-1.34-1.76-1.08-.74.09-.73.09-.73 1.2.09 1.83 1.24 1.83 1.24 1.08 1.83 2.81 1.3 3.5 1 .1-.78.42-1.31.76-1.61-2.67-.3-5.47-1.33-5.47-5.93 0-1.31.47-2.38 1.24-3.22-.14-.3-.54-1.52.1-3.18 0 0 1-.32 3.3 1.23a11.5 11.5 0 0 1 6 0c2.28-1.55 3.29-1.23 3.29-1.23.64 1.66.24 2.88.12 3.18a4.65 4.65 0 0 1 1.23 3.22c0 4.61-2.8 5.63-5.48 5.92.42.36.81 1.1.81 2.22l-.01 3.29c0 .31.2.69.82.57A12 12 0 0 0 12 .3Z"/></svg></a></div><starlight-theme-select><label style="--sl-select-width: 6.25em" class="astro-r2p65idu"><span class="sr-only astro-r2p65idu">Select theme</span><svg aria-hidden="true" class="icon label-icon astro-r2p65idu astro-n5k4ipy7" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M21 14h-1V7a3 3 0 0 0-3-3H7a3 3 0 0 0-3 3v7H3a1 1 0 0 0-1 1v2a3 3 0 0 0 3 3h14a3 3 0 0 0 3-3v-2a1 1 0 0 0-1-1ZM6 7a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v7H6V7Zm14 10a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-1h16v1Z"/></svg><select autocomplete="off" class="astro-r2p65idu"><option value="dark" class="astro-r2p65idu">Dark</option><option value="light" class="astro-r2p65idu">Light</option><option value="auto" selected class="astro-r2p65idu">Auto</option></select><svg aria-hidden="true" class="icon caret astro-r2p65idu astro-n5k4ipy7" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M17 9.17a1 1 0 0 0-1.41 0L12 12.71 8.46 9.17a1 1 0 1 0-1.41 1.42l4.24 4.24a1.002 1.002 0 0 0 1.42 0L17 10.59a1.002 1.002 0 0 0 0-1.42Z"/></svg></label></starlight-theme-select><script>
71
+ </script></sl-sidebar-state-persist><div class="md:sl-hidden astro-wv7whodv"><div class="mobile-preferences sl-flex astro-p4azlveh"><div class="social-icons astro-p4azlveh"><a href="https://github.com/rhizomatics/boat-tech-directory" rel="me" class="sl-flex astro-n2mnl6yq"><span class="sr-only astro-n2mnl6yq">GitHub</span><svg aria-hidden="true" class="astro-n2mnl6yq astro-hkc32dio" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M12 .3a12 12 0 0 0-3.8 23.38c.6.12.83-.26.83-.57L9 21.07c-3.34.72-4.04-1.61-4.04-1.61-.55-1.39-1.34-1.76-1.34-1.76-1.08-.74.09-.73.09-.73 1.2.09 1.83 1.24 1.83 1.24 1.08 1.83 2.81 1.3 3.5 1 .1-.78.42-1.31.76-1.61-2.67-.3-5.47-1.33-5.47-5.93 0-1.31.47-2.38 1.24-3.22-.14-.3-.54-1.52.1-3.18 0 0 1-.32 3.3 1.23a11.5 11.5 0 0 1 6 0c2.28-1.55 3.29-1.23 3.29-1.23.64 1.66.24 2.88.12 3.18a4.65 4.65 0 0 1 1.23 3.22c0 4.61-2.8 5.63-5.48 5.92.42.36.81 1.1.81 2.22l-.01 3.29c0 .31.2.69.82.57A12 12 0 0 0 12 .3Z"/></svg></a></div><starlight-theme-select><label style="--sl-select-width: 6.25em" class="astro-2z5xp7gb"><span class="sr-only astro-2z5xp7gb">Select theme</span><svg aria-hidden="true" class="icon label-icon astro-2z5xp7gb astro-hkc32dio" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M21 14h-1V7a3 3 0 0 0-3-3H7a3 3 0 0 0-3 3v7H3a1 1 0 0 0-1 1v2a3 3 0 0 0 3 3h14a3 3 0 0 0 3-3v-2a1 1 0 0 0-1-1ZM6 7a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v7H6V7Zm14 10a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-1h16v1Z"/></svg><select autocomplete="off" class="astro-2z5xp7gb"><option value="dark" class="astro-2z5xp7gb">Dark</option><option value="light" class="astro-2z5xp7gb">Light</option><option value="auto" selected class="astro-2z5xp7gb">Auto</option></select><svg aria-hidden="true" class="icon caret astro-2z5xp7gb astro-hkc32dio" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M17 9.17a1 1 0 0 0-1.41 0L12 12.71 8.46 9.17a1 1 0 1 0-1.41 1.42l4.24 4.24a1.002 1.002 0 0 0 1.42 0L17 10.59a1.002 1.002 0 0 0 0-1.42Z"/></svg></label></starlight-theme-select><script>
72
72
  StarlightThemeProvider.updatePickers();
73
- </script></div></div></div></div></nav><div class="main-frame astro-gqpr5s5a"><script type="module">var e=document.getElementById(`starlight__sidebar`),t=e?.querySelector(`sl-sidebar-state-persist`),n=`sl-sidebar-state`,r=()=>{let r=[],i=t?.dataset.hash||``;try{let e=sessionStorage.getItem(n),t=JSON.parse(e||`{}`);Array.isArray(t.open)&&t.hash===i&&(r=t.open)}catch{}return{hash:i,open:r,scroll:e?.scrollTop||0}},i=e=>{try{sessionStorage.setItem(n,JSON.stringify(e))}catch{}},a=()=>i(r()),o=(e,t)=>{let n=r();n.open[t]=e,i(n)};t?.addEventListener(`click`,e=>{if(!(e.target instanceof Element))return;let t=e.target.closest(`summary`)?.closest(`details`);if(!t)return;let n=t.querySelector(`sl-sidebar-restore`),r=parseInt(n?.dataset.index||``);isNaN(r)||o(!t.open,r)}),addEventListener(`visibilitychange`,()=>{document.visibilityState===`hidden`&&a()});</script><div class="lg:sl-flex astro-abfeecmu"><div class="main-pane astro-abfeecmu"><main data-pagefind-body class="astro-vdxcvpsm" lang="en" dir="ltr"><div class="content-panel astro-oil7k7jf"><div class="sl-container astro-oil7k7jf"><h1 id="_top" class="astro-2sm4b3ln">Vendors</h1></div></div><div class="content-panel astro-oil7k7jf"><div class="sl-container astro-oil7k7jf"><div class="sl-markdown-content"><!-- Generated from ../../../../README.md by scripts/sync-readme.mjs — do not edit directly. -->
73
+ </script></div></div></div></sl-sidebar-pane></nav><div class="main-frame astro-yntsjkba"><script type="module">var e=document.getElementById(`starlight__sidebar`),t=e?.querySelector(`sl-sidebar-state-persist`),n=`sl-sidebar-state`,r=()=>{let r=[],i=t?.dataset.hash||``;try{let e=sessionStorage.getItem(n),t=JSON.parse(e||`{}`);Array.isArray(t.open)&&t.hash===i&&(r=t.open)}catch{}return{hash:i,open:r,scroll:e?.scrollTop||0}},i=e=>{try{sessionStorage.setItem(n,JSON.stringify(e))}catch{}},a=()=>i(r()),o=(e,t)=>{let n=r();n.open[t]=e,i(n)};t?.addEventListener(`click`,e=>{if(!(e.target instanceof Element))return;let t=e.target.closest(`summary`)?.closest(`details`);if(!t)return;let n=t.querySelector(`sl-sidebar-restore`),r=parseInt(n?.dataset.index||``);isNaN(r)||o(!t.open,r)}),addEventListener(`visibilitychange`,()=>{document.visibilityState===`hidden`&&a()});</script><div class="lg:sl-flex astro-lrzkfocr"><div class="main-pane astro-lrzkfocr"><main data-pagefind-body class="astro-g5ptsecz" lang="en" dir="ltr"><div class="content-panel astro-a7po4psb"><div class="sl-container astro-a7po4psb"><h1 id="_top" class="astro-bebwqqxs">Vendors</h1></div></div><div class="content-panel astro-a7po4psb"><div class="sl-container astro-a7po4psb"><div class="sl-markdown-content"><!-- Generated from ../../../../README.md by scripts/sync-readme.mjs — do not edit directly. -->
74
74
  <div class="sl-heading-wrapper level-h3"><h3 id="hardware">Hardware</h3><a class="sl-anchor-link" href="#hardware"><span aria-hidden="true" class="sl-anchor-icon"><svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor"><path d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 1 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 0 0-1.42-1.42m8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 1 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 0 0 0 1.42 1 1 0 0 0 1.42 0l3.88-3.89a4.49 4.49 0 0 0 0-6.33M8.83 15.17a1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.92-4.92a1 1 0 1 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42"></path></svg></span><span class="sr-only" data-pagefind-ignore="">Section titled “Hardware”</span></a></div>
75
75
  <div class="sl-heading-wrapper level-h4"><h4 id="full-integration">Full Integration</h4><a class="sl-anchor-link" href="#full-integration"><span aria-hidden="true" class="sl-anchor-icon"><svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor"><path d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 1 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 0 0-1.42-1.42m8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 1 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 0 0 0 1.42 1 1 0 0 0 1.42 0l3.88-3.89a4.49 4.49 0 0 0 0-6.33M8.83 15.17a1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.92-4.92a1 1 0 1 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42"></path></svg></span><span class="sr-only" data-pagefind-ignore="">Section titled “Full Integration”</span></a></div>
76
76
  <p>Vendors offering full suite of products for modern boats, including plotters, instruments and sensors.</p>
@@ -133,6 +133,7 @@
133
133
  </ul>
134
134
  <div class="sl-heading-wrapper level-h4"><h4 id="instruments-and-autopilots">Instruments and Autopilots</h4><a class="sl-anchor-link" href="#instruments-and-autopilots"><span aria-hidden="true" class="sl-anchor-icon"><svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor"><path d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 1 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 0 0-1.42-1.42m8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 1 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 0 0 0 1.42 1 1 0 0 0 1.42 0l3.88-3.89a4.49 4.49 0 0 0 0-6.33M8.83 15.17a1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.92-4.92a1 1 0 1 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42"></path></svg></span><span class="sr-only" data-pagefind-ignore="">Section titled “Instruments and Autopilots”</span></a></div>
135
135
  <ul>
136
+ <li id="at"><a href="https://www.aandtinstruments.com">A+T</a> - Wind sensors, <em>Sailing Processor</em> boat server, displays, valves. South coast of England based. Repairs, and integration for superyachts and racing boats.</li>
136
137
  <li id="airmar"><a href="https://www.airmar.com/">Airmar</a> - Transducers, sensors, NMEA bridging, weather instruments and apps.</li>
137
138
  <li id="cyclops-marine"><a href="https://www.cyclopsmarine.com">Cyclops Marine</a> - Smart load sensors and displays.</li>
138
139
  <li id="daniamant"><a href="https://daniamant.com">Daniamant</a> - Forward looking sonar (previously <em>EchoPilot</em>), alarms and other safety related products.</li>
@@ -154,6 +155,7 @@
154
155
  <ul>
155
156
  <li id="boatmonitor32"><a href="https://www.boatmonitor32.co.uk">BoatMonitor32</a> - Mobile app and boat hardware hub with Victron integration.</li>
156
157
  <li id="easyhub"><a href="https://dpnav.de/">EasyHub</a> - German vendor (DPNav) WiFi gateway with NMEA2000 integration and remote tracking, with cloud service.</li>
158
+ <li id="galvanic-works"><a href="https://galvanicworks.com">Galvanic Works</a> - Voice alert devices, crew pulse wristbands, mobile app for MOB, AIS collisions, anchor alarm, watch management, remote monitoring. Sailer owned company in Balearics, with English/French/Spanish/Italian/German language on-line shop.</li>
157
159
  <li id="hello-sailor"><a href="https://hello-sailor.co.uk">Hello Sailor</a> - LTE/SMS based remote boat monitoring, subscription-free.</li>
158
160
  <li id="inav4u"><a href="https://www.inav4u.com">iNav4u</a> - <strong>Zora</strong> integrated monitoring, navigation, dashboards.</li>
159
161
  <li id="maretron"><a href="https://www.maretron.com">Maretron</a> - Integrated monitoring and visualization, NMEA bridges and sensors.</li>
@@ -170,6 +172,7 @@
170
172
  <li id="siren-marine"><a href="https://sirenmarine.com/">Siren Marine</a> - Remote boat monitoring.</li>
171
173
  <li id="smartboatia"><a href="https://smartboatia.com">Smartboatia</a> - Smart boat hub with anchor alarm, remote monitoring, logging and AI-based trim suggestions.</li>
172
174
  <li id="smart-boat-systems"><a href="https://www.smartboatsystem.com">Smart Boat Systems</a> - Dominican Republic based integrator, supplies package of ODroid based hubs running open source packages with 4G Hub and Zigbee sensors.</li>
175
+ <li id="sway"><a href="https://sway-sailing.com/">Sway</a> - Wifi integration for NMEA2000, data recording to local storage, remote tracking. Mobile app for iOS and Android, social voyage sharing.</li>
173
176
  <li id="vesscomm"><a href="https://vesscomm.com">Vesscomm</a> - Mobile data (2G/4G) based monitoring hubs and mobile apps.</li>
174
177
  <li id="victron"><a href="https://www.victronenergy.com">Victron</a> - Power devices with associated monitoring, integration, power sensors, displays.</li>
175
178
  <li id="vircru"><a href="https://www.vircru.com">Vircru</a> - Remote boat monitoring with mobile app.</li>
@@ -201,6 +204,7 @@
201
204
  <li id="aggsoft"><a href="https://www.aggsoft.com">AggSoft</a> - Windows based data loggers/aggregators for NMEA, ModBus, GPS, USB etc.</li>
202
205
  <li id="deepblue"><a href="https://deepblue.app/">DeepBlue</a> - Yacht management app.</li>
203
206
  <li id="expedition-marine"><a href="https://www.expeditionmarine.com">Expedition Marine</a> - Windows-based navigation, weather routing and racing app, official supplier to The Volvo Ocean Race, Americas Cup, Sail GP etc.</li>
207
+ <li id="go-pottie"><a href="https://gopottie.app">Go Pottie</a> - Crowd-sourced lobster pot location sharing for British Isles, iOS and Android mobile apps.</li>
204
208
  <li id="guardian-digital"><a href="https://www.guardiandigital.tech/">Guardian Digital</a> - Soft plotter / MFD for Apple devices.</li>
205
209
  <li id="luckgrib"><a href="https://luckgrib.com">LuckGRIB</a> - Weather data download, view and routing.</li>
206
210
  <li id="meltemus"><a href="https://www.meltemus.com/index.php/en/">Meltemus</a> - Navigation, weather and charts for Android, iOS, Windows, macOS and Linux. <strong>qtVLM</strong> weather and chart viewer free on some platforms.</li>
@@ -212,6 +216,7 @@
212
216
  <li id="ocean-signal"><a href="https://oceansignal.com">Ocean Signal</a> - PLBs, EPIRBs, AIS alarms, VHF and radar transponders.</li>
213
217
  <li id="osmand"><a href="https://osmand.net/">OsmAnd</a> - Offline mobile apps for OpenStreetMap, with nautical support in Pro and higher.</li>
214
218
  <li id="rose-point"><a href="https://www.rosepoint.com">Rose Point</a> - Navigation software, North America gazatteer, NMEA gateway.</li>
219
+ <li id="sailkick"><a href="https://www.sailkick.io">SailKick</a> - Offline webapp and mobile app for boat metrics, with weather, climatology and basic routing, optional cloud sync for metrics, polars, public page. SignalK integration.</li>
215
220
  <li id="sail-logger"><a href="https://saillogger.com">Sail Logger</a> - Logbook for mobiles, with NMEA integration.</li>
216
221
  <li id="sailing-performance"><a href="https://www.sailingperformance.com">Sailing Performance</a> - Racing performance analysis.</li>
217
222
  <li id="sailrouter"><a href="https://sailrouter.org">SailRouter</a> - AI based routing for onboard Raspberry Pi with NMEA and SignalK integration. Community Edition with planned commercial and SaaS versions.</li>
@@ -242,4 +247,5 @@
242
247
  <li id="pacific-yacht-systems"><a href="https://www.pysystems.com">Pacific Yacht Systems</a> - Electrical and electronics consultancy, retail and educational articles &#x26; videos.</li>
243
248
  <li id="seatech-systems"><a href="https://seatech.systems">Seatech Systems</a> - Marine electronics consultancy, with free advice articles on marine internet.</li>
244
249
  <li id="tweeds-marine"><a href="https://tweedsmarine.nz/">Tweeds Marine</a> - New Zealand. Consultancy plus free articles, news and calculators online.</li>
245
- </ul></div><footer class="sl-flex astro-xhxjzfa7"><div class="meta sl-flex astro-xhxjzfa7"></div><div class="pagination-links print:hidden astro-jgq3vlii" dir="ltr"><a href="/@rhizomatics/signalk-boat-tech-directory-plugin/protocols/" rel="prev" class="astro-jgq3vlii"><svg aria-hidden="true" class="astro-jgq3vlii astro-n5k4ipy7" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.5rem;"><path d="M17 11H9.41l3.3-3.29a1.004 1.004 0 1 0-1.42-1.42l-5 5a1 1 0 0 0-.21.33 1 1 0 0 0 0 .76 1 1 0 0 0 .21.33l5 5a1.002 1.002 0 0 0 1.639-.325 1 1 0 0 0-.219-1.095L9.41 13H17a1 1 0 0 0 0-2Z"/></svg><span class="astro-jgq3vlii">Previous<br class="astro-jgq3vlii"><span class="link-title astro-jgq3vlii">Protocols</span></span></a><a href="/@rhizomatics/signalk-boat-tech-directory-plugin/news/" rel="next" class="astro-jgq3vlii"><svg aria-hidden="true" class="astro-jgq3vlii astro-n5k4ipy7" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.5rem;"><path d="M17.92 11.62a1.001 1.001 0 0 0-.21-.33l-5-5a1.003 1.003 0 1 0-1.42 1.42l3.3 3.29H7a1 1 0 0 0 0 2h7.59l-3.3 3.29a1.002 1.002 0 0 0 .325 1.639 1 1 0 0 0 1.095-.219l5-5a1 1 0 0 0 .21-.33 1 1 0 0 0 0-.76Z"/></svg><span class="astro-jgq3vlii">Next<br class="astro-jgq3vlii"><span class="link-title astro-jgq3vlii">News</span></span></a></div></footer></div></div></main></div></div></div></div></body></html>
250
+ <li id="vesselsense"><a href="https://vesselsense.io">VesselSense</a> - California. Consultancy for navigation and monitoring systems integration, plus <a href="https://www.youtube.com/@VesselSense-io">YouTube videos</a> on SignalK, Raspi, WaveShare.</li>
251
+ </ul></div><footer class="sl-flex astro-ddtxxk7k"><div class="meta sl-flex astro-ddtxxk7k"></div><div class="pagination-links print:hidden astro-b5raizh3" dir="ltr"><a href="/@rhizomatics/signalk-boat-tech-directory-plugin/protocols/" rel="prev" class="astro-b5raizh3"><svg aria-hidden="true" class="astro-b5raizh3 astro-hkc32dio" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.5rem;"><path d="M17 11H9.41l3.3-3.29a1.004 1.004 0 1 0-1.42-1.42l-5 5a1 1 0 0 0-.21.33 1 1 0 0 0 0 .76 1 1 0 0 0 .21.33l5 5a1.002 1.002 0 0 0 1.639-.325 1 1 0 0 0-.219-1.095L9.41 13H17a1 1 0 0 0 0-2Z"/></svg><span class="astro-b5raizh3">Previous<br class="astro-b5raizh3"><span class="link-title astro-b5raizh3">Protocols</span></span></a><a href="/@rhizomatics/signalk-boat-tech-directory-plugin/news/" rel="next" class="astro-b5raizh3"><svg aria-hidden="true" class="astro-b5raizh3 astro-hkc32dio" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.5rem;"><path d="M17.92 11.62a1.001 1.001 0 0 0-.21-.33l-5-5a1.003 1.003 0 1 0-1.42 1.42l3.3 3.29H7a1 1 0 0 0 0 2h7.59l-3.3 3.29a1.002 1.002 0 0 0 .325 1.639 1 1 0 0 0 1.095-.219l5-5a1 1 0 0 0 .21-.33 1 1 0 0 0 0-.76Z"/></svg><span class="astro-b5raizh3">Next<br class="astro-b5raizh3"><span class="link-title astro-b5raizh3">News</span></span></a></div></footer></div></div></main></div></div></div></div></body></html>
@@ -1,3 +0,0 @@
1
- @layer starlight.base{:root,::backdrop{--sl-color-white:#fff;--sl-color-gray-1:#edeef3;--sl-color-gray-2:#c1c3c8;--sl-color-gray-3:#888c96;--sl-color-gray-4:#555962;--sl-color-gray-5:#353841;--sl-color-gray-6:#23262f;--sl-color-black:#17181c;--sl-hue-orange:41;--sl-color-orange-low:hsl(var(--sl-hue-orange), 39%, 22%);--sl-color-orange:hsl(var(--sl-hue-orange), 82%, 63%);--sl-color-orange-high:hsl(var(--sl-hue-orange), 82%, 87%);--sl-hue-green:101;--sl-color-green-low:hsl(var(--sl-hue-green), 39%, 22%);--sl-color-green:hsl(var(--sl-hue-green), 82%, 63%);--sl-color-green-high:hsl(var(--sl-hue-green), 82%, 80%);--sl-hue-blue:234;--sl-color-blue-low:hsl(var(--sl-hue-blue), 54%, 20%);--sl-color-blue:hsl(var(--sl-hue-blue), 100%, 60%);--sl-color-blue-high:hsl(var(--sl-hue-blue), 100%, 87%);--sl-hue-purple:281;--sl-color-purple-low:hsl(var(--sl-hue-purple), 39%, 22%);--sl-color-purple:hsl(var(--sl-hue-purple), 82%, 63%);--sl-color-purple-high:hsl(var(--sl-hue-purple), 82%, 89%);--sl-hue-red:339;--sl-color-red-low:hsl(var(--sl-hue-red), 39%, 22%);--sl-color-red:hsl(var(--sl-hue-red), 82%, 63%);--sl-color-red-high:hsl(var(--sl-hue-red), 82%, 87%);--sl-color-accent-low:#17264f;--sl-color-accent:#3369ff;--sl-color-accent-high:#b3c7ff;--sl-color-text:var(--sl-color-gray-2);--sl-color-text-accent:var(--sl-color-accent-high);--sl-color-text-invert:var(--sl-color-accent-low);--sl-color-bg:var(--sl-color-black);--sl-color-bg-nav:var(--sl-color-gray-6);--sl-color-bg-sidebar:var(--sl-color-gray-6);--sl-color-bg-inline-code:var(--sl-color-gray-5);--sl-color-bg-accent:var(--sl-color-accent-high);--sl-color-hairline-light:var(--sl-color-gray-5);--sl-color-hairline:var(--sl-color-gray-6);--sl-color-hairline-shade:var(--sl-color-black);--sl-color-backdrop-overlay:#16181da8;--sl-shadow-sm:0px 1px 1px #0000001f, 0px 2px 1px #0000003d;--sl-shadow-md:0px 8px 4px #00000014, 0px 5px 2px #00000014, 0px 3px 2px #0000001f, 0px 1px 1px #00000026;--sl-shadow-lg:0px 25px 7px #00000008, 0px 16px 6px #0000001a, 0px 9px 5px #16181d54, 0px 4px 4px #000000bf, 0px 4px 2px #00000040;--sl-text-2xs:.75rem;--sl-text-xs:.8125rem;--sl-text-sm:.875rem;--sl-text-base:1rem;--sl-text-lg:1.125rem;--sl-text-xl:1.25rem;--sl-text-2xl:1.5rem;--sl-text-3xl:1.8125rem;--sl-text-4xl:2.1875rem;--sl-text-5xl:2.625rem;--sl-text-6xl:4rem;--sl-text-body:var(--sl-text-base);--sl-text-body-sm:var(--sl-text-xs);--sl-text-code:var(--sl-text-sm);--sl-text-code-sm:var(--sl-text-xs);--sl-text-h1:var(--sl-text-4xl);--sl-text-h2:var(--sl-text-3xl);--sl-text-h3:var(--sl-text-2xl);--sl-text-h4:var(--sl-text-xl);--sl-text-h5:var(--sl-text-lg);--sl-line-height:1.75;--sl-line-height-headings:1.2;--sl-font-system:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--sl-font-system-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--__sl-font:var(--sl-font,var(--sl-font-system)), var(--sl-font-system);--__sl-font-mono:var(--sl-font-mono,var(--sl-font-system-mono)), var(--sl-font-system-mono);--sl-nav-height:3.5rem;--sl-nav-pad-x:1rem;--sl-nav-pad-y:.75rem;--sl-mobile-toc-height:3rem;--sl-sidebar-width:18.75rem;--sl-sidebar-pad-x:1rem;--sl-content-width:45rem;--sl-content-pad-x:1rem;--sl-content-gap-y:1rem;--sl-main-pad:0 0 3vh 0;--sl-menu-button-size:2rem;--sl-nav-gap:var(--sl-content-pad-x);--sl-outline-offset-inside:-.1875rem;--sl-z-index-toc:4;--sl-z-index-menu:5;--sl-z-index-navbar:10;--sl-z-index-skiplink:20}:root[data-theme=light],[data-theme=light] ::backdrop{--sl-color-white:#17181c;--sl-color-gray-1:#23262f;--sl-color-gray-2:#353841;--sl-color-gray-3:#555962;--sl-color-gray-4:#888c96;--sl-color-gray-5:#c1c3c8;--sl-color-gray-6:#edeef3;--sl-color-gray-7:#f6f7f9;--sl-color-black:#fff;--sl-color-orange-high:hsl(var(--sl-hue-orange), 80%, 25%);--sl-color-orange:hsl(var(--sl-hue-orange), 90%, 60%);--sl-color-orange-low:hsl(var(--sl-hue-orange), 90%, 88%);--sl-color-green-high:hsl(var(--sl-hue-green), 80%, 22%);--sl-color-green:hsl(var(--sl-hue-green), 90%, 46%);--sl-color-green-low:hsl(var(--sl-hue-green), 85%, 90%);--sl-color-blue-high:hsl(var(--sl-hue-blue), 80%, 30%);--sl-color-blue:hsl(var(--sl-hue-blue), 90%, 60%);--sl-color-blue-low:hsl(var(--sl-hue-blue), 88%, 90%);--sl-color-purple-high:hsl(var(--sl-hue-purple), 90%, 30%);--sl-color-purple:hsl(var(--sl-hue-purple), 90%, 60%);--sl-color-purple-low:hsl(var(--sl-hue-purple), 80%, 90%);--sl-color-red-high:hsl(var(--sl-hue-red), 80%, 30%);--sl-color-red:hsl(var(--sl-hue-red), 90%, 60%);--sl-color-red-low:hsl(var(--sl-hue-red), 80%, 90%);--sl-color-accent-high:#0f1c8a;--sl-color-accent:#3d50f5;--sl-color-accent-low:#cfd4fc;--sl-color-text-accent:var(--sl-color-accent);--sl-color-text-invert:var(--sl-color-black);--sl-color-bg-nav:var(--sl-color-gray-7);--sl-color-bg-sidebar:var(--sl-color-bg);--sl-color-bg-inline-code:var(--sl-color-gray-6);--sl-color-bg-accent:var(--sl-color-accent);--sl-color-hairline-light:var(--sl-color-gray-6);--sl-color-hairline-shade:var(--sl-color-gray-6);--sl-color-backdrop-overlay:#545864a8;--sl-shadow-sm:0px 1px 1px #0000000f, 0px 2px 1px #0000000f;--sl-shadow-md:0px 8px 4px #00000008, 0px 5px 2px #00000008, 0px 3px 2px #0000000f, 0px 1px 1px #0000000f;--sl-shadow-lg:0px 25px 7px #00000003, 0px 16px 6px #00000008, 0px 9px 5px #16181d14, 0px 4px 4px #00000029, 0px 4px 2px #0000000a}@media (width>=50em){:root{--sl-nav-height:4rem;--sl-nav-pad-x:1.5rem;--sl-text-h1:var(--sl-text-5xl);--sl-text-h2:var(--sl-text-4xl);--sl-text-h3:var(--sl-text-3xl);--sl-text-h4:var(--sl-text-2xl)}}@media (width>=72rem){:root{--sl-content-pad-x:1.5rem;--sl-mobile-toc-height:0rem}}}@layer starlight.reset{*,:before,:after{box-sizing:border-box}*{margin:0}html{color-scheme:dark;accent-color:var(--sl-color-accent);text-size-adjust:100%}html[data-theme=light]{color-scheme:light}body{font-family:var(--__sl-font);line-height:var(--sl-line-height);-webkit-font-smoothing:antialiased;color:var(--sl-color-text);background-color:var(--sl-color-bg)}[lang]:where(:lang(zh),:lang(ja)){text-autospace:normal}[lang]:where(:not(:lang(zh),:lang(ja))){text-autospace:initial}pre,code,samp,kbd{text-autospace:no-autospace}input,button,textarea,select{font:inherit}p,h1,h2,h3,h4,h5,h6,code{overflow-wrap:break-word}code{font-family:var(--__sl-font-mono)}}@layer starlight.core{.sl-banner:where(.astro-y5d7njgm){--__sl-banner-text:var(--sl-color-banner-text,var(--sl-color-text-invert));padding:var(--sl-nav-pad-y) var(--sl-nav-pad-x);background-color:var(--sl-color-banner-bg,var(--sl-color-bg-accent));color:var(--__sl-banner-text);line-height:var(--sl-line-height-headings);text-align:center;text-wrap:balance;box-shadow:var(--sl-shadow-sm)}.sl-banner:where(.astro-y5d7njgm) a{color:var(--__sl-banner-text)}.content-panel:where(.astro-oil7k7jf){padding:1.5rem var(--sl-content-pad-x)}.content-panel:where(.astro-oil7k7jf)+.content-panel:where(.astro-oil7k7jf){border-top:1px solid var(--sl-color-hairline)}.sl-container:where(.astro-oil7k7jf){max-width:var(--sl-content-width)}.sl-container:where(.astro-oil7k7jf)>*+*{margin-top:1.5rem}@media (width>=72rem){.sl-container:where(.astro-oil7k7jf){margin-inline:var(--sl-content-margin-inline,auto)}}p:where(.astro-3rf4otau){border:1px solid var(--sl-color-orange);background-color:var(--sl-color-orange-low);color:var(--sl-color-orange-high);width:max-content;max-width:100%;font-size:var(--sl-text-body-sm);line-height:var(--sl-line-height-headings);text-align:start;align-items:center;gap:.75em;padding:.75em 1em}a:where(.astro-xk5gmzsg){color:var(--sl-color-gray-3);align-items:center;gap:.5rem;text-decoration:none}a:where(.astro-xk5gmzsg):hover{color:var(--sl-color-white)}.pagination-links:where(.astro-jgq3vlii){grid-template-columns:repeat(auto-fit,minmax(min(18rem,100%),1fr));gap:1rem;display:grid}a:where(.astro-jgq3vlii){border:1px solid var(--sl-color-gray-5);width:100%;color:var(--sl-color-gray-2);box-shadow:var(--sl-shadow-md);overflow-wrap:anywhere;border-radius:.5rem;flex-grow:1;flex-basis:calc(50% - .5rem);justify-content:flex-start;align-items:center;gap:.5rem;padding:1rem;text-decoration:none;display:flex}:where(.astro-jgq3vlii)[rel=next]{text-align:end;flex-direction:row-reverse;justify-content:end}a:where(.astro-jgq3vlii):hover{border-color:var(--sl-color-gray-2)}.link-title:where(.astro-jgq3vlii){color:var(--sl-color-white);font-size:var(--sl-text-2xl);line-height:var(--sl-line-height-headings)}svg:where(.astro-jgq3vlii){flex-shrink:0}footer:where(.astro-xhxjzfa7){flex-direction:column;gap:1.5rem}.meta:where(.astro-xhxjzfa7){font-size:var(--sl-text-sm);color:var(--sl-color-gray-3);flex-wrap:wrap;justify-content:space-between;gap:.75rem 3rem;margin-top:3rem}.meta:where(.astro-xhxjzfa7)>p:only-child{margin-inline-start:auto}.kudos:where(.astro-xhxjzfa7){font-size:var(--sl-text-xs);color:var(--sl-color-gray-3);align-items:center;gap:.5em;margin:1.5rem auto;text-decoration:none}.kudos:where(.astro-xhxjzfa7):hover{color:var(--sl-color-white)}label:where(.astro-r2p65idu){--sl-label-icon-size:.875rem;--sl-caret-size:1.25rem;--sl-inline-padding:.5rem;color:var(--sl-color-gray-2);align-items:center;gap:.25rem;display:flex;position:relative}label:where(.astro-r2p65idu):hover{color:var(--sl-color-white)}.icon:where(.astro-r2p65idu){pointer-events:none;position:absolute;top:50%;transform:translateY(-50%)}select:where(.astro-r2p65idu){padding-block:.625rem;padding-inline:calc(var(--sl-label-icon-size) + var(--sl-inline-padding) + .25rem) calc(var(--sl-caret-size) + var(--sl-inline-padding) + .25rem);margin-inline:calc(var(--sl-inline-padding) * -1);width:calc(var(--sl-select-width) + var(--sl-inline-padding) * 2);text-overflow:ellipsis;color:inherit;cursor:pointer;appearance:none;background-color:#0000;border:0}option:where(.astro-r2p65idu){background-color:var(--sl-color-bg-nav);color:var(--sl-color-gray-1)}@media (width>=50rem){select:where(.astro-r2p65idu){font-size:var(--sl-text-sm)}}site-search:where(.astro-ac66eqjo){display:contents}button:where(.astro-ac66eqjo)[data-open-modal]{color:var(--sl-color-gray-1);cursor:pointer;height:2.5rem;font-size:var(--sl-text-xl);background-color:#0000;border:0;align-items:center;gap:.5rem;display:flex}@media (width>=50rem){button:where(.astro-ac66eqjo)[data-open-modal]{border:1px solid var(--sl-color-gray-5);background-color:var(--sl-color-black);color:var(--sl-color-gray-2);font-size:var(--sl-text-sm);border-radius:.5rem;width:100%;max-width:22rem;padding-inline:.75rem .5rem}button:where(.astro-ac66eqjo)[data-open-modal]:hover{border-color:var(--sl-color-gray-2);color:var(--sl-color-white)}button:where(.astro-ac66eqjo)[data-open-modal]>:where(.astro-ac66eqjo):last-child{margin-inline-start:auto}}button:where(.astro-ac66eqjo)>kbd:where(.astro-ac66eqjo){font-size:var(--sl-text-2xs);background-color:var(--sl-color-gray-6);border-radius:.25rem;gap:.25em;padding-inline:.375rem}kbd:where(.astro-ac66eqjo){font-family:var(--__sl-font)}dialog:where(.astro-ac66eqjo){background-color:var(--sl-color-gray-6);border:1px solid var(--sl-color-gray-5);width:100%;max-width:100%;height:100%;max-height:100%;box-shadow:var(--sl-shadow-lg);margin:0}dialog:where(.astro-ac66eqjo)[open]{display:flex}dialog:where(.astro-ac66eqjo)::backdrop{background-color:var(--sl-color-backdrop-overlay);backdrop-filter:blur(.25rem)}.dialog-frame:where(.astro-ac66eqjo){flex-direction:column;flex-grow:1;gap:1rem;padding:1rem;position:relative;overflow:auto}button:where(.astro-ac66eqjo)[data-close-modal]{z-index:1;cursor:pointer;height:3.25rem;color:var(--sl-color-text-accent);background:0 0;border:0;align-self:flex-end;align-items:center;padding:.25rem;position:absolute}@media (width>=50rem){dialog:where(.astro-ac66eqjo){border-radius:.5rem;width:90%;max-width:40rem;height:max-content;min-height:15rem;max-height:calc(100% - 8rem);margin:4rem auto auto}.dialog-frame:where(.astro-ac66eqjo){padding:1.5rem}}[data-search-modal-open]{overflow:hidden}#starlight__search-form{align-items:center;display:flex;position:relative}#starlight__search-input{width:100%;font-family:var(--__sl-font);font-size:var(--sl-text-base);color:var(--sl-color-white);background-color:var(--sl-color-black);border:1px solid var(--sl-color-gray-5);border-radius:.5rem;padding:.75rem 1rem}#starlight__search-input:focus{border-color:var(--sl-color-accent);outline:none}#starlight__search-clear{font-size:var(--sl-text-xs);color:var(--sl-color-gray-2);cursor:pointer;background:0 0;border:0;padding:.25rem .5rem;position:absolute;inset-inline-end:.5rem}#starlight__search-clear:hover{color:var(--sl-color-white)}#starlight__search-results-area{margin-top:1rem}#starlight__search-message{font-size:var(--sl-text-sm);color:var(--sl-color-gray-2);margin:0 0 .75rem}#starlight__search-results{flex-direction:column;gap:1.25rem;margin:0;padding:0;list-style:none;display:flex}.sl-search-result{border-top:1px solid var(--sl-color-gray-5);padding-top:1rem}.sl-search-result:first-child{border-top:0;padding-top:0}.sl-search-result__link{color:var(--sl-color-white);font-weight:600;text-decoration:none}.sl-search-result__link:hover{text-decoration:underline}.sl-search-result__link--page{font-size:var(--sl-text-lg)}.sl-search-result__excerpt{font-size:var(--sl-text-sm);color:var(--sl-color-gray-2);overflow-wrap:anywhere;margin:.25rem 0 0}.sl-search-result__entries{flex-direction:column;gap:.75rem;margin:.75rem 0 0;padding:0;list-style:none;display:flex}.sl-search-result__entry--nested{border-inline-start:2px solid var(--sl-color-gray-5);padding-inline-start:1rem}.sl-search-result__entry--nested .sl-search-result__link{font-size:var(--sl-text-sm);font-weight:500}mark{color:inherit;text-decoration:underline;text-decoration-color:var(--sl-color-accent);background-color:#0000;font-weight:700}.site-title:where(.astro-clw6ags5){align-items:center;gap:var(--sl-nav-gap);font-size:var(--sl-text-h4);color:var(--sl-color-text-accent);white-space:nowrap;min-width:0;font-weight:600;text-decoration:none}span:where(.astro-clw6ags5){overflow:hidden}img:where(.astro-clw6ags5){height:calc(var(--sl-nav-height) - 2 * var(--sl-nav-pad-y));object-fit:contain;object-position:0 50%;width:auto;max-width:100%}a:where(.astro-cg55etiy){color:var(--sl-color-text-accent);margin:-.5em;padding:.5em}a:where(.astro-cg55etiy):hover{color:var(--sl-color-white)}.header:where(.astro-nczgtkxc){gap:var(--sl-nav-gap);justify-content:space-between;align-items:center;height:100%;display:flex}.title-wrapper:where(.astro-nczgtkxc){min-width:0;margin:-.25rem;padding:.25rem;overflow:clip}.right-group:where(.astro-nczgtkxc),.social-icons:where(.astro-nczgtkxc){align-items:center;gap:1rem}.social-icons:where(.astro-nczgtkxc):after{content:"";border-inline-end:1px solid var(--sl-color-gray-5);height:2rem}@media (width>=50rem){:root[data-has-sidebar]{--__sidebar-pad:calc(2 * var(--sl-nav-pad-x))}:root:not([data-has-toc]){--__toc-width:0rem}.header:where(.astro-nczgtkxc){--__sidebar-width:max(0rem, var(--sl-content-inline-start,0rem) - var(--sl-nav-pad-x));--__main-column-fr:calc(( 100% + var(--__sidebar-pad,0rem) - var(--__toc-width,var(--sl-sidebar-width)) - (2 * var(--__toc-width,var(--sl-nav-pad-x))) - var(--sl-content-inline-start,0rem) - var(--sl-content-width) ) / 2);grid-template-columns: minmax(calc(var(--__sidebar-width) + max(0rem, var(--__main-column-fr) - var(--sl-nav-gap))), auto) 1fr auto;align-content:center;display:grid}}.hero:where(.astro-q2ezz3gc){grid-template-columns:100%;align-items:center;gap:1rem;padding-bottom:1rem;display:grid}.hero:where(.astro-q2ezz3gc)>img:where(.astro-q2ezz3gc),.hero:where(.astro-q2ezz3gc)>.hero-html:where(.astro-q2ezz3gc){object-fit:contain;width:min(70%,20rem);height:auto;margin-inline:auto}.stack:where(.astro-q2ezz3gc){text-align:center;flex-direction:column;gap:clamp(1.5rem,1.5rem + 1vw,2rem)}.copy:where(.astro-q2ezz3gc){flex-direction:column;align-items:center;gap:1rem}.copy:where(.astro-q2ezz3gc)>:where(.astro-q2ezz3gc){max-width:50ch}h1:where(.astro-q2ezz3gc){font-size:clamp(var(--sl-text-3xl), calc(.25rem + 5vw), var(--sl-text-6xl));line-height:var(--sl-line-height-headings);color:var(--sl-color-white);font-weight:600}.tagline:where(.astro-q2ezz3gc){font-size:clamp(var(--sl-text-base), calc(.0625rem + 2vw), var(--sl-text-xl));color:var(--sl-color-gray-2)}.actions:where(.astro-q2ezz3gc){flex-wrap:wrap;justify-content:center;gap:1rem 2rem}@media (width>=50rem){.hero:where(.astro-q2ezz3gc){grid-template-columns:7fr 4fr;gap:3%;padding-block:clamp(2.5rem,1rem + 10vmin,10rem)}.hero:where(.astro-q2ezz3gc)>img:where(.astro-q2ezz3gc),.hero:where(.astro-q2ezz3gc)>.hero-html:where(.astro-q2ezz3gc){order:2;width:min(100%,25rem)}.stack:where(.astro-q2ezz3gc){text-align:start}.copy:where(.astro-q2ezz3gc){align-items:flex-start}.actions:where(.astro-q2ezz3gc){justify-content:flex-start}}button:where(.astro-vvx7mffu){top:calc((var(--sl-nav-height) - var(--sl-menu-button-size)) / 2);z-index:var(--sl-z-index-navbar);width:var(--sl-menu-button-size);height:var(--sl-menu-button-size);background-color:var(--sl-color-white);color:var(--sl-color-black);box-shadow:var(--sl-shadow-md);cursor:pointer;border:0;border-radius:50%;padding:.5rem;position:fixed;inset-inline-end:var(--sl-nav-pad-x)}:where(.astro-vvx7mffu)[aria-expanded=true] button:where(.astro-vvx7mffu){background-color:var(--sl-color-gray-2);box-shadow:none}:where(.astro-vvx7mffu)[aria-expanded=true] button:where(.astro-vvx7mffu) .open-menu:where(.astro-vvx7mffu),:where(.astro-vvx7mffu):not([aria-expanded=true]) button:where(.astro-vvx7mffu) .close-menu:where(.astro-vvx7mffu){display:none}[data-theme=light] button:where(.astro-vvx7mffu){background-color:var(--sl-color-black);color:var(--sl-color-white)}[data-theme=light] :where(.astro-vvx7mffu)[aria-expanded=true] button:where(.astro-vvx7mffu){background-color:var(--sl-color-gray-5)}[data-mobile-menu-expanded]{overflow:hidden}@media (width>=50rem){[data-mobile-menu-expanded]{overflow:auto}}.page:where(.astro-gqpr5s5a){flex-direction:column;min-height:100vh}.header:where(.astro-gqpr5s5a){z-index:var(--sl-z-index-navbar);width:100%;height:var(--sl-nav-height);border-bottom:1px solid var(--sl-color-hairline-shade);padding:var(--sl-nav-pad-y) var(--sl-nav-pad-x);background-color:var(--sl-color-bg-nav);padding-inline-end:var(--sl-nav-pad-x);position:fixed;inset-block-start:0;inset-inline-start:0}[data-has-sidebar] .header:where(.astro-gqpr5s5a){padding-inline-end:calc(var(--sl-nav-gap) + var(--sl-nav-pad-x) + var(--sl-menu-button-size))}.sidebar-pane:where(.astro-gqpr5s5a){visibility:var(--sl-sidebar-visibility,hidden);z-index:var(--sl-z-index-menu);inset-block:var(--sl-nav-height) 0;background-color:var(--sl-color-black);scrollbar-gutter:stable;width:100%;position:fixed;inset-inline-start:0;overflow-y:auto}[aria-expanded=true]~.sidebar-pane:where(.astro-gqpr5s5a){--sl-sidebar-visibility:visible}.sidebar-content:where(.astro-gqpr5s5a){height:100%;min-height:max-content;padding:1rem var(--sl-sidebar-pad-x) 0;flex-direction:column;gap:1rem}@media (width>=50rem){.sidebar-content:where(.astro-gqpr5s5a):after{content:"";padding-bottom:1px}}.main-frame:where(.astro-gqpr5s5a){padding-top:calc(var(--sl-nav-height) + var(--sl-mobile-toc-height));padding-inline-start:var(--sl-content-inline-start)}@media (width>=50rem){[data-has-sidebar] .header:where(.astro-gqpr5s5a){padding-inline-end:var(--sl-nav-pad-x)}.sidebar-pane:where(.astro-gqpr5s5a){--sl-sidebar-visibility:visible;width:var(--sl-sidebar-width);background-color:var(--sl-color-bg-sidebar);border-inline-end:1px solid var(--sl-color-hairline-shade)}}ul:where(.astro-cxyftcne){padding:0;list-style:none}a:where(.astro-cxyftcne){--pad-inline:.5rem;padding-block:.25rem;padding-inline:calc(1rem * var(--depth) + var(--pad-inline)) var(--pad-inline);border-radius:.25rem;line-height:1.25;display:block}a:where(.astro-cxyftcne)[aria-current=true]{color:var(--sl-color-text-accent)}.isMobile:where(.astro-cxyftcne) a:where(.astro-cxyftcne){--pad-inline:1rem;justify-content:space-between;gap:var(--pad-inline);border-top:1px solid var(--sl-color-gray-6);color:var(--sl-color-text);font-size:var(--sl-text-sm);outline-offset:var(--sl-outline-offset-inside);border-radius:0;padding-block:.5rem;text-decoration:none;display:flex}.isMobile:where(.astro-cxyftcne):first-child>li:where(.astro-cxyftcne):first-child>a:where(.astro-cxyftcne){border-top:0}.isMobile:where(.astro-cxyftcne) a:where(.astro-cxyftcne)[aria-current=true],.isMobile:where(.astro-cxyftcne) a:where(.astro-cxyftcne)[aria-current=true]:hover,.isMobile:where(.astro-cxyftcne) a:where(.astro-cxyftcne)[aria-current=true]:focus{color:var(--sl-color-white);background-color:unset}.isMobile:where(.astro-cxyftcne) a:where(.astro-cxyftcne)[aria-current=true]:after{content:"";background-color:var(--sl-color-text-accent);flex-shrink:0;width:1rem;mask-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAxNCAxNCc+PHBhdGggZD0nTTEwLjkxNCA0LjIwNmEuNTgzLjU4MyAwIDAgMC0uODI4IDBMNS43NCA4LjU1NyAzLjkxNCA2LjcyNmEuNTk2LjU5NiAwIDAgMC0uODI4Ljg1N2wyLjI0IDIuMjRhLjU4My41ODMgMCAwIDAgLjgyOCAwbDQuNzYtNC43NmEuNTgzLjU4MyAwIDAgMCAwLS44NTdaJy8+PC9zdmc+Cg==);mask-repeat:no-repeat}nav:where(.astro-5ulgm6bh){z-index:var(--sl-z-index-toc);top:calc(var(--sl-nav-height) - 1px);border-top:1px solid var(--sl-color-gray-5);background-color:var(--sl-color-bg-nav);position:fixed;inset-inline:0}@media (width>=50rem){nav:where(.astro-5ulgm6bh){inset-inline-start:var(--sl-content-inline-start,0)}}summary:where(.astro-5ulgm6bh){height:var(--sl-mobile-toc-height);border-bottom:1px solid var(--sl-color-hairline-shade);font-size:var(--sl-text-xs);outline-offset:var(--sl-outline-offset-inside);align-items:center;gap:.5rem;padding:.5rem 1rem}summary:where(.astro-5ulgm6bh)::marker{display:none}summary:where(.astro-5ulgm6bh)::-webkit-details-marker{display:none}.toggle:where(.astro-5ulgm6bh){border:1px solid var(--sl-color-gray-5);background-color:var(--sl-color-black);user-select:none;cursor:pointer;border-radius:.5rem;flex-shrink:0;justify-content:space-between;align-items:center;gap:1rem;padding-block:.5rem;padding-inline:.75rem .5rem;line-height:1}details:where(.astro-5ulgm6bh)[open] .toggle:where(.astro-5ulgm6bh){color:var(--sl-color-white);border-color:var(--sl-color-accent)}details:where(.astro-5ulgm6bh) .toggle:where(.astro-5ulgm6bh):hover{color:var(--sl-color-white);border-color:var(--sl-color-gray-2)}[dir=rtl] .caret:where(.astro-5ulgm6bh){transform:rotate(180deg)}details:where(.astro-5ulgm6bh)[open] .caret:where(.astro-5ulgm6bh){transform:rotate(90deg)}.display-current:where(.astro-5ulgm6bh){white-space:nowrap;text-overflow:ellipsis;color:var(--sl-color-white);overflow:hidden}.dropdown:where(.astro-5ulgm6bh){--border-top:1px;margin-top:calc(-1 * var(--border-top));border:var(--border-top) solid var(--sl-color-gray-6);border-top-color:var(--sl-color-hairline-shade);max-height:calc(85vh - var(--sl-nav-height) - var(--sl-mobile-toc-height));background-color:var(--sl-color-black);box-shadow:var(--sl-shadow-md);overscroll-behavior:contain;overflow-y:auto}.right-sidebar-panel:where(.astro-q5mffni3){padding:1rem var(--sl-sidebar-pad-x)}.sl-container:where(.astro-q5mffni3){width:calc(var(--sl-sidebar-width) - 2 * var(--sl-sidebar-pad-x))}.right-sidebar-panel:where(.astro-q5mffni3) h2{color:var(--sl-color-white);font-size:var(--sl-text-h5);font-weight:600;line-height:var(--sl-line-height-headings);margin-bottom:.5rem}.right-sidebar-panel:where(.astro-q5mffni3) :where(a){font-size:var(--sl-text-xs);color:var(--sl-color-gray-3);overflow-wrap:anywhere;text-decoration:none;display:block}.right-sidebar-panel:where(.astro-q5mffni3) :where(a):hover{color:var(--sl-color-white)}@media (width>=72rem){.sl-container:where(.astro-q5mffni3){max-width:calc(( ( 100vw - var(--sl-sidebar-width) - 2 * var(--sl-content-pad-x) - 2 * var(--sl-sidebar-pad-x) ) * .25 ))}}h1:where(.astro-2sm4b3ln){font-size:var(--sl-text-h1);line-height:var(--sl-line-height-headings);color:var(--sl-color-white);margin-top:1rem;font-weight:600}sl-sidebar-state-persist:where(.astro-f5yvicm7){display:contents}.social-icons:where(.astro-b5gddk54){align-items:center;gap:1rem;margin-inline-end:auto;padding-block:1rem;display:flex}.social-icons:where(.astro-b5gddk54):empty{display:none}.mobile-preferences:where(.astro-b5gddk54){border-top:1px solid var(--sl-color-gray-6);flex-wrap:wrap;justify-content:space-between;column-gap:1rem;padding:.5rem 0}ul:where(.astro-wv7whodv){--sl-sidebar-item-padding-inline:.5rem;padding:0;list-style:none}li:where(.astro-wv7whodv){overflow-wrap:anywhere}.top-level:where(.astro-wv7whodv)>li:where(.astro-wv7whodv)+li:where(.astro-wv7whodv){margin-top:.75rem}.large:where(.astro-wv7whodv){font-size:var(--sl-text-lg);color:var(--sl-color-white);font-weight:600}a:where(.astro-wv7whodv){color:var(--sl-color-gray-2);padding:.3em var(--sl-sidebar-item-padding-inline);border-radius:.25rem;line-height:1.4;text-decoration:none;display:block}a:where(.astro-wv7whodv):hover,a:where(.astro-wv7whodv):focus{color:var(--sl-color-white)}:where(.astro-wv7whodv)[aria-current=page],:where(.astro-wv7whodv)[aria-current=page]:hover,:where(.astro-wv7whodv)[aria-current=page]:focus{color:var(--sl-color-text-invert);background-color:var(--sl-color-text-accent);font-weight:600}.page-toc:where(.astro-wv7whodv){border-inline-start:1px solid var(--sl-color-hairline-light);margin-inline-start:var(--sl-sidebar-item-padding-inline);margin-top:.25rem;padding-inline-start:var(--sl-sidebar-item-padding-inline)}.page-toc:where(.astro-wv7whodv) a:where(.astro-wv7whodv){font-size:var(--sl-text-xs);color:var(--sl-color-gray-3)}.page-toc:where(.astro-wv7whodv) .depth-3:where(.astro-wv7whodv) a:where(.astro-wv7whodv){padding-inline-start:1rem}@media (width>=50rem){.top-level:where(.astro-wv7whodv)>li:where(.astro-wv7whodv)+li:where(.astro-wv7whodv){margin-top:.5rem}.large:where(.astro-wv7whodv){font-size:var(--sl-text-base)}}a:where(.astro-vxeigawq){clip:rect(0, 0, 0, 0);top:.75rem;position:fixed;inset-inline-start:.75rem}a:where(.astro-vxeigawq):focus{clip:unset;z-index:var(--sl-z-index-skiplink);color:var(--sl-color-text-invert);background-color:var(--sl-color-text-accent);box-shadow:var(--sl-shadow-lg);padding:.5rem 1rem;text-decoration:none;display:block}.main-pane:where(.astro-abfeecmu){isolation:isolate}@media (width>=72rem){.right-sidebar-container:where(.astro-abfeecmu){width:max(var(--sl-sidebar-width), calc(var(--sl-sidebar-width) + (100% - var(--sl-content-width) - var(--sl-sidebar-width)) / 2));order:2;position:relative}.right-sidebar:where(.astro-abfeecmu){border-inline-start:1px solid var(--sl-color-hairline);padding-top:var(--sl-nav-height);scrollbar-width:none;width:100%;height:100vh;position:fixed;top:0;overflow-y:auto}.main-pane:where(.astro-abfeecmu){width:100%}[data-has-sidebar][data-has-toc] .main-pane:where(.astro-abfeecmu){--sl-content-margin-inline:auto 0;width:min(calc(100% - var(--sl-sidebar-width)), calc(var(--sl-content-width) + (100% - var(--sl-content-width) - var(--sl-sidebar-width)) / 2));order:1}}}@layer starlight.content{.sl-markdown-content .sl-heading-wrapper{--sl-anchor-icon-size:.8275em;--sl-anchor-icon-gap:.25em;--sl-anchor-icon-space:calc(var(--sl-anchor-icon-size) + var(--sl-anchor-icon-gap));line-height:var(--sl-line-height-headings)}.sl-markdown-content :not(h1,h2,h3,h4,h5,h6,.sl-heading-wrapper)+.sl-heading-wrapper{margin-top:1.5em}.sl-markdown-content .sl-heading-wrapper.level-h1{font-size:var(--sl-text-h1)}.sl-markdown-content .sl-heading-wrapper.level-h2{font-size:var(--sl-text-h2)}.sl-markdown-content .sl-heading-wrapper.level-h3{font-size:var(--sl-text-h3)}.sl-markdown-content .sl-heading-wrapper.level-h4{font-size:var(--sl-text-h4)}.sl-markdown-content .sl-heading-wrapper.level-h5{font-size:var(--sl-text-h5)}.sl-markdown-content .sl-heading-wrapper.level-h6{font-size:var(--sl-text-h6)}.sl-markdown-content .sl-heading-wrapper>:first-child{padding-inline-end:var(--sl-anchor-icon-space);display:inline}.sl-markdown-content .sl-anchor-link{user-select:none;margin-inline-start:calc(-1 * var(--sl-anchor-icon-size));display:inline-flex;position:relative}.sl-markdown-content .sl-anchor-link:after{content:"";position:absolute;inset:-.25rem -.5rem}.sl-markdown-content .sl-anchor-icon>svg{width:var(--sl-anchor-icon-size);vertical-align:top;transform:translateY(calc((var(--sl-line-height-headings) * 1em - var(--sl-anchor-icon-size)) / 2));display:inline}@media (hover:hover){.sl-markdown-content .sl-anchor-link{opacity:0}.sl-markdown-content .sl-anchor-link:focus,.sl-markdown-content .sl-heading-wrapper:hover .sl-anchor-link{opacity:1}}.sl-markdown-content :not(a,strong,em,del,span,input,code,br)+:not(a,strong,em,del,span,input,code,br,:where(.not-content *)),.sl-markdown-content :not(a,strong,em,del,span,input,code,br)+:is(astro-island,astro-slot)>:not(a,strong,em,del,span,input,code,br,:where(.not-content *)):first-child{margin-top:var(--sl-content-gap-y)}.sl-markdown-content :not(h1,h2,h3,h4,h5,h6)+:is(h1,h2,h3,h4,h5,h6):not(:where(.not-content *)){margin-top:1.5em}.sl-markdown-content li+li:not(:where(.not-content *)),.sl-markdown-content dt+dt:not(:where(.not-content *)),.sl-markdown-content dt+dd:not(:where(.not-content *)),.sl-markdown-content dd+dd:not(:where(.not-content *)){margin-top:.25rem}.sl-markdown-content li:not(:where(.not-content *)){overflow-wrap:anywhere}.sl-markdown-content :is(ol,ul):has(>li>:not(a,strong,em,del,span,input,code,br,script,ol,ul))>li>:is(:last-child:not(a,strong,em,del,span,input,code,br,script,:where(.not-content *)),:not(script):has(~script:last-child):not(:has(~:not(script)))){margin-bottom:1.25rem}.sl-markdown-content dt:not(:where(.not-content *)){font-weight:700}.sl-markdown-content dd:not(:where(.not-content *)){padding-inline-start:1rem}.sl-markdown-content :is(h1,h2,h3,h4,h5,h6):not(:where(.not-content *)){color:var(--sl-color-white);line-height:var(--sl-line-height-headings);font-weight:600}.sl-markdown-content :is(img,picture,video,canvas,svg,iframe):not(:where(.not-content *)){max-width:100%;height:auto;display:block}.sl-markdown-content h1:not(:where(.not-content *)){font-size:var(--sl-text-h1)}.sl-markdown-content h2:not(:where(.not-content *)){font-size:var(--sl-text-h2)}.sl-markdown-content h3:not(:where(.not-content *)){font-size:var(--sl-text-h3)}.sl-markdown-content h4:not(:where(.not-content *)){font-size:var(--sl-text-h4)}.sl-markdown-content h5:not(:where(.not-content *)){font-size:var(--sl-text-h5)}.sl-markdown-content h6:not(:where(.not-content *)){font-size:var(--sl-text-h6)}.sl-markdown-content a:not(:where(.not-content *)){color:var(--sl-color-text-accent)}.sl-markdown-content a:hover:not(:where(.not-content *)){color:var(--sl-color-white)}.sl-markdown-content code:not(:where(.not-content *)){background-color:var(--sl-color-bg-inline-code);font-size:var(--sl-text-code-sm);margin-block:-.125rem;padding:.125rem .375rem}.sl-markdown-content :is(h1,h2,h3,h4,h5,h6) code{font-size:inherit}.sl-markdown-content pre:not(:where(.not-content *)){border:1px solid var(--sl-color-gray-5);font-size:var(--sl-text-code);tab-size:2;padding:.75rem 1rem}.sl-markdown-content pre code:not(:where(.not-content *)){all:unset;font-family:var(--__sl-font-mono)}.sl-markdown-content blockquote:not(:where(.not-content *)){border-inline-start:1px solid var(--sl-color-gray-5);padding-inline-start:1rem}.sl-markdown-content table:not(:where(.not-content *)){border-spacing:0;display:block;overflow:auto}.sl-markdown-content :is(th,td):not(:where(.not-content *)){border-bottom:1px solid var(--sl-color-gray-5);vertical-align:baseline;padding:.5rem 1rem}.sl-markdown-content :is(th:first-child,td:first-child):not(:where(.not-content *)){padding-inline-start:0}.sl-markdown-content :is(th:last-child,td:last-child):not(:where(.not-content *)){padding-inline-end:0}.sl-markdown-content th:not(:where(.not-content *)){color:var(--sl-color-white);font-weight:600}.sl-markdown-content th:not([align]):not(:where(.not-content *)){text-align:start}.sl-markdown-content .starlight-aside :is(th,td,hr,blockquote):not(:where(.not-content *)){border-color:var(--sl-color-gray-4)}@supports (border-color:color-mix(in srgb, var(--sl-color-asides-text-accent) 30%, transparent)
2
- ){.sl-markdown-content .starlight-aside :is(th,td,hr,blockquote):not(:where(.not-content *)){border-color:color-mix(in srgb, var(--sl-color-asides-text-accent) 30%, transparent)}}@supports (border-color:color-mix(in srgb, var(--sl-color-asides-text-accent) 12%, transparent)
3
- ){.sl-markdown-content .starlight-aside code:not(:where(.not-content *)){background-color:color-mix(in srgb, var(--sl-color-asides-text-accent) 12%, transparent)}}.sl-markdown-content hr:not(:where(.not-content *)){border:0;border-bottom:1px solid var(--sl-color-hairline)}.sl-markdown-content details:not(:where(.not-content *)){--sl-details-border-color:var(--sl-color-gray-5);--sl-details-border-color--hover:var(--sl-color-text-accent);border-inline-start:2px solid var(--sl-details-border-color);padding-inline-start:1rem}.sl-markdown-content details:not([open]):hover:not(:where(.not-content *)),.sl-markdown-content details:has(>summary:hover):not(:where(.not-content *)){border-color:var(--sl-details-border-color--hover)}.sl-markdown-content summary:not(:where(.not-content *)){color:var(--sl-color-white);cursor:pointer;margin-inline-start:-.5rem;padding-inline-start:.5rem;font-weight:600;display:block}.sl-markdown-content details[open]>summary:not(:where(.not-content *)){margin-bottom:1rem}.sl-markdown-content summary:not(:where(.not-content *))::marker{display:none}.sl-markdown-content summary:not(:where(.not-content *))::-webkit-details-marker{display:none}.sl-markdown-content summary:not(:where(.not-content *)):before{--sl-details-marker-size:1.25rem;content:"";height:var(--sl-details-marker-size);width:var(--sl-details-marker-size);margin-inline:calc((var(--sl-details-marker-size) / 4) * -1) .25rem;vertical-align:middle;background-color:currentColor;display:inline-block;mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M14.8 11.3 10.6 7a1 1 0 1 0-1.4 1.5l3.5 3.5-3.5 3.5a1 1 0 0 0 0 1.4 1 1 0 0 0 .7.3 1 1 0 0 0 .7-.3l4.2-4.2a1 1 0 0 0 0-1.4Z'/%3E%3C/svg%3E%0A");mask-repeat:no-repeat}@media (prefers-reduced-motion:no-preference){.sl-markdown-content summary:not(:where(.not-content *)):before{transition:transform .2s ease-in-out}}.sl-markdown-content details[open]>summary:not(:where(.not-content *)):before{transform:rotate(90deg)}[dir=rtl] .sl-markdown-content summary:not(:where(.not-content *)):before,.sl-markdown-content [dir=rtl] summary:not(:where(.not-content *)):before{transform:rotate(180deg)}.sl-markdown-content summary:not(:where(.not-content *)) p:only-child{display:inline}.sl-markdown-content .starlight-aside details:not(:where(.not-content *)){--sl-details-border-color:var(--sl-color-asides-border);--sl-details-border-color--hover:var(--sl-color-asides-text-accent)}}@layer starlight.components{.starlight-aside{border-inline-start:.25rem solid var(--sl-color-asides-border);color:var(--sl-color-white);padding:1rem}.starlight-aside--note{--sl-color-asides-text-accent:var(--sl-color-blue-high);--sl-color-asides-border:var(--sl-color-blue);background-color:var(--sl-color-blue-low)}.starlight-aside--tip{--sl-color-asides-text-accent:var(--sl-color-purple-high);--sl-color-asides-border:var(--sl-color-purple);background-color:var(--sl-color-purple-low)}.starlight-aside--caution{--sl-color-asides-text-accent:var(--sl-color-orange-high);--sl-color-asides-border:var(--sl-color-orange);background-color:var(--sl-color-orange-low)}.starlight-aside--danger{--sl-color-asides-text-accent:var(--sl-color-red-high);--sl-color-asides-border:var(--sl-color-red);background-color:var(--sl-color-red-low)}.starlight-aside__title{font-size:var(--sl-text-h5);font-weight:600;line-height:var(--sl-line-height-headings);color:var(--sl-color-asides-text-accent);align-items:center;gap:.5rem;display:flex}.starlight-aside__icon{width:1em;height:1em;font-size:1.333em}.starlight-aside__title+.starlight-aside__content{margin-top:.5rem}.starlight-aside__content:empty{display:none}.starlight-aside__content a{color:var(--sl-color-asides-text-accent)}svg:where(.astro-n5k4ipy7){color:var(--sl-icon-color);font-size:var(--sl-icon-size,1em);width:1em;height:1em}.sl-link-button:where(.astro-hlbqph7b){font-size:var(--sl-text-sm);outline-offset:.25rem;border:1px solid #0000;border-radius:999rem;align-items:center;gap:.5em;padding:.4375rem 1.125rem;line-height:1.1875;text-decoration:none;display:inline-flex}.sl-link-button:where(.astro-hlbqph7b).primary{background:var(--sl-color-text-accent);border-color:var(--sl-color-text-accent);color:var(--sl-color-black)}.sl-link-button:where(.astro-hlbqph7b).primary:hover{color:var(--sl-color-black)}.sl-link-button:where(.astro-hlbqph7b).secondary{border-color:inherit;color:var(--sl-color-white)}.sl-link-button:where(.astro-hlbqph7b).minimal{color:var(--sl-color-white);padding-inline:0}.sl-link-button:where(.astro-hlbqph7b) svg{flex-shrink:0}@media (width>=50rem){.sl-link-button:where(.astro-hlbqph7b){font-size:var(--sl-text-base);padding:.9375rem 1.25rem}}.sl-markdown-content .sl-link-button:where(.astro-hlbqph7b){margin-inline-end:1rem}.sl-markdown-content .sl-link-button:where(.astro-hlbqph7b):not(:where(p *)){margin-block:1rem}.kudos:where(.astro-xhxjzfa7) svg{color:var(--sl-color-orange)}.label-icon:where(.astro-r2p65idu){font-size:var(--sl-label-icon-size);inset-inline-start:0}.caret:where(.astro-r2p65idu){font-size:var(--sl-caret-size);inset-inline-end:0}}@layer starlight.utils{.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.sl-hidden{display:none}.sl-flex{display:flex}.sl-block{display:block}@media (width>=50rem){.md\:sl-hidden{display:none}.md\:sl-flex{display:flex}.md\:sl-block{display:block}}@media (width>=72rem){.lg\:sl-hidden{display:none}.lg\:sl-flex{display:flex}.lg\:sl-block{display:block}}[data-theme=light] .light\:sl-hidden,[data-theme=dark] .dark\:sl-hidden{display:none}[dir=rtl] .rtl\:flip:not(:where([dir=rtl] [dir=ltr] *)){transform:matrix(-1,0,0,1,0,0)}}html:not([data-has-toc]){--sl-mobile-toc-height:0rem}html:not([data-has-sidebar]){--sl-content-width:67.5rem}html{scroll-padding-top:calc(1.5rem + var(--sl-nav-height) + var(--sl-mobile-toc-height))}main:where(.astro-vdxcvpsm){padding:var(--sl-main-pad)}@media (width>=50em){:where(.astro-vdxcvpsm)[data-has-sidebar]{--sl-content-inline-start:var(--sl-sidebar-width)}}@media (width>=72em){html{scroll-padding-top:calc(1.5rem + var(--sl-nav-height))}}