diff --git a/404.html b/404.html index edd6670058..5d548320c0 100644 --- a/404.html +++ b/404.html @@ -4,13 +4,13 @@ Page Not Found | Obol Network - - + +
Skip to main content

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/api.html b/api.html index 3977afcb6d..ab8222c5b6 100644 --- a/api.html +++ b/api.html @@ -4,8 +4,8 @@ API Reference | Obol Network - - + +
@@ -66,7 +66,7 @@
https://api.obol.tech/_health

Local development server

http://localhost:3000/_health

HTTPS Local development server

https://localhost/_health

Response samples

Content type
application/json
{
  • "status": "ok",
  • "info": {
    },
  • "error": { },
  • "details": {
    }
}
- - + + \ No newline at end of file diff --git a/assets/js/071730e6.a64d1d89.js b/assets/js/071730e6.a64d1d89.js new file mode 100644 index 0000000000..c24043677b --- /dev/null +++ b/assets/js/071730e6.a64d1d89.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkobol_docs=self.webpackChunkobol_docs||[]).push([[91348],{3905:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>m});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function o(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var l=r.createContext({}),u=function(e){var t=r.useContext(l),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},c=function(e){var t=u(e.components);return r.createElement(l.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},h=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,i=e.originalType,l=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),p=u(a),h=n,m=p["".concat(l,".").concat(h)]||p[h]||d[h]||i;return a?r.createElement(m,o(o({ref:t},c),{},{components:a})):r.createElement(m,o({ref:t},c))}));function m(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=a.length,o=new Array(i);o[0]=h;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[p]="string"==typeof e?e:n,o[1]=s;for(var u=2;u{a.r(t),a.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>p,frontMatter:()=>i,metadata:()=>s,toc:()=>u});var r=a(87462),n=(a(67294),a(3905));const i={sidebar_position:4,description:"Add monitoring credentials to help the Obol Team monitor the health of your cluster"},o="Getting Started Monitoring your Node",s={unversionedId:"int/quickstart/advanced/monitoring",id:"version-v0.17.0/int/quickstart/advanced/monitoring",title:"Getting Started Monitoring your Node",description:"Add monitoring credentials to help the Obol Team monitor the health of your cluster",source:"@site/versioned_docs/version-v0.17.0/int/quickstart/advanced/monitoring.md",sourceDirName:"int/quickstart/advanced",slug:"/int/quickstart/advanced/monitoring",permalink:"/docs/int/quickstart/advanced/monitoring",draft:!1,editUrl:"https://github.com/ObolNetwork/obol-docs/edit/main/versioned_docs/version-v0.17.0/int/quickstart/advanced/monitoring.md",tags:[],version:"v0.17.0",sidebarPosition:4,frontMatter:{sidebar_position:4,description:"Add monitoring credentials to help the Obol Team monitor the health of your cluster"},sidebar:"tutorialSidebar",previous:{title:"Split existing validator private keys",permalink:"/docs/int/quickstart/advanced/quickstart-split"},next:{title:"Push Metrics to Obol Monitoring",permalink:"/docs/int/quickstart/advanced/obol-monitoring"}},l={},u=[{value:"Pre-requisites",id:"pre-requisites",level:2},{value:"Import Pre-Configured Charon Dashboards",id:"import-pre-configured-charon-dashboards",level:2},{value:"Example Alerting Rules",id:"example-alerting-rules",level:2},{value:"Understanding Alert Rules",id:"understanding-alert-rules",level:2},{value:"Best Practices for Monitoring Charon Nodes & Cluster",id:"best-practices-for-monitoring-charon-nodes--cluster",level:2},{value:"Third-Party Services for Uptime Testing",id:"third-party-services-for-uptime-testing",level:2},{value:"Key metrics to watch to verify node health based on jobs",id:"key-metrics-to-watch-to-verify-node-health-based-on-jobs",level:2}],c={toc:u};function p(e){let{components:t,...a}=e;return(0,n.kt)("wrapper",(0,r.Z)({},c,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h1",{id:"getting-started-monitoring-your-node"},"Getting Started Monitoring your Node"),(0,n.kt)("p",null,"Welcome to this comprehensive guide, designed to assist you in effectively monitoring your Charon cluster and nodes, and setting up alerts based on specified parameters."),(0,n.kt)("h2",{id:"pre-requisites"},"Pre-requisites"),(0,n.kt)("p",null,"Ensure the following software are installed:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Docker: Find the installation guide for Ubuntu ",(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("a",{parentName:"strong",href:"https://docs.docker.com/engine/install/ubuntu/"},"here"))),(0,n.kt)("li",{parentName:"ul"},"Prometheus: You can install it using the guide available ",(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("a",{parentName:"strong",href:"https://prometheus.io/docs/prometheus/latest/installation/"},"here"))),(0,n.kt)("li",{parentName:"ul"},"Grafana: Follow this ",(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("a",{parentName:"strong",href:"https://grafana.com/docs/grafana/latest/setup-grafana/installation/"},"link"))," to install Grafana")),(0,n.kt)("h2",{id:"import-pre-configured-charon-dashboards"},"Import Pre-Configured Charon Dashboards"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},"Navigate to the ",(0,n.kt)("strong",{parentName:"p"},(0,n.kt)("a",{parentName:"strong",href:"https://github.com/ObolNetwork/monitoring/tree/main/dashboards"},"repository"))," that contains a variety of Grafana dashboards. For this demonstration, we will utilize the Charon Dashboard json.")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},"In your Grafana interface, create a new dashboard and select the import option.")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},'Copy the content of the Charon Dashboard json from the repository and paste it into the import box in Grafana. Click "Load" to proceed.')),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},'Finalize the import by clicking on the "Import" button. At this point, your dashboard should begin displaying metrics. Ensure your Charon client and Prometheus are operational for this to occur.'))),(0,n.kt)("h2",{id:"example-alerting-rules"},"Example Alerting Rules"),(0,n.kt)("p",null,'To create alerts for Node-Exporter, follow these steps based on the sample rules provided on the "Awesome Prometheus alerts" page:'),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"Visit the ",(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("a",{parentName:"strong",href:"https://samber.github.io/awesome-prometheus-alerts/rules.html#host-and-hardware"},"Awesome Prometheus alerts"))," page. Here, you will find lists of Prometheus alerting rules categorized by hardware, system, and services."),(0,n.kt)("li",{parentName:"ol"},"Depending on your need, select the category of alerts. For example, if you want to set up alerts for your system's CPU usage, click on the 'CPU' under the 'Host & Hardware' category."),(0,n.kt)("li",{parentName:"ol"},"On the selected page, you'll find specific alert rules like 'High CPU Usage'. Each rule will provide the PromQL expression, alert name, and a brief description of what the alert does. You can copy these rules."),(0,n.kt)("li",{parentName:"ol"},"Paste the copied rules into your Prometheus configuration file under the ",(0,n.kt)("inlineCode",{parentName:"li"},"rules")," section. Make sure you understand each rule before adding it to avoid unnecessary alerts."),(0,n.kt)("li",{parentName:"ol"},"Finally, save and apply the configuration file. Prometheus should now trigger alerts based on these rules.")),(0,n.kt)("p",null,"For alerts specific to Charon/Alpha, refer to the alerting rules available on this ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/ObolNetwork/monitoring/tree/main/alerting-rules"},"ObolNetwork/monitoring"),"."),(0,n.kt)("h2",{id:"understanding-alert-rules"},"Understanding Alert Rules"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("inlineCode",{parentName:"li"},"ClusterBeaconNodeDown"),"This alert is activated when the beacon node in a specified Alpha cluster is offline. The beacon node is crucial for validating transactions and producing new blocks. Its unavailability could disrupt the overall functionality of the cluster."),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("inlineCode",{parentName:"li"},"ClusterBeaconNodeSyncing"),"This alert indicates that the beacon node in a specified Alpha cluster is synchronizing, i.e., catching up with the latest blocks in the cluster."),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("inlineCode",{parentName:"li"},"ClusterNodeDown"),"This alert is activated when a node in a specified Alpha cluster is offline."),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("inlineCode",{parentName:"li"},"ClusterMissedAttestations"),":This alert indicates that there have been missed attestations in a specified Alpha cluster. Missed attestations may suggest that validators are not operating correctly, compromising the security and efficiency of the cluster."),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("inlineCode",{parentName:"li"},"ClusterInUnknownStatus"),": This alert is designed to activate when a node within the cluster is detected to be in an unknown state. The condition is evaluated by checking whether the maximum of the app_monitoring_readyz metric is 0."),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("inlineCode",{parentName:"li"},"ClusterInsufficientPeers"),":This alert is set to activate when the number of peers for a node in the Alpha M1 Cluster #1 is insufficient. The condition is evaluated by checking whether the maximum of the ",(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("inlineCode",{parentName:"strong"},"app_monitoring_readyz"))," equals 4."),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("inlineCode",{parentName:"li"},"ClusterFailureRate"),": This alert is activated when the failure rate of the Alpha M1 Cluster #1 exceeds a certain threshold."),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("inlineCode",{parentName:"li"},"ClusterVCMissingValidators"),": This alert is activated if any validators in the Alpha M1 Cluster #1 are missing."),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("inlineCode",{parentName:"li"},"ClusterHighPctFailedSyncMsgDuty"),': This alert is activated if a high percentage of sync message duties failed in the cluster. The alert is activated if the sum of the increase in failed duties tagged with "sync_message" in the last hour divided by the sum of the increase in total duties tagged with "sync_message" in the last hour is greater than 0.1.'),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("inlineCode",{parentName:"li"},"ClusterNumConnectedRelays"),": This alert is activated if the number of connected relays in the cluster falls to 0."),(0,n.kt)("li",{parentName:"ol"},"PeerPingLatency: 1. This alert is activated if the 90th percentile of the ping latency to the peers in a cluster exceeds 500ms within 2 minutes.")),(0,n.kt)("h2",{id:"best-practices-for-monitoring-charon-nodes--cluster"},"Best Practices for Monitoring Charon Nodes & Cluster"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Establish Baselines"),": Familiarize yourself with the normal operation metrics like CPU, memory, and network usage. This will help you detect anomalies."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Define Key Metrics"),": Set up alerts for essential metrics, encompassing both system-level and Charon-specific ones."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Configure Alerts"),": Based on these metrics, set up actionable alerts."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Monitor Network"),": Regularly assess the connectivity between nodes and the network."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Perform Regular Health Checks"),": Consistently evaluate the status of your nodes and clusters."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Monitor System Logs"),": Keep an eye on logs for error messages or unusual activities."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Assess Resource Usage"),": Ensure your nodes are neither over- nor under-utilized."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Automate Monitoring"),": Use automation to ensure no issues go undetected."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Conduct Drills"),": Regularly simulate failure scenarios to fine-tune your setup."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Update Regularly"),": Keep your nodes and clusters updated with the latest software versions.")),(0,n.kt)("h2",{id:"third-party-services-for-uptime-testing"},"Third-Party Services for Uptime Testing"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://updown.io/"},"updown.io")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://grafana.com/grafana/plugins/grafana-synthetic-monitoring-app/"},"Grafana synthetic Monitoring"))),(0,n.kt)("h2",{id:"key-metrics-to-watch-to-verify-node-health-based-on-jobs"},"Key metrics to watch to verify node health based on jobs"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Node Exporter:")),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"CPU Usage"),": High or spiking CPU usage can be a sign of a process demanding more resources than it should."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Memory Usage"),": If a node is consistently running out of memory, it could be due to a memory leak or simply under-provisioning."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Disk I/O"),": Slow disk operations can cause applications to hang or delay responses. High disk I/O can indicate storage performance issues or a sign of high load on the system."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Network Usage"),": High network traffic or packet loss can signal network configuration issues, or that a service is being overwhelmed by requests."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Disk Space"),": Running out of disk space can lead to application errors and data loss."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Uptime"),": The amount of time a system has been up without any restarts. Frequent restarts can indicate instability in the system."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Error Rates"),": The number of errors encountered by your application. This could be 4xx/5xx HTTP errors, exceptions, or any other kind of error your application may log."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Latency"),": The delay before a transfer of data begins following an instruction for its transfer."),(0,n.kt)("p",null,"It is also important to check:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"NTP clock skew"),(0,n.kt)("li",{parentName:"ul"},"Process restarts and failures (eg. through\xa0",(0,n.kt)("inlineCode",{parentName:"li"},"node_systemd"),")"),(0,n.kt)("li",{parentName:"ul"},"alert on high error and panic log counts.")))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/0fca5b2c.05488c60.js b/assets/js/0fca5b2c.05488c60.js new file mode 100644 index 0000000000..b85a59f10b --- /dev/null +++ b/assets/js/0fca5b2c.05488c60.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkobol_docs=self.webpackChunkobol_docs||[]).push([[87124],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>b});var r=n(67294);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(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function a(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var l=r.createContext({}),c=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},d=function(e){var t=c(e.components);return r.createElement(l.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,i=e.originalType,l=e.parentName,d=s(e,["components","mdxType","originalType","parentName"]),p=c(n),m=o,b=p["".concat(l,".").concat(m)]||p[m]||u[m]||i;return n?r.createElement(b,a(a({ref:t},d),{},{components:n})):r.createElement(b,a({ref:t},d))}));function b(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=n.length,a=new Array(i);a[0]=m;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[p]="string"==typeof e?e:o,a[1]=s;for(var c=2;c{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>a,default:()=>p,frontMatter:()=>i,metadata:()=>s,toc:()=>c});var r=n(87462),o=(n(67294),n(3905));const i={sidebar_position:5,description:"Add monitoring credentials to help the Obol Team monitor the health of your cluster"},a="Push Metrics to Obol Monitoring",s={unversionedId:"int/quickstart/advanced/obol-monitoring",id:"version-v0.17.0/int/quickstart/advanced/obol-monitoring",title:"Push Metrics to Obol Monitoring",description:"Add monitoring credentials to help the Obol Team monitor the health of your cluster",source:"@site/versioned_docs/version-v0.17.0/int/quickstart/advanced/obol-monitoring.md",sourceDirName:"int/quickstart/advanced",slug:"/int/quickstart/advanced/obol-monitoring",permalink:"/docs/int/quickstart/advanced/obol-monitoring",draft:!1,editUrl:"https://github.com/ObolNetwork/obol-docs/edit/main/versioned_docs/version-v0.17.0/int/quickstart/advanced/obol-monitoring.md",tags:[],version:"v0.17.0",sidebarPosition:5,frontMatter:{sidebar_position:5,description:"Add monitoring credentials to help the Obol Team monitor the health of your cluster"},sidebar:"tutorialSidebar",previous:{title:"Getting Started Monitoring your Node",permalink:"/docs/int/quickstart/advanced/monitoring"},next:{title:"Run Prysm validators as part of a DV Cluster",permalink:"/docs/int/quickstart/advanced/prysm-vc"}},l={},c=[],d={toc:c};function p(e){let{components:t,...n}=e;return(0,o.kt)("wrapper",(0,r.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"push-metrics-to-obol-monitoring"},"Push Metrics to Obol Monitoring"),(0,o.kt)("admonition",{type:"info"},(0,o.kt)("p",{parentName:"admonition"},"This is ",(0,o.kt)("strong",{parentName:"p"},"optional")," and does not confer any special privileges within the Obol Network.")),(0,o.kt)("p",null,"You may have been provided with ",(0,o.kt)("strong",{parentName:"p"},"Monitoring Credentials")," used to push distributed validator metrics to Obol's central prometheus cluster to monitor, analyze, and improve your Distributed Validator Cluster's performance."),(0,o.kt)("p",null,"The provided credentials needs to be added in ",(0,o.kt)("inlineCode",{parentName:"p"},"prometheus/prometheus.yml")," replacing ",(0,o.kt)("inlineCode",{parentName:"p"},"$PROM_REMOTE_WRITE_TOKEN")," and will look like:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre"},"obol20!tnt8U!C...\n")),(0,o.kt)("p",null,"The updated ",(0,o.kt)("inlineCode",{parentName:"p"},"prometheus/prometheus.yml")," file should look like:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre"},"global:\n scrape_interval: 30s # Set the scrape interval to every 30 seconds.\n evaluation_interval: 30s # Evaluate rules every 30 seconds.\n\nremote_write:\n - url: https://vm.monitoring.gcp.obol.tech/write\n authorization:\n credentials: obol20!tnt8U!C...\n\nscrape_configs:\n - job_name: 'charon'\n static_configs:\n - targets: ['charon:3620']\n - job_name: \"lodestar\"\n static_configs:\n - targets: [ \"lodestar:5064\" ]\n - job_name: 'node-exporter'\n static_configs:\n - targets: ['node-exporter:9100']\n")))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/37208fda.20e57a40.js b/assets/js/37208fda.fad19e27.js similarity index 57% rename from assets/js/37208fda.20e57a40.js rename to assets/js/37208fda.fad19e27.js index e055860d01..2357a0beed 100644 --- a/assets/js/37208fda.20e57a40.js +++ b/assets/js/37208fda.fad19e27.js @@ -1 +1 @@ -"use strict";(self.webpackChunkobol_docs=self.webpackChunkobol_docs||[]).push([[20655],{3905:(e,t,r)=>{r.d(t,{Zo:()=>l,kt:()=>y});var n=r(67294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var c=n.createContext({}),p=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},l=function(e){var t=p(e.components);return n.createElement(c.Provider,{value:t},e.children)},d="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,c=e.parentName,l=s(e,["components","mdxType","originalType","parentName"]),d=p(r),u=o,y=d["".concat(c,".").concat(u)]||d[u]||m[u]||a;return r?n.createElement(y,i(i({ref:t},l),{},{components:r})):n.createElement(y,i({ref:t},l))}));function y(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=u;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s[d]="string"==typeof e?e:o,i[1]=s;for(var p=2;p{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>s,toc:()=>p});var n=r(87462),o=(r(67294),r(3905));const a={sidebar_position:6,description:"Run Prysm VCs in a DV"},i="Run Prysm validators as part of a DV Cluster",s={unversionedId:"int/quickstart/advanced/prysm-vc",id:"version-v0.17.0/int/quickstart/advanced/prysm-vc",title:"Run Prysm validators as part of a DV Cluster",description:"Run Prysm VCs in a DV",source:"@site/versioned_docs/version-v0.17.0/int/quickstart/advanced/prysm-vc.md",sourceDirName:"int/quickstart/advanced",slug:"/int/quickstart/advanced/prysm-vc",permalink:"/docs/int/quickstart/advanced/prysm-vc",draft:!1,editUrl:"https://github.com/ObolNetwork/obol-docs/edit/main/versioned_docs/version-v0.17.0/int/quickstart/advanced/prysm-vc.md",tags:[],version:"v0.17.0",sidebarPosition:6,frontMatter:{sidebar_position:6,description:"Run Prysm VCs in a DV"},sidebar:"tutorialSidebar",previous:{title:"Push Metrics to Obol Monitoring",permalink:"/docs/int/quickstart/advanced/push-metrics"},next:{title:"Self-Host a Relay",permalink:"/docs/int/quickstart/advanced/self-relay"}},c={},p=[],l={toc:p};function d(e){let{components:t,...r}=e;return(0,o.kt)("wrapper",(0,n.Z)({},l,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"run-prysm-validators-as-part-of-a-dv-cluster"},"Run Prysm validators as part of a DV Cluster"),(0,o.kt)("admonition",{type:"info"},(0,o.kt)("p",{parentName:"admonition"},"Support for prysm validator clients is in an experimental phase as prysm doesn't provide ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/prysmaticlabs/prysm/issues/11580"},"complete support"),"\nfor running their validator client on a beacon node REST API yet. Stay up to date on the latest support information for all validator clients at ",(0,o.kt)("a",{parentName:"p",href:"https://dvt.obol.tech"},"dvt.obol.tech"),".")),(0,o.kt)("p",null,"We have provided experimental support of prysm validator client through ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/ObolNetwork/charon-distributed-validator-cluster/blob/main/compose-prysm.yml"},"compose-prysm.yml"),"\nwhich needs a prysm beacon node to work alongside a REST based beacon node. Here are the steps to test prysm in a DV Cluster:"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},"Run the following command:",(0,o.kt)("pre",{parentName:"li"},(0,o.kt)("code",{parentName:"pre",className:"language-sh"},"cp docker-compose.override.yml.sample docker-compose.override.yml\n"))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("strong",{parentName:"li"},"Disable")," the VCs in ",(0,o.kt)("inlineCode",{parentName:"li"},"docker-compose.override.yml")," that are to be replaced by corresponding prysm VCs by un-commenting the ",(0,o.kt)("inlineCode",{parentName:"li"},"profiles")," field\n(",(0,o.kt)("a",{parentName:"li",href:"https://docs.docker.com/compose/profiles/"},"more details on profiles"),"). Also disable the prysm VCs that are not required in the cluster in ",(0,o.kt)("inlineCode",{parentName:"li"},"docker-compose.override.yml"),"."),(0,o.kt)("li",{parentName:"ol"},"Run the following command:",(0,o.kt)("pre",{parentName:"li"},(0,o.kt)("code",{parentName:"pre",className:"language-sh"},"docker compose -f docker-compose.yml -f compose-prysm.yml -f docker-compose.override.yml up --build\n")))))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkobol_docs=self.webpackChunkobol_docs||[]).push([[20655],{3905:(e,t,r)=>{r.d(t,{Zo:()=>l,kt:()=>y});var n=r(67294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var c=n.createContext({}),p=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},l=function(e){var t=p(e.components);return n.createElement(c.Provider,{value:t},e.children)},d="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,c=e.parentName,l=s(e,["components","mdxType","originalType","parentName"]),d=p(r),u=o,y=d["".concat(c,".").concat(u)]||d[u]||m[u]||a;return r?n.createElement(y,i(i({ref:t},l),{},{components:r})):n.createElement(y,i({ref:t},l))}));function y(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=u;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s[d]="string"==typeof e?e:o,i[1]=s;for(var p=2;p{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>s,toc:()=>p});var n=r(87462),o=(r(67294),r(3905));const a={sidebar_position:6,description:"Run Prysm VCs in a DV"},i="Run Prysm validators as part of a DV Cluster",s={unversionedId:"int/quickstart/advanced/prysm-vc",id:"version-v0.17.0/int/quickstart/advanced/prysm-vc",title:"Run Prysm validators as part of a DV Cluster",description:"Run Prysm VCs in a DV",source:"@site/versioned_docs/version-v0.17.0/int/quickstart/advanced/prysm-vc.md",sourceDirName:"int/quickstart/advanced",slug:"/int/quickstart/advanced/prysm-vc",permalink:"/docs/int/quickstart/advanced/prysm-vc",draft:!1,editUrl:"https://github.com/ObolNetwork/obol-docs/edit/main/versioned_docs/version-v0.17.0/int/quickstart/advanced/prysm-vc.md",tags:[],version:"v0.17.0",sidebarPosition:6,frontMatter:{sidebar_position:6,description:"Run Prysm VCs in a DV"},sidebar:"tutorialSidebar",previous:{title:"Push Metrics to Obol Monitoring",permalink:"/docs/int/quickstart/advanced/obol-monitoring"},next:{title:"Self-Host a Relay",permalink:"/docs/int/quickstart/advanced/self-relay"}},c={},p=[],l={toc:p};function d(e){let{components:t,...r}=e;return(0,o.kt)("wrapper",(0,n.Z)({},l,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"run-prysm-validators-as-part-of-a-dv-cluster"},"Run Prysm validators as part of a DV Cluster"),(0,o.kt)("admonition",{type:"info"},(0,o.kt)("p",{parentName:"admonition"},"Support for prysm validator clients is in an experimental phase as prysm doesn't provide ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/prysmaticlabs/prysm/issues/11580"},"complete support"),"\nfor running their validator client on a beacon node REST API yet. Stay up to date on the latest support information for all validator clients at ",(0,o.kt)("a",{parentName:"p",href:"https://dvt.obol.tech"},"dvt.obol.tech"),".")),(0,o.kt)("p",null,"We have provided experimental support of prysm validator client through ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/ObolNetwork/charon-distributed-validator-cluster/blob/main/compose-prysm.yml"},"compose-prysm.yml"),"\nwhich needs a prysm beacon node to work alongside a REST based beacon node. Here are the steps to test prysm in a DV Cluster:"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},"Run the following command:",(0,o.kt)("pre",{parentName:"li"},(0,o.kt)("code",{parentName:"pre",className:"language-sh"},"cp docker-compose.override.yml.sample docker-compose.override.yml\n"))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("strong",{parentName:"li"},"Disable")," the VCs in ",(0,o.kt)("inlineCode",{parentName:"li"},"docker-compose.override.yml")," that are to be replaced by corresponding prysm VCs by un-commenting the ",(0,o.kt)("inlineCode",{parentName:"li"},"profiles")," field\n(",(0,o.kt)("a",{parentName:"li",href:"https://docs.docker.com/compose/profiles/"},"more details on profiles"),"). Also disable the prysm VCs that are not required in the cluster in ",(0,o.kt)("inlineCode",{parentName:"li"},"docker-compose.override.yml"),"."),(0,o.kt)("li",{parentName:"ol"},"Run the following command:",(0,o.kt)("pre",{parentName:"li"},(0,o.kt)("code",{parentName:"pre",className:"language-sh"},"docker compose -f docker-compose.yml -f compose-prysm.yml -f docker-compose.override.yml up --build\n")))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/434c4748.502ea32a.js b/assets/js/434c4748.502ea32a.js new file mode 100644 index 0000000000..515224364d --- /dev/null +++ b/assets/js/434c4748.502ea32a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkobol_docs=self.webpackChunkobol_docs||[]).push([[7690],{3905:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>m});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function o(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var l=r.createContext({}),u=function(e){var t=r.useContext(l),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},c=function(e){var t=u(e.components);return r.createElement(l.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},h=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,i=e.originalType,l=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),p=u(a),h=n,m=p["".concat(l,".").concat(h)]||p[h]||d[h]||i;return a?r.createElement(m,o(o({ref:t},c),{},{components:a})):r.createElement(m,o({ref:t},c))}));function m(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=a.length,o=new Array(i);o[0]=h;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[p]="string"==typeof e?e:n,o[1]=s;for(var u=2;u{a.r(t),a.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>p,frontMatter:()=>i,metadata:()=>s,toc:()=>u});var r=a(87462),n=(a(67294),a(3905));const i={sidebar_position:4,description:"Add monitoring credentials to help the Obol Team monitor the health of your cluster"},o="Getting Started Monitoring your Node",s={unversionedId:"int/quickstart/advanced/monitoring",id:"int/quickstart/advanced/monitoring",title:"Getting Started Monitoring your Node",description:"Add monitoring credentials to help the Obol Team monitor the health of your cluster",source:"@site/docs/int/quickstart/advanced/monitoring.md",sourceDirName:"int/quickstart/advanced",slug:"/int/quickstart/advanced/monitoring",permalink:"/docs/next/int/quickstart/advanced/monitoring",draft:!1,editUrl:"https://github.com/ObolNetwork/obol-docs/edit/main/docs/int/quickstart/advanced/monitoring.md",tags:[],version:"current",sidebarPosition:4,frontMatter:{sidebar_position:4,description:"Add monitoring credentials to help the Obol Team monitor the health of your cluster"},sidebar:"tutorialSidebar",previous:{title:"Split existing validator private keys",permalink:"/docs/next/int/quickstart/advanced/quickstart-split"},next:{title:"Push Metrics to Obol Monitoring",permalink:"/docs/next/int/quickstart/advanced/obol-monitoring"}},l={},u=[{value:"Pre-requisites",id:"pre-requisites",level:2},{value:"Import Pre-Configured Charon Dashboards",id:"import-pre-configured-charon-dashboards",level:2},{value:"Example Alerting Rules",id:"example-alerting-rules",level:2},{value:"Understanding Alert Rules",id:"understanding-alert-rules",level:2},{value:"Best Practices for Monitoring Charon Nodes & Cluster",id:"best-practices-for-monitoring-charon-nodes--cluster",level:2},{value:"Third-Party Services for Uptime Testing",id:"third-party-services-for-uptime-testing",level:2},{value:"Key metrics to watch to verify node health based on jobs",id:"key-metrics-to-watch-to-verify-node-health-based-on-jobs",level:2}],c={toc:u};function p(e){let{components:t,...a}=e;return(0,n.kt)("wrapper",(0,r.Z)({},c,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h1",{id:"getting-started-monitoring-your-node"},"Getting Started Monitoring your Node"),(0,n.kt)("p",null,"Welcome to this comprehensive guide, designed to assist you in effectively monitoring your Charon cluster and nodes, and setting up alerts based on specified parameters."),(0,n.kt)("h2",{id:"pre-requisites"},"Pre-requisites"),(0,n.kt)("p",null,"Ensure the following software are installed:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Docker: Find the installation guide for Ubuntu ",(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("a",{parentName:"strong",href:"https://docs.docker.com/engine/install/ubuntu/"},"here"))),(0,n.kt)("li",{parentName:"ul"},"Prometheus: You can install it using the guide available ",(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("a",{parentName:"strong",href:"https://prometheus.io/docs/prometheus/latest/installation/"},"here"))),(0,n.kt)("li",{parentName:"ul"},"Grafana: Follow this ",(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("a",{parentName:"strong",href:"https://grafana.com/docs/grafana/latest/setup-grafana/installation/"},"link"))," to install Grafana")),(0,n.kt)("h2",{id:"import-pre-configured-charon-dashboards"},"Import Pre-Configured Charon Dashboards"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},"Navigate to the ",(0,n.kt)("strong",{parentName:"p"},(0,n.kt)("a",{parentName:"strong",href:"https://github.com/ObolNetwork/monitoring/tree/main/dashboards"},"repository"))," that contains a variety of Grafana dashboards. For this demonstration, we will utilize the Charon Dashboard json.")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},"In your Grafana interface, create a new dashboard and select the import option.")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},'Copy the content of the Charon Dashboard json from the repository and paste it into the import box in Grafana. Click "Load" to proceed.')),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},'Finalize the import by clicking on the "Import" button. At this point, your dashboard should begin displaying metrics. Ensure your Charon client and Prometheus are operational for this to occur.'))),(0,n.kt)("h2",{id:"example-alerting-rules"},"Example Alerting Rules"),(0,n.kt)("p",null,'To create alerts for Node-Exporter, follow these steps based on the sample rules provided on the "Awesome Prometheus alerts" page:'),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"Visit the ",(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("a",{parentName:"strong",href:"https://samber.github.io/awesome-prometheus-alerts/rules.html#host-and-hardware"},"Awesome Prometheus alerts"))," page. Here, you will find lists of Prometheus alerting rules categorized by hardware, system, and services."),(0,n.kt)("li",{parentName:"ol"},"Depending on your need, select the category of alerts. For example, if you want to set up alerts for your system's CPU usage, click on the 'CPU' under the 'Host & Hardware' category."),(0,n.kt)("li",{parentName:"ol"},"On the selected page, you'll find specific alert rules like 'High CPU Usage'. Each rule will provide the PromQL expression, alert name, and a brief description of what the alert does. You can copy these rules."),(0,n.kt)("li",{parentName:"ol"},"Paste the copied rules into your Prometheus configuration file under the ",(0,n.kt)("inlineCode",{parentName:"li"},"rules")," section. Make sure you understand each rule before adding it to avoid unnecessary alerts."),(0,n.kt)("li",{parentName:"ol"},"Finally, save and apply the configuration file. Prometheus should now trigger alerts based on these rules.")),(0,n.kt)("p",null,"For alerts specific to Charon/Alpha, refer to the alerting rules available on this ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/ObolNetwork/monitoring/tree/main/alerting-rules"},"ObolNetwork/monitoring"),"."),(0,n.kt)("h2",{id:"understanding-alert-rules"},"Understanding Alert Rules"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("inlineCode",{parentName:"li"},"ClusterBeaconNodeDown"),"This alert is activated when the beacon node in a specified Alpha cluster is offline. The beacon node is crucial for validating transactions and producing new blocks. Its unavailability could disrupt the overall functionality of the cluster."),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("inlineCode",{parentName:"li"},"ClusterBeaconNodeSyncing"),"This alert indicates that the beacon node in a specified Alpha cluster is synchronizing, i.e., catching up with the latest blocks in the cluster."),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("inlineCode",{parentName:"li"},"ClusterNodeDown"),"This alert is activated when a node in a specified Alpha cluster is offline."),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("inlineCode",{parentName:"li"},"ClusterMissedAttestations"),":This alert indicates that there have been missed attestations in a specified Alpha cluster. Missed attestations may suggest that validators are not operating correctly, compromising the security and efficiency of the cluster."),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("inlineCode",{parentName:"li"},"ClusterInUnknownStatus"),": This alert is designed to activate when a node within the cluster is detected to be in an unknown state. The condition is evaluated by checking whether the maximum of the app_monitoring_readyz metric is 0."),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("inlineCode",{parentName:"li"},"ClusterInsufficientPeers"),":This alert is set to activate when the number of peers for a node in the Alpha M1 Cluster #1 is insufficient. The condition is evaluated by checking whether the maximum of the ",(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("inlineCode",{parentName:"strong"},"app_monitoring_readyz"))," equals 4."),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("inlineCode",{parentName:"li"},"ClusterFailureRate"),": This alert is activated when the failure rate of the Alpha M1 Cluster #1 exceeds a certain threshold."),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("inlineCode",{parentName:"li"},"ClusterVCMissingValidators"),": This alert is activated if any validators in the Alpha M1 Cluster #1 are missing."),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("inlineCode",{parentName:"li"},"ClusterHighPctFailedSyncMsgDuty"),': This alert is activated if a high percentage of sync message duties failed in the cluster. The alert is activated if the sum of the increase in failed duties tagged with "sync_message" in the last hour divided by the sum of the increase in total duties tagged with "sync_message" in the last hour is greater than 0.1.'),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("inlineCode",{parentName:"li"},"ClusterNumConnectedRelays"),": This alert is activated if the number of connected relays in the cluster falls to 0."),(0,n.kt)("li",{parentName:"ol"},"PeerPingLatency: 1. This alert is activated if the 90th percentile of the ping latency to the peers in a cluster exceeds 500ms within 2 minutes.")),(0,n.kt)("h2",{id:"best-practices-for-monitoring-charon-nodes--cluster"},"Best Practices for Monitoring Charon Nodes & Cluster"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Establish Baselines"),": Familiarize yourself with the normal operation metrics like CPU, memory, and network usage. This will help you detect anomalies."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Define Key Metrics"),": Set up alerts for essential metrics, encompassing both system-level and Charon-specific ones."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Configure Alerts"),": Based on these metrics, set up actionable alerts."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Monitor Network"),": Regularly assess the connectivity between nodes and the network."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Perform Regular Health Checks"),": Consistently evaluate the status of your nodes and clusters."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Monitor System Logs"),": Keep an eye on logs for error messages or unusual activities."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Assess Resource Usage"),": Ensure your nodes are neither over- nor under-utilized."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Automate Monitoring"),": Use automation to ensure no issues go undetected."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Conduct Drills"),": Regularly simulate failure scenarios to fine-tune your setup."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Update Regularly"),": Keep your nodes and clusters updated with the latest software versions.")),(0,n.kt)("h2",{id:"third-party-services-for-uptime-testing"},"Third-Party Services for Uptime Testing"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://updown.io/"},"updown.io")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://grafana.com/grafana/plugins/grafana-synthetic-monitoring-app/"},"Grafana synthetic Monitoring"))),(0,n.kt)("h2",{id:"key-metrics-to-watch-to-verify-node-health-based-on-jobs"},"Key metrics to watch to verify node health based on jobs"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Node Exporter:")),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"CPU Usage"),": High or spiking CPU usage can be a sign of a process demanding more resources than it should."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Memory Usage"),": If a node is consistently running out of memory, it could be due to a memory leak or simply under-provisioning."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Disk I/O"),": Slow disk operations can cause applications to hang or delay responses. High disk I/O can indicate storage performance issues or a sign of high load on the system."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Network Usage"),": High network traffic or packet loss can signal network configuration issues, or that a service is being overwhelmed by requests."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Disk Space"),": Running out of disk space can lead to application errors and data loss."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Uptime"),": The amount of time a system has been up without any restarts. Frequent restarts can indicate instability in the system."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Error Rates"),": The number of errors encountered by your application. This could be 4xx/5xx HTTP errors, exceptions, or any other kind of error your application may log."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Latency"),": The delay before a transfer of data begins following an instruction for its transfer."),(0,n.kt)("p",null,"It is also important to check:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"NTP clock skew"),(0,n.kt)("li",{parentName:"ul"},"Process restarts and failures (eg. through\xa0",(0,n.kt)("inlineCode",{parentName:"li"},"node_systemd"),")"),(0,n.kt)("li",{parentName:"ul"},"alert on high error and panic log counts.")))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4a6baf60.3edc040a.js b/assets/js/4a6baf60.3edc040a.js new file mode 100644 index 0000000000..938c71dc4e --- /dev/null +++ b/assets/js/4a6baf60.3edc040a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkobol_docs=self.webpackChunkobol_docs||[]).push([[79418],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>h});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=r.createContext({}),c=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=c(e.components);return r.createElement(l.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},k=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),d=c(n),k=a,h=d["".concat(l,".").concat(k)]||d[k]||u[k]||o;return n?r.createElement(h,i(i({ref:t},p),{},{components:n})):r.createElement(h,i({ref:t},p))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=k;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[d]="string"==typeof e?e:a,i[1]=s;for(var c=2;c{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>s,toc:()=>c});var r=n(87462),a=(n(67294),n(3905));const o={sidebar_position:3,description:"Split existing validator keys"},i="Split existing validator private keys",s={unversionedId:"int/quickstart/advanced/quickstart-split",id:"int/quickstart/advanced/quickstart-split",title:"Split existing validator private keys",description:"Split existing validator keys",source:"@site/docs/int/quickstart/advanced/quickstart-split.md",sourceDirName:"int/quickstart/advanced",slug:"/int/quickstart/advanced/quickstart-split",permalink:"/docs/next/int/quickstart/advanced/quickstart-split",draft:!1,editUrl:"https://github.com/ObolNetwork/obol-docs/edit/main/docs/int/quickstart/advanced/quickstart-split.md",tags:[],version:"current",sidebarPosition:3,frontMatter:{sidebar_position:3,description:"Split existing validator keys"},sidebar:"tutorialSidebar",previous:{title:"Run a cluster with MEV-Boost",permalink:"/docs/next/int/quickstart/advanced/quickstart-builder-api"},next:{title:"Getting Started Monitoring your Node",permalink:"/docs/next/int/quickstart/advanced/monitoring"}},l={},c=[{value:"Pre-requisites",id:"pre-requisites",level:2},{value:"Step 1. Clone the charon repo and copy existing keystore files",id:"step-1-clone-the-charon-repo-and-copy-existing-keystore-files",level:2},{value:"Step 2. Split the keys using the charon docker command",id:"step-2-split-the-keys-using-the-charon-docker-command",level:2}],p={toc:c};function d(e){let{components:t,...n}=e;return(0,a.kt)("wrapper",(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"split-existing-validator-private-keys"},"Split existing validator private keys"),(0,a.kt)("admonition",{type:"caution"},(0,a.kt)("p",{parentName:"admonition"},"Charon is in an alpha state and should be used with caution according to its ",(0,a.kt)("a",{parentName:"p",href:"https://obol.tech/terms.pdf"},"Terms of Use"),"."),(0,a.kt)("p",{parentName:"admonition"},"This process should only be used if you want to split an ",(0,a.kt)("em",{parentName:"p"},"existing validator private key")," into multiple private key shares for use in a Distributed Validator Cluster. If your existing validator is not properly shut down before the Distributed Validator starts, your validator may be slashed."),(0,a.kt)("p",{parentName:"admonition"},"If you are starting a new validator, you should follow a ",(0,a.kt)("a",{parentName:"p",href:"/docs/next/int/quickstart/"},"quickstart guide")," instead.")),(0,a.kt)("p",null,"Split an existing Ethereum validator key into multiple key shares for use in an ",(0,a.kt)("a",{parentName:"p",href:"../../key-concepts#distributed-validator-cluster"},"Obol Distributed Validator Cluster"),"."),(0,a.kt)("h2",{id:"pre-requisites"},"Pre-requisites"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Ensure you have the existing validator keystores (the ones to split) and passwords."),(0,a.kt)("li",{parentName:"ul"},"Ensure you have ",(0,a.kt)("a",{parentName:"li",href:"https://docs.docker.com/engine/install/"},"docker")," installed."),(0,a.kt)("li",{parentName:"ul"},"Make sure ",(0,a.kt)("inlineCode",{parentName:"li"},"docker")," is running before executing the commands below.")),(0,a.kt)("h2",{id:"step-1-clone-the-charon-repo-and-copy-existing-keystore-files"},"Step 1. Clone the charon repo and copy existing keystore files"),(0,a.kt)("p",null,"Clone the ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/ObolNetwork/charon"},"charon")," repo."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-sh"},"# Clone the repo\ngit clone https://github.com/ObolNetwork/charon.git\n\n# Change directory\ncd charon/\n\n# Create a folder within this checked out repo\nmkdir split_keys\n")),(0,a.kt)("p",null,"Copy the existing validator ",(0,a.kt)("inlineCode",{parentName:"p"},"keystore.json")," files into this new folder. Alongside them, with a matching filename but ending with ",(0,a.kt)("inlineCode",{parentName:"p"},".txt")," should be the password to the keystore. E.g., ",(0,a.kt)("inlineCode",{parentName:"p"},"keystore-0.json")," ",(0,a.kt)("inlineCode",{parentName:"p"},"keystore-0.txt")),(0,a.kt)("p",null,"At the end of this process, you should have a tree like this:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-shell"},"\u251c\u2500\u2500 split_keys\n\u2502\xa0\xa0 \u251c\u2500\u2500 keystore-0.json\n\u2502\xa0\xa0 \u251c\u2500\u2500 keystore-0.txt\n\u2502\xa0\xa0 \u251c\u2500\u2500 keystore-1.json\n\u2502\xa0\xa0 \u251c\u2500\u2500 keystore-1.txt\n\u2502 ...\n\u2502\xa0\xa0 \u251c\u2500\u2500 keystore-*.json\n\u2502\xa0\xa0 \u251c\u2500\u2500 keystore-*.txt\n")),(0,a.kt)("h2",{id:"step-2-split-the-keys-using-the-charon-docker-command"},"Step 2. Split the keys using the charon docker command"),(0,a.kt)("p",null,"Run the following docker command to split the keys:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-shell"},'CHARON_VERSION= # E.g. v0.17.0\nCLUSTER_NAME= # The name of the cluster you want to create.\nWITHDRAWAL_ADDRESS= # The address you want to use for withdrawals.\nFEE_RECIPIENT_ADDRESS= # The address you want to use for fee payments.\nNODES= # The number of nodes in the cluster. \n\ndocker run --rm -v $(pwd):/opt/charon obolnetwork/charon:${CHARON_VERSION} create cluster --name="${CLUSTER_NAME}" --withdrawal-addresses="${WITHDRAWAL_ADDRESS}" --fee-recipient-addresses="${FEE_RECIPIENT_ADDRESS}" --split-existing-keys --split-keys-dir=/opt/charon/split_keys --nodes ${NODES} --network goerli\n')),(0,a.kt)("p",null,"The above command will create ",(0,a.kt)("inlineCode",{parentName:"p"},"validator_keys")," along with ",(0,a.kt)("inlineCode",{parentName:"p"},"cluster-lock.json")," in ",(0,a.kt)("inlineCode",{parentName:"p"},"./.charon/cluster")," for each node."),(0,a.kt)("p",null,"Command output:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-shell"},"***************** WARNING: Splitting keys **********************\n Please make sure any existing validator has been shut down for\n at least 2 finalised epochs before starting the charon cluster,\n otherwise slashing could occur. \n****************************************************************\n\nCreated charon cluster:\n --split-existing-keys=true\n\n.charon/cluster/\n\u251c\u2500 node[0-*]/ Directory for each node\n\u2502 \u251c\u2500 charon-enr-private-key Charon networking private key for node authentication\n\u2502 \u251c\u2500 cluster-lock.json Cluster lock defines the cluster lock file which is signed by all nodes\n\u2502 \u251c\u2500 validator_keys Validator keystores and password\n\u2502 \u2502 \u251c\u2500 keystore-*.json Validator private share key for duty signing\n\u2502 \u2502 \u251c\u2500 keystore-*.txt Keystore password files for keystore-*.json\n")),(0,a.kt)("p",null,"These split keys can now be used to start a charon cluster."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4a6baf60.f61b217f.js b/assets/js/4a6baf60.f61b217f.js deleted file mode 100644 index 603f31e6ab..0000000000 --- a/assets/js/4a6baf60.f61b217f.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkobol_docs=self.webpackChunkobol_docs||[]).push([[79418],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>h});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=r.createContext({}),c=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=c(e.components);return r.createElement(l.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},k=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),d=c(n),k=a,h=d["".concat(l,".").concat(k)]||d[k]||u[k]||o;return n?r.createElement(h,i(i({ref:t},p),{},{components:n})):r.createElement(h,i({ref:t},p))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=k;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[d]="string"==typeof e?e:a,i[1]=s;for(var c=2;c{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>s,toc:()=>c});var r=n(87462),a=(n(67294),n(3905));const o={sidebar_position:3,description:"Split existing validator keys"},i="Split existing validator private keys",s={unversionedId:"int/quickstart/advanced/quickstart-split",id:"int/quickstart/advanced/quickstart-split",title:"Split existing validator private keys",description:"Split existing validator keys",source:"@site/docs/int/quickstart/advanced/quickstart-split.md",sourceDirName:"int/quickstart/advanced",slug:"/int/quickstart/advanced/quickstart-split",permalink:"/docs/next/int/quickstart/advanced/quickstart-split",draft:!1,editUrl:"https://github.com/ObolNetwork/obol-docs/edit/main/docs/int/quickstart/advanced/quickstart-split.md",tags:[],version:"current",sidebarPosition:3,frontMatter:{sidebar_position:3,description:"Split existing validator keys"},sidebar:"tutorialSidebar",previous:{title:"Run a cluster with MEV-Boost",permalink:"/docs/next/int/quickstart/advanced/quickstart-builder-api"},next:{title:"Getting Started Monitoring your Node",permalink:"/docs/next/int/quickstart/advanced/monitoring-credentials"}},l={},c=[{value:"Pre-requisites",id:"pre-requisites",level:2},{value:"Step 1. Clone the charon repo and copy existing keystore files",id:"step-1-clone-the-charon-repo-and-copy-existing-keystore-files",level:2},{value:"Step 2. Split the keys using the charon docker command",id:"step-2-split-the-keys-using-the-charon-docker-command",level:2}],p={toc:c};function d(e){let{components:t,...n}=e;return(0,a.kt)("wrapper",(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"split-existing-validator-private-keys"},"Split existing validator private keys"),(0,a.kt)("admonition",{type:"caution"},(0,a.kt)("p",{parentName:"admonition"},"Charon is in an alpha state and should be used with caution according to its ",(0,a.kt)("a",{parentName:"p",href:"https://obol.tech/terms.pdf"},"Terms of Use"),"."),(0,a.kt)("p",{parentName:"admonition"},"This process should only be used if you want to split an ",(0,a.kt)("em",{parentName:"p"},"existing validator private key")," into multiple private key shares for use in a Distributed Validator Cluster. If your existing validator is not properly shut down before the Distributed Validator starts, your validator may be slashed."),(0,a.kt)("p",{parentName:"admonition"},"If you are starting a new validator, you should follow a ",(0,a.kt)("a",{parentName:"p",href:"/docs/next/int/quickstart/"},"quickstart guide")," instead.")),(0,a.kt)("p",null,"Split an existing Ethereum validator key into multiple key shares for use in an ",(0,a.kt)("a",{parentName:"p",href:"../../key-concepts#distributed-validator-cluster"},"Obol Distributed Validator Cluster"),"."),(0,a.kt)("h2",{id:"pre-requisites"},"Pre-requisites"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Ensure you have the existing validator keystores (the ones to split) and passwords."),(0,a.kt)("li",{parentName:"ul"},"Ensure you have ",(0,a.kt)("a",{parentName:"li",href:"https://docs.docker.com/engine/install/"},"docker")," installed."),(0,a.kt)("li",{parentName:"ul"},"Make sure ",(0,a.kt)("inlineCode",{parentName:"li"},"docker")," is running before executing the commands below.")),(0,a.kt)("h2",{id:"step-1-clone-the-charon-repo-and-copy-existing-keystore-files"},"Step 1. Clone the charon repo and copy existing keystore files"),(0,a.kt)("p",null,"Clone the ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/ObolNetwork/charon"},"charon")," repo."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-sh"},"# Clone the repo\ngit clone https://github.com/ObolNetwork/charon.git\n\n# Change directory\ncd charon/\n\n# Create a folder within this checked out repo\nmkdir split_keys\n")),(0,a.kt)("p",null,"Copy the existing validator ",(0,a.kt)("inlineCode",{parentName:"p"},"keystore.json")," files into this new folder. Alongside them, with a matching filename but ending with ",(0,a.kt)("inlineCode",{parentName:"p"},".txt")," should be the password to the keystore. E.g., ",(0,a.kt)("inlineCode",{parentName:"p"},"keystore-0.json")," ",(0,a.kt)("inlineCode",{parentName:"p"},"keystore-0.txt")),(0,a.kt)("p",null,"At the end of this process, you should have a tree like this:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-shell"},"\u251c\u2500\u2500 split_keys\n\u2502\xa0\xa0 \u251c\u2500\u2500 keystore-0.json\n\u2502\xa0\xa0 \u251c\u2500\u2500 keystore-0.txt\n\u2502\xa0\xa0 \u251c\u2500\u2500 keystore-1.json\n\u2502\xa0\xa0 \u251c\u2500\u2500 keystore-1.txt\n\u2502 ...\n\u2502\xa0\xa0 \u251c\u2500\u2500 keystore-*.json\n\u2502\xa0\xa0 \u251c\u2500\u2500 keystore-*.txt\n")),(0,a.kt)("h2",{id:"step-2-split-the-keys-using-the-charon-docker-command"},"Step 2. Split the keys using the charon docker command"),(0,a.kt)("p",null,"Run the following docker command to split the keys:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-shell"},'CHARON_VERSION= # E.g. v0.17.0\nCLUSTER_NAME= # The name of the cluster you want to create.\nWITHDRAWAL_ADDRESS= # The address you want to use for withdrawals.\nFEE_RECIPIENT_ADDRESS= # The address you want to use for fee payments.\nNODES= # The number of nodes in the cluster. \n\ndocker run --rm -v $(pwd):/opt/charon obolnetwork/charon:${CHARON_VERSION} create cluster --name="${CLUSTER_NAME}" --withdrawal-addresses="${WITHDRAWAL_ADDRESS}" --fee-recipient-addresses="${FEE_RECIPIENT_ADDRESS}" --split-existing-keys --split-keys-dir=/opt/charon/split_keys --nodes ${NODES} --network goerli\n')),(0,a.kt)("p",null,"The above command will create ",(0,a.kt)("inlineCode",{parentName:"p"},"validator_keys")," along with ",(0,a.kt)("inlineCode",{parentName:"p"},"cluster-lock.json")," in ",(0,a.kt)("inlineCode",{parentName:"p"},"./.charon/cluster")," for each node."),(0,a.kt)("p",null,"Command output:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-shell"},"***************** WARNING: Splitting keys **********************\n Please make sure any existing validator has been shut down for\n at least 2 finalised epochs before starting the charon cluster,\n otherwise slashing could occur. \n****************************************************************\n\nCreated charon cluster:\n --split-existing-keys=true\n\n.charon/cluster/\n\u251c\u2500 node[0-*]/ Directory for each node\n\u2502 \u251c\u2500 charon-enr-private-key Charon networking private key for node authentication\n\u2502 \u251c\u2500 cluster-lock.json Cluster lock defines the cluster lock file which is signed by all nodes\n\u2502 \u251c\u2500 validator_keys Validator keystores and password\n\u2502 \u2502 \u251c\u2500 keystore-*.json Validator private share key for duty signing\n\u2502 \u2502 \u251c\u2500 keystore-*.txt Keystore password files for keystore-*.json\n")),(0,a.kt)("p",null,"These split keys can now be used to start a charon cluster."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/5061904a.6bac9ea7.js b/assets/js/5061904a.6bac9ea7.js new file mode 100644 index 0000000000..2fc8351fd3 --- /dev/null +++ b/assets/js/5061904a.6bac9ea7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkobol_docs=self.webpackChunkobol_docs||[]).push([[57761],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>h});var r=n(67294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var l=r.createContext({}),c=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=c(e.components);return r.createElement(l.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},k=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),d=c(n),k=o,h=d["".concat(l,".").concat(k)]||d[k]||u[k]||a;return n?r.createElement(h,i(i({ref:t},p),{},{components:n})):r.createElement(h,i({ref:t},p))}));function h(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=k;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[d]="string"==typeof e?e:o,i[1]=s;for(var c=2;c{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>s,toc:()=>c});var r=n(87462),o=(n(67294),n(3905));const a={sidebar_position:3,description:"Split existing validator keys"},i="Split existing validator private keys",s={unversionedId:"int/quickstart/advanced/quickstart-split",id:"version-v0.17.0/int/quickstart/advanced/quickstart-split",title:"Split existing validator private keys",description:"Split existing validator keys",source:"@site/versioned_docs/version-v0.17.0/int/quickstart/advanced/quickstart-split.md",sourceDirName:"int/quickstart/advanced",slug:"/int/quickstart/advanced/quickstart-split",permalink:"/docs/int/quickstart/advanced/quickstart-split",draft:!1,editUrl:"https://github.com/ObolNetwork/obol-docs/edit/main/versioned_docs/version-v0.17.0/int/quickstart/advanced/quickstart-split.md",tags:[],version:"v0.17.0",sidebarPosition:3,frontMatter:{sidebar_position:3,description:"Split existing validator keys"},sidebar:"tutorialSidebar",previous:{title:"Run a cluster with MEV-Boost",permalink:"/docs/int/quickstart/advanced/quickstart-builder-api"},next:{title:"Getting Started Monitoring your Node",permalink:"/docs/int/quickstart/advanced/monitoring"}},l={},c=[{value:"Pre-requisites",id:"pre-requisites",level:2},{value:"Step 1. Clone the charon repo and copy existing keystore files",id:"step-1-clone-the-charon-repo-and-copy-existing-keystore-files",level:2},{value:"Step 2. Split the keys using the charon docker command",id:"step-2-split-the-keys-using-the-charon-docker-command",level:2}],p={toc:c};function d(e){let{components:t,...n}=e;return(0,o.kt)("wrapper",(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"split-existing-validator-private-keys"},"Split existing validator private keys"),(0,o.kt)("admonition",{type:"caution"},(0,o.kt)("p",{parentName:"admonition"},"Charon is in an alpha state and should be used with caution according to its ",(0,o.kt)("a",{parentName:"p",href:"https://obol.tech/terms.pdf"},"Terms of Use"),"."),(0,o.kt)("p",{parentName:"admonition"},"This process should only be used if you want to split an ",(0,o.kt)("em",{parentName:"p"},"existing validator private key")," into multiple private key shares for use in a Distributed Validator Cluster. If your existing validator is not properly shut down before the Distributed Validator starts, your validator may be slashed."),(0,o.kt)("p",{parentName:"admonition"},"If you are starting a new validator, you should follow a ",(0,o.kt)("a",{parentName:"p",href:"/docs/int/quickstart/"},"quickstart guide")," instead.")),(0,o.kt)("p",null,"Split an existing Ethereum validator key into multiple key shares for use in an ",(0,o.kt)("a",{parentName:"p",href:"../../key-concepts#distributed-validator-cluster"},"Obol Distributed Validator Cluster"),"."),(0,o.kt)("h2",{id:"pre-requisites"},"Pre-requisites"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Ensure you have the existing validator keystores (the ones to split) and passwords."),(0,o.kt)("li",{parentName:"ul"},"Ensure you have ",(0,o.kt)("a",{parentName:"li",href:"https://docs.docker.com/engine/install/"},"docker")," installed."),(0,o.kt)("li",{parentName:"ul"},"Make sure ",(0,o.kt)("inlineCode",{parentName:"li"},"docker")," is running before executing the commands below.")),(0,o.kt)("h2",{id:"step-1-clone-the-charon-repo-and-copy-existing-keystore-files"},"Step 1. Clone the charon repo and copy existing keystore files"),(0,o.kt)("p",null,"Clone the ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/ObolNetwork/charon"},"charon")," repo."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-sh"},"# Clone the repo\ngit clone https://github.com/ObolNetwork/charon.git\n\n# Change directory\ncd charon/\n\n# Create a folder within this checked out repo\nmkdir split_keys\n")),(0,o.kt)("p",null,"Copy the existing validator ",(0,o.kt)("inlineCode",{parentName:"p"},"keystore.json")," files into this new folder. Alongside them, with a matching filename but ending with ",(0,o.kt)("inlineCode",{parentName:"p"},".txt")," should be the password to the keystore. E.g., ",(0,o.kt)("inlineCode",{parentName:"p"},"keystore-0.json")," ",(0,o.kt)("inlineCode",{parentName:"p"},"keystore-0.txt")),(0,o.kt)("p",null,"At the end of this process, you should have a tree like this:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-shell"},"\u251c\u2500\u2500 split_keys\n\u2502\xa0\xa0 \u251c\u2500\u2500 keystore-0.json\n\u2502\xa0\xa0 \u251c\u2500\u2500 keystore-0.txt\n\u2502\xa0\xa0 \u251c\u2500\u2500 keystore-1.json\n\u2502\xa0\xa0 \u251c\u2500\u2500 keystore-1.txt\n\u2502 ...\n\u2502\xa0\xa0 \u251c\u2500\u2500 keystore-*.json\n\u2502\xa0\xa0 \u251c\u2500\u2500 keystore-*.txt\n")),(0,o.kt)("h2",{id:"step-2-split-the-keys-using-the-charon-docker-command"},"Step 2. Split the keys using the charon docker command"),(0,o.kt)("p",null,"Run the following docker command to split the keys:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-shell"},'CHARON_VERSION= # E.g. v0.17.0\nCLUSTER_NAME= # The name of the cluster you want to create.\nWITHDRAWAL_ADDRESS= # The address you want to use for withdrawals.\nFEE_RECIPIENT_ADDRESS= # The address you want to use for fee payments.\nNODES= # The number of nodes in the cluster. \n\ndocker run --rm -v $(pwd):/opt/charon obolnetwork/charon:${CHARON_VERSION} create cluster --name="${CLUSTER_NAME}" --withdrawal-addresses="${WITHDRAWAL_ADDRESS}" --fee-recipient-addresses="${FEE_RECIPIENT_ADDRESS}" --split-existing-keys --split-keys-dir=/opt/charon/split_keys --nodes ${NODES} --network goerli\n')),(0,o.kt)("p",null,"The above command will create ",(0,o.kt)("inlineCode",{parentName:"p"},"validator_keys")," along with ",(0,o.kt)("inlineCode",{parentName:"p"},"cluster-lock.json")," in ",(0,o.kt)("inlineCode",{parentName:"p"},"./.charon/cluster")," for each node."),(0,o.kt)("p",null,"Command output:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-shell"},"***************** WARNING: Splitting keys **********************\n Please make sure any existing validator has been shut down for\n at least 2 finalised epochs before starting the charon cluster,\n otherwise slashing could occur. \n****************************************************************\n\nCreated charon cluster:\n --split-existing-keys=true\n\n.charon/cluster/\n\u251c\u2500 node[0-*]/ Directory for each node\n\u2502 \u251c\u2500 charon-enr-private-key Charon networking private key for node authentication\n\u2502 \u251c\u2500 cluster-lock.json Cluster lock defines the cluster lock file which is signed by all nodes\n\u2502 \u251c\u2500 validator_keys Validator keystores and password\n\u2502 \u2502 \u251c\u2500 keystore-*.json Validator private share key for duty signing\n\u2502 \u2502 \u251c\u2500 keystore-*.txt Keystore password files for keystore-*.json\n")),(0,o.kt)("p",null,"These split keys can now be used to start a charon cluster."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/5061904a.8f7f8aa3.js b/assets/js/5061904a.8f7f8aa3.js deleted file mode 100644 index 2e45a2cec0..0000000000 --- a/assets/js/5061904a.8f7f8aa3.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkobol_docs=self.webpackChunkobol_docs||[]).push([[57761],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>h});var r=n(67294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var l=r.createContext({}),c=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=c(e.components);return r.createElement(l.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},k=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),d=c(n),k=o,h=d["".concat(l,".").concat(k)]||d[k]||u[k]||a;return n?r.createElement(h,i(i({ref:t},p),{},{components:n})):r.createElement(h,i({ref:t},p))}));function h(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=k;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[d]="string"==typeof e?e:o,i[1]=s;for(var c=2;c{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>s,toc:()=>c});var r=n(87462),o=(n(67294),n(3905));const a={sidebar_position:3,description:"Split existing validator keys"},i="Split existing validator private keys",s={unversionedId:"int/quickstart/advanced/quickstart-split",id:"version-v0.17.0/int/quickstart/advanced/quickstart-split",title:"Split existing validator private keys",description:"Split existing validator keys",source:"@site/versioned_docs/version-v0.17.0/int/quickstart/advanced/quickstart-split.md",sourceDirName:"int/quickstart/advanced",slug:"/int/quickstart/advanced/quickstart-split",permalink:"/docs/int/quickstart/advanced/quickstart-split",draft:!1,editUrl:"https://github.com/ObolNetwork/obol-docs/edit/main/versioned_docs/version-v0.17.0/int/quickstart/advanced/quickstart-split.md",tags:[],version:"v0.17.0",sidebarPosition:3,frontMatter:{sidebar_position:3,description:"Split existing validator keys"},sidebar:"tutorialSidebar",previous:{title:"Run a cluster with MEV-Boost",permalink:"/docs/int/quickstart/advanced/quickstart-builder-api"},next:{title:"Getting Started Monitoring your Node",permalink:"/docs/int/quickstart/advanced/monitoring-credentials"}},l={},c=[{value:"Pre-requisites",id:"pre-requisites",level:2},{value:"Step 1. Clone the charon repo and copy existing keystore files",id:"step-1-clone-the-charon-repo-and-copy-existing-keystore-files",level:2},{value:"Step 2. Split the keys using the charon docker command",id:"step-2-split-the-keys-using-the-charon-docker-command",level:2}],p={toc:c};function d(e){let{components:t,...n}=e;return(0,o.kt)("wrapper",(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"split-existing-validator-private-keys"},"Split existing validator private keys"),(0,o.kt)("admonition",{type:"caution"},(0,o.kt)("p",{parentName:"admonition"},"Charon is in an alpha state and should be used with caution according to its ",(0,o.kt)("a",{parentName:"p",href:"https://obol.tech/terms.pdf"},"Terms of Use"),"."),(0,o.kt)("p",{parentName:"admonition"},"This process should only be used if you want to split an ",(0,o.kt)("em",{parentName:"p"},"existing validator private key")," into multiple private key shares for use in a Distributed Validator Cluster. If your existing validator is not properly shut down before the Distributed Validator starts, your validator may be slashed."),(0,o.kt)("p",{parentName:"admonition"},"If you are starting a new validator, you should follow a ",(0,o.kt)("a",{parentName:"p",href:"/docs/int/quickstart/"},"quickstart guide")," instead.")),(0,o.kt)("p",null,"Split an existing Ethereum validator key into multiple key shares for use in an ",(0,o.kt)("a",{parentName:"p",href:"../../key-concepts#distributed-validator-cluster"},"Obol Distributed Validator Cluster"),"."),(0,o.kt)("h2",{id:"pre-requisites"},"Pre-requisites"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Ensure you have the existing validator keystores (the ones to split) and passwords."),(0,o.kt)("li",{parentName:"ul"},"Ensure you have ",(0,o.kt)("a",{parentName:"li",href:"https://docs.docker.com/engine/install/"},"docker")," installed."),(0,o.kt)("li",{parentName:"ul"},"Make sure ",(0,o.kt)("inlineCode",{parentName:"li"},"docker")," is running before executing the commands below.")),(0,o.kt)("h2",{id:"step-1-clone-the-charon-repo-and-copy-existing-keystore-files"},"Step 1. Clone the charon repo and copy existing keystore files"),(0,o.kt)("p",null,"Clone the ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/ObolNetwork/charon"},"charon")," repo."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-sh"},"# Clone the repo\ngit clone https://github.com/ObolNetwork/charon.git\n\n# Change directory\ncd charon/\n\n# Create a folder within this checked out repo\nmkdir split_keys\n")),(0,o.kt)("p",null,"Copy the existing validator ",(0,o.kt)("inlineCode",{parentName:"p"},"keystore.json")," files into this new folder. Alongside them, with a matching filename but ending with ",(0,o.kt)("inlineCode",{parentName:"p"},".txt")," should be the password to the keystore. E.g., ",(0,o.kt)("inlineCode",{parentName:"p"},"keystore-0.json")," ",(0,o.kt)("inlineCode",{parentName:"p"},"keystore-0.txt")),(0,o.kt)("p",null,"At the end of this process, you should have a tree like this:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-shell"},"\u251c\u2500\u2500 split_keys\n\u2502\xa0\xa0 \u251c\u2500\u2500 keystore-0.json\n\u2502\xa0\xa0 \u251c\u2500\u2500 keystore-0.txt\n\u2502\xa0\xa0 \u251c\u2500\u2500 keystore-1.json\n\u2502\xa0\xa0 \u251c\u2500\u2500 keystore-1.txt\n\u2502 ...\n\u2502\xa0\xa0 \u251c\u2500\u2500 keystore-*.json\n\u2502\xa0\xa0 \u251c\u2500\u2500 keystore-*.txt\n")),(0,o.kt)("h2",{id:"step-2-split-the-keys-using-the-charon-docker-command"},"Step 2. Split the keys using the charon docker command"),(0,o.kt)("p",null,"Run the following docker command to split the keys:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-shell"},'CHARON_VERSION= # E.g. v0.17.0\nCLUSTER_NAME= # The name of the cluster you want to create.\nWITHDRAWAL_ADDRESS= # The address you want to use for withdrawals.\nFEE_RECIPIENT_ADDRESS= # The address you want to use for fee payments.\nNODES= # The number of nodes in the cluster. \n\ndocker run --rm -v $(pwd):/opt/charon obolnetwork/charon:${CHARON_VERSION} create cluster --name="${CLUSTER_NAME}" --withdrawal-addresses="${WITHDRAWAL_ADDRESS}" --fee-recipient-addresses="${FEE_RECIPIENT_ADDRESS}" --split-existing-keys --split-keys-dir=/opt/charon/split_keys --nodes ${NODES} --network goerli\n')),(0,o.kt)("p",null,"The above command will create ",(0,o.kt)("inlineCode",{parentName:"p"},"validator_keys")," along with ",(0,o.kt)("inlineCode",{parentName:"p"},"cluster-lock.json")," in ",(0,o.kt)("inlineCode",{parentName:"p"},"./.charon/cluster")," for each node."),(0,o.kt)("p",null,"Command output:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-shell"},"***************** WARNING: Splitting keys **********************\n Please make sure any existing validator has been shut down for\n at least 2 finalised epochs before starting the charon cluster,\n otherwise slashing could occur. \n****************************************************************\n\nCreated charon cluster:\n --split-existing-keys=true\n\n.charon/cluster/\n\u251c\u2500 node[0-*]/ Directory for each node\n\u2502 \u251c\u2500 charon-enr-private-key Charon networking private key for node authentication\n\u2502 \u251c\u2500 cluster-lock.json Cluster lock defines the cluster lock file which is signed by all nodes\n\u2502 \u251c\u2500 validator_keys Validator keystores and password\n\u2502 \u2502 \u251c\u2500 keystore-*.json Validator private share key for duty signing\n\u2502 \u2502 \u251c\u2500 keystore-*.txt Keystore password files for keystore-*.json\n")),(0,o.kt)("p",null,"These split keys can now be used to start a charon cluster."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/533666b3.98338146.js b/assets/js/533666b3.98338146.js deleted file mode 100644 index 2f2e3ac7e8..0000000000 --- a/assets/js/533666b3.98338146.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkobol_docs=self.webpackChunkobol_docs||[]).push([[89120],{3905:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>m});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function o(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var l=r.createContext({}),u=function(e){var t=r.useContext(l),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},c=function(e){var t=u(e.components);return r.createElement(l.Provider,{value:t},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},h=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,i=e.originalType,l=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),d=u(a),h=n,m=d["".concat(l,".").concat(h)]||d[h]||p[h]||i;return a?r.createElement(m,o(o({ref:t},c),{},{components:a})):r.createElement(m,o({ref:t},c))}));function m(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=a.length,o=new Array(i);o[0]=h;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[d]="string"==typeof e?e:n,o[1]=s;for(var u=2;u{a.r(t),a.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>d,frontMatter:()=>i,metadata:()=>s,toc:()=>u});var r=a(87462),n=(a(67294),a(3905));const i={sidebar_position:4,description:"Add monitoring credentials to help the Obol Team monitor the health of your cluster"},o="Getting Started Monitoring your Node",s={unversionedId:"int/quickstart/advanced/monitoring-credentials",id:"version-v0.17.0/int/quickstart/advanced/monitoring-credentials",title:"Getting Started Monitoring your Node",description:"Add monitoring credentials to help the Obol Team monitor the health of your cluster",source:"@site/versioned_docs/version-v0.17.0/int/quickstart/advanced/monitoring-credentials.md",sourceDirName:"int/quickstart/advanced",slug:"/int/quickstart/advanced/monitoring-credentials",permalink:"/docs/int/quickstart/advanced/monitoring-credentials",draft:!1,editUrl:"https://github.com/ObolNetwork/obol-docs/edit/main/versioned_docs/version-v0.17.0/int/quickstart/advanced/monitoring-credentials.md",tags:[],version:"v0.17.0",sidebarPosition:4,frontMatter:{sidebar_position:4,description:"Add monitoring credentials to help the Obol Team monitor the health of your cluster"},sidebar:"tutorialSidebar",previous:{title:"Split existing validator private keys",permalink:"/docs/int/quickstart/advanced/quickstart-split"},next:{title:"Push Metrics to Obol Monitoring",permalink:"/docs/int/quickstart/advanced/push-metrics"}},l={},u=[{value:"Pre-requisites",id:"pre-requisites",level:2},{value:"Import Pre-Configured Charon Dashboards",id:"import-pre-configured-charon-dashboards",level:2},{value:"Example Alerting Rules",id:"example-alerting-rules",level:2},{value:"Understanding Alert Rules",id:"understanding-alert-rules",level:2},{value:"Best Practices for Monitoring Charon Nodes & Cluster",id:"best-practices-for-monitoring-charon-nodes--cluster",level:2},{value:"Third-Party Services for Uptime Testing",id:"third-party-services-for-uptime-testing",level:2},{value:"Key metrics to watch to verify node health based on jobs",id:"key-metrics-to-watch-to-verify-node-health-based-on-jobs",level:2}],c={toc:u};function d(e){let{components:t,...a}=e;return(0,n.kt)("wrapper",(0,r.Z)({},c,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h1",{id:"getting-started-monitoring-your-node"},"Getting Started Monitoring your Node"),(0,n.kt)("p",null,"Welcome to this comprehensive guide, designed to assist you in effectively monitoring your Charon cluster and nodes, and setting up alerts based on specified parameters."),(0,n.kt)("h2",{id:"pre-requisites"},"Pre-requisites"),(0,n.kt)("p",null,"Ensure the following software are installed:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Docker: Find the installation guide for Ubuntu ",(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("a",{parentName:"strong",href:"https://docs.docker.com/engine/install/ubuntu/"},"here"))),(0,n.kt)("li",{parentName:"ul"},"Prometheus: You can install it using the guide available ",(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("a",{parentName:"strong",href:"https://prometheus.io/docs/prometheus/latest/installation/"},"here"))),(0,n.kt)("li",{parentName:"ul"},"Grafana: Follow this ",(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("a",{parentName:"strong",href:"https://grafana.com/docs/grafana/latest/setup-grafana/installation/"},"link"))," to install Grafana")),(0,n.kt)("h2",{id:"import-pre-configured-charon-dashboards"},"Import Pre-Configured Charon Dashboards"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},"Navigate to the ",(0,n.kt)("strong",{parentName:"p"},(0,n.kt)("a",{parentName:"strong",href:"https://github.com/ObolNetwork/monitoring/tree/main/dashboards"},"repository"))," that contains a variety of Grafana dashboards. For this demonstration, we will utilize the Charon Dashboard json.")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},"In your Grafana interface, create a new dashboard and select the import option.")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},'Copy the content of the Charon Dashboard json from the repository and paste it into the import box in Grafana. Click "Load" to proceed.')),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},'Finalize the import by clicking on the "Import" button. At this point, your dashboard should begin displaying metrics. Ensure your Charon client and Prometheus are operational for this to occur.'))),(0,n.kt)("h2",{id:"example-alerting-rules"},"Example Alerting Rules"),(0,n.kt)("p",null,'To create alerts for Node-Exporter, follow these steps based on the sample rules provided on the "Awesome Prometheus alerts" page:'),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"Visit the ",(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("a",{parentName:"strong",href:"https://samber.github.io/awesome-prometheus-alerts/rules.html#host-and-hardware"},"Awesome Prometheus alerts"))," page. Here, you will find lists of Prometheus alerting rules categorized by hardware, system, and services."),(0,n.kt)("li",{parentName:"ol"},"Depending on your need, select the category of alerts. For example, if you want to set up alerts for your system's CPU usage, click on the 'CPU' under the 'Host & Hardware' category."),(0,n.kt)("li",{parentName:"ol"},"On the selected page, you'll find specific alert rules like 'High CPU Usage'. Each rule will provide the PromQL expression, alert name, and a brief description of what the alert does. You can copy these rules."),(0,n.kt)("li",{parentName:"ol"},"Paste the copied rules into your Prometheus configuration file under the ",(0,n.kt)("inlineCode",{parentName:"li"},"rules")," section. Make sure you understand each rule before adding it to avoid unnecessary alerts."),(0,n.kt)("li",{parentName:"ol"},"Finally, save and apply the configuration file. Prometheus should now trigger alerts based on these rules.")),(0,n.kt)("p",null,"For alerts specific to Charon/Alpha, refer to the alerting rules available on this ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/ObolNetwork/monitoring/tree/main/alerting-rules"},"ObolNetwork/monitoring"),"."),(0,n.kt)("h2",{id:"understanding-alert-rules"},"Understanding Alert Rules"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("inlineCode",{parentName:"li"},"ClusterBeaconNodeDown"),"This alert is activated when the beacon node in a specified Alpha cluster is offline. The beacon node is crucial for validating transactions and producing new blocks. Its unavailability could disrupt the overall functionality of the cluster."),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("inlineCode",{parentName:"li"},"ClusterBeaconNodeSyncing"),"This alert indicates that the beacon node in a specified Alpha cluster is synchronizing, i.e., catching up with the latest blocks in the cluster."),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("inlineCode",{parentName:"li"},"ClusterNodeDown"),"This alert is activated when a node in a specified Alpha cluster is offline."),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("inlineCode",{parentName:"li"},"ClusterMissedAttestations"),":This alert indicates that there have been missed attestations in a specified Alpha cluster. Missed attestations may suggest that validators are not operating correctly, compromising the security and efficiency of the cluster."),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("inlineCode",{parentName:"li"},"ClusterInUnknownStatus"),": This alert is designed to activate when a node within the cluster is detected to be in an unknown state. The condition is evaluated by checking whether the maximum of the app_monitoring_readyz metric is 0."),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("inlineCode",{parentName:"li"},"ClusterInsufficientPeers"),":This alert is set to activate when the number of peers for a node in the Alpha M1 Cluster #1 is insufficient. The condition is evaluated by checking whether the maximum of the ",(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("inlineCode",{parentName:"strong"},"app_monitoring_readyz"))," equals 4."),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("inlineCode",{parentName:"li"},"ClusterFailureRate"),": This alert is activated when the failure rate of the Alpha M1 Cluster #1 exceeds a certain threshold."),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("inlineCode",{parentName:"li"},"ClusterVCMissingValidators"),": This alert is activated if any validators in the Alpha M1 Cluster #1 are missing."),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("inlineCode",{parentName:"li"},"ClusterHighPctFailedSyncMsgDuty"),': This alert is activated if a high percentage of sync message duties failed in the cluster. The alert is activated if the sum of the increase in failed duties tagged with "sync_message" in the last hour divided by the sum of the increase in total duties tagged with "sync_message" in the last hour is greater than 0.1.'),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("inlineCode",{parentName:"li"},"ClusterNumConnectedRelays"),": This alert is activated if the number of connected relays in the cluster falls to 0."),(0,n.kt)("li",{parentName:"ol"},"PeerPingLatency: 1. This alert is activated if the 90th percentile of the ping latency to the peers in a cluster exceeds 500ms within 2 minutes.")),(0,n.kt)("h2",{id:"best-practices-for-monitoring-charon-nodes--cluster"},"Best Practices for Monitoring Charon Nodes & Cluster"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Establish Baselines"),": Familiarize yourself with the normal operation metrics like CPU, memory, and network usage. This will help you detect anomalies."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Define Key Metrics"),": Set up alerts for essential metrics, encompassing both system-level and Charon-specific ones."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Configure Alerts"),": Based on these metrics, set up actionable alerts."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Monitor Network"),": Regularly assess the connectivity between nodes and the network."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Perform Regular Health Checks"),": Consistently evaluate the status of your nodes and clusters."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Monitor System Logs"),": Keep an eye on logs for error messages or unusual activities."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Assess Resource Usage"),": Ensure your nodes are neither over- nor under-utilized."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Automate Monitoring"),": Use automation to ensure no issues go undetected."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Conduct Drills"),": Regularly simulate failure scenarios to fine-tune your setup."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Update Regularly"),": Keep your nodes and clusters updated with the latest software versions.")),(0,n.kt)("h2",{id:"third-party-services-for-uptime-testing"},"Third-Party Services for Uptime Testing"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://updown.io/"},"updown.io")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://grafana.com/grafana/plugins/grafana-synthetic-monitoring-app/"},"Grafana synthetic Monitoring"))),(0,n.kt)("h2",{id:"key-metrics-to-watch-to-verify-node-health-based-on-jobs"},"Key metrics to watch to verify node health based on jobs"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Node Exporter:")),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"CPU Usage"),": High or spiking CPU usage can be a sign of a process demanding more resources than it should."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Memory Usage"),": If a node is consistently running out of memory, it could be due to a memory leak or simply under-provisioning."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Disk I/O"),": Slow disk operations can cause applications to hang or delay responses. High disk I/O can indicate storage performance issues or a sign of high load on the system."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Network Usage"),": High network traffic or packet loss can signal network configuration issues, or that a service is being overwhelmed by requests."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Disk Space"),": Running out of disk space can lead to application errors and data loss."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Uptime"),": The amount of time a system has been up without any restarts. Frequent restarts can indicate instability in the system."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Error Rates"),": The number of errors encountered by your application. This could be 4xx/5xx HTTP errors, exceptions, or any other kind of error your application may log."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Latency"),": The delay before a transfer of data begins following an instruction for its transfer."),(0,n.kt)("p",null,"It is also important to check:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"NTP clock skew"),(0,n.kt)("li",{parentName:"ul"},"Process restarts and failures (eg. through\xa0",(0,n.kt)("inlineCode",{parentName:"li"},"node_systemd"),")"),(0,n.kt)("li",{parentName:"ul"},"alert on high error and panic log counts.")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/75d521f5.f39d4f68.js b/assets/js/75d521f5.f5eefb68.js similarity index 57% rename from assets/js/75d521f5.f39d4f68.js rename to assets/js/75d521f5.f5eefb68.js index cd8edfb1c3..229eac6b56 100644 --- a/assets/js/75d521f5.f39d4f68.js +++ b/assets/js/75d521f5.f5eefb68.js @@ -1 +1 @@ -"use strict";(self.webpackChunkobol_docs=self.webpackChunkobol_docs||[]).push([[21003],{3905:(e,t,r)=>{r.d(t,{Zo:()=>l,kt:()=>y});var n=r(67294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var c=n.createContext({}),p=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},l=function(e){var t=p(e.components);return n.createElement(c.Provider,{value:t},e.children)},m="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,c=e.parentName,l=s(e,["components","mdxType","originalType","parentName"]),m=p(r),u=o,y=m["".concat(c,".").concat(u)]||m[u]||d[u]||a;return r?n.createElement(y,i(i({ref:t},l),{},{components:r})):n.createElement(y,i({ref:t},l))}));function y(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=u;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s[m]="string"==typeof e?e:o,i[1]=s;for(var p=2;p{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>m,frontMatter:()=>a,metadata:()=>s,toc:()=>p});var n=r(87462),o=(r(67294),r(3905));const a={sidebar_position:6,description:"Run Prysm VCs in a DV"},i="Run Prysm validators as part of a DV Cluster",s={unversionedId:"int/quickstart/advanced/prysm-vc",id:"int/quickstart/advanced/prysm-vc",title:"Run Prysm validators as part of a DV Cluster",description:"Run Prysm VCs in a DV",source:"@site/docs/int/quickstart/advanced/prysm-vc.md",sourceDirName:"int/quickstart/advanced",slug:"/int/quickstart/advanced/prysm-vc",permalink:"/docs/next/int/quickstart/advanced/prysm-vc",draft:!1,editUrl:"https://github.com/ObolNetwork/obol-docs/edit/main/docs/int/quickstart/advanced/prysm-vc.md",tags:[],version:"current",sidebarPosition:6,frontMatter:{sidebar_position:6,description:"Run Prysm VCs in a DV"},sidebar:"tutorialSidebar",previous:{title:"Push Metrics to Obol Monitoring",permalink:"/docs/next/int/quickstart/advanced/push-metrics"},next:{title:"Self-Host a Relay",permalink:"/docs/next/int/quickstart/advanced/self-relay"}},c={},p=[],l={toc:p};function m(e){let{components:t,...r}=e;return(0,o.kt)("wrapper",(0,n.Z)({},l,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"run-prysm-validators-as-part-of-a-dv-cluster"},"Run Prysm validators as part of a DV Cluster"),(0,o.kt)("admonition",{type:"info"},(0,o.kt)("p",{parentName:"admonition"},"Support for prysm validator clients is in an experimental phase as prysm doesn't provide ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/prysmaticlabs/prysm/issues/11580"},"complete support"),"\nfor running their validator client on a beacon node REST API yet. Stay up to date on the latest support information for all validator clients at ",(0,o.kt)("a",{parentName:"p",href:"https://dvt.obol.tech"},"dvt.obol.tech"),".")),(0,o.kt)("p",null,"We have provided experimental support of prysm validator client through ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/ObolNetwork/charon-distributed-validator-cluster/blob/main/compose-prysm.yml"},"compose-prysm.yml"),"\nwhich needs a prysm beacon node to work alongside a REST based beacon node. Here are the steps to test prysm in a DV Cluster:"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},"Run the following command:",(0,o.kt)("pre",{parentName:"li"},(0,o.kt)("code",{parentName:"pre",className:"language-sh"},"cp docker-compose.override.yml.sample docker-compose.override.yml\n"))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("strong",{parentName:"li"},"Disable")," the VCs in ",(0,o.kt)("inlineCode",{parentName:"li"},"docker-compose.override.yml")," that are to be replaced by corresponding prysm VCs by un-commenting the ",(0,o.kt)("inlineCode",{parentName:"li"},"profiles")," field\n(",(0,o.kt)("a",{parentName:"li",href:"https://docs.docker.com/compose/profiles/"},"more details on profiles"),"). Also disable the prysm VCs that are not required in the cluster in ",(0,o.kt)("inlineCode",{parentName:"li"},"docker-compose.override.yml"),"."),(0,o.kt)("li",{parentName:"ol"},"Run the following command:",(0,o.kt)("pre",{parentName:"li"},(0,o.kt)("code",{parentName:"pre",className:"language-sh"},"docker compose -f docker-compose.yml -f compose-prysm.yml -f docker-compose.override.yml up --build\n")))))}m.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkobol_docs=self.webpackChunkobol_docs||[]).push([[21003],{3905:(e,t,r)=>{r.d(t,{Zo:()=>l,kt:()=>y});var n=r(67294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var c=n.createContext({}),p=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},l=function(e){var t=p(e.components);return n.createElement(c.Provider,{value:t},e.children)},m="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,c=e.parentName,l=s(e,["components","mdxType","originalType","parentName"]),m=p(r),u=o,y=m["".concat(c,".").concat(u)]||m[u]||d[u]||a;return r?n.createElement(y,i(i({ref:t},l),{},{components:r})):n.createElement(y,i({ref:t},l))}));function y(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=u;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s[m]="string"==typeof e?e:o,i[1]=s;for(var p=2;p{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>m,frontMatter:()=>a,metadata:()=>s,toc:()=>p});var n=r(87462),o=(r(67294),r(3905));const a={sidebar_position:6,description:"Run Prysm VCs in a DV"},i="Run Prysm validators as part of a DV Cluster",s={unversionedId:"int/quickstart/advanced/prysm-vc",id:"int/quickstart/advanced/prysm-vc",title:"Run Prysm validators as part of a DV Cluster",description:"Run Prysm VCs in a DV",source:"@site/docs/int/quickstart/advanced/prysm-vc.md",sourceDirName:"int/quickstart/advanced",slug:"/int/quickstart/advanced/prysm-vc",permalink:"/docs/next/int/quickstart/advanced/prysm-vc",draft:!1,editUrl:"https://github.com/ObolNetwork/obol-docs/edit/main/docs/int/quickstart/advanced/prysm-vc.md",tags:[],version:"current",sidebarPosition:6,frontMatter:{sidebar_position:6,description:"Run Prysm VCs in a DV"},sidebar:"tutorialSidebar",previous:{title:"Push Metrics to Obol Monitoring",permalink:"/docs/next/int/quickstart/advanced/obol-monitoring"},next:{title:"Self-Host a Relay",permalink:"/docs/next/int/quickstart/advanced/self-relay"}},c={},p=[],l={toc:p};function m(e){let{components:t,...r}=e;return(0,o.kt)("wrapper",(0,n.Z)({},l,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"run-prysm-validators-as-part-of-a-dv-cluster"},"Run Prysm validators as part of a DV Cluster"),(0,o.kt)("admonition",{type:"info"},(0,o.kt)("p",{parentName:"admonition"},"Support for prysm validator clients is in an experimental phase as prysm doesn't provide ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/prysmaticlabs/prysm/issues/11580"},"complete support"),"\nfor running their validator client on a beacon node REST API yet. Stay up to date on the latest support information for all validator clients at ",(0,o.kt)("a",{parentName:"p",href:"https://dvt.obol.tech"},"dvt.obol.tech"),".")),(0,o.kt)("p",null,"We have provided experimental support of prysm validator client through ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/ObolNetwork/charon-distributed-validator-cluster/blob/main/compose-prysm.yml"},"compose-prysm.yml"),"\nwhich needs a prysm beacon node to work alongside a REST based beacon node. Here are the steps to test prysm in a DV Cluster:"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},"Run the following command:",(0,o.kt)("pre",{parentName:"li"},(0,o.kt)("code",{parentName:"pre",className:"language-sh"},"cp docker-compose.override.yml.sample docker-compose.override.yml\n"))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("strong",{parentName:"li"},"Disable")," the VCs in ",(0,o.kt)("inlineCode",{parentName:"li"},"docker-compose.override.yml")," that are to be replaced by corresponding prysm VCs by un-commenting the ",(0,o.kt)("inlineCode",{parentName:"li"},"profiles")," field\n(",(0,o.kt)("a",{parentName:"li",href:"https://docs.docker.com/compose/profiles/"},"more details on profiles"),"). Also disable the prysm VCs that are not required in the cluster in ",(0,o.kt)("inlineCode",{parentName:"li"},"docker-compose.override.yml"),"."),(0,o.kt)("li",{parentName:"ol"},"Run the following command:",(0,o.kt)("pre",{parentName:"li"},(0,o.kt)("code",{parentName:"pre",className:"language-sh"},"docker compose -f docker-compose.yml -f compose-prysm.yml -f docker-compose.override.yml up --build\n")))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/86c502f0.abafa961.js b/assets/js/86c502f0.abafa961.js new file mode 100644 index 0000000000..21d5f43dbb --- /dev/null +++ b/assets/js/86c502f0.abafa961.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkobol_docs=self.webpackChunkobol_docs||[]).push([[79208],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>b});var r=n(67294);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(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function a(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=r.createContext({}),c=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},p=function(e){var t=c(e.components);return r.createElement(s.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,i=e.originalType,s=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),d=c(n),m=o,b=d["".concat(s,".").concat(m)]||d[m]||u[m]||i;return n?r.createElement(b,a(a({ref:t},p),{},{components:n})):r.createElement(b,a({ref:t},p))}));function b(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=n.length,a=new Array(i);a[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[d]="string"==typeof e?e:o,a[1]=l;for(var c=2;c{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>a,default:()=>d,frontMatter:()=>i,metadata:()=>l,toc:()=>c});var r=n(87462),o=(n(67294),n(3905));const i={sidebar_position:5,description:"Add monitoring credentials to help the Obol Team monitor the health of your cluster"},a="Push Metrics to Obol Monitoring",l={unversionedId:"int/quickstart/advanced/obol-monitoring",id:"int/quickstart/advanced/obol-monitoring",title:"Push Metrics to Obol Monitoring",description:"Add monitoring credentials to help the Obol Team monitor the health of your cluster",source:"@site/docs/int/quickstart/advanced/obol-monitoring.md",sourceDirName:"int/quickstart/advanced",slug:"/int/quickstart/advanced/obol-monitoring",permalink:"/docs/next/int/quickstart/advanced/obol-monitoring",draft:!1,editUrl:"https://github.com/ObolNetwork/obol-docs/edit/main/docs/int/quickstart/advanced/obol-monitoring.md",tags:[],version:"current",sidebarPosition:5,frontMatter:{sidebar_position:5,description:"Add monitoring credentials to help the Obol Team monitor the health of your cluster"},sidebar:"tutorialSidebar",previous:{title:"Getting Started Monitoring your Node",permalink:"/docs/next/int/quickstart/advanced/monitoring"},next:{title:"Run Prysm validators as part of a DV Cluster",permalink:"/docs/next/int/quickstart/advanced/prysm-vc"}},s={},c=[],p={toc:c};function d(e){let{components:t,...n}=e;return(0,o.kt)("wrapper",(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"push-metrics-to-obol-monitoring"},"Push Metrics to Obol Monitoring"),(0,o.kt)("admonition",{type:"info"},(0,o.kt)("p",{parentName:"admonition"},"This is ",(0,o.kt)("strong",{parentName:"p"},"optional")," and does not confer any special privileges within the Obol Network.")),(0,o.kt)("p",null,"You may have been provided with ",(0,o.kt)("strong",{parentName:"p"},"Monitoring Credentials")," used to push distributed validator metrics to Obol's central prometheus cluster to monitor, analyze, and improve your Distributed Validator Cluster's performance."),(0,o.kt)("p",null,"The provided credentials needs to be added in ",(0,o.kt)("inlineCode",{parentName:"p"},"prometheus/prometheus.yml")," replacing ",(0,o.kt)("inlineCode",{parentName:"p"},"$PROM_REMOTE_WRITE_TOKEN")," and will look like:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre"},"obol20!tnt8U!C...\n")),(0,o.kt)("p",null,"The updated ",(0,o.kt)("inlineCode",{parentName:"p"},"prometheus/prometheus.yml")," file should look like:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre"},"global:\n scrape_interval: 30s # Set the scrape interval to every 30 seconds.\n evaluation_interval: 30s # Evaluate rules every 30 seconds.\n\nremote_write:\n - url: https://vm.monitoring.gcp.obol.tech/write\n authorization:\n credentials: obol20!tnt8U!C...\n\nscrape_configs:\n - job_name: 'charon'\n static_configs:\n - targets: ['charon:3620']\n - job_name: \"lodestar\"\n static_configs:\n - targets: [ \"lodestar:5064\" ]\n - job_name: 'node-exporter'\n static_configs:\n - targets: ['node-exporter:9100']\n")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/935f2afb.b631864f.js b/assets/js/935f2afb.b631864f.js deleted file mode 100644 index 7874e4feff..0000000000 --- a/assets/js/935f2afb.b631864f.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkobol_docs=self.webpackChunkobol_docs||[]).push([[80053],{1109:t=>{t.exports=JSON.parse('{"pluginId":"default","version":"current","label":"Next","banner":"unreleased","badge":true,"noIndex":false,"className":"docs-version-current","isLast":false,"docsSidebars":{"tutorialSidebar":[{"type":"link","label":"Introduction","href":"/docs/next/intro","docId":"intro"},{"type":"category","label":"Getting started","collapsible":true,"collapsed":false,"items":[{"type":"link","label":"Overview","href":"/docs/next/int/Overview","docId":"int/Overview"},{"type":"link","label":"Key concepts","href":"/docs/next/int/key-concepts","docId":"int/key-concepts"},{"type":"category","label":"Quickstart Guides","collapsible":true,"collapsed":false,"items":[{"type":"category","label":"Create a DV alone","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Run a test cluster locally","href":"/docs/next/int/quickstart/alone/test-locally","docId":"int/quickstart/alone/test-locally"},{"type":"link","label":"Create the private key shares","href":"/docs/next/int/quickstart/alone/create-keys","docId":"int/quickstart/alone/create-keys"},{"type":"link","label":"Deploy the cluster","href":"/docs/next/int/quickstart/alone/deploy","docId":"int/quickstart/alone/deploy"}]},{"type":"category","label":"Create a DV as a group","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Creator & Leader Journey","href":"/docs/next/int/quickstart/group/quickstart-group-leader-creator","docId":"int/quickstart/group/quickstart-group-leader-creator"},{"type":"link","label":"Operator Journey","href":"/docs/next/int/quickstart/group/quickstart-group-operator","docId":"int/quickstart/group/quickstart-group-operator"},{"type":"link","label":"Using the CLI","href":"/docs/next/int/quickstart/group/quickstart-cli","docId":"int/quickstart/group/quickstart-cli"}],"href":"/docs/next/int/quickstart/group/"},{"type":"link","label":"Activate a DV","href":"/docs/next/int/quickstart/activate-dv","docId":"int/quickstart/activate-dv"},{"type":"link","label":"Exit a DV","href":"/docs/next/int/quickstart/quickstart-exit","docId":"int/quickstart/quickstart-exit"},{"type":"link","label":"Update a DV","href":"/docs/next/int/quickstart/update","docId":"int/quickstart/update"},{"type":"link","label":"Run a DV on mainnet","href":"/docs/next/int/quickstart/quickstart-mainnet","docId":"int/quickstart/quickstart-mainnet"},{"type":"category","label":"Advanced Guides","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Create a DV using the SDK","href":"/docs/next/int/quickstart/advanced/quickstart-sdk","docId":"int/quickstart/advanced/quickstart-sdk"},{"type":"link","label":"Run a cluster with MEV-Boost","href":"/docs/next/int/quickstart/advanced/quickstart-builder-api","docId":"int/quickstart/advanced/quickstart-builder-api"},{"type":"link","label":"Split existing validator private keys","href":"/docs/next/int/quickstart/advanced/quickstart-split","docId":"int/quickstart/advanced/quickstart-split"},{"type":"link","label":"Getting Started Monitoring your Node","href":"/docs/next/int/quickstart/advanced/monitoring-credentials","docId":"int/quickstart/advanced/monitoring-credentials"},{"type":"link","label":"Push Metrics to Obol Monitoring","href":"/docs/next/int/quickstart/advanced/push-metrics","docId":"int/quickstart/advanced/push-metrics"},{"type":"link","label":"Run Prysm validators as part of a DV Cluster","href":"/docs/next/int/quickstart/advanced/prysm-vc","docId":"int/quickstart/advanced/prysm-vc"},{"type":"link","label":"Self-Host a Relay","href":"/docs/next/int/quickstart/advanced/self-relay","docId":"int/quickstart/advanced/self-relay"},{"type":"link","label":"Advanced Docker Configs","href":"/docs/next/int/quickstart/advanced/adv-docker-configs","docId":"int/quickstart/advanced/adv-docker-configs"},{"type":"link","label":"Combine DV private key shares","href":"/docs/next/int/quickstart/advanced/quickstart-combine","docId":"int/quickstart/advanced/quickstart-combine"}]}],"href":"/docs/next/int/quickstart/"},{"type":"category","label":"FAQ","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Frequently asked questions","href":"/docs/next/int/faq/general","docId":"int/faq/general"},{"type":"link","label":"Errors & Resolutions","href":"/docs/next/int/faq/errors","docId":"int/faq/errors"},{"type":"link","label":"Centralization risks and mitigation","href":"/docs/next/int/faq/risks","docId":"int/faq/risks"},{"type":"link","label":"Charon threat model","href":"/docs/next/int/faq/threat_model","docId":"int/faq/threat_model"}]}]},{"type":"category","label":"Charon","collapsible":true,"collapsed":false,"items":[{"type":"link","label":"Introduction","href":"/docs/next/charon/intro","docId":"charon/intro"},{"type":"link","label":"Distributed Key Generation","href":"/docs/next/charon/dkg","docId":"charon/dkg"},{"type":"link","label":"Cluster configuration","href":"/docs/next/charon/cluster-configuration","docId":"charon/cluster-configuration"},{"type":"link","label":"Charon networking","href":"/docs/next/charon/networking","docId":"charon/networking"},{"type":"link","label":"CLI reference","href":"/docs/next/charon/charon-cli-reference","docId":"charon/charon-cli-reference"}]},{"type":"category","label":"DV Launchpad","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Introduction","href":"/docs/next/dvl/intro","docId":"dvl/intro"}]},{"type":"category","label":"Smart contracts","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Obol Manager Contracts","href":"/docs/next/sc/introducing-obol-managers","docId":"sc/introducing-obol-managers"}]},{"type":"link","label":"Testnets","href":"/docs/next/testnet","docId":"testnet"},{"type":"category","label":"Security","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Overview","href":"/docs/next/sec/overview","docId":"sec/overview"},{"type":"link","label":"Roadmap","href":"/docs/next/sec/roadmap","docId":"sec/roadmap"},{"type":"link","label":"Obol Bug Bounty","href":"/docs/next/sec/bug-bounty","docId":"sec/bug-bounty"},{"type":"link","label":"Contacts","href":"/docs/next/sec/contact","docId":"sec/contact"}]},{"type":"category","label":"Contribution & Feedback","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Filing a bug report","href":"/docs/next/cg/bug-report","docId":"cg/bug-report"},{"type":"link","label":"Documentation standards","href":"/docs/next/cg/docs","docId":"cg/docs"},{"type":"link","label":"Feedback","href":"/docs/next/cg/feedback","docId":"cg/feedback"}]},{"type":"category","label":"Further reading","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Ethereum resources","href":"/docs/next/fr/eth","docId":"fr/eth"},{"type":"link","label":"Golang resources","href":"/docs/next/fr/golang","docId":"fr/golang"}]}]},"docs":{"cg/bug-report":{"id":"cg/bug-report","title":"Filing a bug report","description":"Bug reports are critical to the rapid development of Obol. In order to make the process quick and efficient for all parties, it is best to follow some common reporting etiquette when filing to avoid double issues or miscommunications.","sidebar":"tutorialSidebar"},"cg/docs":{"id":"cg/docs","title":"Documentation standards","description":"This section outlines the formatting standards presented within this documentation. In order to maintain continuity and quality, all pull requests must best conform to the specifics below.","sidebar":"tutorialSidebar"},"cg/feedback":{"id":"cg/feedback","title":"Feedback","description":"If you have followed our quickstart guides, and whether you succeeded or failed at running the distributed validator successfully, we would like to hear your feedback on the process and where you encountered difficulties.","sidebar":"tutorialSidebar"},"charon/charon-cli-reference":{"id":"charon/charon-cli-reference","title":"CLI reference","description":"A go-based middleware client for taking part in Distributed Validator clusters.","sidebar":"tutorialSidebar"},"charon/cluster-configuration":{"id":"charon/cluster-configuration","title":"Cluster configuration","description":"Documenting a Distributed Validator Cluster in a standardised file format","sidebar":"tutorialSidebar"},"charon/dkg":{"id":"charon/dkg","title":"Distributed Key Generation","description":"Generating private keys for a Distributed Validator requires a Distributed Key Generation (DKG) Ceremony.","sidebar":"tutorialSidebar"},"charon/intro":{"id":"charon/intro","title":"Introduction","description":"Charon - The Distributed Validator Client","sidebar":"tutorialSidebar"},"charon/networking":{"id":"charon/networking","title":"Charon networking","description":"Networking","sidebar":"tutorialSidebar"},"dvl/intro":{"id":"dvl/intro","title":"Introduction","description":"A dapp to securely create Distributed Validators alone or with a group.","sidebar":"tutorialSidebar"},"fr/eth":{"id":"fr/eth","title":"Ethereum resources","description":"This page serves material necessary to catch up with the current state of Ethereum proof-of-stake development and provides readers with the base knowledge required to assist with the growth of Obol. Whether you are an expert on all things Ethereum or are new to the blockchain world entirely, there are appropriate resources here that will help you get up to speed.","sidebar":"tutorialSidebar"},"fr/golang":{"id":"fr/golang","title":"Golang resources","description":"* The Go Programming Language \\\\(Only recommended book\\\\)","sidebar":"tutorialSidebar"},"int/faq/errors":{"id":"int/faq/errors","title":"Errors & Resolutions","description":"Errors & Resolutions","sidebar":"tutorialSidebar"},"int/faq/general":{"id":"int/faq/general","title":"Frequently asked questions","description":"Frequently asked questions","sidebar":"tutorialSidebar"},"int/faq/risks":{"id":"int/faq/risks","title":"Centralization risks and mitigation","description":"Centralization Risks and mitigation","sidebar":"tutorialSidebar"},"int/faq/threat_model":{"id":"int/faq/threat_model","title":"Charon threat model","description":"Threat model for a Distributed Validator","sidebar":"tutorialSidebar"},"int/key-concepts":{"id":"int/key-concepts","title":"Key concepts","description":"Some of the key terms in the field of Distributed Validator Technology","sidebar":"tutorialSidebar"},"int/Overview":{"id":"int/Overview","title":"Overview","description":"An overview of the Obol network","sidebar":"tutorialSidebar"},"int/quickstart/activate-dv":{"id":"int/quickstart/activate-dv","title":"Activate a DV","description":"Activate the Distributed Validator using the deposit contract","sidebar":"tutorialSidebar"},"int/quickstart/advanced/adv-docker-configs":{"id":"int/quickstart/advanced/adv-docker-configs","title":"Advanced Docker Configs","description":"Use advanced docker-compose features to have more flexibility and power to change the default configuration.","sidebar":"tutorialSidebar"},"int/quickstart/advanced/monitoring-credentials":{"id":"int/quickstart/advanced/monitoring-credentials","title":"Getting Started Monitoring your Node","description":"Add monitoring credentials to help the Obol Team monitor the health of your cluster","sidebar":"tutorialSidebar"},"int/quickstart/advanced/prysm-vc":{"id":"int/quickstart/advanced/prysm-vc","title":"Run Prysm validators as part of a DV Cluster","description":"Run Prysm VCs in a DV","sidebar":"tutorialSidebar"},"int/quickstart/advanced/push-metrics":{"id":"int/quickstart/advanced/push-metrics","title":"Push Metrics to Obol Monitoring","description":"Add monitoring credentials to help the Obol Team monitor the health of your cluster","sidebar":"tutorialSidebar"},"int/quickstart/advanced/quickstart-builder-api":{"id":"int/quickstart/advanced/quickstart-builder-api","title":"Run a cluster with MEV-Boost","description":"Run a distributed validator cluster with the builder API (MEV-Boost)","sidebar":"tutorialSidebar"},"int/quickstart/advanced/quickstart-combine":{"id":"int/quickstart/advanced/quickstart-combine","title":"Combine DV private key shares","description":"Combine distributed validator private key shares to recover the validator private key.","sidebar":"tutorialSidebar"},"int/quickstart/advanced/quickstart-sdk":{"id":"int/quickstart/advanced/quickstart-sdk","title":"Create a DV using the SDK","description":"Create a DV cluster using the Obol Typescript SDK","sidebar":"tutorialSidebar"},"int/quickstart/advanced/quickstart-split":{"id":"int/quickstart/advanced/quickstart-split","title":"Split existing validator private keys","description":"Split existing validator keys","sidebar":"tutorialSidebar"},"int/quickstart/advanced/self-relay":{"id":"int/quickstart/advanced/self-relay","title":"Self-Host a Relay","description":"Self-host a relay","sidebar":"tutorialSidebar"},"int/quickstart/alone/create-keys":{"id":"int/quickstart/alone/create-keys","title":"Create the private key shares","description":"Run all nodes in a distributed validator cluster","sidebar":"tutorialSidebar"},"int/quickstart/alone/deploy":{"id":"int/quickstart/alone/deploy","title":"Deploy the cluster","description":"Move the private key shares to the nodes and run the cluster","sidebar":"tutorialSidebar"},"int/quickstart/alone/test-locally":{"id":"int/quickstart/alone/test-locally","title":"Run a test cluster locally","description":"Test the solo cluster locally","sidebar":"tutorialSidebar"},"int/quickstart/group/index":{"id":"int/quickstart/group/index","title":"Run a cluster as a group","description":"Charon is in an alpha state and should be used with caution according to its Terms of Use.","sidebar":"tutorialSidebar"},"int/quickstart/group/quickstart-cli":{"id":"int/quickstart/group/quickstart-cli","title":"Using the CLI","description":"Run one node in a multi-operator distributed validator cluster using the CLI","sidebar":"tutorialSidebar"},"int/quickstart/group/quickstart-group-leader-creator":{"id":"int/quickstart/group/quickstart-group-leader-creator","title":"Creator & Leader Journey","description":"A leader/creator creates a cluster configuration to be shared with operators","sidebar":"tutorialSidebar"},"int/quickstart/group/quickstart-group-operator":{"id":"int/quickstart/group/quickstart-group-operator","title":"Operator Journey","description":"A node operator joins a DV cluster","sidebar":"tutorialSidebar"},"int/quickstart/index":{"id":"int/quickstart/index","title":"Quickstart Guides","description":"Charon is in an alpha state and should be used with caution according to its Terms of Use.","sidebar":"tutorialSidebar"},"int/quickstart/quickstart-exit":{"id":"int/quickstart/quickstart-exit","title":"Exit a DV","description":"Exit a validator","sidebar":"tutorialSidebar"},"int/quickstart/quickstart-mainnet":{"id":"int/quickstart/quickstart-mainnet","title":"Run a DV on mainnet","description":"Run a cluster on mainnet","sidebar":"tutorialSidebar"},"int/quickstart/update":{"id":"int/quickstart/update","title":"Update a DV","description":"Update your DV cluster with the latest Charon release","sidebar":"tutorialSidebar"},"intro":{"id":"intro","title":"Introduction","description":"Welcome to the Multi-Operator Validator Network","sidebar":"tutorialSidebar"},"sc/introducing-obol-managers":{"id":"sc/introducing-obol-managers","title":"Obol Manager Contracts","description":"Smart contracts for managing Distributed Validators","sidebar":"tutorialSidebar"},"sec/bug-bounty":{"id":"sec/bug-bounty","title":"Obol Bug Bounty","description":"Bug Bounty Policy","sidebar":"tutorialSidebar"},"sec/contact":{"id":"sec/contact","title":"Contacts","description":"Security Contacts","sidebar":"tutorialSidebar"},"sec/overview":{"id":"sec/overview","title":"Overview","description":"Security Overview","sidebar":"tutorialSidebar"},"sec/roadmap":{"id":"sec/roadmap","title":"Roadmap","description":"Security Roadmap","sidebar":"tutorialSidebar"},"testnet":{"id":"testnet","title":"Testnets","description":"Obol testnets roadmap","sidebar":"tutorialSidebar"}}}')}}]); \ No newline at end of file diff --git a/assets/js/935f2afb.d2c21577.js b/assets/js/935f2afb.d2c21577.js new file mode 100644 index 0000000000..c4b91da11b --- /dev/null +++ b/assets/js/935f2afb.d2c21577.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkobol_docs=self.webpackChunkobol_docs||[]).push([[80053],{1109:t=>{t.exports=JSON.parse('{"pluginId":"default","version":"current","label":"Next","banner":"unreleased","badge":true,"noIndex":false,"className":"docs-version-current","isLast":false,"docsSidebars":{"tutorialSidebar":[{"type":"link","label":"Introduction","href":"/docs/next/intro","docId":"intro"},{"type":"category","label":"Getting started","collapsible":true,"collapsed":false,"items":[{"type":"link","label":"Overview","href":"/docs/next/int/Overview","docId":"int/Overview"},{"type":"link","label":"Key concepts","href":"/docs/next/int/key-concepts","docId":"int/key-concepts"},{"type":"category","label":"Quickstart Guides","collapsible":true,"collapsed":false,"items":[{"type":"category","label":"Create a DV alone","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Run a test cluster locally","href":"/docs/next/int/quickstart/alone/test-locally","docId":"int/quickstart/alone/test-locally"},{"type":"link","label":"Create the private key shares","href":"/docs/next/int/quickstart/alone/create-keys","docId":"int/quickstart/alone/create-keys"},{"type":"link","label":"Deploy the cluster","href":"/docs/next/int/quickstart/alone/deploy","docId":"int/quickstart/alone/deploy"}]},{"type":"category","label":"Create a DV as a group","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Creator & Leader Journey","href":"/docs/next/int/quickstart/group/quickstart-group-leader-creator","docId":"int/quickstart/group/quickstart-group-leader-creator"},{"type":"link","label":"Operator Journey","href":"/docs/next/int/quickstart/group/quickstart-group-operator","docId":"int/quickstart/group/quickstart-group-operator"},{"type":"link","label":"Using the CLI","href":"/docs/next/int/quickstart/group/quickstart-cli","docId":"int/quickstart/group/quickstart-cli"}],"href":"/docs/next/int/quickstart/group/"},{"type":"link","label":"Activate a DV","href":"/docs/next/int/quickstart/activate-dv","docId":"int/quickstart/activate-dv"},{"type":"link","label":"Exit a DV","href":"/docs/next/int/quickstart/quickstart-exit","docId":"int/quickstart/quickstart-exit"},{"type":"link","label":"Update a DV","href":"/docs/next/int/quickstart/update","docId":"int/quickstart/update"},{"type":"link","label":"Run a DV on mainnet","href":"/docs/next/int/quickstart/quickstart-mainnet","docId":"int/quickstart/quickstart-mainnet"},{"type":"category","label":"Advanced Guides","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Create a DV using the SDK","href":"/docs/next/int/quickstart/advanced/quickstart-sdk","docId":"int/quickstart/advanced/quickstart-sdk"},{"type":"link","label":"Run a cluster with MEV-Boost","href":"/docs/next/int/quickstart/advanced/quickstart-builder-api","docId":"int/quickstart/advanced/quickstart-builder-api"},{"type":"link","label":"Split existing validator private keys","href":"/docs/next/int/quickstart/advanced/quickstart-split","docId":"int/quickstart/advanced/quickstart-split"},{"type":"link","label":"Getting Started Monitoring your Node","href":"/docs/next/int/quickstart/advanced/monitoring","docId":"int/quickstart/advanced/monitoring"},{"type":"link","label":"Push Metrics to Obol Monitoring","href":"/docs/next/int/quickstart/advanced/obol-monitoring","docId":"int/quickstart/advanced/obol-monitoring"},{"type":"link","label":"Run Prysm validators as part of a DV Cluster","href":"/docs/next/int/quickstart/advanced/prysm-vc","docId":"int/quickstart/advanced/prysm-vc"},{"type":"link","label":"Self-Host a Relay","href":"/docs/next/int/quickstart/advanced/self-relay","docId":"int/quickstart/advanced/self-relay"},{"type":"link","label":"Advanced Docker Configs","href":"/docs/next/int/quickstart/advanced/adv-docker-configs","docId":"int/quickstart/advanced/adv-docker-configs"},{"type":"link","label":"Combine DV private key shares","href":"/docs/next/int/quickstart/advanced/quickstart-combine","docId":"int/quickstart/advanced/quickstart-combine"}]}],"href":"/docs/next/int/quickstart/"},{"type":"category","label":"FAQ","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Frequently asked questions","href":"/docs/next/int/faq/general","docId":"int/faq/general"},{"type":"link","label":"Errors & Resolutions","href":"/docs/next/int/faq/errors","docId":"int/faq/errors"},{"type":"link","label":"Centralization risks and mitigation","href":"/docs/next/int/faq/risks","docId":"int/faq/risks"},{"type":"link","label":"Charon threat model","href":"/docs/next/int/faq/threat_model","docId":"int/faq/threat_model"}]}]},{"type":"category","label":"Charon","collapsible":true,"collapsed":false,"items":[{"type":"link","label":"Introduction","href":"/docs/next/charon/intro","docId":"charon/intro"},{"type":"link","label":"Distributed Key Generation","href":"/docs/next/charon/dkg","docId":"charon/dkg"},{"type":"link","label":"Cluster configuration","href":"/docs/next/charon/cluster-configuration","docId":"charon/cluster-configuration"},{"type":"link","label":"Charon networking","href":"/docs/next/charon/networking","docId":"charon/networking"},{"type":"link","label":"CLI reference","href":"/docs/next/charon/charon-cli-reference","docId":"charon/charon-cli-reference"}]},{"type":"category","label":"DV Launchpad","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Introduction","href":"/docs/next/dvl/intro","docId":"dvl/intro"}]},{"type":"category","label":"Smart contracts","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Obol Manager Contracts","href":"/docs/next/sc/introducing-obol-managers","docId":"sc/introducing-obol-managers"}]},{"type":"link","label":"Testnets","href":"/docs/next/testnet","docId":"testnet"},{"type":"category","label":"Security","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Overview","href":"/docs/next/sec/overview","docId":"sec/overview"},{"type":"link","label":"Roadmap","href":"/docs/next/sec/roadmap","docId":"sec/roadmap"},{"type":"link","label":"Obol Bug Bounty","href":"/docs/next/sec/bug-bounty","docId":"sec/bug-bounty"},{"type":"link","label":"Contacts","href":"/docs/next/sec/contact","docId":"sec/contact"}]},{"type":"category","label":"Contribution & Feedback","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Filing a bug report","href":"/docs/next/cg/bug-report","docId":"cg/bug-report"},{"type":"link","label":"Documentation standards","href":"/docs/next/cg/docs","docId":"cg/docs"},{"type":"link","label":"Feedback","href":"/docs/next/cg/feedback","docId":"cg/feedback"}]},{"type":"category","label":"Further reading","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Ethereum resources","href":"/docs/next/fr/eth","docId":"fr/eth"},{"type":"link","label":"Golang resources","href":"/docs/next/fr/golang","docId":"fr/golang"}]}]},"docs":{"cg/bug-report":{"id":"cg/bug-report","title":"Filing a bug report","description":"Bug reports are critical to the rapid development of Obol. In order to make the process quick and efficient for all parties, it is best to follow some common reporting etiquette when filing to avoid double issues or miscommunications.","sidebar":"tutorialSidebar"},"cg/docs":{"id":"cg/docs","title":"Documentation standards","description":"This section outlines the formatting standards presented within this documentation. In order to maintain continuity and quality, all pull requests must best conform to the specifics below.","sidebar":"tutorialSidebar"},"cg/feedback":{"id":"cg/feedback","title":"Feedback","description":"If you have followed our quickstart guides, and whether you succeeded or failed at running the distributed validator successfully, we would like to hear your feedback on the process and where you encountered difficulties.","sidebar":"tutorialSidebar"},"charon/charon-cli-reference":{"id":"charon/charon-cli-reference","title":"CLI reference","description":"A go-based middleware client for taking part in Distributed Validator clusters.","sidebar":"tutorialSidebar"},"charon/cluster-configuration":{"id":"charon/cluster-configuration","title":"Cluster configuration","description":"Documenting a Distributed Validator Cluster in a standardised file format","sidebar":"tutorialSidebar"},"charon/dkg":{"id":"charon/dkg","title":"Distributed Key Generation","description":"Generating private keys for a Distributed Validator requires a Distributed Key Generation (DKG) Ceremony.","sidebar":"tutorialSidebar"},"charon/intro":{"id":"charon/intro","title":"Introduction","description":"Charon - The Distributed Validator Client","sidebar":"tutorialSidebar"},"charon/networking":{"id":"charon/networking","title":"Charon networking","description":"Networking","sidebar":"tutorialSidebar"},"dvl/intro":{"id":"dvl/intro","title":"Introduction","description":"A dapp to securely create Distributed Validators alone or with a group.","sidebar":"tutorialSidebar"},"fr/eth":{"id":"fr/eth","title":"Ethereum resources","description":"This page serves material necessary to catch up with the current state of Ethereum proof-of-stake development and provides readers with the base knowledge required to assist with the growth of Obol. Whether you are an expert on all things Ethereum or are new to the blockchain world entirely, there are appropriate resources here that will help you get up to speed.","sidebar":"tutorialSidebar"},"fr/golang":{"id":"fr/golang","title":"Golang resources","description":"* The Go Programming Language \\\\(Only recommended book\\\\)","sidebar":"tutorialSidebar"},"int/faq/errors":{"id":"int/faq/errors","title":"Errors & Resolutions","description":"Errors & Resolutions","sidebar":"tutorialSidebar"},"int/faq/general":{"id":"int/faq/general","title":"Frequently asked questions","description":"Frequently asked questions","sidebar":"tutorialSidebar"},"int/faq/risks":{"id":"int/faq/risks","title":"Centralization risks and mitigation","description":"Centralization Risks and mitigation","sidebar":"tutorialSidebar"},"int/faq/threat_model":{"id":"int/faq/threat_model","title":"Charon threat model","description":"Threat model for a Distributed Validator","sidebar":"tutorialSidebar"},"int/key-concepts":{"id":"int/key-concepts","title":"Key concepts","description":"Some of the key terms in the field of Distributed Validator Technology","sidebar":"tutorialSidebar"},"int/Overview":{"id":"int/Overview","title":"Overview","description":"An overview of the Obol network","sidebar":"tutorialSidebar"},"int/quickstart/activate-dv":{"id":"int/quickstart/activate-dv","title":"Activate a DV","description":"Activate the Distributed Validator using the deposit contract","sidebar":"tutorialSidebar"},"int/quickstart/advanced/adv-docker-configs":{"id":"int/quickstart/advanced/adv-docker-configs","title":"Advanced Docker Configs","description":"Use advanced docker-compose features to have more flexibility and power to change the default configuration.","sidebar":"tutorialSidebar"},"int/quickstart/advanced/monitoring":{"id":"int/quickstart/advanced/monitoring","title":"Getting Started Monitoring your Node","description":"Add monitoring credentials to help the Obol Team monitor the health of your cluster","sidebar":"tutorialSidebar"},"int/quickstart/advanced/obol-monitoring":{"id":"int/quickstart/advanced/obol-monitoring","title":"Push Metrics to Obol Monitoring","description":"Add monitoring credentials to help the Obol Team monitor the health of your cluster","sidebar":"tutorialSidebar"},"int/quickstart/advanced/prysm-vc":{"id":"int/quickstart/advanced/prysm-vc","title":"Run Prysm validators as part of a DV Cluster","description":"Run Prysm VCs in a DV","sidebar":"tutorialSidebar"},"int/quickstart/advanced/quickstart-builder-api":{"id":"int/quickstart/advanced/quickstart-builder-api","title":"Run a cluster with MEV-Boost","description":"Run a distributed validator cluster with the builder API (MEV-Boost)","sidebar":"tutorialSidebar"},"int/quickstart/advanced/quickstart-combine":{"id":"int/quickstart/advanced/quickstart-combine","title":"Combine DV private key shares","description":"Combine distributed validator private key shares to recover the validator private key.","sidebar":"tutorialSidebar"},"int/quickstart/advanced/quickstart-sdk":{"id":"int/quickstart/advanced/quickstart-sdk","title":"Create a DV using the SDK","description":"Create a DV cluster using the Obol Typescript SDK","sidebar":"tutorialSidebar"},"int/quickstart/advanced/quickstart-split":{"id":"int/quickstart/advanced/quickstart-split","title":"Split existing validator private keys","description":"Split existing validator keys","sidebar":"tutorialSidebar"},"int/quickstart/advanced/self-relay":{"id":"int/quickstart/advanced/self-relay","title":"Self-Host a Relay","description":"Self-host a relay","sidebar":"tutorialSidebar"},"int/quickstart/alone/create-keys":{"id":"int/quickstart/alone/create-keys","title":"Create the private key shares","description":"Run all nodes in a distributed validator cluster","sidebar":"tutorialSidebar"},"int/quickstart/alone/deploy":{"id":"int/quickstart/alone/deploy","title":"Deploy the cluster","description":"Move the private key shares to the nodes and run the cluster","sidebar":"tutorialSidebar"},"int/quickstart/alone/test-locally":{"id":"int/quickstart/alone/test-locally","title":"Run a test cluster locally","description":"Test the solo cluster locally","sidebar":"tutorialSidebar"},"int/quickstart/group/index":{"id":"int/quickstart/group/index","title":"Run a cluster as a group","description":"Charon is in an alpha state and should be used with caution according to its Terms of Use.","sidebar":"tutorialSidebar"},"int/quickstart/group/quickstart-cli":{"id":"int/quickstart/group/quickstart-cli","title":"Using the CLI","description":"Run one node in a multi-operator distributed validator cluster using the CLI","sidebar":"tutorialSidebar"},"int/quickstart/group/quickstart-group-leader-creator":{"id":"int/quickstart/group/quickstart-group-leader-creator","title":"Creator & Leader Journey","description":"A leader/creator creates a cluster configuration to be shared with operators","sidebar":"tutorialSidebar"},"int/quickstart/group/quickstart-group-operator":{"id":"int/quickstart/group/quickstart-group-operator","title":"Operator Journey","description":"A node operator joins a DV cluster","sidebar":"tutorialSidebar"},"int/quickstart/index":{"id":"int/quickstart/index","title":"Quickstart Guides","description":"Charon is in an alpha state and should be used with caution according to its Terms of Use.","sidebar":"tutorialSidebar"},"int/quickstart/quickstart-exit":{"id":"int/quickstart/quickstart-exit","title":"Exit a DV","description":"Exit a validator","sidebar":"tutorialSidebar"},"int/quickstart/quickstart-mainnet":{"id":"int/quickstart/quickstart-mainnet","title":"Run a DV on mainnet","description":"Run a cluster on mainnet","sidebar":"tutorialSidebar"},"int/quickstart/update":{"id":"int/quickstart/update","title":"Update a DV","description":"Update your DV cluster with the latest Charon release","sidebar":"tutorialSidebar"},"intro":{"id":"intro","title":"Introduction","description":"Welcome to the Multi-Operator Validator Network","sidebar":"tutorialSidebar"},"sc/introducing-obol-managers":{"id":"sc/introducing-obol-managers","title":"Obol Manager Contracts","description":"Smart contracts for managing Distributed Validators","sidebar":"tutorialSidebar"},"sec/bug-bounty":{"id":"sec/bug-bounty","title":"Obol Bug Bounty","description":"Bug Bounty Policy","sidebar":"tutorialSidebar"},"sec/contact":{"id":"sec/contact","title":"Contacts","description":"Security Contacts","sidebar":"tutorialSidebar"},"sec/overview":{"id":"sec/overview","title":"Overview","description":"Security Overview","sidebar":"tutorialSidebar"},"sec/roadmap":{"id":"sec/roadmap","title":"Roadmap","description":"Security Roadmap","sidebar":"tutorialSidebar"},"testnet":{"id":"testnet","title":"Testnets","description":"Obol testnets roadmap","sidebar":"tutorialSidebar"}}}')}}]); \ No newline at end of file diff --git a/assets/js/b5dc3cbf.ba7b1df5.js b/assets/js/b5dc3cbf.ba7b1df5.js deleted file mode 100644 index c18ad7236f..0000000000 --- a/assets/js/b5dc3cbf.ba7b1df5.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkobol_docs=self.webpackChunkobol_docs||[]).push([[17465],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>h});var n=r(67294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function a(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var c=n.createContext({}),l=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},p=function(e){var t=l(e.components);return n.createElement(c.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,i=e.originalType,c=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),d=l(r),m=o,h=d["".concat(c,".").concat(m)]||d[m]||u[m]||i;return r?n.createElement(h,a(a({ref:t},p),{},{components:r})):n.createElement(h,a({ref:t},p))}));function h(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=r.length,a=new Array(i);a[0]=m;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s[d]="string"==typeof e?e:o,a[1]=s;for(var l=2;l{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>a,default:()=>d,frontMatter:()=>i,metadata:()=>s,toc:()=>l});var n=r(87462),o=(r(67294),r(3905));const i={sidebar_position:5,description:"Add monitoring credentials to help the Obol Team monitor the health of your cluster"},a="Push Metrics to Obol Monitoring",s={unversionedId:"int/quickstart/advanced/push-metrics",id:"version-v0.17.0/int/quickstart/advanced/push-metrics",title:"Push Metrics to Obol Monitoring",description:"Add monitoring credentials to help the Obol Team monitor the health of your cluster",source:"@site/versioned_docs/version-v0.17.0/int/quickstart/advanced/push-metrics.md",sourceDirName:"int/quickstart/advanced",slug:"/int/quickstart/advanced/push-metrics",permalink:"/docs/int/quickstart/advanced/push-metrics",draft:!1,editUrl:"https://github.com/ObolNetwork/obol-docs/edit/main/versioned_docs/version-v0.17.0/int/quickstart/advanced/push-metrics.md",tags:[],version:"v0.17.0",sidebarPosition:5,frontMatter:{sidebar_position:5,description:"Add monitoring credentials to help the Obol Team monitor the health of your cluster"},sidebar:"tutorialSidebar",previous:{title:"Getting Started Monitoring your Node",permalink:"/docs/int/quickstart/advanced/monitoring-credentials"},next:{title:"Run Prysm validators as part of a DV Cluster",permalink:"/docs/int/quickstart/advanced/prysm-vc"}},c={},l=[],p={toc:l};function d(e){let{components:t,...r}=e;return(0,o.kt)("wrapper",(0,n.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"push-metrics-to-obol-monitoring"},"Push Metrics to Obol Monitoring"),(0,o.kt)("admonition",{type:"info"},(0,o.kt)("p",{parentName:"admonition"},"This is ",(0,o.kt)("strong",{parentName:"p"},"optional")," and does not confer any special privileges within the Obol Network.")),(0,o.kt)("p",null,"You may have been provided with ",(0,o.kt)("strong",{parentName:"p"},"Monitoring Credentials")," used to push distributed validator metrics to Obol's central prometheus cluster to monitor, analyze, and improve your Distributed Validator Cluster's performance."),(0,o.kt)("p",null,"The provided credentials needs to be added in ",(0,o.kt)("inlineCode",{parentName:"p"},"prometheus/prometheus.yml")," replacing ",(0,o.kt)("inlineCode",{parentName:"p"},"$PROM_REMOTE_WRITE_TOKEN")," and will look like:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre"},"obol20!tnt8U!C...\n")),(0,o.kt)("p",null,"The updated ",(0,o.kt)("inlineCode",{parentName:"p"},"prometheus/prometheus.yml")," file should look like:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre"},"global:\n scrape_interval: 30s # Set the scrape interval to every 30 seconds.\n evaluation_interval: 30s # Evaluate rules every 30 seconds.\n\nremote_write:\n - url: https://vm.monitoring.gcp.obol.tech/write\n authorization:\n credentials: obol20!tnt8U!C...\n\nscrape_configs:\n - job_name: 'charon'\n static_configs:\n - targets: ['charon:3620']\n - job_name: \"lodestar\"\n static_configs:\n - targets: [ \"lodestar:5064\" ]\n - job_name: 'node-exporter'\n static_configs:\n - targets: ['node-exporter:9100']\n")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/bfcb668e.06f26029.js b/assets/js/bfcb668e.06f26029.js deleted file mode 100644 index 5b07a5f1ed..0000000000 --- a/assets/js/bfcb668e.06f26029.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkobol_docs=self.webpackChunkobol_docs||[]).push([[37640],{3905:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>m});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function o(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var l=r.createContext({}),u=function(e){var t=r.useContext(l),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},c=function(e){var t=u(e.components);return r.createElement(l.Provider,{value:t},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},h=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,i=e.originalType,l=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),d=u(a),h=n,m=d["".concat(l,".").concat(h)]||d[h]||p[h]||i;return a?r.createElement(m,o(o({ref:t},c),{},{components:a})):r.createElement(m,o({ref:t},c))}));function m(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=a.length,o=new Array(i);o[0]=h;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[d]="string"==typeof e?e:n,o[1]=s;for(var u=2;u{a.r(t),a.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>d,frontMatter:()=>i,metadata:()=>s,toc:()=>u});var r=a(87462),n=(a(67294),a(3905));const i={sidebar_position:4,description:"Add monitoring credentials to help the Obol Team monitor the health of your cluster"},o="Getting Started Monitoring your Node",s={unversionedId:"int/quickstart/advanced/monitoring-credentials",id:"int/quickstart/advanced/monitoring-credentials",title:"Getting Started Monitoring your Node",description:"Add monitoring credentials to help the Obol Team monitor the health of your cluster",source:"@site/docs/int/quickstart/advanced/monitoring-credentials.md",sourceDirName:"int/quickstart/advanced",slug:"/int/quickstart/advanced/monitoring-credentials",permalink:"/docs/next/int/quickstart/advanced/monitoring-credentials",draft:!1,editUrl:"https://github.com/ObolNetwork/obol-docs/edit/main/docs/int/quickstart/advanced/monitoring-credentials.md",tags:[],version:"current",sidebarPosition:4,frontMatter:{sidebar_position:4,description:"Add monitoring credentials to help the Obol Team monitor the health of your cluster"},sidebar:"tutorialSidebar",previous:{title:"Split existing validator private keys",permalink:"/docs/next/int/quickstart/advanced/quickstart-split"},next:{title:"Push Metrics to Obol Monitoring",permalink:"/docs/next/int/quickstart/advanced/push-metrics"}},l={},u=[{value:"Pre-requisites",id:"pre-requisites",level:2},{value:"Import Pre-Configured Charon Dashboards",id:"import-pre-configured-charon-dashboards",level:2},{value:"Example Alerting Rules",id:"example-alerting-rules",level:2},{value:"Understanding Alert Rules",id:"understanding-alert-rules",level:2},{value:"Best Practices for Monitoring Charon Nodes & Cluster",id:"best-practices-for-monitoring-charon-nodes--cluster",level:2},{value:"Third-Party Services for Uptime Testing",id:"third-party-services-for-uptime-testing",level:2},{value:"Key metrics to watch to verify node health based on jobs",id:"key-metrics-to-watch-to-verify-node-health-based-on-jobs",level:2}],c={toc:u};function d(e){let{components:t,...a}=e;return(0,n.kt)("wrapper",(0,r.Z)({},c,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h1",{id:"getting-started-monitoring-your-node"},"Getting Started Monitoring your Node"),(0,n.kt)("p",null,"Welcome to this comprehensive guide, designed to assist you in effectively monitoring your Charon cluster and nodes, and setting up alerts based on specified parameters."),(0,n.kt)("h2",{id:"pre-requisites"},"Pre-requisites"),(0,n.kt)("p",null,"Ensure the following software are installed:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Docker: Find the installation guide for Ubuntu ",(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("a",{parentName:"strong",href:"https://docs.docker.com/engine/install/ubuntu/"},"here"))),(0,n.kt)("li",{parentName:"ul"},"Prometheus: You can install it using the guide available ",(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("a",{parentName:"strong",href:"https://prometheus.io/docs/prometheus/latest/installation/"},"here"))),(0,n.kt)("li",{parentName:"ul"},"Grafana: Follow this ",(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("a",{parentName:"strong",href:"https://grafana.com/docs/grafana/latest/setup-grafana/installation/"},"link"))," to install Grafana")),(0,n.kt)("h2",{id:"import-pre-configured-charon-dashboards"},"Import Pre-Configured Charon Dashboards"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},"Navigate to the ",(0,n.kt)("strong",{parentName:"p"},(0,n.kt)("a",{parentName:"strong",href:"https://github.com/ObolNetwork/monitoring/tree/main/dashboards"},"repository"))," that contains a variety of Grafana dashboards. For this demonstration, we will utilize the Charon Dashboard json.")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},"In your Grafana interface, create a new dashboard and select the import option.")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},'Copy the content of the Charon Dashboard json from the repository and paste it into the import box in Grafana. Click "Load" to proceed.')),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},'Finalize the import by clicking on the "Import" button. At this point, your dashboard should begin displaying metrics. Ensure your Charon client and Prometheus are operational for this to occur.'))),(0,n.kt)("h2",{id:"example-alerting-rules"},"Example Alerting Rules"),(0,n.kt)("p",null,'To create alerts for Node-Exporter, follow these steps based on the sample rules provided on the "Awesome Prometheus alerts" page:'),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"Visit the ",(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("a",{parentName:"strong",href:"https://samber.github.io/awesome-prometheus-alerts/rules.html#host-and-hardware"},"Awesome Prometheus alerts"))," page. Here, you will find lists of Prometheus alerting rules categorized by hardware, system, and services."),(0,n.kt)("li",{parentName:"ol"},"Depending on your need, select the category of alerts. For example, if you want to set up alerts for your system's CPU usage, click on the 'CPU' under the 'Host & Hardware' category."),(0,n.kt)("li",{parentName:"ol"},"On the selected page, you'll find specific alert rules like 'High CPU Usage'. Each rule will provide the PromQL expression, alert name, and a brief description of what the alert does. You can copy these rules."),(0,n.kt)("li",{parentName:"ol"},"Paste the copied rules into your Prometheus configuration file under the ",(0,n.kt)("inlineCode",{parentName:"li"},"rules")," section. Make sure you understand each rule before adding it to avoid unnecessary alerts."),(0,n.kt)("li",{parentName:"ol"},"Finally, save and apply the configuration file. Prometheus should now trigger alerts based on these rules.")),(0,n.kt)("p",null,"For alerts specific to Charon/Alpha, refer to the alerting rules available on this ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/ObolNetwork/monitoring/tree/main/alerting-rules"},"ObolNetwork/monitoring"),"."),(0,n.kt)("h2",{id:"understanding-alert-rules"},"Understanding Alert Rules"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("inlineCode",{parentName:"li"},"ClusterBeaconNodeDown"),"This alert is activated when the beacon node in a specified Alpha cluster is offline. The beacon node is crucial for validating transactions and producing new blocks. Its unavailability could disrupt the overall functionality of the cluster."),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("inlineCode",{parentName:"li"},"ClusterBeaconNodeSyncing"),"This alert indicates that the beacon node in a specified Alpha cluster is synchronizing, i.e., catching up with the latest blocks in the cluster."),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("inlineCode",{parentName:"li"},"ClusterNodeDown"),"This alert is activated when a node in a specified Alpha cluster is offline."),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("inlineCode",{parentName:"li"},"ClusterMissedAttestations"),":This alert indicates that there have been missed attestations in a specified Alpha cluster. Missed attestations may suggest that validators are not operating correctly, compromising the security and efficiency of the cluster."),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("inlineCode",{parentName:"li"},"ClusterInUnknownStatus"),": This alert is designed to activate when a node within the cluster is detected to be in an unknown state. The condition is evaluated by checking whether the maximum of the app_monitoring_readyz metric is 0."),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("inlineCode",{parentName:"li"},"ClusterInsufficientPeers"),":This alert is set to activate when the number of peers for a node in the Alpha M1 Cluster #1 is insufficient. The condition is evaluated by checking whether the maximum of the ",(0,n.kt)("strong",{parentName:"li"},(0,n.kt)("inlineCode",{parentName:"strong"},"app_monitoring_readyz"))," equals 4."),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("inlineCode",{parentName:"li"},"ClusterFailureRate"),": This alert is activated when the failure rate of the Alpha M1 Cluster #1 exceeds a certain threshold."),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("inlineCode",{parentName:"li"},"ClusterVCMissingValidators"),": This alert is activated if any validators in the Alpha M1 Cluster #1 are missing."),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("inlineCode",{parentName:"li"},"ClusterHighPctFailedSyncMsgDuty"),': This alert is activated if a high percentage of sync message duties failed in the cluster. The alert is activated if the sum of the increase in failed duties tagged with "sync_message" in the last hour divided by the sum of the increase in total duties tagged with "sync_message" in the last hour is greater than 0.1.'),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("inlineCode",{parentName:"li"},"ClusterNumConnectedRelays"),": This alert is activated if the number of connected relays in the cluster falls to 0."),(0,n.kt)("li",{parentName:"ol"},"PeerPingLatency: 1. This alert is activated if the 90th percentile of the ping latency to the peers in a cluster exceeds 500ms within 2 minutes.")),(0,n.kt)("h2",{id:"best-practices-for-monitoring-charon-nodes--cluster"},"Best Practices for Monitoring Charon Nodes & Cluster"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Establish Baselines"),": Familiarize yourself with the normal operation metrics like CPU, memory, and network usage. This will help you detect anomalies."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Define Key Metrics"),": Set up alerts for essential metrics, encompassing both system-level and Charon-specific ones."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Configure Alerts"),": Based on these metrics, set up actionable alerts."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Monitor Network"),": Regularly assess the connectivity between nodes and the network."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Perform Regular Health Checks"),": Consistently evaluate the status of your nodes and clusters."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Monitor System Logs"),": Keep an eye on logs for error messages or unusual activities."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Assess Resource Usage"),": Ensure your nodes are neither over- nor under-utilized."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Automate Monitoring"),": Use automation to ensure no issues go undetected."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Conduct Drills"),": Regularly simulate failure scenarios to fine-tune your setup."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Update Regularly"),": Keep your nodes and clusters updated with the latest software versions.")),(0,n.kt)("h2",{id:"third-party-services-for-uptime-testing"},"Third-Party Services for Uptime Testing"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://updown.io/"},"updown.io")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://grafana.com/grafana/plugins/grafana-synthetic-monitoring-app/"},"Grafana synthetic Monitoring"))),(0,n.kt)("h2",{id:"key-metrics-to-watch-to-verify-node-health-based-on-jobs"},"Key metrics to watch to verify node health based on jobs"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Node Exporter:")),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"CPU Usage"),": High or spiking CPU usage can be a sign of a process demanding more resources than it should."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Memory Usage"),": If a node is consistently running out of memory, it could be due to a memory leak or simply under-provisioning."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Disk I/O"),": Slow disk operations can cause applications to hang or delay responses. High disk I/O can indicate storage performance issues or a sign of high load on the system."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Network Usage"),": High network traffic or packet loss can signal network configuration issues, or that a service is being overwhelmed by requests."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Disk Space"),": Running out of disk space can lead to application errors and data loss."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Uptime"),": The amount of time a system has been up without any restarts. Frequent restarts can indicate instability in the system."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Error Rates"),": The number of errors encountered by your application. This could be 4xx/5xx HTTP errors, exceptions, or any other kind of error your application may log."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Latency"),": The delay before a transfer of data begins following an instruction for its transfer."),(0,n.kt)("p",null,"It is also important to check:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"NTP clock skew"),(0,n.kt)("li",{parentName:"ul"},"Process restarts and failures (eg. through\xa0",(0,n.kt)("inlineCode",{parentName:"li"},"node_systemd"),")"),(0,n.kt)("li",{parentName:"ul"},"alert on high error and panic log counts.")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/cf05d8ae.f894652b.js b/assets/js/cf05d8ae.f894652b.js deleted file mode 100644 index dc276d76b5..0000000000 --- a/assets/js/cf05d8ae.f894652b.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkobol_docs=self.webpackChunkobol_docs||[]).push([[54639],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>h});var n=r(67294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function a(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var c=n.createContext({}),l=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},p=function(e){var t=l(e.components);return n.createElement(c.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,i=e.originalType,c=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),d=l(r),m=o,h=d["".concat(c,".").concat(m)]||d[m]||u[m]||i;return r?n.createElement(h,a(a({ref:t},p),{},{components:r})):n.createElement(h,a({ref:t},p))}));function h(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=r.length,a=new Array(i);a[0]=m;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s[d]="string"==typeof e?e:o,a[1]=s;for(var l=2;l{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>a,default:()=>d,frontMatter:()=>i,metadata:()=>s,toc:()=>l});var n=r(87462),o=(r(67294),r(3905));const i={sidebar_position:5,description:"Add monitoring credentials to help the Obol Team monitor the health of your cluster"},a="Push Metrics to Obol Monitoring",s={unversionedId:"int/quickstart/advanced/push-metrics",id:"int/quickstart/advanced/push-metrics",title:"Push Metrics to Obol Monitoring",description:"Add monitoring credentials to help the Obol Team monitor the health of your cluster",source:"@site/docs/int/quickstart/advanced/push-metrics.md",sourceDirName:"int/quickstart/advanced",slug:"/int/quickstart/advanced/push-metrics",permalink:"/docs/next/int/quickstart/advanced/push-metrics",draft:!1,editUrl:"https://github.com/ObolNetwork/obol-docs/edit/main/docs/int/quickstart/advanced/push-metrics.md",tags:[],version:"current",sidebarPosition:5,frontMatter:{sidebar_position:5,description:"Add monitoring credentials to help the Obol Team monitor the health of your cluster"},sidebar:"tutorialSidebar",previous:{title:"Getting Started Monitoring your Node",permalink:"/docs/next/int/quickstart/advanced/monitoring-credentials"},next:{title:"Run Prysm validators as part of a DV Cluster",permalink:"/docs/next/int/quickstart/advanced/prysm-vc"}},c={},l=[],p={toc:l};function d(e){let{components:t,...r}=e;return(0,o.kt)("wrapper",(0,n.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"push-metrics-to-obol-monitoring"},"Push Metrics to Obol Monitoring"),(0,o.kt)("admonition",{type:"info"},(0,o.kt)("p",{parentName:"admonition"},"This is ",(0,o.kt)("strong",{parentName:"p"},"optional")," and does not confer any special privileges within the Obol Network.")),(0,o.kt)("p",null,"You may have been provided with ",(0,o.kt)("strong",{parentName:"p"},"Monitoring Credentials")," used to push distributed validator metrics to Obol's central prometheus cluster to monitor, analyze, and improve your Distributed Validator Cluster's performance."),(0,o.kt)("p",null,"The provided credentials needs to be added in ",(0,o.kt)("inlineCode",{parentName:"p"},"prometheus/prometheus.yml")," replacing ",(0,o.kt)("inlineCode",{parentName:"p"},"$PROM_REMOTE_WRITE_TOKEN")," and will look like:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre"},"obol20!tnt8U!C...\n")),(0,o.kt)("p",null,"The updated ",(0,o.kt)("inlineCode",{parentName:"p"},"prometheus/prometheus.yml")," file should look like:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre"},"global:\n scrape_interval: 30s # Set the scrape interval to every 30 seconds.\n evaluation_interval: 30s # Evaluate rules every 30 seconds.\n\nremote_write:\n - url: https://vm.monitoring.gcp.obol.tech/write\n authorization:\n credentials: obol20!tnt8U!C...\n\nscrape_configs:\n - job_name: 'charon'\n static_configs:\n - targets: ['charon:3620']\n - job_name: \"lodestar\"\n static_configs:\n - targets: [ \"lodestar:5064\" ]\n - job_name: 'node-exporter'\n static_configs:\n - targets: ['node-exporter:9100']\n")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/da11c354.444d9dc2.js b/assets/js/da11c354.444d9dc2.js deleted file mode 100644 index 173417829d..0000000000 --- a/assets/js/da11c354.444d9dc2.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkobol_docs=self.webpackChunkobol_docs||[]).push([[63626],{18631:t=>{t.exports=JSON.parse('{"pluginId":"default","version":"v0.17.0","label":"v0.17.0","banner":null,"badge":true,"noIndex":false,"className":"docs-version-v0.17.0","isLast":true,"docsSidebars":{"tutorialSidebar":[{"type":"link","label":"Introduction","href":"/docs/intro","docId":"intro"},{"type":"category","label":"Getting started","collapsible":true,"collapsed":false,"items":[{"type":"link","label":"Overview","href":"/docs/int/Overview","docId":"int/Overview"},{"type":"link","label":"Key concepts","href":"/docs/int/key-concepts","docId":"int/key-concepts"},{"type":"category","label":"Quickstart Guides","collapsible":true,"collapsed":false,"items":[{"type":"category","label":"Create a DV alone","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Run a test cluster locally","href":"/docs/int/quickstart/alone/test-locally","docId":"int/quickstart/alone/test-locally"},{"type":"link","label":"Create the private key shares","href":"/docs/int/quickstart/alone/create-keys","docId":"int/quickstart/alone/create-keys"},{"type":"link","label":"Deploy the cluster","href":"/docs/int/quickstart/alone/deploy","docId":"int/quickstart/alone/deploy"}]},{"type":"category","label":"Create a DV as a group","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Creator & Leader Journey","href":"/docs/int/quickstart/group/quickstart-group-leader-creator","docId":"int/quickstart/group/quickstart-group-leader-creator"},{"type":"link","label":"Operator Journey","href":"/docs/int/quickstart/group/quickstart-group-operator","docId":"int/quickstart/group/quickstart-group-operator"},{"type":"link","label":"Using the CLI","href":"/docs/int/quickstart/group/quickstart-cli","docId":"int/quickstart/group/quickstart-cli"}],"href":"/docs/int/quickstart/group/"},{"type":"link","label":"Activate a DV","href":"/docs/int/quickstart/activate-dv","docId":"int/quickstart/activate-dv"},{"type":"link","label":"Exit a DV","href":"/docs/int/quickstart/quickstart-exit","docId":"int/quickstart/quickstart-exit"},{"type":"link","label":"Update a DV","href":"/docs/int/quickstart/update","docId":"int/quickstart/update"},{"type":"link","label":"Run a DV on mainnet","href":"/docs/int/quickstart/quickstart-mainnet","docId":"int/quickstart/quickstart-mainnet"},{"type":"category","label":"Advanced Guides","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Create a DV using the SDK","href":"/docs/int/quickstart/advanced/quickstart-sdk","docId":"int/quickstart/advanced/quickstart-sdk"},{"type":"link","label":"Run a cluster with MEV-Boost","href":"/docs/int/quickstart/advanced/quickstart-builder-api","docId":"int/quickstart/advanced/quickstart-builder-api"},{"type":"link","label":"Split existing validator private keys","href":"/docs/int/quickstart/advanced/quickstart-split","docId":"int/quickstart/advanced/quickstart-split"},{"type":"link","label":"Getting Started Monitoring your Node","href":"/docs/int/quickstart/advanced/monitoring-credentials","docId":"int/quickstart/advanced/monitoring-credentials"},{"type":"link","label":"Push Metrics to Obol Monitoring","href":"/docs/int/quickstart/advanced/push-metrics","docId":"int/quickstart/advanced/push-metrics"},{"type":"link","label":"Run Prysm validators as part of a DV Cluster","href":"/docs/int/quickstart/advanced/prysm-vc","docId":"int/quickstart/advanced/prysm-vc"},{"type":"link","label":"Self-Host a Relay","href":"/docs/int/quickstart/advanced/self-relay","docId":"int/quickstart/advanced/self-relay"},{"type":"link","label":"Advanced Docker Configs","href":"/docs/int/quickstart/advanced/adv-docker-configs","docId":"int/quickstart/advanced/adv-docker-configs"},{"type":"link","label":"Combine DV private key shares","href":"/docs/int/quickstart/advanced/quickstart-combine","docId":"int/quickstart/advanced/quickstart-combine"}]}],"href":"/docs/int/quickstart/"},{"type":"category","label":"FAQ","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Frequently asked questions","href":"/docs/int/faq/general","docId":"int/faq/general"},{"type":"link","label":"Errors & Resolutions","href":"/docs/int/faq/errors","docId":"int/faq/errors"},{"type":"link","label":"Centralization risks and mitigation","href":"/docs/int/faq/risks","docId":"int/faq/risks"},{"type":"link","label":"Charon threat model","href":"/docs/int/faq/threat_model","docId":"int/faq/threat_model"}]}]},{"type":"category","label":"Charon","collapsible":true,"collapsed":false,"items":[{"type":"link","label":"Introduction","href":"/docs/charon/intro","docId":"charon/intro"},{"type":"link","label":"Distributed Key Generation","href":"/docs/charon/dkg","docId":"charon/dkg"},{"type":"link","label":"Cluster configuration","href":"/docs/charon/cluster-configuration","docId":"charon/cluster-configuration"},{"type":"link","label":"Charon networking","href":"/docs/charon/networking","docId":"charon/networking"},{"type":"link","label":"CLI reference","href":"/docs/charon/charon-cli-reference","docId":"charon/charon-cli-reference"}]},{"type":"category","label":"DV Launchpad","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Introduction","href":"/docs/dvl/intro","docId":"dvl/intro"}]},{"type":"category","label":"Smart contracts","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Obol Manager Contracts","href":"/docs/sc/introducing-obol-managers","docId":"sc/introducing-obol-managers"}]},{"type":"link","label":"Testnets","href":"/docs/testnet","docId":"testnet"},{"type":"category","label":"Security","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Overview","href":"/docs/sec/overview","docId":"sec/overview"},{"type":"link","label":"Roadmap","href":"/docs/sec/roadmap","docId":"sec/roadmap"},{"type":"link","label":"Obol Bug Bounty","href":"/docs/sec/bug-bounty","docId":"sec/bug-bounty"},{"type":"link","label":"Contacts","href":"/docs/sec/contact","docId":"sec/contact"}]},{"type":"category","label":"Contribution & Feedback","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Filing a bug report","href":"/docs/cg/bug-report","docId":"cg/bug-report"},{"type":"link","label":"Documentation standards","href":"/docs/cg/docs","docId":"cg/docs"},{"type":"link","label":"Feedback","href":"/docs/cg/feedback","docId":"cg/feedback"}]},{"type":"category","label":"Further reading","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Ethereum resources","href":"/docs/fr/eth","docId":"fr/eth"},{"type":"link","label":"Golang resources","href":"/docs/fr/golang","docId":"fr/golang"}]}]},"docs":{"cg/bug-report":{"id":"cg/bug-report","title":"Filing a bug report","description":"Bug reports are critical to the rapid development of Obol. In order to make the process quick and efficient for all parties, it is best to follow some common reporting etiquette when filing to avoid double issues or miscommunications.","sidebar":"tutorialSidebar"},"cg/docs":{"id":"cg/docs","title":"Documentation standards","description":"This section outlines the formatting standards presented within this documentation. In order to maintain continuity and quality, all pull requests must best conform to the specifics below.","sidebar":"tutorialSidebar"},"cg/feedback":{"id":"cg/feedback","title":"Feedback","description":"If you have followed our quickstart guides, and whether you succeeded or failed at running the distributed validator successfully, we would like to hear your feedback on the process and where you encountered difficulties.","sidebar":"tutorialSidebar"},"charon/charon-cli-reference":{"id":"charon/charon-cli-reference","title":"CLI reference","description":"A go-based middleware client for taking part in Distributed Validator clusters.","sidebar":"tutorialSidebar"},"charon/cluster-configuration":{"id":"charon/cluster-configuration","title":"Cluster configuration","description":"Documenting a Distributed Validator Cluster in a standardised file format","sidebar":"tutorialSidebar"},"charon/dkg":{"id":"charon/dkg","title":"Distributed Key Generation","description":"Generating private keys for a Distributed Validator requires a Distributed Key Generation (DKG) Ceremony.","sidebar":"tutorialSidebar"},"charon/intro":{"id":"charon/intro","title":"Introduction","description":"Charon - The Distributed Validator Client","sidebar":"tutorialSidebar"},"charon/networking":{"id":"charon/networking","title":"Charon networking","description":"Networking","sidebar":"tutorialSidebar"},"dvl/intro":{"id":"dvl/intro","title":"Introduction","description":"A dapp to securely create Distributed Validators alone or with a group.","sidebar":"tutorialSidebar"},"fr/eth":{"id":"fr/eth","title":"Ethereum resources","description":"This page serves material necessary to catch up with the current state of Ethereum proof-of-stake development and provides readers with the base knowledge required to assist with the growth of Obol. Whether you are an expert on all things Ethereum or are new to the blockchain world entirely, there are appropriate resources here that will help you get up to speed.","sidebar":"tutorialSidebar"},"fr/golang":{"id":"fr/golang","title":"Golang resources","description":"* The Go Programming Language \\\\(Only recommended book\\\\)","sidebar":"tutorialSidebar"},"int/faq/errors":{"id":"int/faq/errors","title":"Errors & Resolutions","description":"Errors & Resolutions","sidebar":"tutorialSidebar"},"int/faq/general":{"id":"int/faq/general","title":"Frequently asked questions","description":"Frequently asked questions","sidebar":"tutorialSidebar"},"int/faq/risks":{"id":"int/faq/risks","title":"Centralization risks and mitigation","description":"Centralization Risks and mitigation","sidebar":"tutorialSidebar"},"int/faq/threat_model":{"id":"int/faq/threat_model","title":"Charon threat model","description":"Threat model for a Distributed Validator","sidebar":"tutorialSidebar"},"int/key-concepts":{"id":"int/key-concepts","title":"Key concepts","description":"Some of the key terms in the field of Distributed Validator Technology","sidebar":"tutorialSidebar"},"int/Overview":{"id":"int/Overview","title":"Overview","description":"An overview of the Obol network","sidebar":"tutorialSidebar"},"int/quickstart/activate-dv":{"id":"int/quickstart/activate-dv","title":"Activate a DV","description":"Activate the Distributed Validator using the deposit contract","sidebar":"tutorialSidebar"},"int/quickstart/advanced/adv-docker-configs":{"id":"int/quickstart/advanced/adv-docker-configs","title":"Advanced Docker Configs","description":"Use advanced docker-compose features to have more flexibility and power to change the default configuration.","sidebar":"tutorialSidebar"},"int/quickstart/advanced/monitoring-credentials":{"id":"int/quickstart/advanced/monitoring-credentials","title":"Getting Started Monitoring your Node","description":"Add monitoring credentials to help the Obol Team monitor the health of your cluster","sidebar":"tutorialSidebar"},"int/quickstart/advanced/prysm-vc":{"id":"int/quickstart/advanced/prysm-vc","title":"Run Prysm validators as part of a DV Cluster","description":"Run Prysm VCs in a DV","sidebar":"tutorialSidebar"},"int/quickstart/advanced/push-metrics":{"id":"int/quickstart/advanced/push-metrics","title":"Push Metrics to Obol Monitoring","description":"Add monitoring credentials to help the Obol Team monitor the health of your cluster","sidebar":"tutorialSidebar"},"int/quickstart/advanced/quickstart-builder-api":{"id":"int/quickstart/advanced/quickstart-builder-api","title":"Run a cluster with MEV-Boost","description":"Run a distributed validator cluster with the builder API (MEV-Boost)","sidebar":"tutorialSidebar"},"int/quickstart/advanced/quickstart-combine":{"id":"int/quickstart/advanced/quickstart-combine","title":"Combine DV private key shares","description":"Combine distributed validator private key shares to recover the validator private key.","sidebar":"tutorialSidebar"},"int/quickstart/advanced/quickstart-sdk":{"id":"int/quickstart/advanced/quickstart-sdk","title":"Create a DV using the SDK","description":"Create a DV cluster using the Obol Typescript SDK","sidebar":"tutorialSidebar"},"int/quickstart/advanced/quickstart-split":{"id":"int/quickstart/advanced/quickstart-split","title":"Split existing validator private keys","description":"Split existing validator keys","sidebar":"tutorialSidebar"},"int/quickstart/advanced/self-relay":{"id":"int/quickstart/advanced/self-relay","title":"Self-Host a Relay","description":"Self-host a relay","sidebar":"tutorialSidebar"},"int/quickstart/alone/create-keys":{"id":"int/quickstart/alone/create-keys","title":"Create the private key shares","description":"Run all nodes in a distributed validator cluster","sidebar":"tutorialSidebar"},"int/quickstart/alone/deploy":{"id":"int/quickstart/alone/deploy","title":"Deploy the cluster","description":"Move the private key shares to the nodes and run the cluster","sidebar":"tutorialSidebar"},"int/quickstart/alone/test-locally":{"id":"int/quickstart/alone/test-locally","title":"Run a test cluster locally","description":"Test the solo cluster locally","sidebar":"tutorialSidebar"},"int/quickstart/group/index":{"id":"int/quickstart/group/index","title":"Run a cluster as a group","description":"Charon is in an alpha state and should be used with caution according to its Terms of Use.","sidebar":"tutorialSidebar"},"int/quickstart/group/quickstart-cli":{"id":"int/quickstart/group/quickstart-cli","title":"Using the CLI","description":"Run one node in a multi-operator distributed validator cluster using the CLI","sidebar":"tutorialSidebar"},"int/quickstart/group/quickstart-group-leader-creator":{"id":"int/quickstart/group/quickstart-group-leader-creator","title":"Creator & Leader Journey","description":"A leader/creator creates a cluster configuration to be shared with operators","sidebar":"tutorialSidebar"},"int/quickstart/group/quickstart-group-operator":{"id":"int/quickstart/group/quickstart-group-operator","title":"Operator Journey","description":"A node operator joins a DV cluster","sidebar":"tutorialSidebar"},"int/quickstart/index":{"id":"int/quickstart/index","title":"Quickstart Guides","description":"Charon is in an alpha state and should be used with caution according to its Terms of Use.","sidebar":"tutorialSidebar"},"int/quickstart/quickstart-exit":{"id":"int/quickstart/quickstart-exit","title":"Exit a DV","description":"Exit a validator","sidebar":"tutorialSidebar"},"int/quickstart/quickstart-mainnet":{"id":"int/quickstart/quickstart-mainnet","title":"Run a DV on mainnet","description":"Run a cluster on mainnet","sidebar":"tutorialSidebar"},"int/quickstart/update":{"id":"int/quickstart/update","title":"Update a DV","description":"Update your DV cluster with the latest Charon release","sidebar":"tutorialSidebar"},"intro":{"id":"intro","title":"Introduction","description":"Welcome to the Multi-Operator Validator Network","sidebar":"tutorialSidebar"},"sc/introducing-obol-managers":{"id":"sc/introducing-obol-managers","title":"Obol Manager Contracts","description":"How does the Obol Network look on-chain?","sidebar":"tutorialSidebar"},"sec/bug-bounty":{"id":"sec/bug-bounty","title":"Obol Bug Bounty","description":"Bug Bounty Policy","sidebar":"tutorialSidebar"},"sec/contact":{"id":"sec/contact","title":"Contacts","description":"Security Contacts","sidebar":"tutorialSidebar"},"sec/overview":{"id":"sec/overview","title":"Overview","description":"Security Overview","sidebar":"tutorialSidebar"},"sec/roadmap":{"id":"sec/roadmap","title":"Roadmap","description":"Security Roadmap","sidebar":"tutorialSidebar"},"testnet":{"id":"testnet","title":"Testnets","description":"Obol testnets roadmap","sidebar":"tutorialSidebar"}}}')}}]); \ No newline at end of file diff --git a/assets/js/da11c354.97215ee7.js b/assets/js/da11c354.97215ee7.js new file mode 100644 index 0000000000..89b4ab2946 --- /dev/null +++ b/assets/js/da11c354.97215ee7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkobol_docs=self.webpackChunkobol_docs||[]).push([[63626],{18631:t=>{t.exports=JSON.parse('{"pluginId":"default","version":"v0.17.0","label":"v0.17.0","banner":null,"badge":true,"noIndex":false,"className":"docs-version-v0.17.0","isLast":true,"docsSidebars":{"tutorialSidebar":[{"type":"link","label":"Introduction","href":"/docs/intro","docId":"intro"},{"type":"category","label":"Getting started","collapsible":true,"collapsed":false,"items":[{"type":"link","label":"Overview","href":"/docs/int/Overview","docId":"int/Overview"},{"type":"link","label":"Key concepts","href":"/docs/int/key-concepts","docId":"int/key-concepts"},{"type":"category","label":"Quickstart Guides","collapsible":true,"collapsed":false,"items":[{"type":"category","label":"Create a DV alone","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Run a test cluster locally","href":"/docs/int/quickstart/alone/test-locally","docId":"int/quickstart/alone/test-locally"},{"type":"link","label":"Create the private key shares","href":"/docs/int/quickstart/alone/create-keys","docId":"int/quickstart/alone/create-keys"},{"type":"link","label":"Deploy the cluster","href":"/docs/int/quickstart/alone/deploy","docId":"int/quickstart/alone/deploy"}]},{"type":"category","label":"Create a DV as a group","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Creator & Leader Journey","href":"/docs/int/quickstart/group/quickstart-group-leader-creator","docId":"int/quickstart/group/quickstart-group-leader-creator"},{"type":"link","label":"Operator Journey","href":"/docs/int/quickstart/group/quickstart-group-operator","docId":"int/quickstart/group/quickstart-group-operator"},{"type":"link","label":"Using the CLI","href":"/docs/int/quickstart/group/quickstart-cli","docId":"int/quickstart/group/quickstart-cli"}],"href":"/docs/int/quickstart/group/"},{"type":"link","label":"Activate a DV","href":"/docs/int/quickstart/activate-dv","docId":"int/quickstart/activate-dv"},{"type":"link","label":"Exit a DV","href":"/docs/int/quickstart/quickstart-exit","docId":"int/quickstart/quickstart-exit"},{"type":"link","label":"Update a DV","href":"/docs/int/quickstart/update","docId":"int/quickstart/update"},{"type":"link","label":"Run a DV on mainnet","href":"/docs/int/quickstart/quickstart-mainnet","docId":"int/quickstart/quickstart-mainnet"},{"type":"category","label":"Advanced Guides","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Create a DV using the SDK","href":"/docs/int/quickstart/advanced/quickstart-sdk","docId":"int/quickstart/advanced/quickstart-sdk"},{"type":"link","label":"Run a cluster with MEV-Boost","href":"/docs/int/quickstart/advanced/quickstart-builder-api","docId":"int/quickstart/advanced/quickstart-builder-api"},{"type":"link","label":"Split existing validator private keys","href":"/docs/int/quickstart/advanced/quickstart-split","docId":"int/quickstart/advanced/quickstart-split"},{"type":"link","label":"Getting Started Monitoring your Node","href":"/docs/int/quickstart/advanced/monitoring","docId":"int/quickstart/advanced/monitoring"},{"type":"link","label":"Push Metrics to Obol Monitoring","href":"/docs/int/quickstart/advanced/obol-monitoring","docId":"int/quickstart/advanced/obol-monitoring"},{"type":"link","label":"Run Prysm validators as part of a DV Cluster","href":"/docs/int/quickstart/advanced/prysm-vc","docId":"int/quickstart/advanced/prysm-vc"},{"type":"link","label":"Self-Host a Relay","href":"/docs/int/quickstart/advanced/self-relay","docId":"int/quickstart/advanced/self-relay"},{"type":"link","label":"Advanced Docker Configs","href":"/docs/int/quickstart/advanced/adv-docker-configs","docId":"int/quickstart/advanced/adv-docker-configs"},{"type":"link","label":"Combine DV private key shares","href":"/docs/int/quickstart/advanced/quickstart-combine","docId":"int/quickstart/advanced/quickstart-combine"}]}],"href":"/docs/int/quickstart/"},{"type":"category","label":"FAQ","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Frequently asked questions","href":"/docs/int/faq/general","docId":"int/faq/general"},{"type":"link","label":"Errors & Resolutions","href":"/docs/int/faq/errors","docId":"int/faq/errors"},{"type":"link","label":"Centralization risks and mitigation","href":"/docs/int/faq/risks","docId":"int/faq/risks"},{"type":"link","label":"Charon threat model","href":"/docs/int/faq/threat_model","docId":"int/faq/threat_model"}]}]},{"type":"category","label":"Charon","collapsible":true,"collapsed":false,"items":[{"type":"link","label":"Introduction","href":"/docs/charon/intro","docId":"charon/intro"},{"type":"link","label":"Distributed Key Generation","href":"/docs/charon/dkg","docId":"charon/dkg"},{"type":"link","label":"Cluster configuration","href":"/docs/charon/cluster-configuration","docId":"charon/cluster-configuration"},{"type":"link","label":"Charon networking","href":"/docs/charon/networking","docId":"charon/networking"},{"type":"link","label":"CLI reference","href":"/docs/charon/charon-cli-reference","docId":"charon/charon-cli-reference"}]},{"type":"category","label":"DV Launchpad","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Introduction","href":"/docs/dvl/intro","docId":"dvl/intro"}]},{"type":"category","label":"Smart contracts","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Obol Manager Contracts","href":"/docs/sc/introducing-obol-managers","docId":"sc/introducing-obol-managers"}]},{"type":"link","label":"Testnets","href":"/docs/testnet","docId":"testnet"},{"type":"category","label":"Security","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Overview","href":"/docs/sec/overview","docId":"sec/overview"},{"type":"link","label":"Roadmap","href":"/docs/sec/roadmap","docId":"sec/roadmap"},{"type":"link","label":"Obol Bug Bounty","href":"/docs/sec/bug-bounty","docId":"sec/bug-bounty"},{"type":"link","label":"Contacts","href":"/docs/sec/contact","docId":"sec/contact"}]},{"type":"category","label":"Contribution & Feedback","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Filing a bug report","href":"/docs/cg/bug-report","docId":"cg/bug-report"},{"type":"link","label":"Documentation standards","href":"/docs/cg/docs","docId":"cg/docs"},{"type":"link","label":"Feedback","href":"/docs/cg/feedback","docId":"cg/feedback"}]},{"type":"category","label":"Further reading","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Ethereum resources","href":"/docs/fr/eth","docId":"fr/eth"},{"type":"link","label":"Golang resources","href":"/docs/fr/golang","docId":"fr/golang"}]}]},"docs":{"cg/bug-report":{"id":"cg/bug-report","title":"Filing a bug report","description":"Bug reports are critical to the rapid development of Obol. In order to make the process quick and efficient for all parties, it is best to follow some common reporting etiquette when filing to avoid double issues or miscommunications.","sidebar":"tutorialSidebar"},"cg/docs":{"id":"cg/docs","title":"Documentation standards","description":"This section outlines the formatting standards presented within this documentation. In order to maintain continuity and quality, all pull requests must best conform to the specifics below.","sidebar":"tutorialSidebar"},"cg/feedback":{"id":"cg/feedback","title":"Feedback","description":"If you have followed our quickstart guides, and whether you succeeded or failed at running the distributed validator successfully, we would like to hear your feedback on the process and where you encountered difficulties.","sidebar":"tutorialSidebar"},"charon/charon-cli-reference":{"id":"charon/charon-cli-reference","title":"CLI reference","description":"A go-based middleware client for taking part in Distributed Validator clusters.","sidebar":"tutorialSidebar"},"charon/cluster-configuration":{"id":"charon/cluster-configuration","title":"Cluster configuration","description":"Documenting a Distributed Validator Cluster in a standardised file format","sidebar":"tutorialSidebar"},"charon/dkg":{"id":"charon/dkg","title":"Distributed Key Generation","description":"Generating private keys for a Distributed Validator requires a Distributed Key Generation (DKG) Ceremony.","sidebar":"tutorialSidebar"},"charon/intro":{"id":"charon/intro","title":"Introduction","description":"Charon - The Distributed Validator Client","sidebar":"tutorialSidebar"},"charon/networking":{"id":"charon/networking","title":"Charon networking","description":"Networking","sidebar":"tutorialSidebar"},"dvl/intro":{"id":"dvl/intro","title":"Introduction","description":"A dapp to securely create Distributed Validators alone or with a group.","sidebar":"tutorialSidebar"},"fr/eth":{"id":"fr/eth","title":"Ethereum resources","description":"This page serves material necessary to catch up with the current state of Ethereum proof-of-stake development and provides readers with the base knowledge required to assist with the growth of Obol. Whether you are an expert on all things Ethereum or are new to the blockchain world entirely, there are appropriate resources here that will help you get up to speed.","sidebar":"tutorialSidebar"},"fr/golang":{"id":"fr/golang","title":"Golang resources","description":"* The Go Programming Language \\\\(Only recommended book\\\\)","sidebar":"tutorialSidebar"},"int/faq/errors":{"id":"int/faq/errors","title":"Errors & Resolutions","description":"Errors & Resolutions","sidebar":"tutorialSidebar"},"int/faq/general":{"id":"int/faq/general","title":"Frequently asked questions","description":"Frequently asked questions","sidebar":"tutorialSidebar"},"int/faq/risks":{"id":"int/faq/risks","title":"Centralization risks and mitigation","description":"Centralization Risks and mitigation","sidebar":"tutorialSidebar"},"int/faq/threat_model":{"id":"int/faq/threat_model","title":"Charon threat model","description":"Threat model for a Distributed Validator","sidebar":"tutorialSidebar"},"int/key-concepts":{"id":"int/key-concepts","title":"Key concepts","description":"Some of the key terms in the field of Distributed Validator Technology","sidebar":"tutorialSidebar"},"int/Overview":{"id":"int/Overview","title":"Overview","description":"An overview of the Obol network","sidebar":"tutorialSidebar"},"int/quickstart/activate-dv":{"id":"int/quickstart/activate-dv","title":"Activate a DV","description":"Activate the Distributed Validator using the deposit contract","sidebar":"tutorialSidebar"},"int/quickstart/advanced/adv-docker-configs":{"id":"int/quickstart/advanced/adv-docker-configs","title":"Advanced Docker Configs","description":"Use advanced docker-compose features to have more flexibility and power to change the default configuration.","sidebar":"tutorialSidebar"},"int/quickstart/advanced/monitoring":{"id":"int/quickstart/advanced/monitoring","title":"Getting Started Monitoring your Node","description":"Add monitoring credentials to help the Obol Team monitor the health of your cluster","sidebar":"tutorialSidebar"},"int/quickstart/advanced/obol-monitoring":{"id":"int/quickstart/advanced/obol-monitoring","title":"Push Metrics to Obol Monitoring","description":"Add monitoring credentials to help the Obol Team monitor the health of your cluster","sidebar":"tutorialSidebar"},"int/quickstart/advanced/prysm-vc":{"id":"int/quickstart/advanced/prysm-vc","title":"Run Prysm validators as part of a DV Cluster","description":"Run Prysm VCs in a DV","sidebar":"tutorialSidebar"},"int/quickstart/advanced/quickstart-builder-api":{"id":"int/quickstart/advanced/quickstart-builder-api","title":"Run a cluster with MEV-Boost","description":"Run a distributed validator cluster with the builder API (MEV-Boost)","sidebar":"tutorialSidebar"},"int/quickstart/advanced/quickstart-combine":{"id":"int/quickstart/advanced/quickstart-combine","title":"Combine DV private key shares","description":"Combine distributed validator private key shares to recover the validator private key.","sidebar":"tutorialSidebar"},"int/quickstart/advanced/quickstart-sdk":{"id":"int/quickstart/advanced/quickstart-sdk","title":"Create a DV using the SDK","description":"Create a DV cluster using the Obol Typescript SDK","sidebar":"tutorialSidebar"},"int/quickstart/advanced/quickstart-split":{"id":"int/quickstart/advanced/quickstart-split","title":"Split existing validator private keys","description":"Split existing validator keys","sidebar":"tutorialSidebar"},"int/quickstart/advanced/self-relay":{"id":"int/quickstart/advanced/self-relay","title":"Self-Host a Relay","description":"Self-host a relay","sidebar":"tutorialSidebar"},"int/quickstart/alone/create-keys":{"id":"int/quickstart/alone/create-keys","title":"Create the private key shares","description":"Run all nodes in a distributed validator cluster","sidebar":"tutorialSidebar"},"int/quickstart/alone/deploy":{"id":"int/quickstart/alone/deploy","title":"Deploy the cluster","description":"Move the private key shares to the nodes and run the cluster","sidebar":"tutorialSidebar"},"int/quickstart/alone/test-locally":{"id":"int/quickstart/alone/test-locally","title":"Run a test cluster locally","description":"Test the solo cluster locally","sidebar":"tutorialSidebar"},"int/quickstart/group/index":{"id":"int/quickstart/group/index","title":"Run a cluster as a group","description":"Charon is in an alpha state and should be used with caution according to its Terms of Use.","sidebar":"tutorialSidebar"},"int/quickstart/group/quickstart-cli":{"id":"int/quickstart/group/quickstart-cli","title":"Using the CLI","description":"Run one node in a multi-operator distributed validator cluster using the CLI","sidebar":"tutorialSidebar"},"int/quickstart/group/quickstart-group-leader-creator":{"id":"int/quickstart/group/quickstart-group-leader-creator","title":"Creator & Leader Journey","description":"A leader/creator creates a cluster configuration to be shared with operators","sidebar":"tutorialSidebar"},"int/quickstart/group/quickstart-group-operator":{"id":"int/quickstart/group/quickstart-group-operator","title":"Operator Journey","description":"A node operator joins a DV cluster","sidebar":"tutorialSidebar"},"int/quickstart/index":{"id":"int/quickstart/index","title":"Quickstart Guides","description":"Charon is in an alpha state and should be used with caution according to its Terms of Use.","sidebar":"tutorialSidebar"},"int/quickstart/quickstart-exit":{"id":"int/quickstart/quickstart-exit","title":"Exit a DV","description":"Exit a validator","sidebar":"tutorialSidebar"},"int/quickstart/quickstart-mainnet":{"id":"int/quickstart/quickstart-mainnet","title":"Run a DV on mainnet","description":"Run a cluster on mainnet","sidebar":"tutorialSidebar"},"int/quickstart/update":{"id":"int/quickstart/update","title":"Update a DV","description":"Update your DV cluster with the latest Charon release","sidebar":"tutorialSidebar"},"intro":{"id":"intro","title":"Introduction","description":"Welcome to the Multi-Operator Validator Network","sidebar":"tutorialSidebar"},"sc/introducing-obol-managers":{"id":"sc/introducing-obol-managers","title":"Obol Manager Contracts","description":"How does the Obol Network look on-chain?","sidebar":"tutorialSidebar"},"sec/bug-bounty":{"id":"sec/bug-bounty","title":"Obol Bug Bounty","description":"Bug Bounty Policy","sidebar":"tutorialSidebar"},"sec/contact":{"id":"sec/contact","title":"Contacts","description":"Security Contacts","sidebar":"tutorialSidebar"},"sec/overview":{"id":"sec/overview","title":"Overview","description":"Security Overview","sidebar":"tutorialSidebar"},"sec/roadmap":{"id":"sec/roadmap","title":"Roadmap","description":"Security Roadmap","sidebar":"tutorialSidebar"},"testnet":{"id":"testnet","title":"Testnets","description":"Obol testnets roadmap","sidebar":"tutorialSidebar"}}}')}}]); \ No newline at end of file diff --git a/assets/js/main.8a0c77e0.js b/assets/js/main.8a0c77e0.js deleted file mode 100644 index 202e3e85d8..0000000000 --- a/assets/js/main.8a0c77e0.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! For license information please see main.8a0c77e0.js.LICENSE.txt */ -(self.webpackChunkobol_docs=self.webpackChunkobol_docs||[]).push([[40179],{50997:(e,t,n)=>{"use strict";n.d(t,{Z:()=>v});var r=n(67294),o=n(87462),a=n(68356),i=n.n(a),s=n(16887);const c={"002c6894":[()=>Promise.all([n.e(40532),n.e(33701)]).then(n.bind(n,68108)),"@site/versioned_docs/version-v0.13.0/int/quickstart/group/quickstart-group-leader-creator.md",68108],"004b515f":[()=>n.e(97654).then(n.bind(n,338)),"@site/versioned_docs/version-v0.8.1/int/working-groups.md",338],"0071aff0":[()=>n.e(55217).then(n.bind(n,15476)),"@site/versioned_docs/version-v0.5.0/cg/docs.md",15476],"01975149":[()=>n.e(35881).then(n.bind(n,17130)),"@site/versioned_docs/version-v0.16.0/cg/docs.md",17130],"022426d1":[()=>n.e(24873).then(n.bind(n,47198)),"@site/versioned_docs/version-v0.7.0/cg/docs.md",47198],"02f486a3":[()=>n.e(20454).then(n.bind(n,22035)),"@site/versioned_docs/version-v0.10.1/cg/bug-report.md",22035],"0428d998":[()=>n.e(23716).then(n.bind(n,31881)),"@site/versioned_docs/version-v0.14.4/fr/golang.md",31881],"04827ee4":[()=>n.e(74776).then(n.bind(n,18911)),"@site/versioned_docs/version-v0.17.0/int/quickstart/advanced/self-relay.md",18911],"05021577":[()=>n.e(13959).then(n.bind(n,48583)),"@site/versioned_docs/version-v0.17.0/sec/bug-bounty.md",48583],"05422c57":[()=>n.e(6263).then(n.bind(n,68538)),"@site/versioned_docs/version-v0.6.0/glossary.md",68538],"055e0531":[()=>n.e(77182).then(n.bind(n,39759)),"@site/versioned_docs/version-v0.3.0/int/working-groups.md",39759],"0570e025":[()=>n.e(23237).then(n.bind(n,79317)),"@site/versioned_docs/version-v0.12.0/fr/eth.md",79317],"05ebe968":[()=>n.e(72218).then(n.bind(n,44953)),"@site/versioned_docs/version-v0.13.0/dvl/intro.md",44953],"05fdc7cf":[()=>n.e(11767).then(n.bind(n,16282)),"@site/versioned_docs/version-v0.8.0/fr/eth.md",16282],"0741990a":[()=>n.e(79093).then(n.bind(n,3501)),"@site/versioned_docs/version-v0.5.0/testnet.md",3501],"074296d0":[()=>n.e(44409).then(n.bind(n,44634)),"@site/versioned_docs/version-v0.6.1/dvk/01_distributed-validator-keys.md",44634],"07b751c0":[()=>n.e(98259).then(n.bind(n,17396)),"@site/versioned_docs/version-v0.14.4/int/quickstart/group/index.md",17396],"0856e11c":[()=>n.e(84152).then(n.t.bind(n,14838,19)),"~docs/default/version-v-0-11-0-metadata-prop-cd1.json",14838],"08dc45fe":[()=>n.e(69319).then(n.bind(n,77440)),"@site/versioned_docs/version-v0.15.0/int/quickstart/quickstart-mainnet.md",77440],"09147072":[()=>n.e(26972).then(n.bind(n,87350)),"@site/versioned_docs/version-v0.14.0/sec/overview.md",87350],"09f3cc64":[()=>n.e(50734).then(n.bind(n,88154)),"@site/docs/int/faq/errors.mdx",88154],"0b599944":[()=>n.e(29671).then(n.bind(n,67042)),"@site/versioned_docs/version-v0.14.4/sec/bug-bounty.md",67042],"0ceb40a6":[()=>n.e(53686).then(n.bind(n,19501)),"@site/versioned_docs/version-v0.10.1/dvk/01_distributed-validator-keys.md",19501],"0cf59dd8":[()=>n.e(62290).then(n.bind(n,84046)),"@site/versioned_docs/version-v0.6.1/dv/06_peer-discovery.md",84046],"0e384e19":[()=>n.e(59671).then(n.bind(n,71039)),"@site/docs/intro.md",71039],"0e3c28af":[()=>n.e(53229).then(n.bind(n,22860)),"@site/versioned_docs/version-v0.5.0/dv/02_validator-creation.md",22860],"0f8223c9":[()=>n.e(50663).then(n.bind(n,83759)),"@site/versioned_docs/version-v0.8.1/intro.md",83759],"10012ac8":[()=>n.e(92947).then(n.bind(n,7159)),"@site/versioned_docs/version-v0.12.0/glossary.md",7159],"102c733d":[()=>n.e(83751).then(n.bind(n,29350)),"@site/versioned_docs/version-v0.3.0/dv/07_p2p-interface.md",29350],"1056ef30":[()=>n.e(68900).then(n.bind(n,90761)),"@site/versioned_docs/version-v0.7.0/dv/06_peer-discovery.md",90761],"10a02ae2":[()=>n.e(50596).then(n.t.bind(n,22602,19)),"~docs/default/version-v-0-10-1-metadata-prop-08b.json",22602],"1131332c":[()=>n.e(70623).then(n.bind(n,48303)),"@site/versioned_docs/version-v0.16.0/cg/bug-report.md",48303],"1159ba68":[()=>n.e(40935).then(n.bind(n,26663)),"@site/versioned_docs/version-v0.7.0/cg/bug-report.md",26663],"1170fa7f":[()=>n.e(18371).then(n.bind(n,89517)),"@site/docs/sec/roadmap.md",89517],"129ec98e":[()=>n.e(8434).then(n.bind(n,81424)),"@site/versioned_docs/version-v0.13.0/testnet.md",81424],"133fb230":[()=>n.e(22684).then(n.bind(n,11651)),"@site/versioned_docs/version-v0.11.0/dv/07_p2p-interface.md",11651],"13c87991":[()=>n.e(99342).then(n.bind(n,38851)),"@site/versioned_docs/version-v0.9.0/cg/docs.md",38851],"14445eed":[()=>n.e(65974).then(n.bind(n,55749)),"@site/versioned_docs/version-v0.8.0/int/faq.md",55749],"146eafe4":[()=>n.e(92541).then(n.bind(n,18391)),"@site/versioned_docs/version-v0.16.0/int/quickstart/group/index.md",18391],"148474a9":[()=>n.e(90626).then(n.t.bind(n,41837,19)),"/home/runner/work/obol-docs/obol-docs/.docusaurus/docusaurus-plugin-redoc/plugin-redoc-0/redocApiSpecV1.2-plugin-redoc-0.json",41837],"15a8ee44":[()=>n.e(89198).then(n.bind(n,88502)),"@site/versioned_docs/version-v0.14.0/int/quickstart/quickstart-cli.md",88502],"15c5c29e":[()=>n.e(38819).then(n.bind(n,14526)),"@site/versioned_docs/version-v0.13.0/int/quickstart/quickstart-cli.md",14526],"1618f8fa":[()=>n.e(39447).then(n.bind(n,19204)),"@site/versioned_docs/version-v0.3.0/dv/02_validator-creation.md",19204],"16338d49":[()=>n.e(64520).then(n.bind(n,47703)),"@site/versioned_docs/version-v0.4.0/int/faq.md",47703],"16e63f26":[()=>n.e(56421).then(n.bind(n,20171)),"@site/versioned_docs/version-v0.10.1/fr/golang.md",20171],17896441:[()=>Promise.all([n.e(40532),n.e(27918)]).then(n.bind(n,60408)),"@theme/DocItem",60408],"17b9cd48":[()=>n.e(68656).then(n.bind(n,38527)),"@site/versioned_docs/version-v0.3.0/intro.md",38527],"18d97061":[()=>n.e(4110).then(n.bind(n,58285)),"@site/versioned_docs/version-v0.14.0/int/Overview.md",58285],"18dec8ab":[()=>n.e(40331).then(n.t.bind(n,83769,19)),"/home/runner/work/obol-docs/obol-docs/.docusaurus/docusaurus-plugin-content-docs/default/plugin-route-context-module-100.json",83769],"1a71e0a6":[()=>n.e(85443).then(n.bind(n,24661)),"@site/versioned_docs/version-v0.8.1/int/faq.md",24661],"1a895fb8":[()=>n.e(52047).then(n.bind(n,82983)),"@site/versioned_docs/version-v0.10.0/int/quickstart/quickstart-builder-api.md",82983],"1a8d71a4":[()=>n.e(6261).then(n.bind(n,27581)),"@site/versioned_docs/version-v0.11.0/dv/08_distributed-validator-cluster-manifest.md",27581],"1aa15542":[()=>n.e(32412).then(n.bind(n,74819)),"@site/versioned_docs/version-v0.13.0/fr/eth.md",74819],"1b8a28ff":[()=>n.e(15152).then(n.bind(n,33025)),"@site/versioned_docs/version-v0.14.0/charon/charon-cli-reference.md",33025],"1bb75921":[()=>n.e(66139).then(n.bind(n,75619)),"@site/versioned_docs/version-v0.14.4/int/quickstart/quickstart-cli.md",75619],"1be30b32":[()=>n.e(97226).then(n.bind(n,81889)),"@site/versioned_docs/version-v0.16.0/int/quickstart/group/quickstart-group-operator.md",81889],"1be78505":[()=>Promise.all([n.e(40532),n.e(29514)]).then(n.bind(n,81299)),"@theme/DocPage",81299],"1c8cd572":[()=>n.e(97812).then(n.bind(n,79547)),"@site/versioned_docs/version-v0.4.0/dv/01_introducing-charon.md",79547],"1c9dacb3":[()=>n.e(59456).then(n.bind(n,76952)),"@site/versioned_docs/version-v0.7.0/testnet.md",76952],"1d244efb":[()=>n.e(36356).then(n.bind(n,93826)),"@site/versioned_docs/version-v0.10.0/int/quickstart/quickstart-group.md",93826],"1d4f42a4":[()=>n.e(71786).then(n.bind(n,16974)),"@site/versioned_docs/version-v0.4.0/dv/09_charon_cli_reference.md",16974],"1d793cc9":[()=>n.e(14147).then(n.bind(n,67952)),"@site/versioned_docs/version-v0.8.1/sc/01_introducing-obol-managers.md",67952],"1df93b7f":[()=>Promise.all([n.e(40532),n.e(53237)]).then(n.bind(n,11520)),"@site/src/pages/index.tsx",11520],"1e09db27":[()=>n.e(16354).then(n.bind(n,94244)),"@site/versioned_docs/version-v0.11.0/dvk/01_distributed-validator-keys.md",94244],"1e0cadb4":[()=>n.e(79171).then(n.bind(n,23503)),"@site/versioned_docs/version-v0.11.0/intro.md",23503],"1e462757":[()=>n.e(90958).then(n.bind(n,17770)),"@site/versioned_docs/version-v0.14.0/fr/eth.md",17770],"1f527192":[()=>n.e(47203).then(n.bind(n,248)),"@site/versioned_docs/version-v0.6.1/int/quickstart/index.md",248],"1fb2d38e":[()=>n.e(3140).then(n.bind(n,28609)),"@site/versioned_docs/version-v0.7.0/int/quickstart/quickstart-group.md",28609],"21b33502":[()=>n.e(50097).then(n.bind(n,4891)),"@site/versioned_docs/version-v0.6.0/fr/eth.md",4891],"21b82bdb":[()=>n.e(49636).then(n.bind(n,42807)),"@site/versioned_docs/version-v0.16.0/sc/01_introducing-obol-managers.md",42807],"220860d7":[()=>n.e(75309).then(n.bind(n,97938)),"@site/versioned_docs/version-v0.8.0/intro.md",97938],"22c2f26c":[()=>n.e(73992).then(n.bind(n,6697)),"@site/versioned_docs/version-v0.16.0/int/Overview.md",6697],"23d5b32d":[()=>n.e(75913).then(n.bind(n,84646)),"@site/versioned_docs/version-v0.15.0/fr/golang.md",84646],"245a79a1":[()=>n.e(48246).then(n.t.bind(n,73977,19)),"~docs/default/version-v-0-6-0-metadata-prop-7ac.json",73977],"2492a63a":[()=>Promise.all([n.e(40532),n.e(35034)]).then(n.bind(n,879)),"@site/versioned_docs/version-v0.16.0/int/quickstart/activate-dv.md",879],"25c3c707":[()=>n.e(50428).then(n.bind(n,99871)),"@site/versioned_docs/version-v0.9.0/dvk/02_distributed_validator_launchpad.md",99871],"25d703a4":[()=>n.e(24133).then(n.bind(n,85047)),"@site/docs/cg/docs.md",85047],"25e727cb":[()=>n.e(86501).then(n.bind(n,2795)),"@site/versioned_docs/version-v0.3.0/fr/eth.md",2795],"2635b1f3":[()=>n.e(50199).then(n.bind(n,6215)),"@site/docs/int/quickstart/alone/test-locally.md",6215],"2679d8ca":[()=>Promise.all([n.e(40532),n.e(65854)]).then(n.bind(n,97731)),"@site/versioned_docs/version-v0.15.0/int/quickstart/group/quickstart-group-leader-creator.md",97731],"26b99942":[()=>n.e(31032).then(n.bind(n,18040)),"@site/versioned_docs/version-v0.12.0/dv/02_validator-creation.md",18040],"271635d1":[()=>Promise.all([n.e(40532),n.e(46378)]).then(n.bind(n,87671)),"@site/docs/int/quickstart/activate-dv.md",87671],"283b8cf5":[()=>n.e(18168).then(n.bind(n,66732)),"@site/versioned_docs/version-v0.8.0/dv/06_peer-discovery.md",66732],"288f1c49":[()=>n.e(25418).then(n.bind(n,92108)),"@site/docs/int/quickstart/advanced/self-relay.md",92108],"28acb2d0":[()=>n.e(27351).then(n.bind(n,35262)),"@site/versioned_docs/version-v0.8.0/int/key-concepts.md",35262],"28ada887":[()=>n.e(66802).then(n.bind(n,94629)),"@site/versioned_docs/version-v0.10.1/dv/09_charon_cli_reference.md",94629],"291ae32e":[()=>n.e(15031).then(n.t.bind(n,58964,19)),"~docs/default/version-v-0-14-0-metadata-prop-450.json",58964],"2a3c2d58":[()=>n.e(3394).then(n.bind(n,21542)),"@site/versioned_docs/version-v0.11.0/int/faq/errors.mdx",21542],"2ad78f74":[()=>n.e(34969).then(n.bind(n,24805)),"@site/versioned_docs/version-v0.15.0/int/faq/errors.mdx",24805],"2b17aa49":[()=>n.e(6913).then(n.bind(n,4401)),"@site/versioned_docs/version-v0.15.0/int/quickstart/quickstart-split.md",4401],"2b290ac4":[()=>n.e(92988).then(n.bind(n,72761)),"@site/versioned_docs/version-v0.8.1/dv/07_p2p-interface.md",72761],"2b61172c":[()=>n.e(56106).then(n.bind(n,65224)),"@site/versioned_docs/version-v0.8.1/int/key-concepts.md",65224],"2b7ebe5b":[()=>n.e(53388).then(n.bind(n,69510)),"@site/versioned_docs/version-v0.11.0/int/quickstart/quickstart-builder-api.md",69510],"2b8dd68a":[()=>n.e(5526).then(n.bind(n,72288)),"@site/versioned_docs/version-v0.11.0/int/quickstart/group/quickstart-group-launchpad.md",72288],"2bfc42bc":[()=>n.e(1971).then(n.bind(n,50777)),"@site/versioned_docs/version-v0.6.0/dv/02_validator-creation.md",50777],"2c02d45f":[()=>n.e(5148).then(n.bind(n,47230)),"@site/versioned_docs/version-v0.8.1/cg/docs.md",47230],"2c6d99a3":[()=>n.e(66012).then(n.bind(n,11115)),"@site/versioned_docs/version-v0.10.0/sc/01_introducing-obol-managers.md",11115],"2ca781ad":[()=>n.e(41314).then(n.bind(n,22479)),"@site/versioned_docs/version-v0.5.0/int/faq.md",22479],"2d0401b0":[()=>n.e(24101).then(n.bind(n,49551)),"@site/versioned_docs/version-v0.10.1/intro.md",49551],"2d1c0648":[()=>n.e(11255).then(n.bind(n,86879)),"@site/versioned_docs/version-v0.4.0/cg/docs.md",86879],"2d5da12b":[()=>n.e(26392).then(n.bind(n,15619)),"@site/versioned_docs/version-v0.16.0/int/faq/general.md",15619],"2db624fa":[()=>n.e(79987).then(n.bind(n,85619)),"@site/versioned_docs/version-v0.15.0/int/quickstart/quickstart-alone.md",85619],"2e3bdbcf":[()=>n.e(35199).then(n.bind(n,22878)),"@site/versioned_docs/version-v0.12.0/dv/09_charon_cli_reference.md",22878],"2ede0ac3":[()=>n.e(61255).then(n.bind(n,8975)),"@site/versioned_docs/version-v0.15.0/int/quickstart/quickstart-cli.md",8975],"2faf00a8":[()=>n.e(21343).then(n.bind(n,38941)),"@site/versioned_docs/version-v0.10.0/dv/02_validator-creation.md",38941],"2fe07448":[()=>n.e(81142).then(n.bind(n,7939)),"@site/versioned_docs/version-v0.15.0/charon/intro.md",7939],30711194:[()=>n.e(67398).then(n.t.bind(n,37676,19)),"~docs/default/version-v-0-15-0-metadata-prop-57c.json",37676],"308a1886":[()=>n.e(48830).then(n.bind(n,14426)),"@site/versioned_docs/version-v0.17.0/intro.md",14426],"30e7bc3d":[()=>n.e(27200).then(n.bind(n,54596)),"@site/versioned_docs/version-v0.9.0/int/Overview.md",54596],"312e7dd3":[()=>n.e(702).then(n.bind(n,62705)),"@site/versioned_docs/version-v0.17.0/int/faq/errors.mdx",62705],31485162:[()=>n.e(29548).then(n.bind(n,66739)),"@site/docs/charon/charon-cli-reference.md",66739],"315ab063":[()=>n.e(38869).then(n.bind(n,86021)),"@site/versioned_docs/version-v0.5.0/dv/08_distributed-validator-cluster-manifest.md",86021],"318b5df0":[()=>n.e(19051).then(n.bind(n,59410)),"@site/versioned_docs/version-v0.14.4/int/faq/errors.mdx",59410],"31d213bd":[()=>n.e(43255).then(n.bind(n,58526)),"@site/versioned_docs/version-v0.6.0/intro.md",58526],"32ae2d3c":[()=>n.e(51700).then(n.bind(n,68287)),"@site/versioned_docs/version-v0.13.0/charon/charon_cli_reference.md",68287],"32bda632":[()=>n.e(42574).then(n.bind(n,62266)),"@site/versioned_docs/version-v0.7.0/int/working-groups.md",62266],"3305fb7f":[()=>n.e(74871).then(n.bind(n,27704)),"@site/versioned_docs/version-v0.7.0/int/quickstart/quickstart-alone.md",27704],"347518ee":[()=>n.e(50789).then(n.bind(n,11165)),"@site/versioned_docs/version-v0.13.0/charon/dkg.md",11165],35368016:[()=>n.e(93617).then(n.bind(n,79509)),"@site/versioned_docs/version-v0.10.0/dv/09_charon_cli_reference.md",79509],"35be6913":[()=>n.e(78979).then(n.bind(n,42213)),"@site/versioned_docs/version-v0.14.4/sc/01_introducing-obol-managers.md",42213],"35c5cbc6":[()=>Promise.all([n.e(40532),n.e(17774)]).then(n.bind(n,80091)),"@site/docs/int/quickstart/update.md",80091],"35e19268":[()=>n.e(26286).then(n.bind(n,5342)),"@site/versioned_docs/version-v0.7.0/dv/01_introducing-charon.md",5342],"360b20ec":[()=>n.e(87387).then(n.bind(n,76500)),"@site/versioned_docs/version-v0.9.0/dv/08_distributed-validator-cluster-manifest.md",76500],"3625d607":[()=>n.e(92385).then(n.bind(n,73233)),"@site/versioned_docs/version-v0.13.0/fr/golang.md",73233],"36a38b2c":[()=>n.e(33470).then(n.bind(n,70880)),"@site/versioned_docs/version-v0.8.0/dv/02_validator-creation.md",70880],"36a7ede7":[()=>n.e(51529).then(n.bind(n,7275)),"@site/versioned_docs/version-v0.4.0/dv/02_validator-creation.md",7275],"36b304d1":[()=>Promise.all([n.e(40532),n.e(65053)]).then(n.bind(n,79935)),"@site/versioned_docs/version-v0.17.0/int/quickstart/quickstart-exit.md",79935],"37208fda":[()=>n.e(20655).then(n.bind(n,88987)),"@site/versioned_docs/version-v0.17.0/int/quickstart/advanced/prysm-vc.md",88987],"37a3b3c6":[()=>n.e(37385).then(n.bind(n,45525)),"@site/versioned_docs/version-v0.12.0/dv/07_p2p-interface.md",45525],"37bbd917":[()=>n.e(27740).then(n.bind(n,70822)),"@site/versioned_docs/version-v0.8.0/dv/04_middleware-daemon.md",70822],"38ae6be8":[()=>n.e(58609).then(n.bind(n,7347)),"@site/versioned_docs/version-v0.14.0/int/quickstart/quickstart-combine.md",7347],"38bbe2a5":[()=>n.e(8099).then(n.bind(n,54793)),"@site/versioned_docs/version-v0.10.0/int/Overview.md",54793],"38d731fe":[()=>n.e(82264).then(n.bind(n,63169)),"@site/versioned_docs/version-v0.6.1/dv/09_charon_cli_reference.md",63169],"39215c9f":[()=>n.e(86467).then(n.bind(n,10666)),"@site/versioned_docs/version-v0.9.0/int/quickstart/quickstart-alone.md",10666],"39b8137f":[()=>n.e(38161).then(n.bind(n,69551)),"@site/versioned_docs/version-v0.10.1/int/faq/errors.mdx",69551],"3adfc020":[()=>n.e(8247).then(n.bind(n,6752)),"@site/versioned_docs/version-v0.5.0/intro.md",6752],"3af2c092":[()=>n.e(50945).then(n.bind(n,72590)),"@site/versioned_docs/version-v0.16.0/int/key-concepts.md",72590],"3b0d82cc":[()=>n.e(91189).then(n.bind(n,7675)),"@site/versioned_docs/version-v0.8.0/int/quickstart/quickstart-alone.md",7675],"3b82370e":[()=>n.e(31482).then(n.bind(n,35534)),"@site/versioned_docs/version-v0.13.0/charon/cluster-configuration.md",35534],"3bc04335":[()=>Promise.all([n.e(40532),n.e(1941)]).then(n.bind(n,49404)),"@site/versioned_docs/version-v0.17.0/int/quickstart/activate-dv.md",49404],"3c5ca088":[()=>n.e(74233).then(n.bind(n,58582)),"@site/versioned_docs/version-v0.9.0/testnet.md",58582],"3ca6ab8b":[()=>n.e(8966).then(n.bind(n,23909)),"@site/versioned_docs/version-v0.13.0/int/key-concepts.md",23909],"3ce3bcb8":[()=>n.e(76879).then(n.bind(n,54999)),"@site/versioned_docs/version-v0.14.0/intro.md",54999],"3e2797de":[()=>n.e(56933).then(n.bind(n,93680)),"@site/versioned_docs/version-v0.14.4/intro.md",93680],"3f1fa200":[()=>n.e(31931).then(n.bind(n,21633)),"@site/versioned_docs/version-v0.4.0/dvk/03_dkg_cli_reference.md",21633],"40119d61":[()=>Promise.all([n.e(40532),n.e(99451)]).then(n.bind(n,5973)),"@site/versioned_docs/version-v0.17.0/int/quickstart/advanced/quickstart-sdk.md",5973],40235206:[()=>n.e(52892).then(n.bind(n,84404)),"@site/versioned_docs/version-v0.14.4/int/quickstart/quickstart-combine.md",84404],40757869:[()=>n.e(33960).then(n.bind(n,16618)),"@site/versioned_docs/version-v0.6.1/cg/bug-report.md",16618],"40bf772e":[()=>n.e(18502).then(n.bind(n,88818)),"@site/versioned_docs/version-v0.14.4/sec/overview.md",88818],"40dc171e":[()=>n.e(14012).then(n.bind(n,28452)),"@site/versioned_docs/version-v0.17.0/int/Overview.md",28452],"4160318f":[()=>n.e(17315).then(n.bind(n,39817)),"@site/versioned_docs/version-v0.4.0/dv/04_middleware-daemon.md",39817],"4167a271":[()=>n.e(32617).then(n.bind(n,1954)),"@site/versioned_docs/version-v0.11.0/int/Overview.md",1954],"41f4de38":[()=>n.e(36783).then(n.bind(n,9536)),"@site/versioned_docs/version-v0.10.1/fr/eth.md",9536],"427e244f":[()=>Promise.all([n.e(40532),n.e(25275)]).then(n.bind(n,96842)),"@site/docs/int/quickstart/group/quickstart-group-leader-creator.md",96842],43198058:[()=>n.e(1560).then(n.bind(n,9331)),"@site/versioned_docs/version-v0.17.0/int/quickstart/advanced/quickstart-combine.md",9331],"432e801b":[()=>n.e(51276).then(n.bind(n,63492)),"@site/versioned_docs/version-v0.14.4/sec/contact.md",63492],"4466932f":[()=>n.e(91841).then(n.bind(n,83027)),"@site/versioned_docs/version-v0.6.1/dv/02_validator-creation.md",83027],"44cbf74b":[()=>Promise.all([n.e(40532),n.e(93961)]).then(n.bind(n,96447)),"@site/versioned_docs/version-v0.17.0/int/quickstart/alone/create-keys.md",96447],"44f29655":[()=>n.e(16498).then(n.bind(n,19074)),"@site/versioned_docs/version-v0.15.0/charon/cluster-configuration.md",19074],"468a236a":[()=>n.e(35282).then(n.bind(n,45683)),"@site/versioned_docs/version-v0.8.1/dv/09_charon_cli_reference.md",45683],"4690b1b7":[()=>n.e(1793).then(n.bind(n,38797)),"@site/versioned_docs/version-v0.5.0/fr/golang.md",38797],"46fbe162":[()=>n.e(91308).then(n.bind(n,19867)),"@site/versioned_docs/version-v0.17.0/sec/contact.md",19867],"48a4db89":[()=>n.e(7963).then(n.bind(n,79672)),"@site/versioned_docs/version-v0.10.0/dv/06_peer-discovery.md",79672],"4901a143":[()=>n.e(16469).then(n.bind(n,69585)),"@site/versioned_docs/version-v0.17.0/int/quickstart/group/index.md",69585],"492341ed":[()=>n.e(31463).then(n.bind(n,5024)),"@site/versioned_docs/version-v0.7.0/int/quickstart/index.md",5024],"496ce23a":[()=>Promise.all([n.e(40532),n.e(10437)]).then(n.bind(n,61481)),"@site/versioned_docs/version-v0.16.0/int/quickstart/quickstart-exit.md",61481],"4a6baf60":[()=>n.e(79418).then(n.bind(n,89878)),"@site/docs/int/quickstart/advanced/quickstart-split.md",89878],"4ace06e4":[()=>n.e(47380).then(n.bind(n,8661)),"@site/versioned_docs/version-v0.14.0/int/key-concepts.md",8661],"4af2167e":[()=>n.e(83111).then(n.bind(n,60161)),"@site/versioned_docs/version-v0.8.1/dv/04_middleware-daemon.md",60161],"4afcdde7":[()=>n.e(8386).then(n.bind(n,97336)),"@site/versioned_docs/version-v0.7.0/int/faq.md",97336],"4afe04e7":[()=>n.e(80010).then(n.bind(n,40817)),"@site/versioned_docs/version-v0.7.0/dvk/02_distributed_validator_launchpad.md",40817],"4b1dc77b":[()=>n.e(12998).then(n.bind(n,93665)),"@site/versioned_docs/version-v0.9.0/dvk/01_distributed-validator-keys.md",93665],"4b832583":[()=>n.e(58488).then(n.bind(n,59706)),"@site/versioned_docs/version-v0.10.1/dv/02_validator-creation.md",59706],"4b845fa4":[()=>n.e(43238).then(n.bind(n,27444)),"@site/versioned_docs/version-v0.15.0/sec/bug-bounty.md",27444],"4bdac715":[()=>n.e(33354).then(n.bind(n,22925)),"@site/versioned_docs/version-v0.11.0/sc/01_introducing-obol-managers.md",22925],"4c8f2941":[()=>n.e(77414).then(n.bind(n,71276)),"@site/versioned_docs/version-v0.15.0/sec/roadmap.md",71276],"4c9827da":[()=>n.e(23866).then(n.bind(n,37023)),"@site/versioned_docs/version-v0.7.0/dv/04_middleware-daemon.md",37023],"4cb7faaf":[()=>n.e(79536).then(n.bind(n,95941)),"@site/versioned_docs/version-v0.14.4/charon/networking.md",95941],"4cee678d":[()=>n.e(63334).then(n.bind(n,34976)),"@site/versioned_docs/version-v0.4.0/cg/bug-report.md",34976],"4e43a12d":[()=>n.e(73697).then(n.bind(n,43855)),"@site/versioned_docs/version-v0.12.0/int/working-groups.md",43855],"4fe5a8c1":[()=>n.e(44144).then(n.bind(n,54418)),"@site/versioned_docs/version-v0.17.0/charon/cluster-configuration.md",54418],"4fe83670":[()=>n.e(19745).then(n.bind(n,78131)),"@site/versioned_docs/version-v0.17.0/int/quickstart/group/quickstart-cli.md",78131],"5061904a":[()=>n.e(57761).then(n.bind(n,2400)),"@site/versioned_docs/version-v0.17.0/int/quickstart/advanced/quickstart-split.md",2400],"5096ac62":[()=>n.e(99663).then(n.bind(n,76651)),"@site/versioned_docs/version-v0.8.0/dv/08_distributed-validator-cluster-manifest.md",76651],"50be98dc":[()=>n.e(86897).then(n.bind(n,44024)),"@site/versioned_docs/version-v0.10.1/dvk/02_distributed_validator_launchpad.md",44024],"50e4915e":[()=>n.e(92443).then(n.bind(n,45150)),"@site/versioned_docs/version-v0.9.0/dv/02_validator-creation.md",45150],"50e9c3cd":[()=>n.e(65272).then(n.bind(n,93090)),"@site/versioned_docs/version-v0.11.0/glossary.md",93090],"5102bac6":[()=>n.e(86549).then(n.bind(n,77560)),"@site/versioned_docs/version-v0.14.0/charon/intro.md",77560],"51e282b0":[()=>n.e(66226).then(n.bind(n,41842)),"@site/versioned_docs/version-v0.14.4/int/Overview.md",41842],"5223d756":[()=>n.e(18959).then(n.bind(n,31420)),"@site/docs/charon/intro.md",31420],"5277c9d7":[()=>n.e(60315).then(n.bind(n,83414)),"@site/versioned_docs/version-v0.14.0/int/quickstart/quickstart-alone.md",83414],52863948:[()=>n.e(53656).then(n.bind(n,43549)),"@site/docs/int/quickstart/index.md",43549],53271846:[()=>n.e(62936).then(n.bind(n,3738)),"@site/versioned_docs/version-v0.9.0/int/quickstart/index.md",3738],"533666b3":[()=>n.e(89120).then(n.bind(n,52158)),"@site/versioned_docs/version-v0.17.0/int/quickstart/advanced/monitoring-credentials.md",52158],"53d534dc":[()=>n.e(3574).then(n.bind(n,18465)),"@site/docs/int/Overview.md",18465],54849964:[()=>n.e(87350).then(n.bind(n,39348)),"@site/versioned_docs/version-v0.14.4/int/quickstart/group/quickstart-group-operator.md",39348],"55635cca":[()=>n.e(76905).then(n.bind(n,89278)),"@site/versioned_docs/version-v0.12.0/int/faq/general.md",89278],"55be30be":[()=>n.e(78585).then(n.bind(n,99752)),"@site/docs/int/quickstart/advanced/quickstart-combine.md",99752],"55f94dfa":[()=>n.e(96190).then(n.bind(n,36740)),"@site/versioned_docs/version-v0.16.0/int/quickstart/alone/test-locally.md",36740],"5654aacc":[()=>n.e(44378).then(n.bind(n,77283)),"@site/versioned_docs/version-v0.14.0/int/quickstart/group/quickstart-group-operator.md",77283],"56862fca":[()=>n.e(74666).then(n.bind(n,86843)),"@site/versioned_docs/version-v0.6.0/int/faq.md",86843],"56f1b45a":[()=>n.e(88840).then(n.bind(n,99442)),"@site/versioned_docs/version-v0.6.0/int/key-concepts.md",99442],"57adf4f9":[()=>n.e(47802).then(n.bind(n,62800)),"@site/versioned_docs/version-v0.8.0/cg/bug-report.md",62800],"5856ba79":[()=>n.e(66478).then(n.bind(n,79023)),"@site/versioned_docs/version-v0.6.1/sc/01_introducing-obol-managers.md",79023],"588693bc":[()=>n.e(77933).then(n.bind(n,2676)),"@site/versioned_docs/version-v0.7.0/int/Overview.md",2676],"58a30f72":[()=>n.e(8335).then(n.bind(n,38427)),"@site/versioned_docs/version-v0.11.0/int/key-concepts.md",38427],"593bb227":[()=>n.e(91619).then(n.bind(n,13103)),"@site/versioned_docs/version-v0.16.0/int/quickstart/advanced/adv-docker-configs.md",13103],"59931e59":[()=>n.e(16659).then(n.bind(n,95977)),"@site/versioned_docs/version-v0.16.0/sec/roadmap.md",95977],"59d41013":[()=>n.e(63072).then(n.bind(n,46813)),"@site/versioned_docs/version-v0.8.0/int/quickstart/quickstart-group.md",46813],"5ad7fda9":[()=>n.e(42342).then(n.bind(n,33202)),"@site/versioned_docs/version-v0.16.0/cg/feedback.md",33202],"5b368419":[()=>n.e(37791).then(n.bind(n,7496)),"@site/versioned_docs/version-v0.7.0/dv/09_charon_cli_reference.md",7496],"5b54512f":[()=>n.e(22796).then(n.bind(n,35231)),"@site/docs/int/quickstart/alone/deploy.md",35231],"5b856f88":[()=>n.e(54535).then(n.bind(n,39295)),"@site/versioned_docs/version-v0.13.0/int/quickstart/quickstart-builder-api.md",39295],"5bb7e11b":[()=>n.e(25567).then(n.bind(n,5680)),"@site/docs/charon/cluster-configuration.md",5680],"5bb8f028":[()=>n.e(17588).then(n.bind(n,42937)),"@site/versioned_docs/version-v0.14.0/charon/dkg.md",42937],"5bca04ed":[()=>n.e(81319).then(n.bind(n,73012)),"@site/versioned_docs/version-v0.4.0/dvk/01_distributed-validator-keys.md",73012],"5be71e4a":[()=>n.e(87345).then(n.bind(n,65197)),"@site/versioned_docs/version-v0.17.0/cg/feedback.md",65197],"5c4eed1e":[()=>n.e(28971).then(n.bind(n,13905)),"@site/versioned_docs/version-v0.11.0/dv/01_introducing-charon.md",13905],"5c728cdc":[()=>n.e(43037).then(n.bind(n,93557)),"@site/versioned_docs/version-v0.9.0/cg/bug-report.md",93557],"5cdbfa78":[()=>n.e(11394).then(n.bind(n,63917)),"@site/versioned_docs/version-v0.10.0/int/working-groups.md",63917],"5dc20919":[()=>n.e(57271).then(n.bind(n,66968)),"@site/versioned_docs/version-v0.14.4/fr/eth.md",66968],"5ded5f8c":[()=>n.e(87798).then(n.bind(n,67462)),"@site/versioned_docs/version-v0.12.0/int/Overview.md",67462],"5df84c71":[()=>n.e(45598).then(n.t.bind(n,96929,19)),"~docs/default/version-v-0-6-1-metadata-prop-57f.json",96929],"5dfaf5c8":[()=>n.e(35287).then(n.bind(n,92856)),"@site/versioned_docs/version-v0.16.0/int/faq/risks.md",92856],"5e9f5e1a":[()=>Promise.resolve().then(n.bind(n,36809)),"@generated/docusaurus.config",36809],"5eb14ac3":[()=>n.e(11274).then(n.bind(n,94262)),"@site/versioned_docs/version-v0.15.0/sec/contact.md",94262],"5f2e9aa8":[()=>n.e(81466).then(n.bind(n,72560)),"@site/versioned_docs/version-v0.5.0/int/quickstart.md",72560],"5f71a532":[()=>n.e(21685).then(n.t.bind(n,22841,19)),"~docs/default/version-v-0-8-1-metadata-prop-866.json",22841],"604bf076":[()=>n.e(49593).then(n.bind(n,56566)),"@site/versioned_docs/version-v0.4.0/fr/golang.md",56566],60740264:[()=>n.e(46835).then(n.bind(n,74439)),"@site/versioned_docs/version-v0.8.1/int/quickstart/quickstart-group.md",74439],"60740c99":[()=>n.e(36591).then(n.bind(n,506)),"@site/versioned_docs/version-v0.6.0/dv/08_distributed-validator-cluster-manifest.md",506],61035512:[()=>n.e(5250).then(n.bind(n,62525)),"@site/versioned_docs/version-v0.16.0/charon/cluster-configuration.md",62525],"627778c1":[()=>n.e(82492).then(n.bind(n,45961)),"@site/versioned_docs/version-v0.15.0/int/Overview.md",45961],"62ef5b8e":[()=>n.e(76555).then(n.bind(n,85147)),"@site/versioned_docs/version-v0.12.0/dv/01_introducing-charon.md",85147],"63a5191c":[()=>n.e(98495).then(n.bind(n,79186)),"@site/versioned_docs/version-v0.16.0/charon/networking.md",79186],"63f351e7":[()=>n.e(13394).then(n.bind(n,88422)),"@site/versioned_docs/version-v0.11.0/fr/golang.md",88422],"6412a1d5":[()=>n.e(98595).then(n.t.bind(n,44157,19)),"~docs/default/version-v-0-9-0-metadata-prop-e74.json",44157],64651014:[()=>n.e(85595).then(n.bind(n,36070)),"@site/versioned_docs/version-v0.7.0/fr/eth.md",36070],"64f9276a":[()=>n.e(76849).then(n.bind(n,9223)),"@site/versioned_docs/version-v0.13.0/int/quickstart/group/quickstart-group-operator.md",9223],"65baeaa9":[()=>n.e(72723).then(n.bind(n,13524)),"@site/versioned_docs/version-v0.6.1/int/working-groups.md",13524],"664dffe7":[()=>n.e(82970).then(n.bind(n,90059)),"@site/versioned_docs/version-v0.14.0/sec/bug-bounty.md",90059],"6671b87a":[()=>n.e(82815).then(n.bind(n,289)),"@site/versioned_docs/version-v0.3.0/dv/08_distributed-validator-cluster-manifest.md",289],"66ce680a":[()=>Promise.all([n.e(40532),n.e(33703)]).then(n.bind(n,58713)),"@site/versioned_docs/version-v0.14.4/int/quickstart/group/quickstart-group-leader-creator.md",58713],"66d39a2f":[()=>n.e(56546).then(n.bind(n,21496)),"@site/versioned_docs/version-v0.14.0/sec/contact.md",21496],"670eaaa7":[()=>n.e(6939).then(n.bind(n,80088)),"@site/versioned_docs/version-v0.3.0/int/key-concepts.md",80088],"6842559f":[()=>n.e(66271).then(n.bind(n,55470)),"@site/versioned_docs/version-v0.16.0/int/quickstart/advanced/quickstart-split.md",55470],"689ac209":[()=>n.e(74216).then(n.bind(n,63145)),"@site/versioned_docs/version-v0.14.4/dvl/intro.md",63145],"69c38302":[()=>Promise.all([n.e(40532),n.e(84749)]).then(n.bind(n,66962)),"@site/docs/int/quickstart/advanced/quickstart-sdk.md",66962],"6a2a4f2d":[()=>n.e(99850).then(n.bind(n,3952)),"@site/versioned_docs/version-v0.8.1/int/quickstart/index.md",3952],"6a7f9d96":[()=>n.e(54748).then(n.bind(n,19464)),"@site/versioned_docs/version-v0.16.0/int/quickstart/advanced/quickstart-builder-api.md",19464],"6aa4dc95":[()=>n.e(4769).then(n.bind(n,54951)),"@site/versioned_docs/version-v0.11.0/int/faq/general.md",54951],"6b4c78c6":[()=>n.e(18406).then(n.bind(n,57824)),"@site/versioned_docs/version-v0.16.0/int/quickstart/alone/deploy.md",57824],"6bfdefcf":[()=>n.e(60913).then(n.bind(n,6556)),"@site/versioned_docs/version-v0.17.0/fr/eth.md",6556],"6d35eaa2":[()=>n.e(52981).then(n.bind(n,39468)),"@site/versioned_docs/version-v0.11.0/int/quickstart/quickstart-alone.md",39468],"6e486207":[()=>n.e(66379).then(n.bind(n,54753)),"@site/versioned_docs/version-v0.17.0/int/quickstart/alone/deploy.md",54753],"6e4c28a9":[()=>n.e(25593).then(n.bind(n,85053)),"@site/versioned_docs/version-v0.15.0/testnet.md",85053],"6ea86c3b":[()=>n.e(35381).then(n.bind(n,91947)),"@site/versioned_docs/version-v0.8.1/dv/06_peer-discovery.md",91947],"6edbac6c":[()=>n.e(37767).then(n.bind(n,37854)),"@site/versioned_docs/version-v0.11.0/fr/eth.md",37854],"6f2c778a":[()=>n.e(2186).then(n.bind(n,32756)),"@site/versioned_docs/version-v0.6.1/int/quickstart/quickstart-alone.md",32756],"6fd2ace0":[()=>n.e(53221).then(n.bind(n,55171)),"@site/versioned_docs/version-v0.14.0/int/quickstart/quickstart-builder-api.md",55171],"70046e39":[()=>n.e(95291).then(n.t.bind(n,69162,19)),"/home/runner/work/obol-docs/obol-docs/.docusaurus/docusaurus-plugin-redoc/plugin-redoc-0/plugin-route-context-module-100.json",69162],"70cd5a90":[()=>n.e(52036).then(n.bind(n,94195)),"@site/versioned_docs/version-v0.4.0/dvk/02_distributed_validator_launchpad.md",94195],"719157ec":[()=>n.e(46645).then(n.t.bind(n,15745,19)),"/home/runner/work/obol-docs/obol-docs/.docusaurus/docusaurus-plugin-content-pages/default/plugin-route-context-module-100.json",15745],"71eb4ee4":[()=>n.e(50087).then(n.bind(n,31992)),"@site/versioned_docs/version-v0.12.0/sc/01_introducing-obol-managers.md",31992],"725dc7dd":[()=>n.e(30339).then(n.bind(n,92148)),"@site/versioned_docs/version-v0.8.0/dv/01_introducing-charon.md",92148],"72b225e6":[()=>n.e(41019).then(n.bind(n,41536)),"@site/versioned_docs/version-v0.16.0/dvl/intro.md",41536],"740af167":[()=>n.e(57804).then(n.bind(n,1177)),"@site/versioned_docs/version-v0.6.0/int/Overview.md",1177],"74506bc5":[()=>Promise.all([n.e(40532),n.e(56113)]).then(n.bind(n,14451)),"@site/versioned_docs/version-v0.17.0/int/quickstart/update.md",14451],"74e8e31c":[()=>n.e(97092).then(n.bind(n,30676)),"@site/versioned_docs/version-v0.8.1/dv/01_introducing-charon.md",30676],"75d521f5":[()=>n.e(21003).then(n.bind(n,97240)),"@site/docs/int/quickstart/advanced/prysm-vc.md",97240],"7635a0f3":[()=>n.e(16718).then(n.bind(n,49523)),"@site/versioned_docs/version-v0.8.1/cg/bug-report.md",49523],"7652110d":[()=>n.e(21455).then(n.bind(n,83219)),"@site/versioned_docs/version-v0.6.1/int/key-concepts.md",83219],"7684895f":[()=>n.e(17307).then(n.bind(n,4094)),"@site/docs/int/quickstart/group/quickstart-cli.md",4094],"77d774b3":[()=>n.e(51831).then(n.bind(n,71589)),"@site/versioned_docs/version-v0.11.0/int/working-groups.md",71589],"7812431c":[()=>n.e(49533).then(n.bind(n,58440)),"@site/versioned_docs/version-v0.12.0/dv/08_distributed-validator-cluster-manifest.md",58440],"791da173":[()=>n.e(86297).then(n.bind(n,64009)),"@site/versioned_docs/version-v0.5.0/fr/eth.md",64009],"7a8cacb6":[()=>n.e(88756).then(n.bind(n,22945)),"@site/versioned_docs/version-v0.6.1/int/faq.md",22945],"7abdb583":[()=>n.e(13981).then(n.bind(n,79532)),"@site/versioned_docs/version-v0.10.0/int/quickstart/quickstart-alone.md",79532],"7b45220c":[()=>n.e(79453).then(n.bind(n,81207)),"@site/versioned_docs/version-v0.15.0/charon/networking.md",81207],"7b857210":[()=>n.e(18870).then(n.bind(n,34552)),"@site/versioned_docs/version-v0.10.1/dv/01_introducing-charon.md",34552],"7b9f4992":[()=>n.e(69820).then(n.bind(n,76197)),"@site/versioned_docs/version-v0.13.0/charon/p2p-interface.md",76197],"7bd79970":[()=>n.e(40301).then(n.bind(n,72118)),"@site/versioned_docs/version-v0.3.0/int/faq.md",72118],"7bf5da6d":[()=>n.e(62724).then(n.bind(n,29051)),"@site/versioned_docs/version-v0.6.1/fr/golang.md",29051],"7c097dec":[()=>n.e(16318).then(n.bind(n,22088)),"@site/versioned_docs/version-v0.9.0/int/working-groups.md",22088],"7c12b1ba":[()=>n.e(89305).then(n.bind(n,57222)),"@site/versioned_docs/version-v0.17.0/cg/bug-report.md",57222],"7d280902":[()=>n.e(1473).then(n.bind(n,92958)),"@site/versioned_docs/version-v0.17.0/fr/golang.md",92958],"7d600f3a":[()=>n.e(14991).then(n.bind(n,94211)),"@site/versioned_docs/version-v0.6.1/cg/docs.md",94211],"7d9c39ec":[()=>n.e(49173).then(n.bind(n,2106)),"@site/versioned_docs/version-v0.7.0/sc/01_introducing-obol-managers.md",2106],"7dc2d4dd":[()=>n.e(4325).then(n.bind(n,43610)),"@site/versioned_docs/version-v0.15.0/sec/overview.md",43610],"7ec3a3fd":[()=>n.e(16402).then(n.bind(n,45458)),"@site/versioned_docs/version-v0.10.1/cg/docs.md",45458],"7f628eb4":[()=>n.e(61692).then(n.bind(n,2101)),"@site/versioned_docs/version-v0.17.0/int/quickstart/advanced/adv-docker-configs.md",2101],"7f778a4b":[()=>n.e(78902).then(n.bind(n,91469)),"@site/versioned_docs/version-v0.15.0/int/quickstart/quickstart-combine.md",91469],"7f8692dd":[()=>n.e(37142).then(n.bind(n,75965)),"@site/versioned_docs/version-v0.9.0/fr/golang.md",75965],"8000be20":[()=>n.e(30957).then(n.bind(n,99655)),"@site/versioned_docs/version-v0.7.0/dv/02_validator-creation.md",99655],80330438:[()=>n.e(40739).then(n.bind(n,85250)),"@site/versioned_docs/version-v0.15.0/intro.md",85250],"80d59227":[()=>n.e(52786).then(n.bind(n,27352)),"@site/versioned_docs/version-v0.6.0/fr/golang.md",27352],"81631ccf":[()=>n.e(58589).then(n.bind(n,16902)),"@site/versioned_docs/version-v0.14.4/int/quickstart/quickstart-builder-api.md",16902],"826e64fa":[()=>n.e(44953).then(n.bind(n,56438)),"@site/versioned_docs/version-v0.6.1/intro.md",56438],"8391e5d7":[()=>n.e(60655).then(n.bind(n,95136)),"@site/versioned_docs/version-v0.10.0/int/key-concepts.md",95136],"843aee64":[()=>Promise.all([n.e(40532),n.e(94096)]).then(n.bind(n,42349)),"@site/versioned_docs/version-v0.14.0/int/quickstart/group/quickstart-group-leader-creator.md",42349],"845daa77":[()=>n.e(88803).then(n.bind(n,42793)),"@site/versioned_docs/version-v0.7.0/glossary.md",42793],"8499d599":[()=>n.e(61294).then(n.bind(n,95819)),"@site/versioned_docs/version-v0.16.0/fr/golang.md",95819],"84a6748b":[()=>n.e(6882).then(n.bind(n,3440)),"@site/versioned_docs/version-v0.17.0/charon/intro.md",3440],"84a915db":[()=>n.e(74878).then(n.bind(n,36386)),"@site/versioned_docs/version-v0.6.0/sc/01_introducing-obol-managers.md",36386],"84b34b58":[()=>n.e(70796).then(n.bind(n,31139)),"@site/versioned_docs/version-v0.15.0/dvl/intro.md",31139],"85dc2489":[()=>n.e(15524).then(n.bind(n,39382)),"@site/versioned_docs/version-v0.8.0/int/working-groups.md",39382],"8607c93b":[()=>n.e(1310).then(n.bind(n,81532)),"@site/versioned_docs/version-v0.5.0/dvk/01_distributed-validator-keys.md",81532],"863869fb":[()=>n.e(87969).then(n.bind(n,15773)),"@site/versioned_docs/version-v0.10.1/int/quickstart/group/quickstart-group-launchpad.md",15773],"86c1ccf4":[()=>n.e(66696).then(n.bind(n,97885)),"@site/versioned_docs/version-v0.6.0/cg/bug-report.md",97885],"87c66efe":[()=>n.e(20127).then(n.bind(n,62544)),"@site/versioned_docs/version-v0.5.0/dv/04_middleware-daemon.md",62544],"87d24b4f":[()=>n.e(23549).then(n.bind(n,88240)),"@site/versioned_docs/version-v0.10.1/int/quickstart/quickstart-alone.md",88240],"87f5eb8b":[()=>n.e(71674).then(n.bind(n,32142)),"@site/docs/int/faq/risks.md",32142],"87fb3351":[()=>n.e(50248).then(n.bind(n,16973)),"@site/versioned_docs/version-v0.3.0/glossary.md",16973],"885fba72":[()=>n.e(87913).then(n.bind(n,38422)),"@site/versioned_docs/version-v0.17.0/int/quickstart/advanced/quickstart-builder-api.md",38422],"8919c8fe":[()=>n.e(97422).then(n.bind(n,98708)),"@site/versioned_docs/version-v0.17.0/testnet.md",98708],"8a6844c3":[()=>n.e(95378).then(n.bind(n,66816)),"@site/versioned_docs/version-v0.11.0/dv/09_charon_cli_reference.md",66816],"8abb95a6":[()=>n.e(71108).then(n.bind(n,75095)),"@site/versioned_docs/version-v0.17.0/sec/roadmap.md",75095],"8ae8531f":[()=>n.e(49761).then(n.bind(n,89274)),"@site/versioned_docs/version-v0.6.0/testnet.md",89274],"8afd6ddd":[()=>n.e(62010).then(n.bind(n,81507)),"@site/versioned_docs/version-v0.12.0/intro.md",81507],"8b8f4336":[()=>n.e(44272).then(n.bind(n,88314)),"@site/versioned_docs/version-v0.11.0/cg/docs.md",88314],"8bae6df3":[()=>n.e(63492).then(n.bind(n,46955)),"@site/versioned_docs/version-v0.10.0/glossary.md",46955],"8bb82424":[()=>n.e(37815).then(n.bind(n,73420)),"@site/versioned_docs/version-v0.5.0/sc/01_introducing-obol-managers.md",73420],"8bc6ad35":[()=>n.e(38098).then(n.bind(n,13941)),"@site/versioned_docs/version-v0.15.0/cg/bug-report.md",13941],"8c0f803a":[()=>n.e(44675).then(n.bind(n,2654)),"@site/versioned_docs/version-v0.14.0/sc/01_introducing-obol-managers.md",2654],"8d097101":[()=>n.e(82962).then(n.bind(n,10942)),"@site/versioned_docs/version-v0.15.0/cg/docs.md",10942],"8d0fff93":[()=>n.e(58280).then(n.bind(n,27090)),"@site/versioned_docs/version-v0.3.0/cg/bug-report.md",27090],"8d7ecbfe":[()=>n.e(98713).then(n.bind(n,4072)),"@site/versioned_docs/version-v0.10.0/intro.md",4072],"8de3500b":[()=>Promise.all([n.e(40532),n.e(99e3)]).then(n.bind(n,7963)),"@site/docs/int/quickstart/quickstart-exit.md",7963],"8e0677fd":[()=>n.e(84004).then(n.bind(n,44311)),"@site/versioned_docs/version-v0.9.0/int/faq.md",44311],"8e988a35":[()=>n.e(33688).then(n.bind(n,8006)),"@site/versioned_docs/version-v0.10.1/int/faq/general.md",8006],"8ebbc3a7":[()=>n.e(87372).then(n.bind(n,14561)),"@site/docs/fr/golang.md",14561],"8f5712b9":[()=>n.e(42465).then(n.bind(n,11031)),"@site/versioned_docs/version-v0.4.0/int/key-concepts.md",11031],"9012b03b":[()=>n.e(60515).then(n.bind(n,61591)),"@site/versioned_docs/version-v0.16.0/intro.md",61591],"901956f6":[()=>n.e(74711).then(n.bind(n,96011)),"@site/versioned_docs/version-v0.5.0/dv/07_p2p-interface.md",96011],"90d91f47":[()=>n.e(72537).then(n.bind(n,57799)),"@site/versioned_docs/version-v0.10.1/int/working-groups.md",57799],"915a251e":[()=>n.e(82561).then(n.t.bind(n,43417,19)),"~docs/default/version-v-0-3-0-metadata-prop-2a4.json",43417],"915b91df":[()=>n.e(29629).then(n.bind(n,19331)),"@site/docs/sec/bug-bounty.md",19331],"91af2a5b":[()=>n.e(34449).then(n.bind(n,29408)),"@site/docs/charon/networking.md",29408],"91b4bfe1":[()=>n.e(82748).then(n.bind(n,30030)),"@site/docs/fr/eth.md",30030],"92f6a55c":[()=>n.e(2237).then(n.bind(n,76706)),"@site/versioned_docs/version-v0.9.0/dv/06_peer-discovery.md",76706],"935f2afb":[()=>n.e(80053).then(n.t.bind(n,1109,19)),"~docs/default/version-current-metadata-prop-751.json",1109],"945edec6":[()=>n.e(76991).then(n.bind(n,16273)),"@site/versioned_docs/version-v0.13.0/int/faq/general.md",16273],"94832c91":[()=>n.e(9275).then(n.bind(n,22952)),"@site/versioned_docs/version-v0.17.0/charon/dkg.md",22952],"95cb4f81":[()=>n.e(6431).then(n.bind(n,88270)),"@site/versioned_docs/version-v0.13.0/cg/bug-report.md",88270],"95de1512":[()=>n.e(25082).then(n.bind(n,68991)),"@site/versioned_docs/version-v0.3.0/dvk/01_distributed-validator-keys.md",68991],"95df00bd":[()=>n.e(80336).then(n.bind(n,44818)),"@site/versioned_docs/version-v0.6.0/dv/07_p2p-interface.md",44818],"96f10d90":[()=>n.e(90250).then(n.bind(n,45152)),"@site/versioned_docs/version-v0.7.0/dv/08_distributed-validator-cluster-manifest.md",45152],"97b2e2b8":[()=>n.e(31175).then(n.t.bind(n,27364,19)),"~docs/default/version-v-0-10-0-metadata-prop-af3.json",27364],"98035c6b":[()=>n.e(99281).then(n.bind(n,49786)),"@site/versioned_docs/version-v0.16.0/sec/bug-bounty.md",49786],"982716a0":[()=>n.e(71636).then(n.bind(n,50124)),"@site/versioned_docs/version-v0.15.0/int/quickstart/group/quickstart-group-operator.md",50124],"9835a88f":[()=>n.e(14211).then(n.bind(n,47805)),"@site/versioned_docs/version-v0.4.0/glossary.md",47805],"985bcfc7":[()=>n.e(91532).then(n.bind(n,19766)),"@site/versioned_docs/version-v0.8.1/int/Overview.md",19766],"9a1c3c46":[()=>n.e(66793).then(n.bind(n,64880)),"@site/versioned_docs/version-v0.6.1/int/Overview.md",64880],"9b387895":[()=>n.e(41409).then(n.bind(n,62743)),"@site/versioned_docs/version-v0.10.0/dv/07_p2p-interface.md",62743],"9d2f8050":[()=>Promise.all([n.e(40532),n.e(96866)]).then(n.bind(n,96952)),"@site/versioned_docs/version-v0.14.4/int/quickstart/quickstart-exit.md",96952],"9d35ff5e":[()=>n.e(67262).then(n.bind(n,90392)),"@site/versioned_docs/version-v0.11.0/dv/02_validator-creation.md",90392],"9d3665b4":[()=>n.e(24617).then(n.bind(n,54191)),"@site/versioned_docs/version-v0.8.1/fr/eth.md",54191],"9e1f1b47":[()=>n.e(28077).then(n.bind(n,86687)),"@site/docs/int/quickstart/advanced/quickstart-builder-api.md",86687],"9e60d320":[()=>n.e(46873).then(n.bind(n,49689)),"@site/versioned_docs/version-v0.3.0/testnet.md",49689],"9e98e15b":[()=>n.e(88839).then(n.bind(n,92888)),"@site/versioned_docs/version-v0.10.1/int/quickstart/index.md",92888],"9ebbcfa7":[()=>n.e(88154).then(n.bind(n,52102)),"@site/versioned_docs/version-v0.14.0/fr/golang.md",52102],"9ecee5ef":[()=>n.e(56942).then(n.bind(n,45294)),"@site/versioned_docs/version-v0.10.0/cg/bug-report.md",45294],"9fe0c04e":[()=>n.e(36232).then(n.bind(n,77213)),"@site/versioned_docs/version-v0.8.1/glossary.md",77213],a0f762bd:[()=>n.e(69323).then(n.bind(n,18319)),"@site/docs/cg/feedback.md",18319],a13b0829:[()=>n.e(32377).then(n.bind(n,40636)),"@site/versioned_docs/version-v0.3.0/dv/01_introducing-charon.md",40636],a182c3f4:[()=>n.e(92731).then(n.bind(n,86931)),"@site/versioned_docs/version-v0.6.0/dv/09_charon_cli_reference.md",86931],a191c2f9:[()=>n.e(78933).then(n.bind(n,18844)),"@site/versioned_docs/version-v0.13.0/cg/docs.md",18844],a2885d1b:[()=>n.e(97088).then(n.bind(n,60061)),"@site/versioned_docs/version-v0.14.0/int/faq/general.md",60061],a32f9498:[()=>n.e(72191).then(n.bind(n,96528)),"@site/versioned_docs/version-v0.10.1/dv/07_p2p-interface.md",96528],a35325f6:[()=>n.e(75762).then(n.bind(n,96844)),"@site/versioned_docs/version-v0.16.0/int/quickstart/quickstart-mainnet.md",96844],a380cfc0:[()=>n.e(42186).then(n.bind(n,46242)),"@site/versioned_docs/version-v0.8.0/fr/golang.md",46242],a4edc326:[()=>n.e(90673).then(n.t.bind(n,21294,19)),"/home/runner/work/obol-docs/obol-docs/.docusaurus/docusaurus-plugin-redoc/plugin-redoc-0/redocApiLayoutV1-plugin-redoc-0.json",21294],a5588f3d:[()=>n.e(98866).then(n.bind(n,56054)),"@site/versioned_docs/version-v0.14.0/int/faq/errors.mdx",56054],a55df1aa:[()=>n.e(34214).then(n.bind(n,66979)),"@site/docs/int/faq/threat_model.md",66979],a571a3e0:[()=>Promise.all([n.e(40532),n.e(35577)]).then(n.bind(n,16216)),"@site/versioned_docs/version-v0.15.0/int/quickstart/quickstart-exit.md",16216],a5e873f0:[()=>n.e(45720).then(n.bind(n,36035)),"@site/versioned_docs/version-v0.15.0/int/quickstart/group/index.md",36035],a6ddc338:[()=>n.e(57154).then(n.bind(n,82225)),"@site/versioned_docs/version-v0.14.4/cg/bug-report.md",82225],a779e12e:[()=>n.e(83407).then(n.bind(n,38954)),"@site/versioned_docs/version-v0.11.0/int/quickstart/group/quickstart-group-cli.md",38954],a780ee23:[()=>n.e(46887).then(n.bind(n,22905)),"@site/versioned_docs/version-v0.5.0/dv/09_charon_cli_reference.md",22905],a7ab4f1b:[()=>n.e(99708).then(n.bind(n,1807)),"@site/versioned_docs/version-v0.12.0/dvk/02_distributed_validator_launchpad.md",1807],a8108ea7:[()=>n.e(22459).then(n.bind(n,15164)),"@site/docs/sc/01_introducing-obol-managers.md",15164],a83551e6:[()=>n.e(65134).then(n.bind(n,42567)),"@site/versioned_docs/version-v0.4.0/dv/07_p2p-interface.md",42567],a88a50d3:[()=>n.e(33400).then(n.bind(n,39992)),"@site/versioned_docs/version-v0.8.1/fr/golang.md",39992],a8915194:[()=>n.e(50994).then(n.bind(n,21389)),"@site/versioned_docs/version-v0.15.0/int/faq/general.md",21389],a8972d21:[()=>n.e(54207).then(n.bind(n,4112)),"@site/versioned_docs/version-v0.10.0/testnet.md",4112],a927756a:[()=>n.e(6461).then(n.bind(n,87796)),"@site/versioned_docs/version-v0.6.0/dvk/03_dkg_cli_reference.md",87796],a9d4fd9a:[()=>n.e(4585).then(n.bind(n,77926)),"@site/versioned_docs/version-v0.5.0/dvk/03_dkg_cli_reference.md",77926],aa1e2f1a:[()=>n.e(56891).then(n.bind(n,60754)),"@site/versioned_docs/version-v0.8.1/int/quickstart/quickstart-alone.md",60754],aa40e37d:[()=>n.e(10133).then(n.bind(n,85362)),"@site/versioned_docs/version-v0.8.0/glossary.md",85362],aab140df:[()=>n.e(42953).then(n.bind(n,31063)),"@site/versioned_docs/version-v0.16.0/fr/eth.md",31063],aacf00a3:[()=>n.e(78376).then(n.bind(n,7487)),"@site/versioned_docs/version-v0.10.0/dvk/01_distributed-validator-keys.md",7487],ab347a2e:[()=>n.e(47119).then(n.bind(n,3134)),"@site/versioned_docs/version-v0.16.0/int/quickstart/advanced/self-relay.md",3134],ab5b721f:[()=>n.e(26842).then(n.bind(n,98874)),"@site/versioned_docs/version-v0.3.0/dv/04_middleware-daemon.md",98874],ab9dddf8:[()=>n.e(44499).then(n.bind(n,19669)),"@site/versioned_docs/version-v0.9.0/dv/01_introducing-charon.md",19669],ac0d65f4:[()=>n.e(17424).then(n.t.bind(n,94082,19)),"~docs/default/version-v-0-7-0-metadata-prop-92a.json",94082],ac52bbcb:[()=>n.e(61137).then(n.bind(n,52682)),"@site/versioned_docs/version-v0.5.0/int/working-groups.md",52682],ac62b1b4:[()=>n.e(9992).then(n.bind(n,62631)),"@site/versioned_docs/version-v0.8.0/sc/01_introducing-obol-managers.md",62631],ad1ae04b:[()=>n.e(34569).then(n.bind(n,8864)),"@site/versioned_docs/version-v0.8.0/dv/07_p2p-interface.md",8864],ad427c05:[()=>n.e(91557).then(n.bind(n,45219)),"@site/versioned_docs/version-v0.6.0/dvk/02_distributed_validator_launchpad.md",45219],ad5dfc5f:[()=>n.e(59367).then(n.bind(n,40782)),"@site/versioned_docs/version-v0.12.0/fr/golang.md",40782],adb39cc6:[()=>n.e(7913).then(n.bind(n,25844)),"@site/versioned_docs/version-v0.9.0/fr/eth.md",25844],ade492de:[()=>n.e(92295).then(n.bind(n,42429)),"@site/versioned_docs/version-v0.12.0/int/key-concepts.md",42429],af1ec06f:[()=>n.e(81138).then(n.bind(n,19690)),"@site/versioned_docs/version-v0.14.4/testnet.md",19690],af2a1e05:[()=>n.e(78973).then(n.bind(n,37274)),"@site/versioned_docs/version-v0.10.0/dv/01_introducing-charon.md",37274],af7b5940:[()=>n.e(83915).then(n.bind(n,65900)),"@site/versioned_docs/version-v0.13.0/int/faq/errors.mdx",65900],af9c6a4d:[()=>n.e(17715).then(n.bind(n,47598)),"@site/versioned_docs/version-v0.17.0/sec/overview.md",47598],b0924998:[()=>n.e(73879).then(n.bind(n,42194)),"@site/versioned_docs/version-v0.4.0/dv/06_peer-discovery.md",42194],b0adfcbb:[()=>n.e(55206).then(n.bind(n,63582)),"@site/docs/int/quickstart/quickstart-mainnet.md",63582],b1287962:[()=>n.e(62105).then(n.bind(n,84732)),"@site/versioned_docs/version-v0.10.1/testnet.md",84732],b254fcba:[()=>n.e(41584).then(n.bind(n,65007)),"@site/versioned_docs/version-v0.10.1/dv/08_distributed-validator-cluster-manifest.md",65007],b27b3594:[()=>n.e(57266).then(n.bind(n,26515)),"@site/versioned_docs/version-v0.16.0/sec/contact.md",26515],b2ad62c1:[()=>n.e(29346).then(n.bind(n,47915)),"@site/versioned_docs/version-v0.10.1/dv/06_peer-discovery.md",47915],b2bd794c:[()=>n.e(90789).then(n.bind(n,43750)),"@site/versioned_docs/version-v0.14.0/charon/networking.md",43750],b4708c6e:[()=>n.e(92219).then(n.bind(n,54015)),"@site/versioned_docs/version-v0.14.0/charon/cluster-configuration.md",54015],b47eca25:[()=>n.e(83715).then(n.bind(n,8849)),"@site/versioned_docs/version-v0.7.0/int/key-concepts.md",8849],b495522b:[()=>n.e(7306).then(n.bind(n,37910)),"@site/versioned_docs/version-v0.14.0/sec/roadmap.md",37910],b50e6525:[()=>n.e(58397).then(n.bind(n,55848)),"@site/versioned_docs/version-v0.17.0/cg/docs.md",55848],b5d62ccd:[()=>n.e(36845).then(n.bind(n,82913)),"@site/versioned_docs/version-v0.10.1/glossary.md",82913],b5dc3cbf:[()=>n.e(17465).then(n.bind(n,59709)),"@site/versioned_docs/version-v0.17.0/int/quickstart/advanced/push-metrics.md",59709],b667950b:[()=>n.e(6317).then(n.bind(n,90938)),"@site/versioned_docs/version-v0.6.0/dv/06_peer-discovery.md",90938],b6da20e3:[()=>n.e(22497).then(n.bind(n,77512)),"@site/versioned_docs/version-v0.6.1/dv/08_distributed-validator-cluster-manifest.md",77512],b6e33dff:[()=>n.e(22312).then(n.bind(n,83557)),"@site/versioned_docs/version-v0.14.4/int/quickstart/quickstart-alone.md",83557],b6e923f2:[()=>n.e(45353).then(n.bind(n,33388)),"@site/docs/charon/dkg.md",33388],b7153ef5:[()=>n.e(28719).then(n.bind(n,21712)),"@site/versioned_docs/version-v0.8.0/testnet.md",21712],b76c5bd9:[()=>n.e(33118).then(n.t.bind(n,33169,19)),"~docs/default/version-v-0-13-0-metadata-prop-174.json",33169],b7fab043:[()=>n.e(44767).then(n.bind(n,37411)),"@site/versioned_docs/version-v0.8.0/dvk/01_distributed-validator-keys.md",37411],b81657a4:[()=>n.e(86001).then(n.bind(n,74148)),"@site/versioned_docs/version-v0.12.0/int/quickstart/group/quickstart-group-cli.md",74148],b81c734a:[()=>n.e(66781).then(n.bind(n,76785)),"@site/versioned_docs/version-v0.5.0/glossary.md",76785],b9757f83:[()=>n.e(91880).then(n.bind(n,1796)),"@site/versioned_docs/version-v0.14.4/int/quickstart/index.md",1796],ba245dca:[()=>n.e(66627).then(n.bind(n,78110)),"@site/versioned_docs/version-v0.6.1/fr/eth.md",78110],bb5f1df1:[()=>n.e(70997).then(n.bind(n,60758)),"@site/versioned_docs/version-v0.8.0/int/quickstart/index.md",60758],bbb82b82:[()=>n.e(50594).then(n.bind(n,92646)),"@site/versioned_docs/version-v0.12.0/testnet.md",92646],bbcf8534:[()=>n.e(67507).then(n.bind(n,51237)),"@site/versioned_docs/version-v0.9.0/dv/07_p2p-interface.md",51237],bc7e2f6b:[()=>n.e(11807).then(n.bind(n,42485)),"@site/versioned_docs/version-v0.4.0/int/working-groups.md",42485],bc821801:[()=>n.e(64352).then(n.bind(n,25369)),"@site/versioned_docs/version-v0.9.0/int/quickstart/quickstart-group.md",25369],bcc27189:[()=>n.e(15613).then(n.bind(n,86892)),"@site/versioned_docs/version-v0.3.0/int/Overview.md",86892],bd433696:[()=>n.e(16346).then(n.bind(n,47573)),"@site/versioned_docs/version-v0.3.0/dvk/02_distributed_validator_launchpad.md",47573],bd811de4:[()=>n.e(30010).then(n.bind(n,42745)),"@site/versioned_docs/version-v0.6.0/int/quickstart.md",42745],bd88aefc:[()=>n.e(9579).then(n.bind(n,81015)),"@site/versioned_docs/version-v0.8.1/dv/02_validator-creation.md",81015],bdf04baf:[()=>n.e(60136).then(n.bind(n,6508)),"@site/versioned_docs/version-v0.14.4/charon/intro.md",6508],be083388:[()=>n.e(44868).then(n.bind(n,50480)),"@site/versioned_docs/version-v0.4.0/fr/eth.md",50480],be250745:[()=>n.e(32676).then(n.bind(n,43202)),"@site/versioned_docs/version-v0.13.0/intro.md",43202],be37059d:[()=>n.e(21368).then(n.bind(n,9794)),"@site/versioned_docs/version-v0.12.0/cg/docs.md",9794],be486aa6:[()=>n.e(23630).then(n.bind(n,12023)),"@site/versioned_docs/version-v0.8.1/testnet.md",12023],bef51f61:[()=>n.e(80787).then(n.bind(n,92978)),"@site/versioned_docs/version-v0.15.0/charon/dkg.md",92978],bf1d8c80:[()=>Promise.all([n.e(40532),n.e(31260)]).then(n.bind(n,72784)),"@site/docs/int/quickstart/alone/create-keys.md",72784],bfcb668e:[()=>n.e(37640).then(n.bind(n,34623)),"@site/docs/int/quickstart/advanced/monitoring-credentials.md",34623],bfe0fa70:[()=>n.e(11910).then(n.bind(n,92466)),"@site/versioned_docs/version-v0.3.0/cg/docs.md",92466],bffffa95:[()=>n.e(42045).then(n.t.bind(n,63678,19)),"~docs/default/version-v-0-12-0-metadata-prop-55a.json",63678],c0222923:[()=>n.e(46431).then(n.bind(n,43937)),"@site/versioned_docs/version-v0.14.4/charon/dkg.md",43937],c0296765:[()=>n.e(41230).then(n.bind(n,66705)),"@site/versioned_docs/version-v0.10.0/fr/golang.md",66705],c0c70ecf:[()=>n.e(94528).then(n.bind(n,42333)),"@site/versioned_docs/version-v0.11.0/testnet.md",42333],c15ab9e4:[()=>n.e(44547).then(n.bind(n,51559)),"@site/versioned_docs/version-v0.11.0/int/quickstart/index.md",51559],c2395814:[()=>n.e(93451).then(n.bind(n,16657)),"@site/versioned_docs/version-v0.16.0/sec/overview.md",16657],c250f565:[()=>n.e(97130).then(n.bind(n,13107)),"@site/versioned_docs/version-v0.14.4/int/key-concepts.md",13107],c290a891:[()=>n.e(45525).then(n.bind(n,60233)),"@site/versioned_docs/version-v0.16.0/int/quickstart/group/quickstart-cli.md",60233],c3803b53:[()=>n.e(3701).then(n.bind(n,77999)),"@site/versioned_docs/version-v0.10.0/dvk/02_distributed_validator_launchpad.md",77999],c4f05a77:[()=>n.e(8528).then(n.bind(n,6882)),"@site/versioned_docs/version-v0.14.0/int/quickstart/index.md",6882],c5fed0f1:[()=>n.e(94520).then(n.bind(n,23181)),"@site/versioned_docs/version-v0.17.0/int/faq/risks.md",23181],c6275c5d:[()=>n.e(83034).then(n.bind(n,3265)),"@site/docs/int/key-concepts.md",3265],c6665732:[()=>n.e(78886).then(n.bind(n,18785)),"@site/versioned_docs/version-v0.8.1/dvk/01_distributed-validator-keys.md",18785],c67bc53e:[()=>n.e(38195).then(n.bind(n,8581)),"@site/versioned_docs/version-v0.13.0/charon/intro.md",8581],c7406946:[()=>n.e(91966).then(n.bind(n,39896)),"@site/versioned_docs/version-v0.15.0/int/quickstart/quickstart-builder-api.md",39896],c754d121:[()=>n.e(45661).then(n.bind(n,91405)),"@site/versioned_docs/version-v0.17.0/int/key-concepts.md",91405],c76956e5:[()=>n.e(55549).then(n.bind(n,57101)),"@site/versioned_docs/version-v0.12.0/int/quickstart/quickstart-alone.md",57101],c84d0830:[()=>n.e(87894).then(n.bind(n,1817)),"@site/versioned_docs/version-v0.12.0/int/quickstart/quickstart-builder-api.md",1817],c95e8375:[()=>n.e(99761).then(n.bind(n,49042)),"@site/versioned_docs/version-v0.6.0/dv/04_middleware-daemon.md",49042],ca5bdae9:[()=>n.e(48594).then(n.bind(n,99699)),"@site/versioned_docs/version-v0.17.0/int/quickstart/group/quickstart-group-operator.md",99699],cb05e653:[()=>n.e(51214).then(n.bind(n,85174)),"@site/docs/int/quickstart/group/quickstart-group-operator.md",85174],cb071a3e:[()=>n.e(69335).then(n.bind(n,93445)),"@site/versioned_docs/version-v0.8.0/dv/09_charon_cli_reference.md",93445],cbef7e99:[()=>n.e(56955).then(n.bind(n,18271)),"@site/versioned_docs/version-v0.8.0/dvk/02_distributed_validator_launchpad.md",18271],cd4926cc:[()=>Promise.all([n.e(40532),n.e(98918)]).then(n.bind(n,53898)),"@site/versioned_docs/version-v0.16.0/int/quickstart/update.md",53898],cdc8fa8c:[()=>n.e(56083).then(n.bind(n,24080)),"@site/docs/sec/overview.md",24080],ceb15c40:[()=>n.e(53453).then(n.bind(n,98072)),"@site/docs/dvl/intro.md",98072],cf05d8ae:[()=>n.e(54639).then(n.bind(n,13676)),"@site/docs/int/quickstart/advanced/push-metrics.md",13676],cf0e2329:[()=>n.e(59409).then(n.bind(n,79664)),"@site/versioned_docs/version-v0.6.1/dv/07_p2p-interface.md",79664],cf509bd8:[()=>n.e(71197).then(n.bind(n,9597)),"@site/versioned_docs/version-v0.8.0/cg/docs.md",9597],cf77607c:[()=>n.e(32836).then(n.bind(n,30022)),"@site/versioned_docs/version-v0.6.0/dvk/01_distributed-validator-keys.md",30022],cff9c005:[()=>n.e(67786).then(n.bind(n,59255)),"@site/versioned_docs/version-v0.15.0/int/key-concepts.md",59255],d0041122:[()=>n.e(31894).then(n.bind(n,93231)),"@site/versioned_docs/version-v0.14.4/int/quickstart/quickstart-split.md",93231],d1e08790:[()=>n.e(44330).then(n.bind(n,82648)),"@site/versioned_docs/version-v0.8.0/int/Overview.md",82648],d1e132dd:[()=>n.e(74259).then(n.bind(n,80333)),"@site/versioned_docs/version-v0.16.0/int/quickstart/index.md",80333],d25e0e98:[()=>n.e(2229).then(n.bind(n,76272)),"@site/versioned_docs/version-v0.5.0/int/key-concepts.md",76272],d2fe9cf6:[()=>n.e(4812).then(n.bind(n,14215)),"@site/versioned_docs/version-v0.14.4/int/faq/general.md",14215],d3d60b68:[()=>n.e(41727).then(n.bind(n,6011)),"@site/versioned_docs/version-v0.17.0/charon/networking.md",6011],d42c97cf:[()=>n.e(13724).then(n.bind(n,97504)),"@site/versioned_docs/version-v0.13.0/int/quickstart/index.md",97504],d4336c52:[()=>n.e(10608).then(n.bind(n,14412)),"@site/versioned_docs/version-v0.15.0/charon/charon-cli-reference.md",14412],d48391fb:[()=>n.e(92815).then(n.bind(n,19770)),"@site/versioned_docs/version-v0.16.0/int/quickstart/advanced/monitoring-credentials.md",19770],d66680c9:[()=>n.e(32054).then(n.bind(n,80754)),"@site/versioned_docs/version-v0.6.1/testnet.md",80754],d7ed6958:[()=>n.e(15405).then(n.bind(n,5696)),"@site/versioned_docs/version-v0.6.1/dv/04_middleware-daemon.md",5696],d81dce3e:[()=>n.e(30552).then(n.bind(n,80630)),"@site/versioned_docs/version-v0.5.0/dvk/02_distributed_validator_launchpad.md",80630],d83ff1cb:[()=>n.e(74835).then(n.bind(n,88966)),"@site/versioned_docs/version-v0.12.0/int/quickstart/group/quickstart-group-launchpad.md",88966],d8eef7ef:[()=>n.e(71129).then(n.bind(n,50542)),"@site/versioned_docs/version-v0.5.0/dv/06_peer-discovery.md",50542],da11c354:[()=>n.e(63626).then(n.t.bind(n,18631,19)),"~docs/default/version-v-0-17-0-metadata-prop-d8b.json",18631],da73ae9f:[()=>n.e(93441).then(n.bind(n,17339)),"@site/versioned_docs/version-v0.8.1/dvk/02_distributed_validator_launchpad.md",17339],da9a601c:[()=>n.e(252).then(n.bind(n,84880)),"@site/versioned_docs/version-v0.14.4/cg/docs.md",84880],daf4a763:[()=>n.e(7965).then(n.bind(n,85132)),"@site/versioned_docs/version-v0.6.0/dv/01_introducing-charon.md",85132],daf55fd8:[()=>n.e(51404).then(n.bind(n,26573)),"@site/versioned_docs/version-v0.9.0/dv/04_middleware-daemon.md",26573],db3eb10d:[()=>n.e(16699).then(n.bind(n,4246)),"@site/versioned_docs/version-v0.10.0/int/faq.md",4246],db6a2a2b:[()=>n.e(57520).then(n.bind(n,2234)),"@site/versioned_docs/version-v0.7.0/fr/golang.md",2234],db8fc390:[()=>n.e(44048).then(n.bind(n,54167)),"@site/versioned_docs/version-v0.10.1/int/quickstart/group/quickstart-group-cli.md",54167],dc7a5fa3:[()=>n.e(84259).then(n.bind(n,51146)),"@site/versioned_docs/version-v0.14.0/cg/docs.md",51146],dcd9879b:[()=>n.e(3564).then(n.bind(n,1028)),"@site/versioned_docs/version-v0.16.0/int/faq/errors.mdx",1028],dd38c9fa:[()=>n.e(17452).then(n.bind(n,53682)),"@site/versioned_docs/version-v0.14.4/charon/cluster-configuration.md",53682],dd5c1a23:[()=>n.e(46410).then(n.bind(n,86130)),"@site/versioned_docs/version-v0.13.0/int/Overview.md",86130],dd6e5fbb:[()=>n.e(65780).then(n.bind(n,80743)),"@site/versioned_docs/version-v0.17.0/sc/01_introducing-obol-managers.md",80743],dd8f682c:[()=>n.e(37686).then(n.bind(n,6021)),"@site/versioned_docs/version-v0.5.0/cg/bug-report.md",6021],dda02403:[()=>n.e(75149).then(n.bind(n,8457)),"@site/docs/cg/bug-report.md",8457],ddf6a377:[()=>n.e(19174).then(n.bind(n,8489)),"@site/versioned_docs/version-v0.5.0/int/Overview.md",8489],de87fbd8:[()=>n.e(98570).then(n.bind(n,70518)),"@site/versioned_docs/version-v0.10.0/cg/docs.md",70518],df260015:[()=>n.e(81525).then(n.bind(n,21482)),"@site/versioned_docs/version-v0.4.0/sc/01_introducing-obol-managers.md",21482],df894e54:[()=>n.e(74151).then(n.bind(n,2681)),"@site/versioned_docs/version-v0.7.0/dv/07_p2p-interface.md",2681],dface264:[()=>n.e(33496).then(n.bind(n,56176)),"@site/docs/int/faq/general.md",56176],dfe47a8f:[()=>n.e(75698).then(n.bind(n,14455)),"@site/versioned_docs/version-v0.9.0/sc/01_introducing-obol-managers.md",14455],e09016be:[()=>n.e(41176).then(n.bind(n,67273)),"@site/versioned_docs/version-v0.15.0/sc/01_introducing-obol-managers.md",67273],e0b90a4f:[()=>n.e(13706).then(n.bind(n,46846)),"@site/versioned_docs/version-v0.10.1/int/key-concepts.md",46846],e0c0fdf2:[()=>n.e(80546).then(n.bind(n,35959)),"@site/versioned_docs/version-v0.15.0/int/quickstart/index.md",35959],e0defa33:[()=>n.e(91105).then(n.bind(n,63166)),"@site/versioned_docs/version-v0.16.0/charon/intro.md",63166],e1428fa9:[()=>n.e(39847).then(n.bind(n,97388)),"@site/versioned_docs/version-v0.11.0/dv/06_peer-discovery.md",97388],e1a61f89:[()=>n.e(21069).then(n.bind(n,7066)),"@site/versioned_docs/version-v0.17.0/int/quickstart/quickstart-mainnet.md",7066],e1bd423a:[()=>n.e(11530).then(n.bind(n,52316)),"@site/versioned_docs/version-v0.13.0/sc/01_introducing-obol-managers.md",52316],e355ca4d:[()=>n.e(82221).then(n.bind(n,899)),"@site/versioned_docs/version-v0.16.0/charon/dkg.md",899],e3b672be:[()=>n.e(48849).then(n.bind(n,95059)),"@site/versioned_docs/version-v0.7.0/dvk/01_distributed-validator-keys.md",95059],e433918e:[()=>n.e(20681).then(n.bind(n,1104)),"@site/versioned_docs/version-v0.15.0/fr/eth.md",1104],e4fb4480:[()=>n.e(66098).then(n.bind(n,88279)),"@site/docs/sec/contact.md",88279],e50ebedc:[()=>n.e(16123).then(n.bind(n,61213)),"@site/versioned_docs/version-v0.6.1/dv/01_introducing-charon.md",61213],e56922dc:[()=>n.e(6374).then(n.bind(n,91118)),"@site/versioned_docs/version-v0.12.0/int/quickstart/index.md",91118],e5717e38:[()=>n.e(64217).then(n.bind(n,32036)),"@site/versioned_docs/version-v0.6.1/int/quickstart/quickstart-group.md",32036],e593e752:[()=>n.e(5180).then(n.bind(n,21060)),"@site/versioned_docs/version-v0.6.1/dvk/03_dkg_cli_reference.md",21060],e5b70074:[()=>n.e(79626).then(n.bind(n,67388)),"@site/versioned_docs/version-v0.6.0/cg/docs.md",67388],e63b90e2:[()=>n.e(21718).then(n.t.bind(n,73719,19)),"~docs/default/version-v-0-8-0-metadata-prop-ebd.json",73719],e68db6c7:[()=>n.e(25671).then(n.bind(n,70944)),"@site/versioned_docs/version-v0.17.0/int/faq/general.md",70944],e6f8f169:[()=>n.e(43191).then(n.bind(n,65173)),"@site/versioned_docs/version-v0.14.0/testnet.md",65173],e78bf1cf:[()=>n.e(35393).then(n.bind(n,62023)),"@site/versioned_docs/version-v0.8.1/dv/08_distributed-validator-cluster-manifest.md",62023],e854fedb:[()=>n.e(85603).then(n.bind(n,35667)),"@site/versioned_docs/version-v0.17.0/int/quickstart/index.md",35667],e953e86f:[()=>n.e(82568).then(n.bind(n,35054)),"@site/versioned_docs/version-v0.10.1/sc/01_introducing-obol-managers.md",35054],e96214e8:[()=>n.e(83507).then(n.bind(n,2760)),"@site/versioned_docs/version-v0.14.0/dvl/intro.md",2760],e9d64267:[()=>n.e(6168).then(n.bind(n,8759)),"@site/versioned_docs/version-v0.7.0/dvk/03_dkg_cli_reference.md",8759],ea5b3169:[()=>n.e(76693).then(n.bind(n,98875)),"@site/versioned_docs/version-v0.3.0/dvk/03_dkg_cli_reference.md",98875],ea7106de:[()=>n.e(85689).then(n.bind(n,63674)),"@site/docs/int/quickstart/advanced/adv-docker-configs.md",63674],eace1dea:[()=>n.e(56327).then(n.bind(n,84799)),"@site/versioned_docs/version-v0.6.1/dvk/02_distributed_validator_launchpad.md",84799],eae4fb66:[()=>Promise.all([n.e(40532),n.e(83734)]).then(n.bind(n,35441)),"@site/versioned_docs/version-v0.16.0/int/quickstart/group/quickstart-group-leader-creator.md",35441],ebb1f61d:[()=>n.e(63185).then(n.bind(n,86974)),"@site/versioned_docs/version-v0.12.0/dv/06_peer-discovery.md",86974],ec846649:[()=>n.e(29330).then(n.bind(n,19104)),"@site/versioned_docs/version-v0.12.0/cg/bug-report.md",19104],ec855b2a:[()=>n.e(16630).then(n.bind(n,7447)),"@site/versioned_docs/version-v0.16.0/testnet.md",7447],eccbb85b:[()=>n.e(27551).then(n.bind(n,17812)),"@site/versioned_docs/version-v0.16.0/int/quickstart/advanced/prysm-vc.md",17812],ed9f33c1:[()=>n.e(15916).then(n.bind(n,73873)),"@site/versioned_docs/version-v0.14.4/sec/roadmap.md",73873],ee27d4a6:[()=>n.e(34681).then(n.bind(n,72365)),"@site/versioned_docs/version-v0.3.0/dv/06_peer-discovery.md",72365],ee818bc0:[()=>n.e(14514).then(n.bind(n,6274)),"@site/versioned_docs/version-v0.7.0/intro.md",6274],ee8cba70:[()=>n.e(37645).then(n.bind(n,84595)),"@site/versioned_docs/version-v0.4.0/int/Overview.md",84595],eec20622:[()=>n.e(59575).then(n.bind(n,84630)),"@site/versioned_docs/version-v0.10.1/int/quickstart/quickstart-builder-api.md",84630],ef274e0c:[()=>n.e(54591).then(n.t.bind(n,79029,19)),"~docs/default/version-v-0-14-4-metadata-prop-c1b.json",79029],efe62aa6:[()=>n.e(53459).then(n.bind(n,47047)),"@site/versioned_docs/version-v0.10.1/int/Overview.md",47047],effdc162:[()=>n.e(79177).then(n.bind(n,83735)),"@site/docs/testnet.md",83735],f00553bc:[()=>n.e(13158).then(n.bind(n,38415)),"@site/versioned_docs/version-v0.17.0/int/faq/threat_model.md",38415],f093c5b3:[()=>n.e(90127).then(n.bind(n,46026)),"@site/versioned_docs/version-v0.13.0/int/quickstart/quickstart-alone.md",46026],f0ad3fbb:[()=>Promise.all([n.e(40532),n.e(20635),n.e(68612)]).then(n.bind(n,20635)),"@theme/ApiDoc",20635],f1057f16:[()=>n.e(87876).then(n.bind(n,79611)),"@site/versioned_docs/version-v0.14.4/charon/charon-cli-reference.md",79611],f10cedb9:[()=>Promise.all([n.e(40532),n.e(39553)]).then(n.bind(n,81778)),"@site/versioned_docs/version-v0.17.0/int/quickstart/group/quickstart-group-leader-creator.md",81778],f11baa2b:[()=>n.e(65712).then(n.bind(n,4227)),"@site/versioned_docs/version-v0.5.0/dv/01_introducing-charon.md",4227],f1ea3e57:[()=>n.e(75063).then(n.bind(n,10490)),"@site/versioned_docs/version-v0.4.0/testnet.md",10490],f202582e:[()=>n.e(59083).then(n.bind(n,1419)),"@site/versioned_docs/version-v0.10.0/fr/eth.md",1419],f2187503:[()=>n.e(85912).then(n.bind(n,28697)),"@site/versioned_docs/version-v0.6.0/int/working-groups.md",28697],f2405960:[()=>n.e(70281).then(n.bind(n,18099)),"@site/versioned_docs/version-v0.9.0/intro.md",18099],f242d4f0:[()=>n.e(80078).then(n.bind(n,44640)),"@site/docs/int/quickstart/group/index.md",44640],f2c8d398:[()=>n.e(6825).then(n.bind(n,51602)),"@site/versioned_docs/version-v0.10.0/int/quickstart/index.md",51602],f38dca20:[()=>n.e(25453).then(n.bind(n,63238)),"@site/versioned_docs/version-v0.17.0/int/quickstart/alone/test-locally.md",63238],f3b8577d:[()=>n.e(45630).then(n.bind(n,21961)),"@site/versioned_docs/version-v0.9.0/int/key-concepts.md",21961],f4195d4c:[()=>n.e(53457).then(n.bind(n,18547)),"@site/versioned_docs/version-v0.3.0/fr/golang.md",18547],f434066d:[()=>n.e(38193).then(n.t.bind(n,66118,19)),"~docs/default/version-v-0-5-0-metadata-prop-892.json",66118],f447d5bf:[()=>n.e(82119).then(n.bind(n,17753)),"@site/versioned_docs/version-v0.13.0/charon/peer-discovery.md",17753],f4938d41:[()=>n.e(81120).then(n.bind(n,25921)),"@site/versioned_docs/version-v0.12.0/int/faq/errors.mdx",25921],f4e63bd6:[()=>n.e(6719).then(n.t.bind(n,78639,19)),"~docs/default/version-v-0-4-0-metadata-prop-85e.json",78639],f8708afa:[()=>n.e(35975).then(n.bind(n,7207)),"@site/versioned_docs/version-v0.13.0/int/quickstart/group/index.md",7207],f87658ad:[()=>n.e(65624).then(n.bind(n,52526)),"@site/versioned_docs/version-v0.3.0/sc/01_introducing-obol-managers.md",52526],f897fea5:[()=>n.e(31770).then(n.bind(n,61385)),"@site/versioned_docs/version-v0.17.0/dvl/intro.md",61385],f8bbd440:[()=>n.e(38599).then(n.bind(n,27578)),"@site/versioned_docs/version-v0.6.1/glossary.md",27578],f992bb2d:[()=>n.e(99512).then(n.bind(n,15455)),"@site/versioned_docs/version-v0.12.0/dvk/01_distributed-validator-keys.md",15455],f9af2568:[()=>n.e(48858).then(n.bind(n,43728)),"@site/versioned_docs/version-v0.3.0/dv/09_charon_cli_reference.md",43728],f9b5ede0:[()=>n.e(12633).then(n.bind(n,22643)),"@site/versioned_docs/version-v0.11.0/cg/bug-report.md",22643],fb0a2bc3:[()=>n.e(79308).then(n.bind(n,53495)),"@site/versioned_docs/version-v0.4.0/intro.md",53495],fbb5ccb7:[()=>n.e(81225).then(n.bind(n,71669)),"@site/versioned_docs/version-v0.11.0/dvk/02_distributed_validator_launchpad.md",71669],fbb6b0e9:[()=>Promise.all([n.e(40532),n.e(66945)]).then(n.bind(n,95846)),"@site/versioned_docs/version-v0.16.0/int/quickstart/alone/create-keys.md",95846],fbdc106c:[()=>n.e(99183).then(n.bind(n,40242)),"@site/versioned_docs/version-v0.4.0/dv/08_distributed-validator-cluster-manifest.md",40242],fc220ba6:[()=>n.e(35660).then(n.bind(n,24546)),"@site/versioned_docs/version-v0.17.0/charon/charon-cli-reference.md",24546],fcd62f62:[()=>n.e(17594).then(n.bind(n,24350)),"@site/versioned_docs/version-v0.16.0/charon/charon-cli-reference.md",24350],fd2aace6:[()=>n.e(47068).then(n.bind(n,55450)),"@site/versioned_docs/version-v0.16.0/int/quickstart/advanced/quickstart-combine.md",55450],fe3151c2:[()=>n.e(38679).then(n.bind(n,16534)),"@site/versioned_docs/version-v0.10.0/dv/08_distributed-validator-cluster-manifest.md",16534],fe62e4b0:[()=>n.e(48452).then(n.bind(n,58090)),"@site/versioned_docs/version-v0.9.0/dv/09_charon_cli_reference.md",58090],fe7cf20c:[()=>n.e(59078).then(n.t.bind(n,62778,19)),"~docs/default/version-v-0-16-0-metadata-prop-a71.json",62778],fec6b268:[()=>n.e(64590).then(n.bind(n,15007)),"@site/versioned_docs/version-v0.14.0/cg/bug-report.md",15007],ff28279f:[()=>n.e(77450).then(n.bind(n,26035)),"@site/versioned_docs/version-v0.14.0/int/quickstart/group/index.md",26035],ff6ef089:[()=>n.e(26625).then(n.bind(n,569)),"@site/versioned_docs/version-v0.9.0/glossary.md",569]};function d(e){let{error:t,retry:n,pastDelay:o}=e;return t?r.createElement("div",{style:{textAlign:"center",color:"#fff",backgroundColor:"#fa383e",borderColor:"#fa383e",borderStyle:"solid",borderRadius:"0.25rem",borderWidth:"1px",boxSizing:"border-box",display:"block",padding:"1rem",flex:"0 0 50%",marginLeft:"25%",marginRight:"25%",marginTop:"5rem",maxWidth:"50%",width:"100%"}},r.createElement("p",null,String(t)),r.createElement("div",null,r.createElement("button",{type:"button",onClick:n},"Retry"))):o?r.createElement("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh"}},r.createElement("svg",{id:"loader",style:{width:128,height:110,position:"absolute",top:"calc(100vh - 64%)"},viewBox:"0 0 45 45",xmlns:"http://www.w3.org/2000/svg",stroke:"#61dafb"},r.createElement("g",{fill:"none",fillRule:"evenodd",transform:"translate(1 1)",strokeWidth:"2"},r.createElement("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0"},r.createElement("animate",{attributeName:"r",begin:"1.5s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-opacity",begin:"1.5s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-width",begin:"1.5s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})),r.createElement("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0"},r.createElement("animate",{attributeName:"r",begin:"3s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-opacity",begin:"3s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-width",begin:"3s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})),r.createElement("circle",{cx:"22",cy:"22",r:"8"},r.createElement("animate",{attributeName:"r",begin:"0s",dur:"1.5s",values:"6;1;2;3;4;5;6",calcMode:"linear",repeatCount:"indefinite"}))))):null}var l=n(5304),u=n(69656);function p(e,t){if("*"===e)return i()({loading:d,loader:()=>n.e(74248).then(n.bind(n,74248)),modules:["@theme/NotFound"],webpack:()=>[74248],render(e,t){const n=e.default;return r.createElement(u.z,{value:{plugin:{name:"native",id:"default"}}},r.createElement(n,t))}});const a=s[`${e}-${t}`],p={},v=[],f=[],b=(0,l.Z)(a);return Object.entries(b).forEach((e=>{let[t,n]=e;const r=c[n];r&&(p[t]=r[0],v.push(r[1]),f.push(r[2]))})),i().Map({loading:d,loader:p,modules:v,webpack:()=>f,render(t,n){const i=JSON.parse(JSON.stringify(a));Object.entries(t).forEach((t=>{let[n,r]=t;const o=r.default;if(!o)throw new Error(`The page component at ${e} doesn't have a default export. This makes it impossible to render anything. Consider default-exporting a React component.`);"object"!=typeof o&&"function"!=typeof o||Object.keys(r).filter((e=>"default"!==e)).forEach((e=>{o[e]=r[e]}));let a=i;const s=n.split(".");s.slice(0,-1).forEach((e=>{a=a[e]})),a[s[s.length-1]]=o}));const s=i.__comp;delete i.__comp;const c=i.__context;return delete i.__context,r.createElement(u.z,{value:c},r.createElement(s,(0,o.Z)({},i,n)))}})}const v=[{path:"/api",component:p("/api","c5c"),exact:!0},{path:"/docs/next",component:p("/docs/next","ed1"),routes:[{path:"/docs/next/cg/bug-report",component:p("/docs/next/cg/bug-report","c17"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/next/cg/docs",component:p("/docs/next/cg/docs","a9e"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/next/cg/feedback",component:p("/docs/next/cg/feedback","14d"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/next/charon/charon-cli-reference",component:p("/docs/next/charon/charon-cli-reference","7f7"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/next/charon/cluster-configuration",component:p("/docs/next/charon/cluster-configuration","c7a"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/next/charon/dkg",component:p("/docs/next/charon/dkg","7ba"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/next/charon/intro",component:p("/docs/next/charon/intro","42f"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/next/charon/networking",component:p("/docs/next/charon/networking","a8b"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/next/dvl/intro",component:p("/docs/next/dvl/intro","a2b"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/next/fr/eth",component:p("/docs/next/fr/eth","61e"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/next/fr/golang",component:p("/docs/next/fr/golang","6a4"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/next/int/faq/errors",component:p("/docs/next/int/faq/errors","32c"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/next/int/faq/general",component:p("/docs/next/int/faq/general","89e"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/next/int/faq/risks",component:p("/docs/next/int/faq/risks","621"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/next/int/faq/threat_model",component:p("/docs/next/int/faq/threat_model","2b4"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/next/int/key-concepts",component:p("/docs/next/int/key-concepts","9ed"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/next/int/Overview",component:p("/docs/next/int/Overview","753"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/next/int/quickstart",component:p("/docs/next/int/quickstart","966"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/next/int/quickstart/activate-dv",component:p("/docs/next/int/quickstart/activate-dv","8c1"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/next/int/quickstart/advanced/adv-docker-configs",component:p("/docs/next/int/quickstart/advanced/adv-docker-configs","991"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/next/int/quickstart/advanced/monitoring-credentials",component:p("/docs/next/int/quickstart/advanced/monitoring-credentials","379"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/next/int/quickstart/advanced/prysm-vc",component:p("/docs/next/int/quickstart/advanced/prysm-vc","eac"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/next/int/quickstart/advanced/push-metrics",component:p("/docs/next/int/quickstart/advanced/push-metrics","05e"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/next/int/quickstart/advanced/quickstart-builder-api",component:p("/docs/next/int/quickstart/advanced/quickstart-builder-api","b6a"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/next/int/quickstart/advanced/quickstart-combine",component:p("/docs/next/int/quickstart/advanced/quickstart-combine","93a"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/next/int/quickstart/advanced/quickstart-sdk",component:p("/docs/next/int/quickstart/advanced/quickstart-sdk","89b"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/next/int/quickstart/advanced/quickstart-split",component:p("/docs/next/int/quickstart/advanced/quickstart-split","9c6"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/next/int/quickstart/advanced/self-relay",component:p("/docs/next/int/quickstart/advanced/self-relay","e88"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/next/int/quickstart/alone/create-keys",component:p("/docs/next/int/quickstart/alone/create-keys","e98"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/next/int/quickstart/alone/deploy",component:p("/docs/next/int/quickstart/alone/deploy","49d"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/next/int/quickstart/alone/test-locally",component:p("/docs/next/int/quickstart/alone/test-locally","04e"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/next/int/quickstart/group",component:p("/docs/next/int/quickstart/group","2cb"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/next/int/quickstart/group/quickstart-cli",component:p("/docs/next/int/quickstart/group/quickstart-cli","841"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/next/int/quickstart/group/quickstart-group-leader-creator",component:p("/docs/next/int/quickstart/group/quickstart-group-leader-creator","568"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/next/int/quickstart/group/quickstart-group-operator",component:p("/docs/next/int/quickstart/group/quickstart-group-operator","aa8"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/next/int/quickstart/quickstart-exit",component:p("/docs/next/int/quickstart/quickstart-exit","9a8"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/next/int/quickstart/quickstart-mainnet",component:p("/docs/next/int/quickstart/quickstart-mainnet","3e8"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/next/int/quickstart/update",component:p("/docs/next/int/quickstart/update","f0c"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/next/intro",component:p("/docs/next/intro","8d4"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/next/sc/introducing-obol-managers",component:p("/docs/next/sc/introducing-obol-managers","9c0"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/next/sec/bug-bounty",component:p("/docs/next/sec/bug-bounty","e1a"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/next/sec/contact",component:p("/docs/next/sec/contact","7f7"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/next/sec/overview",component:p("/docs/next/sec/overview","dc0"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/next/sec/roadmap",component:p("/docs/next/sec/roadmap","e2f"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/next/testnet",component:p("/docs/next/testnet","085"),exact:!0,sidebar:"tutorialSidebar"}]},{path:"/docs/v0.10.0",component:p("/docs/v0.10.0","0e7"),routes:[{path:"/docs/v0.10.0/cg/bug-report",component:p("/docs/v0.10.0/cg/bug-report","a76"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.10.0/cg/docs",component:p("/docs/v0.10.0/cg/docs","18c"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.10.0/dv/charon_cli_reference",component:p("/docs/v0.10.0/dv/charon_cli_reference","b6d"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.10.0/dv/distributed-validator-cluster-manifest",component:p("/docs/v0.10.0/dv/distributed-validator-cluster-manifest","4cb"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.10.0/dv/introducing-charon",component:p("/docs/v0.10.0/dv/introducing-charon","071"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.10.0/dv/p2p-interface",component:p("/docs/v0.10.0/dv/p2p-interface","b7b"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.10.0/dv/peer-discovery",component:p("/docs/v0.10.0/dv/peer-discovery","f44"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.10.0/dv/validator-creation",component:p("/docs/v0.10.0/dv/validator-creation","285"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.10.0/dvk/distributed_validator_launchpad",component:p("/docs/v0.10.0/dvk/distributed_validator_launchpad","77f"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.10.0/dvk/distributed-validator-keys",component:p("/docs/v0.10.0/dvk/distributed-validator-keys","d7f"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.10.0/fr/eth",component:p("/docs/v0.10.0/fr/eth","cd1"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.10.0/fr/golang",component:p("/docs/v0.10.0/fr/golang","11a"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.10.0/glossary",component:p("/docs/v0.10.0/glossary","647"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.10.0/int/faq",component:p("/docs/v0.10.0/int/faq","b0e"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.10.0/int/key-concepts",component:p("/docs/v0.10.0/int/key-concepts","1ce"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.10.0/int/Overview",component:p("/docs/v0.10.0/int/Overview","479"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.10.0/int/quickstart",component:p("/docs/v0.10.0/int/quickstart","97d"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.10.0/int/quickstart/quickstart-alone",component:p("/docs/v0.10.0/int/quickstart/quickstart-alone","c9b"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.10.0/int/quickstart/quickstart-builder-api",component:p("/docs/v0.10.0/int/quickstart/quickstart-builder-api","4ed"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.10.0/int/quickstart/quickstart-group",component:p("/docs/v0.10.0/int/quickstart/quickstart-group","9a4"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.10.0/int/working-groups",component:p("/docs/v0.10.0/int/working-groups","417"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.10.0/intro",component:p("/docs/v0.10.0/intro","c0e"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.10.0/sc/introducing-obol-managers",component:p("/docs/v0.10.0/sc/introducing-obol-managers","09a"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.10.0/testnet",component:p("/docs/v0.10.0/testnet","0eb"),exact:!0,sidebar:"tutorialSidebar"}]},{path:"/docs/v0.10.1",component:p("/docs/v0.10.1","ab4"),routes:[{path:"/docs/v0.10.1/cg/bug-report",component:p("/docs/v0.10.1/cg/bug-report","2d2"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.10.1/cg/docs",component:p("/docs/v0.10.1/cg/docs","f28"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.10.1/dv/charon_cli_reference",component:p("/docs/v0.10.1/dv/charon_cli_reference","95f"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.10.1/dv/distributed-validator-cluster-manifest",component:p("/docs/v0.10.1/dv/distributed-validator-cluster-manifest","3f4"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.10.1/dv/introducing-charon",component:p("/docs/v0.10.1/dv/introducing-charon","7a9"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.10.1/dv/p2p-interface",component:p("/docs/v0.10.1/dv/p2p-interface","0fc"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.10.1/dv/peer-discovery",component:p("/docs/v0.10.1/dv/peer-discovery","cd1"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.10.1/dv/validator-creation",component:p("/docs/v0.10.1/dv/validator-creation","a9f"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.10.1/dvk/distributed_validator_launchpad",component:p("/docs/v0.10.1/dvk/distributed_validator_launchpad","863"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.10.1/dvk/distributed-validator-keys",component:p("/docs/v0.10.1/dvk/distributed-validator-keys","07e"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.10.1/fr/eth",component:p("/docs/v0.10.1/fr/eth","35f"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.10.1/fr/golang",component:p("/docs/v0.10.1/fr/golang","19b"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.10.1/glossary",component:p("/docs/v0.10.1/glossary","9e4"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.10.1/int/faq/errors",component:p("/docs/v0.10.1/int/faq/errors","c37"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.10.1/int/faq/general",component:p("/docs/v0.10.1/int/faq/general","6b2"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.10.1/int/key-concepts",component:p("/docs/v0.10.1/int/key-concepts","261"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.10.1/int/Overview",component:p("/docs/v0.10.1/int/Overview","afc"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.10.1/int/quickstart",component:p("/docs/v0.10.1/int/quickstart","6f6"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.10.1/int/quickstart/group/quickstart-group-cli",component:p("/docs/v0.10.1/int/quickstart/group/quickstart-group-cli","dec"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.10.1/int/quickstart/group/quickstart-group-launchpad",component:p("/docs/v0.10.1/int/quickstart/group/quickstart-group-launchpad","f7c"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.10.1/int/quickstart/quickstart-alone",component:p("/docs/v0.10.1/int/quickstart/quickstart-alone","750"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.10.1/int/quickstart/quickstart-builder-api",component:p("/docs/v0.10.1/int/quickstart/quickstart-builder-api","4dd"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.10.1/int/working-groups",component:p("/docs/v0.10.1/int/working-groups","d7e"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.10.1/intro",component:p("/docs/v0.10.1/intro","de3"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.10.1/sc/introducing-obol-managers",component:p("/docs/v0.10.1/sc/introducing-obol-managers","657"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.10.1/testnet",component:p("/docs/v0.10.1/testnet","3a0"),exact:!0,sidebar:"tutorialSidebar"}]},{path:"/docs/v0.11.0",component:p("/docs/v0.11.0","b5b"),routes:[{path:"/docs/v0.11.0/cg/bug-report",component:p("/docs/v0.11.0/cg/bug-report","4dc"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.11.0/cg/docs",component:p("/docs/v0.11.0/cg/docs","6cc"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.11.0/dv/charon_cli_reference",component:p("/docs/v0.11.0/dv/charon_cli_reference","9a8"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.11.0/dv/distributed-validator-cluster-manifest",component:p("/docs/v0.11.0/dv/distributed-validator-cluster-manifest","c81"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.11.0/dv/introducing-charon",component:p("/docs/v0.11.0/dv/introducing-charon","418"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.11.0/dv/p2p-interface",component:p("/docs/v0.11.0/dv/p2p-interface","bf6"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.11.0/dv/peer-discovery",component:p("/docs/v0.11.0/dv/peer-discovery","776"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.11.0/dv/validator-creation",component:p("/docs/v0.11.0/dv/validator-creation","5f9"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.11.0/dvk/distributed_validator_launchpad",component:p("/docs/v0.11.0/dvk/distributed_validator_launchpad","d90"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.11.0/dvk/distributed-validator-keys",component:p("/docs/v0.11.0/dvk/distributed-validator-keys","5ad"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.11.0/fr/eth",component:p("/docs/v0.11.0/fr/eth","97f"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.11.0/fr/golang",component:p("/docs/v0.11.0/fr/golang","b45"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.11.0/glossary",component:p("/docs/v0.11.0/glossary","453"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.11.0/int/faq/errors",component:p("/docs/v0.11.0/int/faq/errors","0f6"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.11.0/int/faq/general",component:p("/docs/v0.11.0/int/faq/general","b90"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.11.0/int/key-concepts",component:p("/docs/v0.11.0/int/key-concepts","a44"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.11.0/int/Overview",component:p("/docs/v0.11.0/int/Overview","436"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.11.0/int/quickstart",component:p("/docs/v0.11.0/int/quickstart","d52"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.11.0/int/quickstart/group/quickstart-group-cli",component:p("/docs/v0.11.0/int/quickstart/group/quickstart-group-cli","630"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.11.0/int/quickstart/group/quickstart-group-launchpad",component:p("/docs/v0.11.0/int/quickstart/group/quickstart-group-launchpad","4d3"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.11.0/int/quickstart/quickstart-alone",component:p("/docs/v0.11.0/int/quickstart/quickstart-alone","081"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.11.0/int/quickstart/quickstart-builder-api",component:p("/docs/v0.11.0/int/quickstart/quickstart-builder-api","4db"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.11.0/int/working-groups",component:p("/docs/v0.11.0/int/working-groups","d2b"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.11.0/intro",component:p("/docs/v0.11.0/intro","afb"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.11.0/sc/introducing-obol-managers",component:p("/docs/v0.11.0/sc/introducing-obol-managers","6ae"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.11.0/testnet",component:p("/docs/v0.11.0/testnet","6f1"),exact:!0,sidebar:"tutorialSidebar"}]},{path:"/docs/v0.12.0",component:p("/docs/v0.12.0","666"),routes:[{path:"/docs/v0.12.0/cg/bug-report",component:p("/docs/v0.12.0/cg/bug-report","e1c"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.12.0/cg/docs",component:p("/docs/v0.12.0/cg/docs","fcd"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.12.0/dv/charon_cli_reference",component:p("/docs/v0.12.0/dv/charon_cli_reference","5f5"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.12.0/dv/distributed-validator-cluster-manifest",component:p("/docs/v0.12.0/dv/distributed-validator-cluster-manifest","aaa"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.12.0/dv/introducing-charon",component:p("/docs/v0.12.0/dv/introducing-charon","eee"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.12.0/dv/p2p-interface",component:p("/docs/v0.12.0/dv/p2p-interface","d58"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.12.0/dv/peer-discovery",component:p("/docs/v0.12.0/dv/peer-discovery","d03"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.12.0/dv/validator-creation",component:p("/docs/v0.12.0/dv/validator-creation","2f4"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.12.0/dvk/distributed_validator_launchpad",component:p("/docs/v0.12.0/dvk/distributed_validator_launchpad","287"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.12.0/dvk/distributed-validator-keys",component:p("/docs/v0.12.0/dvk/distributed-validator-keys","bdc"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.12.0/fr/eth",component:p("/docs/v0.12.0/fr/eth","4cc"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.12.0/fr/golang",component:p("/docs/v0.12.0/fr/golang","1d5"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.12.0/glossary",component:p("/docs/v0.12.0/glossary","669"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.12.0/int/faq/errors",component:p("/docs/v0.12.0/int/faq/errors","97b"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.12.0/int/faq/general",component:p("/docs/v0.12.0/int/faq/general","bae"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.12.0/int/key-concepts",component:p("/docs/v0.12.0/int/key-concepts","a69"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.12.0/int/Overview",component:p("/docs/v0.12.0/int/Overview","61c"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.12.0/int/quickstart",component:p("/docs/v0.12.0/int/quickstart","ca8"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.12.0/int/quickstart/group/quickstart-group-cli",component:p("/docs/v0.12.0/int/quickstart/group/quickstart-group-cli","073"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.12.0/int/quickstart/group/quickstart-group-launchpad",component:p("/docs/v0.12.0/int/quickstart/group/quickstart-group-launchpad","215"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.12.0/int/quickstart/quickstart-alone",component:p("/docs/v0.12.0/int/quickstart/quickstart-alone","fc8"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.12.0/int/quickstart/quickstart-builder-api",component:p("/docs/v0.12.0/int/quickstart/quickstart-builder-api","343"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.12.0/int/working-groups",component:p("/docs/v0.12.0/int/working-groups","d1a"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.12.0/intro",component:p("/docs/v0.12.0/intro","af3"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.12.0/sc/introducing-obol-managers",component:p("/docs/v0.12.0/sc/introducing-obol-managers","dcc"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.12.0/testnet",component:p("/docs/v0.12.0/testnet","5da"),exact:!0,sidebar:"tutorialSidebar"}]},{path:"/docs/v0.13.0",component:p("/docs/v0.13.0","61b"),routes:[{path:"/docs/v0.13.0/cg/bug-report",component:p("/docs/v0.13.0/cg/bug-report","453"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.13.0/cg/docs",component:p("/docs/v0.13.0/cg/docs","ae8"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.13.0/charon/charon_cli_reference",component:p("/docs/v0.13.0/charon/charon_cli_reference","b82"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.13.0/charon/cluster-configuration",component:p("/docs/v0.13.0/charon/cluster-configuration","cc2"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.13.0/charon/dkg",component:p("/docs/v0.13.0/charon/dkg","57c"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.13.0/charon/intro",component:p("/docs/v0.13.0/charon/intro","573"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.13.0/charon/p2p-interface",component:p("/docs/v0.13.0/charon/p2p-interface","ea9"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.13.0/charon/peer-discovery",component:p("/docs/v0.13.0/charon/peer-discovery","f05"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.13.0/dvl/intro",component:p("/docs/v0.13.0/dvl/intro","3e2"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.13.0/fr/eth",component:p("/docs/v0.13.0/fr/eth","9c3"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.13.0/fr/golang",component:p("/docs/v0.13.0/fr/golang","37b"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.13.0/int/faq/errors",component:p("/docs/v0.13.0/int/faq/errors","1d2"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.13.0/int/faq/general",component:p("/docs/v0.13.0/int/faq/general","3bd"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.13.0/int/key-concepts",component:p("/docs/v0.13.0/int/key-concepts","d4d"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.13.0/int/Overview",component:p("/docs/v0.13.0/int/Overview","946"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.13.0/int/quickstart",component:p("/docs/v0.13.0/int/quickstart","6d6"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.13.0/int/quickstart/group",component:p("/docs/v0.13.0/int/quickstart/group","ab7"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.13.0/int/quickstart/group/quickstart-group-leader-creator",component:p("/docs/v0.13.0/int/quickstart/group/quickstart-group-leader-creator","386"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.13.0/int/quickstart/group/quickstart-group-operator",component:p("/docs/v0.13.0/int/quickstart/group/quickstart-group-operator","e99"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.13.0/int/quickstart/quickstart-alone",component:p("/docs/v0.13.0/int/quickstart/quickstart-alone","23b"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.13.0/int/quickstart/quickstart-builder-api",component:p("/docs/v0.13.0/int/quickstart/quickstart-builder-api","8d2"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.13.0/int/quickstart/quickstart-cli",component:p("/docs/v0.13.0/int/quickstart/quickstart-cli","26d"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.13.0/intro",component:p("/docs/v0.13.0/intro","fcf"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.13.0/sc/introducing-obol-managers",component:p("/docs/v0.13.0/sc/introducing-obol-managers","5fe"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.13.0/testnet",component:p("/docs/v0.13.0/testnet","f1e"),exact:!0,sidebar:"tutorialSidebar"}]},{path:"/docs/v0.14.0",component:p("/docs/v0.14.0","b51"),routes:[{path:"/docs/v0.14.0/cg/bug-report",component:p("/docs/v0.14.0/cg/bug-report","a23"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.14.0/cg/docs",component:p("/docs/v0.14.0/cg/docs","bf9"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.14.0/charon/charon-cli-reference",component:p("/docs/v0.14.0/charon/charon-cli-reference","aaf"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.14.0/charon/cluster-configuration",component:p("/docs/v0.14.0/charon/cluster-configuration","67f"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.14.0/charon/dkg",component:p("/docs/v0.14.0/charon/dkg","fae"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.14.0/charon/intro",component:p("/docs/v0.14.0/charon/intro","023"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.14.0/charon/networking",component:p("/docs/v0.14.0/charon/networking","77e"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.14.0/dvl/intro",component:p("/docs/v0.14.0/dvl/intro","6ae"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.14.0/fr/eth",component:p("/docs/v0.14.0/fr/eth","b06"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.14.0/fr/golang",component:p("/docs/v0.14.0/fr/golang","998"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.14.0/int/faq/errors",component:p("/docs/v0.14.0/int/faq/errors","746"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.14.0/int/faq/general",component:p("/docs/v0.14.0/int/faq/general","480"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.14.0/int/key-concepts",component:p("/docs/v0.14.0/int/key-concepts","d53"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.14.0/int/Overview",component:p("/docs/v0.14.0/int/Overview","790"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.14.0/int/quickstart",component:p("/docs/v0.14.0/int/quickstart","cbf"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.14.0/int/quickstart/group",component:p("/docs/v0.14.0/int/quickstart/group","cfd"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.14.0/int/quickstart/group/quickstart-group-leader-creator",component:p("/docs/v0.14.0/int/quickstart/group/quickstart-group-leader-creator","394"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.14.0/int/quickstart/group/quickstart-group-operator",component:p("/docs/v0.14.0/int/quickstart/group/quickstart-group-operator","eab"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.14.0/int/quickstart/quickstart-alone",component:p("/docs/v0.14.0/int/quickstart/quickstart-alone","f72"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.14.0/int/quickstart/quickstart-builder-api",component:p("/docs/v0.14.0/int/quickstart/quickstart-builder-api","7a9"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.14.0/int/quickstart/quickstart-cli",component:p("/docs/v0.14.0/int/quickstart/quickstart-cli","253"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.14.0/int/quickstart/quickstart-combine",component:p("/docs/v0.14.0/int/quickstart/quickstart-combine","d4f"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.14.0/intro",component:p("/docs/v0.14.0/intro","646"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.14.0/sc/introducing-obol-managers",component:p("/docs/v0.14.0/sc/introducing-obol-managers","a66"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.14.0/sec/bug-bounty",component:p("/docs/v0.14.0/sec/bug-bounty","e16"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.14.0/sec/contact",component:p("/docs/v0.14.0/sec/contact","5ef"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.14.0/sec/overview",component:p("/docs/v0.14.0/sec/overview","575"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.14.0/sec/roadmap",component:p("/docs/v0.14.0/sec/roadmap","425"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.14.0/testnet",component:p("/docs/v0.14.0/testnet","daa"),exact:!0,sidebar:"tutorialSidebar"}]},{path:"/docs/v0.14.4",component:p("/docs/v0.14.4","353"),routes:[{path:"/docs/v0.14.4/cg/bug-report",component:p("/docs/v0.14.4/cg/bug-report","57f"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.14.4/cg/docs",component:p("/docs/v0.14.4/cg/docs","1b0"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.14.4/charon/charon-cli-reference",component:p("/docs/v0.14.4/charon/charon-cli-reference","4be"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.14.4/charon/cluster-configuration",component:p("/docs/v0.14.4/charon/cluster-configuration","4c0"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.14.4/charon/dkg",component:p("/docs/v0.14.4/charon/dkg","f03"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.14.4/charon/intro",component:p("/docs/v0.14.4/charon/intro","9dd"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.14.4/charon/networking",component:p("/docs/v0.14.4/charon/networking","ccb"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.14.4/dvl/intro",component:p("/docs/v0.14.4/dvl/intro","d93"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.14.4/fr/eth",component:p("/docs/v0.14.4/fr/eth","a88"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.14.4/fr/golang",component:p("/docs/v0.14.4/fr/golang","854"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.14.4/int/faq/errors",component:p("/docs/v0.14.4/int/faq/errors","fec"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.14.4/int/faq/general",component:p("/docs/v0.14.4/int/faq/general","f25"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.14.4/int/key-concepts",component:p("/docs/v0.14.4/int/key-concepts","833"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.14.4/int/Overview",component:p("/docs/v0.14.4/int/Overview","aeb"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.14.4/int/quickstart",component:p("/docs/v0.14.4/int/quickstart","24c"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.14.4/int/quickstart/group",component:p("/docs/v0.14.4/int/quickstart/group","b13"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.14.4/int/quickstart/group/quickstart-group-leader-creator",component:p("/docs/v0.14.4/int/quickstart/group/quickstart-group-leader-creator","ebb"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.14.4/int/quickstart/group/quickstart-group-operator",component:p("/docs/v0.14.4/int/quickstart/group/quickstart-group-operator","a16"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.14.4/int/quickstart/quickstart-alone",component:p("/docs/v0.14.4/int/quickstart/quickstart-alone","0f5"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.14.4/int/quickstart/quickstart-builder-api",component:p("/docs/v0.14.4/int/quickstart/quickstart-builder-api","3bd"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.14.4/int/quickstart/quickstart-cli",component:p("/docs/v0.14.4/int/quickstart/quickstart-cli","bdb"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.14.4/int/quickstart/quickstart-combine",component:p("/docs/v0.14.4/int/quickstart/quickstart-combine","89e"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.14.4/int/quickstart/quickstart-exit",component:p("/docs/v0.14.4/int/quickstart/quickstart-exit","aac"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.14.4/int/quickstart/quickstart-split",component:p("/docs/v0.14.4/int/quickstart/quickstart-split","d92"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.14.4/intro",component:p("/docs/v0.14.4/intro","784"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.14.4/sc/introducing-obol-managers",component:p("/docs/v0.14.4/sc/introducing-obol-managers","0e1"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.14.4/sec/bug-bounty",component:p("/docs/v0.14.4/sec/bug-bounty","b16"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.14.4/sec/contact",component:p("/docs/v0.14.4/sec/contact","7e8"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.14.4/sec/overview",component:p("/docs/v0.14.4/sec/overview","abf"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.14.4/sec/roadmap",component:p("/docs/v0.14.4/sec/roadmap","a1a"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.14.4/testnet",component:p("/docs/v0.14.4/testnet","c1f"),exact:!0,sidebar:"tutorialSidebar"}]},{path:"/docs/v0.15.0",component:p("/docs/v0.15.0","9a7"),routes:[{path:"/docs/v0.15.0/cg/bug-report",component:p("/docs/v0.15.0/cg/bug-report","606"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.15.0/cg/docs",component:p("/docs/v0.15.0/cg/docs","373"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.15.0/charon/charon-cli-reference",component:p("/docs/v0.15.0/charon/charon-cli-reference","ed9"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.15.0/charon/cluster-configuration",component:p("/docs/v0.15.0/charon/cluster-configuration","ab2"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.15.0/charon/dkg",component:p("/docs/v0.15.0/charon/dkg","ca4"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.15.0/charon/intro",component:p("/docs/v0.15.0/charon/intro","1fe"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.15.0/charon/networking",component:p("/docs/v0.15.0/charon/networking","0c1"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.15.0/dvl/intro",component:p("/docs/v0.15.0/dvl/intro","ea0"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.15.0/fr/eth",component:p("/docs/v0.15.0/fr/eth","f27"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.15.0/fr/golang",component:p("/docs/v0.15.0/fr/golang","c19"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.15.0/int/faq/errors",component:p("/docs/v0.15.0/int/faq/errors","dc7"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.15.0/int/faq/general",component:p("/docs/v0.15.0/int/faq/general","488"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.15.0/int/key-concepts",component:p("/docs/v0.15.0/int/key-concepts","861"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.15.0/int/Overview",component:p("/docs/v0.15.0/int/Overview","3d9"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.15.0/int/quickstart",component:p("/docs/v0.15.0/int/quickstart","2c8"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.15.0/int/quickstart/group",component:p("/docs/v0.15.0/int/quickstart/group","aa1"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.15.0/int/quickstart/group/quickstart-group-leader-creator",component:p("/docs/v0.15.0/int/quickstart/group/quickstart-group-leader-creator","96f"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.15.0/int/quickstart/group/quickstart-group-operator",component:p("/docs/v0.15.0/int/quickstart/group/quickstart-group-operator","fce"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.15.0/int/quickstart/quickstart-alone",component:p("/docs/v0.15.0/int/quickstart/quickstart-alone","e12"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.15.0/int/quickstart/quickstart-builder-api",component:p("/docs/v0.15.0/int/quickstart/quickstart-builder-api","193"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.15.0/int/quickstart/quickstart-cli",component:p("/docs/v0.15.0/int/quickstart/quickstart-cli","f91"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.15.0/int/quickstart/quickstart-combine",component:p("/docs/v0.15.0/int/quickstart/quickstart-combine","eda"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.15.0/int/quickstart/quickstart-exit",component:p("/docs/v0.15.0/int/quickstart/quickstart-exit","2d5"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.15.0/int/quickstart/quickstart-mainnet",component:p("/docs/v0.15.0/int/quickstart/quickstart-mainnet","607"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.15.0/int/quickstart/quickstart-split",component:p("/docs/v0.15.0/int/quickstart/quickstart-split","12f"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.15.0/intro",component:p("/docs/v0.15.0/intro","1ed"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.15.0/sc/introducing-obol-managers",component:p("/docs/v0.15.0/sc/introducing-obol-managers","b9f"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.15.0/sec/bug-bounty",component:p("/docs/v0.15.0/sec/bug-bounty","f15"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.15.0/sec/contact",component:p("/docs/v0.15.0/sec/contact","a5a"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.15.0/sec/overview",component:p("/docs/v0.15.0/sec/overview","563"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.15.0/sec/roadmap",component:p("/docs/v0.15.0/sec/roadmap","6d4"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.15.0/testnet",component:p("/docs/v0.15.0/testnet","c4a"),exact:!0,sidebar:"tutorialSidebar"}]},{path:"/docs/v0.16.0",component:p("/docs/v0.16.0","928"),routes:[{path:"/docs/v0.16.0/cg/bug-report",component:p("/docs/v0.16.0/cg/bug-report","e78"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.16.0/cg/docs",component:p("/docs/v0.16.0/cg/docs","786"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.16.0/cg/feedback",component:p("/docs/v0.16.0/cg/feedback","daf"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.16.0/charon/charon-cli-reference",component:p("/docs/v0.16.0/charon/charon-cli-reference","2ee"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.16.0/charon/cluster-configuration",component:p("/docs/v0.16.0/charon/cluster-configuration","f37"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.16.0/charon/dkg",component:p("/docs/v0.16.0/charon/dkg","345"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.16.0/charon/intro",component:p("/docs/v0.16.0/charon/intro","b51"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.16.0/charon/networking",component:p("/docs/v0.16.0/charon/networking","4c8"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.16.0/dvl/intro",component:p("/docs/v0.16.0/dvl/intro","7e1"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.16.0/fr/eth",component:p("/docs/v0.16.0/fr/eth","e05"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.16.0/fr/golang",component:p("/docs/v0.16.0/fr/golang","fc4"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.16.0/int/faq/errors",component:p("/docs/v0.16.0/int/faq/errors","e18"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.16.0/int/faq/general",component:p("/docs/v0.16.0/int/faq/general","3a9"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.16.0/int/faq/risks",component:p("/docs/v0.16.0/int/faq/risks","5dc"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.16.0/int/key-concepts",component:p("/docs/v0.16.0/int/key-concepts","98a"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.16.0/int/Overview",component:p("/docs/v0.16.0/int/Overview","0f7"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.16.0/int/quickstart",component:p("/docs/v0.16.0/int/quickstart","16d"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.16.0/int/quickstart/activate-dv",component:p("/docs/v0.16.0/int/quickstart/activate-dv","10a"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.16.0/int/quickstart/advanced/adv-docker-configs",component:p("/docs/v0.16.0/int/quickstart/advanced/adv-docker-configs","c3e"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.16.0/int/quickstart/advanced/monitoring-credentials",component:p("/docs/v0.16.0/int/quickstart/advanced/monitoring-credentials","6fb"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.16.0/int/quickstart/advanced/prysm-vc",component:p("/docs/v0.16.0/int/quickstart/advanced/prysm-vc","99a"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.16.0/int/quickstart/advanced/quickstart-builder-api",component:p("/docs/v0.16.0/int/quickstart/advanced/quickstart-builder-api","406"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.16.0/int/quickstart/advanced/quickstart-combine",component:p("/docs/v0.16.0/int/quickstart/advanced/quickstart-combine","bb6"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.16.0/int/quickstart/advanced/quickstart-split",component:p("/docs/v0.16.0/int/quickstart/advanced/quickstart-split","645"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.16.0/int/quickstart/advanced/self-relay",component:p("/docs/v0.16.0/int/quickstart/advanced/self-relay","9d9"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.16.0/int/quickstart/alone/create-keys",component:p("/docs/v0.16.0/int/quickstart/alone/create-keys","830"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.16.0/int/quickstart/alone/deploy",component:p("/docs/v0.16.0/int/quickstart/alone/deploy","4f0"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.16.0/int/quickstart/alone/test-locally",component:p("/docs/v0.16.0/int/quickstart/alone/test-locally","099"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.16.0/int/quickstart/group",component:p("/docs/v0.16.0/int/quickstart/group","96f"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.16.0/int/quickstart/group/quickstart-cli",component:p("/docs/v0.16.0/int/quickstart/group/quickstart-cli","8c5"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.16.0/int/quickstart/group/quickstart-group-leader-creator",component:p("/docs/v0.16.0/int/quickstart/group/quickstart-group-leader-creator","b77"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.16.0/int/quickstart/group/quickstart-group-operator",component:p("/docs/v0.16.0/int/quickstart/group/quickstart-group-operator","7b4"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.16.0/int/quickstart/quickstart-exit",component:p("/docs/v0.16.0/int/quickstart/quickstart-exit","73e"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.16.0/int/quickstart/quickstart-mainnet",component:p("/docs/v0.16.0/int/quickstart/quickstart-mainnet","20d"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.16.0/int/quickstart/update",component:p("/docs/v0.16.0/int/quickstart/update","316"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.16.0/intro",component:p("/docs/v0.16.0/intro","5aa"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.16.0/sc/introducing-obol-managers",component:p("/docs/v0.16.0/sc/introducing-obol-managers","5c6"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.16.0/sec/bug-bounty",component:p("/docs/v0.16.0/sec/bug-bounty","a9f"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.16.0/sec/contact",component:p("/docs/v0.16.0/sec/contact","e16"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.16.0/sec/overview",component:p("/docs/v0.16.0/sec/overview","32e"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.16.0/sec/roadmap",component:p("/docs/v0.16.0/sec/roadmap","d97"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.16.0/testnet",component:p("/docs/v0.16.0/testnet","3ae"),exact:!0,sidebar:"tutorialSidebar"}]},{path:"/docs/v0.3.0",component:p("/docs/v0.3.0","129"),routes:[{path:"/docs/v0.3.0/cg/bug-report",component:p("/docs/v0.3.0/cg/bug-report","ab1"),exact:!0,sidebar:"version-v0.3.0/tutorialSidebar"},{path:"/docs/v0.3.0/cg/docs",component:p("/docs/v0.3.0/cg/docs","ed4"),exact:!0,sidebar:"version-v0.3.0/tutorialSidebar"},{path:"/docs/v0.3.0/dv/charon_cli_reference",component:p("/docs/v0.3.0/dv/charon_cli_reference","966"),exact:!0,sidebar:"version-v0.3.0/tutorialSidebar"},{path:"/docs/v0.3.0/dv/distributed-validator-cluster-manifest",component:p("/docs/v0.3.0/dv/distributed-validator-cluster-manifest","c39"),exact:!0,sidebar:"version-v0.3.0/tutorialSidebar"},{path:"/docs/v0.3.0/dv/introducing-charon",component:p("/docs/v0.3.0/dv/introducing-charon","2d3"),exact:!0,sidebar:"version-v0.3.0/tutorialSidebar"},{path:"/docs/v0.3.0/dv/middleware-daemon",component:p("/docs/v0.3.0/dv/middleware-daemon","173"),exact:!0,sidebar:"version-v0.3.0/tutorialSidebar"},{path:"/docs/v0.3.0/dv/p2p-interface",component:p("/docs/v0.3.0/dv/p2p-interface","15a"),exact:!0,sidebar:"version-v0.3.0/tutorialSidebar"},{path:"/docs/v0.3.0/dv/peer-discovery",component:p("/docs/v0.3.0/dv/peer-discovery","1e0"),exact:!0,sidebar:"version-v0.3.0/tutorialSidebar"},{path:"/docs/v0.3.0/dv/validator-creation",component:p("/docs/v0.3.0/dv/validator-creation","e72"),exact:!0,sidebar:"version-v0.3.0/tutorialSidebar"},{path:"/docs/v0.3.0/dvk/distributed_validator_launchpad",component:p("/docs/v0.3.0/dvk/distributed_validator_launchpad","185"),exact:!0,sidebar:"version-v0.3.0/tutorialSidebar"},{path:"/docs/v0.3.0/dvk/distributed-validator-keys",component:p("/docs/v0.3.0/dvk/distributed-validator-keys","69f"),exact:!0,sidebar:"version-v0.3.0/tutorialSidebar"},{path:"/docs/v0.3.0/dvk/dkg_cli_reference",component:p("/docs/v0.3.0/dvk/dkg_cli_reference","b66"),exact:!0,sidebar:"version-v0.3.0/tutorialSidebar"},{path:"/docs/v0.3.0/fr/eth",component:p("/docs/v0.3.0/fr/eth","a7c"),exact:!0,sidebar:"version-v0.3.0/tutorialSidebar"},{path:"/docs/v0.3.0/fr/golang",component:p("/docs/v0.3.0/fr/golang","c4d"),exact:!0,sidebar:"version-v0.3.0/tutorialSidebar"},{path:"/docs/v0.3.0/glossary",component:p("/docs/v0.3.0/glossary","a0e"),exact:!0,sidebar:"version-v0.3.0/tutorialSidebar"},{path:"/docs/v0.3.0/int/faq",component:p("/docs/v0.3.0/int/faq","4b2"),exact:!0,sidebar:"version-v0.3.0/tutorialSidebar"},{path:"/docs/v0.3.0/int/key-concepts",component:p("/docs/v0.3.0/int/key-concepts","9ae"),exact:!0,sidebar:"version-v0.3.0/tutorialSidebar"},{path:"/docs/v0.3.0/int/Overview",component:p("/docs/v0.3.0/int/Overview","638"),exact:!0,sidebar:"version-v0.3.0/tutorialSidebar"},{path:"/docs/v0.3.0/int/working-groups",component:p("/docs/v0.3.0/int/working-groups","65b"),exact:!0,sidebar:"version-v0.3.0/tutorialSidebar"},{path:"/docs/v0.3.0/intro",component:p("/docs/v0.3.0/intro","2bc"),exact:!0,sidebar:"version-v0.3.0/tutorialSidebar"},{path:"/docs/v0.3.0/sc/introducing-obol-managers",component:p("/docs/v0.3.0/sc/introducing-obol-managers","58b"),exact:!0,sidebar:"version-v0.3.0/tutorialSidebar"},{path:"/docs/v0.3.0/testnet",component:p("/docs/v0.3.0/testnet","93e"),exact:!0,sidebar:"version-v0.3.0/tutorialSidebar"}]},{path:"/docs/v0.4.0",component:p("/docs/v0.4.0","61b"),routes:[{path:"/docs/v0.4.0/cg/bug-report",component:p("/docs/v0.4.0/cg/bug-report","b3f"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.4.0/cg/docs",component:p("/docs/v0.4.0/cg/docs","c70"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.4.0/dv/charon_cli_reference",component:p("/docs/v0.4.0/dv/charon_cli_reference","67c"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.4.0/dv/distributed-validator-cluster-manifest",component:p("/docs/v0.4.0/dv/distributed-validator-cluster-manifest","908"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.4.0/dv/introducing-charon",component:p("/docs/v0.4.0/dv/introducing-charon","feb"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.4.0/dv/middleware-daemon",component:p("/docs/v0.4.0/dv/middleware-daemon","3ec"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.4.0/dv/p2p-interface",component:p("/docs/v0.4.0/dv/p2p-interface","5b6"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.4.0/dv/peer-discovery",component:p("/docs/v0.4.0/dv/peer-discovery","d04"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.4.0/dv/validator-creation",component:p("/docs/v0.4.0/dv/validator-creation","73e"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.4.0/dvk/distributed_validator_launchpad",component:p("/docs/v0.4.0/dvk/distributed_validator_launchpad","be8"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.4.0/dvk/distributed-validator-keys",component:p("/docs/v0.4.0/dvk/distributed-validator-keys","b04"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.4.0/dvk/dkg_cli_reference",component:p("/docs/v0.4.0/dvk/dkg_cli_reference","25d"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.4.0/fr/eth",component:p("/docs/v0.4.0/fr/eth","072"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.4.0/fr/golang",component:p("/docs/v0.4.0/fr/golang","51d"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.4.0/glossary",component:p("/docs/v0.4.0/glossary","e19"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.4.0/int/faq",component:p("/docs/v0.4.0/int/faq","185"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.4.0/int/key-concepts",component:p("/docs/v0.4.0/int/key-concepts","d54"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.4.0/int/Overview",component:p("/docs/v0.4.0/int/Overview","fbd"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.4.0/int/working-groups",component:p("/docs/v0.4.0/int/working-groups","279"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.4.0/intro",component:p("/docs/v0.4.0/intro","f64"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.4.0/sc/introducing-obol-managers",component:p("/docs/v0.4.0/sc/introducing-obol-managers","484"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.4.0/testnet",component:p("/docs/v0.4.0/testnet","962"),exact:!0,sidebar:"tutorialSidebar"}]},{path:"/docs/v0.5.0",component:p("/docs/v0.5.0","914"),routes:[{path:"/docs/v0.5.0/cg/bug-report",component:p("/docs/v0.5.0/cg/bug-report","14a"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.5.0/cg/docs",component:p("/docs/v0.5.0/cg/docs","1f8"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.5.0/dv/charon_cli_reference",component:p("/docs/v0.5.0/dv/charon_cli_reference","a2a"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.5.0/dv/distributed-validator-cluster-manifest",component:p("/docs/v0.5.0/dv/distributed-validator-cluster-manifest","65f"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.5.0/dv/introducing-charon",component:p("/docs/v0.5.0/dv/introducing-charon","14c"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.5.0/dv/middleware-daemon",component:p("/docs/v0.5.0/dv/middleware-daemon","d90"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.5.0/dv/p2p-interface",component:p("/docs/v0.5.0/dv/p2p-interface","d30"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.5.0/dv/peer-discovery",component:p("/docs/v0.5.0/dv/peer-discovery","880"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.5.0/dv/validator-creation",component:p("/docs/v0.5.0/dv/validator-creation","ddb"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.5.0/dvk/distributed_validator_launchpad",component:p("/docs/v0.5.0/dvk/distributed_validator_launchpad","e79"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.5.0/dvk/distributed-validator-keys",component:p("/docs/v0.5.0/dvk/distributed-validator-keys","7a1"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.5.0/dvk/dkg_cli_reference",component:p("/docs/v0.5.0/dvk/dkg_cli_reference","b0a"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.5.0/fr/eth",component:p("/docs/v0.5.0/fr/eth","b63"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.5.0/fr/golang",component:p("/docs/v0.5.0/fr/golang","b8c"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.5.0/glossary",component:p("/docs/v0.5.0/glossary","0d2"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.5.0/int/faq",component:p("/docs/v0.5.0/int/faq","172"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.5.0/int/key-concepts",component:p("/docs/v0.5.0/int/key-concepts","b34"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.5.0/int/Overview",component:p("/docs/v0.5.0/int/Overview","2db"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.5.0/int/quickstart",component:p("/docs/v0.5.0/int/quickstart","6bd"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.5.0/int/working-groups",component:p("/docs/v0.5.0/int/working-groups","2a3"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.5.0/intro",component:p("/docs/v0.5.0/intro","973"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.5.0/sc/introducing-obol-managers",component:p("/docs/v0.5.0/sc/introducing-obol-managers","1f7"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.5.0/testnet",component:p("/docs/v0.5.0/testnet","132"),exact:!0,sidebar:"tutorialSidebar"}]},{path:"/docs/v0.6.0",component:p("/docs/v0.6.0","374"),routes:[{path:"/docs/v0.6.0/cg/bug-report",component:p("/docs/v0.6.0/cg/bug-report","407"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.6.0/cg/docs",component:p("/docs/v0.6.0/cg/docs","180"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.6.0/dv/charon_cli_reference",component:p("/docs/v0.6.0/dv/charon_cli_reference","6ea"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.6.0/dv/distributed-validator-cluster-manifest",component:p("/docs/v0.6.0/dv/distributed-validator-cluster-manifest","302"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.6.0/dv/introducing-charon",component:p("/docs/v0.6.0/dv/introducing-charon","6b5"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.6.0/dv/middleware-daemon",component:p("/docs/v0.6.0/dv/middleware-daemon","04a"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.6.0/dv/p2p-interface",component:p("/docs/v0.6.0/dv/p2p-interface","ceb"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.6.0/dv/peer-discovery",component:p("/docs/v0.6.0/dv/peer-discovery","c4e"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.6.0/dv/validator-creation",component:p("/docs/v0.6.0/dv/validator-creation","759"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.6.0/dvk/distributed_validator_launchpad",component:p("/docs/v0.6.0/dvk/distributed_validator_launchpad","c8a"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.6.0/dvk/distributed-validator-keys",component:p("/docs/v0.6.0/dvk/distributed-validator-keys","8c8"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.6.0/dvk/dkg_cli_reference",component:p("/docs/v0.6.0/dvk/dkg_cli_reference","7b7"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.6.0/fr/eth",component:p("/docs/v0.6.0/fr/eth","c01"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.6.0/fr/golang",component:p("/docs/v0.6.0/fr/golang","a3f"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.6.0/glossary",component:p("/docs/v0.6.0/glossary","9ec"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.6.0/int/faq",component:p("/docs/v0.6.0/int/faq","c44"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.6.0/int/key-concepts",component:p("/docs/v0.6.0/int/key-concepts","e89"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.6.0/int/Overview",component:p("/docs/v0.6.0/int/Overview","7ab"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.6.0/int/quickstart",component:p("/docs/v0.6.0/int/quickstart","cd2"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.6.0/int/working-groups",component:p("/docs/v0.6.0/int/working-groups","4a9"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.6.0/intro",component:p("/docs/v0.6.0/intro","ce9"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.6.0/sc/introducing-obol-managers",component:p("/docs/v0.6.0/sc/introducing-obol-managers","f53"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.6.0/testnet",component:p("/docs/v0.6.0/testnet","6ba"),exact:!0,sidebar:"tutorialSidebar"}]},{path:"/docs/v0.6.1",component:p("/docs/v0.6.1","763"),routes:[{path:"/docs/v0.6.1/cg/bug-report",component:p("/docs/v0.6.1/cg/bug-report","c14"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.6.1/cg/docs",component:p("/docs/v0.6.1/cg/docs","67b"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.6.1/dv/charon_cli_reference",component:p("/docs/v0.6.1/dv/charon_cli_reference","b10"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.6.1/dv/distributed-validator-cluster-manifest",component:p("/docs/v0.6.1/dv/distributed-validator-cluster-manifest","8e0"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.6.1/dv/introducing-charon",component:p("/docs/v0.6.1/dv/introducing-charon","926"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.6.1/dv/middleware-daemon",component:p("/docs/v0.6.1/dv/middleware-daemon","959"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.6.1/dv/p2p-interface",component:p("/docs/v0.6.1/dv/p2p-interface","dc1"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.6.1/dv/peer-discovery",component:p("/docs/v0.6.1/dv/peer-discovery","235"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.6.1/dv/validator-creation",component:p("/docs/v0.6.1/dv/validator-creation","80d"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.6.1/dvk/distributed_validator_launchpad",component:p("/docs/v0.6.1/dvk/distributed_validator_launchpad","ca5"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.6.1/dvk/distributed-validator-keys",component:p("/docs/v0.6.1/dvk/distributed-validator-keys","e89"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.6.1/dvk/dkg_cli_reference",component:p("/docs/v0.6.1/dvk/dkg_cli_reference","372"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.6.1/fr/eth",component:p("/docs/v0.6.1/fr/eth","b6d"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.6.1/fr/golang",component:p("/docs/v0.6.1/fr/golang","950"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.6.1/glossary",component:p("/docs/v0.6.1/glossary","0b2"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.6.1/int/faq",component:p("/docs/v0.6.1/int/faq","db1"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.6.1/int/key-concepts",component:p("/docs/v0.6.1/int/key-concepts","c38"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.6.1/int/Overview",component:p("/docs/v0.6.1/int/Overview","2df"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.6.1/int/quickstart",component:p("/docs/v0.6.1/int/quickstart","145"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.6.1/int/quickstart/quickstart-alone",component:p("/docs/v0.6.1/int/quickstart/quickstart-alone","d5b"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.6.1/int/quickstart/quickstart-group",component:p("/docs/v0.6.1/int/quickstart/quickstart-group","94d"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.6.1/int/working-groups",component:p("/docs/v0.6.1/int/working-groups","e38"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.6.1/intro",component:p("/docs/v0.6.1/intro","953"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.6.1/sc/introducing-obol-managers",component:p("/docs/v0.6.1/sc/introducing-obol-managers","10c"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.6.1/testnet",component:p("/docs/v0.6.1/testnet","013"),exact:!0,sidebar:"tutorialSidebar"}]},{path:"/docs/v0.7.0",component:p("/docs/v0.7.0","024"),routes:[{path:"/docs/v0.7.0/cg/bug-report",component:p("/docs/v0.7.0/cg/bug-report","78f"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.7.0/cg/docs",component:p("/docs/v0.7.0/cg/docs","22e"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.7.0/dv/charon_cli_reference",component:p("/docs/v0.7.0/dv/charon_cli_reference","760"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.7.0/dv/distributed-validator-cluster-manifest",component:p("/docs/v0.7.0/dv/distributed-validator-cluster-manifest","3c3"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.7.0/dv/introducing-charon",component:p("/docs/v0.7.0/dv/introducing-charon","75c"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.7.0/dv/middleware-daemon",component:p("/docs/v0.7.0/dv/middleware-daemon","70c"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.7.0/dv/p2p-interface",component:p("/docs/v0.7.0/dv/p2p-interface","b15"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.7.0/dv/peer-discovery",component:p("/docs/v0.7.0/dv/peer-discovery","927"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.7.0/dv/validator-creation",component:p("/docs/v0.7.0/dv/validator-creation","d91"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.7.0/dvk/distributed_validator_launchpad",component:p("/docs/v0.7.0/dvk/distributed_validator_launchpad","ac9"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.7.0/dvk/distributed-validator-keys",component:p("/docs/v0.7.0/dvk/distributed-validator-keys","9de"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.7.0/dvk/dkg_cli_reference",component:p("/docs/v0.7.0/dvk/dkg_cli_reference","8fd"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.7.0/fr/eth",component:p("/docs/v0.7.0/fr/eth","d0a"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.7.0/fr/golang",component:p("/docs/v0.7.0/fr/golang","8d1"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.7.0/glossary",component:p("/docs/v0.7.0/glossary","cb1"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.7.0/int/faq",component:p("/docs/v0.7.0/int/faq","8ac"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.7.0/int/key-concepts",component:p("/docs/v0.7.0/int/key-concepts","058"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.7.0/int/Overview",component:p("/docs/v0.7.0/int/Overview","65e"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.7.0/int/quickstart",component:p("/docs/v0.7.0/int/quickstart","580"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.7.0/int/quickstart/quickstart-alone",component:p("/docs/v0.7.0/int/quickstart/quickstart-alone","594"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.7.0/int/quickstart/quickstart-group",component:p("/docs/v0.7.0/int/quickstart/quickstart-group","d1d"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.7.0/int/working-groups",component:p("/docs/v0.7.0/int/working-groups","97c"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.7.0/intro",component:p("/docs/v0.7.0/intro","184"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.7.0/sc/introducing-obol-managers",component:p("/docs/v0.7.0/sc/introducing-obol-managers","fe9"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.7.0/testnet",component:p("/docs/v0.7.0/testnet","b9c"),exact:!0,sidebar:"tutorialSidebar"}]},{path:"/docs/v0.8.0",component:p("/docs/v0.8.0","25a"),routes:[{path:"/docs/v0.8.0/cg/bug-report",component:p("/docs/v0.8.0/cg/bug-report","e14"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.8.0/cg/docs",component:p("/docs/v0.8.0/cg/docs","224"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.8.0/dv/charon_cli_reference",component:p("/docs/v0.8.0/dv/charon_cli_reference","058"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.8.0/dv/distributed-validator-cluster-manifest",component:p("/docs/v0.8.0/dv/distributed-validator-cluster-manifest","ad7"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.8.0/dv/introducing-charon",component:p("/docs/v0.8.0/dv/introducing-charon","a3a"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.8.0/dv/middleware-daemon",component:p("/docs/v0.8.0/dv/middleware-daemon","259"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.8.0/dv/p2p-interface",component:p("/docs/v0.8.0/dv/p2p-interface","2eb"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.8.0/dv/peer-discovery",component:p("/docs/v0.8.0/dv/peer-discovery","ed0"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.8.0/dv/validator-creation",component:p("/docs/v0.8.0/dv/validator-creation","cb4"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.8.0/dvk/distributed_validator_launchpad",component:p("/docs/v0.8.0/dvk/distributed_validator_launchpad","177"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.8.0/dvk/distributed-validator-keys",component:p("/docs/v0.8.0/dvk/distributed-validator-keys","330"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.8.0/fr/eth",component:p("/docs/v0.8.0/fr/eth","16d"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.8.0/fr/golang",component:p("/docs/v0.8.0/fr/golang","5ce"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.8.0/glossary",component:p("/docs/v0.8.0/glossary","652"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.8.0/int/faq",component:p("/docs/v0.8.0/int/faq","a19"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.8.0/int/key-concepts",component:p("/docs/v0.8.0/int/key-concepts","938"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.8.0/int/Overview",component:p("/docs/v0.8.0/int/Overview","171"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.8.0/int/quickstart",component:p("/docs/v0.8.0/int/quickstart","a2b"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.8.0/int/quickstart/quickstart-alone",component:p("/docs/v0.8.0/int/quickstart/quickstart-alone","c10"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.8.0/int/quickstart/quickstart-group",component:p("/docs/v0.8.0/int/quickstart/quickstart-group","279"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.8.0/int/working-groups",component:p("/docs/v0.8.0/int/working-groups","748"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.8.0/intro",component:p("/docs/v0.8.0/intro","6e8"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.8.0/sc/introducing-obol-managers",component:p("/docs/v0.8.0/sc/introducing-obol-managers","94a"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.8.0/testnet",component:p("/docs/v0.8.0/testnet","a03"),exact:!0,sidebar:"tutorialSidebar"}]},{path:"/docs/v0.8.1",component:p("/docs/v0.8.1","79f"),routes:[{path:"/docs/v0.8.1/cg/bug-report",component:p("/docs/v0.8.1/cg/bug-report","cd0"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.8.1/cg/docs",component:p("/docs/v0.8.1/cg/docs","237"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.8.1/dv/charon_cli_reference",component:p("/docs/v0.8.1/dv/charon_cli_reference","7d9"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.8.1/dv/distributed-validator-cluster-manifest",component:p("/docs/v0.8.1/dv/distributed-validator-cluster-manifest","ca6"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.8.1/dv/introducing-charon",component:p("/docs/v0.8.1/dv/introducing-charon","661"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.8.1/dv/middleware-daemon",component:p("/docs/v0.8.1/dv/middleware-daemon","d7e"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.8.1/dv/p2p-interface",component:p("/docs/v0.8.1/dv/p2p-interface","88a"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.8.1/dv/peer-discovery",component:p("/docs/v0.8.1/dv/peer-discovery","373"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.8.1/dv/validator-creation",component:p("/docs/v0.8.1/dv/validator-creation","f34"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.8.1/dvk/distributed_validator_launchpad",component:p("/docs/v0.8.1/dvk/distributed_validator_launchpad","888"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.8.1/dvk/distributed-validator-keys",component:p("/docs/v0.8.1/dvk/distributed-validator-keys","6e2"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.8.1/fr/eth",component:p("/docs/v0.8.1/fr/eth","02c"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.8.1/fr/golang",component:p("/docs/v0.8.1/fr/golang","6b8"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.8.1/glossary",component:p("/docs/v0.8.1/glossary","c7b"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.8.1/int/faq",component:p("/docs/v0.8.1/int/faq","f00"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.8.1/int/key-concepts",component:p("/docs/v0.8.1/int/key-concepts","396"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.8.1/int/Overview",component:p("/docs/v0.8.1/int/Overview","bb4"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.8.1/int/quickstart",component:p("/docs/v0.8.1/int/quickstart","046"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.8.1/int/quickstart/quickstart-alone",component:p("/docs/v0.8.1/int/quickstart/quickstart-alone","db4"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.8.1/int/quickstart/quickstart-group",component:p("/docs/v0.8.1/int/quickstart/quickstart-group","67e"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.8.1/int/working-groups",component:p("/docs/v0.8.1/int/working-groups","69c"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.8.1/intro",component:p("/docs/v0.8.1/intro","56a"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.8.1/sc/introducing-obol-managers",component:p("/docs/v0.8.1/sc/introducing-obol-managers","e5f"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.8.1/testnet",component:p("/docs/v0.8.1/testnet","46c"),exact:!0,sidebar:"tutorialSidebar"}]},{path:"/docs/v0.9.0",component:p("/docs/v0.9.0","d28"),routes:[{path:"/docs/v0.9.0/cg/bug-report",component:p("/docs/v0.9.0/cg/bug-report","3eb"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.9.0/cg/docs",component:p("/docs/v0.9.0/cg/docs","4d0"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.9.0/dv/charon_cli_reference",component:p("/docs/v0.9.0/dv/charon_cli_reference","bb2"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.9.0/dv/distributed-validator-cluster-manifest",component:p("/docs/v0.9.0/dv/distributed-validator-cluster-manifest","a6f"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.9.0/dv/introducing-charon",component:p("/docs/v0.9.0/dv/introducing-charon","603"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.9.0/dv/middleware-daemon",component:p("/docs/v0.9.0/dv/middleware-daemon","8cc"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.9.0/dv/p2p-interface",component:p("/docs/v0.9.0/dv/p2p-interface","113"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.9.0/dv/peer-discovery",component:p("/docs/v0.9.0/dv/peer-discovery","cc6"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.9.0/dv/validator-creation",component:p("/docs/v0.9.0/dv/validator-creation","759"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.9.0/dvk/distributed_validator_launchpad",component:p("/docs/v0.9.0/dvk/distributed_validator_launchpad","7dd"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.9.0/dvk/distributed-validator-keys",component:p("/docs/v0.9.0/dvk/distributed-validator-keys","884"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.9.0/fr/eth",component:p("/docs/v0.9.0/fr/eth","081"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.9.0/fr/golang",component:p("/docs/v0.9.0/fr/golang","c92"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.9.0/glossary",component:p("/docs/v0.9.0/glossary","386"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.9.0/int/faq",component:p("/docs/v0.9.0/int/faq","a11"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.9.0/int/key-concepts",component:p("/docs/v0.9.0/int/key-concepts","aad"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.9.0/int/Overview",component:p("/docs/v0.9.0/int/Overview","f24"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.9.0/int/quickstart",component:p("/docs/v0.9.0/int/quickstart","235"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.9.0/int/quickstart/quickstart-alone",component:p("/docs/v0.9.0/int/quickstart/quickstart-alone","886"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.9.0/int/quickstart/quickstart-group",component:p("/docs/v0.9.0/int/quickstart/quickstart-group","0f0"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.9.0/int/working-groups",component:p("/docs/v0.9.0/int/working-groups","273"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.9.0/intro",component:p("/docs/v0.9.0/intro","4ff"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.9.0/sc/introducing-obol-managers",component:p("/docs/v0.9.0/sc/introducing-obol-managers","8b7"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/v0.9.0/testnet",component:p("/docs/v0.9.0/testnet","cbf"),exact:!0,sidebar:"tutorialSidebar"}]},{path:"/docs",component:p("/docs","eac"),routes:[{path:"/docs/cg/bug-report",component:p("/docs/cg/bug-report","acb"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/cg/docs",component:p("/docs/cg/docs","d69"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/cg/feedback",component:p("/docs/cg/feedback","94c"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/charon/charon-cli-reference",component:p("/docs/charon/charon-cli-reference","a7d"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/charon/cluster-configuration",component:p("/docs/charon/cluster-configuration","3b1"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/charon/dkg",component:p("/docs/charon/dkg","f29"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/charon/intro",component:p("/docs/charon/intro","a24"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/charon/networking",component:p("/docs/charon/networking","655"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/dvl/intro",component:p("/docs/dvl/intro","8e9"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/fr/eth",component:p("/docs/fr/eth","a8f"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/fr/golang",component:p("/docs/fr/golang","af5"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/int/faq/errors",component:p("/docs/int/faq/errors","28f"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/int/faq/general",component:p("/docs/int/faq/general","c1e"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/int/faq/risks",component:p("/docs/int/faq/risks","b02"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/int/faq/threat_model",component:p("/docs/int/faq/threat_model","327"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/int/key-concepts",component:p("/docs/int/key-concepts","f6b"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/int/Overview",component:p("/docs/int/Overview","6b9"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/int/quickstart",component:p("/docs/int/quickstart","c7c"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/int/quickstart/activate-dv",component:p("/docs/int/quickstart/activate-dv","29a"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/int/quickstart/advanced/adv-docker-configs",component:p("/docs/int/quickstart/advanced/adv-docker-configs","84a"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/int/quickstart/advanced/monitoring-credentials",component:p("/docs/int/quickstart/advanced/monitoring-credentials","a1b"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/int/quickstart/advanced/prysm-vc",component:p("/docs/int/quickstart/advanced/prysm-vc","e46"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/int/quickstart/advanced/push-metrics",component:p("/docs/int/quickstart/advanced/push-metrics","38c"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/int/quickstart/advanced/quickstart-builder-api",component:p("/docs/int/quickstart/advanced/quickstart-builder-api","4cb"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/int/quickstart/advanced/quickstart-combine",component:p("/docs/int/quickstart/advanced/quickstart-combine","b22"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/int/quickstart/advanced/quickstart-sdk",component:p("/docs/int/quickstart/advanced/quickstart-sdk","c3b"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/int/quickstart/advanced/quickstart-split",component:p("/docs/int/quickstart/advanced/quickstart-split","35b"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/int/quickstart/advanced/self-relay",component:p("/docs/int/quickstart/advanced/self-relay","432"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/int/quickstart/alone/create-keys",component:p("/docs/int/quickstart/alone/create-keys","93f"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/int/quickstart/alone/deploy",component:p("/docs/int/quickstart/alone/deploy","7ce"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/int/quickstart/alone/test-locally",component:p("/docs/int/quickstart/alone/test-locally","307"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/int/quickstart/group",component:p("/docs/int/quickstart/group","cd5"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/int/quickstart/group/quickstart-cli",component:p("/docs/int/quickstart/group/quickstart-cli","9c6"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/int/quickstart/group/quickstart-group-leader-creator",component:p("/docs/int/quickstart/group/quickstart-group-leader-creator","d39"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/int/quickstart/group/quickstart-group-operator",component:p("/docs/int/quickstart/group/quickstart-group-operator","e42"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/int/quickstart/quickstart-exit",component:p("/docs/int/quickstart/quickstart-exit","fc4"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/int/quickstart/quickstart-mainnet",component:p("/docs/int/quickstart/quickstart-mainnet","8b4"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/int/quickstart/update",component:p("/docs/int/quickstart/update","437"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/intro",component:p("/docs/intro","e29"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/sc/introducing-obol-managers",component:p("/docs/sc/introducing-obol-managers","7cd"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/sec/bug-bounty",component:p("/docs/sec/bug-bounty","7ea"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/sec/contact",component:p("/docs/sec/contact","987"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/sec/overview",component:p("/docs/sec/overview","7cc"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/sec/roadmap",component:p("/docs/sec/roadmap","fb8"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/testnet",component:p("/docs/testnet","4c0"),exact:!0,sidebar:"tutorialSidebar"}]},{path:"/",component:p("/","f97"),exact:!0},{path:"*",component:p("*")}]},55351:(e,t,n)=>{var r,o;!function(){var a,i,s,c,d,l,u,p,v,f,b,h,m,g,y,_,k,S,w,x,E,q,O,C,P,I,T,A,L,N,R=function(e){var t=new R.Builder;return t.pipeline.add(R.trimmer,R.stopWordFilter,R.stemmer),t.searchPipeline.add(R.stemmer),e.call(t,t),t.build()};R.version="2.3.9",R.utils={},R.utils.warn=(a=this,function(e){a.console&&console.warn&&console.warn(e)}),R.utils.asString=function(e){return null==e?"":e.toString()},R.utils.clone=function(e){if(null==e)return e;for(var t=Object.create(null),n=Object.keys(e),r=0;r0){var c=R.utils.clone(t)||{};c.position=[i,s],c.index=o.length,o.push(new R.Token(n.slice(i,a),c))}i=a+1}}return o},R.tokenizer.separator=/[\s\-]+/,R.Pipeline=function(){this._stack=[]},R.Pipeline.registeredFunctions=Object.create(null),R.Pipeline.registerFunction=function(e,t){t in this.registeredFunctions&&R.utils.warn("Overwriting existing registered function: "+t),e.label=t,R.Pipeline.registeredFunctions[e.label]=e},R.Pipeline.warnIfFunctionNotRegistered=function(e){e.label&&e.label in this.registeredFunctions||R.utils.warn("Function is not registered with pipeline. This may cause problems when serialising the index.\n",e)},R.Pipeline.load=function(e){var t=new R.Pipeline;return e.forEach((function(e){var n=R.Pipeline.registeredFunctions[e];if(!n)throw new Error("Cannot load unregistered function: "+e);t.add(n)})),t},R.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach((function(e){R.Pipeline.warnIfFunctionNotRegistered(e),this._stack.push(e)}),this)},R.Pipeline.prototype.after=function(e,t){R.Pipeline.warnIfFunctionNotRegistered(t);var n=this._stack.indexOf(e);if(-1==n)throw new Error("Cannot find existingFn");n+=1,this._stack.splice(n,0,t)},R.Pipeline.prototype.before=function(e,t){R.Pipeline.warnIfFunctionNotRegistered(t);var n=this._stack.indexOf(e);if(-1==n)throw new Error("Cannot find existingFn");this._stack.splice(n,0,t)},R.Pipeline.prototype.remove=function(e){var t=this._stack.indexOf(e);-1!=t&&this._stack.splice(t,1)},R.Pipeline.prototype.run=function(e){for(var t=this._stack.length,n=0;n1&&(ae&&(n=o),a!=e);)r=n-t,o=t+Math.floor(r/2),a=this.elements[2*o];return a==e||a>e?2*o:as?d+=2:i==s&&(t+=n[c+1]*r[d+1],c+=2,d+=2);return t},R.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},R.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),t=1,n=0;t0){var a,i=o.str.charAt(0);i in o.node.edges?a=o.node.edges[i]:(a=new R.TokenSet,o.node.edges[i]=a),1==o.str.length&&(a.final=!0),r.push({node:a,editsRemaining:o.editsRemaining,str:o.str.slice(1)})}if(0!=o.editsRemaining){if("*"in o.node.edges)var s=o.node.edges["*"];else{s=new R.TokenSet;o.node.edges["*"]=s}if(0==o.str.length&&(s.final=!0),r.push({node:s,editsRemaining:o.editsRemaining-1,str:o.str}),o.str.length>1&&r.push({node:o.node,editsRemaining:o.editsRemaining-1,str:o.str.slice(1)}),1==o.str.length&&(o.node.final=!0),o.str.length>=1){if("*"in o.node.edges)var c=o.node.edges["*"];else{c=new R.TokenSet;o.node.edges["*"]=c}1==o.str.length&&(c.final=!0),r.push({node:c,editsRemaining:o.editsRemaining-1,str:o.str.slice(1)})}if(o.str.length>1){var d,l=o.str.charAt(0),u=o.str.charAt(1);u in o.node.edges?d=o.node.edges[u]:(d=new R.TokenSet,o.node.edges[u]=d),1==o.str.length&&(d.final=!0),r.push({node:d,editsRemaining:o.editsRemaining-1,str:l+o.str.slice(2)})}}}return n},R.TokenSet.fromString=function(e){for(var t=new R.TokenSet,n=t,r=0,o=e.length;r=e;t--){var n=this.uncheckedNodes[t],r=n.child.toString();r in this.minimizedNodes?n.parent.edges[n.char]=this.minimizedNodes[r]:(n.child._str=r,this.minimizedNodes[r]=n.child),this.uncheckedNodes.pop()}},R.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},R.Index.prototype.search=function(e){return this.query((function(t){new R.QueryParser(e,t).parse()}))},R.Index.prototype.query=function(e){for(var t=new R.Query(this.fields),n=Object.create(null),r=Object.create(null),o=Object.create(null),a=Object.create(null),i=Object.create(null),s=0;s1?1:e},R.Builder.prototype.k1=function(e){this._k1=e},R.Builder.prototype.add=function(e,t){var n=e[this._ref],r=Object.keys(this._fields);this._documents[n]=t||{},this.documentCount+=1;for(var o=0;o=this.length)return R.QueryLexer.EOS;var e=this.str.charAt(this.pos);return this.pos+=1,e},R.QueryLexer.prototype.width=function(){return this.pos-this.start},R.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},R.QueryLexer.prototype.backup=function(){this.pos-=1},R.QueryLexer.prototype.acceptDigitRun=function(){var e,t;do{t=(e=this.next()).charCodeAt(0)}while(t>47&&t<58);e!=R.QueryLexer.EOS&&this.backup()},R.QueryLexer.prototype.more=function(){return this.pos1&&(e.backup(),e.emit(R.QueryLexer.TERM)),e.ignore(),e.more())return R.QueryLexer.lexText},R.QueryLexer.lexEditDistance=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(R.QueryLexer.EDIT_DISTANCE),R.QueryLexer.lexText},R.QueryLexer.lexBoost=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(R.QueryLexer.BOOST),R.QueryLexer.lexText},R.QueryLexer.lexEOS=function(e){e.width()>0&&e.emit(R.QueryLexer.TERM)},R.QueryLexer.termSeparator=R.tokenizer.separator,R.QueryLexer.lexText=function(e){for(;;){var t=e.next();if(t==R.QueryLexer.EOS)return R.QueryLexer.lexEOS;if(92!=t.charCodeAt(0)){if(":"==t)return R.QueryLexer.lexField;if("~"==t)return e.backup(),e.width()>0&&e.emit(R.QueryLexer.TERM),R.QueryLexer.lexEditDistance;if("^"==t)return e.backup(),e.width()>0&&e.emit(R.QueryLexer.TERM),R.QueryLexer.lexBoost;if("+"==t&&1===e.width())return e.emit(R.QueryLexer.PRESENCE),R.QueryLexer.lexText;if("-"==t&&1===e.width())return e.emit(R.QueryLexer.PRESENCE),R.QueryLexer.lexText;if(t.match(R.QueryLexer.termSeparator))return R.QueryLexer.lexTerm}else e.escapeCharacter()}},R.QueryParser=function(e,t){this.lexer=new R.QueryLexer(e),this.query=t,this.currentClause={},this.lexemeIdx=0},R.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var e=R.QueryParser.parseClause;e;)e=e(this);return this.query},R.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},R.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},R.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},R.QueryParser.parseClause=function(e){var t=e.peekLexeme();if(null!=t)switch(t.type){case R.QueryLexer.PRESENCE:return R.QueryParser.parsePresence;case R.QueryLexer.FIELD:return R.QueryParser.parseField;case R.QueryLexer.TERM:return R.QueryParser.parseTerm;default:var n="expected either a field or a term, found "+t.type;throw t.str.length>=1&&(n+=" with value '"+t.str+"'"),new R.QueryParseError(n,t.start,t.end)}},R.QueryParser.parsePresence=function(e){var t=e.consumeLexeme();if(null!=t){switch(t.str){case"-":e.currentClause.presence=R.Query.presence.PROHIBITED;break;case"+":e.currentClause.presence=R.Query.presence.REQUIRED;break;default:var n="unrecognised presence operator'"+t.str+"'";throw new R.QueryParseError(n,t.start,t.end)}var r=e.peekLexeme();if(null==r){n="expecting term or field, found nothing";throw new R.QueryParseError(n,t.start,t.end)}switch(r.type){case R.QueryLexer.FIELD:return R.QueryParser.parseField;case R.QueryLexer.TERM:return R.QueryParser.parseTerm;default:n="expecting term or field, found '"+r.type+"'";throw new R.QueryParseError(n,r.start,r.end)}}},R.QueryParser.parseField=function(e){var t=e.consumeLexeme();if(null!=t){if(-1==e.query.allFields.indexOf(t.str)){var n=e.query.allFields.map((function(e){return"'"+e+"'"})).join(", "),r="unrecognised field '"+t.str+"', possible fields: "+n;throw new R.QueryParseError(r,t.start,t.end)}e.currentClause.fields=[t.str];var o=e.peekLexeme();if(null==o){r="expecting term, found nothing";throw new R.QueryParseError(r,t.start,t.end)}if(o.type===R.QueryLexer.TERM)return R.QueryParser.parseTerm;r="expecting term, found '"+o.type+"'";throw new R.QueryParseError(r,o.start,o.end)}},R.QueryParser.parseTerm=function(e){var t=e.consumeLexeme();if(null!=t){e.currentClause.term=t.str.toLowerCase(),-1!=t.str.indexOf("*")&&(e.currentClause.usePipeline=!1);var n=e.peekLexeme();if(null!=n)switch(n.type){case R.QueryLexer.TERM:return e.nextClause(),R.QueryParser.parseTerm;case R.QueryLexer.FIELD:return e.nextClause(),R.QueryParser.parseField;case R.QueryLexer.EDIT_DISTANCE:return R.QueryParser.parseEditDistance;case R.QueryLexer.BOOST:return R.QueryParser.parseBoost;case R.QueryLexer.PRESENCE:return e.nextClause(),R.QueryParser.parsePresence;default:var r="Unexpected lexeme type '"+n.type+"'";throw new R.QueryParseError(r,n.start,n.end)}else e.nextClause()}},R.QueryParser.parseEditDistance=function(e){var t=e.consumeLexeme();if(null!=t){var n=parseInt(t.str,10);if(isNaN(n)){var r="edit distance must be numeric";throw new R.QueryParseError(r,t.start,t.end)}e.currentClause.editDistance=n;var o=e.peekLexeme();if(null!=o)switch(o.type){case R.QueryLexer.TERM:return e.nextClause(),R.QueryParser.parseTerm;case R.QueryLexer.FIELD:return e.nextClause(),R.QueryParser.parseField;case R.QueryLexer.EDIT_DISTANCE:return R.QueryParser.parseEditDistance;case R.QueryLexer.BOOST:return R.QueryParser.parseBoost;case R.QueryLexer.PRESENCE:return e.nextClause(),R.QueryParser.parsePresence;default:r="Unexpected lexeme type '"+o.type+"'";throw new R.QueryParseError(r,o.start,o.end)}else e.nextClause()}},R.QueryParser.parseBoost=function(e){var t=e.consumeLexeme();if(null!=t){var n=parseInt(t.str,10);if(isNaN(n)){var r="boost must be numeric";throw new R.QueryParseError(r,t.start,t.end)}e.currentClause.boost=n;var o=e.peekLexeme();if(null!=o)switch(o.type){case R.QueryLexer.TERM:return e.nextClause(),R.QueryParser.parseTerm;case R.QueryLexer.FIELD:return e.nextClause(),R.QueryParser.parseField;case R.QueryLexer.EDIT_DISTANCE:return R.QueryParser.parseEditDistance;case R.QueryLexer.BOOST:return R.QueryParser.parseBoost;case R.QueryLexer.PRESENCE:return e.nextClause(),R.QueryParser.parsePresence;default:r="Unexpected lexeme type '"+o.type+"'";throw new R.QueryParseError(r,o.start,o.end)}else e.nextClause()}},void 0===(o="function"==typeof(r=function(){return R})?r.call(t,n,t,e):r)||(e.exports=o)}()},88121:(e,t,n)=>{"use strict";n.d(t,{_:()=>o,t:()=>a});var r=n(67294);const o=r.createContext(!1);function a(e){let{children:t}=e;const[n,a]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{a(!0)}),[]),r.createElement(o.Provider,{value:n},t)}},90654:(e,t,n)=>{"use strict";var r=n(67294),o=n(73935),a=n(73727),i=n(70405),s=n(36136);const c=[n(30984),n(82251),n(79957),n(46930),n(78728),n(26597)];var d=n(50997),l=n(16550),u=n(18790);function p(e){let{children:t}=e;return r.createElement(r.Fragment,null,t)}var v=n(87462),f=n(31514),b=n(39962),h=n(79524),m=n(20107),g=n(35463),y=n(40626),_=n(78181),k=n(60246),S=n(33647);function w(){const{i18n:{defaultLocale:e,localeConfigs:t}}=(0,b.Z)(),n=(0,y.l)();return r.createElement(f.Z,null,Object.entries(t).map((e=>{let[t,{htmlLang:o}]=e;return r.createElement("link",{key:t,rel:"alternate",href:n.createUrl({locale:t,fullyQualified:!0}),hrefLang:o})})),r.createElement("link",{rel:"alternate",href:n.createUrl({locale:e,fullyQualified:!0}),hrefLang:"x-default"}))}function x(e){let{permalink:t}=e;const{siteConfig:{url:n}}=(0,b.Z)(),o=function(){const{siteConfig:{url:e}}=(0,b.Z)(),{pathname:t}=(0,l.TH)();return e+(0,h.Z)(t)}(),a=t?`${n}${t}`:o;return r.createElement(f.Z,null,r.createElement("meta",{property:"og:url",content:a}),r.createElement("link",{rel:"canonical",href:a}))}function E(){const{i18n:{currentLocale:e}}=(0,b.Z)(),{metadata:t,image:n}=(0,m.L)();return r.createElement(r.Fragment,null,r.createElement(f.Z,null,r.createElement("meta",{name:"twitter:card",content:"summary_large_image"}),r.createElement("body",{className:_.h})),n&&r.createElement(g.d,{image:n}),r.createElement(x,null),r.createElement(w,null),r.createElement(S.Z,{tag:k.HX,locale:e}),r.createElement(f.Z,null,t.map(((e,t)=>r.createElement("meta",(0,v.Z)({key:t},e))))))}const q=new Map;function O(e){if(q.has(e.pathname))return{...e,pathname:q.get(e.pathname)};if((0,u.f)(d.Z,e.pathname).some((e=>{let{route:t}=e;return!0===t.exact})))return q.set(e.pathname,e.pathname),e;const t=e.pathname.trim().replace(/(?:\/index)?\.html$/,"")||"/";return q.set(e.pathname,t),{...e,pathname:t}}var C=n(88121),P=n(80694);function I(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r(t.default?.[e]??t[e])?.(...n)));return()=>o.forEach((e=>e?.()))}const T=function(e){let{children:t,location:n,previousLocation:o}=e;return(0,r.useLayoutEffect)((()=>{o!==n&&(!function(e){let{location:t,previousLocation:n}=e;if(!n)return;const r=t.pathname===n.pathname,o=t.hash===n.hash,a=t.search===n.search;if(r&&o&&!a)return;const{hash:i}=t;if(i){const e=decodeURIComponent(i.substring(1));document.getElementById(e)?.scrollIntoView()}else window.scrollTo(0,0)}({location:n,previousLocation:o}),I("onRouteDidUpdate",{previousLocation:o,location:n}))}),[o,n]),t};function A(e){const t=Array.from(new Set([e,decodeURI(e)])).map((e=>(0,u.f)(d.Z,e))).flat();return Promise.all(t.map((e=>e.route.component.preload?.())))}class L extends r.Component{constructor(e){super(e),this.previousLocation=void 0,this.routeUpdateCleanupCb=void 0,this.previousLocation=null,this.routeUpdateCleanupCb=s.default.canUseDOM?I("onRouteUpdate",{previousLocation:null,location:this.props.location}):()=>{},this.state={nextRouteHasLoaded:!0}}shouldComponentUpdate(e,t){if(e.location===this.props.location)return t.nextRouteHasLoaded;const n=e.location;return this.previousLocation=this.props.location,this.setState({nextRouteHasLoaded:!1}),this.routeUpdateCleanupCb=I("onRouteUpdate",{previousLocation:this.previousLocation,location:n}),A(n.pathname).then((()=>{this.routeUpdateCleanupCb(),this.setState({nextRouteHasLoaded:!0})})).catch((e=>{console.warn(e),window.location.reload()})),!1}render(){const{children:e,location:t}=this.props;return r.createElement(T,{previousLocation:this.previousLocation,location:t},r.createElement(l.AW,{location:t,render:()=>e}))}}const N=L,R="docusaurus-base-url-issue-banner-container",D="docusaurus-base-url-issue-banner-suggestion-container",j="__DOCUSAURUS_INSERT_BASEURL_BANNER";function F(e){return`\nwindow['${j}'] = true;\n\ndocument.addEventListener('DOMContentLoaded', maybeInsertBanner);\n\nfunction maybeInsertBanner() {\n var shouldInsert = window['${j}'];\n shouldInsert && insertBanner();\n}\n\nfunction insertBanner() {\n var bannerContainer = document.getElementById('${R}');\n if (!bannerContainer) {\n return;\n }\n var bannerHtml = ${JSON.stringify(function(e){return`\n
\n

Your Docusaurus site did not load properly.

\n

A very common reason is a wrong site baseUrl configuration.

\n

Current configured baseUrl = ${e} ${"/"===e?" (default value)":""}

\n

We suggest trying baseUrl =

\n
\n`}(e)).replace(/{window[j]=!1}),[]),r.createElement(r.Fragment,null,!s.default.canUseDOM&&r.createElement(f.Z,null,r.createElement("script",null,F(e))),r.createElement("div",{id:R}))}function B(){const{siteConfig:{baseUrl:e,baseUrlIssueBanner:t}}=(0,b.Z)(),{pathname:n}=(0,l.TH)();return t&&n===e?r.createElement(M,null):null}function $(){const{siteConfig:{favicon:e,title:t,noIndex:n},i18n:{currentLocale:o,localeConfigs:a}}=(0,b.Z)(),i=(0,h.Z)(e),{htmlLang:s,direction:c}=a[o];return r.createElement(f.Z,null,r.createElement("html",{lang:s,dir:c}),r.createElement("title",null,t),r.createElement("meta",{property:"og:title",content:t}),r.createElement("meta",{name:"viewport",content:"width=device-width, initial-scale=1.0"}),n&&r.createElement("meta",{name:"robots",content:"noindex, nofollow"}),e&&r.createElement("link",{rel:"icon",href:i}))}var U=n(73256);function z(){const e=(0,u.H)(d.Z),t=(0,l.TH)();return r.createElement(U.Z,null,r.createElement(P.M,null,r.createElement(C.t,null,r.createElement(p,null,r.createElement($,null),r.createElement(E,null),r.createElement(B,null),r.createElement(N,{location:O(t)},e)))))}var H=n(16887);const V=function(e){try{return document.createElement("link").relList.supports(e)}catch{return!1}}("prefetch")?function(e){return new Promise(((t,n)=>{if("undefined"==typeof document)return void n();const r=document.createElement("link");r.setAttribute("rel","prefetch"),r.setAttribute("href",e),r.onload=()=>t(),r.onerror=()=>n();(document.getElementsByTagName("head")[0]??document.getElementsByName("script")[0]?.parentNode)?.appendChild(r)}))}:function(e){return new Promise(((t,n)=>{const r=new XMLHttpRequest;r.open("GET",e,!0),r.withCredentials=!0,r.onload=()=>{200===r.status?t():n()},r.send(null)}))};var Z=n(5304);const Q=new Set,W=new Set,G=()=>navigator.connection?.effectiveType.includes("2g")||navigator.connection?.saveData,K={prefetch(e){if(!(e=>!G()&&!W.has(e)&&!Q.has(e))(e))return!1;Q.add(e);const t=(0,u.f)(d.Z,e).flatMap((e=>{return t=e.route.path,Object.entries(H).filter((e=>{let[n]=e;return n.replace(/-[^-]+$/,"")===t})).flatMap((e=>{let[,t]=e;return Object.values((0,Z.Z)(t))}));var t}));return Promise.all(t.map((e=>{const t=n.gca(e);return t&&!t.includes("undefined")?V(t).catch((()=>{})):Promise.resolve()})))},preload:e=>!!(e=>!G()&&!W.has(e))(e)&&(W.add(e),A(e))},Y=Object.freeze(K);if(s.default.canUseDOM){window.docusaurus=Y;const e=o.hydrate;A(window.location.pathname).then((()=>{e(r.createElement(i.B6,null,r.createElement(a.VK,null,r.createElement(z,null))),document.getElementById("__docusaurus"))}))}},80694:(e,t,n)=>{"use strict";n.d(t,{_:()=>l,M:()=>u});var r=n(67294),o=n(36809);const a=JSON.parse('{"@cmfcmf/docusaurus-search-local":{"default":{"titleBoost":5,"contentBoost":1,"tagsBoost":3,"parentCategoriesBoost":2,"indexDocSidebarParentCategories":0,"maxSearchResults":8}},"docusaurus-plugin-redoc":{"plugin-redoc-0":{"url":"redocusaurus/plugin-redoc-0.yaml","themeId":"theme-redoc","isSpecFile":true,"spec":{"openapi":"3.0.0","paths":{"/":{"get":{"operationId":"AppController_redirect","summary":"Redirect to the API docs","description":"Hitting the root of the domain redirects to /docs and a swagger deployment.","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}},"tags":["System"]}},"/_health":{"get":{"operationId":"HealthController_check","summary":"Check the API health","description":"This endpoint reports the API and its dependencies health.","parameters":[],"responses":{"200":{"description":"The Health Check is successful","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","example":"ok"},"info":{"type":"object","example":{"database":{"status":"up"}},"additionalProperties":{"type":"object","properties":{"status":{"type":"string"}},"additionalProperties":{"type":"string"}},"nullable":true},"error":{"type":"object","example":{},"additionalProperties":{"type":"object","properties":{"status":{"type":"string"}},"additionalProperties":{"type":"string"}},"nullable":true},"details":{"type":"object","example":{"database":{"status":"up"}},"additionalProperties":{"type":"object","properties":{"status":{"type":"string"}},"additionalProperties":{"type":"string"}}}}}}}},"503":{"description":"The Health Check is not successful","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","example":"error"},"info":{"type":"object","example":{"database":{"status":"up"}},"additionalProperties":{"type":"object","properties":{"status":{"type":"string"}},"additionalProperties":{"type":"string"}},"nullable":true},"error":{"type":"object","example":{"redis":{"status":"down","message":"Could not connect"}},"additionalProperties":{"type":"object","properties":{"status":{"type":"string"}},"additionalProperties":{"type":"string"}},"nullable":true},"details":{"type":"object","example":{"database":{"status":"up"},"redis":{"status":"down","message":"Could not connect"}},"additionalProperties":{"type":"object","properties":{"status":{"type":"string"}},"additionalProperties":{"type":"string"}}}}}}}}},"tags":["System"]}},"/dv/{configHash}":{"get":{"operationId":"DVController_getClusterDefinition","summary":"Retrieve a Distributed Validator Cluster proposal","description":"This endpoint allows a charon client or launchpad interface to retrieve the terms of a proposed DKG. Once all operators listed in the DKG have signed the terms of the cluster, this object will be ready for a cluster of operators to use as part of a DKG ceremony. If the objects in the `operators` array are not fully populated, these operators need to use the [PUT request](#tag/Distributed-Validators/operation/DVController_updateClusterDefinition) to upload their charon client\'s public key and a signature from their address to indicate their acceptance of the terms.","parameters":[{"name":"configHash","required":true,"in":"path","description":"The `config_hash` calculated for a cluster definition.","schema":{"type":"string"}}],"responses":{"200":{"description":"The cluster object","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GETClusterDefinitionResponse"}}}}},"tags":["Distributed Validators"]},"put":{"operationId":"DVController_updateClusterDefinition","summary":"Accept a proposed Distributed Validator Cluster","description":"This endpoint is used by the operators present in the `operators` array of a cluster definition. These operators must submit a public key (in ENR form) to serve as their identity during the DKG, along with EIP712 signatures indicating their acceptance of the terms of this DKG.","parameters":[{"name":"authorization","required":true,"in":"header","description":"EIP712 operator hash as bearer token","schema":{"type":"string"}},{"name":"configHash","required":true,"in":"path","description":"The `config_hash` calculated for a cluster definition.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OperatorDto"}}}},"responses":{"200":{"description":"The cluster object","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PUTClusterDefinitionResponse"}}}}},"tags":["Distributed Validators"],"security":[{"bearer":[]}]},"delete":{"operationId":"DVController_deleteClusterDefinition","summary":"Delete a Distributed Validator Cluster proposal","description":"This endpoint allows the caller to delete an unwanted DKG ceremony proposal.","parameters":[{"name":"configHash","required":true,"in":"path","description":"The `config_hash` calculated for a cluster definition.","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClusterDefinition"}}}}},"tags":["Distributed Validators"],"security":[{"bearer":[]}]}},"/dv":{"post":{"operationId":"DVController_postClusterDefinition","summary":"Propose a new Distributed Validator Cluster","description":"This endpoint allows the caller to propose a distributed key generation ceremony. The caller must specify the configuration of a Distributed Validator Cluster; such as the participating operators and the validator exit details. Operators invited to participate in this cluster must submit a public key (in [ENR](https://docs.obol.tech/docs/v0.12.0/int/faq/errors#enrs-keys) form) to serve as their node\'s identity, along with EIP712 signatures indicating their acceptance of the terms of this cluster.","parameters":[{"name":"authorization","required":true,"in":"header","description":"EIP712 cluster definition hash as bearer token","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClusterDefDto"}}}},"responses":{"201":{"description":"The cluster object","content":{"application/json":{"schema":{"$ref":"#/components/schemas/POSTClusterDefinitionResponse"}}}}},"tags":["Distributed Validators"],"security":[{"bearer":[]}]}}},"info":{"title":"Obol API","description":"## What is this API?\\n\\nThis API is for creating and managing [Distributed Validators](https://docs.obol.tech/docs/int/key-concepts#distributed-validator). This API works in tandem with Obol\'s [Distributed Validator Launchpad](https://goerli.launchpad.obol.tech), a dapp designed to allow people to authenticate their counterparties and agree to the terms of a Distributed Validator Cluster. This API will be made more easy for code-only interaction in the coming quarters with the release of the Obol-SDK. \\n\\nRead more about Obol and how to use the [launchpad](https://goerli.launchpad.obol.tech) on our [docs site](https://docs.obol.tech/).","version":"v1.2.0","contact":{"name":"Obol Labs","url":"https://obol.tech","email":"support@obol.tech"},"x-logo":{"url":"https://obol.tech/obolnetwork.png","backgroundColor":"#182d32","altText":"Obol Network Logo"}},"tags":[{"name":"Distributed Validators","description":"Configuration for distributed validator key generation ceremonies."},{"name":"System","description":"System related endpoints."}],"servers":[{"url":"https://api.obol.tech/","description":"Production environment"},{"url":"http://localhost:3000","description":"Local development server"},{"url":"https://localhost","description":"HTTPS Local development server"}],"components":{"securitySchemes":{"bearer":{"scheme":"bearer","bearerFormat":"JWT","type":"http"}},"schemas":{"CreatorDto":{"type":"object","properties":{"address":{"type":"string","example":"0x71cb05ee1b1f506ff321da3dac38f25c0c9ce6e1"},"config_signature":{"type":"string","example":"0x1199fc4440aa7929905ec171ed1dad82a9f6a89891193b2b4cf45937a8cf9ece4972e02bc7e23d8b8b2e550b6430693ac6bc8c82a0509f65d0abb34d7ae0a8a81c"}},"required":["address","config_signature"]},"OperatorDto":{"type":"object","properties":{"address":{"type":"string","example":"0x71cb05ee1b1f506ff321da3dac38f25c0c9ce6e1"},"enr":{"type":"string","example":"enr://5fb90badb37c5821b6d95526a41a9504680b4e7c8b763a1b1d49d4955c848621"},"fork_version":{"type":"string","example":"0x00001020"},"enr_signature":{"type":"string","example":"0x1199fc4440aa7929905ec171ed1dad82a9f6a89891193b2b4cf45937a8cf9ece4972e02bc7e23d8b8b2e550b6430693ac6bc8c82a0509f65d0abb34d7ae0a8a81c"},"config_signature":{"type":"string","example":"0x1199fc4440aa7929905ec171ed1dad82a9f6a89891193b2b4cf45937a8cf9ece4972e02bc7e23d8b8b2e550b6430693ac6bc8c82a0509f65d0abb34d7ae0a8a81c"}},"required":["address","enr","fork_version","enr_signature","config_signature"]},"GETClusterDefinitionResponse":{"type":"object","properties":{"name":{"type":"string","example":"My Obol Cluster"},"uuid":{"type":"string","example":"0194FDC2-FA2F-FCC0-41D3-FF12045B73C8"},"creator":{"$ref":"#/components/schemas/CreatorDto"},"version":{"type":"string","example":"v1.2.0"},"num_validators":{"type":"number","example":5},"threshold":{"type":"number","example":3},"fee_recipient_address":{"type":"string","example":"0x71cb05ee1b1f506ff321da3dac38f25c0c9ce6e1"},"withdrawal_address":{"type":"string","example":"0x71cb05ee1b1f506ff321da3dac38f25c0c9ce6e1"},"dkg_algorithm":{"type":"string","example":"default"},"fork_version":{"type":"string","example":"0x00001020"},"config_hash":{"type":"string","example":"0x3940294920aaabbbccccddddeeeffff33224"},"timestamp":{"type":"string","example":"2022-07-19T18:19:58+02:00"},"operators":{"type":"array","items":{"$ref":"#/components/schemas/OperatorDto"}}},"required":["name","uuid","creator","version","num_validators","threshold","fee_recipient_address","withdrawal_address","dkg_algorithm","fork_version","config_hash","timestamp","operators"]},"ClusterDefOperator":{"type":"object","properties":{"address":{"type":"string","example":"0x71cb05ee1b1f506ff321da3dac38f25c0c9ce6e1"}},"required":["address"]},"ClusterDefCreator":{"type":"object","properties":{"address":{"type":"string","example":"0x71cb05ee1b1f506ff321da3dac38f25c0c9ce6e1"}},"required":["address"]},"ClusterDefDto":{"type":"object","properties":{"name":{"type":"string","example":"My Obol Cluster"},"operators":{"type":"array","items":{"$ref":"#/components/schemas/ClusterDefOperator"}},"creator":{"$ref":"#/components/schemas/ClusterDefCreator"},"uuid":{"type":"string","example":"0194FDC2-FA2F-FCC0-41D3-FF12045B73C8"},"version":{"type":"string","example":"v1.2.0"},"num_validators":{"type":"number","minimum":1,"example":5},"threshold":{"type":"number","minimum":1,"example":3},"fee_recipient_address":{"type":"string","example":"0x71cb05ee1b1f506ff321da3dac38f25c0c9ce6e1"},"withdrawal_address":{"type":"string","example":"0x71cb05ee1b1f506ff321da3dac38f25c0c9ce6e1"},"dkg_algorithm":{"type":"string","example":"default"},"fork_version":{"type":"string","example":"0x00001020"},"timestamp":{"type":"string","example":"2022-07-19T18:19:58+02:00"},"config_hash":{"type":"string","example":"0x29b0223beea5f4f74391f445d15afd4294040374f6924b98cbf8713f8d962d7c"}},"required":["name","operators","creator","uuid","version","num_validators","threshold","fee_recipient_address","withdrawal_address","dkg_algorithm","fork_version","timestamp","config_hash"]},"POSTClusterDefinitionResponse":{"type":"object","properties":{"name":{"type":"string","example":"My Obol Cluster"},"uuid":{"type":"string","example":"0194FDC2-FA2F-FCC0-41D3-FF12045B73C8"},"creator":{"$ref":"#/components/schemas/CreatorDto"},"version":{"type":"string","example":"v1.2.0"},"num_validators":{"type":"number","example":5},"threshold":{"type":"number","example":3},"fee_recipient_address":{"type":"string","example":"0x71cb05ee1b1f506ff321da3dac38f25c0c9ce6e1"},"withdrawal_address":{"type":"string","example":"0x71cb05ee1b1f506ff321da3dac38f25c0c9ce6e1"},"dkg_algorithm":{"type":"string","example":"default"},"fork_version":{"type":"string","example":"0x00001020"},"config_hash":{"type":"string","example":"0x3940294920aaabbbccccddddeeeffff33224"},"timestamp":{"type":"string","example":"2022-07-19T18:19:58+02:00"},"operators":{"type":"array","items":{"$ref":"#/components/schemas/ClusterDefOperator"}}},"required":["name","uuid","creator","version","num_validators","threshold","fee_recipient_address","withdrawal_address","dkg_algorithm","fork_version","config_hash","timestamp","operators"]},"PUTClusterDefinitionResponse":{"type":"object","properties":{"name":{"type":"string","example":"My Obol Cluster"},"uuid":{"type":"string","example":"0194FDC2-FA2F-FCC0-41D3-FF12045B73C8"},"creator":{"$ref":"#/components/schemas/CreatorDto"},"version":{"type":"string","example":"v1.2.0"},"num_validators":{"type":"number","example":5},"threshold":{"type":"number","example":3},"fee_recipient_address":{"type":"string","example":"0x71cb05ee1b1f506ff321da3dac38f25c0c9ce6e1"},"withdrawal_address":{"type":"string","example":"0x71cb05ee1b1f506ff321da3dac38f25c0c9ce6e1"},"dkg_algorithm":{"type":"string","example":"default"},"fork_version":{"type":"string","example":"0x00001020"},"config_hash":{"type":"string","example":"0x3940294920aaabbbccccddddeeeffff33224"},"timestamp":{"type":"string","example":"2022-07-19T18:19:58+02:00"},"operators":{"type":"array","items":{"$ref":"#/components/schemas/OperatorDto"}}},"required":["name","uuid","creator","version","num_validators","threshold","fee_recipient_address","withdrawal_address","dkg_algorithm","fork_version","config_hash","timestamp","operators"]},"ClusterDefinition":{"type":"object","properties":{}}}}}}},"docusaurus-theme-redoc":{"theme-redoc":{"lightTheme":{"typography":{"fontFamily":"var(--ifm-font-family-base)","fontSize":"var(--ifm-font-size-base)","lineHeight":"var(--ifm-line-height-base)","fontWeightLight":"var(--ifm-font-weight-light)","fontWeightRegular":"var(--ifm-font-weight-base)","fontWeightBold":"var(--ifm-font-weight-bold)","headings":{"fontFamily":"var(--ifm-heading-font-family)","fontWeight":"var(--ifm-heading-font-weight)","lineHeight":"var(--ifm-heading-line-height)"},"code":{"fontFamily":"var(--ifm-font-family-monospace)","lineHeight":"var(--ifm-pre-line-height)"}},"sidebar":{"width":"300px","backgroundColor":"#ffffff"},"rightPanel":{"backgroundColor":"#243D42"},"colors":{"primary":{"main":"#25c2a0"},"http":{"get":"#16968e","put":"#9167e4","post":"#b6ea5c","delete":"#dd603c"}},"theme":{"prism":{"additionalLanguages":["scala"]}}},"darkTheme":{"typography":{"fontFamily":"var(--ifm-font-family-base)","fontSize":"var(--ifm-font-size-base)","lineHeight":"var(--ifm-line-height-base)","fontWeightLight":"var(--ifm-font-weight-light)","fontWeightRegular":"var(--ifm-font-weight-base)","fontWeightBold":"var(--ifm-font-weight-bold)","headings":{"fontFamily":"var(--ifm-heading-font-family)","fontWeight":"var(--ifm-heading-font-weight)","lineHeight":"var(--ifm-heading-line-height)"},"code":{"fontFamily":"var(--ifm-font-family-monospace)","lineHeight":"var(--ifm-pre-line-height)"}},"sidebar":{"width":"300px","backgroundColor":"rgb(24, 25, 26)","textColor":"#f5f6f7","arrow":{"color":"#f5f6f7"}},"colors":{"text":{"primary":"#f5f6f7","secondary":"rgba(255, 255, 255, 1)"},"gray":{"50":"#FAFAFA","100":"#F5F5F5"},"border":{"dark":"#ffffff","light":"rgba(0,0,0, 0.1)"},"primary":{"main":"#25c2a0"},"http":{"get":"#16968e","put":"#9167e4","post":"#b6ea5c","delete":"#dd603c"}},"schema":{"nestedBackground":"rgb(24, 25, 26)","typeNameColor":"rgba(255, 255, 255, 1)","typeTitleColor":"rgba(255, 255, 255, 1)"},"theme":{"prism":{"additionalLanguages":["scala"]}},"rightPanel":{"backgroundColor":"#243D42"}},"options":{"scrollYOffset":"nav.navbar","expandSingleSchemaField":true,"menuToggle":true,"suppressWarnings":true}}},"docusaurus-plugin-content-docs":{"default":{"path":"/docs","versions":[{"name":"current","label":"Next","isLast":false,"path":"/docs/next","mainDocId":"intro","docs":[{"id":"cg/bug-report","path":"/docs/next/cg/bug-report","sidebar":"tutorialSidebar"},{"id":"cg/docs","path":"/docs/next/cg/docs","sidebar":"tutorialSidebar"},{"id":"cg/feedback","path":"/docs/next/cg/feedback","sidebar":"tutorialSidebar"},{"id":"charon/charon-cli-reference","path":"/docs/next/charon/charon-cli-reference","sidebar":"tutorialSidebar"},{"id":"charon/cluster-configuration","path":"/docs/next/charon/cluster-configuration","sidebar":"tutorialSidebar"},{"id":"charon/dkg","path":"/docs/next/charon/dkg","sidebar":"tutorialSidebar"},{"id":"charon/intro","path":"/docs/next/charon/intro","sidebar":"tutorialSidebar"},{"id":"charon/networking","path":"/docs/next/charon/networking","sidebar":"tutorialSidebar"},{"id":"dvl/intro","path":"/docs/next/dvl/intro","sidebar":"tutorialSidebar"},{"id":"fr/eth","path":"/docs/next/fr/eth","sidebar":"tutorialSidebar"},{"id":"fr/golang","path":"/docs/next/fr/golang","sidebar":"tutorialSidebar"},{"id":"int/faq/errors","path":"/docs/next/int/faq/errors","sidebar":"tutorialSidebar"},{"id":"int/faq/general","path":"/docs/next/int/faq/general","sidebar":"tutorialSidebar"},{"id":"int/faq/risks","path":"/docs/next/int/faq/risks","sidebar":"tutorialSidebar"},{"id":"int/faq/threat_model","path":"/docs/next/int/faq/threat_model","sidebar":"tutorialSidebar"},{"id":"int/key-concepts","path":"/docs/next/int/key-concepts","sidebar":"tutorialSidebar"},{"id":"int/Overview","path":"/docs/next/int/Overview","sidebar":"tutorialSidebar"},{"id":"int/quickstart/activate-dv","path":"/docs/next/int/quickstart/activate-dv","sidebar":"tutorialSidebar"},{"id":"int/quickstart/advanced/adv-docker-configs","path":"/docs/next/int/quickstart/advanced/adv-docker-configs","sidebar":"tutorialSidebar"},{"id":"int/quickstart/advanced/monitoring-credentials","path":"/docs/next/int/quickstart/advanced/monitoring-credentials","sidebar":"tutorialSidebar"},{"id":"int/quickstart/advanced/prysm-vc","path":"/docs/next/int/quickstart/advanced/prysm-vc","sidebar":"tutorialSidebar"},{"id":"int/quickstart/advanced/push-metrics","path":"/docs/next/int/quickstart/advanced/push-metrics","sidebar":"tutorialSidebar"},{"id":"int/quickstart/advanced/quickstart-builder-api","path":"/docs/next/int/quickstart/advanced/quickstart-builder-api","sidebar":"tutorialSidebar"},{"id":"int/quickstart/advanced/quickstart-combine","path":"/docs/next/int/quickstart/advanced/quickstart-combine","sidebar":"tutorialSidebar"},{"id":"int/quickstart/advanced/quickstart-sdk","path":"/docs/next/int/quickstart/advanced/quickstart-sdk","sidebar":"tutorialSidebar"},{"id":"int/quickstart/advanced/quickstart-split","path":"/docs/next/int/quickstart/advanced/quickstart-split","sidebar":"tutorialSidebar"},{"id":"int/quickstart/advanced/self-relay","path":"/docs/next/int/quickstart/advanced/self-relay","sidebar":"tutorialSidebar"},{"id":"int/quickstart/alone/create-keys","path":"/docs/next/int/quickstart/alone/create-keys","sidebar":"tutorialSidebar"},{"id":"int/quickstart/alone/deploy","path":"/docs/next/int/quickstart/alone/deploy","sidebar":"tutorialSidebar"},{"id":"int/quickstart/alone/test-locally","path":"/docs/next/int/quickstart/alone/test-locally","sidebar":"tutorialSidebar"},{"id":"int/quickstart/group/index","path":"/docs/next/int/quickstart/group/","sidebar":"tutorialSidebar"},{"id":"int/quickstart/group/quickstart-cli","path":"/docs/next/int/quickstart/group/quickstart-cli","sidebar":"tutorialSidebar"},{"id":"int/quickstart/group/quickstart-group-leader-creator","path":"/docs/next/int/quickstart/group/quickstart-group-leader-creator","sidebar":"tutorialSidebar"},{"id":"int/quickstart/group/quickstart-group-operator","path":"/docs/next/int/quickstart/group/quickstart-group-operator","sidebar":"tutorialSidebar"},{"id":"int/quickstart/index","path":"/docs/next/int/quickstart/","sidebar":"tutorialSidebar"},{"id":"int/quickstart/quickstart-exit","path":"/docs/next/int/quickstart/quickstart-exit","sidebar":"tutorialSidebar"},{"id":"int/quickstart/quickstart-mainnet","path":"/docs/next/int/quickstart/quickstart-mainnet","sidebar":"tutorialSidebar"},{"id":"int/quickstart/update","path":"/docs/next/int/quickstart/update","sidebar":"tutorialSidebar"},{"id":"intro","path":"/docs/next/intro","sidebar":"tutorialSidebar"},{"id":"sc/introducing-obol-managers","path":"/docs/next/sc/introducing-obol-managers","sidebar":"tutorialSidebar"},{"id":"sec/bug-bounty","path":"/docs/next/sec/bug-bounty","sidebar":"tutorialSidebar"},{"id":"sec/contact","path":"/docs/next/sec/contact","sidebar":"tutorialSidebar"},{"id":"sec/overview","path":"/docs/next/sec/overview","sidebar":"tutorialSidebar"},{"id":"sec/roadmap","path":"/docs/next/sec/roadmap","sidebar":"tutorialSidebar"},{"id":"testnet","path":"/docs/next/testnet","sidebar":"tutorialSidebar"}],"draftIds":[],"sidebars":{"tutorialSidebar":{"link":{"path":"/docs/next/intro","label":"intro"}}}},{"name":"v0.17.0","label":"v0.17.0","isLast":true,"path":"/docs","mainDocId":"intro","docs":[{"id":"cg/bug-report","path":"/docs/cg/bug-report","sidebar":"tutorialSidebar"},{"id":"cg/docs","path":"/docs/cg/docs","sidebar":"tutorialSidebar"},{"id":"cg/feedback","path":"/docs/cg/feedback","sidebar":"tutorialSidebar"},{"id":"charon/charon-cli-reference","path":"/docs/charon/charon-cli-reference","sidebar":"tutorialSidebar"},{"id":"charon/cluster-configuration","path":"/docs/charon/cluster-configuration","sidebar":"tutorialSidebar"},{"id":"charon/dkg","path":"/docs/charon/dkg","sidebar":"tutorialSidebar"},{"id":"charon/intro","path":"/docs/charon/intro","sidebar":"tutorialSidebar"},{"id":"charon/networking","path":"/docs/charon/networking","sidebar":"tutorialSidebar"},{"id":"dvl/intro","path":"/docs/dvl/intro","sidebar":"tutorialSidebar"},{"id":"fr/eth","path":"/docs/fr/eth","sidebar":"tutorialSidebar"},{"id":"fr/golang","path":"/docs/fr/golang","sidebar":"tutorialSidebar"},{"id":"int/faq/errors","path":"/docs/int/faq/errors","sidebar":"tutorialSidebar"},{"id":"int/faq/general","path":"/docs/int/faq/general","sidebar":"tutorialSidebar"},{"id":"int/faq/risks","path":"/docs/int/faq/risks","sidebar":"tutorialSidebar"},{"id":"int/faq/threat_model","path":"/docs/int/faq/threat_model","sidebar":"tutorialSidebar"},{"id":"int/key-concepts","path":"/docs/int/key-concepts","sidebar":"tutorialSidebar"},{"id":"int/Overview","path":"/docs/int/Overview","sidebar":"tutorialSidebar"},{"id":"int/quickstart/activate-dv","path":"/docs/int/quickstart/activate-dv","sidebar":"tutorialSidebar"},{"id":"int/quickstart/advanced/adv-docker-configs","path":"/docs/int/quickstart/advanced/adv-docker-configs","sidebar":"tutorialSidebar"},{"id":"int/quickstart/advanced/monitoring-credentials","path":"/docs/int/quickstart/advanced/monitoring-credentials","sidebar":"tutorialSidebar"},{"id":"int/quickstart/advanced/prysm-vc","path":"/docs/int/quickstart/advanced/prysm-vc","sidebar":"tutorialSidebar"},{"id":"int/quickstart/advanced/push-metrics","path":"/docs/int/quickstart/advanced/push-metrics","sidebar":"tutorialSidebar"},{"id":"int/quickstart/advanced/quickstart-builder-api","path":"/docs/int/quickstart/advanced/quickstart-builder-api","sidebar":"tutorialSidebar"},{"id":"int/quickstart/advanced/quickstart-combine","path":"/docs/int/quickstart/advanced/quickstart-combine","sidebar":"tutorialSidebar"},{"id":"int/quickstart/advanced/quickstart-sdk","path":"/docs/int/quickstart/advanced/quickstart-sdk","sidebar":"tutorialSidebar"},{"id":"int/quickstart/advanced/quickstart-split","path":"/docs/int/quickstart/advanced/quickstart-split","sidebar":"tutorialSidebar"},{"id":"int/quickstart/advanced/self-relay","path":"/docs/int/quickstart/advanced/self-relay","sidebar":"tutorialSidebar"},{"id":"int/quickstart/alone/create-keys","path":"/docs/int/quickstart/alone/create-keys","sidebar":"tutorialSidebar"},{"id":"int/quickstart/alone/deploy","path":"/docs/int/quickstart/alone/deploy","sidebar":"tutorialSidebar"},{"id":"int/quickstart/alone/test-locally","path":"/docs/int/quickstart/alone/test-locally","sidebar":"tutorialSidebar"},{"id":"int/quickstart/group/index","path":"/docs/int/quickstart/group/","sidebar":"tutorialSidebar"},{"id":"int/quickstart/group/quickstart-cli","path":"/docs/int/quickstart/group/quickstart-cli","sidebar":"tutorialSidebar"},{"id":"int/quickstart/group/quickstart-group-leader-creator","path":"/docs/int/quickstart/group/quickstart-group-leader-creator","sidebar":"tutorialSidebar"},{"id":"int/quickstart/group/quickstart-group-operator","path":"/docs/int/quickstart/group/quickstart-group-operator","sidebar":"tutorialSidebar"},{"id":"int/quickstart/index","path":"/docs/int/quickstart/","sidebar":"tutorialSidebar"},{"id":"int/quickstart/quickstart-exit","path":"/docs/int/quickstart/quickstart-exit","sidebar":"tutorialSidebar"},{"id":"int/quickstart/quickstart-mainnet","path":"/docs/int/quickstart/quickstart-mainnet","sidebar":"tutorialSidebar"},{"id":"int/quickstart/update","path":"/docs/int/quickstart/update","sidebar":"tutorialSidebar"},{"id":"intro","path":"/docs/intro","sidebar":"tutorialSidebar"},{"id":"sc/introducing-obol-managers","path":"/docs/sc/introducing-obol-managers","sidebar":"tutorialSidebar"},{"id":"sec/bug-bounty","path":"/docs/sec/bug-bounty","sidebar":"tutorialSidebar"},{"id":"sec/contact","path":"/docs/sec/contact","sidebar":"tutorialSidebar"},{"id":"sec/overview","path":"/docs/sec/overview","sidebar":"tutorialSidebar"},{"id":"sec/roadmap","path":"/docs/sec/roadmap","sidebar":"tutorialSidebar"},{"id":"testnet","path":"/docs/testnet","sidebar":"tutorialSidebar"}],"draftIds":[],"sidebars":{"tutorialSidebar":{"link":{"path":"/docs/intro","label":"version-v0.17.0/intro"}}}},{"name":"v0.16.0","label":"v0.16.0","isLast":false,"path":"/docs/v0.16.0","mainDocId":"intro","docs":[{"id":"cg/bug-report","path":"/docs/v0.16.0/cg/bug-report","sidebar":"tutorialSidebar"},{"id":"cg/docs","path":"/docs/v0.16.0/cg/docs","sidebar":"tutorialSidebar"},{"id":"cg/feedback","path":"/docs/v0.16.0/cg/feedback","sidebar":"tutorialSidebar"},{"id":"charon/charon-cli-reference","path":"/docs/v0.16.0/charon/charon-cli-reference","sidebar":"tutorialSidebar"},{"id":"charon/cluster-configuration","path":"/docs/v0.16.0/charon/cluster-configuration","sidebar":"tutorialSidebar"},{"id":"charon/dkg","path":"/docs/v0.16.0/charon/dkg","sidebar":"tutorialSidebar"},{"id":"charon/intro","path":"/docs/v0.16.0/charon/intro","sidebar":"tutorialSidebar"},{"id":"charon/networking","path":"/docs/v0.16.0/charon/networking","sidebar":"tutorialSidebar"},{"id":"dvl/intro","path":"/docs/v0.16.0/dvl/intro","sidebar":"tutorialSidebar"},{"id":"fr/eth","path":"/docs/v0.16.0/fr/eth","sidebar":"tutorialSidebar"},{"id":"fr/golang","path":"/docs/v0.16.0/fr/golang","sidebar":"tutorialSidebar"},{"id":"int/faq/errors","path":"/docs/v0.16.0/int/faq/errors","sidebar":"tutorialSidebar"},{"id":"int/faq/general","path":"/docs/v0.16.0/int/faq/general","sidebar":"tutorialSidebar"},{"id":"int/faq/risks","path":"/docs/v0.16.0/int/faq/risks","sidebar":"tutorialSidebar"},{"id":"int/key-concepts","path":"/docs/v0.16.0/int/key-concepts","sidebar":"tutorialSidebar"},{"id":"int/Overview","path":"/docs/v0.16.0/int/Overview","sidebar":"tutorialSidebar"},{"id":"int/quickstart/activate-dv","path":"/docs/v0.16.0/int/quickstart/activate-dv","sidebar":"tutorialSidebar"},{"id":"int/quickstart/advanced/adv-docker-configs","path":"/docs/v0.16.0/int/quickstart/advanced/adv-docker-configs","sidebar":"tutorialSidebar"},{"id":"int/quickstart/advanced/monitoring-credentials","path":"/docs/v0.16.0/int/quickstart/advanced/monitoring-credentials","sidebar":"tutorialSidebar"},{"id":"int/quickstart/advanced/prysm-vc","path":"/docs/v0.16.0/int/quickstart/advanced/prysm-vc","sidebar":"tutorialSidebar"},{"id":"int/quickstart/advanced/quickstart-builder-api","path":"/docs/v0.16.0/int/quickstart/advanced/quickstart-builder-api","sidebar":"tutorialSidebar"},{"id":"int/quickstart/advanced/quickstart-combine","path":"/docs/v0.16.0/int/quickstart/advanced/quickstart-combine","sidebar":"tutorialSidebar"},{"id":"int/quickstart/advanced/quickstart-split","path":"/docs/v0.16.0/int/quickstart/advanced/quickstart-split","sidebar":"tutorialSidebar"},{"id":"int/quickstart/advanced/self-relay","path":"/docs/v0.16.0/int/quickstart/advanced/self-relay","sidebar":"tutorialSidebar"},{"id":"int/quickstart/alone/create-keys","path":"/docs/v0.16.0/int/quickstart/alone/create-keys","sidebar":"tutorialSidebar"},{"id":"int/quickstart/alone/deploy","path":"/docs/v0.16.0/int/quickstart/alone/deploy","sidebar":"tutorialSidebar"},{"id":"int/quickstart/alone/test-locally","path":"/docs/v0.16.0/int/quickstart/alone/test-locally","sidebar":"tutorialSidebar"},{"id":"int/quickstart/group/index","path":"/docs/v0.16.0/int/quickstart/group/","sidebar":"tutorialSidebar"},{"id":"int/quickstart/group/quickstart-cli","path":"/docs/v0.16.0/int/quickstart/group/quickstart-cli","sidebar":"tutorialSidebar"},{"id":"int/quickstart/group/quickstart-group-leader-creator","path":"/docs/v0.16.0/int/quickstart/group/quickstart-group-leader-creator","sidebar":"tutorialSidebar"},{"id":"int/quickstart/group/quickstart-group-operator","path":"/docs/v0.16.0/int/quickstart/group/quickstart-group-operator","sidebar":"tutorialSidebar"},{"id":"int/quickstart/index","path":"/docs/v0.16.0/int/quickstart/","sidebar":"tutorialSidebar"},{"id":"int/quickstart/quickstart-exit","path":"/docs/v0.16.0/int/quickstart/quickstart-exit","sidebar":"tutorialSidebar"},{"id":"int/quickstart/quickstart-mainnet","path":"/docs/v0.16.0/int/quickstart/quickstart-mainnet","sidebar":"tutorialSidebar"},{"id":"int/quickstart/update","path":"/docs/v0.16.0/int/quickstart/update","sidebar":"tutorialSidebar"},{"id":"intro","path":"/docs/v0.16.0/intro","sidebar":"tutorialSidebar"},{"id":"sc/introducing-obol-managers","path":"/docs/v0.16.0/sc/introducing-obol-managers","sidebar":"tutorialSidebar"},{"id":"sec/bug-bounty","path":"/docs/v0.16.0/sec/bug-bounty","sidebar":"tutorialSidebar"},{"id":"sec/contact","path":"/docs/v0.16.0/sec/contact","sidebar":"tutorialSidebar"},{"id":"sec/overview","path":"/docs/v0.16.0/sec/overview","sidebar":"tutorialSidebar"},{"id":"sec/roadmap","path":"/docs/v0.16.0/sec/roadmap","sidebar":"tutorialSidebar"},{"id":"testnet","path":"/docs/v0.16.0/testnet","sidebar":"tutorialSidebar"}],"draftIds":[],"sidebars":{"tutorialSidebar":{"link":{"path":"/docs/v0.16.0/intro","label":"version-v0.16.0/intro"}}}},{"name":"v0.15.0","label":"v0.15.0","isLast":false,"path":"/docs/v0.15.0","mainDocId":"intro","docs":[{"id":"cg/bug-report","path":"/docs/v0.15.0/cg/bug-report","sidebar":"tutorialSidebar"},{"id":"cg/docs","path":"/docs/v0.15.0/cg/docs","sidebar":"tutorialSidebar"},{"id":"charon/charon-cli-reference","path":"/docs/v0.15.0/charon/charon-cli-reference","sidebar":"tutorialSidebar"},{"id":"charon/cluster-configuration","path":"/docs/v0.15.0/charon/cluster-configuration","sidebar":"tutorialSidebar"},{"id":"charon/dkg","path":"/docs/v0.15.0/charon/dkg","sidebar":"tutorialSidebar"},{"id":"charon/intro","path":"/docs/v0.15.0/charon/intro","sidebar":"tutorialSidebar"},{"id":"charon/networking","path":"/docs/v0.15.0/charon/networking","sidebar":"tutorialSidebar"},{"id":"dvl/intro","path":"/docs/v0.15.0/dvl/intro","sidebar":"tutorialSidebar"},{"id":"fr/eth","path":"/docs/v0.15.0/fr/eth","sidebar":"tutorialSidebar"},{"id":"fr/golang","path":"/docs/v0.15.0/fr/golang","sidebar":"tutorialSidebar"},{"id":"int/faq/errors","path":"/docs/v0.15.0/int/faq/errors","sidebar":"tutorialSidebar"},{"id":"int/faq/general","path":"/docs/v0.15.0/int/faq/general","sidebar":"tutorialSidebar"},{"id":"int/key-concepts","path":"/docs/v0.15.0/int/key-concepts","sidebar":"tutorialSidebar"},{"id":"int/Overview","path":"/docs/v0.15.0/int/Overview","sidebar":"tutorialSidebar"},{"id":"int/quickstart/group/index","path":"/docs/v0.15.0/int/quickstart/group/","sidebar":"tutorialSidebar"},{"id":"int/quickstart/group/quickstart-group-leader-creator","path":"/docs/v0.15.0/int/quickstart/group/quickstart-group-leader-creator","sidebar":"tutorialSidebar"},{"id":"int/quickstart/group/quickstart-group-operator","path":"/docs/v0.15.0/int/quickstart/group/quickstart-group-operator","sidebar":"tutorialSidebar"},{"id":"int/quickstart/index","path":"/docs/v0.15.0/int/quickstart/","sidebar":"tutorialSidebar"},{"id":"int/quickstart/quickstart-alone","path":"/docs/v0.15.0/int/quickstart/quickstart-alone","sidebar":"tutorialSidebar"},{"id":"int/quickstart/quickstart-builder-api","path":"/docs/v0.15.0/int/quickstart/quickstart-builder-api","sidebar":"tutorialSidebar"},{"id":"int/quickstart/quickstart-cli","path":"/docs/v0.15.0/int/quickstart/quickstart-cli","sidebar":"tutorialSidebar"},{"id":"int/quickstart/quickstart-combine","path":"/docs/v0.15.0/int/quickstart/quickstart-combine","sidebar":"tutorialSidebar"},{"id":"int/quickstart/quickstart-exit","path":"/docs/v0.15.0/int/quickstart/quickstart-exit","sidebar":"tutorialSidebar"},{"id":"int/quickstart/quickstart-mainnet","path":"/docs/v0.15.0/int/quickstart/quickstart-mainnet","sidebar":"tutorialSidebar"},{"id":"int/quickstart/quickstart-split","path":"/docs/v0.15.0/int/quickstart/quickstart-split","sidebar":"tutorialSidebar"},{"id":"intro","path":"/docs/v0.15.0/intro","sidebar":"tutorialSidebar"},{"id":"sc/introducing-obol-managers","path":"/docs/v0.15.0/sc/introducing-obol-managers","sidebar":"tutorialSidebar"},{"id":"sec/bug-bounty","path":"/docs/v0.15.0/sec/bug-bounty","sidebar":"tutorialSidebar"},{"id":"sec/contact","path":"/docs/v0.15.0/sec/contact","sidebar":"tutorialSidebar"},{"id":"sec/overview","path":"/docs/v0.15.0/sec/overview","sidebar":"tutorialSidebar"},{"id":"sec/roadmap","path":"/docs/v0.15.0/sec/roadmap","sidebar":"tutorialSidebar"},{"id":"testnet","path":"/docs/v0.15.0/testnet","sidebar":"tutorialSidebar"}],"draftIds":[],"sidebars":{"tutorialSidebar":{"link":{"path":"/docs/v0.15.0/intro","label":"version-v0.15.0/intro"}}}},{"name":"v0.14.4","label":"v0.14.4","isLast":false,"path":"/docs/v0.14.4","mainDocId":"intro","docs":[{"id":"cg/bug-report","path":"/docs/v0.14.4/cg/bug-report","sidebar":"tutorialSidebar"},{"id":"cg/docs","path":"/docs/v0.14.4/cg/docs","sidebar":"tutorialSidebar"},{"id":"charon/charon-cli-reference","path":"/docs/v0.14.4/charon/charon-cli-reference","sidebar":"tutorialSidebar"},{"id":"charon/cluster-configuration","path":"/docs/v0.14.4/charon/cluster-configuration","sidebar":"tutorialSidebar"},{"id":"charon/dkg","path":"/docs/v0.14.4/charon/dkg","sidebar":"tutorialSidebar"},{"id":"charon/intro","path":"/docs/v0.14.4/charon/intro","sidebar":"tutorialSidebar"},{"id":"charon/networking","path":"/docs/v0.14.4/charon/networking","sidebar":"tutorialSidebar"},{"id":"dvl/intro","path":"/docs/v0.14.4/dvl/intro","sidebar":"tutorialSidebar"},{"id":"fr/eth","path":"/docs/v0.14.4/fr/eth","sidebar":"tutorialSidebar"},{"id":"fr/golang","path":"/docs/v0.14.4/fr/golang","sidebar":"tutorialSidebar"},{"id":"int/faq/errors","path":"/docs/v0.14.4/int/faq/errors","sidebar":"tutorialSidebar"},{"id":"int/faq/general","path":"/docs/v0.14.4/int/faq/general","sidebar":"tutorialSidebar"},{"id":"int/key-concepts","path":"/docs/v0.14.4/int/key-concepts","sidebar":"tutorialSidebar"},{"id":"int/Overview","path":"/docs/v0.14.4/int/Overview","sidebar":"tutorialSidebar"},{"id":"int/quickstart/group/index","path":"/docs/v0.14.4/int/quickstart/group/","sidebar":"tutorialSidebar"},{"id":"int/quickstart/group/quickstart-group-leader-creator","path":"/docs/v0.14.4/int/quickstart/group/quickstart-group-leader-creator","sidebar":"tutorialSidebar"},{"id":"int/quickstart/group/quickstart-group-operator","path":"/docs/v0.14.4/int/quickstart/group/quickstart-group-operator","sidebar":"tutorialSidebar"},{"id":"int/quickstart/index","path":"/docs/v0.14.4/int/quickstart/","sidebar":"tutorialSidebar"},{"id":"int/quickstart/quickstart-alone","path":"/docs/v0.14.4/int/quickstart/quickstart-alone","sidebar":"tutorialSidebar"},{"id":"int/quickstart/quickstart-builder-api","path":"/docs/v0.14.4/int/quickstart/quickstart-builder-api","sidebar":"tutorialSidebar"},{"id":"int/quickstart/quickstart-cli","path":"/docs/v0.14.4/int/quickstart/quickstart-cli","sidebar":"tutorialSidebar"},{"id":"int/quickstart/quickstart-combine","path":"/docs/v0.14.4/int/quickstart/quickstart-combine","sidebar":"tutorialSidebar"},{"id":"int/quickstart/quickstart-exit","path":"/docs/v0.14.4/int/quickstart/quickstart-exit","sidebar":"tutorialSidebar"},{"id":"int/quickstart/quickstart-split","path":"/docs/v0.14.4/int/quickstart/quickstart-split","sidebar":"tutorialSidebar"},{"id":"intro","path":"/docs/v0.14.4/intro","sidebar":"tutorialSidebar"},{"id":"sc/introducing-obol-managers","path":"/docs/v0.14.4/sc/introducing-obol-managers","sidebar":"tutorialSidebar"},{"id":"sec/bug-bounty","path":"/docs/v0.14.4/sec/bug-bounty","sidebar":"tutorialSidebar"},{"id":"sec/contact","path":"/docs/v0.14.4/sec/contact","sidebar":"tutorialSidebar"},{"id":"sec/overview","path":"/docs/v0.14.4/sec/overview","sidebar":"tutorialSidebar"},{"id":"sec/roadmap","path":"/docs/v0.14.4/sec/roadmap","sidebar":"tutorialSidebar"},{"id":"testnet","path":"/docs/v0.14.4/testnet","sidebar":"tutorialSidebar"}],"draftIds":[],"sidebars":{"tutorialSidebar":{"link":{"path":"/docs/v0.14.4/intro","label":"version-v0.14.4/intro"}}}},{"name":"v0.14.0","label":"v0.14.0","isLast":false,"path":"/docs/v0.14.0","mainDocId":"intro","docs":[{"id":"cg/bug-report","path":"/docs/v0.14.0/cg/bug-report","sidebar":"tutorialSidebar"},{"id":"cg/docs","path":"/docs/v0.14.0/cg/docs","sidebar":"tutorialSidebar"},{"id":"charon/charon-cli-reference","path":"/docs/v0.14.0/charon/charon-cli-reference","sidebar":"tutorialSidebar"},{"id":"charon/cluster-configuration","path":"/docs/v0.14.0/charon/cluster-configuration","sidebar":"tutorialSidebar"},{"id":"charon/dkg","path":"/docs/v0.14.0/charon/dkg","sidebar":"tutorialSidebar"},{"id":"charon/intro","path":"/docs/v0.14.0/charon/intro","sidebar":"tutorialSidebar"},{"id":"charon/networking","path":"/docs/v0.14.0/charon/networking","sidebar":"tutorialSidebar"},{"id":"dvl/intro","path":"/docs/v0.14.0/dvl/intro","sidebar":"tutorialSidebar"},{"id":"fr/eth","path":"/docs/v0.14.0/fr/eth","sidebar":"tutorialSidebar"},{"id":"fr/golang","path":"/docs/v0.14.0/fr/golang","sidebar":"tutorialSidebar"},{"id":"int/faq/errors","path":"/docs/v0.14.0/int/faq/errors","sidebar":"tutorialSidebar"},{"id":"int/faq/general","path":"/docs/v0.14.0/int/faq/general","sidebar":"tutorialSidebar"},{"id":"int/key-concepts","path":"/docs/v0.14.0/int/key-concepts","sidebar":"tutorialSidebar"},{"id":"int/Overview","path":"/docs/v0.14.0/int/Overview","sidebar":"tutorialSidebar"},{"id":"int/quickstart/group/index","path":"/docs/v0.14.0/int/quickstart/group/","sidebar":"tutorialSidebar"},{"id":"int/quickstart/group/quickstart-group-leader-creator","path":"/docs/v0.14.0/int/quickstart/group/quickstart-group-leader-creator","sidebar":"tutorialSidebar"},{"id":"int/quickstart/group/quickstart-group-operator","path":"/docs/v0.14.0/int/quickstart/group/quickstart-group-operator","sidebar":"tutorialSidebar"},{"id":"int/quickstart/index","path":"/docs/v0.14.0/int/quickstart/","sidebar":"tutorialSidebar"},{"id":"int/quickstart/quickstart-alone","path":"/docs/v0.14.0/int/quickstart/quickstart-alone","sidebar":"tutorialSidebar"},{"id":"int/quickstart/quickstart-builder-api","path":"/docs/v0.14.0/int/quickstart/quickstart-builder-api","sidebar":"tutorialSidebar"},{"id":"int/quickstart/quickstart-cli","path":"/docs/v0.14.0/int/quickstart/quickstart-cli","sidebar":"tutorialSidebar"},{"id":"int/quickstart/quickstart-combine","path":"/docs/v0.14.0/int/quickstart/quickstart-combine","sidebar":"tutorialSidebar"},{"id":"intro","path":"/docs/v0.14.0/intro","sidebar":"tutorialSidebar"},{"id":"sc/introducing-obol-managers","path":"/docs/v0.14.0/sc/introducing-obol-managers","sidebar":"tutorialSidebar"},{"id":"sec/bug-bounty","path":"/docs/v0.14.0/sec/bug-bounty","sidebar":"tutorialSidebar"},{"id":"sec/contact","path":"/docs/v0.14.0/sec/contact","sidebar":"tutorialSidebar"},{"id":"sec/overview","path":"/docs/v0.14.0/sec/overview","sidebar":"tutorialSidebar"},{"id":"sec/roadmap","path":"/docs/v0.14.0/sec/roadmap","sidebar":"tutorialSidebar"},{"id":"testnet","path":"/docs/v0.14.0/testnet","sidebar":"tutorialSidebar"}],"draftIds":[],"sidebars":{"tutorialSidebar":{"link":{"path":"/docs/v0.14.0/intro","label":"version-v0.14.0/intro"}}}},{"name":"v0.13.0","label":"v0.13.0","isLast":false,"path":"/docs/v0.13.0","mainDocId":"intro","docs":[{"id":"cg/bug-report","path":"/docs/v0.13.0/cg/bug-report","sidebar":"tutorialSidebar"},{"id":"cg/docs","path":"/docs/v0.13.0/cg/docs","sidebar":"tutorialSidebar"},{"id":"charon/charon_cli_reference","path":"/docs/v0.13.0/charon/charon_cli_reference","sidebar":"tutorialSidebar"},{"id":"charon/cluster-configuration","path":"/docs/v0.13.0/charon/cluster-configuration","sidebar":"tutorialSidebar"},{"id":"charon/dkg","path":"/docs/v0.13.0/charon/dkg","sidebar":"tutorialSidebar"},{"id":"charon/intro","path":"/docs/v0.13.0/charon/intro","sidebar":"tutorialSidebar"},{"id":"charon/p2p-interface","path":"/docs/v0.13.0/charon/p2p-interface","sidebar":"tutorialSidebar"},{"id":"charon/peer-discovery","path":"/docs/v0.13.0/charon/peer-discovery","sidebar":"tutorialSidebar"},{"id":"dvl/intro","path":"/docs/v0.13.0/dvl/intro","sidebar":"tutorialSidebar"},{"id":"fr/eth","path":"/docs/v0.13.0/fr/eth","sidebar":"tutorialSidebar"},{"id":"fr/golang","path":"/docs/v0.13.0/fr/golang","sidebar":"tutorialSidebar"},{"id":"int/faq/errors","path":"/docs/v0.13.0/int/faq/errors","sidebar":"tutorialSidebar"},{"id":"int/faq/general","path":"/docs/v0.13.0/int/faq/general","sidebar":"tutorialSidebar"},{"id":"int/key-concepts","path":"/docs/v0.13.0/int/key-concepts","sidebar":"tutorialSidebar"},{"id":"int/Overview","path":"/docs/v0.13.0/int/Overview","sidebar":"tutorialSidebar"},{"id":"int/quickstart/group/index","path":"/docs/v0.13.0/int/quickstart/group/","sidebar":"tutorialSidebar"},{"id":"int/quickstart/group/quickstart-group-leader-creator","path":"/docs/v0.13.0/int/quickstart/group/quickstart-group-leader-creator","sidebar":"tutorialSidebar"},{"id":"int/quickstart/group/quickstart-group-operator","path":"/docs/v0.13.0/int/quickstart/group/quickstart-group-operator","sidebar":"tutorialSidebar"},{"id":"int/quickstart/index","path":"/docs/v0.13.0/int/quickstart/","sidebar":"tutorialSidebar"},{"id":"int/quickstart/quickstart-alone","path":"/docs/v0.13.0/int/quickstart/quickstart-alone","sidebar":"tutorialSidebar"},{"id":"int/quickstart/quickstart-builder-api","path":"/docs/v0.13.0/int/quickstart/quickstart-builder-api","sidebar":"tutorialSidebar"},{"id":"int/quickstart/quickstart-cli","path":"/docs/v0.13.0/int/quickstart/quickstart-cli","sidebar":"tutorialSidebar"},{"id":"intro","path":"/docs/v0.13.0/intro","sidebar":"tutorialSidebar"},{"id":"sc/introducing-obol-managers","path":"/docs/v0.13.0/sc/introducing-obol-managers","sidebar":"tutorialSidebar"},{"id":"testnet","path":"/docs/v0.13.0/testnet","sidebar":"tutorialSidebar"}],"draftIds":[],"sidebars":{"tutorialSidebar":{"link":{"path":"/docs/v0.13.0/intro","label":"version-v0.13.0/intro"}}}},{"name":"v0.12.0","label":"v0.12.0","isLast":false,"path":"/docs/v0.12.0","mainDocId":"intro","docs":[{"id":"cg/bug-report","path":"/docs/v0.12.0/cg/bug-report","sidebar":"tutorialSidebar"},{"id":"cg/docs","path":"/docs/v0.12.0/cg/docs","sidebar":"tutorialSidebar"},{"id":"dv/charon_cli_reference","path":"/docs/v0.12.0/dv/charon_cli_reference","sidebar":"tutorialSidebar"},{"id":"dv/distributed-validator-cluster-manifest","path":"/docs/v0.12.0/dv/distributed-validator-cluster-manifest","sidebar":"tutorialSidebar"},{"id":"dv/introducing-charon","path":"/docs/v0.12.0/dv/introducing-charon","sidebar":"tutorialSidebar"},{"id":"dv/p2p-interface","path":"/docs/v0.12.0/dv/p2p-interface","sidebar":"tutorialSidebar"},{"id":"dv/peer-discovery","path":"/docs/v0.12.0/dv/peer-discovery","sidebar":"tutorialSidebar"},{"id":"dv/validator-creation","path":"/docs/v0.12.0/dv/validator-creation","sidebar":"tutorialSidebar"},{"id":"dvk/distributed_validator_launchpad","path":"/docs/v0.12.0/dvk/distributed_validator_launchpad","sidebar":"tutorialSidebar"},{"id":"dvk/distributed-validator-keys","path":"/docs/v0.12.0/dvk/distributed-validator-keys","sidebar":"tutorialSidebar"},{"id":"fr/eth","path":"/docs/v0.12.0/fr/eth","sidebar":"tutorialSidebar"},{"id":"fr/golang","path":"/docs/v0.12.0/fr/golang","sidebar":"tutorialSidebar"},{"id":"glossary","path":"/docs/v0.12.0/glossary","sidebar":"tutorialSidebar"},{"id":"int/faq/errors","path":"/docs/v0.12.0/int/faq/errors","sidebar":"tutorialSidebar"},{"id":"int/faq/general","path":"/docs/v0.12.0/int/faq/general","sidebar":"tutorialSidebar"},{"id":"int/key-concepts","path":"/docs/v0.12.0/int/key-concepts","sidebar":"tutorialSidebar"},{"id":"int/Overview","path":"/docs/v0.12.0/int/Overview","sidebar":"tutorialSidebar"},{"id":"int/quickstart/group/quickstart-group-cli","path":"/docs/v0.12.0/int/quickstart/group/quickstart-group-cli","sidebar":"tutorialSidebar"},{"id":"int/quickstart/group/quickstart-group-launchpad","path":"/docs/v0.12.0/int/quickstart/group/quickstart-group-launchpad","sidebar":"tutorialSidebar"},{"id":"int/quickstart/index","path":"/docs/v0.12.0/int/quickstart/","sidebar":"tutorialSidebar"},{"id":"int/quickstart/quickstart-alone","path":"/docs/v0.12.0/int/quickstart/quickstart-alone","sidebar":"tutorialSidebar"},{"id":"int/quickstart/quickstart-builder-api","path":"/docs/v0.12.0/int/quickstart/quickstart-builder-api","sidebar":"tutorialSidebar"},{"id":"int/working-groups","path":"/docs/v0.12.0/int/working-groups","sidebar":"tutorialSidebar"},{"id":"intro","path":"/docs/v0.12.0/intro","sidebar":"tutorialSidebar"},{"id":"sc/introducing-obol-managers","path":"/docs/v0.12.0/sc/introducing-obol-managers","sidebar":"tutorialSidebar"},{"id":"testnet","path":"/docs/v0.12.0/testnet","sidebar":"tutorialSidebar"}],"draftIds":[],"sidebars":{"tutorialSidebar":{"link":{"path":"/docs/v0.12.0/intro","label":"version-v0.12.0/intro"}}}},{"name":"v0.11.0","label":"v0.11.0","isLast":false,"path":"/docs/v0.11.0","mainDocId":"intro","docs":[{"id":"cg/bug-report","path":"/docs/v0.11.0/cg/bug-report","sidebar":"tutorialSidebar"},{"id":"cg/docs","path":"/docs/v0.11.0/cg/docs","sidebar":"tutorialSidebar"},{"id":"dv/charon_cli_reference","path":"/docs/v0.11.0/dv/charon_cli_reference","sidebar":"tutorialSidebar"},{"id":"dv/distributed-validator-cluster-manifest","path":"/docs/v0.11.0/dv/distributed-validator-cluster-manifest","sidebar":"tutorialSidebar"},{"id":"dv/introducing-charon","path":"/docs/v0.11.0/dv/introducing-charon","sidebar":"tutorialSidebar"},{"id":"dv/p2p-interface","path":"/docs/v0.11.0/dv/p2p-interface","sidebar":"tutorialSidebar"},{"id":"dv/peer-discovery","path":"/docs/v0.11.0/dv/peer-discovery","sidebar":"tutorialSidebar"},{"id":"dv/validator-creation","path":"/docs/v0.11.0/dv/validator-creation","sidebar":"tutorialSidebar"},{"id":"dvk/distributed_validator_launchpad","path":"/docs/v0.11.0/dvk/distributed_validator_launchpad","sidebar":"tutorialSidebar"},{"id":"dvk/distributed-validator-keys","path":"/docs/v0.11.0/dvk/distributed-validator-keys","sidebar":"tutorialSidebar"},{"id":"fr/eth","path":"/docs/v0.11.0/fr/eth","sidebar":"tutorialSidebar"},{"id":"fr/golang","path":"/docs/v0.11.0/fr/golang","sidebar":"tutorialSidebar"},{"id":"glossary","path":"/docs/v0.11.0/glossary","sidebar":"tutorialSidebar"},{"id":"int/faq/errors","path":"/docs/v0.11.0/int/faq/errors","sidebar":"tutorialSidebar"},{"id":"int/faq/general","path":"/docs/v0.11.0/int/faq/general","sidebar":"tutorialSidebar"},{"id":"int/key-concepts","path":"/docs/v0.11.0/int/key-concepts","sidebar":"tutorialSidebar"},{"id":"int/Overview","path":"/docs/v0.11.0/int/Overview","sidebar":"tutorialSidebar"},{"id":"int/quickstart/group/quickstart-group-cli","path":"/docs/v0.11.0/int/quickstart/group/quickstart-group-cli","sidebar":"tutorialSidebar"},{"id":"int/quickstart/group/quickstart-group-launchpad","path":"/docs/v0.11.0/int/quickstart/group/quickstart-group-launchpad","sidebar":"tutorialSidebar"},{"id":"int/quickstart/index","path":"/docs/v0.11.0/int/quickstart/","sidebar":"tutorialSidebar"},{"id":"int/quickstart/quickstart-alone","path":"/docs/v0.11.0/int/quickstart/quickstart-alone","sidebar":"tutorialSidebar"},{"id":"int/quickstart/quickstart-builder-api","path":"/docs/v0.11.0/int/quickstart/quickstart-builder-api","sidebar":"tutorialSidebar"},{"id":"int/working-groups","path":"/docs/v0.11.0/int/working-groups","sidebar":"tutorialSidebar"},{"id":"intro","path":"/docs/v0.11.0/intro","sidebar":"tutorialSidebar"},{"id":"sc/introducing-obol-managers","path":"/docs/v0.11.0/sc/introducing-obol-managers","sidebar":"tutorialSidebar"},{"id":"testnet","path":"/docs/v0.11.0/testnet","sidebar":"tutorialSidebar"}],"draftIds":[],"sidebars":{"tutorialSidebar":{"link":{"path":"/docs/v0.11.0/intro","label":"version-v0.11.0/intro"}}}},{"name":"v0.10.1","label":"v0.10.1","isLast":false,"path":"/docs/v0.10.1","mainDocId":"intro","docs":[{"id":"cg/bug-report","path":"/docs/v0.10.1/cg/bug-report","sidebar":"tutorialSidebar"},{"id":"cg/docs","path":"/docs/v0.10.1/cg/docs","sidebar":"tutorialSidebar"},{"id":"dv/charon_cli_reference","path":"/docs/v0.10.1/dv/charon_cli_reference","sidebar":"tutorialSidebar"},{"id":"dv/distributed-validator-cluster-manifest","path":"/docs/v0.10.1/dv/distributed-validator-cluster-manifest","sidebar":"tutorialSidebar"},{"id":"dv/introducing-charon","path":"/docs/v0.10.1/dv/introducing-charon","sidebar":"tutorialSidebar"},{"id":"dv/p2p-interface","path":"/docs/v0.10.1/dv/p2p-interface","sidebar":"tutorialSidebar"},{"id":"dv/peer-discovery","path":"/docs/v0.10.1/dv/peer-discovery","sidebar":"tutorialSidebar"},{"id":"dv/validator-creation","path":"/docs/v0.10.1/dv/validator-creation","sidebar":"tutorialSidebar"},{"id":"dvk/distributed_validator_launchpad","path":"/docs/v0.10.1/dvk/distributed_validator_launchpad","sidebar":"tutorialSidebar"},{"id":"dvk/distributed-validator-keys","path":"/docs/v0.10.1/dvk/distributed-validator-keys","sidebar":"tutorialSidebar"},{"id":"fr/eth","path":"/docs/v0.10.1/fr/eth","sidebar":"tutorialSidebar"},{"id":"fr/golang","path":"/docs/v0.10.1/fr/golang","sidebar":"tutorialSidebar"},{"id":"glossary","path":"/docs/v0.10.1/glossary","sidebar":"tutorialSidebar"},{"id":"int/faq/errors","path":"/docs/v0.10.1/int/faq/errors","sidebar":"tutorialSidebar"},{"id":"int/faq/general","path":"/docs/v0.10.1/int/faq/general","sidebar":"tutorialSidebar"},{"id":"int/key-concepts","path":"/docs/v0.10.1/int/key-concepts","sidebar":"tutorialSidebar"},{"id":"int/Overview","path":"/docs/v0.10.1/int/Overview","sidebar":"tutorialSidebar"},{"id":"int/quickstart/group/quickstart-group-cli","path":"/docs/v0.10.1/int/quickstart/group/quickstart-group-cli","sidebar":"tutorialSidebar"},{"id":"int/quickstart/group/quickstart-group-launchpad","path":"/docs/v0.10.1/int/quickstart/group/quickstart-group-launchpad","sidebar":"tutorialSidebar"},{"id":"int/quickstart/index","path":"/docs/v0.10.1/int/quickstart/","sidebar":"tutorialSidebar"},{"id":"int/quickstart/quickstart-alone","path":"/docs/v0.10.1/int/quickstart/quickstart-alone","sidebar":"tutorialSidebar"},{"id":"int/quickstart/quickstart-builder-api","path":"/docs/v0.10.1/int/quickstart/quickstart-builder-api","sidebar":"tutorialSidebar"},{"id":"int/working-groups","path":"/docs/v0.10.1/int/working-groups","sidebar":"tutorialSidebar"},{"id":"intro","path":"/docs/v0.10.1/intro","sidebar":"tutorialSidebar"},{"id":"sc/introducing-obol-managers","path":"/docs/v0.10.1/sc/introducing-obol-managers","sidebar":"tutorialSidebar"},{"id":"testnet","path":"/docs/v0.10.1/testnet","sidebar":"tutorialSidebar"}],"draftIds":[],"sidebars":{"tutorialSidebar":{"link":{"path":"/docs/v0.10.1/intro","label":"version-v0.10.1/intro"}}}},{"name":"v0.10.0","label":"v0.10.0","isLast":false,"path":"/docs/v0.10.0","mainDocId":"intro","docs":[{"id":"cg/bug-report","path":"/docs/v0.10.0/cg/bug-report","sidebar":"tutorialSidebar"},{"id":"cg/docs","path":"/docs/v0.10.0/cg/docs","sidebar":"tutorialSidebar"},{"id":"dv/charon_cli_reference","path":"/docs/v0.10.0/dv/charon_cli_reference","sidebar":"tutorialSidebar"},{"id":"dv/distributed-validator-cluster-manifest","path":"/docs/v0.10.0/dv/distributed-validator-cluster-manifest","sidebar":"tutorialSidebar"},{"id":"dv/introducing-charon","path":"/docs/v0.10.0/dv/introducing-charon","sidebar":"tutorialSidebar"},{"id":"dv/p2p-interface","path":"/docs/v0.10.0/dv/p2p-interface","sidebar":"tutorialSidebar"},{"id":"dv/peer-discovery","path":"/docs/v0.10.0/dv/peer-discovery","sidebar":"tutorialSidebar"},{"id":"dv/validator-creation","path":"/docs/v0.10.0/dv/validator-creation","sidebar":"tutorialSidebar"},{"id":"dvk/distributed_validator_launchpad","path":"/docs/v0.10.0/dvk/distributed_validator_launchpad","sidebar":"tutorialSidebar"},{"id":"dvk/distributed-validator-keys","path":"/docs/v0.10.0/dvk/distributed-validator-keys","sidebar":"tutorialSidebar"},{"id":"fr/eth","path":"/docs/v0.10.0/fr/eth","sidebar":"tutorialSidebar"},{"id":"fr/golang","path":"/docs/v0.10.0/fr/golang","sidebar":"tutorialSidebar"},{"id":"glossary","path":"/docs/v0.10.0/glossary","sidebar":"tutorialSidebar"},{"id":"int/faq","path":"/docs/v0.10.0/int/faq","sidebar":"tutorialSidebar"},{"id":"int/key-concepts","path":"/docs/v0.10.0/int/key-concepts","sidebar":"tutorialSidebar"},{"id":"int/Overview","path":"/docs/v0.10.0/int/Overview","sidebar":"tutorialSidebar"},{"id":"int/quickstart/index","path":"/docs/v0.10.0/int/quickstart/","sidebar":"tutorialSidebar"},{"id":"int/quickstart/quickstart-alone","path":"/docs/v0.10.0/int/quickstart/quickstart-alone","sidebar":"tutorialSidebar"},{"id":"int/quickstart/quickstart-builder-api","path":"/docs/v0.10.0/int/quickstart/quickstart-builder-api","sidebar":"tutorialSidebar"},{"id":"int/quickstart/quickstart-group","path":"/docs/v0.10.0/int/quickstart/quickstart-group","sidebar":"tutorialSidebar"},{"id":"int/working-groups","path":"/docs/v0.10.0/int/working-groups","sidebar":"tutorialSidebar"},{"id":"intro","path":"/docs/v0.10.0/intro","sidebar":"tutorialSidebar"},{"id":"sc/introducing-obol-managers","path":"/docs/v0.10.0/sc/introducing-obol-managers","sidebar":"tutorialSidebar"},{"id":"testnet","path":"/docs/v0.10.0/testnet","sidebar":"tutorialSidebar"}],"draftIds":[],"sidebars":{"tutorialSidebar":{"link":{"path":"/docs/v0.10.0/intro","label":"version-v0.10.0/intro"}}}},{"name":"v0.9.0","label":"v0.9.0","isLast":false,"path":"/docs/v0.9.0","mainDocId":"intro","docs":[{"id":"cg/bug-report","path":"/docs/v0.9.0/cg/bug-report","sidebar":"tutorialSidebar"},{"id":"cg/docs","path":"/docs/v0.9.0/cg/docs","sidebar":"tutorialSidebar"},{"id":"dv/charon_cli_reference","path":"/docs/v0.9.0/dv/charon_cli_reference","sidebar":"tutorialSidebar"},{"id":"dv/distributed-validator-cluster-manifest","path":"/docs/v0.9.0/dv/distributed-validator-cluster-manifest","sidebar":"tutorialSidebar"},{"id":"dv/introducing-charon","path":"/docs/v0.9.0/dv/introducing-charon","sidebar":"tutorialSidebar"},{"id":"dv/middleware-daemon","path":"/docs/v0.9.0/dv/middleware-daemon","sidebar":"tutorialSidebar"},{"id":"dv/p2p-interface","path":"/docs/v0.9.0/dv/p2p-interface","sidebar":"tutorialSidebar"},{"id":"dv/peer-discovery","path":"/docs/v0.9.0/dv/peer-discovery","sidebar":"tutorialSidebar"},{"id":"dv/validator-creation","path":"/docs/v0.9.0/dv/validator-creation","sidebar":"tutorialSidebar"},{"id":"dvk/distributed_validator_launchpad","path":"/docs/v0.9.0/dvk/distributed_validator_launchpad","sidebar":"tutorialSidebar"},{"id":"dvk/distributed-validator-keys","path":"/docs/v0.9.0/dvk/distributed-validator-keys","sidebar":"tutorialSidebar"},{"id":"fr/eth","path":"/docs/v0.9.0/fr/eth","sidebar":"tutorialSidebar"},{"id":"fr/golang","path":"/docs/v0.9.0/fr/golang","sidebar":"tutorialSidebar"},{"id":"glossary","path":"/docs/v0.9.0/glossary","sidebar":"tutorialSidebar"},{"id":"int/faq","path":"/docs/v0.9.0/int/faq","sidebar":"tutorialSidebar"},{"id":"int/key-concepts","path":"/docs/v0.9.0/int/key-concepts","sidebar":"tutorialSidebar"},{"id":"int/Overview","path":"/docs/v0.9.0/int/Overview","sidebar":"tutorialSidebar"},{"id":"int/quickstart/index","path":"/docs/v0.9.0/int/quickstart/","sidebar":"tutorialSidebar"},{"id":"int/quickstart/quickstart-alone","path":"/docs/v0.9.0/int/quickstart/quickstart-alone","sidebar":"tutorialSidebar"},{"id":"int/quickstart/quickstart-group","path":"/docs/v0.9.0/int/quickstart/quickstart-group","sidebar":"tutorialSidebar"},{"id":"int/working-groups","path":"/docs/v0.9.0/int/working-groups","sidebar":"tutorialSidebar"},{"id":"intro","path":"/docs/v0.9.0/intro","sidebar":"tutorialSidebar"},{"id":"sc/introducing-obol-managers","path":"/docs/v0.9.0/sc/introducing-obol-managers","sidebar":"tutorialSidebar"},{"id":"testnet","path":"/docs/v0.9.0/testnet","sidebar":"tutorialSidebar"}],"draftIds":[],"sidebars":{"tutorialSidebar":{"link":{"path":"/docs/v0.9.0/intro","label":"version-v0.9.0/intro"}}}},{"name":"v0.8.1","label":"v0.8.1","isLast":false,"path":"/docs/v0.8.1","mainDocId":"intro","docs":[{"id":"cg/bug-report","path":"/docs/v0.8.1/cg/bug-report","sidebar":"tutorialSidebar"},{"id":"cg/docs","path":"/docs/v0.8.1/cg/docs","sidebar":"tutorialSidebar"},{"id":"dv/charon_cli_reference","path":"/docs/v0.8.1/dv/charon_cli_reference","sidebar":"tutorialSidebar"},{"id":"dv/distributed-validator-cluster-manifest","path":"/docs/v0.8.1/dv/distributed-validator-cluster-manifest","sidebar":"tutorialSidebar"},{"id":"dv/introducing-charon","path":"/docs/v0.8.1/dv/introducing-charon","sidebar":"tutorialSidebar"},{"id":"dv/middleware-daemon","path":"/docs/v0.8.1/dv/middleware-daemon","sidebar":"tutorialSidebar"},{"id":"dv/p2p-interface","path":"/docs/v0.8.1/dv/p2p-interface","sidebar":"tutorialSidebar"},{"id":"dv/peer-discovery","path":"/docs/v0.8.1/dv/peer-discovery","sidebar":"tutorialSidebar"},{"id":"dv/validator-creation","path":"/docs/v0.8.1/dv/validator-creation","sidebar":"tutorialSidebar"},{"id":"dvk/distributed_validator_launchpad","path":"/docs/v0.8.1/dvk/distributed_validator_launchpad","sidebar":"tutorialSidebar"},{"id":"dvk/distributed-validator-keys","path":"/docs/v0.8.1/dvk/distributed-validator-keys","sidebar":"tutorialSidebar"},{"id":"fr/eth","path":"/docs/v0.8.1/fr/eth","sidebar":"tutorialSidebar"},{"id":"fr/golang","path":"/docs/v0.8.1/fr/golang","sidebar":"tutorialSidebar"},{"id":"glossary","path":"/docs/v0.8.1/glossary","sidebar":"tutorialSidebar"},{"id":"int/faq","path":"/docs/v0.8.1/int/faq","sidebar":"tutorialSidebar"},{"id":"int/key-concepts","path":"/docs/v0.8.1/int/key-concepts","sidebar":"tutorialSidebar"},{"id":"int/Overview","path":"/docs/v0.8.1/int/Overview","sidebar":"tutorialSidebar"},{"id":"int/quickstart/index","path":"/docs/v0.8.1/int/quickstart/","sidebar":"tutorialSidebar"},{"id":"int/quickstart/quickstart-alone","path":"/docs/v0.8.1/int/quickstart/quickstart-alone","sidebar":"tutorialSidebar"},{"id":"int/quickstart/quickstart-group","path":"/docs/v0.8.1/int/quickstart/quickstart-group","sidebar":"tutorialSidebar"},{"id":"int/working-groups","path":"/docs/v0.8.1/int/working-groups","sidebar":"tutorialSidebar"},{"id":"intro","path":"/docs/v0.8.1/intro","sidebar":"tutorialSidebar"},{"id":"sc/introducing-obol-managers","path":"/docs/v0.8.1/sc/introducing-obol-managers","sidebar":"tutorialSidebar"},{"id":"testnet","path":"/docs/v0.8.1/testnet","sidebar":"tutorialSidebar"}],"draftIds":[],"sidebars":{"tutorialSidebar":{"link":{"path":"/docs/v0.8.1/intro","label":"version-v0.8.1/intro"}}}},{"name":"v0.8.0","label":"v0.8.0","isLast":false,"path":"/docs/v0.8.0","mainDocId":"intro","docs":[{"id":"cg/bug-report","path":"/docs/v0.8.0/cg/bug-report","sidebar":"tutorialSidebar"},{"id":"cg/docs","path":"/docs/v0.8.0/cg/docs","sidebar":"tutorialSidebar"},{"id":"dv/charon_cli_reference","path":"/docs/v0.8.0/dv/charon_cli_reference","sidebar":"tutorialSidebar"},{"id":"dv/distributed-validator-cluster-manifest","path":"/docs/v0.8.0/dv/distributed-validator-cluster-manifest","sidebar":"tutorialSidebar"},{"id":"dv/introducing-charon","path":"/docs/v0.8.0/dv/introducing-charon","sidebar":"tutorialSidebar"},{"id":"dv/middleware-daemon","path":"/docs/v0.8.0/dv/middleware-daemon","sidebar":"tutorialSidebar"},{"id":"dv/p2p-interface","path":"/docs/v0.8.0/dv/p2p-interface","sidebar":"tutorialSidebar"},{"id":"dv/peer-discovery","path":"/docs/v0.8.0/dv/peer-discovery","sidebar":"tutorialSidebar"},{"id":"dv/validator-creation","path":"/docs/v0.8.0/dv/validator-creation","sidebar":"tutorialSidebar"},{"id":"dvk/distributed_validator_launchpad","path":"/docs/v0.8.0/dvk/distributed_validator_launchpad","sidebar":"tutorialSidebar"},{"id":"dvk/distributed-validator-keys","path":"/docs/v0.8.0/dvk/distributed-validator-keys","sidebar":"tutorialSidebar"},{"id":"fr/eth","path":"/docs/v0.8.0/fr/eth","sidebar":"tutorialSidebar"},{"id":"fr/golang","path":"/docs/v0.8.0/fr/golang","sidebar":"tutorialSidebar"},{"id":"glossary","path":"/docs/v0.8.0/glossary","sidebar":"tutorialSidebar"},{"id":"int/faq","path":"/docs/v0.8.0/int/faq","sidebar":"tutorialSidebar"},{"id":"int/key-concepts","path":"/docs/v0.8.0/int/key-concepts","sidebar":"tutorialSidebar"},{"id":"int/Overview","path":"/docs/v0.8.0/int/Overview","sidebar":"tutorialSidebar"},{"id":"int/quickstart/index","path":"/docs/v0.8.0/int/quickstart/","sidebar":"tutorialSidebar"},{"id":"int/quickstart/quickstart-alone","path":"/docs/v0.8.0/int/quickstart/quickstart-alone","sidebar":"tutorialSidebar"},{"id":"int/quickstart/quickstart-group","path":"/docs/v0.8.0/int/quickstart/quickstart-group","sidebar":"tutorialSidebar"},{"id":"int/working-groups","path":"/docs/v0.8.0/int/working-groups","sidebar":"tutorialSidebar"},{"id":"intro","path":"/docs/v0.8.0/intro","sidebar":"tutorialSidebar"},{"id":"sc/introducing-obol-managers","path":"/docs/v0.8.0/sc/introducing-obol-managers","sidebar":"tutorialSidebar"},{"id":"testnet","path":"/docs/v0.8.0/testnet","sidebar":"tutorialSidebar"}],"draftIds":[],"sidebars":{"tutorialSidebar":{"link":{"path":"/docs/v0.8.0/intro","label":"version-v0.8.0/intro"}}}},{"name":"v0.7.0","label":"v0.7.0","isLast":false,"path":"/docs/v0.7.0","mainDocId":"intro","docs":[{"id":"cg/bug-report","path":"/docs/v0.7.0/cg/bug-report","sidebar":"tutorialSidebar"},{"id":"cg/docs","path":"/docs/v0.7.0/cg/docs","sidebar":"tutorialSidebar"},{"id":"dv/charon_cli_reference","path":"/docs/v0.7.0/dv/charon_cli_reference","sidebar":"tutorialSidebar"},{"id":"dv/distributed-validator-cluster-manifest","path":"/docs/v0.7.0/dv/distributed-validator-cluster-manifest","sidebar":"tutorialSidebar"},{"id":"dv/introducing-charon","path":"/docs/v0.7.0/dv/introducing-charon","sidebar":"tutorialSidebar"},{"id":"dv/middleware-daemon","path":"/docs/v0.7.0/dv/middleware-daemon","sidebar":"tutorialSidebar"},{"id":"dv/p2p-interface","path":"/docs/v0.7.0/dv/p2p-interface","sidebar":"tutorialSidebar"},{"id":"dv/peer-discovery","path":"/docs/v0.7.0/dv/peer-discovery","sidebar":"tutorialSidebar"},{"id":"dv/validator-creation","path":"/docs/v0.7.0/dv/validator-creation","sidebar":"tutorialSidebar"},{"id":"dvk/distributed_validator_launchpad","path":"/docs/v0.7.0/dvk/distributed_validator_launchpad","sidebar":"tutorialSidebar"},{"id":"dvk/distributed-validator-keys","path":"/docs/v0.7.0/dvk/distributed-validator-keys","sidebar":"tutorialSidebar"},{"id":"dvk/dkg_cli_reference","path":"/docs/v0.7.0/dvk/dkg_cli_reference","sidebar":"tutorialSidebar"},{"id":"fr/eth","path":"/docs/v0.7.0/fr/eth","sidebar":"tutorialSidebar"},{"id":"fr/golang","path":"/docs/v0.7.0/fr/golang","sidebar":"tutorialSidebar"},{"id":"glossary","path":"/docs/v0.7.0/glossary","sidebar":"tutorialSidebar"},{"id":"int/faq","path":"/docs/v0.7.0/int/faq","sidebar":"tutorialSidebar"},{"id":"int/key-concepts","path":"/docs/v0.7.0/int/key-concepts","sidebar":"tutorialSidebar"},{"id":"int/Overview","path":"/docs/v0.7.0/int/Overview","sidebar":"tutorialSidebar"},{"id":"int/quickstart/index","path":"/docs/v0.7.0/int/quickstart/","sidebar":"tutorialSidebar"},{"id":"int/quickstart/quickstart-alone","path":"/docs/v0.7.0/int/quickstart/quickstart-alone","sidebar":"tutorialSidebar"},{"id":"int/quickstart/quickstart-group","path":"/docs/v0.7.0/int/quickstart/quickstart-group","sidebar":"tutorialSidebar"},{"id":"int/working-groups","path":"/docs/v0.7.0/int/working-groups","sidebar":"tutorialSidebar"},{"id":"intro","path":"/docs/v0.7.0/intro","sidebar":"tutorialSidebar"},{"id":"sc/introducing-obol-managers","path":"/docs/v0.7.0/sc/introducing-obol-managers","sidebar":"tutorialSidebar"},{"id":"testnet","path":"/docs/v0.7.0/testnet","sidebar":"tutorialSidebar"}],"draftIds":[],"sidebars":{"tutorialSidebar":{"link":{"path":"/docs/v0.7.0/intro","label":"version-v0.7.0/intro"}}}},{"name":"v0.6.1","label":"v0.6.1","isLast":false,"path":"/docs/v0.6.1","mainDocId":"intro","docs":[{"id":"cg/bug-report","path":"/docs/v0.6.1/cg/bug-report","sidebar":"tutorialSidebar"},{"id":"cg/docs","path":"/docs/v0.6.1/cg/docs","sidebar":"tutorialSidebar"},{"id":"dv/charon_cli_reference","path":"/docs/v0.6.1/dv/charon_cli_reference","sidebar":"tutorialSidebar"},{"id":"dv/distributed-validator-cluster-manifest","path":"/docs/v0.6.1/dv/distributed-validator-cluster-manifest","sidebar":"tutorialSidebar"},{"id":"dv/introducing-charon","path":"/docs/v0.6.1/dv/introducing-charon","sidebar":"tutorialSidebar"},{"id":"dv/middleware-daemon","path":"/docs/v0.6.1/dv/middleware-daemon","sidebar":"tutorialSidebar"},{"id":"dv/p2p-interface","path":"/docs/v0.6.1/dv/p2p-interface","sidebar":"tutorialSidebar"},{"id":"dv/peer-discovery","path":"/docs/v0.6.1/dv/peer-discovery","sidebar":"tutorialSidebar"},{"id":"dv/validator-creation","path":"/docs/v0.6.1/dv/validator-creation","sidebar":"tutorialSidebar"},{"id":"dvk/distributed_validator_launchpad","path":"/docs/v0.6.1/dvk/distributed_validator_launchpad","sidebar":"tutorialSidebar"},{"id":"dvk/distributed-validator-keys","path":"/docs/v0.6.1/dvk/distributed-validator-keys","sidebar":"tutorialSidebar"},{"id":"dvk/dkg_cli_reference","path":"/docs/v0.6.1/dvk/dkg_cli_reference","sidebar":"tutorialSidebar"},{"id":"fr/eth","path":"/docs/v0.6.1/fr/eth","sidebar":"tutorialSidebar"},{"id":"fr/golang","path":"/docs/v0.6.1/fr/golang","sidebar":"tutorialSidebar"},{"id":"glossary","path":"/docs/v0.6.1/glossary","sidebar":"tutorialSidebar"},{"id":"int/faq","path":"/docs/v0.6.1/int/faq","sidebar":"tutorialSidebar"},{"id":"int/key-concepts","path":"/docs/v0.6.1/int/key-concepts","sidebar":"tutorialSidebar"},{"id":"int/Overview","path":"/docs/v0.6.1/int/Overview","sidebar":"tutorialSidebar"},{"id":"int/quickstart/index","path":"/docs/v0.6.1/int/quickstart/","sidebar":"tutorialSidebar"},{"id":"int/quickstart/quickstart-alone","path":"/docs/v0.6.1/int/quickstart/quickstart-alone","sidebar":"tutorialSidebar"},{"id":"int/quickstart/quickstart-group","path":"/docs/v0.6.1/int/quickstart/quickstart-group","sidebar":"tutorialSidebar"},{"id":"int/working-groups","path":"/docs/v0.6.1/int/working-groups","sidebar":"tutorialSidebar"},{"id":"intro","path":"/docs/v0.6.1/intro","sidebar":"tutorialSidebar"},{"id":"sc/introducing-obol-managers","path":"/docs/v0.6.1/sc/introducing-obol-managers","sidebar":"tutorialSidebar"},{"id":"testnet","path":"/docs/v0.6.1/testnet","sidebar":"tutorialSidebar"}],"draftIds":[],"sidebars":{"tutorialSidebar":{"link":{"path":"/docs/v0.6.1/intro","label":"version-v0.6.1/intro"}}}},{"name":"v0.6.0","label":"v0.6.0","isLast":false,"path":"/docs/v0.6.0","mainDocId":"intro","docs":[{"id":"cg/bug-report","path":"/docs/v0.6.0/cg/bug-report","sidebar":"tutorialSidebar"},{"id":"cg/docs","path":"/docs/v0.6.0/cg/docs","sidebar":"tutorialSidebar"},{"id":"dv/charon_cli_reference","path":"/docs/v0.6.0/dv/charon_cli_reference","sidebar":"tutorialSidebar"},{"id":"dv/distributed-validator-cluster-manifest","path":"/docs/v0.6.0/dv/distributed-validator-cluster-manifest","sidebar":"tutorialSidebar"},{"id":"dv/introducing-charon","path":"/docs/v0.6.0/dv/introducing-charon","sidebar":"tutorialSidebar"},{"id":"dv/middleware-daemon","path":"/docs/v0.6.0/dv/middleware-daemon","sidebar":"tutorialSidebar"},{"id":"dv/p2p-interface","path":"/docs/v0.6.0/dv/p2p-interface","sidebar":"tutorialSidebar"},{"id":"dv/peer-discovery","path":"/docs/v0.6.0/dv/peer-discovery","sidebar":"tutorialSidebar"},{"id":"dv/validator-creation","path":"/docs/v0.6.0/dv/validator-creation","sidebar":"tutorialSidebar"},{"id":"dvk/distributed_validator_launchpad","path":"/docs/v0.6.0/dvk/distributed_validator_launchpad","sidebar":"tutorialSidebar"},{"id":"dvk/distributed-validator-keys","path":"/docs/v0.6.0/dvk/distributed-validator-keys","sidebar":"tutorialSidebar"},{"id":"dvk/dkg_cli_reference","path":"/docs/v0.6.0/dvk/dkg_cli_reference","sidebar":"tutorialSidebar"},{"id":"fr/eth","path":"/docs/v0.6.0/fr/eth","sidebar":"tutorialSidebar"},{"id":"fr/golang","path":"/docs/v0.6.0/fr/golang","sidebar":"tutorialSidebar"},{"id":"glossary","path":"/docs/v0.6.0/glossary","sidebar":"tutorialSidebar"},{"id":"int/faq","path":"/docs/v0.6.0/int/faq","sidebar":"tutorialSidebar"},{"id":"int/key-concepts","path":"/docs/v0.6.0/int/key-concepts","sidebar":"tutorialSidebar"},{"id":"int/Overview","path":"/docs/v0.6.0/int/Overview","sidebar":"tutorialSidebar"},{"id":"int/quickstart","path":"/docs/v0.6.0/int/quickstart","sidebar":"tutorialSidebar"},{"id":"int/working-groups","path":"/docs/v0.6.0/int/working-groups","sidebar":"tutorialSidebar"},{"id":"intro","path":"/docs/v0.6.0/intro","sidebar":"tutorialSidebar"},{"id":"sc/introducing-obol-managers","path":"/docs/v0.6.0/sc/introducing-obol-managers","sidebar":"tutorialSidebar"},{"id":"testnet","path":"/docs/v0.6.0/testnet","sidebar":"tutorialSidebar"}],"draftIds":[],"sidebars":{"tutorialSidebar":{"link":{"path":"/docs/v0.6.0/intro","label":"version-v0.6.0/intro"}}}},{"name":"v0.5.0","label":"v0.5.0","isLast":false,"path":"/docs/v0.5.0","mainDocId":"intro","docs":[{"id":"cg/bug-report","path":"/docs/v0.5.0/cg/bug-report","sidebar":"tutorialSidebar"},{"id":"cg/docs","path":"/docs/v0.5.0/cg/docs","sidebar":"tutorialSidebar"},{"id":"dv/charon_cli_reference","path":"/docs/v0.5.0/dv/charon_cli_reference","sidebar":"tutorialSidebar"},{"id":"dv/distributed-validator-cluster-manifest","path":"/docs/v0.5.0/dv/distributed-validator-cluster-manifest","sidebar":"tutorialSidebar"},{"id":"dv/introducing-charon","path":"/docs/v0.5.0/dv/introducing-charon","sidebar":"tutorialSidebar"},{"id":"dv/middleware-daemon","path":"/docs/v0.5.0/dv/middleware-daemon","sidebar":"tutorialSidebar"},{"id":"dv/p2p-interface","path":"/docs/v0.5.0/dv/p2p-interface","sidebar":"tutorialSidebar"},{"id":"dv/peer-discovery","path":"/docs/v0.5.0/dv/peer-discovery","sidebar":"tutorialSidebar"},{"id":"dv/validator-creation","path":"/docs/v0.5.0/dv/validator-creation","sidebar":"tutorialSidebar"},{"id":"dvk/distributed_validator_launchpad","path":"/docs/v0.5.0/dvk/distributed_validator_launchpad","sidebar":"tutorialSidebar"},{"id":"dvk/distributed-validator-keys","path":"/docs/v0.5.0/dvk/distributed-validator-keys","sidebar":"tutorialSidebar"},{"id":"dvk/dkg_cli_reference","path":"/docs/v0.5.0/dvk/dkg_cli_reference","sidebar":"tutorialSidebar"},{"id":"fr/eth","path":"/docs/v0.5.0/fr/eth","sidebar":"tutorialSidebar"},{"id":"fr/golang","path":"/docs/v0.5.0/fr/golang","sidebar":"tutorialSidebar"},{"id":"glossary","path":"/docs/v0.5.0/glossary","sidebar":"tutorialSidebar"},{"id":"int/faq","path":"/docs/v0.5.0/int/faq","sidebar":"tutorialSidebar"},{"id":"int/key-concepts","path":"/docs/v0.5.0/int/key-concepts","sidebar":"tutorialSidebar"},{"id":"int/Overview","path":"/docs/v0.5.0/int/Overview","sidebar":"tutorialSidebar"},{"id":"int/quickstart","path":"/docs/v0.5.0/int/quickstart","sidebar":"tutorialSidebar"},{"id":"int/working-groups","path":"/docs/v0.5.0/int/working-groups","sidebar":"tutorialSidebar"},{"id":"intro","path":"/docs/v0.5.0/intro","sidebar":"tutorialSidebar"},{"id":"sc/introducing-obol-managers","path":"/docs/v0.5.0/sc/introducing-obol-managers","sidebar":"tutorialSidebar"},{"id":"testnet","path":"/docs/v0.5.0/testnet","sidebar":"tutorialSidebar"}],"draftIds":[],"sidebars":{"tutorialSidebar":{"link":{"path":"/docs/v0.5.0/intro","label":"version-v0.5.0/intro"}}}},{"name":"v0.4.0","label":"v0.4.0","isLast":false,"path":"/docs/v0.4.0","mainDocId":"intro","docs":[{"id":"cg/bug-report","path":"/docs/v0.4.0/cg/bug-report","sidebar":"tutorialSidebar"},{"id":"cg/docs","path":"/docs/v0.4.0/cg/docs","sidebar":"tutorialSidebar"},{"id":"dv/charon_cli_reference","path":"/docs/v0.4.0/dv/charon_cli_reference","sidebar":"tutorialSidebar"},{"id":"dv/distributed-validator-cluster-manifest","path":"/docs/v0.4.0/dv/distributed-validator-cluster-manifest","sidebar":"tutorialSidebar"},{"id":"dv/introducing-charon","path":"/docs/v0.4.0/dv/introducing-charon","sidebar":"tutorialSidebar"},{"id":"dv/middleware-daemon","path":"/docs/v0.4.0/dv/middleware-daemon","sidebar":"tutorialSidebar"},{"id":"dv/p2p-interface","path":"/docs/v0.4.0/dv/p2p-interface","sidebar":"tutorialSidebar"},{"id":"dv/peer-discovery","path":"/docs/v0.4.0/dv/peer-discovery","sidebar":"tutorialSidebar"},{"id":"dv/validator-creation","path":"/docs/v0.4.0/dv/validator-creation","sidebar":"tutorialSidebar"},{"id":"dvk/distributed_validator_launchpad","path":"/docs/v0.4.0/dvk/distributed_validator_launchpad","sidebar":"tutorialSidebar"},{"id":"dvk/distributed-validator-keys","path":"/docs/v0.4.0/dvk/distributed-validator-keys","sidebar":"tutorialSidebar"},{"id":"dvk/dkg_cli_reference","path":"/docs/v0.4.0/dvk/dkg_cli_reference","sidebar":"tutorialSidebar"},{"id":"fr/eth","path":"/docs/v0.4.0/fr/eth","sidebar":"tutorialSidebar"},{"id":"fr/golang","path":"/docs/v0.4.0/fr/golang","sidebar":"tutorialSidebar"},{"id":"glossary","path":"/docs/v0.4.0/glossary","sidebar":"tutorialSidebar"},{"id":"int/faq","path":"/docs/v0.4.0/int/faq","sidebar":"tutorialSidebar"},{"id":"int/key-concepts","path":"/docs/v0.4.0/int/key-concepts","sidebar":"tutorialSidebar"},{"id":"int/Overview","path":"/docs/v0.4.0/int/Overview","sidebar":"tutorialSidebar"},{"id":"int/working-groups","path":"/docs/v0.4.0/int/working-groups","sidebar":"tutorialSidebar"},{"id":"intro","path":"/docs/v0.4.0/intro","sidebar":"tutorialSidebar"},{"id":"sc/introducing-obol-managers","path":"/docs/v0.4.0/sc/introducing-obol-managers","sidebar":"tutorialSidebar"},{"id":"testnet","path":"/docs/v0.4.0/testnet","sidebar":"tutorialSidebar"}],"draftIds":[],"sidebars":{"tutorialSidebar":{"link":{"path":"/docs/v0.4.0/intro","label":"version-v0.4.0/intro"}}}},{"name":"v0.3.0","label":"v0.3.0","isLast":false,"path":"/docs/v0.3.0","mainDocId":"intro","docs":[{"id":"cg/bug-report","path":"/docs/v0.3.0/cg/bug-report","sidebar":"version-v0.3.0/tutorialSidebar"},{"id":"cg/docs","path":"/docs/v0.3.0/cg/docs","sidebar":"version-v0.3.0/tutorialSidebar"},{"id":"dv/charon_cli_reference","path":"/docs/v0.3.0/dv/charon_cli_reference","sidebar":"version-v0.3.0/tutorialSidebar"},{"id":"dv/distributed-validator-cluster-manifest","path":"/docs/v0.3.0/dv/distributed-validator-cluster-manifest","sidebar":"version-v0.3.0/tutorialSidebar"},{"id":"dv/introducing-charon","path":"/docs/v0.3.0/dv/introducing-charon","sidebar":"version-v0.3.0/tutorialSidebar"},{"id":"dv/middleware-daemon","path":"/docs/v0.3.0/dv/middleware-daemon","sidebar":"version-v0.3.0/tutorialSidebar"},{"id":"dv/p2p-interface","path":"/docs/v0.3.0/dv/p2p-interface","sidebar":"version-v0.3.0/tutorialSidebar"},{"id":"dv/peer-discovery","path":"/docs/v0.3.0/dv/peer-discovery","sidebar":"version-v0.3.0/tutorialSidebar"},{"id":"dv/validator-creation","path":"/docs/v0.3.0/dv/validator-creation","sidebar":"version-v0.3.0/tutorialSidebar"},{"id":"dvk/distributed_validator_launchpad","path":"/docs/v0.3.0/dvk/distributed_validator_launchpad","sidebar":"version-v0.3.0/tutorialSidebar"},{"id":"dvk/distributed-validator-keys","path":"/docs/v0.3.0/dvk/distributed-validator-keys","sidebar":"version-v0.3.0/tutorialSidebar"},{"id":"dvk/dkg_cli_reference","path":"/docs/v0.3.0/dvk/dkg_cli_reference","sidebar":"version-v0.3.0/tutorialSidebar"},{"id":"fr/eth","path":"/docs/v0.3.0/fr/eth","sidebar":"version-v0.3.0/tutorialSidebar"},{"id":"fr/golang","path":"/docs/v0.3.0/fr/golang","sidebar":"version-v0.3.0/tutorialSidebar"},{"id":"glossary","path":"/docs/v0.3.0/glossary","sidebar":"version-v0.3.0/tutorialSidebar"},{"id":"int/faq","path":"/docs/v0.3.0/int/faq","sidebar":"version-v0.3.0/tutorialSidebar"},{"id":"int/key-concepts","path":"/docs/v0.3.0/int/key-concepts","sidebar":"version-v0.3.0/tutorialSidebar"},{"id":"int/Overview","path":"/docs/v0.3.0/int/Overview","sidebar":"version-v0.3.0/tutorialSidebar"},{"id":"int/working-groups","path":"/docs/v0.3.0/int/working-groups","sidebar":"version-v0.3.0/tutorialSidebar"},{"id":"intro","path":"/docs/v0.3.0/intro","sidebar":"version-v0.3.0/tutorialSidebar"},{"id":"sc/introducing-obol-managers","path":"/docs/v0.3.0/sc/introducing-obol-managers","sidebar":"version-v0.3.0/tutorialSidebar"},{"id":"testnet","path":"/docs/v0.3.0/testnet","sidebar":"version-v0.3.0/tutorialSidebar"}],"draftIds":[],"sidebars":{"version-v0.3.0/tutorialSidebar":{"link":{"path":"/docs/v0.3.0/intro","label":"version-v0.3.0/intro"}}}}],"breadcrumbs":true}}}'),i=JSON.parse('{"defaultLocale":"en","locales":["en"],"path":"i18n","currentLocale":"en","localeConfigs":{"en":{"label":"English","direction":"ltr","htmlLang":"en","calendar":"gregory","path":"en"}}}');var s=n(57529);const c=JSON.parse('{"docusaurusVersion":"2.4.0","siteVersion":"0.0.0","pluginVersions":{"docusaurus-plugin-content-docs":{"type":"package","name":"@docusaurus/plugin-content-docs","version":"2.4.0"},"docusaurus-plugin-content-pages":{"type":"package","name":"@docusaurus/plugin-content-pages","version":"2.4.0"},"docusaurus-plugin-sitemap":{"type":"package","name":"@docusaurus/plugin-sitemap","version":"2.4.0"},"docusaurus-plugin-redoc":{"type":"package","name":"docusaurus-plugin-redoc","version":"1.4.0"},"docusaurus-theme-classic":{"type":"package","name":"@docusaurus/theme-classic","version":"2.4.0"},"docusaurus-theme-redoc":{"type":"package","name":"docusaurus-theme-redoc","version":"1.4.0"},"@cmfcmf/docusaurus-search-local":{"type":"package","name":"@cmfcmf/docusaurus-search-local","version":"1.0.0"}}}'),d={siteConfig:o.default,siteMetadata:c,globalData:a,i18n:i,codeTranslations:s},l=r.createContext(d);function u(e){let{children:t}=e;return r.createElement(l.Provider,{value:d},t)}},73256:(e,t,n)=>{"use strict";n.d(t,{Z:()=>p});var r=n(67294),o=n(36136),a=n(31514),i=n(63905),s=n(59414);function c(e){let{error:t,tryAgain:n}=e;return r.createElement("div",{style:{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"flex-start",minHeight:"100vh",width:"100%",maxWidth:"80ch",fontSize:"20px",margin:"0 auto",padding:"1rem"}},r.createElement("h1",{style:{fontSize:"3rem"}},"This page crashed"),r.createElement("button",{type:"button",onClick:n,style:{margin:"1rem 0",fontSize:"2rem",cursor:"pointer",borderRadius:20,padding:"1rem"}},"Try again"),r.createElement(d,{error:t}))}function d(e){let{error:t}=e;const n=(0,i.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return r.createElement("p",{style:{whiteSpace:"pre-wrap"}},n)}function l(e){let{error:t,tryAgain:n}=e;return r.createElement(p,{fallback:()=>r.createElement(c,{error:t,tryAgain:n})},r.createElement(a.Z,null,r.createElement("title",null,"Page Error")),r.createElement(s.Z,null,r.createElement(c,{error:t,tryAgain:n})))}const u=e=>r.createElement(l,e);class p extends r.Component{constructor(e){super(e),this.state={error:null}}componentDidCatch(e){o.default.canUseDOM&&this.setState({error:e})}render(){const{children:e}=this.props,{error:t}=this.state;if(t){const e={error:t,tryAgain:()=>this.setState({error:null})};return(this.props.fallback??u)(e)}return e??null}}},36136:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o});const r="undefined"!=typeof window&&"document"in window&&"createElement"in window.document,o={canUseDOM:r,canUseEventListeners:r&&("addEventListener"in window||"attachEvent"in window),canUseIntersectionObserver:r&&"IntersectionObserver"in window,canUseViewport:r&&"screen"in window}},31514:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var r=n(67294),o=n(70405);function a(e){return r.createElement(o.ql,e)}},83699:(e,t,n)=>{"use strict";n.d(t,{Z:()=>v});var r=n(87462),o=n(67294),a=n(73727),i=n(63905),s=n(39962),c=n(2735),d=n(36136);const l=o.createContext({collectLink:()=>{}});var u=n(79524);function p(e,t){let{isNavLink:n,to:p,href:v,activeClassName:f,isActive:b,"data-noBrokenLinkCheck":h,autoAddBaseUrl:m=!0,...g}=e;const{siteConfig:{trailingSlash:y,baseUrl:_}}=(0,s.Z)(),{withBaseUrl:k}=(0,u.C)(),S=(0,o.useContext)(l),w=(0,o.useRef)(null);(0,o.useImperativeHandle)(t,(()=>w.current));const x=p||v;const E=(0,c.Z)(x),q=x?.replace("pathname://","");let O=void 0!==q?(C=q,m&&(e=>e.startsWith("/"))(C)?k(C):C):void 0;var C;O&&E&&(O=(0,i.applyTrailingSlash)(O,{trailingSlash:y,baseUrl:_}));const P=(0,o.useRef)(!1),I=n?a.OL:a.rU,T=d.default.canUseIntersectionObserver,A=(0,o.useRef)(),L=()=>{P.current||null==O||(window.docusaurus.preload(O),P.current=!0)};(0,o.useEffect)((()=>(!T&&E&&null!=O&&window.docusaurus.prefetch(O),()=>{T&&A.current&&A.current.disconnect()})),[A,O,T,E]);const N=O?.startsWith("#")??!1,R=!O||!E||N;return R||h||S.collectLink(O),R?o.createElement("a",(0,r.Z)({ref:w,href:O},x&&!E&&{target:"_blank",rel:"noopener noreferrer"},g)):o.createElement(I,(0,r.Z)({},g,{onMouseEnter:L,onTouchStart:L,innerRef:e=>{w.current=e,T&&e&&E&&(A.current=new window.IntersectionObserver((t=>{t.forEach((t=>{e===t.target&&(t.isIntersecting||t.intersectionRatio>0)&&(A.current.unobserve(e),A.current.disconnect(),null!=O&&window.docusaurus.prefetch(O))}))})),A.current.observe(e))},to:O},n&&{isActive:b,activeClassName:f}))}const v=o.forwardRef(p)},97325:(e,t,n)=>{"use strict";n.d(t,{Z:()=>c,I:()=>s});var r=n(67294);function o(e,t){const n=e.split(/(\{\w+\})/).map(((e,n)=>{if(n%2==1){const n=t?.[e.slice(1,-1)];if(void 0!==n)return n}return e}));return n.some((e=>(0,r.isValidElement)(e)))?n.map(((e,t)=>(0,r.isValidElement)(e)?r.cloneElement(e,{key:t}):e)).filter((e=>""!==e)):n.join("")}var a=n(57529);function i(e){let{id:t,message:n}=e;if(void 0===t&&void 0===n)throw new Error("Docusaurus translation declarations must have at least a translation id or a default translation message");return a[t??n]??n??t}function s(e,t){let{message:n,id:r}=e;return o(i({message:n,id:r}),t)}function c(e){let{children:t,id:n,values:a}=e;if(t&&"string"!=typeof t)throw console.warn("Illegal children",t),new Error("The Docusaurus component only accept simple string values");const s=i({message:t,id:n});return r.createElement(r.Fragment,null,o(s,a))}},6875:(e,t,n)=>{"use strict";n.d(t,{m:()=>r});const r="default"},2735:(e,t,n)=>{"use strict";function r(e){return/^(?:\w*:|\/\/)/.test(e)}function o(e){return void 0!==e&&!r(e)}n.d(t,{Z:()=>o,b:()=>r})},79524:(e,t,n)=>{"use strict";n.d(t,{C:()=>i,Z:()=>s});var r=n(67294),o=n(39962),a=n(2735);function i(){const{siteConfig:{baseUrl:e,url:t}}=(0,o.Z)(),n=(0,r.useCallback)(((n,r)=>function(e,t,n,r){let{forcePrependBaseUrl:o=!1,absolute:i=!1}=void 0===r?{}:r;if(!n||n.startsWith("#")||(0,a.b)(n))return n;if(o)return t+n.replace(/^\//,"");if(n===t.replace(/\/$/,""))return t;const s=n.startsWith(t)?n:t+n.replace(/^\//,"");return i?e+s:s}(t,e,n,r)),[t,e]);return{withBaseUrl:n}}function s(e,t){void 0===t&&(t={});const{withBaseUrl:n}=i();return n(e,t)}},39962:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var r=n(67294),o=n(80694);function a(){return(0,r.useContext)(o._)}},31610:(e,t,n)=>{"use strict";n.d(t,{OD:()=>a,eZ:()=>i});var r=n(39962),o=n(6875);function a(e,t){void 0===t&&(t={});const n=function(){const{globalData:e}=(0,r.Z)();return e}()[e];if(!n&&t.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin.`);return n}function i(e,t,n){void 0===t&&(t=o.m),void 0===n&&(n={});const r=a(e)?.[t];if(!r&&n.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin with id "${t}".`);return r}},51048:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var r=n(67294),o=n(88121);function a(){return(0,r.useContext)(o._)}},5304:(e,t,n)=>{"use strict";n.d(t,{Z:()=>r});function r(e){const t={};return function e(n,r){Object.entries(n).forEach((n=>{let[o,a]=n;const i=r?`${r}.${o}`:o;var s;"object"==typeof(s=a)&&s&&Object.keys(s).length>0?e(a,i):t[i]=a}))}(e),t}},69656:(e,t,n)=>{"use strict";n.d(t,{_:()=>o,z:()=>a});var r=n(67294);const o=r.createContext(null);function a(e){let{children:t,value:n}=e;const a=r.useContext(o),i=(0,r.useMemo)((()=>function(e){let{parent:t,value:n}=e;if(!t){if(!n)throw new Error("Unexpected: no Docusaurus route context found");if(!("plugin"in n))throw new Error("Unexpected: Docusaurus topmost route context has no `plugin` attribute");return n}const r={...t.data,...n?.data};return{plugin:t.plugin,data:r}}({parent:a,value:n})),[a,n]);return r.createElement(o.Provider,{value:i},t)}},30868:(e,t,n)=>{"use strict";n.d(t,{Iw:()=>b,gA:()=>u,WS:()=>p,_r:()=>d,Jo:()=>h,zh:()=>l,yW:()=>f,gB:()=>v});var r=n(16550),o=n(31610);const a=e=>e.versions.find((e=>e.isLast));function i(e,t){const n=a(e);return[...e.versions.filter((e=>e!==n)),n].find((e=>!!(0,r.LX)(t,{path:e.path,exact:!1,strict:!1})))}function s(e,t){const n=i(e,t),o=n?.docs.find((e=>!!(0,r.LX)(t,{path:e.path,exact:!0,strict:!1})));return{activeVersion:n,activeDoc:o,alternateDocVersions:o?function(t){const n={};return e.versions.forEach((e=>{e.docs.forEach((r=>{r.id===t&&(n[e.name]=r)}))})),n}(o.id):{}}}const c={},d=()=>(0,o.OD)("docusaurus-plugin-content-docs")??c,l=e=>(0,o.eZ)("docusaurus-plugin-content-docs",e,{failfast:!0});function u(e){void 0===e&&(e={});const t=d(),{pathname:n}=(0,r.TH)();return function(e,t,n){void 0===n&&(n={});const o=Object.entries(e).sort(((e,t)=>t[1].path.localeCompare(e[1].path))).find((e=>{let[,n]=e;return!!(0,r.LX)(t,{path:n.path,exact:!1,strict:!1})})),a=o?{pluginId:o[0],pluginData:o[1]}:void 0;if(!a&&n.failfast)throw new Error(`Can't find active docs plugin for "${t}" pathname, while it was expected to be found. Maybe you tried to use a docs feature that can only be used on a docs-related page? Existing docs plugin paths are: ${Object.values(e).map((e=>e.path)).join(", ")}`);return a}(t,n,e)}function p(e){void 0===e&&(e={});const t=u(e),{pathname:n}=(0,r.TH)();if(!t)return;return{activePlugin:t,activeVersion:i(t.pluginData,n)}}function v(e){return l(e).versions}function f(e){const t=l(e);return a(t)}function b(e){const t=l(e),{pathname:n}=(0,r.TH)();return s(t,n)}function h(e){const t=l(e),{pathname:n}=(0,r.TH)();return function(e,t){const n=a(e);return{latestDocSuggestion:s(e,t).alternateDocVersions[n.name],latestVersionSuggestion:n}}(t,n)}},79957:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>a});var r=n(74865),o=n.n(r);o().configure({showSpinner:!1});const a={onRouteUpdate(e){let{location:t,previousLocation:n}=e;if(n&&t.pathname!==n.pathname){const e=window.setTimeout((()=>{o().start()}),200);return()=>window.clearTimeout(e)}},onRouteDidUpdate(){o().done()}}},82251:(e,t,n)=>{"use strict";n.r(t);var r=n(87410),o=n(36809);!function(e){const{themeConfig:{prism:t}}=o.default,{additionalLanguages:r}=t;globalThis.Prism=e,r.forEach((e=>{n(92486)(`./prism-${e}`)})),delete globalThis.Prism}(r.Z)},14082:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var r=n(67294);const o="iconExternalLink_nPIU";function a(e){let{width:t=13.5,height:n=13.5}=e;return r.createElement("svg",{width:t,height:n,"aria-hidden":"true",viewBox:"0 0 24 24",className:o},r.createElement("path",{fill:"currentColor",d:"M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"}))}},59414:(e,t,n)=>{"use strict";n.d(t,{Z:()=>fa});var r=n(67294),o=n(86010),a=n(73256),i=n(35463),s=n(87462),c=n(16550),d=n(97325),l=n(43266);const u="docusaurus_skipToContent_fallback";function p(e){e.setAttribute("tabindex","-1"),e.focus(),e.removeAttribute("tabindex")}function v(){const e=(0,r.useRef)(null),{action:t}=(0,c.k6)(),n=(0,r.useCallback)((e=>{e.preventDefault();const t=document.querySelector("main:first-of-type")??document.getElementById(u);t&&p(t)}),[]);return(0,l.S)((n=>{let{location:r}=n;e.current&&!r.hash&&"PUSH"===t&&p(e.current)})),{containerRef:e,onClick:n}}const f=(0,d.I)({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 b(e){const t=e.children??f,{containerRef:n,onClick:o}=v();return r.createElement("div",{ref:n,role:"region","aria-label":f},r.createElement("a",(0,s.Z)({},e,{href:`#${u}`,onClick:o}),t))}var h=n(23702),m=n(78181);const g="skipToContent_fXgn";function y(){return r.createElement(b,{className:g})}var _=n(20107),k=n(65830);function S(e){let{width:t=21,height:n=21,color:o="currentColor",strokeWidth:a=1.2,className:i,...c}=e;return r.createElement("svg",(0,s.Z)({viewBox:"0 0 15 15",width:t,height:n},c),r.createElement("g",{stroke:o,strokeWidth:a},r.createElement("path",{d:"M.75.75l13.5 13.5M14.25.75L.75 14.25"})))}const w="closeButton_CVFx";function x(e){return r.createElement("button",(0,s.Z)({type:"button","aria-label":(0,d.I)({id:"theme.AnnouncementBar.closeButtonAriaLabel",message:"Close",description:"The ARIA label for close button of announcement bar"})},e,{className:(0,o.Z)("clean-btn close",w,e.className)}),r.createElement(S,{width:14,height:14,strokeWidth:3.1}))}const E="content_knG7";function q(e){const{announcementBar:t}=(0,_.L)(),{content:n}=t;return r.createElement("div",(0,s.Z)({},e,{className:(0,o.Z)(E,e.className),dangerouslySetInnerHTML:{__html:n}}))}const O="announcementBar_mb4j",C="announcementBarPlaceholder_vyr4",P="announcementBarClose_gvF7",I="announcementBarContent_xLdY";function T(){const{announcementBar:e}=(0,_.L)(),{isActive:t,close:n}=(0,k.nT)();if(!t)return null;const{backgroundColor:o,textColor:a,isCloseable:i}=e;return r.createElement("div",{className:O,style:{backgroundColor:o,color:a},role:"banner"},i&&r.createElement("div",{className:C}),r.createElement(q,{className:I}),i&&r.createElement(x,{onClick:n,className:P}))}var A=n(60735),L=n(72957);var N=n(43768),R=n(53086);const D=r.createContext(null);function j(e){let{children:t}=e;const n=function(){const e=(0,A.e)(),t=(0,R.HY)(),[n,o]=(0,r.useState)(!1),a=null!==t.component,i=(0,N.D9)(a);return(0,r.useEffect)((()=>{a&&!i&&o(!0)}),[a,i]),(0,r.useEffect)((()=>{a?e.shown||o(!0):o(!1)}),[e.shown,a]),(0,r.useMemo)((()=>[n,o]),[n])}();return r.createElement(D.Provider,{value:n},t)}function F(e){if(e.component){const t=e.component;return r.createElement(t,e.props)}}function M(){const e=(0,r.useContext)(D);if(!e)throw new N.i6("NavbarSecondaryMenuDisplayProvider");const[t,n]=e,o=(0,r.useCallback)((()=>n(!1)),[n]),a=(0,R.HY)();return(0,r.useMemo)((()=>({shown:t,hide:o,content:F(a)})),[o,a,t])}function B(e){let{header:t,primaryMenu:n,secondaryMenu:a}=e;const{shown:i}=M();return r.createElement("div",{className:"navbar-sidebar"},t,r.createElement("div",{className:(0,o.Z)("navbar-sidebar__items",{"navbar-sidebar__items--show-secondary":i})},r.createElement("div",{className:"navbar-sidebar__item menu"},n),r.createElement("div",{className:"navbar-sidebar__item menu"},a)))}var $=n(9200),U=n(51048);function z(e){return r.createElement("svg",(0,s.Z)({viewBox:"0 0 24 24",width:24,height:24},e),r.createElement("path",{fill:"currentColor",d:"M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"}))}function H(e){return r.createElement("svg",(0,s.Z)({viewBox:"0 0 24 24",width:24,height:24},e),r.createElement("path",{fill:"currentColor",d:"M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"}))}const V={toggle:"toggle_vylO",toggleButton:"toggleButton_gllP",darkToggleIcon:"darkToggleIcon_wfgR",lightToggleIcon:"lightToggleIcon_pyhR",toggleButtonDisabled:"toggleButtonDisabled_aARS"};function Z(e){let{className:t,buttonClassName:n,value:a,onChange:i}=e;const s=(0,U.Z)(),c=(0,d.I)({message:"Switch between dark and light mode (currently {mode})",id:"theme.colorToggle.ariaLabel",description:"The ARIA label for the navbar color mode toggle"},{mode:"dark"===a?(0,d.I)({message:"dark mode",id:"theme.colorToggle.ariaLabel.mode.dark",description:"The name for the dark color mode"}):(0,d.I)({message:"light mode",id:"theme.colorToggle.ariaLabel.mode.light",description:"The name for the light color mode"})});return r.createElement("div",{className:(0,o.Z)(V.toggle,t)},r.createElement("button",{className:(0,o.Z)("clean-btn",V.toggleButton,!s&&V.toggleButtonDisabled,n),type:"button",onClick:()=>i("dark"===a?"light":"dark"),disabled:!s,title:c,"aria-label":c,"aria-live":"polite"},r.createElement(z,{className:(0,o.Z)(V.toggleIcon,V.lightToggleIcon)}),r.createElement(H,{className:(0,o.Z)(V.toggleIcon,V.darkToggleIcon)})))}const Q=r.memo(Z),W="darkNavbarColorModeToggle_X3D1";function G(e){let{className:t}=e;const n=(0,_.L)().navbar.style,o=(0,_.L)().colorMode.disableSwitch,{colorMode:a,setColorMode:i}=(0,$.I)();return o?null:r.createElement(Q,{className:t,buttonClassName:"dark"===n?W:void 0,value:a,onChange:i})}var K=n(96811);function Y(){return r.createElement(K.Z,{className:"navbar__brand",imageClassName:"navbar__logo",titleClassName:"navbar__title text--truncate"})}function X(){const e=(0,A.e)();return r.createElement("button",{type:"button","aria-label":(0,d.I)({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()},r.createElement(S,{color:"var(--ifm-color-emphasis-600)"}))}function J(){return r.createElement("div",{className:"navbar-sidebar__brand"},r.createElement(Y,null),r.createElement(G,{className:"margin-right--md"}),r.createElement(X,null))}var ee=n(83699),te=n(79524),ne=n(2735);function re(e,t){return void 0!==e&&void 0!==t&&new RegExp(e,"gi").test(t)}var oe=n(14082);function ae(e){let{activeBasePath:t,activeBaseRegex:n,to:o,href:a,label:i,html:c,isDropdownLink:d,prependBaseUrlToHref:l,...u}=e;const p=(0,te.Z)(o),v=(0,te.Z)(t),f=(0,te.Z)(a,{forcePrependBaseUrl:!0}),b=i&&a&&!(0,ne.Z)(a),h=c?{dangerouslySetInnerHTML:{__html:c}}:{children:r.createElement(r.Fragment,null,i,b&&r.createElement(oe.Z,d&&{width:12,height:12}))};return a?r.createElement(ee.Z,(0,s.Z)({href:l?f:a},u,h)):r.createElement(ee.Z,(0,s.Z)({to:p,isNavLink:!0},(t||n)&&{isActive:(e,t)=>n?re(n,t.pathname):t.pathname.startsWith(v)},u,h))}function ie(e){let{className:t,isDropdownItem:n=!1,...a}=e;const i=r.createElement(ae,(0,s.Z)({className:(0,o.Z)(n?"dropdown__link":"navbar__item navbar__link",t),isDropdownLink:n},a));return n?r.createElement("li",null,i):i}function se(e){let{className:t,isDropdownItem:n,...a}=e;return r.createElement("li",{className:"menu__list-item"},r.createElement(ae,(0,s.Z)({className:(0,o.Z)("menu__link",t)},a)))}function ce(e){let{mobile:t=!1,position:n,...o}=e;const a=t?se:ie;return r.createElement(a,(0,s.Z)({},o,{activeClassName:o.activeClassName??(t?"menu__link--active":"navbar__link--active")}))}var de=n(54639),le=n(69003),ue=n(39962);function pe(e,t){return e.some((e=>function(e,t){return!!(0,le.Mg)(e.to,t)||!!re(e.activeBaseRegex,t)||!(!e.activeBasePath||!t.startsWith(e.activeBasePath))}(e,t)))}function ve(e){let{items:t,position:n,className:a,onClick:i,...c}=e;const d=(0,r.useRef)(null),[l,u]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{const e=e=>{d.current&&!d.current.contains(e.target)&&u(!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)}}),[d]),r.createElement("div",{ref:d,className:(0,o.Z)("navbar__item","dropdown","dropdown--hoverable",{"dropdown--right":"right"===n,"dropdown--show":l})},r.createElement(ae,(0,s.Z)({"aria-haspopup":"true","aria-expanded":l,role:"button",href:c.to?void 0:"#",className:(0,o.Z)("navbar__link",a)},c,{onClick:c.to?void 0:e=>e.preventDefault(),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),u(!l))}}),c.children??c.label),r.createElement("ul",{className:"dropdown__menu"},t.map(((e,t)=>r.createElement(Oo,(0,s.Z)({isDropdownItem:!0,activeClassName:"dropdown__link--active"},e,{key:t}))))))}function fe(e){let{items:t,className:n,position:a,onClick:i,...d}=e;const l=function(){const{siteConfig:{baseUrl:e}}=(0,ue.Z)(),{pathname:t}=(0,c.TH)();return t.replace(e,"/")}(),u=pe(t,l),{collapsed:p,toggleCollapsed:v,setCollapsed:f}=(0,de.u)({initialState:()=>!u});return(0,r.useEffect)((()=>{u&&f(!u)}),[l,u,f]),r.createElement("li",{className:(0,o.Z)("menu__list-item",{"menu__list-item--collapsed":p})},r.createElement(ae,(0,s.Z)({role:"button",className:(0,o.Z)("menu__link menu__link--sublist menu__link--sublist-caret",n)},d,{onClick:e=>{e.preventDefault(),v()}}),d.children??d.label),r.createElement(de.z,{lazy:!0,as:"ul",className:"menu__list",collapsed:p},t.map(((e,t)=>r.createElement(Oo,(0,s.Z)({mobile:!0,isDropdownItem:!0,onClick:i,activeClassName:"menu__link--active"},e,{key:t}))))))}function be(e){let{mobile:t=!1,...n}=e;const o=t?fe:ve;return r.createElement(o,n)}var he=n(40626);function me(e){let{width:t=20,height:n=20,...o}=e;return r.createElement("svg",(0,s.Z)({viewBox:"0 0 24 24",width:t,height:n,"aria-hidden":!0},o),r.createElement("path",{fill:"currentColor",d:"M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"}))}const ge="iconLanguage_nlXk";var ye=n(73935);function _e(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function ke(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Se(e,t,n){var r,o=t.initialState;return{getState:function(){return o},dispatch:function(r,a){var i=function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n0},reshape:function(e){return e.sources}},e),{},{id:null!==(n=e.id)&&void 0!==n?n:Pe(),plugins:o,initialState:je({activeItemId:null,query:"",completion:null,collections:[],isOpen:!1,status:"idle",context:{}},e.initialState),onStateChange:function(t){var n;null===(n=e.onStateChange)||void 0===n||n.call(e,t),o.forEach((function(e){var n;return null===(n=e.onStateChange)||void 0===n?void 0:n.call(e,t)}))},onSubmit:function(t){var n;null===(n=e.onSubmit)||void 0===n||n.call(e,t),o.forEach((function(e){var n;return null===(n=e.onSubmit)||void 0===n?void 0:n.call(e,t)}))},onReset:function(t){var n;null===(n=e.onReset)||void 0===n||n.call(e,t),o.forEach((function(e){var n;return null===(n=e.onReset)||void 0===n?void 0:n.call(e,t)}))},getSources:function(n){return Promise.all([].concat(Ne(o.map((function(e){return e.getSources}))),[e.getSources]).filter(Boolean).map((function(e){return function(e,t){var n=[];return Promise.resolve(e(t)).then((function(e){return Array.isArray(e),Promise.all(e.filter((function(e){return Boolean(e)})).map((function(e){if(e.sourceId,n.includes(e.sourceId))throw new Error("[Autocomplete] The `sourceId` ".concat(JSON.stringify(e.sourceId)," is not unique."));n.push(e.sourceId);var t={getItemInputValue:function(e){return e.state.query},getItemUrl:function(){},onSelect:function(e){(0,e.setIsOpen)(!1)},onActive:Ie,onResolve:Ie};Object.keys(t).forEach((function(e){t[e].__default=!0}));var r=Ae(Ae({},t),e);return Promise.resolve(r)})))}))}(e,n)}))).then((function(e){return we(e)})).then((function(e){return e.map((function(e){return je(je({},e),{},{onSelect:function(n){e.onSelect(n),t.forEach((function(e){var t;return null===(t=e.onSelect)||void 0===t?void 0:t.call(e,n)}))},onActive:function(n){e.onActive(n),t.forEach((function(e){var t;return null===(t=e.onActive)||void 0===t?void 0:t.call(e,n)}))},onResolve:function(n){e.onResolve(n),t.forEach((function(e){var t;return null===(t=e.onResolve)||void 0===t?void 0:t.call(e,n)}))}})}))}))},navigator:je({navigate:function(e){var t=e.itemUrl;r.location.assign(t)},navigateNewTab:function(e){var t=e.itemUrl,n=r.open(t,"_blank","noopener");null==n||n.focus()},navigateNewWindow:function(e){var t=e.itemUrl;r.open(t,"_blank","noopener")}},e.navigator)})}function Be(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function $e(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var ut,pt,vt,ft=null,bt=(ut=-1,pt=-1,vt=void 0,function(e){var t=++ut;return Promise.resolve(e).then((function(e){return vt&&t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var St=/((gt|sm)-|galaxy nexus)|samsung[- ]/i;var wt=["props","refresh","store"],xt=["inputElement","formElement","panelElement"],Et=["inputElement"],qt=["inputElement","maxLength"],Ot=["sourceIndex"],Ct=["sourceIndex"],Pt=["item","source","sourceIndex"];function It(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Tt(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function Nt(e){var t=e.props,n=e.refresh,r=e.store,o=Lt(e,wt),a=function(e,t){return void 0!==t?"".concat(e,"-").concat(t):e};return{getEnvironmentProps:function(e){var n=e.inputElement,o=e.formElement,a=e.panelElement;function i(e){!r.getState().isOpen&&r.pendingRequests.isEmpty()||e.target===n||!1===[o,a].some((function(t){return n=t,r=e.target,n===r||n.contains(r);var n,r}))&&(r.dispatch("blur",null),t.debug||r.pendingRequests.cancelAll())}return Tt({onTouchStart:i,onMouseDown:i,onTouchMove:function(e){!1!==r.getState().isOpen&&n===t.environment.document.activeElement&&e.target!==n&&n.blur()}},Lt(e,xt))},getRootProps:function(e){return Tt({role:"combobox","aria-expanded":r.getState().isOpen,"aria-haspopup":"listbox","aria-owns":r.getState().isOpen?"".concat(t.id,"-list"):void 0,"aria-labelledby":"".concat(t.id,"-label")},e)},getFormProps:function(e){e.inputElement;return Tt({action:"",noValidate:!0,role:"search",onSubmit:function(a){var i;a.preventDefault(),t.onSubmit(Tt({event:a,refresh:n,state:r.getState()},o)),r.dispatch("submit",null),null===(i=e.inputElement)||void 0===i||i.blur()},onReset:function(a){var i;a.preventDefault(),t.onReset(Tt({event:a,refresh:n,state:r.getState()},o)),r.dispatch("reset",null),null===(i=e.inputElement)||void 0===i||i.focus()}},Lt(e,Et))},getLabelProps:function(e){var n=e||{},r=n.sourceIndex,o=Lt(n,Ot);return Tt({htmlFor:"".concat(a(t.id,r),"-input"),id:"".concat(a(t.id,r),"-label")},o)},getInputProps:function(e){var a;function i(e){(t.openOnFocus||Boolean(r.getState().query))&&ht(Tt({event:e,props:t,query:r.getState().completion||r.getState().query,refresh:n,store:r},o)),r.dispatch("focus",null)}var s=e||{},c=(s.inputElement,s.maxLength),d=void 0===c?512:c,l=Lt(s,qt),u=at(r.getState()),p=function(e){return Boolean(e&&e.match(St))}((null===(a=t.environment.navigator)||void 0===a?void 0:a.userAgent)||""),v=null!=u&&u.itemUrl&&!p?"go":"search";return Tt({"aria-autocomplete":"both","aria-activedescendant":r.getState().isOpen&&null!==r.getState().activeItemId?"".concat(t.id,"-item-").concat(r.getState().activeItemId):void 0,"aria-controls":r.getState().isOpen?"".concat(t.id,"-list"):void 0,"aria-labelledby":"".concat(t.id,"-label"),value:r.getState().completion||r.getState().query,id:"".concat(t.id,"-input"),autoComplete:"off",autoCorrect:"off",autoCapitalize:"off",enterKeyHint:v,spellCheck:"false",autoFocus:t.autoFocus,placeholder:t.placeholder,maxLength:d,type:"search",onChange:function(e){ht(Tt({event:e,props:t,query:e.currentTarget.value.slice(0,d),refresh:n,store:r},o))},onKeyDown:function(e){!function(e){var t=e.event,n=e.props,r=e.refresh,o=e.store,a=kt(e,mt);if("ArrowUp"===t.key||"ArrowDown"===t.key){var i=function(){var e=n.environment.document.getElementById("".concat(n.id,"-item-").concat(o.getState().activeItemId));e&&(e.scrollIntoViewIfNeeded?e.scrollIntoViewIfNeeded(!1):e.scrollIntoView(!1))},s=function(){var e=at(o.getState());if(null!==o.getState().activeItemId&&e){var n=e.item,i=e.itemInputValue,s=e.itemUrl,c=e.source;c.onActive(yt({event:t,item:n,itemInputValue:i,itemUrl:s,refresh:r,source:c,state:o.getState()},a))}};t.preventDefault(),!1===o.getState().isOpen&&(n.openOnFocus||Boolean(o.getState().query))?ht(yt({event:t,props:n,query:o.getState().query,refresh:r,store:o},a)).then((function(){o.dispatch(t.key,{nextActiveItemId:n.defaultActiveItemId}),s(),setTimeout(i,0)})):(o.dispatch(t.key,{}),s(),i())}else if("Escape"===t.key)t.preventDefault(),o.dispatch(t.key,null),o.pendingRequests.cancelAll();else if("Tab"===t.key)o.dispatch("blur",null),o.pendingRequests.cancelAll();else if("Enter"===t.key){if(null===o.getState().activeItemId||o.getState().collections.every((function(e){return 0===e.items.length})))return void(n.debug||o.pendingRequests.cancelAll());t.preventDefault();var c=at(o.getState()),d=c.item,l=c.itemInputValue,u=c.itemUrl,p=c.source;if(t.metaKey||t.ctrlKey)void 0!==u&&(p.onSelect(yt({event:t,item:d,itemInputValue:l,itemUrl:u,refresh:r,source:p,state:o.getState()},a)),n.navigator.navigateNewTab({itemUrl:u,item:d,state:o.getState()}));else if(t.shiftKey)void 0!==u&&(p.onSelect(yt({event:t,item:d,itemInputValue:l,itemUrl:u,refresh:r,source:p,state:o.getState()},a)),n.navigator.navigateNewWindow({itemUrl:u,item:d,state:o.getState()}));else if(t.altKey);else{if(void 0!==u)return p.onSelect(yt({event:t,item:d,itemInputValue:l,itemUrl:u,refresh:r,source:p,state:o.getState()},a)),void n.navigator.navigate({itemUrl:u,item:d,state:o.getState()});ht(yt({event:t,nextState:{isOpen:!1},props:n,query:l,refresh:r,store:o},a)).then((function(){p.onSelect(yt({event:t,item:d,itemInputValue:l,itemUrl:u,refresh:r,source:p,state:o.getState()},a))}))}}}(Tt({event:e,props:t,refresh:n,store:r},o))},onFocus:i,onBlur:Ie,onClick:function(n){e.inputElement!==t.environment.document.activeElement||r.getState().isOpen||i(n)}},l)},getPanelProps:function(e){return Tt({onMouseDown:function(e){e.preventDefault()},onMouseLeave:function(){r.dispatch("mouseleave",null)}},e)},getListProps:function(e){var n=e||{},r=n.sourceIndex,o=Lt(n,Ct);return Tt({role:"listbox","aria-labelledby":"".concat(a(t.id,r),"-label"),id:"".concat(a(t.id,r),"-list")},o)},getItemProps:function(e){var i=e.item,s=e.source,c=e.sourceIndex,d=Lt(e,Pt);return Tt({id:"".concat(a(t.id,c),"-item-").concat(i.__autocomplete_id),role:"option","aria-selected":r.getState().activeItemId===i.__autocomplete_id,onMouseMove:function(e){if(i.__autocomplete_id!==r.getState().activeItemId){r.dispatch("mousemove",i.__autocomplete_id);var t=at(r.getState());if(null!==r.getState().activeItemId&&t){var a=t.item,s=t.itemInputValue,c=t.itemUrl,d=t.source;d.onActive(Tt({event:e,item:a,itemInputValue:s,itemUrl:c,refresh:n,source:d,state:r.getState()},o))}}},onMouseDown:function(e){e.preventDefault()},onClick:function(e){var a=s.getItemInputValue({item:i,state:r.getState()}),c=s.getItemUrl({item:i,state:r.getState()});(c?Promise.resolve():ht(Tt({event:e,nextState:{isOpen:!1},props:t,query:a,refresh:n,store:r},o))).then((function(){s.onSelect(Tt({event:e,item:i,itemInputValue:a,itemUrl:c,refresh:n,source:s,state:r.getState()},o))}))}},d)}}}var Rt="1.8.2",Dt=[{segment:"autocomplete-core",version:Rt}];function jt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Ft(e){for(var t=1;t=n?null===r?null:0:o}function zt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Ht(e){for(var t=1;t=5&&((o||!e&&5===r)&&(i.push(r,0,o,n),r=6),e&&(i.push(r,e,0,n),r=6)),o=""},c=0;c"===t?(r=1,o=""):o=t+o[0]:a?t===a?a="":o+=t:'"'===t||"'"===t?a=t:">"===t?(s(),r=1):r&&("="===t?(r=5,n=o,o=""):"/"===t&&(r<5||">"===e[c][d+1])?(s(),3===r&&(i=i[0]),r=i,(i=i[0]).push(2,0,r),r=0):" "===t||"\t"===t||"\n"===t||"\r"===t?(s(),r=2):o+=t),3===r&&"!--"===o&&(r=4,i=i[0])}return s(),i}(e)),t),arguments,[])).length>1?t:t[0]}var nn=function(e){var t=e.environment,n=t.document.createElementNS("http://www.w3.org/2000/svg","svg");n.setAttribute("class","aa-SubmitIcon"),n.setAttribute("viewBox","0 0 24 24"),n.setAttribute("width","20"),n.setAttribute("height","20"),n.setAttribute("fill","currentColor");var r=t.document.createElementNS("http://www.w3.org/2000/svg","path");return r.setAttribute("d","M16.041 15.856c-0.034 0.026-0.067 0.055-0.099 0.087s-0.060 0.064-0.087 0.099c-1.258 1.213-2.969 1.958-4.855 1.958-1.933 0-3.682-0.782-4.95-2.050s-2.050-3.017-2.050-4.95 0.782-3.682 2.050-4.95 3.017-2.050 4.95-2.050 3.682 0.782 4.95 2.050 2.050 3.017 2.050 4.95c0 1.886-0.745 3.597-1.959 4.856zM21.707 20.293l-3.675-3.675c1.231-1.54 1.968-3.493 1.968-5.618 0-2.485-1.008-4.736-2.636-6.364s-3.879-2.636-6.364-2.636-4.736 1.008-6.364 2.636-2.636 3.879-2.636 6.364 1.008 4.736 2.636 6.364 3.879 2.636 6.364 2.636c2.125 0 4.078-0.737 5.618-1.968l3.675 3.675c0.391 0.391 1.024 0.391 1.414 0s0.391-1.024 0-1.414z"),n.appendChild(r),n},rn=function(e){var t=e.environment,n=t.document.createElementNS("http://www.w3.org/2000/svg","svg");n.setAttribute("class","aa-ClearIcon"),n.setAttribute("viewBox","0 0 24 24"),n.setAttribute("width","18"),n.setAttribute("height","18"),n.setAttribute("fill","currentColor");var r=t.document.createElementNS("http://www.w3.org/2000/svg","path");return r.setAttribute("d","M5.293 6.707l5.293 5.293-5.293 5.293c-0.391 0.391-0.391 1.024 0 1.414s1.024 0.391 1.414 0l5.293-5.293 5.293 5.293c0.391 0.391 1.024 0.391 1.414 0s0.391-1.024 0-1.414l-5.293-5.293 5.293-5.293c0.391-0.391 0.391-1.024 0-1.414s-1.024-0.391-1.414 0l-5.293 5.293-5.293-5.293c-0.391-0.391-1.024-0.391-1.414 0s-0.391 1.024 0 1.414z"),n.appendChild(r),n},on=function(e){var t=e.environment.document.createElementNS("http://www.w3.org/2000/svg","svg");return t.setAttribute("class","aa-LoadingIcon"),t.setAttribute("viewBox","0 0 100 100"),t.setAttribute("width","20"),t.setAttribute("height","20"),t.innerHTML='\n \n',t},an=["ontouchstart","ontouchend","ontouchmove","ontouchcancel"];function sn(e,t,n){e[t]=null===n?"":"number"!=typeof n?n:n+"px"}function cn(e){this._listeners[e.type](e)}function dn(e,t,n){var r,o,a=e[t];if("style"===t)if("string"==typeof n)e.style=n;else if(null===n)e.style="";else for(t in n)a&&n[t]===a[t]||sn(e.style,t,n[t]);else"o"===t[0]&&"n"===t[1]?(r=t!==(t=t.replace(/Capture$/,"")),((o=t.toLowerCase())in e||an.includes(o))&&(t=o),t=t.slice(2),e._listeners||(e._listeners={}),e._listeners[t]=n,n?a||e.addEventListener(t,cn,r):e.removeEventListener(t,cn,r)):"list"!==t&&"tagName"!==t&&"form"!==t&&"type"!==t&&"size"!==t&&"download"!==t&&"href"!==t&&t in e?e[t]=null==n?"":n:"function"!=typeof n&&"dangerouslySetInnerHTML"!==t&&(null==n||!1===n&&!/^ar/.test(t)?e.removeAttribute(t):e.setAttribute(t,n))}function ln(e){return"onChange"===e?"onInput":e}function un(e,t){for(var n in t)dn(e,ln(n),t[n])}function pn(e,t){for(var n in t)"o"===n[0]&&"n"===n[1]||dn(e,ln(n),t[n])}var vn=["children"];function fn(e){return function(e){if(Array.isArray(e))return bn(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return bn(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return bn(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function bn(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function mn(e){return function(t,n){var r=n.children,o=void 0===r?[]:r,a=hn(n,vn),i=e.document.createElement(t);return un(i,a),i.append.apply(i,fn(o)),i}}var gn=["autocompleteScopeApi","environment","classNames","getInputProps","getInputPropsCore","isDetached","state"];function yn(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function _n(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function wn(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function xn(e){for(var t=1;t2&&(i.children=arguments.length>3?On.call(arguments,2):n),"function"==typeof e&&null!=e.defaultProps)for(a in e.defaultProps)void 0===i[a]&&(i[a]=e.defaultProps[a]);return Mn(e,i,r,o,null)}function Mn(e,t,n,r,o){var a={type:e,props:t,key:n,ref:r,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,__h:null,constructor:void 0,__v:null==o?++Pn:o};return null==o&&null!=Cn.vnode&&Cn.vnode(a),a}function Bn(e){return e.children}function $n(e,t){this.props=e,this.context=t}function Un(e,t){if(null==t)return e.__?Un(e.__,e.__.__k.indexOf(e)+1):null;for(var n;tt&&In.sort((function(e,t){return e.__v.__b-t.__v.__b})));Vn.__r=0}function Zn(e,t,n,r,o,a,i,s,c,d){var l,u,p,v,f,b,h,m=r&&r.__k||Nn,g=m.length;for(n.__k=[],l=0;l0?Mn(v.type,v.props,v.key,v.ref?v.ref:null,v.__v):v)){if(v.__=n,v.__b=n.__b+1,null===(p=m[l])||p&&v.key==p.key&&v.type===p.type)m[l]=void 0;else for(u=0;u=0;t--)if((n=e.__k[t])&&(r=Gn(n)))return r;return null}function Kn(e,t,n){"-"===t[0]?e.setProperty(t,null==n?"":n):e[t]=null==n?"":"number"!=typeof n||Rn.test(t)?n:n+"px"}function Yn(e,t,n,r,o){var a;e:if("style"===t)if("string"==typeof n)e.style.cssText=n;else{if("string"==typeof r&&(e.style.cssText=r=""),r)for(t in r)n&&t in n||Kn(e.style,t,"");if(n)for(t in n)r&&n[t]===r[t]||Kn(e.style,t,n[t])}else if("o"===t[0]&&"n"===t[1])a=t!==(t=t.replace(/Capture$/,"")),t=t.toLowerCase()in e?t.toLowerCase().slice(2):t.slice(2),e.l||(e.l={}),e.l[t+a]=n,n?r||e.addEventListener(t,a?Jn:Xn,a):e.removeEventListener(t,a?Jn:Xn,a);else if("dangerouslySetInnerHTML"!==t){if(o)t=t.replace(/xlink(H|:h)/,"h").replace(/sName$/,"s");else if("width"!==t&&"height"!==t&&"href"!==t&&"list"!==t&&"form"!==t&&"tabIndex"!==t&&"download"!==t&&t in e)try{e[t]=null==n?"":n;break e}catch(e){}"function"==typeof n||(null==n||!1===n&&-1==t.indexOf("-")?e.removeAttribute(t):e.setAttribute(t,n))}}function Xn(e){return this.l[e.type+!1](Cn.event?Cn.event(e):e)}function Jn(e){return this.l[e.type+!0](Cn.event?Cn.event(e):e)}function er(e,t,n,r,o,a,i,s,c){var d,l,u,p,v,f,b,h,m,g,y,_,k,S,w,x=t.type;if(void 0!==t.constructor)return null;null!=n.__h&&(c=n.__h,s=t.__e=n.__e,t.__h=null,a=[s]),(d=Cn.__b)&&d(t);try{e:if("function"==typeof x){if(h=t.props,m=(d=x.contextType)&&r[d.__c],g=d?m?m.props.value:d.__:r,n.__c?b=(l=t.__c=n.__c).__=l.__E:("prototype"in x&&x.prototype.render?t.__c=l=new x(h,g):(t.__c=l=new $n(h,g),l.constructor=x,l.render=ar),m&&m.sub(l),l.props=h,l.state||(l.state={}),l.context=g,l.__n=r,u=l.__d=!0,l.__h=[],l._sb=[]),null==l.__s&&(l.__s=l.state),null!=x.getDerivedStateFromProps&&(l.__s==l.state&&(l.__s=Dn({},l.__s)),Dn(l.__s,x.getDerivedStateFromProps(h,l.__s))),p=l.props,v=l.state,l.__v=t,u)null==x.getDerivedStateFromProps&&null!=l.componentWillMount&&l.componentWillMount(),null!=l.componentDidMount&&l.__h.push(l.componentDidMount);else{if(null==x.getDerivedStateFromProps&&h!==p&&null!=l.componentWillReceiveProps&&l.componentWillReceiveProps(h,g),!l.__e&&null!=l.shouldComponentUpdate&&!1===l.shouldComponentUpdate(h,l.__s,g)||t.__v===n.__v){for(t.__v!==n.__v&&(l.props=h,l.state=l.__s,l.__d=!1),l.__e=!1,t.__e=n.__e,t.__k=n.__k,t.__k.forEach((function(e){e&&(e.__=t)})),y=0;y0&&void 0!==arguments[0]?arguments[0]:[],t=e;return{get:function(){return t},add:function(e){var n=t[t.length-1];(null==n?void 0:n.isHighlighted)===e.isHighlighted?t[t.length-1]={value:n.value+e.value,isHighlighted:n.isHighlighted}:t.push(e)}}}(n?[{value:n,isHighlighted:!1}]:[]);return t.forEach((function(e){var t=e.split("__/aa-highlight__");r.add({value:t[0],isHighlighted:!0}),""!==t[1]&&r.add({value:t[1],isHighlighted:!1})})),r.get()}function dr(e){return function(e){if(Array.isArray(e))return lr(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return lr(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return lr(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function lr(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n",""":'"',"'":"'"},fr=new RegExp(/\w/i),br=/&(amp|quot|lt|gt|#39);/g,hr=RegExp(br.source);function mr(e,t){var n,r,o,a=e[t],i=(null===(n=e[t+1])||void 0===n?void 0:n.isHighlighted)||!0,s=(null===(r=e[t-1])||void 0===r?void 0:r.isHighlighted)||!0;return fr.test((o=a.value)&&hr.test(o)?o.replace(br,(function(e){return vr[e]})):o)||s!==i?a.isHighlighted:s}function gr(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function yr(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var Rr={clearButton:"aa-ClearButton",detachedCancelButton:"aa-DetachedCancelButton",detachedContainer:"aa-DetachedContainer",detachedFormContainer:"aa-DetachedFormContainer",detachedOverlay:"aa-DetachedOverlay",detachedSearchButton:"aa-DetachedSearchButton",detachedSearchButtonIcon:"aa-DetachedSearchButtonIcon",detachedSearchButtonPlaceholder:"aa-DetachedSearchButtonPlaceholder",form:"aa-Form",input:"aa-Input",inputWrapper:"aa-InputWrapper",inputWrapperPrefix:"aa-InputWrapperPrefix",inputWrapperSuffix:"aa-InputWrapperSuffix",item:"aa-Item",label:"aa-Label",list:"aa-List",loadingIndicator:"aa-LoadingIndicator",panel:"aa-Panel",panelLayout:"aa-PanelLayout aa-Panel--scrollable",root:"aa-Autocomplete",source:"aa-Source",sourceFooter:"aa-SourceFooter",sourceHeader:"aa-SourceHeader",sourceNoResults:"aa-SourceNoResults",submitButton:"aa-SubmitButton"},Dr=function(e,t){var n=e.children;(0,e.render)(n,t)},jr={createElement:Fn,Fragment:Bn,render:ir};function Fr(e){var t=e.panelPlacement,n=e.container,r=e.form,o=e.environment,a=n.getBoundingClientRect(),i=(o.pageYOffset||o.document.documentElement.scrollTop||o.document.body.scrollTop||0)+a.top+a.height;switch(t){case"start":return{top:i,left:a.left};case"end":return{top:i,right:o.document.documentElement.clientWidth-(a.left+a.width)};case"full-width":return{top:i,left:0,right:0,width:"unset",maxWidth:"unset"};case"input-wrapper-width":var s=r.getBoundingClientRect();return{top:i,left:s.left,right:o.document.documentElement.clientWidth-(s.left+s.width),width:"unset",maxWidth:"unset"};default:throw new Error("[Autocomplete] The `panelPlacement` value ".concat(JSON.stringify(t)," is not valid."))}}function Mr(){return Mr=Object.assign||function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);ne.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function ro(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function oo(e){for(var t=1;t0;if(!p.value.core.openOnFocus&&!t.query)return n;var r=Boolean(d.current||p.value.renderer.renderNoResults);return!n&&r||n},__autocomplete_metadata:{userAgents:zr,options:e}}))})),b=Yt(oo({collections:[],completion:null,context:{},isOpen:!1,query:"",activeItemId:null,status:"idle"},p.value.core.initialState)),h={getEnvironmentProps:p.value.renderer.getEnvironmentProps,getFormProps:p.value.renderer.getFormProps,getInputProps:p.value.renderer.getInputProps,getItemProps:p.value.renderer.getItemProps,getLabelProps:p.value.renderer.getLabelProps,getListProps:p.value.renderer.getListProps,getPanelProps:p.value.renderer.getPanelProps,getRootProps:p.value.renderer.getRootProps},m={setActiveItemId:f.value.setActiveItemId,setQuery:f.value.setQuery,setCollections:f.value.setCollections,setIsOpen:f.value.setIsOpen,setStatus:f.value.setStatus,setContext:f.value.setContext,refresh:f.value.refresh,navigator:f.value.navigator},g=s((function(){return tn.bind(p.value.renderer.renderer.createElement)})),y=s((function(){return qn({autocomplete:f.value,autocompleteScopeApi:m,classNames:p.value.renderer.classNames,environment:p.value.core.environment,isDetached:v.value,placeholder:p.value.core.placeholder,propGetters:h,setIsModalOpen:w,state:b.current,translations:p.value.renderer.translations})}));function _(){un(y.value.panel,{style:v.value?{}:Fr({panelPlacement:p.value.renderer.panelPlacement,container:y.value.root,form:y.value.form,environment:p.value.core.environment})})}function k(e){b.current=e;var t={autocomplete:f.value,autocompleteScopeApi:m,classNames:p.value.renderer.classNames,components:p.value.renderer.components,container:p.value.renderer.container,html:g.value,dom:y.value,panelContainer:v.value?y.value.detachedContainer:p.value.renderer.panelContainer,propGetters:h,state:b.current,renderer:p.value.renderer.renderer},n=!Oe(e)&&!d.current&&p.value.renderer.renderNoResults||p.value.renderer.render;!function(e){var t=e.autocomplete,n=e.autocompleteScopeApi,r=e.dom,o=e.propGetters,a=e.state;pn(r.root,o.getRootProps($r({state:a,props:t.getRootProps({})},n))),pn(r.input,o.getInputProps($r({state:a,props:t.getInputProps({inputElement:r.input}),inputElement:r.input},n))),un(r.label,{hidden:"stalled"===a.status}),un(r.loadingIndicator,{hidden:"stalled"!==a.status}),un(r.clearButton,{hidden:!a.query})}(t),function(e,t){var n=t.autocomplete,r=t.autocompleteScopeApi,o=t.classNames,a=t.html,i=t.dom,s=t.panelContainer,c=t.propGetters,d=t.state,l=t.components,u=t.renderer;if(d.isOpen){s.contains(i.panel)||"loading"===d.status||s.appendChild(i.panel),i.panel.classList.toggle("aa-Panel--stalled","stalled"===d.status);var p=d.collections.filter((function(e){var t=e.source,n=e.items;return t.templates.noResults||n.length>0})).map((function(e,t){var i=e.source,s=e.items;return u.createElement("section",{key:t,className:o.source,"data-autocomplete-source-id":i.sourceId},i.templates.header&&u.createElement("div",{className:o.sourceHeader},i.templates.header({components:l,createElement:u.createElement,Fragment:u.Fragment,items:s,source:i,state:d,html:a})),i.templates.noResults&&0===s.length?u.createElement("div",{className:o.sourceNoResults},i.templates.noResults({components:l,createElement:u.createElement,Fragment:u.Fragment,source:i,state:d,html:a})):u.createElement("ul",Mr({className:o.list},c.getListProps($r({state:d,props:n.getListProps({sourceIndex:t})},r))),s.map((function(e){var s=n.getItemProps({item:e,source:i,sourceIndex:t});return u.createElement("li",Mr({key:s.id,className:o.item},c.getItemProps($r({state:d,props:s},r))),i.templates.item({components:l,createElement:u.createElement,Fragment:u.Fragment,item:e,state:d,html:a}))}))),i.templates.footer&&u.createElement("div",{className:o.sourceFooter},i.templates.footer({components:l,createElement:u.createElement,Fragment:u.Fragment,items:s,source:i,state:d,html:a})))})),v=u.createElement(u.Fragment,null,u.createElement("div",{className:o.panelLayout},p),u.createElement("div",{className:"aa-GradientBottom"})),f=p.reduce((function(e,t){return e[t.props["data-autocomplete-source-id"]]=t,e}),{});e($r($r({children:v,state:d,sections:p,elements:f},u),{},{components:l,html:a},r),i.panel)}else s.contains(i.panel)&&s.removeChild(i.panel)}(n,t)}function S(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};o();var t=p.value.renderer,n=t.components,r=no(t,to);l.current=Wr(r,p.value.core,{components:eo(n,(function(e){return!e.value.hasOwnProperty("__autocomplete_componentName")})),initialState:b.current},e),c(),a(),f.value.refresh().then((function(){k(b.current)}))}function w(e){requestAnimationFrame((function(){var t=p.value.core.environment.document.body.contains(y.value.detachedOverlay);e!==t&&(e?(p.value.core.environment.document.body.appendChild(y.value.detachedOverlay),p.value.core.environment.document.body.classList.add("aa-Detached"),y.value.input.focus()):(p.value.core.environment.document.body.removeChild(y.value.detachedOverlay),p.value.core.environment.document.body.classList.remove("aa-Detached"),f.value.setQuery(""),f.value.refresh()))}))}return r((function(){var e=f.value.getEnvironmentProps({formElement:y.value.form,panelElement:y.value.panel,inputElement:y.value.input});return un(p.value.core.environment,e),function(){un(p.value.core.environment,Object.keys(e).reduce((function(e,t){return oo(oo({},e),{},ao({},t,void 0))}),{}))}})),r((function(){var e=v.value?p.value.core.environment.document.body:p.value.renderer.panelContainer,t=v.value?y.value.detachedOverlay:y.value.panel;return v.value&&b.current.isOpen&&w(!0),k(b.current),function(){e.contains(t)&&e.removeChild(t)}})),r((function(){var e=p.value.renderer.container;return e.appendChild(y.value.root),function(){e.removeChild(y.value.root)}})),r((function(){var e=Xt((function(e){k(e.state)}),0);return u.current=function(t){var n=t.state,r=t.prevState;(v.value&&r.isOpen!==n.isOpen&&w(n.isOpen),v.value||!n.isOpen||r.isOpen||_(),n.query!==r.query)&&p.value.core.environment.document.querySelectorAll(".aa-Panel--scrollable").forEach((function(e){0!==e.scrollTop&&(e.scrollTop=0)}));e({state:n})},function(){u.current=void 0}})),r((function(){var e=Xt((function(){var e=v.value;v.value=p.value.core.environment.matchMedia(p.value.renderer.detachedMediaQuery).matches,e!==v.value?S({}):requestAnimationFrame(_)}),20);return p.value.core.environment.addEventListener("resize",e),function(){p.value.core.environment.removeEventListener("resize",e)}})),r((function(){if(!v.value)return function(){};function e(e){y.value.detachedContainer.classList.toggle("aa-DetachedContainer--modal",e)}function t(t){e(t.matches)}var n=p.value.core.environment.matchMedia(getComputedStyle(p.value.core.environment.document.documentElement).getPropertyValue("--aa-detached-modal-media-query"));e(n.matches);var r=Boolean(n.addEventListener);return r?n.addEventListener("change",t):n.addListener(t),function(){r?n.removeEventListener("change",t):n.removeListener(t)}})),r((function(){return requestAnimationFrame(_),function(){}})),oo(oo({},m),{},{update:S,destroy:function(){o()}})}var so=n(31514);const co=n(55351),lo=co;var uo=n(813),po=n.n(uo);function vo(){const e=(0,c.TH)(),t=(0,c.k6)(),{siteConfig:{baseUrl:n}}=(0,ue.Z)(),[o,a]=(0,r.useState)({terms:[],isDocsOrBlog:!1});return(0,r.useEffect)((()=>{if(!e.state?.cmfcmfhighlight||0===e.state.cmfcmfhighlight.terms.length)return;a(e.state.cmfcmfhighlight);const{cmfcmfhighlight:n,...r}=e.state;t.replace({...e,state:r})}),[e.state?.cmfcmfhighlight,t,e]),(0,r.useEffect)((()=>{if(0===o.terms.length)return;const e=o.isDocsOrBlog?document.getElementsByTagName("article")[0]:document.getElementsByTagName("main")[0];if(!e)return;const t=new(po())(e),n={ignoreJoiners:!0};return t.mark(o.terms,n),()=>t.unmark(n)}),[o,n]),null}var fo=n(31610),bo=n(60246);function ho(e){let{document:t}=e;const[n,r]=t.sectionRoute.split("#");let o=n;return r&&(o+="#"+r),o}const mo={documents:[],index:lo((function(){this.ref("id"),this.field("title"),this.field("content")}))};const go=()=>{const e=(0,U.Z)(),[t,n]=(0,r.useState)((()=>!!e&&"dark"===document.documentElement.getAttribute("data-theme")));(0,r.useEffect)((()=>{const e=new MutationObserver((()=>{n("dark"===document.documentElement.getAttribute("data-theme"))}));return e.observe(document.documentElement,{attributes:!0,attributeFilter:["data-theme"]}),()=>e.disconnect()}),[]);const{siteConfig:{baseUrl:o}}=(0,ue.Z)(),{titleBoost:a,contentBoost:i,tagsBoost:s,parentCategoriesBoost:l,indexDocSidebarParentCategories:u,maxSearchResults:p}=(0,fo.eZ)("@cmfcmf/docusaurus-search-local"),v=(0,c.k6)(),{tags:f}=(0,bo._q)(),b=(0,r.useRef)(f);(0,r.useEffect)((()=>{b.current=f}),[f]);const h=(0,r.useRef)({}),m=async e=>{const t=h.current[e];switch(t?.state){case"ready":return t;case void 0:{const t=[];h.current[e]={state:"loading",callbacks:t};const n=await async function(e,t){{let r;try{const n=await fetch(`${e}search-index-${t}.json`);if(!n.ok)return mo;r=await n.json()}catch(n){return mo}return{documents:r.documents,index:lo.Index.load(r.index)}}}(o,e);return t.forEach((e=>e(n))),h.current[e]={state:"ready",...n}}case"loading":return new Promise((e=>{t.callbacks.push(e)}))}},g=(0,d.I)({message:"cmfcmf/d-s-l.searchBar.placeholder",description:"Placeholder shown in the searchbar"}),y=(0,r.useRef)(null),_=(0,r.useRef)(null);return(0,r.useEffect)((()=>{if(y.current)return _.current=io({container:y.current,placeholder:g,renderer:{createElement:r.createElement,Fragment:r.Fragment,render:ye.render},navigator:{navigate(e){let{item:t,itemUrl:n}=e;v.push(n,{cmfcmfhighlight:{terms:t.terms,isDocsOrBlog:"docs"===t.document.type||"blog"===t.document.type}})}},detachedMediaQuery:"",defaultActiveItemId:0,translations:{clearButtonTitle:(0,d.I)({message:"cmfcmf/d-s-l.searchBar.clearButtonTitle",description:"Title of the button to clear the current search input"}),detachedCancelButtonText:(0,d.I)({message:"cmfcmf/d-s-l.searchBar.detachedCancelButtonText",description:"Text of the button to close the detached search window"}),submitButtonTitle:(0,d.I)({message:"cmfcmf/d-s-l.searchBar.submitButtonTitle",description:"Title of the button to submit a new search"})},getSources(e){let{query:t}=e;return[{sourceId:"search-results",templates:{item(e){let{item:t}=e;const n=ho(t);return r.createElement("a",{href:n,className:"aa-ItemLink",onClick:e=>{e.preventDefault(),v.push(n,{cmfcmfhighlight:{terms:t.terms,isDocsOrBlog:"docs"===t.document.type||"blog"===t.document.type}})}},r.createElement("div",{className:"aa-ItemContent"},r.createElement("div",{className:"aa-ItemContentBody"},r.createElement("div",{className:"aa-ItemContentTitle"},t.document.sectionTitle),t.document.pageTitle!==t.document.sectionTitle&&r.createElement("div",{className:"aa-ItemContentDescription"},t.document.pageTitle))),r.createElement("div",{className:"aa-ItemActions"},r.createElement("button",{className:"aa-ItemActionButton aa-DesktopOnly aa-ActiveOnly",type:"button",title:"Select"},r.createElement("svg",{viewBox:"0 0 24 24",width:"20",height:"20",fill:"currentColor"},r.createElement("path",{d:"M18.984 6.984h2.016v6h-15.188l3.609 3.609-1.406 1.406-6-6 6-6 1.406 1.406-3.609 3.609h13.172v-4.031z"})))))},noResults:()=>r.createElement("div",{className:"aa-ItemContent"},r.createElement("div",{className:"aa-ItemContentBody"},(0,d.I)({message:"cmfcmf/d-s-l.searchBar.noResults",description:"message shown if no results are found"})))},getItemUrl(e){let{item:t}=e;return ho(t)},async getItems(){const e=b.current,n=await Promise.all(e.map((e=>m(e)))),r=(e=>co.tokenizer(e).map((e=>e.str)))(t);return n.flatMap((e=>{let{index:t,documents:n}=e;return t.query((e=>{e.term(r,{fields:["title"],boost:a}),e.term(r,{fields:["title"],boost:a,wildcard:lo.Query.wildcard.TRAILING}),e.term(r,{fields:["content"],boost:i}),e.term(r,{fields:["content"],boost:i,wildcard:lo.Query.wildcard.TRAILING}),e.term(r,{fields:["tags"],boost:s}),e.term(r,{fields:["tags"],boost:s,wildcard:lo.Query.wildcard.TRAILING}),u&&(e.term(r,{fields:["sidebarParentCategories"],boost:l}),e.term(r,{fields:["sidebarParentCategories"],boost:l,wildcard:lo.Query.wildcard.TRAILING}))})).slice(0,p).map((e=>({document:n.find((t=>t.id.toString()===e.ref)),score:e.score,terms:r})))})).sort(((e,t)=>t.score-e.score)).slice(0,p)}}]}}),()=>_.current?.destroy()}),[p]),r.createElement(r.Fragment,null,r.createElement(so.Z,null,r.createElement("body",{"data-theme":t?"dark":"light"})),r.createElement(vo,null),r.createElement("div",{className:"dsla-search-wrapper"},r.createElement("div",{className:"dsla-search-field",ref:y,"data-tags":f.join(",")})))},yo="searchBox_ZlJk";function _o(e){let{children:t,className:n}=e;return r.createElement("div",{className:(0,o.Z)(n,yo)},t)}var ko=n(30868),So=n(78259);var wo=n(86409);const xo=e=>e.docs.find((t=>t.id===e.mainDocId));const Eo={default:ce,localeDropdown:function(e){let{mobile:t,dropdownItemsBefore:n,dropdownItemsAfter:o,...a}=e;const{i18n:{currentLocale:i,locales:l,localeConfigs:u}}=(0,ue.Z)(),p=(0,he.l)(),{search:v,hash:f}=(0,c.TH)(),b=[...n,...l.map((e=>{const n=`${`pathname://${p.createUrl({locale:e,fullyQualified:!1})}`}${v}${f}`;return{label:u[e].label,lang:u[e].htmlLang,to:n,target:"_self",autoAddBaseUrl:!1,className:e===i?t?"menu__link--active":"dropdown__link--active":""}})),...o],h=t?(0,d.I)({message:"Languages",id:"theme.navbar.mobileLanguageDropdown.label",description:"The label for the mobile language switcher dropdown"}):u[i].label;return r.createElement(be,(0,s.Z)({},a,{mobile:t,label:r.createElement(r.Fragment,null,r.createElement(me,{className:ge}),h),items:b}))},search:function(e){let{mobile:t,className:n}=e;return t?null:r.createElement(_o,{className:n},r.createElement(go,null))},dropdown:be,html:function(e){let{value:t,className:n,mobile:a=!1,isDropdownItem:i=!1}=e;const s=i?"li":"div";return r.createElement(s,{className:(0,o.Z)({navbar__item:!a&&!i,"menu__list-item":a},n),dangerouslySetInnerHTML:{__html:t}})},doc:function(e){let{docId:t,label:n,docsPluginId:o,...a}=e;const{activeDoc:i}=(0,ko.Iw)(o),c=(0,So.vY)(t,o);return null===c?null:r.createElement(ce,(0,s.Z)({exact:!0},a,{isActive:()=>i?.path===c.path||!!i?.sidebar&&i.sidebar===c.sidebar,label:n??c.id,to:c.path}))},docSidebar:function(e){let{sidebarId:t,label:n,docsPluginId:o,...a}=e;const{activeDoc:i}=(0,ko.Iw)(o),c=(0,So.oz)(t,o).link;if(!c)throw new Error(`DocSidebarNavbarItem: Sidebar with ID "${t}" doesn't have anything to be linked to.`);return r.createElement(ce,(0,s.Z)({exact:!0},a,{isActive:()=>i?.sidebar===t,label:n??c.label,to:c.path}))},docsVersion:function(e){let{label:t,to:n,docsPluginId:o,...a}=e;const i=(0,So.lO)(o)[0],c=t??i.label,d=n??(e=>e.docs.find((t=>t.id===e.mainDocId)))(i).path;return r.createElement(ce,(0,s.Z)({},a,{label:c,to:d}))},docsVersionDropdown:function(e){let{mobile:t,docsPluginId:n,dropdownActiveClassDisabled:o,dropdownItemsBefore:a,dropdownItemsAfter:i,...l}=e;const{search:u,hash:p}=(0,c.TH)(),v=(0,ko.Iw)(n),f=(0,ko.gB)(n),{savePreferredVersionName:b}=(0,wo.J)(n),h=f.map((e=>{const t=v.alternateDocVersions[e.name]??xo(e);return{label:e.label,to:`${t.path}${u}${p}`,isActive:()=>e===v.activeVersion,onClick:()=>b(e.name)}})),m=[...a,...h,...i],g=(0,So.lO)(n)[0],y=t&&m.length>1?(0,d.I)({id:"theme.navbar.mobileVersionsDropdown.label",message:"Versions",description:"The label for the navbar versions dropdown on mobile view"}):g.label,_=t&&m.length>1?void 0:xo(g).path;return m.length<=1?r.createElement(ce,(0,s.Z)({},l,{mobile:t,label:y,to:_,isActive:o?()=>!1:void 0})):r.createElement(be,(0,s.Z)({},l,{mobile:t,label:y,to:_,items:m,isActive:o?()=>!1:void 0}))}},qo=Eo;function Oo(e){let{type:t,...n}=e;const o=function(e,t){return e&&"default"!==e?e:"items"in t?"dropdown":"default"}(t,n),a=qo[o];if(!a)throw new Error(`No NavbarItem component found for type "${t}".`);return r.createElement(a,n)}function Co(){const e=(0,A.e)(),t=(0,_.L)().navbar.items;return r.createElement("ul",{className:"menu__list"},t.map(((t,n)=>r.createElement(Oo,(0,s.Z)({mobile:!0},t,{onClick:()=>e.toggle(),key:n})))))}function Po(e){return r.createElement("button",(0,s.Z)({},e,{type:"button",className:"clean-btn navbar-sidebar__back"}),r.createElement(d.Z,{id:"theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel",description:"The label of the back button to return to main menu, inside the mobile navbar sidebar secondary menu (notably used to display the docs sidebar)"},"\u2190 Back to main menu"))}function Io(){const e=0===(0,_.L)().navbar.items.length,t=M();return r.createElement(r.Fragment,null,!e&&r.createElement(Po,{onClick:()=>t.hide()}),t.content)}function To(){const e=(0,A.e)();var t;return void 0===(t=e.shown)&&(t=!0),(0,r.useEffect)((()=>(document.body.style.overflow=t?"hidden":"visible",()=>{document.body.style.overflow="visible"})),[t]),e.shouldRender?r.createElement(B,{header:r.createElement(J,null),primaryMenu:r.createElement(Co,null),secondaryMenu:r.createElement(Io,null)}):null}const Ao="navbarHideable_m1mJ",Lo="navbarHidden_jGov";function No(e){return r.createElement("div",(0,s.Z)({role:"presentation"},e,{className:(0,o.Z)("navbar-sidebar__backdrop",e.className)}))}function Ro(e){let{children:t}=e;const{navbar:{hideOnScroll:n,style:a}}=(0,_.L)(),i=(0,A.e)(),{navbarRef:s,isNavbarVisible:c}=function(e){const[t,n]=(0,r.useState)(e),o=(0,r.useRef)(!1),a=(0,r.useRef)(0),i=(0,r.useCallback)((e=>{null!==e&&(a.current=e.getBoundingClientRect().height)}),[]);return(0,L.RF)(((t,r)=>{let{scrollY:i}=t;if(!e)return;if(i=s?n(!1):i+d{if(!e)return;const r=t.location.hash;if(r?document.getElementById(r.substring(1)):void 0)return o.current=!0,void n(!1);n(!0)})),{navbarRef:i,isNavbarVisible:t}}(n);return r.createElement("nav",{ref:s,"aria-label":(0,d.I)({id:"theme.NavBar.navAriaLabel",message:"Main",description:"The ARIA label for the main navigation"}),className:(0,o.Z)("navbar","navbar--fixed-top",n&&[Ao,!c&&Lo],{"navbar--dark":"dark"===a,"navbar--primary":"primary"===a,"navbar-sidebar--show":i.shown})},t,r.createElement(No,{onClick:i.toggle}),r.createElement(To,null))}var Do=n(63905);const jo="errorBoundaryError_a6uf";function Fo(e){return r.createElement("button",(0,s.Z)({type:"button"},e),r.createElement(d.Z,{id:"theme.ErrorPageContent.tryAgain",description:"The label of the button to try again rendering when the React error boundary captures an error"},"Try again"))}function Mo(e){let{error:t}=e;const n=(0,Do.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return r.createElement("p",{className:jo},n)}class Bo extends r.Component{componentDidCatch(e,t){throw this.props.onError(e,t)}render(){return this.props.children}}function $o(e){let{width:t=30,height:n=30,className:o,...a}=e;return r.createElement("svg",(0,s.Z)({className:o,width:t,height:n,viewBox:"0 0 30 30","aria-hidden":"true"},a),r.createElement("path",{stroke:"currentColor",strokeLinecap:"round",strokeMiterlimit:"10",strokeWidth:"2",d:"M4 7h22M4 15h22M4 23h22"}))}function Uo(){const{toggle:e,shown:t}=(0,A.e)();return r.createElement("button",{onClick:e,"aria-label":(0,d.I)({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"},r.createElement($o,null))}const zo="colorModeToggle_DEke";function Ho(e){let{items:t}=e;return r.createElement(r.Fragment,null,t.map(((e,t)=>r.createElement(Bo,{key:t,onError:t=>new Error(`A theme navbar item failed to render.\nPlease double-check the following navbar item (themeConfig.navbar.items) of your Docusaurus config:\n${JSON.stringify(e,null,2)}`,{cause:t})},r.createElement(Oo,e)))))}function Vo(e){let{left:t,right:n}=e;return r.createElement("div",{className:"navbar__inner"},r.createElement("div",{className:"navbar__items"},t),r.createElement("div",{className:"navbar__items navbar__items--right"},n))}function Zo(){const e=(0,A.e)(),t=(0,_.L)().navbar.items,[n,o]=function(e){function t(e){return"left"===(e.position??"right")}return[e.filter(t),e.filter((e=>!t(e)))]}(t),a=t.find((e=>"search"===e.type));return r.createElement(Vo,{left:r.createElement(r.Fragment,null,!e.disabled&&r.createElement(Uo,null),r.createElement(Y,null),r.createElement(Ho,{items:n})),right:r.createElement(r.Fragment,null,r.createElement(Ho,{items:o}),r.createElement(G,{className:zo}),!a&&r.createElement(_o,null,r.createElement(go,null)))})}function Qo(){return r.createElement(Ro,null,r.createElement(Zo,null))}function Wo(e){let{item:t}=e;const{to:n,href:o,label:a,prependBaseUrlToHref:i,...c}=t,d=(0,te.Z)(n),l=(0,te.Z)(o,{forcePrependBaseUrl:!0});return r.createElement(ee.Z,(0,s.Z)({className:"footer__link-item"},o?{href:i?l:o}:{to:d},c),a,o&&!(0,ne.Z)(o)&&r.createElement(oe.Z,null))}function Go(e){let{item:t}=e;return t.html?r.createElement("li",{className:"footer__item",dangerouslySetInnerHTML:{__html:t.html}}):r.createElement("li",{key:t.href??t.to,className:"footer__item"},r.createElement(Wo,{item:t}))}function Ko(e){let{column:t}=e;return r.createElement("div",{className:"col footer__col"},r.createElement("div",{className:"footer__title"},t.title),r.createElement("ul",{className:"footer__items clean-list"},t.items.map(((e,t)=>r.createElement(Go,{key:t,item:e})))))}function Yo(e){let{columns:t}=e;return r.createElement("div",{className:"row footer__links"},t.map(((e,t)=>r.createElement(Ko,{key:t,column:e}))))}function Xo(){return r.createElement("span",{className:"footer__link-separator"},"\xb7")}function Jo(e){let{item:t}=e;return t.html?r.createElement("span",{className:"footer__link-item",dangerouslySetInnerHTML:{__html:t.html}}):r.createElement(Wo,{item:t})}function ea(e){let{links:t}=e;return r.createElement("div",{className:"footer__links text--center"},r.createElement("div",{className:"footer__links"},t.map(((e,n)=>r.createElement(r.Fragment,{key:n},r.createElement(Jo,{item:e}),t.length!==n+1&&r.createElement(Xo,null))))))}function ta(e){let{links:t}=e;return function(e){return"title"in e[0]}(t)?r.createElement(Yo,{columns:t}):r.createElement(ea,{links:t})}var na=n(7909);const ra="footerLogoLink_BH7S";function oa(e){let{logo:t}=e;const{withBaseUrl:n}=(0,te.C)(),a={light:n(t.src),dark:n(t.srcDark??t.src)};return r.createElement(na.Z,{className:(0,o.Z)("footer__logo",t.className),alt:t.alt,sources:a,width:t.width,height:t.height,style:t.style})}function aa(e){let{logo:t}=e;return t.href?r.createElement(ee.Z,{href:t.href,className:ra,target:t.target},r.createElement(oa,{logo:t})):r.createElement(oa,{logo:t})}function ia(e){let{copyright:t}=e;return r.createElement("div",{className:"footer__copyright",dangerouslySetInnerHTML:{__html:t}})}function sa(e){let{style:t,links:n,logo:a,copyright:i}=e;return r.createElement("footer",{className:(0,o.Z)("footer",{"footer--dark":"dark"===t})},r.createElement("div",{className:"container container-fluid"},n,(a||i)&&r.createElement("div",{className:"footer__bottom text--center"},a&&r.createElement("div",{className:"margin-bottom--sm"},a),i)))}function ca(){const{footer:e}=(0,_.L)();if(!e)return null;const{copyright:t,links:n,logo:o,style:a}=e;return r.createElement(sa,{style:a,links:n&&n.length>0&&r.createElement(ta,{links:n}),logo:o&&r.createElement(aa,{logo:o}),copyright:t&&r.createElement(ia,{copyright:t})})}const da=r.memo(ca),la=(0,N.Qc)([$.S,k.pl,L.OC,wo.L5,i.VC,function(e){let{children:t}=e;return r.createElement(R.n2,null,r.createElement(A.M,null,r.createElement(j,null,t)))}]);function ua(e){let{children:t}=e;return r.createElement(la,null,t)}function pa(e){let{error:t,tryAgain:n}=e;return r.createElement("main",{className:"container margin-vert--xl"},r.createElement("div",{className:"row"},r.createElement("div",{className:"col col--6 col--offset-3"},r.createElement("h1",{className:"hero__title"},r.createElement(d.Z,{id:"theme.ErrorPageContent.title",description:"The title of the fallback page when the page crashed"},"This page crashed.")),r.createElement("div",{className:"margin-vert--lg"},r.createElement(Fo,{onClick:n,className:"button button--primary shadow--lw"})),r.createElement("hr",null),r.createElement("div",{className:"margin-vert--md"},r.createElement(Mo,{error:t})))))}const va="mainWrapper_z2l0";function fa(e){const{children:t,noFooter:n,wrapperClassName:s,title:c,description:d}=e;return(0,m.t)(),r.createElement(ua,null,r.createElement(i.d,{title:c,description:d}),r.createElement(y,null),r.createElement(T,null),r.createElement(Qo,null),r.createElement("div",{id:u,className:(0,o.Z)(h.k.wrapper.main,va,s)},r.createElement(a.Z,{fallback:e=>r.createElement(pa,e)},t)),!n&&r.createElement(da,null))}},96811:(e,t,n)=>{"use strict";n.d(t,{Z:()=>u});var r=n(87462),o=n(67294),a=n(83699),i=n(79524),s=n(39962),c=n(20107),d=n(7909);function l(e){let{logo:t,alt:n,imageClassName:r}=e;const a={light:(0,i.Z)(t.src),dark:(0,i.Z)(t.srcDark||t.src)},s=o.createElement(d.Z,{className:t.className,sources:a,height:t.height,width:t.width,alt:n,style:t.style});return r?o.createElement("div",{className:r},s):s}function u(e){const{siteConfig:{title:t}}=(0,s.Z)(),{navbar:{title:n,logo:d}}=(0,c.L)(),{imageClassName:u,titleClassName:p,...v}=e,f=(0,i.Z)(d?.href||"/"),b=n?"":t,h=d?.alt??b;return o.createElement(a.Z,(0,r.Z)({to:f},v,d?.target&&{target:d.target}),d&&o.createElement(l,{logo:d,alt:h,imageClassName:u}),null!=n&&o.createElement("b",{className:p},n))}},33647:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var r=n(67294),o=n(31514);function a(e){let{locale:t,version:n,tag:a}=e;const i=t;return r.createElement(o.Z,null,t&&r.createElement("meta",{name:"docusaurus_locale",content:t}),n&&r.createElement("meta",{name:"docusaurus_version",content:n}),a&&r.createElement("meta",{name:"docusaurus_tag",content:a}),i&&r.createElement("meta",{name:"docsearch:language",content:i}),n&&r.createElement("meta",{name:"docsearch:version",content:n}),a&&r.createElement("meta",{name:"docsearch:docusaurus_tag",content:a}))}},7909:(e,t,n)=>{"use strict";n.d(t,{Z:()=>d});var r=n(87462),o=n(67294),a=n(86010),i=n(51048),s=n(9200);const c={themedImage:"themedImage_ToTc","themedImage--light":"themedImage--light_HNdA","themedImage--dark":"themedImage--dark_i4oU"};function d(e){const t=(0,i.Z)(),{colorMode:n}=(0,s.I)(),{sources:d,className:l,alt:u,...p}=e,v=t?"dark"===n?["dark"]:["light"]:["light","dark"];return o.createElement(o.Fragment,null,v.map((e=>o.createElement("img",(0,r.Z)({key:e,src:d[e],alt:u,className:(0,a.Z)(c.themedImage,c[`themedImage--${e}`],l)},p)))))}},54639:(e,t,n)=>{"use strict";n.d(t,{u:()=>i,z:()=>b});var r=n(87462),o=n(67294),a=n(36136);function i(e){let{initialState:t}=e;const[n,r]=(0,o.useState)(t??!1),a=(0,o.useCallback)((()=>{r((e=>!e))}),[]);return{collapsed:n,setCollapsed:r,toggleCollapsed:a}}const s={display:"none",overflow:"hidden",height:"0px"},c={display:"block",overflow:"visible",height:"auto"};function d(e,t){const n=t?s:c;e.style.display=n.display,e.style.overflow=n.overflow,e.style.height=n.height}function l(e){if(window.matchMedia("(prefers-reduced-motion: reduce)").matches)return 0;const t=e/36;return Math.round(10*(4+15*t**.25+t/5))}function u(e){let{collapsibleRef:t,collapsed:n,animation:r}=e;const a=(0,o.useRef)(!1);(0,o.useEffect)((()=>{const e=t.current;function o(){const t=function(){const t=e.scrollHeight;return{transition:`height ${r?.duration??l(t)}ms ${r?.easing??"ease-in-out"}`,height:`${t}px`}}();e.style.transition=t.transition,e.style.height=t.height}if(!a.current)return d(e,n),void(a.current=!0);return e.style.willChange="height",function(){const t=requestAnimationFrame((()=>{n?(o(),requestAnimationFrame((()=>{e.style.height=s.height,e.style.overflow=s.overflow}))):(e.style.display="block",requestAnimationFrame((()=>{o()})))}));return()=>cancelAnimationFrame(t)}()}),[t,n,r])}function p(e){if(!a.default.canUseDOM)return e?s:c}function v(e){let{as:t="div",collapsed:n,children:r,animation:a,onCollapseTransitionEnd:i,className:s,disableSSRStyle:c}=e;const l=(0,o.useRef)(null);return u({collapsibleRef:l,collapsed:n,animation:a}),o.createElement(t,{ref:l,style:c?void 0:p(n),onTransitionEnd:e=>{"height"===e.propertyName&&(d(l.current,n),i?.(n))},className:s},r)}function f(e){let{collapsed:t,...n}=e;const[a,i]=(0,o.useState)(!t),[s,c]=(0,o.useState)(t);return(0,o.useLayoutEffect)((()=>{t||i(!0)}),[t]),(0,o.useLayoutEffect)((()=>{a&&c(t)}),[a,t]),a?o.createElement(v,(0,r.Z)({},n,{collapsed:s})):null}function b(e){let{lazy:t,...n}=e;const r=t?f:v;return o.createElement(r,n)}},65830:(e,t,n)=>{"use strict";n.d(t,{nT:()=>f,pl:()=>v});var r=n(67294),o=n(51048),a=n(92560),i=n(43768),s=n(20107);const c=(0,a.WA)("docusaurus.announcement.dismiss"),d=(0,a.WA)("docusaurus.announcement.id"),l=()=>"true"===c.get(),u=e=>c.set(String(e)),p=r.createContext(null);function v(e){let{children:t}=e;const n=function(){const{announcementBar:e}=(0,s.L)(),t=(0,o.Z)(),[n,a]=(0,r.useState)((()=>!!t&&l()));(0,r.useEffect)((()=>{a(l())}),[]);const i=(0,r.useCallback)((()=>{u(!0),a(!0)}),[]);return(0,r.useEffect)((()=>{if(!e)return;const{id:t}=e;let n=d.get();"annoucement-bar"===n&&(n="announcement-bar");const r=t!==n;d.set(t),r&&u(!1),!r&&l()||a(!1)}),[e]),(0,r.useMemo)((()=>({isActive:!!e&&!n,close:i})),[e,n,i])}();return r.createElement(p.Provider,{value:n},t)}function f(){const e=(0,r.useContext)(p);if(!e)throw new i.i6("AnnouncementBarProvider");return e}},9200:(e,t,n)=>{"use strict";n.d(t,{I:()=>h,S:()=>b});var r=n(67294),o=n(36136),a=n(43768),i=n(92560),s=n(20107);const c=r.createContext(void 0),d="theme",l=(0,i.WA)(d),u="light",p="dark",v=e=>e===p?p:u;function f(){const{colorMode:{defaultMode:e,disableSwitch:t,respectPrefersColorScheme:n}}=(0,s.L)(),[a,i]=(0,r.useState)((e=>o.default.canUseDOM?v(document.documentElement.getAttribute("data-theme")):v(e))(e));(0,r.useEffect)((()=>{t&&l.del()}),[t]);const c=(0,r.useCallback)((function(t,r){void 0===r&&(r={});const{persist:o=!0}=r;t?(i(t),o&&(e=>{l.set(v(e))})(t)):(i(n?window.matchMedia("(prefers-color-scheme: dark)").matches?p:u:e),l.del())}),[n,e]);(0,r.useEffect)((()=>{document.documentElement.setAttribute("data-theme",v(a))}),[a]),(0,r.useEffect)((()=>{if(t)return;const e=e=>{if(e.key!==d)return;const t=l.get();null!==t&&c(v(t))};return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)}),[t,c]);const f=(0,r.useRef)(!1);return(0,r.useEffect)((()=>{if(t&&!n)return;const e=window.matchMedia("(prefers-color-scheme: dark)"),r=()=>{window.matchMedia("print").matches||f.current?f.current=window.matchMedia("print").matches:c(null)};return e.addListener(r),()=>e.removeListener(r)}),[c,t,n]),(0,r.useMemo)((()=>({colorMode:a,setColorMode:c,get isDarkTheme(){return a===p},setLightTheme(){c(u)},setDarkTheme(){c(p)}})),[a,c])}function b(e){let{children:t}=e;const n=f();return r.createElement(c.Provider,{value:n},t)}function h(){const e=(0,r.useContext)(c);if(null==e)throw new a.i6("ColorModeProvider","Please see https://docusaurus.io/docs/api/themes/configuration#use-color-mode.");return e}},86409:(e,t,n)=>{"use strict";n.d(t,{J:()=>y,L5:()=>m,Oh:()=>_});var r=n(67294),o=n(30868),a=n(6875),i=n(20107),s=n(78259),c=n(43768),d=n(92560);const l=e=>`docs-preferred-version-${e}`,u=(e,t,n)=>{(0,d.WA)(l(e),{persistence:t}).set(n)},p=(e,t)=>(0,d.WA)(l(e),{persistence:t}).get(),v=(e,t)=>{(0,d.WA)(l(e),{persistence:t}).del()};const f=r.createContext(null);function b(){const e=(0,o._r)(),t=(0,i.L)().docs.versionPersistence,n=(0,r.useMemo)((()=>Object.keys(e)),[e]),[a,s]=(0,r.useState)((()=>(e=>Object.fromEntries(e.map((e=>[e,{preferredVersionName:null}]))))(n)));(0,r.useEffect)((()=>{s(function(e){let{pluginIds:t,versionPersistence:n,allDocsData:r}=e;function o(e){const t=p(e,n);return r[e].versions.some((e=>e.name===t))?{preferredVersionName:t}:(v(e,n),{preferredVersionName:null})}return Object.fromEntries(t.map((e=>[e,o(e)])))}({allDocsData:e,versionPersistence:t,pluginIds:n}))}),[e,t,n]);return[a,(0,r.useMemo)((()=>({savePreferredVersion:function(e,n){u(e,t,n),s((t=>({...t,[e]:{preferredVersionName:n}})))}})),[t])]}function h(e){let{children:t}=e;const n=b();return r.createElement(f.Provider,{value:n},t)}function m(e){let{children:t}=e;return s.cE?r.createElement(h,null,t):r.createElement(r.Fragment,null,t)}function g(){const e=(0,r.useContext)(f);if(!e)throw new c.i6("DocsPreferredVersionContextProvider");return e}function y(e){void 0===e&&(e=a.m);const t=(0,o.zh)(e),[n,i]=g(),{preferredVersionName:s}=n[e];return{preferredVersion:t.versions.find((e=>e.name===s))??null,savePreferredVersionName:(0,r.useCallback)((t=>{i.savePreferredVersion(e,t)}),[i,e])}}function _(){const e=(0,o._r)(),[t]=g();function n(n){const r=e[n],{preferredVersionName:o}=t[n];return r.versions.find((e=>e.name===o))??null}const r=Object.keys(e);return Object.fromEntries(r.map((e=>[e,n(e)])))}},84432:(e,t,n)=>{"use strict";n.d(t,{V:()=>c,b:()=>s});var r=n(67294),o=n(43768);const a=Symbol("EmptyContext"),i=r.createContext(a);function s(e){let{children:t,name:n,items:o}=e;const a=(0,r.useMemo)((()=>n&&o?{name:n,items:o}:null),[n,o]);return r.createElement(i.Provider,{value:a},t)}function c(){const e=(0,r.useContext)(i);if(e===a)throw new o.i6("DocsSidebarProvider");return e}},60735:(e,t,n)=>{"use strict";n.d(t,{M:()=>u,e:()=>p});var r=n(67294),o=n(53086),a=n(13488),i=n(75238),s=n(20107),c=n(43768);const d=r.createContext(void 0);function l(){const e=function(){const e=(0,o.HY)(),{items:t}=(0,s.L)().navbar;return 0===t.length&&!e.component}(),t=(0,a.i)(),n=!e&&"mobile"===t,[c,d]=(0,r.useState)(!1);(0,i.Rb)((()=>{if(c)return d(!1),!1}));const l=(0,r.useCallback)((()=>{d((e=>!e))}),[]);return(0,r.useEffect)((()=>{"desktop"===t&&d(!1)}),[t]),(0,r.useMemo)((()=>({disabled:e,shouldRender:n,toggle:l,shown:c})),[e,n,l,c])}function u(e){let{children:t}=e;const n=l();return r.createElement(d.Provider,{value:n},t)}function p(){const e=r.useContext(d);if(void 0===e)throw new c.i6("NavbarMobileSidebarProvider");return e}},53086:(e,t,n)=>{"use strict";n.d(t,{HY:()=>s,Zo:()=>c,n2:()=>i});var r=n(67294),o=n(43768);const a=r.createContext(null);function i(e){let{children:t}=e;const n=(0,r.useState)({component:null,props:null});return r.createElement(a.Provider,{value:n},t)}function s(){const e=(0,r.useContext)(a);if(!e)throw new o.i6("NavbarSecondaryMenuContentProvider");return e[0]}function c(e){let{component:t,props:n}=e;const i=(0,r.useContext)(a);if(!i)throw new o.i6("NavbarSecondaryMenuContentProvider");const[,s]=i,c=(0,o.Ql)(n);return(0,r.useEffect)((()=>{s({component:t,props:c})}),[s,t,c]),(0,r.useEffect)((()=>()=>s({component:null,props:null})),[s]),null}},78181:(e,t,n)=>{"use strict";n.d(t,{h:()=>o,t:()=>a});var r=n(67294);const o="navigation-with-keyboard";function a(){(0,r.useEffect)((()=>{function e(e){"keydown"===e.type&&"Tab"===e.key&&document.body.classList.add(o),"mousedown"===e.type&&document.body.classList.remove(o)}return document.addEventListener("keydown",e),document.addEventListener("mousedown",e),()=>{document.body.classList.remove(o),document.removeEventListener("keydown",e),document.removeEventListener("mousedown",e)}}),[])}},13488:(e,t,n)=>{"use strict";n.d(t,{i:()=>d});var r=n(67294),o=n(36136);const a="desktop",i="mobile",s="ssr";function c(){return o.default.canUseDOM?window.innerWidth>996?a:i:s}function d(){const[e,t]=(0,r.useState)((()=>c()));return(0,r.useEffect)((()=>{function e(){t(c())}return window.addEventListener("resize",e),()=>{window.removeEventListener("resize",e),clearTimeout(undefined)}}),[]),e}},23702:(e,t,n)=>{"use strict";n.d(t,{k:()=>r});const r={page:{blogListPage:"blog-list-page",blogPostPage:"blog-post-page",blogTagsListPage:"blog-tags-list-page",blogTagPostListPage:"blog-tags-post-list-page",docsDocPage:"docs-doc-page",docsTagsListPage:"docs-tags-list-page",docsTagDocListPage:"docs-tags-doc-list-page",mdxPage:"mdx-page"},wrapper:{main:"main-wrapper",blogPages:"blog-wrapper",docsPages:"docs-wrapper",mdxPages:"mdx-wrapper"},common:{editThisPage:"theme-edit-this-page",lastUpdated:"theme-last-updated",backToTopButton:"theme-back-to-top-button",codeBlock:"theme-code-block",admonition:"theme-admonition",admonitionType:e=>`theme-admonition-${e}`},layout:{},docs:{docVersionBanner:"theme-doc-version-banner",docVersionBadge:"theme-doc-version-badge",docBreadcrumbs:"theme-doc-breadcrumbs",docMarkdown:"theme-doc-markdown",docTocMobile:"theme-doc-toc-mobile",docTocDesktop:"theme-doc-toc-desktop",docFooter:"theme-doc-footer",docFooterTagsRow:"theme-doc-footer-tags-row",docFooterEditMetaRow:"theme-doc-footer-edit-meta-row",docSidebarContainer:"theme-doc-sidebar-container",docSidebarMenu:"theme-doc-sidebar-menu",docSidebarItemCategory:"theme-doc-sidebar-item-category",docSidebarItemLink:"theme-doc-sidebar-item-link",docSidebarItemCategoryLevel:e=>`theme-doc-sidebar-item-category-level-${e}`,docSidebarItemLinkLevel:e=>`theme-doc-sidebar-item-link-level-${e}`},blog:{}}},78259:(e,t,n)=>{"use strict";n.d(t,{Wl:()=>p,_F:()=>f,cE:()=>u,hI:()=>_,lO:()=>m,oz:()=>g,s1:()=>h,vY:()=>y});var r=n(67294),o=n(16550),a=n(18790),i=n(30868),s=n(86409),c=n(84432),d=n(33609),l=n(69003);const u=!!i._r;function p(e){if(e.href)return e.href;for(const t of e.items){if("link"===t.type)return t.href;if("category"===t.type){const e=p(t);if(e)return e}}}const v=(e,t)=>void 0!==e&&(0,l.Mg)(e,t);function f(e,t){return"link"===e.type?v(e.href,t):"category"===e.type&&(v(e.href,t)||((e,t)=>e.some((e=>f(e,t))))(e.items,t))}function b(e){let{sidebarItems:t,pathname:n,onlyCategories:r=!1}=e;const o=[];return function e(t){for(const a of t)if("category"===a.type&&((0,l.Mg)(a.href,n)||e(a.items))||"link"===a.type&&(0,l.Mg)(a.href,n)){return r&&"category"!==a.type||o.unshift(a),!0}return!1}(t),o}function h(){const e=(0,c.V)(),{pathname:t}=(0,o.TH)(),n=(0,i.gA)()?.pluginData.breadcrumbs;return!1!==n&&e?b({sidebarItems:e.items,pathname:t}):null}function m(e){const{activeVersion:t}=(0,i.Iw)(e),{preferredVersion:n}=(0,s.J)(e),o=(0,i.yW)(e);return(0,r.useMemo)((()=>(0,d.j)([t,n,o].filter(Boolean))),[t,n,o])}function g(e,t){const n=m(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.sidebars?Object.entries(e.sidebars):[])),r=t.find((t=>t[0]===e));if(!r)throw new Error(`Can't find any sidebar with id "${e}" in version${n.length>1?"s":""} ${n.map((e=>e.name)).join(", ")}".\nAvailable sidebar ids are:\n- ${Object.keys(t).join("\n- ")}`);return r[1]}),[e,n])}function y(e,t){const n=m(t);return(0,r.useMemo)((()=>{const 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 new Error(`Couldn't find any doc with id "${e}" in version${n.length>1?"s":""} "${n.map((e=>e.name)).join(", ")}".\nAvailable doc ids are:\n- ${(0,d.j)(t.map((e=>e.id))).join("\n- ")}`)}return r}),[e,n])}function _(e){let{route:t,versionMetadata:n}=e;const r=(0,o.TH)(),i=t.routes,s=i.find((e=>(0,o.LX)(r.pathname,e)));if(!s)return null;const c=s.sidebar,d=c?n.docsSidebars[c]:void 0;return{docElement:(0,a.H)(i),sidebarName:c,sidebarItems:d}}},75238:(e,t,n)=>{"use strict";n.d(t,{Rb:()=>s,_X:()=>c});var r=n(67294),o=n(16550),a=n(61688),i=n(43768);function s(e){!function(e){const t=(0,o.k6)(),n=(0,i.zX)(e);(0,r.useEffect)((()=>t.block(((e,t)=>n(e,t)))),[t,n])}(((t,n)=>{if("POP"===n)return e(t,n)}))}function c(e){return function(e){const t=(0,o.k6)();return(0,a.useSyncExternalStore)(t.listen,(()=>e(t)),(()=>e(t)))}((t=>null===e?null:new URLSearchParams(t.location.search).get(e)))}},33609:(e,t,n)=>{"use strict";function r(e,t){return void 0===t&&(t=(e,t)=>e===t),e.filter(((n,r)=>e.findIndex((e=>t(e,n)))!==r))}function o(e){return Array.from(new Set(e))}n.d(t,{j:()=>o,l:()=>r})},35463:(e,t,n)=>{"use strict";n.d(t,{FG:()=>p,d:()=>l,VC:()=>v});var r=n(67294),o=n(86010),a=n(31514),i=n(69656);function s(){const e=r.useContext(i._);if(!e)throw new Error("Unexpected: no Docusaurus route context found");return e}var c=n(79524),d=n(39962);function l(e){let{title:t,description:n,keywords:o,image:i,children:s}=e;const l=function(e){const{siteConfig:t}=(0,d.Z)(),{title:n,titleDelimiter:r}=t;return e?.trim().length?`${e.trim()} ${r} ${n}`:n}(t),{withBaseUrl:u}=(0,c.C)(),p=i?u(i,{absolute:!0}):void 0;return r.createElement(a.Z,null,t&&r.createElement("title",null,l),t&&r.createElement("meta",{property:"og:title",content:l}),n&&r.createElement("meta",{name:"description",content:n}),n&&r.createElement("meta",{property:"og:description",content:n}),o&&r.createElement("meta",{name:"keywords",content:Array.isArray(o)?o.join(","):o}),p&&r.createElement("meta",{property:"og:image",content:p}),p&&r.createElement("meta",{name:"twitter:image",content:p}),s)}const u=r.createContext(void 0);function p(e){let{className:t,children:n}=e;const i=r.useContext(u),s=(0,o.Z)(i,t);return r.createElement(u.Provider,{value:s},r.createElement(a.Z,null,r.createElement("html",{className:s})),n)}function v(e){let{children:t}=e;const n=s(),a=`plugin-${n.plugin.name.replace(/docusaurus-(?:plugin|theme)-(?:content-)?/gi,"")}`;const i=`plugin-id-${n.plugin.id}`;return r.createElement(p,{className:(0,o.Z)(a,i)},t)}},43768:(e,t,n)=>{"use strict";n.d(t,{D9:()=>i,Qc:()=>d,Ql:()=>c,i6:()=>s,zX:()=>a});var r=n(67294);const o=n(36136).default.canUseDOM?r.useLayoutEffect:r.useEffect;function a(e){const t=(0,r.useRef)(e);return o((()=>{t.current=e}),[e]),(0,r.useCallback)((function(){return t.current(...arguments)}),[])}function i(e){const t=(0,r.useRef)();return o((()=>{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 c(e){const t=Object.entries(e);return t.sort(((e,t)=>e[0].localeCompare(t[0]))),(0,r.useMemo)((()=>e),t.flat())}function d(e){return t=>{let{children:n}=t;return r.createElement(r.Fragment,null,e.reduceRight(((e,t)=>r.createElement(t,null,e)),n))}}},69003:(e,t,n)=>{"use strict";n.d(t,{Mg:()=>i,Ns:()=>s});var r=n(67294),o=n(50997),a=n(39962);function i(e,t){const n=e=>(!e||e.endsWith("/")?e:`${e}/`)?.toLowerCase();return n(e)===n(t)}function s(){const{baseUrl:e}=(0,a.Z)().siteConfig;return(0,r.useMemo)((()=>function(e){let{baseUrl:t,routes:n}=e;function r(e){return e.path===t&&!0===e.exact}function o(e){return e.path===t&&!e.exact}return function e(t){if(0===t.length)return;return t.find(r)||e(t.filter(o).flatMap((e=>e.routes??[])))}(n)}({routes:o.Z,baseUrl:e})),[e])}},72957:(e,t,n)=>{"use strict";n.d(t,{Ct:()=>v,OC:()=>c,RF:()=>u,o5:()=>p});var r=n(67294),o=n(36136),a=n(51048),i=n(43768);const s=r.createContext(void 0);function c(e){let{children:t}=e;const n=function(){const e=(0,r.useRef)(!0);return(0,r.useMemo)((()=>({scrollEventsEnabledRef:e,enableScrollEvents:()=>{e.current=!0},disableScrollEvents:()=>{e.current=!1}})),[])}();return r.createElement(s.Provider,{value:n},t)}function d(){const e=(0,r.useContext)(s);if(null==e)throw new i.i6("ScrollControllerProvider");return e}const l=()=>o.default.canUseDOM?{scrollX:window.pageXOffset,scrollY:window.pageYOffset}:null;function u(e,t){void 0===t&&(t=[]);const{scrollEventsEnabledRef:n}=d(),o=(0,r.useRef)(l()),a=(0,i.zX)(e);(0,r.useEffect)((()=>{const e=()=>{if(!n.current)return;const e=l();a(e,o.current),o.current=e},t={passive:!0};return e(),window.addEventListener("scroll",e,t),()=>window.removeEventListener("scroll",e,t)}),[a,n,...t])}function p(){const e=d(),t=function(){const e=(0,r.useRef)({elem:null,top:0}),t=(0,r.useCallback)((t=>{e.current={elem:t,top:t.getBoundingClientRect().top}}),[]),n=(0,r.useCallback)((()=>{const{current:{elem:t,top:n}}=e;if(!t)return{restored:!1};const r=t.getBoundingClientRect().top-n;return r&&window.scrollBy({left:0,top:r}),e.current={elem:null,top:0},{restored:0!==r}}),[]);return(0,r.useMemo)((()=>({save:t,restore:n})),[n,t])}(),n=(0,r.useRef)(void 0),o=(0,r.useCallback)((r=>{t.save(r),e.disableScrollEvents(),n.current=()=>{const{restored:r}=t.restore();if(n.current=void 0,r){const t=()=>{e.enableScrollEvents(),window.removeEventListener("scroll",t)};window.addEventListener("scroll",t)}else e.enableScrollEvents()}}),[e,t]);return(0,r.useLayoutEffect)((()=>{queueMicrotask((()=>n.current?.()))})),{blockElementScrollPositionUntilNextRender:o}}function v(){const e=(0,r.useRef)(null),t=(0,a.Z)()&&"smooth"===getComputedStyle(document.documentElement).scrollBehavior;return{startScroll:n=>{e.current=t?function(e){return window.scrollTo({top:e,behavior:"smooth"}),()=>{}}(n):function(e){let t=null;const n=document.documentElement.scrollTop>e;return function r(){const o=document.documentElement.scrollTop;(n&&o>e||!n&&ot&&cancelAnimationFrame(t)}(n)},cancelScroll:()=>e.current?.()}}},60246:(e,t,n)=>{"use strict";n.d(t,{HX:()=>i,_q:()=>c,os:()=>s});var r=n(30868),o=n(39962),a=n(86409);const i="default";function s(e,t){return`docs-${e}-${t}`}function c(){const{i18n:e}=(0,o.Z)(),t=(0,r._r)(),n=(0,r.WS)(),c=(0,a.Oh)();const d=[i,...Object.keys(t).map((function(e){const r=n?.activePlugin.pluginId===e?n.activeVersion:void 0,o=c[e],a=t[e].versions.find((e=>e.isLast));return s(e,(r??o??a).name)}))];return{locale:e.currentLocale,tags:d}}},92560:(e,t,n)=>{"use strict";n.d(t,{Nk:()=>u,WA:()=>l});var r=n(67294),o=n(61688);const a="localStorage";function i(e){let{key:t,oldValue:n,newValue:r,storage:o}=e;if(n===r)return;const a=document.createEvent("StorageEvent");a.initStorageEvent("storage",!1,!1,t,n,r,window.location.href,o),window.dispatchEvent(a)}function s(e){if(void 0===e&&(e=a),"undefined"==typeof window)throw new Error("Browser storage is not available on Node.js/Docusaurus SSR process.");if("none"===e)return null;try{return window[e]}catch(n){return t=n,c||(console.warn("Docusaurus browser storage is not available.\nPossible reasons: running Docusaurus in an iframe, in an incognito browser session, or using too strict browser privacy settings.",t),c=!0),null}var t}let c=!1;const d={get:()=>null,set:()=>{},del:()=>{},listen:()=>()=>{}};function l(e,t){if("undefined"==typeof window)return function(e){function t(){throw new Error(`Illegal storage API usage for storage key "${e}".\nDocusaurus storage APIs are not supposed to be called on the server-rendering process.\nPlease only call storage APIs in effects and event handlers.`)}return{get:t,set:t,del:t,listen:t}}(e);const n=s(t?.persistence);return null===n?d:{get:()=>{try{return n.getItem(e)}catch(t){return console.error(`Docusaurus storage error, can't get key=${e}`,t),null}},set:t=>{try{const r=n.getItem(e);n.setItem(e,t),i({key:e,oldValue:r,newValue:t,storage:n})}catch(r){console.error(`Docusaurus storage error, can't set ${e}=${t}`,r)}},del:()=>{try{const t=n.getItem(e);n.removeItem(e),i({key:e,oldValue:t,newValue:null,storage:n})}catch(t){console.error(`Docusaurus storage error, can't delete key=${e}`,t)}},listen:t=>{try{const r=r=>{r.storageArea===n&&r.key===e&&t(r)};return window.addEventListener("storage",r),()=>window.removeEventListener("storage",r)}catch(r){return console.error(`Docusaurus storage error, can't listen for changes of key=${e}`,r),()=>{}}}}}function u(e,t){const n=(0,r.useRef)((()=>null===e?d:l(e,t))).current(),a=(0,r.useCallback)((e=>"undefined"==typeof window?()=>{}:n.listen(e)),[n]);return[(0,o.useSyncExternalStore)(a,(()=>"undefined"==typeof window?null:n.get()),(()=>null)),n]}},40626:(e,t,n)=>{"use strict";n.d(t,{l:()=>a});var r=n(39962),o=n(16550);function a(){const{siteConfig:{baseUrl:e,url:t},i18n:{defaultLocale:n,currentLocale:a}}=(0,r.Z)(),{pathname:i}=(0,o.TH)(),s=a===n?e:e.replace(`/${a}/`,"/"),c=i.replace(e,"");return{createUrl:function(e){let{locale:r,fullyQualified:o}=e;return`${o?t:""}${function(e){return e===n?`${s}`:`${s}${e}/`}(r)}${c}`}}}},43266:(e,t,n)=>{"use strict";n.d(t,{S:()=>i});var r=n(67294),o=n(16550),a=n(43768);function i(e){const t=(0,o.TH)(),n=(0,a.D9)(t),i=(0,a.zX)(e);(0,r.useEffect)((()=>{n&&t!==n&&i({location:t,previousLocation:n})}),[i,t,n])}},20107:(e,t,n)=>{"use strict";n.d(t,{L:()=>o});var r=n(39962);function o(){return(0,r.Z)().siteConfig.themeConfig}},84136:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){const{trailingSlash:n,baseUrl:r}=t;if(e.startsWith("#"))return e;if(void 0===n)return e;const[o]=e.split(/[#?]/),a="/"===o||o===r?o:(i=o,n?function(e){return e.endsWith("/")?e:`${e}/`}(i):function(e){return e.endsWith("/")?e.slice(0,-1):e}(i));var i;return e.replace(o,a)}},15806:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=void 0,t.getErrorCausalChain=function e(t){return t.cause?[t,...e(t.cause)]:[t]}},63905:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=t.applyTrailingSlash=t.blogPostContainerID=void 0,t.blogPostContainerID="post-content";var o=n(84136);Object.defineProperty(t,"applyTrailingSlash",{enumerable:!0,get:function(){return r(o).default}});var a=n(15806);Object.defineProperty(t,"getErrorCausalChain",{enumerable:!0,get:function(){return a.getErrorCausalChain}})},26597:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});r(n(36136)).default.canUseDOM&&(window.Prism=window.Prism||{},window.Prism.manual=!0)},86010:(e,t,n)=>{"use strict";function r(e){var t,n,o="";if("string"==typeof e||"number"==typeof e)o+=e;else if("object"==typeof e)if(Array.isArray(e))for(t=0;to});const o=function(){for(var e,t,n=0,o="";n{"use strict";n.d(t,{lX:()=>_,q_:()=>q,ob:()=>v,PP:()=>C,Ep:()=>p});var r=n(87462);function o(e){return"/"===e.charAt(0)}function a(e,t){for(var n=t,r=n+1,o=e.length;r=0;p--){var v=i[p];"."===v?a(i,p):".."===v?(a(i,p),u++):u&&(a(i,p),u--)}if(!d)for(;u--;u)i.unshift("..");!d||""===i[0]||i[0]&&o(i[0])||i.unshift("");var f=i.join("/");return n&&"/"!==f.substr(-1)&&(f+="/"),f};var s=n(38776);function c(e){return"/"===e.charAt(0)?e:"/"+e}function d(e){return"/"===e.charAt(0)?e.substr(1):e}function l(e,t){return function(e,t){return 0===e.toLowerCase().indexOf(t.toLowerCase())&&-1!=="/?#".indexOf(e.charAt(t.length))}(e,t)?e.substr(t.length):e}function u(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e}function p(e){var t=e.pathname,n=e.search,r=e.hash,o=t||"/";return n&&"?"!==n&&(o+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(o+="#"===r.charAt(0)?r:"#"+r),o}function v(e,t,n,o){var a;"string"==typeof e?(a=function(e){var t=e||"/",n="",r="",o=t.indexOf("#");-1!==o&&(r=t.substr(o),t=t.substr(0,o));var a=t.indexOf("?");return-1!==a&&(n=t.substr(a),t=t.substr(0,a)),{pathname:t,search:"?"===n?"":n,hash:"#"===r?"":r}}(e),a.state=t):(void 0===(a=(0,r.Z)({},e)).pathname&&(a.pathname=""),a.search?"?"!==a.search.charAt(0)&&(a.search="?"+a.search):a.search="",a.hash?"#"!==a.hash.charAt(0)&&(a.hash="#"+a.hash):a.hash="",void 0!==t&&void 0===a.state&&(a.state=t));try{a.pathname=decodeURI(a.pathname)}catch(s){throw s instanceof URIError?new URIError('Pathname "'+a.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):s}return n&&(a.key=n),o?a.pathname?"/"!==a.pathname.charAt(0)&&(a.pathname=i(a.pathname,o.pathname)):a.pathname=o.pathname:a.pathname||(a.pathname="/"),a}function f(){var e=null;var t=[];return{setPrompt:function(t){return e=t,function(){e===t&&(e=null)}},confirmTransitionTo:function(t,n,r,o){if(null!=e){var a="function"==typeof e?e(t,n):e;"string"==typeof a?"function"==typeof r?r(a,o):o(!0):o(!1!==a)}else o(!0)},appendListener:function(e){var n=!0;function r(){n&&e.apply(void 0,arguments)}return t.push(r),function(){n=!1,t=t.filter((function(e){return e!==r}))}},notifyListeners:function(){for(var e=arguments.length,n=new Array(e),r=0;rt?n.splice(t,n.length-t,o):n.push(o),u({action:r,location:o,index:t,entries:n})}}))},replace:function(e,t){var r="REPLACE",o=v(e,t,b(),_.location);l.confirmTransitionTo(o,r,n,(function(e){e&&(_.entries[_.index]=o,u({action:r,location:o}))}))},go:y,goBack:function(){y(-1)},goForward:function(){y(1)},canGo:function(e){var t=_.index+e;return t>=0&&t<_.entries.length},block:function(e){return void 0===e&&(e=!1),l.setPrompt(e)},listen:function(e){return l.appendListener(e)}};return _}},8679:(e,t,n)=>{"use strict";var r=n(59864),o={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},a={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},s={};function c(e){return r.isMemo(e)?i:s[e.$$typeof]||o}s[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},s[r.Memo]=i;var d=Object.defineProperty,l=Object.getOwnPropertyNames,u=Object.getOwnPropertySymbols,p=Object.getOwnPropertyDescriptor,v=Object.getPrototypeOf,f=Object.prototype;e.exports=function e(t,n,r){if("string"!=typeof n){if(f){var o=v(n);o&&o!==f&&e(t,o,r)}var i=l(n);u&&(i=i.concat(u(n)));for(var s=c(t),b=c(n),h=0;h{"use strict";e.exports=function(e,t,n,r,o,a,i,s){if(!e){var c;if(void 0===t)c=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var d=[n,r,o,a,i,s],l=0;(c=new Error(t.replace(/%s/g,(function(){return d[l++]})))).name="Invariant Violation"}throw c.framesToPop=1,c}}},5826:e=>{e.exports=Array.isArray||function(e){return"[object Array]"==Object.prototype.toString.call(e)}},813:function(e){e.exports=function(){"use strict";var e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},t=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")},n=function(){function e(e,t){for(var n=0;n1&&void 0!==arguments[1])||arguments[1],o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:5e3;t(this,e),this.ctx=n,this.iframes=r,this.exclude=o,this.iframesTimeout=a}return n(e,[{key:"getContexts",value:function(){var e=[];return(void 0!==this.ctx&&this.ctx?NodeList.prototype.isPrototypeOf(this.ctx)?Array.prototype.slice.call(this.ctx):Array.isArray(this.ctx)?this.ctx:"string"==typeof this.ctx?Array.prototype.slice.call(document.querySelectorAll(this.ctx)):[this.ctx]:[]).forEach((function(t){var n=e.filter((function(e){return e.contains(t)})).length>0;-1!==e.indexOf(t)||n||e.push(t)})),e}},{key:"getIframeContents",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:function(){},r=void 0;try{var o=e.contentWindow;if(r=o.document,!o||!r)throw new Error("iframe inaccessible")}catch(a){n()}r&&t(r)}},{key:"isIframeBlank",value:function(e){var t="about:blank",n=e.getAttribute("src").trim();return e.contentWindow.location.href===t&&n!==t&&n}},{key:"observeIframeLoad",value:function(e,t,n){var r=this,o=!1,a=null,i=function i(){if(!o){o=!0,clearTimeout(a);try{r.isIframeBlank(e)||(e.removeEventListener("load",i),r.getIframeContents(e,t,n))}catch(s){n()}}};e.addEventListener("load",i),a=setTimeout(i,this.iframesTimeout)}},{key:"onIframeReady",value:function(e,t,n){try{"complete"===e.contentWindow.document.readyState?this.isIframeBlank(e)?this.observeIframeLoad(e,t,n):this.getIframeContents(e,t,n):this.observeIframeLoad(e,t,n)}catch(r){n()}}},{key:"waitForIframes",value:function(e,t){var n=this,r=0;this.forEachIframe(e,(function(){return!0}),(function(e){r++,n.waitForIframes(e.querySelector("html"),(function(){--r||t()}))}),(function(e){e||t()}))}},{key:"forEachIframe",value:function(t,n,r){var o=this,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:function(){},i=t.querySelectorAll("iframe"),s=i.length,c=0;i=Array.prototype.slice.call(i);var d=function(){--s<=0&&a(c)};s||d(),i.forEach((function(t){e.matches(t,o.exclude)?d():o.onIframeReady(t,(function(e){n(t)&&(c++,r(e)),d()}),d)}))}},{key:"createIterator",value:function(e,t,n){return document.createNodeIterator(e,t,n,!1)}},{key:"createInstanceOnIframe",value:function(t){return new e(t.querySelector("html"),this.iframes)}},{key:"compareNodeIframe",value:function(e,t,n){if(e.compareDocumentPosition(n)&Node.DOCUMENT_POSITION_PRECEDING){if(null===t)return!0;if(t.compareDocumentPosition(n)&Node.DOCUMENT_POSITION_FOLLOWING)return!0}return!1}},{key:"getIteratorNode",value:function(e){var t=e.previousNode();return{prevNode:t,node:(null===t||e.nextNode())&&e.nextNode()}}},{key:"checkIframeFilter",value:function(e,t,n,r){var o=!1,a=!1;return r.forEach((function(e,t){e.val===n&&(o=t,a=e.handled)})),this.compareNodeIframe(e,t,n)?(!1!==o||a?!1===o||a||(r[o].handled=!0):r.push({val:n,handled:!0}),!0):(!1===o&&r.push({val:n,handled:!1}),!1)}},{key:"handleOpenIframes",value:function(e,t,n,r){var o=this;e.forEach((function(e){e.handled||o.getIframeContents(e.val,(function(e){o.createInstanceOnIframe(e).forEachNode(t,n,r)}))}))}},{key:"iterateThroughNodes",value:function(e,t,n,r,o){for(var a=this,i=this.createIterator(t,e,r),s=[],c=[],d=void 0,l=void 0,u=function(){var e=a.getIteratorNode(i);return l=e.prevNode,d=e.node};u();)this.iframes&&this.forEachIframe(t,(function(e){return a.checkIframeFilter(d,l,e,s)}),(function(t){a.createInstanceOnIframe(t).forEachNode(e,(function(e){return c.push(e)}),r)})),c.push(d);c.forEach((function(e){n(e)})),this.iframes&&this.handleOpenIframes(s,e,n,r),o()}},{key:"forEachNode",value:function(e,t,n){var r=this,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:function(){},a=this.getContexts(),i=a.length;i||o(),a.forEach((function(a){var s=function(){r.iterateThroughNodes(e,a,t,n,(function(){--i<=0&&o()}))};r.iframes?r.waitForIframes(a,s):s()}))}}],[{key:"matches",value:function(e,t){var n="string"==typeof t?[t]:t,r=e.matches||e.matchesSelector||e.msMatchesSelector||e.mozMatchesSelector||e.oMatchesSelector||e.webkitMatchesSelector;if(r){var o=!1;return n.every((function(t){return!r.call(e,t)||(o=!0,!1)})),o}return!1}}]),e}(),a=function(){function a(e){t(this,a),this.ctx=e,this.ie=!1;var n=window.navigator.userAgent;(n.indexOf("MSIE")>-1||n.indexOf("Trident")>-1)&&(this.ie=!0)}return n(a,[{key:"log",value:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"debug",r=this.opt.log;this.opt.debug&&"object"===(void 0===r?"undefined":e(r))&&"function"==typeof r[n]&&r[n]("mark.js: "+t)}},{key:"escapeStr",value:function(e){return e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}},{key:"createRegExp",value:function(e){return"disabled"!==this.opt.wildcards&&(e=this.setupWildcardsRegExp(e)),e=this.escapeStr(e),Object.keys(this.opt.synonyms).length&&(e=this.createSynonymsRegExp(e)),(this.opt.ignoreJoiners||this.opt.ignorePunctuation.length)&&(e=this.setupIgnoreJoinersRegExp(e)),this.opt.diacritics&&(e=this.createDiacriticsRegExp(e)),e=this.createMergedBlanksRegExp(e),(this.opt.ignoreJoiners||this.opt.ignorePunctuation.length)&&(e=this.createJoinersRegExp(e)),"disabled"!==this.opt.wildcards&&(e=this.createWildcardsRegExp(e)),e=this.createAccuracyRegExp(e)}},{key:"createSynonymsRegExp",value:function(e){var t=this.opt.synonyms,n=this.opt.caseSensitive?"":"i",r=this.opt.ignoreJoiners||this.opt.ignorePunctuation.length?"\0":"";for(var o in t)if(t.hasOwnProperty(o)){var a=t[o],i="disabled"!==this.opt.wildcards?this.setupWildcardsRegExp(o):this.escapeStr(o),s="disabled"!==this.opt.wildcards?this.setupWildcardsRegExp(a):this.escapeStr(a);""!==i&&""!==s&&(e=e.replace(new RegExp("("+this.escapeStr(i)+"|"+this.escapeStr(s)+")","gm"+n),r+"("+this.processSynomyms(i)+"|"+this.processSynomyms(s)+")"+r))}return e}},{key:"processSynomyms",value:function(e){return(this.opt.ignoreJoiners||this.opt.ignorePunctuation.length)&&(e=this.setupIgnoreJoinersRegExp(e)),e}},{key:"setupWildcardsRegExp",value:function(e){return(e=e.replace(/(?:\\)*\?/g,(function(e){return"\\"===e.charAt(0)?"?":"\x01"}))).replace(/(?:\\)*\*/g,(function(e){return"\\"===e.charAt(0)?"*":"\x02"}))}},{key:"createWildcardsRegExp",value:function(e){var t="withSpaces"===this.opt.wildcards;return e.replace(/\u0001/g,t?"[\\S\\s]?":"\\S?").replace(/\u0002/g,t?"[\\S\\s]*?":"\\S*")}},{key:"setupIgnoreJoinersRegExp",value:function(e){return e.replace(/[^(|)\\]/g,(function(e,t,n){var r=n.charAt(t+1);return/[(|)\\]/.test(r)||""===r?e:e+"\0"}))}},{key:"createJoinersRegExp",value:function(e){var t=[],n=this.opt.ignorePunctuation;return Array.isArray(n)&&n.length&&t.push(this.escapeStr(n.join(""))),this.opt.ignoreJoiners&&t.push("\\u00ad\\u200b\\u200c\\u200d"),t.length?e.split(/\u0000+/).join("["+t.join("")+"]*"):e}},{key:"createDiacriticsRegExp",value:function(e){var t=this.opt.caseSensitive?"":"i",n=this.opt.caseSensitive?["a\xe0\xe1\u1ea3\xe3\u1ea1\u0103\u1eb1\u1eaf\u1eb3\u1eb5\u1eb7\xe2\u1ea7\u1ea5\u1ea9\u1eab\u1ead\xe4\xe5\u0101\u0105","A\xc0\xc1\u1ea2\xc3\u1ea0\u0102\u1eb0\u1eae\u1eb2\u1eb4\u1eb6\xc2\u1ea6\u1ea4\u1ea8\u1eaa\u1eac\xc4\xc5\u0100\u0104","c\xe7\u0107\u010d","C\xc7\u0106\u010c","d\u0111\u010f","D\u0110\u010e","e\xe8\xe9\u1ebb\u1ebd\u1eb9\xea\u1ec1\u1ebf\u1ec3\u1ec5\u1ec7\xeb\u011b\u0113\u0119","E\xc8\xc9\u1eba\u1ebc\u1eb8\xca\u1ec0\u1ebe\u1ec2\u1ec4\u1ec6\xcb\u011a\u0112\u0118","i\xec\xed\u1ec9\u0129\u1ecb\xee\xef\u012b","I\xcc\xcd\u1ec8\u0128\u1eca\xce\xcf\u012a","l\u0142","L\u0141","n\xf1\u0148\u0144","N\xd1\u0147\u0143","o\xf2\xf3\u1ecf\xf5\u1ecd\xf4\u1ed3\u1ed1\u1ed5\u1ed7\u1ed9\u01a1\u1edf\u1ee1\u1edb\u1edd\u1ee3\xf6\xf8\u014d","O\xd2\xd3\u1ece\xd5\u1ecc\xd4\u1ed2\u1ed0\u1ed4\u1ed6\u1ed8\u01a0\u1ede\u1ee0\u1eda\u1edc\u1ee2\xd6\xd8\u014c","r\u0159","R\u0158","s\u0161\u015b\u0219\u015f","S\u0160\u015a\u0218\u015e","t\u0165\u021b\u0163","T\u0164\u021a\u0162","u\xf9\xfa\u1ee7\u0169\u1ee5\u01b0\u1eeb\u1ee9\u1eed\u1eef\u1ef1\xfb\xfc\u016f\u016b","U\xd9\xda\u1ee6\u0168\u1ee4\u01af\u1eea\u1ee8\u1eec\u1eee\u1ef0\xdb\xdc\u016e\u016a","y\xfd\u1ef3\u1ef7\u1ef9\u1ef5\xff","Y\xdd\u1ef2\u1ef6\u1ef8\u1ef4\u0178","z\u017e\u017c\u017a","Z\u017d\u017b\u0179"]:["a\xe0\xe1\u1ea3\xe3\u1ea1\u0103\u1eb1\u1eaf\u1eb3\u1eb5\u1eb7\xe2\u1ea7\u1ea5\u1ea9\u1eab\u1ead\xe4\xe5\u0101\u0105A\xc0\xc1\u1ea2\xc3\u1ea0\u0102\u1eb0\u1eae\u1eb2\u1eb4\u1eb6\xc2\u1ea6\u1ea4\u1ea8\u1eaa\u1eac\xc4\xc5\u0100\u0104","c\xe7\u0107\u010dC\xc7\u0106\u010c","d\u0111\u010fD\u0110\u010e","e\xe8\xe9\u1ebb\u1ebd\u1eb9\xea\u1ec1\u1ebf\u1ec3\u1ec5\u1ec7\xeb\u011b\u0113\u0119E\xc8\xc9\u1eba\u1ebc\u1eb8\xca\u1ec0\u1ebe\u1ec2\u1ec4\u1ec6\xcb\u011a\u0112\u0118","i\xec\xed\u1ec9\u0129\u1ecb\xee\xef\u012bI\xcc\xcd\u1ec8\u0128\u1eca\xce\xcf\u012a","l\u0142L\u0141","n\xf1\u0148\u0144N\xd1\u0147\u0143","o\xf2\xf3\u1ecf\xf5\u1ecd\xf4\u1ed3\u1ed1\u1ed5\u1ed7\u1ed9\u01a1\u1edf\u1ee1\u1edb\u1edd\u1ee3\xf6\xf8\u014dO\xd2\xd3\u1ece\xd5\u1ecc\xd4\u1ed2\u1ed0\u1ed4\u1ed6\u1ed8\u01a0\u1ede\u1ee0\u1eda\u1edc\u1ee2\xd6\xd8\u014c","r\u0159R\u0158","s\u0161\u015b\u0219\u015fS\u0160\u015a\u0218\u015e","t\u0165\u021b\u0163T\u0164\u021a\u0162","u\xf9\xfa\u1ee7\u0169\u1ee5\u01b0\u1eeb\u1ee9\u1eed\u1eef\u1ef1\xfb\xfc\u016f\u016bU\xd9\xda\u1ee6\u0168\u1ee4\u01af\u1eea\u1ee8\u1eec\u1eee\u1ef0\xdb\xdc\u016e\u016a","y\xfd\u1ef3\u1ef7\u1ef9\u1ef5\xffY\xdd\u1ef2\u1ef6\u1ef8\u1ef4\u0178","z\u017e\u017c\u017aZ\u017d\u017b\u0179"],r=[];return e.split("").forEach((function(o){n.every((function(n){if(-1!==n.indexOf(o)){if(r.indexOf(n)>-1)return!1;e=e.replace(new RegExp("["+n+"]","gm"+t),"["+n+"]"),r.push(n)}return!0}))})),e}},{key:"createMergedBlanksRegExp",value:function(e){return e.replace(/[\s]+/gim,"[\\s]+")}},{key:"createAccuracyRegExp",value:function(e){var t=this,n="!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~\xa1\xbf",r=this.opt.accuracy,o="string"==typeof r?r:r.value,a="string"==typeof r?[]:r.limiters,i="";switch(a.forEach((function(e){i+="|"+t.escapeStr(e)})),o){case"partially":default:return"()("+e+")";case"complementary":return"()([^"+(i="\\s"+(i||this.escapeStr(n)))+"]*"+e+"[^"+i+"]*)";case"exactly":return"(^|\\s"+i+")("+e+")(?=$|\\s"+i+")"}}},{key:"getSeparatedKeywords",value:function(e){var t=this,n=[];return e.forEach((function(e){t.opt.separateWordSearch?e.split(" ").forEach((function(e){e.trim()&&-1===n.indexOf(e)&&n.push(e)})):e.trim()&&-1===n.indexOf(e)&&n.push(e)})),{keywords:n.sort((function(e,t){return t.length-e.length})),length:n.length}}},{key:"isNumeric",value:function(e){return Number(parseFloat(e))==e}},{key:"checkRanges",value:function(e){var t=this;if(!Array.isArray(e)||"[object Object]"!==Object.prototype.toString.call(e[0]))return this.log("markRanges() will only accept an array of objects"),this.opt.noMatch(e),[];var n=[],r=0;return e.sort((function(e,t){return e.start-t.start})).forEach((function(e){var o=t.callNoMatchOnInvalidRanges(e,r),a=o.start,i=o.end;o.valid&&(e.start=a,e.length=i-a,n.push(e),r=i)})),n}},{key:"callNoMatchOnInvalidRanges",value:function(e,t){var n=void 0,r=void 0,o=!1;return e&&void 0!==e.start?(r=(n=parseInt(e.start,10))+parseInt(e.length,10),this.isNumeric(e.start)&&this.isNumeric(e.length)&&r-t>0&&r-n>0?o=!0:(this.log("Ignoring invalid or overlapping range: "+JSON.stringify(e)),this.opt.noMatch(e))):(this.log("Ignoring invalid range: "+JSON.stringify(e)),this.opt.noMatch(e)),{start:n,end:r,valid:o}}},{key:"checkWhitespaceRanges",value:function(e,t,n){var r=void 0,o=!0,a=n.length,i=t-a,s=parseInt(e.start,10)-i;return(r=(s=s>a?a:s)+parseInt(e.length,10))>a&&(r=a,this.log("End range automatically set to the max value of "+a)),s<0||r-s<0||s>a||r>a?(o=!1,this.log("Invalid range: "+JSON.stringify(e)),this.opt.noMatch(e)):""===n.substring(s,r).replace(/\s+/g,"")&&(o=!1,this.log("Skipping whitespace only range: "+JSON.stringify(e)),this.opt.noMatch(e)),{start:s,end:r,valid:o}}},{key:"getTextNodes",value:function(e){var t=this,n="",r=[];this.iterator.forEachNode(NodeFilter.SHOW_TEXT,(function(e){r.push({start:n.length,end:(n+=e.textContent).length,node:e})}),(function(e){return t.matchesExclude(e.parentNode)?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT}),(function(){e({value:n,nodes:r})}))}},{key:"matchesExclude",value:function(e){return o.matches(e,this.opt.exclude.concat(["script","style","title","head","html"]))}},{key:"wrapRangeInTextNode",value:function(e,t,n){var r=this.opt.element?this.opt.element:"mark",o=e.splitText(t),a=o.splitText(n-t),i=document.createElement(r);return i.setAttribute("data-markjs","true"),this.opt.className&&i.setAttribute("class",this.opt.className),i.textContent=o.textContent,o.parentNode.replaceChild(i,o),a}},{key:"wrapRangeInMappedTextNode",value:function(e,t,n,r,o){var a=this;e.nodes.every((function(i,s){var c=e.nodes[s+1];if(void 0===c||c.start>t){if(!r(i.node))return!1;var d=t-i.start,l=(n>i.end?i.end:n)-i.start,u=e.value.substr(0,i.start),p=e.value.substr(l+i.start);if(i.node=a.wrapRangeInTextNode(i.node,d,l),e.value=u+p,e.nodes.forEach((function(t,n){n>=s&&(e.nodes[n].start>0&&n!==s&&(e.nodes[n].start-=l),e.nodes[n].end-=l)})),n-=l,o(i.node.previousSibling,i.start),!(n>i.end))return!1;t=i.end}return!0}))}},{key:"wrapMatches",value:function(e,t,n,r,o){var a=this,i=0===t?0:t+1;this.getTextNodes((function(t){t.nodes.forEach((function(t){t=t.node;for(var o=void 0;null!==(o=e.exec(t.textContent))&&""!==o[i];)if(n(o[i],t)){var s=o.index;if(0!==i)for(var c=1;c{"use strict";n.r(t)},30984:(e,t,n)=>{"use strict";n.r(t)},46930:(e,t,n)=>{"use strict";n.r(t)},74865:function(e,t,n){var r,o;r=function(){var e,t,n={version:"0.2.0"},r=n.settings={minimum:.08,easing:"ease",positionUsing:"",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,showSpinner:!0,barSelector:'[role="bar"]',spinnerSelector:'[role="spinner"]',parent:"body",template:'
'};function o(e,t,n){return en?n:e}function a(e){return 100*(-1+e)}function i(e,t,n){var o;return(o="translate3d"===r.positionUsing?{transform:"translate3d("+a(e)+"%,0,0)"}:"translate"===r.positionUsing?{transform:"translate("+a(e)+"%,0)"}:{"margin-left":a(e)+"%"}).transition="all "+t+"ms "+n,o}n.configure=function(e){var t,n;for(t in e)void 0!==(n=e[t])&&e.hasOwnProperty(t)&&(r[t]=n);return this},n.status=null,n.set=function(e){var t=n.isStarted();e=o(e,r.minimum,1),n.status=1===e?null:e;var a=n.render(!t),d=a.querySelector(r.barSelector),l=r.speed,u=r.easing;return a.offsetWidth,s((function(t){""===r.positionUsing&&(r.positionUsing=n.getPositioningCSS()),c(d,i(e,l,u)),1===e?(c(a,{transition:"none",opacity:1}),a.offsetWidth,setTimeout((function(){c(a,{transition:"all "+l+"ms linear",opacity:0}),setTimeout((function(){n.remove(),t()}),l)}),l)):setTimeout(t,l)})),this},n.isStarted=function(){return"number"==typeof n.status},n.start=function(){n.status||n.set(0);var e=function(){setTimeout((function(){n.status&&(n.trickle(),e())}),r.trickleSpeed)};return r.trickle&&e(),this},n.done=function(e){return e||n.status?n.inc(.3+.5*Math.random()).set(1):this},n.inc=function(e){var t=n.status;return t?("number"!=typeof e&&(e=(1-t)*o(Math.random()*t,.1,.95)),t=o(t+e,0,.994),n.set(t)):n.start()},n.trickle=function(){return n.inc(Math.random()*r.trickleRate)},e=0,t=0,n.promise=function(r){return r&&"resolved"!==r.state()?(0===t&&n.start(),e++,t++,r.always((function(){0==--t?(e=0,n.done()):n.set((e-t)/e)})),this):this},n.render=function(e){if(n.isRendered())return document.getElementById("nprogress");l(document.documentElement,"nprogress-busy");var t=document.createElement("div");t.id="nprogress",t.innerHTML=r.template;var o,i=t.querySelector(r.barSelector),s=e?"-100":a(n.status||0),d=document.querySelector(r.parent);return c(i,{transition:"all 0 linear",transform:"translate3d("+s+"%,0,0)"}),r.showSpinner||(o=t.querySelector(r.spinnerSelector))&&v(o),d!=document.body&&l(d,"nprogress-custom-parent"),d.appendChild(t),t},n.remove=function(){u(document.documentElement,"nprogress-busy"),u(document.querySelector(r.parent),"nprogress-custom-parent");var e=document.getElementById("nprogress");e&&v(e)},n.isRendered=function(){return!!document.getElementById("nprogress")},n.getPositioningCSS=function(){var e=document.body.style,t="WebkitTransform"in e?"Webkit":"MozTransform"in e?"Moz":"msTransform"in e?"ms":"OTransform"in e?"O":"";return t+"Perspective"in e?"translate3d":t+"Transform"in e?"translate":"margin"};var s=function(){var e=[];function t(){var n=e.shift();n&&n(t)}return function(n){e.push(n),1==e.length&&t()}}(),c=function(){var e=["Webkit","O","Moz","ms"],t={};function n(e){return e.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,(function(e,t){return t.toUpperCase()}))}function r(t){var n=document.body.style;if(t in n)return t;for(var r,o=e.length,a=t.charAt(0).toUpperCase()+t.slice(1);o--;)if((r=e[o]+a)in n)return r;return t}function o(e){return e=n(e),t[e]||(t[e]=r(e))}function a(e,t,n){t=o(t),e.style[t]=n}return function(e,t){var n,r,o=arguments;if(2==o.length)for(n in t)void 0!==(r=t[n])&&t.hasOwnProperty(n)&&a(e,n,r);else a(e,o[1],o[2])}}();function d(e,t){return("string"==typeof e?e:p(e)).indexOf(" "+t+" ")>=0}function l(e,t){var n=p(e),r=n+t;d(n,t)||(e.className=r.substring(1))}function u(e,t){var n,r=p(e);d(e,t)&&(n=r.replace(" "+t+" "," "),e.className=n.substring(1,n.length-1))}function p(e){return(" "+(e.className||"")+" ").replace(/\s+/gi," ")}function v(e){e&&e.parentNode&&e.parentNode.removeChild(e)}return n},void 0===(o="function"==typeof r?r.call(t,n,t,e):r)||(e.exports=o)},27418:e=>{"use strict";var t=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,r=Object.prototype.propertyIsEnumerable;function o(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(e){r[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(o){return!1}}()?Object.assign:function(e,a){for(var i,s,c=o(e),d=1;d{"use strict";n.d(t,{Z:()=>a});var r=function(){var e=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,t=0,n={},r={util:{encode:function e(t){return t instanceof o?new o(t.type,e(t.content),t.alias):Array.isArray(t)?t.map(e):t.replace(/&/g,"&").replace(/=u.reach);w+=S.value.length,S=S.next){var x=S.value;if(t.length>e.length)return;if(!(x instanceof o)){var E,q=1;if(g){if(!(E=a(k,w,e,m))||E.index>=e.length)break;var O=E.index,C=E.index+E[0].length,P=w;for(P+=S.value.length;O>=P;)P+=(S=S.next).value.length;if(w=P-=S.value.length,S.value instanceof o)continue;for(var I=S;I!==t.tail&&(Pu.reach&&(u.reach=N);var R=S.prev;if(A&&(R=c(t,R,A),w+=A.length),d(t,R,q),S=c(t,R,new o(p,h?r.tokenize(T,h):T,y,T)),L&&c(t,S,L),q>1){var D={cause:p+","+f,reach:N};i(e,t,n,S.prev,w,D),u&&D.reach>u.reach&&(u.reach=D.reach)}}}}}}function s(){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 c(e,t,n){var r=t.next,o={value:n,prev:t,next:r};return t.next=o,r.prev=o,e.length++,o}function d(e,t,n){for(var r=t.next,o=0;o"+a.content+""},r}(),o=r;r.default=r,o.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"},/"|'/]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},o.languages.markup.tag.inside["attr-value"].inside.entity=o.languages.markup.entity,o.languages.markup.doctype.inside["internal-subset"].inside=o.languages.markup,o.hooks.add("wrap",(function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&/,"&"))})),Object.defineProperty(o.languages.markup.tag,"addInlined",{value:function(e,t){var n={};n["language-"+t]={pattern:/(^$)/i,lookbehind:!0,inside:o.languages[t]},n.cdata=/^$/i;var r={"included-cdata":{pattern://i,inside:n}};r["language-"+t]={pattern:/[\s\S]+/,inside:o.languages[t]};var a={};a[e]={pattern:RegExp(/(<__[^>]*>)(?:))*\]\]>|(?!)/.source.replace(/__/g,(function(){return e})),"i"),lookbehind:!0,greedy:!0,inside:r},o.languages.insertBefore("markup","cdata",a)}}),Object.defineProperty(o.languages.markup.tag,"addAttribute",{value:function(e,t){o.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:o.languages[t]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),o.languages.html=o.languages.markup,o.languages.mathml=o.languages.markup,o.languages.svg=o.languages.markup,o.languages.xml=o.languages.extend("markup",{}),o.languages.ssml=o.languages.xml,o.languages.atom=o.languages.xml,o.languages.rss=o.languages.xml,function(e){var t="\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\b",n={pattern:/(^(["']?)\w+\2)[ \t]+\S.*/,lookbehind:!0,alias:"punctuation",inside:null},r={bash:n,environment:{pattern:RegExp("\\$"+t),alias:"constant"},variable:[{pattern:/\$?\(\([\s\S]+?\)\)/,greedy:!0,inside:{variable:[{pattern:/(^\$\(\([\s\S]+)\)\)/,lookbehind:!0},/^\$\(\(/],number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/--|\+\+|\*\*=?|<<=?|>>=?|&&|\|\||[=!+\-*/%<>^&|]=?|[?~:]/,punctuation:/\(\(?|\)\)?|,|;/}},{pattern:/\$\((?:\([^)]+\)|[^()])+\)|`[^`]+`/,greedy:!0,inside:{variable:/^\$\(|^`|\)$|`$/}},{pattern:/\$\{[^}]+\}/,greedy:!0,inside:{operator:/:[-=?+]?|[!\/]|##?|%%?|\^\^?|,,?/,punctuation:/[\[\]]/,environment:{pattern:RegExp("(\\{)"+t),lookbehind:!0,alias:"constant"}}},/\$(?:\w+|[#?*!@$])/],entity:/\\(?:[abceEfnrtv\\"]|O?[0-7]{1,3}|U[0-9a-fA-F]{8}|u[0-9a-fA-F]{4}|x[0-9a-fA-F]{1,2})/};e.languages.bash={shebang:{pattern:/^#!\s*\/.*/,alias:"important"},comment:{pattern:/(^|[^"{\\$])#.*/,lookbehind:!0},"function-name":[{pattern:/(\bfunction\s+)[\w-]+(?=(?:\s*\(?:\s*\))?\s*\{)/,lookbehind:!0,alias:"function"},{pattern:/\b[\w-]+(?=\s*\(\s*\)\s*\{)/,alias:"function"}],"for-or-select":{pattern:/(\b(?:for|select)\s+)\w+(?=\s+in\s)/,alias:"variable",lookbehind:!0},"assign-left":{pattern:/(^|[\s;|&]|[<>]\()\w+(?=\+?=)/,inside:{environment:{pattern:RegExp("(^|[\\s;|&]|[<>]\\()"+t),lookbehind:!0,alias:"constant"}},alias:"variable",lookbehind:!0},string:[{pattern:/((?:^|[^<])<<-?\s*)(\w+)\s[\s\S]*?(?:\r?\n|\r)\2/,lookbehind:!0,greedy:!0,inside:r},{pattern:/((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s[\s\S]*?(?:\r?\n|\r)\3/,lookbehind:!0,greedy:!0,inside:{bash:n}},{pattern:/(^|[^\\](?:\\\\)*)"(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|[^"\\`$])*"/,lookbehind:!0,greedy:!0,inside:r},{pattern:/(^|[^$\\])'[^']*'/,lookbehind:!0,greedy:!0},{pattern:/\$'(?:[^'\\]|\\[\s\S])*'/,greedy:!0,inside:{entity:r.entity}}],environment:{pattern:RegExp("\\$?"+t),alias:"constant"},variable:r.variable,function:{pattern:/(^|[\s;|&]|[<>]\()(?:add|apropos|apt|apt-cache|apt-get|aptitude|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|docker|docker-compose|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|node|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|podman|podman-compose|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vcpkg|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\s;|&])/,lookbehind:!0},keyword:{pattern:/(^|[\s;|&]|[<>]\()(?:case|do|done|elif|else|esac|fi|for|function|if|in|select|then|until|while)(?=$|[)\s;|&])/,lookbehind:!0},builtin:{pattern:/(^|[\s;|&]|[<>]\()(?:\.|:|alias|bind|break|builtin|caller|cd|command|continue|declare|echo|enable|eval|exec|exit|export|getopts|hash|help|let|local|logout|mapfile|printf|pwd|read|readarray|readonly|return|set|shift|shopt|source|test|times|trap|type|typeset|ulimit|umask|unalias|unset)(?=$|[)\s;|&])/,lookbehind:!0,alias:"class-name"},boolean:{pattern:/(^|[\s;|&]|[<>]\()(?:false|true)(?=$|[)\s;|&])/,lookbehind:!0},"file-descriptor":{pattern:/\B&\d\b/,alias:"important"},operator:{pattern:/\d?<>|>\||\+=|=[=~]?|!=?|<<[<-]?|[&\d]?>>|\d[<>]&?|[<>][&=]?|&[>&]?|\|[&|]?/,inside:{"file-descriptor":{pattern:/^\d/,alias:"important"}}},punctuation:/\$?\(\(?|\)\)?|\.\.|[{}[\];\\]/,number:{pattern:/(^|\s)(?:[1-9]\d*|0)(?:[.,]\d+)?\b/,lookbehind:!0}},n.inside=e.languages.bash;for(var o=["comment","function-name","for-or-select","assign-left","string","environment","function","keyword","builtin","boolean","file-descriptor","operator","punctuation","number"],a=r.variable[1].inside,i=0;i]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/},o.languages.c=o.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|[?:~]|[-+*/%&|^!=<>]=?/}),o.languages.insertBefore("c","string",{char:{pattern:/'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n]){0,32}'/,greedy:!0}}),o.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},o.languages.c.string],char:o.languages.c.char,comment:o.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:o.languages.c}}}}),o.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 o.languages.c.boolean,function(e){var t=/\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|char8_t|class|co_await|co_return|co_yield|compl|concept|const|const_cast|consteval|constexpr|constinit|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|final|float|for|friend|goto|if|import|inline|int|int16_t|int32_t|int64_t|int8_t|long|module|mutable|namespace|new|noexcept|nullptr|operator|override|private|protected|public|register|reinterpret_cast|requires|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|uint16_t|uint32_t|uint64_t|uint8_t|union|unsigned|using|virtual|void|volatile|wchar_t|while)\b/,n=/\b(?!)\w+(?:\s*\.\s*\w+)*\b/.source.replace(//g,(function(){return t.source}));e.languages.cpp=e.languages.extend("c",{"class-name":[{pattern:RegExp(/(\b(?:class|concept|enum|struct|typename)\s+)(?!)\w+/.source.replace(//g,(function(){return t.source}))),lookbehind:!0},/\b[A-Z]\w*(?=\s*::\s*\w+\s*\()/,/\b[A-Z_]\w*(?=\s*::\s*~\w+\s*\()/i,/\b\w+(?=\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>\s*::\s*\w+\s*\()/],keyword:t,number:{pattern:/(?:\b0b[01']+|\b0x(?:[\da-f']+(?:\.[\da-f']*)?|\.[\da-f']+)(?:p[+-]?[\d']+)?|(?:\b[\d']+(?:\.[\d']*)?|\B\.[\d']+)(?:e[+-]?[\d']+)?)[ful]{0,4}/i,greedy:!0},operator:/>>=?|<<=?|->|--|\+\+|&&|\|\||[?:~]|<=>|[-+*/%&|^!=<>]=?|\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\b/,boolean:/\b(?:false|true)\b/}),e.languages.insertBefore("cpp","string",{module:{pattern:RegExp(/(\b(?:import|module)\s+)/.source+"(?:"+/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|<[^<>\r\n]*>/.source+"|"+/(?:\s*:\s*)?|:\s*/.source.replace(//g,(function(){return n}))+")"),lookbehind:!0,greedy:!0,inside:{string:/^[<"][\s\S]+/,operator:/:/,punctuation:/\./}},"raw-string":{pattern:/R"([^()\\ ]{0,16})\([\s\S]*?\)\1"/,alias:"string",greedy:!0}}),e.languages.insertBefore("cpp","keyword",{"generic-function":{pattern:/\b(?!operator\b)[a-z_]\w*\s*<(?:[^<>]|<[^<>]*>)*>(?=\s*\()/i,inside:{function:/^\w+/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:e.languages.cpp}}}}),e.languages.insertBefore("cpp","operator",{"double-colon":{pattern:/::/,alias:"punctuation"}}),e.languages.insertBefore("cpp","class-name",{"base-clause":{pattern:/(\b(?:class|struct)\s+\w+\s*:\s*)[^;{}"'\s]+(?:\s+[^;{}"'\s]+)*(?=\s*[;{])/,lookbehind:!0,greedy:!0,inside:e.languages.extend("cpp",{})}}),e.languages.insertBefore("inside","double-colon",{"class-name":/\b[a-z_]\w*\b(?!\s*::)/i},e.languages.cpp["base-clause"])}(o),function(e){var t=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;e.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:/@[\w-](?:[^;{\s]|\s+(?![\s{]))*(?:;|(?=\s*\{))/,inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+t.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+t.source+"$"),alias:"url"}}},selector:{pattern:RegExp("(^|[{}\\s])[^{}\\s](?:[^{};\"'\\s]|\\s+(?![\\s{])|"+t.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:t,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},e.languages.css.atrule.inside.rest=e.languages.css;var n=e.languages.markup;n&&(n.tag.addInlined("style","css"),n.tag.addAttribute("style","css"))}(o),function(e){var t,n=/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/;e.languages.css.selector={pattern:e.languages.css.selector.pattern,lookbehind:!0,inside:t={"pseudo-element":/:(?:after|before|first-letter|first-line|selection)|::[-\w]+/,"pseudo-class":/:[-\w]+/,class:/\.[-\w]+/,id:/#[-\w]+/,attribute:{pattern:RegExp("\\[(?:[^[\\]\"']|"+n.source+")*\\]"),greedy:!0,inside:{punctuation:/^\[|\]$/,"case-sensitivity":{pattern:/(\s)[si]$/i,lookbehind:!0,alias:"keyword"},namespace:{pattern:/^(\s*)(?:(?!\s)[-*\w\xA0-\uFFFF])*\|(?!=)/,lookbehind:!0,inside:{punctuation:/\|$/}},"attr-name":{pattern:/^(\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+/,lookbehind:!0},"attr-value":[n,{pattern:/(=\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+(?=\s*$)/,lookbehind:!0}],operator:/[|~*^$]?=/}},"n-th":[{pattern:/(\(\s*)[+-]?\d*[\dn](?:\s*[+-]\s*\d+)?(?=\s*\))/,lookbehind:!0,inside:{number:/[\dn]+/,operator:/[+-]/}},{pattern:/(\(\s*)(?:even|odd)(?=\s*\))/i,lookbehind:!0}],combinator:/>|\+|~|\|\|/,punctuation:/[(),]/}},e.languages.css.atrule.inside["selector-function-argument"].inside=t,e.languages.insertBefore("css","property",{variable:{pattern:/(^|[^-\w\xA0-\uFFFF])--(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*/i,lookbehind:!0}});var r={pattern:/(\b\d+)(?:%|[a-z]+(?![\w-]))/,lookbehind:!0},o={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0};e.languages.insertBefore("css","function",{operator:{pattern:/(\s)[+\-*\/](?=\s)/,lookbehind:!0},hexcode:{pattern:/\B#[\da-f]{3,8}\b/i,alias:"color"},color:[{pattern:/(^|[^\w-])(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)(?![\w-])/i,lookbehind:!0},{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:r,number:o,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:r,number:o})}(o),o.languages.javascript=o.languages.extend("clike",{"class-name":[o.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}|\?\?=?|\?\.?|[~:]/}),o.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,o.languages.insertBefore("javascript","keyword",{regex:{pattern:/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)\/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/,lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:o.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:o.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:o.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:o.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:o.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),o.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:o.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"}}),o.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),o.languages.markup&&(o.languages.markup.tag.addInlined("script","javascript"),o.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")),o.languages.js=o.languages.javascript,function(e){var t=/#(?!\{).+/,n={pattern:/#\{[^}]+\}/,alias:"variable"};e.languages.coffeescript=e.languages.extend("javascript",{comment:t,string:[{pattern:/'(?:\\[\s\S]|[^\\'])*'/,greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,greedy:!0,inside:{interpolation:n}}],keyword:/\b(?:and|break|by|catch|class|continue|debugger|delete|do|each|else|extend|extends|false|finally|for|if|in|instanceof|is|isnt|let|loop|namespace|new|no|not|null|of|off|on|or|own|return|super|switch|then|this|throw|true|try|typeof|undefined|unless|until|when|while|window|with|yes|yield)\b/,"class-member":{pattern:/@(?!\d)\w+/,alias:"variable"}}),e.languages.insertBefore("coffeescript","comment",{"multiline-comment":{pattern:/###[\s\S]+?###/,alias:"comment"},"block-regex":{pattern:/\/{3}[\s\S]*?\/{3}/,alias:"regex",inside:{comment:t,interpolation:n}}}),e.languages.insertBefore("coffeescript","string",{"inline-javascript":{pattern:/`(?:\\[\s\S]|[^\\`])*`/,inside:{delimiter:{pattern:/^`|`$/,alias:"punctuation"},script:{pattern:/[\s\S]+/,alias:"language-javascript",inside:e.languages.javascript}}},"multiline-string":[{pattern:/'''[\s\S]*?'''/,greedy:!0,alias:"string"},{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string",inside:{interpolation:n}}]}),e.languages.insertBefore("coffeescript","keyword",{property:/(?!\d)\w+(?=\s*:(?!:))/}),delete e.languages.coffeescript["template-string"],e.languages.coffee=e.languages.coffeescript}(o),function(e){var t=/[*&][^\s[\]{},]+/,n=/!(?:<[\w\-%#;/?:@&=+$,.!~*'()[\]]+>|(?:[a-zA-Z\d-]*!)?[\w\-%#;/?:@&=+$.~*'()]+)?/,r="(?:"+n.source+"(?:[ \t]+"+t.source+")?|"+t.source+"(?:[ \t]+"+n.source+")?)",o=/(?:[^\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})),a=/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\\\r\n]|\\.)*'/.source;function i(e,t){t=(t||"").replace(/m/g,"")+"m";var n=/([:\-,[{]\s*(?:\s<>[ \t]+)?)(?:<>)(?=[ \t]*(?:$|,|\]|\}|(?:[\r\n]\s*)?#))/.source.replace(/<>/g,(function(){return r})).replace(/<>/g,(function(){return e}));return RegExp(n,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"(?:"+o+"|"+a+")"}))),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(a),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}(o),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,o=/\|?__(?:\|__)+\|?(?:(?:\n|\r\n?)|(?![\s\S]))/.source.replace(/__/g,(function(){return r})),a=/\|?[ \t]*:?-{3,}:?[ \t]*(?:\|[ \t]*:?-{3,}:?[ \t]*)+\|?(?:\n|\r\n?)/.source;e.languages.markdown=e.languages.extend("markup",{}),e.languages.insertBefore("markdown","prolog",{"front-matter-block":{pattern:/(^(?:\s*[\r\n])?)---(?!.)[\s\S]*?[\r\n]---(?!.)/,lookbehind:!0,greedy:!0,inside:{punctuation:/^---|---$/,"front-matter":{pattern:/\S+(?:\s+\S+)*/,alias:["yaml","language-yaml"],inside:e.languages.yaml}}},blockquote:{pattern:/^>(?:[\t ]*>)*/m,alias:"punctuation"},table:{pattern:RegExp("^"+o+a+"(?:"+o+")*","m"),inside:{"table-data-rows":{pattern:RegExp("^("+o+a+")(?:"+o+")*$"),lookbehind:!0,inside:{"table-data":{pattern:RegExp(r),inside:e.languages.markdown},punctuation:/\|/}},"table-line":{pattern:RegExp("^("+o+")"+a+"$"),lookbehind:!0,inside:{punctuation:/\||:?-{3,}:?/}},"table-header-row":{pattern:RegExp("^"+o+"$"),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:'"'},c=String.fromCodePoint||String.fromCharCode;e.languages.md=e.languages.markdown}(o),o.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:o.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+/},o.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;n0)){var s=p(/^\{$/,/^\}$/);if(-1===s)continue;for(var c=n;c=0&&v(d,"variable-input")}}}}function l(e){return t[n+e]}function u(e,t){t=t||0;for(var 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,o=r.inside["interpolation-punctuation"],a=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 s(e,t){return"___"+t.toUpperCase()+"_"+e+"___"}function c(t,n,r){var o={code:t,grammar:n,language:r};return e.hooks.run("before-tokenize",o),o.tokens=e.tokenize(o.code,o.grammar),e.hooks.run("after-tokenize",o),o.tokens}function d(t){var n={};n["interpolation-punctuation"]=o;var a=e.tokenize(t,n);if(3===a.length){var i=[1,1];i.push.apply(i,c(a[1],e.languages.javascript,"javascript")),a.splice.apply(a,i)}return new e.Token("interpolation",a,r.alias,t)}function l(t,n,r){var o=e.tokenize(t,{interpolation:{pattern:RegExp(a),lookbehind:!0}}),i=0,l={},u=c(o.map((function(e){if("string"==typeof e)return e;for(var n,o=e.content;-1!==t.indexOf(n=s(i++,r)););return l[n]=o,n})).join(""),n,r),p=Object.keys(l);return i=0,function e(t){for(var n=0;n=p.length)return;var r=t[n];if("string"==typeof r||"string"==typeof r.content){var o=p[i],a="string"==typeof r?r:r.content,s=a.indexOf(o);if(-1!==s){++i;var c=a.substring(0,s),u=d(l[o]),v=a.substring(s+o.length),f=[];if(c&&f.push(c),f.push(u),v){var b=[v];e(b),f.push.apply(f,b)}"string"==typeof r?(t.splice.apply(t,[n,1].concat(f)),n+=f.length-1):r.content=f}}else{var h=r.content;Array.isArray(h)?e(h):e([h])}}}(u),new e.Token(r,u,"language-"+r,t)}e.languages.javascript["template-string"]=[i("css",/\b(?:styled(?:\([^)]*\))?(?:\s*\.\s*\w+(?:\([^)]*\))*)*|css(?:\s*\.\s*(?:global|resolve))?|createGlobalStyle|keyframes)/.source),i("html",/\bhtml|\.\s*(?:inner|outer)HTML\s*\+?=/.source),i("svg",/\bsvg/.source),i("markdown",/\b(?:markdown|md)/.source),i("graphql",/\b(?:gql|graphql(?:\s*\.\s*experimental)?)/.source),i("sql",/\bsql/.source),t].filter(Boolean);var u={javascript:!0,js:!0,typescript:!0,ts:!0,jsx:!0,tsx:!0};function p(e){return"string"==typeof e?e:Array.isArray(e)?e.map(p).join(""):p(e.content)}e.hooks.add("after-tokenize",(function(t){t.language in u&&function t(n){for(var r=0,o=n.length;r]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,lookbehind:!0,greedy:!0,inside:null},builtin:/\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\b/}),e.languages.typescript.keyword.push(/\b(?:abstract|declare|is|keyof|readonly|require)\b/,/\b(?:asserts|infer|interface|module|namespace|type)\b(?=\s*(?:[{_$a-zA-Z\xA0-\uFFFF]|$))/,/\btype\b(?=\s*(?:[\{*]|$))/),delete e.languages.typescript.parameter,delete e.languages.typescript["literal-property"];var t=e.languages.extend("typescript",{});delete t["class-name"],e.languages.typescript["class-name"].inside=t,e.languages.insertBefore("typescript","function",{decorator:{pattern:/@[$\w\xA0-\uFFFF]+/,inside:{at:{pattern:/^@/,alias:"operator"},function:/^[\s\S]+/}},"generic-function":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\s*\()/,greedy:!0,inside:{function:/^#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:t}}}}),e.languages.ts=e.languages.typescript}(o),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 a(e,t){return e=e.replace(//g,(function(){return n})).replace(//g,(function(){return r})).replace(//g,(function(){return o})),RegExp(e,t)}o=a(o).source,e.languages.jsx=e.languages.extend("markup",t),e.languages.jsx.tag.pattern=a(/<\/?(?:[\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:a(//.source),inside:e.languages.jsx}},e.languages.jsx.tag),e.languages.insertBefore("inside","special-attr",{script:{pattern:a(/=/.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(""):""},s=function(t){for(var n=[],r=0;r0&&n[n.length-1].tagName===i(o.content[0].content[1])&&n.pop():"/>"===o.content[o.content.length-1].content||n.push({tagName:i(o.content[0].content[1]),openedBraces:0}):n.length>0&&"punctuation"===o.type&&"{"===o.content?n[n.length-1].openedBraces++:n.length>0&&n[n.length-1].openedBraces>0&&"punctuation"===o.type&&"}"===o.content?n[n.length-1].openedBraces--:a=!0),(a||"string"==typeof o)&&n.length>0&&0===n[n.length-1].openedBraces){var c=i(o);r0&&("string"==typeof t[r-1]||"plain-text"===t[r-1].type)&&(c=i(t[r-1])+c,t.splice(r-1,1),r--),t[r]=new e.Token("plain-text",c,null,c)}o.content&&"string"!=typeof o.content&&s(o.content)}};e.hooks.add("after-tokenize",(function(e){"jsx"!==e.language&&"tsx"!==e.language||s(e.tokens)}))}(o),function(e){e.languages.diff={coord:[/^(?:\*{3}|-{3}|\+{3}).*$/m,/^@@.*@@$/m,/^\d.*$/m]};var t={"deleted-sign":"-","deleted-arrow":"<","inserted-sign":"+","inserted-arrow":">",unchanged:" ",diff:"!"};Object.keys(t).forEach((function(n){var r=t[n],o=[];/^\w+$/.test(n)||o.push(/\w+/.exec(n)[0]),"diff"===n&&o.push("bold"),e.languages.diff[n]={pattern:RegExp("^(?:["+r+"].*(?:\r\n?|\n|(?![\\s\\S])))+","m"),alias:o,inside:{line:{pattern:/(.)(?=[\s\S]).*(?:\r\n?|\n)?/,lookbehind:!0},prefix:{pattern:/[\s\S]/,alias:/\w+/.exec(n)[0]}}}})),Object.defineProperty(e.languages.diff,"PREFIXES",{value:t})}(o),o.languages.git={comment:/^#.*/m,deleted:/^[-\u2013].*/m,inserted:/^\+.*/m,string:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,command:{pattern:/^.*\$ git .*$/m,inside:{parameter:/\s--?\w+/}},coord:/^@@.*@@$/m,"commit-sha1":/^commit \w{40}$/m},o.languages.go=o.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/}),o.languages.insertBefore("go","string",{char:{pattern:/'(?:\\.|[^'\\\r\n]){0,10}'/,greedy:!0}}),delete o.languages.go["class-name"],function(e){function t(e,t){return"___"+e.toUpperCase()+t+"___"}Object.defineProperties(e.languages["markup-templating"]={},{buildPlaceholders:{value:function(n,r,o,a){if(n.language===r){var i=n.tokenStack=[];n.code=n.code.replace(o,(function(e){if("function"==typeof a&&!a(e))return e;for(var o,s=i.length;-1!==n.code.indexOf(o=t(r,s));)++s;return i[s]=e,o})),n.grammar=e.languages.markup}}},tokenizePlaceholders:{value:function(n,r){if(n.language===r&&n.tokenStack){n.grammar=e.languages[r];var o=0,a=Object.keys(n.tokenStack);!function i(s){for(var c=0;c=a.length);c++){var d=s[c];if("string"==typeof d||d.content&&"string"==typeof d.content){var l=a[o],u=n.tokenStack[l],p="string"==typeof d?d:d.content,v=t(r,l),f=p.indexOf(v);if(f>-1){++o;var b=p.substring(0,f),h=new e.Token(r,e.tokenize(u,n.grammar),"language-"+r,u),m=p.substring(f+v.length),g=[];b&&g.push.apply(g,i([b])),g.push(h),m&&g.push.apply(g,i([m])),"string"==typeof d?s.splice.apply(s,[c,1].concat(g)):d.content=g}}else d.content&&i(d.content)}return s}(n.tokens)}}}})}(o),function(e){e.languages.handlebars={comment:/\{\{![\s\S]*?\}\}/,delimiter:{pattern:/^\{\{\{?|\}\}\}?$/,alias:"punctuation"},string:/(["'])(?:\\.|(?!\1)[^\\\r\n])*\1/,number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee][+-]?\d+)?/,boolean:/\b(?:false|true)\b/,block:{pattern:/^(\s*(?:~\s*)?)[#\/]\S+?(?=\s*(?:~\s*)?$|\s)/,lookbehind:!0,alias:"keyword"},brackets:{pattern:/\[[^\]]+\]/,inside:{punctuation:/\[|\]/,variable:/[\s\S]+/}},punctuation:/[!"#%&':()*+,.\/;<=>@\[\\\]^`{|}~]/,variable:/[^!"#%&'()*+,\/;<=>@\[\\\]^`{|}~\s]+/},e.hooks.add("before-tokenize",(function(t){e.languages["markup-templating"].buildPlaceholders(t,"handlebars",/\{\{\{[\s\S]+?\}\}\}|\{\{[\s\S]+?\}\}/g)})),e.hooks.add("after-tokenize",(function(t){e.languages["markup-templating"].tokenizePlaceholders(t,"handlebars")})),e.languages.hbs=e.languages.handlebars}(o),o.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"}},o.languages.webmanifest=o.languages.json,o.languages.less=o.languages.extend("css",{comment:[/\/\*[\s\S]*?\*\//,{pattern:/(^|[^\\])\/\/.*/,lookbehind:!0}],atrule:{pattern:/@[\w-](?:\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{punctuation:/[:()]/}},selector:{pattern:/(?:@\{[\w-]+\}|[^{};\s@])(?:@\{[\w-]+\}|\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};@\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{variable:/@+[\w-]+/}},property:/(?:@\{[\w-]+\}|[\w-])+(?:\+_?)?(?=\s*:)/,operator:/[+\-*\/]/}),o.languages.insertBefore("less","property",{variable:[{pattern:/@[\w-]+\s*:/,inside:{punctuation:/:/}},/@@?[\w-]+/],"mixin-usage":{pattern:/([{;]\s*)[.#](?!\d)[\w-].*?(?=[(;])/,lookbehind:!0,alias:"function"}}),o.languages.makefile={comment:{pattern:/(^|[^\\])#(?:\\(?:\r\n|[\s\S])|[^\\\r\n])*/,lookbehind:!0},string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"builtin-target":{pattern:/\.[A-Z][^:#=\s]+(?=\s*:(?!=))/,alias:"builtin"},target:{pattern:/^(?:[^:=\s]|[ \t]+(?![\s:]))+(?=\s*:(?!=))/m,alias:"symbol",inside:{variable:/\$+(?:(?!\$)[^(){}:#=\s]+|(?=[({]))/}},variable:/\$+(?:(?!\$)[^(){}:#=\s]+|\([@*%<^+?][DF]\)|(?=[({]))/,keyword:/-include\b|\b(?:define|else|endef|endif|export|ifn?def|ifn?eq|include|override|private|sinclude|undefine|unexport|vpath)\b/,function:{pattern:/(\()(?:abspath|addsuffix|and|basename|call|dir|error|eval|file|filter(?:-out)?|findstring|firstword|flavor|foreach|guile|if|info|join|lastword|load|notdir|or|origin|patsubst|realpath|shell|sort|strip|subst|suffix|value|warning|wildcard|word(?:list|s)?)(?=[ \t])/,lookbehind:!0},operator:/(?:::|[?:+!])?=|[|@]/,punctuation:/[:;(){}]/},o.languages.objectivec=o.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 o.languages.objectivec["class-name"],o.languages.objc=o.languages.objectivec,o.languages.ocaml={comment:{pattern:/\(\*[\s\S]*?\*\)/,greedy:!0},char:{pattern:/'(?:[^\\\r\n']|\\(?:.|[ox]?[0-9a-f]{1,3}))'/i,greedy:!0},string:[{pattern:/"(?:\\(?:[\s\S]|\r\n)|[^\\\r\n"])*"/,greedy:!0},{pattern:/\{([a-z_]*)\|[\s\S]*?\|\1\}/,greedy:!0}],number:[/\b(?:0b[01][01_]*|0o[0-7][0-7_]*)\b/i,/\b0x[a-f0-9][a-f0-9_]*(?:\.[a-f0-9_]*)?(?:p[+-]?\d[\d_]*)?(?!\w)/i,/\b\d[\d_]*(?:\.[\d_]*)?(?:e[+-]?\d[\d_]*)?(?!\w)/i],directive:{pattern:/\B#\w+/,alias:"property"},label:{pattern:/\B~\w+/,alias:"property"},"type-variable":{pattern:/\B'\w+/,alias:"function"},variant:{pattern:/`\w+/,alias:"symbol"},keyword:/\b(?:as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|match|method|module|mutable|new|nonrec|object|of|open|private|rec|sig|struct|then|to|try|type|val|value|virtual|when|where|while|with)\b/,boolean:/\b(?:false|true)\b/,"operator-like-punctuation":{pattern:/\[[<>|]|[>|]\]|\{<|>\}/,alias:"punctuation"},operator:/\.[.~]|:[=>]|[=<>@^|&+\-*\/$%!?~][!$%&*+\-.\/:<=>?@^|~]*|\b(?:and|asr|land|lor|lsl|lsr|lxor|mod|or)\b/,punctuation:/;;|::|[(){}\[\].,:;#]|\b_\b/},o.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:/[{}[\];(),.:]/},o.languages.python["string-interpolation"].inside.interpolation.inside.rest=o.languages.python,o.languages.py=o.languages.python,o.languages.reason=o.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/}),o.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 o.languages.reason.function,function(e){e.languages.sass=e.languages.extend("css",{comment:{pattern:/^([ \t]*)\/[\/*].*(?:(?:\r?\n|\r)\1[ \t].+)*/m,lookbehind:!0,greedy:!0}}),e.languages.insertBefore("sass","atrule",{"atrule-line":{pattern:/^(?:[ \t]*)[@+=].+/m,greedy:!0,inside:{atrule:/(?:@[\w-]+|[+=])/}}}),delete e.languages.sass.atrule;var t=/\$[-\w]+|#\{\$[-\w]+\}/,n=[/[+*\/%]|[=!]=|<=?|>=?|\b(?:and|not|or)\b/,{pattern:/(\s)-(?=\s)/,lookbehind:!0}];e.languages.insertBefore("sass","property",{"variable-line":{pattern:/^[ \t]*\$.+/m,greedy:!0,inside:{punctuation:/:/,variable:t,operator:n}},"property-line":{pattern:/^[ \t]*(?:[^:\s]+ *:.*|:[^:\s].*)/m,greedy:!0,inside:{property:[/[^:\s]+(?=\s*:)/,{pattern:/(:)[^:\s]+/,lookbehind:!0}],punctuation:/:/,variable:t,operator:n,important:e.languages.sass.important}}}),delete e.languages.sass.property,delete e.languages.sass.important,e.languages.insertBefore("sass","punctuation",{selector:{pattern:/^([ \t]*)\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*(?:,(?:\r?\n|\r)\1[ \t]+\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*)*/m,lookbehind:!0,greedy:!0}})}(o),o.languages.scss=o.languages.extend("css",{comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},atrule:{pattern:/@[\w-](?:\([^()]+\)|[^()\s]|\s+(?!\s))*?(?=\s+[{;])/,inside:{rule:/@[\w-]+/}},url:/(?:[-a-z]+-)?url(?=\()/i,selector:{pattern:/(?=\S)[^@;{}()]?(?:[^@;{}()\s]|\s+(?!\s)|#\{\$[-\w]+\})+(?=\s*\{(?:\}|\s|[^}][^:{}]*[:{][^}]))/,inside:{parent:{pattern:/&/,alias:"important"},placeholder:/%[-\w]+/,variable:/\$[-\w]+|#\{\$[-\w]+\}/}},property:{pattern:/(?:[-\w]|\$[-\w]|#\{\$[-\w]+\})+(?=\s*:)/,inside:{variable:/\$[-\w]+|#\{\$[-\w]+\}/}}}),o.languages.insertBefore("scss","atrule",{keyword:[/@(?:content|debug|each|else(?: if)?|extend|for|forward|function|if|import|include|mixin|return|use|warn|while)\b/i,{pattern:/( )(?:from|through)(?= )/,lookbehind:!0}]}),o.languages.insertBefore("scss","important",{variable:/\$[-\w]+|#\{\$[-\w]+\}/}),o.languages.insertBefore("scss","function",{"module-modifier":{pattern:/\b(?:as|hide|show|with)\b/i,alias:"keyword"},placeholder:{pattern:/%[-\w]+/,alias:"selector"},statement:{pattern:/\B!(?:default|optional)\b/i,alias:"keyword"},boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"},operator:{pattern:/(\s)(?:[-+*\/%]|[=!]=|<=?|>=?|and|not|or)(?=\s)/,lookbehind:!0}}),o.languages.scss.atrule.inside.rest=o.languages.scss,function(e){var t={pattern:/(\b\d+)(?:%|[a-z]+)/,lookbehind:!0},n={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0},r={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},url:{pattern:/\burl\((["']?).*?\1\)/i,greedy:!0},string:{pattern:/("|')(?:(?!\1)[^\\\r\n]|\\(?:\r\n|[\s\S]))*\1/,greedy:!0},interpolation:null,func:null,important:/\B!(?:important|optional)\b/i,keyword:{pattern:/(^|\s+)(?:(?:else|for|if|return|unless)(?=\s|$)|@[\w-]+)/,lookbehind:!0},hexcode:/#[\da-f]{3,6}/i,color:[/\b(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)\b/i,{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:t,number:n,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:t,boolean:/\b(?:false|true)\b/,operator:[/~|[+!\/%<>?=]=?|[-:]=|\*[*=]?|\.{2,3}|&&|\|\||\B-\B|\b(?:and|in|is(?: a| defined| not|nt)?|not|or)\b/],number:n,punctuation:/[{}()\[\];:,]/};r.interpolation={pattern:/\{[^\r\n}:]+\}/,alias:"variable",inside:{delimiter:{pattern:/^\{|\}$/,alias:"punctuation"},rest:r}},r.func={pattern:/[\w-]+\([^)]*\).*/,inside:{function:/^[^(]+/,rest:r}},e.languages.stylus={"atrule-declaration":{pattern:/(^[ \t]*)@.+/m,lookbehind:!0,inside:{atrule:/^@[\w-]+/,rest:r}},"variable-declaration":{pattern:/(^[ \t]*)[\w$-]+\s*.?=[ \t]*(?:\{[^{}]*\}|\S.*|$)/m,lookbehind:!0,inside:{variable:/^\S+/,rest:r}},statement:{pattern:/(^[ \t]*)(?:else|for|if|return|unless)[ \t].+/m,lookbehind:!0,inside:{keyword:/^\S+/,rest:r}},"property-declaration":{pattern:/((?:^|\{)([ \t]*))(?:[\w-]|\{[^}\r\n]+\})+(?:\s*:\s*|[ \t]+)(?!\s)[^{\r\n]*(?:;|[^{\r\n,]$(?!(?:\r?\n|\r)(?:\{|\2[ \t])))/m,lookbehind:!0,inside:{property:{pattern:/^[^\s:]+/,inside:{interpolation:r.interpolation}},rest:r}},selector:{pattern:/(^[ \t]*)(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)(?:(?:\r?\n|\r)(?:\1(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)))*(?:,$|\{|(?=(?:\r?\n|\r)(?:\{|\1[ \t])))/m,lookbehind:!0,inside:{interpolation:r.interpolation,comment:r.comment,punctuation:/[{},]/}},func:r.func,string:r.string,comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0,greedy:!0},interpolation:r.interpolation,punctuation:/[{}()\[\];:.]/}}(o),function(e){var t=e.util.clone(e.languages.typescript);e.languages.tsx=e.languages.extend("jsx",t),delete e.languages.tsx.parameter,delete e.languages.tsx["literal-property"];var n=e.languages.tsx.tag;n.pattern=RegExp(/(^|[^\w$]|(?=<\/))/.source+"(?:"+n.pattern.source+")",n.pattern.flags),n.lookbehind=!0}(o),o.languages.wasm={comment:[/\(;[\s\S]*?;\)/,{pattern:/;;.*/,greedy:!0}],string:{pattern:/"(?:\\[\s\S]|[^"\\])*"/,greedy:!0},keyword:[{pattern:/\b(?:align|offset)=/,inside:{operator:/=/}},{pattern:/\b(?:(?:f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|neg?|nearest|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|sqrt|store(?:8|16|32)?|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))?|memory\.(?:grow|size))\b/,inside:{punctuation:/\./}},/\b(?:anyfunc|block|br(?:_if|_table)?|call(?:_indirect)?|data|drop|elem|else|end|export|func|get_(?:global|local)|global|if|import|local|loop|memory|module|mut|nop|offset|param|result|return|select|set_(?:global|local)|start|table|tee_local|then|type|unreachable)\b/],variable:/\$[\w!#$%&'*+\-./:<=>?@\\^`|~]+/,number:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/,punctuation:/[()]/};const a=o},22444:()=>{!function(e){var t=/("|')(?:\\(?:\r\n?|\n|.)|(?!\1)[^\\\r\n])*\1/;e.languages.json5=e.languages.extend("json",{property:[{pattern:RegExp(t.source+"(?=\\s*:)"),greedy:!0},{pattern:/(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/,alias:"unquoted"}],string:{pattern:t,greedy:!0},number:/[+-]?\b(?:NaN|Infinity|0x[a-fA-F\d]+)\b|[+-]?(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[eE][+-]?\d+\b)?/})}(Prism)},30893:()=>{Prism.languages.solidity=Prism.languages.extend("clike",{"class-name":{pattern:/(\b(?:contract|enum|interface|library|new|struct|using)\s+)(?!\d)[\w$]+/,lookbehind:!0},keyword:/\b(?:_|anonymous|as|assembly|assert|break|calldata|case|constant|constructor|continue|contract|default|delete|do|else|emit|enum|event|external|for|from|function|if|import|indexed|inherited|interface|internal|is|let|library|mapping|memory|modifier|new|payable|pragma|private|public|pure|require|returns?|revert|selfdestruct|solidity|storage|struct|suicide|switch|this|throw|using|var|view|while)\b/,operator:/=>|->|:=|=:|\*\*|\+\+|--|\|\||&&|<<=?|>>=?|[-+*/%^&|<>!=]=?|[~?]/}),Prism.languages.insertBefore("solidity","keyword",{builtin:/\b(?:address|bool|byte|u?int(?:8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?|string|bytes(?:[1-9]|[12]\d|3[0-2])?)\b/}),Prism.languages.insertBefore("solidity","number",{version:{pattern:/([<>]=?|\^)\d+\.\d+\.\d+\b/,lookbehind:!0,alias:"number"}}),Prism.languages.sol=Prism.languages.solidity},92486:(e,t,n)=>{var r={"./prism-json5":22444,"./prism-solidity":30893};function o(e){var t=a(e);return n(t)}function a(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}o.keys=function(){return Object.keys(r)},o.resolve=a,e.exports=o,o.id=92486},92703:(e,t,n)=>{"use strict";var r=n(50414);function o(){}function a(){}a.resetWarningCache=o,e.exports=function(){function e(e,t,n,o,a,i){if(i!==r){var s=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw s.name="Invariant Violation",s}}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:a,resetWarningCache:o};return n.PropTypes=n,n}},45697:(e,t,n)=>{e.exports=n(92703)()},50414:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},64448:(e,t,n)=>{"use strict";var r=n(67294),o=n(27418),a=n(63840);function i(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n