diff --git a/404.html b/404.html index e90f204..5e8b318 100644 --- a/404.html +++ b/404.html @@ -1,4 +1,4 @@ -找不到页面 | Orbien +找不到页面 | Orbien -
跳到主要内容

找不到页面

我们找不到您要找的页面。

请联系原始链接来源网站的所有者,并告知他们链接已损坏。

\ No newline at end of file +
跳到主要内容

找不到页面

我们找不到您要找的页面。

请联系原始链接来源网站的所有者,并告知他们链接已损坏。

\ No newline at end of file diff --git a/assets/css/styles.1c6ecd7d.css b/assets/css/styles.f8d6dc55.css similarity index 87% rename from assets/css/styles.1c6ecd7d.css rename to assets/css/styles.f8d6dc55.css index 53c5a72..5b2ea2e 100644 --- a/assets/css/styles.1c6ecd7d.css +++ b/assets/css/styles.f8d6dc55.css @@ -1 +1 @@ -@import "https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@400;500;700;800&family=Outfit:wght@500;600;700;800&display=swap";@layer docusaurus.infima{:root{--ifm-color-scheme:light;--ifm-dark-value:10%;--ifm-darker-value:15%;--ifm-darkest-value:30%;--ifm-light-value:15%;--ifm-lighter-value:30%;--ifm-lightest-value:50%;--ifm-contrast-background-value:90%;--ifm-contrast-foreground-value:70%;--ifm-contrast-background-dark-value:70%;--ifm-contrast-foreground-dark-value:90%;--ifm-color-primary:#3578e5;--ifm-color-secondary:#ebedf0;--ifm-color-success:#00a400;--ifm-color-info:#54c7ec;--ifm-color-warning:#ffba00;--ifm-color-danger:#fa383e;--ifm-color-primary-dark:#306cce;--ifm-color-primary-darker:#2d66c3;--ifm-color-primary-darkest:#2554a0;--ifm-color-primary-light:#538ce9;--ifm-color-primary-lighter:#72a1ed;--ifm-color-primary-lightest:#9abcf2;--ifm-color-primary-contrast-background:#ebf2fc;--ifm-color-primary-contrast-foreground:#102445;--ifm-color-secondary-dark:#d4d5d8;--ifm-color-secondary-darker:#c8c9cc;--ifm-color-secondary-darkest:#a4a6a8;--ifm-color-secondary-light:#eef0f2;--ifm-color-secondary-lighter:#f1f2f5;--ifm-color-secondary-lightest:#f5f6f8;--ifm-color-secondary-contrast-background:#fdfdfe;--ifm-color-secondary-contrast-foreground:#474748;--ifm-color-success-dark:#009400;--ifm-color-success-darker:#008b00;--ifm-color-success-darkest:#007300;--ifm-color-success-light:#26b226;--ifm-color-success-lighter:#4dbf4d;--ifm-color-success-lightest:#80d280;--ifm-color-success-contrast-background:#e6f6e6;--ifm-color-success-contrast-foreground:#003100;--ifm-color-info-dark:#4cb3d4;--ifm-color-info-darker:#47a9c9;--ifm-color-info-darkest:#3b8ba5;--ifm-color-info-light:#6ecfef;--ifm-color-info-lighter:#87d8f2;--ifm-color-info-lightest:#aae3f6;--ifm-color-info-contrast-background:#eef9fd;--ifm-color-info-contrast-foreground:#193c47;--ifm-color-warning-dark:#e6a700;--ifm-color-warning-darker:#d99e00;--ifm-color-warning-darkest:#b38200;--ifm-color-warning-light:#ffc426;--ifm-color-warning-lighter:#ffcf4d;--ifm-color-warning-lightest:#ffdd80;--ifm-color-warning-contrast-background:#fff8e6;--ifm-color-warning-contrast-foreground:#4d3800;--ifm-color-danger-dark:#e13238;--ifm-color-danger-darker:#d53035;--ifm-color-danger-darkest:#af272b;--ifm-color-danger-light:#fb565b;--ifm-color-danger-lighter:#fb7478;--ifm-color-danger-lightest:#fd9c9f;--ifm-color-danger-contrast-background:#ffebec;--ifm-color-danger-contrast-foreground:#4b1113;--ifm-color-white:#fff;--ifm-color-black:#000;--ifm-color-gray-0:var(--ifm-color-white);--ifm-color-gray-100:#f5f6f7;--ifm-color-gray-200:#ebedf0;--ifm-color-gray-300:#dadde1;--ifm-color-gray-400:#ccd0d5;--ifm-color-gray-500:#bec3c9;--ifm-color-gray-600:#8d949e;--ifm-color-gray-700:#606770;--ifm-color-gray-800:#444950;--ifm-color-gray-900:#1c1e21;--ifm-color-gray-1000:var(--ifm-color-black);--ifm-color-emphasis-0:var(--ifm-color-gray-0);--ifm-color-emphasis-100:var(--ifm-color-gray-100);--ifm-color-emphasis-200:var(--ifm-color-gray-200);--ifm-color-emphasis-300:var(--ifm-color-gray-300);--ifm-color-emphasis-400:var(--ifm-color-gray-400);--ifm-color-emphasis-500:var(--ifm-color-gray-500);--ifm-color-emphasis-600:var(--ifm-color-gray-600);--ifm-color-emphasis-700:var(--ifm-color-gray-700);--ifm-color-emphasis-800:var(--ifm-color-gray-800);--ifm-color-emphasis-900:var(--ifm-color-gray-900);--ifm-color-emphasis-1000:var(--ifm-color-gray-1000);--ifm-color-content:var(--ifm-color-emphasis-900);--ifm-color-content-inverse:var(--ifm-color-emphasis-0);--ifm-color-content-secondary:#525860;--ifm-background-color:transparent;--ifm-background-surface-color:var(--ifm-color-content-inverse);--ifm-global-border-width:1px;--ifm-global-radius:.4rem;--ifm-hover-overlay:rgba(0,0,0,.05);--ifm-font-color-base:var(--ifm-color-content);--ifm-font-color-base-inverse:var(--ifm-color-content-inverse);--ifm-font-color-secondary:var(--ifm-color-content-secondary);--ifm-font-family-base:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--ifm-font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--ifm-font-size-base:100%;--ifm-font-weight-light:300;--ifm-font-weight-normal:400;--ifm-font-weight-semibold:500;--ifm-font-weight-bold:700;--ifm-font-weight-base:var(--ifm-font-weight-normal);--ifm-line-height-base:1.65;--ifm-global-spacing:1rem;--ifm-spacing-vertical:var(--ifm-global-spacing);--ifm-spacing-horizontal:var(--ifm-global-spacing);--ifm-transition-fast:.2s;--ifm-transition-slow:.4s;--ifm-transition-timing-default:cubic-bezier(.08,.52,.52,1);--ifm-global-shadow-lw:0 1px 2px 0 rgba(0,0,0,.1);--ifm-global-shadow-md:0 5px 40px rgba(0,0,0,.2);--ifm-global-shadow-tl:0 12px 28px 0 rgba(0,0,0,.2),0 2px 4px 0 rgba(0,0,0,.1);--ifm-z-index-dropdown:100;--ifm-z-index-fixed:200;--ifm-z-index-overlay:400;--ifm-container-width:1140px;--ifm-container-width-xl:1320px;--ifm-code-background:#f6f7f8;--ifm-code-border-radius:var(--ifm-global-radius);--ifm-code-font-size:90%;--ifm-code-padding-horizontal:.1rem;--ifm-code-padding-vertical:.1rem;--ifm-pre-background:var(--ifm-code-background);--ifm-pre-border-radius:var(--ifm-code-border-radius);--ifm-pre-color:inherit;--ifm-pre-line-height:1.45;--ifm-pre-padding:1rem;--ifm-heading-color:inherit;--ifm-heading-margin-top:0;--ifm-heading-margin-bottom:var(--ifm-spacing-vertical);--ifm-heading-font-family:var(--ifm-font-family-base);--ifm-heading-font-weight:var(--ifm-font-weight-bold);--ifm-heading-line-height:1.25;--ifm-h1-font-size:2rem;--ifm-h2-font-size:1.5rem;--ifm-h3-font-size:1.25rem;--ifm-h4-font-size:1rem;--ifm-h5-font-size:.875rem;--ifm-h6-font-size:.85rem;--ifm-image-alignment-padding:1.25rem;--ifm-leading-desktop:1.25;--ifm-leading:calc(var(--ifm-leading-desktop)*1rem);--ifm-list-left-padding:2rem;--ifm-list-margin:1rem;--ifm-list-item-margin:.25rem;--ifm-list-paragraph-margin:1rem;--ifm-table-cell-padding:.75rem;--ifm-table-background:transparent;--ifm-table-stripe-background:rgba(0,0,0,.03);--ifm-table-border-width:1px;--ifm-table-border-color:var(--ifm-color-emphasis-300);--ifm-table-head-background:inherit;--ifm-table-head-color:inherit;--ifm-table-head-font-weight:var(--ifm-font-weight-bold);--ifm-table-cell-color:inherit;--ifm-link-color:var(--ifm-color-primary);--ifm-link-decoration:none;--ifm-link-hover-color:var(--ifm-link-color);--ifm-link-hover-decoration:underline;--ifm-paragraph-margin-bottom:var(--ifm-leading);--ifm-blockquote-font-size:var(--ifm-font-size-base);--ifm-blockquote-border-left-width:2px;--ifm-blockquote-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-blockquote-padding-vertical:0;--ifm-blockquote-shadow:none;--ifm-blockquote-color:var(--ifm-color-emphasis-800);--ifm-blockquote-border-color:var(--ifm-color-emphasis-300);--ifm-hr-background-color:var(--ifm-color-emphasis-500);--ifm-hr-height:1px;--ifm-hr-margin-vertical:1.5rem;--ifm-scrollbar-size:7px;--ifm-scrollbar-track-background-color:#f1f1f1;--ifm-scrollbar-thumb-background-color:silver;--ifm-scrollbar-thumb-hover-background-color:#a7a7a7;--ifm-alert-background-color:inherit;--ifm-alert-border-color:inherit;--ifm-alert-border-radius:var(--ifm-global-radius);--ifm-alert-border-width:0px;--ifm-alert-border-left-width:5px;--ifm-alert-color:var(--ifm-font-color-base);--ifm-alert-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-alert-padding-vertical:var(--ifm-spacing-vertical);--ifm-alert-shadow:var(--ifm-global-shadow-lw);--ifm-avatar-intro-margin:1rem;--ifm-avatar-intro-alignment:inherit;--ifm-avatar-photo-size:3rem;--ifm-badge-background-color:inherit;--ifm-badge-border-color:inherit;--ifm-badge-border-radius:var(--ifm-global-radius);--ifm-badge-border-width:var(--ifm-global-border-width);--ifm-badge-color:var(--ifm-color-white);--ifm-badge-padding-horizontal:calc(var(--ifm-spacing-horizontal)*.5);--ifm-badge-padding-vertical:calc(var(--ifm-spacing-vertical)*.25);--ifm-breadcrumb-border-radius:1.5rem;--ifm-breadcrumb-spacing:.5rem;--ifm-breadcrumb-color-active:var(--ifm-color-primary);--ifm-breadcrumb-item-background-active:var(--ifm-hover-overlay);--ifm-breadcrumb-padding-horizontal:.8rem;--ifm-breadcrumb-padding-vertical:.4rem;--ifm-breadcrumb-size-multiplier:1;--ifm-breadcrumb-separator:url("data:image/svg+xml;utf8,");--ifm-breadcrumb-separator-filter:none;--ifm-breadcrumb-separator-size:.5rem;--ifm-breadcrumb-separator-size-multiplier:1.25;--ifm-button-background-color:inherit;--ifm-button-border-color:var(--ifm-button-background-color);--ifm-button-border-width:var(--ifm-global-border-width);--ifm-button-color:var(--ifm-font-color-base-inverse);--ifm-button-font-weight:var(--ifm-font-weight-bold);--ifm-button-padding-horizontal:1.5rem;--ifm-button-padding-vertical:.375rem;--ifm-button-size-multiplier:1;--ifm-button-transition-duration:var(--ifm-transition-fast);--ifm-button-border-radius:calc(var(--ifm-global-radius)*var(--ifm-button-size-multiplier));--ifm-button-group-spacing:2px;--ifm-card-background-color:var(--ifm-background-surface-color);--ifm-card-border-radius:calc(var(--ifm-global-radius)*2);--ifm-card-horizontal-spacing:var(--ifm-global-spacing);--ifm-card-vertical-spacing:var(--ifm-global-spacing);--ifm-toc-border-color:var(--ifm-color-emphasis-300);--ifm-toc-link-color:var(--ifm-color-content-secondary);--ifm-toc-padding-vertical:.5rem;--ifm-toc-padding-horizontal:.5rem;--ifm-dropdown-background-color:var(--ifm-background-surface-color);--ifm-dropdown-font-weight:var(--ifm-font-weight-semibold);--ifm-dropdown-link-color:var(--ifm-font-color-base);--ifm-dropdown-hover-background-color:var(--ifm-hover-overlay);--ifm-footer-background-color:var(--ifm-color-emphasis-100);--ifm-footer-color:inherit;--ifm-footer-link-color:var(--ifm-color-emphasis-700);--ifm-footer-link-hover-color:var(--ifm-color-primary);--ifm-footer-link-horizontal-spacing:.5rem;--ifm-footer-padding-horizontal:calc(var(--ifm-spacing-horizontal)*2);--ifm-footer-padding-vertical:calc(var(--ifm-spacing-vertical)*2);--ifm-footer-title-color:inherit;--ifm-footer-logo-max-width:min(30rem,90vw);--ifm-hero-background-color:var(--ifm-background-surface-color);--ifm-hero-text-color:var(--ifm-color-emphasis-800);--ifm-menu-color:var(--ifm-color-emphasis-700);--ifm-menu-color-active:var(--ifm-color-primary);--ifm-menu-color-background-active:var(--ifm-hover-overlay);--ifm-menu-color-background-hover:var(--ifm-hover-overlay);--ifm-menu-link-padding-horizontal:.75rem;--ifm-menu-link-padding-vertical:.375rem;--ifm-menu-link-sublist-icon:url("data:image/svg+xml;utf8,");--ifm-menu-link-sublist-icon-filter:none;--ifm-navbar-background-color:var(--ifm-background-surface-color);--ifm-navbar-height:3.75rem;--ifm-navbar-item-padding-horizontal:.75rem;--ifm-navbar-item-padding-vertical:.25rem;--ifm-navbar-link-color:var(--ifm-font-color-base);--ifm-navbar-link-hover-color:var(--ifm-color-primary);--ifm-navbar-link-active-color:var(--ifm-link-color);--ifm-navbar-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-navbar-padding-vertical:calc(var(--ifm-spacing-vertical)*.5);--ifm-navbar-shadow:var(--ifm-global-shadow-lw);--ifm-navbar-search-input-background-color:var(--ifm-color-emphasis-200);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-800);--ifm-navbar-search-input-placeholder-color:var(--ifm-color-emphasis-500);--ifm-navbar-search-input-icon:url("data:image/svg+xml;utf8,");--ifm-navbar-sidebar-width:83vw;--ifm-pagination-border-radius:var(--ifm-global-radius);--ifm-pagination-color-active:var(--ifm-color-primary);--ifm-pagination-font-size:1rem;--ifm-pagination-item-active-background:var(--ifm-hover-overlay);--ifm-pagination-page-spacing:.2em;--ifm-pagination-padding-horizontal:calc(var(--ifm-spacing-horizontal)*1);--ifm-pagination-padding-vertical:calc(var(--ifm-spacing-vertical)*.25);--ifm-pagination-nav-border-radius:var(--ifm-global-radius);--ifm-pagination-nav-color-hover:var(--ifm-color-primary);--ifm-pills-color-active:var(--ifm-color-primary);--ifm-pills-color-background-active:var(--ifm-hover-overlay);--ifm-pills-spacing:.125rem;--ifm-tabs-color:var(--ifm-font-color-secondary);--ifm-tabs-color-active:var(--ifm-color-primary);--ifm-tabs-color-active-border:var(--ifm-tabs-color-active);--ifm-tabs-padding-horizontal:1rem;--ifm-tabs-padding-vertical:1rem}*{box-sizing:border-box}html{background-color:var(--ifm-background-color);color:var(--ifm-font-color-base);color-scheme:var(--ifm-color-scheme);font:var(--ifm-font-size-base)/var(--ifm-line-height-base)var(--ifm-font-family-base);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;text-rendering:optimizelegibility;-webkit-text-size-adjust:100%;text-size-adjust:100%}body{word-wrap:break-word;margin:0}iframe{color-scheme:normal;border:0}.container{max-width:var(--ifm-container-width);padding:0 var(--ifm-spacing-horizontal);width:100%;margin:0 auto}.container--fluid{max-width:inherit}.row{margin:0 calc(var(--ifm-spacing-horizontal)*-1);flex-wrap:wrap;display:flex}.row--no-gutters{margin-left:0;margin-right:0}.row--no-gutters>.col{padding-left:0;padding-right:0}.row--align-top{align-items:flex-start}.row--align-bottom{align-items:flex-end}.row--align-center{align-items:center}.row--align-stretch{align-items:stretch}.row--align-baseline{align-items:baseline}.col{--ifm-col-width:100%;max-width:var(--ifm-col-width);padding:0 var(--ifm-spacing-horizontal);flex:1 0;width:100%;margin-left:0}.col[class*=col--]{flex:0 0 var(--ifm-col-width)}.col--1{--ifm-col-width:calc(1/12*100%)}.col--offset-1{margin-left:8.33333%}.col--2{--ifm-col-width:calc(2/12*100%)}.col--offset-2{margin-left:16.6667%}.col--3{--ifm-col-width:calc(3/12*100%)}.col--offset-3{margin-left:25%}.col--4{--ifm-col-width:calc(4/12*100%)}.col--offset-4{margin-left:33.3333%}.col--5{--ifm-col-width:calc(5/12*100%)}.col--offset-5{margin-left:41.6667%}.col--6{--ifm-col-width:calc(6/12*100%)}.col--offset-6{margin-left:50%}.col--7{--ifm-col-width:calc(7/12*100%)}.col--offset-7{margin-left:58.3333%}.col--8{--ifm-col-width:calc(8/12*100%)}.col--offset-8{margin-left:66.6667%}.col--9{--ifm-col-width:calc(9/12*100%)}.col--offset-9{margin-left:75%}.col--10{--ifm-col-width:calc(10/12*100%)}.col--offset-10{margin-left:83.3333%}.col--11{--ifm-col-width:calc(11/12*100%)}.col--offset-11{margin-left:91.6667%}.col--12{--ifm-col-width:calc(12/12*100%)}.col--offset-12{margin-left:100%}.margin--none{margin:0!important}.margin-top--none{margin-top:0!important}.margin-left--none{margin-left:0!important}.margin-bottom--none{margin-bottom:0!important}.margin-right--none{margin-right:0!important}.margin-vert--none{margin-top:0!important;margin-bottom:0!important}.margin-horiz--none{margin-left:0!important;margin-right:0!important}.margin--xs{margin:.25rem!important}.margin-top--xs{margin-top:.25rem!important}.margin-left--xs{margin-left:.25rem!important}.margin-bottom--xs{margin-bottom:.25rem!important}.margin-right--xs{margin-right:.25rem!important}.margin-vert--xs{margin-top:.25rem!important;margin-bottom:.25rem!important}.margin-horiz--xs{margin-left:.25rem!important;margin-right:.25rem!important}.margin--sm{margin:.5rem!important}.margin-top--sm{margin-top:.5rem!important}.margin-left--sm{margin-left:.5rem!important}.margin-bottom--sm{margin-bottom:.5rem!important}.margin-right--sm{margin-right:.5rem!important}.margin-vert--sm{margin-top:.5rem!important;margin-bottom:.5rem!important}.margin-horiz--sm{margin-left:.5rem!important;margin-right:.5rem!important}.margin--md{margin:1rem!important}.margin-top--md{margin-top:1rem!important}.margin-left--md{margin-left:1rem!important}.margin-bottom--md{margin-bottom:1rem!important}.margin-right--md{margin-right:1rem!important}.margin-vert--md{margin-top:1rem!important;margin-bottom:1rem!important}.margin-horiz--md{margin-left:1rem!important;margin-right:1rem!important}.margin--lg{margin:2rem!important}.margin-top--lg{margin-top:2rem!important}.margin-left--lg{margin-left:2rem!important}.margin-bottom--lg{margin-bottom:2rem!important}.margin-right--lg{margin-right:2rem!important}.margin-vert--lg{margin-top:2rem!important;margin-bottom:2rem!important}.margin-horiz--lg{margin-left:2rem!important;margin-right:2rem!important}.margin--xl{margin:5rem!important}.margin-top--xl{margin-top:5rem!important}.margin-left--xl{margin-left:5rem!important}.margin-bottom--xl{margin-bottom:5rem!important}.margin-right--xl{margin-right:5rem!important}.margin-vert--xl{margin-top:5rem!important;margin-bottom:5rem!important}.margin-horiz--xl{margin-left:5rem!important;margin-right:5rem!important}.padding--none{padding:0!important}.padding-top--none{padding-top:0!important}.padding-left--none{padding-left:0!important}.padding-bottom--none{padding-bottom:0!important}.padding-right--none{padding-right:0!important}.padding-vert--none{padding-top:0!important;padding-bottom:0!important}.padding-horiz--none{padding-left:0!important;padding-right:0!important}.padding--xs{padding:.25rem!important}.padding-top--xs{padding-top:.25rem!important}.padding-left--xs{padding-left:.25rem!important}.padding-bottom--xs{padding-bottom:.25rem!important}.padding-right--xs{padding-right:.25rem!important}.padding-vert--xs{padding-top:.25rem!important;padding-bottom:.25rem!important}.padding-horiz--xs{padding-left:.25rem!important;padding-right:.25rem!important}.padding--sm{padding:.5rem!important}.padding-top--sm{padding-top:.5rem!important}.padding-left--sm{padding-left:.5rem!important}.padding-bottom--sm{padding-bottom:.5rem!important}.padding-right--sm{padding-right:.5rem!important}.padding-vert--sm{padding-top:.5rem!important;padding-bottom:.5rem!important}.padding-horiz--sm{padding-left:.5rem!important;padding-right:.5rem!important}.padding--md{padding:1rem!important}.padding-top--md{padding-top:1rem!important}.padding-left--md{padding-left:1rem!important}.padding-bottom--md{padding-bottom:1rem!important}.padding-right--md{padding-right:1rem!important}.padding-vert--md{padding-top:1rem!important;padding-bottom:1rem!important}.padding-horiz--md{padding-left:1rem!important;padding-right:1rem!important}.padding--lg{padding:2rem!important}.padding-top--lg{padding-top:2rem!important}.padding-left--lg{padding-left:2rem!important}.padding-bottom--lg{padding-bottom:2rem!important}.padding-right--lg{padding-right:2rem!important}.padding-vert--lg{padding-top:2rem!important;padding-bottom:2rem!important}.padding-horiz--lg{padding-left:2rem!important;padding-right:2rem!important}.padding--xl{padding:5rem!important}.padding-top--xl{padding-top:5rem!important}.padding-left--xl{padding-left:5rem!important}.padding-bottom--xl{padding-bottom:5rem!important}.padding-right--xl{padding-right:5rem!important}.padding-vert--xl{padding-top:5rem!important;padding-bottom:5rem!important}.padding-horiz--xl{padding-left:5rem!important;padding-right:5rem!important}code{background-color:var(--ifm-code-background);border-radius:var(--ifm-code-border-radius);font-family:var(--ifm-font-family-monospace);font-size:var(--ifm-code-font-size);padding:var(--ifm-code-padding-vertical)var(--ifm-code-padding-horizontal);vertical-align:middle;border:.1rem solid rgba(0,0,0,.1)}a code{color:inherit}pre{background-color:var(--ifm-pre-background);border-radius:var(--ifm-pre-border-radius);color:var(--ifm-pre-color);font:var(--ifm-code-font-size)/var(--ifm-pre-line-height)var(--ifm-font-family-monospace);margin:0 0 var(--ifm-spacing-vertical);padding:var(--ifm-pre-padding);overflow:auto}pre code{font-size:100%;line-height:inherit;background-color:transparent;border:none;padding:0}kbd{background-color:var(--ifm-color-emphasis-0);border:1px solid var(--ifm-color-emphasis-400);box-shadow:inset 0 -1px 0 var(--ifm-color-emphasis-400);color:var(--ifm-color-emphasis-800);font:80% var(--ifm-font-family-monospace);border-radius:.2rem;padding:.15rem .3rem}h1,h2,h3,h4,h5,h6{color:var(--ifm-heading-color);font-family:var(--ifm-heading-font-family);font-weight:var(--ifm-heading-font-weight);line-height:var(--ifm-heading-line-height);margin:var(--ifm-heading-margin-top)0 var(--ifm-heading-margin-bottom)0}h1{font-size:var(--ifm-h1-font-size)}h2{font-size:var(--ifm-h2-font-size)}h3{font-size:var(--ifm-h3-font-size)}h4{font-size:var(--ifm-h4-font-size)}h5{font-size:var(--ifm-h5-font-size)}h6{font-size:var(--ifm-h6-font-size)}img{max-width:100%}img[align=right]{padding-left:var(--image-alignment-padding)}img[align=left]{padding-right:var(--image-alignment-padding)}.markdown{--ifm-h1-vertical-rhythm-top:3;--ifm-h2-vertical-rhythm-top:2;--ifm-h3-vertical-rhythm-top:1.5;--ifm-heading-vertical-rhythm-top:1.25;--ifm-h1-vertical-rhythm-bottom:1.25;--ifm-heading-vertical-rhythm-bottom:1}.markdown:before{content:"";display:table}.markdown:after{clear:both;content:"";display:table}.markdown>:last-child{margin-bottom:0!important}.markdown h1:first-child{--ifm-h1-font-size:3rem;margin-bottom:calc(var(--ifm-h1-vertical-rhythm-bottom)*var(--ifm-leading))}.markdown>h2{--ifm-h2-font-size:2rem;margin-bottom:calc(var(--ifm-heading-vertical-rhythm-bottom)*var(--ifm-leading));margin-top:calc(var(--ifm-h2-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h3{--ifm-h3-font-size:1.5rem;margin-bottom:calc(var(--ifm-heading-vertical-rhythm-bottom)*var(--ifm-leading));margin-top:calc(var(--ifm-h3-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h4,.markdown>h5,.markdown>h6{margin-bottom:calc(var(--ifm-heading-vertical-rhythm-bottom)*var(--ifm-leading));margin-top:calc(var(--ifm-heading-vertical-rhythm-top)*var(--ifm-leading))}.markdown>pre,.markdown>ul,.markdown>p{margin-bottom:var(--ifm-leading)}.markdown li{word-wrap:break-word}.markdown li>p{margin-top:var(--ifm-list-paragraph-margin)}.markdown li+li{margin-top:var(--ifm-list-item-margin)}ul,ol{margin:0 0 var(--ifm-list-margin);padding-left:var(--ifm-list-left-padding)}ol ol,ul ol{list-style-type:lower-roman}ul ul,ul ol,ol ol,ol ul{margin:0}ul ul ol,ul ol ol,ol ul ol,ol ol ol{list-style-type:lower-alpha}table{border-collapse:collapse;margin-bottom:var(--ifm-spacing-vertical);display:block;overflow:auto}table thead tr{border-bottom:2px solid var(--ifm-table-border-color)}table thead{background-color:var(--ifm-table-stripe-background)}table tr{background-color:var(--ifm-table-background);border-top:var(--ifm-table-border-width)solid var(--ifm-table-border-color)}table tr:nth-child(2n){background-color:var(--ifm-table-stripe-background)}table th,table td{border:var(--ifm-table-border-width)solid var(--ifm-table-border-color);padding:var(--ifm-table-cell-padding)}table th{background-color:var(--ifm-table-head-background);color:var(--ifm-table-head-color);font-weight:var(--ifm-table-head-font-weight)}table td{color:var(--ifm-table-cell-color)}strong{font-weight:var(--ifm-font-weight-bold)}a{color:var(--ifm-link-color);-webkit-text-decoration:var(--ifm-link-decoration);text-decoration:var(--ifm-link-decoration);transition:color var(--ifm-transition-fast)var(--ifm-transition-timing-default)}a:hover{color:var(--ifm-link-hover-color);-webkit-text-decoration:var(--ifm-link-hover-decoration);text-decoration:var(--ifm-link-hover-decoration)}a:not([href]){-webkit-text-decoration:none;text-decoration:none}p{margin:0 0 var(--ifm-paragraph-margin-bottom)}blockquote{border-left:var(--ifm-blockquote-border-left-width)solid var(--ifm-blockquote-border-color);box-shadow:var(--ifm-blockquote-shadow);color:var(--ifm-blockquote-color);font-size:var(--ifm-blockquote-font-size);margin:0 0 var(--ifm-spacing-vertical);padding:var(--ifm-blockquote-padding-vertical)var(--ifm-blockquote-padding-horizontal)}blockquote>:first-child{margin-top:0}blockquote>:last-child{margin-bottom:0}hr{background-color:var(--ifm-hr-background-color);height:var(--ifm-hr-height);margin:var(--ifm-hr-margin-vertical)0;border:0}.shadow--lw{box-shadow:var(--ifm-global-shadow-lw)!important}.shadow--md{box-shadow:var(--ifm-global-shadow-md)!important}.shadow--tl{box-shadow:var(--ifm-global-shadow-tl)!important}.text--primary{color:var(--ifm-color-primary)}.text--secondary{color:var(--ifm-color-secondary)}.text--success{color:var(--ifm-color-success)}.text--info{color:var(--ifm-color-info)}.text--warning{color:var(--ifm-color-warning)}.text--danger{color:var(--ifm-color-danger)}.text--center{text-align:center}.text--left{text-align:left}.text--justify{text-align:justify}.text--right{text-align:right}.text--capitalize{text-transform:capitalize}.text--lowercase{text-transform:lowercase}.text--uppercase{text-transform:uppercase}.text--light{font-weight:var(--ifm-font-weight-light)}.text--normal{font-weight:var(--ifm-font-weight-normal)}.text--semibold{font-weight:var(--ifm-font-weight-semibold)}.text--bold{font-weight:var(--ifm-font-weight-bold)}.text--italic{font-style:italic}.text--truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.text--break{word-wrap:break-word!important;word-break:break-word!important}.text--no-decoration,.text--no-decoration:hover{-webkit-text-decoration:none;text-decoration:none}.clean-btn{color:inherit;cursor:pointer;background:0 0;border:none;padding:0;font-family:inherit}.clean-list{padding-left:0;list-style:none}.alert--primary{--ifm-alert-background-color:var(--ifm-color-primary-contrast-background);--ifm-alert-background-color-highlight:rgba(53,120,229,.15);--ifm-alert-foreground-color:var(--ifm-color-primary-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-primary-dark)}.alert--secondary{--ifm-alert-background-color:var(--ifm-color-secondary-contrast-background);--ifm-alert-background-color-highlight:rgba(235,237,240,.15);--ifm-alert-foreground-color:var(--ifm-color-secondary-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-secondary-dark)}.alert--success{--ifm-alert-background-color:var(--ifm-color-success-contrast-background);--ifm-alert-background-color-highlight:rgba(0,164,0,.15);--ifm-alert-foreground-color:var(--ifm-color-success-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-success-dark)}.alert--info{--ifm-alert-background-color:var(--ifm-color-info-contrast-background);--ifm-alert-background-color-highlight:rgba(84,199,236,.15);--ifm-alert-foreground-color:var(--ifm-color-info-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-info-dark)}.alert--warning{--ifm-alert-background-color:var(--ifm-color-warning-contrast-background);--ifm-alert-background-color-highlight:rgba(255,186,0,.15);--ifm-alert-foreground-color:var(--ifm-color-warning-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-warning-dark)}.alert--danger{--ifm-alert-background-color:var(--ifm-color-danger-contrast-background);--ifm-alert-background-color-highlight:rgba(250,56,62,.15);--ifm-alert-foreground-color:var(--ifm-color-danger-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-danger-dark)}.alert{--ifm-code-background:var(--ifm-alert-background-color-highlight);--ifm-link-color:var(--ifm-alert-foreground-color);--ifm-link-hover-color:var(--ifm-alert-foreground-color);--ifm-link-decoration:underline;--ifm-tabs-color:var(--ifm-alert-foreground-color);--ifm-tabs-color-active:var(--ifm-alert-foreground-color);--ifm-tabs-color-active-border:var(--ifm-alert-border-color);background-color:var(--ifm-alert-background-color);border:var(--ifm-alert-border-width)solid var(--ifm-alert-border-color);border-left-width:var(--ifm-alert-border-left-width);border-radius:var(--ifm-alert-border-radius);box-shadow:var(--ifm-alert-shadow);color:var(--ifm-alert-foreground-color);padding:var(--ifm-alert-padding-vertical)var(--ifm-alert-padding-horizontal)}.alert__heading{font:bold var(--ifm-h5-font-size)/var(--ifm-heading-line-height)var(--ifm-heading-font-family);text-transform:uppercase;align-items:center;margin-bottom:.5rem;display:flex}.alert__icon{margin-right:.4em;display:inline-flex}.alert__icon svg{fill:var(--ifm-alert-foreground-color);stroke:var(--ifm-alert-foreground-color);stroke-width:0}.alert .close{color:var(--ifm-alert-foreground-color);margin:calc(var(--ifm-alert-padding-vertical)*-1)calc(var(--ifm-alert-padding-horizontal)*-1)0 0;opacity:.75}.alert .close:hover,.alert .close:focus{opacity:1}.alert a{-webkit-text-decoration-color:var(--ifm-alert-border-color);text-decoration-color:var(--ifm-alert-border-color)}.alert a:hover{text-decoration-thickness:2px}.avatar{column-gap:var(--ifm-avatar-intro-margin);display:flex}.avatar__photo{height:var(--ifm-avatar-photo-size);width:var(--ifm-avatar-photo-size);border-radius:50%;display:block;overflow:hidden}.avatar__photo--sm{--ifm-avatar-photo-size:2rem}.avatar__photo--lg{--ifm-avatar-photo-size:4rem}.avatar__photo--xl{--ifm-avatar-photo-size:6rem}.avatar__intro{text-align:var(--ifm-avatar-intro-alignment);flex-direction:column;flex:1;justify-content:center;display:flex}.avatar__name{font:bold var(--ifm-h4-font-size)/var(--ifm-heading-line-height)var(--ifm-font-family-base)}.avatar__subtitle{margin-top:.25rem}.avatar--vertical{--ifm-avatar-intro-alignment:center;--ifm-avatar-intro-margin:.5rem;flex-direction:column;align-items:center}.badge{background-color:var(--ifm-badge-background-color);border:var(--ifm-badge-border-width)solid var(--ifm-badge-border-color);border-radius:var(--ifm-badge-border-radius);color:var(--ifm-badge-color);font-size:75%;font-weight:var(--ifm-font-weight-bold);padding:var(--ifm-badge-padding-vertical)var(--ifm-badge-padding-horizontal);line-height:1;display:inline-block}.badge--primary{--ifm-badge-background-color:var(--ifm-color-primary);--ifm-badge-border-color:var(--ifm-badge-background-color)}.badge--secondary{--ifm-badge-background-color:var(--ifm-color-secondary);--ifm-badge-border-color:var(--ifm-badge-background-color);color:var(--ifm-color-black)}.badge--success{--ifm-badge-background-color:var(--ifm-color-success);--ifm-badge-border-color:var(--ifm-badge-background-color)}.badge--info{--ifm-badge-background-color:var(--ifm-color-info);--ifm-badge-border-color:var(--ifm-badge-background-color)}.badge--warning{--ifm-badge-background-color:var(--ifm-color-warning);--ifm-badge-border-color:var(--ifm-badge-background-color)}.badge--danger{--ifm-badge-background-color:var(--ifm-color-danger);--ifm-badge-border-color:var(--ifm-badge-background-color)}.breadcrumbs{margin-bottom:0;padding-left:0}.breadcrumbs__item{display:inline-block}.breadcrumbs__item:not(:last-child):after{background:var(--ifm-breadcrumb-separator)center;content:" ";filter:var(--ifm-breadcrumb-separator-filter);height:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier));margin:0 var(--ifm-breadcrumb-spacing);opacity:.5;width:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier));display:inline-block}.breadcrumbs__item--active .breadcrumbs__link{background:var(--ifm-breadcrumb-item-background-active);color:var(--ifm-breadcrumb-color-active)}.breadcrumbs__link{border-radius:var(--ifm-breadcrumb-border-radius);color:var(--ifm-font-color-base);font-size:calc(1rem*var(--ifm-breadcrumb-size-multiplier));padding:calc(var(--ifm-breadcrumb-padding-vertical)*var(--ifm-breadcrumb-size-multiplier))calc(var(--ifm-breadcrumb-padding-horizontal)*var(--ifm-breadcrumb-size-multiplier));transition-property:background,color;transition-duration:var(--ifm-transition-fast);transition-timing-function:var(--ifm-transition-timing-default);display:inline-block}.breadcrumbs__link:link:hover,.breadcrumbs__link:visited:hover,area[href].breadcrumbs__link:hover{background:var(--ifm-breadcrumb-item-background-active);-webkit-text-decoration:none;text-decoration:none}.breadcrumbs__link:any-link:hover{background:var(--ifm-breadcrumb-item-background-active);-webkit-text-decoration:none;text-decoration:none}.breadcrumbs--sm{--ifm-breadcrumb-size-multiplier:.8}.breadcrumbs--lg{--ifm-breadcrumb-size-multiplier:1.2}.button{background-color:var(--ifm-button-background-color);border:var(--ifm-button-border-width)solid var(--ifm-button-border-color);border-radius:var(--ifm-button-border-radius);color:var(--ifm-button-color);cursor:pointer;font-size:calc(.875rem*var(--ifm-button-size-multiplier));font-weight:var(--ifm-button-font-weight);padding:calc(var(--ifm-button-padding-vertical)*var(--ifm-button-size-multiplier))calc(var(--ifm-button-padding-horizontal)*var(--ifm-button-size-multiplier));text-align:center;-webkit-user-select:none;user-select:none;vertical-align:middle;white-space:nowrap;transition-property:color,background,border-color;transition-duration:var(--ifm-button-transition-duration);transition-timing-function:var(--ifm-transition-timing-default);line-height:1.5;display:inline-block}.button:hover{color:var(--ifm-button-color);-webkit-text-decoration:none;text-decoration:none}.button--outline{--ifm-button-background-color:transparent;--ifm-button-color:var(--ifm-button-border-color)}.button--outline:hover{--ifm-button-background-color:var(--ifm-button-border-color)}.button--outline:hover,.button--outline:active,.button--outline.button--active{--ifm-button-color:var(--ifm-font-color-base-inverse)}.button--link{--ifm-button-background-color:transparent;--ifm-button-border-color:transparent;color:var(--ifm-link-color);-webkit-text-decoration:var(--ifm-link-decoration);text-decoration:var(--ifm-link-decoration)}.button--link:hover,.button--link:active,.button--link.button--active{color:var(--ifm-link-hover-color);-webkit-text-decoration:var(--ifm-link-hover-decoration);text-decoration:var(--ifm-link-hover-decoration)}.button.disabled,.button:disabled,.button[disabled]{opacity:.65;pointer-events:none}.button--sm{--ifm-button-size-multiplier:.8}.button--lg{--ifm-button-size-multiplier:1.35}.button--block{width:100%;display:block}.button.button--secondary{color:var(--ifm-color-gray-900)}.button.button--secondary.button--outline:not(.button--active):not(:hover){color:var(--ifm-font-color-base)}:where(.button--primary){--ifm-button-background-color:var(--ifm-color-primary);--ifm-button-border-color:var(--ifm-color-primary)}:where(.button--primary):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-primary-dark);--ifm-button-border-color:var(--ifm-color-primary-dark)}.button--primary:active,.button--primary.button--active{--ifm-button-background-color:var(--ifm-color-primary-darker);--ifm-button-border-color:var(--ifm-color-primary-darker)}:where(.button--secondary){--ifm-button-background-color:var(--ifm-color-secondary);--ifm-button-border-color:var(--ifm-color-secondary)}:where(.button--secondary):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-secondary-dark);--ifm-button-border-color:var(--ifm-color-secondary-dark)}.button--secondary:active,.button--secondary.button--active{--ifm-button-background-color:var(--ifm-color-secondary-darker);--ifm-button-border-color:var(--ifm-color-secondary-darker)}:where(.button--success){--ifm-button-background-color:var(--ifm-color-success);--ifm-button-border-color:var(--ifm-color-success)}:where(.button--success):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-success-dark);--ifm-button-border-color:var(--ifm-color-success-dark)}.button--success:active,.button--success.button--active{--ifm-button-background-color:var(--ifm-color-success-darker);--ifm-button-border-color:var(--ifm-color-success-darker)}:where(.button--info){--ifm-button-background-color:var(--ifm-color-info);--ifm-button-border-color:var(--ifm-color-info)}:where(.button--info):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-info-dark);--ifm-button-border-color:var(--ifm-color-info-dark)}.button--info:active,.button--info.button--active{--ifm-button-background-color:var(--ifm-color-info-darker);--ifm-button-border-color:var(--ifm-color-info-darker)}:where(.button--warning){--ifm-button-background-color:var(--ifm-color-warning);--ifm-button-border-color:var(--ifm-color-warning)}:where(.button--warning):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-warning-dark);--ifm-button-border-color:var(--ifm-color-warning-dark)}.button--warning:active,.button--warning.button--active{--ifm-button-background-color:var(--ifm-color-warning-darker);--ifm-button-border-color:var(--ifm-color-warning-darker)}:where(.button--danger){--ifm-button-background-color:var(--ifm-color-danger);--ifm-button-border-color:var(--ifm-color-danger)}:where(.button--danger):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-danger-dark);--ifm-button-border-color:var(--ifm-color-danger-dark)}.button--danger:active,.button--danger.button--active{--ifm-button-background-color:var(--ifm-color-danger-darker);--ifm-button-border-color:var(--ifm-color-danger-darker)}.button-group{gap:var(--ifm-button-group-spacing);display:inline-flex}.button-group>.button:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.button-group>.button:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.button-group--block{justify-content:stretch;display:flex}.button-group--block>.button{flex-grow:1}.card{background-color:var(--ifm-card-background-color);border-radius:var(--ifm-card-border-radius);box-shadow:var(--ifm-global-shadow-lw);flex-direction:column;display:flex;overflow:hidden}.card--full-height{height:100%}.card__image{padding-top:var(--ifm-card-vertical-spacing)}.card__image:first-child{padding-top:0}.card__header,.card__body,.card__footer{padding:var(--ifm-card-vertical-spacing)var(--ifm-card-horizontal-spacing)}.card__header:not(:last-child),.card__body:not(:last-child),.card__footer:not(:last-child){padding-bottom:0}.card__header>:last-child,.card__body>:last-child,.card__footer>:last-child{margin-bottom:0}.card__footer{margin-top:auto}.table-of-contents{padding:var(--ifm-toc-padding-vertical)0;margin-bottom:0;font-size:.8rem}.table-of-contents,.table-of-contents ul{padding-left:var(--ifm-toc-padding-horizontal);list-style:none}.table-of-contents li{margin:var(--ifm-toc-padding-vertical)var(--ifm-toc-padding-horizontal)}.table-of-contents__left-border{border-left:1px solid var(--ifm-toc-border-color)}.table-of-contents__link{color:var(--ifm-toc-link-color);display:block}.table-of-contents__link:hover,.table-of-contents__link:hover code,.table-of-contents__link--active,.table-of-contents__link--active code{color:var(--ifm-color-primary);-webkit-text-decoration:none;text-decoration:none}.close{color:var(--ifm-color-black);float:right;font-size:1.5rem;font-weight:var(--ifm-font-weight-bold);opacity:.5;transition:opacity var(--ifm-transition-fast)var(--ifm-transition-timing-default);padding:1rem;line-height:1}.close:hover{opacity:.7}.close:focus{opacity:.8}.dropdown{font-weight:var(--ifm-dropdown-font-weight);vertical-align:top;display:inline-flex;position:relative}.dropdown--hoverable:hover .dropdown__menu,.dropdown--show .dropdown__menu{opacity:1;pointer-events:all;visibility:visible;transform:translateY(-1px)}.dropdown--right .dropdown__menu{left:inherit;right:0}.dropdown--nocaret .navbar__link:after{content:none!important}.dropdown__menu{background-color:var(--ifm-dropdown-background-color);border-radius:var(--ifm-global-radius);box-shadow:var(--ifm-global-shadow-md);opacity:0;pointer-events:none;min-width:10rem;max-height:80vh;left:0;top:calc(100% - var(--ifm-navbar-item-padding-vertical) + .3rem);visibility:hidden;z-index:var(--ifm-z-index-dropdown);transition-property:opacity,transform,visibility;transition-duration:var(--ifm-transition-fast);transition-timing-function:var(--ifm-transition-timing-default);padding:.5rem;list-style:none;position:absolute;overflow-y:auto;transform:translateY(-.625rem)}.dropdown__link{color:var(--ifm-dropdown-link-color);white-space:nowrap;border-radius:.25rem;margin-top:.2rem;padding:.25rem .5rem;font-size:.875rem;display:block}.dropdown__link:hover,.dropdown__link--active{background-color:var(--ifm-dropdown-hover-background-color);color:var(--ifm-dropdown-link-color);-webkit-text-decoration:none;text-decoration:none}.dropdown__link--active,.dropdown__link--active:hover{--ifm-dropdown-link-color:var(--ifm-link-color)}.dropdown>.navbar__link:after{content:"";border:.4em solid transparent;border-top-color:currentColor;border-bottom:0 solid;margin-left:.3em;display:inline-block;position:relative;top:2px;transform:translateY(-50%)}.footer{background-color:var(--ifm-footer-background-color);color:var(--ifm-footer-color);padding:var(--ifm-footer-padding-vertical)var(--ifm-footer-padding-horizontal)}.footer--dark{--ifm-footer-background-color:#303846;--ifm-footer-color:var(--ifm-footer-link-color);--ifm-footer-link-color:var(--ifm-color-secondary);--ifm-footer-title-color:var(--ifm-color-white)}.footer__links{margin-bottom:1rem}.footer__link-item{color:var(--ifm-footer-link-color);line-height:2}.footer__link-item:hover{color:var(--ifm-footer-link-hover-color)}.footer__link-separator{margin:0 var(--ifm-footer-link-horizontal-spacing)}.footer__logo{max-width:var(--ifm-footer-logo-max-width);margin-top:1rem}.footer__title{color:var(--ifm-footer-title-color);font:bold var(--ifm-h4-font-size)/var(--ifm-heading-line-height)var(--ifm-font-family-base);margin-bottom:var(--ifm-heading-margin-bottom)}.footer__item{margin-top:0}.footer__items{margin-bottom:0}[type=checkbox]{padding:0}.hero{background-color:var(--ifm-hero-background-color);color:var(--ifm-hero-text-color);align-items:center;padding:4rem 2rem;display:flex}.hero--primary{--ifm-hero-background-color:var(--ifm-color-primary);--ifm-hero-text-color:var(--ifm-font-color-base-inverse)}.hero--dark{--ifm-hero-background-color:#303846;--ifm-hero-text-color:var(--ifm-color-white)}.hero__title{font-size:3rem}.hero__subtitle{font-size:1.5rem}.menu{font-weight:var(--ifm-font-weight-semibold);overflow-x:hidden}.menu__list{margin:0;padding-left:0;list-style:none}.menu__list .menu__list{padding-left:var(--ifm-menu-link-padding-horizontal);flex:0 0 100%;margin-top:.25rem}.menu__list-item:not(:first-child){margin-top:.25rem}.menu__list-item--collapsed .menu__list{height:0;overflow:hidden}.menu__list-item--collapsed .menu__link--sublist:after,.menu__list-item--collapsed .menu__caret:before{transform:rotate(90deg)}.menu__list-item-collapsible{transition:background var(--ifm-transition-fast)var(--ifm-transition-timing-default);border-radius:.25rem;flex-wrap:wrap;display:flex;position:relative}.menu__list-item-collapsible:hover,.menu__list-item-collapsible--active{background:var(--ifm-menu-color-background-hover)}.menu__list-item-collapsible .menu__link:hover,.menu__list-item-collapsible .menu__link--active{background:0 0!important}.menu__link,.menu__caret{transition:background var(--ifm-transition-fast)var(--ifm-transition-timing-default);border-radius:.25rem;align-items:center;display:flex}.menu__link:hover,.menu__caret:hover{background:var(--ifm-menu-color-background-hover)}.menu__link{color:var(--ifm-menu-color);padding:var(--ifm-menu-link-padding-vertical)var(--ifm-menu-link-padding-horizontal);flex:1;line-height:1.25}.menu__link:hover{color:var(--ifm-menu-color);transition:color var(--ifm-transition-fast)var(--ifm-transition-timing-default);-webkit-text-decoration:none;text-decoration:none}.menu__link--sublist-caret:after{content:"";background:var(--ifm-menu-link-sublist-icon)50%/2rem 2rem;min-width:1.25rem;filter:var(--ifm-menu-link-sublist-icon-filter);width:1.25rem;height:1.25rem;transition:transform var(--ifm-transition-fast)linear;margin-left:auto;transform:rotate(180deg)}.menu__link--active,.menu__link--active:hover{color:var(--ifm-menu-color-active)}.menu__link--active:not(.menu__link--sublist){background-color:var(--ifm-menu-color-background-active)}.menu__caret{padding:var(--ifm-menu-link-padding-vertical)var(--ifm-menu-link-padding-horizontal)}.menu__caret:before{content:"";background:var(--ifm-menu-link-sublist-icon)50%/2rem 2rem;filter:var(--ifm-menu-link-sublist-icon-filter);width:1.25rem;height:1.25rem;transition:transform var(--ifm-transition-fast)linear;transform:rotate(180deg)}html[data-theme=dark],.navbar--dark{--ifm-menu-link-sublist-icon-filter:invert(100%)sepia(94%)saturate(17%)hue-rotate(223deg)brightness(104%)contrast(98%)}.navbar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-navbar-shadow);height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical)var(--ifm-navbar-padding-horizontal);display:flex}.navbar>.container,.navbar>.container-fluid{display:flex}.navbar--fixed-top{z-index:var(--ifm-z-index-fixed);position:sticky;top:0}.navbar__inner{flex-wrap:wrap;justify-content:space-between;width:100%;display:flex}.navbar__brand{color:var(--ifm-navbar-link-color);align-items:center;min-width:0;margin-right:1rem;display:flex}.navbar__brand:hover{color:var(--ifm-navbar-link-hover-color);-webkit-text-decoration:none;text-decoration:none}.navbar__title{flex:auto}.navbar__toggle{margin-right:.5rem;display:none}.navbar__logo{flex:none;height:2rem;margin-right:.5rem}.navbar__logo img{height:100%}.navbar__items{flex:1;align-items:center;min-width:0;display:flex}.navbar__items--center{flex:none}.navbar__items--center .navbar__brand{margin:0}.navbar__items--center+.navbar__items--right{flex:1}.navbar__items--right{flex:none;justify-content:flex-end}.navbar__items--right>:last-child{padding-right:0}.navbar__item{padding:var(--ifm-navbar-item-padding-vertical)var(--ifm-navbar-item-padding-horizontal);display:inline-block}.navbar__item.dropdown .navbar__link:not([href]){pointer-events:none}.navbar__link{color:var(--ifm-navbar-link-color);font-weight:var(--ifm-font-weight-semibold)}.navbar__link:hover,.navbar__link--active{color:var(--ifm-navbar-link-hover-color);-webkit-text-decoration:none;text-decoration:none}.navbar--dark,.navbar--primary{--ifm-menu-color:var(--ifm-color-gray-300);--ifm-navbar-link-color:var(--ifm-color-gray-100);--ifm-navbar-search-input-background-color:rgba(255,255,255,.1);--ifm-navbar-search-input-placeholder-color:rgba(255,255,255,.5);color:var(--ifm-color-white)}.navbar--dark{--ifm-navbar-background-color:#242526;--ifm-navbar-link-hover-color:var(--ifm-color-primary);--ifm-menu-color-background-active:rgba(255,255,255,.05);--ifm-navbar-search-input-color:var(--ifm-color-white)}.navbar--primary{--ifm-navbar-background-color:var(--ifm-color-primary);--ifm-navbar-link-hover-color:var(--ifm-color-white);--ifm-menu-color-active:var(--ifm-color-white);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-500)}.navbar__search-input{appearance:none;background:var(--ifm-navbar-search-input-background-color)var(--ifm-navbar-search-input-icon)no-repeat .75rem center/1rem 1rem;color:var(--ifm-navbar-search-input-color);cursor:text;border:none;border-radius:2rem;width:12.5rem;height:2rem;padding:0 .5rem 0 2.25rem;font-size:1rem;display:inline-block}.navbar__search-input::placeholder{color:var(--ifm-navbar-search-input-placeholder-color)}.navbar-sidebar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-global-shadow-md);opacity:0;visibility:hidden;width:var(--ifm-navbar-sidebar-width);transition-property:opacity,visibility,transform;transition-duration:var(--ifm-transition-fast);transition-timing-function:ease-in-out;position:fixed;top:0;bottom:0;left:0;overflow-x:hidden;transform:translate(-100%)}.navbar-sidebar--show .navbar-sidebar,.navbar-sidebar--show .navbar-sidebar__backdrop{opacity:1;visibility:visible}.navbar-sidebar--show .navbar-sidebar{transform:translate(0,0)}.navbar-sidebar__backdrop{opacity:0;visibility:hidden;transition-property:opacity,visibility;transition-duration:var(--ifm-transition-fast);background-color:rgba(0,0,0,.6);transition-timing-function:ease-in-out;position:fixed;inset:0}.navbar-sidebar__brand{box-shadow:var(--ifm-navbar-shadow);height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical)var(--ifm-navbar-padding-horizontal);flex:1;align-items:center;display:flex}.navbar-sidebar__items{height:calc(100% - var(--ifm-navbar-height));transition:transform var(--ifm-transition-fast)ease-in-out;display:flex;transform:translateZ(0)}.navbar-sidebar__items--show-secondary{transform:translate3d(calc((var(--ifm-navbar-sidebar-width))*-1),0,0)}.navbar-sidebar__item{width:calc(var(--ifm-navbar-sidebar-width));flex-shrink:0;padding:.5rem}.navbar-sidebar__back{background:var(--ifm-menu-color-background-active);font-size:15px;font-weight:var(--ifm-button-font-weight);text-align:left;width:calc(100% + 1rem);margin:0 0 .2rem -.5rem;padding:.6rem 1.5rem;position:relative;top:-.5rem}.navbar-sidebar__close{margin-left:auto;display:flex}.pagination{column-gap:var(--ifm-pagination-page-spacing);font-size:var(--ifm-pagination-font-size);padding-left:0;display:flex}.pagination--sm{--ifm-pagination-font-size:.8rem;--ifm-pagination-padding-horizontal:.8rem;--ifm-pagination-padding-vertical:.2rem}.pagination--lg{--ifm-pagination-font-size:1.2rem;--ifm-pagination-padding-horizontal:1.2rem;--ifm-pagination-padding-vertical:.3rem}.pagination__item{display:inline-flex}.pagination__item>span{padding:var(--ifm-pagination-padding-vertical)}.pagination__item--active .pagination__link{background:var(--ifm-pagination-item-active-background);color:var(--ifm-pagination-color-active)}.pagination__item:not(.pagination__item--active):hover .pagination__link{background:var(--ifm-pagination-item-active-background)}.pagination__item--disabled,.pagination__item[disabled]{opacity:.25;pointer-events:none}.pagination__link{border-radius:var(--ifm-pagination-border-radius);color:var(--ifm-font-color-base);padding:var(--ifm-pagination-padding-vertical)var(--ifm-pagination-padding-horizontal);transition:background var(--ifm-transition-fast)var(--ifm-transition-timing-default);display:inline-block}.pagination__link:hover{-webkit-text-decoration:none;text-decoration:none}.pagination-nav{grid-gap:var(--ifm-spacing-horizontal);gap:var(--ifm-spacing-horizontal);grid-template-columns:repeat(2,1fr);display:grid}.pagination-nav__link{border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-pagination-nav-border-radius);height:100%;line-height:var(--ifm-heading-line-height);padding:var(--ifm-global-spacing);transition:border-color var(--ifm-transition-fast)var(--ifm-transition-timing-default);display:block}.pagination-nav__link:hover{border-color:var(--ifm-pagination-nav-color-hover);-webkit-text-decoration:none;text-decoration:none}.pagination-nav__link--next{text-align:right;grid-column:2/3}.pagination-nav__label{font-size:var(--ifm-h4-font-size);font-weight:var(--ifm-heading-font-weight);word-break:break-word}.pagination-nav__link--prev .pagination-nav__label:before{content:"« "}.pagination-nav__link--next .pagination-nav__label:after{content:" »"}.pagination-nav__sublabel{color:var(--ifm-color-content-secondary);font-size:var(--ifm-h5-font-size);font-weight:var(--ifm-font-weight-semibold);margin-bottom:.25rem}.pills{gap:var(--ifm-pills-spacing);padding-left:0;display:flex}.pills__item{cursor:pointer;font-weight:var(--ifm-font-weight-bold);transition:background var(--ifm-transition-fast)var(--ifm-transition-timing-default);border-radius:.5rem;padding:.25rem 1rem;display:inline-block}.pills__item--active{background:var(--ifm-pills-color-background-active);color:var(--ifm-pills-color-active)}.pills__item:not(.pills__item--active):hover{background:var(--ifm-pills-color-background-active)}.pills--block{justify-content:stretch}.pills--block .pills__item{text-align:center;flex-grow:1}.tabs{color:var(--ifm-tabs-color);font-weight:var(--ifm-font-weight-bold);margin-bottom:0;padding-left:0;display:flex;overflow-x:auto}.tabs__item{border-radius:var(--ifm-global-radius);cursor:pointer;padding:var(--ifm-tabs-padding-vertical)var(--ifm-tabs-padding-horizontal);transition:background-color var(--ifm-transition-fast)var(--ifm-transition-timing-default);border-bottom:3px solid transparent;display:inline-flex}.tabs__item--active{border-bottom-color:var(--ifm-tabs-color-active-border);color:var(--ifm-tabs-color-active);border-bottom-right-radius:0;border-bottom-left-radius:0}.tabs__item:hover{background-color:var(--ifm-hover-overlay)}.tabs--block{justify-content:stretch}.tabs--block .tabs__item{flex-grow:1;justify-content:center}html[data-theme=dark]{--ifm-color-scheme:dark;--ifm-color-emphasis-0:var(--ifm-color-gray-1000);--ifm-color-emphasis-100:var(--ifm-color-gray-900);--ifm-color-emphasis-200:var(--ifm-color-gray-800);--ifm-color-emphasis-300:var(--ifm-color-gray-700);--ifm-color-emphasis-400:var(--ifm-color-gray-600);--ifm-color-emphasis-500:var(--ifm-color-gray-500);--ifm-color-emphasis-600:var(--ifm-color-gray-400);--ifm-color-emphasis-700:var(--ifm-color-gray-300);--ifm-color-emphasis-800:var(--ifm-color-gray-200);--ifm-color-emphasis-900:var(--ifm-color-gray-100);--ifm-color-emphasis-1000:var(--ifm-color-gray-0);--ifm-background-color:#1b1b1d;--ifm-background-surface-color:#242526;--ifm-hover-overlay:rgba(255,255,255,.05);--ifm-color-content:#e3e3e3;--ifm-color-content-secondary:#fff;--ifm-breadcrumb-separator-filter:invert(64%)sepia(11%)saturate(0%)hue-rotate(149deg)brightness(99%)contrast(95%);--ifm-code-background:rgba(255,255,255,.1);--ifm-scrollbar-track-background-color:#444;--ifm-scrollbar-thumb-background-color:#686868;--ifm-scrollbar-thumb-hover-background-color:#7a7a7a;--ifm-table-stripe-background:rgba(255,255,255,.07);--ifm-toc-border-color:var(--ifm-color-emphasis-200);--ifm-color-primary-contrast-background:#102445;--ifm-color-primary-contrast-foreground:#ebf2fc;--ifm-color-secondary-contrast-background:#474748;--ifm-color-secondary-contrast-foreground:#fdfdfe;--ifm-color-success-contrast-background:#003100;--ifm-color-success-contrast-foreground:#e6f6e6;--ifm-color-info-contrast-background:#193c47;--ifm-color-info-contrast-foreground:#eef9fd;--ifm-color-warning-contrast-background:#4d3800;--ifm-color-warning-contrast-foreground:#fff8e6;--ifm-color-danger-contrast-background:#4b1113;--ifm-color-danger-contrast-foreground:#ffebec}@media (width>=1440px){.container{max-width:var(--ifm-container-width-xl)}}@media (width<=996px){.col{--ifm-col-width:100%;flex-basis:var(--ifm-col-width);margin-left:0}.footer{--ifm-footer-padding-horizontal:0}.footer__link-separator{display:none}.footer__col{margin-bottom:calc(var(--ifm-spacing-vertical)*3)}.footer__link-item{width:max-content;display:block}.hero{padding-left:0;padding-right:0}.navbar>.container,.navbar>.container-fluid{padding:0}.navbar__toggle{display:inherit}.navbar__item{display:none}.navbar__search-input{width:9rem}.pills--block,.tabs--block{flex-direction:column}}@media (width<=576px){.markdown h1:first-child{--ifm-h1-font-size:2rem}.markdown>h2{--ifm-h2-font-size:1.5rem}.markdown>h3{--ifm-h3-font-size:1.25rem}}@media (pointer:fine){.thin-scrollbar{scrollbar-width:thin}.thin-scrollbar::-webkit-scrollbar{height:var(--ifm-scrollbar-size);width:var(--ifm-scrollbar-size)}.thin-scrollbar::-webkit-scrollbar-track{background:var(--ifm-scrollbar-track-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb{background:var(--ifm-scrollbar-thumb-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb:hover{background:var(--ifm-scrollbar-thumb-hover-background-color)}}@media (prefers-reduced-motion:reduce){:root{--ifm-transition-fast:0s;--ifm-transition-slow:0s}}@media print{.table-of-contents,.footer,.menu,.navbar,.pagination-nav{display:none}.tabs{page-break-inside:avoid}}}@layer docusaurus.theme-common{.themedComponent_dt6d{display:none}[data-theme=light] .themedComponent--light_XcPj,[data-theme=dark] .themedComponent--dark_QMpS,html:not([data-theme]) .themedComponent--light_XcPj{display:initial}.errorBoundaryError_PTLG{white-space:pre-wrap;color:red}.errorBoundaryFallback_wFxy{color:red;padding:.55rem}.anchorTargetStickyNavbar_zfeO{scroll-margin-top:calc(var(--ifm-navbar-height) + .5rem)}.anchorTargetHideOnScrollNavbar_Lo9g{scroll-margin-top:.5rem}.details_hSk0{--docusaurus-details-summary-arrow-size:.38rem;--docusaurus-details-transition:transform .2s ease;--docusaurus-details-decoration-color:grey}.details_hSk0>summary{cursor:pointer;padding-left:1rem;list-style:none;position:relative}.details_hSk0>summary::-webkit-details-marker{display:none}.details_hSk0>summary:before{content:"";border-width:var(--docusaurus-details-summary-arrow-size);border-style:solid;border-color:transparent transparent transparent var(--docusaurus-details-decoration-color);transition:var(--docusaurus-details-transition);transform-origin:calc(var(--docusaurus-details-summary-arrow-size)/2)50%;position:absolute;top:.45rem;left:0;transform:rotate(0)}.details_hSk0[open]:not(.isBrowser_J20b)>summary:before,.details_hSk0[data-collapsed=false].isBrowser_J20b>summary:before{transform:rotate(90deg)}.collapsibleContent_leZz{border-top:1px solid var(--docusaurus-details-decoration-color);margin-top:1rem;padding-top:1rem}.collapsibleContent_leZz p:last-child,.details_hSk0>summary>p:last-child{margin-bottom:0}}@layer docusaurus.theme-classic{:root{--docusaurus-progress-bar-color:var(--ifm-color-primary)}#nprogress{pointer-events:none}#nprogress .bar{background:var(--docusaurus-progress-bar-color);z-index:1031;width:100%;height:2px;position:fixed;top:0;left:0}#nprogress .peg{width:100px;height:100%;box-shadow:0 0 10px var(--docusaurus-progress-bar-color),0 0 5px var(--docusaurus-progress-bar-color);opacity:1;position:absolute;right:0;transform:rotate(3deg)translateY(-4px)}.skipToContent_Sb3a{z-index:calc(var(--ifm-z-index-fixed) + 1);padding:calc(var(--ifm-global-spacing)/2)var(--ifm-global-spacing);color:var(--ifm-color-emphasis-900);background-color:var(--ifm-background-surface-color);position:fixed;top:1rem;left:100%}.skipToContent_Sb3a:focus{box-shadow:var(--ifm-global-shadow-md);left:1rem}.closeButton_Z3pV{padding:0;line-height:0}.content_PfKe{text-align:center;padding:5px 0;font-size:85%}.content_PfKe a{color:inherit;-webkit-text-decoration:underline;text-decoration:underline}:root{--docusaurus-announcement-bar-height:auto}.announcementBar_Ksje{height:var(--docusaurus-announcement-bar-height);background-color:var(--ifm-color-white);color:var(--ifm-color-black);border-bottom:1px solid var(--ifm-color-emphasis-100);align-items:center;display:flex}html[data-announcement-bar-initially-dismissed=true] .announcementBar_Ksje{display:none}.announcementBarPlaceholder_WRLw{flex:0 0 10px}.announcementBarClose_cgcS{flex:0 0 30px;align-self:stretch}.announcementBarContent_kCy3{flex:auto}@media print{.announcementBar_Ksje{display:none}}@media (width>=997px){:root{--docusaurus-announcement-bar-height:30px}.announcementBarPlaceholder_WRLw,.announcementBarClose_cgcS{flex-basis:50px}}.toggle_WfRr{width:2rem;height:2rem}.toggleButton_qxDU{-webkit-tap-highlight-color:transparent;width:100%;height:100%;transition:background var(--ifm-transition-fast);border-radius:50%;justify-content:center;align-items:center;display:flex}.toggleButton_qxDU:hover{background:var(--ifm-color-emphasis-200)}.toggleIcon_SFy4{display:none}[data-theme-choice=system] .systemToggleIcon_gB86,[data-theme-choice=light] .lightToggleIcon_r_0k,[data-theme-choice=dark] .darkToggleIcon_pwnq{display:initial}.toggleButtonDisabled_MZUj{cursor:not-allowed}.darkNavbarColorModeToggle_0mhA:hover{background:var(--ifm-color-gray-800)}.iconExternalLink_zdlW{margin-left:.3rem}.dropdownNavbarItemMobile_dOUG{cursor:pointer}.iconLanguage_WQbe{vertical-align:text-bottom;margin-right:5px}.navbarSearchContainer_Pcjl:empty{display:none}@media (width<=996px){.navbarSearchContainer_Pcjl{right:var(--ifm-navbar-padding-horizontal);position:absolute}}@media (width>=997px){.navbarSearchContainer_Pcjl{padding:0 var(--ifm-navbar-item-padding-horizontal)}}.navbarHideable_UrdD{transition:transform var(--ifm-transition-fast)ease}.navbarHidden_z2Ap{transform:translateY(calc(-100% - 2px))}@media (width<=996px){.colorModeToggle_oVbE{display:none}}.navbar__items--right>:last-child{padding-right:0}.footerLogoLink_jCuZ{opacity:.5;transition:opacity var(--ifm-transition-fast)var(--ifm-transition-timing-default)}.footerLogoLink_jCuZ:hover{opacity:1}.hash-link{opacity:0;transition:opacity var(--ifm-transition-fast);-webkit-user-select:none;user-select:none;padding-left:.5rem}.hash-link:before{content:"#"}.hash-link:focus,:hover>.hash-link{opacity:1}html,body{height:100%}.mainWrapper_BsZ3{flex-direction:column;flex:1 0 auto;display:flex}.docusaurus-mt-lg{margin-top:3rem}#__docusaurus{flex-direction:column;min-height:100%;display:flex}:root{--docusaurus-tag-list-border:var(--ifm-color-emphasis-300)}.tag_lOWp{border:1px solid var(--docusaurus-tag-list-border);transition:border var(--ifm-transition-fast)}.tag_lOWp:hover{--docusaurus-tag-list-border:var(--ifm-link-color);-webkit-text-decoration:none;text-decoration:none}.tagRegular_JOmO{border-radius:var(--ifm-global-radius);padding:.2rem .5rem .3rem;font-size:90%}.tagWithCount_db5V{border-left:0;align-items:center;padding:0 .5rem 0 1rem;display:flex;position:relative}.tagWithCount_db5V:before,.tagWithCount_db5V:after{content:"";border:1px solid var(--docusaurus-tag-list-border);transition:inherit;position:absolute;top:50%}.tagWithCount_db5V:before{border-bottom:0;border-right:0;width:1.18rem;height:1.18rem;right:100%;transform:translate(50%,-50%)rotate(-45deg)}.tagWithCount_db5V:after{border-radius:50%;width:.5rem;height:.5rem;left:0;transform:translateY(-50%)}.tagWithCount_db5V span{background:var(--ifm-color-secondary);color:var(--ifm-color-black);border-radius:var(--ifm-global-radius);margin-left:.3rem;padding:.1rem .4rem;font-size:.7rem;line-height:1.2}.tags_ZMMK{display:inline}.tag_kkNk{margin:0 .4rem .5rem 0;display:inline-block}.iconEdit_OVCj{vertical-align:sub;margin-right:.3em}.lastUpdated_V1Ko{margin-top:.2rem;font-size:smaller;font-style:italic}@media (width>=997px){.lastUpdated_V1Ko{text-align:right}}@media print{.noPrint_zwwA{display:none}}.tocCollapsibleButton_pqXY{font-size:inherit;justify-content:space-between;align-items:center;width:100%;padding:.4rem .8rem;display:flex}.tocCollapsibleButton_pqXY:after{content:"";background:var(--ifm-menu-link-sublist-icon)50% 50%/2rem 2rem no-repeat;filter:var(--ifm-menu-link-sublist-icon-filter);width:1.25rem;height:1.25rem;transition:transform var(--ifm-transition-fast);transform:rotate(180deg)}.tocCollapsibleButtonExpanded_WWn8:after{transform:none}.tocCollapsible_xf3c{background-color:var(--ifm-menu-color-background-active);border-radius:var(--ifm-global-radius);margin:1rem 0}.tocCollapsibleContent_Ibyg>ul{border-left:none;border-top:1px solid var(--ifm-color-emphasis-300);padding:.2rem 0;font-size:15px}.tocCollapsibleContent_Ibyg ul li{margin:.4rem .8rem}.tocCollapsibleContent_Ibyg a{display:block}.tocCollapsibleExpanded_VQ3o{transform:none}@media (width>=997px){.tocMobile_OEfg{display:none}}@media print{.tocMobile_OEfg{display:none}}.tableOfContents_fdog{max-height:calc(100vh - (var(--ifm-navbar-height) + 2rem));top:calc(var(--ifm-navbar-height) + 1rem);position:sticky;overflow-y:auto}@media (width<=996px){.tableOfContents_fdog{display:none}.docItemContainer_g607{padding:0 .3rem}}.codeBlockContainer_AFDL{background:var(--prism-background-color);color:var(--prism-color);margin-bottom:var(--ifm-leading);box-shadow:var(--ifm-global-shadow-lw);border-radius:var(--ifm-code-border-radius)}.codeBlock_fCJ5{--ifm-pre-background:var(--prism-background-color);margin:0;padding:0}.codeBlockStandalone_Tyu2{padding:0}.codeBlockLines_HQxl{font:inherit;float:left;min-width:100%;padding:var(--ifm-pre-padding)}.codeBlockLinesWithNumbering_QPzx{padding:var(--ifm-pre-padding)0;display:table}@media print{.codeBlockLines_HQxl{white-space:pre-wrap}}:where(:root){--docusaurus-highlighted-code-line-bg:#484d5b}:where([data-theme=dark]){--docusaurus-highlighted-code-line-bg:#646464}.theme-code-block-highlighted-line{background-color:var(--docusaurus-highlighted-code-line-bg);margin:0 calc(-1*var(--ifm-pre-padding));padding:0 var(--ifm-pre-padding);display:block}.codeLine_hqnj{counter-increment:line-count;display:table-row}.codeLineNumber_unZU{text-align:right;width:1%;padding:0 var(--ifm-pre-padding);background:var(--ifm-pre-background);overflow-wrap:normal;display:table-cell;position:sticky;left:0}.codeLineNumber_unZU:before{content:counter(line-count);opacity:.4}.theme-code-block-highlighted-line .codeLineNumber_unZU:before{opacity:.8}.codeLineContent_CLzY{padding-right:var(--ifm-pre-padding)}.theme-code-block:hover .copyButtonCopied_LX3f{opacity:1!important}.copyButtonIcons_MDo9{width:1.125rem;height:1.125rem;position:relative}.copyButtonIcon_DToO,.copyButtonSuccessIcon_FJJa{fill:currentColor;opacity:inherit;width:inherit;height:inherit;transition:all var(--ifm-transition-fast)ease;position:absolute;top:0;left:0}.copyButtonSuccessIcon_FJJa{opacity:0;color:#00d600;top:50%;left:50%;transform:translate(-50%,-50%)scale(.33)}.copyButtonCopied_LX3f .copyButtonIcon_DToO{opacity:0;transform:scale(.33)}.copyButtonCopied_LX3f .copyButtonSuccessIcon_FJJa{opacity:1;transition-delay:75ms;transform:translate(-50%,-50%)scale(1)}.wordWrapButtonIcon_IGU7{width:1.2rem;height:1.2rem}.wordWrapButtonEnabled_KNlb .wordWrapButtonIcon_IGU7{color:var(--ifm-color-primary)}.buttonGroup_GIQh{right:calc(var(--ifm-pre-padding)/2);top:calc(var(--ifm-pre-padding)/2);column-gap:.2rem;display:flex;position:absolute}.buttonGroup_GIQh button{background:var(--prism-background-color);color:var(--prism-color);border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-global-radius);transition:opacity var(--ifm-transition-fast)ease-in-out;opacity:0;align-items:center;padding:.4rem;line-height:0;display:flex}.buttonGroup_GIQh button:hover{opacity:1!important}.buttonGroup_GIQh button:focus-visible{opacity:1!important}.theme-code-block:hover .buttonGroup_GIQh button{opacity:.4}.codeBlockContent_tC79{border-radius:inherit;direction:ltr;position:relative}.codeBlockTitle_V9T2{border-bottom:1px solid var(--ifm-color-emphasis-300);font-size:var(--ifm-code-font-size);padding:.75rem var(--ifm-pre-padding);border-top-left-radius:inherit;border-top-right-radius:inherit;font-weight:500}.codeBlockTitle_V9T2+.codeBlockContent_tC79 .codeBlock_aN2u{border-top-left-radius:0;border-top-right-radius:0}.details_J0lR{--docusaurus-details-decoration-color:var(--ifm-alert-border-color);--docusaurus-details-transition:transform var(--ifm-transition-fast)ease;margin:0 0 var(--ifm-spacing-vertical);border:1px solid var(--ifm-alert-border-color)}.containsTaskList_KB3F{list-style:none}:not(.containsTaskList_KB3F>li)>.containsTaskList_KB3F{padding-left:0}.img_ha2v{height:auto}.admonition_uVyA{margin-bottom:1em}.admonitionHeading_mHFO{font:var(--ifm-heading-font-weight)var(--ifm-h5-font-size)/var(--ifm-heading-line-height)var(--ifm-heading-font-family);text-transform:uppercase}.admonitionHeading_mHFO:not(:last-child){margin-bottom:.3rem}.admonitionHeading_mHFO code{text-transform:none}.admonitionIcon_wzHy{vertical-align:middle;margin-right:.4em;display:inline-block}.admonitionIcon_wzHy svg{width:1.6em;height:1.6em;fill:var(--ifm-alert-foreground-color);display:inline-block}.admonitionContent_VCOm>:last-child{margin-bottom:0}.breadcrumbHomeIcon_Ripd{vertical-align:top;width:1.1rem;height:1.1rem;position:relative;top:1px}.breadcrumbsContainer_DwGs{--ifm-breadcrumb-size-multiplier:.8;margin-bottom:.8rem}.docItemContainer_FZQ_ header+*,.docItemContainer_FZQ_ article>:first-child{margin-top:0}@media (width>=997px){.docItemCol_I2C9{max-width:75%!important}}.tabList_f3wh{margin-bottom:var(--ifm-leading)}.tabItem_Xg_G{margin-top:0!important}.tabItem_vIHf>:last-child{margin-bottom:0}.backToTopButton_FsEm{background-color:var(--ifm-color-emphasis-200);width:3rem;height:3rem;z-index:calc(var(--ifm-z-index-fixed) - 1);box-shadow:var(--ifm-global-shadow-lw);transition:all var(--ifm-transition-fast)var(--ifm-transition-timing-default);opacity:0;visibility:hidden;border-radius:50%;position:fixed;bottom:1.3rem;right:1.3rem;transform:scale(0)}.backToTopButton_FsEm:after{content:" ";-webkit-mask:var(--ifm-menu-link-sublist-icon)50%/2rem 2rem no-repeat;-webkit-mask:var(--ifm-menu-link-sublist-icon)50%/2rem 2rem no-repeat;mask:var(--ifm-menu-link-sublist-icon)50%/2rem 2rem no-repeat;background-color:var(--ifm-color-emphasis-1000);width:100%;height:100%;display:inline-block}@media (hover:hover){.backToTopButton_FsEm:hover{background-color:var(--ifm-color-emphasis-300)}}.backToTopButtonShow_giG6{opacity:1;visibility:visible;transform:scale(1)}:root{--docusaurus-collapse-button-bg:transparent;--docusaurus-collapse-button-bg-hover:rgba(0,0,0,.1)}[data-theme=dark]:root{--docusaurus-collapse-button-bg:rgba(255,255,255,.05);--docusaurus-collapse-button-bg-hover:rgba(255,255,255,.1)}@media (width>=997px){.collapseSidebarButton_w0wb{background-color:var(--docusaurus-collapse-button-bg);border:1px solid var(--ifm-toc-border-color);border-radius:0;height:40px;position:sticky;bottom:0;display:block!important}.collapseSidebarButtonIcon_FFLl{margin-top:4px;transform:rotate(180deg)}[dir=rtl] .collapseSidebarButtonIcon_FFLl{transform:rotate(0)}.collapseSidebarButton_w0wb:hover,.collapseSidebarButton_w0wb:focus{background-color:var(--docusaurus-collapse-button-bg-hover)}}.collapseSidebarButton_w0wb{margin:0;display:none}.menuExternalLink_NMyC{align-items:center}.linkLabel_TUNj{line-clamp:2;-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.categoryLink_aOsC{overflow:hidden}.menu__link--sublist-caret:after{margin-left:var(--ifm-menu-link-padding-vertical)}.categoryLinkLabel_Tfj5{line-clamp:2;-webkit-line-clamp:2;-webkit-box-orient:vertical;flex:1;display:-webkit-box;overflow:hidden}@media (width>=997px){.menuHtmlItem_MVsW{padding:var(--ifm-menu-link-padding-vertical)var(--ifm-menu-link-padding-horizontal)}.menu_ahLp{flex-grow:1;padding:.5rem}@supports (scrollbar-gutter:stable){.menu_ahLp{scrollbar-gutter:stable;padding:.5rem 0 .5rem .5rem}}.menuWithAnnouncementBar_dWTH{margin-bottom:var(--docusaurus-announcement-bar-height)}.sidebar_RCgn{height:100%;padding-top:var(--ifm-navbar-height);width:var(--doc-sidebar-width);flex-direction:column;display:flex}.sidebarWithHideableNavbar_fv1g{padding-top:0}.sidebarHidden_ol4A{opacity:0;visibility:hidden}.sidebarLogo_JcJp{margin:0 var(--ifm-navbar-padding-horizontal);min-height:var(--ifm-navbar-height);max-height:var(--ifm-navbar-height);align-items:center;color:inherit!important;-webkit-text-decoration:none!important;text-decoration:none!important;display:flex!important}.sidebarLogo_JcJp img{height:2rem;margin-right:.5rem}}.sidebarLogo_JcJp{display:none}@media (width>=997px){.expandButton_myCd{width:100%;height:100%;transition:background-color var(--ifm-transition-fast)ease;background-color:var(--docusaurus-collapse-button-bg);justify-content:center;align-items:center;display:flex;position:absolute;top:0;right:0}.expandButton_myCd:hover,.expandButton_myCd:focus{background-color:var(--docusaurus-collapse-button-bg-hover)}.expandButtonIcon_EBqf{transform:rotate(0)}[dir=rtl] .expandButtonIcon_EBqf{transform:rotate(180deg)}}:root{--doc-sidebar-width:300px;--doc-sidebar-hidden-width:30px}.docSidebarContainer_i4lw{display:none}@media (width>=997px){.docSidebarContainer_i4lw{width:var(--doc-sidebar-width);margin-top:calc(-1*var(--ifm-navbar-height));border-right:1px solid var(--ifm-toc-border-color);will-change:width;transition:width var(--ifm-transition-fast)ease;clip-path:inset(0);display:block}.docSidebarContainerHidden_PddN{width:var(--doc-sidebar-hidden-width);cursor:pointer}.sidebarViewport_LX4L{height:100%;max-height:100vh;position:sticky;top:0}}.docMainContainer_Tq_9{width:100%;display:flex}@media (width>=997px){.docMainContainer_Tq_9{max-width:calc(100% - var(--doc-sidebar-width));flex-grow:1}.docMainContainerEnhanced_oea5{max-width:calc(100% - var(--doc-sidebar-hidden-width))}.docItemWrapperEnhanced_v22d{max-width:calc(var(--ifm-container-width) + var(--doc-sidebar-width))!important}}.docRoot_dSts{width:100%;display:flex}.docsWrapper_pyt2{flex:1 0 auto;display:flex}}@layer docusaurus.core{#__docusaurus-base-url-issue-banner-container{display:none}}@layer docusaurus.plugin-debug,docusaurus.theme-mermaid,docusaurus.theme-live-codeblock,docusaurus.theme-search-algolia.docsearch,docusaurus.theme-search-algolia;:root{--ifm-font-family-base:"Outfit","Noto Sans SC",system-ui,sans-serif;--ifm-heading-font-family:"Outfit","Noto Sans SC",system-ui,sans-serif;--ifm-color-primary:#0ea5e9;--ifm-color-primary-dark:#0284c7;--ifm-color-primary-darker:#0369a1;--ifm-color-primary-darkest:#0c4a6e;--ifm-color-primary-light:#38bdf8;--ifm-color-primary-lighter:#7dd3fc;--ifm-color-primary-lightest:#bae6fd;--ifm-code-font-size:95%;--docusaurus-highlighted-code-line-bg:rgba(0,0,0,.1);--orbien-hero-bg:#f0f9ff;--orbien-panel-bg:#fff;--orbien-panel-border:rgba(15,23,42,.08);--orbien-code-bg:#0f172a;--orbien-code-fg:#e2e8f0;--orbien-card-bg:#f1f5f9;--orbien-card-border:rgba(15,23,42,.06)}[data-theme=dark]{--ifm-color-primary:#38bdf8;--ifm-color-primary-dark:#0ea5e9;--ifm-color-primary-darker:#0284c7;--ifm-color-primary-darkest:#0369a1;--ifm-color-primary-light:#7dd3fc;--ifm-color-primary-lighter:#bae6fd;--ifm-color-primary-lightest:#e0f2fe;--docusaurus-highlighted-code-line-bg:rgba(0,0,0,.3);--orbien-hero-bg:#0b1220;--orbien-panel-bg:#111827;--orbien-panel-border:rgba(148,163,184,.18);--orbien-code-bg:#020617;--orbien-code-fg:#e2e8f0;--orbien-card-bg:#111827;--orbien-card-border:rgba(148,163,184,.14)}.navbar__title{letter-spacing:-.02em;font-weight:700}.navbar__logo img{border-radius:6px}.features_t9lD{align-items:center;width:100%;padding:.75rem 0 4rem;display:flex}.features_t9lD .container{box-sizing:border-box;max-width:1280px;margin:0 auto;padding-inline:clamp(1.25rem + 30px,4vw + 30px,2.5rem + 30px)}@media screen and (width<=996px){.features_t9lD .container{padding-inline:clamp(1.25rem + 30px,5vw + 30px,1.75rem + 30px)}}.featureCol_P0tX{margin-bottom:1.25rem}.featureCard_QAQr{background:var(--orbien-card-bg);border:1px solid var(--orbien-card-border);border-radius:14px;height:100%;padding:1.35rem 1.4rem 1.45rem;transition:transform .2s,box-shadow .2s,border-color .2s}.featureCard_QAQr:hover{border-color:rgba(14,165,233,.35);transform:translateY(-3px);box-shadow:0 12px 28px rgba(15,23,42,.08)}.featureTitle_L1YZ{letter-spacing:-.01em;margin:0;font-size:1.15rem;font-weight:700}.featureDesc_qOCZ{color:var(--ifm-color-emphasis-700);margin:.65rem 0 0;font-size:.95rem;line-height:1.6}.hero_aEcG{background:radial-gradient(1200px 500px at 12% -10%,rgba(14,165,233,.18),transparent 55%),radial-gradient(900px 420px at 88% 0%,rgba(56,189,248,.12),transparent 50%),linear-gradient(180deg,var(--orbien-hero-bg)0%,transparent 100%);padding:3.5rem 0 1.75rem;position:relative;overflow:hidden}.heroInner_V4lS{box-sizing:border-box;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);align-items:center;gap:clamp(1.75rem,3.5vw,3rem);width:100%;max-width:1280px;margin:0 auto;padding-inline:clamp(1.25rem + 30px,4vw + 30px,2.5rem + 30px);display:grid}.heroCopy_zvrZ{min-width:0}.heroBrand_lo5f{letter-spacing:-.035em;margin:0;font-size:clamp(2.9rem,6.2vw,4.4rem);font-weight:800;line-height:1.05}.brandOrb_BOug{color:var(--ifm-color-primary)}.brandRest_mNh6{color:#64748b}[data-theme=dark] .brandOrb_BOug{color:var(--ifm-color-primary-light)}[data-theme=dark] .brandRest_mNh6{color:#94a3b8}.heroTagline_QIlK{letter-spacing:-.02em;color:var(--ifm-font-color-base);margin:.85rem 0 0;font-size:clamp(1.45rem,3vw,2rem);font-weight:700}.heroDesc_pApI{max-width:36rem;color:var(--ifm-color-emphasis-700);margin:1rem 0 0;font-size:1.05rem;line-height:1.65}.heroActions_Z2kl{flex-wrap:wrap;gap:.75rem;margin-top:1.75rem;display:flex}.btnPrimary_hBjO{font-weight:700;background:var(--ifm-color-primary)!important;border-color:var(--ifm-color-primary)!important;color:#fff!important}.btnPrimary_hBjO:hover{background:var(--ifm-color-primary-dark)!important;border-color:var(--ifm-color-primary-dark)!important;color:#fff!important}.btnSecondary_mRVh{font-weight:600;background:var(--ifm-color-emphasis-200)!important;color:var(--ifm-font-color-base)!important;border-color:transparent!important}.btnSecondary_mRVh:hover{background:var(--ifm-color-emphasis-300)!important;color:var(--ifm-font-color-base)!important}.btnGitHub_RNrN{font-weight:700;color:#fff!important;background:#24292f!important;border-color:#24292f!important}.btnGitHub_RNrN:hover{color:#fff!important;background:#0d1117!important;border-color:#0d1117!important}[data-theme=dark] .btnGitHub_RNrN{color:#0d1117!important;background:#f0f6fc!important;border-color:#f0f6fc!important}[data-theme=dark] .btnGitHub_RNrN:hover{color:#0d1117!important;background:#fff!important;border-color:#fff!important}.heroVisual_DvAS{justify-content:flex-end;min-width:0;display:flex}.heroShot_o6Lk{width:min(100%,620px);animation:.8s both floatIn_ZPtN;position:relative}.heroShotGlow_lUhG{filter:blur(18px);z-index:0;pointer-events:none;background:radial-gradient(rgba(14,165,233,.22),transparent 70%);border-radius:24px;position:absolute;inset:12% 6% 8%}[data-theme=dark] .heroShotGlow_lUhG{background:radial-gradient(rgba(56,189,248,.2),transparent 72%)}.heroShotImg_WlKk{z-index:1;vertical-align:middle;border:1px solid var(--orbien-panel-border);background:var(--orbien-panel-bg);border-radius:14px;width:100%;height:auto;transition:transform .35s,box-shadow .35s;position:relative;transform:perspective(1200px)rotateY(-4deg)rotateX(2deg);box-shadow:0 28px 64px rgba(15,23,42,.14),inset 0 2px rgba(255,255,255,.35)}.heroShot_o6Lk:hover .heroShotImg_WlKk{transform:perspective(1200px)rotateY(-1deg)rotateX(.5deg)translateY(-2px);box-shadow:0 32px 72px rgba(15,23,42,.18),inset 0 2px rgba(255,255,255,.35)}[data-theme=dark] .heroShotImg_WlKk{box-shadow:0 28px 64px rgba(0,0,0,.45),inset 0 1px rgba(255,255,255,.06)}[data-theme=dark] .heroShot_o6Lk:hover .heroShotImg_WlKk{box-shadow:0 34px 78px rgba(0,0,0,.55),inset 0 1px rgba(255,255,255,.08)}@keyframes floatIn_ZPtN{0%{opacity:0;transform:translateY(18px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@media (prefers-reduced-motion:reduce){.heroShot_o6Lk{animation:none}.heroShotImg_WlKk,.heroShot_o6Lk:hover .heroShotImg_WlKk{transition:none;transform:none}}.desktop_esma{padding:.5rem 0 4rem}.desktopInner_HU24{box-sizing:border-box;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);align-items:center;gap:clamp(1.75rem,3.5vw,3rem);width:100%;max-width:1280px;margin:0 auto;padding-inline:clamp(1.25rem + 30px,4vw + 30px,2.5rem + 30px);display:grid}.desktopCopy_t7Jm{min-width:0}.desktopEyebrow_BMjU{letter-spacing:.04em;text-transform:uppercase;color:var(--ifm-color-primary);margin:0;font-size:.85rem;font-weight:700}.desktopTitle_nOuY{letter-spacing:-.025em;margin:.55rem 0 0;font-size:clamp(1.65rem,3vw,2.15rem);font-weight:800;line-height:1.2}.desktopDesc_SAxO{max-width:32rem;color:var(--ifm-color-emphasis-700);margin:.9rem 0 1.35rem;font-size:1.02rem;line-height:1.65}.desktopVisual_cX6h{min-width:0}.desktopFrame_bqGN{border:1px solid var(--orbien-panel-border);background:var(--orbien-panel-bg);border-radius:16px;width:min(100%,680px);margin-inline:auto;overflow:hidden;box-shadow:0 22px 48px rgba(15,23,42,.1)}[data-theme=dark] .desktopFrame_bqGN{box-shadow:0 22px 48px rgba(0,0,0,.4)}.desktopGif_kMRW{vertical-align:middle;width:100%;height:auto;display:block}@media screen and (width<=996px){.hero_aEcG{padding:2rem 0}.heroInner_V4lS{grid-template-columns:1fr;gap:2.25rem;padding-inline:clamp(1.25rem + 30px,5vw + 30px,1.75rem + 30px)}.heroVisual_DvAS{order:-1;justify-content:center}.heroShot_o6Lk{width:min(100%,560px)}.heroShotImg_WlKk,.heroShot_o6Lk:hover .heroShotImg_WlKk{transform:none}.desktop_esma{padding:.25rem 0 3rem}.desktopInner_HU24{grid-template-columns:1fr;gap:1.5rem;padding-inline:clamp(1.25rem + 30px,5vw + 30px,1.75rem + 30px)}.desktopVisual_cX6h{order:-1}.desktopFrame_bqGN{width:min(100%,560px)}}.wrap_B6Is{min-width:0;max-width:100%;margin:1.25rem 0 2rem}.toolbar_cmsD{flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:1rem;display:flex}.version_GkO4{color:var(--ifm-color-primary-dark);background:rgba(14,165,233,.12);border:1px solid rgba(14,165,233,.25);border-radius:999px;align-items:center;padding:.28rem .7rem;font-size:.85rem;font-weight:700;display:inline-flex}.releasesLink_uGnU{font-size:.9rem;font-weight:600}.tableScroll_RwJY{border:1px solid var(--orbien-card-border);background:var(--orbien-panel-bg);border-radius:14px;overflow-x:auto}.table_z95A{border-collapse:collapse;width:100%;margin:0;font-size:.92rem;display:table}.table_z95A thead th{background:var(--orbien-card-bg);text-align:left;border-bottom:1px solid var(--orbien-card-border);white-space:nowrap;padding:.75rem .9rem;font-weight:700;position:sticky;top:0}.table_z95A td{border-bottom:1px solid var(--orbien-card-border);vertical-align:middle;padding:.7rem .9rem}.table_z95A tbody tr:last-child td{border-bottom:none}.osCell_btT0{white-space:nowrap;background:linear-gradient(90deg,rgba(14,165,233,.06),transparent 80%);font-weight:700}.rowHighlight_Rqix td{background:rgba(14,165,233,.05)}.badge_x6zy{letter-spacing:.02em;background:var(--ifm-color-primary);white-space:nowrap;border-radius:8px;justify-content:center;align-items:center;min-width:4.8rem;padding:.28rem .65rem;font-size:.78rem;font-weight:700;transition:transform .12s,filter .12s;display:inline-flex;color:#fff!important;-webkit-text-decoration:none!important;text-decoration:none!important}.badge_x6zy:hover{filter:brightness(1.05);transform:translateY(-1px);color:#fff!important;-webkit-text-decoration:none!important;text-decoration:none!important}.missing_ODsB{color:var(--ifm-color-emphasis-500);font-weight:600}.libcTag_lP5V{font-size:.85em}.note_heJW{color:var(--ifm-color-emphasis-700);max-width:14rem;font-size:.85rem;line-height:1.45}.docker_YIhP{border:1px solid var(--orbien-card-border);background:var(--orbien-card-bg);border-radius:14px;min-width:0;max-width:100%;margin-top:1.75rem;padding:1.15rem 1.2rem 1.25rem}.docker_YIhP h3{margin:0 0 .85rem;font-size:1.05rem}.dockerList_T7jC{flex-direction:column;gap:.75rem;min-width:0;margin:0;padding:0;list-style:none;display:flex}.dockerItem_OmD2{background:var(--orbien-panel-bg);border:1px solid var(--orbien-card-border);border-radius:12px;min-width:0;padding:.8rem .9rem}.dockerMeta_so8T{flex-wrap:wrap;align-items:center;gap:.45rem;margin-bottom:.5rem;display:flex}.dockerMeta_so8T strong{font-size:.92rem}.dockerTag_NGl6{letter-spacing:.02em;color:var(--ifm-color-primary-dark);background:rgba(14,165,233,.12);border-radius:999px;padding:.12rem .45rem;font-size:.72rem;font-weight:700}.dockerCmd_lfBm{box-sizing:border-box;white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;background:var(--orbien-code-bg);width:100%;color:var(--orbien-code-fg);border-radius:8px;margin:0;padding:.6rem .75rem;font-size:.8rem;line-height:1.55;display:block}@media screen and (width<=996px){.note_heJW{min-width:10rem;max-width:none}} \ No newline at end of file +@import "https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@400;500;700;800&family=Outfit:wght@500;600;700;800&display=swap";@layer docusaurus.infima{:root{--ifm-color-scheme:light;--ifm-dark-value:10%;--ifm-darker-value:15%;--ifm-darkest-value:30%;--ifm-light-value:15%;--ifm-lighter-value:30%;--ifm-lightest-value:50%;--ifm-contrast-background-value:90%;--ifm-contrast-foreground-value:70%;--ifm-contrast-background-dark-value:70%;--ifm-contrast-foreground-dark-value:90%;--ifm-color-primary:#3578e5;--ifm-color-secondary:#ebedf0;--ifm-color-success:#00a400;--ifm-color-info:#54c7ec;--ifm-color-warning:#ffba00;--ifm-color-danger:#fa383e;--ifm-color-primary-dark:#306cce;--ifm-color-primary-darker:#2d66c3;--ifm-color-primary-darkest:#2554a0;--ifm-color-primary-light:#538ce9;--ifm-color-primary-lighter:#72a1ed;--ifm-color-primary-lightest:#9abcf2;--ifm-color-primary-contrast-background:#ebf2fc;--ifm-color-primary-contrast-foreground:#102445;--ifm-color-secondary-dark:#d4d5d8;--ifm-color-secondary-darker:#c8c9cc;--ifm-color-secondary-darkest:#a4a6a8;--ifm-color-secondary-light:#eef0f2;--ifm-color-secondary-lighter:#f1f2f5;--ifm-color-secondary-lightest:#f5f6f8;--ifm-color-secondary-contrast-background:#fdfdfe;--ifm-color-secondary-contrast-foreground:#474748;--ifm-color-success-dark:#009400;--ifm-color-success-darker:#008b00;--ifm-color-success-darkest:#007300;--ifm-color-success-light:#26b226;--ifm-color-success-lighter:#4dbf4d;--ifm-color-success-lightest:#80d280;--ifm-color-success-contrast-background:#e6f6e6;--ifm-color-success-contrast-foreground:#003100;--ifm-color-info-dark:#4cb3d4;--ifm-color-info-darker:#47a9c9;--ifm-color-info-darkest:#3b8ba5;--ifm-color-info-light:#6ecfef;--ifm-color-info-lighter:#87d8f2;--ifm-color-info-lightest:#aae3f6;--ifm-color-info-contrast-background:#eef9fd;--ifm-color-info-contrast-foreground:#193c47;--ifm-color-warning-dark:#e6a700;--ifm-color-warning-darker:#d99e00;--ifm-color-warning-darkest:#b38200;--ifm-color-warning-light:#ffc426;--ifm-color-warning-lighter:#ffcf4d;--ifm-color-warning-lightest:#ffdd80;--ifm-color-warning-contrast-background:#fff8e6;--ifm-color-warning-contrast-foreground:#4d3800;--ifm-color-danger-dark:#e13238;--ifm-color-danger-darker:#d53035;--ifm-color-danger-darkest:#af272b;--ifm-color-danger-light:#fb565b;--ifm-color-danger-lighter:#fb7478;--ifm-color-danger-lightest:#fd9c9f;--ifm-color-danger-contrast-background:#ffebec;--ifm-color-danger-contrast-foreground:#4b1113;--ifm-color-white:#fff;--ifm-color-black:#000;--ifm-color-gray-0:var(--ifm-color-white);--ifm-color-gray-100:#f5f6f7;--ifm-color-gray-200:#ebedf0;--ifm-color-gray-300:#dadde1;--ifm-color-gray-400:#ccd0d5;--ifm-color-gray-500:#bec3c9;--ifm-color-gray-600:#8d949e;--ifm-color-gray-700:#606770;--ifm-color-gray-800:#444950;--ifm-color-gray-900:#1c1e21;--ifm-color-gray-1000:var(--ifm-color-black);--ifm-color-emphasis-0:var(--ifm-color-gray-0);--ifm-color-emphasis-100:var(--ifm-color-gray-100);--ifm-color-emphasis-200:var(--ifm-color-gray-200);--ifm-color-emphasis-300:var(--ifm-color-gray-300);--ifm-color-emphasis-400:var(--ifm-color-gray-400);--ifm-color-emphasis-500:var(--ifm-color-gray-500);--ifm-color-emphasis-600:var(--ifm-color-gray-600);--ifm-color-emphasis-700:var(--ifm-color-gray-700);--ifm-color-emphasis-800:var(--ifm-color-gray-800);--ifm-color-emphasis-900:var(--ifm-color-gray-900);--ifm-color-emphasis-1000:var(--ifm-color-gray-1000);--ifm-color-content:var(--ifm-color-emphasis-900);--ifm-color-content-inverse:var(--ifm-color-emphasis-0);--ifm-color-content-secondary:#525860;--ifm-background-color:transparent;--ifm-background-surface-color:var(--ifm-color-content-inverse);--ifm-global-border-width:1px;--ifm-global-radius:.4rem;--ifm-hover-overlay:rgba(0,0,0,.05);--ifm-font-color-base:var(--ifm-color-content);--ifm-font-color-base-inverse:var(--ifm-color-content-inverse);--ifm-font-color-secondary:var(--ifm-color-content-secondary);--ifm-font-family-base:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--ifm-font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--ifm-font-size-base:100%;--ifm-font-weight-light:300;--ifm-font-weight-normal:400;--ifm-font-weight-semibold:500;--ifm-font-weight-bold:700;--ifm-font-weight-base:var(--ifm-font-weight-normal);--ifm-line-height-base:1.65;--ifm-global-spacing:1rem;--ifm-spacing-vertical:var(--ifm-global-spacing);--ifm-spacing-horizontal:var(--ifm-global-spacing);--ifm-transition-fast:.2s;--ifm-transition-slow:.4s;--ifm-transition-timing-default:cubic-bezier(.08,.52,.52,1);--ifm-global-shadow-lw:0 1px 2px 0 rgba(0,0,0,.1);--ifm-global-shadow-md:0 5px 40px rgba(0,0,0,.2);--ifm-global-shadow-tl:0 12px 28px 0 rgba(0,0,0,.2),0 2px 4px 0 rgba(0,0,0,.1);--ifm-z-index-dropdown:100;--ifm-z-index-fixed:200;--ifm-z-index-overlay:400;--ifm-container-width:1140px;--ifm-container-width-xl:1320px;--ifm-code-background:#f6f7f8;--ifm-code-border-radius:var(--ifm-global-radius);--ifm-code-font-size:90%;--ifm-code-padding-horizontal:.1rem;--ifm-code-padding-vertical:.1rem;--ifm-pre-background:var(--ifm-code-background);--ifm-pre-border-radius:var(--ifm-code-border-radius);--ifm-pre-color:inherit;--ifm-pre-line-height:1.45;--ifm-pre-padding:1rem;--ifm-heading-color:inherit;--ifm-heading-margin-top:0;--ifm-heading-margin-bottom:var(--ifm-spacing-vertical);--ifm-heading-font-family:var(--ifm-font-family-base);--ifm-heading-font-weight:var(--ifm-font-weight-bold);--ifm-heading-line-height:1.25;--ifm-h1-font-size:2rem;--ifm-h2-font-size:1.5rem;--ifm-h3-font-size:1.25rem;--ifm-h4-font-size:1rem;--ifm-h5-font-size:.875rem;--ifm-h6-font-size:.85rem;--ifm-image-alignment-padding:1.25rem;--ifm-leading-desktop:1.25;--ifm-leading:calc(var(--ifm-leading-desktop)*1rem);--ifm-list-left-padding:2rem;--ifm-list-margin:1rem;--ifm-list-item-margin:.25rem;--ifm-list-paragraph-margin:1rem;--ifm-table-cell-padding:.75rem;--ifm-table-background:transparent;--ifm-table-stripe-background:rgba(0,0,0,.03);--ifm-table-border-width:1px;--ifm-table-border-color:var(--ifm-color-emphasis-300);--ifm-table-head-background:inherit;--ifm-table-head-color:inherit;--ifm-table-head-font-weight:var(--ifm-font-weight-bold);--ifm-table-cell-color:inherit;--ifm-link-color:var(--ifm-color-primary);--ifm-link-decoration:none;--ifm-link-hover-color:var(--ifm-link-color);--ifm-link-hover-decoration:underline;--ifm-paragraph-margin-bottom:var(--ifm-leading);--ifm-blockquote-font-size:var(--ifm-font-size-base);--ifm-blockquote-border-left-width:2px;--ifm-blockquote-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-blockquote-padding-vertical:0;--ifm-blockquote-shadow:none;--ifm-blockquote-color:var(--ifm-color-emphasis-800);--ifm-blockquote-border-color:var(--ifm-color-emphasis-300);--ifm-hr-background-color:var(--ifm-color-emphasis-500);--ifm-hr-height:1px;--ifm-hr-margin-vertical:1.5rem;--ifm-scrollbar-size:7px;--ifm-scrollbar-track-background-color:#f1f1f1;--ifm-scrollbar-thumb-background-color:silver;--ifm-scrollbar-thumb-hover-background-color:#a7a7a7;--ifm-alert-background-color:inherit;--ifm-alert-border-color:inherit;--ifm-alert-border-radius:var(--ifm-global-radius);--ifm-alert-border-width:0px;--ifm-alert-border-left-width:5px;--ifm-alert-color:var(--ifm-font-color-base);--ifm-alert-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-alert-padding-vertical:var(--ifm-spacing-vertical);--ifm-alert-shadow:var(--ifm-global-shadow-lw);--ifm-avatar-intro-margin:1rem;--ifm-avatar-intro-alignment:inherit;--ifm-avatar-photo-size:3rem;--ifm-badge-background-color:inherit;--ifm-badge-border-color:inherit;--ifm-badge-border-radius:var(--ifm-global-radius);--ifm-badge-border-width:var(--ifm-global-border-width);--ifm-badge-color:var(--ifm-color-white);--ifm-badge-padding-horizontal:calc(var(--ifm-spacing-horizontal)*.5);--ifm-badge-padding-vertical:calc(var(--ifm-spacing-vertical)*.25);--ifm-breadcrumb-border-radius:1.5rem;--ifm-breadcrumb-spacing:.5rem;--ifm-breadcrumb-color-active:var(--ifm-color-primary);--ifm-breadcrumb-item-background-active:var(--ifm-hover-overlay);--ifm-breadcrumb-padding-horizontal:.8rem;--ifm-breadcrumb-padding-vertical:.4rem;--ifm-breadcrumb-size-multiplier:1;--ifm-breadcrumb-separator:url("data:image/svg+xml;utf8,");--ifm-breadcrumb-separator-filter:none;--ifm-breadcrumb-separator-size:.5rem;--ifm-breadcrumb-separator-size-multiplier:1.25;--ifm-button-background-color:inherit;--ifm-button-border-color:var(--ifm-button-background-color);--ifm-button-border-width:var(--ifm-global-border-width);--ifm-button-color:var(--ifm-font-color-base-inverse);--ifm-button-font-weight:var(--ifm-font-weight-bold);--ifm-button-padding-horizontal:1.5rem;--ifm-button-padding-vertical:.375rem;--ifm-button-size-multiplier:1;--ifm-button-transition-duration:var(--ifm-transition-fast);--ifm-button-border-radius:calc(var(--ifm-global-radius)*var(--ifm-button-size-multiplier));--ifm-button-group-spacing:2px;--ifm-card-background-color:var(--ifm-background-surface-color);--ifm-card-border-radius:calc(var(--ifm-global-radius)*2);--ifm-card-horizontal-spacing:var(--ifm-global-spacing);--ifm-card-vertical-spacing:var(--ifm-global-spacing);--ifm-toc-border-color:var(--ifm-color-emphasis-300);--ifm-toc-link-color:var(--ifm-color-content-secondary);--ifm-toc-padding-vertical:.5rem;--ifm-toc-padding-horizontal:.5rem;--ifm-dropdown-background-color:var(--ifm-background-surface-color);--ifm-dropdown-font-weight:var(--ifm-font-weight-semibold);--ifm-dropdown-link-color:var(--ifm-font-color-base);--ifm-dropdown-hover-background-color:var(--ifm-hover-overlay);--ifm-footer-background-color:var(--ifm-color-emphasis-100);--ifm-footer-color:inherit;--ifm-footer-link-color:var(--ifm-color-emphasis-700);--ifm-footer-link-hover-color:var(--ifm-color-primary);--ifm-footer-link-horizontal-spacing:.5rem;--ifm-footer-padding-horizontal:calc(var(--ifm-spacing-horizontal)*2);--ifm-footer-padding-vertical:calc(var(--ifm-spacing-vertical)*2);--ifm-footer-title-color:inherit;--ifm-footer-logo-max-width:min(30rem,90vw);--ifm-hero-background-color:var(--ifm-background-surface-color);--ifm-hero-text-color:var(--ifm-color-emphasis-800);--ifm-menu-color:var(--ifm-color-emphasis-700);--ifm-menu-color-active:var(--ifm-color-primary);--ifm-menu-color-background-active:var(--ifm-hover-overlay);--ifm-menu-color-background-hover:var(--ifm-hover-overlay);--ifm-menu-link-padding-horizontal:.75rem;--ifm-menu-link-padding-vertical:.375rem;--ifm-menu-link-sublist-icon:url("data:image/svg+xml;utf8,");--ifm-menu-link-sublist-icon-filter:none;--ifm-navbar-background-color:var(--ifm-background-surface-color);--ifm-navbar-height:3.75rem;--ifm-navbar-item-padding-horizontal:.75rem;--ifm-navbar-item-padding-vertical:.25rem;--ifm-navbar-link-color:var(--ifm-font-color-base);--ifm-navbar-link-hover-color:var(--ifm-color-primary);--ifm-navbar-link-active-color:var(--ifm-link-color);--ifm-navbar-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-navbar-padding-vertical:calc(var(--ifm-spacing-vertical)*.5);--ifm-navbar-shadow:var(--ifm-global-shadow-lw);--ifm-navbar-search-input-background-color:var(--ifm-color-emphasis-200);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-800);--ifm-navbar-search-input-placeholder-color:var(--ifm-color-emphasis-500);--ifm-navbar-search-input-icon:url("data:image/svg+xml;utf8,");--ifm-navbar-sidebar-width:83vw;--ifm-pagination-border-radius:var(--ifm-global-radius);--ifm-pagination-color-active:var(--ifm-color-primary);--ifm-pagination-font-size:1rem;--ifm-pagination-item-active-background:var(--ifm-hover-overlay);--ifm-pagination-page-spacing:.2em;--ifm-pagination-padding-horizontal:calc(var(--ifm-spacing-horizontal)*1);--ifm-pagination-padding-vertical:calc(var(--ifm-spacing-vertical)*.25);--ifm-pagination-nav-border-radius:var(--ifm-global-radius);--ifm-pagination-nav-color-hover:var(--ifm-color-primary);--ifm-pills-color-active:var(--ifm-color-primary);--ifm-pills-color-background-active:var(--ifm-hover-overlay);--ifm-pills-spacing:.125rem;--ifm-tabs-color:var(--ifm-font-color-secondary);--ifm-tabs-color-active:var(--ifm-color-primary);--ifm-tabs-color-active-border:var(--ifm-tabs-color-active);--ifm-tabs-padding-horizontal:1rem;--ifm-tabs-padding-vertical:1rem}*{box-sizing:border-box}html{background-color:var(--ifm-background-color);color:var(--ifm-font-color-base);color-scheme:var(--ifm-color-scheme);font:var(--ifm-font-size-base)/var(--ifm-line-height-base)var(--ifm-font-family-base);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;text-rendering:optimizelegibility;-webkit-text-size-adjust:100%;text-size-adjust:100%}body{word-wrap:break-word;margin:0}iframe{color-scheme:normal;border:0}.container{max-width:var(--ifm-container-width);padding:0 var(--ifm-spacing-horizontal);width:100%;margin:0 auto}.container--fluid{max-width:inherit}.row{margin:0 calc(var(--ifm-spacing-horizontal)*-1);flex-wrap:wrap;display:flex}.row--no-gutters{margin-left:0;margin-right:0}.row--no-gutters>.col{padding-left:0;padding-right:0}.row--align-top{align-items:flex-start}.row--align-bottom{align-items:flex-end}.row--align-center{align-items:center}.row--align-stretch{align-items:stretch}.row--align-baseline{align-items:baseline}.col{--ifm-col-width:100%;max-width:var(--ifm-col-width);padding:0 var(--ifm-spacing-horizontal);flex:1 0;width:100%;margin-left:0}.col[class*=col--]{flex:0 0 var(--ifm-col-width)}.col--1{--ifm-col-width:calc(1/12*100%)}.col--offset-1{margin-left:8.33333%}.col--2{--ifm-col-width:calc(2/12*100%)}.col--offset-2{margin-left:16.6667%}.col--3{--ifm-col-width:calc(3/12*100%)}.col--offset-3{margin-left:25%}.col--4{--ifm-col-width:calc(4/12*100%)}.col--offset-4{margin-left:33.3333%}.col--5{--ifm-col-width:calc(5/12*100%)}.col--offset-5{margin-left:41.6667%}.col--6{--ifm-col-width:calc(6/12*100%)}.col--offset-6{margin-left:50%}.col--7{--ifm-col-width:calc(7/12*100%)}.col--offset-7{margin-left:58.3333%}.col--8{--ifm-col-width:calc(8/12*100%)}.col--offset-8{margin-left:66.6667%}.col--9{--ifm-col-width:calc(9/12*100%)}.col--offset-9{margin-left:75%}.col--10{--ifm-col-width:calc(10/12*100%)}.col--offset-10{margin-left:83.3333%}.col--11{--ifm-col-width:calc(11/12*100%)}.col--offset-11{margin-left:91.6667%}.col--12{--ifm-col-width:calc(12/12*100%)}.col--offset-12{margin-left:100%}.margin--none{margin:0!important}.margin-top--none{margin-top:0!important}.margin-left--none{margin-left:0!important}.margin-bottom--none{margin-bottom:0!important}.margin-right--none{margin-right:0!important}.margin-vert--none{margin-top:0!important;margin-bottom:0!important}.margin-horiz--none{margin-left:0!important;margin-right:0!important}.margin--xs{margin:.25rem!important}.margin-top--xs{margin-top:.25rem!important}.margin-left--xs{margin-left:.25rem!important}.margin-bottom--xs{margin-bottom:.25rem!important}.margin-right--xs{margin-right:.25rem!important}.margin-vert--xs{margin-top:.25rem!important;margin-bottom:.25rem!important}.margin-horiz--xs{margin-left:.25rem!important;margin-right:.25rem!important}.margin--sm{margin:.5rem!important}.margin-top--sm{margin-top:.5rem!important}.margin-left--sm{margin-left:.5rem!important}.margin-bottom--sm{margin-bottom:.5rem!important}.margin-right--sm{margin-right:.5rem!important}.margin-vert--sm{margin-top:.5rem!important;margin-bottom:.5rem!important}.margin-horiz--sm{margin-left:.5rem!important;margin-right:.5rem!important}.margin--md{margin:1rem!important}.margin-top--md{margin-top:1rem!important}.margin-left--md{margin-left:1rem!important}.margin-bottom--md{margin-bottom:1rem!important}.margin-right--md{margin-right:1rem!important}.margin-vert--md{margin-top:1rem!important;margin-bottom:1rem!important}.margin-horiz--md{margin-left:1rem!important;margin-right:1rem!important}.margin--lg{margin:2rem!important}.margin-top--lg{margin-top:2rem!important}.margin-left--lg{margin-left:2rem!important}.margin-bottom--lg{margin-bottom:2rem!important}.margin-right--lg{margin-right:2rem!important}.margin-vert--lg{margin-top:2rem!important;margin-bottom:2rem!important}.margin-horiz--lg{margin-left:2rem!important;margin-right:2rem!important}.margin--xl{margin:5rem!important}.margin-top--xl{margin-top:5rem!important}.margin-left--xl{margin-left:5rem!important}.margin-bottom--xl{margin-bottom:5rem!important}.margin-right--xl{margin-right:5rem!important}.margin-vert--xl{margin-top:5rem!important;margin-bottom:5rem!important}.margin-horiz--xl{margin-left:5rem!important;margin-right:5rem!important}.padding--none{padding:0!important}.padding-top--none{padding-top:0!important}.padding-left--none{padding-left:0!important}.padding-bottom--none{padding-bottom:0!important}.padding-right--none{padding-right:0!important}.padding-vert--none{padding-top:0!important;padding-bottom:0!important}.padding-horiz--none{padding-left:0!important;padding-right:0!important}.padding--xs{padding:.25rem!important}.padding-top--xs{padding-top:.25rem!important}.padding-left--xs{padding-left:.25rem!important}.padding-bottom--xs{padding-bottom:.25rem!important}.padding-right--xs{padding-right:.25rem!important}.padding-vert--xs{padding-top:.25rem!important;padding-bottom:.25rem!important}.padding-horiz--xs{padding-left:.25rem!important;padding-right:.25rem!important}.padding--sm{padding:.5rem!important}.padding-top--sm{padding-top:.5rem!important}.padding-left--sm{padding-left:.5rem!important}.padding-bottom--sm{padding-bottom:.5rem!important}.padding-right--sm{padding-right:.5rem!important}.padding-vert--sm{padding-top:.5rem!important;padding-bottom:.5rem!important}.padding-horiz--sm{padding-left:.5rem!important;padding-right:.5rem!important}.padding--md{padding:1rem!important}.padding-top--md{padding-top:1rem!important}.padding-left--md{padding-left:1rem!important}.padding-bottom--md{padding-bottom:1rem!important}.padding-right--md{padding-right:1rem!important}.padding-vert--md{padding-top:1rem!important;padding-bottom:1rem!important}.padding-horiz--md{padding-left:1rem!important;padding-right:1rem!important}.padding--lg{padding:2rem!important}.padding-top--lg{padding-top:2rem!important}.padding-left--lg{padding-left:2rem!important}.padding-bottom--lg{padding-bottom:2rem!important}.padding-right--lg{padding-right:2rem!important}.padding-vert--lg{padding-top:2rem!important;padding-bottom:2rem!important}.padding-horiz--lg{padding-left:2rem!important;padding-right:2rem!important}.padding--xl{padding:5rem!important}.padding-top--xl{padding-top:5rem!important}.padding-left--xl{padding-left:5rem!important}.padding-bottom--xl{padding-bottom:5rem!important}.padding-right--xl{padding-right:5rem!important}.padding-vert--xl{padding-top:5rem!important;padding-bottom:5rem!important}.padding-horiz--xl{padding-left:5rem!important;padding-right:5rem!important}code{background-color:var(--ifm-code-background);border-radius:var(--ifm-code-border-radius);font-family:var(--ifm-font-family-monospace);font-size:var(--ifm-code-font-size);padding:var(--ifm-code-padding-vertical)var(--ifm-code-padding-horizontal);vertical-align:middle;border:.1rem solid rgba(0,0,0,.1)}a code{color:inherit}pre{background-color:var(--ifm-pre-background);border-radius:var(--ifm-pre-border-radius);color:var(--ifm-pre-color);font:var(--ifm-code-font-size)/var(--ifm-pre-line-height)var(--ifm-font-family-monospace);margin:0 0 var(--ifm-spacing-vertical);padding:var(--ifm-pre-padding);overflow:auto}pre code{font-size:100%;line-height:inherit;background-color:transparent;border:none;padding:0}kbd{background-color:var(--ifm-color-emphasis-0);border:1px solid var(--ifm-color-emphasis-400);box-shadow:inset 0 -1px 0 var(--ifm-color-emphasis-400);color:var(--ifm-color-emphasis-800);font:80% var(--ifm-font-family-monospace);border-radius:.2rem;padding:.15rem .3rem}h1,h2,h3,h4,h5,h6{color:var(--ifm-heading-color);font-family:var(--ifm-heading-font-family);font-weight:var(--ifm-heading-font-weight);line-height:var(--ifm-heading-line-height);margin:var(--ifm-heading-margin-top)0 var(--ifm-heading-margin-bottom)0}h1{font-size:var(--ifm-h1-font-size)}h2{font-size:var(--ifm-h2-font-size)}h3{font-size:var(--ifm-h3-font-size)}h4{font-size:var(--ifm-h4-font-size)}h5{font-size:var(--ifm-h5-font-size)}h6{font-size:var(--ifm-h6-font-size)}img{max-width:100%}img[align=right]{padding-left:var(--image-alignment-padding)}img[align=left]{padding-right:var(--image-alignment-padding)}.markdown{--ifm-h1-vertical-rhythm-top:3;--ifm-h2-vertical-rhythm-top:2;--ifm-h3-vertical-rhythm-top:1.5;--ifm-heading-vertical-rhythm-top:1.25;--ifm-h1-vertical-rhythm-bottom:1.25;--ifm-heading-vertical-rhythm-bottom:1}.markdown:before{content:"";display:table}.markdown:after{clear:both;content:"";display:table}.markdown>:last-child{margin-bottom:0!important}.markdown h1:first-child{--ifm-h1-font-size:3rem;margin-bottom:calc(var(--ifm-h1-vertical-rhythm-bottom)*var(--ifm-leading))}.markdown>h2{--ifm-h2-font-size:2rem;margin-bottom:calc(var(--ifm-heading-vertical-rhythm-bottom)*var(--ifm-leading));margin-top:calc(var(--ifm-h2-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h3{--ifm-h3-font-size:1.5rem;margin-bottom:calc(var(--ifm-heading-vertical-rhythm-bottom)*var(--ifm-leading));margin-top:calc(var(--ifm-h3-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h4,.markdown>h5,.markdown>h6{margin-bottom:calc(var(--ifm-heading-vertical-rhythm-bottom)*var(--ifm-leading));margin-top:calc(var(--ifm-heading-vertical-rhythm-top)*var(--ifm-leading))}.markdown>pre,.markdown>ul,.markdown>p{margin-bottom:var(--ifm-leading)}.markdown li{word-wrap:break-word}.markdown li>p{margin-top:var(--ifm-list-paragraph-margin)}.markdown li+li{margin-top:var(--ifm-list-item-margin)}ul,ol{margin:0 0 var(--ifm-list-margin);padding-left:var(--ifm-list-left-padding)}ol ol,ul ol{list-style-type:lower-roman}ul ul,ul ol,ol ol,ol ul{margin:0}ul ul ol,ul ol ol,ol ul ol,ol ol ol{list-style-type:lower-alpha}table{border-collapse:collapse;margin-bottom:var(--ifm-spacing-vertical);display:block;overflow:auto}table thead tr{border-bottom:2px solid var(--ifm-table-border-color)}table thead{background-color:var(--ifm-table-stripe-background)}table tr{background-color:var(--ifm-table-background);border-top:var(--ifm-table-border-width)solid var(--ifm-table-border-color)}table tr:nth-child(2n){background-color:var(--ifm-table-stripe-background)}table th,table td{border:var(--ifm-table-border-width)solid var(--ifm-table-border-color);padding:var(--ifm-table-cell-padding)}table th{background-color:var(--ifm-table-head-background);color:var(--ifm-table-head-color);font-weight:var(--ifm-table-head-font-weight)}table td{color:var(--ifm-table-cell-color)}strong{font-weight:var(--ifm-font-weight-bold)}a{color:var(--ifm-link-color);-webkit-text-decoration:var(--ifm-link-decoration);text-decoration:var(--ifm-link-decoration);transition:color var(--ifm-transition-fast)var(--ifm-transition-timing-default)}a:hover{color:var(--ifm-link-hover-color);-webkit-text-decoration:var(--ifm-link-hover-decoration);text-decoration:var(--ifm-link-hover-decoration)}a:not([href]){-webkit-text-decoration:none;text-decoration:none}p{margin:0 0 var(--ifm-paragraph-margin-bottom)}blockquote{border-left:var(--ifm-blockquote-border-left-width)solid var(--ifm-blockquote-border-color);box-shadow:var(--ifm-blockquote-shadow);color:var(--ifm-blockquote-color);font-size:var(--ifm-blockquote-font-size);margin:0 0 var(--ifm-spacing-vertical);padding:var(--ifm-blockquote-padding-vertical)var(--ifm-blockquote-padding-horizontal)}blockquote>:first-child{margin-top:0}blockquote>:last-child{margin-bottom:0}hr{background-color:var(--ifm-hr-background-color);height:var(--ifm-hr-height);margin:var(--ifm-hr-margin-vertical)0;border:0}.shadow--lw{box-shadow:var(--ifm-global-shadow-lw)!important}.shadow--md{box-shadow:var(--ifm-global-shadow-md)!important}.shadow--tl{box-shadow:var(--ifm-global-shadow-tl)!important}.text--primary{color:var(--ifm-color-primary)}.text--secondary{color:var(--ifm-color-secondary)}.text--success{color:var(--ifm-color-success)}.text--info{color:var(--ifm-color-info)}.text--warning{color:var(--ifm-color-warning)}.text--danger{color:var(--ifm-color-danger)}.text--center{text-align:center}.text--left{text-align:left}.text--justify{text-align:justify}.text--right{text-align:right}.text--capitalize{text-transform:capitalize}.text--lowercase{text-transform:lowercase}.text--uppercase{text-transform:uppercase}.text--light{font-weight:var(--ifm-font-weight-light)}.text--normal{font-weight:var(--ifm-font-weight-normal)}.text--semibold{font-weight:var(--ifm-font-weight-semibold)}.text--bold{font-weight:var(--ifm-font-weight-bold)}.text--italic{font-style:italic}.text--truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.text--break{word-wrap:break-word!important;word-break:break-word!important}.text--no-decoration,.text--no-decoration:hover{-webkit-text-decoration:none;text-decoration:none}.clean-btn{color:inherit;cursor:pointer;background:0 0;border:none;padding:0;font-family:inherit}.clean-list{padding-left:0;list-style:none}.alert--primary{--ifm-alert-background-color:var(--ifm-color-primary-contrast-background);--ifm-alert-background-color-highlight:rgba(53,120,229,.15);--ifm-alert-foreground-color:var(--ifm-color-primary-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-primary-dark)}.alert--secondary{--ifm-alert-background-color:var(--ifm-color-secondary-contrast-background);--ifm-alert-background-color-highlight:rgba(235,237,240,.15);--ifm-alert-foreground-color:var(--ifm-color-secondary-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-secondary-dark)}.alert--success{--ifm-alert-background-color:var(--ifm-color-success-contrast-background);--ifm-alert-background-color-highlight:rgba(0,164,0,.15);--ifm-alert-foreground-color:var(--ifm-color-success-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-success-dark)}.alert--info{--ifm-alert-background-color:var(--ifm-color-info-contrast-background);--ifm-alert-background-color-highlight:rgba(84,199,236,.15);--ifm-alert-foreground-color:var(--ifm-color-info-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-info-dark)}.alert--warning{--ifm-alert-background-color:var(--ifm-color-warning-contrast-background);--ifm-alert-background-color-highlight:rgba(255,186,0,.15);--ifm-alert-foreground-color:var(--ifm-color-warning-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-warning-dark)}.alert--danger{--ifm-alert-background-color:var(--ifm-color-danger-contrast-background);--ifm-alert-background-color-highlight:rgba(250,56,62,.15);--ifm-alert-foreground-color:var(--ifm-color-danger-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-danger-dark)}.alert{--ifm-code-background:var(--ifm-alert-background-color-highlight);--ifm-link-color:var(--ifm-alert-foreground-color);--ifm-link-hover-color:var(--ifm-alert-foreground-color);--ifm-link-decoration:underline;--ifm-tabs-color:var(--ifm-alert-foreground-color);--ifm-tabs-color-active:var(--ifm-alert-foreground-color);--ifm-tabs-color-active-border:var(--ifm-alert-border-color);background-color:var(--ifm-alert-background-color);border:var(--ifm-alert-border-width)solid var(--ifm-alert-border-color);border-left-width:var(--ifm-alert-border-left-width);border-radius:var(--ifm-alert-border-radius);box-shadow:var(--ifm-alert-shadow);color:var(--ifm-alert-foreground-color);padding:var(--ifm-alert-padding-vertical)var(--ifm-alert-padding-horizontal)}.alert__heading{font:bold var(--ifm-h5-font-size)/var(--ifm-heading-line-height)var(--ifm-heading-font-family);text-transform:uppercase;align-items:center;margin-bottom:.5rem;display:flex}.alert__icon{margin-right:.4em;display:inline-flex}.alert__icon svg{fill:var(--ifm-alert-foreground-color);stroke:var(--ifm-alert-foreground-color);stroke-width:0}.alert .close{color:var(--ifm-alert-foreground-color);margin:calc(var(--ifm-alert-padding-vertical)*-1)calc(var(--ifm-alert-padding-horizontal)*-1)0 0;opacity:.75}.alert .close:hover,.alert .close:focus{opacity:1}.alert a{-webkit-text-decoration-color:var(--ifm-alert-border-color);text-decoration-color:var(--ifm-alert-border-color)}.alert a:hover{text-decoration-thickness:2px}.avatar{column-gap:var(--ifm-avatar-intro-margin);display:flex}.avatar__photo{height:var(--ifm-avatar-photo-size);width:var(--ifm-avatar-photo-size);border-radius:50%;display:block;overflow:hidden}.avatar__photo--sm{--ifm-avatar-photo-size:2rem}.avatar__photo--lg{--ifm-avatar-photo-size:4rem}.avatar__photo--xl{--ifm-avatar-photo-size:6rem}.avatar__intro{text-align:var(--ifm-avatar-intro-alignment);flex-direction:column;flex:1;justify-content:center;display:flex}.avatar__name{font:bold var(--ifm-h4-font-size)/var(--ifm-heading-line-height)var(--ifm-font-family-base)}.avatar__subtitle{margin-top:.25rem}.avatar--vertical{--ifm-avatar-intro-alignment:center;--ifm-avatar-intro-margin:.5rem;flex-direction:column;align-items:center}.badge{background-color:var(--ifm-badge-background-color);border:var(--ifm-badge-border-width)solid var(--ifm-badge-border-color);border-radius:var(--ifm-badge-border-radius);color:var(--ifm-badge-color);font-size:75%;font-weight:var(--ifm-font-weight-bold);padding:var(--ifm-badge-padding-vertical)var(--ifm-badge-padding-horizontal);line-height:1;display:inline-block}.badge--primary{--ifm-badge-background-color:var(--ifm-color-primary);--ifm-badge-border-color:var(--ifm-badge-background-color)}.badge--secondary{--ifm-badge-background-color:var(--ifm-color-secondary);--ifm-badge-border-color:var(--ifm-badge-background-color);color:var(--ifm-color-black)}.badge--success{--ifm-badge-background-color:var(--ifm-color-success);--ifm-badge-border-color:var(--ifm-badge-background-color)}.badge--info{--ifm-badge-background-color:var(--ifm-color-info);--ifm-badge-border-color:var(--ifm-badge-background-color)}.badge--warning{--ifm-badge-background-color:var(--ifm-color-warning);--ifm-badge-border-color:var(--ifm-badge-background-color)}.badge--danger{--ifm-badge-background-color:var(--ifm-color-danger);--ifm-badge-border-color:var(--ifm-badge-background-color)}.breadcrumbs{margin-bottom:0;padding-left:0}.breadcrumbs__item{display:inline-block}.breadcrumbs__item:not(:last-child):after{background:var(--ifm-breadcrumb-separator)center;content:" ";filter:var(--ifm-breadcrumb-separator-filter);height:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier));margin:0 var(--ifm-breadcrumb-spacing);opacity:.5;width:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier));display:inline-block}.breadcrumbs__item--active .breadcrumbs__link{background:var(--ifm-breadcrumb-item-background-active);color:var(--ifm-breadcrumb-color-active)}.breadcrumbs__link{border-radius:var(--ifm-breadcrumb-border-radius);color:var(--ifm-font-color-base);font-size:calc(1rem*var(--ifm-breadcrumb-size-multiplier));padding:calc(var(--ifm-breadcrumb-padding-vertical)*var(--ifm-breadcrumb-size-multiplier))calc(var(--ifm-breadcrumb-padding-horizontal)*var(--ifm-breadcrumb-size-multiplier));transition-property:background,color;transition-duration:var(--ifm-transition-fast);transition-timing-function:var(--ifm-transition-timing-default);display:inline-block}.breadcrumbs__link:link:hover,.breadcrumbs__link:visited:hover,area[href].breadcrumbs__link:hover{background:var(--ifm-breadcrumb-item-background-active);-webkit-text-decoration:none;text-decoration:none}.breadcrumbs__link:any-link:hover{background:var(--ifm-breadcrumb-item-background-active);-webkit-text-decoration:none;text-decoration:none}.breadcrumbs--sm{--ifm-breadcrumb-size-multiplier:.8}.breadcrumbs--lg{--ifm-breadcrumb-size-multiplier:1.2}.button{background-color:var(--ifm-button-background-color);border:var(--ifm-button-border-width)solid var(--ifm-button-border-color);border-radius:var(--ifm-button-border-radius);color:var(--ifm-button-color);cursor:pointer;font-size:calc(.875rem*var(--ifm-button-size-multiplier));font-weight:var(--ifm-button-font-weight);padding:calc(var(--ifm-button-padding-vertical)*var(--ifm-button-size-multiplier))calc(var(--ifm-button-padding-horizontal)*var(--ifm-button-size-multiplier));text-align:center;-webkit-user-select:none;user-select:none;vertical-align:middle;white-space:nowrap;transition-property:color,background,border-color;transition-duration:var(--ifm-button-transition-duration);transition-timing-function:var(--ifm-transition-timing-default);line-height:1.5;display:inline-block}.button:hover{color:var(--ifm-button-color);-webkit-text-decoration:none;text-decoration:none}.button--outline{--ifm-button-background-color:transparent;--ifm-button-color:var(--ifm-button-border-color)}.button--outline:hover{--ifm-button-background-color:var(--ifm-button-border-color)}.button--outline:hover,.button--outline:active,.button--outline.button--active{--ifm-button-color:var(--ifm-font-color-base-inverse)}.button--link{--ifm-button-background-color:transparent;--ifm-button-border-color:transparent;color:var(--ifm-link-color);-webkit-text-decoration:var(--ifm-link-decoration);text-decoration:var(--ifm-link-decoration)}.button--link:hover,.button--link:active,.button--link.button--active{color:var(--ifm-link-hover-color);-webkit-text-decoration:var(--ifm-link-hover-decoration);text-decoration:var(--ifm-link-hover-decoration)}.button.disabled,.button:disabled,.button[disabled]{opacity:.65;pointer-events:none}.button--sm{--ifm-button-size-multiplier:.8}.button--lg{--ifm-button-size-multiplier:1.35}.button--block{width:100%;display:block}.button.button--secondary{color:var(--ifm-color-gray-900)}.button.button--secondary.button--outline:not(.button--active):not(:hover){color:var(--ifm-font-color-base)}:where(.button--primary){--ifm-button-background-color:var(--ifm-color-primary);--ifm-button-border-color:var(--ifm-color-primary)}:where(.button--primary):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-primary-dark);--ifm-button-border-color:var(--ifm-color-primary-dark)}.button--primary:active,.button--primary.button--active{--ifm-button-background-color:var(--ifm-color-primary-darker);--ifm-button-border-color:var(--ifm-color-primary-darker)}:where(.button--secondary){--ifm-button-background-color:var(--ifm-color-secondary);--ifm-button-border-color:var(--ifm-color-secondary)}:where(.button--secondary):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-secondary-dark);--ifm-button-border-color:var(--ifm-color-secondary-dark)}.button--secondary:active,.button--secondary.button--active{--ifm-button-background-color:var(--ifm-color-secondary-darker);--ifm-button-border-color:var(--ifm-color-secondary-darker)}:where(.button--success){--ifm-button-background-color:var(--ifm-color-success);--ifm-button-border-color:var(--ifm-color-success)}:where(.button--success):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-success-dark);--ifm-button-border-color:var(--ifm-color-success-dark)}.button--success:active,.button--success.button--active{--ifm-button-background-color:var(--ifm-color-success-darker);--ifm-button-border-color:var(--ifm-color-success-darker)}:where(.button--info){--ifm-button-background-color:var(--ifm-color-info);--ifm-button-border-color:var(--ifm-color-info)}:where(.button--info):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-info-dark);--ifm-button-border-color:var(--ifm-color-info-dark)}.button--info:active,.button--info.button--active{--ifm-button-background-color:var(--ifm-color-info-darker);--ifm-button-border-color:var(--ifm-color-info-darker)}:where(.button--warning){--ifm-button-background-color:var(--ifm-color-warning);--ifm-button-border-color:var(--ifm-color-warning)}:where(.button--warning):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-warning-dark);--ifm-button-border-color:var(--ifm-color-warning-dark)}.button--warning:active,.button--warning.button--active{--ifm-button-background-color:var(--ifm-color-warning-darker);--ifm-button-border-color:var(--ifm-color-warning-darker)}:where(.button--danger){--ifm-button-background-color:var(--ifm-color-danger);--ifm-button-border-color:var(--ifm-color-danger)}:where(.button--danger):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-danger-dark);--ifm-button-border-color:var(--ifm-color-danger-dark)}.button--danger:active,.button--danger.button--active{--ifm-button-background-color:var(--ifm-color-danger-darker);--ifm-button-border-color:var(--ifm-color-danger-darker)}.button-group{gap:var(--ifm-button-group-spacing);display:inline-flex}.button-group>.button:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.button-group>.button:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.button-group--block{justify-content:stretch;display:flex}.button-group--block>.button{flex-grow:1}.card{background-color:var(--ifm-card-background-color);border-radius:var(--ifm-card-border-radius);box-shadow:var(--ifm-global-shadow-lw);flex-direction:column;display:flex;overflow:hidden}.card--full-height{height:100%}.card__image{padding-top:var(--ifm-card-vertical-spacing)}.card__image:first-child{padding-top:0}.card__header,.card__body,.card__footer{padding:var(--ifm-card-vertical-spacing)var(--ifm-card-horizontal-spacing)}.card__header:not(:last-child),.card__body:not(:last-child),.card__footer:not(:last-child){padding-bottom:0}.card__header>:last-child,.card__body>:last-child,.card__footer>:last-child{margin-bottom:0}.card__footer{margin-top:auto}.table-of-contents{padding:var(--ifm-toc-padding-vertical)0;margin-bottom:0;font-size:.8rem}.table-of-contents,.table-of-contents ul{padding-left:var(--ifm-toc-padding-horizontal);list-style:none}.table-of-contents li{margin:var(--ifm-toc-padding-vertical)var(--ifm-toc-padding-horizontal)}.table-of-contents__left-border{border-left:1px solid var(--ifm-toc-border-color)}.table-of-contents__link{color:var(--ifm-toc-link-color);display:block}.table-of-contents__link:hover,.table-of-contents__link:hover code,.table-of-contents__link--active,.table-of-contents__link--active code{color:var(--ifm-color-primary);-webkit-text-decoration:none;text-decoration:none}.close{color:var(--ifm-color-black);float:right;font-size:1.5rem;font-weight:var(--ifm-font-weight-bold);opacity:.5;transition:opacity var(--ifm-transition-fast)var(--ifm-transition-timing-default);padding:1rem;line-height:1}.close:hover{opacity:.7}.close:focus{opacity:.8}.dropdown{font-weight:var(--ifm-dropdown-font-weight);vertical-align:top;display:inline-flex;position:relative}.dropdown--hoverable:hover .dropdown__menu,.dropdown--show .dropdown__menu{opacity:1;pointer-events:all;visibility:visible;transform:translateY(-1px)}.dropdown--right .dropdown__menu{left:inherit;right:0}.dropdown--nocaret .navbar__link:after{content:none!important}.dropdown__menu{background-color:var(--ifm-dropdown-background-color);border-radius:var(--ifm-global-radius);box-shadow:var(--ifm-global-shadow-md);opacity:0;pointer-events:none;min-width:10rem;max-height:80vh;left:0;top:calc(100% - var(--ifm-navbar-item-padding-vertical) + .3rem);visibility:hidden;z-index:var(--ifm-z-index-dropdown);transition-property:opacity,transform,visibility;transition-duration:var(--ifm-transition-fast);transition-timing-function:var(--ifm-transition-timing-default);padding:.5rem;list-style:none;position:absolute;overflow-y:auto;transform:translateY(-.625rem)}.dropdown__link{color:var(--ifm-dropdown-link-color);white-space:nowrap;border-radius:.25rem;margin-top:.2rem;padding:.25rem .5rem;font-size:.875rem;display:block}.dropdown__link:hover,.dropdown__link--active{background-color:var(--ifm-dropdown-hover-background-color);color:var(--ifm-dropdown-link-color);-webkit-text-decoration:none;text-decoration:none}.dropdown__link--active,.dropdown__link--active:hover{--ifm-dropdown-link-color:var(--ifm-link-color)}.dropdown>.navbar__link:after{content:"";border:.4em solid transparent;border-top-color:currentColor;border-bottom:0 solid;margin-left:.3em;display:inline-block;position:relative;top:2px;transform:translateY(-50%)}.footer{background-color:var(--ifm-footer-background-color);color:var(--ifm-footer-color);padding:var(--ifm-footer-padding-vertical)var(--ifm-footer-padding-horizontal)}.footer--dark{--ifm-footer-background-color:#303846;--ifm-footer-color:var(--ifm-footer-link-color);--ifm-footer-link-color:var(--ifm-color-secondary);--ifm-footer-title-color:var(--ifm-color-white)}.footer__links{margin-bottom:1rem}.footer__link-item{color:var(--ifm-footer-link-color);line-height:2}.footer__link-item:hover{color:var(--ifm-footer-link-hover-color)}.footer__link-separator{margin:0 var(--ifm-footer-link-horizontal-spacing)}.footer__logo{max-width:var(--ifm-footer-logo-max-width);margin-top:1rem}.footer__title{color:var(--ifm-footer-title-color);font:bold var(--ifm-h4-font-size)/var(--ifm-heading-line-height)var(--ifm-font-family-base);margin-bottom:var(--ifm-heading-margin-bottom)}.footer__item{margin-top:0}.footer__items{margin-bottom:0}[type=checkbox]{padding:0}.hero{background-color:var(--ifm-hero-background-color);color:var(--ifm-hero-text-color);align-items:center;padding:4rem 2rem;display:flex}.hero--primary{--ifm-hero-background-color:var(--ifm-color-primary);--ifm-hero-text-color:var(--ifm-font-color-base-inverse)}.hero--dark{--ifm-hero-background-color:#303846;--ifm-hero-text-color:var(--ifm-color-white)}.hero__title{font-size:3rem}.hero__subtitle{font-size:1.5rem}.menu{font-weight:var(--ifm-font-weight-semibold);overflow-x:hidden}.menu__list{margin:0;padding-left:0;list-style:none}.menu__list .menu__list{padding-left:var(--ifm-menu-link-padding-horizontal);flex:0 0 100%;margin-top:.25rem}.menu__list-item:not(:first-child){margin-top:.25rem}.menu__list-item--collapsed .menu__list{height:0;overflow:hidden}.menu__list-item--collapsed .menu__link--sublist:after,.menu__list-item--collapsed .menu__caret:before{transform:rotate(90deg)}.menu__list-item-collapsible{transition:background var(--ifm-transition-fast)var(--ifm-transition-timing-default);border-radius:.25rem;flex-wrap:wrap;display:flex;position:relative}.menu__list-item-collapsible:hover,.menu__list-item-collapsible--active{background:var(--ifm-menu-color-background-hover)}.menu__list-item-collapsible .menu__link:hover,.menu__list-item-collapsible .menu__link--active{background:0 0!important}.menu__link,.menu__caret{transition:background var(--ifm-transition-fast)var(--ifm-transition-timing-default);border-radius:.25rem;align-items:center;display:flex}.menu__link:hover,.menu__caret:hover{background:var(--ifm-menu-color-background-hover)}.menu__link{color:var(--ifm-menu-color);padding:var(--ifm-menu-link-padding-vertical)var(--ifm-menu-link-padding-horizontal);flex:1;line-height:1.25}.menu__link:hover{color:var(--ifm-menu-color);transition:color var(--ifm-transition-fast)var(--ifm-transition-timing-default);-webkit-text-decoration:none;text-decoration:none}.menu__link--sublist-caret:after{content:"";background:var(--ifm-menu-link-sublist-icon)50%/2rem 2rem;min-width:1.25rem;filter:var(--ifm-menu-link-sublist-icon-filter);width:1.25rem;height:1.25rem;transition:transform var(--ifm-transition-fast)linear;margin-left:auto;transform:rotate(180deg)}.menu__link--active,.menu__link--active:hover{color:var(--ifm-menu-color-active)}.menu__link--active:not(.menu__link--sublist){background-color:var(--ifm-menu-color-background-active)}.menu__caret{padding:var(--ifm-menu-link-padding-vertical)var(--ifm-menu-link-padding-horizontal)}.menu__caret:before{content:"";background:var(--ifm-menu-link-sublist-icon)50%/2rem 2rem;filter:var(--ifm-menu-link-sublist-icon-filter);width:1.25rem;height:1.25rem;transition:transform var(--ifm-transition-fast)linear;transform:rotate(180deg)}html[data-theme=dark],.navbar--dark{--ifm-menu-link-sublist-icon-filter:invert(100%)sepia(94%)saturate(17%)hue-rotate(223deg)brightness(104%)contrast(98%)}.navbar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-navbar-shadow);height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical)var(--ifm-navbar-padding-horizontal);display:flex}.navbar>.container,.navbar>.container-fluid{display:flex}.navbar--fixed-top{z-index:var(--ifm-z-index-fixed);position:sticky;top:0}.navbar__inner{flex-wrap:wrap;justify-content:space-between;width:100%;display:flex}.navbar__brand{color:var(--ifm-navbar-link-color);align-items:center;min-width:0;margin-right:1rem;display:flex}.navbar__brand:hover{color:var(--ifm-navbar-link-hover-color);-webkit-text-decoration:none;text-decoration:none}.navbar__title{flex:auto}.navbar__toggle{margin-right:.5rem;display:none}.navbar__logo{flex:none;height:2rem;margin-right:.5rem}.navbar__logo img{height:100%}.navbar__items{flex:1;align-items:center;min-width:0;display:flex}.navbar__items--center{flex:none}.navbar__items--center .navbar__brand{margin:0}.navbar__items--center+.navbar__items--right{flex:1}.navbar__items--right{flex:none;justify-content:flex-end}.navbar__items--right>:last-child{padding-right:0}.navbar__item{padding:var(--ifm-navbar-item-padding-vertical)var(--ifm-navbar-item-padding-horizontal);display:inline-block}.navbar__item.dropdown .navbar__link:not([href]){pointer-events:none}.navbar__link{color:var(--ifm-navbar-link-color);font-weight:var(--ifm-font-weight-semibold)}.navbar__link:hover,.navbar__link--active{color:var(--ifm-navbar-link-hover-color);-webkit-text-decoration:none;text-decoration:none}.navbar--dark,.navbar--primary{--ifm-menu-color:var(--ifm-color-gray-300);--ifm-navbar-link-color:var(--ifm-color-gray-100);--ifm-navbar-search-input-background-color:rgba(255,255,255,.1);--ifm-navbar-search-input-placeholder-color:rgba(255,255,255,.5);color:var(--ifm-color-white)}.navbar--dark{--ifm-navbar-background-color:#242526;--ifm-navbar-link-hover-color:var(--ifm-color-primary);--ifm-menu-color-background-active:rgba(255,255,255,.05);--ifm-navbar-search-input-color:var(--ifm-color-white)}.navbar--primary{--ifm-navbar-background-color:var(--ifm-color-primary);--ifm-navbar-link-hover-color:var(--ifm-color-white);--ifm-menu-color-active:var(--ifm-color-white);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-500)}.navbar__search-input{appearance:none;background:var(--ifm-navbar-search-input-background-color)var(--ifm-navbar-search-input-icon)no-repeat .75rem center/1rem 1rem;color:var(--ifm-navbar-search-input-color);cursor:text;border:none;border-radius:2rem;width:12.5rem;height:2rem;padding:0 .5rem 0 2.25rem;font-size:1rem;display:inline-block}.navbar__search-input::placeholder{color:var(--ifm-navbar-search-input-placeholder-color)}.navbar-sidebar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-global-shadow-md);opacity:0;visibility:hidden;width:var(--ifm-navbar-sidebar-width);transition-property:opacity,visibility,transform;transition-duration:var(--ifm-transition-fast);transition-timing-function:ease-in-out;position:fixed;top:0;bottom:0;left:0;overflow-x:hidden;transform:translate(-100%)}.navbar-sidebar--show .navbar-sidebar,.navbar-sidebar--show .navbar-sidebar__backdrop{opacity:1;visibility:visible}.navbar-sidebar--show .navbar-sidebar{transform:translate(0,0)}.navbar-sidebar__backdrop{opacity:0;visibility:hidden;transition-property:opacity,visibility;transition-duration:var(--ifm-transition-fast);background-color:rgba(0,0,0,.6);transition-timing-function:ease-in-out;position:fixed;inset:0}.navbar-sidebar__brand{box-shadow:var(--ifm-navbar-shadow);height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical)var(--ifm-navbar-padding-horizontal);flex:1;align-items:center;display:flex}.navbar-sidebar__items{height:calc(100% - var(--ifm-navbar-height));transition:transform var(--ifm-transition-fast)ease-in-out;display:flex;transform:translateZ(0)}.navbar-sidebar__items--show-secondary{transform:translate3d(calc((var(--ifm-navbar-sidebar-width))*-1),0,0)}.navbar-sidebar__item{width:calc(var(--ifm-navbar-sidebar-width));flex-shrink:0;padding:.5rem}.navbar-sidebar__back{background:var(--ifm-menu-color-background-active);font-size:15px;font-weight:var(--ifm-button-font-weight);text-align:left;width:calc(100% + 1rem);margin:0 0 .2rem -.5rem;padding:.6rem 1.5rem;position:relative;top:-.5rem}.navbar-sidebar__close{margin-left:auto;display:flex}.pagination{column-gap:var(--ifm-pagination-page-spacing);font-size:var(--ifm-pagination-font-size);padding-left:0;display:flex}.pagination--sm{--ifm-pagination-font-size:.8rem;--ifm-pagination-padding-horizontal:.8rem;--ifm-pagination-padding-vertical:.2rem}.pagination--lg{--ifm-pagination-font-size:1.2rem;--ifm-pagination-padding-horizontal:1.2rem;--ifm-pagination-padding-vertical:.3rem}.pagination__item{display:inline-flex}.pagination__item>span{padding:var(--ifm-pagination-padding-vertical)}.pagination__item--active .pagination__link{background:var(--ifm-pagination-item-active-background);color:var(--ifm-pagination-color-active)}.pagination__item:not(.pagination__item--active):hover .pagination__link{background:var(--ifm-pagination-item-active-background)}.pagination__item--disabled,.pagination__item[disabled]{opacity:.25;pointer-events:none}.pagination__link{border-radius:var(--ifm-pagination-border-radius);color:var(--ifm-font-color-base);padding:var(--ifm-pagination-padding-vertical)var(--ifm-pagination-padding-horizontal);transition:background var(--ifm-transition-fast)var(--ifm-transition-timing-default);display:inline-block}.pagination__link:hover{-webkit-text-decoration:none;text-decoration:none}.pagination-nav{grid-gap:var(--ifm-spacing-horizontal);gap:var(--ifm-spacing-horizontal);grid-template-columns:repeat(2,1fr);display:grid}.pagination-nav__link{border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-pagination-nav-border-radius);height:100%;line-height:var(--ifm-heading-line-height);padding:var(--ifm-global-spacing);transition:border-color var(--ifm-transition-fast)var(--ifm-transition-timing-default);display:block}.pagination-nav__link:hover{border-color:var(--ifm-pagination-nav-color-hover);-webkit-text-decoration:none;text-decoration:none}.pagination-nav__link--next{text-align:right;grid-column:2/3}.pagination-nav__label{font-size:var(--ifm-h4-font-size);font-weight:var(--ifm-heading-font-weight);word-break:break-word}.pagination-nav__link--prev .pagination-nav__label:before{content:"« "}.pagination-nav__link--next .pagination-nav__label:after{content:" »"}.pagination-nav__sublabel{color:var(--ifm-color-content-secondary);font-size:var(--ifm-h5-font-size);font-weight:var(--ifm-font-weight-semibold);margin-bottom:.25rem}.pills{gap:var(--ifm-pills-spacing);padding-left:0;display:flex}.pills__item{cursor:pointer;font-weight:var(--ifm-font-weight-bold);transition:background var(--ifm-transition-fast)var(--ifm-transition-timing-default);border-radius:.5rem;padding:.25rem 1rem;display:inline-block}.pills__item--active{background:var(--ifm-pills-color-background-active);color:var(--ifm-pills-color-active)}.pills__item:not(.pills__item--active):hover{background:var(--ifm-pills-color-background-active)}.pills--block{justify-content:stretch}.pills--block .pills__item{text-align:center;flex-grow:1}.tabs{color:var(--ifm-tabs-color);font-weight:var(--ifm-font-weight-bold);margin-bottom:0;padding-left:0;display:flex;overflow-x:auto}.tabs__item{border-radius:var(--ifm-global-radius);cursor:pointer;padding:var(--ifm-tabs-padding-vertical)var(--ifm-tabs-padding-horizontal);transition:background-color var(--ifm-transition-fast)var(--ifm-transition-timing-default);border-bottom:3px solid transparent;display:inline-flex}.tabs__item--active{border-bottom-color:var(--ifm-tabs-color-active-border);color:var(--ifm-tabs-color-active);border-bottom-right-radius:0;border-bottom-left-radius:0}.tabs__item:hover{background-color:var(--ifm-hover-overlay)}.tabs--block{justify-content:stretch}.tabs--block .tabs__item{flex-grow:1;justify-content:center}html[data-theme=dark]{--ifm-color-scheme:dark;--ifm-color-emphasis-0:var(--ifm-color-gray-1000);--ifm-color-emphasis-100:var(--ifm-color-gray-900);--ifm-color-emphasis-200:var(--ifm-color-gray-800);--ifm-color-emphasis-300:var(--ifm-color-gray-700);--ifm-color-emphasis-400:var(--ifm-color-gray-600);--ifm-color-emphasis-500:var(--ifm-color-gray-500);--ifm-color-emphasis-600:var(--ifm-color-gray-400);--ifm-color-emphasis-700:var(--ifm-color-gray-300);--ifm-color-emphasis-800:var(--ifm-color-gray-200);--ifm-color-emphasis-900:var(--ifm-color-gray-100);--ifm-color-emphasis-1000:var(--ifm-color-gray-0);--ifm-background-color:#1b1b1d;--ifm-background-surface-color:#242526;--ifm-hover-overlay:rgba(255,255,255,.05);--ifm-color-content:#e3e3e3;--ifm-color-content-secondary:#fff;--ifm-breadcrumb-separator-filter:invert(64%)sepia(11%)saturate(0%)hue-rotate(149deg)brightness(99%)contrast(95%);--ifm-code-background:rgba(255,255,255,.1);--ifm-scrollbar-track-background-color:#444;--ifm-scrollbar-thumb-background-color:#686868;--ifm-scrollbar-thumb-hover-background-color:#7a7a7a;--ifm-table-stripe-background:rgba(255,255,255,.07);--ifm-toc-border-color:var(--ifm-color-emphasis-200);--ifm-color-primary-contrast-background:#102445;--ifm-color-primary-contrast-foreground:#ebf2fc;--ifm-color-secondary-contrast-background:#474748;--ifm-color-secondary-contrast-foreground:#fdfdfe;--ifm-color-success-contrast-background:#003100;--ifm-color-success-contrast-foreground:#e6f6e6;--ifm-color-info-contrast-background:#193c47;--ifm-color-info-contrast-foreground:#eef9fd;--ifm-color-warning-contrast-background:#4d3800;--ifm-color-warning-contrast-foreground:#fff8e6;--ifm-color-danger-contrast-background:#4b1113;--ifm-color-danger-contrast-foreground:#ffebec}@media (width>=1440px){.container{max-width:var(--ifm-container-width-xl)}}@media (width<=996px){.col{--ifm-col-width:100%;flex-basis:var(--ifm-col-width);margin-left:0}.footer{--ifm-footer-padding-horizontal:0}.footer__link-separator{display:none}.footer__col{margin-bottom:calc(var(--ifm-spacing-vertical)*3)}.footer__link-item{width:max-content;display:block}.hero{padding-left:0;padding-right:0}.navbar>.container,.navbar>.container-fluid{padding:0}.navbar__toggle{display:inherit}.navbar__item{display:none}.navbar__search-input{width:9rem}.pills--block,.tabs--block{flex-direction:column}}@media (width<=576px){.markdown h1:first-child{--ifm-h1-font-size:2rem}.markdown>h2{--ifm-h2-font-size:1.5rem}.markdown>h3{--ifm-h3-font-size:1.25rem}}@media (pointer:fine){.thin-scrollbar{scrollbar-width:thin}.thin-scrollbar::-webkit-scrollbar{height:var(--ifm-scrollbar-size);width:var(--ifm-scrollbar-size)}.thin-scrollbar::-webkit-scrollbar-track{background:var(--ifm-scrollbar-track-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb{background:var(--ifm-scrollbar-thumb-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb:hover{background:var(--ifm-scrollbar-thumb-hover-background-color)}}@media (prefers-reduced-motion:reduce){:root{--ifm-transition-fast:0s;--ifm-transition-slow:0s}}@media print{.table-of-contents,.footer,.menu,.navbar,.pagination-nav{display:none}.tabs{page-break-inside:avoid}}}@layer docusaurus.theme-common{.themedComponent_dt6d{display:none}[data-theme=light] .themedComponent--light_XcPj,[data-theme=dark] .themedComponent--dark_QMpS,html:not([data-theme]) .themedComponent--light_XcPj{display:initial}.errorBoundaryError_PTLG{white-space:pre-wrap;color:red}.errorBoundaryFallback_wFxy{color:red;padding:.55rem}.anchorTargetStickyNavbar_zfeO{scroll-margin-top:calc(var(--ifm-navbar-height) + .5rem)}.anchorTargetHideOnScrollNavbar_Lo9g{scroll-margin-top:.5rem}.details_hSk0{--docusaurus-details-summary-arrow-size:.38rem;--docusaurus-details-transition:transform .2s ease;--docusaurus-details-decoration-color:grey}.details_hSk0>summary{cursor:pointer;padding-left:1rem;list-style:none;position:relative}.details_hSk0>summary::-webkit-details-marker{display:none}.details_hSk0>summary:before{content:"";border-width:var(--docusaurus-details-summary-arrow-size);border-style:solid;border-color:transparent transparent transparent var(--docusaurus-details-decoration-color);transition:var(--docusaurus-details-transition);transform-origin:calc(var(--docusaurus-details-summary-arrow-size)/2)50%;position:absolute;top:.45rem;left:0;transform:rotate(0)}.details_hSk0[open]:not(.isBrowser_J20b)>summary:before,.details_hSk0[data-collapsed=false].isBrowser_J20b>summary:before{transform:rotate(90deg)}.collapsibleContent_leZz{border-top:1px solid var(--docusaurus-details-decoration-color);margin-top:1rem;padding-top:1rem}.collapsibleContent_leZz p:last-child,.details_hSk0>summary>p:last-child{margin-bottom:0}}@layer docusaurus.theme-classic{:root{--docusaurus-progress-bar-color:var(--ifm-color-primary)}#nprogress{pointer-events:none}#nprogress .bar{background:var(--docusaurus-progress-bar-color);z-index:1031;width:100%;height:2px;position:fixed;top:0;left:0}#nprogress .peg{width:100px;height:100%;box-shadow:0 0 10px var(--docusaurus-progress-bar-color),0 0 5px var(--docusaurus-progress-bar-color);opacity:1;position:absolute;right:0;transform:rotate(3deg)translateY(-4px)}.skipToContent_Sb3a{z-index:calc(var(--ifm-z-index-fixed) + 1);padding:calc(var(--ifm-global-spacing)/2)var(--ifm-global-spacing);color:var(--ifm-color-emphasis-900);background-color:var(--ifm-background-surface-color);position:fixed;top:1rem;left:100%}.skipToContent_Sb3a:focus{box-shadow:var(--ifm-global-shadow-md);left:1rem}.closeButton_Z3pV{padding:0;line-height:0}.content_PfKe{text-align:center;padding:5px 0;font-size:85%}.content_PfKe a{color:inherit;-webkit-text-decoration:underline;text-decoration:underline}:root{--docusaurus-announcement-bar-height:auto}.announcementBar_Ksje{height:var(--docusaurus-announcement-bar-height);background-color:var(--ifm-color-white);color:var(--ifm-color-black);border-bottom:1px solid var(--ifm-color-emphasis-100);align-items:center;display:flex}html[data-announcement-bar-initially-dismissed=true] .announcementBar_Ksje{display:none}.announcementBarPlaceholder_WRLw{flex:0 0 10px}.announcementBarClose_cgcS{flex:0 0 30px;align-self:stretch}.announcementBarContent_kCy3{flex:auto}@media print{.announcementBar_Ksje{display:none}}@media (width>=997px){:root{--docusaurus-announcement-bar-height:30px}.announcementBarPlaceholder_WRLw,.announcementBarClose_cgcS{flex-basis:50px}}.toggle_WfRr{width:2rem;height:2rem}.toggleButton_qxDU{-webkit-tap-highlight-color:transparent;width:100%;height:100%;transition:background var(--ifm-transition-fast);border-radius:50%;justify-content:center;align-items:center;display:flex}.toggleButton_qxDU:hover{background:var(--ifm-color-emphasis-200)}.toggleIcon_SFy4{display:none}[data-theme-choice=system] .systemToggleIcon_gB86,[data-theme-choice=light] .lightToggleIcon_r_0k,[data-theme-choice=dark] .darkToggleIcon_pwnq{display:initial}.toggleButtonDisabled_MZUj{cursor:not-allowed}.darkNavbarColorModeToggle_0mhA:hover{background:var(--ifm-color-gray-800)}.iconExternalLink_zdlW{margin-left:.3rem}.dropdownNavbarItemMobile_dOUG{cursor:pointer}.iconLanguage_WQbe{vertical-align:text-bottom;margin-right:5px}.navbarSearchContainer_Pcjl:empty{display:none}@media (width<=996px){.navbarSearchContainer_Pcjl{right:var(--ifm-navbar-padding-horizontal);position:absolute}}@media (width>=997px){.navbarSearchContainer_Pcjl{padding:0 var(--ifm-navbar-item-padding-horizontal)}}.navbarHideable_UrdD{transition:transform var(--ifm-transition-fast)ease}.navbarHidden_z2Ap{transform:translateY(calc(-100% - 2px))}@media (width<=996px){.colorModeToggle_oVbE{display:none}}.navbar__items--right>:last-child{padding-right:0}.footerLogoLink_jCuZ{opacity:.5;transition:opacity var(--ifm-transition-fast)var(--ifm-transition-timing-default)}.footerLogoLink_jCuZ:hover{opacity:1}.hash-link{opacity:0;transition:opacity var(--ifm-transition-fast);-webkit-user-select:none;user-select:none;padding-left:.5rem}.hash-link:before{content:"#"}.hash-link:focus,:hover>.hash-link{opacity:1}html,body{height:100%}.mainWrapper_BsZ3{flex-direction:column;flex:1 0 auto;display:flex}.docusaurus-mt-lg{margin-top:3rem}#__docusaurus{flex-direction:column;min-height:100%;display:flex}:root{--docusaurus-tag-list-border:var(--ifm-color-emphasis-300)}.tag_lOWp{border:1px solid var(--docusaurus-tag-list-border);transition:border var(--ifm-transition-fast)}.tag_lOWp:hover{--docusaurus-tag-list-border:var(--ifm-link-color);-webkit-text-decoration:none;text-decoration:none}.tagRegular_JOmO{border-radius:var(--ifm-global-radius);padding:.2rem .5rem .3rem;font-size:90%}.tagWithCount_db5V{border-left:0;align-items:center;padding:0 .5rem 0 1rem;display:flex;position:relative}.tagWithCount_db5V:before,.tagWithCount_db5V:after{content:"";border:1px solid var(--docusaurus-tag-list-border);transition:inherit;position:absolute;top:50%}.tagWithCount_db5V:before{border-bottom:0;border-right:0;width:1.18rem;height:1.18rem;right:100%;transform:translate(50%,-50%)rotate(-45deg)}.tagWithCount_db5V:after{border-radius:50%;width:.5rem;height:.5rem;left:0;transform:translateY(-50%)}.tagWithCount_db5V span{background:var(--ifm-color-secondary);color:var(--ifm-color-black);border-radius:var(--ifm-global-radius);margin-left:.3rem;padding:.1rem .4rem;font-size:.7rem;line-height:1.2}.tags_ZMMK{display:inline}.tag_kkNk{margin:0 .4rem .5rem 0;display:inline-block}.iconEdit_OVCj{vertical-align:sub;margin-right:.3em}.lastUpdated_V1Ko{margin-top:.2rem;font-size:smaller;font-style:italic}@media (width>=997px){.lastUpdated_V1Ko{text-align:right}}@media print{.noPrint_zwwA{display:none}}.tocCollapsibleButton_pqXY{font-size:inherit;justify-content:space-between;align-items:center;width:100%;padding:.4rem .8rem;display:flex}.tocCollapsibleButton_pqXY:after{content:"";background:var(--ifm-menu-link-sublist-icon)50% 50%/2rem 2rem no-repeat;filter:var(--ifm-menu-link-sublist-icon-filter);width:1.25rem;height:1.25rem;transition:transform var(--ifm-transition-fast);transform:rotate(180deg)}.tocCollapsibleButtonExpanded_WWn8:after{transform:none}.tocCollapsible_xf3c{background-color:var(--ifm-menu-color-background-active);border-radius:var(--ifm-global-radius);margin:1rem 0}.tocCollapsibleContent_Ibyg>ul{border-left:none;border-top:1px solid var(--ifm-color-emphasis-300);padding:.2rem 0;font-size:15px}.tocCollapsibleContent_Ibyg ul li{margin:.4rem .8rem}.tocCollapsibleContent_Ibyg a{display:block}.tocCollapsibleExpanded_VQ3o{transform:none}@media (width>=997px){.tocMobile_OEfg{display:none}}@media print{.tocMobile_OEfg{display:none}}.tableOfContents_fdog{max-height:calc(100vh - (var(--ifm-navbar-height) + 2rem));top:calc(var(--ifm-navbar-height) + 1rem);position:sticky;overflow-y:auto}@media (width<=996px){.tableOfContents_fdog{display:none}.docItemContainer_g607{padding:0 .3rem}}.codeBlockContainer_AFDL{background:var(--prism-background-color);color:var(--prism-color);margin-bottom:var(--ifm-leading);box-shadow:var(--ifm-global-shadow-lw);border-radius:var(--ifm-code-border-radius)}.codeBlock_fCJ5{--ifm-pre-background:var(--prism-background-color);margin:0;padding:0}.codeBlockStandalone_Tyu2{padding:0}.codeBlockLines_HQxl{font:inherit;float:left;min-width:100%;padding:var(--ifm-pre-padding)}.codeBlockLinesWithNumbering_QPzx{padding:var(--ifm-pre-padding)0;display:table}@media print{.codeBlockLines_HQxl{white-space:pre-wrap}}:where(:root){--docusaurus-highlighted-code-line-bg:#484d5b}:where([data-theme=dark]){--docusaurus-highlighted-code-line-bg:#646464}.theme-code-block-highlighted-line{background-color:var(--docusaurus-highlighted-code-line-bg);margin:0 calc(-1*var(--ifm-pre-padding));padding:0 var(--ifm-pre-padding);display:block}.codeLine_hqnj{counter-increment:line-count;display:table-row}.codeLineNumber_unZU{text-align:right;width:1%;padding:0 var(--ifm-pre-padding);background:var(--ifm-pre-background);overflow-wrap:normal;display:table-cell;position:sticky;left:0}.codeLineNumber_unZU:before{content:counter(line-count);opacity:.4}.theme-code-block-highlighted-line .codeLineNumber_unZU:before{opacity:.8}.codeLineContent_CLzY{padding-right:var(--ifm-pre-padding)}.theme-code-block:hover .copyButtonCopied_LX3f{opacity:1!important}.copyButtonIcons_MDo9{width:1.125rem;height:1.125rem;position:relative}.copyButtonIcon_DToO,.copyButtonSuccessIcon_FJJa{fill:currentColor;opacity:inherit;width:inherit;height:inherit;transition:all var(--ifm-transition-fast)ease;position:absolute;top:0;left:0}.copyButtonSuccessIcon_FJJa{opacity:0;color:#00d600;top:50%;left:50%;transform:translate(-50%,-50%)scale(.33)}.copyButtonCopied_LX3f .copyButtonIcon_DToO{opacity:0;transform:scale(.33)}.copyButtonCopied_LX3f .copyButtonSuccessIcon_FJJa{opacity:1;transition-delay:75ms;transform:translate(-50%,-50%)scale(1)}.wordWrapButtonIcon_IGU7{width:1.2rem;height:1.2rem}.wordWrapButtonEnabled_KNlb .wordWrapButtonIcon_IGU7{color:var(--ifm-color-primary)}.buttonGroup_GIQh{right:calc(var(--ifm-pre-padding)/2);top:calc(var(--ifm-pre-padding)/2);column-gap:.2rem;display:flex;position:absolute}.buttonGroup_GIQh button{background:var(--prism-background-color);color:var(--prism-color);border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-global-radius);transition:opacity var(--ifm-transition-fast)ease-in-out;opacity:0;align-items:center;padding:.4rem;line-height:0;display:flex}.buttonGroup_GIQh button:hover{opacity:1!important}.buttonGroup_GIQh button:focus-visible{opacity:1!important}.theme-code-block:hover .buttonGroup_GIQh button{opacity:.4}.codeBlockContent_tC79{border-radius:inherit;direction:ltr;position:relative}.codeBlockTitle_V9T2{border-bottom:1px solid var(--ifm-color-emphasis-300);font-size:var(--ifm-code-font-size);padding:.75rem var(--ifm-pre-padding);border-top-left-radius:inherit;border-top-right-radius:inherit;font-weight:500}.codeBlockTitle_V9T2+.codeBlockContent_tC79 .codeBlock_aN2u{border-top-left-radius:0;border-top-right-radius:0}.details_J0lR{--docusaurus-details-decoration-color:var(--ifm-alert-border-color);--docusaurus-details-transition:transform var(--ifm-transition-fast)ease;margin:0 0 var(--ifm-spacing-vertical);border:1px solid var(--ifm-alert-border-color)}.containsTaskList_KB3F{list-style:none}:not(.containsTaskList_KB3F>li)>.containsTaskList_KB3F{padding-left:0}.img_ha2v{height:auto}.admonition_uVyA{margin-bottom:1em}.admonitionHeading_mHFO{font:var(--ifm-heading-font-weight)var(--ifm-h5-font-size)/var(--ifm-heading-line-height)var(--ifm-heading-font-family);text-transform:uppercase}.admonitionHeading_mHFO:not(:last-child){margin-bottom:.3rem}.admonitionHeading_mHFO code{text-transform:none}.admonitionIcon_wzHy{vertical-align:middle;margin-right:.4em;display:inline-block}.admonitionIcon_wzHy svg{width:1.6em;height:1.6em;fill:var(--ifm-alert-foreground-color);display:inline-block}.admonitionContent_VCOm>:last-child{margin-bottom:0}.breadcrumbHomeIcon_Ripd{vertical-align:top;width:1.1rem;height:1.1rem;position:relative;top:1px}.breadcrumbsContainer_DwGs{--ifm-breadcrumb-size-multiplier:.8;margin-bottom:.8rem}.docItemContainer_FZQ_ header+*,.docItemContainer_FZQ_ article>:first-child{margin-top:0}@media (width>=997px){.docItemCol_I2C9{max-width:75%!important}}.tabList_f3wh{margin-bottom:var(--ifm-leading)}.tabItem_Xg_G{margin-top:0!important}.tabItem_vIHf>:last-child{margin-bottom:0}.backToTopButton_FsEm{background-color:var(--ifm-color-emphasis-200);width:3rem;height:3rem;z-index:calc(var(--ifm-z-index-fixed) - 1);box-shadow:var(--ifm-global-shadow-lw);transition:all var(--ifm-transition-fast)var(--ifm-transition-timing-default);opacity:0;visibility:hidden;border-radius:50%;position:fixed;bottom:1.3rem;right:1.3rem;transform:scale(0)}.backToTopButton_FsEm:after{content:" ";-webkit-mask:var(--ifm-menu-link-sublist-icon)50%/2rem 2rem no-repeat;-webkit-mask:var(--ifm-menu-link-sublist-icon)50%/2rem 2rem no-repeat;mask:var(--ifm-menu-link-sublist-icon)50%/2rem 2rem no-repeat;background-color:var(--ifm-color-emphasis-1000);width:100%;height:100%;display:inline-block}@media (hover:hover){.backToTopButton_FsEm:hover{background-color:var(--ifm-color-emphasis-300)}}.backToTopButtonShow_giG6{opacity:1;visibility:visible;transform:scale(1)}:root{--docusaurus-collapse-button-bg:transparent;--docusaurus-collapse-button-bg-hover:rgba(0,0,0,.1)}[data-theme=dark]:root{--docusaurus-collapse-button-bg:rgba(255,255,255,.05);--docusaurus-collapse-button-bg-hover:rgba(255,255,255,.1)}@media (width>=997px){.collapseSidebarButton_w0wb{background-color:var(--docusaurus-collapse-button-bg);border:1px solid var(--ifm-toc-border-color);border-radius:0;height:40px;position:sticky;bottom:0;display:block!important}.collapseSidebarButtonIcon_FFLl{margin-top:4px;transform:rotate(180deg)}[dir=rtl] .collapseSidebarButtonIcon_FFLl{transform:rotate(0)}.collapseSidebarButton_w0wb:hover,.collapseSidebarButton_w0wb:focus{background-color:var(--docusaurus-collapse-button-bg-hover)}}.collapseSidebarButton_w0wb{margin:0;display:none}.menuExternalLink_NMyC{align-items:center}.linkLabel_TUNj{line-clamp:2;-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.categoryLink_aOsC{overflow:hidden}.menu__link--sublist-caret:after{margin-left:var(--ifm-menu-link-padding-vertical)}.categoryLinkLabel_Tfj5{line-clamp:2;-webkit-line-clamp:2;-webkit-box-orient:vertical;flex:1;display:-webkit-box;overflow:hidden}@media (width>=997px){.menuHtmlItem_MVsW{padding:var(--ifm-menu-link-padding-vertical)var(--ifm-menu-link-padding-horizontal)}.menu_ahLp{flex-grow:1;padding:.5rem}@supports (scrollbar-gutter:stable){.menu_ahLp{scrollbar-gutter:stable;padding:.5rem 0 .5rem .5rem}}.menuWithAnnouncementBar_dWTH{margin-bottom:var(--docusaurus-announcement-bar-height)}.sidebar_RCgn{height:100%;padding-top:var(--ifm-navbar-height);width:var(--doc-sidebar-width);flex-direction:column;display:flex}.sidebarWithHideableNavbar_fv1g{padding-top:0}.sidebarHidden_ol4A{opacity:0;visibility:hidden}.sidebarLogo_JcJp{margin:0 var(--ifm-navbar-padding-horizontal);min-height:var(--ifm-navbar-height);max-height:var(--ifm-navbar-height);align-items:center;color:inherit!important;-webkit-text-decoration:none!important;text-decoration:none!important;display:flex!important}.sidebarLogo_JcJp img{height:2rem;margin-right:.5rem}}.sidebarLogo_JcJp{display:none}@media (width>=997px){.expandButton_myCd{width:100%;height:100%;transition:background-color var(--ifm-transition-fast)ease;background-color:var(--docusaurus-collapse-button-bg);justify-content:center;align-items:center;display:flex;position:absolute;top:0;right:0}.expandButton_myCd:hover,.expandButton_myCd:focus{background-color:var(--docusaurus-collapse-button-bg-hover)}.expandButtonIcon_EBqf{transform:rotate(0)}[dir=rtl] .expandButtonIcon_EBqf{transform:rotate(180deg)}}:root{--doc-sidebar-width:300px;--doc-sidebar-hidden-width:30px}.docSidebarContainer_i4lw{display:none}@media (width>=997px){.docSidebarContainer_i4lw{width:var(--doc-sidebar-width);margin-top:calc(-1*var(--ifm-navbar-height));border-right:1px solid var(--ifm-toc-border-color);will-change:width;transition:width var(--ifm-transition-fast)ease;clip-path:inset(0);display:block}.docSidebarContainerHidden_PddN{width:var(--doc-sidebar-hidden-width);cursor:pointer}.sidebarViewport_LX4L{height:100%;max-height:100vh;position:sticky;top:0}}.docMainContainer_Tq_9{width:100%;display:flex}@media (width>=997px){.docMainContainer_Tq_9{max-width:calc(100% - var(--doc-sidebar-width));flex-grow:1}.docMainContainerEnhanced_oea5{max-width:calc(100% - var(--doc-sidebar-hidden-width))}.docItemWrapperEnhanced_v22d{max-width:calc(var(--ifm-container-width) + var(--doc-sidebar-width))!important}}.docRoot_dSts{width:100%;display:flex}.docsWrapper_pyt2{flex:1 0 auto;display:flex}}@layer docusaurus.core{#__docusaurus-base-url-issue-banner-container{display:none}}@layer docusaurus.plugin-debug,docusaurus.theme-mermaid,docusaurus.theme-live-codeblock,docusaurus.theme-search-algolia.docsearch,docusaurus.theme-search-algolia;:root{--ifm-font-family-base:"Outfit","Noto Sans SC",system-ui,sans-serif;--ifm-heading-font-family:"Outfit","Noto Sans SC",system-ui,sans-serif;--ifm-color-primary:#1677ff;--ifm-color-primary-dark:#0958d9;--ifm-color-primary-darker:#003eb3;--ifm-color-primary-darkest:#002c8c;--ifm-color-primary-light:#4096ff;--ifm-color-primary-lighter:#69b1ff;--ifm-color-primary-lightest:#91caff;--ifm-code-font-size:95%;--docusaurus-highlighted-code-line-bg:rgba(0,0,0,.1);--orbien-hero-bg:#fff;--orbien-panel-bg:#fff;--orbien-panel-border:rgba(15,23,42,.08);--orbien-code-bg:#0f172a;--orbien-code-fg:#e2e8f0;--orbien-card-bg:#f1f5f9;--orbien-card-border:rgba(15,23,42,.06)}[data-theme=dark]{--ifm-color-primary:#69b1ff;--ifm-color-primary-dark:#4096ff;--ifm-color-primary-darker:#1677ff;--ifm-color-primary-darkest:#0958d9;--ifm-color-primary-light:#91caff;--ifm-color-primary-lighter:#bae0ff;--ifm-color-primary-lightest:#e6f4ff;--docusaurus-highlighted-code-line-bg:rgba(0,0,0,.3);--ifm-background-color:#0b1220;--ifm-background-surface-color:#111827;--ifm-navbar-background-color:#0b1220;--ifm-footer-background-color:#080d16;--orbien-hero-bg:#0b1220;--orbien-panel-bg:#111827;--orbien-panel-border:rgba(148,163,184,.14);--orbien-code-bg:#020617;--orbien-code-fg:#e2e8f0;--orbien-card-bg:#111827;--orbien-card-border:rgba(148,163,184,.12)}.navbar__title{letter-spacing:-.02em;font-weight:700}.navbar__logo img{border-radius:6px}[data-theme=dark] .navbar{box-shadow:none;border-bottom:1px solid rgba(148,163,184,.1)}[data-theme=dark] .footer{border-top:1px solid rgba(148,163,184,.1)}.features_t9lD{background:var(--orbien-hero-bg);align-items:center;width:100%;padding:.75rem 0 4rem;display:flex}.features_t9lD .container{box-sizing:border-box;max-width:1280px;margin:0 auto;padding-inline:clamp(1.25rem + 30px,4vw + 30px,2.5rem + 30px)}@media screen and (width<=996px){.features_t9lD .container{padding-inline:clamp(1.25rem + 30px,5vw + 30px,1.75rem + 30px)}}.featureCol_P0tX{margin-bottom:1.25rem}.featureCard_QAQr{background:var(--orbien-card-bg);border:1px solid var(--orbien-card-border);border-radius:14px;height:100%;padding:1.35rem 1.4rem 1.45rem;transition:transform .2s,box-shadow .2s,border-color .2s}.featureCard_QAQr:hover{border-color:rgba(22,119,255,.35);transform:translateY(-3px);box-shadow:0 12px 28px rgba(15,23,42,.08)}[data-theme=dark] .featureCard_QAQr:hover{border-color:rgba(105,177,255,.28);box-shadow:0 12px 28px rgba(0,0,0,.35)}.featureTitle_L1YZ{letter-spacing:-.01em;margin:0;font-size:1.15rem;font-weight:700}.featureDesc_qOCZ{color:var(--ifm-color-emphasis-700);margin:.65rem 0 0;font-size:.95rem;line-height:1.6}[data-theme=dark] .featureDesc_qOCZ{color:#94a3b8}.hero_aEcG{background:var(--orbien-hero-bg);padding:3.5rem 0 1.75rem;position:relative;overflow:hidden}[data-theme=dark] .hero_aEcG{border-bottom:1px solid var(--orbien-panel-border)}.heroInner_V4lS{box-sizing:border-box;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);align-items:center;gap:clamp(1.75rem,3.5vw,3rem);width:100%;max-width:1280px;margin:0 auto;padding-inline:clamp(1.25rem + 30px,4vw + 30px,2.5rem + 30px);display:grid}.heroCopy_zvrZ{min-width:0}.heroBrand_lo5f{letter-spacing:-.035em;margin:0;font-size:clamp(2.9rem,6.2vw,4.4rem);font-weight:800;line-height:1.05}.brandOrb_BOug{color:var(--ifm-color-primary)}.brandRest_mNh6{color:#64748b}[data-theme=dark] .brandOrb_BOug{color:var(--ifm-color-primary-light)}[data-theme=dark] .brandRest_mNh6{color:#94a3b8}.heroTagline_QIlK{letter-spacing:-.02em;color:var(--ifm-font-color-base);margin:.85rem 0 0;font-size:clamp(1.45rem,3vw,2rem);font-weight:700}.heroDesc_pApI{max-width:36rem;color:var(--ifm-color-emphasis-700);margin:1rem 0 0;font-size:1.05rem;line-height:1.65}[data-theme=dark] .heroDesc_pApI{color:#94a3b8}.heroActions_Z2kl{flex-wrap:wrap;gap:.75rem;margin-top:1.75rem;display:flex}.btnPrimary_hBjO{font-weight:700;background:var(--ifm-color-primary)!important;border-color:var(--ifm-color-primary)!important;color:#fff!important}.btnPrimary_hBjO:hover{background:var(--ifm-color-primary-dark)!important;border-color:var(--ifm-color-primary-dark)!important;color:#fff!important}.btnSecondary_mRVh{font-weight:600;background:var(--ifm-color-emphasis-200)!important;color:var(--ifm-font-color-base)!important;border-color:transparent!important}.btnSecondary_mRVh:hover{background:var(--ifm-color-emphasis-300)!important;color:var(--ifm-font-color-base)!important}[data-theme=dark] .btnSecondary_mRVh{color:#e2e8f0!important;background:#1e293b!important}[data-theme=dark] .btnSecondary_mRVh:hover{color:#f8fafc!important;background:#334155!important}.btnGitHub_RNrN{font-weight:700;color:#fff!important;background:#24292f!important;border-color:#24292f!important}.btnGitHub_RNrN:hover{color:#fff!important;background:#0d1117!important;border-color:#0d1117!important}[data-theme=dark] .btnGitHub_RNrN{color:#0d1117!important;background:#f0f6fc!important;border-color:#f0f6fc!important}[data-theme=dark] .btnGitHub_RNrN:hover{color:#0d1117!important;background:#fff!important;border-color:#fff!important}.heroVisual_DvAS{justify-content:flex-end;min-width:0;display:flex}.heroShot_o6Lk{width:min(100%,620px);animation:.8s both floatIn_ZPtN;position:relative}.heroShotGlow_lUhG{display:none}.heroShotImg_WlKk{z-index:1;vertical-align:middle;border:1px solid var(--orbien-panel-border);background:var(--orbien-panel-bg);border-radius:14px;width:100%;height:auto;transition:transform .35s,box-shadow .35s;position:relative;transform:perspective(1200px)rotateY(-4deg)rotateX(2deg);box-shadow:0 28px 64px rgba(15,23,42,.14),inset 0 2px rgba(255,255,255,.35)}.heroShot_o6Lk:hover .heroShotImg_WlKk{transform:perspective(1200px)rotateY(-1deg)rotateX(.5deg)translateY(-2px);box-shadow:0 32px 72px rgba(15,23,42,.18),inset 0 2px rgba(255,255,255,.35)}[data-theme=dark] .heroShotImg_WlKk{box-shadow:0 20px 48px rgba(0,0,0,.45),inset 0 1px rgba(255,255,255,.04)}[data-theme=dark] .heroShot_o6Lk:hover .heroShotImg_WlKk{box-shadow:0 24px 56px rgba(0,0,0,.55),inset 0 1px rgba(255,255,255,.06)}@keyframes floatIn_ZPtN{0%{opacity:0;transform:translateY(18px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@media (prefers-reduced-motion:reduce){.heroShot_o6Lk{animation:none}.heroShotImg_WlKk,.heroShot_o6Lk:hover .heroShotImg_WlKk{transition:none;transform:none}}.desktop_esma{background:var(--orbien-hero-bg);padding:.5rem 0 4rem}[data-theme=dark] .desktop_esma{border-top:1px solid var(--orbien-panel-border)}.desktopInner_HU24{box-sizing:border-box;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);align-items:center;gap:clamp(1.75rem,3.5vw,3rem);width:100%;max-width:1280px;margin:0 auto;padding-inline:clamp(1.25rem + 30px,4vw + 30px,2.5rem + 30px);display:grid}.desktopCopy_t7Jm{min-width:0}.desktopEyebrow_BMjU{letter-spacing:.04em;text-transform:uppercase;color:var(--ifm-color-primary);margin:0;font-size:.85rem;font-weight:700}.desktopTitle_nOuY{letter-spacing:-.025em;margin:.55rem 0 0;font-size:clamp(1.65rem,3vw,2.15rem);font-weight:800;line-height:1.2}.desktopDesc_SAxO{max-width:32rem;color:var(--ifm-color-emphasis-700);margin:.9rem 0 1.35rem;font-size:1.02rem;line-height:1.65}[data-theme=dark] .desktopDesc_SAxO{color:#94a3b8}.desktopVisual_cX6h{min-width:0}.desktopFrame_bqGN{border:1px solid var(--orbien-panel-border);background:var(--orbien-panel-bg);border-radius:16px;width:min(100%,680px);margin-inline:auto;overflow:hidden;box-shadow:0 22px 48px rgba(15,23,42,.1)}[data-theme=dark] .desktopFrame_bqGN{box-shadow:0 16px 40px rgba(0,0,0,.4)}.desktopGif_kMRW{vertical-align:middle;width:100%;height:auto;display:block}@media screen and (width<=996px){.hero_aEcG{padding:2rem 0}.heroInner_V4lS{grid-template-columns:1fr;gap:2.25rem;padding-inline:clamp(1.25rem + 30px,5vw + 30px,1.75rem + 30px)}.heroVisual_DvAS{order:-1;justify-content:center}.heroShot_o6Lk{width:min(100%,560px)}.heroShotImg_WlKk,.heroShot_o6Lk:hover .heroShotImg_WlKk{transform:none}.desktop_esma{padding:.25rem 0 3rem}.desktopInner_HU24{grid-template-columns:1fr;gap:1.5rem;padding-inline:clamp(1.25rem + 30px,5vw + 30px,1.75rem + 30px)}.desktopVisual_cX6h{order:-1}.desktopFrame_bqGN{width:min(100%,560px)}}.wrap_B6Is{min-width:0;max-width:100%;margin:1.25rem 0 2rem}.toolbar_cmsD{flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:1rem;display:flex}.version_GkO4{color:var(--ifm-color-primary-dark);background:rgba(22,119,255,.12);border:1px solid rgba(22,119,255,.25);border-radius:999px;align-items:center;padding:.28rem .7rem;font-size:.85rem;font-weight:700;display:inline-flex}.releasesLink_uGnU{font-size:.9rem;font-weight:600}.tableScroll_RwJY{border:1px solid var(--orbien-card-border);background:var(--orbien-panel-bg);border-radius:14px;overflow-x:auto}.table_z95A{border-collapse:collapse;width:100%;margin:0;font-size:.92rem;display:table}.table_z95A thead th{background:var(--orbien-card-bg);text-align:left;border-bottom:1px solid var(--orbien-card-border);white-space:nowrap;padding:.75rem .9rem;font-weight:700;position:sticky;top:0}.table_z95A td{border-bottom:1px solid var(--orbien-card-border);vertical-align:middle;padding:.7rem .9rem}.table_z95A tbody tr:last-child td{border-bottom:none}.osCell_btT0{white-space:nowrap;background:linear-gradient(90deg,rgba(22,119,255,.06),transparent 80%);font-weight:700}.rowHighlight_Rqix td{background:rgba(22,119,255,.05)}.badge_x6zy{letter-spacing:.02em;background:var(--ifm-color-primary);white-space:nowrap;border-radius:8px;justify-content:center;align-items:center;min-width:4.8rem;padding:.28rem .65rem;font-size:.78rem;font-weight:700;transition:transform .12s,filter .12s;display:inline-flex;color:#fff!important;-webkit-text-decoration:none!important;text-decoration:none!important}.badge_x6zy:hover{filter:brightness(1.05);transform:translateY(-1px);color:#fff!important;-webkit-text-decoration:none!important;text-decoration:none!important}.missing_ODsB{color:var(--ifm-color-emphasis-500);font-weight:600}.libcTag_lP5V{font-size:.85em}.note_heJW{color:var(--ifm-color-emphasis-700);max-width:14rem;font-size:.85rem;line-height:1.45}.docker_YIhP{border:1px solid var(--orbien-card-border);background:var(--orbien-card-bg);border-radius:14px;min-width:0;max-width:100%;margin-top:1.75rem;padding:1.15rem 1.2rem 1.25rem}.docker_YIhP h3{margin:0 0 .85rem;font-size:1.05rem}.dockerList_T7jC{flex-direction:column;gap:.75rem;min-width:0;margin:0;padding:0;list-style:none;display:flex}.dockerItem_OmD2{background:var(--orbien-panel-bg);border:1px solid var(--orbien-card-border);border-radius:12px;min-width:0;padding:.8rem .9rem}.dockerMeta_so8T{flex-wrap:wrap;align-items:center;gap:.45rem;margin-bottom:.5rem;display:flex}.dockerMeta_so8T strong{font-size:.92rem}.dockerTag_NGl6{letter-spacing:.02em;color:var(--ifm-color-primary-dark);background:rgba(22,119,255,.12);border-radius:999px;padding:.12rem .45rem;font-size:.72rem;font-weight:700}.dockerCmd_lfBm{box-sizing:border-box;white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;background:var(--orbien-code-bg);width:100%;color:var(--orbien-code-fg);border-radius:8px;margin:0;padding:.6rem .75rem;font-size:.8rem;line-height:1.55;display:block}@media screen and (width<=996px){.note_heJW{min-width:10rem;max-width:none}} \ No newline at end of file diff --git a/assets/js/05d4cacb.7119d8a1.js b/assets/js/05d4cacb.7119d8a1.js new file mode 100644 index 0000000..eddfba0 --- /dev/null +++ b/assets/js/05d4cacb.7119d8a1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkorbien_docs=self.webpackChunkorbien_docs||[]).push([["218"],{8037(e,r,n){n.r(r),n.d(r,{metadata:()=>t,default:()=>x,frontMatter:()=>c,contentTitle:()=>i,toc:()=>h,assets:()=>l});var t=JSON.parse('{"id":"transport/tcp-mux","title":"TCP \u591A\u8DEF\u590D\u7528","description":"\u4E00\u6761\u7269\u7406\u8FDE\u63A5\u627F\u8F7D\u591A\u8DEF\u903B\u8F91\u6D41\uFF08Yamux\uFF09\uFF0C\u964D\u4F4E\u5EFA\u8FDE\u5F00\u9500\u3002\u9002\u7528\u4E8E tcp / websocket / kcp\uFF1BQUIC \u81EA\u5E26\u591A\u8DEF\u590D\u7528\uFF0C\u6B64\u9879\u65E0\u6548\u3002","source":"@site/docs/transport/tcp-mux.md","sourceDirName":"transport","slug":"/transport/tcp-mux","permalink":"/orbien/docs/transport/tcp-mux","draft":false,"unlisted":false,"editUrl":"https://github.com/orbien-org/orbien/tree/main/docs/docs/transport/tcp-mux.md","tags":[],"version":"current","sidebarPosition":2.5,"frontMatter":{"sidebar_position":2.5,"sidebar_label":"TCP \u591A\u8DEF\u590D\u7528","title":"TCP \u591A\u8DEF\u590D\u7528"},"sidebar":"docsSidebar","previous":{"title":"\u8FDE\u63A5\u6C60","permalink":"/orbien/docs/transport/connect-pool"},"next":{"title":"TLS","permalink":"/orbien/docs/transport/tls"}}'),d=n(1987),s=n(7008);let c={sidebar_position:2.5,sidebar_label:"TCP \u591A\u8DEF\u590D\u7528",title:"TCP \u591A\u8DEF\u590D\u7528"},i="TCP \u591A\u8DEF\u590D\u7528",l={},h=[{value:"\u793A\u4F8B\uFF1A\u5F00\u542F",id:"\u793A\u4F8B\u5F00\u542F",level:2},{value:"\u793A\u4F8B\uFF1A\u5173\u95ED",id:"\u793A\u4F8B\u5173\u95ED",level:2},{value:"\u5BA2\u6237\u7AEF\u53C2\u6570",id:"\u5BA2\u6237\u7AEF\u53C2\u6570",level:2},{value:"\u670D\u52A1\u7AEF\u53C2\u6570",id:"\u670D\u52A1\u7AEF\u53C2\u6570",level:2}];function o(e){let r={code:"code",h1:"h1",h2:"h2",header:"header",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,s.R)(),...e.components};return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(r.header,{children:(0,d.jsx)(r.h1,{id:"tcp-\u591A\u8DEF\u590D\u7528",children:"TCP \u591A\u8DEF\u590D\u7528"})}),"\n",(0,d.jsxs)(r.p,{children:["\u4E00\u6761\u7269\u7406\u8FDE\u63A5\u627F\u8F7D\u591A\u8DEF\u903B\u8F91\u6D41\uFF08Yamux\uFF09\uFF0C\u964D\u4F4E\u5EFA\u8FDE\u5F00\u9500\u3002\u9002\u7528\u4E8E ",(0,d.jsx)(r.code,{children:"tcp"})," / ",(0,d.jsx)(r.code,{children:"websocket"})," / ",(0,d.jsx)(r.code,{children:"kcp"}),"\uFF1B",(0,d.jsx)(r.strong,{children:"QUIC \u81EA\u5E26\u591A\u8DEF\u590D\u7528\uFF0C\u6B64\u9879\u65E0\u6548"}),"\u3002"]}),"\n",(0,d.jsxs)(r.p,{children:["\u5BA2\u6237\u7AEF\u4E0E\u670D\u52A1\u7AEF ",(0,d.jsx)(r.code,{children:"tcpMux"})," ",(0,d.jsx)(r.strong,{children:"\u5FC5\u987B\u4E00\u81F4"}),"\uFF0C\u5426\u5219\u65E0\u6CD5\u63E1\u624B\u3002"]}),"\n",(0,d.jsx)(r.h2,{id:"\u793A\u4F8B\u5F00\u542F",children:"\u793A\u4F8B\uFF1A\u5F00\u542F"}),"\n",(0,d.jsxs)(r.p,{children:["TCP \u591A\u8DEF\u590D\u7528\u9ED8\u8BA4\u5F00\u542F\u3002\u5F00\u542F\u540E\u5E94\u7528\u5C42\u5FC3\u8DF3\u9ED8\u8BA4\u53EF\u5173\u95ED\uFF08",(0,d.jsx)(r.code,{children:"heartbeatInterval"})," / ",(0,d.jsx)(r.code,{children:"heartbeatTimeout"})," = ",(0,d.jsx)(r.code,{children:"-1"}),"\uFF09\uFF0C\u6539\u7531\u591A\u8DEF\u590D\u7528\u4FDD\u6D3B\u68C0\u6D4B\u6B7B\u8FDE\u63A5\u3002"]}),"\n",(0,d.jsx)(r.p,{children:"\u670D\u52A1\u7AEF\uFF1A"}),"\n",(0,d.jsx)(r.pre,{children:(0,d.jsx)(r.code,{className:"language-toml",children:"# orbien-server.toml\n[transport]\ntcpMux = true\nmuxKeepaliveSecs = 30\n"})}),"\n",(0,d.jsx)(r.p,{children:"\u5BA2\u6237\u7AEF\uFF1A"}),"\n",(0,d.jsx)(r.pre,{children:(0,d.jsx)(r.code,{className:"language-toml",children:"# orbien.toml\n[transport]\ntcpMux = true\nmuxKeepaliveSecs = 30\n"})}),"\n",(0,d.jsx)(r.h2,{id:"\u793A\u4F8B\u5173\u95ED",children:"\u793A\u4F8B\uFF1A\u5173\u95ED"}),"\n",(0,d.jsx)(r.p,{children:"\u5173\u95ED\u540E\u6BCF\u6761\u63A7\u5236/\u6570\u636E\u6D41\u4F7F\u7528\u72EC\u7ACB\u8FDE\u63A5\uFF0C\u9700\u5F00\u542F\u5E94\u7528\u5C42\u5FC3\u8DF3\u3002"}),"\n",(0,d.jsx)(r.p,{children:"\u670D\u52A1\u7AEF\uFF1A"}),"\n",(0,d.jsx)(r.pre,{children:(0,d.jsx)(r.code,{className:"language-toml",children:"# orbien-server.toml\n[transport]\ntcpMux = false\nheartbeatTimeout = 90\n"})}),"\n",(0,d.jsx)(r.p,{children:"\u5BA2\u6237\u7AEF\uFF1A"}),"\n",(0,d.jsx)(r.pre,{children:(0,d.jsx)(r.code,{className:"language-toml",children:"# orbien.toml\n[transport]\ntcpMux = false\nheartbeatInterval = 30\nheartbeatTimeout = 90\n"})}),"\n",(0,d.jsxs)(r.p,{children:["\u5BA2\u6237\u7AEF\u82E5\u7701\u7565\u5FC3\u8DF3\u76F8\u5173\u9879\uFF0C\u5173\u95ED ",(0,d.jsx)(r.code,{children:"tcpMux"})," \u65F6\u4F1A\u81EA\u52A8\u8BBE\u4E3A ",(0,d.jsx)(r.code,{children:"heartbeatInterval=30"}),"\u3001",(0,d.jsx)(r.code,{children:"heartbeatTimeout=90"}),"\u3002"]}),"\n",(0,d.jsx)(r.h2,{id:"\u5BA2\u6237\u7AEF\u53C2\u6570",children:"\u5BA2\u6237\u7AEF\u53C2\u6570"}),"\n",(0,d.jsxs)(r.table,{children:[(0,d.jsx)(r.thead,{children:(0,d.jsxs)(r.tr,{children:[(0,d.jsx)(r.th,{children:"\u53C2\u6570"}),(0,d.jsx)(r.th,{children:"\u5FC5\u586B"}),(0,d.jsx)(r.th,{children:"\u9ED8\u8BA4\u503C"}),(0,d.jsx)(r.th,{children:"\u8BF4\u660E"})]})}),(0,d.jsxs)(r.tbody,{children:[(0,d.jsxs)(r.tr,{children:[(0,d.jsx)(r.td,{children:(0,d.jsx)(r.code,{children:"transport.tcpMux"})}),(0,d.jsx)(r.td,{children:"\u5426"}),(0,d.jsx)(r.td,{children:(0,d.jsx)(r.code,{children:"true"})}),(0,d.jsx)(r.td,{children:"\u662F\u5426\u542F\u7528\u591A\u8DEF\u590D\u7528\uFF1B\u9700\u4E0E\u670D\u52A1\u7AEF\u4E00\u81F4"})]}),(0,d.jsxs)(r.tr,{children:[(0,d.jsx)(r.td,{children:(0,d.jsx)(r.code,{children:"transport.muxKeepaliveSecs"})}),(0,d.jsx)(r.td,{children:"\u5426"}),(0,d.jsx)(r.td,{children:(0,d.jsx)(r.code,{children:"30"})}),(0,d.jsxs)(r.td,{children:["\u591A\u8DEF\u590D\u7528\u4FDD\u6D3B\u95F4\u9694\uFF08\u79D2\uFF09\u3002Rust yamux \u65E0\u539F\u751F KeepAlive\uFF0C\u5B9E\u73B0\u4E0A\u5728 ",(0,d.jsx)(r.code,{children:"tcpMux=true"})," \u4E14\u672A\u5F00\u5E94\u7528\u5FC3\u8DF3\u65F6\uFF0C\u7528\u8BE5\u95F4\u9694\u53D1\u63A7\u5236\u9762 Ping\uFF08\u7B49\u6548\u4FDD\u6D3B\uFF09"]})]}),(0,d.jsxs)(r.tr,{children:[(0,d.jsx)(r.td,{children:(0,d.jsx)(r.code,{children:"transport.heartbeatInterval"})}),(0,d.jsx)(r.td,{children:"\u5426"}),(0,d.jsxs)(r.td,{children:[(0,d.jsx)(r.code,{children:"-1"}),"\uFF08mux \u5F00\uFF09/ ",(0,d.jsx)(r.code,{children:"30"}),"\uFF08mux \u5173\uFF09"]}),(0,d.jsxs)(r.td,{children:["\u5E94\u7528\u5FC3\u8DF3\u95F4\u9694\uFF08\u79D2\uFF09\uFF1B",(0,d.jsx)(r.code,{children:"-1"})," \u5173\u95ED"]})]}),(0,d.jsxs)(r.tr,{children:[(0,d.jsx)(r.td,{children:(0,d.jsx)(r.code,{children:"transport.heartbeatTimeout"})}),(0,d.jsx)(r.td,{children:"\u5426"}),(0,d.jsxs)(r.td,{children:[(0,d.jsx)(r.code,{children:"-1"}),"\uFF08mux \u5F00\uFF09/ ",(0,d.jsx)(r.code,{children:"90"}),"\uFF08mux \u5173\uFF09"]}),(0,d.jsxs)(r.td,{children:["\u8D85\u8FC7\u8BE5\u79D2\u6570\u672A\u6536\u5230 Pong \u5219\u65AD\u5F00\uFF1B",(0,d.jsx)(r.code,{children:"-1"})," \u5173\u95ED"]})]})]})]}),"\n",(0,d.jsx)(r.h2,{id:"\u670D\u52A1\u7AEF\u53C2\u6570",children:"\u670D\u52A1\u7AEF\u53C2\u6570"}),"\n",(0,d.jsxs)(r.table,{children:[(0,d.jsx)(r.thead,{children:(0,d.jsxs)(r.tr,{children:[(0,d.jsx)(r.th,{children:"\u53C2\u6570"}),(0,d.jsx)(r.th,{children:"\u5FC5\u586B"}),(0,d.jsx)(r.th,{children:"\u9ED8\u8BA4\u503C"}),(0,d.jsx)(r.th,{children:"\u8BF4\u660E"})]})}),(0,d.jsxs)(r.tbody,{children:[(0,d.jsxs)(r.tr,{children:[(0,d.jsx)(r.td,{children:(0,d.jsx)(r.code,{children:"transport.tcpMux"})}),(0,d.jsx)(r.td,{children:"\u5426"}),(0,d.jsx)(r.td,{children:(0,d.jsx)(r.code,{children:"true"})}),(0,d.jsx)(r.td,{children:"\u662F\u5426\u542F\u7528\u591A\u8DEF\u590D\u7528\uFF1B\u9700\u4E0E\u5BA2\u6237\u7AEF\u4E00\u81F4"})]}),(0,d.jsxs)(r.tr,{children:[(0,d.jsx)(r.td,{children:(0,d.jsx)(r.code,{children:"transport.muxKeepaliveSecs"})}),(0,d.jsx)(r.td,{children:"\u5426"}),(0,d.jsx)(r.td,{children:(0,d.jsx)(r.code,{children:"30"})}),(0,d.jsxs)(r.td,{children:["\u591A\u8DEF\u590D\u7528\u4FDD\u6D3B\u95F4\u9694\uFF08\u79D2\uFF09\u3002Rust yamux \u65E0\u539F\u751F KeepAlive\uFF1B\u5728 ",(0,d.jsx)(r.code,{children:"tcpMux=true"})," \u4E14\u672A\u5F00\u5E94\u7528\u5FC3\u8DF3\u8D85\u65F6\u65F6\uFF0C\u7528 ",(0,d.jsx)(r.code,{children:"\u95F4\u9694\xd73"})," \u4F5C\u4E3A\u300C\u672A\u6536\u5230\u5BA2\u6237\u7AEF Ping \u5219\u8E22\u6389\u300D\u7684\u8D85\u65F6\uFF08\u4E0E\u5BA2\u6237\u7AEF\u5BF9\u79F0\uFF09"]})]}),(0,d.jsxs)(r.tr,{children:[(0,d.jsx)(r.td,{children:(0,d.jsx)(r.code,{children:"transport.heartbeatTimeout"})}),(0,d.jsx)(r.td,{children:"\u5426"}),(0,d.jsxs)(r.td,{children:[(0,d.jsx)(r.code,{children:"-1"}),"\uFF08mux \u5F00\uFF09/ ",(0,d.jsx)(r.code,{children:"90"}),"\uFF08mux \u5173\uFF09"]}),(0,d.jsxs)(r.td,{children:["\u8D85\u8FC7\u8BE5\u79D2\u6570\u672A\u6536\u5230\u5BA2\u6237\u7AEF Ping \u5219\u8E22\u6389\u63A7\u5236\u8FDE\u63A5\uFF1B",(0,d.jsx)(r.code,{children:"-1"})," \u8868\u793A\u5173\u95ED\u5E94\u7528\u5FC3\u8DF3\u8D85\u65F6\uFF08mux \u5F00\u542F\u65F6\u6539\u8D70\u4E0A\u65B9\u4FDD\u6D3B\u903B\u8F91\uFF09"]})]})]})]})]})}function x(e={}){let{wrapper:r}={...(0,s.R)(),...e.components};return r?(0,d.jsx)(r,{...e,children:(0,d.jsx)(o,{...e})}):o(e)}},7008(e,r,n){n.d(r,{R:()=>c,x:()=>i});var t=n(1763);let d={},s=t.createContext(d);function c(e){let r=t.useContext(s);return t.useMemo(function(){return"function"==typeof e?e(r):{...r,...e}},[r,e])}function i(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(d):e.components||d:c(e.components),t.createElement(s.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/05d4cacb.930b2d02.js b/assets/js/05d4cacb.930b2d02.js deleted file mode 100644 index a42b486..0000000 --- a/assets/js/05d4cacb.930b2d02.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkorbien_docs=self.webpackChunkorbien_docs||[]).push([["218"],{8037(e,n,r){r.r(n),r.d(n,{metadata:()=>t,default:()=>a,frontMatter:()=>c,contentTitle:()=>l,toc:()=>o,assets:()=>i});var t=JSON.parse('{"id":"transport/tcp-mux","title":"TCP \u591A\u8DEF\u590D\u7528","description":"\u4E00\u6761\u7269\u7406\u8FDE\u63A5\u627F\u8F7D\u591A\u8DEF\u903B\u8F91\u6D41\uFF08Yamux\uFF09\uFF0C\u964D\u4F4E\u5EFA\u8FDE\u5F00\u9500\u3002\u9002\u7528\u4E8E tcp / websocket / kcp\uFF1BQUIC \u81EA\u5E26\u591A\u8DEF\u590D\u7528\uFF0C\u6B64\u9879\u65E0\u6548\u3002","source":"@site/docs/transport/tcp-mux.md","sourceDirName":"transport","slug":"/transport/tcp-mux","permalink":"/orbien/docs/transport/tcp-mux","draft":false,"unlisted":false,"editUrl":"https://github.com/orbien-org/orbien/tree/main/docs/docs/transport/tcp-mux.md","tags":[],"version":"current","sidebarPosition":2.5,"frontMatter":{"sidebar_position":2.5,"sidebar_label":"TCP \u591A\u8DEF\u590D\u7528","title":"TCP \u591A\u8DEF\u590D\u7528"},"sidebar":"docsSidebar","previous":{"title":"\u8FDE\u63A5\u6C60","permalink":"/orbien/docs/transport/connect-pool"},"next":{"title":"TLS","permalink":"/orbien/docs/transport/tls"}}'),s=r(1987),d=r(7008);let c={sidebar_position:2.5,sidebar_label:"TCP \u591A\u8DEF\u590D\u7528",title:"TCP \u591A\u8DEF\u590D\u7528"},l="TCP \u591A\u8DEF\u590D\u7528",i={},o=[{value:"\u793A\u4F8B\uFF1A\u5F00\u542F",id:"\u793A\u4F8B\u5F00\u542F",level:2},{value:"\u793A\u4F8B\uFF1A\u5173\u95ED",id:"\u793A\u4F8B\u5173\u95ED",level:2},{value:"\u5BA2\u6237\u7AEF\u53C2\u6570",id:"\u5BA2\u6237\u7AEF\u53C2\u6570",level:2},{value:"\u670D\u52A1\u7AEF\u53C2\u6570",id:"\u670D\u52A1\u7AEF\u53C2\u6570",level:2}];function h(e){let n={code:"code",h1:"h1",h2:"h2",header:"header",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,d.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.header,{children:(0,s.jsx)(n.h1,{id:"tcp-\u591A\u8DEF\u590D\u7528",children:"TCP \u591A\u8DEF\u590D\u7528"})}),"\n",(0,s.jsxs)(n.p,{children:["\u4E00\u6761\u7269\u7406\u8FDE\u63A5\u627F\u8F7D\u591A\u8DEF\u903B\u8F91\u6D41\uFF08Yamux\uFF09\uFF0C\u964D\u4F4E\u5EFA\u8FDE\u5F00\u9500\u3002\u9002\u7528\u4E8E ",(0,s.jsx)(n.code,{children:"tcp"})," / ",(0,s.jsx)(n.code,{children:"websocket"})," / ",(0,s.jsx)(n.code,{children:"kcp"}),"\uFF1B",(0,s.jsx)(n.strong,{children:"QUIC \u81EA\u5E26\u591A\u8DEF\u590D\u7528\uFF0C\u6B64\u9879\u65E0\u6548"}),"\u3002"]}),"\n",(0,s.jsxs)(n.p,{children:["\u5BA2\u6237\u7AEF\u4E0E\u670D\u52A1\u7AEF ",(0,s.jsx)(n.code,{children:"tcpMux"})," ",(0,s.jsx)(n.strong,{children:"\u5FC5\u987B\u4E00\u81F4"}),"\uFF0C\u5426\u5219\u65E0\u6CD5\u63E1\u624B\u3002"]}),"\n",(0,s.jsx)(n.h2,{id:"\u793A\u4F8B\u5F00\u542F",children:"\u793A\u4F8B\uFF1A\u5F00\u542F"}),"\n",(0,s.jsx)(n.p,{children:"TCP\u591A\u8DEF\u590D\u7528\u9ED8\u8BA4\u662F\u5F00\u542F\u72B6\u6001\u3002"}),"\n",(0,s.jsx)(n.p,{children:"\u670D\u52A1\u7AEF\uFF1A"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-toml",children:"# orbien-server.toml\n[transport]\ntcpMux = true\n"})}),"\n",(0,s.jsx)(n.p,{children:"\u5BA2\u6237\u7AEF\uFF1A"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-toml",children:"# orbien.toml\n[transport]\ntcpMux = true\n"})}),"\n",(0,s.jsxs)(n.p,{children:["\u5F00\u542F\u540E\u5E94\u7528\u5C42\u5FC3\u8DF3\u9ED8\u8BA4\u53EF\u5173\u95ED\uFF08",(0,s.jsx)(n.code,{children:"heartbeatInterval = -1"}),"\uFF09\u3002"]}),"\n",(0,s.jsx)(n.h2,{id:"\u793A\u4F8B\u5173\u95ED",children:"\u793A\u4F8B\uFF1A\u5173\u95ED"}),"\n",(0,s.jsx)(n.p,{children:"\u5173\u95ED\u540E\u6BCF\u6761\u63A7\u5236/\u5DE5\u4F5C\u6D41\u4F7F\u7528\u72EC\u7ACB\u8FDE\u63A5\uFF0C\u9700\u5F00\u542F\u5E94\u7528\u5C42\u5FC3\u8DF3\u3002"}),"\n",(0,s.jsx)(n.p,{children:"\u670D\u52A1\u7AEF\uFF1A"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-toml",children:"# orbien-server.toml\n[transport]\ntcpMux = false\n"})}),"\n",(0,s.jsx)(n.p,{children:"\u5BA2\u6237\u7AEF\uFF1A"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-toml",children:"# orbien.toml\n[transport]\ntcpMux = false\nheartbeatInterval = 30\n"})}),"\n",(0,s.jsxs)(n.p,{children:["\u5BA2\u6237\u7AEF\u82E5\u7701\u7565 ",(0,s.jsx)(n.code,{children:"heartbeatInterval"}),"\uFF0C\u5173\u95ED ",(0,s.jsx)(n.code,{children:"tcpMux"})," \u65F6\u4F1A\u81EA\u52A8\u8BBE\u4E3A ",(0,s.jsx)(n.code,{children:"30"}),"\u3002"]}),"\n",(0,s.jsx)(n.h2,{id:"\u5BA2\u6237\u7AEF\u53C2\u6570",children:"\u5BA2\u6237\u7AEF\u53C2\u6570"}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"\u53C2\u6570"}),(0,s.jsx)(n.th,{children:"\u5FC5\u586B"}),(0,s.jsx)(n.th,{children:"\u9ED8\u8BA4\u503C"}),(0,s.jsx)(n.th,{children:"\u8BF4\u660E"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"transport.tcpMux"})}),(0,s.jsx)(n.td,{children:"\u5426"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"true"})}),(0,s.jsx)(n.td,{children:"\u662F\u5426\u542F\u7528\u591A\u8DEF\u590D\u7528\uFF1B\u9700\u4E0E\u670D\u52A1\u7AEF\u4E00\u81F4"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"transport.heartbeatInterval"})}),(0,s.jsx)(n.td,{children:"\u5426"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"-1"})}),(0,s.jsxs)(n.td,{children:["\u5E94\u7528\u5FC3\u8DF3\u95F4\u9694\uFF08\u79D2\uFF09\uFF1B",(0,s.jsx)(n.code,{children:"-1"})," \u5173\u95ED\u3002\u5173\u95ED ",(0,s.jsx)(n.code,{children:"tcpMux"})," \u65F6\u81EA\u52A8\u53D8\u4E3A ",(0,s.jsx)(n.code,{children:"30"})]})]})]})]}),"\n",(0,s.jsx)(n.h2,{id:"\u670D\u52A1\u7AEF\u53C2\u6570",children:"\u670D\u52A1\u7AEF\u53C2\u6570"}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"\u53C2\u6570"}),(0,s.jsx)(n.th,{children:"\u5FC5\u586B"}),(0,s.jsx)(n.th,{children:"\u9ED8\u8BA4\u503C"}),(0,s.jsx)(n.th,{children:"\u8BF4\u660E"})]})}),(0,s.jsx)(n.tbody,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"transport.tcpMux"})}),(0,s.jsx)(n.td,{children:"\u5426"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"true"})}),(0,s.jsx)(n.td,{children:"\u662F\u5426\u542F\u7528\u591A\u8DEF\u590D\u7528\uFF1B\u9700\u4E0E\u5BA2\u6237\u7AEF\u4E00\u81F4"})]})})]})]})}function a(e={}){let{wrapper:n}={...(0,d.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(h,{...e})}):h(e)}},7008(e,n,r){r.d(n,{R:()=>c,x:()=>l});var t=r(1763);let s={},d=t.createContext(s);function c(e){let n=t.useContext(d);return t.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:c(e.components),t.createElement(d.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/0e384e19.2e6da584.js b/assets/js/0e384e19.82c87d74.js similarity index 79% rename from assets/js/0e384e19.2e6da584.js rename to assets/js/0e384e19.82c87d74.js index 6227c45..c0d98d9 100644 --- a/assets/js/0e384e19.2e6da584.js +++ b/assets/js/0e384e19.82c87d74.js @@ -1 +1 @@ -"use strict";(self.webpackChunkorbien_docs=self.webpackChunkorbien_docs||[]).push([["217"],{9337(n,e,r){r.r(e),r.d(e,{metadata:()=>s,default:()=>a,frontMatter:()=>o,contentTitle:()=>l,toc:()=>c,assets:()=>d});var s=JSON.parse('{"id":"intro","title":"\u4ECB\u7ECD","description":"Orbien \u662F\u4E00\u6B3E\u57FA\u4E8E Rust \u8BED\u8A00\u5F00\u53D1\u7684\u9AD8\u6027\u80FD\u5185\u7F51\u7A7F\u900F\u5DE5\u5177\uFF0C\u80FD\u591F\u5C06\u4F4D\u4E8E\u5185\u7F51\u7684\u670D\u52A1\u5B89\u5168\u3001\u9AD8\u6548\u5730\u66B4\u9732\u5230\u516C\u7F51\uFF0C\u4F9B\u5916\u90E8\u7528\u6237\u8BBF\u95EE\u3002\u5B83\u901A\u8FC7\u5EFA\u7ACB\u7A33\u5B9A\u7684\u53CD\u5411\u96A7\u9053\uFF0C","source":"@site/docs/intro.md","sourceDirName":".","slug":"/intro","permalink":"/orbien/docs/intro","draft":false,"unlisted":false,"editUrl":"https://github.com/orbien-org/orbien/tree/main/docs/docs/intro.md","tags":[],"version":"current","sidebarPosition":1,"frontMatter":{"sidebar_position":1,"sidebar_label":"\u4ECB\u7ECD","slug":"/intro"},"sidebar":"docsSidebar","next":{"title":"\u4E0B\u8F7D","permalink":"/orbien/docs/download"}}'),t=r(1987),i=r(7008);let o={sidebar_position:1,sidebar_label:"\u4ECB\u7ECD",slug:"/intro"},l="\u4ECB\u7ECD",d={},c=[{value:"\u529F\u80FD\u7279\u6027",id:"\u529F\u80FD\u7279\u6027",level:2}];function h(n){let e={h1:"h1",h2:"h2",header:"header",li:"li",p:"p",strong:"strong",ul:"ul",...(0,i.R)(),...n.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(e.header,{children:(0,t.jsx)(e.h1,{id:"\u4ECB\u7ECD",children:"\u4ECB\u7ECD"})}),"\n",(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:"Orbien"})," \u662F\u4E00\u6B3E\u57FA\u4E8E ",(0,t.jsx)(e.strong,{children:"Rust"})," \u8BED\u8A00\u5F00\u53D1\u7684\u9AD8\u6027\u80FD\u5185\u7F51\u7A7F\u900F\u5DE5\u5177\uFF0C\u80FD\u591F\u5C06\u4F4D\u4E8E\u5185\u7F51\u7684\u670D\u52A1\u5B89\u5168\u3001\u9AD8\u6548\u5730\u66B4\u9732\u5230\u516C\u7F51\uFF0C\u4F9B\u5916\u90E8\u7528\u6237\u8BBF\u95EE\u3002\u5B83\u901A\u8FC7\u5EFA\u7ACB\u7A33\u5B9A\u7684\u53CD\u5411\u96A7\u9053\uFF0C\n\u7A81\u7834",(0,t.jsx)(e.strong,{children:"\u9632\u706B\u5899"}),"\u7684\u9650\u5236\uFF0C\u9002\u7528\u4E8E",(0,t.jsx)(e.strong,{children:"\u8FDC\u7A0B\u8C03\u8BD5"}),"\u3001",(0,t.jsx)(e.strong,{children:"\u5185\u7F51\u670D\u52A1\u516C\u5F00"}),"\u3001",(0,t.jsx)(e.strong,{children:"\u5F00\u53D1\u6D4B\u8BD5"}),"\u3001",(0,t.jsx)(e.strong,{children:"\u7269\u8054\u7F51\u8BBE\u5907"}),"\u63A5\u5165\u7B49\u591A\u79CD\u573A\u666F\u3002"]}),"\n",(0,t.jsx)(e.h2,{id:"\u529F\u80FD\u7279\u6027",children:"\u529F\u80FD\u7279\u6027"}),"\n",(0,t.jsxs)(e.ul,{children:["\n",(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:"\u591A\u534F\u8BAE\u4EE3\u7406"}),"\uFF1A\u652F\u6301 TCP\u3001UDP\u3001HTTP\u3001HTTPS \u534F\u8BAE"]}),"\n",(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:"\u4F20\u8F93\u5C42"})," \u652F\u6301TCP\u3001QUIC\u3001KCP\u3001WebSocket\u591A\u79CD\u4F20\u8F93\u534F\u8BAE\u53EF\u9009"]}),"\n",(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:"\u591A\u8DEF\u590D\u7528"}),"\uFF1A\u652F\u6301TCP\u591A\u8DEF\u590D\u7528\uFF0C\u4E00\u6761\u7269\u7406\u8FDE\u63A5\u627F\u8F7D\u591A\u6761\u903B\u8F91\u5DE5\u4F5C\u6D41\uFF0C\u964D\u4F4E\u5F00\u9500\u548C\u5EF6\u8FDF"]}),"\n",(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:"HTTPS"})," HTTPS \u6309 SNI \u900F\u4F20\uFF0C\u57DF\u540D\u8BC1\u4E66\u5728\u672C\u5730\uFF0C\u53EF\u9009\u5BA2\u6237\u7AEFTLS\u7EC8\u6B62"]}),"\n",(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:"\u5B89\u5168"})," \uFF1A\u652F\u6301 TLS \u4E0E mTLS\u52A0\u5BC6\u4F20\u8F93\uFF0C\u4FDD\u8BC1\u6570\u636E\u5B89\u5168\u6027"]}),"\n",(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:"\u8FD0\u7EF4"}),"\uFF1A\u63D0\u4F9B\u8F7B\u91CF\u670D\u52A1\u7AEFWeb\u754C\u9762\u548C\u8DE8\u5E73\u53F0\u684C\u9762\u5BA2\u6237\u7AEF\uFF0C\u65B9\u4FBF\u8FD0\u7EF4\u76D1\u63A7"]}),"\n",(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:"\u8DE8\u5E73\u53F0"}),"\uFF1A\u652F\u6301 Linux\u3001Windows\u3001macOS\u3001FreeBSD \u591A\u67B6\u6784"]}),"\n"]})]})}function a(n={}){let{wrapper:e}={...(0,i.R)(),...n.components};return e?(0,t.jsx)(e,{...n,children:(0,t.jsx)(h,{...n})}):h(n)}},7008(n,e,r){r.d(e,{R:()=>o,x:()=>l});var s=r(1763);let t={},i=s.createContext(t);function o(n){let e=s.useContext(i);return s.useMemo(function(){return"function"==typeof n?n(e):{...e,...n}},[e,n])}function l(n){let e;return e=n.disableParentContext?"function"==typeof n.components?n.components(t):n.components||t:o(n.components),s.createElement(i.Provider,{value:e},n.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkorbien_docs=self.webpackChunkorbien_docs||[]).push([["217"],{9337(n,e,r){r.r(e),r.d(e,{metadata:()=>s,default:()=>a,frontMatter:()=>o,contentTitle:()=>l,toc:()=>c,assets:()=>d});var s=JSON.parse('{"id":"intro","title":"\u4ECB\u7ECD","description":"Orbien \u662F\u4E00\u6B3E\u57FA\u4E8E Rust \u8BED\u8A00\u5F00\u53D1\u7684\u9AD8\u6027\u80FD\u5185\u7F51\u7A7F\u900F\u5DE5\u5177\uFF0C\u80FD\u591F\u5C06\u4F4D\u4E8E\u5185\u7F51\u7684\u670D\u52A1\u5B89\u5168\u3001\u9AD8\u6548\u5730\u66B4\u9732\u5230\u516C\u7F51\uFF0C\u4F9B\u5916\u90E8\u7528\u6237\u8BBF\u95EE\u3002\u5B83\u901A\u8FC7\u5EFA\u7ACB\u7A33\u5B9A\u7684\u53CD\u5411\u96A7\u9053\uFF0C","source":"@site/docs/intro.md","sourceDirName":".","slug":"/intro","permalink":"/orbien/docs/intro","draft":false,"unlisted":false,"editUrl":"https://github.com/orbien-org/orbien/tree/main/docs/docs/intro.md","tags":[],"version":"current","sidebarPosition":1,"frontMatter":{"sidebar_position":1,"sidebar_label":"\u4ECB\u7ECD","slug":"/intro"},"sidebar":"docsSidebar","next":{"title":"\u4E0B\u8F7D","permalink":"/orbien/docs/download"}}'),t=r(1987),i=r(7008);let o={sidebar_position:1,sidebar_label:"\u4ECB\u7ECD",slug:"/intro"},l="\u4ECB\u7ECD",d={},c=[{value:"\u529F\u80FD\u7279\u6027",id:"\u529F\u80FD\u7279\u6027",level:2}];function h(n){let e={h1:"h1",h2:"h2",header:"header",li:"li",p:"p",strong:"strong",ul:"ul",...(0,i.R)(),...n.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(e.header,{children:(0,t.jsx)(e.h1,{id:"\u4ECB\u7ECD",children:"\u4ECB\u7ECD"})}),"\n",(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:"Orbien"})," \u662F\u4E00\u6B3E\u57FA\u4E8E ",(0,t.jsx)(e.strong,{children:"Rust"})," \u8BED\u8A00\u5F00\u53D1\u7684\u9AD8\u6027\u80FD\u5185\u7F51\u7A7F\u900F\u5DE5\u5177\uFF0C\u80FD\u591F\u5C06\u4F4D\u4E8E\u5185\u7F51\u7684\u670D\u52A1\u5B89\u5168\u3001\u9AD8\u6548\u5730\u66B4\u9732\u5230\u516C\u7F51\uFF0C\u4F9B\u5916\u90E8\u7528\u6237\u8BBF\u95EE\u3002\u5B83\u901A\u8FC7\u5EFA\u7ACB\u7A33\u5B9A\u7684\u53CD\u5411\u96A7\u9053\uFF0C\n\u7A81\u7834",(0,t.jsx)(e.strong,{children:"\u9632\u706B\u5899"}),"\u7684\u9650\u5236\uFF0C\u9002\u7528\u4E8E",(0,t.jsx)(e.strong,{children:"\u8FDC\u7A0B\u8C03\u8BD5"}),"\u3001",(0,t.jsx)(e.strong,{children:"\u5185\u7F51\u670D\u52A1\u516C\u5F00"}),"\u3001",(0,t.jsx)(e.strong,{children:"\u5F00\u53D1\u6D4B\u8BD5"}),"\u3001",(0,t.jsx)(e.strong,{children:"\u7269\u8054\u7F51\u8BBE\u5907"}),"\u63A5\u5165\u7B49\u591A\u79CD\u573A\u666F\u3002"]}),"\n",(0,t.jsx)(e.h2,{id:"\u529F\u80FD\u7279\u6027",children:"\u529F\u80FD\u7279\u6027"}),"\n",(0,t.jsxs)(e.ul,{children:["\n",(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:"\u591A\u534F\u8BAE\u96A7\u9053"}),"\uFF1A\u652F\u6301 TCP\u3001UDP\u3001HTTP\u3001HTTPS \u534F\u8BAE"]}),"\n",(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:"\u4F20\u8F93\u5C42"})," \u652F\u6301TCP\u3001QUIC\u3001KCP\u3001WebSocket\u591A\u79CD\u4F20\u8F93\u534F\u8BAE\u53EF\u9009"]}),"\n",(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:"\u591A\u8DEF\u590D\u7528"}),"\uFF1A\u652F\u6301TCP\u591A\u8DEF\u590D\u7528\uFF0C\u4E00\u6761\u7269\u7406\u8FDE\u63A5\u627F\u8F7D\u591A\u6761\u903B\u8F91\u6570\u636E\u6D41\uFF0C\u964D\u4F4E\u5F00\u9500\u548C\u5EF6\u8FDF"]}),"\n",(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:"HTTPS"})," HTTPS \u6309 SNI \u900F\u4F20\uFF0C\u57DF\u540D\u8BC1\u4E66\u5728\u672C\u5730\uFF0C\u53EF\u9009\u5BA2\u6237\u7AEFTLS\u7EC8\u6B62"]}),"\n",(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:"\u5B89\u5168"})," \uFF1A\u652F\u6301 TLS \u4E0E mTLS\u52A0\u5BC6\u4F20\u8F93\uFF0C\u4FDD\u8BC1\u6570\u636E\u5B89\u5168\u6027"]}),"\n",(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:"\u8FD0\u7EF4"}),"\uFF1A\u63D0\u4F9B\u8F7B\u91CF\u670D\u52A1\u7AEFWeb\u754C\u9762\u548C\u8DE8\u5E73\u53F0\u539F\u751F\u684C\u9762\u5BA2\u6237\u7AEF\uFF0C\u65B9\u4FBF\u8FD0\u7EF4\u76D1\u63A7"]}),"\n",(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:"\u8DE8\u5E73\u53F0"}),"\uFF1A\u652F\u6301 Linux\u3001Windows\u3001macOS\u3001FreeBSD \u591A\u67B6\u6784"]}),"\n"]})]})}function a(n={}){let{wrapper:e}={...(0,i.R)(),...n.components};return e?(0,t.jsx)(e,{...n,children:(0,t.jsx)(h,{...n})}):h(n)}},7008(n,e,r){r.d(e,{R:()=>o,x:()=>l});var s=r(1763);let t={},i=s.createContext(t);function o(n){let e=s.useContext(i);return s.useMemo(function(){return"function"==typeof n?n(e):{...e,...n}},[e,n])}function l(n){let e;return e=n.disableParentContext?"function"==typeof n.components?n.components(t):n.components||t:o(n.components),s.createElement(i.Provider,{value:e},n.children)}}}]); \ No newline at end of file diff --git a/assets/js/1df93b7f.26956a5e.js b/assets/js/1df93b7f.26956a5e.js new file mode 100644 index 0000000..1c59fcc --- /dev/null +++ b/assets/js/1df93b7f.26956a5e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkorbien_docs=self.webpackChunkorbien_docs||[]).push([["452"],{2029(e,s,i){i.r(s),i.d(s,{default:()=>b});var a=i(1987),t=i(3526),r=i(7364),d=i(319),l=i(5484),c=i(6819),n=i(8241),o=i(551),h=i(6475);let m=[{title:(0,a.jsx)(h.A,{id:"homepage.feature.perf.title",children:"\u9AD8\u6027\u80FD"}),description:(0,a.jsx)(h.A,{id:"homepage.feature.perf.desc",children:"\u9AD8\u6027\u80FD\u3001\u4F4E\u5EF6\u8FDF\u3001\u6297\u4E22\u5305\u3001\u5185\u5B58\u5360\u7528\u4F4E\u3001\u65E0GC\u505C\u987F\uFF0C\u9002\u5408\u957F\u671F\u670D\u52A1\u5668\u8FD0\u884C"})},{title:(0,a.jsx)(h.A,{id:"homepage.feature.tunnel.title",children:"\u591A\u534F\u8BAE\u96A7\u9053"}),description:(0,a.jsx)(h.A,{id:"homepage.feature.tunnel.desc",children:"\u652F\u6301 TCP\u3001UDP\u3001HTTP\u3001HTTPS \u534F\u8BAE\u96A7\u9053"})},{title:(0,a.jsx)(h.A,{id:"homepage.feature.transport.title",children:"\u591A\u4F20\u8F93\u534F\u8BAE"}),description:(0,a.jsx)(h.A,{id:"homepage.feature.transport.desc",children:"\u652F\u6301 TCP\u3001QUIC\u3001KCP\u3001WebSocket \u591A\u79CD\u4F20\u8F93\u534F\u8BAE\uFF0C\u540C\u65F6\u652F\u6301TCP\u591A\u8DEF\u590D\u7528"})},{title:(0,a.jsx)(h.A,{id:"homepage.feature.security.title",children:"\u5B89\u5168\u52A0\u5BC6"}),description:(0,a.jsx)(h.A,{id:"homepage.feature.security.desc",children:"\u652F\u6301 Token \u9274\u6743\u4E0E TLS /mTLS \u52A0\u5BC6\u4F20\u8F93\uFF1BHTTPS\u91C7\u7528\u900F\u660E\u8F6C\u53D1\u548C\u53EF\u9009\u5BA2\u6237\u7AEFTLS\u7EC8\u6B62"})},{title:(0,a.jsx)(h.A,{id:"homepage.feature.ops.title",children:"\u53EF\u89C6\u5316\u8FD0\u7EF4"}),description:(0,a.jsx)(h.A,{id:"homepage.feature.ops.desc",children:"\u5185\u7F6E\u8F7B\u91CF\u670D\u52A1\u7AEFWeb\u7BA1\u7406\u754C\u9762\u548C\u539F\u751F\u684C\u9762\u5BA2\u6237\u7AEF\uFF0C\u4FBF\u4E8E\u8FD0\u7EF4\u76D1\u63A7\uFF0C\u63D0\u9AD8\u6548\u7387"})},{title:(0,a.jsx)(h.A,{id:"homepage.feature.platform.title",children:"\u8DE8\u5E73\u53F0\u652F\u6301"}),description:(0,a.jsx)(h.A,{id:"homepage.feature.platform.desc",children:"\u652F\u6301 Windows / macOS / Linux / freeBSD \u7B49\u5E73\u53F0"})}];function p({title:e,description:s}){return(0,a.jsx)("div",{className:(0,t.A)("col col--4","featureCol_P0tX"),children:(0,a.jsxs)("div",{className:"featureCard_QAQr",children:[(0,a.jsx)(n.A,{as:"h3",className:"featureTitle_L1YZ",children:e}),(0,a.jsx)("p",{className:"featureDesc_qOCZ",children:s})]})})}function u(){return(0,a.jsx)("section",{className:"features_t9lD",children:(0,a.jsx)("div",{className:"container",children:(0,a.jsx)("div",{className:"row",children:m.map((e,s)=>(0,a.jsx)(p,{...e},s))})})})}let x="btnSecondary_mRVh";function j(){let e=(0,d.Ay)("/img/dashboard.png"),s=(0,d.Ay)("/img/dashboard_black.png");return(0,a.jsxs)("div",{className:"heroShot_o6Lk",children:[(0,a.jsx)("div",{className:"heroShotGlow_lUhG","aria-hidden":"true"}),(0,a.jsx)(o.A,{className:"heroShotImg_WlKk",alt:(0,h.T)({id:"homepage.hero.dashboardAlt",message:"Orbien \u9879\u76EE\u76D1\u63A7\u9762\u677F"}),width:1492,height:835,sources:{light:e,dark:s}})]})}function g(){return(0,a.jsx)("header",{className:"hero_aEcG",children:(0,a.jsxs)("div",{className:"heroInner_V4lS",children:[(0,a.jsxs)("div",{className:"heroCopy_zvrZ",children:[(0,a.jsxs)(n.A,{as:"h1",className:"heroBrand_lo5f",children:[(0,a.jsx)("span",{className:"brandOrb_BOug",children:"Orb"}),(0,a.jsx)("span",{className:"brandRest_mNh6",children:"ien"})]}),(0,a.jsx)("p",{className:"heroTagline_QIlK",children:(0,a.jsx)(h.A,{id:"homepage.hero.tagline",children:"\u7531 Rust \u4E0E Tokio \u9A71\u52A8"})}),(0,a.jsx)("p",{className:"heroDesc_pApI",children:(0,a.jsx)(h.A,{id:"homepage.hero.desc",children:"\u8F7B\u91CF\u3001\u9AD8\u6027\u80FD\u3001\u5B89\u5168\u7684\u5185\u7F51\u7A7F\u900F\uFF0C\u4E8C\u8FDB\u5236\u4F53\u79EF\u5927\u7EA65MB"})}),(0,a.jsxs)("div",{className:"heroActions_Z2kl",children:[(0,a.jsx)(r.A,{className:(0,t.A)("button button--lg","btnPrimary_hBjO"),to:"/docs/quickstart",children:(0,a.jsx)(h.A,{id:"homepage.hero.ctaStart",children:"\u5FEB\u901F\u5F00\u59CB"})}),(0,a.jsx)(r.A,{className:(0,t.A)("button button--lg",x),to:"/docs/download",children:(0,a.jsx)(h.A,{id:"homepage.hero.ctaDownload",children:"\u4E0B\u8F7D"})}),(0,a.jsx)(r.A,{className:(0,t.A)("button button--lg","btnGitHub_RNrN"),href:"https://github.com/orbien-org/orbien",children:"GitHub"})]})]}),(0,a.jsx)("div",{className:"heroVisual_DvAS",children:(0,a.jsx)(j,{})})]})})}function A(){let{i18n:e}=(0,l.A)(),s=(0,d.Ay)("en"===e.currentLocale?"/img/desktop_en.gif":"/img/desktop_zh.gif");return(0,a.jsx)("section",{className:"desktop_esma","aria-labelledby":"desktop-showcase-title",children:(0,a.jsxs)("div",{className:"desktopInner_HU24",children:[(0,a.jsxs)("div",{className:"desktopCopy_t7Jm",children:[(0,a.jsx)(n.A,{as:"h2",id:"desktop-showcase-title",className:"desktopTitle_nOuY",children:(0,a.jsx)(h.A,{id:"homepage.desktop.title",children:"\u684C\u9762\u5BA2\u6237\u7AEF"})}),(0,a.jsx)("p",{className:"desktopDesc_SAxO",children:(0,a.jsx)(h.A,{id:"homepage.desktop.desc",children:"\u7EAFRust\u539F\u751F\u684C\u9762\u5BA2\u6237\u7AEF\uFF0C\u901A\u8FC7\u53EF\u89C6\u5316\u754C\u9762\u8F7B\u677E\u7BA1\u7406\u96A7\u9053\u914D\u7F6E"})}),(0,a.jsx)(r.A,{className:(0,t.A)("button button--lg",x),to:"/docs/download",children:(0,a.jsx)(h.A,{id:"homepage.desktop.cta",children:"\u4E0B\u8F7D\u684C\u9762\u7AEF"})})]}),(0,a.jsx)("div",{className:"desktopVisual_cX6h",children:(0,a.jsx)("div",{className:"desktopFrame_bqGN",children:(0,a.jsx)("img",{className:"desktopGif_kMRW",src:s,alt:(0,h.T)({id:"homepage.desktop.alt",message:"Orbien Desktop \u5BA2\u6237\u7AEF\u6F14\u793A"}),width:1920,height:1279,loading:"lazy",decoding:"async"})})})]})})}function b(){return(0,a.jsxs)(c.A,{title:(0,h.T)({id:"homepage.meta.title",message:"Orbien \u2014 \u5185\u7F51\u7A7F\u900F"}),description:(0,h.T)({id:"homepage.meta.description",message:"Orbien\uFF1A\u7B80\u5355\u3001\u5B89\u5168\u7684\u5185\u7F51\u7A7F\u900F\uFF0C\u652F\u6301\u591A\u534F\u8BAE\u96A7\u9053\u4E0E\u591A\u4F20\u8F93\u534F\u8BAE"}),children:[(0,a.jsx)(g,{}),(0,a.jsxs)("main",{children:[(0,a.jsx)(u,{}),(0,a.jsx)(A,{})]})]})}}}]); \ No newline at end of file diff --git a/assets/js/1df93b7f.2d12c2ab.js b/assets/js/1df93b7f.2d12c2ab.js deleted file mode 100644 index 3d9447f..0000000 --- a/assets/js/1df93b7f.2d12c2ab.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkorbien_docs=self.webpackChunkorbien_docs||[]).push([["452"],{2029(e,s,i){i.r(s),i.d(s,{default:()=>b});var t=i(1987),a=i(3526),l=i(7364),n=i(319),c=i(5484),r=i(6819),d=i(8241),o=i(551);let h=[{title:"\u9AD8\u6027\u80FD",description:"\u5168\u94FE\u8DEF\u96F6\u62F7\u8D1D\u8F6C\u53D1\uFF0C\u4F4E\u5EF6\u8FDF\u3001\u9AD8\u541E\u5410\u3001\u65E0GC\u505C\u987F\uFF0C\u9002\u5408\u957F\u671F\u670D\u52A1\u5668\u8FD0\u884C"},{title:"\u591A\u534F\u8BAE\u4EE3\u7406",description:"\u652F\u6301 TCP\u3001UDP\u3001HTTP\u3001HTTPS\u534F\u8BAE\u4EE3\u7406"},{title:"\u591A\u4F20\u8F93\u534F\u8BAE",description:"\u652F\u6301 TCP\u3001QUIC\u3001KCP\u3001WebSocket \u591A\u79CD\u4F20\u8F93\u534F\u8BAE\uFF0C\u540C\u65F6\u652F\u6301TCP\u591A\u8DEF\u590D\u7528"},{title:"\u5B89\u5168\u52A0\u5BC6",description:"\u652F\u6301 Token \u9274\u6743\u4E0E TLS /mTLS \u52A0\u5BC6\u4F20\u8F93\uFF1BHTTPS\u91C7\u7528\u900F\u660E\u4EE3\u7406\u548C\u53EF\u9009\u5BA2\u6237\u7AEFTLS\u7EC8\u6B62"},{title:"\u53EF\u89C6\u5316\u8FD0\u7EF4",description:"\u5185\u7F6E\u8F7B\u91CF\u670D\u52A1\u7AEFWeb\u7BA1\u7406\u754C\u9762\u548C\u684C\u9762\u5BA2\u6237\u7AEF\uFF0C\u4FBF\u4E8E\u8FD0\u7EF4\u76D1\u63A7"},{title:"\u8DE8\u5E73\u53F0\u652F\u6301",description:"\u652F\u6301 Windows / macOS / Linux / freeBSD \u7B49\u5E73\u53F0"}];function m({title:e,description:s}){return(0,t.jsx)("div",{className:(0,a.A)("col col--4","featureCol_P0tX"),children:(0,t.jsxs)("div",{className:"featureCard_QAQr",children:[(0,t.jsx)(d.A,{as:"h3",className:"featureTitle_L1YZ",children:e}),(0,t.jsx)("p",{className:"featureDesc_qOCZ",children:s})]})})}function u(){return(0,t.jsx)("section",{className:"features_t9lD",children:(0,t.jsx)("div",{className:"container",children:(0,t.jsx)("div",{className:"row",children:h.map(e=>(0,t.jsx)(m,{...e},e.title))})})})}let x="btnSecondary_mRVh";function j(){let e=(0,n.Ay)("/img/dashboard.png"),s=(0,n.Ay)("/img/dashboard_black.png");return(0,t.jsxs)("div",{className:"heroShot_o6Lk",children:[(0,t.jsx)("div",{className:"heroShotGlow_lUhG","aria-hidden":"true"}),(0,t.jsx)(o.A,{className:"heroShotImg_WlKk",alt:"Orbien \u9879\u76EE\u76D1\u63A7\u9762\u677F",width:1492,height:835,sources:{light:e,dark:s}})]})}function p(){return(0,t.jsx)("header",{className:"hero_aEcG",children:(0,t.jsxs)("div",{className:"heroInner_V4lS",children:[(0,t.jsxs)("div",{className:"heroCopy_zvrZ",children:[(0,t.jsxs)(d.A,{as:"h1",className:"heroBrand_lo5f",children:[(0,t.jsx)("span",{className:"brandOrb_BOug",children:"Orb"}),(0,t.jsx)("span",{className:"brandRest_mNh6",children:"ien"})]}),(0,t.jsx)("p",{className:"heroTagline_QIlK",children:"\u7531 Rust \u4E0E Tokio \u9A71\u52A8"}),(0,t.jsx)("p",{className:"heroDesc_pApI",children:"\u8F7B\u91CF\u3001\u9AD8\u6027\u80FD\u3001\u5B89\u5168\u7684\u5185\u7F51\u7A7F\u900F\u4E0E\u53CD\u5411\u4EE3\u7406\uFF0C\u4E8C\u8FDB\u5236\u4F53\u79EF5MB\u5DE6\u53F3"}),(0,t.jsxs)("div",{className:"heroActions_Z2kl",children:[(0,t.jsx)(l.A,{className:(0,a.A)("button button--lg","btnPrimary_hBjO"),to:"/docs/intro",children:"\u5FEB\u901F\u5F00\u59CB"}),(0,t.jsx)(l.A,{className:(0,a.A)("button button--lg",x),to:"/docs/download",children:"\u4E0B\u8F7D"}),(0,t.jsx)(l.A,{className:(0,a.A)("button button--lg","btnGitHub_RNrN"),href:"https://github.com/orbien-org/orbien",children:"GitHub"})]})]}),(0,t.jsx)("div",{className:"heroVisual_DvAS",children:(0,t.jsx)(j,{})})]})})}function N(){let e=(0,n.Ay)("/img/desktop.gif");return(0,t.jsx)("section",{className:"desktop_esma","aria-labelledby":"desktop-showcase-title",children:(0,t.jsxs)("div",{className:"desktopInner_HU24",children:[(0,t.jsxs)("div",{className:"desktopCopy_t7Jm",children:[(0,t.jsx)(d.A,{as:"h2",id:"desktop-showcase-title",className:"desktopTitle_nOuY",children:"\u684C\u9762\u5BA2\u6237\u7AEF"}),(0,t.jsx)("p",{className:"desktopDesc_SAxO",children:"\u901A\u8FC7\u53EF\u89C6\u5316\u7BA1\u7406\u754C\u9762\u8F7B\u677E\u7BA1\u7406\u7A7F\u900F\u914D\u7F6E"}),(0,t.jsx)(l.A,{className:(0,a.A)("button button--lg",x),to:"/docs/download",children:"\u4E0B\u8F7D\u684C\u9762\u7AEF"})]}),(0,t.jsx)("div",{className:"desktopVisual_cX6h",children:(0,t.jsx)("div",{className:"desktopFrame_bqGN",children:(0,t.jsx)("img",{className:"desktopGif_kMRW",src:e,alt:"Orbien Desktop \u5BA2\u6237\u7AEF\u6F14\u793A",width:1920,height:1279,loading:"lazy",decoding:"async"})})})]})})}function b(){let{siteConfig:e}=(0,c.A)();return(0,t.jsxs)(r.A,{title:`${e.title} \u{2014} \u{5185}\u{7F51}\u{7A7F}\u{900F}\u{4E0E}\u{53CD}\u{5411}\u{4EE3}\u{7406}`,description:"Orbien\uFF1A\u7B80\u5355\u3001\u5B89\u5168\u7684\u5185\u7F51\u7A7F\u900F\u4E0E\u53CD\u5411\u4EE3\u7406\uFF0C\u652F\u6301\u591A\u534F\u8BAE\u4EE3\u7406\u4E0E\u591A\u4F20\u8F93\u534F\u8BAE",children:[(0,t.jsx)(p,{}),(0,t.jsxs)("main",{children:[(0,t.jsx)(u,{}),(0,t.jsx)(N,{})]})]})}}}]); \ No newline at end of file diff --git a/assets/js/37f66e80.567f6d20.js b/assets/js/37f66e80.567f6d20.js new file mode 100644 index 0000000..c697cd6 --- /dev/null +++ b/assets/js/37f66e80.567f6d20.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkorbien_docs=self.webpackChunkorbien_docs||[]).push([["395"],{2438(e,n,s){s.r(n),s.d(n,{metadata:()=>d,default:()=>x,frontMatter:()=>c,contentTitle:()=>l,toc:()=>h,assets:()=>i});var d=JSON.parse('{"id":"tunnels/http","title":"HTTP","description":"\u901A\u8FC7\u57DF\u540D\u5C06\u5185\u7F51 HTTP \u670D\u52A1\u66B4\u9732\u5230\u516C\u7F51\u3002\u670D\u52A1\u7AEF\u9700\u5F00\u542F\u57DF\u540D\u5165\u53E3\uFF0C\u89C1 \u57DF\u540D\u3002","source":"@site/docs/tunnels/http.md","sourceDirName":"tunnels","slug":"/tunnels/http","permalink":"/orbien/docs/tunnels/http","draft":false,"unlisted":false,"editUrl":"https://github.com/orbien-org/orbien/tree/main/docs/docs/tunnels/http.md","tags":[],"version":"current","sidebarPosition":3,"frontMatter":{"sidebar_position":3,"sidebar_label":"HTTP","title":"HTTP"},"sidebar":"docsSidebar","previous":{"title":"UDP","permalink":"/orbien/docs/tunnels/udp"},"next":{"title":"HTTPS","permalink":"/orbien/docs/tunnels/https"}}'),r=s(1987),t=s(7008);let c={sidebar_position:3,sidebar_label:"HTTP",title:"HTTP"},l="HTTP",i={},h=[{value:"\u793A\u4F8B\uFF1A\u7A7F\u900F Web \u670D\u52A1",id:"\u793A\u4F8B\u7A7F\u900F-web-\u670D\u52A1",level:2},{value:"\u793A\u4F8B\uFF1ABasic \u9274\u6743",id:"\u793A\u4F8Bbasic-\u9274\u6743",level:2},{value:"\u793A\u4F8B\uFF1A\u6309 HTTP \u7528\u6237\u5206\u6D41",id:"\u793A\u4F8B\u6309-http-\u7528\u6237\u5206\u6D41",level:2},{value:"\u793A\u4F8B\uFF1A\u6539\u5199 Host",id:"\u793A\u4F8B\u6539\u5199-host",level:2},{value:"\u53C2\u6570",id:"\u53C2\u6570",level:2}];function o(e){let n={a:"a",code:"code",h1:"h1",h2:"h2",header:"header",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,t.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.header,{children:(0,r.jsx)(n.h1,{id:"http",children:"HTTP"})}),"\n",(0,r.jsxs)(n.p,{children:["\u901A\u8FC7\u57DF\u540D\u5C06\u5185\u7F51 HTTP \u670D\u52A1\u66B4\u9732\u5230\u516C\u7F51\u3002\u670D\u52A1\u7AEF\u9700\u5F00\u542F\u57DF\u540D\u5165\u53E3\uFF0C\u89C1 ",(0,r.jsx)(n.a,{href:"/orbien/docs/tunnels/domains",children:"\u57DF\u540D"}),"\u3002"]}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.code,{children:"domains"})," \u5FC5\u586B\u4E14\u975E\u7A7A\uFF1A\u53EF\u5199\u5B8C\u6574\u57DF\u540D\uFF08\u5982 ",(0,r.jsx)(n.code,{children:"web.example.com"}),"\uFF09\uFF0C\u6216\u65E0 ",(0,r.jsx)(n.code,{children:"."})," \u7684\u77ED\u524D\u7F00\uFF08\u5982 ",(0,r.jsx)(n.code,{children:"web"}),"\uFF0C\u9700\u670D\u52A1\u7AEF\u914D\u7F6E ",(0,r.jsx)(n.code,{children:"rootDomain"}),"\uFF09\uFF0C\u4E0D\u652F\u6301\u901A\u914D\u7B26\u3002"]}),"\n",(0,r.jsx)(n.h2,{id:"\u793A\u4F8B\u7A7F\u900F-web-\u670D\u52A1",children:"\u793A\u4F8B\uFF1A\u7A7F\u900F Web \u670D\u52A1"}),"\n",(0,r.jsx)(n.p,{children:"\u670D\u52A1\u7AEF\uFF1A"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-toml",children:'# orbien-server.toml\nlisten = "0.0.0.0:9527"\nhttpGwPort = 80\n'})}),"\n",(0,r.jsx)(n.p,{children:"\u5BA2\u6237\u7AEF\uFF1A"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-toml",children:'# orbien.toml\nserver = "YOUR_SERVER_IP:9527"\n\n[[tunnels]]\nname = "web"\nprotocol = "http"\nservice = "127.0.0.1:8080"\ndomains = ["web.example.com"]\n'})}),"\n",(0,r.jsxs)(n.p,{children:["\u5C06 ",(0,r.jsx)(n.code,{children:"web.example.com"})," \u89E3\u6790\u5230\u670D\u52A1\u7AEF IP \u540E\u8BBF\u95EE\uFF1A"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-shell",children:"curl http://web.example.com\n"})}),"\n",(0,r.jsx)(n.h2,{id:"\u793A\u4F8Bbasic-\u9274\u6743",children:"\u793A\u4F8B\uFF1ABasic \u9274\u6743"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-toml",children:'[[tunnels]]\nname = "web-auth"\nprotocol = "http"\nservice = "127.0.0.1:8080"\ndomains = ["web.example.com"]\nbasicAuthUser = "alice"\nbasicAuthPassword = "secret"\n'})}),"\n",(0,r.jsxs)(n.p,{children:["\u8BBF\u95EE\u65F6\u9700\u5E26 Basic \u51ED\u8BC1\uFF0C\u5931\u8D25\u8FD4\u56DE ",(0,r.jsx)(n.code,{children:"401"}),"\uFF1A"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-shell",children:"curl -u alice:secret http://web.example.com\n"})}),"\n",(0,r.jsx)(n.h2,{id:"\u793A\u4F8B\u6309-http-\u7528\u6237\u5206\u6D41",children:"\u793A\u4F8B\uFF1A\u6309 HTTP \u7528\u6237\u5206\u6D41"}),"\n",(0,r.jsxs)(n.p,{children:["\u540C\u57DF\u540D\u4E0B\u53EF\u4E3A\u4E0D\u540C Basic \u7528\u6237\u6302\u5230\u4E0D\u540C\u672C\u5730\u670D\u52A1\uFF1B\u672A\u5339\u914D\u5230\u4E13\u7528\u8DEF\u7531\u65F6\uFF0C\u4F1A\u843D\u5230\u672A\u8BBE\u7F6E ",(0,r.jsx)(n.code,{children:"routeByHTTPUser"})," \u7684\u96A7\u9053\uFF08\u82E5\u6709\uFF09\u3002"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-toml",children:'[[tunnels]]\nname = "web-alice"\nprotocol = "http"\nservice = "127.0.0.1:8081"\ndomains = ["web.example.com"]\nrouteByHTTPUser = "alice"\nbasicAuthUser = "alice"\nbasicAuthPassword = "secret"\n\n[[tunnels]]\nname = "web-default"\nprotocol = "http"\nservice = "127.0.0.1:8080"\ndomains = ["web.example.com"]\n'})}),"\n",(0,r.jsx)(n.h2,{id:"\u793A\u4F8B\u6539\u5199-host",children:"\u793A\u4F8B\uFF1A\u6539\u5199 Host"}),"\n",(0,r.jsxs)(n.p,{children:["\u8F6C\u53D1\u5230\u672C\u5730\u670D\u52A1\u65F6\uFF0C\u628A\u8BF7\u6C42\u7684 ",(0,r.jsx)(n.code,{children:"Host"})," \u6539\u6210\u6307\u5B9A\u503C\uFF1A"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-toml",children:'[[tunnels]]\nname = "web"\nprotocol = "http"\nservice = "127.0.0.1:8080"\ndomains = ["web.example.com"]\nhostHeaderRewrite = "127.0.0.1"\n'})}),"\n",(0,r.jsx)(n.h2,{id:"\u53C2\u6570",children:"\u53C2\u6570"}),"\n",(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"\u53C2\u6570"}),(0,r.jsx)(n.th,{children:"\u5FC5\u586B"}),(0,r.jsx)(n.th,{children:"\u9ED8\u8BA4\u503C"}),(0,r.jsx)(n.th,{children:"\u8BF4\u660E"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"name"})}),(0,r.jsx)(n.td,{children:"\u662F"}),(0,r.jsx)(n.td,{}),(0,r.jsx)(n.td,{children:"\u96A7\u9053\u540D\u79F0\uFF0C\u552F\u4E00"})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"protocol"})}),(0,r.jsx)(n.td,{children:"\u662F"}),(0,r.jsx)(n.td,{}),(0,r.jsxs)(n.td,{children:["\u56FA\u5B9A\u4E3A ",(0,r.jsx)(n.code,{children:"http"})]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"service"})}),(0,r.jsx)(n.td,{children:"\u662F"}),(0,r.jsx)(n.td,{}),(0,r.jsxs)(n.td,{children:["\u672C\u5730\u670D\u52A1\u5730\u5740\uFF0C\u5982 ",(0,r.jsx)(n.code,{children:"127.0.0.1:8080"})]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"domains"})}),(0,r.jsx)(n.td,{children:"\u662F"}),(0,r.jsx)(n.td,{}),(0,r.jsxs)(n.td,{children:["\u57DF\u540D\u5217\u8868\uFF0C\u81F3\u5C11\u4E00\u4E2A\uFF1B\u5B8C\u6574\u57DF\u540D\u6216\u65E0 ",(0,r.jsx)(n.code,{children:"."})," \u7684\u524D\u7F00\uFF08\u524D\u7F00\u9700\u670D\u52A1\u7AEF ",(0,r.jsx)(n.code,{children:"rootDomain"}),"\uFF09"]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"locations"})}),(0,r.jsx)(n.td,{children:"\u5426"}),(0,r.jsx)(n.td,{}),(0,r.jsxs)(n.td,{children:["\u8DEF\u5F84\u524D\u7F00\uFF0C\u5982 ",(0,r.jsx)(n.code,{children:"/api"}),"\uFF1B\u7A7A\u8868\u793A\u5168\u90E8"]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"basicAuthUser"})}),(0,r.jsx)(n.td,{children:"\u5426"}),(0,r.jsx)(n.td,{}),(0,r.jsxs)(n.td,{children:["HTTP Basic \u9274\u6743\u7528\u6237\u540D\uFF1B\u4E0E ",(0,r.jsx)(n.code,{children:"basicAuthPassword"})," \u90FD\u4E3A\u7A7A\u5219\u4E0D\u9274\u6743"]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"basicAuthPassword"})}),(0,r.jsx)(n.td,{children:"\u5426"}),(0,r.jsx)(n.td,{}),(0,r.jsx)(n.td,{children:"HTTP Basic \u9274\u6743\u5BC6\u7801"})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"routeByHTTPUser"})}),(0,r.jsx)(n.td,{children:"\u5426"}),(0,r.jsx)(n.td,{}),(0,r.jsx)(n.td,{children:"\u6309\u8BF7\u6C42 Basic \u7528\u6237\u540D\u9009\u8DEF\u7531\uFF1B\u7A7A\u8868\u793A\u5339\u914D\u4EFB\u610F\u7528\u6237\uFF08\u7CBE\u786E\u7528\u6237\u4F18\u5148\uFF09"})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"hostHeaderRewrite"})}),(0,r.jsx)(n.td,{children:"\u5426"}),(0,r.jsx)(n.td,{}),(0,r.jsx)(n.td,{children:"\u6539\u5199\u8F6C\u53D1\u5230\u672C\u5730\u670D\u52A1\u7684 Host\uFF1B\u7A7A\u8868\u793A\u4E0D\u6539"})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"transport.bandwidth"})}),(0,r.jsx)(n.td,{children:"\u5426"}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"0"})}),(0,r.jsxs)(n.td,{children:["\u5E26\u5BBD\u4E0A\u9650\uFF08Mbps\uFF09\uFF1B",(0,r.jsx)(n.code,{children:"0"})," \u8868\u793A\u4E0D\u9650\u5236"]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"transport.bandwidthLimitSide"})}),(0,r.jsx)(n.td,{children:"\u5426"}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"client"})}),(0,r.jsxs)(n.td,{children:["\u9650\u901F\u7AEF\uFF1A",(0,r.jsx)(n.code,{children:"client"})," / ",(0,r.jsx)(n.code,{children:"server"})]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"transport.proxyProtocolVersion"})}),(0,r.jsx)(n.td,{children:"\u5426"}),(0,r.jsx)(n.td,{}),(0,r.jsxs)(n.td,{children:["PROXY Protocol\uFF1A",(0,r.jsx)(n.code,{children:"v1"})," / ",(0,r.jsx)(n.code,{children:"v2"})]})]})]})]})]})}function x(e={}){let{wrapper:n}={...(0,t.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(o,{...e})}):o(e)}},7008(e,n,s){s.d(n,{R:()=>c,x:()=>l});var d=s(1763);let r={},t=d.createContext(r);function c(e){let n=d.useContext(t);return d.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:c(e.components),d.createElement(t.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/395fe600.7fc368e2.js b/assets/js/395fe600.7fc368e2.js deleted file mode 100644 index ac6ed22..0000000 --- a/assets/js/395fe600.7fc368e2.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkorbien_docs=self.webpackChunkorbien_docs||[]).push([["156"],{1177(e,r,d){d.r(r),d.d(r,{metadata:()=>s,default:()=>x,frontMatter:()=>c,contentTitle:()=>i,toc:()=>o,assets:()=>l});var s=JSON.parse('{"id":"proxies/tcp","title":"TCP","description":"\u5C06\u5185\u7F51 TCP \u670D\u52A1\u6620\u5C04\u5230\u670D\u52A1\u7AEF\u516C\u7F51\u7AEF\u53E3\u3002","source":"@site/docs/proxies/tcp.md","sourceDirName":"proxies","slug":"/proxies/tcp","permalink":"/orbien/docs/proxies/tcp","draft":false,"unlisted":false,"editUrl":"https://github.com/orbien-org/orbien/tree/main/docs/docs/proxies/tcp.md","tags":[],"version":"current","sidebarPosition":1,"frontMatter":{"sidebar_position":1,"sidebar_label":"TCP","title":"TCP"},"sidebar":"docsSidebar","previous":{"title":"Docker \u5B89\u88C5","permalink":"/orbien/docs/docker"},"next":{"title":"UDP","permalink":"/orbien/docs/proxies/udp"}}'),n=d(1987),t=d(7008);let c={sidebar_position:1,sidebar_label:"TCP",title:"TCP"},i="TCP",l={},o=[{value:"\u793A\u4F8B\uFF1A\u7A7F\u900F SSH",id:"\u793A\u4F8B\u7A7F\u900F-ssh",level:2},{value:"\u53C2\u6570",id:"\u53C2\u6570",level:2}];function h(e){let r={code:"code",h1:"h1",h2:"h2",header:"header",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,t.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(r.header,{children:(0,n.jsx)(r.h1,{id:"tcp",children:"TCP"})}),"\n",(0,n.jsx)(r.p,{children:"\u5C06\u5185\u7F51 TCP \u670D\u52A1\u6620\u5C04\u5230\u670D\u52A1\u7AEF\u516C\u7F51\u7AEF\u53E3\u3002"}),"\n",(0,n.jsx)(r.h2,{id:"\u793A\u4F8B\u7A7F\u900F-ssh",children:"\u793A\u4F8B\uFF1A\u7A7F\u900F SSH"}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-toml",children:'# orbien.toml\nserverAddr = "YOUR_SERVER_IP"\nserverPort = 9527\n\n[[proxies]]\nname = "ssh"\ntype = "tcp"\nlocalIP = "127.0.0.1"\nlocalPort = 22\nremotePort = 9000\n'})}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-shell",children:"./orbien -c orbien.toml\n"})}),"\n",(0,n.jsx)(r.p,{children:"\u5916\u7F51\u8BBF\u95EE\uFF1A"}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-shell",children:"ssh -p 9000 user@YOUR_SERVER_IP\n"})}),"\n",(0,n.jsx)(r.h2,{id:"\u53C2\u6570",children:"\u53C2\u6570"}),"\n",(0,n.jsxs)(r.table,{children:[(0,n.jsx)(r.thead,{children:(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.th,{children:"\u53C2\u6570"}),(0,n.jsx)(r.th,{children:"\u5FC5\u586B"}),(0,n.jsx)(r.th,{children:"\u9ED8\u8BA4\u503C"}),(0,n.jsx)(r.th,{children:"\u8BF4\u660E"})]})}),(0,n.jsxs)(r.tbody,{children:[(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:(0,n.jsx)(r.code,{children:"name"})}),(0,n.jsx)(r.td,{children:"\u662F"}),(0,n.jsx)(r.td,{}),(0,n.jsx)(r.td,{children:"\u4EE3\u7406\u540D\u79F0\uFF0C\u552F\u4E00"})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:(0,n.jsx)(r.code,{children:"type"})}),(0,n.jsx)(r.td,{children:"\u662F"}),(0,n.jsx)(r.td,{}),(0,n.jsxs)(r.td,{children:["\u56FA\u5B9A\u4E3A ",(0,n.jsx)(r.code,{children:"tcp"})]})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:(0,n.jsx)(r.code,{children:"localIP"})}),(0,n.jsx)(r.td,{children:"\u5426"}),(0,n.jsx)(r.td,{children:(0,n.jsx)(r.code,{children:"127.0.0.1"})}),(0,n.jsx)(r.td,{children:"\u672C\u5730\u670D\u52A1\u5730\u5740"})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:(0,n.jsx)(r.code,{children:"localPort"})}),(0,n.jsx)(r.td,{children:"\u662F"}),(0,n.jsx)(r.td,{}),(0,n.jsx)(r.td,{children:"\u672C\u5730\u670D\u52A1\u7AEF\u53E3"})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:(0,n.jsx)(r.code,{children:"remotePort"})}),(0,n.jsx)(r.td,{children:"\u662F"}),(0,n.jsx)(r.td,{}),(0,n.jsx)(r.td,{children:"\u670D\u52A1\u7AEF\u5BF9\u5916\u76D1\u542C\u7AEF\u53E3"})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:(0,n.jsx)(r.code,{children:"transport.bandwidthLimit"})}),(0,n.jsx)(r.td,{children:"\u5426"}),(0,n.jsx)(r.td,{}),(0,n.jsxs)(r.td,{children:["\u5E26\u5BBD\u9650\u5236\uFF0C\u5982 ",(0,n.jsx)(r.code,{children:"1MB"}),"\u3001",(0,n.jsx)(r.code,{children:"100KB"}),"\uFF1B\u7A7A\u8868\u793A\u4E0D\u9650\u5236"]})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:(0,n.jsx)(r.code,{children:"transport.bandwidthLimitMode"})}),(0,n.jsx)(r.td,{children:"\u5426"}),(0,n.jsx)(r.td,{children:(0,n.jsx)(r.code,{children:"client"})}),(0,n.jsxs)(r.td,{children:["\u9650\u901F\u7AEF\uFF1A",(0,n.jsx)(r.code,{children:"client"})," / ",(0,n.jsx)(r.code,{children:"server"})]})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:(0,n.jsx)(r.code,{children:"transport.proxyProtocolVersion"})}),(0,n.jsx)(r.td,{children:"\u5426"}),(0,n.jsx)(r.td,{}),(0,n.jsxs)(r.td,{children:["PROXY Protocol\uFF1A",(0,n.jsx)(r.code,{children:"v1"})," / ",(0,n.jsx)(r.code,{children:"v2"})]})]})]})]})]})}function x(e={}){let{wrapper:r}={...(0,t.R)(),...e.components};return r?(0,n.jsx)(r,{...e,children:(0,n.jsx)(h,{...e})}):h(e)}},7008(e,r,d){d.d(r,{R:()=>c,x:()=>i});var s=d(1763);let n={},t=s.createContext(n);function c(e){let r=s.useContext(t);return s.useMemo(function(){return"function"==typeof e?e(r):{...r,...e}},[r,e])}function i(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:c(e.components),s.createElement(t.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/4093844a.f2a7daab.js b/assets/js/4093844a.f2a7daab.js deleted file mode 100644 index 8878a02..0000000 --- a/assets/js/4093844a.f2a7daab.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkorbien_docs=self.webpackChunkorbien_docs||[]).push([["359"],{9256(e,n,s){s.r(n),s.d(n,{metadata:()=>o,default:()=>a,frontMatter:()=>d,contentTitle:()=>i,toc:()=>l,assets:()=>c});var o=JSON.parse('{"id":"proxies/vhost","title":"\u865A\u62DF\u4E3B\u673A","description":"HTTP / HTTPS \u6309\u57DF\u540D\u8DEF\u7531\u3002\u670D\u52A1\u7AEF\u5F00\u542F vhostHTTPPort / vhostHTTPSPort \u540E\uFF0C\u5BA2\u6237\u7AEF\u7528 customDomains \u6216 subdomain \u7ED1\u5B9A\u57DF\u540D\u3002","source":"@site/docs/proxies/vhost.md","sourceDirName":"proxies","slug":"/proxies/vhost","permalink":"/orbien/docs/proxies/vhost","draft":false,"unlisted":false,"editUrl":"https://github.com/orbien-org/orbien/tree/main/docs/docs/proxies/vhost.md","tags":[],"version":"current","sidebarPosition":5,"frontMatter":{"sidebar_position":5,"sidebar_label":"\u865A\u62DF\u4E3B\u673A","title":"\u865A\u62DF\u4E3B\u673A"},"sidebar":"docsSidebar","previous":{"title":"HTTPS","permalink":"/orbien/docs/proxies/https"},"next":{"title":"TCP","permalink":"/orbien/docs/transport/protocol/tcp"}}'),r=s(1987),t=s(7008);let d={sidebar_position:5,sidebar_label:"\u865A\u62DF\u4E3B\u673A",title:"\u865A\u62DF\u4E3B\u673A"},i="\u865A\u62DF\u4E3B\u673A",c={},l=[{value:"\u793A\u4F8B\uFF1A\u81EA\u5B9A\u4E49\u57DF\u540D",id:"\u793A\u4F8B\u81EA\u5B9A\u4E49\u57DF\u540D",level:2},{value:"\u793A\u4F8B\uFF1A\u5B50\u57DF\u540D",id:"\u793A\u4F8B\u5B50\u57DF\u540D",level:2},{value:"\u53C2\u6570",id:"\u53C2\u6570",level:2}];function h(e){let n={code:"code",h1:"h1",h2:"h2",header:"header",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,t.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.header,{children:(0,r.jsx)(n.h1,{id:"\u865A\u62DF\u4E3B\u673A",children:"\u865A\u62DF\u4E3B\u673A"})}),"\n",(0,r.jsxs)(n.p,{children:["HTTP / HTTPS \u6309\u57DF\u540D\u8DEF\u7531\u3002\u670D\u52A1\u7AEF\u5F00\u542F ",(0,r.jsx)(n.code,{children:"vhostHTTPPort"})," / ",(0,r.jsx)(n.code,{children:"vhostHTTPSPort"})," \u540E\uFF0C\u5BA2\u6237\u7AEF\u7528 ",(0,r.jsx)(n.code,{children:"customDomains"})," \u6216 ",(0,r.jsx)(n.code,{children:"subdomain"})," \u7ED1\u5B9A\u57DF\u540D\u3002"]}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.code,{children:"subdomain"})," \u9700\u914D\u5408\u670D\u52A1\u7AEF ",(0,r.jsx)(n.code,{children:"subDomainHost"}),"\uFF1A\u6700\u7EC8\u57DF\u540D\u4E3A ",(0,r.jsx)(n.code,{children:"{subdomain}.{subDomainHost}"}),"\u3002"]}),"\n",(0,r.jsx)(n.h2,{id:"\u793A\u4F8B\u81EA\u5B9A\u4E49\u57DF\u540D",children:"\u793A\u4F8B\uFF1A\u81EA\u5B9A\u4E49\u57DF\u540D"}),"\n",(0,r.jsx)(n.p,{children:"\u670D\u52A1\u7AEF\uFF1A"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-toml",children:"# orbien-server.toml\nvhostHTTPPort = 80\nvhostHTTPSPort = 443\n"})}),"\n",(0,r.jsx)(n.p,{children:"\u5BA2\u6237\u7AEF\uFF1A"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-toml",children:'# orbien.toml\n[[proxies]]\nname = "web"\ntype = "http"\nlocalIP = "127.0.0.1"\nlocalPort = 8080\ncustomDomains = ["web.example.com"]\n'})}),"\n",(0,r.jsxs)(n.p,{children:["\u5C06 ",(0,r.jsx)(n.code,{children:"web.example.com"})," \u89E3\u6790\u5230\u670D\u52A1\u7AEF IP \u540E\u8BBF\u95EE\u3002"]}),"\n",(0,r.jsx)(n.h2,{id:"\u793A\u4F8B\u5B50\u57DF\u540D",children:"\u793A\u4F8B\uFF1A\u5B50\u57DF\u540D"}),"\n",(0,r.jsx)(n.p,{children:"\u670D\u52A1\u7AEF\uFF1A"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-toml",children:'# orbien-server.toml\nvhostHTTPPort = 80\nsubDomainHost = "example.com"\n'})}),"\n",(0,r.jsx)(n.p,{children:"\u5BA2\u6237\u7AEF\uFF1A"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-toml",children:'# orbien.toml\n[[proxies]]\nname = "web"\ntype = "http"\nlocalIP = "127.0.0.1"\nlocalPort = 8080\nsubdomain = "blog"\n'})}),"\n",(0,r.jsxs)(n.p,{children:["\u8BBF\u95EE\u57DF\u540D\u4E3A ",(0,r.jsx)(n.code,{children:"blog.example.com"}),"\u3002"]}),"\n",(0,r.jsx)(n.h2,{id:"\u53C2\u6570",children:"\u53C2\u6570"}),"\n",(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"\u53C2\u6570"}),(0,r.jsx)(n.th,{children:"\u5FC5\u586B"}),(0,r.jsx)(n.th,{children:"\u9ED8\u8BA4\u503C"}),(0,r.jsx)(n.th,{children:"\u8BF4\u660E"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"vhostHTTPPort"})}),(0,r.jsx)(n.td,{children:"\u5426"}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"0"})}),(0,r.jsxs)(n.td,{children:["HTTP \u865A\u62DF\u4E3B\u673A\u7AEF\u53E3\uFF1B",(0,r.jsx)(n.code,{children:"0"})," \u8868\u793A\u5173\u95ED"]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"vhostHTTPSPort"})}),(0,r.jsx)(n.td,{children:"\u5426"}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"0"})}),(0,r.jsxs)(n.td,{children:["HTTPS \u865A\u62DF\u4E3B\u673A\u7AEF\u53E3\uFF1B",(0,r.jsx)(n.code,{children:"0"})," \u8868\u793A\u5173\u95ED"]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"subDomainHost"})}),(0,r.jsx)(n.td,{children:"\u5426"}),(0,r.jsx)(n.td,{}),(0,r.jsxs)(n.td,{children:["\u5B50\u57DF\u540D\u6839\u57DF\uFF1B\u5BA2\u6237\u7AEF\u586B ",(0,r.jsx)(n.code,{children:"subdomain"})," \u65F6\u5FC5\u586B\uFF0C\u62FC\u63A5\u4E3A ",(0,r.jsx)(n.code,{children:"\u524D\u7F00.\u6839\u57DF"})]})]})]})]})]})}function a(e={}){let{wrapper:n}={...(0,t.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(h,{...e})}):h(e)}},7008(e,n,s){s.d(n,{R:()=>d,x:()=>i});var o=s(1763);let r={},t=o.createContext(r);function d(e){let n=o.useContext(t);return o.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function i(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:d(e.components),o.createElement(t.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/46875d5c.4f76e68a.js b/assets/js/46875d5c.4f76e68a.js new file mode 100644 index 0000000..5a88233 --- /dev/null +++ b/assets/js/46875d5c.4f76e68a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkorbien_docs=self.webpackChunkorbien_docs||[]).push([["590"],{7640(e,r,t){t.r(r),t.d(r,{metadata:()=>n,default:()=>x,frontMatter:()=>c,contentTitle:()=>i,toc:()=>o,assets:()=>l});var n=JSON.parse('{"id":"transport/protocol/quic","title":"QUIC","description":"\u57FA\u4E8E UDP\u3002\u81EA\u5E26\u52A0\u5BC6\u4E0E\u591A\u8DEF\u590D\u7528\uFF0CtcpMux / transport.tls.enable \u65E0\u6548\u3002\u8BC1\u4E66\u6821\u9A8C\u4ECD\u53EF\u901A\u8FC7 transport.tls","source":"@site/docs/transport/protocol/quic.md","sourceDirName":"transport/protocol","slug":"/transport/protocol/quic","permalink":"/orbien/docs/transport/protocol/quic","draft":false,"unlisted":false,"editUrl":"https://github.com/orbien-org/orbien/tree/main/docs/docs/transport/protocol/quic.md","tags":[],"version":"current","sidebarPosition":3,"frontMatter":{"sidebar_position":3,"sidebar_label":"QUIC","title":"QUIC"},"sidebar":"docsSidebar","previous":{"title":"WebSocket","permalink":"/orbien/docs/transport/protocol/websocket"},"next":{"title":"KCP","permalink":"/orbien/docs/transport/protocol/kcp"}}'),d=t(1987),s=t(7008);let c={sidebar_position:3,sidebar_label:"QUIC",title:"QUIC"},i="QUIC",l={},o=[{value:"\u793A\u4F8B",id:"\u793A\u4F8B",level:2},{value:"\u5BA2\u6237\u7AEF\u53C2\u6570",id:"\u5BA2\u6237\u7AEF\u53C2\u6570",level:2},{value:"\u670D\u52A1\u7AEF\u53C2\u6570",id:"\u670D\u52A1\u7AEF\u53C2\u6570",level:2}];function h(e){let r={a:"a",code:"code",h1:"h1",h2:"h2",header:"header",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,s.R)(),...e.components};return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(r.header,{children:(0,d.jsx)(r.h1,{id:"quic",children:"QUIC"})}),"\n",(0,d.jsxs)(r.p,{children:["\u57FA\u4E8E UDP\u3002\u81EA\u5E26\u52A0\u5BC6\u4E0E\u591A\u8DEF\u590D\u7528\uFF0C",(0,d.jsx)(r.code,{children:"tcpMux"})," / ",(0,d.jsx)(r.code,{children:"transport.tls.enable"})," \u65E0\u6548\u3002\u8BC1\u4E66\u6821\u9A8C\u4ECD\u53EF\u901A\u8FC7 ",(0,d.jsx)(r.code,{children:"transport.tls"}),"\n\u914D\u7F6E\uFF0C\u8BE6\u89C1 ",(0,d.jsx)(r.a,{href:"/orbien/docs/transport/tls",children:"TLS"}),"\u3002"]}),"\n",(0,d.jsx)(r.h2,{id:"\u793A\u4F8B",children:"\u793A\u4F8B"}),"\n",(0,d.jsx)(r.p,{children:"\u670D\u52A1\u7AEF\uFF1A"}),"\n",(0,d.jsx)(r.pre,{children:(0,d.jsx)(r.code,{className:"language-toml",children:'# orbien-server.toml\nlisten = "0.0.0.0:9527"\nquicPort = 9528\n\n[transport.quic]\nkeepalivePeriod = 10\nmaxIdleTimeout = 30\nmaxIncomingStreams = 100000\n'})}),"\n",(0,d.jsx)(r.p,{children:"\u5BA2\u6237\u7AEF\uFF1A"}),"\n",(0,d.jsx)(r.pre,{children:(0,d.jsx)(r.code,{className:"language-toml",children:'# orbien.toml\nserver = "YOUR_SERVER_IP:9528"\n\n[transport]\nprotocol = "quic"\n\n[transport.quic]\nkeepalivePeriod = 10\nmaxIdleTimeout = 30\nmaxIncomingStreams = 100000\n'})}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.code,{children:"server"})," \u9700\u6307\u5411\u670D\u52A1\u7AEF ",(0,d.jsx)(r.code,{children:"quicPort"}),"\u3002"]}),"\n",(0,d.jsx)(r.h2,{id:"\u5BA2\u6237\u7AEF\u53C2\u6570",children:"\u5BA2\u6237\u7AEF\u53C2\u6570"}),"\n",(0,d.jsxs)(r.table,{children:[(0,d.jsx)(r.thead,{children:(0,d.jsxs)(r.tr,{children:[(0,d.jsx)(r.th,{children:"\u53C2\u6570"}),(0,d.jsx)(r.th,{children:"\u5FC5\u586B"}),(0,d.jsx)(r.th,{children:"\u9ED8\u8BA4\u503C"}),(0,d.jsx)(r.th,{children:"\u8BF4\u660E"})]})}),(0,d.jsxs)(r.tbody,{children:[(0,d.jsxs)(r.tr,{children:[(0,d.jsx)(r.td,{children:(0,d.jsx)(r.code,{children:"transport.protocol"})}),(0,d.jsx)(r.td,{children:"\u662F"}),(0,d.jsx)(r.td,{children:(0,d.jsx)(r.code,{children:"tcp"})}),(0,d.jsxs)(r.td,{children:["\u56FA\u5B9A\u4E3A ",(0,d.jsx)(r.code,{children:"quic"})]})]}),(0,d.jsxs)(r.tr,{children:[(0,d.jsx)(r.td,{children:(0,d.jsx)(r.code,{children:"server"})}),(0,d.jsx)(r.td,{children:"\u662F"}),(0,d.jsx)(r.td,{}),(0,d.jsxs)(r.td,{children:["\u586B\u670D\u52A1\u7AEF\u5730\u5740\uFF0C\u7AEF\u53E3\u4E3A ",(0,d.jsx)(r.code,{children:"quicPort"})]})]}),(0,d.jsxs)(r.tr,{children:[(0,d.jsx)(r.td,{children:(0,d.jsx)(r.code,{children:"transport.quic.keepalivePeriod"})}),(0,d.jsx)(r.td,{children:"\u5426"}),(0,d.jsx)(r.td,{children:(0,d.jsx)(r.code,{children:"10"})}),(0,d.jsx)(r.td,{children:"QUIC \u4FDD\u6D3B\u5468\u671F\uFF08\u79D2\uFF09"})]}),(0,d.jsxs)(r.tr,{children:[(0,d.jsx)(r.td,{children:(0,d.jsx)(r.code,{children:"transport.quic.maxIdleTimeout"})}),(0,d.jsx)(r.td,{children:"\u5426"}),(0,d.jsx)(r.td,{children:(0,d.jsx)(r.code,{children:"30"})}),(0,d.jsx)(r.td,{children:"QUIC \u7A7A\u95F2\u8D85\u65F6\uFF08\u79D2\uFF09"})]}),(0,d.jsxs)(r.tr,{children:[(0,d.jsx)(r.td,{children:(0,d.jsx)(r.code,{children:"transport.quic.maxIncomingStreams"})}),(0,d.jsx)(r.td,{children:"\u5426"}),(0,d.jsx)(r.td,{children:(0,d.jsx)(r.code,{children:"100000"})}),(0,d.jsx)(r.td,{children:"QUIC \u6700\u5927\u5E76\u53D1\u53CC\u5411\u6D41\uFF08\u5BA2\u6237\u7AEF dial \u4E5F\u4F1A\u8BBE\u7F6E\uFF09"})]})]})]}),"\n",(0,d.jsx)(r.h2,{id:"\u670D\u52A1\u7AEF\u53C2\u6570",children:"\u670D\u52A1\u7AEF\u53C2\u6570"}),"\n",(0,d.jsxs)(r.table,{children:[(0,d.jsx)(r.thead,{children:(0,d.jsxs)(r.tr,{children:[(0,d.jsx)(r.th,{children:"\u53C2\u6570"}),(0,d.jsx)(r.th,{children:"\u5FC5\u586B"}),(0,d.jsx)(r.th,{children:"\u9ED8\u8BA4\u503C"}),(0,d.jsx)(r.th,{children:"\u8BF4\u660E"})]})}),(0,d.jsxs)(r.tbody,{children:[(0,d.jsxs)(r.tr,{children:[(0,d.jsx)(r.td,{children:(0,d.jsx)(r.code,{children:"quicPort"})}),(0,d.jsx)(r.td,{children:"\u662F"}),(0,d.jsx)(r.td,{children:(0,d.jsx)(r.code,{children:"0"})}),(0,d.jsxs)(r.td,{children:["QUIC \u76D1\u542C\u7AEF\u53E3\uFF08UDP\uFF09\uFF1B",(0,d.jsx)(r.code,{children:"0"})," \u8868\u793A\u5173\u95ED\uFF1B\u4E0D\u53EF\u4E0E ",(0,d.jsx)(r.code,{children:"kcpPort"})," \u76F8\u540C"]})]}),(0,d.jsxs)(r.tr,{children:[(0,d.jsx)(r.td,{children:(0,d.jsx)(r.code,{children:"transport.quic.keepalivePeriod"})}),(0,d.jsx)(r.td,{children:"\u5426"}),(0,d.jsx)(r.td,{children:(0,d.jsx)(r.code,{children:"10"})}),(0,d.jsx)(r.td,{children:"QUIC \u4FDD\u6D3B\u5468\u671F\uFF08\u79D2\uFF09"})]}),(0,d.jsxs)(r.tr,{children:[(0,d.jsx)(r.td,{children:(0,d.jsx)(r.code,{children:"transport.quic.maxIdleTimeout"})}),(0,d.jsx)(r.td,{children:"\u5426"}),(0,d.jsx)(r.td,{children:(0,d.jsx)(r.code,{children:"30"})}),(0,d.jsx)(r.td,{children:"QUIC \u7A7A\u95F2\u8D85\u65F6\uFF08\u79D2\uFF09"})]}),(0,d.jsxs)(r.tr,{children:[(0,d.jsx)(r.td,{children:(0,d.jsx)(r.code,{children:"transport.quic.maxIncomingStreams"})}),(0,d.jsx)(r.td,{children:"\u5426"}),(0,d.jsx)(r.td,{children:(0,d.jsx)(r.code,{children:"100000"})}),(0,d.jsx)(r.td,{children:"QUIC \u6700\u5927\u5165\u7AD9\u6D41"})]})]})]})]})}function x(e={}){let{wrapper:r}={...(0,s.R)(),...e.components};return r?(0,d.jsx)(r,{...e,children:(0,d.jsx)(h,{...e})}):h(e)}},7008(e,r,t){t.d(r,{R:()=>c,x:()=>i});var n=t(1763);let d={},s=n.createContext(d);function c(e){let r=n.useContext(s);return n.useMemo(function(){return"function"==typeof e?e(r):{...r,...e}},[r,e])}function i(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(d):e.components||d:c(e.components),n.createElement(s.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/46875d5c.8eac26b0.js b/assets/js/46875d5c.8eac26b0.js deleted file mode 100644 index db9080e..0000000 --- a/assets/js/46875d5c.8eac26b0.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkorbien_docs=self.webpackChunkorbien_docs||[]).push([["590"],{7640(e,r,n){n.r(r),n.d(r,{metadata:()=>t,default:()=>x,frontMatter:()=>c,contentTitle:()=>i,toc:()=>o,assets:()=>l});var t=JSON.parse('{"id":"transport/protocol/quic","title":"QUIC","description":"\u57FA\u4E8E UDP\u3002\u81EA\u5E26\u52A0\u5BC6\u4E0E\u591A\u8DEF\u590D\u7528\uFF0CtcpMux / transport.tls.enable \u65E0\u6548\u3002\u8BC1\u4E66\u6821\u9A8C\u4ECD\u53EF\u901A\u8FC7 transport.tls","source":"@site/docs/transport/protocol/quic.md","sourceDirName":"transport/protocol","slug":"/transport/protocol/quic","permalink":"/orbien/docs/transport/protocol/quic","draft":false,"unlisted":false,"editUrl":"https://github.com/orbien-org/orbien/tree/main/docs/docs/transport/protocol/quic.md","tags":[],"version":"current","sidebarPosition":3,"frontMatter":{"sidebar_position":3,"sidebar_label":"QUIC","title":"QUIC"},"sidebar":"docsSidebar","previous":{"title":"WebSocket","permalink":"/orbien/docs/transport/protocol/websocket"},"next":{"title":"KCP","permalink":"/orbien/docs/transport/protocol/kcp"}}'),d=n(1987),s=n(7008);let c={sidebar_position:3,sidebar_label:"QUIC",title:"QUIC"},i="QUIC",l={},o=[{value:"\u793A\u4F8B",id:"\u793A\u4F8B",level:2},{value:"\u5BA2\u6237\u7AEF\u53C2\u6570",id:"\u5BA2\u6237\u7AEF\u53C2\u6570",level:2},{value:"\u670D\u52A1\u7AEF\u53C2\u6570",id:"\u670D\u52A1\u7AEF\u53C2\u6570",level:2}];function h(e){let r={a:"a",code:"code",h1:"h1",h2:"h2",header:"header",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,s.R)(),...e.components};return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(r.header,{children:(0,d.jsx)(r.h1,{id:"quic",children:"QUIC"})}),"\n",(0,d.jsxs)(r.p,{children:["\u57FA\u4E8E UDP\u3002\u81EA\u5E26\u52A0\u5BC6\u4E0E\u591A\u8DEF\u590D\u7528\uFF0C",(0,d.jsx)(r.code,{children:"tcpMux"})," / ",(0,d.jsx)(r.code,{children:"transport.tls.enable"})," \u65E0\u6548\u3002\u8BC1\u4E66\u6821\u9A8C\u4ECD\u53EF\u901A\u8FC7 ",(0,d.jsx)(r.code,{children:"transport.tls"}),"\n\u914D\u7F6E\uFF0C\u8BE6\u89C1 ",(0,d.jsx)(r.a,{href:"/orbien/docs/transport/tls",children:"TLS"}),"\u3002"]}),"\n",(0,d.jsx)(r.h2,{id:"\u793A\u4F8B",children:"\u793A\u4F8B"}),"\n",(0,d.jsx)(r.p,{children:"\u670D\u52A1\u7AEF\uFF1A"}),"\n",(0,d.jsx)(r.pre,{children:(0,d.jsx)(r.code,{className:"language-toml",children:'# orbien-server.toml\nbindAddr = "0.0.0.0"\nbindPort = 9527\nquicBindPort = 9528\n\n[transport.quic]\nkeepalivePeriod = 10\nmaxIdleTimeout = 30\nmaxIncomingStreams = 100000\n'})}),"\n",(0,d.jsx)(r.p,{children:"\u5BA2\u6237\u7AEF\uFF1A"}),"\n",(0,d.jsx)(r.pre,{children:(0,d.jsx)(r.code,{className:"language-toml",children:'# orbien.toml\nserverAddr = "YOUR_SERVER_IP"\nserverPort = 9528\n\n[transport]\nprotocol = "quic"\n\n[transport.quic]\nkeepalivePeriod = 10\nmaxIdleTimeout = 30\n'})}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.code,{children:"serverPort"})," \u9700\u6307\u5411\u670D\u52A1\u7AEF ",(0,d.jsx)(r.code,{children:"quicBindPort"}),"\u3002"]}),"\n",(0,d.jsx)(r.h2,{id:"\u5BA2\u6237\u7AEF\u53C2\u6570",children:"\u5BA2\u6237\u7AEF\u53C2\u6570"}),"\n",(0,d.jsxs)(r.table,{children:[(0,d.jsx)(r.thead,{children:(0,d.jsxs)(r.tr,{children:[(0,d.jsx)(r.th,{children:"\u53C2\u6570"}),(0,d.jsx)(r.th,{children:"\u5FC5\u586B"}),(0,d.jsx)(r.th,{children:"\u9ED8\u8BA4\u503C"}),(0,d.jsx)(r.th,{children:"\u8BF4\u660E"})]})}),(0,d.jsxs)(r.tbody,{children:[(0,d.jsxs)(r.tr,{children:[(0,d.jsx)(r.td,{children:(0,d.jsx)(r.code,{children:"transport.protocol"})}),(0,d.jsx)(r.td,{children:"\u662F"}),(0,d.jsx)(r.td,{children:(0,d.jsx)(r.code,{children:"tcp"})}),(0,d.jsxs)(r.td,{children:["\u56FA\u5B9A\u4E3A ",(0,d.jsx)(r.code,{children:"quic"})]})]}),(0,d.jsxs)(r.tr,{children:[(0,d.jsx)(r.td,{children:(0,d.jsx)(r.code,{children:"serverPort"})}),(0,d.jsx)(r.td,{children:"\u662F"}),(0,d.jsx)(r.td,{}),(0,d.jsxs)(r.td,{children:["\u586B\u670D\u52A1\u7AEF ",(0,d.jsx)(r.code,{children:"quicBindPort"})]})]}),(0,d.jsxs)(r.tr,{children:[(0,d.jsx)(r.td,{children:(0,d.jsx)(r.code,{children:"transport.quic.keepalivePeriod"})}),(0,d.jsx)(r.td,{children:"\u5426"}),(0,d.jsx)(r.td,{children:(0,d.jsx)(r.code,{children:"10"})}),(0,d.jsx)(r.td,{children:"QUIC \u4FDD\u6D3B\u5468\u671F\uFF08\u79D2\uFF09"})]}),(0,d.jsxs)(r.tr,{children:[(0,d.jsx)(r.td,{children:(0,d.jsx)(r.code,{children:"transport.quic.maxIdleTimeout"})}),(0,d.jsx)(r.td,{children:"\u5426"}),(0,d.jsx)(r.td,{children:(0,d.jsx)(r.code,{children:"30"})}),(0,d.jsx)(r.td,{children:"QUIC \u7A7A\u95F2\u8D85\u65F6\uFF08\u79D2\uFF09"})]})]})]}),"\n",(0,d.jsx)(r.h2,{id:"\u670D\u52A1\u7AEF\u53C2\u6570",children:"\u670D\u52A1\u7AEF\u53C2\u6570"}),"\n",(0,d.jsxs)(r.table,{children:[(0,d.jsx)(r.thead,{children:(0,d.jsxs)(r.tr,{children:[(0,d.jsx)(r.th,{children:"\u53C2\u6570"}),(0,d.jsx)(r.th,{children:"\u5FC5\u586B"}),(0,d.jsx)(r.th,{children:"\u9ED8\u8BA4\u503C"}),(0,d.jsx)(r.th,{children:"\u8BF4\u660E"})]})}),(0,d.jsxs)(r.tbody,{children:[(0,d.jsxs)(r.tr,{children:[(0,d.jsx)(r.td,{children:(0,d.jsx)(r.code,{children:"quicBindPort"})}),(0,d.jsx)(r.td,{children:"\u662F"}),(0,d.jsx)(r.td,{children:(0,d.jsx)(r.code,{children:"0"})}),(0,d.jsxs)(r.td,{children:["QUIC \u76D1\u542C\u7AEF\u53E3\uFF08UDP\uFF09\uFF1B",(0,d.jsx)(r.code,{children:"0"})," \u8868\u793A\u5173\u95ED\uFF1B\u4E0D\u53EF\u4E0E ",(0,d.jsx)(r.code,{children:"kcpBindPort"})," \u76F8\u540C"]})]}),(0,d.jsxs)(r.tr,{children:[(0,d.jsx)(r.td,{children:(0,d.jsx)(r.code,{children:"transport.quic.keepalivePeriod"})}),(0,d.jsx)(r.td,{children:"\u5426"}),(0,d.jsx)(r.td,{children:(0,d.jsx)(r.code,{children:"10"})}),(0,d.jsx)(r.td,{children:"QUIC \u4FDD\u6D3B\u5468\u671F\uFF08\u79D2\uFF09"})]}),(0,d.jsxs)(r.tr,{children:[(0,d.jsx)(r.td,{children:(0,d.jsx)(r.code,{children:"transport.quic.maxIdleTimeout"})}),(0,d.jsx)(r.td,{children:"\u5426"}),(0,d.jsx)(r.td,{children:(0,d.jsx)(r.code,{children:"30"})}),(0,d.jsx)(r.td,{children:"QUIC \u7A7A\u95F2\u8D85\u65F6\uFF08\u79D2\uFF09"})]}),(0,d.jsxs)(r.tr,{children:[(0,d.jsx)(r.td,{children:(0,d.jsx)(r.code,{children:"transport.quic.maxIncomingStreams"})}),(0,d.jsx)(r.td,{children:"\u5426"}),(0,d.jsx)(r.td,{children:(0,d.jsx)(r.code,{children:"100000"})}),(0,d.jsx)(r.td,{children:"QUIC \u6700\u5927\u5165\u7AD9\u6D41"})]})]})]})]})}function x(e={}){let{wrapper:r}={...(0,s.R)(),...e.components};return r?(0,d.jsx)(r,{...e,children:(0,d.jsx)(h,{...e})}):h(e)}},7008(e,r,n){n.d(r,{R:()=>c,x:()=>i});var t=n(1763);let d={},s=t.createContext(d);function c(e){let r=t.useContext(s);return t.useMemo(function(){return"function"==typeof e?e(r):{...r,...e}},[r,e])}function i(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(d):e.components||d:c(e.components),t.createElement(s.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/51876da0.019db1d4.js b/assets/js/51876da0.019db1d4.js deleted file mode 100644 index 545125e..0000000 --- a/assets/js/51876da0.019db1d4.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkorbien_docs=self.webpackChunkorbien_docs||[]).push([["896"],{599(e,r,t){t.r(r),t.d(r,{metadata:()=>n,default:()=>x,frontMatter:()=>c,contentTitle:()=>o,toc:()=>l,assets:()=>i});var n=JSON.parse('{"id":"transport/protocol/tcp","title":"TCP","description":"\u9ED8\u8BA4\u4F20\u8F93\u534F\u8BAE\u3002\u5BA2\u6237\u7AEF\u901A\u8FC7\u670D\u52A1\u7AEF bindPort \u5EFA\u7ACB\u63A7\u5236\u901A\u9053\u3002TLS \u914D\u7F6E\u89C1 TLS\u3002","source":"@site/docs/transport/protocol/tcp.md","sourceDirName":"transport/protocol","slug":"/transport/protocol/tcp","permalink":"/orbien/docs/transport/protocol/tcp","draft":false,"unlisted":false,"editUrl":"https://github.com/orbien-org/orbien/tree/main/docs/docs/transport/protocol/tcp.md","tags":[],"version":"current","sidebarPosition":1,"frontMatter":{"sidebar_position":1,"sidebar_label":"TCP","title":"TCP"},"sidebar":"docsSidebar","previous":{"title":"\u865A\u62DF\u4E3B\u673A","permalink":"/orbien/docs/proxies/vhost"},"next":{"title":"WebSocket","permalink":"/orbien/docs/transport/protocol/websocket"}}'),d=t(1987),s=t(7008);let c={sidebar_position:1,sidebar_label:"TCP",title:"TCP"},o="TCP",i={},l=[{value:"\u793A\u4F8B",id:"\u793A\u4F8B",level:2},{value:"\u5BA2\u6237\u7AEF\u53C2\u6570",id:"\u5BA2\u6237\u7AEF\u53C2\u6570",level:2},{value:"\u670D\u52A1\u7AEF\u53C2\u6570",id:"\u670D\u52A1\u7AEF\u53C2\u6570",level:2}];function h(e){let r={a:"a",code:"code",h1:"h1",h2:"h2",header:"header",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,s.R)(),...e.components};return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(r.header,{children:(0,d.jsx)(r.h1,{id:"tcp",children:"TCP"})}),"\n",(0,d.jsxs)(r.p,{children:["\u9ED8\u8BA4\u4F20\u8F93\u534F\u8BAE\u3002\u5BA2\u6237\u7AEF\u901A\u8FC7\u670D\u52A1\u7AEF ",(0,d.jsx)(r.code,{children:"bindPort"})," \u5EFA\u7ACB\u63A7\u5236\u901A\u9053\u3002TLS \u914D\u7F6E\u89C1 ",(0,d.jsx)(r.a,{href:"/orbien/docs/transport/tls",children:"TLS"}),"\u3002"]}),"\n",(0,d.jsx)(r.h2,{id:"\u793A\u4F8B",children:"\u793A\u4F8B"}),"\n",(0,d.jsx)(r.p,{children:"\u670D\u52A1\u7AEF\uFF1A"}),"\n",(0,d.jsx)(r.pre,{children:(0,d.jsx)(r.code,{className:"language-toml",children:'# orbien-server.toml\nbindAddr = "0.0.0.0"\nbindPort = 9527\n\n[transport]\ntcpMux = true\n'})}),"\n",(0,d.jsx)(r.p,{children:"\u5BA2\u6237\u7AEF\uFF1A"}),"\n",(0,d.jsx)(r.pre,{children:(0,d.jsx)(r.code,{className:"language-toml",children:'# orbien.toml\nserverAddr = "YOUR_SERVER_IP"\nserverPort = 9527\n\n[transport]\nprotocol = "tcp"\ntcpMux = true\nheartbeatInterval = -1\n'})}),"\n",(0,d.jsx)(r.h2,{id:"\u5BA2\u6237\u7AEF\u53C2\u6570",children:"\u5BA2\u6237\u7AEF\u53C2\u6570"}),"\n",(0,d.jsxs)(r.table,{children:[(0,d.jsx)(r.thead,{children:(0,d.jsxs)(r.tr,{children:[(0,d.jsx)(r.th,{children:"\u53C2\u6570"}),(0,d.jsx)(r.th,{children:"\u5FC5\u586B"}),(0,d.jsx)(r.th,{children:"\u9ED8\u8BA4\u503C"}),(0,d.jsx)(r.th,{children:"\u8BF4\u660E"})]})}),(0,d.jsxs)(r.tbody,{children:[(0,d.jsxs)(r.tr,{children:[(0,d.jsx)(r.td,{children:(0,d.jsx)(r.code,{children:"transport.protocol"})}),(0,d.jsx)(r.td,{children:"\u5426"}),(0,d.jsx)(r.td,{children:(0,d.jsx)(r.code,{children:"tcp"})}),(0,d.jsxs)(r.td,{children:["\u56FA\u5B9A\u4E3A ",(0,d.jsx)(r.code,{children:"tcp"})]})]}),(0,d.jsxs)(r.tr,{children:[(0,d.jsx)(r.td,{children:(0,d.jsx)(r.code,{children:"transport.tcpMux"})}),(0,d.jsx)(r.td,{children:"\u5426"}),(0,d.jsx)(r.td,{children:(0,d.jsx)(r.code,{children:"true"})}),(0,d.jsx)(r.td,{children:"TCP \u591A\u8DEF\u590D\u7528\uFF1B\u9700\u4E0E\u670D\u52A1\u7AEF\u4E00\u81F4"})]}),(0,d.jsxs)(r.tr,{children:[(0,d.jsx)(r.td,{children:(0,d.jsx)(r.code,{children:"transport.heartbeatInterval"})}),(0,d.jsx)(r.td,{children:"\u5426"}),(0,d.jsx)(r.td,{children:(0,d.jsx)(r.code,{children:"-1"})}),(0,d.jsxs)(r.td,{children:["\u5E94\u7528\u5FC3\u8DF3\u95F4\u9694\uFF08\u79D2\uFF09\uFF1B",(0,d.jsx)(r.code,{children:"-1"})," \u5173\u95ED\u3002\u5173\u95ED ",(0,d.jsx)(r.code,{children:"tcpMux"})," \u65F6\u81EA\u52A8\u53D8\u4E3A ",(0,d.jsx)(r.code,{children:"30"})]})]})]})]}),"\n",(0,d.jsx)(r.h2,{id:"\u670D\u52A1\u7AEF\u53C2\u6570",children:"\u670D\u52A1\u7AEF\u53C2\u6570"}),"\n",(0,d.jsxs)(r.table,{children:[(0,d.jsx)(r.thead,{children:(0,d.jsxs)(r.tr,{children:[(0,d.jsx)(r.th,{children:"\u53C2\u6570"}),(0,d.jsx)(r.th,{children:"\u5FC5\u586B"}),(0,d.jsx)(r.th,{children:"\u9ED8\u8BA4\u503C"}),(0,d.jsx)(r.th,{children:"\u8BF4\u660E"})]})}),(0,d.jsxs)(r.tbody,{children:[(0,d.jsxs)(r.tr,{children:[(0,d.jsx)(r.td,{children:(0,d.jsx)(r.code,{children:"bindPort"})}),(0,d.jsx)(r.td,{children:"\u662F"}),(0,d.jsx)(r.td,{children:(0,d.jsx)(r.code,{children:"9527"})}),(0,d.jsx)(r.td,{children:"TCP \u76D1\u542C\u7AEF\u53E3"})]}),(0,d.jsxs)(r.tr,{children:[(0,d.jsx)(r.td,{children:(0,d.jsx)(r.code,{children:"transport.tcpMux"})}),(0,d.jsx)(r.td,{children:"\u5426"}),(0,d.jsx)(r.td,{children:(0,d.jsx)(r.code,{children:"true"})}),(0,d.jsx)(r.td,{children:"TCP \u591A\u8DEF\u590D\u7528\uFF1B\u9700\u4E0E\u5BA2\u6237\u7AEF\u4E00\u81F4"})]})]})]})]})}function x(e={}){let{wrapper:r}={...(0,s.R)(),...e.components};return r?(0,d.jsx)(r,{...e,children:(0,d.jsx)(h,{...e})}):h(e)}},7008(e,r,t){t.d(r,{R:()=>c,x:()=>o});var n=t(1763);let d={},s=n.createContext(d);function c(e){let r=n.useContext(s);return n.useMemo(function(){return"function"==typeof e?e(r):{...r,...e}},[r,e])}function o(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(d):e.components||d:c(e.components),n.createElement(s.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/51876da0.b64acab5.js b/assets/js/51876da0.b64acab5.js new file mode 100644 index 0000000..116d1af --- /dev/null +++ b/assets/js/51876da0.b64acab5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkorbien_docs=self.webpackChunkorbien_docs||[]).push([["896"],{599(e,t,r){r.r(t),r.d(t,{metadata:()=>n,default:()=>x,frontMatter:()=>c,contentTitle:()=>l,toc:()=>o,assets:()=>i});var n=JSON.parse('{"id":"transport/protocol/tcp","title":"TCP","description":"\u9ED8\u8BA4\u4F20\u8F93\u534F\u8BAE\u3002\u5BA2\u6237\u7AEF\u901A\u8FC7\u670D\u52A1\u7AEF listen \u5EFA\u7ACB\u63A7\u5236\u901A\u9053\u3002TLS \u914D\u7F6E\u89C1 TLS\u3002","source":"@site/docs/transport/protocol/tcp.md","sourceDirName":"transport/protocol","slug":"/transport/protocol/tcp","permalink":"/orbien/docs/transport/protocol/tcp","draft":false,"unlisted":false,"editUrl":"https://github.com/orbien-org/orbien/tree/main/docs/docs/transport/protocol/tcp.md","tags":[],"version":"current","sidebarPosition":1,"frontMatter":{"sidebar_position":1,"sidebar_label":"TCP","title":"TCP"},"sidebar":"docsSidebar","previous":{"title":"\u57DF\u540D","permalink":"/orbien/docs/tunnels/domains"},"next":{"title":"WebSocket","permalink":"/orbien/docs/transport/protocol/websocket"}}'),d=r(1987),s=r(7008);let c={sidebar_position:1,sidebar_label:"TCP",title:"TCP"},l="TCP",i={},o=[{value:"\u793A\u4F8B",id:"\u793A\u4F8B",level:2},{value:"\u5BA2\u6237\u7AEF\u53C2\u6570",id:"\u5BA2\u6237\u7AEF\u53C2\u6570",level:2},{value:"\u670D\u52A1\u7AEF\u53C2\u6570",id:"\u670D\u52A1\u7AEF\u53C2\u6570",level:2}];function h(e){let t={a:"a",code:"code",h1:"h1",h2:"h2",header:"header",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,s.R)(),...e.components};return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(t.header,{children:(0,d.jsx)(t.h1,{id:"tcp",children:"TCP"})}),"\n",(0,d.jsxs)(t.p,{children:["\u9ED8\u8BA4\u4F20\u8F93\u534F\u8BAE\u3002\u5BA2\u6237\u7AEF\u901A\u8FC7\u670D\u52A1\u7AEF ",(0,d.jsx)(t.code,{children:"listen"})," \u5EFA\u7ACB\u63A7\u5236\u901A\u9053\u3002TLS \u914D\u7F6E\u89C1 ",(0,d.jsx)(t.a,{href:"/orbien/docs/transport/tls",children:"TLS"}),"\u3002"]}),"\n",(0,d.jsx)(t.h2,{id:"\u793A\u4F8B",children:"\u793A\u4F8B"}),"\n",(0,d.jsx)(t.p,{children:"\u670D\u52A1\u7AEF\uFF1A"}),"\n",(0,d.jsx)(t.pre,{children:(0,d.jsx)(t.code,{className:"language-toml",children:'# orbien-server.toml\nlisten = "0.0.0.0:9527"\n\n[transport]\ntcpMux = true\n'})}),"\n",(0,d.jsx)(t.p,{children:"\u5BA2\u6237\u7AEF\uFF1A"}),"\n",(0,d.jsx)(t.pre,{children:(0,d.jsx)(t.code,{className:"language-toml",children:'# orbien.toml\nserver = "YOUR_SERVER_IP:9527"\n\n[transport]\nprotocol = "tcp"\ntcpMux = true\nheartbeatInterval = -1\n'})}),"\n",(0,d.jsx)(t.h2,{id:"\u5BA2\u6237\u7AEF\u53C2\u6570",children:"\u5BA2\u6237\u7AEF\u53C2\u6570"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"\u53C2\u6570"}),(0,d.jsx)(t.th,{children:"\u5FC5\u586B"}),(0,d.jsx)(t.th,{children:"\u9ED8\u8BA4\u503C"}),(0,d.jsx)(t.th,{children:"\u8BF4\u660E"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:(0,d.jsx)(t.code,{children:"transport.protocol"})}),(0,d.jsx)(t.td,{children:"\u5426"}),(0,d.jsx)(t.td,{children:(0,d.jsx)(t.code,{children:"tcp"})}),(0,d.jsxs)(t.td,{children:["\u56FA\u5B9A\u4E3A ",(0,d.jsx)(t.code,{children:"tcp"})]})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:(0,d.jsx)(t.code,{children:"transport.tcpMux"})}),(0,d.jsx)(t.td,{children:"\u5426"}),(0,d.jsx)(t.td,{children:(0,d.jsx)(t.code,{children:"true"})}),(0,d.jsx)(t.td,{children:"TCP \u591A\u8DEF\u590D\u7528\uFF1B\u9700\u4E0E\u670D\u52A1\u7AEF\u4E00\u81F4"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:(0,d.jsx)(t.code,{children:"transport.heartbeatInterval"})}),(0,d.jsx)(t.td,{children:"\u5426"}),(0,d.jsx)(t.td,{children:(0,d.jsx)(t.code,{children:"-1"})}),(0,d.jsxs)(t.td,{children:["\u5E94\u7528\u5FC3\u8DF3\u95F4\u9694\uFF08\u79D2\uFF09\uFF1B",(0,d.jsx)(t.code,{children:"-1"})," \u5173\u95ED\u3002\u5173\u95ED ",(0,d.jsx)(t.code,{children:"tcpMux"})," \u65F6\u81EA\u52A8\u53D8\u4E3A ",(0,d.jsx)(t.code,{children:"30"})]})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:(0,d.jsx)(t.code,{children:"transport.heartbeatTimeout"})}),(0,d.jsx)(t.td,{children:"\u5426"}),(0,d.jsx)(t.td,{children:(0,d.jsx)(t.code,{children:"-1"})}),(0,d.jsxs)(t.td,{children:["\u5FC3\u8DF3\u8D85\u65F6\uFF08\u79D2\uFF09\uFF1B\u672A\u6536\u5230 Pong \u5219\u65AD\u5F00\u3002\u5173\u95ED ",(0,d.jsx)(t.code,{children:"tcpMux"})," \u65F6\u81EA\u52A8\u53D8\u4E3A ",(0,d.jsx)(t.code,{children:"90"}),"\uFF1B\u8BE6\u89C1 ",(0,d.jsx)(t.a,{href:"/orbien/docs/transport/tcp-mux",children:"TCP \u591A\u8DEF\u590D\u7528"})]})]})]})]}),"\n",(0,d.jsx)(t.h2,{id:"\u670D\u52A1\u7AEF\u53C2\u6570",children:"\u670D\u52A1\u7AEF\u53C2\u6570"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"\u53C2\u6570"}),(0,d.jsx)(t.th,{children:"\u5FC5\u586B"}),(0,d.jsx)(t.th,{children:"\u9ED8\u8BA4\u503C"}),(0,d.jsx)(t.th,{children:"\u8BF4\u660E"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:(0,d.jsx)(t.code,{children:"listen"})}),(0,d.jsx)(t.td,{children:"\u662F"}),(0,d.jsx)(t.td,{children:(0,d.jsx)(t.code,{children:"0.0.0.0:9527"})}),(0,d.jsx)(t.td,{children:"TCP \u76D1\u542C\u5730\u5740"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:(0,d.jsx)(t.code,{children:"transport.tcpMux"})}),(0,d.jsx)(t.td,{children:"\u5426"}),(0,d.jsx)(t.td,{children:(0,d.jsx)(t.code,{children:"true"})}),(0,d.jsx)(t.td,{children:"TCP \u591A\u8DEF\u590D\u7528\uFF1B\u9700\u4E0E\u5BA2\u6237\u7AEF\u4E00\u81F4"})]})]})]})]})}function x(e={}){let{wrapper:t}={...(0,s.R)(),...e.components};return t?(0,d.jsx)(t,{...e,children:(0,d.jsx)(h,{...e})}):h(e)}},7008(e,t,r){r.d(t,{R:()=>c,x:()=>l});var n=r(1763);let d={},s=n.createContext(d);function c(e){let t=n.useContext(s);return n.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function l(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(d):e.components||d:c(e.components),n.createElement(s.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/5ef0e9d6.0b1d1467.js b/assets/js/5ef0e9d6.bc7a97b0.js similarity index 55% rename from assets/js/5ef0e9d6.0b1d1467.js rename to assets/js/5ef0e9d6.bc7a97b0.js index 0459a58..b44c8bf 100644 --- a/assets/js/5ef0e9d6.0b1d1467.js +++ b/assets/js/5ef0e9d6.bc7a97b0.js @@ -1 +1 @@ -"use strict";(self.webpackChunkorbien_docs=self.webpackChunkorbien_docs||[]).push([["356"],{5012(e,n,r){r.r(n),r.d(n,{metadata:()=>t,default:()=>u,frontMatter:()=>o,contentTitle:()=>c,toc:()=>d,assets:()=>l});var t=JSON.parse('{"id":"community","title":"\u793E\u533A\u548C\u8D21\u732E","description":"- Discord\uFF1AOrbien","source":"@site/docs/community.md","sourceDirName":".","slug":"/community","permalink":"/orbien/docs/community","draft":false,"unlisted":false,"editUrl":"https://github.com/orbien-org/orbien/tree/main/docs/docs/community.md","tags":[],"version":"current","sidebarPosition":93,"frontMatter":{"sidebar_position":93,"sidebar_label":"\u793E\u533A\u548C\u8D21\u732E"},"sidebar":"docsSidebar","previous":{"title":"\u8BB8\u53EF\u8BC1","permalink":"/orbien/docs/license"}}'),i=r(1987),s=r(7008);let o={sidebar_position:93,sidebar_label:"\u793E\u533A\u548C\u8D21\u732E"},c="\u793E\u533A\u548C\u8D21\u732E",l={},d=[];function a(e){let n={a:"a",h1:"h1",header:"header",li:"li",ul:"ul",...(0,s.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.header,{children:(0,i.jsx)(n.h1,{id:"\u793E\u533A\u548C\u8D21\u732E",children:"\u793E\u533A\u548C\u8D21\u732E"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["Discord\uFF1A",(0,i.jsx)(n.a,{href:"https://discord.gg/4dgQjCS3k",children:"Orbien"})]}),"\n",(0,i.jsxs)(n.li,{children:["GitHub\uFF1A",(0,i.jsx)(n.a,{href:"https://github.com/orbien-org",children:"orbien-org"})]}),"\n",(0,i.jsxs)(n.li,{children:["Issue\uFF1A",(0,i.jsx)(n.a,{href:"https://github.com/orbien-org/orbien/issues",children:"\u63D0\u4EA4\u95EE\u9898\u4E0E\u5EFA\u8BAE"})]}),"\n",(0,i.jsxs)(n.li,{children:["Pull Request\uFF1A",(0,i.jsx)(n.a,{href:"https://github.com/orbien-org/orbien/pulls",children:"\u8D21\u732E\u4EE3\u7801"})]}),"\n"]})]})}function u(e={}){let{wrapper:n}={...(0,s.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(a,{...e})}):a(e)}},7008(e,n,r){r.d(n,{R:()=>o,x:()=>c});var t=r(1763);let i={},s=t.createContext(i);function o(e){let n=t.useContext(s);return t.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),t.createElement(s.Provider,{value:n},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkorbien_docs=self.webpackChunkorbien_docs||[]).push([["356"],{5012(e,n,t){t.r(n),t.d(n,{metadata:()=>r,default:()=>u,frontMatter:()=>o,contentTitle:()=>c,toc:()=>l,assets:()=>d});var r=JSON.parse('{"id":"community","title":"\u793E\u533A\u548C\u8D21\u732E","description":"- Discord\uFF1AOrbien","source":"@site/docs/community.md","sourceDirName":".","slug":"/community","permalink":"/orbien/docs/community","draft":false,"unlisted":false,"editUrl":"https://github.com/orbien-org/orbien/tree/main/docs/docs/community.md","tags":[],"version":"current","sidebarPosition":93,"frontMatter":{"sidebar_position":93,"sidebar_label":"\u793E\u533A\u548C\u8D21\u732E"},"sidebar":"docsSidebar","previous":{"title":"\u8BB8\u53EF\u8BC1","permalink":"/orbien/docs/license"}}'),i=t(1987),s=t(7008);let o={sidebar_position:93,sidebar_label:"\u793E\u533A\u548C\u8D21\u732E"},c="\u793E\u533A\u548C\u8D21\u732E",d={},l=[];function a(e){let n={a:"a",h1:"h1",header:"header",li:"li",ul:"ul",...(0,s.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.header,{children:(0,i.jsx)(n.h1,{id:"\u793E\u533A\u548C\u8D21\u732E",children:"\u793E\u533A\u548C\u8D21\u732E"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["Discord\uFF1A",(0,i.jsx)(n.a,{href:"https://discord.gg/4dgQjCS3k",children:"Orbien"})]}),"\n",(0,i.jsxs)(n.li,{children:["GitHub\uFF1A",(0,i.jsx)(n.a,{href:"https://github.com/orbien-org",children:"orbien-org"})]}),"\n",(0,i.jsxs)(n.li,{children:["Issue\uFF1A",(0,i.jsx)(n.a,{href:"https://github.com/orbien-org/orbien/issues",children:"\u63D0\u4EA4\u95EE\u9898\u4E0E\u5EFA\u8BAE"})]}),"\n"]})]})}function u(e={}){let{wrapper:n}={...(0,s.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(a,{...e})}):a(e)}},7008(e,n,t){t.d(n,{R:()=>o,x:()=>c});var r=t(1763);let i={},s=r.createContext(i);function o(e){let n=r.useContext(s);return r.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),r.createElement(s.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/67e4f9fb.5cd6a9d0.js b/assets/js/67e4f9fb.5cd6a9d0.js new file mode 100644 index 0000000..05686f4 --- /dev/null +++ b/assets/js/67e4f9fb.5cd6a9d0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkorbien_docs=self.webpackChunkorbien_docs||[]).push([["411"],{6226(e,r,t){t.r(r),t.d(r,{metadata:()=>n,default:()=>x,frontMatter:()=>s,contentTitle:()=>i,toc:()=>o,assets:()=>l});var n=JSON.parse('{"id":"transport/protocol/kcp","title":"KCP","description":"\u57FA\u4E8E UDP \u7684\u53EF\u9760\u4F20\u8F93\uFF0C\u5F31\u7F51\u573A\u666F\u66F4\u7A33\u3002TLS \u914D\u7F6E\u89C1 TLS\u3002","source":"@site/docs/transport/protocol/kcp.md","sourceDirName":"transport/protocol","slug":"/transport/protocol/kcp","permalink":"/orbien/docs/transport/protocol/kcp","draft":false,"unlisted":false,"editUrl":"https://github.com/orbien-org/orbien/tree/main/docs/docs/transport/protocol/kcp.md","tags":[],"version":"current","sidebarPosition":4,"frontMatter":{"sidebar_position":4,"sidebar_label":"KCP","title":"KCP"},"sidebar":"docsSidebar","previous":{"title":"QUIC","permalink":"/orbien/docs/transport/protocol/quic"},"next":{"title":"\u8FDE\u63A5\u6C60","permalink":"/orbien/docs/transport/connect-pool"}}'),d=t(1987),c=t(7008);let s={sidebar_position:4,sidebar_label:"KCP",title:"KCP"},i="KCP",l={},o=[{value:"\u793A\u4F8B",id:"\u793A\u4F8B",level:2},{value:"\u5BA2\u6237\u7AEF\u53C2\u6570",id:"\u5BA2\u6237\u7AEF\u53C2\u6570",level:2},{value:"\u670D\u52A1\u7AEF\u53C2\u6570",id:"\u670D\u52A1\u7AEF\u53C2\u6570",level:2}];function h(e){let r={a:"a",code:"code",h1:"h1",h2:"h2",header:"header",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,c.R)(),...e.components};return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(r.header,{children:(0,d.jsx)(r.h1,{id:"kcp",children:"KCP"})}),"\n",(0,d.jsxs)(r.p,{children:["\u57FA\u4E8E UDP \u7684\u53EF\u9760\u4F20\u8F93\uFF0C\u5F31\u7F51\u573A\u666F\u66F4\u7A33\u3002TLS \u914D\u7F6E\u89C1 ",(0,d.jsx)(r.a,{href:"/orbien/docs/transport/tls",children:"TLS"}),"\u3002"]}),"\n",(0,d.jsx)(r.h2,{id:"\u793A\u4F8B",children:"\u793A\u4F8B"}),"\n",(0,d.jsx)(r.p,{children:"\u670D\u52A1\u7AEF\uFF1A"}),"\n",(0,d.jsx)(r.pre,{children:(0,d.jsx)(r.code,{className:"language-toml",children:'# orbien-server.toml\nlisten = "0.0.0.0:9527"\nkcpPort = 9529\n\n[transport]\ntcpMux = true\n'})}),"\n",(0,d.jsx)(r.p,{children:"\u5BA2\u6237\u7AEF\uFF1A"}),"\n",(0,d.jsx)(r.pre,{children:(0,d.jsx)(r.code,{className:"language-toml",children:'# orbien.toml\nserver = "YOUR_SERVER_IP:9529"\n\n[transport]\nprotocol = "kcp"\ntcpMux = true\nheartbeatInterval = -1\n'})}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.code,{children:"server"})," \u9700\u6307\u5411\u670D\u52A1\u7AEF ",(0,d.jsx)(r.code,{children:"kcpPort"}),"\uFF0C\u4E14\u4E0D\u53EF\u4E0E ",(0,d.jsx)(r.code,{children:"quicPort"})," \u76F8\u540C\u3002"]}),"\n",(0,d.jsx)(r.h2,{id:"\u5BA2\u6237\u7AEF\u53C2\u6570",children:"\u5BA2\u6237\u7AEF\u53C2\u6570"}),"\n",(0,d.jsxs)(r.table,{children:[(0,d.jsx)(r.thead,{children:(0,d.jsxs)(r.tr,{children:[(0,d.jsx)(r.th,{children:"\u53C2\u6570"}),(0,d.jsx)(r.th,{children:"\u5FC5\u586B"}),(0,d.jsx)(r.th,{children:"\u9ED8\u8BA4\u503C"}),(0,d.jsx)(r.th,{children:"\u8BF4\u660E"})]})}),(0,d.jsxs)(r.tbody,{children:[(0,d.jsxs)(r.tr,{children:[(0,d.jsx)(r.td,{children:(0,d.jsx)(r.code,{children:"transport.protocol"})}),(0,d.jsx)(r.td,{children:"\u662F"}),(0,d.jsx)(r.td,{children:(0,d.jsx)(r.code,{children:"tcp"})}),(0,d.jsxs)(r.td,{children:["\u56FA\u5B9A\u4E3A ",(0,d.jsx)(r.code,{children:"kcp"})]})]}),(0,d.jsxs)(r.tr,{children:[(0,d.jsx)(r.td,{children:(0,d.jsx)(r.code,{children:"server"})}),(0,d.jsx)(r.td,{children:"\u662F"}),(0,d.jsx)(r.td,{}),(0,d.jsxs)(r.td,{children:["\u586B\u670D\u52A1\u7AEF\u5730\u5740\uFF0C\u7AEF\u53E3\u4E3A ",(0,d.jsx)(r.code,{children:"kcpPort"})]})]}),(0,d.jsxs)(r.tr,{children:[(0,d.jsx)(r.td,{children:(0,d.jsx)(r.code,{children:"transport.tcpMux"})}),(0,d.jsx)(r.td,{children:"\u5426"}),(0,d.jsx)(r.td,{children:(0,d.jsx)(r.code,{children:"true"})}),(0,d.jsx)(r.td,{children:"TCP \u591A\u8DEF\u590D\u7528\uFF1B\u9700\u4E0E\u670D\u52A1\u7AEF\u4E00\u81F4"})]}),(0,d.jsxs)(r.tr,{children:[(0,d.jsx)(r.td,{children:(0,d.jsx)(r.code,{children:"transport.heartbeatInterval"})}),(0,d.jsx)(r.td,{children:"\u5426"}),(0,d.jsx)(r.td,{children:(0,d.jsx)(r.code,{children:"-1"})}),(0,d.jsxs)(r.td,{children:["\u5E94\u7528\u5FC3\u8DF3\u95F4\u9694\uFF08\u79D2\uFF09\uFF1B",(0,d.jsx)(r.code,{children:"-1"})," \u5173\u95ED\u3002\u5173\u95ED ",(0,d.jsx)(r.code,{children:"tcpMux"})," \u65F6\u81EA\u52A8\u53D8\u4E3A ",(0,d.jsx)(r.code,{children:"30"})]})]}),(0,d.jsxs)(r.tr,{children:[(0,d.jsx)(r.td,{children:(0,d.jsx)(r.code,{children:"transport.heartbeatTimeout"})}),(0,d.jsx)(r.td,{children:"\u5426"}),(0,d.jsx)(r.td,{children:(0,d.jsx)(r.code,{children:"-1"})}),(0,d.jsxs)(r.td,{children:["\u5FC3\u8DF3\u8D85\u65F6\uFF08\u79D2\uFF09\uFF1B\u672A\u6536\u5230 Pong \u5219\u65AD\u5F00\u3002\u5173\u95ED ",(0,d.jsx)(r.code,{children:"tcpMux"})," \u65F6\u81EA\u52A8\u53D8\u4E3A ",(0,d.jsx)(r.code,{children:"90"}),"\uFF1B\u8BE6\u89C1 ",(0,d.jsx)(r.a,{href:"/orbien/docs/transport/tcp-mux",children:"TCP \u591A\u8DEF\u590D\u7528"})]})]})]})]}),"\n",(0,d.jsx)(r.h2,{id:"\u670D\u52A1\u7AEF\u53C2\u6570",children:"\u670D\u52A1\u7AEF\u53C2\u6570"}),"\n",(0,d.jsxs)(r.table,{children:[(0,d.jsx)(r.thead,{children:(0,d.jsxs)(r.tr,{children:[(0,d.jsx)(r.th,{children:"\u53C2\u6570"}),(0,d.jsx)(r.th,{children:"\u5FC5\u586B"}),(0,d.jsx)(r.th,{children:"\u9ED8\u8BA4\u503C"}),(0,d.jsx)(r.th,{children:"\u8BF4\u660E"})]})}),(0,d.jsxs)(r.tbody,{children:[(0,d.jsxs)(r.tr,{children:[(0,d.jsx)(r.td,{children:(0,d.jsx)(r.code,{children:"kcpPort"})}),(0,d.jsx)(r.td,{children:"\u662F"}),(0,d.jsx)(r.td,{children:(0,d.jsx)(r.code,{children:"0"})}),(0,d.jsxs)(r.td,{children:["KCP \u76D1\u542C\u7AEF\u53E3\uFF08UDP\uFF09\uFF1B",(0,d.jsx)(r.code,{children:"0"})," \u8868\u793A\u5173\u95ED\uFF1B\u4E0D\u53EF\u4E0E ",(0,d.jsx)(r.code,{children:"quicPort"})," \u76F8\u540C"]})]}),(0,d.jsxs)(r.tr,{children:[(0,d.jsx)(r.td,{children:(0,d.jsx)(r.code,{children:"transport.tcpMux"})}),(0,d.jsx)(r.td,{children:"\u5426"}),(0,d.jsx)(r.td,{children:(0,d.jsx)(r.code,{children:"true"})}),(0,d.jsx)(r.td,{children:"TCP \u591A\u8DEF\u590D\u7528\uFF1B\u9700\u4E0E\u5BA2\u6237\u7AEF\u4E00\u81F4"})]})]})]})]})}function x(e={}){let{wrapper:r}={...(0,c.R)(),...e.components};return r?(0,d.jsx)(r,{...e,children:(0,d.jsx)(h,{...e})}):h(e)}},7008(e,r,t){t.d(r,{R:()=>s,x:()=>i});var n=t(1763);let d={},c=n.createContext(d);function s(e){let r=n.useContext(c);return n.useMemo(function(){return"function"==typeof e?e(r):{...r,...e}},[r,e])}function i(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(d):e.components||d:s(e.components),n.createElement(c.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/67e4f9fb.bc7d4b75.js b/assets/js/67e4f9fb.bc7d4b75.js deleted file mode 100644 index 4ef2013..0000000 --- a/assets/js/67e4f9fb.bc7d4b75.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkorbien_docs=self.webpackChunkorbien_docs||[]).push([["411"],{6226(e,r,t){t.r(r),t.d(r,{metadata:()=>n,default:()=>x,frontMatter:()=>s,contentTitle:()=>i,toc:()=>l,assets:()=>o});var n=JSON.parse('{"id":"transport/protocol/kcp","title":"KCP","description":"\u57FA\u4E8E UDP \u7684\u53EF\u9760\u4F20\u8F93\uFF0C\u5F31\u7F51\u573A\u666F\u66F4\u7A33\u3002TLS \u914D\u7F6E\u89C1 TLS\u3002","source":"@site/docs/transport/protocol/kcp.md","sourceDirName":"transport/protocol","slug":"/transport/protocol/kcp","permalink":"/orbien/docs/transport/protocol/kcp","draft":false,"unlisted":false,"editUrl":"https://github.com/orbien-org/orbien/tree/main/docs/docs/transport/protocol/kcp.md","tags":[],"version":"current","sidebarPosition":4,"frontMatter":{"sidebar_position":4,"sidebar_label":"KCP","title":"KCP"},"sidebar":"docsSidebar","previous":{"title":"QUIC","permalink":"/orbien/docs/transport/protocol/quic"},"next":{"title":"\u8FDE\u63A5\u6C60","permalink":"/orbien/docs/transport/connect-pool"}}'),d=t(1987),c=t(7008);let s={sidebar_position:4,sidebar_label:"KCP",title:"KCP"},i="KCP",o={},l=[{value:"\u793A\u4F8B",id:"\u793A\u4F8B",level:2},{value:"\u5BA2\u6237\u7AEF\u53C2\u6570",id:"\u5BA2\u6237\u7AEF\u53C2\u6570",level:2},{value:"\u670D\u52A1\u7AEF\u53C2\u6570",id:"\u670D\u52A1\u7AEF\u53C2\u6570",level:2}];function h(e){let r={a:"a",code:"code",h1:"h1",h2:"h2",header:"header",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,c.R)(),...e.components};return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(r.header,{children:(0,d.jsx)(r.h1,{id:"kcp",children:"KCP"})}),"\n",(0,d.jsxs)(r.p,{children:["\u57FA\u4E8E UDP \u7684\u53EF\u9760\u4F20\u8F93\uFF0C\u5F31\u7F51\u573A\u666F\u66F4\u7A33\u3002TLS \u914D\u7F6E\u89C1 ",(0,d.jsx)(r.a,{href:"/orbien/docs/transport/tls",children:"TLS"}),"\u3002"]}),"\n",(0,d.jsx)(r.h2,{id:"\u793A\u4F8B",children:"\u793A\u4F8B"}),"\n",(0,d.jsx)(r.p,{children:"\u670D\u52A1\u7AEF\uFF1A"}),"\n",(0,d.jsx)(r.pre,{children:(0,d.jsx)(r.code,{className:"language-toml",children:'# orbien-server.toml\nbindAddr = "0.0.0.0"\nbindPort = 9527\nkcpBindPort = 9529\n\n[transport]\ntcpMux = true\n'})}),"\n",(0,d.jsx)(r.p,{children:"\u5BA2\u6237\u7AEF\uFF1A"}),"\n",(0,d.jsx)(r.pre,{children:(0,d.jsx)(r.code,{className:"language-toml",children:'# orbien.toml\nserverAddr = "YOUR_SERVER_IP"\nserverPort = 9529\n\n[transport]\nprotocol = "kcp"\ntcpMux = true\nheartbeatInterval = -1\n'})}),"\n",(0,d.jsxs)(r.p,{children:[(0,d.jsx)(r.code,{children:"serverPort"})," \u9700\u6307\u5411\u670D\u52A1\u7AEF ",(0,d.jsx)(r.code,{children:"kcpBindPort"}),"\uFF0C\u4E14\u4E0D\u53EF\u4E0E ",(0,d.jsx)(r.code,{children:"quicBindPort"})," \u76F8\u540C\u3002"]}),"\n",(0,d.jsx)(r.h2,{id:"\u5BA2\u6237\u7AEF\u53C2\u6570",children:"\u5BA2\u6237\u7AEF\u53C2\u6570"}),"\n",(0,d.jsxs)(r.table,{children:[(0,d.jsx)(r.thead,{children:(0,d.jsxs)(r.tr,{children:[(0,d.jsx)(r.th,{children:"\u53C2\u6570"}),(0,d.jsx)(r.th,{children:"\u5FC5\u586B"}),(0,d.jsx)(r.th,{children:"\u9ED8\u8BA4\u503C"}),(0,d.jsx)(r.th,{children:"\u8BF4\u660E"})]})}),(0,d.jsxs)(r.tbody,{children:[(0,d.jsxs)(r.tr,{children:[(0,d.jsx)(r.td,{children:(0,d.jsx)(r.code,{children:"transport.protocol"})}),(0,d.jsx)(r.td,{children:"\u662F"}),(0,d.jsx)(r.td,{children:(0,d.jsx)(r.code,{children:"tcp"})}),(0,d.jsxs)(r.td,{children:["\u56FA\u5B9A\u4E3A ",(0,d.jsx)(r.code,{children:"kcp"})]})]}),(0,d.jsxs)(r.tr,{children:[(0,d.jsx)(r.td,{children:(0,d.jsx)(r.code,{children:"serverPort"})}),(0,d.jsx)(r.td,{children:"\u662F"}),(0,d.jsx)(r.td,{}),(0,d.jsxs)(r.td,{children:["\u586B\u670D\u52A1\u7AEF ",(0,d.jsx)(r.code,{children:"kcpBindPort"})]})]}),(0,d.jsxs)(r.tr,{children:[(0,d.jsx)(r.td,{children:(0,d.jsx)(r.code,{children:"transport.tcpMux"})}),(0,d.jsx)(r.td,{children:"\u5426"}),(0,d.jsx)(r.td,{children:(0,d.jsx)(r.code,{children:"true"})}),(0,d.jsx)(r.td,{children:"TCP \u591A\u8DEF\u590D\u7528\uFF1B\u9700\u4E0E\u670D\u52A1\u7AEF\u4E00\u81F4"})]}),(0,d.jsxs)(r.tr,{children:[(0,d.jsx)(r.td,{children:(0,d.jsx)(r.code,{children:"transport.heartbeatInterval"})}),(0,d.jsx)(r.td,{children:"\u5426"}),(0,d.jsx)(r.td,{children:(0,d.jsx)(r.code,{children:"-1"})}),(0,d.jsxs)(r.td,{children:["\u5E94\u7528\u5FC3\u8DF3\u95F4\u9694\uFF08\u79D2\uFF09\uFF1B",(0,d.jsx)(r.code,{children:"-1"})," \u5173\u95ED\u3002\u5173\u95ED ",(0,d.jsx)(r.code,{children:"tcpMux"})," \u65F6\u81EA\u52A8\u53D8\u4E3A ",(0,d.jsx)(r.code,{children:"30"})]})]})]})]}),"\n",(0,d.jsx)(r.h2,{id:"\u670D\u52A1\u7AEF\u53C2\u6570",children:"\u670D\u52A1\u7AEF\u53C2\u6570"}),"\n",(0,d.jsxs)(r.table,{children:[(0,d.jsx)(r.thead,{children:(0,d.jsxs)(r.tr,{children:[(0,d.jsx)(r.th,{children:"\u53C2\u6570"}),(0,d.jsx)(r.th,{children:"\u5FC5\u586B"}),(0,d.jsx)(r.th,{children:"\u9ED8\u8BA4\u503C"}),(0,d.jsx)(r.th,{children:"\u8BF4\u660E"})]})}),(0,d.jsxs)(r.tbody,{children:[(0,d.jsxs)(r.tr,{children:[(0,d.jsx)(r.td,{children:(0,d.jsx)(r.code,{children:"kcpBindPort"})}),(0,d.jsx)(r.td,{children:"\u662F"}),(0,d.jsx)(r.td,{children:(0,d.jsx)(r.code,{children:"0"})}),(0,d.jsxs)(r.td,{children:["KCP \u76D1\u542C\u7AEF\u53E3\uFF08UDP\uFF09\uFF1B",(0,d.jsx)(r.code,{children:"0"})," \u8868\u793A\u5173\u95ED\uFF1B\u4E0D\u53EF\u4E0E ",(0,d.jsx)(r.code,{children:"quicBindPort"})," \u76F8\u540C"]})]}),(0,d.jsxs)(r.tr,{children:[(0,d.jsx)(r.td,{children:(0,d.jsx)(r.code,{children:"transport.tcpMux"})}),(0,d.jsx)(r.td,{children:"\u5426"}),(0,d.jsx)(r.td,{children:(0,d.jsx)(r.code,{children:"true"})}),(0,d.jsx)(r.td,{children:"TCP \u591A\u8DEF\u590D\u7528\uFF1B\u9700\u4E0E\u5BA2\u6237\u7AEF\u4E00\u81F4"})]})]})]})]})}function x(e={}){let{wrapper:r}={...(0,c.R)(),...e.components};return r?(0,d.jsx)(r,{...e,children:(0,d.jsx)(h,{...e})}):h(e)}},7008(e,r,t){t.d(r,{R:()=>s,x:()=>i});var n=t(1763);let d={},c=n.createContext(d);function s(e){let r=n.useContext(c);return n.useMemo(function(){return"function"==typeof e?e(r):{...r,...e}},[r,e])}function i(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(d):e.components||d:s(e.components),n.createElement(c.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/6b77a8a0.4f873f5b.js b/assets/js/6b77a8a0.4f873f5b.js new file mode 100644 index 0000000..66e37d3 --- /dev/null +++ b/assets/js/6b77a8a0.4f873f5b.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkorbien_docs=self.webpackChunkorbien_docs||[]).push([["646"],{1898(e,n,r){r.r(n),r.d(n,{metadata:()=>t,default:()=>P,frontMatter:()=>N,contentTitle:()=>S,toc:()=>I,assets:()=>_});var t=JSON.parse('{"id":"integrations/springboot","title":"Spring Boot \u96C6\u6210","description":"Orbien \u63D0\u4F9B\u53EF\u5185\u5D4C\u5230 Spring Boot \u7684 Java \u5BA2\u6237\u7AEF\uFF0C\u5F53\u524D\u80FD\u529B\uFF1A","source":"@site/docs/integrations/springboot.mdx","sourceDirName":"integrations","slug":"/integrations/springboot","permalink":"/orbien/docs/integrations/springboot","draft":false,"unlisted":false,"editUrl":"https://github.com/orbien-org/orbien/tree/main/docs/docs/integrations/springboot.mdx","tags":[],"version":"current","sidebarPosition":1,"frontMatter":{"sidebar_position":1,"sidebar_label":"SpringBoot\u96C6\u6210"},"sidebar":"docsSidebar","previous":{"title":"\u83B7\u53D6\u771F\u5B9E IP","permalink":"/orbien/docs/features/real-ip"},"next":{"title":"\u6027\u80FD\u6D4B\u8BD5","permalink":"/orbien/docs/performance"}}'),o=r(1987),a=r(7008),i=r(1763),l=r(3526),s=r(1009),c=r(6532),u=r(9879),d=r(9327),p=r(8292),h=r(8184);function b({value:e,tabValues:n}){return n.some(n=>n.value===e)}let f=(0,i.createContext)(null);function m(){let e=i.useContext(f);if(!e)throw Error("useTabsContext() must be used within a Tabs component");return e}function x(e){return(0,o.jsx)(f.Provider,{value:e.value,children:e.children})}var g=r(8522),v=r(8261);function j({className:e}){let{selectedValue:n,selectValue:r,tabValues:t,block:a}=m(),i=[],{blockElementScrollPositionUntilNextRender:s}=(0,g.a_)(),c=e=>{let o=e.currentTarget,a=t[i.indexOf(o)].value;a!==n&&(s(o),r(a))},u=e=>{let n=null;switch(e.key){case"Enter":c(e);break;case"ArrowRight":{let r=i.indexOf(e.currentTarget)+1;n=i[r]??i[0];break}case"ArrowLeft":{let r=i.indexOf(e.currentTarget)-1;n=i[r]??i[i.length-1]}}n?.focus()};return(0,o.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,l.A)("tabs",{"tabs--block":a},e),children:t.map(({value:e,label:r,attributes:t})=>(0,o.jsx)("li",{role:"tab",tabIndex:n===e?0:-1,"aria-selected":n===e,ref:e=>{i.push(e)},onKeyDown:u,onClick:c,...t,className:(0,l.A)("tabs__item","tabItem_Xg_G",t?.className,{"tabs__item--active":n===e}),children:r??e},e))})}function y({children:e}){return(0,o.jsx)("div",{className:"margin-top--md",children:e})}function T({className:e,children:n}){return(0,o.jsxs)("div",{className:(0,l.A)(s.G.tabs.container,"tabs-container","tabList_f3wh"),children:[(0,o.jsx)(j,{className:e}),(0,o.jsx)(y,{children:n})]})}function w(e){var n;let r=(0,v.A)(),t=function(e){let n,{defaultValue:r,queryString:t=!1,groupId:o}=e,a=function(e){let{values:n,children:r}=e;return(0,i.useMemo)(()=>{let e=n??i.Children.toArray(r).flatMap(e=>{if(!e)return[];if((0,i.isValidElement)(e)&&function(e){let{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return[e];let n="string"==typeof e.type?e.type:e.type.name;throw Error(`Docusaurus error: Bad child <${n}>: all children of the component should be , and every should have a unique "value" prop. +If you do not want to pass on a "value" prop to the direct children of , you can also pass an explicit prop.`)}).map(({props:{value:e,label:n,attributes:r,default:t}})=>({value:e,label:n,attributes:r,default:t})),t=(0,p.XI)(e,(e,n)=>e.value===n.value);if(t.length>0)throw Error(`Docusaurus error: Duplicate values "${t.map(e=>`'${e.value}'`).join(", ")}" found in . Every value needs to be unique.`);return e},[n,r])}(e),[l,s]=(0,i.useState)(()=>(function({defaultValue:e,tabValues:n}){if(0===n.length)throw Error("Docusaurus error: the component requires at least one children component");if(e){if(!b({value:e,tabValues:n}))throw Error(`Docusaurus error: The has a defaultValue "${e}" but none of its children has the corresponding value. Available values are: ${n.map(e=>e.value).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return e}let r=n.find(e=>e.default)??n[0];if(!r)throw Error("Unexpected error: 0 tabValues");return r.value})({defaultValue:r,tabValues:a})),[f,m]=function({queryString:e=!1,groupId:n}){let r=(0,c.W6)(),t=function({queryString:e=!1,groupId:n}){if("string"==typeof e)return e;if(!1===e)return null;if(!0===e&&!n)throw Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:e,groupId:n});return[(0,d.aZ)(t),(0,i.useCallback)(e=>{if(!t)return;let n=new URLSearchParams(r.location.search);n.set(t,e),r.replace({...r.location,search:n.toString()})},[t,r])]}({queryString:t,groupId:o}),[x,g]=function({groupId:e}){let n=e?`docusaurus.tab.${e}`:null,[r,t]=(0,h.Dv)(n);return[r,(0,i.useCallback)(e=>{n&&t.set(e)},[n,t])]}({groupId:o}),v=b({value:n=f??x,tabValues:a})?n:null;return(0,u.A)(()=>{v&&s(v)},[v]),{selectedValue:l,selectValue:(0,i.useCallback)(e=>{if(!b({value:e,tabValues:a}))throw Error(`Can't select invalid tab value=${e}`);s(e),m(e),g(e)},[m,g,a]),tabValues:a,lazy:e.lazy??!1,block:e.block??!1}}(e);return(0,o.jsx)(x,{value:t,children:(0,o.jsx)(T,{className:e.className,children:(n=e.children,i.Children.toArray(n).filter(e=>"\n"!==e))})},String(r))}function k({children:e,className:n,hidden:r}){return(0,o.jsx)("div",{role:"tabpanel",className:(0,l.A)("tabItem_vIHf",n),hidden:r,children:e})}function C({children:e,className:n,value:r}){let{selectedValue:t,lazy:a}=m(),i=r===t;return!i&&a?null:(0,o.jsx)(k,{className:n,hidden:!i,children:e})}let N={sidebar_position:1,sidebar_label:"SpringBoot\u96C6\u6210"},S="Spring Boot \u96C6\u6210",_={},I=[{value:"\u6700\u5C0F\u914D\u7F6E",id:"\u6700\u5C0F\u914D\u7F6E",level:2},{value:"\u5B8C\u6574\u53C2\u8003",id:"\u5B8C\u6574\u53C2\u8003",level:2}];function E(e){let n={code:"code",h1:"h1",h2:"h2",header:"header",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,a.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(n.header,{children:(0,o.jsx)(n.h1,{id:"spring-boot-\u96C6\u6210",children:"Spring Boot \u96C6\u6210"})}),"\n",(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.strong,{children:"Orbien"})," \u63D0\u4F9B\u53EF\u5185\u5D4C\u5230 Spring Boot \u7684 Java \u5BA2\u6237\u7AEF\uFF0C\u5F53\u524D\u80FD\u529B\uFF1A"]}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:["\u96A7\u9053\u534F\u8BAE\uFF1A\u4EC5 ",(0,o.jsx)(n.strong,{children:"TCP"}),"\u3001",(0,o.jsx)(n.strong,{children:"HTTP"})]}),"\n",(0,o.jsxs)(n.li,{children:["\u4F20\u8F93\u5C42\uFF1A\u4EC5 ",(0,o.jsx)(n.strong,{children:"TCP"})]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"\u4E0D\u652F\u6301 TCP \u591A\u8DEF\u590D\u7528"}),"\uFF1A",(0,o.jsx)(n.code,{children:"orbien.tcp-mux"})," \u5FC5\u987B\u4E3A ",(0,o.jsx)(n.code,{children:"false"}),"\uFF0C\u670D\u52A1\u7AEF\u4E5F\u9700 ",(0,o.jsx)(n.code,{children:"[transport].tcpMux = false"}),"\uFF08\u670D\u52A1\u7AEF\u9ED8\u8BA4\u5F00\u542F\u591A\u8DEF\u590D\u7528\uFF0C\u4E0E Java \u5BA2\u6237\u7AEF\u8054\u8C03\u65F6\u9700\u663E\u5F0F\u5173\u95ED\uFF09"]}),"\n"]}),"\n",(0,o.jsxs)(w,{children:[(0,o.jsx)(C,{value:"Maven",label:"Maven",default:!0,children:(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-xml",children:"\n io.github.lxien\n orbien-spring-boot-starter\n 3.0.0\n\n"})})}),(0,o.jsx)(C,{value:"Gradle",label:"Gradle",children:(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-groovy",children:'implementation("io.github.lxien:orbien-spring-boot-starter:3.0.0")\n'})})})]}),"\n",(0,o.jsx)(n.h2,{id:"\u6700\u5C0F\u914D\u7F6E",children:"\u6700\u5C0F\u914D\u7F6E"}),"\n",(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.code,{children:"local-port"})," / ",(0,o.jsx)(n.code,{children:"name"})," \u53EF\u7701\u7565\uFF1A\u672A\u586B\u65F6\u5206\u522B\u4F7F\u7528 Spring Boot Web \u7AEF\u53E3\u4E0E ",(0,o.jsx)(n.code,{children:"spring.application.name"}),"\uFF08\u6216 ",(0,o.jsx)(n.code,{children:"orbien-{protocol}"}),"\uFF09\u3002"]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-yaml",children:"# application.yml\norbien:\n enabled: true\n server-addr: 127.0.0.1\n # token: YOUR_TOKEN # \u53EF\u9009\n tunnel:\n protocol: http\n domains:\n - web.domain.com\n"})}),"\n",(0,o.jsx)(n.p,{children:"\u670D\u52A1\u7AEF\u9700\u5173\u95ED\u591A\u8DEF\u590D\u7528\uFF0C\u4F8B\u5982\uFF1A"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-toml",children:'# orbien-server.toml\nlisten = "0.0.0.0:9527"\nhttpGwPort = 80\n\n[transport]\ntcpMux = false # \u5173\u95ED TCP \u591A\u8DEF\u590D\u7528\n'})}),"\n",(0,o.jsx)(n.h2,{id:"\u5B8C\u6574\u53C2\u8003",children:"\u5B8C\u6574\u53C2\u8003"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-yaml",children:'# application.yml\norbien:\n enabled: true\n server-addr: 127.0.0.1\n server-port: 9527\n token: YOUR_TOKEN\n tcp-mux: false # \u5FC5\u987B\u4E3A false\uFF0C\u4E14\u4E0E\u670D\u52A1\u7AEF\u4E00\u81F4\n pool-count: 1 # \u767B\u5F55\u65F6\u9884\u7533\u8BF7\u7684\u6570\u636E\u8FDE\u63A5\u6C60\u5927\u5C0F\n heartbeat-interval-secs: 30\n user: spring-boot-demo # \u53EF\u9009\uFF0C\u5C55\u793A\u5728 Dashboard\n # session-id: "" # \u53EF\u9009\uFF1B\u4E3A\u7A7A\u5219\u4ECE session-id-file \u6062\u590D\uFF0C\u6216\u81EA\u52A8\u751F\u6210\n # session-id-file: "" # \u53EF\u9009\uFF1B\u4E3A\u7A7A\u5219\u4F7F\u7528\u7528\u6237\u76EE\u5F55\u4E0B\u7684\u9ED8\u8BA4\u8DEF\u5F84\n tunnel:\n name: web-demo # \u53EF\u9009\n protocol: http # tcp | http\n local-ip: 127.0.0.1\n # local-port: 8080 # \u53EF\u9009\uFF1B\u672A\u586B\u5219\u4F7F\u7528 Spring Boot \u76D1\u542C\u7AEF\u53E3\n # remote-port: 9000 # \u4EC5 protocol=tcp \u65F6\u9700\u8981\n domains: # protocol=http \u65F6\u5FC5\u586B\n - web.domain.com\n'})})]})}function P(e={}){let{wrapper:n}={...(0,a.R)(),...e.components};return n?(0,o.jsx)(n,{...e,children:(0,o.jsx)(E,{...e})}):E(e)}},7008(e,n,r){r.d(n,{R:()=>i,x:()=>l});var t=r(1763);let o={},a=t.createContext(o);function i(e){let n=t.useContext(a);return t.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:i(e.components),t.createElement(a.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/6b77a8a0.83b20763.js b/assets/js/6b77a8a0.83b20763.js deleted file mode 100644 index 3a5a607..0000000 --- a/assets/js/6b77a8a0.83b20763.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkorbien_docs=self.webpackChunkorbien_docs||[]).push([["646"],{1898(e,n,r){r.r(n),r.d(n,{metadata:()=>t,default:()=>E,frontMatter:()=>N,contentTitle:()=>S,toc:()=>I,assets:()=>_});var t=JSON.parse('{"id":"integrations/springboot","title":"Spring Boot \u96C6\u6210","description":"Orbien\u63D0\u4F9B\u4E86\u4E00\u4E2A\u8F7B\u91CF\u7684Java\u5BA2\u6237\u7AEF\u7528\u4E8E\u5185\u5D4C\u5230Spring Boot\u5E94\u7528\u4E2D\u8FD0\u884C\uFF0C\u4EC5\u652F\u6301TCP/HTTP/HTTPS\u534F\u8BAE\u4EE3\u7406\uFF0C\u4F20\u8F93\u5C42\u53EA\u652F\u6301TCP\u4F20\u8F93\u534F\u8BAE\uFF0C","source":"@site/docs/integrations/springboot.mdx","sourceDirName":"integrations","slug":"/integrations/springboot","permalink":"/orbien/docs/integrations/springboot","draft":false,"unlisted":false,"editUrl":"https://github.com/orbien-org/orbien/tree/main/docs/docs/integrations/springboot.mdx","tags":[],"version":"current","sidebarPosition":1,"frontMatter":{"sidebar_position":1,"sidebar_label":"SpringBoot\u96C6\u6210"},"sidebar":"docsSidebar","previous":{"title":"\u83B7\u53D6\u771F\u5B9E IP","permalink":"/orbien/docs/features/real-ip"},"next":{"title":"\u6027\u80FD\u6D4B\u8BD5","permalink":"/orbien/docs/performance"}}'),a=r(1987),o=r(7008),i=r(1763),s=r(3526),l=r(1009),u=r(6532),c=r(9879),d=r(9327),p=r(8292),h=r(8184);function b({value:e,tabValues:n}){return n.some(n=>n.value===e)}let m=(0,i.createContext)(null);function f(){let e=i.useContext(m);if(!e)throw Error("useTabsContext() must be used within a Tabs component");return e}function g(e){return(0,a.jsx)(m.Provider,{value:e.value,children:e.children})}var v=r(8522),x=r(8261);function j({className:e}){let{selectedValue:n,selectValue:r,tabValues:t,block:o}=f(),i=[],{blockElementScrollPositionUntilNextRender:l}=(0,v.a_)(),u=e=>{let a=e.currentTarget,o=t[i.indexOf(a)].value;o!==n&&(l(a),r(o))},c=e=>{let n=null;switch(e.key){case"Enter":u(e);break;case"ArrowRight":{let r=i.indexOf(e.currentTarget)+1;n=i[r]??i[0];break}case"ArrowLeft":{let r=i.indexOf(e.currentTarget)-1;n=i[r]??i[i.length-1]}}n?.focus()};return(0,a.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,s.A)("tabs",{"tabs--block":o},e),children:t.map(({value:e,label:r,attributes:t})=>(0,a.jsx)("li",{role:"tab",tabIndex:n===e?0:-1,"aria-selected":n===e,ref:e=>{i.push(e)},onKeyDown:c,onClick:u,...t,className:(0,s.A)("tabs__item","tabItem_Xg_G",t?.className,{"tabs__item--active":n===e}),children:r??e},e))})}function T({children:e}){return(0,a.jsx)("div",{className:"margin-top--md",children:e})}function y({className:e,children:n}){return(0,a.jsxs)("div",{className:(0,s.A)(l.G.tabs.container,"tabs-container","tabList_f3wh"),children:[(0,a.jsx)(j,{className:e}),(0,a.jsx)(T,{children:n})]})}function w(e){var n;let r=(0,x.A)(),t=function(e){let n,{defaultValue:r,queryString:t=!1,groupId:a}=e,o=function(e){let{values:n,children:r}=e;return(0,i.useMemo)(()=>{let e=n??i.Children.toArray(r).flatMap(e=>{if(!e)return[];if((0,i.isValidElement)(e)&&function(e){let{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return[e];let n="string"==typeof e.type?e.type:e.type.name;throw Error(`Docusaurus error: Bad child <${n}>: all children of the component should be , and every should have a unique "value" prop. -If you do not want to pass on a "value" prop to the direct children of , you can also pass an explicit prop.`)}).map(({props:{value:e,label:n,attributes:r,default:t}})=>({value:e,label:n,attributes:r,default:t})),t=(0,p.XI)(e,(e,n)=>e.value===n.value);if(t.length>0)throw Error(`Docusaurus error: Duplicate values "${t.map(e=>`'${e.value}'`).join(", ")}" found in . Every value needs to be unique.`);return e},[n,r])}(e),[s,l]=(0,i.useState)(()=>(function({defaultValue:e,tabValues:n}){if(0===n.length)throw Error("Docusaurus error: the component requires at least one children component");if(e){if(!b({value:e,tabValues:n}))throw Error(`Docusaurus error: The has a defaultValue "${e}" but none of its children has the corresponding value. Available values are: ${n.map(e=>e.value).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return e}let r=n.find(e=>e.default)??n[0];if(!r)throw Error("Unexpected error: 0 tabValues");return r.value})({defaultValue:r,tabValues:o})),[m,f]=function({queryString:e=!1,groupId:n}){let r=(0,u.W6)(),t=function({queryString:e=!1,groupId:n}){if("string"==typeof e)return e;if(!1===e)return null;if(!0===e&&!n)throw Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:e,groupId:n});return[(0,d.aZ)(t),(0,i.useCallback)(e=>{if(!t)return;let n=new URLSearchParams(r.location.search);n.set(t,e),r.replace({...r.location,search:n.toString()})},[t,r])]}({queryString:t,groupId:a}),[g,v]=function({groupId:e}){let n=e?`docusaurus.tab.${e}`:null,[r,t]=(0,h.Dv)(n);return[r,(0,i.useCallback)(e=>{n&&t.set(e)},[n,t])]}({groupId:a}),x=b({value:n=m??g,tabValues:o})?n:null;return(0,c.A)(()=>{x&&l(x)},[x]),{selectedValue:s,selectValue:(0,i.useCallback)(e=>{if(!b({value:e,tabValues:o}))throw Error(`Can't select invalid tab value=${e}`);l(e),f(e),v(e)},[f,v,o]),tabValues:o,lazy:e.lazy??!1,block:e.block??!1}}(e);return(0,a.jsx)(g,{value:t,children:(0,a.jsx)(y,{className:e.className,children:(n=e.children,i.Children.toArray(n).filter(e=>"\n"!==e))})},String(r))}function C({children:e,className:n,hidden:r}){return(0,a.jsx)("div",{role:"tabpanel",className:(0,s.A)("tabItem_vIHf",n),hidden:r,children:e})}function k({children:e,className:n,value:r}){let{selectedValue:t,lazy:o}=f(),i=r===t;return!i&&o?null:(0,a.jsx)(C,{className:n,hidden:!i,children:e})}let N={sidebar_position:1,sidebar_label:"SpringBoot\u96C6\u6210"},S="Spring Boot \u96C6\u6210",_={},I=[];function P(e){let n={code:"code",h1:"h1",header:"header",p:"p",pre:"pre",strong:"strong",...(0,o.R)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(n.header,{children:(0,a.jsx)(n.h1,{id:"spring-boot-\u96C6\u6210",children:"Spring Boot \u96C6\u6210"})}),"\n",(0,a.jsxs)(n.p,{children:[(0,a.jsx)(n.strong,{children:"Orbien"}),"\u63D0\u4F9B\u4E86\u4E00\u4E2A\u8F7B\u91CF\u7684Java\u5BA2\u6237\u7AEF\u7528\u4E8E\u5185\u5D4C\u5230",(0,a.jsx)(n.code,{children:"Spring Boot"}),"\u5E94\u7528\u4E2D\u8FD0\u884C\uFF0C\u4EC5\u652F\u6301TCP/HTTP/HTTPS\u534F\u8BAE\u4EE3\u7406\uFF0C\u4F20\u8F93\u5C42\u53EA\u652F\u6301TCP\u4F20\u8F93\u534F\u8BAE\uFF0C\n\u76EE\u524D\u4E0D\u652F\u6301",(0,a.jsx)(n.strong,{children:"TCP"}),"\u591A\u8DEF\u590D\u7528\uFF0C\u56E0\u6B64\u5BF9\u4E8E\u670D\u52A1\u7AEF",(0,a.jsx)(n.strong,{children:"\u5F00\u542F\u591A\u8DEF\u590D\u7528"}),"\u6A21\u5F0F\u65F6\uFF0C\u8BE5Starter\u5C06\u4E0D\u53EF\u7528\u3002"]}),"\n",(0,a.jsxs)(w,{children:[(0,a.jsx)(k,{value:"Maven",label:"Maven",default:!0,children:(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-xml",children:"\n io.github.lxien\n orbien-spring-boot-starter\n 2.1.0\n\n"})})}),(0,a.jsx)(k,{value:"Gradle",label:"Gradle",children:(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-groovy",children:'implementation("io.github.lxien:orbien-spring-boot-starter:2.1.0")\n'})})})]}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-yaml",children:"# application.yml\norbien:\n enabled: true\n server-addr: 127.0.0.1\n token: YOUR_TOKEN # \u53EF\u9009\n proxy:\n type: http\n custom-domains:\n - web.domain.com\n\n"})}),"\n",(0,a.jsx)(n.p,{children:"\u5B8C\u6574\u53C2\u8003\uFF1A"}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-yaml",children:'# application.yml\norbien:\n enabled: true\n server-addr: 127.0.0.1\n server-port: 9527\n token: YOUR_TOKEN\n tcp-mux: false # \u9700\u4E0E\u670D\u52A1\u7AEF\u4E00\u81F4\uFF08Java \u5BA2\u6237\u7AEF\u6682\u4E0D\u652F\u6301\u591A\u8DEF\u590D\u7528\uFF09\n pool-count: 1\n heartbeat-interval-secs: 30\n user: spring-boot-demo\n # run-id: "" # \u53EF\u9009\uFF1B\u4E3A\u7A7A\u5219\u4ECE run-id-file \u6062\u590D\uFF0C\u6216\u81EA\u52A8\u751F\u6210\n # run-id-file: "" # \u53EF\u9009\uFF1B\u4E3A\u7A7A\u5219\u4F7F\u7528\u7528\u6237\u76EE\u5F55\u4E0B\u7684\u9ED8\u8BA4\u8DEF\u5F84\n proxy:\n name: web-demo\n type: http\n local-ip: 127.0.0.1\n # local-port: 18080\n custom-domains:\n - web.domain.com\n # subdomain: web # \u53EF\u9009\uFF0C\u4E0E custom-domains \u4E8C\u9009\u4E00\n\n'})})]})}function E(e={}){let{wrapper:n}={...(0,o.R)(),...e.components};return n?(0,a.jsx)(n,{...e,children:(0,a.jsx)(P,{...e})}):P(e)}},7008(e,n,r){r.d(n,{R:()=>i,x:()=>s});var t=r(1763);let a={},o=t.createContext(a);function i(e){let n=t.useContext(o);return t.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function s(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:i(e.components),t.createElement(o.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/72e9da6a.74aae7c4.js b/assets/js/72e9da6a.74aae7c4.js deleted file mode 100644 index 38591ea..0000000 --- a/assets/js/72e9da6a.74aae7c4.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkorbien_docs=self.webpackChunkorbien_docs||[]).push([["521"],{369(e,d,r){r.r(d),r.d(d,{metadata:()=>s,default:()=>a,frontMatter:()=>i,contentTitle:()=>c,toc:()=>h,assets:()=>l});var s=JSON.parse('{"id":"features/dashboard","title":"\u7BA1\u7406\u754C\u9762","description":"\u670D\u52A1\u7AEF Web \u7BA1\u7406\u9762\u677F\u3002\u5728 orbien-server.toml \u4E2D\u914D\u7F6E [webServer]\uFF0C\u4E14 port > 0 \u65F6\u542F\u7528\u3002","source":"@site/docs/features/dashboard.md","sourceDirName":"features","slug":"/features/dashboard","permalink":"/orbien/docs/features/dashboard","draft":false,"unlisted":false,"editUrl":"https://github.com/orbien-org/orbien/tree/main/docs/docs/features/dashboard.md","tags":[],"version":"current","sidebarPosition":2,"frontMatter":{"sidebar_position":2,"sidebar_label":"\u7BA1\u7406\u754C\u9762","title":"\u7BA1\u7406\u754C\u9762"},"sidebar":"docsSidebar","previous":{"title":"\u8EAB\u4EFD\u8BA4\u8BC1","permalink":"/orbien/docs/features/authentication"},"next":{"title":"\u4EE3\u7406\u7ED1\u5B9A\u5730\u5740","permalink":"/orbien/docs/features/proxy-bind"}}'),n=r(1987),t=r(7008);let i={sidebar_position:2,sidebar_label:"\u7BA1\u7406\u754C\u9762",title:"\u7BA1\u7406\u754C\u9762"},c="\u7BA1\u7406\u754C\u9762",l={},h=[{value:"\u793A\u4F8B",id:"\u793A\u4F8B",level:2},{value:"\u53C2\u6570",id:"\u53C2\u6570",level:2},{value:"\u547D\u4EE4\u884C",id:"\u547D\u4EE4\u884C",level:2}];function o(e){let d={code:"code",h1:"h1",h2:"h2",header:"header",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,t.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(d.header,{children:(0,n.jsx)(d.h1,{id:"\u7BA1\u7406\u754C\u9762",children:"\u7BA1\u7406\u754C\u9762"})}),"\n",(0,n.jsxs)(d.p,{children:["\u670D\u52A1\u7AEF Web \u7BA1\u7406\u9762\u677F\u3002\u5728 ",(0,n.jsx)(d.code,{children:"orbien-server.toml"})," \u4E2D\u914D\u7F6E ",(0,n.jsx)(d.code,{children:"[webServer]"}),"\uFF0C\u4E14 ",(0,n.jsx)(d.code,{children:"port > 0"})," \u65F6\u542F\u7528\u3002"]}),"\n",(0,n.jsx)(d.h2,{id:"\u793A\u4F8B",children:"\u793A\u4F8B"}),"\n",(0,n.jsx)(d.pre,{children:(0,n.jsx)(d.code,{className:"language-toml",children:'# orbien-server.toml\nbindAddr = "0.0.0.0"\nbindPort = 9527\n\n[webServer]\naddr = "0.0.0.0"\nport = 8020\nuser = "admin"\npassword = "123456"\nassetsDir = "/path/to/dist"\n'})}),"\n",(0,n.jsxs)(d.p,{children:["\u6D4F\u89C8\u5668\u8BBF\u95EE ",(0,n.jsx)(d.code,{children:"http://SERVER_IP:8020"}),"\uFF0C\u4F7F\u7528 Basic Auth\uFF08",(0,n.jsx)(d.code,{children:"user"})," / ",(0,n.jsx)(d.code,{children:"password"}),"\uFF09\u767B\u5F55\u3002"]}),"\n",(0,n.jsxs)(d.p,{children:[(0,n.jsx)(d.code,{children:"addr"})," \u9ED8\u8BA4\u4E3A ",(0,n.jsx)(d.code,{children:"127.0.0.1"}),"\uFF08\u4EC5\u672C\u673A\uFF09\u3002\u9700\u8FDC\u7A0B\u8BBF\u95EE\u65F6\u8BBE\u4E3A ",(0,n.jsx)(d.code,{children:"0.0.0.0"}),"\u3002",(0,n.jsx)(d.code,{children:"assetsDir"})," \u53EF\u7701\u7565\uFF0C\u7701\u7565\u65F6\u4F7F\u7528\u5185\u7F6E\u524D\u7AEF\u3002"]}),"\n",(0,n.jsx)(d.h2,{id:"\u53C2\u6570",children:"\u53C2\u6570"}),"\n",(0,n.jsxs)(d.table,{children:[(0,n.jsx)(d.thead,{children:(0,n.jsxs)(d.tr,{children:[(0,n.jsx)(d.th,{children:"\u53C2\u6570"}),(0,n.jsx)(d.th,{children:"\u5FC5\u586B"}),(0,n.jsx)(d.th,{children:"\u9ED8\u8BA4\u503C"}),(0,n.jsx)(d.th,{children:"\u8BF4\u660E"})]})}),(0,n.jsxs)(d.tbody,{children:[(0,n.jsxs)(d.tr,{children:[(0,n.jsx)(d.td,{children:(0,n.jsx)(d.code,{children:"webServer.addr"})}),(0,n.jsx)(d.td,{children:"\u5426"}),(0,n.jsx)(d.td,{children:(0,n.jsx)(d.code,{children:"127.0.0.1"})}),(0,n.jsxs)(d.td,{children:["\u76D1\u542C\u5730\u5740\uFF1B\u8FDC\u7A0B\u8BBF\u95EE\u9700 ",(0,n.jsx)(d.code,{children:"0.0.0.0"})]})]}),(0,n.jsxs)(d.tr,{children:[(0,n.jsx)(d.td,{children:(0,n.jsx)(d.code,{children:"webServer.port"})}),(0,n.jsx)(d.td,{children:"\u662F"}),(0,n.jsx)(d.td,{children:(0,n.jsx)(d.code,{children:"0"})}),(0,n.jsxs)(d.td,{children:["\u76D1\u542C\u7AEF\u53E3\uFF1B",(0,n.jsx)(d.code,{children:"0"})," \u8868\u793A\u5173\u95ED"]})]}),(0,n.jsxs)(d.tr,{children:[(0,n.jsx)(d.td,{children:(0,n.jsx)(d.code,{children:"webServer.user"})}),(0,n.jsx)(d.td,{children:"\u5426"}),(0,n.jsx)(d.td,{}),(0,n.jsx)(d.td,{children:"Basic Auth \u7528\u6237\u540D"})]}),(0,n.jsxs)(d.tr,{children:[(0,n.jsx)(d.td,{children:(0,n.jsx)(d.code,{children:"webServer.password"})}),(0,n.jsx)(d.td,{children:"\u5426"}),(0,n.jsx)(d.td,{}),(0,n.jsx)(d.td,{children:"Basic Auth \u5BC6\u7801"})]}),(0,n.jsxs)(d.tr,{children:[(0,n.jsx)(d.td,{children:(0,n.jsx)(d.code,{children:"webServer.assetsDir"})}),(0,n.jsx)(d.td,{children:"\u5426"}),(0,n.jsx)(d.td,{}),(0,n.jsx)(d.td,{children:"\u9759\u6001\u8D44\u6E90\u76EE\u5F55\uFF1B\u7A7A\u5219\u4F7F\u7528\u5185\u7F6E\u524D\u7AEF"})]})]})]}),"\n",(0,n.jsx)(d.h2,{id:"\u547D\u4EE4\u884C",children:"\u547D\u4EE4\u884C"}),"\n",(0,n.jsx)(d.p,{children:"\u65E0\u914D\u7F6E\u6587\u4EF6\u65F6\u4E5F\u53EF\u7528\u53C2\u6570\u5F00\u542F\uFF1A"}),"\n",(0,n.jsx)(d.pre,{children:(0,n.jsx)(d.code,{className:"language-shell",children:"./orbien-server --dashboard_port 8020 --dashboard_user admin --dashboard_pwd 123456\n"})}),"\n",(0,n.jsxs)(d.table,{children:[(0,n.jsx)(d.thead,{children:(0,n.jsxs)(d.tr,{children:[(0,n.jsx)(d.th,{children:"\u53C2\u6570"}),(0,n.jsx)(d.th,{children:"\u9ED8\u8BA4\u503C"}),(0,n.jsx)(d.th,{children:"\u8BF4\u660E"})]})}),(0,n.jsxs)(d.tbody,{children:[(0,n.jsxs)(d.tr,{children:[(0,n.jsx)(d.td,{children:(0,n.jsx)(d.code,{children:"--dashboard_addr"})}),(0,n.jsx)(d.td,{children:(0,n.jsx)(d.code,{children:"0.0.0.0"})}),(0,n.jsx)(d.td,{children:"\u76D1\u542C\u5730\u5740"})]}),(0,n.jsxs)(d.tr,{children:[(0,n.jsx)(d.td,{children:(0,n.jsx)(d.code,{children:"--dashboard_port"})}),(0,n.jsx)(d.td,{children:(0,n.jsx)(d.code,{children:"0"})}),(0,n.jsxs)(d.td,{children:["\u76D1\u542C\u7AEF\u53E3\uFF1B",(0,n.jsx)(d.code,{children:"0"})," \u5173\u95ED"]})]}),(0,n.jsxs)(d.tr,{children:[(0,n.jsx)(d.td,{children:(0,n.jsx)(d.code,{children:"--dashboard_user"})}),(0,n.jsx)(d.td,{children:(0,n.jsx)(d.code,{children:"admin"})}),(0,n.jsx)(d.td,{children:"\u7528\u6237\u540D"})]}),(0,n.jsxs)(d.tr,{children:[(0,n.jsx)(d.td,{children:(0,n.jsx)(d.code,{children:"--dashboard_pwd"})}),(0,n.jsx)(d.td,{children:(0,n.jsx)(d.code,{children:"admin"})}),(0,n.jsx)(d.td,{children:"\u5BC6\u7801"})]})]})]})]})}function a(e={}){let{wrapper:d}={...(0,t.R)(),...e.components};return d?(0,n.jsx)(d,{...e,children:(0,n.jsx)(o,{...e})}):o(e)}},7008(e,d,r){r.d(d,{R:()=>i,x:()=>c});var s=r(1763);let n={},t=s.createContext(n);function i(e){let d=s.useContext(t);return s.useMemo(function(){return"function"==typeof e?e(d):{...d,...e}},[d,e])}function c(e){let d;return d=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:i(e.components),s.createElement(t.Provider,{value:d},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/72e9da6a.910b293b.js b/assets/js/72e9da6a.910b293b.js new file mode 100644 index 0000000..1a5c7a1 --- /dev/null +++ b/assets/js/72e9da6a.910b293b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkorbien_docs=self.webpackChunkorbien_docs||[]).push([["521"],{369(e,d,r){r.r(d),r.d(d,{metadata:()=>s,default:()=>a,frontMatter:()=>i,contentTitle:()=>c,toc:()=>l,assets:()=>o});var s=JSON.parse('{"id":"features/dashboard","title":"\u7BA1\u7406\u754C\u9762","description":"\u670D\u52A1\u7AEF Web \u7BA1\u7406\u9762\u677F\u3002\u5728 orbien-server.toml \u4E2D\u914D\u7F6E [dashboard]\uFF0C\u4E14 port > 0 \u65F6\u542F\u7528\u3002","source":"@site/docs/features/dashboard.md","sourceDirName":"features","slug":"/features/dashboard","permalink":"/orbien/docs/features/dashboard","draft":false,"unlisted":false,"editUrl":"https://github.com/orbien-org/orbien/tree/main/docs/docs/features/dashboard.md","tags":[],"version":"current","sidebarPosition":2,"frontMatter":{"sidebar_position":2,"sidebar_label":"\u7BA1\u7406\u754C\u9762","title":"\u7BA1\u7406\u754C\u9762"},"sidebar":"docsSidebar","previous":{"title":"\u8EAB\u4EFD\u8BA4\u8BC1","permalink":"/orbien/docs/features/authentication"},"next":{"title":"\u5BF9\u5916\u76D1\u542C\u5730\u5740","permalink":"/orbien/docs/features/public-bind"}}'),t=r(1987),n=r(7008);let i={sidebar_position:2,sidebar_label:"\u7BA1\u7406\u754C\u9762",title:"\u7BA1\u7406\u754C\u9762"},c="\u7BA1\u7406\u754C\u9762",o={},l=[{value:"\u793A\u4F8B",id:"\u793A\u4F8B",level:2},{value:"\u53C2\u6570",id:"\u53C2\u6570",level:2}];function h(e){let d={code:"code",h1:"h1",h2:"h2",header:"header",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,n.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(d.header,{children:(0,t.jsx)(d.h1,{id:"\u7BA1\u7406\u754C\u9762",children:"\u7BA1\u7406\u754C\u9762"})}),"\n",(0,t.jsxs)(d.p,{children:["\u670D\u52A1\u7AEF Web \u7BA1\u7406\u9762\u677F\u3002\u5728 ",(0,t.jsx)(d.code,{children:"orbien-server.toml"})," \u4E2D\u914D\u7F6E ",(0,t.jsx)(d.code,{children:"[dashboard]"}),"\uFF0C\u4E14 ",(0,t.jsx)(d.code,{children:"port > 0"})," \u65F6\u542F\u7528\u3002"]}),"\n",(0,t.jsx)(d.h2,{id:"\u793A\u4F8B",children:"\u793A\u4F8B"}),"\n",(0,t.jsx)(d.pre,{children:(0,t.jsx)(d.code,{className:"language-toml",children:'# orbien-server.toml\nlisten = "0.0.0.0:9527"\n\n[dashboard]\naddr = "0.0.0.0"\nport = 8020\nuser = "admin"\npassword = "123456"\n'})}),"\n",(0,t.jsxs)(d.p,{children:["\u6D4F\u89C8\u5668\u8BBF\u95EE ",(0,t.jsx)(d.code,{children:"http://SERVER_IP:8020"}),"\uFF0C\u4F7F\u7528 Basic Auth\uFF08",(0,t.jsx)(d.code,{children:"user"})," / ",(0,t.jsx)(d.code,{children:"password"}),"\uFF09\u767B\u5F55\u3002"]}),"\n",(0,t.jsxs)(d.p,{children:[(0,t.jsx)(d.code,{children:"addr"})," \u9ED8\u8BA4\u4E3A ",(0,t.jsx)(d.code,{children:"127.0.0.1"}),"\uFF08\u4EC5\u672C\u673A\uFF09\u3002\u9700\u8FDC\u7A0B\u8BBF\u95EE\u65F6\u8BBE\u4E3A ",(0,t.jsx)(d.code,{children:"0.0.0.0"}),"\u3002",(0,t.jsx)(d.code,{children:"staticDir"})," \u53EF\u7701\u7565\uFF0C\u7701\u7565\u65F6\u4F7F\u7528\u5185\u7F6E\u524D\u7AEF\u3002"]}),"\n",(0,t.jsx)(d.h2,{id:"\u53C2\u6570",children:"\u53C2\u6570"}),"\n",(0,t.jsxs)(d.table,{children:[(0,t.jsx)(d.thead,{children:(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.th,{children:"\u53C2\u6570"}),(0,t.jsx)(d.th,{children:"\u5FC5\u586B"}),(0,t.jsx)(d.th,{children:"\u9ED8\u8BA4\u503C"}),(0,t.jsx)(d.th,{children:"\u8BF4\u660E"})]})}),(0,t.jsxs)(d.tbody,{children:[(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:(0,t.jsx)(d.code,{children:"dashboard.addr"})}),(0,t.jsx)(d.td,{children:"\u5426"}),(0,t.jsx)(d.td,{children:(0,t.jsx)(d.code,{children:"127.0.0.1"})}),(0,t.jsxs)(d.td,{children:["\u76D1\u542C\u5730\u5740\uFF1B\u8FDC\u7A0B\u8BBF\u95EE\u9700 ",(0,t.jsx)(d.code,{children:"0.0.0.0"})]})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:(0,t.jsx)(d.code,{children:"dashboard.port"})}),(0,t.jsx)(d.td,{children:"\u662F"}),(0,t.jsx)(d.td,{children:(0,t.jsx)(d.code,{children:"0"})}),(0,t.jsxs)(d.td,{children:["\u76D1\u542C\u7AEF\u53E3\uFF1B",(0,t.jsx)(d.code,{children:"0"})," \u8868\u793A\u5173\u95ED"]})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:(0,t.jsx)(d.code,{children:"dashboard.user"})}),(0,t.jsx)(d.td,{children:"\u5426"}),(0,t.jsx)(d.td,{}),(0,t.jsx)(d.td,{children:"Basic Auth \u7528\u6237\u540D"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:(0,t.jsx)(d.code,{children:"dashboard.password"})}),(0,t.jsx)(d.td,{children:"\u5426"}),(0,t.jsx)(d.td,{}),(0,t.jsx)(d.td,{children:"Basic Auth \u5BC6\u7801"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:(0,t.jsx)(d.code,{children:"dashboard.staticDir"})}),(0,t.jsx)(d.td,{children:"\u5426"}),(0,t.jsx)(d.td,{}),(0,t.jsx)(d.td,{children:"\u9759\u6001\u8D44\u6E90\u76EE\u5F55\uFF1B\u7A7A\u5219\u4F7F\u7528\u5185\u7F6E\u524D\u7AEF"})]})]})]})]})}function a(e={}){let{wrapper:d}={...(0,n.R)(),...e.components};return d?(0,t.jsx)(d,{...e,children:(0,t.jsx)(h,{...e})}):h(e)}},7008(e,d,r){r.d(d,{R:()=>i,x:()=>c});var s=r(1763);let t={},n=s.createContext(t);function i(e){let d=s.useContext(n);return s.useMemo(function(){return"function"==typeof e?e(d):{...d,...e}},[d,e])}function c(e){let d;return d=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:i(e.components),s.createElement(n.Provider,{value:d},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/7a70e970.9a0bdcc8.js b/assets/js/7a70e970.9a0bdcc8.js deleted file mode 100644 index 087131c..0000000 --- a/assets/js/7a70e970.9a0bdcc8.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkorbien_docs=self.webpackChunkorbien_docs||[]).push([["2"],{1903(e,r,d){d.r(r),d.d(r,{metadata:()=>n,default:()=>x,frontMatter:()=>i,contentTitle:()=>c,toc:()=>l,assets:()=>o});var n=JSON.parse('{"id":"features/proxy-bind","title":"\u4EE3\u7406\u7ED1\u5B9A\u5730\u5740","description":"\u670D\u52A1\u7AEF\u6709\u4E24\u7C7B\u76D1\u542C\uFF1A","source":"@site/docs/features/proxy-bind.md","sourceDirName":"features","slug":"/features/proxy-bind","permalink":"/orbien/docs/features/proxy-bind","draft":false,"unlisted":false,"editUrl":"https://github.com/orbien-org/orbien/tree/main/docs/docs/features/proxy-bind.md","tags":[],"version":"current","sidebarPosition":3,"frontMatter":{"sidebar_position":3,"sidebar_label":"\u4EE3\u7406\u7ED1\u5B9A\u5730\u5740","title":"\u4EE3\u7406\u7ED1\u5B9A\u5730\u5740"},"sidebar":"docsSidebar","previous":{"title":"\u7BA1\u7406\u754C\u9762","permalink":"/orbien/docs/features/dashboard"},"next":{"title":"\u5E26\u5BBD\u9650\u5236","permalink":"/orbien/docs/features/bandwidth"}}'),s=d(1987),t=d(7008);let i={sidebar_position:3,sidebar_label:"\u4EE3\u7406\u7ED1\u5B9A\u5730\u5740",title:"\u4EE3\u7406\u7ED1\u5B9A\u5730\u5740"},c="\u4EE3\u7406\u7ED1\u5B9A\u5730\u5740",o={},l=[{value:"\u793A\u4F8B",id:"\u793A\u4F8B",level:2},{value:"\u53C2\u6570",id:"\u53C2\u6570",level:2}];function h(e){let r={code:"code",h1:"h1",h2:"h2",header:"header",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,t.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(r.header,{children:(0,s.jsx)(r.h1,{id:"\u4EE3\u7406\u7ED1\u5B9A\u5730\u5740",children:"\u4EE3\u7406\u7ED1\u5B9A\u5730\u5740"})}),"\n",(0,s.jsx)(r.p,{children:"\u670D\u52A1\u7AEF\u6709\u4E24\u7C7B\u76D1\u542C\uFF1A"}),"\n",(0,s.jsxs)(r.table,{children:[(0,s.jsx)(r.thead,{children:(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.th,{children:"\u7528\u9014"}),(0,s.jsx)(r.th,{children:"\u914D\u7F6E"}),(0,s.jsx)(r.th,{children:"\u8C01\u8FDE"})]})}),(0,s.jsxs)(r.tbody,{children:[(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:"\u63A7\u5236\u901A\u9053"}),(0,s.jsxs)(r.td,{children:[(0,s.jsx)(r.code,{children:"bindAddr"})," + ",(0,s.jsx)(r.code,{children:"bindPort"}),"\uFF08\u4EE5\u53CA QUIC/KCP \u7AEF\u53E3\uFF09"]}),(0,s.jsxs)(r.td,{children:[(0,s.jsx)(r.strong,{children:"\u5BA2\u6237\u7AEF"})," orbien \u8FDE\u4E0A\u6765\u5EFA\u96A7\u9053"]})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:"\u5BF9\u5916\u4EE3\u7406"}),(0,s.jsxs)(r.td,{children:[(0,s.jsx)(r.code,{children:"proxyBindAddr"})," + ",(0,s.jsx)(r.code,{children:"remotePort"})," / \u865A\u62DF\u4E3B\u673A\u7AEF\u53E3"]}),(0,s.jsxs)(r.td,{children:[(0,s.jsx)(r.strong,{children:"\u516C\u7F51\u8BBF\u5BA2"})," \u8BBF\u95EE\u4F60\u7A7F\u900F\u51FA\u53BB\u7684\u670D\u52A1"]})]})]})]}),"\n",(0,s.jsxs)(r.p,{children:[(0,s.jsx)(r.code,{children:"proxyBindAddr"})," \u51B3\u5B9A\u8BBF\u5BA2\u6D41\u91CF\u7ED1\u5728\u54EA\u5F20\u7F51\u5361 / \u54EA\u4E2A\u5730\u5740\u4E0A\uFF0C\u4E0E\u5BA2\u6237\u7AEF\u8FDE\u54EA\u65E0\u5173\u3002"]}),"\n",(0,s.jsx)(r.p,{children:"\u5178\u578B\u573A\u666F\uFF1A\u673A\u5668\u591A\u7F51\u5361\u65F6\uFF0C\u63A7\u5236\u901A\u9053\u53EA\u542C\u5185\u7F51\uFF0C\u4EE3\u7406\u53EA\u6302\u516C\u7F51 IP\uFF1B\u6216\u53CD\u8FC7\u6765\u9694\u79BB\u7BA1\u7406\u9762\u4E0E\u4E1A\u52A1\u9762\u3002"}),"\n",(0,s.jsxs)(r.p,{children:["\u9ED8\u8BA4 ",(0,s.jsx)(r.code,{children:"0.0.0.0"}),"\uFF08\u6240\u6709\u7F51\u5361\uFF09\u3002\u7559\u7A7A\u5219\u56DE\u9000\u4E3A ",(0,s.jsx)(r.code,{children:"bindAddr"}),"\u3002"]}),"\n",(0,s.jsx)(r.h2,{id:"\u793A\u4F8B",children:"\u793A\u4F8B"}),"\n",(0,s.jsx)(r.p,{children:"\u63A7\u5236\u901A\u9053\u4E0E\u4EE3\u7406\u90FD\u5BF9\u6240\u6709\u7F51\u5361\u5F00\u653E\uFF08\u9ED8\u8BA4\u884C\u4E3A\uFF09\uFF1A"}),"\n",(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{className:"language-toml",children:'# orbien-server.toml\nbindAddr = "0.0.0.0"\nbindPort = 9527\nproxyBindAddr = "0.0.0.0"\n'})}),"\n",(0,s.jsx)(r.p,{children:"\u4EC5\u5728\u516C\u7F51\u7F51\u5361\u4E0A\u5BF9\u5916\u63D0\u4F9B\u4EE3\u7406\uFF08\u793A\u4F8B IP\uFF09\uFF1A"}),"\n",(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{className:"language-toml",children:'# orbien-server.toml\nbindAddr = "10.0.0.2"\nbindPort = 9527\nproxyBindAddr = "203.0.113.10"\n'})}),"\n",(0,s.jsxs)(r.p,{children:["\u6B64\u65F6\u5BA2\u6237\u7AEF\u8FDE ",(0,s.jsx)(r.code,{children:"10.0.0.2:9527"}),"\uFF1B\u8BBF\u5BA2\u8BBF\u95EE ",(0,s.jsx)(r.code,{children:"203.0.113.10"})," \u4E0A\u7684 ",(0,s.jsx)(r.code,{children:"remotePort"})," / ",(0,s.jsx)(r.code,{children:"vhostHTTPPort"})," / ",(0,s.jsx)(r.code,{children:"vhostHTTPSPort"}),"\u3002"]}),"\n",(0,s.jsx)(r.h2,{id:"\u53C2\u6570",children:"\u53C2\u6570"}),"\n",(0,s.jsxs)(r.table,{children:[(0,s.jsx)(r.thead,{children:(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.th,{children:"\u53C2\u6570"}),(0,s.jsx)(r.th,{children:"\u5FC5\u586B"}),(0,s.jsx)(r.th,{children:"\u9ED8\u8BA4\u503C"}),(0,s.jsx)(r.th,{children:"\u8BF4\u660E"})]})}),(0,s.jsx)(r.tbody,{children:(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:(0,s.jsx)(r.code,{children:"proxyBindAddr"})}),(0,s.jsx)(r.td,{children:"\u5426"}),(0,s.jsx)(r.td,{children:(0,s.jsx)(r.code,{children:"0.0.0.0"})}),(0,s.jsxs)(r.td,{children:["\u5BF9\u5916\u4EE3\u7406\u76D1\u542C\u5730\u5740\uFF1B\u7A7A\u5219\u56DE\u9000\u4E3A ",(0,s.jsx)(r.code,{children:"bindAddr"})]})]})})]})]})}function x(e={}){let{wrapper:r}={...(0,t.R)(),...e.components};return r?(0,s.jsx)(r,{...e,children:(0,s.jsx)(h,{...e})}):h(e)}},7008(e,r,d){d.d(r,{R:()=>i,x:()=>c});var n=d(1763);let s={},t=n.createContext(s);function i(e){let r=n.useContext(t);return n.useMemo(function(){return"function"==typeof e?e(r):{...r,...e}},[r,e])}function c(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:i(e.components),n.createElement(t.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/8070e160.7712c5b0.js b/assets/js/8070e160.c6dc6b27.js similarity index 52% rename from assets/js/8070e160.7712c5b0.js rename to assets/js/8070e160.c6dc6b27.js index babfef9..b2a7848 100644 --- a/assets/js/8070e160.7712c5b0.js +++ b/assets/js/8070e160.c6dc6b27.js @@ -1 +1 @@ -"use strict";(self.webpackChunkorbien_docs=self.webpackChunkorbien_docs||[]).push([["499"],{3190(e,n,r){r.r(n),r.d(n,{metadata:()=>t,default:()=>h,frontMatter:()=>i,contentTitle:()=>c,toc:()=>d,assets:()=>l});var t=JSON.parse('{"id":"quickstart","title":"\u5FEB\u901F\u5F00\u59CB","description":"\u4E0B\u8F7D\u5BF9\u5E94\u5E73\u53F0\u7684\u4E8C\u8FDB\u5236\u538B\u7F29\u5305\u89E3\u538B","source":"@site/docs/quickstart.md","sourceDirName":".","slug":"/quickstart","permalink":"/orbien/docs/quickstart","draft":false,"unlisted":false,"editUrl":"https://github.com/orbien-org/orbien/tree/main/docs/docs/quickstart.md","tags":[],"version":"current","sidebarPosition":3,"frontMatter":{"sidebar_position":3,"title":"\u5FEB\u901F\u5F00\u59CB"},"sidebar":"docsSidebar","previous":{"title":"\u4E0B\u8F7D","permalink":"/orbien/docs/download"},"next":{"title":"Docker \u5B89\u88C5","permalink":"/orbien/docs/docker"}}'),o=r(1987),s=r(7008);let i={sidebar_position:3,title:"\u5FEB\u901F\u5F00\u59CB"},c="\u5FEB\u901F\u5F00\u59CB",l={},d=[{value:"\u670D\u52A1\u7AEF",id:"\u670D\u52A1\u7AEF",level:2},{value:"\u5BA2\u6237\u7AEF",id:"\u5BA2\u6237\u7AEF",level:2}];function a(e){let n={a:"a",code:"code",h1:"h1",h2:"h2",header:"header",p:"p",pre:"pre",...(0,s.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(n.header,{children:(0,o.jsx)(n.h1,{id:"\u5FEB\u901F\u5F00\u59CB",children:"\u5FEB\u901F\u5F00\u59CB"})}),"\n",(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.a,{href:"/orbien/docs/download",children:"\u4E0B\u8F7D"}),"\u5BF9\u5E94\u5E73\u53F0\u7684\u4E8C\u8FDB\u5236\u538B\u7F29\u5305\u89E3\u538B"]}),"\n",(0,o.jsx)(n.h2,{id:"\u670D\u52A1\u7AEF",children:"\u670D\u52A1\u7AEF"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-toml",children:'# orbien-server.toml\nbindAddr = "0.0.0.0"\nbindPort = 9527\n'})}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-shell",children:"./orbien-server -c orbien-server.toml\n"})}),"\n",(0,o.jsx)(n.h2,{id:"\u5BA2\u6237\u7AEF",children:"\u5BA2\u6237\u7AEF"}),"\n",(0,o.jsxs)(n.p,{children:["\u5982\u679C\u89C9\u5F97\u547D\u4EE4\u884C CLI \u64CD\u4F5C\u9EBB\u70E6\uFF0C\u53EF\u4EE5\u4F7F\u7528 ",(0,o.jsx)(n.a,{href:"/orbien/docs/download",children:"Orbien Desktop"})," \u684C\u9762\u7AEF\uFF08\u4E0D\u8FC7\u5185\u5B58\u5360\u7528\u6BD4\u8F83\u5927\uFF0C\u5185\u5B58\u53D7\u9650\u65F6\u4E0D\u5EFA\u8BAE\u4F7F\u7528\uFF09"]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-toml",children:'# orbien.toml\nserverAddr = "127.0.0.1"\nserverPort = 9527\n\n[[proxies]]\nname = "mysql"\ntype = "tcp"\nlocalIP = "127.0.0.1"\nlocalPort = 3306\nremotePort = 6050\n'})}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-shell",children:"./orbien -c orbien.toml\n"})})]})}function h(e={}){let{wrapper:n}={...(0,s.R)(),...e.components};return n?(0,o.jsx)(n,{...e,children:(0,o.jsx)(a,{...e})}):a(e)}},7008(e,n,r){r.d(n,{R:()=>i,x:()=>c});var t=r(1763);let o={},s=t.createContext(o);function i(e){let n=t.useContext(s);return t.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:i(e.components),t.createElement(s.Provider,{value:n},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkorbien_docs=self.webpackChunkorbien_docs||[]).push([["499"],{3190(e,n,r){r.r(n),r.d(n,{metadata:()=>t,default:()=>u,frontMatter:()=>i,contentTitle:()=>c,toc:()=>d,assets:()=>l});var t=JSON.parse('{"id":"quickstart","title":"\u5FEB\u901F\u5F00\u59CB","description":"\u4E0B\u8F7D\u5BF9\u5E94\u5E73\u53F0\u7684\u4E8C\u8FDB\u5236\u538B\u7F29\u5305\u89E3\u538B","source":"@site/docs/quickstart.md","sourceDirName":".","slug":"/quickstart","permalink":"/orbien/docs/quickstart","draft":false,"unlisted":false,"editUrl":"https://github.com/orbien-org/orbien/tree/main/docs/docs/quickstart.md","tags":[],"version":"current","sidebarPosition":3,"frontMatter":{"sidebar_position":3,"title":"\u5FEB\u901F\u5F00\u59CB"},"sidebar":"docsSidebar","previous":{"title":"\u4E0B\u8F7D","permalink":"/orbien/docs/download"},"next":{"title":"Docker \u5B89\u88C5","permalink":"/orbien/docs/docker"}}'),o=r(1987),s=r(7008);let i={sidebar_position:3,title:"\u5FEB\u901F\u5F00\u59CB"},c="\u5FEB\u901F\u5F00\u59CB",l={},d=[{value:"\u670D\u52A1\u7AEF",id:"\u670D\u52A1\u7AEF",level:2},{value:"\u5BA2\u6237\u7AEF",id:"\u5BA2\u6237\u7AEF",level:2}];function a(e){let n={a:"a",code:"code",h1:"h1",h2:"h2",header:"header",p:"p",pre:"pre",...(0,s.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(n.header,{children:(0,o.jsx)(n.h1,{id:"\u5FEB\u901F\u5F00\u59CB",children:"\u5FEB\u901F\u5F00\u59CB"})}),"\n",(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.a,{href:"/orbien/docs/download",children:"\u4E0B\u8F7D"}),"\u5BF9\u5E94\u5E73\u53F0\u7684\u4E8C\u8FDB\u5236\u538B\u7F29\u5305\u89E3\u538B"]}),"\n",(0,o.jsx)(n.h2,{id:"\u670D\u52A1\u7AEF",children:"\u670D\u52A1\u7AEF"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-toml",children:'# orbien-server.toml\nlisten = "0.0.0.0:9527"\n'})}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-shell",children:"./orbien-server -c orbien-server.toml\n"})}),"\n",(0,o.jsx)(n.h2,{id:"\u5BA2\u6237\u7AEF",children:"\u5BA2\u6237\u7AEF"}),"\n",(0,o.jsxs)(n.p,{children:["\u5982\u679C\u89C9\u5F97\u547D\u4EE4\u884C CLI \u64CD\u4F5C\u9EBB\u70E6\uFF0C\u53EF\u4EE5\u4F7F\u7528 ",(0,o.jsx)(n.a,{href:"/orbien/docs/download",children:"Orbien Desktop"})," \u684C\u9762\u5BA2\u6237\u7AEF\u3002"]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-toml",children:'# orbien.toml\nserver = "127.0.0.1:9527"\n\n[[tunnels]]\nname = "mysql"\nprotocol = "tcp"\nservice = "127.0.0.1:3306"\nremotePort = 9000\n'})}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-shell",children:"./orbien -c orbien.toml\n"})})]})}function u(e={}){let{wrapper:n}={...(0,s.R)(),...e.components};return n?(0,o.jsx)(n,{...e,children:(0,o.jsx)(a,{...e})}):a(e)}},7008(e,n,r){r.d(n,{R:()=>i,x:()=>c});var t=r(1763);let o={},s=t.createContext(o);function i(e){let n=t.useContext(s);return t.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:i(e.components),t.createElement(s.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/8fec5fc3.8dd51700.js b/assets/js/8fec5fc3.8dd51700.js deleted file mode 100644 index 57f2a2f..0000000 --- a/assets/js/8fec5fc3.8dd51700.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkorbien_docs=self.webpackChunkorbien_docs||[]).push([["867"],{8224(e,d,r){r.r(d),r.d(d,{metadata:()=>n,default:()=>x,frontMatter:()=>i,contentTitle:()=>c,toc:()=>o,assets:()=>l});var n=JSON.parse('{"id":"proxies/udp","title":"UDP","description":"\u5C06\u5185\u7F51 UDP \u670D\u52A1\u6620\u5C04\u5230\u670D\u52A1\u7AEF\u516C\u7F51\u7AEF\u53E3\u3002","source":"@site/docs/proxies/udp.md","sourceDirName":"proxies","slug":"/proxies/udp","permalink":"/orbien/docs/proxies/udp","draft":false,"unlisted":false,"editUrl":"https://github.com/orbien-org/orbien/tree/main/docs/docs/proxies/udp.md","tags":[],"version":"current","sidebarPosition":2,"frontMatter":{"sidebar_position":2,"sidebar_label":"UDP","title":"UDP"},"sidebar":"docsSidebar","previous":{"title":"TCP","permalink":"/orbien/docs/proxies/tcp"},"next":{"title":"HTTP","permalink":"/orbien/docs/proxies/http"}}'),s=r(1987),t=r(7008);let i={sidebar_position:2,sidebar_label:"UDP",title:"UDP"},c="UDP",l={},o=[{value:"\u793A\u4F8B\uFF1A\u7A7F\u900F DNS",id:"\u793A\u4F8B\u7A7F\u900F-dns",level:2},{value:"\u53C2\u6570",id:"\u53C2\u6570",level:2}];function h(e){let d={code:"code",h1:"h1",h2:"h2",header:"header",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,t.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(d.header,{children:(0,s.jsx)(d.h1,{id:"udp",children:"UDP"})}),"\n",(0,s.jsx)(d.p,{children:"\u5C06\u5185\u7F51 UDP \u670D\u52A1\u6620\u5C04\u5230\u670D\u52A1\u7AEF\u516C\u7F51\u7AEF\u53E3\u3002"}),"\n",(0,s.jsxs)(d.p,{children:["\u4E24\u7AEF ",(0,s.jsx)(d.code,{children:"udpPacketSize"})," \u9700\u4E00\u81F4\uFF08\u9ED8\u8BA4 ",(0,s.jsx)(d.code,{children:"1500"}),"\uFF09\u3002"]}),"\n",(0,s.jsx)(d.h2,{id:"\u793A\u4F8B\u7A7F\u900F-dns",children:"\u793A\u4F8B\uFF1A\u7A7F\u900F DNS"}),"\n",(0,s.jsx)(d.p,{children:"\u670D\u52A1\u7AEF\uFF1A"}),"\n",(0,s.jsx)(d.pre,{children:(0,s.jsx)(d.code,{className:"language-toml",children:'# orbien-server.toml\nbindAddr = "0.0.0.0"\nbindPort = 9527\nudpPacketSize = 1500\n'})}),"\n",(0,s.jsx)(d.p,{children:"\u5BA2\u6237\u7AEF\uFF1A"}),"\n",(0,s.jsx)(d.pre,{children:(0,s.jsx)(d.code,{className:"language-toml",children:'# orbien.toml\nserverAddr = "YOUR_SERVER_IP"\nserverPort = 9527\nudpPacketSize = 1500\n\n[[proxies]]\nname = "dns"\ntype = "udp"\nlocalIP = "127.0.0.1"\nlocalPort = 53\nremotePort = 9000\n'})}),"\n",(0,s.jsx)(d.p,{children:"\u5916\u7F51\u8BBF\u95EE\uFF1A"}),"\n",(0,s.jsx)(d.pre,{children:(0,s.jsx)(d.code,{className:"language-shell",children:"dig @YOUR_SERVER_IP -p 9000 example.com\n"})}),"\n",(0,s.jsx)(d.h2,{id:"\u53C2\u6570",children:"\u53C2\u6570"}),"\n",(0,s.jsxs)(d.table,{children:[(0,s.jsx)(d.thead,{children:(0,s.jsxs)(d.tr,{children:[(0,s.jsx)(d.th,{children:"\u53C2\u6570"}),(0,s.jsx)(d.th,{children:"\u5FC5\u586B"}),(0,s.jsx)(d.th,{children:"\u9ED8\u8BA4\u503C"}),(0,s.jsx)(d.th,{children:"\u8BF4\u660E"})]})}),(0,s.jsxs)(d.tbody,{children:[(0,s.jsxs)(d.tr,{children:[(0,s.jsx)(d.td,{children:(0,s.jsx)(d.code,{children:"udpPacketSize"})}),(0,s.jsx)(d.td,{children:"\u5426"}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.code,{children:"1500"})}),(0,s.jsx)(d.td,{children:"UDP \u6700\u5927\u62A5\u6587\u957F\u5EA6\uFF0C\u9700\u4E0E\u670D\u52A1\u7AEF\u4E00\u81F4"})]}),(0,s.jsxs)(d.tr,{children:[(0,s.jsx)(d.td,{children:(0,s.jsx)(d.code,{children:"name"})}),(0,s.jsx)(d.td,{children:"\u662F"}),(0,s.jsx)(d.td,{}),(0,s.jsx)(d.td,{children:"\u4EE3\u7406\u540D\u79F0\uFF0C\u552F\u4E00"})]}),(0,s.jsxs)(d.tr,{children:[(0,s.jsx)(d.td,{children:(0,s.jsx)(d.code,{children:"type"})}),(0,s.jsx)(d.td,{children:"\u662F"}),(0,s.jsx)(d.td,{}),(0,s.jsxs)(d.td,{children:["\u56FA\u5B9A\u4E3A ",(0,s.jsx)(d.code,{children:"udp"})]})]}),(0,s.jsxs)(d.tr,{children:[(0,s.jsx)(d.td,{children:(0,s.jsx)(d.code,{children:"localIP"})}),(0,s.jsx)(d.td,{children:"\u5426"}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.code,{children:"127.0.0.1"})}),(0,s.jsx)(d.td,{children:"\u672C\u5730\u670D\u52A1\u5730\u5740"})]}),(0,s.jsxs)(d.tr,{children:[(0,s.jsx)(d.td,{children:(0,s.jsx)(d.code,{children:"localPort"})}),(0,s.jsx)(d.td,{children:"\u662F"}),(0,s.jsx)(d.td,{}),(0,s.jsx)(d.td,{children:"\u672C\u5730\u670D\u52A1\u7AEF\u53E3"})]}),(0,s.jsxs)(d.tr,{children:[(0,s.jsx)(d.td,{children:(0,s.jsx)(d.code,{children:"remotePort"})}),(0,s.jsx)(d.td,{children:"\u662F"}),(0,s.jsx)(d.td,{}),(0,s.jsx)(d.td,{children:"\u670D\u52A1\u7AEF\u5BF9\u5916\u76D1\u542C\u7AEF\u53E3"})]}),(0,s.jsxs)(d.tr,{children:[(0,s.jsx)(d.td,{children:(0,s.jsx)(d.code,{children:"transport.bandwidthLimit"})}),(0,s.jsx)(d.td,{children:"\u5426"}),(0,s.jsx)(d.td,{}),(0,s.jsxs)(d.td,{children:["\u5E26\u5BBD\u9650\u5236\uFF0C\u5982 ",(0,s.jsx)(d.code,{children:"1MB"}),"\u3001",(0,s.jsx)(d.code,{children:"100KB"}),"\uFF1B\u7A7A\u8868\u793A\u4E0D\u9650\u5236"]})]}),(0,s.jsxs)(d.tr,{children:[(0,s.jsx)(d.td,{children:(0,s.jsx)(d.code,{children:"transport.bandwidthLimitMode"})}),(0,s.jsx)(d.td,{children:"\u5426"}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.code,{children:"client"})}),(0,s.jsxs)(d.td,{children:["\u9650\u901F\u7AEF\uFF1A",(0,s.jsx)(d.code,{children:"client"})," / ",(0,s.jsx)(d.code,{children:"server"})]})]}),(0,s.jsxs)(d.tr,{children:[(0,s.jsx)(d.td,{children:(0,s.jsx)(d.code,{children:"transport.proxyProtocolVersion"})}),(0,s.jsx)(d.td,{children:"\u5426"}),(0,s.jsx)(d.td,{}),(0,s.jsxs)(d.td,{children:["PROXY Protocol\uFF1A",(0,s.jsx)(d.code,{children:"v1"})," / ",(0,s.jsx)(d.code,{children:"v2"})]})]})]})]})]})}function x(e={}){let{wrapper:d}={...(0,t.R)(),...e.components};return d?(0,s.jsx)(d,{...e,children:(0,s.jsx)(h,{...e})}):h(e)}},7008(e,d,r){r.d(d,{R:()=>i,x:()=>c});var n=r(1763);let s={},t=n.createContext(s);function i(e){let d=n.useContext(t);return n.useMemo(function(){return"function"==typeof e?e(d):{...d,...e}},[d,e])}function c(e){let d;return d=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:i(e.components),n.createElement(t.Provider,{value:d},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/90358f02.49d265ea.js b/assets/js/90358f02.49d265ea.js new file mode 100644 index 0000000..df4b5fd --- /dev/null +++ b/assets/js/90358f02.49d265ea.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkorbien_docs=self.webpackChunkorbien_docs||[]).push([["133"],{1062(e,n,s){s.r(n),s.d(n,{metadata:()=>t,default:()=>x,frontMatter:()=>l,contentTitle:()=>i,toc:()=>c,assets:()=>o});var t=JSON.parse('{"id":"tunnels/domains","title":"\u57DF\u540D","description":"\u6309\u57DF\u540D\u5C06\u8BBF\u5BA2\u6D41\u91CF\u8F6C\u53D1\u5230\u5BA2\u6237\u7AEF\u96A7\u9053\u3002\u670D\u52A1\u7AEF\u5F00\u542F httpGwPort / httpsGwPort \u540E\uFF0C\u5BA2\u6237\u7AEF\u7528 domains \u7ED1\u5B9A\u57DF\u540D\u3002","source":"@site/docs/tunnels/domains.md","sourceDirName":"tunnels","slug":"/tunnels/domains","permalink":"/orbien/docs/tunnels/domains","draft":false,"unlisted":false,"editUrl":"https://github.com/orbien-org/orbien/tree/main/docs/docs/tunnels/domains.md","tags":[],"version":"current","sidebarPosition":5,"frontMatter":{"sidebar_position":5,"sidebar_label":"\u57DF\u540D","title":"\u57DF\u540D"},"sidebar":"docsSidebar","previous":{"title":"HTTPS","permalink":"/orbien/docs/tunnels/https"},"next":{"title":"TCP","permalink":"/orbien/docs/transport/protocol/tcp"}}'),d=s(1987),r=s(7008);let l={sidebar_position:5,sidebar_label:"\u57DF\u540D",title:"\u57DF\u540D"},i="\u57DF\u540D",o={},c=[{value:"\u793A\u4F8B\uFF1A\u81EA\u5B9A\u4E49\u57DF\u540D",id:"\u793A\u4F8B\u81EA\u5B9A\u4E49\u57DF\u540D",level:2},{value:"\u793A\u4F8B\uFF1A\u5B50\u57DF\u540D\u524D\u7F00",id:"\u793A\u4F8B\u5B50\u57DF\u540D\u524D\u7F00",level:2},{value:"\u53C2\u6570",id:"\u53C2\u6570",level:2}];function h(e){let n={code:"code",h1:"h1",h2:"h2",header:"header",li:"li",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,r.R)(),...e.components};return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(n.header,{children:(0,d.jsx)(n.h1,{id:"\u57DF\u540D",children:"\u57DF\u540D"})}),"\n",(0,d.jsxs)(n.p,{children:["\u6309\u57DF\u540D\u5C06\u8BBF\u5BA2\u6D41\u91CF\u8F6C\u53D1\u5230\u5BA2\u6237\u7AEF\u96A7\u9053\u3002\u670D\u52A1\u7AEF\u5F00\u542F ",(0,d.jsx)(n.code,{children:"httpGwPort"})," / ",(0,d.jsx)(n.code,{children:"httpsGwPort"})," \u540E\uFF0C\u5BA2\u6237\u7AEF\u7528 ",(0,d.jsx)(n.code,{children:"domains"})," \u7ED1\u5B9A\u57DF\u540D\u3002"]}),"\n",(0,d.jsxs)(n.p,{children:[(0,d.jsx)(n.code,{children:"domains"})," \u5BF9 http/https \u5FC5\u586B\u4E14\u975E\u7A7A\u3002\u89C4\u5219\uFF1A"]}),"\n",(0,d.jsxs)(n.ul,{children:["\n",(0,d.jsxs)(n.li,{children:["\u4E0D\u542B ",(0,d.jsx)(n.code,{children:"."})," \u7684\u77ED\u540D\u5B57\uFF08\u5982 ",(0,d.jsx)(n.code,{children:"blog"}),"\uFF09\u5F53\u4F5C\u5B50\u57DF\u524D\u7F00\uFF0C\u5C55\u5F00\u4E3A ",(0,d.jsx)(n.code,{children:"{\u524D\u7F00}.{rootDomain}"}),"\uFF08\u9700\u914D\u7F6E\u670D\u52A1\u7AEF ",(0,d.jsx)(n.code,{children:"rootDomain"}),"\uFF09"]}),"\n",(0,d.jsxs)(n.li,{children:["\u5E26 ",(0,d.jsx)(n.code,{children:"."})," \u7684\u5B8C\u6574\u57DF\u540D\uFF08\u5982 ",(0,d.jsx)(n.code,{children:"web.example.com"}),"\uFF09\uFF1A\u82E5\u5C5E\u4E8E ",(0,d.jsx)(n.code,{children:"rootDomain"})," \u6216\u5176\u5B50\u57DF\uFF0C\u6309\u539F\u6837\u4F7F\u7528\uFF1B\u5426\u5219\u5F53\u4F5C\u5916\u90E8\u81EA\u5B9A\u4E49\u57DF\u540D\uFF0C\u540C\u6837\u6309\u539F\u6837\u4F7F\u7528"]}),"\n",(0,d.jsx)(n.li,{children:"\u4E0D\u652F\u6301\u901A\u914D\u7B26"}),"\n"]}),"\n",(0,d.jsxs)(n.p,{children:[(0,d.jsx)(n.strong,{children:"\u7AEF\u53E3\u9694\u79BB\uFF1A"})," ",(0,d.jsx)(n.code,{children:"httpGwPort"})," / ",(0,d.jsx)(n.code,{children:"httpsGwPort"})," \u4E0D\u5F97\u4E0E\u63A7\u5236\u901A\u9053 ",(0,d.jsx)(n.code,{children:"listen"})," \u5728\u91CD\u53E0\u5730\u5740\u4E0A\u5171\u7528\uFF08",(0,d.jsx)(n.code,{children:"0.0.0.0"})," \u4E0E\u4EFB\u610F\u5730\u5740\u89C6\u4E3A\u91CD\u53E0\uFF09\u3002\u4E24\u8005\u4E5F\u4E0D\u5F97\u5F7C\u6B64\u76F8\u540C\u3002\u63A7\u5236\u9762\u4E0E\u8BBF\u5BA2\u6D41\u91CF\u4F7F\u7528\u72EC\u7ACB\u76D1\u542C\uFF0C\u4E0D\u5728\u5355\u7AEF\u53E3\u4E0A\u505A\u534F\u8BAE\u5206\u6D41\u3002"]}),"\n",(0,d.jsx)(n.h2,{id:"\u793A\u4F8B\u81EA\u5B9A\u4E49\u57DF\u540D",children:"\u793A\u4F8B\uFF1A\u81EA\u5B9A\u4E49\u57DF\u540D"}),"\n",(0,d.jsx)(n.p,{children:"\u670D\u52A1\u7AEF\uFF1A"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-toml",children:"# orbien-server.toml\nhttpGwPort = 80\nhttpsGwPort = 443\n"})}),"\n",(0,d.jsx)(n.p,{children:"\u5BA2\u6237\u7AEF\uFF1A"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-toml",children:'# orbien.toml\n[[tunnels]]\nname = "web"\nprotocol = "http"\nservice = "127.0.0.1:8080"\ndomains = ["web.example.com"]\n'})}),"\n",(0,d.jsxs)(n.p,{children:["\u5C06 ",(0,d.jsx)(n.code,{children:"web.example.com"})," \u89E3\u6790\u5230\u670D\u52A1\u7AEF IP \u540E\u8BBF\u95EE\u3002"]}),"\n",(0,d.jsx)(n.h2,{id:"\u793A\u4F8B\u5B50\u57DF\u540D\u524D\u7F00",children:"\u793A\u4F8B\uFF1A\u5B50\u57DF\u540D\u524D\u7F00"}),"\n",(0,d.jsx)(n.p,{children:"\u670D\u52A1\u7AEF\uFF1A"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-toml",children:'# orbien-server.toml\nhttpGwPort = 80\nrootDomain = "example.com"\n'})}),"\n",(0,d.jsx)(n.p,{children:"\u5BA2\u6237\u7AEF\uFF1A"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-toml",children:'# orbien.toml\n[[tunnels]]\nname = "web"\nprotocol = "http"\nservice = "127.0.0.1:8080"\ndomains = ["blog"]\n'})}),"\n",(0,d.jsxs)(n.p,{children:["\u8BBF\u95EE\u57DF\u540D\u4E3A ",(0,d.jsx)(n.code,{children:"blog.example.com"}),"\u3002\u4E5F\u53EF\u540C\u65F6\u5199\u524D\u7F00\u548C\u5B8C\u6574\u57DF\u540D\uFF0C\u4F8B\u5982 ",(0,d.jsx)(n.code,{children:'domains = ["web", "app.example.com"]'}),"\u3002"]}),"\n",(0,d.jsx)(n.h2,{id:"\u53C2\u6570",children:"\u53C2\u6570"}),"\n",(0,d.jsxs)(n.table,{children:[(0,d.jsx)(n.thead,{children:(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.th,{children:"\u53C2\u6570"}),(0,d.jsx)(n.th,{children:"\u5FC5\u586B"}),(0,d.jsx)(n.th,{children:"\u9ED8\u8BA4\u503C"}),(0,d.jsx)(n.th,{children:"\u8BF4\u660E"})]})}),(0,d.jsxs)(n.tbody,{children:[(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"httpGwPort"})}),(0,d.jsx)(n.td,{children:"\u5426"}),(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"0"})}),(0,d.jsxs)(n.td,{children:["HTTP \u7F51\u5173\u7AEF\u53E3\uFF1B",(0,d.jsx)(n.code,{children:"0"})," \u8868\u793A\u5173\u95ED\uFF1B\u4E0D\u5F97\u4E0E ",(0,d.jsx)(n.code,{children:"listen"})," \u51B2\u7A81"]})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"httpsGwPort"})}),(0,d.jsx)(n.td,{children:"\u5426"}),(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"0"})}),(0,d.jsxs)(n.td,{children:["HTTPS \u7F51\u5173\u7AEF\u53E3\uFF1B",(0,d.jsx)(n.code,{children:"0"})," \u8868\u793A\u5173\u95ED\uFF1B\u4E0D\u5F97\u4E0E ",(0,d.jsx)(n.code,{children:"listen"})," \u51B2\u7A81"]})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"rootDomain"})}),(0,d.jsx)(n.td,{children:"\u5426"}),(0,d.jsx)(n.td,{}),(0,d.jsxs)(n.td,{children:["\u6839\u57DF\uFF1B\u5BA2\u6237\u7AEF ",(0,d.jsx)(n.code,{children:"domains"})," \u4E2D\u65E0 ",(0,d.jsx)(n.code,{children:"."})," \u7684\u524D\u7F00\u4F1A\u62FC\u6210 ",(0,d.jsx)(n.code,{children:"\u524D\u7F00.\u6839\u57DF"})]})]})]})]})]})}function x(e={}){let{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,d.jsx)(n,{...e,children:(0,d.jsx)(h,{...e})}):h(e)}},7008(e,n,s){s.d(n,{R:()=>l,x:()=>i});var t=s(1763);let d={},r=t.createContext(d);function l(e){let n=t.useContext(r);return t.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function i(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(d):e.components||d:l(e.components),t.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/93234bd6.5645ce7a.js b/assets/js/93234bd6.5645ce7a.js deleted file mode 100644 index 9c0fae7..0000000 --- a/assets/js/93234bd6.5645ce7a.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkorbien_docs=self.webpackChunkorbien_docs||[]).push([["503"],{8036(e,n,r){r.r(n),r.d(n,{metadata:()=>o,default:()=>h,frontMatter:()=>l,contentTitle:()=>t,toc:()=>d,assets:()=>c});var o=JSON.parse('{"id":"docker","title":"Docker \u5B89\u88C5","description":"\u670D\u52A1\u7AEF","source":"@site/docs/docker.md","sourceDirName":".","slug":"/docker","permalink":"/orbien/docs/docker","draft":false,"unlisted":false,"editUrl":"https://github.com/orbien-org/orbien/tree/main/docs/docs/docker.md","tags":[],"version":"current","sidebarPosition":4,"frontMatter":{"sidebar_position":4,"sidebar_label":"Docker \u5B89\u88C5","title":"Docker \u5B89\u88C5"},"sidebar":"docsSidebar","previous":{"title":"\u5FEB\u901F\u5F00\u59CB","permalink":"/orbien/docs/quickstart"},"next":{"title":"TCP","permalink":"/orbien/docs/proxies/tcp"}}'),s=r(1987),i=r(7008);let l={sidebar_position:4,sidebar_label:"Docker \u5B89\u88C5",title:"Docker \u5B89\u88C5"},t="Docker \u5B89\u88C5",c={},d=[{value:"\u670D\u52A1\u7AEF",id:"\u670D\u52A1\u7AEF",level:2},{value:"\u65B9\u5F0F\u4E00\uFF1A\u914D\u7F6E\u6587\u4EF6\u542F\u52A8",id:"\u65B9\u5F0F\u4E00\u914D\u7F6E\u6587\u4EF6\u542F\u52A8",level:3},{value:"\u65B9\u5F0F\u4E8C\uFF1ACompose\u542F\u52A8",id:"\u65B9\u5F0F\u4E8Ccompose\u542F\u52A8",level:3},{value:"\u5BA2\u6237\u7AEF",id:"\u5BA2\u6237\u7AEF",level:2},{value:"\u6302\u8F7D\u914D\u7F6E",id:"\u6302\u8F7D\u914D\u7F6E",level:3},{value:"\u65B9\u5F0F\u4E00\uFF1A\u914D\u7F6E\u6587\u4EF6\u542F\u52A8",id:"\u65B9\u5F0F\u4E00\u914D\u7F6E\u6587\u4EF6\u542F\u52A8-1",level:3},{value:"\u65B9\u5F0F\u4E8C\uFF1ACompose\u542F\u52A8",id:"\u65B9\u5F0F\u4E8Ccompose\u542F\u52A8-1",level:3}];function a(e){let n={admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",hr:"hr",p:"p",pre:"pre",strong:"strong",...(0,i.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.header,{children:(0,s.jsx)(n.h1,{id:"docker-\u5B89\u88C5",children:"Docker \u5B89\u88C5"})}),"\n",(0,s.jsx)(n.h2,{id:"\u670D\u52A1\u7AEF",children:"\u670D\u52A1\u7AEF"}),"\n",(0,s.jsxs)(n.p,{children:["\u51C6\u5907 ",(0,s.jsx)(n.code,{children:"orbien-server.toml"}),"\uFF1A"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-toml",children:'bindAddr = "0.0.0.0"\nbindPort = 9527\n\n# \u53EF\u9009\uFF1A\u865A\u62DF\u4E3B\u673A\n# vhostHTTPPort = 80\n# vhostHTTPSPort = 443\n\n# \u53EF\u9009\uFF1A\u5BA2\u6237\u7AEF\u9274\u6743\n# [auth]\n# token = "YOUR_TOKEN"\n\n# \u53EF\u9009\uFF1AWeb \u7BA1\u7406\u9762\u677F\n[webServer]\naddr = "0.0.0.0"\nport = 8020\nuser = "admin"\npassword = "123456"\n'})}),"\n",(0,s.jsx)(n.admonition,{type:"warning",children:(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.code,{children:"webServer.addr"})," \u9700\u4E3A ",(0,s.jsx)(n.code,{children:"0.0.0.0"}),"\uFF0C\u5426\u5219\u5BBF\u4E3B\u673A\u65E0\u6CD5\u901A\u8FC7\u7AEF\u53E3\u6620\u5C04\u8BBF\u95EE\u7BA1\u7406\u9762\u677F"]})}),"\n",(0,s.jsx)(n.h3,{id:"\u65B9\u5F0F\u4E00\u914D\u7F6E\u6587\u4EF6\u542F\u52A8",children:"\u65B9\u5F0F\u4E00\uFF1A\u914D\u7F6E\u6587\u4EF6\u542F\u52A8"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-shell",children:'docker run -d --name orbien-server --restart unless-stopped \\\n -p 9527:9527 \\\n -p 8020:8020 \\\n -v "$PWD/orbien-server.toml:/etc/orbien/orbien-server.toml:ro" \\\n ghcr.io/orbien-org/orbien-server:latest\n'})}),"\n",(0,s.jsx)(n.h3,{id:"\u65B9\u5F0F\u4E8Ccompose\u542F\u52A8",children:"\u65B9\u5F0F\u4E8C\uFF1ACompose\u542F\u52A8"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-yaml",children:'# docker-compose.yaml\nservices:\n orbien-server:\n image: ghcr.io/orbien-org/orbien-server:latest\n container_name: orbien-server\n restart: unless-stopped\n ports:\n - "9527:9527"\n - "8020:8020"\n # - "80:80"\n # - "443:443"\n volumes:\n - ./orbien-server.toml:/etc/orbien/orbien-server.toml:ro\n'})}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-shell",children:"docker compose up -d\n"})}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h2,{id:"\u5BA2\u6237\u7AEF",children:"\u5BA2\u6237\u7AEF"}),"\n",(0,s.jsx)(n.h3,{id:"\u6302\u8F7D\u914D\u7F6E",children:"\u6302\u8F7D\u914D\u7F6E"}),"\n",(0,s.jsxs)(n.p,{children:["\u51C6\u5907 ",(0,s.jsx)(n.code,{children:"orbien.toml"}),"\uFF1A"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-toml",children:'serverAddr = "YOUR_SERVER_IP"\nserverPort = 9527\n\n# \u82E5\u670D\u52A1\u7AEF\u5F00\u542F\u4E86 Token\uFF0C\u9700\u4FDD\u6301\u4E00\u81F4\n# [auth]\n# token = "YOUR_TOKEN"\n\n[[proxies]]\nname = "mysql"\ntype = "tcp"\nlocalIP = "127.0.0.1"\nlocalPort = 3306\nremotePort = 6050\n'})}),"\n",(0,s.jsx)(n.h3,{id:"\u65B9\u5F0F\u4E00\u914D\u7F6E\u6587\u4EF6\u542F\u52A8-1",children:"\u65B9\u5F0F\u4E00\uFF1A\u914D\u7F6E\u6587\u4EF6\u542F\u52A8"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-shell",children:'docker run -d --name orbien --restart unless-stopped \\\n -v "$PWD/orbien.toml:/etc/orbien/orbien.toml:ro" \\\n ghcr.io/orbien-org/orbien:latest\n'})}),"\n",(0,s.jsx)(n.admonition,{type:"tip",children:(0,s.jsxs)(n.p,{children:["\u5BB9\u5668\u5185 ",(0,s.jsx)(n.code,{children:"127.0.0.1"})," \u662F\u5BB9\u5668\u81EA\u5DF1\u3002\u82E5\u8981\u7A7F\u900F",(0,s.jsx)(n.strong,{children:"\u5BBF\u4E3B\u673A"}),"\u4E0A\u7684\u670D\u52A1\uFF0C\u628A ",(0,s.jsx)(n.code,{children:"localIP"})," \u6539\u6210\u5BBF\u4E3B\u673A IP\uFF0C\u6216\u4F7F\u7528\u4E0B\u65B9 host \u7F51\u7EDC"]})}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"host \u7F51\u7EDC"})}),"\n",(0,s.jsxs)(n.p,{children:["\u4E0E\u5BBF\u4E3B\u673A\u5171\u7528\u7F51\u7EDC\uFF0C\u914D\u7F6E\u91CC\u53EF\u76F4\u63A5\u5199 ",(0,s.jsx)(n.code,{children:"127.0.0.1"})," \u8BBF\u95EE\u672C\u673A\u670D\u52A1\uFF1A"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-shell",children:'docker run -d --name orbien --restart unless-stopped \\\n --network host \\\n -v "$PWD/orbien.toml:/etc/orbien/orbien.toml:ro" \\\n ghcr.io/orbien-org/orbien:latest\n'})}),"\n",(0,s.jsx)(n.h3,{id:"\u65B9\u5F0F\u4E8Ccompose\u542F\u52A8-1",children:"\u65B9\u5F0F\u4E8C\uFF1ACompose\u542F\u52A8"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-yaml",children:"# docker-compose.yaml\nservices:\n orbien:\n image: ghcr.io/orbien-org/orbien:latest\n container_name: orbien\n restart: unless-stopped\n # network_mode: host\n volumes:\n - ./orbien.toml:/etc/orbien/orbien.toml:ro\n"})}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-shell",children:"docker compose up -d\n"})})]})}function h(e={}){let{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(a,{...e})}):a(e)}},7008(e,n,r){r.d(n,{R:()=>l,x:()=>t});var o=r(1763);let s={},i=o.createContext(s);function l(e){let n=o.useContext(i);return o.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function t(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:l(e.components),o.createElement(i.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/93234bd6.95f8ebc2.js b/assets/js/93234bd6.95f8ebc2.js new file mode 100644 index 0000000..f994959 --- /dev/null +++ b/assets/js/93234bd6.95f8ebc2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkorbien_docs=self.webpackChunkorbien_docs||[]).push([["503"],{8036(e,n,r){r.r(n),r.d(n,{metadata:()=>o,default:()=>h,frontMatter:()=>t,contentTitle:()=>l,toc:()=>d,assets:()=>c});var o=JSON.parse('{"id":"docker","title":"Docker \u5B89\u88C5","description":"\u670D\u52A1\u7AEF","source":"@site/docs/docker.md","sourceDirName":".","slug":"/docker","permalink":"/orbien/docs/docker","draft":false,"unlisted":false,"editUrl":"https://github.com/orbien-org/orbien/tree/main/docs/docs/docker.md","tags":[],"version":"current","sidebarPosition":4,"frontMatter":{"sidebar_position":4,"sidebar_label":"Docker \u5B89\u88C5","title":"Docker \u5B89\u88C5"},"sidebar":"docsSidebar","previous":{"title":"\u5FEB\u901F\u5F00\u59CB","permalink":"/orbien/docs/quickstart"},"next":{"title":"TCP","permalink":"/orbien/docs/tunnels/tcp"}}'),s=r(1987),i=r(7008);let t={sidebar_position:4,sidebar_label:"Docker \u5B89\u88C5",title:"Docker \u5B89\u88C5"},l="Docker \u5B89\u88C5",c={},d=[{value:"\u670D\u52A1\u7AEF",id:"\u670D\u52A1\u7AEF",level:2},{value:"\u65B9\u5F0F\u4E00\uFF1A\u914D\u7F6E\u6587\u4EF6\u542F\u52A8",id:"\u65B9\u5F0F\u4E00\u914D\u7F6E\u6587\u4EF6\u542F\u52A8",level:3},{value:"\u65B9\u5F0F\u4E8C\uFF1ACompose\u542F\u52A8",id:"\u65B9\u5F0F\u4E8Ccompose\u542F\u52A8",level:3},{value:"\u5BA2\u6237\u7AEF",id:"\u5BA2\u6237\u7AEF",level:2},{value:"\u6302\u8F7D\u914D\u7F6E",id:"\u6302\u8F7D\u914D\u7F6E",level:3},{value:"\u65B9\u5F0F\u4E00\uFF1A\u914D\u7F6E\u6587\u4EF6\u542F\u52A8",id:"\u65B9\u5F0F\u4E00\u914D\u7F6E\u6587\u4EF6\u542F\u52A8-1",level:3},{value:"\u65B9\u5F0F\u4E8C\uFF1ACompose\u542F\u52A8",id:"\u65B9\u5F0F\u4E8Ccompose\u542F\u52A8-1",level:3}];function a(e){let n={admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",hr:"hr",p:"p",pre:"pre",strong:"strong",...(0,i.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.header,{children:(0,s.jsx)(n.h1,{id:"docker-\u5B89\u88C5",children:"Docker \u5B89\u88C5"})}),"\n",(0,s.jsx)(n.h2,{id:"\u670D\u52A1\u7AEF",children:"\u670D\u52A1\u7AEF"}),"\n",(0,s.jsxs)(n.p,{children:["\u51C6\u5907 ",(0,s.jsx)(n.code,{children:"orbien-server.toml"}),"\uFF1A"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-toml",children:'listen = "0.0.0.0:9527"\n\n# \u53EF\u9009 \u901A\u8FC7\u57DF\u540D\u8DEF\u7531\n# httpGwPort = 80\n# httpsGwPort = 443\n\n# \u53EF\u9009\uFF1A\u5BA2\u6237\u7AEF\u9274\u6743\n# [auth]\n# token = "YOUR_TOKEN"\n\n# \u53EF\u9009\uFF1AWeb \u7BA1\u7406\u9762\u677F\n[dashboard]\naddr = "0.0.0.0"\nport = 8020\nuser = "admin"\npassword = "123456"\n'})}),"\n",(0,s.jsx)(n.admonition,{type:"warning",children:(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.code,{children:"dashboard.addr"})," \u9700\u4E3A ",(0,s.jsx)(n.code,{children:"0.0.0.0"}),"\uFF0C\u5426\u5219\u5BBF\u4E3B\u673A\u65E0\u6CD5\u901A\u8FC7\u7AEF\u53E3\u6620\u5C04\u8BBF\u95EE\u7BA1\u7406\u9762\u677F"]})}),"\n",(0,s.jsx)(n.h3,{id:"\u65B9\u5F0F\u4E00\u914D\u7F6E\u6587\u4EF6\u542F\u52A8",children:"\u65B9\u5F0F\u4E00\uFF1A\u914D\u7F6E\u6587\u4EF6\u542F\u52A8"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-shell",children:'docker run -d --name orbien-server --restart unless-stopped \\\n -p 9527:9527 \\\n -p 8020:8020 \\\n -v "$PWD/orbien-server.toml:/etc/orbien/orbien-server.toml:ro" \\\n ghcr.io/orbien-org/orbien-server:latest\n'})}),"\n",(0,s.jsx)(n.h3,{id:"\u65B9\u5F0F\u4E8Ccompose\u542F\u52A8",children:"\u65B9\u5F0F\u4E8C\uFF1ACompose\u542F\u52A8"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-yaml",children:'# docker-compose.yaml\nservices:\n orbien-server:\n image: ghcr.io/orbien-org/orbien-server:latest\n container_name: orbien-server\n restart: unless-stopped\n ports:\n - "9527:9527"\n - "8020:8020"\n # - "80:80"\n # - "443:443"\n volumes:\n - ./orbien-server.toml:/etc/orbien/orbien-server.toml:ro\n'})}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-shell",children:"docker compose up -d\n"})}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h2,{id:"\u5BA2\u6237\u7AEF",children:"\u5BA2\u6237\u7AEF"}),"\n",(0,s.jsx)(n.h3,{id:"\u6302\u8F7D\u914D\u7F6E",children:"\u6302\u8F7D\u914D\u7F6E"}),"\n",(0,s.jsxs)(n.p,{children:["\u51C6\u5907 ",(0,s.jsx)(n.code,{children:"orbien.toml"}),"\uFF1A"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-toml",children:'server = "YOUR_SERVER_IP:9527"\n\n# \u82E5\u670D\u52A1\u7AEF\u5F00\u542F\u4E86 Token\uFF0C\u9700\u4FDD\u6301\u4E00\u81F4\n# [auth]\n# token = "YOUR_TOKEN"\n\n[[tunnels]]\nname = "mysql"\nprotocol = "tcp"\nservice = "127.0.0.1:3306"\nremotePort = 9000\n'})}),"\n",(0,s.jsx)(n.h3,{id:"\u65B9\u5F0F\u4E00\u914D\u7F6E\u6587\u4EF6\u542F\u52A8-1",children:"\u65B9\u5F0F\u4E00\uFF1A\u914D\u7F6E\u6587\u4EF6\u542F\u52A8"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-shell",children:'docker run -d --name orbien --restart unless-stopped \\\n -v "$PWD/orbien.toml:/etc/orbien/orbien.toml:ro" \\\n ghcr.io/orbien-org/orbien:latest\n'})}),"\n",(0,s.jsx)(n.admonition,{type:"tip",children:(0,s.jsxs)(n.p,{children:["\u5BB9\u5668\u5185 ",(0,s.jsx)(n.code,{children:"127.0.0.1"})," \u662F\u5BB9\u5668\u81EA\u5DF1\u3002\u82E5\u8981\u7A7F\u900F",(0,s.jsx)(n.strong,{children:"\u5BBF\u4E3B\u673A"}),"\u4E0A\u7684\u670D\u52A1\uFF0C\u628A ",(0,s.jsx)(n.code,{children:"service"})," \u6539\u6210\u5BBF\u4E3B\u673A IP\uFF0C\u6216\u4F7F\u7528\u4E0B\u65B9 host \u7F51\u7EDC"]})}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"host \u7F51\u7EDC"})}),"\n",(0,s.jsxs)(n.p,{children:["\u4E0E\u5BBF\u4E3B\u673A\u5171\u7528\u7F51\u7EDC\uFF0C\u914D\u7F6E\u91CC\u53EF\u76F4\u63A5\u5199 ",(0,s.jsx)(n.code,{children:"127.0.0.1"})," \u8BBF\u95EE\u672C\u673A\u670D\u52A1\uFF1A"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-shell",children:'docker run -d --name orbien --restart unless-stopped \\\n --network host \\\n -v "$PWD/orbien.toml:/etc/orbien/orbien.toml:ro" \\\n ghcr.io/orbien-org/orbien:latest\n'})}),"\n",(0,s.jsx)(n.h3,{id:"\u65B9\u5F0F\u4E8Ccompose\u542F\u52A8-1",children:"\u65B9\u5F0F\u4E8C\uFF1ACompose\u542F\u52A8"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-yaml",children:"# docker-compose.yaml\nservices:\n orbien:\n image: ghcr.io/orbien-org/orbien:latest\n container_name: orbien\n restart: unless-stopped\n # network_mode: host\n volumes:\n - ./orbien.toml:/etc/orbien/orbien.toml:ro\n"})}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-shell",children:"docker compose up -d\n"})})]})}function h(e={}){let{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(a,{...e})}):a(e)}},7008(e,n,r){r.d(n,{R:()=>t,x:()=>l});var o=r(1763);let s={},i=o.createContext(s);function t(e){let n=o.useContext(i);return o.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:t(e.components),o.createElement(i.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/97658992.d0b6799d.js b/assets/js/97658992.d0b6799d.js new file mode 100644 index 0000000..6b0fa50 --- /dev/null +++ b/assets/js/97658992.d0b6799d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkorbien_docs=self.webpackChunkorbien_docs||[]).push([["69"],{2366(e,n,t){t.r(n),t.d(n,{metadata:()=>r,default:()=>h,frontMatter:()=>s,contentTitle:()=>l,toc:()=>o,assets:()=>c});var r=JSON.parse('{"id":"features/bandwidth","title":"\u5E26\u5BBD\u9650\u5236","description":"\u6309\u96A7\u9053\u9650\u5236\u8F6C\u53D1\u5E26\u5BBD\u3002\u914D\u7F6E\u5728 [[tunnels]] \u7684 transport \u4E0B\u3002","source":"@site/docs/features/bandwidth.md","sourceDirName":"features","slug":"/features/bandwidth","permalink":"/orbien/docs/features/bandwidth","draft":false,"unlisted":false,"editUrl":"https://github.com/orbien-org/orbien/tree/main/docs/docs/features/bandwidth.md","tags":[],"version":"current","sidebarPosition":4,"frontMatter":{"sidebar_position":4,"sidebar_label":"\u5E26\u5BBD\u9650\u5236","title":"\u5E26\u5BBD\u9650\u5236"},"sidebar":"docsSidebar","previous":{"title":"\u5BF9\u5916\u76D1\u542C\u5730\u5740","permalink":"/orbien/docs/features/public-bind"},"next":{"title":"\u83B7\u53D6\u771F\u5B9E IP","permalink":"/orbien/docs/features/real-ip"}}'),d=t(1987),i=t(7008);let s={sidebar_position:4,sidebar_label:"\u5E26\u5BBD\u9650\u5236",title:"\u5E26\u5BBD\u9650\u5236"},l="\u5E26\u5BBD\u9650\u5236",c={},o=[{value:"\u793A\u4F8B\uFF1A\u5BA2\u6237\u7AEF\u9650\u901F",id:"\u793A\u4F8B\u5BA2\u6237\u7AEF\u9650\u901F",level:2},{value:"\u793A\u4F8B\uFF1A\u670D\u52A1\u7AEF\u9650\u901F",id:"\u793A\u4F8B\u670D\u52A1\u7AEF\u9650\u901F",level:2},{value:"\u53C2\u6570",id:"\u53C2\u6570",level:2}];function a(e){let n={code:"code",h1:"h1",h2:"h2",header:"header",li:"li",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,i.R)(),...e.components};return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(n.header,{children:(0,d.jsx)(n.h1,{id:"\u5E26\u5BBD\u9650\u5236",children:"\u5E26\u5BBD\u9650\u5236"})}),"\n",(0,d.jsxs)(n.p,{children:["\u6309\u96A7\u9053\u9650\u5236\u8F6C\u53D1\u5E26\u5BBD\u3002\u914D\u7F6E\u5728 ",(0,d.jsx)(n.code,{children:"[[tunnels]]"})," \u7684 ",(0,d.jsx)(n.code,{children:"transport"})," \u4E0B\u3002"]}),"\n",(0,d.jsxs)(n.ul,{children:["\n",(0,d.jsxs)(n.li,{children:[(0,d.jsx)(n.code,{children:'bandwidthLimitSide = "client"'}),"\uFF1A\u5728\u5BA2\u6237\u7AEF\u9650\u901F\uFF08\u9ED8\u8BA4\uFF09"]}),"\n",(0,d.jsxs)(n.li,{children:[(0,d.jsx)(n.code,{children:'bandwidthLimitSide = "server"'}),"\uFF1A\u5728\u670D\u52A1\u7AEF\u9650\u901F"]}),"\n"]}),"\n",(0,d.jsxs)(n.p,{children:[(0,d.jsx)(n.code,{children:"bandwidth"})," \u4E3A\u6570\u5B57\uFF0C\u5355\u4F4D\u56FA\u5B9A\u4E3AMbps\uFF08\u5982 ",(0,d.jsx)(n.code,{children:"2"}),"\u3001",(0,d.jsx)(n.code,{children:"0.5"}),"\uFF09\u3002",(0,d.jsx)(n.code,{children:"0"})," \u8868\u793A\u4E0D\u9650\u5236\u3002"]}),"\n",(0,d.jsx)(n.h2,{id:"\u793A\u4F8B\u5BA2\u6237\u7AEF\u9650\u901F",children:"\u793A\u4F8B\uFF1A\u5BA2\u6237\u7AEF\u9650\u901F"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-toml",children:'# orbien.toml\n[[tunnels]]\nname = "web"\nprotocol = "tcp"\nservice = "127.0.0.1:80"\nremotePort = 9000\ntransport.bandwidth = 2\ntransport.bandwidthLimitSide = "client"\n'})}),"\n",(0,d.jsx)(n.h2,{id:"\u793A\u4F8B\u670D\u52A1\u7AEF\u9650\u901F",children:"\u793A\u4F8B\uFF1A\u670D\u52A1\u7AEF\u9650\u901F"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-toml",children:'# orbien.toml\n[[tunnels]]\nname = "web"\nprotocol = "tcp"\nservice = "127.0.0.1:80"\nremotePort = 9000\ntransport.bandwidth = 0.5\ntransport.bandwidthLimitSide = "server"\n'})}),"\n",(0,d.jsx)(n.h2,{id:"\u53C2\u6570",children:"\u53C2\u6570"}),"\n",(0,d.jsxs)(n.table,{children:[(0,d.jsx)(n.thead,{children:(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.th,{children:"\u53C2\u6570"}),(0,d.jsx)(n.th,{children:"\u5FC5\u586B"}),(0,d.jsx)(n.th,{children:"\u9ED8\u8BA4\u503C"}),(0,d.jsx)(n.th,{children:"\u8BF4\u660E"})]})}),(0,d.jsxs)(n.tbody,{children:[(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"transport.bandwidth"})}),(0,d.jsx)(n.td,{children:"\u5426"}),(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"0"})}),(0,d.jsxs)(n.td,{children:["\u5E26\u5BBD\u4E0A\u9650\uFF08Mbps\uFF09\uFF1B",(0,d.jsx)(n.code,{children:"0"})," \u8868\u793A\u4E0D\u9650\u5236"]})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"transport.bandwidthLimitSide"})}),(0,d.jsx)(n.td,{children:"\u5426"}),(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"client"})}),(0,d.jsxs)(n.td,{children:["\u9650\u901F\u7AEF\uFF1A",(0,d.jsx)(n.code,{children:"client"})," / ",(0,d.jsx)(n.code,{children:"server"})]})]})]})]})]})}function h(e={}){let{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,d.jsx)(n,{...e,children:(0,d.jsx)(a,{...e})}):a(e)}},7008(e,n,t){t.d(n,{R:()=>s,x:()=>l});var r=t(1763);let d={},i=r.createContext(d);function s(e){let n=r.useContext(i);return r.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(d):e.components||d:s(e.components),r.createElement(i.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/97658992.ef395c85.js b/assets/js/97658992.ef395c85.js deleted file mode 100644 index 7511c06..0000000 --- a/assets/js/97658992.ef395c85.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkorbien_docs=self.webpackChunkorbien_docs||[]).push([["69"],{2366(e,n,t){t.r(n),t.d(n,{metadata:()=>r,default:()=>h,frontMatter:()=>s,contentTitle:()=>l,toc:()=>c,assets:()=>o});var r=JSON.parse('{"id":"features/bandwidth","title":"\u5E26\u5BBD\u9650\u5236","description":"\u6309\u4EE3\u7406\u9650\u5236\u8F6C\u53D1\u5E26\u5BBD\u3002\u914D\u7F6E\u5728 [[proxies]] \u7684 transport \u4E0B\u3002","source":"@site/docs/features/bandwidth.md","sourceDirName":"features","slug":"/features/bandwidth","permalink":"/orbien/docs/features/bandwidth","draft":false,"unlisted":false,"editUrl":"https://github.com/orbien-org/orbien/tree/main/docs/docs/features/bandwidth.md","tags":[],"version":"current","sidebarPosition":4,"frontMatter":{"sidebar_position":4,"sidebar_label":"\u5E26\u5BBD\u9650\u5236","title":"\u5E26\u5BBD\u9650\u5236"},"sidebar":"docsSidebar","previous":{"title":"\u4EE3\u7406\u7ED1\u5B9A\u5730\u5740","permalink":"/orbien/docs/features/proxy-bind"},"next":{"title":"\u83B7\u53D6\u771F\u5B9E IP","permalink":"/orbien/docs/features/real-ip"}}'),d=t(1987),i=t(7008);let s={sidebar_position:4,sidebar_label:"\u5E26\u5BBD\u9650\u5236",title:"\u5E26\u5BBD\u9650\u5236"},l="\u5E26\u5BBD\u9650\u5236",o={},c=[{value:"\u793A\u4F8B\uFF1A\u5BA2\u6237\u7AEF\u9650\u901F",id:"\u793A\u4F8B\u5BA2\u6237\u7AEF\u9650\u901F",level:2},{value:"\u793A\u4F8B\uFF1A\u670D\u52A1\u7AEF\u9650\u901F",id:"\u793A\u4F8B\u670D\u52A1\u7AEF\u9650\u901F",level:2},{value:"\u53C2\u6570",id:"\u53C2\u6570",level:2}];function a(e){let n={code:"code",h1:"h1",h2:"h2",header:"header",li:"li",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,i.R)(),...e.components};return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(n.header,{children:(0,d.jsx)(n.h1,{id:"\u5E26\u5BBD\u9650\u5236",children:"\u5E26\u5BBD\u9650\u5236"})}),"\n",(0,d.jsxs)(n.p,{children:["\u6309\u4EE3\u7406\u9650\u5236\u8F6C\u53D1\u5E26\u5BBD\u3002\u914D\u7F6E\u5728 ",(0,d.jsx)(n.code,{children:"[[proxies]]"})," \u7684 ",(0,d.jsx)(n.code,{children:"transport"})," \u4E0B\u3002"]}),"\n",(0,d.jsxs)(n.ul,{children:["\n",(0,d.jsxs)(n.li,{children:[(0,d.jsx)(n.code,{children:'bandwidthLimitMode = "client"'}),"\uFF1A\u5728\u5BA2\u6237\u7AEF\u9650\u901F"]}),"\n",(0,d.jsxs)(n.li,{children:[(0,d.jsx)(n.code,{children:'bandwidthLimitMode = "server"'}),"\uFF1A\u5728\u670D\u52A1\u7AEF\u9650\u901F"]}),"\n"]}),"\n",(0,d.jsxs)(n.p,{children:["\u5355\u4F4D\u4EC5\u652F\u6301 ",(0,d.jsx)(n.code,{children:"KB"}),"\u3001",(0,d.jsx)(n.code,{children:"MB"}),"\uFF08\u5982 ",(0,d.jsx)(n.code,{children:"100KB"}),"\u3001",(0,d.jsx)(n.code,{children:"1MB"}),"\uFF09\u3002\u7559\u7A7A\u8868\u793A\u4E0D\u9650\u5236\u3002"]}),"\n",(0,d.jsx)(n.h2,{id:"\u793A\u4F8B\u5BA2\u6237\u7AEF\u9650\u901F",children:"\u793A\u4F8B\uFF1A\u5BA2\u6237\u7AEF\u9650\u901F"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-toml",children:'# orbien.toml\n[[proxies]]\nname = "web"\ntype = "tcp"\nlocalIP = "127.0.0.1"\nlocalPort = 80\nremotePort = 9000\ntransport.bandwidthLimit = "1MB"\ntransport.bandwidthLimitMode = "client"\n'})}),"\n",(0,d.jsx)(n.h2,{id:"\u793A\u4F8B\u670D\u52A1\u7AEF\u9650\u901F",children:"\u793A\u4F8B\uFF1A\u670D\u52A1\u7AEF\u9650\u901F"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-toml",children:'# orbien.toml\n[[proxies]]\nname = "web"\ntype = "tcp"\nlocalIP = "127.0.0.1"\nlocalPort = 80\nremotePort = 9000\ntransport.bandwidthLimit = "500KB"\ntransport.bandwidthLimitMode = "server"\n'})}),"\n",(0,d.jsx)(n.h2,{id:"\u53C2\u6570",children:"\u53C2\u6570"}),"\n",(0,d.jsxs)(n.table,{children:[(0,d.jsx)(n.thead,{children:(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.th,{children:"\u53C2\u6570"}),(0,d.jsx)(n.th,{children:"\u5FC5\u586B"}),(0,d.jsx)(n.th,{children:"\u9ED8\u8BA4\u503C"}),(0,d.jsx)(n.th,{children:"\u8BF4\u660E"})]})}),(0,d.jsxs)(n.tbody,{children:[(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"transport.bandwidthLimit"})}),(0,d.jsx)(n.td,{children:"\u5426"}),(0,d.jsx)(n.td,{}),(0,d.jsxs)(n.td,{children:["\u5E26\u5BBD\u4E0A\u9650\uFF0C\u5982 ",(0,d.jsx)(n.code,{children:"1MB"}),"\u3001",(0,d.jsx)(n.code,{children:"100KB"}),"\uFF1B\u7A7A\u8868\u793A\u4E0D\u9650\u5236"]})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"transport.bandwidthLimitMode"})}),(0,d.jsx)(n.td,{children:"\u5426"}),(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"client"})}),(0,d.jsxs)(n.td,{children:["\u9650\u901F\u7AEF\uFF1A",(0,d.jsx)(n.code,{children:"client"})," / ",(0,d.jsx)(n.code,{children:"server"})]})]})]})]})]})}function h(e={}){let{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,d.jsx)(n,{...e,children:(0,d.jsx)(a,{...e})}):a(e)}},7008(e,n,t){t.d(n,{R:()=>s,x:()=>l});var r=t(1763);let d={},i=r.createContext(d);function s(e){let n=r.useContext(i);return r.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(d):e.components||d:s(e.components),r.createElement(i.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/9a00739f.1101e6b4.js b/assets/js/9a00739f.1101e6b4.js new file mode 100644 index 0000000..99fb830 --- /dev/null +++ b/assets/js/9a00739f.1101e6b4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkorbien_docs=self.webpackChunkorbien_docs||[]).push([["795"],{9570(e,n,s){s.r(n),s.d(n,{metadata:()=>r,default:()=>x,frontMatter:()=>c,contentTitle:()=>i,toc:()=>o,assets:()=>l});var r=JSON.parse('{"id":"tunnels/tcp","title":"TCP","description":"\u5C06\u5185\u7F51 TCP \u670D\u52A1\u6620\u5C04\u5230\u670D\u52A1\u7AEF\u516C\u7F51\u7AEF\u53E3\u3002","source":"@site/docs/tunnels/tcp.md","sourceDirName":"tunnels","slug":"/tunnels/tcp","permalink":"/orbien/docs/tunnels/tcp","draft":false,"unlisted":false,"editUrl":"https://github.com/orbien-org/orbien/tree/main/docs/docs/tunnels/tcp.md","tags":[],"version":"current","sidebarPosition":1,"frontMatter":{"sidebar_position":1,"sidebar_label":"TCP","title":"TCP"},"sidebar":"docsSidebar","previous":{"title":"Docker \u5B89\u88C5","permalink":"/orbien/docs/docker"},"next":{"title":"UDP","permalink":"/orbien/docs/tunnels/udp"}}'),t=s(1987),d=s(7008);let c={sidebar_position:1,sidebar_label:"TCP",title:"TCP"},i="TCP",l={},o=[{value:"\u793A\u4F8B\uFF1A\u7A7F\u900F SSH",id:"\u793A\u4F8B\u7A7F\u900F-ssh",level:2},{value:"\u53C2\u6570",id:"\u53C2\u6570",level:2}];function h(e){let n={code:"code",h1:"h1",h2:"h2",header:"header",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,d.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.header,{children:(0,t.jsx)(n.h1,{id:"tcp",children:"TCP"})}),"\n",(0,t.jsx)(n.p,{children:"\u5C06\u5185\u7F51 TCP \u670D\u52A1\u6620\u5C04\u5230\u670D\u52A1\u7AEF\u516C\u7F51\u7AEF\u53E3\u3002"}),"\n",(0,t.jsx)(n.h2,{id:"\u793A\u4F8B\u7A7F\u900F-ssh",children:"\u793A\u4F8B\uFF1A\u7A7F\u900F SSH"}),"\n",(0,t.jsx)(n.p,{children:"\u670D\u52A1\u7AEF\uFF1A"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-toml",children:'# orbien-server.toml\nlisten = "0.0.0.0:9527"\n'})}),"\n",(0,t.jsx)(n.p,{children:"\u5BA2\u6237\u7AEF\uFF1A"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-toml",children:'# orbien.toml\nserver = "YOUR_SERVER_IP:9527"\n\n[[tunnels]]\nname = "ssh"\nprotocol = "tcp"\nservice = "127.0.0.1:22"\nremotePort = 9000\n'})}),"\n",(0,t.jsx)(n.p,{children:"\u5916\u7F51\u8BBF\u95EE\uFF1A"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-shell",children:"ssh -p 9000 user@YOUR_SERVER_IP\n"})}),"\n",(0,t.jsx)(n.h2,{id:"\u53C2\u6570",children:"\u53C2\u6570"}),"\n",(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"\u53C2\u6570"}),(0,t.jsx)(n.th,{children:"\u5FC5\u586B"}),(0,t.jsx)(n.th,{children:"\u9ED8\u8BA4\u503C"}),(0,t.jsx)(n.th,{children:"\u8BF4\u660E"})]})}),(0,t.jsxs)(n.tbody,{children:[(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"name"})}),(0,t.jsx)(n.td,{children:"\u662F"}),(0,t.jsx)(n.td,{}),(0,t.jsx)(n.td,{children:"\u96A7\u9053\u540D\u79F0\uFF0C\u552F\u4E00"})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"protocol"})}),(0,t.jsx)(n.td,{children:"\u662F"}),(0,t.jsx)(n.td,{}),(0,t.jsxs)(n.td,{children:["\u56FA\u5B9A\u4E3A ",(0,t.jsx)(n.code,{children:"tcp"})]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"service"})}),(0,t.jsx)(n.td,{children:"\u662F"}),(0,t.jsx)(n.td,{}),(0,t.jsxs)(n.td,{children:["\u672C\u5730\u670D\u52A1\u5730\u5740\uFF0C\u5982 ",(0,t.jsx)(n.code,{children:"127.0.0.1:22"})]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"remotePort"})}),(0,t.jsx)(n.td,{children:"\u662F"}),(0,t.jsx)(n.td,{}),(0,t.jsx)(n.td,{children:"\u670D\u52A1\u7AEF\u5BF9\u5916\u76D1\u542C\u7AEF\u53E3"})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"transport.bandwidth"})}),(0,t.jsx)(n.td,{children:"\u5426"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"0"})}),(0,t.jsxs)(n.td,{children:["\u5E26\u5BBD\u4E0A\u9650\uFF08Mbps\uFF09\uFF1B",(0,t.jsx)(n.code,{children:"0"})," \u8868\u793A\u4E0D\u9650\u5236"]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"transport.bandwidthLimitSide"})}),(0,t.jsx)(n.td,{children:"\u5426"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"client"})}),(0,t.jsxs)(n.td,{children:["\u9650\u901F\u7AEF\uFF1A",(0,t.jsx)(n.code,{children:"client"})," / ",(0,t.jsx)(n.code,{children:"server"})]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"transport.proxyProtocolVersion"})}),(0,t.jsx)(n.td,{children:"\u5426"}),(0,t.jsx)(n.td,{}),(0,t.jsxs)(n.td,{children:["PROXY Protocol\uFF1A",(0,t.jsx)(n.code,{children:"v1"})," / ",(0,t.jsx)(n.code,{children:"v2"})]})]})]})]})]})}function x(e={}){let{wrapper:n}={...(0,d.R)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(h,{...e})}):h(e)}},7008(e,n,s){s.d(n,{R:()=>c,x:()=>i});var r=s(1763);let t={},d=r.createContext(t);function c(e){let n=r.useContext(d);return r.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function i(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:c(e.components),r.createElement(d.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/9ca5d8d5.1fbdb43e.js b/assets/js/9ca5d8d5.1fbdb43e.js deleted file mode 100644 index e3e27fe..0000000 --- a/assets/js/9ca5d8d5.1fbdb43e.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkorbien_docs=self.webpackChunkorbien_docs||[]).push([["797"],{5638(e,s,d){d.r(s),d.d(s,{metadata:()=>n,default:()=>x,frontMatter:()=>i,contentTitle:()=>c,toc:()=>h,assets:()=>l});var n=JSON.parse('{"id":"proxies/https","title":"HTTPS","description":"\u901A\u8FC7\u57DF\u540D\u5C06\u5185\u7F51\u670D\u52A1\u66B4\u9732\u5230\u516C\u7F51\u3002\u670D\u52A1\u7AEF\u9700\u914D\u7F6E\u865A\u62DF\u4E3B\u673A\uFF0C\u89C1 \u865A\u62DF\u4E3B\u673A\u3002","source":"@site/docs/proxies/https.md","sourceDirName":"proxies","slug":"/proxies/https","permalink":"/orbien/docs/proxies/https","draft":false,"unlisted":false,"editUrl":"https://github.com/orbien-org/orbien/tree/main/docs/docs/proxies/https.md","tags":[],"version":"current","sidebarPosition":4,"frontMatter":{"sidebar_position":4,"sidebar_label":"HTTPS","title":"HTTPS"},"sidebar":"docsSidebar","previous":{"title":"HTTP","permalink":"/orbien/docs/proxies/http"},"next":{"title":"\u865A\u62DF\u4E3B\u673A","permalink":"/orbien/docs/proxies/vhost"}}'),r=d(1987),t=d(7008);let i={sidebar_position:4,sidebar_label:"HTTPS",title:"HTTPS"},c="HTTPS",l={},h=[{value:"\u793A\u4F8B\uFF1A\u900F\u4F20",id:"\u793A\u4F8B\u900F\u4F20",level:2},{value:"\u793A\u4F8B\uFF1ATLS \u7EC8\u6B62",id:"\u793A\u4F8Btls-\u7EC8\u6B62",level:2},{value:"\u53C2\u6570",id:"\u53C2\u6570",level:2}];function o(e){let s={a:"a",code:"code",h1:"h1",h2:"h2",header:"header",li:"li",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,t.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(s.header,{children:(0,r.jsx)(s.h1,{id:"https",children:"HTTPS"})}),"\n",(0,r.jsxs)(s.p,{children:["\u901A\u8FC7\u57DF\u540D\u5C06\u5185\u7F51\u670D\u52A1\u66B4\u9732\u5230\u516C\u7F51\u3002\u670D\u52A1\u7AEF\u9700\u914D\u7F6E\u865A\u62DF\u4E3B\u673A\uFF0C\u89C1 ",(0,r.jsx)(s.a,{href:"/orbien/docs/proxies/vhost",children:"\u865A\u62DF\u4E3B\u673A"}),"\u3002"]}),"\n",(0,r.jsx)(s.p,{children:"\u4E24\u79CD\u6A21\u5F0F\uFF1A"}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsxs)(s.li,{children:[(0,r.jsx)(s.strong,{children:"\u900F\u4F20"}),"\uFF1A\u6309 SNI \u8F6C\u53D1\uFF0C\u8BC1\u4E66\u5728\u5185\u7F51 HTTPS \u670D\u52A1\u4E0A"]}),"\n",(0,r.jsxs)(s.li,{children:[(0,r.jsx)(s.strong,{children:"TLS \u7EC8\u6B62"}),"\uFF1A\u5BA2\u6237\u7AEF\u63D2\u4EF6 ",(0,r.jsx)(s.code,{children:"https2http"})," \u7EC8\u6B62 TLS\uFF0C\u518D\u8F6C\u53D1\u5230\u672C\u5730 HTTP"]}),"\n"]}),"\n",(0,r.jsx)(s.h2,{id:"\u793A\u4F8B\u900F\u4F20",children:"\u793A\u4F8B\uFF1A\u900F\u4F20"}),"\n",(0,r.jsx)(s.p,{children:"\u670D\u52A1\u7AEF\uFF1A"}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-toml",children:'# orbien-server.toml\nbindAddr = "0.0.0.0"\nbindPort = 9527\nvhostHTTPSPort = 443\n'})}),"\n",(0,r.jsx)(s.p,{children:"\u5BA2\u6237\u7AEF\uFF1A"}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-toml",children:'# orbien.toml\nserverAddr = "YOUR_SERVER_IP"\nserverPort = 9527\n\n[[proxies]]\nname = "web-ssl"\ntype = "https"\nlocalIP = "127.0.0.1"\nlocalPort = 443\ncustomDomains = ["web.example.com"]\n'})}),"\n",(0,r.jsxs)(s.p,{children:["\u5C06 ",(0,r.jsx)(s.code,{children:"web.example.com"})," \u89E3\u6790\u5230\u670D\u52A1\u7AEF IP \u540E\u8BBF\u95EE\uFF1A"]}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-shell",children:"curl https://web.example.com\n"})}),"\n",(0,r.jsx)(s.h2,{id:"\u793A\u4F8Btls-\u7EC8\u6B62",children:"\u793A\u4F8B\uFF1ATLS \u7EC8\u6B62"}),"\n",(0,r.jsx)(s.p,{children:"\u5BA2\u6237\u7AEF\u7EC8\u6B62 TLS\uFF0C\u540E\u7AEF\u53EA\u9700\u63D0\u4F9B HTTP\uFF1A"}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-toml",children:'# orbien.toml\nserverAddr = "YOUR_SERVER_IP"\nserverPort = 9527\n\n[[proxies]]\nname = "web-ssl"\ntype = "https"\ncustomDomains = ["web.example.com"]\n\n[proxies.plugin]\ntype = "https2http"\nlocalAddr = "127.0.0.1:80"\ncrtPath = "/path/to/cert.pem"\nkeyPath = "/path/to/key.pem"\nhostHeaderRewrite = "127.0.0.1"\n\n[proxies.plugin.requestHeaders.set]\nX-From = "orbien"\n'})}),"\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.code,{children:"crtPath"})," / ",(0,r.jsx)(s.code,{children:"keyPath"})," \u53EF\u7701\u7565\uFF0C\u7701\u7565\u65F6\u4F7F\u7528\u4E34\u65F6\u81EA\u7B7E\u8BC1\u4E66\uFF08\u6D4F\u89C8\u5668\u4F1A\u63D0\u793A\u4E0D\u53D7\u4FE1\u4EFB\uFF09\u3002\u542F\u7528\u63D2\u4EF6\u540E\u4E0D\u518D\u4F7F\u7528 ",(0,r.jsx)(s.code,{children:"localIP"})," / ",(0,r.jsx)(s.code,{children:"localPort"}),"\n\uFF0C\u4E14\u4E0D\u53EF\u914D\u7F6E PROXY Protocol\u3002"]}),"\n",(0,r.jsx)(s.h2,{id:"\u53C2\u6570",children:"\u53C2\u6570"}),"\n",(0,r.jsxs)(s.table,{children:[(0,r.jsx)(s.thead,{children:(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.th,{children:"\u53C2\u6570"}),(0,r.jsx)(s.th,{children:"\u5FC5\u586B"}),(0,r.jsx)(s.th,{children:"\u9ED8\u8BA4\u503C"}),(0,r.jsx)(s.th,{children:"\u8BF4\u660E"})]})}),(0,r.jsxs)(s.tbody,{children:[(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)(s.code,{children:"name"})}),(0,r.jsx)(s.td,{children:"\u662F"}),(0,r.jsx)(s.td,{}),(0,r.jsx)(s.td,{children:"\u4EE3\u7406\u540D\u79F0\uFF0C\u552F\u4E00"})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)(s.code,{children:"type"})}),(0,r.jsx)(s.td,{children:"\u662F"}),(0,r.jsx)(s.td,{}),(0,r.jsxs)(s.td,{children:["\u56FA\u5B9A\u4E3A ",(0,r.jsx)(s.code,{children:"https"})]})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)(s.code,{children:"localIP"})}),(0,r.jsx)(s.td,{children:"\u5426"}),(0,r.jsx)(s.td,{children:(0,r.jsx)(s.code,{children:"127.0.0.1"})}),(0,r.jsx)(s.td,{children:"\u672C\u5730\u670D\u52A1\u5730\u5740\uFF08\u900F\u4F20\uFF09"})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)(s.code,{children:"localPort"})}),(0,r.jsx)(s.td,{children:"\u6761\u4EF6"}),(0,r.jsx)(s.td,{}),(0,r.jsx)(s.td,{children:"\u672C\u5730\u670D\u52A1\u7AEF\u53E3\uFF08\u900F\u4F20\u5FC5\u586B\uFF09"})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)(s.code,{children:"customDomains"})}),(0,r.jsx)(s.td,{children:"\u6761\u4EF6"}),(0,r.jsx)(s.td,{}),(0,r.jsxs)(s.td,{children:["\u81EA\u5B9A\u4E49\u57DF\u540D\uFF0C\u53EF\u591A\u4E2A\uFF1B\u4E0E ",(0,r.jsx)(s.code,{children:"subdomain"})," \u81F3\u5C11\u586B\u4E00\u9879"]})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)(s.code,{children:"subdomain"})}),(0,r.jsx)(s.td,{children:"\u6761\u4EF6"}),(0,r.jsx)(s.td,{}),(0,r.jsxs)(s.td,{children:["\u5B50\u57DF\u540D\u524D\u7F00\uFF0C\u4E0E\u670D\u52A1\u7AEF ",(0,r.jsx)(s.code,{children:"subDomainHost"})," \u62FC\u63A5\uFF1B\u4E0E ",(0,r.jsx)(s.code,{children:"customDomains"})," \u81F3\u5C11\u586B\u4E00\u9879"]})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)(s.code,{children:"plugin.type"})}),(0,r.jsx)(s.td,{children:"\u5426"}),(0,r.jsx)(s.td,{}),(0,r.jsxs)(s.td,{children:[(0,r.jsx)(s.code,{children:"https2http"}),"\uFF1A\u5BA2\u6237\u7AEF\u7EC8\u6B62 TLS"]})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)(s.code,{children:"plugin.localAddr"})}),(0,r.jsx)(s.td,{children:"\u6761\u4EF6"}),(0,r.jsx)(s.td,{}),(0,r.jsxs)(s.td,{children:["https2http \u65F6\u5FC5\u586B\uFF0C\u5982 ",(0,r.jsx)(s.code,{children:"127.0.0.1:80"})]})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)(s.code,{children:"plugin.crtPath"})}),(0,r.jsx)(s.td,{children:"\u5426"}),(0,r.jsx)(s.td,{}),(0,r.jsx)(s.td,{children:"\u8BC1\u4E66\u8DEF\u5F84\uFF1B\u7A7A\u5219\u4E34\u65F6\u81EA\u7B7E"})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)(s.code,{children:"plugin.keyPath"})}),(0,r.jsx)(s.td,{children:"\u5426"}),(0,r.jsx)(s.td,{}),(0,r.jsx)(s.td,{children:"\u79C1\u94A5\u8DEF\u5F84\uFF1B\u7A7A\u5219\u4E34\u65F6\u81EA\u7B7E"})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)(s.code,{children:"plugin.hostHeaderRewrite"})}),(0,r.jsx)(s.td,{children:"\u5426"}),(0,r.jsx)(s.td,{}),(0,r.jsx)(s.td,{children:"\u6539\u5199\u8F6C\u53D1\u5230\u672C\u5730\u670D\u52A1\u7684 Host\uFF1B\u7A7A\u8868\u793A\u4E0D\u6539"})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)(s.code,{children:"plugin.requestHeaders.set"})}),(0,r.jsx)(s.td,{children:"\u5426"}),(0,r.jsx)(s.td,{}),(0,r.jsx)(s.td,{children:"\u5411\u540E\u7AEF\u8FFD\u52A0\u8BF7\u6C42\u5934\uFF0C\u952E\u503C\u5BF9"})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)(s.code,{children:"transport.bandwidthLimit"})}),(0,r.jsx)(s.td,{children:"\u5426"}),(0,r.jsx)(s.td,{}),(0,r.jsxs)(s.td,{children:["\u5E26\u5BBD\u9650\u5236\uFF0C\u5982 ",(0,r.jsx)(s.code,{children:"1MB"}),"\u3001",(0,r.jsx)(s.code,{children:"100KB"}),"\uFF1B\u7A7A\u8868\u793A\u4E0D\u9650\u5236"]})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)(s.code,{children:"transport.bandwidthLimitMode"})}),(0,r.jsx)(s.td,{children:"\u5426"}),(0,r.jsx)(s.td,{children:(0,r.jsx)(s.code,{children:"client"})}),(0,r.jsxs)(s.td,{children:["\u9650\u901F\u7AEF\uFF1A",(0,r.jsx)(s.code,{children:"client"})," / ",(0,r.jsx)(s.code,{children:"server"})]})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)(s.code,{children:"transport.proxyProtocolVersion"})}),(0,r.jsx)(s.td,{children:"\u5426"}),(0,r.jsx)(s.td,{}),(0,r.jsxs)(s.td,{children:["PROXY Protocol\uFF1A",(0,r.jsx)(s.code,{children:"v1"})," / ",(0,r.jsx)(s.code,{children:"v2"}),"\uFF08https2http \u4E0D\u53EF\u7528\uFF09"]})]})]})]})]})}function x(e={}){let{wrapper:s}={...(0,t.R)(),...e.components};return s?(0,r.jsx)(s,{...e,children:(0,r.jsx)(o,{...e})}):o(e)}},7008(e,s,d){d.d(s,{R:()=>i,x:()=>c});var n=d(1763);let r={},t=n.createContext(r);function i(e){let s=n.useContext(t);return n.useMemo(function(){return"function"==typeof e?e(s):{...s,...e}},[s,e])}function c(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:i(e.components),n.createElement(t.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/ab38dbfe.250a4996.js b/assets/js/ab38dbfe.250a4996.js new file mode 100644 index 0000000..04e6106 --- /dev/null +++ b/assets/js/ab38dbfe.250a4996.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkorbien_docs=self.webpackChunkorbien_docs||[]).push([["267"],{3095(e,r,n){n.r(r),n.d(r,{metadata:()=>d,default:()=>x,frontMatter:()=>i,contentTitle:()=>c,toc:()=>o,assets:()=>l});var d=JSON.parse('{"id":"features/public-bind","title":"\u5BF9\u5916\u76D1\u542C\u5730\u5740","description":"\u670D\u52A1\u7AEF\u6709\u4E24\u7C7B\u76D1\u542C\uFF1A","source":"@site/docs/features/public-bind.md","sourceDirName":"features","slug":"/features/public-bind","permalink":"/orbien/docs/features/public-bind","draft":false,"unlisted":false,"editUrl":"https://github.com/orbien-org/orbien/tree/main/docs/docs/features/public-bind.md","tags":[],"version":"current","sidebarPosition":3,"frontMatter":{"sidebar_position":3,"sidebar_label":"\u5BF9\u5916\u76D1\u542C\u5730\u5740","title":"\u5BF9\u5916\u76D1\u542C\u5730\u5740"},"sidebar":"docsSidebar","previous":{"title":"\u7BA1\u7406\u754C\u9762","permalink":"/orbien/docs/features/dashboard"},"next":{"title":"\u5E26\u5BBD\u9650\u5236","permalink":"/orbien/docs/features/bandwidth"}}'),s=n(1987),t=n(7008);let i={sidebar_position:3,sidebar_label:"\u5BF9\u5916\u76D1\u542C\u5730\u5740",title:"\u5BF9\u5916\u76D1\u542C\u5730\u5740"},c="\u5BF9\u5916\u76D1\u542C\u5730\u5740",l={},o=[{value:"\u793A\u4F8B",id:"\u793A\u4F8B",level:2},{value:"\u53C2\u6570",id:"\u53C2\u6570",level:2}];function h(e){let r={code:"code",h1:"h1",h2:"h2",header:"header",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,t.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(r.header,{children:(0,s.jsx)(r.h1,{id:"\u5BF9\u5916\u76D1\u542C\u5730\u5740",children:"\u5BF9\u5916\u76D1\u542C\u5730\u5740"})}),"\n",(0,s.jsx)(r.p,{children:"\u670D\u52A1\u7AEF\u6709\u4E24\u7C7B\u76D1\u542C\uFF1A"}),"\n",(0,s.jsxs)(r.table,{children:[(0,s.jsx)(r.thead,{children:(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.th,{children:"\u7528\u9014"}),(0,s.jsx)(r.th,{children:"\u914D\u7F6E"}),(0,s.jsx)(r.th,{children:"\u8C01\u8FDE"})]})}),(0,s.jsxs)(r.tbody,{children:[(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:"\u63A7\u5236\u901A\u9053"}),(0,s.jsxs)(r.td,{children:[(0,s.jsx)(r.code,{children:"listen"}),"\uFF08\u4EE5\u53CA ",(0,s.jsx)(r.code,{children:"quicPort"})," / ",(0,s.jsx)(r.code,{children:"kcpPort"}),"\uFF09"]}),(0,s.jsxs)(r.td,{children:[(0,s.jsx)(r.strong,{children:"\u5BA2\u6237\u7AEF"})," orbien \u8FDE\u4E0A\u6765\u5EFA\u96A7\u9053"]})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:"\u5BF9\u5916\u6D41\u91CF"}),(0,s.jsxs)(r.td,{children:[(0,s.jsx)(r.code,{children:"proxyAddr"})," + ",(0,s.jsx)(r.code,{children:"remotePort"})," / ",(0,s.jsx)(r.code,{children:"httpGwPort"})," / ",(0,s.jsx)(r.code,{children:"httpsGwPort"})]}),(0,s.jsxs)(r.td,{children:[(0,s.jsx)(r.strong,{children:"\u516C\u7F51\u8BBF\u5BA2"})," \u8BBF\u95EE\u4F60\u7A7F\u900F\u51FA\u53BB\u7684\u670D\u52A1"]})]})]})]}),"\n",(0,s.jsxs)(r.p,{children:[(0,s.jsx)(r.code,{children:"proxyAddr"})," \u51B3\u5B9A\u8BBF\u5BA2\u6D41\u91CF\u7ED1\u5728\u54EA\u5F20\u7F51\u5361 / \u54EA\u4E2A\u5730\u5740\u4E0A\uFF0C\u4E0E\u5BA2\u6237\u7AEF\u8FDE\u54EA\u65E0\u5173\u3002\u914D\u7F6E\u952E\u540D\u6CBF\u7528 ",(0,s.jsx)(r.code,{children:"proxyAddr"}),"\uFF0C\u8BED\u4E49\u662F",(0,s.jsx)(r.strong,{children:"\u5BF9\u5916\u76D1\u542C\u5730\u5740"}),"\u3002"]}),"\n",(0,s.jsx)(r.p,{children:"\u5178\u578B\u573A\u666F\uFF1A\u673A\u5668\u591A\u7F51\u5361\u65F6\uFF0C\u63A7\u5236\u901A\u9053\u53EA\u542C\u5185\u7F51\uFF0C\u5BF9\u5916\u76D1\u542C\u53EA\u6302\u516C\u7F51 IP\uFF1B\u6216\u53CD\u8FC7\u6765\u9694\u79BB\u7BA1\u7406\u9762\u4E0E\u4E1A\u52A1\u9762\u3002"}),"\n",(0,s.jsxs)(r.p,{children:["\u9ED8\u8BA4 ",(0,s.jsx)(r.code,{children:"0.0.0.0"}),"\uFF08\u6240\u6709\u7F51\u5361\uFF09\u3002\u7559\u7A7A\u5219\u56DE\u9000\u4E3A ",(0,s.jsx)(r.code,{children:"listen"})," \u7684\u4E3B\u673A\u90E8\u5206\u3002"]}),"\n",(0,s.jsx)(r.h2,{id:"\u793A\u4F8B",children:"\u793A\u4F8B"}),"\n",(0,s.jsx)(r.p,{children:"\u63A7\u5236\u901A\u9053\u4E0E\u5BF9\u5916\u76D1\u542C\u90FD\u5BF9\u6240\u6709\u7F51\u5361\u5F00\u653E\uFF08\u9ED8\u8BA4\u884C\u4E3A\uFF09\uFF1A"}),"\n",(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{className:"language-toml",children:'# orbien-server.toml\nlisten = "0.0.0.0:9527"\nproxyAddr = "0.0.0.0"\n'})}),"\n",(0,s.jsx)(r.p,{children:"\u4EC5\u5728\u516C\u7F51\u7F51\u5361\u4E0A\u5BF9\u5916\u63D0\u4F9B\u670D\u52A1\uFF08\u793A\u4F8B IP\uFF09\uFF1A"}),"\n",(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{className:"language-toml",children:'# orbien-server.toml\nlisten = "10.0.0.2:9527"\nproxyAddr = "203.0.113.10"\n'})}),"\n",(0,s.jsxs)(r.p,{children:["\u6B64\u65F6\u5BA2\u6237\u7AEF\u8FDE ",(0,s.jsx)(r.code,{children:"10.0.0.2:9527"}),"\uFF1B\u8BBF\u5BA2\u8BBF\u95EE ",(0,s.jsx)(r.code,{children:"203.0.113.10"})," \u4E0A\u7684 ",(0,s.jsx)(r.code,{children:"remotePort"})," / ",(0,s.jsx)(r.code,{children:"httpGwPort"})," / ",(0,s.jsx)(r.code,{children:"httpsGwPort"}),"\u3002"]}),"\n",(0,s.jsx)(r.h2,{id:"\u53C2\u6570",children:"\u53C2\u6570"}),"\n",(0,s.jsxs)(r.table,{children:[(0,s.jsx)(r.thead,{children:(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.th,{children:"\u53C2\u6570"}),(0,s.jsx)(r.th,{children:"\u5FC5\u586B"}),(0,s.jsx)(r.th,{children:"\u9ED8\u8BA4\u503C"}),(0,s.jsx)(r.th,{children:"\u8BF4\u660E"})]})}),(0,s.jsx)(r.tbody,{children:(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:(0,s.jsx)(r.code,{children:"proxyAddr"})}),(0,s.jsx)(r.td,{children:"\u5426"}),(0,s.jsx)(r.td,{children:(0,s.jsx)(r.code,{children:"0.0.0.0"})}),(0,s.jsxs)(r.td,{children:["\u5BF9\u5916\u76D1\u542C\u5730\u5740\uFF1B\u7A7A\u5219\u56DE\u9000\u4E3A ",(0,s.jsx)(r.code,{children:"listen"})," \u7684\u4E3B\u673A\u90E8\u5206"]})]})})]})]})}function x(e={}){let{wrapper:r}={...(0,t.R)(),...e.components};return r?(0,s.jsx)(r,{...e,children:(0,s.jsx)(h,{...e})}):h(e)}},7008(e,r,n){n.d(r,{R:()=>i,x:()=>c});var d=n(1763);let s={},t=d.createContext(s);function i(e){let r=d.useContext(t);return d.useMemo(function(){return"function"==typeof e?e(r):{...r,...e}},[r,e])}function c(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:i(e.components),d.createElement(t.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/b2d27f24.8315e086.js b/assets/js/b2d27f24.8315e086.js new file mode 100644 index 0000000..5c53d0c --- /dev/null +++ b/assets/js/b2d27f24.8315e086.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkorbien_docs=self.webpackChunkorbien_docs||[]).push([["817"],{9936(e,n,s){s.r(n),s.d(n,{metadata:()=>t,default:()=>x,frontMatter:()=>l,contentTitle:()=>c,toc:()=>h,assets:()=>i});var t=JSON.parse('{"id":"tunnels/https","title":"HTTPS","description":"\u901A\u8FC7\u57DF\u540D\u5C06\u5185\u7F51\u670D\u52A1\u66B4\u9732\u5230\u516C\u7F51\u3002\u670D\u52A1\u7AEF\u9700\u5F00\u542F\u57DF\u540D\u5165\u53E3\uFF0C\u89C1 \u57DF\u540D\u3002","source":"@site/docs/tunnels/https.md","sourceDirName":"tunnels","slug":"/tunnels/https","permalink":"/orbien/docs/tunnels/https","draft":false,"unlisted":false,"editUrl":"https://github.com/orbien-org/orbien/tree/main/docs/docs/tunnels/https.md","tags":[],"version":"current","sidebarPosition":4,"frontMatter":{"sidebar_position":4,"sidebar_label":"HTTPS","title":"HTTPS"},"sidebar":"docsSidebar","previous":{"title":"HTTP","permalink":"/orbien/docs/tunnels/http"},"next":{"title":"\u57DF\u540D","permalink":"/orbien/docs/tunnels/domains"}}'),d=s(1987),r=s(7008);let l={sidebar_position:4,sidebar_label:"HTTPS",title:"HTTPS"},c="HTTPS",i={},h=[{value:"\u793A\u4F8B\uFF1A\u900F\u4F20",id:"\u793A\u4F8B\u900F\u4F20",level:2},{value:"\u793A\u4F8B\uFF1ATLS \u7EC8\u6B62",id:"\u793A\u4F8Btls-\u7EC8\u6B62",level:2},{value:"\u793A\u4F8B\uFF1ATLS \u7EC8\u6B62\u65F6\u6539\u5199 Host",id:"\u793A\u4F8Btls-\u7EC8\u6B62\u65F6\u6539\u5199-host",level:2},{value:"\u793A\u4F8B\uFF1ATLS \u7EC8\u6B62\u65F6\u8FFD\u52A0\u8BF7\u6C42\u5934",id:"\u793A\u4F8Btls-\u7EC8\u6B62\u65F6\u8FFD\u52A0\u8BF7\u6C42\u5934",level:2},{value:"\u53C2\u6570",id:"\u53C2\u6570",level:2}];function o(e){let n={a:"a",code:"code",h1:"h1",h2:"h2",header:"header",li:"li",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,r.R)(),...e.components};return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(n.header,{children:(0,d.jsx)(n.h1,{id:"https",children:"HTTPS"})}),"\n",(0,d.jsxs)(n.p,{children:["\u901A\u8FC7\u57DF\u540D\u5C06\u5185\u7F51\u670D\u52A1\u66B4\u9732\u5230\u516C\u7F51\u3002\u670D\u52A1\u7AEF\u9700\u5F00\u542F\u57DF\u540D\u5165\u53E3\uFF0C\u89C1 ",(0,d.jsx)(n.a,{href:"/orbien/docs/tunnels/domains",children:"\u57DF\u540D"}),"\u3002"]}),"\n",(0,d.jsxs)(n.p,{children:[(0,d.jsx)(n.code,{children:"domains"})," \u5FC5\u586B\u4E14\u975E\u7A7A\uFF1A\u53EF\u5199\u5B8C\u6574\u57DF\u540D\uFF08\u5982 ",(0,d.jsx)(n.code,{children:"web.example.com"}),"\uFF09\uFF0C\u6216\u65E0 ",(0,d.jsx)(n.code,{children:"."})," \u7684\u77ED\u524D\u7F00\uFF08\u5982 ",(0,d.jsx)(n.code,{children:"web"}),"\uFF0C\u9700\u670D\u52A1\u7AEF ",(0,d.jsx)(n.code,{children:"rootDomain"}),"\uFF09\u3002\u4E0D\u652F\u6301\u901A\u914D\u7B26\u3002"]}),"\n",(0,d.jsx)(n.p,{children:"\u4E24\u79CD\u6A21\u5F0F\uFF1A"}),"\n",(0,d.jsxs)(n.ul,{children:["\n",(0,d.jsxs)(n.li,{children:[(0,d.jsx)(n.strong,{children:"\u900F\u4F20"}),"\uFF1A\u6309 SNI \u8F6C\u53D1\uFF0C\u8BC1\u4E66\u5728\u5185\u7F51 HTTPS \u670D\u52A1\u4E0A"]}),"\n",(0,d.jsxs)(n.li,{children:[(0,d.jsx)(n.strong,{children:"TLS \u7EC8\u6B62"}),"\uFF1A\u5BA2\u6237\u7AEF\u63D2\u4EF6 ",(0,d.jsx)(n.code,{children:"tls-term"})," \u7EC8\u6B62 TLS\uFF0C\u518D\u8F6C\u53D1\u5230\u672C\u5730 HTTP\u670D\u52A1"]}),"\n"]}),"\n",(0,d.jsx)(n.h2,{id:"\u793A\u4F8B\u900F\u4F20",children:"\u793A\u4F8B\uFF1A\u900F\u4F20"}),"\n",(0,d.jsx)(n.p,{children:"\u670D\u52A1\u7AEF\uFF1A"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-toml",children:'# orbien-server.toml\nlisten = "0.0.0.0:9527"\nhttpsGwPort = 443\n'})}),"\n",(0,d.jsx)(n.p,{children:"\u5BA2\u6237\u7AEF\uFF1A"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-toml",children:'# orbien.toml\nserver = "YOUR_SERVER_IP:9527"\n\n[[tunnels]]\nname = "web-ssl"\nprotocol = "https"\nservice = "127.0.0.1:443"\ndomains = ["web.example.com"]\n'})}),"\n",(0,d.jsxs)(n.p,{children:["\u5C06 ",(0,d.jsx)(n.code,{children:"web.example.com"})," \u89E3\u6790\u5230\u670D\u52A1\u7AEF IP \u540E\u8BBF\u95EE\uFF1A"]}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-shell",children:"curl https://web.example.com\n"})}),"\n",(0,d.jsx)(n.h2,{id:"\u793A\u4F8Btls-\u7EC8\u6B62",children:"\u793A\u4F8B\uFF1ATLS \u7EC8\u6B62"}),"\n",(0,d.jsx)(n.p,{children:"\u5BA2\u6237\u7AEF\u7EC8\u6B62 TLS\uFF0C\u540E\u7AEF\u53EA\u9700\u63D0\u4F9B HTTP\uFF1A"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-toml",children:'# orbien.toml\nserver = "YOUR_SERVER_IP:9527"\n\n[[tunnels]]\nname = "https-term"\nprotocol = "https"\ndomains = ["web.example.com"]\n\n[tunnels.plugin]\ntype = "tls-term"\nservice = "127.0.0.1:80"\ncertFile = "/path/to/cert.pem"\nkeyFile = "/path/to/key.pem"\n'})}),"\n",(0,d.jsxs)(n.p,{children:[(0,d.jsx)(n.code,{children:"certFile"})," / ",(0,d.jsx)(n.code,{children:"keyFile"})," \u53EF\u7701\u7565\uFF0C\u7701\u7565\u65F6\u4F7F\u7528\u4E34\u65F6\u81EA\u7B7E\u8BC1\u4E66\uFF08\u6D4F\u89C8\u5668\u4F1A\u63D0\u793A\u4E0D\u53D7\u4FE1\u4EFB\uFF09\u3002\u542F\u7528\u63D2\u4EF6\u540E\u4F7F\u7528 ",(0,d.jsx)(n.code,{children:"plugin.service"})," \u6307\u5411\u672C\u5730 HTTP\uFF0C\u4E0D\u518D\u4F7F\u7528\u96A7\u9053\u7EA7 ",(0,d.jsx)(n.code,{children:"service"}),"\uFF0C\u4E14\u4E0D\u53EF\u914D\u7F6E PROXY Protocol\u3002"]}),"\n",(0,d.jsx)(n.h2,{id:"\u793A\u4F8Btls-\u7EC8\u6B62\u65F6\u6539\u5199-host",children:"\u793A\u4F8B\uFF1ATLS \u7EC8\u6B62\u65F6\u6539\u5199 Host"}),"\n",(0,d.jsxs)(n.p,{children:["\u5728 ",(0,d.jsx)(n.code,{children:"tls-term"})," \u4E0B\uFF0C\u8F6C\u53D1\u5230\u672C\u5730 HTTP \u524D\u6539\u5199 ",(0,d.jsx)(n.code,{children:"Host"}),"\uFF1A"]}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-toml",children:'[[tunnels]]\nname = "https-term"\nprotocol = "https"\ndomains = ["web.example.com"]\n\n[tunnels.plugin]\ntype = "tls-term"\nservice = "127.0.0.1:80"\ncertFile = "/path/to/cert.pem"\nkeyFile = "/path/to/key.pem"\nhostHeaderRewrite = "127.0.0.1"\n'})}),"\n",(0,d.jsx)(n.h2,{id:"\u793A\u4F8Btls-\u7EC8\u6B62\u65F6\u8FFD\u52A0\u8BF7\u6C42\u5934",children:"\u793A\u4F8B\uFF1ATLS \u7EC8\u6B62\u65F6\u8FFD\u52A0\u8BF7\u6C42\u5934"}),"\n",(0,d.jsxs)(n.p,{children:["\u5728 ",(0,d.jsx)(n.code,{children:"tls-term"})," \u4E0B\uFF0C\u5411\u672C\u5730 HTTP \u8FFD\u52A0\u81EA\u5B9A\u4E49\u8BF7\u6C42\u5934\uFF1A"]}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-toml",children:'[[tunnels]]\nname = "https-term"\nprotocol = "https"\ndomains = ["web.example.com"]\n\n[tunnels.plugin]\ntype = "tls-term"\nservice = "127.0.0.1:80"\ncertFile = "/path/to/cert.pem"\nkeyFile = "/path/to/key.pem"\n\n[tunnels.plugin.requestHeaders.set]\nX-From = "orbien"\n'})}),"\n",(0,d.jsx)(n.h2,{id:"\u53C2\u6570",children:"\u53C2\u6570"}),"\n",(0,d.jsxs)(n.table,{children:[(0,d.jsx)(n.thead,{children:(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.th,{children:"\u53C2\u6570"}),(0,d.jsx)(n.th,{children:"\u5FC5\u586B"}),(0,d.jsx)(n.th,{children:"\u9ED8\u8BA4\u503C"}),(0,d.jsx)(n.th,{children:"\u8BF4\u660E"})]})}),(0,d.jsxs)(n.tbody,{children:[(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"name"})}),(0,d.jsx)(n.td,{children:"\u662F"}),(0,d.jsx)(n.td,{}),(0,d.jsx)(n.td,{children:"\u96A7\u9053\u540D\u79F0\uFF0C\u552F\u4E00"})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"protocol"})}),(0,d.jsx)(n.td,{children:"\u662F"}),(0,d.jsx)(n.td,{}),(0,d.jsxs)(n.td,{children:["\u56FA\u5B9A\u4E3A ",(0,d.jsx)(n.code,{children:"https"})]})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"service"})}),(0,d.jsx)(n.td,{children:"\u6761\u4EF6"}),(0,d.jsx)(n.td,{}),(0,d.jsxs)(n.td,{children:["\u672C\u5730\u670D\u52A1\u5730\u5740\uFF08\u900F\u4F20\u5FC5\u586B\uFF09\uFF0C\u5982 ",(0,d.jsx)(n.code,{children:"127.0.0.1:443"})]})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"domains"})}),(0,d.jsx)(n.td,{children:"\u662F"}),(0,d.jsx)(n.td,{}),(0,d.jsxs)(n.td,{children:["\u57DF\u540D\u5217\u8868\uFF0C\u81F3\u5C11\u4E00\u4E2A\uFF1B\u5B8C\u6574\u57DF\u540D\u6216\u65E0 ",(0,d.jsx)(n.code,{children:"."})," \u7684\u524D\u7F00\uFF08\u524D\u7F00\u9700\u670D\u52A1\u7AEF ",(0,d.jsx)(n.code,{children:"rootDomain"}),"\uFF09"]})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"plugin.type"})}),(0,d.jsx)(n.td,{children:"\u5426"}),(0,d.jsx)(n.td,{}),(0,d.jsxs)(n.td,{children:[(0,d.jsx)(n.code,{children:"tls-term"}),"\uFF1A\u5BA2\u6237\u7AEF\u7EC8\u6B62 TLS"]})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"plugin.service"})}),(0,d.jsx)(n.td,{children:"\u6761\u4EF6"}),(0,d.jsx)(n.td,{}),(0,d.jsxs)(n.td,{children:[(0,d.jsx)(n.code,{children:"tls-term"})," \u65F6\u5FC5\u586B\uFF0C\u5982 ",(0,d.jsx)(n.code,{children:"127.0.0.1:80"})]})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"plugin.certFile"})}),(0,d.jsx)(n.td,{children:"\u5426"}),(0,d.jsx)(n.td,{}),(0,d.jsx)(n.td,{children:"\u8BC1\u4E66\u8DEF\u5F84\uFF1B\u7A7A\u5219\u4E34\u65F6\u81EA\u7B7E"})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"plugin.keyFile"})}),(0,d.jsx)(n.td,{children:"\u5426"}),(0,d.jsx)(n.td,{}),(0,d.jsx)(n.td,{children:"\u79C1\u94A5\u8DEF\u5F84\uFF1B\u7A7A\u5219\u4E34\u65F6\u81EA\u7B7E"})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"plugin.hostHeaderRewrite"})}),(0,d.jsx)(n.td,{children:"\u5426"}),(0,d.jsx)(n.td,{}),(0,d.jsx)(n.td,{children:"\u6539\u5199\u8F6C\u53D1\u5230\u672C\u5730\u670D\u52A1\u7684 Host\uFF1B\u7A7A\u8868\u793A\u4E0D\u6539"})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"plugin.requestHeaders.set"})}),(0,d.jsx)(n.td,{children:"\u5426"}),(0,d.jsx)(n.td,{}),(0,d.jsx)(n.td,{children:"\u5411\u540E\u7AEF\u8FFD\u52A0\u8BF7\u6C42\u5934\uFF0C\u952E\u503C\u5BF9"})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"transport.bandwidth"})}),(0,d.jsx)(n.td,{children:"\u5426"}),(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"0"})}),(0,d.jsxs)(n.td,{children:["\u5E26\u5BBD\u4E0A\u9650\uFF08Mbps\uFF09\uFF1B",(0,d.jsx)(n.code,{children:"0"})," \u8868\u793A\u4E0D\u9650\u5236"]})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"transport.bandwidthLimitSide"})}),(0,d.jsx)(n.td,{children:"\u5426"}),(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"client"})}),(0,d.jsxs)(n.td,{children:["\u9650\u901F\u7AEF\uFF1A",(0,d.jsx)(n.code,{children:"client"})," / ",(0,d.jsx)(n.code,{children:"server"})]})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"transport.proxyProtocolVersion"})}),(0,d.jsx)(n.td,{children:"\u5426"}),(0,d.jsx)(n.td,{}),(0,d.jsxs)(n.td,{children:["PROXY Protocol\uFF1A",(0,d.jsx)(n.code,{children:"v1"})," / ",(0,d.jsx)(n.code,{children:"v2"}),"\uFF08",(0,d.jsx)(n.code,{children:"tls-term"})," \u4E0D\u53EF\u7528\uFF09"]})]})]})]})]})}function x(e={}){let{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,d.jsx)(n,{...e,children:(0,d.jsx)(o,{...e})}):o(e)}},7008(e,n,s){s.d(n,{R:()=>l,x:()=>c});var t=s(1763);let d={},r=t.createContext(d);function l(e){let n=t.useContext(r);return t.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(d):e.components||d:l(e.components),t.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/c1cdd282.3c5ba703.js b/assets/js/c1cdd282.3c5ba703.js new file mode 100644 index 0000000..708e459 --- /dev/null +++ b/assets/js/c1cdd282.3c5ba703.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkorbien_docs=self.webpackChunkorbien_docs||[]).push([["707"],{6571(e,n,t){t.r(n),t.d(n,{metadata:()=>r,default:()=>a,frontMatter:()=>d,contentTitle:()=>l,toc:()=>i,assets:()=>c});var r=JSON.parse('{"id":"transport/connect-pool","title":"\u8FDE\u63A5\u6C60","description":"\u767B\u5F55\u65F6\u9884\u521B\u5EFA\u6570\u636E\u8FDE\u63A5/\u6D41\uFF0C\u964D\u4F4E\u65B0\u5EFA\u8FDE\u63A5\u5EF6\u8FDF\u3002\u5BA2\u6237\u7AEF poolCount \u53D7\u670D\u52A1\u7AEF maxConnPool \u9650\u5236\u3002","source":"@site/docs/transport/connect-pool.md","sourceDirName":"transport","slug":"/transport/connect-pool","permalink":"/orbien/docs/transport/connect-pool","draft":false,"unlisted":false,"editUrl":"https://github.com/orbien-org/orbien/tree/main/docs/docs/transport/connect-pool.md","tags":[],"version":"current","sidebarPosition":2,"frontMatter":{"sidebar_position":2,"sidebar_label":"\u8FDE\u63A5\u6C60","title":"\u8FDE\u63A5\u6C60"},"sidebar":"docsSidebar","previous":{"title":"KCP","permalink":"/orbien/docs/transport/protocol/kcp"},"next":{"title":"TCP \u591A\u8DEF\u590D\u7528","permalink":"/orbien/docs/transport/tcp-mux"}}'),o=t(1987),s=t(7008);let d={sidebar_position:2,sidebar_label:"\u8FDE\u63A5\u6C60",title:"\u8FDE\u63A5\u6C60"},l="\u8FDE\u63A5\u6C60",c={},i=[{value:"\u793A\u4F8B",id:"\u793A\u4F8B",level:2},{value:"\u5BA2\u6237\u7AEF\u53C2\u6570",id:"\u5BA2\u6237\u7AEF\u53C2\u6570",level:2},{value:"\u670D\u52A1\u7AEF\u53C2\u6570",id:"\u670D\u52A1\u7AEF\u53C2\u6570",level:2}];function h(e){let n={code:"code",h1:"h1",h2:"h2",header:"header",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,s.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(n.header,{children:(0,o.jsx)(n.h1,{id:"\u8FDE\u63A5\u6C60",children:"\u8FDE\u63A5\u6C60"})}),"\n",(0,o.jsxs)(n.p,{children:["\u767B\u5F55\u65F6\u9884\u521B\u5EFA\u6570\u636E\u8FDE\u63A5/\u6D41\uFF0C\u964D\u4F4E\u65B0\u5EFA\u8FDE\u63A5\u5EF6\u8FDF\u3002\u5BA2\u6237\u7AEF ",(0,o.jsx)(n.code,{children:"poolCount"})," \u53D7\u670D\u52A1\u7AEF ",(0,o.jsx)(n.code,{children:"maxConnPool"})," \u9650\u5236\u3002"]}),"\n",(0,o.jsx)(n.h2,{id:"\u793A\u4F8B",children:"\u793A\u4F8B"}),"\n",(0,o.jsx)(n.p,{children:"\u670D\u52A1\u7AEF\uFF1A"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-toml",children:"# orbien-server.toml\n[transport]\nmaxConnPool = 5\n"})}),"\n",(0,o.jsx)(n.p,{children:"\u5BA2\u6237\u7AEF\uFF1A"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-toml",children:"# orbien.toml\n[transport]\npoolCount = 3\n"})}),"\n",(0,o.jsxs)(n.p,{children:["\u5B9E\u9645\u751F\u6548\u6570\u91CF\u4E3A ",(0,o.jsx)(n.code,{children:"min(poolCount, maxConnPool)"}),"\u3002"]}),"\n",(0,o.jsx)(n.h2,{id:"\u5BA2\u6237\u7AEF\u53C2\u6570",children:"\u5BA2\u6237\u7AEF\u53C2\u6570"}),"\n",(0,o.jsxs)(n.table,{children:[(0,o.jsx)(n.thead,{children:(0,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.th,{children:"\u53C2\u6570"}),(0,o.jsx)(n.th,{children:"\u5FC5\u586B"}),(0,o.jsx)(n.th,{children:"\u9ED8\u8BA4\u503C"}),(0,o.jsx)(n.th,{children:"\u8BF4\u660E"})]})}),(0,o.jsx)(n.tbody,{children:(0,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.td,{children:(0,o.jsx)(n.code,{children:"transport.poolCount"})}),(0,o.jsx)(n.td,{children:"\u5426"}),(0,o.jsx)(n.td,{children:(0,o.jsx)(n.code,{children:"1"})}),(0,o.jsx)(n.td,{children:"\u767B\u5F55\u65F6\u9884\u521B\u5EFA\u7684\u6570\u636E\u8FDE\u63A5/\u6D41\u6570\u91CF"})]})})]}),"\n",(0,o.jsx)(n.h2,{id:"\u670D\u52A1\u7AEF\u53C2\u6570",children:"\u670D\u52A1\u7AEF\u53C2\u6570"}),"\n",(0,o.jsxs)(n.table,{children:[(0,o.jsx)(n.thead,{children:(0,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.th,{children:"\u53C2\u6570"}),(0,o.jsx)(n.th,{children:"\u5FC5\u586B"}),(0,o.jsx)(n.th,{children:"\u9ED8\u8BA4\u503C"}),(0,o.jsx)(n.th,{children:"\u8BF4\u660E"})]})}),(0,o.jsx)(n.tbody,{children:(0,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.td,{children:(0,o.jsx)(n.code,{children:"transport.maxConnPool"})}),(0,o.jsx)(n.td,{children:"\u5426"}),(0,o.jsx)(n.td,{children:(0,o.jsx)(n.code,{children:"5"})}),(0,o.jsxs)(n.td,{children:["\u9650\u5236\u5BA2\u6237\u7AEF ",(0,o.jsx)(n.code,{children:"poolCount"})," \u4E0A\u9650\uFF1B\u914D\u7F6E\u4E3A ",(0,o.jsx)(n.code,{children:"0"})," \u65F6\u4F1A\u81EA\u52A8\u53D8\u4E3A ",(0,o.jsx)(n.code,{children:"5"})]})]})})]})]})}function a(e={}){let{wrapper:n}={...(0,s.R)(),...e.components};return n?(0,o.jsx)(n,{...e,children:(0,o.jsx)(h,{...e})}):h(e)}},7008(e,n,t){t.d(n,{R:()=>d,x:()=>l});var r=t(1763);let o={},s=r.createContext(o);function d(e){let n=r.useContext(s);return r.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:d(e.components),r.createElement(s.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/c1cdd282.518bc6d9.js b/assets/js/c1cdd282.518bc6d9.js deleted file mode 100644 index caea3e1..0000000 --- a/assets/js/c1cdd282.518bc6d9.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkorbien_docs=self.webpackChunkorbien_docs||[]).push([["707"],{6571(e,n,t){t.r(n),t.d(n,{metadata:()=>r,default:()=>a,frontMatter:()=>d,contentTitle:()=>l,toc:()=>i,assets:()=>c});var r=JSON.parse('{"id":"transport/connect-pool","title":"\u8FDE\u63A5\u6C60","description":"\u767B\u5F55\u65F6\u9884\u521B\u5EFA\u5DE5\u4F5C\u8FDE\u63A5/\u6D41\uFF0C\u964D\u4F4E\u65B0\u5EFA\u8FDE\u63A5\u5EF6\u8FDF\u3002\u5BA2\u6237\u7AEF poolCount \u53D7\u670D\u52A1\u7AEF maxPoolCount \u9650\u5236\u3002","source":"@site/docs/transport/connect-pool.md","sourceDirName":"transport","slug":"/transport/connect-pool","permalink":"/orbien/docs/transport/connect-pool","draft":false,"unlisted":false,"editUrl":"https://github.com/orbien-org/orbien/tree/main/docs/docs/transport/connect-pool.md","tags":[],"version":"current","sidebarPosition":2,"frontMatter":{"sidebar_position":2,"sidebar_label":"\u8FDE\u63A5\u6C60","title":"\u8FDE\u63A5\u6C60"},"sidebar":"docsSidebar","previous":{"title":"KCP","permalink":"/orbien/docs/transport/protocol/kcp"},"next":{"title":"TCP \u591A\u8DEF\u590D\u7528","permalink":"/orbien/docs/transport/tcp-mux"}}'),o=t(1987),s=t(7008);let d={sidebar_position:2,sidebar_label:"\u8FDE\u63A5\u6C60",title:"\u8FDE\u63A5\u6C60"},l="\u8FDE\u63A5\u6C60",c={},i=[{value:"\u793A\u4F8B",id:"\u793A\u4F8B",level:2},{value:"\u5BA2\u6237\u7AEF\u53C2\u6570",id:"\u5BA2\u6237\u7AEF\u53C2\u6570",level:2},{value:"\u670D\u52A1\u7AEF\u53C2\u6570",id:"\u670D\u52A1\u7AEF\u53C2\u6570",level:2}];function h(e){let n={code:"code",h1:"h1",h2:"h2",header:"header",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,s.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(n.header,{children:(0,o.jsx)(n.h1,{id:"\u8FDE\u63A5\u6C60",children:"\u8FDE\u63A5\u6C60"})}),"\n",(0,o.jsxs)(n.p,{children:["\u767B\u5F55\u65F6\u9884\u521B\u5EFA\u5DE5\u4F5C\u8FDE\u63A5/\u6D41\uFF0C\u964D\u4F4E\u65B0\u5EFA\u8FDE\u63A5\u5EF6\u8FDF\u3002\u5BA2\u6237\u7AEF ",(0,o.jsx)(n.code,{children:"poolCount"})," \u53D7\u670D\u52A1\u7AEF ",(0,o.jsx)(n.code,{children:"maxPoolCount"})," \u9650\u5236\u3002"]}),"\n",(0,o.jsx)(n.h2,{id:"\u793A\u4F8B",children:"\u793A\u4F8B"}),"\n",(0,o.jsx)(n.p,{children:"\u670D\u52A1\u7AEF\uFF1A"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-toml",children:"# orbien-server.toml\n[transport]\nmaxPoolCount = 5\n"})}),"\n",(0,o.jsx)(n.p,{children:"\u5BA2\u6237\u7AEF\uFF1A"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-toml",children:"# orbien.toml\n[transport]\npoolCount = 3\n"})}),"\n",(0,o.jsxs)(n.p,{children:["\u5B9E\u9645\u751F\u6548\u6570\u91CF\u4E3A ",(0,o.jsx)(n.code,{children:"min(poolCount, maxPoolCount)"}),"\u3002"]}),"\n",(0,o.jsx)(n.h2,{id:"\u5BA2\u6237\u7AEF\u53C2\u6570",children:"\u5BA2\u6237\u7AEF\u53C2\u6570"}),"\n",(0,o.jsxs)(n.table,{children:[(0,o.jsx)(n.thead,{children:(0,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.th,{children:"\u53C2\u6570"}),(0,o.jsx)(n.th,{children:"\u5FC5\u586B"}),(0,o.jsx)(n.th,{children:"\u9ED8\u8BA4\u503C"}),(0,o.jsx)(n.th,{children:"\u8BF4\u660E"})]})}),(0,o.jsx)(n.tbody,{children:(0,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.td,{children:(0,o.jsx)(n.code,{children:"transport.poolCount"})}),(0,o.jsx)(n.td,{children:"\u5426"}),(0,o.jsx)(n.td,{children:(0,o.jsx)(n.code,{children:"1"})}),(0,o.jsx)(n.td,{children:"\u767B\u5F55\u65F6\u9884\u521B\u5EFA\u7684\u5DE5\u4F5C\u8FDE\u63A5/\u6D41\u6570\u91CF"})]})})]}),"\n",(0,o.jsx)(n.h2,{id:"\u670D\u52A1\u7AEF\u53C2\u6570",children:"\u670D\u52A1\u7AEF\u53C2\u6570"}),"\n",(0,o.jsxs)(n.table,{children:[(0,o.jsx)(n.thead,{children:(0,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.th,{children:"\u53C2\u6570"}),(0,o.jsx)(n.th,{children:"\u5FC5\u586B"}),(0,o.jsx)(n.th,{children:"\u9ED8\u8BA4\u503C"}),(0,o.jsx)(n.th,{children:"\u8BF4\u660E"})]})}),(0,o.jsx)(n.tbody,{children:(0,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.td,{children:(0,o.jsx)(n.code,{children:"transport.maxPoolCount"})}),(0,o.jsx)(n.td,{children:"\u5426"}),(0,o.jsx)(n.td,{children:(0,o.jsx)(n.code,{children:"5"})}),(0,o.jsxs)(n.td,{children:["\u9650\u5236\u5BA2\u6237\u7AEF ",(0,o.jsx)(n.code,{children:"poolCount"})," \u4E0A\u9650\uFF1B\u914D\u7F6E\u4E3A ",(0,o.jsx)(n.code,{children:"0"})," \u65F6\u4F1A\u81EA\u52A8\u53D8\u4E3A ",(0,o.jsx)(n.code,{children:"5"})]})]})})]})]})}function a(e={}){let{wrapper:n}={...(0,s.R)(),...e.components};return n?(0,o.jsx)(n,{...e,children:(0,o.jsx)(h,{...e})}):h(e)}},7008(e,n,t){t.d(n,{R:()=>d,x:()=>l});var r=t(1763);let o={},s=r.createContext(o);function d(e){let n=r.useContext(s);return r.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:d(e.components),r.createElement(s.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/cac2e989.38479ceb.js b/assets/js/cac2e989.38479ceb.js deleted file mode 100644 index a25d0b0..0000000 --- a/assets/js/cac2e989.38479ceb.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkorbien_docs=self.webpackChunkorbien_docs||[]).push([["688"],{8409(e){e.exports=JSON.parse('{"version":{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"docsSidebar":[{"type":"link","href":"/orbien/docs/intro","label":"\u4ECB\u7ECD","docId":"intro","unlisted":false},{"type":"link","href":"/orbien/docs/download","label":"\u4E0B\u8F7D","docId":"download","unlisted":false},{"type":"link","href":"/orbien/docs/quickstart","label":"\u5FEB\u901F\u5F00\u59CB","docId":"quickstart","unlisted":false},{"type":"link","href":"/orbien/docs/docker","label":"Docker \u5B89\u88C5","docId":"docker","unlisted":false},{"type":"category","label":"\u4EE3\u7406\u534F\u8BAE","collapsible":true,"collapsed":true,"items":[{"type":"link","href":"/orbien/docs/proxies/tcp","label":"TCP","docId":"proxies/tcp","unlisted":false},{"type":"link","href":"/orbien/docs/proxies/udp","label":"UDP","docId":"proxies/udp","unlisted":false},{"type":"link","href":"/orbien/docs/proxies/http","label":"HTTP","docId":"proxies/http","unlisted":false},{"type":"link","href":"/orbien/docs/proxies/https","label":"HTTPS","docId":"proxies/https","unlisted":false},{"type":"link","href":"/orbien/docs/proxies/vhost","label":"\u865A\u62DF\u4E3B\u673A","docId":"proxies/vhost","unlisted":false}]},{"type":"category","label":"\u4F20\u8F93\u4E0E\u5B89\u5168","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"\u4F20\u8F93\u534F\u8BAE","collapsible":true,"collapsed":true,"items":[{"type":"link","href":"/orbien/docs/transport/protocol/tcp","label":"TCP","docId":"transport/protocol/tcp","unlisted":false},{"type":"link","href":"/orbien/docs/transport/protocol/websocket","label":"WebSocket","docId":"transport/protocol/websocket","unlisted":false},{"type":"link","href":"/orbien/docs/transport/protocol/quic","label":"QUIC","docId":"transport/protocol/quic","unlisted":false},{"type":"link","href":"/orbien/docs/transport/protocol/kcp","label":"KCP","docId":"transport/protocol/kcp","unlisted":false}]},{"type":"link","href":"/orbien/docs/transport/connect-pool","label":"\u8FDE\u63A5\u6C60","docId":"transport/connect-pool","unlisted":false},{"type":"link","href":"/orbien/docs/transport/tcp-mux","label":"TCP \u591A\u8DEF\u590D\u7528","docId":"transport/tcp-mux","unlisted":false},{"type":"link","href":"/orbien/docs/transport/tls","label":"TLS","docId":"transport/tls","unlisted":false}]},{"type":"category","label":"\u529F\u80FD","collapsible":true,"collapsed":true,"items":[{"type":"link","href":"/orbien/docs/features/authentication","label":"\u8EAB\u4EFD\u8BA4\u8BC1","docId":"features/authentication","unlisted":false},{"type":"link","href":"/orbien/docs/features/dashboard","label":"\u7BA1\u7406\u754C\u9762","docId":"features/dashboard","unlisted":false},{"type":"link","href":"/orbien/docs/features/proxy-bind","label":"\u4EE3\u7406\u7ED1\u5B9A\u5730\u5740","docId":"features/proxy-bind","unlisted":false},{"type":"link","href":"/orbien/docs/features/bandwidth","label":"\u5E26\u5BBD\u9650\u5236","docId":"features/bandwidth","unlisted":false},{"type":"link","href":"/orbien/docs/features/real-ip","label":"\u83B7\u53D6\u771F\u5B9E IP","docId":"features/real-ip","unlisted":false}]},{"type":"category","label":"\u96C6\u6210","collapsible":true,"collapsed":true,"items":[{"type":"link","href":"/orbien/docs/integrations/springboot","label":"SpringBoot\u96C6\u6210","docId":"integrations/springboot","unlisted":false}]},{"type":"link","href":"/orbien/docs/performance","label":"\u6027\u80FD\u6D4B\u8BD5","docId":"performance","unlisted":false},{"type":"link","href":"/orbien/docs/roadmap","label":"\u8DEF\u7EBF\u56FE","docId":"roadmap","unlisted":false},{"type":"link","href":"/orbien/docs/license","label":"\u8BB8\u53EF\u8BC1","docId":"license","unlisted":false},{"type":"link","href":"/orbien/docs/community","label":"\u793E\u533A\u548C\u8D21\u732E","docId":"community","unlisted":false}]},"docs":{"community":{"id":"community","title":"\u793E\u533A\u548C\u8D21\u732E","description":"- Discord\uFF1AOrbien","sidebar":"docsSidebar"},"docker":{"id":"docker","title":"Docker \u5B89\u88C5","description":"\u670D\u52A1\u7AEF","sidebar":"docsSidebar"},"download":{"id":"download","title":"\u4E0B\u8F7D","description":"\u6309\u64CD\u4F5C\u7CFB\u7EDF\u4E0E\u67B6\u6784\u9009\u62E9\u5BF9\u5E94\u5B89\u88C5\u5305","sidebar":"docsSidebar"},"features/authentication":{"id":"features/authentication","title":"\u8EAB\u4EFD\u8BA4\u8BC1","description":"\u5BA2\u6237\u7AEF\u8FDE\u63A5\u670D\u52A1\u7AEF\u65F6\u7684 Token \u9274\u6743\u3002\u670D\u52A1\u7AEF\u672A\u914D\u7F6E token\uFF08\u6216\u4E3A\u7A7A\uFF09\u65F6\u4E0D\u6821\u9A8C\u3002","sidebar":"docsSidebar"},"features/bandwidth":{"id":"features/bandwidth","title":"\u5E26\u5BBD\u9650\u5236","description":"\u6309\u4EE3\u7406\u9650\u5236\u8F6C\u53D1\u5E26\u5BBD\u3002\u914D\u7F6E\u5728 [[proxies]] \u7684 transport \u4E0B\u3002","sidebar":"docsSidebar"},"features/dashboard":{"id":"features/dashboard","title":"\u7BA1\u7406\u754C\u9762","description":"\u670D\u52A1\u7AEF Web \u7BA1\u7406\u9762\u677F\u3002\u5728 orbien-server.toml \u4E2D\u914D\u7F6E [webServer]\uFF0C\u4E14 port > 0 \u65F6\u542F\u7528\u3002","sidebar":"docsSidebar"},"features/proxy-bind":{"id":"features/proxy-bind","title":"\u4EE3\u7406\u7ED1\u5B9A\u5730\u5740","description":"\u670D\u52A1\u7AEF\u6709\u4E24\u7C7B\u76D1\u542C\uFF1A","sidebar":"docsSidebar"},"features/real-ip":{"id":"features/real-ip","title":"\u83B7\u53D6\u771F\u5B9E IP","description":"\u7A7F\u900F\u540E\u672C\u5730\u670D\u52A1\u9ED8\u8BA4\u770B\u5230\u7684\u662F\u96A7\u9053\u5730\u5740\u3002\u53EF\u7528\u4EE5\u4E0B\u65B9\u5F0F\u62FF\u5230\u8BBF\u5BA2\u771F\u5B9E IP\u3002","sidebar":"docsSidebar"},"integrations/springboot":{"id":"integrations/springboot","title":"Spring Boot \u96C6\u6210","description":"Orbien\u63D0\u4F9B\u4E86\u4E00\u4E2A\u8F7B\u91CF\u7684Java\u5BA2\u6237\u7AEF\u7528\u4E8E\u5185\u5D4C\u5230Spring Boot\u5E94\u7528\u4E2D\u8FD0\u884C\uFF0C\u4EC5\u652F\u6301TCP/HTTP/HTTPS\u534F\u8BAE\u4EE3\u7406\uFF0C\u4F20\u8F93\u5C42\u53EA\u652F\u6301TCP\u4F20\u8F93\u534F\u8BAE\uFF0C","sidebar":"docsSidebar"},"intro":{"id":"intro","title":"\u4ECB\u7ECD","description":"Orbien \u662F\u4E00\u6B3E\u57FA\u4E8E Rust \u8BED\u8A00\u5F00\u53D1\u7684\u9AD8\u6027\u80FD\u5185\u7F51\u7A7F\u900F\u5DE5\u5177\uFF0C\u80FD\u591F\u5C06\u4F4D\u4E8E\u5185\u7F51\u7684\u670D\u52A1\u5B89\u5168\u3001\u9AD8\u6548\u5730\u66B4\u9732\u5230\u516C\u7F51\uFF0C\u4F9B\u5916\u90E8\u7528\u6237\u8BBF\u95EE\u3002\u5B83\u901A\u8FC7\u5EFA\u7ACB\u7A33\u5B9A\u7684\u53CD\u5411\u96A7\u9053\uFF0C","sidebar":"docsSidebar"},"license":{"id":"license","title":"\u8BB8\u53EF\u8BC1","description":"Orbien \u91C7\u7528 Apache License 2.0 \u5F00\u6E90\u8BB8\u53EF\u3002","sidebar":"docsSidebar"},"performance":{"id":"performance","title":"\u6027\u80FD\u6D4B\u8BD5","description":"\u4E0B\u9762\u662F\u5728\u672C\u5730\u56DE\u73AF\u4E2D\u5BF9\u5185\u5B58\u5360\u7528\u7684\u6027\u80FD\u6D4B\u8BD5\u7ED3\u679C\uFF0C\u4ECE\u4E0B\u56FE\u53EF\u4EE5\u53D1\u73B0\uFF0C\u76F8\u8F83\u4E8Efrp\uFF0COrbien\u7684\u5185\u5B58\u5360\u7528\u6BD4\u8F83\u4F4E\u4E14\u7A33\u5B9A\uFF1B\u540E\u7EED\u5B8C\u5584\u4E00\u4E0B\u5176\u4ED6\u7EF4\u5EA6\u7684\u6D4B\u8BD5","sidebar":"docsSidebar"},"proxies/http":{"id":"proxies/http","title":"HTTP","description":"\u901A\u8FC7\u57DF\u540D\u5C06\u5185\u7F51 HTTP \u670D\u52A1\u66B4\u9732\u5230\u516C\u7F51\u3002\u670D\u52A1\u7AEF\u9700\u914D\u7F6E\u865A\u62DF\u4E3B\u673A\uFF0C\u89C1 \u865A\u62DF\u4E3B\u673A\u3002","sidebar":"docsSidebar"},"proxies/https":{"id":"proxies/https","title":"HTTPS","description":"\u901A\u8FC7\u57DF\u540D\u5C06\u5185\u7F51\u670D\u52A1\u66B4\u9732\u5230\u516C\u7F51\u3002\u670D\u52A1\u7AEF\u9700\u914D\u7F6E\u865A\u62DF\u4E3B\u673A\uFF0C\u89C1 \u865A\u62DF\u4E3B\u673A\u3002","sidebar":"docsSidebar"},"proxies/tcp":{"id":"proxies/tcp","title":"TCP","description":"\u5C06\u5185\u7F51 TCP \u670D\u52A1\u6620\u5C04\u5230\u670D\u52A1\u7AEF\u516C\u7F51\u7AEF\u53E3\u3002","sidebar":"docsSidebar"},"proxies/udp":{"id":"proxies/udp","title":"UDP","description":"\u5C06\u5185\u7F51 UDP \u670D\u52A1\u6620\u5C04\u5230\u670D\u52A1\u7AEF\u516C\u7F51\u7AEF\u53E3\u3002","sidebar":"docsSidebar"},"proxies/vhost":{"id":"proxies/vhost","title":"\u865A\u62DF\u4E3B\u673A","description":"HTTP / HTTPS \u6309\u57DF\u540D\u8DEF\u7531\u3002\u670D\u52A1\u7AEF\u5F00\u542F vhostHTTPPort / vhostHTTPSPort \u540E\uFF0C\u5BA2\u6237\u7AEF\u7528 customDomains \u6216 subdomain \u7ED1\u5B9A\u57DF\u540D\u3002","sidebar":"docsSidebar"},"quickstart":{"id":"quickstart","title":"\u5FEB\u901F\u5F00\u59CB","description":"\u4E0B\u8F7D\u5BF9\u5E94\u5E73\u53F0\u7684\u4E8C\u8FDB\u5236\u538B\u7F29\u5305\u89E3\u538B","sidebar":"docsSidebar"},"roadmap":{"id":"roadmap","title":"\u8DEF\u7EBF\u56FE","description":"- [ ] P2P\u6253\u6D1E","sidebar":"docsSidebar"},"transport/connect-pool":{"id":"transport/connect-pool","title":"\u8FDE\u63A5\u6C60","description":"\u767B\u5F55\u65F6\u9884\u521B\u5EFA\u5DE5\u4F5C\u8FDE\u63A5/\u6D41\uFF0C\u964D\u4F4E\u65B0\u5EFA\u8FDE\u63A5\u5EF6\u8FDF\u3002\u5BA2\u6237\u7AEF poolCount \u53D7\u670D\u52A1\u7AEF maxPoolCount \u9650\u5236\u3002","sidebar":"docsSidebar"},"transport/protocol/kcp":{"id":"transport/protocol/kcp","title":"KCP","description":"\u57FA\u4E8E UDP \u7684\u53EF\u9760\u4F20\u8F93\uFF0C\u5F31\u7F51\u573A\u666F\u66F4\u7A33\u3002TLS \u914D\u7F6E\u89C1 TLS\u3002","sidebar":"docsSidebar"},"transport/protocol/quic":{"id":"transport/protocol/quic","title":"QUIC","description":"\u57FA\u4E8E UDP\u3002\u81EA\u5E26\u52A0\u5BC6\u4E0E\u591A\u8DEF\u590D\u7528\uFF0CtcpMux / transport.tls.enable \u65E0\u6548\u3002\u8BC1\u4E66\u6821\u9A8C\u4ECD\u53EF\u901A\u8FC7 transport.tls","sidebar":"docsSidebar"},"transport/protocol/tcp":{"id":"transport/protocol/tcp","title":"TCP","description":"\u9ED8\u8BA4\u4F20\u8F93\u534F\u8BAE\u3002\u5BA2\u6237\u7AEF\u901A\u8FC7\u670D\u52A1\u7AEF bindPort \u5EFA\u7ACB\u63A7\u5236\u901A\u9053\u3002TLS \u914D\u7F6E\u89C1 TLS\u3002","sidebar":"docsSidebar"},"transport/protocol/websocket":{"id":"transport/protocol/websocket","title":"WebSocket","description":"\u4E0E TCP \u5171\u7528\u670D\u52A1\u7AEF bindPort\u3002\u9002\u7528\u4E8E\u9700\u7A7F\u900F HTTP \u4EE3\u7406\u3001\u6216\u4EC5\u5F00\u653E WebSocket \u7684\u7F51\u7EDC\u73AF\u5883\u3002TLS \u914D\u7F6E\u89C1 TLS\u3002","sidebar":"docsSidebar"},"transport/tcp-mux":{"id":"transport/tcp-mux","title":"TCP \u591A\u8DEF\u590D\u7528","description":"\u4E00\u6761\u7269\u7406\u8FDE\u63A5\u627F\u8F7D\u591A\u8DEF\u903B\u8F91\u6D41\uFF08Yamux\uFF09\uFF0C\u964D\u4F4E\u5EFA\u8FDE\u5F00\u9500\u3002\u9002\u7528\u4E8E tcp / websocket / kcp\uFF1BQUIC \u81EA\u5E26\u591A\u8DEF\u590D\u7528\uFF0C\u6B64\u9879\u65E0\u6548\u3002","sidebar":"docsSidebar"},"transport/tls":{"id":"transport/tls","title":"TLS","description":"\u63A7\u5236\u901A\u9053 TLS\u3002\u9002\u7528\u4E8E tcp / websocket / kcp\uFF08QUIC \u81EA\u8EAB\u5DF2\u52A0\u5BC6\uFF0C\u4F46\u8BC1\u4E66\u8DEF\u5F84\u5B57\u6BB5\u4ECD\u53EF\u7528\u4E8E QUIC \u8EAB\u4EFD\u6821\u9A8C\uFF09\u3002","sidebar":"docsSidebar"}}}}')}}]); \ No newline at end of file diff --git a/assets/js/cac2e989.53a64e10.js b/assets/js/cac2e989.53a64e10.js new file mode 100644 index 0000000..756966a --- /dev/null +++ b/assets/js/cac2e989.53a64e10.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkorbien_docs=self.webpackChunkorbien_docs||[]).push([["688"],{8409(e){e.exports=JSON.parse('{"version":{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"docsSidebar":[{"type":"link","href":"/orbien/docs/intro","label":"\u4ECB\u7ECD","docId":"intro","unlisted":false},{"type":"link","href":"/orbien/docs/download","label":"\u4E0B\u8F7D","docId":"download","unlisted":false},{"type":"link","href":"/orbien/docs/quickstart","label":"\u5FEB\u901F\u5F00\u59CB","docId":"quickstart","unlisted":false},{"type":"link","href":"/orbien/docs/docker","label":"Docker \u5B89\u88C5","docId":"docker","unlisted":false},{"type":"category","label":"\u96A7\u9053\u534F\u8BAE","collapsible":true,"collapsed":true,"items":[{"type":"link","href":"/orbien/docs/tunnels/tcp","label":"TCP","docId":"tunnels/tcp","unlisted":false},{"type":"link","href":"/orbien/docs/tunnels/udp","label":"UDP","docId":"tunnels/udp","unlisted":false},{"type":"link","href":"/orbien/docs/tunnels/http","label":"HTTP","docId":"tunnels/http","unlisted":false},{"type":"link","href":"/orbien/docs/tunnels/https","label":"HTTPS","docId":"tunnels/https","unlisted":false},{"type":"link","href":"/orbien/docs/tunnels/domains","label":"\u57DF\u540D","docId":"tunnels/domains","unlisted":false}]},{"type":"category","label":"\u4F20\u8F93\u4E0E\u5B89\u5168","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"\u4F20\u8F93\u534F\u8BAE","collapsible":true,"collapsed":true,"items":[{"type":"link","href":"/orbien/docs/transport/protocol/tcp","label":"TCP","docId":"transport/protocol/tcp","unlisted":false},{"type":"link","href":"/orbien/docs/transport/protocol/websocket","label":"WebSocket","docId":"transport/protocol/websocket","unlisted":false},{"type":"link","href":"/orbien/docs/transport/protocol/quic","label":"QUIC","docId":"transport/protocol/quic","unlisted":false},{"type":"link","href":"/orbien/docs/transport/protocol/kcp","label":"KCP","docId":"transport/protocol/kcp","unlisted":false}]},{"type":"link","href":"/orbien/docs/transport/connect-pool","label":"\u8FDE\u63A5\u6C60","docId":"transport/connect-pool","unlisted":false},{"type":"link","href":"/orbien/docs/transport/tcp-mux","label":"TCP \u591A\u8DEF\u590D\u7528","docId":"transport/tcp-mux","unlisted":false},{"type":"link","href":"/orbien/docs/transport/tls","label":"TLS","docId":"transport/tls","unlisted":false}]},{"type":"category","label":"\u529F\u80FD","collapsible":true,"collapsed":true,"items":[{"type":"link","href":"/orbien/docs/features/authentication","label":"\u8EAB\u4EFD\u8BA4\u8BC1","docId":"features/authentication","unlisted":false},{"type":"link","href":"/orbien/docs/features/dashboard","label":"\u7BA1\u7406\u754C\u9762","docId":"features/dashboard","unlisted":false},{"type":"link","href":"/orbien/docs/features/public-bind","label":"\u5BF9\u5916\u76D1\u542C\u5730\u5740","docId":"features/public-bind","unlisted":false},{"type":"link","href":"/orbien/docs/features/bandwidth","label":"\u5E26\u5BBD\u9650\u5236","docId":"features/bandwidth","unlisted":false},{"type":"link","href":"/orbien/docs/features/real-ip","label":"\u83B7\u53D6\u771F\u5B9E IP","docId":"features/real-ip","unlisted":false}]},{"type":"category","label":"\u96C6\u6210","collapsible":true,"collapsed":true,"items":[{"type":"link","href":"/orbien/docs/integrations/springboot","label":"SpringBoot\u96C6\u6210","docId":"integrations/springboot","unlisted":false}]},{"type":"link","href":"/orbien/docs/performance","label":"\u6027\u80FD\u6D4B\u8BD5","docId":"performance","unlisted":false},{"type":"link","href":"/orbien/docs/roadmap","label":"\u8DEF\u7EBF\u56FE","docId":"roadmap","unlisted":false},{"type":"link","href":"/orbien/docs/license","label":"\u8BB8\u53EF\u8BC1","docId":"license","unlisted":false},{"type":"link","href":"/orbien/docs/community","label":"\u793E\u533A\u548C\u8D21\u732E","docId":"community","unlisted":false}]},"docs":{"community":{"id":"community","title":"\u793E\u533A\u548C\u8D21\u732E","description":"- Discord\uFF1AOrbien","sidebar":"docsSidebar"},"docker":{"id":"docker","title":"Docker \u5B89\u88C5","description":"\u670D\u52A1\u7AEF","sidebar":"docsSidebar"},"download":{"id":"download","title":"\u4E0B\u8F7D","description":"\u6309\u64CD\u4F5C\u7CFB\u7EDF\u4E0E\u67B6\u6784\u9009\u62E9\u5BF9\u5E94\u5B89\u88C5\u5305","sidebar":"docsSidebar"},"features/authentication":{"id":"features/authentication","title":"\u8EAB\u4EFD\u8BA4\u8BC1","description":"\u5BA2\u6237\u7AEF\u8FDE\u63A5\u670D\u52A1\u7AEF\u65F6\u7684 Token \u9274\u6743\u3002\u670D\u52A1\u7AEF\u672A\u914D\u7F6E token\uFF08\u6216\u4E3A\u7A7A\uFF09\u65F6\u4E0D\u6821\u9A8C\u3002","sidebar":"docsSidebar"},"features/bandwidth":{"id":"features/bandwidth","title":"\u5E26\u5BBD\u9650\u5236","description":"\u6309\u96A7\u9053\u9650\u5236\u8F6C\u53D1\u5E26\u5BBD\u3002\u914D\u7F6E\u5728 [[tunnels]] \u7684 transport \u4E0B\u3002","sidebar":"docsSidebar"},"features/dashboard":{"id":"features/dashboard","title":"\u7BA1\u7406\u754C\u9762","description":"\u670D\u52A1\u7AEF Web \u7BA1\u7406\u9762\u677F\u3002\u5728 orbien-server.toml \u4E2D\u914D\u7F6E [dashboard]\uFF0C\u4E14 port > 0 \u65F6\u542F\u7528\u3002","sidebar":"docsSidebar"},"features/public-bind":{"id":"features/public-bind","title":"\u5BF9\u5916\u76D1\u542C\u5730\u5740","description":"\u670D\u52A1\u7AEF\u6709\u4E24\u7C7B\u76D1\u542C\uFF1A","sidebar":"docsSidebar"},"features/real-ip":{"id":"features/real-ip","title":"\u83B7\u53D6\u771F\u5B9E IP","description":"\u7A7F\u900F\u540E\u672C\u5730\u670D\u52A1\u9ED8\u8BA4\u770B\u5230\u7684\u662F\u96A7\u9053\u5730\u5740\u3002\u53EF\u7528\u4EE5\u4E0B\u65B9\u5F0F\u62FF\u5230\u8BBF\u5BA2\u771F\u5B9E IP\u3002","sidebar":"docsSidebar"},"integrations/springboot":{"id":"integrations/springboot","title":"Spring Boot \u96C6\u6210","description":"Orbien \u63D0\u4F9B\u53EF\u5185\u5D4C\u5230 Spring Boot \u7684 Java \u5BA2\u6237\u7AEF\uFF0C\u5F53\u524D\u80FD\u529B\uFF1A","sidebar":"docsSidebar"},"intro":{"id":"intro","title":"\u4ECB\u7ECD","description":"Orbien \u662F\u4E00\u6B3E\u57FA\u4E8E Rust \u8BED\u8A00\u5F00\u53D1\u7684\u9AD8\u6027\u80FD\u5185\u7F51\u7A7F\u900F\u5DE5\u5177\uFF0C\u80FD\u591F\u5C06\u4F4D\u4E8E\u5185\u7F51\u7684\u670D\u52A1\u5B89\u5168\u3001\u9AD8\u6548\u5730\u66B4\u9732\u5230\u516C\u7F51\uFF0C\u4F9B\u5916\u90E8\u7528\u6237\u8BBF\u95EE\u3002\u5B83\u901A\u8FC7\u5EFA\u7ACB\u7A33\u5B9A\u7684\u53CD\u5411\u96A7\u9053\uFF0C","sidebar":"docsSidebar"},"license":{"id":"license","title":"\u8BB8\u53EF\u8BC1","description":"Orbien \u91C7\u7528 Apache License 2.0 \u5F00\u6E90\u8BB8\u53EF\u3002","sidebar":"docsSidebar"},"performance":{"id":"performance","title":"\u6027\u80FD\u6D4B\u8BD5","description":"\u4E0B\u9762\u662F\u5728\u672C\u5730\u56DE\u73AF\u4E2D\u5BF9\u5185\u5B58\u5360\u7528\u7684\u6027\u80FD\u6D4B\u8BD5\u7ED3\u679C\uFF0C\u4ECE\u4E0B\u56FE\u53EF\u4EE5\u53D1\u73B0\uFF0C\u76F8\u8F83\u4E8Efrp\uFF0COrbien\u7684\u5185\u5B58\u5360\u7528\u6BD4\u8F83\u4F4E\u4E14\u7A33\u5B9A\u3002","sidebar":"docsSidebar"},"quickstart":{"id":"quickstart","title":"\u5FEB\u901F\u5F00\u59CB","description":"\u4E0B\u8F7D\u5BF9\u5E94\u5E73\u53F0\u7684\u4E8C\u8FDB\u5236\u538B\u7F29\u5305\u89E3\u538B","sidebar":"docsSidebar"},"roadmap":{"id":"roadmap","title":"\u8DEF\u7EBF\u56FE","description":"- [ ] P2P\u6253\u6D1E","sidebar":"docsSidebar"},"transport/connect-pool":{"id":"transport/connect-pool","title":"\u8FDE\u63A5\u6C60","description":"\u767B\u5F55\u65F6\u9884\u521B\u5EFA\u6570\u636E\u8FDE\u63A5/\u6D41\uFF0C\u964D\u4F4E\u65B0\u5EFA\u8FDE\u63A5\u5EF6\u8FDF\u3002\u5BA2\u6237\u7AEF poolCount \u53D7\u670D\u52A1\u7AEF maxConnPool \u9650\u5236\u3002","sidebar":"docsSidebar"},"transport/protocol/kcp":{"id":"transport/protocol/kcp","title":"KCP","description":"\u57FA\u4E8E UDP \u7684\u53EF\u9760\u4F20\u8F93\uFF0C\u5F31\u7F51\u573A\u666F\u66F4\u7A33\u3002TLS \u914D\u7F6E\u89C1 TLS\u3002","sidebar":"docsSidebar"},"transport/protocol/quic":{"id":"transport/protocol/quic","title":"QUIC","description":"\u57FA\u4E8E UDP\u3002\u81EA\u5E26\u52A0\u5BC6\u4E0E\u591A\u8DEF\u590D\u7528\uFF0CtcpMux / transport.tls.enable \u65E0\u6548\u3002\u8BC1\u4E66\u6821\u9A8C\u4ECD\u53EF\u901A\u8FC7 transport.tls","sidebar":"docsSidebar"},"transport/protocol/tcp":{"id":"transport/protocol/tcp","title":"TCP","description":"\u9ED8\u8BA4\u4F20\u8F93\u534F\u8BAE\u3002\u5BA2\u6237\u7AEF\u901A\u8FC7\u670D\u52A1\u7AEF listen \u5EFA\u7ACB\u63A7\u5236\u901A\u9053\u3002TLS \u914D\u7F6E\u89C1 TLS\u3002","sidebar":"docsSidebar"},"transport/protocol/websocket":{"id":"transport/protocol/websocket","title":"WebSocket","description":"\u4E0E TCP \u5171\u7528\u670D\u52A1\u7AEF listen\u3002\u9002\u7528\u4E8E\u9700\u7A7F\u900F HTTP \u4EE3\u7406\u3001\u6216\u4EC5\u5F00\u653E WebSocket \u7684\u7F51\u7EDC\u73AF\u5883\u3002TLS \u914D\u7F6E\u89C1 TLS\u3002","sidebar":"docsSidebar"},"transport/tcp-mux":{"id":"transport/tcp-mux","title":"TCP \u591A\u8DEF\u590D\u7528","description":"\u4E00\u6761\u7269\u7406\u8FDE\u63A5\u627F\u8F7D\u591A\u8DEF\u903B\u8F91\u6D41\uFF08Yamux\uFF09\uFF0C\u964D\u4F4E\u5EFA\u8FDE\u5F00\u9500\u3002\u9002\u7528\u4E8E tcp / websocket / kcp\uFF1BQUIC \u81EA\u5E26\u591A\u8DEF\u590D\u7528\uFF0C\u6B64\u9879\u65E0\u6548\u3002","sidebar":"docsSidebar"},"transport/tls":{"id":"transport/tls","title":"TLS","description":"\u63A7\u5236\u901A\u9053 TLS\u3002\u9002\u7528\u4E8E tcp / websocket / kcp\uFF08QUIC \u81EA\u8EAB\u5DF2\u52A0\u5BC6\uFF0C\u4F46\u8BC1\u4E66\u8DEF\u5F84\u5B57\u6BB5\u4ECD\u53EF\u7528\u4E8E QUIC \u8EAB\u4EFD\u6821\u9A8C\uFF09\u3002","sidebar":"docsSidebar"},"tunnels/domains":{"id":"tunnels/domains","title":"\u57DF\u540D","description":"\u6309\u57DF\u540D\u5C06\u8BBF\u5BA2\u6D41\u91CF\u8F6C\u53D1\u5230\u5BA2\u6237\u7AEF\u96A7\u9053\u3002\u670D\u52A1\u7AEF\u5F00\u542F httpGwPort / httpsGwPort \u540E\uFF0C\u5BA2\u6237\u7AEF\u7528 domains \u7ED1\u5B9A\u57DF\u540D\u3002","sidebar":"docsSidebar"},"tunnels/http":{"id":"tunnels/http","title":"HTTP","description":"\u901A\u8FC7\u57DF\u540D\u5C06\u5185\u7F51 HTTP \u670D\u52A1\u66B4\u9732\u5230\u516C\u7F51\u3002\u670D\u52A1\u7AEF\u9700\u5F00\u542F\u57DF\u540D\u5165\u53E3\uFF0C\u89C1 \u57DF\u540D\u3002","sidebar":"docsSidebar"},"tunnels/https":{"id":"tunnels/https","title":"HTTPS","description":"\u901A\u8FC7\u57DF\u540D\u5C06\u5185\u7F51\u670D\u52A1\u66B4\u9732\u5230\u516C\u7F51\u3002\u670D\u52A1\u7AEF\u9700\u5F00\u542F\u57DF\u540D\u5165\u53E3\uFF0C\u89C1 \u57DF\u540D\u3002","sidebar":"docsSidebar"},"tunnels/tcp":{"id":"tunnels/tcp","title":"TCP","description":"\u5C06\u5185\u7F51 TCP \u670D\u52A1\u6620\u5C04\u5230\u670D\u52A1\u7AEF\u516C\u7F51\u7AEF\u53E3\u3002","sidebar":"docsSidebar"},"tunnels/udp":{"id":"tunnels/udp","title":"UDP","description":"\u5C06\u5185\u7F51 UDP \u670D\u52A1\u6620\u5C04\u5230\u670D\u52A1\u7AEF\u516C\u7F51\u7AEF\u53E3\u3002","sidebar":"docsSidebar"}}}}')}}]); \ No newline at end of file diff --git a/assets/js/db38bcc4.78baa2e3.js b/assets/js/db38bcc4.78baa2e3.js deleted file mode 100644 index 29ed7cf..0000000 --- a/assets/js/db38bcc4.78baa2e3.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkorbien_docs=self.webpackChunkorbien_docs||[]).push([["385"],{4205(e,d,s){s.r(d),s.d(d,{metadata:()=>r,default:()=>x,frontMatter:()=>i,contentTitle:()=>c,toc:()=>o,assets:()=>l});var r=JSON.parse('{"id":"proxies/http","title":"HTTP","description":"\u901A\u8FC7\u57DF\u540D\u5C06\u5185\u7F51 HTTP \u670D\u52A1\u66B4\u9732\u5230\u516C\u7F51\u3002\u670D\u52A1\u7AEF\u9700\u914D\u7F6E\u865A\u62DF\u4E3B\u673A\uFF0C\u89C1 \u865A\u62DF\u4E3B\u673A\u3002","source":"@site/docs/proxies/http.md","sourceDirName":"proxies","slug":"/proxies/http","permalink":"/orbien/docs/proxies/http","draft":false,"unlisted":false,"editUrl":"https://github.com/orbien-org/orbien/tree/main/docs/docs/proxies/http.md","tags":[],"version":"current","sidebarPosition":3,"frontMatter":{"sidebar_position":3,"sidebar_label":"HTTP","title":"HTTP"},"sidebar":"docsSidebar","previous":{"title":"UDP","permalink":"/orbien/docs/proxies/udp"},"next":{"title":"HTTPS","permalink":"/orbien/docs/proxies/https"}}'),n=s(1987),t=s(7008);let i={sidebar_position:3,sidebar_label:"HTTP",title:"HTTP"},c="HTTP",l={},o=[{value:"\u793A\u4F8B\uFF1A\u7A7F\u900F Web \u670D\u52A1",id:"\u793A\u4F8B\u7A7F\u900F-web-\u670D\u52A1",level:2},{value:"\u53C2\u6570",id:"\u53C2\u6570",level:2}];function h(e){let d={a:"a",code:"code",h1:"h1",h2:"h2",header:"header",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,t.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(d.header,{children:(0,n.jsx)(d.h1,{id:"http",children:"HTTP"})}),"\n",(0,n.jsxs)(d.p,{children:["\u901A\u8FC7\u57DF\u540D\u5C06\u5185\u7F51 HTTP \u670D\u52A1\u66B4\u9732\u5230\u516C\u7F51\u3002\u670D\u52A1\u7AEF\u9700\u914D\u7F6E\u865A\u62DF\u4E3B\u673A\uFF0C\u89C1 ",(0,n.jsx)(d.a,{href:"/orbien/docs/proxies/vhost",children:"\u865A\u62DF\u4E3B\u673A"}),"\u3002"]}),"\n",(0,n.jsx)(d.h2,{id:"\u793A\u4F8B\u7A7F\u900F-web-\u670D\u52A1",children:"\u793A\u4F8B\uFF1A\u7A7F\u900F Web \u670D\u52A1"}),"\n",(0,n.jsx)(d.p,{children:"\u670D\u52A1\u7AEF\uFF1A"}),"\n",(0,n.jsx)(d.pre,{children:(0,n.jsx)(d.code,{className:"language-toml",children:'# orbien-server.toml\nbindAddr = "0.0.0.0"\nbindPort = 9527\nvhostHTTPPort = 80\n'})}),"\n",(0,n.jsx)(d.p,{children:"\u5BA2\u6237\u7AEF\uFF1A"}),"\n",(0,n.jsx)(d.pre,{children:(0,n.jsx)(d.code,{className:"language-toml",children:'# orbien.toml\nserverAddr = "YOUR_SERVER_IP"\nserverPort = 9527\n\n[[proxies]]\nname = "web"\ntype = "http"\nlocalIP = "127.0.0.1"\nlocalPort = 8080\ncustomDomains = ["web.example.com"]\n'})}),"\n",(0,n.jsxs)(d.p,{children:["\u5C06 ",(0,n.jsx)(d.code,{children:"web.example.com"})," \u89E3\u6790\u5230\u670D\u52A1\u7AEF IP \u540E\u8BBF\u95EE\uFF1A"]}),"\n",(0,n.jsx)(d.pre,{children:(0,n.jsx)(d.code,{className:"language-shell",children:"curl http://web.example.com\n"})}),"\n",(0,n.jsx)(d.h2,{id:"\u53C2\u6570",children:"\u53C2\u6570"}),"\n",(0,n.jsxs)(d.table,{children:[(0,n.jsx)(d.thead,{children:(0,n.jsxs)(d.tr,{children:[(0,n.jsx)(d.th,{children:"\u53C2\u6570"}),(0,n.jsx)(d.th,{children:"\u5FC5\u586B"}),(0,n.jsx)(d.th,{children:"\u9ED8\u8BA4\u503C"}),(0,n.jsx)(d.th,{children:"\u8BF4\u660E"})]})}),(0,n.jsxs)(d.tbody,{children:[(0,n.jsxs)(d.tr,{children:[(0,n.jsx)(d.td,{children:(0,n.jsx)(d.code,{children:"name"})}),(0,n.jsx)(d.td,{children:"\u662F"}),(0,n.jsx)(d.td,{}),(0,n.jsx)(d.td,{children:"\u4EE3\u7406\u540D\u79F0\uFF0C\u552F\u4E00"})]}),(0,n.jsxs)(d.tr,{children:[(0,n.jsx)(d.td,{children:(0,n.jsx)(d.code,{children:"type"})}),(0,n.jsx)(d.td,{children:"\u662F"}),(0,n.jsx)(d.td,{}),(0,n.jsxs)(d.td,{children:["\u56FA\u5B9A\u4E3A ",(0,n.jsx)(d.code,{children:"http"})]})]}),(0,n.jsxs)(d.tr,{children:[(0,n.jsx)(d.td,{children:(0,n.jsx)(d.code,{children:"localIP"})}),(0,n.jsx)(d.td,{children:"\u5426"}),(0,n.jsx)(d.td,{children:(0,n.jsx)(d.code,{children:"127.0.0.1"})}),(0,n.jsx)(d.td,{children:"\u672C\u5730\u670D\u52A1\u5730\u5740"})]}),(0,n.jsxs)(d.tr,{children:[(0,n.jsx)(d.td,{children:(0,n.jsx)(d.code,{children:"localPort"})}),(0,n.jsx)(d.td,{children:"\u662F"}),(0,n.jsx)(d.td,{}),(0,n.jsx)(d.td,{children:"\u672C\u5730\u670D\u52A1\u7AEF\u53E3"})]}),(0,n.jsxs)(d.tr,{children:[(0,n.jsx)(d.td,{children:(0,n.jsx)(d.code,{children:"customDomains"})}),(0,n.jsx)(d.td,{children:"\u6761\u4EF6"}),(0,n.jsx)(d.td,{}),(0,n.jsxs)(d.td,{children:["\u81EA\u5B9A\u4E49\u57DF\u540D\uFF0C\u53EF\u591A\u4E2A\uFF1B\u4E0E ",(0,n.jsx)(d.code,{children:"subdomain"})," \u81F3\u5C11\u586B\u4E00\u9879"]})]}),(0,n.jsxs)(d.tr,{children:[(0,n.jsx)(d.td,{children:(0,n.jsx)(d.code,{children:"subdomain"})}),(0,n.jsx)(d.td,{children:"\u6761\u4EF6"}),(0,n.jsx)(d.td,{}),(0,n.jsxs)(d.td,{children:["\u5B50\u57DF\u540D\u524D\u7F00\uFF0C\u4E0E\u670D\u52A1\u7AEF ",(0,n.jsx)(d.code,{children:"subDomainHost"})," \u62FC\u63A5\uFF1B\u4E0E ",(0,n.jsx)(d.code,{children:"customDomains"})," \u81F3\u5C11\u586B\u4E00\u9879"]})]}),(0,n.jsxs)(d.tr,{children:[(0,n.jsx)(d.td,{children:(0,n.jsx)(d.code,{children:"locations"})}),(0,n.jsx)(d.td,{children:"\u5426"}),(0,n.jsx)(d.td,{}),(0,n.jsxs)(d.td,{children:["\u8DEF\u5F84\u524D\u7F00\uFF0C\u5982 ",(0,n.jsx)(d.code,{children:"/api"}),"\uFF1B\u7A7A\u8868\u793A\u5168\u90E8"]})]}),(0,n.jsxs)(d.tr,{children:[(0,n.jsx)(d.td,{children:(0,n.jsx)(d.code,{children:"hostHeaderRewrite"})}),(0,n.jsx)(d.td,{children:"\u5426"}),(0,n.jsx)(d.td,{}),(0,n.jsx)(d.td,{children:"\u6539\u5199\u8F6C\u53D1\u5230\u672C\u5730\u670D\u52A1\u7684 Host\uFF1B\u7A7A\u8868\u793A\u4E0D\u6539"})]}),(0,n.jsxs)(d.tr,{children:[(0,n.jsx)(d.td,{children:(0,n.jsx)(d.code,{children:"transport.bandwidthLimit"})}),(0,n.jsx)(d.td,{children:"\u5426"}),(0,n.jsx)(d.td,{}),(0,n.jsxs)(d.td,{children:["\u5E26\u5BBD\u9650\u5236\uFF0C\u5982 ",(0,n.jsx)(d.code,{children:"1MB"}),"\u3001",(0,n.jsx)(d.code,{children:"100KB"}),"\uFF1B\u7A7A\u8868\u793A\u4E0D\u9650\u5236"]})]}),(0,n.jsxs)(d.tr,{children:[(0,n.jsx)(d.td,{children:(0,n.jsx)(d.code,{children:"transport.bandwidthLimitMode"})}),(0,n.jsx)(d.td,{children:"\u5426"}),(0,n.jsx)(d.td,{children:(0,n.jsx)(d.code,{children:"client"})}),(0,n.jsxs)(d.td,{children:["\u9650\u901F\u7AEF\uFF1A",(0,n.jsx)(d.code,{children:"client"})," / ",(0,n.jsx)(d.code,{children:"server"})]})]}),(0,n.jsxs)(d.tr,{children:[(0,n.jsx)(d.td,{children:(0,n.jsx)(d.code,{children:"transport.proxyProtocolVersion"})}),(0,n.jsx)(d.td,{children:"\u5426"}),(0,n.jsx)(d.td,{}),(0,n.jsxs)(d.td,{children:["PROXY Protocol\uFF1A",(0,n.jsx)(d.code,{children:"v1"})," / ",(0,n.jsx)(d.code,{children:"v2"})]})]})]})]})]})}function x(e={}){let{wrapper:d}={...(0,t.R)(),...e.components};return d?(0,n.jsx)(d,{...e,children:(0,n.jsx)(h,{...e})}):h(e)}},7008(e,d,s){s.d(d,{R:()=>i,x:()=>c});var r=s(1763);let n={},t=r.createContext(n);function i(e){let d=r.useContext(t);return r.useMemo(function(){return"function"==typeof e?e(d):{...d,...e}},[d,e])}function c(e){let d;return d=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:i(e.components),r.createElement(t.Provider,{value:d},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/def3d52a.e1de427f.js b/assets/js/def3d52a.e1de427f.js new file mode 100644 index 0000000..c621ee5 --- /dev/null +++ b/assets/js/def3d52a.e1de427f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkorbien_docs=self.webpackChunkorbien_docs||[]).push([["394"],{8226(e,n,d){d.r(n),d.d(n,{metadata:()=>r,default:()=>x,frontMatter:()=>c,contentTitle:()=>i,toc:()=>o,assets:()=>l});var r=JSON.parse('{"id":"tunnels/udp","title":"UDP","description":"\u5C06\u5185\u7F51 UDP \u670D\u52A1\u6620\u5C04\u5230\u670D\u52A1\u7AEF\u516C\u7F51\u7AEF\u53E3\u3002","source":"@site/docs/tunnels/udp.md","sourceDirName":"tunnels","slug":"/tunnels/udp","permalink":"/orbien/docs/tunnels/udp","draft":false,"unlisted":false,"editUrl":"https://github.com/orbien-org/orbien/tree/main/docs/docs/tunnels/udp.md","tags":[],"version":"current","sidebarPosition":2,"frontMatter":{"sidebar_position":2,"sidebar_label":"UDP","title":"UDP"},"sidebar":"docsSidebar","previous":{"title":"TCP","permalink":"/orbien/docs/tunnels/tcp"},"next":{"title":"HTTP","permalink":"/orbien/docs/tunnels/http"}}'),s=d(1987),t=d(7008);let c={sidebar_position:2,sidebar_label:"UDP",title:"UDP"},i="UDP",l={},o=[{value:"\u793A\u4F8B\uFF1A\u7A7F\u900F DNS",id:"\u793A\u4F8B\u7A7F\u900F-dns",level:2},{value:"\u53C2\u6570",id:"\u53C2\u6570",level:2}];function h(e){let n={code:"code",h1:"h1",h2:"h2",header:"header",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,t.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.header,{children:(0,s.jsx)(n.h1,{id:"udp",children:"UDP"})}),"\n",(0,s.jsx)(n.p,{children:"\u5C06\u5185\u7F51 UDP \u670D\u52A1\u6620\u5C04\u5230\u670D\u52A1\u7AEF\u516C\u7F51\u7AEF\u53E3\u3002"}),"\n",(0,s.jsx)(n.h2,{id:"\u793A\u4F8B\u7A7F\u900F-dns",children:"\u793A\u4F8B\uFF1A\u7A7F\u900F DNS"}),"\n",(0,s.jsx)(n.p,{children:"\u670D\u52A1\u7AEF\uFF1A"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-toml",children:'# orbien-server.toml\nlisten = "0.0.0.0:9527"\n'})}),"\n",(0,s.jsx)(n.p,{children:"\u5BA2\u6237\u7AEF\uFF1A"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-toml",children:'# orbien.toml\nserver = "YOUR_SERVER_IP:9527"\n\n[[tunnels]]\nname = "dns"\nprotocol = "udp"\nservice = "127.0.0.1:53"\nremotePort = 9000\n'})}),"\n",(0,s.jsx)(n.p,{children:"\u5916\u7F51\u8BBF\u95EE\uFF1A"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-shell",children:"dig @YOUR_SERVER_IP -p 9000 example.com\n"})}),"\n",(0,s.jsx)(n.h2,{id:"\u53C2\u6570",children:"\u53C2\u6570"}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"\u53C2\u6570"}),(0,s.jsx)(n.th,{children:"\u5FC5\u586B"}),(0,s.jsx)(n.th,{children:"\u9ED8\u8BA4\u503C"}),(0,s.jsx)(n.th,{children:"\u8BF4\u660E"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"udpPacketSize"})}),(0,s.jsx)(n.td,{children:"\u5426"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"1500"})}),(0,s.jsx)(n.td,{children:"UDP \u6700\u5927\u62A5\u6587\u957F\u5EA6\uFF0C\u5BA2\u6237\u7AEF\u4E0E\u670D\u52A1\u7AEF\u9700\u4E00\u81F4"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"name"})}),(0,s.jsx)(n.td,{children:"\u662F"}),(0,s.jsx)(n.td,{}),(0,s.jsx)(n.td,{children:"\u96A7\u9053\u540D\u79F0\uFF0C\u552F\u4E00"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"protocol"})}),(0,s.jsx)(n.td,{children:"\u662F"}),(0,s.jsx)(n.td,{}),(0,s.jsxs)(n.td,{children:["\u56FA\u5B9A\u4E3A ",(0,s.jsx)(n.code,{children:"udp"})]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"service"})}),(0,s.jsx)(n.td,{children:"\u662F"}),(0,s.jsx)(n.td,{}),(0,s.jsxs)(n.td,{children:["\u672C\u5730\u670D\u52A1\u5730\u5740\uFF0C\u5982 ",(0,s.jsx)(n.code,{children:"127.0.0.1:53"})]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"remotePort"})}),(0,s.jsx)(n.td,{children:"\u662F"}),(0,s.jsx)(n.td,{}),(0,s.jsx)(n.td,{children:"\u670D\u52A1\u7AEF\u5BF9\u5916\u76D1\u542C\u7AEF\u53E3"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"transport.bandwidth"})}),(0,s.jsx)(n.td,{children:"\u5426"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"0"})}),(0,s.jsxs)(n.td,{children:["\u5E26\u5BBD\u4E0A\u9650\uFF08Mbps\uFF09\uFF1B",(0,s.jsx)(n.code,{children:"0"})," \u8868\u793A\u4E0D\u9650\u5236"]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"transport.bandwidthLimitSide"})}),(0,s.jsx)(n.td,{children:"\u5426"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"client"})}),(0,s.jsxs)(n.td,{children:["\u9650\u901F\u7AEF\uFF1A",(0,s.jsx)(n.code,{children:"client"})," / ",(0,s.jsx)(n.code,{children:"server"})]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"transport.proxyProtocolVersion"})}),(0,s.jsx)(n.td,{children:"\u5426"}),(0,s.jsx)(n.td,{}),(0,s.jsxs)(n.td,{children:["PROXY Protocol\uFF1A",(0,s.jsx)(n.code,{children:"v1"})," / ",(0,s.jsx)(n.code,{children:"v2"})]})]})]})]})]})}function x(e={}){let{wrapper:n}={...(0,t.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(h,{...e})}):h(e)}},7008(e,n,d){d.d(n,{R:()=>c,x:()=>i});var r=d(1763);let s={},t=r.createContext(s);function c(e){let n=r.useContext(t);return r.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function i(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:c(e.components),r.createElement(t.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/e6f0c936.252665bb.js b/assets/js/e6f0c936.252665bb.js deleted file mode 100644 index bae70a6..0000000 --- a/assets/js/e6f0c936.252665bb.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkorbien_docs=self.webpackChunkorbien_docs||[]).push([["440"],{7152(e,r,n){n.r(r),n.d(r,{metadata:()=>s,default:()=>N,frontMatter:()=>g,contentTitle:()=>v,toc:()=>$,assets:()=>_});var s=JSON.parse('{"id":"download","title":"\u4E0B\u8F7D","description":"\u6309\u64CD\u4F5C\u7CFB\u7EDF\u4E0E\u67B6\u6784\u9009\u62E9\u5BF9\u5E94\u5B89\u88C5\u5305","source":"@site/docs/download.mdx","sourceDirName":".","slug":"/download","permalink":"/orbien/docs/download","draft":false,"unlisted":false,"editUrl":"https://github.com/orbien-org/orbien/tree/main/docs/docs/download.mdx","tags":[],"version":"current","sidebarPosition":2,"frontMatter":{"sidebar_position":2,"sidebar_label":"\u4E0B\u8F7D"},"sidebar":"docsSidebar","previous":{"title":"\u4ECB\u7ECD","permalink":"/orbien/docs/intro"},"next":{"title":"\u5FEB\u901F\u5F00\u59CB","permalink":"/orbien/docs/quickstart"}}'),i=n(1987),a=n(7008),o=n(1763),l=n(3526);let t="dockerItem_OmD2",d="dockerMeta_so8T",c="dockerTag_NGl6",u="dockerCmd_lfBm",m="orbien-org/orbien",h=new Set(["orbien-server|linux|amd64|gnu","orbien-server|linux|amd64|musl","orbien-server|linux|arm64|gnu","orbien-server|linux|arm64|musl","orbien-server|windows|amd64","orbien-server|windows|arm64","orbien-server|darwin|amd64","orbien-server|darwin|arm64","orbien-server|freebsd|amd64","orbien|linux|amd64|gnu","orbien|linux|amd64|musl","orbien|linux|arm64|gnu","orbien|linux|arm64|musl","orbien|windows|amd64","orbien|windows|arm64","orbien|darwin|amd64","orbien|darwin|arm64","orbien|freebsd|amd64","orbien-desktop|linux|amd64|gnu","orbien-desktop|linux|arm64|gnu","orbien-desktop|windows|amd64","orbien-desktop|windows|arm64","orbien-desktop|darwin|amd64","orbien-desktop|darwin|arm64"]),b=[{os:"linux",arch:"amd64",libc:"gnu",note:"\u52A8\u6001\u94FE\u63A5 glibc"},{os:"linux",arch:"amd64",libc:"musl",note:"\u9759\u6001\u94FE\u63A5\uFF0C\u517C\u5BB9\u65E7 glibc"},{os:"linux",arch:"arm64",libc:"gnu",note:"\u52A8\u6001\u94FE\u63A5 glibc"},{os:"linux",arch:"arm64",libc:"musl",note:"\u9759\u6001\u94FE\u63A5\uFF0C\u517C\u5BB9\u65E7 glibc"},{os:"freebsd",arch:"amd64",note:""},{os:"windows",arch:"amd64",note:""},{os:"windows",arch:"arm64",note:""},{os:"darwin",arch:"amd64",note:"\u5982\u9047\u62E6\u622A\uFF0C\u4E8E\u7CFB\u7EDF\u8BBE\u7F6E\u4E2D\u5141\u8BB8\u8FD0\u884C"},{os:"darwin",arch:"arm64",note:"\u5982\u9047\u62E6\u622A\uFF0C\u4E8E\u7CFB\u7EDF\u8BBE\u7F6E\u4E2D\u5141\u8BB8\u8FD0\u884C"}],x={windows:"Windows",darwin:"macOS",linux:"Linux",freebsd:"FreeBSD"},p={amd64:"amd64",arm64:"arm64"},w=[{id:"server",name:"orbien-server",label:"\u670D\u52A1\u7AEF"},{id:"client",name:"orbien",label:"\u547D\u4EE4\u884C\u5BA2\u6237\u7AEF"},{id:"desktop",name:"orbien-desktop",label:"\u684C\u9762\u5BA2\u6237\u7AEF"}];function j(e,r){if("orbien-desktop"!==e)return"tar.gz";switch(r){case"linux":return"deb";case"windows":return"msi";case"darwin":return"dmg";default:return"tar.gz"}}function f(){let[e,r]=(0,o.useState)("2.1.0"),[n,s]=(0,o.useState)(null),[a,f]=(0,o.useState)(null);(0,o.useEffect)(()=>{f(function(){if("u"{let e=!1;return(async()=>{try{let n=await fetch(`https://api.github.com/repos/${m}/releases/latest`,{headers:{Accept:"application/vnd.github+json"}});if(!n.ok)return;let i=await n.json();if(e)return;let a=i.tag_name?.replace(/^v/,"");a&&r(a),i.assets&&s(new Set(i.assets.map(e=>e.name)))}catch{}})(),()=>{e=!0}},[]);let g=(0,o.useMemo)(()=>{let e=new Map,r=0;for(;r(0,i.jsx)("th",{children:e.label},e.id)),(0,i.jsx)("th",{children:"\u8BF4\u660E"})]})}),(0,i.jsx)("tbody",{children:b.map((r,s)=>{let o=g.get(s),t=void 0!==o,d="linux"===r.os?r.libc:void 0;return(0,i.jsxs)("tr",{className:(0,l.A)(a===r.os&&"rowHighlight_Rqix"),children:[t?(0,i.jsx)("td",{rowSpan:o,className:"osCell_btT0",children:x[r.os]}):null,(0,i.jsx)("td",{children:(0,i.jsx)("code",{children:p[r.arch]})}),(0,i.jsx)("td",{children:d?(0,i.jsx)("code",{className:"libcTag_lP5V",children:d}):null}),w.map(s=>{var a,o,l,t,c,u,b,x,p,w;let f,g,v="orbien-desktop"===s.name,_=v?"linux"===r.os&&"gnu"===r.libc?"gnu":void 0:d,$=(a=s.name,o=r.os,l=r.arch,h.has(_?`${a}|${o}|${l}|${_}`:`${a}|${o}|${l}`)),k=(t=s.name,c=r.os,u=v?void 0:d,f=j(t,c),"orbien-desktop"!==t&&u?`${u} \xb7 ${f}`:f),N=(b=s.name,x=r.os,p=r.arch,w=v?void 0:d,g=j(b,x),"orbien-desktop"===b?`${b}_${e}_${x}_${p}.${g}`:w?`${b}_${e}_${x}_${p}_${w}.${g}`:`${b}_${e}_${x}_${p}.${g}`),S=!n||n.has(N);return(0,i.jsx)("td",{children:$&&S?(0,i.jsx)("a",{className:"badge_x6zy",href:`https://github.com/${m}/releases/download/v${e}/${N}`,title:N,rel:"noopener noreferrer",children:k}):null},s.id)}),(0,i.jsx)("td",{className:"note_heJW",children:r.note})]},`${r.os}-${r.arch}-${r.libc??"default"}`)})})]})}),(0,i.jsxs)("div",{className:"docker_YIhP",children:[(0,i.jsx)("h3",{children:"Docker"}),(0,i.jsxs)("ul",{className:"dockerList_T7jC",children:[(0,i.jsxs)("li",{className:t,children:[(0,i.jsxs)("div",{className:d,children:[(0,i.jsx)("strong",{children:"orbien-server"}),(0,i.jsx)("span",{className:c,children:"server"})]}),(0,i.jsx)("code",{className:u,children:"docker pull ghcr.io/orbien-org/orbien-server:latest"})]}),(0,i.jsxs)("li",{className:t,children:[(0,i.jsxs)("div",{className:d,children:[(0,i.jsx)("strong",{children:"orbien"}),(0,i.jsx)("span",{className:c,children:"client"})]}),(0,i.jsx)("code",{className:u,children:"docker pull ghcr.io/orbien-org/orbien:latest"})]})]})]})]})}let g={sidebar_position:2,sidebar_label:"\u4E0B\u8F7D"},v="\u4E0B\u8F7D",_={},$=[];function k(e){let r={h1:"h1",header:"header",p:"p",...(0,a.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(r.header,{children:(0,i.jsx)(r.h1,{id:"\u4E0B\u8F7D",children:"\u4E0B\u8F7D"})}),"\n",(0,i.jsx)(r.p,{children:"\u6309\u64CD\u4F5C\u7CFB\u7EDF\u4E0E\u67B6\u6784\u9009\u62E9\u5BF9\u5E94\u5B89\u88C5\u5305"}),"\n",(0,i.jsx)(f,{})]})}function N(e={}){let{wrapper:r}={...(0,a.R)(),...e.components};return r?(0,i.jsx)(r,{...e,children:(0,i.jsx)(k,{...e})}):k(e)}},7008(e,r,n){n.d(r,{R:()=>o,x:()=>l});var s=n(1763);let i={},a=s.createContext(i);function o(e){let r=s.useContext(a);return s.useMemo(function(){return"function"==typeof e?e(r):{...r,...e}},[r,e])}function l(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),s.createElement(a.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/e6f0c936.a2849b94.js b/assets/js/e6f0c936.a2849b94.js new file mode 100644 index 0000000..baa8c70 --- /dev/null +++ b/assets/js/e6f0c936.a2849b94.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkorbien_docs=self.webpackChunkorbien_docs||[]).push([["440"],{7152(e,r,n){n.r(r),n.d(r,{metadata:()=>s,default:()=>I,frontMatter:()=>v,contentTitle:()=>k,toc:()=>$,assets:()=>_});var s=JSON.parse('{"id":"download","title":"\u4E0B\u8F7D","description":"\u6309\u64CD\u4F5C\u7CFB\u7EDF\u4E0E\u67B6\u6784\u9009\u62E9\u5BF9\u5E94\u5B89\u88C5\u5305","source":"@site/docs/download.mdx","sourceDirName":".","slug":"/download","permalink":"/orbien/docs/download","draft":false,"unlisted":false,"editUrl":"https://github.com/orbien-org/orbien/tree/main/docs/docs/download.mdx","tags":[],"version":"current","sidebarPosition":2,"frontMatter":{"sidebar_position":2,"sidebar_label":"\u4E0B\u8F7D"},"sidebar":"docsSidebar","previous":{"title":"\u4ECB\u7ECD","permalink":"/orbien/docs/intro"},"next":{"title":"\u5FEB\u901F\u5F00\u59CB","permalink":"/orbien/docs/quickstart"}}'),i=n(1987),o=n(7008),a=n(1763),d=n(3526),l=n(6475);let t="dockerItem_OmD2",c="dockerMeta_so8T",u="dockerTag_NGl6",m="dockerCmd_lfBm",h="orbien-org/orbien",b=new Set(["orbien-server|linux|amd64|gnu","orbien-server|linux|amd64|musl","orbien-server|linux|arm64|gnu","orbien-server|linux|arm64|musl","orbien-server|windows|amd64","orbien-server|windows|arm64","orbien-server|darwin|amd64","orbien-server|darwin|arm64","orbien-server|freebsd|amd64","orbien|linux|amd64|gnu","orbien|linux|amd64|musl","orbien|linux|arm64|gnu","orbien|linux|arm64|musl","orbien|windows|amd64","orbien|windows|arm64","orbien|darwin|amd64","orbien|darwin|arm64","orbien|freebsd|amd64","orbien-desktop|linux|amd64|gnu","orbien-desktop|linux|arm64|gnu","orbien-desktop|windows|amd64","orbien-desktop|windows|arm64","orbien-desktop|darwin|amd64","orbien-desktop|darwin|arm64"]),x=[{os:"linux",arch:"amd64",libc:"gnu",noteId:"glibc"},{os:"linux",arch:"amd64",libc:"musl",noteId:"musl"},{os:"linux",arch:"arm64",libc:"gnu",noteId:"glibc"},{os:"linux",arch:"arm64",libc:"musl",noteId:"musl"},{os:"freebsd",arch:"amd64",noteId:"none"},{os:"windows",arch:"amd64",noteId:"none"},{os:"windows",arch:"arm64",noteId:"none"},{os:"darwin",arch:"amd64",noteId:"macosGatekeeper"},{os:"darwin",arch:"arm64",noteId:"macosGatekeeper"}],p={windows:"Windows",darwin:"macOS",linux:"Linux",freebsd:"FreeBSD"},w={amd64:"amd64",arm64:"arm64"},j=[{id:"server",name:"orbien-server",label:(0,i.jsx)(l.A,{id:"download.product.server",children:"\u670D\u52A1\u7AEF"})},{id:"client",name:"orbien",label:(0,i.jsx)(l.A,{id:"download.product.client",children:"\u547D\u4EE4\u884C\u5BA2\u6237\u7AEF"})},{id:"desktop",name:"orbien-desktop",label:(0,i.jsx)(l.A,{id:"download.product.desktop",children:"\u684C\u9762\u5BA2\u6237\u7AEF"})}];function g(e,r){if("orbien-desktop"!==e)return"tar.gz";switch(r){case"linux":return"deb";case"windows":return"zip";case"darwin":return"dmg";default:return"tar.gz"}}function f(){let[e,r]=(0,a.useState)("3.0.0"),[n,s]=(0,a.useState)(null),[o,f]=(0,a.useState)(null);(0,a.useEffect)(()=>{f(function(){if("u"{let e=!1;return(async()=>{try{let n=await fetch(`https://api.github.com/repos/${h}/releases/latest`,{headers:{Accept:"application/vnd.github+json"}});if(!n.ok)return;let i=await n.json();if(e)return;let o=i.tag_name?.replace(/^v/,"");o&&r(o),i.assets&&s(new Set(i.assets.map(e=>e.name)))}catch{}})(),()=>{e=!0}},[]);let v=(0,a.useMemo)(()=>{let e=new Map,r=0;for(;r(0,i.jsx)("th",{children:e.label},e.id)),(0,i.jsx)("th",{children:(0,i.jsx)(l.A,{id:"download.col.note",children:"\u8BF4\u660E"})})]})}),(0,i.jsx)("tbody",{children:x.map((r,s)=>{let a=v.get(s),t=void 0!==a,c="linux"===r.os?r.libc:void 0;return(0,i.jsxs)("tr",{className:(0,d.A)(o===r.os&&"rowHighlight_Rqix"),children:[t?(0,i.jsx)("td",{rowSpan:a,className:"osCell_btT0",children:p[r.os]}):null,(0,i.jsx)("td",{children:(0,i.jsx)("code",{children:w[r.arch]})}),(0,i.jsx)("td",{children:c?(0,i.jsx)("code",{className:"libcTag_lP5V",children:c}):null}),j.map(s=>{var o,a,d,l,t,u,m,x,p,w;let j,f,v="orbien-desktop"===s.name,k=v?"linux"===r.os&&"gnu"===r.libc?"gnu":void 0:c,_=(o=s.name,a=r.os,d=r.arch,b.has(k?`${o}|${a}|${d}|${k}`:`${o}|${a}|${d}`)),$=(l=s.name,t=r.os,u=v?void 0:c,j=g(l,t),"orbien-desktop"!==l&&u?`${u} \xb7 ${j}`:j),N=(m=s.name,x=r.os,p=r.arch,w=v?void 0:c,f=g(m,x),"orbien-desktop"===m?`${m}_${e}_${x}_${p}.${f}`:w?`${m}_${e}_${x}_${p}_${w}.${f}`:`${m}_${e}_${x}_${p}.${f}`),I=!n||n.has(N);return(0,i.jsx)("td",{children:_&&I?(0,i.jsx)("a",{className:"badge_x6zy",href:`https://github.com/${h}/releases/download/v${e}/${N}`,title:N,rel:"noopener noreferrer",children:$}):null},s.id)}),(0,i.jsx)("td",{className:"note_heJW",children:function(e){switch(e){case"glibc":return(0,l.T)({id:"download.note.glibc",message:"\u52A8\u6001\u94FE\u63A5 glibc"});case"musl":return(0,l.T)({id:"download.note.musl",message:"\u9759\u6001\u94FE\u63A5\uFF0C\u517C\u5BB9\u65E7 glibc"});case"macosGatekeeper":return(0,l.T)({id:"download.note.macosGatekeeper",message:"\u5982\u9047\u62E6\u622A\uFF0C\u4E8E\u7CFB\u7EDF\u8BBE\u7F6E\u4E2D\u5141\u8BB8\u8FD0\u884C"});default:return""}}(r.noteId)})]},`${r.os}-${r.arch}-${r.libc??"default"}`)})})]})}),(0,i.jsxs)("div",{className:"docker_YIhP",children:[(0,i.jsx)("h3",{children:"Docker"}),(0,i.jsxs)("ul",{className:"dockerList_T7jC",children:[(0,i.jsxs)("li",{className:t,children:[(0,i.jsxs)("div",{className:c,children:[(0,i.jsx)("strong",{children:"orbien-server"}),(0,i.jsx)("span",{className:u,children:"server"})]}),(0,i.jsx)("code",{className:m,children:"docker pull ghcr.io/orbien-org/orbien-server:latest"})]}),(0,i.jsxs)("li",{className:t,children:[(0,i.jsxs)("div",{className:c,children:[(0,i.jsx)("strong",{children:"orbien"}),(0,i.jsx)("span",{className:u,children:"client"})]}),(0,i.jsx)("code",{className:m,children:"docker pull ghcr.io/orbien-org/orbien:latest"})]})]})]})]})}let v={sidebar_position:2,sidebar_label:"\u4E0B\u8F7D"},k="\u4E0B\u8F7D",_={},$=[];function N(e){let r={h1:"h1",header:"header",p:"p",...(0,o.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(r.header,{children:(0,i.jsx)(r.h1,{id:"\u4E0B\u8F7D",children:"\u4E0B\u8F7D"})}),"\n",(0,i.jsx)(r.p,{children:"\u6309\u64CD\u4F5C\u7CFB\u7EDF\u4E0E\u67B6\u6784\u9009\u62E9\u5BF9\u5E94\u5B89\u88C5\u5305"}),"\n",(0,i.jsx)(f,{})]})}function I(e={}){let{wrapper:r}={...(0,o.R)(),...e.components};return r?(0,i.jsx)(r,{...e,children:(0,i.jsx)(N,{...e})}):N(e)}},7008(e,r,n){n.d(r,{R:()=>a,x:()=>d});var s=n(1763);let i={},o=s.createContext(i);function a(e){let r=s.useContext(o);return s.useMemo(function(){return"function"==typeof e?e(r):{...r,...e}},[r,e])}function d(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:a(e.components),s.createElement(o.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/edefc60b.2eadef4f.js b/assets/js/edefc60b.2eadef4f.js new file mode 100644 index 0000000..dbd309f --- /dev/null +++ b/assets/js/edefc60b.2eadef4f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkorbien_docs=self.webpackChunkorbien_docs||[]).push([["41"],{7223(e,r,n){n.r(r),n.d(r,{metadata:()=>t,default:()=>p,frontMatter:()=>s,contentTitle:()=>c,toc:()=>d,assets:()=>a});var t=JSON.parse('{"id":"performance","title":"\u6027\u80FD\u6D4B\u8BD5","description":"\u4E0B\u9762\u662F\u5728\u672C\u5730\u56DE\u73AF\u4E2D\u5BF9\u5185\u5B58\u5360\u7528\u7684\u6027\u80FD\u6D4B\u8BD5\u7ED3\u679C\uFF0C\u4ECE\u4E0B\u56FE\u53EF\u4EE5\u53D1\u73B0\uFF0C\u76F8\u8F83\u4E8Efrp\uFF0COrbien\u7684\u5185\u5B58\u5360\u7528\u6BD4\u8F83\u4F4E\u4E14\u7A33\u5B9A\u3002","source":"@site/docs/performance.md","sourceDirName":".","slug":"/performance","permalink":"/orbien/docs/performance","draft":false,"unlisted":false,"editUrl":"https://github.com/orbien-org/orbien/tree/main/docs/docs/performance.md","tags":[],"version":"current","sidebarPosition":90,"frontMatter":{"sidebar_position":90,"sidebar_label":"\u6027\u80FD\u6D4B\u8BD5"},"sidebar":"docsSidebar","previous":{"title":"SpringBoot\u96C6\u6210","permalink":"/orbien/docs/integrations/springboot"},"next":{"title":"\u8DEF\u7EBF\u56FE","permalink":"/orbien/docs/roadmap"}}'),o=n(1987),i=n(7008);let s={sidebar_position:90,sidebar_label:"\u6027\u80FD\u6D4B\u8BD5"},c="\u6027\u80FD\u6D4B\u8BD5",a={},d=[];function l(e){let r={code:"code",h1:"h1",header:"header",img:"img",p:"p",...(0,i.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(r.header,{children:(0,o.jsx)(r.h1,{id:"\u6027\u80FD\u6D4B\u8BD5",children:"\u6027\u80FD\u6D4B\u8BD5"})}),"\n",(0,o.jsxs)(r.p,{children:["\u4E0B\u9762\u662F\u5728\u672C\u5730\u56DE\u73AF\u4E2D\u5BF9\u5185\u5B58\u5360\u7528\u7684\u6027\u80FD\u6D4B\u8BD5\u7ED3\u679C\uFF0C\u4ECE\u4E0B\u56FE\u53EF\u4EE5\u53D1\u73B0\uFF0C\u76F8\u8F83\u4E8E",(0,o.jsx)(r.code,{children:"frp"}),"\uFF0C",(0,o.jsx)(r.code,{children:"Orbien"}),"\u7684\u5185\u5B58\u5360\u7528\u6BD4\u8F83\u4F4E\u4E14\u7A33\u5B9A\u3002"]}),"\n",(0,o.jsx)(r.p,{children:(0,o.jsx)(r.img,{alt:"mem.png",src:n(4950).A+"",width:"1100",height:"650"})})]})}function p(e={}){let{wrapper:r}={...(0,i.R)(),...e.components};return r?(0,o.jsx)(r,{...e,children:(0,o.jsx)(l,{...e})}):l(e)}},4950(e,r,n){n.d(r,{A:()=>t});let t=n.p+"assets/images/mem-25019362d30f5d98b0f5120a0171b0e1.png"},7008(e,r,n){n.d(r,{R:()=>s,x:()=>c});var t=n(1763);let o={},i=t.createContext(o);function s(e){let r=t.useContext(i);return t.useMemo(function(){return"function"==typeof e?e(r):{...r,...e}},[r,e])}function c(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:s(e.components),t.createElement(i.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/edefc60b.4f596fb4.js b/assets/js/edefc60b.4f596fb4.js deleted file mode 100644 index d42a6b6..0000000 --- a/assets/js/edefc60b.4f596fb4.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkorbien_docs=self.webpackChunkorbien_docs||[]).push([["41"],{7223(e,r,n){n.r(r),n.d(r,{metadata:()=>t,default:()=>p,frontMatter:()=>s,contentTitle:()=>c,toc:()=>d,assets:()=>a});var t=JSON.parse('{"id":"performance","title":"\u6027\u80FD\u6D4B\u8BD5","description":"\u4E0B\u9762\u662F\u5728\u672C\u5730\u56DE\u73AF\u4E2D\u5BF9\u5185\u5B58\u5360\u7528\u7684\u6027\u80FD\u6D4B\u8BD5\u7ED3\u679C\uFF0C\u4ECE\u4E0B\u56FE\u53EF\u4EE5\u53D1\u73B0\uFF0C\u76F8\u8F83\u4E8Efrp\uFF0COrbien\u7684\u5185\u5B58\u5360\u7528\u6BD4\u8F83\u4F4E\u4E14\u7A33\u5B9A\uFF1B\u540E\u7EED\u5B8C\u5584\u4E00\u4E0B\u5176\u4ED6\u7EF4\u5EA6\u7684\u6D4B\u8BD5","source":"@site/docs/performance.md","sourceDirName":".","slug":"/performance","permalink":"/orbien/docs/performance","draft":false,"unlisted":false,"editUrl":"https://github.com/orbien-org/orbien/tree/main/docs/docs/performance.md","tags":[],"version":"current","sidebarPosition":90,"frontMatter":{"sidebar_position":90,"sidebar_label":"\u6027\u80FD\u6D4B\u8BD5"},"sidebar":"docsSidebar","previous":{"title":"SpringBoot\u96C6\u6210","permalink":"/orbien/docs/integrations/springboot"},"next":{"title":"\u8DEF\u7EBF\u56FE","permalink":"/orbien/docs/roadmap"}}'),o=n(1987),i=n(7008);let s={sidebar_position:90,sidebar_label:"\u6027\u80FD\u6D4B\u8BD5"},c="\u6027\u80FD\u6D4B\u8BD5",a={},d=[];function l(e){let r={code:"code",h1:"h1",header:"header",img:"img",p:"p",...(0,i.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(r.header,{children:(0,o.jsx)(r.h1,{id:"\u6027\u80FD\u6D4B\u8BD5",children:"\u6027\u80FD\u6D4B\u8BD5"})}),"\n",(0,o.jsxs)(r.p,{children:["\u4E0B\u9762\u662F\u5728\u672C\u5730\u56DE\u73AF\u4E2D\u5BF9\u5185\u5B58\u5360\u7528\u7684\u6027\u80FD\u6D4B\u8BD5\u7ED3\u679C\uFF0C\u4ECE\u4E0B\u56FE\u53EF\u4EE5\u53D1\u73B0\uFF0C\u76F8\u8F83\u4E8E",(0,o.jsx)(r.code,{children:"frp"}),"\uFF0C",(0,o.jsx)(r.code,{children:"Orbien"}),"\u7684\u5185\u5B58\u5360\u7528\u6BD4\u8F83\u4F4E\u4E14\u7A33\u5B9A\uFF1B\u540E\u7EED\u5B8C\u5584\u4E00\u4E0B\u5176\u4ED6\u7EF4\u5EA6\u7684\u6D4B\u8BD5"]}),"\n",(0,o.jsx)(r.p,{children:(0,o.jsx)(r.img,{alt:"mem.png",src:n(4950).A+"",width:"1100",height:"650"})})]})}function p(e={}){let{wrapper:r}={...(0,i.R)(),...e.components};return r?(0,o.jsx)(r,{...e,children:(0,o.jsx)(l,{...e})}):l(e)}},4950(e,r,n){n.d(r,{A:()=>t});let t=n.p+"assets/images/mem-25019362d30f5d98b0f5120a0171b0e1.png"},7008(e,r,n){n.d(r,{R:()=>s,x:()=>c});var t=n(1763);let o={},i=t.createContext(o);function s(e){let r=t.useContext(i);return t.useMemo(function(){return"function"==typeof e?e(r):{...r,...e}},[r,e])}function c(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:s(e.components),t.createElement(i.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/f325f636.27e21513.js b/assets/js/f325f636.27e21513.js deleted file mode 100644 index a595b7b..0000000 --- a/assets/js/f325f636.27e21513.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkorbien_docs=self.webpackChunkorbien_docs||[]).push([["475"],{3218(e,r,d){d.r(r),d.d(r,{metadata:()=>t,default:()=>x,frontMatter:()=>o,contentTitle:()=>i,toc:()=>l,assets:()=>c});var t=JSON.parse('{"id":"features/real-ip","title":"\u83B7\u53D6\u771F\u5B9E IP","description":"\u7A7F\u900F\u540E\u672C\u5730\u670D\u52A1\u9ED8\u8BA4\u770B\u5230\u7684\u662F\u96A7\u9053\u5730\u5740\u3002\u53EF\u7528\u4EE5\u4E0B\u65B9\u5F0F\u62FF\u5230\u8BBF\u5BA2\u771F\u5B9E IP\u3002","source":"@site/docs/features/real-ip.md","sourceDirName":"features","slug":"/features/real-ip","permalink":"/orbien/docs/features/real-ip","draft":false,"unlisted":false,"editUrl":"https://github.com/orbien-org/orbien/tree/main/docs/docs/features/real-ip.md","tags":[],"version":"current","sidebarPosition":5,"frontMatter":{"sidebar_position":5,"sidebar_label":"\u83B7\u53D6\u771F\u5B9E IP","title":"\u83B7\u53D6\u771F\u5B9E IP"},"sidebar":"docsSidebar","previous":{"title":"\u5E26\u5BBD\u9650\u5236","permalink":"/orbien/docs/features/bandwidth"},"next":{"title":"SpringBoot\u96C6\u6210","permalink":"/orbien/docs/integrations/springboot"}}'),n=d(1987),s=d(7008);let o={sidebar_position:5,sidebar_label:"\u83B7\u53D6\u771F\u5B9E IP",title:"\u83B7\u53D6\u771F\u5B9E IP"},i="\u83B7\u53D6\u771F\u5B9E IP",c={},l=[{value:"PROXY Protocol",id:"proxy-protocol",level:2},{value:"X-Forwarded-For",id:"x-forwarded-for",level:2},{value:"\u670D\u52A1\u7AEF\u524D\u7F6E\u8D1F\u8F7D\u5747\u8861",id:"\u670D\u52A1\u7AEF\u524D\u7F6E\u8D1F\u8F7D\u5747\u8861",level:2}];function h(e){let r={code:"code",h1:"h1",h2:"h2",header:"header",li:"li",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,s.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(r.header,{children:(0,n.jsx)(r.h1,{id:"\u83B7\u53D6\u771F\u5B9E-ip",children:"\u83B7\u53D6\u771F\u5B9E IP"})}),"\n",(0,n.jsx)(r.p,{children:"\u7A7F\u900F\u540E\u672C\u5730\u670D\u52A1\u9ED8\u8BA4\u770B\u5230\u7684\u662F\u96A7\u9053\u5730\u5740\u3002\u53EF\u7528\u4EE5\u4E0B\u65B9\u5F0F\u62FF\u5230\u8BBF\u5BA2\u771F\u5B9E IP\u3002"}),"\n",(0,n.jsx)(r.h2,{id:"proxy-protocol",children:"PROXY Protocol"}),"\n",(0,n.jsx)(r.p,{children:"\u5BA2\u6237\u7AEF\u8FDE\u63A5\u672C\u5730\u670D\u52A1\u65F6\u5199\u5165 PROXY Protocol \u5934\u3002\u672C\u5730\u670D\u52A1\u9700\u652F\u6301\u89E3\u6790\uFF08\u5982 Nginx\u3001HAProxy\uFF09\u3002"}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-toml",children:'# orbien.toml\nserverAddr = "YOUR_SERVER_IP"\nserverPort = 9527\n\n[[proxies]]\nname = "web"\ntype = "tcp"\nlocalIP = "127.0.0.1"\nlocalPort = 80\nremotePort = 9000\ntransport.proxyProtocolVersion = "v2"\n'})}),"\n",(0,n.jsxs)(r.p,{children:["\u9002\u7528\u4E8E ",(0,n.jsx)(r.code,{children:"tcp"})," / ",(0,n.jsx)(r.code,{children:"udp"})," / ",(0,n.jsx)(r.code,{children:"http"})," / ",(0,n.jsx)(r.code,{children:"https"}),"\uFF08\u900F\u4F20\uFF09\u3002",(0,n.jsx)(r.code,{children:"https2http"})," \u4E0D\u53EF\u7528\u3002"]}),"\n",(0,n.jsxs)(r.table,{children:[(0,n.jsx)(r.thead,{children:(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.th,{children:"\u53C2\u6570"}),(0,n.jsx)(r.th,{children:"\u5FC5\u586B"}),(0,n.jsx)(r.th,{children:"\u9ED8\u8BA4\u503C"}),(0,n.jsx)(r.th,{children:"\u8BF4\u660E"})]})}),(0,n.jsx)(r.tbody,{children:(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:(0,n.jsx)(r.code,{children:"transport.proxyProtocolVersion"})}),(0,n.jsx)(r.td,{children:"\u5426"}),(0,n.jsx)(r.td,{}),(0,n.jsxs)(r.td,{children:[(0,n.jsx)(r.code,{children:"v1"})," / ",(0,n.jsx)(r.code,{children:"v2"}),"\uFF1B\u7A7A\u8868\u793A\u5173\u95ED"]})]})})]}),"\n",(0,n.jsx)(r.h2,{id:"x-forwarded-for",children:"X-Forwarded-For"}),"\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.code,{children:"http"})," \u7531\u670D\u52A1\u7AEF\u81EA\u52A8\u6CE8\u5165\uFF1B",(0,n.jsx)(r.code,{children:"https"})," + ",(0,n.jsx)(r.code,{children:"https2http"})," \u7531\u5BA2\u6237\u7AEF\u63D2\u4EF6\u81EA\u52A8\u6CE8\u5165\uFF0C\u65E0\u9700\u989D\u5916\u914D\u7F6E\uFF1A"]}),"\n",(0,n.jsxs)(r.ul,{children:["\n",(0,n.jsxs)(r.li,{children:[(0,n.jsx)(r.code,{children:"X-Forwarded-For"}),"\uFF1A\u8BBF\u5BA2 IP"]}),"\n",(0,n.jsxs)(r.li,{children:[(0,n.jsx)(r.code,{children:"X-Forwarded-Proto"}),"\uFF1A",(0,n.jsx)(r.code,{children:"http"})," \u6216 ",(0,n.jsx)(r.code,{children:"https"})]}),"\n"]}),"\n",(0,n.jsx)(r.p,{children:"\u5E94\u7528\u4ECE\u8BF7\u6C42\u5934\u8BFB\u53D6\u5373\u53EF\u3002"}),"\n",(0,n.jsx)(r.h2,{id:"\u670D\u52A1\u7AEF\u524D\u7F6E\u8D1F\u8F7D\u5747\u8861",children:"\u670D\u52A1\u7AEF\u524D\u7F6E\u8D1F\u8F7D\u5747\u8861"}),"\n",(0,n.jsx)(r.p,{children:"\u82E5 orbien-server \u524D\u8FD8\u6709 CDN / \u8D1F\u8F7D\u5747\u8861\uFF0C\u9700\u5728\u670D\u52A1\u7AEF\u5F00\u542F PROXY Protocol\uFF0C\u63A5\u6536\u4E0A\u6E38\u4F20\u9012\u7684\u771F\u5B9E IP\uFF1A"}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-toml",children:'# orbien-server.toml\nbindAddr = "0.0.0.0"\nbindPort = 9527\n\nproxyProtocol = true\nproxyProtocolTrustedCidrs = ["10.0.0.0/8", "192.168.0.0/16"]\nproxyProtocolTimeoutSecs = 5\ndenySrcCidrs = ["1.2.3.4/32"]\n'})}),"\n",(0,n.jsxs)(r.table,{children:[(0,n.jsx)(r.thead,{children:(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.th,{children:"\u53C2\u6570"}),(0,n.jsx)(r.th,{children:"\u5FC5\u586B"}),(0,n.jsx)(r.th,{children:"\u9ED8\u8BA4\u503C"}),(0,n.jsx)(r.th,{children:"\u8BF4\u660E"})]})}),(0,n.jsxs)(r.tbody,{children:[(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:(0,n.jsx)(r.code,{children:"proxyProtocol"})}),(0,n.jsx)(r.td,{children:"\u5426"}),(0,n.jsx)(r.td,{children:(0,n.jsx)(r.code,{children:"false"})}),(0,n.jsx)(r.td,{children:"\u662F\u5426\u89E3\u6790\u4E0A\u6E38 PROXY Protocol"})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:(0,n.jsx)(r.code,{children:"proxyProtocolTrustedCidrs"})}),(0,n.jsx)(r.td,{children:"\u5426"}),(0,n.jsx)(r.td,{}),(0,n.jsx)(r.td,{children:"\u4FE1\u4EFB\u7684\u4E0A\u6E38 CIDR\uFF1B\u7A7A\u8868\u793A\u4FE1\u4EFB\u6240\u6709\uFF08\u6709\u4F2A\u9020\u98CE\u9669\uFF09"})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:(0,n.jsx)(r.code,{children:"proxyProtocolTimeoutSecs"})}),(0,n.jsx)(r.td,{children:"\u5426"}),(0,n.jsx)(r.td,{children:(0,n.jsx)(r.code,{children:"5"})}),(0,n.jsx)(r.td,{children:"\u8BFB\u53D6 PP \u5934\u8D85\u65F6\uFF08\u79D2\uFF09"})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:(0,n.jsx)(r.code,{children:"denySrcCidrs"})}),(0,n.jsx)(r.td,{children:"\u5426"}),(0,n.jsx)(r.td,{}),(0,n.jsx)(r.td,{children:"\u62D2\u7EDD\u7684\u8BBF\u5BA2\u6E90 CIDR"})]})]})]})]})}function x(e={}){let{wrapper:r}={...(0,s.R)(),...e.components};return r?(0,n.jsx)(r,{...e,children:(0,n.jsx)(h,{...e})}):h(e)}},7008(e,r,d){d.d(r,{R:()=>o,x:()=>i});var t=d(1763);let n={},s=t.createContext(n);function o(e){let r=t.useContext(s);return t.useMemo(function(){return"function"==typeof e?e(r):{...r,...e}},[r,e])}function i(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:o(e.components),t.createElement(s.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/f325f636.7a8aa195.js b/assets/js/f325f636.7a8aa195.js new file mode 100644 index 0000000..e5f3448 --- /dev/null +++ b/assets/js/f325f636.7a8aa195.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkorbien_docs=self.webpackChunkorbien_docs||[]).push([["475"],{3218(e,r,t){t.r(r),t.d(r,{metadata:()=>n,default:()=>a,frontMatter:()=>s,contentTitle:()=>i,toc:()=>c,assets:()=>l});var n=JSON.parse('{"id":"features/real-ip","title":"\u83B7\u53D6\u771F\u5B9E IP","description":"\u7A7F\u900F\u540E\u672C\u5730\u670D\u52A1\u9ED8\u8BA4\u770B\u5230\u7684\u662F\u96A7\u9053\u5730\u5740\u3002\u53EF\u7528\u4EE5\u4E0B\u65B9\u5F0F\u62FF\u5230\u8BBF\u5BA2\u771F\u5B9E IP\u3002","source":"@site/docs/features/real-ip.md","sourceDirName":"features","slug":"/features/real-ip","permalink":"/orbien/docs/features/real-ip","draft":false,"unlisted":false,"editUrl":"https://github.com/orbien-org/orbien/tree/main/docs/docs/features/real-ip.md","tags":[],"version":"current","sidebarPosition":5,"frontMatter":{"sidebar_position":5,"sidebar_label":"\u83B7\u53D6\u771F\u5B9E IP","title":"\u83B7\u53D6\u771F\u5B9E IP"},"sidebar":"docsSidebar","previous":{"title":"\u5E26\u5BBD\u9650\u5236","permalink":"/orbien/docs/features/bandwidth"},"next":{"title":"SpringBoot\u96C6\u6210","permalink":"/orbien/docs/integrations/springboot"}}'),o=t(1987),d=t(7008);let s={sidebar_position:5,sidebar_label:"\u83B7\u53D6\u771F\u5B9E IP",title:"\u83B7\u53D6\u771F\u5B9E IP"},i="\u83B7\u53D6\u771F\u5B9E IP",l={},c=[{value:"PROXY Protocol",id:"proxy-protocol",level:2},{value:"X-Forwarded-For",id:"x-forwarded-for",level:2},{value:"\u8BF4\u660E",id:"\u8BF4\u660E",level:2}];function h(e){let r={code:"code",h1:"h1",h2:"h2",header:"header",li:"li",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,d.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(r.header,{children:(0,o.jsx)(r.h1,{id:"\u83B7\u53D6\u771F\u5B9E-ip",children:"\u83B7\u53D6\u771F\u5B9E IP"})}),"\n",(0,o.jsx)(r.p,{children:"\u7A7F\u900F\u540E\u672C\u5730\u670D\u52A1\u9ED8\u8BA4\u770B\u5230\u7684\u662F\u96A7\u9053\u5730\u5740\u3002\u53EF\u7528\u4EE5\u4E0B\u65B9\u5F0F\u62FF\u5230\u8BBF\u5BA2\u771F\u5B9E IP\u3002"}),"\n",(0,o.jsx)(r.h2,{id:"proxy-protocol",children:"PROXY Protocol"}),"\n",(0,o.jsx)(r.p,{children:"\u5BA2\u6237\u7AEF\u8FDE\u63A5\u672C\u5730\u670D\u52A1\u65F6\u5199\u5165 PROXY Protocol \u5934\u3002\u672C\u5730\u670D\u52A1\u9700\u652F\u6301\u89E3\u6790\uFF08\u5982 Nginx\u3001HAProxy\uFF09\u3002"}),"\n",(0,o.jsx)(r.pre,{children:(0,o.jsx)(r.code,{className:"language-toml",children:'# orbien.toml\nserver = "YOUR_SERVER_IP:9527"\n\n[[tunnels]]\nname = "web"\nprotocol = "tcp"\nservice = "127.0.0.1:80"\nremotePort = 9000\ntransport.proxyProtocolVersion = "v2"\n'})}),"\n",(0,o.jsxs)(r.p,{children:["\u9002\u7528\u4E8E ",(0,o.jsx)(r.code,{children:"tcp"})," / ",(0,o.jsx)(r.code,{children:"udp"})," / ",(0,o.jsx)(r.code,{children:"http"})," / ",(0,o.jsx)(r.code,{children:"https"}),"\uFF08\u900F\u4F20\uFF09\u3002",(0,o.jsx)(r.code,{children:"tls-term"}),"\uFF08TLS\u7EC8\u6B62\uFF09 \u4E0D\u53EF\u7528\u3002"]}),"\n",(0,o.jsxs)(r.table,{children:[(0,o.jsx)(r.thead,{children:(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.th,{children:"\u53C2\u6570"}),(0,o.jsx)(r.th,{children:"\u5FC5\u586B"}),(0,o.jsx)(r.th,{children:"\u9ED8\u8BA4\u503C"}),(0,o.jsx)(r.th,{children:"\u8BF4\u660E"})]})}),(0,o.jsx)(r.tbody,{children:(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:(0,o.jsx)(r.code,{children:"transport.proxyProtocolVersion"})}),(0,o.jsx)(r.td,{children:"\u5426"}),(0,o.jsx)(r.td,{}),(0,o.jsxs)(r.td,{children:[(0,o.jsx)(r.code,{children:"v1"})," / ",(0,o.jsx)(r.code,{children:"v2"}),"\uFF1B\u7A7A\u8868\u793A\u5173\u95ED"]})]})})]}),"\n",(0,o.jsx)(r.h2,{id:"x-forwarded-for",children:"X-Forwarded-For"}),"\n",(0,o.jsxs)(r.p,{children:[(0,o.jsx)(r.code,{children:"http"})," \u7531\u670D\u52A1\u7AEF\u81EA\u52A8\u6CE8\u5165\uFF1B",(0,o.jsx)(r.code,{children:"https"})," + ",(0,o.jsx)(r.code,{children:"tls-term"})," \u7531\u5BA2\u6237\u7AEF\u63D2\u4EF6\u81EA\u52A8\u6CE8\u5165\uFF0C\u65E0\u9700\u989D\u5916\u914D\u7F6E\uFF1A"]}),"\n",(0,o.jsxs)(r.ul,{children:["\n",(0,o.jsxs)(r.li,{children:[(0,o.jsx)(r.code,{children:"X-Forwarded-For"}),"\uFF1A\u8BBF\u5BA2 IP"]}),"\n",(0,o.jsxs)(r.li,{children:[(0,o.jsx)(r.code,{children:"X-Forwarded-Proto"}),"\uFF1A",(0,o.jsx)(r.code,{children:"http"})," \u6216 ",(0,o.jsx)(r.code,{children:"https"})]}),"\n"]}),"\n",(0,o.jsx)(r.p,{children:"\u5E94\u7528\u4ECE\u8BF7\u6C42\u5934\u8BFB\u53D6\u5373\u53EF\u3002"}),"\n",(0,o.jsx)(r.h2,{id:"\u8BF4\u660E",children:"\u8BF4\u660E"}),"\n",(0,o.jsxs)(r.p,{children:["\u670D\u52A1\u7AEF\u4E0D\u89E3\u6790\u524D\u7F6E\u8D1F\u8F7D\u5747\u8861\u7684 PROXY Protocol\u3002\u8BBF\u5BA2\u6E90\u5730\u5740\u4EE5\u76F4\u8FDE ",(0,o.jsx)(r.code,{children:"proxyAddr"})," \u7684 TCP peer \u4E3A\u51C6\u3002"]})]})}function a(e={}){let{wrapper:r}={...(0,d.R)(),...e.components};return r?(0,o.jsx)(r,{...e,children:(0,o.jsx)(h,{...e})}):h(e)}},7008(e,r,t){t.d(r,{R:()=>s,x:()=>i});var n=t(1763);let o={},d=n.createContext(o);function s(e){let r=n.useContext(d);return n.useMemo(function(){return"function"==typeof e?e(r):{...r,...e}},[r,e])}function i(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:s(e.components),n.createElement(d.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/fd368041.c762b37b.js b/assets/js/fd368041.c762b37b.js deleted file mode 100644 index 5ea4cc4..0000000 --- a/assets/js/fd368041.c762b37b.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkorbien_docs=self.webpackChunkorbien_docs||[]).push([["364"],{1011(e,r,t){t.r(r),t.d(r,{metadata:()=>s,default:()=>a,frontMatter:()=>l,contentTitle:()=>i,toc:()=>o,assets:()=>c});var s=JSON.parse('{"id":"transport/tls","title":"TLS","description":"\u63A7\u5236\u901A\u9053 TLS\u3002\u9002\u7528\u4E8E tcp / websocket / kcp\uFF08QUIC \u81EA\u8EAB\u5DF2\u52A0\u5BC6\uFF0C\u4F46\u8BC1\u4E66\u8DEF\u5F84\u5B57\u6BB5\u4ECD\u53EF\u7528\u4E8E QUIC \u8EAB\u4EFD\u6821\u9A8C\uFF09\u3002","source":"@site/docs/transport/tls.md","sourceDirName":"transport","slug":"/transport/tls","permalink":"/orbien/docs/transport/tls","draft":false,"unlisted":false,"editUrl":"https://github.com/orbien-org/orbien/tree/main/docs/docs/transport/tls.md","tags":[],"version":"current","sidebarPosition":3,"frontMatter":{"sidebar_position":3,"sidebar_label":"TLS","title":"TLS"},"sidebar":"docsSidebar","previous":{"title":"TCP \u591A\u8DEF\u590D\u7528","permalink":"/orbien/docs/transport/tcp-mux"},"next":{"title":"\u8EAB\u4EFD\u8BA4\u8BC1","permalink":"/orbien/docs/features/authentication"}}'),n=t(1987),d=t(7008);let l={sidebar_position:3,sidebar_label:"TLS",title:"TLS"},i="TLS",c={},o=[{value:"\u65B9\u5F0F\u4E00\uFF1A\u4EC5\u52A0\u5BC6",id:"\u65B9\u5F0F\u4E00\u4EC5\u52A0\u5BC6",level:2},{value:"\u65B9\u5F0F\u4E8C\uFF1A\u6821\u9A8C\u670D\u52A1\u7AEF\u8BC1\u4E66",id:"\u65B9\u5F0F\u4E8C\u6821\u9A8C\u670D\u52A1\u7AEF\u8BC1\u4E66",level:2},{value:"\u65B9\u5F0F\u4E09\uFF1A\u53CC\u5411\u8BA4\u8BC1\uFF08mTLS\uFF09",id:"\u65B9\u5F0F\u4E09\u53CC\u5411\u8BA4\u8BC1mtls",level:2},{value:"\u5BA2\u6237\u7AEF\u53C2\u6570",id:"\u5BA2\u6237\u7AEF\u53C2\u6570",level:2},{value:"\u670D\u52A1\u7AEF\u53C2\u6570",id:"\u670D\u52A1\u7AEF\u53C2\u6570",level:2}];function h(e){let r={code:"code",h1:"h1",h2:"h2",header:"header",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,d.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(r.header,{children:(0,n.jsx)(r.h1,{id:"tls",children:"TLS"})}),"\n",(0,n.jsxs)(r.p,{children:["\u63A7\u5236\u901A\u9053 TLS\u3002\u9002\u7528\u4E8E ",(0,n.jsx)(r.code,{children:"tcp"})," / ",(0,n.jsx)(r.code,{children:"websocket"})," / ",(0,n.jsx)(r.code,{children:"kcp"}),"\uFF08QUIC \u81EA\u8EAB\u5DF2\u52A0\u5BC6\uFF0C\u4F46\u8BC1\u4E66\u8DEF\u5F84\u5B57\u6BB5\u4ECD\u53EF\u7528\u4E8E QUIC \u8EAB\u4EFD\u6821\u9A8C\uFF09\u3002"]}),"\n",(0,n.jsx)(r.p,{children:"\u4E09\u79CD\u65B9\u5F0F\uFF1A"}),"\n",(0,n.jsxs)(r.ol,{children:["\n",(0,n.jsxs)(r.li,{children:[(0,n.jsx)(r.strong,{children:"\u4EC5\u52A0\u5BC6"}),"\uFF1A\u9ED8\u8BA4\uFF0C\u4E0D\u6821\u9A8C\u8BC1\u4E66"]}),"\n",(0,n.jsxs)(r.li,{children:[(0,n.jsx)(r.strong,{children:"\u6821\u9A8C\u670D\u52A1\u7AEF\u8BC1\u4E66"}),"\uFF1A\u5BA2\u6237\u7AEF\u4FE1\u4EFB CA\uFF0C\u6821\u9A8C\u670D\u52A1\u7AEF\u8EAB\u4EFD"]}),"\n",(0,n.jsxs)(r.li,{children:[(0,n.jsx)(r.strong,{children:"\u53CC\u5411\u8BA4\u8BC1\uFF08mTLS\uFF09"}),"\uFF1A\u53CC\u65B9\u4E92\u9A8C\u8BC1\u4E66"]}),"\n"]}),"\n",(0,n.jsx)(r.h2,{id:"\u65B9\u5F0F\u4E00\u4EC5\u52A0\u5BC6",children:"\u65B9\u5F0F\u4E00\uFF1A\u4EC5\u52A0\u5BC6"}),"\n",(0,n.jsxs)(r.p,{children:["\u4E0D\u586B ",(0,n.jsx)(r.code,{children:"trustedCaFile"}),"\uFF0C\u5BA2\u6237\u7AEF\u8DF3\u8FC7\u8BC1\u4E66\u6821\u9A8C\uFF1B\u670D\u52A1\u7AEF\u8BC1\u4E66\u53EF\u7701\u7565\uFF08\u4E34\u65F6\u81EA\u7B7E\uFF09\u3002"]}),"\n",(0,n.jsx)(r.p,{children:"\u670D\u52A1\u7AEF\uFF1A"}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-toml",children:"# orbien-server.toml\n[transport.tls]\nforce = false\n"})}),"\n",(0,n.jsx)(r.p,{children:"\u5BA2\u6237\u7AEF\uFF1A"}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-toml",children:"# orbien.toml\n[transport.tls]\nenable = true\ndisableCustomTLSFirstByte = true\n"})}),"\n",(0,n.jsx)(r.h2,{id:"\u65B9\u5F0F\u4E8C\u6821\u9A8C\u670D\u52A1\u7AEF\u8BC1\u4E66",children:"\u65B9\u5F0F\u4E8C\uFF1A\u6821\u9A8C\u670D\u52A1\u7AEF\u8BC1\u4E66"}),"\n",(0,n.jsx)(r.p,{children:"\u670D\u52A1\u7AEF\u63D0\u4F9B\u8BC1\u4E66\uFF1B\u5BA2\u6237\u7AEF\u7528 CA \u6821\u9A8C\uFF0C\u5E76\u8BBE\u7F6E SNI\u3002"}),"\n",(0,n.jsx)(r.p,{children:"\u670D\u52A1\u7AEF\uFF1A"}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-toml",children:'# orbien-server.toml\n[transport.tls]\nforce = true\ncertFile = "/path/to/server.crt"\nkeyFile = "/path/to/server.key"\n'})}),"\n",(0,n.jsx)(r.p,{children:"\u5BA2\u6237\u7AEF\uFF1A"}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-toml",children:'# orbien.toml\n[transport.tls]\nenable = true\ntrustedCaFile = "/path/to/ca.crt"\nserverName = "orbien.example.com"\ndisableCustomTLSFirstByte = true\n'})}),"\n",(0,n.jsx)(r.h2,{id:"\u65B9\u5F0F\u4E09\u53CC\u5411\u8BA4\u8BC1mtls",children:"\u65B9\u5F0F\u4E09\uFF1A\u53CC\u5411\u8BA4\u8BC1\uFF08mTLS\uFF09"}),"\n",(0,n.jsxs)(r.p,{children:["\u53CC\u65B9\u5747\u6821\u9A8C\u5BF9\u65B9\u8BC1\u4E66\u3002\u670D\u52A1\u7AEF\u914D\u7F6E ",(0,n.jsx)(r.code,{children:"trustedCaFile"})," \u65F6\u4F1A\u81EA\u52A8 ",(0,n.jsx)(r.code,{children:"force = true"}),"\u3002"]}),"\n",(0,n.jsx)(r.p,{children:"\u670D\u52A1\u7AEF\uFF1A"}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-toml",children:'# orbien-server.toml\n[transport.tls]\nforce = true\ncertFile = "/path/to/server.crt"\nkeyFile = "/path/to/server.key"\ntrustedCaFile = "/path/to/ca.crt"\n'})}),"\n",(0,n.jsx)(r.p,{children:"\u5BA2\u6237\u7AEF\uFF1A"}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-toml",children:'# orbien.toml\n[transport.tls]\nenable = true\ncertFile = "/path/to/client.crt"\nkeyFile = "/path/to/client.key"\ntrustedCaFile = "/path/to/ca.crt"\nserverName = "orbien.example.com"\ndisableCustomTLSFirstByte = true\n'})}),"\n",(0,n.jsx)(r.h2,{id:"\u5BA2\u6237\u7AEF\u53C2\u6570",children:"\u5BA2\u6237\u7AEF\u53C2\u6570"}),"\n",(0,n.jsxs)(r.table,{children:[(0,n.jsx)(r.thead,{children:(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.th,{children:"\u53C2\u6570"}),(0,n.jsx)(r.th,{children:"\u5FC5\u586B"}),(0,n.jsx)(r.th,{children:"\u9ED8\u8BA4\u503C"}),(0,n.jsx)(r.th,{children:"\u8BF4\u660E"})]})}),(0,n.jsxs)(r.tbody,{children:[(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:(0,n.jsx)(r.code,{children:"transport.tls.enable"})}),(0,n.jsx)(r.td,{children:"\u5426"}),(0,n.jsx)(r.td,{children:(0,n.jsx)(r.code,{children:"true"})}),(0,n.jsx)(r.td,{children:"\u542F\u7528 TLS\uFF1BQUIC \u672C\u8EAB\u5DF2\u52A0\u5BC6\uFF0C\u6B64\u9879\u65E0\u6548"})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:(0,n.jsx)(r.code,{children:"transport.tls.certFile"})}),(0,n.jsx)(r.td,{children:"\u5426"}),(0,n.jsx)(r.td,{}),(0,n.jsx)(r.td,{children:"\u5BA2\u6237\u7AEF\u8BC1\u4E66\uFF08mTLS\uFF09"})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:(0,n.jsx)(r.code,{children:"transport.tls.keyFile"})}),(0,n.jsx)(r.td,{children:"\u5426"}),(0,n.jsx)(r.td,{}),(0,n.jsx)(r.td,{children:"\u5BA2\u6237\u7AEF\u79C1\u94A5\uFF08mTLS\uFF09"})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:(0,n.jsx)(r.code,{children:"transport.tls.trustedCaFile"})}),(0,n.jsx)(r.td,{children:"\u5426"}),(0,n.jsx)(r.td,{}),(0,n.jsx)(r.td,{children:"\u6821\u9A8C\u670D\u52A1\u7AEF\u8BC1\u4E66\uFF1B\u7A7A\u5219\u8DF3\u8FC7\u6821\u9A8C\uFF08\u4EC5\u52A0\u5BC6\uFF09"})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:(0,n.jsx)(r.code,{children:"transport.tls.serverName"})}),(0,n.jsx)(r.td,{children:"\u5426"}),(0,n.jsx)(r.td,{}),(0,n.jsxs)(r.td,{children:["TLS SNI\uFF1B\u7A7A\u5219\u4F7F\u7528 ",(0,n.jsx)(r.code,{children:"serverAddr"})]})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:(0,n.jsx)(r.code,{children:"transport.tls.disableCustomTLSFirstByte"})}),(0,n.jsx)(r.td,{children:"\u5426"}),(0,n.jsx)(r.td,{children:(0,n.jsx)(r.code,{children:"true"})}),(0,n.jsxs)(r.td,{children:["\u7981\u7528\u81EA\u5B9A\u4E49 TLS \u9996\u5B57\u8282\uFF1B\u82E5 HTTPS \u865A\u62DF\u4E3B\u673A\u4E0E ",(0,n.jsx)(r.code,{children:"bindPort"})," \u5171\u7528\uFF0C\u9700\u8BBE\u4E3A ",(0,n.jsx)(r.code,{children:"false"})]})]})]})]}),"\n",(0,n.jsx)(r.h2,{id:"\u670D\u52A1\u7AEF\u53C2\u6570",children:"\u670D\u52A1\u7AEF\u53C2\u6570"}),"\n",(0,n.jsxs)(r.table,{children:[(0,n.jsx)(r.thead,{children:(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.th,{children:"\u53C2\u6570"}),(0,n.jsx)(r.th,{children:"\u5FC5\u586B"}),(0,n.jsx)(r.th,{children:"\u9ED8\u8BA4\u503C"}),(0,n.jsx)(r.th,{children:"\u8BF4\u660E"})]})}),(0,n.jsxs)(r.tbody,{children:[(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:(0,n.jsx)(r.code,{children:"transport.tls.force"})}),(0,n.jsx)(r.td,{children:"\u5426"}),(0,n.jsx)(r.td,{children:(0,n.jsx)(r.code,{children:"false"})}),(0,n.jsx)(r.td,{children:"\u5F3A\u5236 TLS\uFF0C\u62D2\u7EDD\u975E TLS \u63A7\u5236\u8FDE\u63A5"})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:(0,n.jsx)(r.code,{children:"transport.tls.certFile"})}),(0,n.jsx)(r.td,{children:"\u5426"}),(0,n.jsx)(r.td,{}),(0,n.jsx)(r.td,{children:"\u670D\u52A1\u7AEF\u8BC1\u4E66\uFF1B\u7A7A\u5219\u4E34\u65F6\u81EA\u7B7E"})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:(0,n.jsx)(r.code,{children:"transport.tls.keyFile"})}),(0,n.jsx)(r.td,{children:"\u5426"}),(0,n.jsx)(r.td,{}),(0,n.jsx)(r.td,{children:"\u670D\u52A1\u7AEF\u79C1\u94A5\uFF1B\u7A7A\u5219\u4E34\u65F6\u81EA\u7B7E"})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:(0,n.jsx)(r.code,{children:"transport.tls.trustedCaFile"})}),(0,n.jsx)(r.td,{children:"\u5426"}),(0,n.jsx)(r.td,{}),(0,n.jsxs)(r.td,{children:["\u6821\u9A8C\u5BA2\u6237\u7AEF\u8BC1\u4E66\uFF08mTLS\uFF09\uFF1B\u975E\u7A7A\u65F6\u81EA\u52A8 ",(0,n.jsx)(r.code,{children:"force = true"})]})]})]})]})]})}function a(e={}){let{wrapper:r}={...(0,d.R)(),...e.components};return r?(0,n.jsx)(r,{...e,children:(0,n.jsx)(h,{...e})}):h(e)}},7008(e,r,t){t.d(r,{R:()=>l,x:()=>i});var s=t(1763);let n={},d=s.createContext(n);function l(e){let r=s.useContext(d);return s.useMemo(function(){return"function"==typeof e?e(r):{...r,...e}},[r,e])}function i(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:l(e.components),s.createElement(d.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/fd368041.d1053280.js b/assets/js/fd368041.d1053280.js new file mode 100644 index 0000000..7430679 --- /dev/null +++ b/assets/js/fd368041.d1053280.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkorbien_docs=self.webpackChunkorbien_docs||[]).push([["364"],{1011(e,r,t){t.r(r),t.d(r,{metadata:()=>n,default:()=>a,frontMatter:()=>d,contentTitle:()=>c,toc:()=>o,assets:()=>i});var n=JSON.parse('{"id":"transport/tls","title":"TLS","description":"\u63A7\u5236\u901A\u9053 TLS\u3002\u9002\u7528\u4E8E tcp / websocket / kcp\uFF08QUIC \u81EA\u8EAB\u5DF2\u52A0\u5BC6\uFF0C\u4F46\u8BC1\u4E66\u8DEF\u5F84\u5B57\u6BB5\u4ECD\u53EF\u7528\u4E8E QUIC \u8EAB\u4EFD\u6821\u9A8C\uFF09\u3002","source":"@site/docs/transport/tls.md","sourceDirName":"transport","slug":"/transport/tls","permalink":"/orbien/docs/transport/tls","draft":false,"unlisted":false,"editUrl":"https://github.com/orbien-org/orbien/tree/main/docs/docs/transport/tls.md","tags":[],"version":"current","sidebarPosition":3,"frontMatter":{"sidebar_position":3,"sidebar_label":"TLS","title":"TLS"},"sidebar":"docsSidebar","previous":{"title":"TCP \u591A\u8DEF\u590D\u7528","permalink":"/orbien/docs/transport/tcp-mux"},"next":{"title":"\u8EAB\u4EFD\u8BA4\u8BC1","permalink":"/orbien/docs/features/authentication"}}'),s=t(1987),l=t(7008);let d={sidebar_position:3,sidebar_label:"TLS",title:"TLS"},c="TLS",i={},o=[{value:"\u65B9\u5F0F\u4E00\uFF1A\u4EC5\u52A0\u5BC6",id:"\u65B9\u5F0F\u4E00\u4EC5\u52A0\u5BC6",level:2},{value:"\u65B9\u5F0F\u4E8C\uFF1A\u6821\u9A8C\u670D\u52A1\u7AEF\u8BC1\u4E66",id:"\u65B9\u5F0F\u4E8C\u6821\u9A8C\u670D\u52A1\u7AEF\u8BC1\u4E66",level:2},{value:"\u65B9\u5F0F\u4E09\uFF1A\u53CC\u5411\u8BA4\u8BC1\uFF08mTLS\uFF09",id:"\u65B9\u5F0F\u4E09\u53CC\u5411\u8BA4\u8BC1mtls",level:2},{value:"\u5BA2\u6237\u7AEF\u53C2\u6570",id:"\u5BA2\u6237\u7AEF\u53C2\u6570",level:2},{value:"\u670D\u52A1\u7AEF\u53C2\u6570",id:"\u670D\u52A1\u7AEF\u53C2\u6570",level:2}];function h(e){let r={a:"a",code:"code",h1:"h1",h2:"h2",header:"header",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,l.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(r.header,{children:(0,s.jsx)(r.h1,{id:"tls",children:"TLS"})}),"\n",(0,s.jsxs)(r.p,{children:["\u63A7\u5236\u901A\u9053 TLS\u3002\u9002\u7528\u4E8E ",(0,s.jsx)(r.code,{children:"tcp"})," / ",(0,s.jsx)(r.code,{children:"websocket"})," / ",(0,s.jsx)(r.code,{children:"kcp"}),"\uFF08QUIC \u81EA\u8EAB\u5DF2\u52A0\u5BC6\uFF0C\u4F46\u8BC1\u4E66\u8DEF\u5F84\u5B57\u6BB5\u4ECD\u53EF\u7528\u4E8E QUIC \u8EAB\u4EFD\u6821\u9A8C\uFF09\u3002"]}),"\n",(0,s.jsx)(r.p,{children:"\u4E09\u79CD\u65B9\u5F0F\uFF1A"}),"\n",(0,s.jsxs)(r.ol,{children:["\n",(0,s.jsxs)(r.li,{children:[(0,s.jsx)(r.strong,{children:"\u4EC5\u52A0\u5BC6"}),"\uFF1A\u9ED8\u8BA4\uFF0C\u4E0D\u6821\u9A8C\u8BC1\u4E66"]}),"\n",(0,s.jsxs)(r.li,{children:[(0,s.jsx)(r.strong,{children:"\u6821\u9A8C\u670D\u52A1\u7AEF\u8BC1\u4E66"}),"\uFF1A\u5BA2\u6237\u7AEF\u4FE1\u4EFB CA\uFF0C\u6821\u9A8C\u670D\u52A1\u7AEF\u8EAB\u4EFD"]}),"\n",(0,s.jsxs)(r.li,{children:[(0,s.jsx)(r.strong,{children:"\u53CC\u5411\u8BA4\u8BC1\uFF08mTLS\uFF09"}),"\uFF1A\u53CC\u65B9\u4E92\u9A8C\u8BC1\u4E66"]}),"\n"]}),"\n",(0,s.jsxs)(r.p,{children:["\u63A7\u5236\u901A\u9053\u4F7F\u7528\u6807\u51C6 TLS ClientHello\uFF08\u9996\u5B57\u8282 ",(0,s.jsx)(r.code,{children:"0x16"}),"\uFF09\u3002HTTP / HTTPS \u57DF\u540D\u5165\u53E3\u5FC5\u987B\u4F7F\u7528\u72EC\u7ACB\u7AEF\u53E3\uFF0C\u89C1 ",(0,s.jsx)(r.a,{href:"/orbien/docs/tunnels/domains",children:"\u57DF\u540D"}),"\u3002"]}),"\n",(0,s.jsx)(r.h2,{id:"\u65B9\u5F0F\u4E00\u4EC5\u52A0\u5BC6",children:"\u65B9\u5F0F\u4E00\uFF1A\u4EC5\u52A0\u5BC6"}),"\n",(0,s.jsxs)(r.p,{children:["\u4E0D\u586B ",(0,s.jsx)(r.code,{children:"trustedCaFile"}),"\uFF0C\u5BA2\u6237\u7AEF\u8DF3\u8FC7\u8BC1\u4E66\u6821\u9A8C\uFF1B\u670D\u52A1\u7AEF\u8BC1\u4E66\u53EF\u7701\u7565\uFF08\u4E34\u65F6\u81EA\u7B7E\uFF09\u3002"]}),"\n",(0,s.jsx)(r.p,{children:"\u670D\u52A1\u7AEF\uFF1A"}),"\n",(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{className:"language-toml",children:"# orbien-server.toml\n[transport.tls]\nforce = false\n"})}),"\n",(0,s.jsx)(r.p,{children:"\u5BA2\u6237\u7AEF\uFF1A"}),"\n",(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{className:"language-toml",children:"# orbien.toml\n[transport.tls]\nenable = true\n"})}),"\n",(0,s.jsx)(r.h2,{id:"\u65B9\u5F0F\u4E8C\u6821\u9A8C\u670D\u52A1\u7AEF\u8BC1\u4E66",children:"\u65B9\u5F0F\u4E8C\uFF1A\u6821\u9A8C\u670D\u52A1\u7AEF\u8BC1\u4E66"}),"\n",(0,s.jsx)(r.p,{children:"\u670D\u52A1\u7AEF\u63D0\u4F9B\u8BC1\u4E66\uFF1B\u5BA2\u6237\u7AEF\u7528 CA \u6821\u9A8C\uFF0C\u5E76\u8BBE\u7F6E SNI\u3002"}),"\n",(0,s.jsx)(r.p,{children:"\u670D\u52A1\u7AEF\uFF1A"}),"\n",(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{className:"language-toml",children:'# orbien-server.toml\n[transport.tls]\nforce = true\ncertFile = "/path/to/server.crt"\nkeyFile = "/path/to/server.key"\n'})}),"\n",(0,s.jsx)(r.p,{children:"\u5BA2\u6237\u7AEF\uFF1A"}),"\n",(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{className:"language-toml",children:'# orbien.toml\n[transport.tls]\nenable = true\ntrustedCaFile = "/path/to/ca.crt"\nserverName = "orbien.example.com"\n'})}),"\n",(0,s.jsx)(r.h2,{id:"\u65B9\u5F0F\u4E09\u53CC\u5411\u8BA4\u8BC1mtls",children:"\u65B9\u5F0F\u4E09\uFF1A\u53CC\u5411\u8BA4\u8BC1\uFF08mTLS\uFF09"}),"\n",(0,s.jsxs)(r.p,{children:["\u53CC\u65B9\u5747\u6821\u9A8C\u5BF9\u65B9\u8BC1\u4E66\u3002\u670D\u52A1\u7AEF\u914D\u7F6E ",(0,s.jsx)(r.code,{children:"trustedCaFile"})," \u65F6\u4F1A\u81EA\u52A8 ",(0,s.jsx)(r.code,{children:"force = true"}),"\u3002"]}),"\n",(0,s.jsx)(r.p,{children:"\u670D\u52A1\u7AEF\uFF1A"}),"\n",(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{className:"language-toml",children:'# orbien-server.toml\n[transport.tls]\nforce = true\ncertFile = "/path/to/server.crt"\nkeyFile = "/path/to/server.key"\ntrustedCaFile = "/path/to/ca.crt"\n'})}),"\n",(0,s.jsx)(r.p,{children:"\u5BA2\u6237\u7AEF\uFF1A"}),"\n",(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{className:"language-toml",children:'# orbien.toml\n[transport.tls]\nenable = true\ncertFile = "/path/to/client.crt"\nkeyFile = "/path/to/client.key"\ntrustedCaFile = "/path/to/ca.crt"\nserverName = "orbien.example.com"\n'})}),"\n",(0,s.jsx)(r.h2,{id:"\u5BA2\u6237\u7AEF\u53C2\u6570",children:"\u5BA2\u6237\u7AEF\u53C2\u6570"}),"\n",(0,s.jsxs)(r.table,{children:[(0,s.jsx)(r.thead,{children:(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.th,{children:"\u53C2\u6570"}),(0,s.jsx)(r.th,{children:"\u5FC5\u586B"}),(0,s.jsx)(r.th,{children:"\u9ED8\u8BA4\u503C"}),(0,s.jsx)(r.th,{children:"\u8BF4\u660E"})]})}),(0,s.jsxs)(r.tbody,{children:[(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:(0,s.jsx)(r.code,{children:"transport.tls.enable"})}),(0,s.jsx)(r.td,{children:"\u5426"}),(0,s.jsx)(r.td,{children:(0,s.jsx)(r.code,{children:"true"})}),(0,s.jsx)(r.td,{children:"\u542F\u7528 TLS\uFF1BQUIC \u672C\u8EAB\u5DF2\u52A0\u5BC6\uFF0C\u6B64\u9879\u65E0\u6548"})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:(0,s.jsx)(r.code,{children:"transport.tls.certFile"})}),(0,s.jsx)(r.td,{children:"\u5426"}),(0,s.jsx)(r.td,{}),(0,s.jsx)(r.td,{children:"\u5BA2\u6237\u7AEF\u8BC1\u4E66\uFF08mTLS\uFF09"})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:(0,s.jsx)(r.code,{children:"transport.tls.keyFile"})}),(0,s.jsx)(r.td,{children:"\u5426"}),(0,s.jsx)(r.td,{}),(0,s.jsx)(r.td,{children:"\u5BA2\u6237\u7AEF\u79C1\u94A5\uFF08mTLS\uFF09"})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:(0,s.jsx)(r.code,{children:"transport.tls.trustedCaFile"})}),(0,s.jsx)(r.td,{children:"\u5426"}),(0,s.jsx)(r.td,{}),(0,s.jsx)(r.td,{children:"\u6821\u9A8C\u670D\u52A1\u7AEF\u8BC1\u4E66\uFF1B\u7A7A\u5219\u8DF3\u8FC7\u6821\u9A8C\uFF08\u4EC5\u52A0\u5BC6\uFF09"})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:(0,s.jsx)(r.code,{children:"transport.tls.serverName"})}),(0,s.jsx)(r.td,{children:"\u5426"}),(0,s.jsx)(r.td,{}),(0,s.jsxs)(r.td,{children:["TLS SNI\uFF1B\u7A7A\u5219\u4F7F\u7528 ",(0,s.jsx)(r.code,{children:"server"})," \u7684\u4E3B\u673A\u90E8\u5206"]})]})]})]}),"\n",(0,s.jsx)(r.h2,{id:"\u670D\u52A1\u7AEF\u53C2\u6570",children:"\u670D\u52A1\u7AEF\u53C2\u6570"}),"\n",(0,s.jsxs)(r.table,{children:[(0,s.jsx)(r.thead,{children:(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.th,{children:"\u53C2\u6570"}),(0,s.jsx)(r.th,{children:"\u5FC5\u586B"}),(0,s.jsx)(r.th,{children:"\u9ED8\u8BA4\u503C"}),(0,s.jsx)(r.th,{children:"\u8BF4\u660E"})]})}),(0,s.jsxs)(r.tbody,{children:[(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:(0,s.jsx)(r.code,{children:"transport.tls.force"})}),(0,s.jsx)(r.td,{children:"\u5426"}),(0,s.jsx)(r.td,{children:(0,s.jsx)(r.code,{children:"false"})}),(0,s.jsx)(r.td,{children:"\u5F3A\u5236 TLS\uFF0C\u62D2\u7EDD\u975E TLS \u63A7\u5236\u8FDE\u63A5"})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:(0,s.jsx)(r.code,{children:"transport.tls.certFile"})}),(0,s.jsx)(r.td,{children:"\u5426"}),(0,s.jsx)(r.td,{}),(0,s.jsx)(r.td,{children:"\u670D\u52A1\u7AEF\u8BC1\u4E66\uFF1B\u7A7A\u5219\u4E34\u65F6\u81EA\u7B7E"})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:(0,s.jsx)(r.code,{children:"transport.tls.keyFile"})}),(0,s.jsx)(r.td,{children:"\u5426"}),(0,s.jsx)(r.td,{}),(0,s.jsx)(r.td,{children:"\u670D\u52A1\u7AEF\u79C1\u94A5\uFF1B\u7A7A\u5219\u4E34\u65F6\u81EA\u7B7E"})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:(0,s.jsx)(r.code,{children:"transport.tls.trustedCaFile"})}),(0,s.jsx)(r.td,{children:"\u5426"}),(0,s.jsx)(r.td,{}),(0,s.jsxs)(r.td,{children:["\u6821\u9A8C\u5BA2\u6237\u7AEF\u8BC1\u4E66\uFF08mTLS\uFF09\uFF1B\u975E\u7A7A\u65F6\u81EA\u52A8 ",(0,s.jsx)(r.code,{children:"force = true"})]})]})]})]})]})}function a(e={}){let{wrapper:r}={...(0,l.R)(),...e.components};return r?(0,s.jsx)(r,{...e,children:(0,s.jsx)(h,{...e})}):h(e)}},7008(e,r,t){t.d(r,{R:()=>d,x:()=>c});var n=t(1763);let s={},l=n.createContext(s);function d(e){let r=n.useContext(l);return n.useMemo(function(){return"function"==typeof e?e(r):{...r,...e}},[r,e])}function c(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:d(e.components),n.createElement(l.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/fe98809a.94f05a50.js b/assets/js/fe98809a.94f05a50.js new file mode 100644 index 0000000..8092465 --- /dev/null +++ b/assets/js/fe98809a.94f05a50.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkorbien_docs=self.webpackChunkorbien_docs||[]).push([["326"],{5475(e,t,r){r.r(t),r.d(t,{metadata:()=>n,default:()=>x,frontMatter:()=>d,contentTitle:()=>o,toc:()=>i,assets:()=>l});var n=JSON.parse('{"id":"transport/protocol/websocket","title":"WebSocket","description":"\u4E0E TCP \u5171\u7528\u670D\u52A1\u7AEF listen\u3002\u9002\u7528\u4E8E\u9700\u7A7F\u900F HTTP \u4EE3\u7406\u3001\u6216\u4EC5\u5F00\u653E WebSocket \u7684\u7F51\u7EDC\u73AF\u5883\u3002TLS \u914D\u7F6E\u89C1 TLS\u3002","source":"@site/docs/transport/protocol/websocket.md","sourceDirName":"transport/protocol","slug":"/transport/protocol/websocket","permalink":"/orbien/docs/transport/protocol/websocket","draft":false,"unlisted":false,"editUrl":"https://github.com/orbien-org/orbien/tree/main/docs/docs/transport/protocol/websocket.md","tags":[],"version":"current","sidebarPosition":2,"frontMatter":{"sidebar_position":2,"sidebar_label":"WebSocket","title":"WebSocket"},"sidebar":"docsSidebar","previous":{"title":"TCP","permalink":"/orbien/docs/transport/protocol/tcp"},"next":{"title":"QUIC","permalink":"/orbien/docs/transport/protocol/quic"}}'),s=r(1987),c=r(7008);let d={sidebar_position:2,sidebar_label:"WebSocket",title:"WebSocket"},o="WebSocket",l={},i=[{value:"\u793A\u4F8B",id:"\u793A\u4F8B",level:2},{value:"\u5BA2\u6237\u7AEF\u53C2\u6570",id:"\u5BA2\u6237\u7AEF\u53C2\u6570",level:2},{value:"\u670D\u52A1\u7AEF\u53C2\u6570",id:"\u670D\u52A1\u7AEF\u53C2\u6570",level:2}];function h(e){let t={a:"a",code:"code",h1:"h1",h2:"h2",header:"header",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,c.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.header,{children:(0,s.jsx)(t.h1,{id:"websocket",children:"WebSocket"})}),"\n",(0,s.jsxs)(t.p,{children:["\u4E0E TCP \u5171\u7528\u670D\u52A1\u7AEF ",(0,s.jsx)(t.code,{children:"listen"}),"\u3002\u9002\u7528\u4E8E\u9700\u7A7F\u900F HTTP \u4EE3\u7406\u3001\u6216\u4EC5\u5F00\u653E WebSocket \u7684\u7F51\u7EDC\u73AF\u5883\u3002TLS \u914D\u7F6E\u89C1 ",(0,s.jsx)(t.a,{href:"/orbien/docs/transport/tls",children:"TLS"}),"\u3002"]}),"\n",(0,s.jsx)(t.h2,{id:"\u793A\u4F8B",children:"\u793A\u4F8B"}),"\n",(0,s.jsx)(t.p,{children:"\u670D\u52A1\u7AEF\uFF1A"}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-toml",children:'# orbien-server.toml\nlisten = "0.0.0.0:9527"\n\n[transport]\ntcpMux = true\n'})}),"\n",(0,s.jsx)(t.p,{children:"\u5BA2\u6237\u7AEF\uFF1A"}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-toml",children:'# orbien.toml\nserver = "YOUR_SERVER_IP:9527"\n\n[transport]\nprotocol = "websocket"\ntcpMux = true\nheartbeatInterval = -1\n'})}),"\n",(0,s.jsx)(t.h2,{id:"\u5BA2\u6237\u7AEF\u53C2\u6570",children:"\u5BA2\u6237\u7AEF\u53C2\u6570"}),"\n",(0,s.jsxs)(t.table,{children:[(0,s.jsx)(t.thead,{children:(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.th,{children:"\u53C2\u6570"}),(0,s.jsx)(t.th,{children:"\u5FC5\u586B"}),(0,s.jsx)(t.th,{children:"\u9ED8\u8BA4\u503C"}),(0,s.jsx)(t.th,{children:"\u8BF4\u660E"})]})}),(0,s.jsxs)(t.tbody,{children:[(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:(0,s.jsx)(t.code,{children:"transport.protocol"})}),(0,s.jsx)(t.td,{children:"\u662F"}),(0,s.jsx)(t.td,{children:(0,s.jsx)(t.code,{children:"tcp"})}),(0,s.jsxs)(t.td,{children:["\u56FA\u5B9A\u4E3A ",(0,s.jsx)(t.code,{children:"websocket"}),"\uFF08\u6216 ",(0,s.jsx)(t.code,{children:"ws"}),"\uFF09"]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:(0,s.jsx)(t.code,{children:"transport.tcpMux"})}),(0,s.jsx)(t.td,{children:"\u5426"}),(0,s.jsx)(t.td,{children:(0,s.jsx)(t.code,{children:"true"})}),(0,s.jsx)(t.td,{children:"TCP \u591A\u8DEF\u590D\u7528\uFF1B\u9700\u4E0E\u670D\u52A1\u7AEF\u4E00\u81F4"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:(0,s.jsx)(t.code,{children:"transport.heartbeatInterval"})}),(0,s.jsx)(t.td,{children:"\u5426"}),(0,s.jsx)(t.td,{children:(0,s.jsx)(t.code,{children:"-1"})}),(0,s.jsxs)(t.td,{children:["\u5E94\u7528\u5FC3\u8DF3\u95F4\u9694\uFF08\u79D2\uFF09\uFF1B",(0,s.jsx)(t.code,{children:"-1"})," \u5173\u95ED\u3002\u5173\u95ED ",(0,s.jsx)(t.code,{children:"tcpMux"})," \u65F6\u81EA\u52A8\u53D8\u4E3A ",(0,s.jsx)(t.code,{children:"30"})]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:(0,s.jsx)(t.code,{children:"transport.heartbeatTimeout"})}),(0,s.jsx)(t.td,{children:"\u5426"}),(0,s.jsx)(t.td,{children:(0,s.jsx)(t.code,{children:"-1"})}),(0,s.jsxs)(t.td,{children:["\u5FC3\u8DF3\u8D85\u65F6\uFF08\u79D2\uFF09\uFF1B\u672A\u6536\u5230 Pong \u5219\u65AD\u5F00\u3002\u5173\u95ED ",(0,s.jsx)(t.code,{children:"tcpMux"})," \u65F6\u81EA\u52A8\u53D8\u4E3A ",(0,s.jsx)(t.code,{children:"90"}),"\uFF1B\u8BE6\u89C1 ",(0,s.jsx)(t.a,{href:"/orbien/docs/transport/tcp-mux",children:"TCP \u591A\u8DEF\u590D\u7528"})]})]})]})]}),"\n",(0,s.jsx)(t.h2,{id:"\u670D\u52A1\u7AEF\u53C2\u6570",children:"\u670D\u52A1\u7AEF\u53C2\u6570"}),"\n",(0,s.jsxs)(t.table,{children:[(0,s.jsx)(t.thead,{children:(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.th,{children:"\u53C2\u6570"}),(0,s.jsx)(t.th,{children:"\u5FC5\u586B"}),(0,s.jsx)(t.th,{children:"\u9ED8\u8BA4\u503C"}),(0,s.jsx)(t.th,{children:"\u8BF4\u660E"})]})}),(0,s.jsxs)(t.tbody,{children:[(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:(0,s.jsx)(t.code,{children:"listen"})}),(0,s.jsx)(t.td,{children:"\u662F"}),(0,s.jsx)(t.td,{children:(0,s.jsx)(t.code,{children:"0.0.0.0:9527"})}),(0,s.jsx)(t.td,{children:"\u4E0E TCP \u5171\u7528\u76D1\u542C\u5730\u5740"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:(0,s.jsx)(t.code,{children:"transport.tcpMux"})}),(0,s.jsx)(t.td,{children:"\u5426"}),(0,s.jsx)(t.td,{children:(0,s.jsx)(t.code,{children:"true"})}),(0,s.jsx)(t.td,{children:"TCP \u591A\u8DEF\u590D\u7528\uFF1B\u9700\u4E0E\u5BA2\u6237\u7AEF\u4E00\u81F4"})]})]})]})]})}function x(e={}){let{wrapper:t}={...(0,c.R)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(h,{...e})}):h(e)}},7008(e,t,r){r.d(t,{R:()=>d,x:()=>o});var n=r(1763);let s={},c=n.createContext(s);function d(e){let t=n.useContext(c);return n.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:d(e.components),n.createElement(c.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/fe98809a.f6c6882a.js b/assets/js/fe98809a.f6c6882a.js deleted file mode 100644 index 852f886..0000000 --- a/assets/js/fe98809a.f6c6882a.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkorbien_docs=self.webpackChunkorbien_docs||[]).push([["326"],{5475(e,t,r){r.r(t),r.d(t,{metadata:()=>n,default:()=>a,frontMatter:()=>c,contentTitle:()=>o,toc:()=>l,assets:()=>i});var n=JSON.parse('{"id":"transport/protocol/websocket","title":"WebSocket","description":"\u4E0E TCP \u5171\u7528\u670D\u52A1\u7AEF bindPort\u3002\u9002\u7528\u4E8E\u9700\u7A7F\u900F HTTP \u4EE3\u7406\u3001\u6216\u4EC5\u5F00\u653E WebSocket \u7684\u7F51\u7EDC\u73AF\u5883\u3002TLS \u914D\u7F6E\u89C1 TLS\u3002","source":"@site/docs/transport/protocol/websocket.md","sourceDirName":"transport/protocol","slug":"/transport/protocol/websocket","permalink":"/orbien/docs/transport/protocol/websocket","draft":false,"unlisted":false,"editUrl":"https://github.com/orbien-org/orbien/tree/main/docs/docs/transport/protocol/websocket.md","tags":[],"version":"current","sidebarPosition":2,"frontMatter":{"sidebar_position":2,"sidebar_label":"WebSocket","title":"WebSocket"},"sidebar":"docsSidebar","previous":{"title":"TCP","permalink":"/orbien/docs/transport/protocol/tcp"},"next":{"title":"QUIC","permalink":"/orbien/docs/transport/protocol/quic"}}'),d=r(1987),s=r(7008);let c={sidebar_position:2,sidebar_label:"WebSocket",title:"WebSocket"},o="WebSocket",i={},l=[{value:"\u793A\u4F8B",id:"\u793A\u4F8B",level:2},{value:"\u5BA2\u6237\u7AEF\u53C2\u6570",id:"\u5BA2\u6237\u7AEF\u53C2\u6570",level:2},{value:"\u670D\u52A1\u7AEF\u53C2\u6570",id:"\u670D\u52A1\u7AEF\u53C2\u6570",level:2}];function h(e){let t={a:"a",code:"code",h1:"h1",h2:"h2",header:"header",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,s.R)(),...e.components};return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(t.header,{children:(0,d.jsx)(t.h1,{id:"websocket",children:"WebSocket"})}),"\n",(0,d.jsxs)(t.p,{children:["\u4E0E TCP \u5171\u7528\u670D\u52A1\u7AEF ",(0,d.jsx)(t.code,{children:"bindPort"}),"\u3002\u9002\u7528\u4E8E\u9700\u7A7F\u900F HTTP \u4EE3\u7406\u3001\u6216\u4EC5\u5F00\u653E WebSocket \u7684\u7F51\u7EDC\u73AF\u5883\u3002TLS \u914D\u7F6E\u89C1 ",(0,d.jsx)(t.a,{href:"/orbien/docs/transport/tls",children:"TLS"}),"\u3002"]}),"\n",(0,d.jsx)(t.h2,{id:"\u793A\u4F8B",children:"\u793A\u4F8B"}),"\n",(0,d.jsx)(t.p,{children:"\u670D\u52A1\u7AEF\uFF1A"}),"\n",(0,d.jsx)(t.pre,{children:(0,d.jsx)(t.code,{className:"language-toml",children:'# orbien-server.toml\nbindAddr = "0.0.0.0"\nbindPort = 9527\n\n[transport]\ntcpMux = true\n'})}),"\n",(0,d.jsx)(t.p,{children:"\u5BA2\u6237\u7AEF\uFF1A"}),"\n",(0,d.jsx)(t.pre,{children:(0,d.jsx)(t.code,{className:"language-toml",children:'# orbien.toml\nserverAddr = "YOUR_SERVER_IP"\nserverPort = 9527\n\n[transport]\nprotocol = "websocket"\ntcpMux = true\nheartbeatInterval = -1\n'})}),"\n",(0,d.jsx)(t.h2,{id:"\u5BA2\u6237\u7AEF\u53C2\u6570",children:"\u5BA2\u6237\u7AEF\u53C2\u6570"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"\u53C2\u6570"}),(0,d.jsx)(t.th,{children:"\u5FC5\u586B"}),(0,d.jsx)(t.th,{children:"\u9ED8\u8BA4\u503C"}),(0,d.jsx)(t.th,{children:"\u8BF4\u660E"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:(0,d.jsx)(t.code,{children:"transport.protocol"})}),(0,d.jsx)(t.td,{children:"\u662F"}),(0,d.jsx)(t.td,{children:(0,d.jsx)(t.code,{children:"tcp"})}),(0,d.jsxs)(t.td,{children:["\u56FA\u5B9A\u4E3A ",(0,d.jsx)(t.code,{children:"websocket"}),"\uFF08\u6216 ",(0,d.jsx)(t.code,{children:"ws"}),"\uFF09"]})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:(0,d.jsx)(t.code,{children:"transport.tcpMux"})}),(0,d.jsx)(t.td,{children:"\u5426"}),(0,d.jsx)(t.td,{children:(0,d.jsx)(t.code,{children:"true"})}),(0,d.jsx)(t.td,{children:"TCP \u591A\u8DEF\u590D\u7528\uFF1B\u9700\u4E0E\u670D\u52A1\u7AEF\u4E00\u81F4"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:(0,d.jsx)(t.code,{children:"transport.heartbeatInterval"})}),(0,d.jsx)(t.td,{children:"\u5426"}),(0,d.jsx)(t.td,{children:(0,d.jsx)(t.code,{children:"-1"})}),(0,d.jsxs)(t.td,{children:["\u5E94\u7528\u5FC3\u8DF3\u95F4\u9694\uFF08\u79D2\uFF09\uFF1B",(0,d.jsx)(t.code,{children:"-1"})," \u5173\u95ED\u3002\u5173\u95ED ",(0,d.jsx)(t.code,{children:"tcpMux"})," \u65F6\u81EA\u52A8\u53D8\u4E3A ",(0,d.jsx)(t.code,{children:"30"})]})]})]})]}),"\n",(0,d.jsx)(t.h2,{id:"\u670D\u52A1\u7AEF\u53C2\u6570",children:"\u670D\u52A1\u7AEF\u53C2\u6570"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"\u53C2\u6570"}),(0,d.jsx)(t.th,{children:"\u5FC5\u586B"}),(0,d.jsx)(t.th,{children:"\u9ED8\u8BA4\u503C"}),(0,d.jsx)(t.th,{children:"\u8BF4\u660E"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:(0,d.jsx)(t.code,{children:"bindPort"})}),(0,d.jsx)(t.td,{children:"\u662F"}),(0,d.jsx)(t.td,{children:(0,d.jsx)(t.code,{children:"9527"})}),(0,d.jsx)(t.td,{children:"\u4E0E TCP \u5171\u7528\u76D1\u542C\u7AEF\u53E3"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:(0,d.jsx)(t.code,{children:"transport.tcpMux"})}),(0,d.jsx)(t.td,{children:"\u5426"}),(0,d.jsx)(t.td,{children:(0,d.jsx)(t.code,{children:"true"})}),(0,d.jsx)(t.td,{children:"TCP \u591A\u8DEF\u590D\u7528\uFF1B\u9700\u4E0E\u5BA2\u6237\u7AEF\u4E00\u81F4"})]})]})]})]})}function a(e={}){let{wrapper:t}={...(0,s.R)(),...e.components};return t?(0,d.jsx)(t,{...e,children:(0,d.jsx)(h,{...e})}):h(e)}},7008(e,t,r){r.d(t,{R:()=>c,x:()=>o});var n=r(1763);let d={},s=n.createContext(d);function c(e){let t=n.useContext(s);return n.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(d):e.components||d:c(e.components),n.createElement(s.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/main.c70b2bce.js b/assets/js/main.1e2efa14.js similarity index 88% rename from assets/js/main.c70b2bce.js rename to assets/js/main.1e2efa14.js index e088804..0c2ca5d 100644 --- a/assets/js/main.c70b2bce.js +++ b/assets/js/main.1e2efa14.js @@ -1,4 +1,4 @@ -(self.webpackChunkorbien_docs=self.webpackChunkorbien_docs||[]).push([["889"],{2796(e,t,n){"use strict";n.r(t)},9564(e,t,n){"use strict";n.r(t)},6544(e,t,n){"use strict";n.r(t)},9883(e,t,n){"use strict";n.d(t,{mg:()=>Z,vd:()=>H});var r=n(1763),a=n(2736),o=n.n(a),i=n(4072),l=n.n(i),s=n(9597),u=n.n(s),c=n(2945),d=n.n(c);function f(){return(f=Object.assign||function(e){for(var t=1;t=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)"},y={rel:["amphtml","canonical","alternate"]},b={type:["application/ld+json"]},v={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"},x=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},E=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,t){return t.filter(function(t){return void 0!==t[e]}).map(function(t){return t[e]}).reduce(function(e,t){return f({},e,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/g,">").replace(/"/g,""").replace(/'/g,"'")},j=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},"")},R=function(e,t){return void 0===t&&(t={}),Object.keys(e).reduce(function(t,n){return t[k[n]||n]=e[n],t},t)},I=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)})},D=function(e,t,n){switch(e){case g.TITLE:return{toComponent:function(){var e,n,a,o;return n=t.titleAttributes,(a={key:e=t.title})["data-rh"]=!0,o=R(n,a),[r.createElement(g.TITLE,o,e)]},toString:function(){var r,a,o,i;return r=t.title,a=t.titleAttributes,o=j(a),i=T(r),o?"<"+e+' data-rh="true" '+o+">"+N(i,n)+"":"<"+e+' data-rh="true">'+N(i,n)+""}};case"bodyAttributes":case"htmlAttributes":return{toComponent:function(){return R(t)},toString:function(){return j(t)}};default:return{toComponent:function(){return I(e,t)},toString:function(){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+'="'+N(r[t],n)+'"';return e?e+" "+a:a},""),o=r.innerHTML||r.cssText||"",i=-1===L.indexOf(e);return t+"<"+e+' data-rh="true" '+a+(i?"/>":">"+o+"")},"")}}}},F=function(e){var t=e.baseTag,n=e.bodyAttributes,r=e.encode,a=e.htmlAttributes,o=e.noscriptTags,i=e.styleTags,l=e.title,s=e.titleAttributes,u=e.linkTags,c=e.metaTags,d=e.scriptTags,f={toComponent:function(){},toString:function(){return""}};if(e.prioritizeSeoTags){var p,m,h,w,k,x,S=(p=e.linkTags,m=e.scriptTags,h=e.encode,w=P(e.metaTags,v),k=P(p,y),x=P(m,b),{priorityMethods:{toComponent:function(){return[].concat(I(g.META,w.priority),I(g.LINK,k.priority),I(g.SCRIPT,x.priority))},toString:function(){return D(g.META,w.priority,h)+" "+D(g.LINK,k.priority,h)+" "+D(g.SCRIPT,x.priority,h)}},metaTags:w.default,linkTags:k.default,scriptTags:x.default});f=S.priorityMethods,u=S.linkTags,c=S.metaTags,d=S.scriptTags}return{priority:f,base:D(g.BASE,t,r),bodyAttributes:D("bodyAttributes",n,r),htmlAttributes:D("htmlAttributes",a,r),link:D(g.LINK,u,r),meta:D(g.META,c,r),noscript:D(g.NOSCRIPT,o,r),script:D(g.SCRIPT,d,r),style:D(g.STYLE,i,r),title:D(g.TITLE,{title:void 0===l?"":l,titleAttributes:s},r)}},z=[],M=function(e,t){var n=this;void 0===t&&(t="u">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=F({baseTag:[],bodyAttributes:{},encodeSpecialCharacters:!0,htmlAttributes:{},linkTags:[],metaTags:[],noscriptTags:[],scriptTags:[],styleTags:[],title:"",titleAttributes:{}}))},$=r.createContext({}),B=o().shape({setHelmet:o().func,helmetInstances:o().shape({get:o().func,add:o().func,remove:o().func})}),U="u">typeof document,H=function(e){function t(n){var r;return(r=e.call(this,n)||this).helmetData=new M(r.props.context,t.canUseDOM),r}return p(t,e),t.prototype.render=function(){return r.createElement($.Provider,{value:this.helmetData.value},this.props.children)},t}(r.Component);H.canUseDOM=U,H.propTypes={context:o().shape({helmet:o().shape()}),children:o().node.isRequired},H.defaultProps={context:{}},H.displayName="HelmetProvider";var V=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}},W=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=0;d-=1)n.removeAttribute(o[d]);a.length===o.length?n.removeAttribute("data-rh"):n.getAttribute("data-rh")!==i.join(",")&&n.setAttribute("data-rh",i.join(","))}},q=function(e,t){var n=e.baseTag,r=e.htmlAttributes,a=e.linkTags,o=e.metaTags,i=e.noscriptTags,l=e.onChangeClientState,s=e.scriptTags,u=e.styleTags,c=e.title,d=e.titleAttributes;W(g.BODY,e.bodyAttributes),W(g.HTML,r),void 0!==c&&document.title!==c&&(document.title=T(c)),W(g.TITLE,d);var f={baseTag:V(g.BASE,n),linkTags:V(g.LINK,a),metaTags:V(g.META,o),noscriptTags:V(g.NOSCRIPT,i),scriptTags:V(g.SCRIPT,s),styleTags:V(g.STYLE,u)},p={},m={};Object.keys(f).forEach(function(e){var t=f[e],n=t.newTags,r=t.oldTags;n.length&&(p[e]=n),r.length&&(m[e]=f[e].oldTags)}),t&&t(),l(e,p,m)},G=null,Y=function(e){function t(){for(var t,n=arguments.length,r=Array(n),a=0;a 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 f({},r,((t={})[n.type]=[].concat(r[n.type]||[],[f({},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 f({},a,((t={})[r.type]=i,t.titleAttributes=f({},o),t));case g.BODY:return f({},a,{bodyAttributes:f({},o)});case g.HTML:return f({},a,{htmlAttributes:f({},o)});default:return f({},a,((n={})[r.type]=f({},o),n))}},n.mapArrayTypeChildrenToProps=function(e,t){var n=f({},t);return Object.keys(e).forEach(function(t){var r;n=f({},n,((r={})[t]=e[t],r))}),n},n.warnOnInvalidChildren=function(e,t){return u()(w.some(function(t){return e.type===t}),"function"==typeof e.type?"You may be attempting to nest 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."),u()(!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+">{``} ) 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,K),l=Object.keys(i).reduce(function(e,t){return e[x[t]||t]=i[t],e},{}),s=e.type;switch("symbol"==typeof s?s=s.toString():n.warnOnInvalidChildren(e,o),s){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,Q),a=f({},n),o=n.helmetData;return t&&(a=this.mapChildrenToProps(t,a)),!o||o instanceof M||(o=new M(o.context,o.instances)),o?r.createElement(Y,f({},a,{context:o.value,helmetData:void 0})):r.createElement($.Consumer,null,function(e){return r.createElement(Y,f({},a,{context:e}))})},t}(r.Component);Z.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},Z.defaultProps={defer:!0,encodeSpecialCharacters:!0,prioritizeSeoTags:!1},Z.displayName="Helmet"},477(e,t,n){"use strict";n.d(t,{AO:()=>f,yJ:()=>p,sC:()=>T,TM:()=>A,zR:()=>w});var r=n(5062);function a(e){return"/"===e.charAt(0)}function o(e,t){for(var n=t,r=n+1,a=e.length;r=0;f--){var p=i[f];"."===p?o(i,f):".."===p?(o(i,f),d++):d&&(o(i,f),d--)}if(!u)for(;d--;)i.unshift("..");!u||""===i[0]||i[0]&&a(i[0])||i.unshift("");var m=i.join("/");return n&&"/"!==m.substr(-1)&&(m+="/"),m};var l=n(5385);function s(e){return"/"===e.charAt(0)?e:"/"+e}function u(e){return"/"===e.charAt(0)?e.substr(1):e}function c(e,t){return 0===e.toLowerCase().indexOf(t.toLowerCase())&&-1!=="/?#".indexOf(e.charAt(t.length))?e.substr(t.length):e}function d(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e}function f(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 p(e,t,n,a){var o,l,s,u,c,d;"string"==typeof e?(s="",u="",-1!==(c=(l=e||"/").indexOf("#"))&&(u=l.substr(c),l=l.substr(0,c)),-1!==(d=l.indexOf("?"))&&(s=l.substr(d),l=l.substr(0,d)),(o={pathname:l,search:"?"===s?"":s,hash:"#"===u?"":u}).state=t):(void 0===(o=(0,r.A)({},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(e){if(e instanceof URIError)throw URIError('Pathname "'+o.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.');throw e}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 m(){var e=null,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=Array(e),r=0;rtypeof window&&window.document&&window.document.createElement);function g(e,t){t(window.confirm(e))}var y="popstate",b="hashchange";function v(){try{return window.history.state||{}}catch(e){return{}}}function w(e){void 0===e&&(e={}),h||(0,l.A)(!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,u=i.forceRefresh,w=void 0!==u&&u,k=i.getUserConfirmation,x=void 0===k?g:k,S=i.keyLength,E=void 0===S?6:S,_=e.basename?d(s(e.basename)):"";function A(e){var t=e||{},n=t.key,r=t.state,a=window.location,o=a.pathname+a.search+a.hash;return _&&(o=c(o,_)),p(o,r,n)}function C(){return Math.random().toString(36).substr(2,E)}var T=m();function P(e){(0,r.A)(B,e),B.length=n.length,T.notifyListeners(B.location,B.action)}function O(e){(void 0!==e.state||-1!==navigator.userAgent.indexOf("CriOS"))&&j(A(e.state))}function L(){j(A(v()))}var N=!1;function j(e){N?(N=!1,P()):T.confirmTransitionTo(e,"POP",x,function(t){var n,r,a,o,i;t?P({action:"POP",location:e}):(n=e,r=B.location,-1===(a=I.indexOf(r.key))&&(a=0),-1===(o=I.indexOf(n.key))&&(o=0),(i=a-o)&&(N=!0,F(i)))})}var R=A(v()),I=[R.key];function D(e){return _+f(e)}function F(e){n.go(e)}var z=0;function M(e){1===(z+=e)&&1===e?(window.addEventListener(y,O),o&&window.addEventListener(b,L)):0===z&&(window.removeEventListener(y,O),o&&window.removeEventListener(b,L))}var $=!1,B={length:n.length,action:"POP",location:R,createHref:D,push:function(e,t){var r="PUSH",o=p(e,t,C(),B.location);T.confirmTransitionTo(o,r,x,function(e){if(e){var t=D(o),i=o.key,l=o.state;if(a)if(n.pushState({key:i,state:l},null,t),w)window.location.href=t;else{var s=I.indexOf(B.location.key),u=I.slice(0,s+1);u.push(o.key),I=u,P({action:r,location:o})}else window.location.href=t}})},replace:function(e,t){var r="REPLACE",o=p(e,t,C(),B.location);T.confirmTransitionTo(o,r,x,function(e){if(e){var t=D(o),i=o.key,l=o.state;if(a)if(n.replaceState({key:i,state:l},null,t),w)window.location.replace(t);else{var s=I.indexOf(B.location.key);-1!==s&&(I[s]=o.key),P({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=T.setPrompt(e);return $||(M(1),$=!0),function(){return $&&($=!1,M(-1)),t()}},listen:function(e){var t=T.appendListener(e);return M(1),function(){M(-1),t()}}};return B}var k="hashchange",x={hashbang:{encodePath:function(e){return"!"===e.charAt(0)?e:"!/"+u(e)},decodePath:function(e){return"!"===e.charAt(0)?e.substr(1):e}},noslash:{encodePath:u,decodePath:s},slash:{encodePath:s,decodePath:s}};function S(e){var t=e.indexOf("#");return -1===t?e:e.slice(0,t)}function E(){var e=window.location.href,t=e.indexOf("#");return -1===t?"":e.substring(t+1)}function _(e){window.location.replace(S(window.location.href)+"#"+e)}function A(e){void 0===e&&(e={}),h||(0,l.A)(!1);var t=window.history;window.navigator.userAgent.indexOf("Firefox");var n=e,a=n.getUserConfirmation,o=void 0===a?g:a,i=n.hashType,u=e.basename?d(s(e.basename)):"",y=x[void 0===i?"slash":i],b=y.encodePath,v=y.decodePath;function w(){var e=v(E());return u&&(e=c(e,u)),p(e)}var A=m();function C(e){(0,r.A)(M,e),M.length=t.length,A.notifyListeners(M.location,M.action)}var T=!1,P=null;function O(){var e=E(),t=b(e);if(e!==t)_(t);else{var n,r=w(),a=M.location;if(!T&&a.pathname===r.pathname&&a.search===r.search&&a.hash===r.hash||P===f(r))return;P=null,n=r,T?(T=!1,C()):A.confirmTransitionTo(n,"POP",o,function(e){var t,r,a,o,i;e?C({action:"POP",location:n}):(t=n,r=M.location,-1===(a=R.lastIndexOf(f(r)))&&(a=0),-1===(o=R.lastIndexOf(f(t)))&&(o=0),(i=a-o)&&(T=!0,I(i)))})}}var L=E(),N=b(L);L!==N&&_(N);var j=w(),R=[f(j)];function I(e){t.go(e)}var D=0;function F(e){1===(D+=e)&&1===e?window.addEventListener(k,O):0===D&&window.removeEventListener(k,O)}var z=!1,M={length:t.length,action:"POP",location:j,createHref:function(e){var t=document.querySelector("base"),n="";return t&&t.getAttribute("href")&&(n=S(window.location.href)),n+"#"+b(u+f(e))},push:function(e,t){var n="PUSH",r=p(e,void 0,void 0,M.location);A.confirmTransitionTo(r,n,o,function(e){if(e){var t=f(r),a=b(u+t);if(E()!==a){P=t,window.location.hash=a;var o=R.lastIndexOf(f(M.location)),i=R.slice(0,o+1);i.push(t),R=i,C({action:n,location:r})}else C()}})},replace:function(e,t){var n="REPLACE",r=p(e,void 0,void 0,M.location);A.confirmTransitionTo(r,n,o,function(e){if(e){var t=f(r),a=b(u+t);E()!==a&&(P=t,_(a));var o=R.indexOf(f(M.location));-1!==o&&(R[o]=t),C({action:n,location:r})}})},go:I,goBack:function(){I(-1)},goForward:function(){I(1)},block:function(e){void 0===e&&(e=!1);var t=A.setPrompt(e);return z||(F(1),z=!0),function(){return z&&(z=!1,F(-1)),t()}},listen:function(e){var t=A.appendListener(e);return F(1),function(){F(-1),t()}}};return M}function C(e,t,n){return Math.min(Math.max(e,t),n)}function T(e){void 0===e&&(e={});var t=e,n=t.getUserConfirmation,a=t.initialEntries,o=void 0===a?["/"]:a,i=t.initialIndex,l=t.keyLength,s=void 0===l?6:l,u=m();function c(e){(0,r.A)(b,e),b.length=b.entries.length,u.notifyListeners(b.location,b.action)}function d(){return Math.random().toString(36).substr(2,s)}var h=C(void 0===i?0:i,0,o.length-1),g=o.map(function(e){return"string"==typeof e?p(e,void 0,d()):p(e,void 0,e.key||d())});function y(e){var t=C(b.index+e,0,b.entries.length-1),r=b.entries[t];u.confirmTransitionTo(r,"POP",n,function(e){e?c({action:"POP",location:r,index:t}):c()})}var b={length:g.length,action:"POP",location:g[h],index:h,entries:g,createHref:f,push:function(e,t){var r="PUSH",a=p(e,t,d(),b.location);u.confirmTransitionTo(a,r,n,function(e){if(e){var t=b.index+1,n=b.entries.slice(0);n.length>t?n.splice(t,n.length-t,a):n.push(a),c({action:r,location:a,index:t,entries:n})}})},replace:function(e,t){var r="REPLACE",a=p(e,t,d(),b.location);u.confirmTransitionTo(a,r,n,function(e){e&&(b.entries[b.index]=a,c({action:r,location:a}))})},go:y,goBack:function(){y(-1)},goForward:function(){y(1)},canGo:function(e){var t=b.index+e;return t>=0&&t
'};function o(e,t,n){return en?n:e}r.configure=function(e){var t,n;for(t in e)void 0!==(n=e[t])&&e.hasOwnProperty(t)&&(a[t]=n);return this},r.status=null,r.set=function(e){var t=r.isStarted();r.status=1===(e=o(e,a.minimum,1))?null:e;var n=r.render(!t),s=n.querySelector(a.barSelector),u=a.speed,c=a.easing;return n.offsetWidth,i(function(t){var o,i,d,f;""===a.positionUsing&&(a.positionUsing=r.getPositioningCSS()),l(s,(o=e,i=u,d=c,(f="translate3d"===a.positionUsing?{transform:"translate3d("+(-1+o)*100+"%,0,0)"}:"translate"===a.positionUsing?{transform:"translate("+(-1+o)*100+"%,0)"}:{"margin-left":(-1+o)*100+"%"}).transition="all "+i+"ms "+d,f)),1===e?(l(n,{transition:"none",opacity:1}),n.offsetWidth,setTimeout(function(){l(n,{transition:"all "+u+"ms linear",opacity:0}),setTimeout(function(){r.remove(),t()},u)},u)):setTimeout(t,u)}),this},r.isStarted=function(){return"number"==typeof r.status},r.start=function(){r.status||r.set(0);var e=function(){setTimeout(function(){r.status&&(r.trickle(),e())},a.trickleSpeed)};return a.trickle&&e(),this},r.done=function(e){return e||r.status?r.inc(.3+.5*Math.random()).set(1):this},r.inc=function(e){var t=r.status;return t?("number"!=typeof e&&(e=(1-t)*o(Math.random()*t,.1,.95)),t=o(t+e,0,.994),r.set(t)):r.start()},r.trickle=function(){return r.inc(Math.random()*a.trickleRate)},e=0,t=0,r.promise=function(n){return n&&"resolved"!==n.state()&&(0===t&&r.start(),e++,t++,n.always(function(){0==--t?(e=0,r.done()):r.set((e-t)/e)})),this},r.render=function(e){if(r.isRendered())return document.getElementById("nprogress");u(document.documentElement,"nprogress-busy");var t=document.createElement("div");t.id="nprogress",t.innerHTML=a.template;var n,o=t.querySelector(a.barSelector),i=e?"-100":(-1+(r.status||0))*100,s=document.querySelector(a.parent);return l(o,{transition:"all 0 linear",transform:"translate3d("+i+"%,0,0)"}),!a.showSpinner&&(n=t.querySelector(a.spinnerSelector))&&f(n),s!=document.body&&u(s,"nprogress-custom-parent"),s.appendChild(t),t},r.remove=function(){c(document.documentElement,"nprogress-busy"),c(document.querySelector(a.parent),"nprogress-custom-parent");var e=document.getElementById("nprogress");e&&f(e)},r.isRendered=function(){return!!document.getElementById("nprogress")},r.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 i=(n=[],function(e){n.push(e),1==n.length&&function e(){var t=n.shift();t&&t(e)}()}),l=function(){var e=["Webkit","O","Moz","ms"],t={};function n(n,r,a){var o;r=t[o=(o=r).replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,function(e,t){return t.toUpperCase()})]||(t[o]=function(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}(o)),n.style[r]=a}return function(e,t){var r,a,o=arguments;if(2==o.length)for(r in t)void 0!==(a=t[r])&&t.hasOwnProperty(r)&&n(e,r,a);else n(e,o[1],o[2])}}();function s(e,t){return("string"==typeof e?e:d(e)).indexOf(" "+t+" ")>=0}function u(e,t){var n=d(e),r=n+t;s(n,t)||(e.className=r.substring(1))}function c(e,t){var n,r=d(e);s(e,t)&&(e.className=(n=r.replace(" "+t+" "," ")).substring(1,n.length-1))}function d(e){return(" "+(e.className||"")+" ").replace(/\s+/gi," ")}function f(e){e&&e.parentNode&&e.parentNode.removeChild(e)}return r},"function"==typeof define&&define.amd?define(t):e.exports=t()},4785(e,t,n){var r=n(5526);e.exports=function e(t,n,a){if(r(n)||(a=n||a,n=[]),a=a||{},t instanceof RegExp){var i,l,s=n,d=t.source.match(/\((?!\?)/g);if(d)for(var f=0;f-1?"[^"+s(c)+"]+?":s(d)+"|(?:(?!"+s(d)+")[^"+s(c)+"])+?")})}return i>=?|&&|\|\||[=!+\-*/%<>^&|]=?|[?~:]/,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+(?:\.\w+)*(?=\+?=)/,inside:{environment:{pattern:RegExp("(^|[\\s;|&]|[<>]\\()"+t),lookbehind:!0,alias:"constant"}},alias:"variable",lookbehind:!0},parameter:{pattern:/(^|\s)-{1,2}(?:\w+:[+-]?)?\w+(?:\.\w+)*(?=[=\s]|$)/,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|cargo|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|java|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|sysctl|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","parameter","string","environment","function","keyword","builtin","boolean","file-descriptor","operator","punctuation","number"],o=r.variable[1].inside,i=0;i=o.length);s++){var u=l[s];if("string"==typeof u||u.content&&"string"==typeof u.content){var c=o[a],d=n.tokenStack[c],f="string"==typeof u?u:u.content,p=t(r,c),m=f.indexOf(p);if(m>-1){++a;var h=f.substring(0,m),g=new e.Token(r,e.tokenize(d,n.grammar),"language-"+r,d),y=f.substring(m+p.length),b=[];h&&b.push.apply(b,i([h])),b.push(g),y&&b.push.apply(b,i([y])),"string"==typeof u?l.splice.apply(l,[s,1].concat(b)):u.content=b}}else u.content&&i(u.content)}return l}(n.tokens)}}}})},100(){var e=Prism,t=/(?:[\w-]+|'[^'\n\r]*'|"(?:\\.|[^\\"\r\n])*")/.source;function n(e){return e.replace(/__/g,function(){return t})}e.languages.toml={comment:{pattern:/#.*/,greedy:!0},table:{pattern:RegExp(n(/(^[\t ]*\[\s*(?:\[\s*)?)__(?:\s*\.\s*__)*(?=\s*\])/.source),"m"),lookbehind:!0,greedy:!0,alias:"class-name"},key:{pattern:RegExp(n(/(^[\t ]*|[{,]\s*)__(?:\s*\.\s*__)*(?=\s*=)/.source),"m"),lookbehind:!0,greedy:!0,alias:"property"},string:{pattern:/"""(?:\\[\s\S]|[^\\])*?"""|'''[\s\S]*?'''|'[^'\n\r]*'|"(?:\\.|[^\\"\r\n])*"/,greedy:!0},date:[{pattern:/\b\d{4}-\d{2}-\d{2}(?:[T\s]\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})?)?\b/i,alias:"number"},{pattern:/\b\d{2}:\d{2}:\d{2}(?:\.\d+)?\b/,alias:"number"}],number:/(?:\b0(?:x[\da-zA-Z]+(?:_[\da-zA-Z]+)*|o[0-7]+(?:_[0-7]+)*|b[10]+(?:_[10]+)*))\b|[-+]?\b\d+(?:_\d+)*(?:\.\d+(?:_\d+)*)?(?:[eE][+-]?\d+(?:_\d+)*)?\b|[-+]?\b(?:inf|nan)\b/,boolean:/\b(?:false|true)\b/,punctuation:/[.,=[\]{}]/}},3295(e,t,n){var r={"./prism-bash":"1022","./prism-json":"7874","./prism-toml":"100"};function a(e){return n(o(e))}function o(e){if(!n.o(r,e)){var t=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=3295},6186(e,t,n){"use strict";var r=n(2985);function a(){}function o(){}o.resetWarningCache=a,e.exports=function(){function e(e,t,n,a,o,i){if(i!==r){var l=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}},2736(e,t,n){e.exports=n(6186)()},2985(e){"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},1663(e,t,n){"use strict";var r,a=n(5666),o=n(1763),i=n(8481);function l(e){var t="https://react.dev/errors/"+e;if(1F||(e.current=D[F],D[F]=null,F--)}function $(e,t){D[++F]=e.current,e.current=t}var B=z(null),U=z(null),H=z(null),V=z(null);function W(e,t){switch($(H,t),$(U,e),$(B,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?ub(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)e=uv(t=ub(t),e);else switch(e){case"svg":e=1;break;case"math":e=2;break;default:e=0}}M(B),$(B,e)}function q(){M(B),M(U),M(H)}function G(e){null!==e.memoizedState&&$(V,e);var t=B.current,n=uv(t,e.type);t!==n&&($(U,e),$(B,n))}function Y(e){U.current===e&&(M(B),M(U)),V.current===e&&(M(V),ct._currentValue=I)}function K(e){if(void 0===tF)try{throw Error()}catch(e){var t=e.stack.trim().match(/\n( *(at )?)/);tF=t&&t[1]||"",tz=-1)":-1a||s[r]!==u[a]){var c="\n"+s[r].replace(" at new "," at ");return e.displayName&&c.includes("")&&(c=c.replace("",e.displayName)),c}while(1<=r&&0<=a)break}}}finally{Q=!1,Error.prepareStackTrace=n}return(n=e?e.displayName||e.name:"")?K(n):""}function X(e){try{var t="",n=null;do t+=function(e,t){switch(e.tag){case 26:case 27:case 5:return K(e.type);case 16:return K("Lazy");case 13:return e.child!==t&&null!==t?K("Suspense Fallback"):K("Suspense");case 19:return K("SuspenseList");case 0:case 15:return Z(e.type,!1);case 11:return Z(e.type.render,!1);case 1:return Z(e.type,!0);case 31:return K("Activity");default:return""}}(e,n),n=e,e=e.return;while(e)return t}catch(e){return"\nError generating stack: "+e.message+"\n"+e.stack}}var J=Object.prototype.hasOwnProperty,ee=a.unstable_scheduleCallback,et=a.unstable_cancelCallback,en=a.unstable_shouldYield,er=a.unstable_requestPaint,ea=a.unstable_now,eo=a.unstable_getCurrentPriorityLevel,ei=a.unstable_ImmediatePriority,el=a.unstable_UserBlockingPriority,es=a.unstable_NormalPriority,eu=a.unstable_LowPriority,ec=a.unstable_IdlePriority,ed=a.log,ef=a.unstable_setDisableYieldValue,ep=null,em=null;function eh(e){if("function"==typeof ed&&ef(e),em&&"function"==typeof em.setStrictMode)try{em.setStrictMode(ep,e)}catch(e){}}var eg=Math.clz32?Math.clz32:function(e){return 0==(e>>>=0)?32:31-(ey(e)/eb|0)|0},ey=Math.log,eb=Math.LN2,ev=256,ew=262144,ek=4194304;function ex(e){var t=42&e;if(0!==t)return t;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return 261888&e;case 262144:case 524288:case 1048576:case 2097152:return 3932160&e;case 4194304:case 8388608:case 0x1000000:case 0x2000000:return 0x3c00000&e;case 0x4000000:return 0x4000000;case 0x8000000:return 0x8000000;case 0x10000000:return 0x10000000;case 0x20000000:return 0x20000000;case 0x40000000:return 0;default:return e}}function eS(e,t,n){var r=e.pendingLanes;if(0===r)return 0;var a=0,o=e.suspendedLanes,i=e.pingedLanes;e=e.warmLanes;var l=0x7ffffff&r;return 0!==l?0!=(r=l&~o)?a=ex(r):0!=(i&=l)?a=ex(i):n||0!=(n=l&~e)&&(a=ex(n)):0!=(l=r&~o)?a=ex(l):0!==i?a=ex(i):n||0!=(n=r&~e)&&(a=ex(n)),0===a?0:0!==t&&t!==a&&0==(t&o)&&((o=a&-a)>=(n=t&-t)||32===o&&0!=(4194048&n))?t:a}function eE(e,t){return 0==(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)}function e_(){var e=ek;return 0==(0x3c00000&(ek<<=1))&&(ek=4194304),e}function eA(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function eC(e,t){e.pendingLanes|=t,0x10000000!==t&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function eT(e,t,n){e.pendingLanes|=t,e.suspendedLanes&=~t;var r=31-eg(t);e.entangledLanes|=t,e.entanglements[r]=0x40000000|e.entanglements[r]|261930&n}function eP(e,t){var n=e.entangledLanes|=t;for(e=e.entanglements;n;){var r=31-eg(n),a=1<typeof document?document:void 0)))return null;try{return e.activeElement||e.body}catch(t){return e.body}}var tt=/[\n"\\]/g;function tn(e){return e.replace(tt,function(e){return"\\"+e.charCodeAt(0).toString(16)+" "})}function tr(e,t,n,r,a,o,i,l){e.name="",null!=i&&"function"!=typeof i&&"symbol"!=typeof i&&"boolean"!=typeof i?e.type=i:e.removeAttribute("type"),null!=t?"number"===i?(0===t&&""===e.value||e.value!=t)&&(e.value=""+e5(t)):e.value!==""+e5(t)&&(e.value=""+e5(t)):"submit"!==i&&"reset"!==i||e.removeAttribute("value"),null!=t?to(e,i,e5(t)):null!=n?to(e,i,e5(n)):null!=r&&e.removeAttribute("value"),null==a&&null!=o&&(e.defaultChecked=!!o),null!=a&&(e.checked=a&&"function"!=typeof a&&"symbol"!=typeof a),null!=l&&"function"!=typeof l&&"symbol"!=typeof l&&"boolean"!=typeof l?e.name=""+e5(l):e.removeAttribute("name")}function ta(e,t,n,r,a,o,i,l){if(null!=o&&"function"!=typeof o&&"symbol"!=typeof o&&"boolean"!=typeof o&&(e.type=o),null!=t||null!=n){if(("submit"===o||"reset"===o)&&null==t)return void e6(e);n=null!=n?""+e5(n):"",t=null!=t?""+e5(t):n,l||t===e.value||(e.value=t),e.defaultValue=t}r="function"!=typeof(r=null!=r?r:a)&&"symbol"!=typeof r&&!!r,e.checked=l?e.checked:!!r,e.defaultChecked=!!r,null!=i&&"function"!=typeof i&&"symbol"!=typeof i&&"boolean"!=typeof i&&(e.name=i),e6(e)}function to(e,t,n){"number"===t&&te(e.ownerDocument)===e||e.defaultValue===""+n||(e.defaultValue=""+n)}function ti(e,t,n,r){if(e=e.options,t){t={};for(var a=0;atypeof window&&void 0!==window.document&&void 0!==window.document.createElement,tC=!1;if(tA)try{var tT={};Object.defineProperty(tT,"passive",{get:function(){tC=!0}}),window.addEventListener("test",tT,tT),window.removeEventListener("test",tT,tT)}catch(e){tC=!1}var tP=null,tO=null,tL=null;function tN(){if(tL)return tL;var e,t,n=tO,r=n.length,a="value"in tP?tP.value:tP.textContent,o=a.length;for(e=0;e=nn),no=!1;function ni(e,t){switch(e){case"keyup":return -1!==ne.indexOf(t.keyCode);case"keydown":return 229!==t.keyCode;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function nl(e){return"object"==typeof(e=e.detail)&&"data"in e?e.data:null}var ns=!1,nu={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 nc(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===t?!!nu[e.type]:"textarea"===t}function nd(e,t,n,r){tw?tk?tk.push(r):tk=[r]:tw=r,0<(t=ua(t,"onChange")).length&&(n=new tH("onChange","change",null,n,r),e.push({event:n,listeners:t}))}var nf=null,np=null;function nm(e){s5(e,0)}function nh(e){if(e7(eG(e)))return e}function ng(e,t){if("change"===e)return t}var ny=!1;if(tA){if(tA){var nb="oninput"in document;if(!nb){var nv=document.createElement("div");nv.setAttribute("oninput","return;"),nb="function"==typeof nv.oninput}r=nb}else r=!1;ny=r&&(!document.documentMode||9=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=nT(r)}}function nO(e){e=null!=e&&null!=e.ownerDocument&&null!=e.ownerDocument.defaultView?e.ownerDocument.defaultView:window;for(var t=te(e.document);t instanceof e.HTMLIFrameElement;){try{var n="string"==typeof t.contentWindow.location.href}catch(e){n=!1}if(n)e=t.contentWindow;else break;t=te(e.document)}return t}function nL(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 nN=tA&&"documentMode"in document&&11>=document.documentMode,nj=null,nR=null,nI=null,nD=!1;function nF(e,t,n){var r=n.window===n?n.document:9===n.nodeType?n:n.ownerDocument;nD||null==nj||nj!==te(r)||(r="selectionStart"in(r=nj)&&nL(r)?{start:r.selectionStart,end:r.selectionEnd}:{anchorNode:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection()).anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset},nI&&nC(nI,r)||(nI=r,0<(r=ua(nR,"onSelect")).length&&(t=new tH("onSelect","select",null,t,n),e.push({event:t,listeners:r}),t.target=nj)))}function nz(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var nM={animationend:nz("Animation","AnimationEnd"),animationiteration:nz("Animation","AnimationIteration"),animationstart:nz("Animation","AnimationStart"),transitionrun:nz("Transition","TransitionRun"),transitionstart:nz("Transition","TransitionStart"),transitioncancel:nz("Transition","TransitionCancel"),transitionend:nz("Transition","TransitionEnd")},n$={},nB={};function nU(e){if(n$[e])return n$[e];if(!nM[e])return e;var t,n=nM[e];for(t in n)if(n.hasOwnProperty(t)&&t in nB)return n$[e]=n[t];return e}tA&&(nB=document.createElement("div").style,"AnimationEvent"in window||(delete nM.animationend.animation,delete nM.animationiteration.animation,delete nM.animationstart.animation),"TransitionEvent"in window||delete nM.transitionend.transition);var nH=nU("animationend"),nV=nU("animationiteration"),nW=nU("animationstart"),nq=nU("transitionrun"),nG=nU("transitionstart"),nY=nU("transitioncancel"),nK=nU("transitionend"),nQ=new Map,nZ="abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");function nX(e,t){nQ.set(e,t),eX(t,[e])}nZ.push("scrollEnd");var nJ="function"==typeof reportError?reportError:function(e){if("object"==typeof window&&"function"==typeof window.ErrorEvent){var t=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:"object"==typeof e&&null!==e&&"string"==typeof e.message?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if("object"==typeof process&&"function"==typeof process.emit)return void process.emit("uncaughtException",e);console.error(e)},n0=[],n1=0,n2=0;function n3(){for(var e=n1,t=n2=n1=0;t>=i,a-=i,rv=1<<32-eg(t)+a|n<typeof AbortController?AbortController:function(){var e=[],t=this.signal={aborted:!1,addEventListener:function(t,n){e.push(n)}};this.abort=function(){t.aborted=!0,e.forEach(function(e){return e()})}},rJ=a.unstable_scheduleCallback,r0=a.unstable_NormalPriority,r1={$$typeof:k,Consumer:null,Provider:null,_currentValue:null,_currentValue2:null,_threadCount:0};function r2(){return{controller:new rX,data:new Map,refCount:0}}function r3(e){e.refCount--,0===e.refCount&&rJ(r0,function(){e.controller.abort()})}var r4=null,r9=0,r5=0,r8=null;function r6(){if(0==--r9&&null!==r4){null!==r8&&(r8.status="fulfilled");var e=r4;r4=null,r5=0,r8=null;for(var t=0;th?(g=d,d=null):g=d.sibling;var y=p(a,d,l[h],s);if(null===y){null===d&&(d=g);break}e&&d&&null===y.alternate&&t(a,d),i=o(y,i,h),null===c?u=y:c.sibling=y,c=y,d=g}if(h===l.length)return n(a,d),rT&&rk(a,h),u;if(null===d){for(;hg?(y=h,h=null):y=h.sibling;var v=p(a,h,b.value,u);if(null===v){null===h&&(h=y);break}e&&h&&null===v.alternate&&t(a,h),i=o(v,i,g),null===d?c=v:d.sibling=v,d=v,h=y}if(b.done)return n(a,h),rT&&rk(a,g),c;if(null===h){for(;!b.done;g++,b=s.next())null!==(b=f(a,b.value,u))&&(i=o(b,i,g),null===d?c=b:d.sibling=b,d=b);return rT&&rk(a,g),c}for(h=r(h);!b.done;g++,b=s.next())null!==(b=m(h,a,g,b.value,u))&&(e&&null!==b.alternate&&h.delete(null===b.key?g:b.key),i=o(b,i,g),null===d?c=b:d.sibling=b,d=b);return e&&h.forEach(function(e){return t(a,e)}),rT&&rk(a,g),c}(u,c,d=v.call(d),b)}if("function"==typeof d.then)return s(u,c,ag(d),b);if(d.$$typeof===k)return s(u,c,rQ(u,d),b);ab(u,d)}return"string"==typeof d&&""!==d||"number"==typeof d||"bigint"==typeof d?(d=""+d,null!==c&&6===c.tag?(n(u,c.sibling),(b=a(c,d)).return=u):(n(u,c),(b=rl(d,u.mode,b)).return=u),i(u=b)):n(u,c)}(s,u,c,d);return am=null,b}catch(e){if(e===aa||e===ai)throw e;var v=rt(29,e,null,s.mode);return v.lanes=d,v.return=s,v}finally{}}}var aw=av(!0),ak=av(!1),ax=!1;function aS(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function aE(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,callbacks:null})}function a_(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function aA(e,t,n){var r=e.updateQueue;if(null===r)return null;if(r=r.shared,0!=(2&lF)){var a=r.pending;return null===a?t.next=t:(t.next=a.next,a.next=t),r.pending=t,t=n6(e),n8(e,null,n),t}return n4(e,r,t,n),n6(e)}function aC(e,t,n){if(null!==(t=t.updateQueue)&&(t=t.shared,0!=(4194048&n))){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,eP(e,n)}}function aT(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={lane:n.lane,tag:n.tag,payload:n.payload,callback:null,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;n={baseState:r.baseState,firstBaseUpdate:a,lastBaseUpdate:o,shared:r.shared,callbacks:r.callbacks},e.updateQueue=n;return}null===(e=n.lastBaseUpdate)?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}var aP=!1;function aO(){if(aP){var e=r8;if(null!==e)throw e}}function aL(e,t,n,r){aP=!1;var a=e.updateQueue;ax=!1;var o=a.firstBaseUpdate,i=a.lastBaseUpdate,l=a.shared.pending;if(null!==l){a.shared.pending=null;var s=l,u=s.next;s.next=null,null===i?o=u:i.next=u,i=s;var c=e.alternate;null!==c&&(l=(c=c.updateQueue).lastBaseUpdate)!==i&&(null===l?c.firstBaseUpdate=u:l.next=u,c.lastBaseUpdate=s)}if(null!==o){var d=a.baseState;for(i=0,c=u=s=null,l=o;;){var f=-0x20000001&l.lane,m=f!==l.lane;if(m?(l$&f)===f:(r&f)===f){0!==f&&f===r5&&(aP=!0),null!==c&&(c=c.next={lane:0,tag:l.tag,payload:l.payload,callback:null,next:null});e:{var h=e,g=l;switch(f=t,g.tag){case 1:if("function"==typeof(h=g.payload)){d=h.call(n,d,f);break e}d=h;break e;case 3:h.flags=-65537&h.flags|128;case 0:if(null==(f="function"==typeof(h=g.payload)?h.call(n,d,f):h))break e;d=p({},d,f);break e;case 2:ax=!0}}null!==(f=l.callback)&&(e.flags|=64,m&&(e.flags|=8192),null===(m=a.callbacks)?a.callbacks=[f]:m.push(f))}else m={lane:f,tag:l.tag,payload:l.payload,callback:l.callback,next:null},null===c?(u=c=m,s=d):c=c.next=m,i|=f;if(null===(l=l.next))if(null===(l=a.shared.pending))break;else l=(m=l).next,m.next=null,a.lastBaseUpdate=m,a.shared.pending=null}null===c&&(s=d),a.baseState=s,a.firstBaseUpdate=u,a.lastBaseUpdate=c,null===o&&(a.shared.lanes=0),lY|=i,e.lanes=i,e.memoizedState=d}}function aN(e,t){if("function"!=typeof e)throw Error(l(191,e));e.call(t)}function aj(e,t){var n=e.callbacks;if(null!==n)for(e.callbacks=null,e=0;eo?o:8;var i=j.T,l={};j.T=l,o6(e,!1,t,n);try{var s=a(),u=j.S;if(null!==u&&u(l,s),null!==s&&"object"==typeof s&&"function"==typeof s.then){var c,d,f=(c=[],d={status:"pending",value:null,reason:null,then:function(e){c.push(e)}},s.then(function(){d.status="fulfilled",d.value=r;for(var e=0;e title"))),up(o,r,n),o[eD]=e,eK(o),r=o;break e;case"link":var i=u3("link","href",a).get(r+(n.href||""));if(i){for(var s=0;sl)break;var c=s.transferSize,d=s.initiatorType;c&&um(d)&&(i+=c*((s=s.responseEnd)u5?50:800)+h);return m.unsuspend=e,function(){m.unsuspend=null,clearTimeout(t),clearTimeout(n)}}:null)){se=o,e.cancelPendingCommit=g(sA.bind(null,e,t,o,n,r,a,i,l,s,c,d,null,f,p)),sd(e,o,i,!u);return}}sA(e,t,o,n,r,a,i,l,s)}function sd(e,t,n,r){t&=~lQ,t&=~lK,e.suspendedLanes|=t,e.pingedLanes&=~t,r&&(e.warmLanes|=t),r=e.expirationTimes;for(var a=t;0<\/script>",o=o.removeChild(o.firstChild);break;case"select":o="string"==typeof r.is?i.createElement("select",{is:r.is}):i.createElement("select"),r.multiple?o.multiple=!0:r.size&&(o.size=r.size);break;default:o="string"==typeof r.is?i.createElement(a,{is:r.is}):i.createElement(a)}}o[eD]=t,o[eF]=r;e:for(i=t.child;null!==i;){if(5===i.tag||6===i.tag)o.appendChild(i.stateNode);else if(4!==i.tag&&27!==i.tag&&null!==i.child){i.child.return=i,i=i.child;continue}if(i===t)break;for(;null===i.sibling;){if(null===i.return||i.return===t)break e;i=i.return}i.sibling.return=i.return,i=i.sibling}switch(t.stateNode=o,up(o,a,r),a){case"button":case"input":case"select":case"textarea":r=!!r.autoFocus;break;case"img":r=!0;break;default:r=!1}r&&iQ(t)}}return i1(t),iZ(t,t.type,null===e?null:e.memoizedProps,t.pendingProps,n),null;case 6:if(e&&null!=t.stateNode)e.memoizedProps!==r&&iQ(t);else{if("string"!=typeof r&&null===t.stateNode)throw Error(l(166));if(e=H.current,rI(t)){if(e=t.stateNode,n=t.memoizedProps,r=null,null!==(a=rA))switch(a.tag){case 27:case 5:r=a.memoizedProps}e[eD]=t,(e=!!(e.nodeValue===n||null!==r&&!0===r.suppressHydrationWarning||uc(e.nodeValue,n)))||rN(t,!0)}else(e=uy(e).createTextNode(r))[eD]=t,t.stateNode=e}return i1(t),null;case 31:if(n=t.memoizedState,null===e||null!==e.memoizedState){if(r=rI(t),null!==n){if(null===e){if(!r)throw Error(l(318));if(!(e=null!==(e=t.memoizedState)?e.dehydrated:null))throw Error(l(557));e[eD]=t}else rD(),0==(128&t.flags)&&(t.memoizedState=null),t.flags|=4;i1(t),e=!1}else n=rF(),null!==e&&null!==e.memoizedState&&(e.memoizedState.hydrationErrors=n),e=!0;if(!e){if(256&t.flags)return aW(t),t;return aW(t),null}if(0!=(128&t.flags))throw Error(l(558))}return i1(t),null;case 13:if(r=t.memoizedState,null===e||null!==e.memoizedState&&null!==e.memoizedState.dehydrated){if(a=rI(t),null!==r&&null!==r.dehydrated){if(null===e){if(!a)throw Error(l(318));if(!(a=null!==(a=t.memoizedState)?a.dehydrated:null))throw Error(l(317));a[eD]=t}else rD(),0==(128&t.flags)&&(t.memoizedState=null),t.flags|=4;i1(t),a=!1}else a=rF(),null!==e&&null!==e.memoizedState&&(e.memoizedState.hydrationErrors=a),a=!0;if(!a){if(256&t.flags)return aW(t),t;return aW(t),null}}if(aW(t),0!=(128&t.flags))return t.lanes=n,t;return n=null!==r,e=null!==e&&null!==e.memoizedState,n&&(r=t.child,a=null,null!==r.alternate&&null!==r.alternate.memoizedState&&null!==r.alternate.memoizedState.cachePool&&(a=r.alternate.memoizedState.cachePool.pool),o=null,null!==r.memoizedState&&null!==r.memoizedState.cachePool&&(o=r.memoizedState.cachePool.pool),o!==a&&(r.flags|=2048)),n!==e&&n&&(t.child.flags|=8192),iJ(t,t.updateQueue),i1(t),null;case 4:return q(),null===e&&ue(t.stateNode.containerInfo),i1(t),null;case 10:return rH(t.type),i1(t),null;case 19:if(M(aq),null===(r=t.memoizedState))return i1(t),null;if(a=0!=(128&t.flags),null===(o=r.rendering))if(a)i0(r,!1);else{if(0!==lG||null!==e&&0!=(128&e.flags))for(e=t.child;null!==e;){if(null!==(o=aG(e))){for(t.flags|=128,i0(r,!1),t.updateQueue=e=o.updateQueue,iJ(t,e),t.subtreeFlags=0,e=n,n=t.child;null!==n;)ra(n,e),n=n.sibling;return $(aq,1&aq.current|2),rT&&rk(t,r.treeForkCount),t.child}e=e.sibling}null!==r.tail&&ea()>l4&&(t.flags|=128,a=!0,i0(r,!1),t.lanes=4194304)}else{if(!a)if(null!==(e=aG(o))){if(t.flags|=128,a=!0,t.updateQueue=e=e.updateQueue,iJ(t,e),i0(r,!0),null===r.tail&&"hidden"===r.tailMode&&!o.alternate&&!rT)return i1(t),null}else 2*ea()-r.renderingStartTime>l4&&0x20000000!==n&&(t.flags|=128,a=!0,i0(r,!1),t.lanes=4194304);r.isBackwards?(o.sibling=t.child,t.child=o):(null!==(e=r.last)?e.sibling=o:t.child=o,r.last=o)}if(null!==r.tail)return e=r.tail,r.rendering=e,r.tail=e.sibling,r.renderingStartTime=ea(),e.sibling=null,n=aq.current,$(aq,a?1&n|2:1&n),rT&&rk(t,r.treeForkCount),e;return i1(t),null;case 22:case 23:return aW(t),az(),r=null!==t.memoizedState,null!==e?null!==e.memoizedState!==r&&(t.flags|=8192):r&&(t.flags|=8192),r?0!=(0x20000000&n)&&0==(128&t.flags)&&(i1(t),6&t.subtreeFlags&&(t.flags|=8192)):i1(t),null!==(n=t.updateQueue)&&iJ(t,n.retryQueue),n=null,null!==e&&null!==e.memoizedState&&null!==e.memoizedState.cachePool&&(n=e.memoizedState.cachePool.pool),r=null,null!==t.memoizedState&&null!==t.memoizedState.cachePool&&(r=t.memoizedState.cachePool.pool),r!==n&&(t.flags|=2048),null!==e&&M(ae),null;case 24:return n=null,null!==e&&(n=e.memoizedState.cache),t.memoizedState.cache!==n&&(t.flags|=2048),rH(r1),i1(t),null;case 25:case 30:return null}throw Error(l(156,t.tag))}(t.alternate,t,lq);if(null!==n){lM=n;return}if(null!==(t=t.sibling)){lM=t;return}lM=t=e}while(null!==t)0===lG&&(lG=5)}function s_(e,t){do{var n=function(e,t){switch(rE(t),t.tag){case 1:return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 3:return rH(r1),q(),0!=(65536&(e=t.flags))&&0==(128&e)?(t.flags=-65537&e|128,t):null;case 26:case 27:case 5:return Y(t),null;case 31:if(null!==t.memoizedState){if(aW(t),null===t.alternate)throw Error(l(340));rD()}return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 13:if(aW(t),null!==(e=t.memoizedState)&&null!==e.dehydrated){if(null===t.alternate)throw Error(l(340));rD()}return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 19:return M(aq),null;case 4:return q(),null;case 10:return rH(t.type),null;case 22:case 23:return aW(t),az(),null!==e&&M(ae),65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 24:return rH(r1),null;default:return null}}(e.alternate,e);if(null!==n){n.flags&=32767,lM=n;return}if(null!==(n=e.return)&&(n.flags|=32768,n.subtreeFlags=0,n.deletions=null),!t&&null!==(e=e.sibling)){lM=e;return}lM=e=n}while(null!==e)lG=6,lM=null}function sA(e,t,n,r,a,o,i,s,u){e.cancelPendingCommit=null;do sL();while(0!==l8)if(0!=(6&lF))throw Error(l(327));if(null!==t){if(t===e.current)throw Error(l(177));if(!function(e,t,n,r,a,o){var i=e.pendingLanes;e.pendingLanes=n,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=n,e.entangledLanes&=n,e.errorRecoveryDisabledLanes&=n,e.shellSuspendCounter=0;var l=e.entanglements,s=e.expirationTimes,u=e.hiddenUpdates;for(n=i&~n;0g&&(i=g,g=h,h=i);var y=nP(l,h),b=nP(l,g);if(y&&b&&(1!==p.rangeCount||p.anchorNode!==y.node||p.anchorOffset!==y.offset||p.focusNode!==b.node||p.focusOffset!==b.offset)){var v=d.createRange();v.setStart(y.node,y.offset),p.removeAllRanges(),h>g?(p.addRange(v),p.extend(b.node,b.offset)):(v.setEnd(b.node,b.offset),p.addRange(v))}}}}for(d=[],p=l;p=p.parentNode;)1===p.nodeType&&d.push({element:p,left:p.scrollLeft,top:p.scrollTop});for("function"==typeof l.focus&&l.focus(),l=0;ln?32:n,j.T=null,n=sn,sn=null;var o=l6,i=se;if(l8=0,l7=l6=null,se=0,0!=(6&lF))throw Error(l(331));var s=lF;if(lF|=4,lj(o.current),lA(o,o.current,i,n),lF=s,sG(0,!1),em&&"function"==typeof em.onPostCommitFiberRoot)try{em.onPostCommitFiberRoot(ep,o)}catch(e){}return!0}finally{R.p=a,j.T=r,sO(e,t)}}function sj(e,t,n){t=rd(n,t),t=ib(e.stateNode,t,2),null!==(e=aA(e,t,2))&&(eC(e,2),sq(e))}function sR(e,t,n){if(3===e.tag)sj(e,e,n);else for(;null!==t;){if(3===t.tag){sj(t,e,n);break}if(1===t.tag){var r=t.stateNode;if("function"==typeof t.type.getDerivedStateFromError||"function"==typeof r.componentDidCatch&&(null===l5||!l5.has(r))){e=rd(n,e),null!==(r=aA(t,n=iv(2),2))&&(iw(n,r,t,e),eC(r,2),sq(r));break}}t=t.return}}function sI(e,t,n){var r=e.pingCache;if(null===r){r=e.pingCache=new lD;var a=new Set;r.set(t,a)}else void 0===(a=r.get(t))&&(a=new Set,r.set(t,a));a.has(n)||(lW=!0,a.add(n),e=sD.bind(null,e,t,n),t.then(e,e))}function sD(e,t,n){var r=e.pingCache;null!==r&&r.delete(t),e.pingedLanes|=e.suspendedLanes&n,e.warmLanes&=~n,lz===e&&(l$&n)===n&&(4===lG||3===lG&&(0x3c00000&l$)===l$&&300>ea()-l2?0==(2&lF)&&sm(e,0):lQ|=n,lX===l$&&(lX=0)),sq(e)}function sF(e,t){0===t&&(t=e_()),null!==(e=n5(e,t))&&(eC(e,t),sq(e))}function sz(e){var t=e.memoizedState,n=0;null!==t&&(n=t.retryLane),sF(e,n)}function sM(e,t){var n=0;switch(e.tag){case 31:case 13:var r=e.stateNode,a=e.memoizedState;null!==a&&(n=a.retryLane);break;case 19:r=e.stateNode;break;case 22:r=e.stateNode._retryCache;break;default:throw Error(l(314))}null!==r&&r.delete(t),sF(e,n)}var s$=null,sB=null,sU=!1,sH=!1,sV=!1,sW=0;function sq(e){e!==sB&&null===e.next&&(null===sB?s$=sB=e:sB=sB.next=e),sH=!0,sU||(sU=!0,u_(function(){0!=(6&lF)?ee(ei,sY):sK()}))}function sG(e,t){if(!sV&&sH){sV=!0;do for(var n=!1,r=s$;null!==r;){if(!t)if(0!==e){var a=r.pendingLanes;if(0===a)var o=0;else{var i=r.suspendedLanes,l=r.pingedLanes;o=0xc000095&(o=(1<<31-eg(42|e)+1)-1&(a&~(i&~l)))?0xc000095&o|1:o?2|o:0}0!==o&&(n=!0,sX(r,o))}else o=l$,0==(3&(o=eS(r,r===lz?o:0,null!==r.cancelPendingCommit||-1!==r.timeoutHandle)))||eE(r,o)||(n=!0,sX(r,o));r=r.next}while(n)sV=!1}}function sY(){sK()}function sK(){sH=sU=!1;var e,t=0;0===sW||((e=window.event)&&"popstate"===e.type?e===uk||(uk=e,0):(uk=null,1))||(t=sW);for(var n=ea(),r=null,a=s$;null!==a;){var o=a.next,i=sQ(a,n);0===i?(a.next=null,null===r?s$=o:r.next=o,null===o&&(sB=r)):(r=a,(0!==t||0!=(3&i))&&(sH=!0)),a=o}0!==l8&&5!==l8||sG(t,!1),0!==sW&&(sW=0)}function sQ(e,t){for(var n=e.suspendedLanes,r=e.pingedLanes,a=e.expirationTimes,o=-0x3c00001&e.pendingLanes;0 title"):null)}function u9(e){return"stylesheet"!==e.type||0!=(3&e.state.loading)}var u5=0;function u8(){if(this.count--,0===this.count&&(0===this.imgCount||!this.waitingForImages)){if(this.stylesheets)u7(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}}var u6=null;function u7(e,t){e.stylesheets=null,null!==e.unsuspend&&(e.count++,u6=new Map,t.forEach(ce,e),u6=null,u8.call(e))}function ce(e,t){if(!(4&t.state.loading)){var n=u6.get(e);if(n)var r=n.get(null);else{n=new Map,u6.set(e,n);for(var a=e.querySelectorAll("link[data-precedence],style[data-precedence]"),o=0;otypeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var cM=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!cM.isDisabled&&cM.supportsFiber)try{ep=cM.inject({bundleType:0,version:"19.2.8",rendererPackageName:"react-dom",currentDispatcherRef:j,reconcilerVersion:"19.2.8"}),em=cM}catch(e){}}t.createRoot=function(e,t){if(!s(e))throw Error(l(299));var n=!1,r="",a=ip,o=im,i=ih;return null!=t&&(!0===t.unstable_strictMode&&(n=!0),void 0!==t.identifierPrefix&&(r=t.identifierPrefix),void 0!==t.onUncaughtError&&(a=t.onUncaughtError),void 0!==t.onCaughtError&&(o=t.onCaughtError),void 0!==t.onRecoverableError&&(i=t.onRecoverableError)),t=cr(e,1,!1,null,null,n,r,null,a,o,i,cI),e[ez]=t.current,ue(e),new cD(t)},t.hydrateRoot=function(e,t,n){if(!s(e))throw Error(l(299));var r=!1,a="",o=ip,i=im,u=ih,c=null;return null!=n&&(!0===n.unstable_strictMode&&(r=!0),void 0!==n.identifierPrefix&&(a=n.identifierPrefix),void 0!==n.onUncaughtError&&(o=n.onUncaughtError),void 0!==n.onCaughtError&&(i=n.onCaughtError),void 0!==n.onRecoverableError&&(u=n.onRecoverableError),void 0!==n.formState&&(c=n.formState)),(t=cr(e,1,!0,t,null!=n?n:null,r,a,c,o,i,u,cI)).context=n7,n=t.current,(a=a_(r=eL(r=si()))).callback=null,aA(n,a,r),n=r,t.current.lanes=n,eC(t,n),sq(t),e[ez]=t.current,ue(e),new cF(t)},t.version="19.2.8"},4797(e,t,n){"use strict";var r=n(1763);function a(e){var t="https://react.dev/errors/"+e;if(1typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(e){console.error(e)}}(),e.exports=n(1663)},8481(e,t,n){"use strict";!function e(){if("u">typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(e){console.error(e)}}(),e.exports=n(4797)},4072(e){var t="u">typeof Element,n="function"==typeof Map,r="function"==typeof Set,a="function"==typeof ArrayBuffer&&!!ArrayBuffer.isView;e.exports=function(e,o){try{return function e(o,i){if(o===i)return!0;if(o&&i&&"object"==typeof o&&"object"==typeof i){var l,s,u,c;if(o.constructor!==i.constructor)return!1;if(Array.isArray(o)){if((l=o.length)!=i.length)return!1;for(s=l;0!=s--;)if(!e(o[s],i[s]))return!1;return!0}if(n&&o instanceof Map&&i instanceof Map){if(o.size!==i.size)return!1;for(c=o.entries();!(s=c.next()).done;)if(!i.has(s.value[0]))return!1;for(c=o.entries();!(s=c.next()).done;)if(!e(s.value[1],i.get(s.value[0])))return!1;return!0}if(r&&o instanceof Set&&i instanceof Set){if(o.size!==i.size)return!1;for(c=o.entries();!(s=c.next()).done;)if(!i.has(s.value[0]))return!1;return!0}if(a&&ArrayBuffer.isView(o)&&ArrayBuffer.isView(i)){if((l=o.length)!=i.length)return!1;for(s=l;0!=s--;)if(o[s]!==i[s])return!1;return!0}if(o.constructor===RegExp)return o.source===i.source&&o.flags===i.flags;if(o.valueOf!==Object.prototype.valueOf&&"function"==typeof o.valueOf&&"function"==typeof i.valueOf)return o.valueOf()===i.valueOf();if(o.toString!==Object.prototype.toString&&"function"==typeof o.toString&&"function"==typeof i.toString)return o.toString()===i.toString();if((l=(u=Object.keys(o)).length)!==Object.keys(i).length)return!1;for(s=l;0!=s--;)if(!Object.prototype.hasOwnProperty.call(i,u[s]))return!1;if(t&&o instanceof Element)return!1;for(s=l;0!=s--;)if(("_owner"!==u[s]&&"__v"!==u[s]&&"__o"!==u[s]||!o.$$typeof)&&!e(o[u[s]],i[u[s]]))return!1;return!0}return o!=o&&i!=i}(e,o)}catch(e){if((e.message||"").match(/stack|recursion/i))return console.warn("react-fast-compare cannot handle circular refs"),!1;throw e}}},5843(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,s=n?Symbol.for("react.provider"):60109,u=n?Symbol.for("react.context"):60110,c=n?Symbol.for("react.async_mode"):60111,d=n?Symbol.for("react.concurrent_mode"):60111,f=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,y=n?Symbol.for("react.block"):60121,b=n?Symbol.for("react.fundamental"):60117,v=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 d:case o:case l:case i:case p:return e;default:switch(e=e&&e.$$typeof){case u:case f:case g:case h:case s:return e;default:return t}}case a:return t}}}function x(e){return k(e)===d}t.AsyncMode=c,t.ConcurrentMode=d,t.ContextConsumer=u,t.ContextProvider=s,t.Element=r,t.ForwardRef=f,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 x(e)||k(e)===c},t.isConcurrentMode=x,t.isContextConsumer=function(e){return k(e)===u},t.isContextProvider=function(e){return k(e)===s},t.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===r},t.isForwardRef=function(e){return k(e)===f},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===d||e===l||e===i||e===p||e===m||"object"==typeof e&&null!==e&&(e.$$typeof===g||e.$$typeof===h||e.$$typeof===s||e.$$typeof===u||e.$$typeof===f||e.$$typeof===b||e.$$typeof===v||e.$$typeof===w||e.$$typeof===y)},t.typeOf=k},5959(e,t,n){"use strict";e.exports=n(5843)},6345(e,t,n){"use strict";n.d(t,{u:()=>function e(t,n,a){return void 0===a&&(a=[]),t.some(function(t){var o=t.path?(0,r.B6)(n,t):a.length?a[a.length-1].match:r.Ix.computeRootMatch(n);return o&&(a.push({route:t,match:o}),t.routes&&e(t.routes,n,a)),o}),a},v:()=>i});var r=n(6532),a=n(5062),o=n(1763);function i(e,t,n){return void 0===t&&(t={}),void 0===n&&(n={}),e?o.createElement(r.dO,n,e.map(function(e,n){return o.createElement(r.qh,{key:e.key||n,path:e.path,exact:e.exact,strict:e.strict,render:function(n){return e.render?e.render((0,a.A)({},n,{},t,{route:e})):o.createElement(e.component,(0,a.A)({},n,t,{route:e}))}})})):null}},5399(e,t,n){"use strict";n.d(t,{I9:()=>d,Kd:()=>c,N_:()=>y,k2:()=>w});var r=n(6532),a=n(949),o=n(1763),i=n(477),l=n(5062),s=n(6905),u=n(5385),c=function(e){function t(){for(var t,n=arguments.length,r=Array(n),a=0;av,Ix:()=>g,W6:()=>S,XZ:()=>h,dO:()=>k,qh:()=>w,zy:()=>E});var r=n(949),a=n(1763),o=n(2736),i=n.n(o),l=(n(477),n(5385)),s=n(5062),u=n(4785),c=n.n(u);n(5959),n(6905),n(1035);var d="u">typeof globalThis?globalThis:"u">typeof window?window:void 0!==n.g?n.g:{},f=a.createContext||function(e,t){var n,o,l="__create-react-context-"+(d.__global_unique_id__=(d.__global_unique_id__||0)+1)+"__",s=function(e){function n(){for(var t,n,r,a=arguments.length,o=Array(a),i=0;i>>1,a=e[r];if(0>>1;ro(s,n))uo(c,s)?(e[r]=c,e[u]=n,r=u):(e[r]=s,e[l]=n,r=l);else if(uo(c,n))e[r]=c,e[u]=n,r=u;else break}}return t}function o(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}if(t.unstable_now=void 0,"object"==typeof performance&&"function"==typeof performance.now){var i,l=performance;t.unstable_now=function(){return l.now()}}else{var s=Date,u=s.now();t.unstable_now=function(){return s.now()-u}}var c=[],d=[],f=1,p=null,m=3,h=!1,g=!1,y=!1,b=!1,v="function"==typeof setTimeout?setTimeout:null,w="function"==typeof clearTimeout?clearTimeout:null,k="u">typeof setImmediate?setImmediate:null;function x(e){for(var t=r(d);null!==t;){if(null===t.callback)a(d);else if(t.startTime<=e)a(d),t.sortIndex=t.expirationTime,n(c,t);else break;t=r(d)}}function S(e){if(y=!1,x(e),!g)if(null!==r(c))g=!0,E||(E=!0,i());else{var t=r(d);null!==t&&N(S,t.startTime-e)}}var E=!1,_=-1,A=5,C=-1;function T(){return!!b||!(t.unstable_now()-Ce&&T());){var l=p.callback;if("function"==typeof l){p.callback=null,m=p.priorityLevel;var s=l(p.expirationTime<=e);if(e=t.unstable_now(),"function"==typeof s){p.callback=s,x(e),n=!0;break t}p===r(c)&&a(c),x(e)}else a(c);p=r(c)}if(null!==p)n=!0;else{var u=r(d);null!==u&&N(S,u.startTime-e),n=!1}}break e}finally{p=null,m=o,h=!1}}}finally{n?i():E=!1}}}if("function"==typeof k)i=function(){k(P)};else if("u">typeof MessageChannel){var O=new MessageChannel,L=O.port2;O.port1.onmessage=P,i=function(){L.postMessage(null)}}else i=function(){v(P,0)};function N(e,n){_=v(function(){e(t.unstable_now())},n)}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_forceFrameRate=function(e){0>e||125l?(e.sortIndex=o,n(d,e),null===r(c)&&e===r(d)&&(y?(w(_),_=-1):y=!0,N(S,o-l))):(e.sortIndex=s,n(c,e),g||h||(g=!0,E||(E=!0,i()))),e},t.unstable_shouldYield=T,t.unstable_wrapCallback=function(e){var t=m;return function(){var n=m;m=t;try{return e.apply(this,arguments)}finally{m=n}}}},5666(e,t,n){"use strict";e.exports=n(4697)},2945(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),s=0;sf}),n(1763);var r=n(1987),a=n(182),o=n.n(a),i=n(4054);let l={"05d4cacb":[()=>n.e("218").then(n.bind(n,8037)),"@site/docs/transport/tcp-mux.md",8037],"0dffb83e":[()=>n.e("142").then(n.bind(n,4997)),"@site/docs/roadmap.md",4997],"0e384e19":[()=>n.e("217").then(n.bind(n,9337)),"@site/docs/intro.md",9337],0x11113f9:[()=>Promise.all([n.e("14"),n.e("106")]).then(n.bind(n,2416)),"@theme/DocItem",2416],"1df93b7f":[()=>Promise.all([n.e("14"),n.e("452")]).then(n.bind(n,2029)),"@site/src/pages/index.tsx",2029],"395fe600":[()=>n.e("156").then(n.bind(n,1177)),"@site/docs/proxies/tcp.md",1177],"4093844a":[()=>n.e("359").then(n.bind(n,9256)),"@site/docs/proxies/vhost.md",9256],"46875d5c":[()=>n.e("590").then(n.bind(n,7640)),"@site/docs/transport/protocol/quic.md",7640],"51876da0":[()=>n.e("896").then(n.bind(n,599)),"@site/docs/transport/protocol/tcp.md",599],"5e95c892":[()=>n.e("668").then(n.bind(n,4214)),"@theme/DocsRoot",4214],"5e9f5e1a":[()=>Promise.resolve().then(n.bind(n,4784)),"@generated/docusaurus.config",4784],"5ef0e9d6":[()=>n.e("356").then(n.bind(n,5012)),"@site/docs/community.md",5012],"67e4f9fb":[()=>n.e("411").then(n.bind(n,6226)),"@site/docs/transport/protocol/kcp.md",6226],"6b77a8a0":[()=>Promise.all([n.e("14"),n.e("646")]).then(n.bind(n,1898)),"@site/docs/integrations/springboot.mdx",1898],"72e9da6a":[()=>n.e("521").then(n.bind(n,369)),"@site/docs/features/dashboard.md",369],"7a70e970":[()=>n.e("2").then(n.bind(n,1903)),"@site/docs/features/proxy-bind.md",1903],"8070e160":[()=>n.e("499").then(n.bind(n,3190)),"@site/docs/quickstart.md",3190],"8fec5fc3":[()=>n.e("867").then(n.bind(n,8224)),"@site/docs/proxies/udp.md",8224],"93234bd6":[()=>n.e("503").then(n.bind(n,8036)),"@site/docs/docker.md",8036],0x5d22870:[()=>n.e("69").then(n.bind(n,2366)),"@site/docs/features/bandwidth.md",2366],"9ca5d8d5":[()=>n.e("797").then(n.bind(n,5638)),"@site/docs/proxies/https.md",5638],a7456010:[()=>n.e("56").then(n.t.bind(n,8552,19)),"@generated/docusaurus-plugin-content-pages/default/__plugin.json",8552],a7bd4aaa:[()=>n.e("575").then(n.bind(n,7281)),"@theme/DocVersionRoot",7281],a94703ab:[()=>Promise.all([n.e("14"),n.e("785")]).then(n.bind(n,8591)),"@theme/DocRoot",8591],aba21aa0:[()=>n.e("747").then(n.t.bind(n,7093,19)),"@generated/docusaurus-plugin-content-docs/default/__plugin.json",7093],ac5280f2:[()=>n.e("135").then(n.bind(n,691)),"@site/docs/license.md",691],c1cdd282:[()=>n.e("707").then(n.bind(n,6571)),"@site/docs/transport/connect-pool.md",6571],cac2e989:[()=>n.e("688").then(n.t.bind(n,8409,19)),"@generated/docusaurus-plugin-content-docs/default/p/orbien-docs-819.json",8409],cc0a2bf3:[()=>n.e("630").then(n.bind(n,9995)),"@site/docs/features/authentication.md",9995],db38bcc4:[()=>n.e("385").then(n.bind(n,4205)),"@site/docs/proxies/http.md",4205],e6f0c936:[()=>Promise.all([n.e("14"),n.e("440")]).then(n.bind(n,7152)),"@site/docs/download.mdx",7152],edefc60b:[()=>n.e("41").then(n.bind(n,7223)),"@site/docs/performance.md",7223],f325f636:[()=>n.e("475").then(n.bind(n,3218)),"@site/docs/features/real-ip.md",3218],fd368041:[()=>n.e("364").then(n.bind(n,1011)),"@site/docs/transport/tls.md",1011],fe98809a:[()=>n.e("326").then(n.bind(n,5475)),"@site/docs/transport/protocol/websocket.md",5475]};function s({error:e,retry:t,pastDelay:n}){return e?(0,r.jsxs)("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%"},children:[(0,r.jsx)("p",{children:String(e)}),(0,r.jsx)("div",{children:(0,r.jsx)("button",{type:"button",onClick:t,children:"Retry"})})]}):n?(0,r.jsx)("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh"},children:(0,r.jsx)("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",children:(0,r.jsxs)("g",{fill:"none",fillRule:"evenodd",transform:"translate(1 1)",strokeWidth:"2",children:[(0,r.jsxs)("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0",children:[(0,r.jsx)("animate",{attributeName:"r",begin:"1.5s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),(0,r.jsx)("animate",{attributeName:"stroke-opacity",begin:"1.5s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),(0,r.jsx)("animate",{attributeName:"stroke-width",begin:"1.5s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})]}),(0,r.jsxs)("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0",children:[(0,r.jsx)("animate",{attributeName:"r",begin:"3s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),(0,r.jsx)("animate",{attributeName:"stroke-opacity",begin:"3s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),(0,r.jsx)("animate",{attributeName:"stroke-width",begin:"3s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})]}),(0,r.jsx)("circle",{cx:"22",cy:"22",r:"8",children:(0,r.jsx)("animate",{attributeName:"r",begin:"0s",dur:"1.5s",values:"6;1;2;3;4;5;6",calcMode:"linear",repeatCount:"indefinite"})})]})})}):null}var u=n(8115),c=n(9648);function d(e,t){if("*"===e)return o()({loading:s,loader:()=>n.e("627").then(n.bind(n,7702)),modules:["@theme/NotFound"],webpack:()=>[7702],render(e,t){let n=e.default;return(0,r.jsx)(c.W,{value:{plugin:{name:"native",id:"default"}},children:(0,r.jsx)(n,{...t})})}});let a=i[`${e}-${t}`],d={},f=[],p=[];return Object.entries((0,u.A)(a)).forEach(([e,t])=>{let n=l[t];n&&(d[e]=n[0],f.push(n[1]),p.push(n[2]))}),o().Map({loading:s,loader:d,modules:f,webpack:()=>p,render(t,n){let o=JSON.parse(JSON.stringify(a));Object.entries(t).forEach(([t,n])=>{let r=n.default;if(!r)throw 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 r||"function"==typeof r)&&Object.keys(n).filter(e=>"default"!==e).forEach(e=>{r[e]=n[e]});let a=o,i=t.split(".");i.slice(0,-1).forEach(e=>{a=a[e]}),a[i[i.length-1]]=r});let i=o.__comp;delete o.__comp;let l=o.__context;delete o.__context;let s=o.__props;return delete o.__props,(0,r.jsx)(c.W,{value:l,children:(0,r.jsx)(i,{...o,...s,...n})})}})}let f=[{path:"/orbien/docs",component:d("/orbien/docs","c90"),routes:[{path:"/orbien/docs",component:d("/orbien/docs","2d2"),routes:[{path:"/orbien/docs",component:d("/orbien/docs","b1f"),routes:[{path:"/orbien/docs/community",component:d("/orbien/docs/community","f09"),exact:!0,sidebar:"docsSidebar"},{path:"/orbien/docs/docker",component:d("/orbien/docs/docker","10d"),exact:!0,sidebar:"docsSidebar"},{path:"/orbien/docs/download",component:d("/orbien/docs/download","b8f"),exact:!0,sidebar:"docsSidebar"},{path:"/orbien/docs/features/authentication",component:d("/orbien/docs/features/authentication","2e9"),exact:!0,sidebar:"docsSidebar"},{path:"/orbien/docs/features/bandwidth",component:d("/orbien/docs/features/bandwidth","fdb"),exact:!0,sidebar:"docsSidebar"},{path:"/orbien/docs/features/dashboard",component:d("/orbien/docs/features/dashboard","a3d"),exact:!0,sidebar:"docsSidebar"},{path:"/orbien/docs/features/proxy-bind",component:d("/orbien/docs/features/proxy-bind","db3"),exact:!0,sidebar:"docsSidebar"},{path:"/orbien/docs/features/real-ip",component:d("/orbien/docs/features/real-ip","96f"),exact:!0,sidebar:"docsSidebar"},{path:"/orbien/docs/integrations/springboot",component:d("/orbien/docs/integrations/springboot","999"),exact:!0,sidebar:"docsSidebar"},{path:"/orbien/docs/intro",component:d("/orbien/docs/intro","a22"),exact:!0,sidebar:"docsSidebar"},{path:"/orbien/docs/license",component:d("/orbien/docs/license","006"),exact:!0,sidebar:"docsSidebar"},{path:"/orbien/docs/performance",component:d("/orbien/docs/performance","3db"),exact:!0,sidebar:"docsSidebar"},{path:"/orbien/docs/proxies/http",component:d("/orbien/docs/proxies/http","226"),exact:!0,sidebar:"docsSidebar"},{path:"/orbien/docs/proxies/https",component:d("/orbien/docs/proxies/https","28b"),exact:!0,sidebar:"docsSidebar"},{path:"/orbien/docs/proxies/tcp",component:d("/orbien/docs/proxies/tcp","d7e"),exact:!0,sidebar:"docsSidebar"},{path:"/orbien/docs/proxies/udp",component:d("/orbien/docs/proxies/udp","e51"),exact:!0,sidebar:"docsSidebar"},{path:"/orbien/docs/proxies/vhost",component:d("/orbien/docs/proxies/vhost","5b7"),exact:!0,sidebar:"docsSidebar"},{path:"/orbien/docs/quickstart",component:d("/orbien/docs/quickstart","8ac"),exact:!0,sidebar:"docsSidebar"},{path:"/orbien/docs/roadmap",component:d("/orbien/docs/roadmap","087"),exact:!0,sidebar:"docsSidebar"},{path:"/orbien/docs/transport/connect-pool",component:d("/orbien/docs/transport/connect-pool","8a2"),exact:!0,sidebar:"docsSidebar"},{path:"/orbien/docs/transport/protocol/kcp",component:d("/orbien/docs/transport/protocol/kcp","a28"),exact:!0,sidebar:"docsSidebar"},{path:"/orbien/docs/transport/protocol/quic",component:d("/orbien/docs/transport/protocol/quic","9b2"),exact:!0,sidebar:"docsSidebar"},{path:"/orbien/docs/transport/protocol/tcp",component:d("/orbien/docs/transport/protocol/tcp","216"),exact:!0,sidebar:"docsSidebar"},{path:"/orbien/docs/transport/protocol/websocket",component:d("/orbien/docs/transport/protocol/websocket","10c"),exact:!0,sidebar:"docsSidebar"},{path:"/orbien/docs/transport/tcp-mux",component:d("/orbien/docs/transport/tcp-mux","65e"),exact:!0,sidebar:"docsSidebar"},{path:"/orbien/docs/transport/tls",component:d("/orbien/docs/transport/tls","874"),exact:!0,sidebar:"docsSidebar"}]}]}]},{path:"/orbien/",component:d("/orbien/","e57"),exact:!0},{path:"*",component:d("*")}]},4607(e,t,n){"use strict";n.d(t,{o:()=>o,x:()=>i});var r=n(1987),a=n(1763);let o=a.createContext(!1);function i({children:e}){let[t,n]=(0,a.useState)(!1);return(0,a.useEffect)(()=>{n(!0)},[]),(0,r.jsx)(o.Provider,{value:t,children:e})}},6780(e,t,n){"use strict";var r=n(1987),a=n(1763),o=n(6122),i=n(9883),l=n(5399),s=n(4784),u=n(4619);let c=[n(2796),n(9564),n(4389),n(6759),n(6544)];var d=n(439),f=n(6532),p=n(6345);function m({children:e}){return(0,r.jsx)(r.Fragment,{children:e})}var h=n(6461);let g=e=>e.defaultFormatter(e);function y({children:e}){return(0,r.jsx)(h.AL,{formatter:g,children:e})}function b({children:e}){return(0,r.jsx)(y,{children:e})}var v=n(7634),w=n(5484),k=n(319),x=n(8168),S=n(310),E=n(5941),_=n(2455),A=n(5992);function C(){let{i18n:{currentLocale:e,defaultLocale:t,localeConfigs:n}}=(0,w.A)(),a=(0,E.o)(),o=n[e].htmlLang;return(0,r.jsxs)(v.A,{children:[Object.entries(n).map(([e,{htmlLang:t}])=>(0,r.jsx)("link",{rel:"alternate",href:a.createUrl({locale:e,fullyQualified:!0}),hrefLang:t},e)),(0,r.jsx)("link",{rel:"alternate",href:a.createUrl({locale:t,fullyQualified:!0}),hrefLang:"x-default"}),(0,r.jsx)("meta",{property:"og:locale",content:o.replace("-","_")}),Object.values(n).filter(e=>o!==e.htmlLang).map(e=>(0,r.jsx)("meta",{property:"og:locale:alternate",content:e.htmlLang.replace("-","_")},`meta-og-${e.htmlLang}`))]})}function T({permalink:e}){let{siteConfig:{url:t}}=(0,w.A)(),n=function(){let{siteConfig:{url:e,baseUrl:t,trailingSlash:n}}=(0,w.A)(),{pathname:r}=(0,f.zy)();return e+(0,_.applyTrailingSlash)((0,k.Ay)(r),{trailingSlash:n,baseUrl:t})}(),a=e?`${t}${e}`:n;return(0,r.jsxs)(v.A,{children:[(0,r.jsx)("meta",{property:"og:url",content:a}),(0,r.jsx)("link",{rel:"canonical",href:a})]})}function P(){let{i18n:{currentLocale:e}}=(0,w.A)(),{metadata:t,image:n}=(0,x.p)();return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(v.A,{children:[(0,r.jsx)("meta",{name:"twitter:card",content:"summary_large_image"}),(0,r.jsx)("body",{})]}),n&&(0,r.jsx)(S.be,{image:n}),(0,r.jsx)(T,{}),(0,r.jsx)(C,{}),(0,r.jsx)(A.A,{tag:"default",locale:e}),(0,r.jsx)(v.A,{children:t.map((e,t)=>(0,r.jsx)("meta",{...e},t))})]})}let O=new Map;var L=n(4607),N=n(3235),j=n(9879);function R(e,...t){let n=c.map(n=>{let r=n.default?.[e]??n[e];return r?.(...t)});return()=>n.forEach(e=>e?.())}let I=function({children:e,location:t,previousLocation:n}){return(0,j.A)(()=>{n!==t&&(!function({location:e,previousLocation:t}){if(!t)return;let n=e.pathname===t.pathname,r=e.hash===t.hash,a=e.search===t.search;if(n&&r&&!a)return;let{hash:o}=e;if(o){let e=decodeURIComponent(o.substring(1)),t=document.getElementById(e);t?.scrollIntoView()}else window.scrollTo(0,0)}({location:t,previousLocation:n}),R("onRouteDidUpdate",{previousLocation:n,location:t}))},[n,t]),e};function D(e){return Promise.all(Array.from(new Set([e,decodeURI(e)])).map(e=>(0,p.u)(d.A,e)).flat().map(e=>e.route.component.preload?.()))}class F extends a.Component{previousLocation;routeUpdateCleanupCb;constructor(e){super(e),this.previousLocation=null,this.routeUpdateCleanupCb=u.A.canUseDOM?R("onRouteUpdate",{previousLocation:null,location:this.props.location}):()=>{},this.state={nextRouteHasLoaded:!0}}shouldComponentUpdate(e,t){if(e.location===this.props.location)return t.nextRouteHasLoaded;let n=e.location;return this.previousLocation=this.props.location,this.setState({nextRouteHasLoaded:!1}),this.routeUpdateCleanupCb=R("onRouteUpdate",{previousLocation:this.previousLocation,location:n}),D(n.pathname).then(()=>{this.routeUpdateCleanupCb(),this.setState({nextRouteHasLoaded:!0})}).catch(e=>{console.warn(e),window.location.reload()}),!1}render(){let{children:e,location:t}=this.props;return(0,r.jsx)(I,{previousLocation:this.previousLocation,location:t,children:(0,r.jsx)(f.qh,{location:t,render:()=>e})})}}let z="__docusaurus-base-url-issue-banner-suggestion-container";function M(){let{siteConfig:{baseUrl:e}}=(0,w.A)();return(0,r.jsx)(r.Fragment,{children:!u.A.canUseDOM&&(0,r.jsx)(v.A,{children:(0,r.jsx)("script",{children:` +(self.webpackChunkorbien_docs=self.webpackChunkorbien_docs||[]).push([["889"],{2796(e,t,n){"use strict";n.r(t)},9564(e,t,n){"use strict";n.r(t)},6544(e,t,n){"use strict";n.r(t)},9883(e,t,n){"use strict";n.d(t,{mg:()=>Z,vd:()=>H});var r=n(1763),a=n(2736),o=n.n(a),i=n(4072),l=n.n(i),s=n(9597),u=n.n(s),c=n(2945),d=n.n(c);function f(){return(f=Object.assign||function(e){for(var t=1;t=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)"},b={rel:["amphtml","canonical","alternate"]},y={type:["application/ld+json"]},v={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"},x=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},E=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,t){return t.filter(function(t){return void 0!==t[e]}).map(function(t){return t[e]}).reduce(function(e,t){return f({},e,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/g,">").replace(/"/g,""").replace(/'/g,"'")},j=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},"")},R=function(e,t){return void 0===t&&(t={}),Object.keys(e).reduce(function(t,n){return t[k[n]||n]=e[n],t},t)},I=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)})},D=function(e,t,n){switch(e){case g.TITLE:return{toComponent:function(){var e,n,a,o;return n=t.titleAttributes,(a={key:e=t.title})["data-rh"]=!0,o=R(n,a),[r.createElement(g.TITLE,o,e)]},toString:function(){var r,a,o,i;return r=t.title,a=t.titleAttributes,o=j(a),i=T(r),o?"<"+e+' data-rh="true" '+o+">"+N(i,n)+"":"<"+e+' data-rh="true">'+N(i,n)+""}};case"bodyAttributes":case"htmlAttributes":return{toComponent:function(){return R(t)},toString:function(){return j(t)}};default:return{toComponent:function(){return I(e,t)},toString:function(){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+'="'+N(r[t],n)+'"';return e?e+" "+a:a},""),o=r.innerHTML||r.cssText||"",i=-1===L.indexOf(e);return t+"<"+e+' data-rh="true" '+a+(i?"/>":">"+o+"")},"")}}}},F=function(e){var t=e.baseTag,n=e.bodyAttributes,r=e.encode,a=e.htmlAttributes,o=e.noscriptTags,i=e.styleTags,l=e.title,s=e.titleAttributes,u=e.linkTags,c=e.metaTags,d=e.scriptTags,f={toComponent:function(){},toString:function(){return""}};if(e.prioritizeSeoTags){var p,m,h,w,k,x,S=(p=e.linkTags,m=e.scriptTags,h=e.encode,w=P(e.metaTags,v),k=P(p,b),x=P(m,y),{priorityMethods:{toComponent:function(){return[].concat(I(g.META,w.priority),I(g.LINK,k.priority),I(g.SCRIPT,x.priority))},toString:function(){return D(g.META,w.priority,h)+" "+D(g.LINK,k.priority,h)+" "+D(g.SCRIPT,x.priority,h)}},metaTags:w.default,linkTags:k.default,scriptTags:x.default});f=S.priorityMethods,u=S.linkTags,c=S.metaTags,d=S.scriptTags}return{priority:f,base:D(g.BASE,t,r),bodyAttributes:D("bodyAttributes",n,r),htmlAttributes:D("htmlAttributes",a,r),link:D(g.LINK,u,r),meta:D(g.META,c,r),noscript:D(g.NOSCRIPT,o,r),script:D(g.SCRIPT,d,r),style:D(g.STYLE,i,r),title:D(g.TITLE,{title:void 0===l?"":l,titleAttributes:s},r)}},z=[],M=function(e,t){var n=this;void 0===t&&(t="u">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=F({baseTag:[],bodyAttributes:{},encodeSpecialCharacters:!0,htmlAttributes:{},linkTags:[],metaTags:[],noscriptTags:[],scriptTags:[],styleTags:[],title:"",titleAttributes:{}}))},$=r.createContext({}),B=o().shape({setHelmet:o().func,helmetInstances:o().shape({get:o().func,add:o().func,remove:o().func})}),U="u">typeof document,H=function(e){function t(n){var r;return(r=e.call(this,n)||this).helmetData=new M(r.props.context,t.canUseDOM),r}return p(t,e),t.prototype.render=function(){return r.createElement($.Provider,{value:this.helmetData.value},this.props.children)},t}(r.Component);H.canUseDOM=U,H.propTypes={context:o().shape({helmet:o().shape()}),children:o().node.isRequired},H.defaultProps={context:{}},H.displayName="HelmetProvider";var V=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}},W=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=0;d-=1)n.removeAttribute(o[d]);a.length===o.length?n.removeAttribute("data-rh"):n.getAttribute("data-rh")!==i.join(",")&&n.setAttribute("data-rh",i.join(","))}},q=function(e,t){var n=e.baseTag,r=e.htmlAttributes,a=e.linkTags,o=e.metaTags,i=e.noscriptTags,l=e.onChangeClientState,s=e.scriptTags,u=e.styleTags,c=e.title,d=e.titleAttributes;W(g.BODY,e.bodyAttributes),W(g.HTML,r),void 0!==c&&document.title!==c&&(document.title=T(c)),W(g.TITLE,d);var f={baseTag:V(g.BASE,n),linkTags:V(g.LINK,a),metaTags:V(g.META,o),noscriptTags:V(g.NOSCRIPT,i),scriptTags:V(g.SCRIPT,s),styleTags:V(g.STYLE,u)},p={},m={};Object.keys(f).forEach(function(e){var t=f[e],n=t.newTags,r=t.oldTags;n.length&&(p[e]=n),r.length&&(m[e]=f[e].oldTags)}),t&&t(),l(e,p,m)},G=null,Y=function(e){function t(){for(var t,n=arguments.length,r=Array(n),a=0;a 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 f({},r,((t={})[n.type]=[].concat(r[n.type]||[],[f({},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 f({},a,((t={})[r.type]=i,t.titleAttributes=f({},o),t));case g.BODY:return f({},a,{bodyAttributes:f({},o)});case g.HTML:return f({},a,{htmlAttributes:f({},o)});default:return f({},a,((n={})[r.type]=f({},o),n))}},n.mapArrayTypeChildrenToProps=function(e,t){var n=f({},t);return Object.keys(e).forEach(function(t){var r;n=f({},n,((r={})[t]=e[t],r))}),n},n.warnOnInvalidChildren=function(e,t){return u()(w.some(function(t){return e.type===t}),"function"==typeof e.type?"You may be attempting to nest 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."),u()(!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+">{``} ) 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,K),l=Object.keys(i).reduce(function(e,t){return e[x[t]||t]=i[t],e},{}),s=e.type;switch("symbol"==typeof s?s=s.toString():n.warnOnInvalidChildren(e,o),s){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,Q),a=f({},n),o=n.helmetData;return t&&(a=this.mapChildrenToProps(t,a)),!o||o instanceof M||(o=new M(o.context,o.instances)),o?r.createElement(Y,f({},a,{context:o.value,helmetData:void 0})):r.createElement($.Consumer,null,function(e){return r.createElement(Y,f({},a,{context:e}))})},t}(r.Component);Z.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},Z.defaultProps={defer:!0,encodeSpecialCharacters:!0,prioritizeSeoTags:!1},Z.displayName="Helmet"},477(e,t,n){"use strict";n.d(t,{AO:()=>f,yJ:()=>p,sC:()=>T,TM:()=>A,zR:()=>w});var r=n(5062);function a(e){return"/"===e.charAt(0)}function o(e,t){for(var n=t,r=n+1,a=e.length;r=0;f--){var p=i[f];"."===p?o(i,f):".."===p?(o(i,f),d++):d&&(o(i,f),d--)}if(!u)for(;d--;)i.unshift("..");!u||""===i[0]||i[0]&&a(i[0])||i.unshift("");var m=i.join("/");return n&&"/"!==m.substr(-1)&&(m+="/"),m};var l=n(5385);function s(e){return"/"===e.charAt(0)?e:"/"+e}function u(e){return"/"===e.charAt(0)?e.substr(1):e}function c(e,t){return 0===e.toLowerCase().indexOf(t.toLowerCase())&&-1!=="/?#".indexOf(e.charAt(t.length))?e.substr(t.length):e}function d(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e}function f(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 p(e,t,n,a){var o,l,s,u,c,d;"string"==typeof e?(s="",u="",-1!==(c=(l=e||"/").indexOf("#"))&&(u=l.substr(c),l=l.substr(0,c)),-1!==(d=l.indexOf("?"))&&(s=l.substr(d),l=l.substr(0,d)),(o={pathname:l,search:"?"===s?"":s,hash:"#"===u?"":u}).state=t):(void 0===(o=(0,r.A)({},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(e){if(e instanceof URIError)throw URIError('Pathname "'+o.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.');throw e}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 m(){var e=null,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=Array(e),r=0;rtypeof window&&window.document&&window.document.createElement);function g(e,t){t(window.confirm(e))}var b="popstate",y="hashchange";function v(){try{return window.history.state||{}}catch(e){return{}}}function w(e){void 0===e&&(e={}),h||(0,l.A)(!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,u=i.forceRefresh,w=void 0!==u&&u,k=i.getUserConfirmation,x=void 0===k?g:k,S=i.keyLength,E=void 0===S?6:S,_=e.basename?d(s(e.basename)):"";function A(e){var t=e||{},n=t.key,r=t.state,a=window.location,o=a.pathname+a.search+a.hash;return _&&(o=c(o,_)),p(o,r,n)}function C(){return Math.random().toString(36).substr(2,E)}var T=m();function P(e){(0,r.A)(B,e),B.length=n.length,T.notifyListeners(B.location,B.action)}function O(e){(void 0!==e.state||-1!==navigator.userAgent.indexOf("CriOS"))&&j(A(e.state))}function L(){j(A(v()))}var N=!1;function j(e){N?(N=!1,P()):T.confirmTransitionTo(e,"POP",x,function(t){var n,r,a,o,i;t?P({action:"POP",location:e}):(n=e,r=B.location,-1===(a=I.indexOf(r.key))&&(a=0),-1===(o=I.indexOf(n.key))&&(o=0),(i=a-o)&&(N=!0,F(i)))})}var R=A(v()),I=[R.key];function D(e){return _+f(e)}function F(e){n.go(e)}var z=0;function M(e){1===(z+=e)&&1===e?(window.addEventListener(b,O),o&&window.addEventListener(y,L)):0===z&&(window.removeEventListener(b,O),o&&window.removeEventListener(y,L))}var $=!1,B={length:n.length,action:"POP",location:R,createHref:D,push:function(e,t){var r="PUSH",o=p(e,t,C(),B.location);T.confirmTransitionTo(o,r,x,function(e){if(e){var t=D(o),i=o.key,l=o.state;if(a)if(n.pushState({key:i,state:l},null,t),w)window.location.href=t;else{var s=I.indexOf(B.location.key),u=I.slice(0,s+1);u.push(o.key),I=u,P({action:r,location:o})}else window.location.href=t}})},replace:function(e,t){var r="REPLACE",o=p(e,t,C(),B.location);T.confirmTransitionTo(o,r,x,function(e){if(e){var t=D(o),i=o.key,l=o.state;if(a)if(n.replaceState({key:i,state:l},null,t),w)window.location.replace(t);else{var s=I.indexOf(B.location.key);-1!==s&&(I[s]=o.key),P({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=T.setPrompt(e);return $||(M(1),$=!0),function(){return $&&($=!1,M(-1)),t()}},listen:function(e){var t=T.appendListener(e);return M(1),function(){M(-1),t()}}};return B}var k="hashchange",x={hashbang:{encodePath:function(e){return"!"===e.charAt(0)?e:"!/"+u(e)},decodePath:function(e){return"!"===e.charAt(0)?e.substr(1):e}},noslash:{encodePath:u,decodePath:s},slash:{encodePath:s,decodePath:s}};function S(e){var t=e.indexOf("#");return -1===t?e:e.slice(0,t)}function E(){var e=window.location.href,t=e.indexOf("#");return -1===t?"":e.substring(t+1)}function _(e){window.location.replace(S(window.location.href)+"#"+e)}function A(e){void 0===e&&(e={}),h||(0,l.A)(!1);var t=window.history;window.navigator.userAgent.indexOf("Firefox");var n=e,a=n.getUserConfirmation,o=void 0===a?g:a,i=n.hashType,u=e.basename?d(s(e.basename)):"",b=x[void 0===i?"slash":i],y=b.encodePath,v=b.decodePath;function w(){var e=v(E());return u&&(e=c(e,u)),p(e)}var A=m();function C(e){(0,r.A)(M,e),M.length=t.length,A.notifyListeners(M.location,M.action)}var T=!1,P=null;function O(){var e=E(),t=y(e);if(e!==t)_(t);else{var n,r=w(),a=M.location;if(!T&&a.pathname===r.pathname&&a.search===r.search&&a.hash===r.hash||P===f(r))return;P=null,n=r,T?(T=!1,C()):A.confirmTransitionTo(n,"POP",o,function(e){var t,r,a,o,i;e?C({action:"POP",location:n}):(t=n,r=M.location,-1===(a=R.lastIndexOf(f(r)))&&(a=0),-1===(o=R.lastIndexOf(f(t)))&&(o=0),(i=a-o)&&(T=!0,I(i)))})}}var L=E(),N=y(L);L!==N&&_(N);var j=w(),R=[f(j)];function I(e){t.go(e)}var D=0;function F(e){1===(D+=e)&&1===e?window.addEventListener(k,O):0===D&&window.removeEventListener(k,O)}var z=!1,M={length:t.length,action:"POP",location:j,createHref:function(e){var t=document.querySelector("base"),n="";return t&&t.getAttribute("href")&&(n=S(window.location.href)),n+"#"+y(u+f(e))},push:function(e,t){var n="PUSH",r=p(e,void 0,void 0,M.location);A.confirmTransitionTo(r,n,o,function(e){if(e){var t=f(r),a=y(u+t);if(E()!==a){P=t,window.location.hash=a;var o=R.lastIndexOf(f(M.location)),i=R.slice(0,o+1);i.push(t),R=i,C({action:n,location:r})}else C()}})},replace:function(e,t){var n="REPLACE",r=p(e,void 0,void 0,M.location);A.confirmTransitionTo(r,n,o,function(e){if(e){var t=f(r),a=y(u+t);E()!==a&&(P=t,_(a));var o=R.indexOf(f(M.location));-1!==o&&(R[o]=t),C({action:n,location:r})}})},go:I,goBack:function(){I(-1)},goForward:function(){I(1)},block:function(e){void 0===e&&(e=!1);var t=A.setPrompt(e);return z||(F(1),z=!0),function(){return z&&(z=!1,F(-1)),t()}},listen:function(e){var t=A.appendListener(e);return F(1),function(){F(-1),t()}}};return M}function C(e,t,n){return Math.min(Math.max(e,t),n)}function T(e){void 0===e&&(e={});var t=e,n=t.getUserConfirmation,a=t.initialEntries,o=void 0===a?["/"]:a,i=t.initialIndex,l=t.keyLength,s=void 0===l?6:l,u=m();function c(e){(0,r.A)(y,e),y.length=y.entries.length,u.notifyListeners(y.location,y.action)}function d(){return Math.random().toString(36).substr(2,s)}var h=C(void 0===i?0:i,0,o.length-1),g=o.map(function(e){return"string"==typeof e?p(e,void 0,d()):p(e,void 0,e.key||d())});function b(e){var t=C(y.index+e,0,y.entries.length-1),r=y.entries[t];u.confirmTransitionTo(r,"POP",n,function(e){e?c({action:"POP",location:r,index:t}):c()})}var y={length:g.length,action:"POP",location:g[h],index:h,entries:g,createHref:f,push:function(e,t){var r="PUSH",a=p(e,t,d(),y.location);u.confirmTransitionTo(a,r,n,function(e){if(e){var t=y.index+1,n=y.entries.slice(0);n.length>t?n.splice(t,n.length-t,a):n.push(a),c({action:r,location:a,index:t,entries:n})}})},replace:function(e,t){var r="REPLACE",a=p(e,t,d(),y.location);u.confirmTransitionTo(a,r,n,function(e){e&&(y.entries[y.index]=a,c({action:r,location:a}))})},go:b,goBack:function(){b(-1)},goForward:function(){b(1)},canGo:function(e){var t=y.index+e;return t>=0&&t
'};function o(e,t,n){return en?n:e}r.configure=function(e){var t,n;for(t in e)void 0!==(n=e[t])&&e.hasOwnProperty(t)&&(a[t]=n);return this},r.status=null,r.set=function(e){var t=r.isStarted();r.status=1===(e=o(e,a.minimum,1))?null:e;var n=r.render(!t),s=n.querySelector(a.barSelector),u=a.speed,c=a.easing;return n.offsetWidth,i(function(t){var o,i,d,f;""===a.positionUsing&&(a.positionUsing=r.getPositioningCSS()),l(s,(o=e,i=u,d=c,(f="translate3d"===a.positionUsing?{transform:"translate3d("+(-1+o)*100+"%,0,0)"}:"translate"===a.positionUsing?{transform:"translate("+(-1+o)*100+"%,0)"}:{"margin-left":(-1+o)*100+"%"}).transition="all "+i+"ms "+d,f)),1===e?(l(n,{transition:"none",opacity:1}),n.offsetWidth,setTimeout(function(){l(n,{transition:"all "+u+"ms linear",opacity:0}),setTimeout(function(){r.remove(),t()},u)},u)):setTimeout(t,u)}),this},r.isStarted=function(){return"number"==typeof r.status},r.start=function(){r.status||r.set(0);var e=function(){setTimeout(function(){r.status&&(r.trickle(),e())},a.trickleSpeed)};return a.trickle&&e(),this},r.done=function(e){return e||r.status?r.inc(.3+.5*Math.random()).set(1):this},r.inc=function(e){var t=r.status;return t?("number"!=typeof e&&(e=(1-t)*o(Math.random()*t,.1,.95)),t=o(t+e,0,.994),r.set(t)):r.start()},r.trickle=function(){return r.inc(Math.random()*a.trickleRate)},e=0,t=0,r.promise=function(n){return n&&"resolved"!==n.state()&&(0===t&&r.start(),e++,t++,n.always(function(){0==--t?(e=0,r.done()):r.set((e-t)/e)})),this},r.render=function(e){if(r.isRendered())return document.getElementById("nprogress");u(document.documentElement,"nprogress-busy");var t=document.createElement("div");t.id="nprogress",t.innerHTML=a.template;var n,o=t.querySelector(a.barSelector),i=e?"-100":(-1+(r.status||0))*100,s=document.querySelector(a.parent);return l(o,{transition:"all 0 linear",transform:"translate3d("+i+"%,0,0)"}),!a.showSpinner&&(n=t.querySelector(a.spinnerSelector))&&f(n),s!=document.body&&u(s,"nprogress-custom-parent"),s.appendChild(t),t},r.remove=function(){c(document.documentElement,"nprogress-busy"),c(document.querySelector(a.parent),"nprogress-custom-parent");var e=document.getElementById("nprogress");e&&f(e)},r.isRendered=function(){return!!document.getElementById("nprogress")},r.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 i=(n=[],function(e){n.push(e),1==n.length&&function e(){var t=n.shift();t&&t(e)}()}),l=function(){var e=["Webkit","O","Moz","ms"],t={};function n(n,r,a){var o;r=t[o=(o=r).replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,function(e,t){return t.toUpperCase()})]||(t[o]=function(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}(o)),n.style[r]=a}return function(e,t){var r,a,o=arguments;if(2==o.length)for(r in t)void 0!==(a=t[r])&&t.hasOwnProperty(r)&&n(e,r,a);else n(e,o[1],o[2])}}();function s(e,t){return("string"==typeof e?e:d(e)).indexOf(" "+t+" ")>=0}function u(e,t){var n=d(e),r=n+t;s(n,t)||(e.className=r.substring(1))}function c(e,t){var n,r=d(e);s(e,t)&&(e.className=(n=r.replace(" "+t+" "," ")).substring(1,n.length-1))}function d(e){return(" "+(e.className||"")+" ").replace(/\s+/gi," ")}function f(e){e&&e.parentNode&&e.parentNode.removeChild(e)}return r},"function"==typeof define&&define.amd?define(t):e.exports=t()},4785(e,t,n){var r=n(5526);e.exports=function e(t,n,a){if(r(n)||(a=n||a,n=[]),a=a||{},t instanceof RegExp){var i,l,s=n,d=t.source.match(/\((?!\?)/g);if(d)for(var f=0;f-1?"[^"+s(c)+"]+?":s(d)+"|(?:(?!"+s(d)+")[^"+s(c)+"])+?")})}return i>=?|&&|\|\||[=!+\-*/%<>^&|]=?|[?~:]/,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+(?:\.\w+)*(?=\+?=)/,inside:{environment:{pattern:RegExp("(^|[\\s;|&]|[<>]\\()"+t),lookbehind:!0,alias:"constant"}},alias:"variable",lookbehind:!0},parameter:{pattern:/(^|\s)-{1,2}(?:\w+:[+-]?)?\w+(?:\.\w+)*(?=[=\s]|$)/,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|cargo|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|java|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|sysctl|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","parameter","string","environment","function","keyword","builtin","boolean","file-descriptor","operator","punctuation","number"],o=r.variable[1].inside,i=0;i=o.length);s++){var u=l[s];if("string"==typeof u||u.content&&"string"==typeof u.content){var c=o[a],d=n.tokenStack[c],f="string"==typeof u?u:u.content,p=t(r,c),m=f.indexOf(p);if(m>-1){++a;var h=f.substring(0,m),g=new e.Token(r,e.tokenize(d,n.grammar),"language-"+r,d),b=f.substring(m+p.length),y=[];h&&y.push.apply(y,i([h])),y.push(g),b&&y.push.apply(y,i([b])),"string"==typeof u?l.splice.apply(l,[s,1].concat(y)):u.content=y}}else u.content&&i(u.content)}return l}(n.tokens)}}}})},100(){var e=Prism,t=/(?:[\w-]+|'[^'\n\r]*'|"(?:\\.|[^\\"\r\n])*")/.source;function n(e){return e.replace(/__/g,function(){return t})}e.languages.toml={comment:{pattern:/#.*/,greedy:!0},table:{pattern:RegExp(n(/(^[\t ]*\[\s*(?:\[\s*)?)__(?:\s*\.\s*__)*(?=\s*\])/.source),"m"),lookbehind:!0,greedy:!0,alias:"class-name"},key:{pattern:RegExp(n(/(^[\t ]*|[{,]\s*)__(?:\s*\.\s*__)*(?=\s*=)/.source),"m"),lookbehind:!0,greedy:!0,alias:"property"},string:{pattern:/"""(?:\\[\s\S]|[^\\])*?"""|'''[\s\S]*?'''|'[^'\n\r]*'|"(?:\\.|[^\\"\r\n])*"/,greedy:!0},date:[{pattern:/\b\d{4}-\d{2}-\d{2}(?:[T\s]\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})?)?\b/i,alias:"number"},{pattern:/\b\d{2}:\d{2}:\d{2}(?:\.\d+)?\b/,alias:"number"}],number:/(?:\b0(?:x[\da-zA-Z]+(?:_[\da-zA-Z]+)*|o[0-7]+(?:_[0-7]+)*|b[10]+(?:_[10]+)*))\b|[-+]?\b\d+(?:_\d+)*(?:\.\d+(?:_\d+)*)?(?:[eE][+-]?\d+(?:_\d+)*)?\b|[-+]?\b(?:inf|nan)\b/,boolean:/\b(?:false|true)\b/,punctuation:/[.,=[\]{}]/}},3295(e,t,n){var r={"./prism-bash":"1022","./prism-json":"7874","./prism-toml":"100"};function a(e){return n(o(e))}function o(e){if(!n.o(r,e)){var t=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=3295},6186(e,t,n){"use strict";var r=n(2985);function a(){}function o(){}o.resetWarningCache=a,e.exports=function(){function e(e,t,n,a,o,i){if(i!==r){var l=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}},2736(e,t,n){e.exports=n(6186)()},2985(e){"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},1663(e,t,n){"use strict";var r,a=n(5666),o=n(1763),i=n(8481);function l(e){var t="https://react.dev/errors/"+e;if(1F||(e.current=D[F],D[F]=null,F--)}function $(e,t){D[++F]=e.current,e.current=t}var B=z(null),U=z(null),H=z(null),V=z(null);function W(e,t){switch($(H,t),$(U,e),$(B,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?uy(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)e=uv(t=uy(t),e);else switch(e){case"svg":e=1;break;case"math":e=2;break;default:e=0}}M(B),$(B,e)}function q(){M(B),M(U),M(H)}function G(e){null!==e.memoizedState&&$(V,e);var t=B.current,n=uv(t,e.type);t!==n&&($(U,e),$(B,n))}function Y(e){U.current===e&&(M(B),M(U)),V.current===e&&(M(V),ct._currentValue=I)}function K(e){if(void 0===tF)try{throw Error()}catch(e){var t=e.stack.trim().match(/\n( *(at )?)/);tF=t&&t[1]||"",tz=-1)":-1a||s[r]!==u[a]){var c="\n"+s[r].replace(" at new "," at ");return e.displayName&&c.includes("")&&(c=c.replace("",e.displayName)),c}while(1<=r&&0<=a)break}}}finally{Q=!1,Error.prepareStackTrace=n}return(n=e?e.displayName||e.name:"")?K(n):""}function X(e){try{var t="",n=null;do t+=function(e,t){switch(e.tag){case 26:case 27:case 5:return K(e.type);case 16:return K("Lazy");case 13:return e.child!==t&&null!==t?K("Suspense Fallback"):K("Suspense");case 19:return K("SuspenseList");case 0:case 15:return Z(e.type,!1);case 11:return Z(e.type.render,!1);case 1:return Z(e.type,!0);case 31:return K("Activity");default:return""}}(e,n),n=e,e=e.return;while(e)return t}catch(e){return"\nError generating stack: "+e.message+"\n"+e.stack}}var J=Object.prototype.hasOwnProperty,ee=a.unstable_scheduleCallback,et=a.unstable_cancelCallback,en=a.unstable_shouldYield,er=a.unstable_requestPaint,ea=a.unstable_now,eo=a.unstable_getCurrentPriorityLevel,ei=a.unstable_ImmediatePriority,el=a.unstable_UserBlockingPriority,es=a.unstable_NormalPriority,eu=a.unstable_LowPriority,ec=a.unstable_IdlePriority,ed=a.log,ef=a.unstable_setDisableYieldValue,ep=null,em=null;function eh(e){if("function"==typeof ed&&ef(e),em&&"function"==typeof em.setStrictMode)try{em.setStrictMode(ep,e)}catch(e){}}var eg=Math.clz32?Math.clz32:function(e){return 0==(e>>>=0)?32:31-(eb(e)/ey|0)|0},eb=Math.log,ey=Math.LN2,ev=256,ew=262144,ek=4194304;function ex(e){var t=42&e;if(0!==t)return t;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return 261888&e;case 262144:case 524288:case 1048576:case 2097152:return 3932160&e;case 4194304:case 8388608:case 0x1000000:case 0x2000000:return 0x3c00000&e;case 0x4000000:return 0x4000000;case 0x8000000:return 0x8000000;case 0x10000000:return 0x10000000;case 0x20000000:return 0x20000000;case 0x40000000:return 0;default:return e}}function eS(e,t,n){var r=e.pendingLanes;if(0===r)return 0;var a=0,o=e.suspendedLanes,i=e.pingedLanes;e=e.warmLanes;var l=0x7ffffff&r;return 0!==l?0!=(r=l&~o)?a=ex(r):0!=(i&=l)?a=ex(i):n||0!=(n=l&~e)&&(a=ex(n)):0!=(l=r&~o)?a=ex(l):0!==i?a=ex(i):n||0!=(n=r&~e)&&(a=ex(n)),0===a?0:0!==t&&t!==a&&0==(t&o)&&((o=a&-a)>=(n=t&-t)||32===o&&0!=(4194048&n))?t:a}function eE(e,t){return 0==(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)}function e_(){var e=ek;return 0==(0x3c00000&(ek<<=1))&&(ek=4194304),e}function eA(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function eC(e,t){e.pendingLanes|=t,0x10000000!==t&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function eT(e,t,n){e.pendingLanes|=t,e.suspendedLanes&=~t;var r=31-eg(t);e.entangledLanes|=t,e.entanglements[r]=0x40000000|e.entanglements[r]|261930&n}function eP(e,t){var n=e.entangledLanes|=t;for(e=e.entanglements;n;){var r=31-eg(n),a=1<typeof document?document:void 0)))return null;try{return e.activeElement||e.body}catch(t){return e.body}}var tt=/[\n"\\]/g;function tn(e){return e.replace(tt,function(e){return"\\"+e.charCodeAt(0).toString(16)+" "})}function tr(e,t,n,r,a,o,i,l){e.name="",null!=i&&"function"!=typeof i&&"symbol"!=typeof i&&"boolean"!=typeof i?e.type=i:e.removeAttribute("type"),null!=t?"number"===i?(0===t&&""===e.value||e.value!=t)&&(e.value=""+e5(t)):e.value!==""+e5(t)&&(e.value=""+e5(t)):"submit"!==i&&"reset"!==i||e.removeAttribute("value"),null!=t?to(e,i,e5(t)):null!=n?to(e,i,e5(n)):null!=r&&e.removeAttribute("value"),null==a&&null!=o&&(e.defaultChecked=!!o),null!=a&&(e.checked=a&&"function"!=typeof a&&"symbol"!=typeof a),null!=l&&"function"!=typeof l&&"symbol"!=typeof l&&"boolean"!=typeof l?e.name=""+e5(l):e.removeAttribute("name")}function ta(e,t,n,r,a,o,i,l){if(null!=o&&"function"!=typeof o&&"symbol"!=typeof o&&"boolean"!=typeof o&&(e.type=o),null!=t||null!=n){if(("submit"===o||"reset"===o)&&null==t)return void e8(e);n=null!=n?""+e5(n):"",t=null!=t?""+e5(t):n,l||t===e.value||(e.value=t),e.defaultValue=t}r="function"!=typeof(r=null!=r?r:a)&&"symbol"!=typeof r&&!!r,e.checked=l?e.checked:!!r,e.defaultChecked=!!r,null!=i&&"function"!=typeof i&&"symbol"!=typeof i&&"boolean"!=typeof i&&(e.name=i),e8(e)}function to(e,t,n){"number"===t&&te(e.ownerDocument)===e||e.defaultValue===""+n||(e.defaultValue=""+n)}function ti(e,t,n,r){if(e=e.options,t){t={};for(var a=0;atypeof window&&void 0!==window.document&&void 0!==window.document.createElement,tC=!1;if(tA)try{var tT={};Object.defineProperty(tT,"passive",{get:function(){tC=!0}}),window.addEventListener("test",tT,tT),window.removeEventListener("test",tT,tT)}catch(e){tC=!1}var tP=null,tO=null,tL=null;function tN(){if(tL)return tL;var e,t,n=tO,r=n.length,a="value"in tP?tP.value:tP.textContent,o=a.length;for(e=0;e=nn),no=!1;function ni(e,t){switch(e){case"keyup":return -1!==ne.indexOf(t.keyCode);case"keydown":return 229!==t.keyCode;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function nl(e){return"object"==typeof(e=e.detail)&&"data"in e?e.data:null}var ns=!1,nu={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 nc(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===t?!!nu[e.type]:"textarea"===t}function nd(e,t,n,r){tw?tk?tk.push(r):tk=[r]:tw=r,0<(t=ua(t,"onChange")).length&&(n=new tH("onChange","change",null,n,r),e.push({event:n,listeners:t}))}var nf=null,np=null;function nm(e){s5(e,0)}function nh(e){if(e7(eG(e)))return e}function ng(e,t){if("change"===e)return t}var nb=!1;if(tA){if(tA){var ny="oninput"in document;if(!ny){var nv=document.createElement("div");nv.setAttribute("oninput","return;"),ny="function"==typeof nv.oninput}r=ny}else r=!1;nb=r&&(!document.documentMode||9=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=nT(r)}}function nO(e){e=null!=e&&null!=e.ownerDocument&&null!=e.ownerDocument.defaultView?e.ownerDocument.defaultView:window;for(var t=te(e.document);t instanceof e.HTMLIFrameElement;){try{var n="string"==typeof t.contentWindow.location.href}catch(e){n=!1}if(n)e=t.contentWindow;else break;t=te(e.document)}return t}function nL(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 nN=tA&&"documentMode"in document&&11>=document.documentMode,nj=null,nR=null,nI=null,nD=!1;function nF(e,t,n){var r=n.window===n?n.document:9===n.nodeType?n:n.ownerDocument;nD||null==nj||nj!==te(r)||(r="selectionStart"in(r=nj)&&nL(r)?{start:r.selectionStart,end:r.selectionEnd}:{anchorNode:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection()).anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset},nI&&nC(nI,r)||(nI=r,0<(r=ua(nR,"onSelect")).length&&(t=new tH("onSelect","select",null,t,n),e.push({event:t,listeners:r}),t.target=nj)))}function nz(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var nM={animationend:nz("Animation","AnimationEnd"),animationiteration:nz("Animation","AnimationIteration"),animationstart:nz("Animation","AnimationStart"),transitionrun:nz("Transition","TransitionRun"),transitionstart:nz("Transition","TransitionStart"),transitioncancel:nz("Transition","TransitionCancel"),transitionend:nz("Transition","TransitionEnd")},n$={},nB={};function nU(e){if(n$[e])return n$[e];if(!nM[e])return e;var t,n=nM[e];for(t in n)if(n.hasOwnProperty(t)&&t in nB)return n$[e]=n[t];return e}tA&&(nB=document.createElement("div").style,"AnimationEvent"in window||(delete nM.animationend.animation,delete nM.animationiteration.animation,delete nM.animationstart.animation),"TransitionEvent"in window||delete nM.transitionend.transition);var nH=nU("animationend"),nV=nU("animationiteration"),nW=nU("animationstart"),nq=nU("transitionrun"),nG=nU("transitionstart"),nY=nU("transitioncancel"),nK=nU("transitionend"),nQ=new Map,nZ="abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");function nX(e,t){nQ.set(e,t),eX(t,[e])}nZ.push("scrollEnd");var nJ="function"==typeof reportError?reportError:function(e){if("object"==typeof window&&"function"==typeof window.ErrorEvent){var t=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:"object"==typeof e&&null!==e&&"string"==typeof e.message?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if("object"==typeof process&&"function"==typeof process.emit)return void process.emit("uncaughtException",e);console.error(e)},n0=[],n1=0,n2=0;function n3(){for(var e=n1,t=n2=n1=0;t>=i,a-=i,rv=1<<32-eg(t)+a|n<typeof AbortController?AbortController:function(){var e=[],t=this.signal={aborted:!1,addEventListener:function(t,n){e.push(n)}};this.abort=function(){t.aborted=!0,e.forEach(function(e){return e()})}},rJ=a.unstable_scheduleCallback,r0=a.unstable_NormalPriority,r1={$$typeof:k,Consumer:null,Provider:null,_currentValue:null,_currentValue2:null,_threadCount:0};function r2(){return{controller:new rX,data:new Map,refCount:0}}function r3(e){e.refCount--,0===e.refCount&&rJ(r0,function(){e.controller.abort()})}var r4=null,r9=0,r5=0,r6=null;function r8(){if(0==--r9&&null!==r4){null!==r6&&(r6.status="fulfilled");var e=r4;r4=null,r5=0,r6=null;for(var t=0;th?(g=d,d=null):g=d.sibling;var b=p(a,d,l[h],s);if(null===b){null===d&&(d=g);break}e&&d&&null===b.alternate&&t(a,d),i=o(b,i,h),null===c?u=b:c.sibling=b,c=b,d=g}if(h===l.length)return n(a,d),rT&&rk(a,h),u;if(null===d){for(;hg?(b=h,h=null):b=h.sibling;var v=p(a,h,y.value,u);if(null===v){null===h&&(h=b);break}e&&h&&null===v.alternate&&t(a,h),i=o(v,i,g),null===d?c=v:d.sibling=v,d=v,h=b}if(y.done)return n(a,h),rT&&rk(a,g),c;if(null===h){for(;!y.done;g++,y=s.next())null!==(y=f(a,y.value,u))&&(i=o(y,i,g),null===d?c=y:d.sibling=y,d=y);return rT&&rk(a,g),c}for(h=r(h);!y.done;g++,y=s.next())null!==(y=m(h,a,g,y.value,u))&&(e&&null!==y.alternate&&h.delete(null===y.key?g:y.key),i=o(y,i,g),null===d?c=y:d.sibling=y,d=y);return e&&h.forEach(function(e){return t(a,e)}),rT&&rk(a,g),c}(u,c,d=v.call(d),y)}if("function"==typeof d.then)return s(u,c,ag(d),y);if(d.$$typeof===k)return s(u,c,rQ(u,d),y);ay(u,d)}return"string"==typeof d&&""!==d||"number"==typeof d||"bigint"==typeof d?(d=""+d,null!==c&&6===c.tag?(n(u,c.sibling),(y=a(c,d)).return=u):(n(u,c),(y=rl(d,u.mode,y)).return=u),i(u=y)):n(u,c)}(s,u,c,d);return am=null,y}catch(e){if(e===aa||e===ai)throw e;var v=rt(29,e,null,s.mode);return v.lanes=d,v.return=s,v}finally{}}}var aw=av(!0),ak=av(!1),ax=!1;function aS(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function aE(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,callbacks:null})}function a_(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function aA(e,t,n){var r=e.updateQueue;if(null===r)return null;if(r=r.shared,0!=(2&lF)){var a=r.pending;return null===a?t.next=t:(t.next=a.next,a.next=t),r.pending=t,t=n8(e),n6(e,null,n),t}return n4(e,r,t,n),n8(e)}function aC(e,t,n){if(null!==(t=t.updateQueue)&&(t=t.shared,0!=(4194048&n))){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,eP(e,n)}}function aT(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={lane:n.lane,tag:n.tag,payload:n.payload,callback:null,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;n={baseState:r.baseState,firstBaseUpdate:a,lastBaseUpdate:o,shared:r.shared,callbacks:r.callbacks},e.updateQueue=n;return}null===(e=n.lastBaseUpdate)?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}var aP=!1;function aO(){if(aP){var e=r6;if(null!==e)throw e}}function aL(e,t,n,r){aP=!1;var a=e.updateQueue;ax=!1;var o=a.firstBaseUpdate,i=a.lastBaseUpdate,l=a.shared.pending;if(null!==l){a.shared.pending=null;var s=l,u=s.next;s.next=null,null===i?o=u:i.next=u,i=s;var c=e.alternate;null!==c&&(l=(c=c.updateQueue).lastBaseUpdate)!==i&&(null===l?c.firstBaseUpdate=u:l.next=u,c.lastBaseUpdate=s)}if(null!==o){var d=a.baseState;for(i=0,c=u=s=null,l=o;;){var f=-0x20000001&l.lane,m=f!==l.lane;if(m?(l$&f)===f:(r&f)===f){0!==f&&f===r5&&(aP=!0),null!==c&&(c=c.next={lane:0,tag:l.tag,payload:l.payload,callback:null,next:null});e:{var h=e,g=l;switch(f=t,g.tag){case 1:if("function"==typeof(h=g.payload)){d=h.call(n,d,f);break e}d=h;break e;case 3:h.flags=-65537&h.flags|128;case 0:if(null==(f="function"==typeof(h=g.payload)?h.call(n,d,f):h))break e;d=p({},d,f);break e;case 2:ax=!0}}null!==(f=l.callback)&&(e.flags|=64,m&&(e.flags|=8192),null===(m=a.callbacks)?a.callbacks=[f]:m.push(f))}else m={lane:f,tag:l.tag,payload:l.payload,callback:l.callback,next:null},null===c?(u=c=m,s=d):c=c.next=m,i|=f;if(null===(l=l.next))if(null===(l=a.shared.pending))break;else l=(m=l).next,m.next=null,a.lastBaseUpdate=m,a.shared.pending=null}null===c&&(s=d),a.baseState=s,a.firstBaseUpdate=u,a.lastBaseUpdate=c,null===o&&(a.shared.lanes=0),lY|=i,e.lanes=i,e.memoizedState=d}}function aN(e,t){if("function"!=typeof e)throw Error(l(191,e));e.call(t)}function aj(e,t){var n=e.callbacks;if(null!==n)for(e.callbacks=null,e=0;eo?o:8;var i=j.T,l={};j.T=l,o8(e,!1,t,n);try{var s=a(),u=j.S;if(null!==u&&u(l,s),null!==s&&"object"==typeof s&&"function"==typeof s.then){var c,d,f=(c=[],d={status:"pending",value:null,reason:null,then:function(e){c.push(e)}},s.then(function(){d.status="fulfilled",d.value=r;for(var e=0;e title"))),up(o,r,n),o[eD]=e,eK(o),r=o;break e;case"link":var i=u3("link","href",a).get(r+(n.href||""));if(i){for(var s=0;sl)break;var c=s.transferSize,d=s.initiatorType;c&&um(d)&&(i+=c*((s=s.responseEnd)u5?50:800)+h);return m.unsuspend=e,function(){m.unsuspend=null,clearTimeout(t),clearTimeout(n)}}:null)){se=o,e.cancelPendingCommit=g(sA.bind(null,e,t,o,n,r,a,i,l,s,c,d,null,f,p)),sd(e,o,i,!u);return}}sA(e,t,o,n,r,a,i,l,s)}function sd(e,t,n,r){t&=~lQ,t&=~lK,e.suspendedLanes|=t,e.pingedLanes&=~t,r&&(e.warmLanes|=t),r=e.expirationTimes;for(var a=t;0<\/script>",o=o.removeChild(o.firstChild);break;case"select":o="string"==typeof r.is?i.createElement("select",{is:r.is}):i.createElement("select"),r.multiple?o.multiple=!0:r.size&&(o.size=r.size);break;default:o="string"==typeof r.is?i.createElement(a,{is:r.is}):i.createElement(a)}}o[eD]=t,o[eF]=r;e:for(i=t.child;null!==i;){if(5===i.tag||6===i.tag)o.appendChild(i.stateNode);else if(4!==i.tag&&27!==i.tag&&null!==i.child){i.child.return=i,i=i.child;continue}if(i===t)break;for(;null===i.sibling;){if(null===i.return||i.return===t)break e;i=i.return}i.sibling.return=i.return,i=i.sibling}switch(t.stateNode=o,up(o,a,r),a){case"button":case"input":case"select":case"textarea":r=!!r.autoFocus;break;case"img":r=!0;break;default:r=!1}r&&iQ(t)}}return i1(t),iZ(t,t.type,null===e?null:e.memoizedProps,t.pendingProps,n),null;case 6:if(e&&null!=t.stateNode)e.memoizedProps!==r&&iQ(t);else{if("string"!=typeof r&&null===t.stateNode)throw Error(l(166));if(e=H.current,rI(t)){if(e=t.stateNode,n=t.memoizedProps,r=null,null!==(a=rA))switch(a.tag){case 27:case 5:r=a.memoizedProps}e[eD]=t,(e=!!(e.nodeValue===n||null!==r&&!0===r.suppressHydrationWarning||uc(e.nodeValue,n)))||rN(t,!0)}else(e=ub(e).createTextNode(r))[eD]=t,t.stateNode=e}return i1(t),null;case 31:if(n=t.memoizedState,null===e||null!==e.memoizedState){if(r=rI(t),null!==n){if(null===e){if(!r)throw Error(l(318));if(!(e=null!==(e=t.memoizedState)?e.dehydrated:null))throw Error(l(557));e[eD]=t}else rD(),0==(128&t.flags)&&(t.memoizedState=null),t.flags|=4;i1(t),e=!1}else n=rF(),null!==e&&null!==e.memoizedState&&(e.memoizedState.hydrationErrors=n),e=!0;if(!e){if(256&t.flags)return aW(t),t;return aW(t),null}if(0!=(128&t.flags))throw Error(l(558))}return i1(t),null;case 13:if(r=t.memoizedState,null===e||null!==e.memoizedState&&null!==e.memoizedState.dehydrated){if(a=rI(t),null!==r&&null!==r.dehydrated){if(null===e){if(!a)throw Error(l(318));if(!(a=null!==(a=t.memoizedState)?a.dehydrated:null))throw Error(l(317));a[eD]=t}else rD(),0==(128&t.flags)&&(t.memoizedState=null),t.flags|=4;i1(t),a=!1}else a=rF(),null!==e&&null!==e.memoizedState&&(e.memoizedState.hydrationErrors=a),a=!0;if(!a){if(256&t.flags)return aW(t),t;return aW(t),null}}if(aW(t),0!=(128&t.flags))return t.lanes=n,t;return n=null!==r,e=null!==e&&null!==e.memoizedState,n&&(r=t.child,a=null,null!==r.alternate&&null!==r.alternate.memoizedState&&null!==r.alternate.memoizedState.cachePool&&(a=r.alternate.memoizedState.cachePool.pool),o=null,null!==r.memoizedState&&null!==r.memoizedState.cachePool&&(o=r.memoizedState.cachePool.pool),o!==a&&(r.flags|=2048)),n!==e&&n&&(t.child.flags|=8192),iJ(t,t.updateQueue),i1(t),null;case 4:return q(),null===e&&ue(t.stateNode.containerInfo),i1(t),null;case 10:return rH(t.type),i1(t),null;case 19:if(M(aq),null===(r=t.memoizedState))return i1(t),null;if(a=0!=(128&t.flags),null===(o=r.rendering))if(a)i0(r,!1);else{if(0!==lG||null!==e&&0!=(128&e.flags))for(e=t.child;null!==e;){if(null!==(o=aG(e))){for(t.flags|=128,i0(r,!1),t.updateQueue=e=o.updateQueue,iJ(t,e),t.subtreeFlags=0,e=n,n=t.child;null!==n;)ra(n,e),n=n.sibling;return $(aq,1&aq.current|2),rT&&rk(t,r.treeForkCount),t.child}e=e.sibling}null!==r.tail&&ea()>l4&&(t.flags|=128,a=!0,i0(r,!1),t.lanes=4194304)}else{if(!a)if(null!==(e=aG(o))){if(t.flags|=128,a=!0,t.updateQueue=e=e.updateQueue,iJ(t,e),i0(r,!0),null===r.tail&&"hidden"===r.tailMode&&!o.alternate&&!rT)return i1(t),null}else 2*ea()-r.renderingStartTime>l4&&0x20000000!==n&&(t.flags|=128,a=!0,i0(r,!1),t.lanes=4194304);r.isBackwards?(o.sibling=t.child,t.child=o):(null!==(e=r.last)?e.sibling=o:t.child=o,r.last=o)}if(null!==r.tail)return e=r.tail,r.rendering=e,r.tail=e.sibling,r.renderingStartTime=ea(),e.sibling=null,n=aq.current,$(aq,a?1&n|2:1&n),rT&&rk(t,r.treeForkCount),e;return i1(t),null;case 22:case 23:return aW(t),az(),r=null!==t.memoizedState,null!==e?null!==e.memoizedState!==r&&(t.flags|=8192):r&&(t.flags|=8192),r?0!=(0x20000000&n)&&0==(128&t.flags)&&(i1(t),6&t.subtreeFlags&&(t.flags|=8192)):i1(t),null!==(n=t.updateQueue)&&iJ(t,n.retryQueue),n=null,null!==e&&null!==e.memoizedState&&null!==e.memoizedState.cachePool&&(n=e.memoizedState.cachePool.pool),r=null,null!==t.memoizedState&&null!==t.memoizedState.cachePool&&(r=t.memoizedState.cachePool.pool),r!==n&&(t.flags|=2048),null!==e&&M(ae),null;case 24:return n=null,null!==e&&(n=e.memoizedState.cache),t.memoizedState.cache!==n&&(t.flags|=2048),rH(r1),i1(t),null;case 25:case 30:return null}throw Error(l(156,t.tag))}(t.alternate,t,lq);if(null!==n){lM=n;return}if(null!==(t=t.sibling)){lM=t;return}lM=t=e}while(null!==t)0===lG&&(lG=5)}function s_(e,t){do{var n=function(e,t){switch(rE(t),t.tag){case 1:return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 3:return rH(r1),q(),0!=(65536&(e=t.flags))&&0==(128&e)?(t.flags=-65537&e|128,t):null;case 26:case 27:case 5:return Y(t),null;case 31:if(null!==t.memoizedState){if(aW(t),null===t.alternate)throw Error(l(340));rD()}return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 13:if(aW(t),null!==(e=t.memoizedState)&&null!==e.dehydrated){if(null===t.alternate)throw Error(l(340));rD()}return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 19:return M(aq),null;case 4:return q(),null;case 10:return rH(t.type),null;case 22:case 23:return aW(t),az(),null!==e&&M(ae),65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 24:return rH(r1),null;default:return null}}(e.alternate,e);if(null!==n){n.flags&=32767,lM=n;return}if(null!==(n=e.return)&&(n.flags|=32768,n.subtreeFlags=0,n.deletions=null),!t&&null!==(e=e.sibling)){lM=e;return}lM=e=n}while(null!==e)lG=6,lM=null}function sA(e,t,n,r,a,o,i,s,u){e.cancelPendingCommit=null;do sL();while(0!==l6)if(0!=(6&lF))throw Error(l(327));if(null!==t){if(t===e.current)throw Error(l(177));if(!function(e,t,n,r,a,o){var i=e.pendingLanes;e.pendingLanes=n,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=n,e.entangledLanes&=n,e.errorRecoveryDisabledLanes&=n,e.shellSuspendCounter=0;var l=e.entanglements,s=e.expirationTimes,u=e.hiddenUpdates;for(n=i&~n;0g&&(i=g,g=h,h=i);var b=nP(l,h),y=nP(l,g);if(b&&y&&(1!==p.rangeCount||p.anchorNode!==b.node||p.anchorOffset!==b.offset||p.focusNode!==y.node||p.focusOffset!==y.offset)){var v=d.createRange();v.setStart(b.node,b.offset),p.removeAllRanges(),h>g?(p.addRange(v),p.extend(y.node,y.offset)):(v.setEnd(y.node,y.offset),p.addRange(v))}}}}for(d=[],p=l;p=p.parentNode;)1===p.nodeType&&d.push({element:p,left:p.scrollLeft,top:p.scrollTop});for("function"==typeof l.focus&&l.focus(),l=0;ln?32:n,j.T=null,n=sn,sn=null;var o=l8,i=se;if(l6=0,l7=l8=null,se=0,0!=(6&lF))throw Error(l(331));var s=lF;if(lF|=4,lj(o.current),lA(o,o.current,i,n),lF=s,sG(0,!1),em&&"function"==typeof em.onPostCommitFiberRoot)try{em.onPostCommitFiberRoot(ep,o)}catch(e){}return!0}finally{R.p=a,j.T=r,sO(e,t)}}function sj(e,t,n){t=rd(n,t),t=iy(e.stateNode,t,2),null!==(e=aA(e,t,2))&&(eC(e,2),sq(e))}function sR(e,t,n){if(3===e.tag)sj(e,e,n);else for(;null!==t;){if(3===t.tag){sj(t,e,n);break}if(1===t.tag){var r=t.stateNode;if("function"==typeof t.type.getDerivedStateFromError||"function"==typeof r.componentDidCatch&&(null===l5||!l5.has(r))){e=rd(n,e),null!==(r=aA(t,n=iv(2),2))&&(iw(n,r,t,e),eC(r,2),sq(r));break}}t=t.return}}function sI(e,t,n){var r=e.pingCache;if(null===r){r=e.pingCache=new lD;var a=new Set;r.set(t,a)}else void 0===(a=r.get(t))&&(a=new Set,r.set(t,a));a.has(n)||(lW=!0,a.add(n),e=sD.bind(null,e,t,n),t.then(e,e))}function sD(e,t,n){var r=e.pingCache;null!==r&&r.delete(t),e.pingedLanes|=e.suspendedLanes&n,e.warmLanes&=~n,lz===e&&(l$&n)===n&&(4===lG||3===lG&&(0x3c00000&l$)===l$&&300>ea()-l2?0==(2&lF)&&sm(e,0):lQ|=n,lX===l$&&(lX=0)),sq(e)}function sF(e,t){0===t&&(t=e_()),null!==(e=n5(e,t))&&(eC(e,t),sq(e))}function sz(e){var t=e.memoizedState,n=0;null!==t&&(n=t.retryLane),sF(e,n)}function sM(e,t){var n=0;switch(e.tag){case 31:case 13:var r=e.stateNode,a=e.memoizedState;null!==a&&(n=a.retryLane);break;case 19:r=e.stateNode;break;case 22:r=e.stateNode._retryCache;break;default:throw Error(l(314))}null!==r&&r.delete(t),sF(e,n)}var s$=null,sB=null,sU=!1,sH=!1,sV=!1,sW=0;function sq(e){e!==sB&&null===e.next&&(null===sB?s$=sB=e:sB=sB.next=e),sH=!0,sU||(sU=!0,u_(function(){0!=(6&lF)?ee(ei,sY):sK()}))}function sG(e,t){if(!sV&&sH){sV=!0;do for(var n=!1,r=s$;null!==r;){if(!t)if(0!==e){var a=r.pendingLanes;if(0===a)var o=0;else{var i=r.suspendedLanes,l=r.pingedLanes;o=0xc000095&(o=(1<<31-eg(42|e)+1)-1&(a&~(i&~l)))?0xc000095&o|1:o?2|o:0}0!==o&&(n=!0,sX(r,o))}else o=l$,0==(3&(o=eS(r,r===lz?o:0,null!==r.cancelPendingCommit||-1!==r.timeoutHandle)))||eE(r,o)||(n=!0,sX(r,o));r=r.next}while(n)sV=!1}}function sY(){sK()}function sK(){sH=sU=!1;var e,t=0;0===sW||((e=window.event)&&"popstate"===e.type?e===uk||(uk=e,0):(uk=null,1))||(t=sW);for(var n=ea(),r=null,a=s$;null!==a;){var o=a.next,i=sQ(a,n);0===i?(a.next=null,null===r?s$=o:r.next=o,null===o&&(sB=r)):(r=a,(0!==t||0!=(3&i))&&(sH=!0)),a=o}0!==l6&&5!==l6||sG(t,!1),0!==sW&&(sW=0)}function sQ(e,t){for(var n=e.suspendedLanes,r=e.pingedLanes,a=e.expirationTimes,o=-0x3c00001&e.pendingLanes;0 title"):null)}function u9(e){return"stylesheet"!==e.type||0!=(3&e.state.loading)}var u5=0;function u6(){if(this.count--,0===this.count&&(0===this.imgCount||!this.waitingForImages)){if(this.stylesheets)u7(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}}var u8=null;function u7(e,t){e.stylesheets=null,null!==e.unsuspend&&(e.count++,u8=new Map,t.forEach(ce,e),u8=null,u6.call(e))}function ce(e,t){if(!(4&t.state.loading)){var n=u8.get(e);if(n)var r=n.get(null);else{n=new Map,u8.set(e,n);for(var a=e.querySelectorAll("link[data-precedence],style[data-precedence]"),o=0;otypeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var cM=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!cM.isDisabled&&cM.supportsFiber)try{ep=cM.inject({bundleType:0,version:"19.2.8",rendererPackageName:"react-dom",currentDispatcherRef:j,reconcilerVersion:"19.2.8"}),em=cM}catch(e){}}t.createRoot=function(e,t){if(!s(e))throw Error(l(299));var n=!1,r="",a=ip,o=im,i=ih;return null!=t&&(!0===t.unstable_strictMode&&(n=!0),void 0!==t.identifierPrefix&&(r=t.identifierPrefix),void 0!==t.onUncaughtError&&(a=t.onUncaughtError),void 0!==t.onCaughtError&&(o=t.onCaughtError),void 0!==t.onRecoverableError&&(i=t.onRecoverableError)),t=cr(e,1,!1,null,null,n,r,null,a,o,i,cI),e[ez]=t.current,ue(e),new cD(t)},t.hydrateRoot=function(e,t,n){if(!s(e))throw Error(l(299));var r=!1,a="",o=ip,i=im,u=ih,c=null;return null!=n&&(!0===n.unstable_strictMode&&(r=!0),void 0!==n.identifierPrefix&&(a=n.identifierPrefix),void 0!==n.onUncaughtError&&(o=n.onUncaughtError),void 0!==n.onCaughtError&&(i=n.onCaughtError),void 0!==n.onRecoverableError&&(u=n.onRecoverableError),void 0!==n.formState&&(c=n.formState)),(t=cr(e,1,!0,t,null!=n?n:null,r,a,c,o,i,u,cI)).context=n7,n=t.current,(a=a_(r=eL(r=si()))).callback=null,aA(n,a,r),n=r,t.current.lanes=n,eC(t,n),sq(t),e[ez]=t.current,ue(e),new cF(t)},t.version="19.2.8"},4797(e,t,n){"use strict";var r=n(1763);function a(e){var t="https://react.dev/errors/"+e;if(1typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(e){console.error(e)}}(),e.exports=n(1663)},8481(e,t,n){"use strict";!function e(){if("u">typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(e){console.error(e)}}(),e.exports=n(4797)},4072(e){var t="u">typeof Element,n="function"==typeof Map,r="function"==typeof Set,a="function"==typeof ArrayBuffer&&!!ArrayBuffer.isView;e.exports=function(e,o){try{return function e(o,i){if(o===i)return!0;if(o&&i&&"object"==typeof o&&"object"==typeof i){var l,s,u,c;if(o.constructor!==i.constructor)return!1;if(Array.isArray(o)){if((l=o.length)!=i.length)return!1;for(s=l;0!=s--;)if(!e(o[s],i[s]))return!1;return!0}if(n&&o instanceof Map&&i instanceof Map){if(o.size!==i.size)return!1;for(c=o.entries();!(s=c.next()).done;)if(!i.has(s.value[0]))return!1;for(c=o.entries();!(s=c.next()).done;)if(!e(s.value[1],i.get(s.value[0])))return!1;return!0}if(r&&o instanceof Set&&i instanceof Set){if(o.size!==i.size)return!1;for(c=o.entries();!(s=c.next()).done;)if(!i.has(s.value[0]))return!1;return!0}if(a&&ArrayBuffer.isView(o)&&ArrayBuffer.isView(i)){if((l=o.length)!=i.length)return!1;for(s=l;0!=s--;)if(o[s]!==i[s])return!1;return!0}if(o.constructor===RegExp)return o.source===i.source&&o.flags===i.flags;if(o.valueOf!==Object.prototype.valueOf&&"function"==typeof o.valueOf&&"function"==typeof i.valueOf)return o.valueOf()===i.valueOf();if(o.toString!==Object.prototype.toString&&"function"==typeof o.toString&&"function"==typeof i.toString)return o.toString()===i.toString();if((l=(u=Object.keys(o)).length)!==Object.keys(i).length)return!1;for(s=l;0!=s--;)if(!Object.prototype.hasOwnProperty.call(i,u[s]))return!1;if(t&&o instanceof Element)return!1;for(s=l;0!=s--;)if(("_owner"!==u[s]&&"__v"!==u[s]&&"__o"!==u[s]||!o.$$typeof)&&!e(o[u[s]],i[u[s]]))return!1;return!0}return o!=o&&i!=i}(e,o)}catch(e){if((e.message||"").match(/stack|recursion/i))return console.warn("react-fast-compare cannot handle circular refs"),!1;throw e}}},5843(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,s=n?Symbol.for("react.provider"):60109,u=n?Symbol.for("react.context"):60110,c=n?Symbol.for("react.async_mode"):60111,d=n?Symbol.for("react.concurrent_mode"):60111,f=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,b=n?Symbol.for("react.block"):60121,y=n?Symbol.for("react.fundamental"):60117,v=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 d:case o:case l:case i:case p:return e;default:switch(e=e&&e.$$typeof){case u:case f:case g:case h:case s:return e;default:return t}}case a:return t}}}function x(e){return k(e)===d}t.AsyncMode=c,t.ConcurrentMode=d,t.ContextConsumer=u,t.ContextProvider=s,t.Element=r,t.ForwardRef=f,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 x(e)||k(e)===c},t.isConcurrentMode=x,t.isContextConsumer=function(e){return k(e)===u},t.isContextProvider=function(e){return k(e)===s},t.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===r},t.isForwardRef=function(e){return k(e)===f},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===d||e===l||e===i||e===p||e===m||"object"==typeof e&&null!==e&&(e.$$typeof===g||e.$$typeof===h||e.$$typeof===s||e.$$typeof===u||e.$$typeof===f||e.$$typeof===y||e.$$typeof===v||e.$$typeof===w||e.$$typeof===b)},t.typeOf=k},5959(e,t,n){"use strict";e.exports=n(5843)},6345(e,t,n){"use strict";n.d(t,{u:()=>function e(t,n,a){return void 0===a&&(a=[]),t.some(function(t){var o=t.path?(0,r.B6)(n,t):a.length?a[a.length-1].match:r.Ix.computeRootMatch(n);return o&&(a.push({route:t,match:o}),t.routes&&e(t.routes,n,a)),o}),a},v:()=>i});var r=n(6532),a=n(5062),o=n(1763);function i(e,t,n){return void 0===t&&(t={}),void 0===n&&(n={}),e?o.createElement(r.dO,n,e.map(function(e,n){return o.createElement(r.qh,{key:e.key||n,path:e.path,exact:e.exact,strict:e.strict,render:function(n){return e.render?e.render((0,a.A)({},n,{},t,{route:e})):o.createElement(e.component,(0,a.A)({},n,t,{route:e}))}})})):null}},5399(e,t,n){"use strict";n.d(t,{I9:()=>d,Kd:()=>c,N_:()=>b,k2:()=>w});var r=n(6532),a=n(949),o=n(1763),i=n(477),l=n(5062),s=n(6905),u=n(5385),c=function(e){function t(){for(var t,n=arguments.length,r=Array(n),a=0;av,Ix:()=>g,W6:()=>S,XZ:()=>h,dO:()=>k,qh:()=>w,zy:()=>E});var r=n(949),a=n(1763),o=n(2736),i=n.n(o),l=(n(477),n(5385)),s=n(5062),u=n(4785),c=n.n(u);n(5959),n(6905),n(1035);var d="u">typeof globalThis?globalThis:"u">typeof window?window:void 0!==n.g?n.g:{},f=a.createContext||function(e,t){var n,o,l="__create-react-context-"+(d.__global_unique_id__=(d.__global_unique_id__||0)+1)+"__",s=function(e){function n(){for(var t,n,r,a=arguments.length,o=Array(a),i=0;i>>1,a=e[r];if(0>>1;ro(s,n))uo(c,s)?(e[r]=c,e[u]=n,r=u):(e[r]=s,e[l]=n,r=l);else if(uo(c,n))e[r]=c,e[u]=n,r=u;else break}}return t}function o(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}if(t.unstable_now=void 0,"object"==typeof performance&&"function"==typeof performance.now){var i,l=performance;t.unstable_now=function(){return l.now()}}else{var s=Date,u=s.now();t.unstable_now=function(){return s.now()-u}}var c=[],d=[],f=1,p=null,m=3,h=!1,g=!1,b=!1,y=!1,v="function"==typeof setTimeout?setTimeout:null,w="function"==typeof clearTimeout?clearTimeout:null,k="u">typeof setImmediate?setImmediate:null;function x(e){for(var t=r(d);null!==t;){if(null===t.callback)a(d);else if(t.startTime<=e)a(d),t.sortIndex=t.expirationTime,n(c,t);else break;t=r(d)}}function S(e){if(b=!1,x(e),!g)if(null!==r(c))g=!0,E||(E=!0,i());else{var t=r(d);null!==t&&N(S,t.startTime-e)}}var E=!1,_=-1,A=5,C=-1;function T(){return!!y||!(t.unstable_now()-Ce&&T());){var l=p.callback;if("function"==typeof l){p.callback=null,m=p.priorityLevel;var s=l(p.expirationTime<=e);if(e=t.unstable_now(),"function"==typeof s){p.callback=s,x(e),n=!0;break t}p===r(c)&&a(c),x(e)}else a(c);p=r(c)}if(null!==p)n=!0;else{var u=r(d);null!==u&&N(S,u.startTime-e),n=!1}}break e}finally{p=null,m=o,h=!1}}}finally{n?i():E=!1}}}if("function"==typeof k)i=function(){k(P)};else if("u">typeof MessageChannel){var O=new MessageChannel,L=O.port2;O.port1.onmessage=P,i=function(){L.postMessage(null)}}else i=function(){v(P,0)};function N(e,n){_=v(function(){e(t.unstable_now())},n)}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_forceFrameRate=function(e){0>e||125l?(e.sortIndex=o,n(d,e),null===r(c)&&e===r(d)&&(b?(w(_),_=-1):b=!0,N(S,o-l))):(e.sortIndex=s,n(c,e),g||h||(g=!0,E||(E=!0,i()))),e},t.unstable_shouldYield=T,t.unstable_wrapCallback=function(e){var t=m;return function(){var n=m;m=t;try{return e.apply(this,arguments)}finally{m=n}}}},5666(e,t,n){"use strict";e.exports=n(4697)},2945(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),s=0;sf}),n(1763);var r=n(1987),a=n(182),o=n.n(a),i=n(4054);let l={"05d4cacb":[()=>n.e("218").then(n.bind(n,8037)),"@site/docs/transport/tcp-mux.md",8037],"0dffb83e":[()=>n.e("142").then(n.bind(n,4997)),"@site/docs/roadmap.md",4997],"0e384e19":[()=>n.e("217").then(n.bind(n,9337)),"@site/docs/intro.md",9337],0x11113f9:[()=>Promise.all([n.e("14"),n.e("106")]).then(n.bind(n,2416)),"@theme/DocItem",2416],"1df93b7f":[()=>Promise.all([n.e("14"),n.e("452")]).then(n.bind(n,2029)),"@site/src/pages/index.tsx",2029],"37f66e80":[()=>n.e("395").then(n.bind(n,2438)),"@site/docs/tunnels/http.md",2438],"46875d5c":[()=>n.e("590").then(n.bind(n,7640)),"@site/docs/transport/protocol/quic.md",7640],"51876da0":[()=>n.e("896").then(n.bind(n,599)),"@site/docs/transport/protocol/tcp.md",599],"5e95c892":[()=>n.e("668").then(n.bind(n,4214)),"@theme/DocsRoot",4214],"5e9f5e1a":[()=>Promise.resolve().then(n.bind(n,4784)),"@generated/docusaurus.config",4784],"5ef0e9d6":[()=>n.e("356").then(n.bind(n,5012)),"@site/docs/community.md",5012],"67e4f9fb":[()=>n.e("411").then(n.bind(n,6226)),"@site/docs/transport/protocol/kcp.md",6226],"6b77a8a0":[()=>Promise.all([n.e("14"),n.e("646")]).then(n.bind(n,1898)),"@site/docs/integrations/springboot.mdx",1898],"72e9da6a":[()=>n.e("521").then(n.bind(n,369)),"@site/docs/features/dashboard.md",369],"8070e160":[()=>n.e("499").then(n.bind(n,3190)),"@site/docs/quickstart.md",3190],"90358f02":[()=>n.e("133").then(n.bind(n,1062)),"@site/docs/tunnels/domains.md",1062],"93234bd6":[()=>n.e("503").then(n.bind(n,8036)),"@site/docs/docker.md",8036],0x5d22870:[()=>n.e("69").then(n.bind(n,2366)),"@site/docs/features/bandwidth.md",2366],"9a00739f":[()=>n.e("795").then(n.bind(n,9570)),"@site/docs/tunnels/tcp.md",9570],a7456010:[()=>n.e("56").then(n.t.bind(n,8552,19)),"@generated/docusaurus-plugin-content-pages/default/__plugin.json",8552],a7bd4aaa:[()=>n.e("575").then(n.bind(n,7281)),"@theme/DocVersionRoot",7281],a94703ab:[()=>Promise.all([n.e("14"),n.e("785")]).then(n.bind(n,8591)),"@theme/DocRoot",8591],ab38dbfe:[()=>n.e("267").then(n.bind(n,3095)),"@site/docs/features/public-bind.md",3095],aba21aa0:[()=>n.e("747").then(n.t.bind(n,7093,19)),"@generated/docusaurus-plugin-content-docs/default/__plugin.json",7093],ac5280f2:[()=>n.e("135").then(n.bind(n,691)),"@site/docs/license.md",691],b2d27f24:[()=>n.e("817").then(n.bind(n,9936)),"@site/docs/tunnels/https.md",9936],c1cdd282:[()=>n.e("707").then(n.bind(n,6571)),"@site/docs/transport/connect-pool.md",6571],cac2e989:[()=>n.e("688").then(n.t.bind(n,8409,19)),"@generated/docusaurus-plugin-content-docs/default/p/orbien-docs-819.json",8409],cc0a2bf3:[()=>n.e("630").then(n.bind(n,9995)),"@site/docs/features/authentication.md",9995],def3d52a:[()=>n.e("394").then(n.bind(n,8226)),"@site/docs/tunnels/udp.md",8226],e6f0c936:[()=>Promise.all([n.e("14"),n.e("440")]).then(n.bind(n,7152)),"@site/docs/download.mdx",7152],edefc60b:[()=>n.e("41").then(n.bind(n,7223)),"@site/docs/performance.md",7223],f325f636:[()=>n.e("475").then(n.bind(n,3218)),"@site/docs/features/real-ip.md",3218],fd368041:[()=>n.e("364").then(n.bind(n,1011)),"@site/docs/transport/tls.md",1011],fe98809a:[()=>n.e("326").then(n.bind(n,5475)),"@site/docs/transport/protocol/websocket.md",5475]};function s({error:e,retry:t,pastDelay:n}){return e?(0,r.jsxs)("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%"},children:[(0,r.jsx)("p",{children:String(e)}),(0,r.jsx)("div",{children:(0,r.jsx)("button",{type:"button",onClick:t,children:"Retry"})})]}):n?(0,r.jsx)("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh"},children:(0,r.jsx)("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",children:(0,r.jsxs)("g",{fill:"none",fillRule:"evenodd",transform:"translate(1 1)",strokeWidth:"2",children:[(0,r.jsxs)("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0",children:[(0,r.jsx)("animate",{attributeName:"r",begin:"1.5s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),(0,r.jsx)("animate",{attributeName:"stroke-opacity",begin:"1.5s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),(0,r.jsx)("animate",{attributeName:"stroke-width",begin:"1.5s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})]}),(0,r.jsxs)("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0",children:[(0,r.jsx)("animate",{attributeName:"r",begin:"3s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),(0,r.jsx)("animate",{attributeName:"stroke-opacity",begin:"3s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),(0,r.jsx)("animate",{attributeName:"stroke-width",begin:"3s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})]}),(0,r.jsx)("circle",{cx:"22",cy:"22",r:"8",children:(0,r.jsx)("animate",{attributeName:"r",begin:"0s",dur:"1.5s",values:"6;1;2;3;4;5;6",calcMode:"linear",repeatCount:"indefinite"})})]})})}):null}var u=n(8115),c=n(9648);function d(e,t){if("*"===e)return o()({loading:s,loader:()=>n.e("627").then(n.bind(n,7702)),modules:["@theme/NotFound"],webpack:()=>[7702],render(e,t){let n=e.default;return(0,r.jsx)(c.W,{value:{plugin:{name:"native",id:"default"}},children:(0,r.jsx)(n,{...t})})}});let a=i[`${e}-${t}`],d={},f=[],p=[];return Object.entries((0,u.A)(a)).forEach(([e,t])=>{let n=l[t];n&&(d[e]=n[0],f.push(n[1]),p.push(n[2]))}),o().Map({loading:s,loader:d,modules:f,webpack:()=>p,render(t,n){let o=JSON.parse(JSON.stringify(a));Object.entries(t).forEach(([t,n])=>{let r=n.default;if(!r)throw 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 r||"function"==typeof r)&&Object.keys(n).filter(e=>"default"!==e).forEach(e=>{r[e]=n[e]});let a=o,i=t.split(".");i.slice(0,-1).forEach(e=>{a=a[e]}),a[i[i.length-1]]=r});let i=o.__comp;delete o.__comp;let l=o.__context;delete o.__context;let s=o.__props;return delete o.__props,(0,r.jsx)(c.W,{value:l,children:(0,r.jsx)(i,{...o,...s,...n})})}})}let f=[{path:"/orbien/docs",component:d("/orbien/docs","8a3"),routes:[{path:"/orbien/docs",component:d("/orbien/docs","629"),routes:[{path:"/orbien/docs",component:d("/orbien/docs","46d"),routes:[{path:"/orbien/docs/community",component:d("/orbien/docs/community","f09"),exact:!0,sidebar:"docsSidebar"},{path:"/orbien/docs/docker",component:d("/orbien/docs/docker","10d"),exact:!0,sidebar:"docsSidebar"},{path:"/orbien/docs/download",component:d("/orbien/docs/download","b8f"),exact:!0,sidebar:"docsSidebar"},{path:"/orbien/docs/features/authentication",component:d("/orbien/docs/features/authentication","2e9"),exact:!0,sidebar:"docsSidebar"},{path:"/orbien/docs/features/bandwidth",component:d("/orbien/docs/features/bandwidth","fdb"),exact:!0,sidebar:"docsSidebar"},{path:"/orbien/docs/features/dashboard",component:d("/orbien/docs/features/dashboard","a3d"),exact:!0,sidebar:"docsSidebar"},{path:"/orbien/docs/features/public-bind",component:d("/orbien/docs/features/public-bind","5a6"),exact:!0,sidebar:"docsSidebar"},{path:"/orbien/docs/features/real-ip",component:d("/orbien/docs/features/real-ip","96f"),exact:!0,sidebar:"docsSidebar"},{path:"/orbien/docs/integrations/springboot",component:d("/orbien/docs/integrations/springboot","999"),exact:!0,sidebar:"docsSidebar"},{path:"/orbien/docs/intro",component:d("/orbien/docs/intro","a22"),exact:!0,sidebar:"docsSidebar"},{path:"/orbien/docs/license",component:d("/orbien/docs/license","006"),exact:!0,sidebar:"docsSidebar"},{path:"/orbien/docs/performance",component:d("/orbien/docs/performance","3db"),exact:!0,sidebar:"docsSidebar"},{path:"/orbien/docs/quickstart",component:d("/orbien/docs/quickstart","8ac"),exact:!0,sidebar:"docsSidebar"},{path:"/orbien/docs/roadmap",component:d("/orbien/docs/roadmap","087"),exact:!0,sidebar:"docsSidebar"},{path:"/orbien/docs/transport/connect-pool",component:d("/orbien/docs/transport/connect-pool","8a2"),exact:!0,sidebar:"docsSidebar"},{path:"/orbien/docs/transport/protocol/kcp",component:d("/orbien/docs/transport/protocol/kcp","a28"),exact:!0,sidebar:"docsSidebar"},{path:"/orbien/docs/transport/protocol/quic",component:d("/orbien/docs/transport/protocol/quic","9b2"),exact:!0,sidebar:"docsSidebar"},{path:"/orbien/docs/transport/protocol/tcp",component:d("/orbien/docs/transport/protocol/tcp","216"),exact:!0,sidebar:"docsSidebar"},{path:"/orbien/docs/transport/protocol/websocket",component:d("/orbien/docs/transport/protocol/websocket","10c"),exact:!0,sidebar:"docsSidebar"},{path:"/orbien/docs/transport/tcp-mux",component:d("/orbien/docs/transport/tcp-mux","65e"),exact:!0,sidebar:"docsSidebar"},{path:"/orbien/docs/transport/tls",component:d("/orbien/docs/transport/tls","874"),exact:!0,sidebar:"docsSidebar"},{path:"/orbien/docs/tunnels/domains",component:d("/orbien/docs/tunnels/domains","5dc"),exact:!0,sidebar:"docsSidebar"},{path:"/orbien/docs/tunnels/http",component:d("/orbien/docs/tunnels/http","876"),exact:!0,sidebar:"docsSidebar"},{path:"/orbien/docs/tunnels/https",component:d("/orbien/docs/tunnels/https","4e3"),exact:!0,sidebar:"docsSidebar"},{path:"/orbien/docs/tunnels/tcp",component:d("/orbien/docs/tunnels/tcp","f50"),exact:!0,sidebar:"docsSidebar"},{path:"/orbien/docs/tunnels/udp",component:d("/orbien/docs/tunnels/udp","0cb"),exact:!0,sidebar:"docsSidebar"}]}]}]},{path:"/orbien/",component:d("/orbien/","e57"),exact:!0},{path:"*",component:d("*")}]},4607(e,t,n){"use strict";n.d(t,{o:()=>o,x:()=>i});var r=n(1987),a=n(1763);let o=a.createContext(!1);function i({children:e}){let[t,n]=(0,a.useState)(!1);return(0,a.useEffect)(()=>{n(!0)},[]),(0,r.jsx)(o.Provider,{value:t,children:e})}},6780(e,t,n){"use strict";var r=n(1987),a=n(1763),o=n(6122),i=n(9883),l=n(5399),s=n(4784),u=n(4619);let c=[n(2796),n(9564),n(4389),n(6759),n(6544)];var d=n(439),f=n(6532),p=n(6345);function m({children:e}){return(0,r.jsx)(r.Fragment,{children:e})}var h=n(6461);let g=e=>e.defaultFormatter(e);function b({children:e}){return(0,r.jsx)(h.AL,{formatter:g,children:e})}function y({children:e}){return(0,r.jsx)(b,{children:e})}var v=n(7634),w=n(5484),k=n(319),x=n(8168),S=n(310),E=n(5941),_=n(2455),A=n(5992);function C(){let{i18n:{currentLocale:e,defaultLocale:t,localeConfigs:n}}=(0,w.A)(),a=(0,E.o)(),o=n[e].htmlLang;return(0,r.jsxs)(v.A,{children:[Object.entries(n).map(([e,{htmlLang:t}])=>(0,r.jsx)("link",{rel:"alternate",href:a.createUrl({locale:e,fullyQualified:!0}),hrefLang:t},e)),(0,r.jsx)("link",{rel:"alternate",href:a.createUrl({locale:t,fullyQualified:!0}),hrefLang:"x-default"}),(0,r.jsx)("meta",{property:"og:locale",content:o.replace("-","_")}),Object.values(n).filter(e=>o!==e.htmlLang).map(e=>(0,r.jsx)("meta",{property:"og:locale:alternate",content:e.htmlLang.replace("-","_")},`meta-og-${e.htmlLang}`))]})}function T({permalink:e}){let{siteConfig:{url:t}}=(0,w.A)(),n=function(){let{siteConfig:{url:e,baseUrl:t,trailingSlash:n}}=(0,w.A)(),{pathname:r}=(0,f.zy)();return e+(0,_.applyTrailingSlash)((0,k.Ay)(r),{trailingSlash:n,baseUrl:t})}(),a=e?`${t}${e}`:n;return(0,r.jsxs)(v.A,{children:[(0,r.jsx)("meta",{property:"og:url",content:a}),(0,r.jsx)("link",{rel:"canonical",href:a})]})}function P(){let{i18n:{currentLocale:e}}=(0,w.A)(),{metadata:t,image:n}=(0,x.p)();return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(v.A,{children:[(0,r.jsx)("meta",{name:"twitter:card",content:"summary_large_image"}),(0,r.jsx)("body",{})]}),n&&(0,r.jsx)(S.be,{image:n}),(0,r.jsx)(T,{}),(0,r.jsx)(C,{}),(0,r.jsx)(A.A,{tag:"default",locale:e}),(0,r.jsx)(v.A,{children:t.map((e,t)=>(0,r.jsx)("meta",{...e},t))})]})}let O=new Map;var L=n(4607),N=n(3235),j=n(9879);function R(e,...t){let n=c.map(n=>{let r=n.default?.[e]??n[e];return r?.(...t)});return()=>n.forEach(e=>e?.())}let I=function({children:e,location:t,previousLocation:n}){return(0,j.A)(()=>{n!==t&&(!function({location:e,previousLocation:t}){if(!t)return;let n=e.pathname===t.pathname,r=e.hash===t.hash,a=e.search===t.search;if(n&&r&&!a)return;let{hash:o}=e;if(o){let e=decodeURIComponent(o.substring(1)),t=document.getElementById(e);t?.scrollIntoView()}else window.scrollTo(0,0)}({location:t,previousLocation:n}),R("onRouteDidUpdate",{previousLocation:n,location:t}))},[n,t]),e};function D(e){return Promise.all(Array.from(new Set([e,decodeURI(e)])).map(e=>(0,p.u)(d.A,e)).flat().map(e=>e.route.component.preload?.()))}class F extends a.Component{previousLocation;routeUpdateCleanupCb;constructor(e){super(e),this.previousLocation=null,this.routeUpdateCleanupCb=u.A.canUseDOM?R("onRouteUpdate",{previousLocation:null,location:this.props.location}):()=>{},this.state={nextRouteHasLoaded:!0}}shouldComponentUpdate(e,t){if(e.location===this.props.location)return t.nextRouteHasLoaded;let n=e.location;return this.previousLocation=this.props.location,this.setState({nextRouteHasLoaded:!1}),this.routeUpdateCleanupCb=R("onRouteUpdate",{previousLocation:this.previousLocation,location:n}),D(n.pathname).then(()=>{this.routeUpdateCleanupCb(),this.setState({nextRouteHasLoaded:!0})}).catch(e=>{console.warn(e),window.location.reload()}),!1}render(){let{children:e,location:t}=this.props;return(0,r.jsx)(I,{previousLocation:this.previousLocation,location:t,children:(0,r.jsx)(f.qh,{location:t,render:()=>e})})}}let z="__docusaurus-base-url-issue-banner-suggestion-container";function M(){let{siteConfig:{baseUrl:e}}=(0,w.A)();return(0,r.jsx)(r.Fragment,{children:!u.A.canUseDOM&&(0,r.jsx)(v.A,{children:(0,r.jsx)("script",{children:` document.addEventListener('DOMContentLoaded', function maybeInsertBanner() { var shouldInsert = typeof window['docusaurus'] === 'undefined'; shouldInsert && insertBanner(); @@ -24,15 +24,15 @@ function insertBanner() { : actualHomePagePath + '/'; suggestionContainer.textContent = suggestedBaseUrl; } -`})})})}function $(){let{siteConfig:{baseUrl:e,baseUrlIssueBanner:t}}=(0,w.A)(),{pathname:n}=(0,f.zy)();return t&&n===e?(0,r.jsx)(M,{}):null}function B(){let{siteConfig:{favicon:e,title:t,noIndex:n},i18n:{currentLocale:a,localeConfigs:o}}=(0,w.A)(),i=(0,k.Ay)(e),{htmlLang:l,direction:s}=o[a];return(0,r.jsxs)(v.A,{children:[(0,r.jsx)("html",{lang:l,dir:s}),(0,r.jsx)("title",{children:t}),(0,r.jsx)("meta",{property:"og:title",content:t}),(0,r.jsx)("meta",{name:"viewport",content:"width=device-width, initial-scale=1.0"}),n&&(0,r.jsx)("meta",{name:"robots",content:"noindex, nofollow"}),e&&(0,r.jsx)("link",{rel:"icon",href:i})]})}var U=n(9047),H=n(8261);function V(){let e=(0,H.A)();return(0,r.jsx)(v.A,{children:(0,r.jsx)("html",{"data-has-hydrated":e})})}let W=(0,p.v)(d.A);function q(){let e=function(e){if(O.has(e.pathname))return{...e,pathname:O.get(e.pathname)};if((0,p.u)(d.A,e.pathname).some(({route:e})=>!0===e.exact))return O.set(e.pathname,e.pathname),e;let t=e.pathname.trim().replace(/(?:\/index)?\.html$/,"")||"/";return O.set(e.pathname,t),{...e,pathname:t}}((0,f.zy)());return(0,r.jsx)(F,{location:e,children:W})}var G=n(4054);let Y=!function(e){try{return document.createElement("link").relList.supports(e)}catch{return!1}}("prefetch")?function(e){return new Promise((t,n)=>{let r=new XMLHttpRequest;r.open("GET",e,!0),r.withCredentials=!0,r.onload=()=>{200===r.status?t():n()},r.send(null)})}:function(e){return new Promise((t,n)=>{if("u"t(),r.onerror=()=>n();let a=document.getElementsByTagName("head")[0]??document.getElementsByName("script")[0]?.parentNode;a?.appendChild(r)})};var K=n(8115);let Q=new Set,Z=new Set,X=()=>navigator.connection?.effectiveType.includes("2g")||navigator.connection?.saveData,J=Object.freeze({prefetch:e=>!(X()||Z.has(e)||Q.has(e))&&(Q.add(e),Promise.all((0,p.u)(d.A,e).flatMap(e=>{let t;return t=e.route.path,Object.entries(G).filter(([e])=>e.replace(/-[^-]+$/,"")===t).flatMap(([,e])=>Object.values((0,K.A)(e)))}).map(e=>{let t=n.gca(e);return t&&!t.includes("undefined")?Y(t).catch(()=>{}):Promise.resolve()}))),preload:e=>!(X()||Z.has(e))&&(Z.add(e),D(e))});if(u.A.canUseDOM){window.docusaurus=J;let e=document.getElementById("__docusaurus"),t=(0,r.jsx)(i.vd,{children:(0,r.jsx)(function({children:e}){return"hash"===s.default.future.experimental_router?(0,r.jsx)(l.I9,{children:e}):(0,r.jsx)(l.Kd,{children:e})},{children:(0,r.jsx)(function(){return(0,r.jsx)(U.A,{children:(0,r.jsx)(N.l,{children:(0,r.jsxs)(L.x,{children:[(0,r.jsx)(m,{children:(0,r.jsxs)(b,{children:[(0,r.jsx)(B,{}),(0,r.jsx)(P,{}),(0,r.jsx)($,{}),(0,r.jsx)(q,{})]})}),(0,r.jsx)(V,{})]})})})},{})})}),n=(e,t)=>{console.error("Docusaurus React Root onRecoverableError:",e,t)},u=()=>{window.docusaurusRoot?window.docusaurusRoot.render(t):window.docusaurusRoot=o.hydrateRoot(e,t,{onRecoverableError:n})};D(window.location.pathname).then(()=>{(0,a.startTransition)(u)})}},3235(e,t,n){"use strict";n.d(t,{l:()=>f,o:()=>d});var r=n(1987),a=n(1763),o=n(4784),i=JSON.parse('{"docusaurus-plugin-content-docs":{"default":{"path":"/orbien/docs","versions":[{"name":"current","label":"Next","isLast":true,"path":"/orbien/docs","mainDocId":"intro","docs":[{"id":"community","path":"/orbien/docs/community","sidebar":"docsSidebar"},{"id":"docker","path":"/orbien/docs/docker","sidebar":"docsSidebar"},{"id":"download","path":"/orbien/docs/download","sidebar":"docsSidebar"},{"id":"features/authentication","path":"/orbien/docs/features/authentication","sidebar":"docsSidebar"},{"id":"features/bandwidth","path":"/orbien/docs/features/bandwidth","sidebar":"docsSidebar"},{"id":"features/dashboard","path":"/orbien/docs/features/dashboard","sidebar":"docsSidebar"},{"id":"features/proxy-bind","path":"/orbien/docs/features/proxy-bind","sidebar":"docsSidebar"},{"id":"features/real-ip","path":"/orbien/docs/features/real-ip","sidebar":"docsSidebar"},{"id":"integrations/springboot","path":"/orbien/docs/integrations/springboot","sidebar":"docsSidebar"},{"id":"intro","path":"/orbien/docs/intro","sidebar":"docsSidebar"},{"id":"license","path":"/orbien/docs/license","sidebar":"docsSidebar"},{"id":"performance","path":"/orbien/docs/performance","sidebar":"docsSidebar"},{"id":"proxies/http","path":"/orbien/docs/proxies/http","sidebar":"docsSidebar"},{"id":"proxies/https","path":"/orbien/docs/proxies/https","sidebar":"docsSidebar"},{"id":"proxies/tcp","path":"/orbien/docs/proxies/tcp","sidebar":"docsSidebar"},{"id":"proxies/udp","path":"/orbien/docs/proxies/udp","sidebar":"docsSidebar"},{"id":"proxies/vhost","path":"/orbien/docs/proxies/vhost","sidebar":"docsSidebar"},{"id":"quickstart","path":"/orbien/docs/quickstart","sidebar":"docsSidebar"},{"id":"roadmap","path":"/orbien/docs/roadmap","sidebar":"docsSidebar"},{"id":"transport/connect-pool","path":"/orbien/docs/transport/connect-pool","sidebar":"docsSidebar"},{"id":"transport/protocol/kcp","path":"/orbien/docs/transport/protocol/kcp","sidebar":"docsSidebar"},{"id":"transport/protocol/quic","path":"/orbien/docs/transport/protocol/quic","sidebar":"docsSidebar"},{"id":"transport/protocol/tcp","path":"/orbien/docs/transport/protocol/tcp","sidebar":"docsSidebar"},{"id":"transport/protocol/websocket","path":"/orbien/docs/transport/protocol/websocket","sidebar":"docsSidebar"},{"id":"transport/tcp-mux","path":"/orbien/docs/transport/tcp-mux","sidebar":"docsSidebar"},{"id":"transport/tls","path":"/orbien/docs/transport/tls","sidebar":"docsSidebar"}],"draftIds":[],"sidebars":{"docsSidebar":{"link":{"path":"/orbien/docs/intro","label":"\u4ECB\u7ECD"}}}}],"breadcrumbs":true}}}'),l=JSON.parse('{"defaultLocale":"zh-Hans","locales":["zh-Hans"],"path":"i18n","currentLocale":"zh-Hans","localeConfigs":{"zh-Hans":{"label":"\u7B80\u4F53\u4E2D\u6587","direction":"ltr","htmlLang":"zh-Hans","calendar":"gregory","path":"zh-Hans","translate":false,"url":"https://orbien-org.github.io","baseUrl":"/orbien/"}}}'),s=n(2654),u=JSON.parse('{"docusaurusVersion":"3.10.2","siteVersion":"2.1.0","pluginVersions":{"docusaurus-plugin-css-cascade-layers":{"type":"package","name":"@docusaurus/plugin-css-cascade-layers","version":"3.10.2"},"docusaurus-plugin-content-docs":{"type":"package","name":"@docusaurus/plugin-content-docs","version":"3.10.2"},"docusaurus-plugin-content-pages":{"type":"package","name":"@docusaurus/plugin-content-pages","version":"3.10.2"},"docusaurus-plugin-sitemap":{"type":"package","name":"@docusaurus/plugin-sitemap","version":"3.10.2"},"docusaurus-plugin-svgr":{"type":"package","name":"@docusaurus/plugin-svgr","version":"3.10.2"},"docusaurus-theme-classic":{"type":"package","name":"@docusaurus/theme-classic","version":"3.10.2"}}}');let c={siteConfig:o.default,siteMetadata:u,globalData:i,i18n:l,codeTranslations:s},d=a.createContext(c);function f({children:e}){return(0,r.jsx)(d.Provider,{value:c,children:e})}},9047(e,t,n){"use strict";n.d(t,{A:()=>m});var r=n(1987),a=n(1763),o=n(4619),i=n(7634),l=n(2455),s=n(6819),u=n(9648);function c({error:e,tryAgain:t}){return(0,r.jsxs)("div",{style:{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"flex-start",minHeight:"100vh",width:"100%",maxWidth:"80ch",fontSize:"20px",margin:"0 auto",padding:"1rem"},children:[(0,r.jsx)("h1",{style:{fontSize:"3rem"},children:"This page crashed"}),(0,r.jsx)("button",{type:"button",onClick:t,style:{margin:"1rem 0",fontSize:"2rem",cursor:"pointer",borderRadius:20,padding:"1rem"},children:"Try again"}),(0,r.jsx)(d,{error:e})]})}function d({error:e}){let t=(0,l.getErrorCausalChain)(e).map(e=>e.message).join("\n\nCause:\n");return(0,r.jsx)("p",{style:{whiteSpace:"pre-wrap"},children:t})}function f({children:e}){return(0,r.jsx)(u.W,{value:{plugin:{name:"docusaurus-core-error-boundary",id:"default"}},children:e})}function p({error:e,tryAgain:t}){return(0,r.jsx)(f,{children:(0,r.jsxs)(m,{fallback:()=>(0,r.jsx)(c,{error:e,tryAgain:t}),children:[(0,r.jsx)(i.A,{children:(0,r.jsx)("title",{children:"Page Error"})}),(0,r.jsx)(s.A,{children:(0,r.jsx)(c,{error:e,tryAgain:t})})]})})}class m extends a.Component{constructor(e){super(e),this.state={error:null}}componentDidCatch(e){o.A.canUseDOM&&this.setState({error:e})}render(){let{children:e}=this.props,{error:t}=this.state;return t?(this.props.fallback??(e=>(0,r.jsx)(p,{...e})))({error:t,tryAgain:()=>this.setState({error:null})}):e??null}}},4619(e,t,n){"use strict";n.d(t,{A:()=>a});let r="u">typeof window&&"document"in window&&"createElement"in window.document,a={canUseDOM:r,canUseEventListeners:r&&("addEventListener"in window||"attachEvent"in window),canUseIntersectionObserver:r&&"IntersectionObserver"in window,canUseViewport:r&&"screen"in window}},7634(e,t,n){"use strict";n.d(t,{A:()=>o});var r=n(1987);n(1763);var a=n(9883);function o(e){return(0,r.jsx)(a.mg,{...e})}},7364(e,t,n){"use strict";n.d(t,{A:()=>f});var r=n(1987),a=n(1763),o=n(5399),i=n(2455),l=n(5484),s=n(2236),u=n(4619),c=n(4216),d=n(319);let f=a.forwardRef(function({isNavLink:e,to:t,href:n,activeClassName:f,isActive:p,"data-noBrokenLinkCheck":m,autoAddBaseUrl:h=!0,...g},y){var b;let{siteConfig:v}=(0,l.A)(),{trailingSlash:w,baseUrl:k}=v,x=v.future.experimental_router,{withBaseUrl:S}=(0,d.hH)(),E=(0,c.A)(),_=(0,a.useRef)(null);(0,a.useImperativeHandle)(y,()=>_.current);let A=t||n,C=(0,s.A)(A),T=A?.replace("pathname://",""),P=void 0!==T?(b=T,h&&b.startsWith("/")?S(b):b):void 0;"hash"===x&&P?.startsWith("./")&&(P=P?.slice(1)),P&&C&&(P=(0,i.applyTrailingSlash)(P,{trailingSlash:w,baseUrl:k}));let O=(0,a.useRef)(!1),L=e?o.k2:o.N_,N=u.A.canUseIntersectionObserver,j=(0,a.useRef)(void 0),R=()=>{O.current||null==P||(window.docusaurus.preload(P),O.current=!0)};(0,a.useEffect)(()=>(!N&&C&&u.A.canUseDOM&&null!=P&&window.docusaurus.prefetch(P),()=>{N&&j.current&&j.current.disconnect()}),[j,P,N,C]);let I=P?.startsWith("#")??!1,D=!g.target||"_self"===g.target,F=!P||!C||!D||I&&"hash"!==x;m||!I&&F||E.collectLink(P),g.id&&E.collectAnchor(g.id);let z={};return F?(0,r.jsx)("a",{ref:_,href:P,...A&&!C&&{target:"_blank",rel:"noopener noreferrer"},...g,...z}):(0,r.jsx)(L,{...g,onMouseEnter:R,onTouchStart:R,innerRef:e=>{_.current=e,N&&e&&C&&(j.current=new window.IntersectionObserver(t=>{t.forEach(t=>{e===t.target&&(t.isIntersecting||t.intersectionRatio>0)&&(j.current.unobserve(e),j.current.disconnect(),null!=P&&window.docusaurus.prefetch(P))})}),j.current.observe(e))},to:P,...e&&{isActive:p,activeClassName:f},...z})})},116(e,t,n){"use strict";n.d(t,{A:()=>r});let r=()=>null},6475(e,t,n){"use strict";n.d(t,{A:()=>u,T:()=>s});var r=n(1987),a=n(1763);function o(e,t){let n=e.split(/(\{\w+\})/).map((e,n)=>{if(n%2==1){let n=t?.[e.slice(1,-1)];if(void 0!==n)return n}return e});return n.some(e=>(0,a.isValidElement)(e))?n.map((e,t)=>(0,a.isValidElement)(e)?a.cloneElement(e,{key:t}):e).filter(e=>""!==e):n.join("")}var i=n(2654);function l({id:e,message:t}){if(void 0===e&&void 0===t)throw Error("Docusaurus translation declarations must have at least a translation id or a default translation message");return i[e??t]??t??e}function s({message:e,id:t},n){return o(l({message:e,id:t}),n)}function u({children:e,id:t,values:n}){if(e&&"string"!=typeof e)throw console.warn("Illegal children",e),Error("The Docusaurus component only accept simple string values");let a=l({message:e,id:t});return(0,r.jsx)(r.Fragment,{children:o(a,n)})}},8595(e,t,n){"use strict";n.d(t,{W:()=>r});let r="default"},2236(e,t,n){"use strict";function r(e){return/^(?:[A-Za-z][A-Za-z\d+.-]*:|\/\/)/.test(e)}function a(e){return void 0!==e&&!r(e)}n.d(t,{A:()=>a,z:()=>r})},319(e,t,n){"use strict";n.d(t,{Ay:()=>l,hH:()=>i});var r=n(1763),a=n(5484),o=n(2236);function i(){let{siteConfig:e}=(0,a.A)(),{baseUrl:t,url:n}=e,i=e.future.experimental_router;return{withBaseUrl:(0,r.useCallback)((e,r)=>(function({siteUrl:e,baseUrl:t,url:n,options:{forcePrependBaseUrl:r=!1,absolute:a=!1}={},router:i}){if(!n||n.startsWith("#")||(0,o.z)(n))return n;if("hash"===i)return n.startsWith("/")?`.${n}`:`./${n}`;if(r)return t+n.replace(/^\//,"");if(n===t.replace(/\/$/,""))return t;let l=n.startsWith(t)?n:t+n.replace(/^\//,"");return a?e+l:l})({siteUrl:n,baseUrl:t,url:e,options:r,router:i}),[n,t,i])}}function l(e,t={}){let{withBaseUrl:n}=i();return n(e,t)}},4216(e,t,n){"use strict";n.d(t,{A:()=>o}),n(1987);var r=n(1763);let a=r.createContext({collectAnchor:()=>{},collectLink:()=>{}});function o(){return(0,r.useContext)(a)}},5484(e,t,n){"use strict";n.d(t,{A:()=>o});var r=n(1763),a=n(3235);function o(){return(0,r.useContext)(a.o)}},8261(e,t,n){"use strict";n.d(t,{A:()=>o});var r=n(1763),a=n(4607);function o(){return(0,r.useContext)(a.o)}},9879(e,t,n){"use strict";n.d(t,{A:()=>a});var r=n(1763);let a=n(4619).A.canUseDOM?r.useLayoutEffect:r.useEffect},7581(e,t,n){"use strict";n.d(t,{A:()=>o});var r=n(1763),a=n(9648);function o(){let e=r.useContext(a.o);if(!e)throw Error("Unexpected: no Docusaurus route context found");return e}},8115(e,t,n){"use strict";function r(e){let t={};return!function e(n,r){Object.entries(n).forEach(([n,a])=>{let o=r?`${r}.${n}`:n;"object"==typeof a&&a&&Object.keys(a).length>0?e(a,o):t[o]=a})}(e),t}n.d(t,{A:()=>r})},9648(e,t,n){"use strict";n.d(t,{W:()=>i,o:()=>o});var r=n(1987),a=n(1763);let o=a.createContext(null);function i({children:e,value:t}){let n=a.useContext(o),l=(0,a.useMemo)(()=>(function({parent:e,value:t}){if(!e){if(t){if(!("plugin"in t))throw Error("Unexpected: Docusaurus topmost route context has no `plugin` attribute")}else throw Error("Unexpected: no Docusaurus route context found");return t}let n={...e.data,...t?.data};return{plugin:e.plugin,data:n}})({parent:n,value:t}),[n,t]);return(0,r.jsx)(o.Provider,{value:l,children:e})}},4806(e,t,n){"use strict";n.d(t,{VQ:()=>p,g1:()=>m});var r=n(1987),a=n(1763),o=n(9678),i=n(8595),l=n(8168),s=n(8184),u=n(7850);let c=e=>`docs-preferred-version-${e}`,d=a.createContext(null);function f({children:e}){let t=function(){let e=(0,o.Gy)(),t=(0,l.p)().docs.versionPersistence,n=(0,a.useMemo)(()=>Object.keys(e),[e]),[r,i]=(0,a.useState)(()=>Object.fromEntries(n.map(e=>[e,{preferredVersionName:null}])));return(0,a.useEffect)(()=>{i(function({pluginIds:e,versionPersistence:t,allDocsData:n}){return Object.fromEntries(e.map(e=>{var r,a;let o,i,l;return[e,(i=e,l=t,o=(0,s.Wf)(c(i),{persistence:l}).get(),n[e].versions.some(e=>e.name===o)?{preferredVersionName:o}:(r=e,a=t,(0,s.Wf)(c(r),{persistence:a}).del(),{preferredVersionName:null}))]}))}({allDocsData:e,versionPersistence:t,pluginIds:n}))},[e,t,n]),[r,(0,a.useMemo)(()=>({savePreferredVersion:function(e,n){var r,a,o;r=e,a=t,o=n,(0,s.Wf)(c(r),{persistence:a}).set(o),i(t=>({...t,[e]:{preferredVersionName:n}}))}}),[t])]}();return(0,r.jsx)(d.Provider,{value:t,children:e})}function p({children:e}){return(0,r.jsx)(f,{children:e})}function m(e=i.W){let t=(0,o.ht)(e),[n,r]=function(){let e=(0,a.useContext)(d);if(!e)throw new u.dV("DocsPreferredVersionContextProvider");return e}(),{preferredVersionName:l}=n[e];return{preferredVersion:t.versions.find(e=>e.name===l)??null,savePreferredVersionName:(0,a.useCallback)(t=>{r.savePreferredVersion(e,t)},[r,e])}}},345(e,t,n){"use strict";n.d(t,{V:()=>s,t:()=>u});var r=n(1987),a=n(1763),o=n(7850);let i=Symbol("EmptyContext"),l=a.createContext(i);function s({children:e,name:t,items:n}){let o=(0,a.useMemo)(()=>t&&n?{name:t,items:n}:null,[t,n]);return(0,r.jsx)(l.Provider,{value:o,children:e})}function u(){let e=(0,a.useContext)(l);if(e===i)throw new o.dV("DocsSidebarProvider");return e}},8484(e,t,n){"use strict";n.d(t,{B5:()=>v,Nr:()=>function e(t){if("link"===t.type&&!t.unlisted)return t.href;if("category"===t.type){if(t.href&&!t.linkUnlisted)return t.href;for(let n of t.items){let t=e(n);if(t)return t}return}},OF:()=>h,QB:()=>b,Vd:()=>g,Y:()=>m,fW:()=>y,w8:()=>p});var r=n(1763),a=n(6532),o=n(6345),i=n(9678),l=n(7711),s=n(8292),u=n(4806),c=n(73),d=n(345);let f=(e,t)=>void 0!==e&&(0,l.ys)(e,t);function p(e,t){if("link"===e.type)return f(e.href,t);if("category"===e.type){let n;return f(e.href,t)||(n=e.items,n.some(e=>p(e,t)))}return!1}function m(e,t){return(0,r.useMemo)(()=>e.filter(e=>(function e(t,n){switch(t.type){case"category":return p(t,n)||void 0!==t.href&&!t.linkUnlisted||t.items.some(t=>e(t,n));case"link":return!t.unlisted||p(t,n);default:return!0}})(e,t)),[e,t])}function h(){let e=(0,d.t)(),{pathname:t}=(0,a.zy)();return!1!==(0,i.vT)()?.pluginData.breadcrumbs&&e?function({sidebarItems:e,pathname:t,onlyCategories:n=!1}){let r=[];return!function e(a){for(let o of a)if("category"===o.type){if((0,l.ys)(o.href,t)||e(o.items))return r.unshift(o),!0}else if("link"===o.type&&o.docId&&(0,l.ys)(o.href,t))return n||r.unshift(o),!0;return!1}(e),r}({sidebarItems:e.items,pathname:t}):null}function g(e){let{activeVersion:t}=(0,i.zK)(e),{preferredVersion:n}=(0,u.g1)(e),a=(0,i.r7)(e);return(0,r.useMemo)(()=>(0,s.sb)([t,n,a].filter(Boolean)),[t,n,a])}function y(e,t){let n=g(t);return(0,r.useMemo)(()=>{let t=n.flatMap(e=>e.sidebars?Object.entries(e.sidebars):[]),r=t.find(t=>t[0]===e);if(!r)throw Error(`Can't find any sidebar with id "${e}" in version${n.length>1?"s":""} ${n.map(e=>e.name).join(", ")}". +`})})})}function $(){let{siteConfig:{baseUrl:e,baseUrlIssueBanner:t}}=(0,w.A)(),{pathname:n}=(0,f.zy)();return t&&n===e?(0,r.jsx)(M,{}):null}function B(){let{siteConfig:{favicon:e,title:t,noIndex:n},i18n:{currentLocale:a,localeConfigs:o}}=(0,w.A)(),i=(0,k.Ay)(e),{htmlLang:l,direction:s}=o[a];return(0,r.jsxs)(v.A,{children:[(0,r.jsx)("html",{lang:l,dir:s}),(0,r.jsx)("title",{children:t}),(0,r.jsx)("meta",{property:"og:title",content:t}),(0,r.jsx)("meta",{name:"viewport",content:"width=device-width, initial-scale=1.0"}),n&&(0,r.jsx)("meta",{name:"robots",content:"noindex, nofollow"}),e&&(0,r.jsx)("link",{rel:"icon",href:i})]})}var U=n(9047),H=n(8261);function V(){let e=(0,H.A)();return(0,r.jsx)(v.A,{children:(0,r.jsx)("html",{"data-has-hydrated":e})})}let W=(0,p.v)(d.A);function q(){let e=function(e){if(O.has(e.pathname))return{...e,pathname:O.get(e.pathname)};if((0,p.u)(d.A,e.pathname).some(({route:e})=>!0===e.exact))return O.set(e.pathname,e.pathname),e;let t=e.pathname.trim().replace(/(?:\/index)?\.html$/,"")||"/";return O.set(e.pathname,t),{...e,pathname:t}}((0,f.zy)());return(0,r.jsx)(F,{location:e,children:W})}var G=n(4054);let Y=!function(e){try{return document.createElement("link").relList.supports(e)}catch{return!1}}("prefetch")?function(e){return new Promise((t,n)=>{let r=new XMLHttpRequest;r.open("GET",e,!0),r.withCredentials=!0,r.onload=()=>{200===r.status?t():n()},r.send(null)})}:function(e){return new Promise((t,n)=>{if("u"t(),r.onerror=()=>n();let a=document.getElementsByTagName("head")[0]??document.getElementsByName("script")[0]?.parentNode;a?.appendChild(r)})};var K=n(8115);let Q=new Set,Z=new Set,X=()=>navigator.connection?.effectiveType.includes("2g")||navigator.connection?.saveData,J=Object.freeze({prefetch:e=>!(X()||Z.has(e)||Q.has(e))&&(Q.add(e),Promise.all((0,p.u)(d.A,e).flatMap(e=>{let t;return t=e.route.path,Object.entries(G).filter(([e])=>e.replace(/-[^-]+$/,"")===t).flatMap(([,e])=>Object.values((0,K.A)(e)))}).map(e=>{let t=n.gca(e);return t&&!t.includes("undefined")?Y(t).catch(()=>{}):Promise.resolve()}))),preload:e=>!(X()||Z.has(e))&&(Z.add(e),D(e))});if(u.A.canUseDOM){window.docusaurus=J;let e=document.getElementById("__docusaurus"),t=(0,r.jsx)(i.vd,{children:(0,r.jsx)(function({children:e}){return"hash"===s.default.future.experimental_router?(0,r.jsx)(l.I9,{children:e}):(0,r.jsx)(l.Kd,{children:e})},{children:(0,r.jsx)(function(){return(0,r.jsx)(U.A,{children:(0,r.jsx)(N.l,{children:(0,r.jsxs)(L.x,{children:[(0,r.jsx)(m,{children:(0,r.jsxs)(y,{children:[(0,r.jsx)(B,{}),(0,r.jsx)(P,{}),(0,r.jsx)($,{}),(0,r.jsx)(q,{})]})}),(0,r.jsx)(V,{})]})})})},{})})}),n=(e,t)=>{console.error("Docusaurus React Root onRecoverableError:",e,t)},u=()=>{window.docusaurusRoot?window.docusaurusRoot.render(t):window.docusaurusRoot=o.hydrateRoot(e,t,{onRecoverableError:n})};D(window.location.pathname).then(()=>{(0,a.startTransition)(u)})}},3235(e,t,n){"use strict";n.d(t,{l:()=>f,o:()=>d});var r=n(1987),a=n(1763),o=n(4784),i=JSON.parse('{"docusaurus-plugin-content-docs":{"default":{"path":"/orbien/docs","versions":[{"name":"current","label":"Next","isLast":true,"path":"/orbien/docs","mainDocId":"intro","docs":[{"id":"community","path":"/orbien/docs/community","sidebar":"docsSidebar"},{"id":"docker","path":"/orbien/docs/docker","sidebar":"docsSidebar"},{"id":"download","path":"/orbien/docs/download","sidebar":"docsSidebar"},{"id":"features/authentication","path":"/orbien/docs/features/authentication","sidebar":"docsSidebar"},{"id":"features/bandwidth","path":"/orbien/docs/features/bandwidth","sidebar":"docsSidebar"},{"id":"features/dashboard","path":"/orbien/docs/features/dashboard","sidebar":"docsSidebar"},{"id":"features/public-bind","path":"/orbien/docs/features/public-bind","sidebar":"docsSidebar"},{"id":"features/real-ip","path":"/orbien/docs/features/real-ip","sidebar":"docsSidebar"},{"id":"integrations/springboot","path":"/orbien/docs/integrations/springboot","sidebar":"docsSidebar"},{"id":"intro","path":"/orbien/docs/intro","sidebar":"docsSidebar"},{"id":"license","path":"/orbien/docs/license","sidebar":"docsSidebar"},{"id":"performance","path":"/orbien/docs/performance","sidebar":"docsSidebar"},{"id":"quickstart","path":"/orbien/docs/quickstart","sidebar":"docsSidebar"},{"id":"roadmap","path":"/orbien/docs/roadmap","sidebar":"docsSidebar"},{"id":"transport/connect-pool","path":"/orbien/docs/transport/connect-pool","sidebar":"docsSidebar"},{"id":"transport/protocol/kcp","path":"/orbien/docs/transport/protocol/kcp","sidebar":"docsSidebar"},{"id":"transport/protocol/quic","path":"/orbien/docs/transport/protocol/quic","sidebar":"docsSidebar"},{"id":"transport/protocol/tcp","path":"/orbien/docs/transport/protocol/tcp","sidebar":"docsSidebar"},{"id":"transport/protocol/websocket","path":"/orbien/docs/transport/protocol/websocket","sidebar":"docsSidebar"},{"id":"transport/tcp-mux","path":"/orbien/docs/transport/tcp-mux","sidebar":"docsSidebar"},{"id":"transport/tls","path":"/orbien/docs/transport/tls","sidebar":"docsSidebar"},{"id":"tunnels/domains","path":"/orbien/docs/tunnels/domains","sidebar":"docsSidebar"},{"id":"tunnels/http","path":"/orbien/docs/tunnels/http","sidebar":"docsSidebar"},{"id":"tunnels/https","path":"/orbien/docs/tunnels/https","sidebar":"docsSidebar"},{"id":"tunnels/tcp","path":"/orbien/docs/tunnels/tcp","sidebar":"docsSidebar"},{"id":"tunnels/udp","path":"/orbien/docs/tunnels/udp","sidebar":"docsSidebar"}],"draftIds":[],"sidebars":{"docsSidebar":{"link":{"path":"/orbien/docs/intro","label":"\u4ECB\u7ECD"}}}}],"breadcrumbs":true}}}'),l=JSON.parse('{"defaultLocale":"zh-Hans","locales":["zh-Hans","en"],"path":"i18n","currentLocale":"zh-Hans","localeConfigs":{"zh-Hans":{"label":"\u4E2D\u6587","direction":"ltr","htmlLang":"zh-CN","calendar":"gregory","path":"zh-Hans","translate":false,"url":"https://orbien-org.github.io","baseUrl":"/orbien/"},"en":{"label":"English","direction":"ltr","htmlLang":"en","calendar":"gregory","path":"en","translate":true,"url":"https://orbien-org.github.io","baseUrl":"/orbien/en/"}}}'),s=n(2654),u=JSON.parse('{"docusaurusVersion":"3.10.2","siteVersion":"3.0.0","pluginVersions":{"docusaurus-plugin-css-cascade-layers":{"type":"package","name":"@docusaurus/plugin-css-cascade-layers","version":"3.10.2"},"docusaurus-plugin-content-docs":{"type":"package","name":"@docusaurus/plugin-content-docs","version":"3.10.2"},"docusaurus-plugin-content-pages":{"type":"package","name":"@docusaurus/plugin-content-pages","version":"3.10.2"},"docusaurus-plugin-sitemap":{"type":"package","name":"@docusaurus/plugin-sitemap","version":"3.10.2"},"docusaurus-plugin-svgr":{"type":"package","name":"@docusaurus/plugin-svgr","version":"3.10.2"},"docusaurus-theme-classic":{"type":"package","name":"@docusaurus/theme-classic","version":"3.10.2"}}}');let c={siteConfig:o.default,siteMetadata:u,globalData:i,i18n:l,codeTranslations:s},d=a.createContext(c);function f({children:e}){return(0,r.jsx)(d.Provider,{value:c,children:e})}},9047(e,t,n){"use strict";n.d(t,{A:()=>m});var r=n(1987),a=n(1763),o=n(4619),i=n(7634),l=n(2455),s=n(6819),u=n(9648);function c({error:e,tryAgain:t}){return(0,r.jsxs)("div",{style:{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"flex-start",minHeight:"100vh",width:"100%",maxWidth:"80ch",fontSize:"20px",margin:"0 auto",padding:"1rem"},children:[(0,r.jsx)("h1",{style:{fontSize:"3rem"},children:"This page crashed"}),(0,r.jsx)("button",{type:"button",onClick:t,style:{margin:"1rem 0",fontSize:"2rem",cursor:"pointer",borderRadius:20,padding:"1rem"},children:"Try again"}),(0,r.jsx)(d,{error:e})]})}function d({error:e}){let t=(0,l.getErrorCausalChain)(e).map(e=>e.message).join("\n\nCause:\n");return(0,r.jsx)("p",{style:{whiteSpace:"pre-wrap"},children:t})}function f({children:e}){return(0,r.jsx)(u.W,{value:{plugin:{name:"docusaurus-core-error-boundary",id:"default"}},children:e})}function p({error:e,tryAgain:t}){return(0,r.jsx)(f,{children:(0,r.jsxs)(m,{fallback:()=>(0,r.jsx)(c,{error:e,tryAgain:t}),children:[(0,r.jsx)(i.A,{children:(0,r.jsx)("title",{children:"Page Error"})}),(0,r.jsx)(s.A,{children:(0,r.jsx)(c,{error:e,tryAgain:t})})]})})}class m extends a.Component{constructor(e){super(e),this.state={error:null}}componentDidCatch(e){o.A.canUseDOM&&this.setState({error:e})}render(){let{children:e}=this.props,{error:t}=this.state;return t?(this.props.fallback??(e=>(0,r.jsx)(p,{...e})))({error:t,tryAgain:()=>this.setState({error:null})}):e??null}}},4619(e,t,n){"use strict";n.d(t,{A:()=>a});let r="u">typeof window&&"document"in window&&"createElement"in window.document,a={canUseDOM:r,canUseEventListeners:r&&("addEventListener"in window||"attachEvent"in window),canUseIntersectionObserver:r&&"IntersectionObserver"in window,canUseViewport:r&&"screen"in window}},7634(e,t,n){"use strict";n.d(t,{A:()=>o});var r=n(1987);n(1763);var a=n(9883);function o(e){return(0,r.jsx)(a.mg,{...e})}},7364(e,t,n){"use strict";n.d(t,{A:()=>f});var r=n(1987),a=n(1763),o=n(5399),i=n(2455),l=n(5484),s=n(2236),u=n(4619),c=n(4216),d=n(319);let f=a.forwardRef(function({isNavLink:e,to:t,href:n,activeClassName:f,isActive:p,"data-noBrokenLinkCheck":m,autoAddBaseUrl:h=!0,...g},b){var y;let{siteConfig:v}=(0,l.A)(),{trailingSlash:w,baseUrl:k}=v,x=v.future.experimental_router,{withBaseUrl:S}=(0,d.hH)(),E=(0,c.A)(),_=(0,a.useRef)(null);(0,a.useImperativeHandle)(b,()=>_.current);let A=t||n,C=(0,s.A)(A),T=A?.replace("pathname://",""),P=void 0!==T?(y=T,h&&y.startsWith("/")?S(y):y):void 0;"hash"===x&&P?.startsWith("./")&&(P=P?.slice(1)),P&&C&&(P=(0,i.applyTrailingSlash)(P,{trailingSlash:w,baseUrl:k}));let O=(0,a.useRef)(!1),L=e?o.k2:o.N_,N=u.A.canUseIntersectionObserver,j=(0,a.useRef)(void 0),R=()=>{O.current||null==P||(window.docusaurus.preload(P),O.current=!0)};(0,a.useEffect)(()=>(!N&&C&&u.A.canUseDOM&&null!=P&&window.docusaurus.prefetch(P),()=>{N&&j.current&&j.current.disconnect()}),[j,P,N,C]);let I=P?.startsWith("#")??!1,D=!g.target||"_self"===g.target,F=!P||!C||!D||I&&"hash"!==x;m||!I&&F||E.collectLink(P),g.id&&E.collectAnchor(g.id);let z={};return F?(0,r.jsx)("a",{ref:_,href:P,...A&&!C&&{target:"_blank",rel:"noopener noreferrer"},...g,...z}):(0,r.jsx)(L,{...g,onMouseEnter:R,onTouchStart:R,innerRef:e=>{_.current=e,N&&e&&C&&(j.current=new window.IntersectionObserver(t=>{t.forEach(t=>{e===t.target&&(t.isIntersecting||t.intersectionRatio>0)&&(j.current.unobserve(e),j.current.disconnect(),null!=P&&window.docusaurus.prefetch(P))})}),j.current.observe(e))},to:P,...e&&{isActive:p,activeClassName:f},...z})})},116(e,t,n){"use strict";n.d(t,{A:()=>r});let r=()=>null},6475(e,t,n){"use strict";n.d(t,{A:()=>u,T:()=>s});var r=n(1987),a=n(1763);function o(e,t){let n=e.split(/(\{\w+\})/).map((e,n)=>{if(n%2==1){let n=t?.[e.slice(1,-1)];if(void 0!==n)return n}return e});return n.some(e=>(0,a.isValidElement)(e))?n.map((e,t)=>(0,a.isValidElement)(e)?a.cloneElement(e,{key:t}):e).filter(e=>""!==e):n.join("")}var i=n(2654);function l({id:e,message:t}){if(void 0===e&&void 0===t)throw Error("Docusaurus translation declarations must have at least a translation id or a default translation message");return i[e??t]??t??e}function s({message:e,id:t},n){return o(l({message:e,id:t}),n)}function u({children:e,id:t,values:n}){if(e&&"string"!=typeof e)throw console.warn("Illegal children",e),Error("The Docusaurus component only accept simple string values");let a=l({message:e,id:t});return(0,r.jsx)(r.Fragment,{children:o(a,n)})}},8595(e,t,n){"use strict";n.d(t,{W:()=>r});let r="default"},2236(e,t,n){"use strict";function r(e){return/^(?:[A-Za-z][A-Za-z\d+.-]*:|\/\/)/.test(e)}function a(e){return void 0!==e&&!r(e)}n.d(t,{A:()=>a,z:()=>r})},319(e,t,n){"use strict";n.d(t,{Ay:()=>l,hH:()=>i});var r=n(1763),a=n(5484),o=n(2236);function i(){let{siteConfig:e}=(0,a.A)(),{baseUrl:t,url:n}=e,i=e.future.experimental_router;return{withBaseUrl:(0,r.useCallback)((e,r)=>(function({siteUrl:e,baseUrl:t,url:n,options:{forcePrependBaseUrl:r=!1,absolute:a=!1}={},router:i}){if(!n||n.startsWith("#")||(0,o.z)(n))return n;if("hash"===i)return n.startsWith("/")?`.${n}`:`./${n}`;if(r)return t+n.replace(/^\//,"");if(n===t.replace(/\/$/,""))return t;let l=n.startsWith(t)?n:t+n.replace(/^\//,"");return a?e+l:l})({siteUrl:n,baseUrl:t,url:e,options:r,router:i}),[n,t,i])}}function l(e,t={}){let{withBaseUrl:n}=i();return n(e,t)}},4216(e,t,n){"use strict";n.d(t,{A:()=>o}),n(1987);var r=n(1763);let a=r.createContext({collectAnchor:()=>{},collectLink:()=>{}});function o(){return(0,r.useContext)(a)}},5484(e,t,n){"use strict";n.d(t,{A:()=>o});var r=n(1763),a=n(3235);function o(){return(0,r.useContext)(a.o)}},8261(e,t,n){"use strict";n.d(t,{A:()=>o});var r=n(1763),a=n(4607);function o(){return(0,r.useContext)(a.o)}},9879(e,t,n){"use strict";n.d(t,{A:()=>a});var r=n(1763);let a=n(4619).A.canUseDOM?r.useLayoutEffect:r.useEffect},7581(e,t,n){"use strict";n.d(t,{A:()=>o});var r=n(1763),a=n(9648);function o(){let e=r.useContext(a.o);if(!e)throw Error("Unexpected: no Docusaurus route context found");return e}},8115(e,t,n){"use strict";function r(e){let t={};return!function e(n,r){Object.entries(n).forEach(([n,a])=>{let o=r?`${r}.${n}`:n;"object"==typeof a&&a&&Object.keys(a).length>0?e(a,o):t[o]=a})}(e),t}n.d(t,{A:()=>r})},9648(e,t,n){"use strict";n.d(t,{W:()=>i,o:()=>o});var r=n(1987),a=n(1763);let o=a.createContext(null);function i({children:e,value:t}){let n=a.useContext(o),l=(0,a.useMemo)(()=>(function({parent:e,value:t}){if(!e){if(t){if(!("plugin"in t))throw Error("Unexpected: Docusaurus topmost route context has no `plugin` attribute")}else throw Error("Unexpected: no Docusaurus route context found");return t}let n={...e.data,...t?.data};return{plugin:e.plugin,data:n}})({parent:n,value:t}),[n,t]);return(0,r.jsx)(o.Provider,{value:l,children:e})}},4806(e,t,n){"use strict";n.d(t,{VQ:()=>p,g1:()=>m});var r=n(1987),a=n(1763),o=n(9678),i=n(8595),l=n(8168),s=n(8184),u=n(7850);let c=e=>`docs-preferred-version-${e}`,d=a.createContext(null);function f({children:e}){let t=function(){let e=(0,o.Gy)(),t=(0,l.p)().docs.versionPersistence,n=(0,a.useMemo)(()=>Object.keys(e),[e]),[r,i]=(0,a.useState)(()=>Object.fromEntries(n.map(e=>[e,{preferredVersionName:null}])));return(0,a.useEffect)(()=>{i(function({pluginIds:e,versionPersistence:t,allDocsData:n}){return Object.fromEntries(e.map(e=>{var r,a;let o,i,l;return[e,(i=e,l=t,o=(0,s.Wf)(c(i),{persistence:l}).get(),n[e].versions.some(e=>e.name===o)?{preferredVersionName:o}:(r=e,a=t,(0,s.Wf)(c(r),{persistence:a}).del(),{preferredVersionName:null}))]}))}({allDocsData:e,versionPersistence:t,pluginIds:n}))},[e,t,n]),[r,(0,a.useMemo)(()=>({savePreferredVersion:function(e,n){var r,a,o;r=e,a=t,o=n,(0,s.Wf)(c(r),{persistence:a}).set(o),i(t=>({...t,[e]:{preferredVersionName:n}}))}}),[t])]}();return(0,r.jsx)(d.Provider,{value:t,children:e})}function p({children:e}){return(0,r.jsx)(f,{children:e})}function m(e=i.W){let t=(0,o.ht)(e),[n,r]=function(){let e=(0,a.useContext)(d);if(!e)throw new u.dV("DocsPreferredVersionContextProvider");return e}(),{preferredVersionName:l}=n[e];return{preferredVersion:t.versions.find(e=>e.name===l)??null,savePreferredVersionName:(0,a.useCallback)(t=>{r.savePreferredVersion(e,t)},[r,e])}}},345(e,t,n){"use strict";n.d(t,{V:()=>s,t:()=>u});var r=n(1987),a=n(1763),o=n(7850);let i=Symbol("EmptyContext"),l=a.createContext(i);function s({children:e,name:t,items:n}){let o=(0,a.useMemo)(()=>t&&n?{name:t,items:n}:null,[t,n]);return(0,r.jsx)(l.Provider,{value:o,children:e})}function u(){let e=(0,a.useContext)(l);if(e===i)throw new o.dV("DocsSidebarProvider");return e}},8484(e,t,n){"use strict";n.d(t,{B5:()=>v,Nr:()=>function e(t){if("link"===t.type&&!t.unlisted)return t.href;if("category"===t.type){if(t.href&&!t.linkUnlisted)return t.href;for(let n of t.items){let t=e(n);if(t)return t}return}},OF:()=>h,QB:()=>y,Vd:()=>g,Y:()=>m,fW:()=>b,w8:()=>p});var r=n(1763),a=n(6532),o=n(6345),i=n(9678),l=n(7711),s=n(8292),u=n(4806),c=n(73),d=n(345);let f=(e,t)=>void 0!==e&&(0,l.ys)(e,t);function p(e,t){if("link"===e.type)return f(e.href,t);if("category"===e.type){let n;return f(e.href,t)||(n=e.items,n.some(e=>p(e,t)))}return!1}function m(e,t){return(0,r.useMemo)(()=>e.filter(e=>(function e(t,n){switch(t.type){case"category":return p(t,n)||void 0!==t.href&&!t.linkUnlisted||t.items.some(t=>e(t,n));case"link":return!t.unlisted||p(t,n);default:return!0}})(e,t)),[e,t])}function h(){let e=(0,d.t)(),{pathname:t}=(0,a.zy)();return!1!==(0,i.vT)()?.pluginData.breadcrumbs&&e?function({sidebarItems:e,pathname:t,onlyCategories:n=!1}){let r=[];return!function e(a){for(let o of a)if("category"===o.type){if((0,l.ys)(o.href,t)||e(o.items))return r.unshift(o),!0}else if("link"===o.type&&o.docId&&(0,l.ys)(o.href,t))return n||r.unshift(o),!0;return!1}(e),r}({sidebarItems:e.items,pathname:t}):null}function g(e){let{activeVersion:t}=(0,i.zK)(e),{preferredVersion:n}=(0,u.g1)(e),a=(0,i.r7)(e);return(0,r.useMemo)(()=>(0,s.sb)([t,n,a].filter(Boolean)),[t,n,a])}function b(e,t){let n=g(t);return(0,r.useMemo)(()=>{let t=n.flatMap(e=>e.sidebars?Object.entries(e.sidebars):[]),r=t.find(t=>t[0]===e);if(!r)throw Error(`Can't find any sidebar with id "${e}" in version${n.length>1?"s":""} ${n.map(e=>e.name).join(", ")}". Available sidebar ids are: -- ${t.map(e=>e[0]).join("\n- ")}`);return r[1]},[e,n])}function b(e,t){let n=g(t);return(0,r.useMemo)(()=>{let t=n.flatMap(e=>e.docs),r=t.find(t=>t.id===e);if(!r){if(n.flatMap(e=>e.draftIds).includes(e))return null;throw Error(`Couldn't find any doc with id "${e}" in version${n.length>1?"s":""} "${n.map(e=>e.name).join(", ")}". +- ${t.map(e=>e[0]).join("\n- ")}`);return r[1]},[e,n])}function y(e,t){let n=g(t);return(0,r.useMemo)(()=>{let t=n.flatMap(e=>e.docs),r=t.find(t=>t.id===e);if(!r){if(n.flatMap(e=>e.draftIds).includes(e))return null;throw Error(`Couldn't find any doc with id "${e}" in version${n.length>1?"s":""} "${n.map(e=>e.name).join(", ")}". Available doc ids are: -- ${(0,s.sb)(t.map(e=>e.id)).join("\n- ")}`)}return r},[e,n])}function v({route:e}){let t=(0,a.zy)(),n=(0,c.r)(),r=e.routes,i=r.find(e=>(0,a.B6)(t.pathname,e));if(!i)return null;let l=i.sidebar,s=l?n.docsSidebars[l]:void 0;return{docElement:(0,o.v)(r),sidebarName:l,sidebarItems:s}}},73(e,t,n){"use strict";n.d(t,{n:()=>l,r:()=>s});var r=n(1987),a=n(1763),o=n(7850);let i=a.createContext(null);function l({children:e,version:t}){return(0,r.jsx)(i.Provider,{value:t,children:e})}function s(){let e=(0,a.useContext)(i);if(null===e)throw new o.dV("DocsVersionProvider");return e}},9678(e,t,n){"use strict";n.d(t,{ht:()=>d,r7:()=>m,HW:()=>g,zK:()=>h,jh:()=>p,Gy:()=>c,vT:()=>f});var r=n(6532),a=n(5484),o=n(8595);function i(e,t={}){let n=function(){let{globalData:e}=(0,a.A)();return e}()[e];if(!n&&t.failfast)throw Error(`Docusaurus plugin global data not found for "${e}" plugin.`);return n}let l=e=>e.versions.find(e=>e.isLast);function s(e,t){var n;let a,o=[...e.versions].sort((e,t)=>e.path===t.path?0:e.path.includes(t.path)?-1:+!!t.path.includes(e.path)).find(e=>!!(0,r.B6)(t,{path:e.path,exact:!1,strict:!1})),i=o?.docs.find(e=>!!(0,r.B6)(t,{path:e.path,exact:!0,strict:!1})),l=i?(n=i.id,a={},e.versions.forEach(e=>{e.docs.forEach(t=>{t.id===n&&(a[e.name]=t)})}),a):{};return{activeVersion:o,activeDoc:i,alternateDocVersions:l}}let u={},c=()=>i("docusaurus-plugin-content-docs")??u,d=e=>{try{return function(e,t=o.W,n={}){let r=i(e),a=r?.[t];if(!a&&n.failfast)throw Error(`Docusaurus plugin global data not found for "${e}" plugin with id "${t}".`);return a}("docusaurus-plugin-content-docs",e,{failfast:!0})}catch(t){throw Error(`You are using a feature of the Docusaurus docs plugin, but this plugin does not seem to be enabled${"Default"===e?"":` (pluginId=${e}`}`,{cause:t})}};function f(e={}){let t=c(),{pathname:n}=(0,r.zy)();return function(e,t,n={}){let a=Object.entries(e).sort((e,t)=>t[1].path.localeCompare(e[1].path)).find(([,e])=>!!(0,r.B6)(t,{path:e.path,exact:!1,strict:!1})),o=a?{pluginId:a[0],pluginData:a[1]}:void 0;if(!o&&n.failfast)throw 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(e=>e.path).join(", ")}`);return o}(t,n,e)}function p(e){return d(e).versions}function m(e){return l(d(e))}function h(e){let t=d(e),{pathname:n}=(0,r.zy)();return s(t,n)}function g(e){let t,n=d(e),{pathname:a}=(0,r.zy)();return t=l(n),{latestDocSuggestion:s(n,a).alternateDocVersions[t.name],latestVersionSuggestion:t}}},182(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 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;to});var r=n(8744),a=n.n(r);a().configure({showSpinner:!1});let o={onRouteUpdate({location:e,previousLocation:t}){if(t&&e.pathname!==t.pathname){let e=window.setTimeout(()=>{a().start()},200);return()=>window.clearTimeout(e)}},onRouteDidUpdate(){a().done()}}},4389(e,t,n){"use strict";var r=n(7957),a=n(4784);!function(e){let{themeConfig:{prism:t}}=a.default,{additionalLanguages:r}=t,o=globalThis.Prism;globalThis.Prism=e,r.forEach(e=>{"php"===e&&n(8020),n(3295)(`./prism-${e}`)}),delete globalThis.Prism,void 0!==o&&(globalThis.Prism=e)}(r.My)},8241(e,t,n){"use strict";n.d(t,{A:()=>u});var r=n(1987);n(1763);var a=n(3526),o=n(6475),i=n(4409),l=n(7364),s=n(4216);function u({as:e,id:t,...n}){let c=(0,s.A)(),d=(0,i.v)(t);if("h1"===e||!t)return(0,r.jsx)(e,{...n,id:void 0});c.collectAnchor(t);let f=(0,o.T)({id:"theme.common.headingLinkTitle",message:"Direct link to {heading}",description:"Title for link to heading"},{heading:"string"==typeof n.children?n.children:t});return(0,r.jsxs)(e,{...n,className:(0,a.A)("anchor",d,n.className),id:t,children:[n.children,(0,r.jsx)(l.A,{className:"hash-link",to:`#${t}`,"aria-label":f,title:f,translate:"no",children:"\u200B"})]})}},5740(e,t,n){"use strict";n.d(t,{A:()=>o});var r=n(1987);n(1763);var a=n(6475);function o({width:e=13.5,height:t=13.5}){return(0,r.jsx)("svg",{width:e,height:t,"aria-label":(0,a.T)({id:"theme.IconExternalLink.ariaLabel",message:"(opens in new tab)",description:"The ARIA label for the external link icon"}),className:"iconExternalLink_zdlW",children:(0,r.jsx)("use",{href:"#theme-svg-external-link"})})}},6819(e,t,n){"use strict";n.d(t,{A:()=>eJ});var r=n(1987),a=n(1763),o=n(3526),i=n(9047),l=n(310),s=n(6532),u=n(6475),c=n(3740);let d="__docusaurus_skipToContent_fallback";function f(e){e.setAttribute("tabindex","-1"),e.focus(),e.removeAttribute("tabindex")}let p=(0,u.T)({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",message:"Skip to main content"});function m(e){let t=e.children??p,{containerRef:n,onClick:o}=function(){let e=(0,a.useRef)(null),{action:t}=(0,s.W6)(),n=(0,a.useCallback)(e=>{e.preventDefault();let t=document.querySelector("main:first-of-type")??document.getElementById(d);t&&f(t)},[]);return(0,c.$)(({location:n})=>{e.current&&!n.hash&&"PUSH"===t&&f(e.current)}),{containerRef:e,onClick:n}}();return(0,r.jsx)("div",{ref:n,role:"region","aria-label":p,children:(0,r.jsx)("a",{...e,href:`#${d}`,onClick:o,children:t})})}var h=n(1009);function g(){return(0,r.jsx)(m,{className:"skipToContent_Sb3a"})}var y=n(8168),b=n(4807);function v({width:e=21,height:t=21,color:n="currentColor",strokeWidth:a=1.2,className:o,...i}){return(0,r.jsx)("svg",{viewBox:"0 0 15 15",width:e,height:t,...i,children:(0,r.jsx)("g",{stroke:n,strokeWidth:a,children:(0,r.jsx)("path",{d:"M.75.75l13.5 13.5M14.25.75L.75 14.25"})})})}function w(e){return(0,r.jsx)("button",{type:"button","aria-label":(0,u.T)({id:"theme.AnnouncementBar.closeButtonAriaLabel",message:"Close",description:"The ARIA label for close button of announcement bar"}),...e,className:(0,o.A)("clean-btn close","closeButton_Z3pV",e.className),children:(0,r.jsx)(v,{width:14,height:14,strokeWidth:3.1})})}function k(e){let{announcementBar:t}=(0,y.p)(),{content:n}=t;return(0,r.jsx)("div",{...e,className:(0,o.A)("content_PfKe",e.className),dangerouslySetInnerHTML:{__html:n}})}function x(){let{announcementBar:e}=(0,y.p)(),{isActive:t,close:n}=(0,b.M)();if(!t)return null;let{backgroundColor:a,textColor:i,isCloseable:l}=e;return(0,r.jsxs)("div",{className:(0,o.A)(h.G.announcementBar.container,"announcementBar_Ksje"),style:{backgroundColor:a,color:i},role:"banner",children:[l&&(0,r.jsx)("div",{className:"announcementBarPlaceholder_WRLw"}),(0,r.jsx)(k,{className:"announcementBarContent_kCy3"}),l&&(0,r.jsx)(w,{onClick:n,className:"announcementBarClose_cgcS"})]})}var S=n(4231),E=n(8522),_=n(7850),A=n(7050);let C=a.createContext(null);function T({children:e}){let t=function(){let e=(0,S.M)(),t=(0,A.YL)(),[n,r]=(0,a.useState)(!1),o=null!==t.component,i=(0,_.ZC)(o);return(0,a.useEffect)(()=>{o&&!i&&r(!0)},[o,i]),(0,a.useEffect)(()=>{o?e.shown||r(!0):r(!1)},[e.shown,o]),(0,a.useMemo)(()=>[n,r],[n])}();return(0,r.jsx)(C.Provider,{value:t,children:e})}function P(){let e=(0,a.useContext)(C);if(!e)throw new _.dV("NavbarSecondaryMenuDisplayProvider");let[t,n]=e,o=(0,a.useCallback)(()=>n(!1),[n]),i=(0,A.YL)();return(0,a.useMemo)(()=>({shown:t,hide:o,content:function(e){if(e.component){let t=e.component;return(0,r.jsx)(t,{...e.props})}}(i)}),[o,i,t])}function O({children:e,inert:t}){return(0,r.jsx)("div",{className:(0,o.A)(h.G.layout.navbar.mobileSidebar.panel,"navbar-sidebar__item menu"),...19>parseInt(a.version.split(".")[0],10)?{inert:t?"":void 0}:{inert:t},children:e})}function L({header:e,primaryMenu:t,secondaryMenu:n}){let{shown:a}=P();return(0,r.jsxs)("div",{className:(0,o.A)(h.G.layout.navbar.mobileSidebar.container,"navbar-sidebar"),children:[e,(0,r.jsxs)("div",{className:(0,o.A)("navbar-sidebar__items",{"navbar-sidebar__items--show-secondary":a}),children:[(0,r.jsx)(O,{inert:a,children:t}),(0,r.jsx)(O,{inert:!a,children:n})]})]})}var N=n(3287),j=n(8261);function R(e){return(0,r.jsx)("svg",{viewBox:"0 0 24 24",width:24,height:24,...e,children:(0,r.jsx)("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 I(e){return(0,r.jsx)("svg",{viewBox:"0 0 24 24",width:24,height:24,...e,children:(0,r.jsx)("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"})})}function D(e){return(0,r.jsx)("svg",{viewBox:"0 0 24 24",width:24,height:24,...e,children:(0,r.jsx)("path",{fill:"currentColor",d:"m12 21c4.971 0 9-4.029 9-9s-4.029-9-9-9-9 4.029-9 9 4.029 9 9 9zm4.95-13.95c1.313 1.313 2.05 3.093 2.05 4.95s-0.738 3.637-2.05 4.95c-1.313 1.313-3.093 2.05-4.95 2.05v-14c1.857 0 3.637 0.737 4.95 2.05z"})})}let F="toggleIcon_SFy4";function z(e){switch(e){case null:return(0,u.T)({message:"system mode",id:"theme.colorToggle.ariaLabel.mode.system",description:"The name for the system color mode"});case"light":return(0,u.T)({message:"light mode",id:"theme.colorToggle.ariaLabel.mode.light",description:"The name for the light color mode"});case"dark":return(0,u.T)({message:"dark mode",id:"theme.colorToggle.ariaLabel.mode.dark",description:"The name for the dark color mode"});default:throw Error(`unexpected color mode ${e}`)}}function M(){return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(R,{"aria-hidden":!0,className:(0,o.A)(F,"lightToggleIcon_r_0k")}),(0,r.jsx)(I,{"aria-hidden":!0,className:(0,o.A)(F,"darkToggleIcon_pwnq")}),(0,r.jsx)(D,{"aria-hidden":!0,className:(0,o.A)(F,"systemToggleIcon_gB86")})]})}let $=a.memo(function({className:e,buttonClassName:t,respectPrefersColorScheme:n,value:a,onChange:i}){let l=(0,j.A)();return(0,r.jsx)("div",{className:(0,o.A)("toggle_WfRr",e),children:(0,r.jsx)("button",{className:(0,o.A)("clean-btn","toggleButton_qxDU",!l&&"toggleButtonDisabled_MZUj",t),type:"button",onClick:()=>i(function(e,t){if(!t)return"dark"===e?"light":"dark";switch(e){case null:return"light";case"light":return"dark";case"dark":return null;default:throw Error(`unexpected color mode ${e}`)}}(a,n)),disabled:!l,title:z(a),"aria-label":(0,u.T)({message:"Switch between dark and light mode (currently {mode})",id:"theme.colorToggle.ariaLabel",description:"The ARIA label for the color mode toggle"},{mode:z(a)}),children:(0,r.jsx)(M,{})})})});function B({className:e}){let t=(0,y.p)().navbar.style,{disableSwitch:n,respectPrefersColorScheme:a}=(0,y.p)().colorMode,{colorModeChoice:o,setColorMode:i}=(0,N.G)();return n?null:(0,r.jsx)($,{className:e,buttonClassName:"dark"===t?"darkNavbarColorModeToggle_0mhA":void 0,respectPrefersColorScheme:a,value:o,onChange:i})}var U=n(930);function H(){return(0,r.jsx)(U.A,{className:"navbar__brand",imageClassName:"navbar__logo",titleClassName:"navbar__title text--truncate"})}function V(){let e=(0,S.M)();return(0,r.jsx)("button",{type:"button","aria-label":(0,u.T)({id:"theme.docs.sidebar.closeSidebarButtonAriaLabel",message:"Close navigation bar",description:"The ARIA label for close button of mobile sidebar"}),className:"clean-btn navbar-sidebar__close",onClick:()=>e.toggle(),children:(0,r.jsx)(v,{color:"var(--ifm-color-emphasis-600)"})})}function W(){return(0,r.jsxs)("div",{className:"navbar-sidebar__brand",children:[(0,r.jsx)(H,{}),(0,r.jsx)(B,{className:"margin-right--md"}),(0,r.jsx)(V,{})]})}var q=n(7364),G=n(319),Y=n(2236);function K(e,t){return void 0!==e&&void 0!==t&&RegExp(e,"gi").test(t)}var Q=n(5740);function Z({activeBasePath:e,activeBaseRegex:t,to:n,href:a,label:o,html:i,isDropdownLink:l,prependBaseUrlToHref:s,...u}){let c=(0,G.Ay)(n),d=(0,G.Ay)(e),f=(0,G.Ay)(a,{forcePrependBaseUrl:!0}),p=o&&a&&!(0,Y.A)(a),m=i?{dangerouslySetInnerHTML:{__html:i}}:{children:(0,r.jsxs)(r.Fragment,{children:[o,p&&(0,r.jsx)(Q.A,{...l&&{width:12,height:12}})]})};return a?(0,r.jsx)(q.A,{href:s?f:a,...u,...m}):(0,r.jsx)(q.A,{to:c,isNavLink:!0,...(e||t)&&{isActive:(e,n)=>t?K(t,n.pathname):n.pathname.startsWith(d)},...u,...m})}function X({className:e,isDropdownItem:t,...n}){return(0,r.jsx)("li",{className:"menu__list-item",children:(0,r.jsx)(Z,{className:(0,o.A)("menu__link",e),...n})})}function J({className:e,isDropdownItem:t=!1,...n}){let a=(0,r.jsx)(Z,{className:(0,o.A)(t?"dropdown__link":"navbar__item navbar__link",e),isDropdownLink:t,...n});return t?(0,r.jsx)("li",{children:a}):a}function ee({mobile:e=!1,position:t,...n}){return(0,r.jsx)(e?X:J,{...n,activeClassName:n.activeClassName??(e?"menu__link--active":"navbar__link--active")})}var et=n(3420),en=n(7711),er=n(5484);function ea({collapsed:e,onClick:t}){return(0,r.jsx)("button",{"aria-label":e?(0,u.T)({id:"theme.navbar.mobileDropdown.collapseButton.expandAriaLabel",message:"Expand the dropdown",description:"The ARIA label of the button to expand the mobile dropdown navbar item"}):(0,u.T)({id:"theme.navbar.mobileDropdown.collapseButton.collapseAriaLabel",message:"Collapse the dropdown",description:"The ARIA label of the button to collapse the mobile dropdown navbar item"}),"aria-expanded":!e,type:"button",className:"clean-btn menu__caret",onClick:t})}function eo({items:e,className:t,position:n,onClick:i,...l}){let u=function(){let{siteConfig:{baseUrl:e}}=(0,er.A)(),{pathname:t}=(0,s.zy)();return t.replace(e,"/")}(),c=(0,en.ys)(l.to,u),d=e.some(e=>!!((0,en.ys)(e.to,u)||K(e.activeBaseRegex,u)||e.activeBasePath&&u.startsWith(e.activeBasePath))),{collapsed:f,toggleCollapsed:p}=function({active:e}){let{collapsed:t,toggleCollapsed:n,setCollapsed:r}=(0,et.u)({initialState:()=>!e});return(0,a.useEffect)(()=>{e&&r(!1)},[e,r]),{collapsed:t,toggleCollapsed:n}}({active:c||d}),m=l.to?void 0:"#";return(0,r.jsxs)("li",{className:(0,o.A)("menu__list-item",{"menu__list-item--collapsed":f}),children:[(0,r.jsxs)("div",{className:(0,o.A)("menu__list-item-collapsible",{"menu__list-item-collapsible--active":c}),children:[(0,r.jsx)(Z,{role:"button",className:(0,o.A)("dropdownNavbarItemMobile_dOUG","menu__link menu__link--sublist",t),href:m,...l,onClick:e=>{"#"===m&&e.preventDefault(),p()},children:l.children??l.label}),(0,r.jsx)(ea,{collapsed:f,onClick:e=>{e.preventDefault(),p()}})]}),(0,r.jsx)(et.N,{lazy:!0,as:"ul",className:"menu__list",collapsed:f,children:e.map((e,t)=>(0,a.createElement)(eb,{mobile:!0,isDropdownItem:!0,onClick:i,activeClassName:"menu__link--active",...e,key:t}))})]})}function ei({items:e,position:t,className:n,onClick:i,...l}){let s=(0,a.useRef)(null),[u,c]=(0,a.useState)(!1);return(0,a.useEffect)(()=>{let e=e=>{!s.current||s.current.contains(e.target)||c(!1)};return document.addEventListener("mousedown",e),document.addEventListener("touchstart",e),document.addEventListener("focusin",e),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("touchstart",e),document.removeEventListener("focusin",e)}},[s]),(0,r.jsxs)("div",{ref:s,className:(0,o.A)("navbar__item","dropdown","dropdown--hoverable",{"dropdown--right":"right"===t,"dropdown--show":u}),children:[(0,r.jsx)(Z,{"aria-haspopup":"true","aria-expanded":u,role:"button",href:l.to?void 0:"#",className:(0,o.A)("navbar__link",n),...l,onClick:l.to?void 0:e=>e.preventDefault(),onKeyDown:e=>{("Enter"===e.key||" "===e.key)&&(e.preventDefault(),c(!u))},children:l.children??l.label}),(0,r.jsx)("ul",{className:"dropdown__menu",children:e.map((e,t)=>(0,a.createElement)(eb,{isDropdownItem:!0,activeClassName:"dropdown__link--active",...e,key:t}))})]})}function el({mobile:e=!1,...t}){return(0,r.jsx)(e?eo:ei,{...t})}var es=n(5941),eu=n(9327);function ec({width:e=20,height:t=20,...n}){return(0,r.jsx)("svg",{viewBox:"0 0 24 24",width:e,height:t,"aria-hidden":!0,...n,children:(0,r.jsx)("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 ed=n(116);function ef({children:e,className:t}){return(0,r.jsx)("div",{className:(0,o.A)(t,"navbarSearchContainer_Pcjl"),children:e})}var ep=n(9678),em=n(8484),eh=n(4806);function eg(e,t){return t.alternateDocVersions[e.name]??e.docs.find(t=>t.id===e.mainDocId)}let ey={default:ee,localeDropdown:function({mobile:e,dropdownItemsBefore:t,dropdownItemsAfter:n,queryString:a,...o}){let i=function(){let{siteConfig:e,i18n:{localeConfigs:t}}=(0,er.A)(),n=(0,es.o)(),r=(0,eu.Hl)(e=>e.location.search),a=(0,eu.Hl)(e=>e.location.hash),o=e=>{let n=t[e];if(!n)throw Error(`Docusaurus bug, no locale config found for locale=${e}`);return n};return{getURL:(t,i)=>{let l=(0,eu.jy)([r,i.queryString],"append");return`${o(t).url===e.url?`pathname://${n.createUrl({locale:t,fullyQualified:!1})}`:n.createUrl({locale:t,fullyQualified:!0})}${l}${a}`},getLabel:e=>o(e).label,getLang:e=>o(e).htmlLang}}(),{i18n:{currentLocale:l,locales:s}}=(0,er.A)(),c=[...t,...s.map(t=>({label:i.getLabel(t),lang:i.getLang(t),to:i.getURL(t,{queryString:a}),target:"_self",autoAddBaseUrl:!1,className:t===l?e?"menu__link--active":"dropdown__link--active":""})),...n],d=e?(0,u.T)({message:"Languages",id:"theme.navbar.mobileLanguageDropdown.label",description:"The label for the mobile language switcher dropdown"}):i.getLabel(l);return(0,r.jsx)(el,{...o,mobile:e,label:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(ec,{className:"iconLanguage_WQbe"}),d]}),items:c})},search:function({mobile:e,className:t}){return e?null:(0,r.jsx)(ef,{className:t,children:(0,r.jsx)(ed.A,{})})},dropdown:el,html:function({value:e,className:t,mobile:n=!1,isDropdownItem:a=!1}){return(0,r.jsx)(a?"li":"div",{className:(0,o.A)({navbar__item:!n&&!a,"menu__list-item":n},t),dangerouslySetInnerHTML:{__html:e}})},doc:function({docId:e,label:t,docsPluginId:n,...a}){let{activeDoc:o}=(0,ep.zK)(n),i=(0,em.QB)(e,n),l=o?.path===i?.path;return null===i||i.unlisted&&!l?null:(0,r.jsx)(ee,{exact:!0,...a,isActive:()=>l||!!o?.sidebar&&o.sidebar===i.sidebar,label:t??i.id,to:i.path})},docSidebar:function({sidebarId:e,label:t,docsPluginId:n,...a}){let{activeDoc:o}=(0,ep.zK)(n),i=(0,em.fW)(e,n).link;if(!i)throw Error(`DocSidebarNavbarItem: Sidebar with ID "${e}" doesn't have anything to be linked to.`);return(0,r.jsx)(ee,{exact:!0,...a,isActive:()=>o?.sidebar===e,label:t??i.label,to:i.path})},docsVersion:function({label:e,to:t,docsPluginId:n,...a}){let o=(0,em.Vd)(n)[0],i=e??o.label,l=t??o.docs.find(e=>e.id===o.mainDocId).path;return(0,r.jsx)(ee,{...a,label:i,to:l})},docsVersionDropdown:function({mobile:e,docsPluginId:t,dropdownActiveClassDisabled:n,dropdownItemsBefore:a,dropdownItemsAfter:o,versions:i,...l}){let s=(0,eu.Hl)(e=>e.location.search),c=(0,eu.Hl)(e=>e.location.hash),d=(0,ep.zK)(t),{savePreferredVersionName:f}=(0,eh.g1)(t),p=function({docsPluginId:e,configs:t}){var n=(0,ep.jh)(e);if(!t)return n.map(e=>({version:e,label:e.label}));{let e=new Map(n.map(e=>[e.name,e])),r=(t,r)=>{let a=e.get(t);if(!a)throw Error(`No docs version exist for name '${t}', please verify your 'docsVersionDropdown' navbar item versions config. +- ${(0,s.sb)(t.map(e=>e.id)).join("\n- ")}`)}return r},[e,n])}function v({route:e}){let t=(0,a.zy)(),n=(0,c.r)(),r=e.routes,i=r.find(e=>(0,a.B6)(t.pathname,e));if(!i)return null;let l=i.sidebar,s=l?n.docsSidebars[l]:void 0;return{docElement:(0,o.v)(r),sidebarName:l,sidebarItems:s}}},73(e,t,n){"use strict";n.d(t,{n:()=>l,r:()=>s});var r=n(1987),a=n(1763),o=n(7850);let i=a.createContext(null);function l({children:e,version:t}){return(0,r.jsx)(i.Provider,{value:t,children:e})}function s(){let e=(0,a.useContext)(i);if(null===e)throw new o.dV("DocsVersionProvider");return e}},9678(e,t,n){"use strict";n.d(t,{ht:()=>d,r7:()=>m,HW:()=>g,zK:()=>h,jh:()=>p,Gy:()=>c,vT:()=>f});var r=n(6532),a=n(5484),o=n(8595);function i(e,t={}){let n=function(){let{globalData:e}=(0,a.A)();return e}()[e];if(!n&&t.failfast)throw Error(`Docusaurus plugin global data not found for "${e}" plugin.`);return n}let l=e=>e.versions.find(e=>e.isLast);function s(e,t){var n;let a,o=[...e.versions].sort((e,t)=>e.path===t.path?0:e.path.includes(t.path)?-1:+!!t.path.includes(e.path)).find(e=>!!(0,r.B6)(t,{path:e.path,exact:!1,strict:!1})),i=o?.docs.find(e=>!!(0,r.B6)(t,{path:e.path,exact:!0,strict:!1})),l=i?(n=i.id,a={},e.versions.forEach(e=>{e.docs.forEach(t=>{t.id===n&&(a[e.name]=t)})}),a):{};return{activeVersion:o,activeDoc:i,alternateDocVersions:l}}let u={},c=()=>i("docusaurus-plugin-content-docs")??u,d=e=>{try{return function(e,t=o.W,n={}){let r=i(e),a=r?.[t];if(!a&&n.failfast)throw Error(`Docusaurus plugin global data not found for "${e}" plugin with id "${t}".`);return a}("docusaurus-plugin-content-docs",e,{failfast:!0})}catch(t){throw Error(`You are using a feature of the Docusaurus docs plugin, but this plugin does not seem to be enabled${"Default"===e?"":` (pluginId=${e}`}`,{cause:t})}};function f(e={}){let t=c(),{pathname:n}=(0,r.zy)();return function(e,t,n={}){let a=Object.entries(e).sort((e,t)=>t[1].path.localeCompare(e[1].path)).find(([,e])=>!!(0,r.B6)(t,{path:e.path,exact:!1,strict:!1})),o=a?{pluginId:a[0],pluginData:a[1]}:void 0;if(!o&&n.failfast)throw 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(e=>e.path).join(", ")}`);return o}(t,n,e)}function p(e){return d(e).versions}function m(e){return l(d(e))}function h(e){let t=d(e),{pathname:n}=(0,r.zy)();return s(t,n)}function g(e){let t,n=d(e),{pathname:a}=(0,r.zy)();return t=l(n),{latestDocSuggestion:s(n,a).alternateDocVersions[t.name],latestVersionSuggestion:t}}},182(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 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;to});var r=n(8744),a=n.n(r);a().configure({showSpinner:!1});let o={onRouteUpdate({location:e,previousLocation:t}){if(t&&e.pathname!==t.pathname){let e=window.setTimeout(()=>{a().start()},200);return()=>window.clearTimeout(e)}},onRouteDidUpdate(){a().done()}}},4389(e,t,n){"use strict";var r=n(7957),a=n(4784);!function(e){let{themeConfig:{prism:t}}=a.default,{additionalLanguages:r}=t,o=globalThis.Prism;globalThis.Prism=e,r.forEach(e=>{"php"===e&&n(8020),n(3295)(`./prism-${e}`)}),delete globalThis.Prism,void 0!==o&&(globalThis.Prism=e)}(r.My)},8241(e,t,n){"use strict";n.d(t,{A:()=>u});var r=n(1987);n(1763);var a=n(3526),o=n(6475),i=n(4409),l=n(7364),s=n(4216);function u({as:e,id:t,...n}){let c=(0,s.A)(),d=(0,i.v)(t);if("h1"===e||!t)return(0,r.jsx)(e,{...n,id:void 0});c.collectAnchor(t);let f=(0,o.T)({id:"theme.common.headingLinkTitle",message:"Direct link to {heading}",description:"Title for link to heading"},{heading:"string"==typeof n.children?n.children:t});return(0,r.jsxs)(e,{...n,className:(0,a.A)("anchor",d,n.className),id:t,children:[n.children,(0,r.jsx)(l.A,{className:"hash-link",to:`#${t}`,"aria-label":f,title:f,translate:"no",children:"\u200B"})]})}},5740(e,t,n){"use strict";n.d(t,{A:()=>o});var r=n(1987);n(1763);var a=n(6475);function o({width:e=13.5,height:t=13.5}){return(0,r.jsx)("svg",{width:e,height:t,"aria-label":(0,a.T)({id:"theme.IconExternalLink.ariaLabel",message:"(opens in new tab)",description:"The ARIA label for the external link icon"}),className:"iconExternalLink_zdlW",children:(0,r.jsx)("use",{href:"#theme-svg-external-link"})})}},6819(e,t,n){"use strict";n.d(t,{A:()=>eJ});var r=n(1987),a=n(1763),o=n(3526),i=n(9047),l=n(310),s=n(6532),u=n(6475),c=n(3740);let d="__docusaurus_skipToContent_fallback";function f(e){e.setAttribute("tabindex","-1"),e.focus(),e.removeAttribute("tabindex")}let p=(0,u.T)({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",message:"Skip to main content"});function m(e){let t=e.children??p,{containerRef:n,onClick:o}=function(){let e=(0,a.useRef)(null),{action:t}=(0,s.W6)(),n=(0,a.useCallback)(e=>{e.preventDefault();let t=document.querySelector("main:first-of-type")??document.getElementById(d);t&&f(t)},[]);return(0,c.$)(({location:n})=>{e.current&&!n.hash&&"PUSH"===t&&f(e.current)}),{containerRef:e,onClick:n}}();return(0,r.jsx)("div",{ref:n,role:"region","aria-label":p,children:(0,r.jsx)("a",{...e,href:`#${d}`,onClick:o,children:t})})}var h=n(1009);function g(){return(0,r.jsx)(m,{className:"skipToContent_Sb3a"})}var b=n(8168),y=n(4807);function v({width:e=21,height:t=21,color:n="currentColor",strokeWidth:a=1.2,className:o,...i}){return(0,r.jsx)("svg",{viewBox:"0 0 15 15",width:e,height:t,...i,children:(0,r.jsx)("g",{stroke:n,strokeWidth:a,children:(0,r.jsx)("path",{d:"M.75.75l13.5 13.5M14.25.75L.75 14.25"})})})}function w(e){return(0,r.jsx)("button",{type:"button","aria-label":(0,u.T)({id:"theme.AnnouncementBar.closeButtonAriaLabel",message:"Close",description:"The ARIA label for close button of announcement bar"}),...e,className:(0,o.A)("clean-btn close","closeButton_Z3pV",e.className),children:(0,r.jsx)(v,{width:14,height:14,strokeWidth:3.1})})}function k(e){let{announcementBar:t}=(0,b.p)(),{content:n}=t;return(0,r.jsx)("div",{...e,className:(0,o.A)("content_PfKe",e.className),dangerouslySetInnerHTML:{__html:n}})}function x(){let{announcementBar:e}=(0,b.p)(),{isActive:t,close:n}=(0,y.M)();if(!t)return null;let{backgroundColor:a,textColor:i,isCloseable:l}=e;return(0,r.jsxs)("div",{className:(0,o.A)(h.G.announcementBar.container,"announcementBar_Ksje"),style:{backgroundColor:a,color:i},role:"banner",children:[l&&(0,r.jsx)("div",{className:"announcementBarPlaceholder_WRLw"}),(0,r.jsx)(k,{className:"announcementBarContent_kCy3"}),l&&(0,r.jsx)(w,{onClick:n,className:"announcementBarClose_cgcS"})]})}var S=n(4231),E=n(8522),_=n(7850),A=n(7050);let C=a.createContext(null);function T({children:e}){let t=function(){let e=(0,S.M)(),t=(0,A.YL)(),[n,r]=(0,a.useState)(!1),o=null!==t.component,i=(0,_.ZC)(o);return(0,a.useEffect)(()=>{o&&!i&&r(!0)},[o,i]),(0,a.useEffect)(()=>{o?e.shown||r(!0):r(!1)},[e.shown,o]),(0,a.useMemo)(()=>[n,r],[n])}();return(0,r.jsx)(C.Provider,{value:t,children:e})}function P(){let e=(0,a.useContext)(C);if(!e)throw new _.dV("NavbarSecondaryMenuDisplayProvider");let[t,n]=e,o=(0,a.useCallback)(()=>n(!1),[n]),i=(0,A.YL)();return(0,a.useMemo)(()=>({shown:t,hide:o,content:function(e){if(e.component){let t=e.component;return(0,r.jsx)(t,{...e.props})}}(i)}),[o,i,t])}function O({children:e,inert:t}){return(0,r.jsx)("div",{className:(0,o.A)(h.G.layout.navbar.mobileSidebar.panel,"navbar-sidebar__item menu"),...19>parseInt(a.version.split(".")[0],10)?{inert:t?"":void 0}:{inert:t},children:e})}function L({header:e,primaryMenu:t,secondaryMenu:n}){let{shown:a}=P();return(0,r.jsxs)("div",{className:(0,o.A)(h.G.layout.navbar.mobileSidebar.container,"navbar-sidebar"),children:[e,(0,r.jsxs)("div",{className:(0,o.A)("navbar-sidebar__items",{"navbar-sidebar__items--show-secondary":a}),children:[(0,r.jsx)(O,{inert:a,children:t}),(0,r.jsx)(O,{inert:!a,children:n})]})]})}var N=n(3287),j=n(8261);function R(e){return(0,r.jsx)("svg",{viewBox:"0 0 24 24",width:24,height:24,...e,children:(0,r.jsx)("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 I(e){return(0,r.jsx)("svg",{viewBox:"0 0 24 24",width:24,height:24,...e,children:(0,r.jsx)("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"})})}function D(e){return(0,r.jsx)("svg",{viewBox:"0 0 24 24",width:24,height:24,...e,children:(0,r.jsx)("path",{fill:"currentColor",d:"m12 21c4.971 0 9-4.029 9-9s-4.029-9-9-9-9 4.029-9 9 4.029 9 9 9zm4.95-13.95c1.313 1.313 2.05 3.093 2.05 4.95s-0.738 3.637-2.05 4.95c-1.313 1.313-3.093 2.05-4.95 2.05v-14c1.857 0 3.637 0.737 4.95 2.05z"})})}let F="toggleIcon_SFy4";function z(e){switch(e){case null:return(0,u.T)({message:"system mode",id:"theme.colorToggle.ariaLabel.mode.system",description:"The name for the system color mode"});case"light":return(0,u.T)({message:"light mode",id:"theme.colorToggle.ariaLabel.mode.light",description:"The name for the light color mode"});case"dark":return(0,u.T)({message:"dark mode",id:"theme.colorToggle.ariaLabel.mode.dark",description:"The name for the dark color mode"});default:throw Error(`unexpected color mode ${e}`)}}function M(){return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(R,{"aria-hidden":!0,className:(0,o.A)(F,"lightToggleIcon_r_0k")}),(0,r.jsx)(I,{"aria-hidden":!0,className:(0,o.A)(F,"darkToggleIcon_pwnq")}),(0,r.jsx)(D,{"aria-hidden":!0,className:(0,o.A)(F,"systemToggleIcon_gB86")})]})}let $=a.memo(function({className:e,buttonClassName:t,respectPrefersColorScheme:n,value:a,onChange:i}){let l=(0,j.A)();return(0,r.jsx)("div",{className:(0,o.A)("toggle_WfRr",e),children:(0,r.jsx)("button",{className:(0,o.A)("clean-btn","toggleButton_qxDU",!l&&"toggleButtonDisabled_MZUj",t),type:"button",onClick:()=>i(function(e,t){if(!t)return"dark"===e?"light":"dark";switch(e){case null:return"light";case"light":return"dark";case"dark":return null;default:throw Error(`unexpected color mode ${e}`)}}(a,n)),disabled:!l,title:z(a),"aria-label":(0,u.T)({message:"Switch between dark and light mode (currently {mode})",id:"theme.colorToggle.ariaLabel",description:"The ARIA label for the color mode toggle"},{mode:z(a)}),children:(0,r.jsx)(M,{})})})});function B({className:e}){let t=(0,b.p)().navbar.style,{disableSwitch:n,respectPrefersColorScheme:a}=(0,b.p)().colorMode,{colorModeChoice:o,setColorMode:i}=(0,N.G)();return n?null:(0,r.jsx)($,{className:e,buttonClassName:"dark"===t?"darkNavbarColorModeToggle_0mhA":void 0,respectPrefersColorScheme:a,value:o,onChange:i})}var U=n(930);function H(){return(0,r.jsx)(U.A,{className:"navbar__brand",imageClassName:"navbar__logo",titleClassName:"navbar__title text--truncate"})}function V(){let e=(0,S.M)();return(0,r.jsx)("button",{type:"button","aria-label":(0,u.T)({id:"theme.docs.sidebar.closeSidebarButtonAriaLabel",message:"Close navigation bar",description:"The ARIA label for close button of mobile sidebar"}),className:"clean-btn navbar-sidebar__close",onClick:()=>e.toggle(),children:(0,r.jsx)(v,{color:"var(--ifm-color-emphasis-600)"})})}function W(){return(0,r.jsxs)("div",{className:"navbar-sidebar__brand",children:[(0,r.jsx)(H,{}),(0,r.jsx)(B,{className:"margin-right--md"}),(0,r.jsx)(V,{})]})}var q=n(7364),G=n(319),Y=n(2236);function K(e,t){return void 0!==e&&void 0!==t&&RegExp(e,"gi").test(t)}var Q=n(5740);function Z({activeBasePath:e,activeBaseRegex:t,to:n,href:a,label:o,html:i,isDropdownLink:l,prependBaseUrlToHref:s,...u}){let c=(0,G.Ay)(n),d=(0,G.Ay)(e),f=(0,G.Ay)(a,{forcePrependBaseUrl:!0}),p=o&&a&&!(0,Y.A)(a),m=i?{dangerouslySetInnerHTML:{__html:i}}:{children:(0,r.jsxs)(r.Fragment,{children:[o,p&&(0,r.jsx)(Q.A,{...l&&{width:12,height:12}})]})};return a?(0,r.jsx)(q.A,{href:s?f:a,...u,...m}):(0,r.jsx)(q.A,{to:c,isNavLink:!0,...(e||t)&&{isActive:(e,n)=>t?K(t,n.pathname):n.pathname.startsWith(d)},...u,...m})}function X({className:e,isDropdownItem:t,...n}){return(0,r.jsx)("li",{className:"menu__list-item",children:(0,r.jsx)(Z,{className:(0,o.A)("menu__link",e),...n})})}function J({className:e,isDropdownItem:t=!1,...n}){let a=(0,r.jsx)(Z,{className:(0,o.A)(t?"dropdown__link":"navbar__item navbar__link",e),isDropdownLink:t,...n});return t?(0,r.jsx)("li",{children:a}):a}function ee({mobile:e=!1,position:t,...n}){return(0,r.jsx)(e?X:J,{...n,activeClassName:n.activeClassName??(e?"menu__link--active":"navbar__link--active")})}var et=n(3420),en=n(7711),er=n(5484);function ea({collapsed:e,onClick:t}){return(0,r.jsx)("button",{"aria-label":e?(0,u.T)({id:"theme.navbar.mobileDropdown.collapseButton.expandAriaLabel",message:"Expand the dropdown",description:"The ARIA label of the button to expand the mobile dropdown navbar item"}):(0,u.T)({id:"theme.navbar.mobileDropdown.collapseButton.collapseAriaLabel",message:"Collapse the dropdown",description:"The ARIA label of the button to collapse the mobile dropdown navbar item"}),"aria-expanded":!e,type:"button",className:"clean-btn menu__caret",onClick:t})}function eo({items:e,className:t,position:n,onClick:i,...l}){let u=function(){let{siteConfig:{baseUrl:e}}=(0,er.A)(),{pathname:t}=(0,s.zy)();return t.replace(e,"/")}(),c=(0,en.ys)(l.to,u),d=e.some(e=>!!((0,en.ys)(e.to,u)||K(e.activeBaseRegex,u)||e.activeBasePath&&u.startsWith(e.activeBasePath))),{collapsed:f,toggleCollapsed:p}=function({active:e}){let{collapsed:t,toggleCollapsed:n,setCollapsed:r}=(0,et.u)({initialState:()=>!e});return(0,a.useEffect)(()=>{e&&r(!1)},[e,r]),{collapsed:t,toggleCollapsed:n}}({active:c||d}),m=l.to?void 0:"#";return(0,r.jsxs)("li",{className:(0,o.A)("menu__list-item",{"menu__list-item--collapsed":f}),children:[(0,r.jsxs)("div",{className:(0,o.A)("menu__list-item-collapsible",{"menu__list-item-collapsible--active":c}),children:[(0,r.jsx)(Z,{role:"button",className:(0,o.A)("dropdownNavbarItemMobile_dOUG","menu__link menu__link--sublist",t),href:m,...l,onClick:e=>{"#"===m&&e.preventDefault(),p()},children:l.children??l.label}),(0,r.jsx)(ea,{collapsed:f,onClick:e=>{e.preventDefault(),p()}})]}),(0,r.jsx)(et.N,{lazy:!0,as:"ul",className:"menu__list",collapsed:f,children:e.map((e,t)=>(0,a.createElement)(ey,{mobile:!0,isDropdownItem:!0,onClick:i,activeClassName:"menu__link--active",...e,key:t}))})]})}function ei({items:e,position:t,className:n,onClick:i,...l}){let s=(0,a.useRef)(null),[u,c]=(0,a.useState)(!1);return(0,a.useEffect)(()=>{let e=e=>{!s.current||s.current.contains(e.target)||c(!1)};return document.addEventListener("mousedown",e),document.addEventListener("touchstart",e),document.addEventListener("focusin",e),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("touchstart",e),document.removeEventListener("focusin",e)}},[s]),(0,r.jsxs)("div",{ref:s,className:(0,o.A)("navbar__item","dropdown","dropdown--hoverable",{"dropdown--right":"right"===t,"dropdown--show":u}),children:[(0,r.jsx)(Z,{"aria-haspopup":"true","aria-expanded":u,role:"button",href:l.to?void 0:"#",className:(0,o.A)("navbar__link",n),...l,onClick:l.to?void 0:e=>e.preventDefault(),onKeyDown:e=>{("Enter"===e.key||" "===e.key)&&(e.preventDefault(),c(!u))},children:l.children??l.label}),(0,r.jsx)("ul",{className:"dropdown__menu",children:e.map((e,t)=>(0,a.createElement)(ey,{isDropdownItem:!0,activeClassName:"dropdown__link--active",...e,key:t}))})]})}function el({mobile:e=!1,...t}){return(0,r.jsx)(e?eo:ei,{...t})}var es=n(5941),eu=n(9327);function ec({width:e=20,height:t=20,...n}){return(0,r.jsx)("svg",{viewBox:"0 0 24 24",width:e,height:t,"aria-hidden":!0,...n,children:(0,r.jsx)("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 ed=n(116);function ef({children:e,className:t}){return(0,r.jsx)("div",{className:(0,o.A)(t,"navbarSearchContainer_Pcjl"),children:e})}var ep=n(9678),em=n(8484),eh=n(4806);function eg(e,t){return t.alternateDocVersions[e.name]??e.docs.find(t=>t.id===e.mainDocId)}let eb={default:ee,localeDropdown:function({mobile:e,dropdownItemsBefore:t,dropdownItemsAfter:n,queryString:a,...o}){let i=function(){let{siteConfig:e,i18n:{localeConfigs:t}}=(0,er.A)(),n=(0,es.o)(),r=(0,eu.Hl)(e=>e.location.search),a=(0,eu.Hl)(e=>e.location.hash),o=e=>{let n=t[e];if(!n)throw Error(`Docusaurus bug, no locale config found for locale=${e}`);return n};return{getURL:(t,i)=>{let l=(0,eu.jy)([r,i.queryString],"append");return`${o(t).url===e.url?`pathname://${n.createUrl({locale:t,fullyQualified:!1})}`:n.createUrl({locale:t,fullyQualified:!0})}${l}${a}`},getLabel:e=>o(e).label,getLang:e=>o(e).htmlLang}}(),{i18n:{currentLocale:l,locales:s}}=(0,er.A)(),c=[...t,...s.map(t=>({label:i.getLabel(t),lang:i.getLang(t),to:i.getURL(t,{queryString:a}),target:"_self",autoAddBaseUrl:!1,className:t===l?e?"menu__link--active":"dropdown__link--active":""})),...n],d=e?(0,u.T)({message:"Languages",id:"theme.navbar.mobileLanguageDropdown.label",description:"The label for the mobile language switcher dropdown"}):i.getLabel(l);return(0,r.jsx)(el,{...o,mobile:e,label:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(ec,{className:"iconLanguage_WQbe"}),d]}),items:c})},search:function({mobile:e,className:t}){return e?null:(0,r.jsx)(ef,{className:t,children:(0,r.jsx)(ed.A,{})})},dropdown:el,html:function({value:e,className:t,mobile:n=!1,isDropdownItem:a=!1}){return(0,r.jsx)(a?"li":"div",{className:(0,o.A)({navbar__item:!n&&!a,"menu__list-item":n},t),dangerouslySetInnerHTML:{__html:e}})},doc:function({docId:e,label:t,docsPluginId:n,...a}){let{activeDoc:o}=(0,ep.zK)(n),i=(0,em.QB)(e,n),l=o?.path===i?.path;return null===i||i.unlisted&&!l?null:(0,r.jsx)(ee,{exact:!0,...a,isActive:()=>l||!!o?.sidebar&&o.sidebar===i.sidebar,label:t??i.id,to:i.path})},docSidebar:function({sidebarId:e,label:t,docsPluginId:n,...a}){let{activeDoc:o}=(0,ep.zK)(n),i=(0,em.fW)(e,n).link;if(!i)throw Error(`DocSidebarNavbarItem: Sidebar with ID "${e}" doesn't have anything to be linked to.`);return(0,r.jsx)(ee,{exact:!0,...a,isActive:()=>o?.sidebar===e,label:t??i.label,to:i.path})},docsVersion:function({label:e,to:t,docsPluginId:n,...a}){let o=(0,em.Vd)(n)[0],i=e??o.label,l=t??o.docs.find(e=>e.id===o.mainDocId).path;return(0,r.jsx)(ee,{...a,label:i,to:l})},docsVersionDropdown:function({mobile:e,docsPluginId:t,dropdownActiveClassDisabled:n,dropdownItemsBefore:a,dropdownItemsAfter:o,versions:i,...l}){let s=(0,eu.Hl)(e=>e.location.search),c=(0,eu.Hl)(e=>e.location.hash),d=(0,ep.zK)(t),{savePreferredVersionName:f}=(0,eh.g1)(t),p=function({docsPluginId:e,configs:t}){var n=(0,ep.jh)(e);if(!t)return n.map(e=>({version:e,label:e.label}));{let e=new Map(n.map(e=>[e.name,e])),r=(t,r)=>{let a=e.get(t);if(!a)throw Error(`No docs version exist for name '${t}', please verify your 'docsVersionDropdown' navbar item versions config. Available version names: -- ${n.map(e=>`${e.name}`).join("\n- ")}`);return{version:a,label:r?.label??a.label}};return Array.isArray(t)?t.map(e=>r(e,void 0)):Object.entries(t).map(([e,t])=>r(e,t))}}({docsPluginId:t,configs:i}),m=function({docsPluginId:e,versionItems:t}){return(0,em.Vd)(e).map(e=>t.find(t=>t.version===e)).filter(e=>void 0!==e)[0]??t[0]}({docsPluginId:t,versionItems:p}),h=[...a,...p.map(function({version:e,label:t}){let n=eg(e,d);return{label:t,to:`${n.path}${s}${c}`,isActive:()=>e===d.activeVersion,onClick:()=>f(e.name)}}),...o],g=e&&h.length>1?(0,u.T)({id:"theme.navbar.mobileVersionsDropdown.label",message:"Versions",description:"The label for the navbar versions dropdown on mobile view"}):m.label,y=e&&h.length>1?void 0:eg(m.version,d).path;return h.length<=1?(0,r.jsx)(ee,{...l,mobile:e,label:g,to:y,isActive:n?()=>!1:void 0}):(0,r.jsx)(el,{...l,mobile:e,label:g,to:y,items:h,isActive:n?()=>!1:void 0})}};function eb({type:e,...t}){let n=ey[!e||"default"===e?"items"in t?"dropdown":"default":e];if(!n)throw Error(`No NavbarItem component found for type "${e}".`);return(0,r.jsx)(n,{...t})}function ev(){let e=(0,S.M)(),t=(0,y.p)().navbar.items;return(0,r.jsx)("ul",{className:"menu__list",children:t.map((t,n)=>(0,a.createElement)(eb,{mobile:!0,...t,onClick:()=>e.toggle(),key:n}))})}function ew(e){return(0,r.jsx)("button",{...e,type:"button",className:"clean-btn navbar-sidebar__back",children:(0,r.jsx)(u.A,{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)",children:"\u2190 Back to main menu"})})}function ek(){let e=0===(0,y.p)().navbar.items.length,t=P();return(0,r.jsxs)(r.Fragment,{children:[!e&&(0,r.jsx)(ew,{onClick:()=>t.hide()}),t.content]})}function ex(){let e=(0,S.M)();return(!function(e=!0){(0,a.useEffect)(()=>(document.body.style.overflow=e?"hidden":"visible",()=>{document.body.style.overflow="visible"}),[e])}(e.shown),e.shouldRender)?(0,r.jsx)(L,{header:(0,r.jsx)(W,{}),primaryMenu:(0,r.jsx)(ev,{}),secondaryMenu:(0,r.jsx)(ek,{})}):null}function eS(e){return(0,r.jsx)("div",{role:"presentation",...e,className:(0,o.A)("navbar-sidebar__backdrop",e.className)})}function eE({children:e}){let{navbar:{hideOnScroll:t,style:n}}=(0,y.p)(),i=(0,S.M)(),{navbarRef:l,isNavbarVisible:s}=function(e){let[t,n]=(0,a.useState)(e),r=(0,a.useRef)(!1),o=(0,a.useRef)(0),i=(0,a.useCallback)(e=>{null!==e&&(o.current=e.getBoundingClientRect().height)},[]);return(0,E.Mq)(({scrollY:t},a)=>{if(!e)return;if(t=i?n(!1):t+s{if(!e)return;let a=t.location.hash;if(a?document.getElementById(a.substring(1)):void 0){r.current=!0,n(!1);return}n(!0)}),{navbarRef:i,isNavbarVisible:t}}(t);return(0,r.jsxs)("nav",{ref:l,"aria-label":(0,u.T)({id:"theme.NavBar.navAriaLabel",message:"Main",description:"The ARIA label for the main navigation"}),className:(0,o.A)(h.G.layout.navbar.container,"navbar","navbar--fixed-top",t&&["navbarHideable_UrdD",!s&&"navbarHidden_z2Ap"],{"navbar--dark":"dark"===n,"navbar--primary":"primary"===n,"navbar-sidebar--show":i.shown}),children:[e,(0,r.jsx)(eS,{onClick:i.toggle}),(0,r.jsx)(ex,{})]})}var e_=n(2455);function eA(e){return(0,r.jsx)("button",{type:"button",...e,children:(0,r.jsx)(u.A,{id:"theme.ErrorPageContent.tryAgain",description:"The label of the button to try again rendering when the React error boundary captures an error",children:"Try again"})})}function eC({error:e}){let t=(0,e_.getErrorCausalChain)(e).map(e=>e.message).join("\n\nCause:\n");return(0,r.jsx)("p",{className:"errorBoundaryError_PTLG",children:t})}class eT extends a.Component{componentDidCatch(e,t){throw this.props.onError(e,t)}render(){return this.props.children}}function eP({width:e=30,height:t=30,className:n,...a}){return(0,r.jsx)("svg",{className:n,width:e,height:t,viewBox:"0 0 30 30","aria-hidden":"true",...a,children:(0,r.jsx)("path",{stroke:"currentColor",strokeLinecap:"round",strokeMiterlimit:"10",strokeWidth:"2",d:"M4 7h22M4 15h22M4 23h22"})})}function eO(){let{toggle:e,shown:t}=(0,S.M)();return(0,r.jsx)("button",{onClick:e,"aria-label":(0,u.T)({id:"theme.docs.sidebar.toggleSidebarButtonAriaLabel",message:"Toggle navigation bar",description:"The ARIA label for hamburger menu button of mobile navigation"}),"aria-expanded":t,className:"navbar__toggle clean-btn",type:"button",children:(0,r.jsx)(eP,{})})}function eL({items:e}){return(0,r.jsx)(r.Fragment,{children:e.map((e,t)=>(0,r.jsx)(eT,{onError:t=>Error(`A theme navbar item failed to render. +- ${n.map(e=>`${e.name}`).join("\n- ")}`);return{version:a,label:r?.label??a.label}};return Array.isArray(t)?t.map(e=>r(e,void 0)):Object.entries(t).map(([e,t])=>r(e,t))}}({docsPluginId:t,configs:i}),m=function({docsPluginId:e,versionItems:t}){return(0,em.Vd)(e).map(e=>t.find(t=>t.version===e)).filter(e=>void 0!==e)[0]??t[0]}({docsPluginId:t,versionItems:p}),h=[...a,...p.map(function({version:e,label:t}){let n=eg(e,d);return{label:t,to:`${n.path}${s}${c}`,isActive:()=>e===d.activeVersion,onClick:()=>f(e.name)}}),...o],g=e&&h.length>1?(0,u.T)({id:"theme.navbar.mobileVersionsDropdown.label",message:"Versions",description:"The label for the navbar versions dropdown on mobile view"}):m.label,b=e&&h.length>1?void 0:eg(m.version,d).path;return h.length<=1?(0,r.jsx)(ee,{...l,mobile:e,label:g,to:b,isActive:n?()=>!1:void 0}):(0,r.jsx)(el,{...l,mobile:e,label:g,to:b,items:h,isActive:n?()=>!1:void 0})}};function ey({type:e,...t}){let n=eb[!e||"default"===e?"items"in t?"dropdown":"default":e];if(!n)throw Error(`No NavbarItem component found for type "${e}".`);return(0,r.jsx)(n,{...t})}function ev(){let e=(0,S.M)(),t=(0,b.p)().navbar.items;return(0,r.jsx)("ul",{className:"menu__list",children:t.map((t,n)=>(0,a.createElement)(ey,{mobile:!0,...t,onClick:()=>e.toggle(),key:n}))})}function ew(e){return(0,r.jsx)("button",{...e,type:"button",className:"clean-btn navbar-sidebar__back",children:(0,r.jsx)(u.A,{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)",children:"\u2190 Back to main menu"})})}function ek(){let e=0===(0,b.p)().navbar.items.length,t=P();return(0,r.jsxs)(r.Fragment,{children:[!e&&(0,r.jsx)(ew,{onClick:()=>t.hide()}),t.content]})}function ex(){let e=(0,S.M)();return(!function(e=!0){(0,a.useEffect)(()=>(document.body.style.overflow=e?"hidden":"visible",()=>{document.body.style.overflow="visible"}),[e])}(e.shown),e.shouldRender)?(0,r.jsx)(L,{header:(0,r.jsx)(W,{}),primaryMenu:(0,r.jsx)(ev,{}),secondaryMenu:(0,r.jsx)(ek,{})}):null}function eS(e){return(0,r.jsx)("div",{role:"presentation",...e,className:(0,o.A)("navbar-sidebar__backdrop",e.className)})}function eE({children:e}){let{navbar:{hideOnScroll:t,style:n}}=(0,b.p)(),i=(0,S.M)(),{navbarRef:l,isNavbarVisible:s}=function(e){let[t,n]=(0,a.useState)(e),r=(0,a.useRef)(!1),o=(0,a.useRef)(0),i=(0,a.useCallback)(e=>{null!==e&&(o.current=e.getBoundingClientRect().height)},[]);return(0,E.Mq)(({scrollY:t},a)=>{if(!e)return;if(t=i?n(!1):t+s{if(!e)return;let a=t.location.hash;if(a?document.getElementById(a.substring(1)):void 0){r.current=!0,n(!1);return}n(!0)}),{navbarRef:i,isNavbarVisible:t}}(t);return(0,r.jsxs)("nav",{ref:l,"aria-label":(0,u.T)({id:"theme.NavBar.navAriaLabel",message:"Main",description:"The ARIA label for the main navigation"}),className:(0,o.A)(h.G.layout.navbar.container,"navbar","navbar--fixed-top",t&&["navbarHideable_UrdD",!s&&"navbarHidden_z2Ap"],{"navbar--dark":"dark"===n,"navbar--primary":"primary"===n,"navbar-sidebar--show":i.shown}),children:[e,(0,r.jsx)(eS,{onClick:i.toggle}),(0,r.jsx)(ex,{})]})}var e_=n(2455);function eA(e){return(0,r.jsx)("button",{type:"button",...e,children:(0,r.jsx)(u.A,{id:"theme.ErrorPageContent.tryAgain",description:"The label of the button to try again rendering when the React error boundary captures an error",children:"Try again"})})}function eC({error:e}){let t=(0,e_.getErrorCausalChain)(e).map(e=>e.message).join("\n\nCause:\n");return(0,r.jsx)("p",{className:"errorBoundaryError_PTLG",children:t})}class eT extends a.Component{componentDidCatch(e,t){throw this.props.onError(e,t)}render(){return this.props.children}}function eP({width:e=30,height:t=30,className:n,...a}){return(0,r.jsx)("svg",{className:n,width:e,height:t,viewBox:"0 0 30 30","aria-hidden":"true",...a,children:(0,r.jsx)("path",{stroke:"currentColor",strokeLinecap:"round",strokeMiterlimit:"10",strokeWidth:"2",d:"M4 7h22M4 15h22M4 23h22"})})}function eO(){let{toggle:e,shown:t}=(0,S.M)();return(0,r.jsx)("button",{onClick:e,"aria-label":(0,u.T)({id:"theme.docs.sidebar.toggleSidebarButtonAriaLabel",message:"Toggle navigation bar",description:"The ARIA label for hamburger menu button of mobile navigation"}),"aria-expanded":t,className:"navbar__toggle clean-btn",type:"button",children:(0,r.jsx)(eP,{})})}function eL({items:e}){return(0,r.jsx)(r.Fragment,{children:e.map((e,t)=>(0,r.jsx)(eT,{onError:t=>Error(`A theme navbar item failed to render. Please double-check the following navbar item (themeConfig.navbar.items) of your Docusaurus config: -${JSON.stringify(e,null,2)}`,{cause:t}),children:(0,r.jsx)(eb,{...e})},t))})}function eN({left:e,right:t}){return(0,r.jsxs)("div",{className:"navbar__inner",children:[(0,r.jsx)("div",{className:(0,o.A)(h.G.layout.navbar.containerLeft,"navbar__items"),children:e}),(0,r.jsx)("div",{className:(0,o.A)(h.G.layout.navbar.containerRight,"navbar__items navbar__items--right"),children:t})]})}function ej(){let e=(0,S.M)(),t=(0,y.p)().navbar.items,[n,a]=function(e){function t(e){return(e.position??"right")==="left"}return[e.filter(t),e.filter(e=>!t(e))]}(t),o=t.find(e=>"search"===e.type);return(0,r.jsx)(eN,{left:(0,r.jsxs)(r.Fragment,{children:[!e.disabled&&(0,r.jsx)(eO,{}),(0,r.jsx)(H,{}),(0,r.jsx)(eL,{items:n})]}),right:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(eL,{items:a}),(0,r.jsx)(B,{className:"colorModeToggle_oVbE"}),!o&&(0,r.jsx)(ef,{children:(0,r.jsx)(ed.A,{})})]})})}function eR(){return(0,r.jsx)(eE,{children:(0,r.jsx)(ej,{})})}function eI({item:e}){let{to:t,href:n,label:a,prependBaseUrlToHref:i,className:l,...s}=e,u=(0,G.Ay)(t),c=(0,G.Ay)(n,{forcePrependBaseUrl:!0});return(0,r.jsxs)(q.A,{className:(0,o.A)("footer__link-item",l),...n?{href:i?c:n}:{to:u},...s,children:[a,n&&!(0,Y.A)(n)&&(0,r.jsx)(Q.A,{})]})}function eD({item:e}){return e.html?(0,r.jsx)("li",{className:(0,o.A)("footer__item",e.className),dangerouslySetInnerHTML:{__html:e.html}}):(0,r.jsx)("li",{className:"footer__item",children:(0,r.jsx)(eI,{item:e})},e.href??e.to)}function eF({column:e}){return(0,r.jsxs)("div",{className:(0,o.A)(h.G.layout.footer.column,"col footer__col",e.className),children:[(0,r.jsx)("div",{className:"footer__title",children:e.title}),(0,r.jsx)("ul",{className:"footer__items clean-list",children:e.items.map((e,t)=>(0,r.jsx)(eD,{item:e},t))})]})}function ez({columns:e}){return(0,r.jsx)("div",{className:"row footer__links",children:e.map((e,t)=>(0,r.jsx)(eF,{column:e},t))})}function eM(){return(0,r.jsx)("span",{className:"footer__link-separator",children:"\xb7"})}function e$({item:e}){return e.html?(0,r.jsx)("span",{className:(0,o.A)("footer__link-item",e.className),dangerouslySetInnerHTML:{__html:e.html}}):(0,r.jsx)(eI,{item:e})}function eB({links:e}){return(0,r.jsx)("div",{className:"footer__links text--center",children:(0,r.jsx)("div",{className:"footer__links",children:e.map((t,n)=>(0,r.jsxs)(a.Fragment,{children:[(0,r.jsx)(e$,{item:t}),e.length!==n+1&&(0,r.jsx)(eM,{})]},n))})})}function eU({links:e}){return"title"in e[0]?(0,r.jsx)(ez,{columns:e}):(0,r.jsx)(eB,{links:e})}var eH=n(551);function eV({logo:e}){let{withBaseUrl:t}=(0,G.hH)(),n={light:t(e.src),dark:t(e.srcDark??e.src)};return(0,r.jsx)(eH.A,{className:(0,o.A)("footer__logo",e.className),alt:e.alt,sources:n,width:e.width,height:e.height,style:e.style})}function eW({logo:e}){return e.href?(0,r.jsx)(q.A,{href:e.href,className:"footerLogoLink_jCuZ",target:e.target,children:(0,r.jsx)(eV,{logo:e})}):(0,r.jsx)(eV,{logo:e})}function eq({copyright:e}){return(0,r.jsx)("div",{className:"footer__copyright",dangerouslySetInnerHTML:{__html:e}})}function eG({style:e,links:t,logo:n,copyright:a}){return(0,r.jsx)("footer",{className:(0,o.A)(h.G.layout.footer.container,"footer",{"footer--dark":"dark"===e}),children:(0,r.jsxs)("div",{className:"container container-fluid",children:[t,(n||a)&&(0,r.jsxs)("div",{className:"footer__bottom text--center",children:[n&&(0,r.jsx)("div",{className:"margin-bottom--sm",children:n}),a]})]})})}let eY=a.memo(function(){let{footer:e}=(0,y.p)();if(!e)return null;let{copyright:t,links:n,logo:a,style:o}=e;return(0,r.jsx)(eG,{style:o,links:n&&n.length>0&&(0,r.jsx)(eU,{links:n}),logo:a&&(0,r.jsx)(eW,{logo:a}),copyright:t&&(0,r.jsx)(eq,{copyright:t})})}),eK=(0,_.fM)([N.a,b.o,E.Tv,eh.VQ,l.Jx,function({children:e}){return(0,r.jsx)(A.y_,{children:(0,r.jsx)(S.e,{children:(0,r.jsx)(T,{children:e})})})}]);function eQ({children:e}){return(0,r.jsx)(eK,{children:e})}var eZ=n(8241);function eX({error:e,tryAgain:t}){return(0,r.jsx)("main",{className:"container margin-vert--xl",children:(0,r.jsx)("div",{className:"row",children:(0,r.jsxs)("div",{className:"col col--6 col--offset-3",children:[(0,r.jsx)(eZ.A,{as:"h1",className:"hero__title",children:(0,r.jsx)(u.A,{id:"theme.ErrorPageContent.title",description:"The title of the fallback page when the page crashed",children:"This page crashed."})}),(0,r.jsx)("div",{className:"margin-vert--lg",children:(0,r.jsx)(eA,{onClick:t,className:"button button--primary shadow--lw"})}),(0,r.jsx)("hr",{}),(0,r.jsx)("div",{className:"margin-vert--md",children:(0,r.jsx)(eC,{error:e})})]})})})}function eJ(e){let{children:t,noFooter:n,wrapperClassName:a,title:s,description:u}=e;return(0,r.jsxs)(eQ,{children:[(0,r.jsx)(l.be,{title:s,description:u}),(0,r.jsx)(g,{}),(0,r.jsx)(x,{}),(0,r.jsx)(eR,{}),(0,r.jsx)("div",{id:d,className:(0,o.A)(h.G.layout.main.container,h.G.wrapper.main,"mainWrapper_BsZ3",a),children:(0,r.jsx)(i.A,{fallback:e=>(0,r.jsx)(eX,{...e}),children:t})}),!n&&(0,r.jsx)(eY,{})]})}},930(e,t,n){"use strict";n.d(t,{A:()=>c});var r=n(1987);n(1763);var a=n(7364),o=n(319),i=n(5484),l=n(8168),s=n(551);function u({logo:e,alt:t,imageClassName:n}){let a={light:(0,o.Ay)(e.src),dark:(0,o.Ay)(e.srcDark||e.src)},i=(0,r.jsx)(s.A,{className:e.className,sources:a,height:e.height,width:e.width,alt:t,style:e.style});return n?(0,r.jsx)("div",{className:n,children:i}):i}function c(e){let{siteConfig:{title:t}}=(0,i.A)(),{navbar:{title:n,logo:s}}=(0,l.p)(),{imageClassName:c,titleClassName:d,...f}=e,p=(0,o.Ay)(s?.href||"/"),m=s?.alt??(n?"":t);return(0,r.jsxs)(a.A,{to:p,...f,...s?.target&&{target:s.target},children:[s&&(0,r.jsx)(u,{logo:s,alt:m,imageClassName:c}),null!=n&&(0,r.jsx)("b",{className:d,children:n})]})}},5992(e,t,n){"use strict";n.d(t,{A:()=>o});var r=n(1987);n(1763);var a=n(7634);function o({locale:e,version:t,tag:n}){return(0,r.jsxs)(a.A,{children:[e&&(0,r.jsx)("meta",{name:"docusaurus_locale",content:e}),t&&(0,r.jsx)("meta",{name:"docusaurus_version",content:t}),n&&(0,r.jsx)("meta",{name:"docusaurus_tag",content:n}),e&&(0,r.jsx)("meta",{name:"docsearch:language",content:e}),t&&(0,r.jsx)("meta",{name:"docsearch:version",content:t}),n&&(0,r.jsx)("meta",{name:"docsearch:docusaurus_tag",content:n})]})}},551(e,t,n){"use strict";n.d(t,{A:()=>c});var r=n(1987),a=n(1763),o=n(3526),i=n(8261),l=n(3287);let s={themedComponent:"themedComponent_dt6d","themedComponent--light":"themedComponent--light_XcPj","themedComponent--dark":"themedComponent--dark_QMpS"};function u({className:e,children:t}){let n=(0,i.A)(),{colorMode:c}=(0,l.G)();return(0,r.jsx)(r.Fragment,{children:(n?"dark"===c?["dark"]:["light"]:["light","dark"]).map(n=>{let i=t({theme:n,className:(0,o.A)(e,s.themedComponent,s[`themedComponent--${n}`])});return(0,r.jsx)(a.Fragment,{children:i},n)})})}function c(e){let{sources:t,className:n,alt:a,...o}=e;return(0,r.jsx)(u,{className:n,children:({theme:e,className:n})=>(0,r.jsx)("img",{src:t[e],alt:a,className:n,...o})})}},3420(e,t,n){"use strict";n.d(t,{N:()=>p,u:()=>l});var r=n(1987),a=n(1763),o=n(9879),i=n(7351);function l({initialState:e}){let[t,n]=(0,a.useState)(e??!1),r=(0,a.useCallback)(()=>{n(e=>!e)},[]);return{collapsed:t,setCollapsed:n,toggleCollapsed:r}}let s={display:"none",overflow:"hidden",height:"0px"},u={display:"block",overflow:"visible",height:"auto"};function c(e,t){let n=t?s:u;e.style.display=n.display,e.style.overflow=n.overflow,e.style.height=n.height}function d({as:e="div",collapsed:t,children:n,animation:o,onCollapseTransitionEnd:l,className:u}){let f=(0,a.useRef)(null);return!function({collapsibleRef:e,collapsed:t,animation:n}){let r=(0,a.useRef)(!1);(0,a.useEffect)(()=>{let a,o=e.current;function l(){let e,t,r,a=(e=o.scrollHeight,t=n?.duration??function(e){if((0,i.O)())return 1;let t=e/36;return Math.round((4+15*t**.25+t/5)*10)}(e),r=n?.easing??"ease-in-out",{transition:`height ${t}ms ${r}`,height:`${e}px`});o.style.transition=a.transition,o.style.height=a.height}if(!r.current){c(o,t),r.current=!0;return}return o.style.willChange="height",a=requestAnimationFrame(()=>{t?(l(),requestAnimationFrame(()=>{o.style.height=s.height,o.style.overflow=s.overflow})):(o.style.display="block",requestAnimationFrame(()=>{l()}))}),()=>cancelAnimationFrame(a)},[e,t,n])}({collapsibleRef:f,collapsed:t,animation:o}),(0,r.jsx)(e,{ref:f,onTransitionEnd:e=>{"height"===e.propertyName&&(c(f.current,t),l?.(t))},className:u,children:n})}function f({collapsed:e,...t}){let[n,i]=(0,a.useState)(!e),[l,s]=(0,a.useState)(e);return(0,o.A)(()=>{e||i(!0)},[e]),(0,o.A)(()=>{n&&s(e)},[n,e]),n?(0,r.jsx)(d,{...t,collapsed:l}):null}function p({lazy:e,...t}){return(0,r.jsx)(e?f:d,{...t})}},4807(e,t,n){"use strict";n.d(t,{M:()=>m,o:()=>p});var r=n(1987),a=n(1763),o=n(8261),i=n(8184),l=n(7850),s=n(8168);let u=(0,i.Wf)("docusaurus.announcement.dismiss"),c=(0,i.Wf)("docusaurus.announcement.id"),d=e=>u.set(String(e)),f=a.createContext(null);function p({children:e}){let t=function(){let{announcementBar:e}=(0,s.p)(),t=(0,o.A)(),[n,r]=(0,a.useState)(()=>!!t&&"true"===u.get());(0,a.useEffect)(()=>{r("true"===u.get())},[]);let i=(0,a.useCallback)(()=>{d(!0),r(!0)},[]);return(0,a.useEffect)(()=>{if(!e)return;let{id:t}=e,n=c.get();"annoucement-bar"===n&&(n="announcement-bar");let a=t!==n;c.set(t),a&&d(!1),(a||"true"!==u.get())&&r(!1)},[e]),(0,a.useMemo)(()=>({isActive:!!e&&!n,close:i}),[e,n,i])}();return(0,r.jsx)(f.Provider,{value:t,children:e})}function m(){let e=(0,a.useContext)(f);if(!e)throw new l.dV("AnnouncementBarProvider");return e}},3287(e,t,n){"use strict";n.d(t,{G:()=>w,a:()=>v});var r=n(1987),a=n(1763),o=n(8261),i=n(7850),l=n(8184),s=n(8168);function u(){return window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}let c=a.createContext(void 0),d=(0,l.Wf)("theme"),f="system",p=e=>"dark"===e?"dark":"light",m=e=>null===e||e===f?null:p(e),h=()=>p(document.documentElement.getAttribute("data-theme")),g=e=>{document.documentElement.setAttribute("data-theme",p(e))},y=()=>m(document.documentElement.getAttribute("data-theme-choice")),b=e=>{document.documentElement.setAttribute("data-theme-choice",m(e)??f)};function v({children:e}){let t=function(){let{colorMode:{defaultMode:e,disableSwitch:t,respectPrefersColorScheme:n}}=(0,s.p)(),{colorMode:r,setColorModeState:i,colorModeChoice:l,setColorModeChoiceState:c}=function(){let{colorMode:{defaultMode:e}}=(0,s.p)(),t=(0,o.A)(),[n,r]=(0,a.useState)(t?h():e),[i,l]=(0,a.useState)(t?y():null);return(0,a.useEffect)(()=>{r(h()),l(y())},[]),{colorMode:n,setColorModeState:r,colorModeChoice:i,setColorModeChoiceState:l}}();(0,a.useEffect)(()=>{t&&d.del()},[t]);let f=(0,a.useCallback)((t,r={})=>{let{persist:a=!0}=r;if(null===t){let t=n?u():e;g(t),i(t),b(null),c(null)}else g(t),b(t),i(t),c(t);a&&(null===t?d.del():d.set(p(t)))},[i,c,n,e]);return(0,a.useEffect)(()=>d.listen(e=>{f(m(e.newValue))}),[f]),(0,a.useEffect)(()=>{if(null===l&&n){var e,t;let n;return e=e=>{i(e),g(e)},t=()=>e(u()),(n=window.matchMedia("(prefers-color-scheme: dark)")).addEventListener("change",t),()=>n.removeEventListener("change",t)}},[n,l,i]),(0,a.useMemo)(()=>({colorMode:r,colorModeChoice:l,setColorMode:f,get isDarkTheme(){return"dark"===r},setLightTheme(){f("light")},setDarkTheme(){f("dark")}}),[r,l,f])}();return(0,r.jsx)(c.Provider,{value:t,children:e})}function w(){let e=(0,a.useContext)(c);if(null==e)throw new i.dV("ColorModeProvider","Please see https://docusaurus.io/docs/api/themes/configuration#use-color-mode.");return e}},4231(e,t,n){"use strict";n.d(t,{M:()=>p,e:()=>f});var r=n(1987),a=n(1763),o=n(7050),i=n(9299),l=n(9327),s=n(8168),u=n(7850);let c=a.createContext(void 0);function d({handler:e}){return(0,l.$Z)(e),null}function f({children:e}){let t=function(){let e=function(){let e=(0,o.YL)(),{items:t}=(0,s.p)().navbar;return 0===t.length&&!e.component}(),t=(0,i.l)(),n=!e&&"mobile"===t,[r,l]=(0,a.useState)(!1),u=(0,a.useCallback)(()=>{l(e=>!e)},[]);return(0,a.useEffect)(()=>{"desktop"===t&&l(!1)},[t]),(0,a.useMemo)(()=>({disabled:e,shouldRender:n,toggle:u,shown:r}),[e,n,u,r])}();return(0,r.jsxs)(r.Fragment,{children:[t.shown&&(0,r.jsx)(d,{handler:()=>(t.toggle(),!1)}),(0,r.jsx)(c.Provider,{value:t,children:e})]})}function p(){let e=a.useContext(c);if(void 0===e)throw new u.dV("NavbarMobileSidebarProvider");return e}},7050(e,t,n){"use strict";n.d(t,{GX:()=>u,YL:()=>s,y_:()=>l});var r=n(1987),a=n(1763),o=n(7850);let i=a.createContext(null);function l({children:e}){let t=(0,a.useState)({component:null,props:null});return(0,r.jsx)(i.Provider,{value:t,children:e})}function s(){let e=(0,a.useContext)(i);if(!e)throw new o.dV("NavbarSecondaryMenuContentProvider");return e[0]}function u({component:e,props:t}){let n=(0,a.useContext)(i);if(!n)throw new o.dV("NavbarSecondaryMenuContentProvider");let[,r]=n,l=(0,o.Be)(t);return(0,a.useEffect)(()=>{r({component:e,props:l})},[r,e,l]),(0,a.useEffect)(()=>()=>r({component:null,props:null}),[r]),null}},9299(e,t,n){"use strict";n.d(t,{l:()=>o});var r=n(1763),a=n(4619);function o({desktopBreakpoint:e=996}={}){let[t,n]=(0,r.useState)(()=>"ssr");return(0,r.useEffect)(()=>{function t(){n(function(e){if(!a.A.canUseDOM)throw Error("getWindowSize() should only be called after React hydration");return window.innerWidth>e?"desktop":"mobile"}(e))}return t(),window.addEventListener("resize",t),()=>{window.removeEventListener("resize",t)}},[e]),t}},1009(e,t,n){"use strict";n.d(t,{G:()=>r});let r={page:{blogListPage:"blog-list-page",blogPostPage:"blog-post-page",blogTagsListPage:"blog-tags-list-page",blogTagPostListPage:"blog-tags-post-list-page",blogAuthorsListPage:"blog-authors-list-page",blogAuthorsPostsPage:"blog-authors-posts-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",admonition:"theme-admonition",unlistedBanner:"theme-unlisted-banner",draftBanner:"theme-draft-banner",admonitionType:e=>`theme-admonition-${e}`},announcementBar:{container:"theme-announcement-bar"},tabs:{container:"theme-tabs-container"},layout:{navbar:{container:"theme-layout-navbar",containerLeft:"theme-layout-navbar-left",containerRight:"theme-layout-navbar-right",mobileSidebar:{container:"theme-layout-navbar-sidebar",panel:"theme-layout-navbar-sidebar-panel"}},main:{container:"theme-layout-main"},footer:{container:"theme-layout-footer",column:"theme-layout-footer-column"}},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:e=>`theme-doc-sidebar-item-category-level-${e}`,docSidebarItemLinkLevel:e=>`theme-doc-sidebar-item-link-level-${e}`,docCard:{container:"theme-doc-card-container",heading:"theme-doc-card-heading",icon:"theme-doc-card-icon",title:"theme-doc-card-title",description:"theme-doc-card-description"}},blog:{blogFooterTagsRow:"theme-blog-footer-tags-row",blogFooterEditMetaRow:"theme-blog-footer-edit-meta-row"},pages:{pageFooterEditMetaRow:"theme-pages-footer-edit-meta-row"}}},7351(e,t,n){"use strict";function r(){return window.matchMedia("(prefers-reduced-motion: reduce)").matches}n.d(t,{O:()=>r})},4409(e,t,n){"use strict";n.d(t,{v:()=>a});var r=n(8168);function a(e){let{navbar:{hideOnScroll:t}}=(0,r.p)();if(void 0!==e)return t?"anchorTargetHideOnScrollNavbar_Lo9g":"anchorTargetStickyNavbar_zfeO"}},9327(e,t,n){"use strict";n.d(t,{$Z:()=>i,Hl:()=>l,aZ:()=>s,jy:()=>u});var r=n(1763),a=n(6532),o=n(7850);function i(e){let t,n;t=(0,a.W6)(),n=(0,o._q)((t,n)=>{if("POP"===n)return e(t,n)}),(0,r.useEffect)(()=>t.block((e,t)=>n(e,t)),[t,n])}function l(e){let t=(0,a.W6)();return(0,r.useSyncExternalStore)(t.listen,()=>e(t),()=>e({...t,location:{...t.location,search:"",hash:"",state:void 0}}))}function s(e){return l(t=>null===e?null:new URLSearchParams(t.location.search).get(e))}function u(e,t){let n=(function(e,t){let n=new URLSearchParams;for(let r of e)for(let[e,a]of r.entries())"append"===t?n.append(e,a):n.set(e,a);return n})(e.map(e=>new URLSearchParams(e??"")),t).toString();return n?`?${n}`:n}},8292(e,t,n){"use strict";function r(e,t=(e,t)=>e===t){return e.filter((n,r)=>e.findIndex(e=>t(e,n))!==r)}function a(e){return Array.from(new Set(e))}n.d(t,{XI:()=>r,sb:()=>a})},310(e,t,n){"use strict";n.d(t,{Jx:()=>y,be:()=>m,e3:()=>g});var r=n(1987),a=n(1763),o=n(3526),i=n(7634),l=n(7581),s=n(319),u=n(6461);function c({title:e}){let t=(0,u.s$)().format(e);return(0,r.jsxs)(i.A,{children:[(0,r.jsx)("title",{children:t}),(0,r.jsx)("meta",{property:"og:title",content:t})]})}function d({description:e}){return(0,r.jsxs)(i.A,{children:[(0,r.jsx)("meta",{name:"description",content:e}),(0,r.jsx)("meta",{property:"og:description",content:e})]})}function f({image:e}){let{withBaseUrl:t}=(0,s.hH)(),n=t(e,{absolute:!0});return(0,r.jsxs)(i.A,{children:[(0,r.jsx)("meta",{property:"og:image",content:n}),(0,r.jsx)("meta",{name:"twitter:image",content:n})]})}function p({keywords:e}){return(0,r.jsx)(i.A,{children:(0,r.jsx)("meta",{name:"keywords",content:Array.isArray(e)?e.join(","):e})})}function m({title:e,description:t,keywords:n,image:a,children:o}){return(0,r.jsxs)(r.Fragment,{children:[e&&(0,r.jsx)(c,{title:e}),t&&(0,r.jsx)(d,{description:t}),n&&(0,r.jsx)(p,{keywords:n}),a&&(0,r.jsx)(f,{image:a}),o&&(0,r.jsx)(i.A,{children:o})]})}let h=a.createContext(void 0);function g({className:e,children:t}){let n=a.useContext(h),l=(0,o.A)(n,e);return(0,r.jsxs)(h.Provider,{value:l,children:[(0,r.jsx)(i.A,{children:(0,r.jsx)("html",{className:l})}),t]})}function y({children:e}){var t;let n=(0,l.A)(),a=(t=n.plugin.name,`plugin-${t.replace(/docusaurus-(?:plugin|theme)-(?:content-)?/gi,"")}`),i=`plugin-id-${n.plugin.id}`;return(0,r.jsx)(g,{className:(0,o.A)(a,i),children:e})}},7850(e,t,n){"use strict";n.d(t,{Be:()=>u,ZC:()=>l,_q:()=>i,dV:()=>s,fM:()=>c});var r=n(1987),a=n(1763),o=n(9879);function i(e){let t=(0,a.useRef)(e);return(0,o.A)(()=>{t.current=e},[e]),(0,a.useCallback)((...e)=>t.current(...e),[])}function l(e){let t=(0,a.useRef)(void 0);return(0,o.A)(()=>{t.current=e}),t.current}class s extends Error{constructor(e,t){super(),this.name="ReactContextError",this.message=`Hook ${this.stack?.split("\n")[1]?.match(/at (?:\w+\.)?(?\w+)/)?.groups.name??""} is called outside the <${e}>. ${t??""}`}}function u(e){let t=Object.entries(e);return t.sort((e,t)=>e[0].localeCompare(t[0])),(0,a.useMemo)(()=>e,t.flat())}function c(e){return({children:t})=>(0,r.jsx)(r.Fragment,{children:e.reduceRight((e,t)=>(0,r.jsx)(t,{children:e}),t)})}},7711(e,t,n){"use strict";n.d(t,{Dt:()=>l,ys:()=>i});var r=n(1763),a=n(439),o=n(5484);function i(e,t){let n=e=>(!e||e.endsWith("/")?e:`${e}/`)?.toLowerCase();return n(e)===n(t)}function l(){let{baseUrl:e}=(0,o.A)().siteConfig;return(0,r.useMemo)(()=>(function({baseUrl:e,routes:t}){function n(t){return t.path===e&&!0===t.exact}function r(t){return t.path===e&&!t.exact}return function e(t){if(0===t.length)return;let a=t.find(n);return a||e(t.filter(r).flatMap(e=>e.routes??[]))}(t)})({routes:a.A,baseUrl:e}),[e])}},8522(e,t,n){"use strict";n.d(t,{Mq:()=>p,Tv:()=>c,a_:()=>m,gk:()=>h});var r=n(1987),a=n(1763),o=n(4619),i=n(8261),l=n(9879),s=n(7850);let u=a.createContext(void 0);function c({children:e}){let t,n=(t=(0,a.useRef)(!0),(0,a.useMemo)(()=>({scrollEventsEnabledRef:t,enableScrollEvents:()=>{t.current=!0},disableScrollEvents:()=>{t.current=!1}}),[]));return(0,r.jsx)(u.Provider,{value:n,children:e})}function d(){let e=(0,a.useContext)(u);if(null==e)throw new s.dV("ScrollControllerProvider");return e}let f=()=>o.A.canUseDOM?{scrollX:window.pageXOffset,scrollY:window.pageYOffset}:null;function p(e,t=[]){let{scrollEventsEnabledRef:n}=d(),r=(0,a.useRef)(f()),o=(0,s._q)(e);(0,a.useEffect)(()=>{let e=()=>{if(!n.current)return;let e=f();o(e,r.current),r.current=e},t={passive:!0};return e(),window.addEventListener("scroll",e,t),()=>window.removeEventListener("scroll",e,t)},[o,n,...t])}function m(){let e,t,n,r=d(),o=(e=(0,a.useRef)({elem:null,top:0}),t=(0,a.useCallback)(t=>{e.current={elem:t,top:t.getBoundingClientRect().top}},[]),n=(0,a.useCallback)(()=>{let{current:{elem:t,top:n}}=e;if(!t)return{restored:!1};let r=t.getBoundingClientRect().top-n;return r&&window.scrollBy({left:0,top:r}),e.current={elem:null,top:0},{restored:0!==r}},[]),(0,a.useMemo)(()=>({save:t,restore:n}),[n,t])),i=(0,a.useRef)(void 0),s=(0,a.useCallback)(e=>{o.save(e),r.disableScrollEvents(),i.current=()=>{let{restored:e}=o.restore();if(i.current=void 0,e){let e=()=>{r.enableScrollEvents(),window.removeEventListener("scroll",e)};window.addEventListener("scroll",e)}else r.enableScrollEvents()}},[r,o]);return(0,l.A)(()=>{queueMicrotask(()=>i.current?.())}),{blockElementScrollPositionUntilNextRender:s}}function h(){let e=(0,a.useRef)(null),t=(0,i.A)()&&"smooth"===getComputedStyle(document.documentElement).scrollBehavior;return{startScroll:n=>{let r,a;e.current=t?(window.scrollTo({top:n,behavior:"smooth"}),()=>{}):(r=null,a=document.documentElement.scrollTop>n,!function e(){let t=document.documentElement.scrollTop;(a&&t>n||!a&&tr&&cancelAnimationFrame(r))},cancelScroll:()=>e.current?.()}}},8184(e,t,n){"use strict";n.d(t,{Wf:()=>u,Dv:()=>c});var r=n(1763),a=JSON.parse('{"N":"localStorage","M":"-806"}');let o=a.N;function i({key:e,oldValue:t,newValue:n,storage:r}){if(t===n)return;let a=document.createEvent("StorageEvent");a.initStorageEvent("storage",!1,!1,e,t,n,window.location.href,r),window.dispatchEvent(a)}let l=!1,s={get:()=>null,set:()=>{},del:()=>{},listen:()=>()=>{}};function u(e,t){let n=`${e}${a.M}`;if("u"!t(e))]}(t),o=t.find(e=>"search"===e.type);return(0,r.jsx)(eN,{left:(0,r.jsxs)(r.Fragment,{children:[!e.disabled&&(0,r.jsx)(eO,{}),(0,r.jsx)(H,{}),(0,r.jsx)(eL,{items:n})]}),right:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(eL,{items:a}),(0,r.jsx)(B,{className:"colorModeToggle_oVbE"}),!o&&(0,r.jsx)(ef,{children:(0,r.jsx)(ed.A,{})})]})})}function eR(){return(0,r.jsx)(eE,{children:(0,r.jsx)(ej,{})})}function eI({item:e}){let{to:t,href:n,label:a,prependBaseUrlToHref:i,className:l,...s}=e,u=(0,G.Ay)(t),c=(0,G.Ay)(n,{forcePrependBaseUrl:!0});return(0,r.jsxs)(q.A,{className:(0,o.A)("footer__link-item",l),...n?{href:i?c:n}:{to:u},...s,children:[a,n&&!(0,Y.A)(n)&&(0,r.jsx)(Q.A,{})]})}function eD({item:e}){return e.html?(0,r.jsx)("li",{className:(0,o.A)("footer__item",e.className),dangerouslySetInnerHTML:{__html:e.html}}):(0,r.jsx)("li",{className:"footer__item",children:(0,r.jsx)(eI,{item:e})},e.href??e.to)}function eF({column:e}){return(0,r.jsxs)("div",{className:(0,o.A)(h.G.layout.footer.column,"col footer__col",e.className),children:[(0,r.jsx)("div",{className:"footer__title",children:e.title}),(0,r.jsx)("ul",{className:"footer__items clean-list",children:e.items.map((e,t)=>(0,r.jsx)(eD,{item:e},t))})]})}function ez({columns:e}){return(0,r.jsx)("div",{className:"row footer__links",children:e.map((e,t)=>(0,r.jsx)(eF,{column:e},t))})}function eM(){return(0,r.jsx)("span",{className:"footer__link-separator",children:"\xb7"})}function e$({item:e}){return e.html?(0,r.jsx)("span",{className:(0,o.A)("footer__link-item",e.className),dangerouslySetInnerHTML:{__html:e.html}}):(0,r.jsx)(eI,{item:e})}function eB({links:e}){return(0,r.jsx)("div",{className:"footer__links text--center",children:(0,r.jsx)("div",{className:"footer__links",children:e.map((t,n)=>(0,r.jsxs)(a.Fragment,{children:[(0,r.jsx)(e$,{item:t}),e.length!==n+1&&(0,r.jsx)(eM,{})]},n))})})}function eU({links:e}){return"title"in e[0]?(0,r.jsx)(ez,{columns:e}):(0,r.jsx)(eB,{links:e})}var eH=n(551);function eV({logo:e}){let{withBaseUrl:t}=(0,G.hH)(),n={light:t(e.src),dark:t(e.srcDark??e.src)};return(0,r.jsx)(eH.A,{className:(0,o.A)("footer__logo",e.className),alt:e.alt,sources:n,width:e.width,height:e.height,style:e.style})}function eW({logo:e}){return e.href?(0,r.jsx)(q.A,{href:e.href,className:"footerLogoLink_jCuZ",target:e.target,children:(0,r.jsx)(eV,{logo:e})}):(0,r.jsx)(eV,{logo:e})}function eq({copyright:e}){return(0,r.jsx)("div",{className:"footer__copyright",dangerouslySetInnerHTML:{__html:e}})}function eG({style:e,links:t,logo:n,copyright:a}){return(0,r.jsx)("footer",{className:(0,o.A)(h.G.layout.footer.container,"footer",{"footer--dark":"dark"===e}),children:(0,r.jsxs)("div",{className:"container container-fluid",children:[t,(n||a)&&(0,r.jsxs)("div",{className:"footer__bottom text--center",children:[n&&(0,r.jsx)("div",{className:"margin-bottom--sm",children:n}),a]})]})})}let eY=a.memo(function(){let{footer:e}=(0,b.p)();if(!e)return null;let{copyright:t,links:n,logo:a,style:o}=e;return(0,r.jsx)(eG,{style:o,links:n&&n.length>0&&(0,r.jsx)(eU,{links:n}),logo:a&&(0,r.jsx)(eW,{logo:a}),copyright:t&&(0,r.jsx)(eq,{copyright:t})})}),eK=(0,_.fM)([N.a,y.o,E.Tv,eh.VQ,l.Jx,function({children:e}){return(0,r.jsx)(A.y_,{children:(0,r.jsx)(S.e,{children:(0,r.jsx)(T,{children:e})})})}]);function eQ({children:e}){return(0,r.jsx)(eK,{children:e})}var eZ=n(8241);function eX({error:e,tryAgain:t}){return(0,r.jsx)("main",{className:"container margin-vert--xl",children:(0,r.jsx)("div",{className:"row",children:(0,r.jsxs)("div",{className:"col col--6 col--offset-3",children:[(0,r.jsx)(eZ.A,{as:"h1",className:"hero__title",children:(0,r.jsx)(u.A,{id:"theme.ErrorPageContent.title",description:"The title of the fallback page when the page crashed",children:"This page crashed."})}),(0,r.jsx)("div",{className:"margin-vert--lg",children:(0,r.jsx)(eA,{onClick:t,className:"button button--primary shadow--lw"})}),(0,r.jsx)("hr",{}),(0,r.jsx)("div",{className:"margin-vert--md",children:(0,r.jsx)(eC,{error:e})})]})})})}function eJ(e){let{children:t,noFooter:n,wrapperClassName:a,title:s,description:u}=e;return(0,r.jsxs)(eQ,{children:[(0,r.jsx)(l.be,{title:s,description:u}),(0,r.jsx)(g,{}),(0,r.jsx)(x,{}),(0,r.jsx)(eR,{}),(0,r.jsx)("div",{id:d,className:(0,o.A)(h.G.layout.main.container,h.G.wrapper.main,"mainWrapper_BsZ3",a),children:(0,r.jsx)(i.A,{fallback:e=>(0,r.jsx)(eX,{...e}),children:t})}),!n&&(0,r.jsx)(eY,{})]})}},930(e,t,n){"use strict";n.d(t,{A:()=>c});var r=n(1987);n(1763);var a=n(7364),o=n(319),i=n(5484),l=n(8168),s=n(551);function u({logo:e,alt:t,imageClassName:n}){let a={light:(0,o.Ay)(e.src),dark:(0,o.Ay)(e.srcDark||e.src)},i=(0,r.jsx)(s.A,{className:e.className,sources:a,height:e.height,width:e.width,alt:t,style:e.style});return n?(0,r.jsx)("div",{className:n,children:i}):i}function c(e){let{siteConfig:{title:t}}=(0,i.A)(),{navbar:{title:n,logo:s}}=(0,l.p)(),{imageClassName:c,titleClassName:d,...f}=e,p=(0,o.Ay)(s?.href||"/"),m=s?.alt??(n?"":t);return(0,r.jsxs)(a.A,{to:p,...f,...s?.target&&{target:s.target},children:[s&&(0,r.jsx)(u,{logo:s,alt:m,imageClassName:c}),null!=n&&(0,r.jsx)("b",{className:d,children:n})]})}},5992(e,t,n){"use strict";n.d(t,{A:()=>o});var r=n(1987);n(1763);var a=n(7634);function o({locale:e,version:t,tag:n}){return(0,r.jsxs)(a.A,{children:[e&&(0,r.jsx)("meta",{name:"docusaurus_locale",content:e}),t&&(0,r.jsx)("meta",{name:"docusaurus_version",content:t}),n&&(0,r.jsx)("meta",{name:"docusaurus_tag",content:n}),e&&(0,r.jsx)("meta",{name:"docsearch:language",content:e}),t&&(0,r.jsx)("meta",{name:"docsearch:version",content:t}),n&&(0,r.jsx)("meta",{name:"docsearch:docusaurus_tag",content:n})]})}},551(e,t,n){"use strict";n.d(t,{A:()=>c});var r=n(1987),a=n(1763),o=n(3526),i=n(8261),l=n(3287);let s={themedComponent:"themedComponent_dt6d","themedComponent--light":"themedComponent--light_XcPj","themedComponent--dark":"themedComponent--dark_QMpS"};function u({className:e,children:t}){let n=(0,i.A)(),{colorMode:c}=(0,l.G)();return(0,r.jsx)(r.Fragment,{children:(n?"dark"===c?["dark"]:["light"]:["light","dark"]).map(n=>{let i=t({theme:n,className:(0,o.A)(e,s.themedComponent,s[`themedComponent--${n}`])});return(0,r.jsx)(a.Fragment,{children:i},n)})})}function c(e){let{sources:t,className:n,alt:a,...o}=e;return(0,r.jsx)(u,{className:n,children:({theme:e,className:n})=>(0,r.jsx)("img",{src:t[e],alt:a,className:n,...o})})}},3420(e,t,n){"use strict";n.d(t,{N:()=>p,u:()=>l});var r=n(1987),a=n(1763),o=n(9879),i=n(7351);function l({initialState:e}){let[t,n]=(0,a.useState)(e??!1),r=(0,a.useCallback)(()=>{n(e=>!e)},[]);return{collapsed:t,setCollapsed:n,toggleCollapsed:r}}let s={display:"none",overflow:"hidden",height:"0px"},u={display:"block",overflow:"visible",height:"auto"};function c(e,t){let n=t?s:u;e.style.display=n.display,e.style.overflow=n.overflow,e.style.height=n.height}function d({as:e="div",collapsed:t,children:n,animation:o,onCollapseTransitionEnd:l,className:u}){let f=(0,a.useRef)(null);return!function({collapsibleRef:e,collapsed:t,animation:n}){let r=(0,a.useRef)(!1);(0,a.useEffect)(()=>{let a,o=e.current;function l(){let e,t,r,a=(e=o.scrollHeight,t=n?.duration??function(e){if((0,i.O)())return 1;let t=e/36;return Math.round((4+15*t**.25+t/5)*10)}(e),r=n?.easing??"ease-in-out",{transition:`height ${t}ms ${r}`,height:`${e}px`});o.style.transition=a.transition,o.style.height=a.height}if(!r.current){c(o,t),r.current=!0;return}return o.style.willChange="height",a=requestAnimationFrame(()=>{t?(l(),requestAnimationFrame(()=>{o.style.height=s.height,o.style.overflow=s.overflow})):(o.style.display="block",requestAnimationFrame(()=>{l()}))}),()=>cancelAnimationFrame(a)},[e,t,n])}({collapsibleRef:f,collapsed:t,animation:o}),(0,r.jsx)(e,{ref:f,onTransitionEnd:e=>{"height"===e.propertyName&&(c(f.current,t),l?.(t))},className:u,children:n})}function f({collapsed:e,...t}){let[n,i]=(0,a.useState)(!e),[l,s]=(0,a.useState)(e);return(0,o.A)(()=>{e||i(!0)},[e]),(0,o.A)(()=>{n&&s(e)},[n,e]),n?(0,r.jsx)(d,{...t,collapsed:l}):null}function p({lazy:e,...t}){return(0,r.jsx)(e?f:d,{...t})}},4807(e,t,n){"use strict";n.d(t,{M:()=>m,o:()=>p});var r=n(1987),a=n(1763),o=n(8261),i=n(8184),l=n(7850),s=n(8168);let u=(0,i.Wf)("docusaurus.announcement.dismiss"),c=(0,i.Wf)("docusaurus.announcement.id"),d=e=>u.set(String(e)),f=a.createContext(null);function p({children:e}){let t=function(){let{announcementBar:e}=(0,s.p)(),t=(0,o.A)(),[n,r]=(0,a.useState)(()=>!!t&&"true"===u.get());(0,a.useEffect)(()=>{r("true"===u.get())},[]);let i=(0,a.useCallback)(()=>{d(!0),r(!0)},[]);return(0,a.useEffect)(()=>{if(!e)return;let{id:t}=e,n=c.get();"annoucement-bar"===n&&(n="announcement-bar");let a=t!==n;c.set(t),a&&d(!1),(a||"true"!==u.get())&&r(!1)},[e]),(0,a.useMemo)(()=>({isActive:!!e&&!n,close:i}),[e,n,i])}();return(0,r.jsx)(f.Provider,{value:t,children:e})}function m(){let e=(0,a.useContext)(f);if(!e)throw new l.dV("AnnouncementBarProvider");return e}},3287(e,t,n){"use strict";n.d(t,{G:()=>w,a:()=>v});var r=n(1987),a=n(1763),o=n(8261),i=n(7850),l=n(8184),s=n(8168);function u(){return window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}let c=a.createContext(void 0),d=(0,l.Wf)("theme"),f="system",p=e=>"dark"===e?"dark":"light",m=e=>null===e||e===f?null:p(e),h=()=>p(document.documentElement.getAttribute("data-theme")),g=e=>{document.documentElement.setAttribute("data-theme",p(e))},b=()=>m(document.documentElement.getAttribute("data-theme-choice")),y=e=>{document.documentElement.setAttribute("data-theme-choice",m(e)??f)};function v({children:e}){let t=function(){let{colorMode:{defaultMode:e,disableSwitch:t,respectPrefersColorScheme:n}}=(0,s.p)(),{colorMode:r,setColorModeState:i,colorModeChoice:l,setColorModeChoiceState:c}=function(){let{colorMode:{defaultMode:e}}=(0,s.p)(),t=(0,o.A)(),[n,r]=(0,a.useState)(t?h():e),[i,l]=(0,a.useState)(t?b():null);return(0,a.useEffect)(()=>{r(h()),l(b())},[]),{colorMode:n,setColorModeState:r,colorModeChoice:i,setColorModeChoiceState:l}}();(0,a.useEffect)(()=>{t&&d.del()},[t]);let f=(0,a.useCallback)((t,r={})=>{let{persist:a=!0}=r;if(null===t){let t=n?u():e;g(t),i(t),y(null),c(null)}else g(t),y(t),i(t),c(t);a&&(null===t?d.del():d.set(p(t)))},[i,c,n,e]);return(0,a.useEffect)(()=>d.listen(e=>{f(m(e.newValue))}),[f]),(0,a.useEffect)(()=>{if(null===l&&n){var e,t;let n;return e=e=>{i(e),g(e)},t=()=>e(u()),(n=window.matchMedia("(prefers-color-scheme: dark)")).addEventListener("change",t),()=>n.removeEventListener("change",t)}},[n,l,i]),(0,a.useMemo)(()=>({colorMode:r,colorModeChoice:l,setColorMode:f,get isDarkTheme(){return"dark"===r},setLightTheme(){f("light")},setDarkTheme(){f("dark")}}),[r,l,f])}();return(0,r.jsx)(c.Provider,{value:t,children:e})}function w(){let e=(0,a.useContext)(c);if(null==e)throw new i.dV("ColorModeProvider","Please see https://docusaurus.io/docs/api/themes/configuration#use-color-mode.");return e}},4231(e,t,n){"use strict";n.d(t,{M:()=>p,e:()=>f});var r=n(1987),a=n(1763),o=n(7050),i=n(9299),l=n(9327),s=n(8168),u=n(7850);let c=a.createContext(void 0);function d({handler:e}){return(0,l.$Z)(e),null}function f({children:e}){let t=function(){let e=function(){let e=(0,o.YL)(),{items:t}=(0,s.p)().navbar;return 0===t.length&&!e.component}(),t=(0,i.l)(),n=!e&&"mobile"===t,[r,l]=(0,a.useState)(!1),u=(0,a.useCallback)(()=>{l(e=>!e)},[]);return(0,a.useEffect)(()=>{"desktop"===t&&l(!1)},[t]),(0,a.useMemo)(()=>({disabled:e,shouldRender:n,toggle:u,shown:r}),[e,n,u,r])}();return(0,r.jsxs)(r.Fragment,{children:[t.shown&&(0,r.jsx)(d,{handler:()=>(t.toggle(),!1)}),(0,r.jsx)(c.Provider,{value:t,children:e})]})}function p(){let e=a.useContext(c);if(void 0===e)throw new u.dV("NavbarMobileSidebarProvider");return e}},7050(e,t,n){"use strict";n.d(t,{GX:()=>u,YL:()=>s,y_:()=>l});var r=n(1987),a=n(1763),o=n(7850);let i=a.createContext(null);function l({children:e}){let t=(0,a.useState)({component:null,props:null});return(0,r.jsx)(i.Provider,{value:t,children:e})}function s(){let e=(0,a.useContext)(i);if(!e)throw new o.dV("NavbarSecondaryMenuContentProvider");return e[0]}function u({component:e,props:t}){let n=(0,a.useContext)(i);if(!n)throw new o.dV("NavbarSecondaryMenuContentProvider");let[,r]=n,l=(0,o.Be)(t);return(0,a.useEffect)(()=>{r({component:e,props:l})},[r,e,l]),(0,a.useEffect)(()=>()=>r({component:null,props:null}),[r]),null}},9299(e,t,n){"use strict";n.d(t,{l:()=>o});var r=n(1763),a=n(4619);function o({desktopBreakpoint:e=996}={}){let[t,n]=(0,r.useState)(()=>"ssr");return(0,r.useEffect)(()=>{function t(){n(function(e){if(!a.A.canUseDOM)throw Error("getWindowSize() should only be called after React hydration");return window.innerWidth>e?"desktop":"mobile"}(e))}return t(),window.addEventListener("resize",t),()=>{window.removeEventListener("resize",t)}},[e]),t}},1009(e,t,n){"use strict";n.d(t,{G:()=>r});let r={page:{blogListPage:"blog-list-page",blogPostPage:"blog-post-page",blogTagsListPage:"blog-tags-list-page",blogTagPostListPage:"blog-tags-post-list-page",blogAuthorsListPage:"blog-authors-list-page",blogAuthorsPostsPage:"blog-authors-posts-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",admonition:"theme-admonition",unlistedBanner:"theme-unlisted-banner",draftBanner:"theme-draft-banner",admonitionType:e=>`theme-admonition-${e}`},announcementBar:{container:"theme-announcement-bar"},tabs:{container:"theme-tabs-container"},layout:{navbar:{container:"theme-layout-navbar",containerLeft:"theme-layout-navbar-left",containerRight:"theme-layout-navbar-right",mobileSidebar:{container:"theme-layout-navbar-sidebar",panel:"theme-layout-navbar-sidebar-panel"}},main:{container:"theme-layout-main"},footer:{container:"theme-layout-footer",column:"theme-layout-footer-column"}},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:e=>`theme-doc-sidebar-item-category-level-${e}`,docSidebarItemLinkLevel:e=>`theme-doc-sidebar-item-link-level-${e}`,docCard:{container:"theme-doc-card-container",heading:"theme-doc-card-heading",icon:"theme-doc-card-icon",title:"theme-doc-card-title",description:"theme-doc-card-description"}},blog:{blogFooterTagsRow:"theme-blog-footer-tags-row",blogFooterEditMetaRow:"theme-blog-footer-edit-meta-row"},pages:{pageFooterEditMetaRow:"theme-pages-footer-edit-meta-row"}}},7351(e,t,n){"use strict";function r(){return window.matchMedia("(prefers-reduced-motion: reduce)").matches}n.d(t,{O:()=>r})},4409(e,t,n){"use strict";n.d(t,{v:()=>a});var r=n(8168);function a(e){let{navbar:{hideOnScroll:t}}=(0,r.p)();if(void 0!==e)return t?"anchorTargetHideOnScrollNavbar_Lo9g":"anchorTargetStickyNavbar_zfeO"}},9327(e,t,n){"use strict";n.d(t,{$Z:()=>i,Hl:()=>l,aZ:()=>s,jy:()=>u});var r=n(1763),a=n(6532),o=n(7850);function i(e){let t,n;t=(0,a.W6)(),n=(0,o._q)((t,n)=>{if("POP"===n)return e(t,n)}),(0,r.useEffect)(()=>t.block((e,t)=>n(e,t)),[t,n])}function l(e){let t=(0,a.W6)();return(0,r.useSyncExternalStore)(t.listen,()=>e(t),()=>e({...t,location:{...t.location,search:"",hash:"",state:void 0}}))}function s(e){return l(t=>null===e?null:new URLSearchParams(t.location.search).get(e))}function u(e,t){let n=(function(e,t){let n=new URLSearchParams;for(let r of e)for(let[e,a]of r.entries())"append"===t?n.append(e,a):n.set(e,a);return n})(e.map(e=>new URLSearchParams(e??"")),t).toString();return n?`?${n}`:n}},8292(e,t,n){"use strict";function r(e,t=(e,t)=>e===t){return e.filter((n,r)=>e.findIndex(e=>t(e,n))!==r)}function a(e){return Array.from(new Set(e))}n.d(t,{XI:()=>r,sb:()=>a})},310(e,t,n){"use strict";n.d(t,{Jx:()=>b,be:()=>m,e3:()=>g});var r=n(1987),a=n(1763),o=n(3526),i=n(7634),l=n(7581),s=n(319),u=n(6461);function c({title:e}){let t=(0,u.s$)().format(e);return(0,r.jsxs)(i.A,{children:[(0,r.jsx)("title",{children:t}),(0,r.jsx)("meta",{property:"og:title",content:t})]})}function d({description:e}){return(0,r.jsxs)(i.A,{children:[(0,r.jsx)("meta",{name:"description",content:e}),(0,r.jsx)("meta",{property:"og:description",content:e})]})}function f({image:e}){let{withBaseUrl:t}=(0,s.hH)(),n=t(e,{absolute:!0});return(0,r.jsxs)(i.A,{children:[(0,r.jsx)("meta",{property:"og:image",content:n}),(0,r.jsx)("meta",{name:"twitter:image",content:n})]})}function p({keywords:e}){return(0,r.jsx)(i.A,{children:(0,r.jsx)("meta",{name:"keywords",content:Array.isArray(e)?e.join(","):e})})}function m({title:e,description:t,keywords:n,image:a,children:o}){return(0,r.jsxs)(r.Fragment,{children:[e&&(0,r.jsx)(c,{title:e}),t&&(0,r.jsx)(d,{description:t}),n&&(0,r.jsx)(p,{keywords:n}),a&&(0,r.jsx)(f,{image:a}),o&&(0,r.jsx)(i.A,{children:o})]})}let h=a.createContext(void 0);function g({className:e,children:t}){let n=a.useContext(h),l=(0,o.A)(n,e);return(0,r.jsxs)(h.Provider,{value:l,children:[(0,r.jsx)(i.A,{children:(0,r.jsx)("html",{className:l})}),t]})}function b({children:e}){var t;let n=(0,l.A)(),a=(t=n.plugin.name,`plugin-${t.replace(/docusaurus-(?:plugin|theme)-(?:content-)?/gi,"")}`),i=`plugin-id-${n.plugin.id}`;return(0,r.jsx)(g,{className:(0,o.A)(a,i),children:e})}},7850(e,t,n){"use strict";n.d(t,{Be:()=>u,ZC:()=>l,_q:()=>i,dV:()=>s,fM:()=>c});var r=n(1987),a=n(1763),o=n(9879);function i(e){let t=(0,a.useRef)(e);return(0,o.A)(()=>{t.current=e},[e]),(0,a.useCallback)((...e)=>t.current(...e),[])}function l(e){let t=(0,a.useRef)(void 0);return(0,o.A)(()=>{t.current=e}),t.current}class s extends Error{constructor(e,t){super(),this.name="ReactContextError",this.message=`Hook ${this.stack?.split("\n")[1]?.match(/at (?:\w+\.)?(?\w+)/)?.groups.name??""} is called outside the <${e}>. ${t??""}`}}function u(e){let t=Object.entries(e);return t.sort((e,t)=>e[0].localeCompare(t[0])),(0,a.useMemo)(()=>e,t.flat())}function c(e){return({children:t})=>(0,r.jsx)(r.Fragment,{children:e.reduceRight((e,t)=>(0,r.jsx)(t,{children:e}),t)})}},7711(e,t,n){"use strict";n.d(t,{Dt:()=>l,ys:()=>i});var r=n(1763),a=n(439),o=n(5484);function i(e,t){let n=e=>(!e||e.endsWith("/")?e:`${e}/`)?.toLowerCase();return n(e)===n(t)}function l(){let{baseUrl:e}=(0,o.A)().siteConfig;return(0,r.useMemo)(()=>(function({baseUrl:e,routes:t}){function n(t){return t.path===e&&!0===t.exact}function r(t){return t.path===e&&!t.exact}return function e(t){if(0===t.length)return;let a=t.find(n);return a||e(t.filter(r).flatMap(e=>e.routes??[]))}(t)})({routes:a.A,baseUrl:e}),[e])}},8522(e,t,n){"use strict";n.d(t,{Mq:()=>p,Tv:()=>c,a_:()=>m,gk:()=>h});var r=n(1987),a=n(1763),o=n(4619),i=n(8261),l=n(9879),s=n(7850);let u=a.createContext(void 0);function c({children:e}){let t,n=(t=(0,a.useRef)(!0),(0,a.useMemo)(()=>({scrollEventsEnabledRef:t,enableScrollEvents:()=>{t.current=!0},disableScrollEvents:()=>{t.current=!1}}),[]));return(0,r.jsx)(u.Provider,{value:n,children:e})}function d(){let e=(0,a.useContext)(u);if(null==e)throw new s.dV("ScrollControllerProvider");return e}let f=()=>o.A.canUseDOM?{scrollX:window.pageXOffset,scrollY:window.pageYOffset}:null;function p(e,t=[]){let{scrollEventsEnabledRef:n}=d(),r=(0,a.useRef)(f()),o=(0,s._q)(e);(0,a.useEffect)(()=>{let e=()=>{if(!n.current)return;let e=f();o(e,r.current),r.current=e},t={passive:!0};return e(),window.addEventListener("scroll",e,t),()=>window.removeEventListener("scroll",e,t)},[o,n,...t])}function m(){let e,t,n,r=d(),o=(e=(0,a.useRef)({elem:null,top:0}),t=(0,a.useCallback)(t=>{e.current={elem:t,top:t.getBoundingClientRect().top}},[]),n=(0,a.useCallback)(()=>{let{current:{elem:t,top:n}}=e;if(!t)return{restored:!1};let r=t.getBoundingClientRect().top-n;return r&&window.scrollBy({left:0,top:r}),e.current={elem:null,top:0},{restored:0!==r}},[]),(0,a.useMemo)(()=>({save:t,restore:n}),[n,t])),i=(0,a.useRef)(void 0),s=(0,a.useCallback)(e=>{o.save(e),r.disableScrollEvents(),i.current=()=>{let{restored:e}=o.restore();if(i.current=void 0,e){let e=()=>{r.enableScrollEvents(),window.removeEventListener("scroll",e)};window.addEventListener("scroll",e)}else r.enableScrollEvents()}},[r,o]);return(0,l.A)(()=>{queueMicrotask(()=>i.current?.())}),{blockElementScrollPositionUntilNextRender:s}}function h(){let e=(0,a.useRef)(null),t=(0,i.A)()&&"smooth"===getComputedStyle(document.documentElement).scrollBehavior;return{startScroll:n=>{let r,a;e.current=t?(window.scrollTo({top:n,behavior:"smooth"}),()=>{}):(r=null,a=document.documentElement.scrollTop>n,!function e(){let t=document.documentElement.scrollTop;(a&&t>n||!a&&tr&&cancelAnimationFrame(r))},cancelScroll:()=>e.current?.()}}},8184(e,t,n){"use strict";n.d(t,{Wf:()=>u,Dv:()=>c});var r=n(1763),a=JSON.parse('{"N":"localStorage","M":"-806"}');let o=a.N;function i({key:e,oldValue:t,newValue:n,storage:r}){if(t===n)return;let a=document.createEvent("StorageEvent");a.initStorageEvent("storage",!1,!1,e,t,n,window.location.href,r),window.dispatchEvent(a)}let l=!1,s={get:()=>null,set:()=>{},del:()=>{},listen:()=>()=>{}};function u(e,t){let n=`${e}${a.M}`;if("u"{try{return u.getItem(n)}catch(e){return console.error(`Docusaurus storage error, can't get key=${n}`,e),null}},set:e=>{try{let t=u.getItem(n);u.setItem(n,e),i({key:n,oldValue:t,newValue:e,storage:u})}catch(t){console.error(`Docusaurus storage error, can't set ${n}=${e}`,t)}},del:()=>{try{let e=u.getItem(n);u.removeItem(n),i({key:n,oldValue:e,newValue:null,storage:u})}catch(e){console.error(`Docusaurus storage error, can't delete key=${n}`,e)}},listen:e=>{try{let t=t=>{t.storageArea===u&&t.key===n&&e(t)};return window.addEventListener("storage",t),()=>window.removeEventListener("storage",t)}catch(e){return console.error(`Docusaurus storage error, can't listen for changes of key=${n}`,e),()=>{}}}}}function c(e,t){let[n]=(0,r.useState)(()=>null===e?s:u(e,t)),a=(0,r.useCallback)(e=>"u"{}:n.listen(e),[n]);return[(0,r.useSyncExternalStore)(a,()=>n.get(),()=>null),n]}},6461(e,t,n){"use strict";n.d(t,{AL:()=>c,s$:()=>d});var r=n(1987),a=n(1763),o=n(5484),i=n(7581),l=n(7850);let s=({title:e,siteTitle:t,titleDelimiter:n})=>{let r=e?.trim();return r&&r!==t?`${r} ${n} ${t}`:t},u=(0,a.createContext)(null);function c({formatter:e,children:t}){return(0,r.jsx)(u.Provider,{value:e,children:t})}function d(){let e=function(){let e=(0,a.useContext)(u);if(null===e)throw new l.dV("TitleFormatterProvider");return e}(),{siteConfig:t}=(0,o.A)(),{title:n,titleDelimiter:r}=t,{plugin:c}=(0,i.A)();return{format:t=>e({title:t,siteTitle:n,titleDelimiter:r,plugin:c,defaultFormatter:s})}}},5941(e,t,n){"use strict";n.d(t,{o:()=>i});var r=n(5484),a=n(6532),o=n(2455);function i(){let{siteConfig:{baseUrl:e,trailingSlash:t},i18n:{localeConfigs:n}}=(0,r.A)(),{pathname:i}=(0,a.zy)(),l=(0,o.applyTrailingSlash)(i,{trailingSlash:t,baseUrl:e}).replace(e,"");return{createUrl:function({locale:e,fullyQualified:t}){let r=function(e){let t=n[e];if(!t)throw Error(`Unexpected Docusaurus bug, no locale config found for locale=${e}`);return t}(e),a=`${t?r.url:""}`,o=r.baseUrl;return`${a}${o}${l}`}}}},3740(e,t,n){"use strict";n.d(t,{$:()=>i});var r=n(1763),a=n(6532),o=n(7850);function i(e){let t=(0,a.zy)(),n=(0,o.ZC)(t),i=(0,o._q)(e);(0,r.useEffect)(()=>{n&&t!==n&&i({location:t,previousLocation:n})},[i,t,n])}},8168(e,t,n){"use strict";n.d(t,{p:()=>a});var r=n(5484);function a(){return(0,r.A)().siteConfig.themeConfig}},8742(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.addTrailingSlash=a,t.default=function(e,t){let{trailingSlash:n,baseUrl:r}=t;if(e.startsWith("#")||void 0===n)return e;let[i]=e.split(/[#?]/),l="/"===i||i===r?i:n?a(i):o(i);return e.replace(i,l)},t.addLeadingSlash=function(e){return(0,r.addPrefix)(e,"/")},t.removeTrailingSlash=o;let r=n(9817);function a(e){return e.endsWith("/")?e:`${e}/`}function o(e){return(0,r.removeSuffix)(e,"/")}},4972(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=function e(t){return t.cause?[t,...e(t.cause)]:[t]}},2455(e,t,n){"use strict";t.getErrorCausalChain=t.applyTrailingSlash=void 0;let r=n(5482);var a=n(8742);Object.defineProperty(t,"applyTrailingSlash",{enumerable:!0,get:function(){return r.__importDefault(a).default}}),n(9817);var o=n(4972);Object.defineProperty(t,"getErrorCausalChain",{enumerable:!0,get:function(){return o.getErrorCausalChain}})},9817(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.addPrefix=function(e,t){return e.startsWith(t)?e:`${t}${e}`},t.removeSuffix=function(e,t){return""===t?e:e.endsWith(t)?e.slice(0,-t.length):e},t.addSuffix=function(e,t){return e.endsWith(t)?e:`${e}${t}`},t.removePrefix=function(e,t){return e.startsWith(t)?e.slice(t.length):e}},4784(e,t,n){"use strict";n.r(t),n.d(t,{default:()=>r});let r={title:"Orbien",tagline:"\u8F7B\u91CF\u3001\u9AD8\u6027\u80FD\u3001\u5B89\u5168\u7684\u5185\u7F51\u7A7F\u900F\u5DE5\u5177",favicon:"img/favicon.ico",future:{v4:{removeLegacyPostBuildHeadAttribute:!0,useCssCascadeLayers:!0,siteStorageNamespacing:!0,fasterByDefault:!0,mdx1CompatDisabledByDefault:!0},experimental_vcs:{},experimental_router:"browser",faster:{swcJsLoader:!0,swcJsMinimizer:!0,swcHtmlMinimizer:!0,lightningCssMinimizer:!0,mdxCrossCompilerCache:!0,rspackBundler:!0,rspackPersistentCache:!0,ssgWorkerThreads:!0,gitEagerVcs:!0}},url:"https://orbien-org.github.io",baseUrl:"/orbien/",organizationName:"orbien-org",projectName:"orbien",deploymentBranch:"gh-pages",trailingSlash:!1,onBrokenLinks:"throw",markdown:{hooks:{onBrokenMarkdownLinks:"throw",onBrokenMarkdownImages:"throw"},format:"mdx",mermaid:!1,emoji:!0,mdx1Compat:{comments:!1,admonitions:!1,headingIds:!1},anchors:{maintainCase:!1}},i18n:{defaultLocale:"zh-Hans",locales:["zh-Hans"],path:"i18n",localeConfigs:{}},presets:[["classic",{docs:{sidebarPath:"./sidebars.ts",editUrl:"https://github.com/orbien-org/orbien/tree/main/docs/"},blog:!1,theme:{customCss:"./src/css/custom.css"}}]],themeConfig:{image:"img/logo.png",colorMode:{defaultMode:"light",respectPrefersColorScheme:!0,disableSwitch:!1},navbar:{title:"Orbien",logo:{alt:"Orbien",src:"img/logo.png"},items:[{href:"https://github.com/orbien-org/orbien",label:"GitHub",position:"right"}],hideOnScroll:!1},footer:{style:"dark",copyright:"Copyright \xa9 2026 Orbien. Apache-2.0.",links:[]},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:["toml","bash","json"],magicComments:[{className:"theme-code-block-highlighted-line",line:"highlight-next-line",block:{start:"highlight-start",end:"highlight-end"}}]},docs:{versionPersistence:"localStorage",sidebar:{hideable:!1,autoCollapseCategories:!1}},blog:{sidebar:{groupByYear:!0}},metadata:[],tableOfContents:{minHeadingLevel:2,maxHeadingLevel:3}},baseUrlIssueBanner:!0,storage:{type:"localStorage",namespace:!0},onBrokenAnchors:"warn",onDuplicateRoutes:"warn",staticDirectories:["static"],customFields:{},plugins:[],themes:[],scripts:[],headTags:[],stylesheets:[],clientModules:[],titleDelimiter:"|",noIndex:!1}},5062(e,t,n){"use strict";function r(){return(r=Object.assign?Object.assign.bind():function(e){for(var t=1;tr})},949(e,t,n){"use strict";function r(e,t){return(r=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e})(e,t)}function a(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,r(e,t)}n.d(t,{A:()=>a})},6905(e,t,n){"use strict";function r(e,t){if(null==e)return{};var n={};for(var r in e)if(({}).hasOwnProperty.call(e,r)){if(-1!==t.indexOf(r))continue;n[r]=e[r]}return n}n.d(t,{A:()=>r})},3526(e,t,n){"use strict";n.d(t,{A:()=>r});let r=function(){for(var e,t,n=0,r="",a=arguments.length;nB,f4:()=>eb});var s,u,c,d,f,p,m,h,g,y,b,v,w,k,x,S,E,_,A=n(1763),C=n(3526),T=Object.create,P=Object.defineProperty,O=Object.defineProperties,L=Object.getOwnPropertyDescriptor,N=Object.getOwnPropertyDescriptors,j=Object.getOwnPropertyNames,R=Object.getOwnPropertySymbols,I=Object.getPrototypeOf,D=Object.prototype.hasOwnProperty,F=Object.prototype.propertyIsEnumerable,z=(e,t,n)=>t in e?P(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,M=(e,t)=>{for(var n in t||(t={}))D.call(t,n)&&z(e,n,t[n]);if(R)for(var n of R(t))F.call(t,n)&&z(e,n,t[n]);return e},$=(e,t)=>{var n={};for(var r in e)D.call(e,r)&&0>t.indexOf(r)&&(n[r]=e[r]);if(null!=e&&R)for(var r of R(e))0>t.indexOf(r)&&F.call(e,r)&&(n[r]=e[r]);return n},B=(l=null!=(o=(r={"../../node_modules/.pnpm/prismjs@1.29.0_patch_hash=vrxx3pzkik6jpmgpayxfjunetu/node_modules/prismjs/prism.js"(e,t){var n=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,"&").replace(/=c.reach));x+=k.value.length,k=k.next){var S,E=k.value;if(n.length>t.length)return;if(!(E instanceof a)){var _=1;if(y){if(!(S=o(w,x,t,g))||S.index>=t.length)break;var A=S.index,C=S.index+S[0].length,T=x;for(T+=k.value.length;A>=T;)T+=(k=k.next).value.length;if(T-=k.value.length,x=T,k.value instanceof a)continue;for(var P=k;P!==n.tail&&(Tc.reach&&(c.reach=j);var R=k.prev;if(L&&(R=l(n,R,L),x+=L.length),function(e,t,n){for(var r=t.next,a=0;a1){var I={cause:d+","+p,reach:j};e(t,n,i,k.prev,x,I),c&&I.reach>c.reach&&(c.reach=I.reach)}}}}}}(e,u,t,u.head,0),function(e){for(var t=[],n=e.head.next;n!==e.tail;)t.push(n.value),n=n.next;return t}(u)},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(){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 l(e,t,n){var r=t.next,a={value:n,prev:t,next:r};return t.next=a,r.prev=a,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 s in o.attributes)l+=" "+s+'="'+(o.attributes[s]||"").replace(/"/g,""")+'"';return"<"+o.tag+' class="'+o.classes.join(" ")+'"'+l+">"+o.content+""},r}();t.exports=n,n.default=n}},function(){return a||(0,r[j(r)[0]])((a={exports:{}}).exports,a),a.exports})())?T(I(o)):{},((e,t,n,r)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let a of j(t))D.call(e,a)||a===n||P(e,a,{get:()=>t[a],enumerable:!(r=L(t,a))||r.enumerable});return e})(!i&&o&&o.__esModule?l:P(l,"default",{value:o,enumerable:!0}),o));B.languages.markup={comment:{pattern://,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|)*\]\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://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"},{pattern:/^(\s*)["']|["']$/,lookbehind:!0}]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},B.languages.markup.tag.inside["attr-value"].inside.entity=B.languages.markup.entity,B.languages.markup.doctype.inside["internal-subset"].inside=B.languages.markup,B.hooks.add("wrap",function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&/,"&"))}),Object.defineProperty(B.languages.markup.tag,"addInlined",{value:function(e,t){var n={},n=(n["language-"+t]={pattern:/(^$)/i,lookbehind:!0,inside:B.languages[t]},n.cdata=/^$/i,{"included-cdata":{pattern://i,inside:n}}),t=(n["language-"+t]={pattern:/[\s\S]+/,inside:B.languages[t]},{});t[e]={pattern:RegExp(/(<__[^>]*>)(?:))*\]\]>|(?!)/.source.replace(/__/g,function(){return e}),"i"),lookbehind:!0,greedy:!0,inside:n},B.languages.insertBefore("markup","cdata",t)}}),Object.defineProperty(B.languages.markup.tag,"addAttribute",{value:function(e,t){B.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:B.languages[t]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),B.languages.html=B.languages.markup,B.languages.mathml=B.languages.markup,B.languages.svg=B.languages.markup,B.languages.xml=B.languages.extend("markup",{}),B.languages.ssml=B.languages.xml,B.languages.atom=B.languages.xml,B.languages.rss=B.languages.xml,s={pattern:/\\[\\(){}[\]^$+*?|.]/,alias:"escape"},c=RegExp((c="(?:[^\\\\-]|"+(u=/\\(?:x[\da-fA-F]{2}|u[\da-fA-F]{4}|u\{[\da-fA-F]+\}|0[0-7]{0,2}|[123][0-7]{2}|c[a-zA-Z]|.)/).source+")")+"-"+c),d={pattern:/(<|')[^<>']+(?=[>']$)/,lookbehind:!0,alias:"variable"},B.languages.regex={"char-class":{pattern:/((?:^|[^\\])(?:\\\\)*)\[(?:[^\\\]]|\\[\s\S])*\]/,lookbehind:!0,inside:{"char-class-negation":{pattern:/(^\[)\^/,lookbehind:!0,alias:"operator"},"char-class-punctuation":{pattern:/^\[|\]$/,alias:"punctuation"},range:{pattern:c,inside:{escape:u,"range-punctuation":{pattern:/-/,alias:"operator"}}},"special-escape":s,"char-set":{pattern:/\\[wsd]|\\p\{[^{}]+\}/i,alias:"class-name"},escape:u}},"special-escape":s,"char-set":{pattern:/\.|\\[wsd]|\\p\{[^{}]+\}/i,alias:"class-name"},backreference:[{pattern:/\\(?![123][0-7]{2})[1-9]/,alias:"keyword"},{pattern:/\\k<[^<>']+>/,alias:"keyword",inside:{"group-name":d}}],anchor:{pattern:/[$^]|\\[ABbGZz]/,alias:"function"},escape:u,group:[{pattern:/\((?:\?(?:<[^<>']+>|'[^<>']+'|[>:]|]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/},B.languages.javascript=B.languages.extend("clike",{"class-name":[B.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}|\?\?=?|\?\.?|[~:]/}),B.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,B.languages.insertBefore("javascript","keyword",{regex:{pattern:RegExp(/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)/.source+/\//.source+"(?:"+/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}/.source+"|"+/(?:\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.)*\])*\])*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}v[dgimyus]{0,7}/.source+")"+/(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/.source),lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:B.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:B.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:B.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:B.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:B.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),B.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:B.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"}}),B.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),B.languages.markup&&(B.languages.markup.tag.addInlined("script","javascript"),B.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")),B.languages.js=B.languages.javascript,B.languages.actionscript=B.languages.extend("javascript",{keyword:/\b(?:as|break|case|catch|class|const|default|delete|do|dynamic|each|else|extends|final|finally|for|function|get|if|implements|import|in|include|instanceof|interface|internal|is|namespace|native|new|null|override|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|use|var|void|while|with)\b/,operator:/\+\+|--|(?:[+\-*\/%^]|&&?|\|\|?|<>?>?|[!=]=?)=?|[~?@]/}),B.languages.actionscript["class-name"].alias="function",delete B.languages.actionscript.parameter,delete B.languages.actionscript["literal-property"],B.languages.markup&&B.languages.insertBefore("actionscript","string",{xml:{pattern:/(^|[^.])<\/?\w+(?:\s+[^\s>\/=]+=("|')(?:\\[\s\S]|(?!\2)[^\\])*\2)*\s*\/?>/,lookbehind:!0,inside:B.languages.markup}}),f=/#(?!\{).+/,p={pattern:/#\{[^}]+\}/,alias:"variable"},B.languages.coffeescript=B.languages.extend("javascript",{comment:f,string:[{pattern:/'(?:\\[\s\S]|[^\\'])*'/,greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,greedy:!0,inside:{interpolation:p}}],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"}}),B.languages.insertBefore("coffeescript","comment",{"multiline-comment":{pattern:/###[\s\S]+?###/,alias:"comment"},"block-regex":{pattern:/\/{3}[\s\S]*?\/{3}/,alias:"regex",inside:{comment:f,interpolation:p}}}),B.languages.insertBefore("coffeescript","string",{"inline-javascript":{pattern:/`(?:\\[\s\S]|[^\\`])*`/,inside:{delimiter:{pattern:/^`|`$/,alias:"punctuation"},script:{pattern:/[\s\S]+/,alias:"language-javascript",inside:B.languages.javascript}}},"multiline-string":[{pattern:/'''[\s\S]*?'''/,greedy:!0,alias:"string"},{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string",inside:{interpolation:p}}]}),B.languages.insertBefore("coffeescript","keyword",{property:/(?!\d)\w+(?=\s*:(?!:))/}),delete B.languages.coffeescript["template-string"],B.languages.coffee=B.languages.coffeescript,Object.defineProperty(m=B.languages.javadoclike={parameter:{pattern:/(^[\t ]*(?:\/{3}|\*|\/\*\*)\s*@(?:arg|arguments|param)\s+)\w+/m,lookbehind:!0},keyword:{pattern:/(^[\t ]*(?:\/{3}|\*|\/\*\*)\s*|\{)@[a-z][a-zA-Z-]+\b/m,lookbehind:!0},punctuation:/[{}]/},"addSupport",{value:function(e,t){(e="string"==typeof e?[e]:e).forEach(function(e){var n=function(e){e.inside||(e.inside={}),e.inside.rest=t},r="doc-comment";if(a=B.languages[e]){var a,o=a[r];if((o=o||(a=B.languages.insertBefore(e,"comment",{"doc-comment":{pattern:/(^|[^\\])\/\*\*[^/][\s\S]*?(?:\*\/|$)/,lookbehind:!0,alias:"comment"}}))[r])instanceof RegExp&&(o=a[r]={pattern:o}),Array.isArray(o))for(var i=0,l=o.length;i|\+|~|\|\|/,punctuation:/[(),]/}},B.languages.css.atrule.inside["selector-function-argument"].inside=g,B.languages.insertBefore("css","property",{variable:{pattern:/(^|[^-\w\xA0-\uFFFF])--(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*/i,lookbehind:!0}}),g={pattern:/(\b\d+)(?:%|[a-z]+(?![\w-]))/,lookbehind:!0},y={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0},B.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|RebeccaPurple|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:g,number:y,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:g,number:y}),function(e){var t=/[*&][^\s[\]{},]+/,n=/!(?:<[\w\-%#;/?:@&=+$,.!~*'()[\]]+>|(?:[a-zA-Z\d-]*!)?[\w\-%#;/?:@&=+$.~*'()]+)?/,r="(?:"+n.source+"(?:[ ]+"+t.source+")?|"+t.source+"(?:[ ]+"+n.source+")?)",a=/(?:[^\s\x00-\x08\x0e-\x1f!"#%&'*,\-:>?@[\]`{|}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]|[?:-])(?:[ \t]*(?:(?![#:])|:))*/.source.replace(//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){return t=(t||"").replace(/m/g,"")+"m",RegExp(/([:\-,[{]\s*(?:\s<>[ \t]+)?)(?:<>)(?=[ \t]*(?:$|,|\]|\}|(?:[\r\n]\s*)?#))/.source.replace(/<>/g,function(){return r}).replace(/<>/g,function(){return e}),t)}e.languages.yaml={scalar:{pattern:RegExp(/([\-:]\s*(?:\s<>[ \t]+)?[|>])[ \t]*(?:((?:\r?\n|\r)[ \t]+)\S[^\r\n]*(?:\2[^\r\n]+)*)/.source.replace(/<>/g,function(){return r})),lookbehind:!0,alias:"string"},comment:/#.*/,key:{pattern:RegExp(/((?:^|[:\-,[{\r\n?])[ \t]*(?:<>[ \t]+)?)<>(?=\s*:\s)/.source.replace(/<>/g,function(){return r}).replace(/<>/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}(B),function(e){var t=/(?:\\.|[^\\\n\r]|(?:\n|\r\n?)(?![\r\n]))/.source;function n(e){return e=e.replace(//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,i=(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__(?:(?!_)|_(?:(?!_))+_)+__\b|\*\*(?:(?!\*)|\*(?:(?!\*))+\*)+\*\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^..)[\s\S]+(?=..$)/,lookbehind:!0,inside:{}},punctuation:/\*\*|__/}},italic:{pattern:n(/\b_(?:(?!_)|__(?:(?!_))+__)+_\b|\*(?:(?!\*)|\*\*(?:(?!\*))+\*\*)+\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^.)[\s\S]+(?=.$)/,lookbehind:!0,inside:{}},punctuation:/[*_]/}},strike:{pattern:n(/(~~?)(?:(?!~))+\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(/!?\[(?:(?!\]))+\](?:\([^\s)]+(?:[\t ]+"(?:\\.|[^"\\])*")?\)|[ \t]?\[(?:(?!\]))+\])/.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",quot:'"'},s=String.fromCodePoint||String.fromCharCode;e.languages.md=e.languages.markdown}(B),B.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:B.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+/},B.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?|<|>)?|>[>=]?|\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(t,n,r){return t={code:t,grammar:n,language:r},e.hooks.run("before-tokenize",t),t.tokens=e.tokenize(t.code,t.grammar),e.hooks.run("after-tokenize",t),t.tokens}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 s={javascript:!0,js:!0,typescript:!0,ts:!0,jsx:!0,tsx:!0};e.hooks.add("after-tokenize",function(t){t.language in s&&function t(n){for(var i=0,s=n.length;i=d.length)return;var i,s,f,p,m,h,g,y=n[o];"string"==typeof y||"string"==typeof y.content?(i=d[u],-1!==(g=(h="string"==typeof y?y:y.content).indexOf(i))&&(++u,s=h.substring(0,g),m=c[i],f=void 0,(p={})["interpolation-punctuation"]=a,3===(p=e.tokenize(m,p)).length&&((f=[1,1]).push.apply(f,l(p[1],e.languages.javascript,"javascript")),p.splice.apply(p,f)),f=new e.Token("interpolation",p,r.alias,m),p=h.substring(g+i.length),m=[],s&&m.push(s),m.push(f),p&&(t(h=[p]),m.push.apply(m,h)),"string"==typeof y?(n.splice.apply(n,[o,1].concat(m)),o+=m.length-1):y.content=m)):Array.isArray(g=y.content)?t(g):t([g])}}(s),new e.Token(i,s,"language-"+i,t)}(c,d,f))):t(u):"string"!=typeof u&&t([u]))}}(t.tokens)})}(B),B.languages.typescript=B.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/}),B.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 B.languages.typescript.parameter,delete B.languages.typescript["literal-property"],b=B.languages.extend("typescript",{}),delete b["class-name"],B.languages.typescript["class-name"].inside=b,B.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:b}}}}),B.languages.ts=B.languages.typescript,v=B.languages.javascript,k="(@(?:arg|argument|param|property)\\s+(?:"+(w=/\{(?:[^{}]|\{(?:[^{}]|\{[^{}]*\})*\})+\}/.source)+"\\s+)?)",B.languages.jsdoc=B.languages.extend("javadoclike",{parameter:{pattern:RegExp(k+/(?:(?!\s)[$\w\xA0-\uFFFF.])+(?=\s|$)/.source),lookbehind:!0,inside:{punctuation:/\./}}}),B.languages.insertBefore("jsdoc","keyword",{"optional-parameter":{pattern:RegExp(k+/\[(?:(?!\s)[$\w\xA0-\uFFFF.])+(?:=[^[\]]+)?\](?=\s|$)/.source),lookbehind:!0,inside:{parameter:{pattern:/(^\[)[$\w\xA0-\uFFFF\.]+/,lookbehind:!0,inside:{punctuation:/\./}},code:{pattern:/(=)[\s\S]*(?=\]$)/,lookbehind:!0,inside:v,alias:"language-javascript"},punctuation:/[=[\]]/}},"class-name":[{pattern:RegExp(/(@(?:augments|class|extends|interface|memberof!?|template|this|typedef)\s+(?:\s+)?)[A-Z]\w*(?:\.[A-Z]\w*)*/.source.replace(//g,function(){return w})),lookbehind:!0,inside:{punctuation:/\./}},{pattern:RegExp("(@[a-z]+\\s+)"+w),lookbehind:!0,inside:{string:v.string,number:v.number,boolean:v.boolean,keyword:B.languages.typescript.keyword,operator:/=>|\.\.\.|[&|?:*]/,punctuation:/[.,;=<>{}()[\]]/}}],example:{pattern:/(@example\s+(?!\s))(?:[^@\s]|\s+(?!\s))+?(?=\s*(?:\*\s*)?(?:@\w|\*\/))/,lookbehind:!0,inside:{code:{pattern:/^([\t ]*(?:\*\s*)?)\S.*$/m,lookbehind:!0,inside:v,alias:"language-javascript"}}}}),B.languages.javadoclike.addSupport("javascript",B.languages.jsdoc),B.languages.flow=B.languages.extend("javascript",{}),B.languages.insertBefore("flow","keyword",{type:[{pattern:/\b(?:[Bb]oolean|Function|[Nn]umber|[Ss]tring|[Ss]ymbol|any|mixed|null|void)\b/,alias:"class-name"}]}),B.languages.flow["function-variable"].pattern=/(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=\s*(?:function\b|(?:\([^()]*\)(?:\s*:\s*\w+)?|(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/i,delete B.languages.flow.parameter,B.languages.insertBefore("flow","operator",{"flow-punctuation":{pattern:/\{\||\|\}/,alias:"punctuation"}}),Array.isArray(B.languages.flow.keyword)||(B.languages.flow.keyword=[B.languages.flow.keyword]),B.languages.flow.keyword.unshift({pattern:/(^|[^$]\b)(?:Class|declare|opaque|type)\b(?!\$)/,lookbehind:!0},{pattern:/(^|[^$]\B)\$(?:Diff|Enum|Exact|Keys|ObjMap|PropertyType|Record|Shape|Subtype|Supertype|await)\b(?!\$)/,lookbehind:!0}),B.languages.n4js=B.languages.extend("javascript",{keyword:/\b(?:Array|any|boolean|break|case|catch|class|const|constructor|continue|debugger|declare|default|delete|do|else|enum|export|extends|false|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|module|new|null|number|package|private|protected|public|return|set|static|string|super|switch|this|throw|true|try|typeof|var|void|while|with|yield)\b/}),B.languages.insertBefore("n4js","constant",{annotation:{pattern:/@+\w+/,alias:"operator"}}),B.languages.n4jsd=B.languages.n4js,function(e){function t(e,t){return RegExp(e.replace(//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*)(?:(?:\s*,\s*(?:\*\s*as\s+|\{[^{}]*\}))?|\*\s*as\s+|\{[^{}]*\})(?=\s*\bfrom\b)/.source),lookbehind:!0,inside:e.languages.javascript},exports:{pattern:t(/(\bexport\b\s*)(?:\*(?:\s*as\s+)?(?=\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*)#?/.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*\.{3}(?:[^{}]|)*\})/.source;function o(e,t){return RegExp(e=e.replace(//g,function(){return n}).replace(//g,function(){return r}).replace(//g,function(){return a}),t)}a=o(a).source,e.languages.jsx=e.languages.extend("markup",t),e.languages.jsx.tag.pattern=o(/<\/?(?:[\w.:-]+(?:+(?:[\w.:$-]+(?:=(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\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(//.source),inside:e.languages.jsx}},e.languages.jsx.tag),e.languages.insertBefore("inside","special-attr",{script:{pattern:o(/=/.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(""):""};e.hooks.add("after-tokenize",function(t){"jsx"!==t.language&&"tsx"!==t.language||function t(n){for(var r=[],a=0;a"!==o.content[o.content.length-1].content&&r.push({tagName:i(o.content[0].content[1]),openedBraces:0}):0]=?/,punctuation:/[(),]/}},literal:{pattern:/#(?:colorLiteral|column|dsohandle|file(?:ID|Literal|Path)?|function|imageLiteral|line)\b/,alias:"constant"},"other-directive":{pattern:/#\w+\b/,alias:"property"},attribute:{pattern:/@\w+/,alias:"atrule"},"function-definition":{pattern:/(\bfunc\s+)\w+/,lookbehind:!0,alias:"function"},label:{pattern:/\b(break|continue)\s+\w+|\b[a-zA-Z_]\w*(?=\s*:\s*(?:for|repeat|while)\b)/,lookbehind:!0,alias:"important"},keyword:/\b(?:Any|Protocol|Self|Type|actor|as|assignment|associatedtype|associativity|async|await|break|case|catch|class|continue|convenience|default|defer|deinit|didSet|do|dynamic|else|enum|extension|fallthrough|fileprivate|final|for|func|get|guard|higherThan|if|import|in|indirect|infix|init|inout|internal|is|isolated|lazy|left|let|lowerThan|mutating|none|nonisolated|nonmutating|open|operator|optional|override|postfix|precedencegroup|prefix|private|protocol|public|repeat|required|rethrows|return|right|safe|self|set|some|static|struct|subscript|super|switch|throw|throws|try|typealias|unowned|unsafe|var|weak|where|while|willSet)\b/,boolean:/\b(?:false|true)\b/,nil:{pattern:/\bnil\b/,alias:"constant"},"short-argument":/\$\d+\b/,omit:{pattern:/\b_\b/,alias:"keyword"},number:/\b(?:[\d_]+(?:\.[\de_]+)?|0x[a-f0-9_]+(?:\.[a-f0-9p_]+)?|0b[01_]+|0o[0-7_]+)\b/i,"class-name":/\b[A-Z](?:[A-Z_\d]*[a-z]\w*)?\b/,function:/\b[a-z_]\w*(?=\s*\()/i,constant:/\b(?:[A-Z_]{2,}|k[A-Z][A-Za-z_]+)\b/,operator:/[-+*/%=!<>&|^~?]+|\.[.\-+*/%=!<>&|^~?]+/,punctuation:/[{}[\]();,.:\\]/},B.languages.swift["string-literal"].forEach(function(e){e.inside.interpolation.inside=B.languages.swift}),B.languages.kotlin=B.languages.extend("clike",{keyword:{pattern:/(^|[^.])\b(?:abstract|actual|annotation|as|break|by|catch|class|companion|const|constructor|continue|crossinline|data|do|dynamic|else|enum|expect|external|final|finally|for|fun|get|if|import|in|infix|init|inline|inner|interface|internal|is|lateinit|noinline|null|object|open|operator|out|override|package|private|protected|public|reified|return|sealed|set|super|suspend|tailrec|this|throw|to|try|typealias|val|var|vararg|when|where|while)\b/,lookbehind:!0},function:[{pattern:/(?:`[^\r\n`]+`|\b\w+)(?=\s*\()/,greedy:!0},{pattern:/(\.)(?:`[^\r\n`]+`|\w+)(?=\s*\{)/,lookbehind:!0,greedy:!0}],number:/\b(?:0[xX][\da-fA-F]+(?:_[\da-fA-F]+)*|0[bB][01]+(?:_[01]+)*|\d+(?:_\d+)*(?:\.\d+(?:_\d+)*)?(?:[eE][+-]?\d+(?:_\d+)*)?[fFL]?)\b/,operator:/\+[+=]?|-[-=>]?|==?=?|!(?:!|==?)?|[\/*%<>]=?|[?:]:?|\.\.|&&|\|\||\b(?:and|inv|or|shl|shr|ushr|xor)\b/}),delete B.languages.kotlin["class-name"],S={"interpolation-punctuation":{pattern:/^\$\{?|\}$/,alias:"punctuation"},expression:{pattern:/[\s\S]+/,inside:B.languages.kotlin}},B.languages.insertBefore("kotlin","string",{"string-literal":[{pattern:/"""(?:[^$]|\$(?:(?!\{)|\{[^{}]*\}))*?"""/,alias:"multiline",inside:{interpolation:{pattern:/\$(?:[a-z_]\w*|\{[^{}]*\})/i,inside:S},string:/[\s\S]+/}},{pattern:/"(?:[^"\\\r\n$]|\\.|\$(?:(?!\{)|\{[^{}]*\}))*"/,alias:"singleline",inside:{interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$(?:[a-z_]\w*|\{[^{}]*\})/i,lookbehind:!0,inside:S},string:/[\s\S]+/}}],char:{pattern:/'(?:[^'\\\r\n]|\\(?:.|u[a-fA-F0-9]{0,4}))'/,greedy:!0}}),delete B.languages.kotlin.string,B.languages.insertBefore("kotlin","keyword",{annotation:{pattern:/\B@(?:\w+:)?(?:[A-Z]\w*|\[[^\]]+\])/,alias:"builtin"}}),B.languages.insertBefore("kotlin","function",{label:{pattern:/\b\w+@|@\w+\b/,alias:"symbol"}}),B.languages.kt=B.languages.kotlin,B.languages.kts=B.languages.kotlin,B.languages.c=B.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|[?:~]|[-+*/%&|^!=<>]=?/}),B.languages.insertBefore("c","string",{char:{pattern:/'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n]){0,32}'/,greedy:!0}}),B.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},B.languages.c.string],char:B.languages.c.char,comment:B.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:B.languages.c}}}}),B.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 B.languages.c.boolean,B.languages.objectivec=B.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 B.languages.objectivec["class-name"],B.languages.objc=B.languages.objectivec,B.languages.reason=B.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/}),B.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 B.languages.reason.function,function(e){for(var t=/\/\*(?:[^*/]|\*(?!\/)|\/(?!\*)|)*\*\//.source,n=0;n<2;n++)t=t.replace(//g,function(){return t});t=t.replace(//g,function(){return/[^\s\S]/.source}),e.languages.rust={comment:[{pattern:RegExp(/(^|[^\\])/.source+t),lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/b?"(?:\\[\s\S]|[^\\"])*"|b?r(#*)"(?:[^"]|"(?!\1))*"\1/,greedy:!0},char:{pattern:/b?'(?:\\(?:x[0-7][\da-fA-F]|u\{(?:[\da-fA-F]_*){1,6}\}|.)|[^\\\r\n\t'])'/,greedy:!0},attribute:{pattern:/#!?\[(?:[^\[\]"]|"(?:\\[\s\S]|[^\\"])*")*\]/,greedy:!0,alias:"attr-name",inside:{string:null}},"closure-params":{pattern:/([=(,:]\s*|\bmove\s*)\|[^|]*\||\|[^|]*\|(?=\s*(?:\{|->))/,lookbehind:!0,greedy:!0,inside:{"closure-punctuation":{pattern:/^\||\|$/,alias:"punctuation"},rest:null}},"lifetime-annotation":{pattern:/'\w+/,alias:"symbol"},"fragment-specifier":{pattern:/(\$\w+:)[a-z]+/,lookbehind:!0,alias:"punctuation"},variable:/\$\w+/,"function-definition":{pattern:/(\bfn\s+)\w+/,lookbehind:!0,alias:"function"},"type-definition":{pattern:/(\b(?:enum|struct|trait|type|union)\s+)\w+/,lookbehind:!0,alias:"class-name"},"module-declaration":[{pattern:/(\b(?:crate|mod)\s+)[a-z][a-z_\d]*/,lookbehind:!0,alias:"namespace"},{pattern:/(\b(?:crate|self|super)\s*)::\s*[a-z][a-z_\d]*\b(?:\s*::(?:\s*[a-z][a-z_\d]*\s*::)*)?/,lookbehind:!0,alias:"namespace",inside:{punctuation:/::/}}],keyword:[/\b(?:Self|abstract|as|async|await|become|box|break|const|continue|crate|do|dyn|else|enum|extern|final|fn|for|if|impl|in|let|loop|macro|match|mod|move|mut|override|priv|pub|ref|return|self|static|struct|super|trait|try|type|typeof|union|unsafe|unsized|use|virtual|where|while|yield)\b/,/\b(?:bool|char|f(?:32|64)|[ui](?:8|16|32|64|128|size)|str)\b/],function:/\b[a-z_]\w*(?=\s*(?:::\s*<|\())/,macro:{pattern:/\b\w+!/,alias:"property"},constant:/\b[A-Z_][A-Z_\d]+\b/,"class-name":/\b[A-Z]\w*\b/,namespace:{pattern:/(?:\b[a-z][a-z_\d]*\s*::\s*)*\b[a-z][a-z_\d]*\s*::(?!\s*<)/,inside:{punctuation:/::/}},number:/\b(?:0x[\dA-Fa-f](?:_?[\dA-Fa-f])*|0o[0-7](?:_?[0-7])*|0b[01](?:_?[01])*|(?:(?:\d(?:_?\d)*)?\.)?\d(?:_?\d)*(?:[Ee][+-]?\d+)?)(?:_?(?:f32|f64|[iu](?:8|16|32|64|size)?))?\b/,boolean:/\b(?:false|true)\b/,punctuation:/->|\.\.=|\.{1,3}|::|[{}[\];(),:]/,operator:/[-+*\/%!^]=?|=[=>]?|&[&=]?|\|[|=]?|<>?=?|[@?]/},e.languages.rust["closure-params"].inside.rest=e.languages.rust,e.languages.rust.attribute.inside.string=e.languages.rust.string}(B),B.languages.go=B.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/}),B.languages.insertBefore("go","string",{char:{pattern:/'(?:\\.|[^'\\\r\n]){0,10}'/,greedy:!0}}),delete B.languages.go["class-name"],E=/\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/,_=/\b(?!)\w+(?:\s*\.\s*\w+)*\b/.source.replace(//g,function(){return E.source}),B.languages.cpp=B.languages.extend("c",{"class-name":[{pattern:RegExp(/(\b(?:class|concept|enum|struct|typename)\s+)(?!)\w+/.source.replace(//g,function(){return E.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:E,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/}),B.languages.insertBefore("cpp","string",{module:{pattern:RegExp(/(\b(?:import|module)\s+)/.source+"(?:"+/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|<[^<>\r\n]*>/.source+"|"+/(?:\s*:\s*)?|:\s*/.source.replace(//g,function(){return _})+")"),lookbehind:!0,greedy:!0,inside:{string:/^[<"][\s\S]+/,operator:/:/,punctuation:/\./}},"raw-string":{pattern:/R"([^()\\ ]{0,16})\([\s\S]*?\)\1"/,alias:"string",greedy:!0}}),B.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:B.languages.cpp}}}}),B.languages.insertBefore("cpp","operator",{"double-colon":{pattern:/::/,alias:"punctuation"}}),B.languages.insertBefore("cpp","class-name",{"base-clause":{pattern:/(\b(?:class|struct)\s+\w+\s*:\s*)[^;{}"'\s]+(?:\s+[^;{}"'\s]+)*(?=\s*[;{])/,lookbehind:!0,greedy:!0,inside:B.languages.extend("cpp",{})}}),B.languages.insertBefore("inside","double-colon",{"class-name":/\b[a-z_]\w*\b(?!\s*::)/i},B.languages.cpp["base-clause"]),B.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:/[{}[\];(),.:]/},B.languages.python["string-interpolation"].inside.interpolation.inside.rest=B.languages.python,B.languages.py=B.languages.python,B.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"}},B.languages.webmanifest=B.languages.json;var U={},H={dracula:()=>W,duotoneDark:()=>q,duotoneLight:()=>G,github:()=>Y,gruvboxMaterialDark:()=>ed,gruvboxMaterialLight:()=>ef,jettwaveDark:()=>el,jettwaveLight:()=>es,nightOwl:()=>K,nightOwlLight:()=>Q,oceanicNext:()=>J,okaidia:()=>ee,oneDark:()=>eu,oneLight:()=>ec,palenight:()=>et,shadesOfPurple:()=>en,synthwave84:()=>er,ultramin:()=>ea,vsDark:()=>eo,vsLight:()=>ei};for(var V in H)P(U,V,{get:H[V],enumerable:!0});var W={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)"}}]},q={plain:{backgroundColor:"#2a2734",color:"#9a86fd"},styles:[{types:["comment","prolog","doctype","cdata","punctuation"],style:{color:"#6c6783"}},{types:["namespace"],style:{opacity:.7}},{types:["tag","operator","number"],style:{color:"#e09142"}},{types:["property","function"],style:{color:"#9a86fd"}},{types:["tag-id","selector","atrule-id"],style:{color:"#eeebff"}},{types:["attr-name"],style:{color:"#c4b9fe"}},{types:["boolean","string","entity","url","attr-value","keyword","control","directive","unit","statement","regex","atrule","placeholder","variable"],style:{color:"#ffcc99"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"#c4b9fe"}}]},G={plain:{backgroundColor:"#faf8f5",color:"#728fcb"},styles:[{types:["comment","prolog","doctype","cdata","punctuation"],style:{color:"#b6ad9a"}},{types:["namespace"],style:{opacity:.7}},{types:["tag","operator","number"],style:{color:"#063289"}},{types:["property","function"],style:{color:"#b29762"}},{types:["tag-id","selector","atrule-id"],style:{color:"#2d2006"}},{types:["attr-name"],style:{color:"#896724"}},{types:["boolean","string","entity","url","attr-value","keyword","control","directive","unit","statement","regex","atrule"],style:{color:"#728fcb"}},{types:["placeholder","variable"],style:{color:"#93abdc"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"#896724"}}]},Y={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"}}]},K={plain:{color:"#d6deeb",backgroundColor:"#011627"},styles:[{types:["changed"],style:{color:"rgb(162, 191, 252)",fontStyle:"italic"}},{types:["deleted"],style:{color:"rgba(239, 83, 80, 0.56)",fontStyle:"italic"}},{types:["inserted","attr-name"],style:{color:"rgb(173, 219, 103)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(99, 119, 119)",fontStyle:"italic"}},{types:["string","url"],style:{color:"rgb(173, 219, 103)"}},{types:["variable"],style:{color:"rgb(214, 222, 235)"}},{types:["number"],style:{color:"rgb(247, 140, 108)"}},{types:["builtin","char","constant","function"],style:{color:"rgb(130, 170, 255)"}},{types:["punctuation"],style:{color:"rgb(199, 146, 234)"}},{types:["selector","doctype"],style:{color:"rgb(199, 146, 234)",fontStyle:"italic"}},{types:["class-name"],style:{color:"rgb(255, 203, 139)"}},{types:["tag","operator","keyword"],style:{color:"rgb(127, 219, 202)"}},{types:["boolean"],style:{color:"rgb(255, 88, 116)"}},{types:["property"],style:{color:"rgb(128, 203, 196)"}},{types:["namespace"],style:{color:"rgb(178, 204, 214)"}}]},Q={plain:{color:"#403f53",backgroundColor:"#FBFBFB"},styles:[{types:["changed"],style:{color:"rgb(162, 191, 252)",fontStyle:"italic"}},{types:["deleted"],style:{color:"rgba(239, 83, 80, 0.56)",fontStyle:"italic"}},{types:["inserted","attr-name"],style:{color:"rgb(72, 118, 214)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(152, 159, 177)",fontStyle:"italic"}},{types:["string","builtin","char","constant","url"],style:{color:"rgb(72, 118, 214)"}},{types:["variable"],style:{color:"rgb(201, 103, 101)"}},{types:["number"],style:{color:"rgb(170, 9, 130)"}},{types:["punctuation"],style:{color:"rgb(153, 76, 195)"}},{types:["function","selector","doctype"],style:{color:"rgb(153, 76, 195)",fontStyle:"italic"}},{types:["class-name"],style:{color:"rgb(17, 17, 17)"}},{types:["tag"],style:{color:"rgb(153, 76, 195)"}},{types:["operator","property","keyword","namespace"],style:{color:"rgb(12, 150, 155)"}},{types:["boolean"],style:{color:"rgb(188, 84, 84)"}}]},Z="#c5a5c5",X="#8dc891",J={plain:{backgroundColor:"#282c34",color:"#ffffff"},styles:[{types:["attr-name"],style:{color:Z}},{types:["attr-value"],style:{color:X}},{types:["comment","block-comment","prolog","doctype","cdata","shebang"],style:{color:"#999999"}},{types:["property","number","function-name","constant","symbol","deleted"],style:{color:"#5a9bcf"}},{types:["boolean"],style:{color:"#ff8b50"}},{types:["tag"],style:{color:"#fc929e"}},{types:["string"],style:{color:X}},{types:["punctuation"],style:{color:X}},{types:["selector","char","builtin","inserted"],style:{color:"#D8DEE9"}},{types:["function"],style:{color:"#79b6f2"}},{types:["operator","entity","url","variable"],style:{color:"#d7deea"}},{types:["keyword"],style:{color:Z}},{types:["atrule","class-name"],style:{color:"#FAC863"}},{types:["important"],style:{fontWeight:"400"}},{types:["bold"],style:{fontWeight:"bold"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["namespace"],style:{opacity:.7}}]},ee={plain:{color:"#f8f8f2",backgroundColor:"#272822"},styles:[{types:["changed"],style:{color:"rgb(162, 191, 252)",fontStyle:"italic"}},{types:["deleted"],style:{color:"#f92672",fontStyle:"italic"}},{types:["inserted"],style:{color:"rgb(173, 219, 103)",fontStyle:"italic"}},{types:["comment"],style:{color:"#8292a2",fontStyle:"italic"}},{types:["string","url"],style:{color:"#a6e22e"}},{types:["variable"],style:{color:"#f8f8f2"}},{types:["number"],style:{color:"#ae81ff"}},{types:["builtin","char","constant","function","class-name"],style:{color:"#e6db74"}},{types:["punctuation"],style:{color:"#f8f8f2"}},{types:["selector","doctype"],style:{color:"#a6e22e",fontStyle:"italic"}},{types:["tag","operator","keyword"],style:{color:"#66d9ef"}},{types:["boolean"],style:{color:"#ae81ff"}},{types:["namespace"],style:{color:"rgb(178, 204, 214)",opacity:.7}},{types:["tag","property"],style:{color:"#f92672"}},{types:["attr-name"],style:{color:"#a6e22e !important"}},{types:["doctype"],style:{color:"#8292a2"}},{types:["rule"],style:{color:"#e6db74"}}]},et={plain:{color:"#bfc7d5",backgroundColor:"#292d3e"},styles:[{types:["comment"],style:{color:"rgb(105, 112, 152)",fontStyle:"italic"}},{types:["string","inserted"],style:{color:"rgb(195, 232, 141)"}},{types:["number"],style:{color:"rgb(247, 140, 108)"}},{types:["builtin","char","constant","function"],style:{color:"rgb(130, 170, 255)"}},{types:["punctuation","selector"],style:{color:"rgb(199, 146, 234)"}},{types:["variable"],style:{color:"rgb(191, 199, 213)"}},{types:["class-name","attr-name"],style:{color:"rgb(255, 203, 107)"}},{types:["tag","deleted"],style:{color:"rgb(255, 85, 114)"}},{types:["operator"],style:{color:"rgb(137, 221, 255)"}},{types:["boolean"],style:{color:"rgb(255, 88, 116)"}},{types:["keyword"],style:{fontStyle:"italic"}},{types:["doctype"],style:{color:"rgb(199, 146, 234)",fontStyle:"italic"}},{types:["namespace"],style:{color:"rgb(178, 204, 214)"}},{types:["url"],style:{color:"rgb(221, 221, 221)"}}]},en={plain:{color:"#9EFEFF",backgroundColor:"#2D2A55"},styles:[{types:["changed"],style:{color:"rgb(255, 238, 128)"}},{types:["deleted"],style:{color:"rgba(239, 83, 80, 0.56)"}},{types:["inserted"],style:{color:"rgb(173, 219, 103)"}},{types:["comment"],style:{color:"rgb(179, 98, 255)",fontStyle:"italic"}},{types:["punctuation"],style:{color:"rgb(255, 255, 255)"}},{types:["constant"],style:{color:"rgb(255, 98, 140)"}},{types:["string","url"],style:{color:"rgb(165, 255, 144)"}},{types:["variable"],style:{color:"rgb(255, 238, 128)"}},{types:["number","boolean"],style:{color:"rgb(255, 98, 140)"}},{types:["attr-name"],style:{color:"rgb(255, 180, 84)"}},{types:["keyword","operator","property","namespace","tag","selector","doctype"],style:{color:"rgb(255, 157, 0)"}},{types:["builtin","char","constant","function","class-name"],style:{color:"rgb(250, 208, 0)"}}]},er={plain:{backgroundColor:"linear-gradient(to bottom, #2a2139 75%, #34294f)",backgroundImage:"#34294f",color:"#f92aad",textShadow:"0 0 2px #100c0f, 0 0 5px #dc078e33, 0 0 10px #fff3"},styles:[{types:["comment","block-comment","prolog","doctype","cdata"],style:{color:"#495495",fontStyle:"italic"}},{types:["punctuation"],style:{color:"#ccc"}},{types:["tag","attr-name","namespace","number","unit","hexcode","deleted"],style:{color:"#e2777a"}},{types:["property","selector"],style:{color:"#72f1b8",textShadow:"0 0 2px #100c0f, 0 0 10px #257c5575, 0 0 35px #21272475"}},{types:["function-name"],style:{color:"#6196cc"}},{types:["boolean","selector-id","function"],style:{color:"#fdfdfd",textShadow:"0 0 2px #001716, 0 0 3px #03edf975, 0 0 5px #03edf975, 0 0 8px #03edf975"}},{types:["class-name","maybe-class-name","builtin"],style:{color:"#fff5f6",textShadow:"0 0 2px #000, 0 0 10px #fc1f2c75, 0 0 5px #fc1f2c75, 0 0 25px #fc1f2c75"}},{types:["constant","symbol"],style:{color:"#f92aad",textShadow:"0 0 2px #100c0f, 0 0 5px #dc078e33, 0 0 10px #fff3"}},{types:["important","atrule","keyword","selector-class"],style:{color:"#f4eee4",textShadow:"0 0 2px #393a33, 0 0 8px #f39f0575, 0 0 2px #f39f0575"}},{types:["string","char","attr-value","regex","variable"],style:{color:"#f87c32"}},{types:["parameter"],style:{fontStyle:"italic"}},{types:["entity","url"],style:{color:"#67cdcc"}},{types:["operator"],style:{color:"ffffffee"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["entity"],style:{cursor:"help"}},{types:["inserted"],style:{color:"green"}}]},ea={plain:{color:"#282a2e",backgroundColor:"#ffffff"},styles:[{types:["comment"],style:{color:"rgb(197, 200, 198)"}},{types:["string","number","builtin","variable"],style:{color:"rgb(150, 152, 150)"}},{types:["class-name","function","tag","attr-name"],style:{color:"rgb(40, 42, 46)"}}]},eo={plain:{color:"#9CDCFE",backgroundColor:"#1E1E1E"},styles:[{types:["prolog"],style:{color:"rgb(0, 0, 128)"}},{types:["comment"],style:{color:"rgb(106, 153, 85)"}},{types:["builtin","changed","keyword","interpolation-punctuation"],style:{color:"rgb(86, 156, 214)"}},{types:["number","inserted"],style:{color:"rgb(181, 206, 168)"}},{types:["constant"],style:{color:"rgb(100, 102, 149)"}},{types:["attr-name","variable"],style:{color:"rgb(156, 220, 254)"}},{types:["deleted","string","attr-value","template-punctuation"],style:{color:"rgb(206, 145, 120)"}},{types:["selector"],style:{color:"rgb(215, 186, 125)"}},{types:["tag"],style:{color:"rgb(78, 201, 176)"}},{types:["tag"],languages:["markup"],style:{color:"rgb(86, 156, 214)"}},{types:["punctuation","operator"],style:{color:"rgb(212, 212, 212)"}},{types:["punctuation"],languages:["markup"],style:{color:"#808080"}},{types:["function"],style:{color:"rgb(220, 220, 170)"}},{types:["class-name"],style:{color:"rgb(78, 201, 176)"}},{types:["char"],style:{color:"rgb(209, 105, 105)"}}]},ei={plain:{color:"#000000",backgroundColor:"#ffffff"},styles:[{types:["comment"],style:{color:"rgb(0, 128, 0)"}},{types:["builtin"],style:{color:"rgb(0, 112, 193)"}},{types:["number","variable","inserted"],style:{color:"rgb(9, 134, 88)"}},{types:["operator"],style:{color:"rgb(0, 0, 0)"}},{types:["constant","char"],style:{color:"rgb(129, 31, 63)"}},{types:["tag"],style:{color:"rgb(128, 0, 0)"}},{types:["attr-name"],style:{color:"rgb(255, 0, 0)"}},{types:["deleted","string"],style:{color:"rgb(163, 21, 21)"}},{types:["changed","punctuation"],style:{color:"rgb(4, 81, 165)"}},{types:["function","keyword"],style:{color:"rgb(0, 0, 255)"}},{types:["class-name"],style:{color:"rgb(38, 127, 153)"}}]},el={plain:{color:"#f8fafc",backgroundColor:"#011627"},styles:[{types:["prolog"],style:{color:"#000080"}},{types:["comment"],style:{color:"#6A9955"}},{types:["builtin","changed","keyword","interpolation-punctuation"],style:{color:"#569CD6"}},{types:["number","inserted"],style:{color:"#B5CEA8"}},{types:["constant"],style:{color:"#f8fafc"}},{types:["attr-name","variable"],style:{color:"#9CDCFE"}},{types:["deleted","string","attr-value","template-punctuation"],style:{color:"#cbd5e1"}},{types:["selector"],style:{color:"#D7BA7D"}},{types:["tag"],style:{color:"#0ea5e9"}},{types:["tag"],languages:["markup"],style:{color:"#0ea5e9"}},{types:["punctuation","operator"],style:{color:"#D4D4D4"}},{types:["punctuation"],languages:["markup"],style:{color:"#808080"}},{types:["function"],style:{color:"#7dd3fc"}},{types:["class-name"],style:{color:"#0ea5e9"}},{types:["char"],style:{color:"#D16969"}}]},es={plain:{color:"#0f172a",backgroundColor:"#f1f5f9"},styles:[{types:["prolog"],style:{color:"#000080"}},{types:["comment"],style:{color:"#6A9955"}},{types:["builtin","changed","keyword","interpolation-punctuation"],style:{color:"#0c4a6e"}},{types:["number","inserted"],style:{color:"#B5CEA8"}},{types:["constant"],style:{color:"#0f172a"}},{types:["attr-name","variable"],style:{color:"#0c4a6e"}},{types:["deleted","string","attr-value","template-punctuation"],style:{color:"#64748b"}},{types:["selector"],style:{color:"#D7BA7D"}},{types:["tag"],style:{color:"#0ea5e9"}},{types:["tag"],languages:["markup"],style:{color:"#0ea5e9"}},{types:["punctuation","operator"],style:{color:"#475569"}},{types:["punctuation"],languages:["markup"],style:{color:"#808080"}},{types:["function"],style:{color:"#0e7490"}},{types:["class-name"],style:{color:"#0ea5e9"}},{types:["char"],style:{color:"#D16969"}}]},eu={plain:{backgroundColor:"hsl(220, 13%, 18%)",color:"hsl(220, 14%, 71%)",textShadow:"0 1px rgba(0, 0, 0, 0.3)"},styles:[{types:["comment","prolog","cdata"],style:{color:"hsl(220, 10%, 40%)"}},{types:["doctype","punctuation","entity"],style:{color:"hsl(220, 14%, 71%)"}},{types:["attr-name","class-name","maybe-class-name","boolean","constant","number","atrule"],style:{color:"hsl(29, 54%, 61%)"}},{types:["keyword"],style:{color:"hsl(286, 60%, 67%)"}},{types:["property","tag","symbol","deleted","important"],style:{color:"hsl(355, 65%, 65%)"}},{types:["selector","string","char","builtin","inserted","regex","attr-value"],style:{color:"hsl(95, 38%, 62%)"}},{types:["variable","operator","function"],style:{color:"hsl(207, 82%, 66%)"}},{types:["url"],style:{color:"hsl(187, 47%, 55%)"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"hsl(220, 14%, 71%)"}}]},ec={plain:{backgroundColor:"hsl(230, 1%, 98%)",color:"hsl(230, 8%, 24%)"},styles:[{types:["comment","prolog","cdata"],style:{color:"hsl(230, 4%, 64%)"}},{types:["doctype","punctuation","entity"],style:{color:"hsl(230, 8%, 24%)"}},{types:["attr-name","class-name","boolean","constant","number","atrule"],style:{color:"hsl(35, 99%, 36%)"}},{types:["keyword"],style:{color:"hsl(301, 63%, 40%)"}},{types:["property","tag","symbol","deleted","important"],style:{color:"hsl(5, 74%, 59%)"}},{types:["selector","string","char","builtin","inserted","regex","attr-value","punctuation"],style:{color:"hsl(119, 34%, 47%)"}},{types:["variable","operator","function"],style:{color:"hsl(221, 87%, 60%)"}},{types:["url"],style:{color:"hsl(198, 99%, 37%)"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"hsl(230, 8%, 24%)"}}]},ed={plain:{color:"#ebdbb2",backgroundColor:"#292828"},styles:[{types:["imports","class-name","maybe-class-name","constant","doctype","builtin","function"],style:{color:"#d8a657"}},{types:["property-access"],style:{color:"#7daea3"}},{types:["tag"],style:{color:"#e78a4e"}},{types:["attr-name","char","url","regex"],style:{color:"#a9b665"}},{types:["attr-value","string"],style:{color:"#89b482"}},{types:["comment","prolog","cdata","operator","inserted"],style:{color:"#a89984"}},{types:["delimiter","boolean","keyword","selector","important","atrule","property","variable","deleted"],style:{color:"#ea6962"}},{types:["entity","number","symbol"],style:{color:"#d3869b"}}]},ef={plain:{color:"#654735",backgroundColor:"#f9f5d7"},styles:[{types:["delimiter","boolean","keyword","selector","important","atrule","property","variable","deleted"],style:{color:"#af2528"}},{types:["imports","class-name","maybe-class-name","constant","doctype","builtin"],style:{color:"#b4730e"}},{types:["string","attr-value"],style:{color:"#477a5b"}},{types:["property-access"],style:{color:"#266b79"}},{types:["function","attr-name","char","url"],style:{color:"#72761e"}},{types:["tag"],style:{color:"#b94c07"}},{types:["comment","prolog","cdata","operator","inserted"],style:{color:"#a89984"}},{types:["entity","number","symbol"],style:{color:"#924f79"}}]},ep=/\r\n|\r|\n/,em=e=>{0===e.length?e.push({types:["plain"],content:"\n",empty:!0}):1===e.length&&""===e[0].content&&(e[0].content="\n",e[0].empty=!0)},eh=(e,t)=>{let n=e.length;return n>0&&e[n-1]===t?e:e.concat(t)},eg=e=>{let t=[[]],n=[e],r=[0],a=[e.length],o=0,i=0,l=[],s=[l];for(;i>-1;){for(;(o=r[i]++)0?u:["plain"],e=c):(u=eh(u,c.type),c.alias&&(u=eh(u,c.alias)),e=c.content),"string"!=typeof e){i++,t.push(u),n.push(e),r.push(0),a.push(e.length);continue}let d=e.split(ep),f=d.length;l.push({types:u,content:d[0]});for(let e=1;e{let o,i=t.toLowerCase(),l=((e,t)=>{let{plain:n}=e,r=e.styles.reduce((e,n)=>{let{languages:r,style:a}=n;return r&&!r.includes(t)||n.types.forEach(t=>{let n=M(M({},e[t]),a);e[t]=n}),e},{});return r.root=n,r.plain=O(M({},n),N({backgroundColor:void 0})),r})(r,i),s=(0,A.useCallback)(e=>{var{className:t,style:n,line:r}=e;let a=O(M({},$(e,["className","style","line"])),N({className:(0,C.A)("token-line",t)}));return"object"==typeof l&&"plain"in l&&(a.style=l.plain),"object"==typeof n&&(a.style=M(M({},a.style||{}),n)),a},[l]),u=(o=(0,A.useCallback)(({types:e,empty:t})=>{if(null!=l)return 1===e.length&&"plain"===e[0]?null!=t?{display:"inline-block"}:void 0:1===e.length&&null!=t?l[e[0]]:Object.assign(null!=t?{display:"inline-block"}:{},...e.map(e=>l[e]))},[l]),(0,A.useCallback)(e=>{var{token:t,className:n,style:r}=e;let a=O(M({},$(e,["token","className","style"])),N({className:(0,C.A)("token",...t.types,n),children:t.content,style:o(t)}));return null!=r&&(a.style=M(M({},a.style||{}),r)),a},[o])),c=a.languages[i];return e({tokens:(({prism:e,code:t,grammar:n,language:r})=>(0,A.useMemo)(()=>{if(null==n)return eg([t]);let a={code:t,grammar:n,language:r,tokens:[]};return e.hooks.run("before-tokenize",a),a.tokens=e.tokenize(t,n),e.hooks.run("after-tokenize",a),eg(a.tokens)},[t,n,r,e]))({prism:a,language:i,code:n,grammar:c}),className:`prism-code language-${i}`,style:null!=l?l.root:{},getLineProps:s,getTokenProps:u})},eb=e=>(0,A.createElement)(ey,O(M({},e),N({prism:e.prism||B,theme:e.theme||eo,code:e.code,language:e.language})))},5385(e,t,n){"use strict";n.d(t,{A:()=>r});function r(e,t){if(!e)throw Error("Invariant failed")}},5482(e,t,n){"use strict";n.r(t),n.d(t,{__addDisposableResource:()=>I,__assign:()=>o,__asyncDelegator:()=>_,__asyncGenerator:()=>E,__asyncValues:()=>A,__await:()=>S,__awaiter:()=>m,__classPrivateFieldGet:()=>N,__classPrivateFieldIn:()=>R,__classPrivateFieldSet:()=>j,__createBinding:()=>g,__decorate:()=>l,__disposeResources:()=>F,__esDecorate:()=>u,__exportStar:()=>y,__extends:()=>a,__generator:()=>h,__importDefault:()=>L,__importStar:()=>O,__makeTemplateObject:()=>C,__metadata:()=>p,__param:()=>s,__propKey:()=>d,__read:()=>v,__rest:()=>i,__rewriteRelativeImportExtension:()=>z,__runInitializers:()=>c,__setFunctionName:()=>f,__spread:()=>w,__spreadArray:()=>x,__spreadArrays:()=>k,__values:()=>b,default:()=>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])})(e,t)};function a(e,t){if("function"!=typeof t&&null!==t)throw 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;nt.indexOf(r)&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var a=0,r=Object.getOwnPropertySymbols(e);at.indexOf(r[a])&&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 s(e,t){return function(n,r){t(n,r,e)}}function u(e,t,n,r,a,o){function i(e){if(void 0!==e&&"function"!=typeof e)throw TypeError("Function expected");return e}for(var l,s=r.kind,u="getter"===s?"get":"setter"===s?"set":"value",c=!t&&e?r.static?e:e.prototype:null,d=t||(c?Object.getOwnPropertyDescriptor(c,r.name):{}),f=!1,p=n.length-1;p>=0;p--){var m={};for(var h in r)m[h]="access"===h?{}:r[h];for(var h in r.access)m.access[h]=r.access[h];m.addInitializer=function(e){if(f)throw TypeError("Cannot add initializers after decoration has completed");o.push(i(e||null))};var g=(0,n[p])("accessor"===s?{get:d.get,set:d.set}:d[u],m);if("accessor"===s){if(void 0===g)continue;if(null===g||"object"!=typeof g)throw TypeError("Object expected");(l=i(g.get))&&(d.get=l),(l=i(g.set))&&(d.set=l),(l=i(g.init))&&a.unshift(l)}else(l=i(g))&&("field"===s?a.unshift(l):d[u]=l)}c&&Object.defineProperty(c,r.name,d),f=!0}function c(e,t,n){for(var r=arguments.length>2,a=0;a0&&a[a.length-1])&&(6===u[0]||2===u[0])){o=0;continue}if(3===u[0]&&(!a||u[1]>a[0]&&u[1]=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function v(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(e){a={error:e}}finally{try{r&&!r.done&&(n=o.return)&&n.call(o)}finally{if(a)throw a.error}}return i}function w(){for(var e=[],t=0;t1||l(e,t)})},t&&(r[e]=t(r[e])))}function l(e,t){try{var n;(n=a[e](t)).value instanceof S?Promise.resolve(n.value.v).then(s,u):c(o[0][2],n)}catch(e){c(o[0][3],e)}}function s(e){l("next",e)}function u(e){l("throw",e)}function c(e,t){e(t),o.shift(),o.length&&l(o[0][0],o[0][1])}}function _(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:S(e[r](t)),done:!1}:a?a(t):t}:a}}function A(e){if(!Symbol.asyncIterator)throw TypeError("Symbol.asyncIterator is not defined.");var t,n=e[Symbol.asyncIterator];return n?n.call(e):(e=b(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){var o,i,l;o=r,i=a,l=(t=e[n](t)).done,Promise.resolve(t.value).then(function(e){o({value:e,done:l})},i)})}}}function C(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e}var T=Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t},P=function(e){return(P=Object.getOwnPropertyNames||function(e){var t=[];for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[t.length]=n);return t})(e)};function O(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n=P(e),r=0;r{try{return u.getItem(n)}catch(e){return console.error(`Docusaurus storage error, can't get key=${n}`,e),null}},set:e=>{try{let t=u.getItem(n);u.setItem(n,e),i({key:n,oldValue:t,newValue:e,storage:u})}catch(t){console.error(`Docusaurus storage error, can't set ${n}=${e}`,t)}},del:()=>{try{let e=u.getItem(n);u.removeItem(n),i({key:n,oldValue:e,newValue:null,storage:u})}catch(e){console.error(`Docusaurus storage error, can't delete key=${n}`,e)}},listen:e=>{try{let t=t=>{t.storageArea===u&&t.key===n&&e(t)};return window.addEventListener("storage",t),()=>window.removeEventListener("storage",t)}catch(e){return console.error(`Docusaurus storage error, can't listen for changes of key=${n}`,e),()=>{}}}}}function c(e,t){let[n]=(0,r.useState)(()=>null===e?s:u(e,t)),a=(0,r.useCallback)(e=>"u"{}:n.listen(e),[n]);return[(0,r.useSyncExternalStore)(a,()=>n.get(),()=>null),n]}},6461(e,t,n){"use strict";n.d(t,{AL:()=>c,s$:()=>d});var r=n(1987),a=n(1763),o=n(5484),i=n(7581),l=n(7850);let s=({title:e,siteTitle:t,titleDelimiter:n})=>{let r=e?.trim();return r&&r!==t?`${r} ${n} ${t}`:t},u=(0,a.createContext)(null);function c({formatter:e,children:t}){return(0,r.jsx)(u.Provider,{value:e,children:t})}function d(){let e=function(){let e=(0,a.useContext)(u);if(null===e)throw new l.dV("TitleFormatterProvider");return e}(),{siteConfig:t}=(0,o.A)(),{title:n,titleDelimiter:r}=t,{plugin:c}=(0,i.A)();return{format:t=>e({title:t,siteTitle:n,titleDelimiter:r,plugin:c,defaultFormatter:s})}}},5941(e,t,n){"use strict";n.d(t,{o:()=>i});var r=n(5484),a=n(6532),o=n(2455);function i(){let{siteConfig:{baseUrl:e,trailingSlash:t},i18n:{localeConfigs:n}}=(0,r.A)(),{pathname:i}=(0,a.zy)(),l=(0,o.applyTrailingSlash)(i,{trailingSlash:t,baseUrl:e}).replace(e,"");return{createUrl:function({locale:e,fullyQualified:t}){let r=function(e){let t=n[e];if(!t)throw Error(`Unexpected Docusaurus bug, no locale config found for locale=${e}`);return t}(e),a=`${t?r.url:""}`,o=r.baseUrl;return`${a}${o}${l}`}}}},3740(e,t,n){"use strict";n.d(t,{$:()=>i});var r=n(1763),a=n(6532),o=n(7850);function i(e){let t=(0,a.zy)(),n=(0,o.ZC)(t),i=(0,o._q)(e);(0,r.useEffect)(()=>{n&&t!==n&&i({location:t,previousLocation:n})},[i,t,n])}},8168(e,t,n){"use strict";n.d(t,{p:()=>a});var r=n(5484);function a(){return(0,r.A)().siteConfig.themeConfig}},8742(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.addTrailingSlash=a,t.default=function(e,t){let{trailingSlash:n,baseUrl:r}=t;if(e.startsWith("#")||void 0===n)return e;let[i]=e.split(/[#?]/),l="/"===i||i===r?i:n?a(i):o(i);return e.replace(i,l)},t.addLeadingSlash=function(e){return(0,r.addPrefix)(e,"/")},t.removeTrailingSlash=o;let r=n(9817);function a(e){return e.endsWith("/")?e:`${e}/`}function o(e){return(0,r.removeSuffix)(e,"/")}},4972(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=function e(t){return t.cause?[t,...e(t.cause)]:[t]}},2455(e,t,n){"use strict";t.getErrorCausalChain=t.applyTrailingSlash=void 0;let r=n(5482);var a=n(8742);Object.defineProperty(t,"applyTrailingSlash",{enumerable:!0,get:function(){return r.__importDefault(a).default}}),n(9817);var o=n(4972);Object.defineProperty(t,"getErrorCausalChain",{enumerable:!0,get:function(){return o.getErrorCausalChain}})},9817(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.addPrefix=function(e,t){return e.startsWith(t)?e:`${t}${e}`},t.removeSuffix=function(e,t){return""===t?e:e.endsWith(t)?e.slice(0,-t.length):e},t.addSuffix=function(e,t){return e.endsWith(t)?e:`${e}${t}`},t.removePrefix=function(e,t){return e.startsWith(t)?e.slice(t.length):e}},4784(e,t,n){"use strict";n.r(t),n.d(t,{default:()=>r});let r={title:"Orbien",tagline:"\u8F7B\u91CF\u3001\u9AD8\u6027\u80FD\u3001\u5B89\u5168\u7684\u5185\u7F51\u7A7F\u900F\u5DE5\u5177",favicon:"img/favicon.ico",future:{v4:{removeLegacyPostBuildHeadAttribute:!0,useCssCascadeLayers:!0,siteStorageNamespacing:!0,fasterByDefault:!0,mdx1CompatDisabledByDefault:!0},experimental_vcs:{},experimental_router:"browser",faster:{swcJsLoader:!0,swcJsMinimizer:!0,swcHtmlMinimizer:!0,lightningCssMinimizer:!0,mdxCrossCompilerCache:!0,rspackBundler:!0,rspackPersistentCache:!0,ssgWorkerThreads:!0,gitEagerVcs:!0}},url:"https://orbien-org.github.io",baseUrl:"/orbien/",organizationName:"orbien-org",projectName:"orbien",deploymentBranch:"gh-pages",trailingSlash:!1,onBrokenLinks:"throw",markdown:{hooks:{onBrokenMarkdownLinks:"throw",onBrokenMarkdownImages:"throw"},format:"mdx",mermaid:!1,emoji:!0,mdx1Compat:{comments:!1,admonitions:!1,headingIds:!1},anchors:{maintainCase:!1}},i18n:{defaultLocale:"zh-Hans",locales:["zh-Hans","en"],localeConfigs:{"zh-Hans":{label:"\u4E2D\u6587",htmlLang:"zh-CN"},en:{label:"English",htmlLang:"en"}},path:"i18n"},presets:[["classic",{docs:{sidebarPath:"./sidebars.ts",editUrl:"https://github.com/orbien-org/orbien/tree/main/docs/"},blog:!1,theme:{customCss:"./src/css/custom.css"}}]],themeConfig:{image:"img/logo.png",colorMode:{defaultMode:"light",respectPrefersColorScheme:!0,disableSwitch:!1},navbar:{title:"Orbien",logo:{alt:"Orbien",src:"img/logo.png"},items:[{type:"docSidebar",sidebarId:"docsSidebar",position:"left",label:"\u6587\u6863"},{type:"localeDropdown",position:"right",dropdownItemsBefore:[],dropdownItemsAfter:[]},{href:"https://github.com/orbien-org/orbien",label:"GitHub",position:"right"}],hideOnScroll:!1},footer:{style:"dark",copyright:"Copyright \xa9 2026 Orbien. Apache-2.0.",links:[]},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:["toml","bash","json"],magicComments:[{className:"theme-code-block-highlighted-line",line:"highlight-next-line",block:{start:"highlight-start",end:"highlight-end"}}]},docs:{versionPersistence:"localStorage",sidebar:{hideable:!1,autoCollapseCategories:!1}},blog:{sidebar:{groupByYear:!0}},metadata:[],tableOfContents:{minHeadingLevel:2,maxHeadingLevel:3}},baseUrlIssueBanner:!0,storage:{type:"localStorage",namespace:!0},onBrokenAnchors:"warn",onDuplicateRoutes:"warn",staticDirectories:["static"],customFields:{},plugins:[],themes:[],scripts:[],headTags:[],stylesheets:[],clientModules:[],titleDelimiter:"|",noIndex:!1}},5062(e,t,n){"use strict";function r(){return(r=Object.assign?Object.assign.bind():function(e){for(var t=1;tr})},949(e,t,n){"use strict";function r(e,t){return(r=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e})(e,t)}function a(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,r(e,t)}n.d(t,{A:()=>a})},6905(e,t,n){"use strict";function r(e,t){if(null==e)return{};var n={};for(var r in e)if(({}).hasOwnProperty.call(e,r)){if(-1!==t.indexOf(r))continue;n[r]=e[r]}return n}n.d(t,{A:()=>r})},3526(e,t,n){"use strict";n.d(t,{A:()=>r});let r=function(){for(var e,t,n=0,r="",a=arguments.length;nB,f4:()=>ey});var s,u,c,d,f,p,m,h,g,b,y,v,w,k,x,S,E,_,A=n(1763),C=n(3526),T=Object.create,P=Object.defineProperty,O=Object.defineProperties,L=Object.getOwnPropertyDescriptor,N=Object.getOwnPropertyDescriptors,j=Object.getOwnPropertyNames,R=Object.getOwnPropertySymbols,I=Object.getPrototypeOf,D=Object.prototype.hasOwnProperty,F=Object.prototype.propertyIsEnumerable,z=(e,t,n)=>t in e?P(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,M=(e,t)=>{for(var n in t||(t={}))D.call(t,n)&&z(e,n,t[n]);if(R)for(var n of R(t))F.call(t,n)&&z(e,n,t[n]);return e},$=(e,t)=>{var n={};for(var r in e)D.call(e,r)&&0>t.indexOf(r)&&(n[r]=e[r]);if(null!=e&&R)for(var r of R(e))0>t.indexOf(r)&&F.call(e,r)&&(n[r]=e[r]);return n},B=(l=null!=(o=(r={"../../node_modules/.pnpm/prismjs@1.29.0_patch_hash=vrxx3pzkik6jpmgpayxfjunetu/node_modules/prismjs/prism.js"(e,t){var n=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,"&").replace(/=c.reach));x+=k.value.length,k=k.next){var S,E=k.value;if(n.length>t.length)return;if(!(E instanceof a)){var _=1;if(b){if(!(S=o(w,x,t,g))||S.index>=t.length)break;var A=S.index,C=S.index+S[0].length,T=x;for(T+=k.value.length;A>=T;)T+=(k=k.next).value.length;if(T-=k.value.length,x=T,k.value instanceof a)continue;for(var P=k;P!==n.tail&&(Tc.reach&&(c.reach=j);var R=k.prev;if(L&&(R=l(n,R,L),x+=L.length),function(e,t,n){for(var r=t.next,a=0;a1){var I={cause:d+","+p,reach:j};e(t,n,i,k.prev,x,I),c&&I.reach>c.reach&&(c.reach=I.reach)}}}}}}(e,u,t,u.head,0),function(e){for(var t=[],n=e.head.next;n!==e.tail;)t.push(n.value),n=n.next;return t}(u)},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(){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 l(e,t,n){var r=t.next,a={value:n,prev:t,next:r};return t.next=a,r.prev=a,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 s in o.attributes)l+=" "+s+'="'+(o.attributes[s]||"").replace(/"/g,""")+'"';return"<"+o.tag+' class="'+o.classes.join(" ")+'"'+l+">"+o.content+""},r}();t.exports=n,n.default=n}},function(){return a||(0,r[j(r)[0]])((a={exports:{}}).exports,a),a.exports})())?T(I(o)):{},((e,t,n,r)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let a of j(t))D.call(e,a)||a===n||P(e,a,{get:()=>t[a],enumerable:!(r=L(t,a))||r.enumerable});return e})(!i&&o&&o.__esModule?l:P(l,"default",{value:o,enumerable:!0}),o));B.languages.markup={comment:{pattern://,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|)*\]\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://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"},{pattern:/^(\s*)["']|["']$/,lookbehind:!0}]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},B.languages.markup.tag.inside["attr-value"].inside.entity=B.languages.markup.entity,B.languages.markup.doctype.inside["internal-subset"].inside=B.languages.markup,B.hooks.add("wrap",function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&/,"&"))}),Object.defineProperty(B.languages.markup.tag,"addInlined",{value:function(e,t){var n={},n=(n["language-"+t]={pattern:/(^$)/i,lookbehind:!0,inside:B.languages[t]},n.cdata=/^$/i,{"included-cdata":{pattern://i,inside:n}}),t=(n["language-"+t]={pattern:/[\s\S]+/,inside:B.languages[t]},{});t[e]={pattern:RegExp(/(<__[^>]*>)(?:))*\]\]>|(?!)/.source.replace(/__/g,function(){return e}),"i"),lookbehind:!0,greedy:!0,inside:n},B.languages.insertBefore("markup","cdata",t)}}),Object.defineProperty(B.languages.markup.tag,"addAttribute",{value:function(e,t){B.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:B.languages[t]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),B.languages.html=B.languages.markup,B.languages.mathml=B.languages.markup,B.languages.svg=B.languages.markup,B.languages.xml=B.languages.extend("markup",{}),B.languages.ssml=B.languages.xml,B.languages.atom=B.languages.xml,B.languages.rss=B.languages.xml,s={pattern:/\\[\\(){}[\]^$+*?|.]/,alias:"escape"},c=RegExp((c="(?:[^\\\\-]|"+(u=/\\(?:x[\da-fA-F]{2}|u[\da-fA-F]{4}|u\{[\da-fA-F]+\}|0[0-7]{0,2}|[123][0-7]{2}|c[a-zA-Z]|.)/).source+")")+"-"+c),d={pattern:/(<|')[^<>']+(?=[>']$)/,lookbehind:!0,alias:"variable"},B.languages.regex={"char-class":{pattern:/((?:^|[^\\])(?:\\\\)*)\[(?:[^\\\]]|\\[\s\S])*\]/,lookbehind:!0,inside:{"char-class-negation":{pattern:/(^\[)\^/,lookbehind:!0,alias:"operator"},"char-class-punctuation":{pattern:/^\[|\]$/,alias:"punctuation"},range:{pattern:c,inside:{escape:u,"range-punctuation":{pattern:/-/,alias:"operator"}}},"special-escape":s,"char-set":{pattern:/\\[wsd]|\\p\{[^{}]+\}/i,alias:"class-name"},escape:u}},"special-escape":s,"char-set":{pattern:/\.|\\[wsd]|\\p\{[^{}]+\}/i,alias:"class-name"},backreference:[{pattern:/\\(?![123][0-7]{2})[1-9]/,alias:"keyword"},{pattern:/\\k<[^<>']+>/,alias:"keyword",inside:{"group-name":d}}],anchor:{pattern:/[$^]|\\[ABbGZz]/,alias:"function"},escape:u,group:[{pattern:/\((?:\?(?:<[^<>']+>|'[^<>']+'|[>:]|]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/},B.languages.javascript=B.languages.extend("clike",{"class-name":[B.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}|\?\?=?|\?\.?|[~:]/}),B.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,B.languages.insertBefore("javascript","keyword",{regex:{pattern:RegExp(/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)/.source+/\//.source+"(?:"+/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}/.source+"|"+/(?:\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.)*\])*\])*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}v[dgimyus]{0,7}/.source+")"+/(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/.source),lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:B.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:B.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:B.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:B.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:B.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),B.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:B.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"}}),B.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),B.languages.markup&&(B.languages.markup.tag.addInlined("script","javascript"),B.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")),B.languages.js=B.languages.javascript,B.languages.actionscript=B.languages.extend("javascript",{keyword:/\b(?:as|break|case|catch|class|const|default|delete|do|dynamic|each|else|extends|final|finally|for|function|get|if|implements|import|in|include|instanceof|interface|internal|is|namespace|native|new|null|override|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|use|var|void|while|with)\b/,operator:/\+\+|--|(?:[+\-*\/%^]|&&?|\|\|?|<>?>?|[!=]=?)=?|[~?@]/}),B.languages.actionscript["class-name"].alias="function",delete B.languages.actionscript.parameter,delete B.languages.actionscript["literal-property"],B.languages.markup&&B.languages.insertBefore("actionscript","string",{xml:{pattern:/(^|[^.])<\/?\w+(?:\s+[^\s>\/=]+=("|')(?:\\[\s\S]|(?!\2)[^\\])*\2)*\s*\/?>/,lookbehind:!0,inside:B.languages.markup}}),f=/#(?!\{).+/,p={pattern:/#\{[^}]+\}/,alias:"variable"},B.languages.coffeescript=B.languages.extend("javascript",{comment:f,string:[{pattern:/'(?:\\[\s\S]|[^\\'])*'/,greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,greedy:!0,inside:{interpolation:p}}],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"}}),B.languages.insertBefore("coffeescript","comment",{"multiline-comment":{pattern:/###[\s\S]+?###/,alias:"comment"},"block-regex":{pattern:/\/{3}[\s\S]*?\/{3}/,alias:"regex",inside:{comment:f,interpolation:p}}}),B.languages.insertBefore("coffeescript","string",{"inline-javascript":{pattern:/`(?:\\[\s\S]|[^\\`])*`/,inside:{delimiter:{pattern:/^`|`$/,alias:"punctuation"},script:{pattern:/[\s\S]+/,alias:"language-javascript",inside:B.languages.javascript}}},"multiline-string":[{pattern:/'''[\s\S]*?'''/,greedy:!0,alias:"string"},{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string",inside:{interpolation:p}}]}),B.languages.insertBefore("coffeescript","keyword",{property:/(?!\d)\w+(?=\s*:(?!:))/}),delete B.languages.coffeescript["template-string"],B.languages.coffee=B.languages.coffeescript,Object.defineProperty(m=B.languages.javadoclike={parameter:{pattern:/(^[\t ]*(?:\/{3}|\*|\/\*\*)\s*@(?:arg|arguments|param)\s+)\w+/m,lookbehind:!0},keyword:{pattern:/(^[\t ]*(?:\/{3}|\*|\/\*\*)\s*|\{)@[a-z][a-zA-Z-]+\b/m,lookbehind:!0},punctuation:/[{}]/},"addSupport",{value:function(e,t){(e="string"==typeof e?[e]:e).forEach(function(e){var n=function(e){e.inside||(e.inside={}),e.inside.rest=t},r="doc-comment";if(a=B.languages[e]){var a,o=a[r];if((o=o||(a=B.languages.insertBefore(e,"comment",{"doc-comment":{pattern:/(^|[^\\])\/\*\*[^/][\s\S]*?(?:\*\/|$)/,lookbehind:!0,alias:"comment"}}))[r])instanceof RegExp&&(o=a[r]={pattern:o}),Array.isArray(o))for(var i=0,l=o.length;i|\+|~|\|\|/,punctuation:/[(),]/}},B.languages.css.atrule.inside["selector-function-argument"].inside=g,B.languages.insertBefore("css","property",{variable:{pattern:/(^|[^-\w\xA0-\uFFFF])--(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*/i,lookbehind:!0}}),g={pattern:/(\b\d+)(?:%|[a-z]+(?![\w-]))/,lookbehind:!0},b={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0},B.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|RebeccaPurple|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:g,number:b,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:g,number:b}),function(e){var t=/[*&][^\s[\]{},]+/,n=/!(?:<[\w\-%#;/?:@&=+$,.!~*'()[\]]+>|(?:[a-zA-Z\d-]*!)?[\w\-%#;/?:@&=+$.~*'()]+)?/,r="(?:"+n.source+"(?:[ ]+"+t.source+")?|"+t.source+"(?:[ ]+"+n.source+")?)",a=/(?:[^\s\x00-\x08\x0e-\x1f!"#%&'*,\-:>?@[\]`{|}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]|[?:-])(?:[ \t]*(?:(?![#:])|:))*/.source.replace(//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){return t=(t||"").replace(/m/g,"")+"m",RegExp(/([:\-,[{]\s*(?:\s<>[ \t]+)?)(?:<>)(?=[ \t]*(?:$|,|\]|\}|(?:[\r\n]\s*)?#))/.source.replace(/<>/g,function(){return r}).replace(/<>/g,function(){return e}),t)}e.languages.yaml={scalar:{pattern:RegExp(/([\-:]\s*(?:\s<>[ \t]+)?[|>])[ \t]*(?:((?:\r?\n|\r)[ \t]+)\S[^\r\n]*(?:\2[^\r\n]+)*)/.source.replace(/<>/g,function(){return r})),lookbehind:!0,alias:"string"},comment:/#.*/,key:{pattern:RegExp(/((?:^|[:\-,[{\r\n?])[ \t]*(?:<>[ \t]+)?)<>(?=\s*:\s)/.source.replace(/<>/g,function(){return r}).replace(/<>/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}(B),function(e){var t=/(?:\\.|[^\\\n\r]|(?:\n|\r\n?)(?![\r\n]))/.source;function n(e){return e=e.replace(//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,i=(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__(?:(?!_)|_(?:(?!_))+_)+__\b|\*\*(?:(?!\*)|\*(?:(?!\*))+\*)+\*\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^..)[\s\S]+(?=..$)/,lookbehind:!0,inside:{}},punctuation:/\*\*|__/}},italic:{pattern:n(/\b_(?:(?!_)|__(?:(?!_))+__)+_\b|\*(?:(?!\*)|\*\*(?:(?!\*))+\*\*)+\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^.)[\s\S]+(?=.$)/,lookbehind:!0,inside:{}},punctuation:/[*_]/}},strike:{pattern:n(/(~~?)(?:(?!~))+\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(/!?\[(?:(?!\]))+\](?:\([^\s)]+(?:[\t ]+"(?:\\.|[^"\\])*")?\)|[ \t]?\[(?:(?!\]))+\])/.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",quot:'"'},s=String.fromCodePoint||String.fromCharCode;e.languages.md=e.languages.markdown}(B),B.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:B.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+/},B.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?|<|>)?|>[>=]?|\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(t,n,r){return t={code:t,grammar:n,language:r},e.hooks.run("before-tokenize",t),t.tokens=e.tokenize(t.code,t.grammar),e.hooks.run("after-tokenize",t),t.tokens}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 s={javascript:!0,js:!0,typescript:!0,ts:!0,jsx:!0,tsx:!0};e.hooks.add("after-tokenize",function(t){t.language in s&&function t(n){for(var i=0,s=n.length;i=d.length)return;var i,s,f,p,m,h,g,b=n[o];"string"==typeof b||"string"==typeof b.content?(i=d[u],-1!==(g=(h="string"==typeof b?b:b.content).indexOf(i))&&(++u,s=h.substring(0,g),m=c[i],f=void 0,(p={})["interpolation-punctuation"]=a,3===(p=e.tokenize(m,p)).length&&((f=[1,1]).push.apply(f,l(p[1],e.languages.javascript,"javascript")),p.splice.apply(p,f)),f=new e.Token("interpolation",p,r.alias,m),p=h.substring(g+i.length),m=[],s&&m.push(s),m.push(f),p&&(t(h=[p]),m.push.apply(m,h)),"string"==typeof b?(n.splice.apply(n,[o,1].concat(m)),o+=m.length-1):b.content=m)):Array.isArray(g=b.content)?t(g):t([g])}}(s),new e.Token(i,s,"language-"+i,t)}(c,d,f))):t(u):"string"!=typeof u&&t([u]))}}(t.tokens)})}(B),B.languages.typescript=B.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/}),B.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 B.languages.typescript.parameter,delete B.languages.typescript["literal-property"],y=B.languages.extend("typescript",{}),delete y["class-name"],B.languages.typescript["class-name"].inside=y,B.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:y}}}}),B.languages.ts=B.languages.typescript,v=B.languages.javascript,k="(@(?:arg|argument|param|property)\\s+(?:"+(w=/\{(?:[^{}]|\{(?:[^{}]|\{[^{}]*\})*\})+\}/.source)+"\\s+)?)",B.languages.jsdoc=B.languages.extend("javadoclike",{parameter:{pattern:RegExp(k+/(?:(?!\s)[$\w\xA0-\uFFFF.])+(?=\s|$)/.source),lookbehind:!0,inside:{punctuation:/\./}}}),B.languages.insertBefore("jsdoc","keyword",{"optional-parameter":{pattern:RegExp(k+/\[(?:(?!\s)[$\w\xA0-\uFFFF.])+(?:=[^[\]]+)?\](?=\s|$)/.source),lookbehind:!0,inside:{parameter:{pattern:/(^\[)[$\w\xA0-\uFFFF\.]+/,lookbehind:!0,inside:{punctuation:/\./}},code:{pattern:/(=)[\s\S]*(?=\]$)/,lookbehind:!0,inside:v,alias:"language-javascript"},punctuation:/[=[\]]/}},"class-name":[{pattern:RegExp(/(@(?:augments|class|extends|interface|memberof!?|template|this|typedef)\s+(?:\s+)?)[A-Z]\w*(?:\.[A-Z]\w*)*/.source.replace(//g,function(){return w})),lookbehind:!0,inside:{punctuation:/\./}},{pattern:RegExp("(@[a-z]+\\s+)"+w),lookbehind:!0,inside:{string:v.string,number:v.number,boolean:v.boolean,keyword:B.languages.typescript.keyword,operator:/=>|\.\.\.|[&|?:*]/,punctuation:/[.,;=<>{}()[\]]/}}],example:{pattern:/(@example\s+(?!\s))(?:[^@\s]|\s+(?!\s))+?(?=\s*(?:\*\s*)?(?:@\w|\*\/))/,lookbehind:!0,inside:{code:{pattern:/^([\t ]*(?:\*\s*)?)\S.*$/m,lookbehind:!0,inside:v,alias:"language-javascript"}}}}),B.languages.javadoclike.addSupport("javascript",B.languages.jsdoc),B.languages.flow=B.languages.extend("javascript",{}),B.languages.insertBefore("flow","keyword",{type:[{pattern:/\b(?:[Bb]oolean|Function|[Nn]umber|[Ss]tring|[Ss]ymbol|any|mixed|null|void)\b/,alias:"class-name"}]}),B.languages.flow["function-variable"].pattern=/(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=\s*(?:function\b|(?:\([^()]*\)(?:\s*:\s*\w+)?|(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/i,delete B.languages.flow.parameter,B.languages.insertBefore("flow","operator",{"flow-punctuation":{pattern:/\{\||\|\}/,alias:"punctuation"}}),Array.isArray(B.languages.flow.keyword)||(B.languages.flow.keyword=[B.languages.flow.keyword]),B.languages.flow.keyword.unshift({pattern:/(^|[^$]\b)(?:Class|declare|opaque|type)\b(?!\$)/,lookbehind:!0},{pattern:/(^|[^$]\B)\$(?:Diff|Enum|Exact|Keys|ObjMap|PropertyType|Record|Shape|Subtype|Supertype|await)\b(?!\$)/,lookbehind:!0}),B.languages.n4js=B.languages.extend("javascript",{keyword:/\b(?:Array|any|boolean|break|case|catch|class|const|constructor|continue|debugger|declare|default|delete|do|else|enum|export|extends|false|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|module|new|null|number|package|private|protected|public|return|set|static|string|super|switch|this|throw|true|try|typeof|var|void|while|with|yield)\b/}),B.languages.insertBefore("n4js","constant",{annotation:{pattern:/@+\w+/,alias:"operator"}}),B.languages.n4jsd=B.languages.n4js,function(e){function t(e,t){return RegExp(e.replace(//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*)(?:(?:\s*,\s*(?:\*\s*as\s+|\{[^{}]*\}))?|\*\s*as\s+|\{[^{}]*\})(?=\s*\bfrom\b)/.source),lookbehind:!0,inside:e.languages.javascript},exports:{pattern:t(/(\bexport\b\s*)(?:\*(?:\s*as\s+)?(?=\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*)#?/.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*\.{3}(?:[^{}]|)*\})/.source;function o(e,t){return RegExp(e=e.replace(//g,function(){return n}).replace(//g,function(){return r}).replace(//g,function(){return a}),t)}a=o(a).source,e.languages.jsx=e.languages.extend("markup",t),e.languages.jsx.tag.pattern=o(/<\/?(?:[\w.:-]+(?:+(?:[\w.:$-]+(?:=(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\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(//.source),inside:e.languages.jsx}},e.languages.jsx.tag),e.languages.insertBefore("inside","special-attr",{script:{pattern:o(/=/.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(""):""};e.hooks.add("after-tokenize",function(t){"jsx"!==t.language&&"tsx"!==t.language||function t(n){for(var r=[],a=0;a"!==o.content[o.content.length-1].content&&r.push({tagName:i(o.content[0].content[1]),openedBraces:0}):0]=?/,punctuation:/[(),]/}},literal:{pattern:/#(?:colorLiteral|column|dsohandle|file(?:ID|Literal|Path)?|function|imageLiteral|line)\b/,alias:"constant"},"other-directive":{pattern:/#\w+\b/,alias:"property"},attribute:{pattern:/@\w+/,alias:"atrule"},"function-definition":{pattern:/(\bfunc\s+)\w+/,lookbehind:!0,alias:"function"},label:{pattern:/\b(break|continue)\s+\w+|\b[a-zA-Z_]\w*(?=\s*:\s*(?:for|repeat|while)\b)/,lookbehind:!0,alias:"important"},keyword:/\b(?:Any|Protocol|Self|Type|actor|as|assignment|associatedtype|associativity|async|await|break|case|catch|class|continue|convenience|default|defer|deinit|didSet|do|dynamic|else|enum|extension|fallthrough|fileprivate|final|for|func|get|guard|higherThan|if|import|in|indirect|infix|init|inout|internal|is|isolated|lazy|left|let|lowerThan|mutating|none|nonisolated|nonmutating|open|operator|optional|override|postfix|precedencegroup|prefix|private|protocol|public|repeat|required|rethrows|return|right|safe|self|set|some|static|struct|subscript|super|switch|throw|throws|try|typealias|unowned|unsafe|var|weak|where|while|willSet)\b/,boolean:/\b(?:false|true)\b/,nil:{pattern:/\bnil\b/,alias:"constant"},"short-argument":/\$\d+\b/,omit:{pattern:/\b_\b/,alias:"keyword"},number:/\b(?:[\d_]+(?:\.[\de_]+)?|0x[a-f0-9_]+(?:\.[a-f0-9p_]+)?|0b[01_]+|0o[0-7_]+)\b/i,"class-name":/\b[A-Z](?:[A-Z_\d]*[a-z]\w*)?\b/,function:/\b[a-z_]\w*(?=\s*\()/i,constant:/\b(?:[A-Z_]{2,}|k[A-Z][A-Za-z_]+)\b/,operator:/[-+*/%=!<>&|^~?]+|\.[.\-+*/%=!<>&|^~?]+/,punctuation:/[{}[\]();,.:\\]/},B.languages.swift["string-literal"].forEach(function(e){e.inside.interpolation.inside=B.languages.swift}),B.languages.kotlin=B.languages.extend("clike",{keyword:{pattern:/(^|[^.])\b(?:abstract|actual|annotation|as|break|by|catch|class|companion|const|constructor|continue|crossinline|data|do|dynamic|else|enum|expect|external|final|finally|for|fun|get|if|import|in|infix|init|inline|inner|interface|internal|is|lateinit|noinline|null|object|open|operator|out|override|package|private|protected|public|reified|return|sealed|set|super|suspend|tailrec|this|throw|to|try|typealias|val|var|vararg|when|where|while)\b/,lookbehind:!0},function:[{pattern:/(?:`[^\r\n`]+`|\b\w+)(?=\s*\()/,greedy:!0},{pattern:/(\.)(?:`[^\r\n`]+`|\w+)(?=\s*\{)/,lookbehind:!0,greedy:!0}],number:/\b(?:0[xX][\da-fA-F]+(?:_[\da-fA-F]+)*|0[bB][01]+(?:_[01]+)*|\d+(?:_\d+)*(?:\.\d+(?:_\d+)*)?(?:[eE][+-]?\d+(?:_\d+)*)?[fFL]?)\b/,operator:/\+[+=]?|-[-=>]?|==?=?|!(?:!|==?)?|[\/*%<>]=?|[?:]:?|\.\.|&&|\|\||\b(?:and|inv|or|shl|shr|ushr|xor)\b/}),delete B.languages.kotlin["class-name"],S={"interpolation-punctuation":{pattern:/^\$\{?|\}$/,alias:"punctuation"},expression:{pattern:/[\s\S]+/,inside:B.languages.kotlin}},B.languages.insertBefore("kotlin","string",{"string-literal":[{pattern:/"""(?:[^$]|\$(?:(?!\{)|\{[^{}]*\}))*?"""/,alias:"multiline",inside:{interpolation:{pattern:/\$(?:[a-z_]\w*|\{[^{}]*\})/i,inside:S},string:/[\s\S]+/}},{pattern:/"(?:[^"\\\r\n$]|\\.|\$(?:(?!\{)|\{[^{}]*\}))*"/,alias:"singleline",inside:{interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$(?:[a-z_]\w*|\{[^{}]*\})/i,lookbehind:!0,inside:S},string:/[\s\S]+/}}],char:{pattern:/'(?:[^'\\\r\n]|\\(?:.|u[a-fA-F0-9]{0,4}))'/,greedy:!0}}),delete B.languages.kotlin.string,B.languages.insertBefore("kotlin","keyword",{annotation:{pattern:/\B@(?:\w+:)?(?:[A-Z]\w*|\[[^\]]+\])/,alias:"builtin"}}),B.languages.insertBefore("kotlin","function",{label:{pattern:/\b\w+@|@\w+\b/,alias:"symbol"}}),B.languages.kt=B.languages.kotlin,B.languages.kts=B.languages.kotlin,B.languages.c=B.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|[?:~]|[-+*/%&|^!=<>]=?/}),B.languages.insertBefore("c","string",{char:{pattern:/'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n]){0,32}'/,greedy:!0}}),B.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},B.languages.c.string],char:B.languages.c.char,comment:B.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:B.languages.c}}}}),B.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 B.languages.c.boolean,B.languages.objectivec=B.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 B.languages.objectivec["class-name"],B.languages.objc=B.languages.objectivec,B.languages.reason=B.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/}),B.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 B.languages.reason.function,function(e){for(var t=/\/\*(?:[^*/]|\*(?!\/)|\/(?!\*)|)*\*\//.source,n=0;n<2;n++)t=t.replace(//g,function(){return t});t=t.replace(//g,function(){return/[^\s\S]/.source}),e.languages.rust={comment:[{pattern:RegExp(/(^|[^\\])/.source+t),lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/b?"(?:\\[\s\S]|[^\\"])*"|b?r(#*)"(?:[^"]|"(?!\1))*"\1/,greedy:!0},char:{pattern:/b?'(?:\\(?:x[0-7][\da-fA-F]|u\{(?:[\da-fA-F]_*){1,6}\}|.)|[^\\\r\n\t'])'/,greedy:!0},attribute:{pattern:/#!?\[(?:[^\[\]"]|"(?:\\[\s\S]|[^\\"])*")*\]/,greedy:!0,alias:"attr-name",inside:{string:null}},"closure-params":{pattern:/([=(,:]\s*|\bmove\s*)\|[^|]*\||\|[^|]*\|(?=\s*(?:\{|->))/,lookbehind:!0,greedy:!0,inside:{"closure-punctuation":{pattern:/^\||\|$/,alias:"punctuation"},rest:null}},"lifetime-annotation":{pattern:/'\w+/,alias:"symbol"},"fragment-specifier":{pattern:/(\$\w+:)[a-z]+/,lookbehind:!0,alias:"punctuation"},variable:/\$\w+/,"function-definition":{pattern:/(\bfn\s+)\w+/,lookbehind:!0,alias:"function"},"type-definition":{pattern:/(\b(?:enum|struct|trait|type|union)\s+)\w+/,lookbehind:!0,alias:"class-name"},"module-declaration":[{pattern:/(\b(?:crate|mod)\s+)[a-z][a-z_\d]*/,lookbehind:!0,alias:"namespace"},{pattern:/(\b(?:crate|self|super)\s*)::\s*[a-z][a-z_\d]*\b(?:\s*::(?:\s*[a-z][a-z_\d]*\s*::)*)?/,lookbehind:!0,alias:"namespace",inside:{punctuation:/::/}}],keyword:[/\b(?:Self|abstract|as|async|await|become|box|break|const|continue|crate|do|dyn|else|enum|extern|final|fn|for|if|impl|in|let|loop|macro|match|mod|move|mut|override|priv|pub|ref|return|self|static|struct|super|trait|try|type|typeof|union|unsafe|unsized|use|virtual|where|while|yield)\b/,/\b(?:bool|char|f(?:32|64)|[ui](?:8|16|32|64|128|size)|str)\b/],function:/\b[a-z_]\w*(?=\s*(?:::\s*<|\())/,macro:{pattern:/\b\w+!/,alias:"property"},constant:/\b[A-Z_][A-Z_\d]+\b/,"class-name":/\b[A-Z]\w*\b/,namespace:{pattern:/(?:\b[a-z][a-z_\d]*\s*::\s*)*\b[a-z][a-z_\d]*\s*::(?!\s*<)/,inside:{punctuation:/::/}},number:/\b(?:0x[\dA-Fa-f](?:_?[\dA-Fa-f])*|0o[0-7](?:_?[0-7])*|0b[01](?:_?[01])*|(?:(?:\d(?:_?\d)*)?\.)?\d(?:_?\d)*(?:[Ee][+-]?\d+)?)(?:_?(?:f32|f64|[iu](?:8|16|32|64|size)?))?\b/,boolean:/\b(?:false|true)\b/,punctuation:/->|\.\.=|\.{1,3}|::|[{}[\];(),:]/,operator:/[-+*\/%!^]=?|=[=>]?|&[&=]?|\|[|=]?|<>?=?|[@?]/},e.languages.rust["closure-params"].inside.rest=e.languages.rust,e.languages.rust.attribute.inside.string=e.languages.rust.string}(B),B.languages.go=B.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/}),B.languages.insertBefore("go","string",{char:{pattern:/'(?:\\.|[^'\\\r\n]){0,10}'/,greedy:!0}}),delete B.languages.go["class-name"],E=/\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/,_=/\b(?!)\w+(?:\s*\.\s*\w+)*\b/.source.replace(//g,function(){return E.source}),B.languages.cpp=B.languages.extend("c",{"class-name":[{pattern:RegExp(/(\b(?:class|concept|enum|struct|typename)\s+)(?!)\w+/.source.replace(//g,function(){return E.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:E,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/}),B.languages.insertBefore("cpp","string",{module:{pattern:RegExp(/(\b(?:import|module)\s+)/.source+"(?:"+/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|<[^<>\r\n]*>/.source+"|"+/(?:\s*:\s*)?|:\s*/.source.replace(//g,function(){return _})+")"),lookbehind:!0,greedy:!0,inside:{string:/^[<"][\s\S]+/,operator:/:/,punctuation:/\./}},"raw-string":{pattern:/R"([^()\\ ]{0,16})\([\s\S]*?\)\1"/,alias:"string",greedy:!0}}),B.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:B.languages.cpp}}}}),B.languages.insertBefore("cpp","operator",{"double-colon":{pattern:/::/,alias:"punctuation"}}),B.languages.insertBefore("cpp","class-name",{"base-clause":{pattern:/(\b(?:class|struct)\s+\w+\s*:\s*)[^;{}"'\s]+(?:\s+[^;{}"'\s]+)*(?=\s*[;{])/,lookbehind:!0,greedy:!0,inside:B.languages.extend("cpp",{})}}),B.languages.insertBefore("inside","double-colon",{"class-name":/\b[a-z_]\w*\b(?!\s*::)/i},B.languages.cpp["base-clause"]),B.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:/[{}[\];(),.:]/},B.languages.python["string-interpolation"].inside.interpolation.inside.rest=B.languages.python,B.languages.py=B.languages.python,B.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"}},B.languages.webmanifest=B.languages.json;var U={},H={dracula:()=>W,duotoneDark:()=>q,duotoneLight:()=>G,github:()=>Y,gruvboxMaterialDark:()=>ed,gruvboxMaterialLight:()=>ef,jettwaveDark:()=>el,jettwaveLight:()=>es,nightOwl:()=>K,nightOwlLight:()=>Q,oceanicNext:()=>J,okaidia:()=>ee,oneDark:()=>eu,oneLight:()=>ec,palenight:()=>et,shadesOfPurple:()=>en,synthwave84:()=>er,ultramin:()=>ea,vsDark:()=>eo,vsLight:()=>ei};for(var V in H)P(U,V,{get:H[V],enumerable:!0});var W={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)"}}]},q={plain:{backgroundColor:"#2a2734",color:"#9a86fd"},styles:[{types:["comment","prolog","doctype","cdata","punctuation"],style:{color:"#6c6783"}},{types:["namespace"],style:{opacity:.7}},{types:["tag","operator","number"],style:{color:"#e09142"}},{types:["property","function"],style:{color:"#9a86fd"}},{types:["tag-id","selector","atrule-id"],style:{color:"#eeebff"}},{types:["attr-name"],style:{color:"#c4b9fe"}},{types:["boolean","string","entity","url","attr-value","keyword","control","directive","unit","statement","regex","atrule","placeholder","variable"],style:{color:"#ffcc99"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"#c4b9fe"}}]},G={plain:{backgroundColor:"#faf8f5",color:"#728fcb"},styles:[{types:["comment","prolog","doctype","cdata","punctuation"],style:{color:"#b6ad9a"}},{types:["namespace"],style:{opacity:.7}},{types:["tag","operator","number"],style:{color:"#063289"}},{types:["property","function"],style:{color:"#b29762"}},{types:["tag-id","selector","atrule-id"],style:{color:"#2d2006"}},{types:["attr-name"],style:{color:"#896724"}},{types:["boolean","string","entity","url","attr-value","keyword","control","directive","unit","statement","regex","atrule"],style:{color:"#728fcb"}},{types:["placeholder","variable"],style:{color:"#93abdc"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"#896724"}}]},Y={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"}}]},K={plain:{color:"#d6deeb",backgroundColor:"#011627"},styles:[{types:["changed"],style:{color:"rgb(162, 191, 252)",fontStyle:"italic"}},{types:["deleted"],style:{color:"rgba(239, 83, 80, 0.56)",fontStyle:"italic"}},{types:["inserted","attr-name"],style:{color:"rgb(173, 219, 103)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(99, 119, 119)",fontStyle:"italic"}},{types:["string","url"],style:{color:"rgb(173, 219, 103)"}},{types:["variable"],style:{color:"rgb(214, 222, 235)"}},{types:["number"],style:{color:"rgb(247, 140, 108)"}},{types:["builtin","char","constant","function"],style:{color:"rgb(130, 170, 255)"}},{types:["punctuation"],style:{color:"rgb(199, 146, 234)"}},{types:["selector","doctype"],style:{color:"rgb(199, 146, 234)",fontStyle:"italic"}},{types:["class-name"],style:{color:"rgb(255, 203, 139)"}},{types:["tag","operator","keyword"],style:{color:"rgb(127, 219, 202)"}},{types:["boolean"],style:{color:"rgb(255, 88, 116)"}},{types:["property"],style:{color:"rgb(128, 203, 196)"}},{types:["namespace"],style:{color:"rgb(178, 204, 214)"}}]},Q={plain:{color:"#403f53",backgroundColor:"#FBFBFB"},styles:[{types:["changed"],style:{color:"rgb(162, 191, 252)",fontStyle:"italic"}},{types:["deleted"],style:{color:"rgba(239, 83, 80, 0.56)",fontStyle:"italic"}},{types:["inserted","attr-name"],style:{color:"rgb(72, 118, 214)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(152, 159, 177)",fontStyle:"italic"}},{types:["string","builtin","char","constant","url"],style:{color:"rgb(72, 118, 214)"}},{types:["variable"],style:{color:"rgb(201, 103, 101)"}},{types:["number"],style:{color:"rgb(170, 9, 130)"}},{types:["punctuation"],style:{color:"rgb(153, 76, 195)"}},{types:["function","selector","doctype"],style:{color:"rgb(153, 76, 195)",fontStyle:"italic"}},{types:["class-name"],style:{color:"rgb(17, 17, 17)"}},{types:["tag"],style:{color:"rgb(153, 76, 195)"}},{types:["operator","property","keyword","namespace"],style:{color:"rgb(12, 150, 155)"}},{types:["boolean"],style:{color:"rgb(188, 84, 84)"}}]},Z="#c5a5c5",X="#8dc891",J={plain:{backgroundColor:"#282c34",color:"#ffffff"},styles:[{types:["attr-name"],style:{color:Z}},{types:["attr-value"],style:{color:X}},{types:["comment","block-comment","prolog","doctype","cdata","shebang"],style:{color:"#999999"}},{types:["property","number","function-name","constant","symbol","deleted"],style:{color:"#5a9bcf"}},{types:["boolean"],style:{color:"#ff8b50"}},{types:["tag"],style:{color:"#fc929e"}},{types:["string"],style:{color:X}},{types:["punctuation"],style:{color:X}},{types:["selector","char","builtin","inserted"],style:{color:"#D8DEE9"}},{types:["function"],style:{color:"#79b6f2"}},{types:["operator","entity","url","variable"],style:{color:"#d7deea"}},{types:["keyword"],style:{color:Z}},{types:["atrule","class-name"],style:{color:"#FAC863"}},{types:["important"],style:{fontWeight:"400"}},{types:["bold"],style:{fontWeight:"bold"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["namespace"],style:{opacity:.7}}]},ee={plain:{color:"#f8f8f2",backgroundColor:"#272822"},styles:[{types:["changed"],style:{color:"rgb(162, 191, 252)",fontStyle:"italic"}},{types:["deleted"],style:{color:"#f92672",fontStyle:"italic"}},{types:["inserted"],style:{color:"rgb(173, 219, 103)",fontStyle:"italic"}},{types:["comment"],style:{color:"#8292a2",fontStyle:"italic"}},{types:["string","url"],style:{color:"#a6e22e"}},{types:["variable"],style:{color:"#f8f8f2"}},{types:["number"],style:{color:"#ae81ff"}},{types:["builtin","char","constant","function","class-name"],style:{color:"#e6db74"}},{types:["punctuation"],style:{color:"#f8f8f2"}},{types:["selector","doctype"],style:{color:"#a6e22e",fontStyle:"italic"}},{types:["tag","operator","keyword"],style:{color:"#66d9ef"}},{types:["boolean"],style:{color:"#ae81ff"}},{types:["namespace"],style:{color:"rgb(178, 204, 214)",opacity:.7}},{types:["tag","property"],style:{color:"#f92672"}},{types:["attr-name"],style:{color:"#a6e22e !important"}},{types:["doctype"],style:{color:"#8292a2"}},{types:["rule"],style:{color:"#e6db74"}}]},et={plain:{color:"#bfc7d5",backgroundColor:"#292d3e"},styles:[{types:["comment"],style:{color:"rgb(105, 112, 152)",fontStyle:"italic"}},{types:["string","inserted"],style:{color:"rgb(195, 232, 141)"}},{types:["number"],style:{color:"rgb(247, 140, 108)"}},{types:["builtin","char","constant","function"],style:{color:"rgb(130, 170, 255)"}},{types:["punctuation","selector"],style:{color:"rgb(199, 146, 234)"}},{types:["variable"],style:{color:"rgb(191, 199, 213)"}},{types:["class-name","attr-name"],style:{color:"rgb(255, 203, 107)"}},{types:["tag","deleted"],style:{color:"rgb(255, 85, 114)"}},{types:["operator"],style:{color:"rgb(137, 221, 255)"}},{types:["boolean"],style:{color:"rgb(255, 88, 116)"}},{types:["keyword"],style:{fontStyle:"italic"}},{types:["doctype"],style:{color:"rgb(199, 146, 234)",fontStyle:"italic"}},{types:["namespace"],style:{color:"rgb(178, 204, 214)"}},{types:["url"],style:{color:"rgb(221, 221, 221)"}}]},en={plain:{color:"#9EFEFF",backgroundColor:"#2D2A55"},styles:[{types:["changed"],style:{color:"rgb(255, 238, 128)"}},{types:["deleted"],style:{color:"rgba(239, 83, 80, 0.56)"}},{types:["inserted"],style:{color:"rgb(173, 219, 103)"}},{types:["comment"],style:{color:"rgb(179, 98, 255)",fontStyle:"italic"}},{types:["punctuation"],style:{color:"rgb(255, 255, 255)"}},{types:["constant"],style:{color:"rgb(255, 98, 140)"}},{types:["string","url"],style:{color:"rgb(165, 255, 144)"}},{types:["variable"],style:{color:"rgb(255, 238, 128)"}},{types:["number","boolean"],style:{color:"rgb(255, 98, 140)"}},{types:["attr-name"],style:{color:"rgb(255, 180, 84)"}},{types:["keyword","operator","property","namespace","tag","selector","doctype"],style:{color:"rgb(255, 157, 0)"}},{types:["builtin","char","constant","function","class-name"],style:{color:"rgb(250, 208, 0)"}}]},er={plain:{backgroundColor:"linear-gradient(to bottom, #2a2139 75%, #34294f)",backgroundImage:"#34294f",color:"#f92aad",textShadow:"0 0 2px #100c0f, 0 0 5px #dc078e33, 0 0 10px #fff3"},styles:[{types:["comment","block-comment","prolog","doctype","cdata"],style:{color:"#495495",fontStyle:"italic"}},{types:["punctuation"],style:{color:"#ccc"}},{types:["tag","attr-name","namespace","number","unit","hexcode","deleted"],style:{color:"#e2777a"}},{types:["property","selector"],style:{color:"#72f1b8",textShadow:"0 0 2px #100c0f, 0 0 10px #257c5575, 0 0 35px #21272475"}},{types:["function-name"],style:{color:"#6196cc"}},{types:["boolean","selector-id","function"],style:{color:"#fdfdfd",textShadow:"0 0 2px #001716, 0 0 3px #03edf975, 0 0 5px #03edf975, 0 0 8px #03edf975"}},{types:["class-name","maybe-class-name","builtin"],style:{color:"#fff5f6",textShadow:"0 0 2px #000, 0 0 10px #fc1f2c75, 0 0 5px #fc1f2c75, 0 0 25px #fc1f2c75"}},{types:["constant","symbol"],style:{color:"#f92aad",textShadow:"0 0 2px #100c0f, 0 0 5px #dc078e33, 0 0 10px #fff3"}},{types:["important","atrule","keyword","selector-class"],style:{color:"#f4eee4",textShadow:"0 0 2px #393a33, 0 0 8px #f39f0575, 0 0 2px #f39f0575"}},{types:["string","char","attr-value","regex","variable"],style:{color:"#f87c32"}},{types:["parameter"],style:{fontStyle:"italic"}},{types:["entity","url"],style:{color:"#67cdcc"}},{types:["operator"],style:{color:"ffffffee"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["entity"],style:{cursor:"help"}},{types:["inserted"],style:{color:"green"}}]},ea={plain:{color:"#282a2e",backgroundColor:"#ffffff"},styles:[{types:["comment"],style:{color:"rgb(197, 200, 198)"}},{types:["string","number","builtin","variable"],style:{color:"rgb(150, 152, 150)"}},{types:["class-name","function","tag","attr-name"],style:{color:"rgb(40, 42, 46)"}}]},eo={plain:{color:"#9CDCFE",backgroundColor:"#1E1E1E"},styles:[{types:["prolog"],style:{color:"rgb(0, 0, 128)"}},{types:["comment"],style:{color:"rgb(106, 153, 85)"}},{types:["builtin","changed","keyword","interpolation-punctuation"],style:{color:"rgb(86, 156, 214)"}},{types:["number","inserted"],style:{color:"rgb(181, 206, 168)"}},{types:["constant"],style:{color:"rgb(100, 102, 149)"}},{types:["attr-name","variable"],style:{color:"rgb(156, 220, 254)"}},{types:["deleted","string","attr-value","template-punctuation"],style:{color:"rgb(206, 145, 120)"}},{types:["selector"],style:{color:"rgb(215, 186, 125)"}},{types:["tag"],style:{color:"rgb(78, 201, 176)"}},{types:["tag"],languages:["markup"],style:{color:"rgb(86, 156, 214)"}},{types:["punctuation","operator"],style:{color:"rgb(212, 212, 212)"}},{types:["punctuation"],languages:["markup"],style:{color:"#808080"}},{types:["function"],style:{color:"rgb(220, 220, 170)"}},{types:["class-name"],style:{color:"rgb(78, 201, 176)"}},{types:["char"],style:{color:"rgb(209, 105, 105)"}}]},ei={plain:{color:"#000000",backgroundColor:"#ffffff"},styles:[{types:["comment"],style:{color:"rgb(0, 128, 0)"}},{types:["builtin"],style:{color:"rgb(0, 112, 193)"}},{types:["number","variable","inserted"],style:{color:"rgb(9, 134, 88)"}},{types:["operator"],style:{color:"rgb(0, 0, 0)"}},{types:["constant","char"],style:{color:"rgb(129, 31, 63)"}},{types:["tag"],style:{color:"rgb(128, 0, 0)"}},{types:["attr-name"],style:{color:"rgb(255, 0, 0)"}},{types:["deleted","string"],style:{color:"rgb(163, 21, 21)"}},{types:["changed","punctuation"],style:{color:"rgb(4, 81, 165)"}},{types:["function","keyword"],style:{color:"rgb(0, 0, 255)"}},{types:["class-name"],style:{color:"rgb(38, 127, 153)"}}]},el={plain:{color:"#f8fafc",backgroundColor:"#011627"},styles:[{types:["prolog"],style:{color:"#000080"}},{types:["comment"],style:{color:"#6A9955"}},{types:["builtin","changed","keyword","interpolation-punctuation"],style:{color:"#569CD6"}},{types:["number","inserted"],style:{color:"#B5CEA8"}},{types:["constant"],style:{color:"#f8fafc"}},{types:["attr-name","variable"],style:{color:"#9CDCFE"}},{types:["deleted","string","attr-value","template-punctuation"],style:{color:"#cbd5e1"}},{types:["selector"],style:{color:"#D7BA7D"}},{types:["tag"],style:{color:"#0ea5e9"}},{types:["tag"],languages:["markup"],style:{color:"#0ea5e9"}},{types:["punctuation","operator"],style:{color:"#D4D4D4"}},{types:["punctuation"],languages:["markup"],style:{color:"#808080"}},{types:["function"],style:{color:"#7dd3fc"}},{types:["class-name"],style:{color:"#0ea5e9"}},{types:["char"],style:{color:"#D16969"}}]},es={plain:{color:"#0f172a",backgroundColor:"#f1f5f9"},styles:[{types:["prolog"],style:{color:"#000080"}},{types:["comment"],style:{color:"#6A9955"}},{types:["builtin","changed","keyword","interpolation-punctuation"],style:{color:"#0c4a6e"}},{types:["number","inserted"],style:{color:"#B5CEA8"}},{types:["constant"],style:{color:"#0f172a"}},{types:["attr-name","variable"],style:{color:"#0c4a6e"}},{types:["deleted","string","attr-value","template-punctuation"],style:{color:"#64748b"}},{types:["selector"],style:{color:"#D7BA7D"}},{types:["tag"],style:{color:"#0ea5e9"}},{types:["tag"],languages:["markup"],style:{color:"#0ea5e9"}},{types:["punctuation","operator"],style:{color:"#475569"}},{types:["punctuation"],languages:["markup"],style:{color:"#808080"}},{types:["function"],style:{color:"#0e7490"}},{types:["class-name"],style:{color:"#0ea5e9"}},{types:["char"],style:{color:"#D16969"}}]},eu={plain:{backgroundColor:"hsl(220, 13%, 18%)",color:"hsl(220, 14%, 71%)",textShadow:"0 1px rgba(0, 0, 0, 0.3)"},styles:[{types:["comment","prolog","cdata"],style:{color:"hsl(220, 10%, 40%)"}},{types:["doctype","punctuation","entity"],style:{color:"hsl(220, 14%, 71%)"}},{types:["attr-name","class-name","maybe-class-name","boolean","constant","number","atrule"],style:{color:"hsl(29, 54%, 61%)"}},{types:["keyword"],style:{color:"hsl(286, 60%, 67%)"}},{types:["property","tag","symbol","deleted","important"],style:{color:"hsl(355, 65%, 65%)"}},{types:["selector","string","char","builtin","inserted","regex","attr-value"],style:{color:"hsl(95, 38%, 62%)"}},{types:["variable","operator","function"],style:{color:"hsl(207, 82%, 66%)"}},{types:["url"],style:{color:"hsl(187, 47%, 55%)"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"hsl(220, 14%, 71%)"}}]},ec={plain:{backgroundColor:"hsl(230, 1%, 98%)",color:"hsl(230, 8%, 24%)"},styles:[{types:["comment","prolog","cdata"],style:{color:"hsl(230, 4%, 64%)"}},{types:["doctype","punctuation","entity"],style:{color:"hsl(230, 8%, 24%)"}},{types:["attr-name","class-name","boolean","constant","number","atrule"],style:{color:"hsl(35, 99%, 36%)"}},{types:["keyword"],style:{color:"hsl(301, 63%, 40%)"}},{types:["property","tag","symbol","deleted","important"],style:{color:"hsl(5, 74%, 59%)"}},{types:["selector","string","char","builtin","inserted","regex","attr-value","punctuation"],style:{color:"hsl(119, 34%, 47%)"}},{types:["variable","operator","function"],style:{color:"hsl(221, 87%, 60%)"}},{types:["url"],style:{color:"hsl(198, 99%, 37%)"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"hsl(230, 8%, 24%)"}}]},ed={plain:{color:"#ebdbb2",backgroundColor:"#292828"},styles:[{types:["imports","class-name","maybe-class-name","constant","doctype","builtin","function"],style:{color:"#d8a657"}},{types:["property-access"],style:{color:"#7daea3"}},{types:["tag"],style:{color:"#e78a4e"}},{types:["attr-name","char","url","regex"],style:{color:"#a9b665"}},{types:["attr-value","string"],style:{color:"#89b482"}},{types:["comment","prolog","cdata","operator","inserted"],style:{color:"#a89984"}},{types:["delimiter","boolean","keyword","selector","important","atrule","property","variable","deleted"],style:{color:"#ea6962"}},{types:["entity","number","symbol"],style:{color:"#d3869b"}}]},ef={plain:{color:"#654735",backgroundColor:"#f9f5d7"},styles:[{types:["delimiter","boolean","keyword","selector","important","atrule","property","variable","deleted"],style:{color:"#af2528"}},{types:["imports","class-name","maybe-class-name","constant","doctype","builtin"],style:{color:"#b4730e"}},{types:["string","attr-value"],style:{color:"#477a5b"}},{types:["property-access"],style:{color:"#266b79"}},{types:["function","attr-name","char","url"],style:{color:"#72761e"}},{types:["tag"],style:{color:"#b94c07"}},{types:["comment","prolog","cdata","operator","inserted"],style:{color:"#a89984"}},{types:["entity","number","symbol"],style:{color:"#924f79"}}]},ep=/\r\n|\r|\n/,em=e=>{0===e.length?e.push({types:["plain"],content:"\n",empty:!0}):1===e.length&&""===e[0].content&&(e[0].content="\n",e[0].empty=!0)},eh=(e,t)=>{let n=e.length;return n>0&&e[n-1]===t?e:e.concat(t)},eg=e=>{let t=[[]],n=[e],r=[0],a=[e.length],o=0,i=0,l=[],s=[l];for(;i>-1;){for(;(o=r[i]++)0?u:["plain"],e=c):(u=eh(u,c.type),c.alias&&(u=eh(u,c.alias)),e=c.content),"string"!=typeof e){i++,t.push(u),n.push(e),r.push(0),a.push(e.length);continue}let d=e.split(ep),f=d.length;l.push({types:u,content:d[0]});for(let e=1;e{let o,i=t.toLowerCase(),l=((e,t)=>{let{plain:n}=e,r=e.styles.reduce((e,n)=>{let{languages:r,style:a}=n;return r&&!r.includes(t)||n.types.forEach(t=>{let n=M(M({},e[t]),a);e[t]=n}),e},{});return r.root=n,r.plain=O(M({},n),N({backgroundColor:void 0})),r})(r,i),s=(0,A.useCallback)(e=>{var{className:t,style:n,line:r}=e;let a=O(M({},$(e,["className","style","line"])),N({className:(0,C.A)("token-line",t)}));return"object"==typeof l&&"plain"in l&&(a.style=l.plain),"object"==typeof n&&(a.style=M(M({},a.style||{}),n)),a},[l]),u=(o=(0,A.useCallback)(({types:e,empty:t})=>{if(null!=l)return 1===e.length&&"plain"===e[0]?null!=t?{display:"inline-block"}:void 0:1===e.length&&null!=t?l[e[0]]:Object.assign(null!=t?{display:"inline-block"}:{},...e.map(e=>l[e]))},[l]),(0,A.useCallback)(e=>{var{token:t,className:n,style:r}=e;let a=O(M({},$(e,["token","className","style"])),N({className:(0,C.A)("token",...t.types,n),children:t.content,style:o(t)}));return null!=r&&(a.style=M(M({},a.style||{}),r)),a},[o])),c=a.languages[i];return e({tokens:(({prism:e,code:t,grammar:n,language:r})=>(0,A.useMemo)(()=>{if(null==n)return eg([t]);let a={code:t,grammar:n,language:r,tokens:[]};return e.hooks.run("before-tokenize",a),a.tokens=e.tokenize(t,n),e.hooks.run("after-tokenize",a),eg(a.tokens)},[t,n,r,e]))({prism:a,language:i,code:n,grammar:c}),className:`prism-code language-${i}`,style:null!=l?l.root:{},getLineProps:s,getTokenProps:u})},ey=e=>(0,A.createElement)(eb,O(M({},e),N({prism:e.prism||B,theme:e.theme||eo,code:e.code,language:e.language})))},5385(e,t,n){"use strict";n.d(t,{A:()=>r});function r(e,t){if(!e)throw Error("Invariant failed")}},5482(e,t,n){"use strict";n.r(t),n.d(t,{__addDisposableResource:()=>I,__assign:()=>o,__asyncDelegator:()=>_,__asyncGenerator:()=>E,__asyncValues:()=>A,__await:()=>S,__awaiter:()=>m,__classPrivateFieldGet:()=>N,__classPrivateFieldIn:()=>R,__classPrivateFieldSet:()=>j,__createBinding:()=>g,__decorate:()=>l,__disposeResources:()=>F,__esDecorate:()=>u,__exportStar:()=>b,__extends:()=>a,__generator:()=>h,__importDefault:()=>L,__importStar:()=>O,__makeTemplateObject:()=>C,__metadata:()=>p,__param:()=>s,__propKey:()=>d,__read:()=>v,__rest:()=>i,__rewriteRelativeImportExtension:()=>z,__runInitializers:()=>c,__setFunctionName:()=>f,__spread:()=>w,__spreadArray:()=>x,__spreadArrays:()=>k,__values:()=>y,default:()=>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])})(e,t)};function a(e,t){if("function"!=typeof t&&null!==t)throw 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;nt.indexOf(r)&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var a=0,r=Object.getOwnPropertySymbols(e);at.indexOf(r[a])&&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 s(e,t){return function(n,r){t(n,r,e)}}function u(e,t,n,r,a,o){function i(e){if(void 0!==e&&"function"!=typeof e)throw TypeError("Function expected");return e}for(var l,s=r.kind,u="getter"===s?"get":"setter"===s?"set":"value",c=!t&&e?r.static?e:e.prototype:null,d=t||(c?Object.getOwnPropertyDescriptor(c,r.name):{}),f=!1,p=n.length-1;p>=0;p--){var m={};for(var h in r)m[h]="access"===h?{}:r[h];for(var h in r.access)m.access[h]=r.access[h];m.addInitializer=function(e){if(f)throw TypeError("Cannot add initializers after decoration has completed");o.push(i(e||null))};var g=(0,n[p])("accessor"===s?{get:d.get,set:d.set}:d[u],m);if("accessor"===s){if(void 0===g)continue;if(null===g||"object"!=typeof g)throw TypeError("Object expected");(l=i(g.get))&&(d.get=l),(l=i(g.set))&&(d.set=l),(l=i(g.init))&&a.unshift(l)}else(l=i(g))&&("field"===s?a.unshift(l):d[u]=l)}c&&Object.defineProperty(c,r.name,d),f=!0}function c(e,t,n){for(var r=arguments.length>2,a=0;a0&&a[a.length-1])&&(6===u[0]||2===u[0])){o=0;continue}if(3===u[0]&&(!a||u[1]>a[0]&&u[1]=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function v(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(e){a={error:e}}finally{try{r&&!r.done&&(n=o.return)&&n.call(o)}finally{if(a)throw a.error}}return i}function w(){for(var e=[],t=0;t1||l(e,t)})},t&&(r[e]=t(r[e])))}function l(e,t){try{var n;(n=a[e](t)).value instanceof S?Promise.resolve(n.value.v).then(s,u):c(o[0][2],n)}catch(e){c(o[0][3],e)}}function s(e){l("next",e)}function u(e){l("throw",e)}function c(e,t){e(t),o.shift(),o.length&&l(o[0][0],o[0][1])}}function _(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:S(e[r](t)),done:!1}:a?a(t):t}:a}}function A(e){if(!Symbol.asyncIterator)throw TypeError("Symbol.asyncIterator is not defined.");var t,n=e[Symbol.asyncIterator];return n?n.call(e):(e=y(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){var o,i,l;o=r,i=a,l=(t=e[n](t)).done,Promise.resolve(t.value).then(function(e){o({value:e,done:l})},i)})}}}function C(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e}var T=Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t},P=function(e){return(P=Object.getOwnPropertyNames||function(e){var t=[];for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[t.length]=n);return t})(e)};function O(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n=P(e),r=0;r{"use strict";var e,r,t,a,o,c,f,d={},n={};function b(e){var r=n[e];if(void 0!==r)return r.exports;var t=n[e]={exports:{}};return d[e].call(t.exports,t,t.exports,b),t.exports}b.m=d,b.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return b.d(r,{a:r}),r},r=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,b.t=function(t,a){if(1&a&&(t=this(t)),8&a||"object"==typeof t&&t&&(4&a&&t.__esModule||16&a&&"function"==typeof t.then))return t;var o=Object.create(null);b.r(o);var c={};e=e||[null,r({}),r([]),r(r)];for(var f=2&a&&t;("object"==typeof f||"function"==typeof f)&&!~e.indexOf(f);f=r(f))Object.getOwnPropertyNames(f).forEach(e=>{c[e]=()=>t[e]});return c.default=()=>t,b.d(o,c),o},b.d=(e,r)=>{for(var t in r)b.o(r,t)&&!b.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},b.f={},b.e=e=>Promise.all(Object.keys(b.f).reduce((r,t)=>(b.f[t](e,r),r),[])),b.u=e=>"assets/js/"+(({106:"17896441",135:"ac5280f2",142:"0dffb83e",156:"395fe600",2:"7a70e970",217:"0e384e19",218:"05d4cacb",326:"fe98809a",356:"5ef0e9d6",359:"4093844a",364:"fd368041",385:"db38bcc4",41:"edefc60b",411:"67e4f9fb",440:"e6f0c936",452:"1df93b7f",475:"f325f636",499:"8070e160",503:"93234bd6",521:"72e9da6a",56:"a7456010",575:"a7bd4aaa",590:"46875d5c",630:"cc0a2bf3",646:"6b77a8a0",668:"5e95c892",688:"cac2e989",69:"97658992",707:"c1cdd282",747:"aba21aa0",785:"a94703ab",797:"9ca5d8d5",867:"8fec5fc3",896:"51876da0"})[e]||e)+"."+({106:"6c48d3c2",135:"753ae7d0",142:"23cbd0dd",156:"7fc368e2",2:"9a0bdcc8",217:"2e6da584",218:"930b2d02",326:"f6c6882a",356:"0b1d1467",359:"f2a7daab",364:"c762b37b",385:"78baa2e3",406:"7afbacb1",41:"4f596fb4",411:"bc7d4b75",440:"252665bb",452:"2d12c2ab",475:"27e21513",499:"7712c5b0",503:"5645ce7a",521:"74aae7c4",56:"b47ace4d",575:"96f1510e",590:"8eac26b0",627:"5a86db8b",630:"b16b6688",646:"83b20763",668:"61b67e6b",688:"38479ceb",69:"ef395c85",707:"518bc6d9",747:"66a74c66",785:"b81930da",797:"1fbdb43e",867:"8dd51700",896:"019db1d4"})[e]+".js",b.miniCssF=e=>""+e+".css",b.g=(()=>{if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}})(),b.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),t={},b.l=function(e,r,a,o){if(t[e])return void t[e].push(r);if(void 0!==a)for(var c,f,d=document.getElementsByTagName("script"),n=0;n{"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},a=[],b.O=(e,r,t,o)=>{if(r){o=o||0;for(var c=a.length;c>0&&a[c-1][2]>o;c--)a[c]=a[c-1];a[c]=[r,t,o];return}for(var f=1/0,c=0;c=o)&&Object.keys(b.O).every(e=>b.O[e](r[n]))?r.splice(n--,1):(d=!1,o"1.7.12",b.gca=function(e){return e=({0x11113f9:"106",0x5d22870:"69","7a70e970":"2",edefc60b:"41",a7456010:"56",ac5280f2:"135","0dffb83e":"142","395fe600":"156","0e384e19":"217","05d4cacb":"218",fe98809a:"326","5ef0e9d6":"356","4093844a":"359",fd368041:"364",db38bcc4:"385","67e4f9fb":"411",e6f0c936:"440","1df93b7f":"452",f325f636:"475","8070e160":"499","93234bd6":"503","72e9da6a":"521",a7bd4aaa:"575","46875d5c":"590",cc0a2bf3:"630","6b77a8a0":"646","5e95c892":"668",cac2e989:"688",c1cdd282:"707",aba21aa0:"747",a94703ab:"785","9ca5d8d5":"797","8fec5fc3":"867","51876da0":"896"})[e]||e,b.p+b.u(e)},o={14:0,783:0},b.f.j=function(e,r){var t=b.o(o,e)?o[e]:void 0;if(0!==t)if(t)r.push(t[2]);else if(/^(14|783)$/.test(e))o[e]=0;else{var a=new Promise((r,a)=>t=o[e]=[r,a]);r.push(t[2]=a);var c=b.p+b.u(e),f=Error();b.l(c,function(r){if(b.o(o,e)&&(0!==(t=o[e])&&(o[e]=void 0),t)){var a=r&&("load"===r.type?"missing":r.type),c=r&&r.target&&r.target.src;f.message="Loading chunk "+e+" failed.\n("+a+": "+c+")",f.name="ChunkLoadError",f.type=a,f.request=c,t[1](f)}},"chunk-"+e,e)}},b.O.j=e=>0===o[e],c=(e,r)=>{var t,a,c=r[0],f=r[1],d=r[2],n=0;if(c.some(e=>0!==o[e])){for(t in f)b.o(f,t)&&(b.m[t]=f[t]);if(d)var i=d(b)}for(e&&e(r);n{"use strict";var e,r,t,a,o,f,d,n={},c={};function b(e){var r=c[e];if(void 0!==r)return r.exports;var t=c[e]={exports:{}};return n[e].call(t.exports,t,t.exports,b),t.exports}b.m=n,b.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return b.d(r,{a:r}),r},r=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,b.t=function(t,a){if(1&a&&(t=this(t)),8&a||"object"==typeof t&&t&&(4&a&&t.__esModule||16&a&&"function"==typeof t.then))return t;var o=Object.create(null);b.r(o);var f={};e=e||[null,r({}),r([]),r(r)];for(var d=2&a&&t;("object"==typeof d||"function"==typeof d)&&!~e.indexOf(d);d=r(d))Object.getOwnPropertyNames(d).forEach(e=>{f[e]=()=>t[e]});return f.default=()=>t,b.d(o,f),o},b.d=(e,r)=>{for(var t in r)b.o(r,t)&&!b.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},b.f={},b.e=e=>Promise.all(Object.keys(b.f).reduce((r,t)=>(b.f[t](e,r),r),[])),b.u=e=>"assets/js/"+(({106:"17896441",133:"90358f02",135:"ac5280f2",142:"0dffb83e",217:"0e384e19",218:"05d4cacb",267:"ab38dbfe",326:"fe98809a",356:"5ef0e9d6",364:"fd368041",394:"def3d52a",395:"37f66e80",41:"edefc60b",411:"67e4f9fb",440:"e6f0c936",452:"1df93b7f",475:"f325f636",499:"8070e160",503:"93234bd6",521:"72e9da6a",56:"a7456010",575:"a7bd4aaa",590:"46875d5c",630:"cc0a2bf3",646:"6b77a8a0",668:"5e95c892",688:"cac2e989",69:"97658992",707:"c1cdd282",747:"aba21aa0",785:"a94703ab",795:"9a00739f",817:"b2d27f24",896:"51876da0"})[e]||e)+"."+({106:"6c48d3c2",133:"49d265ea",135:"753ae7d0",142:"23cbd0dd",217:"82c87d74",218:"7119d8a1",267:"250a4996",326:"94f05a50",356:"bc7a97b0",364:"d1053280",394:"e1de427f",395:"567f6d20",406:"7afbacb1",41:"2eadef4f",411:"5cd6a9d0",440:"a2849b94",452:"26956a5e",475:"7a8aa195",499:"c6dc6b27",503:"95f8ebc2",521:"910b293b",56:"b47ace4d",575:"96f1510e",590:"4f76e68a",627:"5a86db8b",630:"b16b6688",646:"4f873f5b",668:"61b67e6b",688:"53a64e10",69:"d0b6799d",707:"3c5ba703",747:"66a74c66",785:"b81930da",795:"1101e6b4",817:"8315e086",896:"b64acab5"})[e]+".js",b.miniCssF=e=>""+e+".css",b.g=(()=>{if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}})(),b.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),t={},b.l=function(e,r,a,o){if(t[e])return void t[e].push(r);if(void 0!==a)for(var f,d,n=document.getElementsByTagName("script"),c=0;c{"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},a=[],b.O=(e,r,t,o)=>{if(r){o=o||0;for(var f=a.length;f>0&&a[f-1][2]>o;f--)a[f]=a[f-1];a[f]=[r,t,o];return}for(var d=1/0,f=0;f=o)&&Object.keys(b.O).every(e=>b.O[e](r[c]))?r.splice(c--,1):(n=!1,o"1.7.12",b.gca=function(e){return e=({0x11113f9:"106",0x5d22870:"69",edefc60b:"41",a7456010:"56","90358f02":"133",ac5280f2:"135","0dffb83e":"142","0e384e19":"217","05d4cacb":"218",ab38dbfe:"267",fe98809a:"326","5ef0e9d6":"356",fd368041:"364",def3d52a:"394","37f66e80":"395","67e4f9fb":"411",e6f0c936:"440","1df93b7f":"452",f325f636:"475","8070e160":"499","93234bd6":"503","72e9da6a":"521",a7bd4aaa:"575","46875d5c":"590",cc0a2bf3:"630","6b77a8a0":"646","5e95c892":"668",cac2e989:"688",c1cdd282:"707",aba21aa0:"747",a94703ab:"785","9a00739f":"795",b2d27f24:"817","51876da0":"896"})[e]||e,b.p+b.u(e)},o={14:0,783:0},b.f.j=function(e,r){var t=b.o(o,e)?o[e]:void 0;if(0!==t)if(t)r.push(t[2]);else if(/^(14|783)$/.test(e))o[e]=0;else{var a=new Promise((r,a)=>t=o[e]=[r,a]);r.push(t[2]=a);var f=b.p+b.u(e),d=Error();b.l(f,function(r){if(b.o(o,e)&&(0!==(t=o[e])&&(o[e]=void 0),t)){var a=r&&("load"===r.type?"missing":r.type),f=r&&r.target&&r.target.src;d.message="Loading chunk "+e+" failed.\n("+a+": "+f+")",d.name="ChunkLoadError",d.type=a,d.request=f,t[1](d)}},"chunk-"+e,e)}},b.O.j=e=>0===o[e],f=(e,r)=>{var t,a,f=r[0],d=r[1],n=r[2],c=0;if(f.some(e=>0!==o[e])){for(t in d)b.o(d,t)&&(b.m[t]=d[t]);if(n)var i=n(b)}for(e&&e(r);c社区和贡献 | Orbien +社区和贡献 | Orbien -

社区和贡献

+ \ No newline at end of file diff --git a/docs/docker.html b/docs/docker.html index e42e81d..f5b6307 100644 --- a/docs/docker.html +++ b/docs/docker.html @@ -1,11 +1,11 @@ -Docker 安装 | Orbien +Docker 安装 | Orbien -

Docker 安装

+

Docker 安装

服务端​

准备 orbien-server.toml:

-
bindAddr = "0.0.0.0"
bindPort = 9527

# 可选:虚拟主机
# vhostHTTPPort = 80
# vhostHTTPSPort = 443

# 可选:客户端鉴权
# [auth]
# token = "YOUR_TOKEN"

# 可选:Web 管理面板
[webServer]
addr = "0.0.0.0"
port = 8020
user = "admin"
password = "123456"
-
注意

webServer.addr 需为 0.0.0.0,否则宿主机无法通过端口映射访问管理面板

+
listen = "0.0.0.0:9527"

# 可选 通过域名路由
# httpGwPort = 80
# httpsGwPort = 443

# 可选:客户端鉴权
# [auth]
# token = "YOUR_TOKEN"

# 可选:Web 管理面板
[dashboard]
addr = "0.0.0.0"
port = 8020
user = "admin"
password = "123456"
+
注意

dashboard.addr 需为 0.0.0.0,否则宿主机无法通过端口映射访问管理面板

方式一:配置文件启动​

docker run -d --name orbien-server --restart unless-stopped \
-p 9527:9527 \
-p 8020:8020 \
-v "$PWD/orbien-server.toml:/etc/orbien/orbien-server.toml:ro" \
ghcr.io/orbien-org/orbien-server:latest

方式二:Compose启动​

@@ -15,13 +15,13 @@

客户端​

挂载配置​

准备 orbien.toml:

-
serverAddr = "YOUR_SERVER_IP"
serverPort = 9527

# 若服务端开启了 Token,需保持一致
# [auth]
# token = "YOUR_TOKEN"

[[proxies]]
name = "mysql"
type = "tcp"
localIP = "127.0.0.1"
localPort = 3306
remotePort = 6050
+
server = "YOUR_SERVER_IP:9527"

# 若服务端开启了 Token,需保持一致
# [auth]
# token = "YOUR_TOKEN"

[[tunnels]]
name = "mysql"
protocol = "tcp"
service = "127.0.0.1:3306"
remotePort = 9000

方式一:配置文件启动​

docker run -d --name orbien --restart unless-stopped \
-v "$PWD/orbien.toml:/etc/orbien/orbien.toml:ro" \
ghcr.io/orbien-org/orbien:latest
-
提示

容器内 127.0.0.1 是容器自己。若要穿透宿主机上的服务,把 localIP 改成宿主机 IP,或使用下方 host 网络

+
提示

容器内 127.0.0.1 是容器自己。若要穿透宿主机上的服务,把 service 改成宿主机 IP,或使用下方 host 网络

host 网络

与宿主机共用网络,配置里可直接写 127.0.0.1 访问本机服务:

docker run -d --name orbien --restart unless-stopped \
--network host \
-v "$PWD/orbien.toml:/etc/orbien/orbien.toml:ro" \
ghcr.io/orbien-org/orbien:latest

方式二:Compose启动​

# docker-compose.yaml
services:
orbien:
image: ghcr.io/orbien-org/orbien:latest
container_name: orbien
restart: unless-stopped
# network_mode: host
volumes:
- ./orbien.toml:/etc/orbien/orbien.toml:ro
-
docker compose up -d
\ No newline at end of file +
docker compose up -d
\ No newline at end of file diff --git a/docs/download.html b/docs/download.html index 7d230a9..e6bb864 100644 --- a/docs/download.html +++ b/docs/download.html @@ -1,6 +1,6 @@ -下载 | Orbien +下载 | Orbien -

下载

+

下载

按操作系统与架构选择对应安装包

-
操作系统架构libc服务端命令行客户端桌面客户端说明
Linuxamd64gnugnu · tar.gzgnu · tar.gzdeb动态链接 glibc
amd64muslmusl · tar.gzmusl · tar.gz静态链接,兼容旧 glibc
arm64gnugnu · tar.gzgnu · tar.gzdeb动态链接 glibc
arm64muslmusl · tar.gzmusl · tar.gz静态链接,兼容旧 glibc
FreeBSDamd64tar.gztar.gz
Windowsamd64tar.gztar.gzmsi
arm64tar.gztar.gzmsi
macOSamd64tar.gztar.gzdmg如遇拦截,于系统设置中允许运行
arm64tar.gztar.gzdmg如遇拦截,于系统设置中允许运行

Docker

  • orbien-serverserver
    docker pull ghcr.io/orbien-org/orbien-server:latest
  • orbienclient
    docker pull ghcr.io/orbien-org/orbien:latest
\ No newline at end of file +
操作系统架构libc服务端命令行客户端桌面客户端说明
Linuxamd64gnugnu · tar.gzgnu · tar.gzdeb动态链接 glibc
amd64muslmusl · tar.gzmusl · tar.gz静态链接,兼容旧 glibc
arm64gnugnu · tar.gzgnu · tar.gzdeb动态链接 glibc
arm64muslmusl · tar.gzmusl · tar.gz静态链接,兼容旧 glibc
FreeBSDamd64tar.gztar.gz
Windowsamd64tar.gztar.gzzip
arm64tar.gztar.gzzip
macOSamd64tar.gztar.gzdmg如遇拦截,于系统设置中允许运行
arm64tar.gztar.gzdmg如遇拦截,于系统设置中允许运行

Docker

  • orbien-serverserver
    docker pull ghcr.io/orbien-org/orbien-server:latest
  • orbienclient
    docker pull ghcr.io/orbien-org/orbien:latest
\ No newline at end of file diff --git a/docs/features/authentication.html b/docs/features/authentication.html index 042e51b..796c9e9 100644 --- a/docs/features/authentication.html +++ b/docs/features/authentication.html @@ -1,7 +1,7 @@ -身份认证 | Orbien +身份认证 | Orbien -

身份认证

+

身份认证

客户端连接服务端时的 Token 鉴权。服务端未配置 token(或为空)时不校验。

两端 token 必须一致,否则登录失败(authorization failed)。

示例​

diff --git a/docs/features/bandwidth.html b/docs/features/bandwidth.html index 48d7561..f37aef2 100644 --- a/docs/features/bandwidth.html +++ b/docs/features/bandwidth.html @@ -1,16 +1,16 @@ -带宽限制 | Orbien +带宽限制 | Orbien -

带宽限制

-

按代理限制转发带宽。配置在 [[proxies]] 的 transport 下。

+

带宽限制

+

按隧道限制转发带宽。配置在 [[tunnels]] 的 transport 下。

    -
  • bandwidthLimitMode = "client":在客户端限速
  • -
  • bandwidthLimitMode = "server":在服务端限速
  • +
  • bandwidthLimitSide = "client":在客户端限速(默认)
  • +
  • bandwidthLimitSide = "server":在服务端限速
-

单位仅支持 KB、MB(如 100KB、1MB)。留空表示不限制。

+

bandwidth 为数字,单位固定为Mbps(如 2、0.5)。0 表示不限制。

示例:客户端限速​

-
# orbien.toml
[[proxies]]
name = "web"
type = "tcp"
localIP = "127.0.0.1"
localPort = 80
remotePort = 9000
transport.bandwidthLimit = "1MB"
transport.bandwidthLimitMode = "client"
+
# orbien.toml
[[tunnels]]
name = "web"
protocol = "tcp"
service = "127.0.0.1:80"
remotePort = 9000
transport.bandwidth = 2
transport.bandwidthLimitSide = "client"

示例:服务端限速​

-
# orbien.toml
[[proxies]]
name = "web"
type = "tcp"
localIP = "127.0.0.1"
localPort = 80
remotePort = 9000
transport.bandwidthLimit = "500KB"
transport.bandwidthLimitMode = "server"
+
# orbien.toml
[[tunnels]]
name = "web"
protocol = "tcp"
service = "127.0.0.1:80"
remotePort = 9000
transport.bandwidth = 0.5
transport.bandwidthLimitSide = "server"

参数​

-
参数必填默认值说明
transport.bandwidthLimit否带宽上限,如 1MB、100KB;空表示不限制
transport.bandwidthLimitMode否client限速端:client / server
\ No newline at end of file +
参数必填默认值说明
transport.bandwidth否0带宽上限(Mbps);0 表示不限制
transport.bandwidthLimitSide否client限速端:client / server
\ No newline at end of file diff --git a/docs/features/dashboard.html b/docs/features/dashboard.html index f48ad4e..9305589 100644 --- a/docs/features/dashboard.html +++ b/docs/features/dashboard.html @@ -1,15 +1,11 @@ -管理界面 | Orbien +管理界面 | Orbien -

管理界面

-

服务端 Web 管理面板。在 orbien-server.toml 中配置 [webServer],且 port > 0 时启用。

+

管理界面

+

服务端 Web 管理面板。在 orbien-server.toml 中配置 [dashboard],且 port > 0 时启用。

示例​

-
# orbien-server.toml
bindAddr = "0.0.0.0"
bindPort = 9527

[webServer]
addr = "0.0.0.0"
port = 8020
user = "admin"
password = "123456"
assetsDir = "/path/to/dist"
+
# orbien-server.toml
listen = "0.0.0.0:9527"

[dashboard]
addr = "0.0.0.0"
port = 8020
user = "admin"
password = "123456"

浏览器访问 http://SERVER_IP:8020,使用 Basic Auth(user / password)登录。

-

addr 默认为 127.0.0.1(仅本机)。需远程访问时设为 0.0.0.0。assetsDir 可省略,省略时使用内置前端。

+

addr 默认为 127.0.0.1(仅本机)。需远程访问时设为 0.0.0.0。staticDir 可省略,省略时使用内置前端。

参数​

-
参数必填默认值说明
webServer.addr否127.0.0.1监听地址;远程访问需 0.0.0.0
webServer.port是0监听端口;0 表示关闭
webServer.user否Basic Auth 用户名
webServer.password否Basic Auth 密码
webServer.assetsDir否静态资源目录;空则使用内置前端
-

命令行​

-

无配置文件时也可用参数开启:

-
./orbien-server --dashboard_port 8020 --dashboard_user admin --dashboard_pwd 123456
-
参数默认值说明
--dashboard_addr0.0.0.0监听地址
--dashboard_port0监听端口;0 关闭
--dashboard_useradmin用户名
--dashboard_pwdadmin密码
\ No newline at end of file +
参数必填默认值说明
dashboard.addr否127.0.0.1监听地址;远程访问需 0.0.0.0
dashboard.port是0监听端口;0 表示关闭
dashboard.user否Basic Auth 用户名
dashboard.password否Basic Auth 密码
dashboard.staticDir否静态资源目录;空则使用内置前端
\ No newline at end of file diff --git a/docs/features/proxy-bind.html b/docs/features/proxy-bind.html deleted file mode 100644 index baab8d1..0000000 --- a/docs/features/proxy-bind.html +++ /dev/null @@ -1,17 +0,0 @@ -代理绑定地址 | Orbien - - -

代理绑定地址

-

服务端有两类监听:

-
用途配置谁连
控制通道bindAddr + bindPort(以及 QUIC/KCP 端口)客户端 orbien 连上来建隧道
对外代理proxyBindAddr + remotePort / 虚拟主机端口公网访客 访问你穿透出去的服务
-

proxyBindAddr 决定访客流量绑在哪张网卡 / 哪个地址上,与客户端连哪无关。

-

典型场景:机器多网卡时,控制通道只听内网,代理只挂公网 IP;或反过来隔离管理面与业务面。

-

默认 0.0.0.0(所有网卡)。留空则回退为 bindAddr。

-

示例​

-

控制通道与代理都对所有网卡开放(默认行为):

-
# orbien-server.toml
bindAddr = "0.0.0.0"
bindPort = 9527
proxyBindAddr = "0.0.0.0"
-

仅在公网网卡上对外提供代理(示例 IP):

-
# orbien-server.toml
bindAddr = "10.0.0.2"
bindPort = 9527
proxyBindAddr = "203.0.113.10"
-

此时客户端连 10.0.0.2:9527;访客访问 203.0.113.10 上的 remotePort / vhostHTTPPort / vhostHTTPSPort。

-

参数​

-
参数必填默认值说明
proxyBindAddr否0.0.0.0对外代理监听地址;空则回退为 bindAddr
\ No newline at end of file diff --git a/docs/features/public-bind.html b/docs/features/public-bind.html new file mode 100644 index 0000000..1f099d2 --- /dev/null +++ b/docs/features/public-bind.html @@ -0,0 +1,17 @@ +对外监听地址 | Orbien + + +

对外监听地址

+

服务端有两类监听:

+
用途配置谁连
控制通道listen(以及 quicPort / kcpPort)客户端 orbien 连上来建隧道
对外流量proxyAddr + remotePort / httpGwPort / httpsGwPort公网访客 访问你穿透出去的服务
+

proxyAddr 决定访客流量绑在哪张网卡 / 哪个地址上,与客户端连哪无关。配置键名沿用 proxyAddr,语义是对外监听地址。

+

典型场景:机器多网卡时,控制通道只听内网,对外监听只挂公网 IP;或反过来隔离管理面与业务面。

+

默认 0.0.0.0(所有网卡)。留空则回退为 listen 的主机部分。

+

示例​

+

控制通道与对外监听都对所有网卡开放(默认行为):

+
# orbien-server.toml
listen = "0.0.0.0:9527"
proxyAddr = "0.0.0.0"
+

仅在公网网卡上对外提供服务(示例 IP):

+
# orbien-server.toml
listen = "10.0.0.2:9527"
proxyAddr = "203.0.113.10"
+

此时客户端连 10.0.0.2:9527;访客访问 203.0.113.10 上的 remotePort / httpGwPort / httpsGwPort。

+

参数​

+
参数必填默认值说明
proxyAddr否0.0.0.0对外监听地址;空则回退为 listen 的主机部分
\ No newline at end of file diff --git a/docs/features/real-ip.html b/docs/features/real-ip.html index 382f71d..3ec2d55 100644 --- a/docs/features/real-ip.html +++ b/docs/features/real-ip.html @@ -1,21 +1,19 @@ -获取真实 IP | Orbien +获取真实 IP | Orbien -

获取真实 IP

+

获取真实 IP

穿透后本地服务默认看到的是隧道地址。可用以下方式拿到访客真实 IP。

PROXY Protocol​

客户端连接本地服务时写入 PROXY Protocol 头。本地服务需支持解析(如 Nginx、HAProxy)。

-
# orbien.toml
serverAddr = "YOUR_SERVER_IP"
serverPort = 9527

[[proxies]]
name = "web"
type = "tcp"
localIP = "127.0.0.1"
localPort = 80
remotePort = 9000
transport.proxyProtocolVersion = "v2"
-

适用于 tcp / udp / http / https(透传)。https2http 不可用。

+
# orbien.toml
server = "YOUR_SERVER_IP:9527"

[[tunnels]]
name = "web"
protocol = "tcp"
service = "127.0.0.1:80"
remotePort = 9000
transport.proxyProtocolVersion = "v2"
+

适用于 tcp / udp / http / https(透传)。tls-term(TLS终止) 不可用。

参数必填默认值说明
transport.proxyProtocolVersion否v1 / v2;空表示关闭

X-Forwarded-For​

-

http 由服务端自动注入;https + https2http 由客户端插件自动注入,无需额外配置:

+

http 由服务端自动注入;https + tls-term 由客户端插件自动注入,无需额外配置:

  • X-Forwarded-For:访客 IP
  • X-Forwarded-Proto:http 或 https

应用从请求头读取即可。

-

服务端前置负载均衡​

-

若 orbien-server 前还有 CDN / 负载均衡,需在服务端开启 PROXY Protocol,接收上游传递的真实 IP:

-
# orbien-server.toml
bindAddr = "0.0.0.0"
bindPort = 9527

proxyProtocol = true
proxyProtocolTrustedCidrs = ["10.0.0.0/8", "192.168.0.0/16"]
proxyProtocolTimeoutSecs = 5
denySrcCidrs = ["1.2.3.4/32"]
-
参数必填默认值说明
proxyProtocol否false是否解析上游 PROXY Protocol
proxyProtocolTrustedCidrs否信任的上游 CIDR;空表示信任所有(有伪造风险)
proxyProtocolTimeoutSecs否5读取 PP 头超时(秒)
denySrcCidrs否拒绝的访客源 CIDR
\ No newline at end of file +

说明​

+

服务端不解析前置负载均衡的 PROXY Protocol。访客源地址以直连 proxyAddr 的 TCP peer 为准。

\ No newline at end of file diff --git a/docs/integrations/springboot.html b/docs/integrations/springboot.html index f28dea2..cb790ed 100644 --- a/docs/integrations/springboot.html +++ b/docs/integrations/springboot.html @@ -1,10 +1,18 @@ -Spring Boot 集成 | Orbien +Spring Boot 集成 | Orbien -

Spring Boot 集成

-

Orbien提供了一个轻量的Java客户端用于内嵌到Spring Boot应用中运行,仅支持TCP/HTTP/HTTPS协议代理,传输层只支持TCP传输协议, -目前不支持TCP多路复用,因此对于服务端开启多路复用模式时,该Starter将不可用。

-
<dependency>
<groupId>io.github.lxien</groupId>
<artifactId>orbien-spring-boot-starter</artifactId>
<version>2.1.0</version>
</dependency>
-
# application.yml
orbien:
enabled: true
server-addr: 127.0.0.1
token: YOUR_TOKEN # 可选
proxy:
type: http
custom-domains:
- web.domain.com

-

完整参考:

-
# application.yml
orbien:
enabled: true
server-addr: 127.0.0.1
server-port: 9527
token: YOUR_TOKEN
tcp-mux: false # 需与服务端一致(Java 客户端暂不支持多路复用)
pool-count: 1
heartbeat-interval-secs: 30
user: spring-boot-demo
# run-id: "" # 可选;为空则从 run-id-file 恢复,或自动生成
# run-id-file: "" # 可选;为空则使用用户目录下的默认路径
proxy:
name: web-demo
type: http
local-ip: 127.0.0.1
# local-port: 18080
custom-domains:
- web.domain.com
# subdomain: web # 可选,与 custom-domains 二选一

\ No newline at end of file +

Spring Boot 集成

+

Orbien 提供可内嵌到 Spring Boot 的 Java 客户端,当前能力:

+
    +
  • 隧道协议:仅 TCP、HTTP
  • +
  • 传输层:仅 TCP
  • +
  • 不支持 TCP 多路复用:orbien.tcp-mux 必须为 false,服务端也需 [transport].tcpMux = false(服务端默认开启多路复用,与 Java 客户端联调时需显式关闭)
  • +
+
<dependency>
<groupId>io.github.lxien</groupId>
<artifactId>orbien-spring-boot-starter</artifactId>
<version>3.0.0</version>
</dependency>
+

最小配置​

+

local-port / name 可省略:未填时分别使用 Spring Boot Web 端口与 spring.application.name(或 orbien-{protocol})。

+
# application.yml
orbien:
enabled: true
server-addr: 127.0.0.1
# token: YOUR_TOKEN # 可选
tunnel:
protocol: http
domains:
- web.domain.com
+

服务端需关闭多路复用,例如:

+
# orbien-server.toml
listen = "0.0.0.0:9527"
httpGwPort = 80

[transport]
tcpMux = false # 关闭 TCP 多路复用
+

完整参考​

+
# application.yml
orbien:
enabled: true
server-addr: 127.0.0.1
server-port: 9527
token: YOUR_TOKEN
tcp-mux: false # 必须为 false,且与服务端一致
pool-count: 1 # 登录时预申请的数据连接池大小
heartbeat-interval-secs: 30
user: spring-boot-demo # 可选,展示在 Dashboard
# session-id: "" # 可选;为空则从 session-id-file 恢复,或自动生成
# session-id-file: "" # 可选;为空则使用用户目录下的默认路径
tunnel:
name: web-demo # 可选
protocol: http # tcp | http
local-ip: 127.0.0.1
# local-port: 8080 # 可选;未填则使用 Spring Boot 监听端口
# remote-port: 9000 # 仅 protocol=tcp 时需要
domains: # protocol=http 时必填
- web.domain.com
\ No newline at end of file diff --git a/docs/intro.html b/docs/intro.html index ff5ba6a..7664134 100644 --- a/docs/intro.html +++ b/docs/intro.html @@ -1,16 +1,16 @@ -介绍 | Orbien +介绍 | Orbien -

介绍

+

介绍

Orbien 是一款基于 Rust 语言开发的高性能内网穿透工具,能够将位于内网的服务安全、高效地暴露到公网,供外部用户访问。它通过建立稳定的反向隧道, 突破防火墙的限制,适用于远程调试、内网服务公开、开发测试、物联网设备接入等多种场景。

功能特性​

    -
  • 多协议代理:支持 TCP、UDP、HTTP、HTTPS 协议
  • +
  • 多协议隧道:支持 TCP、UDP、HTTP、HTTPS 协议
  • 传输层 支持TCP、QUIC、KCP、WebSocket多种传输协议可选
  • -
  • 多路复用:支持TCP多路复用,一条物理连接承载多条逻辑工作流,降低开销和延迟
  • +
  • 多路复用:支持TCP多路复用,一条物理连接承载多条逻辑数据流,降低开销和延迟
  • HTTPS HTTPS 按 SNI 透传,域名证书在本地,可选客户端TLS终止
  • 安全 :支持 TLS 与 mTLS加密传输,保证数据安全性
  • -
  • 运维:提供轻量服务端Web界面和跨平台桌面客户端,方便运维监控
  • +
  • 运维:提供轻量服务端Web界面和跨平台原生桌面客户端,方便运维监控
  • 跨平台:支持 Linux、Windows、macOS、FreeBSD 多架构
\ No newline at end of file diff --git a/docs/license.html b/docs/license.html index 061ef19..6ca9cbf 100644 --- a/docs/license.html +++ b/docs/license.html @@ -1,6 +1,6 @@ -许可证 | Orbien +许可证 | Orbien -

许可证

+ \ No newline at end of file diff --git a/docs/performance.html b/docs/performance.html index d4ec68a..14ec826 100644 --- a/docs/performance.html +++ b/docs/performance.html @@ -1,6 +1,6 @@ -性能测试 | Orbien +性能测试 | Orbien -

性能测试

-

下面是在本地回环中对内存占用的性能测试结果,从下图可以发现,相较于frp,Orbien的内存占用比较低且稳定;后续完善一下其他维度的测试

+

性能测试

+

下面是在本地回环中对内存占用的性能测试结果,从下图可以发现,相较于frp,Orbien的内存占用比较低且稳定。

mem.png

\ No newline at end of file diff --git a/docs/proxies/http.html b/docs/proxies/http.html deleted file mode 100644 index b799312..0000000 --- a/docs/proxies/http.html +++ /dev/null @@ -1,14 +0,0 @@ -HTTP | Orbien - - -

HTTP

-

通过域名将内网 HTTP 服务暴露到公网。服务端需配置虚拟主机,见 虚拟主机。

-

示例:穿透 Web 服务​

-

服务端:

-
# orbien-server.toml
bindAddr = "0.0.0.0"
bindPort = 9527
vhostHTTPPort = 80
-

客户端:

-
# orbien.toml
serverAddr = "YOUR_SERVER_IP"
serverPort = 9527

[[proxies]]
name = "web"
type = "http"
localIP = "127.0.0.1"
localPort = 8080
customDomains = ["web.example.com"]
-

将 web.example.com 解析到服务端 IP 后访问:

-
curl http://web.example.com
-

参数​

-
参数必填默认值说明
name是代理名称,唯一
type是固定为 http
localIP否127.0.0.1本地服务地址
localPort是本地服务端口
customDomains条件自定义域名,可多个;与 subdomain 至少填一项
subdomain条件子域名前缀,与服务端 subDomainHost 拼接;与 customDomains 至少填一项
locations否路径前缀,如 /api;空表示全部
hostHeaderRewrite否改写转发到本地服务的 Host;空表示不改
transport.bandwidthLimit否带宽限制,如 1MB、100KB;空表示不限制
transport.bandwidthLimitMode否client限速端:client / server
transport.proxyProtocolVersion否PROXY Protocol:v1 / v2
\ No newline at end of file diff --git a/docs/proxies/https.html b/docs/proxies/https.html deleted file mode 100644 index 9f4dc76..0000000 --- a/docs/proxies/https.html +++ /dev/null @@ -1,24 +0,0 @@ -HTTPS | Orbien - - -

HTTPS

-

通过域名将内网服务暴露到公网。服务端需配置虚拟主机,见 虚拟主机。

-

两种模式:

-
    -
  • 透传:按 SNI 转发,证书在内网 HTTPS 服务上
  • -
  • TLS 终止:客户端插件 https2http 终止 TLS,再转发到本地 HTTP
  • -
-

示例:透传​

-

服务端:

-
# orbien-server.toml
bindAddr = "0.0.0.0"
bindPort = 9527
vhostHTTPSPort = 443
-

客户端:

-
# orbien.toml
serverAddr = "YOUR_SERVER_IP"
serverPort = 9527

[[proxies]]
name = "web-ssl"
type = "https"
localIP = "127.0.0.1"
localPort = 443
customDomains = ["web.example.com"]
-

将 web.example.com 解析到服务端 IP 后访问:

-
curl https://web.example.com
-

示例:TLS 终止​

-

客户端终止 TLS,后端只需提供 HTTP:

-
# orbien.toml
serverAddr = "YOUR_SERVER_IP"
serverPort = 9527

[[proxies]]
name = "web-ssl"
type = "https"
customDomains = ["web.example.com"]

[proxies.plugin]
type = "https2http"
localAddr = "127.0.0.1:80"
crtPath = "/path/to/cert.pem"
keyPath = "/path/to/key.pem"
hostHeaderRewrite = "127.0.0.1"

[proxies.plugin.requestHeaders.set]
X-From = "orbien"
-

crtPath / keyPath 可省略,省略时使用临时自签证书(浏览器会提示不受信任)。启用插件后不再使用 localIP / localPort -,且不可配置 PROXY Protocol。

-

参数​

-
参数必填默认值说明
name是代理名称,唯一
type是固定为 https
localIP否127.0.0.1本地服务地址(透传)
localPort条件本地服务端口(透传必填)
customDomains条件自定义域名,可多个;与 subdomain 至少填一项
subdomain条件子域名前缀,与服务端 subDomainHost 拼接;与 customDomains 至少填一项
plugin.type否https2http:客户端终止 TLS
plugin.localAddr条件https2http 时必填,如 127.0.0.1:80
plugin.crtPath否证书路径;空则临时自签
plugin.keyPath否私钥路径;空则临时自签
plugin.hostHeaderRewrite否改写转发到本地服务的 Host;空表示不改
plugin.requestHeaders.set否向后端追加请求头,键值对
transport.bandwidthLimit否带宽限制,如 1MB、100KB;空表示不限制
transport.bandwidthLimitMode否client限速端:client / server
transport.proxyProtocolVersion否PROXY Protocol:v1 / v2(https2http 不可用)
\ No newline at end of file diff --git a/docs/proxies/tcp.html b/docs/proxies/tcp.html deleted file mode 100644 index b2faf3c..0000000 --- a/docs/proxies/tcp.html +++ /dev/null @@ -1,12 +0,0 @@ -TCP | Orbien - - -

TCP

-

将内网 TCP 服务映射到服务端公网端口。

-

示例:穿透 SSH​

-
# orbien.toml
serverAddr = "YOUR_SERVER_IP"
serverPort = 9527

[[proxies]]
name = "ssh"
type = "tcp"
localIP = "127.0.0.1"
localPort = 22
remotePort = 9000
-
./orbien -c orbien.toml
-

外网访问:

-
ssh -p 9000 user@YOUR_SERVER_IP
-

参数​

-
参数必填默认值说明
name是代理名称,唯一
type是固定为 tcp
localIP否127.0.0.1本地服务地址
localPort是本地服务端口
remotePort是服务端对外监听端口
transport.bandwidthLimit否带宽限制,如 1MB、100KB;空表示不限制
transport.bandwidthLimitMode否client限速端:client / server
transport.proxyProtocolVersion否PROXY Protocol:v1 / v2
\ No newline at end of file diff --git a/docs/proxies/udp.html b/docs/proxies/udp.html deleted file mode 100644 index 998e012..0000000 --- a/docs/proxies/udp.html +++ /dev/null @@ -1,15 +0,0 @@ -UDP | Orbien - - -

UDP

-

将内网 UDP 服务映射到服务端公网端口。

-

两端 udpPacketSize 需一致(默认 1500)。

-

示例:穿透 DNS​

-

服务端:

-
# orbien-server.toml
bindAddr = "0.0.0.0"
bindPort = 9527
udpPacketSize = 1500
-

客户端:

-
# orbien.toml
serverAddr = "YOUR_SERVER_IP"
serverPort = 9527
udpPacketSize = 1500

[[proxies]]
name = "dns"
type = "udp"
localIP = "127.0.0.1"
localPort = 53
remotePort = 9000
-

外网访问:

-
dig @YOUR_SERVER_IP -p 9000 example.com
-

参数​

-
参数必填默认值说明
udpPacketSize否1500UDP 最大报文长度,需与服务端一致
name是代理名称,唯一
type是固定为 udp
localIP否127.0.0.1本地服务地址
localPort是本地服务端口
remotePort是服务端对外监听端口
transport.bandwidthLimit否带宽限制,如 1MB、100KB;空表示不限制
transport.bandwidthLimitMode否client限速端:client / server
transport.proxyProtocolVersion否PROXY Protocol:v1 / v2
\ No newline at end of file diff --git a/docs/proxies/vhost.html b/docs/proxies/vhost.html deleted file mode 100644 index de2c37b..0000000 --- a/docs/proxies/vhost.html +++ /dev/null @@ -1,20 +0,0 @@ -虚拟主机 | Orbien - - -

虚拟主机

-

HTTP / HTTPS 按域名路由。服务端开启 vhostHTTPPort / vhostHTTPSPort 后,客户端用 customDomains 或 subdomain 绑定域名。

-

subdomain 需配合服务端 subDomainHost:最终域名为 {subdomain}.{subDomainHost}。

-

示例:自定义域名​

-

服务端:

-
# orbien-server.toml
vhostHTTPPort = 80
vhostHTTPSPort = 443
-

客户端:

-
# orbien.toml
[[proxies]]
name = "web"
type = "http"
localIP = "127.0.0.1"
localPort = 8080
customDomains = ["web.example.com"]
-

将 web.example.com 解析到服务端 IP 后访问。

-

示例:子域名​

-

服务端:

-
# orbien-server.toml
vhostHTTPPort = 80
subDomainHost = "example.com"
-

客户端:

-
# orbien.toml
[[proxies]]
name = "web"
type = "http"
localIP = "127.0.0.1"
localPort = 8080
subdomain = "blog"
-

访问域名为 blog.example.com。

-

参数​

-
参数必填默认值说明
vhostHTTPPort否0HTTP 虚拟主机端口;0 表示关闭
vhostHTTPSPort否0HTTPS 虚拟主机端口;0 表示关闭
subDomainHost否子域名根域;客户端填 subdomain 时必填,拼接为 前缀.根域
\ No newline at end of file diff --git a/docs/quickstart.html b/docs/quickstart.html index 83c6ed3..f08c984 100644 --- a/docs/quickstart.html +++ b/docs/quickstart.html @@ -1,12 +1,12 @@ -快速开始 | Orbien +快速开始 | Orbien -

快速开始

+

快速开始

下载对应平台的二进制压缩包解压

服务端​

-
# orbien-server.toml
bindAddr = "0.0.0.0"
bindPort = 9527
+
# orbien-server.toml
listen = "0.0.0.0:9527"
./orbien-server -c orbien-server.toml

客户端​

-

如果觉得命令行 CLI 操作麻烦,可以使用 Orbien Desktop 桌面端(不过内存占用比较大,内存受限时不建议使用)

-
# orbien.toml
serverAddr = "127.0.0.1"
serverPort = 9527

[[proxies]]
name = "mysql"
type = "tcp"
localIP = "127.0.0.1"
localPort = 3306
remotePort = 6050
+

如果觉得命令行 CLI 操作麻烦,可以使用 Orbien Desktop 桌面客户端。

+
# orbien.toml
server = "127.0.0.1:9527"

[[tunnels]]
name = "mysql"
protocol = "tcp"
service = "127.0.0.1:3306"
remotePort = 9000
./orbien -c orbien.toml
\ No newline at end of file diff --git a/docs/roadmap.html b/docs/roadmap.html index a067a3c..6cb63a6 100644 --- a/docs/roadmap.html +++ b/docs/roadmap.html @@ -1,7 +1,7 @@ -路线图 | Orbien +路线图 | Orbien -

路线图

+ \ No newline at end of file diff --git a/docs/transport/connect-pool.html b/docs/transport/connect-pool.html index c169cb6..ff63fed 100644 --- a/docs/transport/connect-pool.html +++ b/docs/transport/connect-pool.html @@ -1,15 +1,15 @@ -连接池 | Orbien +连接池 | Orbien -

连接池

-

登录时预创建工作连接/流,降低新建连接延迟。客户端 poolCount 受服务端 maxPoolCount 限制。

+

连接池

+

登录时预创建数据连接/流,降低新建连接延迟。客户端 poolCount 受服务端 maxConnPool 限制。

示例​

服务端:

-
# orbien-server.toml
[transport]
maxPoolCount = 5
+
# orbien-server.toml
[transport]
maxConnPool = 5

客户端:

# orbien.toml
[transport]
poolCount = 3
-

实际生效数量为 min(poolCount, maxPoolCount)。

+

实际生效数量为 min(poolCount, maxConnPool)。

客户端参数​

-
参数必填默认值说明
transport.poolCount否1登录时预创建的工作连接/流数量
+
参数必填默认值说明
transport.poolCount否1登录时预创建的数据连接/流数量

服务端参数​

-
参数必填默认值说明
transport.maxPoolCount否5限制客户端 poolCount 上限;配置为 0 时会自动变为 5
\ No newline at end of file +
参数必填默认值说明
transport.maxConnPool否5限制客户端 poolCount 上限;配置为 0 时会自动变为 5
\ No newline at end of file diff --git a/docs/transport/protocol/kcp.html b/docs/transport/protocol/kcp.html index e810ed3..4288086 100644 --- a/docs/transport/protocol/kcp.html +++ b/docs/transport/protocol/kcp.html @@ -1,15 +1,15 @@ -KCP | Orbien +KCP | Orbien -

KCP

+

KCP

基于 UDP 的可靠传输,弱网场景更稳。TLS 配置见 TLS。

示例​

服务端:

-
# orbien-server.toml
bindAddr = "0.0.0.0"
bindPort = 9527
kcpBindPort = 9529

[transport]
tcpMux = true
+
# orbien-server.toml
listen = "0.0.0.0:9527"
kcpPort = 9529

[transport]
tcpMux = true

客户端:

-
# orbien.toml
serverAddr = "YOUR_SERVER_IP"
serverPort = 9529

[transport]
protocol = "kcp"
tcpMux = true
heartbeatInterval = -1
-

serverPort 需指向服务端 kcpBindPort,且不可与 quicBindPort 相同。

+
# orbien.toml
server = "YOUR_SERVER_IP:9529"

[transport]
protocol = "kcp"
tcpMux = true
heartbeatInterval = -1
+

server 需指向服务端 kcpPort,且不可与 quicPort 相同。

客户端参数​

-
参数必填默认值说明
transport.protocol是tcp固定为 kcp
serverPort是填服务端 kcpBindPort
transport.tcpMux否trueTCP 多路复用;需与服务端一致
transport.heartbeatInterval否-1应用心跳间隔(秒);-1 关闭。关闭 tcpMux 时自动变为 30
+
参数必填默认值说明
transport.protocol是tcp固定为 kcp
server是填服务端地址,端口为 kcpPort
transport.tcpMux否trueTCP 多路复用;需与服务端一致
transport.heartbeatInterval否-1应用心跳间隔(秒);-1 关闭。关闭 tcpMux 时自动变为 30
transport.heartbeatTimeout否-1心跳超时(秒);未收到 Pong 则断开。关闭 tcpMux 时自动变为 90;详见 TCP 多路复用

服务端参数​

-
参数必填默认值说明
kcpBindPort是0KCP 监听端口(UDP);0 表示关闭;不可与 quicBindPort 相同
transport.tcpMux否trueTCP 多路复用;需与客户端一致
\ No newline at end of file +
参数必填默认值说明
kcpPort是0KCP 监听端口(UDP);0 表示关闭;不可与 quicPort 相同
transport.tcpMux否trueTCP 多路复用;需与客户端一致
\ No newline at end of file diff --git a/docs/transport/protocol/quic.html b/docs/transport/protocol/quic.html index 1f18740..baefb06 100644 --- a/docs/transport/protocol/quic.html +++ b/docs/transport/protocol/quic.html @@ -1,16 +1,16 @@ -QUIC | Orbien +QUIC | Orbien -

QUIC

+

QUIC

基于 UDP。自带加密与多路复用,tcpMux / transport.tls.enable 无效。证书校验仍可通过 transport.tls 配置,详见 TLS。

示例​

服务端:

-
# orbien-server.toml
bindAddr = "0.0.0.0"
bindPort = 9527
quicBindPort = 9528

[transport.quic]
keepalivePeriod = 10
maxIdleTimeout = 30
maxIncomingStreams = 100000
+
# orbien-server.toml
listen = "0.0.0.0:9527"
quicPort = 9528

[transport.quic]
keepalivePeriod = 10
maxIdleTimeout = 30
maxIncomingStreams = 100000

客户端:

-
# orbien.toml
serverAddr = "YOUR_SERVER_IP"
serverPort = 9528

[transport]
protocol = "quic"

[transport.quic]
keepalivePeriod = 10
maxIdleTimeout = 30
-

serverPort 需指向服务端 quicBindPort。

+
# orbien.toml
server = "YOUR_SERVER_IP:9528"

[transport]
protocol = "quic"

[transport.quic]
keepalivePeriod = 10
maxIdleTimeout = 30
maxIncomingStreams = 100000
+

server 需指向服务端 quicPort。

客户端参数​

-
参数必填默认值说明
transport.protocol是tcp固定为 quic
serverPort是填服务端 quicBindPort
transport.quic.keepalivePeriod否10QUIC 保活周期(秒)
transport.quic.maxIdleTimeout否30QUIC 空闲超时(秒)
+
参数必填默认值说明
transport.protocol是tcp固定为 quic
server是填服务端地址,端口为 quicPort
transport.quic.keepalivePeriod否10QUIC 保活周期(秒)
transport.quic.maxIdleTimeout否30QUIC 空闲超时(秒)
transport.quic.maxIncomingStreams否100000QUIC 最大并发双向流(客户端 dial 也会设置)

服务端参数​

-
参数必填默认值说明
quicBindPort是0QUIC 监听端口(UDP);0 表示关闭;不可与 kcpBindPort 相同
transport.quic.keepalivePeriod否10QUIC 保活周期(秒)
transport.quic.maxIdleTimeout否30QUIC 空闲超时(秒)
transport.quic.maxIncomingStreams否100000QUIC 最大入站流
\ No newline at end of file +
参数必填默认值说明
quicPort是0QUIC 监听端口(UDP);0 表示关闭;不可与 kcpPort 相同
transport.quic.keepalivePeriod否10QUIC 保活周期(秒)
transport.quic.maxIdleTimeout否30QUIC 空闲超时(秒)
transport.quic.maxIncomingStreams否100000QUIC 最大入站流
\ No newline at end of file diff --git a/docs/transport/protocol/tcp.html b/docs/transport/protocol/tcp.html index 33a7aa0..7e608cc 100644 --- a/docs/transport/protocol/tcp.html +++ b/docs/transport/protocol/tcp.html @@ -1,14 +1,14 @@ -TCP | Orbien +TCP | Orbien -

TCP

-

默认传输协议。客户端通过服务端 bindPort 建立控制通道。TLS 配置见 TLS。

+

TCP

+

默认传输协议。客户端通过服务端 listen 建立控制通道。TLS 配置见 TLS。

示例​

服务端:

-
# orbien-server.toml
bindAddr = "0.0.0.0"
bindPort = 9527

[transport]
tcpMux = true
+
# orbien-server.toml
listen = "0.0.0.0:9527"

[transport]
tcpMux = true

客户端:

-
# orbien.toml
serverAddr = "YOUR_SERVER_IP"
serverPort = 9527

[transport]
protocol = "tcp"
tcpMux = true
heartbeatInterval = -1
+
# orbien.toml
server = "YOUR_SERVER_IP:9527"

[transport]
protocol = "tcp"
tcpMux = true
heartbeatInterval = -1

客户端参数​

-
参数必填默认值说明
transport.protocol否tcp固定为 tcp
transport.tcpMux否trueTCP 多路复用;需与服务端一致
transport.heartbeatInterval否-1应用心跳间隔(秒);-1 关闭。关闭 tcpMux 时自动变为 30
+
参数必填默认值说明
transport.protocol否tcp固定为 tcp
transport.tcpMux否trueTCP 多路复用;需与服务端一致
transport.heartbeatInterval否-1应用心跳间隔(秒);-1 关闭。关闭 tcpMux 时自动变为 30
transport.heartbeatTimeout否-1心跳超时(秒);未收到 Pong 则断开。关闭 tcpMux 时自动变为 90;详见 TCP 多路复用

服务端参数​

-
参数必填默认值说明
bindPort是9527TCP 监听端口
transport.tcpMux否trueTCP 多路复用;需与客户端一致
\ No newline at end of file +
参数必填默认值说明
listen是0.0.0.0:9527TCP 监听地址
transport.tcpMux否trueTCP 多路复用;需与客户端一致
\ No newline at end of file diff --git a/docs/transport/protocol/websocket.html b/docs/transport/protocol/websocket.html index 4956cfb..d80f824 100644 --- a/docs/transport/protocol/websocket.html +++ b/docs/transport/protocol/websocket.html @@ -1,14 +1,14 @@ -WebSocket | Orbien +WebSocket | Orbien -

WebSocket

-

与 TCP 共用服务端 bindPort。适用于需穿透 HTTP 代理、或仅开放 WebSocket 的网络环境。TLS 配置见 TLS。

+

WebSocket

+

与 TCP 共用服务端 listen。适用于需穿透 HTTP 代理、或仅开放 WebSocket 的网络环境。TLS 配置见 TLS。

示例​

服务端:

-
# orbien-server.toml
bindAddr = "0.0.0.0"
bindPort = 9527

[transport]
tcpMux = true
+
# orbien-server.toml
listen = "0.0.0.0:9527"

[transport]
tcpMux = true

客户端:

-
# orbien.toml
serverAddr = "YOUR_SERVER_IP"
serverPort = 9527

[transport]
protocol = "websocket"
tcpMux = true
heartbeatInterval = -1
+
# orbien.toml
server = "YOUR_SERVER_IP:9527"

[transport]
protocol = "websocket"
tcpMux = true
heartbeatInterval = -1

客户端参数​

-
参数必填默认值说明
transport.protocol是tcp固定为 websocket(或 ws)
transport.tcpMux否trueTCP 多路复用;需与服务端一致
transport.heartbeatInterval否-1应用心跳间隔(秒);-1 关闭。关闭 tcpMux 时自动变为 30
+
参数必填默认值说明
transport.protocol是tcp固定为 websocket(或 ws)
transport.tcpMux否trueTCP 多路复用;需与服务端一致
transport.heartbeatInterval否-1应用心跳间隔(秒);-1 关闭。关闭 tcpMux 时自动变为 30
transport.heartbeatTimeout否-1心跳超时(秒);未收到 Pong 则断开。关闭 tcpMux 时自动变为 90;详见 TCP 多路复用

服务端参数​

-
参数必填默认值说明
bindPort是9527与 TCP 共用监听端口
transport.tcpMux否trueTCP 多路复用;需与客户端一致
\ No newline at end of file +
参数必填默认值说明
listen是0.0.0.0:9527与 TCP 共用监听地址
transport.tcpMux否trueTCP 多路复用;需与客户端一致
\ No newline at end of file diff --git a/docs/transport/tcp-mux.html b/docs/transport/tcp-mux.html index 80aab78..0c0a6f4 100644 --- a/docs/transport/tcp-mux.html +++ b/docs/transport/tcp-mux.html @@ -1,24 +1,23 @@ -TCP 多路复用 | Orbien +TCP 多路复用 | Orbien -

TCP 多路复用

+

TCP 多路复用

一条物理连接承载多路逻辑流(Yamux),降低建连开销。适用于 tcp / websocket / kcp;QUIC 自带多路复用,此项无效。

客户端与服务端 tcpMux 必须一致,否则无法握手。

示例:开启​

-

TCP多路复用默认是开启状态。

+

TCP 多路复用默认开启。开启后应用层心跳默认可关闭(heartbeatInterval / heartbeatTimeout = -1),改由多路复用保活检测死连接。

服务端:

-
# orbien-server.toml
[transport]
tcpMux = true
+
# orbien-server.toml
[transport]
tcpMux = true
muxKeepaliveSecs = 30

客户端:

-
# orbien.toml
[transport]
tcpMux = true
-

开启后应用层心跳默认可关闭(heartbeatInterval = -1)。

+
# orbien.toml
[transport]
tcpMux = true
muxKeepaliveSecs = 30

示例:关闭​

-

关闭后每条控制/工作流使用独立连接,需开启应用层心跳。

+

关闭后每条控制/数据流使用独立连接,需开启应用层心跳。

服务端:

-
# orbien-server.toml
[transport]
tcpMux = false
+
# orbien-server.toml
[transport]
tcpMux = false
heartbeatTimeout = 90

客户端:

-
# orbien.toml
[transport]
tcpMux = false
heartbeatInterval = 30
-

客户端若省略 heartbeatInterval,关闭 tcpMux 时会自动设为 30。

+
# orbien.toml
[transport]
tcpMux = false
heartbeatInterval = 30
heartbeatTimeout = 90
+

客户端若省略心跳相关项,关闭 tcpMux 时会自动设为 heartbeatInterval=30、heartbeatTimeout=90。

客户端参数​

-
参数必填默认值说明
transport.tcpMux否true是否启用多路复用;需与服务端一致
transport.heartbeatInterval否-1应用心跳间隔(秒);-1 关闭。关闭 tcpMux 时自动变为 30
+
参数必填默认值说明
transport.tcpMux否true是否启用多路复用;需与服务端一致
transport.muxKeepaliveSecs否30多路复用保活间隔(秒)。Rust yamux 无原生 KeepAlive,实现上在 tcpMux=true 且未开应用心跳时,用该间隔发控制面 Ping(等效保活)
transport.heartbeatInterval否-1(mux 开)/ 30(mux 关)应用心跳间隔(秒);-1 关闭
transport.heartbeatTimeout否-1(mux 开)/ 90(mux 关)超过该秒数未收到 Pong 则断开;-1 关闭

服务端参数​

-
参数必填默认值说明
transport.tcpMux否true是否启用多路复用;需与客户端一致
\ No newline at end of file +
参数必填默认值说明
transport.tcpMux否true是否启用多路复用;需与客户端一致
transport.muxKeepaliveSecs否30多路复用保活间隔(秒)。Rust yamux 无原生 KeepAlive;在 tcpMux=true 且未开应用心跳超时时,用 间隔×3 作为「未收到客户端 Ping 则踢掉」的超时(与客户端对称)
transport.heartbeatTimeout否-1(mux 开)/ 90(mux 关)超过该秒数未收到客户端 Ping 则踢掉控制连接;-1 表示关闭应用心跳超时(mux 开启时改走上方保活逻辑)
\ No newline at end of file diff --git a/docs/transport/tls.html b/docs/transport/tls.html index 4764449..c4af46b 100644 --- a/docs/transport/tls.html +++ b/docs/transport/tls.html @@ -1,7 +1,7 @@ -TLS | Orbien +TLS | Orbien -

TLS

+

TLS

控制通道 TLS。适用于 tcp / websocket / kcp(QUIC 自身已加密,但证书路径字段仍可用于 QUIC 身份校验)。

三种方式:

    @@ -9,25 +9,26 @@
  1. 校验服务端证书:客户端信任 CA,校验服务端身份
  2. 双向认证(mTLS):双方互验证书
+

控制通道使用标准 TLS ClientHello(首字节 0x16)。HTTP / HTTPS 域名入口必须使用独立端口,见 域名。

方式一:仅加密​

不填 trustedCaFile,客户端跳过证书校验;服务端证书可省略(临时自签)。

服务端:

# orbien-server.toml
[transport.tls]
force = false

客户端:

-
# orbien.toml
[transport.tls]
enable = true
disableCustomTLSFirstByte = true
+
# orbien.toml
[transport.tls]
enable = true

方式二:校验服务端证书​

服务端提供证书;客户端用 CA 校验,并设置 SNI。

服务端:

# orbien-server.toml
[transport.tls]
force = true
certFile = "/path/to/server.crt"
keyFile = "/path/to/server.key"

客户端:

-
# orbien.toml
[transport.tls]
enable = true
trustedCaFile = "/path/to/ca.crt"
serverName = "orbien.example.com"
disableCustomTLSFirstByte = true
+
# orbien.toml
[transport.tls]
enable = true
trustedCaFile = "/path/to/ca.crt"
serverName = "orbien.example.com"

方式三:双向认证(mTLS)​

双方均校验对方证书。服务端配置 trustedCaFile 时会自动 force = true。

服务端:

# orbien-server.toml
[transport.tls]
force = true
certFile = "/path/to/server.crt"
keyFile = "/path/to/server.key"
trustedCaFile = "/path/to/ca.crt"

客户端:

-
# orbien.toml
[transport.tls]
enable = true
certFile = "/path/to/client.crt"
keyFile = "/path/to/client.key"
trustedCaFile = "/path/to/ca.crt"
serverName = "orbien.example.com"
disableCustomTLSFirstByte = true
+
# orbien.toml
[transport.tls]
enable = true
certFile = "/path/to/client.crt"
keyFile = "/path/to/client.key"
trustedCaFile = "/path/to/ca.crt"
serverName = "orbien.example.com"

客户端参数​

-
参数必填默认值说明
transport.tls.enable否true启用 TLS;QUIC 本身已加密,此项无效
transport.tls.certFile否客户端证书(mTLS)
transport.tls.keyFile否客户端私钥(mTLS)
transport.tls.trustedCaFile否校验服务端证书;空则跳过校验(仅加密)
transport.tls.serverName否TLS SNI;空则使用 serverAddr
transport.tls.disableCustomTLSFirstByte否true禁用自定义 TLS 首字节;若 HTTPS 虚拟主机与 bindPort 共用,需设为 false
+
参数必填默认值说明
transport.tls.enable否true启用 TLS;QUIC 本身已加密,此项无效
transport.tls.certFile否客户端证书(mTLS)
transport.tls.keyFile否客户端私钥(mTLS)
transport.tls.trustedCaFile否校验服务端证书;空则跳过校验(仅加密)
transport.tls.serverName否TLS SNI;空则使用 server 的主机部分

服务端参数​

参数必填默认值说明
transport.tls.force否false强制 TLS,拒绝非 TLS 控制连接
transport.tls.certFile否服务端证书;空则临时自签
transport.tls.keyFile否服务端私钥;空则临时自签
transport.tls.trustedCaFile否校验客户端证书(mTLS);非空时自动 force = true
\ No newline at end of file diff --git a/docs/tunnels/domains.html b/docs/tunnels/domains.html new file mode 100644 index 0000000..22bbc19 --- /dev/null +++ b/docs/tunnels/domains.html @@ -0,0 +1,26 @@ +域名 | Orbien + + +

域名

+

按域名将访客流量转发到客户端隧道。服务端开启 httpGwPort / httpsGwPort 后,客户端用 domains 绑定域名。

+

domains 对 http/https 必填且非空。规则:

+
    +
  • 不含 . 的短名字(如 blog)当作子域前缀,展开为 {前缀}.{rootDomain}(需配置服务端 rootDomain)
  • +
  • 带 . 的完整域名(如 web.example.com):若属于 rootDomain 或其子域,按原样使用;否则当作外部自定义域名,同样按原样使用
  • +
  • 不支持通配符
  • +
+

端口隔离: httpGwPort / httpsGwPort 不得与控制通道 listen 在重叠地址上共用(0.0.0.0 与任意地址视为重叠)。两者也不得彼此相同。控制面与访客流量使用独立监听,不在单端口上做协议分流。

+

示例:自定义域名​

+

服务端:

+
# orbien-server.toml
httpGwPort = 80
httpsGwPort = 443
+

客户端:

+
# orbien.toml
[[tunnels]]
name = "web"
protocol = "http"
service = "127.0.0.1:8080"
domains = ["web.example.com"]
+

将 web.example.com 解析到服务端 IP 后访问。

+

示例:子域名前缀​

+

服务端:

+
# orbien-server.toml
httpGwPort = 80
rootDomain = "example.com"
+

客户端:

+
# orbien.toml
[[tunnels]]
name = "web"
protocol = "http"
service = "127.0.0.1:8080"
domains = ["blog"]
+

访问域名为 blog.example.com。也可同时写前缀和完整域名,例如 domains = ["web", "app.example.com"]。

+

参数​

+
参数必填默认值说明
httpGwPort否0HTTP 网关端口;0 表示关闭;不得与 listen 冲突
httpsGwPort否0HTTPS 网关端口;0 表示关闭;不得与 listen 冲突
rootDomain否根域;客户端 domains 中无 . 的前缀会拼成 前缀.根域
\ No newline at end of file diff --git a/docs/tunnels/http.html b/docs/tunnels/http.html new file mode 100644 index 0000000..3d862b7 --- /dev/null +++ b/docs/tunnels/http.html @@ -0,0 +1,25 @@ +HTTP | Orbien + + +

HTTP

+

通过域名将内网 HTTP 服务暴露到公网。服务端需开启域名入口,见 域名。

+

domains 必填且非空:可写完整域名(如 web.example.com),或无 . 的短前缀(如 web,需服务端配置 rootDomain),不支持通配符。

+

示例:穿透 Web 服务​

+

服务端:

+
# orbien-server.toml
listen = "0.0.0.0:9527"
httpGwPort = 80
+

客户端:

+
# orbien.toml
server = "YOUR_SERVER_IP:9527"

[[tunnels]]
name = "web"
protocol = "http"
service = "127.0.0.1:8080"
domains = ["web.example.com"]
+

将 web.example.com 解析到服务端 IP 后访问:

+
curl http://web.example.com
+

示例:Basic 鉴权​

+
[[tunnels]]
name = "web-auth"
protocol = "http"
service = "127.0.0.1:8080"
domains = ["web.example.com"]
basicAuthUser = "alice"
basicAuthPassword = "secret"
+

访问时需带 Basic 凭证,失败返回 401:

+
curl -u alice:secret http://web.example.com
+

示例:按 HTTP 用户分流​

+

同域名下可为不同 Basic 用户挂到不同本地服务;未匹配到专用路由时,会落到未设置 routeByHTTPUser 的隧道(若有)。

+
[[tunnels]]
name = "web-alice"
protocol = "http"
service = "127.0.0.1:8081"
domains = ["web.example.com"]
routeByHTTPUser = "alice"
basicAuthUser = "alice"
basicAuthPassword = "secret"

[[tunnels]]
name = "web-default"
protocol = "http"
service = "127.0.0.1:8080"
domains = ["web.example.com"]
+

示例:改写 Host​

+

转发到本地服务时,把请求的 Host 改成指定值:

+
[[tunnels]]
name = "web"
protocol = "http"
service = "127.0.0.1:8080"
domains = ["web.example.com"]
hostHeaderRewrite = "127.0.0.1"
+

参数​

+
参数必填默认值说明
name是隧道名称,唯一
protocol是固定为 http
service是本地服务地址,如 127.0.0.1:8080
domains是域名列表,至少一个;完整域名或无 . 的前缀(前缀需服务端 rootDomain)
locations否路径前缀,如 /api;空表示全部
basicAuthUser否HTTP Basic 鉴权用户名;与 basicAuthPassword 都为空则不鉴权
basicAuthPassword否HTTP Basic 鉴权密码
routeByHTTPUser否按请求 Basic 用户名选路由;空表示匹配任意用户(精确用户优先)
hostHeaderRewrite否改写转发到本地服务的 Host;空表示不改
transport.bandwidth否0带宽上限(Mbps);0 表示不限制
transport.bandwidthLimitSide否client限速端:client / server
transport.proxyProtocolVersion否PROXY Protocol:v1 / v2
\ No newline at end of file diff --git a/docs/tunnels/https.html b/docs/tunnels/https.html new file mode 100644 index 0000000..9abafe8 --- /dev/null +++ b/docs/tunnels/https.html @@ -0,0 +1,30 @@ +HTTPS | Orbien + + +

HTTPS

+

通过域名将内网服务暴露到公网。服务端需开启域名入口,见 域名。

+

domains 必填且非空:可写完整域名(如 web.example.com),或无 . 的短前缀(如 web,需服务端 rootDomain)。不支持通配符。

+

两种模式:

+
    +
  • 透传:按 SNI 转发,证书在内网 HTTPS 服务上
  • +
  • TLS 终止:客户端插件 tls-term 终止 TLS,再转发到本地 HTTP服务
  • +
+

示例:透传​

+

服务端:

+
# orbien-server.toml
listen = "0.0.0.0:9527"
httpsGwPort = 443
+

客户端:

+
# orbien.toml
server = "YOUR_SERVER_IP:9527"

[[tunnels]]
name = "web-ssl"
protocol = "https"
service = "127.0.0.1:443"
domains = ["web.example.com"]
+

将 web.example.com 解析到服务端 IP 后访问:

+
curl https://web.example.com
+

示例:TLS 终止​

+

客户端终止 TLS,后端只需提供 HTTP:

+
# orbien.toml
server = "YOUR_SERVER_IP:9527"

[[tunnels]]
name = "https-term"
protocol = "https"
domains = ["web.example.com"]

[tunnels.plugin]
type = "tls-term"
service = "127.0.0.1:80"
certFile = "/path/to/cert.pem"
keyFile = "/path/to/key.pem"
+

certFile / keyFile 可省略,省略时使用临时自签证书(浏览器会提示不受信任)。启用插件后使用 plugin.service 指向本地 HTTP,不再使用隧道级 service,且不可配置 PROXY Protocol。

+

示例:TLS 终止时改写 Host​

+

在 tls-term 下,转发到本地 HTTP 前改写 Host:

+
[[tunnels]]
name = "https-term"
protocol = "https"
domains = ["web.example.com"]

[tunnels.plugin]
type = "tls-term"
service = "127.0.0.1:80"
certFile = "/path/to/cert.pem"
keyFile = "/path/to/key.pem"
hostHeaderRewrite = "127.0.0.1"
+

示例:TLS 终止时追加请求头​

+

在 tls-term 下,向本地 HTTP 追加自定义请求头:

+
[[tunnels]]
name = "https-term"
protocol = "https"
domains = ["web.example.com"]

[tunnels.plugin]
type = "tls-term"
service = "127.0.0.1:80"
certFile = "/path/to/cert.pem"
keyFile = "/path/to/key.pem"

[tunnels.plugin.requestHeaders.set]
X-From = "orbien"
+

参数​

+
参数必填默认值说明
name是隧道名称,唯一
protocol是固定为 https
service条件本地服务地址(透传必填),如 127.0.0.1:443
domains是域名列表,至少一个;完整域名或无 . 的前缀(前缀需服务端 rootDomain)
plugin.type否tls-term:客户端终止 TLS
plugin.service条件tls-term 时必填,如 127.0.0.1:80
plugin.certFile否证书路径;空则临时自签
plugin.keyFile否私钥路径;空则临时自签
plugin.hostHeaderRewrite否改写转发到本地服务的 Host;空表示不改
plugin.requestHeaders.set否向后端追加请求头,键值对
transport.bandwidth否0带宽上限(Mbps);0 表示不限制
transport.bandwidthLimitSide否client限速端:client / server
transport.proxyProtocolVersion否PROXY Protocol:v1 / v2(tls-term 不可用)
\ No newline at end of file diff --git a/docs/tunnels/tcp.html b/docs/tunnels/tcp.html new file mode 100644 index 0000000..00c77b5 --- /dev/null +++ b/docs/tunnels/tcp.html @@ -0,0 +1,14 @@ +TCP | Orbien + + +

TCP

+

将内网 TCP 服务映射到服务端公网端口。

+

示例:穿透 SSH​

+

服务端:

+
# orbien-server.toml
listen = "0.0.0.0:9527"
+

客户端:

+
# orbien.toml
server = "YOUR_SERVER_IP:9527"

[[tunnels]]
name = "ssh"
protocol = "tcp"
service = "127.0.0.1:22"
remotePort = 9000
+

外网访问:

+
ssh -p 9000 user@YOUR_SERVER_IP
+

参数​

+
参数必填默认值说明
name是隧道名称,唯一
protocol是固定为 tcp
service是本地服务地址,如 127.0.0.1:22
remotePort是服务端对外监听端口
transport.bandwidth否0带宽上限(Mbps);0 表示不限制
transport.bandwidthLimitSide否client限速端:client / server
transport.proxyProtocolVersion否PROXY Protocol:v1 / v2
\ No newline at end of file diff --git a/docs/tunnels/udp.html b/docs/tunnels/udp.html new file mode 100644 index 0000000..1e0d95b --- /dev/null +++ b/docs/tunnels/udp.html @@ -0,0 +1,14 @@ +UDP | Orbien + + +

UDP

+

将内网 UDP 服务映射到服务端公网端口。

+

示例:穿透 DNS​

+

服务端:

+
# orbien-server.toml
listen = "0.0.0.0:9527"
+

客户端:

+
# orbien.toml
server = "YOUR_SERVER_IP:9527"

[[tunnels]]
name = "dns"
protocol = "udp"
service = "127.0.0.1:53"
remotePort = 9000
+

外网访问:

+
dig @YOUR_SERVER_IP -p 9000 example.com
+

参数​

+
参数必填默认值说明
udpPacketSize否1500UDP 最大报文长度,客户端与服务端需一致
name是隧道名称,唯一
protocol是固定为 udp
service是本地服务地址,如 127.0.0.1:53
remotePort是服务端对外监听端口
transport.bandwidth否0带宽上限(Mbps);0 表示不限制
transport.bandwidthLimitSide否client限速端:client / server
transport.proxyProtocolVersion否PROXY Protocol:v1 / v2
\ No newline at end of file diff --git a/en/.nojekyll b/en/.nojekyll new file mode 100644 index 0000000..e69de29 diff --git a/en/404.html b/en/404.html new file mode 100644 index 0000000..ea39556 --- /dev/null +++ b/en/404.html @@ -0,0 +1,4 @@ +Page Not Found | Orbien + + +

Page Not Found

We could not find what you were looking for.

Please contact the owner of the site that linked you to the original URL and let them know their link is broken.

\ No newline at end of file diff --git a/en/assets/css/styles.f8d6dc55.css b/en/assets/css/styles.f8d6dc55.css new file mode 100644 index 0000000..5b2ea2e --- /dev/null +++ b/en/assets/css/styles.f8d6dc55.css @@ -0,0 +1 @@ +@import "https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@400;500;700;800&family=Outfit:wght@500;600;700;800&display=swap";@layer docusaurus.infima{:root{--ifm-color-scheme:light;--ifm-dark-value:10%;--ifm-darker-value:15%;--ifm-darkest-value:30%;--ifm-light-value:15%;--ifm-lighter-value:30%;--ifm-lightest-value:50%;--ifm-contrast-background-value:90%;--ifm-contrast-foreground-value:70%;--ifm-contrast-background-dark-value:70%;--ifm-contrast-foreground-dark-value:90%;--ifm-color-primary:#3578e5;--ifm-color-secondary:#ebedf0;--ifm-color-success:#00a400;--ifm-color-info:#54c7ec;--ifm-color-warning:#ffba00;--ifm-color-danger:#fa383e;--ifm-color-primary-dark:#306cce;--ifm-color-primary-darker:#2d66c3;--ifm-color-primary-darkest:#2554a0;--ifm-color-primary-light:#538ce9;--ifm-color-primary-lighter:#72a1ed;--ifm-color-primary-lightest:#9abcf2;--ifm-color-primary-contrast-background:#ebf2fc;--ifm-color-primary-contrast-foreground:#102445;--ifm-color-secondary-dark:#d4d5d8;--ifm-color-secondary-darker:#c8c9cc;--ifm-color-secondary-darkest:#a4a6a8;--ifm-color-secondary-light:#eef0f2;--ifm-color-secondary-lighter:#f1f2f5;--ifm-color-secondary-lightest:#f5f6f8;--ifm-color-secondary-contrast-background:#fdfdfe;--ifm-color-secondary-contrast-foreground:#474748;--ifm-color-success-dark:#009400;--ifm-color-success-darker:#008b00;--ifm-color-success-darkest:#007300;--ifm-color-success-light:#26b226;--ifm-color-success-lighter:#4dbf4d;--ifm-color-success-lightest:#80d280;--ifm-color-success-contrast-background:#e6f6e6;--ifm-color-success-contrast-foreground:#003100;--ifm-color-info-dark:#4cb3d4;--ifm-color-info-darker:#47a9c9;--ifm-color-info-darkest:#3b8ba5;--ifm-color-info-light:#6ecfef;--ifm-color-info-lighter:#87d8f2;--ifm-color-info-lightest:#aae3f6;--ifm-color-info-contrast-background:#eef9fd;--ifm-color-info-contrast-foreground:#193c47;--ifm-color-warning-dark:#e6a700;--ifm-color-warning-darker:#d99e00;--ifm-color-warning-darkest:#b38200;--ifm-color-warning-light:#ffc426;--ifm-color-warning-lighter:#ffcf4d;--ifm-color-warning-lightest:#ffdd80;--ifm-color-warning-contrast-background:#fff8e6;--ifm-color-warning-contrast-foreground:#4d3800;--ifm-color-danger-dark:#e13238;--ifm-color-danger-darker:#d53035;--ifm-color-danger-darkest:#af272b;--ifm-color-danger-light:#fb565b;--ifm-color-danger-lighter:#fb7478;--ifm-color-danger-lightest:#fd9c9f;--ifm-color-danger-contrast-background:#ffebec;--ifm-color-danger-contrast-foreground:#4b1113;--ifm-color-white:#fff;--ifm-color-black:#000;--ifm-color-gray-0:var(--ifm-color-white);--ifm-color-gray-100:#f5f6f7;--ifm-color-gray-200:#ebedf0;--ifm-color-gray-300:#dadde1;--ifm-color-gray-400:#ccd0d5;--ifm-color-gray-500:#bec3c9;--ifm-color-gray-600:#8d949e;--ifm-color-gray-700:#606770;--ifm-color-gray-800:#444950;--ifm-color-gray-900:#1c1e21;--ifm-color-gray-1000:var(--ifm-color-black);--ifm-color-emphasis-0:var(--ifm-color-gray-0);--ifm-color-emphasis-100:var(--ifm-color-gray-100);--ifm-color-emphasis-200:var(--ifm-color-gray-200);--ifm-color-emphasis-300:var(--ifm-color-gray-300);--ifm-color-emphasis-400:var(--ifm-color-gray-400);--ifm-color-emphasis-500:var(--ifm-color-gray-500);--ifm-color-emphasis-600:var(--ifm-color-gray-600);--ifm-color-emphasis-700:var(--ifm-color-gray-700);--ifm-color-emphasis-800:var(--ifm-color-gray-800);--ifm-color-emphasis-900:var(--ifm-color-gray-900);--ifm-color-emphasis-1000:var(--ifm-color-gray-1000);--ifm-color-content:var(--ifm-color-emphasis-900);--ifm-color-content-inverse:var(--ifm-color-emphasis-0);--ifm-color-content-secondary:#525860;--ifm-background-color:transparent;--ifm-background-surface-color:var(--ifm-color-content-inverse);--ifm-global-border-width:1px;--ifm-global-radius:.4rem;--ifm-hover-overlay:rgba(0,0,0,.05);--ifm-font-color-base:var(--ifm-color-content);--ifm-font-color-base-inverse:var(--ifm-color-content-inverse);--ifm-font-color-secondary:var(--ifm-color-content-secondary);--ifm-font-family-base:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--ifm-font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--ifm-font-size-base:100%;--ifm-font-weight-light:300;--ifm-font-weight-normal:400;--ifm-font-weight-semibold:500;--ifm-font-weight-bold:700;--ifm-font-weight-base:var(--ifm-font-weight-normal);--ifm-line-height-base:1.65;--ifm-global-spacing:1rem;--ifm-spacing-vertical:var(--ifm-global-spacing);--ifm-spacing-horizontal:var(--ifm-global-spacing);--ifm-transition-fast:.2s;--ifm-transition-slow:.4s;--ifm-transition-timing-default:cubic-bezier(.08,.52,.52,1);--ifm-global-shadow-lw:0 1px 2px 0 rgba(0,0,0,.1);--ifm-global-shadow-md:0 5px 40px rgba(0,0,0,.2);--ifm-global-shadow-tl:0 12px 28px 0 rgba(0,0,0,.2),0 2px 4px 0 rgba(0,0,0,.1);--ifm-z-index-dropdown:100;--ifm-z-index-fixed:200;--ifm-z-index-overlay:400;--ifm-container-width:1140px;--ifm-container-width-xl:1320px;--ifm-code-background:#f6f7f8;--ifm-code-border-radius:var(--ifm-global-radius);--ifm-code-font-size:90%;--ifm-code-padding-horizontal:.1rem;--ifm-code-padding-vertical:.1rem;--ifm-pre-background:var(--ifm-code-background);--ifm-pre-border-radius:var(--ifm-code-border-radius);--ifm-pre-color:inherit;--ifm-pre-line-height:1.45;--ifm-pre-padding:1rem;--ifm-heading-color:inherit;--ifm-heading-margin-top:0;--ifm-heading-margin-bottom:var(--ifm-spacing-vertical);--ifm-heading-font-family:var(--ifm-font-family-base);--ifm-heading-font-weight:var(--ifm-font-weight-bold);--ifm-heading-line-height:1.25;--ifm-h1-font-size:2rem;--ifm-h2-font-size:1.5rem;--ifm-h3-font-size:1.25rem;--ifm-h4-font-size:1rem;--ifm-h5-font-size:.875rem;--ifm-h6-font-size:.85rem;--ifm-image-alignment-padding:1.25rem;--ifm-leading-desktop:1.25;--ifm-leading:calc(var(--ifm-leading-desktop)*1rem);--ifm-list-left-padding:2rem;--ifm-list-margin:1rem;--ifm-list-item-margin:.25rem;--ifm-list-paragraph-margin:1rem;--ifm-table-cell-padding:.75rem;--ifm-table-background:transparent;--ifm-table-stripe-background:rgba(0,0,0,.03);--ifm-table-border-width:1px;--ifm-table-border-color:var(--ifm-color-emphasis-300);--ifm-table-head-background:inherit;--ifm-table-head-color:inherit;--ifm-table-head-font-weight:var(--ifm-font-weight-bold);--ifm-table-cell-color:inherit;--ifm-link-color:var(--ifm-color-primary);--ifm-link-decoration:none;--ifm-link-hover-color:var(--ifm-link-color);--ifm-link-hover-decoration:underline;--ifm-paragraph-margin-bottom:var(--ifm-leading);--ifm-blockquote-font-size:var(--ifm-font-size-base);--ifm-blockquote-border-left-width:2px;--ifm-blockquote-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-blockquote-padding-vertical:0;--ifm-blockquote-shadow:none;--ifm-blockquote-color:var(--ifm-color-emphasis-800);--ifm-blockquote-border-color:var(--ifm-color-emphasis-300);--ifm-hr-background-color:var(--ifm-color-emphasis-500);--ifm-hr-height:1px;--ifm-hr-margin-vertical:1.5rem;--ifm-scrollbar-size:7px;--ifm-scrollbar-track-background-color:#f1f1f1;--ifm-scrollbar-thumb-background-color:silver;--ifm-scrollbar-thumb-hover-background-color:#a7a7a7;--ifm-alert-background-color:inherit;--ifm-alert-border-color:inherit;--ifm-alert-border-radius:var(--ifm-global-radius);--ifm-alert-border-width:0px;--ifm-alert-border-left-width:5px;--ifm-alert-color:var(--ifm-font-color-base);--ifm-alert-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-alert-padding-vertical:var(--ifm-spacing-vertical);--ifm-alert-shadow:var(--ifm-global-shadow-lw);--ifm-avatar-intro-margin:1rem;--ifm-avatar-intro-alignment:inherit;--ifm-avatar-photo-size:3rem;--ifm-badge-background-color:inherit;--ifm-badge-border-color:inherit;--ifm-badge-border-radius:var(--ifm-global-radius);--ifm-badge-border-width:var(--ifm-global-border-width);--ifm-badge-color:var(--ifm-color-white);--ifm-badge-padding-horizontal:calc(var(--ifm-spacing-horizontal)*.5);--ifm-badge-padding-vertical:calc(var(--ifm-spacing-vertical)*.25);--ifm-breadcrumb-border-radius:1.5rem;--ifm-breadcrumb-spacing:.5rem;--ifm-breadcrumb-color-active:var(--ifm-color-primary);--ifm-breadcrumb-item-background-active:var(--ifm-hover-overlay);--ifm-breadcrumb-padding-horizontal:.8rem;--ifm-breadcrumb-padding-vertical:.4rem;--ifm-breadcrumb-size-multiplier:1;--ifm-breadcrumb-separator:url("data:image/svg+xml;utf8,");--ifm-breadcrumb-separator-filter:none;--ifm-breadcrumb-separator-size:.5rem;--ifm-breadcrumb-separator-size-multiplier:1.25;--ifm-button-background-color:inherit;--ifm-button-border-color:var(--ifm-button-background-color);--ifm-button-border-width:var(--ifm-global-border-width);--ifm-button-color:var(--ifm-font-color-base-inverse);--ifm-button-font-weight:var(--ifm-font-weight-bold);--ifm-button-padding-horizontal:1.5rem;--ifm-button-padding-vertical:.375rem;--ifm-button-size-multiplier:1;--ifm-button-transition-duration:var(--ifm-transition-fast);--ifm-button-border-radius:calc(var(--ifm-global-radius)*var(--ifm-button-size-multiplier));--ifm-button-group-spacing:2px;--ifm-card-background-color:var(--ifm-background-surface-color);--ifm-card-border-radius:calc(var(--ifm-global-radius)*2);--ifm-card-horizontal-spacing:var(--ifm-global-spacing);--ifm-card-vertical-spacing:var(--ifm-global-spacing);--ifm-toc-border-color:var(--ifm-color-emphasis-300);--ifm-toc-link-color:var(--ifm-color-content-secondary);--ifm-toc-padding-vertical:.5rem;--ifm-toc-padding-horizontal:.5rem;--ifm-dropdown-background-color:var(--ifm-background-surface-color);--ifm-dropdown-font-weight:var(--ifm-font-weight-semibold);--ifm-dropdown-link-color:var(--ifm-font-color-base);--ifm-dropdown-hover-background-color:var(--ifm-hover-overlay);--ifm-footer-background-color:var(--ifm-color-emphasis-100);--ifm-footer-color:inherit;--ifm-footer-link-color:var(--ifm-color-emphasis-700);--ifm-footer-link-hover-color:var(--ifm-color-primary);--ifm-footer-link-horizontal-spacing:.5rem;--ifm-footer-padding-horizontal:calc(var(--ifm-spacing-horizontal)*2);--ifm-footer-padding-vertical:calc(var(--ifm-spacing-vertical)*2);--ifm-footer-title-color:inherit;--ifm-footer-logo-max-width:min(30rem,90vw);--ifm-hero-background-color:var(--ifm-background-surface-color);--ifm-hero-text-color:var(--ifm-color-emphasis-800);--ifm-menu-color:var(--ifm-color-emphasis-700);--ifm-menu-color-active:var(--ifm-color-primary);--ifm-menu-color-background-active:var(--ifm-hover-overlay);--ifm-menu-color-background-hover:var(--ifm-hover-overlay);--ifm-menu-link-padding-horizontal:.75rem;--ifm-menu-link-padding-vertical:.375rem;--ifm-menu-link-sublist-icon:url("data:image/svg+xml;utf8,");--ifm-menu-link-sublist-icon-filter:none;--ifm-navbar-background-color:var(--ifm-background-surface-color);--ifm-navbar-height:3.75rem;--ifm-navbar-item-padding-horizontal:.75rem;--ifm-navbar-item-padding-vertical:.25rem;--ifm-navbar-link-color:var(--ifm-font-color-base);--ifm-navbar-link-hover-color:var(--ifm-color-primary);--ifm-navbar-link-active-color:var(--ifm-link-color);--ifm-navbar-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-navbar-padding-vertical:calc(var(--ifm-spacing-vertical)*.5);--ifm-navbar-shadow:var(--ifm-global-shadow-lw);--ifm-navbar-search-input-background-color:var(--ifm-color-emphasis-200);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-800);--ifm-navbar-search-input-placeholder-color:var(--ifm-color-emphasis-500);--ifm-navbar-search-input-icon:url("data:image/svg+xml;utf8,");--ifm-navbar-sidebar-width:83vw;--ifm-pagination-border-radius:var(--ifm-global-radius);--ifm-pagination-color-active:var(--ifm-color-primary);--ifm-pagination-font-size:1rem;--ifm-pagination-item-active-background:var(--ifm-hover-overlay);--ifm-pagination-page-spacing:.2em;--ifm-pagination-padding-horizontal:calc(var(--ifm-spacing-horizontal)*1);--ifm-pagination-padding-vertical:calc(var(--ifm-spacing-vertical)*.25);--ifm-pagination-nav-border-radius:var(--ifm-global-radius);--ifm-pagination-nav-color-hover:var(--ifm-color-primary);--ifm-pills-color-active:var(--ifm-color-primary);--ifm-pills-color-background-active:var(--ifm-hover-overlay);--ifm-pills-spacing:.125rem;--ifm-tabs-color:var(--ifm-font-color-secondary);--ifm-tabs-color-active:var(--ifm-color-primary);--ifm-tabs-color-active-border:var(--ifm-tabs-color-active);--ifm-tabs-padding-horizontal:1rem;--ifm-tabs-padding-vertical:1rem}*{box-sizing:border-box}html{background-color:var(--ifm-background-color);color:var(--ifm-font-color-base);color-scheme:var(--ifm-color-scheme);font:var(--ifm-font-size-base)/var(--ifm-line-height-base)var(--ifm-font-family-base);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;text-rendering:optimizelegibility;-webkit-text-size-adjust:100%;text-size-adjust:100%}body{word-wrap:break-word;margin:0}iframe{color-scheme:normal;border:0}.container{max-width:var(--ifm-container-width);padding:0 var(--ifm-spacing-horizontal);width:100%;margin:0 auto}.container--fluid{max-width:inherit}.row{margin:0 calc(var(--ifm-spacing-horizontal)*-1);flex-wrap:wrap;display:flex}.row--no-gutters{margin-left:0;margin-right:0}.row--no-gutters>.col{padding-left:0;padding-right:0}.row--align-top{align-items:flex-start}.row--align-bottom{align-items:flex-end}.row--align-center{align-items:center}.row--align-stretch{align-items:stretch}.row--align-baseline{align-items:baseline}.col{--ifm-col-width:100%;max-width:var(--ifm-col-width);padding:0 var(--ifm-spacing-horizontal);flex:1 0;width:100%;margin-left:0}.col[class*=col--]{flex:0 0 var(--ifm-col-width)}.col--1{--ifm-col-width:calc(1/12*100%)}.col--offset-1{margin-left:8.33333%}.col--2{--ifm-col-width:calc(2/12*100%)}.col--offset-2{margin-left:16.6667%}.col--3{--ifm-col-width:calc(3/12*100%)}.col--offset-3{margin-left:25%}.col--4{--ifm-col-width:calc(4/12*100%)}.col--offset-4{margin-left:33.3333%}.col--5{--ifm-col-width:calc(5/12*100%)}.col--offset-5{margin-left:41.6667%}.col--6{--ifm-col-width:calc(6/12*100%)}.col--offset-6{margin-left:50%}.col--7{--ifm-col-width:calc(7/12*100%)}.col--offset-7{margin-left:58.3333%}.col--8{--ifm-col-width:calc(8/12*100%)}.col--offset-8{margin-left:66.6667%}.col--9{--ifm-col-width:calc(9/12*100%)}.col--offset-9{margin-left:75%}.col--10{--ifm-col-width:calc(10/12*100%)}.col--offset-10{margin-left:83.3333%}.col--11{--ifm-col-width:calc(11/12*100%)}.col--offset-11{margin-left:91.6667%}.col--12{--ifm-col-width:calc(12/12*100%)}.col--offset-12{margin-left:100%}.margin--none{margin:0!important}.margin-top--none{margin-top:0!important}.margin-left--none{margin-left:0!important}.margin-bottom--none{margin-bottom:0!important}.margin-right--none{margin-right:0!important}.margin-vert--none{margin-top:0!important;margin-bottom:0!important}.margin-horiz--none{margin-left:0!important;margin-right:0!important}.margin--xs{margin:.25rem!important}.margin-top--xs{margin-top:.25rem!important}.margin-left--xs{margin-left:.25rem!important}.margin-bottom--xs{margin-bottom:.25rem!important}.margin-right--xs{margin-right:.25rem!important}.margin-vert--xs{margin-top:.25rem!important;margin-bottom:.25rem!important}.margin-horiz--xs{margin-left:.25rem!important;margin-right:.25rem!important}.margin--sm{margin:.5rem!important}.margin-top--sm{margin-top:.5rem!important}.margin-left--sm{margin-left:.5rem!important}.margin-bottom--sm{margin-bottom:.5rem!important}.margin-right--sm{margin-right:.5rem!important}.margin-vert--sm{margin-top:.5rem!important;margin-bottom:.5rem!important}.margin-horiz--sm{margin-left:.5rem!important;margin-right:.5rem!important}.margin--md{margin:1rem!important}.margin-top--md{margin-top:1rem!important}.margin-left--md{margin-left:1rem!important}.margin-bottom--md{margin-bottom:1rem!important}.margin-right--md{margin-right:1rem!important}.margin-vert--md{margin-top:1rem!important;margin-bottom:1rem!important}.margin-horiz--md{margin-left:1rem!important;margin-right:1rem!important}.margin--lg{margin:2rem!important}.margin-top--lg{margin-top:2rem!important}.margin-left--lg{margin-left:2rem!important}.margin-bottom--lg{margin-bottom:2rem!important}.margin-right--lg{margin-right:2rem!important}.margin-vert--lg{margin-top:2rem!important;margin-bottom:2rem!important}.margin-horiz--lg{margin-left:2rem!important;margin-right:2rem!important}.margin--xl{margin:5rem!important}.margin-top--xl{margin-top:5rem!important}.margin-left--xl{margin-left:5rem!important}.margin-bottom--xl{margin-bottom:5rem!important}.margin-right--xl{margin-right:5rem!important}.margin-vert--xl{margin-top:5rem!important;margin-bottom:5rem!important}.margin-horiz--xl{margin-left:5rem!important;margin-right:5rem!important}.padding--none{padding:0!important}.padding-top--none{padding-top:0!important}.padding-left--none{padding-left:0!important}.padding-bottom--none{padding-bottom:0!important}.padding-right--none{padding-right:0!important}.padding-vert--none{padding-top:0!important;padding-bottom:0!important}.padding-horiz--none{padding-left:0!important;padding-right:0!important}.padding--xs{padding:.25rem!important}.padding-top--xs{padding-top:.25rem!important}.padding-left--xs{padding-left:.25rem!important}.padding-bottom--xs{padding-bottom:.25rem!important}.padding-right--xs{padding-right:.25rem!important}.padding-vert--xs{padding-top:.25rem!important;padding-bottom:.25rem!important}.padding-horiz--xs{padding-left:.25rem!important;padding-right:.25rem!important}.padding--sm{padding:.5rem!important}.padding-top--sm{padding-top:.5rem!important}.padding-left--sm{padding-left:.5rem!important}.padding-bottom--sm{padding-bottom:.5rem!important}.padding-right--sm{padding-right:.5rem!important}.padding-vert--sm{padding-top:.5rem!important;padding-bottom:.5rem!important}.padding-horiz--sm{padding-left:.5rem!important;padding-right:.5rem!important}.padding--md{padding:1rem!important}.padding-top--md{padding-top:1rem!important}.padding-left--md{padding-left:1rem!important}.padding-bottom--md{padding-bottom:1rem!important}.padding-right--md{padding-right:1rem!important}.padding-vert--md{padding-top:1rem!important;padding-bottom:1rem!important}.padding-horiz--md{padding-left:1rem!important;padding-right:1rem!important}.padding--lg{padding:2rem!important}.padding-top--lg{padding-top:2rem!important}.padding-left--lg{padding-left:2rem!important}.padding-bottom--lg{padding-bottom:2rem!important}.padding-right--lg{padding-right:2rem!important}.padding-vert--lg{padding-top:2rem!important;padding-bottom:2rem!important}.padding-horiz--lg{padding-left:2rem!important;padding-right:2rem!important}.padding--xl{padding:5rem!important}.padding-top--xl{padding-top:5rem!important}.padding-left--xl{padding-left:5rem!important}.padding-bottom--xl{padding-bottom:5rem!important}.padding-right--xl{padding-right:5rem!important}.padding-vert--xl{padding-top:5rem!important;padding-bottom:5rem!important}.padding-horiz--xl{padding-left:5rem!important;padding-right:5rem!important}code{background-color:var(--ifm-code-background);border-radius:var(--ifm-code-border-radius);font-family:var(--ifm-font-family-monospace);font-size:var(--ifm-code-font-size);padding:var(--ifm-code-padding-vertical)var(--ifm-code-padding-horizontal);vertical-align:middle;border:.1rem solid rgba(0,0,0,.1)}a code{color:inherit}pre{background-color:var(--ifm-pre-background);border-radius:var(--ifm-pre-border-radius);color:var(--ifm-pre-color);font:var(--ifm-code-font-size)/var(--ifm-pre-line-height)var(--ifm-font-family-monospace);margin:0 0 var(--ifm-spacing-vertical);padding:var(--ifm-pre-padding);overflow:auto}pre code{font-size:100%;line-height:inherit;background-color:transparent;border:none;padding:0}kbd{background-color:var(--ifm-color-emphasis-0);border:1px solid var(--ifm-color-emphasis-400);box-shadow:inset 0 -1px 0 var(--ifm-color-emphasis-400);color:var(--ifm-color-emphasis-800);font:80% var(--ifm-font-family-monospace);border-radius:.2rem;padding:.15rem .3rem}h1,h2,h3,h4,h5,h6{color:var(--ifm-heading-color);font-family:var(--ifm-heading-font-family);font-weight:var(--ifm-heading-font-weight);line-height:var(--ifm-heading-line-height);margin:var(--ifm-heading-margin-top)0 var(--ifm-heading-margin-bottom)0}h1{font-size:var(--ifm-h1-font-size)}h2{font-size:var(--ifm-h2-font-size)}h3{font-size:var(--ifm-h3-font-size)}h4{font-size:var(--ifm-h4-font-size)}h5{font-size:var(--ifm-h5-font-size)}h6{font-size:var(--ifm-h6-font-size)}img{max-width:100%}img[align=right]{padding-left:var(--image-alignment-padding)}img[align=left]{padding-right:var(--image-alignment-padding)}.markdown{--ifm-h1-vertical-rhythm-top:3;--ifm-h2-vertical-rhythm-top:2;--ifm-h3-vertical-rhythm-top:1.5;--ifm-heading-vertical-rhythm-top:1.25;--ifm-h1-vertical-rhythm-bottom:1.25;--ifm-heading-vertical-rhythm-bottom:1}.markdown:before{content:"";display:table}.markdown:after{clear:both;content:"";display:table}.markdown>:last-child{margin-bottom:0!important}.markdown h1:first-child{--ifm-h1-font-size:3rem;margin-bottom:calc(var(--ifm-h1-vertical-rhythm-bottom)*var(--ifm-leading))}.markdown>h2{--ifm-h2-font-size:2rem;margin-bottom:calc(var(--ifm-heading-vertical-rhythm-bottom)*var(--ifm-leading));margin-top:calc(var(--ifm-h2-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h3{--ifm-h3-font-size:1.5rem;margin-bottom:calc(var(--ifm-heading-vertical-rhythm-bottom)*var(--ifm-leading));margin-top:calc(var(--ifm-h3-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h4,.markdown>h5,.markdown>h6{margin-bottom:calc(var(--ifm-heading-vertical-rhythm-bottom)*var(--ifm-leading));margin-top:calc(var(--ifm-heading-vertical-rhythm-top)*var(--ifm-leading))}.markdown>pre,.markdown>ul,.markdown>p{margin-bottom:var(--ifm-leading)}.markdown li{word-wrap:break-word}.markdown li>p{margin-top:var(--ifm-list-paragraph-margin)}.markdown li+li{margin-top:var(--ifm-list-item-margin)}ul,ol{margin:0 0 var(--ifm-list-margin);padding-left:var(--ifm-list-left-padding)}ol ol,ul ol{list-style-type:lower-roman}ul ul,ul ol,ol ol,ol ul{margin:0}ul ul ol,ul ol ol,ol ul ol,ol ol ol{list-style-type:lower-alpha}table{border-collapse:collapse;margin-bottom:var(--ifm-spacing-vertical);display:block;overflow:auto}table thead tr{border-bottom:2px solid var(--ifm-table-border-color)}table thead{background-color:var(--ifm-table-stripe-background)}table tr{background-color:var(--ifm-table-background);border-top:var(--ifm-table-border-width)solid var(--ifm-table-border-color)}table tr:nth-child(2n){background-color:var(--ifm-table-stripe-background)}table th,table td{border:var(--ifm-table-border-width)solid var(--ifm-table-border-color);padding:var(--ifm-table-cell-padding)}table th{background-color:var(--ifm-table-head-background);color:var(--ifm-table-head-color);font-weight:var(--ifm-table-head-font-weight)}table td{color:var(--ifm-table-cell-color)}strong{font-weight:var(--ifm-font-weight-bold)}a{color:var(--ifm-link-color);-webkit-text-decoration:var(--ifm-link-decoration);text-decoration:var(--ifm-link-decoration);transition:color var(--ifm-transition-fast)var(--ifm-transition-timing-default)}a:hover{color:var(--ifm-link-hover-color);-webkit-text-decoration:var(--ifm-link-hover-decoration);text-decoration:var(--ifm-link-hover-decoration)}a:not([href]){-webkit-text-decoration:none;text-decoration:none}p{margin:0 0 var(--ifm-paragraph-margin-bottom)}blockquote{border-left:var(--ifm-blockquote-border-left-width)solid var(--ifm-blockquote-border-color);box-shadow:var(--ifm-blockquote-shadow);color:var(--ifm-blockquote-color);font-size:var(--ifm-blockquote-font-size);margin:0 0 var(--ifm-spacing-vertical);padding:var(--ifm-blockquote-padding-vertical)var(--ifm-blockquote-padding-horizontal)}blockquote>:first-child{margin-top:0}blockquote>:last-child{margin-bottom:0}hr{background-color:var(--ifm-hr-background-color);height:var(--ifm-hr-height);margin:var(--ifm-hr-margin-vertical)0;border:0}.shadow--lw{box-shadow:var(--ifm-global-shadow-lw)!important}.shadow--md{box-shadow:var(--ifm-global-shadow-md)!important}.shadow--tl{box-shadow:var(--ifm-global-shadow-tl)!important}.text--primary{color:var(--ifm-color-primary)}.text--secondary{color:var(--ifm-color-secondary)}.text--success{color:var(--ifm-color-success)}.text--info{color:var(--ifm-color-info)}.text--warning{color:var(--ifm-color-warning)}.text--danger{color:var(--ifm-color-danger)}.text--center{text-align:center}.text--left{text-align:left}.text--justify{text-align:justify}.text--right{text-align:right}.text--capitalize{text-transform:capitalize}.text--lowercase{text-transform:lowercase}.text--uppercase{text-transform:uppercase}.text--light{font-weight:var(--ifm-font-weight-light)}.text--normal{font-weight:var(--ifm-font-weight-normal)}.text--semibold{font-weight:var(--ifm-font-weight-semibold)}.text--bold{font-weight:var(--ifm-font-weight-bold)}.text--italic{font-style:italic}.text--truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.text--break{word-wrap:break-word!important;word-break:break-word!important}.text--no-decoration,.text--no-decoration:hover{-webkit-text-decoration:none;text-decoration:none}.clean-btn{color:inherit;cursor:pointer;background:0 0;border:none;padding:0;font-family:inherit}.clean-list{padding-left:0;list-style:none}.alert--primary{--ifm-alert-background-color:var(--ifm-color-primary-contrast-background);--ifm-alert-background-color-highlight:rgba(53,120,229,.15);--ifm-alert-foreground-color:var(--ifm-color-primary-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-primary-dark)}.alert--secondary{--ifm-alert-background-color:var(--ifm-color-secondary-contrast-background);--ifm-alert-background-color-highlight:rgba(235,237,240,.15);--ifm-alert-foreground-color:var(--ifm-color-secondary-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-secondary-dark)}.alert--success{--ifm-alert-background-color:var(--ifm-color-success-contrast-background);--ifm-alert-background-color-highlight:rgba(0,164,0,.15);--ifm-alert-foreground-color:var(--ifm-color-success-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-success-dark)}.alert--info{--ifm-alert-background-color:var(--ifm-color-info-contrast-background);--ifm-alert-background-color-highlight:rgba(84,199,236,.15);--ifm-alert-foreground-color:var(--ifm-color-info-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-info-dark)}.alert--warning{--ifm-alert-background-color:var(--ifm-color-warning-contrast-background);--ifm-alert-background-color-highlight:rgba(255,186,0,.15);--ifm-alert-foreground-color:var(--ifm-color-warning-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-warning-dark)}.alert--danger{--ifm-alert-background-color:var(--ifm-color-danger-contrast-background);--ifm-alert-background-color-highlight:rgba(250,56,62,.15);--ifm-alert-foreground-color:var(--ifm-color-danger-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-danger-dark)}.alert{--ifm-code-background:var(--ifm-alert-background-color-highlight);--ifm-link-color:var(--ifm-alert-foreground-color);--ifm-link-hover-color:var(--ifm-alert-foreground-color);--ifm-link-decoration:underline;--ifm-tabs-color:var(--ifm-alert-foreground-color);--ifm-tabs-color-active:var(--ifm-alert-foreground-color);--ifm-tabs-color-active-border:var(--ifm-alert-border-color);background-color:var(--ifm-alert-background-color);border:var(--ifm-alert-border-width)solid var(--ifm-alert-border-color);border-left-width:var(--ifm-alert-border-left-width);border-radius:var(--ifm-alert-border-radius);box-shadow:var(--ifm-alert-shadow);color:var(--ifm-alert-foreground-color);padding:var(--ifm-alert-padding-vertical)var(--ifm-alert-padding-horizontal)}.alert__heading{font:bold var(--ifm-h5-font-size)/var(--ifm-heading-line-height)var(--ifm-heading-font-family);text-transform:uppercase;align-items:center;margin-bottom:.5rem;display:flex}.alert__icon{margin-right:.4em;display:inline-flex}.alert__icon svg{fill:var(--ifm-alert-foreground-color);stroke:var(--ifm-alert-foreground-color);stroke-width:0}.alert .close{color:var(--ifm-alert-foreground-color);margin:calc(var(--ifm-alert-padding-vertical)*-1)calc(var(--ifm-alert-padding-horizontal)*-1)0 0;opacity:.75}.alert .close:hover,.alert .close:focus{opacity:1}.alert a{-webkit-text-decoration-color:var(--ifm-alert-border-color);text-decoration-color:var(--ifm-alert-border-color)}.alert a:hover{text-decoration-thickness:2px}.avatar{column-gap:var(--ifm-avatar-intro-margin);display:flex}.avatar__photo{height:var(--ifm-avatar-photo-size);width:var(--ifm-avatar-photo-size);border-radius:50%;display:block;overflow:hidden}.avatar__photo--sm{--ifm-avatar-photo-size:2rem}.avatar__photo--lg{--ifm-avatar-photo-size:4rem}.avatar__photo--xl{--ifm-avatar-photo-size:6rem}.avatar__intro{text-align:var(--ifm-avatar-intro-alignment);flex-direction:column;flex:1;justify-content:center;display:flex}.avatar__name{font:bold var(--ifm-h4-font-size)/var(--ifm-heading-line-height)var(--ifm-font-family-base)}.avatar__subtitle{margin-top:.25rem}.avatar--vertical{--ifm-avatar-intro-alignment:center;--ifm-avatar-intro-margin:.5rem;flex-direction:column;align-items:center}.badge{background-color:var(--ifm-badge-background-color);border:var(--ifm-badge-border-width)solid var(--ifm-badge-border-color);border-radius:var(--ifm-badge-border-radius);color:var(--ifm-badge-color);font-size:75%;font-weight:var(--ifm-font-weight-bold);padding:var(--ifm-badge-padding-vertical)var(--ifm-badge-padding-horizontal);line-height:1;display:inline-block}.badge--primary{--ifm-badge-background-color:var(--ifm-color-primary);--ifm-badge-border-color:var(--ifm-badge-background-color)}.badge--secondary{--ifm-badge-background-color:var(--ifm-color-secondary);--ifm-badge-border-color:var(--ifm-badge-background-color);color:var(--ifm-color-black)}.badge--success{--ifm-badge-background-color:var(--ifm-color-success);--ifm-badge-border-color:var(--ifm-badge-background-color)}.badge--info{--ifm-badge-background-color:var(--ifm-color-info);--ifm-badge-border-color:var(--ifm-badge-background-color)}.badge--warning{--ifm-badge-background-color:var(--ifm-color-warning);--ifm-badge-border-color:var(--ifm-badge-background-color)}.badge--danger{--ifm-badge-background-color:var(--ifm-color-danger);--ifm-badge-border-color:var(--ifm-badge-background-color)}.breadcrumbs{margin-bottom:0;padding-left:0}.breadcrumbs__item{display:inline-block}.breadcrumbs__item:not(:last-child):after{background:var(--ifm-breadcrumb-separator)center;content:" ";filter:var(--ifm-breadcrumb-separator-filter);height:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier));margin:0 var(--ifm-breadcrumb-spacing);opacity:.5;width:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier));display:inline-block}.breadcrumbs__item--active .breadcrumbs__link{background:var(--ifm-breadcrumb-item-background-active);color:var(--ifm-breadcrumb-color-active)}.breadcrumbs__link{border-radius:var(--ifm-breadcrumb-border-radius);color:var(--ifm-font-color-base);font-size:calc(1rem*var(--ifm-breadcrumb-size-multiplier));padding:calc(var(--ifm-breadcrumb-padding-vertical)*var(--ifm-breadcrumb-size-multiplier))calc(var(--ifm-breadcrumb-padding-horizontal)*var(--ifm-breadcrumb-size-multiplier));transition-property:background,color;transition-duration:var(--ifm-transition-fast);transition-timing-function:var(--ifm-transition-timing-default);display:inline-block}.breadcrumbs__link:link:hover,.breadcrumbs__link:visited:hover,area[href].breadcrumbs__link:hover{background:var(--ifm-breadcrumb-item-background-active);-webkit-text-decoration:none;text-decoration:none}.breadcrumbs__link:any-link:hover{background:var(--ifm-breadcrumb-item-background-active);-webkit-text-decoration:none;text-decoration:none}.breadcrumbs--sm{--ifm-breadcrumb-size-multiplier:.8}.breadcrumbs--lg{--ifm-breadcrumb-size-multiplier:1.2}.button{background-color:var(--ifm-button-background-color);border:var(--ifm-button-border-width)solid var(--ifm-button-border-color);border-radius:var(--ifm-button-border-radius);color:var(--ifm-button-color);cursor:pointer;font-size:calc(.875rem*var(--ifm-button-size-multiplier));font-weight:var(--ifm-button-font-weight);padding:calc(var(--ifm-button-padding-vertical)*var(--ifm-button-size-multiplier))calc(var(--ifm-button-padding-horizontal)*var(--ifm-button-size-multiplier));text-align:center;-webkit-user-select:none;user-select:none;vertical-align:middle;white-space:nowrap;transition-property:color,background,border-color;transition-duration:var(--ifm-button-transition-duration);transition-timing-function:var(--ifm-transition-timing-default);line-height:1.5;display:inline-block}.button:hover{color:var(--ifm-button-color);-webkit-text-decoration:none;text-decoration:none}.button--outline{--ifm-button-background-color:transparent;--ifm-button-color:var(--ifm-button-border-color)}.button--outline:hover{--ifm-button-background-color:var(--ifm-button-border-color)}.button--outline:hover,.button--outline:active,.button--outline.button--active{--ifm-button-color:var(--ifm-font-color-base-inverse)}.button--link{--ifm-button-background-color:transparent;--ifm-button-border-color:transparent;color:var(--ifm-link-color);-webkit-text-decoration:var(--ifm-link-decoration);text-decoration:var(--ifm-link-decoration)}.button--link:hover,.button--link:active,.button--link.button--active{color:var(--ifm-link-hover-color);-webkit-text-decoration:var(--ifm-link-hover-decoration);text-decoration:var(--ifm-link-hover-decoration)}.button.disabled,.button:disabled,.button[disabled]{opacity:.65;pointer-events:none}.button--sm{--ifm-button-size-multiplier:.8}.button--lg{--ifm-button-size-multiplier:1.35}.button--block{width:100%;display:block}.button.button--secondary{color:var(--ifm-color-gray-900)}.button.button--secondary.button--outline:not(.button--active):not(:hover){color:var(--ifm-font-color-base)}:where(.button--primary){--ifm-button-background-color:var(--ifm-color-primary);--ifm-button-border-color:var(--ifm-color-primary)}:where(.button--primary):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-primary-dark);--ifm-button-border-color:var(--ifm-color-primary-dark)}.button--primary:active,.button--primary.button--active{--ifm-button-background-color:var(--ifm-color-primary-darker);--ifm-button-border-color:var(--ifm-color-primary-darker)}:where(.button--secondary){--ifm-button-background-color:var(--ifm-color-secondary);--ifm-button-border-color:var(--ifm-color-secondary)}:where(.button--secondary):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-secondary-dark);--ifm-button-border-color:var(--ifm-color-secondary-dark)}.button--secondary:active,.button--secondary.button--active{--ifm-button-background-color:var(--ifm-color-secondary-darker);--ifm-button-border-color:var(--ifm-color-secondary-darker)}:where(.button--success){--ifm-button-background-color:var(--ifm-color-success);--ifm-button-border-color:var(--ifm-color-success)}:where(.button--success):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-success-dark);--ifm-button-border-color:var(--ifm-color-success-dark)}.button--success:active,.button--success.button--active{--ifm-button-background-color:var(--ifm-color-success-darker);--ifm-button-border-color:var(--ifm-color-success-darker)}:where(.button--info){--ifm-button-background-color:var(--ifm-color-info);--ifm-button-border-color:var(--ifm-color-info)}:where(.button--info):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-info-dark);--ifm-button-border-color:var(--ifm-color-info-dark)}.button--info:active,.button--info.button--active{--ifm-button-background-color:var(--ifm-color-info-darker);--ifm-button-border-color:var(--ifm-color-info-darker)}:where(.button--warning){--ifm-button-background-color:var(--ifm-color-warning);--ifm-button-border-color:var(--ifm-color-warning)}:where(.button--warning):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-warning-dark);--ifm-button-border-color:var(--ifm-color-warning-dark)}.button--warning:active,.button--warning.button--active{--ifm-button-background-color:var(--ifm-color-warning-darker);--ifm-button-border-color:var(--ifm-color-warning-darker)}:where(.button--danger){--ifm-button-background-color:var(--ifm-color-danger);--ifm-button-border-color:var(--ifm-color-danger)}:where(.button--danger):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-danger-dark);--ifm-button-border-color:var(--ifm-color-danger-dark)}.button--danger:active,.button--danger.button--active{--ifm-button-background-color:var(--ifm-color-danger-darker);--ifm-button-border-color:var(--ifm-color-danger-darker)}.button-group{gap:var(--ifm-button-group-spacing);display:inline-flex}.button-group>.button:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.button-group>.button:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.button-group--block{justify-content:stretch;display:flex}.button-group--block>.button{flex-grow:1}.card{background-color:var(--ifm-card-background-color);border-radius:var(--ifm-card-border-radius);box-shadow:var(--ifm-global-shadow-lw);flex-direction:column;display:flex;overflow:hidden}.card--full-height{height:100%}.card__image{padding-top:var(--ifm-card-vertical-spacing)}.card__image:first-child{padding-top:0}.card__header,.card__body,.card__footer{padding:var(--ifm-card-vertical-spacing)var(--ifm-card-horizontal-spacing)}.card__header:not(:last-child),.card__body:not(:last-child),.card__footer:not(:last-child){padding-bottom:0}.card__header>:last-child,.card__body>:last-child,.card__footer>:last-child{margin-bottom:0}.card__footer{margin-top:auto}.table-of-contents{padding:var(--ifm-toc-padding-vertical)0;margin-bottom:0;font-size:.8rem}.table-of-contents,.table-of-contents ul{padding-left:var(--ifm-toc-padding-horizontal);list-style:none}.table-of-contents li{margin:var(--ifm-toc-padding-vertical)var(--ifm-toc-padding-horizontal)}.table-of-contents__left-border{border-left:1px solid var(--ifm-toc-border-color)}.table-of-contents__link{color:var(--ifm-toc-link-color);display:block}.table-of-contents__link:hover,.table-of-contents__link:hover code,.table-of-contents__link--active,.table-of-contents__link--active code{color:var(--ifm-color-primary);-webkit-text-decoration:none;text-decoration:none}.close{color:var(--ifm-color-black);float:right;font-size:1.5rem;font-weight:var(--ifm-font-weight-bold);opacity:.5;transition:opacity var(--ifm-transition-fast)var(--ifm-transition-timing-default);padding:1rem;line-height:1}.close:hover{opacity:.7}.close:focus{opacity:.8}.dropdown{font-weight:var(--ifm-dropdown-font-weight);vertical-align:top;display:inline-flex;position:relative}.dropdown--hoverable:hover .dropdown__menu,.dropdown--show .dropdown__menu{opacity:1;pointer-events:all;visibility:visible;transform:translateY(-1px)}.dropdown--right .dropdown__menu{left:inherit;right:0}.dropdown--nocaret .navbar__link:after{content:none!important}.dropdown__menu{background-color:var(--ifm-dropdown-background-color);border-radius:var(--ifm-global-radius);box-shadow:var(--ifm-global-shadow-md);opacity:0;pointer-events:none;min-width:10rem;max-height:80vh;left:0;top:calc(100% - var(--ifm-navbar-item-padding-vertical) + .3rem);visibility:hidden;z-index:var(--ifm-z-index-dropdown);transition-property:opacity,transform,visibility;transition-duration:var(--ifm-transition-fast);transition-timing-function:var(--ifm-transition-timing-default);padding:.5rem;list-style:none;position:absolute;overflow-y:auto;transform:translateY(-.625rem)}.dropdown__link{color:var(--ifm-dropdown-link-color);white-space:nowrap;border-radius:.25rem;margin-top:.2rem;padding:.25rem .5rem;font-size:.875rem;display:block}.dropdown__link:hover,.dropdown__link--active{background-color:var(--ifm-dropdown-hover-background-color);color:var(--ifm-dropdown-link-color);-webkit-text-decoration:none;text-decoration:none}.dropdown__link--active,.dropdown__link--active:hover{--ifm-dropdown-link-color:var(--ifm-link-color)}.dropdown>.navbar__link:after{content:"";border:.4em solid transparent;border-top-color:currentColor;border-bottom:0 solid;margin-left:.3em;display:inline-block;position:relative;top:2px;transform:translateY(-50%)}.footer{background-color:var(--ifm-footer-background-color);color:var(--ifm-footer-color);padding:var(--ifm-footer-padding-vertical)var(--ifm-footer-padding-horizontal)}.footer--dark{--ifm-footer-background-color:#303846;--ifm-footer-color:var(--ifm-footer-link-color);--ifm-footer-link-color:var(--ifm-color-secondary);--ifm-footer-title-color:var(--ifm-color-white)}.footer__links{margin-bottom:1rem}.footer__link-item{color:var(--ifm-footer-link-color);line-height:2}.footer__link-item:hover{color:var(--ifm-footer-link-hover-color)}.footer__link-separator{margin:0 var(--ifm-footer-link-horizontal-spacing)}.footer__logo{max-width:var(--ifm-footer-logo-max-width);margin-top:1rem}.footer__title{color:var(--ifm-footer-title-color);font:bold var(--ifm-h4-font-size)/var(--ifm-heading-line-height)var(--ifm-font-family-base);margin-bottom:var(--ifm-heading-margin-bottom)}.footer__item{margin-top:0}.footer__items{margin-bottom:0}[type=checkbox]{padding:0}.hero{background-color:var(--ifm-hero-background-color);color:var(--ifm-hero-text-color);align-items:center;padding:4rem 2rem;display:flex}.hero--primary{--ifm-hero-background-color:var(--ifm-color-primary);--ifm-hero-text-color:var(--ifm-font-color-base-inverse)}.hero--dark{--ifm-hero-background-color:#303846;--ifm-hero-text-color:var(--ifm-color-white)}.hero__title{font-size:3rem}.hero__subtitle{font-size:1.5rem}.menu{font-weight:var(--ifm-font-weight-semibold);overflow-x:hidden}.menu__list{margin:0;padding-left:0;list-style:none}.menu__list .menu__list{padding-left:var(--ifm-menu-link-padding-horizontal);flex:0 0 100%;margin-top:.25rem}.menu__list-item:not(:first-child){margin-top:.25rem}.menu__list-item--collapsed .menu__list{height:0;overflow:hidden}.menu__list-item--collapsed .menu__link--sublist:after,.menu__list-item--collapsed .menu__caret:before{transform:rotate(90deg)}.menu__list-item-collapsible{transition:background var(--ifm-transition-fast)var(--ifm-transition-timing-default);border-radius:.25rem;flex-wrap:wrap;display:flex;position:relative}.menu__list-item-collapsible:hover,.menu__list-item-collapsible--active{background:var(--ifm-menu-color-background-hover)}.menu__list-item-collapsible .menu__link:hover,.menu__list-item-collapsible .menu__link--active{background:0 0!important}.menu__link,.menu__caret{transition:background var(--ifm-transition-fast)var(--ifm-transition-timing-default);border-radius:.25rem;align-items:center;display:flex}.menu__link:hover,.menu__caret:hover{background:var(--ifm-menu-color-background-hover)}.menu__link{color:var(--ifm-menu-color);padding:var(--ifm-menu-link-padding-vertical)var(--ifm-menu-link-padding-horizontal);flex:1;line-height:1.25}.menu__link:hover{color:var(--ifm-menu-color);transition:color var(--ifm-transition-fast)var(--ifm-transition-timing-default);-webkit-text-decoration:none;text-decoration:none}.menu__link--sublist-caret:after{content:"";background:var(--ifm-menu-link-sublist-icon)50%/2rem 2rem;min-width:1.25rem;filter:var(--ifm-menu-link-sublist-icon-filter);width:1.25rem;height:1.25rem;transition:transform var(--ifm-transition-fast)linear;margin-left:auto;transform:rotate(180deg)}.menu__link--active,.menu__link--active:hover{color:var(--ifm-menu-color-active)}.menu__link--active:not(.menu__link--sublist){background-color:var(--ifm-menu-color-background-active)}.menu__caret{padding:var(--ifm-menu-link-padding-vertical)var(--ifm-menu-link-padding-horizontal)}.menu__caret:before{content:"";background:var(--ifm-menu-link-sublist-icon)50%/2rem 2rem;filter:var(--ifm-menu-link-sublist-icon-filter);width:1.25rem;height:1.25rem;transition:transform var(--ifm-transition-fast)linear;transform:rotate(180deg)}html[data-theme=dark],.navbar--dark{--ifm-menu-link-sublist-icon-filter:invert(100%)sepia(94%)saturate(17%)hue-rotate(223deg)brightness(104%)contrast(98%)}.navbar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-navbar-shadow);height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical)var(--ifm-navbar-padding-horizontal);display:flex}.navbar>.container,.navbar>.container-fluid{display:flex}.navbar--fixed-top{z-index:var(--ifm-z-index-fixed);position:sticky;top:0}.navbar__inner{flex-wrap:wrap;justify-content:space-between;width:100%;display:flex}.navbar__brand{color:var(--ifm-navbar-link-color);align-items:center;min-width:0;margin-right:1rem;display:flex}.navbar__brand:hover{color:var(--ifm-navbar-link-hover-color);-webkit-text-decoration:none;text-decoration:none}.navbar__title{flex:auto}.navbar__toggle{margin-right:.5rem;display:none}.navbar__logo{flex:none;height:2rem;margin-right:.5rem}.navbar__logo img{height:100%}.navbar__items{flex:1;align-items:center;min-width:0;display:flex}.navbar__items--center{flex:none}.navbar__items--center .navbar__brand{margin:0}.navbar__items--center+.navbar__items--right{flex:1}.navbar__items--right{flex:none;justify-content:flex-end}.navbar__items--right>:last-child{padding-right:0}.navbar__item{padding:var(--ifm-navbar-item-padding-vertical)var(--ifm-navbar-item-padding-horizontal);display:inline-block}.navbar__item.dropdown .navbar__link:not([href]){pointer-events:none}.navbar__link{color:var(--ifm-navbar-link-color);font-weight:var(--ifm-font-weight-semibold)}.navbar__link:hover,.navbar__link--active{color:var(--ifm-navbar-link-hover-color);-webkit-text-decoration:none;text-decoration:none}.navbar--dark,.navbar--primary{--ifm-menu-color:var(--ifm-color-gray-300);--ifm-navbar-link-color:var(--ifm-color-gray-100);--ifm-navbar-search-input-background-color:rgba(255,255,255,.1);--ifm-navbar-search-input-placeholder-color:rgba(255,255,255,.5);color:var(--ifm-color-white)}.navbar--dark{--ifm-navbar-background-color:#242526;--ifm-navbar-link-hover-color:var(--ifm-color-primary);--ifm-menu-color-background-active:rgba(255,255,255,.05);--ifm-navbar-search-input-color:var(--ifm-color-white)}.navbar--primary{--ifm-navbar-background-color:var(--ifm-color-primary);--ifm-navbar-link-hover-color:var(--ifm-color-white);--ifm-menu-color-active:var(--ifm-color-white);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-500)}.navbar__search-input{appearance:none;background:var(--ifm-navbar-search-input-background-color)var(--ifm-navbar-search-input-icon)no-repeat .75rem center/1rem 1rem;color:var(--ifm-navbar-search-input-color);cursor:text;border:none;border-radius:2rem;width:12.5rem;height:2rem;padding:0 .5rem 0 2.25rem;font-size:1rem;display:inline-block}.navbar__search-input::placeholder{color:var(--ifm-navbar-search-input-placeholder-color)}.navbar-sidebar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-global-shadow-md);opacity:0;visibility:hidden;width:var(--ifm-navbar-sidebar-width);transition-property:opacity,visibility,transform;transition-duration:var(--ifm-transition-fast);transition-timing-function:ease-in-out;position:fixed;top:0;bottom:0;left:0;overflow-x:hidden;transform:translate(-100%)}.navbar-sidebar--show .navbar-sidebar,.navbar-sidebar--show .navbar-sidebar__backdrop{opacity:1;visibility:visible}.navbar-sidebar--show .navbar-sidebar{transform:translate(0,0)}.navbar-sidebar__backdrop{opacity:0;visibility:hidden;transition-property:opacity,visibility;transition-duration:var(--ifm-transition-fast);background-color:rgba(0,0,0,.6);transition-timing-function:ease-in-out;position:fixed;inset:0}.navbar-sidebar__brand{box-shadow:var(--ifm-navbar-shadow);height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical)var(--ifm-navbar-padding-horizontal);flex:1;align-items:center;display:flex}.navbar-sidebar__items{height:calc(100% - var(--ifm-navbar-height));transition:transform var(--ifm-transition-fast)ease-in-out;display:flex;transform:translateZ(0)}.navbar-sidebar__items--show-secondary{transform:translate3d(calc((var(--ifm-navbar-sidebar-width))*-1),0,0)}.navbar-sidebar__item{width:calc(var(--ifm-navbar-sidebar-width));flex-shrink:0;padding:.5rem}.navbar-sidebar__back{background:var(--ifm-menu-color-background-active);font-size:15px;font-weight:var(--ifm-button-font-weight);text-align:left;width:calc(100% + 1rem);margin:0 0 .2rem -.5rem;padding:.6rem 1.5rem;position:relative;top:-.5rem}.navbar-sidebar__close{margin-left:auto;display:flex}.pagination{column-gap:var(--ifm-pagination-page-spacing);font-size:var(--ifm-pagination-font-size);padding-left:0;display:flex}.pagination--sm{--ifm-pagination-font-size:.8rem;--ifm-pagination-padding-horizontal:.8rem;--ifm-pagination-padding-vertical:.2rem}.pagination--lg{--ifm-pagination-font-size:1.2rem;--ifm-pagination-padding-horizontal:1.2rem;--ifm-pagination-padding-vertical:.3rem}.pagination__item{display:inline-flex}.pagination__item>span{padding:var(--ifm-pagination-padding-vertical)}.pagination__item--active .pagination__link{background:var(--ifm-pagination-item-active-background);color:var(--ifm-pagination-color-active)}.pagination__item:not(.pagination__item--active):hover .pagination__link{background:var(--ifm-pagination-item-active-background)}.pagination__item--disabled,.pagination__item[disabled]{opacity:.25;pointer-events:none}.pagination__link{border-radius:var(--ifm-pagination-border-radius);color:var(--ifm-font-color-base);padding:var(--ifm-pagination-padding-vertical)var(--ifm-pagination-padding-horizontal);transition:background var(--ifm-transition-fast)var(--ifm-transition-timing-default);display:inline-block}.pagination__link:hover{-webkit-text-decoration:none;text-decoration:none}.pagination-nav{grid-gap:var(--ifm-spacing-horizontal);gap:var(--ifm-spacing-horizontal);grid-template-columns:repeat(2,1fr);display:grid}.pagination-nav__link{border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-pagination-nav-border-radius);height:100%;line-height:var(--ifm-heading-line-height);padding:var(--ifm-global-spacing);transition:border-color var(--ifm-transition-fast)var(--ifm-transition-timing-default);display:block}.pagination-nav__link:hover{border-color:var(--ifm-pagination-nav-color-hover);-webkit-text-decoration:none;text-decoration:none}.pagination-nav__link--next{text-align:right;grid-column:2/3}.pagination-nav__label{font-size:var(--ifm-h4-font-size);font-weight:var(--ifm-heading-font-weight);word-break:break-word}.pagination-nav__link--prev .pagination-nav__label:before{content:"« "}.pagination-nav__link--next .pagination-nav__label:after{content:" »"}.pagination-nav__sublabel{color:var(--ifm-color-content-secondary);font-size:var(--ifm-h5-font-size);font-weight:var(--ifm-font-weight-semibold);margin-bottom:.25rem}.pills{gap:var(--ifm-pills-spacing);padding-left:0;display:flex}.pills__item{cursor:pointer;font-weight:var(--ifm-font-weight-bold);transition:background var(--ifm-transition-fast)var(--ifm-transition-timing-default);border-radius:.5rem;padding:.25rem 1rem;display:inline-block}.pills__item--active{background:var(--ifm-pills-color-background-active);color:var(--ifm-pills-color-active)}.pills__item:not(.pills__item--active):hover{background:var(--ifm-pills-color-background-active)}.pills--block{justify-content:stretch}.pills--block .pills__item{text-align:center;flex-grow:1}.tabs{color:var(--ifm-tabs-color);font-weight:var(--ifm-font-weight-bold);margin-bottom:0;padding-left:0;display:flex;overflow-x:auto}.tabs__item{border-radius:var(--ifm-global-radius);cursor:pointer;padding:var(--ifm-tabs-padding-vertical)var(--ifm-tabs-padding-horizontal);transition:background-color var(--ifm-transition-fast)var(--ifm-transition-timing-default);border-bottom:3px solid transparent;display:inline-flex}.tabs__item--active{border-bottom-color:var(--ifm-tabs-color-active-border);color:var(--ifm-tabs-color-active);border-bottom-right-radius:0;border-bottom-left-radius:0}.tabs__item:hover{background-color:var(--ifm-hover-overlay)}.tabs--block{justify-content:stretch}.tabs--block .tabs__item{flex-grow:1;justify-content:center}html[data-theme=dark]{--ifm-color-scheme:dark;--ifm-color-emphasis-0:var(--ifm-color-gray-1000);--ifm-color-emphasis-100:var(--ifm-color-gray-900);--ifm-color-emphasis-200:var(--ifm-color-gray-800);--ifm-color-emphasis-300:var(--ifm-color-gray-700);--ifm-color-emphasis-400:var(--ifm-color-gray-600);--ifm-color-emphasis-500:var(--ifm-color-gray-500);--ifm-color-emphasis-600:var(--ifm-color-gray-400);--ifm-color-emphasis-700:var(--ifm-color-gray-300);--ifm-color-emphasis-800:var(--ifm-color-gray-200);--ifm-color-emphasis-900:var(--ifm-color-gray-100);--ifm-color-emphasis-1000:var(--ifm-color-gray-0);--ifm-background-color:#1b1b1d;--ifm-background-surface-color:#242526;--ifm-hover-overlay:rgba(255,255,255,.05);--ifm-color-content:#e3e3e3;--ifm-color-content-secondary:#fff;--ifm-breadcrumb-separator-filter:invert(64%)sepia(11%)saturate(0%)hue-rotate(149deg)brightness(99%)contrast(95%);--ifm-code-background:rgba(255,255,255,.1);--ifm-scrollbar-track-background-color:#444;--ifm-scrollbar-thumb-background-color:#686868;--ifm-scrollbar-thumb-hover-background-color:#7a7a7a;--ifm-table-stripe-background:rgba(255,255,255,.07);--ifm-toc-border-color:var(--ifm-color-emphasis-200);--ifm-color-primary-contrast-background:#102445;--ifm-color-primary-contrast-foreground:#ebf2fc;--ifm-color-secondary-contrast-background:#474748;--ifm-color-secondary-contrast-foreground:#fdfdfe;--ifm-color-success-contrast-background:#003100;--ifm-color-success-contrast-foreground:#e6f6e6;--ifm-color-info-contrast-background:#193c47;--ifm-color-info-contrast-foreground:#eef9fd;--ifm-color-warning-contrast-background:#4d3800;--ifm-color-warning-contrast-foreground:#fff8e6;--ifm-color-danger-contrast-background:#4b1113;--ifm-color-danger-contrast-foreground:#ffebec}@media (width>=1440px){.container{max-width:var(--ifm-container-width-xl)}}@media (width<=996px){.col{--ifm-col-width:100%;flex-basis:var(--ifm-col-width);margin-left:0}.footer{--ifm-footer-padding-horizontal:0}.footer__link-separator{display:none}.footer__col{margin-bottom:calc(var(--ifm-spacing-vertical)*3)}.footer__link-item{width:max-content;display:block}.hero{padding-left:0;padding-right:0}.navbar>.container,.navbar>.container-fluid{padding:0}.navbar__toggle{display:inherit}.navbar__item{display:none}.navbar__search-input{width:9rem}.pills--block,.tabs--block{flex-direction:column}}@media (width<=576px){.markdown h1:first-child{--ifm-h1-font-size:2rem}.markdown>h2{--ifm-h2-font-size:1.5rem}.markdown>h3{--ifm-h3-font-size:1.25rem}}@media (pointer:fine){.thin-scrollbar{scrollbar-width:thin}.thin-scrollbar::-webkit-scrollbar{height:var(--ifm-scrollbar-size);width:var(--ifm-scrollbar-size)}.thin-scrollbar::-webkit-scrollbar-track{background:var(--ifm-scrollbar-track-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb{background:var(--ifm-scrollbar-thumb-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb:hover{background:var(--ifm-scrollbar-thumb-hover-background-color)}}@media (prefers-reduced-motion:reduce){:root{--ifm-transition-fast:0s;--ifm-transition-slow:0s}}@media print{.table-of-contents,.footer,.menu,.navbar,.pagination-nav{display:none}.tabs{page-break-inside:avoid}}}@layer docusaurus.theme-common{.themedComponent_dt6d{display:none}[data-theme=light] .themedComponent--light_XcPj,[data-theme=dark] .themedComponent--dark_QMpS,html:not([data-theme]) .themedComponent--light_XcPj{display:initial}.errorBoundaryError_PTLG{white-space:pre-wrap;color:red}.errorBoundaryFallback_wFxy{color:red;padding:.55rem}.anchorTargetStickyNavbar_zfeO{scroll-margin-top:calc(var(--ifm-navbar-height) + .5rem)}.anchorTargetHideOnScrollNavbar_Lo9g{scroll-margin-top:.5rem}.details_hSk0{--docusaurus-details-summary-arrow-size:.38rem;--docusaurus-details-transition:transform .2s ease;--docusaurus-details-decoration-color:grey}.details_hSk0>summary{cursor:pointer;padding-left:1rem;list-style:none;position:relative}.details_hSk0>summary::-webkit-details-marker{display:none}.details_hSk0>summary:before{content:"";border-width:var(--docusaurus-details-summary-arrow-size);border-style:solid;border-color:transparent transparent transparent var(--docusaurus-details-decoration-color);transition:var(--docusaurus-details-transition);transform-origin:calc(var(--docusaurus-details-summary-arrow-size)/2)50%;position:absolute;top:.45rem;left:0;transform:rotate(0)}.details_hSk0[open]:not(.isBrowser_J20b)>summary:before,.details_hSk0[data-collapsed=false].isBrowser_J20b>summary:before{transform:rotate(90deg)}.collapsibleContent_leZz{border-top:1px solid var(--docusaurus-details-decoration-color);margin-top:1rem;padding-top:1rem}.collapsibleContent_leZz p:last-child,.details_hSk0>summary>p:last-child{margin-bottom:0}}@layer docusaurus.theme-classic{:root{--docusaurus-progress-bar-color:var(--ifm-color-primary)}#nprogress{pointer-events:none}#nprogress .bar{background:var(--docusaurus-progress-bar-color);z-index:1031;width:100%;height:2px;position:fixed;top:0;left:0}#nprogress .peg{width:100px;height:100%;box-shadow:0 0 10px var(--docusaurus-progress-bar-color),0 0 5px var(--docusaurus-progress-bar-color);opacity:1;position:absolute;right:0;transform:rotate(3deg)translateY(-4px)}.skipToContent_Sb3a{z-index:calc(var(--ifm-z-index-fixed) + 1);padding:calc(var(--ifm-global-spacing)/2)var(--ifm-global-spacing);color:var(--ifm-color-emphasis-900);background-color:var(--ifm-background-surface-color);position:fixed;top:1rem;left:100%}.skipToContent_Sb3a:focus{box-shadow:var(--ifm-global-shadow-md);left:1rem}.closeButton_Z3pV{padding:0;line-height:0}.content_PfKe{text-align:center;padding:5px 0;font-size:85%}.content_PfKe a{color:inherit;-webkit-text-decoration:underline;text-decoration:underline}:root{--docusaurus-announcement-bar-height:auto}.announcementBar_Ksje{height:var(--docusaurus-announcement-bar-height);background-color:var(--ifm-color-white);color:var(--ifm-color-black);border-bottom:1px solid var(--ifm-color-emphasis-100);align-items:center;display:flex}html[data-announcement-bar-initially-dismissed=true] .announcementBar_Ksje{display:none}.announcementBarPlaceholder_WRLw{flex:0 0 10px}.announcementBarClose_cgcS{flex:0 0 30px;align-self:stretch}.announcementBarContent_kCy3{flex:auto}@media print{.announcementBar_Ksje{display:none}}@media (width>=997px){:root{--docusaurus-announcement-bar-height:30px}.announcementBarPlaceholder_WRLw,.announcementBarClose_cgcS{flex-basis:50px}}.toggle_WfRr{width:2rem;height:2rem}.toggleButton_qxDU{-webkit-tap-highlight-color:transparent;width:100%;height:100%;transition:background var(--ifm-transition-fast);border-radius:50%;justify-content:center;align-items:center;display:flex}.toggleButton_qxDU:hover{background:var(--ifm-color-emphasis-200)}.toggleIcon_SFy4{display:none}[data-theme-choice=system] .systemToggleIcon_gB86,[data-theme-choice=light] .lightToggleIcon_r_0k,[data-theme-choice=dark] .darkToggleIcon_pwnq{display:initial}.toggleButtonDisabled_MZUj{cursor:not-allowed}.darkNavbarColorModeToggle_0mhA:hover{background:var(--ifm-color-gray-800)}.iconExternalLink_zdlW{margin-left:.3rem}.dropdownNavbarItemMobile_dOUG{cursor:pointer}.iconLanguage_WQbe{vertical-align:text-bottom;margin-right:5px}.navbarSearchContainer_Pcjl:empty{display:none}@media (width<=996px){.navbarSearchContainer_Pcjl{right:var(--ifm-navbar-padding-horizontal);position:absolute}}@media (width>=997px){.navbarSearchContainer_Pcjl{padding:0 var(--ifm-navbar-item-padding-horizontal)}}.navbarHideable_UrdD{transition:transform var(--ifm-transition-fast)ease}.navbarHidden_z2Ap{transform:translateY(calc(-100% - 2px))}@media (width<=996px){.colorModeToggle_oVbE{display:none}}.navbar__items--right>:last-child{padding-right:0}.footerLogoLink_jCuZ{opacity:.5;transition:opacity var(--ifm-transition-fast)var(--ifm-transition-timing-default)}.footerLogoLink_jCuZ:hover{opacity:1}.hash-link{opacity:0;transition:opacity var(--ifm-transition-fast);-webkit-user-select:none;user-select:none;padding-left:.5rem}.hash-link:before{content:"#"}.hash-link:focus,:hover>.hash-link{opacity:1}html,body{height:100%}.mainWrapper_BsZ3{flex-direction:column;flex:1 0 auto;display:flex}.docusaurus-mt-lg{margin-top:3rem}#__docusaurus{flex-direction:column;min-height:100%;display:flex}:root{--docusaurus-tag-list-border:var(--ifm-color-emphasis-300)}.tag_lOWp{border:1px solid var(--docusaurus-tag-list-border);transition:border var(--ifm-transition-fast)}.tag_lOWp:hover{--docusaurus-tag-list-border:var(--ifm-link-color);-webkit-text-decoration:none;text-decoration:none}.tagRegular_JOmO{border-radius:var(--ifm-global-radius);padding:.2rem .5rem .3rem;font-size:90%}.tagWithCount_db5V{border-left:0;align-items:center;padding:0 .5rem 0 1rem;display:flex;position:relative}.tagWithCount_db5V:before,.tagWithCount_db5V:after{content:"";border:1px solid var(--docusaurus-tag-list-border);transition:inherit;position:absolute;top:50%}.tagWithCount_db5V:before{border-bottom:0;border-right:0;width:1.18rem;height:1.18rem;right:100%;transform:translate(50%,-50%)rotate(-45deg)}.tagWithCount_db5V:after{border-radius:50%;width:.5rem;height:.5rem;left:0;transform:translateY(-50%)}.tagWithCount_db5V span{background:var(--ifm-color-secondary);color:var(--ifm-color-black);border-radius:var(--ifm-global-radius);margin-left:.3rem;padding:.1rem .4rem;font-size:.7rem;line-height:1.2}.tags_ZMMK{display:inline}.tag_kkNk{margin:0 .4rem .5rem 0;display:inline-block}.iconEdit_OVCj{vertical-align:sub;margin-right:.3em}.lastUpdated_V1Ko{margin-top:.2rem;font-size:smaller;font-style:italic}@media (width>=997px){.lastUpdated_V1Ko{text-align:right}}@media print{.noPrint_zwwA{display:none}}.tocCollapsibleButton_pqXY{font-size:inherit;justify-content:space-between;align-items:center;width:100%;padding:.4rem .8rem;display:flex}.tocCollapsibleButton_pqXY:after{content:"";background:var(--ifm-menu-link-sublist-icon)50% 50%/2rem 2rem no-repeat;filter:var(--ifm-menu-link-sublist-icon-filter);width:1.25rem;height:1.25rem;transition:transform var(--ifm-transition-fast);transform:rotate(180deg)}.tocCollapsibleButtonExpanded_WWn8:after{transform:none}.tocCollapsible_xf3c{background-color:var(--ifm-menu-color-background-active);border-radius:var(--ifm-global-radius);margin:1rem 0}.tocCollapsibleContent_Ibyg>ul{border-left:none;border-top:1px solid var(--ifm-color-emphasis-300);padding:.2rem 0;font-size:15px}.tocCollapsibleContent_Ibyg ul li{margin:.4rem .8rem}.tocCollapsibleContent_Ibyg a{display:block}.tocCollapsibleExpanded_VQ3o{transform:none}@media (width>=997px){.tocMobile_OEfg{display:none}}@media print{.tocMobile_OEfg{display:none}}.tableOfContents_fdog{max-height:calc(100vh - (var(--ifm-navbar-height) + 2rem));top:calc(var(--ifm-navbar-height) + 1rem);position:sticky;overflow-y:auto}@media (width<=996px){.tableOfContents_fdog{display:none}.docItemContainer_g607{padding:0 .3rem}}.codeBlockContainer_AFDL{background:var(--prism-background-color);color:var(--prism-color);margin-bottom:var(--ifm-leading);box-shadow:var(--ifm-global-shadow-lw);border-radius:var(--ifm-code-border-radius)}.codeBlock_fCJ5{--ifm-pre-background:var(--prism-background-color);margin:0;padding:0}.codeBlockStandalone_Tyu2{padding:0}.codeBlockLines_HQxl{font:inherit;float:left;min-width:100%;padding:var(--ifm-pre-padding)}.codeBlockLinesWithNumbering_QPzx{padding:var(--ifm-pre-padding)0;display:table}@media print{.codeBlockLines_HQxl{white-space:pre-wrap}}:where(:root){--docusaurus-highlighted-code-line-bg:#484d5b}:where([data-theme=dark]){--docusaurus-highlighted-code-line-bg:#646464}.theme-code-block-highlighted-line{background-color:var(--docusaurus-highlighted-code-line-bg);margin:0 calc(-1*var(--ifm-pre-padding));padding:0 var(--ifm-pre-padding);display:block}.codeLine_hqnj{counter-increment:line-count;display:table-row}.codeLineNumber_unZU{text-align:right;width:1%;padding:0 var(--ifm-pre-padding);background:var(--ifm-pre-background);overflow-wrap:normal;display:table-cell;position:sticky;left:0}.codeLineNumber_unZU:before{content:counter(line-count);opacity:.4}.theme-code-block-highlighted-line .codeLineNumber_unZU:before{opacity:.8}.codeLineContent_CLzY{padding-right:var(--ifm-pre-padding)}.theme-code-block:hover .copyButtonCopied_LX3f{opacity:1!important}.copyButtonIcons_MDo9{width:1.125rem;height:1.125rem;position:relative}.copyButtonIcon_DToO,.copyButtonSuccessIcon_FJJa{fill:currentColor;opacity:inherit;width:inherit;height:inherit;transition:all var(--ifm-transition-fast)ease;position:absolute;top:0;left:0}.copyButtonSuccessIcon_FJJa{opacity:0;color:#00d600;top:50%;left:50%;transform:translate(-50%,-50%)scale(.33)}.copyButtonCopied_LX3f .copyButtonIcon_DToO{opacity:0;transform:scale(.33)}.copyButtonCopied_LX3f .copyButtonSuccessIcon_FJJa{opacity:1;transition-delay:75ms;transform:translate(-50%,-50%)scale(1)}.wordWrapButtonIcon_IGU7{width:1.2rem;height:1.2rem}.wordWrapButtonEnabled_KNlb .wordWrapButtonIcon_IGU7{color:var(--ifm-color-primary)}.buttonGroup_GIQh{right:calc(var(--ifm-pre-padding)/2);top:calc(var(--ifm-pre-padding)/2);column-gap:.2rem;display:flex;position:absolute}.buttonGroup_GIQh button{background:var(--prism-background-color);color:var(--prism-color);border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-global-radius);transition:opacity var(--ifm-transition-fast)ease-in-out;opacity:0;align-items:center;padding:.4rem;line-height:0;display:flex}.buttonGroup_GIQh button:hover{opacity:1!important}.buttonGroup_GIQh button:focus-visible{opacity:1!important}.theme-code-block:hover .buttonGroup_GIQh button{opacity:.4}.codeBlockContent_tC79{border-radius:inherit;direction:ltr;position:relative}.codeBlockTitle_V9T2{border-bottom:1px solid var(--ifm-color-emphasis-300);font-size:var(--ifm-code-font-size);padding:.75rem var(--ifm-pre-padding);border-top-left-radius:inherit;border-top-right-radius:inherit;font-weight:500}.codeBlockTitle_V9T2+.codeBlockContent_tC79 .codeBlock_aN2u{border-top-left-radius:0;border-top-right-radius:0}.details_J0lR{--docusaurus-details-decoration-color:var(--ifm-alert-border-color);--docusaurus-details-transition:transform var(--ifm-transition-fast)ease;margin:0 0 var(--ifm-spacing-vertical);border:1px solid var(--ifm-alert-border-color)}.containsTaskList_KB3F{list-style:none}:not(.containsTaskList_KB3F>li)>.containsTaskList_KB3F{padding-left:0}.img_ha2v{height:auto}.admonition_uVyA{margin-bottom:1em}.admonitionHeading_mHFO{font:var(--ifm-heading-font-weight)var(--ifm-h5-font-size)/var(--ifm-heading-line-height)var(--ifm-heading-font-family);text-transform:uppercase}.admonitionHeading_mHFO:not(:last-child){margin-bottom:.3rem}.admonitionHeading_mHFO code{text-transform:none}.admonitionIcon_wzHy{vertical-align:middle;margin-right:.4em;display:inline-block}.admonitionIcon_wzHy svg{width:1.6em;height:1.6em;fill:var(--ifm-alert-foreground-color);display:inline-block}.admonitionContent_VCOm>:last-child{margin-bottom:0}.breadcrumbHomeIcon_Ripd{vertical-align:top;width:1.1rem;height:1.1rem;position:relative;top:1px}.breadcrumbsContainer_DwGs{--ifm-breadcrumb-size-multiplier:.8;margin-bottom:.8rem}.docItemContainer_FZQ_ header+*,.docItemContainer_FZQ_ article>:first-child{margin-top:0}@media (width>=997px){.docItemCol_I2C9{max-width:75%!important}}.tabList_f3wh{margin-bottom:var(--ifm-leading)}.tabItem_Xg_G{margin-top:0!important}.tabItem_vIHf>:last-child{margin-bottom:0}.backToTopButton_FsEm{background-color:var(--ifm-color-emphasis-200);width:3rem;height:3rem;z-index:calc(var(--ifm-z-index-fixed) - 1);box-shadow:var(--ifm-global-shadow-lw);transition:all var(--ifm-transition-fast)var(--ifm-transition-timing-default);opacity:0;visibility:hidden;border-radius:50%;position:fixed;bottom:1.3rem;right:1.3rem;transform:scale(0)}.backToTopButton_FsEm:after{content:" ";-webkit-mask:var(--ifm-menu-link-sublist-icon)50%/2rem 2rem no-repeat;-webkit-mask:var(--ifm-menu-link-sublist-icon)50%/2rem 2rem no-repeat;mask:var(--ifm-menu-link-sublist-icon)50%/2rem 2rem no-repeat;background-color:var(--ifm-color-emphasis-1000);width:100%;height:100%;display:inline-block}@media (hover:hover){.backToTopButton_FsEm:hover{background-color:var(--ifm-color-emphasis-300)}}.backToTopButtonShow_giG6{opacity:1;visibility:visible;transform:scale(1)}:root{--docusaurus-collapse-button-bg:transparent;--docusaurus-collapse-button-bg-hover:rgba(0,0,0,.1)}[data-theme=dark]:root{--docusaurus-collapse-button-bg:rgba(255,255,255,.05);--docusaurus-collapse-button-bg-hover:rgba(255,255,255,.1)}@media (width>=997px){.collapseSidebarButton_w0wb{background-color:var(--docusaurus-collapse-button-bg);border:1px solid var(--ifm-toc-border-color);border-radius:0;height:40px;position:sticky;bottom:0;display:block!important}.collapseSidebarButtonIcon_FFLl{margin-top:4px;transform:rotate(180deg)}[dir=rtl] .collapseSidebarButtonIcon_FFLl{transform:rotate(0)}.collapseSidebarButton_w0wb:hover,.collapseSidebarButton_w0wb:focus{background-color:var(--docusaurus-collapse-button-bg-hover)}}.collapseSidebarButton_w0wb{margin:0;display:none}.menuExternalLink_NMyC{align-items:center}.linkLabel_TUNj{line-clamp:2;-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.categoryLink_aOsC{overflow:hidden}.menu__link--sublist-caret:after{margin-left:var(--ifm-menu-link-padding-vertical)}.categoryLinkLabel_Tfj5{line-clamp:2;-webkit-line-clamp:2;-webkit-box-orient:vertical;flex:1;display:-webkit-box;overflow:hidden}@media (width>=997px){.menuHtmlItem_MVsW{padding:var(--ifm-menu-link-padding-vertical)var(--ifm-menu-link-padding-horizontal)}.menu_ahLp{flex-grow:1;padding:.5rem}@supports (scrollbar-gutter:stable){.menu_ahLp{scrollbar-gutter:stable;padding:.5rem 0 .5rem .5rem}}.menuWithAnnouncementBar_dWTH{margin-bottom:var(--docusaurus-announcement-bar-height)}.sidebar_RCgn{height:100%;padding-top:var(--ifm-navbar-height);width:var(--doc-sidebar-width);flex-direction:column;display:flex}.sidebarWithHideableNavbar_fv1g{padding-top:0}.sidebarHidden_ol4A{opacity:0;visibility:hidden}.sidebarLogo_JcJp{margin:0 var(--ifm-navbar-padding-horizontal);min-height:var(--ifm-navbar-height);max-height:var(--ifm-navbar-height);align-items:center;color:inherit!important;-webkit-text-decoration:none!important;text-decoration:none!important;display:flex!important}.sidebarLogo_JcJp img{height:2rem;margin-right:.5rem}}.sidebarLogo_JcJp{display:none}@media (width>=997px){.expandButton_myCd{width:100%;height:100%;transition:background-color var(--ifm-transition-fast)ease;background-color:var(--docusaurus-collapse-button-bg);justify-content:center;align-items:center;display:flex;position:absolute;top:0;right:0}.expandButton_myCd:hover,.expandButton_myCd:focus{background-color:var(--docusaurus-collapse-button-bg-hover)}.expandButtonIcon_EBqf{transform:rotate(0)}[dir=rtl] .expandButtonIcon_EBqf{transform:rotate(180deg)}}:root{--doc-sidebar-width:300px;--doc-sidebar-hidden-width:30px}.docSidebarContainer_i4lw{display:none}@media (width>=997px){.docSidebarContainer_i4lw{width:var(--doc-sidebar-width);margin-top:calc(-1*var(--ifm-navbar-height));border-right:1px solid var(--ifm-toc-border-color);will-change:width;transition:width var(--ifm-transition-fast)ease;clip-path:inset(0);display:block}.docSidebarContainerHidden_PddN{width:var(--doc-sidebar-hidden-width);cursor:pointer}.sidebarViewport_LX4L{height:100%;max-height:100vh;position:sticky;top:0}}.docMainContainer_Tq_9{width:100%;display:flex}@media (width>=997px){.docMainContainer_Tq_9{max-width:calc(100% - var(--doc-sidebar-width));flex-grow:1}.docMainContainerEnhanced_oea5{max-width:calc(100% - var(--doc-sidebar-hidden-width))}.docItemWrapperEnhanced_v22d{max-width:calc(var(--ifm-container-width) + var(--doc-sidebar-width))!important}}.docRoot_dSts{width:100%;display:flex}.docsWrapper_pyt2{flex:1 0 auto;display:flex}}@layer docusaurus.core{#__docusaurus-base-url-issue-banner-container{display:none}}@layer docusaurus.plugin-debug,docusaurus.theme-mermaid,docusaurus.theme-live-codeblock,docusaurus.theme-search-algolia.docsearch,docusaurus.theme-search-algolia;:root{--ifm-font-family-base:"Outfit","Noto Sans SC",system-ui,sans-serif;--ifm-heading-font-family:"Outfit","Noto Sans SC",system-ui,sans-serif;--ifm-color-primary:#1677ff;--ifm-color-primary-dark:#0958d9;--ifm-color-primary-darker:#003eb3;--ifm-color-primary-darkest:#002c8c;--ifm-color-primary-light:#4096ff;--ifm-color-primary-lighter:#69b1ff;--ifm-color-primary-lightest:#91caff;--ifm-code-font-size:95%;--docusaurus-highlighted-code-line-bg:rgba(0,0,0,.1);--orbien-hero-bg:#fff;--orbien-panel-bg:#fff;--orbien-panel-border:rgba(15,23,42,.08);--orbien-code-bg:#0f172a;--orbien-code-fg:#e2e8f0;--orbien-card-bg:#f1f5f9;--orbien-card-border:rgba(15,23,42,.06)}[data-theme=dark]{--ifm-color-primary:#69b1ff;--ifm-color-primary-dark:#4096ff;--ifm-color-primary-darker:#1677ff;--ifm-color-primary-darkest:#0958d9;--ifm-color-primary-light:#91caff;--ifm-color-primary-lighter:#bae0ff;--ifm-color-primary-lightest:#e6f4ff;--docusaurus-highlighted-code-line-bg:rgba(0,0,0,.3);--ifm-background-color:#0b1220;--ifm-background-surface-color:#111827;--ifm-navbar-background-color:#0b1220;--ifm-footer-background-color:#080d16;--orbien-hero-bg:#0b1220;--orbien-panel-bg:#111827;--orbien-panel-border:rgba(148,163,184,.14);--orbien-code-bg:#020617;--orbien-code-fg:#e2e8f0;--orbien-card-bg:#111827;--orbien-card-border:rgba(148,163,184,.12)}.navbar__title{letter-spacing:-.02em;font-weight:700}.navbar__logo img{border-radius:6px}[data-theme=dark] .navbar{box-shadow:none;border-bottom:1px solid rgba(148,163,184,.1)}[data-theme=dark] .footer{border-top:1px solid rgba(148,163,184,.1)}.features_t9lD{background:var(--orbien-hero-bg);align-items:center;width:100%;padding:.75rem 0 4rem;display:flex}.features_t9lD .container{box-sizing:border-box;max-width:1280px;margin:0 auto;padding-inline:clamp(1.25rem + 30px,4vw + 30px,2.5rem + 30px)}@media screen and (width<=996px){.features_t9lD .container{padding-inline:clamp(1.25rem + 30px,5vw + 30px,1.75rem + 30px)}}.featureCol_P0tX{margin-bottom:1.25rem}.featureCard_QAQr{background:var(--orbien-card-bg);border:1px solid var(--orbien-card-border);border-radius:14px;height:100%;padding:1.35rem 1.4rem 1.45rem;transition:transform .2s,box-shadow .2s,border-color .2s}.featureCard_QAQr:hover{border-color:rgba(22,119,255,.35);transform:translateY(-3px);box-shadow:0 12px 28px rgba(15,23,42,.08)}[data-theme=dark] .featureCard_QAQr:hover{border-color:rgba(105,177,255,.28);box-shadow:0 12px 28px rgba(0,0,0,.35)}.featureTitle_L1YZ{letter-spacing:-.01em;margin:0;font-size:1.15rem;font-weight:700}.featureDesc_qOCZ{color:var(--ifm-color-emphasis-700);margin:.65rem 0 0;font-size:.95rem;line-height:1.6}[data-theme=dark] .featureDesc_qOCZ{color:#94a3b8}.hero_aEcG{background:var(--orbien-hero-bg);padding:3.5rem 0 1.75rem;position:relative;overflow:hidden}[data-theme=dark] .hero_aEcG{border-bottom:1px solid var(--orbien-panel-border)}.heroInner_V4lS{box-sizing:border-box;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);align-items:center;gap:clamp(1.75rem,3.5vw,3rem);width:100%;max-width:1280px;margin:0 auto;padding-inline:clamp(1.25rem + 30px,4vw + 30px,2.5rem + 30px);display:grid}.heroCopy_zvrZ{min-width:0}.heroBrand_lo5f{letter-spacing:-.035em;margin:0;font-size:clamp(2.9rem,6.2vw,4.4rem);font-weight:800;line-height:1.05}.brandOrb_BOug{color:var(--ifm-color-primary)}.brandRest_mNh6{color:#64748b}[data-theme=dark] .brandOrb_BOug{color:var(--ifm-color-primary-light)}[data-theme=dark] .brandRest_mNh6{color:#94a3b8}.heroTagline_QIlK{letter-spacing:-.02em;color:var(--ifm-font-color-base);margin:.85rem 0 0;font-size:clamp(1.45rem,3vw,2rem);font-weight:700}.heroDesc_pApI{max-width:36rem;color:var(--ifm-color-emphasis-700);margin:1rem 0 0;font-size:1.05rem;line-height:1.65}[data-theme=dark] .heroDesc_pApI{color:#94a3b8}.heroActions_Z2kl{flex-wrap:wrap;gap:.75rem;margin-top:1.75rem;display:flex}.btnPrimary_hBjO{font-weight:700;background:var(--ifm-color-primary)!important;border-color:var(--ifm-color-primary)!important;color:#fff!important}.btnPrimary_hBjO:hover{background:var(--ifm-color-primary-dark)!important;border-color:var(--ifm-color-primary-dark)!important;color:#fff!important}.btnSecondary_mRVh{font-weight:600;background:var(--ifm-color-emphasis-200)!important;color:var(--ifm-font-color-base)!important;border-color:transparent!important}.btnSecondary_mRVh:hover{background:var(--ifm-color-emphasis-300)!important;color:var(--ifm-font-color-base)!important}[data-theme=dark] .btnSecondary_mRVh{color:#e2e8f0!important;background:#1e293b!important}[data-theme=dark] .btnSecondary_mRVh:hover{color:#f8fafc!important;background:#334155!important}.btnGitHub_RNrN{font-weight:700;color:#fff!important;background:#24292f!important;border-color:#24292f!important}.btnGitHub_RNrN:hover{color:#fff!important;background:#0d1117!important;border-color:#0d1117!important}[data-theme=dark] .btnGitHub_RNrN{color:#0d1117!important;background:#f0f6fc!important;border-color:#f0f6fc!important}[data-theme=dark] .btnGitHub_RNrN:hover{color:#0d1117!important;background:#fff!important;border-color:#fff!important}.heroVisual_DvAS{justify-content:flex-end;min-width:0;display:flex}.heroShot_o6Lk{width:min(100%,620px);animation:.8s both floatIn_ZPtN;position:relative}.heroShotGlow_lUhG{display:none}.heroShotImg_WlKk{z-index:1;vertical-align:middle;border:1px solid var(--orbien-panel-border);background:var(--orbien-panel-bg);border-radius:14px;width:100%;height:auto;transition:transform .35s,box-shadow .35s;position:relative;transform:perspective(1200px)rotateY(-4deg)rotateX(2deg);box-shadow:0 28px 64px rgba(15,23,42,.14),inset 0 2px rgba(255,255,255,.35)}.heroShot_o6Lk:hover .heroShotImg_WlKk{transform:perspective(1200px)rotateY(-1deg)rotateX(.5deg)translateY(-2px);box-shadow:0 32px 72px rgba(15,23,42,.18),inset 0 2px rgba(255,255,255,.35)}[data-theme=dark] .heroShotImg_WlKk{box-shadow:0 20px 48px rgba(0,0,0,.45),inset 0 1px rgba(255,255,255,.04)}[data-theme=dark] .heroShot_o6Lk:hover .heroShotImg_WlKk{box-shadow:0 24px 56px rgba(0,0,0,.55),inset 0 1px rgba(255,255,255,.06)}@keyframes floatIn_ZPtN{0%{opacity:0;transform:translateY(18px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@media (prefers-reduced-motion:reduce){.heroShot_o6Lk{animation:none}.heroShotImg_WlKk,.heroShot_o6Lk:hover .heroShotImg_WlKk{transition:none;transform:none}}.desktop_esma{background:var(--orbien-hero-bg);padding:.5rem 0 4rem}[data-theme=dark] .desktop_esma{border-top:1px solid var(--orbien-panel-border)}.desktopInner_HU24{box-sizing:border-box;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);align-items:center;gap:clamp(1.75rem,3.5vw,3rem);width:100%;max-width:1280px;margin:0 auto;padding-inline:clamp(1.25rem + 30px,4vw + 30px,2.5rem + 30px);display:grid}.desktopCopy_t7Jm{min-width:0}.desktopEyebrow_BMjU{letter-spacing:.04em;text-transform:uppercase;color:var(--ifm-color-primary);margin:0;font-size:.85rem;font-weight:700}.desktopTitle_nOuY{letter-spacing:-.025em;margin:.55rem 0 0;font-size:clamp(1.65rem,3vw,2.15rem);font-weight:800;line-height:1.2}.desktopDesc_SAxO{max-width:32rem;color:var(--ifm-color-emphasis-700);margin:.9rem 0 1.35rem;font-size:1.02rem;line-height:1.65}[data-theme=dark] .desktopDesc_SAxO{color:#94a3b8}.desktopVisual_cX6h{min-width:0}.desktopFrame_bqGN{border:1px solid var(--orbien-panel-border);background:var(--orbien-panel-bg);border-radius:16px;width:min(100%,680px);margin-inline:auto;overflow:hidden;box-shadow:0 22px 48px rgba(15,23,42,.1)}[data-theme=dark] .desktopFrame_bqGN{box-shadow:0 16px 40px rgba(0,0,0,.4)}.desktopGif_kMRW{vertical-align:middle;width:100%;height:auto;display:block}@media screen and (width<=996px){.hero_aEcG{padding:2rem 0}.heroInner_V4lS{grid-template-columns:1fr;gap:2.25rem;padding-inline:clamp(1.25rem + 30px,5vw + 30px,1.75rem + 30px)}.heroVisual_DvAS{order:-1;justify-content:center}.heroShot_o6Lk{width:min(100%,560px)}.heroShotImg_WlKk,.heroShot_o6Lk:hover .heroShotImg_WlKk{transform:none}.desktop_esma{padding:.25rem 0 3rem}.desktopInner_HU24{grid-template-columns:1fr;gap:1.5rem;padding-inline:clamp(1.25rem + 30px,5vw + 30px,1.75rem + 30px)}.desktopVisual_cX6h{order:-1}.desktopFrame_bqGN{width:min(100%,560px)}}.wrap_B6Is{min-width:0;max-width:100%;margin:1.25rem 0 2rem}.toolbar_cmsD{flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:1rem;display:flex}.version_GkO4{color:var(--ifm-color-primary-dark);background:rgba(22,119,255,.12);border:1px solid rgba(22,119,255,.25);border-radius:999px;align-items:center;padding:.28rem .7rem;font-size:.85rem;font-weight:700;display:inline-flex}.releasesLink_uGnU{font-size:.9rem;font-weight:600}.tableScroll_RwJY{border:1px solid var(--orbien-card-border);background:var(--orbien-panel-bg);border-radius:14px;overflow-x:auto}.table_z95A{border-collapse:collapse;width:100%;margin:0;font-size:.92rem;display:table}.table_z95A thead th{background:var(--orbien-card-bg);text-align:left;border-bottom:1px solid var(--orbien-card-border);white-space:nowrap;padding:.75rem .9rem;font-weight:700;position:sticky;top:0}.table_z95A td{border-bottom:1px solid var(--orbien-card-border);vertical-align:middle;padding:.7rem .9rem}.table_z95A tbody tr:last-child td{border-bottom:none}.osCell_btT0{white-space:nowrap;background:linear-gradient(90deg,rgba(22,119,255,.06),transparent 80%);font-weight:700}.rowHighlight_Rqix td{background:rgba(22,119,255,.05)}.badge_x6zy{letter-spacing:.02em;background:var(--ifm-color-primary);white-space:nowrap;border-radius:8px;justify-content:center;align-items:center;min-width:4.8rem;padding:.28rem .65rem;font-size:.78rem;font-weight:700;transition:transform .12s,filter .12s;display:inline-flex;color:#fff!important;-webkit-text-decoration:none!important;text-decoration:none!important}.badge_x6zy:hover{filter:brightness(1.05);transform:translateY(-1px);color:#fff!important;-webkit-text-decoration:none!important;text-decoration:none!important}.missing_ODsB{color:var(--ifm-color-emphasis-500);font-weight:600}.libcTag_lP5V{font-size:.85em}.note_heJW{color:var(--ifm-color-emphasis-700);max-width:14rem;font-size:.85rem;line-height:1.45}.docker_YIhP{border:1px solid var(--orbien-card-border);background:var(--orbien-card-bg);border-radius:14px;min-width:0;max-width:100%;margin-top:1.75rem;padding:1.15rem 1.2rem 1.25rem}.docker_YIhP h3{margin:0 0 .85rem;font-size:1.05rem}.dockerList_T7jC{flex-direction:column;gap:.75rem;min-width:0;margin:0;padding:0;list-style:none;display:flex}.dockerItem_OmD2{background:var(--orbien-panel-bg);border:1px solid var(--orbien-card-border);border-radius:12px;min-width:0;padding:.8rem .9rem}.dockerMeta_so8T{flex-wrap:wrap;align-items:center;gap:.45rem;margin-bottom:.5rem;display:flex}.dockerMeta_so8T strong{font-size:.92rem}.dockerTag_NGl6{letter-spacing:.02em;color:var(--ifm-color-primary-dark);background:rgba(22,119,255,.12);border-radius:999px;padding:.12rem .45rem;font-size:.72rem;font-weight:700}.dockerCmd_lfBm{box-sizing:border-box;white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;background:var(--orbien-code-bg);width:100%;color:var(--orbien-code-fg);border-radius:8px;margin:0;padding:.6rem .75rem;font-size:.8rem;line-height:1.55;display:block}@media screen and (width<=996px){.note_heJW{min-width:10rem;max-width:none}} \ No newline at end of file diff --git a/en/assets/images/mem-25019362d30f5d98b0f5120a0171b0e1.png b/en/assets/images/mem-25019362d30f5d98b0f5120a0171b0e1.png new file mode 100644 index 0000000..072cddc Binary files /dev/null and b/en/assets/images/mem-25019362d30f5d98b0f5120a0171b0e1.png differ diff --git a/en/assets/js/17896441.6c48d3c2.js b/en/assets/js/17896441.6c48d3c2.js new file mode 100644 index 0000000..f748d49 --- /dev/null +++ b/en/assets/js/17896441.6c48d3c2.js @@ -0,0 +1 @@ +(self.webpackChunkorbien_docs=self.webpackChunkorbien_docs||[]).push([["106"],{4809(e,t){function n(e){let t,n=[];for(let s of e.split(",").map(e=>e.trim()))if(/^-?\d+$/.test(s))n.push(parseInt(s,10));else if(t=s.match(/^(-?\d+)(-|\.\.\.?|\u2025|\u2026|\u22EF)(-?\d+)$/)){let[e,s,r,a]=t;if(s&&a){let e=(s=parseInt(s))<(a=parseInt(a))?1:-1;("-"===r||".."===r||"\u2025"===r)&&(a+=e);for(let t=s;t!==a;t+=e)n.push(t)}}return n}t.default=n,e.exports=n},2416(e,t,n){"use strict";n.r(t),n.d(t,{default:()=>tg});var s=n(1987),r=n(1763),a=n(310),i=n(7850);let l=r.createContext(null);function o({children:e,content:t}){let n=(0,r.useMemo)(()=>({metadata:t.metadata,frontMatter:t.frontMatter,assets:t.assets,contentTitle:t.contentTitle,toc:t.toc}),[t]);return(0,s.jsx)(l.Provider,{value:n,children:e})}function c(){let e=(0,r.useContext)(l);if(null===e)throw new i.dV("DocProvider");return e}function d(){let{metadata:e,frontMatter:t,assets:n}=c();return(0,s.jsx)(a.be,{title:e.title,description:e.description,keywords:t.keywords,image:n.image??t.image})}var u=n(3526),m=n(9299),h=n(6475),f=n(7364);function x(e){let{permalink:t,title:n,subLabel:r,isNext:a}=e;return(0,s.jsxs)(f.A,{className:(0,u.A)("pagination-nav__link",a?"pagination-nav__link--next":"pagination-nav__link--prev"),to:t,children:[r&&(0,s.jsx)("div",{className:"pagination-nav__sublabel",children:r}),(0,s.jsx)("div",{className:"pagination-nav__label",children:n})]})}function p(e){let{className:t,previous:n,next:r}=e;return(0,s.jsxs)("nav",{className:(0,u.A)(t,"pagination-nav"),"aria-label":(0,h.T)({id:"theme.docs.paginator.navAriaLabel",message:"Docs pages",description:"The ARIA label for the docs pagination"}),children:[n&&(0,s.jsx)(x,{...n,subLabel:(0,s.jsx)(h.A,{id:"theme.docs.paginator.previous",description:"The label used to navigate to the previous doc",children:"Previous"})}),r&&(0,s.jsx)(x,{...r,subLabel:(0,s.jsx)(h.A,{id:"theme.docs.paginator.next",description:"The label used to navigate to the next doc",children:"Next"}),isNext:!0})]})}function j(){let{metadata:e}=c();return(0,s.jsx)(p,{className:"docusaurus-mt-lg",previous:e.previous,next:e.next})}var b=n(5484),g=n(9678),v=n(1009),N=n(4806),A=n(73);let y={unreleased:function({siteTitle:e,versionMetadata:t}){return(0,s.jsx)(h.A,{id:"theme.docs.versions.unreleasedVersionLabel",description:"The label used to tell the user that he's browsing an unreleased doc version",values:{siteTitle:e,versionLabel:(0,s.jsx)("b",{children:t.label})},children:"This is unreleased documentation for {siteTitle} {versionLabel} version."})},unmaintained:function({siteTitle:e,versionMetadata:t}){return(0,s.jsx)(h.A,{id:"theme.docs.versions.unmaintainedVersionLabel",description:"The label used to tell the user that he's browsing an unmaintained doc version",values:{siteTitle:e,versionLabel:(0,s.jsx)("b",{children:t.label})},children:"This is documentation for {siteTitle} {versionLabel}, which is no longer actively maintained."})}};function _(e){let t=y[e.versionMetadata.banner];return(0,s.jsx)(t,{...e})}function w({versionLabel:e,to:t,onClick:n}){return(0,s.jsx)(h.A,{id:"theme.docs.versions.latestVersionSuggestionLabel",description:"The label used to tell the user to check the latest version",values:{versionLabel:e,latestVersionLink:(0,s.jsx)("b",{children:(0,s.jsx)(f.A,{to:t,onClick:n,children:(0,s.jsx)(h.A,{id:"theme.docs.versions.latestVersionLinkLabel",description:"The label used for the latest version suggestion link label",children:"latest version"})})})},children:"For up-to-date documentation, see the {latestVersionLink} ({versionLabel})."})}function C({className:e,versionMetadata:t}){let{siteConfig:{title:n}}=(0,b.A)(),{pluginId:r}=(0,g.vT)({failfast:!0}),{savePreferredVersionName:a}=(0,N.g1)(r),{latestDocSuggestion:i,latestVersionSuggestion:l}=(0,g.HW)(r),o=i??l.docs.find(e=>e.id===l.mainDocId);return(0,s.jsxs)("div",{className:(0,u.A)(e,v.G.docs.docVersionBanner,"alert alert--warning margin-bottom--md"),role:"alert",children:[(0,s.jsx)("div",{children:(0,s.jsx)(_,{siteTitle:n,versionMetadata:t})}),(0,s.jsx)("div",{className:"margin-top--md",children:(0,s.jsx)(w,{versionLabel:l.label,to:o.path,onClick:()=>a(l.name)})})]})}function k({className:e}){let t=(0,A.r)();return t.banner?(0,s.jsx)(C,{className:e,versionMetadata:t}):null}function L({className:e}){let t=(0,A.r)();return t.badge?(0,s.jsx)("span",{className:(0,u.A)(e,v.G.docs.docVersionBadge,"badge badge--secondary"),children:(0,s.jsx)(h.A,{id:"theme.docs.versionBadge.label",values:{versionLabel:t.label},children:"Version: {versionLabel}"})}):null}function T({permalink:e,label:t,count:n,description:r}){return(0,s.jsxs)(f.A,{rel:"tag",href:e,title:r,className:(0,u.A)("tag_lOWp",n?"tagWithCount_db5V":"tagRegular_JOmO"),children:[t,n&&(0,s.jsx)("span",{children:n})]})}function B({tags:e}){return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("b",{children:(0,s.jsx)(h.A,{id:"theme.tags.tagsListLabel",description:"The label alongside a tag list",children:"Tags:"})}),(0,s.jsx)("ul",{className:(0,u.A)("tags_ZMMK","padding--none","margin-left--sm"),children:e.map(e=>(0,s.jsx)("li",{className:"tag_kkNk",children:(0,s.jsx)(T,{...e})},e.permalink))})]})}function E({className:e,...t}){return(0,s.jsx)("svg",{fill:"currentColor",height:"20",width:"20",viewBox:"0 0 40 40",className:(0,u.A)("iconEdit_OVCj",e),"aria-hidden":"true",...t,children:(0,s.jsx)("g",{children:(0,s.jsx)("path",{d:"m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"})})})}function M({editUrl:e}){return(0,s.jsxs)(f.A,{to:e,className:v.G.common.editThisPage,children:[(0,s.jsx)(E,{}),(0,s.jsx)(h.A,{id:"theme.common.editThisPage",description:"The link label to edit the current page",children:"Edit this page"})]})}function H({lastUpdatedAt:e}){let t=new Date(e),n=(function(e={}){let{i18n:{currentLocale:t}}=(0,b.A)(),n=function(){let{i18n:{currentLocale:e,localeConfigs:t}}=(0,b.A)();return t[e].calendar}();return new Intl.DateTimeFormat(t,{calendar:n,...e})})({day:"numeric",month:"short",year:"numeric",timeZone:"UTC"}).format(t);return(0,s.jsx)(h.A,{id:"theme.lastUpdated.atDate",description:"The words used to describe on which date a page has been last updated",values:{date:(0,s.jsx)("b",{children:(0,s.jsx)("time",{dateTime:t.toISOString(),itemProp:"dateModified",children:n})})},children:" on {date}"})}function I({lastUpdatedBy:e}){return(0,s.jsx)(h.A,{id:"theme.lastUpdated.byUser",description:"The words used to describe by who the page has been last updated",values:{user:(0,s.jsx)("b",{children:e})},children:" by {user}"})}function V({lastUpdatedAt:e,lastUpdatedBy:t}){return(0,s.jsxs)("span",{className:v.G.common.lastUpdated,children:[(0,s.jsx)(h.A,{id:"theme.lastUpdated.lastUpdatedAtBy",description:"The sentence used to display when a page has been last updated, and by who",values:{atDate:e?(0,s.jsx)(H,{lastUpdatedAt:e}):"",byUser:t?(0,s.jsx)(I,{lastUpdatedBy:t}):""},children:"Last updated{atDate}{byUser}"}),!1]})}function z({className:e,editUrl:t,lastUpdatedAt:n,lastUpdatedBy:r}){return(0,s.jsxs)("div",{className:(0,u.A)("row",e),children:[(0,s.jsx)("div",{className:(0,u.A)("col","noPrint_zwwA"),children:t&&(0,s.jsx)(M,{editUrl:t})}),(0,s.jsx)("div",{className:(0,u.A)("col","lastUpdated_V1Ko"),children:(n||r)&&(0,s.jsx)(V,{lastUpdatedAt:n,lastUpdatedBy:r})})]})}function O(){let{metadata:e}=c(),{editUrl:t,lastUpdatedAt:n,lastUpdatedBy:r,tags:a}=e,i=a.length>0,l=!!(t||n||r);return i||l?(0,s.jsxs)("footer",{className:(0,u.A)(v.G.docs.docFooter,"docusaurus-mt-lg"),children:[i&&(0,s.jsx)("div",{className:(0,u.A)("row margin-top--sm",v.G.docs.docFooterTagsRow),children:(0,s.jsx)("div",{className:"col",children:(0,s.jsx)(B,{tags:a})})}),l&&(0,s.jsx)(z,{className:(0,u.A)("margin-top--sm",v.G.docs.docFooterEditMetaRow),editUrl:t,lastUpdatedAt:n,lastUpdatedBy:r})]}):null}var S=n(3420),R=n(8168);function U(e){let t=e.getBoundingClientRect();return t.top===t.bottom?U(e.parentNode):t}let D=r.memo(function e({toc:t,className:n,linkClassName:r,isChild:a}){return t.length?(0,s.jsx)("ul",{className:a?void 0:n,children:t.map(t=>(0,s.jsxs)("li",{children:[(0,s.jsx)(f.A,{to:`#${t.id}`,className:r??void 0,dangerouslySetInnerHTML:{__html:t.value}}),(0,s.jsx)(e,{isChild:!0,toc:t.children,className:n,linkClassName:r})]},t.id))}):null});function F({toc:e,className:t="table-of-contents table-of-contents__left-border",linkClassName:n="table-of-contents__link",linkActiveClassName:a,minHeadingLevel:i,maxHeadingLevel:l,...o}){var c;let d,u,m=(0,R.p)(),h=i??m.tableOfContents.minHeadingLevel,f=l??m.tableOfContents.maxHeadingLevel,x=function({toc:e,minHeadingLevel:t,maxHeadingLevel:n}){return(0,r.useMemo)(()=>{let s,r,a;return function e({toc:t,minHeadingLevel:n,maxHeadingLevel:s}){return t.flatMap(t=>{let r=e({toc:t.children,minHeadingLevel:n,maxHeadingLevel:s});return t.level>=n&&t.level<=s?[{...t,children:r}]:r})}({toc:(s=e.map(e=>({...e,parentIndex:-1,children:[]})),r=Array(7).fill(-1),s.forEach((e,t)=>{let n=r.slice(2,e.level);e.parentIndex=Math.max(...n),r[e.level]=t}),a=[],s.forEach(e=>{let{parentIndex:t,...n}=e;t>=0?s[t].children.push(n):a.push(n)}),a),minHeadingLevel:t,maxHeadingLevel:n})},[e,t,n])}({toc:e,minHeadingLevel:h,maxHeadingLevel:f});return c=(0,r.useMemo)(()=>{if(n&&a)return{linkClassName:n,linkActiveClassName:a,minHeadingLevel:h,maxHeadingLevel:f}},[n,a,h,f]),d=(0,r.useRef)(void 0),u=function(){let e=(0,r.useRef)(0),{navbar:{hideOnScroll:t}}=(0,R.p)();return(0,r.useEffect)(()=>{e.current=t?0:document.querySelector(".navbar").clientHeight},[t]),e}(),(0,r.useEffect)(()=>{if(!c)return()=>{};let{linkClassName:e,linkActiveClassName:t,minHeadingLevel:n,maxHeadingLevel:s}=c;function r(){let r=Array.from(document.getElementsByClassName(e)),a=function(e,{anchorTopOffset:t}){let n=e.find(e=>U(e).top>=t);if(n){var s;return(s=U(n)).top>0&&s.bottoma&&a.id===decodeURIComponent(e.href.substring(e.href.indexOf("#")+1)));r.forEach(e=>{e===i?(d.current&&d.current!==e&&d.current.classList.remove(t),e.classList.add(t),d.current=e):e.classList.remove(t)})}return document.addEventListener("scroll",r),document.addEventListener("resize",r),r(),()=>{document.removeEventListener("scroll",r),document.removeEventListener("resize",r)}},[c,u]),(0,s.jsx)(D,{toc:x,className:t,linkClassName:n,...o})}function G({collapsed:e,...t}){return(0,s.jsx)("button",{type:"button",...t,className:(0,u.A)("clean-btn","tocCollapsibleButton_pqXY",!e&&"tocCollapsibleButtonExpanded_WWn8",t.className),children:(0,s.jsx)(h.A,{id:"theme.TOCCollapsible.toggleButtonLabel",description:"The label used by the button on the collapsible TOC component",children:"On this page"})})}function $({toc:e,className:t,minHeadingLevel:n,maxHeadingLevel:r}){let{collapsed:a,toggleCollapsed:i}=(0,S.u)({initialState:!0});return(0,s.jsxs)("div",{className:(0,u.A)("tocCollapsible_xf3c",!a&&"tocCollapsibleExpanded_VQ3o",t),children:[(0,s.jsx)(G,{collapsed:a,onClick:i}),(0,s.jsx)(S.N,{lazy:!0,className:"tocCollapsibleContent_Ibyg",collapsed:a,children:(0,s.jsx)(F,{toc:e,minHeadingLevel:n,maxHeadingLevel:r})})]})}function P(){let{toc:e,frontMatter:t}=c();return(0,s.jsx)($,{toc:e,minHeadingLevel:t.toc_min_heading_level,maxHeadingLevel:t.toc_max_heading_level,className:(0,u.A)(v.G.docs.docTocMobile,"tocMobile_OEfg")})}function W({className:e,...t}){return(0,s.jsx)("div",{className:(0,u.A)("tableOfContents_fdog","thin-scrollbar",e),children:(0,s.jsx)(F,{...t,linkClassName:"table-of-contents__link toc-highlight",linkActiveClassName:"table-of-contents__link--active"})})}function q(){let{toc:e,frontMatter:t}=c();return(0,s.jsx)(W,{toc:e,minHeadingLevel:t.toc_min_heading_level,maxHeadingLevel:t.toc_max_heading_level,className:v.G.docs.docTocDesktop})}var J=n(8241),Z=n(7008),Q=n(7634),K=n(8261),Y=n(3287);function X(){let{prism:e}=(0,R.p)(),{colorMode:t}=(0,Y.G)(),n=e.theme,s=e.darkTheme||n;return"dark"===t?s:n}var ee=n(4809),et=n.n(ee);let en=/title=(?["'])(?.*?)\1/,es=/\{(?<range>[\d,-]+)\}/,er={js:{start:"\\/\\/",end:""},jsBlock:{start:"\\/\\*",end:"\\*\\/"},jsx:{start:"\\{\\s*\\/\\*",end:"\\*\\/\\s*\\}"},bash:{start:"#",end:""},html:{start:"\x3c!--",end:"--\x3e"}},ea={...er,lua:{start:"--",end:""},wasm:{start:"\\;\\;",end:""},tex:{start:"%",end:""},vb:{start:"['\u2018\u2019]",end:""},vbnet:{start:"(?:_\\s*)?['\u2018\u2019]",end:""},rem:{start:"[Rr][Ee][Mm]\\b",end:""},f90:{start:"!",end:""},ml:{start:"\\(\\*",end:"\\*\\)"},cobol:{start:"\\*>",end:""}},ei=Object.keys(er);function el(e,t){let n=e.map(e=>{let{start:n,end:s}=ea[e];return`(?:${n}\\s*(${t.flatMap(e=>[e.line,e.block?.start,e.block?.end].filter(Boolean)).join("|")})\\s*${s})`}).join("|");return RegExp(`^\\s*(?:${n})\\s*$`)}let eo=(0,r.createContext)(null);function ec({metadata:e,wordWrap:t,children:n}){let a=(0,r.useMemo)(()=>({metadata:e,wordWrap:t}),[e,t]);return(0,s.jsx)(eo.Provider,{value:a,children:n})}function ed(){let e=(0,r.useContext)(eo);if(null===e)throw new i.dV("CodeBlockContextProvider");return e}function eu({as:e,...t}){let n,r,a=(n={color:"--prism-color",backgroundColor:"--prism-background-color"},r={},Object.entries(X().plain).forEach(([e,t])=>{let s=n[e];s&&"string"==typeof t&&(r[s]=t)}),r);return(0,s.jsx)(e,{...t,style:a,className:(0,u.A)(t.className,"codeBlockContainer_AFDL",v.G.common.codeBlock)})}let em="codeBlockLines_HQxl";function eh({children:e,className:t}){return(0,s.jsx)(eu,{as:"pre",tabIndex:0,className:(0,u.A)("codeBlockStandalone_Tyu2","thin-scrollbar",t),children:(0,s.jsx)("code",{className:em,children:e})})}let ef={attributes:!0,characterData:!0,childList:!0,subtree:!0};function ex({children:e}){return e}var ep=n(7957);function ej({line:e,token:t,...n}){return(0,s.jsx)("span",{...n})}function eb(){return(0,s.jsx)("br",{})}function eg({line:e,classNames:t,showLineNumbers:n,getLineProps:r,getTokenProps:a}){let i,l=(i=1===e.length&&"\n"===e[0].content?e[0]:void 0)?[{...i,content:""}]:e,o=r({line:l,className:(0,u.A)(t,n&&"codeLine_hqnj")}),c=l.map((e,t)=>{let n=a({token:e});return(0,s.jsx)(ej,{...n,line:l,token:e,children:n.children},t)});return(0,s.jsxs)("div",{...o,children:[n?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("span",{className:"codeLineNumber_unZU"}),(0,s.jsx)("span",{className:"codeLineContent_CLzY",children:c})]}):c,(0,s.jsx)(eb,{})]})}let ev=r.forwardRef((e,t)=>(0,s.jsx)("pre",{ref:t,tabIndex:0,...e,className:(0,u.A)(e.className,"codeBlock_fCJ5","thin-scrollbar")}));function eN(e){let{metadata:t}=ed();return(0,s.jsx)("code",{...e,className:(0,u.A)(e.className,em,void 0!==t.lineNumbersStart&&"codeBlockLinesWithNumbering_QPzx"),style:{...e.style,counterReset:void 0===t.lineNumbersStart?void 0:`line-count ${t.lineNumbersStart-1}`}})}function eA({className:e}){let{metadata:t,wordWrap:n}=ed(),r=X(),{code:a,language:i,lineNumbersStart:l,lineClassNames:o}=t;return(0,s.jsx)(ep.f4,{theme:r,code:a,language:i,children:({className:t,style:r,tokens:a,getLineProps:i,getTokenProps:c})=>(0,s.jsx)(ev,{ref:n.codeBlockRef,className:(0,u.A)(e,t),style:r,children:(0,s.jsx)(eN,{children:a.map((e,t)=>(0,s.jsx)(eg,{line:e,getLineProps:i,getTokenProps:c,classNames:o[t],showLineNumbers:void 0!==l},t))})})})}function ey({children:e,fallback:t}){return(0,K.A)()?(0,s.jsx)(s.Fragment,{children:e?.()}):t??null}function e_({className:e,...t}){return(0,s.jsx)("button",{type:"button",...t,className:(0,u.A)("clean-btn",e)})}function ew(e){return(0,s.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,s.jsx)("path",{fill:"currentColor",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"})})}function eC(e){return(0,s.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,s.jsx)("path",{fill:"currentColor",d:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"})})}let ek={copyButtonCopied:"copyButtonCopied_LX3f",copyButtonIcons:"copyButtonIcons_MDo9",copyButtonIcon:"copyButtonIcon_DToO",copyButtonSuccessIcon:"copyButtonSuccessIcon_FJJa"};async function eL(e){if(navigator.clipboard)return navigator.clipboard.writeText(e);let{default:t}=await n.e("406").then(n.bind(n,821));return t(e)}function eT({className:e}){let{copyCode:t,isCopied:n}=function(){let{metadata:{code:e}}=ed(),[t,n]=(0,r.useState)(!1),s=(0,r.useRef)(void 0),a=(0,r.useCallback)(()=>{eL(e).then(()=>{n(!0),s.current=window.setTimeout(()=>{n(!1)},1e3)})},[e]);return(0,r.useEffect)(()=>()=>window.clearTimeout(s.current),[]),{copyCode:a,isCopied:t}}();return(0,s.jsx)(e_,{"aria-label":n?(0,h.T)({id:"theme.CodeBlock.copied",message:"Copied",description:"The copied button label on code blocks"}):(0,h.T)({id:"theme.CodeBlock.copyButtonAriaLabel",message:"Copy code to clipboard",description:"The ARIA label for copy code blocks button"}),title:(0,h.T)({id:"theme.CodeBlock.copy",message:"Copy",description:"The copy button label on code blocks"}),className:(0,u.A)(e,ek.copyButton,n&&ek.copyButtonCopied),onClick:t,children:(0,s.jsxs)("span",{className:ek.copyButtonIcons,"aria-hidden":"true",children:[(0,s.jsx)(ew,{className:ek.copyButtonIcon}),(0,s.jsx)(eC,{className:ek.copyButtonSuccessIcon})]})})}function eB(e){return(0,s.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,s.jsx)("path",{fill:"currentColor",d:"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"})})}function eE({className:e}){let{wordWrap:t}=ed();if(!(t.isEnabled||t.isCodeScrollable))return!1;let n=(0,h.T)({id:"theme.CodeBlock.wordWrapToggle",message:"Toggle word wrap",description:"The title attribute for toggle word wrapping button of code block lines"});return(0,s.jsx)(e_,{onClick:()=>t.toggle(),className:(0,u.A)(e,t.isEnabled&&"wordWrapButtonEnabled_KNlb"),"aria-label":n,title:n,children:(0,s.jsx)(eB,{className:"wordWrapButtonIcon_IGU7","aria-hidden":"true"})})}function eM({className:e}){return(0,s.jsx)(ey,{children:()=>(0,s.jsxs)("div",{className:(0,u.A)(e,"buttonGroup_GIQh"),children:[(0,s.jsx)(eE,{}),(0,s.jsx)(eT,{})]})})}function eH({className:e}){let{metadata:t}=ed();return(0,s.jsxs)(eu,{as:"div",className:(0,u.A)(e,t.className),children:[t.title&&(0,s.jsx)("div",{className:"codeBlockTitle_V9T2",children:(0,s.jsx)(ex,{children:t.title})}),(0,s.jsxs)("div",{className:"codeBlockContent_tC79",children:[(0,s.jsx)(eA,{}),(0,s.jsx)(eM,{})]})]})}function eI(e){let t=function(e){let{prism:t}=(0,R.p)();return function(e){var t,n,s,r,a;let i,l=(n=(t={language:e.language,defaultLanguage:e.defaultLanguage,className:e.className}).language??function(e){if(!e)return;let t=e.split(" ").find(e=>e.startsWith("language-"));return t?.replace(/language-/,"")}(t.className)??t.defaultLanguage,n?.toLowerCase()??"text"),{lineClassNames:o,code:c}=(s=e.code,r={metastring:e.metastring,magicComments:e.magicComments,language:l},function(e,{metastring:t,magicComments:n}){if(t&&es.test(t)){let s=t.match(es).groups.range;if(0===n.length)throw Error(`A highlight range has been given in code block's metastring (\`\`\` ${t}), but no magic comment config is available. Docusaurus applies the first magic comment entry's className for metastring ranges.`);let r=n[0].className;return{lineClassNames:Object.fromEntries(et()(s).filter(e=>e>0).map(e=>[e-1,[r]])),code:e}}return null}(i=s.replace(/\r?\n$/,""),{...r})??function(e,t){let{language:n,magicComments:s}=t;if(void 0===n)return{lineClassNames:{},code:e};let r=function(e,t){switch(e){case"js":case"javascript":case"ts":case"typescript":return el(["js","jsBlock"],t);case"jsx":case"tsx":return el(["js","jsBlock","jsx"],t);case"html":return el(["js","jsBlock","html"],t);case"python":case"py":case"bash":return el(["bash"],t);case"markdown":case"md":return el(["html","jsx","bash"],t);case"tex":case"latex":case"matlab":return el(["tex"],t);case"lua":case"haskell":return el(["lua"],t);case"sql":return el(["lua","jsBlock"],t);case"wasm":return el(["wasm"],t);case"vb":case"vba":case"visual-basic":return el(["vb","rem"],t);case"vbnet":return el(["vbnet","rem"],t);case"batch":return el(["rem"],t);case"basic":return el(["rem","f90"],t);case"fsharp":return el(["js","ml"],t);case"ocaml":case"sml":return el(["ml"],t);case"fortran":return el(["f90"],t);case"cobol":return el(["cobol"],t);default:return el(ei,t)}}(n,s),a=e.split(/\r?\n/),i=Object.fromEntries(s.map(e=>[e.className,{start:0,range:""}])),l=Object.fromEntries(s.filter(e=>e.line).map(({className:e,line:t})=>[t,e])),o=Object.fromEntries(s.filter(e=>e.block).map(({className:e,block:t})=>[t.start,e])),c=Object.fromEntries(s.filter(e=>e.block).map(({className:e,block:t})=>[t.end,e]));for(let e=0;e<a.length;){let t=a[e].match(r);if(!t){e+=1;continue}let n=t.slice(1).find(e=>void 0!==e);l[n]?i[l[n]].range+=`${e},`:o[n]?i[o[n]].start=e:c[n]&&(i[c[n]].range+=`${i[c[n]].start}-${e-1},`),a.splice(e,1)}let d={};return Object.entries(i).forEach(([e,{range:t}])=>{et()(t).forEach(t=>{d[t]??=[],d[t].push(e)})}),{code:a.join("\n"),lineClassNames:d}}(i,{...r})),d=function({className:e,language:t}){return(0,u.A)(e,t&&!e?.includes(`language-${t}`)&&`language-${t}`)}({className:e.className,language:l}),m=(a=e.metastring,(a?.match(en)?.groups.title??"")||e.title),h=function({showLineNumbers:e,metastring:t}){if("boolean"==typeof e)return e?1:void 0;if("number"==typeof e)return e;let n=t?.split(" ").find(e=>e.startsWith("showLineNumbers"));if(n)return n.startsWith("showLineNumbers=")?parseInt(n.replace("showLineNumbers=",""),10):1}({showLineNumbers:e.showLineNumbers,metastring:e.metastring});return{codeInput:e.code,code:c,className:d,language:l,title:m,lineNumbersStart:h,lineClassNames:o}}({code:e.children,className:e.className,metastring:e.metastring,magicComments:t.magicComments,defaultLanguage:t.defaultLanguage,language:e.language,title:e.title,showLineNumbers:e.showLineNumbers})}(e),n=function(){let[e,t]=(0,r.useState)(!1),[n,s]=(0,r.useState)(!1),a=(0,r.useRef)(null),l=(0,r.useCallback)(()=>{let n=a.current.querySelector("code");e?n.removeAttribute("style"):(n.style.whiteSpace="pre-wrap",n.style.overflowWrap="anywhere"),t(e=>!e)},[a,e]),o=(0,r.useCallback)(()=>{let{scrollWidth:e,clientWidth:t}=a.current;s(e>t||a.current.querySelector("code").hasAttribute("style"))},[a]);return!function(e,t){let[n,s]=(0,r.useState)(),a=(0,r.useCallback)(()=>{s(e.current?.closest("[role=tabpanel][hidden]"))},[e,s]);(0,r.useEffect)(()=>{a()},[a]),function(e,t,n=ef){let s=(0,i._q)(t),a=(0,i.Be)(n);(0,r.useEffect)(()=>{let t=new MutationObserver(s);return e&&t.observe(e,a),()=>t.disconnect()},[e,s,a])}(n,e=>{e.forEach(e=>{"attributes"===e.type&&"hidden"===e.attributeName&&(t(),a())})},{attributes:!0,characterData:!1,childList:!1,subtree:!1})}(a,o),(0,r.useEffect)(()=>{o()},[e,o]),(0,r.useEffect)(()=>(window.addEventListener("resize",o,{passive:!0}),()=>{window.removeEventListener("resize",o)}),[o]),{codeBlockRef:a,isEnabled:e,isCodeScrollable:n,toggle:l}}();return(0,s.jsx)(ec,{metadata:t,wordWrap:n,children:(0,s.jsx)(eH,{})})}function eV({children:e,...t}){let n=(0,K.A)(),a=r.Children.toArray(e).some(e=>(0,r.isValidElement)(e))?e:Array.isArray(e)?e.join(""):e;return(0,s.jsx)("string"==typeof a?eI:eh,{...t,children:a},String(n))}function ez(e){return(0,s.jsx)("code",{...e})}var eO=n(4409),eS=n(4216);function eR(e){return!!e&&("SUMMARY"===e.tagName||eR(e.parentElement))}function eU({summary:e,children:t,...n}){(0,eS.A)().collectAnchor(n.id);let a=(0,K.A)(),i=(0,r.useRef)(null),{collapsed:l,setCollapsed:o}=(0,S.u)({initialState:!n.open}),[c,d]=(0,r.useState)(n.open),m=r.isValidElement(e)?e:(0,s.jsx)("summary",{children:e??"Details"});return(0,s.jsxs)("details",{...n,ref:i,open:c,"data-collapsed":l,className:(0,u.A)("details_hSk0",a&&"isBrowser_J20b",n.className),onMouseDown:e=>{eR(e.target)&&e.detail>1&&e.preventDefault()},onClick:e=>{e.stopPropagation();let t=e.target;eR(t)&&function e(t,n){return!!t&&(t===n||e(t.parentElement,n))}(t,i.current)&&(e.preventDefault(),l?(o(!1),d(!0)):o(!0))},children:[m,(0,s.jsx)(S.N,{lazy:!1,collapsed:l,onCollapseTransitionEnd:e=>{o(e),d(!e)},children:(0,s.jsx)("div",{className:"collapsibleContent_leZz",children:t})})]})}function eD({...e}){return(0,s.jsx)(eU,{...e,className:(0,u.A)("alert alert--info","details_J0lR",e.className)})}function eF(e){let t=r.Children.toArray(e.children),n=t.find(e=>r.isValidElement(e)&&"summary"===e.type),a=(0,s.jsx)(s.Fragment,{children:t.filter(e=>e!==n)});return(0,s.jsx)(eD,{...e,summary:n,children:a})}function eG(e){return(0,s.jsx)(J.A,{...e})}function e$({type:e,className:t,children:n,id:r}){return(0,s.jsx)("div",{className:(0,u.A)(v.G.common.admonition,v.G.common.admonitionType(e),"admonition_uVyA",t),id:r,children:n})}function eP({icon:e,title:t}){return(0,s.jsxs)("div",{className:"admonitionHeading_mHFO",children:[(0,s.jsx)("span",{className:"admonitionIcon_wzHy",children:e}),t]})}function eW({children:e}){return e?(0,s.jsx)("div",{className:"admonitionContent_VCOm",children:e}):null}function eq(e){let{type:t,icon:n,title:r,children:a,className:i,id:l}=e;return(0,s.jsxs)(e$,{type:t,className:i,id:l,children:[r||n?(0,s.jsx)(eP,{title:r,icon:n}):null,(0,s.jsx)(eW,{children:a})]})}let eJ={icon:(0,s.jsx)(function(e){return(0,s.jsx)("svg",{viewBox:"0 0 14 16",...e,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"})})},{}),title:(0,s.jsx)(h.A,{id:"theme.admonition.note",description:"The default label used for the Note admonition (:::note)",children:"note"})};function eZ(e){return(0,s.jsx)(eq,{...eJ,...e,className:(0,u.A)("alert alert--secondary",e.className),children:e.children})}let eQ={icon:(0,s.jsx)(function(e){return(0,s.jsx)("svg",{viewBox:"0 0 12 16",...e,children:(0,s.jsx)("path",{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"})})},{}),title:(0,s.jsx)(h.A,{id:"theme.admonition.tip",description:"The default label used for the Tip admonition (:::tip)",children:"tip"})};function eK(e){return(0,s.jsx)(eq,{...eQ,...e,className:(0,u.A)("alert alert--success",e.className),children:e.children})}let eY={icon:(0,s.jsx)(function(e){return(0,s.jsx)("svg",{viewBox:"0 0 14 16",...e,children:(0,s.jsx)("path",{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"})})},{}),title:(0,s.jsx)(h.A,{id:"theme.admonition.info",description:"The default label used for the Info admonition (:::info)",children:"info"})};function eX(e){return(0,s.jsx)(eq,{...eY,...e,className:(0,u.A)("alert alert--info",e.className),children:e.children})}function e0(e){return(0,s.jsx)("svg",{viewBox:"0 0 16 16",...e,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"})})}let e1={icon:(0,s.jsx)(e0,{}),title:(0,s.jsx)(h.A,{id:"theme.admonition.warning",description:"The default label used for the Warning admonition (:::warning)",children:"warning"})},e2={icon:(0,s.jsx)(function(e){return(0,s.jsx)("svg",{viewBox:"0 0 12 16",...e,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"})})},{}),title:(0,s.jsx)(h.A,{id:"theme.admonition.danger",description:"The default label used for the Danger admonition (:::danger)",children:"danger"})},e3={icon:(0,s.jsx)(e0,{}),title:(0,s.jsx)(h.A,{id:"theme.admonition.caution",description:"The default label used for the Caution admonition (:::caution)",children:"caution"})},e5={note:eZ,tip:eK,info:eX,warning:function(e){return(0,s.jsx)(eq,{...e1,...e,className:(0,u.A)("alert alert--warning",e.className),children:e.children})},danger:function(e){return(0,s.jsx)(eq,{...e2,...e,className:(0,u.A)("alert alert--danger",e.className),children:e.children})},secondary:e=>(0,s.jsx)(eZ,{title:"secondary",...e}),important:e=>(0,s.jsx)(eX,{title:"important",...e}),success:e=>(0,s.jsx)(eK,{title:"success",...e}),caution:function(e){return(0,s.jsx)(eq,{...e3,...e,className:(0,u.A)("alert alert--warning",e.className),children:e.children})}};function e4(e){var t;let n,a=function(e){var t;let n,a,i,{mdxAdmonitionTitle:l,rest:o}=(t=e.children,a=(n=r.Children.toArray(t)).find(e=>r.isValidElement(e)&&"mdxAdmonitionTitle"===e.type),i=n.filter(e=>e!==a),{mdxAdmonitionTitle:a?.props.children,rest:i.length>0?(0,s.jsx)(s.Fragment,{children:i}):null}),c=e.title??l;return{...e,...c&&{title:c},children:o}}(e),i=(n=e5[t=a.type])||(console.warn(`No admonition component found for admonition type "${t}". Using Info as fallback.`),e5.info);return(0,s.jsx)(i,{...a})}var e7=n(116);let e8={Head:Q.A,details:eF,Details:eF,code:function(e){return void 0!==e.children&&r.Children.toArray(e.children).every(e=>"string"==typeof e&&!e.includes("\n"))?(0,s.jsx)(ez,{...e}):(0,s.jsx)(eV,{...e})},a:function(e){let t=(0,eO.v)(e.id);return(0,s.jsx)(f.A,{...e,className:(0,u.A)(t,e.className)})},pre:function(e){return(0,s.jsx)(s.Fragment,{children:e.children})},ul:function(e){return(0,s.jsx)("ul",{...e,className:function(e){if(void 0!==e)return(0,u.A)(e,e?.includes("contains-task-list")&&"containsTaskList_KB3F")}(e.className)})},li:function(e){(0,eS.A)().collectAnchor(e.id);let t=(0,eO.v)(e.id);return(0,s.jsx)("li",{className:(0,u.A)(t,e.className),...e})},img:function(e){var t;return(0,s.jsx)("img",{decoding:"async",loading:"lazy",...e,className:(t=e.className,(0,u.A)(t,"img_ha2v"))})},h1:e=>(0,s.jsx)(eG,{as:"h1",...e}),h2:e=>(0,s.jsx)(eG,{as:"h2",...e}),h3:e=>(0,s.jsx)(eG,{as:"h3",...e}),h4:e=>(0,s.jsx)(eG,{as:"h4",...e}),h5:e=>(0,s.jsx)(eG,{as:"h5",...e}),h6:e=>(0,s.jsx)(eG,{as:"h6",...e}),admonition:e4,mermaid:e7.A};function e6({children:e}){return(0,s.jsx)(Z.x,{components:e8,children:e})}function e9({children:e}){let t=function(){let{metadata:e,frontMatter:t,contentTitle:n}=c();return t.hide_title||void 0!==n?null:e.title}();return(0,s.jsxs)("div",{className:(0,u.A)(v.G.docs.docMarkdown,"markdown"),children:[t&&(0,s.jsx)("header",{children:(0,s.jsx)(J.A,{as:"h1",children:t})}),(0,s.jsx)(e6,{children:e})]})}var te=n(8484),tt=n(7711),tn=n(319);function ts(e){return(0,s.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,s.jsx)("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"})})}function tr(){let e=(0,tn.Ay)("/");return(0,s.jsx)("li",{className:"breadcrumbs__item",children:(0,s.jsx)(f.A,{"aria-label":(0,h.T)({id:"theme.docs.breadcrumbs.home",message:"Home page",description:"The ARIA label for the home page in the breadcrumbs"}),className:"breadcrumbs__link",href:e,children:(0,s.jsx)(ts,{className:"breadcrumbHomeIcon_Ripd"})})})}function ta(e){let t=function({breadcrumbs:e}){let{siteConfig:t}=(0,b.A)();return{"@context":"https://schema.org","@type":"BreadcrumbList",itemListElement:e.filter(e=>e.href).map((e,n)=>({"@type":"ListItem",position:n+1,name:e.label,item:`${t.url}${e.href}`}))}}({breadcrumbs:e.breadcrumbs});return(0,s.jsx)(Q.A,{children:(0,s.jsx)("script",{type:"application/ld+json",children:JSON.stringify(t)})})}function ti({children:e,href:t,isLast:n}){let r="breadcrumbs__link";return n?(0,s.jsx)("span",{className:r,children:e}):t?(0,s.jsx)(f.A,{className:r,href:t,children:(0,s.jsx)("span",{children:e})}):(0,s.jsx)("span",{className:r,children:e})}function tl({children:e,active:t}){return(0,s.jsx)("li",{className:(0,u.A)("breadcrumbs__item",{"breadcrumbs__item--active":t}),children:e})}function to(){let e=(0,te.OF)(),t=(0,tt.Dt)();return e?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(ta,{breadcrumbs:e}),(0,s.jsx)("nav",{className:(0,u.A)(v.G.docs.docBreadcrumbs,"breadcrumbsContainer_DwGs"),"aria-label":(0,h.T)({id:"theme.docs.breadcrumbs.navAriaLabel",message:"Breadcrumbs",description:"The ARIA label for the breadcrumbs"}),children:(0,s.jsxs)("ul",{className:"breadcrumbs",children:[t&&(0,s.jsx)(tr,{}),e.map((t,n)=>{let r=n===e.length-1,a="category"===t.type&&t.linkUnlisted?void 0:t.href;return(0,s.jsx)(tl,{active:r,children:(0,s.jsx)(ti,{href:a,isLast:r,children:t.label})},n)})]})})]}):null}function tc(){return(0,s.jsx)(h.A,{id:"theme.contentVisibility.unlistedBanner.title",description:"The unlisted content banner title",children:"Unlisted page"})}function td(){return(0,s.jsx)(h.A,{id:"theme.contentVisibility.unlistedBanner.message",description:"The unlisted content banner message",children:"This page is unlisted. Search engines will not index it, and only users having a direct link can access it."})}function tu(){return(0,s.jsx)(Q.A,{children:(0,s.jsx)("meta",{name:"robots",content:"noindex, nofollow"})})}function tm(){return(0,s.jsx)(h.A,{id:"theme.contentVisibility.draftBanner.title",description:"The draft content banner title",children:"Draft page"})}function th(){return(0,s.jsx)(h.A,{id:"theme.contentVisibility.draftBanner.message",description:"The draft content banner message",children:"This page is a draft. It will only be visible in dev and be excluded from the production build."})}function tf({className:e}){return(0,s.jsx)(e4,{type:"caution",title:(0,s.jsx)(tm,{}),className:(0,u.A)(e,v.G.common.draftBanner),children:(0,s.jsx)(th,{})})}function tx({className:e}){return(0,s.jsx)(e4,{type:"caution",title:(0,s.jsx)(tc,{}),className:(0,u.A)(e,v.G.common.unlistedBanner),children:(0,s.jsx)(td,{})})}function tp(e){return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(tu,{}),(0,s.jsx)(tx,{...e})]})}function tj({metadata:e}){let{unlisted:t,frontMatter:n}=e;return(0,s.jsxs)(s.Fragment,{children:[(t||n.unlisted)&&(0,s.jsx)(tp,{}),n.draft&&(0,s.jsx)(tf,{})]})}function tb({children:e}){let t=function(){let{frontMatter:e,toc:t}=c(),n=(0,m.l)(),r=e.hide_table_of_contents,a=!r&&t.length>0;return{hidden:r,mobile:a?(0,s.jsx)(P,{}):void 0,desktop:a&&("desktop"===n||"ssr"===n)?(0,s.jsx)(q,{}):void 0}}(),{metadata:n}=c();return(0,s.jsxs)("div",{className:"row",children:[(0,s.jsxs)("div",{className:(0,u.A)("col",!t.hidden&&"docItemCol_I2C9"),children:[(0,s.jsx)(tj,{metadata:n}),(0,s.jsx)(k,{}),(0,s.jsxs)("div",{className:"docItemContainer_FZQ_",children:[(0,s.jsxs)("article",{children:[(0,s.jsx)(to,{}),(0,s.jsx)(L,{}),t.mobile,(0,s.jsx)(e9,{children:e}),(0,s.jsx)(O,{})]}),(0,s.jsx)(j,{})]})]}),t.desktop&&(0,s.jsx)("div",{className:"col col--3",children:t.desktop})]})}function tg(e){let t=`docs-doc-id-${e.content.metadata.id}`,n=e.content;return(0,s.jsx)(o,{content:e.content,children:(0,s.jsxs)(a.e3,{className:t,children:[(0,s.jsx)(d,{}),(0,s.jsx)(tb,{children:(0,s.jsx)(n,{})})]})})}},7008(e,t,n){"use strict";n.d(t,{R:()=>i,x:()=>l});var s=n(1763);let r={},a=s.createContext(r);function i(e){let t=s.useContext(a);return s.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function l(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:i(e.components),s.createElement(a.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/17bb2c49.7c118acc.js b/en/assets/js/17bb2c49.7c118acc.js new file mode 100644 index 0000000..48c9488 --- /dev/null +++ b/en/assets/js/17bb2c49.7c118acc.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkorbien_docs=self.webpackChunkorbien_docs||[]).push([["604"],{770(e,n,t){t.r(n),t.d(n,{metadata:()=>i,default:()=>u,frontMatter:()=>o,contentTitle:()=>c,toc:()=>l,assets:()=>a});var i=JSON.parse('{"id":"license","title":"License","description":"Orbien is licensed under the Apache License 2.0.","source":"@site/i18n/en/docusaurus-plugin-content-docs/current/license.md","sourceDirName":".","slug":"/license","permalink":"/orbien/en/docs/license","draft":false,"unlisted":false,"editUrl":"https://github.com/orbien-org/orbien/tree/main/docs/docs/license.md","tags":[],"version":"current","sidebarPosition":92,"frontMatter":{"sidebar_position":92,"sidebar_label":"License"},"sidebar":"docsSidebar","previous":{"title":"Roadmap","permalink":"/orbien/en/docs/roadmap"},"next":{"title":"Community & Contributing","permalink":"/orbien/en/docs/community"}}'),r=t(1987),s=t(7008);let o={sidebar_position:92,sidebar_label:"License"},c="License",a={},l=[];function d(e){let n={a:"a",h1:"h1",header:"header",p:"p",strong:"strong",...(0,s.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.header,{children:(0,r.jsx)(n.h1,{id:"license",children:"License"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Orbien"})," is licensed under the ",(0,r.jsx)(n.a,{href:"https://www.apache.org/licenses/LICENSE-2.0",children:"Apache License 2.0"}),"."]}),"\n",(0,r.jsxs)(n.p,{children:["The full text is in the ",(0,r.jsx)(n.a,{href:"https://github.com/orbien-org/orbien/blob/main/LICENSE",children:"LICENSE"})," file in the repository."]})]})}function u(e={}){let{wrapper:n}={...(0,s.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(d,{...e})}):d(e)}},7008(e,n,t){t.d(n,{R:()=>o,x:()=>c});var i=t(1763);let r={},s=i.createContext(r);function o(e){let n=i.useContext(s);return i.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:o(e.components),i.createElement(s.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/1bc5dae4.4f0c868a.js b/en/assets/js/1bc5dae4.4f0c868a.js new file mode 100644 index 0000000..03666b9 --- /dev/null +++ b/en/assets/js/1bc5dae4.4f0c868a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkorbien_docs=self.webpackChunkorbien_docs||[]).push([["697"],{8614(e,r,n){n.r(r),n.d(r,{metadata:()=>o,default:()=>m,frontMatter:()=>a,contentTitle:()=>i,toc:()=>d,assets:()=>c});var o=JSON.parse('{"id":"performance","title":"Performance","description":"The following is a local-loopback memory-usage benchmark. Compared with frp, Orbien uses less memory and stays more stable.","source":"@site/i18n/en/docusaurus-plugin-content-docs/current/performance.md","sourceDirName":".","slug":"/performance","permalink":"/orbien/en/docs/performance","draft":false,"unlisted":false,"editUrl":"https://github.com/orbien-org/orbien/tree/main/docs/docs/performance.md","tags":[],"version":"current","sidebarPosition":90,"frontMatter":{"sidebar_position":90,"sidebar_label":"Performance"},"sidebar":"docsSidebar","previous":{"title":"Spring Boot","permalink":"/orbien/en/docs/integrations/springboot"},"next":{"title":"Roadmap","permalink":"/orbien/en/docs/roadmap"}}'),t=n(1987),s=n(7008);let a={sidebar_position:90,sidebar_label:"Performance"},i="Performance",c={},d=[];function l(e){let r={code:"code",h1:"h1",header:"header",img:"img",p:"p",...(0,s.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(r.header,{children:(0,t.jsx)(r.h1,{id:"performance",children:"Performance"})}),"\n",(0,t.jsxs)(r.p,{children:["The following is a local-loopback memory-usage benchmark. Compared with ",(0,t.jsx)(r.code,{children:"frp"}),", ",(0,t.jsx)(r.code,{children:"Orbien"})," uses less memory and stays more stable."]}),"\n",(0,t.jsx)(r.p,{children:(0,t.jsx)(r.img,{alt:"mem.png",src:n(2150).A+"",width:"1100",height:"650"})})]})}function m(e={}){let{wrapper:r}={...(0,s.R)(),...e.components};return r?(0,t.jsx)(r,{...e,children:(0,t.jsx)(l,{...e})}):l(e)}},2150(e,r,n){n.d(r,{A:()=>o});let o=n.p+"assets/images/mem-25019362d30f5d98b0f5120a0171b0e1.png"},7008(e,r,n){n.d(r,{R:()=>a,x:()=>i});var o=n(1763);let t={},s=o.createContext(t);function a(e){let r=o.useContext(s);return o.useMemo(function(){return"function"==typeof e?e(r):{...r,...e}},[r,e])}function i(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:a(e.components),o.createElement(s.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/1df93b7f.26956a5e.js b/en/assets/js/1df93b7f.26956a5e.js new file mode 100644 index 0000000..1c59fcc --- /dev/null +++ b/en/assets/js/1df93b7f.26956a5e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkorbien_docs=self.webpackChunkorbien_docs||[]).push([["452"],{2029(e,s,i){i.r(s),i.d(s,{default:()=>b});var a=i(1987),t=i(3526),r=i(7364),d=i(319),l=i(5484),c=i(6819),n=i(8241),o=i(551),h=i(6475);let m=[{title:(0,a.jsx)(h.A,{id:"homepage.feature.perf.title",children:"\u9AD8\u6027\u80FD"}),description:(0,a.jsx)(h.A,{id:"homepage.feature.perf.desc",children:"\u9AD8\u6027\u80FD\u3001\u4F4E\u5EF6\u8FDF\u3001\u6297\u4E22\u5305\u3001\u5185\u5B58\u5360\u7528\u4F4E\u3001\u65E0GC\u505C\u987F\uFF0C\u9002\u5408\u957F\u671F\u670D\u52A1\u5668\u8FD0\u884C"})},{title:(0,a.jsx)(h.A,{id:"homepage.feature.tunnel.title",children:"\u591A\u534F\u8BAE\u96A7\u9053"}),description:(0,a.jsx)(h.A,{id:"homepage.feature.tunnel.desc",children:"\u652F\u6301 TCP\u3001UDP\u3001HTTP\u3001HTTPS \u534F\u8BAE\u96A7\u9053"})},{title:(0,a.jsx)(h.A,{id:"homepage.feature.transport.title",children:"\u591A\u4F20\u8F93\u534F\u8BAE"}),description:(0,a.jsx)(h.A,{id:"homepage.feature.transport.desc",children:"\u652F\u6301 TCP\u3001QUIC\u3001KCP\u3001WebSocket \u591A\u79CD\u4F20\u8F93\u534F\u8BAE\uFF0C\u540C\u65F6\u652F\u6301TCP\u591A\u8DEF\u590D\u7528"})},{title:(0,a.jsx)(h.A,{id:"homepage.feature.security.title",children:"\u5B89\u5168\u52A0\u5BC6"}),description:(0,a.jsx)(h.A,{id:"homepage.feature.security.desc",children:"\u652F\u6301 Token \u9274\u6743\u4E0E TLS /mTLS \u52A0\u5BC6\u4F20\u8F93\uFF1BHTTPS\u91C7\u7528\u900F\u660E\u8F6C\u53D1\u548C\u53EF\u9009\u5BA2\u6237\u7AEFTLS\u7EC8\u6B62"})},{title:(0,a.jsx)(h.A,{id:"homepage.feature.ops.title",children:"\u53EF\u89C6\u5316\u8FD0\u7EF4"}),description:(0,a.jsx)(h.A,{id:"homepage.feature.ops.desc",children:"\u5185\u7F6E\u8F7B\u91CF\u670D\u52A1\u7AEFWeb\u7BA1\u7406\u754C\u9762\u548C\u539F\u751F\u684C\u9762\u5BA2\u6237\u7AEF\uFF0C\u4FBF\u4E8E\u8FD0\u7EF4\u76D1\u63A7\uFF0C\u63D0\u9AD8\u6548\u7387"})},{title:(0,a.jsx)(h.A,{id:"homepage.feature.platform.title",children:"\u8DE8\u5E73\u53F0\u652F\u6301"}),description:(0,a.jsx)(h.A,{id:"homepage.feature.platform.desc",children:"\u652F\u6301 Windows / macOS / Linux / freeBSD \u7B49\u5E73\u53F0"})}];function p({title:e,description:s}){return(0,a.jsx)("div",{className:(0,t.A)("col col--4","featureCol_P0tX"),children:(0,a.jsxs)("div",{className:"featureCard_QAQr",children:[(0,a.jsx)(n.A,{as:"h3",className:"featureTitle_L1YZ",children:e}),(0,a.jsx)("p",{className:"featureDesc_qOCZ",children:s})]})})}function u(){return(0,a.jsx)("section",{className:"features_t9lD",children:(0,a.jsx)("div",{className:"container",children:(0,a.jsx)("div",{className:"row",children:m.map((e,s)=>(0,a.jsx)(p,{...e},s))})})})}let x="btnSecondary_mRVh";function j(){let e=(0,d.Ay)("/img/dashboard.png"),s=(0,d.Ay)("/img/dashboard_black.png");return(0,a.jsxs)("div",{className:"heroShot_o6Lk",children:[(0,a.jsx)("div",{className:"heroShotGlow_lUhG","aria-hidden":"true"}),(0,a.jsx)(o.A,{className:"heroShotImg_WlKk",alt:(0,h.T)({id:"homepage.hero.dashboardAlt",message:"Orbien \u9879\u76EE\u76D1\u63A7\u9762\u677F"}),width:1492,height:835,sources:{light:e,dark:s}})]})}function g(){return(0,a.jsx)("header",{className:"hero_aEcG",children:(0,a.jsxs)("div",{className:"heroInner_V4lS",children:[(0,a.jsxs)("div",{className:"heroCopy_zvrZ",children:[(0,a.jsxs)(n.A,{as:"h1",className:"heroBrand_lo5f",children:[(0,a.jsx)("span",{className:"brandOrb_BOug",children:"Orb"}),(0,a.jsx)("span",{className:"brandRest_mNh6",children:"ien"})]}),(0,a.jsx)("p",{className:"heroTagline_QIlK",children:(0,a.jsx)(h.A,{id:"homepage.hero.tagline",children:"\u7531 Rust \u4E0E Tokio \u9A71\u52A8"})}),(0,a.jsx)("p",{className:"heroDesc_pApI",children:(0,a.jsx)(h.A,{id:"homepage.hero.desc",children:"\u8F7B\u91CF\u3001\u9AD8\u6027\u80FD\u3001\u5B89\u5168\u7684\u5185\u7F51\u7A7F\u900F\uFF0C\u4E8C\u8FDB\u5236\u4F53\u79EF\u5927\u7EA65MB"})}),(0,a.jsxs)("div",{className:"heroActions_Z2kl",children:[(0,a.jsx)(r.A,{className:(0,t.A)("button button--lg","btnPrimary_hBjO"),to:"/docs/quickstart",children:(0,a.jsx)(h.A,{id:"homepage.hero.ctaStart",children:"\u5FEB\u901F\u5F00\u59CB"})}),(0,a.jsx)(r.A,{className:(0,t.A)("button button--lg",x),to:"/docs/download",children:(0,a.jsx)(h.A,{id:"homepage.hero.ctaDownload",children:"\u4E0B\u8F7D"})}),(0,a.jsx)(r.A,{className:(0,t.A)("button button--lg","btnGitHub_RNrN"),href:"https://github.com/orbien-org/orbien",children:"GitHub"})]})]}),(0,a.jsx)("div",{className:"heroVisual_DvAS",children:(0,a.jsx)(j,{})})]})})}function A(){let{i18n:e}=(0,l.A)(),s=(0,d.Ay)("en"===e.currentLocale?"/img/desktop_en.gif":"/img/desktop_zh.gif");return(0,a.jsx)("section",{className:"desktop_esma","aria-labelledby":"desktop-showcase-title",children:(0,a.jsxs)("div",{className:"desktopInner_HU24",children:[(0,a.jsxs)("div",{className:"desktopCopy_t7Jm",children:[(0,a.jsx)(n.A,{as:"h2",id:"desktop-showcase-title",className:"desktopTitle_nOuY",children:(0,a.jsx)(h.A,{id:"homepage.desktop.title",children:"\u684C\u9762\u5BA2\u6237\u7AEF"})}),(0,a.jsx)("p",{className:"desktopDesc_SAxO",children:(0,a.jsx)(h.A,{id:"homepage.desktop.desc",children:"\u7EAFRust\u539F\u751F\u684C\u9762\u5BA2\u6237\u7AEF\uFF0C\u901A\u8FC7\u53EF\u89C6\u5316\u754C\u9762\u8F7B\u677E\u7BA1\u7406\u96A7\u9053\u914D\u7F6E"})}),(0,a.jsx)(r.A,{className:(0,t.A)("button button--lg",x),to:"/docs/download",children:(0,a.jsx)(h.A,{id:"homepage.desktop.cta",children:"\u4E0B\u8F7D\u684C\u9762\u7AEF"})})]}),(0,a.jsx)("div",{className:"desktopVisual_cX6h",children:(0,a.jsx)("div",{className:"desktopFrame_bqGN",children:(0,a.jsx)("img",{className:"desktopGif_kMRW",src:s,alt:(0,h.T)({id:"homepage.desktop.alt",message:"Orbien Desktop \u5BA2\u6237\u7AEF\u6F14\u793A"}),width:1920,height:1279,loading:"lazy",decoding:"async"})})})]})})}function b(){return(0,a.jsxs)(c.A,{title:(0,h.T)({id:"homepage.meta.title",message:"Orbien \u2014 \u5185\u7F51\u7A7F\u900F"}),description:(0,h.T)({id:"homepage.meta.description",message:"Orbien\uFF1A\u7B80\u5355\u3001\u5B89\u5168\u7684\u5185\u7F51\u7A7F\u900F\uFF0C\u652F\u6301\u591A\u534F\u8BAE\u96A7\u9053\u4E0E\u591A\u4F20\u8F93\u534F\u8BAE"}),children:[(0,a.jsx)(g,{}),(0,a.jsxs)("main",{children:[(0,a.jsx)(u,{}),(0,a.jsx)(A,{})]})]})}}}]); \ No newline at end of file diff --git a/en/assets/js/20ddc183.d640f03b.js b/en/assets/js/20ddc183.d640f03b.js new file mode 100644 index 0000000..0b65cde --- /dev/null +++ b/en/assets/js/20ddc183.d640f03b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkorbien_docs=self.webpackChunkorbien_docs||[]).push([["451"],{7025(e,t,r){r.r(t),r.d(t,{metadata:()=>n,default:()=>h,frontMatter:()=>c,contentTitle:()=>l,toc:()=>o,assets:()=>i});var n=JSON.parse('{"id":"transport/protocol/tcp","title":"TCP","description":"The default transport protocol. The client establishes a control channel through the server listen address. For TLS, see TLS.","source":"@site/i18n/en/docusaurus-plugin-content-docs/current/transport/protocol/tcp.md","sourceDirName":"transport/protocol","slug":"/transport/protocol/tcp","permalink":"/orbien/en/docs/transport/protocol/tcp","draft":false,"unlisted":false,"editUrl":"https://github.com/orbien-org/orbien/tree/main/docs/docs/transport/protocol/tcp.md","tags":[],"version":"current","sidebarPosition":1,"frontMatter":{"sidebar_position":1,"sidebar_label":"TCP","title":"TCP"},"sidebar":"docsSidebar","previous":{"title":"Domains","permalink":"/orbien/en/docs/tunnels/domains"},"next":{"title":"WebSocket","permalink":"/orbien/en/docs/transport/protocol/websocket"}}'),s=r(1987),d=r(7008);let c={sidebar_position:1,sidebar_label:"TCP",title:"TCP"},l="TCP",i={},o=[{value:"Example",id:"example",level:2},{value:"Client parameters",id:"client-parameters",level:2},{value:"Server parameters",id:"server-parameters",level:2}];function a(e){let t={a:"a",code:"code",h1:"h1",h2:"h2",header:"header",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,d.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.header,{children:(0,s.jsx)(t.h1,{id:"tcp",children:"TCP"})}),"\n",(0,s.jsxs)(t.p,{children:["The default transport protocol. The client establishes a control channel through the server ",(0,s.jsx)(t.code,{children:"listen"})," address. For TLS, see ",(0,s.jsx)(t.a,{href:"/orbien/en/docs/transport/tls",children:"TLS"}),"."]}),"\n",(0,s.jsx)(t.h2,{id:"example",children:"Example"}),"\n",(0,s.jsx)(t.p,{children:"Server:"}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-toml",children:'# orbien-server.toml\nlisten = "0.0.0.0:9527"\n\n[transport]\ntcpMux = true\n'})}),"\n",(0,s.jsx)(t.p,{children:"Client:"}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-toml",children:'# orbien.toml\nserver = "YOUR_SERVER_IP:9527"\n\n[transport]\nprotocol = "tcp"\ntcpMux = true\nheartbeatInterval = -1\n'})}),"\n",(0,s.jsx)(t.h2,{id:"client-parameters",children:"Client parameters"}),"\n",(0,s.jsxs)(t.table,{children:[(0,s.jsx)(t.thead,{children:(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.th,{children:"Parameter"}),(0,s.jsx)(t.th,{children:"Required"}),(0,s.jsx)(t.th,{children:"Default"}),(0,s.jsx)(t.th,{children:"Description"})]})}),(0,s.jsxs)(t.tbody,{children:[(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:(0,s.jsx)(t.code,{children:"transport.protocol"})}),(0,s.jsx)(t.td,{children:"No"}),(0,s.jsx)(t.td,{children:(0,s.jsx)(t.code,{children:"tcp"})}),(0,s.jsxs)(t.td,{children:["Always ",(0,s.jsx)(t.code,{children:"tcp"})]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:(0,s.jsx)(t.code,{children:"transport.tcpMux"})}),(0,s.jsx)(t.td,{children:"No"}),(0,s.jsx)(t.td,{children:(0,s.jsx)(t.code,{children:"true"})}),(0,s.jsx)(t.td,{children:"TCP multiplexing; must match the server"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:(0,s.jsx)(t.code,{children:"transport.heartbeatInterval"})}),(0,s.jsx)(t.td,{children:"No"}),(0,s.jsx)(t.td,{children:(0,s.jsx)(t.code,{children:"-1"})}),(0,s.jsxs)(t.td,{children:["Application heartbeat interval (seconds); ",(0,s.jsx)(t.code,{children:"-1"})," disables it. Becomes ",(0,s.jsx)(t.code,{children:"30"})," when ",(0,s.jsx)(t.code,{children:"tcpMux"})," is off"]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:(0,s.jsx)(t.code,{children:"transport.heartbeatTimeout"})}),(0,s.jsx)(t.td,{children:"No"}),(0,s.jsx)(t.td,{children:(0,s.jsx)(t.code,{children:"-1"})}),(0,s.jsxs)(t.td,{children:["Heartbeat timeout (seconds); disconnect if no Pong. Becomes ",(0,s.jsx)(t.code,{children:"90"})," when ",(0,s.jsx)(t.code,{children:"tcpMux"})," is off; see ",(0,s.jsx)(t.a,{href:"/orbien/en/docs/transport/tcp-mux",children:"TCP Multiplexing"})]})]})]})]}),"\n",(0,s.jsx)(t.h2,{id:"server-parameters",children:"Server parameters"}),"\n",(0,s.jsxs)(t.table,{children:[(0,s.jsx)(t.thead,{children:(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.th,{children:"Parameter"}),(0,s.jsx)(t.th,{children:"Required"}),(0,s.jsx)(t.th,{children:"Default"}),(0,s.jsx)(t.th,{children:"Description"})]})}),(0,s.jsxs)(t.tbody,{children:[(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:(0,s.jsx)(t.code,{children:"listen"})}),(0,s.jsx)(t.td,{children:"Yes"}),(0,s.jsx)(t.td,{children:(0,s.jsx)(t.code,{children:"0.0.0.0:9527"})}),(0,s.jsx)(t.td,{children:"TCP listen address"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:(0,s.jsx)(t.code,{children:"transport.tcpMux"})}),(0,s.jsx)(t.td,{children:"No"}),(0,s.jsx)(t.td,{children:(0,s.jsx)(t.code,{children:"true"})}),(0,s.jsx)(t.td,{children:"TCP multiplexing; must match the client"})]})]})]})]})}function h(e={}){let{wrapper:t}={...(0,d.R)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(a,{...e})}):a(e)}},7008(e,t,r){r.d(t,{R:()=>c,x:()=>l});var n=r(1763);let s={},d=n.createContext(s);function c(e){let t=n.useContext(d);return n.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function l(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:c(e.components),n.createElement(d.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/2506a922.e24c6914.js b/en/assets/js/2506a922.e24c6914.js new file mode 100644 index 0000000..1c95f52 --- /dev/null +++ b/en/assets/js/2506a922.e24c6914.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkorbien_docs=self.webpackChunkorbien_docs||[]).push([["413"],{3569(e,t,n){n.r(t),n.d(t,{metadata:()=>i,default:()=>h,frontMatter:()=>l,contentTitle:()=>c,toc:()=>a,assets:()=>d});var i=JSON.parse('{"id":"transport/tcp-mux","title":"TCP Multiplexing","description":"One physical connection carries multiple logical streams (Yamux), reducing connection-setup overhead. Applies to tcp / websocket / kcp; QUIC has built-in multiplexing, so this setting has no effect.","source":"@site/i18n/en/docusaurus-plugin-content-docs/current/transport/tcp-mux.md","sourceDirName":"transport","slug":"/transport/tcp-mux","permalink":"/orbien/en/docs/transport/tcp-mux","draft":false,"unlisted":false,"editUrl":"https://github.com/orbien-org/orbien/tree/main/docs/docs/transport/tcp-mux.md","tags":[],"version":"current","sidebarPosition":2.5,"frontMatter":{"sidebar_position":2.5,"sidebar_label":"TCP Multiplexing","title":"TCP Multiplexing"},"sidebar":"docsSidebar","previous":{"title":"Connection Pool","permalink":"/orbien/en/docs/transport/connect-pool"},"next":{"title":"TLS","permalink":"/orbien/en/docs/transport/tls"}}'),r=n(1987),s=n(7008);let l={sidebar_position:2.5,sidebar_label:"TCP Multiplexing",title:"TCP Multiplexing"},c="TCP Multiplexing",d={},a=[{value:"Example: Enable",id:"example-enable",level:2},{value:"Example: Disable",id:"example-disable",level:2},{value:"Client parameters",id:"client-parameters",level:2},{value:"Server parameters",id:"server-parameters",level:2}];function o(e){let t={code:"code",h1:"h1",h2:"h2",header:"header",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,s.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(t.header,{children:(0,r.jsx)(t.h1,{id:"tcp-multiplexing",children:"TCP Multiplexing"})}),"\n",(0,r.jsxs)(t.p,{children:["One physical connection carries multiple logical streams (Yamux), reducing connection-setup overhead. Applies to ",(0,r.jsx)(t.code,{children:"tcp"})," / ",(0,r.jsx)(t.code,{children:"websocket"})," / ",(0,r.jsx)(t.code,{children:"kcp"}),"; ",(0,r.jsx)(t.strong,{children:"QUIC has built-in multiplexing, so this setting has no effect"}),"."]}),"\n",(0,r.jsxs)(t.p,{children:["Client and server ",(0,r.jsx)(t.code,{children:"tcpMux"})," ",(0,r.jsx)(t.strong,{children:"must match"}),", or the handshake will fail."]}),"\n",(0,r.jsx)(t.h2,{id:"example-enable",children:"Example: Enable"}),"\n",(0,r.jsxs)(t.p,{children:["TCP multiplexing is enabled by default. When it is on, application heartbeats can stay off (",(0,r.jsx)(t.code,{children:"heartbeatInterval"})," / ",(0,r.jsx)(t.code,{children:"heartbeatTimeout"})," = ",(0,r.jsx)(t.code,{children:"-1"}),"); dead connections are detected by multiplexing keepalive instead."]}),"\n",(0,r.jsx)(t.p,{children:"Server:"}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-toml",children:"# orbien-server.toml\n[transport]\ntcpMux = true\nmuxKeepaliveSecs = 30\n"})}),"\n",(0,r.jsx)(t.p,{children:"Client:"}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-toml",children:"# orbien.toml\n[transport]\ntcpMux = true\nmuxKeepaliveSecs = 30\n"})}),"\n",(0,r.jsx)(t.h2,{id:"example-disable",children:"Example: Disable"}),"\n",(0,r.jsx)(t.p,{children:"When disabled, each control/data stream uses its own connection, so application heartbeats should be enabled."}),"\n",(0,r.jsx)(t.p,{children:"Server:"}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-toml",children:"# orbien-server.toml\n[transport]\ntcpMux = false\nheartbeatTimeout = 90\n"})}),"\n",(0,r.jsx)(t.p,{children:"Client:"}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-toml",children:"# orbien.toml\n[transport]\ntcpMux = false\nheartbeatInterval = 30\nheartbeatTimeout = 90\n"})}),"\n",(0,r.jsxs)(t.p,{children:["If the client omits heartbeat settings, disabling ",(0,r.jsx)(t.code,{children:"tcpMux"})," automatically sets ",(0,r.jsx)(t.code,{children:"heartbeatInterval=30"})," and ",(0,r.jsx)(t.code,{children:"heartbeatTimeout=90"}),"."]}),"\n",(0,r.jsx)(t.h2,{id:"client-parameters",children:"Client parameters"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Parameter"}),(0,r.jsx)(t.th,{children:"Required"}),(0,r.jsx)(t.th,{children:"Default"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:(0,r.jsx)(t.code,{children:"transport.tcpMux"})}),(0,r.jsx)(t.td,{children:"No"}),(0,r.jsx)(t.td,{children:(0,r.jsx)(t.code,{children:"true"})}),(0,r.jsx)(t.td,{children:"Enable multiplexing; must match the server"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:(0,r.jsx)(t.code,{children:"transport.muxKeepaliveSecs"})}),(0,r.jsx)(t.td,{children:"No"}),(0,r.jsx)(t.td,{children:(0,r.jsx)(t.code,{children:"30"})}),(0,r.jsxs)(t.td,{children:["Multiplexing keepalive interval (seconds). Rust yamux has no native KeepAlive; when ",(0,r.jsx)(t.code,{children:"tcpMux=true"})," and application heartbeats are off, a control-plane Ping is sent at this interval (equivalent keepalive)"]})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:(0,r.jsx)(t.code,{children:"transport.heartbeatInterval"})}),(0,r.jsx)(t.td,{children:"No"}),(0,r.jsxs)(t.td,{children:[(0,r.jsx)(t.code,{children:"-1"})," (mux on) / ",(0,r.jsx)(t.code,{children:"30"})," (mux off)"]}),(0,r.jsxs)(t.td,{children:["Application heartbeat interval (seconds); ",(0,r.jsx)(t.code,{children:"-1"})," disables it"]})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:(0,r.jsx)(t.code,{children:"transport.heartbeatTimeout"})}),(0,r.jsx)(t.td,{children:"No"}),(0,r.jsxs)(t.td,{children:[(0,r.jsx)(t.code,{children:"-1"})," (mux on) / ",(0,r.jsx)(t.code,{children:"90"})," (mux off)"]}),(0,r.jsxs)(t.td,{children:["Disconnect if no Pong is received within this many seconds; ",(0,r.jsx)(t.code,{children:"-1"})," disables it"]})]})]})]}),"\n",(0,r.jsx)(t.h2,{id:"server-parameters",children:"Server parameters"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Parameter"}),(0,r.jsx)(t.th,{children:"Required"}),(0,r.jsx)(t.th,{children:"Default"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:(0,r.jsx)(t.code,{children:"transport.tcpMux"})}),(0,r.jsx)(t.td,{children:"No"}),(0,r.jsx)(t.td,{children:(0,r.jsx)(t.code,{children:"true"})}),(0,r.jsx)(t.td,{children:"Enable multiplexing; must match the client"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:(0,r.jsx)(t.code,{children:"transport.muxKeepaliveSecs"})}),(0,r.jsx)(t.td,{children:"No"}),(0,r.jsx)(t.td,{children:(0,r.jsx)(t.code,{children:"30"})}),(0,r.jsxs)(t.td,{children:["Multiplexing keepalive interval (seconds). Rust yamux has no native KeepAlive; when ",(0,r.jsx)(t.code,{children:"tcpMux=true"})," and application heartbeat timeout is off, ",(0,r.jsx)(t.code,{children:"interval\xd73"})," is used as the timeout for kicking a client that sends no Ping (symmetric with the client)"]})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:(0,r.jsx)(t.code,{children:"transport.heartbeatTimeout"})}),(0,r.jsx)(t.td,{children:"No"}),(0,r.jsxs)(t.td,{children:[(0,r.jsx)(t.code,{children:"-1"})," (mux on) / ",(0,r.jsx)(t.code,{children:"90"})," (mux off)"]}),(0,r.jsxs)(t.td,{children:["Kick the control connection if no client Ping is received within this many seconds; ",(0,r.jsx)(t.code,{children:"-1"})," disables application heartbeat timeout (when mux is on, the keepalive logic above is used instead)"]})]})]})]})]})}function h(e={}){let{wrapper:t}={...(0,s.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(o,{...e})}):o(e)}},7008(e,t,n){n.d(t,{R:()=>l,x:()=>c});var i=n(1763);let r={},s=i.createContext(r);function l(e){let t=i.useContext(s);return i.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function c(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:l(e.components),i.createElement(s.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/2a662f4c.811c0482.js b/en/assets/js/2a662f4c.811c0482.js new file mode 100644 index 0000000..c252d2f --- /dev/null +++ b/en/assets/js/2a662f4c.811c0482.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkorbien_docs=self.webpackChunkorbien_docs||[]).push([["572"],{293(e){e.exports=JSON.parse('{"version":{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"docsSidebar":[{"type":"link","href":"/orbien/en/docs/intro","label":"Introduction","docId":"intro","unlisted":false},{"type":"link","href":"/orbien/en/docs/download","label":"Download","docId":"download","unlisted":false},{"type":"link","href":"/orbien/en/docs/quickstart","label":"Quick Start","docId":"quickstart","unlisted":false},{"type":"link","href":"/orbien/en/docs/docker","label":"Docker","docId":"docker","unlisted":false},{"type":"category","label":"Tunnel Protocols","collapsible":true,"collapsed":true,"items":[{"type":"link","href":"/orbien/en/docs/tunnels/tcp","label":"TCP","docId":"tunnels/tcp","unlisted":false},{"type":"link","href":"/orbien/en/docs/tunnels/udp","label":"UDP","docId":"tunnels/udp","unlisted":false},{"type":"link","href":"/orbien/en/docs/tunnels/http","label":"HTTP","docId":"tunnels/http","unlisted":false},{"type":"link","href":"/orbien/en/docs/tunnels/https","label":"HTTPS","docId":"tunnels/https","unlisted":false},{"type":"link","href":"/orbien/en/docs/tunnels/domains","label":"Domains","docId":"tunnels/domains","unlisted":false}]},{"type":"category","label":"Transport & Security","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"Transport Protocols","collapsible":true,"collapsed":true,"items":[{"type":"link","href":"/orbien/en/docs/transport/protocol/tcp","label":"TCP","docId":"transport/protocol/tcp","unlisted":false},{"type":"link","href":"/orbien/en/docs/transport/protocol/websocket","label":"WebSocket","docId":"transport/protocol/websocket","unlisted":false},{"type":"link","href":"/orbien/en/docs/transport/protocol/quic","label":"QUIC","docId":"transport/protocol/quic","unlisted":false},{"type":"link","href":"/orbien/en/docs/transport/protocol/kcp","label":"KCP","docId":"transport/protocol/kcp","unlisted":false}]},{"type":"link","href":"/orbien/en/docs/transport/connect-pool","label":"Connection Pool","docId":"transport/connect-pool","unlisted":false},{"type":"link","href":"/orbien/en/docs/transport/tcp-mux","label":"TCP Multiplexing","docId":"transport/tcp-mux","unlisted":false},{"type":"link","href":"/orbien/en/docs/transport/tls","label":"TLS","docId":"transport/tls","unlisted":false}]},{"type":"category","label":"Features","collapsible":true,"collapsed":true,"items":[{"type":"link","href":"/orbien/en/docs/features/authentication","label":"Authentication","docId":"features/authentication","unlisted":false},{"type":"link","href":"/orbien/en/docs/features/dashboard","label":"Dashboard","docId":"features/dashboard","unlisted":false},{"type":"link","href":"/orbien/en/docs/features/public-bind","label":"Public Bind Address","docId":"features/public-bind","unlisted":false},{"type":"link","href":"/orbien/en/docs/features/bandwidth","label":"Bandwidth Limit","docId":"features/bandwidth","unlisted":false},{"type":"link","href":"/orbien/en/docs/features/real-ip","label":"Real IP","docId":"features/real-ip","unlisted":false}]},{"type":"category","label":"Integrations","collapsible":true,"collapsed":true,"items":[{"type":"link","href":"/orbien/en/docs/integrations/springboot","label":"Spring Boot","docId":"integrations/springboot","unlisted":false}]},{"type":"link","href":"/orbien/en/docs/performance","label":"Performance","docId":"performance","unlisted":false},{"type":"link","href":"/orbien/en/docs/roadmap","label":"Roadmap","docId":"roadmap","unlisted":false},{"type":"link","href":"/orbien/en/docs/license","label":"License","docId":"license","unlisted":false},{"type":"link","href":"/orbien/en/docs/community","label":"Community & Contributing","docId":"community","unlisted":false}]},"docs":{"community":{"id":"community","title":"Community & Contributing","description":"- Discord: Orbien","sidebar":"docsSidebar"},"docker":{"id":"docker","title":"Docker","description":"Server","sidebar":"docsSidebar"},"download":{"id":"download","title":"Download","description":"Choose the package for your OS and architecture","sidebar":"docsSidebar"},"features/authentication":{"id":"features/authentication","title":"Authentication","description":"Token authentication when the client connects to the server. If the server has no token (or it is empty), authentication is skipped.","sidebar":"docsSidebar"},"features/bandwidth":{"id":"features/bandwidth","title":"Bandwidth Limit","description":"Limit forwarded bandwidth per tunnel. Configure it under transport on [[tunnels]].","sidebar":"docsSidebar"},"features/dashboard":{"id":"features/dashboard","title":"Dashboard","description":"Server web dashboard. Enable it by configuring [dashboard] in orbien-server.toml with port > 0.","sidebar":"docsSidebar"},"features/public-bind":{"id":"features/public-bind","title":"Public Bind Address","description":"The server has two kinds of listeners:","sidebar":"docsSidebar"},"features/real-ip":{"id":"features/real-ip","title":"Real IP","description":"After tunneling, the local service usually sees the tunnel-side address. Use the following to get the visitor IP.","sidebar":"docsSidebar"},"integrations/springboot":{"id":"integrations/springboot","title":"Spring Boot Integration","description":"Orbien provides an embeddable Java client for Spring Boot. Current scope:","sidebar":"docsSidebar"},"intro":{"id":"intro","title":"Introduction","description":"Orbien is a high-performance NAT traversal tool written in Rust. It exposes services on a private network to the public internet securely and efficiently. By establishing a stable reverse tunnel, it works around firewall restrictions and is well suited to remote debugging, publishing internal services, development and testing, IoT device access, and similar scenarios.","sidebar":"docsSidebar"},"license":{"id":"license","title":"License","description":"Orbien is licensed under the Apache License 2.0.","sidebar":"docsSidebar"},"performance":{"id":"performance","title":"Performance","description":"The following is a local-loopback memory-usage benchmark. Compared with frp, Orbien uses less memory and stays more stable.","sidebar":"docsSidebar"},"quickstart":{"id":"quickstart","title":"Quick Start","description":"Download the archive for your platform and extract it.","sidebar":"docsSidebar"},"roadmap":{"id":"roadmap","title":"Roadmap","description":"- [ ] P2P hole punching","sidebar":"docsSidebar"},"transport/connect-pool":{"id":"transport/connect-pool","title":"Connection Pool","description":"Pre-create data connections/streams at login to reduce the latency of opening new connections. Client poolCount is capped by server maxConnPool.","sidebar":"docsSidebar"},"transport/protocol/kcp":{"id":"transport/protocol/kcp","title":"KCP","description":"Reliable transport over UDP; more stable on lossy networks. For TLS, see TLS.","sidebar":"docsSidebar"},"transport/protocol/quic":{"id":"transport/protocol/quic","title":"QUIC","description":"UDP-based. Encryption and multiplexing are built in, so tcpMux / transport.tls.enable have no effect. Certificate verification can still be configured via transport.tls; see TLS.","sidebar":"docsSidebar"},"transport/protocol/tcp":{"id":"transport/protocol/tcp","title":"TCP","description":"The default transport protocol. The client establishes a control channel through the server listen address. For TLS, see TLS.","sidebar":"docsSidebar"},"transport/protocol/websocket":{"id":"transport/protocol/websocket","title":"WebSocket","description":"Shares the server listen address with TCP. Useful when you need to traverse an HTTP proxy, or when only WebSocket is allowed. For TLS, see TLS.","sidebar":"docsSidebar"},"transport/tcp-mux":{"id":"transport/tcp-mux","title":"TCP Multiplexing","description":"One physical connection carries multiple logical streams (Yamux), reducing connection-setup overhead. Applies to tcp / websocket / kcp; QUIC has built-in multiplexing, so this setting has no effect.","sidebar":"docsSidebar"},"transport/tls":{"id":"transport/tls","title":"TLS","description":"Control-channel TLS. Applies to tcp / websocket / kcp (QUIC is already encrypted, but the certificate path fields can still be used for QUIC identity verification).","sidebar":"docsSidebar"},"tunnels/domains":{"id":"tunnels/domains","title":"Domains","description":"Forward visitor traffic to a client tunnel by domain. After the server enables httpGwPort / httpsGwPort, the client binds domains with domains.","sidebar":"docsSidebar"},"tunnels/http":{"id":"tunnels/http","title":"HTTP","description":"Expose an internal HTTP service to the public internet by domain. The server must enable the domain gateway; see Domains.","sidebar":"docsSidebar"},"tunnels/https":{"id":"tunnels/https","title":"HTTPS","description":"Expose an internal service to the public internet by domain. The server must enable the domain gateway; see Domains.","sidebar":"docsSidebar"},"tunnels/tcp":{"id":"tunnels/tcp","title":"TCP","description":"Map an internal TCP service to a public port on the server.","sidebar":"docsSidebar"},"tunnels/udp":{"id":"tunnels/udp","title":"UDP","description":"Map an internal UDP service to a public port on the server.","sidebar":"docsSidebar"}}}}')}}]); \ No newline at end of file diff --git a/en/assets/js/2f2388ac.edec12c7.js b/en/assets/js/2f2388ac.edec12c7.js new file mode 100644 index 0000000..d2da45a --- /dev/null +++ b/en/assets/js/2f2388ac.edec12c7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkorbien_docs=self.webpackChunkorbien_docs||[]).push([["331"],{3818(e,r,t){t.r(r),t.d(r,{metadata:()=>n,default:()=>h,frontMatter:()=>d,contentTitle:()=>c,toc:()=>o,assets:()=>l});var n=JSON.parse('{"id":"transport/protocol/quic","title":"QUIC","description":"UDP-based. Encryption and multiplexing are built in, so tcpMux / transport.tls.enable have no effect. Certificate verification can still be configured via transport.tls; see TLS.","source":"@site/i18n/en/docusaurus-plugin-content-docs/current/transport/protocol/quic.md","sourceDirName":"transport/protocol","slug":"/transport/protocol/quic","permalink":"/orbien/en/docs/transport/protocol/quic","draft":false,"unlisted":false,"editUrl":"https://github.com/orbien-org/orbien/tree/main/docs/docs/transport/protocol/quic.md","tags":[],"version":"current","sidebarPosition":3,"frontMatter":{"sidebar_position":3,"sidebar_label":"QUIC","title":"QUIC"},"sidebar":"docsSidebar","previous":{"title":"WebSocket","permalink":"/orbien/en/docs/transport/protocol/websocket"},"next":{"title":"KCP","permalink":"/orbien/en/docs/transport/protocol/kcp"}}'),s=t(1987),i=t(7008);let d={sidebar_position:3,sidebar_label:"QUIC",title:"QUIC"},c="QUIC",l={},o=[{value:"Example",id:"example",level:2},{value:"Client parameters",id:"client-parameters",level:2},{value:"Server parameters",id:"server-parameters",level:2}];function a(e){let r={a:"a",code:"code",h1:"h1",h2:"h2",header:"header",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,i.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(r.header,{children:(0,s.jsx)(r.h1,{id:"quic",children:"QUIC"})}),"\n",(0,s.jsxs)(r.p,{children:["UDP-based. Encryption and multiplexing are built in, so ",(0,s.jsx)(r.code,{children:"tcpMux"})," / ",(0,s.jsx)(r.code,{children:"transport.tls.enable"})," have no effect. Certificate verification can still be configured via ",(0,s.jsx)(r.code,{children:"transport.tls"}),"; see ",(0,s.jsx)(r.a,{href:"/orbien/en/docs/transport/tls",children:"TLS"}),"."]}),"\n",(0,s.jsx)(r.h2,{id:"example",children:"Example"}),"\n",(0,s.jsx)(r.p,{children:"Server:"}),"\n",(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{className:"language-toml",children:'# orbien-server.toml\nlisten = "0.0.0.0:9527"\nquicPort = 9528\n\n[transport.quic]\nkeepalivePeriod = 10\nmaxIdleTimeout = 30\nmaxIncomingStreams = 100000\n'})}),"\n",(0,s.jsx)(r.p,{children:"Client:"}),"\n",(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{className:"language-toml",children:'# orbien.toml\nserver = "YOUR_SERVER_IP:9528"\n\n[transport]\nprotocol = "quic"\n\n[transport.quic]\nkeepalivePeriod = 10\nmaxIdleTimeout = 30\nmaxIncomingStreams = 100000\n'})}),"\n",(0,s.jsxs)(r.p,{children:[(0,s.jsx)(r.code,{children:"server"})," must point at the server ",(0,s.jsx)(r.code,{children:"quicPort"}),"."]}),"\n",(0,s.jsx)(r.h2,{id:"client-parameters",children:"Client parameters"}),"\n",(0,s.jsxs)(r.table,{children:[(0,s.jsx)(r.thead,{children:(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.th,{children:"Parameter"}),(0,s.jsx)(r.th,{children:"Required"}),(0,s.jsx)(r.th,{children:"Default"}),(0,s.jsx)(r.th,{children:"Description"})]})}),(0,s.jsxs)(r.tbody,{children:[(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:(0,s.jsx)(r.code,{children:"transport.protocol"})}),(0,s.jsx)(r.td,{children:"Yes"}),(0,s.jsx)(r.td,{children:(0,s.jsx)(r.code,{children:"tcp"})}),(0,s.jsxs)(r.td,{children:["Always ",(0,s.jsx)(r.code,{children:"quic"})]})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:(0,s.jsx)(r.code,{children:"server"})}),(0,s.jsx)(r.td,{children:"Yes"}),(0,s.jsx)(r.td,{}),(0,s.jsxs)(r.td,{children:["Server address; the port is ",(0,s.jsx)(r.code,{children:"quicPort"})]})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:(0,s.jsx)(r.code,{children:"transport.quic.keepalivePeriod"})}),(0,s.jsx)(r.td,{children:"No"}),(0,s.jsx)(r.td,{children:(0,s.jsx)(r.code,{children:"10"})}),(0,s.jsx)(r.td,{children:"QUIC keepalive period (seconds)"})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:(0,s.jsx)(r.code,{children:"transport.quic.maxIdleTimeout"})}),(0,s.jsx)(r.td,{children:"No"}),(0,s.jsx)(r.td,{children:(0,s.jsx)(r.code,{children:"30"})}),(0,s.jsx)(r.td,{children:"QUIC idle timeout (seconds)"})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:(0,s.jsx)(r.code,{children:"transport.quic.maxIncomingStreams"})}),(0,s.jsx)(r.td,{children:"No"}),(0,s.jsx)(r.td,{children:(0,s.jsx)(r.code,{children:"100000"})}),(0,s.jsx)(r.td,{children:"Max concurrent bidirectional QUIC streams (also set on the client dial)"})]})]})]}),"\n",(0,s.jsx)(r.h2,{id:"server-parameters",children:"Server parameters"}),"\n",(0,s.jsxs)(r.table,{children:[(0,s.jsx)(r.thead,{children:(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.th,{children:"Parameter"}),(0,s.jsx)(r.th,{children:"Required"}),(0,s.jsx)(r.th,{children:"Default"}),(0,s.jsx)(r.th,{children:"Description"})]})}),(0,s.jsxs)(r.tbody,{children:[(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:(0,s.jsx)(r.code,{children:"quicPort"})}),(0,s.jsx)(r.td,{children:"Yes"}),(0,s.jsx)(r.td,{children:(0,s.jsx)(r.code,{children:"0"})}),(0,s.jsxs)(r.td,{children:["QUIC listen port (UDP); ",(0,s.jsx)(r.code,{children:"0"})," disables it; must not equal ",(0,s.jsx)(r.code,{children:"kcpPort"})]})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:(0,s.jsx)(r.code,{children:"transport.quic.keepalivePeriod"})}),(0,s.jsx)(r.td,{children:"No"}),(0,s.jsx)(r.td,{children:(0,s.jsx)(r.code,{children:"10"})}),(0,s.jsx)(r.td,{children:"QUIC keepalive period (seconds)"})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:(0,s.jsx)(r.code,{children:"transport.quic.maxIdleTimeout"})}),(0,s.jsx)(r.td,{children:"No"}),(0,s.jsx)(r.td,{children:(0,s.jsx)(r.code,{children:"30"})}),(0,s.jsx)(r.td,{children:"QUIC idle timeout (seconds)"})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:(0,s.jsx)(r.code,{children:"transport.quic.maxIncomingStreams"})}),(0,s.jsx)(r.td,{children:"No"}),(0,s.jsx)(r.td,{children:(0,s.jsx)(r.code,{children:"100000"})}),(0,s.jsx)(r.td,{children:"Max incoming QUIC streams"})]})]})]})]})}function h(e={}){let{wrapper:r}={...(0,i.R)(),...e.components};return r?(0,s.jsx)(r,{...e,children:(0,s.jsx)(a,{...e})}):a(e)}},7008(e,r,t){t.d(r,{R:()=>d,x:()=>c});var n=t(1763);let s={},i=n.createContext(s);function d(e){let r=n.useContext(i);return n.useMemo(function(){return"function"==typeof e?e(r):{...r,...e}},[r,e])}function c(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:d(e.components),n.createElement(i.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/406.7afbacb1.js b/en/assets/js/406.7afbacb1.js new file mode 100644 index 0000000..67ea663 --- /dev/null +++ b/en/assets/js/406.7afbacb1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkorbien_docs=self.webpackChunkorbien_docs||[]).push([["406"],{821(e,t,n){n.d(t,{default:()=>o});function o(e,{target:t=document.body}={}){if("string"!=typeof e)throw TypeError(`Expected parameter \`text\` to be a \`string\`, got \`${typeof e}\`.`);let n=document.createElement("textarea"),l=document.activeElement;n.value=e,n.setAttribute("readonly",""),n.style.all="unset",n.style.contain="strict",n.style.position="absolute",n.style.left="-9999px",n.style.width="2em",n.style.height="2em",n.style.padding="0",n.style.border="none",n.style.outline="none",n.style.boxShadow="none",n.style.background="transparent",n.style.fontSize="12pt",n.style.whiteSpace="pre";let s=document.getSelection(),a=s.rangeCount>0&&s.getRangeAt(0);t.append(n),n.select(),n.selectionStart=0,n.selectionEnd=e.length;let r=!1;try{r=document.execCommand("copy")}catch{}return n.remove(),a&&(s.removeAllRanges(),s.addRange(a)),l&&l.focus(),r}}}]); \ No newline at end of file diff --git a/en/assets/js/43054f0e.4dde2329.js b/en/assets/js/43054f0e.4dde2329.js new file mode 100644 index 0000000..8da4a8e --- /dev/null +++ b/en/assets/js/43054f0e.4dde2329.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkorbien_docs=self.webpackChunkorbien_docs||[]).push([["439"],{4503(e,n,t){t.r(n),t.d(n,{metadata:()=>s,default:()=>h,frontMatter:()=>o,contentTitle:()=>d,toc:()=>c,assets:()=>l});var s=JSON.parse('{"id":"tunnels/domains","title":"Domains","description":"Forward visitor traffic to a client tunnel by domain. After the server enables httpGwPort / httpsGwPort, the client binds domains with domains.","source":"@site/i18n/en/docusaurus-plugin-content-docs/current/tunnels/domains.md","sourceDirName":"tunnels","slug":"/tunnels/domains","permalink":"/orbien/en/docs/tunnels/domains","draft":false,"unlisted":false,"editUrl":"https://github.com/orbien-org/orbien/tree/main/docs/docs/tunnels/domains.md","tags":[],"version":"current","sidebarPosition":5,"frontMatter":{"sidebar_position":5,"sidebar_label":"Domains","title":"Domains"},"sidebar":"docsSidebar","previous":{"title":"HTTPS","permalink":"/orbien/en/docs/tunnels/https"},"next":{"title":"TCP","permalink":"/orbien/en/docs/transport/protocol/tcp"}}'),i=t(1987),r=t(7008);let o={sidebar_position:5,sidebar_label:"Domains",title:"Domains"},d="Domains",l={},c=[{value:"Example: Custom domain",id:"example-custom-domain",level:2},{value:"Example: Subdomain prefix",id:"example-subdomain-prefix",level:2},{value:"Parameters",id:"parameters",level:2}];function a(e){let n={code:"code",h1:"h1",h2:"h2",header:"header",li:"li",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,r.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.header,{children:(0,i.jsx)(n.h1,{id:"domains",children:"Domains"})}),"\n",(0,i.jsxs)(n.p,{children:["Forward visitor traffic to a client tunnel by domain. After the server enables ",(0,i.jsx)(n.code,{children:"httpGwPort"})," / ",(0,i.jsx)(n.code,{children:"httpsGwPort"}),", the client binds domains with ",(0,i.jsx)(n.code,{children:"domains"}),"."]}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"domains"})," is required and must be non-empty for http/https. Rules:"]}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["A short name with no ",(0,i.jsx)(n.code,{children:"."})," (e.g. ",(0,i.jsx)(n.code,{children:"blog"}),") is treated as a subdomain prefix and expanded to ",(0,i.jsx)(n.code,{children:"{prefix}.{rootDomain}"})," (requires server ",(0,i.jsx)(n.code,{children:"rootDomain"}),")"]}),"\n",(0,i.jsxs)(n.li,{children:["A full domain with ",(0,i.jsx)(n.code,{children:"."})," (e.g. ",(0,i.jsx)(n.code,{children:"web.example.com"}),"): if it belongs to ",(0,i.jsx)(n.code,{children:"rootDomain"})," or a subdomain of it, it is used as-is; otherwise it is treated as an external custom domain and also used as-is"]}),"\n",(0,i.jsx)(n.li,{children:"Wildcards are not supported"}),"\n"]}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"Port isolation:"})," ",(0,i.jsx)(n.code,{children:"httpGwPort"})," / ",(0,i.jsx)(n.code,{children:"httpsGwPort"})," must not share overlapping addresses with the control channel ",(0,i.jsx)(n.code,{children:"listen"})," (",(0,i.jsx)(n.code,{children:"0.0.0.0"})," overlaps any address). The two gateway ports must also differ from each other. The control plane and visitor traffic use separate listeners; there is no protocol demux on a single port."]}),"\n",(0,i.jsx)(n.h2,{id:"example-custom-domain",children:"Example: Custom domain"}),"\n",(0,i.jsx)(n.p,{children:"Server:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-toml",children:"# orbien-server.toml\nhttpGwPort = 80\nhttpsGwPort = 443\n"})}),"\n",(0,i.jsx)(n.p,{children:"Client:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-toml",children:'# orbien.toml\n[[tunnels]]\nname = "web"\nprotocol = "http"\nservice = "127.0.0.1:8080"\ndomains = ["web.example.com"]\n'})}),"\n",(0,i.jsxs)(n.p,{children:["Point ",(0,i.jsx)(n.code,{children:"web.example.com"})," at the server IP, then access it."]}),"\n",(0,i.jsx)(n.h2,{id:"example-subdomain-prefix",children:"Example: Subdomain prefix"}),"\n",(0,i.jsx)(n.p,{children:"Server:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-toml",children:'# orbien-server.toml\nhttpGwPort = 80\nrootDomain = "example.com"\n'})}),"\n",(0,i.jsx)(n.p,{children:"Client:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-toml",children:'# orbien.toml\n[[tunnels]]\nname = "web"\nprotocol = "http"\nservice = "127.0.0.1:8080"\ndomains = ["blog"]\n'})}),"\n",(0,i.jsxs)(n.p,{children:["The access domain is ",(0,i.jsx)(n.code,{children:"blog.example.com"}),". You can also mix prefixes and full domains, e.g. ",(0,i.jsx)(n.code,{children:'domains = ["web", "app.example.com"]'}),"."]}),"\n",(0,i.jsx)(n.h2,{id:"parameters",children:"Parameters"}),"\n",(0,i.jsxs)(n.table,{children:[(0,i.jsx)(n.thead,{children:(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.th,{children:"Parameter"}),(0,i.jsx)(n.th,{children:"Required"}),(0,i.jsx)(n.th,{children:"Default"}),(0,i.jsx)(n.th,{children:"Description"})]})}),(0,i.jsxs)(n.tbody,{children:[(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"httpGwPort"})}),(0,i.jsx)(n.td,{children:"No"}),(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"0"})}),(0,i.jsxs)(n.td,{children:["HTTP gateway port; ",(0,i.jsx)(n.code,{children:"0"})," disables it; must not conflict with ",(0,i.jsx)(n.code,{children:"listen"})]})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"httpsGwPort"})}),(0,i.jsx)(n.td,{children:"No"}),(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"0"})}),(0,i.jsxs)(n.td,{children:["HTTPS gateway port; ",(0,i.jsx)(n.code,{children:"0"})," disables it; must not conflict with ",(0,i.jsx)(n.code,{children:"listen"})]})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"rootDomain"})}),(0,i.jsx)(n.td,{children:"No"}),(0,i.jsx)(n.td,{}),(0,i.jsxs)(n.td,{children:["Root domain; client ",(0,i.jsx)(n.code,{children:"domains"})," entries with no ",(0,i.jsx)(n.code,{children:"."})," become ",(0,i.jsx)(n.code,{children:"prefix.rootDomain"})]})]})]})]})]})}function h(e={}){let{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(a,{...e})}):a(e)}},7008(e,n,t){t.d(n,{R:()=>o,x:()=>d});var s=t(1763);let i={},r=s.createContext(i);function o(e){let n=s.useContext(r);return s.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),s.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/4ac686ed.eb9285c5.js b/en/assets/js/4ac686ed.eb9285c5.js new file mode 100644 index 0000000..d7db79d --- /dev/null +++ b/en/assets/js/4ac686ed.eb9285c5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkorbien_docs=self.webpackChunkorbien_docs||[]).push([["669"],{1794(e,n,t){t.r(n),t.d(n,{metadata:()=>i,default:()=>a,frontMatter:()=>s,contentTitle:()=>c,toc:()=>d,assets:()=>u});var i=JSON.parse('{"id":"community","title":"Community & Contributing","description":"- Discord: Orbien","source":"@site/i18n/en/docusaurus-plugin-content-docs/current/community.md","sourceDirName":".","slug":"/community","permalink":"/orbien/en/docs/community","draft":false,"unlisted":false,"editUrl":"https://github.com/orbien-org/orbien/tree/main/docs/docs/community.md","tags":[],"version":"current","sidebarPosition":93,"frontMatter":{"sidebar_position":93,"sidebar_label":"Community & Contributing"},"sidebar":"docsSidebar","previous":{"title":"License","permalink":"/orbien/en/docs/license"}}'),r=t(1987),o=t(7008);let s={sidebar_position:93,sidebar_label:"Community & Contributing"},c="Community & Contributing",u={},d=[];function l(e){let n={a:"a",h1:"h1",header:"header",li:"li",ul:"ul",...(0,o.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.header,{children:(0,r.jsx)(n.h1,{id:"community--contributing",children:"Community & Contributing"})}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["Discord: ",(0,r.jsx)(n.a,{href:"https://discord.gg/4dgQjCS3k",children:"Orbien"})]}),"\n",(0,r.jsxs)(n.li,{children:["GitHub: ",(0,r.jsx)(n.a,{href:"https://github.com/orbien-org",children:"orbien-org"})]}),"\n",(0,r.jsxs)(n.li,{children:["Issue: ",(0,r.jsx)(n.a,{href:"https://github.com/orbien-org/orbien/issues",children:"Report issues and suggestions"})]}),"\n"]})]})}function a(e={}){let{wrapper:n}={...(0,o.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(l,{...e})}):l(e)}},7008(e,n,t){t.d(n,{R:()=>s,x:()=>c});var i=t(1763);let r={},o=i.createContext(r);function s(e){let n=i.useContext(o);return i.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:s(e.components),i.createElement(o.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/4be978ea.dc6372ef.js b/en/assets/js/4be978ea.dc6372ef.js new file mode 100644 index 0000000..cafd238 --- /dev/null +++ b/en/assets/js/4be978ea.dc6372ef.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkorbien_docs=self.webpackChunkorbien_docs||[]).push([["177"],{5232(e,n,t){t.r(n),t.d(n,{metadata:()=>o,default:()=>h,frontMatter:()=>c,contentTitle:()=>i,toc:()=>d,assets:()=>l});var o=JSON.parse('{"id":"transport/connect-pool","title":"Connection Pool","description":"Pre-create data connections/streams at login to reduce the latency of opening new connections. Client poolCount is capped by server maxConnPool.","source":"@site/i18n/en/docusaurus-plugin-content-docs/current/transport/connect-pool.md","sourceDirName":"transport","slug":"/transport/connect-pool","permalink":"/orbien/en/docs/transport/connect-pool","draft":false,"unlisted":false,"editUrl":"https://github.com/orbien-org/orbien/tree/main/docs/docs/transport/connect-pool.md","tags":[],"version":"current","sidebarPosition":2,"frontMatter":{"sidebar_position":2,"sidebar_label":"Connection Pool","title":"Connection Pool"},"sidebar":"docsSidebar","previous":{"title":"KCP","permalink":"/orbien/en/docs/transport/protocol/kcp"},"next":{"title":"TCP Multiplexing","permalink":"/orbien/en/docs/transport/tcp-mux"}}'),r=t(1987),s=t(7008);let c={sidebar_position:2,sidebar_label:"Connection Pool",title:"Connection Pool"},i="Connection Pool",l={},d=[{value:"Example",id:"example",level:2},{value:"Client parameters",id:"client-parameters",level:2},{value:"Server parameters",id:"server-parameters",level:2}];function a(e){let n={code:"code",h1:"h1",h2:"h2",header:"header",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,s.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.header,{children:(0,r.jsx)(n.h1,{id:"connection-pool",children:"Connection Pool"})}),"\n",(0,r.jsxs)(n.p,{children:["Pre-create data connections/streams at login to reduce the latency of opening new connections. Client ",(0,r.jsx)(n.code,{children:"poolCount"})," is capped by server ",(0,r.jsx)(n.code,{children:"maxConnPool"}),"."]}),"\n",(0,r.jsx)(n.h2,{id:"example",children:"Example"}),"\n",(0,r.jsx)(n.p,{children:"Server:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-toml",children:"# orbien-server.toml\n[transport]\nmaxConnPool = 5\n"})}),"\n",(0,r.jsx)(n.p,{children:"Client:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-toml",children:"# orbien.toml\n[transport]\npoolCount = 3\n"})}),"\n",(0,r.jsxs)(n.p,{children:["The effective count is ",(0,r.jsx)(n.code,{children:"min(poolCount, maxConnPool)"}),"."]}),"\n",(0,r.jsx)(n.h2,{id:"client-parameters",children:"Client parameters"}),"\n",(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Parameter"}),(0,r.jsx)(n.th,{children:"Required"}),(0,r.jsx)(n.th,{children:"Default"}),(0,r.jsx)(n.th,{children:"Description"})]})}),(0,r.jsx)(n.tbody,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"transport.poolCount"})}),(0,r.jsx)(n.td,{children:"No"}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"1"})}),(0,r.jsx)(n.td,{children:"Number of data connections/streams to pre-create at login"})]})})]}),"\n",(0,r.jsx)(n.h2,{id:"server-parameters",children:"Server parameters"}),"\n",(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Parameter"}),(0,r.jsx)(n.th,{children:"Required"}),(0,r.jsx)(n.th,{children:"Default"}),(0,r.jsx)(n.th,{children:"Description"})]})}),(0,r.jsx)(n.tbody,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"transport.maxConnPool"})}),(0,r.jsx)(n.td,{children:"No"}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"5"})}),(0,r.jsxs)(n.td,{children:["Cap on client ",(0,r.jsx)(n.code,{children:"poolCount"}),"; a configured ",(0,r.jsx)(n.code,{children:"0"})," is automatically treated as ",(0,r.jsx)(n.code,{children:"5"})]})]})})]})]})}function h(e={}){let{wrapper:n}={...(0,s.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(a,{...e})}):a(e)}},7008(e,n,t){t.d(n,{R:()=>c,x:()=>i});var o=t(1763);let r={},s=o.createContext(r);function c(e){let n=o.useContext(s);return o.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function i(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:c(e.components),o.createElement(s.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/523c1e1a.fa4312a2.js b/en/assets/js/523c1e1a.fa4312a2.js new file mode 100644 index 0000000..9fa4bb2 --- /dev/null +++ b/en/assets/js/523c1e1a.fa4312a2.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkorbien_docs=self.webpackChunkorbien_docs||[]).push([["301"],{790(e,n,r){r.r(n),r.d(n,{metadata:()=>t,default:()=>P,frontMatter:()=>k,contentTitle:()=>I,toc:()=>_,assets:()=>S});var t=JSON.parse('{"id":"integrations/springboot","title":"Spring Boot Integration","description":"Orbien provides an embeddable Java client for Spring Boot. Current scope:","source":"@site/i18n/en/docusaurus-plugin-content-docs/current/integrations/springboot.mdx","sourceDirName":"integrations","slug":"/integrations/springboot","permalink":"/orbien/en/docs/integrations/springboot","draft":false,"unlisted":false,"editUrl":"https://github.com/orbien-org/orbien/tree/main/docs/docs/integrations/springboot.mdx","tags":[],"version":"current","sidebarPosition":1,"frontMatter":{"sidebar_position":1,"sidebar_label":"Spring Boot"},"sidebar":"docsSidebar","previous":{"title":"Real IP","permalink":"/orbien/en/docs/features/real-ip"},"next":{"title":"Performance","permalink":"/orbien/en/docs/performance"}}'),o=r(1987),a=r(7008),i=r(1763),l=r(3526),s=r(1009),c=r(6532),u=r(9879),d=r(9327),p=r(8292),h=r(8184);function f({value:e,tabValues:n}){return n.some(n=>n.value===e)}let m=(0,i.createContext)(null);function b(){let e=i.useContext(m);if(!e)throw Error("useTabsContext() must be used within a Tabs component");return e}function g(e){return(0,o.jsx)(m.Provider,{value:e.value,children:e.children})}var x=r(8522),v=r(8261);function j({className:e}){let{selectedValue:n,selectValue:r,tabValues:t,block:a}=b(),i=[],{blockElementScrollPositionUntilNextRender:s}=(0,x.a_)(),c=e=>{let o=e.currentTarget,a=t[i.indexOf(o)].value;a!==n&&(s(o),r(a))},u=e=>{let n=null;switch(e.key){case"Enter":c(e);break;case"ArrowRight":{let r=i.indexOf(e.currentTarget)+1;n=i[r]??i[0];break}case"ArrowLeft":{let r=i.indexOf(e.currentTarget)-1;n=i[r]??i[i.length-1]}}n?.focus()};return(0,o.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,l.A)("tabs",{"tabs--block":a},e),children:t.map(({value:e,label:r,attributes:t})=>(0,o.jsx)("li",{role:"tab",tabIndex:n===e?0:-1,"aria-selected":n===e,ref:e=>{i.push(e)},onKeyDown:u,onClick:c,...t,className:(0,l.A)("tabs__item","tabItem_Xg_G",t?.className,{"tabs__item--active":n===e}),children:r??e},e))})}function y({children:e}){return(0,o.jsx)("div",{className:"margin-top--md",children:e})}function w({className:e,children:n}){return(0,o.jsxs)("div",{className:(0,l.A)(s.G.tabs.container,"tabs-container","tabList_f3wh"),children:[(0,o.jsx)(j,{className:e}),(0,o.jsx)(y,{children:n})]})}function T(e){var n;let r=(0,v.A)(),t=function(e){let n,{defaultValue:r,queryString:t=!1,groupId:o}=e,a=function(e){let{values:n,children:r}=e;return(0,i.useMemo)(()=>{let e=n??i.Children.toArray(r).flatMap(e=>{if(!e)return[];if((0,i.isValidElement)(e)&&function(e){let{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return[e];let n="string"==typeof e.type?e.type:e.type.name;throw Error(`Docusaurus error: Bad <Tabs> child <${n}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop. +If you do not want to pass on a "value" prop to the direct children of <Tabs>, you can also pass an explicit <Tabs values={...}> prop.`)}).map(({props:{value:e,label:n,attributes:r,default:t}})=>({value:e,label:n,attributes:r,default:t})),t=(0,p.XI)(e,(e,n)=>e.value===n.value);if(t.length>0)throw Error(`Docusaurus error: Duplicate values "${t.map(e=>`'${e.value}'`).join(", ")}" found in <Tabs>. Every value needs to be unique.`);return e},[n,r])}(e),[l,s]=(0,i.useState)(()=>(function({defaultValue:e,tabValues:n}){if(0===n.length)throw Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(e){if(!f({value:e,tabValues:n}))throw Error(`Docusaurus error: The <Tabs> has a defaultValue "${e}" but none of its children has the corresponding value. Available values are: ${n.map(e=>e.value).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return e}let r=n.find(e=>e.default)??n[0];if(!r)throw Error("Unexpected error: 0 tabValues");return r.value})({defaultValue:r,tabValues:a})),[m,b]=function({queryString:e=!1,groupId:n}){let r=(0,c.W6)(),t=function({queryString:e=!1,groupId:n}){if("string"==typeof e)return e;if(!1===e)return null;if(!0===e&&!n)throw Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:e,groupId:n});return[(0,d.aZ)(t),(0,i.useCallback)(e=>{if(!t)return;let n=new URLSearchParams(r.location.search);n.set(t,e),r.replace({...r.location,search:n.toString()})},[t,r])]}({queryString:t,groupId:o}),[g,x]=function({groupId:e}){let n=e?`docusaurus.tab.${e}`:null,[r,t]=(0,h.Dv)(n);return[r,(0,i.useCallback)(e=>{n&&t.set(e)},[n,t])]}({groupId:o}),v=f({value:n=m??g,tabValues:a})?n:null;return(0,u.A)(()=>{v&&s(v)},[v]),{selectedValue:l,selectValue:(0,i.useCallback)(e=>{if(!f({value:e,tabValues:a}))throw Error(`Can't select invalid tab value=${e}`);s(e),b(e),x(e)},[b,x,a]),tabValues:a,lazy:e.lazy??!1,block:e.block??!1}}(e);return(0,o.jsx)(g,{value:t,children:(0,o.jsx)(w,{className:e.className,children:(n=e.children,i.Children.toArray(n).filter(e=>"\n"!==e))})},String(r))}function C({children:e,className:n,hidden:r}){return(0,o.jsx)("div",{role:"tabpanel",className:(0,l.A)("tabItem_vIHf",n),hidden:r,children:e})}function N({children:e,className:n,value:r}){let{selectedValue:t,lazy:a}=b(),i=r===t;return!i&&a?null:(0,o.jsx)(C,{className:n,hidden:!i,children:e})}let k={sidebar_position:1,sidebar_label:"Spring Boot"},I="Spring Boot Integration",S={},_=[{value:"Minimal configuration",id:"minimal-configuration",level:2},{value:"Full reference",id:"full-reference",level:2}];function E(e){let n={code:"code",h1:"h1",h2:"h2",header:"header",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,a.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(n.header,{children:(0,o.jsx)(n.h1,{id:"spring-boot-integration",children:"Spring Boot Integration"})}),"\n",(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.strong,{children:"Orbien"})," provides an embeddable Java client for Spring Boot. Current scope:"]}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:["Tunnel protocols: ",(0,o.jsx)(n.strong,{children:"TCP"})," and ",(0,o.jsx)(n.strong,{children:"HTTP"})," only"]}),"\n",(0,o.jsxs)(n.li,{children:["Transport: ",(0,o.jsx)(n.strong,{children:"TCP"})," only"]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"No TCP multiplexing"}),": set ",(0,o.jsx)(n.code,{children:"orbien.tcp-mux"})," to ",(0,o.jsx)(n.code,{children:"false"}),", and set ",(0,o.jsx)(n.code,{children:"[transport].tcpMux = false"})," on the server (multiplexing is on by default; turn it off when using the Java client)"]}),"\n"]}),"\n",(0,o.jsxs)(T,{children:[(0,o.jsx)(N,{value:"Maven",label:"Maven",default:!0,children:(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-xml",children:"<dependency>\n <groupId>io.github.lxien</groupId>\n <artifactId>orbien-spring-boot-starter</artifactId>\n <version>3.0.0</version>\n</dependency>\n"})})}),(0,o.jsx)(N,{value:"Gradle",label:"Gradle",children:(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-groovy",children:'implementation("io.github.lxien:orbien-spring-boot-starter:3.0.0")\n'})})})]}),"\n",(0,o.jsx)(n.h2,{id:"minimal-configuration",children:"Minimal configuration"}),"\n",(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.code,{children:"local-port"})," and ",(0,o.jsx)(n.code,{children:"name"})," are optional. When omitted, the starter uses the Spring Boot web port and ",(0,o.jsx)(n.code,{children:"spring.application.name"})," (or ",(0,o.jsx)(n.code,{children:"orbien-{protocol}"}),")."]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-yaml",children:"# application.yml\norbien:\n enabled: true\n server-addr: 127.0.0.1\n # token: YOUR_TOKEN # optional\n tunnel:\n protocol: http\n domains:\n - web.domain.com\n"})}),"\n",(0,o.jsx)(n.p,{children:"Disable multiplexing on the server, for example:"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-toml",children:'# orbien-server.toml\nlisten = "0.0.0.0:9527"\nhttpGwPort = 80\n\n[transport]\ntcpMux = false # disable TCP multiplexing\n'})}),"\n",(0,o.jsx)(n.h2,{id:"full-reference",children:"Full reference"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-yaml",children:'# application.yml\norbien:\n enabled: true\n server-addr: 127.0.0.1\n server-port: 9527\n token: YOUR_TOKEN\n tcp-mux: false # must be false and match the server\n pool-count: 1 # data-connection pool size requested at login\n heartbeat-interval-secs: 30\n user: spring-boot-demo # optional; shown on the dashboard\n # session-id: "" # optional; if empty, restore from session-id-file or generate\n # session-id-file: "" # optional; if empty, use the default path under the user home\n tunnel:\n name: web-demo # optional\n protocol: http # tcp | http\n local-ip: 127.0.0.1\n # local-port: 8080 # optional; defaults to the Spring Boot listen port\n # remote-port: 9000 # required when protocol=tcp\n domains: # required when protocol=http\n - web.domain.com\n'})})]})}function P(e={}){let{wrapper:n}={...(0,a.R)(),...e.components};return n?(0,o.jsx)(n,{...e,children:(0,o.jsx)(E,{...e})}):E(e)}},7008(e,n,r){r.d(n,{R:()=>i,x:()=>l});var t=r(1763);let o={},a=t.createContext(o);function i(e){let n=t.useContext(a);return t.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:i(e.components),t.createElement(a.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/5b44acae.cadbf450.js b/en/assets/js/5b44acae.cadbf450.js new file mode 100644 index 0000000..0618972 --- /dev/null +++ b/en/assets/js/5b44acae.cadbf450.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkorbien_docs=self.webpackChunkorbien_docs||[]).push([["637"],{5249(e,n,t){t.r(n),t.d(n,{metadata:()=>r,default:()=>u,frontMatter:()=>o,contentTitle:()=>l,toc:()=>c,assets:()=>a});var r=JSON.parse('{"id":"intro","title":"Introduction","description":"Orbien is a high-performance NAT traversal tool written in Rust. It exposes services on a private network to the public internet securely and efficiently. By establishing a stable reverse tunnel, it works around firewall restrictions and is well suited to remote debugging, publishing internal services, development and testing, IoT device access, and similar scenarios.","source":"@site/i18n/en/docusaurus-plugin-content-docs/current/intro.md","sourceDirName":".","slug":"/intro","permalink":"/orbien/en/docs/intro","draft":false,"unlisted":false,"editUrl":"https://github.com/orbien-org/orbien/tree/main/docs/docs/intro.md","tags":[],"version":"current","sidebarPosition":1,"frontMatter":{"sidebar_position":1,"sidebar_label":"Introduction","slug":"/intro"},"sidebar":"docsSidebar","next":{"title":"Download","permalink":"/orbien/en/docs/download"}}'),i=t(1987),s=t(7008);let o={sidebar_position:1,sidebar_label:"Introduction",slug:"/intro"},l="Introduction",a={},c=[{value:"Features",id:"features",level:2}];function d(e){let n={h1:"h1",h2:"h2",header:"header",li:"li",p:"p",strong:"strong",ul:"ul",...(0,s.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.header,{children:(0,i.jsx)(n.h1,{id:"introduction",children:"Introduction"})}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"Orbien"})," is a high-performance NAT traversal tool written in ",(0,i.jsx)(n.strong,{children:"Rust"}),". It exposes services on a private network to the public internet securely and efficiently. By establishing a stable reverse tunnel, it works around ",(0,i.jsx)(n.strong,{children:"firewall"})," restrictions and is well suited to ",(0,i.jsx)(n.strong,{children:"remote debugging"}),", ",(0,i.jsx)(n.strong,{children:"publishing internal services"}),", ",(0,i.jsx)(n.strong,{children:"development and testing"}),", ",(0,i.jsx)(n.strong,{children:"IoT device"})," access, and similar scenarios."]}),"\n",(0,i.jsx)(n.h2,{id:"features",children:"Features"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Multi-protocol tunnels"}),": TCP, UDP, HTTP, and HTTPS"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Transport"}),": TCP, QUIC, KCP, and WebSocket"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Multiplexing"}),": TCP multiplexing so one physical connection carries multiple logical data streams, reducing overhead and latency"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"HTTPS"}),": HTTPS is forwarded by SNI; domain certificates stay local. Optional client-side TLS termination"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Security"}),": TLS and mTLS encrypted transport"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Operations"}),": A lightweight server web UI and a cross-platform desktop client for ops and monitoring"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Cross-platform"}),": Linux, Windows, macOS, and FreeBSD, multiple architectures"]}),"\n"]})]})}function u(e={}){let{wrapper:n}={...(0,s.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(d,{...e})}):d(e)}},7008(e,n,t){t.d(n,{R:()=>o,x:()=>l});var r=t(1763);let i={},s=r.createContext(i);function o(e){let n=r.useContext(s);return r.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),r.createElement(s.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/5e95c892.61b67e6b.js b/en/assets/js/5e95c892.61b67e6b.js new file mode 100644 index 0000000..c8478a6 --- /dev/null +++ b/en/assets/js/5e95c892.61b67e6b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkorbien_docs=self.webpackChunkorbien_docs||[]).push([["668"],{4214(e,r,s){s.r(r),s.d(r,{default:()=>t});var c=s(1987);s(1763);var a=s(3526),n=s(310),u=s(1009),o=s(6345),d=s(6819);function t(e){return(0,c.jsx)(n.e3,{className:(0,a.A)(u.G.wrapper.docsPages),children:(0,c.jsx)(d.A,{children:(0,o.v)(e.route.routes)})})}}}]); \ No newline at end of file diff --git a/en/assets/js/627.5a86db8b.js b/en/assets/js/627.5a86db8b.js new file mode 100644 index 0000000..ac861ed --- /dev/null +++ b/en/assets/js/627.5a86db8b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkorbien_docs=self.webpackChunkorbien_docs||[]).push([["627"],{7320(e,t,n){n.d(t,{A:()=>a});var i=n(1987);n(1763);var o=n(3526),r=n(6475),s=n(8241);function a({className:e}){return(0,i.jsx)("main",{className:(0,o.A)("container margin-vert--xl",e),children:(0,i.jsx)("div",{className:"row",children:(0,i.jsxs)("div",{className:"col col--6 col--offset-3",children:[(0,i.jsx)(s.A,{as:"h1",className:"hero__title",children:(0,i.jsx)(r.A,{id:"theme.NotFound.title",description:"The title of the 404 page",children:"Page Not Found"})}),(0,i.jsx)("p",{children:(0,i.jsx)(r.A,{id:"theme.NotFound.p1",description:"The first paragraph of the 404 page",children:"We could not find what you were looking for."})}),(0,i.jsx)("p",{children:(0,i.jsx)(r.A,{id:"theme.NotFound.p2",description:"The 2nd paragraph of the 404 page",children:"Please contact the owner of the site that linked you to the original URL and let them know their link is broken."})})]})})})}},7702(e,t,n){n.r(t),n.d(t,{default:()=>d});var i=n(1987);n(1763);var o=n(6475),r=n(310),s=n(6819),a=n(7320);function d(){let e=(0,o.T)({id:"theme.NotFound.title",message:"Page Not Found"});return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(r.be,{title:e}),(0,i.jsx)(s.A,{children:(0,i.jsx)(a.A,{})})]})}}}]); \ No newline at end of file diff --git a/en/assets/js/66aed93e.70d7565c.js b/en/assets/js/66aed93e.70d7565c.js new file mode 100644 index 0000000..280e7c9 --- /dev/null +++ b/en/assets/js/66aed93e.70d7565c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkorbien_docs=self.webpackChunkorbien_docs||[]).push([["321"],{972(e,n,r){r.r(n),r.d(n,{metadata:()=>t,default:()=>u,frontMatter:()=>s,contentTitle:()=>c,toc:()=>l,assets:()=>a});var t=JSON.parse('{"id":"quickstart","title":"Quick Start","description":"Download the archive for your platform and extract it.","source":"@site/i18n/en/docusaurus-plugin-content-docs/current/quickstart.md","sourceDirName":".","slug":"/quickstart","permalink":"/orbien/en/docs/quickstart","draft":false,"unlisted":false,"editUrl":"https://github.com/orbien-org/orbien/tree/main/docs/docs/quickstart.md","tags":[],"version":"current","sidebarPosition":3,"frontMatter":{"sidebar_position":3,"title":"Quick Start"},"sidebar":"docsSidebar","previous":{"title":"Download","permalink":"/orbien/en/docs/download"},"next":{"title":"Docker","permalink":"/orbien/en/docs/docker"}}'),o=r(1987),i=r(7008);let s={sidebar_position:3,title:"Quick Start"},c="Quick Start",a={},l=[{value:"Server",id:"server",level:2},{value:"Client",id:"client",level:2}];function d(e){let n={a:"a",code:"code",h1:"h1",h2:"h2",header:"header",p:"p",pre:"pre",...(0,i.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(n.header,{children:(0,o.jsx)(n.h1,{id:"quick-start",children:"Quick Start"})}),"\n",(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.a,{href:"/orbien/en/docs/download",children:"Download"})," the archive for your platform and extract it."]}),"\n",(0,o.jsx)(n.h2,{id:"server",children:"Server"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-toml",children:'# orbien-server.toml\nlisten = "0.0.0.0:9527"\n'})}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-shell",children:"./orbien-server -c orbien-server.toml\n"})}),"\n",(0,o.jsx)(n.h2,{id:"client",children:"Client"}),"\n",(0,o.jsxs)(n.p,{children:["If you find the CLI cumbersome, you can use ",(0,o.jsx)(n.a,{href:"/orbien/en/docs/download",children:"Orbien Desktop"}),"."]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-toml",children:'# orbien.toml\nserver = "127.0.0.1:9527"\n\n[[tunnels]]\nname = "mysql"\nprotocol = "tcp"\nservice = "127.0.0.1:3306"\nremotePort = 9000\n'})}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-shell",children:"./orbien -c orbien.toml\n"})})]})}function u(e={}){let{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,o.jsx)(n,{...e,children:(0,o.jsx)(d,{...e})}):d(e)}},7008(e,n,r){r.d(n,{R:()=>s,x:()=>c});var t=r(1763);let o={},i=t.createContext(o);function s(e){let n=t.useContext(i);return t.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:s(e.components),t.createElement(i.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/772f9d94.4fd05b25.js b/en/assets/js/772f9d94.4fd05b25.js new file mode 100644 index 0000000..2e79c73 --- /dev/null +++ b/en/assets/js/772f9d94.4fd05b25.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkorbien_docs=self.webpackChunkorbien_docs||[]).push([["206"],{9582(e,r,t){t.r(r),t.d(r,{metadata:()=>n,default:()=>h,frontMatter:()=>c,contentTitle:()=>o,toc:()=>l,assets:()=>i});var n=JSON.parse('{"id":"transport/protocol/websocket","title":"WebSocket","description":"Shares the server listen address with TCP. Useful when you need to traverse an HTTP proxy, or when only WebSocket is allowed. For TLS, see TLS.","source":"@site/i18n/en/docusaurus-plugin-content-docs/current/transport/protocol/websocket.md","sourceDirName":"transport/protocol","slug":"/transport/protocol/websocket","permalink":"/orbien/en/docs/transport/protocol/websocket","draft":false,"unlisted":false,"editUrl":"https://github.com/orbien-org/orbien/tree/main/docs/docs/transport/protocol/websocket.md","tags":[],"version":"current","sidebarPosition":2,"frontMatter":{"sidebar_position":2,"sidebar_label":"WebSocket","title":"WebSocket"},"sidebar":"docsSidebar","previous":{"title":"TCP","permalink":"/orbien/en/docs/transport/protocol/tcp"},"next":{"title":"QUIC","permalink":"/orbien/en/docs/transport/protocol/quic"}}'),s=t(1987),d=t(7008);let c={sidebar_position:2,sidebar_label:"WebSocket",title:"WebSocket"},o="WebSocket",i={},l=[{value:"Example",id:"example",level:2},{value:"Client parameters",id:"client-parameters",level:2},{value:"Server parameters",id:"server-parameters",level:2}];function a(e){let r={a:"a",code:"code",h1:"h1",h2:"h2",header:"header",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,d.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(r.header,{children:(0,s.jsx)(r.h1,{id:"websocket",children:"WebSocket"})}),"\n",(0,s.jsxs)(r.p,{children:["Shares the server ",(0,s.jsx)(r.code,{children:"listen"})," address with TCP. Useful when you need to traverse an HTTP proxy, or when only WebSocket is allowed. For TLS, see ",(0,s.jsx)(r.a,{href:"/orbien/en/docs/transport/tls",children:"TLS"}),"."]}),"\n",(0,s.jsx)(r.h2,{id:"example",children:"Example"}),"\n",(0,s.jsx)(r.p,{children:"Server:"}),"\n",(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{className:"language-toml",children:'# orbien-server.toml\nlisten = "0.0.0.0:9527"\n\n[transport]\ntcpMux = true\n'})}),"\n",(0,s.jsx)(r.p,{children:"Client:"}),"\n",(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{className:"language-toml",children:'# orbien.toml\nserver = "YOUR_SERVER_IP:9527"\n\n[transport]\nprotocol = "websocket"\ntcpMux = true\nheartbeatInterval = -1\n'})}),"\n",(0,s.jsx)(r.h2,{id:"client-parameters",children:"Client parameters"}),"\n",(0,s.jsxs)(r.table,{children:[(0,s.jsx)(r.thead,{children:(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.th,{children:"Parameter"}),(0,s.jsx)(r.th,{children:"Required"}),(0,s.jsx)(r.th,{children:"Default"}),(0,s.jsx)(r.th,{children:"Description"})]})}),(0,s.jsxs)(r.tbody,{children:[(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:(0,s.jsx)(r.code,{children:"transport.protocol"})}),(0,s.jsx)(r.td,{children:"Yes"}),(0,s.jsx)(r.td,{children:(0,s.jsx)(r.code,{children:"tcp"})}),(0,s.jsxs)(r.td,{children:["Always ",(0,s.jsx)(r.code,{children:"websocket"})," (or ",(0,s.jsx)(r.code,{children:"ws"}),")"]})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:(0,s.jsx)(r.code,{children:"transport.tcpMux"})}),(0,s.jsx)(r.td,{children:"No"}),(0,s.jsx)(r.td,{children:(0,s.jsx)(r.code,{children:"true"})}),(0,s.jsx)(r.td,{children:"TCP multiplexing; must match the server"})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:(0,s.jsx)(r.code,{children:"transport.heartbeatInterval"})}),(0,s.jsx)(r.td,{children:"No"}),(0,s.jsx)(r.td,{children:(0,s.jsx)(r.code,{children:"-1"})}),(0,s.jsxs)(r.td,{children:["Application heartbeat interval (seconds); ",(0,s.jsx)(r.code,{children:"-1"})," disables it. Becomes ",(0,s.jsx)(r.code,{children:"30"})," when ",(0,s.jsx)(r.code,{children:"tcpMux"})," is off"]})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:(0,s.jsx)(r.code,{children:"transport.heartbeatTimeout"})}),(0,s.jsx)(r.td,{children:"No"}),(0,s.jsx)(r.td,{children:(0,s.jsx)(r.code,{children:"-1"})}),(0,s.jsxs)(r.td,{children:["Heartbeat timeout (seconds); disconnect if no Pong. Becomes ",(0,s.jsx)(r.code,{children:"90"})," when ",(0,s.jsx)(r.code,{children:"tcpMux"})," is off; see ",(0,s.jsx)(r.a,{href:"/orbien/en/docs/transport/tcp-mux",children:"TCP Multiplexing"})]})]})]})]}),"\n",(0,s.jsx)(r.h2,{id:"server-parameters",children:"Server parameters"}),"\n",(0,s.jsxs)(r.table,{children:[(0,s.jsx)(r.thead,{children:(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.th,{children:"Parameter"}),(0,s.jsx)(r.th,{children:"Required"}),(0,s.jsx)(r.th,{children:"Default"}),(0,s.jsx)(r.th,{children:"Description"})]})}),(0,s.jsxs)(r.tbody,{children:[(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:(0,s.jsx)(r.code,{children:"listen"})}),(0,s.jsx)(r.td,{children:"Yes"}),(0,s.jsx)(r.td,{children:(0,s.jsx)(r.code,{children:"0.0.0.0:9527"})}),(0,s.jsx)(r.td,{children:"Shared listen address with TCP"})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:(0,s.jsx)(r.code,{children:"transport.tcpMux"})}),(0,s.jsx)(r.td,{children:"No"}),(0,s.jsx)(r.td,{children:(0,s.jsx)(r.code,{children:"true"})}),(0,s.jsx)(r.td,{children:"TCP multiplexing; must match the client"})]})]})]})]})}function h(e={}){let{wrapper:r}={...(0,d.R)(),...e.components};return r?(0,s.jsx)(r,{...e,children:(0,s.jsx)(a,{...e})}):a(e)}},7008(e,r,t){t.d(r,{R:()=>c,x:()=>o});var n=t(1763);let s={},d=n.createContext(s);function c(e){let r=n.useContext(d);return n.useMemo(function(){return"function"==typeof e?e(r):{...r,...e}},[r,e])}function o(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:c(e.components),n.createElement(d.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/7abcf739.b09dd40f.js b/en/assets/js/7abcf739.b09dd40f.js new file mode 100644 index 0000000..9f0ba7d --- /dev/null +++ b/en/assets/js/7abcf739.b09dd40f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkorbien_docs=self.webpackChunkorbien_docs||[]).push([["188"],{4671(e,r,t){t.r(r),t.d(r,{metadata:()=>n,default:()=>h,frontMatter:()=>i,contentTitle:()=>l,toc:()=>c,assets:()=>d});var n=JSON.parse('{"id":"features/real-ip","title":"Real IP","description":"After tunneling, the local service usually sees the tunnel-side address. Use the following to get the visitor IP.","source":"@site/i18n/en/docusaurus-plugin-content-docs/current/features/real-ip.md","sourceDirName":"features","slug":"/features/real-ip","permalink":"/orbien/en/docs/features/real-ip","draft":false,"unlisted":false,"editUrl":"https://github.com/orbien-org/orbien/tree/main/docs/docs/features/real-ip.md","tags":[],"version":"current","sidebarPosition":5,"frontMatter":{"sidebar_position":5,"sidebar_label":"Real IP","title":"Real IP"},"sidebar":"docsSidebar","previous":{"title":"Bandwidth Limit","permalink":"/orbien/en/docs/features/bandwidth"},"next":{"title":"Spring Boot","permalink":"/orbien/en/docs/integrations/springboot"}}'),o=t(1987),s=t(7008);let i={sidebar_position:5,sidebar_label:"Real IP",title:"Real IP"},l="Real IP",d={},c=[{value:"PROXY Protocol",id:"proxy-protocol",level:2},{value:"X-Forwarded-For",id:"x-forwarded-for",level:2},{value:"Note",id:"note",level:2}];function a(e){let r={code:"code",h1:"h1",h2:"h2",header:"header",li:"li",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,s.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(r.header,{children:(0,o.jsx)(r.h1,{id:"real-ip",children:"Real IP"})}),"\n",(0,o.jsx)(r.p,{children:"After tunneling, the local service usually sees the tunnel-side address. Use the following to get the visitor IP."}),"\n",(0,o.jsx)(r.h2,{id:"proxy-protocol",children:"PROXY Protocol"}),"\n",(0,o.jsx)(r.p,{children:"The client writes a PROXY Protocol header when connecting to the local service. The local service must support parsing it (e.g. Nginx, HAProxy)."}),"\n",(0,o.jsx)(r.pre,{children:(0,o.jsx)(r.code,{className:"language-toml",children:'# orbien.toml\nserver = "YOUR_SERVER_IP:9527"\n\n[[tunnels]]\nname = "web"\nprotocol = "tcp"\nservice = "127.0.0.1:80"\nremotePort = 9000\ntransport.proxyProtocolVersion = "v2"\n'})}),"\n",(0,o.jsxs)(r.p,{children:["Applies to ",(0,o.jsx)(r.code,{children:"tcp"})," / ",(0,o.jsx)(r.code,{children:"udp"})," / ",(0,o.jsx)(r.code,{children:"http"})," / ",(0,o.jsx)(r.code,{children:"https"})," (passthrough). Not available with ",(0,o.jsx)(r.code,{children:"tls-term"}),"."]}),"\n",(0,o.jsxs)(r.table,{children:[(0,o.jsx)(r.thead,{children:(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.th,{children:"Parameter"}),(0,o.jsx)(r.th,{children:"Required"}),(0,o.jsx)(r.th,{children:"Default"}),(0,o.jsx)(r.th,{children:"Description"})]})}),(0,o.jsx)(r.tbody,{children:(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:(0,o.jsx)(r.code,{children:"transport.proxyProtocolVersion"})}),(0,o.jsx)(r.td,{children:"No"}),(0,o.jsx)(r.td,{}),(0,o.jsxs)(r.td,{children:[(0,o.jsx)(r.code,{children:"v1"})," / ",(0,o.jsx)(r.code,{children:"v2"}),"; empty disables it"]})]})})]}),"\n",(0,o.jsx)(r.h2,{id:"x-forwarded-for",children:"X-Forwarded-For"}),"\n",(0,o.jsxs)(r.p,{children:["Injected automatically for ",(0,o.jsx)(r.code,{children:"http"})," on the server, and for ",(0,o.jsx)(r.code,{children:"https"})," + ",(0,o.jsx)(r.code,{children:"tls-term"})," by the client plugin:"]}),"\n",(0,o.jsxs)(r.ul,{children:["\n",(0,o.jsxs)(r.li,{children:[(0,o.jsx)(r.code,{children:"X-Forwarded-For"}),": visitor IP"]}),"\n",(0,o.jsxs)(r.li,{children:[(0,o.jsx)(r.code,{children:"X-Forwarded-Proto"}),": ",(0,o.jsx)(r.code,{children:"http"})," or ",(0,o.jsx)(r.code,{children:"https"})]}),"\n"]}),"\n",(0,o.jsx)(r.p,{children:"Read these headers in your app."}),"\n",(0,o.jsx)(r.h2,{id:"note",children:"Note"}),"\n",(0,o.jsxs)(r.p,{children:["The server does not parse PROXY Protocol from an upstream load balancer. The visitor source is the TCP peer that connects to ",(0,o.jsx)(r.code,{children:"proxyAddr"}),"."]})]})}function h(e={}){let{wrapper:r}={...(0,s.R)(),...e.components};return r?(0,o.jsx)(r,{...e,children:(0,o.jsx)(a,{...e})}):a(e)}},7008(e,r,t){t.d(r,{R:()=>i,x:()=>l});var n=t(1763);let o={},s=n.createContext(o);function i(e){let r=n.useContext(s);return n.useMemo(function(){return"function"==typeof e?e(r):{...r,...e}},[r,e])}function l(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:i(e.components),n.createElement(s.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/7c4e16d0.f92d6bf2.js b/en/assets/js/7c4e16d0.f92d6bf2.js new file mode 100644 index 0000000..d6b1f25 --- /dev/null +++ b/en/assets/js/7c4e16d0.f92d6bf2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkorbien_docs=self.webpackChunkorbien_docs||[]).push([["46"],{5212(e,n,t){t.r(n),t.d(n,{metadata:()=>s,default:()=>a,frontMatter:()=>d,contentTitle:()=>l,toc:()=>o,assets:()=>c});var s=JSON.parse('{"id":"tunnels/https","title":"HTTPS","description":"Expose an internal service to the public internet by domain. The server must enable the domain gateway; see Domains.","source":"@site/i18n/en/docusaurus-plugin-content-docs/current/tunnels/https.md","sourceDirName":"tunnels","slug":"/tunnels/https","permalink":"/orbien/en/docs/tunnels/https","draft":false,"unlisted":false,"editUrl":"https://github.com/orbien-org/orbien/tree/main/docs/docs/tunnels/https.md","tags":[],"version":"current","sidebarPosition":4,"frontMatter":{"sidebar_position":4,"sidebar_label":"HTTPS","title":"HTTPS"},"sidebar":"docsSidebar","previous":{"title":"HTTP","permalink":"/orbien/en/docs/tunnels/http"},"next":{"title":"Domains","permalink":"/orbien/en/docs/tunnels/domains"}}'),r=t(1987),i=t(7008);let d={sidebar_position:4,sidebar_label:"HTTPS",title:"HTTPS"},l="HTTPS",c={},o=[{value:"Example: Passthrough",id:"example-passthrough",level:2},{value:"Example: TLS termination",id:"example-tls-termination",level:2},{value:"Example: Rewrite Host with TLS termination",id:"example-rewrite-host-with-tls-termination",level:2},{value:"Example: Add request headers with TLS termination",id:"example-add-request-headers-with-tls-termination",level:2},{value:"Parameters",id:"parameters",level:2}];function h(e){let n={a:"a",code:"code",h1:"h1",h2:"h2",header:"header",li:"li",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,i.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.header,{children:(0,r.jsx)(n.h1,{id:"https",children:"HTTPS"})}),"\n",(0,r.jsxs)(n.p,{children:["Expose an internal service to the public internet by domain. The server must enable the domain gateway; see ",(0,r.jsx)(n.a,{href:"/orbien/en/docs/tunnels/domains",children:"Domains"}),"."]}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.code,{children:"domains"})," is required and must be non-empty: a full domain (e.g. ",(0,r.jsx)(n.code,{children:"web.example.com"}),"), or a short prefix with no ",(0,r.jsx)(n.code,{children:"."})," (e.g. ",(0,r.jsx)(n.code,{children:"web"}),", which requires server ",(0,r.jsx)(n.code,{children:"rootDomain"}),"). Wildcards are not supported."]}),"\n",(0,r.jsx)(n.p,{children:"Two modes:"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Passthrough"}),": Forward by SNI; the certificate is on the internal HTTPS service"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"TLS termination"}),": The client plugin ",(0,r.jsx)(n.code,{children:"tls-term"})," terminates TLS, then forwards to a local HTTP service"]}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"example-passthrough",children:"Example: Passthrough"}),"\n",(0,r.jsx)(n.p,{children:"Server:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-toml",children:'# orbien-server.toml\nlisten = "0.0.0.0:9527"\nhttpsGwPort = 443\n'})}),"\n",(0,r.jsx)(n.p,{children:"Client:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-toml",children:'# orbien.toml\nserver = "YOUR_SERVER_IP:9527"\n\n[[tunnels]]\nname = "web-ssl"\nprotocol = "https"\nservice = "127.0.0.1:443"\ndomains = ["web.example.com"]\n'})}),"\n",(0,r.jsxs)(n.p,{children:["Point ",(0,r.jsx)(n.code,{children:"web.example.com"})," at the server IP, then access:"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-shell",children:"curl https://web.example.com\n"})}),"\n",(0,r.jsx)(n.h2,{id:"example-tls-termination",children:"Example: TLS termination"}),"\n",(0,r.jsx)(n.p,{children:"The client terminates TLS; the backend only needs to serve HTTP:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-toml",children:'# orbien.toml\nserver = "YOUR_SERVER_IP:9527"\n\n[[tunnels]]\nname = "https-term"\nprotocol = "https"\ndomains = ["web.example.com"]\n\n[tunnels.plugin]\ntype = "tls-term"\nservice = "127.0.0.1:80"\ncertFile = "/path/to/cert.pem"\nkeyFile = "/path/to/key.pem"\n'})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.code,{children:"certFile"})," / ",(0,r.jsx)(n.code,{children:"keyFile"})," may be omitted. If omitted, a temporary self-signed certificate is used (browsers will warn that it is untrusted). When the plugin is enabled, use ",(0,r.jsx)(n.code,{children:"plugin.service"})," to point at local HTTP; the tunnel-level ",(0,r.jsx)(n.code,{children:"service"})," is not used, and PROXY Protocol cannot be configured."]}),"\n",(0,r.jsx)(n.h2,{id:"example-rewrite-host-with-tls-termination",children:"Example: Rewrite Host with TLS termination"}),"\n",(0,r.jsxs)(n.p,{children:["Under ",(0,r.jsx)(n.code,{children:"tls-term"}),", rewrite ",(0,r.jsx)(n.code,{children:"Host"})," before forwarding to local HTTP:"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-toml",children:'[[tunnels]]\nname = "https-term"\nprotocol = "https"\ndomains = ["web.example.com"]\n\n[tunnels.plugin]\ntype = "tls-term"\nservice = "127.0.0.1:80"\ncertFile = "/path/to/cert.pem"\nkeyFile = "/path/to/key.pem"\nhostHeaderRewrite = "127.0.0.1"\n'})}),"\n",(0,r.jsx)(n.h2,{id:"example-add-request-headers-with-tls-termination",children:"Example: Add request headers with TLS termination"}),"\n",(0,r.jsxs)(n.p,{children:["Under ",(0,r.jsx)(n.code,{children:"tls-term"}),", append custom request headers to local HTTP:"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-toml",children:'[[tunnels]]\nname = "https-term"\nprotocol = "https"\ndomains = ["web.example.com"]\n\n[tunnels.plugin]\ntype = "tls-term"\nservice = "127.0.0.1:80"\ncertFile = "/path/to/cert.pem"\nkeyFile = "/path/to/key.pem"\n\n[tunnels.plugin.requestHeaders.set]\nX-From = "orbien"\n'})}),"\n",(0,r.jsx)(n.h2,{id:"parameters",children:"Parameters"}),"\n",(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Parameter"}),(0,r.jsx)(n.th,{children:"Required"}),(0,r.jsx)(n.th,{children:"Default"}),(0,r.jsx)(n.th,{children:"Description"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"name"})}),(0,r.jsx)(n.td,{children:"Yes"}),(0,r.jsx)(n.td,{}),(0,r.jsx)(n.td,{children:"Tunnel name; must be unique"})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"protocol"})}),(0,r.jsx)(n.td,{children:"Yes"}),(0,r.jsx)(n.td,{}),(0,r.jsxs)(n.td,{children:["Always ",(0,r.jsx)(n.code,{children:"https"})]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"service"})}),(0,r.jsx)(n.td,{children:"Conditional"}),(0,r.jsx)(n.td,{}),(0,r.jsxs)(n.td,{children:["Local service address (required for passthrough), e.g. ",(0,r.jsx)(n.code,{children:"127.0.0.1:443"})]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"domains"})}),(0,r.jsx)(n.td,{children:"Yes"}),(0,r.jsx)(n.td,{}),(0,r.jsxs)(n.td,{children:["Domain list; at least one; full domain or a prefix with no ",(0,r.jsx)(n.code,{children:"."})," (prefix requires server ",(0,r.jsx)(n.code,{children:"rootDomain"}),")"]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"plugin.type"})}),(0,r.jsx)(n.td,{children:"No"}),(0,r.jsx)(n.td,{}),(0,r.jsxs)(n.td,{children:[(0,r.jsx)(n.code,{children:"tls-term"}),": terminate TLS on the client"]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"plugin.service"})}),(0,r.jsx)(n.td,{children:"Conditional"}),(0,r.jsx)(n.td,{}),(0,r.jsxs)(n.td,{children:["Required for ",(0,r.jsx)(n.code,{children:"tls-term"}),", e.g. ",(0,r.jsx)(n.code,{children:"127.0.0.1:80"})]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"plugin.certFile"})}),(0,r.jsx)(n.td,{children:"No"}),(0,r.jsx)(n.td,{}),(0,r.jsx)(n.td,{children:"Certificate path; empty uses a temporary self-signed cert"})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"plugin.keyFile"})}),(0,r.jsx)(n.td,{children:"No"}),(0,r.jsx)(n.td,{}),(0,r.jsx)(n.td,{children:"Private key path; empty uses a temporary self-signed cert"})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"plugin.hostHeaderRewrite"})}),(0,r.jsx)(n.td,{children:"No"}),(0,r.jsx)(n.td,{}),(0,r.jsx)(n.td,{children:"Rewrite Host when forwarding to the local service; empty means no rewrite"})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"plugin.requestHeaders.set"})}),(0,r.jsx)(n.td,{children:"No"}),(0,r.jsx)(n.td,{}),(0,r.jsx)(n.td,{children:"Extra request headers to send to the backend; key-value pairs"})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"transport.bandwidth"})}),(0,r.jsx)(n.td,{children:"No"}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"0"})}),(0,r.jsxs)(n.td,{children:["Bandwidth cap (Mbps); ",(0,r.jsx)(n.code,{children:"0"})," means unlimited"]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"transport.bandwidthLimitSide"})}),(0,r.jsx)(n.td,{children:"No"}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"client"})}),(0,r.jsxs)(n.td,{children:["Limit side: ",(0,r.jsx)(n.code,{children:"client"})," / ",(0,r.jsx)(n.code,{children:"server"})]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"transport.proxyProtocolVersion"})}),(0,r.jsx)(n.td,{children:"No"}),(0,r.jsx)(n.td,{}),(0,r.jsxs)(n.td,{children:["PROXY Protocol: ",(0,r.jsx)(n.code,{children:"v1"})," / ",(0,r.jsx)(n.code,{children:"v2"})," (not available with ",(0,r.jsx)(n.code,{children:"tls-term"}),")"]})]})]})]})]})}function a(e={}){let{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(h,{...e})}):h(e)}},7008(e,n,t){t.d(n,{R:()=>d,x:()=>l});var s=t(1763);let r={},i=s.createContext(r);function d(e){let n=s.useContext(i);return s.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:d(e.components),s.createElement(i.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/7fe95379.33146854.js b/en/assets/js/7fe95379.33146854.js new file mode 100644 index 0000000..61a3e92 --- /dev/null +++ b/en/assets/js/7fe95379.33146854.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkorbien_docs=self.webpackChunkorbien_docs||[]).push([["283"],{1083(e,r,t){t.r(r),t.d(r,{metadata:()=>n,default:()=>h,frontMatter:()=>d,contentTitle:()=>i,toc:()=>l,assets:()=>o});var n=JSON.parse('{"id":"transport/protocol/kcp","title":"KCP","description":"Reliable transport over UDP; more stable on lossy networks. For TLS, see TLS.","source":"@site/i18n/en/docusaurus-plugin-content-docs/current/transport/protocol/kcp.md","sourceDirName":"transport/protocol","slug":"/transport/protocol/kcp","permalink":"/orbien/en/docs/transport/protocol/kcp","draft":false,"unlisted":false,"editUrl":"https://github.com/orbien-org/orbien/tree/main/docs/docs/transport/protocol/kcp.md","tags":[],"version":"current","sidebarPosition":4,"frontMatter":{"sidebar_position":4,"sidebar_label":"KCP","title":"KCP"},"sidebar":"docsSidebar","previous":{"title":"QUIC","permalink":"/orbien/en/docs/transport/protocol/quic"},"next":{"title":"Connection Pool","permalink":"/orbien/en/docs/transport/connect-pool"}}'),s=t(1987),c=t(7008);let d={sidebar_position:4,sidebar_label:"KCP",title:"KCP"},i="KCP",o={},l=[{value:"Example",id:"example",level:2},{value:"Client parameters",id:"client-parameters",level:2},{value:"Server parameters",id:"server-parameters",level:2}];function a(e){let r={a:"a",code:"code",h1:"h1",h2:"h2",header:"header",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,c.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(r.header,{children:(0,s.jsx)(r.h1,{id:"kcp",children:"KCP"})}),"\n",(0,s.jsxs)(r.p,{children:["Reliable transport over UDP; more stable on lossy networks. For TLS, see ",(0,s.jsx)(r.a,{href:"/orbien/en/docs/transport/tls",children:"TLS"}),"."]}),"\n",(0,s.jsx)(r.h2,{id:"example",children:"Example"}),"\n",(0,s.jsx)(r.p,{children:"Server:"}),"\n",(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{className:"language-toml",children:'# orbien-server.toml\nlisten = "0.0.0.0:9527"\nkcpPort = 9529\n\n[transport]\ntcpMux = true\n'})}),"\n",(0,s.jsx)(r.p,{children:"Client:"}),"\n",(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{className:"language-toml",children:'# orbien.toml\nserver = "YOUR_SERVER_IP:9529"\n\n[transport]\nprotocol = "kcp"\ntcpMux = true\nheartbeatInterval = -1\n'})}),"\n",(0,s.jsxs)(r.p,{children:[(0,s.jsx)(r.code,{children:"server"})," must point at the server ",(0,s.jsx)(r.code,{children:"kcpPort"}),", and it must not equal ",(0,s.jsx)(r.code,{children:"quicPort"}),"."]}),"\n",(0,s.jsx)(r.h2,{id:"client-parameters",children:"Client parameters"}),"\n",(0,s.jsxs)(r.table,{children:[(0,s.jsx)(r.thead,{children:(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.th,{children:"Parameter"}),(0,s.jsx)(r.th,{children:"Required"}),(0,s.jsx)(r.th,{children:"Default"}),(0,s.jsx)(r.th,{children:"Description"})]})}),(0,s.jsxs)(r.tbody,{children:[(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:(0,s.jsx)(r.code,{children:"transport.protocol"})}),(0,s.jsx)(r.td,{children:"Yes"}),(0,s.jsx)(r.td,{children:(0,s.jsx)(r.code,{children:"tcp"})}),(0,s.jsxs)(r.td,{children:["Always ",(0,s.jsx)(r.code,{children:"kcp"})]})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:(0,s.jsx)(r.code,{children:"server"})}),(0,s.jsx)(r.td,{children:"Yes"}),(0,s.jsx)(r.td,{}),(0,s.jsxs)(r.td,{children:["Server address; the port is ",(0,s.jsx)(r.code,{children:"kcpPort"})]})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:(0,s.jsx)(r.code,{children:"transport.tcpMux"})}),(0,s.jsx)(r.td,{children:"No"}),(0,s.jsx)(r.td,{children:(0,s.jsx)(r.code,{children:"true"})}),(0,s.jsx)(r.td,{children:"TCP multiplexing; must match the server"})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:(0,s.jsx)(r.code,{children:"transport.heartbeatInterval"})}),(0,s.jsx)(r.td,{children:"No"}),(0,s.jsx)(r.td,{children:(0,s.jsx)(r.code,{children:"-1"})}),(0,s.jsxs)(r.td,{children:["Application heartbeat interval (seconds); ",(0,s.jsx)(r.code,{children:"-1"})," disables it. Becomes ",(0,s.jsx)(r.code,{children:"30"})," when ",(0,s.jsx)(r.code,{children:"tcpMux"})," is off"]})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:(0,s.jsx)(r.code,{children:"transport.heartbeatTimeout"})}),(0,s.jsx)(r.td,{children:"No"}),(0,s.jsx)(r.td,{children:(0,s.jsx)(r.code,{children:"-1"})}),(0,s.jsxs)(r.td,{children:["Heartbeat timeout (seconds); disconnect if no Pong. Becomes ",(0,s.jsx)(r.code,{children:"90"})," when ",(0,s.jsx)(r.code,{children:"tcpMux"})," is off; see ",(0,s.jsx)(r.a,{href:"/orbien/en/docs/transport/tcp-mux",children:"TCP Multiplexing"})]})]})]})]}),"\n",(0,s.jsx)(r.h2,{id:"server-parameters",children:"Server parameters"}),"\n",(0,s.jsxs)(r.table,{children:[(0,s.jsx)(r.thead,{children:(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.th,{children:"Parameter"}),(0,s.jsx)(r.th,{children:"Required"}),(0,s.jsx)(r.th,{children:"Default"}),(0,s.jsx)(r.th,{children:"Description"})]})}),(0,s.jsxs)(r.tbody,{children:[(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:(0,s.jsx)(r.code,{children:"kcpPort"})}),(0,s.jsx)(r.td,{children:"Yes"}),(0,s.jsx)(r.td,{children:(0,s.jsx)(r.code,{children:"0"})}),(0,s.jsxs)(r.td,{children:["KCP listen port (UDP); ",(0,s.jsx)(r.code,{children:"0"})," disables it; must not equal ",(0,s.jsx)(r.code,{children:"quicPort"})]})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:(0,s.jsx)(r.code,{children:"transport.tcpMux"})}),(0,s.jsx)(r.td,{children:"No"}),(0,s.jsx)(r.td,{children:(0,s.jsx)(r.code,{children:"true"})}),(0,s.jsx)(r.td,{children:"TCP multiplexing; must match the client"})]})]})]})]})}function h(e={}){let{wrapper:r}={...(0,c.R)(),...e.components};return r?(0,s.jsx)(r,{...e,children:(0,s.jsx)(a,{...e})}):a(e)}},7008(e,r,t){t.d(r,{R:()=>d,x:()=>i});var n=t(1763);let s={},c=n.createContext(s);function d(e){let r=n.useContext(c);return n.useMemo(function(){return"function"==typeof e?e(r):{...r,...e}},[r,e])}function i(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:d(e.components),n.createElement(c.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/814847fd.ec59cc50.js b/en/assets/js/814847fd.ec59cc50.js new file mode 100644 index 0000000..ee4669e --- /dev/null +++ b/en/assets/js/814847fd.ec59cc50.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkorbien_docs=self.webpackChunkorbien_docs||[]).push([["608"],{5833(e,t,r){r.r(t),r.d(t,{metadata:()=>n,default:()=>h,frontMatter:()=>l,contentTitle:()=>c,toc:()=>o,assets:()=>d});var n=JSON.parse('{"id":"transport/tls","title":"TLS","description":"Control-channel TLS. Applies to tcp / websocket / kcp (QUIC is already encrypted, but the certificate path fields can still be used for QUIC identity verification).","source":"@site/i18n/en/docusaurus-plugin-content-docs/current/transport/tls.md","sourceDirName":"transport","slug":"/transport/tls","permalink":"/orbien/en/docs/transport/tls","draft":false,"unlisted":false,"editUrl":"https://github.com/orbien-org/orbien/tree/main/docs/docs/transport/tls.md","tags":[],"version":"current","sidebarPosition":3,"frontMatter":{"sidebar_position":3,"sidebar_label":"TLS","title":"TLS"},"sidebar":"docsSidebar","previous":{"title":"TCP Multiplexing","permalink":"/orbien/en/docs/transport/tcp-mux"},"next":{"title":"Authentication","permalink":"/orbien/en/docs/features/authentication"}}'),s=r(1987),i=r(7008);let l={sidebar_position:3,sidebar_label:"TLS",title:"TLS"},c="TLS",d={},o=[{value:"Mode 1: Encryption only",id:"mode-1-encryption-only",level:2},{value:"Mode 2: Verify the server certificate",id:"mode-2-verify-the-server-certificate",level:2},{value:"Mode 3: Mutual TLS (mTLS)",id:"mode-3-mutual-tls-mtls",level:2},{value:"Client parameters",id:"client-parameters",level:2},{value:"Server parameters",id:"server-parameters",level:2}];function a(e){let t={a:"a",code:"code",h1:"h1",h2:"h2",header:"header",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,i.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.header,{children:(0,s.jsx)(t.h1,{id:"tls",children:"TLS"})}),"\n",(0,s.jsxs)(t.p,{children:["Control-channel TLS. Applies to ",(0,s.jsx)(t.code,{children:"tcp"})," / ",(0,s.jsx)(t.code,{children:"websocket"})," / ",(0,s.jsx)(t.code,{children:"kcp"})," (QUIC is already encrypted, but the certificate path fields can still be used for QUIC identity verification)."]}),"\n",(0,s.jsx)(t.p,{children:"Three modes:"}),"\n",(0,s.jsxs)(t.ol,{children:["\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"Encryption only"}),": Default; certificates are not verified"]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"Verify the server certificate"}),": The client trusts a CA and verifies the server identity"]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"Mutual TLS (mTLS)"}),": Both sides verify each other's certificates"]}),"\n"]}),"\n",(0,s.jsxs)(t.p,{children:["The control channel uses a standard TLS ClientHello (first byte ",(0,s.jsx)(t.code,{children:"0x16"}),"). HTTP / HTTPS domain gateways must use separate ports; see ",(0,s.jsx)(t.a,{href:"/orbien/en/docs/tunnels/domains",children:"Domains"}),"."]}),"\n",(0,s.jsx)(t.h2,{id:"mode-1-encryption-only",children:"Mode 1: Encryption only"}),"\n",(0,s.jsxs)(t.p,{children:["Leave ",(0,s.jsx)(t.code,{children:"trustedCaFile"})," unset; the client skips certificate verification. The server certificate may be omitted (a temporary self-signed cert is used)."]}),"\n",(0,s.jsx)(t.p,{children:"Server:"}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-toml",children:"# orbien-server.toml\n[transport.tls]\nforce = false\n"})}),"\n",(0,s.jsx)(t.p,{children:"Client:"}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-toml",children:"# orbien.toml\n[transport.tls]\nenable = true\n"})}),"\n",(0,s.jsx)(t.h2,{id:"mode-2-verify-the-server-certificate",children:"Mode 2: Verify the server certificate"}),"\n",(0,s.jsx)(t.p,{children:"The server provides a certificate; the client verifies it with a CA and sets SNI."}),"\n",(0,s.jsx)(t.p,{children:"Server:"}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-toml",children:'# orbien-server.toml\n[transport.tls]\nforce = true\ncertFile = "/path/to/server.crt"\nkeyFile = "/path/to/server.key"\n'})}),"\n",(0,s.jsx)(t.p,{children:"Client:"}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-toml",children:'# orbien.toml\n[transport.tls]\nenable = true\ntrustedCaFile = "/path/to/ca.crt"\nserverName = "orbien.example.com"\n'})}),"\n",(0,s.jsx)(t.h2,{id:"mode-3-mutual-tls-mtls",children:"Mode 3: Mutual TLS (mTLS)"}),"\n",(0,s.jsxs)(t.p,{children:["Both sides verify the peer certificate. Setting ",(0,s.jsx)(t.code,{children:"trustedCaFile"})," on the server automatically implies ",(0,s.jsx)(t.code,{children:"force = true"}),"."]}),"\n",(0,s.jsx)(t.p,{children:"Server:"}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-toml",children:'# orbien-server.toml\n[transport.tls]\nforce = true\ncertFile = "/path/to/server.crt"\nkeyFile = "/path/to/server.key"\ntrustedCaFile = "/path/to/ca.crt"\n'})}),"\n",(0,s.jsx)(t.p,{children:"Client:"}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-toml",children:'# orbien.toml\n[transport.tls]\nenable = true\ncertFile = "/path/to/client.crt"\nkeyFile = "/path/to/client.key"\ntrustedCaFile = "/path/to/ca.crt"\nserverName = "orbien.example.com"\n'})}),"\n",(0,s.jsx)(t.h2,{id:"client-parameters",children:"Client parameters"}),"\n",(0,s.jsxs)(t.table,{children:[(0,s.jsx)(t.thead,{children:(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.th,{children:"Parameter"}),(0,s.jsx)(t.th,{children:"Required"}),(0,s.jsx)(t.th,{children:"Default"}),(0,s.jsx)(t.th,{children:"Description"})]})}),(0,s.jsxs)(t.tbody,{children:[(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:(0,s.jsx)(t.code,{children:"transport.tls.enable"})}),(0,s.jsx)(t.td,{children:"No"}),(0,s.jsx)(t.td,{children:(0,s.jsx)(t.code,{children:"true"})}),(0,s.jsx)(t.td,{children:"Enable TLS; ignored for QUIC, which is already encrypted"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:(0,s.jsx)(t.code,{children:"transport.tls.certFile"})}),(0,s.jsx)(t.td,{children:"No"}),(0,s.jsx)(t.td,{}),(0,s.jsx)(t.td,{children:"Client certificate (mTLS)"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:(0,s.jsx)(t.code,{children:"transport.tls.keyFile"})}),(0,s.jsx)(t.td,{children:"No"}),(0,s.jsx)(t.td,{}),(0,s.jsx)(t.td,{children:"Client private key (mTLS)"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:(0,s.jsx)(t.code,{children:"transport.tls.trustedCaFile"})}),(0,s.jsx)(t.td,{children:"No"}),(0,s.jsx)(t.td,{}),(0,s.jsx)(t.td,{children:"Verify the server certificate; empty skips verification (encryption only)"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:(0,s.jsx)(t.code,{children:"transport.tls.serverName"})}),(0,s.jsx)(t.td,{children:"No"}),(0,s.jsx)(t.td,{}),(0,s.jsxs)(t.td,{children:["TLS SNI; empty uses the host part of ",(0,s.jsx)(t.code,{children:"server"})]})]})]})]}),"\n",(0,s.jsx)(t.h2,{id:"server-parameters",children:"Server parameters"}),"\n",(0,s.jsxs)(t.table,{children:[(0,s.jsx)(t.thead,{children:(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.th,{children:"Parameter"}),(0,s.jsx)(t.th,{children:"Required"}),(0,s.jsx)(t.th,{children:"Default"}),(0,s.jsx)(t.th,{children:"Description"})]})}),(0,s.jsxs)(t.tbody,{children:[(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:(0,s.jsx)(t.code,{children:"transport.tls.force"})}),(0,s.jsx)(t.td,{children:"No"}),(0,s.jsx)(t.td,{children:(0,s.jsx)(t.code,{children:"false"})}),(0,s.jsx)(t.td,{children:"Require TLS; reject non-TLS control connections"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:(0,s.jsx)(t.code,{children:"transport.tls.certFile"})}),(0,s.jsx)(t.td,{children:"No"}),(0,s.jsx)(t.td,{}),(0,s.jsx)(t.td,{children:"Server certificate; empty uses a temporary self-signed cert"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:(0,s.jsx)(t.code,{children:"transport.tls.keyFile"})}),(0,s.jsx)(t.td,{children:"No"}),(0,s.jsx)(t.td,{}),(0,s.jsx)(t.td,{children:"Server private key; empty uses a temporary self-signed cert"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:(0,s.jsx)(t.code,{children:"transport.tls.trustedCaFile"})}),(0,s.jsx)(t.td,{children:"No"}),(0,s.jsx)(t.td,{}),(0,s.jsxs)(t.td,{children:["Verify the client certificate (mTLS); non-empty automatically sets ",(0,s.jsx)(t.code,{children:"force = true"})]})]})]})]})]})}function h(e={}){let{wrapper:t}={...(0,i.R)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(a,{...e})}):a(e)}},7008(e,t,r){r.d(t,{R:()=>l,x:()=>c});var n=r(1763);let s={},i=n.createContext(s);function l(e){let t=n.useContext(i);return n.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function c(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:l(e.components),n.createElement(i.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/a7456010.b47ace4d.js b/en/assets/js/a7456010.b47ace4d.js new file mode 100644 index 0000000..2cbb8bd --- /dev/null +++ b/en/assets/js/a7456010.b47ace4d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkorbien_docs=self.webpackChunkorbien_docs||[]).push([["56"],{8552(e){e.exports=JSON.parse('{"name":"docusaurus-plugin-content-pages","id":"default"}')}}]); \ No newline at end of file diff --git a/en/assets/js/a7bd4aaa.96f1510e.js b/en/assets/js/a7bd4aaa.96f1510e.js new file mode 100644 index 0000000..c37093d --- /dev/null +++ b/en/assets/js/a7bd4aaa.96f1510e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkorbien_docs=self.webpackChunkorbien_docs||[]).push([["575"],{7281(e,n,s){s.r(n),s.d(n,{default:()=>d});var r=s(1987);s(1763);var o=s(310),t=s(73),c=s(6345),i=s(5992);function a(e){var n,s;let{version:t}=e;return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(i.A,{version:t.version,tag:(n=t.pluginId,s=t.version,`docs-${n}-${s}`)}),(0,r.jsx)(o.be,{children:t.noIndex&&(0,r.jsx)("meta",{name:"robots",content:"noindex, nofollow"})})]})}function l(e){let{version:n,route:s}=e;return(0,r.jsx)(o.e3,{className:n.className,children:(0,r.jsx)(t.n,{version:n,children:(0,c.v)(s.routes)})})}function d(e){return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(a,{...e}),(0,r.jsx)(l,{...e})]})}}}]); \ No newline at end of file diff --git a/en/assets/js/a89a62ae.cbe83a92.js b/en/assets/js/a89a62ae.cbe83a92.js new file mode 100644 index 0000000..e58a0be --- /dev/null +++ b/en/assets/js/a89a62ae.cbe83a92.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkorbien_docs=self.webpackChunkorbien_docs||[]).push([["45"],{9796(e,n,r){r.r(n),r.d(n,{metadata:()=>s,default:()=>a,frontMatter:()=>c,contentTitle:()=>i,toc:()=>o,assets:()=>l});var s=JSON.parse('{"id":"tunnels/tcp","title":"TCP","description":"Map an internal TCP service to a public port on the server.","source":"@site/i18n/en/docusaurus-plugin-content-docs/current/tunnels/tcp.md","sourceDirName":"tunnels","slug":"/tunnels/tcp","permalink":"/orbien/en/docs/tunnels/tcp","draft":false,"unlisted":false,"editUrl":"https://github.com/orbien-org/orbien/tree/main/docs/docs/tunnels/tcp.md","tags":[],"version":"current","sidebarPosition":1,"frontMatter":{"sidebar_position":1,"sidebar_label":"TCP","title":"TCP"},"sidebar":"docsSidebar","previous":{"title":"Docker","permalink":"/orbien/en/docs/docker"},"next":{"title":"UDP","permalink":"/orbien/en/docs/tunnels/udp"}}'),t=r(1987),d=r(7008);let c={sidebar_position:1,sidebar_label:"TCP",title:"TCP"},i="TCP",l={},o=[{value:"Example: Expose SSH",id:"example-expose-ssh",level:2},{value:"Parameters",id:"parameters",level:2}];function h(e){let n={code:"code",h1:"h1",h2:"h2",header:"header",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,d.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.header,{children:(0,t.jsx)(n.h1,{id:"tcp",children:"TCP"})}),"\n",(0,t.jsx)(n.p,{children:"Map an internal TCP service to a public port on the server."}),"\n",(0,t.jsx)(n.h2,{id:"example-expose-ssh",children:"Example: Expose SSH"}),"\n",(0,t.jsx)(n.p,{children:"Server:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-toml",children:'# orbien-server.toml\nlisten = "0.0.0.0:9527"\n'})}),"\n",(0,t.jsx)(n.p,{children:"Client:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-toml",children:'# orbien.toml\nserver = "YOUR_SERVER_IP:9527"\n\n[[tunnels]]\nname = "ssh"\nprotocol = "tcp"\nservice = "127.0.0.1:22"\nremotePort = 9000\n'})}),"\n",(0,t.jsx)(n.p,{children:"Access from the public network:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-shell",children:"ssh -p 9000 user@YOUR_SERVER_IP\n"})}),"\n",(0,t.jsx)(n.h2,{id:"parameters",children:"Parameters"}),"\n",(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"Parameter"}),(0,t.jsx)(n.th,{children:"Required"}),(0,t.jsx)(n.th,{children:"Default"}),(0,t.jsx)(n.th,{children:"Description"})]})}),(0,t.jsxs)(n.tbody,{children:[(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"name"})}),(0,t.jsx)(n.td,{children:"Yes"}),(0,t.jsx)(n.td,{}),(0,t.jsx)(n.td,{children:"Tunnel name; must be unique"})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"protocol"})}),(0,t.jsx)(n.td,{children:"Yes"}),(0,t.jsx)(n.td,{}),(0,t.jsxs)(n.td,{children:["Always ",(0,t.jsx)(n.code,{children:"tcp"})]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"service"})}),(0,t.jsx)(n.td,{children:"Yes"}),(0,t.jsx)(n.td,{}),(0,t.jsxs)(n.td,{children:["Local service address, e.g. ",(0,t.jsx)(n.code,{children:"127.0.0.1:22"})]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"remotePort"})}),(0,t.jsx)(n.td,{children:"Yes"}),(0,t.jsx)(n.td,{}),(0,t.jsx)(n.td,{children:"Public listen port on the server"})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"transport.bandwidth"})}),(0,t.jsx)(n.td,{children:"No"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"0"})}),(0,t.jsxs)(n.td,{children:["Bandwidth cap (Mbps); ",(0,t.jsx)(n.code,{children:"0"})," means unlimited"]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"transport.bandwidthLimitSide"})}),(0,t.jsx)(n.td,{children:"No"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"client"})}),(0,t.jsxs)(n.td,{children:["Limit side: ",(0,t.jsx)(n.code,{children:"client"})," / ",(0,t.jsx)(n.code,{children:"server"})]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"transport.proxyProtocolVersion"})}),(0,t.jsx)(n.td,{children:"No"}),(0,t.jsx)(n.td,{}),(0,t.jsxs)(n.td,{children:["PROXY Protocol: ",(0,t.jsx)(n.code,{children:"v1"})," / ",(0,t.jsx)(n.code,{children:"v2"})]})]})]})]})]})}function a(e={}){let{wrapper:n}={...(0,d.R)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(h,{...e})}):h(e)}},7008(e,n,r){r.d(n,{R:()=>c,x:()=>i});var s=r(1763);let t={},d=s.createContext(t);function c(e){let n=s.useContext(d);return s.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function i(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:c(e.components),s.createElement(d.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/a94703ab.b81930da.js b/en/assets/js/a94703ab.b81930da.js new file mode 100644 index 0000000..336a1f7 --- /dev/null +++ b/en/assets/js/a94703ab.b81930da.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkorbien_docs=self.webpackChunkorbien_docs||[]).push([["785"],{8591(e,t,n){n.r(t),n.d(t,{default:()=>ea});var a=n(1987),i=n(1763),r=n(3526),s=n(310),l=n(1009),o=n(8484),d=n(345),c=n(6475),u=n(8522),m=n(3740);function b(){let{shown:e,scrollToTop:t}=function({threshold:e}){let[t,n]=(0,i.useState)(!1),a=(0,i.useRef)(!1),{startScroll:r,cancelScroll:s}=(0,u.gk)();return(0,u.Mq)(({scrollY:t},i)=>{let r=i?.scrollY;r&&(a.current?a.current=!1:t>=r?(s(),n(!1)):t<e?n(!1):t+window.innerHeight<document.documentElement.scrollHeight&&n(!0))}),(0,m.$)(e=>{e.location.hash&&(a.current=!0,n(!1))}),{shown:t,scrollToTop:()=>r(0)}}({threshold:300});return(0,a.jsx)("button",{"aria-label":(0,c.T)({id:"theme.BackToTopButton.buttonAriaLabel",message:"Scroll back to top",description:"The ARIA label for the back to top button"}),className:(0,r.A)("clean-btn",l.G.common.backToTopButton,"backToTopButton_FsEm",e&&"backToTopButtonShow_giG6"),type:"button",onClick:t})}var h=n(7351),p=n(6532),x=n(9299),j=n(8168),f=n(930);function _(e){return(0,a.jsx)("svg",{width:"20",height:"20","aria-hidden":"true",...e,children:(0,a.jsxs)("g",{fill:"#7a7a7a",children:[(0,a.jsx)("path",{d:"M9.992 10.023c0 .2-.062.399-.172.547l-4.996 7.492a.982.982 0 01-.828.454H1c-.55 0-1-.453-1-1 0-.2.059-.403.168-.551l4.629-6.942L.168 3.078A.939.939 0 010 2.528c0-.548.45-.997 1-.997h2.996c.352 0 .649.18.828.45L9.82 9.472c.11.148.172.347.172.55zm0 0"}),(0,a.jsx)("path",{d:"M19.98 10.023c0 .2-.058.399-.168.547l-4.996 7.492a.987.987 0 01-.828.454h-3c-.547 0-.996-.453-.996-1 0-.2.059-.403.168-.551l4.625-6.942-4.625-6.945a.939.939 0 01-.168-.55 1 1 0 01.996-.997h3c.348 0 .649.18.828.45l4.996 7.492c.11.148.168.347.168.55zm0 0"})]})})}function g({onClick:e}){return(0,a.jsx)("button",{type:"button",title:(0,c.T)({id:"theme.docs.sidebar.collapseButtonTitle",message:"Collapse sidebar",description:"The title attribute for collapse button of doc sidebar"}),"aria-label":(0,c.T)({id:"theme.docs.sidebar.collapseButtonAriaLabel",message:"Collapse sidebar",description:"The title attribute for collapse button of doc sidebar"}),className:(0,r.A)("button button--secondary button--outline","collapseSidebarButton_w0wb"),onClick:e,children:(0,a.jsx)(_,{className:"collapseSidebarButtonIcon_FFLl"})})}var v=n(4807),A=n(7850);let C=Symbol("EmptyContext"),k=i.createContext(C);function N({children:e}){let[t,n]=(0,i.useState)(null),r=(0,i.useMemo)(()=>({expandedItem:t,setExpandedItem:n}),[t]);return(0,a.jsx)(k.Provider,{value:r,children:e})}var S=n(3420),T=n(7711),y=n(7364),L=n(8261),I=n(2236),w=n(5740);function M({label:e}){return(0,a.jsx)("span",{className:"linkLabel_TUNj",children:e})}function E({item:e,onItemClick:t,activePath:n,level:i,index:s,...d}){let{href:c,label:u,className:m,autoAddBaseUrl:b}=e,h=(0,o.w8)(e,n),p=(0,I.A)(c);return(0,a.jsx)("li",{className:(0,r.A)(l.G.docs.docSidebarItemLink,l.G.docs.docSidebarItemLinkLevel(i),"menu__list-item",m),children:(0,a.jsxs)(y.A,{className:(0,r.A)("menu__link",!p&&"menuExternalLink_NMyC",{"menu__link--active":h}),autoAddBaseUrl:b,"aria-current":h?"page":void 0,to:c,...p&&{onClick:t?()=>t(e):void 0},...d,children:[(0,a.jsx)(M,{label:u}),!p&&(0,a.jsx)(w.A,{})]})},u)}function B({collapsed:e,categoryLabel:t,onClick:n}){return(0,a.jsx)("button",{"aria-label":e?(0,c.T)({id:"theme.DocSidebarItem.expandCategoryAriaLabel",message:"Expand sidebar category '{label}'",description:"The ARIA label to expand the sidebar category"},{label:t}):(0,c.T)({id:"theme.DocSidebarItem.collapseCategoryAriaLabel",message:"Collapse sidebar category '{label}'",description:"The ARIA label to collapse the sidebar category"},{label:t}),"aria-expanded":!e,type:"button",className:"clean-btn menu__caret",onClick:n})}function H({label:e}){return(0,a.jsx)("span",{className:"categoryLinkLabel_Tfj5",children:e})}function G(e){return 0===(0,o.Y)(e.item.items,e.activePath).length?(0,a.jsx)(P,{...e}):(0,a.jsx)(R,{...e})}function P({item:e,...t}){if("string"!=typeof e.href)return null;let{type:n,collapsed:i,collapsible:r,items:s,linkUnlisted:l,...o}=e,d={type:"link",...o};return(0,a.jsx)(E,{item:d,...t})}function R({item:e,onItemClick:t,activePath:n,level:s,index:d,...c}){let u,{items:m,label:b,collapsible:h,className:p,href:x}=e,{docs:{sidebar:{autoCollapseCategories:f}}}=(0,j.p)(),_=(u=(0,L.A)(),(0,i.useMemo)(()=>e.href&&!e.linkUnlisted?e.href:!u&&e.collapsible?(0,o.Nr)(e):void 0,[e,u])),g=(0,o.w8)(e,n),v=(0,T.ys)(x,n),{collapsed:N,setCollapsed:I}=(0,S.u)({initialState:()=>!!h&&!g&&e.collapsed}),{expandedItem:w,setExpandedItem:M}=function(){let e=(0,i.useContext)(k);if(e===C)throw new A.dV("DocSidebarItemsExpandedStateProvider");return e}(),E=(e=!N)=>{M(e?null:d),I(e)};return!function({isActive:e,collapsed:t,updateCollapsed:n,activePath:a}){let r=(0,A.ZC)(e),s=(0,A.ZC)(a);(0,i.useEffect)(()=>{let i=e&&!r,l=e&&r&&a!==s;(i||l)&&t&&n(!1)},[e,r,t,n,a,s])}({isActive:g,collapsed:N,updateCollapsed:E,activePath:n}),(0,i.useEffect)(()=>{h&&null!=w&&w!==d&&f&&I(!0)},[h,w,d,I,f]),(0,a.jsxs)("li",{className:(0,r.A)(l.G.docs.docSidebarItemCategory,l.G.docs.docSidebarItemCategoryLevel(s),"menu__list-item",{"menu__list-item--collapsed":N},p),children:[(0,a.jsxs)("div",{className:(0,r.A)("menu__list-item-collapsible",{"menu__list-item-collapsible--active":v}),children:[(0,a.jsx)(y.A,{className:(0,r.A)("categoryLink_aOsC","menu__link",{"menu__link--sublist":h,"menu__link--sublist-caret":!x&&h,"menu__link--active":g}),onClick:n=>{t?.(e),h&&(x?v?(n.preventDefault(),E()):E(!1):(n.preventDefault(),E()))},"aria-current":v?"page":void 0,role:h&&!x?"button":void 0,"aria-expanded":h&&!x?!N:void 0,href:h?_??"#":_,...c,children:(0,a.jsx)(H,{label:b})}),x&&h&&(0,a.jsx)(B,{collapsed:N,categoryLabel:b,onClick:e=>{e.preventDefault(),E()}})]}),(0,a.jsx)(S.N,{lazy:!0,as:"ul",className:"menu__list",collapsed:N,children:(0,a.jsx)(F,{items:m,tabIndex:N?-1:0,onItemClick:t,activePath:n,level:s+1})})]})}function W({item:e,level:t,index:n}){let{value:i,defaultStyle:s,className:o}=e;return(0,a.jsx)("li",{className:(0,r.A)(l.G.docs.docSidebarItemLink,l.G.docs.docSidebarItemLinkLevel(t),s&&["menuHtmlItem_MVsW","menu__list-item"],o),dangerouslySetInnerHTML:{__html:i}},n)}function D({item:e,...t}){switch(e.type){case"category":return(0,a.jsx)(G,{item:e,...t});case"html":return(0,a.jsx)(W,{item:e,...t});default:return(0,a.jsx)(E,{item:e,...t})}}let F=(0,i.memo)(function({items:e,...t}){let n=(0,o.Y)(e,t.activePath);return(0,a.jsx)(N,{children:n.map((e,n)=>(0,a.jsx)(D,{item:e,index:n,...t},n))})});function V({path:e,sidebar:t,className:n}){let s=function(){let{isActive:e}=(0,v.M)(),[t,n]=(0,i.useState)(e);return(0,u.Mq)(({scrollY:t})=>{e&&n(0===t)},[e]),e&&t}();return(0,a.jsx)("nav",{"aria-label":(0,c.T)({id:"theme.docs.sidebar.navAriaLabel",message:"Docs sidebar",description:"The ARIA label for the sidebar navigation"}),className:(0,r.A)("menu thin-scrollbar","menu_ahLp",s&&"menuWithAnnouncementBar_dWTH",n),children:(0,a.jsx)("ul",{className:(0,r.A)(l.G.docs.docSidebarMenu,"menu__list"),children:(0,a.jsx)(F,{items:t,activePath:e,level:1})})})}let q=i.memo(function({path:e,sidebar:t,onCollapse:n,isHidden:i}){let{navbar:{hideOnScroll:s},docs:{sidebar:{hideable:l}}}=(0,j.p)();return(0,a.jsxs)("div",{className:(0,r.A)("sidebar_RCgn",s&&"sidebarWithHideableNavbar_fv1g",i&&"sidebarHidden_ol4A"),children:[s&&(0,a.jsx)(f.A,{tabIndex:-1,className:"sidebarLogo_JcJp"}),(0,a.jsx)(V,{path:e,sidebar:t}),l&&(0,a.jsx)(g,{onClick:n})]})});var z=n(7050),U=n(4231);let Y=({sidebar:e,path:t})=>{let n=(0,U.M)();return(0,a.jsx)("ul",{className:(0,r.A)(l.G.docs.docSidebarMenu,"menu__list"),children:(0,a.jsx)(F,{items:e,activePath:t,onItemClick:e=>{"category"===e.type&&e.href&&n.toggle(),"link"===e.type&&n.toggle()},level:1})})},J=i.memo(function(e){return(0,a.jsx)(z.GX,{component:Y,props:e})});function O(e){let t=(0,x.l)();return(0,a.jsxs)(a.Fragment,{children:[("desktop"===t||"ssr"===t)&&(0,a.jsx)(q,{...e}),"mobile"===t&&(0,a.jsx)(J,{...e})]})}function X({toggleSidebar:e}){return(0,a.jsx)("div",{className:"expandButton_myCd",title:(0,c.T)({id:"theme.docs.sidebar.expandButtonTitle",message:"Expand sidebar",description:"The ARIA label and title attribute for expand button of doc sidebar"}),"aria-label":(0,c.T)({id:"theme.docs.sidebar.expandButtonAriaLabel",message:"Expand sidebar",description:"The ARIA label and title attribute for expand button of doc sidebar"}),tabIndex:0,role:"button",onKeyDown:e,onClick:e,children:(0,a.jsx)(_,{className:"expandButtonIcon_EBqf"})})}let Z={docSidebarContainer:"docSidebarContainer_i4lw",docSidebarContainerHidden:"docSidebarContainerHidden_PddN",sidebarViewport:"sidebarViewport_LX4L"};function K({children:e}){let t=(0,d.t)();return(0,a.jsx)(i.Fragment,{children:e},t?.name??"noSidebar")}function $({sidebar:e,hiddenSidebarContainer:t,setHiddenSidebarContainer:n}){let{pathname:s}=(0,p.zy)(),[o,d]=(0,i.useState)(!1),c=(0,i.useCallback)(()=>{o&&d(!1),!o&&(0,h.O)()&&d(!0),n(e=>!e)},[n,o]);return(0,a.jsx)("aside",{className:(0,r.A)(l.G.docs.docSidebarContainer,Z.docSidebarContainer,t&&Z.docSidebarContainerHidden),onTransitionEnd:e=>{e.currentTarget.classList.contains(Z.docSidebarContainer)&&t&&d(!0)},children:(0,a.jsx)(K,{children:(0,a.jsxs)("div",{className:(0,r.A)(Z.sidebarViewport,o&&Z.sidebarViewportHidden),children:[(0,a.jsx)(O,{sidebar:e,path:s,onCollapse:c,isHidden:o}),o&&(0,a.jsx)(X,{toggleSidebar:c})]})})})}let Q={docMainContainer:"docMainContainer_Tq_9",docMainContainerEnhanced:"docMainContainerEnhanced_oea5",docItemWrapperEnhanced:"docItemWrapperEnhanced_v22d"};function ee({hiddenSidebarContainer:e,children:t}){let n=(0,d.t)();return(0,a.jsx)("main",{className:(0,r.A)(Q.docMainContainer,(e||!n)&&Q.docMainContainerEnhanced),children:(0,a.jsx)("div",{className:(0,r.A)("container padding-top--md padding-bottom--lg",Q.docItemWrapper,e&&Q.docItemWrapperEnhanced),children:t})})}function et({children:e}){let t=(0,d.t)(),[n,r]=(0,i.useState)(!1);return(0,a.jsxs)("div",{className:"docsWrapper_pyt2",children:[(0,a.jsx)(b,{}),(0,a.jsxs)("div",{className:"docRoot_dSts",children:[t&&(0,a.jsx)($,{sidebar:t.items,hiddenSidebarContainer:n,setHiddenSidebarContainer:r}),(0,a.jsx)(ee,{hiddenSidebarContainer:n,children:e})]})]})}var en=n(7320);function ea(e){let t=(0,o.B5)(e);if(!t)return(0,a.jsx)(en.A,{});let{docElement:n,sidebarName:i,sidebarItems:c}=t;return(0,a.jsx)(s.e3,{className:(0,r.A)(l.G.page.docsDocPage),children:(0,a.jsx)(d.V,{name:i,items:c,children:(0,a.jsx)(et,{children:n})})})}},7320(e,t,n){n.d(t,{A:()=>l});var a=n(1987);n(1763);var i=n(3526),r=n(6475),s=n(8241);function l({className:e}){return(0,a.jsx)("main",{className:(0,i.A)("container margin-vert--xl",e),children:(0,a.jsx)("div",{className:"row",children:(0,a.jsxs)("div",{className:"col col--6 col--offset-3",children:[(0,a.jsx)(s.A,{as:"h1",className:"hero__title",children:(0,a.jsx)(r.A,{id:"theme.NotFound.title",description:"The title of the 404 page",children:"Page Not Found"})}),(0,a.jsx)("p",{children:(0,a.jsx)(r.A,{id:"theme.NotFound.p1",description:"The first paragraph of the 404 page",children:"We could not find what you were looking for."})}),(0,a.jsx)("p",{children:(0,a.jsx)(r.A,{id:"theme.NotFound.p2",description:"The 2nd paragraph of the 404 page",children:"Please contact the owner of the site that linked you to the original URL and let them know their link is broken."})})]})})})}}}]); \ No newline at end of file diff --git a/en/assets/js/ab4e331a.82844072.js b/en/assets/js/ab4e331a.82844072.js new file mode 100644 index 0000000..d106fde --- /dev/null +++ b/en/assets/js/ab4e331a.82844072.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkorbien_docs=self.webpackChunkorbien_docs||[]).push([["228"],{6612(e,r,d){d.r(r),d.d(r,{metadata:()=>s,default:()=>h,frontMatter:()=>i,contentTitle:()=>a,toc:()=>c,assets:()=>o});var s=JSON.parse('{"id":"features/dashboard","title":"Dashboard","description":"Server web dashboard. Enable it by configuring [dashboard] in orbien-server.toml with port > 0.","source":"@site/i18n/en/docusaurus-plugin-content-docs/current/features/dashboard.md","sourceDirName":"features","slug":"/features/dashboard","permalink":"/orbien/en/docs/features/dashboard","draft":false,"unlisted":false,"editUrl":"https://github.com/orbien-org/orbien/tree/main/docs/docs/features/dashboard.md","tags":[],"version":"current","sidebarPosition":2,"frontMatter":{"sidebar_position":2,"sidebar_label":"Dashboard","title":"Dashboard"},"sidebar":"docsSidebar","previous":{"title":"Authentication","permalink":"/orbien/en/docs/features/authentication"},"next":{"title":"Public Bind Address","permalink":"/orbien/en/docs/features/public-bind"}}'),t=d(1987),n=d(7008);let i={sidebar_position:2,sidebar_label:"Dashboard",title:"Dashboard"},a="Dashboard",o={},c=[{value:"Example",id:"example",level:2},{value:"Parameters",id:"parameters",level:2}];function l(e){let r={code:"code",h1:"h1",h2:"h2",header:"header",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,n.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(r.header,{children:(0,t.jsx)(r.h1,{id:"dashboard",children:"Dashboard"})}),"\n",(0,t.jsxs)(r.p,{children:["Server web dashboard. Enable it by configuring ",(0,t.jsx)(r.code,{children:"[dashboard]"})," in ",(0,t.jsx)(r.code,{children:"orbien-server.toml"})," with ",(0,t.jsx)(r.code,{children:"port > 0"}),"."]}),"\n",(0,t.jsx)(r.h2,{id:"example",children:"Example"}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{className:"language-toml",children:'# orbien-server.toml\nlisten = "0.0.0.0:9527"\n\n[dashboard]\naddr = "0.0.0.0"\nport = 8020\nuser = "admin"\npassword = "123456"\n'})}),"\n",(0,t.jsxs)(r.p,{children:["Open ",(0,t.jsx)(r.code,{children:"http://SERVER_IP:8020"})," in a browser and log in with Basic Auth (",(0,t.jsx)(r.code,{children:"user"})," / ",(0,t.jsx)(r.code,{children:"password"}),")."]}),"\n",(0,t.jsxs)(r.p,{children:[(0,t.jsx)(r.code,{children:"addr"})," defaults to ",(0,t.jsx)(r.code,{children:"127.0.0.1"})," (localhost only). Set it to ",(0,t.jsx)(r.code,{children:"0.0.0.0"})," for remote access. ",(0,t.jsx)(r.code,{children:"staticDir"})," may be omitted; if omitted, the built-in frontend is used."]}),"\n",(0,t.jsx)(r.h2,{id:"parameters",children:"Parameters"}),"\n",(0,t.jsxs)(r.table,{children:[(0,t.jsx)(r.thead,{children:(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.th,{children:"Parameter"}),(0,t.jsx)(r.th,{children:"Required"}),(0,t.jsx)(r.th,{children:"Default"}),(0,t.jsx)(r.th,{children:"Description"})]})}),(0,t.jsxs)(r.tbody,{children:[(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:(0,t.jsx)(r.code,{children:"dashboard.addr"})}),(0,t.jsx)(r.td,{children:"No"}),(0,t.jsx)(r.td,{children:(0,t.jsx)(r.code,{children:"127.0.0.1"})}),(0,t.jsxs)(r.td,{children:["Listen address; use ",(0,t.jsx)(r.code,{children:"0.0.0.0"})," for remote access"]})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:(0,t.jsx)(r.code,{children:"dashboard.port"})}),(0,t.jsx)(r.td,{children:"Yes"}),(0,t.jsx)(r.td,{children:(0,t.jsx)(r.code,{children:"0"})}),(0,t.jsxs)(r.td,{children:["Listen port; ",(0,t.jsx)(r.code,{children:"0"})," disables the dashboard"]})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:(0,t.jsx)(r.code,{children:"dashboard.user"})}),(0,t.jsx)(r.td,{children:"No"}),(0,t.jsx)(r.td,{}),(0,t.jsx)(r.td,{children:"Basic Auth username"})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:(0,t.jsx)(r.code,{children:"dashboard.password"})}),(0,t.jsx)(r.td,{children:"No"}),(0,t.jsx)(r.td,{}),(0,t.jsx)(r.td,{children:"Basic Auth password"})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:(0,t.jsx)(r.code,{children:"dashboard.staticDir"})}),(0,t.jsx)(r.td,{children:"No"}),(0,t.jsx)(r.td,{}),(0,t.jsx)(r.td,{children:"Static assets directory; empty uses the built-in frontend"})]})]})]})]})}function h(e={}){let{wrapper:r}={...(0,n.R)(),...e.components};return r?(0,t.jsx)(r,{...e,children:(0,t.jsx)(l,{...e})}):l(e)}},7008(e,r,d){d.d(r,{R:()=>i,x:()=>a});var s=d(1763);let t={},n=s.createContext(t);function i(e){let r=s.useContext(n);return s.useMemo(function(){return"function"==typeof e?e(r):{...r,...e}},[r,e])}function a(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:i(e.components),s.createElement(n.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/aba21aa0.66a74c66.js b/en/assets/js/aba21aa0.66a74c66.js new file mode 100644 index 0000000..608e877 --- /dev/null +++ b/en/assets/js/aba21aa0.66a74c66.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkorbien_docs=self.webpackChunkorbien_docs||[]).push([["747"],{7093(e){e.exports=JSON.parse('{"name":"docusaurus-plugin-content-docs","id":"default"}')}}]); \ No newline at end of file diff --git a/en/assets/js/affd0631.89f71aa2.js b/en/assets/js/affd0631.89f71aa2.js new file mode 100644 index 0000000..218fc48 --- /dev/null +++ b/en/assets/js/affd0631.89f71aa2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkorbien_docs=self.webpackChunkorbien_docs||[]).push([["891"],{4590(e,n,r){r.r(n),r.d(n,{metadata:()=>o,default:()=>h,frontMatter:()=>s,contentTitle:()=>c,toc:()=>a,assets:()=>l});var o=JSON.parse('{"id":"docker","title":"Docker","description":"Server","source":"@site/i18n/en/docusaurus-plugin-content-docs/current/docker.md","sourceDirName":".","slug":"/docker","permalink":"/orbien/en/docs/docker","draft":false,"unlisted":false,"editUrl":"https://github.com/orbien-org/orbien/tree/main/docs/docs/docker.md","tags":[],"version":"current","sidebarPosition":4,"frontMatter":{"sidebar_position":4,"sidebar_label":"Docker","title":"Docker"},"sidebar":"docsSidebar","previous":{"title":"Quick Start","permalink":"/orbien/en/docs/quickstart"},"next":{"title":"TCP","permalink":"/orbien/en/docs/tunnels/tcp"}}'),t=r(1987),i=r(7008);let s={sidebar_position:4,sidebar_label:"Docker",title:"Docker"},c="Docker",l={},a=[{value:"Server",id:"server",level:2},{value:"Option 1: Start with a config file",id:"option-1-start-with-a-config-file",level:3},{value:"Option 2: Start with Compose",id:"option-2-start-with-compose",level:3},{value:"Client",id:"client",level:2},{value:"Mount the config",id:"mount-the-config",level:3},{value:"Option 1: Start with a config file",id:"option-1-start-with-a-config-file-1",level:3},{value:"Option 2: Start with Compose",id:"option-2-start-with-compose-1",level:3}];function d(e){let n={admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",hr:"hr",p:"p",pre:"pre",strong:"strong",...(0,i.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.header,{children:(0,t.jsx)(n.h1,{id:"docker",children:"Docker"})}),"\n",(0,t.jsx)(n.h2,{id:"server",children:"Server"}),"\n",(0,t.jsxs)(n.p,{children:["Prepare ",(0,t.jsx)(n.code,{children:"orbien-server.toml"}),":"]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-toml",children:'listen = "0.0.0.0:9527"\n\n# optional: domain routing\n# httpGwPort = 80\n# httpsGwPort = 443\n\n# optional: client authentication\n# [auth]\n# token = "YOUR_TOKEN"\n\n# optional: web dashboard\n[dashboard]\naddr = "0.0.0.0"\nport = 8020\nuser = "admin"\npassword = "123456"\n'})}),"\n",(0,t.jsx)(n.admonition,{type:"warning",children:(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.code,{children:"dashboard.addr"})," must be ",(0,t.jsx)(n.code,{children:"0.0.0.0"}),", otherwise the host cannot reach the dashboard through port mapping"]})}),"\n",(0,t.jsx)(n.h3,{id:"option-1-start-with-a-config-file",children:"Option 1: Start with a config file"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-shell",children:'docker run -d --name orbien-server --restart unless-stopped \\\n -p 9527:9527 \\\n -p 8020:8020 \\\n -v "$PWD/orbien-server.toml:/etc/orbien/orbien-server.toml:ro" \\\n ghcr.io/orbien-org/orbien-server:latest\n'})}),"\n",(0,t.jsx)(n.h3,{id:"option-2-start-with-compose",children:"Option 2: Start with Compose"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-yaml",children:'# docker-compose.yaml\nservices:\n orbien-server:\n image: ghcr.io/orbien-org/orbien-server:latest\n container_name: orbien-server\n restart: unless-stopped\n ports:\n - "9527:9527"\n - "8020:8020"\n # - "80:80"\n # - "443:443"\n volumes:\n - ./orbien-server.toml:/etc/orbien/orbien-server.toml:ro\n'})}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-shell",children:"docker compose up -d\n"})}),"\n",(0,t.jsx)(n.hr,{}),"\n",(0,t.jsx)(n.h2,{id:"client",children:"Client"}),"\n",(0,t.jsx)(n.h3,{id:"mount-the-config",children:"Mount the config"}),"\n",(0,t.jsxs)(n.p,{children:["Prepare ",(0,t.jsx)(n.code,{children:"orbien.toml"}),":"]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-toml",children:'server = "YOUR_SERVER_IP:9527"\n\n# must match if the server has a token\n# [auth]\n# token = "YOUR_TOKEN"\n\n[[tunnels]]\nname = "mysql"\nprotocol = "tcp"\nservice = "127.0.0.1:3306"\nremotePort = 9000\n'})}),"\n",(0,t.jsx)(n.h3,{id:"option-1-start-with-a-config-file-1",children:"Option 1: Start with a config file"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-shell",children:'docker run -d --name orbien --restart unless-stopped \\\n -v "$PWD/orbien.toml:/etc/orbien/orbien.toml:ro" \\\n ghcr.io/orbien-org/orbien:latest\n'})}),"\n",(0,t.jsx)(n.admonition,{type:"tip",children:(0,t.jsxs)(n.p,{children:["Inside the container, ",(0,t.jsx)(n.code,{children:"127.0.0.1"})," is the container itself. To expose a service on the ",(0,t.jsx)(n.strong,{children:"host"}),", set ",(0,t.jsx)(n.code,{children:"service"})," to the host IP, or use host networking below"]})}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"Host networking"})}),"\n",(0,t.jsxs)(n.p,{children:["Share the host network so the config can use ",(0,t.jsx)(n.code,{children:"127.0.0.1"})," to reach local services:"]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-shell",children:'docker run -d --name orbien --restart unless-stopped \\\n --network host \\\n -v "$PWD/orbien.toml:/etc/orbien/orbien.toml:ro" \\\n ghcr.io/orbien-org/orbien:latest\n'})}),"\n",(0,t.jsx)(n.h3,{id:"option-2-start-with-compose-1",children:"Option 2: Start with Compose"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-yaml",children:"# docker-compose.yaml\nservices:\n orbien:\n image: ghcr.io/orbien-org/orbien:latest\n container_name: orbien\n restart: unless-stopped\n # network_mode: host\n volumes:\n - ./orbien.toml:/etc/orbien/orbien.toml:ro\n"})}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-shell",children:"docker compose up -d\n"})})]})}function h(e={}){let{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(d,{...e})}):d(e)}},7008(e,n,r){r.d(n,{R:()=>s,x:()=>c});var o=r(1763);let t={},i=o.createContext(t);function s(e){let n=o.useContext(i);return o.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:s(e.components),o.createElement(i.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/b32b4337.f4af2bbd.js b/en/assets/js/b32b4337.f4af2bbd.js new file mode 100644 index 0000000..9b73296 --- /dev/null +++ b/en/assets/js/b32b4337.f4af2bbd.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkorbien_docs=self.webpackChunkorbien_docs||[]).push([["568"],{4721(e,s,n){n.r(s),n.d(s,{metadata:()=>t,default:()=>h,frontMatter:()=>d,contentTitle:()=>c,toc:()=>o,assets:()=>l});var t=JSON.parse('{"id":"tunnels/http","title":"HTTP","description":"Expose an internal HTTP service to the public internet by domain. The server must enable the domain gateway; see Domains.","source":"@site/i18n/en/docusaurus-plugin-content-docs/current/tunnels/http.md","sourceDirName":"tunnels","slug":"/tunnels/http","permalink":"/orbien/en/docs/tunnels/http","draft":false,"unlisted":false,"editUrl":"https://github.com/orbien-org/orbien/tree/main/docs/docs/tunnels/http.md","tags":[],"version":"current","sidebarPosition":3,"frontMatter":{"sidebar_position":3,"sidebar_label":"HTTP","title":"HTTP"},"sidebar":"docsSidebar","previous":{"title":"UDP","permalink":"/orbien/en/docs/tunnels/udp"},"next":{"title":"HTTPS","permalink":"/orbien/en/docs/tunnels/https"}}'),r=n(1987),i=n(7008);let d={sidebar_position:3,sidebar_label:"HTTP",title:"HTTP"},c="HTTP",l={},o=[{value:"Example: Expose a web service",id:"example-expose-a-web-service",level:2},{value:"Example: Basic authentication",id:"example-basic-authentication",level:2},{value:"Example: Route by HTTP user",id:"example-route-by-http-user",level:2},{value:"Example: Rewrite Host",id:"example-rewrite-host",level:2},{value:"Parameters",id:"parameters",level:2}];function a(e){let s={a:"a",code:"code",h1:"h1",h2:"h2",header:"header",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,i.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(s.header,{children:(0,r.jsx)(s.h1,{id:"http",children:"HTTP"})}),"\n",(0,r.jsxs)(s.p,{children:["Expose an internal HTTP service to the public internet by domain. The server must enable the domain gateway; see ",(0,r.jsx)(s.a,{href:"/orbien/en/docs/tunnels/domains",children:"Domains"}),"."]}),"\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.code,{children:"domains"})," is required and must be non-empty: a full domain (e.g. ",(0,r.jsx)(s.code,{children:"web.example.com"}),"), or a short prefix with no ",(0,r.jsx)(s.code,{children:"."})," (e.g. ",(0,r.jsx)(s.code,{children:"web"}),", which requires server ",(0,r.jsx)(s.code,{children:"rootDomain"}),"). Wildcards are not supported."]}),"\n",(0,r.jsx)(s.h2,{id:"example-expose-a-web-service",children:"Example: Expose a web service"}),"\n",(0,r.jsx)(s.p,{children:"Server:"}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-toml",children:'# orbien-server.toml\nlisten = "0.0.0.0:9527"\nhttpGwPort = 80\n'})}),"\n",(0,r.jsx)(s.p,{children:"Client:"}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-toml",children:'# orbien.toml\nserver = "YOUR_SERVER_IP:9527"\n\n[[tunnels]]\nname = "web"\nprotocol = "http"\nservice = "127.0.0.1:8080"\ndomains = ["web.example.com"]\n'})}),"\n",(0,r.jsxs)(s.p,{children:["Point ",(0,r.jsx)(s.code,{children:"web.example.com"})," at the server IP, then access:"]}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-shell",children:"curl http://web.example.com\n"})}),"\n",(0,r.jsx)(s.h2,{id:"example-basic-authentication",children:"Example: Basic authentication"}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-toml",children:'[[tunnels]]\nname = "web-auth"\nprotocol = "http"\nservice = "127.0.0.1:8080"\ndomains = ["web.example.com"]\nbasicAuthUser = "alice"\nbasicAuthPassword = "secret"\n'})}),"\n",(0,r.jsxs)(s.p,{children:["Requests must include Basic credentials; failure returns ",(0,r.jsx)(s.code,{children:"401"}),":"]}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-shell",children:"curl -u alice:secret http://web.example.com\n"})}),"\n",(0,r.jsx)(s.h2,{id:"example-route-by-http-user",children:"Example: Route by HTTP user"}),"\n",(0,r.jsxs)(s.p,{children:["On the same domain, different Basic users can be routed to different local services. If no dedicated route matches, traffic falls back to a tunnel without ",(0,r.jsx)(s.code,{children:"routeByHTTPUser"})," (if one exists)."]}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-toml",children:'[[tunnels]]\nname = "web-alice"\nprotocol = "http"\nservice = "127.0.0.1:8081"\ndomains = ["web.example.com"]\nrouteByHTTPUser = "alice"\nbasicAuthUser = "alice"\nbasicAuthPassword = "secret"\n\n[[tunnels]]\nname = "web-default"\nprotocol = "http"\nservice = "127.0.0.1:8080"\ndomains = ["web.example.com"]\n'})}),"\n",(0,r.jsx)(s.h2,{id:"example-rewrite-host",children:"Example: Rewrite Host"}),"\n",(0,r.jsxs)(s.p,{children:["Rewrite the request ",(0,r.jsx)(s.code,{children:"Host"})," when forwarding to the local service:"]}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-toml",children:'[[tunnels]]\nname = "web"\nprotocol = "http"\nservice = "127.0.0.1:8080"\ndomains = ["web.example.com"]\nhostHeaderRewrite = "127.0.0.1"\n'})}),"\n",(0,r.jsx)(s.h2,{id:"parameters",children:"Parameters"}),"\n",(0,r.jsxs)(s.table,{children:[(0,r.jsx)(s.thead,{children:(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.th,{children:"Parameter"}),(0,r.jsx)(s.th,{children:"Required"}),(0,r.jsx)(s.th,{children:"Default"}),(0,r.jsx)(s.th,{children:"Description"})]})}),(0,r.jsxs)(s.tbody,{children:[(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)(s.code,{children:"name"})}),(0,r.jsx)(s.td,{children:"Yes"}),(0,r.jsx)(s.td,{}),(0,r.jsx)(s.td,{children:"Tunnel name; must be unique"})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)(s.code,{children:"protocol"})}),(0,r.jsx)(s.td,{children:"Yes"}),(0,r.jsx)(s.td,{}),(0,r.jsxs)(s.td,{children:["Always ",(0,r.jsx)(s.code,{children:"http"})]})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)(s.code,{children:"service"})}),(0,r.jsx)(s.td,{children:"Yes"}),(0,r.jsx)(s.td,{}),(0,r.jsxs)(s.td,{children:["Local service address, e.g. ",(0,r.jsx)(s.code,{children:"127.0.0.1:8080"})]})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)(s.code,{children:"domains"})}),(0,r.jsx)(s.td,{children:"Yes"}),(0,r.jsx)(s.td,{}),(0,r.jsxs)(s.td,{children:["Domain list; at least one; full domain or a prefix with no ",(0,r.jsx)(s.code,{children:"."})," (prefix requires server ",(0,r.jsx)(s.code,{children:"rootDomain"}),")"]})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)(s.code,{children:"locations"})}),(0,r.jsx)(s.td,{children:"No"}),(0,r.jsx)(s.td,{}),(0,r.jsxs)(s.td,{children:["Path prefix, e.g. ",(0,r.jsx)(s.code,{children:"/api"}),"; empty means all paths"]})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)(s.code,{children:"basicAuthUser"})}),(0,r.jsx)(s.td,{children:"No"}),(0,r.jsx)(s.td,{}),(0,r.jsxs)(s.td,{children:["HTTP Basic username; if both this and ",(0,r.jsx)(s.code,{children:"basicAuthPassword"})," are empty, auth is disabled"]})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)(s.code,{children:"basicAuthPassword"})}),(0,r.jsx)(s.td,{children:"No"}),(0,r.jsx)(s.td,{}),(0,r.jsx)(s.td,{children:"HTTP Basic password"})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)(s.code,{children:"routeByHTTPUser"})}),(0,r.jsx)(s.td,{children:"No"}),(0,r.jsx)(s.td,{}),(0,r.jsx)(s.td,{children:"Select a route by the request Basic username; empty matches any user (exact user takes priority)"})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)(s.code,{children:"hostHeaderRewrite"})}),(0,r.jsx)(s.td,{children:"No"}),(0,r.jsx)(s.td,{}),(0,r.jsx)(s.td,{children:"Rewrite Host when forwarding to the local service; empty means no rewrite"})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)(s.code,{children:"transport.bandwidth"})}),(0,r.jsx)(s.td,{children:"No"}),(0,r.jsx)(s.td,{children:(0,r.jsx)(s.code,{children:"0"})}),(0,r.jsxs)(s.td,{children:["Bandwidth cap (Mbps); ",(0,r.jsx)(s.code,{children:"0"})," means unlimited"]})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)(s.code,{children:"transport.bandwidthLimitSide"})}),(0,r.jsx)(s.td,{children:"No"}),(0,r.jsx)(s.td,{children:(0,r.jsx)(s.code,{children:"client"})}),(0,r.jsxs)(s.td,{children:["Limit side: ",(0,r.jsx)(s.code,{children:"client"})," / ",(0,r.jsx)(s.code,{children:"server"})]})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)(s.code,{children:"transport.proxyProtocolVersion"})}),(0,r.jsx)(s.td,{children:"No"}),(0,r.jsx)(s.td,{}),(0,r.jsxs)(s.td,{children:["PROXY Protocol: ",(0,r.jsx)(s.code,{children:"v1"})," / ",(0,r.jsx)(s.code,{children:"v2"})]})]})]})]})]})}function h(e={}){let{wrapper:s}={...(0,i.R)(),...e.components};return s?(0,r.jsx)(s,{...e,children:(0,r.jsx)(a,{...e})}):a(e)}},7008(e,s,n){n.d(s,{R:()=>d,x:()=>c});var t=n(1763);let r={},i=t.createContext(r);function d(e){let s=t.useContext(i);return t.useMemo(function(){return"function"==typeof e?e(s):{...s,...e}},[s,e])}function c(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:d(e.components),t.createElement(i.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/b3adb838.bc0e2cf9.js b/en/assets/js/b3adb838.bc0e2cf9.js new file mode 100644 index 0000000..6676976 --- /dev/null +++ b/en/assets/js/b3adb838.bc0e2cf9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkorbien_docs=self.webpackChunkorbien_docs||[]).push([["431"],{3323(e,n,r){r.r(n),r.d(n,{metadata:()=>s,default:()=>I,frontMatter:()=>k,contentTitle:()=>v,toc:()=>$,assets:()=>_});var s=JSON.parse('{"id":"download","title":"Download","description":"Choose the package for your OS and architecture","source":"@site/i18n/en/docusaurus-plugin-content-docs/current/download.mdx","sourceDirName":".","slug":"/download","permalink":"/orbien/en/docs/download","draft":false,"unlisted":false,"editUrl":"https://github.com/orbien-org/orbien/tree/main/docs/docs/download.mdx","tags":[],"version":"current","sidebarPosition":2,"frontMatter":{"sidebar_position":2,"sidebar_label":"Download"},"sidebar":"docsSidebar","previous":{"title":"Introduction","permalink":"/orbien/en/docs/intro"},"next":{"title":"Quick Start","permalink":"/orbien/en/docs/quickstart"}}'),o=r(1987),i=r(7008),a=r(1763),d=r(3526),l=r(6475);let t="dockerItem_OmD2",c="dockerMeta_so8T",u="dockerTag_NGl6",m="dockerCmd_lfBm",h="orbien-org/orbien",b=new Set(["orbien-server|linux|amd64|gnu","orbien-server|linux|amd64|musl","orbien-server|linux|arm64|gnu","orbien-server|linux|arm64|musl","orbien-server|windows|amd64","orbien-server|windows|arm64","orbien-server|darwin|amd64","orbien-server|darwin|arm64","orbien-server|freebsd|amd64","orbien|linux|amd64|gnu","orbien|linux|amd64|musl","orbien|linux|arm64|gnu","orbien|linux|arm64|musl","orbien|windows|amd64","orbien|windows|arm64","orbien|darwin|amd64","orbien|darwin|arm64","orbien|freebsd|amd64","orbien-desktop|linux|amd64|gnu","orbien-desktop|linux|arm64|gnu","orbien-desktop|windows|amd64","orbien-desktop|windows|arm64","orbien-desktop|darwin|amd64","orbien-desktop|darwin|arm64"]),x=[{os:"linux",arch:"amd64",libc:"gnu",noteId:"glibc"},{os:"linux",arch:"amd64",libc:"musl",noteId:"musl"},{os:"linux",arch:"arm64",libc:"gnu",noteId:"glibc"},{os:"linux",arch:"arm64",libc:"musl",noteId:"musl"},{os:"freebsd",arch:"amd64",noteId:"none"},{os:"windows",arch:"amd64",noteId:"none"},{os:"windows",arch:"arm64",noteId:"none"},{os:"darwin",arch:"amd64",noteId:"macosGatekeeper"},{os:"darwin",arch:"arm64",noteId:"macosGatekeeper"}],p={windows:"Windows",darwin:"macOS",linux:"Linux",freebsd:"FreeBSD"},w={amd64:"amd64",arm64:"arm64"},g=[{id:"server",name:"orbien-server",label:(0,o.jsx)(l.A,{id:"download.product.server",children:"\u670D\u52A1\u7AEF"})},{id:"client",name:"orbien",label:(0,o.jsx)(l.A,{id:"download.product.client",children:"\u547D\u4EE4\u884C\u5BA2\u6237\u7AEF"})},{id:"desktop",name:"orbien-desktop",label:(0,o.jsx)(l.A,{id:"download.product.desktop",children:"\u684C\u9762\u5BA2\u6237\u7AEF"})}];function j(e,n){if("orbien-desktop"!==e)return"tar.gz";switch(n){case"linux":return"deb";case"windows":return"zip";case"darwin":return"dmg";default:return"tar.gz"}}function f(){let[e,n]=(0,a.useState)("3.0.0"),[r,s]=(0,a.useState)(null),[i,f]=(0,a.useState)(null);(0,a.useEffect)(()=>{f(function(){if("u"<typeof navigator)return null;let e=navigator.userAgent.toLowerCase();return e.includes("win")?"windows":e.includes("mac")?"darwin":e.includes("freebsd")?"freebsd":e.includes("linux")?"linux":null}())},[]),(0,a.useEffect)(()=>{let e=!1;return(async()=>{try{let r=await fetch(`https://api.github.com/repos/${h}/releases/latest`,{headers:{Accept:"application/vnd.github+json"}});if(!r.ok)return;let o=await r.json();if(e)return;let i=o.tag_name?.replace(/^v/,"");i&&n(i),o.assets&&s(new Set(o.assets.map(e=>e.name)))}catch{}})(),()=>{e=!0}},[]);let k=(0,a.useMemo)(()=>{let e=new Map,n=0;for(;n<x.length;){let r=x[n].os,s=1;for(;n+s<x.length&&x[n+s].os===r;)s+=1;e.set(n,s),n+=s}return e},[]);return(0,o.jsxs)("div",{className:"wrap_B6Is",children:[(0,o.jsxs)("div",{className:"toolbar_cmsD",children:[(0,o.jsxs)("span",{className:"version_GkO4",children:["v",e]}),(0,o.jsx)("a",{className:"releasesLink_uGnU",href:`https://github.com/${h}/releases`,rel:"noopener noreferrer",children:(0,o.jsx)(l.A,{id:"download.allReleases",children:"\u6240\u6709\u7248\u672C"})})]}),(0,o.jsx)("div",{className:"tableScroll_RwJY",children:(0,o.jsxs)("table",{className:"table_z95A",children:[(0,o.jsx)("thead",{children:(0,o.jsxs)("tr",{children:[(0,o.jsx)("th",{children:(0,o.jsx)(l.A,{id:"download.col.os",children:"\u64CD\u4F5C\u7CFB\u7EDF"})}),(0,o.jsx)("th",{children:(0,o.jsx)(l.A,{id:"download.col.arch",children:"\u67B6\u6784"})}),(0,o.jsx)("th",{children:"libc"}),g.map(e=>(0,o.jsx)("th",{children:e.label},e.id)),(0,o.jsx)("th",{children:(0,o.jsx)(l.A,{id:"download.col.note",children:"\u8BF4\u660E"})})]})}),(0,o.jsx)("tbody",{children:x.map((n,s)=>{let a=k.get(s),t=void 0!==a,c="linux"===n.os?n.libc:void 0;return(0,o.jsxs)("tr",{className:(0,d.A)(i===n.os&&"rowHighlight_Rqix"),children:[t?(0,o.jsx)("td",{rowSpan:a,className:"osCell_btT0",children:p[n.os]}):null,(0,o.jsx)("td",{children:(0,o.jsx)("code",{children:w[n.arch]})}),(0,o.jsx)("td",{children:c?(0,o.jsx)("code",{className:"libcTag_lP5V",children:c}):null}),g.map(s=>{var i,a,d,l,t,u,m,x,p,w;let g,f,k="orbien-desktop"===s.name,v=k?"linux"===n.os&&"gnu"===n.libc?"gnu":void 0:c,_=(i=s.name,a=n.os,d=n.arch,b.has(v?`${i}|${a}|${d}|${v}`:`${i}|${a}|${d}`)),$=(l=s.name,t=n.os,u=k?void 0:c,g=j(l,t),"orbien-desktop"!==l&&u?`${u} \xb7 ${g}`:g),N=(m=s.name,x=n.os,p=n.arch,w=k?void 0:c,f=j(m,x),"orbien-desktop"===m?`${m}_${e}_${x}_${p}.${f}`:w?`${m}_${e}_${x}_${p}_${w}.${f}`:`${m}_${e}_${x}_${p}.${f}`),I=!r||r.has(N);return(0,o.jsx)("td",{children:_&&I?(0,o.jsx)("a",{className:"badge_x6zy",href:`https://github.com/${h}/releases/download/v${e}/${N}`,title:N,rel:"noopener noreferrer",children:$}):null},s.id)}),(0,o.jsx)("td",{className:"note_heJW",children:function(e){switch(e){case"glibc":return(0,l.T)({id:"download.note.glibc",message:"\u52A8\u6001\u94FE\u63A5 glibc"});case"musl":return(0,l.T)({id:"download.note.musl",message:"\u9759\u6001\u94FE\u63A5\uFF0C\u517C\u5BB9\u65E7 glibc"});case"macosGatekeeper":return(0,l.T)({id:"download.note.macosGatekeeper",message:"\u5982\u9047\u62E6\u622A\uFF0C\u4E8E\u7CFB\u7EDF\u8BBE\u7F6E\u4E2D\u5141\u8BB8\u8FD0\u884C"});default:return""}}(n.noteId)})]},`${n.os}-${n.arch}-${n.libc??"default"}`)})})]})}),(0,o.jsxs)("div",{className:"docker_YIhP",children:[(0,o.jsx)("h3",{children:"Docker"}),(0,o.jsxs)("ul",{className:"dockerList_T7jC",children:[(0,o.jsxs)("li",{className:t,children:[(0,o.jsxs)("div",{className:c,children:[(0,o.jsx)("strong",{children:"orbien-server"}),(0,o.jsx)("span",{className:u,children:"server"})]}),(0,o.jsx)("code",{className:m,children:"docker pull ghcr.io/orbien-org/orbien-server:latest"})]}),(0,o.jsxs)("li",{className:t,children:[(0,o.jsxs)("div",{className:c,children:[(0,o.jsx)("strong",{children:"orbien"}),(0,o.jsx)("span",{className:u,children:"client"})]}),(0,o.jsx)("code",{className:m,children:"docker pull ghcr.io/orbien-org/orbien:latest"})]})]})]})]})}let k={sidebar_position:2,sidebar_label:"Download"},v="Download",_={},$=[];function N(e){let n={h1:"h1",header:"header",p:"p",...(0,i.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(n.header,{children:(0,o.jsx)(n.h1,{id:"download",children:"Download"})}),"\n",(0,o.jsx)(n.p,{children:"Choose the package for your OS and architecture"}),"\n",(0,o.jsx)(f,{})]})}function I(e={}){let{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,o.jsx)(n,{...e,children:(0,o.jsx)(N,{...e})}):N(e)}},7008(e,n,r){r.d(n,{R:()=>a,x:()=>d});var s=r(1763);let o={},i=s.createContext(o);function a(e){let n=s.useContext(i);return s.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:a(e.components),s.createElement(i.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/b6948417.54531084.js b/en/assets/js/b6948417.54531084.js new file mode 100644 index 0000000..c59c0cd --- /dev/null +++ b/en/assets/js/b6948417.54531084.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkorbien_docs=self.webpackChunkorbien_docs||[]).push([["621"],{22(e,n,r){r.r(n),r.d(n,{metadata:()=>s,default:()=>a,frontMatter:()=>i,contentTitle:()=>c,toc:()=>o,assets:()=>l});var s=JSON.parse('{"id":"features/public-bind","title":"Public Bind Address","description":"The server has two kinds of listeners:","source":"@site/i18n/en/docusaurus-plugin-content-docs/current/features/public-bind.md","sourceDirName":"features","slug":"/features/public-bind","permalink":"/orbien/en/docs/features/public-bind","draft":false,"unlisted":false,"editUrl":"https://github.com/orbien-org/orbien/tree/main/docs/docs/features/public-bind.md","tags":[],"version":"current","sidebarPosition":3,"frontMatter":{"sidebar_position":3,"sidebar_label":"Public Bind Address","title":"Public Bind Address"},"sidebar":"docsSidebar","previous":{"title":"Dashboard","permalink":"/orbien/en/docs/features/dashboard"},"next":{"title":"Bandwidth Limit","permalink":"/orbien/en/docs/features/bandwidth"}}'),t=r(1987),d=r(7008);let i={sidebar_position:3,sidebar_label:"Public Bind Address",title:"Public Bind Address"},c="Public Bind Address",l={},o=[{value:"Example",id:"example",level:2},{value:"Parameters",id:"parameters",level:2}];function h(e){let n={code:"code",h1:"h1",h2:"h2",header:"header",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,d.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.header,{children:(0,t.jsx)(n.h1,{id:"public-bind-address",children:"Public Bind Address"})}),"\n",(0,t.jsx)(n.p,{children:"The server has two kinds of listeners:"}),"\n",(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"Purpose"}),(0,t.jsx)(n.th,{children:"Config"}),(0,t.jsx)(n.th,{children:"Who connects"})]})}),(0,t.jsxs)(n.tbody,{children:[(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"Control channel"}),(0,t.jsxs)(n.td,{children:[(0,t.jsx)(n.code,{children:"listen"})," (and ",(0,t.jsx)(n.code,{children:"quicPort"})," / ",(0,t.jsx)(n.code,{children:"kcpPort"}),")"]}),(0,t.jsxs)(n.td,{children:["The ",(0,t.jsx)(n.strong,{children:"client"})," (",(0,t.jsx)(n.code,{children:"orbien"}),") connects to build tunnels"]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"Public traffic"}),(0,t.jsxs)(n.td,{children:[(0,t.jsx)(n.code,{children:"proxyAddr"})," + ",(0,t.jsx)(n.code,{children:"remotePort"})," / ",(0,t.jsx)(n.code,{children:"httpGwPort"})," / ",(0,t.jsx)(n.code,{children:"httpsGwPort"})]}),(0,t.jsxs)(n.td,{children:[(0,t.jsx)(n.strong,{children:"Public visitors"})," access the services you exposed"]})]})]})]}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.code,{children:"proxyAddr"})," chooses which NIC / address visitor traffic binds to. It is independent of where the client connects. The config key remains ",(0,t.jsx)(n.code,{children:"proxyAddr"})," (historical name); it means the ",(0,t.jsx)(n.strong,{children:"public bind address"}),"."]}),"\n",(0,t.jsx)(n.p,{children:"Typical case: on a multi-homed host, bind the control channel to the private network and public listeners to the public IP \u2014 or the reverse, to isolate management from traffic."}),"\n",(0,t.jsxs)(n.p,{children:["Default is ",(0,t.jsx)(n.code,{children:"0.0.0.0"})," (all interfaces). If empty, it falls back to the host part of ",(0,t.jsx)(n.code,{children:"listen"}),"."]}),"\n",(0,t.jsx)(n.h2,{id:"example",children:"Example"}),"\n",(0,t.jsx)(n.p,{children:"Control channel and public listeners on all interfaces (default):"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-toml",children:'# orbien-server.toml\nlisten = "0.0.0.0:9527"\nproxyAddr = "0.0.0.0"\n'})}),"\n",(0,t.jsx)(n.p,{children:"Serve public traffic only on the public NIC (example IP):"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-toml",children:'# orbien-server.toml\nlisten = "10.0.0.2:9527"\nproxyAddr = "203.0.113.10"\n'})}),"\n",(0,t.jsxs)(n.p,{children:["The client then connects to ",(0,t.jsx)(n.code,{children:"10.0.0.2:9527"}),"; visitors reach ",(0,t.jsx)(n.code,{children:"remotePort"})," / ",(0,t.jsx)(n.code,{children:"httpGwPort"})," / ",(0,t.jsx)(n.code,{children:"httpsGwPort"})," on ",(0,t.jsx)(n.code,{children:"203.0.113.10"}),"."]}),"\n",(0,t.jsx)(n.h2,{id:"parameters",children:"Parameters"}),"\n",(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"Parameter"}),(0,t.jsx)(n.th,{children:"Required"}),(0,t.jsx)(n.th,{children:"Default"}),(0,t.jsx)(n.th,{children:"Description"})]})}),(0,t.jsx)(n.tbody,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"proxyAddr"})}),(0,t.jsx)(n.td,{children:"No"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"0.0.0.0"})}),(0,t.jsxs)(n.td,{children:["Public bind address; empty falls back to the host part of ",(0,t.jsx)(n.code,{children:"listen"})]})]})})]})]})}function a(e={}){let{wrapper:n}={...(0,d.R)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(h,{...e})}):h(e)}},7008(e,n,r){r.d(n,{R:()=>i,x:()=>c});var s=r(1763);let t={},d=s.createContext(t);function i(e){let n=s.useContext(d);return s.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:i(e.components),s.createElement(d.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/b6b92320.bee29316.js b/en/assets/js/b6b92320.bee29316.js new file mode 100644 index 0000000..baf2eec --- /dev/null +++ b/en/assets/js/b6b92320.bee29316.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkorbien_docs=self.webpackChunkorbien_docs||[]).push([["4"],{20(e,n,t){t.r(n),t.d(n,{metadata:()=>r,default:()=>p,frontMatter:()=>i,contentTitle:()=>s,toc:()=>d,assets:()=>c});var r=JSON.parse('{"id":"roadmap","title":"Roadmap","description":"- [ ] P2P hole punching","source":"@site/i18n/en/docusaurus-plugin-content-docs/current/roadmap.md","sourceDirName":".","slug":"/roadmap","permalink":"/orbien/en/docs/roadmap","draft":false,"unlisted":false,"editUrl":"https://github.com/orbien-org/orbien/tree/main/docs/docs/roadmap.md","tags":[],"version":"current","sidebarPosition":91,"frontMatter":{"sidebar_position":91,"sidebar_label":"Roadmap"},"sidebar":"docsSidebar","previous":{"title":"Performance","permalink":"/orbien/en/docs/performance"},"next":{"title":"License","permalink":"/orbien/en/docs/license"}}'),o=t(1987),a=t(7008);let i={sidebar_position:91,sidebar_label:"Roadmap"},s="Roadmap",c={},d=[];function l(e){let n={h1:"h1",header:"header",input:"input",li:"li",ul:"ul",...(0,a.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(n.header,{children:(0,o.jsx)(n.h1,{id:"roadmap",children:"Roadmap"})}),"\n",(0,o.jsxs)(n.ul,{className:"contains-task-list",children:["\n",(0,o.jsxs)(n.li,{className:"task-list-item",children:[(0,o.jsx)(n.input,{type:"checkbox",disabled:!0})," ","P2P hole punching"]}),"\n"]})]})}function p(e={}){let{wrapper:n}={...(0,a.R)(),...e.components};return n?(0,o.jsx)(n,{...e,children:(0,o.jsx)(l,{...e})}):l(e)}},7008(e,n,t){t.d(n,{R:()=>i,x:()=>s});var r=t(1763);let o={},a=r.createContext(o);function i(e){let n=r.useContext(a);return r.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function s(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:i(e.components),r.createElement(a.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/cc5cf7e7.831f8317.js b/en/assets/js/cc5cf7e7.831f8317.js new file mode 100644 index 0000000..7bee1b1 --- /dev/null +++ b/en/assets/js/cc5cf7e7.831f8317.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkorbien_docs=self.webpackChunkorbien_docs||[]).push([["569"],{4081(e,t,n){n.r(t),n.d(t,{metadata:()=>i,default:()=>h,frontMatter:()=>a,contentTitle:()=>o,toc:()=>d,assets:()=>c});var i=JSON.parse('{"id":"features/authentication","title":"Authentication","description":"Token authentication when the client connects to the server. If the server has no token (or it is empty), authentication is skipped.","source":"@site/i18n/en/docusaurus-plugin-content-docs/current/features/authentication.md","sourceDirName":"features","slug":"/features/authentication","permalink":"/orbien/en/docs/features/authentication","draft":false,"unlisted":false,"editUrl":"https://github.com/orbien-org/orbien/tree/main/docs/docs/features/authentication.md","tags":[],"version":"current","sidebarPosition":1,"frontMatter":{"sidebar_position":1,"sidebar_label":"Authentication","title":"Authentication"},"sidebar":"docsSidebar","previous":{"title":"TLS","permalink":"/orbien/en/docs/transport/tls"},"next":{"title":"Dashboard","permalink":"/orbien/en/docs/features/dashboard"}}'),r=n(1987),s=n(7008);let a={sidebar_position:1,sidebar_label:"Authentication",title:"Authentication"},o="Authentication",c={},d=[{value:"Example",id:"example",level:2},{value:"Parameters",id:"parameters",level:2},{value:"Command line",id:"command-line",level:2}];function l(e){let t={code:"code",h1:"h1",h2:"h2",header:"header",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,s.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(t.header,{children:(0,r.jsx)(t.h1,{id:"authentication",children:"Authentication"})}),"\n",(0,r.jsxs)(t.p,{children:["Token authentication when the client connects to the server. If the server has no ",(0,r.jsx)(t.code,{children:"token"})," (or it is empty), authentication is skipped."]}),"\n",(0,r.jsxs)(t.p,{children:["The ",(0,r.jsx)(t.code,{children:"token"})," on both sides must match, or login fails (",(0,r.jsx)(t.code,{children:"authorization failed"}),")."]}),"\n",(0,r.jsx)(t.h2,{id:"example",children:"Example"}),"\n",(0,r.jsx)(t.p,{children:"Server:"}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-toml",children:'# orbien-server.toml\n[auth]\ntoken = "YOUR_TOKEN"\n'})}),"\n",(0,r.jsx)(t.p,{children:"Client:"}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-toml",children:'# orbien.toml\n[auth]\ntoken = "YOUR_TOKEN"\n'})}),"\n",(0,r.jsx)(t.h2,{id:"parameters",children:"Parameters"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Parameter"}),(0,r.jsx)(t.th,{children:"Required"}),(0,r.jsx)(t.th,{children:"Default"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.jsx)(t.tbody,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:(0,r.jsx)(t.code,{children:"auth.token"})}),(0,r.jsx)(t.td,{children:"No"}),(0,r.jsx)(t.td,{}),(0,r.jsx)(t.td,{children:"Shared secret; empty on the server disables auth; both sides must match"})]})})]}),"\n",(0,r.jsx)(t.h2,{id:"command-line",children:"Command line"}),"\n",(0,r.jsxs)(t.p,{children:["The server can also set this via a flag (it overrides ",(0,r.jsx)(t.code,{children:"token"})," in the config file):"]}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-shell",children:"./orbien-server -c orbien-server.toml -t YOUR_TOKEN\n"})}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Flag"}),(0,r.jsx)(t.th,{children:"Default"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.jsx)(t.tbody,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsxs)(t.td,{children:[(0,r.jsx)(t.code,{children:"-t"})," / ",(0,r.jsx)(t.code,{children:"--token"})]}),(0,r.jsx)(t.td,{}),(0,r.jsx)(t.td,{children:"Shared secret"})]})})]})]})}function h(e={}){let{wrapper:t}={...(0,s.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(l,{...e})}):l(e)}},7008(e,t,n){n.d(t,{R:()=>a,x:()=>o});var i=n(1763);let r={},s=i.createContext(r);function a(e){let t=i.useContext(s);return i.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:a(e.components),i.createElement(s.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/d58d1957.6eff27f7.js b/en/assets/js/d58d1957.6eff27f7.js new file mode 100644 index 0000000..e0d8d0a --- /dev/null +++ b/en/assets/js/d58d1957.6eff27f7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkorbien_docs=self.webpackChunkorbien_docs||[]).push([["597"],{7078(e,n,t){t.r(n),t.d(n,{metadata:()=>i,default:()=>h,frontMatter:()=>s,contentTitle:()=>l,toc:()=>c,assets:()=>a});var i=JSON.parse('{"id":"features/bandwidth","title":"Bandwidth Limit","description":"Limit forwarded bandwidth per tunnel. Configure it under transport on [[tunnels]].","source":"@site/i18n/en/docusaurus-plugin-content-docs/current/features/bandwidth.md","sourceDirName":"features","slug":"/features/bandwidth","permalink":"/orbien/en/docs/features/bandwidth","draft":false,"unlisted":false,"editUrl":"https://github.com/orbien-org/orbien/tree/main/docs/docs/features/bandwidth.md","tags":[],"version":"current","sidebarPosition":4,"frontMatter":{"sidebar_position":4,"sidebar_label":"Bandwidth Limit","title":"Bandwidth Limit"},"sidebar":"docsSidebar","previous":{"title":"Public Bind Address","permalink":"/orbien/en/docs/features/public-bind"},"next":{"title":"Real IP","permalink":"/orbien/en/docs/features/real-ip"}}'),r=t(1987),d=t(7008);let s={sidebar_position:4,sidebar_label:"Bandwidth Limit",title:"Bandwidth Limit"},l="Bandwidth Limit",a={},c=[{value:"Example: Limit on the client",id:"example-limit-on-the-client",level:2},{value:"Example: Limit on the server",id:"example-limit-on-the-server",level:2},{value:"Parameters",id:"parameters",level:2}];function o(e){let n={code:"code",h1:"h1",h2:"h2",header:"header",li:"li",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,d.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.header,{children:(0,r.jsx)(n.h1,{id:"bandwidth-limit",children:"Bandwidth Limit"})}),"\n",(0,r.jsxs)(n.p,{children:["Limit forwarded bandwidth per tunnel. Configure it under ",(0,r.jsx)(n.code,{children:"transport"})," on ",(0,r.jsx)(n.code,{children:"[[tunnels]]"}),"."]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:'bandwidthLimitSide = "client"'}),": limit on the client"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:'bandwidthLimitSide = "server"'}),": limit on the server"]}),"\n"]}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.code,{children:"bandwidth"})," is a number in Mbps (e.g. ",(0,r.jsx)(n.code,{children:"2"}),", ",(0,r.jsx)(n.code,{children:"0.5"}),"). ",(0,r.jsx)(n.code,{children:"0"})," means unlimited."]}),"\n",(0,r.jsx)(n.h2,{id:"example-limit-on-the-client",children:"Example: Limit on the client"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-toml",children:'# orbien.toml\n[[tunnels]]\nname = "web"\nprotocol = "tcp"\nservice = "127.0.0.1:80"\nremotePort = 9000\ntransport.bandwidth = 2\ntransport.bandwidthLimitSide = "client"\n'})}),"\n",(0,r.jsx)(n.h2,{id:"example-limit-on-the-server",children:"Example: Limit on the server"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-toml",children:'# orbien.toml\n[[tunnels]]\nname = "web"\nprotocol = "tcp"\nservice = "127.0.0.1:80"\nremotePort = 9000\ntransport.bandwidth = 0.5\ntransport.bandwidthLimitSide = "server"\n'})}),"\n",(0,r.jsx)(n.h2,{id:"parameters",children:"Parameters"}),"\n",(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Parameter"}),(0,r.jsx)(n.th,{children:"Required"}),(0,r.jsx)(n.th,{children:"Default"}),(0,r.jsx)(n.th,{children:"Description"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"transport.bandwidth"})}),(0,r.jsx)(n.td,{children:"No"}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"0"})}),(0,r.jsxs)(n.td,{children:["Bandwidth cap (Mbps); ",(0,r.jsx)(n.code,{children:"0"})," means unlimited"]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"transport.bandwidthLimitSide"})}),(0,r.jsx)(n.td,{children:"No"}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"client"})}),(0,r.jsxs)(n.td,{children:["Limit side: ",(0,r.jsx)(n.code,{children:"client"})," / ",(0,r.jsx)(n.code,{children:"server"})]})]})]})]})]})}function h(e={}){let{wrapper:n}={...(0,d.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(o,{...e})}):o(e)}},7008(e,n,t){t.d(n,{R:()=>s,x:()=>l});var i=t(1763);let r={},d=i.createContext(r);function s(e){let n=i.useContext(d);return i.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:s(e.components),i.createElement(d.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/f2426367.56757d29.js b/en/assets/js/f2426367.56757d29.js new file mode 100644 index 0000000..3572e65 --- /dev/null +++ b/en/assets/js/f2426367.56757d29.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkorbien_docs=self.webpackChunkorbien_docs||[]).push([["518"],{9052(e,n,r){r.r(n),r.d(n,{metadata:()=>s,default:()=>a,frontMatter:()=>i,contentTitle:()=>c,toc:()=>o,assets:()=>l});var s=JSON.parse('{"id":"tunnels/udp","title":"UDP","description":"Map an internal UDP service to a public port on the server.","source":"@site/i18n/en/docusaurus-plugin-content-docs/current/tunnels/udp.md","sourceDirName":"tunnels","slug":"/tunnels/udp","permalink":"/orbien/en/docs/tunnels/udp","draft":false,"unlisted":false,"editUrl":"https://github.com/orbien-org/orbien/tree/main/docs/docs/tunnels/udp.md","tags":[],"version":"current","sidebarPosition":2,"frontMatter":{"sidebar_position":2,"sidebar_label":"UDP","title":"UDP"},"sidebar":"docsSidebar","previous":{"title":"TCP","permalink":"/orbien/en/docs/tunnels/tcp"},"next":{"title":"HTTP","permalink":"/orbien/en/docs/tunnels/http"}}'),t=r(1987),d=r(7008);let i={sidebar_position:2,sidebar_label:"UDP",title:"UDP"},c="UDP",l={},o=[{value:"Example: Expose DNS",id:"example-expose-dns",level:2},{value:"Parameters",id:"parameters",level:2}];function h(e){let n={code:"code",h1:"h1",h2:"h2",header:"header",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,d.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.header,{children:(0,t.jsx)(n.h1,{id:"udp",children:"UDP"})}),"\n",(0,t.jsx)(n.p,{children:"Map an internal UDP service to a public port on the server."}),"\n",(0,t.jsx)(n.h2,{id:"example-expose-dns",children:"Example: Expose DNS"}),"\n",(0,t.jsx)(n.p,{children:"Server:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-toml",children:'# orbien-server.toml\nlisten = "0.0.0.0:9527"\n'})}),"\n",(0,t.jsx)(n.p,{children:"Client:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-toml",children:'# orbien.toml\nserver = "YOUR_SERVER_IP:9527"\n\n[[tunnels]]\nname = "dns"\nprotocol = "udp"\nservice = "127.0.0.1:53"\nremotePort = 9000\n'})}),"\n",(0,t.jsx)(n.p,{children:"Access from the public network:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-shell",children:"dig @YOUR_SERVER_IP -p 9000 example.com\n"})}),"\n",(0,t.jsx)(n.h2,{id:"parameters",children:"Parameters"}),"\n",(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"Parameter"}),(0,t.jsx)(n.th,{children:"Required"}),(0,t.jsx)(n.th,{children:"Default"}),(0,t.jsx)(n.th,{children:"Description"})]})}),(0,t.jsxs)(n.tbody,{children:[(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"udpPacketSize"})}),(0,t.jsx)(n.td,{children:"No"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"1500"})}),(0,t.jsx)(n.td,{children:"Max UDP datagram size; must match the server"})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"name"})}),(0,t.jsx)(n.td,{children:"Yes"}),(0,t.jsx)(n.td,{}),(0,t.jsx)(n.td,{children:"Tunnel name; must be unique"})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"protocol"})}),(0,t.jsx)(n.td,{children:"Yes"}),(0,t.jsx)(n.td,{}),(0,t.jsxs)(n.td,{children:["Always ",(0,t.jsx)(n.code,{children:"udp"})]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"service"})}),(0,t.jsx)(n.td,{children:"Yes"}),(0,t.jsx)(n.td,{}),(0,t.jsxs)(n.td,{children:["Local service address, e.g. ",(0,t.jsx)(n.code,{children:"127.0.0.1:53"})]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"remotePort"})}),(0,t.jsx)(n.td,{children:"Yes"}),(0,t.jsx)(n.td,{}),(0,t.jsx)(n.td,{children:"Public listen port on the server"})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"transport.bandwidth"})}),(0,t.jsx)(n.td,{children:"No"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"0"})}),(0,t.jsxs)(n.td,{children:["Bandwidth cap (Mbps); ",(0,t.jsx)(n.code,{children:"0"})," means unlimited"]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"transport.bandwidthLimitSide"})}),(0,t.jsx)(n.td,{children:"No"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"client"})}),(0,t.jsxs)(n.td,{children:["Limit side: ",(0,t.jsx)(n.code,{children:"client"})," / ",(0,t.jsx)(n.code,{children:"server"})]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"transport.proxyProtocolVersion"})}),(0,t.jsx)(n.td,{children:"No"}),(0,t.jsx)(n.td,{}),(0,t.jsxs)(n.td,{children:["PROXY Protocol: ",(0,t.jsx)(n.code,{children:"v1"})," / ",(0,t.jsx)(n.code,{children:"v2"})]})]})]})]})]})}function a(e={}){let{wrapper:n}={...(0,d.R)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(h,{...e})}):h(e)}},7008(e,n,r){r.d(n,{R:()=>i,x:()=>c});var s=r(1763);let t={},d=s.createContext(t);function i(e){let n=s.useContext(d);return s.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:i(e.components),s.createElement(d.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/main.8c657db9.js b/en/assets/js/main.8c657db9.js new file mode 100644 index 0000000..c8c1f4d --- /dev/null +++ b/en/assets/js/main.8c657db9.js @@ -0,0 +1,38 @@ +(self.webpackChunkorbien_docs=self.webpackChunkorbien_docs||[]).push([["889"],{2796(e,t,n){"use strict";n.r(t)},9564(e,t,n){"use strict";n.r(t)},6544(e,t,n){"use strict";n.r(t)},9883(e,t,n){"use strict";n.d(t,{mg:()=>Z,vd:()=>H});var r=n(1763),a=n(2736),o=n.n(a),i=n(4072),l=n.n(i),s=n(9597),u=n.n(s),c=n(2945),d=n.n(c);function f(){return(f=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}).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})(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)"},b={rel:["amphtml","canonical","alternate"]},y={type:["application/ld+json"]},v={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"},S=Object.keys(k).reduce(function(e,t){return e[k[t]]=t,e},{}),x=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},E=function(e){var t=x(e,g.TITLE),n=x(e,"titleTemplate");if(Array.isArray(t)&&(t=t.join("")),n&&t)return n.replace(/%s/g,function(){return t});var r=x(e,"defaultTitle");return t||r||void 0},_=function(e,t){return t.filter(function(t){return void 0!==t[e]}).map(function(t){return t[e]}).reduce(function(e,t){return f({},e,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],s=l.toLowerCase();-1===t.indexOf(s)||"rel"===n&&"canonical"===e[n].toLowerCase()||"rel"===s&&"stylesheet"===e[s].toLowerCase()||(n=s),-1===t.indexOf(l)||"innerHTML"!==l&&"cssText"!==l&&"itemprop"!==l||(n=l)}if(!n||!e[n])return!1;var u=e[n].toLowerCase();return r[n]||(r[n]={}),a[n]||(a[n]={}),!r[n][u]&&(a[n][u]=!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],s=f({},r[l],a[l]);r[l]=s}return e},[]).reverse()},T=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},C=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.default.push(n):e.priority.push(n),e},{priority:[],default:[]}):{default:e}},O=function(e,t){var n;return f({},e,((n={})[t]=void 0,n))},L=[g.NOSCRIPT,g.SCRIPT,g.STYLE],N=function(e,t){return void 0===t&&(t=!0),!1===t?String(e):String(e).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")},j=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},"")},R=function(e,t){return void 0===t&&(t={}),Object.keys(e).reduce(function(t,n){return t[k[n]||n]=e[n],t},t)},I=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)})},D=function(e,t,n){switch(e){case g.TITLE:return{toComponent:function(){var e,n,a,o;return n=t.titleAttributes,(a={key:e=t.title})["data-rh"]=!0,o=R(n,a),[r.createElement(g.TITLE,o,e)]},toString:function(){var r,a,o,i;return r=t.title,a=t.titleAttributes,o=j(a),i=C(r),o?"<"+e+' data-rh="true" '+o+">"+N(i,n)+"</"+e+">":"<"+e+' data-rh="true">'+N(i,n)+"</"+e+">"}};case"bodyAttributes":case"htmlAttributes":return{toComponent:function(){return R(t)},toString:function(){return j(t)}};default:return{toComponent:function(){return I(e,t)},toString:function(){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+'="'+N(r[t],n)+'"';return e?e+" "+a:a},""),o=r.innerHTML||r.cssText||"",i=-1===L.indexOf(e);return t+"<"+e+' data-rh="true" '+a+(i?"/>":">"+o+"</"+e+">")},"")}}}},F=function(e){var t=e.baseTag,n=e.bodyAttributes,r=e.encode,a=e.htmlAttributes,o=e.noscriptTags,i=e.styleTags,l=e.title,s=e.titleAttributes,u=e.linkTags,c=e.metaTags,d=e.scriptTags,f={toComponent:function(){},toString:function(){return""}};if(e.prioritizeSeoTags){var p,m,h,w,k,S,x=(p=e.linkTags,m=e.scriptTags,h=e.encode,w=P(e.metaTags,v),k=P(p,b),S=P(m,y),{priorityMethods:{toComponent:function(){return[].concat(I(g.META,w.priority),I(g.LINK,k.priority),I(g.SCRIPT,S.priority))},toString:function(){return D(g.META,w.priority,h)+" "+D(g.LINK,k.priority,h)+" "+D(g.SCRIPT,S.priority,h)}},metaTags:w.default,linkTags:k.default,scriptTags:S.default});f=x.priorityMethods,u=x.linkTags,c=x.metaTags,d=x.scriptTags}return{priority:f,base:D(g.BASE,t,r),bodyAttributes:D("bodyAttributes",n,r),htmlAttributes:D("htmlAttributes",a,r),link:D(g.LINK,u,r),meta:D(g.META,c,r),noscript:D(g.NOSCRIPT,o,r),script:D(g.SCRIPT,d,r),style:D(g.STYLE,i,r),title:D(g.TITLE,{title:void 0===l?"":l,titleAttributes:s},r)}},z=[],M=function(e,t){var n=this;void 0===t&&(t="u">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=F({baseTag:[],bodyAttributes:{},encodeSpecialCharacters:!0,htmlAttributes:{},linkTags:[],metaTags:[],noscriptTags:[],scriptTags:[],styleTags:[],title:"",titleAttributes:{}}))},$=r.createContext({}),B=o().shape({setHelmet:o().func,helmetInstances:o().shape({get:o().func,add:o().func,remove:o().func})}),U="u">typeof document,H=function(e){function t(n){var r;return(r=e.call(this,n)||this).helmetData=new M(r.props.context,t.canUseDOM),r}return p(t,e),t.prototype.render=function(){return r.createElement($.Provider,{value:this.helmetData.value},this.props.children)},t}(r.Component);H.canUseDOM=U,H.propTypes={context:o().shape({helmet:o().shape()}),children:o().node.isRequired},H.defaultProps={context:{}},H.displayName="HelmetProvider";var V=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}},W=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 s=i[l],u=t[s]||"";n.getAttribute(s)!==u&&n.setAttribute(s,u),-1===a.indexOf(s)&&a.push(s);var c=o.indexOf(s);-1!==c&&o.splice(c,1)}for(var d=o.length-1;d>=0;d-=1)n.removeAttribute(o[d]);a.length===o.length?n.removeAttribute("data-rh"):n.getAttribute("data-rh")!==i.join(",")&&n.setAttribute("data-rh",i.join(","))}},q=function(e,t){var n=e.baseTag,r=e.htmlAttributes,a=e.linkTags,o=e.metaTags,i=e.noscriptTags,l=e.onChangeClientState,s=e.scriptTags,u=e.styleTags,c=e.title,d=e.titleAttributes;W(g.BODY,e.bodyAttributes),W(g.HTML,r),void 0!==c&&document.title!==c&&(document.title=C(c)),W(g.TITLE,d);var f={baseTag:V(g.BASE,n),linkTags:V(g.LINK,a),metaTags:V(g.META,o),noscriptTags:V(g.NOSCRIPT,i),scriptTags:V(g.SCRIPT,s),styleTags:V(g.STYLE,u)},p={},m={};Object.keys(f).forEach(function(e){var t=f[e],n=t.newTags,r=t.oldTags;n.length&&(p[e]=n),r.length&&(m[e]=f[e].oldTags)}),t&&t(),l(e,p,m)},G=null,Y=function(e){function t(){for(var t,n=arguments.length,r=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!d()(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={baseTag:(e=["href"],(t=n.helmetInstances.get().map(function(e){var t=f({},e.props);return delete t.context,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},[])),bodyAttributes:_("bodyAttributes",t),defer:x(t,"defer"),encode:x(t,"encodeSpecialCharacters"),htmlAttributes:_("htmlAttributes",t),linkTags:A(g.LINK,["rel","href"],t),metaTags:A(g.META,["name","charset","http-equiv","property","itemprop"],t),noscriptTags:A(g.NOSCRIPT,["innerHTML"],t),onChangeClientState:x(t,"onChangeClientState")||function(){},scriptTags:A(g.SCRIPT,["src","innerHTML"],t),styleTags:A(g.STYLE,["cssText"],t),title:E(t),titleAttributes:_("titleAttributes",t),prioritizeSeoTags:T(t,"prioritizeSeoTags")};H.canUseDOM?(G&&cancelAnimationFrame(G),o.defer?G=requestAnimationFrame(function(){q(o,function(){G=null})}):(q(o),G=null)):F&&(a=F(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);Y.propTypes={context:B.isRequired},Y.displayName="HelmetDispatcher";var K=["children"],Q=["children"],Z=function(e){function t(){return e.apply(this,arguments)||this}p(t,e);var n=t.prototype;return n.shouldComponentUpdate=function(e){return!l()(O(this.props,"helmetData"),O(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 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 f({},r,((t={})[n.type]=[].concat(r[n.type]||[],[f({},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 f({},a,((t={})[r.type]=i,t.titleAttributes=f({},o),t));case g.BODY:return f({},a,{bodyAttributes:f({},o)});case g.HTML:return f({},a,{htmlAttributes:f({},o)});default:return f({},a,((n={})[r.type]=f({},o),n))}},n.mapArrayTypeChildrenToProps=function(e,t){var n=f({},t);return Object.keys(e).forEach(function(t){var r;n=f({},n,((r={})[t]=e[t],r))}),n},n.warnOnInvalidChildren=function(e,t){return u()(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."),u()(!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,K),l=Object.keys(i).reduce(function(e,t){return e[S[t]||t]=i[t],e},{}),s=e.type;switch("symbol"==typeof s?s=s.toString():n.warnOnInvalidChildren(e,o),s){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,Q),a=f({},n),o=n.helmetData;return t&&(a=this.mapChildrenToProps(t,a)),!o||o instanceof M||(o=new M(o.context,o.instances)),o?r.createElement(Y,f({},a,{context:o.value,helmetData:void 0})):r.createElement($.Consumer,null,function(e){return r.createElement(Y,f({},a,{context:e}))})},t}(r.Component);Z.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},Z.defaultProps={defer:!0,encodeSpecialCharacters:!0,prioritizeSeoTags:!1},Z.displayName="Helmet"},477(e,t,n){"use strict";n.d(t,{AO:()=>f,yJ:()=>p,sC:()=>C,TM:()=>A,zR:()=>w});var r=n(5062);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()}let i=function(e,t){void 0===t&&(t="");var n,r=e&&e.split("/")||[],i=t&&t.split("/")||[],l=e&&a(e),s=t&&a(t),u=l||s;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 d=0,f=i.length;f>=0;f--){var p=i[f];"."===p?o(i,f):".."===p?(o(i,f),d++):d&&(o(i,f),d--)}if(!u)for(;d--;)i.unshift("..");!u||""===i[0]||i[0]&&a(i[0])||i.unshift("");var m=i.join("/");return n&&"/"!==m.substr(-1)&&(m+="/"),m};var l=n(5385);function s(e){return"/"===e.charAt(0)?e:"/"+e}function u(e){return"/"===e.charAt(0)?e.substr(1):e}function c(e,t){return 0===e.toLowerCase().indexOf(t.toLowerCase())&&-1!=="/?#".indexOf(e.charAt(t.length))?e.substr(t.length):e}function d(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e}function f(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 p(e,t,n,a){var o,l,s,u,c,d;"string"==typeof e?(s="",u="",-1!==(c=(l=e||"/").indexOf("#"))&&(u=l.substr(c),l=l.substr(0,c)),-1!==(d=l.indexOf("?"))&&(s=l.substr(d),l=l.substr(0,d)),(o={pathname:l,search:"?"===s?"":s,hash:"#"===u?"":u}).state=t):(void 0===(o=(0,r.A)({},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(e){if(e instanceof URIError)throw URIError('Pathname "'+o.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.');throw e}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 m(){var e=null,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=Array(e),r=0;r<e;r++)n[r]=arguments[r];t.forEach(function(e){return e.apply(void 0,n)})}}}var h=!!("u">typeof window&&window.document&&window.document.createElement);function g(e,t){t(window.confirm(e))}var b="popstate",y="hashchange";function v(){try{return window.history.state||{}}catch(e){return{}}}function w(e){void 0===e&&(e={}),h||(0,l.A)(!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,u=i.forceRefresh,w=void 0!==u&&u,k=i.getUserConfirmation,S=void 0===k?g:k,x=i.keyLength,E=void 0===x?6:x,_=e.basename?d(s(e.basename)):"";function A(e){var t=e||{},n=t.key,r=t.state,a=window.location,o=a.pathname+a.search+a.hash;return _&&(o=c(o,_)),p(o,r,n)}function T(){return Math.random().toString(36).substr(2,E)}var C=m();function P(e){(0,r.A)(B,e),B.length=n.length,C.notifyListeners(B.location,B.action)}function O(e){(void 0!==e.state||-1!==navigator.userAgent.indexOf("CriOS"))&&j(A(e.state))}function L(){j(A(v()))}var N=!1;function j(e){N?(N=!1,P()):C.confirmTransitionTo(e,"POP",S,function(t){var n,r,a,o,i;t?P({action:"POP",location:e}):(n=e,r=B.location,-1===(a=I.indexOf(r.key))&&(a=0),-1===(o=I.indexOf(n.key))&&(o=0),(i=a-o)&&(N=!0,F(i)))})}var R=A(v()),I=[R.key];function D(e){return _+f(e)}function F(e){n.go(e)}var z=0;function M(e){1===(z+=e)&&1===e?(window.addEventListener(b,O),o&&window.addEventListener(y,L)):0===z&&(window.removeEventListener(b,O),o&&window.removeEventListener(y,L))}var $=!1,B={length:n.length,action:"POP",location:R,createHref:D,push:function(e,t){var r="PUSH",o=p(e,t,T(),B.location);C.confirmTransitionTo(o,r,S,function(e){if(e){var t=D(o),i=o.key,l=o.state;if(a)if(n.pushState({key:i,state:l},null,t),w)window.location.href=t;else{var s=I.indexOf(B.location.key),u=I.slice(0,s+1);u.push(o.key),I=u,P({action:r,location:o})}else window.location.href=t}})},replace:function(e,t){var r="REPLACE",o=p(e,t,T(),B.location);C.confirmTransitionTo(o,r,S,function(e){if(e){var t=D(o),i=o.key,l=o.state;if(a)if(n.replaceState({key:i,state:l},null,t),w)window.location.replace(t);else{var s=I.indexOf(B.location.key);-1!==s&&(I[s]=o.key),P({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=C.setPrompt(e);return $||(M(1),$=!0),function(){return $&&($=!1,M(-1)),t()}},listen:function(e){var t=C.appendListener(e);return M(1),function(){M(-1),t()}}};return B}var k="hashchange",S={hashbang:{encodePath:function(e){return"!"===e.charAt(0)?e:"!/"+u(e)},decodePath:function(e){return"!"===e.charAt(0)?e.substr(1):e}},noslash:{encodePath:u,decodePath:s},slash:{encodePath:s,decodePath:s}};function x(e){var t=e.indexOf("#");return -1===t?e:e.slice(0,t)}function E(){var e=window.location.href,t=e.indexOf("#");return -1===t?"":e.substring(t+1)}function _(e){window.location.replace(x(window.location.href)+"#"+e)}function A(e){void 0===e&&(e={}),h||(0,l.A)(!1);var t=window.history;window.navigator.userAgent.indexOf("Firefox");var n=e,a=n.getUserConfirmation,o=void 0===a?g:a,i=n.hashType,u=e.basename?d(s(e.basename)):"",b=S[void 0===i?"slash":i],y=b.encodePath,v=b.decodePath;function w(){var e=v(E());return u&&(e=c(e,u)),p(e)}var A=m();function T(e){(0,r.A)(M,e),M.length=t.length,A.notifyListeners(M.location,M.action)}var C=!1,P=null;function O(){var e=E(),t=y(e);if(e!==t)_(t);else{var n,r=w(),a=M.location;if(!C&&a.pathname===r.pathname&&a.search===r.search&&a.hash===r.hash||P===f(r))return;P=null,n=r,C?(C=!1,T()):A.confirmTransitionTo(n,"POP",o,function(e){var t,r,a,o,i;e?T({action:"POP",location:n}):(t=n,r=M.location,-1===(a=R.lastIndexOf(f(r)))&&(a=0),-1===(o=R.lastIndexOf(f(t)))&&(o=0),(i=a-o)&&(C=!0,I(i)))})}}var L=E(),N=y(L);L!==N&&_(N);var j=w(),R=[f(j)];function I(e){t.go(e)}var D=0;function F(e){1===(D+=e)&&1===e?window.addEventListener(k,O):0===D&&window.removeEventListener(k,O)}var z=!1,M={length:t.length,action:"POP",location:j,createHref:function(e){var t=document.querySelector("base"),n="";return t&&t.getAttribute("href")&&(n=x(window.location.href)),n+"#"+y(u+f(e))},push:function(e,t){var n="PUSH",r=p(e,void 0,void 0,M.location);A.confirmTransitionTo(r,n,o,function(e){if(e){var t=f(r),a=y(u+t);if(E()!==a){P=t,window.location.hash=a;var o=R.lastIndexOf(f(M.location)),i=R.slice(0,o+1);i.push(t),R=i,T({action:n,location:r})}else T()}})},replace:function(e,t){var n="REPLACE",r=p(e,void 0,void 0,M.location);A.confirmTransitionTo(r,n,o,function(e){if(e){var t=f(r),a=y(u+t);E()!==a&&(P=t,_(a));var o=R.indexOf(f(M.location));-1!==o&&(R[o]=t),T({action:n,location:r})}})},go:I,goBack:function(){I(-1)},goForward:function(){I(1)},block:function(e){void 0===e&&(e=!1);var t=A.setPrompt(e);return z||(F(1),z=!0),function(){return z&&(z=!1,F(-1)),t()}},listen:function(e){var t=A.appendListener(e);return F(1),function(){F(-1),t()}}};return M}function T(e,t,n){return Math.min(Math.max(e,t),n)}function C(e){void 0===e&&(e={});var t=e,n=t.getUserConfirmation,a=t.initialEntries,o=void 0===a?["/"]:a,i=t.initialIndex,l=t.keyLength,s=void 0===l?6:l,u=m();function c(e){(0,r.A)(y,e),y.length=y.entries.length,u.notifyListeners(y.location,y.action)}function d(){return Math.random().toString(36).substr(2,s)}var h=T(void 0===i?0:i,0,o.length-1),g=o.map(function(e){return"string"==typeof e?p(e,void 0,d()):p(e,void 0,e.key||d())});function b(e){var t=T(y.index+e,0,y.entries.length-1),r=y.entries[t];u.confirmTransitionTo(r,"POP",n,function(e){e?c({action:"POP",location:r,index:t}):c()})}var y={length:g.length,action:"POP",location:g[h],index:h,entries:g,createHref:f,push:function(e,t){var r="PUSH",a=p(e,t,d(),y.location);u.confirmTransitionTo(a,r,n,function(e){if(e){var t=y.index+1,n=y.entries.slice(0);n.length>t?n.splice(t,n.length-t,a):n.push(a),c({action:r,location:a,index:t,entries:n})}})},replace:function(e,t){var r="REPLACE",a=p(e,t,d(),y.location);u.confirmTransitionTo(a,r,n,function(e){e&&(y.entries[y.index]=a,c({action:r,location:a}))})},go:b,goBack:function(){b(-1)},goForward:function(){b(1)},canGo:function(e){var t=y.index+e;return t>=0&&t<y.entries.length},block:function(e){return void 0===e&&(e=!1),u.setPrompt(e)},listen:function(e){return u.appendListener(e)}};return y}},1035(e,t,n){"use strict";var r=n(5959),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 s(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 u=Object.defineProperty,c=Object.getOwnPropertyNames,d=Object.getOwnPropertySymbols,f=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);d&&(i=i.concat(d(n)));for(var l=s(t),h=s(n),g=0;g<i.length;++g){var b=i[g];if(!o[b]&&!(r&&r[b])&&!(h&&h[b])&&!(l&&l[b])){var y=f(n,b);try{u(t,b,y)}catch(e){}}}}return t}},9597(e){"use strict";e.exports=function(e,t,n,r,a,o,i,l){if(!e){var s;if(void 0===t)s=Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var u=[n,r,a,o,i,l],c=0;(s=Error(t.replace(/%s/g,function(){return u[c++]}))).name="Invariant Violation"}throw s.framesToPop=1,s}}},5526(e){e.exports=Array.isArray||function(e){return"[object Array]"==Object.prototype.toString.call(e)}},8744(e){var t;t=function(){var e,t,n,r={};r.version="0.2.0";var a=r.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 o(e,t,n){return e<t?t:e>n?n:e}r.configure=function(e){var t,n;for(t in e)void 0!==(n=e[t])&&e.hasOwnProperty(t)&&(a[t]=n);return this},r.status=null,r.set=function(e){var t=r.isStarted();r.status=1===(e=o(e,a.minimum,1))?null:e;var n=r.render(!t),s=n.querySelector(a.barSelector),u=a.speed,c=a.easing;return n.offsetWidth,i(function(t){var o,i,d,f;""===a.positionUsing&&(a.positionUsing=r.getPositioningCSS()),l(s,(o=e,i=u,d=c,(f="translate3d"===a.positionUsing?{transform:"translate3d("+(-1+o)*100+"%,0,0)"}:"translate"===a.positionUsing?{transform:"translate("+(-1+o)*100+"%,0)"}:{"margin-left":(-1+o)*100+"%"}).transition="all "+i+"ms "+d,f)),1===e?(l(n,{transition:"none",opacity:1}),n.offsetWidth,setTimeout(function(){l(n,{transition:"all "+u+"ms linear",opacity:0}),setTimeout(function(){r.remove(),t()},u)},u)):setTimeout(t,u)}),this},r.isStarted=function(){return"number"==typeof r.status},r.start=function(){r.status||r.set(0);var e=function(){setTimeout(function(){r.status&&(r.trickle(),e())},a.trickleSpeed)};return a.trickle&&e(),this},r.done=function(e){return e||r.status?r.inc(.3+.5*Math.random()).set(1):this},r.inc=function(e){var t=r.status;return t?("number"!=typeof e&&(e=(1-t)*o(Math.random()*t,.1,.95)),t=o(t+e,0,.994),r.set(t)):r.start()},r.trickle=function(){return r.inc(Math.random()*a.trickleRate)},e=0,t=0,r.promise=function(n){return n&&"resolved"!==n.state()&&(0===t&&r.start(),e++,t++,n.always(function(){0==--t?(e=0,r.done()):r.set((e-t)/e)})),this},r.render=function(e){if(r.isRendered())return document.getElementById("nprogress");u(document.documentElement,"nprogress-busy");var t=document.createElement("div");t.id="nprogress",t.innerHTML=a.template;var n,o=t.querySelector(a.barSelector),i=e?"-100":(-1+(r.status||0))*100,s=document.querySelector(a.parent);return l(o,{transition:"all 0 linear",transform:"translate3d("+i+"%,0,0)"}),!a.showSpinner&&(n=t.querySelector(a.spinnerSelector))&&f(n),s!=document.body&&u(s,"nprogress-custom-parent"),s.appendChild(t),t},r.remove=function(){c(document.documentElement,"nprogress-busy"),c(document.querySelector(a.parent),"nprogress-custom-parent");var e=document.getElementById("nprogress");e&&f(e)},r.isRendered=function(){return!!document.getElementById("nprogress")},r.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 i=(n=[],function(e){n.push(e),1==n.length&&function e(){var t=n.shift();t&&t(e)}()}),l=function(){var e=["Webkit","O","Moz","ms"],t={};function n(n,r,a){var o;r=t[o=(o=r).replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,function(e,t){return t.toUpperCase()})]||(t[o]=function(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}(o)),n.style[r]=a}return function(e,t){var r,a,o=arguments;if(2==o.length)for(r in t)void 0!==(a=t[r])&&t.hasOwnProperty(r)&&n(e,r,a);else n(e,o[1],o[2])}}();function s(e,t){return("string"==typeof e?e:d(e)).indexOf(" "+t+" ")>=0}function u(e,t){var n=d(e),r=n+t;s(n,t)||(e.className=r.substring(1))}function c(e,t){var n,r=d(e);s(e,t)&&(e.className=(n=r.replace(" "+t+" "," ")).substring(1,n.length-1))}function d(e){return(" "+(e.className||"")+" ").replace(/\s+/gi," ")}function f(e){e&&e.parentNode&&e.parentNode.removeChild(e)}return r},"function"==typeof define&&define.amd?define(t):e.exports=t()},4785(e,t,n){var r=n(5526);e.exports=function e(t,n,a){if(r(n)||(a=n||a,n=[]),a=a||{},t instanceof RegExp){var i,l,s=n,d=t.source.match(/\((?!\?)/g);if(d)for(var f=0;f<d.length;f++)s.push({name:f,prefix:null,delimiter:null,optional:!1,repeat:!1,partial:!1,asterisk:!1,pattern:null});return t.keys=s,t}if(r(t)){for(var p,m=n,h=a,g=[],b=0;b<t.length;b++)g.push(e(t[b],m,h).source);return(p=RegExp("(?:"+g.join("|")+")",u(h))).keys=m,p}return i=n,c(o(t,l=a),i,l)},e.exports.parse=o,e.exports.compile=function(e,t){return l(o(e,t),t)},e.exports.tokensToFunction=l,e.exports.tokensToRegExp=c;var a=RegExp("(\\\\.)|([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))","g");function o(e,t){for(var n,r=[],o=0,i=0,l="",u=t&&t.delimiter||"/";null!=(n=a.exec(e));){var c,d,f=n[0],p=n[1],m=n.index;if(l+=e.slice(i,m),i=m+f.length,p){l+=p[1];continue}var h=e[i],g=n[2],b=n[3],y=n[4],v=n[5],w=n[6],k=n[7];l&&(r.push(l),l="");var S=null!=g&&null!=h&&h!==g,x="+"===w||"*"===w,E="?"===w||"*"===w,_=g||u,A=y||v,T=g||("string"==typeof r[r.length-1]?r[r.length-1]:"");r.push({name:b||o++,prefix:g||"",delimiter:_,optional:E,repeat:x,partial:S,asterisk:!!k,pattern:A?A.replace(/([=!:$\/()])/g,"\\$1"):k?".*":(c=_,!(d=T)||d.indexOf(c)>-1?"[^"+s(c)+"]+?":s(d)+"|(?:(?!"+s(d)+")[^"+s(c)+"])+?")})}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=Array(e.length),a=0;a<e.length;a++)"object"==typeof e[a]&&(n[a]=RegExp("^(?:"+e[a].pattern+")$",u(t)));return function(t,a){for(var o="",l=t||{},s=(a||{}).pretty?i:encodeURIComponent,u=0;u<e.length;u++){var c,d=e[u];if("string"==typeof d){o+=d;continue}var f=l[d.name];if(null==f)if(d.optional){d.partial&&(o+=d.prefix);continue}else throw TypeError('Expected "'+d.name+'" to be defined');if(r(f)){if(!d.repeat)throw TypeError('Expected "'+d.name+'" to not repeat, but received `'+JSON.stringify(f)+"`");if(0===f.length)if(d.optional)continue;else throw TypeError('Expected "'+d.name+'" to not be empty');for(var p=0;p<f.length;p++){if(c=s(f[p]),!n[u].test(c))throw TypeError('Expected all "'+d.name+'" to match "'+d.pattern+'", but received `'+JSON.stringify(c)+"`");o+=(0===p?d.prefix:d.delimiter)+c}continue}if(c=d.asterisk?encodeURI(f).replace(/[?#]/g,function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()}):s(f),!n[u].test(c))throw TypeError('Expected "'+d.name+'" to match "'+d.pattern+'", but received "'+c+'"');o+=d.prefix+c}return o}}function s(e){return e.replace(/([.+*?=^!:${}()[\]|\/\\])/g,"\\$1")}function u(e){return e&&e.sensitive?"":"i"}function c(e,t,n){r(t)||(n=t||n,t=[]);for(var a,o=(n=n||{}).strict,i=!1!==n.end,l="",c=0;c<e.length;c++){var d=e[c];if("string"==typeof d)l+=s(d);else{var f=s(d.prefix),p="(?:"+d.pattern+")";t.push(d),d.repeat&&(p+="(?:"+f+p+")*"),l+=p=d.optional?d.partial?f+"("+p+")?":"(?:"+f+"("+p+"))?":f+"("+p+")"}}var m=s(n.delimiter||"/"),h=l.slice(-m.length)===m;return o||(l=(h?l.slice(0,-m.length):l)+"(?:"+m+"(?=$))?"),i?l+="$":l+=o&&h?"":"(?="+m+"|$)",(a=RegExp("^"+l,u(n))).keys=t,a}},1022(){!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+(?:\.\w+)*(?=\+?=)/,inside:{environment:{pattern:RegExp("(^|[\\s;|&]|[<>]\\()"+t),lookbehind:!0,alias:"constant"}},alias:"variable",lookbehind:!0},parameter:{pattern:/(^|\s)-{1,2}(?:\w+:[+-]?)?\w+(?:\.\w+)*(?=[=\s]|$)/,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|cargo|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|java|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|sysctl|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","parameter","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.sh=e.languages.bash,e.languages.shell=e.languages.bash}(Prism)},7874(){Prism.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"}},Prism.languages.webmanifest=Prism.languages.json},8020(){var e=Prism;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 s=0;s<l.length&&!(a>=o.length);s++){var u=l[s];if("string"==typeof u||u.content&&"string"==typeof u.content){var c=o[a],d=n.tokenStack[c],f="string"==typeof u?u:u.content,p=t(r,c),m=f.indexOf(p);if(m>-1){++a;var h=f.substring(0,m),g=new e.Token(r,e.tokenize(d,n.grammar),"language-"+r,d),b=f.substring(m+p.length),y=[];h&&y.push.apply(y,i([h])),y.push(g),b&&y.push.apply(y,i([b])),"string"==typeof u?l.splice.apply(l,[s,1].concat(y)):u.content=y}}else u.content&&i(u.content)}return l}(n.tokens)}}}})},100(){var e=Prism,t=/(?:[\w-]+|'[^'\n\r]*'|"(?:\\.|[^\\"\r\n])*")/.source;function n(e){return e.replace(/__/g,function(){return t})}e.languages.toml={comment:{pattern:/#.*/,greedy:!0},table:{pattern:RegExp(n(/(^[\t ]*\[\s*(?:\[\s*)?)__(?:\s*\.\s*__)*(?=\s*\])/.source),"m"),lookbehind:!0,greedy:!0,alias:"class-name"},key:{pattern:RegExp(n(/(^[\t ]*|[{,]\s*)__(?:\s*\.\s*__)*(?=\s*=)/.source),"m"),lookbehind:!0,greedy:!0,alias:"property"},string:{pattern:/"""(?:\\[\s\S]|[^\\])*?"""|'''[\s\S]*?'''|'[^'\n\r]*'|"(?:\\.|[^\\"\r\n])*"/,greedy:!0},date:[{pattern:/\b\d{4}-\d{2}-\d{2}(?:[T\s]\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})?)?\b/i,alias:"number"},{pattern:/\b\d{2}:\d{2}:\d{2}(?:\.\d+)?\b/,alias:"number"}],number:/(?:\b0(?:x[\da-zA-Z]+(?:_[\da-zA-Z]+)*|o[0-7]+(?:_[0-7]+)*|b[10]+(?:_[10]+)*))\b|[-+]?\b\d+(?:_\d+)*(?:\.\d+(?:_\d+)*)?(?:[eE][+-]?\d+(?:_\d+)*)?\b|[-+]?\b(?:inf|nan)\b/,boolean:/\b(?:false|true)\b/,punctuation:/[.,=[\]{}]/}},3295(e,t,n){var r={"./prism-bash":"1022","./prism-json":"7874","./prism-toml":"100"};function a(e){return n(o(e))}function o(e){if(!n.o(r,e)){var t=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=3295},6186(e,t,n){"use strict";var r=n(2985);function a(){}function o(){}o.resetWarningCache=a,e.exports=function(){function e(e,t,n,a,o,i){if(i!==r){var l=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}},2736(e,t,n){e.exports=n(6186)()},2985(e){"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},1663(e,t,n){"use strict";var r,a=n(5666),o=n(1763),i=n(8481);function l(e){var t="https://react.dev/errors/"+e;if(1<arguments.length){t+="?args[]="+encodeURIComponent(arguments[1]);for(var n=2;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."}function s(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType)}function u(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do 0!=(4098&(t=e).flags)&&(n=t.return),e=t.return;while(e)}return 3===t.tag?n:null}function c(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 d(e){if(31===e.tag){var t=e.memoizedState;if(null===t&&null!==(e=e.alternate)&&(t=e.memoizedState),null!==t)return t.dehydrated}return null}function f(e){if(u(e)!==e)throw Error(l(188))}var p=Object.assign,m=Symbol.for("react.element"),h=Symbol.for("react.transitional.element"),g=Symbol.for("react.portal"),b=Symbol.for("react.fragment"),y=Symbol.for("react.strict_mode"),v=Symbol.for("react.profiler"),w=Symbol.for("react.consumer"),k=Symbol.for("react.context"),S=Symbol.for("react.forward_ref"),x=Symbol.for("react.suspense"),E=Symbol.for("react.suspense_list"),_=Symbol.for("react.memo"),A=Symbol.for("react.lazy");Symbol.for("react.scope");var T=Symbol.for("react.activity");Symbol.for("react.legacy_hidden"),Symbol.for("react.tracing_marker");var C=Symbol.for("react.memo_cache_sentinel");Symbol.for("react.view_transition");var P=Symbol.iterator;function O(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=P&&e[P]||e["@@iterator"])?e:null}var L=Symbol.for("react.client.reference"),N=Array.isArray,j=o.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,R=i.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,I={pending:!1,data:null,method:null,action:null},D=[],F=-1;function z(e){return{current:e}}function M(e){0>F||(e.current=D[F],D[F]=null,F--)}function $(e,t){D[++F]=e.current,e.current=t}var B=z(null),U=z(null),H=z(null),V=z(null);function W(e,t){switch($(H,t),$(U,e),$(B,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?uy(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)e=uv(t=uy(t),e);else switch(e){case"svg":e=1;break;case"math":e=2;break;default:e=0}}M(B),$(B,e)}function q(){M(B),M(U),M(H)}function G(e){null!==e.memoizedState&&$(V,e);var t=B.current,n=uv(t,e.type);t!==n&&($(U,e),$(B,n))}function Y(e){U.current===e&&(M(B),M(U)),V.current===e&&(M(V),ct._currentValue=I)}function K(e){if(void 0===tF)try{throw Error()}catch(e){var t=e.stack.trim().match(/\n( *(at )?)/);tF=t&&t[1]||"",tz=-1<e.stack.indexOf("\n at")?" (<anonymous>)":-1<e.stack.indexOf("@")?"@unknown:0:0":""}return"\n"+tF+e+tz}var Q=!1;function Z(e,t){if(!e||Q)return"";Q=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var r={DetermineComponentFrameRoot:function(){try{if(t){var n=function(){throw Error()};if(Object.defineProperty(n.prototype,"props",{set:function(){throw Error()}}),"object"==typeof Reflect&&Reflect.construct){try{Reflect.construct(n,[])}catch(e){var r=e}Reflect.construct(e,[],n)}else{try{n.call()}catch(e){r=e}e.call(n.prototype)}}else{try{throw Error()}catch(e){r=e}(n=e())&&"function"==typeof n.catch&&n.catch(function(){})}}catch(e){if(e&&r&&"string"==typeof e.stack)return[e.stack,r.stack]}return[null,null]}};r.DetermineComponentFrameRoot.displayName="DetermineComponentFrameRoot";var a=Object.getOwnPropertyDescriptor(r.DetermineComponentFrameRoot,"name");a&&a.configurable&&Object.defineProperty(r.DetermineComponentFrameRoot,"name",{value:"DetermineComponentFrameRoot"});var o=r.DetermineComponentFrameRoot(),i=o[0],l=o[1];if(i&&l){var s=i.split("\n"),u=l.split("\n");for(a=r=0;r<s.length&&!s[r].includes("DetermineComponentFrameRoot");)r++;for(;a<u.length&&!u[a].includes("DetermineComponentFrameRoot");)a++;if(r===s.length||a===u.length)for(r=s.length-1,a=u.length-1;1<=r&&0<=a&&s[r]!==u[a];)a--;for(;1<=r&&0<=a;r--,a--)if(s[r]!==u[a]){if(1!==r||1!==a)do if(r--,a--,0>a||s[r]!==u[a]){var c="\n"+s[r].replace(" at new "," at ");return e.displayName&&c.includes("<anonymous>")&&(c=c.replace("<anonymous>",e.displayName)),c}while(1<=r&&0<=a)break}}}finally{Q=!1,Error.prepareStackTrace=n}return(n=e?e.displayName||e.name:"")?K(n):""}function X(e){try{var t="",n=null;do t+=function(e,t){switch(e.tag){case 26:case 27:case 5:return K(e.type);case 16:return K("Lazy");case 13:return e.child!==t&&null!==t?K("Suspense Fallback"):K("Suspense");case 19:return K("SuspenseList");case 0:case 15:return Z(e.type,!1);case 11:return Z(e.type.render,!1);case 1:return Z(e.type,!0);case 31:return K("Activity");default:return""}}(e,n),n=e,e=e.return;while(e)return t}catch(e){return"\nError generating stack: "+e.message+"\n"+e.stack}}var J=Object.prototype.hasOwnProperty,ee=a.unstable_scheduleCallback,et=a.unstable_cancelCallback,en=a.unstable_shouldYield,er=a.unstable_requestPaint,ea=a.unstable_now,eo=a.unstable_getCurrentPriorityLevel,ei=a.unstable_ImmediatePriority,el=a.unstable_UserBlockingPriority,es=a.unstable_NormalPriority,eu=a.unstable_LowPriority,ec=a.unstable_IdlePriority,ed=a.log,ef=a.unstable_setDisableYieldValue,ep=null,em=null;function eh(e){if("function"==typeof ed&&ef(e),em&&"function"==typeof em.setStrictMode)try{em.setStrictMode(ep,e)}catch(e){}}var eg=Math.clz32?Math.clz32:function(e){return 0==(e>>>=0)?32:31-(eb(e)/ey|0)|0},eb=Math.log,ey=Math.LN2,ev=256,ew=262144,ek=4194304;function eS(e){var t=42&e;if(0!==t)return t;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return 261888&e;case 262144:case 524288:case 1048576:case 2097152:return 3932160&e;case 4194304:case 8388608:case 0x1000000:case 0x2000000:return 0x3c00000&e;case 0x4000000:return 0x4000000;case 0x8000000:return 0x8000000;case 0x10000000:return 0x10000000;case 0x20000000:return 0x20000000;case 0x40000000:return 0;default:return e}}function ex(e,t,n){var r=e.pendingLanes;if(0===r)return 0;var a=0,o=e.suspendedLanes,i=e.pingedLanes;e=e.warmLanes;var l=0x7ffffff&r;return 0!==l?0!=(r=l&~o)?a=eS(r):0!=(i&=l)?a=eS(i):n||0!=(n=l&~e)&&(a=eS(n)):0!=(l=r&~o)?a=eS(l):0!==i?a=eS(i):n||0!=(n=r&~e)&&(a=eS(n)),0===a?0:0!==t&&t!==a&&0==(t&o)&&((o=a&-a)>=(n=t&-t)||32===o&&0!=(4194048&n))?t:a}function eE(e,t){return 0==(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)}function e_(){var e=ek;return 0==(0x3c00000&(ek<<=1))&&(ek=4194304),e}function eA(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function eT(e,t){e.pendingLanes|=t,0x10000000!==t&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function eC(e,t,n){e.pendingLanes|=t,e.suspendedLanes&=~t;var r=31-eg(t);e.entangledLanes|=t,e.entanglements[r]=0x40000000|e.entanglements[r]|261930&n}function eP(e,t){var n=e.entangledLanes|=t;for(e=e.entanglements;n;){var r=31-eg(n),a=1<<r;a&t|e[r]&t&&(e[r]|=t),n&=~a}}function eO(e,t){var n=t&-t;return 0!=((n=0!=(42&n)?1:eL(n))&(e.suspendedLanes|t))?0:n}function eL(e){switch(e){case 2:e=1;break;case 8:e=4;break;case 32:e=16;break;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 0x1000000:case 0x2000000:e=128;break;case 0x10000000:e=0x8000000;break;default:e=0}return e}function eN(e){return 2<(e&=-e)?8<e?0!=(0x7ffffff&e)?32:0x10000000:8:2}function ej(){var e=R.p;return 0!==e?e:void 0===(e=window.event)?32:cg(e.type)}function eR(e,t){var n=R.p;try{return R.p=e,t()}finally{R.p=n}}var eI=Math.random().toString(36).slice(2),eD="__reactFiber$"+eI,eF="__reactProps$"+eI,ez="__reactContainer$"+eI,eM="__reactEvents$"+eI,e$="__reactListeners$"+eI,eB="__reactHandles$"+eI,eU="__reactResources$"+eI,eH="__reactMarker$"+eI;function eV(e){delete e[eD],delete e[eF],delete e[eM],delete e[e$],delete e[eB]}function eW(e){var t=e[eD];if(t)return t;for(var n=e.parentNode;n;){if(t=n[ez]||n[eD]){if(n=t.alternate,null!==t.child||null!==n&&null!==n.child)for(e=uF(e);null!==e;){if(n=e[eD])return n;e=uF(e)}return t}n=(e=n).parentNode}return null}function eq(e){if(e=e[eD]||e[ez]){var t=e.tag;if(5===t||6===t||13===t||31===t||26===t||27===t||3===t)return e}return null}function eG(e){var t=e.tag;if(5===t||26===t||27===t||6===t)return e.stateNode;throw Error(l(33))}function eY(e){var t=e[eU];return t||(t=e[eU]={hoistableStyles:new Map,hoistableScripts:new Map}),t}function eK(e){e[eH]=!0}var eQ=new Set,eZ={};function eX(e,t){eJ(e,t),eJ(e+"Capture",t)}function eJ(e,t){for(eZ[e]=t,e=0;e<t.length;e++)eQ.add(t[e])}var e0=RegExp("^[: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]*$"),e1={},e2={};function e3(e,t,n){if(J.call(e2,t)||!J.call(e1,t)&&(e0.test(t)?e2[t]=!0:(e1[t]=!0,!1)))if(null===n)e.removeAttribute(t);else{switch(typeof n){case"undefined":case"function":case"symbol":e.removeAttribute(t);return;case"boolean":var r=t.toLowerCase().slice(0,5);if("data-"!==r&&"aria-"!==r)return void e.removeAttribute(t)}e.setAttribute(t,""+n)}}function e4(e,t,n){if(null===n)e.removeAttribute(t);else{switch(typeof n){case"undefined":case"function":case"symbol":case"boolean":e.removeAttribute(t);return}e.setAttribute(t,""+n)}}function e8(e,t,n,r){if(null===r)e.removeAttribute(n);else{switch(typeof r){case"undefined":case"function":case"symbol":case"boolean":e.removeAttribute(n);return}e.setAttributeNS(t,n,""+r)}}function e5(e){switch(typeof e){case"bigint":case"boolean":case"number":case"string":case"undefined":case"object":return e;default:return""}}function e9(e){var t=e.type;return(e=e.nodeName)&&"input"===e.toLowerCase()&&("checkbox"===t||"radio"===t)}function e6(e){if(!e._valueTracker){var t=e9(e)?"checked":"value";e._valueTracker=function(e,t,n){var r=Object.getOwnPropertyDescriptor(e.constructor.prototype,t);if(!e.hasOwnProperty(t)&&void 0!==r&&"function"==typeof r.get&&"function"==typeof r.set){var a=r.get,o=r.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return a.call(this)},set:function(e){n=""+e,o.call(this,e)}}),Object.defineProperty(e,t,{enumerable:r.enumerable}),{getValue:function(){return n},setValue:function(e){n=""+e},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}(e,t,""+e[t])}}function e7(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=e9(e)?e.checked?"true":"false":e.value),(e=r)!==n&&(t.setValue(e),!0)}function te(e){if(void 0===(e=e||("u">typeof document?document:void 0)))return null;try{return e.activeElement||e.body}catch(t){return e.body}}var tt=/[\n"\\]/g;function tn(e){return e.replace(tt,function(e){return"\\"+e.charCodeAt(0).toString(16)+" "})}function tr(e,t,n,r,a,o,i,l){e.name="",null!=i&&"function"!=typeof i&&"symbol"!=typeof i&&"boolean"!=typeof i?e.type=i:e.removeAttribute("type"),null!=t?"number"===i?(0===t&&""===e.value||e.value!=t)&&(e.value=""+e5(t)):e.value!==""+e5(t)&&(e.value=""+e5(t)):"submit"!==i&&"reset"!==i||e.removeAttribute("value"),null!=t?to(e,i,e5(t)):null!=n?to(e,i,e5(n)):null!=r&&e.removeAttribute("value"),null==a&&null!=o&&(e.defaultChecked=!!o),null!=a&&(e.checked=a&&"function"!=typeof a&&"symbol"!=typeof a),null!=l&&"function"!=typeof l&&"symbol"!=typeof l&&"boolean"!=typeof l?e.name=""+e5(l):e.removeAttribute("name")}function ta(e,t,n,r,a,o,i,l){if(null!=o&&"function"!=typeof o&&"symbol"!=typeof o&&"boolean"!=typeof o&&(e.type=o),null!=t||null!=n){if(("submit"===o||"reset"===o)&&null==t)return void e6(e);n=null!=n?""+e5(n):"",t=null!=t?""+e5(t):n,l||t===e.value||(e.value=t),e.defaultValue=t}r="function"!=typeof(r=null!=r?r:a)&&"symbol"!=typeof r&&!!r,e.checked=l?e.checked:!!r,e.defaultChecked=!!r,null!=i&&"function"!=typeof i&&"symbol"!=typeof i&&"boolean"!=typeof i&&(e.name=i),e6(e)}function to(e,t,n){"number"===t&&te(e.ownerDocument)===e||e.defaultValue===""+n||(e.defaultValue=""+n)}function ti(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(a=0,n=""+e5(n),t=null;a<e.length;a++){if(e[a].value===n){e[a].selected=!0,r&&(e[a].defaultSelected=!0);return}null!==t||e[a].disabled||(t=e[a])}null!==t&&(t.selected=!0)}}function tl(e,t,n){if(null!=t&&((t=""+e5(t))!==e.value&&(e.value=t),null==n)){e.defaultValue!==t&&(e.defaultValue=t);return}e.defaultValue=null!=n?""+e5(n):""}function ts(e,t,n,r){if(null==t){if(null!=r){if(null!=n)throw Error(l(92));if(N(r)){if(1<r.length)throw Error(l(93));r=r[0]}n=r}null==n&&(n=""),t=n}e.defaultValue=n=e5(t),(r=e.textContent)===n&&""!==r&&null!==r&&(e.value=r),e6(e)}function tu(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&3===n.nodeType){n.nodeValue=t;return}}e.textContent=t}var tc=new Set("animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp".split(" "));function td(e,t,n){var r=0===t.indexOf("--");null==n||"boolean"==typeof n||""===n?r?e.setProperty(t,""):"float"===t?e.cssFloat="":e[t]="":r?e.setProperty(t,n):"number"!=typeof n||0===n||tc.has(t)?"float"===t?e.cssFloat=n:e[t]=(""+n).trim():e[t]=n+"px"}function tf(e,t,n){if(null!=t&&"object"!=typeof t)throw Error(l(62));if(e=e.style,null!=n){for(var r in n)!n.hasOwnProperty(r)||null!=t&&t.hasOwnProperty(r)||(0===r.indexOf("--")?e.setProperty(r,""):"float"===r?e.cssFloat="":e[r]="");for(var a in t)r=t[a],t.hasOwnProperty(a)&&n[a]!==r&&td(e,a,r)}else for(var o in t)t.hasOwnProperty(o)&&td(e,o,t[o])}function tp(e){if(-1===e.indexOf("-"))return!1;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}}var tm=new Map([["acceptCharset","accept-charset"],["htmlFor","for"],["httpEquiv","http-equiv"],["crossOrigin","crossorigin"],["accentHeight","accent-height"],["alignmentBaseline","alignment-baseline"],["arabicForm","arabic-form"],["baselineShift","baseline-shift"],["capHeight","cap-height"],["clipPath","clip-path"],["clipRule","clip-rule"],["colorInterpolation","color-interpolation"],["colorInterpolationFilters","color-interpolation-filters"],["colorProfile","color-profile"],["colorRendering","color-rendering"],["dominantBaseline","dominant-baseline"],["enableBackground","enable-background"],["fillOpacity","fill-opacity"],["fillRule","fill-rule"],["floodColor","flood-color"],["floodOpacity","flood-opacity"],["fontFamily","font-family"],["fontSize","font-size"],["fontSizeAdjust","font-size-adjust"],["fontStretch","font-stretch"],["fontStyle","font-style"],["fontVariant","font-variant"],["fontWeight","font-weight"],["glyphName","glyph-name"],["glyphOrientationHorizontal","glyph-orientation-horizontal"],["glyphOrientationVertical","glyph-orientation-vertical"],["horizAdvX","horiz-adv-x"],["horizOriginX","horiz-origin-x"],["imageRendering","image-rendering"],["letterSpacing","letter-spacing"],["lightingColor","lighting-color"],["markerEnd","marker-end"],["markerMid","marker-mid"],["markerStart","marker-start"],["overlinePosition","overline-position"],["overlineThickness","overline-thickness"],["paintOrder","paint-order"],["panose-1","panose-1"],["pointerEvents","pointer-events"],["renderingIntent","rendering-intent"],["shapeRendering","shape-rendering"],["stopColor","stop-color"],["stopOpacity","stop-opacity"],["strikethroughPosition","strikethrough-position"],["strikethroughThickness","strikethrough-thickness"],["strokeDasharray","stroke-dasharray"],["strokeDashoffset","stroke-dashoffset"],["strokeLinecap","stroke-linecap"],["strokeLinejoin","stroke-linejoin"],["strokeMiterlimit","stroke-miterlimit"],["strokeOpacity","stroke-opacity"],["strokeWidth","stroke-width"],["textAnchor","text-anchor"],["textDecoration","text-decoration"],["textRendering","text-rendering"],["transformOrigin","transform-origin"],["underlinePosition","underline-position"],["underlineThickness","underline-thickness"],["unicodeBidi","unicode-bidi"],["unicodeRange","unicode-range"],["unitsPerEm","units-per-em"],["vAlphabetic","v-alphabetic"],["vHanging","v-hanging"],["vIdeographic","v-ideographic"],["vMathematical","v-mathematical"],["vectorEffect","vector-effect"],["vertAdvY","vert-adv-y"],["vertOriginX","vert-origin-x"],["vertOriginY","vert-origin-y"],["wordSpacing","word-spacing"],["writingMode","writing-mode"],["xmlnsXlink","xmlns:xlink"],["xHeight","x-height"]]),th=/^[\u0000-\u001F ]*j[\r\n\t]*a[\r\n\t]*v[\r\n\t]*a[\r\n\t]*s[\r\n\t]*c[\r\n\t]*r[\r\n\t]*i[\r\n\t]*p[\r\n\t]*t[\r\n\t]*:/i;function tg(e){return th.test(""+e)?"javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')":e}function tb(){}var ty=null;function tv(e){return(e=e.target||e.srcElement||window).correspondingUseElement&&(e=e.correspondingUseElement),3===e.nodeType?e.parentNode:e}var tw=null,tk=null;function tS(e){var t=eq(e);if(t&&(e=t.stateNode)){var n=e[eF]||null;switch(e=t.stateNode,t.type){case"input":if(tr(e,n.value,n.defaultValue,n.defaultValue,n.checked,n.defaultChecked,n.type,n.name),t=n.name,"radio"===n.type&&null!=t){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll('input[name="'+tn(""+t)+'"][type="radio"]'),t=0;t<n.length;t++){var r=n[t];if(r!==e&&r.form===e.form){var a=r[eF]||null;if(!a)throw Error(l(90));tr(r,a.value,a.defaultValue,a.defaultValue,a.checked,a.defaultChecked,a.type,a.name)}}for(t=0;t<n.length;t++)(r=n[t]).form===e.form&&e7(r)}break;case"textarea":tl(e,n.value,n.defaultValue);break;case"select":null!=(t=n.value)&&ti(e,!!n.multiple,t,!1)}}}var tx=!1;function tE(e,t,n){if(tx)return e(t,n);tx=!0;try{return e(t)}finally{if(tx=!1,(null!==tw||null!==tk)&&(sf(),tw&&(t=tw,e=tk,tk=tw=null,tS(t),e)))for(t=0;t<e.length;t++)tS(e[t])}}function t_(e,t){var n=e.stateNode;if(null===n)return null;var r=n[eF]||null;if(null===r)return null;switch(n=r[t],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;default:e=!1}if(e)return null;if(n&&"function"!=typeof n)throw Error(l(231,t,typeof n));return n}var tA="u">typeof window&&void 0!==window.document&&void 0!==window.document.createElement,tT=!1;if(tA)try{var tC={};Object.defineProperty(tC,"passive",{get:function(){tT=!0}}),window.addEventListener("test",tC,tC),window.removeEventListener("test",tC,tC)}catch(e){tT=!1}var tP=null,tO=null,tL=null;function tN(){if(tL)return tL;var e,t,n=tO,r=n.length,a="value"in tP?tP.value:tP.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 tL=a.slice(e,1<t?1-t:void 0)}function tj(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 tR(){return!0}function tI(){return!1}function tD(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)?tR:tI,this.isPropagationStopped=tI,this}return p(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=tR)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():"unknown"!=typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=tR)},persist:function(){},isPersistent:tR}),t}var tF,tz,tM,t$,tB,tU={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},tH=tD(tU),tV=p({},tU,{view:0,detail:0}),tW=tD(tV),tq=p({},tV,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:t3,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!==tB&&(tB&&"mousemove"===e.type?(tM=e.screenX-tB.screenX,t$=e.screenY-tB.screenY):t$=tM=0,tB=e),tM)},movementY:function(e){return"movementY"in e?e.movementY:t$}}),tG=tD(tq),tY=tD(p({},tq,{dataTransfer:0})),tK=tD(p({},tV,{relatedTarget:0})),tQ=tD(p({},tU,{animationName:0,elapsedTime:0,pseudoElement:0})),tZ=tD(p({},tU,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}})),tX=tD(p({},tU,{data:0})),tJ={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},t0={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"},t1={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function t2(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):!!(e=t1[e])&&!!t[e]}function t3(){return t2}var t4=tD(p({},tV,{key:function(e){if(e.key){var t=tJ[e.key]||e.key;if("Unidentified"!==t)return t}return"keypress"===e.type?13===(e=tj(e))?"Enter":String.fromCharCode(e):"keydown"===e.type||"keyup"===e.type?t0[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:t3,charCode:function(e){return"keypress"===e.type?tj(e):0},keyCode:function(e){return"keydown"===e.type||"keyup"===e.type?e.keyCode:0},which:function(e){return"keypress"===e.type?tj(e):"keydown"===e.type||"keyup"===e.type?e.keyCode:0}})),t8=tD(p({},tq,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0})),t5=tD(p({},tV,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:t3})),t9=tD(p({},tU,{propertyName:0,elapsedTime:0,pseudoElement:0})),t6=tD(p({},tq,{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})),t7=tD(p({},tU,{newState:0,oldState:0})),ne=[9,13,27,32],nt=tA&&"CompositionEvent"in window,nn=null;tA&&"documentMode"in document&&(nn=document.documentMode);var nr=tA&&"TextEvent"in window&&!nn,na=tA&&(!nt||nn&&8<nn&&11>=nn),no=!1;function ni(e,t){switch(e){case"keyup":return -1!==ne.indexOf(t.keyCode);case"keydown":return 229!==t.keyCode;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function nl(e){return"object"==typeof(e=e.detail)&&"data"in e?e.data:null}var ns=!1,nu={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 nc(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===t?!!nu[e.type]:"textarea"===t}function nd(e,t,n,r){tw?tk?tk.push(r):tk=[r]:tw=r,0<(t=ua(t,"onChange")).length&&(n=new tH("onChange","change",null,n,r),e.push({event:n,listeners:t}))}var nf=null,np=null;function nm(e){s5(e,0)}function nh(e){if(e7(eG(e)))return e}function ng(e,t){if("change"===e)return t}var nb=!1;if(tA){if(tA){var ny="oninput"in document;if(!ny){var nv=document.createElement("div");nv.setAttribute("oninput","return;"),ny="function"==typeof nv.oninput}r=ny}else r=!1;nb=r&&(!document.documentMode||9<document.documentMode)}function nw(){nf&&(nf.detachEvent("onpropertychange",nk),np=nf=null)}function nk(e){if("value"===e.propertyName&&nh(np)){var t=[];nd(t,np,e,tv(e)),tE(nm,t)}}function nS(e,t,n){"focusin"===e?(nw(),nf=t,np=n,nf.attachEvent("onpropertychange",nk)):"focusout"===e&&nw()}function nx(e){if("selectionchange"===e||"keyup"===e||"keydown"===e)return nh(np)}function nE(e,t){if("click"===e)return nh(t)}function n_(e,t){if("input"===e||"change"===e)return nh(t)}var nA="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t};function nT(e,t){if(nA(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++){var a=n[r];if(!J.call(t,a)||!nA(e[a],t[a]))return!1}return!0}function nC(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function nP(e,t){var n,r=nC(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=nC(r)}}function nO(e){e=null!=e&&null!=e.ownerDocument&&null!=e.ownerDocument.defaultView?e.ownerDocument.defaultView:window;for(var t=te(e.document);t instanceof e.HTMLIFrameElement;){try{var n="string"==typeof t.contentWindow.location.href}catch(e){n=!1}if(n)e=t.contentWindow;else break;t=te(e.document)}return t}function nL(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 nN=tA&&"documentMode"in document&&11>=document.documentMode,nj=null,nR=null,nI=null,nD=!1;function nF(e,t,n){var r=n.window===n?n.document:9===n.nodeType?n:n.ownerDocument;nD||null==nj||nj!==te(r)||(r="selectionStart"in(r=nj)&&nL(r)?{start:r.selectionStart,end:r.selectionEnd}:{anchorNode:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection()).anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset},nI&&nT(nI,r)||(nI=r,0<(r=ua(nR,"onSelect")).length&&(t=new tH("onSelect","select",null,t,n),e.push({event:t,listeners:r}),t.target=nj)))}function nz(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var nM={animationend:nz("Animation","AnimationEnd"),animationiteration:nz("Animation","AnimationIteration"),animationstart:nz("Animation","AnimationStart"),transitionrun:nz("Transition","TransitionRun"),transitionstart:nz("Transition","TransitionStart"),transitioncancel:nz("Transition","TransitionCancel"),transitionend:nz("Transition","TransitionEnd")},n$={},nB={};function nU(e){if(n$[e])return n$[e];if(!nM[e])return e;var t,n=nM[e];for(t in n)if(n.hasOwnProperty(t)&&t in nB)return n$[e]=n[t];return e}tA&&(nB=document.createElement("div").style,"AnimationEvent"in window||(delete nM.animationend.animation,delete nM.animationiteration.animation,delete nM.animationstart.animation),"TransitionEvent"in window||delete nM.transitionend.transition);var nH=nU("animationend"),nV=nU("animationiteration"),nW=nU("animationstart"),nq=nU("transitionrun"),nG=nU("transitionstart"),nY=nU("transitioncancel"),nK=nU("transitionend"),nQ=new Map,nZ="abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");function nX(e,t){nQ.set(e,t),eX(t,[e])}nZ.push("scrollEnd");var nJ="function"==typeof reportError?reportError:function(e){if("object"==typeof window&&"function"==typeof window.ErrorEvent){var t=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:"object"==typeof e&&null!==e&&"string"==typeof e.message?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if("object"==typeof process&&"function"==typeof process.emit)return void process.emit("uncaughtException",e);console.error(e)},n0=[],n1=0,n2=0;function n3(){for(var e=n1,t=n2=n1=0;t<e;){var n=n0[t];n0[t++]=null;var r=n0[t];n0[t++]=null;var a=n0[t];n0[t++]=null;var o=n0[t];if(n0[t++]=null,null!==r&&null!==a){var i=r.pending;null===i?a.next=a:(a.next=i.next,i.next=a),r.pending=a}0!==o&&n9(n,a,o)}}function n4(e,t,n,r){n0[n1++]=e,n0[n1++]=t,n0[n1++]=n,n0[n1++]=r,n2|=r,e.lanes|=r,null!==(e=e.alternate)&&(e.lanes|=r)}function n8(e,t,n,r){return n4(e,t,n,r),n6(e)}function n5(e,t){return n4(e,null,null,t),n6(e)}function n9(e,t,n){e.lanes|=n;var r=e.alternate;null!==r&&(r.lanes|=n);for(var a=!1,o=e.return;null!==o;)o.childLanes|=n,null!==(r=o.alternate)&&(r.childLanes|=n),22===o.tag&&(null===(e=o.stateNode)||1&e._visibility||(a=!0)),e=o,o=o.return;return 3===e.tag?(o=e.stateNode,a&&null!==t&&(a=31-eg(n),null===(r=(e=o.hiddenUpdates)[a])?e[a]=[t]:r.push(t),t.lane=0x20000000|n),o):null}function n6(e){if(50<sa)throw sa=0,so=null,Error(l(185));for(var t=e.return;null!==t;)t=(e=t).return;return 3===e.tag?e.stateNode:null}var n7={};function re(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.refCleanup=this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function rt(e,t,n,r){return new re(e,t,n,r)}function rn(e){return!(!(e=e.prototype)||!e.isReactComponent)}function rr(e,t){var n=e.alternate;return null===n?((n=rt(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.subtreeFlags=0,n.deletions=null),n.flags=0x3e00000&e.flags,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.refCleanup=e.refCleanup,n}function ra(e,t){e.flags&=0x3e00002;var n=e.alternate;return null===n?(e.childLanes=0,e.lanes=t,e.child=null,e.subtreeFlags=0,e.memoizedProps=null,e.memoizedState=null,e.updateQueue=null,e.dependencies=null,e.stateNode=null):(e.childLanes=n.childLanes,e.lanes=n.lanes,e.child=n.child,e.subtreeFlags=0,e.deletions=null,e.memoizedProps=n.memoizedProps,e.memoizedState=n.memoizedState,e.updateQueue=n.updateQueue,e.type=n.type,e.dependencies=null===(t=n.dependencies)?null:{lanes:t.lanes,firstContext:t.firstContext}),e}function ro(e,t,n,r,a,o){var i=0;if(r=e,"function"==typeof e)rn(e)&&(i=1);else if("string"==typeof e)i=!function(e,t,n){if(1===n||null!=t.itemProp)return!1;switch(e){case"meta":case"title":return!0;case"style":if("string"!=typeof t.precedence||"string"!=typeof t.href||""===t.href)break;return!0;case"link":if("string"!=typeof t.rel||"string"!=typeof t.href||""===t.href||t.onLoad||t.onError)break;if("stylesheet"===t.rel)return e=t.disabled,"string"==typeof t.precedence&&null==e;return!0;case"script":if(t.async&&"function"!=typeof t.async&&"symbol"!=typeof t.async&&!t.onLoad&&!t.onError&&t.src&&"string"==typeof t.src)return!0}return!1}(e,n,B.current)?"html"===e||"head"===e||"body"===e?27:5:26;else e:switch(e){case T:return(e=rt(31,n,t,a)).elementType=T,e.lanes=o,e;case b:return ri(n.children,a,o,t);case y:i=8,a|=24;break;case v:return(e=rt(12,n,t,2|a)).elementType=v,e.lanes=o,e;case x:return(e=rt(13,n,t,a)).elementType=x,e.lanes=o,e;case E:return(e=rt(19,n,t,a)).elementType=E,e.lanes=o,e;default:if("object"==typeof e&&null!==e)switch(e.$$typeof){case k:i=10;break e;case w:i=9;break e;case S:i=11;break e;case _:i=14;break e;case A:i=16,r=null;break e}i=29,n=Error(l(130,null===e?"null":typeof e,"")),r=null}return(t=rt(i,n,t,a)).elementType=e,t.type=r,t.lanes=o,t}function ri(e,t,n,r){return(e=rt(7,e,r,t)).lanes=n,e}function rl(e,t,n){return(e=rt(6,e,null,t)).lanes=n,e}function rs(e){var t=rt(18,null,null,0);return t.stateNode=e,t}function ru(e,t,n){return(t=rt(4,null!==e.children?e.children:[],e.key,t)).lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}var rc=new WeakMap;function rd(e,t){if("object"==typeof e&&null!==e){var n=rc.get(e);return void 0!==n?n:(t={value:e,source:t,stack:X(t)},rc.set(e,t),t)}return{value:e,source:t,stack:X(t)}}var rf=[],rp=0,rm=null,rh=0,rg=[],rb=0,ry=null,rv=1,rw="";function rk(e,t){rf[rp++]=rh,rf[rp++]=rm,rm=e,rh=t}function rS(e,t,n){rg[rb++]=rv,rg[rb++]=rw,rg[rb++]=ry,ry=e;var r=rv;e=rw;var a=32-eg(r)-1;r&=~(1<<a),n+=1;var o=32-eg(t)+a;if(30<o){var i=a-a%5;o=(r&(1<<i)-1).toString(32),r>>=i,a-=i,rv=1<<32-eg(t)+a|n<<a|r,rw=o+e}else rv=1<<o|n<<a|r,rw=e}function rx(e){null!==e.return&&(rk(e,1),rS(e,1,0))}function rE(e){for(;e===rm;)rm=rf[--rp],rf[rp]=null,rh=rf[--rp],rf[rp]=null;for(;e===ry;)ry=rg[--rb],rg[rb]=null,rw=rg[--rb],rg[rb]=null,rv=rg[--rb],rg[rb]=null}function r_(e,t){rg[rb++]=rv,rg[rb++]=rw,rg[rb++]=ry,rv=t.id,rw=t.overflow,ry=e}var rA=null,rT=null,rC=!1,rP=null,rO=!1,rL=Error(l(519));function rN(e){var t=Error(l(418,1<arguments.length&&void 0!==arguments[1]&&arguments[1]?"text":"HTML",""));throw rz(rd(t,e)),rL}function rj(e){var t=e.stateNode,n=e.type,r=e.memoizedProps;switch(t[eD]=e,t[eF]=r,n){case"dialog":s9("cancel",t),s9("close",t);break;case"iframe":case"object":case"embed":s9("load",t);break;case"video":case"audio":for(n=0;n<s4.length;n++)s9(s4[n],t);break;case"source":s9("error",t);break;case"img":case"image":case"link":s9("error",t),s9("load",t);break;case"details":s9("toggle",t);break;case"input":s9("invalid",t),ta(t,r.value,r.defaultValue,r.checked,r.defaultChecked,r.type,r.name,!0);break;case"select":s9("invalid",t);break;case"textarea":s9("invalid",t),ts(t,r.value,r.defaultValue,r.children)}"string"!=typeof(n=r.children)&&"number"!=typeof n&&"bigint"!=typeof n||t.textContent===""+n||!0===r.suppressHydrationWarning||uc(t.textContent,n)?(null!=r.popover&&(s9("beforetoggle",t),s9("toggle",t)),null!=r.onScroll&&s9("scroll",t),null!=r.onScrollEnd&&s9("scrollend",t),null!=r.onClick&&(t.onclick=tb),t=!0):t=!1,t||rN(e,!0)}function rR(e){for(rA=e.return;rA;)switch(rA.tag){case 5:case 31:case 13:rO=!1;return;case 27:case 3:rO=!0;return;default:rA=rA.return}}function rI(e){if(e!==rA)return!1;if(!rC)return rR(e),rC=!0,!1;var t,n=e.tag;if((t=3!==n&&27!==n)&&((t=5===n)&&(t="form"===(t=e.type)||"button"===t||uw(e.type,e.memoizedProps)),t=!t),t&&rT&&rN(e),rR(e),13===n){if(!(e=null!==(e=e.memoizedState)?e.dehydrated:null))throw Error(l(317));rT=uD(e)}else if(31===n){if(!(e=null!==(e=e.memoizedState)?e.dehydrated:null))throw Error(l(317));rT=uD(e)}else 27===n?(n=rT,uT(e.type)?(e=uI,uI=null,rT=e):rT=n):rT=rA?uR(e.stateNode.nextSibling):null;return!0}function rD(){rT=rA=null,rC=!1}function rF(){var e=rP;return null!==e&&(null===l0?l0=e:l0.push.apply(l0,e),rP=null),e}function rz(e){null===rP?rP=[e]:rP.push(e)}var rM=z(null),r$=null,rB=null;function rU(e,t,n){$(rM,t._currentValue),t._currentValue=n}function rH(e){e._currentValue=rM.current,M(rM)}function rV(e,t,n){for(;null!==e;){var r=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,null!==r&&(r.childLanes|=t)):null!==r&&(r.childLanes&t)!==t&&(r.childLanes|=t),e===n)break;e=e.return}}function rW(e,t,n,r){var a=e.child;for(null!==a&&(a.return=e);null!==a;){var o=a.dependencies;if(null!==o){var i=a.child;o=o.firstContext;e:for(;null!==o;){var s=o;o=a;for(var u=0;u<t.length;u++)if(s.context===t[u]){o.lanes|=n,null!==(s=o.alternate)&&(s.lanes|=n),rV(o.return,n,e),r||(i=null);break e}o=s.next}}else if(18===a.tag){if(null===(i=a.return))throw Error(l(341));i.lanes|=n,null!==(o=i.alternate)&&(o.lanes|=n),rV(i,n,e),i=null}else i=a.child;if(null!==i)i.return=a;else for(i=a;null!==i;){if(i===e){i=null;break}if(null!==(a=i.sibling)){a.return=i.return,i=a;break}i=i.return}a=i}}function rq(e,t,n,r){e=null;for(var a=t,o=!1;null!==a;){if(!o){if(0!=(524288&a.flags))o=!0;else if(0!=(262144&a.flags))break}if(10===a.tag){var i=a.alternate;if(null===i)throw Error(l(387));if(null!==(i=i.memoizedProps)){var s=a.type;nA(a.pendingProps.value,i.value)||(null!==e?e.push(s):e=[s])}}else if(a===V.current){if(null===(i=a.alternate))throw Error(l(387));i.memoizedState.memoizedState!==a.memoizedState.memoizedState&&(null!==e?e.push(ct):e=[ct])}a=a.return}null!==e&&rW(t,e,n,r),t.flags|=262144}function rG(e){for(e=e.firstContext;null!==e;){if(!nA(e.context._currentValue,e.memoizedValue))return!0;e=e.next}return!1}function rY(e){r$=e,rB=null,null!==(e=e.dependencies)&&(e.firstContext=null)}function rK(e){return rZ(r$,e)}function rQ(e,t){return null===r$&&rY(e),rZ(e,t)}function rZ(e,t){var n=t._currentValue;if(t={context:t,memoizedValue:n,next:null},null===rB){if(null===e)throw Error(l(308));rB=t,e.dependencies={lanes:0,firstContext:t},e.flags|=524288}else rB=rB.next=t;return n}var rX="u">typeof AbortController?AbortController:function(){var e=[],t=this.signal={aborted:!1,addEventListener:function(t,n){e.push(n)}};this.abort=function(){t.aborted=!0,e.forEach(function(e){return e()})}},rJ=a.unstable_scheduleCallback,r0=a.unstable_NormalPriority,r1={$$typeof:k,Consumer:null,Provider:null,_currentValue:null,_currentValue2:null,_threadCount:0};function r2(){return{controller:new rX,data:new Map,refCount:0}}function r3(e){e.refCount--,0===e.refCount&&rJ(r0,function(){e.controller.abort()})}var r4=null,r8=0,r5=0,r9=null;function r6(){if(0==--r8&&null!==r4){null!==r9&&(r9.status="fulfilled");var e=r4;r4=null,r5=0,r9=null;for(var t=0;t<e.length;t++)(0,e[t])()}}var r7=j.S;j.S=function(e,t){l3=ea(),"object"==typeof t&&null!==t&&"function"==typeof t.then&&function(e){if(null===r4){var t=r4=[];r8=0,r5=sJ(),r9={status:"pending",value:void 0,then:function(e){t.push(e)}}}r8++,e.then(r6,r6)}(t),null!==r7&&r7(e,t)};var ae=z(null);function at(){var e=ae.current;return null!==e?e:lz.pooledCache}function an(e,t){null===t?$(ae,ae.current):$(ae,t.pool)}function ar(){var e=at();return null===e?null:{parent:r1._currentValue,pool:e}}var aa=Error(l(460)),ao=Error(l(474)),ai=Error(l(542)),al={then:function(){}};function as(e){return"fulfilled"===(e=e.status)||"rejected"===e}function au(e,t,n){switch(void 0===(n=e[n])?e.push(t):n!==t&&(t.then(tb,tb),t=n),t.status){case"fulfilled":return t.value;case"rejected":throw ap(e=t.reason),e;default:if("string"==typeof t.status)t.then(tb,tb);else{if(null!==(e=lz)&&100<e.shellSuspendCounter)throw Error(l(482));(e=t).status="pending",e.then(function(e){if("pending"===t.status){var n=t;n.status="fulfilled",n.value=e}},function(e){if("pending"===t.status){var n=t;n.status="rejected",n.reason=e}})}switch(t.status){case"fulfilled":return t.value;case"rejected":throw ap(e=t.reason),e}throw ad=t,aa}}function ac(e){try{return(0,e._init)(e._payload)}catch(e){if(null!==e&&"object"==typeof e&&"function"==typeof e.then)throw ad=e,aa;throw e}}var ad=null;function af(){if(null===ad)throw Error(l(459));var e=ad;return ad=null,e}function ap(e){if(e===aa||e===ai)throw Error(l(483))}var am=null,ah=0;function ag(e){var t=ah;return ah+=1,null===am&&(am=[]),au(am,e,t)}function ab(e,t){e.ref=void 0!==(t=t.props.ref)?t:null}function ay(e,t){if(t.$$typeof===m)throw Error(l(525));throw Error(l(31,"[object Object]"===(e=Object.prototype.toString.call(t))?"object with keys {"+Object.keys(t).join(", ")+"}":e))}function av(e){function t(t,n){if(e){var r=t.deletions;null===r?(t.deletions=[n],t.flags|=16):r.push(n)}}function n(n,r){if(!e)return null;for(;null!==r;)t(n,r),r=r.sibling;return null}function r(e){for(var t=new Map;null!==e;)null!==e.key?t.set(e.key,e):t.set(e.index,e),e=e.sibling;return t}function a(e,t){return(e=rr(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|=0x4000002,n):r:(t.flags|=0x4000002,n):(t.flags|=1048576,n)}function i(t){return e&&null===t.alternate&&(t.flags|=0x4000002),t}function s(e,t,n,r){return null===t||6!==t.tag?(t=rl(n,e.mode,r)).return=e:(t=a(t,n)).return=e,t}function u(e,t,n,r){var o=n.type;return o===b?d(e,t,n.props.children,r,n.key):(null!==t&&(t.elementType===o||"object"==typeof o&&null!==o&&o.$$typeof===A&&ac(o)===t.type)?ab(t=a(t,n.props),n):ab(t=ro(n.type,n.key,n.props,null,e.mode,r),n),t.return=e,t)}function c(e,t,n,r){return null===t||4!==t.tag||t.stateNode.containerInfo!==n.containerInfo||t.stateNode.implementation!==n.implementation?(t=ru(n,e.mode,r)).return=e:(t=a(t,n.children||[])).return=e,t}function d(e,t,n,r,o){return null===t||7!==t.tag?(t=ri(n,e.mode,r,o)).return=e:(t=a(t,n)).return=e,t}function f(e,t,n){if("string"==typeof t&&""!==t||"number"==typeof t||"bigint"==typeof t)return(t=rl(""+t,e.mode,n)).return=e,t;if("object"==typeof t&&null!==t){switch(t.$$typeof){case h:return ab(n=ro(t.type,t.key,t.props,null,e.mode,n),t),n.return=e,n;case g:return(t=ru(t,e.mode,n)).return=e,t;case A:return f(e,t=ac(t),n)}if(N(t)||O(t))return(t=ri(t,e.mode,n,null)).return=e,t;if("function"==typeof t.then)return f(e,ag(t),n);if(t.$$typeof===k)return f(e,rQ(e,t),n);ay(e,t)}return null}function p(e,t,n,r){var a=null!==t?t.key:null;if("string"==typeof n&&""!==n||"number"==typeof n||"bigint"==typeof n)return null!==a?null:s(e,t,""+n,r);if("object"==typeof n&&null!==n){switch(n.$$typeof){case h:return n.key===a?u(e,t,n,r):null;case g:return n.key===a?c(e,t,n,r):null;case A:return p(e,t,n=ac(n),r)}if(N(n)||O(n))return null!==a?null:d(e,t,n,r,null);if("function"==typeof n.then)return p(e,t,ag(n),r);if(n.$$typeof===k)return p(e,t,rQ(e,n),r);ay(e,n)}return null}function m(e,t,n,r,a){if("string"==typeof r&&""!==r||"number"==typeof r||"bigint"==typeof r)return s(t,e=e.get(n)||null,""+r,a);if("object"==typeof r&&null!==r){switch(r.$$typeof){case h:return u(t,e=e.get(null===r.key?n:r.key)||null,r,a);case g:return c(t,e=e.get(null===r.key?n:r.key)||null,r,a);case A:return m(e,t,n,r=ac(r),a)}if(N(r)||O(r))return d(t,e=e.get(n)||null,r,a,null);if("function"==typeof r.then)return m(e,t,n,ag(r),a);if(r.$$typeof===k)return m(e,t,n,rQ(t,r),a);ay(t,r)}return null}return function(s,u,c,d){try{ah=0;var y=function s(u,c,d,y){if("object"==typeof d&&null!==d&&d.type===b&&null===d.key&&(d=d.props.children),"object"==typeof d&&null!==d){switch(d.$$typeof){case h:e:{for(var v=d.key;null!==c;){if(c.key===v){if((v=d.type)===b){if(7===c.tag){n(u,c.sibling),(y=a(c,d.props.children)).return=u,u=y;break e}}else if(c.elementType===v||"object"==typeof v&&null!==v&&v.$$typeof===A&&ac(v)===c.type){n(u,c.sibling),ab(y=a(c,d.props),d),y.return=u,u=y;break e}n(u,c);break}t(u,c),c=c.sibling}d.type===b?(y=ri(d.props.children,u.mode,y,d.key)).return=u:(ab(y=ro(d.type,d.key,d.props,null,u.mode,y),d),y.return=u),u=y}return i(u);case g:e:{for(v=d.key;null!==c;){if(c.key===v)if(4===c.tag&&c.stateNode.containerInfo===d.containerInfo&&c.stateNode.implementation===d.implementation){n(u,c.sibling),(y=a(c,d.children||[])).return=u,u=y;break e}else{n(u,c);break}t(u,c),c=c.sibling}(y=ru(d,u.mode,y)).return=u,u=y}return i(u);case A:return s(u,c,d=ac(d),y)}if(N(d))return function(a,i,l,s){for(var u=null,c=null,d=i,h=i=0,g=null;null!==d&&h<l.length;h++){d.index>h?(g=d,d=null):g=d.sibling;var b=p(a,d,l[h],s);if(null===b){null===d&&(d=g);break}e&&d&&null===b.alternate&&t(a,d),i=o(b,i,h),null===c?u=b:c.sibling=b,c=b,d=g}if(h===l.length)return n(a,d),rC&&rk(a,h),u;if(null===d){for(;h<l.length;h++)null!==(d=f(a,l[h],s))&&(i=o(d,i,h),null===c?u=d:c.sibling=d,c=d);return rC&&rk(a,h),u}for(d=r(d);h<l.length;h++)null!==(g=m(d,a,h,l[h],s))&&(e&&null!==g.alternate&&d.delete(null===g.key?h:g.key),i=o(g,i,h),null===c?u=g:c.sibling=g,c=g);return e&&d.forEach(function(e){return t(a,e)}),rC&&rk(a,h),u}(u,c,d,y);if(O(d)){if("function"!=typeof(v=O(d)))throw Error(l(150));return function(a,i,s,u){if(null==s)throw Error(l(151));for(var c=null,d=null,h=i,g=i=0,b=null,y=s.next();null!==h&&!y.done;g++,y=s.next()){h.index>g?(b=h,h=null):b=h.sibling;var v=p(a,h,y.value,u);if(null===v){null===h&&(h=b);break}e&&h&&null===v.alternate&&t(a,h),i=o(v,i,g),null===d?c=v:d.sibling=v,d=v,h=b}if(y.done)return n(a,h),rC&&rk(a,g),c;if(null===h){for(;!y.done;g++,y=s.next())null!==(y=f(a,y.value,u))&&(i=o(y,i,g),null===d?c=y:d.sibling=y,d=y);return rC&&rk(a,g),c}for(h=r(h);!y.done;g++,y=s.next())null!==(y=m(h,a,g,y.value,u))&&(e&&null!==y.alternate&&h.delete(null===y.key?g:y.key),i=o(y,i,g),null===d?c=y:d.sibling=y,d=y);return e&&h.forEach(function(e){return t(a,e)}),rC&&rk(a,g),c}(u,c,d=v.call(d),y)}if("function"==typeof d.then)return s(u,c,ag(d),y);if(d.$$typeof===k)return s(u,c,rQ(u,d),y);ay(u,d)}return"string"==typeof d&&""!==d||"number"==typeof d||"bigint"==typeof d?(d=""+d,null!==c&&6===c.tag?(n(u,c.sibling),(y=a(c,d)).return=u):(n(u,c),(y=rl(d,u.mode,y)).return=u),i(u=y)):n(u,c)}(s,u,c,d);return am=null,y}catch(e){if(e===aa||e===ai)throw e;var v=rt(29,e,null,s.mode);return v.lanes=d,v.return=s,v}finally{}}}var aw=av(!0),ak=av(!1),aS=!1;function ax(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function aE(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,callbacks:null})}function a_(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function aA(e,t,n){var r=e.updateQueue;if(null===r)return null;if(r=r.shared,0!=(2&lF)){var a=r.pending;return null===a?t.next=t:(t.next=a.next,a.next=t),r.pending=t,t=n6(e),n9(e,null,n),t}return n4(e,r,t,n),n6(e)}function aT(e,t,n){if(null!==(t=t.updateQueue)&&(t=t.shared,0!=(4194048&n))){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,eP(e,n)}}function aC(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={lane:n.lane,tag:n.tag,payload:n.payload,callback:null,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;n={baseState:r.baseState,firstBaseUpdate:a,lastBaseUpdate:o,shared:r.shared,callbacks:r.callbacks},e.updateQueue=n;return}null===(e=n.lastBaseUpdate)?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}var aP=!1;function aO(){if(aP){var e=r9;if(null!==e)throw e}}function aL(e,t,n,r){aP=!1;var a=e.updateQueue;aS=!1;var o=a.firstBaseUpdate,i=a.lastBaseUpdate,l=a.shared.pending;if(null!==l){a.shared.pending=null;var s=l,u=s.next;s.next=null,null===i?o=u:i.next=u,i=s;var c=e.alternate;null!==c&&(l=(c=c.updateQueue).lastBaseUpdate)!==i&&(null===l?c.firstBaseUpdate=u:l.next=u,c.lastBaseUpdate=s)}if(null!==o){var d=a.baseState;for(i=0,c=u=s=null,l=o;;){var f=-0x20000001&l.lane,m=f!==l.lane;if(m?(l$&f)===f:(r&f)===f){0!==f&&f===r5&&(aP=!0),null!==c&&(c=c.next={lane:0,tag:l.tag,payload:l.payload,callback:null,next:null});e:{var h=e,g=l;switch(f=t,g.tag){case 1:if("function"==typeof(h=g.payload)){d=h.call(n,d,f);break e}d=h;break e;case 3:h.flags=-65537&h.flags|128;case 0:if(null==(f="function"==typeof(h=g.payload)?h.call(n,d,f):h))break e;d=p({},d,f);break e;case 2:aS=!0}}null!==(f=l.callback)&&(e.flags|=64,m&&(e.flags|=8192),null===(m=a.callbacks)?a.callbacks=[f]:m.push(f))}else m={lane:f,tag:l.tag,payload:l.payload,callback:l.callback,next:null},null===c?(u=c=m,s=d):c=c.next=m,i|=f;if(null===(l=l.next))if(null===(l=a.shared.pending))break;else l=(m=l).next,m.next=null,a.lastBaseUpdate=m,a.shared.pending=null}null===c&&(s=d),a.baseState=s,a.firstBaseUpdate=u,a.lastBaseUpdate=c,null===o&&(a.shared.lanes=0),lY|=i,e.lanes=i,e.memoizedState=d}}function aN(e,t){if("function"!=typeof e)throw Error(l(191,e));e.call(t)}function aj(e,t){var n=e.callbacks;if(null!==n)for(e.callbacks=null,e=0;e<n.length;e++)aN(n[e],t)}var aR=z(null),aI=z(0);function aD(e,t){$(aI,e=lq),$(aR,t),lq=e|t.baseLanes}function aF(){$(aI,lq),$(aR,aR.current)}function az(){lq=aI.current,M(aR),M(aI)}var aM=z(null),a$=null;function aB(e){var t=e.alternate;$(aq,1&aq.current),$(aM,e),null===a$&&(null===t||null!==aR.current?a$=e:null!==t.memoizedState&&(a$=e))}function aU(e){$(aq,aq.current),$(aM,e),null===a$&&(a$=e)}function aH(e){22===e.tag?($(aq,aq.current),$(aM,e),null===a$&&(a$=e)):aV(e)}function aV(){$(aq,aq.current),$(aM,aM.current)}function aW(e){M(aM),a$===e&&(a$=null),M(aq)}var aq=z(0);function aG(e){for(var t=e;null!==t;){if(13===t.tag){var n=t.memoizedState;if(null!==n&&(null===(n=n.dehydrated)||uN(n)||uj(n)))return t}else if(19===t.tag&&("forwards"===t.memoizedProps.revealOrder||"backwards"===t.memoizedProps.revealOrder||"unstable_legacy-backwards"===t.memoizedProps.revealOrder||"together"===t.memoizedProps.revealOrder)){if(0!=(128&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 aY=0,aK=null,aQ=null,aZ=null,aX=!1,aJ=!1,a0=!1,a1=0,a2=0,a3=null,a4=0;function a8(){throw Error(l(321))}function a5(e,t){if(null===t)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!nA(e[n],t[n]))return!1;return!0}function a9(e,t,n,r,a,o){return aY=o,aK=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,j.H=null===e||null===e.memoizedState?ia:io,a0=!1,o=n(r,a),a0=!1,aJ&&(o=a7(t,n,r,a)),a6(e),o}function a6(e){j.H=ir;var t=null!==aQ&&null!==aQ.next;if(aY=0,aZ=aQ=aK=null,aX=!1,a2=0,a3=null,t)throw Error(l(300));null===e||iS||null!==(e=e.dependencies)&&rG(e)&&(iS=!0)}function a7(e,t,n,r){aK=e;var a=0;do{if(aJ&&(a3=null),a2=0,aJ=!1,25<=a)throw Error(l(301));if(a+=1,aZ=aQ=null,null!=e.updateQueue){var o=e.updateQueue;o.lastEffect=null,o.events=null,o.stores=null,null!=o.memoCache&&(o.memoCache.index=0)}j.H=ii,o=t(n,r)}while(aJ)return o}function oe(){var e=j.H,t=e.useState()[0];return t="function"==typeof t.then?ol(t):t,e=e.useState()[0],(null!==aQ?aQ.memoizedState:null)!==e&&(aK.flags|=1024),t}function ot(){var e=0!==a1;return a1=0,e}function on(e,t,n){t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~n}function or(e){if(aX){for(e=e.memoizedState;null!==e;){var t=e.queue;null!==t&&(t.pending=null),e=e.next}aX=!1}aY=0,aZ=aQ=aK=null,aJ=!1,a2=a1=0,a3=null}function oa(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return null===aZ?aK.memoizedState=aZ=e:aZ=aZ.next=e,aZ}function oo(){if(null===aQ){var e=aK.alternate;e=null!==e?e.memoizedState:null}else e=aQ.next;var t=null===aZ?aK.memoizedState:aZ.next;if(null!==t)aZ=t,aQ=e;else{if(null===e){if(null===aK.alternate)throw Error(l(467));throw Error(l(310))}e={memoizedState:(aQ=e).memoizedState,baseState:aQ.baseState,baseQueue:aQ.baseQueue,queue:aQ.queue,next:null},null===aZ?aK.memoizedState=aZ=e:aZ=aZ.next=e}return aZ}function oi(){return{lastEffect:null,events:null,stores:null,memoCache:null}}function ol(e){var t=a2;return a2+=1,null===a3&&(a3=[]),e=au(a3,e,t),t=aK,null===(null===aZ?t.memoizedState:aZ.next)&&(j.H=null===(t=t.alternate)||null===t.memoizedState?ia:io),e}function os(e){if(null!==e&&"object"==typeof e){if("function"==typeof e.then)return ol(e);if(e.$$typeof===k)return rK(e)}throw Error(l(438,String(e)))}function ou(e){var t=null,n=aK.updateQueue;if(null!==n&&(t=n.memoCache),null==t){var r=aK.alternate;null!==r&&null!==(r=r.updateQueue)&&null!=(r=r.memoCache)&&(t={data:r.data.map(function(e){return e.slice()}),index:0})}if(null==t&&(t={data:[],index:0}),null===n&&(n=oi(),aK.updateQueue=n),n.memoCache=t,void 0===(n=t.data[t.index]))for(n=t.data[t.index]=Array(e),r=0;r<e;r++)n[r]=C;return t.index++,n}function oc(e,t){return"function"==typeof t?t(e):t}function od(e){return of(oo(),aQ,e)}function of(e,t,n){var r=e.queue;if(null===r)throw Error(l(311));r.lastRenderedReducer=n;var a=e.baseQueue,o=r.pending;if(null!==o){if(null!==a){var i=a.next;a.next=o.next,o.next=i}t.baseQueue=a=o,r.pending=null}if(o=e.baseState,null===a)e.memoizedState=o;else{t=a.next;var s=i=null,u=null,c=t,d=!1;do{var f=-0x20000001&c.lane;if(f!==c.lane?(l$&f)===f:(aY&f)===f){var p=c.revertLane;if(0===p)null!==u&&(u=u.next={lane:0,revertLane:0,gesture:null,action:c.action,hasEagerState:c.hasEagerState,eagerState:c.eagerState,next:null}),f===r5&&(d=!0);else if((aY&p)===p){c=c.next,p===r5&&(d=!0);continue}else f={lane:0,revertLane:c.revertLane,gesture:null,action:c.action,hasEagerState:c.hasEagerState,eagerState:c.eagerState,next:null},null===u?(s=u=f,i=o):u=u.next=f,aK.lanes|=p,lY|=p;f=c.action,a0&&n(o,f),o=c.hasEagerState?c.eagerState:n(o,f)}else p={lane:f,revertLane:c.revertLane,gesture:c.gesture,action:c.action,hasEagerState:c.hasEagerState,eagerState:c.eagerState,next:null},null===u?(s=u=p,i=o):u=u.next=p,aK.lanes|=f,lY|=f;c=c.next}while(null!==c&&c!==t)if(null===u?i=o:u.next=s,!nA(o,e.memoizedState)&&(iS=!0,d&&null!==(n=r9)))throw n;e.memoizedState=o,e.baseState=i,e.baseQueue=u,r.lastRenderedState=o}return null===a&&(r.lanes=0),[e.memoizedState,r.dispatch]}function op(e){var t=oo(),n=t.queue;if(null===n)throw Error(l(311));n.lastRenderedReducer=e;var r=n.dispatch,a=n.pending,o=t.memoizedState;if(null!==a){n.pending=null;var i=a=a.next;do o=e(o,i.action),i=i.next;while(i!==a)nA(o,t.memoizedState)||(iS=!0),t.memoizedState=o,null===t.baseQueue&&(t.baseState=o),n.lastRenderedState=o}return[o,r]}function om(e,t,n){var r=aK,a=oo(),o=rC;if(o){if(void 0===n)throw Error(l(407));n=n()}else n=t();var i=!nA((aQ||a).memoizedState,n);if(i&&(a.memoizedState=n,iS=!0),a=a.queue,oM(ob.bind(null,r,a,e),[e]),a.getSnapshot!==t||i||null!==aZ&&1&aZ.memoizedState.tag){if(r.flags|=2048,oR(9,{destroy:void 0},og.bind(null,r,a,n,t),null),null===lz)throw Error(l(349));o||0!=(127&aY)||oh(r,t,n)}return n}function oh(e,t,n){e.flags|=16384,e={getSnapshot:t,value:n},null===(t=aK.updateQueue)?(t=oi(),aK.updateQueue=t,t.stores=[e]):null===(n=t.stores)?t.stores=[e]:n.push(e)}function og(e,t,n,r){t.value=n,t.getSnapshot=r,oy(t)&&ov(e)}function ob(e,t,n){return n(function(){oy(t)&&ov(e)})}function oy(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!nA(e,n)}catch(e){return!0}}function ov(e){var t=n5(e,2);null!==t&&ss(t,e,2)}function ow(e){var t=oa();if("function"==typeof e){var n=e;if(e=n(),a0){eh(!0);try{n()}finally{eh(!1)}}}return t.memoizedState=t.baseState=e,t.queue={pending:null,lanes:0,dispatch:null,lastRenderedReducer:oc,lastRenderedState:e},t}function ok(e,t,n,r){return e.baseState=n,of(e,aQ,"function"==typeof r?r:oc)}function oS(e,t,n,r,a){if(o7(e))throw Error(l(485));if(null!==(e=t.action)){var o={payload:a,action:e,next:null,isTransition:!0,status:"pending",value:null,reason:null,listeners:[],then:function(e){o.listeners.push(e)}};null!==j.T?n(!0):o.isTransition=!1,r(o),null===(n=t.pending)?(o.next=t.pending=o,ox(t,o)):(o.next=n.next,t.pending=n.next=o)}}function ox(e,t){var n=t.action,r=t.payload,a=e.state;if(t.isTransition){var o=j.T,i={};j.T=i;try{var l=n(a,r),s=j.S;null!==s&&s(i,l),oE(e,t,l)}catch(n){oA(e,t,n)}finally{null!==o&&null!==i.types&&(o.types=i.types),j.T=o}}else try{o=n(a,r),oE(e,t,o)}catch(n){oA(e,t,n)}}function oE(e,t,n){null!==n&&"object"==typeof n&&"function"==typeof n.then?n.then(function(n){o_(e,t,n)},function(n){return oA(e,t,n)}):o_(e,t,n)}function o_(e,t,n){t.status="fulfilled",t.value=n,oT(t),e.state=n,null!==(t=e.pending)&&((n=t.next)===t?e.pending=null:(n=n.next,t.next=n,ox(e,n)))}function oA(e,t,n){var r=e.pending;if(e.pending=null,null!==r){r=r.next;do t.status="rejected",t.reason=n,oT(t),t=t.next;while(t!==r)}e.action=null}function oT(e){e=e.listeners;for(var t=0;t<e.length;t++)(0,e[t])()}function oC(e,t){return t}function oP(e,t){if(rC){var n=lz.formState;if(null!==n){e:{var r=aK;if(rC){if(rT){t:{for(var a=rT,o=rO;8!==a.nodeType;)if(!o||null===(a=uR(a.nextSibling))){a=null;break t}a="F!"===(o=a.data)||"F"===o?a:null}if(a){rT=uR(a.nextSibling),r="F!"===a.data;break e}}rN(r)}r=!1}r&&(t=n[0])}}return(n=oa()).memoizedState=n.baseState=t,r={pending:null,lanes:0,dispatch:null,lastRenderedReducer:oC,lastRenderedState:t},n.queue=r,n=o5.bind(null,aK,r),r.dispatch=n,r=ow(!1),o=o6.bind(null,aK,!1,r.queue),r=oa(),a={state:t,dispatch:null,action:e,pending:null},r.queue=a,n=oS.bind(null,aK,a,o,n),a.dispatch=n,r.memoizedState=e,[t,n,!1]}function oO(e){return oL(oo(),aQ,e)}function oL(e,t,n){if(t=of(e,t,oC)[0],e=od(oc)[0],"object"==typeof t&&null!==t&&"function"==typeof t.then)try{var r=ol(t)}catch(e){if(e===aa)throw ai;throw e}else r=t;var a=(t=oo()).queue,o=a.dispatch;return n!==t.memoizedState&&(aK.flags|=2048,oR(9,{destroy:void 0},oN.bind(null,a,n),null)),[r,o,e]}function oN(e,t){e.action=t}function oj(e){var t=oo(),n=aQ;if(null!==n)return oL(t,n,e);oo(),t=t.memoizedState;var r=(n=oo()).queue.dispatch;return n.memoizedState=e,[t,r,!1]}function oR(e,t,n,r){return e={tag:e,create:n,deps:r,inst:t,next:null},null===(t=aK.updateQueue)&&(t=oi(),aK.updateQueue=t),null===(n=t.lastEffect)?t.lastEffect=e.next=e:(r=n.next,n.next=e,e.next=r,t.lastEffect=e),e}function oI(){return oo().memoizedState}function oD(e,t,n,r){var a=oa();aK.flags|=e,a.memoizedState=oR(1|t,{destroy:void 0},n,void 0===r?null:r)}function oF(e,t,n,r){var a=oo();r=void 0===r?null:r;var o=a.memoizedState.inst;null!==aQ&&null!==r&&a5(r,aQ.memoizedState.deps)?a.memoizedState=oR(t,o,n,r):(aK.flags|=e,a.memoizedState=oR(1|t,o,n,r))}function oz(e,t){oD(8390656,8,e,t)}function oM(e,t){oF(2048,8,e,t)}function o$(e){var t=oo().memoizedState,n={ref:t,nextImpl:e};aK.flags|=4;var r=aK.updateQueue;if(null===r)r=oi(),aK.updateQueue=r,r.events=[n];else{var a=r.events;null===a?r.events=[n]:a.push(n)}return function(){if(0!=(2&lF))throw Error(l(440));return t.impl.apply(void 0,arguments)}}function oB(e,t){return oF(4,2,e,t)}function oU(e,t){return oF(4,4,e,t)}function oH(e,t){if("function"==typeof t){var n=t(e=e());return function(){"function"==typeof n?n():t(null)}}if(null!=t)return t.current=e=e(),function(){t.current=null}}function oV(e,t,n){n=null!=n?n.concat([e]):null,oF(4,4,oH.bind(null,t,e),n)}function oW(){}function oq(e,t){var n=oo();t=void 0===t?null:t;var r=n.memoizedState;return null!==t&&a5(t,r[1])?r[0]:(n.memoizedState=[e,t],e)}function oG(e,t){var n=oo();t=void 0===t?null:t;var r=n.memoizedState;if(null!==t&&a5(t,r[1]))return r[0];if(r=e(),a0){eh(!0);try{e()}finally{eh(!1)}}return n.memoizedState=[r,t],r}function oY(e,t,n){return void 0===n||0!=(0x40000000&aY)&&0==(261930&l$)?e.memoizedState=t:(e.memoizedState=n,e=sl(),aK.lanes|=e,lY|=e,n)}function oK(e,t,n,r){return nA(n,t)?n:null!==aR.current?(nA(e=oY(e,n,r),t)||(iS=!0),e):0==(42&aY)||0!=(0x40000000&aY)&&0==(261930&l$)?(iS=!0,e.memoizedState=n):(e=sl(),aK.lanes|=e,lY|=e,t)}function oQ(e,t,n,r,a){var o=R.p;R.p=0!==o&&8>o?o:8;var i=j.T,l={};j.T=l,o6(e,!1,t,n);try{var s=a(),u=j.S;if(null!==u&&u(l,s),null!==s&&"object"==typeof s&&"function"==typeof s.then){var c,d,f=(c=[],d={status:"pending",value:null,reason:null,then:function(e){c.push(e)}},s.then(function(){d.status="fulfilled",d.value=r;for(var e=0;e<c.length;e++)(0,c[e])(r)},function(e){for(d.status="rejected",d.reason=e,e=0;e<c.length;e++)(0,c[e])(void 0)}),d);o9(e,t,f,si(e))}else o9(e,t,r,si(e))}catch(n){o9(e,t,{then:function(){},status:"rejected",reason:n},si())}finally{R.p=o,null!==i&&null!==l.types&&(i.types=l.types),j.T=i}}function oZ(){}function oX(e,t,n,r){if(5!==e.tag)throw Error(l(476));var a=oJ(e).queue;oQ(e,a,t,I,null===n?oZ:function(){return o0(e),n(r)})}function oJ(e){var t=e.memoizedState;if(null!==t)return t;var n={};return(t={memoizedState:I,baseState:I,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:oc,lastRenderedState:I},next:null}).next={memoizedState:n,baseState:n,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:oc,lastRenderedState:n},next:null},e.memoizedState=t,null!==(e=e.alternate)&&(e.memoizedState=t),t}function o0(e){var t=oJ(e);null===t.next&&(t=e.alternate.memoizedState),o9(e,t.next.queue,{},si())}function o1(){return rK(ct)}function o2(){return oo().memoizedState}function o3(){return oo().memoizedState}function o4(e){for(var t=e.return;null!==t;){switch(t.tag){case 24:case 3:var n=si(),r=aA(t,e=a_(n),n);null!==r&&(ss(r,t,n),aT(r,t,n)),t={cache:r2()},e.payload=t;return}t=t.return}}function o8(e,t,n){var r=si();n={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null},o7(e)?ie(t,n):null!==(n=n8(e,t,n,r))&&(ss(n,e,r),it(n,t,r))}function o5(e,t,n){o9(e,t,n,si())}function o9(e,t,n,r){var a={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null};if(o7(e))ie(t,a);else{var o=e.alternate;if(0===e.lanes&&(null===o||0===o.lanes)&&null!==(o=t.lastRenderedReducer))try{var i=t.lastRenderedState,l=o(i,n);if(a.hasEagerState=!0,a.eagerState=l,nA(l,i))return n4(e,t,a,0),null===lz&&n3(),!1}catch(e){}finally{}if(null!==(n=n8(e,t,a,r)))return ss(n,e,r),it(n,t,r),!0}return!1}function o6(e,t,n,r){if(r={lane:2,revertLane:sJ(),gesture:null,action:r,hasEagerState:!1,eagerState:null,next:null},o7(e)){if(t)throw Error(l(479))}else null!==(t=n8(e,n,r,2))&&ss(t,e,2)}function o7(e){var t=e.alternate;return e===aK||null!==t&&t===aK}function ie(e,t){aJ=aX=!0;var n=e.pending;null===n?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function it(e,t,n){if(0!=(4194048&n)){var r=t.lanes;r&=e.pendingLanes,t.lanes=n|=r,eP(e,n)}}var ir={readContext:rK,use:os,useCallback:a8,useContext:a8,useEffect:a8,useImperativeHandle:a8,useLayoutEffect:a8,useInsertionEffect:a8,useMemo:a8,useReducer:a8,useRef:a8,useState:a8,useDebugValue:a8,useDeferredValue:a8,useTransition:a8,useSyncExternalStore:a8,useId:a8,useHostTransitionStatus:a8,useFormState:a8,useActionState:a8,useOptimistic:a8,useMemoCache:a8,useCacheRefresh:a8};ir.useEffectEvent=a8;var ia={readContext:rK,use:os,useCallback:function(e,t){return oa().memoizedState=[e,void 0===t?null:t],e},useContext:rK,useEffect:oz,useImperativeHandle:function(e,t,n){n=null!=n?n.concat([e]):null,oD(4194308,4,oH.bind(null,t,e),n)},useLayoutEffect:function(e,t){return oD(4194308,4,e,t)},useInsertionEffect:function(e,t){oD(4,2,e,t)},useMemo:function(e,t){var n=oa();t=void 0===t?null:t;var r=e();if(a0){eh(!0);try{e()}finally{eh(!1)}}return n.memoizedState=[r,t],r},useReducer:function(e,t,n){var r=oa();if(void 0!==n){var a=n(t);if(a0){eh(!0);try{n(t)}finally{eh(!1)}}}else a=t;return r.memoizedState=r.baseState=a,r.queue=e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:a},e=e.dispatch=o8.bind(null,aK,e),[r.memoizedState,e]},useRef:function(e){return oa().memoizedState={current:e}},useState:function(e){var t=(e=ow(e)).queue,n=o5.bind(null,aK,t);return t.dispatch=n,[e.memoizedState,n]},useDebugValue:oW,useDeferredValue:function(e,t){return oY(oa(),e,t)},useTransition:function(){var e=ow(!1);return e=oQ.bind(null,aK,e.queue,!0,!1),oa().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,t,n){var r=aK,a=oa();if(rC){if(void 0===n)throw Error(l(407));n=n()}else{if(n=t(),null===lz)throw Error(l(349));0!=(127&l$)||oh(r,t,n)}a.memoizedState=n;var o={value:n,getSnapshot:t};return a.queue=o,oz(ob.bind(null,r,o,e),[e]),r.flags|=2048,oR(9,{destroy:void 0},og.bind(null,r,o,n,t),null),n},useId:function(){var e=oa(),t=lz.identifierPrefix;if(rC){var n=rw,r=rv;t="_"+t+"R_"+(n=(r&~(1<<32-eg(r)-1)).toString(32)+n),0<(n=a1++)&&(t+="H"+n.toString(32)),t+="_"}else t="_"+t+"r_"+(n=a4++).toString(32)+"_";return e.memoizedState=t},useHostTransitionStatus:o1,useFormState:oP,useActionState:oP,useOptimistic:function(e){var t=oa();t.memoizedState=t.baseState=e;var n={pending:null,lanes:0,dispatch:null,lastRenderedReducer:null,lastRenderedState:null};return t.queue=n,t=o6.bind(null,aK,!0,n),n.dispatch=t,[e,t]},useMemoCache:ou,useCacheRefresh:function(){return oa().memoizedState=o4.bind(null,aK)},useEffectEvent:function(e){var t=oa(),n={impl:e};return t.memoizedState=n,function(){if(0!=(2&lF))throw Error(l(440));return n.impl.apply(void 0,arguments)}}},io={readContext:rK,use:os,useCallback:oq,useContext:rK,useEffect:oM,useImperativeHandle:oV,useInsertionEffect:oB,useLayoutEffect:oU,useMemo:oG,useReducer:od,useRef:oI,useState:function(){return od(oc)},useDebugValue:oW,useDeferredValue:function(e,t){return oK(oo(),aQ.memoizedState,e,t)},useTransition:function(){var e=od(oc)[0],t=oo().memoizedState;return["boolean"==typeof e?e:ol(e),t]},useSyncExternalStore:om,useId:o2,useHostTransitionStatus:o1,useFormState:oO,useActionState:oO,useOptimistic:function(e,t){return ok(oo(),aQ,e,t)},useMemoCache:ou,useCacheRefresh:o3};io.useEffectEvent=o$;var ii={readContext:rK,use:os,useCallback:oq,useContext:rK,useEffect:oM,useImperativeHandle:oV,useInsertionEffect:oB,useLayoutEffect:oU,useMemo:oG,useReducer:op,useRef:oI,useState:function(){return op(oc)},useDebugValue:oW,useDeferredValue:function(e,t){var n=oo();return null===aQ?oY(n,e,t):oK(n,aQ.memoizedState,e,t)},useTransition:function(){var e=op(oc)[0],t=oo().memoizedState;return["boolean"==typeof e?e:ol(e),t]},useSyncExternalStore:om,useId:o2,useHostTransitionStatus:o1,useFormState:oj,useActionState:oj,useOptimistic:function(e,t){var n=oo();return null!==aQ?ok(n,aQ,e,t):(n.baseState=e,[e,n.queue.dispatch])},useMemoCache:ou,useCacheRefresh:o3};function il(e,t,n,r){n=null==(n=n(r,t=e.memoizedState))?t:p({},t,n),e.memoizedState=n,0===e.lanes&&(e.updateQueue.baseState=n)}ii.useEffectEvent=o$;var is={enqueueSetState:function(e,t,n){e=e._reactInternals;var r=si(),a=a_(r);a.payload=t,null!=n&&(a.callback=n),null!==(t=aA(e,a,r))&&(ss(t,e,r),aT(t,e,r))},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var r=si(),a=a_(r);a.tag=1,a.payload=t,null!=n&&(a.callback=n),null!==(t=aA(e,a,r))&&(ss(t,e,r),aT(t,e,r))},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=si(),r=a_(n);r.tag=2,null!=t&&(r.callback=t),null!==(t=aA(e,r,n))&&(ss(t,e,n),aT(t,e,n))}};function iu(e,t,n,r,a,o,i){return"function"==typeof(e=e.stateNode).shouldComponentUpdate?e.shouldComponentUpdate(r,o,i):!t.prototype||!t.prototype.isPureReactComponent||!nT(n,r)||!nT(a,o)}function ic(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&&is.enqueueReplaceState(t,t.state,null)}function id(e,t){var n=t;if("ref"in t)for(var r in n={},t)"ref"!==r&&(n[r]=t[r]);if(e=e.defaultProps)for(var a in n===t&&(n=p({},n)),e)void 0===n[a]&&(n[a]=e[a]);return n}function ip(e){nJ(e)}function im(e){console.error(e)}function ih(e){nJ(e)}function ig(e,t){try{(0,e.onUncaughtError)(t.value,{componentStack:t.stack})}catch(e){setTimeout(function(){throw e})}}function ib(e,t,n){try{(0,e.onCaughtError)(n.value,{componentStack:n.stack,errorBoundary:1===t.tag?t.stateNode:null})}catch(e){setTimeout(function(){throw e})}}function iy(e,t,n){return(n=a_(n)).tag=3,n.payload={element:null},n.callback=function(){ig(e,t)},n}function iv(e){return(e=a_(e)).tag=3,e}function iw(e,t,n,r){var a=n.type.getDerivedStateFromError;if("function"==typeof a){var o=r.value;e.payload=function(){return a(o)},e.callback=function(){ib(t,n,r)}}var i=n.stateNode;null!==i&&"function"==typeof i.componentDidCatch&&(e.callback=function(){ib(t,n,r),"function"!=typeof a&&(null===l5?l5=new Set([this]):l5.add(this));var e=r.stack;this.componentDidCatch(r.value,{componentStack:null!==e?e:""})})}var ik=Error(l(461)),iS=!1;function ix(e,t,n,r){t.child=null===e?ak(t,null,n,r):aw(t,e.child,n,r)}function iE(e,t,n,r,a){n=n.render;var o=t.ref;if("ref"in r){var i={};for(var l in r)"ref"!==l&&(i[l]=r[l])}else i=r;return(rY(t),r=a9(e,t,n,i,o,a),l=ot(),null===e||iS)?(rC&&l&&rx(t),t.flags|=1,ix(e,t,r,a),t.child):(on(e,t,a),iG(e,t,a))}function i_(e,t,n,r,a){if(null===e){var o=n.type;return"function"!=typeof o||rn(o)||void 0!==o.defaultProps||null!==n.compare?((e=ro(n.type,null,r,t,t.mode,a)).ref=t.ref,e.return=t,t.child=e):(t.tag=15,t.type=o,iA(e,t,o,r,a))}if(o=e.child,!iY(e,a)){var i=o.memoizedProps;if((n=null!==(n=n.compare)?n:nT)(i,r)&&e.ref===t.ref)return iG(e,t,a)}return t.flags|=1,(e=rr(o,r)).ref=t.ref,e.return=t,t.child=e}function iA(e,t,n,r,a){if(null!==e){var o=e.memoizedProps;if(nT(o,r)&&e.ref===t.ref)if(iS=!1,t.pendingProps=r=o,!iY(e,a))return t.lanes=e.lanes,iG(e,t,a);else 0!=(131072&e.flags)&&(iS=!0)}return ij(e,t,n,r,a)}function iT(e,t,n,r){var a=r.children,o=null!==e?e.memoizedState:null;if(null===e&&null===t.stateNode&&(t.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),"hidden"===r.mode){if(0!=(128&t.flags)){if(o=null!==o?o.baseLanes|n:n,null!==e){for(a=0,r=t.child=e.child;null!==r;)a=a|r.lanes|r.childLanes,r=r.sibling;r=a&~o}else r=0,t.child=null;return iP(e,t,o,n,r)}if(0==(0x20000000&n))return r=t.lanes=0x20000000,iP(e,t,null!==o?o.baseLanes|n:n,n,r);t.memoizedState={baseLanes:0,cachePool:null},null!==e&&an(t,null!==o?o.cachePool:null),null!==o?aD(t,o):aF(),aH(t)}else null!==o?(an(t,o.cachePool),aD(t,o),aV(t),t.memoizedState=null):(null!==e&&an(t,null),aF(),aV(t));return ix(e,t,a,n),t.child}function iC(e,t){return null!==e&&22===e.tag||null!==t.stateNode||(t.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),t.sibling}function iP(e,t,n,r,a){var o=at();return t.memoizedState={baseLanes:n,cachePool:o=null===o?null:{parent:r1._currentValue,pool:o}},null!==e&&an(t,null),aF(),aH(t),null!==e&&rq(e,t,r,!0),t.childLanes=a,null}function iO(e,t){return(t=iU({mode:t.mode,children:t.children},e.mode)).ref=e.ref,e.child=t,t.return=e,t}function iL(e,t,n){return aw(t,e.child,null,n),e=iO(t,t.pendingProps),e.flags|=2,aW(t),t.memoizedState=null,e}function iN(e,t){var n=t.ref;if(null===n)null!==e&&null!==e.ref&&(t.flags|=4194816);else{if("function"!=typeof n&&"object"!=typeof n)throw Error(l(284));(null===e||e.ref!==n)&&(t.flags|=4194816)}}function ij(e,t,n,r,a){return(rY(t),n=a9(e,t,n,r,void 0,a),r=ot(),null===e||iS)?(rC&&r&&rx(t),t.flags|=1,ix(e,t,n,a),t.child):(on(e,t,a),iG(e,t,a))}function iR(e,t,n,r,a,o){return(rY(t),t.updateQueue=null,n=a7(t,r,n,a),a6(e),r=ot(),null===e||iS)?(rC&&r&&rx(t),t.flags|=1,ix(e,t,n,o),t.child):(on(e,t,o),iG(e,t,o))}function iI(e,t,n,r,a){if(rY(t),null===t.stateNode){var o=n7,i=n.contextType;"object"==typeof i&&null!==i&&(o=rK(i)),t.memoizedState=null!==(o=new n(r,o)).state&&void 0!==o.state?o.state:null,o.updater=is,t.stateNode=o,o._reactInternals=t,(o=t.stateNode).props=r,o.state=t.memoizedState,o.refs={},ax(t),i=n.contextType,o.context="object"==typeof i&&null!==i?rK(i):n7,o.state=t.memoizedState,"function"==typeof(i=n.getDerivedStateFromProps)&&(il(t,n,i,r),o.state=t.memoizedState),"function"==typeof n.getDerivedStateFromProps||"function"==typeof o.getSnapshotBeforeUpdate||"function"!=typeof o.UNSAFE_componentWillMount&&"function"!=typeof o.componentWillMount||(i=o.state,"function"==typeof o.componentWillMount&&o.componentWillMount(),"function"==typeof o.UNSAFE_componentWillMount&&o.UNSAFE_componentWillMount(),i!==o.state&&is.enqueueReplaceState(o,o.state,null),aL(t,r,o,a),aO(),o.state=t.memoizedState),"function"==typeof o.componentDidMount&&(t.flags|=4194308),r=!0}else if(null===e){o=t.stateNode;var l=t.memoizedProps,s=id(n,l);o.props=s;var u=o.context,c=n.contextType;i=n7,"object"==typeof c&&null!==c&&(i=rK(c));var d=n.getDerivedStateFromProps;c="function"==typeof d||"function"==typeof o.getSnapshotBeforeUpdate,l=t.pendingProps!==l,c||"function"!=typeof o.UNSAFE_componentWillReceiveProps&&"function"!=typeof o.componentWillReceiveProps||(l||u!==i)&&ic(t,o,r,i),aS=!1;var f=t.memoizedState;o.state=f,aL(t,r,o,a),aO(),u=t.memoizedState,l||f!==u||aS?("function"==typeof d&&(il(t,n,d,r),u=t.memoizedState),(s=aS||iu(t,n,s,r,f,u,i))?(c||"function"!=typeof o.UNSAFE_componentWillMount&&"function"!=typeof o.componentWillMount||("function"==typeof o.componentWillMount&&o.componentWillMount(),"function"==typeof o.UNSAFE_componentWillMount&&o.UNSAFE_componentWillMount()),"function"==typeof o.componentDidMount&&(t.flags|=4194308)):("function"==typeof o.componentDidMount&&(t.flags|=4194308),t.memoizedProps=r,t.memoizedState=u),o.props=r,o.state=u,o.context=i,r=s):("function"==typeof o.componentDidMount&&(t.flags|=4194308),r=!1)}else{o=t.stateNode,aE(e,t),c=id(n,i=t.memoizedProps),o.props=c,d=t.pendingProps,f=o.context,u=n.contextType,s=n7,"object"==typeof u&&null!==u&&(s=rK(u)),(u="function"==typeof(l=n.getDerivedStateFromProps)||"function"==typeof o.getSnapshotBeforeUpdate)||"function"!=typeof o.UNSAFE_componentWillReceiveProps&&"function"!=typeof o.componentWillReceiveProps||(i!==d||f!==s)&&ic(t,o,r,s),aS=!1,f=t.memoizedState,o.state=f,aL(t,r,o,a),aO();var p=t.memoizedState;i!==d||f!==p||aS||null!==e&&null!==e.dependencies&&rG(e.dependencies)?("function"==typeof l&&(il(t,n,l,r),p=t.memoizedState),(c=aS||iu(t,n,c,r,f,p,s)||null!==e&&null!==e.dependencies&&rG(e.dependencies))?(u||"function"!=typeof o.UNSAFE_componentWillUpdate&&"function"!=typeof o.componentWillUpdate||("function"==typeof o.componentWillUpdate&&o.componentWillUpdate(r,p,s),"function"==typeof o.UNSAFE_componentWillUpdate&&o.UNSAFE_componentWillUpdate(r,p,s)),"function"==typeof o.componentDidUpdate&&(t.flags|=4),"function"==typeof o.getSnapshotBeforeUpdate&&(t.flags|=1024)):("function"!=typeof o.componentDidUpdate||i===e.memoizedProps&&f===e.memoizedState||(t.flags|=4),"function"!=typeof o.getSnapshotBeforeUpdate||i===e.memoizedProps&&f===e.memoizedState||(t.flags|=1024),t.memoizedProps=r,t.memoizedState=p),o.props=r,o.state=p,o.context=s,r=c):("function"!=typeof o.componentDidUpdate||i===e.memoizedProps&&f===e.memoizedState||(t.flags|=4),"function"!=typeof o.getSnapshotBeforeUpdate||i===e.memoizedProps&&f===e.memoizedState||(t.flags|=1024),r=!1)}return o=r,iN(e,t),r=0!=(128&t.flags),o||r?(o=t.stateNode,n=r&&"function"!=typeof n.getDerivedStateFromError?null:o.render(),t.flags|=1,null!==e&&r?(t.child=aw(t,e.child,null,a),t.child=aw(t,null,n,a)):ix(e,t,n,a),t.memoizedState=o.state,e=t.child):e=iG(e,t,a),e}function iD(e,t,n,r){return rD(),t.flags|=256,ix(e,t,n,r),t.child}var iF={dehydrated:null,treeContext:null,retryLane:0,hydrationErrors:null};function iz(e){return{baseLanes:e,cachePool:ar()}}function iM(e,t,n){return e=null!==e?e.childLanes&~n:0,t&&(e|=lZ),e}function i$(e,t,n){var r,a=t.pendingProps,o=!1,i=0!=(128&t.flags);if((r=i)||(r=(null===e||null!==e.memoizedState)&&0!=(2&aq.current)),r&&(o=!0,t.flags&=-129),r=0!=(32&t.flags),t.flags&=-33,null===e){if(rC){if(o?aB(t):aV(t),(e=rT)?null!==(e=null!==(e=uL(e,rO))&&"&"!==e.data?e:null)&&(t.memoizedState={dehydrated:e,treeContext:null!==ry?{id:rv,overflow:rw}:null,retryLane:0x20000000,hydrationErrors:null},(n=rs(e)).return=t,t.child=n,rA=t,rT=null):e=null,null===e)throw rN(t);return uj(e)?t.lanes=32:t.lanes=0x20000000,null}var s=a.children;return(a=a.fallback,o)?(aV(t),s=iU({mode:"hidden",children:s},o=t.mode),a=ri(a,o,n,null),s.return=t,a.return=t,s.sibling=a,t.child=s,(a=t.child).memoizedState=iz(n),a.childLanes=iM(e,r,n),t.memoizedState=iF,iC(null,a)):(aB(t),iB(t,s))}var u=e.memoizedState;if(null!==u&&null!==(s=u.dehydrated)){if(i)256&t.flags?(aB(t),t.flags&=-257,t=iH(e,t,n)):null!==t.memoizedState?(aV(t),t.child=e.child,t.flags|=128,t=null):(aV(t),s=a.fallback,o=t.mode,a=iU({mode:"visible",children:a.children},o),s=ri(s,o,n,null),s.flags|=2,a.return=t,s.return=t,a.sibling=s,t.child=a,aw(t,e.child,null,n),(a=t.child).memoizedState=iz(n),a.childLanes=iM(e,r,n),t.memoizedState=iF,t=iC(null,a));else if(aB(t),uj(s)){if(r=s.nextSibling&&s.nextSibling.dataset)var c=r.dgst;r=c,(a=Error(l(419))).stack="",a.digest=r,rz({value:a,source:null,stack:null}),t=iH(e,t,n)}else if(iS||rq(e,t,n,!1),r=0!=(n&e.childLanes),iS||r){if(null!==(r=lz)&&0!==(a=eO(r,n))&&a!==u.retryLane)throw u.retryLane=a,n5(e,a),ss(r,e,a),ik;uN(s)||sv(),t=iH(e,t,n)}else uN(s)?(t.flags|=192,t.child=e.child,t=null):(e=u.treeContext,rT=uR(s.nextSibling),rA=t,rC=!0,rP=null,rO=!1,null!==e&&r_(t,e),t=iB(t,a.children),t.flags|=4096);return t}return o?(aV(t),s=a.fallback,o=t.mode,c=(u=e.child).sibling,(a=rr(u,{mode:"hidden",children:a.children})).subtreeFlags=0x3e00000&u.subtreeFlags,null!==c?s=rr(c,s):(s=ri(s,o,n,null),s.flags|=2),s.return=t,a.return=t,a.sibling=s,t.child=a,iC(null,a),a=t.child,null===(s=e.child.memoizedState)?s=iz(n):(null!==(o=s.cachePool)?(u=r1._currentValue,o=o.parent!==u?{parent:u,pool:u}:o):o=ar(),s={baseLanes:s.baseLanes|n,cachePool:o}),a.memoizedState=s,a.childLanes=iM(e,r,n),t.memoizedState=iF,iC(e.child,a)):(aB(t),e=(n=e.child).sibling,(n=rr(n,{mode:"visible",children:a.children})).return=t,n.sibling=null,null!==e&&(null===(r=t.deletions)?(t.deletions=[e],t.flags|=16):r.push(e)),t.child=n,t.memoizedState=null,n)}function iB(e,t){return(t=iU({mode:"visible",children:t},e.mode)).return=e,e.child=t}function iU(e,t){return(e=rt(22,e,null,t)).lanes=0,e}function iH(e,t,n){return aw(t,e.child,null,n),e=iB(t,t.pendingProps.children),e.flags|=2,t.memoizedState=null,e}function iV(e,t,n){e.lanes|=t;var r=e.alternate;null!==r&&(r.lanes|=t),rV(e.return,t,n)}function iW(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,treeForkCount:o}:(i.isBackwards=t,i.rendering=null,i.renderingStartTime=0,i.last=r,i.tail=n,i.tailMode=a,i.treeForkCount=o)}function iq(e,t,n){var r=t.pendingProps,a=r.revealOrder,o=r.tail;r=r.children;var i=aq.current,l=0!=(2&i);if(l?(i=1&i|2,t.flags|=128):i&=1,$(aq,i),ix(e,t,r,n),r=rC?rh:0,!l&&null!==e&&0!=(128&e.flags))e:for(e=t.child;null!==e;){if(13===e.tag)null!==e.memoizedState&&iV(e,n,t);else if(19===e.tag)iV(e,n,t);else if(null!==e.child){e.child.return=e,e=e.child;continue}if(e===t)break;for(;null===e.sibling;){if(null===e.return||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}switch(a){case"forwards":for(a=null,n=t.child;null!==n;)null!==(e=n.alternate)&&null===aG(e)&&(a=n),n=n.sibling;null===(n=a)?(a=t.child,t.child=null):(a=n.sibling,n.sibling=null),iW(t,!1,a,n,o,r);break;case"backwards":case"unstable_legacy-backwards":for(n=null,a=t.child,t.child=null;null!==a;){if(null!==(e=a.alternate)&&null===aG(e)){t.child=a;break}e=a.sibling,a.sibling=n,n=a,a=e}iW(t,!0,n,null,o,r);break;case"together":iW(t,!1,null,null,void 0,r);break;default:t.memoizedState=null}return t.child}function iG(e,t,n){if(null!==e&&(t.dependencies=e.dependencies),lY|=t.lanes,0==(n&t.childLanes)){if(null===e)return null;else if(rq(e,t,n,!1),0==(n&t.childLanes))return null}if(null!==e&&t.child!==e.child)throw Error(l(153));if(null!==t.child){for(n=rr(e=t.child,e.pendingProps),t.child=n,n.return=t;null!==e.sibling;)e=e.sibling,(n=n.sibling=rr(e,e.pendingProps)).return=t;n.sibling=null}return t.child}function iY(e,t){return 0!=(e.lanes&t)||!!(null!==(e=e.dependencies)&&rG(e))}function iK(e,t,n){if(null!==e)if(e.memoizedProps!==t.pendingProps)iS=!0;else{if(!iY(e,n)&&0==(128&t.flags))return iS=!1,function(e,t,n){switch(t.tag){case 3:W(t,t.stateNode.containerInfo),rU(t,r1,e.memoizedState.cache),rD();break;case 27:case 5:G(t);break;case 4:W(t,t.stateNode.containerInfo);break;case 10:rU(t,t.type,t.memoizedProps.value);break;case 31:if(null!==t.memoizedState)return t.flags|=128,aU(t),null;break;case 13:var r=t.memoizedState;if(null!==r){if(null!==r.dehydrated)return aB(t),t.flags|=128,null;if(0!=(n&t.child.childLanes))return i$(e,t,n);return aB(t),null!==(e=iG(e,t,n))?e.sibling:null}aB(t);break;case 19:var a=0!=(128&e.flags);if((r=0!=(n&t.childLanes))||(rq(e,t,n,!1),r=0!=(n&t.childLanes)),a){if(r)return iq(e,t,n);t.flags|=128}if(null!==(a=t.memoizedState)&&(a.rendering=null,a.tail=null,a.lastEffect=null),$(aq,aq.current),!r)return null;break;case 22:return t.lanes=0,iT(e,t,n,t.pendingProps);case 24:rU(t,r1,e.memoizedState.cache)}return iG(e,t,n)}(e,t,n);iS=0!=(131072&e.flags)}else iS=!1,rC&&0!=(1048576&t.flags)&&rS(t,rh,t.index);switch(t.lanes=0,t.tag){case 16:e:{var r=t.pendingProps;if(e=ac(t.elementType),t.type=e,"function"==typeof e)rn(e)?(r=id(e,r),t.tag=1,t=iI(null,t,e,r,n)):(t.tag=0,t=ij(null,t,e,r,n));else{if(null!=e){var a=e.$$typeof;if(a===S){t.tag=11,t=iE(null,t,e,r,n);break e}if(a===_){t.tag=14,t=i_(null,t,e,r,n);break e}}throw Error(l(306,t=function e(t){if(null==t)return null;if("function"==typeof t)return t.$$typeof===L?null:t.displayName||t.name||null;if("string"==typeof t)return t;switch(t){case b:return"Fragment";case v:return"Profiler";case y:return"StrictMode";case x:return"Suspense";case E:return"SuspenseList";case T:return"Activity"}if("object"==typeof t)switch(t.$$typeof){case g:return"Portal";case k:return t.displayName||"Context";case w:return(t._context.displayName||"Context")+".Consumer";case S:var n=t.render;return(t=t.displayName)||(t=""!==(t=n.displayName||n.name||"")?"ForwardRef("+t+")":"ForwardRef"),t;case _:return null!==(n=t.displayName||null)?n:e(t.type)||"Memo";case A:n=t._payload,t=t._init;try{return e(t(n))}catch(e){}}return null}(e)||e,""))}}return t;case 0:return ij(e,t,t.type,t.pendingProps,n);case 1:return a=id(r=t.type,t.pendingProps),iI(e,t,r,a,n);case 3:e:{if(W(t,t.stateNode.containerInfo),null===e)throw Error(l(387));r=t.pendingProps;var o=t.memoizedState;a=o.element,aE(e,t),aL(t,r,null,n);var i=t.memoizedState;if(rU(t,r1,r=i.cache),r!==o.cache&&rW(t,[r1],n,!0),aO(),r=i.element,o.isDehydrated)if(o={element:r,isDehydrated:!1,cache:i.cache},t.updateQueue.baseState=o,t.memoizedState=o,256&t.flags){t=iD(e,t,r,n);break e}else if(r!==a){rz(a=rd(Error(l(424)),t)),t=iD(e,t,r,n);break e}else for(rT=uR((e=9===(e=t.stateNode.containerInfo).nodeType?e.body:"HTML"===e.nodeName?e.ownerDocument.body:e).firstChild),rA=t,rC=!0,rP=null,rO=!0,n=ak(t,null,r,n),t.child=n;n;)n.flags=-3&n.flags|4096,n=n.sibling;else{if(rD(),r===a){t=iG(e,t,n);break e}ix(e,t,r,n)}t=t.child}return t;case 26:return iN(e,t),null===e?(n=uq(t.type,null,t.pendingProps,null))?t.memoizedState=n:rC||(n=t.type,e=t.pendingProps,(r=ub(H.current).createElement(n))[eD]=t,r[eF]=e,up(r,n,e),eK(r),t.stateNode=r):t.memoizedState=uq(t.type,e.memoizedProps,t.pendingProps,e.memoizedState),null;case 27:return G(t),null===e&&rC&&(r=t.stateNode=uz(t.type,t.pendingProps,H.current),rA=t,rO=!0,a=rT,uT(t.type)?(uI=a,rT=uR(r.firstChild)):rT=a),ix(e,t,t.pendingProps.children,n),iN(e,t),null===e&&(t.flags|=4194304),t.child;case 5:return null===e&&rC&&((a=r=rT)&&(null!==(r=function(e,t,n,r){for(;1===e.nodeType;){if(e.nodeName.toLowerCase()!==t.toLowerCase()){if(!r&&("INPUT"!==e.nodeName||"hidden"!==e.type))break}else if(r){if(!e[eH])switch(t){case"meta":if(!e.hasAttribute("itemprop"))break;return e;case"link":if("stylesheet"===(a=e.getAttribute("rel"))&&e.hasAttribute("data-precedence")||a!==n.rel||e.getAttribute("href")!==(null==n.href||""===n.href?null:n.href)||e.getAttribute("crossorigin")!==(null==n.crossOrigin?null:n.crossOrigin)||e.getAttribute("title")!==(null==n.title?null:n.title))break;return e;case"style":if(e.hasAttribute("data-precedence"))break;return e;case"script":if(((a=e.getAttribute("src"))!==(null==n.src?null:n.src)||e.getAttribute("type")!==(null==n.type?null:n.type)||e.getAttribute("crossorigin")!==(null==n.crossOrigin?null:n.crossOrigin))&&a&&e.hasAttribute("async")&&!e.hasAttribute("itemprop"))break;return e;default:return e}}else{if("input"!==t||"hidden"!==e.type)return e;var a=null==n.name?null:""+n.name;if("hidden"===n.type&&e.getAttribute("name")===a)return e}if(null===(e=uR(e.nextSibling)))break}return null}(r,t.type,t.pendingProps,rO))?(t.stateNode=r,rA=t,rT=uR(r.firstChild),rO=!1,a=!0):a=!1),a||rN(t)),G(t),a=t.type,o=t.pendingProps,i=null!==e?e.memoizedProps:null,r=o.children,uw(a,o)?r=null:null!==i&&uw(a,i)&&(t.flags|=32),null!==t.memoizedState&&(ct._currentValue=a=a9(e,t,oe,null,null,n)),iN(e,t),ix(e,t,r,n),t.child;case 6:return null===e&&rC&&((e=n=rT)&&(null!==(n=function(e,t,n){if(""===t)return null;for(;3!==e.nodeType;)if((1!==e.nodeType||"INPUT"!==e.nodeName||"hidden"!==e.type)&&!n||null===(e=uR(e.nextSibling)))return null;return e}(n,t.pendingProps,rO))?(t.stateNode=n,rA=t,rT=null,e=!0):e=!1),e||rN(t)),null;case 13:return i$(e,t,n);case 4:return W(t,t.stateNode.containerInfo),r=t.pendingProps,null===e?t.child=aw(t,null,r,n):ix(e,t,r,n),t.child;case 11:return iE(e,t,t.type,t.pendingProps,n);case 7:return ix(e,t,t.pendingProps,n),t.child;case 8:case 12:return ix(e,t,t.pendingProps.children,n),t.child;case 10:return r=t.pendingProps,rU(t,t.type,r.value),ix(e,t,r.children,n),t.child;case 9:return a=t.type._context,r=t.pendingProps.children,rY(t),r=r(a=rK(a)),t.flags|=1,ix(e,t,r,n),t.child;case 14:return i_(e,t,t.type,t.pendingProps,n);case 15:return iA(e,t,t.type,t.pendingProps,n);case 19:return iq(e,t,n);case 31:var s=e,u=t,c=n,d=u.pendingProps,f=0!=(128&u.flags);if(u.flags&=-129,null===s){if(rC){if("hidden"===d.mode)return s=iO(u,d),u.lanes=0x20000000,iC(null,s);if(aU(u),(s=rT)?null!==(s=null!==(s=uL(s,rO))&&"&"===s.data?s:null)&&(u.memoizedState={dehydrated:s,treeContext:null!==ry?{id:rv,overflow:rw}:null,retryLane:0x20000000,hydrationErrors:null},(c=rs(s)).return=u,u.child=c,rA=u,rT=null):s=null,null===s)throw rN(u);return u.lanes=0x20000000,null}return iO(u,d)}var p=s.memoizedState;if(null!==p){var m=p.dehydrated;if(aU(u),f)if(256&u.flags)u.flags&=-257,u=iL(s,u,c);else if(null!==u.memoizedState)u.child=s.child,u.flags|=128,u=null;else throw Error(l(558));else if(iS||rq(s,u,c,!1),f=0!=(c&s.childLanes),iS||f){if(null!==(d=lz)&&0!==(m=eO(d,c))&&m!==p.retryLane)throw p.retryLane=m,n5(s,m),ss(d,s,m),ik;sv(),u=iL(s,u,c)}else s=p.treeContext,rT=uR(m.nextSibling),rA=u,rC=!0,rP=null,rO=!1,null!==s&&r_(u,s),u=iO(u,d),u.flags|=4096;return u}return(s=rr(s.child,{mode:d.mode,children:d.children})).ref=u.ref,u.child=s,s.return=u,s;case 22:return iT(e,t,n,t.pendingProps);case 24:return rY(t),r=rK(r1),null===e?(null===(a=at())&&(a=lz,o=r2(),a.pooledCache=o,o.refCount++,null!==o&&(a.pooledCacheLanes|=n),a=o),t.memoizedState={parent:r,cache:a},ax(t),rU(t,r1,a)):(0!=(e.lanes&n)&&(aE(e,t),aL(t,null,null,n),aO()),a=e.memoizedState,o=t.memoizedState,a.parent!==r?(a={parent:r,cache:r},t.memoizedState=a,0===t.lanes&&(t.memoizedState=t.updateQueue.baseState=a),rU(t,r1,r)):(rU(t,r1,r=o.cache),r!==a.cache&&rW(t,[r1],n,!0))),ix(e,t,t.pendingProps.children,n),t.child;case 29:throw t.pendingProps}throw Error(l(156,t.tag))}function iQ(e){e.flags|=4}function iZ(e,t,n,r,a){if((t=0!=(32&e.mode))&&(t=!1),t){if(e.flags|=0x1000000,(0x13ffff40&a)===a)if(e.stateNode.complete)e.flags|=8192;else if(sg())e.flags|=8192;else throw ad=al,ao}else e.flags&=-0x1000001}function iX(e,t){if("stylesheet"!==t.type||0!=(4&t.state.loading))e.flags&=-0x1000001;else if(e.flags|=0x1000000,!u8(t))if(sg())e.flags|=8192;else throw ad=al,ao}function iJ(e,t){null!==t&&(e.flags|=4),16384&e.flags&&(t=22!==e.tag?e_():0x20000000,e.lanes|=t,lX|=t)}function i0(e,t){if(!rC)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 i1(e){var t=null!==e.alternate&&e.alternate.child===e.child,n=0,r=0;if(t)for(var a=e.child;null!==a;)n|=a.lanes|a.childLanes,r|=0x3e00000&a.subtreeFlags,r|=0x3e00000&a.flags,a.return=e,a=a.sibling;else for(a=e.child;null!==a;)n|=a.lanes|a.childLanes,r|=a.subtreeFlags,r|=a.flags,a.return=e,a=a.sibling;return e.subtreeFlags|=r,e.childLanes=n,t}function i2(e,t){switch(rE(t),t.tag){case 3:rH(r1),q();break;case 26:case 27:case 5:Y(t);break;case 4:q();break;case 31:null!==t.memoizedState&&aW(t);break;case 13:aW(t);break;case 19:M(aq);break;case 10:rH(t.type);break;case 22:case 23:aW(t),az(),null!==e&&M(ae);break;case 24:rH(r1)}}function i3(e,t){try{var n=t.updateQueue,r=null!==n?n.lastEffect:null;if(null!==r){var a=r.next;n=a;do{if((n.tag&e)===e){r=void 0;var o=n.create;n.inst.destroy=r=o()}n=n.next}while(n!==a)}}catch(e){sR(t,t.return,e)}}function i4(e,t,n){try{var r=t.updateQueue,a=null!==r?r.lastEffect:null;if(null!==a){var o=a.next;r=o;do{if((r.tag&e)===e){var i=r.inst,l=i.destroy;if(void 0!==l){i.destroy=void 0,a=t;try{l()}catch(e){sR(a,n,e)}}}r=r.next}while(r!==o)}}catch(e){sR(t,t.return,e)}}function i8(e){var t=e.updateQueue;if(null!==t){var n=e.stateNode;try{aj(t,n)}catch(t){sR(e,e.return,t)}}}function i5(e,t,n){n.props=id(e.type,e.memoizedProps),n.state=e.memoizedState;try{n.componentWillUnmount()}catch(n){sR(e,t,n)}}function i9(e,t){try{var n=e.ref;if(null!==n){switch(e.tag){case 26:case 27:case 5:var r=e.stateNode;break;default:r=e.stateNode}"function"==typeof n?e.refCleanup=n(r):n.current=r}}catch(n){sR(e,t,n)}}function i6(e,t){var n=e.ref,r=e.refCleanup;if(null!==n)if("function"==typeof r)try{r()}catch(n){sR(e,t,n)}finally{e.refCleanup=null,null!=(e=e.alternate)&&(e.refCleanup=null)}else if("function"==typeof n)try{n(null)}catch(n){sR(e,t,n)}else n.current=null}function i7(e){var t=e.type,n=e.memoizedProps,r=e.stateNode;try{switch(t){case"button":case"input":case"select":case"textarea":n.autoFocus&&r.focus();break;case"img":n.src?r.src=n.src:n.srcSet&&(r.srcset=n.srcSet)}}catch(t){sR(e,e.return,t)}}function le(e,t,n){try{var r=e.stateNode;(function(e,t,n,r){switch(t){case"div":case"span":case"svg":case"path":case"a":case"g":case"p":case"li":break;case"input":var a=null,o=null,i=null,s=null,u=null,c=null,d=null;for(m in n){var f=n[m];if(n.hasOwnProperty(m)&&null!=f)switch(m){case"checked":case"value":break;case"defaultValue":u=f;default:r.hasOwnProperty(m)||ud(e,t,m,null,r,f)}}for(var p in r){var m=r[p];if(f=n[p],r.hasOwnProperty(p)&&(null!=m||null!=f))switch(p){case"type":o=m;break;case"name":a=m;break;case"checked":c=m;break;case"defaultChecked":d=m;break;case"value":i=m;break;case"defaultValue":s=m;break;case"children":case"dangerouslySetInnerHTML":if(null!=m)throw Error(l(137,t));break;default:m!==f&&ud(e,t,p,m,r,f)}}tr(e,i,s,u,c,d,o,a);return;case"select":for(o in m=i=s=p=null,n)if(u=n[o],n.hasOwnProperty(o)&&null!=u)switch(o){case"value":break;case"multiple":m=u;default:r.hasOwnProperty(o)||ud(e,t,o,null,r,u)}for(a in r)if(o=r[a],u=n[a],r.hasOwnProperty(a)&&(null!=o||null!=u))switch(a){case"value":p=o;break;case"defaultValue":s=o;break;case"multiple":i=o;default:o!==u&&ud(e,t,a,o,r,u)}t=s,n=i,r=m,null!=p?ti(e,!!n,p,!1):!!r!=!!n&&(null!=t?ti(e,!!n,t,!0):ti(e,!!n,n?[]:"",!1));return;case"textarea":for(s in m=p=null,n)if(a=n[s],n.hasOwnProperty(s)&&null!=a&&!r.hasOwnProperty(s))switch(s){case"value":case"children":break;default:ud(e,t,s,null,r,a)}for(i in r)if(a=r[i],o=n[i],r.hasOwnProperty(i)&&(null!=a||null!=o))switch(i){case"value":p=a;break;case"defaultValue":m=a;break;case"children":break;case"dangerouslySetInnerHTML":if(null!=a)throw Error(l(91));break;default:a!==o&&ud(e,t,i,a,r,o)}tl(e,p,m);return;case"option":for(var h in n)p=n[h],n.hasOwnProperty(h)&&null!=p&&!r.hasOwnProperty(h)&&("selected"===h?e.selected=!1:ud(e,t,h,null,r,p));for(u in r)p=r[u],m=n[u],r.hasOwnProperty(u)&&p!==m&&(null!=p||null!=m)&&("selected"===u?e.selected=p&&"function"!=typeof p&&"symbol"!=typeof p:ud(e,t,u,p,r,m));return;case"img":case"link":case"area":case"base":case"br":case"col":case"embed":case"hr":case"keygen":case"meta":case"param":case"source":case"track":case"wbr":case"menuitem":for(var g in n)p=n[g],n.hasOwnProperty(g)&&null!=p&&!r.hasOwnProperty(g)&&ud(e,t,g,null,r,p);for(c in r)if(p=r[c],m=n[c],r.hasOwnProperty(c)&&p!==m&&(null!=p||null!=m))switch(c){case"children":case"dangerouslySetInnerHTML":if(null!=p)throw Error(l(137,t));break;default:ud(e,t,c,p,r,m)}return;default:if(tp(t)){for(var b in n)p=n[b],n.hasOwnProperty(b)&&void 0!==p&&!r.hasOwnProperty(b)&&uf(e,t,b,void 0,r,p);for(d in r)p=r[d],m=n[d],r.hasOwnProperty(d)&&p!==m&&(void 0!==p||void 0!==m)&&uf(e,t,d,p,r,m);return}}for(var y in n)p=n[y],n.hasOwnProperty(y)&&null!=p&&!r.hasOwnProperty(y)&&ud(e,t,y,null,r,p);for(f in r)p=r[f],m=n[f],r.hasOwnProperty(f)&&p!==m&&(null!=p||null!=m)&&ud(e,t,f,p,r,m)})(r,e.type,n,t),r[eF]=t}catch(t){sR(e,e.return,t)}}function lt(e){return 5===e.tag||3===e.tag||26===e.tag||27===e.tag&&uT(e.type)||4===e.tag}function ln(e){e:for(;;){for(;null===e.sibling;){if(null===e.return||lt(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;5!==e.tag&&6!==e.tag&&18!==e.tag;){if(27===e.tag&&uT(e.type)||2&e.flags||null===e.child||4===e.tag)continue e;e.child.return=e,e=e.child}if(!(2&e.flags))return e.stateNode}}function lr(e,t,n){var r=e.tag;if(5===r||6===r)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(4!==r&&(27===r&&uT(e.type)&&(n=e.stateNode),null!==(e=e.child)))for(lr(e,t,n),e=e.sibling;null!==e;)lr(e,t,n),e=e.sibling}function la(e){var t=e.stateNode,n=e.memoizedProps;try{for(var r=e.type,a=t.attributes;a.length;)t.removeAttributeNode(a[0]);up(t,r,n),t[eD]=e,t[eF]=n}catch(t){sR(e,e.return,t)}}var lo=!1,li=!1,ll=!1,ls="function"==typeof WeakSet?WeakSet:Set,lu=null;function lc(e,t,n){var r=n.flags;switch(n.tag){case 0:case 11:case 15:lS(e,n),4&r&&i3(5,n);break;case 1:if(lS(e,n),4&r)if(e=n.stateNode,null===t)try{e.componentDidMount()}catch(e){sR(n,n.return,e)}else{var a=id(n.type,t.memoizedProps);t=t.memoizedState;try{e.componentDidUpdate(a,t,e.__reactInternalSnapshotBeforeUpdate)}catch(e){sR(n,n.return,e)}}64&r&&i8(n),512&r&&i9(n,n.return);break;case 3:if(lS(e,n),64&r&&null!==(e=n.updateQueue)){if(t=null,null!==n.child)switch(n.child.tag){case 27:case 5:case 1:t=n.child.stateNode}try{aj(e,t)}catch(e){sR(n,n.return,e)}}break;case 27:null===t&&4&r&&la(n);case 26:case 5:lS(e,n),null===t&&4&r&&i7(n),512&r&&i9(n,n.return);break;case 12:default:lS(e,n);break;case 31:lS(e,n),4&r&&lh(e,n);break;case 13:lS(e,n),4&r&&lg(e,n),64&r&&null!==(e=n.memoizedState)&&null!==(e=e.dehydrated)&&function(e,t){var n=e.ownerDocument;if("$~"===e.data)e._reactRetry=t;else if("$?"!==e.data||"loading"!==n.readyState)t();else{var r=function(){t(),n.removeEventListener("DOMContentLoaded",r)};n.addEventListener("DOMContentLoaded",r),e._reactRetry=r}}(e,n=sz.bind(null,n));break;case 22:if(!(r=null!==n.memoizedState||lo)){t=null!==t&&null!==t.memoizedState||li,a=lo;var o=li;lo=r,(li=t)&&!o?function e(t,n,r){for(r=r&&0!=(8772&n.subtreeFlags),n=n.child;null!==n;){var a=n.alternate,o=t,i=n,l=i.flags;switch(i.tag){case 0:case 11:case 15:e(o,i,r),i3(4,i);break;case 1:if(e(o,i,r),"function"==typeof(o=(a=i).stateNode).componentDidMount)try{o.componentDidMount()}catch(e){sR(a,a.return,e)}if(null!==(o=(a=i).updateQueue)){var s=a.stateNode;try{var u=o.shared.hiddenCallbacks;if(null!==u)for(o.shared.hiddenCallbacks=null,o=0;o<u.length;o++)aN(u[o],s)}catch(e){sR(a,a.return,e)}}r&&64&l&&i8(i),i9(i,i.return);break;case 27:la(i);case 26:case 5:e(o,i,r),r&&null===a&&4&l&&i7(i),i9(i,i.return);break;case 12:default:e(o,i,r);break;case 31:e(o,i,r),r&&4&l&&lh(o,i);break;case 13:e(o,i,r),r&&4&l&&lg(o,i);break;case 22:null===i.memoizedState&&e(o,i,r),i9(i,i.return);case 30:}n=n.sibling}}(e,n,0!=(8772&n.subtreeFlags)):lS(e,n),lo=a,li=o}case 30:}}var ld=null,lf=!1;function lp(e,t,n){for(n=n.child;null!==n;)lm(e,t,n),n=n.sibling}function lm(e,t,n){if(em&&"function"==typeof em.onCommitFiberUnmount)try{em.onCommitFiberUnmount(ep,n)}catch(e){}switch(n.tag){case 26:li||i6(n,t),lp(e,t,n),n.memoizedState?n.memoizedState.count--:n.stateNode&&(n=n.stateNode).parentNode.removeChild(n);break;case 27:li||i6(n,t);var r=ld,a=lf;uT(n.type)&&(ld=n.stateNode,lf=!1),lp(e,t,n),uM(n.stateNode),ld=r,lf=a;break;case 5:li||i6(n,t);case 6:if(r=ld,a=lf,ld=null,lp(e,t,n),ld=r,lf=a,null!==ld)if(lf)try{(9===ld.nodeType?ld.body:"HTML"===ld.nodeName?ld.ownerDocument.body:ld).removeChild(n.stateNode)}catch(e){sR(n,t,e)}else try{ld.removeChild(n.stateNode)}catch(e){sR(n,t,e)}break;case 18:null!==ld&&(lf?(uC(9===(e=ld).nodeType?e.body:"HTML"===e.nodeName?e.ownerDocument.body:e,n.stateNode),cR(e)):uC(ld,n.stateNode));break;case 4:r=ld,a=lf,ld=n.stateNode.containerInfo,lf=!0,lp(e,t,n),ld=r,lf=a;break;case 0:case 11:case 14:case 15:i4(2,n,t),li||i4(4,n,t),lp(e,t,n);break;case 1:li||(i6(n,t),"function"==typeof(r=n.stateNode).componentWillUnmount&&i5(n,t,r)),lp(e,t,n);break;case 21:default:lp(e,t,n);break;case 22:li=(r=li)||null!==n.memoizedState,lp(e,t,n),li=r}}function lh(e,t){if(null===t.memoizedState&&null!==(e=t.alternate)&&null!==(e=e.memoizedState)){e=e.dehydrated;try{cR(e)}catch(e){sR(t,t.return,e)}}}function lg(e,t){if(null===t.memoizedState&&null!==(e=t.alternate)&&null!==(e=e.memoizedState)&&null!==(e=e.dehydrated))try{cR(e)}catch(e){sR(t,t.return,e)}}function lb(e,t){var n=function(e){switch(e.tag){case 31:case 13:case 19:var t=e.stateNode;return null===t&&(t=e.stateNode=new ls),t;case 22:return null===(t=(e=e.stateNode)._retryCache)&&(t=e._retryCache=new ls),t;default:throw Error(l(435,e.tag))}}(e);t.forEach(function(t){if(!n.has(t)){n.add(t);var r=sM.bind(null,e,t);t.then(r,r)}})}function ly(e,t){var n=t.deletions;if(null!==n)for(var r=0;r<n.length;r++){var a=n[r],o=e,i=t,s=i;e:for(;null!==s;){switch(s.tag){case 27:if(uT(s.type)){ld=s.stateNode,lf=!1;break e}break;case 5:ld=s.stateNode,lf=!1;break e;case 3:case 4:ld=s.stateNode.containerInfo,lf=!0;break e}s=s.return}if(null===ld)throw Error(l(160));lm(o,i,a),ld=null,lf=!1,null!==(o=a.alternate)&&(o.return=null),a.return=null}if(13886&t.subtreeFlags)for(t=t.child;null!==t;)lw(t,e),t=t.sibling}var lv=null;function lw(e,t){var n=e.alternate,r=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:ly(t,e),lk(e),4&r&&(i4(3,e,e.return),i3(3,e),i4(5,e,e.return));break;case 1:ly(t,e),lk(e),512&r&&(li||null===n||i6(n,n.return)),64&r&&lo&&null!==(e=e.updateQueue)&&null!==(r=e.callbacks)&&(n=e.shared.hiddenCallbacks,e.shared.hiddenCallbacks=null===n?r:n.concat(r));break;case 26:var a=lv;if(ly(t,e),lk(e),512&r&&(li||null===n||i6(n,n.return)),4&r){var o=null!==n?n.memoizedState:null;if(r=e.memoizedState,null===n)if(null===r)if(null===e.stateNode){e:{r=e.type,n=e.memoizedProps,a=a.ownerDocument||a;t:switch(r){case"title":(!(o=a.getElementsByTagName("title")[0])||o[eH]||o[eD]||"http://www.w3.org/2000/svg"===o.namespaceURI||o.hasAttribute("itemprop"))&&(o=a.createElement(r),a.head.insertBefore(o,a.querySelector("head > title"))),up(o,r,n),o[eD]=e,eK(o),r=o;break e;case"link":var i=u3("link","href",a).get(r+(n.href||""));if(i){for(var s=0;s<i.length;s++)if((o=i[s]).getAttribute("href")===(null==n.href||""===n.href?null:n.href)&&o.getAttribute("rel")===(null==n.rel?null:n.rel)&&o.getAttribute("title")===(null==n.title?null:n.title)&&o.getAttribute("crossorigin")===(null==n.crossOrigin?null:n.crossOrigin)){i.splice(s,1);break t}}up(o=a.createElement(r),r,n),a.head.appendChild(o);break;case"meta":if(i=u3("meta","content",a).get(r+(n.content||""))){for(s=0;s<i.length;s++)if((o=i[s]).getAttribute("content")===(null==n.content?null:""+n.content)&&o.getAttribute("name")===(null==n.name?null:n.name)&&o.getAttribute("property")===(null==n.property?null:n.property)&&o.getAttribute("http-equiv")===(null==n.httpEquiv?null:n.httpEquiv)&&o.getAttribute("charset")===(null==n.charSet?null:n.charSet)){i.splice(s,1);break t}}up(o=a.createElement(r),r,n),a.head.appendChild(o);break;default:throw Error(l(468,r))}o[eD]=e,eK(o),r=o}e.stateNode=r}else u4(a,e.type,e.stateNode);else e.stateNode=uX(a,r,e.memoizedProps);else o!==r?(null===o?null!==n.stateNode&&(n=n.stateNode).parentNode.removeChild(n):o.count--,null===r?u4(a,e.type,e.stateNode):uX(a,r,e.memoizedProps)):null===r&&null!==e.stateNode&&le(e,e.memoizedProps,n.memoizedProps)}break;case 27:ly(t,e),lk(e),512&r&&(li||null===n||i6(n,n.return)),null!==n&&4&r&&le(e,e.memoizedProps,n.memoizedProps);break;case 5:if(ly(t,e),lk(e),512&r&&(li||null===n||i6(n,n.return)),32&e.flags){a=e.stateNode;try{tu(a,"")}catch(t){sR(e,e.return,t)}}4&r&&null!=e.stateNode&&(a=e.memoizedProps,le(e,a,null!==n?n.memoizedProps:a)),1024&r&&(ll=!0);break;case 6:if(ly(t,e),lk(e),4&r){if(null===e.stateNode)throw Error(l(162));r=e.memoizedProps,n=e.stateNode;try{n.nodeValue=r}catch(t){sR(e,e.return,t)}}break;case 3:if(u2=null,a=lv,lv=uU(t.containerInfo),ly(t,e),lv=a,lk(e),4&r&&null!==n&&n.memoizedState.isDehydrated)try{cR(t.containerInfo)}catch(t){sR(e,e.return,t)}ll&&(ll=!1,function e(t){if(1024&t.subtreeFlags)for(t=t.child;null!==t;){var n=t;e(n),5===n.tag&&1024&n.flags&&n.stateNode.reset(),t=t.sibling}}(e));break;case 4:r=lv,lv=uU(e.stateNode.containerInfo),ly(t,e),lk(e),lv=r;break;case 12:default:ly(t,e),lk(e);break;case 31:case 19:ly(t,e),lk(e),4&r&&null!==(r=e.updateQueue)&&(e.updateQueue=null,lb(e,r));break;case 13:ly(t,e),lk(e),8192&e.child.flags&&null!==e.memoizedState!=(null!==n&&null!==n.memoizedState)&&(l2=ea()),4&r&&null!==(r=e.updateQueue)&&(e.updateQueue=null,lb(e,r));break;case 22:a=null!==e.memoizedState;var u=null!==n&&null!==n.memoizedState,c=lo,d=li;if(lo=c||a,li=d||u,ly(t,e),li=d,lo=c,lk(e),8192&r)e:for((t=e.stateNode)._visibility=a?-2&t._visibility:1|t._visibility,a&&(null===n||u||lo||li||function e(t){for(t=t.child;null!==t;){var n=t;switch(n.tag){case 0:case 11:case 14:case 15:i4(4,n,n.return),e(n);break;case 1:i6(n,n.return);var r=n.stateNode;"function"==typeof r.componentWillUnmount&&i5(n,n.return,r),e(n);break;case 27:uM(n.stateNode);case 26:case 5:i6(n,n.return),e(n);break;case 22:null===n.memoizedState&&e(n);break;default:e(n)}t=t.sibling}}(e)),n=null,t=e;;){if(5===t.tag||26===t.tag){if(null===n){u=n=t;try{if(o=u.stateNode,a)i=o.style,"function"==typeof i.setProperty?i.setProperty("display","none","important"):i.display="none";else{s=u.stateNode;var f=u.memoizedProps.style,p=null!=f&&f.hasOwnProperty("display")?f.display:null;s.style.display=null==p||"boolean"==typeof p?"":(""+p).trim()}}catch(e){sR(u,u.return,e)}}}else if(6===t.tag){if(null===n){u=t;try{u.stateNode.nodeValue=a?"":u.memoizedProps}catch(e){sR(u,u.return,e)}}}else if(18===t.tag){if(null===n){u=t;try{var m=u.stateNode;a?uP(m,!0):uP(u.stateNode,!1)}catch(e){sR(u,u.return,e)}}}else if((22!==t.tag&&23!==t.tag||null===t.memoizedState||t===e)&&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)break e;n===t&&(n=null),t=t.return}n===t&&(n=null),t.sibling.return=t.return,t=t.sibling}4&r&&null!==(r=e.updateQueue)&&null!==(n=r.retryQueue)&&(r.retryQueue=null,lb(e,n));case 30:case 21:}}function lk(e){var t=e.flags;if(2&t){try{for(var n,r=e.return;null!==r;){if(lt(r)){n=r;break}r=r.return}if(null==n)throw Error(l(160));switch(n.tag){case 27:var a=n.stateNode,o=ln(e);lr(e,o,a);break;case 5:var i=n.stateNode;32&n.flags&&(tu(i,""),n.flags&=-33);var s=ln(e);lr(e,s,i);break;case 3:case 4:var u=n.stateNode.containerInfo,c=ln(e);!function e(t,n,r){var a=t.tag;if(5===a||6===a)t=t.stateNode,n?(9===r.nodeType?r.body:"HTML"===r.nodeName?r.ownerDocument.body:r).insertBefore(t,n):((n=9===r.nodeType?r.body:"HTML"===r.nodeName?r.ownerDocument.body:r).appendChild(t),null!=(r=r._reactRootContainer)||null!==n.onclick||(n.onclick=tb));else if(4!==a&&(27===a&&uT(t.type)&&(r=t.stateNode,n=null),null!==(t=t.child)))for(e(t,n,r),t=t.sibling;null!==t;)e(t,n,r),t=t.sibling}(e,c,u);break;default:throw Error(l(161))}}catch(t){sR(e,e.return,t)}e.flags&=-3}4096&t&&(e.flags&=-4097)}function lS(e,t){if(8772&t.subtreeFlags)for(t=t.child;null!==t;)lc(e,t.alternate,t),t=t.sibling}function lx(e,t){var n=null;null!==e&&null!==e.memoizedState&&null!==e.memoizedState.cachePool&&(n=e.memoizedState.cachePool.pool),e=null,null!==t.memoizedState&&null!==t.memoizedState.cachePool&&(e=t.memoizedState.cachePool.pool),e!==n&&(null!=e&&e.refCount++,null!=n&&r3(n))}function lE(e,t){e=null,null!==t.alternate&&(e=t.alternate.memoizedState.cache),(t=t.memoizedState.cache)!==e&&(t.refCount++,null!=e&&r3(e))}function l_(e,t,n,r){if(10256&t.subtreeFlags)for(t=t.child;null!==t;)lA(e,t,n,r),t=t.sibling}function lA(e,t,n,r){var a=t.flags;switch(t.tag){case 0:case 11:case 15:l_(e,t,n,r),2048&a&&i3(9,t);break;case 1:case 31:case 13:default:l_(e,t,n,r);break;case 3:l_(e,t,n,r),2048&a&&(e=null,null!==t.alternate&&(e=t.alternate.memoizedState.cache),(t=t.memoizedState.cache)!==e&&(t.refCount++,null!=e&&r3(e)));break;case 12:if(2048&a){l_(e,t,n,r),e=t.stateNode;try{var o=t.memoizedProps,i=o.id,l=o.onPostCommit;"function"==typeof l&&l(i,null===t.alternate?"mount":"update",e.passiveEffectDuration,-0)}catch(e){sR(t,t.return,e)}}else l_(e,t,n,r);break;case 23:break;case 22:o=t.stateNode,i=t.alternate,null!==t.memoizedState?2&o._visibility?l_(e,t,n,r):lT(e,t):2&o._visibility?l_(e,t,n,r):(o._visibility|=2,function e(t,n,r,a,o){for(o=o&&0!=(10256&n.subtreeFlags),n=n.child;null!==n;){var i=n,l=i.flags;switch(i.tag){case 0:case 11:case 15:e(t,i,r,a,o),i3(8,i);break;case 23:break;case 22:var s=i.stateNode;null!==i.memoizedState?2&s._visibility?e(t,i,r,a,o):lT(t,i):(s._visibility|=2,e(t,i,r,a,o)),o&&2048&l&&lx(i.alternate,i);break;case 24:e(t,i,r,a,o),o&&2048&l&&lE(i.alternate,i);break;default:e(t,i,r,a,o)}n=n.sibling}}(e,t,n,r,0!=(10256&t.subtreeFlags))),2048&a&&lx(i,t);break;case 24:l_(e,t,n,r),2048&a&&lE(t.alternate,t)}}function lT(e,t){if(10256&t.subtreeFlags)for(t=t.child;null!==t;){var n=t,r=n.flags;switch(n.tag){case 22:lT(e,n),2048&r&&lx(n.alternate,n);break;case 24:lT(e,n),2048&r&&lE(n.alternate,n);break;default:lT(e,n)}t=t.sibling}}var lC=8192;function lP(e,t,n){if(e.subtreeFlags&lC)for(e=e.child;null!==e;)lO(e,t,n),e=e.sibling}function lO(e,t,n){switch(e.tag){case 26:lP(e,t,n),e.flags&lC&&null!==e.memoizedState&&function(e,t,n,r){if("stylesheet"===n.type&&("string"!=typeof r.media||!1!==matchMedia(r.media).matches)&&0==(4&n.state.loading)){if(null===n.instance){var a=uG(r.href),o=t.querySelector(uY(a));if(o){null!==(t=o._p)&&"object"==typeof t&&"function"==typeof t.then&&(e.count++,e=u9.bind(e),t.then(e,e)),n.state.loading|=4,n.instance=o,eK(o);return}o=t.ownerDocument||t,r=uK(r),(a=u$.get(a))&&u0(r,a),eK(o=o.createElement("link"));var i=o;i._p=new Promise(function(e,t){i.onload=e,i.onerror=t}),up(o,"link",r),n.instance=o}null===e.stylesheets&&(e.stylesheets=new Map),e.stylesheets.set(n,t),(t=n.state.preload)&&0==(3&n.state.loading)&&(e.count++,n=u9.bind(e),t.addEventListener("load",n),t.addEventListener("error",n))}}(n,lv,e.memoizedState,e.memoizedProps);break;case 5:default:lP(e,t,n);break;case 3:case 4:var r=lv;lv=uU(e.stateNode.containerInfo),lP(e,t,n),lv=r;break;case 22:null===e.memoizedState&&(null!==(r=e.alternate)&&null!==r.memoizedState?(r=lC,lC=0x1000000,lP(e,t,n),lC=r):lP(e,t,n))}}function lL(e){var t=e.alternate;if(null!==t&&null!==(e=t.child)){t.child=null;do t=e.sibling,e.sibling=null,e=t;while(null!==e)}}function lN(e){var t=e.deletions;if(0!=(16&e.flags)){if(null!==t)for(var n=0;n<t.length;n++){var r=t[n];lu=r,lR(r,e)}lL(e)}if(10256&e.subtreeFlags)for(e=e.child;null!==e;)lj(e),e=e.sibling}function lj(e){switch(e.tag){case 0:case 11:case 15:lN(e),2048&e.flags&&i4(9,e,e.return);break;case 3:case 12:default:lN(e);break;case 22:var t=e.stateNode;null!==e.memoizedState&&2&t._visibility&&(null===e.return||13!==e.return.tag)?(t._visibility&=-3,function e(t){var n=t.deletions;if(0!=(16&t.flags)){if(null!==n)for(var r=0;r<n.length;r++){var a=n[r];lu=a,lR(a,t)}lL(t)}for(t=t.child;null!==t;){switch((n=t).tag){case 0:case 11:case 15:i4(8,n,n.return),e(n);break;case 22:2&(r=n.stateNode)._visibility&&(r._visibility&=-3,e(n));break;default:e(n)}t=t.sibling}}(e)):lN(e)}}function lR(e,t){for(;null!==lu;){var n=lu;switch(n.tag){case 0:case 11:case 15:i4(8,n,t);break;case 23:case 22:if(null!==n.memoizedState&&null!==n.memoizedState.cachePool){var r=n.memoizedState.cachePool.pool;null!=r&&r.refCount++}break;case 24:r3(n.memoizedState.cache)}if(null!==(r=n.child))r.return=n,lu=r;else for(n=e;null!==lu;){var a=(r=lu).sibling,o=r.return;if(!function e(t){var n=t.alternate;null!==n&&(t.alternate=null,e(n)),t.child=null,t.deletions=null,t.sibling=null,5===t.tag&&null!==(n=t.stateNode)&&eV(n),t.stateNode=null,t.return=null,t.dependencies=null,t.memoizedProps=null,t.memoizedState=null,t.pendingProps=null,t.stateNode=null,t.updateQueue=null}(r),r===n){lu=null;break}if(null!==a){a.return=o,lu=a;break}lu=o}}}var lI={getCacheForType:function(e){var t=rK(r1),n=t.data.get(e);return void 0===n&&(n=e(),t.data.set(e,n)),n},cacheSignal:function(){return rK(r1).controller.signal}},lD="function"==typeof WeakMap?WeakMap:Map,lF=0,lz=null,lM=null,l$=0,lB=0,lU=null,lH=!1,lV=!1,lW=!1,lq=0,lG=0,lY=0,lK=0,lQ=0,lZ=0,lX=0,lJ=null,l0=null,l1=!1,l2=0,l3=0,l4=1/0,l8=null,l5=null,l9=0,l6=null,l7=null,se=0,st=0,sn=null,sr=null,sa=0,so=null;function si(){return 0!=(2&lF)&&0!==l$?l$&-l$:null!==j.T?sJ():ej()}function sl(){if(0===lZ)if(0==(0x20000000&l$)||rC){var e=ew;0==(3932160&(ew<<=1))&&(ew=262144),lZ=e}else lZ=0x20000000;return null!==(e=aM.current)&&(e.flags|=32),lZ}function ss(e,t,n){(e===lz&&(2===lB||9===lB)||null!==e.cancelPendingCommit)&&(sm(e,0),sd(e,l$,lZ,!1)),eT(e,n),(0==(2&lF)||e!==lz)&&(e===lz&&(0==(2&lF)&&(lK|=n),4===lG&&sd(e,l$,lZ,!1)),sq(e))}function su(e,t,n){if(0!=(6&lF))throw Error(l(327));for(var r=!n&&0==(127&t)&&0==(t&e.expiredLanes)||eE(e,t),a=r?function(e,t){var n=lF;lF|=2;var r=sb(),a=sy();lz!==e||l$!==t?(l8=null,l4=ea()+500,sm(e,t)):lV=eE(e,t);e:for(;;)try{if(0!==lB&&null!==lM){t=lM;var o=lU;t:switch(lB){case 1:lB=0,lU=null,sx(e,t,o,1);break;case 2:case 9:if(as(o)){lB=0,lU=null,sS(t);break}t=function(){2!==lB&&9!==lB||lz!==e||(lB=7),sq(e)},o.then(t,t);break e;case 3:lB=7;break e;case 4:lB=5;break e;case 7:as(o)?(lB=0,lU=null,sS(t)):(lB=0,lU=null,sx(e,t,o,7));break;case 5:var i=null;switch(lM.tag){case 26:i=lM.memoizedState;case 5:case 27:var s=lM;if(i?u8(i):s.stateNode.complete){lB=0,lU=null;var u=s.sibling;if(null!==u)lM=u;else{var c=s.return;null!==c?(lM=c,sE(c)):lM=null}break t}}lB=0,lU=null,sx(e,t,o,5);break;case 6:lB=0,lU=null,sx(e,t,o,6);break;case 8:sp(),lG=6;break e;default:throw Error(l(462))}}for(;null!==lM&&!en();)sk(lM);break}catch(t){sh(e,t)}return(rB=r$=null,j.H=r,j.A=a,lF=n,null!==lM)?0:(lz=null,l$=0,n3(),lG)}(e,t):sw(e,t,!0),o=r;;){if(0===a)lV&&!r&&sd(e,t,0,!1);else{if(n=e.current.alternate,o&&!function(e){for(var t=e;;){var n=t.tag;if((0===n||11===n||15===n)&&16384&t.flags&&null!==(n=t.updateQueue)&&null!==(n=n.stores))for(var r=0;r<n.length;r++){var a=n[r],o=a.getSnapshot;a=a.value;try{if(!nA(o(),a))return!1}catch(e){return!1}}if(n=t.child,16384&t.subtreeFlags&&null!==n)n.return=t,t=n;else{if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return!0;t=t.return}t.sibling.return=t.return,t=t.sibling}}return!0}(n)){a=sw(e,t,!1),o=!1;continue}if(2===a){if(o=t,e.errorRecoveryDisabledLanes&o)var i=0;else i=0!=(i=-0x20000001&e.pendingLanes)?i:0x20000000&i?0x20000000:0;if(0!==i){t=i;e:{a=lJ;var s=e.current.memoizedState.isDehydrated;if(s&&(sm(e,i).flags|=256),2!==(i=sw(e,i,!1))){if(lW&&!s){e.errorRecoveryDisabledLanes|=o,lK|=o,a=4;break e}o=l0,l0=a,null!==o&&(null===l0?l0=o:l0.push.apply(l0,o))}a=i}if(o=!1,2!==a)continue}}if(1===a){sm(e,0),sd(e,t,0,!0);break}e:{switch(r=e,o=a){case 0:case 1:throw Error(l(345));case 4:if((4194048&t)!==t)break;case 6:sd(r,t,lZ,!lH);break e;case 2:l0=null;break;case 3:case 5:break;default:throw Error(l(329))}if((0x3c00000&t)===t&&10<(a=l2+300-ea())){if(sd(r,t,lZ,!lH),0!==ex(r,0,!0))break e;se=t,r.timeoutHandle=uS(sc.bind(null,r,n,l0,l8,l1,t,lZ,lK,lX,lH,o,"Throttled",-0,0),a);break e}sc(r,n,l0,l8,l1,t,lZ,lK,lX,lH,o,null,-0,0)}}break}sq(e)}function sc(e,t,n,r,a,o,i,l,s,u,c,d,f,p){if(e.timeoutHandle=-1,8192&(d=t.subtreeFlags)||0x1002000==(0x1002000&d)){lO(t,o,d={stylesheets:null,count:0,imgCount:0,imgBytes:0,suspenseyImages:[],waitingForImages:!0,waitingForViewTransition:!1,unsuspend:tb});var m,h,g=(0x3c00000&o)===o?l2-ea():(4194048&o)===o?l3-ea():0;if(null!==(m=d,h=g,m.stylesheets&&0===m.count&&u7(m,m.stylesheets),g=0<m.count||0<m.imgCount?function(e){var t=setTimeout(function(){if(m.stylesheets&&u7(m,m.stylesheets),m.unsuspend){var e=m.unsuspend;m.unsuspend=null,e()}},6e4+h);0<m.imgBytes&&0===u5&&(u5=62500*function(){if("function"==typeof performance.getEntriesByType){for(var e=0,t=0,n=performance.getEntriesByType("resource"),r=0;r<n.length;r++){var a=n[r],o=a.transferSize,i=a.initiatorType,l=a.duration;if(o&&l&&um(i)){for(i=0,l=a.responseEnd,r+=1;r<n.length;r++){var s=n[r],u=s.startTime;if(u>l)break;var c=s.transferSize,d=s.initiatorType;c&&um(d)&&(i+=c*((s=s.responseEnd)<l?1:(l-u)/(s-u)))}if(--r,t+=8*(o+i)/(a.duration/1e3),10<++e)break}}if(0<e)return t/e/1e6}return navigator.connection&&"number"==typeof(e=navigator.connection.downlink)?e:5}());var n=setTimeout(function(){if(m.waitingForImages=!1,0===m.count&&(m.stylesheets&&u7(m,m.stylesheets),m.unsuspend)){var e=m.unsuspend;m.unsuspend=null,e()}},(m.imgBytes>u5?50:800)+h);return m.unsuspend=e,function(){m.unsuspend=null,clearTimeout(t),clearTimeout(n)}}:null)){se=o,e.cancelPendingCommit=g(sA.bind(null,e,t,o,n,r,a,i,l,s,c,d,null,f,p)),sd(e,o,i,!u);return}}sA(e,t,o,n,r,a,i,l,s)}function sd(e,t,n,r){t&=~lQ,t&=~lK,e.suspendedLanes|=t,e.pingedLanes&=~t,r&&(e.warmLanes|=t),r=e.expirationTimes;for(var a=t;0<a;){var o=31-eg(a),i=1<<o;r[o]=-1,a&=~i}0!==n&&eC(e,n,t)}function sf(){return 0!=(6&lF)||(sG(0,!1),!1)}function sp(){if(null!==lM){if(0===lB)var e=lM.return;else e=lM,rB=r$=null,or(e),am=null,ah=0,e=lM;for(;null!==e;)i2(e.alternate,e),e=e.return;lM=null}}function sm(e,t){var n=e.timeoutHandle;-1!==n&&(e.timeoutHandle=-1,ux(n)),null!==(n=e.cancelPendingCommit)&&(e.cancelPendingCommit=null,n()),se=0,sp(),lz=e,lM=n=rr(e.current,null),l$=t,lB=0,lU=null,lH=!1,lV=eE(e,t),lW=!1,lX=lZ=lQ=lK=lY=lG=0,l0=lJ=null,l1=!1,0!=(8&t)&&(t|=32&t);var r=e.entangledLanes;if(0!==r)for(e=e.entanglements,r&=t;0<r;){var a=31-eg(r),o=1<<a;t|=e[a],r&=~o}return lq=t,n3(),n}function sh(e,t){aK=null,j.H=ir,t===aa||t===ai?(t=af(),lB=3):t===ao?(t=af(),lB=4):lB=t===ik?8:null!==t&&"object"==typeof t&&"function"==typeof t.then?6:1,lU=t,null===lM&&(lG=1,ig(e,rd(t,e.current)))}function sg(){var e=aM.current;return null===e||((4194048&l$)===l$?null===a$:((0x3c00000&l$)===l$||0!=(0x20000000&l$))&&e===a$)}function sb(){var e=j.H;return j.H=ir,null===e?ir:e}function sy(){var e=j.A;return j.A=lI,e}function sv(){lG=4,lH||(4194048&l$)!==l$&&null!==aM.current||(lV=!0),0==(0x7ffffff&lY)&&0==(0x7ffffff&lK)||null===lz||sd(lz,l$,lZ,!1)}function sw(e,t,n){var r=lF;lF|=2;var a=sb(),o=sy();(lz!==e||l$!==t)&&(l8=null,sm(e,t)),t=!1;var i=lG;e:for(;;)try{if(0!==lB&&null!==lM){var l=lM,s=lU;switch(lB){case 8:sp(),i=6;break e;case 3:case 2:case 9:case 6:null===aM.current&&(t=!0);var u=lB;if(lB=0,lU=null,sx(e,l,s,u),n&&lV){i=0;break e}break;default:u=lB,lB=0,lU=null,sx(e,l,s,u)}}(function(){for(;null!==lM;)sk(lM)})(),i=lG;break}catch(t){sh(e,t)}return t&&e.shellSuspendCounter++,rB=r$=null,lF=r,j.H=a,j.A=o,null===lM&&(lz=null,l$=0,n3()),i}function sk(e){var t=iK(e.alternate,e,lq);e.memoizedProps=e.pendingProps,null===t?sE(e):lM=t}function sS(e){var t=e,n=t.alternate;switch(t.tag){case 15:case 0:t=iR(n,t,t.pendingProps,t.type,void 0,l$);break;case 11:t=iR(n,t,t.pendingProps,t.type.render,t.ref,l$);break;case 5:or(t);default:i2(n,t),t=iK(n,t=lM=ra(t,lq),lq)}e.memoizedProps=e.pendingProps,null===t?sE(e):lM=t}function sx(e,t,n,r){rB=r$=null,or(t),am=null,ah=0;var a=t.return;try{if(function(e,t,n,r,a){if(n.flags|=32768,null!==r&&"object"==typeof r&&"function"==typeof r.then){if(null!==(t=n.alternate)&&rq(t,n,a,!0),null!==(n=aM.current)){switch(n.tag){case 31:case 13:return null===a$?sv():null===n.alternate&&0===lG&&(lG=3),n.flags&=-257,n.flags|=65536,n.lanes=a,r===al?n.flags|=16384:(null===(t=n.updateQueue)?n.updateQueue=new Set([r]):t.add(r),sI(e,r,a)),!1;case 22:return n.flags|=65536,r===al?n.flags|=16384:(null===(t=n.updateQueue)?(t={transitions:null,markerInstances:null,retryQueue:new Set([r])},n.updateQueue=t):null===(n=t.retryQueue)?t.retryQueue=new Set([r]):n.add(r),sI(e,r,a)),!1}throw Error(l(435,n.tag))}return sI(e,r,a),sv(),!1}if(rC)return null!==(t=aM.current)?(0==(65536&t.flags)&&(t.flags|=256),t.flags|=65536,t.lanes=a,r!==rL&&rz(rd(e=Error(l(422),{cause:r}),n))):(r!==rL&&rz(rd(t=Error(l(423),{cause:r}),n)),e=e.current.alternate,e.flags|=65536,a&=-a,e.lanes|=a,r=rd(r,n),a=iy(e.stateNode,r,a),aC(e,a),4!==lG&&(lG=2)),!1;var o=Error(l(520),{cause:r});if(o=rd(o,n),null===lJ?lJ=[o]:lJ.push(o),4!==lG&&(lG=2),null===t)return!0;r=rd(r,n),n=t;do{switch(n.tag){case 3:return n.flags|=65536,e=a&-a,n.lanes|=e,e=iy(n.stateNode,r,e),aC(n,e),!1;case 1:if(t=n.type,o=n.stateNode,0==(128&n.flags)&&("function"==typeof t.getDerivedStateFromError||null!==o&&"function"==typeof o.componentDidCatch&&(null===l5||!l5.has(o))))return n.flags|=65536,a&=-a,n.lanes|=a,iw(a=iv(a),e,n,r),aC(n,a),!1}n=n.return}while(null!==n)return!1}(e,a,t,n,l$)){lG=1,ig(e,rd(n,e.current)),lM=null;return}}catch(t){if(null!==a)throw lM=a,t;lG=1,ig(e,rd(n,e.current)),lM=null;return}32768&t.flags?(rC||1===r?e=!0:lV||0!=(0x20000000&l$)?e=!1:(lH=e=!0,(2===r||9===r||3===r||6===r)&&null!==(r=aM.current)&&13===r.tag&&(r.flags|=16384)),s_(t,e)):sE(t)}function sE(e){var t=e;do{if(0!=(32768&t.flags))return void s_(t,lH);e=t.return;var n=function(e,t,n){var r=t.pendingProps;switch(rE(t),t.tag){case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:case 1:return i1(t),null;case 3:return n=t.stateNode,r=null,null!==e&&(r=e.memoizedState.cache),t.memoizedState.cache!==r&&(t.flags|=2048),rH(r1),q(),n.pendingContext&&(n.context=n.pendingContext,n.pendingContext=null),(null===e||null===e.child)&&(rI(t)?iQ(t):null===e||e.memoizedState.isDehydrated&&0==(256&t.flags)||(t.flags|=1024,rF())),i1(t),null;case 26:var a=t.type,o=t.memoizedState;return null===e?(iQ(t),null!==o?(i1(t),iX(t,o)):(i1(t),iZ(t,a,null,r,n))):o?o!==e.memoizedState?(iQ(t),i1(t),iX(t,o)):(i1(t),t.flags&=-0x1000001):((e=e.memoizedProps)!==r&&iQ(t),i1(t),iZ(t,a,e,r,n)),null;case 27:if(Y(t),n=H.current,a=t.type,null!==e&&null!=t.stateNode)e.memoizedProps!==r&&iQ(t);else{if(!r){if(null===t.stateNode)throw Error(l(166));return i1(t),null}e=B.current,rI(t)?rj(t,e):(t.stateNode=e=uz(a,r,n),iQ(t))}return i1(t),null;case 5:if(Y(t),a=t.type,null!==e&&null!=t.stateNode)e.memoizedProps!==r&&iQ(t);else{if(!r){if(null===t.stateNode)throw Error(l(166));return i1(t),null}if(o=B.current,rI(t))rj(t,o);else{var i=ub(H.current);switch(o){case 1:o=i.createElementNS("http://www.w3.org/2000/svg",a);break;case 2:o=i.createElementNS("http://www.w3.org/1998/Math/MathML",a);break;default:switch(a){case"svg":o=i.createElementNS("http://www.w3.org/2000/svg",a);break;case"math":o=i.createElementNS("http://www.w3.org/1998/Math/MathML",a);break;case"script":(o=i.createElement("div")).innerHTML="<script><\/script>",o=o.removeChild(o.firstChild);break;case"select":o="string"==typeof r.is?i.createElement("select",{is:r.is}):i.createElement("select"),r.multiple?o.multiple=!0:r.size&&(o.size=r.size);break;default:o="string"==typeof r.is?i.createElement(a,{is:r.is}):i.createElement(a)}}o[eD]=t,o[eF]=r;e:for(i=t.child;null!==i;){if(5===i.tag||6===i.tag)o.appendChild(i.stateNode);else if(4!==i.tag&&27!==i.tag&&null!==i.child){i.child.return=i,i=i.child;continue}if(i===t)break;for(;null===i.sibling;){if(null===i.return||i.return===t)break e;i=i.return}i.sibling.return=i.return,i=i.sibling}switch(t.stateNode=o,up(o,a,r),a){case"button":case"input":case"select":case"textarea":r=!!r.autoFocus;break;case"img":r=!0;break;default:r=!1}r&&iQ(t)}}return i1(t),iZ(t,t.type,null===e?null:e.memoizedProps,t.pendingProps,n),null;case 6:if(e&&null!=t.stateNode)e.memoizedProps!==r&&iQ(t);else{if("string"!=typeof r&&null===t.stateNode)throw Error(l(166));if(e=H.current,rI(t)){if(e=t.stateNode,n=t.memoizedProps,r=null,null!==(a=rA))switch(a.tag){case 27:case 5:r=a.memoizedProps}e[eD]=t,(e=!!(e.nodeValue===n||null!==r&&!0===r.suppressHydrationWarning||uc(e.nodeValue,n)))||rN(t,!0)}else(e=ub(e).createTextNode(r))[eD]=t,t.stateNode=e}return i1(t),null;case 31:if(n=t.memoizedState,null===e||null!==e.memoizedState){if(r=rI(t),null!==n){if(null===e){if(!r)throw Error(l(318));if(!(e=null!==(e=t.memoizedState)?e.dehydrated:null))throw Error(l(557));e[eD]=t}else rD(),0==(128&t.flags)&&(t.memoizedState=null),t.flags|=4;i1(t),e=!1}else n=rF(),null!==e&&null!==e.memoizedState&&(e.memoizedState.hydrationErrors=n),e=!0;if(!e){if(256&t.flags)return aW(t),t;return aW(t),null}if(0!=(128&t.flags))throw Error(l(558))}return i1(t),null;case 13:if(r=t.memoizedState,null===e||null!==e.memoizedState&&null!==e.memoizedState.dehydrated){if(a=rI(t),null!==r&&null!==r.dehydrated){if(null===e){if(!a)throw Error(l(318));if(!(a=null!==(a=t.memoizedState)?a.dehydrated:null))throw Error(l(317));a[eD]=t}else rD(),0==(128&t.flags)&&(t.memoizedState=null),t.flags|=4;i1(t),a=!1}else a=rF(),null!==e&&null!==e.memoizedState&&(e.memoizedState.hydrationErrors=a),a=!0;if(!a){if(256&t.flags)return aW(t),t;return aW(t),null}}if(aW(t),0!=(128&t.flags))return t.lanes=n,t;return n=null!==r,e=null!==e&&null!==e.memoizedState,n&&(r=t.child,a=null,null!==r.alternate&&null!==r.alternate.memoizedState&&null!==r.alternate.memoizedState.cachePool&&(a=r.alternate.memoizedState.cachePool.pool),o=null,null!==r.memoizedState&&null!==r.memoizedState.cachePool&&(o=r.memoizedState.cachePool.pool),o!==a&&(r.flags|=2048)),n!==e&&n&&(t.child.flags|=8192),iJ(t,t.updateQueue),i1(t),null;case 4:return q(),null===e&&ue(t.stateNode.containerInfo),i1(t),null;case 10:return rH(t.type),i1(t),null;case 19:if(M(aq),null===(r=t.memoizedState))return i1(t),null;if(a=0!=(128&t.flags),null===(o=r.rendering))if(a)i0(r,!1);else{if(0!==lG||null!==e&&0!=(128&e.flags))for(e=t.child;null!==e;){if(null!==(o=aG(e))){for(t.flags|=128,i0(r,!1),t.updateQueue=e=o.updateQueue,iJ(t,e),t.subtreeFlags=0,e=n,n=t.child;null!==n;)ra(n,e),n=n.sibling;return $(aq,1&aq.current|2),rC&&rk(t,r.treeForkCount),t.child}e=e.sibling}null!==r.tail&&ea()>l4&&(t.flags|=128,a=!0,i0(r,!1),t.lanes=4194304)}else{if(!a)if(null!==(e=aG(o))){if(t.flags|=128,a=!0,t.updateQueue=e=e.updateQueue,iJ(t,e),i0(r,!0),null===r.tail&&"hidden"===r.tailMode&&!o.alternate&&!rC)return i1(t),null}else 2*ea()-r.renderingStartTime>l4&&0x20000000!==n&&(t.flags|=128,a=!0,i0(r,!1),t.lanes=4194304);r.isBackwards?(o.sibling=t.child,t.child=o):(null!==(e=r.last)?e.sibling=o:t.child=o,r.last=o)}if(null!==r.tail)return e=r.tail,r.rendering=e,r.tail=e.sibling,r.renderingStartTime=ea(),e.sibling=null,n=aq.current,$(aq,a?1&n|2:1&n),rC&&rk(t,r.treeForkCount),e;return i1(t),null;case 22:case 23:return aW(t),az(),r=null!==t.memoizedState,null!==e?null!==e.memoizedState!==r&&(t.flags|=8192):r&&(t.flags|=8192),r?0!=(0x20000000&n)&&0==(128&t.flags)&&(i1(t),6&t.subtreeFlags&&(t.flags|=8192)):i1(t),null!==(n=t.updateQueue)&&iJ(t,n.retryQueue),n=null,null!==e&&null!==e.memoizedState&&null!==e.memoizedState.cachePool&&(n=e.memoizedState.cachePool.pool),r=null,null!==t.memoizedState&&null!==t.memoizedState.cachePool&&(r=t.memoizedState.cachePool.pool),r!==n&&(t.flags|=2048),null!==e&&M(ae),null;case 24:return n=null,null!==e&&(n=e.memoizedState.cache),t.memoizedState.cache!==n&&(t.flags|=2048),rH(r1),i1(t),null;case 25:case 30:return null}throw Error(l(156,t.tag))}(t.alternate,t,lq);if(null!==n){lM=n;return}if(null!==(t=t.sibling)){lM=t;return}lM=t=e}while(null!==t)0===lG&&(lG=5)}function s_(e,t){do{var n=function(e,t){switch(rE(t),t.tag){case 1:return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 3:return rH(r1),q(),0!=(65536&(e=t.flags))&&0==(128&e)?(t.flags=-65537&e|128,t):null;case 26:case 27:case 5:return Y(t),null;case 31:if(null!==t.memoizedState){if(aW(t),null===t.alternate)throw Error(l(340));rD()}return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 13:if(aW(t),null!==(e=t.memoizedState)&&null!==e.dehydrated){if(null===t.alternate)throw Error(l(340));rD()}return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 19:return M(aq),null;case 4:return q(),null;case 10:return rH(t.type),null;case 22:case 23:return aW(t),az(),null!==e&&M(ae),65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 24:return rH(r1),null;default:return null}}(e.alternate,e);if(null!==n){n.flags&=32767,lM=n;return}if(null!==(n=e.return)&&(n.flags|=32768,n.subtreeFlags=0,n.deletions=null),!t&&null!==(e=e.sibling)){lM=e;return}lM=e=n}while(null!==e)lG=6,lM=null}function sA(e,t,n,r,a,o,i,s,u){e.cancelPendingCommit=null;do sL();while(0!==l9)if(0!=(6&lF))throw Error(l(327));if(null!==t){if(t===e.current)throw Error(l(177));if(!function(e,t,n,r,a,o){var i=e.pendingLanes;e.pendingLanes=n,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=n,e.entangledLanes&=n,e.errorRecoveryDisabledLanes&=n,e.shellSuspendCounter=0;var l=e.entanglements,s=e.expirationTimes,u=e.hiddenUpdates;for(n=i&~n;0<n;){var c=31-eg(n),d=1<<c;l[c]=0,s[c]=-1;var f=u[c];if(null!==f)for(u[c]=null,c=0;c<f.length;c++){var p=f[c];null!==p&&(p.lane&=-0x20000001)}n&=~d}0!==r&&eC(e,r,0),0!==o&&0===a&&0!==e.tag&&(e.suspendedLanes|=o&~(i&~t))}(e,n,o=t.lanes|t.childLanes|n2,i,s,u),e===lz&&(lM=lz=null,l$=0),l7=t,l6=e,se=n,st=o,sn=a,sr=r,0!=(10256&t.subtreeFlags)||0!=(10256&t.flags)?(e.callbackNode=null,e.callbackPriority=0,ee(es,function(){return sN(),null})):(e.callbackNode=null,e.callbackPriority=0),r=0!=(13878&t.flags),0!=(13878&t.subtreeFlags)||r){r=j.T,j.T=null,a=R.p,R.p=2,i=lF,lF|=4;try{!function(e,t){if(e=e.containerInfo,uh=cu,nL(e=nO(e))){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{var r=(n=(n=e.ownerDocument)&&n.defaultView||window).getSelection&&n.getSelection();if(r&&0!==r.rangeCount){n=r.anchorNode;var a,o=r.anchorOffset,i=r.focusNode;r=r.focusOffset;try{n.nodeType,i.nodeType}catch(e){n=null;break e}var s=0,u=-1,c=-1,d=0,f=0,p=e,m=null;t:for(;;){for(;p!==n||0!==o&&3!==p.nodeType||(u=s+o),p!==i||0!==r&&3!==p.nodeType||(c=s+r),3===p.nodeType&&(s+=p.nodeValue.length),null!==(a=p.firstChild);)m=p,p=a;for(;;){if(p===e)break t;if(m===n&&++d===o&&(u=s),m===i&&++f===r&&(c=s),null!==(a=p.nextSibling))break;m=(p=m).parentNode}p=a}n=-1===u||-1===c?null:{start:u,end:c}}else n=null}n=n||{start:0,end:0}}else n=null;for(ug={focusedElem:e,selectionRange:n},cu=!1,lu=t;null!==lu;)if(e=(t=lu).child,0!=(1028&t.subtreeFlags)&&null!==e)e.return=t,lu=e;else for(;null!==lu;){switch(i=(t=lu).alternate,e=t.flags,t.tag){case 0:if(0!=(4&e)&&null!==(e=null!==(e=t.updateQueue)?e.events:null))for(n=0;n<e.length;n++)(o=e[n]).ref.impl=o.nextImpl;break;case 11:case 15:case 5:case 26:case 27:case 6:case 4:case 17:break;case 1:if(0!=(1024&e)&&null!==i){e=void 0,n=t,o=i.memoizedProps,i=i.memoizedState,r=n.stateNode;try{var h=id(n.type,o);e=r.getSnapshotBeforeUpdate(h,i),r.__reactInternalSnapshotBeforeUpdate=e}catch(e){sR(n,n.return,e)}}break;case 3:if(0!=(1024&e)){if(9===(n=(e=t.stateNode.containerInfo).nodeType))uO(e);else if(1===n)switch(e.nodeName){case"HEAD":case"HTML":case"BODY":uO(e);break;default:e.textContent=""}}break;default:if(0!=(1024&e))throw Error(l(163))}if(null!==(e=t.sibling)){e.return=t.return,lu=e;break}lu=t.return}}(e,t)}finally{lF=i,R.p=a,j.T=r}}l9=1,sT(),sC(),sP()}}function sT(){if(1===l9){l9=0;var e=l6,t=l7,n=0!=(13878&t.flags);if(0!=(13878&t.subtreeFlags)||n){n=j.T,j.T=null;var r=R.p;R.p=2;var a=lF;lF|=4;try{lw(t,e);var o=ug,i=nO(e.containerInfo),l=o.focusedElem,s=o.selectionRange;if(i!==l&&l&&l.ownerDocument&&function e(t,n){return!!t&&!!n&&(t===n||(!t||3!==t.nodeType)&&(n&&3===n.nodeType?e(t,n.parentNode):"contains"in t?t.contains(n):!!t.compareDocumentPosition&&!!(16&t.compareDocumentPosition(n))))}(l.ownerDocument.documentElement,l)){if(null!==s&&nL(l)){var u=s.start,c=s.end;if(void 0===c&&(c=u),"selectionStart"in l)l.selectionStart=u,l.selectionEnd=Math.min(c,l.value.length);else{var d=l.ownerDocument||document,f=d&&d.defaultView||window;if(f.getSelection){var p=f.getSelection(),m=l.textContent.length,h=Math.min(s.start,m),g=void 0===s.end?h:Math.min(s.end,m);!p.extend&&h>g&&(i=g,g=h,h=i);var b=nP(l,h),y=nP(l,g);if(b&&y&&(1!==p.rangeCount||p.anchorNode!==b.node||p.anchorOffset!==b.offset||p.focusNode!==y.node||p.focusOffset!==y.offset)){var v=d.createRange();v.setStart(b.node,b.offset),p.removeAllRanges(),h>g?(p.addRange(v),p.extend(y.node,y.offset)):(v.setEnd(y.node,y.offset),p.addRange(v))}}}}for(d=[],p=l;p=p.parentNode;)1===p.nodeType&&d.push({element:p,left:p.scrollLeft,top:p.scrollTop});for("function"==typeof l.focus&&l.focus(),l=0;l<d.length;l++){var w=d[l];w.element.scrollLeft=w.left,w.element.scrollTop=w.top}}cu=!!uh,ug=uh=null}finally{lF=a,R.p=r,j.T=n}}e.current=t,l9=2}}function sC(){if(2===l9){l9=0;var e=l6,t=l7,n=0!=(8772&t.flags);if(0!=(8772&t.subtreeFlags)||n){n=j.T,j.T=null;var r=R.p;R.p=2;var a=lF;lF|=4;try{lc(e,t.alternate,t)}finally{lF=a,R.p=r,j.T=n}}l9=3}}function sP(){if(4===l9||3===l9){l9=0,er();var e=l6,t=l7,n=se,r=sr;0!=(10256&t.subtreeFlags)||0!=(10256&t.flags)?l9=5:(l9=0,l7=l6=null,sO(e,e.pendingLanes));var a=e.pendingLanes;if(0===a&&(l5=null),eN(n),t=t.stateNode,em&&"function"==typeof em.onCommitFiberRoot)try{em.onCommitFiberRoot(ep,t,void 0,128==(128&t.current.flags))}catch(e){}if(null!==r){t=j.T,a=R.p,R.p=2,j.T=null;try{for(var o=e.onRecoverableError,i=0;i<r.length;i++){var l=r[i];o(l.value,{componentStack:l.stack})}}finally{j.T=t,R.p=a}}0!=(3&se)&&sL(),sq(e),a=e.pendingLanes,0!=(261930&n)&&0!=(42&a)?e===so?sa++:(sa=0,so=e):sa=0,sG(0,!1)}}function sO(e,t){0==(e.pooledCacheLanes&=t)&&null!=(t=e.pooledCache)&&(e.pooledCache=null,r3(t))}function sL(){return sT(),sC(),sP(),sN()}function sN(){if(5!==l9)return!1;var e=l6,t=st;st=0;var n=eN(se),r=j.T,a=R.p;try{R.p=32>n?32:n,j.T=null,n=sn,sn=null;var o=l6,i=se;if(l9=0,l7=l6=null,se=0,0!=(6&lF))throw Error(l(331));var s=lF;if(lF|=4,lj(o.current),lA(o,o.current,i,n),lF=s,sG(0,!1),em&&"function"==typeof em.onPostCommitFiberRoot)try{em.onPostCommitFiberRoot(ep,o)}catch(e){}return!0}finally{R.p=a,j.T=r,sO(e,t)}}function sj(e,t,n){t=rd(n,t),t=iy(e.stateNode,t,2),null!==(e=aA(e,t,2))&&(eT(e,2),sq(e))}function sR(e,t,n){if(3===e.tag)sj(e,e,n);else for(;null!==t;){if(3===t.tag){sj(t,e,n);break}if(1===t.tag){var r=t.stateNode;if("function"==typeof t.type.getDerivedStateFromError||"function"==typeof r.componentDidCatch&&(null===l5||!l5.has(r))){e=rd(n,e),null!==(r=aA(t,n=iv(2),2))&&(iw(n,r,t,e),eT(r,2),sq(r));break}}t=t.return}}function sI(e,t,n){var r=e.pingCache;if(null===r){r=e.pingCache=new lD;var a=new Set;r.set(t,a)}else void 0===(a=r.get(t))&&(a=new Set,r.set(t,a));a.has(n)||(lW=!0,a.add(n),e=sD.bind(null,e,t,n),t.then(e,e))}function sD(e,t,n){var r=e.pingCache;null!==r&&r.delete(t),e.pingedLanes|=e.suspendedLanes&n,e.warmLanes&=~n,lz===e&&(l$&n)===n&&(4===lG||3===lG&&(0x3c00000&l$)===l$&&300>ea()-l2?0==(2&lF)&&sm(e,0):lQ|=n,lX===l$&&(lX=0)),sq(e)}function sF(e,t){0===t&&(t=e_()),null!==(e=n5(e,t))&&(eT(e,t),sq(e))}function sz(e){var t=e.memoizedState,n=0;null!==t&&(n=t.retryLane),sF(e,n)}function sM(e,t){var n=0;switch(e.tag){case 31:case 13:var r=e.stateNode,a=e.memoizedState;null!==a&&(n=a.retryLane);break;case 19:r=e.stateNode;break;case 22:r=e.stateNode._retryCache;break;default:throw Error(l(314))}null!==r&&r.delete(t),sF(e,n)}var s$=null,sB=null,sU=!1,sH=!1,sV=!1,sW=0;function sq(e){e!==sB&&null===e.next&&(null===sB?s$=sB=e:sB=sB.next=e),sH=!0,sU||(sU=!0,u_(function(){0!=(6&lF)?ee(ei,sY):sK()}))}function sG(e,t){if(!sV&&sH){sV=!0;do for(var n=!1,r=s$;null!==r;){if(!t)if(0!==e){var a=r.pendingLanes;if(0===a)var o=0;else{var i=r.suspendedLanes,l=r.pingedLanes;o=0xc000095&(o=(1<<31-eg(42|e)+1)-1&(a&~(i&~l)))?0xc000095&o|1:o?2|o:0}0!==o&&(n=!0,sX(r,o))}else o=l$,0==(3&(o=ex(r,r===lz?o:0,null!==r.cancelPendingCommit||-1!==r.timeoutHandle)))||eE(r,o)||(n=!0,sX(r,o));r=r.next}while(n)sV=!1}}function sY(){sK()}function sK(){sH=sU=!1;var e,t=0;0===sW||((e=window.event)&&"popstate"===e.type?e===uk||(uk=e,0):(uk=null,1))||(t=sW);for(var n=ea(),r=null,a=s$;null!==a;){var o=a.next,i=sQ(a,n);0===i?(a.next=null,null===r?s$=o:r.next=o,null===o&&(sB=r)):(r=a,(0!==t||0!=(3&i))&&(sH=!0)),a=o}0!==l9&&5!==l9||sG(t,!1),0!==sW&&(sW=0)}function sQ(e,t){for(var n=e.suspendedLanes,r=e.pingedLanes,a=e.expirationTimes,o=-0x3c00001&e.pendingLanes;0<o;){var i=31-eg(o),l=1<<i,s=a[i];-1===s?(0==(l&n)||0!=(l&r))&&(a[i]=function(e,t){switch(e){case 1:case 2:case 4:case 8:case 64:return t+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;default:return -1}}(l,t)):s<=t&&(e.expiredLanes|=l),o&=~l}if(t=lz,n=l$,n=ex(e,e===t?n:0,null!==e.cancelPendingCommit||-1!==e.timeoutHandle),r=e.callbackNode,0===n||e===t&&(2===lB||9===lB)||null!==e.cancelPendingCommit)return null!==r&&null!==r&&et(r),e.callbackNode=null,e.callbackPriority=0;if(0==(3&n)||eE(e,n)){if((t=n&-n)===e.callbackPriority)return t;switch(null!==r&&et(r),eN(n)){case 2:case 8:n=el;break;case 32:default:n=es;break;case 0x10000000:n=ec}return n=ee(n,r=sZ.bind(null,e)),e.callbackPriority=t,e.callbackNode=n,t}return null!==r&&null!==r&&et(r),e.callbackPriority=2,e.callbackNode=null,2}function sZ(e,t){if(0!==l9&&5!==l9)return e.callbackNode=null,e.callbackPriority=0,null;var n=e.callbackNode;if(sL()&&e.callbackNode!==n)return null;var r=l$;return 0===(r=ex(e,e===lz?r:0,null!==e.cancelPendingCommit||-1!==e.timeoutHandle))?null:(su(e,r,t),sQ(e,ea()),null!=e.callbackNode&&e.callbackNode===n?sZ.bind(null,e):null)}function sX(e,t){if(sL())return null;su(e,t,!0)}function sJ(){if(0===sW){var e=r5;0===e&&(e=ev,0==(261888&(ev<<=1))&&(ev=256)),sW=e}return sW}function s0(e){return null==e||"symbol"==typeof e||"boolean"==typeof e?null:"function"==typeof e?e:tg(""+e)}function s1(e,t){var n=t.ownerDocument.createElement("input");return n.name=t.name,n.value=t.value,e.id&&n.setAttribute("form",e.id),t.parentNode.insertBefore(n,t),e=new FormData(e),n.parentNode.removeChild(n),e}for(var s2=0;s2<nZ.length;s2++){var s3=nZ[s2];nX(s3.toLowerCase(),"on"+(s3[0].toUpperCase()+s3.slice(1)))}nX(nH,"onAnimationEnd"),nX(nV,"onAnimationIteration"),nX(nW,"onAnimationStart"),nX("dblclick","onDoubleClick"),nX("focusin","onFocus"),nX("focusout","onBlur"),nX(nq,"onTransitionRun"),nX(nG,"onTransitionStart"),nX(nY,"onTransitionCancel"),nX(nK,"onTransitionEnd"),eJ("onMouseEnter",["mouseout","mouseover"]),eJ("onMouseLeave",["mouseout","mouseover"]),eJ("onPointerEnter",["pointerout","pointerover"]),eJ("onPointerLeave",["pointerout","pointerover"]),eX("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),eX("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),eX("onBeforeInput",["compositionend","keypress","textInput","paste"]),eX("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),eX("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),eX("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var s4="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),s8=new Set("beforetoggle cancel close invalid load scroll scrollend toggle".split(" ").concat(s4));function s5(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],s=l.instance,u=l.currentTarget;if(l=l.listener,s!==o&&a.isPropagationStopped())break e;o=l,a.currentTarget=u;try{o(a)}catch(e){nJ(e)}a.currentTarget=null,o=s}else for(i=0;i<r.length;i++){if(s=(l=r[i]).instance,u=l.currentTarget,l=l.listener,s!==o&&a.isPropagationStopped())break e;o=l,a.currentTarget=u;try{o(a)}catch(e){nJ(e)}a.currentTarget=null,o=s}}}}function s9(e,t){var n=t[eM];void 0===n&&(n=t[eM]=new Set);var r=e+"__bubble";n.has(r)||(ut(t,e,2,!1),n.add(r))}function s6(e,t,n){var r=0;t&&(r|=4),ut(n,e,r,t)}var s7="_reactListening"+Math.random().toString(36).slice(2);function ue(e){if(!e[s7]){e[s7]=!0,eQ.forEach(function(t){"selectionchange"!==t&&(s8.has(t)||s6(t,!1,e),s6(t,!0,e))});var t=9===e.nodeType?e:e.ownerDocument;null===t||t[s7]||(t[s7]=!0,s6("selectionchange",!1,t))}}function ut(e,t,n,r){switch(cg(t)){case 2:var a=cc;break;case 8:a=cd;break;default:a=cf}n=a.bind(null,t,n,e),a=void 0,tT&&("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 un(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)break;if(4===i)for(i=r.return;null!==i;){var s=i.tag;if((3===s||4===s)&&i.stateNode.containerInfo===a)return;i=i.return}for(;null!==l;){if(null===(i=eW(l)))return;if(5===(s=i.tag)||6===s||26===s||27===s){r=o=i;continue e}l=l.parentNode}}r=r.return}tE(function(){var r=o,a=tv(n),i=[];e:{var l=nQ.get(e);if(void 0!==l){var s=tH,c=e;switch(e){case"keypress":if(0===tj(n))break e;case"keydown":case"keyup":s=t4;break;case"focusin":c="focus",s=tK;break;case"focusout":c="blur",s=tK;break;case"beforeblur":case"afterblur":s=tK;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":s=tG;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":s=tY;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":s=t5;break;case nH:case nV:case nW:s=tQ;break;case nK:s=t9;break;case"scroll":case"scrollend":s=tW;break;case"wheel":s=t6;break;case"copy":case"cut":case"paste":s=tZ;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":s=t8;break;case"toggle":case"beforetoggle":s=t7}var d=0!=(4&t),f=!d&&("scroll"===e||"scrollend"===e),p=d?null!==l?l+"Capture":null:l;d=[];for(var m,h=r;null!==h;){var g=h;if(m=g.stateNode,5!==(g=g.tag)&&26!==g&&27!==g||null===m||null===p||null!=(g=t_(h,p))&&d.push(ur(h,g,m)),f)break;h=h.return}0<d.length&&(l=new s(l,c,null,n,a),i.push({event:l,listeners:d}))}}if(0==(7&t)){if((l="mouseover"===e||"pointerover"===e,s="mouseout"===e||"pointerout"===e,!(l&&n!==ty&&(c=n.relatedTarget||n.fromElement)&&(eW(c)||c[ez])))&&(s||l)&&(l=a.window===a?a:(l=a.ownerDocument)?l.defaultView||l.parentWindow:window,s?(c=n.relatedTarget||n.toElement,s=r,null!==(c=c?eW(c):null)&&(f=u(c),d=c.tag,c!==f||5!==d&&27!==d&&6!==d)&&(c=null)):(s=null,c=r),s!==c)){if(d=tG,g="onMouseLeave",p="onMouseEnter",h="mouse",("pointerout"===e||"pointerover"===e)&&(d=t8,g="onPointerLeave",p="onPointerEnter",h="pointer"),f=null==s?l:eG(s),m=null==c?l:eG(c),(l=new d(g,h+"leave",s,n,a)).target=f,l.relatedTarget=m,g=null,eW(a)===r&&((d=new d(p,h+"enter",c,n,a)).target=m,d.relatedTarget=f,g=d),f=g,s&&c)t:{for(d=uo,p=s,h=c,m=0,g=p;g;g=d(g))m++;g=0;for(var b,y=h;y;y=d(y))g++;for(;0<m-g;)p=d(p),m--;for(;0<g-m;)h=d(h),g--;for(;m--;){if(p===h||null!==h&&p===h.alternate){d=p;break t}p=d(p),h=d(h)}d=null}else d=null;null!==s&&ui(i,l,s,d,!1),null!==c&&null!==f&&ui(i,f,c,d,!0)}e:{if("select"===(s=(l=r?eG(r):window).nodeName&&l.nodeName.toLowerCase())||"input"===s&&"file"===l.type)var v=ng;else if(nc(l))if(nb)v=n_;else{v=nx;var w=nS}else(s=l.nodeName)&&"input"===s.toLowerCase()&&("checkbox"===l.type||"radio"===l.type)?v=nE:r&&tp(r.elementType)&&(v=ng);if(v&&(v=v(e,r))){nd(i,v,n,a);break e}w&&w(e,l,r),"focusout"===e&&r&&"number"===l.type&&null!=r.memoizedProps.value&&to(l,"number",l.value)}switch(w=r?eG(r):window,e){case"focusin":(nc(w)||"true"===w.contentEditable)&&(nj=w,nR=r,nI=null);break;case"focusout":nI=nR=nj=null;break;case"mousedown":nD=!0;break;case"contextmenu":case"mouseup":case"dragend":nD=!1,nF(i,n,a);break;case"selectionchange":if(nN)break;case"keydown":case"keyup":nF(i,n,a)}if(nt)t:{switch(e){case"compositionstart":var k="onCompositionStart";break t;case"compositionend":k="onCompositionEnd";break t;case"compositionupdate":k="onCompositionUpdate";break t}k=void 0}else ns?ni(e,n)&&(k="onCompositionEnd"):"keydown"===e&&229===n.keyCode&&(k="onCompositionStart");k&&(na&&"ko"!==n.locale&&(ns||"onCompositionStart"!==k?"onCompositionEnd"===k&&ns&&(b=tN()):(tO="value"in(tP=a)?tP.value:tP.textContent,ns=!0)),0<(w=ua(r,k)).length&&(k=new tX(k,e,null,n,a),i.push({event:k,listeners:w}),b?k.data=b:null!==(b=nl(n))&&(k.data=b))),(b=nr?function(e,t){switch(e){case"compositionend":return nl(t);case"keypress":if(32!==t.which)return null;return no=!0," ";case"textInput":return" "===(e=t.data)&&no?null:e;default:return null}}(e,n):function(e,t){if(ns)return"compositionend"===e||!nt&&ni(e,t)?(e=tN(),tL=tO=tP=null,ns=!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 na&&"ko"!==t.locale?null:t.data}}(e,n))&&0<(k=ua(r,"onBeforeInput")).length&&(w=new tX("onBeforeInput","beforeinput",null,n,a),i.push({event:w,listeners:k}),w.data=b);var S=e;if("submit"===S&&r&&r.stateNode===a){var x=s0((a[eF]||null).action),E=n.submitter;E&&null!==(S=(S=E[eF]||null)?s0(S.formAction):E.getAttribute("formAction"))&&(x=S,E=null);var _=new tH("action","action",null,n,a);i.push({event:_,listeners:[{instance:null,listener:function(){if(n.defaultPrevented){if(0!==sW){var e=E?s1(a,E):new FormData(a);oX(r,{pending:!0,data:e,method:a.method,action:x},null,e)}}else"function"==typeof x&&(_.preventDefault(),oX(r,{pending:!0,data:e=E?s1(a,E):new FormData(a),method:a.method,action:x},x,e))},currentTarget:a}]})}}s5(i,t)})}function ur(e,t,n){return{instance:e,listener:t,currentTarget:n}}function ua(e,t){for(var n=t+"Capture",r=[];null!==e;){var a=e,o=a.stateNode;if(5!==(a=a.tag)&&26!==a&&27!==a||null===o||(null!=(a=t_(e,n))&&r.unshift(ur(e,a,o)),null!=(a=t_(e,t))&&r.push(ur(e,a,o))),3===e.tag)return r;e=e.return}return[]}function uo(e){if(null===e)return null;do e=e.return;while(e&&5!==e.tag&&27!==e.tag)return e||null}function ui(e,t,n,r,a){for(var o=t._reactName,i=[];null!==n&&n!==r;){var l=n,s=l.alternate,u=l.stateNode;if(l=l.tag,null!==s&&s===r)break;5!==l&&26!==l&&27!==l||null===u||(s=u,a?null!=(u=t_(n,o))&&i.unshift(ur(n,u,s)):a||null!=(u=t_(n,o))&&i.push(ur(n,u,s))),n=n.return}0!==i.length&&e.push({event:t,listeners:i})}var ul=/\r\n?/g,us=/\u0000|\uFFFD/g;function uu(e){return("string"==typeof e?e:""+e).replace(ul,"\n").replace(us,"")}function uc(e,t){return t=uu(t),uu(e)===t}function ud(e,t,n,r,a,o){switch(n){case"children":"string"==typeof r?"body"===t||"textarea"===t&&""===r||tu(e,r):("number"==typeof r||"bigint"==typeof r)&&"body"!==t&&tu(e,""+r);break;case"className":e4(e,"class",r);break;case"tabIndex":e4(e,"tabindex",r);break;case"dir":case"role":case"viewBox":case"width":case"height":e4(e,n,r);break;case"style":tf(e,r,o);break;case"data":if("object"!==t){e4(e,"data",r);break}case"src":case"href":if(""===r&&("a"!==t||"href"!==n)||null==r||"function"==typeof r||"symbol"==typeof r||"boolean"==typeof r){e.removeAttribute(n);break}r=tg(""+r),e.setAttribute(n,r);break;case"action":case"formAction":if("function"==typeof r){e.setAttribute(n,"javascript:throw new Error('A React form was unexpectedly submitted. If you called form.submit() manually, consider using form.requestSubmit() instead. If you\\'re trying to use event.stopPropagation() in a submit event handler, consider also calling event.preventDefault().')");break}if("function"==typeof o&&("formAction"===n?("input"!==t&&ud(e,t,"name",a.name,a,null),ud(e,t,"formEncType",a.formEncType,a,null),ud(e,t,"formMethod",a.formMethod,a,null),ud(e,t,"formTarget",a.formTarget,a,null)):(ud(e,t,"encType",a.encType,a,null),ud(e,t,"method",a.method,a,null),ud(e,t,"target",a.target,a,null))),null==r||"symbol"==typeof r||"boolean"==typeof r){e.removeAttribute(n);break}r=tg(""+r),e.setAttribute(n,r);break;case"onClick":null!=r&&(e.onclick=tb);break;case"onScroll":null!=r&&s9("scroll",e);break;case"onScrollEnd":null!=r&&s9("scrollend",e);break;case"dangerouslySetInnerHTML":if(null!=r){if("object"!=typeof r||!("__html"in r))throw Error(l(61));if(null!=(n=r.__html)){if(null!=a.children)throw Error(l(60));e.innerHTML=n}}break;case"multiple":e.multiple=r&&"function"!=typeof r&&"symbol"!=typeof r;break;case"muted":e.muted=r&&"function"!=typeof r&&"symbol"!=typeof r;break;case"suppressContentEditableWarning":case"suppressHydrationWarning":case"defaultValue":case"defaultChecked":case"innerHTML":case"ref":case"autoFocus":case"innerText":case"textContent":break;case"xlinkHref":if(null==r||"function"==typeof r||"boolean"==typeof r||"symbol"==typeof r){e.removeAttribute("xlink:href");break}n=tg(""+r),e.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",n);break;case"contentEditable":case"spellCheck":case"draggable":case"value":case"autoReverse":case"externalResourcesRequired":case"focusable":case"preserveAlpha":null!=r&&"function"!=typeof r&&"symbol"!=typeof r?e.setAttribute(n,""+r):e.removeAttribute(n);break;case"inert":case"allowFullScreen":case"async":case"autoPlay":case"controls":case"default":case"defer":case"disabled":case"disablePictureInPicture":case"disableRemotePlayback":case"formNoValidate":case"hidden":case"loop":case"noModule":case"noValidate":case"open":case"playsInline":case"readOnly":case"required":case"reversed":case"scoped":case"seamless":case"itemScope":r&&"function"!=typeof r&&"symbol"!=typeof r?e.setAttribute(n,""):e.removeAttribute(n);break;case"capture":case"download":!0===r?e.setAttribute(n,""):!1!==r&&null!=r&&"function"!=typeof r&&"symbol"!=typeof r?e.setAttribute(n,r):e.removeAttribute(n);break;case"cols":case"rows":case"size":case"span":null!=r&&"function"!=typeof r&&"symbol"!=typeof r&&!isNaN(r)&&1<=r?e.setAttribute(n,r):e.removeAttribute(n);break;case"rowSpan":case"start":null==r||"function"==typeof r||"symbol"==typeof r||isNaN(r)?e.removeAttribute(n):e.setAttribute(n,r);break;case"popover":s9("beforetoggle",e),s9("toggle",e),e3(e,"popover",r);break;case"xlinkActuate":e8(e,"http://www.w3.org/1999/xlink","xlink:actuate",r);break;case"xlinkArcrole":e8(e,"http://www.w3.org/1999/xlink","xlink:arcrole",r);break;case"xlinkRole":e8(e,"http://www.w3.org/1999/xlink","xlink:role",r);break;case"xlinkShow":e8(e,"http://www.w3.org/1999/xlink","xlink:show",r);break;case"xlinkTitle":e8(e,"http://www.w3.org/1999/xlink","xlink:title",r);break;case"xlinkType":e8(e,"http://www.w3.org/1999/xlink","xlink:type",r);break;case"xmlBase":e8(e,"http://www.w3.org/XML/1998/namespace","xml:base",r);break;case"xmlLang":e8(e,"http://www.w3.org/XML/1998/namespace","xml:lang",r);break;case"xmlSpace":e8(e,"http://www.w3.org/XML/1998/namespace","xml:space",r);break;case"is":e3(e,"is",r);break;default:2<n.length&&("o"===n[0]||"O"===n[0])&&("n"===n[1]||"N"===n[1])||e3(e,n=tm.get(n)||n,r)}}function uf(e,t,n,r,a,o){switch(n){case"style":tf(e,r,o);break;case"dangerouslySetInnerHTML":if(null!=r){if("object"!=typeof r||!("__html"in r))throw Error(l(61));if(null!=(n=r.__html)){if(null!=a.children)throw Error(l(60));e.innerHTML=n}}break;case"children":"string"==typeof r?tu(e,r):("number"==typeof r||"bigint"==typeof r)&&tu(e,""+r);break;case"onScroll":null!=r&&s9("scroll",e);break;case"onScrollEnd":null!=r&&s9("scrollend",e);break;case"onClick":null!=r&&(e.onclick=tb);break;case"suppressContentEditableWarning":case"suppressHydrationWarning":case"innerHTML":case"ref":case"innerText":case"textContent":break;default:if(!eZ.hasOwnProperty(n))e:{if("o"===n[0]&&"n"===n[1]&&(a=n.endsWith("Capture"),t=n.slice(2,a?n.length-7:void 0),"function"==typeof(o=null!=(o=e[eF]||null)?o[n]:null)&&e.removeEventListener(t,o,a),"function"==typeof r)){"function"!=typeof o&&null!==o&&(n in e?e[n]=null:e.hasAttribute(n)&&e.removeAttribute(n)),e.addEventListener(t,r,a);break e}n in e?e[n]=r:!0===r?e.setAttribute(n,""):e3(e,n,r)}}}function up(e,t,n){switch(t){case"div":case"span":case"svg":case"path":case"a":case"g":case"p":case"li":break;case"img":s9("error",e),s9("load",e);var r,a=!1,o=!1;for(r in n)if(n.hasOwnProperty(r)){var i=n[r];if(null!=i)switch(r){case"src":a=!0;break;case"srcSet":o=!0;break;case"children":case"dangerouslySetInnerHTML":throw Error(l(137,t));default:ud(e,t,r,i,n,null)}}o&&ud(e,t,"srcSet",n.srcSet,n,null),a&&ud(e,t,"src",n.src,n,null);return;case"input":s9("invalid",e);var s=r=i=o=null,u=null,c=null;for(a in n)if(n.hasOwnProperty(a)){var d=n[a];if(null!=d)switch(a){case"name":o=d;break;case"type":i=d;break;case"checked":u=d;break;case"defaultChecked":c=d;break;case"value":r=d;break;case"defaultValue":s=d;break;case"children":case"dangerouslySetInnerHTML":if(null!=d)throw Error(l(137,t));break;default:ud(e,t,a,d,n,null)}}ta(e,r,s,u,c,i,o,!1);return;case"select":for(o in s9("invalid",e),a=i=r=null,n)if(n.hasOwnProperty(o)&&null!=(s=n[o]))switch(o){case"value":r=s;break;case"defaultValue":i=s;break;case"multiple":a=s;default:ud(e,t,o,s,n,null)}t=r,n=i,e.multiple=!!a,null!=t?ti(e,!!a,t,!1):null!=n&&ti(e,!!a,n,!0);return;case"textarea":for(i in s9("invalid",e),r=o=a=null,n)if(n.hasOwnProperty(i)&&null!=(s=n[i]))switch(i){case"value":a=s;break;case"defaultValue":o=s;break;case"children":r=s;break;case"dangerouslySetInnerHTML":if(null!=s)throw Error(l(91));break;default:ud(e,t,i,s,n,null)}ts(e,a,o,r);return;case"option":for(u in n)n.hasOwnProperty(u)&&null!=(a=n[u])&&("selected"===u?e.selected=a&&"function"!=typeof a&&"symbol"!=typeof a:ud(e,t,u,a,n,null));return;case"dialog":s9("beforetoggle",e),s9("toggle",e),s9("cancel",e),s9("close",e);break;case"iframe":case"object":s9("load",e);break;case"video":case"audio":for(a=0;a<s4.length;a++)s9(s4[a],e);break;case"image":s9("error",e),s9("load",e);break;case"details":s9("toggle",e);break;case"embed":case"source":case"link":s9("error",e),s9("load",e);case"area":case"base":case"br":case"col":case"hr":case"keygen":case"meta":case"param":case"track":case"wbr":case"menuitem":for(c in n)if(n.hasOwnProperty(c)&&null!=(a=n[c]))switch(c){case"children":case"dangerouslySetInnerHTML":throw Error(l(137,t));default:ud(e,t,c,a,n,null)}return;default:if(tp(t)){for(d in n)n.hasOwnProperty(d)&&void 0!==(a=n[d])&&uf(e,t,d,a,n,void 0);return}}for(s in n)n.hasOwnProperty(s)&&null!=(a=n[s])&&ud(e,t,s,a,n,null)}function um(e){switch(e){case"css":case"script":case"font":case"img":case"image":case"input":case"link":return!0;default:return!1}}var uh=null,ug=null;function ub(e){return 9===e.nodeType?e:e.ownerDocument}function uy(e){switch(e){case"http://www.w3.org/2000/svg":return 1;case"http://www.w3.org/1998/Math/MathML":return 2;default:return 0}}function uv(e,t){if(0===e)switch(t){case"svg":return 1;case"math":return 2;default:return 0}return 1===e&&"foreignObject"===t?0:e}function uw(e,t){return"textarea"===e||"noscript"===e||"string"==typeof t.children||"number"==typeof t.children||"bigint"==typeof t.children||"object"==typeof t.dangerouslySetInnerHTML&&null!==t.dangerouslySetInnerHTML&&null!=t.dangerouslySetInnerHTML.__html}var uk=null,uS="function"==typeof setTimeout?setTimeout:void 0,ux="function"==typeof clearTimeout?clearTimeout:void 0,uE="function"==typeof Promise?Promise:void 0,u_="function"==typeof queueMicrotask?queueMicrotask:void 0!==uE?function(e){return uE.resolve(null).then(e).catch(uA)}:uS;function uA(e){setTimeout(function(){throw e})}function uT(e){return"head"===e}function uC(e,t){var n=t,r=0;do{var a=n.nextSibling;if(e.removeChild(n),a&&8===a.nodeType)if("/$"===(n=a.data)||"/&"===n){if(0===r){e.removeChild(a),cR(t);return}r--}else if("$"===n||"$?"===n||"$~"===n||"$!"===n||"&"===n)r++;else if("html"===n)uM(e.ownerDocument.documentElement);else if("head"===n){uM(n=e.ownerDocument.head);for(var o=n.firstChild;o;){var i=o.nextSibling,l=o.nodeName;o[eH]||"SCRIPT"===l||"STYLE"===l||"LINK"===l&&"stylesheet"===o.rel.toLowerCase()||n.removeChild(o),o=i}}else"body"===n&&uM(e.ownerDocument.body);n=a}while(n)cR(t)}function uP(e,t){var n=e;e=0;do{var r=n.nextSibling;if(1===n.nodeType?t?(n._stashedDisplay=n.style.display,n.style.display="none"):(n.style.display=n._stashedDisplay||"",""===n.getAttribute("style")&&n.removeAttribute("style")):3===n.nodeType&&(t?(n._stashedText=n.nodeValue,n.nodeValue=""):n.nodeValue=n._stashedText||""),r&&8===r.nodeType)if("/$"===(n=r.data))if(0===e)break;else e--;else"$"!==n&&"$?"!==n&&"$~"!==n&&"$!"!==n||e++;n=r}while(n)}function uO(e){var t=e.firstChild;for(t&&10===t.nodeType&&(t=t.nextSibling);t;){var n=t;switch(t=t.nextSibling,n.nodeName){case"HTML":case"HEAD":case"BODY":uO(n),eV(n);continue;case"SCRIPT":case"STYLE":continue;case"LINK":if("stylesheet"===n.rel.toLowerCase())continue}e.removeChild(n)}}function uL(e,t){for(;8!==e.nodeType;)if((1!==e.nodeType||"INPUT"!==e.nodeName||"hidden"!==e.type)&&!t||null===(e=uR(e.nextSibling)))return null;return e}function uN(e){return"$?"===e.data||"$~"===e.data}function uj(e){return"$!"===e.data||"$?"===e.data&&"loading"!==e.ownerDocument.readyState}function uR(e){for(;null!=e;e=e.nextSibling){var t=e.nodeType;if(1===t||3===t)break;if(8===t){if("$"===(t=e.data)||"$!"===t||"$?"===t||"$~"===t||"&"===t||"F!"===t||"F"===t)break;if("/$"===t||"/&"===t)return null}}return e}var uI=null;function uD(e){e=e.nextSibling;for(var t=0;e;){if(8===e.nodeType){var n=e.data;if("/$"===n||"/&"===n){if(0===t)return uR(e.nextSibling);t--}else"$"!==n&&"$!"!==n&&"$?"!==n&&"$~"!==n&&"&"!==n||t++}e=e.nextSibling}return null}function uF(e){e=e.previousSibling;for(var t=0;e;){if(8===e.nodeType){var n=e.data;if("$"===n||"$!"===n||"$?"===n||"$~"===n||"&"===n){if(0===t)return e;t--}else"/$"!==n&&"/&"!==n||t++}e=e.previousSibling}return null}function uz(e,t,n){switch(t=ub(n),e){case"html":if(!(e=t.documentElement))throw Error(l(452));return e;case"head":if(!(e=t.head))throw Error(l(453));return e;case"body":if(!(e=t.body))throw Error(l(454));return e;default:throw Error(l(451))}}function uM(e){for(var t=e.attributes;t.length;)e.removeAttributeNode(t[0]);eV(e)}var u$=new Map,uB=new Set;function uU(e){return"function"==typeof e.getRootNode?e.getRootNode():9===e.nodeType?e:e.ownerDocument}var uH=R.d;R.d={f:function(){var e=uH.f(),t=sf();return e||t},r:function(e){var t=eq(e);null!==t&&5===t.tag&&"form"===t.type?o0(t):uH.r(e)},D:function(e){uH.D(e),uW("dns-prefetch",e,null)},C:function(e,t){uH.C(e,t),uW("preconnect",e,t)},L:function(e,t,n){if(uH.L(e,t,n),uV&&e&&t){var r='link[rel="preload"][as="'+tn(t)+'"]';"image"===t&&n&&n.imageSrcSet?(r+='[imagesrcset="'+tn(n.imageSrcSet)+'"]',"string"==typeof n.imageSizes&&(r+='[imagesizes="'+tn(n.imageSizes)+'"]')):r+='[href="'+tn(e)+'"]';var a=r;switch(t){case"style":a=uG(e);break;case"script":a=uQ(e)}u$.has(a)||(e=p({rel:"preload",href:"image"===t&&n&&n.imageSrcSet?void 0:e,as:t},n),u$.set(a,e),null!==uV.querySelector(r)||"style"===t&&uV.querySelector(uY(a))||"script"===t&&uV.querySelector(uZ(a))||(up(t=uV.createElement("link"),"link",e),eK(t),uV.head.appendChild(t)))}},m:function(e,t){if(uH.m(e,t),uV&&e){var n=t&&"string"==typeof t.as?t.as:"script",r='link[rel="modulepreload"][as="'+tn(n)+'"][href="'+tn(e)+'"]',a=r;switch(n){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":a=uQ(e)}if(!u$.has(a)&&(e=p({rel:"modulepreload",href:e},t),u$.set(a,e),null===uV.querySelector(r))){switch(n){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(uV.querySelector(uZ(a)))return}up(n=uV.createElement("link"),"link",e),eK(n),uV.head.appendChild(n)}}},X:function(e,t){if(uH.X(e,t),uV&&e){var n=eY(uV).hoistableScripts,r=uQ(e),a=n.get(r);a||((a=uV.querySelector(uZ(r)))||(e=p({src:e,async:!0},t),(t=u$.get(r))&&u1(e,t),eK(a=uV.createElement("script")),up(a,"link",e),uV.head.appendChild(a)),a={type:"script",instance:a,count:1,state:null},n.set(r,a))}},S:function(e,t,n){if(uH.S(e,t,n),uV&&e){var r=eY(uV).hoistableStyles,a=uG(e);t=t||"default";var o=r.get(a);if(!o){var i={loading:0,preload:null};if(o=uV.querySelector(uY(a)))i.loading=5;else{e=p({rel:"stylesheet",href:e,"data-precedence":t},n),(n=u$.get(a))&&u0(e,n);var l=o=uV.createElement("link");eK(l),up(l,"link",e),l._p=new Promise(function(e,t){l.onload=e,l.onerror=t}),l.addEventListener("load",function(){i.loading|=1}),l.addEventListener("error",function(){i.loading|=2}),i.loading|=4,uJ(o,t,uV)}o={type:"stylesheet",instance:o,count:1,state:i},r.set(a,o)}}},M:function(e,t){if(uH.M(e,t),uV&&e){var n=eY(uV).hoistableScripts,r=uQ(e),a=n.get(r);a||((a=uV.querySelector(uZ(r)))||(e=p({src:e,async:!0,type:"module"},t),(t=u$.get(r))&&u1(e,t),eK(a=uV.createElement("script")),up(a,"link",e),uV.head.appendChild(a)),a={type:"script",instance:a,count:1,state:null},n.set(r,a))}}};var uV="u"<typeof document?null:document;function uW(e,t,n){if(uV&&"string"==typeof t&&t){var r=tn(t);r='link[rel="'+e+'"][href="'+r+'"]',"string"==typeof n&&(r+='[crossorigin="'+n+'"]'),uB.has(r)||(uB.add(r),e={rel:e,crossOrigin:n,href:t},null===uV.querySelector(r)&&(up(t=uV.createElement("link"),"link",e),eK(t),uV.head.appendChild(t)))}}function uq(e,t,n,r){var a=(a=H.current)?uU(a):null;if(!a)throw Error(l(446));switch(e){case"meta":case"title":return null;case"style":return"string"==typeof n.precedence&&"string"==typeof n.href?(t=uG(n.href),(r=(n=eY(a).hoistableStyles).get(t))||(r={type:"style",instance:null,count:0,state:null},n.set(t,r)),r):{type:"void",instance:null,count:0,state:null};case"link":if("stylesheet"===n.rel&&"string"==typeof n.href&&"string"==typeof n.precedence){e=uG(n.href);var o,i,s,u,c=eY(a).hoistableStyles,d=c.get(e);if(d||(a=a.ownerDocument||a,d={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},c.set(e,d),(c=a.querySelector(uY(e)))&&!c._p&&(d.instance=c,d.state.loading=5),u$.has(e)||(n={rel:"preload",as:"style",href:n.href,crossOrigin:n.crossOrigin,integrity:n.integrity,media:n.media,hrefLang:n.hrefLang,referrerPolicy:n.referrerPolicy},u$.set(e,n),c||(o=a,i=e,s=n,u=d.state,o.querySelector('link[rel="preload"][as="style"]['+i+"]")?u.loading=1:(u.preload=i=o.createElement("link"),i.addEventListener("load",function(){return u.loading|=1}),i.addEventListener("error",function(){return u.loading|=2}),up(i,"link",s),eK(i),o.head.appendChild(i))))),t&&null===r)throw Error(l(528,""));return d}if(t&&null!==r)throw Error(l(529,""));return null;case"script":return t=n.async,"string"==typeof(n=n.src)&&t&&"function"!=typeof t&&"symbol"!=typeof t?(t=uQ(n),(r=(n=eY(a).hoistableScripts).get(t))||(r={type:"script",instance:null,count:0,state:null},n.set(t,r)),r):{type:"void",instance:null,count:0,state:null};default:throw Error(l(444,e))}}function uG(e){return'href="'+tn(e)+'"'}function uY(e){return'link[rel="stylesheet"]['+e+"]"}function uK(e){return p({},e,{"data-precedence":e.precedence,precedence:null})}function uQ(e){return'[src="'+tn(e)+'"]'}function uZ(e){return"script[async]"+e}function uX(e,t,n){if(t.count++,null===t.instance)switch(t.type){case"style":var r=e.querySelector('style[data-href~="'+tn(n.href)+'"]');if(r)return t.instance=r,eK(r),r;var a=p({},n,{"data-href":n.href,"data-precedence":n.precedence,href:null,precedence:null});return eK(r=(e.ownerDocument||e).createElement("style")),up(r,"style",a),uJ(r,n.precedence,e),t.instance=r;case"stylesheet":a=uG(n.href);var o=e.querySelector(uY(a));if(o)return t.state.loading|=4,t.instance=o,eK(o),o;r=uK(n),(a=u$.get(a))&&u0(r,a),eK(o=(e.ownerDocument||e).createElement("link"));var i=o;return i._p=new Promise(function(e,t){i.onload=e,i.onerror=t}),up(o,"link",r),t.state.loading|=4,uJ(o,n.precedence,e),t.instance=o;case"script":if(o=uQ(n.src),a=e.querySelector(uZ(o)))return t.instance=a,eK(a),a;return r=n,(a=u$.get(o))&&u1(r=p({},n),a),eK(a=(e=e.ownerDocument||e).createElement("script")),up(a,"link",r),e.head.appendChild(a),t.instance=a;case"void":return null;default:throw Error(l(443,t.type))}return"stylesheet"===t.type&&0==(4&t.state.loading)&&(r=t.instance,t.state.loading|=4,uJ(r,n.precedence,e)),t.instance}function uJ(e,t,n){for(var r=n.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),a=r.length?r[r.length-1]:null,o=a,i=0;i<r.length;i++){var l=r[i];if(l.dataset.precedence===t)o=l;else if(o!==a)break}o?o.parentNode.insertBefore(e,o.nextSibling):(t=9===n.nodeType?n.head:n).insertBefore(e,t.firstChild)}function u0(e,t){null==e.crossOrigin&&(e.crossOrigin=t.crossOrigin),null==e.referrerPolicy&&(e.referrerPolicy=t.referrerPolicy),null==e.title&&(e.title=t.title)}function u1(e,t){null==e.crossOrigin&&(e.crossOrigin=t.crossOrigin),null==e.referrerPolicy&&(e.referrerPolicy=t.referrerPolicy),null==e.integrity&&(e.integrity=t.integrity)}var u2=null;function u3(e,t,n){if(null===u2){var r=new Map,a=u2=new Map;a.set(n,r)}else(r=(a=u2).get(n))||(r=new Map,a.set(n,r));if(r.has(e))return r;for(r.set(e,null),n=n.getElementsByTagName(e),a=0;a<n.length;a++){var o=n[a];if(!(o[eH]||o[eD]||"link"===e&&"stylesheet"===o.getAttribute("rel"))&&"http://www.w3.org/2000/svg"!==o.namespaceURI){var i=o.getAttribute(t)||"";i=e+i;var l=r.get(i);l?l.push(o):r.set(i,[o])}}return r}function u4(e,t,n){(e=e.ownerDocument||e).head.insertBefore(n,"title"===t?e.querySelector("head > title"):null)}function u8(e){return"stylesheet"!==e.type||0!=(3&e.state.loading)}var u5=0;function u9(){if(this.count--,0===this.count&&(0===this.imgCount||!this.waitingForImages)){if(this.stylesheets)u7(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}}var u6=null;function u7(e,t){e.stylesheets=null,null!==e.unsuspend&&(e.count++,u6=new Map,t.forEach(ce,e),u6=null,u9.call(e))}function ce(e,t){if(!(4&t.state.loading)){var n=u6.get(e);if(n)var r=n.get(null);else{n=new Map,u6.set(e,n);for(var a=e.querySelectorAll("link[data-precedence],style[data-precedence]"),o=0;o<a.length;o++){var i=a[o];("LINK"===i.nodeName||"not all"!==i.getAttribute("media"))&&(n.set(i.dataset.precedence,i),r=i)}r&&n.set(null,r)}i=(a=t.instance).getAttribute("data-precedence"),(o=n.get(i)||r)===r&&n.set(null,a),n.set(i,a),this.count++,r=u9.bind(this),a.addEventListener("load",r),a.addEventListener("error",r),o?o.parentNode.insertBefore(a,o.nextSibling):(e=9===e.nodeType?e.head:e).insertBefore(a,e.firstChild),t.state.loading|=4}}var ct={$$typeof:k,Provider:null,Consumer:null,_currentValue:I,_currentValue2:I,_threadCount:0};function cn(e,t,n,r,a,o,i,l,s){this.tag=1,this.containerInfo=e,this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.next=this.pendingContext=this.context=this.cancelPendingCommit=null,this.callbackPriority=0,this.expirationTimes=eA(-1),this.entangledLanes=this.shellSuspendCounter=this.errorRecoveryDisabledLanes=this.expiredLanes=this.warmLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=eA(0),this.hiddenUpdates=eA(null),this.identifierPrefix=r,this.onUncaughtError=a,this.onCaughtError=o,this.onRecoverableError=i,this.pooledCache=null,this.pooledCacheLanes=0,this.formState=s,this.incompleteTransitions=new Map}function cr(e,t,n,r,a,o,i,l,s,u,c,d){return e=new cn(e,t,n,i,s,u,c,d,l),t=1,!0===o&&(t|=24),o=rt(3,null,null,t),e.current=o,o.stateNode=e,t=r2(),t.refCount++,e.pooledCache=t,t.refCount++,o.memoizedState={element:r,isDehydrated:n,cache:t},ax(o),e}function ca(e,t,n,r,a,o){a=a?n7:n7,null===r.context?r.context=a:r.pendingContext=a,(r=a_(t)).payload={element:n},null!==(o=void 0===o?null:o)&&(r.callback=o),null!==(n=aA(e,r,t))&&(ss(n,e,t),aT(n,e,t))}function co(e,t){if(null!==(e=e.memoizedState)&&null!==e.dehydrated){var n=e.retryLane;e.retryLane=0!==n&&n<t?n:t}}function ci(e,t){co(e,t),(e=e.alternate)&&co(e,t)}function cl(e){if(13===e.tag||31===e.tag){var t=n5(e,0x4000000);null!==t&&ss(t,e,0x4000000),ci(e,0x4000000)}}function cs(e){if(13===e.tag||31===e.tag){var t=si(),n=n5(e,t=eL(t));null!==n&&ss(n,e,t),ci(e,t)}}var cu=!0;function cc(e,t,n,r){var a=j.T;j.T=null;var o=R.p;try{R.p=2,cf(e,t,n,r)}finally{R.p=o,j.T=a}}function cd(e,t,n,r){var a=j.T;j.T=null;var o=R.p;try{R.p=8,cf(e,t,n,r)}finally{R.p=o,j.T=a}}function cf(e,t,n,r){if(cu){var a=cp(r);if(null===a)un(e,t,r,cm,n),c_(e,r);else if(function(e,t,n,r,a){switch(t){case"focusin":return cy=cA(cy,e,t,n,r,a),!0;case"dragenter":return cv=cA(cv,e,t,n,r,a),!0;case"mouseover":return cw=cA(cw,e,t,n,r,a),!0;case"pointerover":var o=a.pointerId;return ck.set(o,cA(ck.get(o)||null,e,t,n,r,a)),!0;case"gotpointercapture":return o=a.pointerId,cS.set(o,cA(cS.get(o)||null,e,t,n,r,a)),!0}return!1}(a,e,t,n,r))r.stopPropagation();else if(c_(e,r),4&t&&-1<cE.indexOf(e)){for(;null!==a;){var o=eq(a);if(null!==o)switch(o.tag){case 3:if((o=o.stateNode).current.memoizedState.isDehydrated){var i=eS(o.pendingLanes);if(0!==i){var l=o;for(l.pendingLanes|=2,l.entangledLanes|=2;i;){var s=1<<31-eg(i);l.entanglements[1]|=s,i&=~s}sq(o),0==(6&lF)&&(l4=ea()+500,sG(0,!1))}}break;case 31:case 13:null!==(l=n5(o,2))&&ss(l,o,2),sf(),ci(o,2)}if(null===(o=cp(r))&&un(e,t,r,cm,n),o===a)break;a=o}null!==a&&r.stopPropagation()}else un(e,t,r,null,n)}}function cp(e){return ch(e=tv(e))}var cm=null;function ch(e){if(cm=null,null!==(e=eW(e))){var t=u(e);if(null===t)e=null;else{var n=t.tag;if(13===n){if(null!==(e=c(t)))return e;e=null}else if(31===n){if(null!==(e=d(t)))return e;e=null}else if(3===n){if(t.stateNode.current.memoizedState.isDehydrated)return 3===t.tag?t.stateNode.containerInfo:null;e=null}else t!==e&&(e=null)}}return cm=e,null}function cg(e){switch(e){case"beforetoggle":case"cancel":case"click":case"close":case"contextmenu":case"copy":case"cut":case"auxclick":case"dblclick":case"dragend":case"dragstart":case"drop":case"focusin":case"focusout":case"input":case"invalid":case"keydown":case"keypress":case"keyup":case"mousedown":case"mouseup":case"paste":case"pause":case"play":case"pointercancel":case"pointerdown":case"pointerup":case"ratechange":case"reset":case"resize":case"seeked":case"submit":case"toggle":case"touchcancel":case"touchend":case"touchstart":case"volumechange":case"change":case"selectionchange":case"textInput":case"compositionstart":case"compositionend":case"compositionupdate":case"beforeblur":case"afterblur":case"beforeinput":case"blur":case"fullscreenchange":case"focus":case"hashchange":case"popstate":case"select":case"selectstart":return 2;case"drag":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"mousemove":case"mouseout":case"mouseover":case"pointermove":case"pointerout":case"pointerover":case"scroll":case"touchmove":case"wheel":case"mouseenter":case"mouseleave":case"pointerenter":case"pointerleave":return 8;case"message":switch(eo()){case ei:return 2;case el:return 8;case es:case eu:return 32;case ec:return 0x10000000;default:return 32}default:return 32}}var cb=!1,cy=null,cv=null,cw=null,ck=new Map,cS=new Map,cx=[],cE="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".split(" ");function c_(e,t){switch(e){case"focusin":case"focusout":cy=null;break;case"dragenter":case"dragleave":cv=null;break;case"mouseover":case"mouseout":cw=null;break;case"pointerover":case"pointerout":ck.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":cS.delete(t.pointerId)}}function cA(e,t,n,r,a,o){return null===e||e.nativeEvent!==o?(e={blockedOn:t,domEventName:n,eventSystemFlags:r,nativeEvent:o,targetContainers:[a]},null!==t&&null!==(t=eq(t))&&cl(t)):(e.eventSystemFlags|=r,t=e.targetContainers,null!==a&&-1===t.indexOf(a)&&t.push(a)),e}function cT(e){var t=eW(e.target);if(null!==t){var n=u(t);if(null!==n){if(13===(t=n.tag)){if(null!==(t=c(n))){e.blockedOn=t,eR(e.priority,function(){cs(n)});return}}else if(31===t){if(null!==(t=d(n))){e.blockedOn=t,eR(e.priority,function(){cs(n)});return}}else if(3===t&&n.stateNode.current.memoizedState.isDehydrated){e.blockedOn=3===n.tag?n.stateNode.containerInfo:null;return}}}e.blockedOn=null}function cC(e){if(null!==e.blockedOn)return!1;for(var t=e.targetContainers;0<t.length;){var n=cp(e.nativeEvent);if(null!==n)return null!==(t=eq(n))&&cl(t),e.blockedOn=n,!1;var r=new(n=e.nativeEvent).constructor(n.type,n);ty=r,n.target.dispatchEvent(r),ty=null,t.shift()}return!0}function cP(e,t,n){cC(e)&&n.delete(t)}function cO(){cb=!1,null!==cy&&cC(cy)&&(cy=null),null!==cv&&cC(cv)&&(cv=null),null!==cw&&cC(cw)&&(cw=null),ck.forEach(cP),cS.forEach(cP)}function cL(e,t){e.blockedOn===t&&(e.blockedOn=null,cb||(cb=!0,a.unstable_scheduleCallback(a.unstable_NormalPriority,cO)))}var cN=null;function cj(e){cN!==e&&(cN=e,a.unstable_scheduleCallback(a.unstable_NormalPriority,function(){cN===e&&(cN=null);for(var t=0;t<e.length;t+=3){var n=e[t],r=e[t+1],a=e[t+2];if("function"!=typeof r)if(null===ch(r||n))continue;else break;var o=eq(n);null!==o&&(e.splice(t,3),t-=3,oX(o,{pending:!0,data:a,method:n.method,action:r},r,a))}}))}function cR(e){function t(t){return cL(t,e)}null!==cy&&cL(cy,e),null!==cv&&cL(cv,e),null!==cw&&cL(cw,e),ck.forEach(t),cS.forEach(t);for(var n=0;n<cx.length;n++){var r=cx[n];r.blockedOn===e&&(r.blockedOn=null)}for(;0<cx.length&&null===(n=cx[0]).blockedOn;)cT(n),null===n.blockedOn&&cx.shift();if(null!=(n=(e.ownerDocument||e).$$reactFormReplay))for(r=0;r<n.length;r+=3){var a=n[r],o=n[r+1],i=a[eF]||null;if("function"==typeof o)i||cj(n);else if(i){var l=null;if(o&&o.hasAttribute("formAction")){if(a=o,i=o[eF]||null)l=i.formAction;else if(null!==ch(a))continue}else l=i.action;"function"==typeof l?n[r+1]=l:(n.splice(r,3),r-=3),cj(n)}}}function cI(){function e(e){e.canIntercept&&"react-transition"===e.info&&e.intercept({handler:function(){return new Promise(function(e){return a=e})},focusReset:"manual",scroll:"manual"})}function t(){null!==a&&(a(),a=null),r||setTimeout(n,20)}function n(){if(!r&&!navigation.transition){var e=navigation.currentEntry;e&&null!=e.url&&navigation.navigate(e.url,{state:e.getState(),info:"react-transition",history:"replace"})}}if("object"==typeof navigation){var r=!1,a=null;return navigation.addEventListener("navigate",e),navigation.addEventListener("navigatesuccess",t),navigation.addEventListener("navigateerror",t),setTimeout(n,100),function(){r=!0,navigation.removeEventListener("navigate",e),navigation.removeEventListener("navigatesuccess",t),navigation.removeEventListener("navigateerror",t),null!==a&&(a(),a=null)}}}function cD(e){this._internalRoot=e}function cF(e){this._internalRoot=e}cF.prototype.render=cD.prototype.render=function(e){var t=this._internalRoot;if(null===t)throw Error(l(409));ca(t.current,si(),e,t,null,null)},cF.prototype.unmount=cD.prototype.unmount=function(){var e=this._internalRoot;if(null!==e){this._internalRoot=null;var t=e.containerInfo;ca(e.current,2,null,e,null,null),sf(),t[ez]=null}},cF.prototype.unstable_scheduleHydration=function(e){if(e){var t=ej();e={blockedOn:null,target:e,priority:t};for(var n=0;n<cx.length&&0!==t&&t<cx[n].priority;n++);cx.splice(n,0,e),0===n&&cT(e)}};var cz=o.version;if("19.2.8"!==cz)throw Error(l(527,cz,"19.2.8"));if(R.findDOMNode=function(e){var t=e._reactInternals;if(void 0===t){if("function"==typeof e.render)throw Error(l(188));throw Error(l(268,e=Object.keys(e).join(",")))}return null===(e=null!==(e=function(e){var t=e.alternate;if(!t){if(null===(t=u(e)))throw Error(l(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 f(a),e;if(o===r)return f(a),t;o=o.sibling}throw Error(l(188))}if(n.return!==r.return)n=a,r=o;else{for(var i=!1,s=a.child;s;){if(s===n){i=!0,n=a,r=o;break}if(s===r){i=!0,r=a,n=o;break}s=s.sibling}if(!i){for(s=o.child;s;){if(s===n){i=!0,n=o,r=a;break}if(s===r){i=!0,r=o,n=a;break}s=s.sibling}if(!i)throw Error(l(189))}}if(n.alternate!==r)throw Error(l(190))}if(3!==n.tag)throw Error(l(188));return n.stateNode.current===n?e:t}(t))?function e(t){var n=t.tag;if(5===n||26===n||27===n||6===n)return t;for(t=t.child;null!==t;){if(null!==(n=e(t)))return n;t=t.sibling}return null}(e):null)?null:e.stateNode},"u">typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var cM=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!cM.isDisabled&&cM.supportsFiber)try{ep=cM.inject({bundleType:0,version:"19.2.8",rendererPackageName:"react-dom",currentDispatcherRef:j,reconcilerVersion:"19.2.8"}),em=cM}catch(e){}}t.createRoot=function(e,t){if(!s(e))throw Error(l(299));var n=!1,r="",a=ip,o=im,i=ih;return null!=t&&(!0===t.unstable_strictMode&&(n=!0),void 0!==t.identifierPrefix&&(r=t.identifierPrefix),void 0!==t.onUncaughtError&&(a=t.onUncaughtError),void 0!==t.onCaughtError&&(o=t.onCaughtError),void 0!==t.onRecoverableError&&(i=t.onRecoverableError)),t=cr(e,1,!1,null,null,n,r,null,a,o,i,cI),e[ez]=t.current,ue(e),new cD(t)},t.hydrateRoot=function(e,t,n){if(!s(e))throw Error(l(299));var r=!1,a="",o=ip,i=im,u=ih,c=null;return null!=n&&(!0===n.unstable_strictMode&&(r=!0),void 0!==n.identifierPrefix&&(a=n.identifierPrefix),void 0!==n.onUncaughtError&&(o=n.onUncaughtError),void 0!==n.onCaughtError&&(i=n.onCaughtError),void 0!==n.onRecoverableError&&(u=n.onRecoverableError),void 0!==n.formState&&(c=n.formState)),(t=cr(e,1,!0,t,null!=n?n:null,r,a,c,o,i,u,cI)).context=n7,n=t.current,(a=a_(r=eL(r=si()))).callback=null,aA(n,a,r),n=r,t.current.lanes=n,eT(t,n),sq(t),e[ez]=t.current,ue(e),new cF(t)},t.version="19.2.8"},4797(e,t,n){"use strict";var r=n(1763);function a(e){var t="https://react.dev/errors/"+e;if(1<arguments.length){t+="?args[]="+encodeURIComponent(arguments[1]);for(var n=2;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."}function o(){}var i={d:{f:o,r:function(){throw Error(a(522))},D:o,C:o,L:o,m:o,X:o,S:o,M:o},p:0,findDOMNode:null},l=Symbol.for("react.portal"),s=r.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;function u(e,t){return"font"===e?"":"string"==typeof t?"use-credentials"===t?t:"":void 0}t.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=i,t.createPortal=function(e,t){var n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!t||1!==t.nodeType&&9!==t.nodeType&&11!==t.nodeType)throw Error(a(299));return function(e,t,n){var r=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:l,key:null==r?null:""+r,children:e,containerInfo:t,implementation:n}}(e,t,null,n)},t.flushSync=function(e){var t=s.T,n=i.p;try{if(s.T=null,i.p=2,e)return e()}finally{s.T=t,i.p=n,i.d.f()}},t.preconnect=function(e,t){"string"==typeof e&&(t=t?"string"==typeof(t=t.crossOrigin)?"use-credentials"===t?t:"":void 0:null,i.d.C(e,t))},t.prefetchDNS=function(e){"string"==typeof e&&i.d.D(e)},t.preinit=function(e,t){if("string"==typeof e&&t&&"string"==typeof t.as){var n=t.as,r=u(n,t.crossOrigin),a="string"==typeof t.integrity?t.integrity:void 0,o="string"==typeof t.fetchPriority?t.fetchPriority:void 0;"style"===n?i.d.S(e,"string"==typeof t.precedence?t.precedence:void 0,{crossOrigin:r,integrity:a,fetchPriority:o}):"script"===n&&i.d.X(e,{crossOrigin:r,integrity:a,fetchPriority:o,nonce:"string"==typeof t.nonce?t.nonce:void 0})}},t.preinitModule=function(e,t){if("string"==typeof e)if("object"==typeof t&&null!==t){if(null==t.as||"script"===t.as){var n=u(t.as,t.crossOrigin);i.d.M(e,{crossOrigin:n,integrity:"string"==typeof t.integrity?t.integrity:void 0,nonce:"string"==typeof t.nonce?t.nonce:void 0})}}else null==t&&i.d.M(e)},t.preload=function(e,t){if("string"==typeof e&&"object"==typeof t&&null!==t&&"string"==typeof t.as){var n=t.as,r=u(n,t.crossOrigin);i.d.L(e,n,{crossOrigin:r,integrity:"string"==typeof t.integrity?t.integrity:void 0,nonce:"string"==typeof t.nonce?t.nonce:void 0,type:"string"==typeof t.type?t.type:void 0,fetchPriority:"string"==typeof t.fetchPriority?t.fetchPriority:void 0,referrerPolicy:"string"==typeof t.referrerPolicy?t.referrerPolicy:void 0,imageSrcSet:"string"==typeof t.imageSrcSet?t.imageSrcSet:void 0,imageSizes:"string"==typeof t.imageSizes?t.imageSizes:void 0,media:"string"==typeof t.media?t.media:void 0})}},t.preloadModule=function(e,t){if("string"==typeof e)if(t){var n=u(t.as,t.crossOrigin);i.d.m(e,{as:"string"==typeof t.as&&"script"!==t.as?t.as:void 0,crossOrigin:n,integrity:"string"==typeof t.integrity?t.integrity:void 0})}else i.d.m(e)},t.requestFormReset=function(e){i.d.r(e)},t.unstable_batchedUpdates=function(e,t){return e(t)},t.useFormState=function(e,t,n){return s.H.useFormState(e,t,n)},t.useFormStatus=function(){return s.H.useHostTransitionStatus()},t.version="19.2.8"},6122(e,t,n){"use strict";!function e(){if("u">typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(e){console.error(e)}}(),e.exports=n(1663)},8481(e,t,n){"use strict";!function e(){if("u">typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(e){console.error(e)}}(),e.exports=n(4797)},4072(e){var t="u">typeof Element,n="function"==typeof Map,r="function"==typeof Set,a="function"==typeof ArrayBuffer&&!!ArrayBuffer.isView;e.exports=function(e,o){try{return function e(o,i){if(o===i)return!0;if(o&&i&&"object"==typeof o&&"object"==typeof i){var l,s,u,c;if(o.constructor!==i.constructor)return!1;if(Array.isArray(o)){if((l=o.length)!=i.length)return!1;for(s=l;0!=s--;)if(!e(o[s],i[s]))return!1;return!0}if(n&&o instanceof Map&&i instanceof Map){if(o.size!==i.size)return!1;for(c=o.entries();!(s=c.next()).done;)if(!i.has(s.value[0]))return!1;for(c=o.entries();!(s=c.next()).done;)if(!e(s.value[1],i.get(s.value[0])))return!1;return!0}if(r&&o instanceof Set&&i instanceof Set){if(o.size!==i.size)return!1;for(c=o.entries();!(s=c.next()).done;)if(!i.has(s.value[0]))return!1;return!0}if(a&&ArrayBuffer.isView(o)&&ArrayBuffer.isView(i)){if((l=o.length)!=i.length)return!1;for(s=l;0!=s--;)if(o[s]!==i[s])return!1;return!0}if(o.constructor===RegExp)return o.source===i.source&&o.flags===i.flags;if(o.valueOf!==Object.prototype.valueOf&&"function"==typeof o.valueOf&&"function"==typeof i.valueOf)return o.valueOf()===i.valueOf();if(o.toString!==Object.prototype.toString&&"function"==typeof o.toString&&"function"==typeof i.toString)return o.toString()===i.toString();if((l=(u=Object.keys(o)).length)!==Object.keys(i).length)return!1;for(s=l;0!=s--;)if(!Object.prototype.hasOwnProperty.call(i,u[s]))return!1;if(t&&o instanceof Element)return!1;for(s=l;0!=s--;)if(("_owner"!==u[s]&&"__v"!==u[s]&&"__o"!==u[s]||!o.$$typeof)&&!e(o[u[s]],i[u[s]]))return!1;return!0}return o!=o&&i!=i}(e,o)}catch(e){if((e.message||"").match(/stack|recursion/i))return console.warn("react-fast-compare cannot handle circular refs"),!1;throw e}}},5843(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,s=n?Symbol.for("react.provider"):60109,u=n?Symbol.for("react.context"):60110,c=n?Symbol.for("react.async_mode"):60111,d=n?Symbol.for("react.concurrent_mode"):60111,f=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,b=n?Symbol.for("react.block"):60121,y=n?Symbol.for("react.fundamental"):60117,v=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 d:case o:case l:case i:case p:return e;default:switch(e=e&&e.$$typeof){case u:case f:case g:case h:case s:return e;default:return t}}case a:return t}}}function S(e){return k(e)===d}t.AsyncMode=c,t.ConcurrentMode=d,t.ContextConsumer=u,t.ContextProvider=s,t.Element=r,t.ForwardRef=f,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 S(e)||k(e)===c},t.isConcurrentMode=S,t.isContextConsumer=function(e){return k(e)===u},t.isContextProvider=function(e){return k(e)===s},t.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===r},t.isForwardRef=function(e){return k(e)===f},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===d||e===l||e===i||e===p||e===m||"object"==typeof e&&null!==e&&(e.$$typeof===g||e.$$typeof===h||e.$$typeof===s||e.$$typeof===u||e.$$typeof===f||e.$$typeof===y||e.$$typeof===v||e.$$typeof===w||e.$$typeof===b)},t.typeOf=k},5959(e,t,n){"use strict";e.exports=n(5843)},6345(e,t,n){"use strict";n.d(t,{u:()=>function e(t,n,a){return void 0===a&&(a=[]),t.some(function(t){var o=t.path?(0,r.B6)(n,t):a.length?a[a.length-1].match:r.Ix.computeRootMatch(n);return o&&(a.push({route:t,match:o}),t.routes&&e(t.routes,n,a)),o}),a},v:()=>i});var r=n(6532),a=n(5062),o=n(1763);function i(e,t,n){return void 0===t&&(t={}),void 0===n&&(n={}),e?o.createElement(r.dO,n,e.map(function(e,n){return o.createElement(r.qh,{key:e.key||n,path:e.path,exact:e.exact,strict:e.strict,render:function(n){return e.render?e.render((0,a.A)({},n,{},t,{route:e})):o.createElement(e.component,(0,a.A)({},n,t,{route:e}))}})})):null}},5399(e,t,n){"use strict";n.d(t,{I9:()=>d,Kd:()=>c,N_:()=>b,k2:()=>w});var r=n(6532),a=n(949),o=n(1763),i=n(477),l=n(5062),s=n(6905),u=n(5385),c=function(e){function t(){for(var t,n=arguments.length,r=Array(n),a=0;a<n;a++)r[a]=arguments[a];return(t=e.call.apply(e,[this].concat(r))||this).history=(0,i.zR)(t.props),t}return(0,a.A)(t,e),t.prototype.render=function(){return o.createElement(r.Ix,{history:this.history,children:this.props.children})},t}(o.Component),d=function(e){function t(){for(var t,n=arguments.length,r=Array(n),a=0;a<n;a++)r[a]=arguments[a];return(t=e.call.apply(e,[this].concat(r))||this).history=(0,i.TM)(t.props),t}return(0,a.A)(t,e),t.prototype.render=function(){return o.createElement(r.Ix,{history:this.history,children:this.props.children})},t}(o.Component),f=function(e,t){return"function"==typeof e?e(t):e},p=function(e,t){return"string"==typeof e?(0,i.yJ)(e,null,null,t):e},m=function(e){return e},h=o.forwardRef;void 0===h&&(h=m);var g=h(function(e,t){var n=e.innerRef,r=e.navigate,a=e.onClick,i=(0,s.A)(e,["innerRef","navigate","onClick"]),u=i.target,c=(0,l.A)({},i,{onClick:function(e){try{a&&a(e)}catch(t){throw e.preventDefault(),t}e.defaultPrevented||0!==e.button||u&&"_self"!==u||e.metaKey||e.altKey||e.ctrlKey||e.shiftKey||(e.preventDefault(),r())}});return m!==h?c.ref=t||n:c.ref=n,o.createElement("a",c)}),b=h(function(e,t){var n=e.component,a=void 0===n?g:n,c=e.replace,d=e.to,b=e.innerRef,y=(0,s.A)(e,["component","replace","to","innerRef"]);return o.createElement(r.XZ.Consumer,null,function(e){e||(0,u.A)(!1);var n=e.history,r=p(f(d,e.location),e.location),s=r?n.createHref(r):"",g=(0,l.A)({},y,{href:s,navigate:function(){var t=f(d,e.location),r=(0,i.AO)(e.location)===(0,i.AO)(p(t));(c||r?n.replace:n.push)(t)}});return m!==h?g.ref=t||b:g.innerRef=b,o.createElement(a,g)})}),y=function(e){return e},v=o.forwardRef;void 0===v&&(v=y);var w=v(function(e,t){var n=e["aria-current"],a=void 0===n?"page":n,i=e.activeClassName,c=void 0===i?"active":i,d=e.activeStyle,m=e.className,h=e.exact,g=e.isActive,w=e.location,k=e.sensitive,S=e.strict,x=e.style,E=e.to,_=e.innerRef,A=(0,s.A)(e,["aria-current","activeClassName","activeStyle","className","exact","isActive","location","sensitive","strict","style","to","innerRef"]);return o.createElement(r.XZ.Consumer,null,function(e){e||(0,u.A)(!1);var n=w||e.location,i=p(f(E,n),n),s=i.pathname,T=s&&s.replace(/([.+*?=^!:${}()[\]|/\\])/g,"\\$1"),C=T?(0,r.B6)(n.pathname,{path:T,exact:h,sensitive:k,strict:S}):null,P=!!(g?g(C,n):C),O="function"==typeof m?m(P):m,L="function"==typeof x?x(P):x;P&&(O=function(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];return t.filter(function(e){return e}).join(" ")}(O,c),L=(0,l.A)({},L,d));var N=(0,l.A)({"aria-current":P&&a||null,className:O,style:L,to:i},A);return y!==v?N.ref=t||_:N.innerRef=_,o.createElement(b,N)})})},6532(e,t,n){"use strict";n.d(t,{B6:()=>v,Ix:()=>g,W6:()=>x,XZ:()=>h,dO:()=>k,qh:()=>w,zy:()=>E});var r=n(949),a=n(1763),o=n(2736),i=n.n(o),l=(n(477),n(5385)),s=n(5062),u=n(4785),c=n.n(u);n(5959),n(6905),n(1035);var d="u">typeof globalThis?globalThis:"u">typeof window?window:void 0!==n.g?n.g:{},f=a.createContext||function(e,t){var n,o,l="__create-react-context-"+(d.__global_unique_id__=(d.__global_unique_id__||0)+1)+"__",s=function(e){function n(){for(var t,n,r,a=arguments.length,o=Array(a),i=0;i<a;i++)o[i]=arguments[i];return n=(t=e.call.apply(e,[this].concat(o))||this).props.value,r=[],t.emitter={on:function(e){r.push(e)},off:function(e){r=r.filter(function(t){return t!==e})},get:function(){return n},set:function(e,t){n=e,r.forEach(function(e){return e(n,t)})}},t}(0,r.A)(n,e);var a=n.prototype;return a.getChildContext=function(){var e;return(e={})[l]=this.emitter,e},a.componentWillReceiveProps=function(e){if(this.props.value!==e.value){var n,r=this.props.value,a=e.value;(r===a?0!==r||1/r==1/a:r!=r&&a!=a)?n=0:0!=(n=("function"==typeof t?t(r,a):0x3fffffff)|0)&&this.emitter.set(e.value,n)}},a.render=function(){return this.props.children},n}(a.Component);(n={})[l]=i().object.isRequired,s.childContextTypes=n;var u=function(t){function n(){for(var e,n=arguments.length,r=Array(n),a=0;a<n;a++)r[a]=arguments[a];return(e=t.call.apply(t,[this].concat(r))||this).observedBits=void 0,e.state={value:e.getValue()},e.onUpdate=function(t,n){(e.observedBits&n)!=0&&e.setState({value:e.getValue()})},e}(0,r.A)(n,t);var a=n.prototype;return a.componentWillReceiveProps=function(e){var t=e.observedBits;this.observedBits=null==t?0x3fffffff:t},a.componentDidMount=function(){this.context[l]&&this.context[l].on(this.onUpdate);var e=this.props.observedBits;this.observedBits=null==e?0x3fffffff:e},a.componentWillUnmount=function(){this.context[l]&&this.context[l].off(this.onUpdate)},a.getValue=function(){return this.context[l]?this.context[l].get():e},a.render=function(){var e;return(Array.isArray(e=this.props.children)?e[0]:e)(this.state.value)},n}(a.Component);return(o={})[l]=i().object,u.contextTypes=o,{Provider:s,Consumer:u}},p=function(e){var t=f();return t.displayName=e,t},m=p("Router-History"),h=p("Router"),g=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.A)(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(h.Provider,{value:{history:this.props.history,location:this.state.location,match:t.computeRootMatch(this.state.location.pathname),staticContext:this.props.staticContext}},a.createElement(m.Provider,{children:this.props.children||null,value:this.props.history}))},t}(a.Component);a.Component,a.Component;var b={},y=0;function v(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,s=n.sensitive,u=void 0!==s&&s;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=b[n]||(b[n]={});if(r[e])return r[e];var a=[],o={regexp:c()(e,a,t),keys:a};return y<1e4&&(r[e]=o,y++),o}(n,{end:o,strict:l,sensitive:u}),a=r.regexp,i=r.keys,s=a.exec(e);if(!s)return null;var d=s[0],f=s.slice(1),p=e===d;return o&&!p?null:{path:n,url:"/"===n&&""===d?"/":d,isExact:p,params:i.reduce(function(e,t,n){return e[t.name]=f[n],e},{})}},null)}var w=function(e){function t(){return e.apply(this,arguments)||this}return(0,r.A)(t,e),t.prototype.render=function(){var e=this;return a.createElement(h.Consumer,null,function(t){t||(0,l.A)(!1);var n,r=e.props.location||t.location,o=e.props.computedMatch?e.props.computedMatch:e.props.path?v(r.pathname,e.props):t.match,i=(0,s.A)({},t,{location:r,match:o}),u=e.props,c=u.children,d=u.component,f=u.render;return Array.isArray(c)&&(n=c,0===a.Children.count(n))&&(c=null),a.createElement(h.Provider,{value:i},i.match?c?"function"==typeof c?c(i):c:d?a.createElement(d,i):f?f(i):null:"function"==typeof c?c(i):null)})},t}(a.Component);a.Component;var k=function(e){function t(){return e.apply(this,arguments)||this}return(0,r.A)(t,e),t.prototype.render=function(){var e=this;return a.createElement(h.Consumer,null,function(t){t||(0,l.A)(!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?v(o.pathname,(0,s.A)({},e.props,{path:i})):t.match}}),r?a.cloneElement(n,{location:o,computedMatch:r}):null})},t}(a.Component),S=a.useContext;function x(){return S(m)}function E(){return S(h).location}},1791(e,t){"use strict";var n=Symbol.for("react.transitional.element");function r(e,t,r){var a=null;if(void 0!==r&&(a=""+r),void 0!==t.key&&(a=""+t.key),"key"in t)for(var o in r={},t)"key"!==o&&(r[o]=t[o]);else r=t;return{$$typeof:n,type:e,key:a,ref:void 0!==(t=r.ref)?t:null,props:r}}t.Fragment=Symbol.for("react.fragment"),t.jsx=r,t.jsxs=r},6160(e,t){"use strict";var n=Symbol.for("react.transitional.element"),r=Symbol.for("react.portal"),a=Symbol.for("react.fragment"),o=Symbol.for("react.strict_mode"),i=Symbol.for("react.profiler"),l=Symbol.for("react.consumer"),s=Symbol.for("react.context"),u=Symbol.for("react.forward_ref"),c=Symbol.for("react.suspense"),d=Symbol.for("react.memo"),f=Symbol.for("react.lazy"),p=Symbol.for("react.activity"),m=Symbol.iterator,h={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},g=Object.assign,b={};function y(e,t,n){this.props=e,this.context=t,this.refs=b,this.updater=n||h}function v(){}function w(e,t,n){this.props=e,this.context=t,this.refs=b,this.updater=n||h}y.prototype.isReactComponent={},y.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")},y.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},v.prototype=y.prototype;var k=w.prototype=new v;k.constructor=w,g(k,y.prototype),k.isPureReactComponent=!0;var S=Array.isArray;function x(){}var E={H:null,A:null,T:null,S:null},_=Object.prototype.hasOwnProperty;function A(e,t,r){var a=r.ref;return{$$typeof:n,type:e,key:t,ref:void 0!==a?a:null,props:r}}function T(e){return"object"==typeof e&&null!==e&&e.$$typeof===n}var C=/\/+/g;function P(e,t){var n,r;return"object"==typeof e&&null!==e&&null!=e.key?(n=""+e.key,r={"=":"=0",":":"=2"},"$"+n.replace(/[=:]/g,function(e){return r[e]})):t.toString(36)}function O(e,t,a){if(null==e)return e;var o=[],i=0;return!function e(t,a,o,i,l){var s,u,c,d=typeof t;("undefined"===d||"boolean"===d)&&(t=null);var p=!1;if(null===t)p=!0;else switch(d){case"bigint":case"string":case"number":p=!0;break;case"object":switch(t.$$typeof){case n:case r:p=!0;break;case f:return e((p=t._init)(t._payload),a,o,i,l)}}if(p)return l=l(t),p=""===i?"."+P(t,0):i,S(l)?(o="",null!=p&&(o=p.replace(C,"$&/")+"/"),e(l,a,o,"",function(e){return e})):null!=l&&(T(l)&&(s=l,u=o+(null==l.key||t&&t.key===l.key?"":(""+l.key).replace(C,"$&/")+"/")+p,l=A(s.type,u,s.props)),a.push(l)),1;p=0;var h=""===i?".":i+":";if(S(t))for(var g=0;g<t.length;g++)d=h+P(i=t[g],g),p+=e(i,a,o,d,l);else if("function"==typeof(g=null===(c=t)||"object"!=typeof c?null:"function"==typeof(c=m&&c[m]||c["@@iterator"])?c:null))for(t=g.call(t),g=0;!(i=t.next()).done;)d=h+P(i=i.value,g++),p+=e(i,a,o,d,l);else if("object"===d){if("function"==typeof t.then)return e(function(e){switch(e.status){case"fulfilled":return e.value;case"rejected":throw e.reason;default:switch("string"==typeof e.status?e.then(x,x):(e.status="pending",e.then(function(t){"pending"===e.status&&(e.status="fulfilled",e.value=t)},function(t){"pending"===e.status&&(e.status="rejected",e.reason=t)})),e.status){case"fulfilled":return e.value;case"rejected":throw e.reason}}throw e}(t),a,o,i,l);throw Error("Objects are not valid as a React child (found: "+("[object Object]"===(a=String(t))?"object with keys {"+Object.keys(t).join(", ")+"}":a)+"). If you meant to render a collection of children, use an array instead.")}return p}(e,o,"","",function(e){return t.call(a,e,i++)}),o}function L(e){if(-1===e._status){var t=e._result;(t=t()).then(function(t){(0===e._status||-1===e._status)&&(e._status=1,e._result=t)},function(t){(0===e._status||-1===e._status)&&(e._status=2,e._result=t)}),-1===e._status&&(e._status=0,e._result=t)}if(1===e._status)return e._result.default;throw e._result}var N="function"==typeof reportError?reportError:function(e){if("object"==typeof window&&"function"==typeof window.ErrorEvent){var t=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:"object"==typeof e&&null!==e&&"string"==typeof e.message?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if("object"==typeof process&&"function"==typeof process.emit)return void process.emit("uncaughtException",e);console.error(e)};t.Activity=p,t.Children={map:O,forEach:function(e,t,n){O(e,function(){t.apply(this,arguments)},n)},count:function(e){var t=0;return O(e,function(){t++}),t},toArray:function(e){return O(e,function(e){return e})||[]},only:function(e){if(!T(e))throw Error("React.Children.only expected to receive a single React element child.");return e}},t.Component=y,t.Fragment=a,t.Profiler=i,t.PureComponent=w,t.StrictMode=o,t.Suspense=c,t.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=E,t.__COMPILER_RUNTIME={__proto__:null,c:function(e){return E.H.useMemoCache(e)}},t.cache=function(e){return function(){return e.apply(null,arguments)}},t.cacheSignal=function(){return null},t.cloneElement=function(e,t,n){if(null==e)throw Error("The argument must be a React element, but you passed "+e+".");var r=g({},e.props),a=e.key;if(null!=t)for(o in void 0!==t.key&&(a=""+t.key),t)_.call(t,o)&&"key"!==o&&"__self"!==o&&"__source"!==o&&("ref"!==o||void 0!==t.ref)&&(r[o]=t[o]);var o=arguments.length-2;if(1===o)r.children=n;else if(1<o){for(var i=Array(o),l=0;l<o;l++)i[l]=arguments[l+2];r.children=i}return A(e.type,a,r)},t.createContext=function(e){return(e={$$typeof:s,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null}).Provider=e,e.Consumer={$$typeof:l,_context:e},e},t.createElement=function(e,t,n){var r,a={},o=null;if(null!=t)for(r in void 0!==t.key&&(o=""+t.key),t)_.call(t,r)&&"key"!==r&&"__self"!==r&&"__source"!==r&&(a[r]=t[r]);var i=arguments.length-2;if(1===i)a.children=n;else if(1<i){for(var l=Array(i),s=0;s<i;s++)l[s]=arguments[s+2];a.children=l}if(e&&e.defaultProps)for(r in i=e.defaultProps)void 0===a[r]&&(a[r]=i[r]);return A(e,o,a)},t.createRef=function(){return{current:null}},t.forwardRef=function(e){return{$$typeof:u,render:e}},t.isValidElement=T,t.lazy=function(e){return{$$typeof:f,_payload:{_status:-1,_result:e},_init:L}},t.memo=function(e,t){return{$$typeof:d,type:e,compare:void 0===t?null:t}},t.startTransition=function(e){var t=E.T,n={};E.T=n;try{var r=e(),a=E.S;null!==a&&a(n,r),"object"==typeof r&&null!==r&&"function"==typeof r.then&&r.then(x,N)}catch(e){N(e)}finally{null!==t&&null!==n.types&&(t.types=n.types),E.T=t}},t.unstable_useCacheRefresh=function(){return E.H.useCacheRefresh()},t.use=function(e){return E.H.use(e)},t.useActionState=function(e,t,n){return E.H.useActionState(e,t,n)},t.useCallback=function(e,t){return E.H.useCallback(e,t)},t.useContext=function(e){return E.H.useContext(e)},t.useDebugValue=function(){},t.useDeferredValue=function(e,t){return E.H.useDeferredValue(e,t)},t.useEffect=function(e,t){return E.H.useEffect(e,t)},t.useEffectEvent=function(e){return E.H.useEffectEvent(e)},t.useId=function(){return E.H.useId()},t.useImperativeHandle=function(e,t,n){return E.H.useImperativeHandle(e,t,n)},t.useInsertionEffect=function(e,t){return E.H.useInsertionEffect(e,t)},t.useLayoutEffect=function(e,t){return E.H.useLayoutEffect(e,t)},t.useMemo=function(e,t){return E.H.useMemo(e,t)},t.useOptimistic=function(e,t){return E.H.useOptimistic(e,t)},t.useReducer=function(e,t,n){return E.H.useReducer(e,t,n)},t.useRef=function(e){return E.H.useRef(e)},t.useState=function(e){return E.H.useState(e)},t.useSyncExternalStore=function(e,t,n){return E.H.useSyncExternalStore(e,t,n)},t.useTransition=function(){return E.H.useTransition()},t.version="19.2.8"},1763(e,t,n){"use strict";e.exports=n(6160)},1987(e,t,n){"use strict";e.exports=n(1791)},4697(e,t){"use strict";function n(e,t){var n=e.length;for(e.push(t);0<n;){var r=n-1>>>1,a=e[r];if(0<o(a,t))e[r]=t,e[n]=a,n=r;else break}}function r(e){return 0===e.length?null:e[0]}function a(e){if(0===e.length)return null;var t=e[0],n=e.pop();if(n!==t){e[0]=n;for(var r=0,a=e.length,i=a>>>1;r<i;){var l=2*(r+1)-1,s=e[l],u=l+1,c=e[u];if(0>o(s,n))u<a&&0>o(c,s)?(e[r]=c,e[u]=n,r=u):(e[r]=s,e[l]=n,r=l);else if(u<a&&0>o(c,n))e[r]=c,e[u]=n,r=u;else break}}return t}function o(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}if(t.unstable_now=void 0,"object"==typeof performance&&"function"==typeof performance.now){var i,l=performance;t.unstable_now=function(){return l.now()}}else{var s=Date,u=s.now();t.unstable_now=function(){return s.now()-u}}var c=[],d=[],f=1,p=null,m=3,h=!1,g=!1,b=!1,y=!1,v="function"==typeof setTimeout?setTimeout:null,w="function"==typeof clearTimeout?clearTimeout:null,k="u">typeof setImmediate?setImmediate:null;function S(e){for(var t=r(d);null!==t;){if(null===t.callback)a(d);else if(t.startTime<=e)a(d),t.sortIndex=t.expirationTime,n(c,t);else break;t=r(d)}}function x(e){if(b=!1,S(e),!g)if(null!==r(c))g=!0,E||(E=!0,i());else{var t=r(d);null!==t&&N(x,t.startTime-e)}}var E=!1,_=-1,A=5,T=-1;function C(){return!!y||!(t.unstable_now()-T<A)}function P(){if(y=!1,E){var e=t.unstable_now();T=e;var n=!0;try{e:{g=!1,b&&(b=!1,w(_),_=-1),h=!0;var o=m;try{t:{for(S(e),p=r(c);null!==p&&!(p.expirationTime>e&&C());){var l=p.callback;if("function"==typeof l){p.callback=null,m=p.priorityLevel;var s=l(p.expirationTime<=e);if(e=t.unstable_now(),"function"==typeof s){p.callback=s,S(e),n=!0;break t}p===r(c)&&a(c),S(e)}else a(c);p=r(c)}if(null!==p)n=!0;else{var u=r(d);null!==u&&N(x,u.startTime-e),n=!1}}break e}finally{p=null,m=o,h=!1}}}finally{n?i():E=!1}}}if("function"==typeof k)i=function(){k(P)};else if("u">typeof MessageChannel){var O=new MessageChannel,L=O.port2;O.port1.onmessage=P,i=function(){L.postMessage(null)}}else i=function(){v(P,0)};function N(e,n){_=v(function(){e(t.unstable_now())},n)}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_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"):A=0<e?Math.floor(1e3/e):5},t.unstable_getCurrentPriorityLevel=function(){return m},t.unstable_next=function(e){switch(m){case 1:case 2:case 3:var t=3;break;default:t=m}var n=m;m=t;try{return e()}finally{m=n}},t.unstable_requestPaint=function(){y=!0},t.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=m;m=e;try{return t()}finally{m=n}},t.unstable_scheduleCallback=function(e,a,o){var l=t.unstable_now();switch(o="object"==typeof o&&null!==o&&"number"==typeof(o=o.delay)&&0<o?l+o:l,e){case 1:var s=-1;break;case 2:s=250;break;case 5:s=0x3fffffff;break;case 4:s=1e4;break;default:s=5e3}return s=o+s,e={id:f++,callback:a,priorityLevel:e,startTime:o,expirationTime:s,sortIndex:-1},o>l?(e.sortIndex=o,n(d,e),null===r(c)&&e===r(d)&&(b?(w(_),_=-1):b=!0,N(x,o-l))):(e.sortIndex=s,n(c,e),g||h||(g=!0,E||(E=!0,i()))),e},t.unstable_shouldYield=C,t.unstable_wrapCallback=function(e){var t=m;return function(){var n=m;m=t;try{return e.apply(this,arguments)}finally{m=n}}}},5666(e,t,n){"use strict";e.exports=n(4697)},2945(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),s=0;s<o.length;s++){var u=o[s];if(!l(u))return!1;var c=e[u],d=t[u];if(!1===(a=n?n.call(r,c,d,u):void 0)||void 0===a&&c!==d)return!1}return!0}},439(e,t,n){"use strict";n.d(t,{A:()=>f}),n(1763);var r=n(1987),a=n(182),o=n.n(a),i=n(4054);let l={0x11113f9:[()=>Promise.all([n.e("14"),n.e("106")]).then(n.bind(n,2416)),"@theme/DocItem",2416],"17bb2c49":[()=>n.e("604").then(n.bind(n,770)),"@site/i18n/en/docusaurus-plugin-content-docs/current/license.md",770],"1bc5dae4":[()=>n.e("697").then(n.bind(n,8614)),"@site/i18n/en/docusaurus-plugin-content-docs/current/performance.md",8614],"1df93b7f":[()=>Promise.all([n.e("14"),n.e("452")]).then(n.bind(n,2029)),"@site/src/pages/index.tsx",2029],"20ddc183":[()=>n.e("451").then(n.bind(n,7025)),"@site/i18n/en/docusaurus-plugin-content-docs/current/transport/protocol/tcp.md",7025],"2506a922":[()=>n.e("413").then(n.bind(n,3569)),"@site/i18n/en/docusaurus-plugin-content-docs/current/transport/tcp-mux.md",3569],"2a662f4c":[()=>n.e("572").then(n.t.bind(n,293,19)),"@generated/docusaurus-plugin-content-docs/default/p/orbien-en-docs-70e.json",293],"2f2388ac":[()=>n.e("331").then(n.bind(n,3818)),"@site/i18n/en/docusaurus-plugin-content-docs/current/transport/protocol/quic.md",3818],"43054f0e":[()=>n.e("439").then(n.bind(n,4503)),"@site/i18n/en/docusaurus-plugin-content-docs/current/tunnels/domains.md",4503],"4ac686ed":[()=>n.e("669").then(n.bind(n,1794)),"@site/i18n/en/docusaurus-plugin-content-docs/current/community.md",1794],"4be978ea":[()=>n.e("177").then(n.bind(n,5232)),"@site/i18n/en/docusaurus-plugin-content-docs/current/transport/connect-pool.md",5232],"523c1e1a":[()=>Promise.all([n.e("14"),n.e("301")]).then(n.bind(n,790)),"@site/i18n/en/docusaurus-plugin-content-docs/current/integrations/springboot.mdx",790],"5b44acae":[()=>n.e("637").then(n.bind(n,5249)),"@site/i18n/en/docusaurus-plugin-content-docs/current/intro.md",5249],"5e95c892":[()=>n.e("668").then(n.bind(n,4214)),"@theme/DocsRoot",4214],"5e9f5e1a":[()=>Promise.resolve().then(n.bind(n,4784)),"@generated/docusaurus.config",4784],"66aed93e":[()=>n.e("321").then(n.bind(n,972)),"@site/i18n/en/docusaurus-plugin-content-docs/current/quickstart.md",972],"772f9d94":[()=>n.e("206").then(n.bind(n,9582)),"@site/i18n/en/docusaurus-plugin-content-docs/current/transport/protocol/websocket.md",9582],"7abcf739":[()=>n.e("188").then(n.bind(n,4671)),"@site/i18n/en/docusaurus-plugin-content-docs/current/features/real-ip.md",4671],"7c4e16d0":[()=>n.e("46").then(n.bind(n,5212)),"@site/i18n/en/docusaurus-plugin-content-docs/current/tunnels/https.md",5212],"7fe95379":[()=>n.e("283").then(n.bind(n,1083)),"@site/i18n/en/docusaurus-plugin-content-docs/current/transport/protocol/kcp.md",1083],"814847fd":[()=>n.e("608").then(n.bind(n,5833)),"@site/i18n/en/docusaurus-plugin-content-docs/current/transport/tls.md",5833],a7456010:[()=>n.e("56").then(n.t.bind(n,8552,19)),"@generated/docusaurus-plugin-content-pages/default/__plugin.json",8552],a7bd4aaa:[()=>n.e("575").then(n.bind(n,7281)),"@theme/DocVersionRoot",7281],a89a62ae:[()=>n.e("45").then(n.bind(n,9796)),"@site/i18n/en/docusaurus-plugin-content-docs/current/tunnels/tcp.md",9796],a94703ab:[()=>Promise.all([n.e("14"),n.e("785")]).then(n.bind(n,8591)),"@theme/DocRoot",8591],ab4e331a:[()=>n.e("228").then(n.bind(n,6612)),"@site/i18n/en/docusaurus-plugin-content-docs/current/features/dashboard.md",6612],aba21aa0:[()=>n.e("747").then(n.t.bind(n,7093,19)),"@generated/docusaurus-plugin-content-docs/default/__plugin.json",7093],affd0631:[()=>n.e("891").then(n.bind(n,4590)),"@site/i18n/en/docusaurus-plugin-content-docs/current/docker.md",4590],b32b4337:[()=>n.e("568").then(n.bind(n,4721)),"@site/i18n/en/docusaurus-plugin-content-docs/current/tunnels/http.md",4721],b3adb838:[()=>Promise.all([n.e("14"),n.e("431")]).then(n.bind(n,3323)),"@site/i18n/en/docusaurus-plugin-content-docs/current/download.mdx",3323],b6948417:[()=>n.e("621").then(n.bind(n,22)),"@site/i18n/en/docusaurus-plugin-content-docs/current/features/public-bind.md",22],b6b92320:[()=>n.e("4").then(n.bind(n,20)),"@site/i18n/en/docusaurus-plugin-content-docs/current/roadmap.md",20],cc5cf7e7:[()=>n.e("569").then(n.bind(n,4081)),"@site/i18n/en/docusaurus-plugin-content-docs/current/features/authentication.md",4081],d58d1957:[()=>n.e("597").then(n.bind(n,7078)),"@site/i18n/en/docusaurus-plugin-content-docs/current/features/bandwidth.md",7078],f2426367:[()=>n.e("518").then(n.bind(n,9052)),"@site/i18n/en/docusaurus-plugin-content-docs/current/tunnels/udp.md",9052]};function s({error:e,retry:t,pastDelay:n}){return e?(0,r.jsxs)("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%"},children:[(0,r.jsx)("p",{children:String(e)}),(0,r.jsx)("div",{children:(0,r.jsx)("button",{type:"button",onClick:t,children:"Retry"})})]}):n?(0,r.jsx)("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh"},children:(0,r.jsx)("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",children:(0,r.jsxs)("g",{fill:"none",fillRule:"evenodd",transform:"translate(1 1)",strokeWidth:"2",children:[(0,r.jsxs)("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0",children:[(0,r.jsx)("animate",{attributeName:"r",begin:"1.5s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),(0,r.jsx)("animate",{attributeName:"stroke-opacity",begin:"1.5s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),(0,r.jsx)("animate",{attributeName:"stroke-width",begin:"1.5s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})]}),(0,r.jsxs)("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0",children:[(0,r.jsx)("animate",{attributeName:"r",begin:"3s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),(0,r.jsx)("animate",{attributeName:"stroke-opacity",begin:"3s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),(0,r.jsx)("animate",{attributeName:"stroke-width",begin:"3s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})]}),(0,r.jsx)("circle",{cx:"22",cy:"22",r:"8",children:(0,r.jsx)("animate",{attributeName:"r",begin:"0s",dur:"1.5s",values:"6;1;2;3;4;5;6",calcMode:"linear",repeatCount:"indefinite"})})]})})}):null}var u=n(8115),c=n(9648);function d(e,t){if("*"===e)return o()({loading:s,loader:()=>n.e("627").then(n.bind(n,7702)),modules:["@theme/NotFound"],webpack:()=>[7702],render(e,t){let n=e.default;return(0,r.jsx)(c.W,{value:{plugin:{name:"native",id:"default"}},children:(0,r.jsx)(n,{...t})})}});let a=i[`${e}-${t}`],d={},f=[],p=[];return Object.entries((0,u.A)(a)).forEach(([e,t])=>{let n=l[t];n&&(d[e]=n[0],f.push(n[1]),p.push(n[2]))}),o().Map({loading:s,loader:d,modules:f,webpack:()=>p,render(t,n){let o=JSON.parse(JSON.stringify(a));Object.entries(t).forEach(([t,n])=>{let r=n.default;if(!r)throw 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 r||"function"==typeof r)&&Object.keys(n).filter(e=>"default"!==e).forEach(e=>{r[e]=n[e]});let a=o,i=t.split(".");i.slice(0,-1).forEach(e=>{a=a[e]}),a[i[i.length-1]]=r});let i=o.__comp;delete o.__comp;let l=o.__context;delete o.__context;let s=o.__props;return delete o.__props,(0,r.jsx)(c.W,{value:l,children:(0,r.jsx)(i,{...o,...s,...n})})}})}let f=[{path:"/orbien/en/docs",component:d("/orbien/en/docs","860"),routes:[{path:"/orbien/en/docs",component:d("/orbien/en/docs","929"),routes:[{path:"/orbien/en/docs",component:d("/orbien/en/docs","eb9"),routes:[{path:"/orbien/en/docs/community",component:d("/orbien/en/docs/community","a26"),exact:!0,sidebar:"docsSidebar"},{path:"/orbien/en/docs/docker",component:d("/orbien/en/docs/docker","541"),exact:!0,sidebar:"docsSidebar"},{path:"/orbien/en/docs/download",component:d("/orbien/en/docs/download","e46"),exact:!0,sidebar:"docsSidebar"},{path:"/orbien/en/docs/features/authentication",component:d("/orbien/en/docs/features/authentication","688"),exact:!0,sidebar:"docsSidebar"},{path:"/orbien/en/docs/features/bandwidth",component:d("/orbien/en/docs/features/bandwidth","dd0"),exact:!0,sidebar:"docsSidebar"},{path:"/orbien/en/docs/features/dashboard",component:d("/orbien/en/docs/features/dashboard","29f"),exact:!0,sidebar:"docsSidebar"},{path:"/orbien/en/docs/features/public-bind",component:d("/orbien/en/docs/features/public-bind","443"),exact:!0,sidebar:"docsSidebar"},{path:"/orbien/en/docs/features/real-ip",component:d("/orbien/en/docs/features/real-ip","3dc"),exact:!0,sidebar:"docsSidebar"},{path:"/orbien/en/docs/integrations/springboot",component:d("/orbien/en/docs/integrations/springboot","398"),exact:!0,sidebar:"docsSidebar"},{path:"/orbien/en/docs/intro",component:d("/orbien/en/docs/intro","8de"),exact:!0,sidebar:"docsSidebar"},{path:"/orbien/en/docs/license",component:d("/orbien/en/docs/license","c3c"),exact:!0,sidebar:"docsSidebar"},{path:"/orbien/en/docs/performance",component:d("/orbien/en/docs/performance","91a"),exact:!0,sidebar:"docsSidebar"},{path:"/orbien/en/docs/quickstart",component:d("/orbien/en/docs/quickstart","b95"),exact:!0,sidebar:"docsSidebar"},{path:"/orbien/en/docs/roadmap",component:d("/orbien/en/docs/roadmap","f84"),exact:!0,sidebar:"docsSidebar"},{path:"/orbien/en/docs/transport/connect-pool",component:d("/orbien/en/docs/transport/connect-pool","6f8"),exact:!0,sidebar:"docsSidebar"},{path:"/orbien/en/docs/transport/protocol/kcp",component:d("/orbien/en/docs/transport/protocol/kcp","5f7"),exact:!0,sidebar:"docsSidebar"},{path:"/orbien/en/docs/transport/protocol/quic",component:d("/orbien/en/docs/transport/protocol/quic","144"),exact:!0,sidebar:"docsSidebar"},{path:"/orbien/en/docs/transport/protocol/tcp",component:d("/orbien/en/docs/transport/protocol/tcp","ff4"),exact:!0,sidebar:"docsSidebar"},{path:"/orbien/en/docs/transport/protocol/websocket",component:d("/orbien/en/docs/transport/protocol/websocket","543"),exact:!0,sidebar:"docsSidebar"},{path:"/orbien/en/docs/transport/tcp-mux",component:d("/orbien/en/docs/transport/tcp-mux","d69"),exact:!0,sidebar:"docsSidebar"},{path:"/orbien/en/docs/transport/tls",component:d("/orbien/en/docs/transport/tls","ede"),exact:!0,sidebar:"docsSidebar"},{path:"/orbien/en/docs/tunnels/domains",component:d("/orbien/en/docs/tunnels/domains","7b6"),exact:!0,sidebar:"docsSidebar"},{path:"/orbien/en/docs/tunnels/http",component:d("/orbien/en/docs/tunnels/http","b20"),exact:!0,sidebar:"docsSidebar"},{path:"/orbien/en/docs/tunnels/https",component:d("/orbien/en/docs/tunnels/https","ed9"),exact:!0,sidebar:"docsSidebar"},{path:"/orbien/en/docs/tunnels/tcp",component:d("/orbien/en/docs/tunnels/tcp","1c7"),exact:!0,sidebar:"docsSidebar"},{path:"/orbien/en/docs/tunnels/udp",component:d("/orbien/en/docs/tunnels/udp","b0a"),exact:!0,sidebar:"docsSidebar"}]}]}]},{path:"/orbien/en/",component:d("/orbien/en/","a39"),exact:!0},{path:"*",component:d("*")}]},4607(e,t,n){"use strict";n.d(t,{o:()=>o,x:()=>i});var r=n(1987),a=n(1763);let o=a.createContext(!1);function i({children:e}){let[t,n]=(0,a.useState)(!1);return(0,a.useEffect)(()=>{n(!0)},[]),(0,r.jsx)(o.Provider,{value:t,children:e})}},6780(e,t,n){"use strict";var r=n(1987),a=n(1763),o=n(6122),i=n(9883),l=n(5399),s=n(4784),u=n(4619);let c=[n(2796),n(9564),n(4389),n(6759),n(6544)];var d=n(439),f=n(6532),p=n(6345);function m({children:e}){return(0,r.jsx)(r.Fragment,{children:e})}var h=n(6461);let g=e=>e.defaultFormatter(e);function b({children:e}){return(0,r.jsx)(h.AL,{formatter:g,children:e})}function y({children:e}){return(0,r.jsx)(b,{children:e})}var v=n(7634),w=n(5484),k=n(319),S=n(8168),x=n(310),E=n(5941),_=n(2455),A=n(5992);function T(){let{i18n:{currentLocale:e,defaultLocale:t,localeConfigs:n}}=(0,w.A)(),a=(0,E.o)(),o=n[e].htmlLang;return(0,r.jsxs)(v.A,{children:[Object.entries(n).map(([e,{htmlLang:t}])=>(0,r.jsx)("link",{rel:"alternate",href:a.createUrl({locale:e,fullyQualified:!0}),hrefLang:t},e)),(0,r.jsx)("link",{rel:"alternate",href:a.createUrl({locale:t,fullyQualified:!0}),hrefLang:"x-default"}),(0,r.jsx)("meta",{property:"og:locale",content:o.replace("-","_")}),Object.values(n).filter(e=>o!==e.htmlLang).map(e=>(0,r.jsx)("meta",{property:"og:locale:alternate",content:e.htmlLang.replace("-","_")},`meta-og-${e.htmlLang}`))]})}function C({permalink:e}){let{siteConfig:{url:t}}=(0,w.A)(),n=function(){let{siteConfig:{url:e,baseUrl:t,trailingSlash:n}}=(0,w.A)(),{pathname:r}=(0,f.zy)();return e+(0,_.applyTrailingSlash)((0,k.Ay)(r),{trailingSlash:n,baseUrl:t})}(),a=e?`${t}${e}`:n;return(0,r.jsxs)(v.A,{children:[(0,r.jsx)("meta",{property:"og:url",content:a}),(0,r.jsx)("link",{rel:"canonical",href:a})]})}function P(){let{i18n:{currentLocale:e}}=(0,w.A)(),{metadata:t,image:n}=(0,S.p)();return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(v.A,{children:[(0,r.jsx)("meta",{name:"twitter:card",content:"summary_large_image"}),(0,r.jsx)("body",{})]}),n&&(0,r.jsx)(x.be,{image:n}),(0,r.jsx)(C,{}),(0,r.jsx)(T,{}),(0,r.jsx)(A.A,{tag:"default",locale:e}),(0,r.jsx)(v.A,{children:t.map((e,t)=>(0,r.jsx)("meta",{...e},t))})]})}let O=new Map;var L=n(4607),N=n(3235),j=n(9879);function R(e,...t){let n=c.map(n=>{let r=n.default?.[e]??n[e];return r?.(...t)});return()=>n.forEach(e=>e?.())}let I=function({children:e,location:t,previousLocation:n}){return(0,j.A)(()=>{n!==t&&(!function({location:e,previousLocation:t}){if(!t)return;let n=e.pathname===t.pathname,r=e.hash===t.hash,a=e.search===t.search;if(n&&r&&!a)return;let{hash:o}=e;if(o){let e=decodeURIComponent(o.substring(1)),t=document.getElementById(e);t?.scrollIntoView()}else window.scrollTo(0,0)}({location:t,previousLocation:n}),R("onRouteDidUpdate",{previousLocation:n,location:t}))},[n,t]),e};function D(e){return Promise.all(Array.from(new Set([e,decodeURI(e)])).map(e=>(0,p.u)(d.A,e)).flat().map(e=>e.route.component.preload?.()))}class F extends a.Component{previousLocation;routeUpdateCleanupCb;constructor(e){super(e),this.previousLocation=null,this.routeUpdateCleanupCb=u.A.canUseDOM?R("onRouteUpdate",{previousLocation:null,location:this.props.location}):()=>{},this.state={nextRouteHasLoaded:!0}}shouldComponentUpdate(e,t){if(e.location===this.props.location)return t.nextRouteHasLoaded;let n=e.location;return this.previousLocation=this.props.location,this.setState({nextRouteHasLoaded:!1}),this.routeUpdateCleanupCb=R("onRouteUpdate",{previousLocation:this.previousLocation,location:n}),D(n.pathname).then(()=>{this.routeUpdateCleanupCb(),this.setState({nextRouteHasLoaded:!0})}).catch(e=>{console.warn(e),window.location.reload()}),!1}render(){let{children:e,location:t}=this.props;return(0,r.jsx)(I,{previousLocation:this.previousLocation,location:t,children:(0,r.jsx)(f.qh,{location:t,render:()=>e})})}}let z="__docusaurus-base-url-issue-banner-suggestion-container";function M(){let{siteConfig:{baseUrl:e}}=(0,w.A)();return(0,r.jsx)(r.Fragment,{children:!u.A.canUseDOM&&(0,r.jsx)(v.A,{children:(0,r.jsx)("script",{children:` +document.addEventListener('DOMContentLoaded', function maybeInsertBanner() { + var shouldInsert = typeof window['docusaurus'] === 'undefined'; + shouldInsert && insertBanner(); +}); + +function insertBanner() { + var bannerContainer = document.createElement('div'); + bannerContainer.id = '__docusaurus-base-url-issue-banner-container'; + var bannerHtml = ${JSON.stringify(` +<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;"> + <p style="font-weight: bold; font-size: 30px;">Your Docusaurus site did not load properly.</p> + <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> + <p>Current configured baseUrl = <span style="font-weight: bold; color: red;">${e}</span> ${"/"===e?" (default value)":""}</p> + <p>We suggest trying baseUrl = <span id="${z}" style="font-weight: bold; color: green;"></span></p> +</div> +`).replace(/</g,"\\<")}; + bannerContainer.innerHTML = bannerHtml; + document.body.prepend(bannerContainer); + var suggestionContainer = document.getElementById('${z}'); + var actualHomePagePath = window.location.pathname; + var suggestedBaseUrl = actualHomePagePath.substr(-1) === '/' + ? actualHomePagePath + : actualHomePagePath + '/'; + suggestionContainer.textContent = suggestedBaseUrl; +} +`})})})}function $(){let{siteConfig:{baseUrl:e,baseUrlIssueBanner:t}}=(0,w.A)(),{pathname:n}=(0,f.zy)();return t&&n===e?(0,r.jsx)(M,{}):null}function B(){let{siteConfig:{favicon:e,title:t,noIndex:n},i18n:{currentLocale:a,localeConfigs:o}}=(0,w.A)(),i=(0,k.Ay)(e),{htmlLang:l,direction:s}=o[a];return(0,r.jsxs)(v.A,{children:[(0,r.jsx)("html",{lang:l,dir:s}),(0,r.jsx)("title",{children:t}),(0,r.jsx)("meta",{property:"og:title",content:t}),(0,r.jsx)("meta",{name:"viewport",content:"width=device-width, initial-scale=1.0"}),n&&(0,r.jsx)("meta",{name:"robots",content:"noindex, nofollow"}),e&&(0,r.jsx)("link",{rel:"icon",href:i})]})}var U=n(9047),H=n(8261);function V(){let e=(0,H.A)();return(0,r.jsx)(v.A,{children:(0,r.jsx)("html",{"data-has-hydrated":e})})}let W=(0,p.v)(d.A);function q(){let e=function(e){if(O.has(e.pathname))return{...e,pathname:O.get(e.pathname)};if((0,p.u)(d.A,e.pathname).some(({route:e})=>!0===e.exact))return O.set(e.pathname,e.pathname),e;let t=e.pathname.trim().replace(/(?:\/index)?\.html$/,"")||"/";return O.set(e.pathname,t),{...e,pathname:t}}((0,f.zy)());return(0,r.jsx)(F,{location:e,children:W})}var G=n(4054);let Y=!function(e){try{return document.createElement("link").relList.supports(e)}catch{return!1}}("prefetch")?function(e){return new Promise((t,n)=>{let r=new XMLHttpRequest;r.open("GET",e,!0),r.withCredentials=!0,r.onload=()=>{200===r.status?t():n()},r.send(null)})}:function(e){return new Promise((t,n)=>{if("u"<typeof document)return void n();let r=document.createElement("link");r.setAttribute("rel","prefetch"),r.setAttribute("href",e),r.onload=()=>t(),r.onerror=()=>n();let a=document.getElementsByTagName("head")[0]??document.getElementsByName("script")[0]?.parentNode;a?.appendChild(r)})};var K=n(8115);let Q=new Set,Z=new Set,X=()=>navigator.connection?.effectiveType.includes("2g")||navigator.connection?.saveData,J=Object.freeze({prefetch:e=>!(X()||Z.has(e)||Q.has(e))&&(Q.add(e),Promise.all((0,p.u)(d.A,e).flatMap(e=>{let t;return t=e.route.path,Object.entries(G).filter(([e])=>e.replace(/-[^-]+$/,"")===t).flatMap(([,e])=>Object.values((0,K.A)(e)))}).map(e=>{let t=n.gca(e);return t&&!t.includes("undefined")?Y(t).catch(()=>{}):Promise.resolve()}))),preload:e=>!(X()||Z.has(e))&&(Z.add(e),D(e))});if(u.A.canUseDOM){window.docusaurus=J;let e=document.getElementById("__docusaurus"),t=(0,r.jsx)(i.vd,{children:(0,r.jsx)(function({children:e}){return"hash"===s.default.future.experimental_router?(0,r.jsx)(l.I9,{children:e}):(0,r.jsx)(l.Kd,{children:e})},{children:(0,r.jsx)(function(){return(0,r.jsx)(U.A,{children:(0,r.jsx)(N.l,{children:(0,r.jsxs)(L.x,{children:[(0,r.jsx)(m,{children:(0,r.jsxs)(y,{children:[(0,r.jsx)(B,{}),(0,r.jsx)(P,{}),(0,r.jsx)($,{}),(0,r.jsx)(q,{})]})}),(0,r.jsx)(V,{})]})})})},{})})}),n=(e,t)=>{console.error("Docusaurus React Root onRecoverableError:",e,t)},u=()=>{window.docusaurusRoot?window.docusaurusRoot.render(t):window.docusaurusRoot=o.hydrateRoot(e,t,{onRecoverableError:n})};D(window.location.pathname).then(()=>{(0,a.startTransition)(u)})}},3235(e,t,n){"use strict";n.d(t,{l:()=>f,o:()=>d});var r=n(1987),a=n(1763),o=n(4784),i=JSON.parse('{"docusaurus-plugin-content-docs":{"default":{"path":"/orbien/en/docs","versions":[{"name":"current","label":"Next","isLast":true,"path":"/orbien/en/docs","mainDocId":"intro","docs":[{"id":"community","path":"/orbien/en/docs/community","sidebar":"docsSidebar"},{"id":"docker","path":"/orbien/en/docs/docker","sidebar":"docsSidebar"},{"id":"download","path":"/orbien/en/docs/download","sidebar":"docsSidebar"},{"id":"features/authentication","path":"/orbien/en/docs/features/authentication","sidebar":"docsSidebar"},{"id":"features/bandwidth","path":"/orbien/en/docs/features/bandwidth","sidebar":"docsSidebar"},{"id":"features/dashboard","path":"/orbien/en/docs/features/dashboard","sidebar":"docsSidebar"},{"id":"features/public-bind","path":"/orbien/en/docs/features/public-bind","sidebar":"docsSidebar"},{"id":"features/real-ip","path":"/orbien/en/docs/features/real-ip","sidebar":"docsSidebar"},{"id":"integrations/springboot","path":"/orbien/en/docs/integrations/springboot","sidebar":"docsSidebar"},{"id":"intro","path":"/orbien/en/docs/intro","sidebar":"docsSidebar"},{"id":"license","path":"/orbien/en/docs/license","sidebar":"docsSidebar"},{"id":"performance","path":"/orbien/en/docs/performance","sidebar":"docsSidebar"},{"id":"quickstart","path":"/orbien/en/docs/quickstart","sidebar":"docsSidebar"},{"id":"roadmap","path":"/orbien/en/docs/roadmap","sidebar":"docsSidebar"},{"id":"transport/connect-pool","path":"/orbien/en/docs/transport/connect-pool","sidebar":"docsSidebar"},{"id":"transport/protocol/kcp","path":"/orbien/en/docs/transport/protocol/kcp","sidebar":"docsSidebar"},{"id":"transport/protocol/quic","path":"/orbien/en/docs/transport/protocol/quic","sidebar":"docsSidebar"},{"id":"transport/protocol/tcp","path":"/orbien/en/docs/transport/protocol/tcp","sidebar":"docsSidebar"},{"id":"transport/protocol/websocket","path":"/orbien/en/docs/transport/protocol/websocket","sidebar":"docsSidebar"},{"id":"transport/tcp-mux","path":"/orbien/en/docs/transport/tcp-mux","sidebar":"docsSidebar"},{"id":"transport/tls","path":"/orbien/en/docs/transport/tls","sidebar":"docsSidebar"},{"id":"tunnels/domains","path":"/orbien/en/docs/tunnels/domains","sidebar":"docsSidebar"},{"id":"tunnels/http","path":"/orbien/en/docs/tunnels/http","sidebar":"docsSidebar"},{"id":"tunnels/https","path":"/orbien/en/docs/tunnels/https","sidebar":"docsSidebar"},{"id":"tunnels/tcp","path":"/orbien/en/docs/tunnels/tcp","sidebar":"docsSidebar"},{"id":"tunnels/udp","path":"/orbien/en/docs/tunnels/udp","sidebar":"docsSidebar"}],"draftIds":[],"sidebars":{"docsSidebar":{"link":{"path":"/orbien/en/docs/intro","label":"Introduction"}}}}],"breadcrumbs":true}}}'),l=JSON.parse('{"defaultLocale":"zh-Hans","locales":["zh-Hans","en"],"path":"i18n","currentLocale":"en","localeConfigs":{"zh-Hans":{"label":"\u4E2D\u6587","direction":"ltr","htmlLang":"zh-CN","calendar":"gregory","path":"zh-Hans","translate":false,"url":"https://orbien-org.github.io","baseUrl":"/orbien/"},"en":{"label":"English","direction":"ltr","htmlLang":"en","calendar":"gregory","path":"en","translate":true,"url":"https://orbien-org.github.io","baseUrl":"/orbien/en/"}}}'),s=n(2654),u=JSON.parse('{"docusaurusVersion":"3.10.2","siteVersion":"3.0.0","pluginVersions":{"docusaurus-plugin-css-cascade-layers":{"type":"package","name":"@docusaurus/plugin-css-cascade-layers","version":"3.10.2"},"docusaurus-plugin-content-docs":{"type":"package","name":"@docusaurus/plugin-content-docs","version":"3.10.2"},"docusaurus-plugin-content-pages":{"type":"package","name":"@docusaurus/plugin-content-pages","version":"3.10.2"},"docusaurus-plugin-sitemap":{"type":"package","name":"@docusaurus/plugin-sitemap","version":"3.10.2"},"docusaurus-plugin-svgr":{"type":"package","name":"@docusaurus/plugin-svgr","version":"3.10.2"},"docusaurus-theme-classic":{"type":"package","name":"@docusaurus/theme-classic","version":"3.10.2"}}}');let c={siteConfig:o.default,siteMetadata:u,globalData:i,i18n:l,codeTranslations:s},d=a.createContext(c);function f({children:e}){return(0,r.jsx)(d.Provider,{value:c,children:e})}},9047(e,t,n){"use strict";n.d(t,{A:()=>m});var r=n(1987),a=n(1763),o=n(4619),i=n(7634),l=n(2455),s=n(6819),u=n(9648);function c({error:e,tryAgain:t}){return(0,r.jsxs)("div",{style:{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"flex-start",minHeight:"100vh",width:"100%",maxWidth:"80ch",fontSize:"20px",margin:"0 auto",padding:"1rem"},children:[(0,r.jsx)("h1",{style:{fontSize:"3rem"},children:"This page crashed"}),(0,r.jsx)("button",{type:"button",onClick:t,style:{margin:"1rem 0",fontSize:"2rem",cursor:"pointer",borderRadius:20,padding:"1rem"},children:"Try again"}),(0,r.jsx)(d,{error:e})]})}function d({error:e}){let t=(0,l.getErrorCausalChain)(e).map(e=>e.message).join("\n\nCause:\n");return(0,r.jsx)("p",{style:{whiteSpace:"pre-wrap"},children:t})}function f({children:e}){return(0,r.jsx)(u.W,{value:{plugin:{name:"docusaurus-core-error-boundary",id:"default"}},children:e})}function p({error:e,tryAgain:t}){return(0,r.jsx)(f,{children:(0,r.jsxs)(m,{fallback:()=>(0,r.jsx)(c,{error:e,tryAgain:t}),children:[(0,r.jsx)(i.A,{children:(0,r.jsx)("title",{children:"Page Error"})}),(0,r.jsx)(s.A,{children:(0,r.jsx)(c,{error:e,tryAgain:t})})]})})}class m extends a.Component{constructor(e){super(e),this.state={error:null}}componentDidCatch(e){o.A.canUseDOM&&this.setState({error:e})}render(){let{children:e}=this.props,{error:t}=this.state;return t?(this.props.fallback??(e=>(0,r.jsx)(p,{...e})))({error:t,tryAgain:()=>this.setState({error:null})}):e??null}}},4619(e,t,n){"use strict";n.d(t,{A:()=>a});let r="u">typeof window&&"document"in window&&"createElement"in window.document,a={canUseDOM:r,canUseEventListeners:r&&("addEventListener"in window||"attachEvent"in window),canUseIntersectionObserver:r&&"IntersectionObserver"in window,canUseViewport:r&&"screen"in window}},7634(e,t,n){"use strict";n.d(t,{A:()=>o});var r=n(1987);n(1763);var a=n(9883);function o(e){return(0,r.jsx)(a.mg,{...e})}},7364(e,t,n){"use strict";n.d(t,{A:()=>f});var r=n(1987),a=n(1763),o=n(5399),i=n(2455),l=n(5484),s=n(2236),u=n(4619),c=n(4216),d=n(319);let f=a.forwardRef(function({isNavLink:e,to:t,href:n,activeClassName:f,isActive:p,"data-noBrokenLinkCheck":m,autoAddBaseUrl:h=!0,...g},b){var y;let{siteConfig:v}=(0,l.A)(),{trailingSlash:w,baseUrl:k}=v,S=v.future.experimental_router,{withBaseUrl:x}=(0,d.hH)(),E=(0,c.A)(),_=(0,a.useRef)(null);(0,a.useImperativeHandle)(b,()=>_.current);let A=t||n,T=(0,s.A)(A),C=A?.replace("pathname://",""),P=void 0!==C?(y=C,h&&y.startsWith("/")?x(y):y):void 0;"hash"===S&&P?.startsWith("./")&&(P=P?.slice(1)),P&&T&&(P=(0,i.applyTrailingSlash)(P,{trailingSlash:w,baseUrl:k}));let O=(0,a.useRef)(!1),L=e?o.k2:o.N_,N=u.A.canUseIntersectionObserver,j=(0,a.useRef)(void 0),R=()=>{O.current||null==P||(window.docusaurus.preload(P),O.current=!0)};(0,a.useEffect)(()=>(!N&&T&&u.A.canUseDOM&&null!=P&&window.docusaurus.prefetch(P),()=>{N&&j.current&&j.current.disconnect()}),[j,P,N,T]);let I=P?.startsWith("#")??!1,D=!g.target||"_self"===g.target,F=!P||!T||!D||I&&"hash"!==S;m||!I&&F||E.collectLink(P),g.id&&E.collectAnchor(g.id);let z={};return F?(0,r.jsx)("a",{ref:_,href:P,...A&&!T&&{target:"_blank",rel:"noopener noreferrer"},...g,...z}):(0,r.jsx)(L,{...g,onMouseEnter:R,onTouchStart:R,innerRef:e=>{_.current=e,N&&e&&T&&(j.current=new window.IntersectionObserver(t=>{t.forEach(t=>{e===t.target&&(t.isIntersecting||t.intersectionRatio>0)&&(j.current.unobserve(e),j.current.disconnect(),null!=P&&window.docusaurus.prefetch(P))})}),j.current.observe(e))},to:P,...e&&{isActive:p,activeClassName:f},...z})})},116(e,t,n){"use strict";n.d(t,{A:()=>r});let r=()=>null},6475(e,t,n){"use strict";n.d(t,{A:()=>u,T:()=>s});var r=n(1987),a=n(1763);function o(e,t){let n=e.split(/(\{\w+\})/).map((e,n)=>{if(n%2==1){let n=t?.[e.slice(1,-1)];if(void 0!==n)return n}return e});return n.some(e=>(0,a.isValidElement)(e))?n.map((e,t)=>(0,a.isValidElement)(e)?a.cloneElement(e,{key:t}):e).filter(e=>""!==e):n.join("")}var i=n(2654);function l({id:e,message:t}){if(void 0===e&&void 0===t)throw Error("Docusaurus translation declarations must have at least a translation id or a default translation message");return i[e??t]??t??e}function s({message:e,id:t},n){return o(l({message:e,id:t}),n)}function u({children:e,id:t,values:n}){if(e&&"string"!=typeof e)throw console.warn("Illegal <Translate> children",e),Error("The Docusaurus <Translate> component only accept simple string values");let a=l({message:e,id:t});return(0,r.jsx)(r.Fragment,{children:o(a,n)})}},8595(e,t,n){"use strict";n.d(t,{W:()=>r});let r="default"},2236(e,t,n){"use strict";function r(e){return/^(?:[A-Za-z][A-Za-z\d+.-]*:|\/\/)/.test(e)}function a(e){return void 0!==e&&!r(e)}n.d(t,{A:()=>a,z:()=>r})},319(e,t,n){"use strict";n.d(t,{Ay:()=>l,hH:()=>i});var r=n(1763),a=n(5484),o=n(2236);function i(){let{siteConfig:e}=(0,a.A)(),{baseUrl:t,url:n}=e,i=e.future.experimental_router;return{withBaseUrl:(0,r.useCallback)((e,r)=>(function({siteUrl:e,baseUrl:t,url:n,options:{forcePrependBaseUrl:r=!1,absolute:a=!1}={},router:i}){if(!n||n.startsWith("#")||(0,o.z)(n))return n;if("hash"===i)return n.startsWith("/")?`.${n}`:`./${n}`;if(r)return t+n.replace(/^\//,"");if(n===t.replace(/\/$/,""))return t;let l=n.startsWith(t)?n:t+n.replace(/^\//,"");return a?e+l:l})({siteUrl:n,baseUrl:t,url:e,options:r,router:i}),[n,t,i])}}function l(e,t={}){let{withBaseUrl:n}=i();return n(e,t)}},4216(e,t,n){"use strict";n.d(t,{A:()=>o}),n(1987);var r=n(1763);let a=r.createContext({collectAnchor:()=>{},collectLink:()=>{}});function o(){return(0,r.useContext)(a)}},5484(e,t,n){"use strict";n.d(t,{A:()=>o});var r=n(1763),a=n(3235);function o(){return(0,r.useContext)(a.o)}},8261(e,t,n){"use strict";n.d(t,{A:()=>o});var r=n(1763),a=n(4607);function o(){return(0,r.useContext)(a.o)}},9879(e,t,n){"use strict";n.d(t,{A:()=>a});var r=n(1763);let a=n(4619).A.canUseDOM?r.useLayoutEffect:r.useEffect},7581(e,t,n){"use strict";n.d(t,{A:()=>o});var r=n(1763),a=n(9648);function o(){let e=r.useContext(a.o);if(!e)throw Error("Unexpected: no Docusaurus route context found");return e}},8115(e,t,n){"use strict";function r(e){let t={};return!function e(n,r){Object.entries(n).forEach(([n,a])=>{let o=r?`${r}.${n}`:n;"object"==typeof a&&a&&Object.keys(a).length>0?e(a,o):t[o]=a})}(e),t}n.d(t,{A:()=>r})},9648(e,t,n){"use strict";n.d(t,{W:()=>i,o:()=>o});var r=n(1987),a=n(1763);let o=a.createContext(null);function i({children:e,value:t}){let n=a.useContext(o),l=(0,a.useMemo)(()=>(function({parent:e,value:t}){if(!e){if(t){if(!("plugin"in t))throw Error("Unexpected: Docusaurus topmost route context has no `plugin` attribute")}else throw Error("Unexpected: no Docusaurus route context found");return t}let n={...e.data,...t?.data};return{plugin:e.plugin,data:n}})({parent:n,value:t}),[n,t]);return(0,r.jsx)(o.Provider,{value:l,children:e})}},4806(e,t,n){"use strict";n.d(t,{VQ:()=>p,g1:()=>m});var r=n(1987),a=n(1763),o=n(9678),i=n(8595),l=n(8168),s=n(8184),u=n(7850);let c=e=>`docs-preferred-version-${e}`,d=a.createContext(null);function f({children:e}){let t=function(){let e=(0,o.Gy)(),t=(0,l.p)().docs.versionPersistence,n=(0,a.useMemo)(()=>Object.keys(e),[e]),[r,i]=(0,a.useState)(()=>Object.fromEntries(n.map(e=>[e,{preferredVersionName:null}])));return(0,a.useEffect)(()=>{i(function({pluginIds:e,versionPersistence:t,allDocsData:n}){return Object.fromEntries(e.map(e=>{var r,a;let o,i,l;return[e,(i=e,l=t,o=(0,s.Wf)(c(i),{persistence:l}).get(),n[e].versions.some(e=>e.name===o)?{preferredVersionName:o}:(r=e,a=t,(0,s.Wf)(c(r),{persistence:a}).del(),{preferredVersionName:null}))]}))}({allDocsData:e,versionPersistence:t,pluginIds:n}))},[e,t,n]),[r,(0,a.useMemo)(()=>({savePreferredVersion:function(e,n){var r,a,o;r=e,a=t,o=n,(0,s.Wf)(c(r),{persistence:a}).set(o),i(t=>({...t,[e]:{preferredVersionName:n}}))}}),[t])]}();return(0,r.jsx)(d.Provider,{value:t,children:e})}function p({children:e}){return(0,r.jsx)(f,{children:e})}function m(e=i.W){let t=(0,o.ht)(e),[n,r]=function(){let e=(0,a.useContext)(d);if(!e)throw new u.dV("DocsPreferredVersionContextProvider");return e}(),{preferredVersionName:l}=n[e];return{preferredVersion:t.versions.find(e=>e.name===l)??null,savePreferredVersionName:(0,a.useCallback)(t=>{r.savePreferredVersion(e,t)},[r,e])}}},345(e,t,n){"use strict";n.d(t,{V:()=>s,t:()=>u});var r=n(1987),a=n(1763),o=n(7850);let i=Symbol("EmptyContext"),l=a.createContext(i);function s({children:e,name:t,items:n}){let o=(0,a.useMemo)(()=>t&&n?{name:t,items:n}:null,[t,n]);return(0,r.jsx)(l.Provider,{value:o,children:e})}function u(){let e=(0,a.useContext)(l);if(e===i)throw new o.dV("DocsSidebarProvider");return e}},8484(e,t,n){"use strict";n.d(t,{B5:()=>v,Nr:()=>function e(t){if("link"===t.type&&!t.unlisted)return t.href;if("category"===t.type){if(t.href&&!t.linkUnlisted)return t.href;for(let n of t.items){let t=e(n);if(t)return t}return}},OF:()=>h,QB:()=>y,Vd:()=>g,Y:()=>m,fW:()=>b,w8:()=>p});var r=n(1763),a=n(6532),o=n(6345),i=n(9678),l=n(7711),s=n(8292),u=n(4806),c=n(73),d=n(345);let f=(e,t)=>void 0!==e&&(0,l.ys)(e,t);function p(e,t){if("link"===e.type)return f(e.href,t);if("category"===e.type){let n;return f(e.href,t)||(n=e.items,n.some(e=>p(e,t)))}return!1}function m(e,t){return(0,r.useMemo)(()=>e.filter(e=>(function e(t,n){switch(t.type){case"category":return p(t,n)||void 0!==t.href&&!t.linkUnlisted||t.items.some(t=>e(t,n));case"link":return!t.unlisted||p(t,n);default:return!0}})(e,t)),[e,t])}function h(){let e=(0,d.t)(),{pathname:t}=(0,a.zy)();return!1!==(0,i.vT)()?.pluginData.breadcrumbs&&e?function({sidebarItems:e,pathname:t,onlyCategories:n=!1}){let r=[];return!function e(a){for(let o of a)if("category"===o.type){if((0,l.ys)(o.href,t)||e(o.items))return r.unshift(o),!0}else if("link"===o.type&&o.docId&&(0,l.ys)(o.href,t))return n||r.unshift(o),!0;return!1}(e),r}({sidebarItems:e.items,pathname:t}):null}function g(e){let{activeVersion:t}=(0,i.zK)(e),{preferredVersion:n}=(0,u.g1)(e),a=(0,i.r7)(e);return(0,r.useMemo)(()=>(0,s.sb)([t,n,a].filter(Boolean)),[t,n,a])}function b(e,t){let n=g(t);return(0,r.useMemo)(()=>{let t=n.flatMap(e=>e.sidebars?Object.entries(e.sidebars):[]),r=t.find(t=>t[0]===e);if(!r)throw Error(`Can't find any sidebar with id "${e}" in version${n.length>1?"s":""} ${n.map(e=>e.name).join(", ")}". +Available sidebar ids are: +- ${t.map(e=>e[0]).join("\n- ")}`);return r[1]},[e,n])}function y(e,t){let n=g(t);return(0,r.useMemo)(()=>{let t=n.flatMap(e=>e.docs),r=t.find(t=>t.id===e);if(!r){if(n.flatMap(e=>e.draftIds).includes(e))return null;throw Error(`Couldn't find any doc with id "${e}" in version${n.length>1?"s":""} "${n.map(e=>e.name).join(", ")}". +Available doc ids are: +- ${(0,s.sb)(t.map(e=>e.id)).join("\n- ")}`)}return r},[e,n])}function v({route:e}){let t=(0,a.zy)(),n=(0,c.r)(),r=e.routes,i=r.find(e=>(0,a.B6)(t.pathname,e));if(!i)return null;let l=i.sidebar,s=l?n.docsSidebars[l]:void 0;return{docElement:(0,o.v)(r),sidebarName:l,sidebarItems:s}}},73(e,t,n){"use strict";n.d(t,{n:()=>l,r:()=>s});var r=n(1987),a=n(1763),o=n(7850);let i=a.createContext(null);function l({children:e,version:t}){return(0,r.jsx)(i.Provider,{value:t,children:e})}function s(){let e=(0,a.useContext)(i);if(null===e)throw new o.dV("DocsVersionProvider");return e}},9678(e,t,n){"use strict";n.d(t,{ht:()=>d,r7:()=>m,HW:()=>g,zK:()=>h,jh:()=>p,Gy:()=>c,vT:()=>f});var r=n(6532),a=n(5484),o=n(8595);function i(e,t={}){let n=function(){let{globalData:e}=(0,a.A)();return e}()[e];if(!n&&t.failfast)throw Error(`Docusaurus plugin global data not found for "${e}" plugin.`);return n}let l=e=>e.versions.find(e=>e.isLast);function s(e,t){var n;let a,o=[...e.versions].sort((e,t)=>e.path===t.path?0:e.path.includes(t.path)?-1:+!!t.path.includes(e.path)).find(e=>!!(0,r.B6)(t,{path:e.path,exact:!1,strict:!1})),i=o?.docs.find(e=>!!(0,r.B6)(t,{path:e.path,exact:!0,strict:!1})),l=i?(n=i.id,a={},e.versions.forEach(e=>{e.docs.forEach(t=>{t.id===n&&(a[e.name]=t)})}),a):{};return{activeVersion:o,activeDoc:i,alternateDocVersions:l}}let u={},c=()=>i("docusaurus-plugin-content-docs")??u,d=e=>{try{return function(e,t=o.W,n={}){let r=i(e),a=r?.[t];if(!a&&n.failfast)throw Error(`Docusaurus plugin global data not found for "${e}" plugin with id "${t}".`);return a}("docusaurus-plugin-content-docs",e,{failfast:!0})}catch(t){throw Error(`You are using a feature of the Docusaurus docs plugin, but this plugin does not seem to be enabled${"Default"===e?"":` (pluginId=${e}`}`,{cause:t})}};function f(e={}){let t=c(),{pathname:n}=(0,r.zy)();return function(e,t,n={}){let a=Object.entries(e).sort((e,t)=>t[1].path.localeCompare(e[1].path)).find(([,e])=>!!(0,r.B6)(t,{path:e.path,exact:!1,strict:!1})),o=a?{pluginId:a[0],pluginData:a[1]}:void 0;if(!o&&n.failfast)throw 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(e=>e.path).join(", ")}`);return o}(t,n,e)}function p(e){return d(e).versions}function m(e){return l(d(e))}function h(e){let t=d(e),{pathname:n}=(0,r.zy)();return s(t,n)}function g(e){let t,n=d(e),{pathname:a}=(0,r.zy)();return t=l(n),{latestDocSuggestion:s(n,a).alternateDocVersions[t.name],latestVersionSuggestion:t}}},182(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 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}).apply(this,arguments)}var l=n(1763),s=[],u=[],c=l.createContext(null);function d(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 f(e){var t={loading:!1,loaded:{},error:null},n=[];try{Object.keys(e).forEach(function(r){var a=d(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(e){t.error=e}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(e&&e.__esModule?e.default:e,t)}function m(e,t){if(!t.loading)throw Error("react-loadable requires a `loading` component");var d,f,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&&u.push(function(){if((0,m.webpack)().every(function(e){return void 0!==e&&void 0!==n.m[e]}))return g()}),f=d=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&&Array.isArray(m.modules)&&m.modules.forEach(function(t){e.context.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(d,"contextType",c),f}function h(e){return m(d,e)}function g(e){for(var t=[];e.length;){var n=e.pop();t.push(n())}return Promise.all(t).then(function(){if(e.length)return g(e)})}h.Map=function(e){if("function"!=typeof e.render)throw Error("LoadableMap requires a `render(loaded, props)` function");return m(f,e)},h.Capture=function(e){function t(){return e.apply(this,arguments)||this}return r(t,e),t.prototype.render=function(){return l.createElement(c.Provider,{value:{report:this.props.report}},l.Children.only(this.props.children))},t}(l.Component),h.preloadAll=function(){return new Promise(function(e,t){g(s).then(e,t)})},h.preloadReady=function(){return new Promise(function(e,t){g(u).then(e,e)})},e.exports=h},6759(e,t,n){"use strict";n.r(t),n.d(t,{default:()=>o});var r=n(8744),a=n.n(r);a().configure({showSpinner:!1});let o={onRouteUpdate({location:e,previousLocation:t}){if(t&&e.pathname!==t.pathname){let e=window.setTimeout(()=>{a().start()},200);return()=>window.clearTimeout(e)}},onRouteDidUpdate(){a().done()}}},4389(e,t,n){"use strict";var r=n(7957),a=n(4784);!function(e){let{themeConfig:{prism:t}}=a.default,{additionalLanguages:r}=t,o=globalThis.Prism;globalThis.Prism=e,r.forEach(e=>{"php"===e&&n(8020),n(3295)(`./prism-${e}`)}),delete globalThis.Prism,void 0!==o&&(globalThis.Prism=e)}(r.My)},8241(e,t,n){"use strict";n.d(t,{A:()=>u});var r=n(1987);n(1763);var a=n(3526),o=n(6475),i=n(4409),l=n(7364),s=n(4216);function u({as:e,id:t,...n}){let c=(0,s.A)(),d=(0,i.v)(t);if("h1"===e||!t)return(0,r.jsx)(e,{...n,id:void 0});c.collectAnchor(t);let f=(0,o.T)({id:"theme.common.headingLinkTitle",message:"Direct link to {heading}",description:"Title for link to heading"},{heading:"string"==typeof n.children?n.children:t});return(0,r.jsxs)(e,{...n,className:(0,a.A)("anchor",d,n.className),id:t,children:[n.children,(0,r.jsx)(l.A,{className:"hash-link",to:`#${t}`,"aria-label":f,title:f,translate:"no",children:"\u200B"})]})}},5740(e,t,n){"use strict";n.d(t,{A:()=>o});var r=n(1987);n(1763);var a=n(6475);function o({width:e=13.5,height:t=13.5}){return(0,r.jsx)("svg",{width:e,height:t,"aria-label":(0,a.T)({id:"theme.IconExternalLink.ariaLabel",message:"(opens in new tab)",description:"The ARIA label for the external link icon"}),className:"iconExternalLink_zdlW",children:(0,r.jsx)("use",{href:"#theme-svg-external-link"})})}},6819(e,t,n){"use strict";n.d(t,{A:()=>eJ});var r=n(1987),a=n(1763),o=n(3526),i=n(9047),l=n(310),s=n(6532),u=n(6475),c=n(3740);let d="__docusaurus_skipToContent_fallback";function f(e){e.setAttribute("tabindex","-1"),e.focus(),e.removeAttribute("tabindex")}let p=(0,u.T)({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",message:"Skip to main content"});function m(e){let t=e.children??p,{containerRef:n,onClick:o}=function(){let e=(0,a.useRef)(null),{action:t}=(0,s.W6)(),n=(0,a.useCallback)(e=>{e.preventDefault();let t=document.querySelector("main:first-of-type")??document.getElementById(d);t&&f(t)},[]);return(0,c.$)(({location:n})=>{e.current&&!n.hash&&"PUSH"===t&&f(e.current)}),{containerRef:e,onClick:n}}();return(0,r.jsx)("div",{ref:n,role:"region","aria-label":p,children:(0,r.jsx)("a",{...e,href:`#${d}`,onClick:o,children:t})})}var h=n(1009);function g(){return(0,r.jsx)(m,{className:"skipToContent_Sb3a"})}var b=n(8168),y=n(4807);function v({width:e=21,height:t=21,color:n="currentColor",strokeWidth:a=1.2,className:o,...i}){return(0,r.jsx)("svg",{viewBox:"0 0 15 15",width:e,height:t,...i,children:(0,r.jsx)("g",{stroke:n,strokeWidth:a,children:(0,r.jsx)("path",{d:"M.75.75l13.5 13.5M14.25.75L.75 14.25"})})})}function w(e){return(0,r.jsx)("button",{type:"button","aria-label":(0,u.T)({id:"theme.AnnouncementBar.closeButtonAriaLabel",message:"Close",description:"The ARIA label for close button of announcement bar"}),...e,className:(0,o.A)("clean-btn close","closeButton_Z3pV",e.className),children:(0,r.jsx)(v,{width:14,height:14,strokeWidth:3.1})})}function k(e){let{announcementBar:t}=(0,b.p)(),{content:n}=t;return(0,r.jsx)("div",{...e,className:(0,o.A)("content_PfKe",e.className),dangerouslySetInnerHTML:{__html:n}})}function S(){let{announcementBar:e}=(0,b.p)(),{isActive:t,close:n}=(0,y.M)();if(!t)return null;let{backgroundColor:a,textColor:i,isCloseable:l}=e;return(0,r.jsxs)("div",{className:(0,o.A)(h.G.announcementBar.container,"announcementBar_Ksje"),style:{backgroundColor:a,color:i},role:"banner",children:[l&&(0,r.jsx)("div",{className:"announcementBarPlaceholder_WRLw"}),(0,r.jsx)(k,{className:"announcementBarContent_kCy3"}),l&&(0,r.jsx)(w,{onClick:n,className:"announcementBarClose_cgcS"})]})}var x=n(4231),E=n(8522),_=n(7850),A=n(7050);let T=a.createContext(null);function C({children:e}){let t=function(){let e=(0,x.M)(),t=(0,A.YL)(),[n,r]=(0,a.useState)(!1),o=null!==t.component,i=(0,_.ZC)(o);return(0,a.useEffect)(()=>{o&&!i&&r(!0)},[o,i]),(0,a.useEffect)(()=>{o?e.shown||r(!0):r(!1)},[e.shown,o]),(0,a.useMemo)(()=>[n,r],[n])}();return(0,r.jsx)(T.Provider,{value:t,children:e})}function P(){let e=(0,a.useContext)(T);if(!e)throw new _.dV("NavbarSecondaryMenuDisplayProvider");let[t,n]=e,o=(0,a.useCallback)(()=>n(!1),[n]),i=(0,A.YL)();return(0,a.useMemo)(()=>({shown:t,hide:o,content:function(e){if(e.component){let t=e.component;return(0,r.jsx)(t,{...e.props})}}(i)}),[o,i,t])}function O({children:e,inert:t}){return(0,r.jsx)("div",{className:(0,o.A)(h.G.layout.navbar.mobileSidebar.panel,"navbar-sidebar__item menu"),...19>parseInt(a.version.split(".")[0],10)?{inert:t?"":void 0}:{inert:t},children:e})}function L({header:e,primaryMenu:t,secondaryMenu:n}){let{shown:a}=P();return(0,r.jsxs)("div",{className:(0,o.A)(h.G.layout.navbar.mobileSidebar.container,"navbar-sidebar"),children:[e,(0,r.jsxs)("div",{className:(0,o.A)("navbar-sidebar__items",{"navbar-sidebar__items--show-secondary":a}),children:[(0,r.jsx)(O,{inert:a,children:t}),(0,r.jsx)(O,{inert:!a,children:n})]})]})}var N=n(3287),j=n(8261);function R(e){return(0,r.jsx)("svg",{viewBox:"0 0 24 24",width:24,height:24,...e,children:(0,r.jsx)("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 I(e){return(0,r.jsx)("svg",{viewBox:"0 0 24 24",width:24,height:24,...e,children:(0,r.jsx)("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"})})}function D(e){return(0,r.jsx)("svg",{viewBox:"0 0 24 24",width:24,height:24,...e,children:(0,r.jsx)("path",{fill:"currentColor",d:"m12 21c4.971 0 9-4.029 9-9s-4.029-9-9-9-9 4.029-9 9 4.029 9 9 9zm4.95-13.95c1.313 1.313 2.05 3.093 2.05 4.95s-0.738 3.637-2.05 4.95c-1.313 1.313-3.093 2.05-4.95 2.05v-14c1.857 0 3.637 0.737 4.95 2.05z"})})}let F="toggleIcon_SFy4";function z(e){switch(e){case null:return(0,u.T)({message:"system mode",id:"theme.colorToggle.ariaLabel.mode.system",description:"The name for the system color mode"});case"light":return(0,u.T)({message:"light mode",id:"theme.colorToggle.ariaLabel.mode.light",description:"The name for the light color mode"});case"dark":return(0,u.T)({message:"dark mode",id:"theme.colorToggle.ariaLabel.mode.dark",description:"The name for the dark color mode"});default:throw Error(`unexpected color mode ${e}`)}}function M(){return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(R,{"aria-hidden":!0,className:(0,o.A)(F,"lightToggleIcon_r_0k")}),(0,r.jsx)(I,{"aria-hidden":!0,className:(0,o.A)(F,"darkToggleIcon_pwnq")}),(0,r.jsx)(D,{"aria-hidden":!0,className:(0,o.A)(F,"systemToggleIcon_gB86")})]})}let $=a.memo(function({className:e,buttonClassName:t,respectPrefersColorScheme:n,value:a,onChange:i}){let l=(0,j.A)();return(0,r.jsx)("div",{className:(0,o.A)("toggle_WfRr",e),children:(0,r.jsx)("button",{className:(0,o.A)("clean-btn","toggleButton_qxDU",!l&&"toggleButtonDisabled_MZUj",t),type:"button",onClick:()=>i(function(e,t){if(!t)return"dark"===e?"light":"dark";switch(e){case null:return"light";case"light":return"dark";case"dark":return null;default:throw Error(`unexpected color mode ${e}`)}}(a,n)),disabled:!l,title:z(a),"aria-label":(0,u.T)({message:"Switch between dark and light mode (currently {mode})",id:"theme.colorToggle.ariaLabel",description:"The ARIA label for the color mode toggle"},{mode:z(a)}),children:(0,r.jsx)(M,{})})})});function B({className:e}){let t=(0,b.p)().navbar.style,{disableSwitch:n,respectPrefersColorScheme:a}=(0,b.p)().colorMode,{colorModeChoice:o,setColorMode:i}=(0,N.G)();return n?null:(0,r.jsx)($,{className:e,buttonClassName:"dark"===t?"darkNavbarColorModeToggle_0mhA":void 0,respectPrefersColorScheme:a,value:o,onChange:i})}var U=n(930);function H(){return(0,r.jsx)(U.A,{className:"navbar__brand",imageClassName:"navbar__logo",titleClassName:"navbar__title text--truncate"})}function V(){let e=(0,x.M)();return(0,r.jsx)("button",{type:"button","aria-label":(0,u.T)({id:"theme.docs.sidebar.closeSidebarButtonAriaLabel",message:"Close navigation bar",description:"The ARIA label for close button of mobile sidebar"}),className:"clean-btn navbar-sidebar__close",onClick:()=>e.toggle(),children:(0,r.jsx)(v,{color:"var(--ifm-color-emphasis-600)"})})}function W(){return(0,r.jsxs)("div",{className:"navbar-sidebar__brand",children:[(0,r.jsx)(H,{}),(0,r.jsx)(B,{className:"margin-right--md"}),(0,r.jsx)(V,{})]})}var q=n(7364),G=n(319),Y=n(2236);function K(e,t){return void 0!==e&&void 0!==t&&RegExp(e,"gi").test(t)}var Q=n(5740);function Z({activeBasePath:e,activeBaseRegex:t,to:n,href:a,label:o,html:i,isDropdownLink:l,prependBaseUrlToHref:s,...u}){let c=(0,G.Ay)(n),d=(0,G.Ay)(e),f=(0,G.Ay)(a,{forcePrependBaseUrl:!0}),p=o&&a&&!(0,Y.A)(a),m=i?{dangerouslySetInnerHTML:{__html:i}}:{children:(0,r.jsxs)(r.Fragment,{children:[o,p&&(0,r.jsx)(Q.A,{...l&&{width:12,height:12}})]})};return a?(0,r.jsx)(q.A,{href:s?f:a,...u,...m}):(0,r.jsx)(q.A,{to:c,isNavLink:!0,...(e||t)&&{isActive:(e,n)=>t?K(t,n.pathname):n.pathname.startsWith(d)},...u,...m})}function X({className:e,isDropdownItem:t,...n}){return(0,r.jsx)("li",{className:"menu__list-item",children:(0,r.jsx)(Z,{className:(0,o.A)("menu__link",e),...n})})}function J({className:e,isDropdownItem:t=!1,...n}){let a=(0,r.jsx)(Z,{className:(0,o.A)(t?"dropdown__link":"navbar__item navbar__link",e),isDropdownLink:t,...n});return t?(0,r.jsx)("li",{children:a}):a}function ee({mobile:e=!1,position:t,...n}){return(0,r.jsx)(e?X:J,{...n,activeClassName:n.activeClassName??(e?"menu__link--active":"navbar__link--active")})}var et=n(3420),en=n(7711),er=n(5484);function ea({collapsed:e,onClick:t}){return(0,r.jsx)("button",{"aria-label":e?(0,u.T)({id:"theme.navbar.mobileDropdown.collapseButton.expandAriaLabel",message:"Expand the dropdown",description:"The ARIA label of the button to expand the mobile dropdown navbar item"}):(0,u.T)({id:"theme.navbar.mobileDropdown.collapseButton.collapseAriaLabel",message:"Collapse the dropdown",description:"The ARIA label of the button to collapse the mobile dropdown navbar item"}),"aria-expanded":!e,type:"button",className:"clean-btn menu__caret",onClick:t})}function eo({items:e,className:t,position:n,onClick:i,...l}){let u=function(){let{siteConfig:{baseUrl:e}}=(0,er.A)(),{pathname:t}=(0,s.zy)();return t.replace(e,"/")}(),c=(0,en.ys)(l.to,u),d=e.some(e=>!!((0,en.ys)(e.to,u)||K(e.activeBaseRegex,u)||e.activeBasePath&&u.startsWith(e.activeBasePath))),{collapsed:f,toggleCollapsed:p}=function({active:e}){let{collapsed:t,toggleCollapsed:n,setCollapsed:r}=(0,et.u)({initialState:()=>!e});return(0,a.useEffect)(()=>{e&&r(!1)},[e,r]),{collapsed:t,toggleCollapsed:n}}({active:c||d}),m=l.to?void 0:"#";return(0,r.jsxs)("li",{className:(0,o.A)("menu__list-item",{"menu__list-item--collapsed":f}),children:[(0,r.jsxs)("div",{className:(0,o.A)("menu__list-item-collapsible",{"menu__list-item-collapsible--active":c}),children:[(0,r.jsx)(Z,{role:"button",className:(0,o.A)("dropdownNavbarItemMobile_dOUG","menu__link menu__link--sublist",t),href:m,...l,onClick:e=>{"#"===m&&e.preventDefault(),p()},children:l.children??l.label}),(0,r.jsx)(ea,{collapsed:f,onClick:e=>{e.preventDefault(),p()}})]}),(0,r.jsx)(et.N,{lazy:!0,as:"ul",className:"menu__list",collapsed:f,children:e.map((e,t)=>(0,a.createElement)(ey,{mobile:!0,isDropdownItem:!0,onClick:i,activeClassName:"menu__link--active",...e,key:t}))})]})}function ei({items:e,position:t,className:n,onClick:i,...l}){let s=(0,a.useRef)(null),[u,c]=(0,a.useState)(!1);return(0,a.useEffect)(()=>{let e=e=>{!s.current||s.current.contains(e.target)||c(!1)};return document.addEventListener("mousedown",e),document.addEventListener("touchstart",e),document.addEventListener("focusin",e),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("touchstart",e),document.removeEventListener("focusin",e)}},[s]),(0,r.jsxs)("div",{ref:s,className:(0,o.A)("navbar__item","dropdown","dropdown--hoverable",{"dropdown--right":"right"===t,"dropdown--show":u}),children:[(0,r.jsx)(Z,{"aria-haspopup":"true","aria-expanded":u,role:"button",href:l.to?void 0:"#",className:(0,o.A)("navbar__link",n),...l,onClick:l.to?void 0:e=>e.preventDefault(),onKeyDown:e=>{("Enter"===e.key||" "===e.key)&&(e.preventDefault(),c(!u))},children:l.children??l.label}),(0,r.jsx)("ul",{className:"dropdown__menu",children:e.map((e,t)=>(0,a.createElement)(ey,{isDropdownItem:!0,activeClassName:"dropdown__link--active",...e,key:t}))})]})}function el({mobile:e=!1,...t}){return(0,r.jsx)(e?eo:ei,{...t})}var es=n(5941),eu=n(9327);function ec({width:e=20,height:t=20,...n}){return(0,r.jsx)("svg",{viewBox:"0 0 24 24",width:e,height:t,"aria-hidden":!0,...n,children:(0,r.jsx)("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 ed=n(116);function ef({children:e,className:t}){return(0,r.jsx)("div",{className:(0,o.A)(t,"navbarSearchContainer_Pcjl"),children:e})}var ep=n(9678),em=n(8484),eh=n(4806);function eg(e,t){return t.alternateDocVersions[e.name]??e.docs.find(t=>t.id===e.mainDocId)}let eb={default:ee,localeDropdown:function({mobile:e,dropdownItemsBefore:t,dropdownItemsAfter:n,queryString:a,...o}){let i=function(){let{siteConfig:e,i18n:{localeConfigs:t}}=(0,er.A)(),n=(0,es.o)(),r=(0,eu.Hl)(e=>e.location.search),a=(0,eu.Hl)(e=>e.location.hash),o=e=>{let n=t[e];if(!n)throw Error(`Docusaurus bug, no locale config found for locale=${e}`);return n};return{getURL:(t,i)=>{let l=(0,eu.jy)([r,i.queryString],"append");return`${o(t).url===e.url?`pathname://${n.createUrl({locale:t,fullyQualified:!1})}`:n.createUrl({locale:t,fullyQualified:!0})}${l}${a}`},getLabel:e=>o(e).label,getLang:e=>o(e).htmlLang}}(),{i18n:{currentLocale:l,locales:s}}=(0,er.A)(),c=[...t,...s.map(t=>({label:i.getLabel(t),lang:i.getLang(t),to:i.getURL(t,{queryString:a}),target:"_self",autoAddBaseUrl:!1,className:t===l?e?"menu__link--active":"dropdown__link--active":""})),...n],d=e?(0,u.T)({message:"Languages",id:"theme.navbar.mobileLanguageDropdown.label",description:"The label for the mobile language switcher dropdown"}):i.getLabel(l);return(0,r.jsx)(el,{...o,mobile:e,label:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(ec,{className:"iconLanguage_WQbe"}),d]}),items:c})},search:function({mobile:e,className:t}){return e?null:(0,r.jsx)(ef,{className:t,children:(0,r.jsx)(ed.A,{})})},dropdown:el,html:function({value:e,className:t,mobile:n=!1,isDropdownItem:a=!1}){return(0,r.jsx)(a?"li":"div",{className:(0,o.A)({navbar__item:!n&&!a,"menu__list-item":n},t),dangerouslySetInnerHTML:{__html:e}})},doc:function({docId:e,label:t,docsPluginId:n,...a}){let{activeDoc:o}=(0,ep.zK)(n),i=(0,em.QB)(e,n),l=o?.path===i?.path;return null===i||i.unlisted&&!l?null:(0,r.jsx)(ee,{exact:!0,...a,isActive:()=>l||!!o?.sidebar&&o.sidebar===i.sidebar,label:t??i.id,to:i.path})},docSidebar:function({sidebarId:e,label:t,docsPluginId:n,...a}){let{activeDoc:o}=(0,ep.zK)(n),i=(0,em.fW)(e,n).link;if(!i)throw Error(`DocSidebarNavbarItem: Sidebar with ID "${e}" doesn't have anything to be linked to.`);return(0,r.jsx)(ee,{exact:!0,...a,isActive:()=>o?.sidebar===e,label:t??i.label,to:i.path})},docsVersion:function({label:e,to:t,docsPluginId:n,...a}){let o=(0,em.Vd)(n)[0],i=e??o.label,l=t??o.docs.find(e=>e.id===o.mainDocId).path;return(0,r.jsx)(ee,{...a,label:i,to:l})},docsVersionDropdown:function({mobile:e,docsPluginId:t,dropdownActiveClassDisabled:n,dropdownItemsBefore:a,dropdownItemsAfter:o,versions:i,...l}){let s=(0,eu.Hl)(e=>e.location.search),c=(0,eu.Hl)(e=>e.location.hash),d=(0,ep.zK)(t),{savePreferredVersionName:f}=(0,eh.g1)(t),p=function({docsPluginId:e,configs:t}){var n=(0,ep.jh)(e);if(!t)return n.map(e=>({version:e,label:e.label}));{let e=new Map(n.map(e=>[e.name,e])),r=(t,r)=>{let a=e.get(t);if(!a)throw Error(`No docs version exist for name '${t}', please verify your 'docsVersionDropdown' navbar item versions config. +Available version names: +- ${n.map(e=>`${e.name}`).join("\n- ")}`);return{version:a,label:r?.label??a.label}};return Array.isArray(t)?t.map(e=>r(e,void 0)):Object.entries(t).map(([e,t])=>r(e,t))}}({docsPluginId:t,configs:i}),m=function({docsPluginId:e,versionItems:t}){return(0,em.Vd)(e).map(e=>t.find(t=>t.version===e)).filter(e=>void 0!==e)[0]??t[0]}({docsPluginId:t,versionItems:p}),h=[...a,...p.map(function({version:e,label:t}){let n=eg(e,d);return{label:t,to:`${n.path}${s}${c}`,isActive:()=>e===d.activeVersion,onClick:()=>f(e.name)}}),...o],g=e&&h.length>1?(0,u.T)({id:"theme.navbar.mobileVersionsDropdown.label",message:"Versions",description:"The label for the navbar versions dropdown on mobile view"}):m.label,b=e&&h.length>1?void 0:eg(m.version,d).path;return h.length<=1?(0,r.jsx)(ee,{...l,mobile:e,label:g,to:b,isActive:n?()=>!1:void 0}):(0,r.jsx)(el,{...l,mobile:e,label:g,to:b,items:h,isActive:n?()=>!1:void 0})}};function ey({type:e,...t}){let n=eb[!e||"default"===e?"items"in t?"dropdown":"default":e];if(!n)throw Error(`No NavbarItem component found for type "${e}".`);return(0,r.jsx)(n,{...t})}function ev(){let e=(0,x.M)(),t=(0,b.p)().navbar.items;return(0,r.jsx)("ul",{className:"menu__list",children:t.map((t,n)=>(0,a.createElement)(ey,{mobile:!0,...t,onClick:()=>e.toggle(),key:n}))})}function ew(e){return(0,r.jsx)("button",{...e,type:"button",className:"clean-btn navbar-sidebar__back",children:(0,r.jsx)(u.A,{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)",children:"\u2190 Back to main menu"})})}function ek(){let e=0===(0,b.p)().navbar.items.length,t=P();return(0,r.jsxs)(r.Fragment,{children:[!e&&(0,r.jsx)(ew,{onClick:()=>t.hide()}),t.content]})}function eS(){let e=(0,x.M)();return(!function(e=!0){(0,a.useEffect)(()=>(document.body.style.overflow=e?"hidden":"visible",()=>{document.body.style.overflow="visible"}),[e])}(e.shown),e.shouldRender)?(0,r.jsx)(L,{header:(0,r.jsx)(W,{}),primaryMenu:(0,r.jsx)(ev,{}),secondaryMenu:(0,r.jsx)(ek,{})}):null}function ex(e){return(0,r.jsx)("div",{role:"presentation",...e,className:(0,o.A)("navbar-sidebar__backdrop",e.className)})}function eE({children:e}){let{navbar:{hideOnScroll:t,style:n}}=(0,b.p)(),i=(0,x.M)(),{navbarRef:l,isNavbarVisible:s}=function(e){let[t,n]=(0,a.useState)(e),r=(0,a.useRef)(!1),o=(0,a.useRef)(0),i=(0,a.useCallback)(e=>{null!==e&&(o.current=e.getBoundingClientRect().height)},[]);return(0,E.Mq)(({scrollY:t},a)=>{if(!e)return;if(t<o.current)return void n(!0);if(r.current){r.current=!1;return}let i=a?.scrollY,l=document.documentElement.scrollHeight-o.current,s=window.innerHeight;i&&t>=i?n(!1):t+s<l&&n(!0)}),(0,c.$)(t=>{if(!e)return;let a=t.location.hash;if(a?document.getElementById(a.substring(1)):void 0){r.current=!0,n(!1);return}n(!0)}),{navbarRef:i,isNavbarVisible:t}}(t);return(0,r.jsxs)("nav",{ref:l,"aria-label":(0,u.T)({id:"theme.NavBar.navAriaLabel",message:"Main",description:"The ARIA label for the main navigation"}),className:(0,o.A)(h.G.layout.navbar.container,"navbar","navbar--fixed-top",t&&["navbarHideable_UrdD",!s&&"navbarHidden_z2Ap"],{"navbar--dark":"dark"===n,"navbar--primary":"primary"===n,"navbar-sidebar--show":i.shown}),children:[e,(0,r.jsx)(ex,{onClick:i.toggle}),(0,r.jsx)(eS,{})]})}var e_=n(2455);function eA(e){return(0,r.jsx)("button",{type:"button",...e,children:(0,r.jsx)(u.A,{id:"theme.ErrorPageContent.tryAgain",description:"The label of the button to try again rendering when the React error boundary captures an error",children:"Try again"})})}function eT({error:e}){let t=(0,e_.getErrorCausalChain)(e).map(e=>e.message).join("\n\nCause:\n");return(0,r.jsx)("p",{className:"errorBoundaryError_PTLG",children:t})}class eC extends a.Component{componentDidCatch(e,t){throw this.props.onError(e,t)}render(){return this.props.children}}function eP({width:e=30,height:t=30,className:n,...a}){return(0,r.jsx)("svg",{className:n,width:e,height:t,viewBox:"0 0 30 30","aria-hidden":"true",...a,children:(0,r.jsx)("path",{stroke:"currentColor",strokeLinecap:"round",strokeMiterlimit:"10",strokeWidth:"2",d:"M4 7h22M4 15h22M4 23h22"})})}function eO(){let{toggle:e,shown:t}=(0,x.M)();return(0,r.jsx)("button",{onClick:e,"aria-label":(0,u.T)({id:"theme.docs.sidebar.toggleSidebarButtonAriaLabel",message:"Toggle navigation bar",description:"The ARIA label for hamburger menu button of mobile navigation"}),"aria-expanded":t,className:"navbar__toggle clean-btn",type:"button",children:(0,r.jsx)(eP,{})})}function eL({items:e}){return(0,r.jsx)(r.Fragment,{children:e.map((e,t)=>(0,r.jsx)(eC,{onError:t=>Error(`A theme navbar item failed to render. +Please double-check the following navbar item (themeConfig.navbar.items) of your Docusaurus config: +${JSON.stringify(e,null,2)}`,{cause:t}),children:(0,r.jsx)(ey,{...e})},t))})}function eN({left:e,right:t}){return(0,r.jsxs)("div",{className:"navbar__inner",children:[(0,r.jsx)("div",{className:(0,o.A)(h.G.layout.navbar.containerLeft,"navbar__items"),children:e}),(0,r.jsx)("div",{className:(0,o.A)(h.G.layout.navbar.containerRight,"navbar__items navbar__items--right"),children:t})]})}function ej(){let e=(0,x.M)(),t=(0,b.p)().navbar.items,[n,a]=function(e){function t(e){return(e.position??"right")==="left"}return[e.filter(t),e.filter(e=>!t(e))]}(t),o=t.find(e=>"search"===e.type);return(0,r.jsx)(eN,{left:(0,r.jsxs)(r.Fragment,{children:[!e.disabled&&(0,r.jsx)(eO,{}),(0,r.jsx)(H,{}),(0,r.jsx)(eL,{items:n})]}),right:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(eL,{items:a}),(0,r.jsx)(B,{className:"colorModeToggle_oVbE"}),!o&&(0,r.jsx)(ef,{children:(0,r.jsx)(ed.A,{})})]})})}function eR(){return(0,r.jsx)(eE,{children:(0,r.jsx)(ej,{})})}function eI({item:e}){let{to:t,href:n,label:a,prependBaseUrlToHref:i,className:l,...s}=e,u=(0,G.Ay)(t),c=(0,G.Ay)(n,{forcePrependBaseUrl:!0});return(0,r.jsxs)(q.A,{className:(0,o.A)("footer__link-item",l),...n?{href:i?c:n}:{to:u},...s,children:[a,n&&!(0,Y.A)(n)&&(0,r.jsx)(Q.A,{})]})}function eD({item:e}){return e.html?(0,r.jsx)("li",{className:(0,o.A)("footer__item",e.className),dangerouslySetInnerHTML:{__html:e.html}}):(0,r.jsx)("li",{className:"footer__item",children:(0,r.jsx)(eI,{item:e})},e.href??e.to)}function eF({column:e}){return(0,r.jsxs)("div",{className:(0,o.A)(h.G.layout.footer.column,"col footer__col",e.className),children:[(0,r.jsx)("div",{className:"footer__title",children:e.title}),(0,r.jsx)("ul",{className:"footer__items clean-list",children:e.items.map((e,t)=>(0,r.jsx)(eD,{item:e},t))})]})}function ez({columns:e}){return(0,r.jsx)("div",{className:"row footer__links",children:e.map((e,t)=>(0,r.jsx)(eF,{column:e},t))})}function eM(){return(0,r.jsx)("span",{className:"footer__link-separator",children:"\xb7"})}function e$({item:e}){return e.html?(0,r.jsx)("span",{className:(0,o.A)("footer__link-item",e.className),dangerouslySetInnerHTML:{__html:e.html}}):(0,r.jsx)(eI,{item:e})}function eB({links:e}){return(0,r.jsx)("div",{className:"footer__links text--center",children:(0,r.jsx)("div",{className:"footer__links",children:e.map((t,n)=>(0,r.jsxs)(a.Fragment,{children:[(0,r.jsx)(e$,{item:t}),e.length!==n+1&&(0,r.jsx)(eM,{})]},n))})})}function eU({links:e}){return"title"in e[0]?(0,r.jsx)(ez,{columns:e}):(0,r.jsx)(eB,{links:e})}var eH=n(551);function eV({logo:e}){let{withBaseUrl:t}=(0,G.hH)(),n={light:t(e.src),dark:t(e.srcDark??e.src)};return(0,r.jsx)(eH.A,{className:(0,o.A)("footer__logo",e.className),alt:e.alt,sources:n,width:e.width,height:e.height,style:e.style})}function eW({logo:e}){return e.href?(0,r.jsx)(q.A,{href:e.href,className:"footerLogoLink_jCuZ",target:e.target,children:(0,r.jsx)(eV,{logo:e})}):(0,r.jsx)(eV,{logo:e})}function eq({copyright:e}){return(0,r.jsx)("div",{className:"footer__copyright",dangerouslySetInnerHTML:{__html:e}})}function eG({style:e,links:t,logo:n,copyright:a}){return(0,r.jsx)("footer",{className:(0,o.A)(h.G.layout.footer.container,"footer",{"footer--dark":"dark"===e}),children:(0,r.jsxs)("div",{className:"container container-fluid",children:[t,(n||a)&&(0,r.jsxs)("div",{className:"footer__bottom text--center",children:[n&&(0,r.jsx)("div",{className:"margin-bottom--sm",children:n}),a]})]})})}let eY=a.memo(function(){let{footer:e}=(0,b.p)();if(!e)return null;let{copyright:t,links:n,logo:a,style:o}=e;return(0,r.jsx)(eG,{style:o,links:n&&n.length>0&&(0,r.jsx)(eU,{links:n}),logo:a&&(0,r.jsx)(eW,{logo:a}),copyright:t&&(0,r.jsx)(eq,{copyright:t})})}),eK=(0,_.fM)([N.a,y.o,E.Tv,eh.VQ,l.Jx,function({children:e}){return(0,r.jsx)(A.y_,{children:(0,r.jsx)(x.e,{children:(0,r.jsx)(C,{children:e})})})}]);function eQ({children:e}){return(0,r.jsx)(eK,{children:e})}var eZ=n(8241);function eX({error:e,tryAgain:t}){return(0,r.jsx)("main",{className:"container margin-vert--xl",children:(0,r.jsx)("div",{className:"row",children:(0,r.jsxs)("div",{className:"col col--6 col--offset-3",children:[(0,r.jsx)(eZ.A,{as:"h1",className:"hero__title",children:(0,r.jsx)(u.A,{id:"theme.ErrorPageContent.title",description:"The title of the fallback page when the page crashed",children:"This page crashed."})}),(0,r.jsx)("div",{className:"margin-vert--lg",children:(0,r.jsx)(eA,{onClick:t,className:"button button--primary shadow--lw"})}),(0,r.jsx)("hr",{}),(0,r.jsx)("div",{className:"margin-vert--md",children:(0,r.jsx)(eT,{error:e})})]})})})}function eJ(e){let{children:t,noFooter:n,wrapperClassName:a,title:s,description:u}=e;return(0,r.jsxs)(eQ,{children:[(0,r.jsx)(l.be,{title:s,description:u}),(0,r.jsx)(g,{}),(0,r.jsx)(S,{}),(0,r.jsx)(eR,{}),(0,r.jsx)("div",{id:d,className:(0,o.A)(h.G.layout.main.container,h.G.wrapper.main,"mainWrapper_BsZ3",a),children:(0,r.jsx)(i.A,{fallback:e=>(0,r.jsx)(eX,{...e}),children:t})}),!n&&(0,r.jsx)(eY,{})]})}},930(e,t,n){"use strict";n.d(t,{A:()=>c});var r=n(1987);n(1763);var a=n(7364),o=n(319),i=n(5484),l=n(8168),s=n(551);function u({logo:e,alt:t,imageClassName:n}){let a={light:(0,o.Ay)(e.src),dark:(0,o.Ay)(e.srcDark||e.src)},i=(0,r.jsx)(s.A,{className:e.className,sources:a,height:e.height,width:e.width,alt:t,style:e.style});return n?(0,r.jsx)("div",{className:n,children:i}):i}function c(e){let{siteConfig:{title:t}}=(0,i.A)(),{navbar:{title:n,logo:s}}=(0,l.p)(),{imageClassName:c,titleClassName:d,...f}=e,p=(0,o.Ay)(s?.href||"/"),m=s?.alt??(n?"":t);return(0,r.jsxs)(a.A,{to:p,...f,...s?.target&&{target:s.target},children:[s&&(0,r.jsx)(u,{logo:s,alt:m,imageClassName:c}),null!=n&&(0,r.jsx)("b",{className:d,children:n})]})}},5992(e,t,n){"use strict";n.d(t,{A:()=>o});var r=n(1987);n(1763);var a=n(7634);function o({locale:e,version:t,tag:n}){return(0,r.jsxs)(a.A,{children:[e&&(0,r.jsx)("meta",{name:"docusaurus_locale",content:e}),t&&(0,r.jsx)("meta",{name:"docusaurus_version",content:t}),n&&(0,r.jsx)("meta",{name:"docusaurus_tag",content:n}),e&&(0,r.jsx)("meta",{name:"docsearch:language",content:e}),t&&(0,r.jsx)("meta",{name:"docsearch:version",content:t}),n&&(0,r.jsx)("meta",{name:"docsearch:docusaurus_tag",content:n})]})}},551(e,t,n){"use strict";n.d(t,{A:()=>c});var r=n(1987),a=n(1763),o=n(3526),i=n(8261),l=n(3287);let s={themedComponent:"themedComponent_dt6d","themedComponent--light":"themedComponent--light_XcPj","themedComponent--dark":"themedComponent--dark_QMpS"};function u({className:e,children:t}){let n=(0,i.A)(),{colorMode:c}=(0,l.G)();return(0,r.jsx)(r.Fragment,{children:(n?"dark"===c?["dark"]:["light"]:["light","dark"]).map(n=>{let i=t({theme:n,className:(0,o.A)(e,s.themedComponent,s[`themedComponent--${n}`])});return(0,r.jsx)(a.Fragment,{children:i},n)})})}function c(e){let{sources:t,className:n,alt:a,...o}=e;return(0,r.jsx)(u,{className:n,children:({theme:e,className:n})=>(0,r.jsx)("img",{src:t[e],alt:a,className:n,...o})})}},3420(e,t,n){"use strict";n.d(t,{N:()=>p,u:()=>l});var r=n(1987),a=n(1763),o=n(9879),i=n(7351);function l({initialState:e}){let[t,n]=(0,a.useState)(e??!1),r=(0,a.useCallback)(()=>{n(e=>!e)},[]);return{collapsed:t,setCollapsed:n,toggleCollapsed:r}}let s={display:"none",overflow:"hidden",height:"0px"},u={display:"block",overflow:"visible",height:"auto"};function c(e,t){let n=t?s:u;e.style.display=n.display,e.style.overflow=n.overflow,e.style.height=n.height}function d({as:e="div",collapsed:t,children:n,animation:o,onCollapseTransitionEnd:l,className:u}){let f=(0,a.useRef)(null);return!function({collapsibleRef:e,collapsed:t,animation:n}){let r=(0,a.useRef)(!1);(0,a.useEffect)(()=>{let a,o=e.current;function l(){let e,t,r,a=(e=o.scrollHeight,t=n?.duration??function(e){if((0,i.O)())return 1;let t=e/36;return Math.round((4+15*t**.25+t/5)*10)}(e),r=n?.easing??"ease-in-out",{transition:`height ${t}ms ${r}`,height:`${e}px`});o.style.transition=a.transition,o.style.height=a.height}if(!r.current){c(o,t),r.current=!0;return}return o.style.willChange="height",a=requestAnimationFrame(()=>{t?(l(),requestAnimationFrame(()=>{o.style.height=s.height,o.style.overflow=s.overflow})):(o.style.display="block",requestAnimationFrame(()=>{l()}))}),()=>cancelAnimationFrame(a)},[e,t,n])}({collapsibleRef:f,collapsed:t,animation:o}),(0,r.jsx)(e,{ref:f,onTransitionEnd:e=>{"height"===e.propertyName&&(c(f.current,t),l?.(t))},className:u,children:n})}function f({collapsed:e,...t}){let[n,i]=(0,a.useState)(!e),[l,s]=(0,a.useState)(e);return(0,o.A)(()=>{e||i(!0)},[e]),(0,o.A)(()=>{n&&s(e)},[n,e]),n?(0,r.jsx)(d,{...t,collapsed:l}):null}function p({lazy:e,...t}){return(0,r.jsx)(e?f:d,{...t})}},4807(e,t,n){"use strict";n.d(t,{M:()=>m,o:()=>p});var r=n(1987),a=n(1763),o=n(8261),i=n(8184),l=n(7850),s=n(8168);let u=(0,i.Wf)("docusaurus.announcement.dismiss"),c=(0,i.Wf)("docusaurus.announcement.id"),d=e=>u.set(String(e)),f=a.createContext(null);function p({children:e}){let t=function(){let{announcementBar:e}=(0,s.p)(),t=(0,o.A)(),[n,r]=(0,a.useState)(()=>!!t&&"true"===u.get());(0,a.useEffect)(()=>{r("true"===u.get())},[]);let i=(0,a.useCallback)(()=>{d(!0),r(!0)},[]);return(0,a.useEffect)(()=>{if(!e)return;let{id:t}=e,n=c.get();"annoucement-bar"===n&&(n="announcement-bar");let a=t!==n;c.set(t),a&&d(!1),(a||"true"!==u.get())&&r(!1)},[e]),(0,a.useMemo)(()=>({isActive:!!e&&!n,close:i}),[e,n,i])}();return(0,r.jsx)(f.Provider,{value:t,children:e})}function m(){let e=(0,a.useContext)(f);if(!e)throw new l.dV("AnnouncementBarProvider");return e}},3287(e,t,n){"use strict";n.d(t,{G:()=>w,a:()=>v});var r=n(1987),a=n(1763),o=n(8261),i=n(7850),l=n(8184),s=n(8168);function u(){return window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}let c=a.createContext(void 0),d=(0,l.Wf)("theme"),f="system",p=e=>"dark"===e?"dark":"light",m=e=>null===e||e===f?null:p(e),h=()=>p(document.documentElement.getAttribute("data-theme")),g=e=>{document.documentElement.setAttribute("data-theme",p(e))},b=()=>m(document.documentElement.getAttribute("data-theme-choice")),y=e=>{document.documentElement.setAttribute("data-theme-choice",m(e)??f)};function v({children:e}){let t=function(){let{colorMode:{defaultMode:e,disableSwitch:t,respectPrefersColorScheme:n}}=(0,s.p)(),{colorMode:r,setColorModeState:i,colorModeChoice:l,setColorModeChoiceState:c}=function(){let{colorMode:{defaultMode:e}}=(0,s.p)(),t=(0,o.A)(),[n,r]=(0,a.useState)(t?h():e),[i,l]=(0,a.useState)(t?b():null);return(0,a.useEffect)(()=>{r(h()),l(b())},[]),{colorMode:n,setColorModeState:r,colorModeChoice:i,setColorModeChoiceState:l}}();(0,a.useEffect)(()=>{t&&d.del()},[t]);let f=(0,a.useCallback)((t,r={})=>{let{persist:a=!0}=r;if(null===t){let t=n?u():e;g(t),i(t),y(null),c(null)}else g(t),y(t),i(t),c(t);a&&(null===t?d.del():d.set(p(t)))},[i,c,n,e]);return(0,a.useEffect)(()=>d.listen(e=>{f(m(e.newValue))}),[f]),(0,a.useEffect)(()=>{if(null===l&&n){var e,t;let n;return e=e=>{i(e),g(e)},t=()=>e(u()),(n=window.matchMedia("(prefers-color-scheme: dark)")).addEventListener("change",t),()=>n.removeEventListener("change",t)}},[n,l,i]),(0,a.useMemo)(()=>({colorMode:r,colorModeChoice:l,setColorMode:f,get isDarkTheme(){return"dark"===r},setLightTheme(){f("light")},setDarkTheme(){f("dark")}}),[r,l,f])}();return(0,r.jsx)(c.Provider,{value:t,children:e})}function w(){let e=(0,a.useContext)(c);if(null==e)throw new i.dV("ColorModeProvider","Please see https://docusaurus.io/docs/api/themes/configuration#use-color-mode.");return e}},4231(e,t,n){"use strict";n.d(t,{M:()=>p,e:()=>f});var r=n(1987),a=n(1763),o=n(7050),i=n(9299),l=n(9327),s=n(8168),u=n(7850);let c=a.createContext(void 0);function d({handler:e}){return(0,l.$Z)(e),null}function f({children:e}){let t=function(){let e=function(){let e=(0,o.YL)(),{items:t}=(0,s.p)().navbar;return 0===t.length&&!e.component}(),t=(0,i.l)(),n=!e&&"mobile"===t,[r,l]=(0,a.useState)(!1),u=(0,a.useCallback)(()=>{l(e=>!e)},[]);return(0,a.useEffect)(()=>{"desktop"===t&&l(!1)},[t]),(0,a.useMemo)(()=>({disabled:e,shouldRender:n,toggle:u,shown:r}),[e,n,u,r])}();return(0,r.jsxs)(r.Fragment,{children:[t.shown&&(0,r.jsx)(d,{handler:()=>(t.toggle(),!1)}),(0,r.jsx)(c.Provider,{value:t,children:e})]})}function p(){let e=a.useContext(c);if(void 0===e)throw new u.dV("NavbarMobileSidebarProvider");return e}},7050(e,t,n){"use strict";n.d(t,{GX:()=>u,YL:()=>s,y_:()=>l});var r=n(1987),a=n(1763),o=n(7850);let i=a.createContext(null);function l({children:e}){let t=(0,a.useState)({component:null,props:null});return(0,r.jsx)(i.Provider,{value:t,children:e})}function s(){let e=(0,a.useContext)(i);if(!e)throw new o.dV("NavbarSecondaryMenuContentProvider");return e[0]}function u({component:e,props:t}){let n=(0,a.useContext)(i);if(!n)throw new o.dV("NavbarSecondaryMenuContentProvider");let[,r]=n,l=(0,o.Be)(t);return(0,a.useEffect)(()=>{r({component:e,props:l})},[r,e,l]),(0,a.useEffect)(()=>()=>r({component:null,props:null}),[r]),null}},9299(e,t,n){"use strict";n.d(t,{l:()=>o});var r=n(1763),a=n(4619);function o({desktopBreakpoint:e=996}={}){let[t,n]=(0,r.useState)(()=>"ssr");return(0,r.useEffect)(()=>{function t(){n(function(e){if(!a.A.canUseDOM)throw Error("getWindowSize() should only be called after React hydration");return window.innerWidth>e?"desktop":"mobile"}(e))}return t(),window.addEventListener("resize",t),()=>{window.removeEventListener("resize",t)}},[e]),t}},1009(e,t,n){"use strict";n.d(t,{G:()=>r});let r={page:{blogListPage:"blog-list-page",blogPostPage:"blog-post-page",blogTagsListPage:"blog-tags-list-page",blogTagPostListPage:"blog-tags-post-list-page",blogAuthorsListPage:"blog-authors-list-page",blogAuthorsPostsPage:"blog-authors-posts-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",admonition:"theme-admonition",unlistedBanner:"theme-unlisted-banner",draftBanner:"theme-draft-banner",admonitionType:e=>`theme-admonition-${e}`},announcementBar:{container:"theme-announcement-bar"},tabs:{container:"theme-tabs-container"},layout:{navbar:{container:"theme-layout-navbar",containerLeft:"theme-layout-navbar-left",containerRight:"theme-layout-navbar-right",mobileSidebar:{container:"theme-layout-navbar-sidebar",panel:"theme-layout-navbar-sidebar-panel"}},main:{container:"theme-layout-main"},footer:{container:"theme-layout-footer",column:"theme-layout-footer-column"}},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:e=>`theme-doc-sidebar-item-category-level-${e}`,docSidebarItemLinkLevel:e=>`theme-doc-sidebar-item-link-level-${e}`,docCard:{container:"theme-doc-card-container",heading:"theme-doc-card-heading",icon:"theme-doc-card-icon",title:"theme-doc-card-title",description:"theme-doc-card-description"}},blog:{blogFooterTagsRow:"theme-blog-footer-tags-row",blogFooterEditMetaRow:"theme-blog-footer-edit-meta-row"},pages:{pageFooterEditMetaRow:"theme-pages-footer-edit-meta-row"}}},7351(e,t,n){"use strict";function r(){return window.matchMedia("(prefers-reduced-motion: reduce)").matches}n.d(t,{O:()=>r})},4409(e,t,n){"use strict";n.d(t,{v:()=>a});var r=n(8168);function a(e){let{navbar:{hideOnScroll:t}}=(0,r.p)();if(void 0!==e)return t?"anchorTargetHideOnScrollNavbar_Lo9g":"anchorTargetStickyNavbar_zfeO"}},9327(e,t,n){"use strict";n.d(t,{$Z:()=>i,Hl:()=>l,aZ:()=>s,jy:()=>u});var r=n(1763),a=n(6532),o=n(7850);function i(e){let t,n;t=(0,a.W6)(),n=(0,o._q)((t,n)=>{if("POP"===n)return e(t,n)}),(0,r.useEffect)(()=>t.block((e,t)=>n(e,t)),[t,n])}function l(e){let t=(0,a.W6)();return(0,r.useSyncExternalStore)(t.listen,()=>e(t),()=>e({...t,location:{...t.location,search:"",hash:"",state:void 0}}))}function s(e){return l(t=>null===e?null:new URLSearchParams(t.location.search).get(e))}function u(e,t){let n=(function(e,t){let n=new URLSearchParams;for(let r of e)for(let[e,a]of r.entries())"append"===t?n.append(e,a):n.set(e,a);return n})(e.map(e=>new URLSearchParams(e??"")),t).toString();return n?`?${n}`:n}},8292(e,t,n){"use strict";function r(e,t=(e,t)=>e===t){return e.filter((n,r)=>e.findIndex(e=>t(e,n))!==r)}function a(e){return Array.from(new Set(e))}n.d(t,{XI:()=>r,sb:()=>a})},310(e,t,n){"use strict";n.d(t,{Jx:()=>b,be:()=>m,e3:()=>g});var r=n(1987),a=n(1763),o=n(3526),i=n(7634),l=n(7581),s=n(319),u=n(6461);function c({title:e}){let t=(0,u.s$)().format(e);return(0,r.jsxs)(i.A,{children:[(0,r.jsx)("title",{children:t}),(0,r.jsx)("meta",{property:"og:title",content:t})]})}function d({description:e}){return(0,r.jsxs)(i.A,{children:[(0,r.jsx)("meta",{name:"description",content:e}),(0,r.jsx)("meta",{property:"og:description",content:e})]})}function f({image:e}){let{withBaseUrl:t}=(0,s.hH)(),n=t(e,{absolute:!0});return(0,r.jsxs)(i.A,{children:[(0,r.jsx)("meta",{property:"og:image",content:n}),(0,r.jsx)("meta",{name:"twitter:image",content:n})]})}function p({keywords:e}){return(0,r.jsx)(i.A,{children:(0,r.jsx)("meta",{name:"keywords",content:Array.isArray(e)?e.join(","):e})})}function m({title:e,description:t,keywords:n,image:a,children:o}){return(0,r.jsxs)(r.Fragment,{children:[e&&(0,r.jsx)(c,{title:e}),t&&(0,r.jsx)(d,{description:t}),n&&(0,r.jsx)(p,{keywords:n}),a&&(0,r.jsx)(f,{image:a}),o&&(0,r.jsx)(i.A,{children:o})]})}let h=a.createContext(void 0);function g({className:e,children:t}){let n=a.useContext(h),l=(0,o.A)(n,e);return(0,r.jsxs)(h.Provider,{value:l,children:[(0,r.jsx)(i.A,{children:(0,r.jsx)("html",{className:l})}),t]})}function b({children:e}){var t;let n=(0,l.A)(),a=(t=n.plugin.name,`plugin-${t.replace(/docusaurus-(?:plugin|theme)-(?:content-)?/gi,"")}`),i=`plugin-id-${n.plugin.id}`;return(0,r.jsx)(g,{className:(0,o.A)(a,i),children:e})}},7850(e,t,n){"use strict";n.d(t,{Be:()=>u,ZC:()=>l,_q:()=>i,dV:()=>s,fM:()=>c});var r=n(1987),a=n(1763),o=n(9879);function i(e){let t=(0,a.useRef)(e);return(0,o.A)(()=>{t.current=e},[e]),(0,a.useCallback)((...e)=>t.current(...e),[])}function l(e){let t=(0,a.useRef)(void 0);return(0,o.A)(()=>{t.current=e}),t.current}class s extends Error{constructor(e,t){super(),this.name="ReactContextError",this.message=`Hook ${this.stack?.split("\n")[1]?.match(/at (?:\w+\.)?(?<name>\w+)/)?.groups.name??""} is called outside the <${e}>. ${t??""}`}}function u(e){let t=Object.entries(e);return t.sort((e,t)=>e[0].localeCompare(t[0])),(0,a.useMemo)(()=>e,t.flat())}function c(e){return({children:t})=>(0,r.jsx)(r.Fragment,{children:e.reduceRight((e,t)=>(0,r.jsx)(t,{children:e}),t)})}},7711(e,t,n){"use strict";n.d(t,{Dt:()=>l,ys:()=>i});var r=n(1763),a=n(439),o=n(5484);function i(e,t){let n=e=>(!e||e.endsWith("/")?e:`${e}/`)?.toLowerCase();return n(e)===n(t)}function l(){let{baseUrl:e}=(0,o.A)().siteConfig;return(0,r.useMemo)(()=>(function({baseUrl:e,routes:t}){function n(t){return t.path===e&&!0===t.exact}function r(t){return t.path===e&&!t.exact}return function e(t){if(0===t.length)return;let a=t.find(n);return a||e(t.filter(r).flatMap(e=>e.routes??[]))}(t)})({routes:a.A,baseUrl:e}),[e])}},8522(e,t,n){"use strict";n.d(t,{Mq:()=>p,Tv:()=>c,a_:()=>m,gk:()=>h});var r=n(1987),a=n(1763),o=n(4619),i=n(8261),l=n(9879),s=n(7850);let u=a.createContext(void 0);function c({children:e}){let t,n=(t=(0,a.useRef)(!0),(0,a.useMemo)(()=>({scrollEventsEnabledRef:t,enableScrollEvents:()=>{t.current=!0},disableScrollEvents:()=>{t.current=!1}}),[]));return(0,r.jsx)(u.Provider,{value:n,children:e})}function d(){let e=(0,a.useContext)(u);if(null==e)throw new s.dV("ScrollControllerProvider");return e}let f=()=>o.A.canUseDOM?{scrollX:window.pageXOffset,scrollY:window.pageYOffset}:null;function p(e,t=[]){let{scrollEventsEnabledRef:n}=d(),r=(0,a.useRef)(f()),o=(0,s._q)(e);(0,a.useEffect)(()=>{let e=()=>{if(!n.current)return;let e=f();o(e,r.current),r.current=e},t={passive:!0};return e(),window.addEventListener("scroll",e,t),()=>window.removeEventListener("scroll",e,t)},[o,n,...t])}function m(){let e,t,n,r=d(),o=(e=(0,a.useRef)({elem:null,top:0}),t=(0,a.useCallback)(t=>{e.current={elem:t,top:t.getBoundingClientRect().top}},[]),n=(0,a.useCallback)(()=>{let{current:{elem:t,top:n}}=e;if(!t)return{restored:!1};let r=t.getBoundingClientRect().top-n;return r&&window.scrollBy({left:0,top:r}),e.current={elem:null,top:0},{restored:0!==r}},[]),(0,a.useMemo)(()=>({save:t,restore:n}),[n,t])),i=(0,a.useRef)(void 0),s=(0,a.useCallback)(e=>{o.save(e),r.disableScrollEvents(),i.current=()=>{let{restored:e}=o.restore();if(i.current=void 0,e){let e=()=>{r.enableScrollEvents(),window.removeEventListener("scroll",e)};window.addEventListener("scroll",e)}else r.enableScrollEvents()}},[r,o]);return(0,l.A)(()=>{queueMicrotask(()=>i.current?.())}),{blockElementScrollPositionUntilNextRender:s}}function h(){let e=(0,a.useRef)(null),t=(0,i.A)()&&"smooth"===getComputedStyle(document.documentElement).scrollBehavior;return{startScroll:n=>{let r,a;e.current=t?(window.scrollTo({top:n,behavior:"smooth"}),()=>{}):(r=null,a=document.documentElement.scrollTop>n,!function e(){let t=document.documentElement.scrollTop;(a&&t>n||!a&&t<n)&&(r=requestAnimationFrame(e),window.scrollTo(0,Math.floor((t-n)*.85)+n))}(),()=>r&&cancelAnimationFrame(r))},cancelScroll:()=>e.current?.()}}},8184(e,t,n){"use strict";n.d(t,{Wf:()=>u,Dv:()=>c});var r=n(1763),a=JSON.parse('{"N":"localStorage","M":"-01c"}');let o=a.N;function i({key:e,oldValue:t,newValue:n,storage:r}){if(t===n)return;let a=document.createEvent("StorageEvent");a.initStorageEvent("storage",!1,!1,e,t,n,window.location.href,r),window.dispatchEvent(a)}let l=!1,s={get:()=>null,set:()=>{},del:()=>{},listen:()=>()=>{}};function u(e,t){let n=`${e}${a.M}`;if("u"<typeof window){function r(){throw Error(`Illegal storage API usage for storage key "${n}". +Docusaurus storage APIs are not supposed to be called on the server-rendering process. +Please only call storage APIs in effects and event handlers.`)}return{get:r,set:r,del:r,listen:r}}let u=function(e=o){if("u"<typeof window)throw Error("Browser storage is not available on Node.js/Docusaurus SSR process.");if("none"===e)return null;try{return window[e]}catch(e){var t;return t=e,l||(console.warn(`Docusaurus browser storage is not available. +Possible reasons: running Docusaurus in an iframe, in an incognito browser session, or using too strict browser privacy settings.`,t),l=!0),null}}(t?.persistence);return null===u?s:{get:()=>{try{return u.getItem(n)}catch(e){return console.error(`Docusaurus storage error, can't get key=${n}`,e),null}},set:e=>{try{let t=u.getItem(n);u.setItem(n,e),i({key:n,oldValue:t,newValue:e,storage:u})}catch(t){console.error(`Docusaurus storage error, can't set ${n}=${e}`,t)}},del:()=>{try{let e=u.getItem(n);u.removeItem(n),i({key:n,oldValue:e,newValue:null,storage:u})}catch(e){console.error(`Docusaurus storage error, can't delete key=${n}`,e)}},listen:e=>{try{let t=t=>{t.storageArea===u&&t.key===n&&e(t)};return window.addEventListener("storage",t),()=>window.removeEventListener("storage",t)}catch(e){return console.error(`Docusaurus storage error, can't listen for changes of key=${n}`,e),()=>{}}}}}function c(e,t){let[n]=(0,r.useState)(()=>null===e?s:u(e,t)),a=(0,r.useCallback)(e=>"u"<typeof window?()=>{}:n.listen(e),[n]);return[(0,r.useSyncExternalStore)(a,()=>n.get(),()=>null),n]}},6461(e,t,n){"use strict";n.d(t,{AL:()=>c,s$:()=>d});var r=n(1987),a=n(1763),o=n(5484),i=n(7581),l=n(7850);let s=({title:e,siteTitle:t,titleDelimiter:n})=>{let r=e?.trim();return r&&r!==t?`${r} ${n} ${t}`:t},u=(0,a.createContext)(null);function c({formatter:e,children:t}){return(0,r.jsx)(u.Provider,{value:e,children:t})}function d(){let e=function(){let e=(0,a.useContext)(u);if(null===e)throw new l.dV("TitleFormatterProvider");return e}(),{siteConfig:t}=(0,o.A)(),{title:n,titleDelimiter:r}=t,{plugin:c}=(0,i.A)();return{format:t=>e({title:t,siteTitle:n,titleDelimiter:r,plugin:c,defaultFormatter:s})}}},5941(e,t,n){"use strict";n.d(t,{o:()=>i});var r=n(5484),a=n(6532),o=n(2455);function i(){let{siteConfig:{baseUrl:e,trailingSlash:t},i18n:{localeConfigs:n}}=(0,r.A)(),{pathname:i}=(0,a.zy)(),l=(0,o.applyTrailingSlash)(i,{trailingSlash:t,baseUrl:e}).replace(e,"");return{createUrl:function({locale:e,fullyQualified:t}){let r=function(e){let t=n[e];if(!t)throw Error(`Unexpected Docusaurus bug, no locale config found for locale=${e}`);return t}(e),a=`${t?r.url:""}`,o=r.baseUrl;return`${a}${o}${l}`}}}},3740(e,t,n){"use strict";n.d(t,{$:()=>i});var r=n(1763),a=n(6532),o=n(7850);function i(e){let t=(0,a.zy)(),n=(0,o.ZC)(t),i=(0,o._q)(e);(0,r.useEffect)(()=>{n&&t!==n&&i({location:t,previousLocation:n})},[i,t,n])}},8168(e,t,n){"use strict";n.d(t,{p:()=>a});var r=n(5484);function a(){return(0,r.A)().siteConfig.themeConfig}},8742(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.addTrailingSlash=a,t.default=function(e,t){let{trailingSlash:n,baseUrl:r}=t;if(e.startsWith("#")||void 0===n)return e;let[i]=e.split(/[#?]/),l="/"===i||i===r?i:n?a(i):o(i);return e.replace(i,l)},t.addLeadingSlash=function(e){return(0,r.addPrefix)(e,"/")},t.removeTrailingSlash=o;let r=n(9817);function a(e){return e.endsWith("/")?e:`${e}/`}function o(e){return(0,r.removeSuffix)(e,"/")}},4972(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=function e(t){return t.cause?[t,...e(t.cause)]:[t]}},2455(e,t,n){"use strict";t.getErrorCausalChain=t.applyTrailingSlash=void 0;let r=n(5482);var a=n(8742);Object.defineProperty(t,"applyTrailingSlash",{enumerable:!0,get:function(){return r.__importDefault(a).default}}),n(9817);var o=n(4972);Object.defineProperty(t,"getErrorCausalChain",{enumerable:!0,get:function(){return o.getErrorCausalChain}})},9817(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.addPrefix=function(e,t){return e.startsWith(t)?e:`${t}${e}`},t.removeSuffix=function(e,t){return""===t?e:e.endsWith(t)?e.slice(0,-t.length):e},t.addSuffix=function(e,t){return e.endsWith(t)?e:`${e}${t}`},t.removePrefix=function(e,t){return e.startsWith(t)?e.slice(t.length):e}},4784(e,t,n){"use strict";n.r(t),n.d(t,{default:()=>r});let r={title:"Orbien",tagline:"\u8F7B\u91CF\u3001\u9AD8\u6027\u80FD\u3001\u5B89\u5168\u7684\u5185\u7F51\u7A7F\u900F\u5DE5\u5177",favicon:"img/favicon.ico",future:{v4:{removeLegacyPostBuildHeadAttribute:!0,useCssCascadeLayers:!0,siteStorageNamespacing:!0,fasterByDefault:!0,mdx1CompatDisabledByDefault:!0},experimental_vcs:{},experimental_router:"browser",faster:{swcJsLoader:!0,swcJsMinimizer:!0,swcHtmlMinimizer:!0,lightningCssMinimizer:!0,mdxCrossCompilerCache:!0,rspackBundler:!0,rspackPersistentCache:!0,ssgWorkerThreads:!0,gitEagerVcs:!0}},url:"https://orbien-org.github.io",baseUrl:"/orbien/en/",organizationName:"orbien-org",projectName:"orbien",deploymentBranch:"gh-pages",trailingSlash:!1,onBrokenLinks:"throw",markdown:{hooks:{onBrokenMarkdownLinks:"throw",onBrokenMarkdownImages:"throw"},format:"mdx",mermaid:!1,emoji:!0,mdx1Compat:{comments:!1,admonitions:!1,headingIds:!1},anchors:{maintainCase:!1}},i18n:{defaultLocale:"zh-Hans",locales:["zh-Hans","en"],localeConfigs:{"zh-Hans":{label:"\u4E2D\u6587",htmlLang:"zh-CN"},en:{label:"English",htmlLang:"en"}},path:"i18n"},presets:[["classic",{docs:{sidebarPath:"./sidebars.ts",editUrl:"https://github.com/orbien-org/orbien/tree/main/docs/"},blog:!1,theme:{customCss:"./src/css/custom.css"}}]],themeConfig:{image:"img/logo.png",colorMode:{defaultMode:"light",respectPrefersColorScheme:!0,disableSwitch:!1},navbar:{title:"Orbien",logo:{alt:"Orbien",src:"img/logo.png"},items:[{type:"docSidebar",sidebarId:"docsSidebar",position:"left",label:"Docs"},{type:"localeDropdown",position:"right",dropdownItemsBefore:[],dropdownItemsAfter:[]},{href:"https://github.com/orbien-org/orbien",label:"GitHub",position:"right"}],hideOnScroll:!1},footer:{style:"dark",copyright:"Copyright \xa9 2026 Orbien. Apache-2.0.",links:[]},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:["toml","bash","json"],magicComments:[{className:"theme-code-block-highlighted-line",line:"highlight-next-line",block:{start:"highlight-start",end:"highlight-end"}}]},docs:{versionPersistence:"localStorage",sidebar:{hideable:!1,autoCollapseCategories:!1}},blog:{sidebar:{groupByYear:!0}},metadata:[],tableOfContents:{minHeadingLevel:2,maxHeadingLevel:3}},baseUrlIssueBanner:!0,storage:{type:"localStorage",namespace:!0},onBrokenAnchors:"warn",onDuplicateRoutes:"warn",staticDirectories:["static"],customFields:{},plugins:[],themes:[],scripts:[],headTags:[],stylesheets:[],clientModules:[],titleDelimiter:"|",noIndex:!1}},5062(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)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(null,arguments)}n.d(t,{A:()=>r})},949(e,t,n){"use strict";function r(e,t){return(r=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e})(e,t)}function a(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,r(e,t)}n.d(t,{A:()=>a})},6905(e,t,n){"use strict";function r(e,t){if(null==e)return{};var n={};for(var r in e)if(({}).hasOwnProperty.call(e,r)){if(-1!==t.indexOf(r))continue;n[r]=e[r]}return n}n.d(t,{A:()=>r})},3526(e,t,n){"use strict";n.d(t,{A:()=>r});let r=function(){for(var e,t,n=0,r="",a=arguments.length;n<a;n++)(e=arguments[n])&&(t=function e(t){var n,r,a="";if("string"==typeof t||"number"==typeof t)a+=t;else if("object"==typeof t)if(Array.isArray(t)){var o=t.length;for(n=0;n<o;n++)t[n]&&(r=e(t[n]))&&(a&&(a+=" "),a+=r)}else for(r in t)t[r]&&(a&&(a+=" "),a+=r);return a}(e))&&(r&&(r+=" "),r+=t);return r}},7957(e,t,n){"use strict";let r,a,o,i,l;n.d(t,{My:()=>B,f4:()=>ey});var s,u,c,d,f,p,m,h,g,b,y,v,w,k,S,x,E,_,A=n(1763),T=n(3526),C=Object.create,P=Object.defineProperty,O=Object.defineProperties,L=Object.getOwnPropertyDescriptor,N=Object.getOwnPropertyDescriptors,j=Object.getOwnPropertyNames,R=Object.getOwnPropertySymbols,I=Object.getPrototypeOf,D=Object.prototype.hasOwnProperty,F=Object.prototype.propertyIsEnumerable,z=(e,t,n)=>t in e?P(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,M=(e,t)=>{for(var n in t||(t={}))D.call(t,n)&&z(e,n,t[n]);if(R)for(var n of R(t))F.call(t,n)&&z(e,n,t[n]);return e},$=(e,t)=>{var n={};for(var r in e)D.call(e,r)&&0>t.indexOf(r)&&(n[r]=e[r]);if(null!=e&&R)for(var r of R(e))0>t.indexOf(r)&&F.call(e,r)&&(n[r]=e[r]);return n},B=(l=null!=(o=(r={"../../node_modules/.pnpm/prismjs@1.29.0_patch_hash=vrxx3pzkik6jpmgpayxfjunetu/node_modules/prismjs/prism.js"(e,t){var n=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,"&").replace(/</g,"<").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(n[o=r.util.objId(t)])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":if(n[o=r.util.objId(t)])return n[o];return 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 s in n)n.hasOwnProperty(s)&&(i[s]=n[s]);n.hasOwnProperty(l)||(i[l]=o[l])}var u=a[e];return a[e]=i,r.languages.DFS(r.languages,function(t,n){n===u&&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 s=t[l],u=r.util.type(s);"Object"!==u||o[i(s)]?"Array"!==u||o[i(s)]||(o[i(s)]=!0,e(s,n,l,o)):(o[i(s)]=!0,e(s,n,null,o))}}},plugins:{},highlight:function(e,t,n){var o={code:e,grammar:t,language:n};if(r.hooks.run("before-tokenize",o),!o.grammar)throw Error('The language "'+o.language+'" has no grammar.');return 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 s in n)t[s]=n[s];delete t.rest}var u=new i;return l(u,u.head,e),function e(t,n,i,s,u,c){for(var d in i)if(i.hasOwnProperty(d)&&i[d]){var f=i[d];f=Array.isArray(f)?f:[f];for(var p=0;p<f.length;++p){if(c&&c.cause==d+","+p)return;var m=f[p],h=m.inside,g=!!m.lookbehind,b=!!m.greedy,y=m.alias;if(b&&!m.pattern.global){var v=m.pattern.toString().match(/[imsuy]*$/)[0];m.pattern=RegExp(m.pattern.source,v+"g")}for(var w=m.pattern||m,k=s.next,S=u;k!==n.tail&&(!c||!(S>=c.reach));S+=k.value.length,k=k.next){var x,E=k.value;if(n.length>t.length)return;if(!(E instanceof a)){var _=1;if(b){if(!(x=o(w,S,t,g))||x.index>=t.length)break;var A=x.index,T=x.index+x[0].length,C=S;for(C+=k.value.length;A>=C;)C+=(k=k.next).value.length;if(C-=k.value.length,S=C,k.value instanceof a)continue;for(var P=k;P!==n.tail&&(C<T||"string"==typeof P.value);P=P.next)_++,C+=P.value.length;_--,E=t.slice(S,C),x.index-=S}else if(!(x=o(w,0,E,g)))continue;var A=x.index,O=x[0],L=E.slice(0,A),N=E.slice(A+O.length),j=S+E.length;c&&j>c.reach&&(c.reach=j);var R=k.prev;if(L&&(R=l(n,R,L),S+=L.length),function(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}(n,R,_),k=l(n,R,new a(d,h?r.tokenize(O,h):O,y,O)),N&&l(n,k,N),_>1){var I={cause:d+","+p,reach:j};e(t,n,i,k.prev,S,I),c&&I.reach>c.reach&&(c.reach=I.reach)}}}}}}(e,u,t,u.head,0),function(e){for(var t=[],n=e.head.next;n!==e.tail;)t.push(n.value),n=n.next;return t}(u)},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(){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 l(e,t,n){var r=t.next,a={value:n,prev:t,next:r};return t.next=a,r.prev=a,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 s in o.attributes)l+=" "+s+'="'+(o.attributes[s]||"").replace(/"/g,""")+'"';return"<"+o.tag+' class="'+o.classes.join(" ")+'"'+l+">"+o.content+"</"+o.tag+">"},r}();t.exports=n,n.default=n}},function(){return a||(0,r[j(r)[0]])((a={exports:{}}).exports,a),a.exports})())?C(I(o)):{},((e,t,n,r)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let a of j(t))D.call(e,a)||a===n||P(e,a,{get:()=>t[a],enumerable:!(r=L(t,a))||r.enumerable});return e})(!i&&o&&o.__esModule?l:P(l,"default",{value:o,enumerable:!0}),o));B.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"},{pattern:/^(\s*)["']|["']$/,lookbehind:!0}]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},B.languages.markup.tag.inside["attr-value"].inside.entity=B.languages.markup.entity,B.languages.markup.doctype.inside["internal-subset"].inside=B.languages.markup,B.hooks.add("wrap",function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&/,"&"))}),Object.defineProperty(B.languages.markup.tag,"addInlined",{value:function(e,t){var n={},n=(n["language-"+t]={pattern:/(^<!\[CDATA\[)[\s\S]+?(?=\]\]>$)/i,lookbehind:!0,inside:B.languages[t]},n.cdata=/^<!\[CDATA\[|\]\]>$/i,{"included-cdata":{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,inside:n}}),t=(n["language-"+t]={pattern:/[\s\S]+/,inside:B.languages[t]},{});t[e]={pattern:RegExp(/(<__[^>]*>)(?:<!\[CDATA\[(?:[^\]]|\](?!\]>))*\]\]>|(?!<!\[CDATA\[)[\s\S])*?(?=<\/__>)/.source.replace(/__/g,function(){return e}),"i"),lookbehind:!0,greedy:!0,inside:n},B.languages.insertBefore("markup","cdata",t)}}),Object.defineProperty(B.languages.markup.tag,"addAttribute",{value:function(e,t){B.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:B.languages[t]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),B.languages.html=B.languages.markup,B.languages.mathml=B.languages.markup,B.languages.svg=B.languages.markup,B.languages.xml=B.languages.extend("markup",{}),B.languages.ssml=B.languages.xml,B.languages.atom=B.languages.xml,B.languages.rss=B.languages.xml,s={pattern:/\\[\\(){}[\]^$+*?|.]/,alias:"escape"},c=RegExp((c="(?:[^\\\\-]|"+(u=/\\(?:x[\da-fA-F]{2}|u[\da-fA-F]{4}|u\{[\da-fA-F]+\}|0[0-7]{0,2}|[123][0-7]{2}|c[a-zA-Z]|.)/).source+")")+"-"+c),d={pattern:/(<|')[^<>']+(?=[>']$)/,lookbehind:!0,alias:"variable"},B.languages.regex={"char-class":{pattern:/((?:^|[^\\])(?:\\\\)*)\[(?:[^\\\]]|\\[\s\S])*\]/,lookbehind:!0,inside:{"char-class-negation":{pattern:/(^\[)\^/,lookbehind:!0,alias:"operator"},"char-class-punctuation":{pattern:/^\[|\]$/,alias:"punctuation"},range:{pattern:c,inside:{escape:u,"range-punctuation":{pattern:/-/,alias:"operator"}}},"special-escape":s,"char-set":{pattern:/\\[wsd]|\\p\{[^{}]+\}/i,alias:"class-name"},escape:u}},"special-escape":s,"char-set":{pattern:/\.|\\[wsd]|\\p\{[^{}]+\}/i,alias:"class-name"},backreference:[{pattern:/\\(?![123][0-7]{2})[1-9]/,alias:"keyword"},{pattern:/\\k<[^<>']+>/,alias:"keyword",inside:{"group-name":d}}],anchor:{pattern:/[$^]|\\[ABbGZz]/,alias:"function"},escape:u,group:[{pattern:/\((?:\?(?:<[^<>']+>|'[^<>']+'|[>:]|<?[=!]|[idmnsuxU]+(?:-[idmnsuxU]+)?:?))?/,alias:"punctuation",inside:{"group-name":d}},{pattern:/\)/,alias:"punctuation"}],quantifier:{pattern:/(?:[+*?]|\{\d+(?:,\d*)?\})[?+]?/,alias:"number"},alternation:{pattern:/\|/,alias:"keyword"}},B.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:/[{}[\];(),.:]/},B.languages.javascript=B.languages.extend("clike",{"class-name":[B.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}|\?\?=?|\?\.?|[~:]/}),B.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,B.languages.insertBefore("javascript","keyword",{regex:{pattern:RegExp(/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)/.source+/\//.source+"(?:"+/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}/.source+"|"+/(?:\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.)*\])*\])*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}v[dgimyus]{0,7}/.source+")"+/(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/.source),lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:B.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:B.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:B.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:B.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:B.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),B.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:B.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"}}),B.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),B.languages.markup&&(B.languages.markup.tag.addInlined("script","javascript"),B.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")),B.languages.js=B.languages.javascript,B.languages.actionscript=B.languages.extend("javascript",{keyword:/\b(?:as|break|case|catch|class|const|default|delete|do|dynamic|each|else|extends|final|finally|for|function|get|if|implements|import|in|include|instanceof|interface|internal|is|namespace|native|new|null|override|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|use|var|void|while|with)\b/,operator:/\+\+|--|(?:[+\-*\/%^]|&&?|\|\|?|<<?|>>?>?|[!=]=?)=?|[~?@]/}),B.languages.actionscript["class-name"].alias="function",delete B.languages.actionscript.parameter,delete B.languages.actionscript["literal-property"],B.languages.markup&&B.languages.insertBefore("actionscript","string",{xml:{pattern:/(^|[^.])<\/?\w+(?:\s+[^\s>\/=]+=("|')(?:\\[\s\S]|(?!\2)[^\\])*\2)*\s*\/?>/,lookbehind:!0,inside:B.languages.markup}}),f=/#(?!\{).+/,p={pattern:/#\{[^}]+\}/,alias:"variable"},B.languages.coffeescript=B.languages.extend("javascript",{comment:f,string:[{pattern:/'(?:\\[\s\S]|[^\\'])*'/,greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,greedy:!0,inside:{interpolation:p}}],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"}}),B.languages.insertBefore("coffeescript","comment",{"multiline-comment":{pattern:/###[\s\S]+?###/,alias:"comment"},"block-regex":{pattern:/\/{3}[\s\S]*?\/{3}/,alias:"regex",inside:{comment:f,interpolation:p}}}),B.languages.insertBefore("coffeescript","string",{"inline-javascript":{pattern:/`(?:\\[\s\S]|[^\\`])*`/,inside:{delimiter:{pattern:/^`|`$/,alias:"punctuation"},script:{pattern:/[\s\S]+/,alias:"language-javascript",inside:B.languages.javascript}}},"multiline-string":[{pattern:/'''[\s\S]*?'''/,greedy:!0,alias:"string"},{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string",inside:{interpolation:p}}]}),B.languages.insertBefore("coffeescript","keyword",{property:/(?!\d)\w+(?=\s*:(?!:))/}),delete B.languages.coffeescript["template-string"],B.languages.coffee=B.languages.coffeescript,Object.defineProperty(m=B.languages.javadoclike={parameter:{pattern:/(^[\t ]*(?:\/{3}|\*|\/\*\*)\s*@(?:arg|arguments|param)\s+)\w+/m,lookbehind:!0},keyword:{pattern:/(^[\t ]*(?:\/{3}|\*|\/\*\*)\s*|\{)@[a-z][a-zA-Z-]+\b/m,lookbehind:!0},punctuation:/[{}]/},"addSupport",{value:function(e,t){(e="string"==typeof e?[e]:e).forEach(function(e){var n=function(e){e.inside||(e.inside={}),e.inside.rest=t},r="doc-comment";if(a=B.languages[e]){var a,o=a[r];if((o=o||(a=B.languages.insertBefore(e,"comment",{"doc-comment":{pattern:/(^|[^\\])\/\*\*[^/][\s\S]*?(?:\*\/|$)/,lookbehind:!0,alias:"comment"}}))[r])instanceof RegExp&&(o=a[r]={pattern:o}),Array.isArray(o))for(var i=0,l=o.length;i<l;i++)o[i]instanceof RegExp&&(o[i]={pattern:o[i]}),n(o[i]);else n(o)}})}}),m.addSupport(["java","javascript","php"],m),h=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/,B.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:RegExp("@[\\w-](?:"+/[^;{\s"']|\s+(?!\s)/.source+"|"+h.source+")*?"+/(?:;|(?=\s*\{))/.source),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\\((?:"+h.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+h.source+"$"),alias:"url"}}},selector:{pattern:RegExp("(^|[{}\\s])[^{}\\s](?:[^{};\"'\\s]|\\s+(?![\\s{])|"+h.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:h,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:/[(){};:,]/},B.languages.css.atrule.inside.rest=B.languages.css,(h=B.languages.markup)&&(h.tag.addInlined("style","css"),h.tag.addAttribute("style","css")),g=/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,B.languages.css.selector={pattern:B.languages.css.selector.pattern,lookbehind:!0,inside:g={"pseudo-element":/:(?:after|before|first-letter|first-line|selection)|::[-\w]+/,"pseudo-class":/:[-\w]+/,class:/\.[-\w]+/,id:/#[-\w]+/,attribute:{pattern:RegExp("\\[(?:[^[\\]\"']|"+g.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":[g,{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:/[(),]/}},B.languages.css.atrule.inside["selector-function-argument"].inside=g,B.languages.insertBefore("css","property",{variable:{pattern:/(^|[^-\w\xA0-\uFFFF])--(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*/i,lookbehind:!0}}),g={pattern:/(\b\d+)(?:%|[a-z]+(?![\w-]))/,lookbehind:!0},b={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0},B.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|RebeccaPurple|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:g,number:b,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:g,number:b}),function(e){var t=/[*&][^\s[\]{},]+/,n=/!(?:<[\w\-%#;/?:@&=+$,.!~*'()[\]]+>|(?:[a-zA-Z\d-]*!)?[\w\-%#;/?:@&=+$.~*'()]+)?/,r="(?:"+n.source+"(?:[ ]+"+t.source+")?|"+t.source+"(?:[ ]+"+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){return t=(t||"").replace(/m/g,"")+"m",RegExp(/([:\-,[{]\s*(?:\s<<prop>>[ \t]+)?)(?:<<value>>)(?=[ \t]*(?:$|,|\]|\}|(?:[\r\n]\s*)?#))/.source.replace(/<<prop>>/g,function(){return r}).replace(/<<value>>/g,function(){return e}),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}(B),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,i=(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,o=t[n];"code"!==o.type?e(o.content):(a=o.content[1],o=o.content[3],a&&o&&"code-language"===a.type&&"code-block"===o.type&&"string"==typeof a.content&&(a=a.content.replace(/\b#/g,"sharp").replace(/\b\+\+/g,"pp"),a="language-"+(a=(/[a-z][\w-]*/i.exec(a)||[""])[0].toLowerCase()),o.alias?"string"==typeof o.alias?o.alias=[o.alias,a]:o.alias.push(a):o.alias=[a]))}}(e.tokens)}),e.hooks.add("wrap",function(t){if("code-block"===t.type){for(var n,r="",a=0,o=t.classes.length;a<o;a++){var u=t.classes[a],u=/language-(.+)/.exec(u);if(u){r=u[1];break}}var c,d=e.languages[r];d?t.content=e.highlight(t.content.replace(i,"").replace(/&(\w{1,8}|#x?[\da-f]{1,8});/gi,function(e,t){return"#"===(t=t.toLowerCase())[0]?s("x"===t[1]?parseInt(t.slice(2),16):Number(t.slice(1))):l[t]||e}),d,r):r&&"none"!==r&&e.plugins.autoloader&&(c="md-"+new Date().valueOf()+"-"+Math.floor(1e16*Math.random()),t.attributes.id=c,e.plugins.autoloader.loadLanguages(r,function(){var t=document.getElementById(c);t&&(t.innerHTML=e.highlight(t.textContent,e.languages[r],r))}))}}),RegExp(e.languages.markup.tag.pattern.source,"gi")),l={amp:"&",lt:"<",gt:">",quot:'"'},s=String.fromCodePoint||String.fromCharCode;e.languages.md=e.languages.markdown}(B),B.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:B.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+/},B.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(c(["definition-mutation","punctuation"])&&"("===t[n+1].content){n+=2;var o=d(/^\($/,/^\)$/);if(-1===o)continue;for(;n<o;n++){var i=t[n+0];"variable"===i.type&&(f(i,"variable-input"),a.push(i.content))}n=o+1}if(c(["punctuation","property-query"])&&"{"===t[n+0].content&&(f(t[++n+0],"property-mutation"),0<a.length)){var l=d(/^\{$/,/^\}$/);if(-1!==l)for(var s=n;s<l;s++){var u=t[s];"variable"===u.type&&0<=a.indexOf(u.content)&&f(u,"variable-input")}}}}function c(e,r){r=r||0;for(var a=0;a<e.length;a++){var o=t[n+(a+r)];if(!o||o.type!==e[a])return}return 1}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 f(e,t){var n=e.alias;n?Array.isArray(n)||(e.alias=n=[n]):e.alias=n=[],n.push(t)}}),B.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(t,n,r){return t={code:t,grammar:n,language:r},e.hooks.run("before-tokenize",t),t.tokens=e.tokenize(t.code,t.grammar),e.hooks.run("after-tokenize",t),t.tokens}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 s={javascript:!0,js:!0,typescript:!0,ts:!0,jsx:!0,tsx:!0};e.hooks.add("after-tokenize",function(t){t.language in s&&function t(n){for(var i=0,s=n.length;i<s;i++){var u,c,d,f=n[i];"string"!=typeof f&&(Array.isArray(u=f.content)?"template-string"===f.type?(f=u[1],3===u.length&&"string"!=typeof f&&"embedded-code"===f.type&&(c=function e(t){return"string"==typeof t?t:Array.isArray(t)?t.map(e).join(""):e(t.content)}(f),f=Array.isArray(f=f.alias)?f[0]:f,d=e.languages[f])&&(u[1]=function(t,n,i){var s=e.tokenize(t,{interpolation:{pattern:RegExp(o),lookbehind:!0}}),u=0,c={},s=l(s.map(function(e){if("string"==typeof e)return e;for(var n,r,e=e.content;-1!==t.indexOf((r=u++,n="___"+i.toUpperCase()+"_"+r+"___")););return c[n]=e,n}).join(""),n,i),d=Object.keys(c);return u=0,function t(n){for(var o=0;o<n.length;o++){if(u>=d.length)return;var i,s,f,p,m,h,g,b=n[o];"string"==typeof b||"string"==typeof b.content?(i=d[u],-1!==(g=(h="string"==typeof b?b:b.content).indexOf(i))&&(++u,s=h.substring(0,g),m=c[i],f=void 0,(p={})["interpolation-punctuation"]=a,3===(p=e.tokenize(m,p)).length&&((f=[1,1]).push.apply(f,l(p[1],e.languages.javascript,"javascript")),p.splice.apply(p,f)),f=new e.Token("interpolation",p,r.alias,m),p=h.substring(g+i.length),m=[],s&&m.push(s),m.push(f),p&&(t(h=[p]),m.push.apply(m,h)),"string"==typeof b?(n.splice.apply(n,[o,1].concat(m)),o+=m.length-1):b.content=m)):Array.isArray(g=b.content)?t(g):t([g])}}(s),new e.Token(i,s,"language-"+i,t)}(c,d,f))):t(u):"string"!=typeof u&&t([u]))}}(t.tokens)})}(B),B.languages.typescript=B.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/}),B.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 B.languages.typescript.parameter,delete B.languages.typescript["literal-property"],y=B.languages.extend("typescript",{}),delete y["class-name"],B.languages.typescript["class-name"].inside=y,B.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:y}}}}),B.languages.ts=B.languages.typescript,v=B.languages.javascript,k="(@(?:arg|argument|param|property)\\s+(?:"+(w=/\{(?:[^{}]|\{(?:[^{}]|\{[^{}]*\})*\})+\}/.source)+"\\s+)?)",B.languages.jsdoc=B.languages.extend("javadoclike",{parameter:{pattern:RegExp(k+/(?:(?!\s)[$\w\xA0-\uFFFF.])+(?=\s|$)/.source),lookbehind:!0,inside:{punctuation:/\./}}}),B.languages.insertBefore("jsdoc","keyword",{"optional-parameter":{pattern:RegExp(k+/\[(?:(?!\s)[$\w\xA0-\uFFFF.])+(?:=[^[\]]+)?\](?=\s|$)/.source),lookbehind:!0,inside:{parameter:{pattern:/(^\[)[$\w\xA0-\uFFFF\.]+/,lookbehind:!0,inside:{punctuation:/\./}},code:{pattern:/(=)[\s\S]*(?=\]$)/,lookbehind:!0,inside:v,alias:"language-javascript"},punctuation:/[=[\]]/}},"class-name":[{pattern:RegExp(/(@(?:augments|class|extends|interface|memberof!?|template|this|typedef)\s+(?:<TYPE>\s+)?)[A-Z]\w*(?:\.[A-Z]\w*)*/.source.replace(/<TYPE>/g,function(){return w})),lookbehind:!0,inside:{punctuation:/\./}},{pattern:RegExp("(@[a-z]+\\s+)"+w),lookbehind:!0,inside:{string:v.string,number:v.number,boolean:v.boolean,keyword:B.languages.typescript.keyword,operator:/=>|\.\.\.|[&|?:*]/,punctuation:/[.,;=<>{}()[\]]/}}],example:{pattern:/(@example\s+(?!\s))(?:[^@\s]|\s+(?!\s))+?(?=\s*(?:\*\s*)?(?:@\w|\*\/))/,lookbehind:!0,inside:{code:{pattern:/^([\t ]*(?:\*\s*)?)\S.*$/m,lookbehind:!0,inside:v,alias:"language-javascript"}}}}),B.languages.javadoclike.addSupport("javascript",B.languages.jsdoc),B.languages.flow=B.languages.extend("javascript",{}),B.languages.insertBefore("flow","keyword",{type:[{pattern:/\b(?:[Bb]oolean|Function|[Nn]umber|[Ss]tring|[Ss]ymbol|any|mixed|null|void)\b/,alias:"class-name"}]}),B.languages.flow["function-variable"].pattern=/(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=\s*(?:function\b|(?:\([^()]*\)(?:\s*:\s*\w+)?|(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/i,delete B.languages.flow.parameter,B.languages.insertBefore("flow","operator",{"flow-punctuation":{pattern:/\{\||\|\}/,alias:"punctuation"}}),Array.isArray(B.languages.flow.keyword)||(B.languages.flow.keyword=[B.languages.flow.keyword]),B.languages.flow.keyword.unshift({pattern:/(^|[^$]\b)(?:Class|declare|opaque|type)\b(?!\$)/,lookbehind:!0},{pattern:/(^|[^$]\B)\$(?:Diff|Enum|Exact|Keys|ObjMap|PropertyType|Record|Shape|Subtype|Supertype|await)\b(?!\$)/,lookbehind:!0}),B.languages.n4js=B.languages.extend("javascript",{keyword:/\b(?:Array|any|boolean|break|case|catch|class|const|constructor|continue|debugger|declare|default|delete|do|else|enum|export|extends|false|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|module|new|null|number|package|private|protected|public|return|set|static|string|super|switch|this|throw|true|try|typeof|var|void|while|with|yield)\b/}),B.languages.insertBefore("n4js","constant",{annotation:{pattern:/@+\w+/,alias:"operator"}}),B.languages.n4jsd=B.languages.n4js,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],a=(o="RegExp"===e.util.type(o)?e.languages.javascript[a]={pattern:o}:o).inside||{};(o.inside=a)["maybe-class-name"]=/^[A-Z][\s\S]*/}}(B),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 RegExp(e=e.replace(/<S>/g,function(){return n}).replace(/<BRACES>/g,function(){return r}).replace(/<SPREAD>/g,function(){return a}),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(""):""};e.hooks.add("after-tokenize",function(t){"jsx"!==t.language&&"tsx"!==t.language||function t(n){for(var r=[],a=0;a<n.length;a++){var o=n[a],l=!1;"string"!=typeof o&&("tag"===o.type&&o.content[0]&&"tag"===o.content[0].type?"</"===o.content[0].content[0].content?0<r.length&&r[r.length-1].tagName===i(o.content[0].content[1])&&r.pop():"/>"!==o.content[o.content.length-1].content&&r.push({tagName:i(o.content[0].content[1]),openedBraces:0}):0<r.length&&"punctuation"===o.type&&"{"===o.content?r[r.length-1].openedBraces++:0<r.length&&0<r[r.length-1].openedBraces&&"punctuation"===o.type&&"}"===o.content?r[r.length-1].openedBraces--:l=!0),(l||"string"==typeof o)&&0<r.length&&0===r[r.length-1].openedBraces&&(l=i(o),a<n.length-1&&("string"==typeof n[a+1]||"plain-text"===n[a+1].type)&&(l+=i(n[a+1]),n.splice(a+1,1)),0<a&&("string"==typeof n[a-1]||"plain-text"===n[a-1].type)&&(l=i(n[a-1])+l,n.splice(a-1,1),a--),n[a]=new e.Token("plain-text",l,null,l)),o.content&&"string"!=typeof o.content&&t(o.content)}}(t.tokens)})}(B),S=B.util.clone(B.languages.typescript),(B.languages.tsx=B.languages.extend("jsx",S),delete B.languages.tsx.parameter,delete B.languages.tsx["literal-property"],S=B.languages.tsx.tag).pattern=RegExp(/(^|[^\w$]|(?=<\/))/.source+"(?:"+S.pattern.source+")",S.pattern.flags),S.lookbehind=!0,B.languages.swift={comment:{pattern:/(^|[^\\:])(?:\/\/.*|\/\*(?:[^/*]|\/(?!\*)|\*(?!\/)|\/\*(?:[^*]|\*(?!\/))*\*\/)*\*\/)/,lookbehind:!0,greedy:!0},"string-literal":[{pattern:RegExp(/(^|[^"#])/.source+"(?:"+/"(?:\\(?:\((?:[^()]|\([^()]*\))*\)|\r\n|[^(])|[^\\\r\n"])*"/.source+"|"+/"""(?:\\(?:\((?:[^()]|\([^()]*\))*\)|[^(])|[^\\"]|"(?!""))*"""/.source+")"+/(?!["#])/.source),lookbehind:!0,greedy:!0,inside:{interpolation:{pattern:/(\\\()(?:[^()]|\([^()]*\))*(?=\))/,lookbehind:!0,inside:null},"interpolation-punctuation":{pattern:/^\)|\\\($/,alias:"punctuation"},punctuation:/\\(?=[\r\n])/,string:/[\s\S]+/}},{pattern:RegExp(/(^|[^"#])(#+)/.source+"(?:"+/"(?:\\(?:#+\((?:[^()]|\([^()]*\))*\)|\r\n|[^#])|[^\\\r\n])*?"/.source+"|"+/"""(?:\\(?:#+\((?:[^()]|\([^()]*\))*\)|[^#])|[^\\])*?"""/.source+")\\2"),lookbehind:!0,greedy:!0,inside:{interpolation:{pattern:/(\\#+\()(?:[^()]|\([^()]*\))*(?=\))/,lookbehind:!0,inside:null},"interpolation-punctuation":{pattern:/^\)|\\#+\($/,alias:"punctuation"},string:/[\s\S]+/}}],directive:{pattern:RegExp(/#/.source+"(?:"+/(?:elseif|if)\b/.source+"(?:[ ]*"+/(?:![ \t]*)?(?:\b\w+\b(?:[ \t]*\((?:[^()]|\([^()]*\))*\))?|\((?:[^()]|\([^()]*\))*\))(?:[ \t]*(?:&&|\|\|))?/.source+")+|"+/(?:else|endif)\b/.source+")"),alias:"property",inside:{"directive-name":/^#\w+/,boolean:/\b(?:false|true)\b/,number:/\b\d+(?:\.\d+)*\b/,operator:/!|&&|\|\||[<>]=?/,punctuation:/[(),]/}},literal:{pattern:/#(?:colorLiteral|column|dsohandle|file(?:ID|Literal|Path)?|function|imageLiteral|line)\b/,alias:"constant"},"other-directive":{pattern:/#\w+\b/,alias:"property"},attribute:{pattern:/@\w+/,alias:"atrule"},"function-definition":{pattern:/(\bfunc\s+)\w+/,lookbehind:!0,alias:"function"},label:{pattern:/\b(break|continue)\s+\w+|\b[a-zA-Z_]\w*(?=\s*:\s*(?:for|repeat|while)\b)/,lookbehind:!0,alias:"important"},keyword:/\b(?:Any|Protocol|Self|Type|actor|as|assignment|associatedtype|associativity|async|await|break|case|catch|class|continue|convenience|default|defer|deinit|didSet|do|dynamic|else|enum|extension|fallthrough|fileprivate|final|for|func|get|guard|higherThan|if|import|in|indirect|infix|init|inout|internal|is|isolated|lazy|left|let|lowerThan|mutating|none|nonisolated|nonmutating|open|operator|optional|override|postfix|precedencegroup|prefix|private|protocol|public|repeat|required|rethrows|return|right|safe|self|set|some|static|struct|subscript|super|switch|throw|throws|try|typealias|unowned|unsafe|var|weak|where|while|willSet)\b/,boolean:/\b(?:false|true)\b/,nil:{pattern:/\bnil\b/,alias:"constant"},"short-argument":/\$\d+\b/,omit:{pattern:/\b_\b/,alias:"keyword"},number:/\b(?:[\d_]+(?:\.[\de_]+)?|0x[a-f0-9_]+(?:\.[a-f0-9p_]+)?|0b[01_]+|0o[0-7_]+)\b/i,"class-name":/\b[A-Z](?:[A-Z_\d]*[a-z]\w*)?\b/,function:/\b[a-z_]\w*(?=\s*\()/i,constant:/\b(?:[A-Z_]{2,}|k[A-Z][A-Za-z_]+)\b/,operator:/[-+*/%=!<>&|^~?]+|\.[.\-+*/%=!<>&|^~?]+/,punctuation:/[{}[\]();,.:\\]/},B.languages.swift["string-literal"].forEach(function(e){e.inside.interpolation.inside=B.languages.swift}),B.languages.kotlin=B.languages.extend("clike",{keyword:{pattern:/(^|[^.])\b(?:abstract|actual|annotation|as|break|by|catch|class|companion|const|constructor|continue|crossinline|data|do|dynamic|else|enum|expect|external|final|finally|for|fun|get|if|import|in|infix|init|inline|inner|interface|internal|is|lateinit|noinline|null|object|open|operator|out|override|package|private|protected|public|reified|return|sealed|set|super|suspend|tailrec|this|throw|to|try|typealias|val|var|vararg|when|where|while)\b/,lookbehind:!0},function:[{pattern:/(?:`[^\r\n`]+`|\b\w+)(?=\s*\()/,greedy:!0},{pattern:/(\.)(?:`[^\r\n`]+`|\w+)(?=\s*\{)/,lookbehind:!0,greedy:!0}],number:/\b(?:0[xX][\da-fA-F]+(?:_[\da-fA-F]+)*|0[bB][01]+(?:_[01]+)*|\d+(?:_\d+)*(?:\.\d+(?:_\d+)*)?(?:[eE][+-]?\d+(?:_\d+)*)?[fFL]?)\b/,operator:/\+[+=]?|-[-=>]?|==?=?|!(?:!|==?)?|[\/*%<>]=?|[?:]:?|\.\.|&&|\|\||\b(?:and|inv|or|shl|shr|ushr|xor)\b/}),delete B.languages.kotlin["class-name"],x={"interpolation-punctuation":{pattern:/^\$\{?|\}$/,alias:"punctuation"},expression:{pattern:/[\s\S]+/,inside:B.languages.kotlin}},B.languages.insertBefore("kotlin","string",{"string-literal":[{pattern:/"""(?:[^$]|\$(?:(?!\{)|\{[^{}]*\}))*?"""/,alias:"multiline",inside:{interpolation:{pattern:/\$(?:[a-z_]\w*|\{[^{}]*\})/i,inside:x},string:/[\s\S]+/}},{pattern:/"(?:[^"\\\r\n$]|\\.|\$(?:(?!\{)|\{[^{}]*\}))*"/,alias:"singleline",inside:{interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$(?:[a-z_]\w*|\{[^{}]*\})/i,lookbehind:!0,inside:x},string:/[\s\S]+/}}],char:{pattern:/'(?:[^'\\\r\n]|\\(?:.|u[a-fA-F0-9]{0,4}))'/,greedy:!0}}),delete B.languages.kotlin.string,B.languages.insertBefore("kotlin","keyword",{annotation:{pattern:/\B@(?:\w+:)?(?:[A-Z]\w*|\[[^\]]+\])/,alias:"builtin"}}),B.languages.insertBefore("kotlin","function",{label:{pattern:/\b\w+@|@\w+\b/,alias:"symbol"}}),B.languages.kt=B.languages.kotlin,B.languages.kts=B.languages.kotlin,B.languages.c=B.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|[?:~]|[-+*/%&|^!=<>]=?/}),B.languages.insertBefore("c","string",{char:{pattern:/'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n]){0,32}'/,greedy:!0}}),B.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},B.languages.c.string],char:B.languages.c.char,comment:B.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:B.languages.c}}}}),B.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 B.languages.c.boolean,B.languages.objectivec=B.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 B.languages.objectivec["class-name"],B.languages.objc=B.languages.objectivec,B.languages.reason=B.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/}),B.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 B.languages.reason.function,function(e){for(var t=/\/\*(?:[^*/]|\*(?!\/)|\/(?!\*)|<self>)*\*\//.source,n=0;n<2;n++)t=t.replace(/<self>/g,function(){return t});t=t.replace(/<self>/g,function(){return/[^\s\S]/.source}),e.languages.rust={comment:[{pattern:RegExp(/(^|[^\\])/.source+t),lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/b?"(?:\\[\s\S]|[^\\"])*"|b?r(#*)"(?:[^"]|"(?!\1))*"\1/,greedy:!0},char:{pattern:/b?'(?:\\(?:x[0-7][\da-fA-F]|u\{(?:[\da-fA-F]_*){1,6}\}|.)|[^\\\r\n\t'])'/,greedy:!0},attribute:{pattern:/#!?\[(?:[^\[\]"]|"(?:\\[\s\S]|[^\\"])*")*\]/,greedy:!0,alias:"attr-name",inside:{string:null}},"closure-params":{pattern:/([=(,:]\s*|\bmove\s*)\|[^|]*\||\|[^|]*\|(?=\s*(?:\{|->))/,lookbehind:!0,greedy:!0,inside:{"closure-punctuation":{pattern:/^\||\|$/,alias:"punctuation"},rest:null}},"lifetime-annotation":{pattern:/'\w+/,alias:"symbol"},"fragment-specifier":{pattern:/(\$\w+:)[a-z]+/,lookbehind:!0,alias:"punctuation"},variable:/\$\w+/,"function-definition":{pattern:/(\bfn\s+)\w+/,lookbehind:!0,alias:"function"},"type-definition":{pattern:/(\b(?:enum|struct|trait|type|union)\s+)\w+/,lookbehind:!0,alias:"class-name"},"module-declaration":[{pattern:/(\b(?:crate|mod)\s+)[a-z][a-z_\d]*/,lookbehind:!0,alias:"namespace"},{pattern:/(\b(?:crate|self|super)\s*)::\s*[a-z][a-z_\d]*\b(?:\s*::(?:\s*[a-z][a-z_\d]*\s*::)*)?/,lookbehind:!0,alias:"namespace",inside:{punctuation:/::/}}],keyword:[/\b(?:Self|abstract|as|async|await|become|box|break|const|continue|crate|do|dyn|else|enum|extern|final|fn|for|if|impl|in|let|loop|macro|match|mod|move|mut|override|priv|pub|ref|return|self|static|struct|super|trait|try|type|typeof|union|unsafe|unsized|use|virtual|where|while|yield)\b/,/\b(?:bool|char|f(?:32|64)|[ui](?:8|16|32|64|128|size)|str)\b/],function:/\b[a-z_]\w*(?=\s*(?:::\s*<|\())/,macro:{pattern:/\b\w+!/,alias:"property"},constant:/\b[A-Z_][A-Z_\d]+\b/,"class-name":/\b[A-Z]\w*\b/,namespace:{pattern:/(?:\b[a-z][a-z_\d]*\s*::\s*)*\b[a-z][a-z_\d]*\s*::(?!\s*<)/,inside:{punctuation:/::/}},number:/\b(?:0x[\dA-Fa-f](?:_?[\dA-Fa-f])*|0o[0-7](?:_?[0-7])*|0b[01](?:_?[01])*|(?:(?:\d(?:_?\d)*)?\.)?\d(?:_?\d)*(?:[Ee][+-]?\d+)?)(?:_?(?:f32|f64|[iu](?:8|16|32|64|size)?))?\b/,boolean:/\b(?:false|true)\b/,punctuation:/->|\.\.=|\.{1,3}|::|[{}[\];(),:]/,operator:/[-+*\/%!^]=?|=[=>]?|&[&=]?|\|[|=]?|<<?=?|>>?=?|[@?]/},e.languages.rust["closure-params"].inside.rest=e.languages.rust,e.languages.rust.attribute.inside.string=e.languages.rust.string}(B),B.languages.go=B.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/}),B.languages.insertBefore("go","string",{char:{pattern:/'(?:\\.|[^'\\\r\n]){0,10}'/,greedy:!0}}),delete B.languages.go["class-name"],E=/\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/,_=/\b(?!<keyword>)\w+(?:\s*\.\s*\w+)*\b/.source.replace(/<keyword>/g,function(){return E.source}),B.languages.cpp=B.languages.extend("c",{"class-name":[{pattern:RegExp(/(\b(?:class|concept|enum|struct|typename)\s+)(?!<keyword>)\w+/.source.replace(/<keyword>/g,function(){return E.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:E,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/}),B.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 _})+")"),lookbehind:!0,greedy:!0,inside:{string:/^[<"][\s\S]+/,operator:/:/,punctuation:/\./}},"raw-string":{pattern:/R"([^()\\ ]{0,16})\([\s\S]*?\)\1"/,alias:"string",greedy:!0}}),B.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:B.languages.cpp}}}}),B.languages.insertBefore("cpp","operator",{"double-colon":{pattern:/::/,alias:"punctuation"}}),B.languages.insertBefore("cpp","class-name",{"base-clause":{pattern:/(\b(?:class|struct)\s+\w+\s*:\s*)[^;{}"'\s]+(?:\s+[^;{}"'\s]+)*(?=\s*[;{])/,lookbehind:!0,greedy:!0,inside:B.languages.extend("cpp",{})}}),B.languages.insertBefore("inside","double-colon",{"class-name":/\b[a-z_]\w*\b(?!\s*::)/i},B.languages.cpp["base-clause"]),B.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:/[{}[\];(),.:]/},B.languages.python["string-interpolation"].inside.interpolation.inside.rest=B.languages.python,B.languages.py=B.languages.python,B.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"}},B.languages.webmanifest=B.languages.json;var U={},H={dracula:()=>W,duotoneDark:()=>q,duotoneLight:()=>G,github:()=>Y,gruvboxMaterialDark:()=>ed,gruvboxMaterialLight:()=>ef,jettwaveDark:()=>el,jettwaveLight:()=>es,nightOwl:()=>K,nightOwlLight:()=>Q,oceanicNext:()=>J,okaidia:()=>ee,oneDark:()=>eu,oneLight:()=>ec,palenight:()=>et,shadesOfPurple:()=>en,synthwave84:()=>er,ultramin:()=>ea,vsDark:()=>eo,vsLight:()=>ei};for(var V in H)P(U,V,{get:H[V],enumerable:!0});var W={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)"}}]},q={plain:{backgroundColor:"#2a2734",color:"#9a86fd"},styles:[{types:["comment","prolog","doctype","cdata","punctuation"],style:{color:"#6c6783"}},{types:["namespace"],style:{opacity:.7}},{types:["tag","operator","number"],style:{color:"#e09142"}},{types:["property","function"],style:{color:"#9a86fd"}},{types:["tag-id","selector","atrule-id"],style:{color:"#eeebff"}},{types:["attr-name"],style:{color:"#c4b9fe"}},{types:["boolean","string","entity","url","attr-value","keyword","control","directive","unit","statement","regex","atrule","placeholder","variable"],style:{color:"#ffcc99"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"#c4b9fe"}}]},G={plain:{backgroundColor:"#faf8f5",color:"#728fcb"},styles:[{types:["comment","prolog","doctype","cdata","punctuation"],style:{color:"#b6ad9a"}},{types:["namespace"],style:{opacity:.7}},{types:["tag","operator","number"],style:{color:"#063289"}},{types:["property","function"],style:{color:"#b29762"}},{types:["tag-id","selector","atrule-id"],style:{color:"#2d2006"}},{types:["attr-name"],style:{color:"#896724"}},{types:["boolean","string","entity","url","attr-value","keyword","control","directive","unit","statement","regex","atrule"],style:{color:"#728fcb"}},{types:["placeholder","variable"],style:{color:"#93abdc"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"#896724"}}]},Y={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"}}]},K={plain:{color:"#d6deeb",backgroundColor:"#011627"},styles:[{types:["changed"],style:{color:"rgb(162, 191, 252)",fontStyle:"italic"}},{types:["deleted"],style:{color:"rgba(239, 83, 80, 0.56)",fontStyle:"italic"}},{types:["inserted","attr-name"],style:{color:"rgb(173, 219, 103)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(99, 119, 119)",fontStyle:"italic"}},{types:["string","url"],style:{color:"rgb(173, 219, 103)"}},{types:["variable"],style:{color:"rgb(214, 222, 235)"}},{types:["number"],style:{color:"rgb(247, 140, 108)"}},{types:["builtin","char","constant","function"],style:{color:"rgb(130, 170, 255)"}},{types:["punctuation"],style:{color:"rgb(199, 146, 234)"}},{types:["selector","doctype"],style:{color:"rgb(199, 146, 234)",fontStyle:"italic"}},{types:["class-name"],style:{color:"rgb(255, 203, 139)"}},{types:["tag","operator","keyword"],style:{color:"rgb(127, 219, 202)"}},{types:["boolean"],style:{color:"rgb(255, 88, 116)"}},{types:["property"],style:{color:"rgb(128, 203, 196)"}},{types:["namespace"],style:{color:"rgb(178, 204, 214)"}}]},Q={plain:{color:"#403f53",backgroundColor:"#FBFBFB"},styles:[{types:["changed"],style:{color:"rgb(162, 191, 252)",fontStyle:"italic"}},{types:["deleted"],style:{color:"rgba(239, 83, 80, 0.56)",fontStyle:"italic"}},{types:["inserted","attr-name"],style:{color:"rgb(72, 118, 214)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(152, 159, 177)",fontStyle:"italic"}},{types:["string","builtin","char","constant","url"],style:{color:"rgb(72, 118, 214)"}},{types:["variable"],style:{color:"rgb(201, 103, 101)"}},{types:["number"],style:{color:"rgb(170, 9, 130)"}},{types:["punctuation"],style:{color:"rgb(153, 76, 195)"}},{types:["function","selector","doctype"],style:{color:"rgb(153, 76, 195)",fontStyle:"italic"}},{types:["class-name"],style:{color:"rgb(17, 17, 17)"}},{types:["tag"],style:{color:"rgb(153, 76, 195)"}},{types:["operator","property","keyword","namespace"],style:{color:"rgb(12, 150, 155)"}},{types:["boolean"],style:{color:"rgb(188, 84, 84)"}}]},Z="#c5a5c5",X="#8dc891",J={plain:{backgroundColor:"#282c34",color:"#ffffff"},styles:[{types:["attr-name"],style:{color:Z}},{types:["attr-value"],style:{color:X}},{types:["comment","block-comment","prolog","doctype","cdata","shebang"],style:{color:"#999999"}},{types:["property","number","function-name","constant","symbol","deleted"],style:{color:"#5a9bcf"}},{types:["boolean"],style:{color:"#ff8b50"}},{types:["tag"],style:{color:"#fc929e"}},{types:["string"],style:{color:X}},{types:["punctuation"],style:{color:X}},{types:["selector","char","builtin","inserted"],style:{color:"#D8DEE9"}},{types:["function"],style:{color:"#79b6f2"}},{types:["operator","entity","url","variable"],style:{color:"#d7deea"}},{types:["keyword"],style:{color:Z}},{types:["atrule","class-name"],style:{color:"#FAC863"}},{types:["important"],style:{fontWeight:"400"}},{types:["bold"],style:{fontWeight:"bold"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["namespace"],style:{opacity:.7}}]},ee={plain:{color:"#f8f8f2",backgroundColor:"#272822"},styles:[{types:["changed"],style:{color:"rgb(162, 191, 252)",fontStyle:"italic"}},{types:["deleted"],style:{color:"#f92672",fontStyle:"italic"}},{types:["inserted"],style:{color:"rgb(173, 219, 103)",fontStyle:"italic"}},{types:["comment"],style:{color:"#8292a2",fontStyle:"italic"}},{types:["string","url"],style:{color:"#a6e22e"}},{types:["variable"],style:{color:"#f8f8f2"}},{types:["number"],style:{color:"#ae81ff"}},{types:["builtin","char","constant","function","class-name"],style:{color:"#e6db74"}},{types:["punctuation"],style:{color:"#f8f8f2"}},{types:["selector","doctype"],style:{color:"#a6e22e",fontStyle:"italic"}},{types:["tag","operator","keyword"],style:{color:"#66d9ef"}},{types:["boolean"],style:{color:"#ae81ff"}},{types:["namespace"],style:{color:"rgb(178, 204, 214)",opacity:.7}},{types:["tag","property"],style:{color:"#f92672"}},{types:["attr-name"],style:{color:"#a6e22e !important"}},{types:["doctype"],style:{color:"#8292a2"}},{types:["rule"],style:{color:"#e6db74"}}]},et={plain:{color:"#bfc7d5",backgroundColor:"#292d3e"},styles:[{types:["comment"],style:{color:"rgb(105, 112, 152)",fontStyle:"italic"}},{types:["string","inserted"],style:{color:"rgb(195, 232, 141)"}},{types:["number"],style:{color:"rgb(247, 140, 108)"}},{types:["builtin","char","constant","function"],style:{color:"rgb(130, 170, 255)"}},{types:["punctuation","selector"],style:{color:"rgb(199, 146, 234)"}},{types:["variable"],style:{color:"rgb(191, 199, 213)"}},{types:["class-name","attr-name"],style:{color:"rgb(255, 203, 107)"}},{types:["tag","deleted"],style:{color:"rgb(255, 85, 114)"}},{types:["operator"],style:{color:"rgb(137, 221, 255)"}},{types:["boolean"],style:{color:"rgb(255, 88, 116)"}},{types:["keyword"],style:{fontStyle:"italic"}},{types:["doctype"],style:{color:"rgb(199, 146, 234)",fontStyle:"italic"}},{types:["namespace"],style:{color:"rgb(178, 204, 214)"}},{types:["url"],style:{color:"rgb(221, 221, 221)"}}]},en={plain:{color:"#9EFEFF",backgroundColor:"#2D2A55"},styles:[{types:["changed"],style:{color:"rgb(255, 238, 128)"}},{types:["deleted"],style:{color:"rgba(239, 83, 80, 0.56)"}},{types:["inserted"],style:{color:"rgb(173, 219, 103)"}},{types:["comment"],style:{color:"rgb(179, 98, 255)",fontStyle:"italic"}},{types:["punctuation"],style:{color:"rgb(255, 255, 255)"}},{types:["constant"],style:{color:"rgb(255, 98, 140)"}},{types:["string","url"],style:{color:"rgb(165, 255, 144)"}},{types:["variable"],style:{color:"rgb(255, 238, 128)"}},{types:["number","boolean"],style:{color:"rgb(255, 98, 140)"}},{types:["attr-name"],style:{color:"rgb(255, 180, 84)"}},{types:["keyword","operator","property","namespace","tag","selector","doctype"],style:{color:"rgb(255, 157, 0)"}},{types:["builtin","char","constant","function","class-name"],style:{color:"rgb(250, 208, 0)"}}]},er={plain:{backgroundColor:"linear-gradient(to bottom, #2a2139 75%, #34294f)",backgroundImage:"#34294f",color:"#f92aad",textShadow:"0 0 2px #100c0f, 0 0 5px #dc078e33, 0 0 10px #fff3"},styles:[{types:["comment","block-comment","prolog","doctype","cdata"],style:{color:"#495495",fontStyle:"italic"}},{types:["punctuation"],style:{color:"#ccc"}},{types:["tag","attr-name","namespace","number","unit","hexcode","deleted"],style:{color:"#e2777a"}},{types:["property","selector"],style:{color:"#72f1b8",textShadow:"0 0 2px #100c0f, 0 0 10px #257c5575, 0 0 35px #21272475"}},{types:["function-name"],style:{color:"#6196cc"}},{types:["boolean","selector-id","function"],style:{color:"#fdfdfd",textShadow:"0 0 2px #001716, 0 0 3px #03edf975, 0 0 5px #03edf975, 0 0 8px #03edf975"}},{types:["class-name","maybe-class-name","builtin"],style:{color:"#fff5f6",textShadow:"0 0 2px #000, 0 0 10px #fc1f2c75, 0 0 5px #fc1f2c75, 0 0 25px #fc1f2c75"}},{types:["constant","symbol"],style:{color:"#f92aad",textShadow:"0 0 2px #100c0f, 0 0 5px #dc078e33, 0 0 10px #fff3"}},{types:["important","atrule","keyword","selector-class"],style:{color:"#f4eee4",textShadow:"0 0 2px #393a33, 0 0 8px #f39f0575, 0 0 2px #f39f0575"}},{types:["string","char","attr-value","regex","variable"],style:{color:"#f87c32"}},{types:["parameter"],style:{fontStyle:"italic"}},{types:["entity","url"],style:{color:"#67cdcc"}},{types:["operator"],style:{color:"ffffffee"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["entity"],style:{cursor:"help"}},{types:["inserted"],style:{color:"green"}}]},ea={plain:{color:"#282a2e",backgroundColor:"#ffffff"},styles:[{types:["comment"],style:{color:"rgb(197, 200, 198)"}},{types:["string","number","builtin","variable"],style:{color:"rgb(150, 152, 150)"}},{types:["class-name","function","tag","attr-name"],style:{color:"rgb(40, 42, 46)"}}]},eo={plain:{color:"#9CDCFE",backgroundColor:"#1E1E1E"},styles:[{types:["prolog"],style:{color:"rgb(0, 0, 128)"}},{types:["comment"],style:{color:"rgb(106, 153, 85)"}},{types:["builtin","changed","keyword","interpolation-punctuation"],style:{color:"rgb(86, 156, 214)"}},{types:["number","inserted"],style:{color:"rgb(181, 206, 168)"}},{types:["constant"],style:{color:"rgb(100, 102, 149)"}},{types:["attr-name","variable"],style:{color:"rgb(156, 220, 254)"}},{types:["deleted","string","attr-value","template-punctuation"],style:{color:"rgb(206, 145, 120)"}},{types:["selector"],style:{color:"rgb(215, 186, 125)"}},{types:["tag"],style:{color:"rgb(78, 201, 176)"}},{types:["tag"],languages:["markup"],style:{color:"rgb(86, 156, 214)"}},{types:["punctuation","operator"],style:{color:"rgb(212, 212, 212)"}},{types:["punctuation"],languages:["markup"],style:{color:"#808080"}},{types:["function"],style:{color:"rgb(220, 220, 170)"}},{types:["class-name"],style:{color:"rgb(78, 201, 176)"}},{types:["char"],style:{color:"rgb(209, 105, 105)"}}]},ei={plain:{color:"#000000",backgroundColor:"#ffffff"},styles:[{types:["comment"],style:{color:"rgb(0, 128, 0)"}},{types:["builtin"],style:{color:"rgb(0, 112, 193)"}},{types:["number","variable","inserted"],style:{color:"rgb(9, 134, 88)"}},{types:["operator"],style:{color:"rgb(0, 0, 0)"}},{types:["constant","char"],style:{color:"rgb(129, 31, 63)"}},{types:["tag"],style:{color:"rgb(128, 0, 0)"}},{types:["attr-name"],style:{color:"rgb(255, 0, 0)"}},{types:["deleted","string"],style:{color:"rgb(163, 21, 21)"}},{types:["changed","punctuation"],style:{color:"rgb(4, 81, 165)"}},{types:["function","keyword"],style:{color:"rgb(0, 0, 255)"}},{types:["class-name"],style:{color:"rgb(38, 127, 153)"}}]},el={plain:{color:"#f8fafc",backgroundColor:"#011627"},styles:[{types:["prolog"],style:{color:"#000080"}},{types:["comment"],style:{color:"#6A9955"}},{types:["builtin","changed","keyword","interpolation-punctuation"],style:{color:"#569CD6"}},{types:["number","inserted"],style:{color:"#B5CEA8"}},{types:["constant"],style:{color:"#f8fafc"}},{types:["attr-name","variable"],style:{color:"#9CDCFE"}},{types:["deleted","string","attr-value","template-punctuation"],style:{color:"#cbd5e1"}},{types:["selector"],style:{color:"#D7BA7D"}},{types:["tag"],style:{color:"#0ea5e9"}},{types:["tag"],languages:["markup"],style:{color:"#0ea5e9"}},{types:["punctuation","operator"],style:{color:"#D4D4D4"}},{types:["punctuation"],languages:["markup"],style:{color:"#808080"}},{types:["function"],style:{color:"#7dd3fc"}},{types:["class-name"],style:{color:"#0ea5e9"}},{types:["char"],style:{color:"#D16969"}}]},es={plain:{color:"#0f172a",backgroundColor:"#f1f5f9"},styles:[{types:["prolog"],style:{color:"#000080"}},{types:["comment"],style:{color:"#6A9955"}},{types:["builtin","changed","keyword","interpolation-punctuation"],style:{color:"#0c4a6e"}},{types:["number","inserted"],style:{color:"#B5CEA8"}},{types:["constant"],style:{color:"#0f172a"}},{types:["attr-name","variable"],style:{color:"#0c4a6e"}},{types:["deleted","string","attr-value","template-punctuation"],style:{color:"#64748b"}},{types:["selector"],style:{color:"#D7BA7D"}},{types:["tag"],style:{color:"#0ea5e9"}},{types:["tag"],languages:["markup"],style:{color:"#0ea5e9"}},{types:["punctuation","operator"],style:{color:"#475569"}},{types:["punctuation"],languages:["markup"],style:{color:"#808080"}},{types:["function"],style:{color:"#0e7490"}},{types:["class-name"],style:{color:"#0ea5e9"}},{types:["char"],style:{color:"#D16969"}}]},eu={plain:{backgroundColor:"hsl(220, 13%, 18%)",color:"hsl(220, 14%, 71%)",textShadow:"0 1px rgba(0, 0, 0, 0.3)"},styles:[{types:["comment","prolog","cdata"],style:{color:"hsl(220, 10%, 40%)"}},{types:["doctype","punctuation","entity"],style:{color:"hsl(220, 14%, 71%)"}},{types:["attr-name","class-name","maybe-class-name","boolean","constant","number","atrule"],style:{color:"hsl(29, 54%, 61%)"}},{types:["keyword"],style:{color:"hsl(286, 60%, 67%)"}},{types:["property","tag","symbol","deleted","important"],style:{color:"hsl(355, 65%, 65%)"}},{types:["selector","string","char","builtin","inserted","regex","attr-value"],style:{color:"hsl(95, 38%, 62%)"}},{types:["variable","operator","function"],style:{color:"hsl(207, 82%, 66%)"}},{types:["url"],style:{color:"hsl(187, 47%, 55%)"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"hsl(220, 14%, 71%)"}}]},ec={plain:{backgroundColor:"hsl(230, 1%, 98%)",color:"hsl(230, 8%, 24%)"},styles:[{types:["comment","prolog","cdata"],style:{color:"hsl(230, 4%, 64%)"}},{types:["doctype","punctuation","entity"],style:{color:"hsl(230, 8%, 24%)"}},{types:["attr-name","class-name","boolean","constant","number","atrule"],style:{color:"hsl(35, 99%, 36%)"}},{types:["keyword"],style:{color:"hsl(301, 63%, 40%)"}},{types:["property","tag","symbol","deleted","important"],style:{color:"hsl(5, 74%, 59%)"}},{types:["selector","string","char","builtin","inserted","regex","attr-value","punctuation"],style:{color:"hsl(119, 34%, 47%)"}},{types:["variable","operator","function"],style:{color:"hsl(221, 87%, 60%)"}},{types:["url"],style:{color:"hsl(198, 99%, 37%)"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"hsl(230, 8%, 24%)"}}]},ed={plain:{color:"#ebdbb2",backgroundColor:"#292828"},styles:[{types:["imports","class-name","maybe-class-name","constant","doctype","builtin","function"],style:{color:"#d8a657"}},{types:["property-access"],style:{color:"#7daea3"}},{types:["tag"],style:{color:"#e78a4e"}},{types:["attr-name","char","url","regex"],style:{color:"#a9b665"}},{types:["attr-value","string"],style:{color:"#89b482"}},{types:["comment","prolog","cdata","operator","inserted"],style:{color:"#a89984"}},{types:["delimiter","boolean","keyword","selector","important","atrule","property","variable","deleted"],style:{color:"#ea6962"}},{types:["entity","number","symbol"],style:{color:"#d3869b"}}]},ef={plain:{color:"#654735",backgroundColor:"#f9f5d7"},styles:[{types:["delimiter","boolean","keyword","selector","important","atrule","property","variable","deleted"],style:{color:"#af2528"}},{types:["imports","class-name","maybe-class-name","constant","doctype","builtin"],style:{color:"#b4730e"}},{types:["string","attr-value"],style:{color:"#477a5b"}},{types:["property-access"],style:{color:"#266b79"}},{types:["function","attr-name","char","url"],style:{color:"#72761e"}},{types:["tag"],style:{color:"#b94c07"}},{types:["comment","prolog","cdata","operator","inserted"],style:{color:"#a89984"}},{types:["entity","number","symbol"],style:{color:"#924f79"}}]},ep=/\r\n|\r|\n/,em=e=>{0===e.length?e.push({types:["plain"],content:"\n",empty:!0}):1===e.length&&""===e[0].content&&(e[0].content="\n",e[0].empty=!0)},eh=(e,t)=>{let n=e.length;return n>0&&e[n-1]===t?e:e.concat(t)},eg=e=>{let t=[[]],n=[e],r=[0],a=[e.length],o=0,i=0,l=[],s=[l];for(;i>-1;){for(;(o=r[i]++)<a[i];){let e,u=t[i],c=n[i][o];if("string"==typeof c?(u=i>0?u:["plain"],e=c):(u=eh(u,c.type),c.alias&&(u=eh(u,c.alias)),e=c.content),"string"!=typeof e){i++,t.push(u),n.push(e),r.push(0),a.push(e.length);continue}let d=e.split(ep),f=d.length;l.push({types:u,content:d[0]});for(let e=1;e<f;e++)em(l),s.push(l=[]),l.push({types:u,content:d[e]})}i--,t.pop(),n.pop(),r.pop(),a.pop()}return em(l),s},eb=({children:e,language:t,code:n,theme:r,prism:a})=>{let o,i=t.toLowerCase(),l=((e,t)=>{let{plain:n}=e,r=e.styles.reduce((e,n)=>{let{languages:r,style:a}=n;return r&&!r.includes(t)||n.types.forEach(t=>{let n=M(M({},e[t]),a);e[t]=n}),e},{});return r.root=n,r.plain=O(M({},n),N({backgroundColor:void 0})),r})(r,i),s=(0,A.useCallback)(e=>{var{className:t,style:n,line:r}=e;let a=O(M({},$(e,["className","style","line"])),N({className:(0,T.A)("token-line",t)}));return"object"==typeof l&&"plain"in l&&(a.style=l.plain),"object"==typeof n&&(a.style=M(M({},a.style||{}),n)),a},[l]),u=(o=(0,A.useCallback)(({types:e,empty:t})=>{if(null!=l)return 1===e.length&&"plain"===e[0]?null!=t?{display:"inline-block"}:void 0:1===e.length&&null!=t?l[e[0]]:Object.assign(null!=t?{display:"inline-block"}:{},...e.map(e=>l[e]))},[l]),(0,A.useCallback)(e=>{var{token:t,className:n,style:r}=e;let a=O(M({},$(e,["token","className","style"])),N({className:(0,T.A)("token",...t.types,n),children:t.content,style:o(t)}));return null!=r&&(a.style=M(M({},a.style||{}),r)),a},[o])),c=a.languages[i];return e({tokens:(({prism:e,code:t,grammar:n,language:r})=>(0,A.useMemo)(()=>{if(null==n)return eg([t]);let a={code:t,grammar:n,language:r,tokens:[]};return e.hooks.run("before-tokenize",a),a.tokens=e.tokenize(t,n),e.hooks.run("after-tokenize",a),eg(a.tokens)},[t,n,r,e]))({prism:a,language:i,code:n,grammar:c}),className:`prism-code language-${i}`,style:null!=l?l.root:{},getLineProps:s,getTokenProps:u})},ey=e=>(0,A.createElement)(eb,O(M({},e),N({prism:e.prism||B,theme:e.theme||eo,code:e.code,language:e.language})))},5385(e,t,n){"use strict";n.d(t,{A:()=>r});function r(e,t){if(!e)throw Error("Invariant failed")}},5482(e,t,n){"use strict";n.r(t),n.d(t,{__addDisposableResource:()=>I,__assign:()=>o,__asyncDelegator:()=>_,__asyncGenerator:()=>E,__asyncValues:()=>A,__await:()=>x,__awaiter:()=>m,__classPrivateFieldGet:()=>N,__classPrivateFieldIn:()=>R,__classPrivateFieldSet:()=>j,__createBinding:()=>g,__decorate:()=>l,__disposeResources:()=>F,__esDecorate:()=>u,__exportStar:()=>b,__extends:()=>a,__generator:()=>h,__importDefault:()=>L,__importStar:()=>O,__makeTemplateObject:()=>T,__metadata:()=>p,__param:()=>s,__propKey:()=>d,__read:()=>v,__rest:()=>i,__rewriteRelativeImportExtension:()=>z,__runInitializers:()=>c,__setFunctionName:()=>f,__spread:()=>w,__spreadArray:()=>S,__spreadArrays:()=>k,__values:()=>y,default:()=>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])})(e,t)};function a(e,t){if("function"!=typeof t&&null!==t)throw 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}).apply(this,arguments)};function i(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&0>t.indexOf(r)&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var a=0,r=Object.getOwnPropertySymbols(e);a<r.length;a++)0>t.indexOf(r[a])&&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 s(e,t){return function(n,r){t(n,r,e)}}function u(e,t,n,r,a,o){function i(e){if(void 0!==e&&"function"!=typeof e)throw TypeError("Function expected");return e}for(var l,s=r.kind,u="getter"===s?"get":"setter"===s?"set":"value",c=!t&&e?r.static?e:e.prototype:null,d=t||(c?Object.getOwnPropertyDescriptor(c,r.name):{}),f=!1,p=n.length-1;p>=0;p--){var m={};for(var h in r)m[h]="access"===h?{}:r[h];for(var h in r.access)m.access[h]=r.access[h];m.addInitializer=function(e){if(f)throw TypeError("Cannot add initializers after decoration has completed");o.push(i(e||null))};var g=(0,n[p])("accessor"===s?{get:d.get,set:d.set}:d[u],m);if("accessor"===s){if(void 0===g)continue;if(null===g||"object"!=typeof g)throw TypeError("Object expected");(l=i(g.get))&&(d.get=l),(l=i(g.set))&&(d.set=l),(l=i(g.init))&&a.unshift(l)}else(l=i(g))&&("field"===s?a.unshift(l):d[u]=l)}c&&Object.defineProperty(c,r.name,d),f=!0}function c(e,t,n){for(var r=arguments.length>2,a=0;a<t.length;a++)n=r?t[a].call(e,n):t[a].call(e);return r?n:void 0}function d(e){return"symbol"==typeof e?e:"".concat(e)}function f(e,t,n){return"symbol"==typeof t&&(t=t.description?"[".concat(t.description,"]"):""),Object.defineProperty(e,"name",{configurable:!0,value:n?"".concat(n," ",t):t})}function p(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)}function m(e,t,n,r){return new(n||(n=Promise))(function(a,o){function i(e){try{s(r.next(e))}catch(e){o(e)}}function l(e){try{s(r.throw(e))}catch(e){o(e)}}function s(e){var t;e.done?a(e.value):((t=e.value)instanceof n?t:new n(function(e){e(t)})).then(i,l)}s((r=r.apply(e,t||[])).next())})}function h(e,t){var n,r,a,o={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},i=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return i.next=l(0),i.throw=l(1),i.return=l(2),"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function l(l){return function(s){var u=[l,s];if(n)throw TypeError("Generator is already executing.");for(;i&&(i=0,u[0]&&(o=0)),o;)try{if(n=1,r&&(a=2&u[0]?r.return:u[0]?r.throw||((a=r.return)&&a.call(r),0):r.next)&&!(a=a.call(r,u[1])).done)return a;switch(r=0,a&&(u=[2&u[0],a.value]),u[0]){case 0:case 1:a=u;break;case 4:return o.label++,{value:u[1],done:!1};case 5:o.label++,r=u[1],u=[0];continue;case 7:u=o.ops.pop(),o.trys.pop();continue;default:if(!(a=(a=o.trys).length>0&&a[a.length-1])&&(6===u[0]||2===u[0])){o=0;continue}if(3===u[0]&&(!a||u[1]>a[0]&&u[1]<a[3])){o.label=u[1];break}if(6===u[0]&&o.label<a[1]){o.label=a[1],a=u;break}if(a&&o.label<a[2]){o.label=a[2],o.ops.push(u);break}a[2]&&o.ops.pop(),o.trys.pop();continue}u=t.call(e,o)}catch(e){u=[6,e],r=0}finally{n=a=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}var g=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 b(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||g(t,e,n)}function y(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 TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function v(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(e){a={error:e}}finally{try{r&&!r.done&&(n=o.return)&&n.call(o)}finally{if(a)throw a.error}}return i}function w(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(v(arguments[t]));return e}function k(){for(var e=0,t=0,n=arguments.length;t<n;t++)e+=arguments[t].length;for(var r=Array(e),a=0,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 S(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 x(e){return this instanceof x?(this.v=e,this):new x(e)}function E(e,t,n){if(!Symbol.asyncIterator)throw TypeError("Symbol.asyncIterator is not defined.");var r,a=n.apply(e,t||[]),o=[];return r=Object.create(("function"==typeof AsyncIterator?AsyncIterator:Object).prototype),i("next"),i("throw"),i("return",function(e){return function(t){return Promise.resolve(t).then(e,u)}}),r[Symbol.asyncIterator]=function(){return this},r;function i(e,t){a[e]&&(r[e]=function(t){return new Promise(function(n,r){o.push([e,t,n,r])>1||l(e,t)})},t&&(r[e]=t(r[e])))}function l(e,t){try{var n;(n=a[e](t)).value instanceof x?Promise.resolve(n.value.v).then(s,u):c(o[0][2],n)}catch(e){c(o[0][3],e)}}function s(e){l("next",e)}function u(e){l("throw",e)}function c(e,t){e(t),o.shift(),o.length&&l(o[0][0],o[0][1])}}function _(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:x(e[r](t)),done:!1}:a?a(t):t}:a}}function A(e){if(!Symbol.asyncIterator)throw TypeError("Symbol.asyncIterator is not defined.");var t,n=e[Symbol.asyncIterator];return n?n.call(e):(e=y(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){var o,i,l;o=r,i=a,l=(t=e[n](t)).done,Promise.resolve(t.value).then(function(e){o({value:e,done:l})},i)})}}}function T(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e}var C=Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t},P=function(e){return(P=Object.getOwnPropertyNames||function(e){var t=[];for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[t.length]=n);return t})(e)};function O(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n=P(e),r=0;r<n.length;r++)"default"!==n[r]&&g(t,e,n[r]);return C(t,e),t}function L(e){return e&&e.__esModule?e:{default:e}}function N(e,t,n,r){if("a"===n&&!r)throw TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!r:!t.has(e))throw 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 j(e,t,n,r,a){if("m"===r)throw TypeError("Private method is not writable");if("a"===r&&!a)throw TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!a:!t.has(e))throw 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 R(e,t){if(null===t||"object"!=typeof t&&"function"!=typeof t)throw TypeError("Cannot use 'in' operator on non-object");return"function"==typeof e?t===e:e.has(t)}function I(e,t,n){if(null!=t){var r,a;if("object"!=typeof t&&"function"!=typeof t)throw TypeError("Object expected.");if(n){if(!Symbol.asyncDispose)throw TypeError("Symbol.asyncDispose is not defined.");r=t[Symbol.asyncDispose]}if(void 0===r){if(!Symbol.dispose)throw TypeError("Symbol.dispose is not defined.");r=t[Symbol.dispose],n&&(a=r)}if("function"!=typeof r)throw TypeError("Object not disposable.");a&&(r=function(){try{a.call(this)}catch(e){return Promise.reject(e)}}),e.stack.push({value:t,dispose:r,async:n})}else n&&e.stack.push({async:!0});return t}var D="function"==typeof SuppressedError?SuppressedError:function(e,t,n){var r=Error(n);return r.name="SuppressedError",r.error=e,r.suppressed=t,r};function F(e){function t(t){e.error=e.hasError?new D(t,e.error,"An error was suppressed during disposal."):t,e.hasError=!0}var n,r=0;return function a(){for(;n=e.stack.pop();)try{if(!n.async&&1===r)return r=0,e.stack.push(n),Promise.resolve().then(a);if(n.dispose){var o=n.dispose.call(n.value);if(n.async)return r|=2,Promise.resolve(o).then(a,function(e){return t(e),a()})}else r|=1}catch(e){t(e)}if(1===r)return e.hasError?Promise.reject(e.error):Promise.resolve();if(e.hasError)throw e.error}()}function z(e,t){return"string"==typeof e&&/^\.\.?\//.test(e)?e.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i,function(e,n,r,a,o){return n?t?".jsx":".js":!r||a&&o?r+a+"."+o.toLowerCase()+"js":e}):e}let M={__extends:a,__assign:o,__rest:i,__decorate:l,__param:s,__esDecorate:u,__runInitializers:c,__propKey:d,__setFunctionName:f,__metadata:p,__awaiter:m,__generator:h,__createBinding:g,__exportStar:b,__values:y,__read:v,__spread:w,__spreadArrays:k,__spreadArray:S,__await:x,__asyncGenerator:E,__asyncDelegator:_,__asyncValues:A,__makeTemplateObject:T,__importStar:O,__importDefault:L,__classPrivateFieldGet:N,__classPrivateFieldSet:j,__classPrivateFieldIn:R,__addDisposableResource:I,__disposeResources:F,__rewriteRelativeImportExtension:z}},2654(e){"use strict";e.exports=JSON.parse('{"homepage.hero.dashboardAlt":"Orbien project dashboard","homepage.hero.tagline":"Powered by Rust and Tokio","homepage.hero.desc":"Lightweight, high-performance, and secure NAT traversal \u2014 binary size about 5MB","homepage.hero.ctaStart":"Get Started","homepage.hero.ctaDownload":"Download","homepage.desktop.title":"Desktop Client","homepage.desktop.desc":"Native Rust desktop client \u2014 manage tunnel configs easily with a visual UI","homepage.desktop.cta":"Download Desktop","homepage.desktop.alt":"Orbien Desktop client demo","homepage.meta.description":"Orbien: simple, secure NAT traversal with multi-protocol tunnels and multiple transports","theme.ErrorPageContent.title":"This page crashed.","theme.BackToTopButton.buttonAriaLabel":"Scroll back to top","theme.blog.archive.title":"Archive","theme.blog.archive.description":"Archive","theme.blog.paginator.navAriaLabel":"Blog list page navigation","theme.blog.paginator.newerEntries":"Newer entries","theme.blog.paginator.olderEntries":"Older entries","theme.blog.post.paginator.navAriaLabel":"Blog post page navigation","theme.blog.post.paginator.newerPost":"Newer post","theme.blog.post.paginator.olderPost":"Older post","theme.tags.tagsPageLink":"View all tags","theme.colorToggle.ariaLabel.mode.system":"system mode","theme.colorToggle.ariaLabel.mode.light":"light mode","theme.colorToggle.ariaLabel.mode.dark":"dark mode","theme.colorToggle.ariaLabel":"Switch between dark and light mode (currently {mode})","theme.docs.breadcrumbs.navAriaLabel":"Breadcrumbs","theme.docs.paginator.navAriaLabel":"Docs pages","theme.docs.paginator.previous":"Previous","theme.docs.paginator.next":"Next","theme.docs.tagDocListPageTitle.nDocsTagged":"One doc tagged|{count} docs tagged","theme.docs.tagDocListPageTitle":"{nDocsTagged} with \\"{tagName}\\"","theme.docs.versionBadge.label":"Version: {versionLabel}","theme.common.editThisPage":"Edit this page","theme.common.headingLinkTitle":"Direct link to {heading}","theme.docs.versions.unreleasedVersionLabel":"This is unreleased documentation for {siteTitle} {versionLabel} version.","theme.docs.versions.unmaintainedVersionLabel":"This is documentation for {siteTitle} {versionLabel}, which is no longer actively maintained.","theme.docs.versions.latestVersionSuggestionLabel":"For up-to-date documentation, see the {latestVersionLink} ({versionLabel}).","theme.docs.versions.latestVersionLinkLabel":"latest version","theme.lastUpdated.atDate":" on {date}","theme.lastUpdated.byUser":" by {user}","theme.lastUpdated.lastUpdatedAtBy":"Last updated{atDate}{byUser}","theme.navbar.mobileVersionsDropdown.label":"Versions","theme.NotFound.title":"Page Not Found","theme.tags.tagsListLabel":"Tags:","theme.admonition.caution":"caution","theme.admonition.danger":"danger","theme.admonition.info":"info","theme.admonition.note":"note","theme.admonition.tip":"tip","theme.admonition.warning":"warning","theme.AnnouncementBar.closeButtonAriaLabel":"Close","theme.blog.sidebar.navAriaLabel":"Blog recent posts navigation","theme.DocSidebarItem.expandCategoryAriaLabel":"Expand sidebar category \'{label}\'","theme.DocSidebarItem.collapseCategoryAriaLabel":"Collapse sidebar category \'{label}\'","theme.IconExternalLink.ariaLabel":"(opens in new tab)","theme.NavBar.navAriaLabel":"Main","theme.TOCCollapsible.toggleButtonLabel":"On this page","theme.NotFound.p1":"We could not find what you were looking for.","theme.NotFound.p2":"Please contact the owner of the site that linked you to the original URL and let them know their link is broken.","theme.navbar.mobileLanguageDropdown.label":"Languages","theme.blog.post.readingTime.plurals":"One min read|{readingTime} min read","theme.blog.post.readMore":"Read more","theme.blog.post.readMoreLabel":"Read more about {title}","theme.CodeBlock.copy":"Copy","theme.CodeBlock.copied":"Copied","theme.CodeBlock.copyButtonAriaLabel":"Copy code to clipboard","theme.CodeBlock.wordWrapToggle":"Toggle word wrap","theme.docs.sidebar.collapseButtonTitle":"Collapse sidebar","theme.docs.sidebar.collapseButtonAriaLabel":"Collapse sidebar","theme.docs.breadcrumbs.home":"Home page","theme.docs.sidebar.navAriaLabel":"Docs sidebar","theme.docs.sidebar.closeSidebarButtonAriaLabel":"Close navigation bar","theme.docs.sidebar.toggleSidebarButtonAriaLabel":"Toggle navigation bar","theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel":"\u2190 Back to main menu","theme.docs.sidebar.expandButtonTitle":"Expand sidebar","theme.docs.sidebar.expandButtonAriaLabel":"Expand sidebar","theme.navbar.mobileDropdown.collapseButton.expandAriaLabel":"Expand the dropdown","theme.navbar.mobileDropdown.collapseButton.collapseAriaLabel":"Collapse the dropdown","theme.blog.post.plurals":"One post|{count} posts","theme.blog.tagTitle":"{nPosts} tagged with \\"{tagName}\\"","theme.blog.author.pageTitle":"{authorName} - {nPosts}","theme.blog.authorsList.pageTitle":"Authors","theme.blog.authorsList.viewAll":"View all authors","theme.blog.author.noPosts":"This author has not written any posts yet.","theme.contentVisibility.unlistedBanner.title":"Unlisted page","theme.contentVisibility.unlistedBanner.message":"This page is unlisted. Search engines will not index it, and only users having a direct link can access it.","theme.contentVisibility.draftBanner.title":"Draft page","theme.contentVisibility.draftBanner.message":"This page is a draft. It will only be visible in dev and be excluded from the production build.","theme.docs.DocCard.categoryDescription.plurals":"1 item|{count} items","theme.ErrorPageContent.tryAgain":"Try again","theme.common.skipToMainContent":"Skip to main content","theme.tags.tagsPageTitle":"Tags","homepage.meta.title":"Orbien \u2014 NAT Traversal","download.product.server":"Server","download.product.client":"CLI Client","download.product.desktop":"Desktop Client","download.note.glibc":"Dynamically linked glibc","download.note.musl":"Statically linked; works with older glibc","download.note.macosGatekeeper":"If blocked, allow it in System Settings","download.allReleases":"All releases","download.col.os":"OS","download.col.arch":"Arch","download.col.note":"Notes","homepage.feature.perf.title":"High Performance","homepage.feature.perf.desc":"High performance, low latency, packet-loss resilient, low memory footprint, and no GC pauses \u2014 built for long-running servers","homepage.feature.tunnel.title":"Multi-Protocol Tunnels","homepage.feature.tunnel.desc":"Supports TCP, UDP, HTTP, and HTTPS tunnels","homepage.feature.transport.title":"Multiple Transports","homepage.feature.transport.desc":"Supports TCP, QUIC, KCP, and WebSocket transports, plus TCP multiplexing","homepage.feature.security.title":"Security & Encryption","homepage.feature.security.desc":"Token authentication with TLS / mTLS; HTTPS transparent forwarding and optional client-side TLS termination","homepage.feature.ops.title":"Visual Ops","homepage.feature.ops.desc":"Built-in lightweight server web UI and native desktop client for easier ops, monitoring, and higher productivity","homepage.feature.platform.title":"Cross-Platform","homepage.feature.platform.desc":"Supports Windows / macOS / Linux / FreeBSD and more"}')},4054(e){"use strict";e.exports=JSON.parse('{"/orbien/en/docs-860":{"__comp":"5e95c892","__context":{"plugin":"aba21aa0"}},"/orbien/en/docs-929":{"__comp":"a7bd4aaa","__props":"2a662f4c"},"/orbien/en/docs-eb9":{"__comp":"a94703ab"},"/orbien/en/docs/community-a26":{"__comp":"17896441","content":"4ac686ed"},"/orbien/en/docs/docker-541":{"__comp":"17896441","content":"affd0631"},"/orbien/en/docs/download-e46":{"__comp":"17896441","content":"b3adb838"},"/orbien/en/docs/features/authentication-688":{"__comp":"17896441","content":"cc5cf7e7"},"/orbien/en/docs/features/bandwidth-dd0":{"__comp":"17896441","content":"d58d1957"},"/orbien/en/docs/features/dashboard-29f":{"__comp":"17896441","content":"ab4e331a"},"/orbien/en/docs/features/public-bind-443":{"__comp":"17896441","content":"b6948417"},"/orbien/en/docs/features/real-ip-3dc":{"__comp":"17896441","content":"7abcf739"},"/orbien/en/docs/integrations/springboot-398":{"__comp":"17896441","content":"523c1e1a"},"/orbien/en/docs/intro-8de":{"__comp":"17896441","content":"5b44acae"},"/orbien/en/docs/license-c3c":{"__comp":"17896441","content":"17bb2c49"},"/orbien/en/docs/performance-91a":{"__comp":"17896441","content":"1bc5dae4"},"/orbien/en/docs/quickstart-b95":{"__comp":"17896441","content":"66aed93e"},"/orbien/en/docs/roadmap-f84":{"__comp":"17896441","content":"b6b92320"},"/orbien/en/docs/transport/connect-pool-6f8":{"__comp":"17896441","content":"4be978ea"},"/orbien/en/docs/transport/protocol/kcp-5f7":{"__comp":"17896441","content":"7fe95379"},"/orbien/en/docs/transport/protocol/quic-144":{"__comp":"17896441","content":"2f2388ac"},"/orbien/en/docs/transport/protocol/tcp-ff4":{"__comp":"17896441","content":"20ddc183"},"/orbien/en/docs/transport/protocol/websocket-543":{"__comp":"17896441","content":"772f9d94"},"/orbien/en/docs/transport/tcp-mux-d69":{"__comp":"17896441","content":"2506a922"},"/orbien/en/docs/transport/tls-ede":{"__comp":"17896441","content":"814847fd"},"/orbien/en/docs/tunnels/domains-7b6":{"__comp":"17896441","content":"43054f0e"},"/orbien/en/docs/tunnels/http-b20":{"__comp":"17896441","content":"b32b4337"},"/orbien/en/docs/tunnels/https-ed9":{"__comp":"17896441","content":"7c4e16d0"},"/orbien/en/docs/tunnels/tcp-1c7":{"__comp":"17896441","content":"a89a62ae"},"/orbien/en/docs/tunnels/udp-b0a":{"__comp":"17896441","content":"f2426367"},"/orbien/en/-a39":{"__comp":"1df93b7f","__context":{"plugin":"a7456010"},"config":"5e9f5e1a"}}')}},function(e){e.O(0,["14"],function(){return e(e.s=6780)}),e.O()}]); \ No newline at end of file diff --git a/en/assets/js/runtime~main.69d919e2.js b/en/assets/js/runtime~main.69d919e2.js new file mode 100644 index 0000000..e908f25 --- /dev/null +++ b/en/assets/js/runtime~main.69d919e2.js @@ -0,0 +1 @@ +(()=>{"use strict";var e,a,r,t,o,n,c,d={},f={};function b(e){var a=f[e];if(void 0!==a)return a.exports;var r=f[e]={exports:{}};return d[e].call(r.exports,r,r.exports,b),r.exports}b.m=d,b.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return b.d(a,{a:a}),a},a=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,b.t=function(r,t){if(1&t&&(r=this(r)),8&t||"object"==typeof r&&r&&(4&t&&r.__esModule||16&t&&"function"==typeof r.then))return r;var o=Object.create(null);b.r(o);var n={};e=e||[null,a({}),a([]),a(a)];for(var c=2&t&&r;("object"==typeof c||"function"==typeof c)&&!~e.indexOf(c);c=a(c))Object.getOwnPropertyNames(c).forEach(e=>{n[e]=()=>r[e]});return n.default=()=>r,b.d(o,n),o},b.d=(e,a)=>{for(var r in a)b.o(a,r)&&!b.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:a[r]})},b.f={},b.e=e=>Promise.all(Object.keys(b.f).reduce((a,r)=>(b.f[r](e,a),a),[])),b.u=e=>"assets/js/"+(({106:"17896441",177:"4be978ea",188:"7abcf739",206:"772f9d94",228:"ab4e331a",283:"7fe95379",301:"523c1e1a",321:"66aed93e",331:"2f2388ac",4:"b6b92320",413:"2506a922",431:"b3adb838",439:"43054f0e",45:"a89a62ae",451:"20ddc183",452:"1df93b7f",46:"7c4e16d0",518:"f2426367",56:"a7456010",568:"b32b4337",569:"cc5cf7e7",572:"2a662f4c",575:"a7bd4aaa",597:"d58d1957",604:"17bb2c49",608:"814847fd",621:"b6948417",637:"5b44acae",668:"5e95c892",669:"4ac686ed",697:"1bc5dae4",747:"aba21aa0",785:"a94703ab",891:"affd0631"})[e]||e)+"."+({106:"6c48d3c2",177:"dc6372ef",188:"b09dd40f",206:"4fd05b25",228:"82844072",283:"33146854",301:"fa4312a2",321:"70d7565c",331:"edec12c7",4:"bee29316",406:"7afbacb1",413:"e24c6914",431:"bc0e2cf9",439:"4dde2329",45:"cbe83a92",451:"d640f03b",452:"26956a5e",46:"f92d6bf2",518:"56757d29",56:"b47ace4d",568:"f4af2bbd",569:"831f8317",572:"811c0482",575:"96f1510e",597:"6eff27f7",604:"7c118acc",608:"ec59cc50",621:"54531084",627:"5a86db8b",637:"cadbf450",668:"61b67e6b",669:"eb9285c5",697:"4f0c868a",747:"66a74c66",785:"b81930da",891:"89f71aa2"})[e]+".js",b.miniCssF=e=>""+e+".css",b.g=(()=>{if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}})(),b.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),r={},b.l=function(e,a,t,o){if(r[e])return void r[e].push(a);if(void 0!==t)for(var n,c,d=document.getElementsByTagName("script"),f=0;f<d.length;f++){var i=d[f];if(i.getAttribute("src")==e||i.getAttribute("data-rspack")=="orbien-docs:"+t){n=i;break}}n||(c=!0,(n=document.createElement("script")).timeout=120,b.nc&&n.setAttribute("nonce",b.nc),n.setAttribute("data-rspack","orbien-docs:"+t),n.src=e),r[e]=[a];var u=function(a,t){n.onerror=n.onload=null,clearTimeout(s);var o=r[e];if(delete r[e],n.parentNode&&n.parentNode.removeChild(n),o&&o.forEach(function(e){return e(t)}),a)return a(t)},s=setTimeout(u.bind(null,void 0,{type:"timeout",target:n}),12e4);n.onerror=u.bind(null,n.onerror),n.onload=u.bind(null,n.onload),c&&document.head.appendChild(n)},b.r=e=>{"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t=[],b.O=(e,a,r,o)=>{if(a){o=o||0;for(var n=t.length;n>0&&t[n-1][2]>o;n--)t[n]=t[n-1];t[n]=[a,r,o];return}for(var c=1/0,n=0;n<t.length;n++){for(var a=t[n][0],r=t[n][1],o=t[n][2],d=!0,f=0;f<a.length;f++)(!1&o||c>=o)&&Object.keys(b.O).every(e=>b.O[e](a[f]))?a.splice(f--,1):(d=!1,o<c&&(c=o));if(d){t.splice(n--,1);var i=r();void 0!==i&&(e=i)}}return e},b.p="/orbien/en/",b.rv=()=>"1.7.12",b.gca=function(e){return e=({0x11113f9:"106",b6b92320:"4",a89a62ae:"45","7c4e16d0":"46",a7456010:"56","4be978ea":"177","7abcf739":"188","772f9d94":"206",ab4e331a:"228","7fe95379":"283","523c1e1a":"301","66aed93e":"321","2f2388ac":"331","2506a922":"413",b3adb838:"431","43054f0e":"439","20ddc183":"451","1df93b7f":"452",f2426367:"518",b32b4337:"568",cc5cf7e7:"569","2a662f4c":"572",a7bd4aaa:"575",d58d1957:"597","17bb2c49":"604","814847fd":"608",b6948417:"621","5b44acae":"637","5e95c892":"668","4ac686ed":"669","1bc5dae4":"697",aba21aa0:"747",a94703ab:"785",affd0631:"891"})[e]||e,b.p+b.u(e)},o={14:0,783:0},b.f.j=function(e,a){var r=b.o(o,e)?o[e]:void 0;if(0!==r)if(r)a.push(r[2]);else if(/^(14|783)$/.test(e))o[e]=0;else{var t=new Promise((a,t)=>r=o[e]=[a,t]);a.push(r[2]=t);var n=b.p+b.u(e),c=Error();b.l(n,function(a){if(b.o(o,e)&&(0!==(r=o[e])&&(o[e]=void 0),r)){var t=a&&("load"===a.type?"missing":a.type),n=a&&a.target&&a.target.src;c.message="Loading chunk "+e+" failed.\n("+t+": "+n+")",c.name="ChunkLoadError",c.type=t,c.request=n,r[1](c)}},"chunk-"+e,e)}},b.O.j=e=>0===o[e],n=(e,a)=>{var r,t,n=a[0],c=a[1],d=a[2],f=0;if(n.some(e=>0!==o[e])){for(r in c)b.o(c,r)&&(b.m[r]=c[r]);if(d)var i=d(b)}for(e&&e(a);f<n.length;f++)t=n[f],b.o(o,t)&&o[t]&&o[t][0](),o[t]=0;return b.O(i)},(c=self.webpackChunkorbien_docs=self.webpackChunkorbien_docs||[]).forEach(n.bind(null,0)),c.push=n.bind(null,c.push.bind(c)),b.ruid="bundler=rspack@1.7.12"})(); \ No newline at end of file diff --git a/en/docs/community.html b/en/docs/community.html new file mode 100644 index 0000000..25be153 --- /dev/null +++ b/en/docs/community.html @@ -0,0 +1,9 @@ +<!doctype html><html lang=en dir=ltr class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-community" data-has-hydrated=false><head><meta charset=UTF-8><meta name=generator content="Docusaurus v3.10.2"><title data-rh=true>Community & Contributing | Orbien + + + \ No newline at end of file diff --git a/en/docs/docker.html b/en/docs/docker.html new file mode 100644 index 0000000..8d15610 --- /dev/null +++ b/en/docs/docker.html @@ -0,0 +1,27 @@ +Docker | Orbien + + +

Docker

+

Server​

+

Prepare orbien-server.toml:

+
listen = "0.0.0.0:9527"

# optional: domain routing
# httpGwPort = 80
# httpsGwPort = 443

# optional: client authentication
# [auth]
# token = "YOUR_TOKEN"

# optional: web dashboard
[dashboard]
addr = "0.0.0.0"
port = 8020
user = "admin"
password = "123456"
+
warning

dashboard.addr must be 0.0.0.0, otherwise the host cannot reach the dashboard through port mapping

+

Option 1: Start with a config file​

+
docker run -d --name orbien-server --restart unless-stopped \
-p 9527:9527 \
-p 8020:8020 \
-v "$PWD/orbien-server.toml:/etc/orbien/orbien-server.toml:ro" \
ghcr.io/orbien-org/orbien-server:latest
+

Option 2: Start with Compose​

+
# docker-compose.yaml
services:
orbien-server:
image: ghcr.io/orbien-org/orbien-server:latest
container_name: orbien-server
restart: unless-stopped
ports:
- "9527:9527"
- "8020:8020"
# - "80:80"
# - "443:443"
volumes:
- ./orbien-server.toml:/etc/orbien/orbien-server.toml:ro
+
docker compose up -d
+
+

Client​

+

Mount the config​

+

Prepare orbien.toml:

+
server = "YOUR_SERVER_IP:9527"

# must match if the server has a token
# [auth]
# token = "YOUR_TOKEN"

[[tunnels]]
name = "mysql"
protocol = "tcp"
service = "127.0.0.1:3306"
remotePort = 9000
+

Option 1: Start with a config file​

+
docker run -d --name orbien --restart unless-stopped \
-v "$PWD/orbien.toml:/etc/orbien/orbien.toml:ro" \
ghcr.io/orbien-org/orbien:latest
+
tip

Inside the container, 127.0.0.1 is the container itself. To expose a service on the host, set service to the host IP, or use host networking below

+

Host networking

+

Share the host network so the config can use 127.0.0.1 to reach local services:

+
docker run -d --name orbien --restart unless-stopped \
--network host \
-v "$PWD/orbien.toml:/etc/orbien/orbien.toml:ro" \
ghcr.io/orbien-org/orbien:latest
+

Option 2: Start with Compose​

+
# docker-compose.yaml
services:
orbien:
image: ghcr.io/orbien-org/orbien:latest
container_name: orbien
restart: unless-stopped
# network_mode: host
volumes:
- ./orbien.toml:/etc/orbien/orbien.toml:ro
+
docker compose up -d
\ No newline at end of file diff --git a/en/docs/download.html b/en/docs/download.html new file mode 100644 index 0000000..e1ff1da --- /dev/null +++ b/en/docs/download.html @@ -0,0 +1,6 @@ +Download | Orbien + + +

Download

+

Choose the package for your OS and architecture

+
OSArchlibcServerCLI ClientDesktop ClientNotes
Linuxamd64gnugnu · tar.gzgnu · tar.gzdebDynamically linked glibc
amd64muslmusl · tar.gzmusl · tar.gzStatically linked; works with older glibc
arm64gnugnu · tar.gzgnu · tar.gzdebDynamically linked glibc
arm64muslmusl · tar.gzmusl · tar.gzStatically linked; works with older glibc
FreeBSDamd64tar.gztar.gz
Windowsamd64tar.gztar.gzzip
arm64tar.gztar.gzzip
macOSamd64tar.gztar.gzdmgIf blocked, allow it in System Settings
arm64tar.gztar.gzdmgIf blocked, allow it in System Settings

Docker

  • orbien-serverserver
    docker pull ghcr.io/orbien-org/orbien-server:latest
  • orbienclient
    docker pull ghcr.io/orbien-org/orbien:latest
\ No newline at end of file diff --git a/en/docs/features/authentication.html b/en/docs/features/authentication.html new file mode 100644 index 0000000..8b1d242 --- /dev/null +++ b/en/docs/features/authentication.html @@ -0,0 +1,17 @@ +Authentication | Orbien + + +

Authentication

+

Token authentication when the client connects to the server. If the server has no token (or it is empty), authentication is skipped.

+

The token on both sides must match, or login fails (authorization failed).

+

Example​

+

Server:

+
# orbien-server.toml
[auth]
token = "YOUR_TOKEN"
+

Client:

+
# orbien.toml
[auth]
token = "YOUR_TOKEN"
+

Parameters​

+
ParameterRequiredDefaultDescription
auth.tokenNoShared secret; empty on the server disables auth; both sides must match
+

Command line​

+

The server can also set this via a flag (it overrides token in the config file):

+
./orbien-server -c orbien-server.toml -t YOUR_TOKEN
+
FlagDefaultDescription
-t / --tokenShared secret
\ No newline at end of file diff --git a/en/docs/features/bandwidth.html b/en/docs/features/bandwidth.html new file mode 100644 index 0000000..ef21cd3 --- /dev/null +++ b/en/docs/features/bandwidth.html @@ -0,0 +1,16 @@ +Bandwidth Limit | Orbien + + +

Bandwidth Limit

+

Limit forwarded bandwidth per tunnel. Configure it under transport on [[tunnels]].

+
    +
  • bandwidthLimitSide = "client": limit on the client
  • +
  • bandwidthLimitSide = "server": limit on the server
  • +
+

bandwidth is a number in Mbps (e.g. 2, 0.5). 0 means unlimited.

+

Example: Limit on the client​

+
# orbien.toml
[[tunnels]]
name = "web"
protocol = "tcp"
service = "127.0.0.1:80"
remotePort = 9000
transport.bandwidth = 2
transport.bandwidthLimitSide = "client"
+

Example: Limit on the server​

+
# orbien.toml
[[tunnels]]
name = "web"
protocol = "tcp"
service = "127.0.0.1:80"
remotePort = 9000
transport.bandwidth = 0.5
transport.bandwidthLimitSide = "server"
+

Parameters​

+
ParameterRequiredDefaultDescription
transport.bandwidthNo0Bandwidth cap (Mbps); 0 means unlimited
transport.bandwidthLimitSideNoclientLimit side: client / server
\ No newline at end of file diff --git a/en/docs/features/dashboard.html b/en/docs/features/dashboard.html new file mode 100644 index 0000000..f2edb1f --- /dev/null +++ b/en/docs/features/dashboard.html @@ -0,0 +1,11 @@ +Dashboard | Orbien + + +

Dashboard

+

Server web dashboard. Enable it by configuring [dashboard] in orbien-server.toml with port > 0.

+

Example​

+
# orbien-server.toml
listen = "0.0.0.0:9527"

[dashboard]
addr = "0.0.0.0"
port = 8020
user = "admin"
password = "123456"
+

Open http://SERVER_IP:8020 in a browser and log in with Basic Auth (user / password).

+

addr defaults to 127.0.0.1 (localhost only). Set it to 0.0.0.0 for remote access. staticDir may be omitted; if omitted, the built-in frontend is used.

+

Parameters​

+
ParameterRequiredDefaultDescription
dashboard.addrNo127.0.0.1Listen address; use 0.0.0.0 for remote access
dashboard.portYes0Listen port; 0 disables the dashboard
dashboard.userNoBasic Auth username
dashboard.passwordNoBasic Auth password
dashboard.staticDirNoStatic assets directory; empty uses the built-in frontend
\ No newline at end of file diff --git a/en/docs/features/public-bind.html b/en/docs/features/public-bind.html new file mode 100644 index 0000000..03ae380 --- /dev/null +++ b/en/docs/features/public-bind.html @@ -0,0 +1,17 @@ +Public Bind Address | Orbien + + +

Public Bind Address

+

The server has two kinds of listeners:

+
PurposeConfigWho connects
Control channellisten (and quicPort / kcpPort)The client (orbien) connects to build tunnels
Public trafficproxyAddr + remotePort / httpGwPort / httpsGwPortPublic visitors access the services you exposed
+

proxyAddr chooses which NIC / address visitor traffic binds to. It is independent of where the client connects. The config key remains proxyAddr (historical name); it means the public bind address.

+

Typical case: on a multi-homed host, bind the control channel to the private network and public listeners to the public IP — or the reverse, to isolate management from traffic.

+

Default is 0.0.0.0 (all interfaces). If empty, it falls back to the host part of listen.

+

Example​

+

Control channel and public listeners on all interfaces (default):

+
# orbien-server.toml
listen = "0.0.0.0:9527"
proxyAddr = "0.0.0.0"
+

Serve public traffic only on the public NIC (example IP):

+
# orbien-server.toml
listen = "10.0.0.2:9527"
proxyAddr = "203.0.113.10"
+

The client then connects to 10.0.0.2:9527; visitors reach remotePort / httpGwPort / httpsGwPort on 203.0.113.10.

+

Parameters​

+
ParameterRequiredDefaultDescription
proxyAddrNo0.0.0.0Public bind address; empty falls back to the host part of listen
\ No newline at end of file diff --git a/en/docs/features/real-ip.html b/en/docs/features/real-ip.html new file mode 100644 index 0000000..c2ad6c7 --- /dev/null +++ b/en/docs/features/real-ip.html @@ -0,0 +1,19 @@ +Real IP | Orbien + + +

Real IP

+

After tunneling, the local service usually sees the tunnel-side address. Use the following to get the visitor IP.

+

PROXY Protocol​

+

The client writes a PROXY Protocol header when connecting to the local service. The local service must support parsing it (e.g. Nginx, HAProxy).

+
# orbien.toml
server = "YOUR_SERVER_IP:9527"

[[tunnels]]
name = "web"
protocol = "tcp"
service = "127.0.0.1:80"
remotePort = 9000
transport.proxyProtocolVersion = "v2"
+

Applies to tcp / udp / http / https (passthrough). Not available with tls-term.

+
ParameterRequiredDefaultDescription
transport.proxyProtocolVersionNov1 / v2; empty disables it
+

X-Forwarded-For​

+

Injected automatically for http on the server, and for https + tls-term by the client plugin:

+
    +
  • X-Forwarded-For: visitor IP
  • +
  • X-Forwarded-Proto: http or https
  • +
+

Read these headers in your app.

+

Note​

+

The server does not parse PROXY Protocol from an upstream load balancer. The visitor source is the TCP peer that connects to proxyAddr.

\ No newline at end of file diff --git a/en/docs/integrations/springboot.html b/en/docs/integrations/springboot.html new file mode 100644 index 0000000..e168afb --- /dev/null +++ b/en/docs/integrations/springboot.html @@ -0,0 +1,18 @@ +Spring Boot Integration | Orbien + + +

Spring Boot Integration

+

Orbien provides an embeddable Java client for Spring Boot. Current scope:

+
    +
  • Tunnel protocols: TCP and HTTP only
  • +
  • Transport: TCP only
  • +
  • No TCP multiplexing: set orbien.tcp-mux to false, and set [transport].tcpMux = false on the server (multiplexing is on by default; turn it off when using the Java client)
  • +
+
<dependency>
<groupId>io.github.lxien</groupId>
<artifactId>orbien-spring-boot-starter</artifactId>
<version>3.0.0</version>
</dependency>
+

Minimal configuration​

+

local-port and name are optional. When omitted, the starter uses the Spring Boot web port and spring.application.name (or orbien-{protocol}).

+
# application.yml
orbien:
enabled: true
server-addr: 127.0.0.1
# token: YOUR_TOKEN # optional
tunnel:
protocol: http
domains:
- web.domain.com
+

Disable multiplexing on the server, for example:

+
# orbien-server.toml
listen = "0.0.0.0:9527"
httpGwPort = 80

[transport]
tcpMux = false # disable TCP multiplexing
+

Full reference​

+
# application.yml
orbien:
enabled: true
server-addr: 127.0.0.1
server-port: 9527
token: YOUR_TOKEN
tcp-mux: false # must be false and match the server
pool-count: 1 # data-connection pool size requested at login
heartbeat-interval-secs: 30
user: spring-boot-demo # optional; shown on the dashboard
# session-id: "" # optional; if empty, restore from session-id-file or generate
# session-id-file: "" # optional; if empty, use the default path under the user home
tunnel:
name: web-demo # optional
protocol: http # tcp | http
local-ip: 127.0.0.1
# local-port: 8080 # optional; defaults to the Spring Boot listen port
# remote-port: 9000 # required when protocol=tcp
domains: # required when protocol=http
- web.domain.com
\ No newline at end of file diff --git a/en/docs/intro.html b/en/docs/intro.html new file mode 100644 index 0000000..5b1efd2 --- /dev/null +++ b/en/docs/intro.html @@ -0,0 +1,15 @@ +Introduction | Orbien + + +

Introduction

+

Orbien is a high-performance NAT traversal tool written in Rust. It exposes services on a private network to the public internet securely and efficiently. By establishing a stable reverse tunnel, it works around firewall restrictions and is well suited to remote debugging, publishing internal services, development and testing, IoT device access, and similar scenarios.

+

Features​

+
    +
  • Multi-protocol tunnels: TCP, UDP, HTTP, and HTTPS
  • +
  • Transport: TCP, QUIC, KCP, and WebSocket
  • +
  • Multiplexing: TCP multiplexing so one physical connection carries multiple logical data streams, reducing overhead and latency
  • +
  • HTTPS: HTTPS is forwarded by SNI; domain certificates stay local. Optional client-side TLS termination
  • +
  • Security: TLS and mTLS encrypted transport
  • +
  • Operations: A lightweight server web UI and a cross-platform desktop client for ops and monitoring
  • +
  • Cross-platform: Linux, Windows, macOS, and FreeBSD, multiple architectures
  • +
\ No newline at end of file diff --git a/en/docs/license.html b/en/docs/license.html new file mode 100644 index 0000000..4b2fe72 --- /dev/null +++ b/en/docs/license.html @@ -0,0 +1,6 @@ +License | Orbien + + + \ No newline at end of file diff --git a/en/docs/performance.html b/en/docs/performance.html new file mode 100644 index 0000000..fa99e3b --- /dev/null +++ b/en/docs/performance.html @@ -0,0 +1,6 @@ +Performance | Orbien + + +

Performance

+

The following is a local-loopback memory-usage benchmark. Compared with frp, Orbien uses less memory and stays more stable.

+

mem.png

\ No newline at end of file diff --git a/en/docs/quickstart.html b/en/docs/quickstart.html new file mode 100644 index 0000000..8cac90a --- /dev/null +++ b/en/docs/quickstart.html @@ -0,0 +1,12 @@ +Quick Start | Orbien + + +

Quick Start

+

Download the archive for your platform and extract it.

+

Server​

+
# orbien-server.toml
listen = "0.0.0.0:9527"
+
./orbien-server -c orbien-server.toml
+

Client​

+

If you find the CLI cumbersome, you can use Orbien Desktop.

+
# orbien.toml
server = "127.0.0.1:9527"

[[tunnels]]
name = "mysql"
protocol = "tcp"
service = "127.0.0.1:3306"
remotePort = 9000
+
./orbien -c orbien.toml
\ No newline at end of file diff --git a/en/docs/roadmap.html b/en/docs/roadmap.html new file mode 100644 index 0000000..c930c8c --- /dev/null +++ b/en/docs/roadmap.html @@ -0,0 +1,7 @@ +Roadmap | Orbien + + + \ No newline at end of file diff --git a/en/docs/transport/connect-pool.html b/en/docs/transport/connect-pool.html new file mode 100644 index 0000000..2b0eea5 --- /dev/null +++ b/en/docs/transport/connect-pool.html @@ -0,0 +1,15 @@ +Connection Pool | Orbien + + +

Connection Pool

+

Pre-create data connections/streams at login to reduce the latency of opening new connections. Client poolCount is capped by server maxConnPool.

+

Example​

+

Server:

+
# orbien-server.toml
[transport]
maxConnPool = 5
+

Client:

+
# orbien.toml
[transport]
poolCount = 3
+

The effective count is min(poolCount, maxConnPool).

+

Client parameters​

+
ParameterRequiredDefaultDescription
transport.poolCountNo1Number of data connections/streams to pre-create at login
+

Server parameters​

+
ParameterRequiredDefaultDescription
transport.maxConnPoolNo5Cap on client poolCount; a configured 0 is automatically treated as 5
\ No newline at end of file diff --git a/en/docs/transport/protocol/kcp.html b/en/docs/transport/protocol/kcp.html new file mode 100644 index 0000000..1404cc0 --- /dev/null +++ b/en/docs/transport/protocol/kcp.html @@ -0,0 +1,15 @@ +KCP | Orbien + + +

KCP

+

Reliable transport over UDP; more stable on lossy networks. For TLS, see TLS.

+

Example​

+

Server:

+
# orbien-server.toml
listen = "0.0.0.0:9527"
kcpPort = 9529

[transport]
tcpMux = true
+

Client:

+
# orbien.toml
server = "YOUR_SERVER_IP:9529"

[transport]
protocol = "kcp"
tcpMux = true
heartbeatInterval = -1
+

server must point at the server kcpPort, and it must not equal quicPort.

+

Client parameters​

+
ParameterRequiredDefaultDescription
transport.protocolYestcpAlways kcp
serverYesServer address; the port is kcpPort
transport.tcpMuxNotrueTCP multiplexing; must match the server
transport.heartbeatIntervalNo-1Application heartbeat interval (seconds); -1 disables it. Becomes 30 when tcpMux is off
transport.heartbeatTimeoutNo-1Heartbeat timeout (seconds); disconnect if no Pong. Becomes 90 when tcpMux is off; see TCP Multiplexing
+

Server parameters​

+
ParameterRequiredDefaultDescription
kcpPortYes0KCP listen port (UDP); 0 disables it; must not equal quicPort
transport.tcpMuxNotrueTCP multiplexing; must match the client
\ No newline at end of file diff --git a/en/docs/transport/protocol/quic.html b/en/docs/transport/protocol/quic.html new file mode 100644 index 0000000..ed0f1f5 --- /dev/null +++ b/en/docs/transport/protocol/quic.html @@ -0,0 +1,15 @@ +QUIC | Orbien + + +

QUIC

+

UDP-based. Encryption and multiplexing are built in, so tcpMux / transport.tls.enable have no effect. Certificate verification can still be configured via transport.tls; see TLS.

+

Example​

+

Server:

+
# orbien-server.toml
listen = "0.0.0.0:9527"
quicPort = 9528

[transport.quic]
keepalivePeriod = 10
maxIdleTimeout = 30
maxIncomingStreams = 100000
+

Client:

+
# orbien.toml
server = "YOUR_SERVER_IP:9528"

[transport]
protocol = "quic"

[transport.quic]
keepalivePeriod = 10
maxIdleTimeout = 30
maxIncomingStreams = 100000
+

server must point at the server quicPort.

+

Client parameters​

+
ParameterRequiredDefaultDescription
transport.protocolYestcpAlways quic
serverYesServer address; the port is quicPort
transport.quic.keepalivePeriodNo10QUIC keepalive period (seconds)
transport.quic.maxIdleTimeoutNo30QUIC idle timeout (seconds)
transport.quic.maxIncomingStreamsNo100000Max concurrent bidirectional QUIC streams (also set on the client dial)
+

Server parameters​

+
ParameterRequiredDefaultDescription
quicPortYes0QUIC listen port (UDP); 0 disables it; must not equal kcpPort
transport.quic.keepalivePeriodNo10QUIC keepalive period (seconds)
transport.quic.maxIdleTimeoutNo30QUIC idle timeout (seconds)
transport.quic.maxIncomingStreamsNo100000Max incoming QUIC streams
\ No newline at end of file diff --git a/en/docs/transport/protocol/tcp.html b/en/docs/transport/protocol/tcp.html new file mode 100644 index 0000000..fdf5e81 --- /dev/null +++ b/en/docs/transport/protocol/tcp.html @@ -0,0 +1,14 @@ +TCP | Orbien + + +

TCP

+

The default transport protocol. The client establishes a control channel through the server listen address. For TLS, see TLS.

+

Example​

+

Server:

+
# orbien-server.toml
listen = "0.0.0.0:9527"

[transport]
tcpMux = true
+

Client:

+
# orbien.toml
server = "YOUR_SERVER_IP:9527"

[transport]
protocol = "tcp"
tcpMux = true
heartbeatInterval = -1
+

Client parameters​

+
ParameterRequiredDefaultDescription
transport.protocolNotcpAlways tcp
transport.tcpMuxNotrueTCP multiplexing; must match the server
transport.heartbeatIntervalNo-1Application heartbeat interval (seconds); -1 disables it. Becomes 30 when tcpMux is off
transport.heartbeatTimeoutNo-1Heartbeat timeout (seconds); disconnect if no Pong. Becomes 90 when tcpMux is off; see TCP Multiplexing
+

Server parameters​

+
ParameterRequiredDefaultDescription
listenYes0.0.0.0:9527TCP listen address
transport.tcpMuxNotrueTCP multiplexing; must match the client
\ No newline at end of file diff --git a/en/docs/transport/protocol/websocket.html b/en/docs/transport/protocol/websocket.html new file mode 100644 index 0000000..2effe6f --- /dev/null +++ b/en/docs/transport/protocol/websocket.html @@ -0,0 +1,14 @@ +WebSocket | Orbien + + +

WebSocket

+

Shares the server listen address with TCP. Useful when you need to traverse an HTTP proxy, or when only WebSocket is allowed. For TLS, see TLS.

+

Example​

+

Server:

+
# orbien-server.toml
listen = "0.0.0.0:9527"

[transport]
tcpMux = true
+

Client:

+
# orbien.toml
server = "YOUR_SERVER_IP:9527"

[transport]
protocol = "websocket"
tcpMux = true
heartbeatInterval = -1
+

Client parameters​

+
ParameterRequiredDefaultDescription
transport.protocolYestcpAlways websocket (or ws)
transport.tcpMuxNotrueTCP multiplexing; must match the server
transport.heartbeatIntervalNo-1Application heartbeat interval (seconds); -1 disables it. Becomes 30 when tcpMux is off
transport.heartbeatTimeoutNo-1Heartbeat timeout (seconds); disconnect if no Pong. Becomes 90 when tcpMux is off; see TCP Multiplexing
+

Server parameters​

+
ParameterRequiredDefaultDescription
listenYes0.0.0.0:9527Shared listen address with TCP
transport.tcpMuxNotrueTCP multiplexing; must match the client
\ No newline at end of file diff --git a/en/docs/transport/tcp-mux.html b/en/docs/transport/tcp-mux.html new file mode 100644 index 0000000..8f95efa --- /dev/null +++ b/en/docs/transport/tcp-mux.html @@ -0,0 +1,23 @@ +TCP Multiplexing | Orbien + + +

TCP Multiplexing

+

One physical connection carries multiple logical streams (Yamux), reducing connection-setup overhead. Applies to tcp / websocket / kcp; QUIC has built-in multiplexing, so this setting has no effect.

+

Client and server tcpMux must match, or the handshake will fail.

+

Example: Enable​

+

TCP multiplexing is enabled by default. When it is on, application heartbeats can stay off (heartbeatInterval / heartbeatTimeout = -1); dead connections are detected by multiplexing keepalive instead.

+

Server:

+
# orbien-server.toml
[transport]
tcpMux = true
muxKeepaliveSecs = 30
+

Client:

+
# orbien.toml
[transport]
tcpMux = true
muxKeepaliveSecs = 30
+

Example: Disable​

+

When disabled, each control/data stream uses its own connection, so application heartbeats should be enabled.

+

Server:

+
# orbien-server.toml
[transport]
tcpMux = false
heartbeatTimeout = 90
+

Client:

+
# orbien.toml
[transport]
tcpMux = false
heartbeatInterval = 30
heartbeatTimeout = 90
+

If the client omits heartbeat settings, disabling tcpMux automatically sets heartbeatInterval=30 and heartbeatTimeout=90.

+

Client parameters​

+
ParameterRequiredDefaultDescription
transport.tcpMuxNotrueEnable multiplexing; must match the server
transport.muxKeepaliveSecsNo30Multiplexing keepalive interval (seconds). Rust yamux has no native KeepAlive; when tcpMux=true and application heartbeats are off, a control-plane Ping is sent at this interval (equivalent keepalive)
transport.heartbeatIntervalNo-1 (mux on) / 30 (mux off)Application heartbeat interval (seconds); -1 disables it
transport.heartbeatTimeoutNo-1 (mux on) / 90 (mux off)Disconnect if no Pong is received within this many seconds; -1 disables it
+

Server parameters​

+
ParameterRequiredDefaultDescription
transport.tcpMuxNotrueEnable multiplexing; must match the client
transport.muxKeepaliveSecsNo30Multiplexing keepalive interval (seconds). Rust yamux has no native KeepAlive; when tcpMux=true and application heartbeat timeout is off, interval×3 is used as the timeout for kicking a client that sends no Ping (symmetric with the client)
transport.heartbeatTimeoutNo-1 (mux on) / 90 (mux off)Kick the control connection if no client Ping is received within this many seconds; -1 disables application heartbeat timeout (when mux is on, the keepalive logic above is used instead)
\ No newline at end of file diff --git a/en/docs/transport/tls.html b/en/docs/transport/tls.html new file mode 100644 index 0000000..951c117 --- /dev/null +++ b/en/docs/transport/tls.html @@ -0,0 +1,34 @@ +TLS | Orbien + + +

TLS

+

Control-channel TLS. Applies to tcp / websocket / kcp (QUIC is already encrypted, but the certificate path fields can still be used for QUIC identity verification).

+

Three modes:

+
    +
  1. Encryption only: Default; certificates are not verified
  2. +
  3. Verify the server certificate: The client trusts a CA and verifies the server identity
  4. +
  5. Mutual TLS (mTLS): Both sides verify each other's certificates
  6. +
+

The control channel uses a standard TLS ClientHello (first byte 0x16). HTTP / HTTPS domain gateways must use separate ports; see Domains.

+

Mode 1: Encryption only​

+

Leave trustedCaFile unset; the client skips certificate verification. The server certificate may be omitted (a temporary self-signed cert is used).

+

Server:

+
# orbien-server.toml
[transport.tls]
force = false
+

Client:

+
# orbien.toml
[transport.tls]
enable = true
+

Mode 2: Verify the server certificate​

+

The server provides a certificate; the client verifies it with a CA and sets SNI.

+

Server:

+
# orbien-server.toml
[transport.tls]
force = true
certFile = "/path/to/server.crt"
keyFile = "/path/to/server.key"
+

Client:

+
# orbien.toml
[transport.tls]
enable = true
trustedCaFile = "/path/to/ca.crt"
serverName = "orbien.example.com"
+

Mode 3: Mutual TLS (mTLS)​

+

Both sides verify the peer certificate. Setting trustedCaFile on the server automatically implies force = true.

+

Server:

+
# orbien-server.toml
[transport.tls]
force = true
certFile = "/path/to/server.crt"
keyFile = "/path/to/server.key"
trustedCaFile = "/path/to/ca.crt"
+

Client:

+
# orbien.toml
[transport.tls]
enable = true
certFile = "/path/to/client.crt"
keyFile = "/path/to/client.key"
trustedCaFile = "/path/to/ca.crt"
serverName = "orbien.example.com"
+

Client parameters​

+
ParameterRequiredDefaultDescription
transport.tls.enableNotrueEnable TLS; ignored for QUIC, which is already encrypted
transport.tls.certFileNoClient certificate (mTLS)
transport.tls.keyFileNoClient private key (mTLS)
transport.tls.trustedCaFileNoVerify the server certificate; empty skips verification (encryption only)
transport.tls.serverNameNoTLS SNI; empty uses the host part of server
+

Server parameters​

+
ParameterRequiredDefaultDescription
transport.tls.forceNofalseRequire TLS; reject non-TLS control connections
transport.tls.certFileNoServer certificate; empty uses a temporary self-signed cert
transport.tls.keyFileNoServer private key; empty uses a temporary self-signed cert
transport.tls.trustedCaFileNoVerify the client certificate (mTLS); non-empty automatically sets force = true
\ No newline at end of file diff --git a/en/docs/tunnels/domains.html b/en/docs/tunnels/domains.html new file mode 100644 index 0000000..3d90ffa --- /dev/null +++ b/en/docs/tunnels/domains.html @@ -0,0 +1,26 @@ +Domains | Orbien + + +

Domains

+

Forward visitor traffic to a client tunnel by domain. After the server enables httpGwPort / httpsGwPort, the client binds domains with domains.

+

domains is required and must be non-empty for http/https. Rules:

+
    +
  • A short name with no . (e.g. blog) is treated as a subdomain prefix and expanded to {prefix}.{rootDomain} (requires server rootDomain)
  • +
  • A full domain with . (e.g. web.example.com): if it belongs to rootDomain or a subdomain of it, it is used as-is; otherwise it is treated as an external custom domain and also used as-is
  • +
  • Wildcards are not supported
  • +
+

Port isolation: httpGwPort / httpsGwPort must not share overlapping addresses with the control channel listen (0.0.0.0 overlaps any address). The two gateway ports must also differ from each other. The control plane and visitor traffic use separate listeners; there is no protocol demux on a single port.

+

Example: Custom domain​

+

Server:

+
# orbien-server.toml
httpGwPort = 80
httpsGwPort = 443
+

Client:

+
# orbien.toml
[[tunnels]]
name = "web"
protocol = "http"
service = "127.0.0.1:8080"
domains = ["web.example.com"]
+

Point web.example.com at the server IP, then access it.

+

Example: Subdomain prefix​

+

Server:

+
# orbien-server.toml
httpGwPort = 80
rootDomain = "example.com"
+

Client:

+
# orbien.toml
[[tunnels]]
name = "web"
protocol = "http"
service = "127.0.0.1:8080"
domains = ["blog"]
+

The access domain is blog.example.com. You can also mix prefixes and full domains, e.g. domains = ["web", "app.example.com"].

+

Parameters​

+
ParameterRequiredDefaultDescription
httpGwPortNo0HTTP gateway port; 0 disables it; must not conflict with listen
httpsGwPortNo0HTTPS gateway port; 0 disables it; must not conflict with listen
rootDomainNoRoot domain; client domains entries with no . become prefix.rootDomain
\ No newline at end of file diff --git a/en/docs/tunnels/http.html b/en/docs/tunnels/http.html new file mode 100644 index 0000000..d959cd9 --- /dev/null +++ b/en/docs/tunnels/http.html @@ -0,0 +1,25 @@ +HTTP | Orbien + + +

HTTP

+

Expose an internal HTTP service to the public internet by domain. The server must enable the domain gateway; see Domains.

+

domains is required and must be non-empty: a full domain (e.g. web.example.com), or a short prefix with no . (e.g. web, which requires server rootDomain). Wildcards are not supported.

+

Example: Expose a web service​

+

Server:

+
# orbien-server.toml
listen = "0.0.0.0:9527"
httpGwPort = 80
+

Client:

+
# orbien.toml
server = "YOUR_SERVER_IP:9527"

[[tunnels]]
name = "web"
protocol = "http"
service = "127.0.0.1:8080"
domains = ["web.example.com"]
+

Point web.example.com at the server IP, then access:

+
curl http://web.example.com
+

Example: Basic authentication​

+
[[tunnels]]
name = "web-auth"
protocol = "http"
service = "127.0.0.1:8080"
domains = ["web.example.com"]
basicAuthUser = "alice"
basicAuthPassword = "secret"
+

Requests must include Basic credentials; failure returns 401:

+
curl -u alice:secret http://web.example.com
+

Example: Route by HTTP user​

+

On the same domain, different Basic users can be routed to different local services. If no dedicated route matches, traffic falls back to a tunnel without routeByHTTPUser (if one exists).

+
[[tunnels]]
name = "web-alice"
protocol = "http"
service = "127.0.0.1:8081"
domains = ["web.example.com"]
routeByHTTPUser = "alice"
basicAuthUser = "alice"
basicAuthPassword = "secret"

[[tunnels]]
name = "web-default"
protocol = "http"
service = "127.0.0.1:8080"
domains = ["web.example.com"]
+

Example: Rewrite Host​

+

Rewrite the request Host when forwarding to the local service:

+
[[tunnels]]
name = "web"
protocol = "http"
service = "127.0.0.1:8080"
domains = ["web.example.com"]
hostHeaderRewrite = "127.0.0.1"
+

Parameters​

+
ParameterRequiredDefaultDescription
nameYesTunnel name; must be unique
protocolYesAlways http
serviceYesLocal service address, e.g. 127.0.0.1:8080
domainsYesDomain list; at least one; full domain or a prefix with no . (prefix requires server rootDomain)
locationsNoPath prefix, e.g. /api; empty means all paths
basicAuthUserNoHTTP Basic username; if both this and basicAuthPassword are empty, auth is disabled
basicAuthPasswordNoHTTP Basic password
routeByHTTPUserNoSelect a route by the request Basic username; empty matches any user (exact user takes priority)
hostHeaderRewriteNoRewrite Host when forwarding to the local service; empty means no rewrite
transport.bandwidthNo0Bandwidth cap (Mbps); 0 means unlimited
transport.bandwidthLimitSideNoclientLimit side: client / server
transport.proxyProtocolVersionNoPROXY Protocol: v1 / v2
\ No newline at end of file diff --git a/en/docs/tunnels/https.html b/en/docs/tunnels/https.html new file mode 100644 index 0000000..a135d6e --- /dev/null +++ b/en/docs/tunnels/https.html @@ -0,0 +1,30 @@ +HTTPS | Orbien + + +

HTTPS

+

Expose an internal service to the public internet by domain. The server must enable the domain gateway; see Domains.

+

domains is required and must be non-empty: a full domain (e.g. web.example.com), or a short prefix with no . (e.g. web, which requires server rootDomain). Wildcards are not supported.

+

Two modes:

+
    +
  • Passthrough: Forward by SNI; the certificate is on the internal HTTPS service
  • +
  • TLS termination: The client plugin tls-term terminates TLS, then forwards to a local HTTP service
  • +
+

Example: Passthrough​

+

Server:

+
# orbien-server.toml
listen = "0.0.0.0:9527"
httpsGwPort = 443
+

Client:

+
# orbien.toml
server = "YOUR_SERVER_IP:9527"

[[tunnels]]
name = "web-ssl"
protocol = "https"
service = "127.0.0.1:443"
domains = ["web.example.com"]
+

Point web.example.com at the server IP, then access:

+
curl https://web.example.com
+

Example: TLS termination​

+

The client terminates TLS; the backend only needs to serve HTTP:

+
# orbien.toml
server = "YOUR_SERVER_IP:9527"

[[tunnels]]
name = "https-term"
protocol = "https"
domains = ["web.example.com"]

[tunnels.plugin]
type = "tls-term"
service = "127.0.0.1:80"
certFile = "/path/to/cert.pem"
keyFile = "/path/to/key.pem"
+

certFile / keyFile may be omitted. If omitted, a temporary self-signed certificate is used (browsers will warn that it is untrusted). When the plugin is enabled, use plugin.service to point at local HTTP; the tunnel-level service is not used, and PROXY Protocol cannot be configured.

+

Example: Rewrite Host with TLS termination​

+

Under tls-term, rewrite Host before forwarding to local HTTP:

+
[[tunnels]]
name = "https-term"
protocol = "https"
domains = ["web.example.com"]

[tunnels.plugin]
type = "tls-term"
service = "127.0.0.1:80"
certFile = "/path/to/cert.pem"
keyFile = "/path/to/key.pem"
hostHeaderRewrite = "127.0.0.1"
+

Example: Add request headers with TLS termination​

+

Under tls-term, append custom request headers to local HTTP:

+
[[tunnels]]
name = "https-term"
protocol = "https"
domains = ["web.example.com"]

[tunnels.plugin]
type = "tls-term"
service = "127.0.0.1:80"
certFile = "/path/to/cert.pem"
keyFile = "/path/to/key.pem"

[tunnels.plugin.requestHeaders.set]
X-From = "orbien"
+

Parameters​

+
ParameterRequiredDefaultDescription
nameYesTunnel name; must be unique
protocolYesAlways https
serviceConditionalLocal service address (required for passthrough), e.g. 127.0.0.1:443
domainsYesDomain list; at least one; full domain or a prefix with no . (prefix requires server rootDomain)
plugin.typeNotls-term: terminate TLS on the client
plugin.serviceConditionalRequired for tls-term, e.g. 127.0.0.1:80
plugin.certFileNoCertificate path; empty uses a temporary self-signed cert
plugin.keyFileNoPrivate key path; empty uses a temporary self-signed cert
plugin.hostHeaderRewriteNoRewrite Host when forwarding to the local service; empty means no rewrite
plugin.requestHeaders.setNoExtra request headers to send to the backend; key-value pairs
transport.bandwidthNo0Bandwidth cap (Mbps); 0 means unlimited
transport.bandwidthLimitSideNoclientLimit side: client / server
transport.proxyProtocolVersionNoPROXY Protocol: v1 / v2 (not available with tls-term)
\ No newline at end of file diff --git a/en/docs/tunnels/tcp.html b/en/docs/tunnels/tcp.html new file mode 100644 index 0000000..a80a6ef --- /dev/null +++ b/en/docs/tunnels/tcp.html @@ -0,0 +1,14 @@ +TCP | Orbien + + +

TCP

+

Map an internal TCP service to a public port on the server.

+

Example: Expose SSH​

+

Server:

+
# orbien-server.toml
listen = "0.0.0.0:9527"
+

Client:

+
# orbien.toml
server = "YOUR_SERVER_IP:9527"

[[tunnels]]
name = "ssh"
protocol = "tcp"
service = "127.0.0.1:22"
remotePort = 9000
+

Access from the public network:

+
ssh -p 9000 user@YOUR_SERVER_IP
+

Parameters​

+
ParameterRequiredDefaultDescription
nameYesTunnel name; must be unique
protocolYesAlways tcp
serviceYesLocal service address, e.g. 127.0.0.1:22
remotePortYesPublic listen port on the server
transport.bandwidthNo0Bandwidth cap (Mbps); 0 means unlimited
transport.bandwidthLimitSideNoclientLimit side: client / server
transport.proxyProtocolVersionNoPROXY Protocol: v1 / v2
\ No newline at end of file diff --git a/en/docs/tunnels/udp.html b/en/docs/tunnels/udp.html new file mode 100644 index 0000000..8f82f95 --- /dev/null +++ b/en/docs/tunnels/udp.html @@ -0,0 +1,14 @@ +UDP | Orbien + + +

UDP

+

Map an internal UDP service to a public port on the server.

+

Example: Expose DNS​

+

Server:

+
# orbien-server.toml
listen = "0.0.0.0:9527"
+

Client:

+
# orbien.toml
server = "YOUR_SERVER_IP:9527"

[[tunnels]]
name = "dns"
protocol = "udp"
service = "127.0.0.1:53"
remotePort = 9000
+

Access from the public network:

+
dig @YOUR_SERVER_IP -p 9000 example.com
+

Parameters​

+
ParameterRequiredDefaultDescription
udpPacketSizeNo1500Max UDP datagram size; must match the server
nameYesTunnel name; must be unique
protocolYesAlways udp
serviceYesLocal service address, e.g. 127.0.0.1:53
remotePortYesPublic listen port on the server
transport.bandwidthNo0Bandwidth cap (Mbps); 0 means unlimited
transport.bandwidthLimitSideNoclientLimit side: client / server
transport.proxyProtocolVersionNoPROXY Protocol: v1 / v2
\ No newline at end of file diff --git a/en/img/MadeWithSlint-logo-whitebg.png b/en/img/MadeWithSlint-logo-whitebg.png new file mode 100644 index 0000000..f7f39c1 Binary files /dev/null and b/en/img/MadeWithSlint-logo-whitebg.png differ diff --git a/en/img/dashboard.png b/en/img/dashboard.png new file mode 100644 index 0000000..0d6ed65 Binary files /dev/null and b/en/img/dashboard.png differ diff --git a/en/img/dashboard_black.png b/en/img/dashboard_black.png new file mode 100644 index 0000000..08b38b7 Binary files /dev/null and b/en/img/dashboard_black.png differ diff --git a/en/img/desktop_en.gif b/en/img/desktop_en.gif new file mode 100644 index 0000000..24e40cc Binary files /dev/null and b/en/img/desktop_en.gif differ diff --git a/en/img/desktop_zh.gif b/en/img/desktop_zh.gif new file mode 100644 index 0000000..43a3b14 Binary files /dev/null and b/en/img/desktop_zh.gif differ diff --git a/en/img/favicon.ico b/en/img/favicon.ico new file mode 100644 index 0000000..bee7af1 Binary files /dev/null and b/en/img/favicon.ico differ diff --git a/en/img/icon.png b/en/img/icon.png new file mode 100644 index 0000000..e1cd261 Binary files /dev/null and b/en/img/icon.png differ diff --git a/en/img/logo.png b/en/img/logo.png new file mode 100644 index 0000000..b073896 Binary files /dev/null and b/en/img/logo.png differ diff --git a/en/index.html b/en/index.html new file mode 100644 index 0000000..5efa139 --- /dev/null +++ b/en/index.html @@ -0,0 +1,4 @@ +Orbien — NAT Traversal | Orbien + + +

Orbien

Powered by Rust and Tokio

Lightweight, high-performance, and secure NAT traversal — binary size about 5MB

Orbien project dashboardOrbien project dashboard

High Performance

High performance, low latency, packet-loss resilient, low memory footprint, and no GC pauses — built for long-running servers

Multi-Protocol Tunnels

Supports TCP, UDP, HTTP, and HTTPS tunnels

Multiple Transports

Supports TCP, QUIC, KCP, and WebSocket transports, plus TCP multiplexing

Security & Encryption

Token authentication with TLS / mTLS; HTTPS transparent forwarding and optional client-side TLS termination

Visual Ops

Built-in lightweight server web UI and native desktop client for easier ops, monitoring, and higher productivity

Cross-Platform

Supports Windows / macOS / Linux / FreeBSD and more

Desktop Client​

Native Rust desktop client — manage tunnel configs easily with a visual UI

Download Desktop
Orbien Desktop client demo
\ No newline at end of file diff --git a/en/sitemap.xml b/en/sitemap.xml new file mode 100644 index 0000000..e3455df --- /dev/null +++ b/en/sitemap.xml @@ -0,0 +1 @@ +https://orbien-org.github.io/orbien/en/docs/communityweekly0.5https://orbien-org.github.io/orbien/en/docs/dockerweekly0.5https://orbien-org.github.io/orbien/en/docs/downloadweekly0.5https://orbien-org.github.io/orbien/en/docs/features/authenticationweekly0.5https://orbien-org.github.io/orbien/en/docs/features/bandwidthweekly0.5https://orbien-org.github.io/orbien/en/docs/features/dashboardweekly0.5https://orbien-org.github.io/orbien/en/docs/features/public-bindweekly0.5https://orbien-org.github.io/orbien/en/docs/features/real-ipweekly0.5https://orbien-org.github.io/orbien/en/docs/integrations/springbootweekly0.5https://orbien-org.github.io/orbien/en/docs/introweekly0.5https://orbien-org.github.io/orbien/en/docs/licenseweekly0.5https://orbien-org.github.io/orbien/en/docs/performanceweekly0.5https://orbien-org.github.io/orbien/en/docs/quickstartweekly0.5https://orbien-org.github.io/orbien/en/docs/roadmapweekly0.5https://orbien-org.github.io/orbien/en/docs/transport/connect-poolweekly0.5https://orbien-org.github.io/orbien/en/docs/transport/protocol/kcpweekly0.5https://orbien-org.github.io/orbien/en/docs/transport/protocol/quicweekly0.5https://orbien-org.github.io/orbien/en/docs/transport/protocol/tcpweekly0.5https://orbien-org.github.io/orbien/en/docs/transport/protocol/websocketweekly0.5https://orbien-org.github.io/orbien/en/docs/transport/tcp-muxweekly0.5https://orbien-org.github.io/orbien/en/docs/transport/tlsweekly0.5https://orbien-org.github.io/orbien/en/docs/tunnels/domainsweekly0.5https://orbien-org.github.io/orbien/en/docs/tunnels/httpweekly0.5https://orbien-org.github.io/orbien/en/docs/tunnels/httpsweekly0.5https://orbien-org.github.io/orbien/en/docs/tunnels/tcpweekly0.5https://orbien-org.github.io/orbien/en/docs/tunnels/udpweekly0.5https://orbien-org.github.io/orbien/en/weekly0.5 \ No newline at end of file diff --git a/img/MadeWithSlint-logo-whitebg.png b/img/MadeWithSlint-logo-whitebg.png new file mode 100644 index 0000000..f7f39c1 Binary files /dev/null and b/img/MadeWithSlint-logo-whitebg.png differ diff --git a/img/desktop.gif b/img/desktop.gif deleted file mode 100644 index bd0caa6..0000000 Binary files a/img/desktop.gif and /dev/null differ diff --git a/img/desktop_en.gif b/img/desktop_en.gif new file mode 100644 index 0000000..24e40cc Binary files /dev/null and b/img/desktop_en.gif differ diff --git a/img/desktop_zh.gif b/img/desktop_zh.gif new file mode 100644 index 0000000..43a3b14 Binary files /dev/null and b/img/desktop_zh.gif differ diff --git a/index.html b/index.html index 775038c..13dbdcc 100644 --- a/index.html +++ b/index.html @@ -1,4 +1,4 @@ -Orbien — 内网穿透与反向代理 | Orbien +Orbien — 内网穿透 | Orbien -

Orbien

由 Rust 与 Tokio 驱动

轻量、高性能、安全的内网穿透与反向代理,二进制体积5MB左右

Orbien 项目监控面板Orbien 项目监控面板

高性能

全链路零拷贝转发,低延迟、高吞吐、无GC停顿,适合长期服务器运行

多协议代理

支持 TCP、UDP、HTTP、HTTPS协议代理

多传输协议

支持 TCP、QUIC、KCP、WebSocket 多种传输协议,同时支持TCP多路复用

安全加密

支持 Token 鉴权与 TLS /mTLS 加密传输;HTTPS采用透明代理和可选客户端TLS终止

可视化运维

内置轻量服务端Web管理界面和桌面客户端,便于运维监控

跨平台支持

支持 Windows / macOS / Linux / freeBSD 等平台

桌面客户端​

通过可视化管理界面轻松管理穿透配置

下载桌面端
Orbien Desktop 客户端演示
\ No newline at end of file +

Orbien

由 Rust 与 Tokio 驱动

轻量、高性能、安全的内网穿透,二进制体积大约5MB

Orbien 项目监控面板Orbien 项目监控面板

高性能

高性能、低延迟、抗丢包、内存占用低、无GC停顿,适合长期服务器运行

多协议隧道

支持 TCP、UDP、HTTP、HTTPS 协议隧道

多传输协议

支持 TCP、QUIC、KCP、WebSocket 多种传输协议,同时支持TCP多路复用

安全加密

支持 Token 鉴权与 TLS /mTLS 加密传输;HTTPS采用透明转发和可选客户端TLS终止

可视化运维

内置轻量服务端Web管理界面和原生桌面客户端,便于运维监控,提高效率

跨平台支持

支持 Windows / macOS / Linux / freeBSD 等平台

桌面客户端​

纯Rust原生桌面客户端,通过可视化界面轻松管理隧道配置

下载桌面端
Orbien Desktop 客户端演示
\ No newline at end of file diff --git a/sitemap.xml b/sitemap.xml index faa36c3..13050cb 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -1 +1 @@ -https://orbien-org.github.io/orbien/docs/communityweekly0.5https://orbien-org.github.io/orbien/docs/dockerweekly0.5https://orbien-org.github.io/orbien/docs/downloadweekly0.5https://orbien-org.github.io/orbien/docs/features/authenticationweekly0.5https://orbien-org.github.io/orbien/docs/features/bandwidthweekly0.5https://orbien-org.github.io/orbien/docs/features/dashboardweekly0.5https://orbien-org.github.io/orbien/docs/features/proxy-bindweekly0.5https://orbien-org.github.io/orbien/docs/features/real-ipweekly0.5https://orbien-org.github.io/orbien/docs/integrations/springbootweekly0.5https://orbien-org.github.io/orbien/docs/introweekly0.5https://orbien-org.github.io/orbien/docs/licenseweekly0.5https://orbien-org.github.io/orbien/docs/performanceweekly0.5https://orbien-org.github.io/orbien/docs/proxies/httpweekly0.5https://orbien-org.github.io/orbien/docs/proxies/httpsweekly0.5https://orbien-org.github.io/orbien/docs/proxies/tcpweekly0.5https://orbien-org.github.io/orbien/docs/proxies/udpweekly0.5https://orbien-org.github.io/orbien/docs/proxies/vhostweekly0.5https://orbien-org.github.io/orbien/docs/quickstartweekly0.5https://orbien-org.github.io/orbien/docs/roadmapweekly0.5https://orbien-org.github.io/orbien/docs/transport/connect-poolweekly0.5https://orbien-org.github.io/orbien/docs/transport/protocol/kcpweekly0.5https://orbien-org.github.io/orbien/docs/transport/protocol/quicweekly0.5https://orbien-org.github.io/orbien/docs/transport/protocol/tcpweekly0.5https://orbien-org.github.io/orbien/docs/transport/protocol/websocketweekly0.5https://orbien-org.github.io/orbien/docs/transport/tcp-muxweekly0.5https://orbien-org.github.io/orbien/docs/transport/tlsweekly0.5https://orbien-org.github.io/orbien/weekly0.5 \ No newline at end of file +https://orbien-org.github.io/orbien/docs/communityweekly0.5https://orbien-org.github.io/orbien/docs/dockerweekly0.5https://orbien-org.github.io/orbien/docs/downloadweekly0.5https://orbien-org.github.io/orbien/docs/features/authenticationweekly0.5https://orbien-org.github.io/orbien/docs/features/bandwidthweekly0.5https://orbien-org.github.io/orbien/docs/features/dashboardweekly0.5https://orbien-org.github.io/orbien/docs/features/public-bindweekly0.5https://orbien-org.github.io/orbien/docs/features/real-ipweekly0.5https://orbien-org.github.io/orbien/docs/integrations/springbootweekly0.5https://orbien-org.github.io/orbien/docs/introweekly0.5https://orbien-org.github.io/orbien/docs/licenseweekly0.5https://orbien-org.github.io/orbien/docs/performanceweekly0.5https://orbien-org.github.io/orbien/docs/quickstartweekly0.5https://orbien-org.github.io/orbien/docs/roadmapweekly0.5https://orbien-org.github.io/orbien/docs/transport/connect-poolweekly0.5https://orbien-org.github.io/orbien/docs/transport/protocol/kcpweekly0.5https://orbien-org.github.io/orbien/docs/transport/protocol/quicweekly0.5https://orbien-org.github.io/orbien/docs/transport/protocol/tcpweekly0.5https://orbien-org.github.io/orbien/docs/transport/protocol/websocketweekly0.5https://orbien-org.github.io/orbien/docs/transport/tcp-muxweekly0.5https://orbien-org.github.io/orbien/docs/transport/tlsweekly0.5https://orbien-org.github.io/orbien/docs/tunnels/domainsweekly0.5https://orbien-org.github.io/orbien/docs/tunnels/httpweekly0.5https://orbien-org.github.io/orbien/docs/tunnels/httpsweekly0.5https://orbien-org.github.io/orbien/docs/tunnels/tcpweekly0.5https://orbien-org.github.io/orbien/docs/tunnels/udpweekly0.5https://orbien-org.github.io/orbien/weekly0.5 \ No newline at end of file