/*! For license information please see main.b2b0e660.js.LICENSE.txt */
(self.webpackChunk=self.webpackChunk||[]).push([[8792],{35947:(e,t,n)=>{"use strict";n.d(t,{A:()=>f});var r=n(96540),o=n(58168),a=n(53259),i=n.n(a),s=n(84054);const c={"008dc6c0":[function(){return n.e(4257).then(n.bind(n,23529))},"@site/docs/29.0.0/operations/metadata-migration.md",23529],"0109f7c7":[function(){return n.e(1676).then(n.bind(n,76883))},"@site/docs/29.0.0/operations/insert-segment-to-db.md",76883],"035ed994":[function(){return n.e(3980).then(n.bind(n,48310))},"@site/docs/29.0.0/development/extensions-contrib/moving-average-query.md",48310],"054cf69c":[function(){return n.e(1433).then(n.bind(n,64951))},"@site/docs/29.0.0/querying/sql-metadata-tables.md",64951],"0591e968":[function(){return n.e(9448).then(n.bind(n,95984))},"@site/docs/29.0.0/querying/lookups.md",95984],"05b5ec86":[function(){return n.e(2703).then(n.bind(n,49277))},"@site/docs/29.0.0/tutorials/tutorial-ingestion-spec.md",49277],"05f6bd73":[function(){return Promise.all([n.e(1869),n.e(9722)]).then(n.bind(n,86242))},"@site/docs/29.0.0/querying/nested-columns.md",86242],"06621b6d":[function(){return n.e(5758).then(n.bind(n,67223))},"@site/docs/29.0.0/development/extensions-core/druid-kerberos.md",67223],"077bf22c":[function(){return n.e(6866).then(n.bind(n,51306))},"@site/docs/29.0.0/multi-stage-query/index.md",51306],"0ae1be71":[function(){return n.e(9503).then(n.bind(n,96118))},"@site/docs/29.0.0/querying/joins.md",96118],"0bbc3844":[function(){return n.e(7461).then(n.bind(n,6517))},"@site/docs/29.0.0/querying/troubleshooting.md",6517],"0c347cbc":[function(){return n.e(1086).then(n.bind(n,23531))},"@site/docs/29.0.0/querying/topnmetricspec.md",23531],"0c870731":[function(){return n.e(1716).then(n.bind(n,61361))},"@site/docs/29.0.0/development/extensions-core/simple-client-sslcontext.md",61361],"0cbf8c76":[function(){return n.e(1800).then(n.bind(n,65827))},"@site/docs/29.0.0/comparisons/druid-vs-kudu.md",65827],"0f521c09":[function(){return n.e(4825).then(n.bind(n,75303))},"@site/docs/29.0.0/multi-stage-query/reference.md",75303],"0f59f104":[function(){return n.e(1816).then(n.bind(n,73005))},"@site/docs/29.0.0/operations/use_sbt_to_build_fat_jar.md",73005],"10f31d44":[function(){return n.e(3454).then(n.bind(n,92583))},"@site/docs/29.0.0/api-reference/lookups-api.md",92583],"11205e05":[function(){return n.e(3792).then(n.bind(n,69045))},"@site/docs/29.0.0/development/javascript.md",69045],"128e376b":[function(){return n.e(1453).then(n.bind(n,22873))},"@site/docs/29.0.0/development/extensions-core/parquet.md",22873],"1416f869":[function(){return Promise.all([n.e(1869),n.e(8396)]).then(n.bind(n,40796))},"@site/docs/29.0.0/api-reference/data-management-api.md",40796],"14e10449":[function(){return n.e(583).then(n.bind(n,68413))},"@site/docs/29.0.0/development/extensions-core/lookups-cached-global.md",68413],"14fe9d3d":[function(){return n.e(7293).then(n.bind(n,84367))},"@site/docs/29.0.0/development/extensions-contrib/redis-cache.md",84367],"16cdfe1f":[function(){return n.e(8405).then(n.bind(n,77398))},"@site/docs/29.0.0/development/extensions-core/azure.md",77398],"175147d3":[function(){return n.e(2529).then(n.bind(n,22388))},"@site/docs/29.0.0/operations/request-logging.md",22388],17896441:[function(){return Promise.all([n.e(1869),n.e(8885),n.e(8401)]).then(n.bind(n,50242))},"@theme/DocItem",50242],"1871b932":[function(){return n.e(40).then(n.bind(n,34223))},"@site/docs/29.0.0/operations/rolling-updates.md",34223],"1be78505":[function(){return Promise.all([n.e(1869),n.e(8714)]).then(n.bind(n,50010))},"@theme/DocPage",50010],"1cb29896":[function(){return Promise.all([n.e(1869),n.e(5713)]).then(n.bind(n,12054))},"@site/docs/29.0.0/api-reference/supervisor-api.md",12054],"1dbed9b8":[function(){return n.e(8696).then(n.bind(n,91003))},"@site/docs/29.0.0/development/extensions-core/s3.md",91003],"1e55cdad":[function(){return n.e(941).then(n.bind(n,41129))},"@site/docs/29.0.0/design/middlemanager.md",41129],"1f391b9e":[function(){return Promise.all([n.e(1869),n.e(8885),n.e(6061)]).then(n.bind(n,67973))},"@theme/MDXPage",67973],"1fb9f5aa":[function(){return n.e(904).then(n.bind(n,38990))},"@site/docs/29.0.0/querying/having.md",38990],"1fd605f7":[function(){return n.e(4084).then(n.bind(n,21038))},"@site/src/pages/faq.md",21038],"2006e5b3":[function(){return Promise.all([n.e(1869),n.e(3e3)]).then(n.bind(n,88203))},"@site/docs/29.0.0/api-reference/sql-ingestion-api.md",88203],"2078bf5c":[function(){return n.e(8860).then(n.bind(n,95304))},"@site/src/pages/community/index.mdx",95304],"216f5e40":[function(){return n.e(4134).then(n.bind(n,43355))},"@site/docs/29.0.0/development/extensions-core/approximate-histograms.md",43355],"221e2a28":[function(){return n.e(5324).then(n.bind(n,75997))},"@site/docs/29.0.0/operations/auth-ldap.md",75997],"2271b53b":[function(){return Promise.all([n.e(1869),n.e(275)]).then(n.bind(n,91481))},"@site/docs/29.0.0/api-reference/json-querying-api.md",91481],"23d0d62d":[function(){return n.e(6850).then(n.bind(n,80699))},"@site/docs/29.0.0/ingestion/schema-design.md",80699],"25bcdfb1":[function(){return n.e(9396).then(n.bind(n,67114))},"@site/docs/29.0.0/development/extensions-core/druid-ranger-security.md",67114],"25bf4862":[function(){return n.e(6428).then(n.bind(n,64533))},"@site/docs/29.0.0/data-management/index.md",64533],"268fe099":[function(){return n.e(1520).then(n.bind(n,9769))},"@site/docs/29.0.0/operations/kubernetes.md",9769],"26f2754c":[function(){return n.e(6844).then(n.bind(n,80780))},"@site/docs/29.0.0/operations/basic-cluster-tuning.md",80780],27930202:[function(){return n.e(9198).then(n.bind(n,18906))},"@site/docs/29.0.0/querying/sql-multivalue-string-functions.md",18906],"28095a7c":[function(){return n.e(8528).then(n.bind(n,58622))},"@site/docs/29.0.0/development/extensions-core/datasketches-tuple.md",58622],"285d2efe":[function(){return n.e(1058).then(n.bind(n,13810))},"@site/docs/29.0.0/release-info/release-notes.md",13810],"2951a428":[function(){return n.e(3).then(n.bind(n,17635))},"@site/docs/29.0.0/design/deep-storage.md",17635],"2af72138":[function(){return n.e(7783).then(n.bind(n,3659))},"@site/docs/29.0.0/multi-stage-query/examples.md",3659],"2c5b6b24":[function(){return n.e(9029).then(n.bind(n,1627))},"@site/docs/29.0.0/development/extensions-core/druid-lookups.md",1627],"2c9eea52":[function(){return n.e(8683).then(n.bind(n,77106))},"@site/docs/29.0.0/ingestion/concurrent-append-replace.md",77106],"2cfe4cf6":[function(){return n.e(1010).then(n.bind(n,80464))},"@site/docs/29.0.0/ingestion/input-sources.md",80464],"2d2555e5":[function(){return n.e(7802).then(n.bind(n,96573))},"@site/docs/29.0.0/tutorials/tutorial-delete-data.md",96573],"2d6cfe83":[function(){return n.e(944).then(n.bind(n,93324))},"@site/docs/29.0.0/tutorials/tutorial-msq-convert-spec.md",93324],"2fdfe072":[function(){return n.e(5817).then(n.bind(n,62809))},"@site/docs/29.0.0/tutorials/tutorial-batch-hadoop.md",62809],"3135cdec":[function(){return n.e(2954).then(n.bind(n,37550))},"@site/docs/29.0.0/ingestion/kafka-ingestion.md",37550],"315053d0":[function(){return n.e(6996).then(n.bind(n,81242))},"@site/docs/29.0.0/querying/multi-value-dimensions.md",81242],"31f72083":[function(){return n.e(6167).then(n.bind(n,19405))},"@site/docs/29.0.0/development/extensions-contrib/spectator-histogram.md",19405],"32212b8b":[function(){return n.e(9709).then(n.bind(n,27922))},"@site/docs/29.0.0/development/extensions-contrib/influxdb-emitter.md",27922],"32256df4":[function(){return n.e(123).then(n.bind(n,10827))},"@site/docs/29.0.0/querying/sql-aggregations.md",10827],"33e3889f":[function(){return n.e(6e3).then(n.bind(n,69085))},"@site/docs/29.0.0/development/extensions-contrib/delta-lake.md",69085],"349c2143":[function(){return n.e(4490).then(n.bind(n,4284))},"@site/docs/29.0.0/ingestion/standalone-realtime.md",4284],"34da69bb":[function(){return n.e(1960).then(n.bind(n,52997))},"@site/docs/29.0.0/operations/java.md",52997],"382081cb":[function(){return n.e(6142).then(n.bind(n,33137))},"@site/docs/29.0.0/development/extensions-contrib/cassandra.md",33137],"3850f2cd":[function(){return n.e(328).then(n.bind(n,81974))},"@site/docs/29.0.0/querying/virtual-columns.md",81974],"39e8690f":[function(){return n.e(8225).then(n.bind(n,82457))},"@site/docs/29.0.0/ingestion/partitioning.md",82457],"3aef39f9":[function(){return n.e(2090).then(n.bind(n,31623))},"@site/docs/29.0.0/configuration/index.md",31623],"3dc3081e":[function(){return n.e(9038).then(n.bind(n,51536))},"@site/docs/29.0.0/development/extensions-contrib/sqlserver.md",51536],"3dc48ea3":[function(){return n.e(9158).then(n.bind(n,48864))},"@site/docs/29.0.0/ingestion/schema-model.md",48864],"3df53c0b":[function(){return n.e(4169).then(n.bind(n,36020))},"@site/docs/29.0.0/querying/sql-query-context.md",36020],"3ee44481":[function(){return n.e(1837).then(n.bind(n,42249))},"@site/docs/29.0.0/operations/export-metadata.md",42249],"3fdeab71":[function(){return n.e(404).then(n.bind(n,53414))},"@site/docs/29.0.0/tutorials/tutorial-kerberos-hadoop.md",53414],"404e84a5":[function(){return n.e(7940).then(n.bind(n,28443))},"@site/docs/29.0.0/development/extensions-core/kafka-extraction-namespace.md",28443],"4113b856":[function(){return Promise.all([n.e(1869),n.e(7353)]).then(n.bind(n,34446))},"@site/docs/29.0.0/api-reference/tasks-api.md",34446],"41b2c32b":[function(){return n.e(2636).then(n.bind(n,1695))},"@site/docs/29.0.0/development/extensions-core/postgresql.md",1695],"41dbc86e":[function(){return n.e(7086).then(n.bind(n,29226))},"@site/docs/29.0.0/development/extensions-core/datasketches-quantiles.md",29226],"42dd4fd0":[function(){return n.e(8847).then(n.bind(n,27215))},"@site/docs/29.0.0/operations/auth.md",27215],"4505fb1c":[function(){return n.e(6847).then(n.bind(n,8957))},"@site/docs/29.0.0/comparisons/druid-vs-key-value.md",8957],"457e0700":[function(){return n.e(5357).then(n.bind(n,59767))},"@site/docs/29.0.0/querying/querying.md",59767],47002093:[function(){return n.e(1718).then(n.bind(n,94956))},"@site/docs/29.0.0/operations/migrate-from-firehose-ingestion.md",94956],48151658:[function(){return n.e(9651).then(n.bind(n,33533))},"@site/docs/29.0.0/development/modules.md",33533],"4d24b7c4":[function(){return n.e(5281).then(n.bind(n,12910))},"@site/docs/29.0.0/querying/tips-good-queries.md",12910],"4e063dea":[function(){return n.e(5919).then(n.bind(n,3129))},"@site/docs/29.0.0/development/extensions-core/datasketches-extension.md",3129],"4ec2c662":[function(){return n.e(3758).then(n.bind(n,23551))},"@site/docs/29.0.0/querying/query-processing.md",23551],"4f22fcc6":[function(){return n.e(5887).then(n.bind(n,77454))},"@site/docs/29.0.0/development/extensions-core/google.md",77454],"503ba086":[function(){return n.e(8222).then(n.bind(n,44730))},"@site/docs/29.0.0/multi-stage-query/security.md",44730],"504b36f7":[function(){return n.e(884).then(n.bind(n,23069))},"@site/docs/29.0.0/tutorials/tutorial-rollup.md",23069],"50d798df":[function(){return n.e(5498).then(n.bind(n,87650))},"@site/docs/29.0.0/tutorials/index.md",87650],"528d63cb":[function(){return n.e(1840).then(n.t.bind(n,4061,19))},"/Users/katyamacedo/Documents/Repos/druid-website-src/.docusaurus/docusaurus-plugin-content-pages/default/plugin-route-context-module-100.json",4061],"52c72b17":[function(){return n.e(4968).then(n.bind(n,37460))},"@site/docs/29.0.0/development/extensions-contrib/ddsketch-quantiles.md",37460],"547788e1":[function(){return n.e(6980).then(n.bind(n,50415))},"@site/docs/29.0.0/development/extensions-core/orc.md",50415],"55fdd877":[function(){return Promise.all([n.e(1869),n.e(1461)]).then(n.bind(n,35628))},"@site/docs/29.0.0/api-reference/service-status-api.md",35628],"57ee89c0":[function(){return n.e(7645).then(n.bind(n,44400))},"@site/docs/29.0.0/development/extensions-contrib/momentsketch-quantiles.md",44400],58874471:[function(){return n.e(6559).then(n.bind(n,65443))},"@site/docs/29.0.0/querying/sql-array-functions.md",65443],"58b22988":[function(){return n.e(7467).then(n.bind(n,37764))},"@site/docs/29.0.0/operations/clean-metadata-store.md",37764],"58edcf77":[function(){return n.e(2618).then(n.bind(n,1186))},"@site/docs/29.0.0/development/versioning.md",1186],"5a722b3b":[function(){return n.e(2685).then(n.bind(n,23516))},"@site/docs/29.0.0/querying/aggregations.md",23516],"5a89402e":[function(){return n.e(9911).then(n.bind(n,59149))},"@site/docs/29.0.0/operations/mixed-workloads.md",59149],"5b55a31e":[function(){return n.e(2490).then(n.bind(n,90290))},"@site/src/pages/licensing.md",90290],"5bb38577":[function(){return n.e(6636).then(n.bind(n,32735))},"@site/docs/29.0.0/api-reference/sql-jdbc.md",32735],"5bcd0a3f":[function(){return n.e(4910).then(n.bind(n,98338))},"@site/src/pages/technology.md",98338],"5bf6e863":[function(){return n.e(2448).then(n.bind(n,49968))},"@site/docs/29.0.0/querying/sql-data-types.md",49968],"5c6b73c5":[function(){return n.e(9713).then(n.bind(n,42438))},"@site/docs/29.0.0/configuration/human-readable-byte.md",42438],"5ddf27b8":[function(){return n.e(2221).then(n.bind(n,26959))},"@site/docs/29.0.0/querying/dimensionspecs.md",26959],"5e9f5e1a":[function(){return Promise.resolve().then(n.bind(n,4784))},"@generated/docusaurus.config",4784],"5ecd7b94":[function(){return n.e(6096).then(n.bind(n,76e3))},"@site/docs/29.0.0/development/experimental.md",76e3],"5eed60db":[function(){return n.e(8502).then(n.bind(n,6735))},"@site/docs/29.0.0/ingestion/faq.md",6735],"5f40121b":[function(){return n.e(3582).then(n.bind(n,20118))},"@site/docs/29.0.0/development/extensions-core/protobuf.md",20118],"5f8c15b3":[function(){return n.e(4358).then(n.bind(n,96849))},"@site/docs/29.0.0/operations/high-availability.md",96849],"5fa314af":[function(){return n.e(6936).then(n.bind(n,66944))},"@site/docs/29.0.0/ingestion/native-batch-simple-task.md",66944],"60f9804e":[function(){return n.e(6463).then(n.bind(n,61870))},"@site/docs/29.0.0/tutorials/tutorial-sketches-theta.md",61870],"612017ab":[function(){return n.e(7587).then(n.bind(n,26244))},"@site/docs/29.0.0/development/extensions-contrib/time-min-max.md",26244],"6547e5cb":[function(){return n.e(9382).then(n.bind(n,12500))},"@site/docs/29.0.0/querying/query-execution.md",12500],"672a9227":[function(){return n.e(8261).then(n.bind(n,46928))},"@site/docs/29.0.0/design/overlord.md",46928],"677c6533":[function(){return n.e(4365).then(n.t.bind(n,61966,19))},"/Users/katyamacedo/Documents/Repos/druid-website-src/.docusaurus/docusaurus-plugin-content-docs/default/plugin-route-context-module-100.json",61966],67933092:[function(){return n.e(2934).then(n.bind(n,85065))},"@site/docs/29.0.0/querying/arrays.md",85065],"67c671c5":[function(){return n.e(5421).then(n.bind(n,68514))},"@site/docs/29.0.0/operations/alerts.md",68514],68368662:[function(){return n.e(6728).then(n.bind(n,89401))},"@site/docs/29.0.0/design/index.md",89401],"6979e7da":[function(){return n.e(4065).then(n.bind(n,99653))},"@site/docs/29.0.0/api-reference/api-reference.md",99653],"69bee408":[function(){return n.e(9544).then(n.bind(n,77775))},"@site/docs/29.0.0/operations/security-overview.md",77775],"6cdb5461":[function(){return n.e(120).then(n.bind(n,92278))},"@site/docs/29.0.0/operations/tls-support.md",92278],"6d526f5c":[function(){return n.e(2628).then(n.bind(n,9146))},"@site/docs/29.0.0/querying/timeboundaryquery.md",9146],"6f318b00":[function(){return n.e(3865).then(n.bind(n,22042))},"@site/docs/29.0.0/ingestion/data-formats.md",22042],"71b76a87":[function(){return n.e(5142).then(n.bind(n,88856))},"@site/docs/29.0.0/querying/filters.md",88856],"72f6be96":[function(){return Promise.all([n.e(1869),n.e(9694)]).then(n.bind(n,62778))},"@site/docs/29.0.0/ingestion/kinesis-ingestion.md",62778],"73d55dcf":[function(){return n.e(2540).then(n.bind(n,74360))},"@site/docs/29.0.0/development/extensions-contrib/k8s-jobs.md",74360],"760e0b1e":[function(){return n.e(8009).then(n.bind(n,15686))},"@site/docs/29.0.0/development/extensions-core/examples.md",15686],"7761ea0c":[function(){return Promise.all([n.e(1869),n.e(2119)]).then(n.bind(n,3465))},"@site/docs/29.0.0/tutorials/tutorial-unnest-arrays.md",3465],"77f0d0af":[function(){return n.e(9990).then(n.bind(n,28383))},"@site/docs/29.0.0/querying/sql-functions.md",28383],"782e3668":[function(){return n.e(8752).then(n.bind(n,97590))},"@site/docs/29.0.0/operations/security-user-auth.md",97590],"7a4a6d4c":[function(){return n.e(9955).then(n.bind(n,43081))},"@site/docs/29.0.0/operations/dynamic-config-provider.md",43081],"7ac80b3d":[function(){return n.e(1645).then(n.bind(n,17581))},"@site/docs/29.0.0/development/extensions-core/bloom-filter.md",17581],"7b942940":[function(){return n.e(9564).then(n.bind(n,3764))},"@site/docs/29.0.0/development/extensions-contrib/thrift.md",3764],"7bfab197":[function(){return Promise.all([n.e(1869),n.e(4528)]).then(n.bind(n,990))},"@site/docs/29.0.0/querying/datasource.md",990],"7db7c644":[function(){return n.e(4312).then(n.bind(n,71658))},"@site/docs/29.0.0/tutorials/tutorial-retention.md",71658],"7ddaea69":[function(){return n.e(8646).then(n.bind(n,67126))},"@site/docs/29.0.0/querying/topnquery.md",67126],"7f7ce349":[function(){return n.e(1299).then(n.bind(n,3417))},"@site/docs/29.0.0/querying/query-context.md",3417],"819280be":[function(){return n.e(4836).then(n.bind(n,43999))},"@site/docs/29.0.0/development/extensions-contrib/prometheus.md",43999],81985269:[function(){return n.e(6603).then(n.bind(n,70586))},"@site/docs/29.0.0/querying/select-query.md",70586],"82593e9b":[function(){return n.e(8918).then(n.bind(n,38173))},"@site/docs/29.0.0/comparisons/druid-vs-redshift.md",38173],"82732c32":[function(){return n.e(1165).then(n.bind(n,74071))},"@site/docs/29.0.0/querying/limitspec.md",74071],"84ac5748":[function(){return n.e(2239).then(n.bind(n,98038))},"@site/docs/29.0.0/data-management/schema-changes.md",98038],"84fd1959":[function(){return n.e(7041).then(n.bind(n,67421))},"@site/docs/29.0.0/tutorials/tutorial-kafka.md",67421],"8643da2b":[function(){return n.e(9723).then(n.bind(n,51640))},"@site/docs/29.0.0/development/extensions-contrib/aliyun-oss-extensions.md",51640],"866dea45":[function(){return n.e(5948).then(n.bind(n,76579))},"@site/docs/29.0.0/release-info/upgrade-notes.md",76579],"86ff69a9":[function(){return n.e(3304).then(n.bind(n,55416))},"@site/docs/29.0.0/tutorials/docker.md",55416],"8926f85a":[function(){return n.e(8162).then(n.bind(n,58101))},"@site/docs/29.0.0/development/extensions-contrib/gce-extensions.md",58101],"8a6641d6":[function(){return n.e(9525).then(n.bind(n,12223))},"@site/docs/29.0.0/querying/hll-old.md",12223],"8a6a3c86":[function(){return n.e(6785).then(n.bind(n,98585))},"@site/docs/29.0.0/querying/groupbyquery.md",98585],"8abd3472":[function(){return n.e(6630).then(n.bind(n,22866))},"@site/docs/29.0.0/development/extensions-contrib/iceberg.md",22866],"8bf451e3":[function(){return n.e(5777).then(n.bind(n,73754))},"@site/docs/29.0.0/querying/geo.md",73754],"8c07abe5":[function(){return n.e(5124).then(n.bind(n,33355))},"@site/docs/29.0.0/ingestion/streaming.md",33355],"8d1560b6":[function(){return n.e(2191).then(n.bind(n,74251))},"@site/docs/29.0.0/development/extensions-contrib/compressed-big-decimal.md",74251],"8dd13a4f":[function(){return n.e(5696).then(n.bind(n,26468))},"@site/docs/29.0.0/design/router.md",26468],"8e7882e3":[function(){return n.e(5825).then(n.bind(n,61626))},"@site/docs/29.0.0/operations/http-compression.md",61626],"8ea8f2dd":[function(){return n.e(6793).then(n.bind(n,39569))},"@site/docs/29.0.0/multi-stage-query/concepts.md",39569],"90a27bdd":[function(){return n.e(8938).then(n.bind(n,47171))},"@site/docs/29.0.0/tutorials/tutorial-update-data.md",47171],"91b90c19":[function(){return n.e(2755).then(n.bind(n,94263))},"@site/docs/29.0.0/tutorials/tutorial-batch.md",94263],"92754ac2":[function(){return n.e(8888).then(n.bind(n,18341))},"@site/docs/29.0.0/development/docs-contribute.md",18341],"92ec0124":[function(){return n.e(4153).then(n.bind(n,25271))},"@site/docs/29.0.0/design/indexing-service.md",25271],"935f2afb":[function(){return n.e(8581).then(n.t.bind(n,35610,19))},"~docs/default/version-current-metadata-prop-751.json",35610],"941133d2":[function(){return n.e(6946).then(n.bind(n,33100))},"@site/docs/29.0.0/development/extensions-core/datasketches-theta.md",33100],"94aa3d86":[function(){return n.e(5125).then(n.bind(n,43938))},"@site/docs/29.0.0/development/extensions-contrib/statsd.md",43938],"9537a24c":[function(){return n.e(6305).then(n.bind(n,87876))},"@site/docs/29.0.0/development/build.md",87876],96217456:[function(){return n.e(101).then(n.bind(n,92643))},"@site/docs/29.0.0/development/extensions-core/test-stats.md",92643],"9636e5c7":[function(){return n.e(3669).then(n.bind(n,76890))},"@site/docs/29.0.0/ingestion/hadoop.md",76890],"993fdb06":[function(){return n.e(8890).then(n.bind(n,84698))},"@site/docs/29.0.0/multi-stage-query/known-issues.md",84698],"9a41d3c9":[function(){return n.e(1755).then(n.bind(n,93181))},"@site/docs/29.0.0/operations/pull-deps.md",93181],"9af5fee7":[function(){return n.e(4797).then(n.bind(n,9301))},"@site/docs/29.0.0/development/extensions-core/druid-pac4j.md",9301],"9b520f78":[function(){return n.e(76).then(n.bind(n,53346))},"@site/docs/29.0.0/tutorials/tutorial-sql-query-view.md",53346],"9c46ead5":[function(){return n.e(1742).then(n.bind(n,95415))},"@site/docs/29.0.0/tutorials/tutorial-batch-native.md",95415],"9e519bb2":[function(){return Promise.all([n.e(1869),n.e(5550)]).then(n.bind(n,24810))},"@site/docs/29.0.0/api-reference/dynamic-configuration-api.md",24810],a0538546:[function(){return n.e(7047).then(n.bind(n,23889))},"@site/docs/29.0.0/querying/sorting-orders.md",23889],a0cfed8c:[function(){return n.e(6947).then(n.bind(n,57188))},"@site/docs/29.0.0/operations/metrics.md",57188],a0de97c3:[function(){return n.e(2895).then(n.bind(n,17448))},"@site/src/pages/blog.md",17448],a1bd808f:[function(){return n.e(3685).then(n.bind(n,64159))},"@site/docs/29.0.0/operations/web-console.md",64159],a1d693f4:[function(){return n.e(6589).then(n.bind(n,68666))},"@site/docs/29.0.0/querying/sql-json-functions.md",68666],a25872ab:[function(){return n.e(8167).then(n.bind(n,97325))},"@site/docs/29.0.0/configuration/extensions.md",97325],a2b332f7:[function(){return n.e(2033).then(n.bind(n,17591))},"@site/docs/29.0.0/querying/scan-query.md",17591],a2f5bdb0:[function(){return n.e(5325).then(n.bind(n,66518))},"@site/docs/29.0.0/design/architecture.md",66518],a8e19f39:[function(){return n.e(2511).then(n.bind(n,65308))},"@site/docs/29.0.0/querying/multitenancy.md",65308],aac9aa13:[function(){return Promise.all([n.e(1869),n.e(4427)]).then(n.bind(n,99607))},"@site/docs/29.0.0/api-reference/automatic-compaction-api.md",99607],ab897d12:[function(){return n.e(7895).then(n.bind(n,57251))},"@site/docs/29.0.0/querying/searchquery.md",57251],ac78a47c:[function(){return n.e(4667).then(n.bind(n,55538))},"@site/docs/29.0.0/development/extensions-contrib/ambari-metrics-emitter.md",55538],aded680a:[function(){return n.e(5388).then(n.bind(n,95327))},"@site/docs/29.0.0/design/segments.md",95327],af06fdec:[function(){return n.e(250).then(n.bind(n,36765))},"@site/docs/29.0.0/data-management/manual-compaction.md",36765],b019fc37:[function(){return n.e(188).then(n.bind(n,49676))},"@site/docs/29.0.0/development/extensions-contrib/materialized-view.md",49676],b0b17773:[function(){return n.e(910).then(n.bind(n,33877))},"@site/docs/29.0.0/development/extensions-core/kubernetes.md",33877],b174ad29:[function(){return n.e(3385).then(n.bind(n,55523))},"@site/docs/29.0.0/querying/sql-operators.md",55523],b213d090:[function(){return n.e(248).then(n.bind(n,23310))},"@site/docs/29.0.0/tutorials/tutorial-compaction.md",23310],b2231989:[function(){return Promise.all([n.e(1869),n.e(3705)]).then(n.bind(n,25312))},"@site/docs/29.0.0/api-reference/retention-rules-api.md",25312],b2d97b87:[function(){return n.e(1502).then(n.bind(n,86068))},"@site/docs/29.0.0/development/extensions-contrib/tdigestsketch-quantiles.md",86068],b3507710:[function(){return n.e(5940).then(n.bind(n,90255))},"@site/docs/29.0.0/development/extensions-contrib/cloudfiles.md",90255],b358c051:[function(){return n.e(834).then(n.bind(n,84297))},"@site/docs/29.0.0/ingestion/native-batch.md",84297],b647b2cd:[function(){return n.e(2577).then(n.bind(n,64745))},"@site/docs/29.0.0/comparisons/druid-vs-elasticsearch.md",64745],b6d914f5:[function(){return n.e(4078).then(n.bind(n,53369))},"@site/docs/29.0.0/development/extensions-core/druid-basic-security.md",53369],b6d922f1:[function(){return n.e(4849).then(n.bind(n,32525))},"@site/src/pages/downloads.mdx",32525],b75463b7:[function(){return n.e(2665).then(n.bind(n,47191))},"@site/docs/29.0.0/tutorials/tutorial-msq-extern.md",47191],b8e9cb00:[function(){return n.e(3848).then(n.bind(n,50333))},"@site/docs/29.0.0/ingestion/tranquility.md",50333],ba8ae3fa:[function(){return n.e(3434).then(n.bind(n,35030))},"@site/docs/29.0.0/configuration/logging.md",35030],bbfa20a6:[function(){return n.e(383).then(n.bind(n,15047))},"@site/docs/29.0.0/querying/granularities.md",15047],bd17f600:[function(){return n.e(4537).then(n.bind(n,81383))},"@site/docs/29.0.0/querying/segmentmetadataquery.md",81383],be1891ad:[function(){return n.e(6426).then(n.bind(n,6713))},"@site/docs/29.0.0/ingestion/ingestion-spec.md",6713],c0995780:[function(){return n.e(2996).then(n.bind(n,37386))},"@site/docs/29.0.0/comparisons/druid-vs-sql-on-hadoop.md",37386],c35a7924:[function(){return n.e(109).then(n.bind(n,25424))},"@site/docs/29.0.0/design/broker.md",25424],c3bd4d0f:[function(){return n.e(3553).then(n.bind(n,55306))},"@site/docs/29.0.0/data-management/delete.md",55306],c4a9afd3:[function(){return n.e(162).then(n.bind(n,4575))},"@site/docs/29.0.0/ingestion/native-batch-firehose.md",4575],c4eaa713:[function(){return n.e(1104).then(n.bind(n,55726))},"@site/docs/29.0.0/design/peons.md",55726],c4f5d8e4:[function(){return Promise.all([n.e(1869),n.e(2634)]).then(n.bind(n,9798))},"@site/src/pages/index.js",9798],c5224f77:[function(){return n.e(247).then(n.bind(n,37012))},"@site/docs/29.0.0/operations/rule-configuration.md",37012],c704e2c0:[function(){return n.e(905).then(n.bind(n,97148))},"@site/docs/29.0.0/data-management/update.md",97148],c7bb32c0:[function(){return n.e(5051).then(n.bind(n,3344))},"@site/docs/29.0.0/data-management/compaction.md",3344],c87bd0b3:[function(){return n.e(2652).then(n.bind(n,68544))},"@site/docs/29.0.0/operations/segment-optimization.md",68544],c971ecb2:[function(){return n.e(5183).then(n.bind(n,22462))},"@site/docs/29.0.0/tutorials/tutorial-jdbc.md",22462],caadb9e4:[function(){return n.e(1160).then(n.bind(n,92736))},"@site/docs/29.0.0/querying/sql-window-functions.md",92736],cc2b1268:[function(){return n.e(9334).then(n.bind(n,20934))},"@site/docs/29.0.0/misc/papers-and-talks.md",20934],cc5f8c18:[function(){return n.e(9356).then(n.bind(n,37243))},"@site/docs/29.0.0/development/extensions-contrib/influx.md",37243],ccecb300:[function(){return n.e(1792).then(n.bind(n,33725))},"@site/docs/29.0.0/ingestion/supervisor.md",33725],cd770d37:[function(){return n.e(1874).then(n.bind(n,60483))},"@site/docs/29.0.0/querying/timeseriesquery.md",60483],ce3c7d34:[function(){return n.e(9789).then(n.bind(n,29195))},"@site/docs/29.0.0/querying/datasourcemetadataquery.md",29195],ce66ed34:[function(){return n.e(5865).then(n.bind(n,90221))},"@site/docs/29.0.0/development/extensions-core/datasketches-kll.md",90221],cff5438d:[function(){return n.e(6304).then(n.bind(n,25858))},"@site/docs/29.0.0/querying/caching.md",25858],d099cfd7:[function(){return n.e(6101).then(n.bind(n,34943))},"@site/docs/29.0.0/design/zookeeper.md",34943],d09adf36:[function(){return n.e(392).then(n.bind(n,3144))},"@site/docs/29.0.0/development/extensions-core/datasketches-hll.md",3144],d10cff76:[function(){return n.e(2530).then(n.bind(n,84657))},"@site/docs/29.0.0/querying/sql-translation.md",84657],d20adcc9:[function(){return n.e(9139).then(n.bind(n,81611))},"@site/docs/29.0.0/api-reference/legacy-metadata-api.md",81611],d348e71d:[function(){return n.e(5299).then(n.bind(n,17574))},"@site/docs/29.0.0/design/indexer.md",17574],d6bc9e72:[function(){return n.e(5073).then(n.bind(n,23993))},"@site/src/pages/libraries.md",23993],d800148d:[function(){return n.e(9459).then(n.bind(n,25050))},"@site/docs/29.0.0/development/extensions-contrib/kafka-emitter.md",25050],dc3899c8:[function(){return n.e(7466).then(n.bind(n,54140))},"@site/docs/29.0.0/development/extensions-contrib/distinctcount.md",54140],dc670d7c:[function(){return n.e(1519).then(n.bind(n,36607))},"@site/docs/29.0.0/design/coordinator.md",36607],dc8d8ba6:[function(){return n.e(2487).then(n.bind(n,25071))},"@site/src/pages/druid-powered.md",25071],dcd3699e:[function(){return n.e(8886).then(n.bind(n,53619))},"@site/docs/29.0.0/design/extensions-contrib/dropwizard.md",53619],dd5346cc:[function(){return n.e(2555).then(n.bind(n,1661))},"@site/docs/29.0.0/querying/math-expr.md",1661],dd5c39f7:[function(){return n.e(4462).then(n.bind(n,53253))},"@site/docs/29.0.0/operations/other-hadoop.md",53253],dec790ad:[function(){return n.e(4608).then(n.bind(n,45449))},"@site/docs/29.0.0/ingestion/rollup.md",45449],e42f7105:[function(){return n.e(389).then(n.bind(n,65665))},"@site/docs/29.0.0/development/extensions-core/avro.md",65665],e7087650:[function(){return n.e(7831).then(n.bind(n,1673))},"@site/docs/29.0.0/design/historical.md",1673],e771c2cf:[function(){return n.e(4967).then(n.bind(n,50947))},"@site/docs/29.0.0/comparisons/druid-vs-spark.md",50947],e7f0645b:[function(){return n.e(2662).then(n.bind(n,88568))},"@site/docs/29.0.0/tutorials/cluster.md",88568],e826572d:[function(){return n.e(8642).then(n.bind(n,53038))},"@site/docs/29.0.0/development/extensions-core/hdfs.md",53038],e89091c2:[function(){return n.e(4098).then(n.bind(n,9512))},"@site/docs/29.0.0/operations/password-provider.md",9512],e9483372:[function(){return n.e(5492).then(n.bind(n,13169))},"@site/src/pages/use-cases.md",13169],eaffe8b7:[function(){return n.e(6099).then(n.bind(n,78210))},"@site/src/pages/community/cla.md",78210],ec931258:[function(){return n.e(7713).then(n.bind(n,10023))},"@site/docs/29.0.0/development/extensions-contrib/graphite.md",10023],ecf09596:[function(){return n.e(8090).then(n.bind(n,21811))},"@site/docs/29.0.0/querying/query-from-deep-storage.md",21811],ee0b5f0e:[function(){return n.e(5859).then(n.bind(n,37356))},"@site/docs/29.0.0/querying/sql-scalar.md",37356],efa71475:[function(){return n.e(277).then(n.bind(n,88539))},"@site/src/pages/community/join-slack.md",88539],f0b33a95:[function(){return n.e(7902).then(n.bind(n,96933))},"@site/docs/29.0.0/development/overview.md",96933],f0e31bc8:[function(){return n.e(2229).then(n.bind(n,91515))},"@site/docs/29.0.0/ingestion/index.md",91515],f3422945:[function(){return n.e(4506).then(n.bind(n,99047))},"@site/docs/29.0.0/development/extensions-core/druid-aws-rds.md",99047],f5f3bf76:[function(){return n.e(5709).then(n.bind(n,86342))},"@site/docs/29.0.0/operations/durable-storage.md",86342],f601ecc3:[function(){return n.e(8144).then(n.bind(n,94959))},"@site/docs/29.0.0/tutorials/tutorial-transform-spec.md",94959],f7252a63:[function(){return n.e(5039).then(n.bind(n,30243))},"@site/docs/29.0.0/development/extensions-core/mysql.md",30243],f782f0c3:[function(){return n.e(1592).then(n.bind(n,37736))},"@site/docs/29.0.0/design/metadata-storage.md",37736],f8ca60be:[function(){return n.e(9960).then(n.bind(n,61947))},"@site/docs/29.0.0/querying/sql.md",61947],fa98c789:[function(){return n.e(6856).then(n.bind(n,57167))},"@site/docs/29.0.0/tutorials/tutorial-query.md",57167],fa9c8cab:[function(){return n.e(3474).then(n.bind(n,17326))},"@site/docs/29.0.0/operations/deep-storage-migration.md",17326],fab582b2:[function(){return n.e(6465).then(n.bind(n,96389))},"@site/docs/29.0.0/operations/single-server.md",96389],fac897f3:[function(){return n.e(1884).then(n.bind(n,54840))},"@site/docs/29.0.0/design/storage.md",54840],faf0402f:[function(){return n.e(3774).then(n.bind(n,55558))},"@site/docs/29.0.0/data-management/automatic-compaction.md",55558],fb0a26d1:[function(){return n.e(7751).then(n.bind(n,64781))},"@site/docs/29.0.0/ingestion/tasks.md",64781],fb83fc4a:[function(){return n.e(5708).then(n.bind(n,10339))},"@site/docs/29.0.0/operations/dump-segment.md",10339],fc3af10a:[function(){return n.e(3540).then(n.bind(n,16381))},"@site/docs/29.0.0/querying/post-aggregations.md",16381],fc6289eb:[function(){return Promise.all([n.e(1869),n.e(6590)]).then(n.bind(n,34804))},"@site/docs/29.0.0/api-reference/sql-api.md",34804],fe77072c:[function(){return n.e(4056).then(n.bind(n,2431))},"@site/docs/29.0.0/development/extensions-contrib/opentsdb-emitter.md",2431],fe8f4de1:[function(){return n.e(8936).then(n.bind(n,70570))},"@site/docs/29.0.0/tutorials/tutorial-query-deep-storage.md",70570],feb31aca:[function(){return n.e(219).then(n.bind(n,75631))},"@site/docs/29.0.0/querying/using-caching.md",75631],ff52e0a2:[function(){return n.e(2132).then(n.bind(n,613))},"@site/docs/29.0.0/operations/reset-cluster.md",613],ff6b2e0d:[function(){return n.e(2160).then(n.bind(n,60826))},"@site/docs/29.0.0/development/extensions-core/stats.md",60826]};function l(e){var t=e.error,n=e.retry,o=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,String(t)),r.createElement("div",null,r.createElement("button",{type:"button",onClick:n},"Retry"))):o?r.createElement("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh"}},r.createElement("svg",{id:"loader",style:{width:128,height:110,position:"absolute",top:"calc(100vh - 64%)"},viewBox:"0 0 45 45",xmlns:"http://www.w3.org/2000/svg",stroke:"#61dafb"},r.createElement("g",{fill:"none",fillRule:"evenodd",transform:"translate(1 1)",strokeWidth:"2"},r.createElement("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0"},r.createElement("animate",{attributeName:"r",begin:"1.5s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-opacity",begin:"1.5s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-width",begin:"1.5s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})),r.createElement("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0"},r.createElement("animate",{attributeName:"r",begin:"3s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-opacity",begin:"3s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-width",begin:"3s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})),r.createElement("circle",{cx:"22",cy:"22",r:"8"},r.createElement("animate",{attributeName:"r",begin:"0s",dur:"1.5s",values:"6;1;2;3;4;5;6",calcMode:"linear",repeatCount:"indefinite"}))))):null}var u=n(86921),d=n(53102);function p(e,t){if("*"===e)return i()({loading:l,loader:function(){return n.e(1774).then(n.bind(n,81774))},modules:["@theme/NotFound"],webpack:function(){return[81774]},render:function(e,t){var n=e.default;return r.createElement(d.W,{value:{plugin:{name:"native",id:"default"}}},r.createElement(n,t))}});var a=s[e+"-"+t],p={},f=[],m=[],h=(0,u.A)(a);return Object.entries(h).forEach((function(e){var t=e[0],n=e[1],r=c[n];r&&(p[t]=r[0],f.push(r[1]),m.push(r[2]))})),i().Map({loading:l,loader:p,modules:f,webpack:function(){return m},render:function(t,n){var i=JSON.parse(JSON.stringify(a));Object.entries(t).forEach((function(t){var n=t[0],r=t[1],o=r.default;if(!o)throw new Error("The page component at "+e+" doesn't have a default export. This makes it impossible to render anything. Consider default-exporting a React component.");"object"!=typeof o&&"function"!=typeof o||Object.keys(r).filter((function(e){return"default"!==e})).forEach((function(e){o[e]=r[e]}));var a=i,s=n.split(".");s.slice(0,-1).forEach((function(e){a=a[e]})),a[s[s.length-1]]=o}));var s=i.__comp;delete i.__comp;var c=i.__context;return delete i.__context,r.createElement(d.W,{value:c},r.createElement(s,(0,o.A)({},i,n)))}})}const f=[{path:"/blog",component:p("/blog","8b7"),exact:!0},{path:"/community/",component:p("/community/","3d9"),exact:!0},{path:"/community/cla",component:p("/community/cla","a99"),exact:!0},{path:"/community/join-slack",component:p("/community/join-slack","db2"),exact:!0},{path:"/downloads",component:p("/downloads","94b"),exact:!0},{path:"/druid-powered",component:p("/druid-powered","793"),exact:!0},{path:"/faq",component:p("/faq","538"),exact:!0},{path:"/libraries",component:p("/libraries","f83"),exact:!0},{path:"/licensing",component:p("/licensing","3a1"),exact:!0},{path:"/technology",component:p("/technology","da1"),exact:!0},{path:"/use-cases",component:p("/use-cases","20f"),exact:!0},{path:"/docs/29.0.0",component:p("/docs/29.0.0","300"),routes:[{path:"/docs/29.0.0/api-reference/",component:p("/docs/29.0.0/api-reference/","1b2"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/api-reference/automatic-compaction-api",component:p("/docs/29.0.0/api-reference/automatic-compaction-api","807"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/api-reference/data-management-api",component:p("/docs/29.0.0/api-reference/data-management-api","842"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/api-reference/dynamic-configuration-api",component:p("/docs/29.0.0/api-reference/dynamic-configuration-api","f9b"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/api-reference/json-querying-api",component:p("/docs/29.0.0/api-reference/json-querying-api","893"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/api-reference/legacy-metadata-api",component:p("/docs/29.0.0/api-reference/legacy-metadata-api","93f"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/api-reference/lookups-api",component:p("/docs/29.0.0/api-reference/lookups-api","7c3"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/api-reference/retention-rules-api",component:p("/docs/29.0.0/api-reference/retention-rules-api","e36"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/api-reference/service-status-api",component:p("/docs/29.0.0/api-reference/service-status-api","013"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/api-reference/sql-api",component:p("/docs/29.0.0/api-reference/sql-api","fa2"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/api-reference/sql-ingestion-api",component:p("/docs/29.0.0/api-reference/sql-ingestion-api","b76"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/api-reference/sql-jdbc",component:p("/docs/29.0.0/api-reference/sql-jdbc","a3f"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/api-reference/supervisor-api",component:p("/docs/29.0.0/api-reference/supervisor-api","04c"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/api-reference/tasks-api",component:p("/docs/29.0.0/api-reference/tasks-api","88c"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/comparisons/druid-vs-elasticsearch",component:p("/docs/29.0.0/comparisons/druid-vs-elasticsearch","10c"),exact:!0},{path:"/docs/29.0.0/comparisons/druid-vs-key-value",component:p("/docs/29.0.0/comparisons/druid-vs-key-value","300"),exact:!0},{path:"/docs/29.0.0/comparisons/druid-vs-kudu",component:p("/docs/29.0.0/comparisons/druid-vs-kudu","17f"),exact:!0},{path:"/docs/29.0.0/comparisons/druid-vs-redshift",component:p("/docs/29.0.0/comparisons/druid-vs-redshift","f52"),exact:!0},{path:"/docs/29.0.0/comparisons/druid-vs-spark",component:p("/docs/29.0.0/comparisons/druid-vs-spark","3c1"),exact:!0},{path:"/docs/29.0.0/comparisons/druid-vs-sql-on-hadoop",component:p("/docs/29.0.0/comparisons/druid-vs-sql-on-hadoop","205"),exact:!0},{path:"/docs/29.0.0/configuration/",component:p("/docs/29.0.0/configuration/","58a"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/configuration/extensions",component:p("/docs/29.0.0/configuration/extensions","e53"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/configuration/human-readable-byte",component:p("/docs/29.0.0/configuration/human-readable-byte","88a"),exact:!0},{path:"/docs/29.0.0/configuration/logging",component:p("/docs/29.0.0/configuration/logging","119"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/data-management/",component:p("/docs/29.0.0/data-management/","d2f"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/data-management/automatic-compaction",component:p("/docs/29.0.0/data-management/automatic-compaction","4d7"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/data-management/compaction",component:p("/docs/29.0.0/data-management/compaction","9c6"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/data-management/delete",component:p("/docs/29.0.0/data-management/delete","fb7"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/data-management/manual-compaction",component:p("/docs/29.0.0/data-management/manual-compaction","775"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/data-management/schema-changes",component:p("/docs/29.0.0/data-management/schema-changes","4f0"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/data-management/update",component:p("/docs/29.0.0/data-management/update","685"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/design/",component:p("/docs/29.0.0/design/","1dd"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/design/architecture",component:p("/docs/29.0.0/design/architecture","be2"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/design/broker",component:p("/docs/29.0.0/design/broker","645"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/design/coordinator",component:p("/docs/29.0.0/design/coordinator","73f"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/design/deep-storage",component:p("/docs/29.0.0/design/deep-storage","016"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/design/extensions-contrib/dropwizard",component:p("/docs/29.0.0/design/extensions-contrib/dropwizard","7b3"),exact:!0},{path:"/docs/29.0.0/design/historical",component:p("/docs/29.0.0/design/historical","955"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/design/indexer",component:p("/docs/29.0.0/design/indexer","c86"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/design/indexing-service",component:p("/docs/29.0.0/design/indexing-service","62c"),exact:!0},{path:"/docs/29.0.0/design/metadata-storage",component:p("/docs/29.0.0/design/metadata-storage","e2e"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/design/middlemanager",component:p("/docs/29.0.0/design/middlemanager","fdb"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/design/overlord",component:p("/docs/29.0.0/design/overlord","eec"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/design/peons",component:p("/docs/29.0.0/design/peons","889"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/design/router",component:p("/docs/29.0.0/design/router","e22"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/design/segments",component:p("/docs/29.0.0/design/segments","bda"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/design/storage",component:p("/docs/29.0.0/design/storage","9c7"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/design/zookeeper",component:p("/docs/29.0.0/design/zookeeper","d9e"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/development/build",component:p("/docs/29.0.0/development/build","1e2"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/development/contribute-to-docs",component:p("/docs/29.0.0/development/contribute-to-docs","410"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/development/experimental",component:p("/docs/29.0.0/development/experimental","0ff"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/development/extensions-contrib/aliyun-oss",component:p("/docs/29.0.0/development/extensions-contrib/aliyun-oss","73f"),exact:!0},{path:"/docs/29.0.0/development/extensions-contrib/ambari-metrics-emitter",component:p("/docs/29.0.0/development/extensions-contrib/ambari-metrics-emitter","b0c"),exact:!0},{path:"/docs/29.0.0/development/extensions-contrib/cassandra",component:p("/docs/29.0.0/development/extensions-contrib/cassandra","f58"),exact:!0},{path:"/docs/29.0.0/development/extensions-contrib/cloudfiles",component:p("/docs/29.0.0/development/extensions-contrib/cloudfiles","ac8"),exact:!0},{path:"/docs/29.0.0/development/extensions-contrib/compressed-big-decimal",component:p("/docs/29.0.0/development/extensions-contrib/compressed-big-decimal","7a4"),exact:!0},{path:"/docs/29.0.0/development/extensions-contrib/ddsketch-quantiles",component:p("/docs/29.0.0/development/extensions-contrib/ddsketch-quantiles","ed4"),exact:!0},{path:"/docs/29.0.0/development/extensions-contrib/delta-lake",component:p("/docs/29.0.0/development/extensions-contrib/delta-lake","758"),exact:!0},{path:"/docs/29.0.0/development/extensions-contrib/distinctcount",component:p("/docs/29.0.0/development/extensions-contrib/distinctcount","68f"),exact:!0},{path:"/docs/29.0.0/development/extensions-contrib/gce-extensions",component:p("/docs/29.0.0/development/extensions-contrib/gce-extensions","5f7"),exact:!0},{path:"/docs/29.0.0/development/extensions-contrib/graphite",component:p("/docs/29.0.0/development/extensions-contrib/graphite","5fc"),exact:!0},{path:"/docs/29.0.0/development/extensions-contrib/iceberg",component:p("/docs/29.0.0/development/extensions-contrib/iceberg","0ee"),exact:!0},{path:"/docs/29.0.0/development/extensions-contrib/influx",component:p("/docs/29.0.0/development/extensions-contrib/influx","34c"),exact:!0},{path:"/docs/29.0.0/development/extensions-contrib/influxdb-emitter",component:p("/docs/29.0.0/development/extensions-contrib/influxdb-emitter","c86"),exact:!0},{path:"/docs/29.0.0/development/extensions-contrib/k8s-jobs",component:p("/docs/29.0.0/development/extensions-contrib/k8s-jobs","32b"),exact:!0},{path:"/docs/29.0.0/development/extensions-contrib/kafka-emitter",component:p("/docs/29.0.0/development/extensions-contrib/kafka-emitter","4eb"),exact:!0},{path:"/docs/29.0.0/development/extensions-contrib/materialized-view",component:p("/docs/29.0.0/development/extensions-contrib/materialized-view","68a"),exact:!0},{path:"/docs/29.0.0/development/extensions-contrib/momentsketch-quantiles",component:p("/docs/29.0.0/development/extensions-contrib/momentsketch-quantiles","866"),exact:!0},{path:"/docs/29.0.0/development/extensions-contrib/moving-average-query",component:p("/docs/29.0.0/development/extensions-contrib/moving-average-query","210"),exact:!0},{path:"/docs/29.0.0/development/extensions-contrib/opentsdb-emitter",component:p("/docs/29.0.0/development/extensions-contrib/opentsdb-emitter","7b0"),exact:!0},{path:"/docs/29.0.0/development/extensions-contrib/prometheus",component:p("/docs/29.0.0/development/extensions-contrib/prometheus","b20"),exact:!0},{path:"/docs/29.0.0/development/extensions-contrib/redis-cache",component:p("/docs/29.0.0/development/extensions-contrib/redis-cache","7da"),exact:!0},{path:"/docs/29.0.0/development/extensions-contrib/spectator-histogram",component:p("/docs/29.0.0/development/extensions-contrib/spectator-histogram","8ea"),exact:!0},{path:"/docs/29.0.0/development/extensions-contrib/sqlserver",component:p("/docs/29.0.0/development/extensions-contrib/sqlserver","e06"),exact:!0},{path:"/docs/29.0.0/development/extensions-contrib/statsd",component:p("/docs/29.0.0/development/extensions-contrib/statsd","c41"),exact:!0},{path:"/docs/29.0.0/development/extensions-contrib/tdigestsketch-quantiles",component:p("/docs/29.0.0/development/extensions-contrib/tdigestsketch-quantiles","c3d"),exact:!0},{path:"/docs/29.0.0/development/extensions-contrib/thrift",component:p("/docs/29.0.0/development/extensions-contrib/thrift","249"),exact:!0},{path:"/docs/29.0.0/development/extensions-contrib/time-min-max",component:p("/docs/29.0.0/development/extensions-contrib/time-min-max","9d0"),exact:!0},{path:"/docs/29.0.0/development/extensions-core/approximate-histograms",component:p("/docs/29.0.0/development/extensions-core/approximate-histograms","2bd"),exact:!0},{path:"/docs/29.0.0/development/extensions-core/avro",component:p("/docs/29.0.0/development/extensions-core/avro","c4a"),exact:!0},{path:"/docs/29.0.0/development/extensions-core/azure",component:p("/docs/29.0.0/development/extensions-core/azure","bf9"),exact:!0},{path:"/docs/29.0.0/development/extensions-core/bloom-filter",component:p("/docs/29.0.0/development/extensions-core/bloom-filter","cfc"),exact:!0},{path:"/docs/29.0.0/development/extensions-core/datasketches-extension",component:p("/docs/29.0.0/development/extensions-core/datasketches-extension","b9a"),exact:!0},{path:"/docs/29.0.0/development/extensions-core/datasketches-hll",component:p("/docs/29.0.0/development/extensions-core/datasketches-hll","4c2"),exact:!0},{path:"/docs/29.0.0/development/extensions-core/datasketches-kll",component:p("/docs/29.0.0/development/extensions-core/datasketches-kll","9fe"),exact:!0},{path:"/docs/29.0.0/development/extensions-core/datasketches-quantiles",component:p("/docs/29.0.0/development/extensions-core/datasketches-quantiles","ef3"),exact:!0},{path:"/docs/29.0.0/development/extensions-core/datasketches-theta",component:p("/docs/29.0.0/development/extensions-core/datasketches-theta","f76"),exact:!0},{path:"/docs/29.0.0/development/extensions-core/datasketches-tuple",component:p("/docs/29.0.0/development/extensions-core/datasketches-tuple","9a7"),exact:!0},{path:"/docs/29.0.0/development/extensions-core/druid-aws-rds",component:p("/docs/29.0.0/development/extensions-core/druid-aws-rds","9f0"),exact:!0},{path:"/docs/29.0.0/development/extensions-core/druid-basic-security",component:p("/docs/29.0.0/development/extensions-core/druid-basic-security","171"),exact:!0},{path:"/docs/29.0.0/development/extensions-core/druid-kerberos",component:p("/docs/29.0.0/development/extensions-core/druid-kerberos","1e5"),exact:!0},{path:"/docs/29.0.0/development/extensions-core/druid-lookups",component:p("/docs/29.0.0/development/extensions-core/druid-lookups","6b1"),exact:!0},{path:"/docs/29.0.0/development/extensions-core/druid-pac4j",component:p("/docs/29.0.0/development/extensions-core/druid-pac4j","855"),exact:!0},{path:"/docs/29.0.0/development/extensions-core/druid-ranger-security",component:p("/docs/29.0.0/development/extensions-core/druid-ranger-security","67f"),exact:!0},{path:"/docs/29.0.0/development/extensions-core/examples",component:p("/docs/29.0.0/development/extensions-core/examples","6de"),exact:!0},{path:"/docs/29.0.0/development/extensions-core/google",component:p("/docs/29.0.0/development/extensions-core/google","5fe"),exact:!0},{path:"/docs/29.0.0/development/extensions-core/hdfs",component:p("/docs/29.0.0/development/extensions-core/hdfs","c29"),exact:!0},{path:"/docs/29.0.0/development/extensions-core/kafka-extraction-namespace",component:p("/docs/29.0.0/development/extensions-core/kafka-extraction-namespace","b87"),exact:!0},{path:"/docs/29.0.0/development/extensions-core/kubernetes",component:p("/docs/29.0.0/development/extensions-core/kubernetes","147"),exact:!0},{path:"/docs/29.0.0/development/extensions-core/lookups-cached-global",component:p("/docs/29.0.0/development/extensions-core/lookups-cached-global","e88"),exact:!0},{path:"/docs/29.0.0/development/extensions-core/mysql",component:p("/docs/29.0.0/development/extensions-core/mysql","db7"),exact:!0},{path:"/docs/29.0.0/development/extensions-core/orc",component:p("/docs/29.0.0/development/extensions-core/orc","36f"),exact:!0},{path:"/docs/29.0.0/development/extensions-core/parquet",component:p("/docs/29.0.0/development/extensions-core/parquet","8d9"),exact:!0},{path:"/docs/29.0.0/development/extensions-core/postgresql",component:p("/docs/29.0.0/development/extensions-core/postgresql","1fd"),exact:!0},{path:"/docs/29.0.0/development/extensions-core/protobuf",component:p("/docs/29.0.0/development/extensions-core/protobuf","84a"),exact:!0},{path:"/docs/29.0.0/development/extensions-core/s3",component:p("/docs/29.0.0/development/extensions-core/s3","47a"),exact:!0},{path:"/docs/29.0.0/development/extensions-core/simple-client-sslcontext",component:p("/docs/29.0.0/development/extensions-core/simple-client-sslcontext","0c9"),exact:!0},{path:"/docs/29.0.0/development/extensions-core/stats",component:p("/docs/29.0.0/development/extensions-core/stats","34d"),exact:!0},{path:"/docs/29.0.0/development/extensions-core/test-stats",component:p("/docs/29.0.0/development/extensions-core/test-stats","8dc"),exact:!0},{path:"/docs/29.0.0/development/javascript",component:p("/docs/29.0.0/development/javascript","3cd"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/development/modules",component:p("/docs/29.0.0/development/modules","114"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/development/overview",component:p("/docs/29.0.0/development/overview","98c"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/development/versioning",component:p("/docs/29.0.0/development/versioning","f32"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/ingestion/",component:p("/docs/29.0.0/ingestion/","e9e"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/ingestion/concurrent-append-replace",component:p("/docs/29.0.0/ingestion/concurrent-append-replace","df6"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/ingestion/data-formats",component:p("/docs/29.0.0/ingestion/data-formats","736"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/ingestion/faq",component:p("/docs/29.0.0/ingestion/faq","963"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/ingestion/hadoop",component:p("/docs/29.0.0/ingestion/hadoop","e75"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/ingestion/ingestion-spec",component:p("/docs/29.0.0/ingestion/ingestion-spec","6a3"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/ingestion/input-sources",component:p("/docs/29.0.0/ingestion/input-sources","aaa"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/ingestion/kafka-ingestion",component:p("/docs/29.0.0/ingestion/kafka-ingestion","bcd"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/ingestion/kinesis-ingestion",component:p("/docs/29.0.0/ingestion/kinesis-ingestion","09e"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/ingestion/native-batch",component:p("/docs/29.0.0/ingestion/native-batch","c9c"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/ingestion/native-batch-firehose",component:p("/docs/29.0.0/ingestion/native-batch-firehose","c38"),exact:!0},{path:"/docs/29.0.0/ingestion/native-batch-simple-task",component:p("/docs/29.0.0/ingestion/native-batch-simple-task","15f"),exact:!0},{path:"/docs/29.0.0/ingestion/partitioning",component:p("/docs/29.0.0/ingestion/partitioning","8e7"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/ingestion/rollup",component:p("/docs/29.0.0/ingestion/rollup","34e"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/ingestion/schema-design",component:p("/docs/29.0.0/ingestion/schema-design","52d"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/ingestion/schema-model",component:p("/docs/29.0.0/ingestion/schema-model","a7a"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/ingestion/standalone-realtime",component:p("/docs/29.0.0/ingestion/standalone-realtime","c16"),exact:!0},{path:"/docs/29.0.0/ingestion/streaming",component:p("/docs/29.0.0/ingestion/streaming","3ca"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/ingestion/supervisor",component:p("/docs/29.0.0/ingestion/supervisor","16a"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/ingestion/tasks",component:p("/docs/29.0.0/ingestion/tasks","447"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/ingestion/tranquility",component:p("/docs/29.0.0/ingestion/tranquility","0bf"),exact:!0},{path:"/docs/29.0.0/misc/papers-and-talks",component:p("/docs/29.0.0/misc/papers-and-talks","487"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/multi-stage-query/",component:p("/docs/29.0.0/multi-stage-query/","dfe"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/multi-stage-query/concepts",component:p("/docs/29.0.0/multi-stage-query/concepts","6f6"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/multi-stage-query/examples",component:p("/docs/29.0.0/multi-stage-query/examples","c03"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/multi-stage-query/known-issues",component:p("/docs/29.0.0/multi-stage-query/known-issues","e2c"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/multi-stage-query/reference",component:p("/docs/29.0.0/multi-stage-query/reference","e0e"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/multi-stage-query/security",component:p("/docs/29.0.0/multi-stage-query/security","1e7"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/operations/alerts",component:p("/docs/29.0.0/operations/alerts","a85"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/operations/auth",component:p("/docs/29.0.0/operations/auth","ea7"),exact:!0},{path:"/docs/29.0.0/operations/auth-ldap",component:p("/docs/29.0.0/operations/auth-ldap","2e1"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/operations/basic-cluster-tuning",component:p("/docs/29.0.0/operations/basic-cluster-tuning","bee"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/operations/clean-metadata-store",component:p("/docs/29.0.0/operations/clean-metadata-store","eb7"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/operations/deep-storage-migration",component:p("/docs/29.0.0/operations/deep-storage-migration","f01"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/operations/dump-segment",component:p("/docs/29.0.0/operations/dump-segment","df0"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/operations/durable-storage",component:p("/docs/29.0.0/operations/durable-storage","6f2"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/operations/dynamic-config-provider",component:p("/docs/29.0.0/operations/dynamic-config-provider","813"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/operations/export-metadata",component:p("/docs/29.0.0/operations/export-metadata","834"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/operations/high-availability",component:p("/docs/29.0.0/operations/high-availability","1a1"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/operations/http-compression",component:p("/docs/29.0.0/operations/http-compression","fe9"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/operations/insert-segment-to-db",component:p("/docs/29.0.0/operations/insert-segment-to-db","d19"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/operations/java",component:p("/docs/29.0.0/operations/java","756"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/operations/kubernetes",component:p("/docs/29.0.0/operations/kubernetes","af1"),exact:!0},{path:"/docs/29.0.0/operations/metadata-migration",component:p("/docs/29.0.0/operations/metadata-migration","9cd"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/operations/metrics",component:p("/docs/29.0.0/operations/metrics","3f2"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/operations/migrate-from-firehose",component:p("/docs/29.0.0/operations/migrate-from-firehose","369"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/operations/mixed-workloads",component:p("/docs/29.0.0/operations/mixed-workloads","e43"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/operations/other-hadoop",component:p("/docs/29.0.0/operations/other-hadoop","ef5"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/operations/password-provider",component:p("/docs/29.0.0/operations/password-provider","8de"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/operations/pull-deps",component:p("/docs/29.0.0/operations/pull-deps","3c3"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/operations/request-logging",component:p("/docs/29.0.0/operations/request-logging","2d8"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/operations/reset-cluster",component:p("/docs/29.0.0/operations/reset-cluster","d3f"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/operations/rolling-updates",component:p("/docs/29.0.0/operations/rolling-updates","1a4"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/operations/rule-configuration",component:p("/docs/29.0.0/operations/rule-configuration","093"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/operations/security-overview",component:p("/docs/29.0.0/operations/security-overview","57b"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/operations/security-user-auth",component:p("/docs/29.0.0/operations/security-user-auth","fc0"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/operations/segment-optimization",component:p("/docs/29.0.0/operations/segment-optimization","0cc"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/operations/single-server",component:p("/docs/29.0.0/operations/single-server","3df"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/operations/tls-support",component:p("/docs/29.0.0/operations/tls-support","731"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/operations/use_sbt_to_build_fat_jar",component:p("/docs/29.0.0/operations/use_sbt_to_build_fat_jar","f6f"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/operations/web-console",component:p("/docs/29.0.0/operations/web-console","208"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/querying/",component:p("/docs/29.0.0/querying/","317"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/querying/aggregations",component:p("/docs/29.0.0/querying/aggregations","962"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/querying/arrays",component:p("/docs/29.0.0/querying/arrays","eef"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/querying/caching",component:p("/docs/29.0.0/querying/caching","655"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/querying/datasource",component:p("/docs/29.0.0/querying/datasource","7ce"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/querying/datasourcemetadataquery",component:p("/docs/29.0.0/querying/datasourcemetadataquery","757"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/querying/dimensionspecs",component:p("/docs/29.0.0/querying/dimensionspecs","ae5"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/querying/filters",component:p("/docs/29.0.0/querying/filters","dd8"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/querying/geo",component:p("/docs/29.0.0/querying/geo","a81"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/querying/granularities",component:p("/docs/29.0.0/querying/granularities","d84"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/querying/groupbyquery",component:p("/docs/29.0.0/querying/groupbyquery","d54"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/querying/having",component:p("/docs/29.0.0/querying/having","d87"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/querying/hll-old",component:p("/docs/29.0.0/querying/hll-old","709"),exact:!0},{path:"/docs/29.0.0/querying/joins",component:p("/docs/29.0.0/querying/joins","765"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/querying/limitspec",component:p("/docs/29.0.0/querying/limitspec","716"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/querying/lookups",component:p("/docs/29.0.0/querying/lookups","82c"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/querying/math-expr",component:p("/docs/29.0.0/querying/math-expr","2c4"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/querying/multi-value-dimensions",component:p("/docs/29.0.0/querying/multi-value-dimensions","89b"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/querying/multitenancy",component:p("/docs/29.0.0/querying/multitenancy","ae8"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/querying/nested-columns",component:p("/docs/29.0.0/querying/nested-columns","27c"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/querying/post-aggregations",component:p("/docs/29.0.0/querying/post-aggregations","e8e"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/querying/query-context",component:p("/docs/29.0.0/querying/query-context","ffa"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/querying/query-deep-storage",component:p("/docs/29.0.0/querying/query-deep-storage","026"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/querying/query-execution",component:p("/docs/29.0.0/querying/query-execution","dfb"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/querying/query-processing",component:p("/docs/29.0.0/querying/query-processing","eec"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/querying/scan-query",component:p("/docs/29.0.0/querying/scan-query","ddc"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/querying/searchquery",component:p("/docs/29.0.0/querying/searchquery","abb"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/querying/segmentmetadataquery",component:p("/docs/29.0.0/querying/segmentmetadataquery","651"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/querying/select-query",component:p("/docs/29.0.0/querying/select-query","fcf"),exact:!0},{path:"/docs/29.0.0/querying/sorting-orders",component:p("/docs/29.0.0/querying/sorting-orders","1cb"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/querying/sql",component:p("/docs/29.0.0/querying/sql","eb2"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/querying/sql-aggregations",component:p("/docs/29.0.0/querying/sql-aggregations","875"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/querying/sql-array-functions",component:p("/docs/29.0.0/querying/sql-array-functions","b67"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/querying/sql-data-types",component:p("/docs/29.0.0/querying/sql-data-types","384"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/querying/sql-functions",component:p("/docs/29.0.0/querying/sql-functions","580"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/querying/sql-json-functions",component:p("/docs/29.0.0/querying/sql-json-functions","96b"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/querying/sql-metadata-tables",component:p("/docs/29.0.0/querying/sql-metadata-tables","478"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/querying/sql-multivalue-string-functions",component:p("/docs/29.0.0/querying/sql-multivalue-string-functions","0c0"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/querying/sql-operators",component:p("/docs/29.0.0/querying/sql-operators","a50"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/querying/sql-query-context",component:p("/docs/29.0.0/querying/sql-query-context","a8e"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/querying/sql-scalar",component:p("/docs/29.0.0/querying/sql-scalar","ce8"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/querying/sql-translation",component:p("/docs/29.0.0/querying/sql-translation","f87"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/querying/sql-window-functions",component:p("/docs/29.0.0/querying/sql-window-functions","baf"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/querying/timeboundaryquery",component:p("/docs/29.0.0/querying/timeboundaryquery","148"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/querying/timeseriesquery",component:p("/docs/29.0.0/querying/timeseriesquery","e78"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/querying/tips-good-queries",component:p("/docs/29.0.0/querying/tips-good-queries","3b5"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/querying/topnmetricspec",component:p("/docs/29.0.0/querying/topnmetricspec","9cf"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/querying/topnquery",component:p("/docs/29.0.0/querying/topnquery","55d"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/querying/troubleshooting",component:p("/docs/29.0.0/querying/troubleshooting","9ea"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/querying/using-caching",component:p("/docs/29.0.0/querying/using-caching","b9f"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/querying/virtual-columns",component:p("/docs/29.0.0/querying/virtual-columns","e91"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/release-info/release-notes",component:p("/docs/29.0.0/release-info/release-notes","d56"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/release-info/upgrade-notes",component:p("/docs/29.0.0/release-info/upgrade-notes","8f6"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/tutorials/",component:p("/docs/29.0.0/tutorials/","113"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/tutorials/cluster",component:p("/docs/29.0.0/tutorials/cluster","430"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/tutorials/docker",component:p("/docs/29.0.0/tutorials/docker","e47"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/tutorials/tutorial-batch",component:p("/docs/29.0.0/tutorials/tutorial-batch","303"),exact:!0},{path:"/docs/29.0.0/tutorials/tutorial-batch-hadoop",component:p("/docs/29.0.0/tutorials/tutorial-batch-hadoop","805"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/tutorials/tutorial-batch-native",component:p("/docs/29.0.0/tutorials/tutorial-batch-native","549"),exact:!0},{path:"/docs/29.0.0/tutorials/tutorial-compaction",component:p("/docs/29.0.0/tutorials/tutorial-compaction","695"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/tutorials/tutorial-delete-data",component:p("/docs/29.0.0/tutorials/tutorial-delete-data","6e0"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/tutorials/tutorial-ingestion-spec",component:p("/docs/29.0.0/tutorials/tutorial-ingestion-spec","1b0"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/tutorials/tutorial-jdbc",component:p("/docs/29.0.0/tutorials/tutorial-jdbc","4b4"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/tutorials/tutorial-kafka",component:p("/docs/29.0.0/tutorials/tutorial-kafka","9d3"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/tutorials/tutorial-kerberos-hadoop",component:p("/docs/29.0.0/tutorials/tutorial-kerberos-hadoop","38b"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/tutorials/tutorial-msq-convert-spec",component:p("/docs/29.0.0/tutorials/tutorial-msq-convert-spec","9dd"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/tutorials/tutorial-msq-extern",component:p("/docs/29.0.0/tutorials/tutorial-msq-extern","8d4"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/tutorials/tutorial-query",component:p("/docs/29.0.0/tutorials/tutorial-query","962"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/tutorials/tutorial-query-deep-storage",component:p("/docs/29.0.0/tutorials/tutorial-query-deep-storage","6b6"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/tutorials/tutorial-retention",component:p("/docs/29.0.0/tutorials/tutorial-retention","e3f"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/tutorials/tutorial-rollup",component:p("/docs/29.0.0/tutorials/tutorial-rollup","423"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/tutorials/tutorial-sketches-theta",component:p("/docs/29.0.0/tutorials/tutorial-sketches-theta","0ce"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/tutorials/tutorial-sql-query-view",component:p("/docs/29.0.0/tutorials/tutorial-sql-query-view","da1"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/tutorials/tutorial-transform-spec",component:p("/docs/29.0.0/tutorials/tutorial-transform-spec","ae4"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/tutorials/tutorial-unnest-arrays",component:p("/docs/29.0.0/tutorials/tutorial-unnest-arrays","d4d"),exact:!0,sidebar:"docs"},{path:"/docs/29.0.0/tutorials/tutorial-update-data",component:p("/docs/29.0.0/tutorials/tutorial-update-data","26c"),exact:!0,sidebar:"docs"}]},{path:"/",component:p("/","439"),exact:!0},{path:"*",component:p("*")}]},6125:(e,t,n)=>{"use strict";n.d(t,{o:()=>o,x:()=>a});var r=n(96540),o=r.createContext(!1);function a(e){var t=e.children,n=(0,r.useState)(!1),a=n[0],i=n[1];return(0,r.useEffect)((function(){i(!0)}),[]),r.createElement(o.Provider,{value:a},t)}},38536:(e,t,n)=>{"use strict";var r=n(96540),o=n(40961),a=n(54625),i=n(80545),s=n(38193);const c=[n(31911),n(10119),n(26134),n(76294),n(61916),n(25776)];var l=n(35947),u=n(56347),d=n(22831);function p(e){var t=e.children;return r.createElement(r.Fragment,null,t)}var f=n(58168),m=n(5260),h=n(44586),g=n(86025),b=n(6342),v=n(1003),y=n(32131),w=n(14090),k=n(2967),x=n(70440),E=n(41463);function _(){var e=(0,h.A)().i18n,t=e.defaultLocale,n=e.localeConfigs,o=(0,y.o)();return r.createElement(m.A,null,Object.entries(n).map((function(e){var t=e[0],n=e[1].htmlLang;return r.createElement("link",{key:t,rel:"alternate",href:o.createUrl({locale:t,fullyQualified:!0}),hrefLang:n})})),r.createElement("link",{rel:"alternate",href:o.createUrl({locale:t,fullyQualified:!0}),hrefLang:"x-default"}))}function S(e){var t=e.permalink,n=(0,h.A)().siteConfig.url,o=function(){var e=(0,h.A)().siteConfig,t=e.url,n=e.baseUrl,r=e.trailingSlash,o=(0,u.zy)().pathname;return t+(0,x.applyTrailingSlash)((0,g.A)(o),{trailingSlash:r,baseUrl:n})}(),a=t?""+n+t:o;return r.createElement(m.A,null,r.createElement("meta",{property:"og:url",content:a}),r.createElement("link",{rel:"canonical",href:a}))}function A(){var e=(0,h.A)().i18n.currentLocale,t=(0,b.p)(),n=t.metadata,o=t.image;return r.createElement(r.Fragment,null,r.createElement(m.A,null,r.createElement("meta",{name:"twitter:card",content:"summary_large_image"}),r.createElement("body",{className:w.w})),o&&r.createElement(v.be,{image:o}),r.createElement(S,null),r.createElement(_,null),r.createElement(E.A,{tag:k.Cy,locale:e}),r.createElement(m.A,null,n.map((function(e,t){return r.createElement("meta",(0,f.A)({key:t},e))}))))}var C=new Map;function T(e){if(C.has(e.pathname))return Object.assign({},e,{pathname:C.get(e.pathname)});if((0,d.u)(l.A,e.pathname).some((function(e){return!0===e.route.exact})))return C.set(e.pathname,e.pathname),e;var t=e.pathname.trim().replace(/(?:\/index)?\.html$/,"")||"/";return C.set(e.pathname,t),Object.assign({},e,{pathname:t})}var q=n(6125),N=n(26988),R=n(77387);function O(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];var o=c.map((function(t){var r,o,a=null!=(r=null==(o=t.default)?void 0:o[e])?r:t[e];return null==a?void 0:a.apply(void 0,n)}));return function(){return o.forEach((function(e){return null==e?void 0:e()}))}}const L=function(e){var t=e.children,n=e.location,o=e.previousLocation;return(0,r.useLayoutEffect)((function(){o!==n&&(!function(e){var t=e.location,n=e.previousLocation;if(n){var r=t.pathname===n.pathname,o=t.hash===n.hash,a=t.search===n.search;if(!r||!o||a){var i=t.hash;if(i){var s=decodeURIComponent(i.substring(1)),c=document.getElementById(s);null==c||c.scrollIntoView()}else window.scrollTo(0,0)}}}({location:n,previousLocation:o}),O("onRouteDidUpdate",{previousLocation:o,location:n}))}),[o,n]),t};function P(e){var t=Array.from(new Set([e,decodeURI(e)])).map((function(e){return(0,d.u)(l.A,e)})).flat();return Promise.all(t.map((function(e){return null==e.route.component.preload?void 0:e.route.component.preload()})))}const I=function(e){function t(t){var n;return(n=e.call(this,t)||this).previousLocation=void 0,n.routeUpdateCleanupCb=void 0,n.previousLocation=null,n.routeUpdateCleanupCb=s.A.canUseDOM?O("onRouteUpdate",{previousLocation:null,location:n.props.location}):function(){},n.state={nextRouteHasLoaded:!0},n}(0,R.A)(t,e);var n=t.prototype;return n.shouldComponentUpdate=function(e,t){var n=this;if(e.location===this.props.location)return t.nextRouteHasLoaded;var r=e.location;return this.previousLocation=this.props.location,this.setState({nextRouteHasLoaded:!1}),this.routeUpdateCleanupCb=O("onRouteUpdate",{previousLocation:this.previousLocation,location:r}),P(r.pathname).then((function(){n.routeUpdateCleanupCb(),n.setState({nextRouteHasLoaded:!0})})).catch((function(e){console.warn(e),window.location.reload()})),!1},n.render=function(){var e=this.props,t=e.children,n=e.location;return r.createElement(L,{previousLocation:this.previousLocation,location:n},r.createElement(u.qh,{location:n,render:function(){return t}}))},t}(r.Component);var D="__docusaurus-base-url-issue-banner-container",M="__docusaurus-base-url-issue-banner",j="__docusaurus-base-url-issue-banner-suggestion-container",F="__DOCUSAURUS_INSERT_BASEURL_BANNER";function B(e){return"\nwindow['"+F+"'] = true;\n\ndocument.addEventListener('DOMContentLoaded', maybeInsertBanner);\n\nfunction maybeInsertBanner() {\n  var shouldInsert = window['"+F+"'];\n  shouldInsert && insertBanner();\n}\n\nfunction insertBanner() {\n  var bannerContainer = document.getElementById('"+D+"');\n  if (!bannerContainer) {\n    return;\n  }\n  var bannerHtml = "+JSON.stringify(function(e){return'\n<div id="'+M+'" style="border: thick solid red; background-color: rgb(255, 230, 179); margin: 20px; padding: 20px; font-size: 20px;">\n   <p style="font-weight: bold; font-size: 30px;">Your Docusaurus site did not load properly.</p>\n   <p>A very common reason is a wrong site <a href="https://docusaurus.io/docs/docusaurus.config.js/#baseUrl" style="font-weight: bold;">baseUrl configuration</a>.</p>\n   <p>Current configured baseUrl = <span style="font-weight: bold; color: red;">'+e+"</span> "+("/"===e?" (default value)":"")+'</p>\n   <p>We suggest trying baseUrl = <span id="'+j+'" style="font-weight: bold; color: green;"></span></p>\n</div>\n'}(e)).replace(/</g,"\\<")+";\n  bannerContainer.innerHTML = bannerHtml;\n  var suggestionContainer = document.getElementById('"+j+"');\n  var actualHomePagePath = window.location.pathname;\n  var suggestedBaseUrl = actualHomePagePath.substr(-1) === '/'\n        ? actualHomePagePath\n        : actualHomePagePath + '/';\n  suggestionContainer.innerHTML = suggestedBaseUrl;\n}\n"}function z(){var e=(0,h.A)().siteConfig.baseUrl;return(0,r.useLayoutEffect)((function(){window[F]=!1}),[]),r.createElement(r.Fragment,null,!s.A.canUseDOM&&r.createElement(m.A,null,r.createElement("script",null,B(e))),r.createElement("div",{id:D}))}function U(){var e=(0,h.A)().siteConfig,t=e.baseUrl,n=e.baseUrlIssueBanner,o=(0,u.zy)().pathname;return n&&o===t?r.createElement(z,null):null}function $(){var e=(0,h.A)(),t=e.siteConfig,n=t.favicon,o=t.title,a=t.noIndex,i=e.i18n,s=i.currentLocale,c=i.localeConfigs,l=(0,g.A)(n),u=c[s],d=u.htmlLang,p=u.direction;return r.createElement(m.A,null,r.createElement("html",{lang:d,dir:p}),r.createElement("title",null,o),r.createElement("meta",{property:"og:title",content:o}),r.createElement("meta",{name:"viewport",content:"width=device-width, initial-scale=1.0"}),a&&r.createElement("meta",{name:"robots",content:"noindex, nofollow"}),n&&r.createElement("link",{rel:"icon",href:l}))}var G=n(67489),H=n(92303);function W(){var e=(0,H.A)();return r.createElement(m.A,null,r.createElement("html",{"data-has-hydrated":e}))}function V(){var e=(0,d.v)(l.A),t=(0,u.zy)();return r.createElement(G.A,null,r.createElement(N.l,null,r.createElement(q.x,null,r.createElement(p,null,r.createElement($,null),r.createElement(A,null),r.createElement(U,null),r.createElement(I,{location:T(t)},e)),r.createElement(W,null))))}var K=n(84054);var Y=function(e){try{return document.createElement("link").relList.supports(e)}catch(t){return!1}}("prefetch")?function(e){return new Promise((function(t,n){var r,o;if("undefined"!=typeof document){var a=document.createElement("link");a.setAttribute("rel","prefetch"),a.setAttribute("href",e),a.onload=function(){return t()},a.onerror=function(){return n()};var i=null!=(r=document.getElementsByTagName("head")[0])?r:null==(o=document.getElementsByName("script")[0])?void 0:o.parentNode;null==i||i.appendChild(a)}else n()}))}:function(e){return new Promise((function(t,n){var r=new XMLHttpRequest;r.open("GET",e,!0),r.withCredentials=!0,r.onload=function(){200===r.status?t():n()},r.send(null)}))};var Q=n(86921),X=new Set,J=new Set,Z=function(){var e,t;return(null==(e=navigator.connection)?void 0:e.effectiveType.includes("2g"))||(null==(t=navigator.connection)?void 0:t.saveData)},ee={prefetch:function(e){if(!function(e){return!Z()&&!J.has(e)&&!X.has(e)}(e))return!1;X.add(e);var t=(0,d.u)(l.A,e).flatMap((function(e){return t=e.route.path,Object.entries(K).filter((function(e){return e[0].replace(/-[^-]+$/,"")===t})).flatMap((function(e){var t=e[1];return Object.values((0,Q.A)(t))}));var t}));return Promise.all(t.map((function(e){var t=n.gca(e);return t&&!t.includes("undefined")?Y(t).catch((function(){})):Promise.resolve()})))},preload:function(e){return!!function(e){return!Z()&&!J.has(e)}(e)&&(J.add(e),P(e))}};const te=Object.freeze(ee);if(s.A.canUseDOM){window.docusaurus=te;var ne=o.hydrate;P(window.location.pathname).then((function(){ne(r.createElement(i.vd,null,r.createElement(a.Kd,null,r.createElement(V,null))),document.getElementById("__docusaurus"))}))}},26988:(e,t,n)=>{"use strict";n.d(t,{o:()=>u,l:()=>d});var r=n(96540),o=n(4784);const a=JSON.parse('{"docusaurus-plugin-google-gtag":{"default":{"trackingID":["UA-131010415-1"],"anonymizeIP":false,"id":"default"}},"docusaurus-lunr-search":{"default":{"fileNames":{"searchDoc":"search-doc-1708541348440.json","lunrIndex":"lunr-index-1708541348440.json"}}},"docusaurus-plugin-content-docs":{"default":{"path":"/docs/29.0.0","versions":[{"name":"current","label":"Next","isLast":true,"path":"/docs/29.0.0","mainDocId":"design/index","docs":[{"id":"api-reference/api-reference","path":"/docs/29.0.0/api-reference/","sidebar":"docs"},{"id":"api-reference/automatic-compaction-api","path":"/docs/29.0.0/api-reference/automatic-compaction-api","sidebar":"docs"},{"id":"api-reference/data-management-api","path":"/docs/29.0.0/api-reference/data-management-api","sidebar":"docs"},{"id":"api-reference/dynamic-configuration-api","path":"/docs/29.0.0/api-reference/dynamic-configuration-api","sidebar":"docs"},{"id":"api-reference/json-querying-api","path":"/docs/29.0.0/api-reference/json-querying-api","sidebar":"docs"},{"id":"api-reference/legacy-metadata-api","path":"/docs/29.0.0/api-reference/legacy-metadata-api","sidebar":"docs"},{"id":"api-reference/lookups-api","path":"/docs/29.0.0/api-reference/lookups-api","sidebar":"docs"},{"id":"api-reference/retention-rules-api","path":"/docs/29.0.0/api-reference/retention-rules-api","sidebar":"docs"},{"id":"api-reference/service-status-api","path":"/docs/29.0.0/api-reference/service-status-api","sidebar":"docs"},{"id":"api-reference/sql-api","path":"/docs/29.0.0/api-reference/sql-api","sidebar":"docs"},{"id":"api-reference/sql-ingestion-api","path":"/docs/29.0.0/api-reference/sql-ingestion-api","sidebar":"docs"},{"id":"api-reference/sql-jdbc","path":"/docs/29.0.0/api-reference/sql-jdbc","sidebar":"docs"},{"id":"api-reference/supervisor-api","path":"/docs/29.0.0/api-reference/supervisor-api","sidebar":"docs"},{"id":"api-reference/tasks-api","path":"/docs/29.0.0/api-reference/tasks-api","sidebar":"docs"},{"id":"comparisons/druid-vs-elasticsearch","path":"/docs/29.0.0/comparisons/druid-vs-elasticsearch"},{"id":"comparisons/druid-vs-key-value","path":"/docs/29.0.0/comparisons/druid-vs-key-value"},{"id":"comparisons/druid-vs-kudu","path":"/docs/29.0.0/comparisons/druid-vs-kudu"},{"id":"comparisons/druid-vs-redshift","path":"/docs/29.0.0/comparisons/druid-vs-redshift"},{"id":"comparisons/druid-vs-spark","path":"/docs/29.0.0/comparisons/druid-vs-spark"},{"id":"comparisons/druid-vs-sql-on-hadoop","path":"/docs/29.0.0/comparisons/druid-vs-sql-on-hadoop"},{"id":"configuration/extensions","path":"/docs/29.0.0/configuration/extensions","sidebar":"docs"},{"id":"configuration/human-readable-byte","path":"/docs/29.0.0/configuration/human-readable-byte"},{"id":"configuration/index","path":"/docs/29.0.0/configuration/","sidebar":"docs"},{"id":"configuration/logging","path":"/docs/29.0.0/configuration/logging","sidebar":"docs"},{"id":"data-management/automatic-compaction","path":"/docs/29.0.0/data-management/automatic-compaction","sidebar":"docs"},{"id":"data-management/compaction","path":"/docs/29.0.0/data-management/compaction","sidebar":"docs"},{"id":"data-management/delete","path":"/docs/29.0.0/data-management/delete","sidebar":"docs"},{"id":"data-management/index","path":"/docs/29.0.0/data-management/","sidebar":"docs"},{"id":"data-management/manual-compaction","path":"/docs/29.0.0/data-management/manual-compaction","sidebar":"docs"},{"id":"data-management/schema-changes","path":"/docs/29.0.0/data-management/schema-changes","sidebar":"docs"},{"id":"data-management/update","path":"/docs/29.0.0/data-management/update","sidebar":"docs"},{"id":"design/architecture","path":"/docs/29.0.0/design/architecture","sidebar":"docs"},{"id":"design/broker","path":"/docs/29.0.0/design/broker","sidebar":"docs"},{"id":"design/coordinator","path":"/docs/29.0.0/design/coordinator","sidebar":"docs"},{"id":"design/deep-storage","path":"/docs/29.0.0/design/deep-storage","sidebar":"docs"},{"id":"design/extensions-contrib/dropwizard","path":"/docs/29.0.0/design/extensions-contrib/dropwizard"},{"id":"design/historical","path":"/docs/29.0.0/design/historical","sidebar":"docs"},{"id":"design/index","path":"/docs/29.0.0/design/","sidebar":"docs"},{"id":"design/indexer","path":"/docs/29.0.0/design/indexer","sidebar":"docs"},{"id":"design/indexing-service","path":"/docs/29.0.0/design/indexing-service"},{"id":"design/metadata-storage","path":"/docs/29.0.0/design/metadata-storage","sidebar":"docs"},{"id":"design/middlemanager","path":"/docs/29.0.0/design/middlemanager","sidebar":"docs"},{"id":"design/overlord","path":"/docs/29.0.0/design/overlord","sidebar":"docs"},{"id":"design/peons","path":"/docs/29.0.0/design/peons","sidebar":"docs"},{"id":"design/router","path":"/docs/29.0.0/design/router","sidebar":"docs"},{"id":"design/segments","path":"/docs/29.0.0/design/segments","sidebar":"docs"},{"id":"design/storage","path":"/docs/29.0.0/design/storage","sidebar":"docs"},{"id":"design/zookeeper","path":"/docs/29.0.0/design/zookeeper","sidebar":"docs"},{"id":"development/build","path":"/docs/29.0.0/development/build","sidebar":"docs"},{"id":"development/contribute-to-docs","path":"/docs/29.0.0/development/contribute-to-docs","sidebar":"docs"},{"id":"development/experimental","path":"/docs/29.0.0/development/experimental","sidebar":"docs"},{"id":"development/extensions-contrib/aliyun-oss","path":"/docs/29.0.0/development/extensions-contrib/aliyun-oss"},{"id":"development/extensions-contrib/ambari-metrics-emitter","path":"/docs/29.0.0/development/extensions-contrib/ambari-metrics-emitter"},{"id":"development/extensions-contrib/cassandra","path":"/docs/29.0.0/development/extensions-contrib/cassandra"},{"id":"development/extensions-contrib/cloudfiles","path":"/docs/29.0.0/development/extensions-contrib/cloudfiles"},{"id":"development/extensions-contrib/compressed-big-decimal","path":"/docs/29.0.0/development/extensions-contrib/compressed-big-decimal"},{"id":"development/extensions-contrib/ddsketch-quantiles","path":"/docs/29.0.0/development/extensions-contrib/ddsketch-quantiles"},{"id":"development/extensions-contrib/delta-lake","path":"/docs/29.0.0/development/extensions-contrib/delta-lake"},{"id":"development/extensions-contrib/distinctcount","path":"/docs/29.0.0/development/extensions-contrib/distinctcount"},{"id":"development/extensions-contrib/gce-extensions","path":"/docs/29.0.0/development/extensions-contrib/gce-extensions"},{"id":"development/extensions-contrib/graphite","path":"/docs/29.0.0/development/extensions-contrib/graphite"},{"id":"development/extensions-contrib/iceberg","path":"/docs/29.0.0/development/extensions-contrib/iceberg"},{"id":"development/extensions-contrib/influx","path":"/docs/29.0.0/development/extensions-contrib/influx"},{"id":"development/extensions-contrib/influxdb-emitter","path":"/docs/29.0.0/development/extensions-contrib/influxdb-emitter"},{"id":"development/extensions-contrib/k8s-jobs","path":"/docs/29.0.0/development/extensions-contrib/k8s-jobs"},{"id":"development/extensions-contrib/kafka-emitter","path":"/docs/29.0.0/development/extensions-contrib/kafka-emitter"},{"id":"development/extensions-contrib/materialized-view","path":"/docs/29.0.0/development/extensions-contrib/materialized-view"},{"id":"development/extensions-contrib/momentsketch-quantiles","path":"/docs/29.0.0/development/extensions-contrib/momentsketch-quantiles"},{"id":"development/extensions-contrib/moving-average-query","path":"/docs/29.0.0/development/extensions-contrib/moving-average-query"},{"id":"development/extensions-contrib/opentsdb-emitter","path":"/docs/29.0.0/development/extensions-contrib/opentsdb-emitter"},{"id":"development/extensions-contrib/prometheus","path":"/docs/29.0.0/development/extensions-contrib/prometheus"},{"id":"development/extensions-contrib/redis-cache","path":"/docs/29.0.0/development/extensions-contrib/redis-cache"},{"id":"development/extensions-contrib/spectator-histogram","path":"/docs/29.0.0/development/extensions-contrib/spectator-histogram"},{"id":"development/extensions-contrib/sqlserver","path":"/docs/29.0.0/development/extensions-contrib/sqlserver"},{"id":"development/extensions-contrib/statsd","path":"/docs/29.0.0/development/extensions-contrib/statsd"},{"id":"development/extensions-contrib/tdigestsketch-quantiles","path":"/docs/29.0.0/development/extensions-contrib/tdigestsketch-quantiles"},{"id":"development/extensions-contrib/thrift","path":"/docs/29.0.0/development/extensions-contrib/thrift"},{"id":"development/extensions-contrib/time-min-max","path":"/docs/29.0.0/development/extensions-contrib/time-min-max"},{"id":"development/extensions-core/approximate-histograms","path":"/docs/29.0.0/development/extensions-core/approximate-histograms"},{"id":"development/extensions-core/avro","path":"/docs/29.0.0/development/extensions-core/avro"},{"id":"development/extensions-core/azure","path":"/docs/29.0.0/development/extensions-core/azure"},{"id":"development/extensions-core/bloom-filter","path":"/docs/29.0.0/development/extensions-core/bloom-filter"},{"id":"development/extensions-core/datasketches-extension","path":"/docs/29.0.0/development/extensions-core/datasketches-extension"},{"id":"development/extensions-core/datasketches-hll","path":"/docs/29.0.0/development/extensions-core/datasketches-hll"},{"id":"development/extensions-core/datasketches-kll","path":"/docs/29.0.0/development/extensions-core/datasketches-kll"},{"id":"development/extensions-core/datasketches-quantiles","path":"/docs/29.0.0/development/extensions-core/datasketches-quantiles"},{"id":"development/extensions-core/datasketches-theta","path":"/docs/29.0.0/development/extensions-core/datasketches-theta"},{"id":"development/extensions-core/datasketches-tuple","path":"/docs/29.0.0/development/extensions-core/datasketches-tuple"},{"id":"development/extensions-core/druid-aws-rds","path":"/docs/29.0.0/development/extensions-core/druid-aws-rds"},{"id":"development/extensions-core/druid-basic-security","path":"/docs/29.0.0/development/extensions-core/druid-basic-security"},{"id":"development/extensions-core/druid-kerberos","path":"/docs/29.0.0/development/extensions-core/druid-kerberos"},{"id":"development/extensions-core/druid-lookups","path":"/docs/29.0.0/development/extensions-core/druid-lookups"},{"id":"development/extensions-core/druid-pac4j","path":"/docs/29.0.0/development/extensions-core/druid-pac4j"},{"id":"development/extensions-core/druid-ranger-security","path":"/docs/29.0.0/development/extensions-core/druid-ranger-security"},{"id":"development/extensions-core/examples","path":"/docs/29.0.0/development/extensions-core/examples"},{"id":"development/extensions-core/google","path":"/docs/29.0.0/development/extensions-core/google"},{"id":"development/extensions-core/hdfs","path":"/docs/29.0.0/development/extensions-core/hdfs"},{"id":"development/extensions-core/kafka-extraction-namespace","path":"/docs/29.0.0/development/extensions-core/kafka-extraction-namespace"},{"id":"development/extensions-core/kubernetes","path":"/docs/29.0.0/development/extensions-core/kubernetes"},{"id":"development/extensions-core/lookups-cached-global","path":"/docs/29.0.0/development/extensions-core/lookups-cached-global"},{"id":"development/extensions-core/mysql","path":"/docs/29.0.0/development/extensions-core/mysql"},{"id":"development/extensions-core/orc","path":"/docs/29.0.0/development/extensions-core/orc"},{"id":"development/extensions-core/parquet","path":"/docs/29.0.0/development/extensions-core/parquet"},{"id":"development/extensions-core/postgresql","path":"/docs/29.0.0/development/extensions-core/postgresql"},{"id":"development/extensions-core/protobuf","path":"/docs/29.0.0/development/extensions-core/protobuf"},{"id":"development/extensions-core/s3","path":"/docs/29.0.0/development/extensions-core/s3"},{"id":"development/extensions-core/simple-client-sslcontext","path":"/docs/29.0.0/development/extensions-core/simple-client-sslcontext"},{"id":"development/extensions-core/stats","path":"/docs/29.0.0/development/extensions-core/stats"},{"id":"development/extensions-core/test-stats","path":"/docs/29.0.0/development/extensions-core/test-stats"},{"id":"development/javascript","path":"/docs/29.0.0/development/javascript","sidebar":"docs"},{"id":"development/modules","path":"/docs/29.0.0/development/modules","sidebar":"docs"},{"id":"development/overview","path":"/docs/29.0.0/development/overview","sidebar":"docs"},{"id":"development/versioning","path":"/docs/29.0.0/development/versioning","sidebar":"docs"},{"id":"ingestion/concurrent-append-replace","path":"/docs/29.0.0/ingestion/concurrent-append-replace","sidebar":"docs"},{"id":"ingestion/data-formats","path":"/docs/29.0.0/ingestion/data-formats","sidebar":"docs"},{"id":"ingestion/faq","path":"/docs/29.0.0/ingestion/faq","sidebar":"docs"},{"id":"ingestion/hadoop","path":"/docs/29.0.0/ingestion/hadoop","sidebar":"docs"},{"id":"ingestion/index","path":"/docs/29.0.0/ingestion/","sidebar":"docs"},{"id":"ingestion/ingestion-spec","path":"/docs/29.0.0/ingestion/ingestion-spec","sidebar":"docs"},{"id":"ingestion/input-sources","path":"/docs/29.0.0/ingestion/input-sources","sidebar":"docs"},{"id":"ingestion/kafka-ingestion","path":"/docs/29.0.0/ingestion/kafka-ingestion","sidebar":"docs"},{"id":"ingestion/kinesis-ingestion","path":"/docs/29.0.0/ingestion/kinesis-ingestion","sidebar":"docs"},{"id":"ingestion/native-batch","path":"/docs/29.0.0/ingestion/native-batch","sidebar":"docs"},{"id":"ingestion/native-batch-firehose","path":"/docs/29.0.0/ingestion/native-batch-firehose"},{"id":"ingestion/native-batch-simple-task","path":"/docs/29.0.0/ingestion/native-batch-simple-task"},{"id":"ingestion/partitioning","path":"/docs/29.0.0/ingestion/partitioning","sidebar":"docs"},{"id":"ingestion/rollup","path":"/docs/29.0.0/ingestion/rollup","sidebar":"docs"},{"id":"ingestion/schema-design","path":"/docs/29.0.0/ingestion/schema-design","sidebar":"docs"},{"id":"ingestion/schema-model","path":"/docs/29.0.0/ingestion/schema-model","sidebar":"docs"},{"id":"ingestion/standalone-realtime","path":"/docs/29.0.0/ingestion/standalone-realtime"},{"id":"ingestion/streaming","path":"/docs/29.0.0/ingestion/streaming","sidebar":"docs"},{"id":"ingestion/supervisor","path":"/docs/29.0.0/ingestion/supervisor","sidebar":"docs"},{"id":"ingestion/tasks","path":"/docs/29.0.0/ingestion/tasks","sidebar":"docs"},{"id":"ingestion/tranquility","path":"/docs/29.0.0/ingestion/tranquility"},{"id":"misc/papers-and-talks","path":"/docs/29.0.0/misc/papers-and-talks","sidebar":"docs"},{"id":"multi-stage-query/concepts","path":"/docs/29.0.0/multi-stage-query/concepts","sidebar":"docs"},{"id":"multi-stage-query/examples","path":"/docs/29.0.0/multi-stage-query/examples","sidebar":"docs"},{"id":"multi-stage-query/index","path":"/docs/29.0.0/multi-stage-query/","sidebar":"docs"},{"id":"multi-stage-query/known-issues","path":"/docs/29.0.0/multi-stage-query/known-issues","sidebar":"docs"},{"id":"multi-stage-query/reference","path":"/docs/29.0.0/multi-stage-query/reference","sidebar":"docs"},{"id":"multi-stage-query/security","path":"/docs/29.0.0/multi-stage-query/security","sidebar":"docs"},{"id":"operations/alerts","path":"/docs/29.0.0/operations/alerts","sidebar":"docs"},{"id":"operations/auth","path":"/docs/29.0.0/operations/auth"},{"id":"operations/auth-ldap","path":"/docs/29.0.0/operations/auth-ldap","sidebar":"docs"},{"id":"operations/basic-cluster-tuning","path":"/docs/29.0.0/operations/basic-cluster-tuning","sidebar":"docs"},{"id":"operations/clean-metadata-store","path":"/docs/29.0.0/operations/clean-metadata-store","sidebar":"docs"},{"id":"operations/deep-storage-migration","path":"/docs/29.0.0/operations/deep-storage-migration","sidebar":"docs"},{"id":"operations/dump-segment","path":"/docs/29.0.0/operations/dump-segment","sidebar":"docs"},{"id":"operations/durable-storage","path":"/docs/29.0.0/operations/durable-storage","sidebar":"docs"},{"id":"operations/dynamic-config-provider","path":"/docs/29.0.0/operations/dynamic-config-provider","sidebar":"docs"},{"id":"operations/export-metadata","path":"/docs/29.0.0/operations/export-metadata","sidebar":"docs"},{"id":"operations/high-availability","path":"/docs/29.0.0/operations/high-availability","sidebar":"docs"},{"id":"operations/http-compression","path":"/docs/29.0.0/operations/http-compression","sidebar":"docs"},{"id":"operations/insert-segment-to-db","path":"/docs/29.0.0/operations/insert-segment-to-db","sidebar":"docs"},{"id":"operations/java","path":"/docs/29.0.0/operations/java","sidebar":"docs"},{"id":"operations/kubernetes","path":"/docs/29.0.0/operations/kubernetes"},{"id":"operations/metadata-migration","path":"/docs/29.0.0/operations/metadata-migration","sidebar":"docs"},{"id":"operations/metrics","path":"/docs/29.0.0/operations/metrics","sidebar":"docs"},{"id":"operations/migrate-from-firehose","path":"/docs/29.0.0/operations/migrate-from-firehose","sidebar":"docs"},{"id":"operations/mixed-workloads","path":"/docs/29.0.0/operations/mixed-workloads","sidebar":"docs"},{"id":"operations/other-hadoop","path":"/docs/29.0.0/operations/other-hadoop","sidebar":"docs"},{"id":"operations/password-provider","path":"/docs/29.0.0/operations/password-provider","sidebar":"docs"},{"id":"operations/pull-deps","path":"/docs/29.0.0/operations/pull-deps","sidebar":"docs"},{"id":"operations/request-logging","path":"/docs/29.0.0/operations/request-logging","sidebar":"docs"},{"id":"operations/reset-cluster","path":"/docs/29.0.0/operations/reset-cluster","sidebar":"docs"},{"id":"operations/rolling-updates","path":"/docs/29.0.0/operations/rolling-updates","sidebar":"docs"},{"id":"operations/rule-configuration","path":"/docs/29.0.0/operations/rule-configuration","sidebar":"docs"},{"id":"operations/security-overview","path":"/docs/29.0.0/operations/security-overview","sidebar":"docs"},{"id":"operations/security-user-auth","path":"/docs/29.0.0/operations/security-user-auth","sidebar":"docs"},{"id":"operations/segment-optimization","path":"/docs/29.0.0/operations/segment-optimization","sidebar":"docs"},{"id":"operations/single-server","path":"/docs/29.0.0/operations/single-server","sidebar":"docs"},{"id":"operations/tls-support","path":"/docs/29.0.0/operations/tls-support","sidebar":"docs"},{"id":"operations/use_sbt_to_build_fat_jar","path":"/docs/29.0.0/operations/use_sbt_to_build_fat_jar","sidebar":"docs"},{"id":"operations/web-console","path":"/docs/29.0.0/operations/web-console","sidebar":"docs"},{"id":"querying/aggregations","path":"/docs/29.0.0/querying/aggregations","sidebar":"docs"},{"id":"querying/arrays","path":"/docs/29.0.0/querying/arrays","sidebar":"docs"},{"id":"querying/caching","path":"/docs/29.0.0/querying/caching","sidebar":"docs"},{"id":"querying/datasource","path":"/docs/29.0.0/querying/datasource","sidebar":"docs"},{"id":"querying/datasourcemetadataquery","path":"/docs/29.0.0/querying/datasourcemetadataquery","sidebar":"docs"},{"id":"querying/dimensionspecs","path":"/docs/29.0.0/querying/dimensionspecs","sidebar":"docs"},{"id":"querying/filters","path":"/docs/29.0.0/querying/filters","sidebar":"docs"},{"id":"querying/geo","path":"/docs/29.0.0/querying/geo","sidebar":"docs"},{"id":"querying/granularities","path":"/docs/29.0.0/querying/granularities","sidebar":"docs"},{"id":"querying/groupbyquery","path":"/docs/29.0.0/querying/groupbyquery","sidebar":"docs"},{"id":"querying/having","path":"/docs/29.0.0/querying/having","sidebar":"docs"},{"id":"querying/hll-old","path":"/docs/29.0.0/querying/hll-old"},{"id":"querying/joins","path":"/docs/29.0.0/querying/joins","sidebar":"docs"},{"id":"querying/limitspec","path":"/docs/29.0.0/querying/limitspec","sidebar":"docs"},{"id":"querying/lookups","path":"/docs/29.0.0/querying/lookups","sidebar":"docs"},{"id":"querying/math-expr","path":"/docs/29.0.0/querying/math-expr","sidebar":"docs"},{"id":"querying/multi-value-dimensions","path":"/docs/29.0.0/querying/multi-value-dimensions","sidebar":"docs"},{"id":"querying/multitenancy","path":"/docs/29.0.0/querying/multitenancy","sidebar":"docs"},{"id":"querying/nested-columns","path":"/docs/29.0.0/querying/nested-columns","sidebar":"docs"},{"id":"querying/post-aggregations","path":"/docs/29.0.0/querying/post-aggregations","sidebar":"docs"},{"id":"querying/query-context","path":"/docs/29.0.0/querying/query-context","sidebar":"docs"},{"id":"querying/query-deep-storage","path":"/docs/29.0.0/querying/query-deep-storage","sidebar":"docs"},{"id":"querying/query-execution","path":"/docs/29.0.0/querying/query-execution","sidebar":"docs"},{"id":"querying/query-processing","path":"/docs/29.0.0/querying/query-processing","sidebar":"docs"},{"id":"querying/querying","path":"/docs/29.0.0/querying/","sidebar":"docs"},{"id":"querying/scan-query","path":"/docs/29.0.0/querying/scan-query","sidebar":"docs"},{"id":"querying/searchquery","path":"/docs/29.0.0/querying/searchquery","sidebar":"docs"},{"id":"querying/segmentmetadataquery","path":"/docs/29.0.0/querying/segmentmetadataquery","sidebar":"docs"},{"id":"querying/select-query","path":"/docs/29.0.0/querying/select-query"},{"id":"querying/sorting-orders","path":"/docs/29.0.0/querying/sorting-orders","sidebar":"docs"},{"id":"querying/sql","path":"/docs/29.0.0/querying/sql","sidebar":"docs"},{"id":"querying/sql-aggregations","path":"/docs/29.0.0/querying/sql-aggregations","sidebar":"docs"},{"id":"querying/sql-array-functions","path":"/docs/29.0.0/querying/sql-array-functions","sidebar":"docs"},{"id":"querying/sql-data-types","path":"/docs/29.0.0/querying/sql-data-types","sidebar":"docs"},{"id":"querying/sql-functions","path":"/docs/29.0.0/querying/sql-functions","sidebar":"docs"},{"id":"querying/sql-json-functions","path":"/docs/29.0.0/querying/sql-json-functions","sidebar":"docs"},{"id":"querying/sql-metadata-tables","path":"/docs/29.0.0/querying/sql-metadata-tables","sidebar":"docs"},{"id":"querying/sql-multivalue-string-functions","path":"/docs/29.0.0/querying/sql-multivalue-string-functions","sidebar":"docs"},{"id":"querying/sql-operators","path":"/docs/29.0.0/querying/sql-operators","sidebar":"docs"},{"id":"querying/sql-query-context","path":"/docs/29.0.0/querying/sql-query-context","sidebar":"docs"},{"id":"querying/sql-scalar","path":"/docs/29.0.0/querying/sql-scalar","sidebar":"docs"},{"id":"querying/sql-translation","path":"/docs/29.0.0/querying/sql-translation","sidebar":"docs"},{"id":"querying/sql-window-functions","path":"/docs/29.0.0/querying/sql-window-functions","sidebar":"docs"},{"id":"querying/timeboundaryquery","path":"/docs/29.0.0/querying/timeboundaryquery","sidebar":"docs"},{"id":"querying/timeseriesquery","path":"/docs/29.0.0/querying/timeseriesquery","sidebar":"docs"},{"id":"querying/tips-good-queries","path":"/docs/29.0.0/querying/tips-good-queries","sidebar":"docs"},{"id":"querying/topnmetricspec","path":"/docs/29.0.0/querying/topnmetricspec","sidebar":"docs"},{"id":"querying/topnquery","path":"/docs/29.0.0/querying/topnquery","sidebar":"docs"},{"id":"querying/troubleshooting","path":"/docs/29.0.0/querying/troubleshooting","sidebar":"docs"},{"id":"querying/using-caching","path":"/docs/29.0.0/querying/using-caching","sidebar":"docs"},{"id":"querying/virtual-columns","path":"/docs/29.0.0/querying/virtual-columns","sidebar":"docs"},{"id":"release-info/release-notes","path":"/docs/29.0.0/release-info/release-notes","sidebar":"docs"},{"id":"release-info/upgrade-notes","path":"/docs/29.0.0/release-info/upgrade-notes","sidebar":"docs"},{"id":"tutorials/cluster","path":"/docs/29.0.0/tutorials/cluster","sidebar":"docs"},{"id":"tutorials/docker","path":"/docs/29.0.0/tutorials/docker","sidebar":"docs"},{"id":"tutorials/index","path":"/docs/29.0.0/tutorials/","sidebar":"docs"},{"id":"tutorials/tutorial-batch","path":"/docs/29.0.0/tutorials/tutorial-batch"},{"id":"tutorials/tutorial-batch-hadoop","path":"/docs/29.0.0/tutorials/tutorial-batch-hadoop","sidebar":"docs"},{"id":"tutorials/tutorial-batch-native","path":"/docs/29.0.0/tutorials/tutorial-batch-native"},{"id":"tutorials/tutorial-compaction","path":"/docs/29.0.0/tutorials/tutorial-compaction","sidebar":"docs"},{"id":"tutorials/tutorial-delete-data","path":"/docs/29.0.0/tutorials/tutorial-delete-data","sidebar":"docs"},{"id":"tutorials/tutorial-ingestion-spec","path":"/docs/29.0.0/tutorials/tutorial-ingestion-spec","sidebar":"docs"},{"id":"tutorials/tutorial-jdbc","path":"/docs/29.0.0/tutorials/tutorial-jdbc","sidebar":"docs"},{"id":"tutorials/tutorial-kafka","path":"/docs/29.0.0/tutorials/tutorial-kafka","sidebar":"docs"},{"id":"tutorials/tutorial-kerberos-hadoop","path":"/docs/29.0.0/tutorials/tutorial-kerberos-hadoop","sidebar":"docs"},{"id":"tutorials/tutorial-msq-convert-spec","path":"/docs/29.0.0/tutorials/tutorial-msq-convert-spec","sidebar":"docs"},{"id":"tutorials/tutorial-msq-extern","path":"/docs/29.0.0/tutorials/tutorial-msq-extern","sidebar":"docs"},{"id":"tutorials/tutorial-query","path":"/docs/29.0.0/tutorials/tutorial-query","sidebar":"docs"},{"id":"tutorials/tutorial-query-deep-storage","path":"/docs/29.0.0/tutorials/tutorial-query-deep-storage","sidebar":"docs"},{"id":"tutorials/tutorial-retention","path":"/docs/29.0.0/tutorials/tutorial-retention","sidebar":"docs"},{"id":"tutorials/tutorial-rollup","path":"/docs/29.0.0/tutorials/tutorial-rollup","sidebar":"docs"},{"id":"tutorials/tutorial-sketches-theta","path":"/docs/29.0.0/tutorials/tutorial-sketches-theta","sidebar":"docs"},{"id":"tutorials/tutorial-sql-query-view","path":"/docs/29.0.0/tutorials/tutorial-sql-query-view","sidebar":"docs"},{"id":"tutorials/tutorial-transform-spec","path":"/docs/29.0.0/tutorials/tutorial-transform-spec","sidebar":"docs"},{"id":"tutorials/tutorial-unnest-arrays","path":"/docs/29.0.0/tutorials/tutorial-unnest-arrays","sidebar":"docs"},{"id":"tutorials/tutorial-update-data","path":"/docs/29.0.0/tutorials/tutorial-update-data","sidebar":"docs"}],"draftIds":[],"sidebars":{"docs":{"link":{"path":"/docs/29.0.0/design/","label":"design/index"}}}}],"breadcrumbs":true}}}'),i=JSON.parse('{"defaultLocale":"en","locales":["en"],"path":"i18n","currentLocale":"en","localeConfigs":{"en":{"label":"English","direction":"ltr","htmlLang":"en","calendar":"gregory","path":"en"}}}');var s=n(22654);const c=JSON.parse('{"docusaurusVersion":"2.4.3","pluginVersions":{"docusaurus-plugin-content-docs":{"type":"package","name":"@docusaurus/plugin-content-docs","version":"2.4.3"},"docusaurus-plugin-content-blog":{"type":"package","name":"@docusaurus/plugin-content-blog","version":"2.4.3"},"docusaurus-plugin-content-pages":{"type":"package","name":"@docusaurus/plugin-content-pages","version":"2.4.3"},"docusaurus-plugin-google-gtag":{"type":"package","name":"@docusaurus/plugin-google-gtag","version":"2.4.3"},"docusaurus-plugin-sitemap":{"type":"package","name":"@docusaurus/plugin-sitemap","version":"2.4.3"},"docusaurus-theme-classic":{"type":"package","name":"@docusaurus/theme-classic","version":"2.4.3"},"docusaurus-plugin-client-redirects":{"type":"package","name":"@docusaurus/plugin-client-redirects","version":"2.4.3"},"docusaurus-lunr-search":{"type":"package","name":"docusaurus-lunr-search","version":"3.3.2"},"docusaurus-theme-mermaid":{"type":"package","name":"@docusaurus/theme-mermaid","version":"2.4.3"}}}');var l={siteConfig:o.default,siteMetadata:c,globalData:a,i18n:i,codeTranslations:s},u=r.createContext(l);function d(e){var t=e.children;return r.createElement(u.Provider,{value:l},t)}},67489:(e,t,n)=>{"use strict";n.d(t,{A:()=>f});var r=n(77387),o=n(96540),a=n(38193),i=n(5260),s=n(70440),c=n(53558);function l(e){var t=e.error,n=e.tryAgain;return o.createElement("div",{style:{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"flex-start",minHeight:"100vh",width:"100%",maxWidth:"80ch",fontSize:"20px",margin:"0 auto",padding:"1rem"}},o.createElement("h1",{style:{fontSize:"3rem"}},"This page crashed"),o.createElement("button",{type:"button",onClick:n,style:{margin:"1rem 0",fontSize:"2rem",cursor:"pointer",borderRadius:20,padding:"1rem"}},"Try again"),o.createElement(u,{error:t}))}function u(e){var t=e.error,n=(0,s.getErrorCausalChain)(t).map((function(e){return e.message})).join("\n\nCause:\n");return o.createElement("p",{style:{whiteSpace:"pre-wrap"}},n)}function d(e){var t=e.error,n=e.tryAgain;return o.createElement(f,{fallback:function(){return o.createElement(l,{error:t,tryAgain:n})}},o.createElement(i.A,null,o.createElement("title",null,"Page Error")),o.createElement(c.A,null,o.createElement(l,{error:t,tryAgain:n})))}var p=function(e){return o.createElement(d,e)},f=function(e){function t(t){var n;return(n=e.call(this,t)||this).state={error:null},n}(0,r.A)(t,e);var n=t.prototype;return n.componentDidCatch=function(e){a.A.canUseDOM&&this.setState({error:e})},n.render=function(){var e=this,t=this.props.children,n=this.state.error;if(n){var r,o={error:n,tryAgain:function(){return e.setState({error:null})}};return(null!=(r=this.props.fallback)?r:p)(o)}return null!=t?t:null},t}(o.Component)},38193:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var r="undefined"!=typeof window&&"document"in window&&"createElement"in window.document;const o={canUseDOM:r,canUseEventListeners:r&&("addEventListener"in window||"attachEvent"in window),canUseIntersectionObserver:r&&"IntersectionObserver"in window,canUseViewport:r&&"screen"in window}},5260:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});var r=n(96540),o=n(80545);function a(e){return r.createElement(o.mg,e)}},75489:(e,t,n)=>{"use strict";n.d(t,{A:()=>h});var r=n(58168),o=n(98587),a=n(96540),i=n(54625),s=n(70440),c=n(44586),l=n(16654),u=n(38193),d=a.createContext({collectLink:function(){}});var p=n(86025),f=["isNavLink","to","href","activeClassName","isActive","data-noBrokenLinkCheck","autoAddBaseUrl"];function m(e,t){var n,m,h=e.isNavLink,g=e.to,b=e.href,v=e.activeClassName,y=e.isActive,w=e["data-noBrokenLinkCheck"],k=e.autoAddBaseUrl,x=void 0===k||k,E=(0,o.A)(e,f),_=(0,c.A)().siteConfig,S=_.trailingSlash,A=_.baseUrl,C=(0,p.h)().withBaseUrl,T=(0,a.useContext)(d),q=(0,a.useRef)(null);(0,a.useImperativeHandle)(t,(function(){return q.current}));var N=g||b;var R,O=(0,l.A)(N),L=null==N?void 0:N.replace("pathname://",""),P=void 0!==L?(R=L,x&&function(e){return e.startsWith("/")}(R)?C(R):R):void 0;P&&O&&(P=(0,s.applyTrailingSlash)(P,{trailingSlash:S,baseUrl:A}));var I=(0,a.useRef)(!1),D=h?i.k2:i.N_,M=u.A.canUseIntersectionObserver,j=(0,a.useRef)(),F=function(){I.current||null==P||(window.docusaurus.preload(P),I.current=!0)};(0,a.useEffect)((function(){return!M&&O&&null!=P&&window.docusaurus.prefetch(P),function(){M&&j.current&&j.current.disconnect()}}),[j,P,M,O]);var B=null!=(n=null==(m=P)?void 0:m.startsWith("#"))&&n,z=!P||!O||B;return z||w||T.collectLink(P),z?a.createElement("a",(0,r.A)({ref:q,href:P},N&&!O&&{target:"_blank",rel:"noopener noreferrer"},E)):a.createElement(D,(0,r.A)({},E,{onMouseEnter:F,onTouchStart:F,innerRef:function(e){q.current=e,M&&e&&O&&(j.current=new window.IntersectionObserver((function(t){t.forEach((function(t){e===t.target&&(t.isIntersecting||t.intersectionRatio>0)&&(j.current.unobserve(e),j.current.disconnect(),null!=P&&window.docusaurus.prefetch(P))}))})),j.current.observe(e))},to:P},h&&{isActive:y,activeClassName:v}))}const h=a.forwardRef(m)},21312:(e,t,n)=>{"use strict";n.d(t,{A:()=>c,T:()=>s});var r=n(96540);function o(e,t){var n=e.split(/(\{\w+\})/).map((function(e,n){if(n%2==1){var r=null==t?void 0:t[e.slice(1,-1)];if(void 0!==r)return r}return e}));return n.some((function(e){return(0,r.isValidElement)(e)}))?n.map((function(e,t){return(0,r.isValidElement)(e)?r.cloneElement(e,{key:t}):e})).filter((function(e){return""!==e})):n.join("")}var a=n(22654);function i(e){var t,n,r=e.id,o=e.message;if(void 0===r&&void 0===o)throw new Error("Docusaurus translation declarations must have at least a translation id or a default translation message");return null!=(t=null!=(n=a[null!=r?r:o])?n:o)?t:r}function s(e,t){return o(i({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 <Translate> children",t),new Error("The Docusaurus <Translate> component only accept simple string values");var s=i({message:t,id:n});return r.createElement(r.Fragment,null,o(s,a))}},17065:(e,t,n)=>{"use strict";n.d(t,{W:()=>r});var r="default"},16654:(e,t,n)=>{"use strict";function r(e){return/^(?:\w*:|\/\/)/.test(e)}function o(e){return void 0!==e&&!r(e)}n.d(t,{A:()=>o,z:()=>r})},86025:(e,t,n)=>{"use strict";n.d(t,{A:()=>s,h:()=>i});var r=n(96540),o=n(44586),a=n(16654);function i(){var e=(0,o.A)().siteConfig,t=e.baseUrl,n=e.url,i=(0,r.useCallback)((function(e,r){return function(e,t,n,r){var o=void 0===r?{}:r,i=o.forcePrependBaseUrl,s=void 0!==i&&i,c=o.absolute,l=void 0!==c&&c;if(!n||n.startsWith("#")||(0,a.z)(n))return n;if(s)return t+n.replace(/^\//,"");if(n===t.replace(/\/$/,""))return t;var u=n.startsWith(t)?n:t+n.replace(/^\//,"");return l?e+u:u}(n,t,e,r)}),[n,t]);return{withBaseUrl:i}}function s(e,t){return void 0===t&&(t={}),(0,i().withBaseUrl)(e,t)}},44586:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});var r=n(96540),o=n(26988);function a(){return(0,r.useContext)(o.o)}},66588:(e,t,n)=>{"use strict";n.d(t,{P_:()=>i,kh:()=>a});var r=n(44586),o=n(17065);function a(e,t){void 0===t&&(t={});var n=(0,r.A)().globalData[e];if(!n&&t.failfast)throw new Error('Docusaurus plugin global data not found for "'+e+'" plugin.');return n}function i(e,t,n){void 0===t&&(t=o.W),void 0===n&&(n={});var r=a(e),i=null==r?void 0:r[t];if(!i&&n.failfast)throw new Error('Docusaurus plugin global data not found for "'+e+'" plugin with id "'+t+'".');return i}},92303:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});var r=n(96540),o=n(6125);function a(){return(0,r.useContext)(o.o)}},86921:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var r=function(e){return"object"==typeof e&&!!e&&Object.keys(e).length>0};function o(e){var t={};return function e(n,o){Object.entries(n).forEach((function(n){var a=n[0],i=n[1],s=o?o+"."+a:a;r(i)?e(i,s):t[s]=i}))}(e),t}},53102:(e,t,n)=>{"use strict";n.d(t,{W:()=>a,o:()=>o});var r=n(96540),o=r.createContext(null);function a(e){var t=e.children,n=e.value,a=r.useContext(o),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:a,value:n})}),[a,n]);return r.createElement(o.Provider,{value:i},t)}},48295:(e,t,n)=>{"use strict";n.d(t,{zK:()=>f,vT:()=>u,Gy:()=>c,HW:()=>m,ht:()=>l,r7:()=>p,jh:()=>d});var r=n(56347),o=n(66588);var a=function(e){return e.versions.find((function(e){return e.isLast}))};function i(e,t){var n,o,i=function(e,t){var n=a(e);return[].concat(e.versions.filter((function(e){return e!==n})),[n]).find((function(e){return!!(0,r.B6)(t,{path:e.path,exact:!1,strict:!1})}))}(e,t),s=null==i?void 0:i.docs.find((function(e){return!!(0,r.B6)(t,{path:e.path,exact:!0,strict:!1})}));return{activeVersion:i,activeDoc:s,alternateDocVersions:s?(n=s.id,o={},e.versions.forEach((function(e){e.docs.forEach((function(t){t.id===n&&(o[e.name]=t)}))})),o):{}}}var s={},c=function(){var e;return null!=(e=(0,o.kh)("docusaurus-plugin-content-docs"))?e:s},l=function(e){return(0,o.P_)("docusaurus-plugin-content-docs",e,{failfast:!0})};function u(e){return void 0===e&&(e={}),function(e,t,n){void 0===n&&(n={});var o=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.B6)(t,{path:n.path,exact:!1,strict:!1})})),a=o?{pluginId:o[0],pluginData:o[1]}:void 0;if(!a&&n.failfast)throw new Error("Can't find active docs plugin for \""+t+'" pathname, while it was expected to be found. Maybe you tried to use a docs feature that can only be used on a docs-related page? Existing docs plugin paths are: '+Object.values(e).map((function(e){return e.path})).join(", "));return a}(c(),(0,r.zy)().pathname,e)}function d(e){return l(e).versions}function p(e){var t=l(e);return a(t)}function f(e){return i(l(e),(0,r.zy)().pathname)}function m(e){return function(e,t){var n=a(e);return{latestDocSuggestion:i(e,t).alternateDocVersions[n.name],latestVersionSuggestion:n}}(l(e),(0,r.zy)().pathname)}},31911:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={onRouteDidUpdate:function(e){var t=e.location,n=e.previousLocation;!n||t.pathname===n.pathname&&t.search===n.search&&t.hash===n.hash||setTimeout((function(){window.gtag("event","page_view",{page_title:document.title,page_location:window.location.href,page_path:t.pathname+t.search+t.hash})}))}}},76294:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>a});var r=n(5947),o=n.n(r);o().configure({showSpinner:!1});const a={onRouteUpdate:function(e){var t=e.location,n=e.previousLocation;if(n&&t.pathname!==n.pathname){var r=window.setTimeout((function(){o().start()}),200);return function(){return window.clearTimeout(r)}}},onRouteDidUpdate:function(){o().done()}}},26134:(e,t,n)=>{"use strict";n.r(t);var r,o,a=n(61258),i=n(4784);r=a.A,o=i.default.themeConfig.prism.additionalLanguages,globalThis.Prism=r,o.forEach((function(e){n(18692)("./prism-"+e)})),delete globalThis.Prism},43186:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});var r=n(96540);const o={iconExternalLink:"iconExternalLink_nPIU"};function a(e){var t=e.width,n=void 0===t?13.5:t,a=e.height,i=void 0===a?13.5:a;return r.createElement("svg",{width:n,height:i,"aria-hidden":"true",viewBox:"0 0 24 24",className:o.iconExternalLink},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"}))}},53558:(e,t,n)=>{"use strict";n.d(t,{A:()=>It});var r=n(96540),o=n(20053),a=n(67489),i=n(1003),s=n(58168),c=n(56347),l=n(21312),u=n(75062),d="__docusaurus_skipToContent_fallback";function p(e){e.setAttribute("tabindex","-1"),e.focus(),e.removeAttribute("tabindex")}function f(){var e=(0,r.useRef)(null),t=(0,c.W6)().action,n=(0,r.useCallback)((function(e){e.preventDefault();var t,n=null!=(t=document.querySelector("main:first-of-type"))?t:document.getElementById(d);n&&p(n)}),[]);return(0,u.$)((function(n){var r=n.location;e.current&&!r.hash&&"PUSH"===t&&p(e.current)})),{containerRef:e,onClick:n}}var m=(0,l.T)({id:"theme.common.skipToMainContent",description:"The skip to content label used for accessibility, allowing to rapidly navigate to main content with keyboard tab/enter navigation",message:"Skip to main content"});function h(e){var t,n=null!=(t=e.children)?t:m,o=f(),a=o.containerRef,i=o.onClick;return r.createElement("div",{ref:a,role:"region","aria-label":m},r.createElement("a",(0,s.A)({},e,{href:"#"+d,onClick:i}),n))}var g=n(17559),b=n(14090);const v={skipToContent:"skipToContent_fXgn"};function y(){return r.createElement(h,{className:v.skipToContent})}var w=n(6342),k=n(65041),x=n(98587),E=["width","height","color","strokeWidth","className"];function _(e){var t=e.width,n=void 0===t?21:t,o=e.height,a=void 0===o?21:o,i=e.color,c=void 0===i?"currentColor":i,l=e.strokeWidth,u=void 0===l?1.2:l,d=(e.className,(0,x.A)(e,E));return r.createElement("svg",(0,s.A)({viewBox:"0 0 15 15",width:n,height:a},d),r.createElement("g",{stroke:c,strokeWidth:u},r.createElement("path",{d:"M.75.75l13.5 13.5M14.25.75L.75 14.25"})))}const S={closeButton:"closeButton_CVFx"};function A(e){return r.createElement("button",(0,s.A)({type:"button","aria-label":(0,l.T)({id:"theme.AnnouncementBar.closeButtonAriaLabel",message:"Close",description:"The ARIA label for close button of announcement bar"})},e,{className:(0,o.A)("clean-btn close",S.closeButton,e.className)}),r.createElement(_,{width:14,height:14,strokeWidth:3.1}))}const C={content:"content_knG7"};function T(e){var t=(0,w.p)().announcementBar.content;return r.createElement("div",(0,s.A)({},e,{className:(0,o.A)(C.content,e.className),dangerouslySetInnerHTML:{__html:t}}))}const q={announcementBar:"announcementBar_mb4j",announcementBarPlaceholder:"announcementBarPlaceholder_vyr4",announcementBarClose:"announcementBarClose_gvF7",announcementBarContent:"announcementBarContent_xLdY"};function N(){var e=(0,w.p)().announcementBar,t=(0,k.Mj)(),n=t.isActive,o=t.close;if(!n)return null;var a=e.backgroundColor,i=e.textColor,s=e.isCloseable;return r.createElement("div",{className:q.announcementBar,style:{backgroundColor:a,color:i},role:"banner"},s&&r.createElement("div",{className:q.announcementBarPlaceholder}),r.createElement(T,{className:q.announcementBarContent}),s&&r.createElement(A,{onClick:o,className:q.announcementBarClose}))}var R=n(22069),O=n(23104);var L=n(43807),P=n(75600),I=r.createContext(null);function D(e){var t,n,o,a,i,s,c,l=e.children,u=(t=(0,R.M)(),n=(0,P.YL)(),o=(0,r.useState)(!1),a=o[0],i=o[1],s=null!==n.component,c=(0,L.ZC)(s),(0,r.useEffect)((function(){s&&!c&&i(!0)}),[s,c]),(0,r.useEffect)((function(){s?t.shown||i(!0):i(!1)}),[t.shown,s]),(0,r.useMemo)((function(){return[a,i]}),[a]));return r.createElement(I.Provider,{value:u},l)}function M(e){if(e.component){var t=e.component;return r.createElement(t,e.props)}}function j(){var e=(0,r.useContext)(I);if(!e)throw new L.dV("NavbarSecondaryMenuDisplayProvider");var t=e[0],n=e[1],o=(0,r.useCallback)((function(){return n(!1)}),[n]),a=(0,P.YL)();return(0,r.useMemo)((function(){return{shown:t,hide:o,content:M(a)}}),[o,a,t])}function F(e){var t=e.header,n=e.primaryMenu,a=e.secondaryMenu,i=j().shown;return r.createElement("div",{className:"navbar-sidebar"},t,r.createElement("div",{className:(0,o.A)("navbar-sidebar__items",{"navbar-sidebar__items--show-secondary":i})},r.createElement("div",{className:"navbar-sidebar__item menu"},n),r.createElement("div",{className:"navbar-sidebar__item menu"},a)))}var B=n(95293),z=n(92303);function U(e){return r.createElement("svg",(0,s.A)({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 $(e){return r.createElement("svg",(0,s.A)({viewBox:"0 0 24 24",width:24,height:24},e),r.createElement("path",{fill:"currentColor",d:"M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"}))}const G={toggle:"toggle_vylO",toggleButton:"toggleButton_gllP",darkToggleIcon:"darkToggleIcon_wfgR",lightToggleIcon:"lightToggleIcon_pyhR",toggleButtonDisabled:"toggleButtonDisabled_aARS"};function H(e){var t=e.className,n=e.buttonClassName,a=e.value,i=e.onChange,s=(0,z.A)(),c=(0,l.T)({message:"Switch between dark and light mode (currently {mode})",id:"theme.colorToggle.ariaLabel",description:"The ARIA label for the navbar color mode toggle"},{mode:"dark"===a?(0,l.T)({message:"dark mode",id:"theme.colorToggle.ariaLabel.mode.dark",description:"The name for the dark color mode"}):(0,l.T)({message:"light mode",id:"theme.colorToggle.ariaLabel.mode.light",description:"The name for the light color mode"})});return r.createElement("div",{className:(0,o.A)(G.toggle,t)},r.createElement("button",{className:(0,o.A)("clean-btn",G.toggleButton,!s&&G.toggleButtonDisabled,n),type:"button",onClick:function(){return i("dark"===a?"light":"dark")},disabled:!s,title:c,"aria-label":c,"aria-live":"polite"},r.createElement(U,{className:(0,o.A)(G.toggleIcon,G.lightToggleIcon)}),r.createElement($,{className:(0,o.A)(G.toggleIcon,G.darkToggleIcon)})))}const W=r.memo(H),V={darkNavbarColorModeToggle:"darkNavbarColorModeToggle_X3D1"};function K(e){var t=e.className,n=(0,w.p)().navbar.style,o=(0,w.p)().colorMode.disableSwitch,a=(0,B.G)(),i=a.colorMode,s=a.setColorMode;return o?null:r.createElement(W,{className:t,buttonClassName:"dark"===n?V.darkNavbarColorModeToggle:void 0,value:i,onChange:s})}var Y=n(23465);function Q(){return r.createElement(Y.A,{className:"navbar__brand",imageClassName:"navbar__logo",titleClassName:"navbar__title text--truncate"})}function X(){var e=(0,R.M)();return r.createElement("button",{type:"button","aria-label":(0,l.T)({id:"theme.docs.sidebar.closeSidebarButtonAriaLabel",message:"Close navigation bar",description:"The ARIA label for close button of mobile sidebar"}),className:"clean-btn navbar-sidebar__close",onClick:function(){return e.toggle()}},r.createElement(_,{color:"var(--ifm-color-emphasis-600)"}))}function J(){return r.createElement("div",{className:"navbar-sidebar__brand"},r.createElement(Q,null),r.createElement(K,{className:"margin-right--md"}),r.createElement(X,null))}var Z=n(75489),ee=n(86025),te=n(16654);function ne(e,t){return void 0!==e&&void 0!==t&&new RegExp(e,"gi").test(t)}var re=n(43186),oe=["activeBasePath","activeBaseRegex","to","href","label","html","isDropdownLink","prependBaseUrlToHref"];function ae(e){var t=e.activeBasePath,n=e.activeBaseRegex,o=e.to,a=e.href,i=e.label,c=e.html,l=e.isDropdownLink,u=e.prependBaseUrlToHref,d=(0,x.A)(e,oe),p=(0,ee.A)(o),f=(0,ee.A)(t),m=(0,ee.A)(a,{forcePrependBaseUrl:!0}),h=i&&a&&!(0,te.A)(a),g=c?{dangerouslySetInnerHTML:{__html:c}}:{children:r.createElement(r.Fragment,null,i,h&&r.createElement(re.A,l&&{width:12,height:12}))};return a?r.createElement(Z.A,(0,s.A)({href:u?m:a},d,g)):r.createElement(Z.A,(0,s.A)({to:p,isNavLink:!0},(t||n)&&{isActive:function(e,t){return n?ne(n,t.pathname):t.pathname.startsWith(f)}},d,g))}var ie=["className","isDropdownItem"],se=["className","isDropdownItem"],ce=["mobile","position"];function le(e){var t=e.className,n=e.isDropdownItem,a=void 0!==n&&n,i=(0,x.A)(e,ie),c=r.createElement(ae,(0,s.A)({className:(0,o.A)(a?"dropdown__link":"navbar__item navbar__link",t),isDropdownLink:a},i));return a?r.createElement("li",null,c):c}function ue(e){var t=e.className,n=(e.isDropdownItem,(0,x.A)(e,se));return r.createElement("li",{className:"menu__list-item"},r.createElement(ae,(0,s.A)({className:(0,o.A)("menu__link",t)},n)))}function de(e){var t,n=e.mobile,o=void 0!==n&&n,a=(e.position,(0,x.A)(e,ce)),i=o?ue:le;return r.createElement(i,(0,s.A)({},a,{activeClassName:null!=(t=a.activeClassName)?t:o?"menu__link--active":"navbar__link--active"}))}var pe=n(41422),fe=n(99169),me=n(44586);var he=["items","position","className","onClick"],ge=["items","className","position","onClick"],be=["mobile"];function ve(e,t){return e.some((function(e){return function(e,t){return!!(0,fe.ys)(e.to,t)||!!ne(e.activeBaseRegex,t)||!(!e.activeBasePath||!t.startsWith(e.activeBasePath))}(e,t)}))}function ye(e){var t,n=e.items,a=e.position,i=e.className,c=(e.onClick,(0,x.A)(e,he)),l=(0,r.useRef)(null),u=(0,r.useState)(!1),d=u[0],p=u[1];return(0,r.useEffect)((function(){var e=function(e){l.current&&!l.current.contains(e.target)&&p(!1)};return document.addEventListener("mousedown",e),document.addEventListener("touchstart",e),document.addEventListener("focusin",e),function(){document.removeEventListener("mousedown",e),document.removeEventListener("touchstart",e),document.removeEventListener("focusin",e)}}),[l]),r.createElement("div",{ref:l,className:(0,o.A)("navbar__item","dropdown","dropdown--hoverable",{"dropdown--right":"right"===a,"dropdown--show":d})},r.createElement(ae,(0,s.A)({"aria-haspopup":"true","aria-expanded":d,role:"button",href:c.to?void 0:"#",className:(0,o.A)("navbar__link",i)},c,{onClick:c.to?void 0:function(e){return e.preventDefault()},onKeyDown:function(e){"Enter"===e.key&&(e.preventDefault(),p(!d))}}),null!=(t=c.children)?t:c.label),r.createElement("ul",{className:"dropdown__menu"},n.map((function(e,t){return r.createElement(He,(0,s.A)({isDropdownItem:!0,activeClassName:"dropdown__link--active"},e,{key:t}))}))))}function we(e){var t,n,a=e.items,i=e.className,l=(e.position,e.onClick),u=(0,x.A)(e,ge),d=(n=(0,me.A)().siteConfig.baseUrl,(0,c.zy)().pathname.replace(n,"/")),p=ve(a,d),f=(0,pe.u)({initialState:function(){return!p}}),m=f.collapsed,h=f.toggleCollapsed,g=f.setCollapsed;return(0,r.useEffect)((function(){p&&g(!p)}),[d,p,g]),r.createElement("li",{className:(0,o.A)("menu__list-item",{"menu__list-item--collapsed":m})},r.createElement(ae,(0,s.A)({role:"button",className:(0,o.A)("menu__link menu__link--sublist menu__link--sublist-caret",i)},u,{onClick:function(e){e.preventDefault(),h()}}),null!=(t=u.children)?t:u.label),r.createElement(pe.N,{lazy:!0,as:"ul",className:"menu__list",collapsed:m},a.map((function(e,t){return r.createElement(He,(0,s.A)({mobile:!0,isDropdownItem:!0,onClick:l,activeClassName:"menu__link--active"},e,{key:t}))}))))}function ke(e){var t=e.mobile,n=void 0!==t&&t,o=(0,x.A)(e,be),a=n?we:ye;return r.createElement(a,o)}var xe=n(32131),Ee=["width","height"];function _e(e){var t=e.width,n=void 0===t?20:t,o=e.height,a=void 0===o?20:o,i=(0,x.A)(e,Ee);return r.createElement("svg",(0,s.A)({viewBox:"0 0 24 24",width:n,height:a,"aria-hidden":!0},i),r.createElement("path",{fill:"currentColor",d:"M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"}))}const Se="iconLanguage_nlXk";var Ae=["mobile","dropdownItemsBefore","dropdownItemsAfter"];var Ce=n(66588),Te=n(689),qe=n.n(Te),Ne=["highlightState"];function Re(){var e,t=(0,c.zy)(),n=(0,c.W6)(),o=(0,me.A)().siteConfig.baseUrl,a=(0,r.useState)({wordToHighlight:"",isTitleSuggestion:!1,titleText:""}),i=a[0],s=a[1];return(0,r.useEffect)((function(){var e;if(null!=(e=t.state)&&e.highlightState&&0!==t.state.highlightState.wordToHighlight.length){s(t.state.highlightState);var r=t.state,o=(r.highlightState,(0,x.A)(r,Ne));n.replace(Object.assign({},t,{state:o}))}}),[null==(e=t.state)?void 0:e.highlightState,n,t]),(0,r.useEffect)((function(){var e;if(0!==i.wordToHighlight.length){var t=null!=(e=document.getElementsByTagName("article")[0])?e:document.getElementsByTagName("main")[0];if(t){var n=new(qe())(t),r={ignoreJoiners:!0};return n.mark(i.wordToHighlight,r),function(){return n.unmark(r)}}}}),[i,o]),null}const Oe=function(e){var t,a,i=(0,r.useRef)(!1),s=(0,r.useRef)(null),l=(0,r.useState)(!1),u=l[0],d=l[1],p=(0,c.W6)(),f=(0,me.A)().siteConfig,m=void 0===f?{}:f,h=(m.plugins||[]).find((function(e){return Array.isArray(e)&&"string"==typeof e[0]&&e[0].includes("docusaurus-lunr-search")})),g=(0,z.A)(),b=m.baseUrl,v=h&&(null==(t=h[1])?void 0:t.assetUrl)||b,y=(0,Ce.P_)("docusaurus-lunr-search"),w=function(){i.current||(Promise.all([fetch(""+v+y.fileNames.searchDoc).then((function(e){return e.json()})),fetch(""+v+y.fileNames.lunrIndex).then((function(e){return e.json()})),Promise.all([n.e(8591),n.e(8577)]).then(n.bind(n,15765)),Promise.all([n.e(1869),n.e(9278)]).then(n.bind(n,89278))]).then((function(e){var t=e[0],n=e[1],r=e[2].default,o=t.searchDocs,a=t.options;o&&0!==o.length&&(!function(e,t,n,r){new n({searchDocs:e,searchIndex:t,baseUrl:b,inputSelector:"#search_input_react",handleSelected:function(e,t,n){var o=n.url||"/";document.createElement("a").href=o,e.setVal(""),t.target.blur();var a="";if(r.highlightResult)try{var i=(n.text||n.subcategory||n.title).match(new RegExp("<span.+span>\\w*","g"));if(i&&i.length>0){var s=document.createElement("div");s.innerHTML=i[0],a=s.textContent}}catch(c){console.log(c)}p.push(o,{highlightState:{wordToHighlight:a}})},maxHits:r.maxHits})}(o,n,r,a),d(!0))})),i.current=!0)},k=(0,r.useCallback)((function(t){s.current.contains(t.target)||s.current.focus(),e.handleSearchBarToggle&&e.handleSearchBarToggle(!e.isSearchBarExpanded)}),[e.isSearchBarExpanded]);return g&&(w(),a=window.navigator.platform.startsWith("Mac")?"Search \u2318+K":"Search Ctrl+K"),r.createElement("div",{className:"navbar__search",key:"search-box"},r.createElement("span",{"aria-label":"expand searchbar",role:"button",className:(0,o.A)("search-icon",{"search-icon-hidden":e.isSearchBarExpanded}),onClick:k,onKeyDown:k,tabIndex:0}),r.createElement("input",{id:"search_input_react",type:"search",placeholder:u?a:"Loading...","aria-label":"Search",className:(0,o.A)("navbar__search-input",{"search-bar-expanded":e.isSearchBarExpanded},{"search-bar":!e.isSearchBarExpanded}),onClick:w,onMouseOver:w,onFocus:k,onBlur:k,ref:s,disabled:!u}),r.createElement(Re,null))},Le={searchBox:"searchBox_ZlJk"};function Pe(e){var t=e.children,n=e.className;return r.createElement("div",{className:(0,o.A)(n,Le.searchBox)},t)}var Ie=n(48295),De=n(76153),Me=["docId","label","docsPluginId"];var je=["sidebarId","label","docsPluginId"];var Fe=["label","to","docsPluginId"];var Be=n(55597),ze=["mobile","docsPluginId","dropdownActiveClassDisabled","dropdownItemsBefore","dropdownItemsAfter"],Ue=function(e){return e.docs.find((function(t){return t.id===e.mainDocId}))};const $e={default:de,localeDropdown:function(e){var t=e.mobile,n=e.dropdownItemsBefore,o=e.dropdownItemsAfter,a=(0,x.A)(e,Ae),i=(0,me.A)().i18n,u=i.currentLocale,d=i.locales,p=i.localeConfigs,f=(0,xe.o)(),m=(0,c.zy)(),h=m.search,g=m.hash,b=d.map((function(e){var n=""+("pathname://"+f.createUrl({locale:e,fullyQualified:!1}))+h+g;return{label:p[e].label,lang:p[e].htmlLang,to:n,target:"_self",autoAddBaseUrl:!1,className:e===u?t?"menu__link--active":"dropdown__link--active":""}})),v=[].concat(n,b,o),y=t?(0,l.T)({message:"Languages",id:"theme.navbar.mobileLanguageDropdown.label",description:"The label for the mobile language switcher dropdown"}):p[u].label;return r.createElement(ke,(0,s.A)({},a,{mobile:t,label:r.createElement(r.Fragment,null,r.createElement(_e,{className:Se}),y),items:v}))},search:function(e){var t=e.mobile,n=e.className;return t?null:r.createElement(Pe,{className:n},r.createElement(Oe,null))},dropdown:ke,html:function(e){var t=e.value,n=e.className,a=e.mobile,i=void 0!==a&&a,s=e.isDropdownItem,c=void 0!==s&&s,l=c?"li":"div";return r.createElement(l,{className:(0,o.A)({navbar__item:!i&&!c,"menu__list-item":i},n),dangerouslySetInnerHTML:{__html:t}})},doc:function(e){var t=e.docId,n=e.label,o=e.docsPluginId,a=(0,x.A)(e,Me),i=(0,Ie.zK)(o).activeDoc,c=(0,De.QB)(t,o);return null===c?null:r.createElement(de,(0,s.A)({exact:!0},a,{isActive:function(){return(null==i?void 0:i.path)===c.path||!(null==i||!i.sidebar)&&i.sidebar===c.sidebar},label:null!=n?n:c.id,to:c.path}))},docSidebar:function(e){var t=e.sidebarId,n=e.label,o=e.docsPluginId,a=(0,x.A)(e,je),i=(0,Ie.zK)(o).activeDoc,c=(0,De.fW)(t,o).link;if(!c)throw new Error('DocSidebarNavbarItem: Sidebar with ID "'+t+"\" doesn't have anything to be linked to.");return r.createElement(de,(0,s.A)({exact:!0},a,{isActive:function(){return(null==i?void 0:i.sidebar)===t},label:null!=n?n:c.label,to:c.path}))},docsVersion:function(e){var t=e.label,n=e.to,o=e.docsPluginId,a=(0,x.A)(e,Fe),i=(0,De.Vd)(o)[0],c=null!=t?t:i.label,l=null!=n?n:function(e){return e.docs.find((function(t){return t.id===e.mainDocId}))}(i).path;return r.createElement(de,(0,s.A)({},a,{label:c,to:l}))},docsVersionDropdown:function(e){var t=e.mobile,n=e.docsPluginId,o=e.dropdownActiveClassDisabled,a=e.dropdownItemsBefore,i=e.dropdownItemsAfter,u=(0,x.A)(e,ze),d=(0,c.zy)(),p=d.search,f=d.hash,m=(0,Ie.zK)(n),h=(0,Ie.jh)(n),g=(0,Be.g1)(n).savePreferredVersionName,b=h.map((function(e){var t,n=null!=(t=m.alternateDocVersions[e.name])?t:Ue(e);return{label:e.label,to:""+n.path+p+f,isActive:function(){return e===m.activeVersion},onClick:function(){return g(e.name)}}})),v=[].concat(a,b,i),y=(0,De.Vd)(n)[0],w=t&&v.length>1?(0,l.T)({id:"theme.navbar.mobileVersionsDropdown.label",message:"Versions",description:"The label for the navbar versions dropdown on mobile view"}):y.label,k=t&&v.length>1?void 0:Ue(y).path;return v.length<=1?r.createElement(de,(0,s.A)({},u,{mobile:t,label:w,to:k,isActive:o?function(){return!1}:void 0})):r.createElement(ke,(0,s.A)({},u,{mobile:t,label:w,to:k,items:v,isActive:o?function(){return!1}:void 0}))}};var Ge=["type"];function He(e){var t=e.type,n=(0,x.A)(e,Ge),o=function(e,t){return e&&"default"!==e?e:"items"in t?"dropdown":"default"}(t,n),a=$e[o];if(!a)throw new Error('No NavbarItem component found for type "'+t+'".');return r.createElement(a,n)}function We(){var e=(0,R.M)(),t=(0,w.p)().navbar.items;return r.createElement("ul",{className:"menu__list"},t.map((function(t,n){return r.createElement(He,(0,s.A)({mobile:!0},t,{onClick:function(){return e.toggle()},key:n}))})))}function Ve(e){return r.createElement("button",(0,s.A)({},e,{type:"button",className:"clean-btn navbar-sidebar__back"}),r.createElement(l.A,{id:"theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel",description:"The label of the back button to return to main menu, inside the mobile navbar sidebar secondary menu (notably used to display the docs sidebar)"},"\u2190 Back to main menu"))}function Ke(){var e=0===(0,w.p)().navbar.items.length,t=j();return r.createElement(r.Fragment,null,!e&&r.createElement(Ve,{onClick:function(){return t.hide()}}),t.content)}function Ye(){var e,t=(0,R.M)();return void 0===(e=t.shown)&&(e=!0),(0,r.useEffect)((function(){return document.body.style.overflow=e?"hidden":"visible",function(){document.body.style.overflow="visible"}}),[e]),t.shouldRender?r.createElement(F,{header:r.createElement(J,null),primaryMenu:r.createElement(We,null),secondaryMenu:r.createElement(Ke,null)}):null}const Qe={navbarHideable:"navbarHideable_m1mJ",navbarHidden:"navbarHidden_jGov"};function Xe(e){return r.createElement("div",(0,s.A)({role:"presentation"},e,{className:(0,o.A)("navbar-sidebar__backdrop",e.className)}))}function Je(e){var t=e.children,n=(0,w.p)().navbar,a=n.hideOnScroll,i=n.style,s=(0,R.M)(),c=function(e){var t=(0,r.useState)(e),n=t[0],o=t[1],a=(0,r.useRef)(!1),i=(0,r.useRef)(0),s=(0,r.useCallback)((function(e){null!==e&&(i.current=e.getBoundingClientRect().height)}),[]);return(0,O.Mq)((function(t,n){var r=t.scrollY;if(e)if(r<i.current)o(!0);else if(a.current)a.current=!1;else{var s=null==n?void 0:n.scrollY,c=document.documentElement.scrollHeight-i.current,l=window.innerHeight;s&&r>=s?o(!1):r+l<c&&o(!0)}})),(0,u.$)((function(t){if(e){var n=t.location.hash;if(n?document.getElementById(n.substring(1)):void 0)return a.current=!0,void o(!1);o(!0)}})),{navbarRef:s,isNavbarVisible:n}}(a),d=c.navbarRef,p=c.isNavbarVisible;return r.createElement("nav",{ref:d,"aria-label":(0,l.T)({id:"theme.NavBar.navAriaLabel",message:"Main",description:"The ARIA label for the main navigation"}),className:(0,o.A)("navbar","navbar--fixed-top",a&&[Qe.navbarHideable,!p&&Qe.navbarHidden],{"navbar--dark":"dark"===i,"navbar--primary":"primary"===i,"navbar-sidebar--show":s.shown})},t,r.createElement(Xe,{onClick:s.toggle}),r.createElement(Ye,null))}var Ze=n(77387),et=n(70440);const tt={errorBoundaryError:"errorBoundaryError_a6uf"};function nt(e){return r.createElement("button",(0,s.A)({type:"button"},e),r.createElement(l.A,{id:"theme.ErrorPageContent.tryAgain",description:"The label of the button to try again rendering when the React error boundary captures an error"},"Try again"))}function rt(e){var t=e.error,n=(0,et.getErrorCausalChain)(t).map((function(e){return e.message})).join("\n\nCause:\n");return r.createElement("p",{className:tt.errorBoundaryError},n)}var ot=function(e){function t(){return e.apply(this,arguments)||this}(0,Ze.A)(t,e);var n=t.prototype;return n.componentDidCatch=function(e,t){throw this.props.onError(e,t)},n.render=function(){return this.props.children},t}(r.Component),at="right";var it=["width","height","className"];function st(e){var t=e.width,n=void 0===t?30:t,o=e.height,a=void 0===o?30:o,i=e.className,c=(0,x.A)(e,it);return r.createElement("svg",(0,s.A)({className:i,width:n,height:a,viewBox:"0 0 30 30","aria-hidden":"true"},c),r.createElement("path",{stroke:"currentColor",strokeLinecap:"round",strokeMiterlimit:"10",strokeWidth:"2",d:"M4 7h22M4 15h22M4 23h22"}))}function ct(){var e=(0,R.M)(),t=e.toggle,n=e.shown;return r.createElement("button",{onClick:t,"aria-label":(0,l.T)({id:"theme.docs.sidebar.toggleSidebarButtonAriaLabel",message:"Toggle navigation bar",description:"The ARIA label for hamburger menu button of mobile navigation"}),"aria-expanded":n,className:"navbar__toggle clean-btn",type:"button"},r.createElement(st,null))}const lt={colorModeToggle:"colorModeToggle_DEke"};function ut(e){var t=e.items;return r.createElement(r.Fragment,null,t.map((function(e,t){return r.createElement(ot,{key:t,onError:function(t){return new Error("A theme navbar item failed to render.\nPlease double-check the following navbar item (themeConfig.navbar.items) of your Docusaurus config:\n"+JSON.stringify(e,null,2),{cause:t})}},r.createElement(He,e))})))}function dt(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 pt(){var e=(0,R.M)(),t=(0,w.p)().navbar.items,n=function(e){function t(e){var t;return"left"===(null!=(t=e.position)?t:at)}return[e.filter(t),e.filter((function(e){return!t(e)}))]}(t),o=n[0],a=n[1],i=t.find((function(e){return"search"===e.type}));return r.createElement(dt,{left:r.createElement(r.Fragment,null,!e.disabled&&r.createElement(ct,null),r.createElement(Q,null),r.createElement(ut,{items:o})),right:r.createElement(r.Fragment,null,r.createElement(ut,{items:a}),r.createElement(K,{className:lt.colorModeToggle}),!i&&r.createElement(Pe,null,r.createElement(Oe,null)))})}function ft(){return r.createElement(Je,null,r.createElement(pt,null))}var mt=["to","href","label","prependBaseUrlToHref"];function ht(e){var t=e.item,n=t.to,o=t.href,a=t.label,i=t.prependBaseUrlToHref,c=(0,x.A)(t,mt),l=(0,ee.A)(n),u=(0,ee.A)(o,{forcePrependBaseUrl:!0});return r.createElement(Z.A,(0,s.A)({className:"footer__link-item"},o?{href:i?u:o}:{to:l},c),a,o&&!(0,te.A)(o)&&r.createElement(re.A,null))}function gt(e){var t,n=e.item;return n.html?r.createElement("li",{className:"footer__item",dangerouslySetInnerHTML:{__html:n.html}}):r.createElement("li",{key:null!=(t=n.href)?t:n.to,className:"footer__item"},r.createElement(ht,{item:n}))}function bt(e){var t=e.column;return r.createElement("div",{className:"col footer__col"},r.createElement("div",{className:"footer__title"},t.title),r.createElement("ul",{className:"footer__items clean-list"},t.items.map((function(e,t){return r.createElement(gt,{key:t,item:e})}))))}function vt(e){var t=e.columns;return r.createElement("div",{className:"row footer__links"},t.map((function(e,t){return r.createElement(bt,{key:t,column:e})})))}function yt(){return r.createElement("span",{className:"footer__link-separator"},"\xb7")}function wt(e){var t=e.item;return t.html?r.createElement("span",{className:"footer__link-item",dangerouslySetInnerHTML:{__html:t.html}}):r.createElement(ht,{item:t})}function kt(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(wt,{item:e}),t.length!==n+1&&r.createElement(yt,null))}))))}function xt(e){var t=e.links;return function(e){return"title"in e[0]}(t)?r.createElement(vt,{columns:t}):r.createElement(kt,{links:t})}var Et=n(41653);const _t={footerLogoLink:"footerLogoLink_BH7S"};function St(e){var t,n=e.logo,a=(0,ee.h)().withBaseUrl,i={light:a(n.src),dark:a(null!=(t=n.srcDark)?t:n.src)};return r.createElement(Et.A,{className:(0,o.A)("footer__logo",n.className),alt:n.alt,sources:i,width:n.width,height:n.height,style:n.style})}function At(e){var t=e.logo;return t.href?r.createElement(Z.A,{href:t.href,className:_t.footerLogoLink,target:t.target},r.createElement(St,{logo:t})):r.createElement(St,{logo:t})}function Ct(e){var t=e.copyright;return r.createElement("div",{className:"footer__copyright",dangerouslySetInnerHTML:{__html:t}})}function Tt(e){var t=e.style,n=e.links,a=e.logo,i=e.copyright;return r.createElement("footer",{className:(0,o.A)("footer",{"footer--dark":"dark"===t})},r.createElement("div",{className:"container container-fluid"},n,(a||i)&&r.createElement("div",{className:"footer__bottom text--center"},a&&r.createElement("div",{className:"margin-bottom--sm"},a),i)))}function qt(){var e=(0,w.p)().footer;if(!e)return null;var t=e.copyright,n=e.links,o=e.logo,a=e.style;return r.createElement(Tt,{style:a,links:n&&n.length>0&&r.createElement(xt,{links:n}),logo:o&&r.createElement(At,{logo:o}),copyright:t&&r.createElement(Ct,{copyright:t})})}const Nt=r.memo(qt);var Rt=(0,L.fM)([B.a,k.oq,O.Tv,Be.VQ,i.Jx,function(e){var t=e.children;return r.createElement(P.y_,null,r.createElement(R.e,null,r.createElement(D,null,t)))}]);function Ot(e){var t=e.children;return r.createElement(Rt,null,t)}function Lt(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.A,{id:"theme.ErrorPageContent.title",description:"The title of the fallback page when the page crashed"},"This page crashed.")),r.createElement("div",{className:"margin-vert--lg"},r.createElement(nt,{onClick:n,className:"button button--primary shadow--lw"})),r.createElement("hr",null),r.createElement("div",{className:"margin-vert--md"},r.createElement(rt,{error:t})))))}const Pt={mainWrapper:"mainWrapper_z2l0"};function It(e){var t=e.children,n=e.noFooter,s=e.wrapperClassName,c=e.title,l=e.description;return(0,b.J)(),r.createElement(Ot,null,r.createElement(i.be,{title:c,description:l}),r.createElement(y,null),r.createElement(N,null),r.createElement(ft,null),r.createElement("div",{id:d,className:(0,o.A)(g.G.wrapper.main,Pt.mainWrapper,s)},r.createElement(a.A,{fallback:function(e){return r.createElement(Lt,e)}},t)),!n&&r.createElement(Nt,null))}},23465:(e,t,n)=>{"use strict";n.d(t,{A:()=>f});var r=n(58168),o=n(98587),a=n(96540),i=n(75489),s=n(86025),c=n(44586),l=n(6342),u=n(41653),d=["imageClassName","titleClassName"];function p(e){var t=e.logo,n=e.alt,r=e.imageClassName,o={light:(0,s.A)(t.src),dark:(0,s.A)(t.srcDark||t.src)},i=a.createElement(u.A,{className:t.className,sources:o,height:t.height,width:t.width,alt:n,style:t.style});return r?a.createElement("div",{className:r},i):i}function f(e){var t,n=(0,c.A)().siteConfig.title,u=(0,l.p)().navbar,f=u.title,m=u.logo,h=e.imageClassName,g=e.titleClassName,b=(0,o.A)(e,d),v=(0,s.A)((null==m?void 0:m.href)||"/"),y=f?"":n,w=null!=(t=null==m?void 0:m.alt)?t:y;return a.createElement(i.A,(0,r.A)({to:v},b,(null==m?void 0:m.target)&&{target:m.target}),m&&a.createElement(p,{logo:m,alt:w,imageClassName:h}),null!=f&&a.createElement("b",{className:g},f))}},41463:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});var r=n(96540),o=n(5260);function a(e){var t=e.locale,n=e.version,a=e.tag,i=t;return r.createElement(o.A,null,t&&r.createElement("meta",{name:"docusaurus_locale",content:t}),n&&r.createElement("meta",{name:"docusaurus_version",content:n}),a&&r.createElement("meta",{name:"docusaurus_tag",content:a}),i&&r.createElement("meta",{name:"docsearch:language",content:i}),n&&r.createElement("meta",{name:"docsearch:version",content:n}),a&&r.createElement("meta",{name:"docsearch:docusaurus_tag",content:a}))}},41653:(e,t,n)=>{"use strict";n.d(t,{A:()=>d});var r=n(58168),o=n(98587),a=n(96540),i=n(20053),s=n(92303),c=n(95293);const l={themedImage:"themedImage_ToTc","themedImage--light":"themedImage--light_HNdA","themedImage--dark":"themedImage--dark_i4oU"};var u=["sources","className","alt"];function d(e){var t=(0,s.A)(),n=(0,c.G)().colorMode,d=e.sources,p=e.className,f=e.alt,m=(0,o.A)(e,u),h=t?"dark"===n?["dark"]:["light"]:["light","dark"];return a.createElement(a.Fragment,null,h.map((function(e){return a.createElement("img",(0,r.A)({key:e,src:d[e],alt:f,className:(0,i.A)(l.themedImage,l["themedImage--"+e],p)},m))})))}},41422:(e,t,n)=>{"use strict";n.d(t,{N:()=>y,u:()=>d});var r=n(58168),o=n(98587),a=n(96540),i=n(38193),s=n(53109),c=["collapsed"],l=["lazy"],u="ease-in-out";function d(e){var t=e.initialState,n=(0,a.useState)(null!=t&&t),r=n[0],o=n[1],i=(0,a.useCallback)((function(){o((function(e){return!e}))}),[]);return{collapsed:r,setCollapsed:o,toggleCollapsed:i}}var p={display:"none",overflow:"hidden",height:"0px"},f={display:"block",overflow:"visible",height:"auto"};function m(e,t){var n=t?p:f;e.style.display=n.display,e.style.overflow=n.overflow,e.style.height=n.height}function h(e){var t=e.collapsibleRef,n=e.collapsed,r=e.animation,o=(0,a.useRef)(!1);(0,a.useEffect)((function(){var e,a=t.current;function i(){var e,t,n=a.scrollHeight,o=null!=(e=null==r?void 0:r.duration)?e:function(e){if((0,s.O)())return 1;var t=e/36;return Math.round(10*(4+15*Math.pow(t,.25)+t/5))}(n);return{transition:"height "+o+"ms "+(null!=(t=null==r?void 0:r.easing)?t:u),height:n+"px"}}function c(){var e=i();a.style.transition=e.transition,a.style.height=e.height}if(!o.current)return m(a,n),void(o.current=!0);return a.style.willChange="height",e=requestAnimationFrame((function(){n?(c(),requestAnimationFrame((function(){a.style.height=p.height,a.style.overflow=p.overflow}))):(a.style.display="block",requestAnimationFrame((function(){c()})))})),function(){return cancelAnimationFrame(e)}}),[t,n,r])}function g(e){if(!i.A.canUseDOM)return e?p:f}function b(e){var t=e.as,n=void 0===t?"div":t,r=e.collapsed,o=e.children,i=e.animation,s=e.onCollapseTransitionEnd,c=e.className,l=e.disableSSRStyle,u=(0,a.useRef)(null);return h({collapsibleRef:u,collapsed:r,animation:i}),a.createElement(n,{ref:u,style:l?void 0:g(r),onTransitionEnd:function(e){"height"===e.propertyName&&(m(u.current,r),null==s||s(r))},className:c},o)}function v(e){var t=e.collapsed,n=(0,o.A)(e,c),i=(0,a.useState)(!t),s=i[0],l=i[1],u=(0,a.useState)(t),d=u[0],p=u[1];return(0,a.useLayoutEffect)((function(){t||l(!0)}),[t]),(0,a.useLayoutEffect)((function(){s&&p(t)}),[s,t]),s?a.createElement(b,(0,r.A)({},n,{collapsed:d})):null}function y(e){var t=e.lazy,n=(0,o.A)(e,l),r=t?v:b;return a.createElement(r,n)}},65041:(e,t,n)=>{"use strict";n.d(t,{Mj:()=>m,oq:()=>f});var r=n(96540),o=n(92303),a=n(89466),i=n(43807),s=n(6342),c=(0,a.Wf)("docusaurus.announcement.dismiss"),l=(0,a.Wf)("docusaurus.announcement.id"),u=function(){return"true"===c.get()},d=function(e){return c.set(String(e))},p=r.createContext(null);function f(e){var t=e.children,n=function(){var e=(0,s.p)().announcementBar,t=(0,o.A)(),n=(0,r.useState)((function(){return!!t&&u()})),a=n[0],i=n[1];(0,r.useEffect)((function(){i(u())}),[]);var c=(0,r.useCallback)((function(){d(!0),i(!0)}),[]);return(0,r.useEffect)((function(){if(e){var t=e.id,n=l.get();"annoucement-bar"===n&&(n="announcement-bar");var r=t!==n;l.set(t),r&&d(!1),!r&&u()||i(!1)}}),[e]),(0,r.useMemo)((function(){return{isActive:!!e&&!a,close:c}}),[e,a,c])}();return r.createElement(p.Provider,{value:n},t)}function m(){var e=(0,r.useContext)(p);if(!e)throw new i.dV("AnnouncementBarProvider");return e}},95293:(e,t,n)=>{"use strict";n.d(t,{G:()=>g,a:()=>h});var r=n(96540),o=n(38193),a=n(43807),i=n(89466),s=n(6342),c=r.createContext(void 0),l="theme",u=(0,i.Wf)(l),d={light:"light",dark:"dark"},p=function(e){return e===d.dark?d.dark:d.light},f=function(e){return o.A.canUseDOM?p(document.documentElement.getAttribute("data-theme")):p(e)},m=function(e){u.set(p(e))};function h(e){var t=e.children,n=function(){var e=(0,s.p)().colorMode,t=e.defaultMode,n=e.disableSwitch,o=e.respectPrefersColorScheme,a=(0,r.useState)(f(t)),i=a[0],c=a[1];(0,r.useEffect)((function(){n&&u.del()}),[n]);var h=(0,r.useCallback)((function(e,n){void 0===n&&(n={});var r=n.persist,a=void 0===r||r;e?(c(e),a&&m(e)):(c(o?window.matchMedia("(prefers-color-scheme: dark)").matches?d.dark:d.light:t),u.del())}),[o,t]);(0,r.useEffect)((function(){document.documentElement.setAttribute("data-theme",p(i))}),[i]),(0,r.useEffect)((function(){if(!n){var e=function(e){if(e.key===l){var t=u.get();null!==t&&h(p(t))}};return window.addEventListener("storage",e),function(){return window.removeEventListener("storage",e)}}}),[n,h]);var g=(0,r.useRef)(!1);return(0,r.useEffect)((function(){if(!n||o){var e=window.matchMedia("(prefers-color-scheme: dark)"),t=function(){window.matchMedia("print").matches||g.current?g.current=window.matchMedia("print").matches:h(null)};return e.addListener(t),function(){return e.removeListener(t)}}}),[h,n,o]),(0,r.useMemo)((function(){return{colorMode:i,setColorMode:h,get isDarkTheme(){return i===d.dark},setLightTheme:function(){h(d.light)},setDarkTheme:function(){h(d.dark)}}}),[i,h])}();return r.createElement(c.Provider,{value:n},t)}function g(){var e=(0,r.useContext)(c);if(null==e)throw new a.dV("ColorModeProvider","Please see https://docusaurus.io/docs/api/themes/configuration#use-color-mode.");return e}},55597:(e,t,n)=>{"use strict";n.d(t,{VQ:()=>g,g1:()=>v});var r=n(96540),o=n(48295),a=n(17065),i=n(6342),s=n(76153),c=n(43807),l=n(89466),u=function(e){return"docs-preferred-version-"+e},d={save:function(e,t,n){(0,l.Wf)(u(e),{persistence:t}).set(n)},read:function(e,t){return(0,l.Wf)(u(e),{persistence:t}).get()},clear:function(e,t){(0,l.Wf)(u(e),{persistence:t}).del()}},p=function(e){return Object.fromEntries(e.map((function(e){return[e,{preferredVersionName:null}]})))};var f=r.createContext(null);function m(){var e=(0,o.Gy)(),t=(0,i.p)().docs.versionPersistence,n=(0,r.useMemo)((function(){return Object.keys(e)}),[e]),a=(0,r.useState)((function(){return p(n)})),s=a[0],c=a[1];return(0,r.useEffect)((function(){c(function(e){var t=e.pluginIds,n=e.versionPersistence,r=e.allDocsData;return Object.fromEntries(t.map((function(e){return[e,(t=e,o=d.read(t,n),r[t].versions.some((function(e){return e.name===o}))?{preferredVersionName:o}:(d.clear(t,n),{preferredVersionName:null}))];var t,o})))}({allDocsData:e,versionPersistence:t,pluginIds:n}))}),[e,t,n]),[s,(0,r.useMemo)((function(){return{savePreferredVersion:function(e,n){d.save(e,t,n),c((function(t){var r;return Object.assign({},t,((r={})[e]={preferredVersionName:n},r))}))}}}),[t])]}function h(e){var t=e.children,n=m();return r.createElement(f.Provider,{value:n},t)}function g(e){var t=e.children;return s.C5?r.createElement(h,null,t):r.createElement(r.Fragment,null,t)}function b(){var e=(0,r.useContext)(f);if(!e)throw new c.dV("DocsPreferredVersionContextProvider");return e}function v(e){var t;void 0===e&&(e=a.W);var n=(0,o.ht)(e),i=b(),s=i[0],c=i[1],l=s[e].preferredVersionName;return{preferredVersion:null!=(t=n.versions.find((function(e){return e.name===l})))?t:null,savePreferredVersionName:(0,r.useCallback)((function(t){c.savePreferredVersion(e,t)}),[c,e])}}},26588:(e,t,n)=>{"use strict";n.d(t,{V:()=>s,t:()=>c});var r=n(96540),o=n(43807),a=Symbol("EmptyContext"),i=r.createContext(a);function s(e){var t=e.children,n=e.name,o=e.items,a=(0,r.useMemo)((function(){return n&&o?{name:n,items:o}:null}),[n,o]);return r.createElement(i.Provider,{value:a},t)}function c(){var e=(0,r.useContext)(i);if(e===a)throw new o.dV("DocsSidebarProvider");return e}},22069:(e,t,n)=>{"use strict";n.d(t,{M:()=>p,e:()=>d});var r=n(96540),o=n(75600),a=n(24581),i=n(57485),s=n(6342),c=n(43807),l=r.createContext(void 0);function u(){var e,t=(e=(0,o.YL)(),0===(0,s.p)().navbar.items.length&&!e.component),n=(0,a.l)(),c=!t&&"mobile"===n,l=(0,r.useState)(!1),u=l[0],d=l[1];(0,i.$Z)((function(){if(u)return d(!1),!1}));var p=(0,r.useCallback)((function(){d((function(e){return!e}))}),[]);return(0,r.useEffect)((function(){"desktop"===n&&d(!1)}),[n]),(0,r.useMemo)((function(){return{disabled:t,shouldRender:c,toggle:p,shown:u}}),[t,c,p,u])}function d(e){var t=e.children,n=u();return r.createElement(l.Provider,{value:n},t)}function p(){var e=r.useContext(l);if(void 0===e)throw new c.dV("NavbarMobileSidebarProvider");return e}},75600:(e,t,n)=>{"use strict";n.d(t,{GX:()=>c,YL:()=>s,y_:()=>i});var r=n(96540),o=n(43807),a=r.createContext(null);function i(e){var t=e.children,n=(0,r.useState)({component:null,props:null});return r.createElement(a.Provider,{value:n},t)}function s(){var e=(0,r.useContext)(a);if(!e)throw new o.dV("NavbarSecondaryMenuContentProvider");return e[0]}function c(e){var t=e.component,n=e.props,i=(0,r.useContext)(a);if(!i)throw new o.dV("NavbarSecondaryMenuContentProvider");var s=i[1],c=(0,o.Be)(n);return(0,r.useEffect)((function(){s({component:t,props:c})}),[s,t,c]),(0,r.useEffect)((function(){return function(){return s({component:null,props:null})}}),[s]),null}},14090:(e,t,n)=>{"use strict";n.d(t,{w:()=>o,J:()=>a});var r=n(96540),o="navigation-with-keyboard";function a(){(0,r.useEffect)((function(){function e(e){"keydown"===e.type&&"Tab"===e.key&&document.body.classList.add(o),"mousedown"===e.type&&document.body.classList.remove(o)}return document.addEventListener("keydown",e),document.addEventListener("mousedown",e),function(){document.body.classList.remove(o),document.removeEventListener("keydown",e),document.removeEventListener("mousedown",e)}}),[])}},24581:(e,t,n)=>{"use strict";n.d(t,{l:()=>l});var r=n(96540),o=n(38193),a={desktop:"desktop",mobile:"mobile",ssr:"ssr"},i=996;function s(){return o.A.canUseDOM?window.innerWidth>i?a.desktop:a.mobile:a.ssr}var c=!1;function l(){var e=(0,r.useState)((function(){return c?"ssr":s()})),t=e[0],n=e[1];return(0,r.useEffect)((function(){function e(){n(s())}var t=c?window.setTimeout(e,1e3):void 0;return window.addEventListener("resize",e),function(){window.removeEventListener("resize",e),clearTimeout(t)}}),[]),t}},17559:(e,t,n)=>{"use strict";n.d(t,{G:()=>r});var r={page:{blogListPage:"blog-list-page",blogPostPage:"blog-post-page",blogTagsListPage:"blog-tags-list-page",blogTagPostListPage:"blog-tags-post-list-page",docsDocPage:"docs-doc-page",docsTagsListPage:"docs-tags-list-page",docsTagDocListPage:"docs-tags-doc-list-page",mdxPage:"mdx-page"},wrapper:{main:"main-wrapper",blogPages:"blog-wrapper",docsPages:"docs-wrapper",mdxPages:"mdx-wrapper"},common:{editThisPage:"theme-edit-this-page",lastUpdated:"theme-last-updated",backToTopButton:"theme-back-to-top-button",codeBlock:"theme-code-block",admonition:"theme-admonition",admonitionType:function(e){return"theme-admonition-"+e}},layout:{},docs:{docVersionBanner:"theme-doc-version-banner",docVersionBadge:"theme-doc-version-badge",docBreadcrumbs:"theme-doc-breadcrumbs",docMarkdown:"theme-doc-markdown",docTocMobile:"theme-doc-toc-mobile",docTocDesktop:"theme-doc-toc-desktop",docFooter:"theme-doc-footer",docFooterTagsRow:"theme-doc-footer-tags-row",docFooterEditMetaRow:"theme-doc-footer-edit-meta-row",docSidebarContainer:"theme-doc-sidebar-container",docSidebarMenu:"theme-doc-sidebar-menu",docSidebarItemCategory:"theme-doc-sidebar-item-category",docSidebarItemLink:"theme-doc-sidebar-item-link",docSidebarItemCategoryLevel:function(e){return"theme-doc-sidebar-item-category-level-"+e},docSidebarItemLinkLevel:function(e){return"theme-doc-sidebar-item-link-level-"+e}},blog:{}}},53109:(e,t,n)=>{"use strict";function r(){return window.matchMedia("(prefers-reduced-motion: reduce)").matches}n.d(t,{O:()=>r})},76153:(e,t,n)=>{"use strict";function r(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function o(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(n)return(n=n.call(e)).next.bind(n);if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return r(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?r(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var o=0;return function(){return o>=e.length?{done:!0}:{done:!1,value:e[o++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}n.d(t,{_o:()=>m,w8:()=>b,C5:()=>f,mz:()=>E,Vd:()=>w,QB:()=>x,fW:()=>k,OF:()=>y});var a=n(96540),i=n(56347),s=n(22831),c=n(48295),l=n(55597),u=n(26588),d=n(31682),p=n(99169),f=!!c.Gy;function m(e){if(e.href)return e.href;for(var t,n=o(e.items);!(t=n()).done;){var r=t.value;if("link"===r.type)return r.href;if("category"===r.type){var a=m(r);if(a)return a}}}var h=function(e,t){return void 0!==e&&(0,p.ys)(e,t)},g=function(e,t){return e.some((function(e){return b(e,t)}))};function b(e,t){return"link"===e.type?h(e.href,t):"category"===e.type&&(h(e.href,t)||g(e.items,t))}function v(e){var t=e.sidebarItems,n=e.pathname,r=e.onlyCategories,a=void 0!==r&&r,i=[];return function e(t){for(var r,s=o(t);!(r=s()).done;){var c=r.value;if("category"===c.type&&((0,p.ys)(c.href,n)||e(c.items))||"link"===c.type&&(0,p.ys)(c.href,n))return a&&"category"!==c.type||i.unshift(c),!0}return!1}(t),i}function y(){var e,t=(0,u.t)(),n=(0,i.zy)().pathname;return!1!==(null==(e=(0,c.vT)())?void 0:e.pluginData.breadcrumbs)&&t?v({sidebarItems:t.items,pathname:n}):null}function w(e){var t=(0,c.zK)(e).activeVersion,n=(0,l.g1)(e).preferredVersion,r=(0,c.r7)(e);return(0,a.useMemo)((function(){return(0,d.s)([t,n,r].filter(Boolean))}),[t,n,r])}function k(e,t){var n=w(t);return(0,a.useMemo)((function(){var t=n.flatMap((function(e){return e.sidebars?Object.entries(e.sidebars):[]})),r=t.find((function(t){return t[0]===e}));if(!r)throw new Error("Can't find any sidebar with id \""+e+'" in version'+(n.length>1?"s":"")+" "+n.map((function(e){return e.name})).join(", ")+'".\nAvailable sidebar ids are:\n- '+t.map((function(e){return e[0]})).join("\n- "));return r[1]}),[e,n])}function x(e,t){var n=w(t);return(0,a.useMemo)((function(){var t=n.flatMap((function(e){return e.docs})),r=t.find((function(t){return t.id===e}));if(!r){if(n.flatMap((function(e){return e.draftIds})).includes(e))return null;throw new Error("Couldn't find any doc with id \""+e+'" in version'+(n.length>1?"s":"")+' "'+n.map((function(e){return e.name})).join(", ")+'".\nAvailable doc ids are:\n- '+(0,d.s)(t.map((function(e){return e.id}))).join("\n- "))}return r}),[e,n])}function E(e){var t=e.route,n=e.versionMetadata,r=(0,i.zy)(),o=t.routes,a=o.find((function(e){return(0,i.B6)(r.pathname,e)}));if(!a)return null;var c=a.sidebar,l=c?n.docsSidebars[c]:void 0;return{docElement:(0,s.v)(o),sidebarName:c,sidebarItems:l}}},57485:(e,t,n)=>{"use strict";n.d(t,{$Z:()=>s,aZ:()=>c});var r=n(96540),o=n(56347),a=n(19888),i=n(43807);function s(e){!function(e){var t=(0,o.W6)(),n=(0,i._q)(e);(0,r.useEffect)((function(){return t.block((function(e,t){return n(e,t)}))}),[t,n])}((function(t,n){if("POP"===n)return e(t,n)}))}function c(e){return t=function(t){return null===e?null:new URLSearchParams(t.location.search).get(e)},n=(0,o.W6)(),(0,a.useSyncExternalStore)(n.listen,(function(){return t(n)}),(function(){return t(n)}));var t,n}},31682:(e,t,n)=>{"use strict";function r(e,t){return void 0===t&&(t=function(e,t){return e===t}),e.filter((function(n,r){return e.findIndex((function(e){return t(e,n)}))!==r}))}function o(e){return Array.from(new Set(e))}n.d(t,{X:()=>r,s:()=>o})},1003:(e,t,n)=>{"use strict";n.d(t,{e3:()=>p,be:()=>u,Jx:()=>f});var r=n(96540),o=n(20053),a=n(5260),i=n(53102);function s(){var e=r.useContext(i.o);if(!e)throw new Error("Unexpected: no Docusaurus route context found");return e}var c=n(86025),l=n(44586);function u(e){var t=e.title,n=e.description,o=e.keywords,i=e.image,s=e.children,u=function(e){var t=(0,l.A)().siteConfig,n=t.title,r=t.titleDelimiter;return null!=e&&e.trim().length?e.trim()+" "+r+" "+n:n}(t),d=(0,c.h)().withBaseUrl,p=i?d(i,{absolute:!0}):void 0;return r.createElement(a.A,null,t&&r.createElement("title",null,u),t&&r.createElement("meta",{property:"og:title",content:u}),n&&r.createElement("meta",{name:"description",content:n}),n&&r.createElement("meta",{property:"og:description",content:n}),o&&r.createElement("meta",{name:"keywords",content:Array.isArray(o)?o.join(","):o}),p&&r.createElement("meta",{property:"og:image",content:p}),p&&r.createElement("meta",{name:"twitter:image",content:p}),s)}var d=r.createContext(void 0);function p(e){var t=e.className,n=e.children,i=r.useContext(d),s=(0,o.A)(i,t);return r.createElement(d.Provider,{value:s},r.createElement(a.A,null,r.createElement("html",{className:s})),n)}function f(e){var t=e.children,n=s(),a="plugin-"+n.plugin.name.replace(/docusaurus-(?:plugin|theme)-(?:content-)?/gi,""),i="plugin-id-"+n.plugin.id;return r.createElement(p,{className:(0,o.A)(a,i)},t)}},43807:(e,t,n)=>{"use strict";n.d(t,{dV:()=>f,fM:()=>h,_q:()=>d,ZC:()=>p,Be:()=>m});var r=n(8634),o=n(77387);function a(e){return a=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},a(e)}var i=n(63662);function s(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(s=function(){return!!e})()}function c(e){var t="function"==typeof Map?new Map:void 0;return c=function(e){if(null===e||!function(e){try{return-1!==Function.toString.call(e).indexOf("[native code]")}catch(t){return"function"==typeof e}}(e))return e;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,n)}function n(){return function(e,t,n){if(s())return Reflect.construct.apply(null,arguments);var r=[null];r.push.apply(r,t);var o=new(e.bind.apply(e,r));return n&&(0,i.A)(o,n.prototype),o}(e,arguments,a(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),(0,i.A)(n,e)},c(e)}var l=n(96540),u=n(38193).A.canUseDOM?l.useLayoutEffect:l.useEffect;function d(e){var t=(0,l.useRef)(e);return u((function(){t.current=e}),[e]),(0,l.useCallback)((function(){return t.current.apply(t,arguments)}),[])}function p(e){var t=(0,l.useRef)();return u((function(){t.current=e})),t.current}var f=function(e){function t(t,n){var o,a,i;return(i=e.call(this)||this).name="ReactContextError",i.message="Hook "+(null!=(o=null==(a=i.stack)||null==(a=a.split("\n")[1])||null==(a=a.match((0,r.A)(/at (?:\w+\.)?(\w+)/,{name:1})))?void 0:a.groups.name)?o:"")+" is called outside the <"+t+">. "+(null!=n?n:""),i}return(0,o.A)(t,e),t}(c(Error));function m(e){var t=Object.entries(e);return t.sort((function(e,t){return e[0].localeCompare(t[0])})),(0,l.useMemo)((function(){return e}),t.flat())}function h(e){return function(t){var n=t.children;return l.createElement(l.Fragment,null,e.reduceRight((function(e,t){return l.createElement(t,null,e)}),n))}}},99169:(e,t,n)=>{"use strict";n.d(t,{Dt:()=>s,ys:()=>i});var r=n(96540),o=n(35947),a=n(44586);function i(e,t){var n=function(e){var t;return null==(t=!e||e.endsWith("/")?e:e+"/")?void 0:t.toLowerCase()};return n(e)===n(t)}function s(){var e=(0,a.A)().siteConfig.baseUrl;return(0,r.useMemo)((function(){return function(e){var t=e.baseUrl;function n(e){return e.path===t&&!0===e.exact}function r(e){return e.path===t&&!e.exact}return function e(t){if(0!==t.length)return t.find(n)||e(t.filter(r).flatMap((function(e){var t;return null!=(t=e.routes)?t:[]})))}(e.routes)}({routes:o.A,baseUrl:e})}),[e])}},23104:(e,t,n)=>{"use strict";n.d(t,{Mq:()=>d,Tv:()=>c,a_:()=>p,gk:()=>f});var r=n(96540),o=n(38193),a=n(92303),i=n(43807);var s=r.createContext(void 0);function c(e){var t,n=e.children,o=(t=(0,r.useRef)(!0),(0,r.useMemo)((function(){return{scrollEventsEnabledRef:t,enableScrollEvents:function(){t.current=!0},disableScrollEvents:function(){t.current=!1}}}),[]));return r.createElement(s.Provider,{value:o},n)}function l(){var e=(0,r.useContext)(s);if(null==e)throw new i.dV("ScrollControllerProvider");return e}var u=function(){return o.A.canUseDOM?{scrollX:window.pageXOffset,scrollY:window.pageYOffset}:null};function d(e,t){void 0===t&&(t=[]);var n=l().scrollEventsEnabledRef,o=(0,r.useRef)(u()),a=(0,i._q)(e);(0,r.useEffect)((function(){var e=function(){if(n.current){var e=u();a(e,o.current),o.current=e}},t={passive:!0};return e(),window.addEventListener("scroll",e,t),function(){return window.removeEventListener("scroll",e,t)}}),[a,n].concat(t))}function p(){var e,t,n,o=l(),a=(e=(0,r.useRef)({elem:null,top:0}),t=(0,r.useCallback)((function(t){e.current={elem:t,top:t.getBoundingClientRect().top}}),[]),n=(0,r.useCallback)((function(){var t=e.current,n=t.elem,r=t.top;if(!n)return{restored:!1};var o=n.getBoundingClientRect().top-r;return o&&window.scrollBy({left:0,top:o}),e.current={elem:null,top:0},{restored:0!==o}}),[]),(0,r.useMemo)((function(){return{save:t,restore:n}}),[n,t])),i=(0,r.useRef)(void 0),s=(0,r.useCallback)((function(e){a.save(e),o.disableScrollEvents(),i.current=function(){var e=a.restore().restored;if(i.current=void 0,e){window.addEventListener("scroll",(function e(){o.enableScrollEvents(),window.removeEventListener("scroll",e)}))}else o.enableScrollEvents()}}),[o,a]);return(0,r.useLayoutEffect)((function(){queueMicrotask((function(){return null==i.current?void 0:i.current()}))})),{blockElementScrollPositionUntilNextRender:s}}function f(){var e=(0,r.useRef)(null),t=(0,a.A)()&&"smooth"===getComputedStyle(document.documentElement).scrollBehavior;return{startScroll:function(n){e.current=t?function(e){return window.scrollTo({top:e,behavior:"smooth"}),function(){}}(n):function(e){var t=null,n=document.documentElement.scrollTop>e;return function r(){var o=document.documentElement.scrollTop;(n&&o>e||!n&&o<e)&&(t=requestAnimationFrame(r),window.scrollTo(0,Math.floor(.85*(o-e))+e))}(),function(){return t&&cancelAnimationFrame(t)}}(n)},cancelScroll:function(){return null==e.current?void 0:e.current()}}}},2967:(e,t,n)=>{"use strict";n.d(t,{Cy:()=>r,tU:()=>o});n(44586);var r="default";function o(e,t){return"docs-"+e+"-"+t}},89466:(e,t,n)=>{"use strict";n.d(t,{Dv:()=>d,Wf:()=>u});var r=n(96540),o=n(19888),a="localStorage";function i(e){var t=e.key,n=e.oldValue,r=e.newValue,o=e.storage;if(n!==r){var a=document.createEvent("StorageEvent");a.initStorageEvent("storage",!1,!1,t,n,r,window.location.href,o),window.dispatchEvent(a)}}function s(e){if(void 0===e&&(e=a),"undefined"==typeof window)throw new Error("Browser storage is not available on Node.js/Docusaurus SSR process.");if("none"===e)return null;try{return window[e]}catch(n){return t=n,c||(console.warn("Docusaurus browser storage is not available.\nPossible reasons: running Docusaurus in an iframe, in an incognito browser session, or using too strict browser privacy settings.",t),c=!0),null}var t}var c=!1;var l={get:function(){return null},set:function(){},del:function(){},listen:function(){return function(){}}};function u(e,t){if("undefined"==typeof window)return function(e){function t(){throw new Error('Illegal storage API usage for storage key "'+e+'".\nDocusaurus storage APIs are not supposed to be called on the server-rendering process.\nPlease only call storage APIs in effects and event handlers.')}return{get:t,set:t,del:t,listen:t}}(e);var n=s(null==t?void 0:t.persistence);return null===n?l:{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{var r=n.getItem(e);n.setItem(e,t),i({key:e,oldValue:r,newValue:t,storage:n})}catch(o){console.error("Docusaurus storage error, can't set "+e+"="+t,o)}},del:function(){try{var t=n.getItem(e);n.removeItem(e),i({key:e,oldValue:t,newValue:null,storage:n})}catch(r){console.error("Docusaurus storage error, can't delete key="+e,r)}},listen:function(t){try{var r=function(r){r.storageArea===n&&r.key===e&&t(r)};return window.addEventListener("storage",r),function(){return window.removeEventListener("storage",r)}}catch(o){return console.error("Docusaurus storage error, can't listen for changes of key="+e,o),function(){}}}}}function d(e,t){var n=(0,r.useRef)((function(){return null===e?l:u(e,t)})).current(),a=(0,r.useCallback)((function(e){return"undefined"==typeof window?function(){}:n.listen(e)}),[n]);return[(0,o.useSyncExternalStore)(a,(function(){return"undefined"==typeof window?null:n.get()}),(function(){return null})),n]}},32131:(e,t,n)=>{"use strict";n.d(t,{o:()=>i});var r=n(44586),o=n(56347),a=n(70440);function i(){var e=(0,r.A)(),t=e.siteConfig,n=t.baseUrl,i=t.url,s=t.trailingSlash,c=e.i18n,l=c.defaultLocale,u=c.currentLocale,d=(0,o.zy)().pathname,p=(0,a.applyTrailingSlash)(d,{trailingSlash:s,baseUrl:n}),f=u===l?n:n.replace("/"+u+"/","/"),m=p.replace(n,"");return{createUrl:function(e){var t=e.locale;return""+(e.fullyQualified?i:"")+function(e){return e===l?""+f:""+f+e+"/"}(t)+m}}}},75062:(e,t,n)=>{"use strict";n.d(t,{$:()=>i});var r=n(96540),o=n(56347),a=n(43807);function i(e){var t=(0,o.zy)(),n=(0,a.ZC)(t),i=(0,a._q)(e);(0,r.useEffect)((function(){n&&t!==n&&i({location:t,previousLocation:n})}),[i,t,n])}},6342:(e,t,n)=>{"use strict";n.d(t,{p:()=>o});var r=n(44586);function o(){return(0,r.A)().siteConfig.themeConfig}},12983:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){var n=t.trailingSlash,r=t.baseUrl;if(e.startsWith("#"))return e;if(void 0===n)return e;var o,a=e.split(/[#?]/)[0],i="/"===a||a===r?a:(o=a,n?function(e){return e.endsWith("/")?e:e+"/"}(o):function(e){return e.endsWith("/")?e.slice(0,-1):e}(o));return e.replace(a,i)}},80253:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=void 0,t.getErrorCausalChain=function e(t){return t.cause?[t].concat(e(t.cause)):[t]}},70440:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=t.applyTrailingSlash=t.blogPostContainerID=void 0,t.blogPostContainerID="__blog-post-container";var o=n(12983);Object.defineProperty(t,"applyTrailingSlash",{enumerable:!0,get:function(){return r(o).default}});var a=n(80253);Object.defineProperty(t,"getErrorCausalChain",{enumerable:!0,get:function(){return a.getErrorCausalChain}})},20053:(e,t,n)=>{"use strict";function r(e){var t,n,o="";if("string"==typeof e||"number"==typeof e)o+=e;else if("object"==typeof e)if(Array.isArray(e))for(t=0;t<e.length;t++)e[t]&&(n=r(e[t]))&&(o&&(o+=" "),o+=n);else for(t in e)e[t]&&(o&&(o+=" "),o+=t);return o}n.d(t,{A:()=>o});const o=function(){for(var e,t,n=0,o="";n<arguments.length;)(e=arguments[n++])&&(t=r(e))&&(o&&(o+=" "),o+=t);return o}},31513:(e,t,n)=>{"use strict";n.d(t,{zR:()=>w,TM:()=>A,yJ:()=>f,sC:()=>T,AO:()=>p});var r=n(58168);function o(e){return"/"===e.charAt(0)}function a(e,t){for(var n=t,r=n+1,o=e.length;r<o;n+=1,r+=1)e[n]=e[r];e.pop()}const i=function(e,t){void 0===t&&(t="");var n,r=e&&e.split("/")||[],i=t&&t.split("/")||[],s=e&&o(e),c=t&&o(t),l=s||c;if(e&&o(e)?i=r:r.length&&(i.pop(),i=i.concat(r)),!i.length)return"/";if(i.length){var u=i[i.length-1];n="."===u||".."===u||""===u}else n=!1;for(var d=0,p=i.length;p>=0;p--){var f=i[p];"."===f?a(i,p):".."===f?(a(i,p),d++):d&&(a(i,p),d--)}if(!l)for(;d--;d)i.unshift("..");!l||""===i[0]||i[0]&&o(i[0])||i.unshift("");var m=i.join("/");return n&&"/"!==m.substr(-1)&&(m+="/"),m};var s=n(11561);function c(e){return"/"===e.charAt(0)?e:"/"+e}function l(e){return"/"===e.charAt(0)?e.substr(1):e}function u(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 d(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e}function p(e){var t=e.pathname,n=e.search,r=e.hash,o=t||"/";return n&&"?"!==n&&(o+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(o+="#"===r.charAt(0)?r:"#"+r),o}function f(e,t,n,o){var a;"string"==typeof e?(a=function(e){var t=e||"/",n="",r="",o=t.indexOf("#");-1!==o&&(r=t.substr(o),t=t.substr(0,o));var a=t.indexOf("?");return-1!==a&&(n=t.substr(a),t=t.substr(0,a)),{pathname:t,search:"?"===n?"":n,hash:"#"===r?"":r}}(e),a.state=t):(void 0===(a=(0,r.A)({},e)).pathname&&(a.pathname=""),a.search?"?"!==a.search.charAt(0)&&(a.search="?"+a.search):a.search="",a.hash?"#"!==a.hash.charAt(0)&&(a.hash="#"+a.hash):a.hash="",void 0!==t&&void 0===a.state&&(a.state=t));try{a.pathname=decodeURI(a.pathname)}catch(s){throw s instanceof URIError?new URIError('Pathname "'+a.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):s}return n&&(a.key=n),o?a.pathname?"/"!==a.pathname.charAt(0)&&(a.pathname=i(a.pathname,o.pathname)):a.pathname=o.pathname:a.pathname||(a.pathname="/"),a}function m(){var e=null;var t=[];return{setPrompt:function(t){return e=t,function(){e===t&&(e=null)}},confirmTransitionTo:function(t,n,r,o){if(null!=e){var a="function"==typeof e?e(t,n):e;"string"==typeof a?"function"==typeof r?r(a,o):o(!0):o(!1!==a)}else o(!0)},appendListener:function(e){var n=!0;function r(){n&&e.apply(void 0,arguments)}return t.push(r),function(){n=!1,t=t.filter((function(e){return e!==r}))}},notifyListeners:function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];t.forEach((function(e){return e.apply(void 0,n)}))}}}var h=!("undefined"==typeof window||!window.document||!window.document.createElement);function g(e,t){t(window.confirm(e))}var b="popstate",v="hashchange";function y(){try{return window.history.state||{}}catch(e){return{}}}function w(e){void 0===e&&(e={}),h||(0,s.A)(!1);var t,n=window.history,o=(-1===(t=window.navigator.userAgent).indexOf("Android 2.")&&-1===t.indexOf("Android 4.0")||-1===t.indexOf("Mobile Safari")||-1!==t.indexOf("Chrome")||-1!==t.indexOf("Windows Phone"))&&window.history&&"pushState"in window.history,a=!(-1===window.navigator.userAgent.indexOf("Trident")),i=e,l=i.forceRefresh,w=void 0!==l&&l,k=i.getUserConfirmation,x=void 0===k?g:k,E=i.keyLength,_=void 0===E?6:E,S=e.basename?d(c(e.basename)):"";function A(e){var t=e||{},n=t.key,r=t.state,o=window.location,a=o.pathname+o.search+o.hash;return S&&(a=u(a,S)),f(a,r,n)}function C(){return Math.random().toString(36).substr(2,_)}var T=m();function q(e){(0,r.A)(z,e),z.length=n.length,T.notifyListeners(z.location,z.action)}function N(e){(function(e){return void 0===e.state&&-1===navigator.userAgent.indexOf("CriOS")})(e)||L(A(e.state))}function R(){L(A(y()))}var O=!1;function L(e){if(O)O=!1,q();else{T.confirmTransitionTo(e,"POP",x,(function(t){t?q({action:"POP",location:e}):function(e){var t=z.location,n=I.indexOf(t.key);-1===n&&(n=0);var r=I.indexOf(e.key);-1===r&&(r=0);var o=n-r;o&&(O=!0,M(o))}(e)}))}}var P=A(y()),I=[P.key];function D(e){return S+p(e)}function M(e){n.go(e)}var j=0;function F(e){1===(j+=e)&&1===e?(window.addEventListener(b,N),a&&window.addEventListener(v,R)):0===j&&(window.removeEventListener(b,N),a&&window.removeEventListener(v,R))}var B=!1;var z={length:n.length,action:"POP",location:P,createHref:D,push:function(e,t){var r="PUSH",a=f(e,t,C(),z.location);T.confirmTransitionTo(a,r,x,(function(e){if(e){var t=D(a),i=a.key,s=a.state;if(o)if(n.pushState({key:i,state:s},null,t),w)window.location.href=t;else{var c=I.indexOf(z.location.key),l=I.slice(0,c+1);l.push(a.key),I=l,q({action:r,location:a})}else window.location.href=t}}))},replace:function(e,t){var r="REPLACE",a=f(e,t,C(),z.location);T.confirmTransitionTo(a,r,x,(function(e){if(e){var t=D(a),i=a.key,s=a.state;if(o)if(n.replaceState({key:i,state:s},null,t),w)window.location.replace(t);else{var c=I.indexOf(z.location.key);-1!==c&&(I[c]=a.key),q({action:r,location:a})}else window.location.replace(t)}}))},go:M,goBack:function(){M(-1)},goForward:function(){M(1)},block:function(e){void 0===e&&(e=!1);var t=T.setPrompt(e);return B||(F(1),B=!0),function(){return B&&(B=!1,F(-1)),t()}},listen:function(e){var t=T.appendListener(e);return F(1),function(){F(-1),t()}}};return z}var k="hashchange",x={hashbang:{encodePath:function(e){return"!"===e.charAt(0)?e:"!/"+l(e)},decodePath:function(e){return"!"===e.charAt(0)?e.substr(1):e}},noslash:{encodePath:l,decodePath:c},slash:{encodePath:c,decodePath:c}};function E(e){var t=e.indexOf("#");return-1===t?e:e.slice(0,t)}function _(){var e=window.location.href,t=e.indexOf("#");return-1===t?"":e.substring(t+1)}function S(e){window.location.replace(E(window.location.href)+"#"+e)}function A(e){void 0===e&&(e={}),h||(0,s.A)(!1);var t=window.history,n=(window.navigator.userAgent.indexOf("Firefox"),e),o=n.getUserConfirmation,a=void 0===o?g:o,i=n.hashType,l=void 0===i?"slash":i,b=e.basename?d(c(e.basename)):"",v=x[l],y=v.encodePath,w=v.decodePath;function A(){var e=w(_());return b&&(e=u(e,b)),f(e)}var C=m();function T(e){(0,r.A)(B,e),B.length=t.length,C.notifyListeners(B.location,B.action)}var q=!1,N=null;function R(){var e,t,n=_(),r=y(n);if(n!==r)S(r);else{var o=A(),i=B.location;if(!q&&(t=o,(e=i).pathname===t.pathname&&e.search===t.search&&e.hash===t.hash))return;if(N===p(o))return;N=null,function(e){if(q)q=!1,T();else{var t="POP";C.confirmTransitionTo(e,t,a,(function(n){n?T({action:t,location:e}):function(e){var t=B.location,n=I.lastIndexOf(p(t));-1===n&&(n=0);var r=I.lastIndexOf(p(e));-1===r&&(r=0);var o=n-r;o&&(q=!0,D(o))}(e)}))}}(o)}}var O=_(),L=y(O);O!==L&&S(L);var P=A(),I=[p(P)];function D(e){t.go(e)}var M=0;function j(e){1===(M+=e)&&1===e?window.addEventListener(k,R):0===M&&window.removeEventListener(k,R)}var F=!1;var B={length:t.length,action:"POP",location:P,createHref:function(e){var t=document.querySelector("base"),n="";return t&&t.getAttribute("href")&&(n=E(window.location.href)),n+"#"+y(b+p(e))},push:function(e,t){var n="PUSH",r=f(e,void 0,void 0,B.location);C.confirmTransitionTo(r,n,a,(function(e){if(e){var t=p(r),o=y(b+t);if(_()!==o){N=t,function(e){window.location.hash=e}(o);var a=I.lastIndexOf(p(B.location)),i=I.slice(0,a+1);i.push(t),I=i,T({action:n,location:r})}else T()}}))},replace:function(e,t){var n="REPLACE",r=f(e,void 0,void 0,B.location);C.confirmTransitionTo(r,n,a,(function(e){if(e){var t=p(r),o=y(b+t);_()!==o&&(N=t,S(o));var a=I.indexOf(p(B.location));-1!==a&&(I[a]=t),T({action:n,location:r})}}))},go:D,goBack:function(){D(-1)},goForward:function(){D(1)},block:function(e){void 0===e&&(e=!1);var t=C.setPrompt(e);return F||(j(1),F=!0),function(){return F&&(F=!1,j(-1)),t()}},listen:function(e){var t=C.appendListener(e);return j(1),function(){j(-1),t()}}};return B}function C(e,t,n){return Math.min(Math.max(e,t),n)}function T(e){void 0===e&&(e={});var t=e,n=t.getUserConfirmation,o=t.initialEntries,a=void 0===o?["/"]:o,i=t.initialIndex,s=void 0===i?0:i,c=t.keyLength,l=void 0===c?6:c,u=m();function d(e){(0,r.A)(w,e),w.length=w.entries.length,u.notifyListeners(w.location,w.action)}function h(){return Math.random().toString(36).substr(2,l)}var g=C(s,0,a.length-1),b=a.map((function(e){return f(e,void 0,"string"==typeof e?h():e.key||h())})),v=p;function y(e){var t=C(w.index+e,0,w.entries.length-1),r=w.entries[t];u.confirmTransitionTo(r,"POP",n,(function(e){e?d({action:"POP",location:r,index:t}):d()}))}var w={length:b.length,action:"POP",location:b[g],index:g,entries:b,createHref:v,push:function(e,t){var r="PUSH",o=f(e,t,h(),w.location);u.confirmTransitionTo(o,r,n,(function(e){if(e){var t=w.index+1,n=w.entries.slice(0);n.length>t?n.splice(t,n.length-t,o):n.push(o),d({action:r,location:o,index:t,entries:n})}}))},replace:function(e,t){var r="REPLACE",o=f(e,t,h(),w.location);u.confirmTransitionTo(o,r,n,(function(e){e&&(w.entries[w.index]=o,d({action:r,location:o}))}))},go:y,goBack:function(){y(-1)},goForward:function(){y(1)},canGo:function(e){var t=w.index+e;return t>=0&&t<w.entries.length},block:function(e){return void 0===e&&(e=!1),u.setPrompt(e)},listen:function(e){return u.appendListener(e)}};return w}},4146:(e,t,n)=>{"use strict";var r=n(44363),o={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},a={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},i={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},s={};function c(e){return r.isMemo(e)?i:s[e.$$typeof]||o}s[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},s[r.Memo]=i;var l=Object.defineProperty,u=Object.getOwnPropertyNames,d=Object.getOwnPropertySymbols,p=Object.getOwnPropertyDescriptor,f=Object.getPrototypeOf,m=Object.prototype;e.exports=function e(t,n,r){if("string"!=typeof n){if(m){var o=f(n);o&&o!==m&&e(t,o,r)}var i=u(n);d&&(i=i.concat(d(n)));for(var s=c(t),h=c(n),g=0;g<i.length;++g){var b=i[g];if(!(a[b]||r&&r[b]||h&&h[b]||s&&s[b])){var v=p(n,b);try{l(t,b,v)}catch(y){}}}}return t}},20311:e=>{"use strict";e.exports=function(e,t,n,r,o,a,i,s){if(!e){var c;if(void 0===t)c=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var l=[n,r,o,a,i,s],u=0;(c=new Error(t.replace(/%s/g,(function(){return l[u++]})))).name="Invariant Violation"}throw c.framesToPop=1,c}}},689:function(e){e.exports=function(){"use strict";var e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},t=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")},n=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},o=function(){function e(n){var r=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:5e3;t(this,e),this.ctx=n,this.iframes=r,this.exclude=o,this.iframesTimeout=a}return n(e,[{key:"getContexts",value:function(){var e=[];return(void 0!==this.ctx&&this.ctx?NodeList.prototype.isPrototypeOf(this.ctx)?Array.prototype.slice.call(this.ctx):Array.isArray(this.ctx)?this.ctx:"string"==typeof this.ctx?Array.prototype.slice.call(document.querySelectorAll(this.ctx)):[this.ctx]:[]).forEach((function(t){var n=e.filter((function(e){return e.contains(t)})).length>0;-1!==e.indexOf(t)||n||e.push(t)})),e}},{key:"getIframeContents",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:function(){},r=void 0;try{var o=e.contentWindow;if(r=o.document,!o||!r)throw new Error("iframe inaccessible")}catch(a){n()}r&&t(r)}},{key:"isIframeBlank",value:function(e){var t="about:blank",n=e.getAttribute("src").trim();return e.contentWindow.location.href===t&&n!==t&&n}},{key:"observeIframeLoad",value:function(e,t,n){var r=this,o=!1,a=null,i=function i(){if(!o){o=!0,clearTimeout(a);try{r.isIframeBlank(e)||(e.removeEventListener("load",i),r.getIframeContents(e,t,n))}catch(s){n()}}};e.addEventListener("load",i),a=setTimeout(i,this.iframesTimeout)}},{key:"onIframeReady",value:function(e,t,n){try{"complete"===e.contentWindow.document.readyState?this.isIframeBlank(e)?this.observeIframeLoad(e,t,n):this.getIframeContents(e,t,n):this.observeIframeLoad(e,t,n)}catch(r){n()}}},{key:"waitForIframes",value:function(e,t){var n=this,r=0;this.forEachIframe(e,(function(){return!0}),(function(e){r++,n.waitForIframes(e.querySelector("html"),(function(){--r||t()}))}),(function(e){e||t()}))}},{key:"forEachIframe",value:function(t,n,r){var o=this,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:function(){},i=t.querySelectorAll("iframe"),s=i.length,c=0;i=Array.prototype.slice.call(i);var l=function(){--s<=0&&a(c)};s||l(),i.forEach((function(t){e.matches(t,o.exclude)?l():o.onIframeReady(t,(function(e){n(t)&&(c++,r(e)),l()}),l)}))}},{key:"createIterator",value:function(e,t,n){return document.createNodeIterator(e,t,n,!1)}},{key:"createInstanceOnIframe",value:function(t){return new e(t.querySelector("html"),this.iframes)}},{key:"compareNodeIframe",value:function(e,t,n){if(e.compareDocumentPosition(n)&Node.DOCUMENT_POSITION_PRECEDING){if(null===t)return!0;if(t.compareDocumentPosition(n)&Node.DOCUMENT_POSITION_FOLLOWING)return!0}return!1}},{key:"getIteratorNode",value:function(e){var t=e.previousNode();return{prevNode:t,node:(null===t||e.nextNode())&&e.nextNode()}}},{key:"checkIframeFilter",value:function(e,t,n,r){var o=!1,a=!1;return r.forEach((function(e,t){e.val===n&&(o=t,a=e.handled)})),this.compareNodeIframe(e,t,n)?(!1!==o||a?!1===o||a||(r[o].handled=!0):r.push({val:n,handled:!0}),!0):(!1===o&&r.push({val:n,handled:!1}),!1)}},{key:"handleOpenIframes",value:function(e,t,n,r){var o=this;e.forEach((function(e){e.handled||o.getIframeContents(e.val,(function(e){o.createInstanceOnIframe(e).forEachNode(t,n,r)}))}))}},{key:"iterateThroughNodes",value:function(e,t,n,r,o){for(var a=this,i=this.createIterator(t,e,r),s=[],c=[],l=void 0,u=void 0,d=function(){var e=a.getIteratorNode(i);return u=e.prevNode,l=e.node};d();)this.iframes&&this.forEachIframe(t,(function(e){return a.checkIframeFilter(l,u,e,s)}),(function(t){a.createInstanceOnIframe(t).forEachNode(e,(function(e){return c.push(e)}),r)})),c.push(l);c.forEach((function(e){n(e)})),this.iframes&&this.handleOpenIframes(s,e,n,r),o()}},{key:"forEachNode",value:function(e,t,n){var r=this,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:function(){},a=this.getContexts(),i=a.length;i||o(),a.forEach((function(a){var s=function(){r.iterateThroughNodes(e,a,t,n,(function(){--i<=0&&o()}))};r.iframes?r.waitForIframes(a,s):s()}))}}],[{key:"matches",value:function(e,t){var n="string"==typeof t?[t]:t,r=e.matches||e.matchesSelector||e.msMatchesSelector||e.mozMatchesSelector||e.oMatchesSelector||e.webkitMatchesSelector;if(r){var o=!1;return n.every((function(t){return!r.call(e,t)||(o=!0,!1)})),o}return!1}}]),e}(),a=function(){function a(e){t(this,a),this.ctx=e,this.ie=!1;var n=window.navigator.userAgent;(n.indexOf("MSIE")>-1||n.indexOf("Trident")>-1)&&(this.ie=!0)}return n(a,[{key:"log",value:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"debug",r=this.opt.log;this.opt.debug&&"object"===(void 0===r?"undefined":e(r))&&"function"==typeof r[n]&&r[n]("mark.js: "+t)}},{key:"escapeStr",value:function(e){return e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}},{key:"createRegExp",value:function(e){return"disabled"!==this.opt.wildcards&&(e=this.setupWildcardsRegExp(e)),e=this.escapeStr(e),Object.keys(this.opt.synonyms).length&&(e=this.createSynonymsRegExp(e)),(this.opt.ignoreJoiners||this.opt.ignorePunctuation.length)&&(e=this.setupIgnoreJoinersRegExp(e)),this.opt.diacritics&&(e=this.createDiacriticsRegExp(e)),e=this.createMergedBlanksRegExp(e),(this.opt.ignoreJoiners||this.opt.ignorePunctuation.length)&&(e=this.createJoinersRegExp(e)),"disabled"!==this.opt.wildcards&&(e=this.createWildcardsRegExp(e)),e=this.createAccuracyRegExp(e)}},{key:"createSynonymsRegExp",value:function(e){var t=this.opt.synonyms,n=this.opt.caseSensitive?"":"i",r=this.opt.ignoreJoiners||this.opt.ignorePunctuation.length?"\0":"";for(var o in t)if(t.hasOwnProperty(o)){var a=t[o],i="disabled"!==this.opt.wildcards?this.setupWildcardsRegExp(o):this.escapeStr(o),s="disabled"!==this.opt.wildcards?this.setupWildcardsRegExp(a):this.escapeStr(a);""!==i&&""!==s&&(e=e.replace(new RegExp("("+this.escapeStr(i)+"|"+this.escapeStr(s)+")","gm"+n),r+"("+this.processSynomyms(i)+"|"+this.processSynomyms(s)+")"+r))}return e}},{key:"processSynomyms",value:function(e){return(this.opt.ignoreJoiners||this.opt.ignorePunctuation.length)&&(e=this.setupIgnoreJoinersRegExp(e)),e}},{key:"setupWildcardsRegExp",value:function(e){return(e=e.replace(/(?:\\)*\?/g,(function(e){return"\\"===e.charAt(0)?"?":"\x01"}))).replace(/(?:\\)*\*/g,(function(e){return"\\"===e.charAt(0)?"*":"\x02"}))}},{key:"createWildcardsRegExp",value:function(e){var t="withSpaces"===this.opt.wildcards;return e.replace(/\u0001/g,t?"[\\S\\s]?":"\\S?").replace(/\u0002/g,t?"[\\S\\s]*?":"\\S*")}},{key:"setupIgnoreJoinersRegExp",value:function(e){return e.replace(/[^(|)\\]/g,(function(e,t,n){var r=n.charAt(t+1);return/[(|)\\]/.test(r)||""===r?e:e+"\0"}))}},{key:"createJoinersRegExp",value:function(e){var t=[],n=this.opt.ignorePunctuation;return Array.isArray(n)&&n.length&&t.push(this.escapeStr(n.join(""))),this.opt.ignoreJoiners&&t.push("\\u00ad\\u200b\\u200c\\u200d"),t.length?e.split(/\u0000+/).join("["+t.join("")+"]*"):e}},{key:"createDiacriticsRegExp",value:function(e){var t=this.opt.caseSensitive?"":"i",n=this.opt.caseSensitive?["a\xe0\xe1\u1ea3\xe3\u1ea1\u0103\u1eb1\u1eaf\u1eb3\u1eb5\u1eb7\xe2\u1ea7\u1ea5\u1ea9\u1eab\u1ead\xe4\xe5\u0101\u0105","A\xc0\xc1\u1ea2\xc3\u1ea0\u0102\u1eb0\u1eae\u1eb2\u1eb4\u1eb6\xc2\u1ea6\u1ea4\u1ea8\u1eaa\u1eac\xc4\xc5\u0100\u0104","c\xe7\u0107\u010d","C\xc7\u0106\u010c","d\u0111\u010f","D\u0110\u010e","e\xe8\xe9\u1ebb\u1ebd\u1eb9\xea\u1ec1\u1ebf\u1ec3\u1ec5\u1ec7\xeb\u011b\u0113\u0119","E\xc8\xc9\u1eba\u1ebc\u1eb8\xca\u1ec0\u1ebe\u1ec2\u1ec4\u1ec6\xcb\u011a\u0112\u0118","i\xec\xed\u1ec9\u0129\u1ecb\xee\xef\u012b","I\xcc\xcd\u1ec8\u0128\u1eca\xce\xcf\u012a","l\u0142","L\u0141","n\xf1\u0148\u0144","N\xd1\u0147\u0143","o\xf2\xf3\u1ecf\xf5\u1ecd\xf4\u1ed3\u1ed1\u1ed5\u1ed7\u1ed9\u01a1\u1edf\u1ee1\u1edb\u1edd\u1ee3\xf6\xf8\u014d","O\xd2\xd3\u1ece\xd5\u1ecc\xd4\u1ed2\u1ed0\u1ed4\u1ed6\u1ed8\u01a0\u1ede\u1ee0\u1eda\u1edc\u1ee2\xd6\xd8\u014c","r\u0159","R\u0158","s\u0161\u015b\u0219\u015f","S\u0160\u015a\u0218\u015e","t\u0165\u021b\u0163","T\u0164\u021a\u0162","u\xf9\xfa\u1ee7\u0169\u1ee5\u01b0\u1eeb\u1ee9\u1eed\u1eef\u1ef1\xfb\xfc\u016f\u016b","U\xd9\xda\u1ee6\u0168\u1ee4\u01af\u1eea\u1ee8\u1eec\u1eee\u1ef0\xdb\xdc\u016e\u016a","y\xfd\u1ef3\u1ef7\u1ef9\u1ef5\xff","Y\xdd\u1ef2\u1ef6\u1ef8\u1ef4\u0178","z\u017e\u017c\u017a","Z\u017d\u017b\u0179"]:["a\xe0\xe1\u1ea3\xe3\u1ea1\u0103\u1eb1\u1eaf\u1eb3\u1eb5\u1eb7\xe2\u1ea7\u1ea5\u1ea9\u1eab\u1ead\xe4\xe5\u0101\u0105A\xc0\xc1\u1ea2\xc3\u1ea0\u0102\u1eb0\u1eae\u1eb2\u1eb4\u1eb6\xc2\u1ea6\u1ea4\u1ea8\u1eaa\u1eac\xc4\xc5\u0100\u0104","c\xe7\u0107\u010dC\xc7\u0106\u010c","d\u0111\u010fD\u0110\u010e","e\xe8\xe9\u1ebb\u1ebd\u1eb9\xea\u1ec1\u1ebf\u1ec3\u1ec5\u1ec7\xeb\u011b\u0113\u0119E\xc8\xc9\u1eba\u1ebc\u1eb8\xca\u1ec0\u1ebe\u1ec2\u1ec4\u1ec6\xcb\u011a\u0112\u0118","i\xec\xed\u1ec9\u0129\u1ecb\xee\xef\u012bI\xcc\xcd\u1ec8\u0128\u1eca\xce\xcf\u012a","l\u0142L\u0141","n\xf1\u0148\u0144N\xd1\u0147\u0143","o\xf2\xf3\u1ecf\xf5\u1ecd\xf4\u1ed3\u1ed1\u1ed5\u1ed7\u1ed9\u01a1\u1edf\u1ee1\u1edb\u1edd\u1ee3\xf6\xf8\u014dO\xd2\xd3\u1ece\xd5\u1ecc\xd4\u1ed2\u1ed0\u1ed4\u1ed6\u1ed8\u01a0\u1ede\u1ee0\u1eda\u1edc\u1ee2\xd6\xd8\u014c","r\u0159R\u0158","s\u0161\u015b\u0219\u015fS\u0160\u015a\u0218\u015e","t\u0165\u021b\u0163T\u0164\u021a\u0162","u\xf9\xfa\u1ee7\u0169\u1ee5\u01b0\u1eeb\u1ee9\u1eed\u1eef\u1ef1\xfb\xfc\u016f\u016bU\xd9\xda\u1ee6\u0168\u1ee4\u01af\u1eea\u1ee8\u1eec\u1eee\u1ef0\xdb\xdc\u016e\u016a","y\xfd\u1ef3\u1ef7\u1ef9\u1ef5\xffY\xdd\u1ef2\u1ef6\u1ef8\u1ef4\u0178","z\u017e\u017c\u017aZ\u017d\u017b\u0179"],r=[];return e.split("").forEach((function(o){n.every((function(n){if(-1!==n.indexOf(o)){if(r.indexOf(n)>-1)return!1;e=e.replace(new RegExp("["+n+"]","gm"+t),"["+n+"]"),r.push(n)}return!0}))})),e}},{key:"createMergedBlanksRegExp",value:function(e){return e.replace(/[\s]+/gim,"[\\s]+")}},{key:"createAccuracyRegExp",value:function(e){var t=this,n="!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~\xa1\xbf",r=this.opt.accuracy,o="string"==typeof r?r:r.value,a="string"==typeof r?[]:r.limiters,i="";switch(a.forEach((function(e){i+="|"+t.escapeStr(e)})),o){case"partially":default:return"()("+e+")";case"complementary":return"()([^"+(i="\\s"+(i||this.escapeStr(n)))+"]*"+e+"[^"+i+"]*)";case"exactly":return"(^|\\s"+i+")("+e+")(?=$|\\s"+i+")"}}},{key:"getSeparatedKeywords",value:function(e){var t=this,n=[];return e.forEach((function(e){t.opt.separateWordSearch?e.split(" ").forEach((function(e){e.trim()&&-1===n.indexOf(e)&&n.push(e)})):e.trim()&&-1===n.indexOf(e)&&n.push(e)})),{keywords:n.sort((function(e,t){return t.length-e.length})),length:n.length}}},{key:"isNumeric",value:function(e){return Number(parseFloat(e))==e}},{key:"checkRanges",value:function(e){var t=this;if(!Array.isArray(e)||"[object Object]"!==Object.prototype.toString.call(e[0]))return this.log("markRanges() will only accept an array of objects"),this.opt.noMatch(e),[];var n=[],r=0;return e.sort((function(e,t){return e.start-t.start})).forEach((function(e){var o=t.callNoMatchOnInvalidRanges(e,r),a=o.start,i=o.end;o.valid&&(e.start=a,e.length=i-a,n.push(e),r=i)})),n}},{key:"callNoMatchOnInvalidRanges",value:function(e,t){var n=void 0,r=void 0,o=!1;return e&&void 0!==e.start?(r=(n=parseInt(e.start,10))+parseInt(e.length,10),this.isNumeric(e.start)&&this.isNumeric(e.length)&&r-t>0&&r-n>0?o=!0:(this.log("Ignoring invalid or overlapping range: "+JSON.stringify(e)),this.opt.noMatch(e))):(this.log("Ignoring invalid range: "+JSON.stringify(e)),this.opt.noMatch(e)),{start:n,end:r,valid:o}}},{key:"checkWhitespaceRanges",value:function(e,t,n){var r=void 0,o=!0,a=n.length,i=t-a,s=parseInt(e.start,10)-i;return(r=(s=s>a?a:s)+parseInt(e.length,10))>a&&(r=a,this.log("End range automatically set to the max value of "+a)),s<0||r-s<0||s>a||r>a?(o=!1,this.log("Invalid range: "+JSON.stringify(e)),this.opt.noMatch(e)):""===n.substring(s,r).replace(/\s+/g,"")&&(o=!1,this.log("Skipping whitespace only range: "+JSON.stringify(e)),this.opt.noMatch(e)),{start:s,end:r,valid:o}}},{key:"getTextNodes",value:function(e){var t=this,n="",r=[];this.iterator.forEachNode(NodeFilter.SHOW_TEXT,(function(e){r.push({start:n.length,end:(n+=e.textContent).length,node:e})}),(function(e){return t.matchesExclude(e.parentNode)?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT}),(function(){e({value:n,nodes:r})}))}},{key:"matchesExclude",value:function(e){return o.matches(e,this.opt.exclude.concat(["script","style","title","head","html"]))}},{key:"wrapRangeInTextNode",value:function(e,t,n){var r=this.opt.element?this.opt.element:"mark",o=e.splitText(t),a=o.splitText(n-t),i=document.createElement(r);return i.setAttribute("data-markjs","true"),this.opt.className&&i.setAttribute("class",this.opt.className),i.textContent=o.textContent,o.parentNode.replaceChild(i,o),a}},{key:"wrapRangeInMappedTextNode",value:function(e,t,n,r,o){var a=this;e.nodes.every((function(i,s){var c=e.nodes[s+1];if(void 0===c||c.start>t){if(!r(i.node))return!1;var l=t-i.start,u=(n>i.end?i.end:n)-i.start,d=e.value.substr(0,i.start),p=e.value.substr(u+i.start);if(i.node=a.wrapRangeInTextNode(i.node,l,u),e.value=d+p,e.nodes.forEach((function(t,n){n>=s&&(e.nodes[n].start>0&&n!==s&&(e.nodes[n].start-=u),e.nodes[n].end-=u)})),n-=u,o(i.node.previousSibling,i.start),!(n>i.end))return!1;t=i.end}return!0}))}},{key:"wrapMatches",value:function(e,t,n,r,o){var a=this,i=0===t?0:t+1;this.getTextNodes((function(t){t.nodes.forEach((function(t){t=t.node;for(var o=void 0;null!==(o=e.exec(t.textContent))&&""!==o[i];)if(n(o[i],t)){var s=o.index;if(0!==i)for(var c=1;c<i;c++)s+=o[c].length;t=a.wrapRangeInTextNode(t,s,s+o[i].length),r(t.previousSibling),e.lastIndex=0}})),o()}))}},{key:"wrapMatchesAcrossElements",value:function(e,t,n,r,o){var a=this,i=0===t?0:t+1;this.getTextNodes((function(t){for(var s=void 0;null!==(s=e.exec(t.value))&&""!==s[i];){var c=s.index;if(0!==i)for(var l=1;l<i;l++)c+=s[l].length;var u=c+s[i].length;a.wrapRangeInMappedTextNode(t,c,u,(function(e){return n(s[i],e)}),(function(t,n){e.lastIndex=n,r(t)}))}o()}))}},{key:"wrapRangeFromIndex",value:function(e,t,n,r){var o=this;this.getTextNodes((function(a){var i=a.value.length;e.forEach((function(e,r){var s=o.checkWhitespaceRanges(e,i,a.value),c=s.start,l=s.end;s.valid&&o.wrapRangeInMappedTextNode(a,c,l,(function(n){return t(n,e,a.value.substring(c,l),r)}),(function(t){n(t,e)}))})),r()}))}},{key:"unwrapMatches",value:function(e){for(var t=e.parentNode,n=document.createDocumentFragment();e.firstChild;)n.appendChild(e.removeChild(e.firstChild));t.replaceChild(n,e),this.ie?this.normalizeTextNode(t):t.normalize()}},{key:"normalizeTextNode",value:function(e){if(e){if(3===e.nodeType)for(;e.nextSibling&&3===e.nextSibling.nodeType;)e.nodeValue+=e.nextSibling.nodeValue,e.parentNode.removeChild(e.nextSibling);else this.normalizeTextNode(e.firstChild);this.normalizeTextNode(e.nextSibling)}}},{key:"markRegExp",value:function(e,t){var n=this;this.opt=t,this.log('Searching with expression "'+e+'"');var r=0,o="wrapMatches",a=function(e){r++,n.opt.each(e)};this.opt.acrossElements&&(o="wrapMatchesAcrossElements"),this[o](e,this.opt.ignoreGroups,(function(e,t){return n.opt.filter(t,e,r)}),a,(function(){0===r&&n.opt.noMatch(e),n.opt.done(r)}))}},{key:"mark",value:function(e,t){var n=this;this.opt=t;var r=0,o="wrapMatches",a=this.getSeparatedKeywords("string"==typeof e?[e]:e),i=a.keywords,s=a.length,c=this.opt.caseSensitive?"":"i",l=function e(t){var a=new RegExp(n.createRegExp(t),"gm"+c),l=0;n.log('Searching with expression "'+a+'"'),n[o](a,1,(function(e,o){return n.opt.filter(o,t,r,l)}),(function(e){l++,r++,n.opt.each(e)}),(function(){0===l&&n.opt.noMatch(t),i[s-1]===t?n.opt.done(r):e(i[i.indexOf(t)+1])}))};this.opt.acrossElements&&(o="wrapMatchesAcrossElements"),0===s?this.opt.done(r):l(i[0])}},{key:"markRanges",value:function(e,t){var n=this;this.opt=t;var r=0,o=this.checkRanges(e);o&&o.length?(this.log("Starting to mark with the following ranges: "+JSON.stringify(o)),this.wrapRangeFromIndex(o,(function(e,t,r,o){return n.opt.filter(e,t,r,o)}),(function(e,t){r++,n.opt.each(e,t)}),(function(){n.opt.done(r)}))):this.opt.done(r)}},{key:"unmark",value:function(e){var t=this;this.opt=e;var n=this.opt.element?this.opt.element:"*";n+="[data-markjs]",this.opt.className&&(n+="."+this.opt.className),this.log('Removal selector "'+n+'"'),this.iterator.forEachNode(NodeFilter.SHOW_ELEMENT,(function(e){t.unwrapMatches(e)}),(function(e){var r=o.matches(e,n),a=t.matchesExclude(e);return!r||a?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT}),this.opt.done)}},{key:"opt",set:function(e){this._opt=r({},{element:"",className:"",exclude:[],iframes:!1,iframesTimeout:5e3,separateWordSearch:!0,diacritics:!0,synonyms:{},accuracy:"partially",acrossElements:!1,caseSensitive:!1,ignoreJoiners:!1,ignoreGroups:0,ignorePunctuation:[],wildcards:"disabled",each:function(){},noMatch:function(){},filter:function(){return!0},done:function(){},debug:!1,log:window.console},e)},get:function(){return this._opt}},{key:"iterator",get:function(){return new o(this.ctx,this.opt.iframes,this.opt.exclude,this.opt.iframesTimeout)}}]),a}();function i(e){var t=this,n=new a(e);return this.mark=function(e,r){return n.mark(e,r),t},this.markRegExp=function(e,r){return n.markRegExp(e,r),t},this.markRanges=function(e,r){return n.markRanges(e,r),t},this.unmark=function(e){return n.unmark(e),t},this}return i}()},10119:(e,t,n)=>{"use strict";n.r(t)},61916:(e,t,n)=>{"use strict";n.r(t)},25776:(e,t,n)=>{"use strict";n.r(t)},5947:function(e,t,n){var r,o;r=function(){var e,t,n={version:"0.2.0"},r=n.settings={minimum:.08,easing:"ease",positionUsing:"",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,showSpinner:!0,barSelector:'[role="bar"]',spinnerSelector:'[role="spinner"]',parent:"body",template:'<div class="bar" role="bar"><div class="peg"></div></div><div class="spinner" role="spinner"><div class="spinner-icon"></div></div>'};function o(e,t,n){return e<t?t:e>n?n:e}function a(e){return 100*(-1+e)}function i(e,t,n){var o;return(o="translate3d"===r.positionUsing?{transform:"translate3d("+a(e)+"%,0,0)"}:"translate"===r.positionUsing?{transform:"translate("+a(e)+"%,0)"}:{"margin-left":a(e)+"%"}).transition="all "+t+"ms "+n,o}n.configure=function(e){var t,n;for(t in e)void 0!==(n=e[t])&&e.hasOwnProperty(t)&&(r[t]=n);return this},n.status=null,n.set=function(e){var t=n.isStarted();e=o(e,r.minimum,1),n.status=1===e?null:e;var a=n.render(!t),l=a.querySelector(r.barSelector),u=r.speed,d=r.easing;return a.offsetWidth,s((function(t){""===r.positionUsing&&(r.positionUsing=n.getPositioningCSS()),c(l,i(e,u,d)),1===e?(c(a,{transition:"none",opacity:1}),a.offsetWidth,setTimeout((function(){c(a,{transition:"all "+u+"ms linear",opacity:0}),setTimeout((function(){n.remove(),t()}),u)}),u)):setTimeout(t,u)})),this},n.isStarted=function(){return"number"==typeof n.status},n.start=function(){n.status||n.set(0);var e=function(){setTimeout((function(){n.status&&(n.trickle(),e())}),r.trickleSpeed)};return r.trickle&&e(),this},n.done=function(e){return e||n.status?n.inc(.3+.5*Math.random()).set(1):this},n.inc=function(e){var t=n.status;return t?("number"!=typeof e&&(e=(1-t)*o(Math.random()*t,.1,.95)),t=o(t+e,0,.994),n.set(t)):n.start()},n.trickle=function(){return n.inc(Math.random()*r.trickleRate)},e=0,t=0,n.promise=function(r){return r&&"resolved"!==r.state()?(0===t&&n.start(),e++,t++,r.always((function(){0==--t?(e=0,n.done()):n.set((e-t)/e)})),this):this},n.render=function(e){if(n.isRendered())return document.getElementById("nprogress");u(document.documentElement,"nprogress-busy");var t=document.createElement("div");t.id="nprogress",t.innerHTML=r.template;var o,i=t.querySelector(r.barSelector),s=e?"-100":a(n.status||0),l=document.querySelector(r.parent);return c(i,{transition:"all 0 linear",transform:"translate3d("+s+"%,0,0)"}),r.showSpinner||(o=t.querySelector(r.spinnerSelector))&&f(o),l!=document.body&&u(l,"nprogress-custom-parent"),l.appendChild(t),t},n.remove=function(){d(document.documentElement,"nprogress-busy"),d(document.querySelector(r.parent),"nprogress-custom-parent");var e=document.getElementById("nprogress");e&&f(e)},n.isRendered=function(){return!!document.getElementById("nprogress")},n.getPositioningCSS=function(){var e=document.body.style,t="WebkitTransform"in e?"Webkit":"MozTransform"in e?"Moz":"msTransform"in e?"ms":"OTransform"in e?"O":"";return t+"Perspective"in e?"translate3d":t+"Transform"in e?"translate":"margin"};var s=function(){var e=[];function t(){var n=e.shift();n&&n(t)}return function(n){e.push(n),1==e.length&&t()}}(),c=function(){var e=["Webkit","O","Moz","ms"],t={};function n(e){return e.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,(function(e,t){return t.toUpperCase()}))}function r(t){var n=document.body.style;if(t in n)return t;for(var r,o=e.length,a=t.charAt(0).toUpperCase()+t.slice(1);o--;)if((r=e[o]+a)in n)return r;return t}function o(e){return e=n(e),t[e]||(t[e]=r(e))}function a(e,t,n){t=o(t),e.style[t]=n}return function(e,t){var n,r,o=arguments;if(2==o.length)for(n in t)void 0!==(r=t[n])&&t.hasOwnProperty(n)&&a(e,n,r);else a(e,o[1],o[2])}}();function l(e,t){return("string"==typeof e?e:p(e)).indexOf(" "+t+" ")>=0}function u(e,t){var n=p(e),r=n+t;l(n,t)||(e.className=r.substring(1))}function d(e,t){var n,r=p(e);l(e,t)&&(n=r.replace(" "+t+" "," "),e.className=n.substring(1,n.length-1))}function p(e){return(" "+(e.className||"")+" ").replace(/\s+/gi," ")}function f(e){e&&e.parentNode&&e.parentNode.removeChild(e)}return n},void 0===(o="function"==typeof r?r.call(t,n,t,e):r)||(e.exports=o)},45228:e=>{"use strict";var t=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,r=Object.prototype.propertyIsEnumerable;e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(e){r[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(o){return!1}}()?Object.assign:function(e,o){for(var a,i,s=function(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}(e),c=1;c<arguments.length;c++){for(var l in a=Object(arguments[c]))n.call(a,l)&&(s[l]=a[l]);if(t){i=t(a);for(var u=0;u<i.length;u++)r.call(a,i[u])&&(s[i[u]]=a[i[u]])}}return s}},61258:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});var r=function(){var e=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,t=0,n={},r={util:{encode:function e(t){return t instanceof o?new o(t.type,e(t.content),t.alias):Array.isArray(t)?t.map(e):t.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/\u00a0/g," ")},type:function(e){return Object.prototype.toString.call(e).slice(8,-1)},objId:function(e){return e.__id||Object.defineProperty(e,"__id",{value:++t}),e.__id},clone:function e(t,n){var o,a;switch(n=n||{},r.util.type(t)){case"Object":if(a=r.util.objId(t),n[a])return n[a];for(var i in o={},n[a]=o,t)t.hasOwnProperty(i)&&(o[i]=e(t[i],n));return o;case"Array":return a=r.util.objId(t),n[a]?n[a]:(o=[],n[a]=o,t.forEach((function(t,r){o[r]=e(t,n)})),o);default:return t}},getLanguage:function(t){for(;t;){var n=e.exec(t.className);if(n)return n[1].toLowerCase();t=t.parentElement}return"none"},setLanguage:function(t,n){t.className=t.className.replace(RegExp(e,"gi"),""),t.classList.add("language-"+n)},isActive:function(e,t,n){for(var r="no-"+t;e;){var o=e.classList;if(o.contains(t))return!0;if(o.contains(r))return!1;e=e.parentElement}return!!n}},languages:{plain:n,plaintext:n,text:n,txt:n,extend:function(e,t){var n=r.util.clone(r.languages[e]);for(var o in t)n[o]=t[o];return n},insertBefore:function(e,t,n,o){var a=(o=o||r.languages)[e],i={};for(var s in a)if(a.hasOwnProperty(s)){if(s==t)for(var c in n)n.hasOwnProperty(c)&&(i[c]=n[c]);n.hasOwnProperty(s)||(i[s]=a[s])}var l=o[e];return o[e]=i,r.languages.DFS(r.languages,(function(t,n){n===l&&t!=e&&(this[t]=i)})),i},DFS:function e(t,n,o,a){a=a||{};var i=r.util.objId;for(var s in t)if(t.hasOwnProperty(s)){n.call(t,s,t[s],o||s);var c=t[s],l=r.util.type(c);"Object"!==l||a[i(c)]?"Array"!==l||a[i(c)]||(a[i(c)]=!0,e(c,n,s,a)):(a[i(c)]=!0,e(c,n,null,a))}}},plugins:{},highlight:function(e,t,n){var a={code:e,grammar:t,language:n};return r.hooks.run("before-tokenize",a),a.tokens=r.tokenize(a.code,a.grammar),r.hooks.run("after-tokenize",a),o.stringify(r.util.encode(a.tokens),a.language)},tokenize:function(e,t){var n=t.rest;if(n){for(var r in n)t[r]=n[r];delete t.rest}var o=new s;return c(o,o.head,e),i(e,o,t,o.head,0),function(e){var t=[],n=e.head.next;for(;n!==e.tail;)t.push(n.value),n=n.next;return t}(o)},hooks:{all:{},add:function(e,t){var n=r.hooks.all;n[e]=n[e]||[],n[e].push(t)},run:function(e,t){var n=r.hooks.all[e];if(n&&n.length)for(var o,a=0;o=n[a++];)o(t)}},Token:o};function o(e,t,n,r){this.type=e,this.content=t,this.alias=n,this.length=0|(r||"").length}function a(e,t,n,r){e.lastIndex=t;var o=e.exec(n);if(o&&r&&o[1]){var a=o[1].length;o.index+=a,o[0]=o[0].slice(a)}return o}function i(e,t,n,s,u,d){for(var p in n)if(n.hasOwnProperty(p)&&n[p]){var f=n[p];f=Array.isArray(f)?f:[f];for(var m=0;m<f.length;++m){if(d&&d.cause==p+","+m)return;var h=f[m],g=h.inside,b=!!h.lookbehind,v=!!h.greedy,y=h.alias;if(v&&!h.pattern.global){var w=h.pattern.toString().match(/[imsuy]*$/)[0];h.pattern=RegExp(h.pattern.source,w+"g")}for(var k=h.pattern||h,x=s.next,E=u;x!==t.tail&&!(d&&E>=d.reach);E+=x.value.length,x=x.next){var _=x.value;if(t.length>e.length)return;if(!(_ instanceof o)){var S,A=1;if(v){if(!(S=a(k,E,e,b))||S.index>=e.length)break;var C=S.index,T=S.index+S[0].length,q=E;for(q+=x.value.length;C>=q;)q+=(x=x.next).value.length;if(E=q-=x.value.length,x.value instanceof o)continue;for(var N=x;N!==t.tail&&(q<T||"string"==typeof N.value);N=N.next)A++,q+=N.value.length;A--,_=e.slice(E,q),S.index-=E}else if(!(S=a(k,0,_,b)))continue;C=S.index;var R=S[0],O=_.slice(0,C),L=_.slice(C+R.length),P=E+_.length;d&&P>d.reach&&(d.reach=P);var I=x.prev;if(O&&(I=c(t,I,O),E+=O.length),l(t,I,A),x=c(t,I,new o(p,g?r.tokenize(R,g):R,y,R)),L&&c(t,x,L),A>1){var D={cause:p+","+m,reach:P};i(e,t,n,x.prev,E,D),d&&D.reach>d.reach&&(d.reach=D.reach)}}}}}}function s(){var e={value:null,prev:null,next:null},t={value:null,prev:e,next:null};e.next=t,this.head=e,this.tail=t,this.length=0}function c(e,t,n){var r=t.next,o={value:n,prev:t,next:r};return t.next=o,r.prev=o,e.length++,o}function l(e,t,n){for(var r=t.next,o=0;o<n&&r!==e.tail;o++)r=r.next;t.next=r,r.prev=t,e.length-=o}return o.stringify=function e(t,n){if("string"==typeof t)return t;if(Array.isArray(t)){var o="";return t.forEach((function(t){o+=e(t,n)})),o}var a={type:t.type,content:e(t.content,n),tag:"span",classes:["token",t.type],attributes:{},language:n},i=t.alias;i&&(Array.isArray(i)?Array.prototype.push.apply(a.classes,i):a.classes.push(i)),r.hooks.run("wrap",a);var s="";for(var c in a.attributes)s+=" "+c+'="'+(a.attributes[c]||"").replace(/"/g,"&quot;")+'"';return"<"+a.tag+' class="'+a.classes.join(" ")+'"'+s+">"+a.content+"</"+a.tag+">"},r}(),o=r;r.default=r,o.languages.markup={comment:{pattern:/<!--(?:(?!<!--)[\s\S])*?-->/,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/<!DOCTYPE(?:[^>"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|<!--(?:[^-]|-(?!->))*-->)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^<!|>$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},o.languages.markup.tag.inside["attr-value"].inside.entity=o.languages.markup.entity,o.languages.markup.doctype.inside["internal-subset"].inside=o.languages.markup,o.hooks.add("wrap",(function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&amp;/,"&"))})),Object.defineProperty(o.languages.markup.tag,"addInlined",{value:function(e,t){var n={};n["language-"+t]={pattern:/(^<!\[CDATA\[)[\s\S]+?(?=\]\]>$)/i,lookbehind:!0,inside:o.languages[t]},n.cdata=/^<!\[CDATA\[|\]\]>$/i;var r={"included-cdata":{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,inside:n}};r["language-"+t]={pattern:/[\s\S]+/,inside:o.languages[t]};var a={};a[e]={pattern:RegExp(/(<__[^>]*>)(?:<!\[CDATA\[(?:[^\]]|\](?!\]>))*\]\]>|(?!<!\[CDATA\[)[\s\S])*?(?=<\/__>)/.source.replace(/__/g,(function(){return e})),"i"),lookbehind:!0,greedy:!0,inside:r},o.languages.insertBefore("markup","cdata",a)}}),Object.defineProperty(o.languages.markup.tag,"addAttribute",{value:function(e,t){o.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+e+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[t,"language-"+t],inside:o.languages[t]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),o.languages.html=o.languages.markup,o.languages.mathml=o.languages.markup,o.languages.svg=o.languages.markup,o.languages.xml=o.languages.extend("markup",{}),o.languages.ssml=o.languages.xml,o.languages.atom=o.languages.xml,o.languages.rss=o.languages.xml,function(e){var t="\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\b",n={pattern:/(^(["']?)\w+\2)[ \t]+\S.*/,lookbehind:!0,alias:"punctuation",inside:null},r={bash:n,environment:{pattern:RegExp("\\$"+t),alias:"constant"},variable:[{pattern:/\$?\(\([\s\S]+?\)\)/,greedy:!0,inside:{variable:[{pattern:/(^\$\(\([\s\S]+)\)\)/,lookbehind:!0},/^\$\(\(/],number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/--|\+\+|\*\*=?|<<=?|>>=?|&&|\|\||[=!+\-*/%<>^&|]=?|[?~:]/,punctuation:/\(\(?|\)\)?|,|;/}},{pattern:/\$\((?:\([^)]+\)|[^()])+\)|`[^`]+`/,greedy:!0,inside:{variable:/^\$\(|^`|\)$|`$/}},{pattern:/\$\{[^}]+\}/,greedy:!0,inside:{operator:/:[-=?+]?|[!\/]|##?|%%?|\^\^?|,,?/,punctuation:/[\[\]]/,environment:{pattern:RegExp("(\\{)"+t),lookbehind:!0,alias:"constant"}}},/\$(?:\w+|[#?*!@$])/],entity:/\\(?:[abceEfnrtv\\"]|O?[0-7]{1,3}|U[0-9a-fA-F]{8}|u[0-9a-fA-F]{4}|x[0-9a-fA-F]{1,2})/};e.languages.bash={shebang:{pattern:/^#!\s*\/.*/,alias:"important"},comment:{pattern:/(^|[^"{\\$])#.*/,lookbehind:!0},"function-name":[{pattern:/(\bfunction\s+)[\w-]+(?=(?:\s*\(?:\s*\))?\s*\{)/,lookbehind:!0,alias:"function"},{pattern:/\b[\w-]+(?=\s*\(\s*\)\s*\{)/,alias:"function"}],"for-or-select":{pattern:/(\b(?:for|select)\s+)\w+(?=\s+in\s)/,alias:"variable",lookbehind:!0},"assign-left":{pattern:/(^|[\s;|&]|[<>]\()\w+(?=\+?=)/,inside:{environment:{pattern:RegExp("(^|[\\s;|&]|[<>]\\()"+t),lookbehind:!0,alias:"constant"}},alias:"variable",lookbehind:!0},string:[{pattern:/((?:^|[^<])<<-?\s*)(\w+)\s[\s\S]*?(?:\r?\n|\r)\2/,lookbehind:!0,greedy:!0,inside:r},{pattern:/((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s[\s\S]*?(?:\r?\n|\r)\3/,lookbehind:!0,greedy:!0,inside:{bash:n}},{pattern:/(^|[^\\](?:\\\\)*)"(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|[^"\\`$])*"/,lookbehind:!0,greedy:!0,inside:r},{pattern:/(^|[^$\\])'[^']*'/,lookbehind:!0,greedy:!0},{pattern:/\$'(?:[^'\\]|\\[\s\S])*'/,greedy:!0,inside:{entity:r.entity}}],environment:{pattern:RegExp("\\$?"+t),alias:"constant"},variable:r.variable,function:{pattern:/(^|[\s;|&]|[<>]\()(?:add|apropos|apt|apt-cache|apt-get|aptitude|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|docker|docker-compose|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|node|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|podman|podman-compose|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vcpkg|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\s;|&])/,lookbehind:!0},keyword:{pattern:/(^|[\s;|&]|[<>]\()(?:case|do|done|elif|else|esac|fi|for|function|if|in|select|then|until|while)(?=$|[)\s;|&])/,lookbehind:!0},builtin:{pattern:/(^|[\s;|&]|[<>]\()(?:\.|:|alias|bind|break|builtin|caller|cd|command|continue|declare|echo|enable|eval|exec|exit|export|getopts|hash|help|let|local|logout|mapfile|printf|pwd|read|readarray|readonly|return|set|shift|shopt|source|test|times|trap|type|typeset|ulimit|umask|unalias|unset)(?=$|[)\s;|&])/,lookbehind:!0,alias:"class-name"},boolean:{pattern:/(^|[\s;|&]|[<>]\()(?:false|true)(?=$|[)\s;|&])/,lookbehind:!0},"file-descriptor":{pattern:/\B&\d\b/,alias:"important"},operator:{pattern:/\d?<>|>\||\+=|=[=~]?|!=?|<<[<-]?|[&\d]?>>|\d[<>]&?|[<>][&=]?|&[>&]?|\|[&|]?/,inside:{"file-descriptor":{pattern:/^\d/,alias:"important"}}},punctuation:/\$?\(\(?|\)\)?|\.\.|[{}[\];\\]/,number:{pattern:/(^|\s)(?:[1-9]\d*|0)(?:[.,]\d+)?\b/,lookbehind:!0}},n.inside=e.languages.bash;for(var o=["comment","function-name","for-or-select","assign-left","string","environment","function","keyword","builtin","boolean","file-descriptor","operator","punctuation","number"],a=r.variable[1].inside,i=0;i<o.length;i++)a[o[i]]=e.languages.bash[o[i]];e.languages.shell=e.languages.bash}(o),o.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/,boolean:/\b(?:false|true)\b/,function:/\b\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/},o.languages.c=o.languages.extend("clike",{comment:{pattern:/\/\/(?:[^\r\n\\]|\\(?:\r\n?|\n|(?![\r\n])))*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},"class-name":{pattern:/(\b(?:enum|struct)\s+(?:__attribute__\s*\(\([\s\S]*?\)\)\s*)?)\w+|\b[a-z]\w*_t\b/,lookbehind:!0},keyword:/\b(?:_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|__attribute__|asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|inline|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|typeof|union|unsigned|void|volatile|while)\b/,function:/\b[a-z_]\w*(?=\s*\()/i,number:/(?:\b0x(?:[\da-f]+(?:\.[\da-f]*)?|\.[\da-f]+)(?:p[+-]?\d+)?|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)[ful]{0,4}/i,operator:/>>=?|<<=?|->|([-+&|:])\1|[?:~]|[-+*/%&|^!=<>]=?/}),o.languages.insertBefore("c","string",{char:{pattern:/'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n]){0,32}'/,greedy:!0}}),o.languages.insertBefore("c","string",{macro:{pattern:/(^[\t ]*)#\s*[a-z](?:[^\r\n\\/]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|\\(?:\r\n|[\s\S]))*/im,lookbehind:!0,greedy:!0,alias:"property",inside:{string:[{pattern:/^(#\s*include\s*)<[^>]+>/,lookbehind:!0},o.languages.c.string],char:o.languages.c.char,comment:o.languages.c.comment,"macro-name":[{pattern:/(^#\s*define\s+)\w+\b(?!\()/i,lookbehind:!0},{pattern:/(^#\s*define\s+)\w+\b(?=\()/i,lookbehind:!0,alias:"function"}],directive:{pattern:/^(#\s*)[a-z]+/,lookbehind:!0,alias:"keyword"},"directive-hash":/^#/,punctuation:/##|\\(?=[\r\n])/,expression:{pattern:/\S[\s\S]*/,inside:o.languages.c}}}}),o.languages.insertBefore("c","function",{constant:/\b(?:EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|__DATE__|__FILE__|__LINE__|__TIMESTAMP__|__TIME__|__func__|stderr|stdin|stdout)\b/}),delete o.languages.c.boolean,function(e){var t=/\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|char8_t|class|co_await|co_return|co_yield|compl|concept|const|const_cast|consteval|constexpr|constinit|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|final|float|for|friend|goto|if|import|inline|int|int16_t|int32_t|int64_t|int8_t|long|module|mutable|namespace|new|noexcept|nullptr|operator|override|private|protected|public|register|reinterpret_cast|requires|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|uint16_t|uint32_t|uint64_t|uint8_t|union|unsigned|using|virtual|void|volatile|wchar_t|while)\b/,n=/\b(?!<keyword>)\w+(?:\s*\.\s*\w+)*\b/.source.replace(/<keyword>/g,(function(){return t.source}));e.languages.cpp=e.languages.extend("c",{"class-name":[{pattern:RegExp(/(\b(?:class|concept|enum|struct|typename)\s+)(?!<keyword>)\w+/.source.replace(/<keyword>/g,(function(){return t.source}))),lookbehind:!0},/\b[A-Z]\w*(?=\s*::\s*\w+\s*\()/,/\b[A-Z_]\w*(?=\s*::\s*~\w+\s*\()/i,/\b\w+(?=\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>\s*::\s*\w+\s*\()/],keyword:t,number:{pattern:/(?:\b0b[01']+|\b0x(?:[\da-f']+(?:\.[\da-f']*)?|\.[\da-f']+)(?:p[+-]?[\d']+)?|(?:\b[\d']+(?:\.[\d']*)?|\B\.[\d']+)(?:e[+-]?[\d']+)?)[ful]{0,4}/i,greedy:!0},operator:/>>=?|<<=?|->|--|\+\+|&&|\|\||[?:~]|<=>|[-+*/%&|^!=<>]=?|\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\b/,boolean:/\b(?:false|true)\b/}),e.languages.insertBefore("cpp","string",{module:{pattern:RegExp(/(\b(?:import|module)\s+)/.source+"(?:"+/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|<[^<>\r\n]*>/.source+"|"+/<mod-name>(?:\s*:\s*<mod-name>)?|:\s*<mod-name>/.source.replace(/<mod-name>/g,(function(){return n}))+")"),lookbehind:!0,greedy:!0,inside:{string:/^[<"][\s\S]+/,operator:/:/,punctuation:/\./}},"raw-string":{pattern:/R"([^()\\ ]{0,16})\([\s\S]*?\)\1"/,alias:"string",greedy:!0}}),e.languages.insertBefore("cpp","keyword",{"generic-function":{pattern:/\b(?!operator\b)[a-z_]\w*\s*<(?:[^<>]|<[^<>]*>)*>(?=\s*\()/i,inside:{function:/^\w+/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:e.languages.cpp}}}}),e.languages.insertBefore("cpp","operator",{"double-colon":{pattern:/::/,alias:"punctuation"}}),e.languages.insertBefore("cpp","class-name",{"base-clause":{pattern:/(\b(?:class|struct)\s+\w+\s*:\s*)[^;{}"'\s]+(?:\s+[^;{}"'\s]+)*(?=\s*[;{])/,lookbehind:!0,greedy:!0,inside:e.languages.extend("cpp",{})}}),e.languages.insertBefore("inside","double-colon",{"class-name":/\b[a-z_]\w*\b(?!\s*::)/i},e.languages.cpp["base-clause"])}(o),function(e){var t=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;e.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:/@[\w-](?:[^;{\s]|\s+(?![\s{]))*(?:;|(?=\s*\{))/,inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+t.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+t.source+"$"),alias:"url"}}},selector:{pattern:RegExp("(^|[{}\\s])[^{}\\s](?:[^{};\"'\\s]|\\s+(?![\\s{])|"+t.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:t,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},e.languages.css.atrule.inside.rest=e.languages.css;var n=e.languages.markup;n&&(n.tag.addInlined("style","css"),n.tag.addAttribute("style","css"))}(o),function(e){var t,n=/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/;e.languages.css.selector={pattern:e.languages.css.selector.pattern,lookbehind:!0,inside:t={"pseudo-element":/:(?:after|before|first-letter|first-line|selection)|::[-\w]+/,"pseudo-class":/:[-\w]+/,class:/\.[-\w]+/,id:/#[-\w]+/,attribute:{pattern:RegExp("\\[(?:[^[\\]\"']|"+n.source+")*\\]"),greedy:!0,inside:{punctuation:/^\[|\]$/,"case-sensitivity":{pattern:/(\s)[si]$/i,lookbehind:!0,alias:"keyword"},namespace:{pattern:/^(\s*)(?:(?!\s)[-*\w\xA0-\uFFFF])*\|(?!=)/,lookbehind:!0,inside:{punctuation:/\|$/}},"attr-name":{pattern:/^(\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+/,lookbehind:!0},"attr-value":[n,{pattern:/(=\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+(?=\s*$)/,lookbehind:!0}],operator:/[|~*^$]?=/}},"n-th":[{pattern:/(\(\s*)[+-]?\d*[\dn](?:\s*[+-]\s*\d+)?(?=\s*\))/,lookbehind:!0,inside:{number:/[\dn]+/,operator:/[+-]/}},{pattern:/(\(\s*)(?:even|odd)(?=\s*\))/i,lookbehind:!0}],combinator:/>|\+|~|\|\|/,punctuation:/[(),]/}},e.languages.css.atrule.inside["selector-function-argument"].inside=t,e.languages.insertBefore("css","property",{variable:{pattern:/(^|[^-\w\xA0-\uFFFF])--(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*/i,lookbehind:!0}});var r={pattern:/(\b\d+)(?:%|[a-z]+(?![\w-]))/,lookbehind:!0},o={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0};e.languages.insertBefore("css","function",{operator:{pattern:/(\s)[+\-*\/](?=\s)/,lookbehind:!0},hexcode:{pattern:/\B#[\da-f]{3,8}\b/i,alias:"color"},color:[{pattern:/(^|[^\w-])(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)(?![\w-])/i,lookbehind:!0},{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:r,number:o,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:r,number:o})}(o),o.languages.javascript=o.languages.extend("clike",{"class-name":[o.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),o.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,o.languages.insertBefore("javascript","keyword",{regex:{pattern:/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)\/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/,lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:o.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:o.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:o.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:o.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:o.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),o.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:o.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),o.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),o.languages.markup&&(o.languages.markup.tag.addInlined("script","javascript"),o.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript")),o.languages.js=o.languages.javascript,function(e){var t=/#(?!\{).+/,n={pattern:/#\{[^}]+\}/,alias:"variable"};e.languages.coffeescript=e.languages.extend("javascript",{comment:t,string:[{pattern:/'(?:\\[\s\S]|[^\\'])*'/,greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,greedy:!0,inside:{interpolation:n}}],keyword:/\b(?:and|break|by|catch|class|continue|debugger|delete|do|each|else|extend|extends|false|finally|for|if|in|instanceof|is|isnt|let|loop|namespace|new|no|not|null|of|off|on|or|own|return|super|switch|then|this|throw|true|try|typeof|undefined|unless|until|when|while|window|with|yes|yield)\b/,"class-member":{pattern:/@(?!\d)\w+/,alias:"variable"}}),e.languages.insertBefore("coffeescript","comment",{"multiline-comment":{pattern:/###[\s\S]+?###/,alias:"comment"},"block-regex":{pattern:/\/{3}[\s\S]*?\/{3}/,alias:"regex",inside:{comment:t,interpolation:n}}}),e.languages.insertBefore("coffeescript","string",{"inline-javascript":{pattern:/`(?:\\[\s\S]|[^\\`])*`/,inside:{delimiter:{pattern:/^`|`$/,alias:"punctuation"},script:{pattern:/[\s\S]+/,alias:"language-javascript",inside:e.languages.javascript}}},"multiline-string":[{pattern:/'''[\s\S]*?'''/,greedy:!0,alias:"string"},{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string",inside:{interpolation:n}}]}),e.languages.insertBefore("coffeescript","keyword",{property:/(?!\d)\w+(?=\s*:(?!:))/}),delete e.languages.coffeescript["template-string"],e.languages.coffee=e.languages.coffeescript}(o),function(e){var t=/[*&][^\s[\]{},]+/,n=/!(?:<[\w\-%#;/?:@&=+$,.!~*'()[\]]+>|(?:[a-zA-Z\d-]*!)?[\w\-%#;/?:@&=+$.~*'()]+)?/,r="(?:"+n.source+"(?:[ \t]+"+t.source+")?|"+t.source+"(?:[ \t]+"+n.source+")?)",o=/(?:[^\s\x00-\x08\x0e-\x1f!"#%&'*,\-:>?@[\]`{|}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]|[?:-]<PLAIN>)(?:[ \t]*(?:(?![#:])<PLAIN>|:<PLAIN>))*/.source.replace(/<PLAIN>/g,(function(){return/[^\s\x00-\x08\x0e-\x1f,[\]{}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]/.source})),a=/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\\\r\n]|\\.)*'/.source;function i(e,t){t=(t||"").replace(/m/g,"")+"m";var n=/([:\-,[{]\s*(?:\s<<prop>>[ \t]+)?)(?:<<value>>)(?=[ \t]*(?:$|,|\]|\}|(?:[\r\n]\s*)?#))/.source.replace(/<<prop>>/g,(function(){return r})).replace(/<<value>>/g,(function(){return e}));return RegExp(n,t)}e.languages.yaml={scalar:{pattern:RegExp(/([\-:]\s*(?:\s<<prop>>[ \t]+)?[|>])[ \t]*(?:((?:\r?\n|\r)[ \t]+)\S[^\r\n]*(?:\2[^\r\n]+)*)/.source.replace(/<<prop>>/g,(function(){return r}))),lookbehind:!0,alias:"string"},comment:/#.*/,key:{pattern:RegExp(/((?:^|[:\-,[{\r\n?])[ \t]*(?:<<prop>>[ \t]+)?)<<key>>(?=\s*:\s)/.source.replace(/<<prop>>/g,(function(){return r})).replace(/<<key>>/g,(function(){return"(?:"+o+"|"+a+")"}))),lookbehind:!0,greedy:!0,alias:"atrule"},directive:{pattern:/(^[ \t]*)%.+/m,lookbehind:!0,alias:"important"},datetime:{pattern:i(/\d{4}-\d\d?-\d\d?(?:[tT]|[ \t]+)\d\d?:\d{2}:\d{2}(?:\.\d*)?(?:[ \t]*(?:Z|[-+]\d\d?(?::\d{2})?))?|\d{4}-\d{2}-\d{2}|\d\d?:\d{2}(?::\d{2}(?:\.\d*)?)?/.source),lookbehind:!0,alias:"number"},boolean:{pattern:i(/false|true/.source,"i"),lookbehind:!0,alias:"important"},null:{pattern:i(/null|~/.source,"i"),lookbehind:!0,alias:"important"},string:{pattern:i(a),lookbehind:!0,greedy:!0},number:{pattern:i(/[+-]?(?:0x[\da-f]+|0o[0-7]+|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?|\.inf|\.nan)/.source,"i"),lookbehind:!0},tag:n,important:t,punctuation:/---|[:[\]{}\-,|>?]|\.\.\./},e.languages.yml=e.languages.yaml}(o),function(e){var t=/(?:\\.|[^\\\n\r]|(?:\n|\r\n?)(?![\r\n]))/.source;function n(e){return e=e.replace(/<inner>/g,(function(){return t})),RegExp(/((?:^|[^\\])(?:\\{2})*)/.source+"(?:"+e+")")}var r=/(?:\\.|``(?:[^`\r\n]|`(?!`))+``|`[^`\r\n]+`|[^\\|\r\n`])+/.source,o=/\|?__(?:\|__)+\|?(?:(?:\n|\r\n?)|(?![\s\S]))/.source.replace(/__/g,(function(){return r})),a=/\|?[ \t]*:?-{3,}:?[ \t]*(?:\|[ \t]*:?-{3,}:?[ \t]*)+\|?(?:\n|\r\n?)/.source;e.languages.markdown=e.languages.extend("markup",{}),e.languages.insertBefore("markdown","prolog",{"front-matter-block":{pattern:/(^(?:\s*[\r\n])?)---(?!.)[\s\S]*?[\r\n]---(?!.)/,lookbehind:!0,greedy:!0,inside:{punctuation:/^---|---$/,"front-matter":{pattern:/\S+(?:\s+\S+)*/,alias:["yaml","language-yaml"],inside:e.languages.yaml}}},blockquote:{pattern:/^>(?:[\t ]*>)*/m,alias:"punctuation"},table:{pattern:RegExp("^"+o+a+"(?:"+o+")*","m"),inside:{"table-data-rows":{pattern:RegExp("^("+o+a+")(?:"+o+")*$"),lookbehind:!0,inside:{"table-data":{pattern:RegExp(r),inside:e.languages.markdown},punctuation:/\|/}},"table-line":{pattern:RegExp("^("+o+")"+a+"$"),lookbehind:!0,inside:{punctuation:/\||:?-{3,}:?/}},"table-header-row":{pattern:RegExp("^"+o+"$"),inside:{"table-header":{pattern:RegExp(r),alias:"important",inside:e.languages.markdown},punctuation:/\|/}}}},code:[{pattern:/((?:^|\n)[ \t]*\n|(?:^|\r\n?)[ \t]*\r\n?)(?: {4}|\t).+(?:(?:\n|\r\n?)(?: {4}|\t).+)*/,lookbehind:!0,alias:"keyword"},{pattern:/^```[\s\S]*?^```$/m,greedy:!0,inside:{"code-block":{pattern:/^(```.*(?:\n|\r\n?))[\s\S]+?(?=(?:\n|\r\n?)^```$)/m,lookbehind:!0},"code-language":{pattern:/^(```).+/,lookbehind:!0},punctuation:/```/}}],title:[{pattern:/\S.*(?:\n|\r\n?)(?:==+|--+)(?=[ \t]*$)/m,alias:"important",inside:{punctuation:/==+$|--+$/}},{pattern:/(^\s*)#.+/m,lookbehind:!0,alias:"important",inside:{punctuation:/^#+|#+$/}}],hr:{pattern:/(^\s*)([*-])(?:[\t ]*\2){2,}(?=\s*$)/m,lookbehind:!0,alias:"punctuation"},list:{pattern:/(^\s*)(?:[*+-]|\d+\.)(?=[\t ].)/m,lookbehind:!0,alias:"punctuation"},"url-reference":{pattern:/!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:\\.|[^>\\])+>)(?:[\t ]+(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\)))?/,inside:{variable:{pattern:/^(!?\[)[^\]]+/,lookbehind:!0},string:/(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\))$/,punctuation:/^[\[\]!:]|[<>]/},alias:"url"},bold:{pattern:n(/\b__(?:(?!_)<inner>|_(?:(?!_)<inner>)+_)+__\b|\*\*(?:(?!\*)<inner>|\*(?:(?!\*)<inner>)+\*)+\*\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^..)[\s\S]+(?=..$)/,lookbehind:!0,inside:{}},punctuation:/\*\*|__/}},italic:{pattern:n(/\b_(?:(?!_)<inner>|__(?:(?!_)<inner>)+__)+_\b|\*(?:(?!\*)<inner>|\*\*(?:(?!\*)<inner>)+\*\*)+\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^.)[\s\S]+(?=.$)/,lookbehind:!0,inside:{}},punctuation:/[*_]/}},strike:{pattern:n(/(~~?)(?:(?!~)<inner>)+\2/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^~~?)[\s\S]+(?=\1$)/,lookbehind:!0,inside:{}},punctuation:/~~?/}},"code-snippet":{pattern:/(^|[^\\`])(?:``[^`\r\n]+(?:`[^`\r\n]+)*``(?!`)|`[^`\r\n]+`(?!`))/,lookbehind:!0,greedy:!0,alias:["code","keyword"]},url:{pattern:n(/!?\[(?:(?!\])<inner>)+\](?:\([^\s)]+(?:[\t ]+"(?:\\.|[^"\\])*")?\)|[ \t]?\[(?:(?!\])<inner>)+\])/.source),lookbehind:!0,greedy:!0,inside:{operator:/^!/,content:{pattern:/(^\[)[^\]]+(?=\])/,lookbehind:!0,inside:{}},variable:{pattern:/(^\][ \t]?\[)[^\]]+(?=\]$)/,lookbehind:!0},url:{pattern:/(^\]\()[^\s)]+/,lookbehind:!0},string:{pattern:/(^[ \t]+)"(?:\\.|[^"\\])*"(?=\)$)/,lookbehind:!0}}}}),["url","bold","italic","strike"].forEach((function(t){["url","bold","italic","strike","code-snippet"].forEach((function(n){t!==n&&(e.languages.markdown[t].inside.content.inside[n]=e.languages.markdown[n])}))})),e.hooks.add("after-tokenize",(function(e){"markdown"!==e.language&&"md"!==e.language||function e(t){if(t&&"string"!=typeof t)for(var n=0,r=t.length;n<r;n++){var o=t[n];if("code"===o.type){var a=o.content[1],i=o.content[3];if(a&&i&&"code-language"===a.type&&"code-block"===i.type&&"string"==typeof a.content){var s=a.content.replace(/\b#/g,"sharp").replace(/\b\+\+/g,"pp"),c="language-"+(s=(/[a-z][\w-]*/i.exec(s)||[""])[0].toLowerCase());i.alias?"string"==typeof i.alias?i.alias=[i.alias,c]:i.alias.push(c):i.alias=[c]}}else e(o.content)}}(e.tokens)})),e.hooks.add("wrap",(function(t){if("code-block"===t.type){for(var n="",r=0,o=t.classes.length;r<o;r++){var a=t.classes[r],l=/language-(.+)/.exec(a);if(l){n=l[1];break}}var u,d=e.languages[n];if(d)t.content=e.highlight((u=t.content,u.replace(i,"").replace(/&(\w{1,8}|#x?[\da-f]{1,8});/gi,(function(e,t){var n;if("#"===(t=t.toLowerCase())[0])return n="x"===t[1]?parseInt(t.slice(2),16):Number(t.slice(1)),c(n);var r=s[t];return r||e}))),d,n);else if(n&&"none"!==n&&e.plugins.autoloader){var p="md-"+(new Date).valueOf()+"-"+Math.floor(1e16*Math.random());t.attributes.id=p,e.plugins.autoloader.loadLanguages(n,(function(){var t=document.getElementById(p);t&&(t.innerHTML=e.highlight(t.textContent,e.languages[n],n))}))}}}));var i=RegExp(e.languages.markup.tag.pattern.source,"gi"),s={amp:"&",lt:"<",gt:">",quot:'"'},c=String.fromCodePoint||String.fromCharCode;e.languages.md=e.languages.markdown}(o),o.languages.graphql={comment:/#.*/,description:{pattern:/(?:"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*")(?=\s*[a-z_])/i,greedy:!0,alias:"string",inside:{"language-markdown":{pattern:/(^"(?:"")?)(?!\1)[\s\S]+(?=\1$)/,lookbehind:!0,inside:o.languages.markdown}}},string:{pattern:/"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*"/,greedy:!0},number:/(?:\B-|\b)\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,boolean:/\b(?:false|true)\b/,variable:/\$[a-z_]\w*/i,directive:{pattern:/@[a-z_]\w*/i,alias:"function"},"attr-name":{pattern:/\b[a-z_]\w*(?=\s*(?:\((?:[^()"]|"(?:\\.|[^\\"\r\n])*")*\))?:)/i,greedy:!0},"atom-input":{pattern:/\b[A-Z]\w*Input\b/,alias:"class-name"},scalar:/\b(?:Boolean|Float|ID|Int|String)\b/,constant:/\b[A-Z][A-Z_\d]*\b/,"class-name":{pattern:/(\b(?:enum|implements|interface|on|scalar|type|union)\s+|&\s*|:\s*|\[)[A-Z_]\w*/,lookbehind:!0},fragment:{pattern:/(\bfragment\s+|\.{3}\s*(?!on\b))[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-mutation":{pattern:/(\bmutation\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-query":{pattern:/(\bquery\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},keyword:/\b(?:directive|enum|extend|fragment|implements|input|interface|mutation|on|query|repeatable|scalar|schema|subscription|type|union)\b/,operator:/[!=|&]|\.{3}/,"property-query":/\w+(?=\s*\()/,object:/\w+(?=\s*\{)/,punctuation:/[!(){}\[\]:=,]/,property:/\w+/},o.hooks.add("after-tokenize",(function(e){if("graphql"===e.language)for(var t=e.tokens.filter((function(e){return"string"!=typeof e&&"comment"!==e.type&&"scalar"!==e.type})),n=0;n<t.length;){var r=t[n++];if("keyword"===r.type&&"mutation"===r.content){var o=[];if(d(["definition-mutation","punctuation"])&&"("===u(1).content){n+=2;var a=p(/^\($/,/^\)$/);if(-1===a)continue;for(;n<a;n++){var i=u(0);"variable"===i.type&&(f(i,"variable-input"),o.push(i.content))}n=a+1}if(d(["punctuation","property-query"])&&"{"===u(0).content&&(n++,f(u(0),"property-mutation"),o.length>0)){var s=p(/^\{$/,/^\}$/);if(-1===s)continue;for(var c=n;c<s;c++){var l=t[c];"variable"===l.type&&o.indexOf(l.content)>=0&&f(l,"variable-input")}}}}function u(e){return t[n+e]}function d(e,t){t=t||0;for(var n=0;n<e.length;n++){var r=u(n+t);if(!r||r.type!==e[n])return!1}return!0}function p(e,r){for(var o=1,a=n;a<t.length;a++){var i=t[a],s=i.content;if("punctuation"===i.type&&"string"==typeof s)if(e.test(s))o++;else if(r.test(s)&&0===--o)return a}return-1}function f(e,t){var n=e.alias;n?Array.isArray(n)||(e.alias=n=[n]):e.alias=n=[],n.push(t)}})),o.languages.sql={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|(?:--|\/\/|#).*)/,lookbehind:!0},variable:[{pattern:/@(["'`])(?:\\[\s\S]|(?!\1)[^\\])+\1/,greedy:!0},/@[\w.$]+/],string:{pattern:/(^|[^@\\])("|')(?:\\[\s\S]|(?!\2)[^\\]|\2\2)*\2/,greedy:!0,lookbehind:!0},identifier:{pattern:/(^|[^@\\])`(?:\\[\s\S]|[^`\\]|``)*`/,greedy:!0,lookbehind:!0,inside:{punctuation:/^`|`$/}},function:/\b(?:AVG|COUNT|FIRST|FORMAT|LAST|LCASE|LEN|MAX|MID|MIN|MOD|NOW|ROUND|SUM|UCASE)(?=\s*\()/i,keyword:/\b(?:ACTION|ADD|AFTER|ALGORITHM|ALL|ALTER|ANALYZE|ANY|APPLY|AS|ASC|AUTHORIZATION|AUTO_INCREMENT|BACKUP|BDB|BEGIN|BERKELEYDB|BIGINT|BINARY|BIT|BLOB|BOOL|BOOLEAN|BREAK|BROWSE|BTREE|BULK|BY|CALL|CASCADED?|CASE|CHAIN|CHAR(?:ACTER|SET)?|CHECK(?:POINT)?|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMNS?|COMMENT|COMMIT(?:TED)?|COMPUTE|CONNECT|CONSISTENT|CONSTRAINT|CONTAINS(?:TABLE)?|CONTINUE|CONVERT|CREATE|CROSS|CURRENT(?:_DATE|_TIME|_TIMESTAMP|_USER)?|CURSOR|CYCLE|DATA(?:BASES?)?|DATE(?:TIME)?|DAY|DBCC|DEALLOCATE|DEC|DECIMAL|DECLARE|DEFAULT|DEFINER|DELAYED|DELETE|DELIMITERS?|DENY|DESC|DESCRIBE|DETERMINISTIC|DISABLE|DISCARD|DISK|DISTINCT|DISTINCTROW|DISTRIBUTED|DO|DOUBLE|DROP|DUMMY|DUMP(?:FILE)?|DUPLICATE|ELSE(?:IF)?|ENABLE|ENCLOSED|END|ENGINE|ENUM|ERRLVL|ERRORS|ESCAPED?|EXCEPT|EXEC(?:UTE)?|EXISTS|EXIT|EXPLAIN|EXTENDED|FETCH|FIELDS|FILE|FILLFACTOR|FIRST|FIXED|FLOAT|FOLLOWING|FOR(?: EACH ROW)?|FORCE|FOREIGN|FREETEXT(?:TABLE)?|FROM|FULL|FUNCTION|GEOMETRY(?:COLLECTION)?|GLOBAL|GOTO|GRANT|GROUP|HANDLER|HASH|HAVING|HOLDLOCK|HOUR|IDENTITY(?:COL|_INSERT)?|IF|IGNORE|IMPORT|INDEX|INFILE|INNER|INNODB|INOUT|INSERT|INT|INTEGER|INTERSECT|INTERVAL|INTO|INVOKER|ISOLATION|ITERATE|JOIN|KEYS?|KILL|LANGUAGE|LAST|LEAVE|LEFT|LEVEL|LIMIT|LINENO|LINES|LINESTRING|LOAD|LOCAL|LOCK|LONG(?:BLOB|TEXT)|LOOP|MATCH(?:ED)?|MEDIUM(?:BLOB|INT|TEXT)|MERGE|MIDDLEINT|MINUTE|MODE|MODIFIES|MODIFY|MONTH|MULTI(?:LINESTRING|POINT|POLYGON)|NATIONAL|NATURAL|NCHAR|NEXT|NO|NONCLUSTERED|NULLIF|NUMERIC|OFF?|OFFSETS?|ON|OPEN(?:DATASOURCE|QUERY|ROWSET)?|OPTIMIZE|OPTION(?:ALLY)?|ORDER|OUT(?:ER|FILE)?|OVER|PARTIAL|PARTITION|PERCENT|PIVOT|PLAN|POINT|POLYGON|PRECEDING|PRECISION|PREPARE|PREV|PRIMARY|PRINT|PRIVILEGES|PROC(?:EDURE)?|PUBLIC|PURGE|QUICK|RAISERROR|READS?|REAL|RECONFIGURE|REFERENCES|RELEASE|RENAME|REPEAT(?:ABLE)?|REPLACE|REPLICATION|REQUIRE|RESIGNAL|RESTORE|RESTRICT|RETURN(?:ING|S)?|REVOKE|RIGHT|ROLLBACK|ROUTINE|ROW(?:COUNT|GUIDCOL|S)?|RTREE|RULE|SAVE(?:POINT)?|SCHEMA|SECOND|SELECT|SERIAL(?:IZABLE)?|SESSION(?:_USER)?|SET(?:USER)?|SHARE|SHOW|SHUTDOWN|SIMPLE|SMALLINT|SNAPSHOT|SOME|SONAME|SQL|START(?:ING)?|STATISTICS|STATUS|STRIPED|SYSTEM_USER|TABLES?|TABLESPACE|TEMP(?:ORARY|TABLE)?|TERMINATED|TEXT(?:SIZE)?|THEN|TIME(?:STAMP)?|TINY(?:BLOB|INT|TEXT)|TOP?|TRAN(?:SACTIONS?)?|TRIGGER|TRUNCATE|TSEQUAL|TYPES?|UNBOUNDED|UNCOMMITTED|UNDEFINED|UNION|UNIQUE|UNLOCK|UNPIVOT|UNSIGNED|UPDATE(?:TEXT)?|USAGE|USE|USER|USING|VALUES?|VAR(?:BINARY|CHAR|CHARACTER|YING)|VIEW|WAITFOR|WARNINGS|WHEN|WHERE|WHILE|WITH(?: ROLLUP|IN)?|WORK|WRITE(?:TEXT)?|YEAR)\b/i,boolean:/\b(?:FALSE|NULL|TRUE)\b/i,number:/\b0x[\da-f]+\b|\b\d+(?:\.\d*)?|\B\.\d+\b/i,operator:/[-+*\/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?|\b(?:AND|BETWEEN|DIV|ILIKE|IN|IS|LIKE|NOT|OR|REGEXP|RLIKE|SOUNDS LIKE|XOR)\b/i,punctuation:/[;[\]()`,.]/},function(e){var t=e.languages.javascript["template-string"],n=t.pattern.source,r=t.inside.interpolation,o=r.inside["interpolation-punctuation"],a=r.pattern.source;function i(t,r){if(e.languages[t])return{pattern:RegExp("((?:"+r+")\\s*)"+n),lookbehind:!0,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},"embedded-code":{pattern:/[\s\S]+/,alias:t}}}}function s(e,t){return"___"+t.toUpperCase()+"_"+e+"___"}function c(t,n,r){var o={code:t,grammar:n,language:r};return e.hooks.run("before-tokenize",o),o.tokens=e.tokenize(o.code,o.grammar),e.hooks.run("after-tokenize",o),o.tokens}function l(t){var n={};n["interpolation-punctuation"]=o;var a=e.tokenize(t,n);if(3===a.length){var i=[1,1];i.push.apply(i,c(a[1],e.languages.javascript,"javascript")),a.splice.apply(a,i)}return new e.Token("interpolation",a,r.alias,t)}function u(t,n,r){var o=e.tokenize(t,{interpolation:{pattern:RegExp(a),lookbehind:!0}}),i=0,u={},d=c(o.map((function(e){if("string"==typeof e)return e;for(var n,o=e.content;-1!==t.indexOf(n=s(i++,r)););return u[n]=o,n})).join(""),n,r),p=Object.keys(u);return i=0,function e(t){for(var n=0;n<t.length;n++){if(i>=p.length)return;var r=t[n];if("string"==typeof r||"string"==typeof r.content){var o=p[i],a="string"==typeof r?r:r.content,s=a.indexOf(o);if(-1!==s){++i;var c=a.substring(0,s),d=l(u[o]),f=a.substring(s+o.length),m=[];if(c&&m.push(c),m.push(d),f){var h=[f];e(h),m.push.apply(m,h)}"string"==typeof r?(t.splice.apply(t,[n,1].concat(m)),n+=m.length-1):r.content=m}}else{var g=r.content;Array.isArray(g)?e(g):e([g])}}}(d),new e.Token(r,d,"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 d={javascript:!0,js:!0,typescript:!0,ts:!0,jsx:!0,tsx:!0};function p(e){return"string"==typeof e?e:Array.isArray(e)?e.map(p).join(""):p(e.content)}e.hooks.add("after-tokenize",(function(t){t.language in d&&function t(n){for(var r=0,o=n.length;r<o;r++){var a=n[r];if("string"!=typeof a){var i=a.content;if(Array.isArray(i))if("template-string"===a.type){var s=i[1];if(3===i.length&&"string"!=typeof s&&"embedded-code"===s.type){var c=p(s),l=s.alias,d=Array.isArray(l)?l[0]:l,f=e.languages[d];if(!f)continue;i[1]=u(c,f,d)}}else t(i);else"string"!=typeof i&&t([i])}}}(t.tokens)}))}(o),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}(o),function(e){function t(e,t){return RegExp(e.replace(/<ID>/g,(function(){return/(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/.source})),t)}e.languages.insertBefore("javascript","function-variable",{"method-variable":{pattern:RegExp("(\\.\\s*)"+e.languages.javascript["function-variable"].pattern.source),lookbehind:!0,alias:["function-variable","method","function","property-access"]}}),e.languages.insertBefore("javascript","function",{method:{pattern:RegExp("(\\.\\s*)"+e.languages.javascript.function.source),lookbehind:!0,alias:["function","property-access"]}}),e.languages.insertBefore("javascript","constant",{"known-class-name":[{pattern:/\b(?:(?:Float(?:32|64)|(?:Int|Uint)(?:8|16|32)|Uint8Clamped)?Array|ArrayBuffer|BigInt|Boolean|DataView|Date|Error|Function|Intl|JSON|(?:Weak)?(?:Map|Set)|Math|Number|Object|Promise|Proxy|Reflect|RegExp|String|Symbol|WebAssembly)\b/,alias:"class-name"},{pattern:/\b(?:[A-Z]\w*)Error\b/,alias:"class-name"}]}),e.languages.insertBefore("javascript","keyword",{imports:{pattern:t(/(\bimport\b\s*)(?:<ID>(?:\s*,\s*(?:\*\s*as\s+<ID>|\{[^{}]*\}))?|\*\s*as\s+<ID>|\{[^{}]*\})(?=\s*\bfrom\b)/.source),lookbehind:!0,inside:e.languages.javascript},exports:{pattern:t(/(\bexport\b\s*)(?:\*(?:\s*as\s+<ID>)?(?=\s*\bfrom\b)|\{[^{}]*\})/.source),lookbehind:!0,inside:e.languages.javascript}}),e.languages.javascript.keyword.unshift({pattern:/\b(?:as|default|export|from|import)\b/,alias:"module"},{pattern:/\b(?:await|break|catch|continue|do|else|finally|for|if|return|switch|throw|try|while|yield)\b/,alias:"control-flow"},{pattern:/\bnull\b/,alias:["null","nil"]},{pattern:/\bundefined\b/,alias:"nil"}),e.languages.insertBefore("javascript","operator",{spread:{pattern:/\.{3}/,alias:"operator"},arrow:{pattern:/=>/,alias:"operator"}}),e.languages.insertBefore("javascript","punctuation",{"property-access":{pattern:t(/(\.\s*)#?<ID>/.source),lookbehind:!0},"maybe-class-name":{pattern:/(^|[^$\w\xA0-\uFFFF])[A-Z][$\w\xA0-\uFFFF]+/,lookbehind:!0},dom:{pattern:/\b(?:document|(?:local|session)Storage|location|navigator|performance|window)\b/,alias:"variable"},console:{pattern:/\bconsole(?=\s*\.)/,alias:"class-name"}});for(var n=["function","function-variable","method","method-variable","property-access"],r=0;r<n.length;r++){var o=n[r],a=e.languages.javascript[o];"RegExp"===e.util.type(a)&&(a=e.languages.javascript[o]={pattern:a});var i=a.inside||{};a.inside=i,i["maybe-class-name"]=/^[A-Z][\s\S]*/}}(o),function(e){var t=e.util.clone(e.languages.javascript),n=/(?:\s|\/\/.*(?!.)|\/\*(?:[^*]|\*(?!\/))\*\/)/.source,r=/(?:\{(?:\{(?:\{[^{}]*\}|[^{}])*\}|[^{}])*\})/.source,o=/(?:\{<S>*\.{3}(?:[^{}]|<BRACES>)*\})/.source;function a(e,t){return e=e.replace(/<S>/g,(function(){return n})).replace(/<BRACES>/g,(function(){return r})).replace(/<SPREAD>/g,(function(){return o})),RegExp(e,t)}o=a(o).source,e.languages.jsx=e.languages.extend("markup",t),e.languages.jsx.tag.pattern=a(/<\/?(?:[\w.:-]+(?:<S>+(?:[\w.:$-]+(?:=(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s{'"/>=]+|<BRACES>))?|<SPREAD>))*<S>*\/?)?>/.source),e.languages.jsx.tag.inside.tag.pattern=/^<\/?[^\s>\/]*/,e.languages.jsx.tag.inside["attr-value"].pattern=/=(?!\{)(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s'">]+)/,e.languages.jsx.tag.inside.tag.inside["class-name"]=/^[A-Z]\w*(?:\.[A-Z]\w*)*$/,e.languages.jsx.tag.inside.comment=t.comment,e.languages.insertBefore("inside","attr-name",{spread:{pattern:a(/<SPREAD>/.source),inside:e.languages.jsx}},e.languages.jsx.tag),e.languages.insertBefore("inside","special-attr",{script:{pattern:a(/=<BRACES>/.source),alias:"language-javascript",inside:{"script-punctuation":{pattern:/^=(?=\{)/,alias:"punctuation"},rest:e.languages.jsx}}},e.languages.jsx.tag);var i=function(e){return e?"string"==typeof e?e:"string"==typeof e.content?e.content:e.content.map(i).join(""):""},s=function(t){for(var n=[],r=0;r<t.length;r++){var o=t[r],a=!1;if("string"!=typeof o&&("tag"===o.type&&o.content[0]&&"tag"===o.content[0].type?"</"===o.content[0].content[0].content?n.length>0&&n[n.length-1].tagName===i(o.content[0].content[1])&&n.pop():"/>"===o.content[o.content.length-1].content||n.push({tagName:i(o.content[0].content[1]),openedBraces:0}):n.length>0&&"punctuation"===o.type&&"{"===o.content?n[n.length-1].openedBraces++:n.length>0&&n[n.length-1].openedBraces>0&&"punctuation"===o.type&&"}"===o.content?n[n.length-1].openedBraces--:a=!0),(a||"string"==typeof o)&&n.length>0&&0===n[n.length-1].openedBraces){var c=i(o);r<t.length-1&&("string"==typeof t[r+1]||"plain-text"===t[r+1].type)&&(c+=i(t[r+1]),t.splice(r+1,1)),r>0&&("string"==typeof t[r-1]||"plain-text"===t[r-1].type)&&(c=i(t[r-1])+c,t.splice(r-1,1),r--),t[r]=new e.Token("plain-text",c,null,c)}o.content&&"string"!=typeof o.content&&s(o.content)}};e.hooks.add("after-tokenize",(function(e){"jsx"!==e.language&&"tsx"!==e.language||s(e.tokens)}))}(o),function(e){e.languages.diff={coord:[/^(?:\*{3}|-{3}|\+{3}).*$/m,/^@@.*@@$/m,/^\d.*$/m]};var t={"deleted-sign":"-","deleted-arrow":"<","inserted-sign":"+","inserted-arrow":">",unchanged:" ",diff:"!"};Object.keys(t).forEach((function(n){var r=t[n],o=[];/^\w+$/.test(n)||o.push(/\w+/.exec(n)[0]),"diff"===n&&o.push("bold"),e.languages.diff[n]={pattern:RegExp("^(?:["+r+"].*(?:\r\n?|\n|(?![\\s\\S])))+","m"),alias:o,inside:{line:{pattern:/(.)(?=[\s\S]).*(?:\r\n?|\n)?/,lookbehind:!0},prefix:{pattern:/[\s\S]/,alias:/\w+/.exec(n)[0]}}}})),Object.defineProperty(e.languages.diff,"PREFIXES",{value:t})}(o),o.languages.git={comment:/^#.*/m,deleted:/^[-\u2013].*/m,inserted:/^\+.*/m,string:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,command:{pattern:/^.*\$ git .*$/m,inside:{parameter:/\s--?\w+/}},coord:/^@@.*@@$/m,"commit-sha1":/^commit \w{40}$/m},o.languages.go=o.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"|`[^`]*`/,lookbehind:!0,greedy:!0},keyword:/\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\b/,boolean:/\b(?:_|false|iota|nil|true)\b/,number:[/\b0(?:b[01_]+|o[0-7_]+)i?\b/i,/\b0x(?:[a-f\d_]+(?:\.[a-f\d_]*)?|\.[a-f\d_]+)(?:p[+-]?\d+(?:_\d+)*)?i?(?!\w)/i,/(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?[\d_]+)?i?(?!\w)/i],operator:/[*\/%^!=]=?|\+[=+]?|-[=-]?|\|[=|]?|&(?:=|&|\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\./,builtin:/\b(?:append|bool|byte|cap|close|complex|complex(?:64|128)|copy|delete|error|float(?:32|64)|u?int(?:8|16|32|64)?|imag|len|make|new|panic|print(?:ln)?|real|recover|rune|string|uintptr)\b/}),o.languages.insertBefore("go","string",{char:{pattern:/'(?:\\.|[^'\\\r\n]){0,10}'/,greedy:!0}}),delete o.languages.go["class-name"],function(e){function t(e,t){return"___"+e.toUpperCase()+t+"___"}Object.defineProperties(e.languages["markup-templating"]={},{buildPlaceholders:{value:function(n,r,o,a){if(n.language===r){var i=n.tokenStack=[];n.code=n.code.replace(o,(function(e){if("function"==typeof a&&!a(e))return e;for(var o,s=i.length;-1!==n.code.indexOf(o=t(r,s));)++s;return i[s]=e,o})),n.grammar=e.languages.markup}}},tokenizePlaceholders:{value:function(n,r){if(n.language===r&&n.tokenStack){n.grammar=e.languages[r];var o=0,a=Object.keys(n.tokenStack);!function i(s){for(var c=0;c<s.length&&!(o>=a.length);c++){var l=s[c];if("string"==typeof l||l.content&&"string"==typeof l.content){var u=a[o],d=n.tokenStack[u],p="string"==typeof l?l:l.content,f=t(r,u),m=p.indexOf(f);if(m>-1){++o;var h=p.substring(0,m),g=new e.Token(r,e.tokenize(d,n.grammar),"language-"+r,d),b=p.substring(m+f.length),v=[];h&&v.push.apply(v,i([h])),v.push(g),b&&v.push.apply(v,i([b])),"string"==typeof l?s.splice.apply(s,[c,1].concat(v)):l.content=v}}else l.content&&i(l.content)}return s}(n.tokens)}}}})}(o),function(e){e.languages.handlebars={comment:/\{\{![\s\S]*?\}\}/,delimiter:{pattern:/^\{\{\{?|\}\}\}?$/,alias:"punctuation"},string:/(["'])(?:\\.|(?!\1)[^\\\r\n])*\1/,number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee][+-]?\d+)?/,boolean:/\b(?:false|true)\b/,block:{pattern:/^(\s*(?:~\s*)?)[#\/]\S+?(?=\s*(?:~\s*)?$|\s)/,lookbehind:!0,alias:"keyword"},brackets:{pattern:/\[[^\]]+\]/,inside:{punctuation:/\[|\]/,variable:/[\s\S]+/}},punctuation:/[!"#%&':()*+,.\/;<=>@\[\\\]^`{|}~]/,variable:/[^!"#%&'()*+,\/;<=>@\[\\\]^`{|}~\s]+/},e.hooks.add("before-tokenize",(function(t){e.languages["markup-templating"].buildPlaceholders(t,"handlebars",/\{\{\{[\s\S]+?\}\}\}|\{\{[\s\S]+?\}\}/g)})),e.hooks.add("after-tokenize",(function(t){e.languages["markup-templating"].tokenizePlaceholders(t,"handlebars")})),e.languages.hbs=e.languages.handlebars}(o),o.languages.json={property:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?=\s*:)/,lookbehind:!0,greedy:!0},string:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,lookbehind:!0,greedy:!0},comment:{pattern:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,punctuation:/[{}[\],]/,operator:/:/,boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"}},o.languages.webmanifest=o.languages.json,o.languages.less=o.languages.extend("css",{comment:[/\/\*[\s\S]*?\*\//,{pattern:/(^|[^\\])\/\/.*/,lookbehind:!0}],atrule:{pattern:/@[\w-](?:\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{punctuation:/[:()]/}},selector:{pattern:/(?:@\{[\w-]+\}|[^{};\s@])(?:@\{[\w-]+\}|\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};@\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{variable:/@+[\w-]+/}},property:/(?:@\{[\w-]+\}|[\w-])+(?:\+_?)?(?=\s*:)/,operator:/[+\-*\/]/}),o.languages.insertBefore("less","property",{variable:[{pattern:/@[\w-]+\s*:/,inside:{punctuation:/:/}},/@@?[\w-]+/],"mixin-usage":{pattern:/([{;]\s*)[.#](?!\d)[\w-].*?(?=[(;])/,lookbehind:!0,alias:"function"}}),o.languages.makefile={comment:{pattern:/(^|[^\\])#(?:\\(?:\r\n|[\s\S])|[^\\\r\n])*/,lookbehind:!0},string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"builtin-target":{pattern:/\.[A-Z][^:#=\s]+(?=\s*:(?!=))/,alias:"builtin"},target:{pattern:/^(?:[^:=\s]|[ \t]+(?![\s:]))+(?=\s*:(?!=))/m,alias:"symbol",inside:{variable:/\$+(?:(?!\$)[^(){}:#=\s]+|(?=[({]))/}},variable:/\$+(?:(?!\$)[^(){}:#=\s]+|\([@*%<^+?][DF]\)|(?=[({]))/,keyword:/-include\b|\b(?:define|else|endef|endif|export|ifn?def|ifn?eq|include|override|private|sinclude|undefine|unexport|vpath)\b/,function:{pattern:/(\()(?:abspath|addsuffix|and|basename|call|dir|error|eval|file|filter(?:-out)?|findstring|firstword|flavor|foreach|guile|if|info|join|lastword|load|notdir|or|origin|patsubst|realpath|shell|sort|strip|subst|suffix|value|warning|wildcard|word(?:list|s)?)(?=[ \t])/,lookbehind:!0},operator:/(?:::|[?:+!])?=|[|@]/,punctuation:/[:;(){}]/},o.languages.objectivec=o.languages.extend("c",{string:{pattern:/@?"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},keyword:/\b(?:asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|in|inline|int|long|register|return|self|short|signed|sizeof|static|struct|super|switch|typedef|typeof|union|unsigned|void|volatile|while)\b|(?:@interface|@end|@implementation|@protocol|@class|@public|@protected|@private|@property|@try|@catch|@finally|@throw|@synthesize|@dynamic|@selector)\b/,operator:/-[->]?|\+\+?|!=?|<<?=?|>>?=?|==?|&&?|\|\|?|[~^%?*\/@]/}),delete o.languages.objectivec["class-name"],o.languages.objc=o.languages.objectivec,o.languages.ocaml={comment:{pattern:/\(\*[\s\S]*?\*\)/,greedy:!0},char:{pattern:/'(?:[^\\\r\n']|\\(?:.|[ox]?[0-9a-f]{1,3}))'/i,greedy:!0},string:[{pattern:/"(?:\\(?:[\s\S]|\r\n)|[^\\\r\n"])*"/,greedy:!0},{pattern:/\{([a-z_]*)\|[\s\S]*?\|\1\}/,greedy:!0}],number:[/\b(?:0b[01][01_]*|0o[0-7][0-7_]*)\b/i,/\b0x[a-f0-9][a-f0-9_]*(?:\.[a-f0-9_]*)?(?:p[+-]?\d[\d_]*)?(?!\w)/i,/\b\d[\d_]*(?:\.[\d_]*)?(?:e[+-]?\d[\d_]*)?(?!\w)/i],directive:{pattern:/\B#\w+/,alias:"property"},label:{pattern:/\B~\w+/,alias:"property"},"type-variable":{pattern:/\B'\w+/,alias:"function"},variant:{pattern:/`\w+/,alias:"symbol"},keyword:/\b(?:as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|match|method|module|mutable|new|nonrec|object|of|open|private|rec|sig|struct|then|to|try|type|val|value|virtual|when|where|while|with)\b/,boolean:/\b(?:false|true)\b/,"operator-like-punctuation":{pattern:/\[[<>|]|[>|]\]|\{<|>\}/,alias:"punctuation"},operator:/\.[.~]|:[=>]|[=<>@^|&+\-*\/$%!?~][!$%&*+\-.\/:<=>?@^|~]*|\b(?:and|asr|land|lor|lsl|lsr|lxor|mod|or)\b/,punctuation:/;;|::|[(){}\[\].,:;#]|\b_\b/},o.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0,greedy:!0},"string-interpolation":{pattern:/(?:f|fr|rf)(?:("""|''')[\s\S]*?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2)/i,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^{])(?:\{\{)*)\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}])+\})+\})+\}/,lookbehind:!0,inside:{"format-spec":{pattern:/(:)[^:(){}]+(?=\}$)/,lookbehind:!0},"conversion-option":{pattern:/![sra](?=[:}]$)/,alias:"punctuation"},rest:null}},string:/[\s\S]+/}},"triple-quoted-string":{pattern:/(?:[rub]|br|rb)?("""|''')[\s\S]*?\1/i,greedy:!0,alias:"string"},string:{pattern:/(?:[rub]|br|rb)?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/i,greedy:!0},function:{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)\w+/i,lookbehind:!0},decorator:{pattern:/(^[\t ]*)@\w+(?:\.\w+)*/m,lookbehind:!0,alias:["annotation","punctuation"],inside:{punctuation:/\./}},keyword:/\b(?:_(?=\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\b/,builtin:/\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/,boolean:/\b(?:False|None|True)\b/,number:/\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\b|(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+(?:_\d+)*)(?:e[+-]?\d+(?:_\d+)*)?j?(?!\w)/i,operator:/[-+%=]=?|!=|:=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/},o.languages.python["string-interpolation"].inside.interpolation.inside.rest=o.languages.python,o.languages.py=o.languages.python,o.languages.reason=o.languages.extend("clike",{string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^\\\r\n"])*"/,greedy:!0},"class-name":/\b[A-Z]\w*/,keyword:/\b(?:and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|method|module|mutable|new|nonrec|object|of|open|or|private|rec|sig|struct|switch|then|to|try|type|val|virtual|when|while|with)\b/,operator:/\.{3}|:[:=]|\|>|->|=(?:==?|>)?|<=?|>=?|[|^?'#!~`]|[+\-*\/]\.?|\b(?:asr|land|lor|lsl|lsr|lxor|mod)\b/}),o.languages.insertBefore("reason","class-name",{char:{pattern:/'(?:\\x[\da-f]{2}|\\o[0-3][0-7][0-7]|\\\d{3}|\\.|[^'\\\r\n])'/,greedy:!0},constructor:/\b[A-Z]\w*\b(?!\s*\.)/,label:{pattern:/\b[a-z]\w*(?=::)/,alias:"symbol"}}),delete o.languages.reason.function,function(e){e.languages.sass=e.languages.extend("css",{comment:{pattern:/^([ \t]*)\/[\/*].*(?:(?:\r?\n|\r)\1[ \t].+)*/m,lookbehind:!0,greedy:!0}}),e.languages.insertBefore("sass","atrule",{"atrule-line":{pattern:/^(?:[ \t]*)[@+=].+/m,greedy:!0,inside:{atrule:/(?:@[\w-]+|[+=])/}}}),delete e.languages.sass.atrule;var t=/\$[-\w]+|#\{\$[-\w]+\}/,n=[/[+*\/%]|[=!]=|<=?|>=?|\b(?:and|not|or)\b/,{pattern:/(\s)-(?=\s)/,lookbehind:!0}];e.languages.insertBefore("sass","property",{"variable-line":{pattern:/^[ \t]*\$.+/m,greedy:!0,inside:{punctuation:/:/,variable:t,operator:n}},"property-line":{pattern:/^[ \t]*(?:[^:\s]+ *:.*|:[^:\s].*)/m,greedy:!0,inside:{property:[/[^:\s]+(?=\s*:)/,{pattern:/(:)[^:\s]+/,lookbehind:!0}],punctuation:/:/,variable:t,operator:n,important:e.languages.sass.important}}}),delete e.languages.sass.property,delete e.languages.sass.important,e.languages.insertBefore("sass","punctuation",{selector:{pattern:/^([ \t]*)\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*(?:,(?:\r?\n|\r)\1[ \t]+\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*)*/m,lookbehind:!0,greedy:!0}})}(o),o.languages.scss=o.languages.extend("css",{comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},atrule:{pattern:/@[\w-](?:\([^()]+\)|[^()\s]|\s+(?!\s))*?(?=\s+[{;])/,inside:{rule:/@[\w-]+/}},url:/(?:[-a-z]+-)?url(?=\()/i,selector:{pattern:/(?=\S)[^@;{}()]?(?:[^@;{}()\s]|\s+(?!\s)|#\{\$[-\w]+\})+(?=\s*\{(?:\}|\s|[^}][^:{}]*[:{][^}]))/,inside:{parent:{pattern:/&/,alias:"important"},placeholder:/%[-\w]+/,variable:/\$[-\w]+|#\{\$[-\w]+\}/}},property:{pattern:/(?:[-\w]|\$[-\w]|#\{\$[-\w]+\})+(?=\s*:)/,inside:{variable:/\$[-\w]+|#\{\$[-\w]+\}/}}}),o.languages.insertBefore("scss","atrule",{keyword:[/@(?:content|debug|each|else(?: if)?|extend|for|forward|function|if|import|include|mixin|return|use|warn|while)\b/i,{pattern:/( )(?:from|through)(?= )/,lookbehind:!0}]}),o.languages.insertBefore("scss","important",{variable:/\$[-\w]+|#\{\$[-\w]+\}/}),o.languages.insertBefore("scss","function",{"module-modifier":{pattern:/\b(?:as|hide|show|with)\b/i,alias:"keyword"},placeholder:{pattern:/%[-\w]+/,alias:"selector"},statement:{pattern:/\B!(?:default|optional)\b/i,alias:"keyword"},boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"},operator:{pattern:/(\s)(?:[-+*\/%]|[=!]=|<=?|>=?|and|not|or)(?=\s)/,lookbehind:!0}}),o.languages.scss.atrule.inside.rest=o.languages.scss,function(e){var t={pattern:/(\b\d+)(?:%|[a-z]+)/,lookbehind:!0},n={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0},r={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},url:{pattern:/\burl\((["']?).*?\1\)/i,greedy:!0},string:{pattern:/("|')(?:(?!\1)[^\\\r\n]|\\(?:\r\n|[\s\S]))*\1/,greedy:!0},interpolation:null,func:null,important:/\B!(?:important|optional)\b/i,keyword:{pattern:/(^|\s+)(?:(?:else|for|if|return|unless)(?=\s|$)|@[\w-]+)/,lookbehind:!0},hexcode:/#[\da-f]{3,6}/i,color:[/\b(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)\b/i,{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:t,number:n,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:t,boolean:/\b(?:false|true)\b/,operator:[/~|[+!\/%<>?=]=?|[-:]=|\*[*=]?|\.{2,3}|&&|\|\||\B-\B|\b(?:and|in|is(?: a| defined| not|nt)?|not|or)\b/],number:n,punctuation:/[{}()\[\];:,]/};r.interpolation={pattern:/\{[^\r\n}:]+\}/,alias:"variable",inside:{delimiter:{pattern:/^\{|\}$/,alias:"punctuation"},rest:r}},r.func={pattern:/[\w-]+\([^)]*\).*/,inside:{function:/^[^(]+/,rest:r}},e.languages.stylus={"atrule-declaration":{pattern:/(^[ \t]*)@.+/m,lookbehind:!0,inside:{atrule:/^@[\w-]+/,rest:r}},"variable-declaration":{pattern:/(^[ \t]*)[\w$-]+\s*.?=[ \t]*(?:\{[^{}]*\}|\S.*|$)/m,lookbehind:!0,inside:{variable:/^\S+/,rest:r}},statement:{pattern:/(^[ \t]*)(?:else|for|if|return|unless)[ \t].+/m,lookbehind:!0,inside:{keyword:/^\S+/,rest:r}},"property-declaration":{pattern:/((?:^|\{)([ \t]*))(?:[\w-]|\{[^}\r\n]+\})+(?:\s*:\s*|[ \t]+)(?!\s)[^{\r\n]*(?:;|[^{\r\n,]$(?!(?:\r?\n|\r)(?:\{|\2[ \t])))/m,lookbehind:!0,inside:{property:{pattern:/^[^\s:]+/,inside:{interpolation:r.interpolation}},rest:r}},selector:{pattern:/(^[ \t]*)(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)(?:(?:\r?\n|\r)(?:\1(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)))*(?:,$|\{|(?=(?:\r?\n|\r)(?:\{|\1[ \t])))/m,lookbehind:!0,inside:{interpolation:r.interpolation,comment:r.comment,punctuation:/[{},]/}},func:r.func,string:r.string,comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0,greedy:!0},interpolation:r.interpolation,punctuation:/[{}()\[\];:.]/}}(o),function(e){var t=e.util.clone(e.languages.typescript);e.languages.tsx=e.languages.extend("jsx",t),delete e.languages.tsx.parameter,delete e.languages.tsx["literal-property"];var n=e.languages.tsx.tag;n.pattern=RegExp(/(^|[^\w$]|(?=<\/))/.source+"(?:"+n.pattern.source+")",n.pattern.flags),n.lookbehind=!0}(o),o.languages.wasm={comment:[/\(;[\s\S]*?;\)/,{pattern:/;;.*/,greedy:!0}],string:{pattern:/"(?:\\[\s\S]|[^"\\])*"/,greedy:!0},keyword:[{pattern:/\b(?:align|offset)=/,inside:{operator:/=/}},{pattern:/\b(?:(?:f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|neg?|nearest|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|sqrt|store(?:8|16|32)?|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))?|memory\.(?:grow|size))\b/,inside:{punctuation:/\./}},/\b(?:anyfunc|block|br(?:_if|_table)?|call(?:_indirect)?|data|drop|elem|else|end|export|func|get_(?:global|local)|global|if|import|local|loop|memory|module|mut|nop|offset|param|result|return|select|set_(?:global|local)|start|table|tee_local|then|type|unreachable)\b/],variable:/\$[\w!#$%&'*+\-./:<=>?@\\^`|~]+/,number:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/,punctuation:/[()]/};const a=o},6969:e=>{e.exports&&(e.exports={core:{meta:{path:"components/prism-core.js",option:"mandatory"},core:"Core"},themes:{meta:{path:"themes/{id}.css",link:"index.html?theme={id}",exclusive:!0},prism:{title:"Default",option:"default"},"prism-dark":"Dark","prism-funky":"Funky","prism-okaidia":{title:"Okaidia",owner:"ocodia"},"prism-twilight":{title:"Twilight",owner:"remybach"},"prism-coy":{title:"Coy",owner:"tshedor"},"prism-solarizedlight":{title:"Solarized Light",owner:"hectormatos2011 "},"prism-tomorrow":{title:"Tomorrow Night",owner:"Rosey"}},languages:{meta:{path:"components/prism-{id}",noCSS:!0,examplesPath:"examples/prism-{id}",addCheckAll:!0},markup:{title:"Markup",alias:["html","xml","svg","mathml","ssml","atom","rss"],aliasTitles:{html:"HTML",xml:"XML",svg:"SVG",mathml:"MathML",ssml:"SSML",atom:"Atom",rss:"RSS"},option:"default"},css:{title:"CSS",option:"default",modify:"markup"},clike:{title:"C-like",option:"default"},javascript:{title:"JavaScript",require:"clike",modify:"markup",optional:"regex",alias:"js",option:"default"},abap:{title:"ABAP",owner:"dellagustin"},abnf:{title:"ABNF",owner:"RunDevelopment"},actionscript:{title:"ActionScript",require:"javascript",modify:"markup",owner:"Golmote"},ada:{title:"Ada",owner:"Lucretia"},agda:{title:"Agda",owner:"xy-ren"},al:{title:"AL",owner:"RunDevelopment"},antlr4:{title:"ANTLR4",alias:"g4",owner:"RunDevelopment"},apacheconf:{title:"Apache Configuration",owner:"GuiTeK"},apex:{title:"Apex",require:["clike","sql"],owner:"RunDevelopment"},apl:{title:"APL",owner:"ngn"},applescript:{title:"AppleScript",owner:"Golmote"},aql:{title:"AQL",owner:"RunDevelopment"},arduino:{title:"Arduino",require:"cpp",alias:"ino",owner:"dkern"},arff:{title:"ARFF",owner:"Golmote"},armasm:{title:"ARM Assembly",alias:"arm-asm",owner:"RunDevelopment"},arturo:{title:"Arturo",alias:"art",optional:["bash","css","javascript","markup","markdown","sql"],owner:"drkameleon"},asciidoc:{alias:"adoc",title:"AsciiDoc",owner:"Golmote"},aspnet:{title:"ASP.NET (C#)",require:["markup","csharp"],owner:"nauzilus"},asm6502:{title:"6502 Assembly",owner:"kzurawel"},asmatmel:{title:"Atmel AVR Assembly",owner:"cerkit"},autohotkey:{title:"AutoHotkey",owner:"aviaryan"},autoit:{title:"AutoIt",owner:"Golmote"},avisynth:{title:"AviSynth",alias:"avs",owner:"Zinfidel"},"avro-idl":{title:"Avro IDL",alias:"avdl",owner:"RunDevelopment"},awk:{title:"AWK",alias:"gawk",aliasTitles:{gawk:"GAWK"},owner:"RunDevelopment"},bash:{title:"Bash",alias:["sh","shell"],aliasTitles:{sh:"Shell",shell:"Shell"},owner:"zeitgeist87"},basic:{title:"BASIC",owner:"Golmote"},batch:{title:"Batch",owner:"Golmote"},bbcode:{title:"BBcode",alias:"shortcode",aliasTitles:{shortcode:"Shortcode"},owner:"RunDevelopment"},bbj:{title:"BBj",owner:"hyyan"},bicep:{title:"Bicep",owner:"johnnyreilly"},birb:{title:"Birb",require:"clike",owner:"Calamity210"},bison:{title:"Bison",require:"c",owner:"Golmote"},bnf:{title:"BNF",alias:"rbnf",aliasTitles:{rbnf:"RBNF"},owner:"RunDevelopment"},bqn:{title:"BQN",owner:"yewscion"},brainfuck:{title:"Brainfuck",owner:"Golmote"},brightscript:{title:"BrightScript",owner:"RunDevelopment"},bro:{title:"Bro",owner:"wayward710"},bsl:{title:"BSL (1C:Enterprise)",alias:"oscript",aliasTitles:{oscript:"OneScript"},owner:"Diversus23"},c:{title:"C",require:"clike",owner:"zeitgeist87"},csharp:{title:"C#",require:"clike",alias:["cs","dotnet"],owner:"mvalipour"},cpp:{title:"C++",require:"c",owner:"zeitgeist87"},cfscript:{title:"CFScript",require:"clike",alias:"cfc",owner:"mjclemente"},chaiscript:{title:"ChaiScript",require:["clike","cpp"],owner:"RunDevelopment"},cil:{title:"CIL",owner:"sbrl"},cilkc:{title:"Cilk/C",require:"c",alias:"cilk-c",owner:"OpenCilk"},cilkcpp:{title:"Cilk/C++",require:"cpp",alias:["cilk-cpp","cilk"],owner:"OpenCilk"},clojure:{title:"Clojure",owner:"troglotit"},cmake:{title:"CMake",owner:"mjrogozinski"},cobol:{title:"COBOL",owner:"RunDevelopment"},coffeescript:{title:"CoffeeScript",require:"javascript",alias:"coffee",owner:"R-osey"},concurnas:{title:"Concurnas",alias:"conc",owner:"jasontatton"},csp:{title:"Content-Security-Policy",owner:"ScottHelme"},cooklang:{title:"Cooklang",owner:"ahue"},coq:{title:"Coq",owner:"RunDevelopment"},crystal:{title:"Crystal",require:"ruby",owner:"MakeNowJust"},"css-extras":{title:"CSS Extras",require:"css",modify:"css",owner:"milesj"},csv:{title:"CSV",owner:"RunDevelopment"},cue:{title:"CUE",owner:"RunDevelopment"},cypher:{title:"Cypher",owner:"RunDevelopment"},d:{title:"D",require:"clike",owner:"Golmote"},dart:{title:"Dart",require:"clike",owner:"Golmote"},dataweave:{title:"DataWeave",owner:"machaval"},dax:{title:"DAX",owner:"peterbud"},dhall:{title:"Dhall",owner:"RunDevelopment"},diff:{title:"Diff",owner:"uranusjr"},django:{title:"Django/Jinja2",require:"markup-templating",alias:"jinja2",owner:"romanvm"},"dns-zone-file":{title:"DNS zone file",owner:"RunDevelopment",alias:"dns-zone"},docker:{title:"Docker",alias:"dockerfile",owner:"JustinBeckwith"},dot:{title:"DOT (Graphviz)",alias:"gv",optional:"markup",owner:"RunDevelopment"},ebnf:{title:"EBNF",owner:"RunDevelopment"},editorconfig:{title:"EditorConfig",owner:"osipxd"},eiffel:{title:"Eiffel",owner:"Conaclos"},ejs:{title:"EJS",require:["javascript","markup-templating"],owner:"RunDevelopment",alias:"eta",aliasTitles:{eta:"Eta"}},elixir:{title:"Elixir",owner:"Golmote"},elm:{title:"Elm",owner:"zwilias"},etlua:{title:"Embedded Lua templating",require:["lua","markup-templating"],owner:"RunDevelopment"},erb:{title:"ERB",require:["ruby","markup-templating"],owner:"Golmote"},erlang:{title:"Erlang",owner:"Golmote"},"excel-formula":{title:"Excel Formula",alias:["xlsx","xls"],owner:"RunDevelopment"},fsharp:{title:"F#",require:"clike",owner:"simonreynolds7"},factor:{title:"Factor",owner:"catb0t"},false:{title:"False",owner:"edukisto"},"firestore-security-rules":{title:"Firestore security rules",require:"clike",owner:"RunDevelopment"},flow:{title:"Flow",require:"javascript",owner:"Golmote"},fortran:{title:"Fortran",owner:"Golmote"},ftl:{title:"FreeMarker Template Language",require:"markup-templating",owner:"RunDevelopment"},gml:{title:"GameMaker Language",alias:"gamemakerlanguage",require:"clike",owner:"LiarOnce"},gap:{title:"GAP (CAS)",owner:"RunDevelopment"},gcode:{title:"G-code",owner:"RunDevelopment"},gdscript:{title:"GDScript",owner:"RunDevelopment"},gedcom:{title:"GEDCOM",owner:"Golmote"},gettext:{title:"gettext",alias:"po",owner:"RunDevelopment"},gherkin:{title:"Gherkin",owner:"hason"},git:{title:"Git",owner:"lgiraudel"},glsl:{title:"GLSL",require:"c",owner:"Golmote"},gn:{title:"GN",alias:"gni",owner:"RunDevelopment"},"linker-script":{title:"GNU Linker Script",alias:"ld",owner:"RunDevelopment"},go:{title:"Go",require:"clike",owner:"arnehormann"},"go-module":{title:"Go module",alias:"go-mod",owner:"RunDevelopment"},gradle:{title:"Gradle",require:"clike",owner:"zeabdelkhalek-badido18"},graphql:{title:"GraphQL",optional:"markdown",owner:"Golmote"},groovy:{title:"Groovy",require:"clike",owner:"robfletcher"},haml:{title:"Haml",require:"ruby",optional:["css","css-extras","coffeescript","erb","javascript","less","markdown","scss","textile"],owner:"Golmote"},handlebars:{title:"Handlebars",require:"markup-templating",alias:["hbs","mustache"],aliasTitles:{mustache:"Mustache"},owner:"Golmote"},haskell:{title:"Haskell",alias:"hs",owner:"bholst"},haxe:{title:"Haxe",require:"clike",optional:"regex",owner:"Golmote"},hcl:{title:"HCL",owner:"outsideris"},hlsl:{title:"HLSL",require:"c",owner:"RunDevelopment"},hoon:{title:"Hoon",owner:"matildepark"},http:{title:"HTTP",optional:["csp","css","hpkp","hsts","javascript","json","markup","uri"],owner:"danielgtaylor"},hpkp:{title:"HTTP Public-Key-Pins",owner:"ScottHelme"},hsts:{title:"HTTP Strict-Transport-Security",owner:"ScottHelme"},ichigojam:{title:"IchigoJam",owner:"BlueCocoa"},icon:{title:"Icon",owner:"Golmote"},"icu-message-format":{title:"ICU Message Format",owner:"RunDevelopment"},idris:{title:"Idris",alias:"idr",owner:"KeenS",require:"haskell"},ignore:{title:".ignore",owner:"osipxd",alias:["gitignore","hgignore","npmignore"],aliasTitles:{gitignore:".gitignore",hgignore:".hgignore",npmignore:".npmignore"}},inform7:{title:"Inform 7",owner:"Golmote"},ini:{title:"Ini",owner:"aviaryan"},io:{title:"Io",owner:"AlesTsurko"},j:{title:"J",owner:"Golmote"},java:{title:"Java",require:"clike",owner:"sherblot"},javadoc:{title:"JavaDoc",require:["markup","java","javadoclike"],modify:"java",optional:"scala",owner:"RunDevelopment"},javadoclike:{title:"JavaDoc-like",modify:["java","javascript","php"],owner:"RunDevelopment"},javastacktrace:{title:"Java stack trace",owner:"RunDevelopment"},jexl:{title:"Jexl",owner:"czosel"},jolie:{title:"Jolie",require:"clike",owner:"thesave"},jq:{title:"JQ",owner:"RunDevelopment"},jsdoc:{title:"JSDoc",require:["javascript","javadoclike","typescript"],modify:"javascript",optional:["actionscript","coffeescript"],owner:"RunDevelopment"},"js-extras":{title:"JS Extras",require:"javascript",modify:"javascript",optional:["actionscript","coffeescript","flow","n4js","typescript"],owner:"RunDevelopment"},json:{title:"JSON",alias:"webmanifest",aliasTitles:{webmanifest:"Web App Manifest"},owner:"CupOfTea696"},json5:{title:"JSON5",require:"json",owner:"RunDevelopment"},jsonp:{title:"JSONP",require:"json",owner:"RunDevelopment"},jsstacktrace:{title:"JS stack trace",owner:"sbrl"},"js-templates":{title:"JS Templates",require:"javascript",modify:"javascript",optional:["css","css-extras","graphql","markdown","markup","sql"],owner:"RunDevelopment"},julia:{title:"Julia",owner:"cdagnino"},keepalived:{title:"Keepalived Configure",owner:"dev-itsheng"},keyman:{title:"Keyman",owner:"mcdurdin"},kotlin:{title:"Kotlin",alias:["kt","kts"],aliasTitles:{kts:"Kotlin Script"},require:"clike",owner:"Golmote"},kumir:{title:"KuMir (\u041a\u0443\u041c\u0438\u0440)",alias:"kum",owner:"edukisto"},kusto:{title:"Kusto",owner:"RunDevelopment"},latex:{title:"LaTeX",alias:["tex","context"],aliasTitles:{tex:"TeX",context:"ConTeXt"},owner:"japborst"},latte:{title:"Latte",require:["clike","markup-templating","php"],owner:"nette"},less:{title:"Less",require:"css",optional:"css-extras",owner:"Golmote"},lilypond:{title:"LilyPond",require:"scheme",alias:"ly",owner:"RunDevelopment"},liquid:{title:"Liquid",require:"markup-templating",owner:"cinhtau"},lisp:{title:"Lisp",alias:["emacs","elisp","emacs-lisp"],owner:"JuanCaicedo"},livescript:{title:"LiveScript",owner:"Golmote"},llvm:{title:"LLVM IR",owner:"porglezomp"},log:{title:"Log file",optional:"javastacktrace",owner:"RunDevelopment"},lolcode:{title:"LOLCODE",owner:"Golmote"},lua:{title:"Lua",owner:"Golmote"},magma:{title:"Magma (CAS)",owner:"RunDevelopment"},makefile:{title:"Makefile",owner:"Golmote"},markdown:{title:"Markdown",require:"markup",optional:"yaml",alias:"md",owner:"Golmote"},"markup-templating":{title:"Markup templating",require:"markup",owner:"Golmote"},mata:{title:"Mata",owner:"RunDevelopment"},matlab:{title:"MATLAB",owner:"Golmote"},maxscript:{title:"MAXScript",owner:"RunDevelopment"},mel:{title:"MEL",owner:"Golmote"},mermaid:{title:"Mermaid",owner:"RunDevelopment"},metafont:{title:"METAFONT",owner:"LaeriExNihilo"},mizar:{title:"Mizar",owner:"Golmote"},mongodb:{title:"MongoDB",owner:"airs0urce",require:"javascript"},monkey:{title:"Monkey",owner:"Golmote"},moonscript:{title:"MoonScript",alias:"moon",owner:"RunDevelopment"},n1ql:{title:"N1QL",owner:"TMWilds"},n4js:{title:"N4JS",require:"javascript",optional:"jsdoc",alias:"n4jsd",owner:"bsmith-n4"},"nand2tetris-hdl":{title:"Nand To Tetris HDL",owner:"stephanmax"},naniscript:{title:"Naninovel Script",owner:"Elringus",alias:"nani"},nasm:{title:"NASM",owner:"rbmj"},neon:{title:"NEON",owner:"nette"},nevod:{title:"Nevod",owner:"nezaboodka"},nginx:{title:"nginx",owner:"volado"},nim:{title:"Nim",owner:"Golmote"},nix:{title:"Nix",owner:"Golmote"},nsis:{title:"NSIS",owner:"idleberg"},objectivec:{title:"Objective-C",require:"c",alias:"objc",owner:"uranusjr"},ocaml:{title:"OCaml",owner:"Golmote"},odin:{title:"Odin",owner:"edukisto"},opencl:{title:"OpenCL",require:"c",modify:["c","cpp"],owner:"Milania1"},openqasm:{title:"OpenQasm",alias:"qasm",owner:"RunDevelopment"},oz:{title:"Oz",owner:"Golmote"},parigp:{title:"PARI/GP",owner:"Golmote"},parser:{title:"Parser",require:"markup",owner:"Golmote"},pascal:{title:"Pascal",alias:"objectpascal",aliasTitles:{objectpascal:"Object Pascal"},owner:"Golmote"},pascaligo:{title:"Pascaligo",owner:"DefinitelyNotAGoat"},psl:{title:"PATROL Scripting Language",owner:"bertysentry"},pcaxis:{title:"PC-Axis",alias:"px",owner:"RunDevelopment"},peoplecode:{title:"PeopleCode",alias:"pcode",owner:"RunDevelopment"},perl:{title:"Perl",owner:"Golmote"},php:{title:"PHP",require:"markup-templating",owner:"milesj"},phpdoc:{title:"PHPDoc",require:["php","javadoclike"],modify:"php",owner:"RunDevelopment"},"php-extras":{title:"PHP Extras",require:"php",modify:"php",owner:"milesj"},"plant-uml":{title:"PlantUML",alias:"plantuml",owner:"RunDevelopment"},plsql:{title:"PL/SQL",require:"sql",owner:"Golmote"},powerquery:{title:"PowerQuery",alias:["pq","mscript"],owner:"peterbud"},powershell:{title:"PowerShell",owner:"nauzilus"},processing:{title:"Processing",require:"clike",owner:"Golmote"},prolog:{title:"Prolog",owner:"Golmote"},promql:{title:"PromQL",owner:"arendjr"},properties:{title:".properties",owner:"Golmote"},protobuf:{title:"Protocol Buffers",require:"clike",owner:"just-boris"},pug:{title:"Pug",require:["markup","javascript"],optional:["coffeescript","ejs","handlebars","less","livescript","markdown","scss","stylus","twig"],owner:"Golmote"},puppet:{title:"Puppet",owner:"Golmote"},pure:{title:"Pure",optional:["c","cpp","fortran"],owner:"Golmote"},purebasic:{title:"PureBasic",require:"clike",alias:"pbfasm",owner:"HeX0R101"},purescript:{title:"PureScript",require:"haskell",alias:"purs",owner:"sriharshachilakapati"},python:{title:"Python",alias:"py",owner:"multipetros"},qsharp:{title:"Q#",require:"clike",alias:"qs",owner:"fedonman"},q:{title:"Q (kdb+ database)",owner:"Golmote"},qml:{title:"QML",require:"javascript",owner:"RunDevelopment"},qore:{title:"Qore",require:"clike",owner:"temnroegg"},r:{title:"R",owner:"Golmote"},racket:{title:"Racket",require:"scheme",alias:"rkt",owner:"RunDevelopment"},cshtml:{title:"Razor C#",alias:"razor",require:["markup","csharp"],optional:["css","css-extras","javascript","js-extras"],owner:"RunDevelopment"},jsx:{title:"React JSX",require:["markup","javascript"],optional:["jsdoc","js-extras","js-templates"],owner:"vkbansal"},tsx:{title:"React TSX",require:["jsx","typescript"]},reason:{title:"Reason",require:"clike",owner:"Golmote"},regex:{title:"Regex",owner:"RunDevelopment"},rego:{title:"Rego",owner:"JordanSh"},renpy:{title:"Ren'py",alias:"rpy",owner:"HyuchiaDiego"},rescript:{title:"ReScript",alias:"res",owner:"vmarcosp"},rest:{title:"reST (reStructuredText)",owner:"Golmote"},rip:{title:"Rip",owner:"ravinggenius"},roboconf:{title:"Roboconf",owner:"Golmote"},robotframework:{title:"Robot Framework",alias:"robot",owner:"RunDevelopment"},ruby:{title:"Ruby",require:"clike",alias:"rb",owner:"samflores"},rust:{title:"Rust",owner:"Golmote"},sas:{title:"SAS",optional:["groovy","lua","sql"],owner:"Golmote"},sass:{title:"Sass (Sass)",require:"css",optional:"css-extras",owner:"Golmote"},scss:{title:"Sass (SCSS)",require:"css",optional:"css-extras",owner:"MoOx"},scala:{title:"Scala",require:"java",owner:"jozic"},scheme:{title:"Scheme",owner:"bacchus123"},"shell-session":{title:"Shell session",require:"bash",alias:["sh-session","shellsession"],owner:"RunDevelopment"},smali:{title:"Smali",owner:"RunDevelopment"},smalltalk:{title:"Smalltalk",owner:"Golmote"},smarty:{title:"Smarty",require:"markup-templating",optional:"php",owner:"Golmote"},sml:{title:"SML",alias:"smlnj",aliasTitles:{smlnj:"SML/NJ"},owner:"RunDevelopment"},solidity:{title:"Solidity (Ethereum)",alias:"sol",require:"clike",owner:"glachaud"},"solution-file":{title:"Solution file",alias:"sln",owner:"RunDevelopment"},soy:{title:"Soy (Closure Template)",require:"markup-templating",owner:"Golmote"},sparql:{title:"SPARQL",require:"turtle",owner:"Triply-Dev",alias:"rq"},"splunk-spl":{title:"Splunk SPL",owner:"RunDevelopment"},sqf:{title:"SQF: Status Quo Function (Arma 3)",require:"clike",owner:"RunDevelopment"},sql:{title:"SQL",owner:"multipetros"},squirrel:{title:"Squirrel",require:"clike",owner:"RunDevelopment"},stan:{title:"Stan",owner:"RunDevelopment"},stata:{title:"Stata Ado",require:["mata","java","python"],owner:"RunDevelopment"},iecst:{title:"Structured Text (IEC 61131-3)",owner:"serhioromano"},stylus:{title:"Stylus",owner:"vkbansal"},supercollider:{title:"SuperCollider",alias:"sclang",owner:"RunDevelopment"},swift:{title:"Swift",owner:"chrischares"},systemd:{title:"Systemd configuration file",owner:"RunDevelopment"},"t4-templating":{title:"T4 templating",owner:"RunDevelopment"},"t4-cs":{title:"T4 Text Templates (C#)",require:["t4-templating","csharp"],alias:"t4",owner:"RunDevelopment"},"t4-vb":{title:"T4 Text Templates (VB)",require:["t4-templating","vbnet"],owner:"RunDevelopment"},tap:{title:"TAP",owner:"isaacs",require:"yaml"},tcl:{title:"Tcl",owner:"PeterChaplin"},tt2:{title:"Template Toolkit 2",require:["clike","markup-templating"],owner:"gflohr"},textile:{title:"Textile",require:"markup",optional:"css",owner:"Golmote"},toml:{title:"TOML",owner:"RunDevelopment"},tremor:{title:"Tremor",alias:["trickle","troy"],owner:"darach",aliasTitles:{trickle:"trickle",troy:"troy"}},turtle:{title:"Turtle",alias:"trig",aliasTitles:{trig:"TriG"},owner:"jakubklimek"},twig:{title:"Twig",require:"markup-templating",owner:"brandonkelly"},typescript:{title:"TypeScript",require:"javascript",optional:"js-templates",alias:"ts",owner:"vkbansal"},typoscript:{title:"TypoScript",alias:"tsconfig",aliasTitles:{tsconfig:"TSConfig"},owner:"dkern"},unrealscript:{title:"UnrealScript",alias:["uscript","uc"],owner:"RunDevelopment"},uorazor:{title:"UO Razor Script",owner:"jaseowns"},uri:{title:"URI",alias:"url",aliasTitles:{url:"URL"},owner:"RunDevelopment"},v:{title:"V",require:"clike",owner:"taggon"},vala:{title:"Vala",require:"clike",optional:"regex",owner:"TemplarVolk"},vbnet:{title:"VB.Net",require:"basic",owner:"Bigsby"},velocity:{title:"Velocity",require:"markup",owner:"Golmote"},verilog:{title:"Verilog",owner:"a-rey"},vhdl:{title:"VHDL",owner:"a-rey"},vim:{title:"vim",owner:"westonganger"},"visual-basic":{title:"Visual Basic",alias:["vb","vba"],aliasTitles:{vba:"VBA"},owner:"Golmote"},warpscript:{title:"WarpScript",owner:"RunDevelopment"},wasm:{title:"WebAssembly",owner:"Golmote"},"web-idl":{title:"Web IDL",alias:"webidl",owner:"RunDevelopment"},wgsl:{title:"WGSL",owner:"Dr4gonthree"},wiki:{title:"Wiki markup",require:"markup",owner:"Golmote"},wolfram:{title:"Wolfram language",alias:["mathematica","nb","wl"],aliasTitles:{mathematica:"Mathematica",nb:"Mathematica Notebook"},owner:"msollami"},wren:{title:"Wren",owner:"clsource"},xeora:{title:"Xeora",require:"markup",alias:"xeoracube",aliasTitles:{xeoracube:"XeoraCube"},owner:"freakmaxi"},"xml-doc":{title:"XML doc (.net)",require:"markup",modify:["csharp","fsharp","vbnet"],owner:"RunDevelopment"},xojo:{title:"Xojo (REALbasic)",owner:"Golmote"},xquery:{title:"XQuery",require:"markup",owner:"Golmote"},yaml:{title:"YAML",alias:"yml",owner:"hason"},yang:{title:"YANG",owner:"RunDevelopment"},zig:{title:"Zig",owner:"RunDevelopment"}},plugins:{meta:{path:"plugins/{id}/prism-{id}",link:"plugins/{id}/"},"line-highlight":{title:"Line Highlight",description:"Highlights specific lines and/or line ranges."},"line-numbers":{title:"Line Numbers",description:"Line number at the beginning of code lines.",owner:"kuba-kubula"},"show-invisibles":{title:"Show Invisibles",description:"Show hidden characters such as tabs and line breaks.",optional:["autolinker","data-uri-highlight"]},autolinker:{title:"Autolinker",description:"Converts URLs and emails in code to clickable links. Parses Markdown links in comments."},wpd:{title:"WebPlatform Docs",description:'Makes tokens link to <a href="https://webplatform.github.io/docs/">WebPlatform.org documentation</a>. The links open in a new tab.'},"custom-class":{title:"Custom Class",description:"This plugin allows you to prefix Prism's default classes (<code>.comment</code> can become <code>.namespace--comment</code>) or replace them with your defined ones (like <code>.editor__comment</code>). You can even add new classes.",owner:"dvkndn",noCSS:!0},"file-highlight":{title:"File Highlight",description:"Fetch external files and highlight them with Prism. Used on the Prism website itself.",noCSS:!0},"show-language":{title:"Show Language",description:"Display the highlighted language in code blocks (inline code does not show the label).",owner:"nauzilus",noCSS:!0,require:"toolbar"},"jsonp-highlight":{title:"JSONP Highlight",description:"Fetch content with JSONP and highlight some interesting content (e.g. GitHub/Gists or Bitbucket API).",noCSS:!0,owner:"nauzilus"},"highlight-keywords":{title:"Highlight Keywords",description:"Adds special CSS classes for each keyword for fine-grained highlighting.",owner:"vkbansal",noCSS:!0},"remove-initial-line-feed":{title:"Remove initial line feed",description:"Removes the initial line feed in code blocks.",owner:"Golmote",noCSS:!0},"inline-color":{title:"Inline color",description:"Adds a small inline preview for colors in style sheets.",require:"css-extras",owner:"RunDevelopment"},previewers:{title:"Previewers",description:"Previewers for angles, colors, gradients, easing and time.",require:"css-extras",owner:"Golmote"},autoloader:{title:"Autoloader",description:"Automatically loads the needed languages to highlight the code blocks.",owner:"Golmote",noCSS:!0},"keep-markup":{title:"Keep Markup",description:"Prevents custom markup from being dropped out during highlighting.",owner:"Golmote",optional:"normalize-whitespace",noCSS:!0},"command-line":{title:"Command Line",description:"Display a command line with a prompt and, optionally, the output/response from the commands.",owner:"chriswells0"},"unescaped-markup":{title:"Unescaped Markup",description:"Write markup without having to escape anything."},"normalize-whitespace":{title:"Normalize Whitespace",description:"Supports multiple operations to normalize whitespace in code blocks.",owner:"zeitgeist87",optional:"unescaped-markup",noCSS:!0},"data-uri-highlight":{title:"Data-URI Highlight",description:"Highlights data-URI contents.",owner:"Golmote",noCSS:!0},toolbar:{title:"Toolbar",description:"Attach a toolbar for plugins to easily register buttons on the top of a code block.",owner:"mAAdhaTTah"},"copy-to-clipboard":{title:"Copy to Clipboard Button",description:"Add a button that copies the code block to the clipboard when clicked.",owner:"mAAdhaTTah",require:"toolbar",noCSS:!0},"download-button":{title:"Download Button",description:"A button in the toolbar of a code block adding a convenient way to download a code file.",owner:"Golmote",require:"toolbar",noCSS:!0},"match-braces":{title:"Match braces",description:"Highlights matching braces.",owner:"RunDevelopment"},"diff-highlight":{title:"Diff Highlight",description:"Highlights the code inside diff blocks.",owner:"RunDevelopment",require:"diff"},"filter-highlight-all":{title:"Filter highlightAll",description:"Filters the elements the <code>highlightAll</code> and <code>highlightAllUnder</code> methods actually highlight.",owner:"RunDevelopment",noCSS:!0},treeview:{title:"Treeview",description:"A language with special styles to highlight file system tree structures.",owner:"Golmote"}}})},8722:(e,t,n)=>{const r=n(6969),o=n(98380),a=new Set;function i(e){void 0===e?e=Object.keys(r.languages).filter((e=>"meta"!=e)):Array.isArray(e)||(e=[e]);const t=[...a,...Object.keys(Prism.languages)];o(r,e,t).load((e=>{if(!(e in r.languages))return void(i.silent||console.warn("Language does not exist: "+e));const t="./prism-"+e;delete n.c[n(63157).resolve(t)],delete Prism.languages[e],n(63157)(t),a.add(e)}))}i.silent=!1,e.exports=i},18692:(e,t,n)=>{var r={"./":8722};function o(e){var t=a(e);return n(t)}function a(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}o.keys=function(){return Object.keys(r)},o.resolve=a,e.exports=o,o.id=18692},63157:(e,t,n)=>{var r={"./":8722};function o(e){var t=a(e);return n(t)}function a(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}o.keys=function(){return Object.keys(r)},o.resolve=a,e.exports=o,o.id=63157},98380:e=>{"use strict";var t=function(){var e=function(){};function t(e,t){Array.isArray(e)?e.forEach(t):null!=e&&t(e,0)}function n(e){for(var t={},n=0,r=e.length;n<r;n++)t[e[n]]=!0;return t}function r(e){var n={},r=[];function o(r,a){if(!(r in n)){a.push(r);var i=a.indexOf(r);if(i<a.length-1)throw new Error("Circular dependency: "+a.slice(i).join(" -> "));var s={},c=e[r];if(c){function l(t){if(!(t in e))throw new Error(r+" depends on an unknown component "+t);if(!(t in s))for(var i in o(t,a),s[t]=!0,n[t])s[i]=!0}t(c.require,l),t(c.optional,l),t(c.modify,l)}n[r]=s,a.pop()}}return function(e){var t=n[e];return t||(o(e,r),t=n[e]),t}}function o(e){for(var t in e)return!0;return!1}return function(a,i,s){var c=function(e){var t={};for(var n in e){var r=e[n];for(var o in r)if("meta"!=o){var a=r[o];t[o]="string"==typeof a?{title:a}:a}}return t}(a),l=function(e){var n;return function(r){if(r in e)return r;if(!n)for(var o in n={},e){var a=e[o];t(a&&a.alias,(function(t){if(t in n)throw new Error(t+" cannot be alias for both "+o+" and "+n[t]);if(t in e)throw new Error(t+" cannot be alias of "+o+" because it is a component.");n[t]=o}))}return n[r]||r}}(c);i=i.map(l),s=(s||[]).map(l);var u=n(i),d=n(s);i.forEach((function e(n){var r=c[n];t(r&&r.require,(function(t){t in d||(u[t]=!0,e(t))}))}));for(var p,f=r(c),m=u;o(m);){for(var h in p={},m){var g=c[h];t(g&&g.modify,(function(e){e in d&&(p[e]=!0)}))}for(var b in d)if(!(b in u))for(var v in f(b))if(v in u){p[b]=!0;break}for(var y in m=p)u[y]=!0}var w={getIds:function(){var e=[];return w.load((function(t){e.push(t)})),e},load:function(t,n){return function(t,n,r,o){var a=o?o.series:void 0,i=o?o.parallel:e,s={},c={};function l(e){if(e in s)return s[e];c[e]=!0;var o,u=[];for(var d in t(e))d in n&&u.push(d);if(0===u.length)o=r(e);else{var p=i(u.map((function(e){var t=l(e);return delete c[e],t})));a?o=a(p,(function(){return r(e)})):r(e)}return s[e]=o}for(var u in n)l(u);var d=[];for(var p in c)d.push(s[p]);return i(d)}(f,u,t,n)}};return w}}();e.exports=t},2694:(e,t,n)=>{"use strict";var r=n(6925);function o(){}function a(){}a.resetWarningCache=o,e.exports=function(){function e(e,t,n,o,a,i){if(i!==r){var s=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw s.name="Invariant Violation",s}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:a,resetWarningCache:o};return n.PropTypes=n,n}},5556:(e,t,n)=>{e.exports=n(2694)()},6925:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},22551:(e,t,n)=>{"use strict";var r=n(96540),o=n(45228),a=n(69982);function i(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}if(!r)throw Error(i(227));var s=new Set,c={};function l(e,t){u(e,t),u(e+"Capture",t)}function u(e,t){for(c[e]=t,e=0;e<t.length;e++)s.add(t[e])}var d=!("undefined"==typeof window||void 0===window.document||void 0===window.document.createElement),p=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,f=Object.prototype.hasOwnProperty,m={},h={};function g(e,t,n,r,o,a,i){this.acceptsBooleans=2===t||3===t||4===t,this.attributeName=r,this.attributeNamespace=o,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=a,this.removeEmptyString=i}var b={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach((function(e){b[e]=new g(e,0,!1,e,null,!1,!1)})),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach((function(e){var t=e[0];b[t]=new g(t,1,!1,e[1],null,!1,!1)})),["contentEditable","draggable","spellCheck","value"].forEach((function(e){b[e]=new g(e,2,!1,e.toLowerCase(),null,!1,!1)})),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach((function(e){b[e]=new g(e,2,!1,e,null,!1,!1)})),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach((function(e){b[e]=new g(e,3,!1,e.toLowerCase(),null,!1,!1)})),["checked","multiple","muted","selected"].forEach((function(e){b[e]=new g(e,3,!0,e,null,!1,!1)})),["capture","download"].forEach((function(e){b[e]=new g(e,4,!1,e,null,!1,!1)})),["cols","rows","size","span"].forEach((function(e){b[e]=new g(e,6,!1,e,null,!1,!1)})),["rowSpan","start"].forEach((function(e){b[e]=new g(e,5,!1,e.toLowerCase(),null,!1,!1)}));var v=/[\-:]([a-z])/g;function y(e){return e[1].toUpperCase()}function w(e,t,n,r){var o=b.hasOwnProperty(t)?b[t]:null;(null!==o?0===o.type:!r&&(2<t.length&&("o"===t[0]||"O"===t[0])&&("n"===t[1]||"N"===t[1])))||(function(e,t,n,r){if(null==t||function(e,t,n,r){if(null!==n&&0===n.type)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return!r&&(null!==n?!n.acceptsBooleans:"data-"!==(e=e.toLowerCase().slice(0,5))&&"aria-"!==e);default:return!1}}(e,t,n,r))return!0;if(r)return!1;if(null!==n)switch(n.type){case 3:return!t;case 4:return!1===t;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}(t,n,o,r)&&(n=null),r||null===o?function(e){return!!f.call(h,e)||!f.call(m,e)&&(p.test(e)?h[e]=!0:(m[e]=!0,!1))}(t)&&(null===n?e.removeAttribute(t):e.setAttribute(t,""+n)):o.mustUseProperty?e[o.propertyName]=null===n?3!==o.type&&"":n:(t=o.attributeName,r=o.attributeNamespace,null===n?e.removeAttribute(t):(n=3===(o=o.type)||4===o&&!0===n?"":""+n,r?e.setAttributeNS(r,t,n):e.setAttribute(t,n))))}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach((function(e){var t=e.replace(v,y);b[t]=new g(t,1,!1,e,null,!1,!1)})),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach((function(e){var t=e.replace(v,y);b[t]=new g(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)})),["xml:base","xml:lang","xml:space"].forEach((function(e){var t=e.replace(v,y);b[t]=new g(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)})),["tabIndex","crossOrigin"].forEach((function(e){b[e]=new g(e,1,!1,e.toLowerCase(),null,!1,!1)})),b.xlinkHref=new g("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach((function(e){b[e]=new g(e,1,!1,e.toLowerCase(),null,!0,!0)}));var k=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,x=60103,E=60106,_=60107,S=60108,A=60114,C=60109,T=60110,q=60112,N=60113,R=60120,O=60115,L=60116,P=60121,I=60128,D=60129,M=60130,j=60131;if("function"==typeof Symbol&&Symbol.for){var F=Symbol.for;x=F("react.element"),E=F("react.portal"),_=F("react.fragment"),S=F("react.strict_mode"),A=F("react.profiler"),C=F("react.provider"),T=F("react.context"),q=F("react.forward_ref"),N=F("react.suspense"),R=F("react.suspense_list"),O=F("react.memo"),L=F("react.lazy"),P=F("react.block"),F("react.scope"),I=F("react.opaque.id"),D=F("react.debug_trace_mode"),M=F("react.offscreen"),j=F("react.legacy_hidden")}var B,z="function"==typeof Symbol&&Symbol.iterator;function U(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=z&&e[z]||e["@@iterator"])?e:null}function $(e){if(void 0===B)try{throw Error()}catch(n){var t=n.stack.trim().match(/\n( *(at )?)/);B=t&&t[1]||""}return"\n"+B+e}var G=!1;function H(e,t){if(!e||G)return"";G=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(t)if(t=function(){throw Error()},Object.defineProperty(t.prototype,"props",{set:function(){throw Error()}}),"object"==typeof Reflect&&Reflect.construct){try{Reflect.construct(t,[])}catch(c){var r=c}Reflect.construct(e,[],t)}else{try{t.call()}catch(c){r=c}e.call(t.prototype)}else{try{throw Error()}catch(c){r=c}e()}}catch(c){if(c&&r&&"string"==typeof c.stack){for(var o=c.stack.split("\n"),a=r.stack.split("\n"),i=o.length-1,s=a.length-1;1<=i&&0<=s&&o[i]!==a[s];)s--;for(;1<=i&&0<=s;i--,s--)if(o[i]!==a[s]){if(1!==i||1!==s)do{if(i--,0>--s||o[i]!==a[s])return"\n"+o[i].replace(" at new "," at ")}while(1<=i&&0<=s);break}}}finally{G=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?$(e):""}function W(e){switch(e.tag){case 5:return $(e.type);case 16:return $("Lazy");case 13:return $("Suspense");case 19:return $("SuspenseList");case 0:case 2:case 15:return e=H(e.type,!1);case 11:return e=H(e.type.render,!1);case 22:return e=H(e.type._render,!1);case 1:return e=H(e.type,!0);default:return""}}function V(e){if(null==e)return null;if("function"==typeof e)return e.displayName||e.name||null;if("string"==typeof e)return e;switch(e){case _:return"Fragment";case E:return"Portal";case A:return"Profiler";case S:return"StrictMode";case N:return"Suspense";case R:return"SuspenseList"}if("object"==typeof e)switch(e.$$typeof){case T:return(e.displayName||"Context")+".Consumer";case C:return(e._context.displayName||"Context")+".Provider";case q:var t=e.render;return t=t.displayName||t.name||"",e.displayName||(""!==t?"ForwardRef("+t+")":"ForwardRef");case O:return V(e.type);case P:return V(e._render);case L:t=e._payload,e=e._init;try{return V(e(t))}catch(n){}}return null}function K(e){switch(typeof e){case"boolean":case"number":case"object":case"string":case"undefined":return e;default:return""}}function Y(e){var t=e.type;return(e=e.nodeName)&&"input"===e.toLowerCase()&&("checkbox"===t||"radio"===t)}function Q(e){e._valueTracker||(e._valueTracker=function(e){var t=Y(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&void 0!==n&&"function"==typeof n.get&&"function"==typeof n.set){var o=n.get,a=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return o.call(this)},set:function(e){r=""+e,a.call(this,e)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(e){r=""+e},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}(e))}function X(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=Y(e)?e.checked?"true":"false":e.value),(e=r)!==n&&(t.setValue(e),!0)}function J(e){if(void 0===(e=e||("undefined"!=typeof document?document:void 0)))return null;try{return e.activeElement||e.body}catch(t){return e.body}}function Z(e,t){var n=t.checked;return o({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=n?n:e._wrapperState.initialChecked})}function ee(e,t){var n=null==t.defaultValue?"":t.defaultValue,r=null!=t.checked?t.checked:t.defaultChecked;n=K(null!=t.value?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:"checkbox"===t.type||"radio"===t.type?null!=t.checked:null!=t.value}}function te(e,t){null!=(t=t.checked)&&w(e,"checked",t,!1)}function ne(e,t){te(e,t);var n=K(t.value),r=t.type;if(null!=n)"number"===r?(0===n&&""===e.value||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if("submit"===r||"reset"===r)return void e.removeAttribute("value");t.hasOwnProperty("value")?oe(e,t.type,n):t.hasOwnProperty("defaultValue")&&oe(e,t.type,K(t.defaultValue)),null==t.checked&&null!=t.defaultChecked&&(e.defaultChecked=!!t.defaultChecked)}function re(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!("submit"!==r&&"reset"!==r||void 0!==t.value&&null!==t.value))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}""!==(n=e.name)&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,""!==n&&(e.name=n)}function oe(e,t,n){"number"===t&&J(e.ownerDocument)===e||(null==n?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}function ae(e,t){return e=o({children:void 0},t),(t=function(e){var t="";return r.Children.forEach(e,(function(e){null!=e&&(t+=e)})),t}(t.children))&&(e.children=t),e}function ie(e,t,n,r){if(e=e.options,t){t={};for(var o=0;o<n.length;o++)t["$"+n[o]]=!0;for(n=0;n<e.length;n++)o=t.hasOwnProperty("$"+e[n].value),e[n].selected!==o&&(e[n].selected=o),o&&r&&(e[n].defaultSelected=!0)}else{for(n=""+K(n),t=null,o=0;o<e.length;o++){if(e[o].value===n)return e[o].selected=!0,void(r&&(e[o].defaultSelected=!0));null!==t||e[o].disabled||(t=e[o])}null!==t&&(t.selected=!0)}}function se(e,t){if(null!=t.dangerouslySetInnerHTML)throw Error(i(91));return o({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue})}function ce(e,t){var n=t.value;if(null==n){if(n=t.children,t=t.defaultValue,null!=n){if(null!=t)throw Error(i(92));if(Array.isArray(n)){if(!(1>=n.length))throw Error(i(93));n=n[0]}t=n}null==t&&(t=""),n=t}e._wrapperState={initialValue:K(n)}}function le(e,t){var n=K(t.value),r=K(t.defaultValue);null!=n&&((n=""+n)!==e.value&&(e.value=n),null==t.defaultValue&&e.defaultValue!==n&&(e.defaultValue=n)),null!=r&&(e.defaultValue=""+r)}function ue(e){var t=e.textContent;t===e._wrapperState.initialValue&&""!==t&&null!==t&&(e.value=t)}var de={html:"http://www.w3.org/1999/xhtml",mathml:"http://www.w3.org/1998/Math/MathML",svg:"http://www.w3.org/2000/svg"};function pe(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function fe(e,t){return null==e||"http://www.w3.org/1999/xhtml"===e?pe(t):"http://www.w3.org/2000/svg"===e&&"foreignObject"===t?"http://www.w3.org/1999/xhtml":e}var me,he,ge=(he=function(e,t){if(e.namespaceURI!==de.svg||"innerHTML"in e)e.innerHTML=t;else{for((me=me||document.createElement("div")).innerHTML="<svg>"+t.valueOf().toString()+"</svg>",t=me.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}},"undefined"!=typeof MSApp&&MSApp.execUnsafeLocalFunction?function(e,t,n,r){MSApp.execUnsafeLocalFunction((function(){return he(e,t)}))}:he);function be(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&3===n.nodeType)return void(n.nodeValue=t)}e.textContent=t}var ve={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},ye=["Webkit","ms","Moz","O"];function we(e,t,n){return null==t||"boolean"==typeof t||""===t?"":n||"number"!=typeof t||0===t||ve.hasOwnProperty(e)&&ve[e]?(""+t).trim():t+"px"}function ke(e,t){for(var n in e=e.style,t)if(t.hasOwnProperty(n)){var r=0===n.indexOf("--"),o=we(n,t[n],r);"float"===n&&(n="cssFloat"),r?e.setProperty(n,o):e[n]=o}}Object.keys(ve).forEach((function(e){ye.forEach((function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),ve[t]=ve[e]}))}));var xe=o({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function Ee(e,t){if(t){if(xe[e]&&(null!=t.children||null!=t.dangerouslySetInnerHTML))throw Error(i(137,e));if(null!=t.dangerouslySetInnerHTML){if(null!=t.children)throw Error(i(60));if("object"!=typeof t.dangerouslySetInnerHTML||!("__html"in t.dangerouslySetInnerHTML))throw Error(i(61))}if(null!=t.style&&"object"!=typeof t.style)throw Error(i(62))}}function _e(e,t){if(-1===e.indexOf("-"))return"string"==typeof t.is;switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}function Se(e){return(e=e.target||e.srcElement||window).correspondingUseElement&&(e=e.correspondingUseElement),3===e.nodeType?e.parentNode:e}var Ae=null,Ce=null,Te=null;function qe(e){if(e=no(e)){if("function"!=typeof Ae)throw Error(i(280));var t=e.stateNode;t&&(t=oo(t),Ae(e.stateNode,e.type,t))}}function Ne(e){Ce?Te?Te.push(e):Te=[e]:Ce=e}function Re(){if(Ce){var e=Ce,t=Te;if(Te=Ce=null,qe(e),t)for(e=0;e<t.length;e++)qe(t[e])}}function Oe(e,t){return e(t)}function Le(e,t,n,r,o){return e(t,n,r,o)}function Pe(){}var Ie=Oe,De=!1,Me=!1;function je(){null===Ce&&null===Te||(Pe(),Re())}function Fe(e,t){var n=e.stateNode;if(null===n)return null;var r=oo(n);if(null===r)return null;n=r[t];e:switch(t){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(r=!r.disabled)||(r=!("button"===(e=e.type)||"input"===e||"select"===e||"textarea"===e)),e=!r;break e;default:e=!1}if(e)return null;if(n&&"function"!=typeof n)throw Error(i(231,t,typeof n));return n}var Be=!1;if(d)try{var ze={};Object.defineProperty(ze,"passive",{get:function(){Be=!0}}),window.addEventListener("test",ze,ze),window.removeEventListener("test",ze,ze)}catch(he){Be=!1}function Ue(e,t,n,r,o,a,i,s,c){var l=Array.prototype.slice.call(arguments,3);try{t.apply(n,l)}catch(u){this.onError(u)}}var $e=!1,Ge=null,He=!1,We=null,Ve={onError:function(e){$e=!0,Ge=e}};function Ke(e,t,n,r,o,a,i,s,c){$e=!1,Ge=null,Ue.apply(Ve,arguments)}function Ye(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do{0!=(1026&(t=e).flags)&&(n=t.return),e=t.return}while(e)}return 3===t.tag?n:null}function Qe(e){if(13===e.tag){var t=e.memoizedState;if(null===t&&(null!==(e=e.alternate)&&(t=e.memoizedState)),null!==t)return t.dehydrated}return null}function Xe(e){if(Ye(e)!==e)throw Error(i(188))}function Je(e){if(e=function(e){var t=e.alternate;if(!t){if(null===(t=Ye(e)))throw Error(i(188));return t!==e?null:e}for(var n=e,r=t;;){var o=n.return;if(null===o)break;var a=o.alternate;if(null===a){if(null!==(r=o.return)){n=r;continue}break}if(o.child===a.child){for(a=o.child;a;){if(a===n)return Xe(o),e;if(a===r)return Xe(o),t;a=a.sibling}throw Error(i(188))}if(n.return!==r.return)n=o,r=a;else{for(var s=!1,c=o.child;c;){if(c===n){s=!0,n=o,r=a;break}if(c===r){s=!0,r=o,n=a;break}c=c.sibling}if(!s){for(c=a.child;c;){if(c===n){s=!0,n=a,r=o;break}if(c===r){s=!0,r=a,n=o;break}c=c.sibling}if(!s)throw Error(i(189))}}if(n.alternate!==r)throw Error(i(190))}if(3!==n.tag)throw Error(i(188));return n.stateNode.current===n?e:t}(e),!e)return null;for(var t=e;;){if(5===t.tag||6===t.tag)return t;if(t.child)t.child.return=t,t=t.child;else{if(t===e)break;for(;!t.sibling;){if(!t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}}return null}function Ze(e,t){for(var n=e.alternate;null!==t;){if(t===e||t===n)return!0;t=t.return}return!1}var et,tt,nt,rt,ot=!1,at=[],it=null,st=null,ct=null,lt=new Map,ut=new Map,dt=[],pt="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit".split(" ");function ft(e,t,n,r,o){return{blockedOn:e,domEventName:t,eventSystemFlags:16|n,nativeEvent:o,targetContainers:[r]}}function mt(e,t){switch(e){case"focusin":case"focusout":it=null;break;case"dragenter":case"dragleave":st=null;break;case"mouseover":case"mouseout":ct=null;break;case"pointerover":case"pointerout":lt.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":ut.delete(t.pointerId)}}function ht(e,t,n,r,o,a){return null===e||e.nativeEvent!==a?(e=ft(t,n,r,o,a),null!==t&&(null!==(t=no(t))&&tt(t)),e):(e.eventSystemFlags|=r,t=e.targetContainers,null!==o&&-1===t.indexOf(o)&&t.push(o),e)}function gt(e){var t=to(e.target);if(null!==t){var n=Ye(t);if(null!==n)if(13===(t=n.tag)){if(null!==(t=Qe(n)))return e.blockedOn=t,void rt(e.lanePriority,(function(){a.unstable_runWithPriority(e.priority,(function(){nt(n)}))}))}else if(3===t&&n.stateNode.hydrate)return void(e.blockedOn=3===n.tag?n.stateNode.containerInfo:null)}e.blockedOn=null}function bt(e){if(null!==e.blockedOn)return!1;for(var t=e.targetContainers;0<t.length;){var n=Jt(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(null!==n)return null!==(t=no(n))&&tt(t),e.blockedOn=n,!1;t.shift()}return!0}function vt(e,t,n){bt(e)&&n.delete(t)}function yt(){for(ot=!1;0<at.length;){var e=at[0];if(null!==e.blockedOn){null!==(e=no(e.blockedOn))&&et(e);break}for(var t=e.targetContainers;0<t.length;){var n=Jt(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(null!==n){e.blockedOn=n;break}t.shift()}null===e.blockedOn&&at.shift()}null!==it&&bt(it)&&(it=null),null!==st&&bt(st)&&(st=null),null!==ct&&bt(ct)&&(ct=null),lt.forEach(vt),ut.forEach(vt)}function wt(e,t){e.blockedOn===t&&(e.blockedOn=null,ot||(ot=!0,a.unstable_scheduleCallback(a.unstable_NormalPriority,yt)))}function kt(e){function t(t){return wt(t,e)}if(0<at.length){wt(at[0],e);for(var n=1;n<at.length;n++){var r=at[n];r.blockedOn===e&&(r.blockedOn=null)}}for(null!==it&&wt(it,e),null!==st&&wt(st,e),null!==ct&&wt(ct,e),lt.forEach(t),ut.forEach(t),n=0;n<dt.length;n++)(r=dt[n]).blockedOn===e&&(r.blockedOn=null);for(;0<dt.length&&null===(n=dt[0]).blockedOn;)gt(n),null===n.blockedOn&&dt.shift()}function xt(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var Et={animationend:xt("Animation","AnimationEnd"),animationiteration:xt("Animation","AnimationIteration"),animationstart:xt("Animation","AnimationStart"),transitionend:xt("Transition","TransitionEnd")},_t={},St={};function At(e){if(_t[e])return _t[e];if(!Et[e])return e;var t,n=Et[e];for(t in n)if(n.hasOwnProperty(t)&&t in St)return _t[e]=n[t];return e}d&&(St=document.createElement("div").style,"AnimationEvent"in window||(delete Et.animationend.animation,delete Et.animationiteration.animation,delete Et.animationstart.animation),"TransitionEvent"in window||delete Et.transitionend.transition);var Ct=At("animationend"),Tt=At("animationiteration"),qt=At("animationstart"),Nt=At("transitionend"),Rt=new Map,Ot=new Map,Lt=["abort","abort",Ct,"animationEnd",Tt,"animationIteration",qt,"animationStart","canplay","canPlay","canplaythrough","canPlayThrough","durationchange","durationChange","emptied","emptied","encrypted","encrypted","ended","ended","error","error","gotpointercapture","gotPointerCapture","load","load","loadeddata","loadedData","loadedmetadata","loadedMetadata","loadstart","loadStart","lostpointercapture","lostPointerCapture","playing","playing","progress","progress","seeking","seeking","stalled","stalled","suspend","suspend","timeupdate","timeUpdate",Nt,"transitionEnd","waiting","waiting"];function Pt(e,t){for(var n=0;n<e.length;n+=2){var r=e[n],o=e[n+1];o="on"+(o[0].toUpperCase()+o.slice(1)),Ot.set(r,t),Rt.set(r,o),l(o,[r])}}(0,a.unstable_now)();var It=8;function Dt(e){if(0!=(1&e))return It=15,1;if(0!=(2&e))return It=14,2;if(0!=(4&e))return It=13,4;var t=24&e;return 0!==t?(It=12,t):0!=(32&e)?(It=11,32):0!==(t=192&e)?(It=10,t):0!=(256&e)?(It=9,256):0!==(t=3584&e)?(It=8,t):0!=(4096&e)?(It=7,4096):0!==(t=4186112&e)?(It=6,t):0!==(t=62914560&e)?(It=5,t):67108864&e?(It=4,67108864):0!=(134217728&e)?(It=3,134217728):0!==(t=805306368&e)?(It=2,t):0!=(1073741824&e)?(It=1,1073741824):(It=8,e)}function Mt(e,t){var n=e.pendingLanes;if(0===n)return It=0;var r=0,o=0,a=e.expiredLanes,i=e.suspendedLanes,s=e.pingedLanes;if(0!==a)r=a,o=It=15;else if(0!==(a=134217727&n)){var c=a&~i;0!==c?(r=Dt(c),o=It):0!==(s&=a)&&(r=Dt(s),o=It)}else 0!==(a=n&~i)?(r=Dt(a),o=It):0!==s&&(r=Dt(s),o=It);if(0===r)return 0;if(r=n&((0>(r=31-$t(r))?0:1<<r)<<1)-1,0!==t&&t!==r&&0==(t&i)){if(Dt(t),o<=It)return t;It=o}if(0!==(t=e.entangledLanes))for(e=e.entanglements,t&=r;0<t;)o=1<<(n=31-$t(t)),r|=e[n],t&=~o;return r}function jt(e){return 0!==(e=-1073741825&e.pendingLanes)?e:1073741824&e?1073741824:0}function Ft(e,t){switch(e){case 15:return 1;case 14:return 2;case 12:return 0===(e=Bt(24&~t))?Ft(10,t):e;case 10:return 0===(e=Bt(192&~t))?Ft(8,t):e;case 8:return 0===(e=Bt(3584&~t))&&(0===(e=Bt(4186112&~t))&&(e=512)),e;case 2:return 0===(t=Bt(805306368&~t))&&(t=268435456),t}throw Error(i(358,e))}function Bt(e){return e&-e}function zt(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function Ut(e,t,n){e.pendingLanes|=t;var r=t-1;e.suspendedLanes&=r,e.pingedLanes&=r,(e=e.eventTimes)[t=31-$t(t)]=n}var $t=Math.clz32?Math.clz32:function(e){return 0===e?32:31-(Gt(e)/Ht|0)|0},Gt=Math.log,Ht=Math.LN2;var Wt=a.unstable_UserBlockingPriority,Vt=a.unstable_runWithPriority,Kt=!0;function Yt(e,t,n,r){De||Pe();var o=Xt,a=De;De=!0;try{Le(o,e,t,n,r)}finally{(De=a)||je()}}function Qt(e,t,n,r){Vt(Wt,Xt.bind(null,e,t,n,r))}function Xt(e,t,n,r){var o;if(Kt)if((o=0==(4&t))&&0<at.length&&-1<pt.indexOf(e))e=ft(null,e,t,n,r),at.push(e);else{var a=Jt(e,t,n,r);if(null===a)o&&mt(e,r);else{if(o){if(-1<pt.indexOf(e))return e=ft(a,e,t,n,r),void at.push(e);if(function(e,t,n,r,o){switch(t){case"focusin":return it=ht(it,e,t,n,r,o),!0;case"dragenter":return st=ht(st,e,t,n,r,o),!0;case"mouseover":return ct=ht(ct,e,t,n,r,o),!0;case"pointerover":var a=o.pointerId;return lt.set(a,ht(lt.get(a)||null,e,t,n,r,o)),!0;case"gotpointercapture":return a=o.pointerId,ut.set(a,ht(ut.get(a)||null,e,t,n,r,o)),!0}return!1}(a,e,t,n,r))return;mt(e,r)}Pr(e,t,r,null,n)}}}function Jt(e,t,n,r){var o=Se(r);if(null!==(o=to(o))){var a=Ye(o);if(null===a)o=null;else{var i=a.tag;if(13===i){if(null!==(o=Qe(a)))return o;o=null}else if(3===i){if(a.stateNode.hydrate)return 3===a.tag?a.stateNode.containerInfo:null;o=null}else a!==o&&(o=null)}}return Pr(e,t,r,o,n),null}var Zt=null,en=null,tn=null;function nn(){if(tn)return tn;var e,t,n=en,r=n.length,o="value"in Zt?Zt.value:Zt.textContent,a=o.length;for(e=0;e<r&&n[e]===o[e];e++);var i=r-e;for(t=1;t<=i&&n[r-t]===o[a-t];t++);return tn=o.slice(e,1<t?1-t:void 0)}function rn(e){var t=e.keyCode;return"charCode"in e?0===(e=e.charCode)&&13===t&&(e=13):e=t,10===e&&(e=13),32<=e||13===e?e:0}function on(){return!0}function an(){return!1}function sn(e){function t(t,n,r,o,a){for(var i in this._reactName=t,this._targetInst=r,this.type=n,this.nativeEvent=o,this.target=a,this.currentTarget=null,e)e.hasOwnProperty(i)&&(t=e[i],this[i]=t?t(o):o[i]);return this.isDefaultPrevented=(null!=o.defaultPrevented?o.defaultPrevented:!1===o.returnValue)?on:an,this.isPropagationStopped=an,this}return o(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():"unknown"!=typeof e.returnValue&&(e.returnValue=!1),this.isDefaultPrevented=on)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():"unknown"!=typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=on)},persist:function(){},isPersistent:on}),t}var cn,ln,un,dn={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},pn=sn(dn),fn=o({},dn,{view:0,detail:0}),mn=sn(fn),hn=o({},fn,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:Cn,button:0,buttons:0,relatedTarget:function(e){return void 0===e.relatedTarget?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return"movementX"in e?e.movementX:(e!==un&&(un&&"mousemove"===e.type?(cn=e.screenX-un.screenX,ln=e.screenY-un.screenY):ln=cn=0,un=e),cn)},movementY:function(e){return"movementY"in e?e.movementY:ln}}),gn=sn(hn),bn=sn(o({},hn,{dataTransfer:0})),vn=sn(o({},fn,{relatedTarget:0})),yn=sn(o({},dn,{animationName:0,elapsedTime:0,pseudoElement:0})),wn=o({},dn,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),kn=sn(wn),xn=sn(o({},dn,{data:0})),En={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},_n={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},Sn={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function An(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):!!(e=Sn[e])&&!!t[e]}function Cn(){return An}var Tn=o({},fn,{key:function(e){if(e.key){var t=En[e.key]||e.key;if("Unidentified"!==t)return t}return"keypress"===e.type?13===(e=rn(e))?"Enter":String.fromCharCode(e):"keydown"===e.type||"keyup"===e.type?_n[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:Cn,charCode:function(e){return"keypress"===e.type?rn(e):0},keyCode:function(e){return"keydown"===e.type||"keyup"===e.type?e.keyCode:0},which:function(e){return"keypress"===e.type?rn(e):"keydown"===e.type||"keyup"===e.type?e.keyCode:0}}),qn=sn(Tn),Nn=sn(o({},hn,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0})),Rn=sn(o({},fn,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:Cn})),On=sn(o({},dn,{propertyName:0,elapsedTime:0,pseudoElement:0})),Ln=o({},hn,{deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0}),Pn=sn(Ln),In=[9,13,27,32],Dn=d&&"CompositionEvent"in window,Mn=null;d&&"documentMode"in document&&(Mn=document.documentMode);var jn=d&&"TextEvent"in window&&!Mn,Fn=d&&(!Dn||Mn&&8<Mn&&11>=Mn),Bn=String.fromCharCode(32),zn=!1;function Un(e,t){switch(e){case"keyup":return-1!==In.indexOf(t.keyCode);case"keydown":return 229!==t.keyCode;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function $n(e){return"object"==typeof(e=e.detail)&&"data"in e?e.data:null}var Gn=!1;var Hn={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function Wn(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===t?!!Hn[e.type]:"textarea"===t}function Vn(e,t,n,r){Ne(r),0<(t=Dr(t,"onChange")).length&&(n=new pn("onChange","change",null,n,r),e.push({event:n,listeners:t}))}var Kn=null,Yn=null;function Qn(e){Tr(e,0)}function Xn(e){if(X(ro(e)))return e}function Jn(e,t){if("change"===e)return t}var Zn=!1;if(d){var er;if(d){var tr="oninput"in document;if(!tr){var nr=document.createElement("div");nr.setAttribute("oninput","return;"),tr="function"==typeof nr.oninput}er=tr}else er=!1;Zn=er&&(!document.documentMode||9<document.documentMode)}function rr(){Kn&&(Kn.detachEvent("onpropertychange",or),Yn=Kn=null)}function or(e){if("value"===e.propertyName&&Xn(Yn)){var t=[];if(Vn(t,Yn,e,Se(e)),e=Qn,De)e(t);else{De=!0;try{Oe(e,t)}finally{De=!1,je()}}}}function ar(e,t,n){"focusin"===e?(rr(),Yn=n,(Kn=t).attachEvent("onpropertychange",or)):"focusout"===e&&rr()}function ir(e){if("selectionchange"===e||"keyup"===e||"keydown"===e)return Xn(Yn)}function sr(e,t){if("click"===e)return Xn(t)}function cr(e,t){if("input"===e||"change"===e)return Xn(t)}var lr="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},ur=Object.prototype.hasOwnProperty;function dr(e,t){if(lr(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(r=0;r<n.length;r++)if(!ur.call(t,n[r])||!lr(e[n[r]],t[n[r]]))return!1;return!0}function pr(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function fr(e,t){var n,r=pr(e);for(e=0;r;){if(3===r.nodeType){if(n=e+r.textContent.length,e<=t&&n>=t)return{node:r,offset:t-e};e=n}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=pr(r)}}function mr(e,t){return!(!e||!t)&&(e===t||(!e||3!==e.nodeType)&&(t&&3===t.nodeType?mr(e,t.parentNode):"contains"in e?e.contains(t):!!e.compareDocumentPosition&&!!(16&e.compareDocumentPosition(t))))}function hr(){for(var e=window,t=J();t instanceof e.HTMLIFrameElement;){try{var n="string"==typeof t.contentWindow.location.href}catch(r){n=!1}if(!n)break;t=J((e=t.contentWindow).document)}return t}function gr(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&("input"===t&&("text"===e.type||"search"===e.type||"tel"===e.type||"url"===e.type||"password"===e.type)||"textarea"===t||"true"===e.contentEditable)}var br=d&&"documentMode"in document&&11>=document.documentMode,vr=null,yr=null,wr=null,kr=!1;function xr(e,t,n){var r=n.window===n?n.document:9===n.nodeType?n:n.ownerDocument;kr||null==vr||vr!==J(r)||("selectionStart"in(r=vr)&&gr(r)?r={start:r.selectionStart,end:r.selectionEnd}:r={anchorNode:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection()).anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset},wr&&dr(wr,r)||(wr=r,0<(r=Dr(yr,"onSelect")).length&&(t=new pn("onSelect","select",null,t,n),e.push({event:t,listeners:r}),t.target=vr)))}Pt("cancel cancel click click close close contextmenu contextMenu copy copy cut cut auxclick auxClick dblclick doubleClick dragend dragEnd dragstart dragStart drop drop focusin focus focusout blur input input invalid invalid keydown keyDown keypress keyPress keyup keyUp mousedown mouseDown mouseup mouseUp paste paste pause pause play play pointercancel pointerCancel pointerdown pointerDown pointerup pointerUp ratechange rateChange reset reset seeked seeked submit submit touchcancel touchCancel touchend touchEnd touchstart touchStart volumechange volumeChange".split(" "),0),Pt("drag drag dragenter dragEnter dragexit dragExit dragleave dragLeave dragover dragOver mousemove mouseMove mouseout mouseOut mouseover mouseOver pointermove pointerMove pointerout pointerOut pointerover pointerOver scroll scroll toggle toggle touchmove touchMove wheel wheel".split(" "),1),Pt(Lt,2);for(var Er="change selectionchange textInput compositionstart compositionend compositionupdate".split(" "),_r=0;_r<Er.length;_r++)Ot.set(Er[_r],0);u("onMouseEnter",["mouseout","mouseover"]),u("onMouseLeave",["mouseout","mouseover"]),u("onPointerEnter",["pointerout","pointerover"]),u("onPointerLeave",["pointerout","pointerover"]),l("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),l("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),l("onBeforeInput",["compositionend","keypress","textInput","paste"]),l("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),l("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),l("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var Sr="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),Ar=new Set("cancel close invalid load scroll toggle".split(" ").concat(Sr));function Cr(e,t,n){var r=e.type||"unknown-event";e.currentTarget=n,function(e,t,n,r,o,a,s,c,l){if(Ke.apply(this,arguments),$e){if(!$e)throw Error(i(198));var u=Ge;$e=!1,Ge=null,He||(He=!0,We=u)}}(r,t,void 0,e),e.currentTarget=null}function Tr(e,t){t=0!=(4&t);for(var n=0;n<e.length;n++){var r=e[n],o=r.event;r=r.listeners;e:{var a=void 0;if(t)for(var i=r.length-1;0<=i;i--){var s=r[i],c=s.instance,l=s.currentTarget;if(s=s.listener,c!==a&&o.isPropagationStopped())break e;Cr(o,s,l),a=c}else for(i=0;i<r.length;i++){if(c=(s=r[i]).instance,l=s.currentTarget,s=s.listener,c!==a&&o.isPropagationStopped())break e;Cr(o,s,l),a=c}}}if(He)throw e=We,He=!1,We=null,e}function qr(e,t){var n=ao(t),r=e+"__bubble";n.has(r)||(Lr(t,e,2,!1),n.add(r))}var Nr="_reactListening"+Math.random().toString(36).slice(2);function Rr(e){e[Nr]||(e[Nr]=!0,s.forEach((function(t){Ar.has(t)||Or(t,!1,e,null),Or(t,!0,e,null)})))}function Or(e,t,n,r){var o=4<arguments.length&&void 0!==arguments[4]?arguments[4]:0,a=n;if("selectionchange"===e&&9!==n.nodeType&&(a=n.ownerDocument),null!==r&&!t&&Ar.has(e)){if("scroll"!==e)return;o|=2,a=r}var i=ao(a),s=e+"__"+(t?"capture":"bubble");i.has(s)||(t&&(o|=4),Lr(a,e,o,t),i.add(s))}function Lr(e,t,n,r){var o=Ot.get(t);switch(void 0===o?2:o){case 0:o=Yt;break;case 1:o=Qt;break;default:o=Xt}n=o.bind(null,t,n,e),o=void 0,!Be||"touchstart"!==t&&"touchmove"!==t&&"wheel"!==t||(o=!0),r?void 0!==o?e.addEventListener(t,n,{capture:!0,passive:o}):e.addEventListener(t,n,!0):void 0!==o?e.addEventListener(t,n,{passive:o}):e.addEventListener(t,n,!1)}function Pr(e,t,n,r,o){var a=r;if(0==(1&t)&&0==(2&t)&&null!==r)e:for(;;){if(null===r)return;var i=r.tag;if(3===i||4===i){var s=r.stateNode.containerInfo;if(s===o||8===s.nodeType&&s.parentNode===o)break;if(4===i)for(i=r.return;null!==i;){var c=i.tag;if((3===c||4===c)&&((c=i.stateNode.containerInfo)===o||8===c.nodeType&&c.parentNode===o))return;i=i.return}for(;null!==s;){if(null===(i=to(s)))return;if(5===(c=i.tag)||6===c){r=a=i;continue e}s=s.parentNode}}r=r.return}!function(e,t,n){if(Me)return e(t,n);Me=!0;try{return Ie(e,t,n)}finally{Me=!1,je()}}((function(){var r=a,o=Se(n),i=[];e:{var s=Rt.get(e);if(void 0!==s){var c=pn,l=e;switch(e){case"keypress":if(0===rn(n))break e;case"keydown":case"keyup":c=qn;break;case"focusin":l="focus",c=vn;break;case"focusout":l="blur",c=vn;break;case"beforeblur":case"afterblur":c=vn;break;case"click":if(2===n.button)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":c=gn;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":c=bn;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":c=Rn;break;case Ct:case Tt:case qt:c=yn;break;case Nt:c=On;break;case"scroll":c=mn;break;case"wheel":c=Pn;break;case"copy":case"cut":case"paste":c=kn;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":c=Nn}var u=0!=(4&t),d=!u&&"scroll"===e,p=u?null!==s?s+"Capture":null:s;u=[];for(var f,m=r;null!==m;){var h=(f=m).stateNode;if(5===f.tag&&null!==h&&(f=h,null!==p&&(null!=(h=Fe(m,p))&&u.push(Ir(m,h,f)))),d)break;m=m.return}0<u.length&&(s=new c(s,l,null,n,o),i.push({event:s,listeners:u}))}}if(0==(7&t)){if(c="mouseout"===e||"pointerout"===e,(!(s="mouseover"===e||"pointerover"===e)||0!=(16&t)||!(l=n.relatedTarget||n.fromElement)||!to(l)&&!l[Zr])&&(c||s)&&(s=o.window===o?o:(s=o.ownerDocument)?s.defaultView||s.parentWindow:window,c?(c=r,null!==(l=(l=n.relatedTarget||n.toElement)?to(l):null)&&(l!==(d=Ye(l))||5!==l.tag&&6!==l.tag)&&(l=null)):(c=null,l=r),c!==l)){if(u=gn,h="onMouseLeave",p="onMouseEnter",m="mouse","pointerout"!==e&&"pointerover"!==e||(u=Nn,h="onPointerLeave",p="onPointerEnter",m="pointer"),d=null==c?s:ro(c),f=null==l?s:ro(l),(s=new u(h,m+"leave",c,n,o)).target=d,s.relatedTarget=f,h=null,to(o)===r&&((u=new u(p,m+"enter",l,n,o)).target=f,u.relatedTarget=d,h=u),d=h,c&&l)e:{for(p=l,m=0,f=u=c;f;f=Mr(f))m++;for(f=0,h=p;h;h=Mr(h))f++;for(;0<m-f;)u=Mr(u),m--;for(;0<f-m;)p=Mr(p),f--;for(;m--;){if(u===p||null!==p&&u===p.alternate)break e;u=Mr(u),p=Mr(p)}u=null}else u=null;null!==c&&jr(i,s,c,u,!1),null!==l&&null!==d&&jr(i,d,l,u,!0)}if("select"===(c=(s=r?ro(r):window).nodeName&&s.nodeName.toLowerCase())||"input"===c&&"file"===s.type)var g=Jn;else if(Wn(s))if(Zn)g=cr;else{g=ir;var b=ar}else(c=s.nodeName)&&"input"===c.toLowerCase()&&("checkbox"===s.type||"radio"===s.type)&&(g=sr);switch(g&&(g=g(e,r))?Vn(i,g,n,o):(b&&b(e,s,r),"focusout"===e&&(b=s._wrapperState)&&b.controlled&&"number"===s.type&&oe(s,"number",s.value)),b=r?ro(r):window,e){case"focusin":(Wn(b)||"true"===b.contentEditable)&&(vr=b,yr=r,wr=null);break;case"focusout":wr=yr=vr=null;break;case"mousedown":kr=!0;break;case"contextmenu":case"mouseup":case"dragend":kr=!1,xr(i,n,o);break;case"selectionchange":if(br)break;case"keydown":case"keyup":xr(i,n,o)}var v;if(Dn)e:{switch(e){case"compositionstart":var y="onCompositionStart";break e;case"compositionend":y="onCompositionEnd";break e;case"compositionupdate":y="onCompositionUpdate";break e}y=void 0}else Gn?Un(e,n)&&(y="onCompositionEnd"):"keydown"===e&&229===n.keyCode&&(y="onCompositionStart");y&&(Fn&&"ko"!==n.locale&&(Gn||"onCompositionStart"!==y?"onCompositionEnd"===y&&Gn&&(v=nn()):(en="value"in(Zt=o)?Zt.value:Zt.textContent,Gn=!0)),0<(b=Dr(r,y)).length&&(y=new xn(y,e,null,n,o),i.push({event:y,listeners:b}),v?y.data=v:null!==(v=$n(n))&&(y.data=v))),(v=jn?function(e,t){switch(e){case"compositionend":return $n(t);case"keypress":return 32!==t.which?null:(zn=!0,Bn);case"textInput":return(e=t.data)===Bn&&zn?null:e;default:return null}}(e,n):function(e,t){if(Gn)return"compositionend"===e||!Dn&&Un(e,t)?(e=nn(),tn=en=Zt=null,Gn=!1,e):null;switch(e){case"paste":default:return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case"compositionend":return Fn&&"ko"!==t.locale?null:t.data}}(e,n))&&(0<(r=Dr(r,"onBeforeInput")).length&&(o=new xn("onBeforeInput","beforeinput",null,n,o),i.push({event:o,listeners:r}),o.data=v))}Tr(i,t)}))}function Ir(e,t,n){return{instance:e,listener:t,currentTarget:n}}function Dr(e,t){for(var n=t+"Capture",r=[];null!==e;){var o=e,a=o.stateNode;5===o.tag&&null!==a&&(o=a,null!=(a=Fe(e,n))&&r.unshift(Ir(e,a,o)),null!=(a=Fe(e,t))&&r.push(Ir(e,a,o))),e=e.return}return r}function Mr(e){if(null===e)return null;do{e=e.return}while(e&&5!==e.tag);return e||null}function jr(e,t,n,r,o){for(var a=t._reactName,i=[];null!==n&&n!==r;){var s=n,c=s.alternate,l=s.stateNode;if(null!==c&&c===r)break;5===s.tag&&null!==l&&(s=l,o?null!=(c=Fe(n,a))&&i.unshift(Ir(n,c,s)):o||null!=(c=Fe(n,a))&&i.push(Ir(n,c,s))),n=n.return}0!==i.length&&e.push({event:t,listeners:i})}function Fr(){}var Br=null,zr=null;function Ur(e,t){switch(e){case"button":case"input":case"select":case"textarea":return!!t.autoFocus}return!1}function $r(e,t){return"textarea"===e||"option"===e||"noscript"===e||"string"==typeof t.children||"number"==typeof t.children||"object"==typeof t.dangerouslySetInnerHTML&&null!==t.dangerouslySetInnerHTML&&null!=t.dangerouslySetInnerHTML.__html}var Gr="function"==typeof setTimeout?setTimeout:void 0,Hr="function"==typeof clearTimeout?clearTimeout:void 0;function Wr(e){1===e.nodeType?e.textContent="":9===e.nodeType&&(null!=(e=e.body)&&(e.textContent=""))}function Vr(e){for(;null!=e;e=e.nextSibling){var t=e.nodeType;if(1===t||3===t)break}return e}function Kr(e){e=e.previousSibling;for(var t=0;e;){if(8===e.nodeType){var n=e.data;if("$"===n||"$!"===n||"$?"===n){if(0===t)return e;t--}else"/$"===n&&t++}e=e.previousSibling}return null}var Yr=0;var Qr=Math.random().toString(36).slice(2),Xr="__reactFiber$"+Qr,Jr="__reactProps$"+Qr,Zr="__reactContainer$"+Qr,eo="__reactEvents$"+Qr;function to(e){var t=e[Xr];if(t)return t;for(var n=e.parentNode;n;){if(t=n[Zr]||n[Xr]){if(n=t.alternate,null!==t.child||null!==n&&null!==n.child)for(e=Kr(e);null!==e;){if(n=e[Xr])return n;e=Kr(e)}return t}n=(e=n).parentNode}return null}function no(e){return!(e=e[Xr]||e[Zr])||5!==e.tag&&6!==e.tag&&13!==e.tag&&3!==e.tag?null:e}function ro(e){if(5===e.tag||6===e.tag)return e.stateNode;throw Error(i(33))}function oo(e){return e[Jr]||null}function ao(e){var t=e[eo];return void 0===t&&(t=e[eo]=new Set),t}var io=[],so=-1;function co(e){return{current:e}}function lo(e){0>so||(e.current=io[so],io[so]=null,so--)}function uo(e,t){so++,io[so]=e.current,e.current=t}var po={},fo=co(po),mo=co(!1),ho=po;function go(e,t){var n=e.type.contextTypes;if(!n)return po;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var o,a={};for(o in n)a[o]=t[o];return r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=a),a}function bo(e){return null!=(e=e.childContextTypes)}function vo(){lo(mo),lo(fo)}function yo(e,t,n){if(fo.current!==po)throw Error(i(168));uo(fo,t),uo(mo,n)}function wo(e,t,n){var r=e.stateNode;if(e=t.childContextTypes,"function"!=typeof r.getChildContext)return n;for(var a in r=r.getChildContext())if(!(a in e))throw Error(i(108,V(t)||"Unknown",a));return o({},n,r)}function ko(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||po,ho=fo.current,uo(fo,e),uo(mo,mo.current),!0}function xo(e,t,n){var r=e.stateNode;if(!r)throw Error(i(169));n?(e=wo(e,t,ho),r.__reactInternalMemoizedMergedChildContext=e,lo(mo),lo(fo),uo(fo,e)):lo(mo),uo(mo,n)}var Eo=null,_o=null,So=a.unstable_runWithPriority,Ao=a.unstable_scheduleCallback,Co=a.unstable_cancelCallback,To=a.unstable_shouldYield,qo=a.unstable_requestPaint,No=a.unstable_now,Ro=a.unstable_getCurrentPriorityLevel,Oo=a.unstable_ImmediatePriority,Lo=a.unstable_UserBlockingPriority,Po=a.unstable_NormalPriority,Io=a.unstable_LowPriority,Do=a.unstable_IdlePriority,Mo={},jo=void 0!==qo?qo:function(){},Fo=null,Bo=null,zo=!1,Uo=No(),$o=1e4>Uo?No:function(){return No()-Uo};function Go(){switch(Ro()){case Oo:return 99;case Lo:return 98;case Po:return 97;case Io:return 96;case Do:return 95;default:throw Error(i(332))}}function Ho(e){switch(e){case 99:return Oo;case 98:return Lo;case 97:return Po;case 96:return Io;case 95:return Do;default:throw Error(i(332))}}function Wo(e,t){return e=Ho(e),So(e,t)}function Vo(e,t,n){return e=Ho(e),Ao(e,t,n)}function Ko(){if(null!==Bo){var e=Bo;Bo=null,Co(e)}Yo()}function Yo(){if(!zo&&null!==Fo){zo=!0;var e=0;try{var t=Fo;Wo(99,(function(){for(;e<t.length;e++){var n=t[e];do{n=n(!0)}while(null!==n)}})),Fo=null}catch(n){throw null!==Fo&&(Fo=Fo.slice(e+1)),Ao(Oo,Ko),n}finally{zo=!1}}}var Qo=k.ReactCurrentBatchConfig;function Xo(e,t){if(e&&e.defaultProps){for(var n in t=o({},t),e=e.defaultProps)void 0===t[n]&&(t[n]=e[n]);return t}return t}var Jo=co(null),Zo=null,ea=null,ta=null;function na(){ta=ea=Zo=null}function ra(e){var t=Jo.current;lo(Jo),e.type._context._currentValue=t}function oa(e,t){for(;null!==e;){var n=e.alternate;if((e.childLanes&t)===t){if(null===n||(n.childLanes&t)===t)break;n.childLanes|=t}else e.childLanes|=t,null!==n&&(n.childLanes|=t);e=e.return}}function aa(e,t){Zo=e,ta=ea=null,null!==(e=e.dependencies)&&null!==e.firstContext&&(0!=(e.lanes&t)&&(Di=!0),e.firstContext=null)}function ia(e,t){if(ta!==e&&!1!==t&&0!==t)if("number"==typeof t&&1073741823!==t||(ta=e,t=1073741823),t={context:e,observedBits:t,next:null},null===ea){if(null===Zo)throw Error(i(308));ea=t,Zo.dependencies={lanes:0,firstContext:t,responders:null}}else ea=ea.next=t;return e._currentValue}var sa=!1;function ca(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null},effects:null}}function la(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function ua(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function da(e,t){if(null!==(e=e.updateQueue)){var n=(e=e.shared).pending;null===n?t.next=t:(t.next=n.next,n.next=t),e.pending=t}}function pa(e,t){var n=e.updateQueue,r=e.alternate;if(null!==r&&n===(r=r.updateQueue)){var o=null,a=null;if(null!==(n=n.firstBaseUpdate)){do{var i={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};null===a?o=a=i:a=a.next=i,n=n.next}while(null!==n);null===a?o=a=t:a=a.next=t}else o=a=t;return n={baseState:r.baseState,firstBaseUpdate:o,lastBaseUpdate:a,shared:r.shared,effects:r.effects},void(e.updateQueue=n)}null===(e=n.lastBaseUpdate)?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function fa(e,t,n,r){var a=e.updateQueue;sa=!1;var i=a.firstBaseUpdate,s=a.lastBaseUpdate,c=a.shared.pending;if(null!==c){a.shared.pending=null;var l=c,u=l.next;l.next=null,null===s?i=u:s.next=u,s=l;var d=e.alternate;if(null!==d){var p=(d=d.updateQueue).lastBaseUpdate;p!==s&&(null===p?d.firstBaseUpdate=u:p.next=u,d.lastBaseUpdate=l)}}if(null!==i){for(p=a.baseState,s=0,d=u=l=null;;){c=i.lane;var f=i.eventTime;if((r&c)===c){null!==d&&(d=d.next={eventTime:f,lane:0,tag:i.tag,payload:i.payload,callback:i.callback,next:null});e:{var m=e,h=i;switch(c=t,f=n,h.tag){case 1:if("function"==typeof(m=h.payload)){p=m.call(f,p,c);break e}p=m;break e;case 3:m.flags=-4097&m.flags|64;case 0:if(null==(c="function"==typeof(m=h.payload)?m.call(f,p,c):m))break e;p=o({},p,c);break e;case 2:sa=!0}}null!==i.callback&&(e.flags|=32,null===(c=a.effects)?a.effects=[i]:c.push(i))}else f={eventTime:f,lane:c,tag:i.tag,payload:i.payload,callback:i.callback,next:null},null===d?(u=d=f,l=p):d=d.next=f,s|=c;if(null===(i=i.next)){if(null===(c=a.shared.pending))break;i=c.next,c.next=null,a.lastBaseUpdate=c,a.shared.pending=null}}null===d&&(l=p),a.baseState=l,a.firstBaseUpdate=u,a.lastBaseUpdate=d,zs|=s,e.lanes=s,e.memoizedState=p}}function ma(e,t,n){if(e=t.effects,t.effects=null,null!==e)for(t=0;t<e.length;t++){var r=e[t],o=r.callback;if(null!==o){if(r.callback=null,r=n,"function"!=typeof o)throw Error(i(191,o));o.call(r)}}}var ha=(new r.Component).refs;function ga(e,t,n,r){n=null==(n=n(r,t=e.memoizedState))?t:o({},t,n),e.memoizedState=n,0===e.lanes&&(e.updateQueue.baseState=n)}var ba={isMounted:function(e){return!!(e=e._reactInternals)&&Ye(e)===e},enqueueSetState:function(e,t,n){e=e._reactInternals;var r=pc(),o=fc(e),a=ua(r,o);a.payload=t,null!=n&&(a.callback=n),da(e,a),mc(e,o,r)},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var r=pc(),o=fc(e),a=ua(r,o);a.tag=1,a.payload=t,null!=n&&(a.callback=n),da(e,a),mc(e,o,r)},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=pc(),r=fc(e),o=ua(n,r);o.tag=2,null!=t&&(o.callback=t),da(e,o),mc(e,r,n)}};function va(e,t,n,r,o,a,i){return"function"==typeof(e=e.stateNode).shouldComponentUpdate?e.shouldComponentUpdate(r,a,i):!t.prototype||!t.prototype.isPureReactComponent||(!dr(n,r)||!dr(o,a))}function ya(e,t,n){var r=!1,o=po,a=t.contextType;return"object"==typeof a&&null!==a?a=ia(a):(o=bo(t)?ho:fo.current,a=(r=null!=(r=t.contextTypes))?go(e,o):po),t=new t(n,a),e.memoizedState=null!==t.state&&void 0!==t.state?t.state:null,t.updater=ba,e.stateNode=t,t._reactInternals=e,r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=o,e.__reactInternalMemoizedMaskedChildContext=a),t}function wa(e,t,n,r){e=t.state,"function"==typeof t.componentWillReceiveProps&&t.componentWillReceiveProps(n,r),"function"==typeof t.UNSAFE_componentWillReceiveProps&&t.UNSAFE_componentWillReceiveProps(n,r),t.state!==e&&ba.enqueueReplaceState(t,t.state,null)}function ka(e,t,n,r){var o=e.stateNode;o.props=n,o.state=e.memoizedState,o.refs=ha,ca(e);var a=t.contextType;"object"==typeof a&&null!==a?o.context=ia(a):(a=bo(t)?ho:fo.current,o.context=go(e,a)),fa(e,n,o,r),o.state=e.memoizedState,"function"==typeof(a=t.getDerivedStateFromProps)&&(ga(e,t,a,n),o.state=e.memoizedState),"function"==typeof t.getDerivedStateFromProps||"function"==typeof o.getSnapshotBeforeUpdate||"function"!=typeof o.UNSAFE_componentWillMount&&"function"!=typeof o.componentWillMount||(t=o.state,"function"==typeof o.componentWillMount&&o.componentWillMount(),"function"==typeof o.UNSAFE_componentWillMount&&o.UNSAFE_componentWillMount(),t!==o.state&&ba.enqueueReplaceState(o,o.state,null),fa(e,n,o,r),o.state=e.memoizedState),"function"==typeof o.componentDidMount&&(e.flags|=4)}var xa=Array.isArray;function Ea(e,t,n){if(null!==(e=n.ref)&&"function"!=typeof e&&"object"!=typeof e){if(n._owner){if(n=n._owner){if(1!==n.tag)throw Error(i(309));var r=n.stateNode}if(!r)throw Error(i(147,e));var o=""+e;return null!==t&&null!==t.ref&&"function"==typeof t.ref&&t.ref._stringRef===o?t.ref:(t=function(e){var t=r.refs;t===ha&&(t=r.refs={}),null===e?delete t[o]:t[o]=e},t._stringRef=o,t)}if("string"!=typeof e)throw Error(i(284));if(!n._owner)throw Error(i(290,e))}return e}function _a(e,t){if("textarea"!==e.type)throw Error(i(31,"[object Object]"===Object.prototype.toString.call(t)?"object with keys {"+Object.keys(t).join(", ")+"}":t))}function Sa(e){function t(t,n){if(e){var r=t.lastEffect;null!==r?(r.nextEffect=n,t.lastEffect=n):t.firstEffect=t.lastEffect=n,n.nextEffect=null,n.flags=8}}function n(n,r){if(!e)return null;for(;null!==r;)t(n,r),r=r.sibling;return null}function r(e,t){for(e=new Map;null!==t;)null!==t.key?e.set(t.key,t):e.set(t.index,t),t=t.sibling;return e}function o(e,t){return(e=Wc(e,t)).index=0,e.sibling=null,e}function a(t,n,r){return t.index=r,e?null!==(r=t.alternate)?(r=r.index)<n?(t.flags=2,n):r:(t.flags=2,n):n}function s(t){return e&&null===t.alternate&&(t.flags=2),t}function c(e,t,n,r){return null===t||6!==t.tag?((t=Qc(n,e.mode,r)).return=e,t):((t=o(t,n)).return=e,t)}function l(e,t,n,r){return null!==t&&t.elementType===n.type?((r=o(t,n.props)).ref=Ea(e,t,n),r.return=e,r):((r=Vc(n.type,n.key,n.props,null,e.mode,r)).ref=Ea(e,t,n),r.return=e,r)}function u(e,t,n,r){return null===t||4!==t.tag||t.stateNode.containerInfo!==n.containerInfo||t.stateNode.implementation!==n.implementation?((t=Xc(n,e.mode,r)).return=e,t):((t=o(t,n.children||[])).return=e,t)}function d(e,t,n,r,a){return null===t||7!==t.tag?((t=Kc(n,e.mode,r,a)).return=e,t):((t=o(t,n)).return=e,t)}function p(e,t,n){if("string"==typeof t||"number"==typeof t)return(t=Qc(""+t,e.mode,n)).return=e,t;if("object"==typeof t&&null!==t){switch(t.$$typeof){case x:return(n=Vc(t.type,t.key,t.props,null,e.mode,n)).ref=Ea(e,null,t),n.return=e,n;case E:return(t=Xc(t,e.mode,n)).return=e,t}if(xa(t)||U(t))return(t=Kc(t,e.mode,n,null)).return=e,t;_a(e,t)}return null}function f(e,t,n,r){var o=null!==t?t.key:null;if("string"==typeof n||"number"==typeof n)return null!==o?null:c(e,t,""+n,r);if("object"==typeof n&&null!==n){switch(n.$$typeof){case x:return n.key===o?n.type===_?d(e,t,n.props.children,r,o):l(e,t,n,r):null;case E:return n.key===o?u(e,t,n,r):null}if(xa(n)||U(n))return null!==o?null:d(e,t,n,r,null);_a(e,n)}return null}function m(e,t,n,r,o){if("string"==typeof r||"number"==typeof r)return c(t,e=e.get(n)||null,""+r,o);if("object"==typeof r&&null!==r){switch(r.$$typeof){case x:return e=e.get(null===r.key?n:r.key)||null,r.type===_?d(t,e,r.props.children,o,r.key):l(t,e,r,o);case E:return u(t,e=e.get(null===r.key?n:r.key)||null,r,o)}if(xa(r)||U(r))return d(t,e=e.get(n)||null,r,o,null);_a(t,r)}return null}function h(o,i,s,c){for(var l=null,u=null,d=i,h=i=0,g=null;null!==d&&h<s.length;h++){d.index>h?(g=d,d=null):g=d.sibling;var b=f(o,d,s[h],c);if(null===b){null===d&&(d=g);break}e&&d&&null===b.alternate&&t(o,d),i=a(b,i,h),null===u?l=b:u.sibling=b,u=b,d=g}if(h===s.length)return n(o,d),l;if(null===d){for(;h<s.length;h++)null!==(d=p(o,s[h],c))&&(i=a(d,i,h),null===u?l=d:u.sibling=d,u=d);return l}for(d=r(o,d);h<s.length;h++)null!==(g=m(d,o,h,s[h],c))&&(e&&null!==g.alternate&&d.delete(null===g.key?h:g.key),i=a(g,i,h),null===u?l=g:u.sibling=g,u=g);return e&&d.forEach((function(e){return t(o,e)})),l}function g(o,s,c,l){var u=U(c);if("function"!=typeof u)throw Error(i(150));if(null==(c=u.call(c)))throw Error(i(151));for(var d=u=null,h=s,g=s=0,b=null,v=c.next();null!==h&&!v.done;g++,v=c.next()){h.index>g?(b=h,h=null):b=h.sibling;var y=f(o,h,v.value,l);if(null===y){null===h&&(h=b);break}e&&h&&null===y.alternate&&t(o,h),s=a(y,s,g),null===d?u=y:d.sibling=y,d=y,h=b}if(v.done)return n(o,h),u;if(null===h){for(;!v.done;g++,v=c.next())null!==(v=p(o,v.value,l))&&(s=a(v,s,g),null===d?u=v:d.sibling=v,d=v);return u}for(h=r(o,h);!v.done;g++,v=c.next())null!==(v=m(h,o,g,v.value,l))&&(e&&null!==v.alternate&&h.delete(null===v.key?g:v.key),s=a(v,s,g),null===d?u=v:d.sibling=v,d=v);return e&&h.forEach((function(e){return t(o,e)})),u}return function(e,r,a,c){var l="object"==typeof a&&null!==a&&a.type===_&&null===a.key;l&&(a=a.props.children);var u="object"==typeof a&&null!==a;if(u)switch(a.$$typeof){case x:e:{for(u=a.key,l=r;null!==l;){if(l.key===u){if(7===l.tag){if(a.type===_){n(e,l.sibling),(r=o(l,a.props.children)).return=e,e=r;break e}}else if(l.elementType===a.type){n(e,l.sibling),(r=o(l,a.props)).ref=Ea(e,l,a),r.return=e,e=r;break e}n(e,l);break}t(e,l),l=l.sibling}a.type===_?((r=Kc(a.props.children,e.mode,c,a.key)).return=e,e=r):((c=Vc(a.type,a.key,a.props,null,e.mode,c)).ref=Ea(e,r,a),c.return=e,e=c)}return s(e);case E:e:{for(l=a.key;null!==r;){if(r.key===l){if(4===r.tag&&r.stateNode.containerInfo===a.containerInfo&&r.stateNode.implementation===a.implementation){n(e,r.sibling),(r=o(r,a.children||[])).return=e,e=r;break e}n(e,r);break}t(e,r),r=r.sibling}(r=Xc(a,e.mode,c)).return=e,e=r}return s(e)}if("string"==typeof a||"number"==typeof a)return a=""+a,null!==r&&6===r.tag?(n(e,r.sibling),(r=o(r,a)).return=e,e=r):(n(e,r),(r=Qc(a,e.mode,c)).return=e,e=r),s(e);if(xa(a))return h(e,r,a,c);if(U(a))return g(e,r,a,c);if(u&&_a(e,a),void 0===a&&!l)switch(e.tag){case 1:case 22:case 0:case 11:case 15:throw Error(i(152,V(e.type)||"Component"))}return n(e,r)}}var Aa=Sa(!0),Ca=Sa(!1),Ta={},qa=co(Ta),Na=co(Ta),Ra=co(Ta);function Oa(e){if(e===Ta)throw Error(i(174));return e}function La(e,t){switch(uo(Ra,t),uo(Na,e),uo(qa,Ta),e=t.nodeType){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:fe(null,"");break;default:t=fe(t=(e=8===e?t.parentNode:t).namespaceURI||null,e=e.tagName)}lo(qa),uo(qa,t)}function Pa(){lo(qa),lo(Na),lo(Ra)}function Ia(e){Oa(Ra.current);var t=Oa(qa.current),n=fe(t,e.type);t!==n&&(uo(Na,e),uo(qa,n))}function Da(e){Na.current===e&&(lo(qa),lo(Na))}var Ma=co(0);function ja(e){for(var t=e;null!==t;){if(13===t.tag){var n=t.memoizedState;if(null!==n&&(null===(n=n.dehydrated)||"$?"===n.data||"$!"===n.data))return t}else if(19===t.tag&&void 0!==t.memoizedProps.revealOrder){if(0!=(64&t.flags))return t}else if(null!==t.child){t.child.return=t,t=t.child;continue}if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var Fa=null,Ba=null,za=!1;function Ua(e,t){var n=Gc(5,null,null,0);n.elementType="DELETED",n.type="DELETED",n.stateNode=t,n.return=e,n.flags=8,null!==e.lastEffect?(e.lastEffect.nextEffect=n,e.lastEffect=n):e.firstEffect=e.lastEffect=n}function $a(e,t){switch(e.tag){case 5:var n=e.type;return null!==(t=1!==t.nodeType||n.toLowerCase()!==t.nodeName.toLowerCase()?null:t)&&(e.stateNode=t,!0);case 6:return null!==(t=""===e.pendingProps||3!==t.nodeType?null:t)&&(e.stateNode=t,!0);default:return!1}}function Ga(e){if(za){var t=Ba;if(t){var n=t;if(!$a(e,t)){if(!(t=Vr(n.nextSibling))||!$a(e,t))return e.flags=-1025&e.flags|2,za=!1,void(Fa=e);Ua(Fa,n)}Fa=e,Ba=Vr(t.firstChild)}else e.flags=-1025&e.flags|2,za=!1,Fa=e}}function Ha(e){for(e=e.return;null!==e&&5!==e.tag&&3!==e.tag&&13!==e.tag;)e=e.return;Fa=e}function Wa(e){if(e!==Fa)return!1;if(!za)return Ha(e),za=!0,!1;var t=e.type;if(5!==e.tag||"head"!==t&&"body"!==t&&!$r(t,e.memoizedProps))for(t=Ba;t;)Ua(e,t),t=Vr(t.nextSibling);if(Ha(e),13===e.tag){if(!(e=null!==(e=e.memoizedState)?e.dehydrated:null))throw Error(i(317));e:{for(e=e.nextSibling,t=0;e;){if(8===e.nodeType){var n=e.data;if("/$"===n){if(0===t){Ba=Vr(e.nextSibling);break e}t--}else"$"!==n&&"$!"!==n&&"$?"!==n||t++}e=e.nextSibling}Ba=null}}else Ba=Fa?Vr(e.stateNode.nextSibling):null;return!0}function Va(){Ba=Fa=null,za=!1}var Ka=[];function Ya(){for(var e=0;e<Ka.length;e++)Ka[e]._workInProgressVersionPrimary=null;Ka.length=0}var Qa=k.ReactCurrentDispatcher,Xa=k.ReactCurrentBatchConfig,Ja=0,Za=null,ei=null,ti=null,ni=!1,ri=!1;function oi(){throw Error(i(321))}function ai(e,t){if(null===t)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!lr(e[n],t[n]))return!1;return!0}function ii(e,t,n,r,o,a){if(Ja=a,Za=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,Qa.current=null===e||null===e.memoizedState?Oi:Li,e=n(r,o),ri){a=0;do{if(ri=!1,!(25>a))throw Error(i(301));a+=1,ti=ei=null,t.updateQueue=null,Qa.current=Pi,e=n(r,o)}while(ri)}if(Qa.current=Ri,t=null!==ei&&null!==ei.next,Ja=0,ti=ei=Za=null,ni=!1,t)throw Error(i(300));return e}function si(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return null===ti?Za.memoizedState=ti=e:ti=ti.next=e,ti}function ci(){if(null===ei){var e=Za.alternate;e=null!==e?e.memoizedState:null}else e=ei.next;var t=null===ti?Za.memoizedState:ti.next;if(null!==t)ti=t,ei=e;else{if(null===e)throw Error(i(310));e={memoizedState:(ei=e).memoizedState,baseState:ei.baseState,baseQueue:ei.baseQueue,queue:ei.queue,next:null},null===ti?Za.memoizedState=ti=e:ti=ti.next=e}return ti}function li(e,t){return"function"==typeof t?t(e):t}function ui(e){var t=ci(),n=t.queue;if(null===n)throw Error(i(311));n.lastRenderedReducer=e;var r=ei,o=r.baseQueue,a=n.pending;if(null!==a){if(null!==o){var s=o.next;o.next=a.next,a.next=s}r.baseQueue=o=a,n.pending=null}if(null!==o){o=o.next,r=r.baseState;var c=s=a=null,l=o;do{var u=l.lane;if((Ja&u)===u)null!==c&&(c=c.next={lane:0,action:l.action,eagerReducer:l.eagerReducer,eagerState:l.eagerState,next:null}),r=l.eagerReducer===e?l.eagerState:e(r,l.action);else{var d={lane:u,action:l.action,eagerReducer:l.eagerReducer,eagerState:l.eagerState,next:null};null===c?(s=c=d,a=r):c=c.next=d,Za.lanes|=u,zs|=u}l=l.next}while(null!==l&&l!==o);null===c?a=r:c.next=s,lr(r,t.memoizedState)||(Di=!0),t.memoizedState=r,t.baseState=a,t.baseQueue=c,n.lastRenderedState=r}return[t.memoizedState,n.dispatch]}function di(e){var t=ci(),n=t.queue;if(null===n)throw Error(i(311));n.lastRenderedReducer=e;var r=n.dispatch,o=n.pending,a=t.memoizedState;if(null!==o){n.pending=null;var s=o=o.next;do{a=e(a,s.action),s=s.next}while(s!==o);lr(a,t.memoizedState)||(Di=!0),t.memoizedState=a,null===t.baseQueue&&(t.baseState=a),n.lastRenderedState=a}return[a,r]}function pi(e,t,n){var r=t._getVersion;r=r(t._source);var o=t._workInProgressVersionPrimary;if(null!==o?e=o===r:(e=e.mutableReadLanes,(e=(Ja&e)===e)&&(t._workInProgressVersionPrimary=r,Ka.push(t))),e)return n(t._source);throw Ka.push(t),Error(i(350))}function fi(e,t,n,r){var o=Ls;if(null===o)throw Error(i(349));var a=t._getVersion,s=a(t._source),c=Qa.current,l=c.useState((function(){return pi(o,t,n)})),u=l[1],d=l[0];l=ti;var p=e.memoizedState,f=p.refs,m=f.getSnapshot,h=p.source;p=p.subscribe;var g=Za;return e.memoizedState={refs:f,source:t,subscribe:r},c.useEffect((function(){f.getSnapshot=n,f.setSnapshot=u;var e=a(t._source);if(!lr(s,e)){e=n(t._source),lr(d,e)||(u(e),e=fc(g),o.mutableReadLanes|=e&o.pendingLanes),e=o.mutableReadLanes,o.entangledLanes|=e;for(var r=o.entanglements,i=e;0<i;){var c=31-$t(i),l=1<<c;r[c]|=e,i&=~l}}}),[n,t,r]),c.useEffect((function(){return r(t._source,(function(){var e=f.getSnapshot,n=f.setSnapshot;try{n(e(t._source));var r=fc(g);o.mutableReadLanes|=r&o.pendingLanes}catch(a){n((function(){throw a}))}}))}),[t,r]),lr(m,n)&&lr(h,t)&&lr(p,r)||((e={pending:null,dispatch:null,lastRenderedReducer:li,lastRenderedState:d}).dispatch=u=Ni.bind(null,Za,e),l.queue=e,l.baseQueue=null,d=pi(o,t,n),l.memoizedState=l.baseState=d),d}function mi(e,t,n){return fi(ci(),e,t,n)}function hi(e){var t=si();return"function"==typeof e&&(e=e()),t.memoizedState=t.baseState=e,e=(e=t.queue={pending:null,dispatch:null,lastRenderedReducer:li,lastRenderedState:e}).dispatch=Ni.bind(null,Za,e),[t.memoizedState,e]}function gi(e,t,n,r){return e={tag:e,create:t,destroy:n,deps:r,next:null},null===(t=Za.updateQueue)?(t={lastEffect:null},Za.updateQueue=t,t.lastEffect=e.next=e):null===(n=t.lastEffect)?t.lastEffect=e.next=e:(r=n.next,n.next=e,e.next=r,t.lastEffect=e),e}function bi(e){return e={current:e},si().memoizedState=e}function vi(){return ci().memoizedState}function yi(e,t,n,r){var o=si();Za.flags|=e,o.memoizedState=gi(1|t,n,void 0,void 0===r?null:r)}function wi(e,t,n,r){var o=ci();r=void 0===r?null:r;var a=void 0;if(null!==ei){var i=ei.memoizedState;if(a=i.destroy,null!==r&&ai(r,i.deps))return void gi(t,n,a,r)}Za.flags|=e,o.memoizedState=gi(1|t,n,a,r)}function ki(e,t){return yi(516,4,e,t)}function xi(e,t){return wi(516,4,e,t)}function Ei(e,t){return wi(4,2,e,t)}function _i(e,t){return"function"==typeof t?(e=e(),t(e),function(){t(null)}):null!=t?(e=e(),t.current=e,function(){t.current=null}):void 0}function Si(e,t,n){return n=null!=n?n.concat([e]):null,wi(4,2,_i.bind(null,t,e),n)}function Ai(){}function Ci(e,t){var n=ci();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&ai(t,r[1])?r[0]:(n.memoizedState=[e,t],e)}function Ti(e,t){var n=ci();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&ai(t,r[1])?r[0]:(e=e(),n.memoizedState=[e,t],e)}function qi(e,t){var n=Go();Wo(98>n?98:n,(function(){e(!0)})),Wo(97<n?97:n,(function(){var n=Xa.transition;Xa.transition=1;try{e(!1),t()}finally{Xa.transition=n}}))}function Ni(e,t,n){var r=pc(),o=fc(e),a={lane:o,action:n,eagerReducer:null,eagerState:null,next:null},i=t.pending;if(null===i?a.next=a:(a.next=i.next,i.next=a),t.pending=a,i=e.alternate,e===Za||null!==i&&i===Za)ri=ni=!0;else{if(0===e.lanes&&(null===i||0===i.lanes)&&null!==(i=t.lastRenderedReducer))try{var s=t.lastRenderedState,c=i(s,n);if(a.eagerReducer=i,a.eagerState=c,lr(c,s))return}catch(l){}mc(e,o,r)}}var Ri={readContext:ia,useCallback:oi,useContext:oi,useEffect:oi,useImperativeHandle:oi,useLayoutEffect:oi,useMemo:oi,useReducer:oi,useRef:oi,useState:oi,useDebugValue:oi,useDeferredValue:oi,useTransition:oi,useMutableSource:oi,useOpaqueIdentifier:oi,unstable_isNewReconciler:!1},Oi={readContext:ia,useCallback:function(e,t){return si().memoizedState=[e,void 0===t?null:t],e},useContext:ia,useEffect:ki,useImperativeHandle:function(e,t,n){return n=null!=n?n.concat([e]):null,yi(4,2,_i.bind(null,t,e),n)},useLayoutEffect:function(e,t){return yi(4,2,e,t)},useMemo:function(e,t){var n=si();return t=void 0===t?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=si();return t=void 0!==n?n(t):t,r.memoizedState=r.baseState=t,e=(e=r.queue={pending:null,dispatch:null,lastRenderedReducer:e,lastRenderedState:t}).dispatch=Ni.bind(null,Za,e),[r.memoizedState,e]},useRef:bi,useState:hi,useDebugValue:Ai,useDeferredValue:function(e){var t=hi(e),n=t[0],r=t[1];return ki((function(){var t=Xa.transition;Xa.transition=1;try{r(e)}finally{Xa.transition=t}}),[e]),n},useTransition:function(){var e=hi(!1),t=e[0];return bi(e=qi.bind(null,e[1])),[e,t]},useMutableSource:function(e,t,n){var r=si();return r.memoizedState={refs:{getSnapshot:t,setSnapshot:null},source:e,subscribe:n},fi(r,e,t,n)},useOpaqueIdentifier:function(){if(za){var e=!1,t=function(e){return{$$typeof:I,toString:e,valueOf:e}}((function(){throw e||(e=!0,n("r:"+(Yr++).toString(36))),Error(i(355))})),n=hi(t)[1];return 0==(2&Za.mode)&&(Za.flags|=516,gi(5,(function(){n("r:"+(Yr++).toString(36))}),void 0,null)),t}return hi(t="r:"+(Yr++).toString(36)),t},unstable_isNewReconciler:!1},Li={readContext:ia,useCallback:Ci,useContext:ia,useEffect:xi,useImperativeHandle:Si,useLayoutEffect:Ei,useMemo:Ti,useReducer:ui,useRef:vi,useState:function(){return ui(li)},useDebugValue:Ai,useDeferredValue:function(e){var t=ui(li),n=t[0],r=t[1];return xi((function(){var t=Xa.transition;Xa.transition=1;try{r(e)}finally{Xa.transition=t}}),[e]),n},useTransition:function(){var e=ui(li)[0];return[vi().current,e]},useMutableSource:mi,useOpaqueIdentifier:function(){return ui(li)[0]},unstable_isNewReconciler:!1},Pi={readContext:ia,useCallback:Ci,useContext:ia,useEffect:xi,useImperativeHandle:Si,useLayoutEffect:Ei,useMemo:Ti,useReducer:di,useRef:vi,useState:function(){return di(li)},useDebugValue:Ai,useDeferredValue:function(e){var t=di(li),n=t[0],r=t[1];return xi((function(){var t=Xa.transition;Xa.transition=1;try{r(e)}finally{Xa.transition=t}}),[e]),n},useTransition:function(){var e=di(li)[0];return[vi().current,e]},useMutableSource:mi,useOpaqueIdentifier:function(){return di(li)[0]},unstable_isNewReconciler:!1},Ii=k.ReactCurrentOwner,Di=!1;function Mi(e,t,n,r){t.child=null===e?Ca(t,null,n,r):Aa(t,e.child,n,r)}function ji(e,t,n,r,o){n=n.render;var a=t.ref;return aa(t,o),r=ii(e,t,n,r,a,o),null===e||Di?(t.flags|=1,Mi(e,t,r,o),t.child):(t.updateQueue=e.updateQueue,t.flags&=-517,e.lanes&=~o,as(e,t,o))}function Fi(e,t,n,r,o,a){if(null===e){var i=n.type;return"function"!=typeof i||Hc(i)||void 0!==i.defaultProps||null!==n.compare||void 0!==n.defaultProps?((e=Vc(n.type,null,r,t,t.mode,a)).ref=t.ref,e.return=t,t.child=e):(t.tag=15,t.type=i,Bi(e,t,i,r,o,a))}return i=e.child,0==(o&a)&&(o=i.memoizedProps,(n=null!==(n=n.compare)?n:dr)(o,r)&&e.ref===t.ref)?as(e,t,a):(t.flags|=1,(e=Wc(i,r)).ref=t.ref,e.return=t,t.child=e)}function Bi(e,t,n,r,o,a){if(null!==e&&dr(e.memoizedProps,r)&&e.ref===t.ref){if(Di=!1,0==(a&o))return t.lanes=e.lanes,as(e,t,a);0!=(16384&e.flags)&&(Di=!0)}return $i(e,t,n,r,a)}function zi(e,t,n){var r=t.pendingProps,o=r.children,a=null!==e?e.memoizedState:null;if("hidden"===r.mode||"unstable-defer-without-hiding"===r.mode)if(0==(4&t.mode))t.memoizedState={baseLanes:0},xc(t,n);else{if(0==(1073741824&n))return e=null!==a?a.baseLanes|n:n,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e},xc(t,e),null;t.memoizedState={baseLanes:0},xc(t,null!==a?a.baseLanes:n)}else null!==a?(r=a.baseLanes|n,t.memoizedState=null):r=n,xc(t,r);return Mi(e,t,o,n),t.child}function Ui(e,t){var n=t.ref;(null===e&&null!==n||null!==e&&e.ref!==n)&&(t.flags|=128)}function $i(e,t,n,r,o){var a=bo(n)?ho:fo.current;return a=go(t,a),aa(t,o),n=ii(e,t,n,r,a,o),null===e||Di?(t.flags|=1,Mi(e,t,n,o),t.child):(t.updateQueue=e.updateQueue,t.flags&=-517,e.lanes&=~o,as(e,t,o))}function Gi(e,t,n,r,o){if(bo(n)){var a=!0;ko(t)}else a=!1;if(aa(t,o),null===t.stateNode)null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),ya(t,n,r),ka(t,n,r,o),r=!0;else if(null===e){var i=t.stateNode,s=t.memoizedProps;i.props=s;var c=i.context,l=n.contextType;"object"==typeof l&&null!==l?l=ia(l):l=go(t,l=bo(n)?ho:fo.current);var u=n.getDerivedStateFromProps,d="function"==typeof u||"function"==typeof i.getSnapshotBeforeUpdate;d||"function"!=typeof i.UNSAFE_componentWillReceiveProps&&"function"!=typeof i.componentWillReceiveProps||(s!==r||c!==l)&&wa(t,i,r,l),sa=!1;var p=t.memoizedState;i.state=p,fa(t,r,i,o),c=t.memoizedState,s!==r||p!==c||mo.current||sa?("function"==typeof u&&(ga(t,n,u,r),c=t.memoizedState),(s=sa||va(t,n,s,r,p,c,l))?(d||"function"!=typeof i.UNSAFE_componentWillMount&&"function"!=typeof i.componentWillMount||("function"==typeof i.componentWillMount&&i.componentWillMount(),"function"==typeof i.UNSAFE_componentWillMount&&i.UNSAFE_componentWillMount()),"function"==typeof i.componentDidMount&&(t.flags|=4)):("function"==typeof i.componentDidMount&&(t.flags|=4),t.memoizedProps=r,t.memoizedState=c),i.props=r,i.state=c,i.context=l,r=s):("function"==typeof i.componentDidMount&&(t.flags|=4),r=!1)}else{i=t.stateNode,la(e,t),s=t.memoizedProps,l=t.type===t.elementType?s:Xo(t.type,s),i.props=l,d=t.pendingProps,p=i.context,"object"==typeof(c=n.contextType)&&null!==c?c=ia(c):c=go(t,c=bo(n)?ho:fo.current);var f=n.getDerivedStateFromProps;(u="function"==typeof f||"function"==typeof i.getSnapshotBeforeUpdate)||"function"!=typeof i.UNSAFE_componentWillReceiveProps&&"function"!=typeof i.componentWillReceiveProps||(s!==d||p!==c)&&wa(t,i,r,c),sa=!1,p=t.memoizedState,i.state=p,fa(t,r,i,o);var m=t.memoizedState;s!==d||p!==m||mo.current||sa?("function"==typeof f&&(ga(t,n,f,r),m=t.memoizedState),(l=sa||va(t,n,l,r,p,m,c))?(u||"function"!=typeof i.UNSAFE_componentWillUpdate&&"function"!=typeof i.componentWillUpdate||("function"==typeof i.componentWillUpdate&&i.componentWillUpdate(r,m,c),"function"==typeof i.UNSAFE_componentWillUpdate&&i.UNSAFE_componentWillUpdate(r,m,c)),"function"==typeof i.componentDidUpdate&&(t.flags|=4),"function"==typeof i.getSnapshotBeforeUpdate&&(t.flags|=256)):("function"!=typeof i.componentDidUpdate||s===e.memoizedProps&&p===e.memoizedState||(t.flags|=4),"function"!=typeof i.getSnapshotBeforeUpdate||s===e.memoizedProps&&p===e.memoizedState||(t.flags|=256),t.memoizedProps=r,t.memoizedState=m),i.props=r,i.state=m,i.context=c,r=l):("function"!=typeof i.componentDidUpdate||s===e.memoizedProps&&p===e.memoizedState||(t.flags|=4),"function"!=typeof i.getSnapshotBeforeUpdate||s===e.memoizedProps&&p===e.memoizedState||(t.flags|=256),r=!1)}return Hi(e,t,n,r,a,o)}function Hi(e,t,n,r,o,a){Ui(e,t);var i=0!=(64&t.flags);if(!r&&!i)return o&&xo(t,n,!1),as(e,t,a);r=t.stateNode,Ii.current=t;var s=i&&"function"!=typeof n.getDerivedStateFromError?null:r.render();return t.flags|=1,null!==e&&i?(t.child=Aa(t,e.child,null,a),t.child=Aa(t,null,s,a)):Mi(e,t,s,a),t.memoizedState=r.state,o&&xo(t,n,!0),t.child}function Wi(e){var t=e.stateNode;t.pendingContext?yo(0,t.pendingContext,t.pendingContext!==t.context):t.context&&yo(0,t.context,!1),La(e,t.containerInfo)}var Vi,Ki,Yi,Qi,Xi={dehydrated:null,retryLane:0};function Ji(e,t,n){var r,o=t.pendingProps,a=Ma.current,i=!1;return(r=0!=(64&t.flags))||(r=(null===e||null!==e.memoizedState)&&0!=(2&a)),r?(i=!0,t.flags&=-65):null!==e&&null===e.memoizedState||void 0===o.fallback||!0===o.unstable_avoidThisFallback||(a|=1),uo(Ma,1&a),null===e?(void 0!==o.fallback&&Ga(t),e=o.children,a=o.fallback,i?(e=Zi(t,e,a,n),t.child.memoizedState={baseLanes:n},t.memoizedState=Xi,e):"number"==typeof o.unstable_expectedLoadTime?(e=Zi(t,e,a,n),t.child.memoizedState={baseLanes:n},t.memoizedState=Xi,t.lanes=33554432,e):((n=Yc({mode:"visible",children:e},t.mode,n,null)).return=t,t.child=n)):(e.memoizedState,i?(o=ts(e,t,o.children,o.fallback,n),i=t.child,a=e.child.memoizedState,i.memoizedState=null===a?{baseLanes:n}:{baseLanes:a.baseLanes|n},i.childLanes=e.childLanes&~n,t.memoizedState=Xi,o):(n=es(e,t,o.children,n),t.memoizedState=null,n))}function Zi(e,t,n,r){var o=e.mode,a=e.child;return t={mode:"hidden",children:t},0==(2&o)&&null!==a?(a.childLanes=0,a.pendingProps=t):a=Yc(t,o,0,null),n=Kc(n,o,r,null),a.return=e,n.return=e,a.sibling=n,e.child=a,n}function es(e,t,n,r){var o=e.child;return e=o.sibling,n=Wc(o,{mode:"visible",children:n}),0==(2&t.mode)&&(n.lanes=r),n.return=t,n.sibling=null,null!==e&&(e.nextEffect=null,e.flags=8,t.firstEffect=t.lastEffect=e),t.child=n}function ts(e,t,n,r,o){var a=t.mode,i=e.child;e=i.sibling;var s={mode:"hidden",children:n};return 0==(2&a)&&t.child!==i?((n=t.child).childLanes=0,n.pendingProps=s,null!==(i=n.lastEffect)?(t.firstEffect=n.firstEffect,t.lastEffect=i,i.nextEffect=null):t.firstEffect=t.lastEffect=null):n=Wc(i,s),null!==e?r=Wc(e,r):(r=Kc(r,a,o,null)).flags|=2,r.return=t,n.return=t,n.sibling=r,t.child=n,r}function ns(e,t){e.lanes|=t;var n=e.alternate;null!==n&&(n.lanes|=t),oa(e.return,t)}function rs(e,t,n,r,o,a){var i=e.memoizedState;null===i?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:o,lastEffect:a}:(i.isBackwards=t,i.rendering=null,i.renderingStartTime=0,i.last=r,i.tail=n,i.tailMode=o,i.lastEffect=a)}function os(e,t,n){var r=t.pendingProps,o=r.revealOrder,a=r.tail;if(Mi(e,t,r.children,n),0!=(2&(r=Ma.current)))r=1&r|2,t.flags|=64;else{if(null!==e&&0!=(64&e.flags))e:for(e=t.child;null!==e;){if(13===e.tag)null!==e.memoizedState&&ns(e,n);else if(19===e.tag)ns(e,n);else if(null!==e.child){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;null===e.sibling;){if(null===e.return||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}r&=1}if(uo(Ma,r),0==(2&t.mode))t.memoizedState=null;else switch(o){case"forwards":for(n=t.child,o=null;null!==n;)null!==(e=n.alternate)&&null===ja(e)&&(o=n),n=n.sibling;null===(n=o)?(o=t.child,t.child=null):(o=n.sibling,n.sibling=null),rs(t,!1,o,n,a,t.lastEffect);break;case"backwards":for(n=null,o=t.child,t.child=null;null!==o;){if(null!==(e=o.alternate)&&null===ja(e)){t.child=o;break}e=o.sibling,o.sibling=n,n=o,o=e}rs(t,!0,n,null,a,t.lastEffect);break;case"together":rs(t,!1,null,null,void 0,t.lastEffect);break;default:t.memoizedState=null}return t.child}function as(e,t,n){if(null!==e&&(t.dependencies=e.dependencies),zs|=t.lanes,0!=(n&t.childLanes)){if(null!==e&&t.child!==e.child)throw Error(i(153));if(null!==t.child){for(n=Wc(e=t.child,e.pendingProps),t.child=n,n.return=t;null!==e.sibling;)e=e.sibling,(n=n.sibling=Wc(e,e.pendingProps)).return=t;n.sibling=null}return t.child}return null}function is(e,t){if(!za)switch(e.tailMode){case"hidden":t=e.tail;for(var n=null;null!==t;)null!==t.alternate&&(n=t),t=t.sibling;null===n?e.tail=null:n.sibling=null;break;case"collapsed":n=e.tail;for(var r=null;null!==n;)null!==n.alternate&&(r=n),n=n.sibling;null===r?t||null===e.tail?e.tail=null:e.tail.sibling=null:r.sibling=null}}function ss(e,t,n){var r=t.pendingProps;switch(t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return null;case 1:case 17:return bo(t.type)&&vo(),null;case 3:return Pa(),lo(mo),lo(fo),Ya(),(r=t.stateNode).pendingContext&&(r.context=r.pendingContext,r.pendingContext=null),null!==e&&null!==e.child||(Wa(t)?t.flags|=4:r.hydrate||(t.flags|=256)),Ki(t),null;case 5:Da(t);var a=Oa(Ra.current);if(n=t.type,null!==e&&null!=t.stateNode)Yi(e,t,n,r,a),e.ref!==t.ref&&(t.flags|=128);else{if(!r){if(null===t.stateNode)throw Error(i(166));return null}if(e=Oa(qa.current),Wa(t)){r=t.stateNode,n=t.type;var s=t.memoizedProps;switch(r[Xr]=t,r[Jr]=s,n){case"dialog":qr("cancel",r),qr("close",r);break;case"iframe":case"object":case"embed":qr("load",r);break;case"video":case"audio":for(e=0;e<Sr.length;e++)qr(Sr[e],r);break;case"source":qr("error",r);break;case"img":case"image":case"link":qr("error",r),qr("load",r);break;case"details":qr("toggle",r);break;case"input":ee(r,s),qr("invalid",r);break;case"select":r._wrapperState={wasMultiple:!!s.multiple},qr("invalid",r);break;case"textarea":ce(r,s),qr("invalid",r)}for(var l in Ee(n,s),e=null,s)s.hasOwnProperty(l)&&(a=s[l],"children"===l?"string"==typeof a?r.textContent!==a&&(e=["children",a]):"number"==typeof a&&r.textContent!==""+a&&(e=["children",""+a]):c.hasOwnProperty(l)&&null!=a&&"onScroll"===l&&qr("scroll",r));switch(n){case"input":Q(r),re(r,s,!0);break;case"textarea":Q(r),ue(r);break;case"select":case"option":break;default:"function"==typeof s.onClick&&(r.onclick=Fr)}r=e,t.updateQueue=r,null!==r&&(t.flags|=4)}else{switch(l=9===a.nodeType?a:a.ownerDocument,e===de.html&&(e=pe(n)),e===de.html?"script"===n?((e=l.createElement("div")).innerHTML="<script><\/script>",e=e.removeChild(e.firstChild)):"string"==typeof r.is?e=l.createElement(n,{is:r.is}):(e=l.createElement(n),"select"===n&&(l=e,r.multiple?l.multiple=!0:r.size&&(l.size=r.size))):e=l.createElementNS(e,n),e[Xr]=t,e[Jr]=r,Vi(e,t,!1,!1),t.stateNode=e,l=_e(n,r),n){case"dialog":qr("cancel",e),qr("close",e),a=r;break;case"iframe":case"object":case"embed":qr("load",e),a=r;break;case"video":case"audio":for(a=0;a<Sr.length;a++)qr(Sr[a],e);a=r;break;case"source":qr("error",e),a=r;break;case"img":case"image":case"link":qr("error",e),qr("load",e),a=r;break;case"details":qr("toggle",e),a=r;break;case"input":ee(e,r),a=Z(e,r),qr("invalid",e);break;case"option":a=ae(e,r);break;case"select":e._wrapperState={wasMultiple:!!r.multiple},a=o({},r,{value:void 0}),qr("invalid",e);break;case"textarea":ce(e,r),a=se(e,r),qr("invalid",e);break;default:a=r}Ee(n,a);var u=a;for(s in u)if(u.hasOwnProperty(s)){var d=u[s];"style"===s?ke(e,d):"dangerouslySetInnerHTML"===s?null!=(d=d?d.__html:void 0)&&ge(e,d):"children"===s?"string"==typeof d?("textarea"!==n||""!==d)&&be(e,d):"number"==typeof d&&be(e,""+d):"suppressContentEditableWarning"!==s&&"suppressHydrationWarning"!==s&&"autoFocus"!==s&&(c.hasOwnProperty(s)?null!=d&&"onScroll"===s&&qr("scroll",e):null!=d&&w(e,s,d,l))}switch(n){case"input":Q(e),re(e,r,!1);break;case"textarea":Q(e),ue(e);break;case"option":null!=r.value&&e.setAttribute("value",""+K(r.value));break;case"select":e.multiple=!!r.multiple,null!=(s=r.value)?ie(e,!!r.multiple,s,!1):null!=r.defaultValue&&ie(e,!!r.multiple,r.defaultValue,!0);break;default:"function"==typeof a.onClick&&(e.onclick=Fr)}Ur(n,r)&&(t.flags|=4)}null!==t.ref&&(t.flags|=128)}return null;case 6:if(e&&null!=t.stateNode)Qi(e,t,e.memoizedProps,r);else{if("string"!=typeof r&&null===t.stateNode)throw Error(i(166));n=Oa(Ra.current),Oa(qa.current),Wa(t)?(r=t.stateNode,n=t.memoizedProps,r[Xr]=t,r.nodeValue!==n&&(t.flags|=4)):((r=(9===n.nodeType?n:n.ownerDocument).createTextNode(r))[Xr]=t,t.stateNode=r)}return null;case 13:return lo(Ma),r=t.memoizedState,0!=(64&t.flags)?(t.lanes=n,t):(r=null!==r,n=!1,null===e?void 0!==t.memoizedProps.fallback&&Wa(t):n=null!==e.memoizedState,r&&!n&&0!=(2&t.mode)&&(null===e&&!0!==t.memoizedProps.unstable_avoidThisFallback||0!=(1&Ma.current)?0===js&&(js=3):(0!==js&&3!==js||(js=4),null===Ls||0==(134217727&zs)&&0==(134217727&Us)||vc(Ls,Is))),(r||n)&&(t.flags|=4),null);case 4:return Pa(),Ki(t),null===e&&Rr(t.stateNode.containerInfo),null;case 10:return ra(t),null;case 19:if(lo(Ma),null===(r=t.memoizedState))return null;if(s=0!=(64&t.flags),null===(l=r.rendering))if(s)is(r,!1);else{if(0!==js||null!==e&&0!=(64&e.flags))for(e=t.child;null!==e;){if(null!==(l=ja(e))){for(t.flags|=64,is(r,!1),null!==(s=l.updateQueue)&&(t.updateQueue=s,t.flags|=4),null===r.lastEffect&&(t.firstEffect=null),t.lastEffect=r.lastEffect,r=n,n=t.child;null!==n;)e=r,(s=n).flags&=2,s.nextEffect=null,s.firstEffect=null,s.lastEffect=null,null===(l=s.alternate)?(s.childLanes=0,s.lanes=e,s.child=null,s.memoizedProps=null,s.memoizedState=null,s.updateQueue=null,s.dependencies=null,s.stateNode=null):(s.childLanes=l.childLanes,s.lanes=l.lanes,s.child=l.child,s.memoizedProps=l.memoizedProps,s.memoizedState=l.memoizedState,s.updateQueue=l.updateQueue,s.type=l.type,e=l.dependencies,s.dependencies=null===e?null:{lanes:e.lanes,firstContext:e.firstContext}),n=n.sibling;return uo(Ma,1&Ma.current|2),t.child}e=e.sibling}null!==r.tail&&$o()>Ws&&(t.flags|=64,s=!0,is(r,!1),t.lanes=33554432)}else{if(!s)if(null!==(e=ja(l))){if(t.flags|=64,s=!0,null!==(n=e.updateQueue)&&(t.updateQueue=n,t.flags|=4),is(r,!0),null===r.tail&&"hidden"===r.tailMode&&!l.alternate&&!za)return null!==(t=t.lastEffect=r.lastEffect)&&(t.nextEffect=null),null}else 2*$o()-r.renderingStartTime>Ws&&1073741824!==n&&(t.flags|=64,s=!0,is(r,!1),t.lanes=33554432);r.isBackwards?(l.sibling=t.child,t.child=l):(null!==(n=r.last)?n.sibling=l:t.child=l,r.last=l)}return null!==r.tail?(n=r.tail,r.rendering=n,r.tail=n.sibling,r.lastEffect=t.lastEffect,r.renderingStartTime=$o(),n.sibling=null,t=Ma.current,uo(Ma,s?1&t|2:1&t),n):null;case 23:case 24:return Ec(),null!==e&&null!==e.memoizedState!=(null!==t.memoizedState)&&"unstable-defer-without-hiding"!==r.mode&&(t.flags|=4),null}throw Error(i(156,t.tag))}function cs(e){switch(e.tag){case 1:bo(e.type)&&vo();var t=e.flags;return 4096&t?(e.flags=-4097&t|64,e):null;case 3:if(Pa(),lo(mo),lo(fo),Ya(),0!=(64&(t=e.flags)))throw Error(i(285));return e.flags=-4097&t|64,e;case 5:return Da(e),null;case 13:return lo(Ma),4096&(t=e.flags)?(e.flags=-4097&t|64,e):null;case 19:return lo(Ma),null;case 4:return Pa(),null;case 10:return ra(e),null;case 23:case 24:return Ec(),null;default:return null}}function ls(e,t){try{var n="",r=t;do{n+=W(r),r=r.return}while(r);var o=n}catch(a){o="\nError generating stack: "+a.message+"\n"+a.stack}return{value:e,source:t,stack:o}}function us(e,t){try{console.error(t.value)}catch(n){setTimeout((function(){throw n}))}}Vi=function(e,t){for(var n=t.child;null!==n;){if(5===n.tag||6===n.tag)e.appendChild(n.stateNode);else if(4!==n.tag&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===t)break;for(;null===n.sibling;){if(null===n.return||n.return===t)return;n=n.return}n.sibling.return=n.return,n=n.sibling}},Ki=function(){},Yi=function(e,t,n,r){var a=e.memoizedProps;if(a!==r){e=t.stateNode,Oa(qa.current);var i,s=null;switch(n){case"input":a=Z(e,a),r=Z(e,r),s=[];break;case"option":a=ae(e,a),r=ae(e,r),s=[];break;case"select":a=o({},a,{value:void 0}),r=o({},r,{value:void 0}),s=[];break;case"textarea":a=se(e,a),r=se(e,r),s=[];break;default:"function"!=typeof a.onClick&&"function"==typeof r.onClick&&(e.onclick=Fr)}for(d in Ee(n,r),n=null,a)if(!r.hasOwnProperty(d)&&a.hasOwnProperty(d)&&null!=a[d])if("style"===d){var l=a[d];for(i in l)l.hasOwnProperty(i)&&(n||(n={}),n[i]="")}else"dangerouslySetInnerHTML"!==d&&"children"!==d&&"suppressContentEditableWarning"!==d&&"suppressHydrationWarning"!==d&&"autoFocus"!==d&&(c.hasOwnProperty(d)?s||(s=[]):(s=s||[]).push(d,null));for(d in r){var u=r[d];if(l=null!=a?a[d]:void 0,r.hasOwnProperty(d)&&u!==l&&(null!=u||null!=l))if("style"===d)if(l){for(i in l)!l.hasOwnProperty(i)||u&&u.hasOwnProperty(i)||(n||(n={}),n[i]="");for(i in u)u.hasOwnProperty(i)&&l[i]!==u[i]&&(n||(n={}),n[i]=u[i])}else n||(s||(s=[]),s.push(d,n)),n=u;else"dangerouslySetInnerHTML"===d?(u=u?u.__html:void 0,l=l?l.__html:void 0,null!=u&&l!==u&&(s=s||[]).push(d,u)):"children"===d?"string"!=typeof u&&"number"!=typeof u||(s=s||[]).push(d,""+u):"suppressContentEditableWarning"!==d&&"suppressHydrationWarning"!==d&&(c.hasOwnProperty(d)?(null!=u&&"onScroll"===d&&qr("scroll",e),s||l===u||(s=[])):"object"==typeof u&&null!==u&&u.$$typeof===I?u.toString():(s=s||[]).push(d,u))}n&&(s=s||[]).push("style",n);var d=s;(t.updateQueue=d)&&(t.flags|=4)}},Qi=function(e,t,n,r){n!==r&&(t.flags|=4)};var ds="function"==typeof WeakMap?WeakMap:Map;function ps(e,t,n){(n=ua(-1,n)).tag=3,n.payload={element:null};var r=t.value;return n.callback=function(){Qs||(Qs=!0,Xs=r),us(0,t)},n}function fs(e,t,n){(n=ua(-1,n)).tag=3;var r=e.type.getDerivedStateFromError;if("function"==typeof r){var o=t.value;n.payload=function(){return us(0,t),r(o)}}var a=e.stateNode;return null!==a&&"function"==typeof a.componentDidCatch&&(n.callback=function(){"function"!=typeof r&&(null===Js?Js=new Set([this]):Js.add(this),us(0,t));var e=t.stack;this.componentDidCatch(t.value,{componentStack:null!==e?e:""})}),n}var ms="function"==typeof WeakSet?WeakSet:Set;function hs(e){var t=e.ref;if(null!==t)if("function"==typeof t)try{t(null)}catch(n){Bc(e,n)}else t.current=null}function gs(e,t){switch(t.tag){case 0:case 11:case 15:case 22:case 5:case 6:case 4:case 17:return;case 1:if(256&t.flags&&null!==e){var n=e.memoizedProps,r=e.memoizedState;t=(e=t.stateNode).getSnapshotBeforeUpdate(t.elementType===t.type?n:Xo(t.type,n),r),e.__reactInternalSnapshotBeforeUpdate=t}return;case 3:return void(256&t.flags&&Wr(t.stateNode.containerInfo))}throw Error(i(163))}function bs(e,t,n){switch(n.tag){case 0:case 11:case 15:case 22:if(null!==(t=null!==(t=n.updateQueue)?t.lastEffect:null)){e=t=t.next;do{if(3==(3&e.tag)){var r=e.create;e.destroy=r()}e=e.next}while(e!==t)}if(null!==(t=null!==(t=n.updateQueue)?t.lastEffect:null)){e=t=t.next;do{var o=e;r=o.next,0!=(4&(o=o.tag))&&0!=(1&o)&&(Mc(n,e),Dc(n,e)),e=r}while(e!==t)}return;case 1:return e=n.stateNode,4&n.flags&&(null===t?e.componentDidMount():(r=n.elementType===n.type?t.memoizedProps:Xo(n.type,t.memoizedProps),e.componentDidUpdate(r,t.memoizedState,e.__reactInternalSnapshotBeforeUpdate))),void(null!==(t=n.updateQueue)&&ma(n,t,e));case 3:if(null!==(t=n.updateQueue)){if(e=null,null!==n.child)switch(n.child.tag){case 5:case 1:e=n.child.stateNode}ma(n,t,e)}return;case 5:return e=n.stateNode,void(null===t&&4&n.flags&&Ur(n.type,n.memoizedProps)&&e.focus());case 6:case 4:case 12:case 19:case 17:case 20:case 21:case 23:case 24:return;case 13:return void(null===n.memoizedState&&(n=n.alternate,null!==n&&(n=n.memoizedState,null!==n&&(n=n.dehydrated,null!==n&&kt(n)))))}throw Error(i(163))}function vs(e,t){for(var n=e;;){if(5===n.tag){var r=n.stateNode;if(t)"function"==typeof(r=r.style).setProperty?r.setProperty("display","none","important"):r.display="none";else{r=n.stateNode;var o=n.memoizedProps.style;o=null!=o&&o.hasOwnProperty("display")?o.display:null,r.style.display=we("display",o)}}else if(6===n.tag)n.stateNode.nodeValue=t?"":n.memoizedProps;else if((23!==n.tag&&24!==n.tag||null===n.memoizedState||n===e)&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===e)break;for(;null===n.sibling;){if(null===n.return||n.return===e)return;n=n.return}n.sibling.return=n.return,n=n.sibling}}function ys(e,t){if(_o&&"function"==typeof _o.onCommitFiberUnmount)try{_o.onCommitFiberUnmount(Eo,t)}catch(a){}switch(t.tag){case 0:case 11:case 14:case 15:case 22:if(null!==(e=t.updateQueue)&&null!==(e=e.lastEffect)){var n=e=e.next;do{var r=n,o=r.destroy;if(r=r.tag,void 0!==o)if(0!=(4&r))Mc(t,n);else{r=t;try{o()}catch(a){Bc(r,a)}}n=n.next}while(n!==e)}break;case 1:if(hs(t),"function"==typeof(e=t.stateNode).componentWillUnmount)try{e.props=t.memoizedProps,e.state=t.memoizedState,e.componentWillUnmount()}catch(a){Bc(t,a)}break;case 5:hs(t);break;case 4:Ss(e,t)}}function ws(e){e.alternate=null,e.child=null,e.dependencies=null,e.firstEffect=null,e.lastEffect=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.return=null,e.updateQueue=null}function ks(e){return 5===e.tag||3===e.tag||4===e.tag}function xs(e){e:{for(var t=e.return;null!==t;){if(ks(t))break e;t=t.return}throw Error(i(160))}var n=t;switch(t=n.stateNode,n.tag){case 5:var r=!1;break;case 3:case 4:t=t.containerInfo,r=!0;break;default:throw Error(i(161))}16&n.flags&&(be(t,""),n.flags&=-17);e:t:for(n=e;;){for(;null===n.sibling;){if(null===n.return||ks(n.return)){n=null;break e}n=n.return}for(n.sibling.return=n.return,n=n.sibling;5!==n.tag&&6!==n.tag&&18!==n.tag;){if(2&n.flags)continue t;if(null===n.child||4===n.tag)continue t;n.child.return=n,n=n.child}if(!(2&n.flags)){n=n.stateNode;break e}}r?Es(e,n,t):_s(e,n,t)}function Es(e,t,n){var r=e.tag,o=5===r||6===r;if(o)e=o?e.stateNode:e.stateNode.instance,t?8===n.nodeType?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(8===n.nodeType?(t=n.parentNode).insertBefore(e,n):(t=n).appendChild(e),null!=(n=n._reactRootContainer)||null!==t.onclick||(t.onclick=Fr));else if(4!==r&&null!==(e=e.child))for(Es(e,t,n),e=e.sibling;null!==e;)Es(e,t,n),e=e.sibling}function _s(e,t,n){var r=e.tag,o=5===r||6===r;if(o)e=o?e.stateNode:e.stateNode.instance,t?n.insertBefore(e,t):n.appendChild(e);else if(4!==r&&null!==(e=e.child))for(_s(e,t,n),e=e.sibling;null!==e;)_s(e,t,n),e=e.sibling}function Ss(e,t){for(var n,r,o=t,a=!1;;){if(!a){a=o.return;e:for(;;){if(null===a)throw Error(i(160));switch(n=a.stateNode,a.tag){case 5:r=!1;break e;case 3:case 4:n=n.containerInfo,r=!0;break e}a=a.return}a=!0}if(5===o.tag||6===o.tag){e:for(var s=e,c=o,l=c;;)if(ys(s,l),null!==l.child&&4!==l.tag)l.child.return=l,l=l.child;else{if(l===c)break e;for(;null===l.sibling;){if(null===l.return||l.return===c)break e;l=l.return}l.sibling.return=l.return,l=l.sibling}r?(s=n,c=o.stateNode,8===s.nodeType?s.parentNode.removeChild(c):s.removeChild(c)):n.removeChild(o.stateNode)}else if(4===o.tag){if(null!==o.child){n=o.stateNode.containerInfo,r=!0,o.child.return=o,o=o.child;continue}}else if(ys(e,o),null!==o.child){o.child.return=o,o=o.child;continue}if(o===t)break;for(;null===o.sibling;){if(null===o.return||o.return===t)return;4===(o=o.return).tag&&(a=!1)}o.sibling.return=o.return,o=o.sibling}}function As(e,t){switch(t.tag){case 0:case 11:case 14:case 15:case 22:var n=t.updateQueue;if(null!==(n=null!==n?n.lastEffect:null)){var r=n=n.next;do{3==(3&r.tag)&&(e=r.destroy,r.destroy=void 0,void 0!==e&&e()),r=r.next}while(r!==n)}return;case 1:case 12:case 17:return;case 5:if(null!=(n=t.stateNode)){r=t.memoizedProps;var o=null!==e?e.memoizedProps:r;e=t.type;var a=t.updateQueue;if(t.updateQueue=null,null!==a){for(n[Jr]=r,"input"===e&&"radio"===r.type&&null!=r.name&&te(n,r),_e(e,o),t=_e(e,r),o=0;o<a.length;o+=2){var s=a[o],c=a[o+1];"style"===s?ke(n,c):"dangerouslySetInnerHTML"===s?ge(n,c):"children"===s?be(n,c):w(n,s,c,t)}switch(e){case"input":ne(n,r);break;case"textarea":le(n,r);break;case"select":e=n._wrapperState.wasMultiple,n._wrapperState.wasMultiple=!!r.multiple,null!=(a=r.value)?ie(n,!!r.multiple,a,!1):e!==!!r.multiple&&(null!=r.defaultValue?ie(n,!!r.multiple,r.defaultValue,!0):ie(n,!!r.multiple,r.multiple?[]:"",!1))}}}return;case 6:if(null===t.stateNode)throw Error(i(162));return void(t.stateNode.nodeValue=t.memoizedProps);case 3:return void((n=t.stateNode).hydrate&&(n.hydrate=!1,kt(n.containerInfo)));case 13:return null!==t.memoizedState&&(Hs=$o(),vs(t.child,!0)),void Cs(t);case 19:return void Cs(t);case 23:case 24:return void vs(t,null!==t.memoizedState)}throw Error(i(163))}function Cs(e){var t=e.updateQueue;if(null!==t){e.updateQueue=null;var n=e.stateNode;null===n&&(n=e.stateNode=new ms),t.forEach((function(t){var r=Uc.bind(null,e,t);n.has(t)||(n.add(t),t.then(r,r))}))}}function Ts(e,t){return null!==e&&(null===(e=e.memoizedState)||null!==e.dehydrated)&&(null!==(t=t.memoizedState)&&null===t.dehydrated)}var qs=Math.ceil,Ns=k.ReactCurrentDispatcher,Rs=k.ReactCurrentOwner,Os=0,Ls=null,Ps=null,Is=0,Ds=0,Ms=co(0),js=0,Fs=null,Bs=0,zs=0,Us=0,$s=0,Gs=null,Hs=0,Ws=1/0;function Vs(){Ws=$o()+500}var Ks,Ys=null,Qs=!1,Xs=null,Js=null,Zs=!1,ec=null,tc=90,nc=[],rc=[],oc=null,ac=0,ic=null,sc=-1,cc=0,lc=0,uc=null,dc=!1;function pc(){return 0!=(48&Os)?$o():-1!==sc?sc:sc=$o()}function fc(e){if(0==(2&(e=e.mode)))return 1;if(0==(4&e))return 99===Go()?1:2;if(0===cc&&(cc=Bs),0!==Qo.transition){0!==lc&&(lc=null!==Gs?Gs.pendingLanes:0),e=cc;var t=4186112&~lc;return 0===(t&=-t)&&(0===(t=(e=4186112&~e)&-e)&&(t=8192)),t}return e=Go(),0!=(4&Os)&&98===e?e=Ft(12,cc):e=Ft(e=function(e){switch(e){case 99:return 15;case 98:return 10;case 97:case 96:return 8;case 95:return 2;default:return 0}}(e),cc),e}function mc(e,t,n){if(50<ac)throw ac=0,ic=null,Error(i(185));if(null===(e=hc(e,t)))return null;Ut(e,t,n),e===Ls&&(Us|=t,4===js&&vc(e,Is));var r=Go();1===t?0!=(8&Os)&&0==(48&Os)?yc(e):(gc(e,n),0===Os&&(Vs(),Ko())):(0==(4&Os)||98!==r&&99!==r||(null===oc?oc=new Set([e]):oc.add(e)),gc(e,n)),Gs=e}function hc(e,t){e.lanes|=t;var n=e.alternate;for(null!==n&&(n.lanes|=t),n=e,e=e.return;null!==e;)e.childLanes|=t,null!==(n=e.alternate)&&(n.childLanes|=t),n=e,e=e.return;return 3===n.tag?n.stateNode:null}function gc(e,t){for(var n=e.callbackNode,r=e.suspendedLanes,o=e.pingedLanes,a=e.expirationTimes,s=e.pendingLanes;0<s;){var c=31-$t(s),l=1<<c,u=a[c];if(-1===u){if(0==(l&r)||0!=(l&o)){u=t,Dt(l);var d=It;a[c]=10<=d?u+250:6<=d?u+5e3:-1}}else u<=t&&(e.expiredLanes|=l);s&=~l}if(r=Mt(e,e===Ls?Is:0),t=It,0===r)null!==n&&(n!==Mo&&Co(n),e.callbackNode=null,e.callbackPriority=0);else{if(null!==n){if(e.callbackPriority===t)return;n!==Mo&&Co(n)}15===t?(n=yc.bind(null,e),null===Fo?(Fo=[n],Bo=Ao(Oo,Yo)):Fo.push(n),n=Mo):14===t?n=Vo(99,yc.bind(null,e)):(n=function(e){switch(e){case 15:case 14:return 99;case 13:case 12:case 11:case 10:return 98;case 9:case 8:case 7:case 6:case 4:case 5:return 97;case 3:case 2:case 1:return 95;case 0:return 90;default:throw Error(i(358,e))}}(t),n=Vo(n,bc.bind(null,e))),e.callbackPriority=t,e.callbackNode=n}}function bc(e){if(sc=-1,lc=cc=0,0!=(48&Os))throw Error(i(327));var t=e.callbackNode;if(Ic()&&e.callbackNode!==t)return null;var n=Mt(e,e===Ls?Is:0);if(0===n)return null;var r=n,o=Os;Os|=16;var a=Ac();for(Ls===e&&Is===r||(Vs(),_c(e,r));;)try{qc();break}catch(c){Sc(e,c)}if(na(),Ns.current=a,Os=o,null!==Ps?r=0:(Ls=null,Is=0,r=js),0!=(Bs&Us))_c(e,0);else if(0!==r){if(2===r&&(Os|=64,e.hydrate&&(e.hydrate=!1,Wr(e.containerInfo)),0!==(n=jt(e))&&(r=Cc(e,n))),1===r)throw t=Fs,_c(e,0),vc(e,n),gc(e,$o()),t;switch(e.finishedWork=e.current.alternate,e.finishedLanes=n,r){case 0:case 1:throw Error(i(345));case 2:case 5:Oc(e);break;case 3:if(vc(e,n),(62914560&n)===n&&10<(r=Hs+500-$o())){if(0!==Mt(e,0))break;if(((o=e.suspendedLanes)&n)!==n){pc(),e.pingedLanes|=e.suspendedLanes&o;break}e.timeoutHandle=Gr(Oc.bind(null,e),r);break}Oc(e);break;case 4:if(vc(e,n),(4186112&n)===n)break;for(r=e.eventTimes,o=-1;0<n;){var s=31-$t(n);a=1<<s,(s=r[s])>o&&(o=s),n&=~a}if(n=o,10<(n=(120>(n=$o()-n)?120:480>n?480:1080>n?1080:1920>n?1920:3e3>n?3e3:4320>n?4320:1960*qs(n/1960))-n)){e.timeoutHandle=Gr(Oc.bind(null,e),n);break}Oc(e);break;default:throw Error(i(329))}}return gc(e,$o()),e.callbackNode===t?bc.bind(null,e):null}function vc(e,t){for(t&=~$s,t&=~Us,e.suspendedLanes|=t,e.pingedLanes&=~t,e=e.expirationTimes;0<t;){var n=31-$t(t),r=1<<n;e[n]=-1,t&=~r}}function yc(e){if(0!=(48&Os))throw Error(i(327));if(Ic(),e===Ls&&0!=(e.expiredLanes&Is)){var t=Is,n=Cc(e,t);0!=(Bs&Us)&&(n=Cc(e,t=Mt(e,t)))}else n=Cc(e,t=Mt(e,0));if(0!==e.tag&&2===n&&(Os|=64,e.hydrate&&(e.hydrate=!1,Wr(e.containerInfo)),0!==(t=jt(e))&&(n=Cc(e,t))),1===n)throw n=Fs,_c(e,0),vc(e,t),gc(e,$o()),n;return e.finishedWork=e.current.alternate,e.finishedLanes=t,Oc(e),gc(e,$o()),null}function wc(e,t){var n=Os;Os|=1;try{return e(t)}finally{0===(Os=n)&&(Vs(),Ko())}}function kc(e,t){var n=Os;Os&=-2,Os|=8;try{return e(t)}finally{0===(Os=n)&&(Vs(),Ko())}}function xc(e,t){uo(Ms,Ds),Ds|=t,Bs|=t}function Ec(){Ds=Ms.current,lo(Ms)}function _c(e,t){e.finishedWork=null,e.finishedLanes=0;var n=e.timeoutHandle;if(-1!==n&&(e.timeoutHandle=-1,Hr(n)),null!==Ps)for(n=Ps.return;null!==n;){var r=n;switch(r.tag){case 1:null!=(r=r.type.childContextTypes)&&vo();break;case 3:Pa(),lo(mo),lo(fo),Ya();break;case 5:Da(r);break;case 4:Pa();break;case 13:case 19:lo(Ma);break;case 10:ra(r);break;case 23:case 24:Ec()}n=n.return}Ls=e,Ps=Wc(e.current,null),Is=Ds=Bs=t,js=0,Fs=null,$s=Us=zs=0}function Sc(e,t){for(;;){var n=Ps;try{if(na(),Qa.current=Ri,ni){for(var r=Za.memoizedState;null!==r;){var o=r.queue;null!==o&&(o.pending=null),r=r.next}ni=!1}if(Ja=0,ti=ei=Za=null,ri=!1,Rs.current=null,null===n||null===n.return){js=1,Fs=t,Ps=null;break}e:{var a=e,i=n.return,s=n,c=t;if(t=Is,s.flags|=2048,s.firstEffect=s.lastEffect=null,null!==c&&"object"==typeof c&&"function"==typeof c.then){var l=c;if(0==(2&s.mode)){var u=s.alternate;u?(s.updateQueue=u.updateQueue,s.memoizedState=u.memoizedState,s.lanes=u.lanes):(s.updateQueue=null,s.memoizedState=null)}var d=0!=(1&Ma.current),p=i;do{var f;if(f=13===p.tag){var m=p.memoizedState;if(null!==m)f=null!==m.dehydrated;else{var h=p.memoizedProps;f=void 0!==h.fallback&&(!0!==h.unstable_avoidThisFallback||!d)}}if(f){var g=p.updateQueue;if(null===g){var b=new Set;b.add(l),p.updateQueue=b}else g.add(l);if(0==(2&p.mode)){if(p.flags|=64,s.flags|=16384,s.flags&=-2981,1===s.tag)if(null===s.alternate)s.tag=17;else{var v=ua(-1,1);v.tag=2,da(s,v)}s.lanes|=1;break e}c=void 0,s=t;var y=a.pingCache;if(null===y?(y=a.pingCache=new ds,c=new Set,y.set(l,c)):void 0===(c=y.get(l))&&(c=new Set,y.set(l,c)),!c.has(s)){c.add(s);var w=zc.bind(null,a,l,s);l.then(w,w)}p.flags|=4096,p.lanes=t;break e}p=p.return}while(null!==p);c=Error((V(s.type)||"A React component")+" suspended while rendering, but no fallback UI was specified.\n\nAdd a <Suspense fallback=...> component higher in the tree to provide a loading indicator or placeholder to display.")}5!==js&&(js=2),c=ls(c,s),p=i;do{switch(p.tag){case 3:a=c,p.flags|=4096,t&=-t,p.lanes|=t,pa(p,ps(0,a,t));break e;case 1:a=c;var k=p.type,x=p.stateNode;if(0==(64&p.flags)&&("function"==typeof k.getDerivedStateFromError||null!==x&&"function"==typeof x.componentDidCatch&&(null===Js||!Js.has(x)))){p.flags|=4096,t&=-t,p.lanes|=t,pa(p,fs(p,a,t));break e}}p=p.return}while(null!==p)}Rc(n)}catch(E){t=E,Ps===n&&null!==n&&(Ps=n=n.return);continue}break}}function Ac(){var e=Ns.current;return Ns.current=Ri,null===e?Ri:e}function Cc(e,t){var n=Os;Os|=16;var r=Ac();for(Ls===e&&Is===t||_c(e,t);;)try{Tc();break}catch(o){Sc(e,o)}if(na(),Os=n,Ns.current=r,null!==Ps)throw Error(i(261));return Ls=null,Is=0,js}function Tc(){for(;null!==Ps;)Nc(Ps)}function qc(){for(;null!==Ps&&!To();)Nc(Ps)}function Nc(e){var t=Ks(e.alternate,e,Ds);e.memoizedProps=e.pendingProps,null===t?Rc(e):Ps=t,Rs.current=null}function Rc(e){var t=e;do{var n=t.alternate;if(e=t.return,0==(2048&t.flags)){if(null!==(n=ss(n,t,Ds)))return void(Ps=n);if(24!==(n=t).tag&&23!==n.tag||null===n.memoizedState||0!=(1073741824&Ds)||0==(4&n.mode)){for(var r=0,o=n.child;null!==o;)r|=o.lanes|o.childLanes,o=o.sibling;n.childLanes=r}null!==e&&0==(2048&e.flags)&&(null===e.firstEffect&&(e.firstEffect=t.firstEffect),null!==t.lastEffect&&(null!==e.lastEffect&&(e.lastEffect.nextEffect=t.firstEffect),e.lastEffect=t.lastEffect),1<t.flags&&(null!==e.lastEffect?e.lastEffect.nextEffect=t:e.firstEffect=t,e.lastEffect=t))}else{if(null!==(n=cs(t)))return n.flags&=2047,void(Ps=n);null!==e&&(e.firstEffect=e.lastEffect=null,e.flags|=2048)}if(null!==(t=t.sibling))return void(Ps=t);Ps=t=e}while(null!==t);0===js&&(js=5)}function Oc(e){var t=Go();return Wo(99,Lc.bind(null,e,t)),null}function Lc(e,t){do{Ic()}while(null!==ec);if(0!=(48&Os))throw Error(i(327));var n=e.finishedWork;if(null===n)return null;if(e.finishedWork=null,e.finishedLanes=0,n===e.current)throw Error(i(177));e.callbackNode=null;var r=n.lanes|n.childLanes,o=r,a=e.pendingLanes&~o;e.pendingLanes=o,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=o,e.mutableReadLanes&=o,e.entangledLanes&=o,o=e.entanglements;for(var s=e.eventTimes,c=e.expirationTimes;0<a;){var l=31-$t(a),u=1<<l;o[l]=0,s[l]=-1,c[l]=-1,a&=~u}if(null!==oc&&0==(24&r)&&oc.has(e)&&oc.delete(e),e===Ls&&(Ps=Ls=null,Is=0),1<n.flags?null!==n.lastEffect?(n.lastEffect.nextEffect=n,r=n.firstEffect):r=n:r=n.firstEffect,null!==r){if(o=Os,Os|=32,Rs.current=null,Br=Kt,gr(s=hr())){if("selectionStart"in s)c={start:s.selectionStart,end:s.selectionEnd};else e:if(c=(c=s.ownerDocument)&&c.defaultView||window,(u=c.getSelection&&c.getSelection())&&0!==u.rangeCount){c=u.anchorNode,a=u.anchorOffset,l=u.focusNode,u=u.focusOffset;try{c.nodeType,l.nodeType}catch(A){c=null;break e}var d=0,p=-1,f=-1,m=0,h=0,g=s,b=null;t:for(;;){for(var v;g!==c||0!==a&&3!==g.nodeType||(p=d+a),g!==l||0!==u&&3!==g.nodeType||(f=d+u),3===g.nodeType&&(d+=g.nodeValue.length),null!==(v=g.firstChild);)b=g,g=v;for(;;){if(g===s)break t;if(b===c&&++m===a&&(p=d),b===l&&++h===u&&(f=d),null!==(v=g.nextSibling))break;b=(g=b).parentNode}g=v}c=-1===p||-1===f?null:{start:p,end:f}}else c=null;c=c||{start:0,end:0}}else c=null;zr={focusedElem:s,selectionRange:c},Kt=!1,uc=null,dc=!1,Ys=r;do{try{Pc()}catch(A){if(null===Ys)throw Error(i(330));Bc(Ys,A),Ys=Ys.nextEffect}}while(null!==Ys);uc=null,Ys=r;do{try{for(s=e;null!==Ys;){var y=Ys.flags;if(16&y&&be(Ys.stateNode,""),128&y){var w=Ys.alternate;if(null!==w){var k=w.ref;null!==k&&("function"==typeof k?k(null):k.current=null)}}switch(1038&y){case 2:xs(Ys),Ys.flags&=-3;break;case 6:xs(Ys),Ys.flags&=-3,As(Ys.alternate,Ys);break;case 1024:Ys.flags&=-1025;break;case 1028:Ys.flags&=-1025,As(Ys.alternate,Ys);break;case 4:As(Ys.alternate,Ys);break;case 8:Ss(s,c=Ys);var x=c.alternate;ws(c),null!==x&&ws(x)}Ys=Ys.nextEffect}}catch(A){if(null===Ys)throw Error(i(330));Bc(Ys,A),Ys=Ys.nextEffect}}while(null!==Ys);if(k=zr,w=hr(),y=k.focusedElem,s=k.selectionRange,w!==y&&y&&y.ownerDocument&&mr(y.ownerDocument.documentElement,y)){null!==s&&gr(y)&&(w=s.start,void 0===(k=s.end)&&(k=w),"selectionStart"in y?(y.selectionStart=w,y.selectionEnd=Math.min(k,y.value.length)):(k=(w=y.ownerDocument||document)&&w.defaultView||window).getSelection&&(k=k.getSelection(),c=y.textContent.length,x=Math.min(s.start,c),s=void 0===s.end?x:Math.min(s.end,c),!k.extend&&x>s&&(c=s,s=x,x=c),c=fr(y,x),a=fr(y,s),c&&a&&(1!==k.rangeCount||k.anchorNode!==c.node||k.anchorOffset!==c.offset||k.focusNode!==a.node||k.focusOffset!==a.offset)&&((w=w.createRange()).setStart(c.node,c.offset),k.removeAllRanges(),x>s?(k.addRange(w),k.extend(a.node,a.offset)):(w.setEnd(a.node,a.offset),k.addRange(w))))),w=[];for(k=y;k=k.parentNode;)1===k.nodeType&&w.push({element:k,left:k.scrollLeft,top:k.scrollTop});for("function"==typeof y.focus&&y.focus(),y=0;y<w.length;y++)(k=w[y]).element.scrollLeft=k.left,k.element.scrollTop=k.top}Kt=!!Br,zr=Br=null,e.current=n,Ys=r;do{try{for(y=e;null!==Ys;){var E=Ys.flags;if(36&E&&bs(y,Ys.alternate,Ys),128&E){w=void 0;var _=Ys.ref;if(null!==_){var S=Ys.stateNode;Ys.tag,w=S,"function"==typeof _?_(w):_.current=w}}Ys=Ys.nextEffect}}catch(A){if(null===Ys)throw Error(i(330));Bc(Ys,A),Ys=Ys.nextEffect}}while(null!==Ys);Ys=null,jo(),Os=o}else e.current=n;if(Zs)Zs=!1,ec=e,tc=t;else for(Ys=r;null!==Ys;)t=Ys.nextEffect,Ys.nextEffect=null,8&Ys.flags&&((E=Ys).sibling=null,E.stateNode=null),Ys=t;if(0===(r=e.pendingLanes)&&(Js=null),1===r?e===ic?ac++:(ac=0,ic=e):ac=0,n=n.stateNode,_o&&"function"==typeof _o.onCommitFiberRoot)try{_o.onCommitFiberRoot(Eo,n,void 0,64==(64&n.current.flags))}catch(A){}if(gc(e,$o()),Qs)throw Qs=!1,e=Xs,Xs=null,e;return 0!=(8&Os)||Ko(),null}function Pc(){for(;null!==Ys;){var e=Ys.alternate;dc||null===uc||(0!=(8&Ys.flags)?Ze(Ys,uc)&&(dc=!0):13===Ys.tag&&Ts(e,Ys)&&Ze(Ys,uc)&&(dc=!0));var t=Ys.flags;0!=(256&t)&&gs(e,Ys),0==(512&t)||Zs||(Zs=!0,Vo(97,(function(){return Ic(),null}))),Ys=Ys.nextEffect}}function Ic(){if(90!==tc){var e=97<tc?97:tc;return tc=90,Wo(e,jc)}return!1}function Dc(e,t){nc.push(t,e),Zs||(Zs=!0,Vo(97,(function(){return Ic(),null})))}function Mc(e,t){rc.push(t,e),Zs||(Zs=!0,Vo(97,(function(){return Ic(),null})))}function jc(){if(null===ec)return!1;var e=ec;if(ec=null,0!=(48&Os))throw Error(i(331));var t=Os;Os|=32;var n=rc;rc=[];for(var r=0;r<n.length;r+=2){var o=n[r],a=n[r+1],s=o.destroy;if(o.destroy=void 0,"function"==typeof s)try{s()}catch(l){if(null===a)throw Error(i(330));Bc(a,l)}}for(n=nc,nc=[],r=0;r<n.length;r+=2){o=n[r],a=n[r+1];try{var c=o.create;o.destroy=c()}catch(l){if(null===a)throw Error(i(330));Bc(a,l)}}for(c=e.current.firstEffect;null!==c;)e=c.nextEffect,c.nextEffect=null,8&c.flags&&(c.sibling=null,c.stateNode=null),c=e;return Os=t,Ko(),!0}function Fc(e,t,n){da(e,t=ps(0,t=ls(n,t),1)),t=pc(),null!==(e=hc(e,1))&&(Ut(e,1,t),gc(e,t))}function Bc(e,t){if(3===e.tag)Fc(e,e,t);else for(var n=e.return;null!==n;){if(3===n.tag){Fc(n,e,t);break}if(1===n.tag){var r=n.stateNode;if("function"==typeof n.type.getDerivedStateFromError||"function"==typeof r.componentDidCatch&&(null===Js||!Js.has(r))){var o=fs(n,e=ls(t,e),1);if(da(n,o),o=pc(),null!==(n=hc(n,1)))Ut(n,1,o),gc(n,o);else if("function"==typeof r.componentDidCatch&&(null===Js||!Js.has(r)))try{r.componentDidCatch(t,e)}catch(a){}break}}n=n.return}}function zc(e,t,n){var r=e.pingCache;null!==r&&r.delete(t),t=pc(),e.pingedLanes|=e.suspendedLanes&n,Ls===e&&(Is&n)===n&&(4===js||3===js&&(62914560&Is)===Is&&500>$o()-Hs?_c(e,0):$s|=n),gc(e,t)}function Uc(e,t){var n=e.stateNode;null!==n&&n.delete(t),0===(t=0)&&(0==(2&(t=e.mode))?t=1:0==(4&t)?t=99===Go()?1:2:(0===cc&&(cc=Bs),0===(t=Bt(62914560&~cc))&&(t=4194304))),n=pc(),null!==(e=hc(e,t))&&(Ut(e,t,n),gc(e,n))}function $c(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.flags=0,this.lastEffect=this.firstEffect=this.nextEffect=null,this.childLanes=this.lanes=0,this.alternate=null}function Gc(e,t,n,r){return new $c(e,t,n,r)}function Hc(e){return!(!(e=e.prototype)||!e.isReactComponent)}function Wc(e,t){var n=e.alternate;return null===n?((n=Gc(e.tag,t,e.key,e.mode)).elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.nextEffect=null,n.firstEffect=null,n.lastEffect=null),n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=null===t?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Vc(e,t,n,r,o,a){var s=2;if(r=e,"function"==typeof e)Hc(e)&&(s=1);else if("string"==typeof e)s=5;else e:switch(e){case _:return Kc(n.children,o,a,t);case D:s=8,o|=16;break;case S:s=8,o|=1;break;case A:return(e=Gc(12,n,t,8|o)).elementType=A,e.type=A,e.lanes=a,e;case N:return(e=Gc(13,n,t,o)).type=N,e.elementType=N,e.lanes=a,e;case R:return(e=Gc(19,n,t,o)).elementType=R,e.lanes=a,e;case M:return Yc(n,o,a,t);case j:return(e=Gc(24,n,t,o)).elementType=j,e.lanes=a,e;default:if("object"==typeof e&&null!==e)switch(e.$$typeof){case C:s=10;break e;case T:s=9;break e;case q:s=11;break e;case O:s=14;break e;case L:s=16,r=null;break e;case P:s=22;break e}throw Error(i(130,null==e?e:typeof e,""))}return(t=Gc(s,n,t,o)).elementType=e,t.type=r,t.lanes=a,t}function Kc(e,t,n,r){return(e=Gc(7,e,r,t)).lanes=n,e}function Yc(e,t,n,r){return(e=Gc(23,e,r,t)).elementType=M,e.lanes=n,e}function Qc(e,t,n){return(e=Gc(6,e,null,t)).lanes=n,e}function Xc(e,t,n){return(t=Gc(4,null!==e.children?e.children:[],e.key,t)).lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function Jc(e,t,n){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.pendingContext=this.context=null,this.hydrate=n,this.callbackNode=null,this.callbackPriority=0,this.eventTimes=zt(0),this.expirationTimes=zt(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=zt(0),this.mutableSourceEagerHydrationData=null}function Zc(e,t,n,r){var o=t.current,a=pc(),s=fc(o);e:if(n){t:{if(Ye(n=n._reactInternals)!==n||1!==n.tag)throw Error(i(170));var c=n;do{switch(c.tag){case 3:c=c.stateNode.context;break t;case 1:if(bo(c.type)){c=c.stateNode.__reactInternalMemoizedMergedChildContext;break t}}c=c.return}while(null!==c);throw Error(i(171))}if(1===n.tag){var l=n.type;if(bo(l)){n=wo(n,l,c);break e}}n=c}else n=po;return null===t.context?t.context=n:t.pendingContext=n,(t=ua(a,s)).payload={element:e},null!==(r=void 0===r?null:r)&&(t.callback=r),da(o,t),mc(o,s,a),s}function el(e){return(e=e.current).child?(e.child.tag,e.child.stateNode):null}function tl(e,t){if(null!==(e=e.memoizedState)&&null!==e.dehydrated){var n=e.retryLane;e.retryLane=0!==n&&n<t?n:t}}function nl(e,t){tl(e,t),(e=e.alternate)&&tl(e,t)}function rl(e,t,n){var r=null!=n&&null!=n.hydrationOptions&&n.hydrationOptions.mutableSources||null;if(n=new Jc(e,t,null!=n&&!0===n.hydrate),t=Gc(3,null,null,2===t?7:1===t?3:0),n.current=t,t.stateNode=n,ca(t),e[Zr]=n.current,Rr(8===e.nodeType?e.parentNode:e),r)for(e=0;e<r.length;e++){var o=(t=r[e])._getVersion;o=o(t._source),null==n.mutableSourceEagerHydrationData?n.mutableSourceEagerHydrationData=[t,o]:n.mutableSourceEagerHydrationData.push(t,o)}this._internalRoot=n}function ol(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType&&(8!==e.nodeType||" react-mount-point-unstable "!==e.nodeValue))}function al(e,t,n,r,o){var a=n._reactRootContainer;if(a){var i=a._internalRoot;if("function"==typeof o){var s=o;o=function(){var e=el(i);s.call(e)}}Zc(t,i,e,o)}else{if(a=n._reactRootContainer=function(e,t){if(t||(t=!(!(t=e?9===e.nodeType?e.documentElement:e.firstChild:null)||1!==t.nodeType||!t.hasAttribute("data-reactroot"))),!t)for(var n;n=e.lastChild;)e.removeChild(n);return new rl(e,0,t?{hydrate:!0}:void 0)}(n,r),i=a._internalRoot,"function"==typeof o){var c=o;o=function(){var e=el(i);c.call(e)}}kc((function(){Zc(t,i,e,o)}))}return el(i)}function il(e,t){var n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!ol(t))throw Error(i(200));return function(e,t,n){var r=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:E,key:null==r?null:""+r,children:e,containerInfo:t,implementation:n}}(e,t,null,n)}Ks=function(e,t,n){var r=t.lanes;if(null!==e)if(e.memoizedProps!==t.pendingProps||mo.current)Di=!0;else{if(0==(n&r)){switch(Di=!1,t.tag){case 3:Wi(t),Va();break;case 5:Ia(t);break;case 1:bo(t.type)&&ko(t);break;case 4:La(t,t.stateNode.containerInfo);break;case 10:r=t.memoizedProps.value;var o=t.type._context;uo(Jo,o._currentValue),o._currentValue=r;break;case 13:if(null!==t.memoizedState)return 0!=(n&t.child.childLanes)?Ji(e,t,n):(uo(Ma,1&Ma.current),null!==(t=as(e,t,n))?t.sibling:null);uo(Ma,1&Ma.current);break;case 19:if(r=0!=(n&t.childLanes),0!=(64&e.flags)){if(r)return os(e,t,n);t.flags|=64}if(null!==(o=t.memoizedState)&&(o.rendering=null,o.tail=null,o.lastEffect=null),uo(Ma,Ma.current),r)break;return null;case 23:case 24:return t.lanes=0,zi(e,t,n)}return as(e,t,n)}Di=0!=(16384&e.flags)}else Di=!1;switch(t.lanes=0,t.tag){case 2:if(r=t.type,null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),e=t.pendingProps,o=go(t,fo.current),aa(t,n),o=ii(null,t,r,e,o,n),t.flags|=1,"object"==typeof o&&null!==o&&"function"==typeof o.render&&void 0===o.$$typeof){if(t.tag=1,t.memoizedState=null,t.updateQueue=null,bo(r)){var a=!0;ko(t)}else a=!1;t.memoizedState=null!==o.state&&void 0!==o.state?o.state:null,ca(t);var s=r.getDerivedStateFromProps;"function"==typeof s&&ga(t,r,s,e),o.updater=ba,t.stateNode=o,o._reactInternals=t,ka(t,r,e,n),t=Hi(null,t,r,!0,a,n)}else t.tag=0,Mi(null,t,o,n),t=t.child;return t;case 16:o=t.elementType;e:{switch(null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),e=t.pendingProps,o=(a=o._init)(o._payload),t.type=o,a=t.tag=function(e){if("function"==typeof e)return Hc(e)?1:0;if(null!=e){if((e=e.$$typeof)===q)return 11;if(e===O)return 14}return 2}(o),e=Xo(o,e),a){case 0:t=$i(null,t,o,e,n);break e;case 1:t=Gi(null,t,o,e,n);break e;case 11:t=ji(null,t,o,e,n);break e;case 14:t=Fi(null,t,o,Xo(o.type,e),r,n);break e}throw Error(i(306,o,""))}return t;case 0:return r=t.type,o=t.pendingProps,$i(e,t,r,o=t.elementType===r?o:Xo(r,o),n);case 1:return r=t.type,o=t.pendingProps,Gi(e,t,r,o=t.elementType===r?o:Xo(r,o),n);case 3:if(Wi(t),r=t.updateQueue,null===e||null===r)throw Error(i(282));if(r=t.pendingProps,o=null!==(o=t.memoizedState)?o.element:null,la(e,t),fa(t,r,null,n),(r=t.memoizedState.element)===o)Va(),t=as(e,t,n);else{if((a=(o=t.stateNode).hydrate)&&(Ba=Vr(t.stateNode.containerInfo.firstChild),Fa=t,a=za=!0),a){if(null!=(e=o.mutableSourceEagerHydrationData))for(o=0;o<e.length;o+=2)(a=e[o])._workInProgressVersionPrimary=e[o+1],Ka.push(a);for(n=Ca(t,null,r,n),t.child=n;n;)n.flags=-3&n.flags|1024,n=n.sibling}else Mi(e,t,r,n),Va();t=t.child}return t;case 5:return Ia(t),null===e&&Ga(t),r=t.type,o=t.pendingProps,a=null!==e?e.memoizedProps:null,s=o.children,$r(r,o)?s=null:null!==a&&$r(r,a)&&(t.flags|=16),Ui(e,t),Mi(e,t,s,n),t.child;case 6:return null===e&&Ga(t),null;case 13:return Ji(e,t,n);case 4:return La(t,t.stateNode.containerInfo),r=t.pendingProps,null===e?t.child=Aa(t,null,r,n):Mi(e,t,r,n),t.child;case 11:return r=t.type,o=t.pendingProps,ji(e,t,r,o=t.elementType===r?o:Xo(r,o),n);case 7:return Mi(e,t,t.pendingProps,n),t.child;case 8:case 12:return Mi(e,t,t.pendingProps.children,n),t.child;case 10:e:{r=t.type._context,o=t.pendingProps,s=t.memoizedProps,a=o.value;var c=t.type._context;if(uo(Jo,c._currentValue),c._currentValue=a,null!==s)if(c=s.value,0===(a=lr(c,a)?0:0|("function"==typeof r._calculateChangedBits?r._calculateChangedBits(c,a):1073741823))){if(s.children===o.children&&!mo.current){t=as(e,t,n);break e}}else for(null!==(c=t.child)&&(c.return=t);null!==c;){var l=c.dependencies;if(null!==l){s=c.child;for(var u=l.firstContext;null!==u;){if(u.context===r&&0!=(u.observedBits&a)){1===c.tag&&((u=ua(-1,n&-n)).tag=2,da(c,u)),c.lanes|=n,null!==(u=c.alternate)&&(u.lanes|=n),oa(c.return,n),l.lanes|=n;break}u=u.next}}else s=10===c.tag&&c.type===t.type?null:c.child;if(null!==s)s.return=c;else for(s=c;null!==s;){if(s===t){s=null;break}if(null!==(c=s.sibling)){c.return=s.return,s=c;break}s=s.return}c=s}Mi(e,t,o.children,n),t=t.child}return t;case 9:return o=t.type,r=(a=t.pendingProps).children,aa(t,n),r=r(o=ia(o,a.unstable_observedBits)),t.flags|=1,Mi(e,t,r,n),t.child;case 14:return a=Xo(o=t.type,t.pendingProps),Fi(e,t,o,a=Xo(o.type,a),r,n);case 15:return Bi(e,t,t.type,t.pendingProps,r,n);case 17:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:Xo(r,o),null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),t.tag=1,bo(r)?(e=!0,ko(t)):e=!1,aa(t,n),ya(t,r,o),ka(t,r,o,n),Hi(null,t,r,!0,e,n);case 19:return os(e,t,n);case 23:case 24:return zi(e,t,n)}throw Error(i(156,t.tag))},rl.prototype.render=function(e){Zc(e,this._internalRoot,null,null)},rl.prototype.unmount=function(){var e=this._internalRoot,t=e.containerInfo;Zc(null,e,null,(function(){t[Zr]=null}))},et=function(e){13===e.tag&&(mc(e,4,pc()),nl(e,4))},tt=function(e){13===e.tag&&(mc(e,67108864,pc()),nl(e,67108864))},nt=function(e){if(13===e.tag){var t=pc(),n=fc(e);mc(e,n,t),nl(e,n)}},rt=function(e,t){return t()},Ae=function(e,t,n){switch(t){case"input":if(ne(e,n),t=n.name,"radio"===n.type&&null!=t){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll("input[name="+JSON.stringify(""+t)+'][type="radio"]'),t=0;t<n.length;t++){var r=n[t];if(r!==e&&r.form===e.form){var o=oo(r);if(!o)throw Error(i(90));X(r),ne(r,o)}}}break;case"textarea":le(e,n);break;case"select":null!=(t=n.value)&&ie(e,!!n.multiple,t,!1)}},Oe=wc,Le=function(e,t,n,r,o){var a=Os;Os|=4;try{return Wo(98,e.bind(null,t,n,r,o))}finally{0===(Os=a)&&(Vs(),Ko())}},Pe=function(){0==(49&Os)&&(function(){if(null!==oc){var e=oc;oc=null,e.forEach((function(e){e.expiredLanes|=24&e.pendingLanes,gc(e,$o())}))}Ko()}(),Ic())},Ie=function(e,t){var n=Os;Os|=2;try{return e(t)}finally{0===(Os=n)&&(Vs(),Ko())}};var sl={Events:[no,ro,oo,Ne,Re,Ic,{current:!1}]},cl={findFiberByHostInstance:to,bundleType:0,version:"17.0.2",rendererPackageName:"react-dom"},ll={bundleType:cl.bundleType,version:cl.version,rendererPackageName:cl.rendererPackageName,rendererConfig:cl.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:k.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return null===(e=Je(e))?null:e.stateNode},findFiberByHostInstance:cl.findFiberByHostInstance||function(){return null},findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null};if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var ul=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!ul.isDisabled&&ul.supportsFiber)try{Eo=ul.inject(ll),_o=ul}catch(he){}}t.hydrate=function(e,t,n){if(!ol(t))throw Error(i(200));return al(null,e,t,!0,n)}},40961:(e,t,n)=>{"use strict";!function e(){if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}(),e.exports=n(22551)},30115:e=>{var t="undefined"!=typeof Element,n="function"==typeof Map,r="function"==typeof Set,o="function"==typeof ArrayBuffer&&!!ArrayBuffer.isView;function a(e,i){if(e===i)return!0;if(e&&i&&"object"==typeof e&&"object"==typeof i){if(e.constructor!==i.constructor)return!1;var s,c,l,u;if(Array.isArray(e)){if((s=e.length)!=i.length)return!1;for(c=s;0!=c--;)if(!a(e[c],i[c]))return!1;return!0}if(n&&e instanceof Map&&i instanceof Map){if(e.size!==i.size)return!1;for(u=e.entries();!(c=u.next()).done;)if(!i.has(c.value[0]))return!1;for(u=e.entries();!(c=u.next()).done;)if(!a(c.value[1],i.get(c.value[0])))return!1;return!0}if(r&&e instanceof Set&&i instanceof Set){if(e.size!==i.size)return!1;for(u=e.entries();!(c=u.next()).done;)if(!i.has(c.value[0]))return!1;return!0}if(o&&ArrayBuffer.isView(e)&&ArrayBuffer.isView(i)){if((s=e.length)!=i.length)return!1;for(c=s;0!=c--;)if(e[c]!==i[c])return!1;return!0}if(e.constructor===RegExp)return e.source===i.source&&e.flags===i.flags;if(e.valueOf!==Object.prototype.valueOf&&"function"==typeof e.valueOf&&"function"==typeof i.valueOf)return e.valueOf()===i.valueOf();if(e.toString!==Object.prototype.toString&&"function"==typeof e.toString&&"function"==typeof i.toString)return e.toString()===i.toString();if((s=(l=Object.keys(e)).length)!==Object.keys(i).length)return!1;for(c=s;0!=c--;)if(!Object.prototype.hasOwnProperty.call(i,l[c]))return!1;if(t&&e instanceof Element)return!1;for(c=s;0!=c--;)if(("_owner"!==l[c]&&"__v"!==l[c]&&"__o"!==l[c]||!e.$$typeof)&&!a(e[l[c]],i[l[c]]))return!1;return!0}return e!=e&&i!=i}e.exports=function(e,t){try{return a(e,t)}catch(n){if((n.message||"").match(/stack|recursion/i))return console.warn("react-fast-compare cannot handle circular refs"),!1;throw n}}},80545:(e,t,n)=>{"use strict";n.d(t,{mg:()=>Z,vd:()=>H});var r=n(96540),o=n(5556),a=n.n(o),i=n(30115),s=n.n(i),c=n(20311),l=n.n(c),u=n(2833),d=n.n(u);function p(){return p=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},p.apply(this,arguments)}function f(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,m(e,t)}function m(e,t){return m=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},m(e,t)}function h(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)t.indexOf(n=a[r])>=0||(o[n]=e[n]);return o}var g={BASE:"base",BODY:"body",HEAD:"head",HTML:"html",LINK:"link",META:"meta",NOSCRIPT:"noscript",SCRIPT:"script",STYLE:"style",TITLE:"title",FRAGMENT:"Symbol(react.fragment)"},b={rel:["amphtml","canonical","alternate"]},v={type:["application/ld+json"]},y={charset:"",name:["robots","description"],property:["og:type","og:title","og:url","og:image","og:image:alt","og:description","twitter:url","twitter:title","twitter:description","twitter:image","twitter:image:alt","twitter:card","twitter:site"]},w=Object.keys(g).map((function(e){return g[e]})),k={accesskey:"accessKey",charset:"charSet",class:"className",contenteditable:"contentEditable",contextmenu:"contextMenu","http-equiv":"httpEquiv",itemprop:"itemProp",tabindex:"tabIndex"},x=Object.keys(k).reduce((function(e,t){return e[k[t]]=t,e}),{}),E=function(e,t){for(var n=e.length-1;n>=0;n-=1){var r=e[n];if(Object.prototype.hasOwnProperty.call(r,t))return r[t]}return null},_=function(e){var t=E(e,g.TITLE),n=E(e,"titleTemplate");if(Array.isArray(t)&&(t=t.join("")),n&&t)return n.replace(/%s/g,(function(){return t}));var r=E(e,"defaultTitle");return t||r||void 0},S=function(e){return E(e,"onChangeClientState")||function(){}},A=function(e,t){return t.filter((function(t){return void 0!==t[e]})).map((function(t){return t[e]})).reduce((function(e,t){return p({},e,t)}),{})},C=function(e,t){return t.filter((function(e){return void 0!==e[g.BASE]})).map((function(e){return e[g.BASE]})).reverse().reduce((function(t,n){if(!t.length)for(var r=Object.keys(n),o=0;o<r.length;o+=1){var a=r[o].toLowerCase();if(-1!==e.indexOf(a)&&n[a])return t.concat(n)}return t}),[])},T=function(e,t,n){var r={};return n.filter((function(t){return!!Array.isArray(t[e])||(void 0!==t[e]&&console&&"function"==typeof console.warn&&console.warn("Helmet: "+e+' should be of type "Array". Instead found type "'+typeof t[e]+'"'),!1)})).map((function(t){return t[e]})).reverse().reduce((function(e,n){var o={};n.filter((function(e){for(var n,a=Object.keys(e),i=0;i<a.length;i+=1){var s=a[i],c=s.toLowerCase();-1===t.indexOf(c)||"rel"===n&&"canonical"===e[n].toLowerCase()||"rel"===c&&"stylesheet"===e[c].toLowerCase()||(n=c),-1===t.indexOf(s)||"innerHTML"!==s&&"cssText"!==s&&"itemprop"!==s||(n=s)}if(!n||!e[n])return!1;var l=e[n].toLowerCase();return r[n]||(r[n]={}),o[n]||(o[n]={}),!r[n][l]&&(o[n][l]=!0,!0)})).reverse().forEach((function(t){return e.push(t)}));for(var a=Object.keys(o),i=0;i<a.length;i+=1){var s=a[i],c=p({},r[s],o[s]);r[s]=c}return e}),[]).reverse()},q=function(e,t){if(Array.isArray(e)&&e.length)for(var n=0;n<e.length;n+=1)if(e[n][t])return!0;return!1},N=function(e){return Array.isArray(e)?e.join(""):e},R=function(e,t){return Array.isArray(e)?e.reduce((function(e,n){return function(e,t){for(var n=Object.keys(e),r=0;r<n.length;r+=1)if(t[n[r]]&&t[n[r]].includes(e[n[r]]))return!0;return!1}(n,t)?e.priority.push(n):e.default.push(n),e}),{priority:[],default:[]}):{default:e}},O=function(e,t){var n;return p({},e,((n={})[t]=void 0,n))},L=[g.NOSCRIPT,g.SCRIPT,g.STYLE],P=function(e,t){return void 0===t&&(t=!0),!1===t?String(e):String(e).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#x27;")},I=function(e){return Object.keys(e).reduce((function(t,n){var r=void 0!==e[n]?n+'="'+e[n]+'"':""+n;return t?t+" "+r:r}),"")},D=function(e,t){return void 0===t&&(t={}),Object.keys(e).reduce((function(t,n){return t[k[n]||n]=e[n],t}),t)},M=function(e,t){return t.map((function(t,n){var o,a=((o={key:n})["data-rh"]=!0,o);return Object.keys(t).forEach((function(e){var n=k[e]||e;"innerHTML"===n||"cssText"===n?a.dangerouslySetInnerHTML={__html:t.innerHTML||t.cssText}:a[n]=t[e]})),r.createElement(e,a)}))},j=function(e,t,n){switch(e){case g.TITLE:return{toComponent:function(){return n=t.titleAttributes,(o={key:e=t.title})["data-rh"]=!0,a=D(n,o),[r.createElement(g.TITLE,a,e)];var e,n,o,a},toString:function(){return function(e,t,n,r){var o=I(n),a=N(t);return o?"<"+e+' data-rh="true" '+o+">"+P(a,r)+"</"+e+">":"<"+e+' data-rh="true">'+P(a,r)+"</"+e+">"}(e,t.title,t.titleAttributes,n)}};case"bodyAttributes":case"htmlAttributes":return{toComponent:function(){return D(t)},toString:function(){return I(t)}};default:return{toComponent:function(){return M(e,t)},toString:function(){return function(e,t,n){return t.reduce((function(t,r){var o=Object.keys(r).filter((function(e){return!("innerHTML"===e||"cssText"===e)})).reduce((function(e,t){var o=void 0===r[t]?t:t+'="'+P(r[t],n)+'"';return e?e+" "+o:o}),""),a=r.innerHTML||r.cssText||"",i=-1===L.indexOf(e);return t+"<"+e+' data-rh="true" '+o+(i?"/>":">"+a+"</"+e+">")}),"")}(e,t,n)}}}},F=function(e){var t=e.baseTag,n=e.bodyAttributes,r=e.encode,o=e.htmlAttributes,a=e.noscriptTags,i=e.styleTags,s=e.title,c=void 0===s?"":s,l=e.titleAttributes,u=e.linkTags,d=e.metaTags,p=e.scriptTags,f={toComponent:function(){},toString:function(){return""}};if(e.prioritizeSeoTags){var m=function(e){var t=e.linkTags,n=e.scriptTags,r=e.encode,o=R(e.metaTags,y),a=R(t,b),i=R(n,v);return{priorityMethods:{toComponent:function(){return[].concat(M(g.META,o.priority),M(g.LINK,a.priority),M(g.SCRIPT,i.priority))},toString:function(){return j(g.META,o.priority,r)+" "+j(g.LINK,a.priority,r)+" "+j(g.SCRIPT,i.priority,r)}},metaTags:o.default,linkTags:a.default,scriptTags:i.default}}(e);f=m.priorityMethods,u=m.linkTags,d=m.metaTags,p=m.scriptTags}return{priority:f,base:j(g.BASE,t,r),bodyAttributes:j("bodyAttributes",n,r),htmlAttributes:j("htmlAttributes",o,r),link:j(g.LINK,u,r),meta:j(g.META,d,r),noscript:j(g.NOSCRIPT,a,r),script:j(g.SCRIPT,p,r),style:j(g.STYLE,i,r),title:j(g.TITLE,{title:c,titleAttributes:l},r)}},B=[],z=function(e,t){var n=this;void 0===t&&(t="undefined"!=typeof document),this.instances=[],this.value={setHelmet:function(e){n.context.helmet=e},helmetInstances:{get:function(){return n.canUseDOM?B:n.instances},add:function(e){(n.canUseDOM?B:n.instances).push(e)},remove:function(e){var t=(n.canUseDOM?B:n.instances).indexOf(e);(n.canUseDOM?B:n.instances).splice(t,1)}}},this.context=e,this.canUseDOM=t,t||(e.helmet=F({baseTag:[],bodyAttributes:{},encodeSpecialCharacters:!0,htmlAttributes:{},linkTags:[],metaTags:[],noscriptTags:[],scriptTags:[],styleTags:[],title:"",titleAttributes:{}}))},U=r.createContext({}),$=a().shape({setHelmet:a().func,helmetInstances:a().shape({get:a().func,add:a().func,remove:a().func})}),G="undefined"!=typeof document,H=function(e){function t(n){var r;return(r=e.call(this,n)||this).helmetData=new z(r.props.context,t.canUseDOM),r}return f(t,e),t.prototype.render=function(){return r.createElement(U.Provider,{value:this.helmetData.value},this.props.children)},t}(r.Component);H.canUseDOM=G,H.propTypes={context:a().shape({helmet:a().shape()}),children:a().node.isRequired},H.defaultProps={context:{}},H.displayName="HelmetProvider";var W=function(e,t){var n,r=document.head||document.querySelector(g.HEAD),o=r.querySelectorAll(e+"[data-rh]"),a=[].slice.call(o),i=[];return t&&t.length&&t.forEach((function(t){var r=document.createElement(e);for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&("innerHTML"===o?r.innerHTML=t.innerHTML:"cssText"===o?r.styleSheet?r.styleSheet.cssText=t.cssText:r.appendChild(document.createTextNode(t.cssText)):r.setAttribute(o,void 0===t[o]?"":t[o]));r.setAttribute("data-rh","true"),a.some((function(e,t){return n=t,r.isEqualNode(e)}))?a.splice(n,1):i.push(r)})),a.forEach((function(e){return e.parentNode.removeChild(e)})),i.forEach((function(e){return r.appendChild(e)})),{oldTags:a,newTags:i}},V=function(e,t){var n=document.getElementsByTagName(e)[0];if(n){for(var r=n.getAttribute("data-rh"),o=r?r.split(","):[],a=[].concat(o),i=Object.keys(t),s=0;s<i.length;s+=1){var c=i[s],l=t[c]||"";n.getAttribute(c)!==l&&n.setAttribute(c,l),-1===o.indexOf(c)&&o.push(c);var u=a.indexOf(c);-1!==u&&a.splice(u,1)}for(var d=a.length-1;d>=0;d-=1)n.removeAttribute(a[d]);o.length===a.length?n.removeAttribute("data-rh"):n.getAttribute("data-rh")!==i.join(",")&&n.setAttribute("data-rh",i.join(","))}},K=function(e,t){var n=e.baseTag,r=e.htmlAttributes,o=e.linkTags,a=e.metaTags,i=e.noscriptTags,s=e.onChangeClientState,c=e.scriptTags,l=e.styleTags,u=e.title,d=e.titleAttributes;V(g.BODY,e.bodyAttributes),V(g.HTML,r),function(e,t){void 0!==e&&document.title!==e&&(document.title=N(e)),V(g.TITLE,t)}(u,d);var p={baseTag:W(g.BASE,n),linkTags:W(g.LINK,o),metaTags:W(g.META,a),noscriptTags:W(g.NOSCRIPT,i),scriptTags:W(g.SCRIPT,c),styleTags:W(g.STYLE,l)},f={},m={};Object.keys(p).forEach((function(e){var t=p[e],n=t.newTags,r=t.oldTags;n.length&&(f[e]=n),r.length&&(m[e]=p[e].oldTags)})),t&&t(),s(e,f,m)},Y=null,Q=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];return(t=e.call.apply(e,[this].concat(r))||this).rendered=!1,t}f(t,e);var n=t.prototype;return n.shouldComponentUpdate=function(e){return!d()(e,this.props)},n.componentDidUpdate=function(){this.emitChange()},n.componentWillUnmount=function(){this.props.context.helmetInstances.remove(this),this.emitChange()},n.emitChange=function(){var e,t,n=this.props.context,r=n.setHelmet,o=null,a=(e=n.helmetInstances.get().map((function(e){var t=p({},e.props);return delete t.context,t})),{baseTag:C(["href"],e),bodyAttributes:A("bodyAttributes",e),defer:E(e,"defer"),encode:E(e,"encodeSpecialCharacters"),htmlAttributes:A("htmlAttributes",e),linkTags:T(g.LINK,["rel","href"],e),metaTags:T(g.META,["name","charset","http-equiv","property","itemprop"],e),noscriptTags:T(g.NOSCRIPT,["innerHTML"],e),onChangeClientState:S(e),scriptTags:T(g.SCRIPT,["src","innerHTML"],e),styleTags:T(g.STYLE,["cssText"],e),title:_(e),titleAttributes:A("titleAttributes",e),prioritizeSeoTags:q(e,"prioritizeSeoTags")});H.canUseDOM?(t=a,Y&&cancelAnimationFrame(Y),t.defer?Y=requestAnimationFrame((function(){K(t,(function(){Y=null}))})):(K(t),Y=null)):F&&(o=F(a)),r(o)},n.init=function(){this.rendered||(this.rendered=!0,this.props.context.helmetInstances.add(this),this.emitChange())},n.render=function(){return this.init(),null},t}(r.Component);Q.propTypes={context:$.isRequired},Q.displayName="HelmetDispatcher";var X=["children"],J=["children"],Z=function(e){function t(){return e.apply(this,arguments)||this}f(t,e);var n=t.prototype;return n.shouldComponentUpdate=function(e){return!s()(O(this.props,"helmetData"),O(e,"helmetData"))},n.mapNestedChildrenToProps=function(e,t){if(!t)return null;switch(e.type){case g.SCRIPT:case g.NOSCRIPT:return{innerHTML:t};case g.STYLE:return{cssText:t};default:throw new Error("<"+e.type+" /> elements are self-closing and can not contain children. Refer to our API for more information.")}},n.flattenArrayTypeChildren=function(e){var t,n=e.child,r=e.arrayTypeChildren;return p({},r,((t={})[n.type]=[].concat(r[n.type]||[],[p({},e.newChildProps,this.mapNestedChildrenToProps(n,e.nestedChildren))]),t))},n.mapObjectTypeChildren=function(e){var t,n,r=e.child,o=e.newProps,a=e.newChildProps,i=e.nestedChildren;switch(r.type){case g.TITLE:return p({},o,((t={})[r.type]=i,t.titleAttributes=p({},a),t));case g.BODY:return p({},o,{bodyAttributes:p({},a)});case g.HTML:return p({},o,{htmlAttributes:p({},a)});default:return p({},o,((n={})[r.type]=p({},a),n))}},n.mapArrayTypeChildrenToProps=function(e,t){var n=p({},t);return Object.keys(e).forEach((function(t){var r;n=p({},n,((r={})[t]=e[t],r))})),n},n.warnOnInvalidChildren=function(e,t){return l()(w.some((function(t){return e.type===t})),"function"==typeof e.type?"You may be attempting to nest <Helmet> components within each other, which is not allowed. Refer to our API for more information.":"Only elements types "+w.join(", ")+" are allowed. Helmet does not support rendering <"+e.type+"> elements. Refer to our API for more information."),l()(!t||"string"==typeof t||Array.isArray(t)&&!t.some((function(e){return"string"!=typeof e})),"Helmet expects a string as a child of <"+e.type+">. Did you forget to wrap your children in braces? ( <"+e.type+">{``}</"+e.type+"> ) Refer to our API for more information."),!0},n.mapChildrenToProps=function(e,t){var n=this,o={};return r.Children.forEach(e,(function(e){if(e&&e.props){var r=e.props,a=r.children,i=h(r,X),s=Object.keys(i).reduce((function(e,t){return e[x[t]||t]=i[t],e}),{}),c=e.type;switch("symbol"==typeof c?c=c.toString():n.warnOnInvalidChildren(e,a),c){case g.FRAGMENT:t=n.mapChildrenToProps(a,t);break;case g.LINK:case g.META:case g.NOSCRIPT:case g.SCRIPT:case g.STYLE:o=n.flattenArrayTypeChildren({child:e,arrayTypeChildren:o,newChildProps:s,nestedChildren:a});break;default:t=n.mapObjectTypeChildren({child:e,newProps:t,newChildProps:s,nestedChildren:a})}}})),this.mapArrayTypeChildrenToProps(o,t)},n.render=function(){var e=this.props,t=e.children,n=h(e,J),o=p({},n),a=n.helmetData;return t&&(o=this.mapChildrenToProps(t,o)),!a||a instanceof z||(a=new z(a.context,a.instances)),a?r.createElement(Q,p({},o,{context:a.value,helmetData:void 0})):r.createElement(U.Consumer,null,(function(e){return r.createElement(Q,p({},o,{context:e}))}))},t}(r.Component);Z.propTypes={base:a().object,bodyAttributes:a().object,children:a().oneOfType([a().arrayOf(a().node),a().node]),defaultTitle:a().string,defer:a().bool,encodeSpecialCharacters:a().bool,htmlAttributes:a().object,link:a().arrayOf(a().object),meta:a().arrayOf(a().object),noscript:a().arrayOf(a().object),onChangeClientState:a().func,script:a().arrayOf(a().object),style:a().arrayOf(a().object),title:a().string,titleAttributes:a().object,titleTemplate:a().string,prioritizeSeoTags:a().bool,helmetData:a().object},Z.defaultProps={defer:!0,encodeSpecialCharacters:!0,prioritizeSeoTags:!1},Z.displayName="Helmet"},22799:(e,t)=>{"use strict";var n="function"==typeof Symbol&&Symbol.for,r=n?Symbol.for("react.element"):60103,o=n?Symbol.for("react.portal"):60106,a=n?Symbol.for("react.fragment"):60107,i=n?Symbol.for("react.strict_mode"):60108,s=n?Symbol.for("react.profiler"):60114,c=n?Symbol.for("react.provider"):60109,l=n?Symbol.for("react.context"):60110,u=n?Symbol.for("react.async_mode"):60111,d=n?Symbol.for("react.concurrent_mode"):60111,p=n?Symbol.for("react.forward_ref"):60112,f=n?Symbol.for("react.suspense"):60113,m=n?Symbol.for("react.suspense_list"):60120,h=n?Symbol.for("react.memo"):60115,g=n?Symbol.for("react.lazy"):60116,b=n?Symbol.for("react.block"):60121,v=n?Symbol.for("react.fundamental"):60117,y=n?Symbol.for("react.responder"):60118,w=n?Symbol.for("react.scope"):60119;function k(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case r:switch(e=e.type){case u:case d:case a:case s:case i:case f:return e;default:switch(e=e&&e.$$typeof){case l:case p:case g:case h:case c:return e;default:return t}}case o:return t}}}function x(e){return k(e)===d}t.AsyncMode=u,t.ConcurrentMode=d,t.ContextConsumer=l,t.ContextProvider=c,t.Element=r,t.ForwardRef=p,t.Fragment=a,t.Lazy=g,t.Memo=h,t.Portal=o,t.Profiler=s,t.StrictMode=i,t.Suspense=f,t.isAsyncMode=function(e){return x(e)||k(e)===u},t.isConcurrentMode=x,t.isContextConsumer=function(e){return k(e)===l},t.isContextProvider=function(e){return k(e)===c},t.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===r},t.isForwardRef=function(e){return k(e)===p},t.isFragment=function(e){return k(e)===a},t.isLazy=function(e){return k(e)===g},t.isMemo=function(e){return k(e)===h},t.isPortal=function(e){return k(e)===o},t.isProfiler=function(e){return k(e)===s},t.isStrictMode=function(e){return k(e)===i},t.isSuspense=function(e){return k(e)===f},t.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===a||e===d||e===s||e===i||e===f||e===m||"object"==typeof e&&null!==e&&(e.$$typeof===g||e.$$typeof===h||e.$$typeof===c||e.$$typeof===l||e.$$typeof===p||e.$$typeof===v||e.$$typeof===y||e.$$typeof===w||e.$$typeof===b)},t.typeOf=k},44363:(e,t,n)=>{"use strict";e.exports=n(22799)},53259:(e,t,n)=>{"use strict";function r(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}function o(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(){return i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},i.apply(this,arguments)}var s=n(96540),c=n(5556),l=[],u=[];function d(e){var t=e(),n={loading:!0,loaded:null,error:null};return n.promise=t.then((function(e){return n.loading=!1,n.loaded=e,e})).catch((function(e){throw n.loading=!1,n.error=e,e})),n}function p(e){var t={loading:!1,loaded:{},error:null},n=[];try{Object.keys(e).forEach((function(r){var o=d(e[r]);o.loading?t.loading=!0:(t.loaded[r]=o.loaded,t.error=o.error),n.push(o.promise),o.promise.then((function(e){t.loaded[r]=e})).catch((function(e){t.error=e}))}))}catch(r){t.error=r}return t.promise=Promise.all(n).then((function(e){return t.loading=!1,e})).catch((function(e){throw t.loading=!1,e})),t}function f(e,t){return s.createElement((n=e)&&n.__esModule?n.default:n,t);var n}function m(e,t){var d,p;if(!t.loading)throw new Error("react-loadable requires a `loading` component");var m=i({loader:null,loading:null,delay:200,timeout:null,render:f,webpack:null,modules:null},t),h=null;function g(){return h||(h=e(m.loader)),h.promise}return l.push(g),"function"==typeof m.webpack&&u.push((function(){if((0,m.webpack)().every((function(e){return void 0!==e&&void 0!==n.m[e]})))return g()})),p=d=function(t){function n(n){var r;return a(o(o(r=t.call(this,n)||this)),"retry",(function(){r.setState({error:null,loading:!0,timedOut:!1}),h=e(m.loader),r._loadModule()})),g(),r.state={error:h.error,pastDelay:!1,timedOut:!1,loading:h.loading,loaded:h.loaded},r}r(n,t),n.preload=function(){return g()};var i=n.prototype;return i.UNSAFE_componentWillMount=function(){this._loadModule()},i.componentDidMount=function(){this._mounted=!0},i._loadModule=function(){var e=this;if(this.context.loadable&&Array.isArray(m.modules)&&m.modules.forEach((function(t){e.context.loadable.report(t)})),h.loading){var t=function(t){e._mounted&&e.setState(t)};"number"==typeof m.delay&&(0===m.delay?this.setState({pastDelay:!0}):this._delay=setTimeout((function(){t({pastDelay:!0})}),m.delay)),"number"==typeof m.timeout&&(this._timeout=setTimeout((function(){t({timedOut:!0})}),m.timeout));var n=function(){t({error:h.error,loaded:h.loaded,loading:h.loading}),e._clearTimeouts()};h.promise.then((function(){return n(),null})).catch((function(e){return n(),null}))}},i.componentWillUnmount=function(){this._mounted=!1,this._clearTimeouts()},i._clearTimeouts=function(){clearTimeout(this._delay),clearTimeout(this._timeout)},i.render=function(){return this.state.loading||this.state.error?s.createElement(m.loading,{isLoading:this.state.loading,pastDelay:this.state.pastDelay,timedOut:this.state.timedOut,error:this.state.error,retry:this.retry}):this.state.loaded?m.render(this.state.loaded,this.props):null},n}(s.Component),a(d,"contextTypes",{loadable:c.shape({report:c.func.isRequired})}),p}function h(e){return m(d,e)}h.Map=function(e){if("function"!=typeof e.render)throw new Error("LoadableMap requires a `render(loaded, props)` function");return m(p,e)};var g=function(e){function t(){return e.apply(this,arguments)||this}r(t,e);var n=t.prototype;return n.getChildContext=function(){return{loadable:{report:this.props.report}}},n.render=function(){return s.Children.only(this.props.children)},t}(s.Component);function b(e){for(var t=[];e.length;){var n=e.pop();t.push(n())}return Promise.all(t).then((function(){if(e.length)return b(e)}))}a(g,"propTypes",{report:c.func.isRequired}),a(g,"childContextTypes",{loadable:c.shape({report:c.func.isRequired}).isRequired}),h.Capture=g,h.preloadAll=function(){return new Promise((function(e,t){b(l).then(e,t)}))},h.preloadReady=function(){return new Promise((function(e,t){b(u).then(e,e)}))},e.exports=h},22831:(e,t,n)=>{"use strict";n.d(t,{u:()=>i,v:()=>s});var r=n(56347),o=n(58168),a=n(96540);function i(e,t,n){return void 0===n&&(n=[]),e.some((function(e){var o=e.path?(0,r.B6)(t,e):n.length?n[n.length-1].match:r.Ix.computeRootMatch(t);return o&&(n.push({route:e,match:o}),e.routes&&i(e.routes,t,n)),o})),n}function s(e,t,n){return void 0===t&&(t={}),void 0===n&&(n={}),e?a.createElement(r.dO,n,e.map((function(e,n){return a.createElement(r.qh,{key:e.key||n,path:e.path,exact:e.exact,strict:e.strict,render:function(n){return e.render?e.render((0,o.A)({},n,{},t,{route:e})):a.createElement(e.component,(0,o.A)({},n,t,{route:e}))}})}))):null}},54625:(e,t,n)=>{"use strict";n.d(t,{Kd:()=>u,N_:()=>g,k2:()=>y});var r=n(56347),o=n(77387),a=n(96540),i=n(31513),s=n(58168),c=n(98587),l=n(11561),u=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];return(t=e.call.apply(e,[this].concat(r))||this).history=(0,i.zR)(t.props),t}return(0,o.A)(t,e),t.prototype.render=function(){return a.createElement(r.Ix,{history:this.history,children:this.props.children})},t}(a.Component);a.Component;var d=function(e,t){return"function"==typeof e?e(t):e},p=function(e,t){return"string"==typeof e?(0,i.yJ)(e,null,null,t):e},f=function(e){return e},m=a.forwardRef;void 0===m&&(m=f);var h=m((function(e,t){var n=e.innerRef,r=e.navigate,o=e.onClick,i=(0,c.A)(e,["innerRef","navigate","onClick"]),l=i.target,u=(0,s.A)({},i,{onClick:function(e){try{o&&o(e)}catch(t){throw e.preventDefault(),t}e.defaultPrevented||0!==e.button||l&&"_self"!==l||function(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}(e)||(e.preventDefault(),r())}});return u.ref=f!==m&&t||n,a.createElement("a",u)}));var g=m((function(e,t){var n=e.component,o=void 0===n?h:n,u=e.replace,g=e.to,b=e.innerRef,v=(0,c.A)(e,["component","replace","to","innerRef"]);return a.createElement(r.XZ.Consumer,null,(function(e){e||(0,l.A)(!1);var n=e.history,r=p(d(g,e.location),e.location),c=r?n.createHref(r):"",h=(0,s.A)({},v,{href:c,navigate:function(){var t=d(g,e.location),r=(0,i.AO)(e.location)===(0,i.AO)(p(t));(u||r?n.replace:n.push)(t)}});return f!==m?h.ref=t||b:h.innerRef=b,a.createElement(o,h)}))})),b=function(e){return e},v=a.forwardRef;void 0===v&&(v=b);var y=v((function(e,t){var n=e["aria-current"],o=void 0===n?"page":n,i=e.activeClassName,u=void 0===i?"active":i,f=e.activeStyle,m=e.className,h=e.exact,y=e.isActive,w=e.location,k=e.sensitive,x=e.strict,E=e.style,_=e.to,S=e.innerRef,A=(0,c.A)(e,["aria-current","activeClassName","activeStyle","className","exact","isActive","location","sensitive","strict","style","to","innerRef"]);return a.createElement(r.XZ.Consumer,null,(function(e){e||(0,l.A)(!1);var n=w||e.location,i=p(d(_,n),n),c=i.pathname,C=c&&c.replace(/([.+*?=^!:${}()[\]|/\\])/g,"\\$1"),T=C?(0,r.B6)(n.pathname,{path:C,exact:h,sensitive:k,strict:x}):null,q=!!(y?y(T,n):T),N="function"==typeof m?m(q):m,R="function"==typeof E?E(q):E;q&&(N=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return t.filter((function(e){return e})).join(" ")}(N,u),R=(0,s.A)({},R,f));var O=(0,s.A)({"aria-current":q&&o||null,className:N,style:R,to:i},A);return b!==v?O.ref=t||S:O.innerRef=S,a.createElement(g,O)}))}))},56347:(e,t,n)=>{"use strict";n.d(t,{B6:()=>E,Ix:()=>y,W6:()=>O,XZ:()=>v,dO:()=>N,qh:()=>_,zy:()=>L});var r=n(77387),o=n(96540),a=n(5556),i=n.n(a),s=n(31513),c=n(11561),l=n(58168),u=n(8505),d=n.n(u),p=(n(44363),n(98587)),f=(n(4146),1073741823),m="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:void 0!==n.g?n.g:{};var h=o.createContext||function(e,t){var n,a,s="__create-react-context-"+function(){var e="__global_unique_id__";return m[e]=(m[e]||0)+1}()+"__",c=function(e){function n(){for(var t,n,r,o=arguments.length,a=new Array(o),i=0;i<o;i++)a[i]=arguments[i];return(t=e.call.apply(e,[this].concat(a))||this).emitter=(n=t.props.value,r=[],{on:function(e){r.push(e)},off:function(e){r=r.filter((function(t){return t!==e}))},get:function(){return n},set:function(e,t){n=e,r.forEach((function(e){return e(n,t)}))}}),t}(0,r.A)(n,e);var o=n.prototype;return o.getChildContext=function(){var e;return(e={})[s]=this.emitter,e},o.componentWillReceiveProps=function(e){if(this.props.value!==e.value){var n,r=this.props.value,o=e.value;((a=r)===(i=o)?0!==a||1/a==1/i:a!=a&&i!=i)?n=0:(n="function"==typeof t?t(r,o):f,0!==(n|=0)&&this.emitter.set(e.value,n))}var a,i},o.render=function(){return this.props.children},n}(o.Component);c.childContextTypes=((n={})[s]=i().object.isRequired,n);var l=function(t){function n(){for(var e,n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];return(e=t.call.apply(t,[this].concat(r))||this).observedBits=void 0,e.state={value:e.getValue()},e.onUpdate=function(t,n){0!=((0|e.observedBits)&n)&&e.setState({value:e.getValue()})},e}(0,r.A)(n,t);var o=n.prototype;return o.componentWillReceiveProps=function(e){var t=e.observedBits;this.observedBits=null==t?f:t},o.componentDidMount=function(){this.context[s]&&this.context[s].on(this.onUpdate);var e=this.props.observedBits;this.observedBits=null==e?f:e},o.componentWillUnmount=function(){this.context[s]&&this.context[s].off(this.onUpdate)},o.getValue=function(){return this.context[s]?this.context[s].get():e},o.render=function(){return(e=this.props.children,Array.isArray(e)?e[0]:e)(this.state.value);var e},n}(o.Component);return l.contextTypes=((a={})[s]=i().object,a),{Provider:c,Consumer:l}},g=function(e){var t=h();return t.displayName=e,t},b=g("Router-History"),v=g("Router"),y=function(e){function t(t){var n;return(n=e.call(this,t)||this).state={location:t.history.location},n._isMounted=!1,n._pendingLocation=null,t.staticContext||(n.unlisten=t.history.listen((function(e){n._pendingLocation=e}))),n}(0,r.A)(t,e),t.computeRootMatch=function(e){return{path:"/",url:"/",params:{},isExact:"/"===e}};var n=t.prototype;return n.componentDidMount=function(){var e=this;this._isMounted=!0,this.unlisten&&this.unlisten(),this.props.staticContext||(this.unlisten=this.props.history.listen((function(t){e._isMounted&&e.setState({location:t})}))),this._pendingLocation&&this.setState({location:this._pendingLocation})},n.componentWillUnmount=function(){this.unlisten&&(this.unlisten(),this._isMounted=!1,this._pendingLocation=null)},n.render=function(){return o.createElement(v.Provider,{value:{history:this.props.history,location:this.state.location,match:t.computeRootMatch(this.state.location.pathname),staticContext:this.props.staticContext}},o.createElement(b.Provider,{children:this.props.children||null,value:this.props.history}))},t}(o.Component);o.Component;o.Component;var w={},k=1e4,x=0;function E(e,t){void 0===t&&(t={}),("string"==typeof t||Array.isArray(t))&&(t={path:t});var n=t,r=n.path,o=n.exact,a=void 0!==o&&o,i=n.strict,s=void 0!==i&&i,c=n.sensitive,l=void 0!==c&&c;return[].concat(r).reduce((function(t,n){if(!n&&""!==n)return null;if(t)return t;var r=function(e,t){var n=""+t.end+t.strict+t.sensitive,r=w[n]||(w[n]={});if(r[e])return r[e];var o=[],a={regexp:d()(e,o,t),keys:o};return x<k&&(r[e]=a,x++),a}(n,{end:a,strict:s,sensitive:l}),o=r.regexp,i=r.keys,c=o.exec(e);if(!c)return null;var u=c[0],p=c.slice(1),f=e===u;return a&&!f?null:{path:n,url:"/"===n&&""===u?"/":u,isExact:f,params:i.reduce((function(e,t,n){return e[t.name]=p[n],e}),{})}}),null)}var _=function(e){function t(){return e.apply(this,arguments)||this}return(0,r.A)(t,e),t.prototype.render=function(){var e=this;return o.createElement(v.Consumer,null,(function(t){t||(0,c.A)(!1);var n=e.props.location||t.location,r=e.props.computedMatch?e.props.computedMatch:e.props.path?E(n.pathname,e.props):t.match,a=(0,l.A)({},t,{location:n,match:r}),i=e.props,s=i.children,u=i.component,d=i.render;return Array.isArray(s)&&function(e){return 0===o.Children.count(e)}(s)&&(s=null),o.createElement(v.Provider,{value:a},a.match?s?"function"==typeof s?s(a):s:u?o.createElement(u,a):d?d(a):null:"function"==typeof s?s(a):null)}))},t}(o.Component);function S(e){return"/"===e.charAt(0)?e:"/"+e}function A(e,t){if(!e)return t;var n=S(e);return 0!==t.pathname.indexOf(n)?t:(0,l.A)({},t,{pathname:t.pathname.substr(n.length)})}function C(e){return"string"==typeof e?e:(0,s.AO)(e)}function T(e){return function(){(0,c.A)(!1)}}function q(){}o.Component;var N=function(e){function t(){return e.apply(this,arguments)||this}return(0,r.A)(t,e),t.prototype.render=function(){var e=this;return o.createElement(v.Consumer,null,(function(t){t||(0,c.A)(!1);var n,r,a=e.props.location||t.location;return o.Children.forEach(e.props.children,(function(e){if(null==r&&o.isValidElement(e)){n=e;var i=e.props.path||e.props.from;r=i?E(a.pathname,(0,l.A)({},e.props,{path:i})):t.match}})),r?o.cloneElement(n,{location:a,computedMatch:r}):null}))},t}(o.Component);var R=o.useContext;function O(){return R(b)}function L(){return R(v).location}},9375:e=>{e.exports=Array.isArray||function(e){return"[object Array]"==Object.prototype.toString.call(e)}},8505:(e,t,n)=>{var r=n(9375);e.exports=f,e.exports.parse=a,e.exports.compile=function(e,t){return s(a(e,t),t)},e.exports.tokensToFunction=s,e.exports.tokensToRegExp=p;var o=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function a(e,t){for(var n,r=[],a=0,i=0,s="",u=t&&t.delimiter||"/";null!=(n=o.exec(e));){var d=n[0],p=n[1],f=n.index;if(s+=e.slice(i,f),i=f+d.length,p)s+=p[1];else{var m=e[i],h=n[2],g=n[3],b=n[4],v=n[5],y=n[6],w=n[7];s&&(r.push(s),s="");var k=null!=h&&null!=m&&m!==h,x="+"===y||"*"===y,E="?"===y||"*"===y,_=n[2]||u,S=b||v;r.push({name:g||a++,prefix:h||"",delimiter:_,optional:E,repeat:x,partial:k,asterisk:!!w,pattern:S?l(S):w?".*":"[^"+c(_)+"]+?"})}}return i<e.length&&(s+=e.substr(i)),s&&r.push(s),r}function i(e){return encodeURI(e).replace(/[\/?#]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()}))}function s(e,t){for(var n=new Array(e.length),o=0;o<e.length;o++)"object"==typeof e[o]&&(n[o]=new RegExp("^(?:"+e[o].pattern+")$",d(t)));return function(t,o){for(var a="",s=t||{},c=(o||{}).pretty?i:encodeURIComponent,l=0;l<e.length;l++){var u=e[l];if("string"!=typeof u){var d,p=s[u.name];if(null==p){if(u.optional){u.partial&&(a+=u.prefix);continue}throw new TypeError('Expected "'+u.name+'" to be defined')}if(r(p)){if(!u.repeat)throw new TypeError('Expected "'+u.name+'" to not repeat, but received `'+JSON.stringify(p)+"`");if(0===p.length){if(u.optional)continue;throw new TypeError('Expected "'+u.name+'" to not be empty')}for(var f=0;f<p.length;f++){if(d=c(p[f]),!n[l].test(d))throw new TypeError('Expected all "'+u.name+'" to match "'+u.pattern+'", but received `'+JSON.stringify(d)+"`");a+=(0===f?u.prefix:u.delimiter)+d}}else{if(d=u.asterisk?encodeURI(p).replace(/[?#]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()})):c(p),!n[l].test(d))throw new TypeError('Expected "'+u.name+'" to match "'+u.pattern+'", but received "'+d+'"');a+=u.prefix+d}}else a+=u}return a}}function c(e){return e.replace(/([.+*?=^!:${}()[\]|\/\\])/g,"\\$1")}function l(e){return e.replace(/([=!:$\/()])/g,"\\$1")}function u(e,t){return e.keys=t,e}function d(e){return e&&e.sensitive?"":"i"}function p(e,t,n){r(t)||(n=t||n,t=[]);for(var o=(n=n||{}).strict,a=!1!==n.end,i="",s=0;s<e.length;s++){var l=e[s];if("string"==typeof l)i+=c(l);else{var p=c(l.prefix),f="(?:"+l.pattern+")";t.push(l),l.repeat&&(f+="(?:"+p+f+")*"),i+=f=l.optional?l.partial?p+"("+f+")?":"(?:"+p+"("+f+"))?":p+"("+f+")"}}var m=c(n.delimiter||"/"),h=i.slice(-m.length)===m;return o||(i=(h?i.slice(0,-m.length):i)+"(?:"+m+"(?=$))?"),i+=a?"$":o&&h?"":"(?="+m+"|$)",u(new RegExp("^"+i,d(n)),t)}function f(e,t,n){return r(t)||(n=t||n,t=[]),n=n||{},e instanceof RegExp?function(e,t){var n=e.source.match(/\((?!\?)/g);if(n)for(var r=0;r<n.length;r++)t.push({name:r,prefix:null,delimiter:null,optional:!1,repeat:!1,partial:!1,asterisk:!1,pattern:null});return u(e,t)}(e,t):r(e)?function(e,t,n){for(var r=[],o=0;o<e.length;o++)r.push(f(e[o],t,n).source);return u(new RegExp("(?:"+r.join("|")+")",d(n)),t)}(e,t,n):function(e,t,n){return p(a(e,n),t,n)}(e,t,n)}},15287:(e,t,n)=>{"use strict";var r=n(45228),o=60103,a=60106;t.Fragment=60107,t.StrictMode=60108,t.Profiler=60114;var i=60109,s=60110,c=60112;t.Suspense=60113;var l=60115,u=60116;if("function"==typeof Symbol&&Symbol.for){var d=Symbol.for;o=d("react.element"),a=d("react.portal"),t.Fragment=d("react.fragment"),t.StrictMode=d("react.strict_mode"),t.Profiler=d("react.profiler"),i=d("react.provider"),s=d("react.context"),c=d("react.forward_ref"),t.Suspense=d("react.suspense"),l=d("react.memo"),u=d("react.lazy")}var p="function"==typeof Symbol&&Symbol.iterator;function f(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var m={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},h={};function g(e,t,n){this.props=e,this.context=t,this.refs=h,this.updater=n||m}function b(){}function v(e,t,n){this.props=e,this.context=t,this.refs=h,this.updater=n||m}g.prototype.isReactComponent={},g.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw Error(f(85));this.updater.enqueueSetState(this,e,t,"setState")},g.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},b.prototype=g.prototype;var y=v.prototype=new b;y.constructor=v,r(y,g.prototype),y.isPureReactComponent=!0;var w={current:null},k=Object.prototype.hasOwnProperty,x={key:!0,ref:!0,__self:!0,__source:!0};function E(e,t,n){var r,a={},i=null,s=null;if(null!=t)for(r in void 0!==t.ref&&(s=t.ref),void 0!==t.key&&(i=""+t.key),t)k.call(t,r)&&!x.hasOwnProperty(r)&&(a[r]=t[r]);var c=arguments.length-2;if(1===c)a.children=n;else if(1<c){for(var l=Array(c),u=0;u<c;u++)l[u]=arguments[u+2];a.children=l}if(e&&e.defaultProps)for(r in c=e.defaultProps)void 0===a[r]&&(a[r]=c[r]);return{$$typeof:o,type:e,key:i,ref:s,props:a,_owner:w.current}}function _(e){return"object"==typeof e&&null!==e&&e.$$typeof===o}var S=/\/+/g;function A(e,t){return"object"==typeof e&&null!==e&&null!=e.key?function(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,(function(e){return t[e]}))}(""+e.key):t.toString(36)}function C(e,t,n,r,i){var s=typeof e;"undefined"!==s&&"boolean"!==s||(e=null);var c=!1;if(null===e)c=!0;else switch(s){case"string":case"number":c=!0;break;case"object":switch(e.$$typeof){case o:case a:c=!0}}if(c)return i=i(c=e),e=""===r?"."+A(c,0):r,Array.isArray(i)?(n="",null!=e&&(n=e.replace(S,"$&/")+"/"),C(i,t,n,"",(function(e){return e}))):null!=i&&(_(i)&&(i=function(e,t){return{$$typeof:o,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}(i,n+(!i.key||c&&c.key===i.key?"":(""+i.key).replace(S,"$&/")+"/")+e)),t.push(i)),1;if(c=0,r=""===r?".":r+":",Array.isArray(e))for(var l=0;l<e.length;l++){var u=r+A(s=e[l],l);c+=C(s,t,n,u,i)}else if(u=function(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=p&&e[p]||e["@@iterator"])?e:null}(e),"function"==typeof u)for(e=u.call(e),l=0;!(s=e.next()).done;)c+=C(s=s.value,t,n,u=r+A(s,l++),i);else if("object"===s)throw t=""+e,Error(f(31,"[object Object]"===t?"object with keys {"+Object.keys(e).join(", ")+"}":t));return c}function T(e,t,n){if(null==e)return e;var r=[],o=0;return C(e,r,"","",(function(e){return t.call(n,e,o++)})),r}function q(e){if(-1===e._status){var t=e._result;t=t(),e._status=0,e._result=t,t.then((function(t){0===e._status&&(t=t.default,e._status=1,e._result=t)}),(function(t){0===e._status&&(e._status=2,e._result=t)}))}if(1===e._status)return e._result;throw e._result}var N={current:null};function R(){var e=N.current;if(null===e)throw Error(f(321));return e}var O={ReactCurrentDispatcher:N,ReactCurrentBatchConfig:{transition:0},ReactCurrentOwner:w,IsSomeRendererActing:{current:!1},assign:r};t.Children={map:T,forEach:function(e,t,n){T(e,(function(){t.apply(this,arguments)}),n)},count:function(e){var t=0;return T(e,(function(){t++})),t},toArray:function(e){return T(e,(function(e){return e}))||[]},only:function(e){if(!_(e))throw Error(f(143));return e}},t.Component=g,t.PureComponent=v,t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=O,t.cloneElement=function(e,t,n){if(null==e)throw Error(f(267,e));var a=r({},e.props),i=e.key,s=e.ref,c=e._owner;if(null!=t){if(void 0!==t.ref&&(s=t.ref,c=w.current),void 0!==t.key&&(i=""+t.key),e.type&&e.type.defaultProps)var l=e.type.defaultProps;for(u in t)k.call(t,u)&&!x.hasOwnProperty(u)&&(a[u]=void 0===t[u]&&void 0!==l?l[u]:t[u])}var u=arguments.length-2;if(1===u)a.children=n;else if(1<u){l=Array(u);for(var d=0;d<u;d++)l[d]=arguments[d+2];a.children=l}return{$$typeof:o,type:e.type,key:i,ref:s,props:a,_owner:c}},t.createContext=function(e,t){return void 0===t&&(t=null),(e={$$typeof:s,_calculateChangedBits:t,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null}).Provider={$$typeof:i,_context:e},e.Consumer=e},t.createElement=E,t.createFactory=function(e){var t=E.bind(null,e);return t.type=e,t},t.createRef=function(){return{current:null}},t.forwardRef=function(e){return{$$typeof:c,render:e}},t.isValidElement=_,t.lazy=function(e){return{$$typeof:u,_payload:{_status:-1,_result:e},_init:q}},t.memo=function(e,t){return{$$typeof:l,type:e,compare:void 0===t?null:t}},t.useCallback=function(e,t){return R().useCallback(e,t)},t.useContext=function(e,t){return R().useContext(e,t)},t.useDebugValue=function(){},t.useEffect=function(e,t){return R().useEffect(e,t)},t.useImperativeHandle=function(e,t,n){return R().useImperativeHandle(e,t,n)},t.useLayoutEffect=function(e,t){return R().useLayoutEffect(e,t)},t.useMemo=function(e,t){return R().useMemo(e,t)},t.useReducer=function(e,t,n){return R().useReducer(e,t,n)},t.useRef=function(e){return R().useRef(e)},t.useState=function(e){return R().useState(e)},t.version="17.0.2"},96540:(e,t,n)=>{"use strict";e.exports=n(15287)},7463:(e,t)=>{"use strict";var n,r,o,a;if("object"==typeof performance&&"function"==typeof performance.now){var i=performance;t.unstable_now=function(){return i.now()}}else{var s=Date,c=s.now();t.unstable_now=function(){return s.now()-c}}if("undefined"==typeof window||"function"!=typeof MessageChannel){var l=null,u=null,d=function(){if(null!==l)try{var e=t.unstable_now();l(!0,e),l=null}catch(n){throw setTimeout(d,0),n}};n=function(e){null!==l?setTimeout(n,0,e):(l=e,setTimeout(d,0))},r=function(e,t){u=setTimeout(e,t)},o=function(){clearTimeout(u)},t.unstable_shouldYield=function(){return!1},a=t.unstable_forceFrameRate=function(){}}else{var p=window.setTimeout,f=window.clearTimeout;if("undefined"!=typeof console){var m=window.cancelAnimationFrame;"function"!=typeof window.requestAnimationFrame&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills"),"function"!=typeof m&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills")}var h=!1,g=null,b=-1,v=5,y=0;t.unstable_shouldYield=function(){return t.unstable_now()>=y},a=function(){},t.unstable_forceFrameRate=function(e){0>e||125<e?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):v=0<e?Math.floor(1e3/e):5};var w=new MessageChannel,k=w.port2;w.port1.onmessage=function(){if(null!==g){var e=t.unstable_now();y=e+v;try{g(!0,e)?k.postMessage(null):(h=!1,g=null)}catch(n){throw k.postMessage(null),n}}else h=!1},n=function(e){g=e,h||(h=!0,k.postMessage(null))},r=function(e,n){b=p((function(){e(t.unstable_now())}),n)},o=function(){f(b),b=-1}}function x(e,t){var n=e.length;e.push(t);e:for(;;){var r=n-1>>>1,o=e[r];if(!(void 0!==o&&0<S(o,t)))break e;e[r]=t,e[n]=o,n=r}}function E(e){return void 0===(e=e[0])?null:e}function _(e){var t=e[0];if(void 0!==t){var n=e.pop();if(n!==t){e[0]=n;e:for(var r=0,o=e.length;r<o;){var a=2*(r+1)-1,i=e[a],s=a+1,c=e[s];if(void 0!==i&&0>S(i,n))void 0!==c&&0>S(c,i)?(e[r]=c,e[s]=n,r=s):(e[r]=i,e[a]=n,r=a);else{if(!(void 0!==c&&0>S(c,n)))break e;e[r]=c,e[s]=n,r=s}}}return t}return null}function S(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}var A=[],C=[],T=1,q=null,N=3,R=!1,O=!1,L=!1;function P(e){for(var t=E(C);null!==t;){if(null===t.callback)_(C);else{if(!(t.startTime<=e))break;_(C),t.sortIndex=t.expirationTime,x(A,t)}t=E(C)}}function I(e){if(L=!1,P(e),!O)if(null!==E(A))O=!0,n(D);else{var t=E(C);null!==t&&r(I,t.startTime-e)}}function D(e,n){O=!1,L&&(L=!1,o()),R=!0;var a=N;try{for(P(n),q=E(A);null!==q&&(!(q.expirationTime>n)||e&&!t.unstable_shouldYield());){var i=q.callback;if("function"==typeof i){q.callback=null,N=q.priorityLevel;var s=i(q.expirationTime<=n);n=t.unstable_now(),"function"==typeof s?q.callback=s:q===E(A)&&_(A),P(n)}else _(A);q=E(A)}if(null!==q)var c=!0;else{var l=E(C);null!==l&&r(I,l.startTime-n),c=!1}return c}finally{q=null,N=a,R=!1}}var M=a;t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(e){e.callback=null},t.unstable_continueExecution=function(){O||R||(O=!0,n(D))},t.unstable_getCurrentPriorityLevel=function(){return N},t.unstable_getFirstCallbackNode=function(){return E(A)},t.unstable_next=function(e){switch(N){case 1:case 2:case 3:var t=3;break;default:t=N}var n=N;N=t;try{return e()}finally{N=n}},t.unstable_pauseExecution=function(){},t.unstable_requestPaint=M,t.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=N;N=e;try{return t()}finally{N=n}},t.unstable_scheduleCallback=function(e,a,i){var s=t.unstable_now();switch("object"==typeof i&&null!==i?i="number"==typeof(i=i.delay)&&0<i?s+i:s:i=s,e){case 1:var c=-1;break;case 2:c=250;break;case 5:c=1073741823;break;case 4:c=1e4;break;default:c=5e3}return e={id:T++,callback:a,priorityLevel:e,startTime:i,expirationTime:c=i+c,sortIndex:-1},i>s?(e.sortIndex=i,x(C,e),null===E(A)&&e===E(C)&&(L?o():L=!0,r(I,i-s))):(e.sortIndex=c,x(A,e),O||R||(O=!0,n(D))),e},t.unstable_wrapCallback=function(e){var t=N;return function(){var n=N;N=t;try{return e.apply(this,arguments)}finally{N=n}}}},69982:(e,t,n)=>{"use strict";e.exports=n(7463)},2833:e=>{e.exports=function(e,t,n,r){var o=n?n.call(r,e,t):void 0;if(void 0!==o)return!!o;if(e===t)return!0;if("object"!=typeof e||!e||"object"!=typeof t||!t)return!1;var a=Object.keys(e),i=Object.keys(t);if(a.length!==i.length)return!1;for(var s=Object.prototype.hasOwnProperty.bind(t),c=0;c<a.length;c++){var l=a[c];if(!s(l))return!1;var u=e[l],d=t[l];if(!1===(o=n?n.call(r,u,d,l):void 0)||void 0===o&&u!==d)return!1}return!0}},1063:(e,t,n)=>{"use strict";var r=n(96540);var o="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},a=r.useState,i=r.useEffect,s=r.useLayoutEffect,c=r.useDebugValue;function l(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!o(e,n)}catch(r){return!0}}var u="undefined"==typeof window||void 0===window.document||void 0===window.document.createElement?function(e,t){return t()}:function(e,t){var n=t(),r=a({inst:{value:n,getSnapshot:t}}),o=r[0].inst,u=r[1];return s((function(){o.value=n,o.getSnapshot=t,l(o)&&u({inst:o})}),[e,n,t]),i((function(){return l(o)&&u({inst:o}),e((function(){l(o)&&u({inst:o})}))}),[e]),c(n),n};t.useSyncExternalStore=void 0!==r.useSyncExternalStore?r.useSyncExternalStore:u},19888:(e,t,n)=>{"use strict";e.exports=n(1063)},4784:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={title:"Apache\xae Druid",tagline:"A fast analytical database",url:"https://druid.apache.org",baseUrl:"/",organizationName:"Apache\xae",projectName:"ApacheDruid",scripts:["https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.4/clipboard.min.js"],stylesheets:["https://use.fontawesome.com/releases/v5.7.2/css/all.css"],favicon:"img/favicon.png",customFields:{disableHeaderTitle:!0},onBrokenLinks:"log",onBrokenMarkdownLinks:"log",markdown:{mermaid:!0},presets:[["@docusaurus/preset-classic",{docs:{showLastUpdateAuthor:!1,showLastUpdateTime:!1,exclude:["**incubating/**"],path:"./docs/29.0.0",routeBasePath:"/docs/29.0.0",sidebarPath:"./sidebars.json"},theme:{customCss:["./src/css/customTheme.css","./src/css/index.css"]},gtag:{trackingID:"UA-131010415-1"}}]],plugins:[["@docusaurus/plugin-client-redirects",{fromExtensions:["html"],redirects:[{from:["/docs/29.0.0/configuration/auth.html","/docs/29.0.0/design/auth.html"],to:"/docs/29.0.0/operations/auth"},{from:["/docs/29.0.0/configuration/broker.html","/docs/29.0.0/configuration/caching.html","/docs/29.0.0/configuration/coordinator.html","/docs/29.0.0/configuration/historical.html","/docs/29.0.0/configuration/indexing-service.html","/docs/29.0.0/development/extensions-core/caffeine-cache.html"],to:"/docs/29.0.0/configuration/"},{from:"/docs/29.0.0/configuration/hadoop.html",to:"/docs/29.0.0/ingestion/hadoop"},{from:["/docs/29.0.0/configuration/production-cluster.html","/docs/29.0.0/configuration/simple-cluster.html","/docs/29.0.0/misc/cluster-setup.html","/docs/29.0.0/misc/evaluate.html"],to:"/docs/29.0.0/tutorials/cluster"},{from:["/docs/29.0.0/configuration/realtime.html","/docs/29.0.0/design/plumber.html","/docs/29.0.0/design/realtime.html","/docs/29.0.0/development/extensions-contrib/kafka-simple.html","/docs/29.0.0/development/extensions-contrib/rabbitmq.html","/docs/29.0.0/development/extensions-contrib/rocketmq.html","/docs/29.0.0/development/extensions-core/kafka-eight-firehose.html","/docs/29.0.0/ingestion/stream-pull.html"],to:"/docs/29.0.0/ingestion/standalone-realtime"},{from:["/docs/29.0.0/configuration/zookeeper.html","/docs/29.0.0/dependencies/zookeeper.html"],to:"/docs/29.0.0/design/zookeeper"},{from:"/docs/29.0.0/dependencies/cassandra-deep-storage.html",to:"/docs/29.0.0/development/extensions-contrib/cassandra"},{from:["/docs/29.0.0/design/concepts-and-terminology.html","/docs/29.0.0/design/design.html","/docs/29.0.0/ingestion/batch-ingestion.html","/docs/29.0.0/ingestion/hadoop-vs-native-batch.html","/docs/29.0.0/ingestion/ingestion.html","/docs/29.0.0/ingestion/overview.html","/docs/29.0.0/ingestion/realtime-ingestion.html","/docs/29.0.0/ingestion/stream-ingestion.html","/docs/29.0.0/tutorials/examples.html","/docs/29.0.0/tutorials/ingestion-streams.html","/docs/29.0.0/tutorials/ingestion.html","/docs/29.0.0/tutorials/quickstart.html","/docs/29.0.0/tutorials/tutorial-a-first-look-at-druid.html","/docs/29.0.0/tutorials/tutorial-all-about-queries.html"],to:"/docs/29.0.0/design/"},{from:"/docs/29.0.0/development/approximate-histograms.html",to:"/docs/29.0.0/development/extensions-core/approximate-histograms"},{from:"/docs/29.0.0/development/community-extensions/azure.html",to:"/docs/29.0.0/development/extensions-core/azure"},{from:"/docs/29.0.0/development/community-extensions/cassandra.html",to:"/docs/29.0.0/development/extensions-contrib/cassandra"},{from:"/docs/29.0.0/development/community-extensions/cloudfiles.html",to:"/docs/29.0.0/development/extensions-contrib/cloudfiles"},{from:"/docs/29.0.0/development/community-extensions/graphite.html",to:"/docs/29.0.0/development/extensions-contrib/graphite"},{from:["/docs/29.0.0/development/community-extensions/kafka-simple.html","/docs/29.0.0/development/community-extensions/rabbitmq.html","/docs/29.0.0/development/kafka-simple-consumer-firehose.html","/docs/29.0.0/development/extensions-core/kafka-supervisor-operations.html","/docs/29.0.0/development/extensions-core/kafka-supervisor-reference.html"],to:"/docs/29.0.0/ingestion/kafka-ingestion"},{from:"/docs/29.0.0/development/extensions-core/kinesis-ingestion.html",to:"/docs/29.0.0/ingestion/kinesis-ingestion"},{from:"/docs/29.0.0/development/extensions-contrib/orc.html",to:"/docs/29.0.0/development/extensions-core/orc"},{from:"/docs/29.0.0/development/extensions-contrib/parquet.html",to:"/docs/29.0.0/development/extensions-core/parquet"},{from:"/docs/29.0.0/development/extensions-contrib/scan-query.html",to:"/docs/29.0.0/querying/scan-query"},{from:"/docs/29.0.0/development/extensions-core/namespaced-lookup.html",to:"/docs/29.0.0/development/extensions-core/lookups-cached-global"},{from:"/docs/29.0.0/development/indexer.html",to:"/docs/29.0.0/design/indexer"},{from:"/docs/29.0.0/development/router.html",to:"/docs/29.0.0/design/router"},{from:"/docs/29.0.0/development/select-query.html",to:"/docs/29.0.0/querying/select-query"},{from:["/docs/29.0.0/"],to:"/docs/29.0.0/design/"},{from:"/docs/29.0.0/ingestion/automatic-compaction.html",to:"/docs/29.0.0/data-management/automatic-compaction"},{from:"/docs/29.0.0/ingestion/command-line-hadoop-indexer.html",to:"/docs/29.0.0/ingestion/hadoop"},{from:"/docs/29.0.0/ingestion/compaction.html",to:"/docs/29.0.0/data-management/compaction"},{from:"/docs/29.0.0/ingestion/data-management.html",to:"/docs/29.0.0/data-management/"},{from:"/docs/29.0.0/ingestion/delete-data.html",to:"/docs/29.0.0/data-management/delete"},{from:["/docs/29.0.0/ingestion/firehose.html","/docs/29.0.0/ingestion/migrate-from-firehose"],to:"/docs/29.0.0/operations/migrate-from-firehose"},{from:["/docs/29.0.0/ingestion/flatten-json.html","/docs/29.0.0/ingestion/transform-spec.html"],to:"/docs/29.0.0/ingestion/ingestion-spec"},{from:["/docs/29.0.0/ingestion/locking-and-priority.html","/docs/29.0.0/ingestion/misc-tasks.html","/docs/29.0.0/ingestion/reports.html"],to:"/docs/29.0.0/ingestion/tasks"},{from:["/docs/29.0.0/ingestion/native_tasks.html","/docs/29.0.0/ingestion/native-batch-input-sources.html"],to:"/docs/29.0.0/ingestion/input-sources"},{from:"/docs/29.0.0/ingestion/schema-changes.html",to:"/docs/29.0.0/design/segments"},{from:"/docs/29.0.0/ingestion/stream-push.html",to:"/docs/29.0.0/ingestion/tranquility"},{from:"/docs/29.0.0/ingestion/update-existing-data.html",to:"/docs/29.0.0/data-management/update"},{from:"/docs/29.0.0/misc/tasks.html",to:"/docs/29.0.0/ingestion/tasks"},{from:["/docs/29.0.0/operations/including-extensions.html","/docs/29.0.0/development/extensions"],to:"/docs/29.0.0/configuration/extensions"},{from:"/docs/29.0.0/operations/multitenancy.html",to:"/docs/29.0.0/querying/multitenancy"},{from:"/docs/29.0.0/operations/performance-faq.html",to:"/docs/29.0.0/operations/basic-cluster-tuning"},{from:"/docs/29.0.0/querying/optimizations.html",to:"/docs/29.0.0/querying/multi-value-dimensions"},{from:"/docs/29.0.0/querying/searchqueryspec.html",to:"/docs/29.0.0/querying/searchquery"},{from:["/docs/29.0.0/tutorials/booting-a-production-cluster.html","/docs/29.0.0/tutorials/firewall.html","/docs/29.0.0/tutorials/tutorial-the-druid-cluster.html"],to:"/docs/29.0.0/tutorials/cluster"},{from:"/docs/29.0.0/tutorials/tutorial-loading-batch-data.html",to:"/docs/29.0.0/tutorials/tutorial-batch"},{from:"/docs/29.0.0/tutorials/tutorial-loading-streaming-data.html",to:"/docs/29.0.0/tutorials/tutorial-kafka"},{from:"/docs/29.0.0/tutorials/tutorial-tranquility.html",to:"/docs/29.0.0/ingestion/tranquility"},{from:"/docs/29.0.0/development/extensions-contrib/google.html",to:"/docs/29.0.0/development/extensions-core/google"},{from:"/docs/29.0.0/development/integrating-druid-with-other-technologies.html",to:"/docs/29.0.0/ingestion/"},{from:["/docs/29.0.0/operations/druid-console.html","/docs/29.0.0/operations/management-uis.html"],to:"/docs/29.0.0/operations/web-console"},{from:"/docs/29.0.0/operations/recommendations.html",to:"/docs/29.0.0/operations/basic-cluster-tuning"},{from:"/docs/29.0.0/misc/math-expr.html",to:"/docs/29.0.0/querying/math-expr"},{from:"/docs/29.0.0/operations/getting-started",to:"/docs/29.0.0/design/"},{from:"/docs/29.0.0/querying/sql-api.html",to:"/docs/29.0.0/api-reference/sql-api"},{from:"/docs/29.0.0/querying/sql-jdbc.html",to:"/docs/29.0.0/api-reference/sql-jdbc"},{from:"/docs/29.0.0/multi-stage-query/api.html",to:"/docs/29.0.0/api-reference/sql-ingestion-api"},{from:"/docs/29.0.0/operations/api-reference.html",to:"/docs/29.0.0/api-reference/"},{from:"/docs/29.0.0/design/processes.html",to:"/docs/29.0.0/design/architecture"},{from:"/docs/29.0.0/operations/api-reference/",to:"/docs/29.0.0/api-reference/"}]}],"/Users/katyamacedo/Documents/Repos/druid-website-src/node_modules/docusaurus-lunr-search/src/index.js","@docusaurus/theme-mermaid"],themeConfig:{colorMode:{defaultMode:"light",disableSwitch:!0,respectPrefersColorScheme:!1},navbar:{logo:{src:"img/druid_nav.png"},style:"dark",items:[{to:"/technology",label:"Technology",position:"right"},{to:"/use-cases",label:"Use Cases",position:"right"},{to:"/druid-powered",label:"Powered By",position:"right"},{to:"/docs/29.0.0/design/",label:"Docs",position:"right"},{href:"/community/",label:"Community",position:"right"},{label:"Apache\xae",type:"dropdown",position:"right",items:[{href:"https://www.apache.org/",label:"Foundation"},{href:"https://apachecon.com/?ref=druid.apache.org",label:"Events"},{href:"https://www.apache.org/licenses/",label:"License"},{href:"https://www.apache.org/foundation/thanks.html",label:"Thanks"},{href:"https://www.apache.org/security/",label:"Security"},{href:"https://www.apache.org/foundation/sponsorship.html",label:"Sponsorship"}]},{href:"/downloads/",label:"Download",position:"right"}],hideOnScroll:!1},image:"img/druid_nav.png",footer:{links:[],copyright:"Copyright \xa9 2023 Apache Software Foundation. Except where otherwise noted, licensed under CC BY-SA 4.0. Apache Druid, Druid, and the Druid logo are either registered trademarks or trademarks of The Apache Software Foundation in the United States and other countries.",logo:{src:"img/favicon.png"},style:"light"},docs:{versionPersistence:"localStorage",sidebar:{hideable:!1,autoCollapseCategories:!1}},metadata:[],prism:{additionalLanguages:[],theme:{plain:{color:"#bfc7d5",backgroundColor:"#292d3e"},styles:[{types:["comment"],style:{color:"rgb(105, 112, 152)",fontStyle:"italic"}},{types:["string","inserted"],style:{color:"rgb(195, 232, 141)"}},{types:["number"],style:{color:"rgb(247, 140, 108)"}},{types:["builtin","char","constant","function"],style:{color:"rgb(130, 170, 255)"}},{types:["punctuation","selector"],style:{color:"rgb(199, 146, 234)"}},{types:["variable"],style:{color:"rgb(191, 199, 213)"}},{types:["class-name","attr-name"],style:{color:"rgb(255, 203, 107)"}},{types:["tag","deleted"],style:{color:"rgb(255, 85, 114)"}},{types:["operator"],style:{color:"rgb(137, 221, 255)"}},{types:["boolean"],style:{color:"rgb(255, 88, 116)"}},{types:["keyword"],style:{fontStyle:"italic"}},{types:["doctype"],style:{color:"rgb(199, 146, 234)",fontStyle:"italic"}},{types:["namespace"],style:{color:"rgb(178, 204, 214)"}},{types:["url"],style:{color:"rgb(221, 221, 221)"}}]},magicComments:[{className:"theme-code-block-highlighted-line",line:"highlight-next-line",block:{start:"highlight-start",end:"highlight-end"}}]},tableOfContents:{minHeadingLevel:2,maxHeadingLevel:3},mermaid:{theme:{dark:"dark",light:"default"},options:{}}},baseUrlIssueBanner:!0,i18n:{defaultLocale:"en",path:"i18n",locales:["en"],localeConfigs:{}},onDuplicateRoutes:"warn",staticDirectories:["static"],themes:[],headTags:[],clientModules:[],titleDelimiter:"|",noIndex:!1}},58168:(e,t,n)=>{"use strict";function r(){return r=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},r.apply(this,arguments)}n.d(t,{A:()=>r})},77387:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var r=n(63662);function o(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,(0,r.A)(e,t)}},98587:(e,t,n)=>{"use strict";function r(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}n.d(t,{A:()=>r})},63662:(e,t,n)=>{"use strict";function r(e,t){return r=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},r(e,t)}n.d(t,{A:()=>r})},8634:(e,t,n)=>{"use strict";function r(e){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(e)}n.d(t,{A:()=>a});var o=n(63662);function a(){a=function(e,t){return new n(e,void 0,t)};var e=RegExp.prototype,t=new WeakMap;function n(e,r,a){var i=new RegExp(e,r);return t.set(i,a||t.get(e)),(0,o.A)(i,n.prototype)}function i(e,n){var r=t.get(n);return Object.keys(r).reduce((function(t,n){var o=r[n];if("number"==typeof o)t[n]=e[o];else{for(var a=0;void 0===e[o[a]]&&a+1<o.length;)a++;t[n]=e[o[a]]}return t}),Object.create(null))}return function(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,o.A)(e,t)}(n,RegExp),n.prototype.exec=function(t){var n=e.exec.call(this,t);if(n){n.groups=i(n,this);var r=n.indices;r&&(r.groups=i(r,this))}return n},n.prototype[Symbol.replace]=function(n,o){if("string"==typeof o){var a=t.get(this);return e[Symbol.replace].call(this,n,o.replace(/\$<([^>]+)>/g,(function(e,t){var n=a[t];return"$"+(Array.isArray(n)?n.join("$"):n)})))}if("function"==typeof o){var s=this;return e[Symbol.replace].call(this,n,(function(){var e=arguments;return"object"!=r(e[e.length-1])&&(e=[].slice.call(e)).push(i(e,s)),o.apply(this,e)}))}return e[Symbol.replace].call(this,n,o)},a.apply(this,arguments)}},11561:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});var r=!0,o="Invariant failed";function a(e,t){if(!e){if(r)throw new Error(o);var n="function"==typeof t?t():t,a=n?"".concat(o,": ").concat(n):o;throw new Error(a)}}},22654:e=>{"use strict";e.exports={}},84054:e=>{"use strict";e.exports=JSON.parse('{"/blog-8b7":{"__comp":"1f391b9e","__context":{"plugin":"528d63cb"},"content":"a0de97c3"},"/community/-3d9":{"__comp":"1f391b9e","__context":{"plugin":"528d63cb"},"content":"2078bf5c"},"/community/cla-a99":{"__comp":"1f391b9e","__context":{"plugin":"528d63cb"},"content":"eaffe8b7"},"/community/join-slack-db2":{"__comp":"1f391b9e","__context":{"plugin":"528d63cb"},"content":"efa71475"},"/downloads-94b":{"__comp":"1f391b9e","__context":{"plugin":"528d63cb"},"content":"b6d922f1"},"/druid-powered-793":{"__comp":"1f391b9e","__context":{"plugin":"528d63cb"},"content":"dc8d8ba6"},"/faq-538":{"__comp":"1f391b9e","__context":{"plugin":"528d63cb"},"content":"1fd605f7"},"/libraries-f83":{"__comp":"1f391b9e","__context":{"plugin":"528d63cb"},"content":"d6bc9e72"},"/licensing-3a1":{"__comp":"1f391b9e","__context":{"plugin":"528d63cb"},"content":"5b55a31e"},"/technology-da1":{"__comp":"1f391b9e","__context":{"plugin":"528d63cb"},"content":"5bcd0a3f"},"/use-cases-20f":{"__comp":"1f391b9e","__context":{"plugin":"528d63cb"},"content":"e9483372"},"/docs/29.0.0-300":{"__comp":"1be78505","__context":{"plugin":"677c6533"},"versionMetadata":"935f2afb"},"/docs/29.0.0/api-reference/-1b2":{"__comp":"17896441","content":"6979e7da"},"/docs/29.0.0/api-reference/automatic-compaction-api-807":{"__comp":"17896441","content":"aac9aa13"},"/docs/29.0.0/api-reference/data-management-api-842":{"__comp":"17896441","content":"1416f869"},"/docs/29.0.0/api-reference/dynamic-configuration-api-f9b":{"__comp":"17896441","content":"9e519bb2"},"/docs/29.0.0/api-reference/json-querying-api-893":{"__comp":"17896441","content":"2271b53b"},"/docs/29.0.0/api-reference/legacy-metadata-api-93f":{"__comp":"17896441","content":"d20adcc9"},"/docs/29.0.0/api-reference/lookups-api-7c3":{"__comp":"17896441","content":"10f31d44"},"/docs/29.0.0/api-reference/retention-rules-api-e36":{"__comp":"17896441","content":"b2231989"},"/docs/29.0.0/api-reference/service-status-api-013":{"__comp":"17896441","content":"55fdd877"},"/docs/29.0.0/api-reference/sql-api-fa2":{"__comp":"17896441","content":"fc6289eb"},"/docs/29.0.0/api-reference/sql-ingestion-api-b76":{"__comp":"17896441","content":"2006e5b3"},"/docs/29.0.0/api-reference/sql-jdbc-a3f":{"__comp":"17896441","content":"5bb38577"},"/docs/29.0.0/api-reference/supervisor-api-04c":{"__comp":"17896441","content":"1cb29896"},"/docs/29.0.0/api-reference/tasks-api-88c":{"__comp":"17896441","content":"4113b856"},"/docs/29.0.0/comparisons/druid-vs-elasticsearch-10c":{"__comp":"17896441","content":"b647b2cd"},"/docs/29.0.0/comparisons/druid-vs-key-value-300":{"__comp":"17896441","content":"4505fb1c"},"/docs/29.0.0/comparisons/druid-vs-kudu-17f":{"__comp":"17896441","content":"0cbf8c76"},"/docs/29.0.0/comparisons/druid-vs-redshift-f52":{"__comp":"17896441","content":"82593e9b"},"/docs/29.0.0/comparisons/druid-vs-spark-3c1":{"__comp":"17896441","content":"e771c2cf"},"/docs/29.0.0/comparisons/druid-vs-sql-on-hadoop-205":{"__comp":"17896441","content":"c0995780"},"/docs/29.0.0/configuration/-58a":{"__comp":"17896441","content":"3aef39f9"},"/docs/29.0.0/configuration/extensions-e53":{"__comp":"17896441","content":"a25872ab"},"/docs/29.0.0/configuration/human-readable-byte-88a":{"__comp":"17896441","content":"5c6b73c5"},"/docs/29.0.0/configuration/logging-119":{"__comp":"17896441","content":"ba8ae3fa"},"/docs/29.0.0/data-management/-d2f":{"__comp":"17896441","content":"25bf4862"},"/docs/29.0.0/data-management/automatic-compaction-4d7":{"__comp":"17896441","content":"faf0402f"},"/docs/29.0.0/data-management/compaction-9c6":{"__comp":"17896441","content":"c7bb32c0"},"/docs/29.0.0/data-management/delete-fb7":{"__comp":"17896441","content":"c3bd4d0f"},"/docs/29.0.0/data-management/manual-compaction-775":{"__comp":"17896441","content":"af06fdec"},"/docs/29.0.0/data-management/schema-changes-4f0":{"__comp":"17896441","content":"84ac5748"},"/docs/29.0.0/data-management/update-685":{"__comp":"17896441","content":"c704e2c0"},"/docs/29.0.0/design/-1dd":{"__comp":"17896441","content":"68368662"},"/docs/29.0.0/design/architecture-be2":{"__comp":"17896441","content":"a2f5bdb0"},"/docs/29.0.0/design/broker-645":{"__comp":"17896441","content":"c35a7924"},"/docs/29.0.0/design/coordinator-73f":{"__comp":"17896441","content":"dc670d7c"},"/docs/29.0.0/design/deep-storage-016":{"__comp":"17896441","content":"2951a428"},"/docs/29.0.0/design/extensions-contrib/dropwizard-7b3":{"__comp":"17896441","content":"dcd3699e"},"/docs/29.0.0/design/historical-955":{"__comp":"17896441","content":"e7087650"},"/docs/29.0.0/design/indexer-c86":{"__comp":"17896441","content":"d348e71d"},"/docs/29.0.0/design/indexing-service-62c":{"__comp":"17896441","content":"92ec0124"},"/docs/29.0.0/design/metadata-storage-e2e":{"__comp":"17896441","content":"f782f0c3"},"/docs/29.0.0/design/middlemanager-fdb":{"__comp":"17896441","content":"1e55cdad"},"/docs/29.0.0/design/overlord-eec":{"__comp":"17896441","content":"672a9227"},"/docs/29.0.0/design/peons-889":{"__comp":"17896441","content":"c4eaa713"},"/docs/29.0.0/design/router-e22":{"__comp":"17896441","content":"8dd13a4f"},"/docs/29.0.0/design/segments-bda":{"__comp":"17896441","content":"aded680a"},"/docs/29.0.0/design/storage-9c7":{"__comp":"17896441","content":"fac897f3"},"/docs/29.0.0/design/zookeeper-d9e":{"__comp":"17896441","content":"d099cfd7"},"/docs/29.0.0/development/build-1e2":{"__comp":"17896441","content":"9537a24c"},"/docs/29.0.0/development/contribute-to-docs-410":{"__comp":"17896441","content":"92754ac2"},"/docs/29.0.0/development/experimental-0ff":{"__comp":"17896441","content":"5ecd7b94"},"/docs/29.0.0/development/extensions-contrib/aliyun-oss-73f":{"__comp":"17896441","content":"8643da2b"},"/docs/29.0.0/development/extensions-contrib/ambari-metrics-emitter-b0c":{"__comp":"17896441","content":"ac78a47c"},"/docs/29.0.0/development/extensions-contrib/cassandra-f58":{"__comp":"17896441","content":"382081cb"},"/docs/29.0.0/development/extensions-contrib/cloudfiles-ac8":{"__comp":"17896441","content":"b3507710"},"/docs/29.0.0/development/extensions-contrib/compressed-big-decimal-7a4":{"__comp":"17896441","content":"8d1560b6"},"/docs/29.0.0/development/extensions-contrib/ddsketch-quantiles-ed4":{"__comp":"17896441","content":"52c72b17"},"/docs/29.0.0/development/extensions-contrib/delta-lake-758":{"__comp":"17896441","content":"33e3889f"},"/docs/29.0.0/development/extensions-contrib/distinctcount-68f":{"__comp":"17896441","content":"dc3899c8"},"/docs/29.0.0/development/extensions-contrib/gce-extensions-5f7":{"__comp":"17896441","content":"8926f85a"},"/docs/29.0.0/development/extensions-contrib/graphite-5fc":{"__comp":"17896441","content":"ec931258"},"/docs/29.0.0/development/extensions-contrib/iceberg-0ee":{"__comp":"17896441","content":"8abd3472"},"/docs/29.0.0/development/extensions-contrib/influx-34c":{"__comp":"17896441","content":"cc5f8c18"},"/docs/29.0.0/development/extensions-contrib/influxdb-emitter-c86":{"__comp":"17896441","content":"32212b8b"},"/docs/29.0.0/development/extensions-contrib/k8s-jobs-32b":{"__comp":"17896441","content":"73d55dcf"},"/docs/29.0.0/development/extensions-contrib/kafka-emitter-4eb":{"__comp":"17896441","content":"d800148d"},"/docs/29.0.0/development/extensions-contrib/materialized-view-68a":{"__comp":"17896441","content":"b019fc37"},"/docs/29.0.0/development/extensions-contrib/momentsketch-quantiles-866":{"__comp":"17896441","content":"57ee89c0"},"/docs/29.0.0/development/extensions-contrib/moving-average-query-210":{"__comp":"17896441","content":"035ed994"},"/docs/29.0.0/development/extensions-contrib/opentsdb-emitter-7b0":{"__comp":"17896441","content":"fe77072c"},"/docs/29.0.0/development/extensions-contrib/prometheus-b20":{"__comp":"17896441","content":"819280be"},"/docs/29.0.0/development/extensions-contrib/redis-cache-7da":{"__comp":"17896441","content":"14fe9d3d"},"/docs/29.0.0/development/extensions-contrib/spectator-histogram-8ea":{"__comp":"17896441","content":"31f72083"},"/docs/29.0.0/development/extensions-contrib/sqlserver-e06":{"__comp":"17896441","content":"3dc3081e"},"/docs/29.0.0/development/extensions-contrib/statsd-c41":{"__comp":"17896441","content":"94aa3d86"},"/docs/29.0.0/development/extensions-contrib/tdigestsketch-quantiles-c3d":{"__comp":"17896441","content":"b2d97b87"},"/docs/29.0.0/development/extensions-contrib/thrift-249":{"__comp":"17896441","content":"7b942940"},"/docs/29.0.0/development/extensions-contrib/time-min-max-9d0":{"__comp":"17896441","content":"612017ab"},"/docs/29.0.0/development/extensions-core/approximate-histograms-2bd":{"__comp":"17896441","content":"216f5e40"},"/docs/29.0.0/development/extensions-core/avro-c4a":{"__comp":"17896441","content":"e42f7105"},"/docs/29.0.0/development/extensions-core/azure-bf9":{"__comp":"17896441","content":"16cdfe1f"},"/docs/29.0.0/development/extensions-core/bloom-filter-cfc":{"__comp":"17896441","content":"7ac80b3d"},"/docs/29.0.0/development/extensions-core/datasketches-extension-b9a":{"__comp":"17896441","content":"4e063dea"},"/docs/29.0.0/development/extensions-core/datasketches-hll-4c2":{"__comp":"17896441","content":"d09adf36"},"/docs/29.0.0/development/extensions-core/datasketches-kll-9fe":{"__comp":"17896441","content":"ce66ed34"},"/docs/29.0.0/development/extensions-core/datasketches-quantiles-ef3":{"__comp":"17896441","content":"41dbc86e"},"/docs/29.0.0/development/extensions-core/datasketches-theta-f76":{"__comp":"17896441","content":"941133d2"},"/docs/29.0.0/development/extensions-core/datasketches-tuple-9a7":{"__comp":"17896441","content":"28095a7c"},"/docs/29.0.0/development/extensions-core/druid-aws-rds-9f0":{"__comp":"17896441","content":"f3422945"},"/docs/29.0.0/development/extensions-core/druid-basic-security-171":{"__comp":"17896441","content":"b6d914f5"},"/docs/29.0.0/development/extensions-core/druid-kerberos-1e5":{"__comp":"17896441","content":"06621b6d"},"/docs/29.0.0/development/extensions-core/druid-lookups-6b1":{"__comp":"17896441","content":"2c5b6b24"},"/docs/29.0.0/development/extensions-core/druid-pac4j-855":{"__comp":"17896441","content":"9af5fee7"},"/docs/29.0.0/development/extensions-core/druid-ranger-security-67f":{"__comp":"17896441","content":"25bcdfb1"},"/docs/29.0.0/development/extensions-core/examples-6de":{"__comp":"17896441","content":"760e0b1e"},"/docs/29.0.0/development/extensions-core/google-5fe":{"__comp":"17896441","content":"4f22fcc6"},"/docs/29.0.0/development/extensions-core/hdfs-c29":{"__comp":"17896441","content":"e826572d"},"/docs/29.0.0/development/extensions-core/kafka-extraction-namespace-b87":{"__comp":"17896441","content":"404e84a5"},"/docs/29.0.0/development/extensions-core/kubernetes-147":{"__comp":"17896441","content":"b0b17773"},"/docs/29.0.0/development/extensions-core/lookups-cached-global-e88":{"__comp":"17896441","content":"14e10449"},"/docs/29.0.0/development/extensions-core/mysql-db7":{"__comp":"17896441","content":"f7252a63"},"/docs/29.0.0/development/extensions-core/orc-36f":{"__comp":"17896441","content":"547788e1"},"/docs/29.0.0/development/extensions-core/parquet-8d9":{"__comp":"17896441","content":"128e376b"},"/docs/29.0.0/development/extensions-core/postgresql-1fd":{"__comp":"17896441","content":"41b2c32b"},"/docs/29.0.0/development/extensions-core/protobuf-84a":{"__comp":"17896441","content":"5f40121b"},"/docs/29.0.0/development/extensions-core/s3-47a":{"__comp":"17896441","content":"1dbed9b8"},"/docs/29.0.0/development/extensions-core/simple-client-sslcontext-0c9":{"__comp":"17896441","content":"0c870731"},"/docs/29.0.0/development/extensions-core/stats-34d":{"__comp":"17896441","content":"ff6b2e0d"},"/docs/29.0.0/development/extensions-core/test-stats-8dc":{"__comp":"17896441","content":"96217456"},"/docs/29.0.0/development/javascript-3cd":{"__comp":"17896441","content":"11205e05"},"/docs/29.0.0/development/modules-114":{"__comp":"17896441","content":"48151658"},"/docs/29.0.0/development/overview-98c":{"__comp":"17896441","content":"f0b33a95"},"/docs/29.0.0/development/versioning-f32":{"__comp":"17896441","content":"58edcf77"},"/docs/29.0.0/ingestion/-e9e":{"__comp":"17896441","content":"f0e31bc8"},"/docs/29.0.0/ingestion/concurrent-append-replace-df6":{"__comp":"17896441","content":"2c9eea52"},"/docs/29.0.0/ingestion/data-formats-736":{"__comp":"17896441","content":"6f318b00"},"/docs/29.0.0/ingestion/faq-963":{"__comp":"17896441","content":"5eed60db"},"/docs/29.0.0/ingestion/hadoop-e75":{"__comp":"17896441","content":"9636e5c7"},"/docs/29.0.0/ingestion/ingestion-spec-6a3":{"__comp":"17896441","content":"be1891ad"},"/docs/29.0.0/ingestion/input-sources-aaa":{"__comp":"17896441","content":"2cfe4cf6"},"/docs/29.0.0/ingestion/kafka-ingestion-bcd":{"__comp":"17896441","content":"3135cdec"},"/docs/29.0.0/ingestion/kinesis-ingestion-09e":{"__comp":"17896441","content":"72f6be96"},"/docs/29.0.0/ingestion/native-batch-c9c":{"__comp":"17896441","content":"b358c051"},"/docs/29.0.0/ingestion/native-batch-firehose-c38":{"__comp":"17896441","content":"c4a9afd3"},"/docs/29.0.0/ingestion/native-batch-simple-task-15f":{"__comp":"17896441","content":"5fa314af"},"/docs/29.0.0/ingestion/partitioning-8e7":{"__comp":"17896441","content":"39e8690f"},"/docs/29.0.0/ingestion/rollup-34e":{"__comp":"17896441","content":"dec790ad"},"/docs/29.0.0/ingestion/schema-design-52d":{"__comp":"17896441","content":"23d0d62d"},"/docs/29.0.0/ingestion/schema-model-a7a":{"__comp":"17896441","content":"3dc48ea3"},"/docs/29.0.0/ingestion/standalone-realtime-c16":{"__comp":"17896441","content":"349c2143"},"/docs/29.0.0/ingestion/streaming-3ca":{"__comp":"17896441","content":"8c07abe5"},"/docs/29.0.0/ingestion/supervisor-16a":{"__comp":"17896441","content":"ccecb300"},"/docs/29.0.0/ingestion/tasks-447":{"__comp":"17896441","content":"fb0a26d1"},"/docs/29.0.0/ingestion/tranquility-0bf":{"__comp":"17896441","content":"b8e9cb00"},"/docs/29.0.0/misc/papers-and-talks-487":{"__comp":"17896441","content":"cc2b1268"},"/docs/29.0.0/multi-stage-query/-dfe":{"__comp":"17896441","content":"077bf22c"},"/docs/29.0.0/multi-stage-query/concepts-6f6":{"__comp":"17896441","content":"8ea8f2dd"},"/docs/29.0.0/multi-stage-query/examples-c03":{"__comp":"17896441","content":"2af72138"},"/docs/29.0.0/multi-stage-query/known-issues-e2c":{"__comp":"17896441","content":"993fdb06"},"/docs/29.0.0/multi-stage-query/reference-e0e":{"__comp":"17896441","content":"0f521c09"},"/docs/29.0.0/multi-stage-query/security-1e7":{"__comp":"17896441","content":"503ba086"},"/docs/29.0.0/operations/alerts-a85":{"__comp":"17896441","content":"67c671c5"},"/docs/29.0.0/operations/auth-ea7":{"__comp":"17896441","content":"42dd4fd0"},"/docs/29.0.0/operations/auth-ldap-2e1":{"__comp":"17896441","content":"221e2a28"},"/docs/29.0.0/operations/basic-cluster-tuning-bee":{"__comp":"17896441","content":"26f2754c"},"/docs/29.0.0/operations/clean-metadata-store-eb7":{"__comp":"17896441","content":"58b22988"},"/docs/29.0.0/operations/deep-storage-migration-f01":{"__comp":"17896441","content":"fa9c8cab"},"/docs/29.0.0/operations/dump-segment-df0":{"__comp":"17896441","content":"fb83fc4a"},"/docs/29.0.0/operations/durable-storage-6f2":{"__comp":"17896441","content":"f5f3bf76"},"/docs/29.0.0/operations/dynamic-config-provider-813":{"__comp":"17896441","content":"7a4a6d4c"},"/docs/29.0.0/operations/export-metadata-834":{"__comp":"17896441","content":"3ee44481"},"/docs/29.0.0/operations/high-availability-1a1":{"__comp":"17896441","content":"5f8c15b3"},"/docs/29.0.0/operations/http-compression-fe9":{"__comp":"17896441","content":"8e7882e3"},"/docs/29.0.0/operations/insert-segment-to-db-d19":{"__comp":"17896441","content":"0109f7c7"},"/docs/29.0.0/operations/java-756":{"__comp":"17896441","content":"34da69bb"},"/docs/29.0.0/operations/kubernetes-af1":{"__comp":"17896441","content":"268fe099"},"/docs/29.0.0/operations/metadata-migration-9cd":{"__comp":"17896441","content":"008dc6c0"},"/docs/29.0.0/operations/metrics-3f2":{"__comp":"17896441","content":"a0cfed8c"},"/docs/29.0.0/operations/migrate-from-firehose-369":{"__comp":"17896441","content":"47002093"},"/docs/29.0.0/operations/mixed-workloads-e43":{"__comp":"17896441","content":"5a89402e"},"/docs/29.0.0/operations/other-hadoop-ef5":{"__comp":"17896441","content":"dd5c39f7"},"/docs/29.0.0/operations/password-provider-8de":{"__comp":"17896441","content":"e89091c2"},"/docs/29.0.0/operations/pull-deps-3c3":{"__comp":"17896441","content":"9a41d3c9"},"/docs/29.0.0/operations/request-logging-2d8":{"__comp":"17896441","content":"175147d3"},"/docs/29.0.0/operations/reset-cluster-d3f":{"__comp":"17896441","content":"ff52e0a2"},"/docs/29.0.0/operations/rolling-updates-1a4":{"__comp":"17896441","content":"1871b932"},"/docs/29.0.0/operations/rule-configuration-093":{"__comp":"17896441","content":"c5224f77"},"/docs/29.0.0/operations/security-overview-57b":{"__comp":"17896441","content":"69bee408"},"/docs/29.0.0/operations/security-user-auth-fc0":{"__comp":"17896441","content":"782e3668"},"/docs/29.0.0/operations/segment-optimization-0cc":{"__comp":"17896441","content":"c87bd0b3"},"/docs/29.0.0/operations/single-server-3df":{"__comp":"17896441","content":"fab582b2"},"/docs/29.0.0/operations/tls-support-731":{"__comp":"17896441","content":"6cdb5461"},"/docs/29.0.0/operations/use_sbt_to_build_fat_jar-f6f":{"__comp":"17896441","content":"0f59f104"},"/docs/29.0.0/operations/web-console-208":{"__comp":"17896441","content":"a1bd808f"},"/docs/29.0.0/querying/-317":{"__comp":"17896441","content":"457e0700"},"/docs/29.0.0/querying/aggregations-962":{"__comp":"17896441","content":"5a722b3b"},"/docs/29.0.0/querying/arrays-eef":{"__comp":"17896441","content":"67933092"},"/docs/29.0.0/querying/caching-655":{"__comp":"17896441","content":"cff5438d"},"/docs/29.0.0/querying/datasource-7ce":{"__comp":"17896441","content":"7bfab197"},"/docs/29.0.0/querying/datasourcemetadataquery-757":{"__comp":"17896441","content":"ce3c7d34"},"/docs/29.0.0/querying/dimensionspecs-ae5":{"__comp":"17896441","content":"5ddf27b8"},"/docs/29.0.0/querying/filters-dd8":{"__comp":"17896441","content":"71b76a87"},"/docs/29.0.0/querying/geo-a81":{"__comp":"17896441","content":"8bf451e3"},"/docs/29.0.0/querying/granularities-d84":{"__comp":"17896441","content":"bbfa20a6"},"/docs/29.0.0/querying/groupbyquery-d54":{"__comp":"17896441","content":"8a6a3c86"},"/docs/29.0.0/querying/having-d87":{"__comp":"17896441","content":"1fb9f5aa"},"/docs/29.0.0/querying/hll-old-709":{"__comp":"17896441","content":"8a6641d6"},"/docs/29.0.0/querying/joins-765":{"__comp":"17896441","content":"0ae1be71"},"/docs/29.0.0/querying/limitspec-716":{"__comp":"17896441","content":"82732c32"},"/docs/29.0.0/querying/lookups-82c":{"__comp":"17896441","content":"0591e968"},"/docs/29.0.0/querying/math-expr-2c4":{"__comp":"17896441","content":"dd5346cc"},"/docs/29.0.0/querying/multi-value-dimensions-89b":{"__comp":"17896441","content":"315053d0"},"/docs/29.0.0/querying/multitenancy-ae8":{"__comp":"17896441","content":"a8e19f39"},"/docs/29.0.0/querying/nested-columns-27c":{"__comp":"17896441","content":"05f6bd73"},"/docs/29.0.0/querying/post-aggregations-e8e":{"__comp":"17896441","content":"fc3af10a"},"/docs/29.0.0/querying/query-context-ffa":{"__comp":"17896441","content":"7f7ce349"},"/docs/29.0.0/querying/query-deep-storage-026":{"__comp":"17896441","content":"ecf09596"},"/docs/29.0.0/querying/query-execution-dfb":{"__comp":"17896441","content":"6547e5cb"},"/docs/29.0.0/querying/query-processing-eec":{"__comp":"17896441","content":"4ec2c662"},"/docs/29.0.0/querying/scan-query-ddc":{"__comp":"17896441","content":"a2b332f7"},"/docs/29.0.0/querying/searchquery-abb":{"__comp":"17896441","content":"ab897d12"},"/docs/29.0.0/querying/segmentmetadataquery-651":{"__comp":"17896441","content":"bd17f600"},"/docs/29.0.0/querying/select-query-fcf":{"__comp":"17896441","content":"81985269"},"/docs/29.0.0/querying/sorting-orders-1cb":{"__comp":"17896441","content":"a0538546"},"/docs/29.0.0/querying/sql-eb2":{"__comp":"17896441","content":"f8ca60be"},"/docs/29.0.0/querying/sql-aggregations-875":{"__comp":"17896441","content":"32256df4"},"/docs/29.0.0/querying/sql-array-functions-b67":{"__comp":"17896441","content":"58874471"},"/docs/29.0.0/querying/sql-data-types-384":{"__comp":"17896441","content":"5bf6e863"},"/docs/29.0.0/querying/sql-functions-580":{"__comp":"17896441","content":"77f0d0af"},"/docs/29.0.0/querying/sql-json-functions-96b":{"__comp":"17896441","content":"a1d693f4"},"/docs/29.0.0/querying/sql-metadata-tables-478":{"__comp":"17896441","content":"054cf69c"},"/docs/29.0.0/querying/sql-multivalue-string-functions-0c0":{"__comp":"17896441","content":"27930202"},"/docs/29.0.0/querying/sql-operators-a50":{"__comp":"17896441","content":"b174ad29"},"/docs/29.0.0/querying/sql-query-context-a8e":{"__comp":"17896441","content":"3df53c0b"},"/docs/29.0.0/querying/sql-scalar-ce8":{"__comp":"17896441","content":"ee0b5f0e"},"/docs/29.0.0/querying/sql-translation-f87":{"__comp":"17896441","content":"d10cff76"},"/docs/29.0.0/querying/sql-window-functions-baf":{"__comp":"17896441","content":"caadb9e4"},"/docs/29.0.0/querying/timeboundaryquery-148":{"__comp":"17896441","content":"6d526f5c"},"/docs/29.0.0/querying/timeseriesquery-e78":{"__comp":"17896441","content":"cd770d37"},"/docs/29.0.0/querying/tips-good-queries-3b5":{"__comp":"17896441","content":"4d24b7c4"},"/docs/29.0.0/querying/topnmetricspec-9cf":{"__comp":"17896441","content":"0c347cbc"},"/docs/29.0.0/querying/topnquery-55d":{"__comp":"17896441","content":"7ddaea69"},"/docs/29.0.0/querying/troubleshooting-9ea":{"__comp":"17896441","content":"0bbc3844"},"/docs/29.0.0/querying/using-caching-b9f":{"__comp":"17896441","content":"feb31aca"},"/docs/29.0.0/querying/virtual-columns-e91":{"__comp":"17896441","content":"3850f2cd"},"/docs/29.0.0/release-info/release-notes-d56":{"__comp":"17896441","content":"285d2efe"},"/docs/29.0.0/release-info/upgrade-notes-8f6":{"__comp":"17896441","content":"866dea45"},"/docs/29.0.0/tutorials/-113":{"__comp":"17896441","content":"50d798df"},"/docs/29.0.0/tutorials/cluster-430":{"__comp":"17896441","content":"e7f0645b"},"/docs/29.0.0/tutorials/docker-e47":{"__comp":"17896441","content":"86ff69a9"},"/docs/29.0.0/tutorials/tutorial-batch-303":{"__comp":"17896441","content":"91b90c19"},"/docs/29.0.0/tutorials/tutorial-batch-hadoop-805":{"__comp":"17896441","content":"2fdfe072"},"/docs/29.0.0/tutorials/tutorial-batch-native-549":{"__comp":"17896441","content":"9c46ead5"},"/docs/29.0.0/tutorials/tutorial-compaction-695":{"__comp":"17896441","content":"b213d090"},"/docs/29.0.0/tutorials/tutorial-delete-data-6e0":{"__comp":"17896441","content":"2d2555e5"},"/docs/29.0.0/tutorials/tutorial-ingestion-spec-1b0":{"__comp":"17896441","content":"05b5ec86"},"/docs/29.0.0/tutorials/tutorial-jdbc-4b4":{"__comp":"17896441","content":"c971ecb2"},"/docs/29.0.0/tutorials/tutorial-kafka-9d3":{"__comp":"17896441","content":"84fd1959"},"/docs/29.0.0/tutorials/tutorial-kerberos-hadoop-38b":{"__comp":"17896441","content":"3fdeab71"},"/docs/29.0.0/tutorials/tutorial-msq-convert-spec-9dd":{"__comp":"17896441","content":"2d6cfe83"},"/docs/29.0.0/tutorials/tutorial-msq-extern-8d4":{"__comp":"17896441","content":"b75463b7"},"/docs/29.0.0/tutorials/tutorial-query-962":{"__comp":"17896441","content":"fa98c789"},"/docs/29.0.0/tutorials/tutorial-query-deep-storage-6b6":{"__comp":"17896441","content":"fe8f4de1"},"/docs/29.0.0/tutorials/tutorial-retention-e3f":{"__comp":"17896441","content":"7db7c644"},"/docs/29.0.0/tutorials/tutorial-rollup-423":{"__comp":"17896441","content":"504b36f7"},"/docs/29.0.0/tutorials/tutorial-sketches-theta-0ce":{"__comp":"17896441","content":"60f9804e"},"/docs/29.0.0/tutorials/tutorial-sql-query-view-da1":{"__comp":"17896441","content":"9b520f78"},"/docs/29.0.0/tutorials/tutorial-transform-spec-ae4":{"__comp":"17896441","content":"f601ecc3"},"/docs/29.0.0/tutorials/tutorial-unnest-arrays-d4d":{"__comp":"17896441","content":"7761ea0c"},"/docs/29.0.0/tutorials/tutorial-update-data-26c":{"__comp":"17896441","content":"90a27bdd"},"/-439":{"__comp":"c4f5d8e4","__context":{"plugin":"528d63cb"},"config":"5e9f5e1a"}}')}},e=>{e.O(0,[1869],(()=>{return t=38536,e(e.s=t);var t}));e.O()}]);