From c492dc1ed23e3a28f8655f49638f3d2e1f4f1181 Mon Sep 17 00:00:00 2001 From: Cameron Dutro Date: Tue, 24 Oct 2023 15:10:01 -0700 Subject: [PATCH] Deploy website - based on f0c7f6781ce93c65656ef78de76a2869c938d6da --- 404.html | 10 +++++----- .../js/{ed99a678.46afb1cc.js => ed99a678.95465a0d.js} | 2 +- assets/js/{main.b30adce0.js => main.44c56f1a.js} | 4 ++-- ...ce0.js.LICENSE.txt => main.44c56f1a.js.LICENSE.txt} | 0 ...ntime~main.ecff1d24.js => runtime~main.8eaf1368.js} | 2 +- blog/archive/index.html | 10 +++++----- blog/hello-world/index.html | 10 +++++----- blog/hola/index.html | 10 +++++----- blog/index.html | 10 +++++----- blog/tags/docusaurus/index.html | 10 +++++----- blog/tags/facebook/index.html | 10 +++++----- blog/tags/hello/index.html | 10 +++++----- blog/tags/hola/index.html | 10 +++++----- blog/tags/index.html | 10 +++++----- blog/welcome/index.html | 10 +++++----- docs/after-the-deploy/index.html | 10 +++++----- docs/creating-plugins/index.html | 10 +++++----- docs/customizing-deployments/index.html | 10 +++++----- docs/customizing-docker-build/index.html | 10 +++++----- docs/development/index.html | 10 +++++----- docs/environment-variables/index.html | 10 +++++----- docs/index.html | 10 +++++----- docs/managing-secrets/index.html | 10 +++++----- docs/raison-detre/index.html | 10 +++++----- docs/understanding-kubernetes/index.html | 10 +++++----- docs/why/index.html | 10 +++++----- index.html | 10 +++++----- 27 files changed, 119 insertions(+), 119 deletions(-) rename assets/js/{ed99a678.46afb1cc.js => ed99a678.95465a0d.js} (64%) rename assets/js/{main.b30adce0.js => main.44c56f1a.js} (99%) rename assets/js/{main.b30adce0.js.LICENSE.txt => main.44c56f1a.js.LICENSE.txt} (100%) rename assets/js/{runtime~main.ecff1d24.js => runtime~main.8eaf1368.js} (87%) diff --git a/404.html b/404.html index 7f07c83..68b3aca 100644 --- a/404.html +++ b/404.html @@ -6,13 +6,13 @@ Page Not Found | Kuby - - + +
-
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.

- - +
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/assets/js/ed99a678.46afb1cc.js b/assets/js/ed99a678.95465a0d.js similarity index 64% rename from assets/js/ed99a678.46afb1cc.js rename to assets/js/ed99a678.95465a0d.js index cb3ee06..acda14c 100644 --- a/assets/js/ed99a678.46afb1cc.js +++ b/assets/js/ed99a678.95465a0d.js @@ -1 +1 @@ -"use strict";(self.webpackChunkkuby_docs=self.webpackChunkkuby_docs||[]).push([[404],{3905:function(e,n,t){t.d(n,{Zo:function(){return d},kt:function(){return m}});var a=t(7294);function i(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function l(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}return t}function o(e){for(var n=1;n=0||(i[t]=e[t]);return i}(e,n);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}var s=a.createContext({}),p=function(e){var n=a.useContext(s),t=n;return e&&(t="function"==typeof e?e(n):o(o({},n),e)),t},d=function(e){var n=p(e.components);return a.createElement(s.Provider,{value:n},e.children)},u={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},c=a.forwardRef((function(e,n){var t=e.components,i=e.mdxType,l=e.originalType,s=e.parentName,d=r(e,["components","mdxType","originalType","parentName"]),c=p(t),m=i,k=c["".concat(s,".").concat(m)]||c[m]||u[m]||l;return t?a.createElement(k,o(o({ref:n},d),{},{components:t})):a.createElement(k,o({ref:n},d))}));function m(e,n){var t=arguments,i=n&&n.mdxType;if("string"==typeof e||i){var l=t.length,o=new Array(l);o[0]=c;var r={};for(var s in n)hasOwnProperty.call(n,s)&&(r[s]=n[s]);r.originalType=e,r.mdxType="string"==typeof e?e:i,o[1]=r;for(var p=2;pdocker build Options",id:"arbitrary-docker-build-options",level:3}],c={toc:u};function m(e){var n=e.components,t=(0,i.Z)(e,o);return(0,l.kt)("wrapper",(0,a.Z)({},c,t,{components:n,mdxType:"MDXLayout"}),(0,l.kt)("p",null,"We've already seen the standard way to configure Kuby's Docker component (i.e. the ",(0,l.kt)("inlineCode",{parentName:"p"},"docker do ... end")," section), but there's a lot more you can do."),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"app_root String"),": Set your application's root directory. This is useful if the app lives in a separate folder, eg. is a demo app for a gem, etc.")),(0,l.kt)("p",null,"All the other Docker build options are described in the sections below."),(0,l.kt)("h2",{id:"installing-additional-packages"},"Installing Additional Packages"),(0,l.kt)("p",null,"Kuby officially supports the Debian and Alpine distros of Linux for Docker images."),(0,l.kt)("p",null,"Let's install imagemagick as an example. First, we'll need to register the imagemagick package with Kuby. It just so happens both the Debian and Alpine Linux distros use the same name for their imagemagick package, meaning we can define using just its name."),(0,l.kt)("p",null,"Next, we tell Kuby to install imagemagick in the ",(0,l.kt)("inlineCode",{parentName:"p"},"docker")," section of our Kuby config:"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-ruby"},"Kuby.register_package(:imagemagick)\n\nKuby.define('my-app') do\n environment(:production) do\n docker do\n package_phase.add(:imagemagick)\n end\n end\nend\n")),(0,l.kt)("p",null,"If the package we want to install has a different name under each of the Linux distros, register it using a hash instead. Let's say we want to install the ",(0,l.kt)("inlineCode",{parentName:"p"},"dig")," command-line utility. In Debian, we'd need to install the ",(0,l.kt)("inlineCode",{parentName:"p"},"dnsutils")," package, but in Alpine we'd need ",(0,l.kt)("inlineCode",{parentName:"p"},"bind-tools"),"."),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-ruby"},"Kuby.register_package(:dig, debian: 'dnsutils', alpine: 'bind-tools')\n\nKuby.define('my-app') do\n environment(:production) do\n docker do\n package_phase.add(:dig)\n end\n end\nend\n")),(0,l.kt)("p",null,"Finally, some packages are more complicated to install. In such cases, define a Ruby class that responds to ",(0,l.kt)("inlineCode",{parentName:"p"},"install_on_debian")," and ",(0,l.kt)("inlineCode",{parentName:"p"},"install_on_alpine"),", and register it with Kuby."),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-ruby"},"class WatchmanPackage < Kuby::Docker::Packages::Package\n def install_on_debian(dockerfile)\n dockerfile.run(<<~END)\n git clone --no-checkout https://github.com/facebook/watchman.git \\\n && cd watchman \\\n && git checkout v4.7.0 \\\n && ./autogen.sh \\\n && ./configure \\\n && make && make install\n END\n end\n\n def install_on_alpine(dockerfile)\n # alpine-specific statements\n end\nend\n\nKuby.register_package(:watchman, WatchmanPackage)\n\nKuby.define('my-app') do\n environment(:production) do\n docker do\n package_phase.add(:watchman)\n end\n end\nend\n")),(0,l.kt)("h2",{id:"selecting-a-different-package-version"},"Selecting a Different Package Version"),(0,l.kt)("p",null,"Some Kuby packages like Yarn and NodeJS support installing specific versions. For example, to install a specific version of NodeJS for your app, first remove the ",(0,l.kt)("inlineCode",{parentName:"p"},":nodejs")," package and then add it back again using the version you want:"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-ruby"},"Kuby.define('my-app') do\n environment(:production) do\n docker do\n package_phase.remove(:nodejs)\n package_phase.add(:nodejs, '18.10.0')\n end\n end\nend\n")),(0,l.kt)("h2",{id:"build-phases"},"Build Phases"),(0,l.kt)("p",null,"Kuby builds Docker images in 8 build phases. The options available in the various phases are documented below."),(0,l.kt)("h3",{id:"setup-phase"},"Setup Phase"),(0,l.kt)("p",null,"The setup phase defines the Docker base image (eg. ruby:2.6.3, ruby:2.6.3-alpine, etc), sets the working directory, and defines the ",(0,l.kt)("inlineCode",{parentName:"p"},"KUBY_ENV")," and ",(0,l.kt)("inlineCode",{parentName:"p"},"RAILS_ENV")," environment variables."),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"setup_phase.base_image = String"),": Sets the Docker base image on top of which your application's image will be built. Defaults to the official Ruby image for the version of Ruby currently running the ",(0,l.kt)("inlineCode",{parentName:"li"},"kuby")," command."),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"setup_phase.working_dir = String"),": Sets the working directory for the Docker image's filesystem. Application code will be copied into this directory and commands like ",(0,l.kt)("inlineCode",{parentName:"li"},"bundle install")," executed within it. Defaults to /usr/src/app."),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"setup_phase.rails_env = String"),": Sets ",(0,l.kt)("inlineCode",{parentName:"li"},"RAILS_ENV"),". Defaults to the current Kuby env, which is either the value passed to the Kuby CLI tool via the ",(0,l.kt)("inlineCode",{parentName:"li"},"-e")," flag (eg. ",(0,l.kt)("inlineCode",{parentName:"li"},"kuby -e production ..."),"), or the value of the ",(0,l.kt)("inlineCode",{parentName:"li"},"KUBY_ENV")," environment variable.")),(0,l.kt)("h3",{id:"package-phase"},"Package Phase"),(0,l.kt)("p",null,"The package phase installs packages via the operating system's package manager, eg. ",(0,l.kt)("inlineCode",{parentName:"p"},"apt-get"),", ",(0,l.kt)("inlineCode",{parentName:"p"},"apk"),", ",(0,l.kt)("inlineCode",{parentName:"p"},"yum"),", etc. Popular packages include things like database drivers (eg. postgresql-client, sqlite3-dev), and image processing libraries (eg. imagemagick, graphicsmagick)."),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"package_phase.add(package_name: Symbol)"),": Adds a package by its name. Packages must be registered ahead of time (see above)."),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"package_phase.remove(package_name: Symbol)"),": Removes a package by its name.")),(0,l.kt)("h3",{id:"bundler-phase"},"Bundler Phase"),(0,l.kt)("p",null,"The Bundler phase installs all the Ruby dependencies listed in your app's Gemfile via Bundler."),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"bundler_phase.version = String"),": Sets the version of Bundler to use. Defaults to the current version of Bundler being used to run the ",(0,l.kt)("inlineCode",{parentName:"li"},"kuby")," command."),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"bundler_phase.gemfile = String"),": Sets the path to the Gemfile."),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"bundler_phase.without = Array[String]"),": Sets the array of Bundler groups to be ignored during installation."),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"bundler_phase.executable = String"),": Sets the path to the Bundler executable. Defaults to ",(0,l.kt)("inlineCode",{parentName:"li"},"bundle"),"."),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"bundler_phase.gemfiles(gemfiles: Array[String])"),": Specifies additional Gemfiles to be copied into the Docker image before installation. Useful if your main Gemfile references other Gemfiles, eg. via the ",(0,l.kt)("a",{parentName:"li",href:"https://medium.com/alliants-blog/modular-composable-gemfiles-5545c83b5319"},(0,l.kt)("inlineCode",{parentName:"a"},"eval_gemfile")," method"),".")),(0,l.kt)("h3",{id:"yarn-phase"},"Yarn Phase"),(0,l.kt)("p",null,"The Yarn phase installs all the JavaScript dependencies listed in your app's package.json via Yarn."),(0,l.kt)("h3",{id:"copy-phase"},"Copy Phase"),(0,l.kt)("p",null,"The copy phase copies your app's source code into the Docker image."),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"copy_phase << String"),": Adds an additional path to copy into the image. Defaults to the current directory (eg: ./)")),(0,l.kt)("h3",{id:"app-phase"},"App Phase"),(0,l.kt)("p",null,"The app phase allows setting environment variables. These variables will be available to any commands run afterwards in the ",(0,l.kt)("inlineCode",{parentName:"p"},"docker build")," process, but will also be accessible to your application via Ruby's ",(0,l.kt)("inlineCode",{parentName:"p"},"ENV")," hash."),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"app_phase.env(key: String, value: String)"),": Adds an environment variable.")),(0,l.kt)("h3",{id:"assets-phase"},"Assets Phase"),(0,l.kt)("p",null,"The assets phase compiles static assets managed by both the asset pipeline and Webpacker."),(0,l.kt)("h3",{id:"webserver-phase"},"Webserver Phase"),(0,l.kt)("p",null,"The webserver phase instructs the Docker image to use a webserver to run your app. Currently only the Rails default, ",(0,l.kt)("a",{parentName:"p",href:"https://github.com/puma/puma"},"Puma"),", is supported (including puma in your Gemfile is all you need to do - no other configuration is necessary)."),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"webserver_phase.port = Integer"),": Sets the port the webserver should listen on."),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"webserver_phase.webserver = Symbol"),": Sets the webserver to use. Must be ",(0,l.kt)("inlineCode",{parentName:"li"},":puma"),". Additional webservers may be supported in the future if there is demand. The only reason to set this field manually is if Kuby can't detect Puma in your Gemfile for some reason.")),(0,l.kt)("h2",{id:"creating-a-custom-build-phase"},"Creating A Custom Build Phase"),(0,l.kt)("p",null,"Phases are just Ruby classes that respond to the ",(0,l.kt)("inlineCode",{parentName:"p"},"apply_to(dockerfile)")," method. It's possible to define your own custom phases and insert them into the build process. To do so, create a Ruby class and define the appropriate method. Then, insert your new phase. For example, let's define a phase that writes a file into the image that contains the current git commit ID (it can be handy to know which version of your code your image contains). We assume the current git commit is passed as a Docker build argument, since it won't be available to Docker otherwise (in other words, the .git folder won't and shouldn't be copied into the image)."),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-ruby"},"class GitCommitPhase\n def apply_to(dockerfile)\n dockerfile.run('echo $GIT_COMMIT > GIT_COMMIT')\n end\nend\n\nKuby.define('my-app') do\n environment(:production) do\n docker do\n insert :git_commit_phase, GitCommitPhase.new, after: :copy_phase\n end\n end\nend\n")),(0,l.kt)("p",null,(0,l.kt)("inlineCode",{parentName:"p"},"Kuby::Docker::Dockerfile")," objects respond to the following methods, which are mapped 1:1 to ",(0,l.kt)("a",{parentName:"p",href:"https://docs.docker.com/engine/reference/builder/#format"},"Dockerfile instructions"),":"),(0,l.kt)("ol",null,(0,l.kt)("li",{parentName:"ol"},(0,l.kt)("inlineCode",{parentName:"li"},"from(image_url, as: nil)")),(0,l.kt)("li",{parentName:"ol"},(0,l.kt)("inlineCode",{parentName:"li"},"workdir(path)")),(0,l.kt)("li",{parentName:"ol"},(0,l.kt)("inlineCode",{parentName:"li"},"env(key, value)")),(0,l.kt)("li",{parentName:"ol"},(0,l.kt)("inlineCode",{parentName:"li"},"arg(arg)")," (",(0,l.kt)("inlineCode",{parentName:"li"},"arg")," is a string of the form ",(0,l.kt)("inlineCode",{parentName:"li"},"\"KEY='value'\""),")"),(0,l.kt)("li",{parentName:"ol"},(0,l.kt)("inlineCode",{parentName:"li"},"run(command)")),(0,l.kt)("li",{parentName:"ol"},(0,l.kt)("inlineCode",{parentName:"li"},"copy(source, dest, from: nil)")),(0,l.kt)("li",{parentName:"ol"},(0,l.kt)("inlineCode",{parentName:"li"},"expose(port)")),(0,l.kt)("li",{parentName:"ol"},(0,l.kt)("inlineCode",{parentName:"li"},"cmd(command)"))),(0,l.kt)("p",null,"Custom build phases can also be inserted inline, without the need to define a class:"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-ruby"},"Kuby.define('my-app') do\n environment(:production) do\n docker do\n insert :git_commit_phase, after: :copy_phase do |dockerfile|\n dockerfile.run('echo $GIT_COMMIT > GIT_COMMIT')\n end\n end\n end\nend\n")),(0,l.kt)("h2",{id:"removing-build-phases"},"Removing Build Phases"),(0,l.kt)("p",null,"Build phases can be removed entirely. For example, if your app is API-only and doesn't have any static assets, then you may want to remove the asset compilation phase entirely:"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-ruby"},"Kuby.define('my-app') do\n environment(:production) do\n docker do\n delete :assets_phase\n end\n end\nend\n")),(0,l.kt)("h2",{id:"build-options"},"Build Options"),(0,l.kt)("p",null,"It is possible to pass additional build args to ",(0,l.kt)("inlineCode",{parentName:"p"},"kuby build")," via the ",(0,l.kt)("inlineCode",{parentName:"p"},"-a")," (",(0,l.kt)("inlineCode",{parentName:"p"},"--arg"),") flag. For example, here's how to pass a build arg containing the current Git commit SHA:"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-bash"},"bundle exec kuby build -a SOURCE_COMMIT=$(git rev-parse HEAD)\n")),(0,l.kt)("p",null,(0,l.kt)("strong",{parentName:"p"},"NOTE:")," The example above assumes the ",(0,l.kt)("inlineCode",{parentName:"p"},"SOURCE_COMMIT")," build arg has been added via a custom build phase. To be able to access the value of the arg from the Rails app, it must also be exposed as an environment variable. To accomplish both goals, try something like this:"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-ruby"},"insert :git_commit_arg, after: :setup_phase do |dockerfile|\n dockerfile.arg('SOURCE_COMMIT')\n dockerfile.env('SOURCE_COMMIT', '$SOURCE_COMMIT')\nend\n")),(0,l.kt)("h3",{id:"building-specific-images"},"Building Specific Images"),(0,l.kt)("p",null,"By default, ",(0,l.kt)("inlineCode",{parentName:"p"},"kuby build")," builds all the registered Docker images. Sometimes it's useful to build a specific one instead. To do so, pass the ",(0,l.kt)("inlineCode",{parentName:"p"},"--only")," option:"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-bash"},"bundle exec kuby build --only app # only build the app image\n")),(0,l.kt)("p",null,"The value for the ",(0,l.kt)("inlineCode",{parentName:"p"},"--only")," option is an image identifier. A list of all registered images and their identifiers can be obtained via the ",(0,l.kt)("inlineCode",{parentName:"p"},"kuby images")," command."),(0,l.kt)("p",null,"A similar option is available for the ",(0,l.kt)("inlineCode",{parentName:"p"},"push")," and ",(0,l.kt)("inlineCode",{parentName:"p"},"dockerfiles")," commands, e.g., ",(0,l.kt)("inlineCode",{parentName:"p"},"kuby push --only app"),"."),(0,l.kt)("h3",{id:"arbitrary-docker-build-options"},"Arbitrary ",(0,l.kt)("inlineCode",{parentName:"h3"},"docker build")," Options"),(0,l.kt)("p",null,"It is also possible to pass arbitrary options to the ",(0,l.kt)("inlineCode",{parentName:"p"},"docker build")," command:"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-bash"},"bundle exec kuby build -- [options]\n")),(0,l.kt)("p",null,"For example, to specify a ",(0,l.kt)("a",{parentName:"p",href:"https://docs.docker.com/engine/reference/commandline/build/#custom-build-outputs"},"custom build target"),", try this:"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-bash"},"bundle exec kuby build -- --output type=tar,dest=out.tar\n")),(0,l.kt)("p",null,"The options given after the ",(0,l.kt)("inlineCode",{parentName:"p"},"--")," will be appended verbatim to the ",(0,l.kt)("inlineCode",{parentName:"p"},"docker build")," command."))}m.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkkuby_docs=self.webpackChunkkuby_docs||[]).push([[404],{3905:function(e,n,t){t.d(n,{Zo:function(){return d},kt:function(){return m}});var a=t(7294);function i(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function l(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}return t}function r(e){for(var n=1;n=0||(i[t]=e[t]);return i}(e,n);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}var s=a.createContext({}),p=function(e){var n=a.useContext(s),t=n;return e&&(t="function"==typeof e?e(n):r(r({},n),e)),t},d=function(e){var n=p(e.components);return a.createElement(s.Provider,{value:n},e.children)},u={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},c=a.forwardRef((function(e,n){var t=e.components,i=e.mdxType,l=e.originalType,s=e.parentName,d=o(e,["components","mdxType","originalType","parentName"]),c=p(t),m=i,k=c["".concat(s,".").concat(m)]||c[m]||u[m]||l;return t?a.createElement(k,r(r({ref:n},d),{},{components:t})):a.createElement(k,r({ref:n},d))}));function m(e,n){var t=arguments,i=n&&n.mdxType;if("string"==typeof e||i){var l=t.length,r=new Array(l);r[0]=c;var o={};for(var s in n)hasOwnProperty.call(n,s)&&(o[s]=n[s]);o.originalType=e,o.mdxType="string"==typeof e?e:i,r[1]=o;for(var p=2;pdocker build Options",id:"arbitrary-docker-build-options",level:3}],c={toc:u};function m(e){var n=e.components,t=(0,i.Z)(e,r);return(0,l.kt)("wrapper",(0,a.Z)({},c,t,{components:n,mdxType:"MDXLayout"}),(0,l.kt)("p",null,"We've already seen the standard way to configure Kuby's Docker component (i.e. the ",(0,l.kt)("inlineCode",{parentName:"p"},"docker do ... end")," section), but there's a lot more you can do."),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"app_root String"),": Set your application's root directory. This is useful if the app lives in a separate folder, eg. is a demo app for a gem, etc.")),(0,l.kt)("p",null,"All the other Docker build options are described in the sections below."),(0,l.kt)("h2",{id:"installing-additional-packages"},"Installing Additional Packages"),(0,l.kt)("p",null,"Kuby officially supports the Debian and Alpine distros of Linux for Docker images."),(0,l.kt)("p",null,"Let's install imagemagick as an example. First, we'll need to register the imagemagick package with Kuby. It just so happens both the Debian and Alpine Linux distros use the same name for their imagemagick package, meaning we can define using just its name."),(0,l.kt)("p",null,"Next, we tell Kuby to install imagemagick in the ",(0,l.kt)("inlineCode",{parentName:"p"},"docker")," section of our Kuby config:"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-ruby"},"Kuby.register_package(:imagemagick)\n\nKuby.define('my-app') do\n environment(:production) do\n docker do\n package_phase.add(:imagemagick)\n end\n end\nend\n")),(0,l.kt)("p",null,"If the package we want to install has a different name under each of the Linux distros, register it using a hash instead. Let's say we want to install the ",(0,l.kt)("inlineCode",{parentName:"p"},"dig")," command-line utility. In Debian, we'd need to install the ",(0,l.kt)("inlineCode",{parentName:"p"},"dnsutils")," package, but in Alpine we'd need ",(0,l.kt)("inlineCode",{parentName:"p"},"bind-tools"),"."),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-ruby"},"Kuby.register_package(:dig, debian: 'dnsutils', alpine: 'bind-tools')\n\nKuby.define('my-app') do\n environment(:production) do\n docker do\n package_phase.add(:dig)\n end\n end\nend\n")),(0,l.kt)("p",null,"Finally, some packages are more complicated to install. In such cases, define a Ruby class that responds to ",(0,l.kt)("inlineCode",{parentName:"p"},"install_on_debian")," and ",(0,l.kt)("inlineCode",{parentName:"p"},"install_on_alpine"),", and register it with Kuby."),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-ruby"},"class WatchmanPackage < Kuby::Docker::Packages::Package\n def install_on_debian(dockerfile)\n dockerfile.run(<<~END)\n git clone --no-checkout https://github.com/facebook/watchman.git \\\n && cd watchman \\\n && git checkout v4.7.0 \\\n && ./autogen.sh \\\n && ./configure \\\n && make && make install\n END\n end\n\n def install_on_alpine(dockerfile)\n # alpine-specific statements\n end\nend\n\nKuby.register_package(:watchman, WatchmanPackage)\n\nKuby.define('my-app') do\n environment(:production) do\n docker do\n package_phase.add(:watchman)\n end\n end\nend\n")),(0,l.kt)("h2",{id:"selecting-a-different-package-version"},"Selecting a Different Package Version"),(0,l.kt)("p",null,"Some Kuby packages like Yarn and NodeJS support installing specific versions. For example, to install a specific version of NodeJS for your app, first remove the ",(0,l.kt)("inlineCode",{parentName:"p"},":nodejs")," package and then add it back again using the version you want:"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-ruby"},"Kuby.define('my-app') do\n environment(:production) do\n docker do\n package_phase.remove(:nodejs)\n package_phase.add(:nodejs, '18.10.0')\n end\n end\nend\n")),(0,l.kt)("h2",{id:"build-phases"},"Build Phases"),(0,l.kt)("p",null,"Kuby builds Docker images in 8 build phases. The options available in the various phases are documented below."),(0,l.kt)("h3",{id:"setup-phase"},"Setup Phase"),(0,l.kt)("p",null,"The setup phase defines the Docker base image (eg. ruby:2.6.3, ruby:2.6.3-alpine, etc), sets the working directory, and defines the ",(0,l.kt)("inlineCode",{parentName:"p"},"KUBY_ENV")," and ",(0,l.kt)("inlineCode",{parentName:"p"},"RAILS_ENV")," environment variables."),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"setup_phase.base_image = String"),": Sets the Docker base image on top of which your application's image will be built. Defaults to the official Ruby image for the version of Ruby currently running the ",(0,l.kt)("inlineCode",{parentName:"li"},"kuby")," command."),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"setup_phase.working_dir = String"),": Sets the working directory for the Docker image's filesystem. Application code will be copied into this directory and commands like ",(0,l.kt)("inlineCode",{parentName:"li"},"bundle install")," executed within it. Defaults to /usr/src/app."),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"setup_phase.rails_env = String"),": Sets ",(0,l.kt)("inlineCode",{parentName:"li"},"RAILS_ENV"),". Defaults to the current Kuby env, which is either the value passed to the Kuby CLI tool via the ",(0,l.kt)("inlineCode",{parentName:"li"},"-e")," flag (eg. ",(0,l.kt)("inlineCode",{parentName:"li"},"kuby -e production ..."),"), or the value of the ",(0,l.kt)("inlineCode",{parentName:"li"},"KUBY_ENV")," environment variable.")),(0,l.kt)("h3",{id:"package-phase"},"Package Phase"),(0,l.kt)("p",null,"The package phase installs packages via the operating system's package manager, eg. ",(0,l.kt)("inlineCode",{parentName:"p"},"apt-get"),", ",(0,l.kt)("inlineCode",{parentName:"p"},"apk"),", ",(0,l.kt)("inlineCode",{parentName:"p"},"yum"),", etc. Popular packages include things like database drivers (eg. postgresql-client, sqlite3-dev), and image processing libraries (eg. imagemagick, graphicsmagick)."),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"package_phase.add(package_name: Symbol)"),": Adds a package by its name. Packages must be registered ahead of time (see above)."),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"package_phase.remove(package_name: Symbol)"),": Removes a package by its name.")),(0,l.kt)("h3",{id:"bundler-phase"},"Bundler Phase"),(0,l.kt)("p",null,"The Bundler phase installs all the Ruby dependencies listed in your app's Gemfile via Bundler."),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"bundler_phase.version = String"),": Sets the version of Bundler to use. Defaults to the current version of Bundler being used to run the ",(0,l.kt)("inlineCode",{parentName:"li"},"kuby")," command."),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"bundler_phase.gemfile = String"),": Sets the path to the Gemfile."),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"bundler_phase.without = Array[String]"),": Sets the array of Bundler groups to be ignored during installation."),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"bundler_phase.executable = String"),": Sets the path to the Bundler executable. Defaults to ",(0,l.kt)("inlineCode",{parentName:"li"},"bundle"),"."),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"bundler_phase.gemfiles(gemfiles: Array[String])"),": Specifies additional Gemfiles to be copied into the Docker image before installation. Useful if your main Gemfile references other Gemfiles, eg. via the ",(0,l.kt)("a",{parentName:"li",href:"https://medium.com/alliants-blog/modular-composable-gemfiles-5545c83b5319"},(0,l.kt)("inlineCode",{parentName:"a"},"eval_gemfile")," method"),".")),(0,l.kt)("h3",{id:"yarn-phase"},"Yarn Phase"),(0,l.kt)("p",null,"The Yarn phase installs all the JavaScript dependencies listed in your app's package.json via Yarn."),(0,l.kt)("h3",{id:"copy-phase"},"Copy Phase"),(0,l.kt)("p",null,"The copy phase copies your app's source code into the Docker image."),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"copy_phase << String"),": Adds an additional path to copy into the image. Defaults to the current directory (eg: ./)")),(0,l.kt)("h3",{id:"app-phase"},"App Phase"),(0,l.kt)("p",null,"The app phase allows setting environment variables. These variables will be available to any commands run afterwards in the ",(0,l.kt)("inlineCode",{parentName:"p"},"docker build")," process, but will also be accessible to your application via Ruby's ",(0,l.kt)("inlineCode",{parentName:"p"},"ENV")," hash."),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"app_phase.env(key: String, value: String)"),": Adds an environment variable.")),(0,l.kt)("h3",{id:"assets-phase"},"Assets Phase"),(0,l.kt)("p",null,"The assets phase compiles static assets managed by both the asset pipeline and Webpacker."),(0,l.kt)("h3",{id:"webserver-phase"},"Webserver Phase"),(0,l.kt)("p",null,"The webserver phase instructs the Docker image to use a webserver to run your app. Currently only the Rails default, ",(0,l.kt)("a",{parentName:"p",href:"https://github.com/puma/puma"},"Puma"),", is supported (including puma in your Gemfile is all you need to do - no other configuration is necessary)."),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"webserver_phase.port = Integer"),": Sets the port the webserver should listen on."),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"webserver_phase.workers = Integer"),": Sets the number of webserver workers to spawn. Defaults to 4."),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"webserver_phase.webserver = Symbol"),": Sets the webserver to use. Must be ",(0,l.kt)("inlineCode",{parentName:"li"},":puma"),". Additional webservers may be supported in the future if there is demand. The only reason to set this field manually is if Kuby can't detect Puma in your Gemfile for some reason.")),(0,l.kt)("h2",{id:"creating-a-custom-build-phase"},"Creating A Custom Build Phase"),(0,l.kt)("p",null,"Phases are just Ruby classes that respond to the ",(0,l.kt)("inlineCode",{parentName:"p"},"apply_to(dockerfile)")," method. It's possible to define your own custom phases and insert them into the build process. To do so, create a Ruby class and define the appropriate method. Then, insert your new phase. For example, let's define a phase that writes a file into the image that contains the current git commit ID (it can be handy to know which version of your code your image contains). We assume the current git commit is passed as a Docker build argument, since it won't be available to Docker otherwise (in other words, the .git folder won't and shouldn't be copied into the image)."),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-ruby"},"class GitCommitPhase\n def apply_to(dockerfile)\n dockerfile.run('echo $GIT_COMMIT > GIT_COMMIT')\n end\nend\n\nKuby.define('my-app') do\n environment(:production) do\n docker do\n insert :git_commit_phase, GitCommitPhase.new, after: :copy_phase\n end\n end\nend\n")),(0,l.kt)("p",null,(0,l.kt)("inlineCode",{parentName:"p"},"Kuby::Docker::Dockerfile")," objects respond to the following methods, which are mapped 1:1 to ",(0,l.kt)("a",{parentName:"p",href:"https://docs.docker.com/engine/reference/builder/#format"},"Dockerfile instructions"),":"),(0,l.kt)("ol",null,(0,l.kt)("li",{parentName:"ol"},(0,l.kt)("inlineCode",{parentName:"li"},"from(image_url, as: nil)")),(0,l.kt)("li",{parentName:"ol"},(0,l.kt)("inlineCode",{parentName:"li"},"workdir(path)")),(0,l.kt)("li",{parentName:"ol"},(0,l.kt)("inlineCode",{parentName:"li"},"env(key, value)")),(0,l.kt)("li",{parentName:"ol"},(0,l.kt)("inlineCode",{parentName:"li"},"arg(arg)")," (",(0,l.kt)("inlineCode",{parentName:"li"},"arg")," is a string of the form ",(0,l.kt)("inlineCode",{parentName:"li"},"\"KEY='value'\""),")"),(0,l.kt)("li",{parentName:"ol"},(0,l.kt)("inlineCode",{parentName:"li"},"run(command)")),(0,l.kt)("li",{parentName:"ol"},(0,l.kt)("inlineCode",{parentName:"li"},"copy(source, dest, from: nil)")),(0,l.kt)("li",{parentName:"ol"},(0,l.kt)("inlineCode",{parentName:"li"},"expose(port)")),(0,l.kt)("li",{parentName:"ol"},(0,l.kt)("inlineCode",{parentName:"li"},"cmd(command)"))),(0,l.kt)("p",null,"Custom build phases can also be inserted inline, without the need to define a class:"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-ruby"},"Kuby.define('my-app') do\n environment(:production) do\n docker do\n insert :git_commit_phase, after: :copy_phase do |dockerfile|\n dockerfile.run('echo $GIT_COMMIT > GIT_COMMIT')\n end\n end\n end\nend\n")),(0,l.kt)("h2",{id:"removing-build-phases"},"Removing Build Phases"),(0,l.kt)("p",null,"Build phases can be removed entirely. For example, if your app is API-only and doesn't have any static assets, then you may want to remove the asset compilation phase entirely:"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-ruby"},"Kuby.define('my-app') do\n environment(:production) do\n docker do\n delete :assets_phase\n end\n end\nend\n")),(0,l.kt)("h2",{id:"build-options"},"Build Options"),(0,l.kt)("p",null,"It is possible to pass additional build args to ",(0,l.kt)("inlineCode",{parentName:"p"},"kuby build")," via the ",(0,l.kt)("inlineCode",{parentName:"p"},"-a")," (",(0,l.kt)("inlineCode",{parentName:"p"},"--arg"),") flag. For example, here's how to pass a build arg containing the current Git commit SHA:"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-bash"},"bundle exec kuby build -a SOURCE_COMMIT=$(git rev-parse HEAD)\n")),(0,l.kt)("p",null,(0,l.kt)("strong",{parentName:"p"},"NOTE:")," The example above assumes the ",(0,l.kt)("inlineCode",{parentName:"p"},"SOURCE_COMMIT")," build arg has been added via a custom build phase. To be able to access the value of the arg from the Rails app, it must also be exposed as an environment variable. To accomplish both goals, try something like this:"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-ruby"},"insert :git_commit_arg, after: :setup_phase do |dockerfile|\n dockerfile.arg('SOURCE_COMMIT')\n dockerfile.env('SOURCE_COMMIT', '$SOURCE_COMMIT')\nend\n")),(0,l.kt)("h3",{id:"building-specific-images"},"Building Specific Images"),(0,l.kt)("p",null,"By default, ",(0,l.kt)("inlineCode",{parentName:"p"},"kuby build")," builds all the registered Docker images. Sometimes it's useful to build a specific one instead. To do so, pass the ",(0,l.kt)("inlineCode",{parentName:"p"},"--only")," option:"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-bash"},"bundle exec kuby build --only app # only build the app image\n")),(0,l.kt)("p",null,"The value for the ",(0,l.kt)("inlineCode",{parentName:"p"},"--only")," option is an image identifier. A list of all registered images and their identifiers can be obtained via the ",(0,l.kt)("inlineCode",{parentName:"p"},"kuby images")," command."),(0,l.kt)("p",null,"A similar option is available for the ",(0,l.kt)("inlineCode",{parentName:"p"},"push")," and ",(0,l.kt)("inlineCode",{parentName:"p"},"dockerfiles")," commands, e.g., ",(0,l.kt)("inlineCode",{parentName:"p"},"kuby push --only app"),"."),(0,l.kt)("h3",{id:"arbitrary-docker-build-options"},"Arbitrary ",(0,l.kt)("inlineCode",{parentName:"h3"},"docker build")," Options"),(0,l.kt)("p",null,"It is also possible to pass arbitrary options to the ",(0,l.kt)("inlineCode",{parentName:"p"},"docker build")," command:"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-bash"},"bundle exec kuby build -- [options]\n")),(0,l.kt)("p",null,"For example, to specify a ",(0,l.kt)("a",{parentName:"p",href:"https://docs.docker.com/engine/reference/commandline/build/#custom-build-outputs"},"custom build target"),", try this:"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-bash"},"bundle exec kuby build -- --output type=tar,dest=out.tar\n")),(0,l.kt)("p",null,"The options given after the ",(0,l.kt)("inlineCode",{parentName:"p"},"--")," will be appended verbatim to the ",(0,l.kt)("inlineCode",{parentName:"p"},"docker build")," command."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/main.b30adce0.js b/assets/js/main.44c56f1a.js similarity index 99% rename from assets/js/main.b30adce0.js rename to assets/js/main.44c56f1a.js index 27e45ba..a4a0b6c 100644 --- a/assets/js/main.b30adce0.js +++ b/assets/js/main.44c56f1a.js @@ -1,2 +1,2 @@ -/*! For license information please see main.b30adce0.js.LICENSE.txt */ -(self.webpackChunkkuby_docs=self.webpackChunkkuby_docs||[]).push([[179],{7757:function(e,t,n){e.exports=n(5666)},9782:function(e,t,n){"use strict";n.r(t),t.default={title:"Kuby",tagline:"Deploy Your Rails App the Easy Way",url:"https://getkuby.io",baseUrl:"/",onBrokenLinks:"throw",favicon:"img/favicon.ico",organizationName:"getkuby",projectName:"kuby-core",themeConfig:{navbar:{title:"Kuby",logo:{alt:"Kuby Logo",src:"img/logo.svg"},items:[{to:"docs/",activeBasePath:"docs",label:"Docs",position:"left"},{href:"https://github.com/getkuby/kuby-core",label:"GitHub",position:"left"}],hideOnScroll:!1},footer:{style:"dark",links:[{title:"Docs",items:[{label:"Quick Start Guide",to:"docs/"},{label:"Why Docker and Kubernetes?",to:"docs/why"}]},{title:"Community",items:[{label:"GitHub",href:"https://github.com/getkuby"},{label:"Twitter",href:"https://twitter.com/camertron"}]}],copyright:"Copyright \xa9 2022 @camertron. Built with Docusaurus."},colorMode:{defaultMode:"light",disableSwitch:!1,respectPrefersColorScheme:!0},prism:{additionalLanguages:["ruby"],theme:{plain:{color:"#403f53",backgroundColor:"#FBFBFB"},styles:[{types:["changed"],style:{color:"rgb(162, 191, 252)",fontStyle:"italic"}},{types:["deleted"],style:{color:"rgba(239, 83, 80, 0.56)",fontStyle:"italic"}},{types:["inserted","attr-name"],style:{color:"rgb(72, 118, 214)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(152, 159, 177)",fontStyle:"italic"}},{types:["string","builtin","char","constant","url"],style:{color:"rgb(72, 118, 214)"}},{types:["variable"],style:{color:"rgb(201, 103, 101)"}},{types:["number"],style:{color:"rgb(170, 9, 130)"}},{types:["punctuation"],style:{color:"rgb(153, 76, 195)"}},{types:["function","selector","doctype"],style:{color:"rgb(153, 76, 195)",fontStyle:"italic"}},{types:["class-name"],style:{color:"rgb(17, 17, 17)"}},{types:["tag"],style:{color:"rgb(153, 76, 195)"}},{types:["operator","property","keyword","namespace"],style:{color:"rgb(12, 150, 155)"}},{types:["boolean"],style:{color:"rgb(188, 84, 84)"}}]},darkTheme:{plain:{color:"#d6deeb",backgroundColor:"#011627"},styles:[{types:["changed"],style:{color:"rgb(162, 191, 252)",fontStyle:"italic"}},{types:["deleted"],style:{color:"rgba(239, 83, 80, 0.56)",fontStyle:"italic"}},{types:["inserted","attr-name"],style:{color:"rgb(173, 219, 103)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(99, 119, 119)",fontStyle:"italic"}},{types:["string","url"],style:{color:"rgb(173, 219, 103)"}},{types:["variable"],style:{color:"rgb(214, 222, 235)"}},{types:["number"],style:{color:"rgb(247, 140, 108)"}},{types:["builtin","char","constant","function"],style:{color:"rgb(130, 170, 255)"}},{types:["punctuation"],style:{color:"rgb(199, 146, 234)"}},{types:["selector","doctype"],style:{color:"rgb(199, 146, 234)",fontStyle:"italic"}},{types:["class-name"],style:{color:"rgb(255, 203, 139)"}},{types:["tag","operator","keyword"],style:{color:"rgb(127, 219, 202)"}},{types:["boolean"],style:{color:"rgb(255, 88, 116)"}},{types:["property"],style:{color:"rgb(128, 203, 196)"}},{types:["namespace"],style:{color:"rgb(178, 204, 214)"}}]}},docs:{versionPersistence:"localStorage"},metadata:[],hideableSidebar:!1,autoCollapseSidebarCategories:!1,tableOfContents:{minHeadingLevel:2,maxHeadingLevel:3}},presets:[["@docusaurus/preset-classic",{docs:{sidebarPath:"/Users/camertron/workspace/getkuby/kuby-core/docs/sidebars.js",editUrl:"https://github.com/getkuby/kuby-core/edit/master/docs/"},theme:{customCss:"/Users/camertron/workspace/getkuby/kuby-core/docs/src/css/custom.css"}}]],baseUrlIssueBanner:!0,i18n:{defaultLocale:"en",locales:["en"],localeConfigs:{}},onBrokenMarkdownLinks:"warn",onDuplicateRoutes:"warn",staticDirectories:["static"],customFields:{},plugins:[],themes:[],scripts:[],stylesheets:[],clientModules:[],titleDelimiter:"|",noIndex:!1}},9637:function(e,t,n){"use strict";n.d(t,{Z:function(){return h}});var r=n(7294),a=n(7462);function o(e,t,n,r,a,o,i){try{var l=e[o](i),u=l.value}catch(s){return void n(s)}l.done?t(u):Promise.resolve(u).then(r,a)}var i=n(7757),l=n.n(i),u=n(8356),s=n.n(u);function c(e){var t=e.error,n=e.retry,a=e.pastDelay;return t?r.createElement("div",{style:{textAlign:"center",color:"#fff",backgroundColor:"#fa383e",borderColor:"#fa383e",borderStyle:"solid",borderRadius:"0.25rem",borderWidth:"1px",boxSizing:"border-box",display:"block",padding:"1rem",flex:"0 0 50%",marginLeft:"25%",marginRight:"25%",marginTop:"5rem",maxWidth:"50%",width:"100%"}},r.createElement("p",null,t.message),r.createElement("div",null,r.createElement("button",{type:"button",onClick:n},"Retry"))):a?r.createElement("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh"}},r.createElement("svg",{id:"loader",style:{width:128,height:110,position:"absolute",top:"calc(100vh - 64%)"},viewBox:"0 0 45 45",xmlns:"http://www.w3.org/2000/svg",stroke:"#61dafb"},r.createElement("g",{fill:"none",fillRule:"evenodd",transform:"translate(1 1)",strokeWidth:"2"},r.createElement("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0"},r.createElement("animate",{attributeName:"r",begin:"1.5s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-opacity",begin:"1.5s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-width",begin:"1.5s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})),r.createElement("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0"},r.createElement("animate",{attributeName:"r",begin:"3s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-opacity",begin:"3s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-width",begin:"3s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})),r.createElement("circle",{cx:"22",cy:"22",r:"8"},r.createElement("animate",{attributeName:"r",begin:"0s",dur:"1.5s",values:"6;1;2;3;4;5;6",calcMode:"linear",repeatCount:"indefinite"}))))):null}var f=n(6887),d={"01a85c17":[function(){return Promise.all([n.e(532),n.e(13)]).then(n.bind(n,497))},"@theme/BlogTagsListPage",497],"031793e1":[function(){return n.e(633).then(n.t.bind(n,2511,19))},"~blog/default/blog-tags-facebook-038.json",2511],"096bfee4":[function(){return n.e(178).then(n.t.bind(n,5010,19))},"~blog/default/blog-tags-facebook-038-list.json",5010],"0b2a20fc":[function(){return n.e(226).then(n.bind(n,7154))},"@site/docs/environment_variables.md",7154],"1501b7e1":[function(){return n.e(579).then(n.t.bind(n,3769,19))},"/Users/camertron/workspace/getkuby/kuby-core/docs/.docusaurus/docusaurus-plugin-content-docs/default/plugin-route-context-module-100.json",3769],"1690e16e":[function(){return n.e(511).then(n.bind(n,9293))},"@site/docs/quick_start_guide.md",9293],17896441:[function(){return Promise.all([n.e(532),n.e(18),n.e(918)]).then(n.bind(n,2179))},"@theme/DocItem",2179],"1be78505":[function(){return Promise.all([n.e(532),n.e(514)]).then(n.bind(n,1579))},"@theme/DocPage",1579],"2868cdab":[function(){return n.e(61).then(n.bind(n,1460))},"@site/blog/2019-05-30-welcome.md",1460],"2b128c67":[function(){return n.e(785).then(n.bind(n,9841))},"@site/docs/creating_plugins.md",9841],"30a24c52":[function(){return n.e(453).then(n.t.bind(n,8605,19))},"~blog/default/blog-tags-hello-039.json",8605],"3570154c":[function(){return n.e(707).then(n.bind(n,9993))},"@site/blog/2019-05-29-hello-world.md?truncated=true",9993],"4c9e35b1":[function(){return n.e(35).then(n.t.bind(n,499,19))},"~blog/default/blog-tags-hola-ea2-list.json",499],"4d073a33":[function(){return n.e(452).then(n.t.bind(n,5745,19))},"/Users/camertron/workspace/getkuby/kuby-core/docs/.docusaurus/docusaurus-plugin-content-pages/default/plugin-route-context-module-100.json",5745],"556b727d":[function(){return n.e(48).then(n.bind(n,3285))},"@site/docs/raison_detre.md",3285],"5e9f5e1a":[function(){return Promise.resolve().then(n.bind(n,9782))},"@generated/docusaurus.config",9782],"608ae6a4":[function(){return n.e(938).then(n.t.bind(n,4545,19))},"~blog/default/blog-tags-docusaurus-0e0-list.json",4545],66406991:[function(){return n.e(110).then(n.t.bind(n,711,19))},"~blog/default/blog-tags-hello-039-list.json",711],"6875c492":[function(){return Promise.all([n.e(532),n.e(18),n.e(610)]).then(n.bind(n,9404))},"@theme/BlogTagsPostsPage",9404],"76c58298":[function(){return n.e(365).then(n.bind(n,202))},"@site/docs/manging_secrets.md",202],"814f3328":[function(){return n.e(535).then(n.t.bind(n,5641,19))},"~blog/default/blog-post-list-prop-default.json",5641],"83c4c06d":[function(){return n.e(787).then(n.bind(n,3513))},"@site/docs/customizing_deployments.md",3513],"8e9f0a8a":[function(){return n.e(968).then(n.bind(n,2684))},"@site/blog/2019-05-28-hola.md?truncated=true",2684],"8f030830":[function(){return n.e(618).then(n.bind(n,7857))},"@site/docs/development.md",7857],"935f2afb":[function(){return n.e(53).then(n.t.bind(n,1109,19))},"~docs/default/version-current-metadata-prop-751.json",1109],"969d212d":[function(){return n.e(796).then(n.bind(n,1864))},"@site/docs/why.md",1864],"9e4087bc":[function(){return n.e(608).then(n.bind(n,3012))},"@theme/BlogArchivePage",3012],a6aa9e1f:[function(){return Promise.all([n.e(532),n.e(18),n.e(89)]).then(n.bind(n,7329))},"@theme/BlogListPage",7329],a7023ddc:[function(){return n.e(713).then(n.t.bind(n,3457,19))},"~blog/default/blog-tags-tags-4c2.json",3457],a80da1cf:[function(){return n.e(205).then(n.t.bind(n,4863,19))},"~blog/default/blog-tags-docusaurus-0e0.json",4863],af172acd:[function(){return n.e(449).then(n.bind(n,7498))},"@site/blog/2019-05-30-welcome.md?truncated=true",7498],b2b675dd:[function(){return n.e(533).then(n.t.bind(n,8017,19))},"~blog/default/blog-c06.json",8017],b2f554cd:[function(){return n.e(477).then(n.t.bind(n,10,19))},"~blog/default/blog-archive-80c.json",10],b6323019:[function(){return n.e(156).then(n.bind(n,250))},"@site/docs/understanding_kubernetes.md",250],bdd709f1:[function(){return n.e(694).then(n.bind(n,6724))},"@site/blog/2019-05-28-hola.md",6724],c382bb55:[function(){return n.e(380).then(n.t.bind(n,4469,19))},"/Users/camertron/workspace/getkuby/kuby-core/docs/.docusaurus/docusaurus-plugin-content-blog/default/plugin-route-context-module-100.json",4469],c4f5d8e4:[function(){return Promise.all([n.e(532),n.e(195)]).then(n.bind(n,5239))},"@site/src/pages/index.js",5239],ccc49370:[function(){return Promise.all([n.e(532),n.e(18),n.e(103)]).then(n.bind(n,9360))},"@theme/BlogPostPage",9360],d2bed1ac:[function(){return n.e(915).then(n.bind(n,9307))},"@site/docs/after_the_deploy.md",9307],d610846f:[function(){return n.e(176).then(n.bind(n,1452))},"@site/blog/2019-05-29-hello-world.md",1452],e16015ca:[function(){return n.e(700).then(n.t.bind(n,5688,19))},"~blog/default/blog-tags-hola-ea2.json",5688],ed99a678:[function(){return n.e(404).then(n.bind(n,3605))},"@site/docs/customizing_docker_build.md",3605]},p=n(9670),m=n(226);function g(e,t){if("*"===e)return s()({loading:c,loader:(i=l().mark((function e(){var t;return l().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,n.e(75).then(n.bind(n,4608));case 2:return t=e.sent.default,e.abrupt("return",(function(e){return r.createElement(m.z,{value:{plugin:{name:"native",id:"default"}}},r.createElement(t,e))}));case 4:case"end":return e.stop()}}),e)})),u=function(){var e=this,t=arguments;return new Promise((function(n,r){var a=i.apply(e,t);function l(e){o(a,n,r,l,u,"next",e)}function u(e){o(a,n,r,l,u,"throw",e)}l(void 0)}))},function(){return u.apply(this,arguments)})});var i,u,g=f[e+"-"+t],h=[],v=[],b={},y=(0,p.Z)(g);return Object.entries(y).forEach((function(e){var t=e[0],n=e[1],r=d[n];r&&(b[t]=r[0],h.push(r[1]),v.push(r[2]))})),s().Map({loading:c,loader:b,modules:h,webpack:function(){return v},render:function(t,n){var o=JSON.parse(JSON.stringify(g));Object.keys(t).forEach((function(n){var r=t[n].default;if(!r)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 r&&"function"!=typeof r||Object.keys(t[n]).filter((function(e){return"default"!==e})).forEach((function(e){r[e]=t[n][e]}));var a=o,i=n.split(".");i.slice(0,-1).forEach((function(e){a=a[e]})),a[i[i.length-1]]=r}));var i=o.component;delete o.component;var l=o.__routeContextModule;return delete o.__routeContextModule,r.createElement(m.z,{value:l},r.createElement(i,(0,a.Z)({},o,n)))}})}var h=[{path:"/blog",component:g("/blog","99c"),exact:!0},{path:"/blog/archive",component:g("/blog/archive","37c"),exact:!0},{path:"/blog/hello-world",component:g("/blog/hello-world","feb"),exact:!0},{path:"/blog/hola",component:g("/blog/hola","30b"),exact:!0},{path:"/blog/tags",component:g("/blog/tags","1c5"),exact:!0},{path:"/blog/tags/docusaurus",component:g("/blog/tags/docusaurus","8f5"),exact:!0},{path:"/blog/tags/facebook",component:g("/blog/tags/facebook","1e3"),exact:!0},{path:"/blog/tags/hello",component:g("/blog/tags/hello","d37"),exact:!0},{path:"/blog/tags/hola",component:g("/blog/tags/hola","01f"),exact:!0},{path:"/blog/welcome",component:g("/blog/welcome","9f1"),exact:!0},{path:"/docs",component:g("/docs","504"),routes:[{path:"/docs/",component:g("/docs/","e45"),exact:!0,sidebar:"sidebar"},{path:"/docs/after-the-deploy",component:g("/docs/after-the-deploy","4c4"),exact:!0,sidebar:"sidebar"},{path:"/docs/creating-plugins",component:g("/docs/creating-plugins","c33"),exact:!0,sidebar:"sidebar"},{path:"/docs/customizing-deployments",component:g("/docs/customizing-deployments","c13"),exact:!0,sidebar:"sidebar"},{path:"/docs/customizing-docker-build",component:g("/docs/customizing-docker-build","610"),exact:!0,sidebar:"sidebar"},{path:"/docs/development",component:g("/docs/development","246"),exact:!0,sidebar:"sidebar"},{path:"/docs/environment-variables",component:g("/docs/environment-variables","83a"),exact:!0,sidebar:"sidebar"},{path:"/docs/managing-secrets",component:g("/docs/managing-secrets","e8e"),exact:!0,sidebar:"sidebar"},{path:"/docs/raison-detre",component:g("/docs/raison-detre","df8"),exact:!0,sidebar:"sidebar"},{path:"/docs/understanding-kubernetes",component:g("/docs/understanding-kubernetes","cd9"),exact:!0,sidebar:"sidebar"},{path:"/docs/why",component:g("/docs/why","f26"),exact:!0,sidebar:"sidebar"}]},{path:"/",component:g("/","d17"),exact:!0},{path:"*",component:g("*")}]},8934:function(e,t,n){"use strict";n.d(t,{_:function(){return a},t:function(){return o}});var r=n(7294),a=r.createContext(!1);function o(e){var t=e.children,n=(0,r.useState)(!1),o=n[0],i=n[1];return(0,r.useEffect)((function(){i(!0)}),[]),r.createElement(a.Provider,{value:o},t)}},3608:function(e,t,n){"use strict";var r=n(7294),a=n(3935),o=n(3727),i=n(405),l=n(9637),u=n(412),s=n(8790),c=n(8934),f=n(8940),d=n(4578),p=n(6775),m=n(4865),g=n.n(m),h=[n(2497),n(2448),n(6743),n(2295)];function v(e,t){h.forEach((function(n){var r,a,o=null!=(r=null==n||null==(a=n.default)?void 0:a[e])?r:n[e];null==o||o.apply(void 0,t)}))}var b={onRouteUpdate:function(){for(var e=arguments.length,t=new Array(e),n=0;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(/0)&&(j.current.unobserve(t),j.current.disconnect(),n())}))})),j.current.observe(t))},to:R},g&&{isActive:y,activeClassName:b}))}var g=o.forwardRef(m)},1875:function(e,t){"use strict";t.Z=function(){return null}},5999:function(e,t,n){"use strict";n.d(t,{Z:function(){return c},I:function(){return s}});var r=n(7294),a=/\{\w+\}/g,o="{}";function i(e,t){var n=[],i=e.replace(a,(function(e){var a=e.substring(1,e.length-1),i=null==t?void 0:t[a];if(void 0!==i){var l=(0,r.isValidElement)(i)?i:String(i);return n.push(l),o}return e}));return 0===n.length?e:n.every((function(e){return"string"==typeof e}))?i.split(o).reduce((function(e,t,r){var a;return e.concat(t).concat(null!=(a=n[r])?a:"")}),""):i.split(o).reduce((function(e,t,a){return[].concat(e,[r.createElement(r.Fragment,{key:a},t,n[a])])}),[])}var l=n(7529);function u(e){var t,n,r=e.id,a=e.message;if(void 0===r&&void 0===a)throw new Error("Docusaurus translation declarations must have at least a translation id or a default translation message");return null!=(t=null!=(n=l[null!=r?r:a])?n:a)?t:r}function s(e,t){return i(u({message:e.message,id:e.id}),t)}function c(e){var t=e.children,n=e.id,a=e.values;if(t&&"string"!=typeof t)throw console.warn("Illegal children",t),new Error("The Docusaurus component only accept simple string values");var o=u({message:t,id:n});return r.createElement(r.Fragment,null,i(o,a))}},9935:function(e,t,n){"use strict";n.d(t,{m:function(){return r}});var r="default"},3919:function(e,t,n){"use strict";function r(e){return!0===/^(?:\w*:|\/\/)/.test(e)}function a(e){return void 0!==e&&!r(e)}n.d(t,{Z:function(){return a},b:function(){return r}})},8143:function(e,t,n){"use strict";n.r(t),n.d(t,{Redirect:function(){return r.l_},matchPath:function(){return r.LX},useHistory:function(){return r.k6},useLocation:function(){return r.TH}});var r=n(6775)},4996:function(e,t,n){"use strict";n.d(t,{C:function(){return o},Z:function(){return i}});var r=n(2263),a=n(3919);function o(){var e=(0,r.Z)().siteConfig,t=e.baseUrl,n=e.url;return{withBaseUrl:function(e,r){return function(e,t,n,r){var o=void 0===r?{}:r,i=o.forcePrependBaseUrl,l=void 0!==i&&i,u=o.absolute,s=void 0!==u&&u;if(!n)return n;if(n.startsWith("#"))return n;if((0,a.b)(n))return n;if(l)return t+n.replace(/^\//,"");if(n===t.replace(/\/$/,""))return t;var c=n.startsWith(t)?n:t+n.replace(/^\//,"");return s?e+c:c}(n,t,e,r)}}}function i(e,t){return void 0===t&&(t={}),(0,o().withBaseUrl)(e,t)}},2263:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(7294),a=n(8940);function o(){return(0,r.useContext)(a._)}},8084:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return o},useAllPluginInstancesData:function(){return i},usePluginData:function(){return l}});var r=n(2263),a=n(9935);function o(){var e=(0,r.Z)().globalData;if(!e)throw new Error("Docusaurus global data not found.");return e}function i(e){var t=o()[e];if(!t)throw new Error('Docusaurus plugin global data not found for "'+e+'" plugin.');return t}function l(e,t){void 0===t&&(t=a.m);var n=i(e)[t];if(!n)throw new Error('Docusaurus plugin global data not found for "'+e+'" plugin with id "'+t+'".');return n}},2389:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(7294),a=n(8934);function o(){return(0,r.useContext)(a._)}},9670:function(e,t,n){"use strict";n.d(t,{Z:function(){return r}});function r(e){var t={};return function e(n,r){Object.entries(n).forEach((function(n){var a,o=n[0],i=n[1],l=r?r+"."+o:o;"object"==typeof(a=i)&&a&&Object.keys(a).length>0?e(i,l):t[l]=i}))}(e),t}},226:function(e,t,n){"use strict";n.d(t,{_:function(){return a},z:function(){return o}});var r=n(7294),a=r.createContext(null);function o(e){var t=e.children,n=e.value,o=r.useContext(a),i=(0,r.useMemo)((function(){return function(e){var t=e.parent,n=e.value;if(!t){if(!n)throw new Error("Unexpected: no Docusaurus route context found");if(!("plugin"in n))throw new Error("Unexpected: Docusaurus topmost route context has no `plugin` attribute");return n}var r=Object.assign({},t.data,null==n?void 0:n.data);return{plugin:t.plugin,data:r}}({parent:o,value:n})}),[o,n]);return r.createElement(a.Provider,{value:i},t)}},4953:function(e,t,n){"use strict";n.d(t,{Z:function(){return u}});var r=n(7294),a=n(2600),o=n(780),i=n(5742);function l(e){var t=e.error,n=e.tryAgain;return r.createElement("div",{style:{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center",height:"50vh",width:"100%",fontSize:"20px"}},r.createElement("h1",null,"This page crashed."),r.createElement("p",null,t.message),r.createElement("button",{type:"button",onClick:n},"Try again"))}function u(e){var t=e.error,n=e.tryAgain;return r.createElement(o.Z,{fallback:function(){return r.createElement(l,{error:t,tryAgain:n})}},r.createElement(i.Z,null,r.createElement("title",null,"Page Error")),r.createElement(a.Z,null,r.createElement(l,{error:t,tryAgain:n})))}},8408:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getDocVersionSuggestions=t.getActiveDocContext=t.getActiveVersion=t.getLatestVersion=t.getActivePlugin=void 0;var r=n(8143);t.getActivePlugin=function(e,t,n){void 0===n&&(n={});var a=Object.entries(e).sort((function(e,t){return t[1].path.localeCompare(e[1].path)})).find((function(e){var n=e[1];return!!(0,r.matchPath)(t,{path:n.path,exact:!1,strict:!1})})),o=a?{pluginId:a[0],pluginData:a[1]}:void 0;if(!o&&n.failfast)throw new Error("Can't find active docs plugin for \""+t+'" pathname, while it was expected to be found. Maybe you tried to use a docs feature that can only be used on a docs-related page? Existing docs plugin paths are: '+Object.values(e).map((function(e){return e.path})).join(", "));return o};t.getLatestVersion=function(e){return e.versions.find((function(e){return e.isLast}))};t.getActiveVersion=function(e,n){var a=(0,t.getLatestVersion)(e);return[].concat(e.versions.filter((function(e){return e!==a})),[a]).find((function(e){return!!(0,r.matchPath)(n,{path:e.path,exact:!1,strict:!1})}))};t.getActiveDocContext=function(e,n){var a,o,i=(0,t.getActiveVersion)(e,n),l=null==i?void 0:i.docs.find((function(e){return!!(0,r.matchPath)(n,{path:e.path,exact:!0,strict:!1})}));return{activeVersion:i,activeDoc:l,alternateDocVersions:l?(a=l.id,o={},e.versions.forEach((function(e){e.docs.forEach((function(t){t.id===a&&(o[e.name]=t)}))})),o):{}}};t.getDocVersionSuggestions=function(e,n){var r=(0,t.getLatestVersion)(e),a=(0,t.getActiveDocContext)(e,n);return{latestDocSuggestion:null==a?void 0:a.alternateDocVersions[r.name],latestVersionSuggestion:r}}},5551:function(e,t,n){"use strict";t.Jo=t.Iw=t.zu=t.yW=t.gB=t.gA=t.zh=t._r=void 0;var r=n(655),a=n(8143),o=r.__importStar(n(8084)),i=n(8408),l={};t._r=function(){var e;return null!=(e=(0,o.default)()["docusaurus-plugin-content-docs"])?e:l};t.zh=function(e){return(0,o.usePluginData)("docusaurus-plugin-content-docs",e)};t.gA=function(e){void 0===e&&(e={});var n=(0,t._r)(),r=(0,a.useLocation)().pathname;return(0,i.getActivePlugin)(n,r,e)};t.gB=function(e){return(0,t.zh)(e).versions};t.yW=function(e){var n=(0,t.zh)(e);return(0,i.getLatestVersion)(n)};t.zu=function(e){var n=(0,t.zh)(e),r=(0,a.useLocation)().pathname;return(0,i.getActiveVersion)(n,r)};t.Iw=function(e){var n=(0,t.zh)(e),r=(0,a.useLocation)().pathname;return(0,i.getActiveDocContext)(n,r)};t.Jo=function(e){var n=(0,t.zh)(e),r=(0,a.useLocation)().pathname;return(0,i.getDocVersionSuggestions)(n,r)}},541:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(7294),a="iconExternalLink_I5OW";function o(e){var t=e.width,n=void 0===t?13.5:t,o=e.height,i=void 0===o?13.5:o;return r.createElement("svg",{width:n,height:i,"aria-hidden":"true",viewBox:"0 0 24 24",className:a},r.createElement("path",{fill:"currentColor",d:"M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"}))}},2600:function(e,t,n){"use strict";n.d(t,{Z:function(){return we}});var r=n(7294),a=n(6010),o=n(780),i=n(6775),l=n(5999),u=n(5979),s="skipToContent_ZgBM";function c(e){e.setAttribute("tabindex","-1"),e.focus(),e.removeAttribute("tabindex")}function f(){var e=(0,r.useRef)(null),t=(0,i.k6)().action;return(0,u.SL)((function(n){var r=n.location;e.current&&!r.hash&&"PUSH"===t&&c(e.current)})),r.createElement("div",{ref:e,role:"region"},r.createElement("a",{href:"#",className:s,onClick:function(e){e.preventDefault();var t=document.querySelector("main:first-of-type")||document.querySelector(".main-wrapper");t&&c(t)}},r.createElement(l.Z,{id:"theme.common.skipToMainContent",description:"The skip to content label used for accessibility, allowing to rapidly navigate to main content with keyboard tab/enter navigation"},"Skip to main content")))}var d=n(7462),p=n(3366),m=["width","height","color","strokeWidth","className"];function g(e){var t=e.width,n=void 0===t?21:t,a=e.height,o=void 0===a?21:a,i=e.color,l=void 0===i?"currentColor":i,u=e.strokeWidth,s=void 0===u?1.2:u,c=(e.className,(0,p.Z)(e,m));return r.createElement("svg",(0,d.Z)({viewBox:"0 0 15 15",width:n,height:o},c),r.createElement("g",{stroke:l,strokeWidth:s},r.createElement("path",{d:"M.75.75l13.5 13.5M14.25.75L.75 14.25"})))}var h="announcementBar_IbjG",v="announcementBarPlaceholder_NC_W",b="announcementBarClose_FG1z",y="announcementBarContent_KsVm";function w(){var e=(0,u.nT)(),t=e.isActive,n=e.close,o=(0,u.LU)().announcementBar;if(!t)return null;var i=o.content,s=o.backgroundColor,c=o.textColor,f=o.isCloseable;return r.createElement("div",{className:h,style:{backgroundColor:s,color:c},role:"banner"},f&&r.createElement("div",{className:v}),r.createElement("div",{className:y,dangerouslySetInnerHTML:{__html:i}}),f?r.createElement("button",{type:"button",className:(0,a.Z)("clean-btn close",b),onClick:n,"aria-label":(0,l.I)({id:"theme.AnnouncementBar.closeButtonAriaLabel",message:"Close",description:"The ARIA label for close button of announcement bar"})},r.createElement(g,{width:14,height:14,strokeWidth:3.1})):null)}function E(e){var t=e.header,n=e.primaryMenu,o=e.secondaryMenu,i=(0,u.YW)().shown;return r.createElement("div",{className:"navbar-sidebar"},t,r.createElement("div",{className:(0,a.Z)("navbar-sidebar__items",{"navbar-sidebar__items--show-secondary":i})},r.createElement("div",{className:"navbar-sidebar__item menu"},n),r.createElement("div",{className:"navbar-sidebar__item menu"},o)))}var k=n(2389);function x(e){return r.createElement("svg",(0,d.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 S(e){return r.createElement("svg",(0,d.Z)({viewBox:"0 0 24 24",width:24,height:24},e),r.createElement("path",{fill:"currentColor",d:"M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"}))}var T={toggle:"toggle_S7eR",toggleButton:"toggleButton_rCf9",darkToggleIcon:"darkToggleIcon_nQuB",lightToggleIcon:"lightToggleIcon_v35p",toggleButtonDisabled:"toggleButtonDisabled_Pu9x"};function _(e){var t=e.className,n=e.value,o=e.onChange,i=(0,k.Z)(),u=(0,l.I)({message:"Switch between dark and light mode (currently {mode})",id:"theme.colorToggle.ariaLabel",description:"The ARIA label for the navbar color mode toggle"},{mode:"dark"===n?(0,l.I)({message:"dark mode",id:"theme.colorToggle.ariaLabel.mode.dark",description:"The name for the dark color mode"}):(0,l.I)({message:"light mode",id:"theme.colorToggle.ariaLabel.mode.light",description:"The name for the light color mode"})});return r.createElement("div",{className:(0,a.Z)(T.toggle,t)},r.createElement("button",{className:(0,a.Z)("clean-btn",T.toggleButton,!i&&T.toggleButtonDisabled),type:"button",onClick:function(){return o("dark"===n?"light":"dark")},disabled:!i,title:u,"aria-label":u},r.createElement(x,{className:(0,a.Z)(T.toggleIcon,T.lightToggleIcon)}),r.createElement(S,{className:(0,a.Z)(T.toggleIcon,T.darkToggleIcon)})))}var C=r.memo(_);function P(e){var t=e.className,n=(0,u.LU)().colorMode.disableSwitch,a=(0,u.If)(),o=a.colorMode,i=a.setColorMode;return n?null:r.createElement(C,{className:t,value:o,onChange:i})}var O=n(5537);function A(){return r.createElement(O.Z,{className:"navbar__brand",imageClassName:"navbar__logo",titleClassName:"navbar__title"})}function N(){var e=(0,u.el)();return r.createElement("button",{type:"button",className:"clean-btn navbar-sidebar__close",onClick:function(){return e.toggle()}},r.createElement(g,{color:"var(--ifm-color-emphasis-600)"}))}function L(){return r.createElement("div",{className:"navbar-sidebar__brand"},r.createElement(A,null),r.createElement(P,{className:"margin-right--md"}),r.createElement(N,null))}var I=n(2207);function R(){var e=(0,u.el)(),t=(0,u.LU)().navbar.items;return r.createElement("ul",{className:"menu__list"},t.map((function(t,n){return r.createElement(I.Z,(0,d.Z)({mobile:!0},t,{onClick:function(){return e.toggle()},key:n}))})))}function M(e){return r.createElement("button",(0,d.Z)({},e,{type:"button",className:"clean-btn navbar-sidebar__back"}),r.createElement(l.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 D(){var e=0===(0,u.LU)().navbar.items.length,t=(0,u.YW)();return r.createElement(r.Fragment,null,!e&&r.createElement(M,{onClick:function(){return t.hide()}}),t.content)}function F(){var e=(0,u.el)();return(0,u.Ni)(e.shown),e.shouldRender?r.createElement(E,{header:r.createElement(L,null),primaryMenu:r.createElement(R,null),secondaryMenu:r.createElement(D,null)}):null}var j="navbarHideable_ObN2",B="navbarHidden_FtgE";function z(e){return r.createElement("div",(0,d.Z)({role:"presentation"},e,{className:(0,a.Z)("navbar-sidebar__backdrop",e.className)}))}function U(e){var t=e.children,n=(0,u.LU)().navbar,o=n.hideOnScroll,i=n.style,l=(0,u.el)(),s=(0,u.cK)(o),c=s.navbarRef,f=s.isNavbarVisible;return r.createElement("nav",{ref:c,className:(0,a.Z)("navbar","navbar--fixed-top",o&&[j,!f&&B],{"navbar--dark":"dark"===i,"navbar--primary":"primary"===i,"navbar-sidebar--show":l.shown})},t,r.createElement(z,{onClick:l.toggle}),r.createElement(F,null))}var Z=n(1875),$=["width","height","className"];function H(e){var t=e.width,n=void 0===t?30:t,a=e.height,o=void 0===a?30:a,i=e.className,l=(0,p.Z)(e,$);return r.createElement("svg",(0,d.Z)({className:i,width:n,height:o,viewBox:"0 0 30 30","aria-hidden":"true"},l),r.createElement("path",{stroke:"currentColor",strokeLinecap:"round",strokeMiterlimit:"10",strokeWidth:"2",d:"M4 7h22M4 15h22M4 23h22"}))}function V(){var e=(0,u.el)();return r.createElement("button",{onClick:e.toggle,onKeyDown:e.toggle,"aria-label":"Navigation bar toggle",className:"navbar__toggle clean-btn",type:"button",tabIndex:0},r.createElement(H,null))}var G="colorModeToggle_vKtC";function W(e){var t=e.items;return r.createElement(r.Fragment,null,t.map((function(e,t){return r.createElement(I.Z,(0,d.Z)({},e,{key:t}))})))}function q(e){var t=e.left,n=e.right;return r.createElement("div",{className:"navbar__inner"},r.createElement("div",{className:"navbar__items"},t),r.createElement("div",{className:"navbar__items navbar__items--right"},n))}function K(){var e=(0,u.el)(),t=(0,u.LU)().navbar.items,n=(0,u.A5)(t),a=n[0],o=n[1],i=!t.some((function(e){return"search"===e.type}));return r.createElement(q,{left:r.createElement(r.Fragment,null,!e.disabled&&r.createElement(V,null),r.createElement(A,null),r.createElement(W,{items:a})),right:r.createElement(r.Fragment,null,r.createElement(W,{items:o}),r.createElement(P,{className:G}),i&&r.createElement(Z.Z,null))})}function Y(){return r.createElement(U,null,r.createElement(K,null))}var Q=n(9960),X=n(4996),J=n(3919),ee=n(541),te=["to","href","label","prependBaseUrlToHref"];function ne(e){var t=e.item,n=t.to,a=t.href,o=t.label,i=t.prependBaseUrlToHref,l=(0,p.Z)(t,te),u=(0,X.Z)(n),s=(0,X.Z)(a,{forcePrependBaseUrl:!0});return r.createElement(Q.Z,(0,d.Z)({className:"footer__link-item"},a?{href:i?s:a}:{to:u},l),o,a&&!(0,J.Z)(a)&&r.createElement(ee.Z,null))}function re(e){var t=e.item;return t.html?r.createElement("li",{className:"footer__item",dangerouslySetInnerHTML:{__html:t.html}}):r.createElement("li",{key:t.href||t.to,className:"footer__item"},r.createElement(ne,{item:t}))}function ae(e){var t=e.column;return r.createElement("div",{className:"col footer__col"},r.createElement("div",{className:"footer__title"},t.title),r.createElement("ul",{className:"footer__items"},t.items.map((function(e,t){return r.createElement(re,{key:t,item:e})}))))}function oe(e){var t=e.columns;return r.createElement("div",{className:"row footer__links"},t.map((function(e,t){return r.createElement(ae,{key:t,column:e})})))}function ie(){return r.createElement("span",{className:"footer__link-separator"},"\xb7")}function le(e){var t=e.item;return t.html?r.createElement("span",{className:"footer__link-item",dangerouslySetInnerHTML:{__html:t.html}}):r.createElement(ne,{item:t})}function ue(e){var t=e.links;return r.createElement("div",{className:"footer__links text--center"},r.createElement("div",{className:"footer__links"},t.map((function(e,n){return r.createElement(r.Fragment,{key:n},r.createElement(le,{item:e}),t.length!==n+1&&r.createElement(ie,null))}))))}function se(e){var t=e.links;return(0,u.aV)(t)?r.createElement(oe,{columns:t}):r.createElement(ue,{links:t})}var ce="footerLogoLink_gHmE",fe=n(9750);function de(e){var t,n=e.logo,a=(0,X.C)().withBaseUrl,o={light:a(n.src),dark:a(null!=(t=n.srcDark)?t:n.src)};return r.createElement(fe.Z,{className:"footer__logo",alt:n.alt,sources:o,width:n.width,height:n.height})}function pe(e){var t=e.logo;return t.href?r.createElement(Q.Z,{href:t.href,className:ce},r.createElement(de,{logo:t})):r.createElement(de,{logo:t})}function me(e){var t=e.copyright;return r.createElement("div",{className:"footer__copyright",dangerouslySetInnerHTML:{__html:t}})}function ge(e){var t=e.style,n=e.links,o=e.logo,i=e.copyright;return r.createElement("footer",{className:(0,a.Z)("footer",{"footer--dark":"dark"===t})},r.createElement("div",{className:"container container-fluid"},n,(o||i)&&r.createElement("div",{className:"footer__bottom text--center"},o&&r.createElement("div",{className:"margin-bottom--sm"},o),i)))}function he(){var e=(0,u.LU)().footer;if(!e)return null;var t=e.copyright,n=e.links,a=e.logo,o=e.style;return r.createElement(ge,{style:o,links:n&&n.length>0&&r.createElement(se,{links:n}),logo:a&&r.createElement(pe,{logo:a}),copyright:t&&r.createElement(me,{copyright:t})})}var ve=r.memo(he);function be(e){var t=e.children;return r.createElement(u.SG,null,r.createElement(u.pl,null,r.createElement(u.z5,null,r.createElement(u.OC,null,r.createElement(u.L5,null,r.createElement(u.VC,null,r.createElement(u.Vy,null,t)))))))}function ye(e){var t=e.error,n=e.tryAgain;return r.createElement("main",{className:"container margin-vert--xl"},r.createElement("div",{className:"row"},r.createElement("div",{className:"col col--6 col--offset-3"},r.createElement("h1",{className:"hero__title"},r.createElement(l.Z,{id:"theme.ErrorPageContent.title",description:"The title of the fallback page when the page crashed"},"This page crashed.")),r.createElement("p",null,t.message),r.createElement("div",null,r.createElement("button",{type:"button",onClick:n},r.createElement(l.Z,{id:"theme.ErrorPageContent.tryAgain",description:"The label of the button to try again when the page crashed"},"Try again"))))))}function we(e){var t=e.children,n=e.noFooter,i=e.wrapperClassName,l=e.title,s=e.description;return(0,u.t$)(),r.createElement(be,null,r.createElement(u.d,{title:l,description:s}),r.createElement(f,null),r.createElement(w,null),r.createElement(Y,null),r.createElement("div",{className:(0,a.Z)(u.kM.wrapper.main,i)},r.createElement(o.Z,{fallback:ye},t)),!n&&r.createElement(ve,null))}},5537:function(e,t,n){"use strict";n.d(t,{Z:function(){return d}});var r=n(7462),a=n(3366),o=n(7294),i=n(9960),l=n(9750),u=n(4996),s=n(2263),c=n(5979),f=["imageClassName","titleClassName"];function d(e){var t=(0,s.Z)().siteConfig.title,n=(0,c.LU)().navbar,d=n.title,p=n.logo,m=void 0===p?{src:""}:p,g=e.imageClassName,h=e.titleClassName,v=(0,a.Z)(e,f),b=(0,u.Z)(m.href||"/"),y={light:(0,u.Z)(m.src),dark:(0,u.Z)(m.srcDark||m.src)},w=o.createElement(l.Z,{sources:y,height:m.height,width:m.width,alt:m.alt||d||t});return o.createElement(i.Z,(0,r.Z)({to:b},v,m.target&&{target:m.target}),m.src&&(g?o.createElement("div",{className:g},w):w),null!=d&&o.createElement("b",{className:h},d))}},5525:function(e,t,n){"use strict";n.d(t,{Z:function(){return m}});var r=n(7462),a=n(3366),o=n(7294),i=n(6010),l=n(3072),u=n(1068),s=["className","isDropdownItem"],c=["className","isDropdownItem"],f=["mobile","position"];function d(e){var t=e.className,n=e.isDropdownItem,u=void 0!==n&&n,c=(0,a.Z)(e,s),f=o.createElement(l.Z,(0,r.Z)({className:(0,i.Z)(u?"dropdown__link":"navbar__item navbar__link",t)},c));return u?o.createElement("li",null,f):f}function p(e){var t=e.className,n=(e.isDropdownItem,(0,a.Z)(e,c));return o.createElement("li",{className:"menu__list-item"},o.createElement(l.Z,(0,r.Z)({className:(0,i.Z)("menu__link",t)},n)))}function m(e){var t,n=e.mobile,i=void 0!==n&&n,l=(e.position,(0,a.Z)(e,f)),s=i?p:d;return o.createElement(s,(0,r.Z)({},l,{activeClassName:null!=(t=l.activeClassName)?t:(0,u.E)(i)}))}},6400:function(e,t,n){"use strict";n.d(t,{Z:function(){return d}});var r=n(7462),a=n(3366),o=n(7294),i=n(5525),l=n(5551),u=n(6010),s=n(1068),c=n(5979),f=["docId","label","docsPluginId"];function d(e){var t,n=e.docId,d=e.label,p=e.docsPluginId,m=(0,a.Z)(e,f),g=(0,l.Iw)(p),h=g.activeVersion,v=g.activeDoc,b=(0,c.J)(p).preferredVersion,y=(0,l.yW)(p),w=function(e,t){var n=e.flatMap((function(e){return e.docs})),r=n.find((function(e){return e.id===t}));if(!r){var a=n.map((function(e){return e.id})).join("\n- ");throw new Error("DocNavbarItem: couldn't find any doc with id \""+t+'" in version'+(e.length?"s":"")+" "+e.map((function(e){return e.name})).join(", ")+'".\nAvailable doc ids are:\n- '+a)}return r}((0,c.jj)([h,b,y].filter(Boolean)),n),E=(0,s.E)(m.mobile);return o.createElement(i.Z,(0,r.Z)({exact:!0},m,{className:(0,u.Z)(m.className,(t={},t[E]=(null==v?void 0:v.sidebar)&&v.sidebar===w.sidebar,t)),activeClassName:E,label:null!=d?d:w.id,to:w.path}))}},4792:function(e,t,n){"use strict";n.d(t,{Z:function(){return d}});var r=n(7462),a=n(3366),o=n(7294),i=n(5525),l=n(5551),u=n(6010),s=n(1068),c=n(5979),f=["sidebarId","label","docsPluginId"];function d(e){var t,n=e.sidebarId,d=e.label,p=e.docsPluginId,m=(0,a.Z)(e,f),g=(0,l.Iw)(p),h=g.activeVersion,v=g.activeDoc,b=(0,c.J)(p).preferredVersion,y=(0,l.yW)(p),w=function(e,t){var n=e.flatMap((function(e){if(e.sidebars)return Object.entries(e.sidebars)})).filter((function(e){return!!e})),r=n.find((function(e){return e[0]===t}));if(!r)throw new Error("DocSidebarNavbarItem: couldn't find any sidebar with id \""+t+'" in version'+(e.length?"s":"")+" "+e.map((function(e){return e.name})).join(", ")+'".\nAvailable sidebar ids are:\n- '+Object.keys(n).join("\n- "));if(!r[1].link)throw new Error("DocSidebarNavbarItem: couldn't find any document for sidebar with id \""+t+'"');return r[1].link}((0,c.jj)([h,b,y].filter(Boolean)),n),E=(0,s.E)(m.mobile);return o.createElement(i.Z,(0,r.Z)({exact:!0},m,{className:(0,u.Z)(m.className,(t={},t[E]=(null==v?void 0:v.sidebar)===n,t)),activeClassName:E,label:null!=d?d:w.label,to:w.path}))}},9308:function(e,t,n){"use strict";n.d(t,{Z:function(){return p}});var r=n(7462),a=n(3366),o=n(7294),i=n(5525),l=n(3154),u=n(5551),s=n(5979),c=n(5999),f=["mobile","docsPluginId","dropdownActiveClassDisabled","dropdownItemsBefore","dropdownItemsAfter"],d=function(e){return e.docs.find((function(t){return t.id===e.mainDocId}))};function p(e){var t,n,p=e.mobile,m=e.docsPluginId,g=e.dropdownActiveClassDisabled,h=e.dropdownItemsBefore,v=e.dropdownItemsAfter,b=(0,a.Z)(e,f),y=(0,u.Iw)(m),w=(0,u.gB)(m),E=(0,u.yW)(m),k=(0,s.J)(m),x=k.preferredVersion,S=k.savePreferredVersionName;var T,_=(T=w.map((function(e){var t=(null==y?void 0:y.alternateDocVersions[e.name])||d(e);return{isNavLink:!0,label:e.label,to:t.path,isActive:function(){return e===(null==y?void 0:y.activeVersion)},onClick:function(){S(e.name)}}})),[].concat(h,T,v)),C=null!=(t=null!=(n=y.activeVersion)?n:x)?t:E,P=p&&_.length>1?(0,c.I)({id:"theme.navbar.mobileVersionsDropdown.label",message:"Versions",description:"The label for the navbar versions dropdown on mobile view"}):C.label,O=p&&_.length>1?void 0:d(C).path;return _.length<=1?o.createElement(i.Z,(0,r.Z)({},b,{mobile:p,label:P,to:O,isActive:g?function(){return!1}:void 0})):o.createElement(l.Z,(0,r.Z)({},b,{mobile:p,label:P,to:O,items:_,isActive:g?function(){return!1}:void 0}))}},7250:function(e,t,n){"use strict";n.d(t,{Z:function(){return c}});var r=n(7462),a=n(3366),o=n(7294),i=n(5525),l=n(5551),u=n(5979),s=["label","to","docsPluginId"];function c(e){var t,n=e.label,c=e.to,f=e.docsPluginId,d=(0,a.Z)(e,s),p=(0,l.zu)(f),m=(0,u.J)(f).preferredVersion,g=(0,l.yW)(f),h=null!=(t=null!=p?p:m)?t:g,v=null!=n?n:h.label,b=null!=c?c:function(e){return e.docs.find((function(t){return t.id===e.mainDocId}))}(h).path;return o.createElement(i.Z,(0,r.Z)({},d,{label:v,to:b}))}},3154:function(e,t,n){"use strict";n.d(t,{Z:function(){return h}});var r=n(7462),a=n(3366),o=n(7294),i=n(6010),l=n(5979),u=n(3072),s=n(2207),c=["items","position","className"],f=["items","className","position"],d=["mobile"];function p(e,t){return e.some((function(e){return function(e,t){return!!(0,l.Mg)(e.to,t)||!!(0,l.Fx)(e.activeBaseRegex,t)||!(!e.activeBasePath||!t.startsWith(e.activeBasePath))}(e,t)}))}function m(e){var t,n=e.items,l=e.position,f=e.className,d=(0,a.Z)(e,c),p=(0,o.useRef)(null),m=(0,o.useState)(!1),g=m[0],h=m[1];return(0,o.useEffect)((function(){var e=function(e){p.current&&!p.current.contains(e.target)&&h(!1)};return document.addEventListener("mousedown",e),document.addEventListener("touchstart",e),function(){document.removeEventListener("mousedown",e),document.removeEventListener("touchstart",e)}}),[p]),o.createElement("div",{ref:p,className:(0,i.Z)("navbar__item","dropdown","dropdown--hoverable",{"dropdown--right":"right"===l,"dropdown--show":g})},o.createElement(u.Z,(0,r.Z)({"aria-haspopup":"true","aria-expanded":g,role:"button",href:d.to?void 0:"#",className:(0,i.Z)("navbar__link",f)},d,{onClick:d.to?void 0:function(e){return e.preventDefault()},onKeyDown:function(e){"Enter"===e.key&&(e.preventDefault(),h(!g))}}),null!=(t=d.children)?t:d.label),o.createElement("ul",{className:"dropdown__menu"},n.map((function(e,t){return o.createElement(s.Z,(0,r.Z)({isDropdownItem:!0,onKeyDown:function(e){if(t===n.length-1&&"Tab"===e.key){e.preventDefault(),h(!1);var r=p.current.nextElementSibling;if(r)(r instanceof HTMLAnchorElement?r:r.querySelector("a")).focus()}},activeClassName:"dropdown__link--active"},e,{key:t}))}))))}function g(e){var t,n=e.items,c=e.className,d=(e.position,(0,a.Z)(e,f)),m=(0,l.be)(),g=p(n,m),h=(0,l.uR)({initialState:function(){return!g}}),v=h.collapsed,b=h.toggleCollapsed,y=h.setCollapsed;return(0,o.useEffect)((function(){g&&y(!g)}),[m,g,y]),o.createElement("li",{className:(0,i.Z)("menu__list-item",{"menu__list-item--collapsed":v})},o.createElement(u.Z,(0,r.Z)({role:"button",className:(0,i.Z)("menu__link menu__link--sublist",c)},d,{onClick:function(e){e.preventDefault(),b()}}),null!=(t=d.children)?t:d.label),o.createElement(l.zF,{lazy:!0,as:"ul",className:"menu__list",collapsed:v},n.map((function(e,t){return o.createElement(s.Z,(0,r.Z)({mobile:!0,isDropdownItem:!0,onClick:d.onClick,activeClassName:"menu__link--active"},e,{key:t}))}))))}function h(e){var t=e.mobile,n=void 0!==t&&t,r=(0,a.Z)(e,d),i=n?g:m;return o.createElement(i,r)}},3072:function(e,t,n){"use strict";n.d(t,{Z:function(){return d}});var r=n(7462),a=n(3366),o=n(7294),i=n(9960),l=n(4996),u=n(541),s=n(3919),c=n(5979),f=["activeBasePath","activeBaseRegex","to","href","label","activeClassName","prependBaseUrlToHref"];function d(e){var t,n=e.activeBasePath,d=e.activeBaseRegex,p=e.to,m=e.href,g=e.label,h=e.activeClassName,v=void 0===h?"":h,b=e.prependBaseUrlToHref,y=(0,a.Z)(e,f),w=(0,l.Z)(p),E=(0,l.Z)(n),k=(0,l.Z)(m,{forcePrependBaseUrl:!0}),x=g&&m&&!(0,s.Z)(m),S="dropdown__link--active"===v;return o.createElement(i.Z,(0,r.Z)({},m?{href:b?k:m}:Object.assign({isNavLink:!0,activeClassName:null!=(t=y.className)&&t.includes(v)?"":v,to:w},n||d?{isActive:function(e,t){return d?(0,c.Fx)(d,t.pathname):t.pathname.startsWith(E)}}:null),y),g,x&&o.createElement(u.Z,S&&{width:12,height:12}))}},2207:function(e,t,n){"use strict";n.d(t,{Z:function(){return w}});var r=n(3366),a=n(7294),o=n(5525),i=n(3154),l=n(7462),u=["width","height"];function s(e){var t=e.width,n=void 0===t?20:t,o=e.height,i=void 0===o?20:o,s=(0,r.Z)(e,u);return a.createElement("svg",(0,l.Z)({viewBox:"0 0 24 24",width:n,height:i,"aria-hidden":!0},s),a.createElement("path",{fill:"currentColor",d:"M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"}))}var c=n(2263),f=n(5979),d=n(5999),p="iconLanguage_dNtB",m=["mobile","dropdownItemsBefore","dropdownItemsAfter"];function g(e){var t=e.mobile,n=e.dropdownItemsBefore,o=e.dropdownItemsAfter,u=(0,r.Z)(e,m),g=(0,c.Z)().i18n,h=g.currentLocale,v=g.locales,b=g.localeConfigs,y=(0,f.l5)();function w(e){return b[e].label}var E=v.map((function(e){var t="pathname://"+y.createUrl({locale:e,fullyQualified:!1});return{isNavLink:!0,label:w(e),to:t,target:"_self",autoAddBaseUrl:!1,className:e===h?"dropdown__link--active":""}})),k=[].concat(n,E,o),x=t?(0,d.I)({message:"Languages",id:"theme.navbar.mobileLanguageDropdown.label",description:"The label for the mobile language switcher dropdown"}):w(h);return a.createElement(i.Z,(0,l.Z)({},u,{mobile:t,label:a.createElement("span",null,a.createElement(s,{className:p}),a.createElement("span",null,x)),items:k}))}var h=n(1875);function v(e){return e.mobile?null:a.createElement(h.Z,null)}var b=["type"],y={default:function(){return o.Z},localeDropdown:function(){return g},search:function(){return v},dropdown:function(){return i.Z},docsVersion:function(){return n(7250).Z},docsVersionDropdown:function(){return n(9308).Z},doc:function(){return n(6400).Z},docSidebar:function(){return n(4792).Z}};function w(e){var t=e.type,n=(0,r.Z)(e,b),o=function(e,t){return e&&"default"!==e?e:t?"dropdown":"default"}(t,void 0!==n.items),i=function(e){var t=y[e];if(!t)throw new Error('No NavbarItem component found for type "'+e+'".');return t()}(o);return a.createElement(i,n)}},1068:function(e,t,n){"use strict";n.d(t,{E:function(){return r}});var r=function(e){return e?"menu__link--active":"navbar__link--active"}},4739:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(7294),a=n(5742);function o(e){var t=e.locale,n=e.version,o=e.tag,i=t;return r.createElement(a.Z,null,t&&r.createElement("meta",{name:"docusaurus_locale",content:t}),n&&r.createElement("meta",{name:"docusaurus_version",content:n}),o&&r.createElement("meta",{name:"docusaurus_tag",content:o}),i&&r.createElement("meta",{name:"docsearch:language",content:i}),n&&r.createElement("meta",{name:"docsearch:version",content:n}),o&&r.createElement("meta",{name:"docsearch:docusaurus_tag",content:o}))}},9750:function(e,t,n){"use strict";n.d(t,{Z:function(){return f}});var r=n(7462),a=n(3366),o=n(7294),i=n(6010),l=n(2389),u=n(5979),s={themedImage:"themedImage_W2Cr","themedImage--light":"themedImage--light_TfLj","themedImage--dark":"themedImage--dark_oUvU"},c=["sources","className","alt"];function f(e){var t=(0,l.Z)(),n=(0,u.If)().colorMode,f=e.sources,d=e.className,p=e.alt,m=(0,a.Z)(e,c),g=t?"dark"===n?["dark"]:["light"]:["light","dark"];return o.createElement(o.Fragment,null,g.map((function(e){return o.createElement("img",(0,r.Z)({key:e,src:f[e],alt:p,className:(0,i.Z)(s.themedImage,s["themedImage--"+e],d)},m))})))}},467:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return a}});var r=n(9782);function a(e){var t=r.default.themeConfig.prism.additionalLanguages;globalThis.Prism=e,t.forEach((function(e){n(4948)("./prism-"+e)})),delete globalThis.Prism}},2448:function(e,t,n){"use strict";var r=a(n(7410));function a(e){return e&&e.__esModule?e:{default:e}}(0,a(n(467)).default)(r.default)},5979:function(e,t,n){"use strict";n.d(t,{pl:function(){return Xe},zF:function(){return Me},SG:function(){return Dt},HX:function(){return he},PO:function(){return He},D_:function(){return k},L5:function(){return pe},bT:function(){return O},qu:function(){return T},FG:function(){return _t},Vy:function(){return tn},Zo:function(){return Qt},d:function(){return St},VC:function(){return Ct},OC:function(){return gt},z5:function(){return on},kM:function(){return Ge},os:function(){return ve},Wl:function(){return te},_F:function(){return re},aV:function(){return pt},Fx:function(){return yt},Mg:function(){return X},hC:function(){return un},PZ:function(){return rt},bc:function(){return V},Vo:function(){return G},nZ:function(){return W},A5:function(){return en},MA:function(){return nt},jj:function(){return Ve},l5:function(){return F},nT:function(){return Je},uR:function(){return Ce},If:function(){return Ft},fP:function(){return x},J:function(){return ge},Vq:function(){return A},E6:function(){return _},b9:function(){return dt},cK:function(){return ln},Ns:function(){return J},t$:function(){return sn},be:function(){return et},SL:function(){return xe},Ni:function(){return dn},el:function(){return Gt},YW:function(){return Jt},c2:function(){return ke},D9:function(){return b},pJ:function(){return fn},RF:function(){return bt},s1:function(){return ae},Si:function(){return ut},LU:function(){return a},iP:function(){return Zt}});var r=n(2263);function a(){return(0,r.Z)().siteConfig.themeConfig}var o=n(7294);function i(e){return i="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},i(e)}var l=n(9611);function u(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&(0,l.Z)(e,t)}function s(){s=function(e,t){return new n(e,void 0,t)};var e=RegExp.prototype,t=new WeakMap;function n(e,r,a){var o=new RegExp(e,r);return t.set(o,a||t.get(e)),(0,l.Z)(o,n.prototype)}function r(e,n){var r=t.get(n);return Object.keys(r).reduce((function(t,n){return t[n]=e[r[n]],t}),Object.create(null))}return u(n,RegExp),n.prototype.exec=function(t){var n=e.exec.call(this,t);return n&&(n.groups=r(n,this)),n},n.prototype[Symbol.replace]=function(n,a){if("string"==typeof a){var o=t.get(this);return e[Symbol.replace].call(this,n,a.replace(/\$<([^>]+)>/g,(function(e,t){return"$"+o[t]})))}if("function"==typeof a){var l=this;return e[Symbol.replace].call(this,n,(function(){var e=arguments;return"object"!=i(e[e.length-1])&&(e=[].slice.call(e)).push(r(e,l)),a.apply(this,e)}))}return e[Symbol.replace].call(this,n,a)},s.apply(this,arguments)}var c=n(4578);function f(e){return f=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},f(e)}function d(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}function p(e,t,n){return p=d()?Reflect.construct:function(e,t,n){var r=[null];r.push.apply(r,t);var a=new(Function.bind.apply(e,r));return n&&(0,l.Z)(a,n.prototype),a},p.apply(null,arguments)}function m(e){var t="function"==typeof Map?new Map:void 0;return m=function(e){if(null===e||(n=e,-1===Function.toString.call(n).indexOf("[native code]")))return e;var n;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,r)}function r(){return p(e,arguments,f(this).constructor)}return r.prototype=Object.create(e.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),(0,l.Z)(r,e)},m(e)}var g=n(412),h=g.Z.canUseDOM?o.useLayoutEffect:o.useEffect;function v(e){var t=(0,o.useRef)(e);return h((function(){t.current=e}),[e]),(0,o.useCallback)((function(){return t.current.apply(t,arguments)}),[])}function b(e){var t=(0,o.useRef)();return h((function(){t.current=e})),t.current}var y=function(e){function t(t,n){var r,a,o,i;return(i=e.call(this)||this).name="ReactContextError",i.message="Hook "+(null==(r=i.stack)||null==(a=r.split("\n")[1])||null==(o=a.match(s(/at (?:\w+\.)?(\w+)/,{name:1})))?void 0:o.groups.name)+" is called outside the <"+t+">. "+(n||""),i}return(0,c.Z)(t,e),t}(m(Error)),w=Symbol("EmptyContext"),E=o.createContext(w);function k(e){var t=e.children,n=(0,o.useState)(null),r=n[0],a=n[1],i=(0,o.useMemo)((function(){return{expandedItem:r,setExpandedItem:a}}),[r]);return o.createElement(E.Provider,{value:i},t)}function x(){var e=(0,o.useContext)(E);if(e===w)throw new y("DocSidebarItemsExpandedStateProvider");return e}var S=o.createContext(null);function T(e){var t=e.children,n=e.version;return o.createElement(S.Provider,{value:n},t)}function _(){var e=(0,o.useContext)(S);if(null===e)throw new y("DocsVersionProvider");return e}var C=Symbol("EmptyContext"),P=o.createContext(C);function O(e){var t=e.children,n=e.sidebar;return o.createElement(P.Provider,{value:n},t)}function A(){var e=(0,o.useContext)(P);if(e===C)throw new y("DocsSidebarProvider");return e}var N="localStorage";function L(e){if(void 0===e&&(e=N),"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,I||(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),I=!0),null}var t}var I=!1;var R={get:function(){return null},set:function(){},del:function(){}};function M(e,t){if("undefined"==typeof window)return function(e){function t(){throw new Error('Illegal storage API usage for storage key "'+e+'".\nDocusaurus storage APIs are not supposed to be called on the server-rendering process.\nPlease only call storage APIs in effects and event handlers.')}return{get:t,set:t,del:t}}(e);var n=L(null==t?void 0:t.persistence);return null===n?R:{get:function(){try{return n.getItem(e)}catch(t){return console.error("Docusaurus storage error, can't get key="+e,t),null}},set:function(t){try{n.setItem(e,t)}catch(r){console.error("Docusaurus storage error, can't set "+e+"="+t,r)}},del:function(){try{n.removeItem(e)}catch(t){console.error("Docusaurus storage error, can't delete key="+e,t)}}}}var D=n(6775);function F(){var e=(0,r.Z)(),t=e.siteConfig,n=t.baseUrl,a=t.url,o=e.i18n,i=o.defaultLocale,l=o.currentLocale,u=(0,D.TH)().pathname,s=l===i?n:n.replace("/"+l+"/","/"),c=u.replace(n,"");return{createUrl:function(e){var t=e.locale;return""+(e.fullyQualified?a:"")+function(e){return e===i?""+s:""+s+e+"/"}(t)+c}}}var j=n(7594),B=n.n(j),z=s(/title=(["'])(.*?)\1/,{quote:1,title:2}),U=s(/\{([\d,-]+)\}/,{range:1}),Z={js:{start:"\\/\\/",end:""},jsBlock:{start:"\\/\\*",end:"\\*\\/"},jsx:{start:"\\{\\s*\\/\\*",end:"\\*\\/\\s*\\}"},python:{start:"#",end:""},html:{start:"\x3c!--",end:"--\x3e"}},$=["highlight-next-line","highlight-start","highlight-end"];function H(e){var t=e.map((function(e){var t=Z[e],n=t.start,r=t.end;return"(?:"+n+"\\s*("+$.join("|")+")\\s*"+r+")"})).join("|");return new RegExp("^\\s*(?:"+t+")\\s*$")}function V(e){var t,n;return null!=(t=null==e||null==(n=e.match(z))?void 0:n.groups.title)?t:""}function G(e){var t=e.split(" ").find((function(e){return e.startsWith("language-")}));return null==t?void 0:t.replace(/language-/,"")}function W(e,t,n){var r=e.replace(/\n$/,"");if(t&&U.test(t)){var a=t.match(U).groups.range;return{highlightLines:B()(a).filter((function(e){return e>0})).map((function(e){return e-1})),code:r}}if(void 0===n)return{highlightLines:[],code:r};for(var o,i=function(e){switch(e){case"js":case"javascript":case"ts":case"typescript":return H(["js","jsBlock"]);case"jsx":case"tsx":return H(["js","jsBlock","jsx"]);case"html":return H(["js","jsBlock","html"]);case"python":case"py":return H(["python"]);default:return H(Object.keys(Z))}}(n),l=r.split("\n"),u="",s=0;se.length)&&(t=e.length);for(var n=0,r=new Array(t);n=e.length?{done:!0}:{done:!1,value:e[r++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var Q=n(9637);function X(e,t){var n=function(e){var t;return null==(t=!e||null!=e&&e.endsWith("/")?e:e+"/")?void 0:t.toLowerCase()};return n(e)===n(t)}function J(){var e=(0,r.Z)().siteConfig.baseUrl;return(0,o.useMemo)((function(){return function(e){var t=e.baseUrl;function n(e){return e.path===t&&!0===e.exact}function r(e){return e.path===t&&!e.exact}return function e(t){if(0!==t.length)return t.find(n)||e(t.filter(r).flatMap((function(e){var t;return null!=(t=e.routes)?t:[]})))}(e.routes)}({routes:Q.Z,baseUrl:e})}),[e])}var ee=!!q._r;function te(e){if(e.href)return e.href;for(var t,n=Y(e.items);!(t=n()).done;){var r=t.value;if("link"===r.type)return r.href;if("category"===r.type){var a=te(r);if(a)return a}else if("html"!==r.type)throw new Error("Unexpected category item type for "+JSON.stringify(r))}}var ne=function(e,t){return void 0!==e&&X(e,t)};function re(e,t){return"link"===e.type?ne(e.href,t):"category"===e.type&&(ne(e.href,t)||function(e,t){return e.some((function(e){return re(e,t)}))}(e.items,t))}function ae(){var e,t=A(),n=(0,D.TH)().pathname;if(!1===(null==(e=(0,q.gA)())?void 0:e.pluginData.breadcrumbs)||!t)return null;var r=[];return function e(t){for(var a,o=Y(t);!(a=o()).done;){var i=a.value;if("category"===i.type&&(X(i.href,n)||e(i.items))||"link"===i.type&&X(i.href,n))return r.push(i),!0}return!1}(t),r.reverse()}var oe=n(9935),ie=function(e){return"docs-preferred-version-"+e},le=function(e,t,n){M(ie(e),{persistence:t}).set(n)},ue=function(e,t){return M(ie(e),{persistence:t}).get()},se=function(e,t){M(ie(e),{persistence:t}).del()};var ce=o.createContext(null);function fe(){var e=(0,q._r)(),t=a().docs.versionPersistence,n=(0,o.useMemo)((function(){return Object.keys(e)}),[e]),r=(0,o.useState)((function(){return function(e){return Object.fromEntries(e.map((function(e){return[e,{preferredVersionName:null}]})))}(n)})),i=r[0],l=r[1];return(0,o.useEffect)((function(){l(function(e){var t=e.pluginIds,n=e.versionPersistence,r=e.allDocsData;return Object.fromEntries(t.map((function(e){return[e,(t=e,a=ue(t,n),r[t].versions.some((function(e){return e.name===a}))?{preferredVersionName:a}:(se(t,n),{preferredVersionName:null}))];var t,a})))}({allDocsData:e,versionPersistence:t,pluginIds:n}))}),[e,t,n]),[i,(0,o.useMemo)((function(){return{savePreferredVersion:function(e,n){le(e,t,n),l((function(t){var r;return Object.assign({},t,((r={})[e]={preferredVersionName:n},r))}))}}}),[t])]}function de(e){var t=e.children,n=fe();return o.createElement(ce.Provider,{value:n},t)}function pe(e){var t=e.children;return ee?o.createElement(de,null,t):t}function me(){var e=(0,o.useContext)(ce);if(!e)throw new y("DocsPreferredVersionContextProvider");return e}function ge(e){var t;void 0===e&&(e=oe.m);var n=(0,q.zh)(e),r=me(),a=r[0],i=r[1],l=a[e].preferredVersionName;return{preferredVersion:null!=(t=n.versions.find((function(e){return e.name===l})))?t:null,savePreferredVersionName:(0,o.useCallback)((function(t){i.savePreferredVersion(e,t)}),[i,e])}}var he="default";function ve(e,t){return"docs-"+e+"-"+t}var be=["zero","one","two","few","many","other"];function ye(e){return be.filter((function(t){return e.includes(t)}))}var we={locale:"en",pluralForms:ye(["one","other"]),select:function(e){return 1===e?"one":"other"}};function Ee(){var e=(0,r.Z)().i18n.currentLocale;return(0,o.useMemo)((function(){try{return t=e,n=new Intl.PluralRules(t),{locale:t,pluralForms:ye(n.resolvedOptions().pluralCategories),select:function(e){return n.select(e)}}}catch(r){return console.error('Failed to use Intl.PluralRules for locale "'+e+'".\nDocusaurus will fallback to the default (English) implementation.\nError: '+r.message+"\n"),we}var t,n}),[e])}function ke(){var e=Ee();return{selectMessage:function(t,n){return function(e,t,n){var r=e.split("|");if(1===r.length)return r[0];r.length>n.pluralForms.length&&console.error("For locale="+n.locale+", a maximum of "+n.pluralForms.length+" plural forms are expected ("+n.pluralForms+"), but the message contains "+r.length+": "+e);var a=n.select(t),o=n.pluralForms.indexOf(a);return r[Math.min(o,r.length-1)]}(n,t,e)}}}function xe(e){var t=(0,D.TH)(),n=b(t),r=v(e);(0,o.useEffect)((function(){n&&t!==n&&r({location:t,previousLocation:n})}),[r,t,n])}var Se=n(3366),Te=["collapsed"],_e=["lazy"];function Ce(e){var t=e.initialState,n=(0,o.useState)(null!=t&&t),r=n[0],a=n[1],i=(0,o.useCallback)((function(){a((function(e){return!e}))}),[]);return{collapsed:r,setCollapsed:a,toggleCollapsed:i}}var Pe={display:"none",overflow:"hidden",height:"0px"},Oe={display:"block",overflow:"visible",height:"auto"};function Ae(e,t){var n=t?Pe:Oe;e.style.display=n.display,e.style.overflow=n.overflow,e.style.height=n.height}function Ne(e){var t=e.collapsibleRef,n=e.collapsed,r=e.animation,a=(0,o.useRef)(!1);(0,o.useEffect)((function(){var e,o=t.current;function i(){var e,t,n=o.scrollHeight,a=null!=(e=null==r?void 0:r.duration)?e:function(e){var t=e/36;return Math.round(10*(4+15*Math.pow(t,.25)+t/5))}(n);return{transition:"height "+a+"ms "+(null!=(t=null==r?void 0:r.easing)?t:"ease-in-out"),height:n+"px"}}function l(){var e=i();o.style.transition=e.transition,o.style.height=e.height}if(!a.current)return Ae(o,n),void(a.current=!0);return o.style.willChange="height",e=requestAnimationFrame((function(){n?(l(),requestAnimationFrame((function(){o.style.height=Pe.height,o.style.overflow=Pe.overflow}))):(o.style.display="block",requestAnimationFrame((function(){l()})))})),function(){return cancelAnimationFrame(e)}}),[t,n,r])}function Le(e){if(!g.Z.canUseDOM)return e?Pe:Oe}function Ie(e){var t=e.as,n=void 0===t?"div":t,r=e.collapsed,a=e.children,i=e.animation,l=e.onCollapseTransitionEnd,u=e.className,s=e.disableSSRStyle,c=(0,o.useRef)(null);return Ne({collapsibleRef:c,collapsed:r,animation:i}),o.createElement(n,{ref:c,style:s?void 0:Le(r),onTransitionEnd:function(e){"height"===e.propertyName&&(Ae(c.current,r),null==l||l(r))},className:u},a)}function Re(e){var t=e.collapsed,n=(0,Se.Z)(e,Te),r=(0,o.useState)(!t),a=r[0],i=r[1];(0,o.useLayoutEffect)((function(){t||i(!0)}),[t]);var l=(0,o.useState)(t),u=l[0],s=l[1];return(0,o.useLayoutEffect)((function(){a&&s(t)}),[a,t]),a?o.createElement(Ie,Object.assign({},n,{collapsed:u})):null}function Me(e){var t=e.lazy,n=(0,Se.Z)(e,_e),r=t?Re:Ie;return o.createElement(r,Object.assign({},n))}var De=n(2389),Fe=n(6010),je="details_lb9f",Be="isBrowser_bmU9",ze="collapsibleContent_i85q",Ue=["summary","children"];function Ze(e){return!!e&&("SUMMARY"===e.tagName||Ze(e.parentElement))}function $e(e,t){return!!e&&(e===t||$e(e.parentElement,t))}function He(e){var t=e.summary,n=e.children,r=(0,Se.Z)(e,Ue),a=(0,De.Z)(),i=(0,o.useRef)(null),l=Ce({initialState:!r.open}),u=l.collapsed,s=l.setCollapsed,c=(0,o.useState)(r.open),f=c[0],d=c[1];return o.createElement("details",Object.assign({},r,{ref:i,open:f,"data-collapsed":u,className:(0,Fe.Z)(je,a&&Be,r.className),onMouseDown:function(e){Ze(e.target)&&e.detail>1&&e.preventDefault()},onClick:function(e){e.stopPropagation();var t=e.target;Ze(t)&&$e(t,i.current)&&(e.preventDefault(),u?(s(!1),d(!0)):s(!0))}}),t,o.createElement(Me,{lazy:!1,collapsed:u,disableSSRStyle:!0,onCollapseTransitionEnd:function(e){s(e),d(!e)}},o.createElement("div",{className:ze},n)))}function Ve(e){return Array.from(new Set(e))}var Ge={page:{blogListPage:"blog-list-page",blogPostPage:"blog-post-page",blogTagsListPage:"blog-tags-list-page",blogTagPostListPage:"blog-tags-post-list-page",docsDocPage:"docs-doc-page",docsTagsListPage:"docs-tags-list-page",docsTagDocListPage:"docs-tags-doc-list-page",mdxPage:"mdx-page"},wrapper:{main:"main-wrapper",blogPages:"blog-wrapper",docsPages:"docs-wrapper",mdxPages:"mdx-wrapper"},common:{editThisPage:"theme-edit-this-page",lastUpdated:"theme-last-updated",backToTopButton:"theme-back-to-top-button",codeBlock:"theme-code-block"},layout:{},docs:{docVersionBanner:"theme-doc-version-banner",docVersionBadge:"theme-doc-version-badge",docBreadcrumbs:"theme-doc-breadcrumbs",docMarkdown:"theme-doc-markdown",docTocMobile:"theme-doc-toc-mobile",docTocDesktop:"theme-doc-toc-desktop",docFooter:"theme-doc-footer",docFooterTagsRow:"theme-doc-footer-tags-row",docFooterEditMetaRow:"theme-doc-footer-edit-meta-row",docSidebarContainer:"theme-doc-sidebar-container",docSidebarMenu:"theme-doc-sidebar-menu",docSidebarItemCategory:"theme-doc-sidebar-item-category",docSidebarItemLink:"theme-doc-sidebar-item-link",docSidebarItemCategoryLevel:function(e){return"theme-doc-sidebar-item-category-level-"+e},docSidebarItemLinkLevel:function(e){return"theme-doc-sidebar-item-link-level-"+e}},blog:{}},We=M("docusaurus.announcement.dismiss"),qe=M("docusaurus.announcement.id"),Ke=function(){return"true"===We.get()},Ye=function(e){return We.set(String(e))},Qe=o.createContext(null);function Xe(e){var t=e.children,n=function(){var e=a().announcementBar,t=(0,De.Z)(),n=(0,o.useState)((function(){return!!t&&Ke()})),r=n[0],i=n[1];(0,o.useEffect)((function(){i(Ke())}),[]);var l=(0,o.useCallback)((function(){Ye(!0),i(!0)}),[]);return(0,o.useEffect)((function(){if(e){var t=e.id,n=qe.get();"annoucement-bar"===n&&(n="announcement-bar");var r=t!==n;qe.set(t),r&&Ye(!1),!r&&Ke()||i(!1)}}),[e]),(0,o.useMemo)((function(){return{isActive:!!e&&!r,close:l}}),[e,r,l])}();return o.createElement(Qe.Provider,{value:n},t)}function Je(){var e=(0,o.useContext)(Qe);if(!e)throw new y("AnnouncementBarProvider");return e}function et(){var e=(0,r.Z)().siteConfig.baseUrl;return(0,D.TH)().pathname.replace(e,"/")}var tt=n(5999),nt=function(){return(0,tt.I)({id:"theme.tags.tagsPageTitle",message:"Tags",description:"The title of the tag list page"})};function rt(e){var t={};return Object.values(e).forEach((function(e){var n=function(e){return e[0].toUpperCase()}(e.name);null!=t[n]||(t[n]=[]),t[n].push(e)})),Object.entries(t).sort((function(e,t){var n=e[0],r=t[0];return n.localeCompare(r)})).map((function(e){return{letter:e[0],tags:e[1].sort((function(e,t){return e.name.localeCompare(t.name)}))}}))}function at(e){!function(e){var t=(0,D.k6)().block,n=v(e);(0,o.useEffect)((function(){return t((function(e,t){return n(e,t)}))}),[t,n])}((function(t,n){if("POP"===n)return e(t,n)}))}function ot(e){var t=e.getBoundingClientRect();return t.top===t.bottom?ot(e.parentNode):t}function it(e,t){var n,r,a=t.anchorTopOffset,o=e.find((function(e){return ot(e).top>=a}));return o?function(e){return e.top>0&&e.bottom=0?t[n].children.push(a):r.push(a)})),r}function ft(e){var t=e.toc,n=e.minHeadingLevel,r=e.maxHeadingLevel;return t.flatMap((function(e){var t=ft({toc:e.children,minHeadingLevel:n,maxHeadingLevel:r});return function(e){return e.level>=n&&e.level<=r}(e)?[Object.assign({},e,{children:t})]:t}))}function dt(e){var t=e.toc,n=e.minHeadingLevel,r=e.maxHeadingLevel;return(0,o.useMemo)((function(){return ft({toc:ct(t),minHeadingLevel:n,maxHeadingLevel:r})}),[t,n,r])}function pt(e){return"title"in e[0]}var mt=o.createContext(void 0);function gt(e){var t,n=e.children,r=(t=(0,o.useRef)(!0),(0,o.useMemo)((function(){return{scrollEventsEnabledRef:t,enableScrollEvents:function(){t.current=!0},disableScrollEvents:function(){t.current=!1}}}),[]));return o.createElement(mt.Provider,{value:r},n)}function ht(){var e=(0,o.useContext)(mt);if(null==e)throw new y("ScrollControllerProvider");return e}var vt=function(){return g.Z.canUseDOM?{scrollX:window.pageXOffset,scrollY:window.pageYOffset}:null};function bt(e,t){void 0===t&&(t=[]);var n=ht().scrollEventsEnabledRef,r=(0,o.useRef)(vt()),a=v(e);(0,o.useEffect)((function(){var e=function(){if(n.current){var e=vt();a&&a(e,r.current),r.current=e}},t={passive:!0};return e(),window.addEventListener("scroll",e,t),function(){return window.removeEventListener("scroll",e,t)}}),[a,n].concat(t))}function yt(e,t){return void 0!==e&&void 0!==t&&new RegExp(e,"gi").test(t)}var wt=n(5742),Et=n(226);function kt(){var e=o.useContext(Et._);if(!e)throw new Error("Unexpected: no Docusaurus route context found");return e}var xt=n(4996);function St(e){var t=e.title,n=e.description,a=e.keywords,i=e.image,l=e.children,u=function(e){var t=(0,r.Z)().siteConfig,n=t.title,a=t.titleDelimiter;return null!=e&&e.trim().length?e.trim()+" "+a+" "+n:n}(t),s=(0,xt.C)().withBaseUrl,c=i?s(i,{absolute:!0}):void 0;return o.createElement(wt.Z,null,t&&o.createElement("title",null,u),t&&o.createElement("meta",{property:"og:title",content:u}),n&&o.createElement("meta",{name:"description",content:n}),n&&o.createElement("meta",{property:"og:description",content:n}),a&&o.createElement("meta",{name:"keywords",content:Array.isArray(a)?a.join(","):a}),c&&o.createElement("meta",{property:"og:image",content:c}),c&&o.createElement("meta",{name:"twitter:image",content:c}),l)}var Tt=o.createContext(void 0);function _t(e){var t=e.className,n=e.children,r=o.useContext(Tt),a=(0,Fe.Z)(r,t);return o.createElement(Tt.Provider,{value:a},o.createElement(wt.Z,null,o.createElement("html",{className:a})),n)}function Ct(e){var t=e.children,n=kt(),r="plugin-"+n.plugin.name.replace(/docusaurus-(?:plugin|theme)-(?:content-)?/gi,""),a="plugin-id-"+n.plugin.id;return o.createElement(_t,{className:(0,Fe.Z)(r,a)},t)}var Pt=o.createContext(void 0),Ot="theme",At=M(Ot),Nt="light",Lt="dark",It=function(e){return e===Lt?Lt:Nt},Rt=function(e){At.set(It(e))};function Mt(){var e=a().colorMode,t=e.defaultMode,n=e.disableSwitch,r=e.respectPrefersColorScheme,i=(0,o.useState)(function(e){return g.Z.canUseDOM?It(document.documentElement.getAttribute("data-theme")):It(e)}(t)),l=i[0],u=i[1],s=(0,o.useCallback)((function(e){u(e),Rt(e)}),[]);(0,o.useEffect)((function(){document.documentElement.setAttribute("data-theme",It(l))}),[l]),(0,o.useEffect)((function(){if(!n){var e=function(e){if(e.key===Ot)try{var t=At.get();null!==t&&s(It(t))}catch(n){console.error(n)}};return window.addEventListener("storage",e),function(){return window.removeEventListener("storage",e)}}}),[n,s]);var c=(0,o.useRef)(!1);return(0,o.useEffect)((function(){if(!n||r){var e=window.matchMedia("(prefers-color-scheme: dark)"),t=function(e){var t=e.matches;window.matchMedia("print").matches||c.current?c.current=window.matchMedia("print").matches:s(t?Lt:Nt)};return e.addListener(t),function(){return e.removeListener(t)}}}),[s,n,r]),(0,o.useMemo)((function(){return{colorMode:l,setColorMode:s,get isDarkTheme(){return l===Lt},setLightTheme:function(){s(Nt),Rt(Nt)},setDarkTheme:function(){s(Lt),Rt(Lt)}}}),[l,s])}function Dt(e){var t=e.children,n=Mt();return o.createElement(Pt.Provider,{value:n},t)}function Ft(){var e=(0,o.useContext)(Pt);if(null==e)throw new y("ColorModeProvider","Please see https://docusaurus.io/docs/api/themes/configuration#use-color-mode.");return e}var jt="desktop",Bt="mobile",zt="ssr";function Ut(){return g.Z.canUseDOM?window.innerWidth>996?jt:Bt:zt}function Zt(){var e=(0,o.useState)((function(){return Ut()})),t=e[0],n=e[1];return(0,o.useEffect)((function(){function e(){n(Ut())}return window.addEventListener("resize",e),function(){window.removeEventListener("resize",e),clearTimeout(undefined)}}),[]),t}var $t=o.createContext(void 0);function Ht(){var e,t=(e=(0,q.gA)(),0===a().navbar.items.length&&!e),n=Zt(),r=!t&&"mobile"===n,i=(0,o.useState)(!1),l=i[0],u=i[1];at((function(){if(l)return u(!1),!1}));var s=(0,o.useCallback)((function(){u((function(e){return!e}))}),[]);return(0,o.useEffect)((function(){"desktop"===n&&u(!1)}),[n]),(0,o.useMemo)((function(){return{disabled:t,shouldRender:r,toggle:s,shown:l}}),[t,r,s,l])}function Vt(e){var t=e.children,n=Ht();return o.createElement($t.Provider,{value:n},t)}function Gt(){var e=o.useContext($t);if(void 0===e)throw new y("NavbarMobileSidebarProvider");return e}var Wt={shown:!1,content:{component:null,props:null}},qt=o.createContext(null);function Kt(e){var t,n,r,a,i,l,u,s,c,f=e.children,d=(r=Gt(),a=(0,o.useState)(Wt),i=a[0],l=a[1],u=function(e){return l((function(t){return Object.assign({},t,{shown:e})}))},s=null!==(null==(t=i.content)?void 0:t.component),c=b(null!==(null==(n=i.content)?void 0:n.component)),(0,o.useEffect)((function(){s&&!c&&u(!0)}),[s,c]),(0,o.useEffect)((function(){s?r.shown||u(!0):u(!1)}),[r.shown,s]),[i,l]);return o.createElement(qt.Provider,{value:d},f)}function Yt(){var e=(0,o.useContext)(qt);if(null===e)throw new y("MobileSecondaryMenuProvider");return e}function Qt(e){var t,n=e.component,r=e.props,a=Yt()[1],i=(t=r,(0,o.useMemo)((function(){return t}),[].concat(Object.keys(t),Object.values(t))));return(0,o.useEffect)((function(){a((function(e){return Object.assign({},e,{content:{component:n,props:i}})}))}),[a,n,i]),(0,o.useEffect)((function(){return function(){return a((function(e){return Object.assign({},e,{component:null,props:null})}))}}),[a]),null}function Xt(e){var t;if(null!=(t=e.content)&&t.component){var n=e.content.component;return o.createElement(n,Object.assign({},e.content.props))}}function Jt(){var e=Yt(),t=e[0],n=e[1],r=(0,o.useCallback)((function(){return n((function(e){return Object.assign({},e,{shown:!1})}))}),[n]);return(0,o.useMemo)((function(){return{shown:t.shown,hide:r,content:Xt(t)}}),[r,t])}function en(e){function t(e){var t;return"left"===(null!=(t=e.position)?t:"right")}return[e.filter(t),e.filter((function(e){return!t(e)}))]}function tn(e){var t=e.children;return o.createElement(Vt,null,o.createElement(Kt,null,t))}var nn="docusaurus.tab.",rn=o.createContext(void 0);function an(){var e=(0,o.useState)({}),t=e[0],n=e[1],r=(0,o.useCallback)((function(e,t){M("docusaurus.tab."+e).set(t)}),[]);(0,o.useEffect)((function(){try{var e={};(function(e){void 0===e&&(e=N);var t=L(e);if(!t)return[];for(var n=[],r=0;r=l?r(!1):o+s=0;d--){var p=i[d];"."===p?o(i,d):".."===p?(o(i,d),f++):f&&(o(i,d),f--)}if(!s)for(;f--;f)i.unshift("..");!s||""===i[0]||i[0]&&a(i[0])||i.unshift("");var m=i.join("/");return n&&"/"!==m.substr(-1)&&(m+="/"),m};function l(e){return e.valueOf?e.valueOf():Object.prototype.valueOf.call(e)}var u=function e(t,n){if(t===n)return!0;if(null==t||null==n)return!1;if(Array.isArray(t))return Array.isArray(n)&&t.length===n.length&&t.every((function(t,r){return e(t,n[r])}));if("object"==typeof t||"object"==typeof n){var r=l(t),a=l(n);return r!==t||a!==n?e(r,a):Object.keys(Object.assign({},t,n)).every((function(r){return e(t[r],n[r])}))}return!1},s=n(2177);function c(e){return"/"===e.charAt(0)?e:"/"+e}function f(e){return"/"===e.charAt(0)?e.substr(1):e}function d(e,t){return function(e,t){return 0===e.toLowerCase().indexOf(t.toLowerCase())&&-1!=="/?#".indexOf(e.charAt(t.length))}(e,t)?e.substr(t.length):e}function p(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e}function m(e){var t=e.pathname,n=e.search,r=e.hash,a=t||"/";return n&&"?"!==n&&(a+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(a+="#"===r.charAt(0)?r:"#"+r),a}function g(e,t,n,a){var o;"string"==typeof e?(o=function(e){var t=e||"/",n="",r="",a=t.indexOf("#");-1!==a&&(r=t.substr(a),t=t.substr(0,a));var o=t.indexOf("?");return-1!==o&&(n=t.substr(o),t=t.substr(0,o)),{pathname:t,search:"?"===n?"":n,hash:"#"===r?"":r}}(e),o.state=t):(void 0===(o=(0,r.Z)({},e)).pathname&&(o.pathname=""),o.search?"?"!==o.search.charAt(0)&&(o.search="?"+o.search):o.search="",o.hash?"#"!==o.hash.charAt(0)&&(o.hash="#"+o.hash):o.hash="",void 0!==t&&void 0===o.state&&(o.state=t));try{o.pathname=decodeURI(o.pathname)}catch(l){throw l instanceof URIError?new URIError('Pathname "'+o.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):l}return n&&(o.key=n),a?o.pathname?"/"!==o.pathname.charAt(0)&&(o.pathname=i(o.pathname,a.pathname)):o.pathname=a.pathname:o.pathname||(o.pathname="/"),o}function h(e,t){return e.pathname===t.pathname&&e.search===t.search&&e.hash===t.hash&&e.key===t.key&&u(e.state,t.state)}function v(){var e=null;var t=[];return{setPrompt:function(t){return e=t,function(){e===t&&(e=null)}},confirmTransitionTo:function(t,n,r,a){if(null!=e){var o="function"==typeof e?e(t,n):e;"string"==typeof o?"function"==typeof r?r(o,a):a(!0):a(!1!==o)}else a(!0)},appendListener:function(e){var n=!0;function r(){n&&e.apply(void 0,arguments)}return t.push(r),function(){n=!1,t=t.filter((function(e){return e!==r}))}},notifyListeners:function(){for(var e=arguments.length,n=new Array(e),r=0;rt?n.splice(t,n.length-t,a):n.push(a),f({action:r,location:a,index:t,entries:n})}}))},replace:function(e,t){var r="REPLACE",a=g(e,t,d(),w.location);c.confirmTransitionTo(a,r,n,(function(e){e&&(w.entries[w.index]=a,f({action:r,location:a}))}))},go:y,goBack:function(){y(-1)},goForward:function(){y(1)},canGo:function(e){var t=w.index+e;return t>=0&&t
'};function a(e,t,n){return en?n:e}function o(e){return 100*(-1+e)}function i(e,t,n){var a;return(a="translate3d"===r.positionUsing?{transform:"translate3d("+o(e)+"%,0,0)"}:"translate"===r.positionUsing?{transform:"translate("+o(e)+"%,0)"}:{"margin-left":o(e)+"%"}).transition="all "+t+"ms "+n,a}n.configure=function(e){var t,n;for(t in e)void 0!==(n=e[t])&&e.hasOwnProperty(t)&&(r[t]=n);return this},n.status=null,n.set=function(e){var t=n.isStarted();e=a(e,r.minimum,1),n.status=1===e?null:e;var o=n.render(!t),s=o.querySelector(r.barSelector),c=r.speed,f=r.easing;return o.offsetWidth,l((function(t){""===r.positionUsing&&(r.positionUsing=n.getPositioningCSS()),u(s,i(e,c,f)),1===e?(u(o,{transition:"none",opacity:1}),o.offsetWidth,setTimeout((function(){u(o,{transition:"all "+c+"ms linear",opacity:0}),setTimeout((function(){n.remove(),t()}),c)}),c)):setTimeout(t,c)})),this},n.isStarted=function(){return"number"==typeof n.status},n.start=function(){n.status||n.set(0);var e=function(){setTimeout((function(){n.status&&(n.trickle(),e())}),r.trickleSpeed)};return r.trickle&&e(),this},n.done=function(e){return e||n.status?n.inc(.3+.5*Math.random()).set(1):this},n.inc=function(e){var t=n.status;return t?("number"!=typeof e&&(e=(1-t)*a(Math.random()*t,.1,.95)),t=a(t+e,0,.994),n.set(t)):n.start()},n.trickle=function(){return n.inc(Math.random()*r.trickleRate)},e=0,t=0,n.promise=function(r){return r&&"resolved"!==r.state()?(0===t&&n.start(),e++,t++,r.always((function(){0==--t?(e=0,n.done()):n.set((e-t)/e)})),this):this},n.render=function(e){if(n.isRendered())return document.getElementById("nprogress");c(document.documentElement,"nprogress-busy");var t=document.createElement("div");t.id="nprogress",t.innerHTML=r.template;var a,i=t.querySelector(r.barSelector),l=e?"-100":o(n.status||0),s=document.querySelector(r.parent);return u(i,{transition:"all 0 linear",transform:"translate3d("+l+"%,0,0)"}),r.showSpinner||(a=t.querySelector(r.spinnerSelector))&&p(a),s!=document.body&&c(s,"nprogress-custom-parent"),s.appendChild(t),t},n.remove=function(){f(document.documentElement,"nprogress-busy"),f(document.querySelector(r.parent),"nprogress-custom-parent");var e=document.getElementById("nprogress");e&&p(e)},n.isRendered=function(){return!!document.getElementById("nprogress")},n.getPositioningCSS=function(){var e=document.body.style,t="WebkitTransform"in e?"Webkit":"MozTransform"in e?"Moz":"msTransform"in e?"ms":"OTransform"in e?"O":"";return t+"Perspective"in e?"translate3d":t+"Transform"in e?"translate":"margin"};var l=function(){var e=[];function t(){var n=e.shift();n&&n(t)}return function(n){e.push(n),1==e.length&&t()}}(),u=function(){var e=["Webkit","O","Moz","ms"],t={};function n(e){return e.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,(function(e,t){return t.toUpperCase()}))}function r(t){var n=document.body.style;if(t in n)return t;for(var r,a=e.length,o=t.charAt(0).toUpperCase()+t.slice(1);a--;)if((r=e[a]+o)in n)return r;return t}function a(e){return e=n(e),t[e]||(t[e]=r(e))}function o(e,t,n){t=a(t),e.style[t]=n}return function(e,t){var n,r,a=arguments;if(2==a.length)for(n in t)void 0!==(r=t[n])&&t.hasOwnProperty(n)&&o(e,n,r);else o(e,a[1],a[2])}}();function s(e,t){return("string"==typeof e?e:d(e)).indexOf(" "+t+" ")>=0}function c(e,t){var n=d(e),r=n+t;s(n,t)||(e.className=r.substring(1))}function f(e,t){var n,r=d(e);s(e,t)&&(n=r.replace(" "+t+" "," "),e.className=n.substring(1,n.length-1))}function d(e){return(" "+(e.className||"")+" ").replace(/\s+/gi," ")}function p(e){e&&e.parentNode&&e.parentNode.removeChild(e)}return n},void 0===(a="function"==typeof r?r.call(t,n,t,e):r)||(e.exports=a)},7418:function(e){"use strict";var t=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,r=Object.prototype.propertyIsEnumerable;function a(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(e){r[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(a){return!1}}()?Object.assign:function(e,o){for(var i,l,u=a(e),s=1;se.trim())))if(/^-?\d+$/.test(r))n.push(parseInt(r,10));else if(t=r.match(/^(-?\d+)(-|\.\.\.?|\u2025|\u2026|\u22EF)(-?\d+)$/)){let[e,r,a,o]=t;if(r&&o){r=parseInt(r),o=parseInt(o);const e=r=f.reach);x+=k.value.length,k=k.next){var S=k.value;if(t.length>e.length)return;if(!(S instanceof a)){var T,_=1;if(b){if(!(T=o(E,x,e,v))||T.index>=e.length)break;var C=T.index,P=T.index+T[0].length,O=x;for(O+=k.value.length;C>=O;)O+=(k=k.next).value.length;if(x=O-=k.value.length,k.value instanceof a)continue;for(var A=k;A!==t.tail&&(Of.reach&&(f.reach=R);var M=k.prev;if(L&&(M=u(t,M,L),x+=L.length),s(t,M,_),k=u(t,M,new a(d,h?r.tokenize(N,h):N,y,N)),I&&u(t,k,I),_>1){var D={cause:d+","+m,reach:R};i(e,t,n,k.prev,x,D),f&&D.reach>f.reach&&(f.reach=D.reach)}}}}}}function l(){var e={value:null,prev:null,next:null},t={value:null,prev:e,next:null};e.next=t,this.head=e,this.tail=t,this.length=0}function u(e,t,n){var r=t.next,a={value:n,prev:t,next:r};return t.next=a,r.prev=a,e.length++,a}function s(e,t,n){for(var r=t.next,a=0;a"+o.content+""},r}(),a=r;r.default=r,a.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]},a.languages.markup.tag.inside["attr-value"].inside.entity=a.languages.markup.entity,a.languages.markup.doctype.inside["internal-subset"].inside=a.languages.markup,a.hooks.add("wrap",(function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&/,"&"))})),Object.defineProperty(a.languages.markup.tag,"addInlined",{value:function(e,t){var n={};n["language-"+t]={pattern:/(^$)/i,lookbehind:!0,inside:a.languages[t]},n.cdata=/^$/i;var r={"included-cdata":{pattern://i,inside:n}};r["language-"+t]={pattern:/[\s\S]+/,inside:a.languages[t]};var o={};o[e]={pattern:RegExp(/(<__[^>]*>)(?:))*\]\]>|(?!)/.source.replace(/__/g,(function(){return e})),"i"),lookbehind:!0,greedy:!0,inside:r},a.languages.insertBefore("markup","cdata",o)}}),Object.defineProperty(a.languages.markup.tag,"addAttribute",{value:function(e,t){a.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+e+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[t,"language-"+t],inside:a.languages[t]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),a.languages.html=a.languages.markup,a.languages.mathml=a.languages.markup,a.languages.svg=a.languages.markup,a.languages.xml=a.languages.extend("markup",{}),a.languages.ssml=a.languages.xml,a.languages.atom=a.languages.xml,a.languages.rss=a.languages.xml,function(e){var t="\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\b",n={pattern:/(^(["']?)\w+\2)[ \t]+\S.*/,lookbehind:!0,alias:"punctuation",inside:null},r={bash:n,environment:{pattern:RegExp("\\$"+t),alias:"constant"},variable:[{pattern:/\$?\(\([\s\S]+?\)\)/,greedy:!0,inside:{variable:[{pattern:/(^\$\(\([\s\S]+)\)\)/,lookbehind:!0},/^\$\(\(/],number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/--|\+\+|\*\*=?|<<=?|>>=?|&&|\|\||[=!+\-*/%<>^&|]=?|[?~:]/,punctuation:/\(\(?|\)\)?|,|;/}},{pattern:/\$\((?:\([^)]+\)|[^()])+\)|`[^`]+`/,greedy:!0,inside:{variable:/^\$\(|^`|\)$|`$/}},{pattern:/\$\{[^}]+\}/,greedy:!0,inside:{operator:/:[-=?+]?|[!\/]|##?|%%?|\^\^?|,,?/,punctuation:/[\[\]]/,environment:{pattern:RegExp("(\\{)"+t),lookbehind:!0,alias:"constant"}}},/\$(?:\w+|[#?*!@$])/],entity:/\\(?:[abceEfnrtv\\"]|O?[0-7]{1,3}|U[0-9a-fA-F]{8}|u[0-9a-fA-F]{4}|x[0-9a-fA-F]{1,2})/};e.languages.bash={shebang:{pattern:/^#!\s*\/.*/,alias:"important"},comment:{pattern:/(^|[^"{\\$])#.*/,lookbehind:!0},"function-name":[{pattern:/(\bfunction\s+)[\w-]+(?=(?:\s*\(?:\s*\))?\s*\{)/,lookbehind:!0,alias:"function"},{pattern:/\b[\w-]+(?=\s*\(\s*\)\s*\{)/,alias:"function"}],"for-or-select":{pattern:/(\b(?:for|select)\s+)\w+(?=\s+in\s)/,alias:"variable",lookbehind:!0},"assign-left":{pattern:/(^|[\s;|&]|[<>]\()\w+(?=\+?=)/,inside:{environment:{pattern:RegExp("(^|[\\s;|&]|[<>]\\()"+t),lookbehind:!0,alias:"constant"}},alias:"variable",lookbehind:!0},string:[{pattern:/((?:^|[^<])<<-?\s*)(\w+)\s[\s\S]*?(?:\r?\n|\r)\2/,lookbehind:!0,greedy:!0,inside:r},{pattern:/((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s[\s\S]*?(?:\r?\n|\r)\3/,lookbehind:!0,greedy:!0,inside:{bash:n}},{pattern:/(^|[^\\](?:\\\\)*)"(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|[^"\\`$])*"/,lookbehind:!0,greedy:!0,inside:r},{pattern:/(^|[^$\\])'[^']*'/,lookbehind:!0,greedy:!0},{pattern:/\$'(?:[^'\\]|\\[\s\S])*'/,greedy:!0,inside:{entity:r.entity}}],environment:{pattern:RegExp("\\$?"+t),alias:"constant"},variable:r.variable,function:{pattern:/(^|[\s;|&]|[<>]\()(?:add|apropos|apt|apt-cache|apt-get|aptitude|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|docker|docker-compose|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|node|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|podman|podman-compose|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vcpkg|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\s;|&])/,lookbehind:!0},keyword:{pattern:/(^|[\s;|&]|[<>]\()(?:case|do|done|elif|else|esac|fi|for|function|if|in|select|then|until|while)(?=$|[)\s;|&])/,lookbehind:!0},builtin:{pattern:/(^|[\s;|&]|[<>]\()(?:\.|:|alias|bind|break|builtin|caller|cd|command|continue|declare|echo|enable|eval|exec|exit|export|getopts|hash|help|let|local|logout|mapfile|printf|pwd|read|readarray|readonly|return|set|shift|shopt|source|test|times|trap|type|typeset|ulimit|umask|unalias|unset)(?=$|[)\s;|&])/,lookbehind:!0,alias:"class-name"},boolean:{pattern:/(^|[\s;|&]|[<>]\()(?:false|true)(?=$|[)\s;|&])/,lookbehind:!0},"file-descriptor":{pattern:/\B&\d\b/,alias:"important"},operator:{pattern:/\d?<>|>\||\+=|=[=~]?|!=?|<<[<-]?|[&\d]?>>|\d[<>]&?|[<>][&=]?|&[>&]?|\|[&|]?/,inside:{"file-descriptor":{pattern:/^\d/,alias:"important"}}},punctuation:/\$?\(\(?|\)\)?|\.\.|[{}[\];\\]/,number:{pattern:/(^|\s)(?:[1-9]\d*|0)(?:[.,]\d+)?\b/,lookbehind:!0}},n.inside=e.languages.bash;for(var a=["comment","function-name","for-or-select","assign-left","string","environment","function","keyword","builtin","boolean","file-descriptor","operator","punctuation","number"],o=r.variable[1].inside,i=0;i]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/},a.languages.c=a.languages.extend("clike",{comment:{pattern:/\/\/(?:[^\r\n\\]|\\(?:\r\n?|\n|(?![\r\n])))*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},"class-name":{pattern:/(\b(?:enum|struct)\s+(?:__attribute__\s*\(\([\s\S]*?\)\)\s*)?)\w+|\b[a-z]\w*_t\b/,lookbehind:!0},keyword:/\b(?:_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|__attribute__|asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|inline|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|typeof|union|unsigned|void|volatile|while)\b/,function:/\b[a-z_]\w*(?=\s*\()/i,number:/(?:\b0x(?:[\da-f]+(?:\.[\da-f]*)?|\.[\da-f]+)(?:p[+-]?\d+)?|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)[ful]{0,4}/i,operator:/>>=?|<<=?|->|([-+&|:])\1|[?:~]|[-+*/%&|^!=<>]=?/}),a.languages.insertBefore("c","string",{char:{pattern:/'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n]){0,32}'/,greedy:!0}}),a.languages.insertBefore("c","string",{macro:{pattern:/(^[\t ]*)#\s*[a-z](?:[^\r\n\\/]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|\\(?:\r\n|[\s\S]))*/im,lookbehind:!0,greedy:!0,alias:"property",inside:{string:[{pattern:/^(#\s*include\s*)<[^>]+>/,lookbehind:!0},a.languages.c.string],char:a.languages.c.char,comment:a.languages.c.comment,"macro-name":[{pattern:/(^#\s*define\s+)\w+\b(?!\()/i,lookbehind:!0},{pattern:/(^#\s*define\s+)\w+\b(?=\()/i,lookbehind:!0,alias:"function"}],directive:{pattern:/^(#\s*)[a-z]+/,lookbehind:!0,alias:"keyword"},"directive-hash":/^#/,punctuation:/##|\\(?=[\r\n])/,expression:{pattern:/\S[\s\S]*/,inside:a.languages.c}}}}),a.languages.insertBefore("c","function",{constant:/\b(?:EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|__DATE__|__FILE__|__LINE__|__TIMESTAMP__|__TIME__|__func__|stderr|stdin|stdout)\b/}),delete a.languages.c.boolean,function(e){var t=/\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|char8_t|class|co_await|co_return|co_yield|compl|concept|const|const_cast|consteval|constexpr|constinit|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|final|float|for|friend|goto|if|import|inline|int|int16_t|int32_t|int64_t|int8_t|long|module|mutable|namespace|new|noexcept|nullptr|operator|override|private|protected|public|register|reinterpret_cast|requires|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|uint16_t|uint32_t|uint64_t|uint8_t|union|unsigned|using|virtual|void|volatile|wchar_t|while)\b/,n=/\b(?!)\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"])}(a),function(e){var t=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;e.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:/@[\w-](?:[^;{\s]|\s+(?![\s{]))*(?:;|(?=\s*\{))/,inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+t.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+t.source+"$"),alias:"url"}}},selector:{pattern:RegExp("(^|[{}\\s])[^{}\\s](?:[^{};\"'\\s]|\\s+(?![\\s{])|"+t.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:t,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},e.languages.css.atrule.inside.rest=e.languages.css;var n=e.languages.markup;n&&(n.tag.addInlined("style","css"),n.tag.addAttribute("style","css"))}(a),function(e){var t,n=/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/;e.languages.css.selector={pattern:e.languages.css.selector.pattern,lookbehind:!0,inside:t={"pseudo-element":/:(?:after|before|first-letter|first-line|selection)|::[-\w]+/,"pseudo-class":/:[-\w]+/,class:/\.[-\w]+/,id:/#[-\w]+/,attribute:{pattern:RegExp("\\[(?:[^[\\]\"']|"+n.source+")*\\]"),greedy:!0,inside:{punctuation:/^\[|\]$/,"case-sensitivity":{pattern:/(\s)[si]$/i,lookbehind:!0,alias:"keyword"},namespace:{pattern:/^(\s*)(?:(?!\s)[-*\w\xA0-\uFFFF])*\|(?!=)/,lookbehind:!0,inside:{punctuation:/\|$/}},"attr-name":{pattern:/^(\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+/,lookbehind:!0},"attr-value":[n,{pattern:/(=\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+(?=\s*$)/,lookbehind:!0}],operator:/[|~*^$]?=/}},"n-th":[{pattern:/(\(\s*)[+-]?\d*[\dn](?:\s*[+-]\s*\d+)?(?=\s*\))/,lookbehind:!0,inside:{number:/[\dn]+/,operator:/[+-]/}},{pattern:/(\(\s*)(?:even|odd)(?=\s*\))/i,lookbehind:!0}],combinator:/>|\+|~|\|\|/,punctuation:/[(),]/}},e.languages.css.atrule.inside["selector-function-argument"].inside=t,e.languages.insertBefore("css","property",{variable:{pattern:/(^|[^-\w\xA0-\uFFFF])--(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*/i,lookbehind:!0}});var r={pattern:/(\b\d+)(?:%|[a-z]+(?![\w-]))/,lookbehind:!0},a={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0};e.languages.insertBefore("css","function",{operator:{pattern:/(\s)[+\-*\/](?=\s)/,lookbehind:!0},hexcode:{pattern:/\B#[\da-f]{3,8}\b/i,alias:"color"},color:[{pattern:/(^|[^\w-])(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)(?![\w-])/i,lookbehind:!0},{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:r,number:a,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:r,number:a})}(a),a.languages.javascript=a.languages.extend("clike",{"class-name":[a.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),a.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,a.languages.insertBefore("javascript","keyword",{regex:{pattern:/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)\/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/,lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:a.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:a.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:a.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:a.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:a.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),a.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:a.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),a.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),a.languages.markup&&(a.languages.markup.tag.addInlined("script","javascript"),a.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript")),a.languages.js=a.languages.javascript,function(e){var t=e.util.clone(e.languages.javascript),n=/(?:\s|\/\/.*(?!.)|\/\*(?:[^*]|\*(?!\/))\*\/)/.source,r=/(?:\{(?:\{(?:\{[^{}]*\}|[^{}])*\}|[^{}])*\})/.source,a=/(?:\{*\.{3}(?:[^{}]|)*\})/.source;function o(e,t){return e=e.replace(//g,(function(){return n})).replace(//g,(function(){return r})).replace(//g,(function(){return a})),RegExp(e,t)}a=o(a).source,e.languages.jsx=e.languages.extend("markup",t),e.languages.jsx.tag.pattern=o(/<\/?(?:[\w.:-]+(?:+(?:[\w.:$-]+(?:=(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s{'"/>=]+|))?|))**\/?)?>/.source),e.languages.jsx.tag.inside.tag.pattern=/^<\/?[^\s>\/]*/,e.languages.jsx.tag.inside["attr-value"].pattern=/=(?!\{)(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s'">]+)/,e.languages.jsx.tag.inside.tag.inside["class-name"]=/^[A-Z]\w*(?:\.[A-Z]\w*)*$/,e.languages.jsx.tag.inside.comment=t.comment,e.languages.insertBefore("inside","attr-name",{spread:{pattern:o(//.source),inside:e.languages.jsx}},e.languages.jsx.tag),e.languages.insertBefore("inside","special-attr",{script:{pattern:o(/=/.source),alias:"language-javascript",inside:{"script-punctuation":{pattern:/^=(?=\{)/,alias:"punctuation"},rest:e.languages.jsx}}},e.languages.jsx.tag);var i=function(e){return e?"string"==typeof e?e:"string"==typeof e.content?e.content:e.content.map(i).join(""):""},l=function(t){for(var n=[],r=0;r0&&n[n.length-1].tagName===i(a.content[0].content[1])&&n.pop():"/>"===a.content[a.content.length-1].content||n.push({tagName:i(a.content[0].content[1]),openedBraces:0}):n.length>0&&"punctuation"===a.type&&"{"===a.content?n[n.length-1].openedBraces++:n.length>0&&n[n.length-1].openedBraces>0&&"punctuation"===a.type&&"}"===a.content?n[n.length-1].openedBraces--:o=!0),(o||"string"==typeof a)&&n.length>0&&0===n[n.length-1].openedBraces){var u=i(a);r0&&("string"==typeof t[r-1]||"plain-text"===t[r-1].type)&&(u=i(t[r-1])+u,t.splice(r-1,1),r--),t[r]=new e.Token("plain-text",u,null,u)}a.content&&"string"!=typeof a.content&&l(a.content)}};e.hooks.add("after-tokenize",(function(e){"jsx"!==e.language&&"tsx"!==e.language||l(e.tokens)}))}(a),function(e){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=d.length)return;var r=t[n];if("string"==typeof r||"string"==typeof r.content){var a=d[i],o="string"==typeof r?r:r.content,l=o.indexOf(a);if(-1!==l){++i;var u=o.substring(0,l),f=s(c[a]),p=o.substring(l+a.length),m=[];if(u&&m.push(u),m.push(f),p){var g=[p];e(g),m.push.apply(m,g)}"string"==typeof r?(t.splice.apply(t,[n,1].concat(m)),n+=m.length-1):r.content=m}}else{var h=r.content;Array.isArray(h)?e(h):e([h])}}}(f),new e.Token(r,f,"language-"+r,t)}e.languages.javascript["template-string"]=[i("css",/\b(?:styled(?:\([^)]*\))?(?:\s*\.\s*\w+(?:\([^)]*\))*)*|css(?:\s*\.\s*(?:global|resolve))?|createGlobalStyle|keyframes)/.source),i("html",/\bhtml|\.\s*(?:inner|outer)HTML\s*\+?=/.source),i("svg",/\bsvg/.source),i("markdown",/\b(?:markdown|md)/.source),i("graphql",/\b(?:gql|graphql(?:\s*\.\s*experimental)?)/.source),i("sql",/\bsql/.source),t].filter(Boolean);var f={javascript:!0,js:!0,typescript:!0,ts:!0,jsx:!0,tsx:!0};function d(e){return"string"==typeof e?e:Array.isArray(e)?e.map(d).join(""):d(e.content)}e.hooks.add("after-tokenize",(function(t){t.language in f&&function t(n){for(var r=0,a=n.length;r",unchanged:" ",diff:"!"};Object.keys(t).forEach((function(n){var r=t[n],a=[];/^\w+$/.test(n)||a.push(/\w+/.exec(n)[0]),"diff"===n&&a.push("bold"),e.languages.diff[n]={pattern:RegExp("^(?:["+r+"].*(?:\r\n?|\n|(?![\\s\\S])))+","m"),alias:a,inside:{line:{pattern:/(.)(?=[\s\S]).*(?:\r\n?|\n)?/,lookbehind:!0},prefix:{pattern:/[\s\S]/,alias:/\w+/.exec(n)[0]}}}})),Object.defineProperty(e.languages.diff,"PREFIXES",{value:t})}(a),a.languages.git={comment:/^#.*/m,deleted:/^[-\u2013].*/m,inserted:/^\+.*/m,string:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,command:{pattern:/^.*\$ git .*$/m,inside:{parameter:/\s--?\w+/}},coord:/^@@.*@@$/m,"commit-sha1":/^commit \w{40}$/m},a.languages.go=a.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"|`[^`]*`/,lookbehind:!0,greedy:!0},keyword:/\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\b/,boolean:/\b(?:_|false|iota|nil|true)\b/,number:[/\b0(?:b[01_]+|o[0-7_]+)i?\b/i,/\b0x(?:[a-f\d_]+(?:\.[a-f\d_]*)?|\.[a-f\d_]+)(?:p[+-]?\d+(?:_\d+)*)?i?(?!\w)/i,/(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?[\d_]+)?i?(?!\w)/i],operator:/[*\/%^!=]=?|\+[=+]?|-[=-]?|\|[=|]?|&(?:=|&|\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\./,builtin:/\b(?:append|bool|byte|cap|close|complex|complex(?:64|128)|copy|delete|error|float(?:32|64)|u?int(?:8|16|32|64)?|imag|len|make|new|panic|print(?:ln)?|real|recover|rune|string|uintptr)\b/}),a.languages.insertBefore("go","string",{char:{pattern:/'(?:\\.|[^'\\\r\n]){0,10}'/,greedy:!0}}),delete a.languages.go["class-name"],a.languages.graphql={comment:/#.*/,description:{pattern:/(?:"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*")(?=\s*[a-z_])/i,greedy:!0,alias:"string",inside:{"language-markdown":{pattern:/(^"(?:"")?)(?!\1)[\s\S]+(?=\1$)/,lookbehind:!0,inside:a.languages.markdown}}},string:{pattern:/"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*"/,greedy:!0},number:/(?:\B-|\b)\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,boolean:/\b(?:false|true)\b/,variable:/\$[a-z_]\w*/i,directive:{pattern:/@[a-z_]\w*/i,alias:"function"},"attr-name":{pattern:/\b[a-z_]\w*(?=\s*(?:\((?:[^()"]|"(?:\\.|[^\\"\r\n])*")*\))?:)/i,greedy:!0},"atom-input":{pattern:/\b[A-Z]\w*Input\b/,alias:"class-name"},scalar:/\b(?:Boolean|Float|ID|Int|String)\b/,constant:/\b[A-Z][A-Z_\d]*\b/,"class-name":{pattern:/(\b(?:enum|implements|interface|on|scalar|type|union)\s+|&\s*|:\s*|\[)[A-Z_]\w*/,lookbehind:!0},fragment:{pattern:/(\bfragment\s+|\.{3}\s*(?!on\b))[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-mutation":{pattern:/(\bmutation\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-query":{pattern:/(\bquery\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},keyword:/\b(?:directive|enum|extend|fragment|implements|input|interface|mutation|on|query|repeatable|scalar|schema|subscription|type|union)\b/,operator:/[!=|&]|\.{3}/,"property-query":/\w+(?=\s*\()/,object:/\w+(?=\s*\{)/,punctuation:/[!(){}\[\]:=,]/,property:/\w+/},a.hooks.add("after-tokenize",(function(e){if("graphql"===e.language)for(var t=e.tokens.filter((function(e){return"string"!=typeof e&&"comment"!==e.type&&"scalar"!==e.type})),n=0;n0)){var l=d(/^\{$/,/^\}$/);if(-1===l)continue;for(var u=n;u=0&&p(s,"variable-input")}}}}function c(e){return t[n+e]}function f(e,t){t=t||0;for(var n=0;n=o.length);u++){var s=l[u];if("string"==typeof s||s.content&&"string"==typeof s.content){var c=o[a],f=n.tokenStack[c],d="string"==typeof s?s:s.content,p=t(r,c),m=d.indexOf(p);if(m>-1){++a;var g=d.substring(0,m),h=new e.Token(r,e.tokenize(f,n.grammar),"language-"+r,f),v=d.substring(m+p.length),b=[];g&&b.push.apply(b,i([g])),b.push(h),v&&b.push.apply(b,i([v])),"string"==typeof s?l.splice.apply(l,[u,1].concat(b)):s.content=b}}else s.content&&i(s.content)}return l}(n.tokens)}}}})}(a),function(e){e.languages.handlebars={comment:/\{\{![\s\S]*?\}\}/,delimiter:{pattern:/^\{\{\{?|\}\}\}?$/,alias:"punctuation"},string:/(["'])(?:\\.|(?!\1)[^\\\r\n])*\1/,number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee][+-]?\d+)?/,boolean:/\b(?:false|true)\b/,block:{pattern:/^(\s*(?:~\s*)?)[#\/]\S+?(?=\s*(?:~\s*)?$|\s)/,lookbehind:!0,alias:"keyword"},brackets:{pattern:/\[[^\]]+\]/,inside:{punctuation:/\[|\]/,variable:/[\s\S]+/}},punctuation:/[!"#%&':()*+,.\/;<=>@\[\\\]^`{|}~]/,variable:/[^!"#%&'()*+,\/;<=>@\[\\\]^`{|}~\s]+/},e.hooks.add("before-tokenize",(function(t){e.languages["markup-templating"].buildPlaceholders(t,"handlebars",/\{\{\{[\s\S]+?\}\}\}|\{\{[\s\S]+?\}\}/g)})),e.hooks.add("after-tokenize",(function(t){e.languages["markup-templating"].tokenizePlaceholders(t,"handlebars")})),e.languages.hbs=e.languages.handlebars}(a),a.languages.json={property:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?=\s*:)/,lookbehind:!0,greedy:!0},string:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,lookbehind:!0,greedy:!0},comment:{pattern:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,punctuation:/[{}[\],]/,operator:/:/,boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"}},a.languages.webmanifest=a.languages.json,a.languages.less=a.languages.extend("css",{comment:[/\/\*[\s\S]*?\*\//,{pattern:/(^|[^\\])\/\/.*/,lookbehind:!0}],atrule:{pattern:/@[\w-](?:\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{punctuation:/[:()]/}},selector:{pattern:/(?:@\{[\w-]+\}|[^{};\s@])(?:@\{[\w-]+\}|\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};@\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{variable:/@+[\w-]+/}},property:/(?:@\{[\w-]+\}|[\w-])+(?:\+_?)?(?=\s*:)/,operator:/[+\-*\/]/}),a.languages.insertBefore("less","property",{variable:[{pattern:/@[\w-]+\s*:/,inside:{punctuation:/:/}},/@@?[\w-]+/],"mixin-usage":{pattern:/([{;]\s*)[.#](?!\d)[\w-].*?(?=[(;])/,lookbehind:!0,alias:"function"}}),a.languages.makefile={comment:{pattern:/(^|[^\\])#(?:\\(?:\r\n|[\s\S])|[^\\\r\n])*/,lookbehind:!0},string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"builtin-target":{pattern:/\.[A-Z][^:#=\s]+(?=\s*:(?!=))/,alias:"builtin"},target:{pattern:/^(?:[^:=\s]|[ \t]+(?![\s:]))+(?=\s*:(?!=))/m,alias:"symbol",inside:{variable:/\$+(?:(?!\$)[^(){}:#=\s]+|(?=[({]))/}},variable:/\$+(?:(?!\$)[^(){}:#=\s]+|\([@*%<^+?][DF]\)|(?=[({]))/,keyword:/-include\b|\b(?:define|else|endef|endif|export|ifn?def|ifn?eq|include|override|private|sinclude|undefine|unexport|vpath)\b/,function:{pattern:/(\()(?:abspath|addsuffix|and|basename|call|dir|error|eval|file|filter(?:-out)?|findstring|firstword|flavor|foreach|guile|if|info|join|lastword|load|notdir|or|origin|patsubst|realpath|shell|sort|strip|subst|suffix|value|warning|wildcard|word(?:list|s)?)(?=[ \t])/,lookbehind:!0},operator:/(?:::|[?:+!])?=|[|@]/,punctuation:/[:;(){}]/},function(e){var t=/(?:\\.|[^\\\n\r]|(?:\n|\r\n?)(?![\r\n]))/.source;function n(e){return e=e.replace(//g,(function(){return t})),RegExp(/((?:^|[^\\])(?:\\{2})*)/.source+"(?:"+e+")")}var r=/(?:\\.|``(?:[^`\r\n]|`(?!`))+``|`[^`\r\n]+`|[^\\|\r\n`])+/.source,a=/\|?__(?:\|__)+\|?(?:(?:\n|\r\n?)|(?![\s\S]))/.source.replace(/__/g,(function(){return r})),o=/\|?[ \t]*:?-{3,}:?[ \t]*(?:\|[ \t]*:?-{3,}:?[ \t]*)+\|?(?:\n|\r\n?)/.source;e.languages.markdown=e.languages.extend("markup",{}),e.languages.insertBefore("markdown","prolog",{"front-matter-block":{pattern:/(^(?:\s*[\r\n])?)---(?!.)[\s\S]*?[\r\n]---(?!.)/,lookbehind:!0,greedy:!0,inside:{punctuation:/^---|---$/,"front-matter":{pattern:/\S+(?:\s+\S+)*/,alias:["yaml","language-yaml"],inside:e.languages.yaml}}},blockquote:{pattern:/^>(?:[\t ]*>)*/m,alias:"punctuation"},table:{pattern:RegExp("^"+a+o+"(?:"+a+")*","m"),inside:{"table-data-rows":{pattern:RegExp("^("+a+o+")(?:"+a+")*$"),lookbehind:!0,inside:{"table-data":{pattern:RegExp(r),inside:e.languages.markdown},punctuation:/\|/}},"table-line":{pattern:RegExp("^("+a+")"+o+"$"),lookbehind:!0,inside:{punctuation:/\||:?-{3,}:?/}},"table-header-row":{pattern:RegExp("^"+a+"$"),inside:{"table-header":{pattern:RegExp(r),alias:"important",inside:e.languages.markdown},punctuation:/\|/}}}},code:[{pattern:/((?:^|\n)[ \t]*\n|(?:^|\r\n?)[ \t]*\r\n?)(?: {4}|\t).+(?:(?:\n|\r\n?)(?: {4}|\t).+)*/,lookbehind:!0,alias:"keyword"},{pattern:/^```[\s\S]*?^```$/m,greedy:!0,inside:{"code-block":{pattern:/^(```.*(?:\n|\r\n?))[\s\S]+?(?=(?:\n|\r\n?)^```$)/m,lookbehind:!0},"code-language":{pattern:/^(```).+/,lookbehind:!0},punctuation:/```/}}],title:[{pattern:/\S.*(?:\n|\r\n?)(?:==+|--+)(?=[ \t]*$)/m,alias:"important",inside:{punctuation:/==+$|--+$/}},{pattern:/(^\s*)#.+/m,lookbehind:!0,alias:"important",inside:{punctuation:/^#+|#+$/}}],hr:{pattern:/(^\s*)([*-])(?:[\t ]*\2){2,}(?=\s*$)/m,lookbehind:!0,alias:"punctuation"},list:{pattern:/(^\s*)(?:[*+-]|\d+\.)(?=[\t ].)/m,lookbehind:!0,alias:"punctuation"},"url-reference":{pattern:/!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:\\.|[^>\\])+>)(?:[\t ]+(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\)))?/,inside:{variable:{pattern:/^(!?\[)[^\]]+/,lookbehind:!0},string:/(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\))$/,punctuation:/^[\[\]!:]|[<>]/},alias:"url"},bold:{pattern:n(/\b__(?:(?!_)|_(?:(?!_))+_)+__\b|\*\*(?:(?!\*)|\*(?:(?!\*))+\*)+\*\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^..)[\s\S]+(?=..$)/,lookbehind:!0,inside:{}},punctuation:/\*\*|__/}},italic:{pattern:n(/\b_(?:(?!_)|__(?:(?!_))+__)+_\b|\*(?:(?!\*)|\*\*(?:(?!\*))+\*\*)+\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^.)[\s\S]+(?=.$)/,lookbehind:!0,inside:{}},punctuation:/[*_]/}},strike:{pattern:n(/(~~?)(?:(?!~))+\2/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^~~?)[\s\S]+(?=\1$)/,lookbehind:!0,inside:{}},punctuation:/~~?/}},"code-snippet":{pattern:/(^|[^\\`])(?:``[^`\r\n]+(?:`[^`\r\n]+)*``(?!`)|`[^`\r\n]+`(?!`))/,lookbehind:!0,greedy:!0,alias:["code","keyword"]},url:{pattern:n(/!?\[(?:(?!\]))+\](?:\([^\s)]+(?:[\t ]+"(?:\\.|[^"\\])*")?\)|[ \t]?\[(?:(?!\]))+\])/.source),lookbehind:!0,greedy:!0,inside:{operator:/^!/,content:{pattern:/(^\[)[^\]]+(?=\])/,lookbehind:!0,inside:{}},variable:{pattern:/(^\][ \t]?\[)[^\]]+(?=\]$)/,lookbehind:!0},url:{pattern:/(^\]\()[^\s)]+/,lookbehind:!0},string:{pattern:/(^[ \t]+)"(?:\\.|[^"\\])*"(?=\)$)/,lookbehind:!0}}}}),["url","bold","italic","strike"].forEach((function(t){["url","bold","italic","strike","code-snippet"].forEach((function(n){t!==n&&(e.languages.markdown[t].inside.content.inside[n]=e.languages.markdown[n])}))})),e.hooks.add("after-tokenize",(function(e){"markdown"!==e.language&&"md"!==e.language||function e(t){if(t&&"string"!=typeof t)for(var n=0,r=t.length;n",quot:'"'},u=String.fromCodePoint||String.fromCharCode;e.languages.md=e.languages.markdown}(a),a.languages.objectivec=a.languages.extend("c",{string:{pattern:/@?"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},keyword:/\b(?:asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|in|inline|int|long|register|return|self|short|signed|sizeof|static|struct|super|switch|typedef|typeof|union|unsigned|void|volatile|while)\b|(?:@interface|@end|@implementation|@protocol|@class|@public|@protected|@private|@property|@try|@catch|@finally|@throw|@synthesize|@dynamic|@selector)\b/,operator:/-[->]?|\+\+?|!=?|<>?=?|==?|&&?|\|\|?|[~^%?*\/@]/}),delete a.languages.objectivec["class-name"],a.languages.objc=a.languages.objectivec,a.languages.ocaml={comment:{pattern:/\(\*[\s\S]*?\*\)/,greedy:!0},char:{pattern:/'(?:[^\\\r\n']|\\(?:.|[ox]?[0-9a-f]{1,3}))'/i,greedy:!0},string:[{pattern:/"(?:\\(?:[\s\S]|\r\n)|[^\\\r\n"])*"/,greedy:!0},{pattern:/\{([a-z_]*)\|[\s\S]*?\|\1\}/,greedy:!0}],number:[/\b(?:0b[01][01_]*|0o[0-7][0-7_]*)\b/i,/\b0x[a-f0-9][a-f0-9_]*(?:\.[a-f0-9_]*)?(?:p[+-]?\d[\d_]*)?(?!\w)/i,/\b\d[\d_]*(?:\.[\d_]*)?(?:e[+-]?\d[\d_]*)?(?!\w)/i],directive:{pattern:/\B#\w+/,alias:"property"},label:{pattern:/\B~\w+/,alias:"property"},"type-variable":{pattern:/\B'\w+/,alias:"function"},variant:{pattern:/`\w+/,alias:"symbol"},keyword:/\b(?:as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|match|method|module|mutable|new|nonrec|object|of|open|private|rec|sig|struct|then|to|try|type|val|value|virtual|when|where|while|with)\b/,boolean:/\b(?:false|true)\b/,"operator-like-punctuation":{pattern:/\[[<>|]|[>|]\]|\{<|>\}/,alias:"punctuation"},operator:/\.[.~]|:[=>]|[=<>@^|&+\-*\/$%!?~][!$%&*+\-.\/:<=>?@^|~]*|\b(?:and|asr|land|lor|lsl|lsr|lxor|mod|or)\b/,punctuation:/;;|::|[(){}\[\].,:;#]|\b_\b/},a.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0,greedy:!0},"string-interpolation":{pattern:/(?:f|fr|rf)(?:("""|''')[\s\S]*?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2)/i,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^{])(?:\{\{)*)\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}])+\})+\})+\}/,lookbehind:!0,inside:{"format-spec":{pattern:/(:)[^:(){}]+(?=\}$)/,lookbehind:!0},"conversion-option":{pattern:/![sra](?=[:}]$)/,alias:"punctuation"},rest:null}},string:/[\s\S]+/}},"triple-quoted-string":{pattern:/(?:[rub]|br|rb)?("""|''')[\s\S]*?\1/i,greedy:!0,alias:"string"},string:{pattern:/(?:[rub]|br|rb)?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/i,greedy:!0},function:{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)\w+/i,lookbehind:!0},decorator:{pattern:/(^[\t ]*)@\w+(?:\.\w+)*/m,lookbehind:!0,alias:["annotation","punctuation"],inside:{punctuation:/\./}},keyword:/\b(?:_(?=\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\b/,builtin:/\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/,boolean:/\b(?:False|None|True)\b/,number:/\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\b|(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+(?:_\d+)*)(?:e[+-]?\d+(?:_\d+)*)?j?(?!\w)/i,operator:/[-+%=]=?|!=|:=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/},a.languages.python["string-interpolation"].inside.interpolation.inside.rest=a.languages.python,a.languages.py=a.languages.python,a.languages.reason=a.languages.extend("clike",{string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^\\\r\n"])*"/,greedy:!0},"class-name":/\b[A-Z]\w*/,keyword:/\b(?:and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|method|module|mutable|new|nonrec|object|of|open|or|private|rec|sig|struct|switch|then|to|try|type|val|virtual|when|while|with)\b/,operator:/\.{3}|:[:=]|\|>|->|=(?:==?|>)?|<=?|>=?|[|^?'#!~`]|[+\-*\/]\.?|\b(?:asr|land|lor|lsl|lsr|lxor|mod)\b/}),a.languages.insertBefore("reason","class-name",{char:{pattern:/'(?:\\x[\da-f]{2}|\\o[0-3][0-7][0-7]|\\\d{3}|\\.|[^'\\\r\n])'/,greedy:!0},constructor:/\b[A-Z]\w*\b(?!\s*\.)/,label:{pattern:/\b[a-z]\w*(?=::)/,alias:"symbol"}}),delete a.languages.reason.function,function(e){e.languages.sass=e.languages.extend("css",{comment:{pattern:/^([ \t]*)\/[\/*].*(?:(?:\r?\n|\r)\1[ \t].+)*/m,lookbehind:!0,greedy:!0}}),e.languages.insertBefore("sass","atrule",{"atrule-line":{pattern:/^(?:[ \t]*)[@+=].+/m,greedy:!0,inside:{atrule:/(?:@[\w-]+|[+=])/}}}),delete e.languages.sass.atrule;var t=/\$[-\w]+|#\{\$[-\w]+\}/,n=[/[+*\/%]|[=!]=|<=?|>=?|\b(?:and|not|or)\b/,{pattern:/(\s)-(?=\s)/,lookbehind:!0}];e.languages.insertBefore("sass","property",{"variable-line":{pattern:/^[ \t]*\$.+/m,greedy:!0,inside:{punctuation:/:/,variable:t,operator:n}},"property-line":{pattern:/^[ \t]*(?:[^:\s]+ *:.*|:[^:\s].*)/m,greedy:!0,inside:{property:[/[^:\s]+(?=\s*:)/,{pattern:/(:)[^:\s]+/,lookbehind:!0}],punctuation:/:/,variable:t,operator:n,important:e.languages.sass.important}}}),delete e.languages.sass.property,delete e.languages.sass.important,e.languages.insertBefore("sass","punctuation",{selector:{pattern:/^([ \t]*)\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*(?:,(?:\r?\n|\r)\1[ \t]+\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*)*/m,lookbehind:!0,greedy:!0}})}(a),a.languages.scss=a.languages.extend("css",{comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},atrule:{pattern:/@[\w-](?:\([^()]+\)|[^()\s]|\s+(?!\s))*?(?=\s+[{;])/,inside:{rule:/@[\w-]+/}},url:/(?:[-a-z]+-)?url(?=\()/i,selector:{pattern:/(?=\S)[^@;{}()]?(?:[^@;{}()\s]|\s+(?!\s)|#\{\$[-\w]+\})+(?=\s*\{(?:\}|\s|[^}][^:{}]*[:{][^}]))/,inside:{parent:{pattern:/&/,alias:"important"},placeholder:/%[-\w]+/,variable:/\$[-\w]+|#\{\$[-\w]+\}/}},property:{pattern:/(?:[-\w]|\$[-\w]|#\{\$[-\w]+\})+(?=\s*:)/,inside:{variable:/\$[-\w]+|#\{\$[-\w]+\}/}}}),a.languages.insertBefore("scss","atrule",{keyword:[/@(?:content|debug|each|else(?: if)?|extend|for|forward|function|if|import|include|mixin|return|use|warn|while)\b/i,{pattern:/( )(?:from|through)(?= )/,lookbehind:!0}]}),a.languages.insertBefore("scss","important",{variable:/\$[-\w]+|#\{\$[-\w]+\}/}),a.languages.insertBefore("scss","function",{"module-modifier":{pattern:/\b(?:as|hide|show|with)\b/i,alias:"keyword"},placeholder:{pattern:/%[-\w]+/,alias:"selector"},statement:{pattern:/\B!(?:default|optional)\b/i,alias:"keyword"},boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"},operator:{pattern:/(\s)(?:[-+*\/%]|[=!]=|<=?|>=?|and|not|or)(?=\s)/,lookbehind:!0}}),a.languages.scss.atrule.inside.rest=a.languages.scss,a.languages.sql={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|(?:--|\/\/|#).*)/,lookbehind:!0},variable:[{pattern:/@(["'`])(?:\\[\s\S]|(?!\1)[^\\])+\1/,greedy:!0},/@[\w.$]+/],string:{pattern:/(^|[^@\\])("|')(?:\\[\s\S]|(?!\2)[^\\]|\2\2)*\2/,greedy:!0,lookbehind:!0},identifier:{pattern:/(^|[^@\\])`(?:\\[\s\S]|[^`\\]|``)*`/,greedy:!0,lookbehind:!0,inside:{punctuation:/^`|`$/}},function:/\b(?:AVG|COUNT|FIRST|FORMAT|LAST|LCASE|LEN|MAX|MID|MIN|MOD|NOW|ROUND|SUM|UCASE)(?=\s*\()/i,keyword:/\b(?:ACTION|ADD|AFTER|ALGORITHM|ALL|ALTER|ANALYZE|ANY|APPLY|AS|ASC|AUTHORIZATION|AUTO_INCREMENT|BACKUP|BDB|BEGIN|BERKELEYDB|BIGINT|BINARY|BIT|BLOB|BOOL|BOOLEAN|BREAK|BROWSE|BTREE|BULK|BY|CALL|CASCADED?|CASE|CHAIN|CHAR(?:ACTER|SET)?|CHECK(?:POINT)?|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMNS?|COMMENT|COMMIT(?:TED)?|COMPUTE|CONNECT|CONSISTENT|CONSTRAINT|CONTAINS(?:TABLE)?|CONTINUE|CONVERT|CREATE|CROSS|CURRENT(?:_DATE|_TIME|_TIMESTAMP|_USER)?|CURSOR|CYCLE|DATA(?:BASES?)?|DATE(?:TIME)?|DAY|DBCC|DEALLOCATE|DEC|DECIMAL|DECLARE|DEFAULT|DEFINER|DELAYED|DELETE|DELIMITERS?|DENY|DESC|DESCRIBE|DETERMINISTIC|DISABLE|DISCARD|DISK|DISTINCT|DISTINCTROW|DISTRIBUTED|DO|DOUBLE|DROP|DUMMY|DUMP(?:FILE)?|DUPLICATE|ELSE(?:IF)?|ENABLE|ENCLOSED|END|ENGINE|ENUM|ERRLVL|ERRORS|ESCAPED?|EXCEPT|EXEC(?:UTE)?|EXISTS|EXIT|EXPLAIN|EXTENDED|FETCH|FIELDS|FILE|FILLFACTOR|FIRST|FIXED|FLOAT|FOLLOWING|FOR(?: EACH ROW)?|FORCE|FOREIGN|FREETEXT(?:TABLE)?|FROM|FULL|FUNCTION|GEOMETRY(?:COLLECTION)?|GLOBAL|GOTO|GRANT|GROUP|HANDLER|HASH|HAVING|HOLDLOCK|HOUR|IDENTITY(?:COL|_INSERT)?|IF|IGNORE|IMPORT|INDEX|INFILE|INNER|INNODB|INOUT|INSERT|INT|INTEGER|INTERSECT|INTERVAL|INTO|INVOKER|ISOLATION|ITERATE|JOIN|KEYS?|KILL|LANGUAGE|LAST|LEAVE|LEFT|LEVEL|LIMIT|LINENO|LINES|LINESTRING|LOAD|LOCAL|LOCK|LONG(?:BLOB|TEXT)|LOOP|MATCH(?:ED)?|MEDIUM(?:BLOB|INT|TEXT)|MERGE|MIDDLEINT|MINUTE|MODE|MODIFIES|MODIFY|MONTH|MULTI(?:LINESTRING|POINT|POLYGON)|NATIONAL|NATURAL|NCHAR|NEXT|NO|NONCLUSTERED|NULLIF|NUMERIC|OFF?|OFFSETS?|ON|OPEN(?:DATASOURCE|QUERY|ROWSET)?|OPTIMIZE|OPTION(?:ALLY)?|ORDER|OUT(?:ER|FILE)?|OVER|PARTIAL|PARTITION|PERCENT|PIVOT|PLAN|POINT|POLYGON|PRECEDING|PRECISION|PREPARE|PREV|PRIMARY|PRINT|PRIVILEGES|PROC(?:EDURE)?|PUBLIC|PURGE|QUICK|RAISERROR|READS?|REAL|RECONFIGURE|REFERENCES|RELEASE|RENAME|REPEAT(?:ABLE)?|REPLACE|REPLICATION|REQUIRE|RESIGNAL|RESTORE|RESTRICT|RETURN(?:ING|S)?|REVOKE|RIGHT|ROLLBACK|ROUTINE|ROW(?:COUNT|GUIDCOL|S)?|RTREE|RULE|SAVE(?:POINT)?|SCHEMA|SECOND|SELECT|SERIAL(?:IZABLE)?|SESSION(?:_USER)?|SET(?:USER)?|SHARE|SHOW|SHUTDOWN|SIMPLE|SMALLINT|SNAPSHOT|SOME|SONAME|SQL|START(?:ING)?|STATISTICS|STATUS|STRIPED|SYSTEM_USER|TABLES?|TABLESPACE|TEMP(?:ORARY|TABLE)?|TERMINATED|TEXT(?:SIZE)?|THEN|TIME(?:STAMP)?|TINY(?:BLOB|INT|TEXT)|TOP?|TRAN(?:SACTIONS?)?|TRIGGER|TRUNCATE|TSEQUAL|TYPES?|UNBOUNDED|UNCOMMITTED|UNDEFINED|UNION|UNIQUE|UNLOCK|UNPIVOT|UNSIGNED|UPDATE(?:TEXT)?|USAGE|USE|USER|USING|VALUES?|VAR(?:BINARY|CHAR|CHARACTER|YING)|VIEW|WAITFOR|WARNINGS|WHEN|WHERE|WHILE|WITH(?: ROLLUP|IN)?|WORK|WRITE(?:TEXT)?|YEAR)\b/i,boolean:/\b(?:FALSE|NULL|TRUE)\b/i,number:/\b0x[\da-f]+\b|\b\d+(?:\.\d*)?|\B\.\d+\b/i,operator:/[-+*\/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?|\b(?:AND|BETWEEN|DIV|ILIKE|IN|IS|LIKE|NOT|OR|REGEXP|RLIKE|SOUNDS LIKE|XOR)\b/i,punctuation:/[;[\]()`,.]/},function(e){var t={pattern:/(\b\d+)(?:%|[a-z]+)/,lookbehind:!0},n={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0},r={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},url:{pattern:/\burl\((["']?).*?\1\)/i,greedy:!0},string:{pattern:/("|')(?:(?!\1)[^\\\r\n]|\\(?:\r\n|[\s\S]))*\1/,greedy:!0},interpolation:null,func:null,important:/\B!(?:important|optional)\b/i,keyword:{pattern:/(^|\s+)(?:(?:else|for|if|return|unless)(?=\s|$)|@[\w-]+)/,lookbehind:!0},hexcode:/#[\da-f]{3,6}/i,color:[/\b(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)\b/i,{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:t,number:n,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:t,boolean:/\b(?:false|true)\b/,operator:[/~|[+!\/%<>?=]=?|[-:]=|\*[*=]?|\.{2,3}|&&|\|\||\B-\B|\b(?:and|in|is(?: a| defined| not|nt)?|not|or)\b/],number:n,punctuation:/[{}()\[\];:,]/};r.interpolation={pattern:/\{[^\r\n}:]+\}/,alias:"variable",inside:{delimiter:{pattern:/^\{|\}$/,alias:"punctuation"},rest:r}},r.func={pattern:/[\w-]+\([^)]*\).*/,inside:{function:/^[^(]+/,rest:r}},e.languages.stylus={"atrule-declaration":{pattern:/(^[ \t]*)@.+/m,lookbehind:!0,inside:{atrule:/^@[\w-]+/,rest:r}},"variable-declaration":{pattern:/(^[ \t]*)[\w$-]+\s*.?=[ \t]*(?:\{[^{}]*\}|\S.*|$)/m,lookbehind:!0,inside:{variable:/^\S+/,rest:r}},statement:{pattern:/(^[ \t]*)(?:else|for|if|return|unless)[ \t].+/m,lookbehind:!0,inside:{keyword:/^\S+/,rest:r}},"property-declaration":{pattern:/((?:^|\{)([ \t]*))(?:[\w-]|\{[^}\r\n]+\})+(?:\s*:\s*|[ \t]+)(?!\s)[^{\r\n]*(?:;|[^{\r\n,]$(?!(?:\r?\n|\r)(?:\{|\2[ \t])))/m,lookbehind:!0,inside:{property:{pattern:/^[^\s:]+/,inside:{interpolation:r.interpolation}},rest:r}},selector:{pattern:/(^[ \t]*)(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)(?:(?:\r?\n|\r)(?:\1(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)))*(?:,$|\{|(?=(?:\r?\n|\r)(?:\{|\1[ \t])))/m,lookbehind:!0,inside:{interpolation:r.interpolation,comment:r.comment,punctuation:/[{},]/}},func:r.func,string:r.string,comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0,greedy:!0},interpolation:r.interpolation,punctuation:/[{}()\[\];:.]/}}(a),function(e){e.languages.typescript=e.languages.extend("javascript",{"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|type)\s+)(?!keyof\b)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?:\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,lookbehind:!0,greedy:!0,inside:null},builtin:/\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\b/}),e.languages.typescript.keyword.push(/\b(?:abstract|declare|is|keyof|readonly|require)\b/,/\b(?:asserts|infer|interface|module|namespace|type)\b(?=\s*(?:[{_$a-zA-Z\xA0-\uFFFF]|$))/,/\btype\b(?=\s*(?:[\{*]|$))/),delete e.languages.typescript.parameter,delete e.languages.typescript["literal-property"];var t=e.languages.extend("typescript",{});delete t["class-name"],e.languages.typescript["class-name"].inside=t,e.languages.insertBefore("typescript","function",{decorator:{pattern:/@[$\w\xA0-\uFFFF]+/,inside:{at:{pattern:/^@/,alias:"operator"},function:/^[\s\S]+/}},"generic-function":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\s*\()/,greedy:!0,inside:{function:/^#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:t}}}}),e.languages.ts=e.languages.typescript}(a),function(e){var t=e.util.clone(e.languages.typescript);e.languages.tsx=e.languages.extend("jsx",t),delete e.languages.tsx.parameter,delete e.languages.tsx["literal-property"];var n=e.languages.tsx.tag;n.pattern=RegExp(/(^|[^\w$]|(?=<\/))/.source+"(?:"+n.pattern.source+")",n.pattern.flags),n.lookbehind=!0}(a),a.languages.wasm={comment:[/\(;[\s\S]*?;\)/,{pattern:/;;.*/,greedy:!0}],string:{pattern:/"(?:\\[\s\S]|[^"\\])*"/,greedy:!0},keyword:[{pattern:/\b(?:align|offset)=/,inside:{operator:/=/}},{pattern:/\b(?:(?:f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|neg?|nearest|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|sqrt|store(?:8|16|32)?|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))?|memory\.(?:grow|size))\b/,inside:{punctuation:/\./}},/\b(?:anyfunc|block|br(?:_if|_table)?|call(?:_indirect)?|data|drop|elem|else|end|export|func|get_(?:global|local)|global|if|import|local|loop|memory|module|mut|nop|offset|param|result|return|select|set_(?:global|local)|start|table|tee_local|then|type|unreachable)\b/],variable:/\$[\w!#$%&'*+\-./:<=>?@\\^`|~]+/,number:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/,punctuation:/[()]/},function(e){var t=/[*&][^\s[\]{},]+/,n=/!(?:<[\w\-%#;/?:@&=+$,.!~*'()[\]]+>|(?:[a-zA-Z\d-]*!)?[\w\-%#;/?:@&=+$.~*'()]+)?/,r="(?:"+n.source+"(?:[ \t]+"+t.source+")?|"+t.source+"(?:[ \t]+"+n.source+")?)",a=/(?:[^\s\x00-\x08\x0e-\x1f!"#%&'*,\-:>?@[\]`{|}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]|[?:-])(?:[ \t]*(?:(?![#:])|:))*/.source.replace(//g,(function(){return/[^\s\x00-\x08\x0e-\x1f,[\]{}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]/.source})),o=/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\\\r\n]|\\.)*'/.source;function i(e,t){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"(?:"+a+"|"+o+")"}))),lookbehind:!0,greedy:!0,alias:"atrule"},directive:{pattern:/(^[ \t]*)%.+/m,lookbehind:!0,alias:"important"},datetime:{pattern:i(/\d{4}-\d\d?-\d\d?(?:[tT]|[ \t]+)\d\d?:\d{2}:\d{2}(?:\.\d*)?(?:[ \t]*(?:Z|[-+]\d\d?(?::\d{2})?))?|\d{4}-\d{2}-\d{2}|\d\d?:\d{2}(?::\d{2}(?:\.\d*)?)?/.source),lookbehind:!0,alias:"number"},boolean:{pattern:i(/false|true/.source,"i"),lookbehind:!0,alias:"important"},null:{pattern:i(/null|~/.source,"i"),lookbehind:!0,alias:"important"},string:{pattern:i(o),lookbehind:!0,greedy:!0},number:{pattern:i(/[+-]?(?:0x[\da-f]+|0o[0-7]+|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?|\.inf|\.nan)/.source,"i"),lookbehind:!0},tag:n,important:t,punctuation:/---|[:[\]{}\-,|>?]|\.\.\./},e.languages.yml=e.languages.yaml}(a),t.default=a},9385:function(){!function(e){e.languages.ruby=e.languages.extend("clike",{comment:{pattern:/#.*|^=begin\s[\s\S]*?^=end/m,greedy:!0},"class-name":{pattern:/(\b(?:class|module)\s+|\bcatch\s+\()[\w.\\]+|\b[A-Z_]\w*(?=\s*\.\s*new\b)/,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:BEGIN|END|alias|and|begin|break|case|class|def|define_method|defined|do|each|else|elsif|end|ensure|extend|for|if|in|include|module|new|next|nil|not|or|prepend|private|protected|public|raise|redo|require|rescue|retry|return|self|super|then|throw|undef|unless|until|when|while|yield)\b/,operator:/\.{2,3}|&\.|===||[!=]?~|(?:&&|\|\||<<|>>|\*\*|[+\-*/%<>!^&|=])=?|[?:]/,punctuation:/[(){}[\].,;]/}),e.languages.insertBefore("ruby","operator",{"double-colon":{pattern:/::/,alias:"punctuation"}});var t={pattern:/((?:^|[^\\])(?:\\{2})*)#\{(?:[^{}]|\{[^{}]*\})*\}/,lookbehind:!0,inside:{content:{pattern:/^(#\{)[\s\S]+(?=\}$)/,lookbehind:!0,inside:e.languages.ruby},delimiter:{pattern:/^#\{|\}$/,alias:"punctuation"}}};delete e.languages.ruby.function;var n="(?:"+[/([^a-zA-Z0-9\s{(\[<=])(?:(?!\1)[^\\]|\\[\s\S])*\1/.source,/\((?:[^()\\]|\\[\s\S]|\((?:[^()\\]|\\[\s\S])*\))*\)/.source,/\{(?:[^{}\\]|\\[\s\S]|\{(?:[^{}\\]|\\[\s\S])*\})*\}/.source,/\[(?:[^\[\]\\]|\\[\s\S]|\[(?:[^\[\]\\]|\\[\s\S])*\])*\]/.source,/<(?:[^<>\\]|\\[\s\S]|<(?:[^<>\\]|\\[\s\S])*>)*>/.source].join("|")+")",r=/(?:"(?:\\.|[^"\\\r\n])*"|(?:\b[a-zA-Z_]\w*|[^\s\0-\x7F]+)[?!]?|\$.)/.source;e.languages.insertBefore("ruby","keyword",{"regex-literal":[{pattern:RegExp(/%r/.source+n+/[egimnosux]{0,6}/.source),greedy:!0,inside:{interpolation:t,regex:/[\s\S]+/}},{pattern:/(^|[^/])\/(?!\/)(?:\[[^\r\n\]]+\]|\\.|[^[/\\\r\n])+\/[egimnosux]{0,6}(?=\s*(?:$|[\r\n,.;})#]))/,lookbehind:!0,greedy:!0,inside:{interpolation:t,regex:/[\s\S]+/}}],variable:/[@$]+[a-zA-Z_]\w*(?:[?!]|\b)/,symbol:[{pattern:RegExp(/(^|[^:]):/.source+r),lookbehind:!0,greedy:!0},{pattern:RegExp(/([\r\n{(,][ \t]*)/.source+r+/(?=:(?!:))/.source),lookbehind:!0,greedy:!0}],"method-definition":{pattern:/(\bdef\s+)\w+(?:\s*\.\s*\w+)?/,lookbehind:!0,inside:{function:/\b\w+$/,keyword:/^self\b/,"class-name":/^\w+/,punctuation:/\./}}}),e.languages.insertBefore("ruby","string",{"string-literal":[{pattern:RegExp(/%[qQiIwWs]?/.source+n),greedy:!0,inside:{interpolation:t,string:/[\s\S]+/}},{pattern:/("|')(?:#\{[^}]+\}|#(?!\{)|\\(?:\r\n|[\s\S])|(?!\1)[^\\#\r\n])*\1/,greedy:!0,inside:{interpolation:t,string:/[\s\S]+/}},{pattern:/<<[-~]?([a-z_]\w*)[\r\n](?:.*[\r\n])*?[\t ]*\1/i,alias:"heredoc-string",greedy:!0,inside:{delimiter:{pattern:/^<<[-~]?[a-z_]\w*|\b[a-z_]\w*$/i,inside:{symbol:/\b\w+/,punctuation:/^<<[-~]?/}},interpolation:t,string:/[\s\S]+/}},{pattern:/<<[-~]?'([a-z_]\w*)'[\r\n](?:.*[\r\n])*?[\t ]*\1/i,alias:"heredoc-string",greedy:!0,inside:{delimiter:{pattern:/^<<[-~]?'[a-z_]\w*'|\b[a-z_]\w*$/i,inside:{symbol:/\b\w+/,punctuation:/^<<[-~]?'|'$/}},string:/[\s\S]+/}}],"command-literal":[{pattern:RegExp(/%x/.source+n),greedy:!0,inside:{interpolation:t,command:{pattern:/[\s\S]+/,alias:"string"}}},{pattern:/`(?:#\{[^}]+\}|#(?!\{)|\\(?:\r\n|[\s\S])|[^\\`#\r\n])*`/,greedy:!0,inside:{interpolation:t,command:{pattern:/[\s\S]+/,alias:"string"}}}]}),delete e.languages.ruby.string,e.languages.insertBefore("ruby","number",{builtin:/\b(?:Array|Bignum|Binding|Class|Continuation|Dir|Exception|FalseClass|File|Fixnum|Float|Hash|IO|Integer|MatchData|Method|Module|NilClass|Numeric|Object|Proc|Range|Regexp|Stat|String|Struct|Symbol|TMS|Thread|ThreadGroup|Time|TrueClass)\b/,constant:/\b[A-Z][A-Z0-9_]*(?:[?!]|\b)/}),e.languages.rb=e.languages.ruby}(Prism)},4948:function(e,t,n){var r={"./prism-ruby":9385};function a(e){var t=o(e);return n(t)}function o(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}a.keys=function(){return Object.keys(r)},a.resolve=o,e.exports=a,a.id=4948},2703:function(e,t,n){"use strict";var r=n(414);function a(){}function o(){}o.resetWarningCache=a,e.exports=function(){function e(e,t,n,a,o,i){if(i!==r){var l=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw l.name="Invariant Violation",l}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:o,resetWarningCache:a};return n.PropTypes=n,n}},5697:function(e,t,n){e.exports=n(2703)()},414:function(e){"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},4448:function(e,t,n){"use strict";var r=n(7294),a=n(7418),o=n(3840);function i(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n