From 9c513e67fcab2cd65b8745d5791bc825154d8801 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Olle=20T=C3=B6rnstr=C3=B6m?= Date: Wed, 10 Jul 2024 19:38:57 +0200 Subject: [PATCH] Updates --- 404.html | 8 ++++---- apidocs/allclasses-index.html | 2 +- apidocs/allpackages-index.html | 2 +- .../queryresponse/ChainingQueryBuilder.html | 2 +- .../ChainingResponseBuilder.html | 2 +- .../queryresponse/EnableQueryResponse.html | 2 +- .../queryresponse/QueryBuilder.html | 2 +- ...gurationProperties.ExchangeProperties.html | 2 +- ...nfigurationProperties.QueueProperties.html | 2 +- ...nfigurationProperties.StatsProperties.html | 2 +- .../QueryResponseConfigurationProperties.html | 2 +- .../QueryResponseTopicExchange.html | 2 +- .../queryresponse/ResponseBuilder.html | 2 +- .../class-use/ChainingQueryBuilder.html | 2 +- .../class-use/ChainingResponseBuilder.html | 2 +- .../class-use/EnableQueryResponse.html | 2 +- .../queryresponse/class-use/QueryBuilder.html | 2 +- ...gurationProperties.ExchangeProperties.html | 2 +- ...nfigurationProperties.QueueProperties.html | 2 +- ...nfigurationProperties.StatsProperties.html | 2 +- .../QueryResponseConfigurationProperties.html | 2 +- .../class-use/QueryResponseTopicExchange.html | 2 +- .../class-use/ResponseBuilder.html | 2 +- .../queryresponse/package-summary.html | 2 +- .../queryresponse/package-tree.html | 2 +- .../queryresponse/package-use.html | 2 +- .../queryresponse/util/DurationFormatter.html | 2 +- .../queryresponse/util/Logging.html | 2 +- .../util/class-use/DurationFormatter.html | 2 +- .../queryresponse/util/class-use/Logging.html | 2 +- .../queryresponse/util/package-summary.html | 2 +- .../queryresponse/util/package-tree.html | 2 +- .../queryresponse/util/package-use.html | 2 +- apidocs/help-doc.html | 2 +- apidocs/index-all.html | 2 +- apidocs/index.html | 2 +- apidocs/overview-summary.html | 2 +- apidocs/overview-tree.html | 2 +- assets/{app.C8jsIngX.js => app.BrXsOnQG.js} | 2 +- .../chunks/@localSearchIndexroot.BQZxt9wH.js | 1 - .../chunks/@localSearchIndexroot.i1jxvErO.js | 1 + ...91UrCK.js => VPLocalSearchBox.I8Z1Bueb.js} | 2 +- ...work.Bsyxd66g.js => framework.BLMDJhiA.js} | 2 +- .../{theme.BR1y9Ihb.js => theme.DHmPbZv7.js} | 4 ++-- ...s => guide_getting-started.md.BNqf6LR1.js} | 2 +- ...guide_getting-started.md.BNqf6LR1.lean.js} | 2 +- ...uide_the-example-revisited.md.CPfN9cTx.js} | 2 +- ...the-example-revisited.md.CPfN9cTx.lean.js} | 2 +- ...ide_what-is-query-response.md.BgwoPFLM.js} | 2 +- ...hat-is-query-response.md.BgwoPFLM.lean.js} | 2 +- ...ex.md.CyLvXN9L.js => index.md.B8Ay4yEG.js} | 2 +- ...XN9L.lean.js => index.md.B8Ay4yEG.lean.js} | 2 +- ...rence_developers-reference.md.APR1fw3k.js} | 2 +- ..._developers-reference.md.APR1fw3k.lean.js} | 2 +- ...ry-response-maturity-model.md.B_1-RK-U.js} | 2 +- ...sponse-maturity-model.md.B_1-RK-U.lean.js} | 2 +- ...he-query-response-protocol.md.B-gp6A0B.js} | 2 +- ...ery-response-protocol.md.B-gp6A0B.lean.js} | 2 +- assets/style.CF5YbA3u.css | 1 + assets/style.oEQWuhUi.css | 1 - guide/getting-started.html | 20 +++++++++---------- guide/the-example-revisited.html | 18 ++++++++--------- guide/what-is-query-response.html | 18 ++++++++--------- hashmap.json | 2 +- index.html | 16 +++++++-------- reference/developers-reference.html | 20 +++++++++---------- reference/query-response-maturity-model.html | 16 +++++++-------- reference/the-query-response-protocol.html | 16 +++++++-------- 68 files changed, 125 insertions(+), 125 deletions(-) rename assets/{app.C8jsIngX.js => app.BrXsOnQG.js} (90%) delete mode 100644 assets/chunks/@localSearchIndexroot.BQZxt9wH.js create mode 100644 assets/chunks/@localSearchIndexroot.i1jxvErO.js rename assets/chunks/{VPLocalSearchBox.Ch91UrCK.js => VPLocalSearchBox.I8Z1Bueb.js} (99%) rename assets/chunks/{framework.Bsyxd66g.js => framework.BLMDJhiA.js} (74%) rename assets/chunks/{theme.BR1y9Ihb.js => theme.DHmPbZv7.js} (99%) rename assets/{guide_getting-started.md.uGm_l1Pi.js => guide_getting-started.md.BNqf6LR1.js} (99%) rename assets/{guide_getting-started.md.uGm_l1Pi.lean.js => guide_getting-started.md.BNqf6LR1.lean.js} (96%) rename assets/{guide_the-example-revisited.md.C9Mmb3Cs.js => guide_the-example-revisited.md.CPfN9cTx.js} (98%) rename assets/{guide_the-example-revisited.md.C9Mmb3Cs.lean.js => guide_the-example-revisited.md.CPfN9cTx.lean.js} (73%) rename assets/{guide_what-is-query-response.md.BDbJBI_F.js => guide_what-is-query-response.md.BgwoPFLM.js} (99%) rename assets/{guide_what-is-query-response.md.BDbJBI_F.lean.js => guide_what-is-query-response.md.BgwoPFLM.lean.js} (74%) rename assets/{index.md.CyLvXN9L.js => index.md.B8Ay4yEG.js} (98%) rename assets/{index.md.CyLvXN9L.lean.js => index.md.B8Ay4yEG.lean.js} (98%) rename assets/{reference_developers-reference.md.DgStbDgc.js => reference_developers-reference.md.APR1fw3k.js} (99%) rename assets/{reference_developers-reference.md.DgStbDgc.lean.js => reference_developers-reference.md.APR1fw3k.lean.js} (96%) rename assets/{reference_query-response-maturity-model.md.CYdPkauy.js => reference_query-response-maturity-model.md.B_1-RK-U.js} (97%) rename assets/{reference_query-response-maturity-model.md.CYdPkauy.lean.js => reference_query-response-maturity-model.md.B_1-RK-U.lean.js} (75%) rename assets/{reference_the-query-response-protocol.md.5jCLnaSz.js => reference_the-query-response-protocol.md.B-gp6A0B.js} (98%) rename assets/{reference_the-query-response-protocol.md.5jCLnaSz.lean.js => reference_the-query-response-protocol.md.B-gp6A0B.lean.js} (74%) create mode 100644 assets/style.CF5YbA3u.css delete mode 100644 assets/style.oEQWuhUi.css diff --git a/404.html b/404.html index f9019a6..c196fa5 100644 --- a/404.html +++ b/404.html @@ -6,16 +6,16 @@ 404 | Query/Response - + - - + +
- + \ No newline at end of file diff --git a/apidocs/allclasses-index.html b/apidocs/allclasses-index.html index 264d5ec..f0ef4db 100644 --- a/apidocs/allclasses-index.html +++ b/apidocs/allclasses-index.html @@ -1,7 +1,7 @@ - + All Classes and Interfaces (Query/Response for Spring AMQP 0.9.0-SB3_0_3-SNAPSHOT API) diff --git a/apidocs/allpackages-index.html b/apidocs/allpackages-index.html index 1af6304..2972cc4 100644 --- a/apidocs/allpackages-index.html +++ b/apidocs/allpackages-index.html @@ -1,7 +1,7 @@ - + All Packages (Query/Response for Spring AMQP 0.9.0-SB3_0_3-SNAPSHOT API) diff --git a/apidocs/com/studiomediatech/queryresponse/ChainingQueryBuilder.html b/apidocs/com/studiomediatech/queryresponse/ChainingQueryBuilder.html index 0b1c410..9169606 100644 --- a/apidocs/com/studiomediatech/queryresponse/ChainingQueryBuilder.html +++ b/apidocs/com/studiomediatech/queryresponse/ChainingQueryBuilder.html @@ -1,7 +1,7 @@ - + ChainingQueryBuilder (Query/Response for Spring AMQP 0.9.0-SB3_0_3-SNAPSHOT API) diff --git a/apidocs/com/studiomediatech/queryresponse/ChainingResponseBuilder.html b/apidocs/com/studiomediatech/queryresponse/ChainingResponseBuilder.html index 12f315e..517e208 100644 --- a/apidocs/com/studiomediatech/queryresponse/ChainingResponseBuilder.html +++ b/apidocs/com/studiomediatech/queryresponse/ChainingResponseBuilder.html @@ -1,7 +1,7 @@ - + ChainingResponseBuilder (Query/Response for Spring AMQP 0.9.0-SB3_0_3-SNAPSHOT API) diff --git a/apidocs/com/studiomediatech/queryresponse/EnableQueryResponse.html b/apidocs/com/studiomediatech/queryresponse/EnableQueryResponse.html index f90031d..8555a87 100644 --- a/apidocs/com/studiomediatech/queryresponse/EnableQueryResponse.html +++ b/apidocs/com/studiomediatech/queryresponse/EnableQueryResponse.html @@ -1,7 +1,7 @@ - + EnableQueryResponse (Query/Response for Spring AMQP 0.9.0-SB3_0_3-SNAPSHOT API) diff --git a/apidocs/com/studiomediatech/queryresponse/QueryBuilder.html b/apidocs/com/studiomediatech/queryresponse/QueryBuilder.html index 4c276fc..c214af9 100644 --- a/apidocs/com/studiomediatech/queryresponse/QueryBuilder.html +++ b/apidocs/com/studiomediatech/queryresponse/QueryBuilder.html @@ -1,7 +1,7 @@ - + QueryBuilder (Query/Response for Spring AMQP 0.9.0-SB3_0_3-SNAPSHOT API) diff --git a/apidocs/com/studiomediatech/queryresponse/QueryResponseConfigurationProperties.ExchangeProperties.html b/apidocs/com/studiomediatech/queryresponse/QueryResponseConfigurationProperties.ExchangeProperties.html index cf7ebb3..b4ca6cb 100644 --- a/apidocs/com/studiomediatech/queryresponse/QueryResponseConfigurationProperties.ExchangeProperties.html +++ b/apidocs/com/studiomediatech/queryresponse/QueryResponseConfigurationProperties.ExchangeProperties.html @@ -1,7 +1,7 @@ - + QueryResponseConfigurationProperties.ExchangeProperties (Query/Response for Spring AMQP 0.9.0-SB3_0_3-SNAPSHOT API) diff --git a/apidocs/com/studiomediatech/queryresponse/QueryResponseConfigurationProperties.QueueProperties.html b/apidocs/com/studiomediatech/queryresponse/QueryResponseConfigurationProperties.QueueProperties.html index 1ff803f..94c0896 100644 --- a/apidocs/com/studiomediatech/queryresponse/QueryResponseConfigurationProperties.QueueProperties.html +++ b/apidocs/com/studiomediatech/queryresponse/QueryResponseConfigurationProperties.QueueProperties.html @@ -1,7 +1,7 @@ - + QueryResponseConfigurationProperties.QueueProperties (Query/Response for Spring AMQP 0.9.0-SB3_0_3-SNAPSHOT API) diff --git a/apidocs/com/studiomediatech/queryresponse/QueryResponseConfigurationProperties.StatsProperties.html b/apidocs/com/studiomediatech/queryresponse/QueryResponseConfigurationProperties.StatsProperties.html index a867ef1..e2a5c05 100644 --- a/apidocs/com/studiomediatech/queryresponse/QueryResponseConfigurationProperties.StatsProperties.html +++ b/apidocs/com/studiomediatech/queryresponse/QueryResponseConfigurationProperties.StatsProperties.html @@ -1,7 +1,7 @@ - + QueryResponseConfigurationProperties.StatsProperties (Query/Response for Spring AMQP 0.9.0-SB3_0_3-SNAPSHOT API) diff --git a/apidocs/com/studiomediatech/queryresponse/QueryResponseConfigurationProperties.html b/apidocs/com/studiomediatech/queryresponse/QueryResponseConfigurationProperties.html index 3fedf4a..6d17884 100644 --- a/apidocs/com/studiomediatech/queryresponse/QueryResponseConfigurationProperties.html +++ b/apidocs/com/studiomediatech/queryresponse/QueryResponseConfigurationProperties.html @@ -1,7 +1,7 @@ - + QueryResponseConfigurationProperties (Query/Response for Spring AMQP 0.9.0-SB3_0_3-SNAPSHOT API) diff --git a/apidocs/com/studiomediatech/queryresponse/QueryResponseTopicExchange.html b/apidocs/com/studiomediatech/queryresponse/QueryResponseTopicExchange.html index 3235110..67ff44a 100644 --- a/apidocs/com/studiomediatech/queryresponse/QueryResponseTopicExchange.html +++ b/apidocs/com/studiomediatech/queryresponse/QueryResponseTopicExchange.html @@ -1,7 +1,7 @@ - + QueryResponseTopicExchange (Query/Response for Spring AMQP 0.9.0-SB3_0_3-SNAPSHOT API) diff --git a/apidocs/com/studiomediatech/queryresponse/ResponseBuilder.html b/apidocs/com/studiomediatech/queryresponse/ResponseBuilder.html index f196ad3..5d06bbe 100644 --- a/apidocs/com/studiomediatech/queryresponse/ResponseBuilder.html +++ b/apidocs/com/studiomediatech/queryresponse/ResponseBuilder.html @@ -1,7 +1,7 @@ - + ResponseBuilder (Query/Response for Spring AMQP 0.9.0-SB3_0_3-SNAPSHOT API) diff --git a/apidocs/com/studiomediatech/queryresponse/class-use/ChainingQueryBuilder.html b/apidocs/com/studiomediatech/queryresponse/class-use/ChainingQueryBuilder.html index 6dd4b1a..f421670 100644 --- a/apidocs/com/studiomediatech/queryresponse/class-use/ChainingQueryBuilder.html +++ b/apidocs/com/studiomediatech/queryresponse/class-use/ChainingQueryBuilder.html @@ -1,7 +1,7 @@ - + Uses of Class com.studiomediatech.queryresponse.ChainingQueryBuilder (Query/Response for Spring AMQP 0.9.0-SB3_0_3-SNAPSHOT API) diff --git a/apidocs/com/studiomediatech/queryresponse/class-use/ChainingResponseBuilder.html b/apidocs/com/studiomediatech/queryresponse/class-use/ChainingResponseBuilder.html index 6e8c994..edc4a7c 100644 --- a/apidocs/com/studiomediatech/queryresponse/class-use/ChainingResponseBuilder.html +++ b/apidocs/com/studiomediatech/queryresponse/class-use/ChainingResponseBuilder.html @@ -1,7 +1,7 @@ - + Uses of Class com.studiomediatech.queryresponse.ChainingResponseBuilder (Query/Response for Spring AMQP 0.9.0-SB3_0_3-SNAPSHOT API) diff --git a/apidocs/com/studiomediatech/queryresponse/class-use/EnableQueryResponse.html b/apidocs/com/studiomediatech/queryresponse/class-use/EnableQueryResponse.html index 8abdb4b..43d0fd1 100644 --- a/apidocs/com/studiomediatech/queryresponse/class-use/EnableQueryResponse.html +++ b/apidocs/com/studiomediatech/queryresponse/class-use/EnableQueryResponse.html @@ -1,7 +1,7 @@ - + Uses of Annotation Interface com.studiomediatech.queryresponse.EnableQueryResponse (Query/Response for Spring AMQP 0.9.0-SB3_0_3-SNAPSHOT API) diff --git a/apidocs/com/studiomediatech/queryresponse/class-use/QueryBuilder.html b/apidocs/com/studiomediatech/queryresponse/class-use/QueryBuilder.html index a4df58d..a0025a8 100644 --- a/apidocs/com/studiomediatech/queryresponse/class-use/QueryBuilder.html +++ b/apidocs/com/studiomediatech/queryresponse/class-use/QueryBuilder.html @@ -1,7 +1,7 @@ - + Uses of Class com.studiomediatech.queryresponse.QueryBuilder (Query/Response for Spring AMQP 0.9.0-SB3_0_3-SNAPSHOT API) diff --git a/apidocs/com/studiomediatech/queryresponse/class-use/QueryResponseConfigurationProperties.ExchangeProperties.html b/apidocs/com/studiomediatech/queryresponse/class-use/QueryResponseConfigurationProperties.ExchangeProperties.html index 098b1b6..91b42c4 100644 --- a/apidocs/com/studiomediatech/queryresponse/class-use/QueryResponseConfigurationProperties.ExchangeProperties.html +++ b/apidocs/com/studiomediatech/queryresponse/class-use/QueryResponseConfigurationProperties.ExchangeProperties.html @@ -1,7 +1,7 @@ - + Uses of Class com.studiomediatech.queryresponse.QueryResponseConfigurationProperties.ExchangeProperties (Query/Response for Spring AMQP 0.9.0-SB3_0_3-SNAPSHOT API) diff --git a/apidocs/com/studiomediatech/queryresponse/class-use/QueryResponseConfigurationProperties.QueueProperties.html b/apidocs/com/studiomediatech/queryresponse/class-use/QueryResponseConfigurationProperties.QueueProperties.html index 6ef2678..7dba234 100644 --- a/apidocs/com/studiomediatech/queryresponse/class-use/QueryResponseConfigurationProperties.QueueProperties.html +++ b/apidocs/com/studiomediatech/queryresponse/class-use/QueryResponseConfigurationProperties.QueueProperties.html @@ -1,7 +1,7 @@ - + Uses of Class com.studiomediatech.queryresponse.QueryResponseConfigurationProperties.QueueProperties (Query/Response for Spring AMQP 0.9.0-SB3_0_3-SNAPSHOT API) diff --git a/apidocs/com/studiomediatech/queryresponse/class-use/QueryResponseConfigurationProperties.StatsProperties.html b/apidocs/com/studiomediatech/queryresponse/class-use/QueryResponseConfigurationProperties.StatsProperties.html index 6b22a33..70f6ff4 100644 --- a/apidocs/com/studiomediatech/queryresponse/class-use/QueryResponseConfigurationProperties.StatsProperties.html +++ b/apidocs/com/studiomediatech/queryresponse/class-use/QueryResponseConfigurationProperties.StatsProperties.html @@ -1,7 +1,7 @@ - + Uses of Class com.studiomediatech.queryresponse.QueryResponseConfigurationProperties.StatsProperties (Query/Response for Spring AMQP 0.9.0-SB3_0_3-SNAPSHOT API) diff --git a/apidocs/com/studiomediatech/queryresponse/class-use/QueryResponseConfigurationProperties.html b/apidocs/com/studiomediatech/queryresponse/class-use/QueryResponseConfigurationProperties.html index cf311b3..286635f 100644 --- a/apidocs/com/studiomediatech/queryresponse/class-use/QueryResponseConfigurationProperties.html +++ b/apidocs/com/studiomediatech/queryresponse/class-use/QueryResponseConfigurationProperties.html @@ -1,7 +1,7 @@ - + Uses of Class com.studiomediatech.queryresponse.QueryResponseConfigurationProperties (Query/Response for Spring AMQP 0.9.0-SB3_0_3-SNAPSHOT API) diff --git a/apidocs/com/studiomediatech/queryresponse/class-use/QueryResponseTopicExchange.html b/apidocs/com/studiomediatech/queryresponse/class-use/QueryResponseTopicExchange.html index d50fdf1..bfafc0a 100644 --- a/apidocs/com/studiomediatech/queryresponse/class-use/QueryResponseTopicExchange.html +++ b/apidocs/com/studiomediatech/queryresponse/class-use/QueryResponseTopicExchange.html @@ -1,7 +1,7 @@ - + Uses of Class com.studiomediatech.queryresponse.QueryResponseTopicExchange (Query/Response for Spring AMQP 0.9.0-SB3_0_3-SNAPSHOT API) diff --git a/apidocs/com/studiomediatech/queryresponse/class-use/ResponseBuilder.html b/apidocs/com/studiomediatech/queryresponse/class-use/ResponseBuilder.html index 3cbce10..32df9fa 100644 --- a/apidocs/com/studiomediatech/queryresponse/class-use/ResponseBuilder.html +++ b/apidocs/com/studiomediatech/queryresponse/class-use/ResponseBuilder.html @@ -1,7 +1,7 @@ - + Uses of Class com.studiomediatech.queryresponse.ResponseBuilder (Query/Response for Spring AMQP 0.9.0-SB3_0_3-SNAPSHOT API) diff --git a/apidocs/com/studiomediatech/queryresponse/package-summary.html b/apidocs/com/studiomediatech/queryresponse/package-summary.html index 085b7ed..e2b4f35 100644 --- a/apidocs/com/studiomediatech/queryresponse/package-summary.html +++ b/apidocs/com/studiomediatech/queryresponse/package-summary.html @@ -1,7 +1,7 @@ - + com.studiomediatech.queryresponse (Query/Response for Spring AMQP 0.9.0-SB3_0_3-SNAPSHOT API) diff --git a/apidocs/com/studiomediatech/queryresponse/package-tree.html b/apidocs/com/studiomediatech/queryresponse/package-tree.html index 0433bb6..9714f01 100644 --- a/apidocs/com/studiomediatech/queryresponse/package-tree.html +++ b/apidocs/com/studiomediatech/queryresponse/package-tree.html @@ -1,7 +1,7 @@ - + com.studiomediatech.queryresponse Class Hierarchy (Query/Response for Spring AMQP 0.9.0-SB3_0_3-SNAPSHOT API) diff --git a/apidocs/com/studiomediatech/queryresponse/package-use.html b/apidocs/com/studiomediatech/queryresponse/package-use.html index 70f60f3..9c05b60 100644 --- a/apidocs/com/studiomediatech/queryresponse/package-use.html +++ b/apidocs/com/studiomediatech/queryresponse/package-use.html @@ -1,7 +1,7 @@ - + Uses of Package com.studiomediatech.queryresponse (Query/Response for Spring AMQP 0.9.0-SB3_0_3-SNAPSHOT API) diff --git a/apidocs/com/studiomediatech/queryresponse/util/DurationFormatter.html b/apidocs/com/studiomediatech/queryresponse/util/DurationFormatter.html index 4b58279..7f5685f 100644 --- a/apidocs/com/studiomediatech/queryresponse/util/DurationFormatter.html +++ b/apidocs/com/studiomediatech/queryresponse/util/DurationFormatter.html @@ -1,7 +1,7 @@ - + DurationFormatter (Query/Response for Spring AMQP 0.9.0-SB3_0_3-SNAPSHOT API) diff --git a/apidocs/com/studiomediatech/queryresponse/util/Logging.html b/apidocs/com/studiomediatech/queryresponse/util/Logging.html index 4d534b4..39e19de 100644 --- a/apidocs/com/studiomediatech/queryresponse/util/Logging.html +++ b/apidocs/com/studiomediatech/queryresponse/util/Logging.html @@ -1,7 +1,7 @@ - + Logging (Query/Response for Spring AMQP 0.9.0-SB3_0_3-SNAPSHOT API) diff --git a/apidocs/com/studiomediatech/queryresponse/util/class-use/DurationFormatter.html b/apidocs/com/studiomediatech/queryresponse/util/class-use/DurationFormatter.html index 27f0a03..a994963 100644 --- a/apidocs/com/studiomediatech/queryresponse/util/class-use/DurationFormatter.html +++ b/apidocs/com/studiomediatech/queryresponse/util/class-use/DurationFormatter.html @@ -1,7 +1,7 @@ - + Uses of Class com.studiomediatech.queryresponse.util.DurationFormatter (Query/Response for Spring AMQP 0.9.0-SB3_0_3-SNAPSHOT API) diff --git a/apidocs/com/studiomediatech/queryresponse/util/class-use/Logging.html b/apidocs/com/studiomediatech/queryresponse/util/class-use/Logging.html index 62b171f..5539f93 100644 --- a/apidocs/com/studiomediatech/queryresponse/util/class-use/Logging.html +++ b/apidocs/com/studiomediatech/queryresponse/util/class-use/Logging.html @@ -1,7 +1,7 @@ - + Uses of Interface com.studiomediatech.queryresponse.util.Logging (Query/Response for Spring AMQP 0.9.0-SB3_0_3-SNAPSHOT API) diff --git a/apidocs/com/studiomediatech/queryresponse/util/package-summary.html b/apidocs/com/studiomediatech/queryresponse/util/package-summary.html index da22aed..74fa6f8 100644 --- a/apidocs/com/studiomediatech/queryresponse/util/package-summary.html +++ b/apidocs/com/studiomediatech/queryresponse/util/package-summary.html @@ -1,7 +1,7 @@ - + com.studiomediatech.queryresponse.util (Query/Response for Spring AMQP 0.9.0-SB3_0_3-SNAPSHOT API) diff --git a/apidocs/com/studiomediatech/queryresponse/util/package-tree.html b/apidocs/com/studiomediatech/queryresponse/util/package-tree.html index b269211..ef73f78 100644 --- a/apidocs/com/studiomediatech/queryresponse/util/package-tree.html +++ b/apidocs/com/studiomediatech/queryresponse/util/package-tree.html @@ -1,7 +1,7 @@ - + com.studiomediatech.queryresponse.util Class Hierarchy (Query/Response for Spring AMQP 0.9.0-SB3_0_3-SNAPSHOT API) diff --git a/apidocs/com/studiomediatech/queryresponse/util/package-use.html b/apidocs/com/studiomediatech/queryresponse/util/package-use.html index bf922d2..27b6636 100644 --- a/apidocs/com/studiomediatech/queryresponse/util/package-use.html +++ b/apidocs/com/studiomediatech/queryresponse/util/package-use.html @@ -1,7 +1,7 @@ - + Uses of Package com.studiomediatech.queryresponse.util (Query/Response for Spring AMQP 0.9.0-SB3_0_3-SNAPSHOT API) diff --git a/apidocs/help-doc.html b/apidocs/help-doc.html index 3e35175..8950611 100644 --- a/apidocs/help-doc.html +++ b/apidocs/help-doc.html @@ -1,7 +1,7 @@ - + API Help (Query/Response for Spring AMQP 0.9.0-SB3_0_3-SNAPSHOT API) diff --git a/apidocs/index-all.html b/apidocs/index-all.html index 6c4e07b..e34f53b 100644 --- a/apidocs/index-all.html +++ b/apidocs/index-all.html @@ -1,7 +1,7 @@ - + Index (Query/Response for Spring AMQP 0.9.0-SB3_0_3-SNAPSHOT API) diff --git a/apidocs/index.html b/apidocs/index.html index 7cf21fa..2a9ed90 100644 --- a/apidocs/index.html +++ b/apidocs/index.html @@ -1,7 +1,7 @@ - + Overview (Query/Response for Spring AMQP 0.9.0-SB3_0_3-SNAPSHOT API) diff --git a/apidocs/overview-summary.html b/apidocs/overview-summary.html index 3c84896..27a93c1 100644 --- a/apidocs/overview-summary.html +++ b/apidocs/overview-summary.html @@ -1,7 +1,7 @@ - + Query/Response for Spring AMQP 0.9.0-SB3_0_3-SNAPSHOT API diff --git a/apidocs/overview-tree.html b/apidocs/overview-tree.html index 5b0e6f4..8ce39c2 100644 --- a/apidocs/overview-tree.html +++ b/apidocs/overview-tree.html @@ -1,7 +1,7 @@ - + Class Hierarchy (Query/Response for Spring AMQP 0.9.0-SB3_0_3-SNAPSHOT API) diff --git a/assets/app.C8jsIngX.js b/assets/app.BrXsOnQG.js similarity index 90% rename from assets/app.C8jsIngX.js rename to assets/app.BrXsOnQG.js index 52f50a1..6d8fe84 100644 --- a/assets/app.C8jsIngX.js +++ b/assets/app.BrXsOnQG.js @@ -1 +1 @@ -import{U as o,a4 as p,a5 as u,a6 as l,a7 as c,a8 as f,a9 as d,aa as m,ab as h,ac as g,ad as A,d as P,u as v,y,x as C,ae as b,af as w,ag as E,ah as R}from"./chunks/framework.Bsyxd66g.js";import{t as S}from"./chunks/theme.BR1y9Ihb.js";function i(e){if(e.extends){const a=i(e.extends);return{...a,...e,async enhanceApp(t){a.enhanceApp&&await a.enhanceApp(t),e.enhanceApp&&await e.enhanceApp(t)}}}return e}const s=i(S),_=P({name:"VitePressApp",setup(){const{site:e,lang:a,dir:t}=v();return y(()=>{C(()=>{document.documentElement.lang=a.value,document.documentElement.dir=t.value})}),e.value.router.prefetchLinks&&b(),w(),E(),s.setup&&s.setup(),()=>R(s.Layout)}});async function T(){globalThis.__VITEPRESS__=!0;const e=D(),a=x();a.provide(u,e);const t=l(e.route);return a.provide(c,t),a.component("Content",f),a.component("ClientOnly",d),Object.defineProperties(a.config.globalProperties,{$frontmatter:{get(){return t.frontmatter.value}},$params:{get(){return t.page.value.params}}}),s.enhanceApp&&await s.enhanceApp({app:a,router:e,siteData:m}),{app:a,router:e,data:t}}function x(){return h(_)}function D(){let e=o,a;return g(t=>{let n=A(t),r=null;return n&&(e&&(a=n),(e||a===n)&&(n=n.replace(/\.js$/,".lean.js")),r=import(n)),o&&(e=!1),r},s.NotFound)}o&&T().then(({app:e,router:a,data:t})=>{a.go().then(()=>{p(a.route,t.site),e.mount("#app")})});export{T as createApp}; +import{U as o,a4 as p,a5 as u,a6 as l,a7 as c,a8 as f,a9 as d,aa as m,ab as h,ac as g,ad as A,d as P,u as v,y,x as C,ae as b,af as w,ag as E,ah as R}from"./chunks/framework.BLMDJhiA.js";import{t as S}from"./chunks/theme.DHmPbZv7.js";function i(e){if(e.extends){const a=i(e.extends);return{...a,...e,async enhanceApp(t){a.enhanceApp&&await a.enhanceApp(t),e.enhanceApp&&await e.enhanceApp(t)}}}return e}const s=i(S),_=P({name:"VitePressApp",setup(){const{site:e,lang:a,dir:t}=v();return y(()=>{C(()=>{document.documentElement.lang=a.value,document.documentElement.dir=t.value})}),e.value.router.prefetchLinks&&b(),w(),E(),s.setup&&s.setup(),()=>R(s.Layout)}});async function T(){globalThis.__VITEPRESS__=!0;const e=D(),a=x();a.provide(u,e);const t=l(e.route);return a.provide(c,t),a.component("Content",f),a.component("ClientOnly",d),Object.defineProperties(a.config.globalProperties,{$frontmatter:{get(){return t.frontmatter.value}},$params:{get(){return t.page.value.params}}}),s.enhanceApp&&await s.enhanceApp({app:a,router:e,siteData:m}),{app:a,router:e,data:t}}function x(){return h(_)}function D(){let e=o,a;return g(t=>{let n=A(t),r=null;return n&&(e&&(a=n),(e||a===n)&&(n=n.replace(/\.js$/,".lean.js")),r=import(n)),o&&(e=!1),r},s.NotFound)}o&&T().then(({app:e,router:a,data:t})=>{a.go().then(()=>{p(a.route,t.site),e.mount("#app")})});export{T as createApp}; diff --git a/assets/chunks/@localSearchIndexroot.BQZxt9wH.js b/assets/chunks/@localSearchIndexroot.BQZxt9wH.js deleted file mode 100644 index d9cde39..0000000 --- a/assets/chunks/@localSearchIndexroot.BQZxt9wH.js +++ /dev/null @@ -1 +0,0 @@ -const e=`{"documentCount":56,"nextId":56,"documentIds":{"0":"/guide/getting-started.html#getting-started","1":"/guide/getting-started.html#system-requirements","2":"/guide/getting-started.html#installation-amp-configuration","3":"/guide/getting-started.html#connecting-to-an-amqp-broker","4":"/guide/getting-started.html#queries","5":"/guide/getting-started.html#responses","6":"/guide/what-is-query-response.html#what-is-query-response","7":"/guide/what-is-query-response.html#a-simple-example","8":"/guide/what-is-query-response.html#any-good-sci-fi-books-out-there","9":"/guide/what-is-query-response.html#the-current-top-3-books","10":"/guide/what-is-query-response.html#the-asimov-collection","11":"/guide/what-is-query-response.html#no-book-lovers-out-there","12":"/guide/what-is-query-response.html#reprise-surprise","13":"/guide/what-is-query-response.html#so-what-s-in-the-library","14":"/guide/what-is-query-response.html#inversion-of-flow","15":"/guide/the-example-revisited.html#the-example-revisited","16":"/guide/the-example-revisited.html#a-better-library-protocol","17":"/guide/the-example-revisited.html#top-3-books-have-stars","18":"/guide/the-example-revisited.html#one-of-each-flavour","19":"/guide/the-example-revisited.html#out-with-the-old","20":"/reference/developers-reference.html#developers-reference","21":"/reference/developers-reference.html#overview","22":"/reference/developers-reference.html#querybuilder","23":"/reference/developers-reference.html#querybuilder-fluid-api-method-types","24":"/reference/developers-reference.html#initial-methods","25":"/reference/developers-reference.html#conditional-methods","26":"/reference/developers-reference.html#terminal-methods","27":"/reference/developers-reference.html#informal-methods","28":"/reference/developers-reference.html#querybuilder-examples","29":"/reference/developers-reference.html#responsebuilder","30":"/reference/developers-reference.html#responsebuilder-fluid-api-method-types","31":"/reference/developers-reference.html#initial-methods-1","32":"/reference/developers-reference.html#batching-methods","33":"/reference/developers-reference.html#terminal-methods-1","34":"/reference/developers-reference.html#responsebuilder-examples","35":"/reference/query-response-maturity-model.html#query-response-maturity-model","36":"/reference/query-response-maturity-model.html#level-0-purgatory","37":"/reference/query-response-maturity-model.html#level-1","38":"/reference/query-response-maturity-model.html#level-2","39":"/reference/query-response-maturity-model.html#level-3","40":"/reference/query-response-maturity-model.html#level-4-and-beyond","41":"/reference/the-query-response-protocol.html#query-response-protocol","42":"/reference/the-query-response-protocol.html#intent","43":"/reference/the-query-response-protocol.html#components-and-collaborators","44":"/reference/the-query-response-protocol.html#query","45":"/reference/the-query-response-protocol.html#response","46":"/reference/the-query-response-protocol.html#address","47":"/reference/the-query-response-protocol.html#publisher","48":"/reference/the-query-response-protocol.html#consumer","49":"/reference/the-query-response-protocol.html#methods-and-actions","50":"/reference/the-query-response-protocol.html#prepare-address","51":"/reference/the-query-response-protocol.html#publish-query","52":"/reference/the-query-response-protocol.html#consume-query","53":"/reference/the-query-response-protocol.html#publish-response","54":"/reference/the-query-response-protocol.html#consume-response","55":"/#change-the-way-you-think-and-design-by-using-query-response-for-spring-amqp"},"fieldIds":{"title":0,"titles":1,"text":2},"fieldLength":{"0":[2,1,39],"1":[2,2,30],"2":[3,2,87],"3":[5,5,79],"4":[1,2,201],"5":[1,2,175],"6":[5,1,17],"7":[3,5,54],"8":[8,7,96],"9":[5,7,81],"10":[3,7,220],"11":[6,7,114],"12":[2,7,100],"13":[7,7,55],"14":[3,7,149],"15":[3,1,116],"16":[4,3,70],"17":[5,3,80],"18":[4,3,142],"19":[4,3,79],"20":[2,1,1],"21":[1,2,100],"22":[1,2,161],"23":[5,3,56],"24":[2,3,45],"25":[2,3,90],"26":[2,3,88],"27":[2,3,70],"28":[2,3,97],"29":[1,2,210],"30":[5,3,43],"31":[2,3,52],"32":[2,3,51],"33":[2,3,68],"34":[2,3,63],"35":[4,1,30],"36":[3,4,61],"37":[2,4,93],"38":[2,4,53],"39":[2,4,55],"40":[5,4,99],"41":[3,1,83],"42":[1,3,55],"43":[3,3,31],"44":[1,6,102],"45":[1,6,62],"46":[1,6,46],"47":[1,6,73],"48":[1,6,47],"49":[3,3,41],"50":[2,6,47],"51":[2,6,49],"52":[2,6,66],"53":[2,6,33],"54":[2,6,45],"55":[15,1,154]},"averageFieldLength":[2.982142857142857,3.8214285714285716,80.4285714285714],"storedFields":{"0":{"title":"Getting Started","titles":[]},"1":{"title":"System Requirements","titles":["Getting Started"]},"2":{"title":"Installation & Configuration","titles":["Getting Started"]},"3":{"title":"Connecting to an AMQP broker","titles":["Getting Started","Installation & Configuration"]},"4":{"title":"Queries","titles":["Getting Started"]},"5":{"title":"Responses","titles":["Getting Started"]},"6":{"title":"What is Query/Response?","titles":[]},"7":{"title":"A simple example","titles":["What is Query/Response?"]},"8":{"title":"Any good sci-fi books out there?","titles":["What is Query/Response?","A simple example"]},"9":{"title":"The current top-3 books","titles":["What is Query/Response?","A simple example"]},"10":{"title":"The Asimov collection","titles":["What is Query/Response?","A simple example"]},"11":{"title":"No book lovers out there?","titles":["What is Query/Response?","A simple example"]},"12":{"title":"Reprise, surprise","titles":["What is Query/Response?","A simple example"]},"13":{"title":"So, what's in the library?","titles":["What is Query/Response?","A simple example"]},"14":{"title":"Inversion of flow","titles":["What is Query/Response?","A simple example"]},"15":{"title":"The example revisited","titles":[]},"16":{"title":"A better library protocol","titles":["The example revisited"]},"17":{"title":"Top-3 books have stars","titles":["The example revisited"]},"18":{"title":"One of each flavour","titles":["The example revisited"]},"19":{"title":"Out with the old","titles":["The example revisited"]},"20":{"title":"Developers Reference","titles":[]},"21":{"title":"Overview","titles":["Developers Reference"]},"22":{"title":"QueryBuilder","titles":["Developers Reference"]},"23":{"title":"QueryBuilder fluid API method types","titles":["Developers Reference","QueryBuilder"]},"24":{"title":"Initial methods","titles":["Developers Reference","QueryBuilder"]},"25":{"title":"Conditional methods","titles":["Developers Reference","QueryBuilder"]},"26":{"title":"Terminal methods","titles":["Developers Reference","QueryBuilder"]},"27":{"title":"Informal methods","titles":["Developers Reference","QueryBuilder"]},"28":{"title":"QueryBuilder examples","titles":["Developers Reference","QueryBuilder"]},"29":{"title":"ResponseBuilder","titles":["Developers Reference"]},"30":{"title":"ResponseBuilder fluid API method types","titles":["Developers Reference","ResponseBuilder"]},"31":{"title":"Initial methods","titles":["Developers Reference","ResponseBuilder"]},"32":{"title":"Batching methods","titles":["Developers Reference","ResponseBuilder"]},"33":{"title":"Terminal methods","titles":["Developers Reference","ResponseBuilder"]},"34":{"title":"ResponseBuilder examples","titles":["Developers Reference","ResponseBuilder"]},"35":{"title":"Query/Response Maturity Model","titles":[]},"36":{"title":"Level 0 - Purgatory","titles":["Query/Response Maturity Model"]},"37":{"title":"Level 1","titles":["Query/Response Maturity Model"]},"38":{"title":"Level 2","titles":["Query/Response Maturity Model"]},"39":{"title":"Level 3","titles":["Query/Response Maturity Model"]},"40":{"title":"Level 4 and beyond...","titles":["Query/Response Maturity Model"]},"41":{"title":"Query/Response Protocol","titles":[]},"42":{"title":"Intent","titles":["Query/Response Protocol"]},"43":{"title":"Components and Collaborators","titles":["Query/Response Protocol"]},"44":{"title":"Query","titles":["Query/Response Protocol","Components and Collaborators"]},"45":{"title":"Response","titles":["Query/Response Protocol","Components and Collaborators"]},"46":{"title":"Address","titles":["Query/Response Protocol","Components and Collaborators"]},"47":{"title":"Publisher","titles":["Query/Response Protocol","Components and Collaborators"]},"48":{"title":"Consumer","titles":["Query/Response Protocol","Components and Collaborators"]},"49":{"title":"Methods and Actions","titles":["Query/Response Protocol"]},"50":{"title":"Prepare Address","titles":["Query/Response Protocol","Methods and Actions"]},"51":{"title":"Publish Query","titles":["Query/Response Protocol","Methods and Actions"]},"52":{"title":"Consume Query","titles":["Query/Response Protocol","Methods and Actions"]},"53":{"title":"Publish Response","titles":["Query/Response Protocol","Methods and Actions"]},"54":{"title":"Consume Response","titles":["Query/Response Protocol","Methods and Actions"]},"55":{"title":"Change the way you think and design, by using Query/Response for Spring AMQP.","titles":[]}},"dirtCount":0,"index":[["5",{"2":{"17":1,"18":1,"19":1}}],["5672",{"2":{"3":3}}],["yields",{"2":{"48":1}}],["yet",{"2":{"17":1,"18":1}}],["yolo",{"2":{"5":5}}],["you",{"0":{"55":1},"2":{"3":2,"4":1,"5":2,"11":1,"41":2}}],["your",{"2":{"2":1,"3":2,"4":1}}],["77",{"2":{"17":2,"18":2}}],["9780307969958",{"2":{"16":1}}],["know",{"2":{"17":1,"47":1,"48":1}}],["knowing",{"2":{"13":1}}],["known",{"2":{"2":1,"37":1}}],["keywords",{"2":{"41":1}}],["key",{"2":{"14":1,"16":1,"18":1,"44":1,"46":1}}],["kept",{"2":{"12":1}}],["keeping",{"2":{"22":1,"44":1}}],["keep",{"2":{"7":1,"10":1,"12":1}}],[">",{"2":{"5":2,"28":1}}],["800",{"2":{"22":2,"28":1}}],["88",{"2":{"19":2}}],["8",{"2":{"5":2}}],["85b7e6b5b69b",{"2":{"5":4}}],["831d",{"2":{"4":1}}],["400",{"2":{"28":1}}],["4",{"0":{"40":1},"2":{"16":1,"17":1}}],["42",{"2":{"8":4,"9":1,"10":1,"12":1,"15":1}}],["4f2a",{"2":{"5":4}}],["4491",{"2":{"4":1}}],["q",{"2":{"5":1}}],["qr",{"2":{"4":1,"5":4}}],["quick",{"2":{"37":1,"45":1}}],["quickstart",{"2":{"2":1}}],["quite",{"2":{"18":1,"40":1,"44":1}}],["quoted",{"2":{"16":2}}],["quotes",{"2":{"15":1}}],["quot",{"2":{"5":8,"9":2,"11":2,"16":4,"22":2,"29":4,"41":20,"43":2,"55":4}}],["question",{"2":{"11":1,"55":1}}],["questions",{"2":{"11":1}}],["queue",{"2":{"8":1,"46":2,"47":1}}],["queues",{"2":{"3":1}}],["queryresponse",{"2":{"4":1,"5":4,"25":1}}],["queryresponseconfiguration",{"2":{"2":2}}],["queryfor",{"2":{"4":1,"22":2,"23":1,"24":1,"28":3}}],["querybuilder",{"0":{"22":1,"23":1,"28":1},"1":{"23":1,"24":1,"25":1,"26":1,"27":1,"28":1},"2":{"4":5,"21":1,"22":10,"27":1,"28":4}}],["query",{"0":{"6":1,"35":1,"41":1,"44":1,"51":1,"52":1,"55":1},"1":{"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"36":1,"37":1,"38":1,"39":1,"40":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1},"2":{"4":7,"5":5,"6":1,"7":1,"8":9,"9":2,"10":2,"11":4,"13":3,"14":2,"15":6,"17":3,"18":2,"19":3,"22":7,"23":1,"24":1,"25":5,"26":6,"27":2,"28":1,"29":7,"30":1,"33":2,"34":1,"35":1,"37":1,"40":1,"41":2,"42":1,"43":1,"44":4,"45":6,"47":3,"48":2,"49":1,"50":3,"51":5,"52":6,"53":1,"55":2}}],["queries",{"0":{"4":1},"2":{"4":5,"5":2,"15":1,"22":3,"28":1,"37":1,"39":1,"40":1,"44":2,"52":4}}],["|",{"2":{"4":1,"5":4}}],["=",{"2":{"4":1,"22":1,"29":1}}],["ubiquitous",{"2":{"15":1,"44":1}}],["upgrades",{"2":{"36":1,"38":1}}],["upgraded",{"2":{"19":1}}],["updated",{"2":{"17":1,"18":1}}],["up",{"2":{"11":1,"29":1,"32":1,"55":1}}],["upon",{"2":{"10":1,"29":1,"49":1}}],["unbounded",{"2":{"54":1}}],["unbound",{"2":{"52":1}}],["unfulfilled",{"2":{"28":1}}],["understood",{"2":{"21":1}}],["understanding",{"2":{"44":1}}],["understand",{"2":{"8":1,"13":1,"21":1}}],["until",{"2":{"14":1,"40":1}}],["unique",{"2":{"8":2,"47":1,"48":1}}],["us",{"2":{"9":2,"10":1,"11":1,"14":1,"15":1,"18":2}}],["uses",{"2":{"15":1,"29":1}}],["usertokenservice",{"2":{"34":1}}],["users",{"2":{"22":1,"29":1,"34":1}}],["user",{"2":{"11":2,"14":4}}],["username",{"2":{"3":1}}],["usefulness",{"2":{"10":1,"18":1}}],["used",{"2":{"5":1,"7":1,"8":1,"22":1,"29":2,"32":1,"40":1,"42":1,"44":1}}],["use",{"2":{"3":1,"8":1,"12":1,"18":2,"21":2,"26":1,"27":1,"32":1,"33":1,"34":1,"35":1,"39":1,"41":1,"44":2,"45":1,"50":2,"53":1}}],["using",{"0":{"55":1},"2":{"0":1,"2":1,"3":1,"4":2,"5":1,"14":1,"15":2,"17":1,"22":2,"28":2,"29":2,"32":1,"34":2,"37":1,"39":1,"40":1,"42":1,"47":1}}],["ui",{"2":{"3":2}}],["128",{"2":{"34":1}}],["10",{"2":{"28":2}}],["1000l",{"2":{"4":2}}],["1337",{"2":{"13":2}}],["1",{"0":{"37":1},"2":{"4":3,"5":2}}],["1>",{"2":{"4":1,"5":1}}],["15672",{"2":{"3":4}}],["11",{"2":{"1":2}}],["journey",{"2":{"40":1}}],["jackson",{"2":{"29":1}}],["javaresponsebuilder",{"2":{"34":2}}],["javareturn",{"2":{"28":3}}],["javapublic",{"2":{"24":1,"27":1,"31":1}}],["java",{"2":{"1":2,"2":1,"4":1,"5":1,"22":1,"29":1,"34":1}}],["jump",{"2":{"19":1}}],["just",{"2":{"2":1,"4":1,"8":1,"10":1,"11":1,"13":1,"35":1,"55":2}}],["json",{"2":{"4":1,"5":3,"29":2}}],["nack",{"2":{"51":1,"53":1}}],["natural",{"2":{"19":1}}],["name",{"2":{"5":1,"43":1,"44":1,"46":1}}],["number",{"2":{"10":1,"25":3,"52":1}}],["network",{"2":{"34":1}}],["next",{"2":{"21":1}}],["newoffer",{"2":{"28":1}}],["new",{"2":{"11":1,"13":1,"16":2,"17":3,"18":1,"21":1,"23":1,"28":2,"30":1}}],["neuromancer",{"2":{"9":1,"12":1,"13":1,"16":2,"17":1}}],["necessary",{"2":{"3":1,"27":1}}],["need",{"2":{"3":1,"4":2,"8":2,"10":2,"17":1,"41":1,"44":2}}],["needs",{"2":{"2":1,"4":1,"14":1,"39":1,"55":1}}],["normal",{"2":{"18":1,"21":1,"40":1}}],["non",{"2":{"6":1}}],["none",{"2":{"4":1,"11":1,"52":1}}],["now",{"2":{"3":2,"4":1,"5":2,"12":1,"17":1,"18":2}}],["no",{"0":{"11":1},"2":{"2":1,"4":1,"7":1,"11":2,"18":1,"30":1,"32":1,"40":2,"50":1,"51":1,"53":1}}],["notifications",{"2":{"45":1,"48":1}}],["notification",{"2":{"10":1,"43":1,"44":1,"45":1,"47":1}}],["notion",{"2":{"9":1,"49":1}}],["notation",{"2":{"8":1}}],["not",{"2":{"4":2,"8":2,"9":1,"10":3,"11":2,"12":3,"14":2,"15":2,"17":2,"18":1,"22":1,"25":2,"26":3,"27":1,"33":1,"37":2,"40":1,"41":5,"44":1,"45":2,"46":1,"47":3,"48":2,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1}}],["nothing",{"2":{"2":1,"4":1,"12":1,"49":1}}],["note",{"2":{"2":1,"3":1,"4":1,"26":1,"29":1,"45":1,"47":1,"48":1,"50":1,"52":1}}],["olle",{"2":{"55":1}}],["old",{"0":{"19":1}}],["older",{"2":{"18":1}}],["o",{"2":{"36":1,"37":1}}],["over",{"2":{"32":1}}],["overview",{"0":{"21":1}}],["owners",{"2":{"38":1}}],["own",{"2":{"29":1}}],["objectmapper",{"2":{"29":1}}],["observed",{"2":{"28":1}}],["ok",{"2":{"18":1}}],["oh",{"2":{"18":1}}],["opportunities",{"2":{"35":1}}],["options",{"2":{"34":1,"51":2}}],["option",{"2":{"28":1,"50":1}}],["optionally",{"2":{"45":1}}],["optional",{"2":{"9":1,"16":1,"22":1,"41":1,"52":1}}],["open",{"2":{"12":1,"47":1}}],["operation",{"2":{"10":2,"52":1,"54":1}}],["other",{"2":{"9":1,"10":1,"18":1,"27":1,"36":1,"47":1}}],["often",{"2":{"37":1,"38":1,"44":1}}],["offer",{"2":{"28":1,"34":1}}],["offers",{"2":{"28":2,"34":2}}],["of",{"0":{"14":1,"18":1},"2":{"4":3,"5":1,"7":1,"9":5,"10":17,"11":3,"12":1,"14":10,"15":6,"16":1,"17":1,"18":5,"19":2,"21":6,"22":8,"23":1,"24":1,"25":3,"27":3,"28":1,"29":5,"30":2,"31":2,"32":2,"34":2,"35":2,"36":1,"37":1,"38":2,"39":1,"40":3,"41":4,"42":3,"44":1,"45":2,"47":4,"48":1,"49":1,"52":1,"53":1,"54":1,"55":5}}],["our",{"2":{"4":1,"10":1,"12":1,"15":3,"17":1,"21":1}}],["output",{"2":{"5":1}}],["out",{"0":{"8":1,"11":1,"19":1},"2":{"4":1,"5":1,"14":1,"29":1}}],["orthrow",{"2":{"23":1,"26":1,"28":2}}],["orthrows",{"2":{"22":1}}],["ordefaults",{"2":{"22":1,"23":1,"26":3,"28":1}}],["order",{"2":{"4":3,"5":1,"8":1,"22":1,"26":1}}],["original",{"2":{"12":1,"19":1}}],["orempty",{"2":{"4":1,"22":3,"23":1,"26":1}}],["or",{"2":{"2":1,"4":3,"5":3,"8":3,"9":1,"10":4,"11":3,"15":1,"17":2,"18":2,"19":1,"21":2,"22":3,"24":1,"25":1,"27":3,"29":6,"32":1,"36":3,"37":1,"38":2,"40":3,"41":4,"44":8,"45":2,"46":4,"47":5,"48":2,"49":2,"50":2,"51":3,"52":2,"53":2,"54":3,"55":1}}],["once",{"2":{"10":1,"12":1,"32":1,"49":1}}],["onerror",{"2":{"23":1,"27":1,"28":1}}],["one",{"0":{"18":1},"2":{"4":2,"5":1,"10":2,"11":2,"15":1,"17":1,"18":1,"22":3,"24":1,"26":1,"27":1,"29":1,"31":1,"33":1,"40":1,"52":1,"54":1}}],["onlythreeauthors",{"2":{"29":2}}],["only",{"2":{"4":1,"7":1,"8":2,"12":1,"14":2,"15":1,"18":2,"19":1,"24":1,"25":1,"26":1,"27":1,"31":1,"33":1,"42":1,"49":2,"50":1}}],["on",{"2":{"2":2,"3":2,"5":2,"10":2,"14":1,"15":1,"16":2,"22":1,"25":2,"26":1,"28":1,"29":3,"33":1,"36":1,"37":1,"39":1,"41":1,"47":1,"48":1,"49":1,"55":1}}],["via",{"2":{"22":1}}],["viewing",{"2":{"14":1}}],["view",{"2":{"10":1,"14":1,"37":1}}],["velocity",{"2":{"36":1}}],["ve",{"2":{"11":1,"12":1,"14":2,"18":2,"29":1,"35":1}}],["very",{"2":{"10":1,"11":1,"14":1,"21":1,"40":1,"43":1,"44":1,"55":1}}],["versions",{"2":{"18":1,"40":1}}],["version",{"2":{"1":1,"17":1,"18":3,"19":1,"41":1}}],["vararg",{"2":{"33":1}}],["varags",{"2":{"5":1}}],["valuable",{"2":{"18":1,"21":1}}],["value",{"2":{"10":1,"18":1,"38":1}}],["values",{"2":{"4":1,"11":1,"16":1}}],["validating",{"2":{"18":1}}],["validation",{"2":{"15":1}}],["validate",{"2":{"10":2,"54":1}}],["valid",{"2":{"10":1}}],["void",{"2":{"2":1,"4":1,"5":1,"29":1}}],["m",{"2":{"14":2}}],["must",{"2":{"12":1,"15":1,"17":1,"29":1,"41":2,"44":2,"45":2,"46":1,"47":2,"48":1,"51":1,"53":2}}],["multiple",{"2":{"12":1}}],["much",{"2":{"10":1,"28":1,"44":1,"55":1}}],["my",{"2":{"10":1,"41":1}}],["myapp",{"2":{"2":2}}],["mind",{"2":{"37":1}}],["minimum",{"2":{"23":1,"25":1}}],["minimal",{"2":{"15":1}}],["millis",{"2":{"25":1}}],["milliseconds",{"2":{"4":1,"22":1}}],["mission",{"2":{"21":1}}],["might",{"2":{"11":2}}],["microservices",{"2":{"55":1}}],["micro",{"2":{"5":1}}],["mess",{"2":{"55":1}}],["messaging",{"2":{"6":1,"7":1,"10":1,"46":2,"47":1}}],["messages",{"2":{"32":1,"47":1}}],["messageproperties",{"2":{"4":1,"5":3}}],["message",{"2":{"4":1,"5":1,"9":1,"42":1,"43":2,"44":1}}],["mentioned",{"2":{"29":1}}],["mean",{"2":{"13":1}}],["means",{"2":{"4":1,"10":1,"22":1,"29":2,"42":1}}],["methods",{"0":{"24":1,"25":1,"26":1,"27":1,"31":1,"32":1,"33":1,"49":1},"1":{"50":1,"51":1,"52":1,"53":1,"54":1},"2":{"22":3,"25":1,"26":2,"28":1,"29":4,"32":1}}],["method",{"0":{"23":1,"30":1},"2":{"5":1,"22":3,"23":2,"24":1,"26":3,"27":1,"29":3,"30":2,"31":1,"33":1,"43":2}}],["medium",{"2":{"5":1}}],["mvn",{"2":{"3":1,"4":1,"5":1}}],["moving",{"2":{"55":1}}],["moves",{"2":{"39":1}}],["move",{"2":{"37":2,"38":1}}],["modules",{"2":{"37":1,"40":1}}],["module",{"2":{"36":1}}],["modern",{"2":{"34":1}}],["model",{"0":{"35":1},"1":{"36":1,"37":1,"38":1,"39":1,"40":1},"2":{"10":2,"14":1,"21":1,"35":1,"37":1,"39":1,"40":1,"42":1}}],["monday",{"2":{"34":2}}],["moment",{"2":{"4":1,"24":1,"31":1}}],["more",{"2":{"2":2,"9":1,"10":2,"12":1,"14":1,"22":1,"25":1,"27":1,"28":1,"29":1,"34":1,"37":1,"39":4,"41":1,"55":2}}],["mostly",{"2":{"5":1}}],["most",{"2":{"2":1,"11":1,"15":1,"22":1,"29":1,"36":1,"44":1,"45":1}}],["malleable",{"2":{"39":1}}],["malicious",{"2":{"10":1}}],["maturity",{"0":{"35":1},"1":{"36":1,"37":1,"38":1,"39":1,"40":1},"2":{"35":2,"40":1}}],["matching",{"2":{"29":1}}],["maximum",{"2":{"23":1}}],["making",{"2":{"9":1,"14":1,"21":1}}],["make",{"2":{"3":1,"11":1,"14":1}}],["makes",{"2":{"0":1,"4":1,"5":1,"44":1}}],["made",{"2":{"8":1,"16":1,"32":1}}],["mailbox",{"2":{"8":2,"43":1,"46":1}}],["main",{"2":{"2":1}}],["manipulating",{"2":{"45":1}}],["many",{"2":{"4":1,"14":1,"34":1}}],["management",{"2":{"3":4}}],["mapper",{"2":{"29":2}}],["mapped",{"2":{"4":1,"24":1}}],["mappings",{"2":{"29":1}}],["mapping",{"2":{"4":1,"29":2}}],["map",{"2":{"4":1,"5":1}}],["marco",{"2":{"4":4,"5":6}}],["may",{"2":{"4":3,"9":1,"10":1,"11":1,"15":1,"17":1,"22":2,"27":1,"28":1,"29":1,"34":1,"37":1,"39":1,"41":1,"44":1,"50":3,"52":3,"54":3}}],["maven",{"2":{"2":3}}],["custom",{"2":{"29":1}}],["curtain",{"2":{"18":1}}],["currently",{"2":{"27":1,"29":1}}],["current",{"0":{"9":1},"2":{"34":1,"39":1,"47":1,"48":1}}],["central",{"2":{"22":1}}],["certainly",{"2":{"19":1}}],["chronounit",{"2":{"28":1}}],["checking",{"2":{"18":1}}],["check",{"2":{"18":1}}],["choose",{"2":{"18":1,"47":1,"51":1,"52":2,"54":1}}],["challenges",{"2":{"55":2}}],["changing",{"2":{"38":1}}],["changes",{"2":{"36":1}}],["change",{"0":{"55":1},"2":{"15":1,"34":1,"38":1,"40":1}}],["characteristics",{"2":{"37":1}}],["chapter",{"2":{"29":1}}],["chainingresponsebuilder",{"2":{"31":2}}],["chainingquerybuilder",{"2":{"24":2,"27":1}}],["chained",{"2":{"14":1}}],["circuit",{"2":{"11":1}}],["clearly",{"2":{"55":1}}],["closer",{"2":{"21":1,"23":1,"30":1}}],["clients",{"2":{"27":1}}],["client",{"2":{"10":2,"28":1}}],["classifiers",{"2":{"18":1}}],["class",{"2":{"2":4,"4":5,"5":4,"22":4,"24":2,"28":3,"29":5,"31":2,"34":2}}],["creating",{"2":{"22":1,"44":1}}],["creates",{"2":{"23":1,"30":1}}],["created",{"2":{"3":1,"33":1,"44":1,"54":1}}],["create",{"2":{"3":1,"4":1,"5":1,"29":3,"31":1,"32":1}}],["crash",{"2":{"9":1,"12":1,"13":1,"17":1}}],["ctag",{"2":{"5":1}}],["c77a8a1d",{"2":{"5":1}}],["c959",{"2":{"5":4}}],["c4f3",{"2":{"4":1}}],["c",{"2":{"4":1,"5":4,"55":1}}],["came",{"2":{"55":1}}],["calendar",{"2":{"34":1}}],["calling",{"2":{"22":1,"29":1,"33":1,"55":3}}],["called",{"2":{"14":1,"33":1}}],["call",{"2":{"14":1,"22":5,"26":4,"29":2,"33":2}}],["calls",{"2":{"14":5,"34":1,"36":1,"43":2,"55":3}}],["capture",{"2":{"27":1}}],["captures",{"2":{"8":1}}],["capabilities",{"2":{"24":1,"31":1}}],["capability",{"2":{"16":1,"37":1,"46":1}}],["caveats",{"2":{"14":1}}],["caught",{"2":{"10":1}}],["carry",{"2":{"45":1}}],["carrying",{"2":{"45":1}}],["carries",{"2":{"9":1,"43":1}}],["careful",{"2":{"26":1}}],["care",{"2":{"10":2,"18":1,"54":1}}],["cares",{"2":{"5":1}}],["cases",{"2":{"27":1,"45":1}}],["case",{"2":{"4":1,"22":1,"26":3,"27":1,"51":1}}],["can",{"2":{"3":2,"4":1,"5":1,"8":3,"10":4,"12":1,"14":1,"18":1,"19":3,"24":1,"25":2,"26":1,"28":2,"29":2,"31":1,"32":1,"33":1,"38":3,"39":1,"40":3,"42":1,"44":1,"49":1,"50":2,"51":1,"55":1}}],["coercion",{"2":{"29":1}}],["coerced",{"2":{"24":1}}],["coerce",{"2":{"22":1}}],["covers",{"2":{"27":1}}],["coping",{"2":{"19":1}}],["collaborator",{"2":{"17":1,"46":1}}],["collaborators",{"0":{"43":1},"1":{"44":1,"45":1,"46":1,"47":1,"48":1},"2":{"10":1,"40":1}}],["collection",{"0":{"10":1},"2":{"4":3,"12":1,"22":1,"26":4,"33":3}}],["course",{"2":{"10":3,"40":1}}],["coupling",{"2":{"8":1,"10":1}}],["coupled",{"2":{"14":1}}],["couple",{"2":{"4":1,"10":1,"18":1,"21":1,"26":1}}],["could",{"2":{"7":1,"10":1,"13":1,"14":1,"18":2}}],["coming",{"2":{"37":1}}],["combined",{"2":{"28":2}}],["commonly",{"2":{"11":1,"44":1}}],["common",{"2":{"10":1,"44":1}}],["communicate",{"2":{"8":1}}],["communication",{"2":{"7":1,"36":1,"42":1,"47":1,"55":1}}],["comes",{"2":{"29":1,"38":1,"55":1}}],["come",{"2":{"10":1,"15":2,"40":1}}],["compiler",{"2":{"29":1}}],["composed",{"2":{"25":1}}],["composition",{"2":{"22":1,"27":1}}],["components",{"0":{"43":1},"1":{"44":1,"45":1,"46":1,"47":1,"48":1},"2":{"8":1,"29":2,"37":1,"40":1}}],["component",{"2":{"4":2,"5":2,"22":3,"29":1}}],["compatibility",{"2":{"18":3}}],["complexities",{"2":{"35":1}}],["complexity",{"2":{"10":1}}],["complex",{"2":{"27":1}}],["completed",{"2":{"25":1}}],["complicated",{"2":{"5":1}}],["com",{"2":{"3":1,"29":1}}],["condition",{"2":{"23":3}}],["conditional",{"0":{"25":1},"2":{"22":1,"23":3,"25":4}}],["conditionals",{"2":{"22":1,"23":3,"25":1,"26":3,"27":1}}],["convey",{"2":{"21":1}}],["convert",{"2":{"10":2}}],["contract",{"2":{"15":1,"16":1,"22":1}}],["controlling",{"2":{"10":1}}],["control",{"2":{"10":1,"29":1,"32":1}}],["contains",{"2":{"41":1}}],["contain",{"2":{"12":1}}],["continue",{"2":{"11":1}}],["contexts",{"2":{"10":1}}],["context",{"2":{"7":1,"29":1,"39":1}}],["contentlength=0",{"2":{"5":1}}],["contentlength=28",{"2":{"5":1}}],["contentlength=2",{"2":{"4":1,"5":1}}],["contentencoding=utf",{"2":{"5":2}}],["contenttype=application",{"2":{"4":1,"5":3}}],["constraints",{"2":{"28":1}}],["constructing",{"2":{"22":1}}],["constructor",{"2":{"22":1}}],["consider",{"2":{"21":1,"51":1,"52":1}}],["considered",{"2":{"11":1}}],["considerations",{"2":{"21":1}}],["consideration",{"2":{"10":1}}],["considering",{"2":{"10":1}}],["conservatively",{"2":{"10":1}}],["consumption",{"2":{"48":1}}],["consuming",{"2":{"10":1,"28":1,"45":1,"52":1,"54":1}}],["consumes",{"2":{"29":1}}],["consume",{"0":{"52":1,"54":1},"2":{"10":1,"25":1,"43":1}}],["consumers",{"2":{"47":1,"48":1,"52":1}}],["consumer",{"0":{"48":1},"2":{"10":2,"11":1,"12":2,"18":2,"27":1,"29":2,"33":1,"43":1,"46":1,"48":2,"52":4,"54":3}}],["consumerqueue=c77a8a1d",{"2":{"5":1}}],["consumertag=amq",{"2":{"5":1}}],["consumed",{"2":{"4":2,"5":3,"13":1,"18":2,"19":1,"25":2,"40":1,"51":1,"53":1}}],["configured",{"2":{"14":1,"36":1}}],["configurations",{"2":{"5":1}}],["configuration",{"0":{"2":1},"1":{"3":1},"2":{"29":1}}],["conform",{"2":{"10":1,"29":1}}],["concrete",{"2":{"47":1,"48":1}}],["conclude",{"2":{"19":1}}],["concepts",{"2":{"14":1,"21":2}}],["concept",{"2":{"10":1}}],["concise",{"2":{"4":1}}],["concat",{"2":{"4":1}}],["connect",{"2":{"3":2}}],["connecting",{"0":{"3":1}}],["code",{"2":{"2":1,"4":1,"7":1,"8":1,"21":1,"37":1,"38":1}}],["d",{"2":{"41":1,"55":1}}],["dynamic",{"2":{"34":1,"40":1}}],["dynamically",{"2":{"26":1}}],["dropping",{"2":{"36":1}}],["drain",{"2":{"32":1,"55":1}}],["driven",{"2":{"15":1}}],["durable",{"2":{"39":1}}],["duration",{"2":{"25":2}}],["duplicates",{"2":{"15":1}}],["duplicate",{"2":{"12":2}}],["difference",{"2":{"26":1}}],["different",{"2":{"10":1,"14":1,"15":2,"16":1,"22":1,"25":1,"26":1,"28":1,"33":1,"40":2}}],["discuss",{"2":{"21":1}}],["distinct",{"2":{"18":1}}],["distributed",{"2":{"2":1,"21":1,"42":1,"55":1}}],["did",{"2":{"12":1}}],["databind",{"2":{"29":1}}],["data",{"2":{"5":1,"7":1,"10":1,"16":1,"28":1,"29":4,"30":2,"33":2,"34":1,"37":3,"38":1,"39":2,"40":2,"42":1,"45":2}}],["documentation",{"2":{"49":1}}],["document",{"2":{"37":1}}],["documents",{"2":{"36":1}}],["docker",{"2":{"3":2}}],["down",{"2":{"19":1,"55":1}}],["domain",{"2":{"15":2,"44":1}}],["does",{"2":{"9":1,"11":1,"15":1,"42":1,"47":1,"48":1,"49":1,"52":1}}],["don",{"2":{"8":1,"17":1}}],["done",{"2":{"2":2,"10":1,"29":1}}],["dot",{"2":{"8":1}}],["do",{"2":{"2":2,"11":3,"26":3}}],["demand",{"2":{"41":1}}],["derived",{"2":{"41":1}}],["delivered",{"2":{"53":1}}],["delivery",{"2":{"47":1,"49":1}}],["deliverytag=1",{"2":{"5":1}}],["deliverytag=0",{"2":{"4":1,"5":2}}],["deliverymode=non",{"2":{"4":1,"5":2}}],["deliberate",{"2":{"40":1}}],["deeper",{"2":{"38":1}}],["depending",{"2":{"47":1,"48":1,"55":1}}],["dependency",{"2":{"2":3,"22":1,"29":1}}],["deployment",{"2":{"37":1}}],["degree",{"2":{"29":1}}],["detect",{"2":{"51":1}}],["determine",{"2":{"29":1}}],["detail",{"2":{"21":1}}],["definitions",{"2":{"41":1}}],["define",{"2":{"25":1,"49":1}}],["defines",{"2":{"22":1,"25":3,"26":3,"32":2}}],["defined",{"2":{"22":2,"29":1}}],["defaults",{"2":{"11":1,"23":1,"26":6,"27":1,"28":2}}],["default",{"2":{"3":2,"4":2}}],["deal",{"2":{"11":1}}],["dealing",{"2":{"4":1,"15":1}}],["development",{"2":{"11":2,"36":1,"55":1}}],["developers",{"0":{"20":1},"1":{"21":1,"22":1,"23":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"30":1,"31":1,"32":1,"33":1,"34":1},"2":{"11":1,"15":1,"21":2,"34":1,"38":1,"55":1}}],["developer",{"2":{"0":1,"37":1,"42":1}}],["desirable",{"2":{"44":1,"45":1}}],["designates",{"2":{"46":1}}],["designers",{"2":{"15":1}}],["design",{"0":{"55":1},"2":{"11":3,"15":2,"18":1,"39":1,"55":1}}],["describe",{"2":{"41":1,"42":1,"46":1,"55":1}}],["describes",{"2":{"8":1,"35":1,"40":1,"46":1}}],["description",{"2":{"23":1,"30":1,"43":1,"49":1}}],["decisions",{"2":{"55":1}}],["decide",{"2":{"10":1,"11":1,"52":1}}],["declares",{"2":{"33":2}}],["declare",{"2":{"31":1}}],["declared",{"2":{"4":1,"22":1,"24":1,"25":1,"26":2,"31":1,"33":1,"36":1}}],["decoupling",{"2":{"10":1,"37":1,"42":1,"46":1,"55":1}}],["decoupled",{"2":{"0":1,"6":1,"9":1}}],["00809edb6f95",{"2":{"4":1}}],["0",{"0":{"36":1},"2":{"1":1}}],["3>",{"2":{"4":1,"5":1}}],["3+",{"2":{"2":1}}],["3",{"0":{"9":1,"17":1,"39":1},"2":{"1":2,"2":1,"3":2,"4":1,"5":1,"12":1,"14":1,"17":2,"19":2,"28":1,"29":1}}],["rfc",{"2":{"41":1}}],["richardson",{"2":{"35":1}}],["raise",{"2":{"21":1}}],["rather",{"2":{"21":1,"22":1}}],["ratings",{"2":{"16":1,"17":1,"18":2}}],["rabbitfacade",{"2":{"4":1,"5":2}}],["rabbitmq",{"2":{"3":6}}],["rule",{"2":{"16":1}}],["rules",{"2":{"15":2,"18":1,"41":1,"42":1}}],["run",{"2":{"2":1,"3":4,"4":2,"5":2,"26":2,"33":1}}],["running",{"2":{"1":1,"3":3,"17":1}}],["roles",{"2":{"47":1,"48":1}}],["role",{"2":{"47":1,"48":1}}],["routing",{"2":{"44":1,"46":1}}],["roundtrip",{"2":{"5":1}}],["rowling",{"2":{"29":1}}],["robot",{"2":{"9":1,"10":1,"12":1,"13":1,"17":1,"18":2,"19":1}}],["rqercg",{"2":{"5":1}}],["relevant",{"2":{"55":1}}],["releases",{"2":{"1":1,"37":1}}],["relied",{"2":{"49":1}}],["rental",{"2":{"28":2}}],["retries",{"2":{"27":1,"51":1}}],["returns",{"2":{"25":1,"29":1,"33":1}}],["return",{"2":{"4":1,"14":2,"22":1,"25":1,"26":3,"44":1}}],["returned",{"2":{"4":2,"10":1,"16":1,"24":1,"31":1,"51":1}}],["review",{"2":{"22":1}}],["revisited",{"0":{"15":1},"1":{"16":1,"17":1,"18":1,"19":1}}],["revolves",{"2":{"22":1}}],["register",{"2":{"29":1}}],["registered",{"2":{"4":1,"5":1}}],["regardless",{"2":{"22":1}}],["recovery",{"2":{"27":1}}],["recommendation",{"2":{"44":1}}],["recommendations",{"2":{"41":1}}],["recommended",{"2":{"41":1}}],["recommend",{"2":{"22":1,"44":1}}],["receivedroutingkey=c77a8a1d",{"2":{"5":1}}],["receivedexchange=",{"2":{"5":1}}],["receiveddeliverymode=non",{"2":{"5":1}}],["received",{"2":{"5":1,"10":4,"12":2,"18":1,"22":2,"25":2,"54":1}}],["receive",{"2":{"4":1,"8":1,"46":1,"52":1,"54":1}}],["reference",{"0":{"20":1},"1":{"21":1,"22":1,"23":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"30":1,"31":1,"32":1,"33":1,"34":1},"2":{"43":1}}],["removed",{"2":{"19":1}}],["remember",{"2":{"10":1}}],["rewind",{"2":{"11":1}}],["reactivity",{"2":{"39":1}}],["reached",{"2":{"25":1}}],["readable",{"2":{"44":1}}],["ready",{"2":{"12":1}}],["read",{"2":{"11":1,"22":1}}],["reasonable",{"2":{"18":1}}],["reason",{"2":{"10":1}}],["really",{"2":{"0":1,"4":2,"5":2,"8":1,"10":1,"18":1,"55":1}}],["repair",{"2":{"51":1}}],["reprise",{"0":{"12":1}}],["represents",{"2":{"9":1}}],["replies",{"2":{"8":1}}],["reply",{"2":{"8":2,"9":1,"10":2,"13":1,"15":1,"17":1,"19":1}}],["replyto=c77a8a1d",{"2":{"5":1}}],["replyto=94f0fff4",{"2":{"4":1}}],["re",{"2":{"9":1,"10":2,"12":1}}],["requested",{"2":{"15":1}}],["requests",{"2":{"10":2}}],["request",{"2":{"8":1,"9":1,"10":1}}],["requirement",{"2":{"45":1,"50":1}}],["requirements",{"0":{"1":1},"2":{"10":1}}],["required",{"2":{"8":1,"18":2,"38":1,"40":2,"41":1}}],["require",{"2":{"4":1,"36":1}}],["requires",{"2":{"1":1}}],["redelivered=false",{"2":{"5":1}}],["resource",{"2":{"34":1}}],["resources",{"2":{"3":1,"28":1,"50":1}}],["resilience",{"2":{"14":1,"55":1}}],["resilient",{"2":{"14":1}}],["result",{"2":{"11":1,"15":1}}],["results",{"2":{"4":3,"26":1}}],["rest",{"2":{"10":2,"41":1}}],["responsibility",{"2":{"55":1}}],["responsibilities",{"2":{"38":1,"55":1}}],["responsible",{"2":{"15":1,"18":1,"47":1}}],["response",{"0":{"6":1,"35":1,"41":1,"45":1,"53":1,"54":1,"55":1},"1":{"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"36":1,"37":1,"38":1,"39":1,"40":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1},"2":{"5":12,"6":1,"7":1,"9":5,"10":7,"11":3,"12":3,"13":2,"14":2,"15":3,"17":2,"18":10,"19":3,"22":4,"26":1,"29":6,"30":2,"31":1,"32":3,"33":3,"34":1,"35":1,"37":1,"38":1,"40":1,"41":2,"42":1,"43":1,"44":1,"45":5,"47":3,"48":2,"49":1,"51":1,"52":2,"53":2,"54":2,"55":2}}],["responsebuilder",{"0":{"29":1,"30":1,"34":1},"1":{"30":1,"31":1,"32":1,"33":1,"34":1},"2":{"5":4,"21":1,"29":9}}],["responses",{"0":{"5":1},"2":{"4":3,"5":3,"8":2,"10":3,"11":5,"12":2,"15":1,"22":1,"25":2,"30":1,"31":1,"34":2,"37":1,"40":1,"44":1,"45":1,"46":1,"52":1,"53":1,"54":4}}],["responder",{"2":{"33":1}}],["respondwithauthors",{"2":{"29":2}}],["respond",{"2":{"14":1}}],["responds",{"2":{"9":1,"45":2,"53":1}}],["responding",{"2":{"5":1,"29":3}}],["respondto",{"2":{"5":1,"29":3,"30":1,"31":1,"34":2}}],["x3c",{"2":{"4":5,"5":5,"22":1,"24":3,"27":2,"31":3}}],["x",{"2":{"1":1,"4":1,"5":3}}],["2119",{"2":{"41":1}}],["2019",{"2":{"55":1}}],["2015",{"2":{"55":1}}],["20",{"2":{"28":1,"34":1}}],["2>",{"2":{"4":1,"5":1}}],["2",{"0":{"38":1},"2":{"1":1,"4":2,"5":1,"14":1,"18":2,"28":1}}],["ll",{"2":{"21":2}}],["luckily",{"2":{"18":1}}],["luck",{"2":{"9":1}}],["levels",{"2":{"40":1}}],["level",{"0":{"36":1,"37":1,"38":1,"39":1,"40":1},"2":{"37":1,"38":1,"40":1,"42":1}}],["leverage",{"2":{"15":1}}],["lewis",{"2":{"29":1}}],["lenient",{"2":{"28":1}}],["lesson",{"2":{"55":1}}],["less",{"2":{"10":1,"39":1}}],["leave",{"2":{"41":1}}],["leads",{"2":{"37":1}}],["lead",{"2":{"36":1}}],["learning",{"2":{"55":1}}],["learned",{"2":{"15":1,"55":1}}],["learn",{"2":{"7":1}}],["least",{"2":{"1":1,"10":1,"14":1,"25":1}}],["letting",{"2":{"9":1}}],["let",{"2":{"7":1,"8":1,"11":3,"13":1,"15":1,"16":1,"19":1,"23":1,"30":1}}],["lands",{"2":{"55":1}}],["language",{"2":{"8":1,"15":1,"44":2}}],["latencies",{"2":{"55":1}}],["later",{"2":{"1":1,"9":1,"10":1,"14":1,"17":1,"19":1,"29":1}}],["lag",{"2":{"37":1}}],["lazy",{"2":{"26":1,"34":1}}],["lazily",{"2":{"26":1}}],["law",{"2":{"10":1}}],["large",{"2":{"5":1}}],["literally",{"2":{"55":1}}],["living",{"2":{"39":1}}],["lived",{"2":{"50":1}}],["live",{"2":{"17":1}}],["like",{"2":{"35":1,"37":1,"41":2,"52":1}}],["limitless",{"2":{"40":1}}],["limiting",{"2":{"25":1}}],["limit",{"2":{"23":2,"25":1}}],["line",{"2":{"16":1}}],["lines",{"2":{"4":1}}],["liberally",{"2":{"10":2}}],["library",{"0":{"13":1,"16":1},"2":{"0":1,"8":4,"9":1,"10":1,"12":1,"13":4,"14":3,"15":1,"17":2,"18":2,"19":2}}],["listen",{"2":{"55":1}}],["listening",{"2":{"52":2,"54":2}}],["list",{"2":{"10":2,"12":1,"14":4,"15":1,"16":1,"17":1,"18":1}}],["lt",{"2":{"4":3,"5":3,"24":2,"26":5,"31":2,"33":5}}],["lost",{"2":{"51":1}}],["loosen",{"2":{"37":1}}],["look",{"2":{"21":1,"23":1,"30":1,"37":1}}],["looks",{"2":{"17":1}}],["log",{"2":{"28":1}}],["logging",{"2":{"23":1,"27":1}}],["logs",{"2":{"4":1}}],["longer",{"2":{"40":1}}],["long",{"2":{"11":2,"25":2}}],["lovers",{"0":{"11":1}}],["lock",{"2":{"10":1}}],["location",{"2":{"8":1,"38":1,"43":1,"46":1}}],["local",{"2":{"39":1}}],["localhost",{"2":{"3":2}}],["locally",{"2":{"3":1}}],["lots",{"2":{"55":1}}],["lot",{"2":{"10":1,"37":2,"55":2}}],["loading",{"2":{"2":1}}],["fetched",{"2":{"26":1}}],["feel",{"2":{"21":1}}],["few",{"2":{"18":1,"25":1,"33":1,"55":1}}],["feature",{"2":{"16":1,"28":1}}],["features",{"2":{"14":1}}],["follow",{"2":{"41":2}}],["following",{"2":{"13":1,"19":1,"22":1,"29":1,"42":1,"49":1}}],["forward",{"2":{"19":1}}],["forcing",{"2":{"14":1}}],["forces",{"2":{"11":1,"14":1}}],["force",{"2":{"11":1,"55":1}}],["formal",{"2":{"41":1}}],["formats",{"2":{"36":1}}],["format",{"2":{"10":1,"16":1,"18":2,"29":2}}],["form",{"2":{"39":1}}],["formed",{"2":{"10":1,"16":1}}],["foreach",{"2":{"4":1}}],["for",{"0":{"55":1},"2":{"0":1,"1":1,"2":1,"4":5,"5":3,"6":1,"8":4,"10":1,"11":3,"12":1,"14":1,"15":3,"16":4,"17":1,"18":4,"19":1,"21":1,"22":2,"23":2,"24":1,"26":1,"27":1,"28":1,"29":3,"30":1,"31":2,"33":2,"37":3,"38":1,"40":1,"42":2,"44":3,"45":1,"47":3,"49":1,"50":1,"52":2,"54":2,"55":1}}],["flexibility",{"2":{"39":1}}],["fluid",{"0":{"23":1,"30":1},"2":{"24":1,"29":1,"31":1}}],["fluent",{"2":{"22":1}}],["flavour",{"0":{"18":1},"2":{"41":1}}],["flaw",{"2":{"11":1,"12":1}}],["flow",{"0":{"14":1}}],["flood",{"2":{"11":1}}],["fasterxml",{"2":{"29":1}}],["fact",{"2":{"29":1}}],["failures",{"2":{"55":1}}],["failure",{"2":{"28":1}}],["fails",{"2":{"27":1}}],["fail",{"2":{"14":1,"50":1}}],["fallbacks",{"2":{"14":1,"51":1}}],["fallback",{"2":{"11":1}}],["fault",{"2":{"4":1}}],["fundamental",{"2":{"55":1}}],["fulfilled",{"2":{"44":1}}],["fulfill",{"2":{"40":1}}],["fulfilling",{"2":{"25":1}}],["full",{"2":{"5":1}}],["futures",{"2":{"21":1}}],["further",{"2":{"10":1}}],["filters",{"2":{"44":1}}],["fit",{"2":{"41":1}}],["fits",{"2":{"8":1}}],["fixed",{"2":{"36":1}}],["field",{"2":{"22":2}}],["first",{"2":{"10":1,"16":1,"17":2,"37":1}}],["fiction",{"2":{"8":1,"14":1,"17":1}}],["fictional",{"2":{"7":1}}],["fi",{"0":{"8":1},"2":{"8":6,"9":1,"10":1,"12":1,"13":3,"14":2,"15":4,"17":4,"18":2,"19":4}}],["findallcurrentusertokens",{"2":{"34":1}}],["findalloffersbydayofweek",{"2":{"34":1}}],["findauthors",{"2":{"22":2}}],["find",{"2":{"29":1,"36":1}}],["final",{"2":{"22":1,"29":1}}],["finally",{"2":{"5":1}}],["finished",{"2":{"5":1}}],["fred",{"2":{"55":1}}],["free",{"2":{"50":1}}],["frame",{"2":{"45":1}}],["from",{"2":{"5":1,"9":3,"10":3,"12":1,"14":1,"15":3,"22":1,"28":1,"29":3,"30":1,"33":4,"34":1,"37":1,"40":2,"41":1,"44":1,"48":1,"55":3}}],["friendly",{"2":{"0":1}}],["ignore",{"2":{"52":1}}],["idea",{"2":{"41":1}}],["ideas",{"2":{"39":1}}],["identified",{"2":{"35":1}}],["immediately",{"2":{"29":1,"39":1}}],["impossible",{"2":{"36":1}}],["important",{"2":{"8":1,"10":2,"11":2,"18":2}}],["import",{"2":{"2":1}}],["implementing",{"2":{"42":1,"55":1}}],["implementation",{"2":{"21":1,"35":1,"47":1}}],["implementations",{"2":{"18":1,"50":1,"52":1}}],["implemented",{"2":{"14":1}}],["imperative",{"2":{"10":1,"21":1}}],["illustrates",{"2":{"14":1}}],["i",{"2":{"9":1,"10":3,"11":1,"12":1,"13":1,"14":5,"15":1,"17":1,"18":2,"19":1,"35":1,"36":1,"37":1,"41":1,"44":1,"55":6}}],["if",{"2":{"4":1,"5":1,"10":1,"11":1,"12":1,"15":1,"18":3,"25":3,"27":1,"40":1,"51":1}}],["issues",{"2":{"52":1}}],["isbn",{"2":{"16":1}}],["is",{"0":{"6":1},"1":{"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1},"2":{"2":5,"3":3,"4":4,"5":4,"6":1,"7":1,"8":5,"10":9,"11":5,"12":3,"13":1,"14":4,"15":2,"16":2,"17":1,"18":8,"19":2,"21":3,"22":7,"25":3,"26":4,"27":1,"28":1,"29":11,"31":1,"33":4,"36":1,"37":1,"38":1,"40":4,"41":2,"44":3,"45":1,"46":1,"47":1,"49":2,"50":1,"51":1,"52":3,"54":1}}],["independently",{"2":{"36":1,"37":1}}],["investigate",{"2":{"51":1}}],["inversion",{"0":{"14":1},"2":{"14":1,"55":1}}],["involvement",{"2":{"44":1}}],["invoked",{"2":{"26":1,"29":1}}],["injecting",{"2":{"22":1}}],["injected",{"2":{"22":1,"29":2}}],["int",{"2":{"25":2,"32":1}}],["introducing",{"2":{"21":1}}],["into",{"2":{"14":1,"28":1,"29":1,"38":1,"40":1,"41":1}}],["integration",{"2":{"28":1,"38":1}}],["intent",{"0":{"42":1},"2":{"45":2,"52":2}}],["intention",{"2":{"21":1}}],["intend",{"2":{"31":1}}],["intended",{"2":{"7":1,"41":1}}],["interpolated",{"2":{"47":1,"48":1}}],["interpretable",{"2":{"44":1}}],["interpret",{"2":{"22":1}}],["interpreted",{"2":{"10":1,"29":1}}],["internal",{"2":{"10":1}}],["interest",{"2":{"9":1,"13":1,"14":1}}],["initial",{"0":{"24":1,"31":1},"2":{"15":1,"22":2,"23":1,"24":1,"26":1,"29":1,"30":1,"31":1}}],["initializes",{"2":{"5":1}}],["initiates",{"2":{"4":1,"43":1,"47":1}}],["insight",{"2":{"38":1}}],["inside",{"2":{"10":1}}],["instead",{"2":{"9":1,"12":1,"26":1,"46":1,"55":1}}],["installation",{"0":{"2":1},"1":{"3":1}}],["inspect",{"2":{"3":1}}],["info",{"2":{"40":1}}],["informal",{"0":{"27":1},"2":{"22":1,"23":1,"27":1,"28":1}}],["information",{"2":{"2":2,"4":1,"9":3,"10":4,"18":1,"27":1,"29":1,"36":1,"40":2,"42":1,"43":1,"45":2,"47":1,"54":2,"55":1}}],["infrastructure",{"2":{"2":1}}],["in",{"0":{"13":1},"2":{"0":1,"4":6,"5":2,"7":1,"8":2,"9":1,"10":6,"11":3,"12":2,"13":3,"14":5,"15":5,"17":1,"18":4,"19":2,"21":4,"22":6,"25":1,"26":6,"27":1,"29":7,"33":1,"34":1,"36":2,"37":2,"40":2,"41":3,"42":1,"44":1,"45":1,"46":1,"49":2,"55":4}}],["iterator",{"2":{"32":1,"33":2}}],["its",{"2":{"29":1,"44":1,"47":1,"48":1}}],["it",{"2":{"0":2,"1":1,"2":3,"3":1,"4":5,"5":2,"8":2,"9":2,"10":5,"11":3,"12":5,"14":2,"15":1,"16":2,"17":2,"18":2,"21":1,"22":5,"24":1,"25":1,"26":1,"27":1,"28":1,"29":10,"31":1,"33":3,"34":1,"35":1,"36":1,"37":1,"41":3,"42":1,"44":2,"45":4,"47":2,"50":1,"52":2,"53":1,"55":5}}],["human",{"2":{"44":1}}],["huge",{"2":{"11":1}}],["his",{"2":{"55":1}}],["high",{"2":{"42":1}}],["highly",{"2":{"0":1,"6":1,"14":1}}],["hints",{"2":{"7":1,"29":1}}],["hint",{"2":{"5":1,"29":1}}],["he",{"2":{"55":1}}],["hearing",{"2":{"55":1}}],["healthy",{"2":{"37":1}}],["headers=",{"2":{"4":1,"5":3}}],["helps",{"2":{"19":1}}],["hey",{"2":{"12":1}}],["here",{"2":{"4":2,"5":2,"18":1,"29":1,"41":1}}],["hope",{"2":{"14":1}}],["hopefully",{"2":{"4":1}}],["however",{"2":{"21":1,"29":2}}],["how",{"2":{"2":1,"4":2,"5":1,"10":1,"11":3,"15":1,"18":1,"19":1,"21":1,"22":2,"27":1,"28":1,"29":1,"32":1,"38":1,"47":1,"55":1}}],["had",{"2":{"55":2}}],["harmful",{"2":{"52":1}}],["hard",{"2":{"21":1,"36":1,"37":1,"55":2}}],["harder",{"2":{"10":1}}],["handling",{"2":{"28":1}}],["handler",{"2":{"27":1}}],["handle",{"2":{"10":2,"12":2,"46":1,"52":2}}],["handled",{"2":{"4":1,"10":1,"50":2}}],["hash",{"2":{"8":1}}],["has",{"2":{"8":1,"10":2,"18":1,"19":1,"25":1,"51":1,"53":1}}],["have",{"0":{"17":1},"2":{"0":1,"9":1,"10":7,"12":1,"13":1,"14":1,"16":1,"17":1,"18":1,"22":1,"28":1,"47":1,"48":1,"54":1}}],["http",{"2":{"3":2}}],["https",{"2":{"3":1}}],["philosophy",{"2":{"29":1}}],["performance",{"2":{"36":1,"37":1}}],["per",{"2":{"16":1,"26":1,"33":1}}],["perhaps",{"2":{"10":1,"51":1}}],["persistent",{"2":{"4":1,"5":3,"39":1}}],["pebble",{"2":{"10":1,"13":1,"18":2,"19":1}}],["plan",{"2":{"11":1}}],["platform",{"2":{"8":1}}],["plain",{"2":{"7":1}}],["please",{"2":{"2":1,"41":1,"52":1}}],["pseudo",{"2":{"7":1}}],["purposes",{"2":{"49":1}}],["purgatory",{"0":{"36":1}}],["pull",{"2":{"18":1}}],["puts",{"2":{"15":1}}],["push",{"2":{"10":1}}],["pun",{"2":{"7":1}}],["publishers",{"2":{"18":1,"29":1,"38":1,"40":1,"47":1,"48":1}}],["publisher",{"0":{"47":1},"2":{"5":1,"12":1,"18":1,"29":1,"32":1,"43":1,"46":1,"47":3,"50":1,"51":3,"53":2}}],["published=1589642489941",{"2":{"5":2}}],["published=1589642489894",{"2":{"5":1}}],["published=1589642002076",{"2":{"4":1}}],["published",{"2":{"4":1,"5":4,"8":1,"9":1,"10":3,"11":1,"12":1,"13":1,"15":1,"17":1,"19":1,"22":4,"29":2,"32":1,"43":1,"44":1,"45":1,"47":1}}],["publish",{"0":{"51":1,"53":1},"2":{"4":2,"5":4,"8":1,"22":1,"29":1,"31":1,"32":1,"43":1,"45":1,"51":1,"52":1,"55":1}}],["publishing",{"2":{"4":1,"8":1,"10":1,"17":1,"22":1,"47":1,"50":1,"53":1}}],["public",{"2":{"2":2,"4":2,"5":2,"22":3,"29":3}}],["practically",{"2":{"37":1}}],["prepare",{"0":{"50":1}}],["prepared",{"2":{"26":1}}],["pretty",{"2":{"35":1,"37":1}}],["premiss",{"2":{"29":1}}],["presentation",{"2":{"55":1}}],["presented",{"2":{"14":1,"15":1}}],["preserves",{"2":{"28":1}}],["previously",{"2":{"41":1,"54":1}}],["previous",{"2":{"10":1}}],["principles",{"2":{"41":1}}],["printed",{"2":{"4":1,"5":1}}],["println",{"2":{"4":1}}],["private",{"2":{"22":2,"29":1}}],["price",{"2":{"10":1}}],["priority=0",{"2":{"4":1,"5":3}}],["process",{"2":{"55":1}}],["proceeds",{"2":{"55":1}}],["procedural",{"2":{"21":1}}],["profile",{"2":{"34":1}}],["protect",{"2":{"52":1}}],["protected",{"2":{"28":1}}],["protocols",{"2":{"37":1}}],["protocol",{"0":{"16":1,"41":1},"1":{"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1},"2":{"17":1,"18":2,"29":3,"38":1,"41":1}}],["programs",{"2":{"21":2}}],["programming",{"2":{"8":1}}],["probable",{"2":{"14":1}}],["problems",{"2":{"55":1}}],["problem",{"2":{"10":1,"12":1}}],["properly",{"2":{"53":1}}],["properties",{"2":{"16":1,"25":1}}],["proper",{"2":{"11":1,"38":1}}],["promises",{"2":{"11":1,"21":1}}],["provide",{"2":{"21":1,"22":1,"26":1,"27":1,"29":2,"34":1,"40":1,"42":1,"52":1}}],["provides",{"2":{"17":1,"22":1,"24":1,"29":1,"31":1,"32":1,"55":1}}],["provided",{"2":{"5":1,"22":1,"26":1,"29":1,"33":2,"51":1,"53":2}}],["providing",{"2":{"5":1}}],["project",{"2":{"2":1,"36":1}}],["production",{"2":{"0":1}}],["power",{"2":{"15":1}}],["powerful",{"2":{"4":1,"10":1,"15":1}}],["points",{"2":{"36":1}}],["point",{"2":{"14":2,"18":1,"22":1,"28":1,"29":1,"55":1}}],["position",{"2":{"15":1}}],["possible",{"2":{"12":1,"14":1,"16":1,"28":1,"45":1,"51":1}}],["post",{"2":{"10":3}}],["postel",{"2":{"10":1}}],["popular",{"2":{"10":1}}],["polo",{"2":{"5":5}}],["polos",{"2":{"4":2}}],["port",{"2":{"3":1}}],["p",{"2":{"3":2}}],["parameters",{"2":{"44":1}}],["parameter",{"2":{"26":2,"29":3}}],["parsing",{"2":{"16":1,"18":1}}],["partial",{"2":{"40":1}}],["partitioning",{"2":{"29":1}}],["particular",{"2":{"8":1}}],["part",{"2":{"10":1,"11":1,"15":1,"21":1,"27":1}}],["patter",{"2":{"10":1}}],["pattern",{"2":{"0":1,"6":1,"7":1,"11":3,"12":1,"14":2,"15":2,"18":2,"19":1,"37":1,"40":1,"41":3,"42":2,"47":1,"49":1,"52":1,"55":2}}],["payloads",{"2":{"15":1,"39":1}}],["payload",{"2":{"9":1,"12":1,"15":1,"18":2,"22":1,"38":1,"43":1,"45":2,"54":1}}],["password",{"2":{"3":1}}],["pages",{"2":{"36":1}}],["page",{"2":{"2":1}}],["wrong",{"2":{"12":1,"14":1}}],["written",{"2":{"37":1}}],["write",{"2":{"10":2,"21":1}}],["writing",{"2":{"10":2,"21":1}}],["wrapped",{"2":{"0":1}}],["word",{"2":{"36":1}}],["worse",{"2":{"10":1}}],["work",{"2":{"1":1,"2":2,"14":1,"16":1}}],["working",{"2":{"0":1}}],["would",{"2":{"10":2,"12":3,"15":1,"18":1,"55":3}}],["whish",{"2":{"44":2}}],["whishes",{"2":{"14":1}}],["which",{"2":{"4":1,"9":2,"10":2,"14":1,"29":1,"32":1,"38":1,"39":1,"40":1,"42":1,"44":2,"49":1,"50":1,"55":2}}],["whether",{"2":{"25":1}}],["where",{"2":{"8":1,"26":1,"40":1,"51":1}}],["whenever",{"2":{"29":1}}],["when",{"2":{"3":1,"4":1,"21":1,"25":1,"28":1,"29":1,"53":1}}],["what",{"0":{"6":1,"13":1},"1":{"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1},"2":{"10":1,"11":3,"12":1,"13":2,"14":3,"18":1,"29":1,"41":1,"55":1}}],["who",{"2":{"5":1,"8":1,"9":1,"10":1}}],["waiting",{"2":{"23":1}}],["waitingfor",{"2":{"4":1,"22":2,"23":1,"25":4,"28":4}}],["wait",{"2":{"11":2,"14":1}}],["was",{"2":{"10":3,"16":2,"55":2}}],["walking",{"2":{"7":1}}],["ways",{"2":{"14":1,"33":1}}],["way",{"0":{"55":1},"2":{"2":1,"4":1,"14":1,"21":1,"25":1,"40":1,"41":2,"44":1,"49":1}}],["www",{"2":{"3":1}}],["wide",{"2":{"36":1}}],["wiki",{"2":{"36":1,"37":1}}],["wiring",{"2":{"2":1}}],["willingly",{"2":{"48":1,"52":1}}],["will",{"2":{"2":1,"3":2,"4":2,"5":2,"10":1,"11":1,"14":2,"22":3,"25":2,"26":1,"29":4,"32":2,"33":1,"36":1,"51":2,"53":1,"55":1}}],["withbatchesof",{"2":{"30":1,"32":1,"34":2}}],["within",{"2":{"15":1,"40":1,"45":1}}],["without",{"2":{"5":1,"9":1,"38":1,"45":2}}],["withall",{"2":{"5":2,"29":1,"30":1,"32":1}}],["with",{"0":{"19":1},"2":{"1":1,"2":3,"3":1,"4":2,"5":2,"8":1,"10":4,"11":1,"12":1,"14":1,"15":3,"17":1,"18":2,"19":2,"21":3,"22":2,"23":2,"26":1,"28":2,"29":2,"30":2,"32":1,"34":2,"35":1,"36":1,"37":2,"38":1,"44":2,"45":1,"46":1,"52":2,"54":1,"55":3}}],["were",{"2":{"25":1,"55":1}}],["well",{"2":{"2":1,"10":1,"11":1,"12":1,"29":1,"35":1}}],["we",{"2":{"0":1,"1":1,"4":3,"8":2,"9":4,"10":17,"11":2,"12":5,"13":2,"14":1,"15":4,"16":2,"17":3,"18":5,"19":2,"21":4,"22":1,"24":1,"29":1,"31":2,"55":1}}],["törnström",{"2":{"55":1}}],["turns",{"2":{"55":1}}],["tune",{"2":{"34":2}}],["typically",{"2":{"36":1,"46":2}}],["types",{"0":{"23":1,"30":1},"2":{"21":1,"22":1,"23":1,"27":1,"29":1,"30":1,"39":1}}],["type",{"2":{"4":2,"5":1,"7":1,"14":1,"22":2,"23":1,"24":2,"26":2,"29":3,"30":1,"31":2,"41":1,"43":1}}],["t>",{"2":{"24":3,"27":1,"31":3}}],["tip",{"2":{"27":1,"29":1,"45":1,"46":1,"52":1}}],["title",{"2":{"16":1}}],["titles",{"2":{"10":1,"18":1}}],["tightly",{"2":{"14":1}}],["timeunit",{"2":{"25":1}}],["timeouts",{"2":{"14":1,"40":1,"51":1}}],["timeout",{"2":{"4":1,"25":2}}],["time",{"2":{"3":1,"14":1,"17":1,"18":1,"19":3,"25":1,"26":5,"33":3,"37":1,"45":1,"51":2,"52":2,"54":2,"55":1}}],["t",{"2":{"8":1,"10":1,"12":1,"17":1,"24":2,"26":4,"31":2,"33":4}}],["temporary",{"2":{"50":1}}],["temporal",{"2":{"37":1}}],["temporalunit",{"2":{"25":1}}],["tend",{"2":{"37":1,"39":1}}],["team",{"2":{"36":1}}],["teams",{"2":{"16":1,"37":1}}],["text",{"2":{"7":1,"22":1,"29":1}}],["technically",{"2":{"44":1}}],["technical",{"2":{"7":1}}],["terms",{"2":{"44":2}}],["terminates",{"2":{"23":3,"30":2}}],["terminals",{"2":{"27":1}}],["terminal",{"0":{"26":1,"33":1},"2":{"22":2,"23":3,"26":3,"29":1,"30":2,"33":2}}],["term",{"2":{"4":1,"8":1,"13":1,"15":1,"22":2,"24":2,"29":3,"31":2,"33":1,"44":1}}],["truly",{"2":{"55":1}}],["trust",{"2":{"52":1}}],["trigger",{"2":{"39":1}}],["trivial",{"2":{"29":1}}],["tried",{"2":{"29":1}}],["tries",{"2":{"3":1,"42":1}}],["transferred",{"2":{"54":1}}],["transfer",{"2":{"29":1}}],["transport",{"2":{"29":1}}],["transparency",{"2":{"28":1}}],["transparent",{"2":{"21":1}}],["trailing",{"2":{"16":1}}],["try",{"2":{"21":3,"27":2,"32":1}}],["trying",{"2":{"5":1,"14":2}}],["talk",{"2":{"55":2}}],["tangle",{"2":{"37":1}}],["take",{"2":{"23":1,"30":1,"39":1,"40":1,"41":1}}],["taken",{"2":{"0":1,"18":1,"40":1}}],["takingatleast",{"2":{"23":1,"25":1,"28":2}}],["takingatmost",{"2":{"23":1,"25":1,"28":3}}],["table",{"2":{"22":1,"29":1}}],["tasks",{"2":{"4":1,"21":1}}],["tags",{"2":{"18":1}}],["tag",{"2":{"3":1}}],["three",{"2":{"29":1}}],["thread",{"2":{"22":2,"29":1,"33":1}}],["throttle",{"2":{"34":1}}],["throwable>",{"2":{"27":1}}],["thrown",{"2":{"27":1}}],["throw",{"2":{"26":1}}],["throwing",{"2":{"23":1,"28":1}}],["through",{"2":{"7":1,"14":1,"55":1}}],["than",{"2":{"21":1,"55":1}}],["that",{"2":{"0":1,"2":3,"4":4,"5":1,"8":4,"9":1,"10":7,"11":3,"13":1,"14":4,"15":1,"16":2,"17":1,"18":2,"19":2,"21":3,"22":2,"26":1,"27":1,"28":1,"29":4,"31":1,"32":2,"33":2,"34":1,"44":1,"45":2,"47":1,"48":1,"50":3,"51":2,"52":2,"53":1,"55":1}}],["thinking",{"2":{"10":2,"14":1,"21":1}}],["think",{"0":{"55":1},"2":{"9":1,"10":2,"11":1,"15":1,"27":1,"37":1,"55":2}}],["things",{"2":{"7":1,"10":1,"21":1,"55":1}}],["this",{"2":{"2":2,"4":3,"5":1,"8":3,"9":2,"10":10,"11":4,"12":4,"14":5,"15":4,"16":1,"18":3,"19":1,"21":1,"22":4,"29":3,"36":1,"37":1,"38":2,"39":1,"40":3,"41":1,"44":2,"45":1,"51":2,"55":2}}],["though",{"2":{"7":1}}],["them",{"2":{"21":3}}],["themselves",{"2":{"10":1,"13":1,"18":2,"19":1}}],["these",{"2":{"21":1}}],["their",{"2":{"16":1,"21":1,"22":1,"37":1}}],["then",{"2":{"8":1}}],["theory",{"2":{"7":1}}],["they",{"2":{"4":1}}],["therefore",{"2":{"50":1}}],["there",{"0":{"8":1,"11":1},"2":{"2":1,"3":1,"4":1,"11":4,"12":1,"13":1,"14":1,"24":1,"25":1,"26":1,"27":1,"29":1,"31":1,"50":1,"55":2}}],["the",{"0":{"9":1,"10":1,"13":1,"15":1,"19":1,"55":1},"1":{"16":1,"17":1,"18":1,"19":1},"2":{"1":1,"2":8,"3":8,"4":12,"5":15,"7":3,"8":15,"9":10,"10":29,"11":12,"12":7,"13":5,"14":22,"15":10,"16":3,"17":6,"18":21,"19":9,"21":8,"22":27,"23":2,"24":5,"25":11,"26":15,"27":4,"28":4,"29":37,"30":2,"31":4,"32":4,"33":7,"34":1,"35":3,"37":5,"38":2,"39":2,"40":4,"41":6,"42":4,"44":3,"45":5,"46":3,"47":6,"48":2,"49":3,"50":4,"51":6,"52":4,"53":4,"54":1,"55":9}}],["token",{"2":{"34":1}}],["told",{"2":{"41":1}}],["tolkien",{"2":{"29":1}}],["tolerance",{"2":{"4":1}}],["together",{"2":{"15":2,"25":1}}],["towards",{"2":{"14":1,"37":1}}],["total",{"2":{"14":1}}],["top",{"0":{"9":1,"17":1},"2":{"12":1,"14":1,"17":1}}],["topic",{"2":{"8":1,"33":1,"46":1}}],["toofewoffersconstraintexception",{"2":{"28":2}}],["tools",{"2":{"21":2}}],["too",{"2":{"1":1,"2":1,"28":1,"40":1,"41":1}}],["to",{"0":{"3":1},"2":{"0":1,"2":5,"3":6,"4":10,"5":6,"7":1,"8":8,"9":9,"10":16,"11":7,"12":6,"13":2,"14":9,"15":5,"16":5,"17":2,"18":7,"19":1,"21":9,"22":9,"25":4,"26":9,"27":3,"28":3,"29":14,"31":1,"32":3,"33":2,"34":3,"36":3,"37":4,"38":1,"39":4,"40":2,"41":3,"42":2,"43":1,"44":3,"45":7,"46":1,"47":3,"48":3,"50":4,"51":3,"52":6,"53":1,"54":1,"55":5}}],["g",{"2":{"47":1}}],["gained",{"2":{"38":1}}],["gain",{"2":{"37":1}}],["gathered",{"2":{"4":1}}],["given",{"2":{"24":1,"25":3,"26":1,"29":3,"30":1,"31":1,"32":2}}],["github",{"2":{"2":1}}],["george",{"2":{"55":2}}],["general",{"2":{"41":1}}],["genre",{"2":{"15":2}}],["get",{"2":{"2":1,"16":1,"38":1}}],["getting",{"0":{"0":1},"1":{"1":1,"2":1,"3":1,"4":1,"5":1}}],["great",{"2":{"10":2,"16":1,"17":1,"54":1,"55":1}}],["gradle",{"2":{"2":1}}],["grade",{"2":{"0":1}}],["guides",{"2":{"42":1}}],["guarantees",{"2":{"55":1}}],["guaranteed",{"2":{"49":1}}],["guarantee",{"2":{"10":1}}],["guest",{"2":{"3":2}}],["go",{"2":{"29":1,"55":2}}],["goal",{"2":{"21":1}}],["gods",{"2":{"10":1,"13":1,"18":2,"19":1}}],["got",{"2":{"9":1}}],["good",{"0":{"8":1},"2":{"3":1,"55":1}}],["ghwp4twu9eyhi",{"2":{"5":1}}],["gt",{"2":{"4":3,"5":3,"24":2,"26":5,"31":2,"33":5}}],["aims",{"2":{"42":1}}],["api",{"0":{"23":1,"30":1},"2":{"21":1,"22":1,"24":1,"25":1,"27":1,"28":1,"29":1,"31":1,"34":1,"55":1}}],["apply",{"2":{"29":1}}],["applicationreadyevent",{"2":{"4":1,"5":1,"29":2}}],["application",{"2":{"2":1,"3":2,"4":2,"5":1,"29":2}}],["applications",{"2":{"0":1}}],["appropriate",{"2":{"44":1,"45":2,"50":1}}],["approximate",{"2":{"25":1}}],["approach",{"2":{"14":1,"50":1}}],["appears",{"2":{"18":2}}],["app",{"2":{"4":1}}],["awareness",{"2":{"21":1}}],["away",{"2":{"10":1}}],["added",{"2":{"19":1,"33":1}}],["addressable",{"2":{"46":1}}],["address",{"0":{"46":1,"50":1},"2":{"8":3,"9":2,"10":1,"12":1,"15":1,"43":1,"44":2,"45":1,"46":2,"50":2,"53":1,"54":1}}],["addressed",{"2":{"4":1}}],["able",{"2":{"10":1}}],["above",{"2":{"8":1,"9":1,"22":3,"29":2}}],["about",{"2":{"7":1,"9":2,"10":3,"11":1,"17":1,"21":1,"27":1,"37":1,"55":4}}],["agree",{"2":{"16":1}}],["agreed",{"2":{"10":1,"16":1,"29":1}}],["aggregated",{"2":{"14":1,"25":1}}],["aggregates",{"2":{"14":1}}],["against",{"2":{"52":1}}],["again",{"2":{"5":2,"18":2,"19":2}}],["autonomy",{"2":{"55":1}}],["autowired",{"2":{"4":1,"5":1}}],["authoritative",{"2":{"42":1}}],["authority",{"2":{"10":1}}],["authors",{"2":{"14":1,"22":4,"28":2,"29":5}}],["author",{"2":{"10":1}}],["availability",{"2":{"14":2,"40":1,"55":2}}],["available",{"2":{"2":1,"3":2,"44":1}}],["avoid",{"2":{"8":1,"10":1,"12":1}}],["ack",{"2":{"51":1,"53":1}}],["across",{"2":{"34":1,"55":1}}],["achieve",{"2":{"10":1}}],["actions",{"0":{"49":1},"1":{"50":1,"51":1,"52":1,"53":1,"54":1}}],["actor",{"2":{"43":2,"46":1,"47":2,"48":2}}],["actors",{"2":{"42":1}}],["act",{"2":{"10":1,"36":1}}],["actually",{"2":{"10":1,"14":1,"55":1}}],["actual",{"2":{"5":1,"10":1}}],["accepts",{"2":{"43":1}}],["acceptance",{"2":{"35":1}}],["access",{"2":{"22":2,"29":1}}],["accessed",{"2":{"3":1}}],["accident",{"2":{"15":1}}],["accumulates",{"2":{"14":1}}],["accomplish",{"2":{"4":1}}],["after",{"2":{"4":1,"14":1,"23":3,"25":1,"33":1,"45":1,"55":1}}],["although",{"2":{"37":1}}],["alternative",{"2":{"33":1}}],["almost",{"2":{"19":1,"40":1}}],["already",{"2":{"10":1,"37":1}}],["also",{"2":{"5":2,"8":1,"14":2,"15":2,"28":1,"29":1,"35":1,"40":1}}],["always",{"2":{"4":3,"11":1,"33":1}}],["allocated",{"2":{"50":1}}],["allow",{"2":{"15":1,"29":1}}],["allowing",{"2":{"10":1,"27":1}}],["allows",{"2":{"9":1,"18":1,"23":1,"28":1,"29":1,"40":1,"44":1}}],["all",{"2":{"3":1,"5":1,"8":2,"10":2,"11":1,"12":1,"14":2,"15":1,"18":1,"25":1,"26":1,"32":2,"36":1,"40":1,"44":1,"54":1}}],["alone",{"2":{"0":1}}],["answer",{"2":{"45":2}}],["another",{"2":{"18":2,"29":2}}],["anything",{"2":{"17":1}}],["any",{"0":{"8":1},"2":{"4":3,"5":1,"7":1,"8":1,"10":1,"11":2,"12":1,"15":2,"19":1,"21":1,"22":6,"24":1,"25":2,"26":1,"29":2,"31":1,"37":1,"38":1,"40":1,"41":1,"44":1,"47":2,"48":1,"49":1,"51":1,"52":3,"54":4}}],["an",{"0":{"3":1},"2":{"3":2,"4":1,"6":1,"8":2,"9":1,"13":1,"14":1,"17":1,"22":1,"25":1,"26":2,"27":1,"28":2,"34":1,"35":1,"42":1,"44":3,"45":4,"46":1,"47":1,"48":1,"50":1,"52":2,"54":1,"55":1}}],["annotations",{"2":{"29":1}}],["annotation",{"2":{"2":2,"4":1,"22":1,"29":1}}],["annotating",{"2":{"2":1}}],["and",{"0":{"40":1,"43":1,"49":1,"55":1},"1":{"44":1,"45":1,"46":1,"47":1,"48":1,"50":1,"51":1,"52":1,"53":1,"54":1},"2":{"0":1,"1":4,"2":1,"3":4,"4":6,"5":6,"7":2,"8":3,"9":1,"10":10,"11":3,"12":4,"13":1,"14":6,"15":4,"16":3,"17":1,"18":8,"19":2,"21":7,"22":8,"24":2,"25":2,"26":2,"28":1,"29":4,"31":1,"32":1,"33":1,"34":2,"35":2,"36":1,"37":4,"38":2,"39":6,"40":4,"41":3,"42":2,"44":3,"46":3,"47":1,"48":1,"49":1,"51":2,"52":2,"53":1,"54":1,"55":10}}],["aspect",{"2":{"18":1}}],["aspects",{"2":{"15":1}}],["assume",{"2":{"17":1,"18":1,"51":1,"53":1}}],["asserting",{"2":{"18":1}}],["assert",{"2":{"10":1,"54":1}}],["asimov",{"0":{"10":1},"2":{"12":1,"18":3,"19":2}}],["asynchronous",{"2":{"6":1,"7":1,"42":1,"47":1,"55":2}}],["asked",{"2":{"11":1}}],["ask",{"2":{"4":1}}],["as",{"2":{"2":1,"4":1,"5":1,"10":2,"12":4,"13":1,"14":2,"16":1,"22":5,"24":2,"25":1,"26":2,"27":1,"28":1,"29":11,"31":2,"33":2,"36":1,"38":1,"41":2,"42":2,"43":1,"44":2,"45":3,"52":1,"55":1}}],["amount",{"2":{"11":1,"25":2}}],["amp",{"0":{"2":1},"1":{"3":1}}],["amqp",{"0":{"3":1,"55":1},"2":{"0":1,"3":1}}],["atleast",{"2":{"25":1}}],["atmost",{"2":{"25":1}}],["attached",{"2":{"33":1}}],["attempt",{"2":{"22":1}}],["attr",{"2":{"0":1,"1":1,"2":1,"3":3,"4":1,"5":1,"21":3,"22":2,"28":1,"29":2}}],["at",{"2":{"1":1,"3":2,"4":1,"7":1,"8":1,"10":2,"11":1,"12":1,"13":1,"14":2,"17":1,"18":2,"19":2,"21":1,"23":1,"24":1,"25":1,"26":3,"28":1,"30":1,"31":1,"32":1,"33":3,"37":1,"38":1,"40":1,"44":1,"51":2,"52":2,"54":4,"55":4}}],["arrival",{"2":{"47":1}}],["arrived",{"2":{"53":1,"55":1}}],["arrive",{"2":{"11":2,"13":1}}],["architecture",{"2":{"40":1}}],["architectures",{"2":{"0":1,"6":1}}],["around",{"2":{"22":2,"29":1,"35":1,"39":1,"55":3}}],["argument",{"2":{"22":1}}],["arguably",{"2":{"10":1}}],["argue",{"2":{"10":1}}],["args",{"2":{"2":2}}],["are",{"2":{"0":1,"1":1,"4":6,"7":1,"9":2,"10":3,"11":1,"13":1,"14":3,"15":2,"16":1,"21":2,"22":1,"23":3,"25":1,"26":3,"28":1,"29":2,"32":1,"34":1,"36":1,"40":2,"41":1,"50":1,"51":1}}],["a",{"0":{"7":1,"16":1},"1":{"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1},"2":{"0":2,"2":1,"3":2,"4":8,"5":3,"7":1,"8":6,"9":7,"10":16,"11":8,"12":6,"13":2,"14":4,"15":4,"16":2,"17":3,"18":6,"19":1,"21":3,"22":9,"23":7,"24":1,"25":6,"26":2,"29":10,"30":3,"31":2,"32":3,"33":5,"34":2,"37":5,"38":2,"39":3,"40":2,"41":4,"42":3,"43":1,"44":8,"45":10,"46":7,"47":5,"48":3,"49":1,"50":2,"51":2,"52":5,"53":1,"54":4,"55":11}}],["bit",{"2":{"11":1,"18":1,"37":1}}],["bindings",{"2":{"3":1}}],["b",{"2":{"9":1,"55":4}}],["bad",{"2":{"44":1}}],["batch",{"2":{"30":1,"32":1,"34":1}}],["batches",{"2":{"30":1}}],["batching",{"0":{"32":1},"2":{"29":1,"30":2,"32":2}}],["backward",{"2":{"18":1}}],["back",{"2":{"8":1,"12":1,"15":1,"18":1,"55":1}}],["basic",{"2":{"8":1,"22":1,"29":1}}],["based",{"2":{"7":1,"36":1,"37":1,"39":1,"42":1,"46":1,"47":1,"49":1}}],["bd51",{"2":{"5":4}}],["both",{"2":{"10":1,"12":1,"14":1,"29":1}}],["bound",{"2":{"10":1,"29":1,"36":2,"37":1,"39":1,"40":1,"47":1,"48":1}}],["book",{"0":{"11":1},"2":{"10":1,"16":2,"17":1,"19":1}}],["bookshelf",{"2":{"13":2,"14":2}}],["books",{"0":{"8":1,"9":1,"17":1},"2":{"8":7,"9":1,"10":2,"12":2,"13":1,"14":4,"15":4,"17":4,"18":4,"19":5}}],["boot",{"2":{"0":1,"1":2,"2":1,"3":1,"4":1,"5":1}}],["body",{"2":{"4":1,"5":2,"9":2,"10":1,"12":2,"13":1,"16":2,"17":1,"18":2,"19":1,"54":1}}],["blocks",{"2":{"22":1}}],["blocking",{"2":{"4":1,"6":1,"23":1,"26":1,"36":1,"55":1}}],["block",{"2":{"4":1,"22":2}}],["breaking",{"2":{"38":1}}],["breakers",{"2":{"11":1}}],["broader",{"2":{"44":1}}],["broadly",{"2":{"21":1}}],["broker",{"0":{"3":1},"2":{"3":4,"4":1,"7":1,"46":1,"47":1}}],["brand",{"2":{"0":1,"1":1,"2":1,"3":3,"4":1,"5":1,"21":3,"22":2,"28":1,"29":2}}],["began",{"2":{"55":1}}],["begin",{"2":{"39":1}}],["best",{"2":{"50":1}}],["between",{"2":{"46":1,"55":1}}],["better",{"0":{"16":1},"2":{"10":1,"14":1,"26":1}}],["beyond",{"0":{"40":1},"2":{"39":1}}],["benefit",{"2":{"38":1,"55":1}}],["benefits",{"2":{"35":1}}],["below",{"2":{"22":2,"28":1,"29":2}}],["believe",{"2":{"21":1,"55":1}}],["bean",{"2":{"22":1,"29":1}}],["behind",{"2":{"21":1,"37":1}}],["been",{"2":{"14":1,"19":1,"51":1,"53":1}}],["being",{"2":{"4":1,"5":2,"13":1,"37":1}}],["before",{"2":{"3":1,"4":1,"5":1,"12":1,"50":1}}],["be",{"2":{"2":1,"3":1,"4":3,"7":1,"8":3,"9":2,"10":4,"11":4,"12":3,"15":1,"17":1,"18":3,"19":1,"22":2,"25":2,"26":1,"27":1,"28":3,"29":5,"32":2,"33":1,"37":1,"39":1,"40":3,"42":1,"44":2,"45":3,"47":2,"48":1,"49":1,"50":4,"51":2,"53":1}}],["build",{"2":{"22":1,"27":1,"33":2,"34":1}}],["builder",{"2":{"5":2,"22":2,"23":2,"25":1,"26":1,"27":1,"28":1,"29":5,"30":2,"32":1,"33":2}}],["building",{"2":{"0":1,"1":1,"5":1,"6":1,"21":1,"31":1}}],["built",{"2":{"4":2,"22":1,"25":3,"26":2,"29":1}}],["but",{"2":{"2":1,"8":1,"10":4,"11":4,"14":1,"18":2,"22":1,"37":2,"40":2,"41":1,"46":1}}],["by",{"0":{"55":1},"2":{"2":2,"3":3,"7":1,"9":1,"11":2,"14":1,"15":2,"18":1,"21":1,"22":2,"23":1,"25":1,"29":3,"32":1,"40":1,"42":1,"44":1,"49":1}}],["slas",{"2":{"40":1}}],["schema",{"2":{"40":1}}],["scramble",{"2":{"16":1}}],["scenario",{"2":{"11":1,"12":1,"13":1,"14":1}}],["science",{"2":{"8":1,"14":1,"17":1}}],["sci",{"0":{"8":1},"2":{"8":6,"9":1,"10":1,"12":1,"13":3,"14":2,"15":4,"17":4,"18":2,"19":4}}],["sky",{"2":{"10":1,"13":1,"18":2,"19":1}}],["sadly",{"2":{"18":1}}],["saw",{"2":{"16":1}}],["say",{"2":{"9":1,"10":1,"11":1,"14":1,"19":1}}],["same",{"2":{"4":1,"10":2,"12":2}}],["snow",{"2":{"9":1,"12":1,"13":1,"17":1}}],["sync",{"2":{"37":1,"39":1}}],["synchronized",{"2":{"36":1}}],["synchronous",{"2":{"14":2,"36":1,"37":1,"49":1,"55":1}}],["syntax",{"2":{"8":1,"15":1,"44":1}}],["systems",{"2":{"21":1,"46":1}}],["system",{"0":{"1":1},"2":{"4":1,"14":1,"15":1,"17":1,"19":1,"28":1,"34":1,"36":1,"39":1,"42":2,"46":1,"47":1}}],["small",{"2":{"7":1,"43":1}}],["similar",{"2":{"44":1}}],["simply",{"2":{"41":1}}],["simple",{"0":{"7":1},"1":{"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1},"2":{"2":1,"7":1,"12":1,"44":1}}],["size",{"2":{"30":1,"32":3}}],["side",{"2":{"18":3,"29":1}}],["since",{"2":{"10":1,"22":1,"26":1,"41":1}}],["single",{"2":{"5":1,"10":1,"11":1,"47":1,"48":1}}],["solve",{"2":{"47":1}}],["solution",{"2":{"14":1,"47":1}}],["solutions",{"2":{"14":1,"36":1,"37":1}}],["source",{"2":{"33":1,"42":1,"48":1}}],["sources",{"2":{"10":1,"15":1}}],["som",{"2":{"14":1}}],["sometime",{"2":{"55":1}}],["sometimes",{"2":{"40":1}}],["something",{"2":{"11":1,"55":1}}],["some",{"2":{"7":1,"10":1,"14":1,"15":1,"19":1,"23":1,"26":1,"28":1,"29":3,"30":2,"31":1,"41":1,"47":1,"48":1}}],["so",{"0":{"13":1},"2":{"4":2,"12":1,"24":1,"31":1,"33":1,"42":1}}],["sparked",{"2":{"14":1}}],["special",{"2":{"5":1}}],["specified",{"2":{"44":1,"50":1}}],["specifies",{"2":{"23":1,"30":1}}],["specifications",{"2":{"42":1}}],["specific",{"2":{"4":2,"11":1,"41":1,"44":2,"45":1}}],["specify",{"2":{"4":1,"22":1,"25":1,"44":1}}],["springapplication",{"2":{"2":1}}],["springbootapplication",{"2":{"2":1}}],["spring",{"0":{"55":1},"2":{"0":2,"1":2,"2":1,"3":1,"4":1,"5":1,"22":1,"29":3}}],["sharing",{"2":{"42":1}}],["shall",{"2":{"41":2}}],["shaped",{"2":{"41":1}}],["shapes",{"2":{"39":1,"40":1}}],["shape",{"2":{"10":1,"29":1}}],["shut",{"2":{"19":1}}],["short",{"2":{"22":1,"50":1}}],["show",{"2":{"11":1}}],["shows",{"2":{"4":1,"10":1,"18":1,"22":1,"29":2}}],["should",{"2":{"1":1,"2":1,"4":1,"8":2,"10":3,"11":2,"15":1,"21":1,"32":1,"41":2,"44":1,"45":2,"50":1,"51":1,"52":2,"54":1}}],["sh$",{"2":{"3":2,"4":1,"5":1}}],["such",{"2":{"44":1}}],["successful",{"2":{"13":1,"25":5,"26":3}}],["successfully",{"2":{"1":1}}],["subject",{"2":{"44":1}}],["subscriber",{"2":{"33":1}}],["suits",{"2":{"34":1}}],["suitable",{"2":{"18":1,"44":1}}],["summary",{"2":{"29":1}}],["supposed",{"2":{"40":1}}],["support",{"2":{"21":1}}],["supports",{"2":{"18":1}}],["supporting",{"2":{"16":1}}],["suppliedby",{"2":{"29":1,"30":1,"33":1,"34":1}}],["supplied",{"2":{"26":1,"30":1,"32":1,"33":2}}],["suppliers",{"2":{"34":1}}],["supplier",{"2":{"26":2,"33":2}}],["suggestions",{"2":{"41":1}}],["suggest",{"2":{"15":1}}],["surprise",{"0":{"12":1}}],["surrendered",{"2":{"10":1}}],["sure",{"2":{"3":1,"9":1}}],["s",{"0":{"13":1},"2":{"2":2,"4":1,"5":4,"7":1,"8":3,"9":2,"10":2,"11":2,"12":2,"13":2,"14":1,"15":1,"16":1,"17":1,"19":1,"22":1,"23":1,"24":2,"27":1,"29":1,"30":1,"31":1,"37":1,"41":1,"44":1,"45":1,"50":1,"55":1}}],["stop",{"2":{"52":1,"54":1}}],["style",{"2":{"21":1}}],["step",{"2":{"10":1,"49":2}}],["still",{"2":{"10":2,"12":2,"17":1,"18":2,"37":2}}],["stdout",{"2":{"4":1,"5":1}}],["strong",{"2":{"42":1}}],["structural",{"2":{"15":1}}],["structured",{"2":{"44":1,"49":1}}],["structures",{"2":{"37":1}}],["structure",{"2":{"8":1,"10":1,"38":1,"39":1,"40":1}}],["strict",{"2":{"14":1,"39":1,"40":1,"41":1,"45":1,"50":1}}],["strings",{"2":{"15":1,"16":1}}],["string>",{"2":{"4":1,"22":1}}],["string",{"2":{"2":1,"4":3,"5":2,"16":1,"22":4,"24":2,"28":1,"29":5,"31":2,"44":1}}],["streams",{"2":{"21":1}}],["stream",{"2":{"4":1}}],["stage",{"2":{"55":1}}],["stakeholders",{"2":{"44":1}}],["stale",{"2":{"40":1}}],["star",{"2":{"17":1,"18":2}}],["stars",{"0":{"17":1},"2":{"16":2,"17":3,"18":3,"19":3}}],["start",{"2":{"3":1,"14":1}}],["started",{"0":{"0":1},"1":{"1":1,"2":1,"3":1,"4":1,"5":1}}],["stations",{"2":{"16":1}}],["static",{"2":{"2":1,"5":1}}],["stated",{"2":{"44":1}}],["stateful",{"2":{"37":1}}],["stateless",{"2":{"36":1}}],["state",{"2":{"8":1,"39":1,"44":1}}],["standard",{"2":{"29":1,"41":1}}],["stand",{"2":{"0":1}}],["sequence",{"2":{"49":1}}],["seamless",{"2":{"38":1}}],["seriously",{"2":{"40":1}}],["series",{"2":{"32":1}}],["server",{"2":{"10":2}}],["services",{"2":{"5":1,"9":1,"14":1,"19":1,"29":1,"34":1,"40":1,"55":3}}],["service",{"2":{"0":1,"4":1,"5":1,"6":1,"14":5,"17":2,"19":1,"29":2,"36":1,"38":1,"55":7}}],["security",{"2":{"52":1}}],["sections",{"2":{"21":1}}],["seconds",{"2":{"28":1}}],["second",{"2":{"4":2,"22":1,"29":1}}],["semantics",{"2":{"15":1,"40":1,"44":2,"49":1}}],["several",{"2":{"12":1,"54":1}}],["sense",{"2":{"44":1}}],["sensible",{"2":{"27":1}}],["send",{"2":{"55":1}}],["sends",{"2":{"9":1}}],["sender",{"2":{"8":1,"9":1}}],["sent",{"2":{"8":1,"9":2,"10":1,"11":1,"40":1,"45":3}}],["sets",{"2":{"23":2,"30":1,"40":1}}],["set",{"2":{"4":1,"5":1,"12":1,"14":1,"18":1,"26":1,"42":1}}],["setup",{"2":{"2":1,"5":1,"7":1}}],["seeing",{"2":{"45":1}}],["seem",{"2":{"41":1}}],["seems",{"2":{"18":1}}],["seen",{"2":{"14":1,"18":1,"55":1}}],["see",{"2":{"2":1,"4":1,"5":1,"13":1,"19":1}}],["effort",{"2":{"50":1}}],["effects",{"2":{"55":1}}],["effectively",{"2":{"14":1,"18":1}}],["effect",{"2":{"10":1}}],["e",{"2":{"47":1}}],["establishing",{"2":{"42":1}}],["essence",{"2":{"10":1}}],["embraced",{"2":{"40":1}}],["empty",{"2":{"4":1,"10":1,"23":1,"26":1}}],["ephemeral",{"2":{"39":1}}],["error",{"2":{"28":3}}],["element",{"2":{"25":1,"29":1}}],["elements",{"2":{"4":1,"5":3,"22":2,"25":2,"31":1,"32":3,"33":6}}],["elapsed",{"2":{"25":1}}],["etc",{"2":{"15":1,"23":1}}],["earlier",{"2":{"16":1,"55":1}}],["early",{"2":{"11":2}}],["each",{"0":{"18":1},"2":{"9":1,"10":1,"14":1,"23":1,"29":1,"30":1,"36":2}}],["easily",{"2":{"8":1,"29":1}}],["easy",{"2":{"0":1,"2":1,"4":1,"5":2,"21":1,"34":1}}],["either",{"2":{"4":1,"47":1,"48":1}}],["encryption",{"2":{"52":1}}],["enriched",{"2":{"40":1}}],["enrich",{"2":{"39":1}}],["end",{"2":{"36":1}}],["endpoint",{"2":{"10":2}}],["enforce",{"2":{"15":1}}],["enough",{"2":{"12":1}}],["entry",{"2":{"10":1,"22":1,"29":1}}],["entries",{"2":{"5":1,"12":3,"29":2}}],["ensures",{"2":{"47":1}}],["ensure",{"2":{"4":1,"26":1,"33":1,"46":1,"50":2}}],["enabled",{"2":{"21":1}}],["enable",{"2":{"3":2}}],["enablequeryresponse",{"2":{"2":2,"22":1,"29":1}}],["enabling",{"2":{"2":1,"22":1}}],["evaluates",{"2":{"25":2}}],["evaluate",{"2":{"25":1,"26":3}}],["evaluated",{"2":{"23":3}}],["evolve",{"2":{"18":1,"38":1}}],["evolving",{"2":{"0":1,"6":1}}],["evolutionary",{"2":{"37":1}}],["evolution",{"2":{"15":1,"19":1,"35":1,"38":1,"40":2}}],["events",{"2":{"39":1}}],["event",{"2":{"29":1,"44":1,"45":1}}],["eventually",{"2":{"11":1}}],["eventlistener",{"2":{"4":1,"5":1,"29":1}}],["even",{"2":{"10":3,"12":1,"18":1}}],["extensions",{"2":{"52":1}}],["extended",{"2":{"17":1,"27":1,"38":1}}],["extend",{"2":{"0":1,"14":1,"16":2,"41":1}}],["external",{"2":{"48":1}}],["exceptional",{"2":{"27":1}}],["exception",{"2":{"26":1,"27":1}}],["exchange",{"2":{"3":1,"9":1,"36":2,"37":1,"40":1,"42":1}}],["executing",{"2":{"25":1}}],["executed",{"2":{"26":1}}],["execute",{"2":{"22":1}}],["exist",{"2":{"18":1}}],["exists",{"2":{"18":1}}],["experience",{"2":{"38":1,"55":1}}],["expected",{"2":{"13":1,"22":1,"24":1}}],["explicit",{"2":{"23":1,"40":1}}],["explain",{"2":{"21":1}}],["expressions",{"2":{"44":1}}],["expressing",{"2":{"41":1}}],["expresses",{"2":{"8":1,"44":1}}],["express",{"2":{"4":1,"15":1,"28":1}}],["examine",{"2":{"15":1,"51":1}}],["examples",{"0":{"28":1,"34":1},"2":{"7":1,"28":1}}],["example",{"0":{"7":1,"15":1},"1":{"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"16":1,"17":1,"18":1,"19":1},"2":{"4":1,"7":1,"8":1,"14":1,"15":2,"16":1,"22":2,"29":1}}],["exactly",{"2":{"11":1,"22":1}}]],"serializationVersion":2}`;export{e as default}; diff --git a/assets/chunks/@localSearchIndexroot.i1jxvErO.js b/assets/chunks/@localSearchIndexroot.i1jxvErO.js new file mode 100644 index 0000000..2499081 --- /dev/null +++ b/assets/chunks/@localSearchIndexroot.i1jxvErO.js @@ -0,0 +1 @@ +const e=`{"documentCount":56,"nextId":56,"documentIds":{"0":"/query-response-spring-amqp/guide/the-example-revisited.html#the-example-revisited","1":"/query-response-spring-amqp/guide/the-example-revisited.html#a-better-library-protocol","2":"/query-response-spring-amqp/guide/the-example-revisited.html#top-3-books-have-stars","3":"/query-response-spring-amqp/guide/the-example-revisited.html#one-of-each-flavour","4":"/query-response-spring-amqp/guide/the-example-revisited.html#out-with-the-old","5":"/query-response-spring-amqp/guide/what-is-query-response.html#what-is-query-response","6":"/query-response-spring-amqp/guide/what-is-query-response.html#a-simple-example","7":"/query-response-spring-amqp/guide/what-is-query-response.html#any-good-sci-fi-books-out-there","8":"/query-response-spring-amqp/guide/what-is-query-response.html#the-current-top-3-books","9":"/query-response-spring-amqp/guide/what-is-query-response.html#the-asimov-collection","10":"/query-response-spring-amqp/guide/what-is-query-response.html#no-book-lovers-out-there","11":"/query-response-spring-amqp/guide/what-is-query-response.html#reprise-surprise","12":"/query-response-spring-amqp/guide/what-is-query-response.html#so-what-s-in-the-library","13":"/query-response-spring-amqp/guide/what-is-query-response.html#inversion-of-flow","14":"/query-response-spring-amqp/guide/getting-started.html#getting-started","15":"/query-response-spring-amqp/guide/getting-started.html#system-requirements","16":"/query-response-spring-amqp/guide/getting-started.html#installation-amp-configuration","17":"/query-response-spring-amqp/guide/getting-started.html#connecting-to-an-amqp-broker","18":"/query-response-spring-amqp/guide/getting-started.html#queries","19":"/query-response-spring-amqp/guide/getting-started.html#responses","20":"/query-response-spring-amqp/#change-the-way-you-think-and-design-by-using-query-response-for-spring-amqp","21":"/query-response-spring-amqp/reference/developers-reference.html#developers-reference","22":"/query-response-spring-amqp/reference/developers-reference.html#overview","23":"/query-response-spring-amqp/reference/developers-reference.html#querybuilder","24":"/query-response-spring-amqp/reference/developers-reference.html#querybuilder-fluid-api-method-types","25":"/query-response-spring-amqp/reference/developers-reference.html#initial-methods","26":"/query-response-spring-amqp/reference/developers-reference.html#conditional-methods","27":"/query-response-spring-amqp/reference/developers-reference.html#terminal-methods","28":"/query-response-spring-amqp/reference/developers-reference.html#informal-methods","29":"/query-response-spring-amqp/reference/developers-reference.html#querybuilder-examples","30":"/query-response-spring-amqp/reference/developers-reference.html#responsebuilder","31":"/query-response-spring-amqp/reference/developers-reference.html#responsebuilder-fluid-api-method-types","32":"/query-response-spring-amqp/reference/developers-reference.html#initial-methods-1","33":"/query-response-spring-amqp/reference/developers-reference.html#batching-methods","34":"/query-response-spring-amqp/reference/developers-reference.html#terminal-methods-1","35":"/query-response-spring-amqp/reference/developers-reference.html#responsebuilder-examples","36":"/query-response-spring-amqp/reference/query-response-maturity-model.html#query-response-maturity-model","37":"/query-response-spring-amqp/reference/query-response-maturity-model.html#level-0-purgatory","38":"/query-response-spring-amqp/reference/query-response-maturity-model.html#level-1","39":"/query-response-spring-amqp/reference/query-response-maturity-model.html#level-2","40":"/query-response-spring-amqp/reference/query-response-maturity-model.html#level-3","41":"/query-response-spring-amqp/reference/query-response-maturity-model.html#level-4-and-beyond","42":"/query-response-spring-amqp/reference/the-query-response-protocol.html#query-response-protocol","43":"/query-response-spring-amqp/reference/the-query-response-protocol.html#intent","44":"/query-response-spring-amqp/reference/the-query-response-protocol.html#components-and-collaborators","45":"/query-response-spring-amqp/reference/the-query-response-protocol.html#query","46":"/query-response-spring-amqp/reference/the-query-response-protocol.html#response","47":"/query-response-spring-amqp/reference/the-query-response-protocol.html#address","48":"/query-response-spring-amqp/reference/the-query-response-protocol.html#publisher","49":"/query-response-spring-amqp/reference/the-query-response-protocol.html#consumer","50":"/query-response-spring-amqp/reference/the-query-response-protocol.html#methods-and-actions","51":"/query-response-spring-amqp/reference/the-query-response-protocol.html#prepare-address","52":"/query-response-spring-amqp/reference/the-query-response-protocol.html#publish-query","53":"/query-response-spring-amqp/reference/the-query-response-protocol.html#consume-query","54":"/query-response-spring-amqp/reference/the-query-response-protocol.html#publish-response","55":"/query-response-spring-amqp/reference/the-query-response-protocol.html#consume-response"},"fieldIds":{"title":0,"titles":1,"text":2},"fieldLength":{"0":[3,1,116],"1":[4,3,70],"2":[5,3,80],"3":[4,3,142],"4":[4,3,79],"5":[5,1,17],"6":[3,5,54],"7":[8,7,96],"8":[5,7,81],"9":[3,7,220],"10":[6,7,114],"11":[2,7,100],"12":[7,7,55],"13":[3,7,149],"14":[2,1,39],"15":[2,2,30],"16":[3,2,87],"17":[5,5,79],"18":[1,2,201],"19":[1,2,175],"20":[15,1,154],"21":[2,1,1],"22":[1,2,100],"23":[1,2,161],"24":[5,3,56],"25":[2,3,45],"26":[2,3,90],"27":[2,3,88],"28":[2,3,70],"29":[2,3,97],"30":[1,2,210],"31":[5,3,43],"32":[2,3,52],"33":[2,3,51],"34":[2,3,68],"35":[2,3,63],"36":[4,1,30],"37":[3,4,61],"38":[2,4,93],"39":[2,4,53],"40":[2,4,55],"41":[5,4,99],"42":[3,1,83],"43":[1,3,55],"44":[3,3,31],"45":[1,6,102],"46":[1,6,62],"47":[1,6,46],"48":[1,6,73],"49":[1,6,47],"50":[3,3,41],"51":[2,6,47],"52":[2,6,49],"53":[2,6,66],"54":[2,6,33],"55":[2,6,45]},"averageFieldLength":[2.9821428571428577,3.8214285714285716,80.42857142857143],"storedFields":{"0":{"title":"The example revisited","titles":[]},"1":{"title":"A better library protocol","titles":["The example revisited"]},"2":{"title":"Top-3 books have stars","titles":["The example revisited"]},"3":{"title":"One of each flavour","titles":["The example revisited"]},"4":{"title":"Out with the old","titles":["The example revisited"]},"5":{"title":"What is Query/Response?","titles":[]},"6":{"title":"A simple example","titles":["What is Query/Response?"]},"7":{"title":"Any good sci-fi books out there?","titles":["What is Query/Response?","A simple example"]},"8":{"title":"The current top-3 books","titles":["What is Query/Response?","A simple example"]},"9":{"title":"The Asimov collection","titles":["What is Query/Response?","A simple example"]},"10":{"title":"No book lovers out there?","titles":["What is Query/Response?","A simple example"]},"11":{"title":"Reprise, surprise","titles":["What is Query/Response?","A simple example"]},"12":{"title":"So, what's in the library?","titles":["What is Query/Response?","A simple example"]},"13":{"title":"Inversion of flow","titles":["What is Query/Response?","A simple example"]},"14":{"title":"Getting Started","titles":[]},"15":{"title":"System Requirements","titles":["Getting Started"]},"16":{"title":"Installation & Configuration","titles":["Getting Started"]},"17":{"title":"Connecting to an AMQP broker","titles":["Getting Started","Installation & Configuration"]},"18":{"title":"Queries","titles":["Getting Started"]},"19":{"title":"Responses","titles":["Getting Started"]},"20":{"title":"Change the way you think and design, by using Query/Response for Spring AMQP.","titles":[]},"21":{"title":"Developers Reference","titles":[]},"22":{"title":"Overview","titles":["Developers Reference"]},"23":{"title":"QueryBuilder","titles":["Developers Reference"]},"24":{"title":"QueryBuilder fluid API method types","titles":["Developers Reference","QueryBuilder"]},"25":{"title":"Initial methods","titles":["Developers Reference","QueryBuilder"]},"26":{"title":"Conditional methods","titles":["Developers Reference","QueryBuilder"]},"27":{"title":"Terminal methods","titles":["Developers Reference","QueryBuilder"]},"28":{"title":"Informal methods","titles":["Developers Reference","QueryBuilder"]},"29":{"title":"QueryBuilder examples","titles":["Developers Reference","QueryBuilder"]},"30":{"title":"ResponseBuilder","titles":["Developers Reference"]},"31":{"title":"ResponseBuilder fluid API method types","titles":["Developers Reference","ResponseBuilder"]},"32":{"title":"Initial methods","titles":["Developers Reference","ResponseBuilder"]},"33":{"title":"Batching methods","titles":["Developers Reference","ResponseBuilder"]},"34":{"title":"Terminal methods","titles":["Developers Reference","ResponseBuilder"]},"35":{"title":"ResponseBuilder examples","titles":["Developers Reference","ResponseBuilder"]},"36":{"title":"Query/Response Maturity Model","titles":[]},"37":{"title":"Level 0 - Purgatory","titles":["Query/Response Maturity Model"]},"38":{"title":"Level 1","titles":["Query/Response Maturity Model"]},"39":{"title":"Level 2","titles":["Query/Response Maturity Model"]},"40":{"title":"Level 3","titles":["Query/Response Maturity Model"]},"41":{"title":"Level 4 and beyond...","titles":["Query/Response Maturity Model"]},"42":{"title":"Query/Response Protocol","titles":[]},"43":{"title":"Intent","titles":["Query/Response Protocol"]},"44":{"title":"Components and Collaborators","titles":["Query/Response Protocol"]},"45":{"title":"Query","titles":["Query/Response Protocol","Components and Collaborators"]},"46":{"title":"Response","titles":["Query/Response Protocol","Components and Collaborators"]},"47":{"title":"Address","titles":["Query/Response Protocol","Components and Collaborators"]},"48":{"title":"Publisher","titles":["Query/Response Protocol","Components and Collaborators"]},"49":{"title":"Consumer","titles":["Query/Response Protocol","Components and Collaborators"]},"50":{"title":"Methods and Actions","titles":["Query/Response Protocol"]},"51":{"title":"Prepare Address","titles":["Query/Response Protocol","Methods and Actions"]},"52":{"title":"Publish Query","titles":["Query/Response Protocol","Methods and Actions"]},"53":{"title":"Consume Query","titles":["Query/Response Protocol","Methods and Actions"]},"54":{"title":"Publish Response","titles":["Query/Response Protocol","Methods and Actions"]},"55":{"title":"Consume Response","titles":["Query/Response Protocol","Methods and Actions"]}},"dirtCount":0,"index":[[">",{"2":{"19":2,"29":1}}],["800",{"2":{"23":2,"29":1}}],["8",{"2":{"19":2}}],["85b7e6b5b69b",{"2":{"19":4}}],["831d",{"2":{"18":1}}],["88",{"2":{"4":2}}],["q",{"2":{"19":1}}],["qr",{"2":{"18":1,"19":4}}],["quick",{"2":{"38":1,"46":1}}],["quickstart",{"2":{"16":1}}],["quite",{"2":{"3":1,"41":1,"45":1}}],["question",{"2":{"10":1,"20":1}}],["questions",{"2":{"10":1}}],["queues",{"2":{"17":1}}],["queue",{"2":{"7":1,"47":2,"48":1}}],["queries",{"0":{"18":1},"2":{"0":1,"18":5,"19":2,"23":3,"29":1,"38":1,"40":1,"41":1,"45":2,"53":4}}],["queryresponse",{"2":{"18":1,"19":4,"26":1}}],["queryresponseconfiguration",{"2":{"16":2}}],["queryfor",{"2":{"18":1,"23":2,"24":1,"25":1,"29":3}}],["querybuilder",{"0":{"23":1,"24":1,"29":1},"1":{"24":1,"25":1,"26":1,"27":1,"28":1,"29":1},"2":{"18":5,"22":1,"23":10,"28":1,"29":4}}],["query",{"0":{"5":1,"20":1,"36":1,"42":1,"45":1,"52":1,"53":1},"1":{"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"37":1,"38":1,"39":1,"40":1,"41":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1},"2":{"0":6,"2":3,"3":2,"4":3,"5":1,"6":1,"7":9,"8":2,"9":2,"10":4,"12":3,"13":2,"18":7,"19":5,"20":2,"23":7,"24":1,"25":1,"26":5,"27":6,"28":2,"29":1,"30":7,"31":1,"34":2,"35":1,"36":1,"38":1,"41":1,"42":2,"43":1,"44":1,"45":4,"46":6,"48":3,"49":2,"50":1,"51":3,"52":5,"53":6,"54":1}}],["quot",{"2":{"1":4,"8":2,"10":2,"19":8,"20":4,"23":2,"30":4,"42":20,"44":2}}],["quoted",{"2":{"1":2}}],["quotes",{"2":{"0":1}}],["|",{"2":{"18":1,"19":4}}],["=",{"2":{"18":1,"23":1,"30":1}}],["00809edb6f95",{"2":{"18":1}}],["0",{"0":{"37":1},"2":{"15":1}}],["128",{"2":{"35":1}}],["10",{"2":{"29":2}}],["1000l",{"2":{"18":2}}],["1",{"0":{"38":1},"2":{"18":3,"19":2}}],["1>",{"2":{"18":1,"19":1}}],["15672",{"2":{"17":4}}],["11",{"2":{"15":2}}],["1337",{"2":{"12":2}}],["journey",{"2":{"41":1}}],["jackson",{"2":{"30":1}}],["javaresponsebuilder",{"2":{"35":2}}],["javareturn",{"2":{"29":3}}],["javapublic",{"2":{"25":1,"28":1,"32":1}}],["java",{"2":{"15":2,"16":1,"18":1,"19":1,"23":1,"30":1,"35":1}}],["json",{"2":{"18":1,"19":3,"30":2}}],["just",{"2":{"7":1,"9":1,"10":1,"12":1,"16":1,"18":1,"20":2,"36":1}}],["jump",{"2":{"4":1}}],["x3c",{"2":{"18":5,"19":5,"23":1,"25":3,"28":2,"32":3}}],["x",{"2":{"15":1,"18":1,"19":3}}],["yields",{"2":{"49":1}}],["yolo",{"2":{"19":5}}],["your",{"2":{"16":1,"17":2,"18":1}}],["you",{"0":{"20":1},"2":{"10":1,"17":2,"18":1,"19":2,"42":2}}],["yet",{"2":{"2":1,"3":1}}],["2119",{"2":{"42":1}}],["20",{"2":{"29":1,"35":1}}],["2019",{"2":{"20":1}}],["2015",{"2":{"20":1}}],["2>",{"2":{"18":1,"19":1}}],["2",{"0":{"39":1},"2":{"3":2,"13":1,"15":1,"18":2,"19":1,"29":1}}],["5672",{"2":{"17":3}}],["5",{"2":{"2":1,"3":1,"4":1}}],["kept",{"2":{"11":1}}],["keeping",{"2":{"23":1,"45":1}}],["keep",{"2":{"6":1,"9":1,"11":1}}],["keywords",{"2":{"42":1}}],["key",{"2":{"1":1,"3":1,"13":1,"45":1,"47":1}}],["known",{"2":{"16":1,"38":1}}],["knowing",{"2":{"12":1}}],["know",{"2":{"2":1,"48":1,"49":1}}],["via",{"2":{"23":1}}],["viewing",{"2":{"13":1}}],["view",{"2":{"9":1,"13":1,"38":1}}],["vararg",{"2":{"34":1}}],["varags",{"2":{"19":1}}],["validate",{"2":{"9":2,"55":1}}],["validating",{"2":{"3":1}}],["validation",{"2":{"0":1}}],["valid",{"2":{"9":1}}],["value",{"2":{"3":1,"9":1,"39":1}}],["values",{"2":{"1":1,"10":1,"18":1}}],["valuable",{"2":{"3":1,"22":1}}],["void",{"2":{"16":1,"18":1,"19":1,"30":1}}],["velocity",{"2":{"37":1}}],["very",{"2":{"9":1,"10":1,"13":1,"20":1,"22":1,"41":1,"44":1,"45":1}}],["versions",{"2":{"3":1,"41":1}}],["version",{"2":{"2":1,"3":3,"4":1,"15":1,"42":1}}],["ve",{"2":{"3":2,"10":1,"11":1,"13":2,"30":1,"36":1}}],["77",{"2":{"2":2,"3":2}}],["3>",{"2":{"18":1,"19":1}}],["3+",{"2":{"16":1}}],["3",{"0":{"2":1,"8":1,"40":1},"2":{"2":2,"4":2,"11":1,"13":1,"15":2,"16":1,"17":2,"18":1,"19":1,"29":1,"30":1}}],["g",{"2":{"48":1}}],["gained",{"2":{"39":1}}],["gain",{"2":{"38":1}}],["gathered",{"2":{"18":1}}],["given",{"2":{"25":1,"26":3,"27":1,"30":3,"31":1,"32":1,"33":2}}],["github",{"2":{"16":1}}],["ghwp4twu9eyhi",{"2":{"19":1}}],["gt",{"2":{"18":3,"19":3,"25":2,"27":5,"32":2,"34":5}}],["guides",{"2":{"43":1}}],["guest",{"2":{"17":2}}],["guaranteed",{"2":{"50":1}}],["guarantees",{"2":{"20":1}}],["guarantee",{"2":{"9":1}}],["gradle",{"2":{"16":1}}],["grade",{"2":{"14":1}}],["great",{"2":{"1":1,"2":1,"9":2,"20":1,"55":1}}],["goal",{"2":{"22":1}}],["go",{"2":{"20":2,"30":1}}],["got",{"2":{"8":1}}],["good",{"0":{"7":1},"2":{"17":1,"20":1}}],["gods",{"2":{"3":2,"4":1,"9":1,"12":1}}],["general",{"2":{"42":1}}],["genre",{"2":{"0":2}}],["george",{"2":{"20":2}}],["getting",{"0":{"14":1},"1":{"15":1,"16":1,"17":1,"18":1,"19":1}}],["get",{"2":{"1":1,"16":1,"39":1}}],["400",{"2":{"29":1}}],["4f2a",{"2":{"19":4}}],["4491",{"2":{"18":1}}],["4",{"0":{"41":1},"2":{"1":1,"2":1}}],["42",{"2":{"0":1,"7":4,"8":1,"9":1,"11":1}}],["9780307969958",{"2":{"1":1}}],["nack",{"2":{"52":1,"54":1}}],["name",{"2":{"19":1,"44":1,"45":1,"47":1}}],["natural",{"2":{"4":1}}],["number",{"2":{"9":1,"26":3,"53":1}}],["none",{"2":{"10":1,"18":1,"53":1}}],["non",{"2":{"5":1}}],["normal",{"2":{"3":1,"22":1,"41":1}}],["no",{"0":{"10":1},"2":{"3":1,"6":1,"10":2,"16":1,"18":1,"31":1,"33":1,"41":2,"51":1,"52":1,"54":1}}],["now",{"2":{"2":1,"3":2,"11":1,"17":2,"18":1,"19":2}}],["note",{"2":{"16":1,"17":1,"18":1,"27":1,"30":1,"46":1,"48":1,"49":1,"51":1,"53":1}}],["nothing",{"2":{"11":1,"16":1,"18":1,"50":1}}],["notifications",{"2":{"46":1,"49":1}}],["notification",{"2":{"9":1,"44":1,"45":1,"46":1,"48":1}}],["notion",{"2":{"8":1,"50":1}}],["notation",{"2":{"7":1}}],["not",{"2":{"0":2,"2":2,"3":1,"7":2,"8":1,"9":3,"10":2,"11":3,"13":2,"18":2,"23":1,"26":2,"27":3,"28":1,"34":1,"38":2,"41":1,"42":5,"45":1,"46":2,"47":1,"48":3,"49":2,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1}}],["network",{"2":{"35":1}}],["next",{"2":{"22":1}}],["necessary",{"2":{"17":1,"28":1}}],["needs",{"2":{"13":1,"16":1,"18":1,"20":1,"40":1}}],["need",{"2":{"2":1,"7":2,"9":2,"17":1,"18":2,"42":1,"45":2}}],["neuromancer",{"2":{"1":2,"2":1,"8":1,"11":1,"12":1}}],["newoffer",{"2":{"29":1}}],["new",{"2":{"1":2,"2":3,"3":1,"10":1,"12":1,"22":1,"24":1,"29":2,"31":1}}],["human",{"2":{"45":1}}],["huge",{"2":{"10":1}}],["http",{"2":{"17":2}}],["https",{"2":{"17":1}}],["hopefully",{"2":{"18":1}}],["hope",{"2":{"13":1}}],["however",{"2":{"22":1,"30":2}}],["how",{"2":{"0":1,"3":1,"4":1,"9":1,"10":3,"16":1,"18":2,"19":1,"20":1,"22":1,"23":2,"28":1,"29":1,"30":1,"33":1,"39":1,"48":1}}],["high",{"2":{"43":1}}],["highly",{"2":{"5":1,"13":1,"14":1}}],["his",{"2":{"20":1}}],["hint",{"2":{"19":1,"30":1}}],["hints",{"2":{"6":1,"30":1}}],["healthy",{"2":{"38":1}}],["hearing",{"2":{"20":1}}],["headers=",{"2":{"18":1,"19":3}}],["he",{"2":{"20":1}}],["hey",{"2":{"11":1}}],["helps",{"2":{"4":1}}],["here",{"2":{"3":1,"18":2,"19":2,"30":1,"42":1}}],["harmful",{"2":{"53":1}}],["hard",{"2":{"20":2,"22":1,"37":1,"38":1}}],["harder",{"2":{"9":1}}],["handling",{"2":{"29":1}}],["handler",{"2":{"28":1}}],["handled",{"2":{"9":1,"18":1,"51":2}}],["handle",{"2":{"9":2,"11":2,"47":1,"53":2}}],["had",{"2":{"20":2}}],["hash",{"2":{"7":1}}],["has",{"2":{"3":1,"4":1,"7":1,"9":2,"26":1,"52":1,"54":1}}],["have",{"0":{"2":1},"2":{"1":1,"2":1,"3":1,"8":1,"9":7,"11":1,"12":1,"13":1,"14":1,"23":1,"29":1,"48":1,"49":1,"55":1}}],["custom",{"2":{"30":1}}],["currently",{"2":{"28":1,"30":1}}],["current",{"0":{"8":1},"2":{"35":1,"40":1,"48":1,"49":1}}],["curtain",{"2":{"3":1}}],["central",{"2":{"23":1}}],["certainly",{"2":{"4":1}}],["ctag",{"2":{"19":1}}],["c77a8a1d",{"2":{"19":1}}],["c959",{"2":{"19":4}}],["c4f3",{"2":{"18":1}}],["c",{"2":{"18":1,"19":4,"20":1}}],["creating",{"2":{"23":1,"45":1}}],["creates",{"2":{"24":1,"31":1}}],["created",{"2":{"17":1,"34":1,"45":1,"55":1}}],["create",{"2":{"17":1,"18":1,"19":1,"30":3,"32":1,"33":1}}],["crash",{"2":{"2":1,"8":1,"11":1,"12":1}}],["circuit",{"2":{"10":1}}],["closer",{"2":{"22":1,"24":1,"31":1}}],["clearly",{"2":{"20":1}}],["class",{"2":{"16":4,"18":5,"19":4,"23":4,"25":2,"29":3,"30":5,"32":2,"35":2}}],["classifiers",{"2":{"3":1}}],["clients",{"2":{"28":1}}],["client",{"2":{"9":2,"29":1}}],["calendar",{"2":{"35":1}}],["calling",{"2":{"20":3,"23":1,"30":1,"34":1}}],["called",{"2":{"13":1,"34":1}}],["call",{"2":{"13":1,"23":5,"27":4,"30":2,"34":2}}],["calls",{"2":{"13":5,"20":3,"35":1,"37":1,"44":2}}],["came",{"2":{"20":1}}],["cases",{"2":{"28":1,"46":1}}],["case",{"2":{"18":1,"23":1,"27":3,"28":1,"52":1}}],["caveats",{"2":{"13":1}}],["caught",{"2":{"9":1}}],["carry",{"2":{"46":1}}],["carrying",{"2":{"46":1}}],["carries",{"2":{"8":1,"44":1}}],["careful",{"2":{"27":1}}],["cares",{"2":{"19":1}}],["care",{"2":{"3":1,"9":2,"55":1}}],["capture",{"2":{"28":1}}],["captures",{"2":{"7":1}}],["capabilities",{"2":{"25":1,"32":1}}],["capability",{"2":{"1":1,"38":1,"47":1}}],["can",{"2":{"3":1,"4":3,"7":3,"9":4,"11":1,"13":1,"17":2,"18":1,"19":1,"20":1,"25":1,"26":2,"27":1,"29":2,"30":2,"32":1,"33":1,"34":1,"39":3,"40":1,"41":3,"43":1,"45":1,"50":1,"51":2,"52":1}}],["chronounit",{"2":{"29":1}}],["changing",{"2":{"39":1}}],["changes",{"2":{"37":1}}],["change",{"0":{"20":1},"2":{"0":1,"35":1,"39":1,"41":1}}],["characteristics",{"2":{"38":1}}],["chapter",{"2":{"30":1}}],["chainingresponsebuilder",{"2":{"32":2}}],["chainingquerybuilder",{"2":{"25":2,"28":1}}],["chained",{"2":{"13":1}}],["challenges",{"2":{"20":2}}],["checking",{"2":{"3":1}}],["check",{"2":{"3":1}}],["choose",{"2":{"3":1,"48":1,"52":1,"53":2,"55":1}}],["coercion",{"2":{"30":1}}],["coerced",{"2":{"25":1}}],["coerce",{"2":{"23":1}}],["covers",{"2":{"28":1}}],["collection",{"0":{"9":1},"2":{"11":1,"18":3,"23":1,"27":4,"34":3}}],["collaborators",{"0":{"44":1},"1":{"45":1,"46":1,"47":1,"48":1,"49":1},"2":{"9":1,"41":1}}],["collaborator",{"2":{"2":1,"47":1}}],["code",{"2":{"6":1,"7":1,"16":1,"18":1,"22":1,"38":1,"39":1}}],["coping",{"2":{"4":1}}],["coming",{"2":{"38":1}}],["combined",{"2":{"29":2}}],["com",{"2":{"17":1,"30":1}}],["commonly",{"2":{"10":1,"45":1}}],["common",{"2":{"9":1,"45":1}}],["communicate",{"2":{"7":1}}],["communication",{"2":{"6":1,"20":1,"37":1,"43":1,"48":1}}],["compiler",{"2":{"30":1}}],["composed",{"2":{"26":1}}],["composition",{"2":{"23":1,"28":1}}],["component",{"2":{"18":2,"19":2,"23":3,"30":1}}],["components",{"0":{"44":1},"1":{"45":1,"46":1,"47":1,"48":1,"49":1},"2":{"7":1,"30":2,"38":1,"41":1}}],["complexities",{"2":{"36":1}}],["complexity",{"2":{"9":1}}],["complex",{"2":{"28":1}}],["completed",{"2":{"26":1}}],["complicated",{"2":{"19":1}}],["compatibility",{"2":{"3":3}}],["comes",{"2":{"20":1,"30":1,"39":1}}],["come",{"2":{"0":2,"9":1,"41":1}}],["course",{"2":{"9":3,"41":1}}],["coupling",{"2":{"7":1,"9":1}}],["coupled",{"2":{"13":1}}],["couple",{"2":{"3":1,"9":1,"18":1,"22":1,"27":1}}],["could",{"2":{"3":2,"6":1,"9":1,"12":1,"13":1}}],["condition",{"2":{"24":3}}],["conditional",{"0":{"26":1},"2":{"23":1,"24":3,"26":4}}],["conditionals",{"2":{"23":1,"24":3,"26":1,"27":3,"28":1}}],["convey",{"2":{"22":1}}],["convert",{"2":{"9":2}}],["connect",{"2":{"17":2}}],["connecting",{"0":{"17":1}}],["configurations",{"2":{"19":1}}],["configuration",{"0":{"16":1},"1":{"17":1},"2":{"30":1}}],["configured",{"2":{"13":1,"37":1}}],["conform",{"2":{"9":1,"30":1}}],["concrete",{"2":{"48":1,"49":1}}],["concise",{"2":{"18":1}}],["concat",{"2":{"18":1}}],["concepts",{"2":{"13":1,"22":2}}],["concept",{"2":{"9":1}}],["conclude",{"2":{"4":1}}],["constraints",{"2":{"29":1}}],["constructing",{"2":{"23":1}}],["constructor",{"2":{"23":1}}],["consider",{"2":{"22":1,"52":1,"53":1}}],["considered",{"2":{"10":1}}],["considerations",{"2":{"22":1}}],["consideration",{"2":{"9":1}}],["considering",{"2":{"9":1}}],["conservatively",{"2":{"9":1}}],["consumption",{"2":{"49":1}}],["consuming",{"2":{"9":1,"29":1,"46":1,"53":1,"55":1}}],["consumes",{"2":{"30":1}}],["consume",{"0":{"53":1,"55":1},"2":{"9":1,"26":1,"44":1}}],["consumers",{"2":{"48":1,"49":1,"53":1}}],["consumerqueue=c77a8a1d",{"2":{"19":1}}],["consumertag=amq",{"2":{"19":1}}],["consumer",{"0":{"49":1},"2":{"3":2,"9":2,"10":1,"11":2,"28":1,"30":2,"34":1,"44":1,"47":1,"49":2,"53":4,"55":3}}],["consumed",{"2":{"3":2,"4":1,"12":1,"18":2,"19":3,"26":2,"41":1,"52":1,"54":1}}],["contentlength=0",{"2":{"19":1}}],["contentlength=28",{"2":{"19":1}}],["contentlength=2",{"2":{"18":1,"19":1}}],["contentencoding=utf",{"2":{"19":2}}],["contenttype=application",{"2":{"18":1,"19":3}}],["contexts",{"2":{"9":1}}],["context",{"2":{"6":1,"30":1,"40":1}}],["contains",{"2":{"42":1}}],["contain",{"2":{"11":1}}],["continue",{"2":{"10":1}}],["controlling",{"2":{"9":1}}],["control",{"2":{"9":1,"30":1,"33":1}}],["contract",{"2":{"0":1,"1":1,"23":1}}],["ui",{"2":{"17":2}}],["unbounded",{"2":{"55":1}}],["unbound",{"2":{"53":1}}],["unfulfilled",{"2":{"29":1}}],["understood",{"2":{"22":1}}],["understanding",{"2":{"45":1}}],["understand",{"2":{"7":1,"12":1,"22":1}}],["until",{"2":{"13":1,"41":1}}],["unique",{"2":{"7":2,"48":1,"49":1}}],["upgrades",{"2":{"37":1,"39":1}}],["upgraded",{"2":{"4":1}}],["up",{"2":{"10":1,"20":1,"30":1,"33":1}}],["upon",{"2":{"9":1,"30":1,"50":1}}],["updated",{"2":{"2":1,"3":1}}],["ubiquitous",{"2":{"0":1,"45":1}}],["usertokenservice",{"2":{"35":1}}],["users",{"2":{"23":1,"30":1,"35":1}}],["username",{"2":{"17":1}}],["user",{"2":{"10":2,"13":4}}],["used",{"2":{"6":1,"7":1,"19":1,"23":1,"30":2,"33":1,"41":1,"43":1,"45":1}}],["usefulness",{"2":{"3":1,"9":1}}],["use",{"2":{"3":2,"7":1,"11":1,"17":1,"22":2,"27":1,"28":1,"33":1,"34":1,"35":1,"36":1,"40":1,"42":1,"45":2,"46":1,"51":2,"54":1}}],["uses",{"2":{"0":1,"30":1}}],["us",{"2":{"0":1,"3":2,"8":2,"9":1,"10":1,"13":1}}],["using",{"0":{"20":1},"2":{"0":2,"2":1,"13":1,"14":1,"16":1,"17":1,"18":2,"19":1,"23":2,"29":2,"30":2,"33":1,"35":2,"38":1,"40":1,"41":1,"43":1,"48":1}}],["rfc",{"2":{"42":1}}],["richardson",{"2":{"36":1}}],["roles",{"2":{"48":1,"49":1}}],["role",{"2":{"48":1,"49":1}}],["routing",{"2":{"45":1,"47":1}}],["roundtrip",{"2":{"19":1}}],["rowling",{"2":{"30":1}}],["robot",{"2":{"2":1,"3":2,"4":1,"8":1,"9":1,"11":1,"12":1}}],["rqercg",{"2":{"19":1}}],["raise",{"2":{"22":1}}],["rather",{"2":{"22":1,"23":1}}],["ratings",{"2":{"1":1,"2":1,"3":2}}],["rabbitfacade",{"2":{"18":1,"19":2}}],["rabbitmq",{"2":{"17":6}}],["run",{"2":{"16":1,"17":4,"18":2,"19":2,"27":2,"34":1}}],["running",{"2":{"2":1,"15":1,"17":3}}],["rule",{"2":{"1":1}}],["rules",{"2":{"0":2,"3":1,"42":1,"43":1}}],["relied",{"2":{"50":1}}],["relevant",{"2":{"20":1}}],["releases",{"2":{"15":1,"38":1}}],["rental",{"2":{"29":2}}],["retries",{"2":{"28":1,"52":1}}],["returns",{"2":{"26":1,"30":1,"34":1}}],["return",{"2":{"13":2,"18":1,"23":1,"26":1,"27":3,"45":1}}],["returned",{"2":{"1":1,"9":1,"18":2,"25":1,"32":1,"52":1}}],["review",{"2":{"23":1}}],["revisited",{"0":{"0":1},"1":{"1":1,"2":1,"3":1,"4":1}}],["revolves",{"2":{"23":1}}],["register",{"2":{"30":1}}],["registered",{"2":{"18":1,"19":1}}],["regardless",{"2":{"23":1}}],["recovery",{"2":{"28":1}}],["recommendation",{"2":{"45":1}}],["recommendations",{"2":{"42":1}}],["recommended",{"2":{"42":1}}],["recommend",{"2":{"23":1,"45":1}}],["receive",{"2":{"7":1,"18":1,"47":1,"53":1,"55":1}}],["receivedroutingkey=c77a8a1d",{"2":{"19":1}}],["receivedexchange=",{"2":{"19":1}}],["receiveddeliverymode=non",{"2":{"19":1}}],["received",{"2":{"3":1,"9":4,"11":2,"19":1,"23":2,"26":2,"55":1}}],["reference",{"0":{"21":1},"1":{"22":1,"23":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"30":1,"31":1,"32":1,"33":1,"34":1,"35":1},"2":{"44":1}}],["redelivered=false",{"2":{"19":1}}],["rewind",{"2":{"10":1}}],["remember",{"2":{"9":1}}],["removed",{"2":{"4":1}}],["repair",{"2":{"52":1}}],["reprise",{"0":{"11":1}}],["represents",{"2":{"8":1}}],["replies",{"2":{"7":1}}],["replyto=c77a8a1d",{"2":{"19":1}}],["replyto=94f0fff4",{"2":{"18":1}}],["reply",{"2":{"0":1,"2":1,"4":1,"7":2,"8":1,"9":2,"12":1}}],["re",{"2":{"8":1,"9":2,"11":1}}],["requirement",{"2":{"46":1,"51":1}}],["requirements",{"0":{"15":1},"2":{"9":1}}],["require",{"2":{"18":1,"37":1}}],["requires",{"2":{"15":1}}],["required",{"2":{"3":2,"7":1,"39":1,"41":2,"42":1}}],["requests",{"2":{"9":2}}],["request",{"2":{"7":1,"8":1,"9":1}}],["requested",{"2":{"0":1}}],["reactivity",{"2":{"40":1}}],["reached",{"2":{"26":1}}],["readable",{"2":{"45":1}}],["ready",{"2":{"11":1}}],["read",{"2":{"10":1,"23":1}}],["reason",{"2":{"9":1}}],["reasonable",{"2":{"3":1}}],["really",{"2":{"3":1,"7":1,"9":1,"14":1,"18":2,"19":2,"20":1}}],["resource",{"2":{"35":1}}],["resources",{"2":{"17":1,"29":1,"51":1}}],["resilience",{"2":{"13":1,"20":1}}],["resilient",{"2":{"13":1}}],["rest",{"2":{"9":2,"42":1}}],["responder",{"2":{"34":1}}],["respondwithauthors",{"2":{"30":2}}],["responding",{"2":{"19":1,"30":3}}],["respondto",{"2":{"19":1,"30":3,"31":1,"32":1,"35":2}}],["respond",{"2":{"13":1}}],["responds",{"2":{"8":1,"46":2,"54":1}}],["responsibility",{"2":{"20":1}}],["responsibilities",{"2":{"20":1,"39":1}}],["responsible",{"2":{"0":1,"3":1,"48":1}}],["responsebuilder",{"0":{"30":1,"31":1,"35":1},"1":{"31":1,"32":1,"33":1,"34":1,"35":1},"2":{"19":4,"22":1,"30":9}}],["responses",{"0":{"19":1},"2":{"0":1,"7":2,"9":3,"10":5,"11":2,"18":3,"19":3,"23":1,"26":2,"31":1,"32":1,"35":2,"38":1,"41":1,"45":1,"46":1,"47":1,"53":1,"54":1,"55":4}}],["response",{"0":{"5":1,"20":1,"36":1,"42":1,"46":1,"54":1,"55":1},"1":{"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"37":1,"38":1,"39":1,"40":1,"41":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1},"2":{"0":3,"2":2,"3":10,"4":3,"5":1,"6":1,"8":5,"9":7,"10":3,"11":3,"12":2,"13":2,"19":12,"20":2,"23":4,"27":1,"30":6,"31":2,"32":1,"33":3,"34":3,"35":1,"36":1,"38":1,"39":1,"41":1,"42":2,"43":1,"44":1,"45":1,"46":5,"48":3,"49":2,"50":1,"52":1,"53":2,"54":2,"55":2}}],["results",{"2":{"18":3,"27":1}}],["result",{"2":{"0":1,"10":1}}],["effort",{"2":{"51":1}}],["effects",{"2":{"20":1}}],["effect",{"2":{"9":1}}],["effectively",{"2":{"3":1,"13":1}}],["e",{"2":{"48":1}}],["establishing",{"2":{"43":1}}],["essence",{"2":{"9":1}}],["embraced",{"2":{"41":1}}],["empty",{"2":{"9":1,"18":1,"24":1,"27":1}}],["ephemeral",{"2":{"40":1}}],["error",{"2":{"29":3}}],["element",{"2":{"26":1,"30":1}}],["elements",{"2":{"18":1,"19":3,"23":2,"26":2,"32":1,"33":3,"34":6}}],["elapsed",{"2":{"26":1}}],["either",{"2":{"18":1,"48":1,"49":1}}],["encryption",{"2":{"53":1}}],["enriched",{"2":{"41":1}}],["enrich",{"2":{"40":1}}],["end",{"2":{"37":1}}],["endpoint",{"2":{"9":2}}],["ensures",{"2":{"48":1}}],["ensure",{"2":{"18":1,"27":1,"34":1,"47":1,"51":2}}],["enabled",{"2":{"22":1}}],["enable",{"2":{"17":2}}],["enablequeryresponse",{"2":{"16":2,"23":1,"30":1}}],["enabling",{"2":{"16":1,"23":1}}],["enough",{"2":{"11":1}}],["entries",{"2":{"11":3,"19":1,"30":2}}],["entry",{"2":{"9":1,"23":1,"30":1}}],["enforce",{"2":{"0":1}}],["evaluates",{"2":{"26":2}}],["evaluate",{"2":{"26":1,"27":3}}],["evaluated",{"2":{"24":3}}],["events",{"2":{"40":1}}],["event",{"2":{"30":1,"45":1,"46":1}}],["eventlistener",{"2":{"18":1,"19":1,"30":1}}],["eventually",{"2":{"10":1}}],["even",{"2":{"3":1,"9":3,"11":1}}],["evolving",{"2":{"5":1,"14":1}}],["evolve",{"2":{"3":1,"39":1}}],["evolutionary",{"2":{"38":1}}],["evolution",{"2":{"0":1,"4":1,"36":1,"39":1,"41":2}}],["easy",{"2":{"14":1,"16":1,"18":1,"19":2,"22":1,"35":1}}],["easily",{"2":{"7":1,"30":1}}],["early",{"2":{"10":2}}],["earlier",{"2":{"1":1,"20":1}}],["each",{"0":{"3":1},"2":{"8":1,"9":1,"13":1,"24":1,"30":1,"31":1,"37":2}}],["extensions",{"2":{"53":1}}],["extended",{"2":{"2":1,"28":1,"39":1}}],["extend",{"2":{"1":2,"13":1,"14":1,"42":1}}],["external",{"2":{"49":1}}],["exceptional",{"2":{"28":1}}],["exception",{"2":{"27":1,"28":1}}],["exchange",{"2":{"8":1,"17":1,"37":2,"38":1,"41":1,"43":1}}],["executing",{"2":{"26":1}}],["executed",{"2":{"27":1}}],["execute",{"2":{"23":1}}],["explicit",{"2":{"24":1,"41":1}}],["explain",{"2":{"22":1}}],["experience",{"2":{"20":1,"39":1}}],["expected",{"2":{"12":1,"23":1,"25":1}}],["expressions",{"2":{"45":1}}],["expressing",{"2":{"42":1}}],["expresses",{"2":{"7":1,"45":1}}],["express",{"2":{"0":1,"18":1,"29":1}}],["exactly",{"2":{"10":1,"23":1}}],["examine",{"2":{"0":1,"52":1}}],["examples",{"0":{"29":1,"35":1},"2":{"6":1,"29":1}}],["example",{"0":{"0":1,"6":1},"1":{"1":1,"2":1,"3":1,"4":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1},"2":{"0":2,"1":1,"6":1,"7":1,"13":1,"18":1,"23":2,"30":1}}],["exist",{"2":{"3":1}}],["exists",{"2":{"3":1}}],["etc",{"2":{"0":1,"24":1}}],["dynamic",{"2":{"35":1,"41":1}}],["dynamically",{"2":{"27":1}}],["durable",{"2":{"40":1}}],["duration",{"2":{"26":2}}],["duplicate",{"2":{"11":2}}],["duplicates",{"2":{"0":1}}],["d",{"2":{"20":1,"42":1}}],["dropping",{"2":{"37":1}}],["drain",{"2":{"20":1,"33":1}}],["driven",{"2":{"0":1}}],["difference",{"2":{"27":1}}],["different",{"2":{"0":2,"1":1,"9":1,"13":1,"23":1,"26":1,"27":1,"29":1,"34":1,"41":2}}],["discuss",{"2":{"22":1}}],["distributed",{"2":{"16":1,"20":1,"22":1,"43":1}}],["distinct",{"2":{"3":1}}],["did",{"2":{"11":1}}],["databind",{"2":{"30":1}}],["data",{"2":{"1":1,"6":1,"9":1,"19":1,"29":1,"30":4,"31":2,"34":2,"35":1,"38":3,"39":1,"40":2,"41":2,"43":1,"46":2}}],["documentation",{"2":{"50":1}}],["document",{"2":{"38":1}}],["documents",{"2":{"37":1}}],["docker",{"2":{"17":2}}],["do",{"2":{"10":3,"16":2,"27":3}}],["dot",{"2":{"7":1}}],["down",{"2":{"4":1,"20":1}}],["done",{"2":{"9":1,"16":2,"30":1}}],["don",{"2":{"2":1,"7":1}}],["does",{"2":{"0":1,"8":1,"10":1,"43":1,"48":1,"49":1,"50":1,"53":1}}],["domain",{"2":{"0":2,"45":1}}],["demand",{"2":{"42":1}}],["derived",{"2":{"42":1}}],["delivered",{"2":{"54":1}}],["delivery",{"2":{"48":1,"50":1}}],["deliverytag=1",{"2":{"19":1}}],["deliverytag=0",{"2":{"18":1,"19":2}}],["deliverymode=non",{"2":{"18":1,"19":2}}],["deliberate",{"2":{"41":1}}],["deeper",{"2":{"39":1}}],["deployment",{"2":{"38":1}}],["depending",{"2":{"20":1,"48":1,"49":1}}],["dependency",{"2":{"16":3,"23":1,"30":1}}],["degree",{"2":{"30":1}}],["detect",{"2":{"52":1}}],["determine",{"2":{"30":1}}],["detail",{"2":{"22":1}}],["definitions",{"2":{"42":1}}],["define",{"2":{"26":1,"50":1}}],["defines",{"2":{"23":1,"26":3,"27":3,"33":2}}],["defined",{"2":{"23":2,"30":1}}],["default",{"2":{"17":2,"18":2}}],["defaults",{"2":{"10":1,"24":1,"27":6,"28":1,"29":2}}],["deal",{"2":{"10":1}}],["dealing",{"2":{"0":1,"18":1}}],["developer",{"2":{"14":1,"38":1,"43":1}}],["developers",{"0":{"21":1},"1":{"22":1,"23":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"30":1,"31":1,"32":1,"33":1,"34":1,"35":1},"2":{"0":1,"10":1,"20":1,"22":2,"35":1,"39":1}}],["development",{"2":{"10":2,"20":1,"37":1}}],["declares",{"2":{"34":2}}],["declare",{"2":{"32":1}}],["declared",{"2":{"18":1,"23":1,"25":1,"26":1,"27":2,"32":1,"34":1,"37":1}}],["decisions",{"2":{"20":1}}],["decide",{"2":{"9":1,"10":1,"53":1}}],["decoupling",{"2":{"9":1,"20":1,"38":1,"43":1,"47":1}}],["decoupled",{"2":{"5":1,"8":1,"14":1}}],["desirable",{"2":{"45":1,"46":1}}],["designates",{"2":{"47":1}}],["designers",{"2":{"0":1}}],["design",{"0":{"20":1},"2":{"0":2,"3":1,"10":3,"20":1,"40":1}}],["description",{"2":{"24":1,"31":1,"44":1,"50":1}}],["describe",{"2":{"20":1,"42":1,"43":1,"47":1}}],["describes",{"2":{"7":1,"36":1,"41":1,"47":1}}],["www",{"2":{"17":1}}],["wrapped",{"2":{"14":1}}],["wrong",{"2":{"11":1,"13":1}}],["written",{"2":{"38":1}}],["write",{"2":{"9":2,"22":1}}],["writing",{"2":{"9":2,"22":1}}],["wide",{"2":{"37":1}}],["wiki",{"2":{"37":1,"38":1}}],["wiring",{"2":{"16":1}}],["willingly",{"2":{"49":1,"53":1}}],["will",{"2":{"9":1,"10":1,"13":2,"16":1,"17":2,"18":2,"19":2,"20":1,"23":3,"26":2,"27":1,"30":4,"33":2,"34":1,"37":1,"52":2,"54":1}}],["withbatchesof",{"2":{"31":1,"33":1,"35":2}}],["withall",{"2":{"19":2,"30":1,"31":1,"33":1}}],["without",{"2":{"8":1,"19":1,"39":1,"46":2}}],["within",{"2":{"0":1,"41":1,"46":1}}],["with",{"0":{"4":1},"2":{"0":3,"2":1,"3":2,"4":2,"7":1,"9":4,"10":1,"11":1,"13":1,"15":1,"16":3,"17":1,"18":2,"19":2,"20":3,"22":3,"23":2,"24":2,"27":1,"29":2,"30":2,"31":2,"33":1,"35":2,"36":1,"37":1,"38":2,"39":1,"45":2,"46":1,"47":1,"53":2,"55":1}}],["whether",{"2":{"26":1}}],["whenever",{"2":{"30":1}}],["when",{"2":{"17":1,"18":1,"22":1,"26":1,"29":1,"30":1,"54":1}}],["where",{"2":{"7":1,"27":1,"41":1,"52":1}}],["whish",{"2":{"45":2}}],["whishes",{"2":{"13":1}}],["which",{"2":{"8":2,"9":2,"13":1,"18":1,"20":2,"30":1,"33":1,"39":1,"40":1,"41":1,"43":1,"45":2,"50":1,"51":1}}],["who",{"2":{"7":1,"8":1,"9":1,"19":1}}],["what",{"0":{"5":1,"12":1},"1":{"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1},"2":{"3":1,"9":1,"10":3,"11":1,"12":2,"13":3,"20":1,"30":1,"42":1}}],["way",{"0":{"20":1},"2":{"13":1,"16":1,"18":1,"22":1,"26":1,"41":1,"42":2,"45":1,"50":1}}],["ways",{"2":{"13":1,"34":1}}],["waiting",{"2":{"24":1}}],["waitingfor",{"2":{"18":1,"23":2,"24":1,"26":4,"29":4}}],["wait",{"2":{"10":2,"13":1}}],["walking",{"2":{"6":1}}],["was",{"2":{"1":2,"9":3,"20":2}}],["word",{"2":{"37":1}}],["worse",{"2":{"9":1}}],["working",{"2":{"14":1}}],["work",{"2":{"1":1,"13":1,"15":1,"16":2}}],["would",{"2":{"0":1,"3":1,"9":2,"11":3,"20":3}}],["were",{"2":{"20":1,"26":1}}],["well",{"2":{"9":1,"10":1,"11":1,"16":1,"30":1,"36":1}}],["we",{"2":{"0":4,"1":2,"2":3,"3":5,"4":2,"7":2,"8":4,"9":17,"10":2,"11":5,"12":2,"13":1,"14":1,"15":1,"18":3,"20":1,"22":4,"23":1,"25":1,"30":1,"32":2}}],["mvn",{"2":{"17":1,"18":1,"19":1}}],["m",{"2":{"13":2}}],["mind",{"2":{"38":1}}],["minimum",{"2":{"24":1,"26":1}}],["minimal",{"2":{"0":1}}],["millis",{"2":{"26":1}}],["milliseconds",{"2":{"18":1,"23":1}}],["mission",{"2":{"22":1}}],["microservices",{"2":{"20":1}}],["micro",{"2":{"19":1}}],["might",{"2":{"10":2}}],["myapp",{"2":{"16":2}}],["my",{"2":{"9":1,"42":1}}],["multiple",{"2":{"11":1}}],["much",{"2":{"9":1,"20":1,"29":1,"45":1}}],["must",{"2":{"0":1,"2":1,"11":1,"30":1,"42":2,"45":2,"46":2,"47":1,"48":2,"49":1,"52":1,"54":2}}],["mentioned",{"2":{"30":1}}],["mess",{"2":{"20":1}}],["messages",{"2":{"33":1,"48":1}}],["messageproperties",{"2":{"18":1,"19":3}}],["message",{"2":{"8":1,"18":1,"19":1,"43":1,"44":2,"45":1}}],["messaging",{"2":{"5":1,"6":1,"9":1,"47":2,"48":1}}],["methods",{"0":{"25":1,"26":1,"27":1,"28":1,"32":1,"33":1,"34":1,"50":1},"1":{"51":1,"52":1,"53":1,"54":1,"55":1},"2":{"23":3,"26":1,"27":2,"29":1,"30":4,"33":1}}],["method",{"0":{"24":1,"31":1},"2":{"19":1,"23":3,"24":2,"25":1,"27":3,"28":1,"30":3,"31":2,"32":1,"34":1,"44":2}}],["medium",{"2":{"19":1}}],["mean",{"2":{"12":1}}],["means",{"2":{"9":1,"18":1,"23":1,"30":2,"43":1}}],["moves",{"2":{"40":1}}],["move",{"2":{"38":2,"39":1}}],["moving",{"2":{"20":1}}],["modules",{"2":{"38":1,"41":1}}],["module",{"2":{"37":1}}],["modern",{"2":{"35":1}}],["model",{"0":{"36":1},"1":{"37":1,"38":1,"39":1,"40":1,"41":1},"2":{"9":2,"13":1,"22":1,"36":1,"38":1,"40":1,"41":1,"43":1}}],["monday",{"2":{"35":2}}],["moment",{"2":{"18":1,"25":1,"32":1}}],["more",{"2":{"8":1,"9":2,"11":1,"13":1,"16":2,"20":2,"23":1,"26":1,"28":1,"29":1,"30":1,"35":1,"38":1,"40":4,"42":1}}],["mostly",{"2":{"19":1}}],["most",{"2":{"0":1,"10":1,"16":1,"23":1,"30":1,"37":1,"45":1,"46":1}}],["malleable",{"2":{"40":1}}],["malicious",{"2":{"9":1}}],["maturity",{"0":{"36":1},"1":{"37":1,"38":1,"39":1,"40":1,"41":1},"2":{"36":2,"41":1}}],["matching",{"2":{"30":1}}],["maximum",{"2":{"24":1}}],["mapper",{"2":{"30":2}}],["mapped",{"2":{"18":1,"25":1}}],["mappings",{"2":{"30":1}}],["mapping",{"2":{"18":1,"30":2}}],["map",{"2":{"18":1,"19":1}}],["marco",{"2":{"18":4,"19":6}}],["manipulating",{"2":{"46":1}}],["management",{"2":{"17":4}}],["many",{"2":{"13":1,"18":1,"35":1}}],["main",{"2":{"16":1}}],["mailbox",{"2":{"7":2,"44":1,"47":1}}],["maven",{"2":{"16":3}}],["makes",{"2":{"14":1,"18":1,"19":1,"45":1}}],["make",{"2":{"10":1,"13":1,"17":1}}],["making",{"2":{"8":1,"13":1,"22":1}}],["made",{"2":{"1":1,"7":1,"33":1}}],["may",{"2":{"0":1,"2":1,"8":1,"9":1,"10":1,"18":3,"23":2,"28":1,"29":1,"30":1,"35":1,"38":1,"40":1,"42":1,"45":1,"51":3,"53":3,"55":3}}],["ll",{"2":{"22":2}}],["lt",{"2":{"18":3,"19":3,"25":2,"27":5,"32":2,"34":5}}],["luck",{"2":{"8":1}}],["luckily",{"2":{"3":1}}],["lost",{"2":{"52":1}}],["loosen",{"2":{"38":1}}],["look",{"2":{"22":1,"24":1,"31":1,"38":1}}],["looks",{"2":{"2":1}}],["log",{"2":{"29":1}}],["logging",{"2":{"24":1,"28":1}}],["logs",{"2":{"18":1}}],["loading",{"2":{"16":1}}],["longer",{"2":{"41":1}}],["long",{"2":{"10":2,"26":2}}],["lovers",{"0":{"10":1}}],["local",{"2":{"40":1}}],["localhost",{"2":{"17":2}}],["locally",{"2":{"17":1}}],["location",{"2":{"7":1,"39":1,"44":1,"47":1}}],["lock",{"2":{"9":1}}],["lots",{"2":{"20":1}}],["lot",{"2":{"9":1,"20":2,"38":2}}],["lag",{"2":{"38":1}}],["lazy",{"2":{"27":1,"35":1}}],["lazily",{"2":{"27":1}}],["lands",{"2":{"20":1}}],["language",{"2":{"0":1,"7":1,"45":2}}],["latencies",{"2":{"20":1}}],["later",{"2":{"2":1,"4":1,"8":1,"9":1,"13":1,"15":1,"30":1}}],["large",{"2":{"19":1}}],["law",{"2":{"9":1}}],["living",{"2":{"40":1}}],["lived",{"2":{"51":1}}],["live",{"2":{"2":1}}],["like",{"2":{"36":1,"38":1,"42":2,"53":1}}],["limitless",{"2":{"41":1}}],["limiting",{"2":{"26":1}}],["limit",{"2":{"24":2,"26":1}}],["literally",{"2":{"20":1}}],["liberally",{"2":{"9":2}}],["library",{"0":{"1":1,"12":1},"2":{"0":1,"2":2,"3":2,"4":2,"7":4,"8":1,"9":1,"11":1,"12":4,"13":3,"14":1}}],["lines",{"2":{"18":1}}],["line",{"2":{"1":1}}],["listening",{"2":{"53":2,"55":2}}],["listen",{"2":{"20":1}}],["list",{"2":{"0":1,"1":1,"2":1,"3":1,"9":2,"11":1,"13":4}}],["levels",{"2":{"41":1}}],["level",{"0":{"37":1,"38":1,"39":1,"40":1,"41":1},"2":{"38":1,"39":1,"41":1,"43":1}}],["leverage",{"2":{"0":1}}],["lewis",{"2":{"30":1}}],["lenient",{"2":{"29":1}}],["lesson",{"2":{"20":1}}],["less",{"2":{"9":1,"40":1}}],["leave",{"2":{"42":1}}],["leads",{"2":{"38":1}}],["lead",{"2":{"37":1}}],["least",{"2":{"9":1,"13":1,"15":1,"26":1}}],["learning",{"2":{"20":1}}],["learn",{"2":{"6":1}}],["learned",{"2":{"0":1,"20":1}}],["letting",{"2":{"8":1}}],["let",{"2":{"0":1,"1":1,"4":1,"6":1,"7":1,"10":3,"12":1,"24":1,"31":1}}],["fulfilled",{"2":{"45":1}}],["fulfill",{"2":{"41":1}}],["fulfilling",{"2":{"26":1}}],["full",{"2":{"19":1}}],["futures",{"2":{"22":1}}],["fundamental",{"2":{"20":1}}],["further",{"2":{"9":1}}],["free",{"2":{"51":1}}],["fred",{"2":{"20":1}}],["frame",{"2":{"46":1}}],["friendly",{"2":{"14":1}}],["from",{"2":{"0":3,"8":3,"9":3,"11":1,"13":1,"19":1,"20":3,"23":1,"29":1,"30":3,"31":1,"34":4,"35":1,"38":1,"41":2,"42":1,"45":1,"49":1}}],["fasterxml",{"2":{"30":1}}],["fact",{"2":{"30":1}}],["fault",{"2":{"18":1}}],["failure",{"2":{"29":1}}],["failures",{"2":{"20":1}}],["fails",{"2":{"28":1}}],["fail",{"2":{"13":1,"51":1}}],["fallbacks",{"2":{"13":1,"52":1}}],["fallback",{"2":{"10":1}}],["flexibility",{"2":{"40":1}}],["fluid",{"0":{"24":1,"31":1},"2":{"25":1,"30":1,"32":1}}],["fluent",{"2":{"23":1}}],["flow",{"0":{"13":1}}],["flood",{"2":{"10":1}}],["flaw",{"2":{"10":1,"11":1}}],["flavour",{"0":{"3":1},"2":{"42":1}}],["follow",{"2":{"42":2}}],["following",{"2":{"4":1,"12":1,"23":1,"30":1,"43":1,"50":1}}],["foreach",{"2":{"18":1}}],["forcing",{"2":{"13":1}}],["forces",{"2":{"10":1,"13":1}}],["force",{"2":{"10":1,"20":1}}],["forward",{"2":{"4":1}}],["formal",{"2":{"42":1}}],["formats",{"2":{"37":1}}],["format",{"2":{"1":1,"3":2,"9":1,"30":2}}],["form",{"2":{"40":1}}],["formed",{"2":{"1":1,"9":1}}],["for",{"0":{"20":1},"2":{"0":3,"1":4,"2":1,"3":4,"4":1,"5":1,"7":4,"9":1,"10":3,"11":1,"13":1,"14":1,"15":1,"16":1,"18":5,"19":3,"20":1,"22":1,"23":2,"24":2,"25":1,"27":1,"28":1,"29":1,"30":3,"31":1,"32":2,"34":2,"38":3,"39":1,"41":1,"43":2,"45":3,"46":1,"48":3,"50":1,"51":1,"53":2,"55":2}}],["fetched",{"2":{"27":1}}],["feel",{"2":{"22":1}}],["few",{"2":{"3":1,"20":1,"26":1,"34":1}}],["features",{"2":{"13":1}}],["feature",{"2":{"1":1,"29":1}}],["filters",{"2":{"45":1}}],["fit",{"2":{"42":1}}],["fits",{"2":{"7":1}}],["fixed",{"2":{"37":1}}],["field",{"2":{"23":2}}],["findallcurrentusertokens",{"2":{"35":1}}],["findalloffersbydayofweek",{"2":{"35":1}}],["findauthors",{"2":{"23":2}}],["find",{"2":{"30":1,"37":1}}],["final",{"2":{"23":1,"30":1}}],["finally",{"2":{"19":1}}],["finished",{"2":{"19":1}}],["fictional",{"2":{"6":1}}],["fiction",{"2":{"2":1,"7":1,"13":1}}],["first",{"2":{"1":1,"2":2,"9":1,"38":1}}],["fi",{"0":{"7":1},"2":{"0":4,"2":4,"3":2,"4":4,"7":6,"8":1,"9":1,"11":1,"12":3,"13":2}}],["bd51",{"2":{"19":4}}],["blocks",{"2":{"23":1}}],["block",{"2":{"18":1,"23":2}}],["blocking",{"2":{"5":1,"18":1,"20":1,"24":1,"27":1,"37":1}}],["bindings",{"2":{"17":1}}],["bit",{"2":{"3":1,"10":1,"38":1}}],["breaking",{"2":{"39":1}}],["breakers",{"2":{"10":1}}],["broader",{"2":{"45":1}}],["broadly",{"2":{"22":1}}],["broker",{"0":{"17":1},"2":{"6":1,"17":4,"18":1,"47":1,"48":1}}],["brand",{"2":{"14":1,"15":1,"16":1,"17":3,"18":1,"19":1,"22":3,"23":2,"29":1,"30":2}}],["b",{"2":{"8":1,"20":4}}],["bad",{"2":{"45":1}}],["batch",{"2":{"31":1,"33":1,"35":1}}],["batches",{"2":{"31":1}}],["batching",{"0":{"33":1},"2":{"30":1,"31":2,"33":2}}],["basic",{"2":{"7":1,"23":1,"30":1}}],["based",{"2":{"6":1,"37":1,"38":1,"40":1,"43":1,"47":1,"48":1,"50":1}}],["backward",{"2":{"3":1}}],["back",{"2":{"0":1,"3":1,"7":1,"11":1,"20":1}}],["build",{"2":{"23":1,"28":1,"34":2,"35":1}}],["builder",{"2":{"19":2,"23":2,"24":2,"26":1,"27":1,"28":1,"29":1,"30":5,"31":2,"33":1,"34":2}}],["building",{"2":{"5":1,"14":1,"15":1,"19":1,"22":1,"32":1}}],["built",{"2":{"18":2,"23":1,"26":3,"27":2,"30":1}}],["but",{"2":{"3":2,"7":1,"9":4,"10":4,"13":1,"16":1,"23":1,"38":2,"41":2,"42":1,"47":1}}],["boot",{"2":{"14":1,"15":2,"16":1,"17":1,"18":1,"19":1}}],["book",{"0":{"10":1},"2":{"1":2,"2":1,"4":1,"9":1}}],["bookshelf",{"2":{"12":2,"13":2}}],["books",{"0":{"2":1,"7":1,"8":1},"2":{"0":4,"2":4,"3":4,"4":5,"7":7,"8":1,"9":2,"11":2,"12":1,"13":4}}],["both",{"2":{"9":1,"11":1,"13":1,"30":1}}],["bound",{"2":{"9":1,"30":1,"37":2,"38":1,"40":1,"41":1,"48":1,"49":1}}],["body",{"2":{"1":2,"2":1,"3":2,"4":1,"8":2,"9":1,"11":2,"12":1,"18":1,"19":2,"55":1}}],["by",{"0":{"20":1},"2":{"0":2,"3":1,"6":1,"8":1,"10":2,"13":1,"16":2,"17":3,"22":1,"23":2,"24":1,"26":1,"30":3,"33":1,"41":1,"43":1,"45":1,"50":1}}],["best",{"2":{"51":1}}],["beyond",{"0":{"41":1},"2":{"40":1}}],["begin",{"2":{"40":1}}],["began",{"2":{"20":1}}],["below",{"2":{"23":2,"29":1,"30":2}}],["believe",{"2":{"20":1,"22":1}}],["bean",{"2":{"23":1,"30":1}}],["behind",{"2":{"22":1,"38":1}}],["benefits",{"2":{"36":1}}],["benefit",{"2":{"20":1,"39":1}}],["between",{"2":{"20":1,"47":1}}],["better",{"0":{"1":1},"2":{"9":1,"13":1,"27":1}}],["being",{"2":{"12":1,"18":1,"19":2,"38":1}}],["before",{"2":{"11":1,"17":1,"18":1,"19":1,"51":1}}],["been",{"2":{"4":1,"13":1,"52":1,"54":1}}],["be",{"2":{"0":1,"2":1,"3":3,"4":1,"6":1,"7":3,"8":2,"9":4,"10":4,"11":3,"16":1,"17":1,"18":3,"23":2,"26":2,"27":1,"28":1,"29":3,"30":5,"33":2,"34":1,"38":1,"40":1,"41":3,"43":1,"45":2,"46":3,"48":2,"49":1,"50":1,"51":4,"52":2,"54":1}}],["aims",{"2":{"43":1}}],["awareness",{"2":{"22":1}}],["away",{"2":{"9":1}}],["api",{"0":{"24":1,"31":1},"2":{"20":1,"22":1,"23":1,"25":1,"26":1,"28":1,"29":1,"30":1,"32":1,"35":1}}],["apply",{"2":{"30":1}}],["applicationreadyevent",{"2":{"18":1,"19":1,"30":2}}],["application",{"2":{"16":1,"17":2,"18":2,"19":1,"30":2}}],["applications",{"2":{"14":1}}],["appropriate",{"2":{"45":1,"46":2,"51":1}}],["approximate",{"2":{"26":1}}],["approach",{"2":{"13":1,"51":1}}],["app",{"2":{"18":1}}],["appears",{"2":{"3":2}}],["autonomy",{"2":{"20":1}}],["autowired",{"2":{"18":1,"19":1}}],["authoritative",{"2":{"43":1}}],["authority",{"2":{"9":1}}],["authors",{"2":{"13":1,"23":4,"29":2,"30":5}}],["author",{"2":{"9":1}}],["amp",{"0":{"16":1},"1":{"17":1}}],["amqp",{"0":{"17":1,"20":1},"2":{"14":1,"17":1}}],["amount",{"2":{"10":1,"26":2}}],["available",{"2":{"16":1,"17":2,"45":1}}],["availability",{"2":{"13":2,"20":2,"41":1}}],["avoid",{"2":{"7":1,"9":1,"11":1}}],["after",{"2":{"13":1,"18":1,"20":1,"24":3,"26":1,"34":1,"46":1}}],["ack",{"2":{"52":1,"54":1}}],["across",{"2":{"20":1,"35":1}}],["accepts",{"2":{"44":1}}],["acceptance",{"2":{"36":1}}],["access",{"2":{"23":2,"30":1}}],["accessed",{"2":{"17":1}}],["accomplish",{"2":{"18":1}}],["accumulates",{"2":{"13":1}}],["accident",{"2":{"0":1}}],["achieve",{"2":{"9":1}}],["actions",{"0":{"50":1},"1":{"51":1,"52":1,"53":1,"54":1,"55":1}}],["actor",{"2":{"44":2,"47":1,"48":2,"49":2}}],["actors",{"2":{"43":1}}],["act",{"2":{"9":1,"37":1}}],["actual",{"2":{"9":1,"19":1}}],["actually",{"2":{"9":1,"13":1,"20":1}}],["able",{"2":{"9":1}}],["above",{"2":{"7":1,"8":1,"23":3,"30":2}}],["about",{"2":{"2":1,"6":1,"8":2,"9":3,"10":1,"20":4,"22":1,"28":1,"38":1}}],["arrival",{"2":{"48":1}}],["arrived",{"2":{"20":1,"54":1}}],["arrive",{"2":{"10":2,"12":1}}],["architecture",{"2":{"41":1}}],["architectures",{"2":{"5":1,"14":1}}],["around",{"2":{"20":3,"23":2,"30":1,"36":1,"40":1}}],["args",{"2":{"16":2}}],["argument",{"2":{"23":1}}],["arguably",{"2":{"9":1}}],["argue",{"2":{"9":1}}],["are",{"2":{"0":2,"1":1,"6":1,"8":2,"9":3,"10":1,"12":1,"13":3,"14":1,"15":1,"18":6,"22":2,"23":1,"24":3,"26":1,"27":3,"29":1,"30":2,"33":1,"35":1,"37":1,"41":2,"42":1,"51":1,"52":1}}],["added",{"2":{"4":1,"34":1}}],["addressable",{"2":{"47":1}}],["addressed",{"2":{"18":1}}],["address",{"0":{"47":1,"51":1},"2":{"0":1,"7":3,"8":2,"9":1,"11":1,"44":1,"45":2,"46":1,"47":2,"51":2,"54":1,"55":1}}],["aggregated",{"2":{"13":1,"26":1}}],["aggregates",{"2":{"13":1}}],["against",{"2":{"53":1}}],["again",{"2":{"3":2,"4":2,"19":2}}],["agree",{"2":{"1":1}}],["agreed",{"2":{"1":1,"9":1,"30":1}}],["atleast",{"2":{"26":1}}],["atmost",{"2":{"26":1}}],["attached",{"2":{"34":1}}],["attempt",{"2":{"23":1}}],["attr",{"2":{"14":1,"15":1,"16":1,"17":3,"18":1,"19":1,"22":3,"23":2,"29":1,"30":2}}],["at",{"2":{"2":1,"3":2,"4":2,"6":1,"7":1,"9":2,"10":1,"11":1,"12":1,"13":2,"15":1,"17":2,"18":1,"20":4,"22":1,"24":1,"25":1,"26":1,"27":3,"29":1,"31":1,"32":1,"33":1,"34":3,"38":1,"39":1,"41":1,"45":1,"52":2,"53":2,"55":4}}],["ask",{"2":{"18":1}}],["asked",{"2":{"10":1}}],["asynchronous",{"2":{"5":1,"6":1,"20":2,"43":1,"48":1}}],["assert",{"2":{"9":1,"55":1}}],["asserting",{"2":{"3":1}}],["assume",{"2":{"2":1,"3":1,"52":1,"54":1}}],["aspect",{"2":{"3":1}}],["aspects",{"2":{"0":1}}],["asimov",{"0":{"9":1},"2":{"3":3,"4":2,"11":1}}],["as",{"2":{"1":1,"9":2,"11":4,"12":1,"13":2,"16":1,"18":1,"19":1,"20":1,"23":5,"25":2,"26":1,"27":2,"28":1,"29":1,"30":11,"32":2,"34":2,"37":1,"39":1,"42":2,"43":2,"44":1,"45":2,"46":3,"53":1}}],["although",{"2":{"38":1}}],["alternative",{"2":{"34":1}}],["alone",{"2":{"14":1}}],["always",{"2":{"10":1,"18":3,"34":1}}],["already",{"2":{"9":1,"38":1}}],["almost",{"2":{"4":1,"41":1}}],["allocated",{"2":{"51":1}}],["allowing",{"2":{"9":1,"28":1}}],["allows",{"2":{"3":1,"8":1,"24":1,"29":1,"30":1,"41":1,"45":1}}],["allow",{"2":{"0":1,"30":1}}],["all",{"2":{"0":1,"3":1,"7":2,"9":2,"10":1,"11":1,"13":2,"17":1,"19":1,"26":1,"27":1,"33":2,"37":1,"41":1,"45":1,"55":1}}],["also",{"2":{"0":2,"7":1,"13":2,"19":2,"29":1,"30":1,"36":1,"41":1}}],["answer",{"2":{"46":2}}],["annotations",{"2":{"30":1}}],["annotation",{"2":{"16":2,"18":1,"23":1,"30":1}}],["annotating",{"2":{"16":1}}],["another",{"2":{"3":2,"30":2}}],["an",{"0":{"17":1},"2":{"2":1,"5":1,"7":2,"8":1,"12":1,"13":1,"17":2,"18":1,"20":1,"23":1,"26":1,"27":2,"28":1,"29":2,"35":1,"36":1,"43":1,"45":3,"46":4,"47":1,"48":1,"49":1,"51":1,"53":2,"55":1}}],["anything",{"2":{"2":1}}],["any",{"0":{"7":1},"2":{"0":2,"4":1,"6":1,"7":1,"9":1,"10":2,"11":1,"18":3,"19":1,"22":1,"23":6,"25":1,"26":2,"27":1,"30":2,"32":1,"38":1,"39":1,"41":1,"42":1,"45":1,"48":2,"49":1,"50":1,"52":1,"53":3,"55":4}}],["and",{"0":{"20":1,"41":1,"44":1,"50":1},"1":{"45":1,"46":1,"47":1,"48":1,"49":1,"51":1,"52":1,"53":1,"54":1,"55":1},"2":{"0":4,"1":3,"2":1,"3":8,"4":2,"6":2,"7":3,"8":1,"9":10,"10":3,"11":4,"12":1,"13":6,"14":1,"15":4,"16":1,"17":4,"18":6,"19":6,"20":10,"22":7,"23":8,"25":2,"26":2,"27":2,"29":1,"30":4,"32":1,"33":1,"34":1,"35":2,"36":2,"37":1,"38":4,"39":2,"40":6,"41":4,"42":3,"43":2,"45":3,"47":3,"48":1,"49":1,"50":1,"52":2,"53":2,"54":1,"55":1}}],["a",{"0":{"1":1,"6":1},"1":{"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1},"2":{"0":4,"1":2,"2":3,"3":6,"4":1,"6":1,"7":6,"8":7,"9":16,"10":8,"11":6,"12":2,"13":4,"14":2,"16":1,"17":2,"18":8,"19":3,"20":11,"22":3,"23":9,"24":7,"25":1,"26":6,"27":2,"30":10,"31":3,"32":2,"33":3,"34":5,"35":2,"38":5,"39":2,"40":3,"41":2,"42":4,"43":3,"44":1,"45":8,"46":10,"47":7,"48":5,"49":3,"50":1,"51":2,"52":2,"53":5,"54":1,"55":4}}],["ignore",{"2":{"53":1}}],["idea",{"2":{"42":1}}],["ideas",{"2":{"40":1}}],["identified",{"2":{"36":1}}],["immediately",{"2":{"30":1,"40":1}}],["impossible",{"2":{"37":1}}],["import",{"2":{"16":1}}],["important",{"2":{"3":2,"7":1,"9":2,"10":2}}],["implementation",{"2":{"22":1,"36":1,"48":1}}],["implementations",{"2":{"3":1,"51":1,"53":1}}],["implementing",{"2":{"20":1,"43":1}}],["implemented",{"2":{"13":1}}],["imperative",{"2":{"9":1,"22":1}}],["illustrates",{"2":{"13":1}}],["i",{"2":{"0":1,"2":1,"3":2,"4":1,"8":1,"9":3,"10":1,"11":1,"12":1,"13":5,"20":6,"36":1,"37":1,"38":1,"42":1,"45":1}}],["iterator",{"2":{"33":1,"34":2}}],["its",{"2":{"30":1,"45":1,"48":1,"49":1}}],["it",{"2":{"0":1,"1":2,"2":2,"3":2,"7":2,"8":2,"9":5,"10":3,"11":5,"13":2,"14":2,"15":1,"16":3,"17":1,"18":5,"19":2,"20":5,"22":1,"23":5,"25":1,"26":1,"27":1,"28":1,"29":1,"30":10,"32":1,"34":3,"35":1,"36":1,"37":1,"38":1,"42":3,"43":1,"45":2,"46":4,"48":2,"51":1,"53":2,"54":1}}],["issues",{"2":{"53":1}}],["isbn",{"2":{"1":1}}],["is",{"0":{"5":1},"1":{"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1},"2":{"0":2,"1":2,"2":1,"3":8,"4":2,"5":1,"6":1,"7":5,"9":9,"10":5,"11":3,"12":1,"13":4,"16":5,"17":3,"18":4,"19":4,"22":3,"23":7,"26":3,"27":4,"28":1,"29":1,"30":11,"32":1,"34":4,"37":1,"38":1,"39":1,"41":4,"42":2,"45":3,"46":1,"47":1,"48":1,"50":2,"51":1,"52":1,"53":3,"55":1}}],["independently",{"2":{"37":1,"38":1}}],["investigate",{"2":{"52":1}}],["inversion",{"0":{"13":1},"2":{"13":1,"20":1}}],["involvement",{"2":{"45":1}}],["invoked",{"2":{"27":1,"30":1}}],["injecting",{"2":{"23":1}}],["injected",{"2":{"23":1,"30":2}}],["initiates",{"2":{"18":1,"44":1,"48":1}}],["initializes",{"2":{"19":1}}],["initial",{"0":{"25":1,"32":1},"2":{"0":1,"23":2,"24":1,"25":1,"27":1,"30":1,"31":1,"32":1}}],["info",{"2":{"41":1}}],["informal",{"0":{"28":1},"2":{"23":1,"24":1,"28":1,"29":1}}],["information",{"2":{"3":1,"8":3,"9":4,"16":2,"18":1,"20":1,"28":1,"30":1,"37":1,"41":2,"43":1,"44":1,"46":2,"48":1,"55":2}}],["infrastructure",{"2":{"16":1}}],["int",{"2":{"26":2,"33":1}}],["introducing",{"2":{"22":1}}],["into",{"2":{"13":1,"29":1,"30":1,"39":1,"41":1,"42":1}}],["integration",{"2":{"29":1,"39":1}}],["intent",{"0":{"43":1},"2":{"46":2,"53":2}}],["intention",{"2":{"22":1}}],["intend",{"2":{"32":1}}],["intended",{"2":{"6":1,"42":1}}],["interpolated",{"2":{"48":1,"49":1}}],["interpretable",{"2":{"45":1}}],["interpret",{"2":{"23":1}}],["interpreted",{"2":{"9":1,"30":1}}],["internal",{"2":{"9":1}}],["interest",{"2":{"8":1,"12":1,"13":1}}],["insight",{"2":{"39":1}}],["inside",{"2":{"9":1}}],["inspect",{"2":{"17":1}}],["installation",{"0":{"16":1},"1":{"17":1}}],["instead",{"2":{"8":1,"11":1,"20":1,"27":1,"47":1}}],["in",{"0":{"12":1},"2":{"0":5,"2":1,"3":4,"4":2,"6":1,"7":2,"8":1,"9":6,"10":3,"11":2,"12":3,"13":5,"14":1,"18":6,"19":2,"20":4,"22":4,"23":6,"26":1,"27":6,"28":1,"30":7,"34":1,"35":1,"37":2,"38":2,"41":2,"42":3,"43":1,"45":1,"46":1,"47":1,"50":2}}],["if",{"2":{"0":1,"3":3,"9":1,"10":1,"11":1,"18":1,"19":1,"26":3,"28":1,"41":1,"52":1}}],["typically",{"2":{"37":1,"47":2}}],["types",{"0":{"24":1,"31":1},"2":{"22":1,"23":1,"24":1,"28":1,"30":1,"31":1,"40":1}}],["type",{"2":{"6":1,"13":1,"18":2,"19":1,"23":2,"24":1,"25":2,"27":2,"30":3,"31":1,"32":2,"42":1,"44":1}}],["tune",{"2":{"35":2}}],["turns",{"2":{"20":1}}],["t>",{"2":{"25":3,"28":1,"32":3}}],["törnström",{"2":{"20":1}}],["trust",{"2":{"53":1}}],["truly",{"2":{"20":1}}],["trigger",{"2":{"40":1}}],["trivial",{"2":{"30":1}}],["tried",{"2":{"30":1}}],["tries",{"2":{"17":1,"43":1}}],["transferred",{"2":{"55":1}}],["transfer",{"2":{"30":1}}],["transport",{"2":{"30":1}}],["transparency",{"2":{"29":1}}],["transparent",{"2":{"22":1}}],["trailing",{"2":{"1":1}}],["try",{"2":{"22":3,"28":2,"33":1}}],["trying",{"2":{"13":2,"19":1}}],["tangle",{"2":{"38":1}}],["take",{"2":{"24":1,"31":1,"40":1,"41":1,"42":1}}],["taken",{"2":{"3":1,"14":1,"41":1}}],["takingatleast",{"2":{"24":1,"26":1,"29":2}}],["takingatmost",{"2":{"24":1,"26":1,"29":3}}],["table",{"2":{"23":1,"30":1}}],["talk",{"2":{"20":2}}],["tasks",{"2":{"18":1,"22":1}}],["tag",{"2":{"17":1}}],["tags",{"2":{"3":1}}],["t",{"2":{"2":1,"7":1,"9":1,"11":1,"25":2,"27":4,"32":2,"34":4}}],["tip",{"2":{"28":1,"30":1,"46":1,"47":1,"53":1}}],["tightly",{"2":{"13":1}}],["timeunit",{"2":{"26":1}}],["timeout",{"2":{"18":1,"26":2}}],["timeouts",{"2":{"13":1,"41":1,"52":1}}],["time",{"2":{"2":1,"3":1,"4":3,"13":1,"17":1,"20":1,"26":1,"27":5,"34":3,"38":1,"46":1,"52":2,"53":2,"55":2}}],["titles",{"2":{"3":1,"9":1}}],["title",{"2":{"1":1}}],["temporary",{"2":{"51":1}}],["temporal",{"2":{"38":1}}],["temporalunit",{"2":{"26":1}}],["tend",{"2":{"38":1,"40":1}}],["team",{"2":{"37":1}}],["teams",{"2":{"1":1,"38":1}}],["text",{"2":{"6":1,"23":1,"30":1}}],["technically",{"2":{"45":1}}],["technical",{"2":{"6":1}}],["terms",{"2":{"45":2}}],["terminates",{"2":{"24":3,"31":2}}],["terminals",{"2":{"28":1}}],["terminal",{"0":{"27":1,"34":1},"2":{"23":2,"24":3,"27":3,"30":1,"31":2,"34":2}}],["term",{"2":{"0":1,"7":1,"12":1,"18":1,"23":2,"25":2,"30":3,"32":2,"34":1,"45":1}}],["token",{"2":{"35":1}}],["told",{"2":{"42":1}}],["tolkien",{"2":{"30":1}}],["tolerance",{"2":{"18":1}}],["toofewoffersconstraintexception",{"2":{"29":2}}],["tools",{"2":{"22":2}}],["too",{"2":{"15":1,"16":1,"29":1,"41":1,"42":1}}],["towards",{"2":{"13":1,"38":1}}],["total",{"2":{"13":1}}],["topic",{"2":{"7":1,"34":1,"47":1}}],["top",{"0":{"2":1,"8":1},"2":{"2":1,"11":1,"13":1}}],["together",{"2":{"0":2,"26":1}}],["to",{"0":{"17":1},"2":{"0":5,"1":5,"2":2,"3":7,"4":1,"6":1,"7":8,"8":9,"9":16,"10":7,"11":6,"12":2,"13":9,"14":1,"16":5,"17":6,"18":10,"19":6,"20":5,"22":9,"23":9,"26":4,"27":9,"28":3,"29":3,"30":14,"32":1,"33":3,"34":2,"35":3,"37":3,"38":4,"39":1,"40":4,"41":2,"42":3,"43":2,"44":1,"45":3,"46":7,"47":1,"48":3,"49":3,"51":4,"52":3,"53":6,"54":1,"55":1}}],["three",{"2":{"30":1}}],["thread",{"2":{"23":2,"30":1,"34":1}}],["throttle",{"2":{"35":1}}],["throwable>",{"2":{"28":1}}],["thrown",{"2":{"28":1}}],["throw",{"2":{"27":1}}],["throwing",{"2":{"24":1,"29":1}}],["through",{"2":{"6":1,"13":1,"20":1}}],["than",{"2":{"20":1,"22":1}}],["that",{"2":{"0":1,"1":2,"2":1,"3":2,"4":2,"7":4,"8":1,"9":7,"10":3,"12":1,"13":4,"14":1,"16":3,"18":4,"19":1,"20":1,"22":3,"23":2,"27":1,"28":1,"29":1,"30":4,"32":1,"33":2,"34":2,"35":1,"45":1,"46":2,"48":1,"49":1,"51":3,"52":2,"53":2,"54":1}}],["though",{"2":{"6":1}}],["things",{"2":{"6":1,"9":1,"20":1,"22":1}}],["thinking",{"2":{"9":2,"13":1,"22":1}}],["think",{"0":{"20":1},"2":{"0":1,"8":1,"9":2,"10":1,"20":2,"28":1,"38":1}}],["this",{"2":{"0":4,"1":1,"3":3,"4":1,"7":3,"8":2,"9":10,"10":4,"11":4,"13":5,"16":2,"18":3,"19":1,"20":2,"22":1,"23":4,"30":3,"37":1,"38":1,"39":2,"40":1,"41":3,"42":1,"45":2,"46":1,"52":2}}],["them",{"2":{"22":3}}],["themselves",{"2":{"3":2,"4":1,"9":1,"12":1}}],["these",{"2":{"22":1}}],["they",{"2":{"18":1}}],["then",{"2":{"7":1}}],["therefore",{"2":{"51":1}}],["there",{"0":{"7":1,"10":1},"2":{"10":4,"11":1,"12":1,"13":1,"16":1,"17":1,"18":1,"20":2,"25":1,"26":1,"27":1,"28":1,"30":1,"32":1,"51":1}}],["theory",{"2":{"6":1}}],["their",{"2":{"1":1,"22":1,"23":1,"38":1}}],["the",{"0":{"0":1,"4":1,"8":1,"9":1,"12":1,"20":1},"1":{"1":1,"2":1,"3":1,"4":1},"2":{"0":10,"1":3,"2":6,"3":21,"4":9,"6":3,"7":15,"8":10,"9":29,"10":12,"11":7,"12":5,"13":22,"15":1,"16":8,"17":8,"18":12,"19":15,"20":9,"22":8,"23":27,"24":2,"25":5,"26":11,"27":15,"28":4,"29":4,"30":37,"31":2,"32":4,"33":4,"34":7,"35":1,"36":3,"38":5,"39":2,"40":2,"41":4,"42":6,"43":4,"45":3,"46":5,"47":3,"48":6,"49":2,"50":3,"51":4,"52":6,"53":4,"54":4,"55":1}}],["philosophy",{"2":{"30":1}}],["p",{"2":{"17":2}}],["please",{"2":{"16":1,"42":1,"53":1}}],["plan",{"2":{"10":1}}],["platform",{"2":{"7":1}}],["plain",{"2":{"6":1}}],["pseudo",{"2":{"6":1}}],["pebble",{"2":{"3":2,"4":1,"9":1,"12":1}}],["performance",{"2":{"37":1,"38":1}}],["persistent",{"2":{"18":1,"19":3,"40":1}}],["perhaps",{"2":{"9":1,"52":1}}],["per",{"2":{"1":1,"27":1,"34":1}}],["practically",{"2":{"38":1}}],["principles",{"2":{"42":1}}],["printed",{"2":{"18":1,"19":1}}],["println",{"2":{"18":1}}],["private",{"2":{"23":2,"30":1}}],["priority=0",{"2":{"18":1,"19":3}}],["price",{"2":{"9":1}}],["prepare",{"0":{"51":1}}],["prepared",{"2":{"27":1}}],["pretty",{"2":{"36":1,"38":1}}],["premiss",{"2":{"30":1}}],["preserves",{"2":{"29":1}}],["presentation",{"2":{"20":1}}],["presented",{"2":{"0":1,"13":1}}],["previously",{"2":{"42":1,"55":1}}],["previous",{"2":{"9":1}}],["profile",{"2":{"35":1}}],["protect",{"2":{"53":1}}],["protected",{"2":{"29":1}}],["protocols",{"2":{"38":1}}],["protocol",{"0":{"1":1,"42":1},"1":{"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1},"2":{"2":1,"3":2,"30":3,"39":1,"42":1}}],["programs",{"2":{"22":2}}],["programming",{"2":{"7":1}}],["procedural",{"2":{"22":1}}],["process",{"2":{"20":1}}],["proceeds",{"2":{"20":1}}],["provide",{"2":{"22":1,"23":1,"27":1,"28":1,"30":2,"35":1,"41":1,"43":1,"53":1}}],["provided",{"2":{"19":1,"23":1,"27":1,"30":1,"34":2,"52":1,"54":2}}],["provides",{"2":{"2":1,"20":1,"23":1,"25":1,"30":1,"32":1,"33":1}}],["providing",{"2":{"19":1}}],["project",{"2":{"16":1,"37":1}}],["production",{"2":{"14":1}}],["probable",{"2":{"13":1}}],["problems",{"2":{"20":1}}],["problem",{"2":{"9":1,"11":1}}],["properly",{"2":{"54":1}}],["proper",{"2":{"10":1,"39":1}}],["properties",{"2":{"1":1,"26":1}}],["promises",{"2":{"10":1,"22":1}}],["polo",{"2":{"19":5}}],["polos",{"2":{"18":2}}],["port",{"2":{"17":1}}],["popular",{"2":{"9":1}}],["points",{"2":{"37":1}}],["point",{"2":{"3":1,"13":2,"20":1,"23":1,"29":1,"30":1}}],["post",{"2":{"9":3}}],["postel",{"2":{"9":1}}],["possible",{"2":{"1":1,"11":1,"13":1,"29":1,"46":1,"52":1}}],["position",{"2":{"0":1}}],["power",{"2":{"0":1}}],["powerful",{"2":{"0":1,"9":1,"18":1}}],["purposes",{"2":{"50":1}}],["purgatory",{"0":{"37":1}}],["public",{"2":{"16":2,"18":2,"19":2,"23":3,"30":3}}],["publish",{"0":{"52":1,"54":1},"2":{"7":1,"18":2,"19":4,"20":1,"23":1,"30":1,"32":1,"33":1,"44":1,"46":1,"52":1,"53":1}}],["publishers",{"2":{"3":1,"30":1,"39":1,"41":1,"48":1,"49":1}}],["publisher",{"0":{"48":1},"2":{"3":1,"11":1,"19":1,"30":1,"33":1,"44":1,"47":1,"48":3,"51":1,"52":3,"54":2}}],["published=1589642489941",{"2":{"19":2}}],["published=1589642489894",{"2":{"19":1}}],["published=1589642002076",{"2":{"18":1}}],["published",{"2":{"0":1,"2":1,"4":1,"7":1,"8":1,"9":3,"10":1,"11":1,"12":1,"18":1,"19":4,"23":4,"30":2,"33":1,"44":1,"45":1,"46":1,"48":1}}],["publishing",{"2":{"2":1,"7":1,"9":1,"18":1,"23":1,"48":1,"51":1,"54":1}}],["push",{"2":{"9":1}}],["pun",{"2":{"6":1}}],["pull",{"2":{"3":1}}],["puts",{"2":{"0":1}}],["password",{"2":{"17":1}}],["pages",{"2":{"37":1}}],["page",{"2":{"16":1}}],["patter",{"2":{"9":1}}],["pattern",{"2":{"0":2,"3":2,"4":1,"5":1,"6":1,"10":3,"11":1,"13":2,"14":1,"20":2,"38":1,"41":1,"42":3,"43":2,"48":1,"50":1,"53":1}}],["parameters",{"2":{"45":1}}],["parameter",{"2":{"27":2,"30":3}}],["parsing",{"2":{"1":1,"3":1}}],["partial",{"2":{"41":1}}],["partitioning",{"2":{"30":1}}],["particular",{"2":{"7":1}}],["part",{"2":{"0":1,"9":1,"10":1,"22":1,"28":1}}],["payload",{"2":{"0":1,"3":2,"8":1,"11":1,"23":1,"39":1,"44":1,"46":2,"55":1}}],["payloads",{"2":{"0":1,"40":1}}],["o",{"2":{"37":1,"38":1}}],["over",{"2":{"33":1}}],["overview",{"0":{"22":1}}],["owners",{"2":{"39":1}}],["own",{"2":{"30":1}}],["objectmapper",{"2":{"30":1}}],["observed",{"2":{"29":1}}],["olle",{"2":{"20":1}}],["old",{"0":{"4":1}}],["older",{"2":{"3":1}}],["opportunities",{"2":{"36":1}}],["options",{"2":{"35":1,"52":2}}],["option",{"2":{"29":1,"51":1}}],["optionally",{"2":{"46":1}}],["optional",{"2":{"1":1,"8":1,"23":1,"42":1,"53":1}}],["open",{"2":{"11":1,"48":1}}],["operation",{"2":{"9":2,"53":1,"55":1}}],["output",{"2":{"19":1}}],["out",{"0":{"4":1,"7":1,"10":1},"2":{"13":1,"18":1,"19":1,"30":1}}],["our",{"2":{"0":3,"2":1,"9":1,"11":1,"18":1,"22":1}}],["other",{"2":{"3":1,"8":1,"9":1,"28":1,"37":1,"48":1}}],["ok",{"2":{"3":1}}],["oh",{"2":{"3":1}}],["orthrow",{"2":{"24":1,"27":1,"29":2}}],["orthrows",{"2":{"23":1}}],["ordefaults",{"2":{"23":1,"24":1,"27":3,"29":1}}],["order",{"2":{"7":1,"18":3,"19":1,"23":1,"27":1}}],["orempty",{"2":{"18":1,"23":3,"24":1,"27":1}}],["original",{"2":{"4":1,"11":1}}],["or",{"2":{"0":1,"2":2,"3":2,"4":1,"7":3,"8":1,"9":4,"10":3,"16":1,"18":3,"19":3,"20":1,"22":2,"23":3,"25":1,"26":1,"28":3,"30":6,"33":1,"37":3,"38":1,"39":2,"41":3,"42":4,"45":8,"46":2,"47":4,"48":5,"49":2,"50":2,"51":2,"52":3,"53":2,"54":2,"55":3}}],["once",{"2":{"9":1,"11":1,"33":1,"50":1}}],["on",{"2":{"0":1,"1":2,"9":2,"13":1,"16":2,"17":2,"19":2,"20":1,"23":1,"26":2,"27":1,"29":1,"30":3,"34":1,"37":1,"38":1,"40":1,"42":1,"48":1,"49":1,"50":1}}],["onlythreeauthors",{"2":{"30":2}}],["only",{"2":{"0":1,"3":2,"4":1,"6":1,"7":2,"11":1,"13":2,"18":1,"25":1,"26":1,"27":1,"28":1,"32":1,"34":1,"43":1,"50":2,"51":1}}],["onerror",{"2":{"24":1,"28":1,"29":1}}],["one",{"0":{"3":1},"2":{"0":1,"2":1,"3":1,"9":2,"10":2,"18":2,"19":1,"23":3,"25":1,"27":1,"28":1,"30":1,"32":1,"34":1,"41":1,"53":1,"55":1}}],["often",{"2":{"38":1,"39":1,"45":1}}],["offer",{"2":{"29":1,"35":1}}],["offers",{"2":{"29":2,"35":2}}],["of",{"0":{"3":1,"13":1},"2":{"0":6,"1":1,"2":1,"3":5,"4":2,"6":1,"8":5,"9":17,"10":3,"11":1,"13":10,"18":3,"19":1,"20":5,"22":6,"23":8,"24":1,"25":1,"26":3,"28":3,"29":1,"30":5,"31":2,"32":2,"33":2,"35":2,"36":2,"37":1,"38":1,"39":2,"40":1,"41":3,"42":4,"43":3,"45":1,"46":2,"48":4,"49":1,"50":1,"53":1,"54":1,"55":1}}],["slas",{"2":{"41":1}}],["special",{"2":{"19":1}}],["specified",{"2":{"45":1,"51":1}}],["specifies",{"2":{"24":1,"31":1}}],["specifications",{"2":{"43":1}}],["specific",{"2":{"10":1,"18":2,"42":1,"45":2,"46":1}}],["specify",{"2":{"18":1,"23":1,"26":1,"45":1}}],["springapplication",{"2":{"16":1}}],["springbootapplication",{"2":{"16":1}}],["spring",{"0":{"20":1},"2":{"14":2,"15":2,"16":1,"17":1,"18":1,"19":1,"23":1,"30":3}}],["sparked",{"2":{"13":1}}],["small",{"2":{"6":1,"44":1}}],["similar",{"2":{"45":1}}],["simply",{"2":{"42":1}}],["simple",{"0":{"6":1},"1":{"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1},"2":{"6":1,"11":1,"16":1,"45":1}}],["size",{"2":{"31":1,"33":3}}],["single",{"2":{"9":1,"10":1,"19":1,"48":1,"49":1}}],["since",{"2":{"9":1,"23":1,"27":1,"42":1}}],["side",{"2":{"3":3,"30":1}}],["sharing",{"2":{"43":1}}],["shall",{"2":{"42":2}}],["shaped",{"2":{"42":1}}],["shapes",{"2":{"40":1,"41":1}}],["shape",{"2":{"9":1,"30":1}}],["sh$",{"2":{"17":2,"18":1,"19":1}}],["shut",{"2":{"4":1}}],["short",{"2":{"23":1,"51":1}}],["show",{"2":{"10":1}}],["shows",{"2":{"3":1,"9":1,"18":1,"23":1,"30":2}}],["should",{"2":{"0":1,"7":2,"9":3,"10":2,"15":1,"16":1,"18":1,"22":1,"33":1,"42":2,"45":1,"46":2,"51":1,"52":1,"53":2,"55":1}}],["same",{"2":{"9":2,"11":2,"18":1}}],["say",{"2":{"4":1,"8":1,"9":1,"10":1,"13":1}}],["sadly",{"2":{"3":1}}],["saw",{"2":{"1":1}}],["sky",{"2":{"3":2,"4":1,"9":1,"12":1}}],["snow",{"2":{"2":1,"8":1,"11":1,"12":1}}],["sequence",{"2":{"50":1}}],["seamless",{"2":{"39":1}}],["seriously",{"2":{"41":1}}],["series",{"2":{"33":1}}],["server",{"2":{"9":2}}],["services",{"2":{"4":1,"8":1,"13":1,"19":1,"20":3,"30":1,"35":1,"41":1}}],["service",{"2":{"2":2,"4":1,"5":1,"13":5,"14":1,"18":1,"19":1,"20":7,"30":2,"37":1,"39":1}}],["security",{"2":{"53":1}}],["sections",{"2":{"22":1}}],["seconds",{"2":{"29":1}}],["second",{"2":{"18":2,"23":1,"30":1}}],["several",{"2":{"11":1,"55":1}}],["sense",{"2":{"45":1}}],["sensible",{"2":{"28":1}}],["send",{"2":{"20":1}}],["sends",{"2":{"8":1}}],["sender",{"2":{"7":1,"8":1}}],["sent",{"2":{"7":1,"8":2,"9":1,"10":1,"41":1,"46":3}}],["seeing",{"2":{"46":1}}],["seem",{"2":{"42":1}}],["seems",{"2":{"3":1}}],["see",{"2":{"4":1,"12":1,"16":1,"18":1,"19":1}}],["seen",{"2":{"3":1,"13":1,"20":1}}],["sets",{"2":{"24":2,"31":1,"41":1}}],["setup",{"2":{"6":1,"16":1,"19":1}}],["set",{"2":{"3":1,"11":1,"13":1,"18":1,"19":1,"27":1,"43":1}}],["semantics",{"2":{"0":1,"41":1,"45":2,"50":1}}],["schema",{"2":{"41":1}}],["scenario",{"2":{"10":1,"11":1,"12":1,"13":1}}],["scramble",{"2":{"1":1}}],["science",{"2":{"2":1,"7":1,"13":1}}],["sci",{"0":{"7":1},"2":{"0":4,"2":4,"3":2,"4":4,"7":6,"8":1,"9":1,"11":1,"12":3,"13":2}}],["stop",{"2":{"53":1,"55":1}}],["style",{"2":{"22":1}}],["stdout",{"2":{"18":1,"19":1}}],["step",{"2":{"9":1,"50":2}}],["still",{"2":{"2":1,"3":2,"9":2,"11":2,"38":2}}],["stakeholders",{"2":{"45":1}}],["stale",{"2":{"41":1}}],["stage",{"2":{"20":1}}],["standard",{"2":{"30":1,"42":1}}],["stand",{"2":{"14":1}}],["static",{"2":{"16":1,"19":1}}],["stations",{"2":{"1":1}}],["stated",{"2":{"45":1}}],["stateful",{"2":{"38":1}}],["stateless",{"2":{"37":1}}],["state",{"2":{"7":1,"40":1,"45":1}}],["started",{"0":{"14":1},"1":{"15":1,"16":1,"17":1,"18":1,"19":1}}],["start",{"2":{"13":1,"17":1}}],["star",{"2":{"2":1,"3":2}}],["stars",{"0":{"2":1},"2":{"1":2,"2":3,"3":3,"4":3}}],["strong",{"2":{"43":1}}],["streams",{"2":{"22":1}}],["stream",{"2":{"18":1}}],["strict",{"2":{"13":1,"40":1,"41":1,"42":1,"46":1,"51":1}}],["string>",{"2":{"18":1,"23":1}}],["string",{"2":{"1":1,"16":1,"18":3,"19":2,"23":4,"25":2,"29":1,"30":5,"32":2,"45":1}}],["strings",{"2":{"0":1,"1":1}}],["structured",{"2":{"45":1,"50":1}}],["structures",{"2":{"38":1}}],["structure",{"2":{"7":1,"9":1,"39":1,"40":1,"41":1}}],["structural",{"2":{"0":1}}],["such",{"2":{"45":1}}],["successfully",{"2":{"15":1}}],["successful",{"2":{"12":1,"26":5,"27":3}}],["subject",{"2":{"45":1}}],["subscriber",{"2":{"34":1}}],["suits",{"2":{"35":1}}],["suitable",{"2":{"3":1,"45":1}}],["summary",{"2":{"30":1}}],["supposed",{"2":{"41":1}}],["support",{"2":{"22":1}}],["supports",{"2":{"3":1}}],["supporting",{"2":{"1":1}}],["suppliedby",{"2":{"30":1,"31":1,"34":1,"35":1}}],["supplied",{"2":{"27":1,"31":1,"33":1,"34":2}}],["suppliers",{"2":{"35":1}}],["supplier",{"2":{"27":2,"34":2}}],["surprise",{"0":{"11":1}}],["surrendered",{"2":{"9":1}}],["sure",{"2":{"8":1,"17":1}}],["suggestions",{"2":{"42":1}}],["suggest",{"2":{"0":1}}],["sync",{"2":{"38":1,"40":1}}],["synchronized",{"2":{"37":1}}],["synchronous",{"2":{"13":2,"20":1,"37":1,"38":1,"50":1}}],["syntax",{"2":{"0":1,"7":1,"45":1}}],["systems",{"2":{"22":1,"47":1}}],["system",{"0":{"15":1},"2":{"0":1,"2":1,"4":1,"13":1,"18":1,"29":1,"35":1,"37":1,"40":1,"43":2,"47":1,"48":1}}],["solve",{"2":{"48":1}}],["solution",{"2":{"13":1,"48":1}}],["solutions",{"2":{"13":1,"37":1,"38":1}}],["source",{"2":{"34":1,"43":1,"49":1}}],["sources",{"2":{"0":1,"9":1}}],["som",{"2":{"13":1}}],["sometimes",{"2":{"41":1}}],["sometime",{"2":{"20":1}}],["something",{"2":{"10":1,"20":1}}],["some",{"2":{"0":1,"4":1,"6":1,"9":1,"13":1,"24":1,"27":1,"29":1,"30":3,"31":2,"32":1,"42":1,"48":1,"49":1}}],["so",{"0":{"12":1},"2":{"11":1,"18":2,"25":1,"32":1,"34":1,"43":1}}],["s",{"0":{"12":1},"2":{"0":1,"1":1,"2":1,"4":1,"6":1,"7":3,"8":2,"9":2,"10":2,"11":2,"12":2,"13":1,"16":2,"18":1,"19":4,"20":1,"23":1,"24":1,"25":2,"28":1,"30":1,"31":1,"32":1,"38":1,"42":1,"45":1,"46":1,"51":1}}]],"serializationVersion":2}`;export{e as default}; diff --git a/assets/chunks/VPLocalSearchBox.Ch91UrCK.js b/assets/chunks/VPLocalSearchBox.I8Z1Bueb.js similarity index 99% rename from assets/chunks/VPLocalSearchBox.Ch91UrCK.js rename to assets/chunks/VPLocalSearchBox.I8Z1Bueb.js index a2765a3..0711849 100644 --- a/assets/chunks/VPLocalSearchBox.Ch91UrCK.js +++ b/assets/chunks/VPLocalSearchBox.I8Z1Bueb.js @@ -1,4 +1,4 @@ -var Ct=Object.defineProperty;var It=(o,e,t)=>e in o?Ct(o,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):o[e]=t;var Oe=(o,e,t)=>It(o,typeof e!="symbol"?e+"":e,t);import{X as Dt,s as oe,v as $e,ai as kt,aj as Ot,d as Rt,G as xe,ak as tt,h as Fe,al as _t,am as Mt,x as Lt,an as Pt,y as Re,R as de,Q as Ee,ao as zt,ap as Bt,Y as Vt,U as $t,aq as Wt,o as ee,b as Kt,j as k,a1 as Jt,k as j,ar as Ut,as as jt,at as Gt,c as re,n as rt,e as Se,E as at,F as nt,a as ve,t as pe,au as Qt,p as qt,l as Ht,av as it,aw as Yt,a7 as Zt,ad as Xt,ax as er,_ as tr}from"./framework.Bsyxd66g.js";import{u as rr,c as ar}from"./theme.BR1y9Ihb.js";const nr={root:()=>Dt(()=>import("./@localSearchIndexroot.BQZxt9wH.js"),[])};/*! +var Ct=Object.defineProperty;var It=(o,e,t)=>e in o?Ct(o,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):o[e]=t;var Oe=(o,e,t)=>It(o,typeof e!="symbol"?e+"":e,t);import{X as Dt,s as oe,v as $e,ai as kt,aj as Ot,d as Rt,G as xe,ak as tt,h as Fe,al as _t,am as Mt,x as Lt,an as Pt,y as Re,R as de,Q as Ee,ao as zt,ap as Bt,Y as Vt,U as $t,aq as Wt,o as ee,b as Kt,j as k,a1 as Jt,k as j,ar as Ut,as as jt,at as Gt,c as re,n as rt,e as Se,E as at,F as nt,a as ve,t as pe,au as Qt,p as qt,l as Ht,av as it,aw as Yt,a7 as Zt,ad as Xt,ax as er,_ as tr}from"./framework.BLMDJhiA.js";import{u as rr,c as ar}from"./theme.DHmPbZv7.js";const nr={root:()=>Dt(()=>import("./@localSearchIndexroot.i1jxvErO.js"),[])};/*! * tabbable 6.2.0 * @license MIT, https://github.com/focus-trap/tabbable/blob/master/LICENSE */var yt=["input:not([inert])","select:not([inert])","textarea:not([inert])","a[href]:not([inert])","button:not([inert])","[tabindex]:not(slot):not([inert])","audio[controls]:not([inert])","video[controls]:not([inert])",'[contenteditable]:not([contenteditable="false"]):not([inert])',"details>summary:first-of-type:not([inert])","details:not([inert])"],Ne=yt.join(","),mt=typeof Element>"u",ue=mt?function(){}:Element.prototype.matches||Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector,Ce=!mt&&Element.prototype.getRootNode?function(o){var e;return o==null||(e=o.getRootNode)===null||e===void 0?void 0:e.call(o)}:function(o){return o==null?void 0:o.ownerDocument},Ie=function o(e,t){var r;t===void 0&&(t=!0);var n=e==null||(r=e.getAttribute)===null||r===void 0?void 0:r.call(e,"inert"),a=n===""||n==="true",i=a||t&&e&&o(e.parentNode);return i},ir=function(e){var t,r=e==null||(t=e.getAttribute)===null||t===void 0?void 0:t.call(e,"contenteditable");return r===""||r==="true"},gt=function(e,t,r){if(Ie(e))return[];var n=Array.prototype.slice.apply(e.querySelectorAll(Ne));return t&&ue.call(e,Ne)&&n.unshift(e),n=n.filter(r),n},bt=function o(e,t,r){for(var n=[],a=Array.from(e);a.length;){var i=a.shift();if(!Ie(i,!1))if(i.tagName==="SLOT"){var s=i.assignedElements(),u=s.length?s:i.children,l=o(u,!0,r);r.flatten?n.push.apply(n,l):n.push({scopeParent:i,candidates:l})}else{var h=ue.call(i,Ne);h&&r.filter(i)&&(t||!e.includes(i))&&n.push(i);var d=i.shadowRoot||typeof r.getShadowRoot=="function"&&r.getShadowRoot(i),v=!Ie(d,!1)&&(!r.shadowRootFilter||r.shadowRootFilter(i));if(d&&v){var y=o(d===!0?i.children:d.children,!0,r);r.flatten?n.push.apply(n,y):n.push({scopeParent:i,candidates:y})}else a.unshift.apply(a,i.children)}}return n},wt=function(e){return!isNaN(parseInt(e.getAttribute("tabindex"),10))},se=function(e){if(!e)throw new Error("No node provided");return e.tabIndex<0&&(/^(AUDIO|VIDEO|DETAILS)$/.test(e.tagName)||ir(e))&&!wt(e)?0:e.tabIndex},or=function(e,t){var r=se(e);return r<0&&t&&!wt(e)?0:r},sr=function(e,t){return e.tabIndex===t.tabIndex?e.documentOrder-t.documentOrder:e.tabIndex-t.tabIndex},xt=function(e){return e.tagName==="INPUT"},ur=function(e){return xt(e)&&e.type==="hidden"},lr=function(e){var t=e.tagName==="DETAILS"&&Array.prototype.slice.apply(e.children).some(function(r){return r.tagName==="SUMMARY"});return t},cr=function(e,t){for(var r=0;rsummary:first-of-type"),i=a?e.parentElement:e;if(ue.call(i,"details:not([open]) *"))return!0;if(!r||r==="full"||r==="legacy-full"){if(typeof n=="function"){for(var s=e;e;){var u=e.parentElement,l=Ce(e);if(u&&!u.shadowRoot&&n(u)===!0)return ot(e);e.assignedSlot?e=e.assignedSlot:!u&&l!==e.ownerDocument?e=l.host:e=u}e=s}if(vr(e))return!e.getClientRects().length;if(r!=="legacy-full")return!0}else if(r==="non-zero-area")return ot(e);return!1},yr=function(e){if(/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(e.tagName))for(var t=e.parentElement;t;){if(t.tagName==="FIELDSET"&&t.disabled){for(var r=0;r=0)},gr=function o(e){var t=[],r=[];return e.forEach(function(n,a){var i=!!n.scopeParent,s=i?n.scopeParent:n,u=or(s,i),l=i?o(n.candidates):s;u===0?i?t.push.apply(t,l):t.push(s):r.push({documentOrder:a,tabIndex:u,item:n,isScope:i,content:l})}),r.sort(sr).reduce(function(n,a){return a.isScope?n.push.apply(n,a.content):n.push(a.content),n},[]).concat(t)},br=function(e,t){t=t||{};var r;return t.getShadowRoot?r=bt([e],t.includeContainer,{filter:We.bind(null,t),flatten:!1,getShadowRoot:t.getShadowRoot,shadowRootFilter:mr}):r=gt(e,t.includeContainer,We.bind(null,t)),gr(r)},wr=function(e,t){t=t||{};var r;return t.getShadowRoot?r=bt([e],t.includeContainer,{filter:De.bind(null,t),flatten:!0,getShadowRoot:t.getShadowRoot}):r=gt(e,t.includeContainer,De.bind(null,t)),r},le=function(e,t){if(t=t||{},!e)throw new Error("No node provided");return ue.call(e,Ne)===!1?!1:We(t,e)},xr=yt.concat("iframe").join(","),_e=function(e,t){if(t=t||{},!e)throw new Error("No node provided");return ue.call(e,xr)===!1?!1:De(t,e)};/*! diff --git a/assets/chunks/framework.Bsyxd66g.js b/assets/chunks/framework.BLMDJhiA.js similarity index 74% rename from assets/chunks/framework.Bsyxd66g.js rename to assets/chunks/framework.BLMDJhiA.js index b7f292c..b7f3a72 100644 --- a/assets/chunks/framework.Bsyxd66g.js +++ b/assets/chunks/framework.BLMDJhiA.js @@ -14,4 +14,4 @@ * @vue/runtime-dom v3.4.31 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT -**/const Nc="http://www.w3.org/2000/svg",Fc="http://www.w3.org/1998/Math/MathML",Ve=typeof document<"u"?document:null,Ss=Ve&&Ve.createElement("template"),$c={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{const s=t==="svg"?Ve.createElementNS(Nc,e):t==="mathml"?Ve.createElementNS(Fc,e):n?Ve.createElement(e,{is:n}):Ve.createElement(e);return e==="select"&&r&&r.multiple!=null&&s.setAttribute("multiple",r.multiple),s},createText:e=>Ve.createTextNode(e),createComment:e=>Ve.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Ve.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,r,s,o){const i=n?n.previousSibling:t.lastChild;if(s&&(s===o||s.nextSibling))for(;t.insertBefore(s.cloneNode(!0),n),!(s===o||!(s=s.nextSibling)););else{Ss.innerHTML=r==="svg"?`${e}`:r==="mathml"?`${e}`:e;const l=Ss.content;if(r==="svg"||r==="mathml"){const c=l.firstChild;for(;c.firstChild;)l.appendChild(c.firstChild);l.removeChild(c)}t.insertBefore(l,n)}return[i?i.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},Ke="transition",Tt="animation",Ut=Symbol("_vtc"),ci=(e,{slots:t})=>br(yc,Hc(e),t);ci.displayName="Transition";const ai={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String};ci.props=le({},Xo,ai);const st=(e,t=[])=>{K(e)?e.forEach(n=>n(...t)):e&&e(...t)},Ts=e=>e?K(e)?e.some(t=>t.length>1):e.length>1:!1;function Hc(e){const t={};for(const T in e)T in ai||(t[T]=e[T]);if(e.css===!1)return t;const{name:n="v",type:r,duration:s,enterFromClass:o=`${n}-enter-from`,enterActiveClass:i=`${n}-enter-active`,enterToClass:l=`${n}-enter-to`,appearFromClass:c=o,appearActiveClass:a=i,appearToClass:f=l,leaveFromClass:h=`${n}-leave-from`,leaveActiveClass:m=`${n}-leave-active`,leaveToClass:_=`${n}-leave-to`}=e,C=jc(s),I=C&&C[0],H=C&&C[1],{onBeforeEnter:W,onEnter:D,onEnterCancelled:p,onLeave:y,onLeaveCancelled:M,onBeforeAppear:A=W,onAppear:F=D,onAppearCancelled:$=p}=t,L=(T,G,ne)=>{ot(T,G?f:l),ot(T,G?a:i),ne&&ne()},w=(T,G)=>{T._isLeaving=!1,ot(T,h),ot(T,_),ot(T,m),G&&G()},N=T=>(G,ne)=>{const ce=T?F:D,U=()=>L(G,T,ne);st(ce,[G,U]),As(()=>{ot(G,T?c:o),ke(G,T?f:l),Ts(ce)||Rs(G,r,I,U)})};return le(t,{onBeforeEnter(T){st(W,[T]),ke(T,o),ke(T,i)},onBeforeAppear(T){st(A,[T]),ke(T,c),ke(T,a)},onEnter:N(!1),onAppear:N(!0),onLeave(T,G){T._isLeaving=!0;const ne=()=>w(T,G);ke(T,h),ke(T,m),Uc(),As(()=>{T._isLeaving&&(ot(T,h),ke(T,_),Ts(y)||Rs(T,r,H,ne))}),st(y,[T,ne])},onEnterCancelled(T){L(T,!1),st(p,[T])},onAppearCancelled(T){L(T,!0),st($,[T])},onLeaveCancelled(T){w(T),st(M,[T])}})}function jc(e){if(e==null)return null;if(Z(e))return[Yn(e.enter),Yn(e.leave)];{const t=Yn(e);return[t,t]}}function Yn(e){return $i(e)}function ke(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e[Ut]||(e[Ut]=new Set)).add(t)}function ot(e,t){t.split(/\s+/).forEach(r=>r&&e.classList.remove(r));const n=e[Ut];n&&(n.delete(t),n.size||(e[Ut]=void 0))}function As(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let Vc=0;function Rs(e,t,n,r){const s=e._endId=++Vc,o=()=>{s===e._endId&&r()};if(n)return setTimeout(o,n);const{type:i,timeout:l,propCount:c}=Dc(e,t);if(!i)return r();const a=i+"end";let f=0;const h=()=>{e.removeEventListener(a,m),o()},m=_=>{_.target===e&&++f>=c&&h()};setTimeout(()=>{f(n[C]||"").split(", "),s=r(`${Ke}Delay`),o=r(`${Ke}Duration`),i=Os(s,o),l=r(`${Tt}Delay`),c=r(`${Tt}Duration`),a=Os(l,c);let f=null,h=0,m=0;t===Ke?i>0&&(f=Ke,h=i,m=o.length):t===Tt?a>0&&(f=Tt,h=a,m=c.length):(h=Math.max(i,a),f=h>0?i>a?Ke:Tt:null,m=f?f===Ke?o.length:c.length:0);const _=f===Ke&&/\b(transform|all)(,|$)/.test(r(`${Ke}Property`).toString());return{type:f,timeout:h,propCount:m,hasTransform:_}}function Os(e,t){for(;e.lengthLs(n)+Ls(e[r])))}function Ls(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function Uc(){return document.body.offsetHeight}function Bc(e,t,n){const r=e[Ut];r&&(t=(t?[t,...r]:[...r]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const Is=Symbol("_vod"),Kc=Symbol("_vsh"),kc=Symbol(""),Wc=/(^|;)\s*display\s*:/;function qc(e,t,n){const r=e.style,s=oe(n);let o=!1;if(n&&!s){if(t)if(oe(t))for(const i of t.split(";")){const l=i.slice(0,i.indexOf(":")).trim();n[l]==null&&pn(r,l,"")}else for(const i in t)n[i]==null&&pn(r,i,"");for(const i in n)i==="display"&&(o=!0),pn(r,i,n[i])}else if(s){if(t!==n){const i=r[kc];i&&(n+=";"+i),r.cssText=n,o=Wc.test(n)}}else t&&e.removeAttribute("style");Is in e&&(e[Is]=o?r.display:"",e[Kc]&&(r.display="none"))}const Ms=/\s*!important$/;function pn(e,t,n){if(K(n))n.forEach(r=>pn(e,t,r));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const r=Gc(e,t);Ms.test(n)?e.setProperty(ft(r),n.replace(Ms,""),"important"):e[r]=n}}const Ps=["Webkit","Moz","ms"],zn={};function Gc(e,t){const n=zn[t];if(n)return n;let r=$e(t);if(r!=="filter"&&r in e)return zn[t]=r;r=An(r);for(let s=0;sJn||(Qc.then(()=>Jn=0),Jn=Date.now());function ea(e,t){const n=r=>{if(!r._vts)r._vts=Date.now();else if(r._vts<=n.attached)return;Se(ta(r,n.value),t,5,[r])};return n.value=e,n.attached=Zc(),n}function ta(e,t){if(K(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(r=>s=>!s._stopped&&r&&r(s))}else return t}const js=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,na=(e,t,n,r,s,o,i,l,c)=>{const a=s==="svg";t==="class"?Bc(e,r,a):t==="style"?qc(e,n,r):Kt(t)?Er(t)||zc(e,t,n,r,i):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):ra(e,t,r,a))?(Xc(e,t,r,o,i,l,c),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&Fs(e,t,r,a,i,t!=="value")):(t==="true-value"?e._trueValue=r:t==="false-value"&&(e._falseValue=r),Fs(e,t,r,a))};function ra(e,t,n,r){if(r)return!!(t==="innerHTML"||t==="textContent"||t in e&&js(t)&&k(n));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const s=e.tagName;if(s==="IMG"||s==="VIDEO"||s==="CANVAS"||s==="SOURCE")return!1}return js(t)&&oe(n)?!1:t in e}const Vs=e=>{const t=e.props["onUpdate:modelValue"]||!1;return K(t)?n=>fn(t,n):t};function sa(e){e.target.composing=!0}function Ds(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const Qn=Symbol("_assign"),vu={created(e,{modifiers:{lazy:t,trim:n,number:r}},s){e[Qn]=Vs(s);const o=r||s.props&&s.props.type==="number";gt(e,t?"change":"input",i=>{if(i.target.composing)return;let l=e.value;n&&(l=l.trim()),o&&(l=cr(l)),e[Qn](l)}),n&>(e,"change",()=>{e.value=e.value.trim()}),t||(gt(e,"compositionstart",sa),gt(e,"compositionend",Ds),gt(e,"change",Ds))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:r,trim:s,number:o}},i){if(e[Qn]=Vs(i),e.composing)return;const l=(o||e.type==="number")&&!/^0\d/.test(e.value)?cr(e.value):e.value,c=t??"";l!==c&&(document.activeElement===e&&e.type!=="range"&&(r&&t===n||s&&e.value.trim()===c)||(e.value=c))}},oa=["ctrl","shift","alt","meta"],ia={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>oa.some(n=>e[`${n}Key`]&&!t.includes(n))},bu=(e,t)=>{const n=e._withMods||(e._withMods={}),r=t.join(".");return n[r]||(n[r]=(s,...o)=>{for(let i=0;i{const n=e._withKeys||(e._withKeys={}),r=t.join(".");return n[r]||(n[r]=s=>{if(!("key"in s))return;const o=ft(s.key);if(t.some(i=>i===o||la[i]===o))return e(s)})},ui=le({patchProp:na},$c);let Ft,Us=!1;function ca(){return Ft||(Ft=ic(ui))}function aa(){return Ft=Us?Ft:lc(ui),Us=!0,Ft}const Eu=(...e)=>{const t=ca().createApp(...e),{mount:n}=t;return t.mount=r=>{const s=di(r);if(!s)return;const o=t._component;!k(o)&&!o.render&&!o.template&&(o.template=s.innerHTML),s.innerHTML="";const i=n(s,!1,fi(s));return s instanceof Element&&(s.removeAttribute("v-cloak"),s.setAttribute("data-v-app","")),i},t},Cu=(...e)=>{const t=aa().createApp(...e),{mount:n}=t;return t.mount=r=>{const s=di(r);if(s)return n(s,!0,fi(s))},t};function fi(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function di(e){return oe(e)?document.querySelector(e):e}const xu=(e,t)=>{const n=e.__vccOpts||e;for(const[r,s]of t)n[r]=s;return n},ua="modulepreload",fa=function(e){return"/"+e},Bs={},Su=function(t,n,r){let s=Promise.resolve();if(n&&n.length>0){document.getElementsByTagName("link");const o=document.querySelector("meta[property=csp-nonce]"),i=(o==null?void 0:o.nonce)||(o==null?void 0:o.getAttribute("nonce"));s=Promise.all(n.map(l=>{if(l=fa(l),l in Bs)return;Bs[l]=!0;const c=l.endsWith(".css"),a=c?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${l}"]${a}`))return;const f=document.createElement("link");if(f.rel=c?"stylesheet":ua,c||(f.as="script",f.crossOrigin=""),f.href=l,i&&f.setAttribute("nonce",i),document.head.appendChild(f),c)return new Promise((h,m)=>{f.addEventListener("load",h),f.addEventListener("error",()=>m(new Error(`Unable to preload CSS for ${l}`)))})}))}return s.then(()=>t()).catch(o=>{const i=new Event("vite:preloadError",{cancelable:!0});if(i.payload=o,window.dispatchEvent(i),!i.defaultPrevented)throw o})},da=window.__VP_SITE_DATA__;function Kr(e){return oo()?(qi(e),!0):!1}function Fe(e){return typeof e=="function"?e():wo(e)}const hi=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const ha=Object.prototype.toString,pa=e=>ha.call(e)==="[object Object]",Bt=()=>{},Ks=ga();function ga(){var e,t;return hi&&((e=window==null?void 0:window.navigator)==null?void 0:e.userAgent)&&(/iP(?:ad|hone|od)/.test(window.navigator.userAgent)||((t=window==null?void 0:window.navigator)==null?void 0:t.maxTouchPoints)>2&&/iPad|Macintosh/.test(window==null?void 0:window.navigator.userAgent))}function ma(e,t){function n(...r){return new Promise((s,o)=>{Promise.resolve(e(()=>t.apply(this,r),{fn:t,thisArg:this,args:r})).then(s).catch(o)})}return n}const pi=e=>e();function ya(e,t={}){let n,r,s=Bt;const o=l=>{clearTimeout(l),s(),s=Bt};return l=>{const c=Fe(e),a=Fe(t.maxWait);return n&&o(n),c<=0||a!==void 0&&a<=0?(r&&(o(r),r=null),Promise.resolve(l())):new Promise((f,h)=>{s=t.rejectOnCancel?h:f,a&&!r&&(r=setTimeout(()=>{n&&o(n),r=null,f(l())},a)),n=setTimeout(()=>{r&&o(r),r=null,f(l())},c)})}}function _a(e=pi){const t=se(!0);function n(){t.value=!1}function r(){t.value=!0}const s=(...o)=>{t.value&&e(...o)};return{isActive:Ln(t),pause:n,resume:r,eventFilter:s}}function va(e){return jn()}function gi(...e){if(e.length!==1)return wl(...e);const t=e[0];return typeof t=="function"?Ln(_l(()=>({get:t,set:Bt}))):se(t)}function mi(e,t,n={}){const{eventFilter:r=pi,...s}=n;return Ne(e,ma(r,t),s)}function ba(e,t,n={}){const{eventFilter:r,...s}=n,{eventFilter:o,pause:i,resume:l,isActive:c}=_a(r);return{stop:mi(e,t,{...s,eventFilter:o}),pause:i,resume:l,isActive:c}}function kr(e,t=!0,n){va()?xt(e,n):t?e():In(e)}function Tu(e,t,n={}){const{debounce:r=0,maxWait:s=void 0,...o}=n;return mi(e,t,{...o,eventFilter:ya(r,{maxWait:s})})}function Au(e,t,n){let r;de(n)?r={evaluating:n}:r={};const{lazy:s=!1,evaluating:o=void 0,shallow:i=!0,onError:l=Bt}=r,c=se(!s),a=i?Fr(t):se(t);let f=0;return Ur(async h=>{if(!c.value)return;f++;const m=f;let _=!1;o&&Promise.resolve().then(()=>{o.value=!0});try{const C=await e(I=>{h(()=>{o&&(o.value=!1),_||I()})});m===f&&(a.value=C)}catch(C){l(C)}finally{o&&m===f&&(o.value=!1),_=!0}}),s?re(()=>(c.value=!0,a.value)):a}function yi(e){var t;const n=Fe(e);return(t=n==null?void 0:n.$el)!=null?t:n}const Oe=hi?window:void 0;function Ct(...e){let t,n,r,s;if(typeof e[0]=="string"||Array.isArray(e[0])?([n,r,s]=e,t=Oe):[t,n,r,s]=e,!t)return Bt;Array.isArray(n)||(n=[n]),Array.isArray(r)||(r=[r]);const o=[],i=()=>{o.forEach(f=>f()),o.length=0},l=(f,h,m,_)=>(f.addEventListener(h,m,_),()=>f.removeEventListener(h,m,_)),c=Ne(()=>[yi(t),Fe(s)],([f,h])=>{if(i(),!f)return;const m=pa(h)?{...h}:h;o.push(...n.flatMap(_=>r.map(C=>l(f,_,C,m))))},{immediate:!0,flush:"post"}),a=()=>{c(),i()};return Kr(a),a}function wa(e){return typeof e=="function"?e:typeof e=="string"?t=>t.key===e:Array.isArray(e)?t=>e.includes(t.key):()=>!0}function Ru(...e){let t,n,r={};e.length===3?(t=e[0],n=e[1],r=e[2]):e.length===2?typeof e[1]=="object"?(t=!0,n=e[0],r=e[1]):(t=e[0],n=e[1]):(t=!0,n=e[0]);const{target:s=Oe,eventName:o="keydown",passive:i=!1,dedupe:l=!1}=r,c=wa(t);return Ct(s,o,f=>{f.repeat&&Fe(l)||c(f)&&n(f)},i)}function Ea(){const e=se(!1),t=jn();return t&&xt(()=>{e.value=!0},t),e}function Ca(e){const t=Ea();return re(()=>(t.value,!!e()))}function _i(e,t={}){const{window:n=Oe}=t,r=Ca(()=>n&&"matchMedia"in n&&typeof n.matchMedia=="function");let s;const o=se(!1),i=a=>{o.value=a.matches},l=()=>{s&&("removeEventListener"in s?s.removeEventListener("change",i):s.removeListener(i))},c=Ur(()=>{r.value&&(l(),s=n.matchMedia(Fe(e)),"addEventListener"in s?s.addEventListener("change",i):s.addListener(i),o.value=s.matches)});return Kr(()=>{c(),l(),s=void 0}),o}const ln=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},cn="__vueuse_ssr_handlers__",xa=Sa();function Sa(){return cn in ln||(ln[cn]=ln[cn]||{}),ln[cn]}function vi(e,t){return xa[e]||t}function Ta(e){return e==null?"any":e instanceof Set?"set":e instanceof Map?"map":e instanceof Date?"date":typeof e=="boolean"?"boolean":typeof e=="string"?"string":typeof e=="object"?"object":Number.isNaN(e)?"any":"number"}const Aa={boolean:{read:e=>e==="true",write:e=>String(e)},object:{read:e=>JSON.parse(e),write:e=>JSON.stringify(e)},number:{read:e=>Number.parseFloat(e),write:e=>String(e)},any:{read:e=>e,write:e=>String(e)},string:{read:e=>e,write:e=>String(e)},map:{read:e=>new Map(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e.entries()))},set:{read:e=>new Set(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e))},date:{read:e=>new Date(e),write:e=>e.toISOString()}},ks="vueuse-storage";function Wr(e,t,n,r={}){var s;const{flush:o="pre",deep:i=!0,listenToStorageChanges:l=!0,writeDefaults:c=!0,mergeDefaults:a=!1,shallow:f,window:h=Oe,eventFilter:m,onError:_=w=>{console.error(w)},initOnMounted:C}=r,I=(f?Fr:se)(typeof t=="function"?t():t);if(!n)try{n=vi("getDefaultStorage",()=>{var w;return(w=Oe)==null?void 0:w.localStorage})()}catch(w){_(w)}if(!n)return I;const H=Fe(t),W=Ta(H),D=(s=r.serializer)!=null?s:Aa[W],{pause:p,resume:y}=ba(I,()=>A(I.value),{flush:o,deep:i,eventFilter:m});h&&l&&kr(()=>{Ct(h,"storage",$),Ct(h,ks,L),C&&$()}),C||$();function M(w,N){h&&h.dispatchEvent(new CustomEvent(ks,{detail:{key:e,oldValue:w,newValue:N,storageArea:n}}))}function A(w){try{const N=n.getItem(e);if(w==null)M(N,null),n.removeItem(e);else{const T=D.write(w);N!==T&&(n.setItem(e,T),M(N,T))}}catch(N){_(N)}}function F(w){const N=w?w.newValue:n.getItem(e);if(N==null)return c&&H!=null&&n.setItem(e,D.write(H)),H;if(!w&&a){const T=D.read(N);return typeof a=="function"?a(T,H):W==="object"&&!Array.isArray(T)?{...H,...T}:T}else return typeof N!="string"?N:D.read(N)}function $(w){if(!(w&&w.storageArea!==n)){if(w&&w.key==null){I.value=H;return}if(!(w&&w.key!==e)){p();try{(w==null?void 0:w.newValue)!==D.write(I.value)&&(I.value=F(w))}catch(N){_(N)}finally{w?In(y):y()}}}}function L(w){$(w.detail)}return I}function bi(e){return _i("(prefers-color-scheme: dark)",e)}function Ra(e={}){const{selector:t="html",attribute:n="class",initialValue:r="auto",window:s=Oe,storage:o,storageKey:i="vueuse-color-scheme",listenToStorageChanges:l=!0,storageRef:c,emitAuto:a,disableTransition:f=!0}=e,h={auto:"",light:"light",dark:"dark",...e.modes||{}},m=bi({window:s}),_=re(()=>m.value?"dark":"light"),C=c||(i==null?gi(r):Wr(i,r,o,{window:s,listenToStorageChanges:l})),I=re(()=>C.value==="auto"?_.value:C.value),H=vi("updateHTMLAttrs",(y,M,A)=>{const F=typeof y=="string"?s==null?void 0:s.document.querySelector(y):yi(y);if(!F)return;let $;if(f&&($=s.document.createElement("style"),$.appendChild(document.createTextNode("*,*::before,*::after{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}")),s.document.head.appendChild($)),M==="class"){const L=A.split(/\s/g);Object.values(h).flatMap(w=>(w||"").split(/\s/g)).filter(Boolean).forEach(w=>{L.includes(w)?F.classList.add(w):F.classList.remove(w)})}else F.setAttribute(M,A);f&&(s.getComputedStyle($).opacity,document.head.removeChild($))});function W(y){var M;H(t,n,(M=h[y])!=null?M:y)}function D(y){e.onChanged?e.onChanged(y,W):W(y)}Ne(I,D,{flush:"post",immediate:!0}),kr(()=>D(I.value));const p=re({get(){return a?C.value:I.value},set(y){C.value=y}});try{return Object.assign(p,{store:C,system:_,state:I})}catch{return p}}function Oa(e={}){const{valueDark:t="dark",valueLight:n="",window:r=Oe}=e,s=Ra({...e,onChanged:(l,c)=>{var a;e.onChanged?(a=e.onChanged)==null||a.call(e,l==="dark",c,l):c(l)},modes:{dark:t,light:n}}),o=re(()=>s.system?s.system.value:bi({window:r}).value?"dark":"light");return re({get(){return s.value==="dark"},set(l){const c=l?"dark":"light";o.value===c?s.value="auto":s.value=c}})}function Zn(e){return typeof Window<"u"&&e instanceof Window?e.document.documentElement:typeof Document<"u"&&e instanceof Document?e.documentElement:e}function Ou(e,t,n={}){const{window:r=Oe}=n;return Wr(e,t,r==null?void 0:r.localStorage,n)}function wi(e){const t=window.getComputedStyle(e);if(t.overflowX==="scroll"||t.overflowY==="scroll"||t.overflowX==="auto"&&e.clientWidth1?!0:(t.preventDefault&&t.preventDefault(),!1)}const er=new WeakMap;function Lu(e,t=!1){const n=se(t);let r=null,s="";Ne(gi(e),l=>{const c=Zn(Fe(l));if(c){const a=c;if(er.get(a)||er.set(a,a.style.overflow),a.style.overflow!=="hidden"&&(s=a.style.overflow),a.style.overflow==="hidden")return n.value=!0;if(n.value)return a.style.overflow="hidden"}},{immediate:!0});const o=()=>{const l=Zn(Fe(e));!l||n.value||(Ks&&(r=Ct(l,"touchmove",c=>{La(c)},{passive:!1})),l.style.overflow="hidden",n.value=!0)},i=()=>{const l=Zn(Fe(e));!l||!n.value||(Ks&&(r==null||r()),l.style.overflow=s,er.delete(l),n.value=!1)};return Kr(i),re({get(){return n.value},set(l){l?o():i()}})}function Iu(e,t,n={}){const{window:r=Oe}=n;return Wr(e,t,r==null?void 0:r.sessionStorage,n)}function Mu(e={}){const{window:t=Oe,behavior:n="auto"}=e;if(!t)return{x:se(0),y:se(0)};const r=se(t.scrollX),s=se(t.scrollY),o=re({get(){return r.value},set(l){scrollTo({left:l,behavior:n})}}),i=re({get(){return s.value},set(l){scrollTo({top:l,behavior:n})}});return Ct(t,"scroll",()=>{r.value=t.scrollX,s.value=t.scrollY},{capture:!1,passive:!0}),{x:o,y:i}}function Pu(e={}){const{window:t=Oe,initialWidth:n=Number.POSITIVE_INFINITY,initialHeight:r=Number.POSITIVE_INFINITY,listenOrientation:s=!0,includeScrollbar:o=!0}=e,i=se(n),l=se(r),c=()=>{t&&(o?(i.value=t.innerWidth,l.value=t.innerHeight):(i.value=t.document.documentElement.clientWidth,l.value=t.document.documentElement.clientHeight))};if(c(),kr(c),Ct("resize",c,{passive:!0}),s){const a=_i("(orientation: portrait)");Ne(a,()=>c())}return{width:i,height:l}}var tr={BASE_URL:"/",MODE:"production",DEV:!1,PROD:!0,SSR:!1},nr={};const Ei=/^(?:[a-z]+:|\/\/)/i,Ia="vitepress-theme-appearance",Ma=/#.*$/,Pa=/[?#].*$/,Na=/(?:(^|\/)index)?\.(?:md|html)$/,he=typeof document<"u",Ci={relativePath:"404.md",filePath:"",title:"404",description:"Not Found",headers:[],frontmatter:{sidebar:!1,layout:"page"},lastUpdated:0,isNotFound:!0};function Fa(e,t,n=!1){if(t===void 0)return!1;if(e=Ws(`/${e}`),n)return new RegExp(t).test(e);if(Ws(t)!==e)return!1;const r=t.match(Ma);return r?(he?location.hash:"")===r[0]:!0}function Ws(e){return decodeURI(e).replace(Pa,"").replace(Na,"$1")}function $a(e){return Ei.test(e)}function Ha(e,t){return Object.keys((e==null?void 0:e.locales)||{}).find(n=>n!=="root"&&!$a(n)&&Fa(t,`/${n}/`,!0))||"root"}function ja(e,t){var r,s,o,i,l,c,a;const n=Ha(e,t);return Object.assign({},e,{localeIndex:n,lang:((r=e.locales[n])==null?void 0:r.lang)??e.lang,dir:((s=e.locales[n])==null?void 0:s.dir)??e.dir,title:((o=e.locales[n])==null?void 0:o.title)??e.title,titleTemplate:((i=e.locales[n])==null?void 0:i.titleTemplate)??e.titleTemplate,description:((l=e.locales[n])==null?void 0:l.description)??e.description,head:Si(e.head,((c=e.locales[n])==null?void 0:c.head)??[]),themeConfig:{...e.themeConfig,...(a=e.locales[n])==null?void 0:a.themeConfig}})}function xi(e,t){const n=t.title||e.title,r=t.titleTemplate??e.titleTemplate;if(typeof r=="string"&&r.includes(":title"))return r.replace(/:title/g,n);const s=Va(e.title,r);return n===s.slice(3)?n:`${n}${s}`}function Va(e,t){return t===!1?"":t===!0||t===void 0?` | ${e}`:e===t?"":` | ${t}`}function Da(e,t){const[n,r]=t;if(n!=="meta")return!1;const s=Object.entries(r)[0];return s==null?!1:e.some(([o,i])=>o===n&&i[s[0]]===s[1])}function Si(e,t){return[...e.filter(n=>!Da(t,n)),...t]}const Ua=/[\u0000-\u001F"#$&*+,:;<=>?[\]^`{|}\u007F]/g,Ba=/^[a-z]:/i;function qs(e){const t=Ba.exec(e),n=t?t[0]:"";return n+e.slice(n.length).replace(Ua,"_").replace(/(^|\/)_+(?=[^/]*$)/,"$1")}const rr=new Set;function Ka(e){if(rr.size===0){const n=typeof process=="object"&&(nr==null?void 0:nr.VITE_EXTRA_EXTENSIONS)||(tr==null?void 0:tr.VITE_EXTRA_EXTENSIONS)||"";("3g2,3gp,aac,ai,apng,au,avif,bin,bmp,cer,class,conf,crl,css,csv,dll,doc,eps,epub,exe,gif,gz,ics,ief,jar,jpe,jpeg,jpg,js,json,jsonld,m4a,man,mid,midi,mjs,mov,mp2,mp3,mp4,mpe,mpeg,mpg,mpp,oga,ogg,ogv,ogx,opus,otf,p10,p7c,p7m,p7s,pdf,png,ps,qt,roff,rtf,rtx,ser,svg,t,tif,tiff,tr,ts,tsv,ttf,txt,vtt,wav,weba,webm,webp,woff,woff2,xhtml,xml,yaml,yml,zip"+(n&&typeof n=="string"?","+n:"")).split(",").forEach(r=>rr.add(r))}const t=e.split(".").pop();return t==null||!rr.has(t.toLowerCase())}function Nu(e){return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}const ka=Symbol(),ut=Fr(da);function Fu(e){const t=re(()=>ja(ut.value,e.data.relativePath)),n=t.value.appearance,r=n==="force-dark"?se(!0):n?Oa({storageKey:Ia,initialValue:()=>typeof n=="string"?n:"auto",...typeof n=="object"?n:{}}):se(!1),s=se(he?location.hash:"");return he&&window.addEventListener("hashchange",()=>{s.value=location.hash}),Ne(()=>e.data,()=>{s.value=he?location.hash:""}),{site:t,theme:re(()=>t.value.themeConfig),page:re(()=>e.data),frontmatter:re(()=>e.data.frontmatter),params:re(()=>e.data.params),lang:re(()=>t.value.lang),dir:re(()=>e.data.frontmatter.dir||t.value.dir),localeIndex:re(()=>t.value.localeIndex||"root"),title:re(()=>xi(t.value,e.data)),description:re(()=>e.data.description||t.value.description),isDark:r,hash:re(()=>s.value)}}function Wa(){const e=wt(ka);if(!e)throw new Error("vitepress data not properly injected in app");return e}function qa(e,t){return`${e}${t}`.replace(/\/+/g,"/")}function Gs(e){return Ei.test(e)||!e.startsWith("/")?e:qa(ut.value.base,e)}function Ga(e){let t=e.replace(/\.html$/,"");if(t=decodeURIComponent(t),t=t.replace(/\/$/,"/index"),he){const n="/";t=qs(t.slice(n.length).replace(/\//g,"_")||"index")+".md";let r=__VP_HASH_MAP__[t.toLowerCase()];if(r||(t=t.endsWith("_index.md")?t.slice(0,-9)+".md":t.slice(0,-3)+"_index.md",r=__VP_HASH_MAP__[t.toLowerCase()]),!r)return null;t=`${n}assets/${t}.${r}.js`}else t=`./${qs(t.slice(1).replace(/\//g,"_"))}.md.js`;return t}let gn=[];function $u(e){gn.push(e),$n(()=>{gn=gn.filter(t=>t!==e)})}function Xa(){let e=ut.value.scrollOffset,t=0,n=24;if(typeof e=="object"&&"padding"in e&&(n=e.padding,e=e.selector),typeof e=="number")t=e;else if(typeof e=="string")t=Xs(e,n);else if(Array.isArray(e))for(const r of e){const s=Xs(r,n);if(s){t=s;break}}return t}function Xs(e,t){const n=document.querySelector(e);if(!n)return 0;const r=n.getBoundingClientRect().bottom;return r<0?0:r+t}const Ya=Symbol(),Ti="http://a.com",za=()=>({path:"/",component:null,data:Ci});function Hu(e,t){const n=On(za()),r={route:n,go:s};async function s(l=he?location.href:"/"){var c,a;l=sr(l),await((c=r.onBeforeRouteChange)==null?void 0:c.call(r,l))!==!1&&(he&&l!==sr(location.href)&&(history.replaceState({scrollPosition:window.scrollY},""),history.pushState({},"",l)),await i(l),await((a=r.onAfterRouteChanged)==null?void 0:a.call(r,l)))}let o=null;async function i(l,c=0,a=!1){var m;if(await((m=r.onBeforePageLoad)==null?void 0:m.call(r,l))===!1)return;const f=new URL(l,Ti),h=o=f.pathname;try{let _=await e(h);if(!_)throw new Error(`Page not found: ${h}`);if(o===h){o=null;const{default:C,__pageData:I}=_;if(!C)throw new Error(`Invalid route component: ${C}`);n.path=he?h:Gs(h),n.component=dn(C),n.data=dn(I),he&&In(()=>{let H=ut.value.base+I.relativePath.replace(/(?:(^|\/)index)?\.md$/,"$1");if(!ut.value.cleanUrls&&!H.endsWith("/")&&(H+=".html"),H!==f.pathname&&(f.pathname=H,l=H+f.search+f.hash,history.replaceState({},"",l)),f.hash&&!c){let W=null;try{W=document.getElementById(decodeURIComponent(f.hash).slice(1))}catch(D){console.warn(D)}if(W){Ys(W,f.hash);return}}window.scrollTo(0,c)})}}catch(_){if(!/fetch|Page not found/.test(_.message)&&!/^\/404(\.html|\/)?$/.test(l)&&console.error(_),!a)try{const C=await fetch(ut.value.base+"hashmap.json");window.__VP_HASH_MAP__=await C.json(),await i(l,c,!0);return}catch{}if(o===h){o=null,n.path=he?h:Gs(h),n.component=t?dn(t):null;const C=he?h.replace(/(^|\/)$/,"$1index").replace(/(\.html)?$/,".md").replace(/^\//,""):"404.md";n.data={...Ci,relativePath:C}}}}return he&&(history.state===null&&history.replaceState({},""),window.addEventListener("click",l=>{if(l.target.closest("button"))return;const a=l.target.closest("a");if(a&&!a.closest(".vp-raw")&&(a instanceof SVGElement||!a.download)){const{target:f}=a,{href:h,origin:m,pathname:_,hash:C,search:I}=new URL(a.href instanceof SVGAnimatedString?a.href.animVal:a.href,a.baseURI),H=new URL(location.href);!l.ctrlKey&&!l.shiftKey&&!l.altKey&&!l.metaKey&&!f&&m===H.origin&&Ka(_)&&(l.preventDefault(),_===H.pathname&&I===H.search?(C!==H.hash&&(history.pushState({},"",h),window.dispatchEvent(new HashChangeEvent("hashchange",{oldURL:H.href,newURL:h}))),C?Ys(a,C,a.classList.contains("header-anchor")):window.scrollTo(0,0)):s(h))}},{capture:!0}),window.addEventListener("popstate",async l=>{var c;l.state!==null&&(await i(sr(location.href),l.state&&l.state.scrollPosition||0),(c=r.onAfterRouteChanged)==null||c.call(r,location.href))}),window.addEventListener("hashchange",l=>{l.preventDefault()})),r}function Ja(){const e=wt(Ya);if(!e)throw new Error("useRouter() is called without provider.");return e}function Ai(){return Ja().route}function Ys(e,t,n=!1){let r=null;try{r=e.classList.contains("header-anchor")?e:document.getElementById(decodeURIComponent(t).slice(1))}catch(s){console.warn(s)}if(r){let s=function(){!n||Math.abs(i-window.scrollY)>window.innerHeight?window.scrollTo(0,i):window.scrollTo({left:0,top:i,behavior:"smooth"})};const o=parseInt(window.getComputedStyle(r).paddingTop,10),i=window.scrollY+r.getBoundingClientRect().top-Xa()+o;requestAnimationFrame(s)}}function sr(e){const t=new URL(e,Ti);return t.pathname=t.pathname.replace(/(^|\/)index(\.html)?$/,"$1"),ut.value.cleanUrls?t.pathname=t.pathname.replace(/\.html$/,""):!t.pathname.endsWith("/")&&!t.pathname.endsWith(".html")&&(t.pathname+=".html"),t.pathname+t.search+t.hash}const or=()=>gn.forEach(e=>e()),ju=Hr({name:"VitePressContent",props:{as:{type:[Object,String],default:"div"}},setup(e){const t=Ai(),{site:n}=Wa();return()=>br(e.as,n.value.contentProps??{style:{position:"relative"}},[t.component?br(t.component,{onVnodeMounted:or,onVnodeUpdated:or,onVnodeUnmounted:or}):"404 Page Not Found"])}}),Vu=Hr({setup(e,{slots:t}){const n=se(!1);return xt(()=>{n.value=!0}),()=>n.value&&t.default?t.default():null}});function Du(){he&&window.addEventListener("click",e=>{var n;const t=e.target;if(t.matches(".vp-code-group input")){const r=(n=t.parentElement)==null?void 0:n.parentElement;if(!r)return;const s=Array.from(r.querySelectorAll("input")).indexOf(t);if(s<0)return;const o=r.querySelector(".blocks");if(!o)return;const i=Array.from(o.children).find(a=>a.classList.contains("active"));if(!i)return;const l=o.children[s];if(!l||i===l)return;i.classList.remove("active"),l.classList.add("active");const c=r==null?void 0:r.querySelector(`label[for="${t.id}"]`);c==null||c.scrollIntoView({block:"nearest"})}})}function Uu(){if(he){const e=new WeakMap;window.addEventListener("click",t=>{var r;const n=t.target;if(n.matches('div[class*="language-"] > button.copy')){const s=n.parentElement,o=(r=n.nextElementSibling)==null?void 0:r.nextElementSibling;if(!s||!o)return;const i=/language-(shellscript|shell|bash|sh|zsh)/.test(s.className),l=[".vp-copy-ignore",".diff.remove"],c=o.cloneNode(!0);c.querySelectorAll(l.join(",")).forEach(f=>f.remove());let a=c.textContent||"";i&&(a=a.replace(/^ *(\$|>) /gm,"").trim()),Qa(a).then(()=>{n.classList.add("copied"),clearTimeout(e.get(n));const f=setTimeout(()=>{n.classList.remove("copied"),n.blur(),e.delete(n)},2e3);e.set(n,f)})}})}}async function Qa(e){try{return navigator.clipboard.writeText(e)}catch{const t=document.createElement("textarea"),n=document.activeElement;t.value=e,t.setAttribute("readonly",""),t.style.contain="strict",t.style.position="absolute",t.style.left="-9999px",t.style.fontSize="12pt";const r=document.getSelection(),s=r?r.rangeCount>0&&r.getRangeAt(0):null;document.body.appendChild(t),t.select(),t.selectionStart=0,t.selectionEnd=e.length,document.execCommand("copy"),document.body.removeChild(t),s&&(r.removeAllRanges(),r.addRange(s)),n&&n.focus()}}function Bu(e,t){let n=!0,r=[];const s=o=>{if(n){n=!1,o.forEach(l=>{const c=ir(l);for(const a of document.head.children)if(a.isEqualNode(c)){r.push(a);return}});return}const i=o.map(ir);r.forEach((l,c)=>{const a=i.findIndex(f=>f==null?void 0:f.isEqualNode(l??null));a!==-1?delete i[a]:(l==null||l.remove(),delete r[c])}),i.forEach(l=>l&&document.head.appendChild(l)),r=[...r,...i].filter(Boolean)};Ur(()=>{const o=e.data,i=t.value,l=o&&o.description,c=o&&o.frontmatter.head||[],a=xi(i,o);a!==document.title&&(document.title=a);const f=l||i.description;let h=document.querySelector("meta[name=description]");h?h.getAttribute("content")!==f&&h.setAttribute("content",f):ir(["meta",{name:"description",content:f}]),s(Si(i.head,eu(c)))})}function ir([e,t,n]){const r=document.createElement(e);for(const s in t)r.setAttribute(s,t[s]);return n&&(r.innerHTML=n),e==="script"&&!t.async&&(r.async=!1),r}function Za(e){return e[0]==="meta"&&e[1]&&e[1].name==="description"}function eu(e){return e.filter(t=>!Za(t))}const lr=new Set,Ri=()=>document.createElement("link"),tu=e=>{const t=Ri();t.rel="prefetch",t.href=e,document.head.appendChild(t)},nu=e=>{const t=new XMLHttpRequest;t.open("GET",e,t.withCredentials=!0),t.send()};let an;const ru=he&&(an=Ri())&&an.relList&&an.relList.supports&&an.relList.supports("prefetch")?tu:nu;function Ku(){if(!he||!window.IntersectionObserver)return;let e;if((e=navigator.connection)&&(e.saveData||/2g/.test(e.effectiveType)))return;const t=window.requestIdleCallback||setTimeout;let n=null;const r=()=>{n&&n.disconnect(),n=new IntersectionObserver(o=>{o.forEach(i=>{if(i.isIntersecting){const l=i.target;n.unobserve(l);const{pathname:c}=l;if(!lr.has(c)){lr.add(c);const a=Ga(c);a&&ru(a)}}})}),t(()=>{document.querySelectorAll("#app a").forEach(o=>{const{hostname:i,pathname:l}=new URL(o.href instanceof SVGAnimatedString?o.href.animVal:o.href,o.baseURI),c=l.match(/\.\w+$/);c&&c[0]!==".html"||o.target!=="_blank"&&i===location.hostname&&(l!==location.pathname?n.observe(o):lr.add(l))})})};xt(r);const s=Ai();Ne(()=>s.path,r),$n(()=>{n&&n.disconnect()})}export{wu as $,pu as A,Hl as B,Xa as C,iu as D,au as E,_e as F,Fr as G,$u as H,ie as I,lu as J,Ei as K,Ai as L,xc as M,wt as N,Pu as O,Sr as P,Ru as Q,In as R,Mu as S,ci as T,he as U,Ln as V,uu as W,Su as X,Lu as Y,Jl as Z,xu as _,si as a,du as a0,bu as a1,hu as a2,yu as a3,Bu as a4,Ya as a5,Fu as a6,ka as a7,ju as a8,Vu as a9,ut as aa,Cu as ab,Hu as ac,Ga as ad,Ku as ae,Uu as af,Du as ag,br as ah,yi as ai,Kr as aj,Au as ak,Iu as al,Ou as am,Tu as an,Ja as ao,Ct as ap,Io as aq,cu as ar,vu as as,de as at,gu as au,dn as av,Eu as aw,Nu as ax,ti as b,mu as c,Hr as d,_u as e,Ka as f,Gs as g,re as h,$a as i,ri as j,wo as k,ou as l,Fa as m,Tr as n,Zo as o,su as p,_i as q,fu as r,se as s,Ki as t,Wa as u,Ne as v,Ol as w,Ur as x,xt as y,$n as z}; +**/const Nc="http://www.w3.org/2000/svg",Fc="http://www.w3.org/1998/Math/MathML",Ve=typeof document<"u"?document:null,Ss=Ve&&Ve.createElement("template"),$c={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{const s=t==="svg"?Ve.createElementNS(Nc,e):t==="mathml"?Ve.createElementNS(Fc,e):n?Ve.createElement(e,{is:n}):Ve.createElement(e);return e==="select"&&r&&r.multiple!=null&&s.setAttribute("multiple",r.multiple),s},createText:e=>Ve.createTextNode(e),createComment:e=>Ve.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Ve.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,r,s,o){const i=n?n.previousSibling:t.lastChild;if(s&&(s===o||s.nextSibling))for(;t.insertBefore(s.cloneNode(!0),n),!(s===o||!(s=s.nextSibling)););else{Ss.innerHTML=r==="svg"?`${e}`:r==="mathml"?`${e}`:e;const l=Ss.content;if(r==="svg"||r==="mathml"){const c=l.firstChild;for(;c.firstChild;)l.appendChild(c.firstChild);l.removeChild(c)}t.insertBefore(l,n)}return[i?i.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},Ke="transition",Tt="animation",Ut=Symbol("_vtc"),ci=(e,{slots:t})=>br(yc,Hc(e),t);ci.displayName="Transition";const ai={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String};ci.props=le({},Xo,ai);const st=(e,t=[])=>{K(e)?e.forEach(n=>n(...t)):e&&e(...t)},Ts=e=>e?K(e)?e.some(t=>t.length>1):e.length>1:!1;function Hc(e){const t={};for(const T in e)T in ai||(t[T]=e[T]);if(e.css===!1)return t;const{name:n="v",type:r,duration:s,enterFromClass:o=`${n}-enter-from`,enterActiveClass:i=`${n}-enter-active`,enterToClass:l=`${n}-enter-to`,appearFromClass:c=o,appearActiveClass:a=i,appearToClass:f=l,leaveFromClass:h=`${n}-leave-from`,leaveActiveClass:m=`${n}-leave-active`,leaveToClass:_=`${n}-leave-to`}=e,C=jc(s),I=C&&C[0],H=C&&C[1],{onBeforeEnter:W,onEnter:D,onEnterCancelled:p,onLeave:y,onLeaveCancelled:M,onBeforeAppear:A=W,onAppear:F=D,onAppearCancelled:$=p}=t,L=(T,G,ne)=>{ot(T,G?f:l),ot(T,G?a:i),ne&&ne()},w=(T,G)=>{T._isLeaving=!1,ot(T,h),ot(T,_),ot(T,m),G&&G()},N=T=>(G,ne)=>{const ce=T?F:D,U=()=>L(G,T,ne);st(ce,[G,U]),As(()=>{ot(G,T?c:o),ke(G,T?f:l),Ts(ce)||Rs(G,r,I,U)})};return le(t,{onBeforeEnter(T){st(W,[T]),ke(T,o),ke(T,i)},onBeforeAppear(T){st(A,[T]),ke(T,c),ke(T,a)},onEnter:N(!1),onAppear:N(!0),onLeave(T,G){T._isLeaving=!0;const ne=()=>w(T,G);ke(T,h),ke(T,m),Uc(),As(()=>{T._isLeaving&&(ot(T,h),ke(T,_),Ts(y)||Rs(T,r,H,ne))}),st(y,[T,ne])},onEnterCancelled(T){L(T,!1),st(p,[T])},onAppearCancelled(T){L(T,!0),st($,[T])},onLeaveCancelled(T){w(T),st(M,[T])}})}function jc(e){if(e==null)return null;if(Z(e))return[Yn(e.enter),Yn(e.leave)];{const t=Yn(e);return[t,t]}}function Yn(e){return $i(e)}function ke(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e[Ut]||(e[Ut]=new Set)).add(t)}function ot(e,t){t.split(/\s+/).forEach(r=>r&&e.classList.remove(r));const n=e[Ut];n&&(n.delete(t),n.size||(e[Ut]=void 0))}function As(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let Vc=0;function Rs(e,t,n,r){const s=e._endId=++Vc,o=()=>{s===e._endId&&r()};if(n)return setTimeout(o,n);const{type:i,timeout:l,propCount:c}=Dc(e,t);if(!i)return r();const a=i+"end";let f=0;const h=()=>{e.removeEventListener(a,m),o()},m=_=>{_.target===e&&++f>=c&&h()};setTimeout(()=>{f(n[C]||"").split(", "),s=r(`${Ke}Delay`),o=r(`${Ke}Duration`),i=Os(s,o),l=r(`${Tt}Delay`),c=r(`${Tt}Duration`),a=Os(l,c);let f=null,h=0,m=0;t===Ke?i>0&&(f=Ke,h=i,m=o.length):t===Tt?a>0&&(f=Tt,h=a,m=c.length):(h=Math.max(i,a),f=h>0?i>a?Ke:Tt:null,m=f?f===Ke?o.length:c.length:0);const _=f===Ke&&/\b(transform|all)(,|$)/.test(r(`${Ke}Property`).toString());return{type:f,timeout:h,propCount:m,hasTransform:_}}function Os(e,t){for(;e.lengthLs(n)+Ls(e[r])))}function Ls(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function Uc(){return document.body.offsetHeight}function Bc(e,t,n){const r=e[Ut];r&&(t=(t?[t,...r]:[...r]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const Is=Symbol("_vod"),Kc=Symbol("_vsh"),kc=Symbol(""),Wc=/(^|;)\s*display\s*:/;function qc(e,t,n){const r=e.style,s=oe(n);let o=!1;if(n&&!s){if(t)if(oe(t))for(const i of t.split(";")){const l=i.slice(0,i.indexOf(":")).trim();n[l]==null&&pn(r,l,"")}else for(const i in t)n[i]==null&&pn(r,i,"");for(const i in n)i==="display"&&(o=!0),pn(r,i,n[i])}else if(s){if(t!==n){const i=r[kc];i&&(n+=";"+i),r.cssText=n,o=Wc.test(n)}}else t&&e.removeAttribute("style");Is in e&&(e[Is]=o?r.display:"",e[Kc]&&(r.display="none"))}const Ms=/\s*!important$/;function pn(e,t,n){if(K(n))n.forEach(r=>pn(e,t,r));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const r=Gc(e,t);Ms.test(n)?e.setProperty(ft(r),n.replace(Ms,""),"important"):e[r]=n}}const Ps=["Webkit","Moz","ms"],zn={};function Gc(e,t){const n=zn[t];if(n)return n;let r=$e(t);if(r!=="filter"&&r in e)return zn[t]=r;r=An(r);for(let s=0;sJn||(Qc.then(()=>Jn=0),Jn=Date.now());function ea(e,t){const n=r=>{if(!r._vts)r._vts=Date.now();else if(r._vts<=n.attached)return;Se(ta(r,n.value),t,5,[r])};return n.value=e,n.attached=Zc(),n}function ta(e,t){if(K(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(r=>s=>!s._stopped&&r&&r(s))}else return t}const js=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,na=(e,t,n,r,s,o,i,l,c)=>{const a=s==="svg";t==="class"?Bc(e,r,a):t==="style"?qc(e,n,r):Kt(t)?Er(t)||zc(e,t,n,r,i):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):ra(e,t,r,a))?(Xc(e,t,r,o,i,l,c),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&Fs(e,t,r,a,i,t!=="value")):(t==="true-value"?e._trueValue=r:t==="false-value"&&(e._falseValue=r),Fs(e,t,r,a))};function ra(e,t,n,r){if(r)return!!(t==="innerHTML"||t==="textContent"||t in e&&js(t)&&k(n));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const s=e.tagName;if(s==="IMG"||s==="VIDEO"||s==="CANVAS"||s==="SOURCE")return!1}return js(t)&&oe(n)?!1:t in e}const Vs=e=>{const t=e.props["onUpdate:modelValue"]||!1;return K(t)?n=>fn(t,n):t};function sa(e){e.target.composing=!0}function Ds(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const Qn=Symbol("_assign"),vu={created(e,{modifiers:{lazy:t,trim:n,number:r}},s){e[Qn]=Vs(s);const o=r||s.props&&s.props.type==="number";gt(e,t?"change":"input",i=>{if(i.target.composing)return;let l=e.value;n&&(l=l.trim()),o&&(l=cr(l)),e[Qn](l)}),n&>(e,"change",()=>{e.value=e.value.trim()}),t||(gt(e,"compositionstart",sa),gt(e,"compositionend",Ds),gt(e,"change",Ds))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:r,trim:s,number:o}},i){if(e[Qn]=Vs(i),e.composing)return;const l=(o||e.type==="number")&&!/^0\d/.test(e.value)?cr(e.value):e.value,c=t??"";l!==c&&(document.activeElement===e&&e.type!=="range"&&(r&&t===n||s&&e.value.trim()===c)||(e.value=c))}},oa=["ctrl","shift","alt","meta"],ia={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>oa.some(n=>e[`${n}Key`]&&!t.includes(n))},bu=(e,t)=>{const n=e._withMods||(e._withMods={}),r=t.join(".");return n[r]||(n[r]=(s,...o)=>{for(let i=0;i{const n=e._withKeys||(e._withKeys={}),r=t.join(".");return n[r]||(n[r]=s=>{if(!("key"in s))return;const o=ft(s.key);if(t.some(i=>i===o||la[i]===o))return e(s)})},ui=le({patchProp:na},$c);let Ft,Us=!1;function ca(){return Ft||(Ft=ic(ui))}function aa(){return Ft=Us?Ft:lc(ui),Us=!0,Ft}const Eu=(...e)=>{const t=ca().createApp(...e),{mount:n}=t;return t.mount=r=>{const s=di(r);if(!s)return;const o=t._component;!k(o)&&!o.render&&!o.template&&(o.template=s.innerHTML),s.innerHTML="";const i=n(s,!1,fi(s));return s instanceof Element&&(s.removeAttribute("v-cloak"),s.setAttribute("data-v-app","")),i},t},Cu=(...e)=>{const t=aa().createApp(...e),{mount:n}=t;return t.mount=r=>{const s=di(r);if(s)return n(s,!0,fi(s))},t};function fi(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function di(e){return oe(e)?document.querySelector(e):e}const xu=(e,t)=>{const n=e.__vccOpts||e;for(const[r,s]of t)n[r]=s;return n},ua="modulepreload",fa=function(e){return"/query-response-spring-amqp/"+e},Bs={},Su=function(t,n,r){let s=Promise.resolve();if(n&&n.length>0){document.getElementsByTagName("link");const o=document.querySelector("meta[property=csp-nonce]"),i=(o==null?void 0:o.nonce)||(o==null?void 0:o.getAttribute("nonce"));s=Promise.all(n.map(l=>{if(l=fa(l),l in Bs)return;Bs[l]=!0;const c=l.endsWith(".css"),a=c?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${l}"]${a}`))return;const f=document.createElement("link");if(f.rel=c?"stylesheet":ua,c||(f.as="script",f.crossOrigin=""),f.href=l,i&&f.setAttribute("nonce",i),document.head.appendChild(f),c)return new Promise((h,m)=>{f.addEventListener("load",h),f.addEventListener("error",()=>m(new Error(`Unable to preload CSS for ${l}`)))})}))}return s.then(()=>t()).catch(o=>{const i=new Event("vite:preloadError",{cancelable:!0});if(i.payload=o,window.dispatchEvent(i),!i.defaultPrevented)throw o})},da=window.__VP_SITE_DATA__;function Kr(e){return oo()?(qi(e),!0):!1}function Fe(e){return typeof e=="function"?e():wo(e)}const hi=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const ha=Object.prototype.toString,pa=e=>ha.call(e)==="[object Object]",Bt=()=>{},Ks=ga();function ga(){var e,t;return hi&&((e=window==null?void 0:window.navigator)==null?void 0:e.userAgent)&&(/iP(?:ad|hone|od)/.test(window.navigator.userAgent)||((t=window==null?void 0:window.navigator)==null?void 0:t.maxTouchPoints)>2&&/iPad|Macintosh/.test(window==null?void 0:window.navigator.userAgent))}function ma(e,t){function n(...r){return new Promise((s,o)=>{Promise.resolve(e(()=>t.apply(this,r),{fn:t,thisArg:this,args:r})).then(s).catch(o)})}return n}const pi=e=>e();function ya(e,t={}){let n,r,s=Bt;const o=l=>{clearTimeout(l),s(),s=Bt};return l=>{const c=Fe(e),a=Fe(t.maxWait);return n&&o(n),c<=0||a!==void 0&&a<=0?(r&&(o(r),r=null),Promise.resolve(l())):new Promise((f,h)=>{s=t.rejectOnCancel?h:f,a&&!r&&(r=setTimeout(()=>{n&&o(n),r=null,f(l())},a)),n=setTimeout(()=>{r&&o(r),r=null,f(l())},c)})}}function _a(e=pi){const t=se(!0);function n(){t.value=!1}function r(){t.value=!0}const s=(...o)=>{t.value&&e(...o)};return{isActive:Ln(t),pause:n,resume:r,eventFilter:s}}function va(e){return jn()}function gi(...e){if(e.length!==1)return wl(...e);const t=e[0];return typeof t=="function"?Ln(_l(()=>({get:t,set:Bt}))):se(t)}function mi(e,t,n={}){const{eventFilter:r=pi,...s}=n;return Ne(e,ma(r,t),s)}function ba(e,t,n={}){const{eventFilter:r,...s}=n,{eventFilter:o,pause:i,resume:l,isActive:c}=_a(r);return{stop:mi(e,t,{...s,eventFilter:o}),pause:i,resume:l,isActive:c}}function kr(e,t=!0,n){va()?xt(e,n):t?e():In(e)}function Tu(e,t,n={}){const{debounce:r=0,maxWait:s=void 0,...o}=n;return mi(e,t,{...o,eventFilter:ya(r,{maxWait:s})})}function Au(e,t,n){let r;de(n)?r={evaluating:n}:r={};const{lazy:s=!1,evaluating:o=void 0,shallow:i=!0,onError:l=Bt}=r,c=se(!s),a=i?Fr(t):se(t);let f=0;return Ur(async h=>{if(!c.value)return;f++;const m=f;let _=!1;o&&Promise.resolve().then(()=>{o.value=!0});try{const C=await e(I=>{h(()=>{o&&(o.value=!1),_||I()})});m===f&&(a.value=C)}catch(C){l(C)}finally{o&&m===f&&(o.value=!1),_=!0}}),s?re(()=>(c.value=!0,a.value)):a}function yi(e){var t;const n=Fe(e);return(t=n==null?void 0:n.$el)!=null?t:n}const Oe=hi?window:void 0;function Ct(...e){let t,n,r,s;if(typeof e[0]=="string"||Array.isArray(e[0])?([n,r,s]=e,t=Oe):[t,n,r,s]=e,!t)return Bt;Array.isArray(n)||(n=[n]),Array.isArray(r)||(r=[r]);const o=[],i=()=>{o.forEach(f=>f()),o.length=0},l=(f,h,m,_)=>(f.addEventListener(h,m,_),()=>f.removeEventListener(h,m,_)),c=Ne(()=>[yi(t),Fe(s)],([f,h])=>{if(i(),!f)return;const m=pa(h)?{...h}:h;o.push(...n.flatMap(_=>r.map(C=>l(f,_,C,m))))},{immediate:!0,flush:"post"}),a=()=>{c(),i()};return Kr(a),a}function wa(e){return typeof e=="function"?e:typeof e=="string"?t=>t.key===e:Array.isArray(e)?t=>e.includes(t.key):()=>!0}function Ru(...e){let t,n,r={};e.length===3?(t=e[0],n=e[1],r=e[2]):e.length===2?typeof e[1]=="object"?(t=!0,n=e[0],r=e[1]):(t=e[0],n=e[1]):(t=!0,n=e[0]);const{target:s=Oe,eventName:o="keydown",passive:i=!1,dedupe:l=!1}=r,c=wa(t);return Ct(s,o,f=>{f.repeat&&Fe(l)||c(f)&&n(f)},i)}function Ea(){const e=se(!1),t=jn();return t&&xt(()=>{e.value=!0},t),e}function Ca(e){const t=Ea();return re(()=>(t.value,!!e()))}function _i(e,t={}){const{window:n=Oe}=t,r=Ca(()=>n&&"matchMedia"in n&&typeof n.matchMedia=="function");let s;const o=se(!1),i=a=>{o.value=a.matches},l=()=>{s&&("removeEventListener"in s?s.removeEventListener("change",i):s.removeListener(i))},c=Ur(()=>{r.value&&(l(),s=n.matchMedia(Fe(e)),"addEventListener"in s?s.addEventListener("change",i):s.addListener(i),o.value=s.matches)});return Kr(()=>{c(),l(),s=void 0}),o}const ln=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},cn="__vueuse_ssr_handlers__",xa=Sa();function Sa(){return cn in ln||(ln[cn]=ln[cn]||{}),ln[cn]}function vi(e,t){return xa[e]||t}function Ta(e){return e==null?"any":e instanceof Set?"set":e instanceof Map?"map":e instanceof Date?"date":typeof e=="boolean"?"boolean":typeof e=="string"?"string":typeof e=="object"?"object":Number.isNaN(e)?"any":"number"}const Aa={boolean:{read:e=>e==="true",write:e=>String(e)},object:{read:e=>JSON.parse(e),write:e=>JSON.stringify(e)},number:{read:e=>Number.parseFloat(e),write:e=>String(e)},any:{read:e=>e,write:e=>String(e)},string:{read:e=>e,write:e=>String(e)},map:{read:e=>new Map(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e.entries()))},set:{read:e=>new Set(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e))},date:{read:e=>new Date(e),write:e=>e.toISOString()}},ks="vueuse-storage";function Wr(e,t,n,r={}){var s;const{flush:o="pre",deep:i=!0,listenToStorageChanges:l=!0,writeDefaults:c=!0,mergeDefaults:a=!1,shallow:f,window:h=Oe,eventFilter:m,onError:_=w=>{console.error(w)},initOnMounted:C}=r,I=(f?Fr:se)(typeof t=="function"?t():t);if(!n)try{n=vi("getDefaultStorage",()=>{var w;return(w=Oe)==null?void 0:w.localStorage})()}catch(w){_(w)}if(!n)return I;const H=Fe(t),W=Ta(H),D=(s=r.serializer)!=null?s:Aa[W],{pause:p,resume:y}=ba(I,()=>A(I.value),{flush:o,deep:i,eventFilter:m});h&&l&&kr(()=>{Ct(h,"storage",$),Ct(h,ks,L),C&&$()}),C||$();function M(w,N){h&&h.dispatchEvent(new CustomEvent(ks,{detail:{key:e,oldValue:w,newValue:N,storageArea:n}}))}function A(w){try{const N=n.getItem(e);if(w==null)M(N,null),n.removeItem(e);else{const T=D.write(w);N!==T&&(n.setItem(e,T),M(N,T))}}catch(N){_(N)}}function F(w){const N=w?w.newValue:n.getItem(e);if(N==null)return c&&H!=null&&n.setItem(e,D.write(H)),H;if(!w&&a){const T=D.read(N);return typeof a=="function"?a(T,H):W==="object"&&!Array.isArray(T)?{...H,...T}:T}else return typeof N!="string"?N:D.read(N)}function $(w){if(!(w&&w.storageArea!==n)){if(w&&w.key==null){I.value=H;return}if(!(w&&w.key!==e)){p();try{(w==null?void 0:w.newValue)!==D.write(I.value)&&(I.value=F(w))}catch(N){_(N)}finally{w?In(y):y()}}}}function L(w){$(w.detail)}return I}function bi(e){return _i("(prefers-color-scheme: dark)",e)}function Ra(e={}){const{selector:t="html",attribute:n="class",initialValue:r="auto",window:s=Oe,storage:o,storageKey:i="vueuse-color-scheme",listenToStorageChanges:l=!0,storageRef:c,emitAuto:a,disableTransition:f=!0}=e,h={auto:"",light:"light",dark:"dark",...e.modes||{}},m=bi({window:s}),_=re(()=>m.value?"dark":"light"),C=c||(i==null?gi(r):Wr(i,r,o,{window:s,listenToStorageChanges:l})),I=re(()=>C.value==="auto"?_.value:C.value),H=vi("updateHTMLAttrs",(y,M,A)=>{const F=typeof y=="string"?s==null?void 0:s.document.querySelector(y):yi(y);if(!F)return;let $;if(f&&($=s.document.createElement("style"),$.appendChild(document.createTextNode("*,*::before,*::after{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}")),s.document.head.appendChild($)),M==="class"){const L=A.split(/\s/g);Object.values(h).flatMap(w=>(w||"").split(/\s/g)).filter(Boolean).forEach(w=>{L.includes(w)?F.classList.add(w):F.classList.remove(w)})}else F.setAttribute(M,A);f&&(s.getComputedStyle($).opacity,document.head.removeChild($))});function W(y){var M;H(t,n,(M=h[y])!=null?M:y)}function D(y){e.onChanged?e.onChanged(y,W):W(y)}Ne(I,D,{flush:"post",immediate:!0}),kr(()=>D(I.value));const p=re({get(){return a?C.value:I.value},set(y){C.value=y}});try{return Object.assign(p,{store:C,system:_,state:I})}catch{return p}}function Oa(e={}){const{valueDark:t="dark",valueLight:n="",window:r=Oe}=e,s=Ra({...e,onChanged:(l,c)=>{var a;e.onChanged?(a=e.onChanged)==null||a.call(e,l==="dark",c,l):c(l)},modes:{dark:t,light:n}}),o=re(()=>s.system?s.system.value:bi({window:r}).value?"dark":"light");return re({get(){return s.value==="dark"},set(l){const c=l?"dark":"light";o.value===c?s.value="auto":s.value=c}})}function Zn(e){return typeof Window<"u"&&e instanceof Window?e.document.documentElement:typeof Document<"u"&&e instanceof Document?e.documentElement:e}function Ou(e,t,n={}){const{window:r=Oe}=n;return Wr(e,t,r==null?void 0:r.localStorage,n)}function wi(e){const t=window.getComputedStyle(e);if(t.overflowX==="scroll"||t.overflowY==="scroll"||t.overflowX==="auto"&&e.clientWidth1?!0:(t.preventDefault&&t.preventDefault(),!1)}const er=new WeakMap;function Lu(e,t=!1){const n=se(t);let r=null,s="";Ne(gi(e),l=>{const c=Zn(Fe(l));if(c){const a=c;if(er.get(a)||er.set(a,a.style.overflow),a.style.overflow!=="hidden"&&(s=a.style.overflow),a.style.overflow==="hidden")return n.value=!0;if(n.value)return a.style.overflow="hidden"}},{immediate:!0});const o=()=>{const l=Zn(Fe(e));!l||n.value||(Ks&&(r=Ct(l,"touchmove",c=>{La(c)},{passive:!1})),l.style.overflow="hidden",n.value=!0)},i=()=>{const l=Zn(Fe(e));!l||!n.value||(Ks&&(r==null||r()),l.style.overflow=s,er.delete(l),n.value=!1)};return Kr(i),re({get(){return n.value},set(l){l?o():i()}})}function Iu(e,t,n={}){const{window:r=Oe}=n;return Wr(e,t,r==null?void 0:r.sessionStorage,n)}function Mu(e={}){const{window:t=Oe,behavior:n="auto"}=e;if(!t)return{x:se(0),y:se(0)};const r=se(t.scrollX),s=se(t.scrollY),o=re({get(){return r.value},set(l){scrollTo({left:l,behavior:n})}}),i=re({get(){return s.value},set(l){scrollTo({top:l,behavior:n})}});return Ct(t,"scroll",()=>{r.value=t.scrollX,s.value=t.scrollY},{capture:!1,passive:!0}),{x:o,y:i}}function Pu(e={}){const{window:t=Oe,initialWidth:n=Number.POSITIVE_INFINITY,initialHeight:r=Number.POSITIVE_INFINITY,listenOrientation:s=!0,includeScrollbar:o=!0}=e,i=se(n),l=se(r),c=()=>{t&&(o?(i.value=t.innerWidth,l.value=t.innerHeight):(i.value=t.document.documentElement.clientWidth,l.value=t.document.documentElement.clientHeight))};if(c(),kr(c),Ct("resize",c,{passive:!0}),s){const a=_i("(orientation: portrait)");Ne(a,()=>c())}return{width:i,height:l}}var tr={BASE_URL:"/query-response-spring-amqp/",MODE:"production",DEV:!1,PROD:!0,SSR:!1},nr={};const Ei=/^(?:[a-z]+:|\/\/)/i,Ia="vitepress-theme-appearance",Ma=/#.*$/,Pa=/[?#].*$/,Na=/(?:(^|\/)index)?\.(?:md|html)$/,he=typeof document<"u",Ci={relativePath:"404.md",filePath:"",title:"404",description:"Not Found",headers:[],frontmatter:{sidebar:!1,layout:"page"},lastUpdated:0,isNotFound:!0};function Fa(e,t,n=!1){if(t===void 0)return!1;if(e=Ws(`/${e}`),n)return new RegExp(t).test(e);if(Ws(t)!==e)return!1;const r=t.match(Ma);return r?(he?location.hash:"")===r[0]:!0}function Ws(e){return decodeURI(e).replace(Pa,"").replace(Na,"$1")}function $a(e){return Ei.test(e)}function Ha(e,t){return Object.keys((e==null?void 0:e.locales)||{}).find(n=>n!=="root"&&!$a(n)&&Fa(t,`/${n}/`,!0))||"root"}function ja(e,t){var r,s,o,i,l,c,a;const n=Ha(e,t);return Object.assign({},e,{localeIndex:n,lang:((r=e.locales[n])==null?void 0:r.lang)??e.lang,dir:((s=e.locales[n])==null?void 0:s.dir)??e.dir,title:((o=e.locales[n])==null?void 0:o.title)??e.title,titleTemplate:((i=e.locales[n])==null?void 0:i.titleTemplate)??e.titleTemplate,description:((l=e.locales[n])==null?void 0:l.description)??e.description,head:Si(e.head,((c=e.locales[n])==null?void 0:c.head)??[]),themeConfig:{...e.themeConfig,...(a=e.locales[n])==null?void 0:a.themeConfig}})}function xi(e,t){const n=t.title||e.title,r=t.titleTemplate??e.titleTemplate;if(typeof r=="string"&&r.includes(":title"))return r.replace(/:title/g,n);const s=Va(e.title,r);return n===s.slice(3)?n:`${n}${s}`}function Va(e,t){return t===!1?"":t===!0||t===void 0?` | ${e}`:e===t?"":` | ${t}`}function Da(e,t){const[n,r]=t;if(n!=="meta")return!1;const s=Object.entries(r)[0];return s==null?!1:e.some(([o,i])=>o===n&&i[s[0]]===s[1])}function Si(e,t){return[...e.filter(n=>!Da(t,n)),...t]}const Ua=/[\u0000-\u001F"#$&*+,:;<=>?[\]^`{|}\u007F]/g,Ba=/^[a-z]:/i;function qs(e){const t=Ba.exec(e),n=t?t[0]:"";return n+e.slice(n.length).replace(Ua,"_").replace(/(^|\/)_+(?=[^/]*$)/,"$1")}const rr=new Set;function Ka(e){if(rr.size===0){const n=typeof process=="object"&&(nr==null?void 0:nr.VITE_EXTRA_EXTENSIONS)||(tr==null?void 0:tr.VITE_EXTRA_EXTENSIONS)||"";("3g2,3gp,aac,ai,apng,au,avif,bin,bmp,cer,class,conf,crl,css,csv,dll,doc,eps,epub,exe,gif,gz,ics,ief,jar,jpe,jpeg,jpg,js,json,jsonld,m4a,man,mid,midi,mjs,mov,mp2,mp3,mp4,mpe,mpeg,mpg,mpp,oga,ogg,ogv,ogx,opus,otf,p10,p7c,p7m,p7s,pdf,png,ps,qt,roff,rtf,rtx,ser,svg,t,tif,tiff,tr,ts,tsv,ttf,txt,vtt,wav,weba,webm,webp,woff,woff2,xhtml,xml,yaml,yml,zip"+(n&&typeof n=="string"?","+n:"")).split(",").forEach(r=>rr.add(r))}const t=e.split(".").pop();return t==null||!rr.has(t.toLowerCase())}function Nu(e){return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}const ka=Symbol(),ut=Fr(da);function Fu(e){const t=re(()=>ja(ut.value,e.data.relativePath)),n=t.value.appearance,r=n==="force-dark"?se(!0):n?Oa({storageKey:Ia,initialValue:()=>typeof n=="string"?n:"auto",...typeof n=="object"?n:{}}):se(!1),s=se(he?location.hash:"");return he&&window.addEventListener("hashchange",()=>{s.value=location.hash}),Ne(()=>e.data,()=>{s.value=he?location.hash:""}),{site:t,theme:re(()=>t.value.themeConfig),page:re(()=>e.data),frontmatter:re(()=>e.data.frontmatter),params:re(()=>e.data.params),lang:re(()=>t.value.lang),dir:re(()=>e.data.frontmatter.dir||t.value.dir),localeIndex:re(()=>t.value.localeIndex||"root"),title:re(()=>xi(t.value,e.data)),description:re(()=>e.data.description||t.value.description),isDark:r,hash:re(()=>s.value)}}function Wa(){const e=wt(ka);if(!e)throw new Error("vitepress data not properly injected in app");return e}function qa(e,t){return`${e}${t}`.replace(/\/+/g,"/")}function Gs(e){return Ei.test(e)||!e.startsWith("/")?e:qa(ut.value.base,e)}function Ga(e){let t=e.replace(/\.html$/,"");if(t=decodeURIComponent(t),t=t.replace(/\/$/,"/index"),he){const n="/query-response-spring-amqp/";t=qs(t.slice(n.length).replace(/\//g,"_")||"index")+".md";let r=__VP_HASH_MAP__[t.toLowerCase()];if(r||(t=t.endsWith("_index.md")?t.slice(0,-9)+".md":t.slice(0,-3)+"_index.md",r=__VP_HASH_MAP__[t.toLowerCase()]),!r)return null;t=`${n}assets/${t}.${r}.js`}else t=`./${qs(t.slice(1).replace(/\//g,"_"))}.md.js`;return t}let gn=[];function $u(e){gn.push(e),$n(()=>{gn=gn.filter(t=>t!==e)})}function Xa(){let e=ut.value.scrollOffset,t=0,n=24;if(typeof e=="object"&&"padding"in e&&(n=e.padding,e=e.selector),typeof e=="number")t=e;else if(typeof e=="string")t=Xs(e,n);else if(Array.isArray(e))for(const r of e){const s=Xs(r,n);if(s){t=s;break}}return t}function Xs(e,t){const n=document.querySelector(e);if(!n)return 0;const r=n.getBoundingClientRect().bottom;return r<0?0:r+t}const Ya=Symbol(),Ti="http://a.com",za=()=>({path:"/",component:null,data:Ci});function Hu(e,t){const n=On(za()),r={route:n,go:s};async function s(l=he?location.href:"/"){var c,a;l=sr(l),await((c=r.onBeforeRouteChange)==null?void 0:c.call(r,l))!==!1&&(he&&l!==sr(location.href)&&(history.replaceState({scrollPosition:window.scrollY},""),history.pushState({},"",l)),await i(l),await((a=r.onAfterRouteChanged)==null?void 0:a.call(r,l)))}let o=null;async function i(l,c=0,a=!1){var m;if(await((m=r.onBeforePageLoad)==null?void 0:m.call(r,l))===!1)return;const f=new URL(l,Ti),h=o=f.pathname;try{let _=await e(h);if(!_)throw new Error(`Page not found: ${h}`);if(o===h){o=null;const{default:C,__pageData:I}=_;if(!C)throw new Error(`Invalid route component: ${C}`);n.path=he?h:Gs(h),n.component=dn(C),n.data=dn(I),he&&In(()=>{let H=ut.value.base+I.relativePath.replace(/(?:(^|\/)index)?\.md$/,"$1");if(!ut.value.cleanUrls&&!H.endsWith("/")&&(H+=".html"),H!==f.pathname&&(f.pathname=H,l=H+f.search+f.hash,history.replaceState({},"",l)),f.hash&&!c){let W=null;try{W=document.getElementById(decodeURIComponent(f.hash).slice(1))}catch(D){console.warn(D)}if(W){Ys(W,f.hash);return}}window.scrollTo(0,c)})}}catch(_){if(!/fetch|Page not found/.test(_.message)&&!/^\/404(\.html|\/)?$/.test(l)&&console.error(_),!a)try{const C=await fetch(ut.value.base+"hashmap.json");window.__VP_HASH_MAP__=await C.json(),await i(l,c,!0);return}catch{}if(o===h){o=null,n.path=he?h:Gs(h),n.component=t?dn(t):null;const C=he?h.replace(/(^|\/)$/,"$1index").replace(/(\.html)?$/,".md").replace(/^\//,""):"404.md";n.data={...Ci,relativePath:C}}}}return he&&(history.state===null&&history.replaceState({},""),window.addEventListener("click",l=>{if(l.target.closest("button"))return;const a=l.target.closest("a");if(a&&!a.closest(".vp-raw")&&(a instanceof SVGElement||!a.download)){const{target:f}=a,{href:h,origin:m,pathname:_,hash:C,search:I}=new URL(a.href instanceof SVGAnimatedString?a.href.animVal:a.href,a.baseURI),H=new URL(location.href);!l.ctrlKey&&!l.shiftKey&&!l.altKey&&!l.metaKey&&!f&&m===H.origin&&Ka(_)&&(l.preventDefault(),_===H.pathname&&I===H.search?(C!==H.hash&&(history.pushState({},"",h),window.dispatchEvent(new HashChangeEvent("hashchange",{oldURL:H.href,newURL:h}))),C?Ys(a,C,a.classList.contains("header-anchor")):window.scrollTo(0,0)):s(h))}},{capture:!0}),window.addEventListener("popstate",async l=>{var c;l.state!==null&&(await i(sr(location.href),l.state&&l.state.scrollPosition||0),(c=r.onAfterRouteChanged)==null||c.call(r,location.href))}),window.addEventListener("hashchange",l=>{l.preventDefault()})),r}function Ja(){const e=wt(Ya);if(!e)throw new Error("useRouter() is called without provider.");return e}function Ai(){return Ja().route}function Ys(e,t,n=!1){let r=null;try{r=e.classList.contains("header-anchor")?e:document.getElementById(decodeURIComponent(t).slice(1))}catch(s){console.warn(s)}if(r){let s=function(){!n||Math.abs(i-window.scrollY)>window.innerHeight?window.scrollTo(0,i):window.scrollTo({left:0,top:i,behavior:"smooth"})};const o=parseInt(window.getComputedStyle(r).paddingTop,10),i=window.scrollY+r.getBoundingClientRect().top-Xa()+o;requestAnimationFrame(s)}}function sr(e){const t=new URL(e,Ti);return t.pathname=t.pathname.replace(/(^|\/)index(\.html)?$/,"$1"),ut.value.cleanUrls?t.pathname=t.pathname.replace(/\.html$/,""):!t.pathname.endsWith("/")&&!t.pathname.endsWith(".html")&&(t.pathname+=".html"),t.pathname+t.search+t.hash}const or=()=>gn.forEach(e=>e()),ju=Hr({name:"VitePressContent",props:{as:{type:[Object,String],default:"div"}},setup(e){const t=Ai(),{site:n}=Wa();return()=>br(e.as,n.value.contentProps??{style:{position:"relative"}},[t.component?br(t.component,{onVnodeMounted:or,onVnodeUpdated:or,onVnodeUnmounted:or}):"404 Page Not Found"])}}),Vu=Hr({setup(e,{slots:t}){const n=se(!1);return xt(()=>{n.value=!0}),()=>n.value&&t.default?t.default():null}});function Du(){he&&window.addEventListener("click",e=>{var n;const t=e.target;if(t.matches(".vp-code-group input")){const r=(n=t.parentElement)==null?void 0:n.parentElement;if(!r)return;const s=Array.from(r.querySelectorAll("input")).indexOf(t);if(s<0)return;const o=r.querySelector(".blocks");if(!o)return;const i=Array.from(o.children).find(a=>a.classList.contains("active"));if(!i)return;const l=o.children[s];if(!l||i===l)return;i.classList.remove("active"),l.classList.add("active");const c=r==null?void 0:r.querySelector(`label[for="${t.id}"]`);c==null||c.scrollIntoView({block:"nearest"})}})}function Uu(){if(he){const e=new WeakMap;window.addEventListener("click",t=>{var r;const n=t.target;if(n.matches('div[class*="language-"] > button.copy')){const s=n.parentElement,o=(r=n.nextElementSibling)==null?void 0:r.nextElementSibling;if(!s||!o)return;const i=/language-(shellscript|shell|bash|sh|zsh)/.test(s.className),l=[".vp-copy-ignore",".diff.remove"],c=o.cloneNode(!0);c.querySelectorAll(l.join(",")).forEach(f=>f.remove());let a=c.textContent||"";i&&(a=a.replace(/^ *(\$|>) /gm,"").trim()),Qa(a).then(()=>{n.classList.add("copied"),clearTimeout(e.get(n));const f=setTimeout(()=>{n.classList.remove("copied"),n.blur(),e.delete(n)},2e3);e.set(n,f)})}})}}async function Qa(e){try{return navigator.clipboard.writeText(e)}catch{const t=document.createElement("textarea"),n=document.activeElement;t.value=e,t.setAttribute("readonly",""),t.style.contain="strict",t.style.position="absolute",t.style.left="-9999px",t.style.fontSize="12pt";const r=document.getSelection(),s=r?r.rangeCount>0&&r.getRangeAt(0):null;document.body.appendChild(t),t.select(),t.selectionStart=0,t.selectionEnd=e.length,document.execCommand("copy"),document.body.removeChild(t),s&&(r.removeAllRanges(),r.addRange(s)),n&&n.focus()}}function Bu(e,t){let n=!0,r=[];const s=o=>{if(n){n=!1,o.forEach(l=>{const c=ir(l);for(const a of document.head.children)if(a.isEqualNode(c)){r.push(a);return}});return}const i=o.map(ir);r.forEach((l,c)=>{const a=i.findIndex(f=>f==null?void 0:f.isEqualNode(l??null));a!==-1?delete i[a]:(l==null||l.remove(),delete r[c])}),i.forEach(l=>l&&document.head.appendChild(l)),r=[...r,...i].filter(Boolean)};Ur(()=>{const o=e.data,i=t.value,l=o&&o.description,c=o&&o.frontmatter.head||[],a=xi(i,o);a!==document.title&&(document.title=a);const f=l||i.description;let h=document.querySelector("meta[name=description]");h?h.getAttribute("content")!==f&&h.setAttribute("content",f):ir(["meta",{name:"description",content:f}]),s(Si(i.head,eu(c)))})}function ir([e,t,n]){const r=document.createElement(e);for(const s in t)r.setAttribute(s,t[s]);return n&&(r.innerHTML=n),e==="script"&&!t.async&&(r.async=!1),r}function Za(e){return e[0]==="meta"&&e[1]&&e[1].name==="description"}function eu(e){return e.filter(t=>!Za(t))}const lr=new Set,Ri=()=>document.createElement("link"),tu=e=>{const t=Ri();t.rel="prefetch",t.href=e,document.head.appendChild(t)},nu=e=>{const t=new XMLHttpRequest;t.open("GET",e,t.withCredentials=!0),t.send()};let an;const ru=he&&(an=Ri())&&an.relList&&an.relList.supports&&an.relList.supports("prefetch")?tu:nu;function Ku(){if(!he||!window.IntersectionObserver)return;let e;if((e=navigator.connection)&&(e.saveData||/2g/.test(e.effectiveType)))return;const t=window.requestIdleCallback||setTimeout;let n=null;const r=()=>{n&&n.disconnect(),n=new IntersectionObserver(o=>{o.forEach(i=>{if(i.isIntersecting){const l=i.target;n.unobserve(l);const{pathname:c}=l;if(!lr.has(c)){lr.add(c);const a=Ga(c);a&&ru(a)}}})}),t(()=>{document.querySelectorAll("#app a").forEach(o=>{const{hostname:i,pathname:l}=new URL(o.href instanceof SVGAnimatedString?o.href.animVal:o.href,o.baseURI),c=l.match(/\.\w+$/);c&&c[0]!==".html"||o.target!=="_blank"&&i===location.hostname&&(l!==location.pathname?n.observe(o):lr.add(l))})})};xt(r);const s=Ai();Ne(()=>s.path,r),$n(()=>{n&&n.disconnect()})}export{wu as $,pu as A,Hl as B,Xa as C,iu as D,au as E,_e as F,Fr as G,$u as H,ie as I,lu as J,Ei as K,Ai as L,xc as M,wt as N,Pu as O,Sr as P,Ru as Q,In as R,Mu as S,ci as T,he as U,Ln as V,uu as W,Su as X,Lu as Y,Jl as Z,xu as _,si as a,du as a0,bu as a1,hu as a2,yu as a3,Bu as a4,Ya as a5,Fu as a6,ka as a7,ju as a8,Vu as a9,ut as aa,Cu as ab,Hu as ac,Ga as ad,Ku as ae,Uu as af,Du as ag,br as ah,yi as ai,Kr as aj,Au as ak,Iu as al,Ou as am,Tu as an,Ja as ao,Ct as ap,Io as aq,cu as ar,vu as as,de as at,gu as au,dn as av,Eu as aw,Nu as ax,ti as b,mu as c,Hr as d,_u as e,Ka as f,Gs as g,re as h,$a as i,ri as j,wo as k,ou as l,Fa as m,Tr as n,Zo as o,su as p,_i as q,fu as r,se as s,Ki as t,Wa as u,Ne as v,Ol as w,Ur as x,xt as y,$n as z}; diff --git a/assets/chunks/theme.BR1y9Ihb.js b/assets/chunks/theme.DHmPbZv7.js similarity index 99% rename from assets/chunks/theme.BR1y9Ihb.js rename to assets/chunks/theme.DHmPbZv7.js index f89cf65..6eaecf4 100644 --- a/assets/chunks/theme.BR1y9Ihb.js +++ b/assets/chunks/theme.DHmPbZv7.js @@ -1,2 +1,2 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/chunks/VPLocalSearchBox.Ch91UrCK.js","assets/chunks/framework.Bsyxd66g.js"])))=>i.map(i=>d[i]); -import{d as _,o as a,c,r as l,n as N,a as D,t as I,b as $,w as d,e as f,T as ve,_ as b,u as Ue,i as Ge,f as je,g as pe,h as y,j as v,k as r,p as B,l as H,m as z,q as ie,s as w,v as j,x as Z,y as R,z as he,A as ye,B as ze,C as qe,D as q,F as M,E,G as Pe,H as x,I as m,J as W,K as Le,L as ee,M as Y,N as te,O as Ke,P as Ve,Q as le,R as We,S as Se,U as oe,V as Re,W as Je,X as Ye,Y as Te,Z as Ie,$ as Qe,a0 as Xe,a1 as Ze,a2 as xe}from"./framework.Bsyxd66g.js";const et=_({__name:"VPBadge",props:{text:{},type:{default:"tip"}},setup(o){return(e,t)=>(a(),c("span",{class:N(["VPBadge",e.type])},[l(e.$slots,"default",{},()=>[D(I(e.text),1)])],2))}}),tt={key:0,class:"VPBackdrop"},ot=_({__name:"VPBackdrop",props:{show:{type:Boolean}},setup(o){return(e,t)=>(a(),$(ve,{name:"fade"},{default:d(()=>[e.show?(a(),c("div",tt)):f("",!0)]),_:1}))}}),st=b(ot,[["__scopeId","data-v-c79a1216"]]),P=Ue;function nt(o,e){let t,n=!1;return()=>{t&&clearTimeout(t),n?t=setTimeout(o,e):(o(),(n=!0)&&setTimeout(()=>n=!1,e))}}function ce(o){return/^\//.test(o)?o:`/${o}`}function fe(o){const{pathname:e,search:t,hash:n,protocol:s}=new URL(o,"http://a.com");if(Ge(o)||o.startsWith("#")||!s.startsWith("http")||!je(e))return o;const{site:i}=P(),u=e.endsWith("/")||e.endsWith(".html")?o:o.replace(/(?:(^\.+)\/)?.*$/,`$1${e.replace(/(\.md)?$/,i.value.cleanUrls?"":".html")}${t}${n}`);return pe(u)}function J({correspondingLink:o=!1}={}){const{site:e,localeIndex:t,page:n,theme:s,hash:i}=P(),u=y(()=>{var p,g;return{label:(p=e.value.locales[t.value])==null?void 0:p.label,link:((g=e.value.locales[t.value])==null?void 0:g.link)||(t.value==="root"?"/":`/${t.value}/`)}});return{localeLinks:y(()=>Object.entries(e.value.locales).flatMap(([p,g])=>u.value.label===g.label?[]:{text:g.label,link:at(g.link||(p==="root"?"/":`/${p}/`),s.value.i18nRouting!==!1&&o,n.value.relativePath.slice(u.value.link.length-1),!e.value.cleanUrls)+i.value})),currentLang:u}}function at(o,e,t,n){return e?o.replace(/\/$/,"")+ce(t.replace(/(^|\/)index\.md$/,"$1").replace(/\.md$/,n?".html":"")):o}const rt=o=>(B("data-v-d6be1790"),o=o(),H(),o),it={class:"NotFound"},lt={class:"code"},ct={class:"title"},ut=rt(()=>v("div",{class:"divider"},null,-1)),dt={class:"quote"},vt={class:"action"},pt=["href","aria-label"],ht=_({__name:"NotFound",setup(o){const{theme:e}=P(),{currentLang:t}=J();return(n,s)=>{var i,u,h,p,g;return a(),c("div",it,[v("p",lt,I(((i=r(e).notFound)==null?void 0:i.code)??"404"),1),v("h1",ct,I(((u=r(e).notFound)==null?void 0:u.title)??"PAGE NOT FOUND"),1),ut,v("blockquote",dt,I(((h=r(e).notFound)==null?void 0:h.quote)??"But if you don't change your direction, and if you keep looking, you may end up where you are heading."),1),v("div",vt,[v("a",{class:"link",href:r(pe)(r(t).link),"aria-label":((p=r(e).notFound)==null?void 0:p.linkLabel)??"go to home"},I(((g=r(e).notFound)==null?void 0:g.linkText)??"Take me home"),9,pt)])])}}}),ft=b(ht,[["__scopeId","data-v-d6be1790"]]);function we(o,e){if(Array.isArray(o))return Q(o);if(o==null)return[];e=ce(e);const t=Object.keys(o).sort((s,i)=>i.split("/").length-s.split("/").length).find(s=>e.startsWith(ce(s))),n=t?o[t]:[];return Array.isArray(n)?Q(n):Q(n.items,n.base)}function _t(o){const e=[];let t=0;for(const n in o){const s=o[n];if(s.items){t=e.push(s);continue}e[t]||e.push({items:[]}),e[t].items.push(s)}return e}function mt(o){const e=[];function t(n){for(const s of n)s.text&&s.link&&e.push({text:s.text,link:s.link,docFooterText:s.docFooterText}),s.items&&t(s.items)}return t(o),e}function ue(o,e){return Array.isArray(e)?e.some(t=>ue(o,t)):z(o,e.link)?!0:e.items?ue(o,e.items):!1}function Q(o,e){return[...o].map(t=>{const n={...t},s=n.base||e;return s&&n.link&&(n.link=s+n.link),n.items&&(n.items=Q(n.items,s)),n})}function O(){const{frontmatter:o,page:e,theme:t}=P(),n=ie("(min-width: 960px)"),s=w(!1),i=y(()=>{const C=t.value.sidebar,S=e.value.relativePath;return C?we(C,S):[]}),u=w(i.value);j(i,(C,S)=>{JSON.stringify(C)!==JSON.stringify(S)&&(u.value=i.value)});const h=y(()=>o.value.sidebar!==!1&&u.value.length>0&&o.value.layout!=="home"),p=y(()=>g?o.value.aside==null?t.value.aside==="left":o.value.aside==="left":!1),g=y(()=>o.value.layout==="home"?!1:o.value.aside!=null?!!o.value.aside:t.value.aside!==!1),L=y(()=>h.value&&n.value),k=y(()=>h.value?_t(u.value):[]);function V(){s.value=!0}function T(){s.value=!1}function A(){s.value?T():V()}return{isOpen:s,sidebar:u,sidebarGroups:k,hasSidebar:h,hasAside:g,leftAside:p,isSidebarEnabled:L,open:V,close:T,toggle:A}}function kt(o,e){let t;Z(()=>{t=o.value?document.activeElement:void 0}),R(()=>{window.addEventListener("keyup",n)}),he(()=>{window.removeEventListener("keyup",n)});function n(s){s.key==="Escape"&&o.value&&(e(),t==null||t.focus())}}function bt(o){const{page:e,hash:t}=P(),n=w(!1),s=y(()=>o.value.collapsed!=null),i=y(()=>!!o.value.link),u=w(!1),h=()=>{u.value=z(e.value.relativePath,o.value.link)};j([e,o,t],h),R(h);const p=y(()=>u.value?!0:o.value.items?ue(e.value.relativePath,o.value.items):!1),g=y(()=>!!(o.value.items&&o.value.items.length));Z(()=>{n.value=!!(s.value&&o.value.collapsed)}),ye(()=>{(u.value||p.value)&&(n.value=!1)});function L(){s.value&&(n.value=!n.value)}return{collapsed:n,collapsible:s,isLink:i,isActiveLink:u,hasActiveLink:p,hasChildren:g,toggle:L}}function $t(){const{hasSidebar:o}=O(),e=ie("(min-width: 960px)"),t=ie("(min-width: 1280px)");return{isAsideEnabled:y(()=>!t.value&&!e.value?!1:o.value?t.value:e.value)}}const de=[];function Ne(o){return typeof o.outline=="object"&&!Array.isArray(o.outline)&&o.outline.label||o.outlineTitle||"On this page"}function _e(o){const e=[...document.querySelectorAll(".VPDoc :where(h1,h2,h3,h4,h5,h6)")].filter(t=>t.id&&t.hasChildNodes()).map(t=>{const n=Number(t.tagName[1]);return{element:t,title:gt(t),link:"#"+t.id,level:n}});return yt(e,o)}function gt(o){let e="";for(const t of o.childNodes)if(t.nodeType===1){if(t.classList.contains("VPBadge")||t.classList.contains("header-anchor")||t.classList.contains("ignore-header"))continue;e+=t.textContent}else t.nodeType===3&&(e+=t.textContent);return e.trim()}function yt(o,e){if(e===!1)return[];const t=(typeof e=="object"&&!Array.isArray(e)?e.level:e)||2,[n,s]=typeof t=="number"?[t,t]:t==="deep"?[2,6]:t;o=o.filter(u=>u.level>=n&&u.level<=s),de.length=0;for(const{element:u,link:h}of o)de.push({element:u,link:h});const i=[];e:for(let u=0;u=0;p--){const g=o[p];if(g.level{requestAnimationFrame(i),window.addEventListener("scroll",n)}),ze(()=>{u(location.hash)}),he(()=>{window.removeEventListener("scroll",n)});function i(){if(!t.value)return;const h=window.scrollY,p=window.innerHeight,g=document.body.offsetHeight,L=Math.abs(h+p-g)<1,k=de.map(({element:T,link:A})=>({link:A,top:Lt(T)})).filter(({top:T})=>!Number.isNaN(T)).sort((T,A)=>T.top-A.top);if(!k.length){u(null);return}if(h<1){u(null);return}if(L){u(k[k.length-1].link);return}let V=null;for(const{link:T,top:A}of k){if(A>h+qe()+4)break;V=T}u(V)}function u(h){s&&s.classList.remove("active"),h==null?s=null:s=o.value.querySelector(`a[href="${decodeURIComponent(h)}"]`);const p=s;p?(p.classList.add("active"),e.value.style.top=p.offsetTop+39+"px",e.value.style.opacity="1"):(e.value.style.top="33px",e.value.style.opacity="0")}}function Lt(o){let e=0;for(;o!==document.body;){if(o===null)return NaN;e+=o.offsetTop,o=o.offsetParent}return e}const Vt=["href","title"],St=_({__name:"VPDocOutlineItem",props:{headers:{},root:{type:Boolean}},setup(o){function e({target:t}){const n=t.href.split("#")[1],s=document.getElementById(decodeURIComponent(n));s==null||s.focus({preventScroll:!0})}return(t,n)=>{const s=q("VPDocOutlineItem",!0);return a(),c("ul",{class:N(["VPDocOutlineItem",t.root?"root":"nested"])},[(a(!0),c(M,null,E(t.headers,({children:i,link:u,title:h})=>(a(),c("li",null,[v("a",{class:"outline-link",href:u,onClick:e,title:h},I(h),9,Vt),i!=null&&i.length?(a(),$(s,{key:0,headers:i},null,8,["headers"])):f("",!0)]))),256))],2)}}}),Me=b(St,[["__scopeId","data-v-b933a997"]]),Tt={class:"content"},It={"aria-level":"2",class:"outline-title",id:"doc-outline-aria-label",role:"heading"},wt=_({__name:"VPDocAsideOutline",setup(o){const{frontmatter:e,theme:t}=P(),n=Pe([]);x(()=>{n.value=_e(e.value.outline??t.value.outline)});const s=w(),i=w();return Pt(s,i),(u,h)=>(a(),c("nav",{"aria-labelledby":"doc-outline-aria-label",class:N(["VPDocAsideOutline",{"has-outline":n.value.length>0}]),ref_key:"container",ref:s},[v("div",Tt,[v("div",{class:"outline-marker",ref_key:"marker",ref:i},null,512),v("div",It,I(r(Ne)(r(t))),1),m(Me,{headers:n.value,root:!0},null,8,["headers"])])],2))}}),Nt=b(wt,[["__scopeId","data-v-a5bbad30"]]),Mt={class:"VPDocAsideCarbonAds"},At=_({__name:"VPDocAsideCarbonAds",props:{carbonAds:{}},setup(o){const e=()=>null;return(t,n)=>(a(),c("div",Mt,[m(r(e),{"carbon-ads":t.carbonAds},null,8,["carbon-ads"])]))}}),Ct=o=>(B("data-v-3f215769"),o=o(),H(),o),Bt={class:"VPDocAside"},Ht=Ct(()=>v("div",{class:"spacer"},null,-1)),Et=_({__name:"VPDocAside",setup(o){const{theme:e}=P();return(t,n)=>(a(),c("div",Bt,[l(t.$slots,"aside-top",{},void 0,!0),l(t.$slots,"aside-outline-before",{},void 0,!0),m(Nt),l(t.$slots,"aside-outline-after",{},void 0,!0),Ht,l(t.$slots,"aside-ads-before",{},void 0,!0),r(e).carbonAds?(a(),$(At,{key:0,"carbon-ads":r(e).carbonAds},null,8,["carbon-ads"])):f("",!0),l(t.$slots,"aside-ads-after",{},void 0,!0),l(t.$slots,"aside-bottom",{},void 0,!0)]))}}),Ft=b(Et,[["__scopeId","data-v-3f215769"]]);function Dt(){const{theme:o,page:e}=P();return y(()=>{const{text:t="Edit this page",pattern:n=""}=o.value.editLink||{};let s;return typeof n=="function"?s=n(e.value):s=n.replace(/:path/g,e.value.filePath),{url:s,text:t}})}function Ot(){const{page:o,theme:e,frontmatter:t}=P();return y(()=>{var g,L,k,V,T,A,C,S;const n=we(e.value.sidebar,o.value.relativePath),s=mt(n),i=Ut(s,U=>U.link.replace(/[?#].*$/,"")),u=i.findIndex(U=>z(o.value.relativePath,U.link)),h=((g=e.value.docFooter)==null?void 0:g.prev)===!1&&!t.value.prev||t.value.prev===!1,p=((L=e.value.docFooter)==null?void 0:L.next)===!1&&!t.value.next||t.value.next===!1;return{prev:h?void 0:{text:(typeof t.value.prev=="string"?t.value.prev:typeof t.value.prev=="object"?t.value.prev.text:void 0)??((k=i[u-1])==null?void 0:k.docFooterText)??((V=i[u-1])==null?void 0:V.text),link:(typeof t.value.prev=="object"?t.value.prev.link:void 0)??((T=i[u-1])==null?void 0:T.link)},next:p?void 0:{text:(typeof t.value.next=="string"?t.value.next:typeof t.value.next=="object"?t.value.next.text:void 0)??((A=i[u+1])==null?void 0:A.docFooterText)??((C=i[u+1])==null?void 0:C.text),link:(typeof t.value.next=="object"?t.value.next.link:void 0)??((S=i[u+1])==null?void 0:S.link)}}})}function Ut(o,e){const t=new Set;return o.filter(n=>{const s=e(n);return t.has(s)?!1:t.add(s)})}const F=_({__name:"VPLink",props:{tag:{},href:{},noIcon:{type:Boolean},target:{},rel:{}},setup(o){const e=o,t=y(()=>e.tag??(e.href?"a":"span")),n=y(()=>e.href&&Le.test(e.href)||e.target==="_blank");return(s,i)=>(a(),$(W(t.value),{class:N(["VPLink",{link:s.href,"vp-external-link-icon":n.value,"no-icon":s.noIcon}]),href:s.href?r(fe)(s.href):void 0,target:s.target??(n.value?"_blank":void 0),rel:s.rel??(n.value?"noreferrer":void 0)},{default:d(()=>[l(s.$slots,"default")]),_:3},8,["class","href","target","rel"]))}}),Gt={class:"VPLastUpdated"},jt=["datetime"],zt=_({__name:"VPDocFooterLastUpdated",setup(o){const{theme:e,page:t,frontmatter:n,lang:s}=P(),i=y(()=>new Date(n.value.lastUpdated??t.value.lastUpdated)),u=y(()=>i.value.toISOString()),h=w("");return R(()=>{Z(()=>{var p,g,L;h.value=new Intl.DateTimeFormat((g=(p=e.value.lastUpdated)==null?void 0:p.formatOptions)!=null&&g.forceLocale?s.value:void 0,((L=e.value.lastUpdated)==null?void 0:L.formatOptions)??{dateStyle:"short",timeStyle:"short"}).format(i.value)})}),(p,g)=>{var L;return a(),c("p",Gt,[D(I(((L=r(e).lastUpdated)==null?void 0:L.text)||r(e).lastUpdatedText||"Last updated")+": ",1),v("time",{datetime:u.value},I(h.value),9,jt)])}}}),qt=b(zt,[["__scopeId","data-v-7e05ebdb"]]),Ae=o=>(B("data-v-d4a0bba5"),o=o(),H(),o),Kt={key:0,class:"VPDocFooter"},Wt={key:0,class:"edit-info"},Rt={key:0,class:"edit-link"},Jt=Ae(()=>v("span",{class:"vpi-square-pen edit-link-icon"},null,-1)),Yt={key:1,class:"last-updated"},Qt={key:1,class:"prev-next","aria-labelledby":"doc-footer-aria-label"},Xt=Ae(()=>v("span",{class:"visually-hidden",id:"doc-footer-aria-label"},"Pager",-1)),Zt={class:"pager"},xt=["innerHTML"],eo=["innerHTML"],to={class:"pager"},oo=["innerHTML"],so=["innerHTML"],no=_({__name:"VPDocFooter",setup(o){const{theme:e,page:t,frontmatter:n}=P(),s=Dt(),i=Ot(),u=y(()=>e.value.editLink&&n.value.editLink!==!1),h=y(()=>t.value.lastUpdated&&n.value.lastUpdated!==!1),p=y(()=>u.value||h.value||i.value.prev||i.value.next);return(g,L)=>{var k,V,T,A;return p.value?(a(),c("footer",Kt,[l(g.$slots,"doc-footer-before",{},void 0,!0),u.value||h.value?(a(),c("div",Wt,[u.value?(a(),c("div",Rt,[m(F,{class:"edit-link-button",href:r(s).url,"no-icon":!0},{default:d(()=>[Jt,D(" "+I(r(s).text),1)]),_:1},8,["href"])])):f("",!0),h.value?(a(),c("div",Yt,[m(qt)])):f("",!0)])):f("",!0),(k=r(i).prev)!=null&&k.link||(V=r(i).next)!=null&&V.link?(a(),c("nav",Qt,[Xt,v("div",Zt,[(T=r(i).prev)!=null&&T.link?(a(),$(F,{key:0,class:"pager-link prev",href:r(i).prev.link},{default:d(()=>{var C;return[v("span",{class:"desc",innerHTML:((C=r(e).docFooter)==null?void 0:C.prev)||"Previous page"},null,8,xt),v("span",{class:"title",innerHTML:r(i).prev.text},null,8,eo)]}),_:1},8,["href"])):f("",!0)]),v("div",to,[(A=r(i).next)!=null&&A.link?(a(),$(F,{key:0,class:"pager-link next",href:r(i).next.link},{default:d(()=>{var C;return[v("span",{class:"desc",innerHTML:((C=r(e).docFooter)==null?void 0:C.next)||"Next page"},null,8,oo),v("span",{class:"title",innerHTML:r(i).next.text},null,8,so)]}),_:1},8,["href"])):f("",!0)])])):f("",!0)])):f("",!0)}}}),ao=b(no,[["__scopeId","data-v-d4a0bba5"]]),ro=o=>(B("data-v-39a288b8"),o=o(),H(),o),io={class:"container"},lo=ro(()=>v("div",{class:"aside-curtain"},null,-1)),co={class:"aside-container"},uo={class:"aside-content"},vo={class:"content"},po={class:"content-container"},ho={class:"main"},fo=_({__name:"VPDoc",setup(o){const{theme:e}=P(),t=ee(),{hasSidebar:n,hasAside:s,leftAside:i}=O(),u=y(()=>t.path.replace(/[./]+/g,"_").replace(/_html$/,""));return(h,p)=>{const g=q("Content");return a(),c("div",{class:N(["VPDoc",{"has-sidebar":r(n),"has-aside":r(s)}])},[l(h.$slots,"doc-top",{},void 0,!0),v("div",io,[r(s)?(a(),c("div",{key:0,class:N(["aside",{"left-aside":r(i)}])},[lo,v("div",co,[v("div",uo,[m(Ft,null,{"aside-top":d(()=>[l(h.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":d(()=>[l(h.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":d(()=>[l(h.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":d(()=>[l(h.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":d(()=>[l(h.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":d(()=>[l(h.$slots,"aside-ads-after",{},void 0,!0)]),_:3})])])],2)):f("",!0),v("div",vo,[v("div",po,[l(h.$slots,"doc-before",{},void 0,!0),v("main",ho,[m(g,{class:N(["vp-doc",[u.value,r(e).externalLinkIcon&&"external-link-icon-enabled"]])},null,8,["class"])]),m(ao,null,{"doc-footer-before":d(()=>[l(h.$slots,"doc-footer-before",{},void 0,!0)]),_:3}),l(h.$slots,"doc-after",{},void 0,!0)])])]),l(h.$slots,"doc-bottom",{},void 0,!0)],2)}}}),_o=b(fo,[["__scopeId","data-v-39a288b8"]]),mo=_({__name:"VPButton",props:{tag:{},size:{default:"medium"},theme:{default:"brand"},text:{},href:{},target:{},rel:{}},setup(o){const e=o,t=y(()=>e.href&&Le.test(e.href)),n=y(()=>e.tag||e.href?"a":"button");return(s,i)=>(a(),$(W(n.value),{class:N(["VPButton",[s.size,s.theme]]),href:s.href?r(fe)(s.href):void 0,target:e.target??(t.value?"_blank":void 0),rel:e.rel??(t.value?"noreferrer":void 0)},{default:d(()=>[D(I(s.text),1)]),_:1},8,["class","href","target","rel"]))}}),ko=b(mo,[["__scopeId","data-v-cad61b99"]]),bo=["src","alt"],$o=_({inheritAttrs:!1,__name:"VPImage",props:{image:{},alt:{}},setup(o){return(e,t)=>{const n=q("VPImage",!0);return e.image?(a(),c(M,{key:0},[typeof e.image=="string"||"src"in e.image?(a(),c("img",Y({key:0,class:"VPImage"},typeof e.image=="string"?e.$attrs:{...e.image,...e.$attrs},{src:r(pe)(typeof e.image=="string"?e.image:e.image.src),alt:e.alt??(typeof e.image=="string"?"":e.image.alt||"")}),null,16,bo)):(a(),c(M,{key:1},[m(n,Y({class:"dark",image:e.image.dark,alt:e.image.alt},e.$attrs),null,16,["image","alt"]),m(n,Y({class:"light",image:e.image.light,alt:e.image.alt},e.$attrs),null,16,["image","alt"])],64))],64)):f("",!0)}}}),X=b($o,[["__scopeId","data-v-8426fc1a"]]),go=o=>(B("data-v-303bb580"),o=o(),H(),o),yo={class:"container"},Po={class:"main"},Lo={key:0,class:"name"},Vo=["innerHTML"],So=["innerHTML"],To=["innerHTML"],Io={key:0,class:"actions"},wo={key:0,class:"image"},No={class:"image-container"},Mo=go(()=>v("div",{class:"image-bg"},null,-1)),Ao=_({__name:"VPHero",props:{name:{},text:{},tagline:{},image:{},actions:{}},setup(o){const e=te("hero-image-slot-exists");return(t,n)=>(a(),c("div",{class:N(["VPHero",{"has-image":t.image||r(e)}])},[v("div",yo,[v("div",Po,[l(t.$slots,"home-hero-info-before",{},void 0,!0),l(t.$slots,"home-hero-info",{},()=>[t.name?(a(),c("h1",Lo,[v("span",{innerHTML:t.name,class:"clip"},null,8,Vo)])):f("",!0),t.text?(a(),c("p",{key:1,innerHTML:t.text,class:"text"},null,8,So)):f("",!0),t.tagline?(a(),c("p",{key:2,innerHTML:t.tagline,class:"tagline"},null,8,To)):f("",!0)],!0),l(t.$slots,"home-hero-info-after",{},void 0,!0),t.actions?(a(),c("div",Io,[(a(!0),c(M,null,E(t.actions,s=>(a(),c("div",{key:s.link,class:"action"},[m(ko,{tag:"a",size:"medium",theme:s.theme,text:s.text,href:s.link,target:s.target,rel:s.rel},null,8,["theme","text","href","target","rel"])]))),128))])):f("",!0),l(t.$slots,"home-hero-actions-after",{},void 0,!0)]),t.image||r(e)?(a(),c("div",wo,[v("div",No,[Mo,l(t.$slots,"home-hero-image",{},()=>[t.image?(a(),$(X,{key:0,class:"image-src",image:t.image},null,8,["image"])):f("",!0)],!0)])])):f("",!0)])],2))}}),Co=b(Ao,[["__scopeId","data-v-303bb580"]]),Bo=_({__name:"VPHomeHero",setup(o){const{frontmatter:e}=P();return(t,n)=>r(e).hero?(a(),$(Co,{key:0,class:"VPHomeHero",name:r(e).hero.name,text:r(e).hero.text,tagline:r(e).hero.tagline,image:r(e).hero.image,actions:r(e).hero.actions},{"home-hero-info-before":d(()=>[l(t.$slots,"home-hero-info-before")]),"home-hero-info":d(()=>[l(t.$slots,"home-hero-info")]),"home-hero-info-after":d(()=>[l(t.$slots,"home-hero-info-after")]),"home-hero-actions-after":d(()=>[l(t.$slots,"home-hero-actions-after")]),"home-hero-image":d(()=>[l(t.$slots,"home-hero-image")]),_:3},8,["name","text","tagline","image","actions"])):f("",!0)}}),Ho=o=>(B("data-v-a3976bdc"),o=o(),H(),o),Eo={class:"box"},Fo={key:0,class:"icon"},Do=["innerHTML"],Oo=["innerHTML"],Uo=["innerHTML"],Go={key:4,class:"link-text"},jo={class:"link-text-value"},zo=Ho(()=>v("span",{class:"vpi-arrow-right link-text-icon"},null,-1)),qo=_({__name:"VPFeature",props:{icon:{},title:{},details:{},link:{},linkText:{},rel:{},target:{}},setup(o){return(e,t)=>(a(),$(F,{class:"VPFeature",href:e.link,rel:e.rel,target:e.target,"no-icon":!0,tag:e.link?"a":"div"},{default:d(()=>[v("article",Eo,[typeof e.icon=="object"&&e.icon.wrap?(a(),c("div",Fo,[m(X,{image:e.icon,alt:e.icon.alt,height:e.icon.height||48,width:e.icon.width||48},null,8,["image","alt","height","width"])])):typeof e.icon=="object"?(a(),$(X,{key:1,image:e.icon,alt:e.icon.alt,height:e.icon.height||48,width:e.icon.width||48},null,8,["image","alt","height","width"])):e.icon?(a(),c("div",{key:2,class:"icon",innerHTML:e.icon},null,8,Do)):f("",!0),v("h2",{class:"title",innerHTML:e.title},null,8,Oo),e.details?(a(),c("p",{key:3,class:"details",innerHTML:e.details},null,8,Uo)):f("",!0),e.linkText?(a(),c("div",Go,[v("p",jo,[D(I(e.linkText)+" ",1),zo])])):f("",!0)])]),_:1},8,["href","rel","target","tag"]))}}),Ko=b(qo,[["__scopeId","data-v-a3976bdc"]]),Wo={key:0,class:"VPFeatures"},Ro={class:"container"},Jo={class:"items"},Yo=_({__name:"VPFeatures",props:{features:{}},setup(o){const e=o,t=y(()=>{const n=e.features.length;if(n){if(n===2)return"grid-2";if(n===3)return"grid-3";if(n%3===0)return"grid-6";if(n>3)return"grid-4"}else return});return(n,s)=>n.features?(a(),c("div",Wo,[v("div",Ro,[v("div",Jo,[(a(!0),c(M,null,E(n.features,i=>(a(),c("div",{key:i.title,class:N(["item",[t.value]])},[m(Ko,{icon:i.icon,title:i.title,details:i.details,link:i.link,"link-text":i.linkText,rel:i.rel,target:i.target},null,8,["icon","title","details","link","link-text","rel","target"])],2))),128))])])])):f("",!0)}}),Qo=b(Yo,[["__scopeId","data-v-a6181336"]]),Xo=_({__name:"VPHomeFeatures",setup(o){const{frontmatter:e}=P();return(t,n)=>r(e).features?(a(),$(Qo,{key:0,class:"VPHomeFeatures",features:r(e).features},null,8,["features"])):f("",!0)}}),Zo=_({__name:"VPHomeContent",setup(o){const{width:e}=Ke({initialWidth:0,includeScrollbar:!1});return(t,n)=>(a(),c("div",{class:"vp-doc container",style:Ve(r(e)?{"--vp-offset":`calc(50% - ${r(e)/2}px)`}:{})},[l(t.$slots,"default",{},void 0,!0)],4))}}),xo=b(Zo,[["__scopeId","data-v-8e2d4988"]]),es={class:"VPHome"},ts=_({__name:"VPHome",setup(o){const{frontmatter:e}=P();return(t,n)=>{const s=q("Content");return a(),c("div",es,[l(t.$slots,"home-hero-before",{},void 0,!0),m(Bo,null,{"home-hero-info-before":d(()=>[l(t.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":d(()=>[l(t.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":d(()=>[l(t.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":d(()=>[l(t.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":d(()=>[l(t.$slots,"home-hero-image",{},void 0,!0)]),_:3}),l(t.$slots,"home-hero-after",{},void 0,!0),l(t.$slots,"home-features-before",{},void 0,!0),m(Xo),l(t.$slots,"home-features-after",{},void 0,!0),r(e).markdownStyles!==!1?(a(),$(xo,{key:0},{default:d(()=>[m(s)]),_:1})):(a(),$(s,{key:1}))])}}}),os=b(ts,[["__scopeId","data-v-686f80a6"]]),ss={},ns={class:"VPPage"};function as(o,e){const t=q("Content");return a(),c("div",ns,[l(o.$slots,"page-top"),m(t),l(o.$slots,"page-bottom")])}const rs=b(ss,[["render",as]]),is=_({__name:"VPContent",setup(o){const{page:e,frontmatter:t}=P(),{hasSidebar:n}=O();return(s,i)=>(a(),c("div",{class:N(["VPContent",{"has-sidebar":r(n),"is-home":r(t).layout==="home"}]),id:"VPContent"},[r(e).isNotFound?l(s.$slots,"not-found",{key:0},()=>[m(ft)],!0):r(t).layout==="page"?(a(),$(rs,{key:1},{"page-top":d(()=>[l(s.$slots,"page-top",{},void 0,!0)]),"page-bottom":d(()=>[l(s.$slots,"page-bottom",{},void 0,!0)]),_:3})):r(t).layout==="home"?(a(),$(os,{key:2},{"home-hero-before":d(()=>[l(s.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":d(()=>[l(s.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":d(()=>[l(s.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":d(()=>[l(s.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":d(()=>[l(s.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":d(()=>[l(s.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":d(()=>[l(s.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":d(()=>[l(s.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":d(()=>[l(s.$slots,"home-features-after",{},void 0,!0)]),_:3})):r(t).layout&&r(t).layout!=="doc"?(a(),$(W(r(t).layout),{key:3})):(a(),$(_o,{key:4},{"doc-top":d(()=>[l(s.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":d(()=>[l(s.$slots,"doc-bottom",{},void 0,!0)]),"doc-footer-before":d(()=>[l(s.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":d(()=>[l(s.$slots,"doc-before",{},void 0,!0)]),"doc-after":d(()=>[l(s.$slots,"doc-after",{},void 0,!0)]),"aside-top":d(()=>[l(s.$slots,"aside-top",{},void 0,!0)]),"aside-outline-before":d(()=>[l(s.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":d(()=>[l(s.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":d(()=>[l(s.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":d(()=>[l(s.$slots,"aside-ads-after",{},void 0,!0)]),"aside-bottom":d(()=>[l(s.$slots,"aside-bottom",{},void 0,!0)]),_:3}))],2))}}),ls=b(is,[["__scopeId","data-v-1428d186"]]),cs={class:"container"},us=["innerHTML"],ds=["innerHTML"],vs=_({__name:"VPFooter",setup(o){const{theme:e,frontmatter:t}=P(),{hasSidebar:n}=O();return(s,i)=>r(e).footer&&r(t).footer!==!1?(a(),c("footer",{key:0,class:N(["VPFooter",{"has-sidebar":r(n)}])},[v("div",cs,[r(e).footer.message?(a(),c("p",{key:0,class:"message",innerHTML:r(e).footer.message},null,8,us)):f("",!0),r(e).footer.copyright?(a(),c("p",{key:1,class:"copyright",innerHTML:r(e).footer.copyright},null,8,ds)):f("",!0)])],2)):f("",!0)}}),ps=b(vs,[["__scopeId","data-v-e315a0ad"]]);function hs(){const{theme:o,frontmatter:e}=P(),t=Pe([]),n=y(()=>t.value.length>0);return x(()=>{t.value=_e(e.value.outline??o.value.outline)}),{headers:t,hasLocalNav:n}}const fs=o=>(B("data-v-17a5e62e"),o=o(),H(),o),_s={class:"menu-text"},ms=fs(()=>v("span",{class:"vpi-chevron-right icon"},null,-1)),ks={class:"header"},bs={class:"outline"},$s=_({__name:"VPLocalNavOutlineDropdown",props:{headers:{},navHeight:{}},setup(o){const e=o,{theme:t}=P(),n=w(!1),s=w(0),i=w(),u=w();function h(k){var V;(V=i.value)!=null&&V.contains(k.target)||(n.value=!1)}j(n,k=>{if(k){document.addEventListener("click",h);return}document.removeEventListener("click",h)}),le("Escape",()=>{n.value=!1}),x(()=>{n.value=!1});function p(){n.value=!n.value,s.value=window.innerHeight+Math.min(window.scrollY-e.navHeight,0)}function g(k){k.target.classList.contains("outline-link")&&(u.value&&(u.value.style.transition="none"),We(()=>{n.value=!1}))}function L(){n.value=!1,window.scrollTo({top:0,left:0,behavior:"smooth"})}return(k,V)=>(a(),c("div",{class:"VPLocalNavOutlineDropdown",style:Ve({"--vp-vh":s.value+"px"}),ref_key:"main",ref:i},[k.headers.length>0?(a(),c("button",{key:0,onClick:p,class:N({open:n.value})},[v("span",_s,I(r(Ne)(r(t))),1),ms],2)):(a(),c("button",{key:1,onClick:L},I(r(t).returnToTopLabel||"Return to top"),1)),m(ve,{name:"flyout"},{default:d(()=>[n.value?(a(),c("div",{key:0,ref_key:"items",ref:u,class:"items",onClick:g},[v("div",ks,[v("a",{class:"top-link",href:"#",onClick:L},I(r(t).returnToTopLabel||"Return to top"),1)]),v("div",bs,[m(Me,{headers:k.headers},null,8,["headers"])])],512)):f("",!0)]),_:1})],4))}}),gs=b($s,[["__scopeId","data-v-17a5e62e"]]),ys=o=>(B("data-v-a6f0e41e"),o=o(),H(),o),Ps={class:"container"},Ls=["aria-expanded"],Vs=ys(()=>v("span",{class:"vpi-align-left menu-icon"},null,-1)),Ss={class:"menu-text"},Ts=_({__name:"VPLocalNav",props:{open:{type:Boolean}},emits:["open-menu"],setup(o){const{theme:e,frontmatter:t}=P(),{hasSidebar:n}=O(),{headers:s}=hs(),{y:i}=Se(),u=w(0);R(()=>{u.value=parseInt(getComputedStyle(document.documentElement).getPropertyValue("--vp-nav-height"))}),x(()=>{s.value=_e(t.value.outline??e.value.outline)});const h=y(()=>s.value.length===0),p=y(()=>h.value&&!n.value),g=y(()=>({VPLocalNav:!0,"has-sidebar":n.value,empty:h.value,fixed:p.value}));return(L,k)=>r(t).layout!=="home"&&(!p.value||r(i)>=u.value)?(a(),c("div",{key:0,class:N(g.value)},[v("div",Ps,[r(n)?(a(),c("button",{key:0,class:"menu","aria-expanded":L.open,"aria-controls":"VPSidebarNav",onClick:k[0]||(k[0]=V=>L.$emit("open-menu"))},[Vs,v("span",Ss,I(r(e).sidebarMenuLabel||"Menu"),1)],8,Ls)):f("",!0),m(gs,{headers:r(s),navHeight:u.value},null,8,["headers","navHeight"])])],2)):f("",!0)}}),Is=b(Ts,[["__scopeId","data-v-a6f0e41e"]]);function ws(){const o=w(!1);function e(){o.value=!0,window.addEventListener("resize",s)}function t(){o.value=!1,window.removeEventListener("resize",s)}function n(){o.value?t():e()}function s(){window.outerWidth>=768&&t()}const i=ee();return j(()=>i.path,t),{isScreenOpen:o,openScreen:e,closeScreen:t,toggleScreen:n}}const Ns={},Ms={class:"VPSwitch",type:"button",role:"switch"},As={class:"check"},Cs={key:0,class:"icon"};function Bs(o,e){return a(),c("button",Ms,[v("span",As,[o.$slots.default?(a(),c("span",Cs,[l(o.$slots,"default",{},void 0,!0)])):f("",!0)])])}const Hs=b(Ns,[["render",Bs],["__scopeId","data-v-1d5665e3"]]),Ce=o=>(B("data-v-d1f28634"),o=o(),H(),o),Es=Ce(()=>v("span",{class:"vpi-sun sun"},null,-1)),Fs=Ce(()=>v("span",{class:"vpi-moon moon"},null,-1)),Ds=_({__name:"VPSwitchAppearance",setup(o){const{isDark:e,theme:t}=P(),n=te("toggle-appearance",()=>{e.value=!e.value}),s=y(()=>e.value?t.value.lightModeSwitchTitle||"Switch to light theme":t.value.darkModeSwitchTitle||"Switch to dark theme");return(i,u)=>(a(),$(Hs,{title:s.value,class:"VPSwitchAppearance","aria-checked":r(e),onClick:r(n)},{default:d(()=>[Es,Fs]),_:1},8,["title","aria-checked","onClick"]))}}),me=b(Ds,[["__scopeId","data-v-d1f28634"]]),Os={key:0,class:"VPNavBarAppearance"},Us=_({__name:"VPNavBarAppearance",setup(o){const{site:e}=P();return(t,n)=>r(e).appearance&&r(e).appearance!=="force-dark"?(a(),c("div",Os,[m(me)])):f("",!0)}}),Gs=b(Us,[["__scopeId","data-v-e6aabb21"]]),ke=w();let Be=!1,re=0;function js(o){const e=w(!1);if(oe){!Be&&zs(),re++;const t=j(ke,n=>{var s,i,u;n===o.el.value||(s=o.el.value)!=null&&s.contains(n)?(e.value=!0,(i=o.onFocus)==null||i.call(o)):(e.value=!1,(u=o.onBlur)==null||u.call(o))});he(()=>{t(),re--,re||qs()})}return Re(e)}function zs(){document.addEventListener("focusin",He),Be=!0,ke.value=document.activeElement}function qs(){document.removeEventListener("focusin",He)}function He(){ke.value=document.activeElement}const Ks={class:"VPMenuLink"},Ws=_({__name:"VPMenuLink",props:{item:{}},setup(o){const{page:e}=P();return(t,n)=>(a(),c("div",Ks,[m(F,{class:N({active:r(z)(r(e).relativePath,t.item.activeMatch||t.item.link,!!t.item.activeMatch)}),href:t.item.link,target:t.item.target,rel:t.item.rel},{default:d(()=>[D(I(t.item.text),1)]),_:1},8,["class","href","target","rel"])]))}}),se=b(Ws,[["__scopeId","data-v-43f1e123"]]),Rs={class:"VPMenuGroup"},Js={key:0,class:"title"},Ys=_({__name:"VPMenuGroup",props:{text:{},items:{}},setup(o){return(e,t)=>(a(),c("div",Rs,[e.text?(a(),c("p",Js,I(e.text),1)):f("",!0),(a(!0),c(M,null,E(e.items,n=>(a(),c(M,null,["link"in n?(a(),$(se,{key:0,item:n},null,8,["item"])):f("",!0)],64))),256))]))}}),Qs=b(Ys,[["__scopeId","data-v-69e747b5"]]),Xs={class:"VPMenu"},Zs={key:0,class:"items"},xs=_({__name:"VPMenu",props:{items:{}},setup(o){return(e,t)=>(a(),c("div",Xs,[e.items?(a(),c("div",Zs,[(a(!0),c(M,null,E(e.items,n=>(a(),c(M,{key:n.text},["link"in n?(a(),$(se,{key:0,item:n},null,8,["item"])):(a(),$(Qs,{key:1,text:n.text,items:n.items},null,8,["text","items"]))],64))),128))])):f("",!0),l(e.$slots,"default",{},void 0,!0)]))}}),en=b(xs,[["__scopeId","data-v-e7ea1737"]]),tn=o=>(B("data-v-b6c34ac9"),o=o(),H(),o),on=["aria-expanded","aria-label"],sn={key:0,class:"text"},nn=["innerHTML"],an=tn(()=>v("span",{class:"vpi-chevron-down text-icon"},null,-1)),rn={key:1,class:"vpi-more-horizontal icon"},ln={class:"menu"},cn=_({__name:"VPFlyout",props:{icon:{},button:{},label:{},items:{}},setup(o){const e=w(!1),t=w();js({el:t,onBlur:n});function n(){e.value=!1}return(s,i)=>(a(),c("div",{class:"VPFlyout",ref_key:"el",ref:t,onMouseenter:i[1]||(i[1]=u=>e.value=!0),onMouseleave:i[2]||(i[2]=u=>e.value=!1)},[v("button",{type:"button",class:"button","aria-haspopup":"true","aria-expanded":e.value,"aria-label":s.label,onClick:i[0]||(i[0]=u=>e.value=!e.value)},[s.button||s.icon?(a(),c("span",sn,[s.icon?(a(),c("span",{key:0,class:N([s.icon,"option-icon"])},null,2)):f("",!0),s.button?(a(),c("span",{key:1,innerHTML:s.button},null,8,nn)):f("",!0),an])):(a(),c("span",rn))],8,on),v("div",ln,[m(en,{items:s.items},{default:d(()=>[l(s.$slots,"default",{},void 0,!0)]),_:3},8,["items"])])],544))}}),be=b(cn,[["__scopeId","data-v-b6c34ac9"]]),un=["href","aria-label","innerHTML"],dn=_({__name:"VPSocialLink",props:{icon:{},link:{},ariaLabel:{}},setup(o){const e=o,t=y(()=>typeof e.icon=="object"?e.icon.svg:``);return(n,s)=>(a(),c("a",{class:"VPSocialLink no-icon",href:n.link,"aria-label":n.ariaLabel??(typeof n.icon=="string"?n.icon:""),target:"_blank",rel:"noopener",innerHTML:t.value},null,8,un))}}),vn=b(dn,[["__scopeId","data-v-eee4e7cb"]]),pn={class:"VPSocialLinks"},hn=_({__name:"VPSocialLinks",props:{links:{}},setup(o){return(e,t)=>(a(),c("div",pn,[(a(!0),c(M,null,E(e.links,({link:n,icon:s,ariaLabel:i})=>(a(),$(vn,{key:n,icon:s,link:n,ariaLabel:i},null,8,["icon","link","ariaLabel"]))),128))]))}}),$e=b(hn,[["__scopeId","data-v-7bc22406"]]),fn={key:0,class:"group translations"},_n={class:"trans-title"},mn={key:1,class:"group"},kn={class:"item appearance"},bn={class:"label"},$n={class:"appearance-action"},gn={key:2,class:"group"},yn={class:"item social-links"},Pn=_({__name:"VPNavBarExtra",setup(o){const{site:e,theme:t}=P(),{localeLinks:n,currentLang:s}=J({correspondingLink:!0}),i=y(()=>n.value.length&&s.value.label||e.value.appearance||t.value.socialLinks);return(u,h)=>i.value?(a(),$(be,{key:0,class:"VPNavBarExtra",label:"extra navigation"},{default:d(()=>[r(n).length&&r(s).label?(a(),c("div",fn,[v("p",_n,I(r(s).label),1),(a(!0),c(M,null,E(r(n),p=>(a(),$(se,{key:p.link,item:p},null,8,["item"]))),128))])):f("",!0),r(e).appearance&&r(e).appearance!=="force-dark"?(a(),c("div",mn,[v("div",kn,[v("p",bn,I(r(t).darkModeSwitchLabel||"Appearance"),1),v("div",$n,[m(me)])])])):f("",!0),r(t).socialLinks?(a(),c("div",gn,[v("div",yn,[m($e,{class:"social-links-list",links:r(t).socialLinks},null,8,["links"])])])):f("",!0)]),_:1})):f("",!0)}}),Ln=b(Pn,[["__scopeId","data-v-d0bd9dde"]]),Vn=o=>(B("data-v-e5dd9c1c"),o=o(),H(),o),Sn=["aria-expanded"],Tn=Vn(()=>v("span",{class:"container"},[v("span",{class:"top"}),v("span",{class:"middle"}),v("span",{class:"bottom"})],-1)),In=[Tn],wn=_({__name:"VPNavBarHamburger",props:{active:{type:Boolean}},emits:["click"],setup(o){return(e,t)=>(a(),c("button",{type:"button",class:N(["VPNavBarHamburger",{active:e.active}]),"aria-label":"mobile navigation","aria-expanded":e.active,"aria-controls":"VPNavScreen",onClick:t[0]||(t[0]=n=>e.$emit("click"))},In,10,Sn))}}),Nn=b(wn,[["__scopeId","data-v-e5dd9c1c"]]),Mn=["innerHTML"],An=_({__name:"VPNavBarMenuLink",props:{item:{}},setup(o){const{page:e}=P();return(t,n)=>(a(),$(F,{class:N({VPNavBarMenuLink:!0,active:r(z)(r(e).relativePath,t.item.activeMatch||t.item.link,!!t.item.activeMatch)}),href:t.item.link,noIcon:t.item.noIcon,target:t.item.target,rel:t.item.rel,tabindex:"0"},{default:d(()=>[v("span",{innerHTML:t.item.text},null,8,Mn)]),_:1},8,["class","href","noIcon","target","rel"]))}}),Cn=b(An,[["__scopeId","data-v-9c663999"]]),Bn=_({__name:"VPNavBarMenuGroup",props:{item:{}},setup(o){const e=o,{page:t}=P(),n=i=>"link"in i?z(t.value.relativePath,i.link,!!e.item.activeMatch):i.items.some(n),s=y(()=>n(e.item));return(i,u)=>(a(),$(be,{class:N({VPNavBarMenuGroup:!0,active:r(z)(r(t).relativePath,i.item.activeMatch,!!i.item.activeMatch)||s.value}),button:i.item.text,items:i.item.items},null,8,["class","button","items"]))}}),Hn=o=>(B("data-v-7f418b0f"),o=o(),H(),o),En={key:0,"aria-labelledby":"main-nav-aria-label",class:"VPNavBarMenu"},Fn=Hn(()=>v("span",{id:"main-nav-aria-label",class:"visually-hidden"},"Main Navigation",-1)),Dn=_({__name:"VPNavBarMenu",setup(o){const{theme:e}=P();return(t,n)=>r(e).nav?(a(),c("nav",En,[Fn,(a(!0),c(M,null,E(r(e).nav,s=>(a(),c(M,{key:s.text},["link"in s?(a(),$(Cn,{key:0,item:s},null,8,["item"])):(a(),$(Bn,{key:1,item:s},null,8,["item"]))],64))),128))])):f("",!0)}}),On=b(Dn,[["__scopeId","data-v-7f418b0f"]]);function Un(o){const{localeIndex:e,theme:t}=P();function n(s){var A,C,S;const i=s.split("."),u=(A=t.value.search)==null?void 0:A.options,h=u&&typeof u=="object",p=h&&((S=(C=u.locales)==null?void 0:C[e.value])==null?void 0:S.translations)||null,g=h&&u.translations||null;let L=p,k=g,V=o;const T=i.pop();for(const U of i){let G=null;const K=V==null?void 0:V[U];K&&(G=V=K);const ne=k==null?void 0:k[U];ne&&(G=k=ne);const ae=L==null?void 0:L[U];ae&&(G=L=ae),K||(V=G),ne||(k=G),ae||(L=G)}return(L==null?void 0:L[T])??(k==null?void 0:k[T])??(V==null?void 0:V[T])??""}return n}const Gn=["aria-label"],jn={class:"DocSearch-Button-Container"},zn=v("span",{class:"vp-icon DocSearch-Search-Icon"},null,-1),qn={class:"DocSearch-Button-Placeholder"},Kn=v("span",{class:"DocSearch-Button-Keys"},[v("kbd",{class:"DocSearch-Button-Key"}),v("kbd",{class:"DocSearch-Button-Key"},"K")],-1),ge=_({__name:"VPNavBarSearchButton",setup(o){const t=Un({button:{buttonText:"Search",buttonAriaLabel:"Search"}});return(n,s)=>(a(),c("button",{type:"button",class:"DocSearch DocSearch-Button","aria-label":r(t)("button.buttonAriaLabel")},[v("span",jn,[zn,v("span",qn,I(r(t)("button.buttonText")),1)]),Kn],8,Gn))}}),Wn={class:"VPNavBarSearch"},Rn={id:"local-search"},Jn={key:1,id:"docsearch"},Yn=_({__name:"VPNavBarSearch",setup(o){const e=Je(()=>Ye(()=>import("./VPLocalSearchBox.Ch91UrCK.js"),__vite__mapDeps([0,1]))),t=()=>null,{theme:n}=P(),s=w(!1),i=w(!1);R(()=>{});function u(){s.value||(s.value=!0,setTimeout(h,16))}function h(){const k=new Event("keydown");k.key="k",k.metaKey=!0,window.dispatchEvent(k),setTimeout(()=>{document.querySelector(".DocSearch-Modal")||h()},16)}function p(k){const V=k.target,T=V.tagName;return V.isContentEditable||T==="INPUT"||T==="SELECT"||T==="TEXTAREA"}const g=w(!1);le("k",k=>{(k.ctrlKey||k.metaKey)&&(k.preventDefault(),g.value=!0)}),le("/",k=>{p(k)||(k.preventDefault(),g.value=!0)});const L="local";return(k,V)=>{var T;return a(),c("div",Wn,[r(L)==="local"?(a(),c(M,{key:0},[g.value?(a(),$(r(e),{key:0,onClose:V[0]||(V[0]=A=>g.value=!1)})):f("",!0),v("div",Rn,[m(ge,{onClick:V[1]||(V[1]=A=>g.value=!0)})])],64)):r(L)==="algolia"?(a(),c(M,{key:1},[s.value?(a(),$(r(t),{key:0,algolia:((T=r(n).search)==null?void 0:T.options)??r(n).algolia,onVnodeBeforeMount:V[2]||(V[2]=A=>i.value=!0)},null,8,["algolia"])):f("",!0),i.value?f("",!0):(a(),c("div",Jn,[m(ge,{onClick:u})]))],64)):f("",!0)])}}}),Qn=_({__name:"VPNavBarSocialLinks",setup(o){const{theme:e}=P();return(t,n)=>r(e).socialLinks?(a(),$($e,{key:0,class:"VPNavBarSocialLinks",links:r(e).socialLinks},null,8,["links"])):f("",!0)}}),Xn=b(Qn,[["__scopeId","data-v-0394ad82"]]),Zn=["href","rel","target"],xn={key:1},ea={key:2},ta=_({__name:"VPNavBarTitle",setup(o){const{site:e,theme:t}=P(),{hasSidebar:n}=O(),{currentLang:s}=J(),i=y(()=>{var p;return typeof t.value.logoLink=="string"?t.value.logoLink:(p=t.value.logoLink)==null?void 0:p.link}),u=y(()=>{var p;return typeof t.value.logoLink=="string"||(p=t.value.logoLink)==null?void 0:p.rel}),h=y(()=>{var p;return typeof t.value.logoLink=="string"||(p=t.value.logoLink)==null?void 0:p.target});return(p,g)=>(a(),c("div",{class:N(["VPNavBarTitle",{"has-sidebar":r(n)}])},[v("a",{class:"title",href:i.value??r(fe)(r(s).link),rel:u.value,target:h.value},[l(p.$slots,"nav-bar-title-before",{},void 0,!0),r(t).logo?(a(),$(X,{key:0,class:"logo",image:r(t).logo},null,8,["image"])):f("",!0),r(t).siteTitle?(a(),c("span",xn,I(r(t).siteTitle),1)):r(t).siteTitle===void 0?(a(),c("span",ea,I(r(e).title),1)):f("",!0),l(p.$slots,"nav-bar-title-after",{},void 0,!0)],8,Zn)],2))}}),oa=b(ta,[["__scopeId","data-v-ab179fa1"]]),sa={class:"items"},na={class:"title"},aa=_({__name:"VPNavBarTranslations",setup(o){const{theme:e}=P(),{localeLinks:t,currentLang:n}=J({correspondingLink:!0});return(s,i)=>r(t).length&&r(n).label?(a(),$(be,{key:0,class:"VPNavBarTranslations",icon:"vpi-languages",label:r(e).langMenuLabel||"Change language"},{default:d(()=>[v("div",sa,[v("p",na,I(r(n).label),1),(a(!0),c(M,null,E(r(t),u=>(a(),$(se,{key:u.link,item:u},null,8,["item"]))),128))])]),_:1},8,["label"])):f("",!0)}}),ra=b(aa,[["__scopeId","data-v-88af2de4"]]),ia=o=>(B("data-v-ccf7ddec"),o=o(),H(),o),la={class:"wrapper"},ca={class:"container"},ua={class:"title"},da={class:"content"},va={class:"content-body"},pa=ia(()=>v("div",{class:"divider"},[v("div",{class:"divider-line"})],-1)),ha=_({__name:"VPNavBar",props:{isScreenOpen:{type:Boolean}},emits:["toggle-screen"],setup(o){const{y:e}=Se(),{hasSidebar:t}=O(),{frontmatter:n}=P(),s=w({});return ye(()=>{s.value={"has-sidebar":t.value,home:n.value.layout==="home",top:e.value===0}}),(i,u)=>(a(),c("div",{class:N(["VPNavBar",s.value])},[v("div",la,[v("div",ca,[v("div",ua,[m(oa,null,{"nav-bar-title-before":d(()=>[l(i.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":d(()=>[l(i.$slots,"nav-bar-title-after",{},void 0,!0)]),_:3})]),v("div",da,[v("div",va,[l(i.$slots,"nav-bar-content-before",{},void 0,!0),m(Yn,{class:"search"}),m(On,{class:"menu"}),m(ra,{class:"translations"}),m(Gs,{class:"appearance"}),m(Xn,{class:"social-links"}),m(Ln,{class:"extra"}),l(i.$slots,"nav-bar-content-after",{},void 0,!0),m(Nn,{class:"hamburger",active:i.isScreenOpen,onClick:u[0]||(u[0]=h=>i.$emit("toggle-screen"))},null,8,["active"])])])])]),pa],2))}}),fa=b(ha,[["__scopeId","data-v-ccf7ddec"]]),_a={key:0,class:"VPNavScreenAppearance"},ma={class:"text"},ka=_({__name:"VPNavScreenAppearance",setup(o){const{site:e,theme:t}=P();return(n,s)=>r(e).appearance&&r(e).appearance!=="force-dark"?(a(),c("div",_a,[v("p",ma,I(r(t).darkModeSwitchLabel||"Appearance"),1),m(me)])):f("",!0)}}),ba=b(ka,[["__scopeId","data-v-2d7af913"]]),$a=_({__name:"VPNavScreenMenuLink",props:{item:{}},setup(o){const e=te("close-screen");return(t,n)=>(a(),$(F,{class:"VPNavScreenMenuLink",href:t.item.link,target:t.item.target,rel:t.item.rel,onClick:r(e),innerHTML:t.item.text},null,8,["href","target","rel","onClick","innerHTML"]))}}),ga=b($a,[["__scopeId","data-v-7f31e1f6"]]),ya=_({__name:"VPNavScreenMenuGroupLink",props:{item:{}},setup(o){const e=te("close-screen");return(t,n)=>(a(),$(F,{class:"VPNavScreenMenuGroupLink",href:t.item.link,target:t.item.target,rel:t.item.rel,onClick:r(e)},{default:d(()=>[D(I(t.item.text),1)]),_:1},8,["href","target","rel","onClick"]))}}),Ee=b(ya,[["__scopeId","data-v-19976ae1"]]),Pa={class:"VPNavScreenMenuGroupSection"},La={key:0,class:"title"},Va=_({__name:"VPNavScreenMenuGroupSection",props:{text:{},items:{}},setup(o){return(e,t)=>(a(),c("div",Pa,[e.text?(a(),c("p",La,I(e.text),1)):f("",!0),(a(!0),c(M,null,E(e.items,n=>(a(),$(Ee,{key:n.text,item:n},null,8,["item"]))),128))]))}}),Sa=b(Va,[["__scopeId","data-v-8133b170"]]),Ta=o=>(B("data-v-ff6087d4"),o=o(),H(),o),Ia=["aria-controls","aria-expanded"],wa=["innerHTML"],Na=Ta(()=>v("span",{class:"vpi-plus button-icon"},null,-1)),Ma=["id"],Aa={key:1,class:"group"},Ca=_({__name:"VPNavScreenMenuGroup",props:{text:{},items:{}},setup(o){const e=o,t=w(!1),n=y(()=>`NavScreenGroup-${e.text.replace(" ","-").toLowerCase()}`);function s(){t.value=!t.value}return(i,u)=>(a(),c("div",{class:N(["VPNavScreenMenuGroup",{open:t.value}])},[v("button",{class:"button","aria-controls":n.value,"aria-expanded":t.value,onClick:s},[v("span",{class:"button-text",innerHTML:i.text},null,8,wa),Na],8,Ia),v("div",{id:n.value,class:"items"},[(a(!0),c(M,null,E(i.items,h=>(a(),c(M,{key:h.text},["link"in h?(a(),c("div",{key:h.text,class:"item"},[m(Ee,{item:h},null,8,["item"])])):(a(),c("div",Aa,[m(Sa,{text:h.text,items:h.items},null,8,["text","items"])]))],64))),128))],8,Ma)],2))}}),Ba=b(Ca,[["__scopeId","data-v-ff6087d4"]]),Ha={key:0,class:"VPNavScreenMenu"},Ea=_({__name:"VPNavScreenMenu",setup(o){const{theme:e}=P();return(t,n)=>r(e).nav?(a(),c("nav",Ha,[(a(!0),c(M,null,E(r(e).nav,s=>(a(),c(M,{key:s.text},["link"in s?(a(),$(ga,{key:0,item:s},null,8,["item"])):(a(),$(Ba,{key:1,text:s.text||"",items:s.items},null,8,["text","items"]))],64))),128))])):f("",!0)}}),Fa=_({__name:"VPNavScreenSocialLinks",setup(o){const{theme:e}=P();return(t,n)=>r(e).socialLinks?(a(),$($e,{key:0,class:"VPNavScreenSocialLinks",links:r(e).socialLinks},null,8,["links"])):f("",!0)}}),Fe=o=>(B("data-v-858fe1a4"),o=o(),H(),o),Da=Fe(()=>v("span",{class:"vpi-languages icon lang"},null,-1)),Oa=Fe(()=>v("span",{class:"vpi-chevron-down icon chevron"},null,-1)),Ua={class:"list"},Ga=_({__name:"VPNavScreenTranslations",setup(o){const{localeLinks:e,currentLang:t}=J({correspondingLink:!0}),n=w(!1);function s(){n.value=!n.value}return(i,u)=>r(e).length&&r(t).label?(a(),c("div",{key:0,class:N(["VPNavScreenTranslations",{open:n.value}])},[v("button",{class:"title",onClick:s},[Da,D(" "+I(r(t).label)+" ",1),Oa]),v("ul",Ua,[(a(!0),c(M,null,E(r(e),h=>(a(),c("li",{key:h.link,class:"item"},[m(F,{class:"link",href:h.link},{default:d(()=>[D(I(h.text),1)]),_:2},1032,["href"])]))),128))])],2)):f("",!0)}}),ja=b(Ga,[["__scopeId","data-v-858fe1a4"]]),za={class:"container"},qa=_({__name:"VPNavScreen",props:{open:{type:Boolean}},setup(o){const e=w(null),t=Te(oe?document.body:null);return(n,s)=>(a(),$(ve,{name:"fade",onEnter:s[0]||(s[0]=i=>t.value=!0),onAfterLeave:s[1]||(s[1]=i=>t.value=!1)},{default:d(()=>[n.open?(a(),c("div",{key:0,class:"VPNavScreen",ref_key:"screen",ref:e,id:"VPNavScreen"},[v("div",za,[l(n.$slots,"nav-screen-content-before",{},void 0,!0),m(Ea,{class:"menu"}),m(ja,{class:"translations"}),m(ba,{class:"appearance"}),m(Fa,{class:"social-links"}),l(n.$slots,"nav-screen-content-after",{},void 0,!0)])],512)):f("",!0)]),_:3}))}}),Ka=b(qa,[["__scopeId","data-v-cc5739dd"]]),Wa={key:0,class:"VPNav"},Ra=_({__name:"VPNav",setup(o){const{isScreenOpen:e,closeScreen:t,toggleScreen:n}=ws(),{frontmatter:s}=P(),i=y(()=>s.value.navbar!==!1);return Ie("close-screen",t),Z(()=>{oe&&document.documentElement.classList.toggle("hide-nav",!i.value)}),(u,h)=>i.value?(a(),c("header",Wa,[m(fa,{"is-screen-open":r(e),onToggleScreen:r(n)},{"nav-bar-title-before":d(()=>[l(u.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":d(()=>[l(u.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":d(()=>[l(u.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":d(()=>[l(u.$slots,"nav-bar-content-after",{},void 0,!0)]),_:3},8,["is-screen-open","onToggleScreen"]),m(Ka,{open:r(e)},{"nav-screen-content-before":d(()=>[l(u.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":d(()=>[l(u.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3},8,["open"])])):f("",!0)}}),Ja=b(Ra,[["__scopeId","data-v-ae24b3ad"]]),De=o=>(B("data-v-b8d55f3b"),o=o(),H(),o),Ya=["role","tabindex"],Qa=De(()=>v("div",{class:"indicator"},null,-1)),Xa=De(()=>v("span",{class:"vpi-chevron-right caret-icon"},null,-1)),Za=[Xa],xa={key:1,class:"items"},er=_({__name:"VPSidebarItem",props:{item:{},depth:{}},setup(o){const e=o,{collapsed:t,collapsible:n,isLink:s,isActiveLink:i,hasActiveLink:u,hasChildren:h,toggle:p}=bt(y(()=>e.item)),g=y(()=>h.value?"section":"div"),L=y(()=>s.value?"a":"div"),k=y(()=>h.value?e.depth+2===7?"p":`h${e.depth+2}`:"p"),V=y(()=>s.value?void 0:"button"),T=y(()=>[[`level-${e.depth}`],{collapsible:n.value},{collapsed:t.value},{"is-link":s.value},{"is-active":i.value},{"has-active":u.value}]);function A(S){"key"in S&&S.key!=="Enter"||!e.item.link&&p()}function C(){e.item.link&&p()}return(S,U)=>{const G=q("VPSidebarItem",!0);return a(),$(W(g.value),{class:N(["VPSidebarItem",T.value])},{default:d(()=>[S.item.text?(a(),c("div",Y({key:0,class:"item",role:V.value},Xe(S.item.items?{click:A,keydown:A}:{},!0),{tabindex:S.item.items&&0}),[Qa,S.item.link?(a(),$(F,{key:0,tag:L.value,class:"link",href:S.item.link,rel:S.item.rel,target:S.item.target},{default:d(()=>[(a(),$(W(k.value),{class:"text",innerHTML:S.item.text},null,8,["innerHTML"]))]),_:1},8,["tag","href","rel","target"])):(a(),$(W(k.value),{key:1,class:"text",innerHTML:S.item.text},null,8,["innerHTML"])),S.item.collapsed!=null&&S.item.items&&S.item.items.length?(a(),c("div",{key:2,class:"caret",role:"button","aria-label":"toggle section",onClick:C,onKeydown:Qe(C,["enter"]),tabindex:"0"},Za,32)):f("",!0)],16,Ya)):f("",!0),S.item.items&&S.item.items.length?(a(),c("div",xa,[S.depth<5?(a(!0),c(M,{key:0},E(S.item.items,K=>(a(),$(G,{key:K.text,item:K,depth:S.depth+1},null,8,["item","depth"]))),128)):f("",!0)])):f("",!0)]),_:1},8,["class"])}}}),tr=b(er,[["__scopeId","data-v-b8d55f3b"]]),Oe=o=>(B("data-v-575e6a36"),o=o(),H(),o),or=Oe(()=>v("div",{class:"curtain"},null,-1)),sr={class:"nav",id:"VPSidebarNav","aria-labelledby":"sidebar-aria-label",tabindex:"-1"},nr=Oe(()=>v("span",{class:"visually-hidden",id:"sidebar-aria-label"}," Sidebar Navigation ",-1)),ar=_({__name:"VPSidebar",props:{open:{type:Boolean}},setup(o){const{sidebarGroups:e,hasSidebar:t}=O(),n=o,s=w(null),i=Te(oe?document.body:null);return j([n,s],()=>{var u;n.open?(i.value=!0,(u=s.value)==null||u.focus()):i.value=!1},{immediate:!0,flush:"post"}),(u,h)=>r(t)?(a(),c("aside",{key:0,class:N(["VPSidebar",{open:u.open}]),ref_key:"navEl",ref:s,onClick:h[0]||(h[0]=Ze(()=>{},["stop"]))},[or,v("nav",sr,[nr,l(u.$slots,"sidebar-nav-before",{},void 0,!0),(a(!0),c(M,null,E(r(e),p=>(a(),c("div",{key:p.text,class:"group"},[m(tr,{item:p,depth:0},null,8,["item"])]))),128)),l(u.$slots,"sidebar-nav-after",{},void 0,!0)])],2)):f("",!0)}}),rr=b(ar,[["__scopeId","data-v-575e6a36"]]),ir=_({__name:"VPSkipLink",setup(o){const e=ee(),t=w();j(()=>e.path,()=>t.value.focus());function n({target:s}){const i=document.getElementById(decodeURIComponent(s.hash).slice(1));if(i){const u=()=>{i.removeAttribute("tabindex"),i.removeEventListener("blur",u)};i.setAttribute("tabindex","-1"),i.addEventListener("blur",u),i.focus(),window.scrollTo(0,0)}}return(s,i)=>(a(),c(M,null,[v("span",{ref_key:"backToTop",ref:t,tabindex:"-1"},null,512),v("a",{href:"#VPContent",class:"VPSkipLink visually-hidden",onClick:n}," Skip to content ")],64))}}),lr=b(ir,[["__scopeId","data-v-0f60ec36"]]),cr=_({__name:"Layout",setup(o){const{isOpen:e,open:t,close:n}=O(),s=ee();j(()=>s.path,n),kt(e,n);const{frontmatter:i}=P(),u=xe(),h=y(()=>!!u["home-hero-image"]);return Ie("hero-image-slot-exists",h),(p,g)=>{const L=q("Content");return r(i).layout!==!1?(a(),c("div",{key:0,class:N(["Layout",r(i).pageClass])},[l(p.$slots,"layout-top",{},void 0,!0),m(lr),m(st,{class:"backdrop",show:r(e),onClick:r(n)},null,8,["show","onClick"]),m(Ja,null,{"nav-bar-title-before":d(()=>[l(p.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":d(()=>[l(p.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":d(()=>[l(p.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":d(()=>[l(p.$slots,"nav-bar-content-after",{},void 0,!0)]),"nav-screen-content-before":d(()=>[l(p.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":d(()=>[l(p.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3}),m(Is,{open:r(e),onOpenMenu:r(t)},null,8,["open","onOpenMenu"]),m(rr,{open:r(e)},{"sidebar-nav-before":d(()=>[l(p.$slots,"sidebar-nav-before",{},void 0,!0)]),"sidebar-nav-after":d(()=>[l(p.$slots,"sidebar-nav-after",{},void 0,!0)]),_:3},8,["open"]),m(ls,null,{"page-top":d(()=>[l(p.$slots,"page-top",{},void 0,!0)]),"page-bottom":d(()=>[l(p.$slots,"page-bottom",{},void 0,!0)]),"not-found":d(()=>[l(p.$slots,"not-found",{},void 0,!0)]),"home-hero-before":d(()=>[l(p.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":d(()=>[l(p.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":d(()=>[l(p.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":d(()=>[l(p.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":d(()=>[l(p.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":d(()=>[l(p.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":d(()=>[l(p.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":d(()=>[l(p.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":d(()=>[l(p.$slots,"home-features-after",{},void 0,!0)]),"doc-footer-before":d(()=>[l(p.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":d(()=>[l(p.$slots,"doc-before",{},void 0,!0)]),"doc-after":d(()=>[l(p.$slots,"doc-after",{},void 0,!0)]),"doc-top":d(()=>[l(p.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":d(()=>[l(p.$slots,"doc-bottom",{},void 0,!0)]),"aside-top":d(()=>[l(p.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":d(()=>[l(p.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":d(()=>[l(p.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":d(()=>[l(p.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":d(()=>[l(p.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":d(()=>[l(p.$slots,"aside-ads-after",{},void 0,!0)]),_:3}),m(ps),l(p.$slots,"layout-bottom",{},void 0,!0)],2)):(a(),$(L,{key:1}))}}}),ur=b(cr,[["__scopeId","data-v-5d98c3a5"]]),vr={Layout:ur,enhanceApp:({app:o})=>{o.component("Badge",et)}};export{Un as c,vr as t,P as u}; +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/chunks/VPLocalSearchBox.I8Z1Bueb.js","assets/chunks/framework.BLMDJhiA.js"])))=>i.map(i=>d[i]); +import{d as _,o as a,c,r as l,n as N,a as D,t as I,b as $,w as d,e as f,T as ve,_ as b,u as Ue,i as Ge,f as je,g as pe,h as y,j as v,k as r,p as B,l as H,m as z,q as ie,s as w,v as j,x as Z,y as R,z as he,A as ye,B as ze,C as qe,D as q,F as M,E,G as Pe,H as x,I as m,J as W,K as Le,L as ee,M as Y,N as te,O as Ke,P as Ve,Q as le,R as We,S as Se,U as oe,V as Re,W as Je,X as Ye,Y as Te,Z as Ie,$ as Qe,a0 as Xe,a1 as Ze,a2 as xe}from"./framework.BLMDJhiA.js";const et=_({__name:"VPBadge",props:{text:{},type:{default:"tip"}},setup(o){return(e,t)=>(a(),c("span",{class:N(["VPBadge",e.type])},[l(e.$slots,"default",{},()=>[D(I(e.text),1)])],2))}}),tt={key:0,class:"VPBackdrop"},ot=_({__name:"VPBackdrop",props:{show:{type:Boolean}},setup(o){return(e,t)=>(a(),$(ve,{name:"fade"},{default:d(()=>[e.show?(a(),c("div",tt)):f("",!0)]),_:1}))}}),st=b(ot,[["__scopeId","data-v-c79a1216"]]),P=Ue;function nt(o,e){let t,n=!1;return()=>{t&&clearTimeout(t),n?t=setTimeout(o,e):(o(),(n=!0)&&setTimeout(()=>n=!1,e))}}function ce(o){return/^\//.test(o)?o:`/${o}`}function fe(o){const{pathname:e,search:t,hash:n,protocol:s}=new URL(o,"http://a.com");if(Ge(o)||o.startsWith("#")||!s.startsWith("http")||!je(e))return o;const{site:i}=P(),u=e.endsWith("/")||e.endsWith(".html")?o:o.replace(/(?:(^\.+)\/)?.*$/,`$1${e.replace(/(\.md)?$/,i.value.cleanUrls?"":".html")}${t}${n}`);return pe(u)}function J({correspondingLink:o=!1}={}){const{site:e,localeIndex:t,page:n,theme:s,hash:i}=P(),u=y(()=>{var p,g;return{label:(p=e.value.locales[t.value])==null?void 0:p.label,link:((g=e.value.locales[t.value])==null?void 0:g.link)||(t.value==="root"?"/":`/${t.value}/`)}});return{localeLinks:y(()=>Object.entries(e.value.locales).flatMap(([p,g])=>u.value.label===g.label?[]:{text:g.label,link:at(g.link||(p==="root"?"/":`/${p}/`),s.value.i18nRouting!==!1&&o,n.value.relativePath.slice(u.value.link.length-1),!e.value.cleanUrls)+i.value})),currentLang:u}}function at(o,e,t,n){return e?o.replace(/\/$/,"")+ce(t.replace(/(^|\/)index\.md$/,"$1").replace(/\.md$/,n?".html":"")):o}const rt=o=>(B("data-v-d6be1790"),o=o(),H(),o),it={class:"NotFound"},lt={class:"code"},ct={class:"title"},ut=rt(()=>v("div",{class:"divider"},null,-1)),dt={class:"quote"},vt={class:"action"},pt=["href","aria-label"],ht=_({__name:"NotFound",setup(o){const{theme:e}=P(),{currentLang:t}=J();return(n,s)=>{var i,u,h,p,g;return a(),c("div",it,[v("p",lt,I(((i=r(e).notFound)==null?void 0:i.code)??"404"),1),v("h1",ct,I(((u=r(e).notFound)==null?void 0:u.title)??"PAGE NOT FOUND"),1),ut,v("blockquote",dt,I(((h=r(e).notFound)==null?void 0:h.quote)??"But if you don't change your direction, and if you keep looking, you may end up where you are heading."),1),v("div",vt,[v("a",{class:"link",href:r(pe)(r(t).link),"aria-label":((p=r(e).notFound)==null?void 0:p.linkLabel)??"go to home"},I(((g=r(e).notFound)==null?void 0:g.linkText)??"Take me home"),9,pt)])])}}}),ft=b(ht,[["__scopeId","data-v-d6be1790"]]);function we(o,e){if(Array.isArray(o))return Q(o);if(o==null)return[];e=ce(e);const t=Object.keys(o).sort((s,i)=>i.split("/").length-s.split("/").length).find(s=>e.startsWith(ce(s))),n=t?o[t]:[];return Array.isArray(n)?Q(n):Q(n.items,n.base)}function _t(o){const e=[];let t=0;for(const n in o){const s=o[n];if(s.items){t=e.push(s);continue}e[t]||e.push({items:[]}),e[t].items.push(s)}return e}function mt(o){const e=[];function t(n){for(const s of n)s.text&&s.link&&e.push({text:s.text,link:s.link,docFooterText:s.docFooterText}),s.items&&t(s.items)}return t(o),e}function ue(o,e){return Array.isArray(e)?e.some(t=>ue(o,t)):z(o,e.link)?!0:e.items?ue(o,e.items):!1}function Q(o,e){return[...o].map(t=>{const n={...t},s=n.base||e;return s&&n.link&&(n.link=s+n.link),n.items&&(n.items=Q(n.items,s)),n})}function O(){const{frontmatter:o,page:e,theme:t}=P(),n=ie("(min-width: 960px)"),s=w(!1),i=y(()=>{const C=t.value.sidebar,S=e.value.relativePath;return C?we(C,S):[]}),u=w(i.value);j(i,(C,S)=>{JSON.stringify(C)!==JSON.stringify(S)&&(u.value=i.value)});const h=y(()=>o.value.sidebar!==!1&&u.value.length>0&&o.value.layout!=="home"),p=y(()=>g?o.value.aside==null?t.value.aside==="left":o.value.aside==="left":!1),g=y(()=>o.value.layout==="home"?!1:o.value.aside!=null?!!o.value.aside:t.value.aside!==!1),L=y(()=>h.value&&n.value),k=y(()=>h.value?_t(u.value):[]);function V(){s.value=!0}function T(){s.value=!1}function A(){s.value?T():V()}return{isOpen:s,sidebar:u,sidebarGroups:k,hasSidebar:h,hasAside:g,leftAside:p,isSidebarEnabled:L,open:V,close:T,toggle:A}}function kt(o,e){let t;Z(()=>{t=o.value?document.activeElement:void 0}),R(()=>{window.addEventListener("keyup",n)}),he(()=>{window.removeEventListener("keyup",n)});function n(s){s.key==="Escape"&&o.value&&(e(),t==null||t.focus())}}function bt(o){const{page:e,hash:t}=P(),n=w(!1),s=y(()=>o.value.collapsed!=null),i=y(()=>!!o.value.link),u=w(!1),h=()=>{u.value=z(e.value.relativePath,o.value.link)};j([e,o,t],h),R(h);const p=y(()=>u.value?!0:o.value.items?ue(e.value.relativePath,o.value.items):!1),g=y(()=>!!(o.value.items&&o.value.items.length));Z(()=>{n.value=!!(s.value&&o.value.collapsed)}),ye(()=>{(u.value||p.value)&&(n.value=!1)});function L(){s.value&&(n.value=!n.value)}return{collapsed:n,collapsible:s,isLink:i,isActiveLink:u,hasActiveLink:p,hasChildren:g,toggle:L}}function $t(){const{hasSidebar:o}=O(),e=ie("(min-width: 960px)"),t=ie("(min-width: 1280px)");return{isAsideEnabled:y(()=>!t.value&&!e.value?!1:o.value?t.value:e.value)}}const de=[];function Ne(o){return typeof o.outline=="object"&&!Array.isArray(o.outline)&&o.outline.label||o.outlineTitle||"On this page"}function _e(o){const e=[...document.querySelectorAll(".VPDoc :where(h1,h2,h3,h4,h5,h6)")].filter(t=>t.id&&t.hasChildNodes()).map(t=>{const n=Number(t.tagName[1]);return{element:t,title:gt(t),link:"#"+t.id,level:n}});return yt(e,o)}function gt(o){let e="";for(const t of o.childNodes)if(t.nodeType===1){if(t.classList.contains("VPBadge")||t.classList.contains("header-anchor")||t.classList.contains("ignore-header"))continue;e+=t.textContent}else t.nodeType===3&&(e+=t.textContent);return e.trim()}function yt(o,e){if(e===!1)return[];const t=(typeof e=="object"&&!Array.isArray(e)?e.level:e)||2,[n,s]=typeof t=="number"?[t,t]:t==="deep"?[2,6]:t;o=o.filter(u=>u.level>=n&&u.level<=s),de.length=0;for(const{element:u,link:h}of o)de.push({element:u,link:h});const i=[];e:for(let u=0;u=0;p--){const g=o[p];if(g.level{requestAnimationFrame(i),window.addEventListener("scroll",n)}),ze(()=>{u(location.hash)}),he(()=>{window.removeEventListener("scroll",n)});function i(){if(!t.value)return;const h=window.scrollY,p=window.innerHeight,g=document.body.offsetHeight,L=Math.abs(h+p-g)<1,k=de.map(({element:T,link:A})=>({link:A,top:Lt(T)})).filter(({top:T})=>!Number.isNaN(T)).sort((T,A)=>T.top-A.top);if(!k.length){u(null);return}if(h<1){u(null);return}if(L){u(k[k.length-1].link);return}let V=null;for(const{link:T,top:A}of k){if(A>h+qe()+4)break;V=T}u(V)}function u(h){s&&s.classList.remove("active"),h==null?s=null:s=o.value.querySelector(`a[href="${decodeURIComponent(h)}"]`);const p=s;p?(p.classList.add("active"),e.value.style.top=p.offsetTop+39+"px",e.value.style.opacity="1"):(e.value.style.top="33px",e.value.style.opacity="0")}}function Lt(o){let e=0;for(;o!==document.body;){if(o===null)return NaN;e+=o.offsetTop,o=o.offsetParent}return e}const Vt=["href","title"],St=_({__name:"VPDocOutlineItem",props:{headers:{},root:{type:Boolean}},setup(o){function e({target:t}){const n=t.href.split("#")[1],s=document.getElementById(decodeURIComponent(n));s==null||s.focus({preventScroll:!0})}return(t,n)=>{const s=q("VPDocOutlineItem",!0);return a(),c("ul",{class:N(["VPDocOutlineItem",t.root?"root":"nested"])},[(a(!0),c(M,null,E(t.headers,({children:i,link:u,title:h})=>(a(),c("li",null,[v("a",{class:"outline-link",href:u,onClick:e,title:h},I(h),9,Vt),i!=null&&i.length?(a(),$(s,{key:0,headers:i},null,8,["headers"])):f("",!0)]))),256))],2)}}}),Me=b(St,[["__scopeId","data-v-b933a997"]]),Tt={class:"content"},It={"aria-level":"2",class:"outline-title",id:"doc-outline-aria-label",role:"heading"},wt=_({__name:"VPDocAsideOutline",setup(o){const{frontmatter:e,theme:t}=P(),n=Pe([]);x(()=>{n.value=_e(e.value.outline??t.value.outline)});const s=w(),i=w();return Pt(s,i),(u,h)=>(a(),c("nav",{"aria-labelledby":"doc-outline-aria-label",class:N(["VPDocAsideOutline",{"has-outline":n.value.length>0}]),ref_key:"container",ref:s},[v("div",Tt,[v("div",{class:"outline-marker",ref_key:"marker",ref:i},null,512),v("div",It,I(r(Ne)(r(t))),1),m(Me,{headers:n.value,root:!0},null,8,["headers"])])],2))}}),Nt=b(wt,[["__scopeId","data-v-a5bbad30"]]),Mt={class:"VPDocAsideCarbonAds"},At=_({__name:"VPDocAsideCarbonAds",props:{carbonAds:{}},setup(o){const e=()=>null;return(t,n)=>(a(),c("div",Mt,[m(r(e),{"carbon-ads":t.carbonAds},null,8,["carbon-ads"])]))}}),Ct=o=>(B("data-v-3f215769"),o=o(),H(),o),Bt={class:"VPDocAside"},Ht=Ct(()=>v("div",{class:"spacer"},null,-1)),Et=_({__name:"VPDocAside",setup(o){const{theme:e}=P();return(t,n)=>(a(),c("div",Bt,[l(t.$slots,"aside-top",{},void 0,!0),l(t.$slots,"aside-outline-before",{},void 0,!0),m(Nt),l(t.$slots,"aside-outline-after",{},void 0,!0),Ht,l(t.$slots,"aside-ads-before",{},void 0,!0),r(e).carbonAds?(a(),$(At,{key:0,"carbon-ads":r(e).carbonAds},null,8,["carbon-ads"])):f("",!0),l(t.$slots,"aside-ads-after",{},void 0,!0),l(t.$slots,"aside-bottom",{},void 0,!0)]))}}),Ft=b(Et,[["__scopeId","data-v-3f215769"]]);function Dt(){const{theme:o,page:e}=P();return y(()=>{const{text:t="Edit this page",pattern:n=""}=o.value.editLink||{};let s;return typeof n=="function"?s=n(e.value):s=n.replace(/:path/g,e.value.filePath),{url:s,text:t}})}function Ot(){const{page:o,theme:e,frontmatter:t}=P();return y(()=>{var g,L,k,V,T,A,C,S;const n=we(e.value.sidebar,o.value.relativePath),s=mt(n),i=Ut(s,U=>U.link.replace(/[?#].*$/,"")),u=i.findIndex(U=>z(o.value.relativePath,U.link)),h=((g=e.value.docFooter)==null?void 0:g.prev)===!1&&!t.value.prev||t.value.prev===!1,p=((L=e.value.docFooter)==null?void 0:L.next)===!1&&!t.value.next||t.value.next===!1;return{prev:h?void 0:{text:(typeof t.value.prev=="string"?t.value.prev:typeof t.value.prev=="object"?t.value.prev.text:void 0)??((k=i[u-1])==null?void 0:k.docFooterText)??((V=i[u-1])==null?void 0:V.text),link:(typeof t.value.prev=="object"?t.value.prev.link:void 0)??((T=i[u-1])==null?void 0:T.link)},next:p?void 0:{text:(typeof t.value.next=="string"?t.value.next:typeof t.value.next=="object"?t.value.next.text:void 0)??((A=i[u+1])==null?void 0:A.docFooterText)??((C=i[u+1])==null?void 0:C.text),link:(typeof t.value.next=="object"?t.value.next.link:void 0)??((S=i[u+1])==null?void 0:S.link)}}})}function Ut(o,e){const t=new Set;return o.filter(n=>{const s=e(n);return t.has(s)?!1:t.add(s)})}const F=_({__name:"VPLink",props:{tag:{},href:{},noIcon:{type:Boolean},target:{},rel:{}},setup(o){const e=o,t=y(()=>e.tag??(e.href?"a":"span")),n=y(()=>e.href&&Le.test(e.href)||e.target==="_blank");return(s,i)=>(a(),$(W(t.value),{class:N(["VPLink",{link:s.href,"vp-external-link-icon":n.value,"no-icon":s.noIcon}]),href:s.href?r(fe)(s.href):void 0,target:s.target??(n.value?"_blank":void 0),rel:s.rel??(n.value?"noreferrer":void 0)},{default:d(()=>[l(s.$slots,"default")]),_:3},8,["class","href","target","rel"]))}}),Gt={class:"VPLastUpdated"},jt=["datetime"],zt=_({__name:"VPDocFooterLastUpdated",setup(o){const{theme:e,page:t,frontmatter:n,lang:s}=P(),i=y(()=>new Date(n.value.lastUpdated??t.value.lastUpdated)),u=y(()=>i.value.toISOString()),h=w("");return R(()=>{Z(()=>{var p,g,L;h.value=new Intl.DateTimeFormat((g=(p=e.value.lastUpdated)==null?void 0:p.formatOptions)!=null&&g.forceLocale?s.value:void 0,((L=e.value.lastUpdated)==null?void 0:L.formatOptions)??{dateStyle:"short",timeStyle:"short"}).format(i.value)})}),(p,g)=>{var L;return a(),c("p",Gt,[D(I(((L=r(e).lastUpdated)==null?void 0:L.text)||r(e).lastUpdatedText||"Last updated")+": ",1),v("time",{datetime:u.value},I(h.value),9,jt)])}}}),qt=b(zt,[["__scopeId","data-v-7e05ebdb"]]),Ae=o=>(B("data-v-d4a0bba5"),o=o(),H(),o),Kt={key:0,class:"VPDocFooter"},Wt={key:0,class:"edit-info"},Rt={key:0,class:"edit-link"},Jt=Ae(()=>v("span",{class:"vpi-square-pen edit-link-icon"},null,-1)),Yt={key:1,class:"last-updated"},Qt={key:1,class:"prev-next","aria-labelledby":"doc-footer-aria-label"},Xt=Ae(()=>v("span",{class:"visually-hidden",id:"doc-footer-aria-label"},"Pager",-1)),Zt={class:"pager"},xt=["innerHTML"],eo=["innerHTML"],to={class:"pager"},oo=["innerHTML"],so=["innerHTML"],no=_({__name:"VPDocFooter",setup(o){const{theme:e,page:t,frontmatter:n}=P(),s=Dt(),i=Ot(),u=y(()=>e.value.editLink&&n.value.editLink!==!1),h=y(()=>t.value.lastUpdated&&n.value.lastUpdated!==!1),p=y(()=>u.value||h.value||i.value.prev||i.value.next);return(g,L)=>{var k,V,T,A;return p.value?(a(),c("footer",Kt,[l(g.$slots,"doc-footer-before",{},void 0,!0),u.value||h.value?(a(),c("div",Wt,[u.value?(a(),c("div",Rt,[m(F,{class:"edit-link-button",href:r(s).url,"no-icon":!0},{default:d(()=>[Jt,D(" "+I(r(s).text),1)]),_:1},8,["href"])])):f("",!0),h.value?(a(),c("div",Yt,[m(qt)])):f("",!0)])):f("",!0),(k=r(i).prev)!=null&&k.link||(V=r(i).next)!=null&&V.link?(a(),c("nav",Qt,[Xt,v("div",Zt,[(T=r(i).prev)!=null&&T.link?(a(),$(F,{key:0,class:"pager-link prev",href:r(i).prev.link},{default:d(()=>{var C;return[v("span",{class:"desc",innerHTML:((C=r(e).docFooter)==null?void 0:C.prev)||"Previous page"},null,8,xt),v("span",{class:"title",innerHTML:r(i).prev.text},null,8,eo)]}),_:1},8,["href"])):f("",!0)]),v("div",to,[(A=r(i).next)!=null&&A.link?(a(),$(F,{key:0,class:"pager-link next",href:r(i).next.link},{default:d(()=>{var C;return[v("span",{class:"desc",innerHTML:((C=r(e).docFooter)==null?void 0:C.next)||"Next page"},null,8,oo),v("span",{class:"title",innerHTML:r(i).next.text},null,8,so)]}),_:1},8,["href"])):f("",!0)])])):f("",!0)])):f("",!0)}}}),ao=b(no,[["__scopeId","data-v-d4a0bba5"]]),ro=o=>(B("data-v-39a288b8"),o=o(),H(),o),io={class:"container"},lo=ro(()=>v("div",{class:"aside-curtain"},null,-1)),co={class:"aside-container"},uo={class:"aside-content"},vo={class:"content"},po={class:"content-container"},ho={class:"main"},fo=_({__name:"VPDoc",setup(o){const{theme:e}=P(),t=ee(),{hasSidebar:n,hasAside:s,leftAside:i}=O(),u=y(()=>t.path.replace(/[./]+/g,"_").replace(/_html$/,""));return(h,p)=>{const g=q("Content");return a(),c("div",{class:N(["VPDoc",{"has-sidebar":r(n),"has-aside":r(s)}])},[l(h.$slots,"doc-top",{},void 0,!0),v("div",io,[r(s)?(a(),c("div",{key:0,class:N(["aside",{"left-aside":r(i)}])},[lo,v("div",co,[v("div",uo,[m(Ft,null,{"aside-top":d(()=>[l(h.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":d(()=>[l(h.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":d(()=>[l(h.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":d(()=>[l(h.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":d(()=>[l(h.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":d(()=>[l(h.$slots,"aside-ads-after",{},void 0,!0)]),_:3})])])],2)):f("",!0),v("div",vo,[v("div",po,[l(h.$slots,"doc-before",{},void 0,!0),v("main",ho,[m(g,{class:N(["vp-doc",[u.value,r(e).externalLinkIcon&&"external-link-icon-enabled"]])},null,8,["class"])]),m(ao,null,{"doc-footer-before":d(()=>[l(h.$slots,"doc-footer-before",{},void 0,!0)]),_:3}),l(h.$slots,"doc-after",{},void 0,!0)])])]),l(h.$slots,"doc-bottom",{},void 0,!0)],2)}}}),_o=b(fo,[["__scopeId","data-v-39a288b8"]]),mo=_({__name:"VPButton",props:{tag:{},size:{default:"medium"},theme:{default:"brand"},text:{},href:{},target:{},rel:{}},setup(o){const e=o,t=y(()=>e.href&&Le.test(e.href)),n=y(()=>e.tag||e.href?"a":"button");return(s,i)=>(a(),$(W(n.value),{class:N(["VPButton",[s.size,s.theme]]),href:s.href?r(fe)(s.href):void 0,target:e.target??(t.value?"_blank":void 0),rel:e.rel??(t.value?"noreferrer":void 0)},{default:d(()=>[D(I(s.text),1)]),_:1},8,["class","href","target","rel"]))}}),ko=b(mo,[["__scopeId","data-v-cad61b99"]]),bo=["src","alt"],$o=_({inheritAttrs:!1,__name:"VPImage",props:{image:{},alt:{}},setup(o){return(e,t)=>{const n=q("VPImage",!0);return e.image?(a(),c(M,{key:0},[typeof e.image=="string"||"src"in e.image?(a(),c("img",Y({key:0,class:"VPImage"},typeof e.image=="string"?e.$attrs:{...e.image,...e.$attrs},{src:r(pe)(typeof e.image=="string"?e.image:e.image.src),alt:e.alt??(typeof e.image=="string"?"":e.image.alt||"")}),null,16,bo)):(a(),c(M,{key:1},[m(n,Y({class:"dark",image:e.image.dark,alt:e.image.alt},e.$attrs),null,16,["image","alt"]),m(n,Y({class:"light",image:e.image.light,alt:e.image.alt},e.$attrs),null,16,["image","alt"])],64))],64)):f("",!0)}}}),X=b($o,[["__scopeId","data-v-8426fc1a"]]),go=o=>(B("data-v-303bb580"),o=o(),H(),o),yo={class:"container"},Po={class:"main"},Lo={key:0,class:"name"},Vo=["innerHTML"],So=["innerHTML"],To=["innerHTML"],Io={key:0,class:"actions"},wo={key:0,class:"image"},No={class:"image-container"},Mo=go(()=>v("div",{class:"image-bg"},null,-1)),Ao=_({__name:"VPHero",props:{name:{},text:{},tagline:{},image:{},actions:{}},setup(o){const e=te("hero-image-slot-exists");return(t,n)=>(a(),c("div",{class:N(["VPHero",{"has-image":t.image||r(e)}])},[v("div",yo,[v("div",Po,[l(t.$slots,"home-hero-info-before",{},void 0,!0),l(t.$slots,"home-hero-info",{},()=>[t.name?(a(),c("h1",Lo,[v("span",{innerHTML:t.name,class:"clip"},null,8,Vo)])):f("",!0),t.text?(a(),c("p",{key:1,innerHTML:t.text,class:"text"},null,8,So)):f("",!0),t.tagline?(a(),c("p",{key:2,innerHTML:t.tagline,class:"tagline"},null,8,To)):f("",!0)],!0),l(t.$slots,"home-hero-info-after",{},void 0,!0),t.actions?(a(),c("div",Io,[(a(!0),c(M,null,E(t.actions,s=>(a(),c("div",{key:s.link,class:"action"},[m(ko,{tag:"a",size:"medium",theme:s.theme,text:s.text,href:s.link,target:s.target,rel:s.rel},null,8,["theme","text","href","target","rel"])]))),128))])):f("",!0),l(t.$slots,"home-hero-actions-after",{},void 0,!0)]),t.image||r(e)?(a(),c("div",wo,[v("div",No,[Mo,l(t.$slots,"home-hero-image",{},()=>[t.image?(a(),$(X,{key:0,class:"image-src",image:t.image},null,8,["image"])):f("",!0)],!0)])])):f("",!0)])],2))}}),Co=b(Ao,[["__scopeId","data-v-303bb580"]]),Bo=_({__name:"VPHomeHero",setup(o){const{frontmatter:e}=P();return(t,n)=>r(e).hero?(a(),$(Co,{key:0,class:"VPHomeHero",name:r(e).hero.name,text:r(e).hero.text,tagline:r(e).hero.tagline,image:r(e).hero.image,actions:r(e).hero.actions},{"home-hero-info-before":d(()=>[l(t.$slots,"home-hero-info-before")]),"home-hero-info":d(()=>[l(t.$slots,"home-hero-info")]),"home-hero-info-after":d(()=>[l(t.$slots,"home-hero-info-after")]),"home-hero-actions-after":d(()=>[l(t.$slots,"home-hero-actions-after")]),"home-hero-image":d(()=>[l(t.$slots,"home-hero-image")]),_:3},8,["name","text","tagline","image","actions"])):f("",!0)}}),Ho=o=>(B("data-v-a3976bdc"),o=o(),H(),o),Eo={class:"box"},Fo={key:0,class:"icon"},Do=["innerHTML"],Oo=["innerHTML"],Uo=["innerHTML"],Go={key:4,class:"link-text"},jo={class:"link-text-value"},zo=Ho(()=>v("span",{class:"vpi-arrow-right link-text-icon"},null,-1)),qo=_({__name:"VPFeature",props:{icon:{},title:{},details:{},link:{},linkText:{},rel:{},target:{}},setup(o){return(e,t)=>(a(),$(F,{class:"VPFeature",href:e.link,rel:e.rel,target:e.target,"no-icon":!0,tag:e.link?"a":"div"},{default:d(()=>[v("article",Eo,[typeof e.icon=="object"&&e.icon.wrap?(a(),c("div",Fo,[m(X,{image:e.icon,alt:e.icon.alt,height:e.icon.height||48,width:e.icon.width||48},null,8,["image","alt","height","width"])])):typeof e.icon=="object"?(a(),$(X,{key:1,image:e.icon,alt:e.icon.alt,height:e.icon.height||48,width:e.icon.width||48},null,8,["image","alt","height","width"])):e.icon?(a(),c("div",{key:2,class:"icon",innerHTML:e.icon},null,8,Do)):f("",!0),v("h2",{class:"title",innerHTML:e.title},null,8,Oo),e.details?(a(),c("p",{key:3,class:"details",innerHTML:e.details},null,8,Uo)):f("",!0),e.linkText?(a(),c("div",Go,[v("p",jo,[D(I(e.linkText)+" ",1),zo])])):f("",!0)])]),_:1},8,["href","rel","target","tag"]))}}),Ko=b(qo,[["__scopeId","data-v-a3976bdc"]]),Wo={key:0,class:"VPFeatures"},Ro={class:"container"},Jo={class:"items"},Yo=_({__name:"VPFeatures",props:{features:{}},setup(o){const e=o,t=y(()=>{const n=e.features.length;if(n){if(n===2)return"grid-2";if(n===3)return"grid-3";if(n%3===0)return"grid-6";if(n>3)return"grid-4"}else return});return(n,s)=>n.features?(a(),c("div",Wo,[v("div",Ro,[v("div",Jo,[(a(!0),c(M,null,E(n.features,i=>(a(),c("div",{key:i.title,class:N(["item",[t.value]])},[m(Ko,{icon:i.icon,title:i.title,details:i.details,link:i.link,"link-text":i.linkText,rel:i.rel,target:i.target},null,8,["icon","title","details","link","link-text","rel","target"])],2))),128))])])])):f("",!0)}}),Qo=b(Yo,[["__scopeId","data-v-a6181336"]]),Xo=_({__name:"VPHomeFeatures",setup(o){const{frontmatter:e}=P();return(t,n)=>r(e).features?(a(),$(Qo,{key:0,class:"VPHomeFeatures",features:r(e).features},null,8,["features"])):f("",!0)}}),Zo=_({__name:"VPHomeContent",setup(o){const{width:e}=Ke({initialWidth:0,includeScrollbar:!1});return(t,n)=>(a(),c("div",{class:"vp-doc container",style:Ve(r(e)?{"--vp-offset":`calc(50% - ${r(e)/2}px)`}:{})},[l(t.$slots,"default",{},void 0,!0)],4))}}),xo=b(Zo,[["__scopeId","data-v-8e2d4988"]]),es={class:"VPHome"},ts=_({__name:"VPHome",setup(o){const{frontmatter:e}=P();return(t,n)=>{const s=q("Content");return a(),c("div",es,[l(t.$slots,"home-hero-before",{},void 0,!0),m(Bo,null,{"home-hero-info-before":d(()=>[l(t.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":d(()=>[l(t.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":d(()=>[l(t.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":d(()=>[l(t.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":d(()=>[l(t.$slots,"home-hero-image",{},void 0,!0)]),_:3}),l(t.$slots,"home-hero-after",{},void 0,!0),l(t.$slots,"home-features-before",{},void 0,!0),m(Xo),l(t.$slots,"home-features-after",{},void 0,!0),r(e).markdownStyles!==!1?(a(),$(xo,{key:0},{default:d(()=>[m(s)]),_:1})):(a(),$(s,{key:1}))])}}}),os=b(ts,[["__scopeId","data-v-686f80a6"]]),ss={},ns={class:"VPPage"};function as(o,e){const t=q("Content");return a(),c("div",ns,[l(o.$slots,"page-top"),m(t),l(o.$slots,"page-bottom")])}const rs=b(ss,[["render",as]]),is=_({__name:"VPContent",setup(o){const{page:e,frontmatter:t}=P(),{hasSidebar:n}=O();return(s,i)=>(a(),c("div",{class:N(["VPContent",{"has-sidebar":r(n),"is-home":r(t).layout==="home"}]),id:"VPContent"},[r(e).isNotFound?l(s.$slots,"not-found",{key:0},()=>[m(ft)],!0):r(t).layout==="page"?(a(),$(rs,{key:1},{"page-top":d(()=>[l(s.$slots,"page-top",{},void 0,!0)]),"page-bottom":d(()=>[l(s.$slots,"page-bottom",{},void 0,!0)]),_:3})):r(t).layout==="home"?(a(),$(os,{key:2},{"home-hero-before":d(()=>[l(s.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":d(()=>[l(s.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":d(()=>[l(s.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":d(()=>[l(s.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":d(()=>[l(s.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":d(()=>[l(s.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":d(()=>[l(s.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":d(()=>[l(s.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":d(()=>[l(s.$slots,"home-features-after",{},void 0,!0)]),_:3})):r(t).layout&&r(t).layout!=="doc"?(a(),$(W(r(t).layout),{key:3})):(a(),$(_o,{key:4},{"doc-top":d(()=>[l(s.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":d(()=>[l(s.$slots,"doc-bottom",{},void 0,!0)]),"doc-footer-before":d(()=>[l(s.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":d(()=>[l(s.$slots,"doc-before",{},void 0,!0)]),"doc-after":d(()=>[l(s.$slots,"doc-after",{},void 0,!0)]),"aside-top":d(()=>[l(s.$slots,"aside-top",{},void 0,!0)]),"aside-outline-before":d(()=>[l(s.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":d(()=>[l(s.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":d(()=>[l(s.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":d(()=>[l(s.$slots,"aside-ads-after",{},void 0,!0)]),"aside-bottom":d(()=>[l(s.$slots,"aside-bottom",{},void 0,!0)]),_:3}))],2))}}),ls=b(is,[["__scopeId","data-v-1428d186"]]),cs={class:"container"},us=["innerHTML"],ds=["innerHTML"],vs=_({__name:"VPFooter",setup(o){const{theme:e,frontmatter:t}=P(),{hasSidebar:n}=O();return(s,i)=>r(e).footer&&r(t).footer!==!1?(a(),c("footer",{key:0,class:N(["VPFooter",{"has-sidebar":r(n)}])},[v("div",cs,[r(e).footer.message?(a(),c("p",{key:0,class:"message",innerHTML:r(e).footer.message},null,8,us)):f("",!0),r(e).footer.copyright?(a(),c("p",{key:1,class:"copyright",innerHTML:r(e).footer.copyright},null,8,ds)):f("",!0)])],2)):f("",!0)}}),ps=b(vs,[["__scopeId","data-v-e315a0ad"]]);function hs(){const{theme:o,frontmatter:e}=P(),t=Pe([]),n=y(()=>t.value.length>0);return x(()=>{t.value=_e(e.value.outline??o.value.outline)}),{headers:t,hasLocalNav:n}}const fs=o=>(B("data-v-17a5e62e"),o=o(),H(),o),_s={class:"menu-text"},ms=fs(()=>v("span",{class:"vpi-chevron-right icon"},null,-1)),ks={class:"header"},bs={class:"outline"},$s=_({__name:"VPLocalNavOutlineDropdown",props:{headers:{},navHeight:{}},setup(o){const e=o,{theme:t}=P(),n=w(!1),s=w(0),i=w(),u=w();function h(k){var V;(V=i.value)!=null&&V.contains(k.target)||(n.value=!1)}j(n,k=>{if(k){document.addEventListener("click",h);return}document.removeEventListener("click",h)}),le("Escape",()=>{n.value=!1}),x(()=>{n.value=!1});function p(){n.value=!n.value,s.value=window.innerHeight+Math.min(window.scrollY-e.navHeight,0)}function g(k){k.target.classList.contains("outline-link")&&(u.value&&(u.value.style.transition="none"),We(()=>{n.value=!1}))}function L(){n.value=!1,window.scrollTo({top:0,left:0,behavior:"smooth"})}return(k,V)=>(a(),c("div",{class:"VPLocalNavOutlineDropdown",style:Ve({"--vp-vh":s.value+"px"}),ref_key:"main",ref:i},[k.headers.length>0?(a(),c("button",{key:0,onClick:p,class:N({open:n.value})},[v("span",_s,I(r(Ne)(r(t))),1),ms],2)):(a(),c("button",{key:1,onClick:L},I(r(t).returnToTopLabel||"Return to top"),1)),m(ve,{name:"flyout"},{default:d(()=>[n.value?(a(),c("div",{key:0,ref_key:"items",ref:u,class:"items",onClick:g},[v("div",ks,[v("a",{class:"top-link",href:"#",onClick:L},I(r(t).returnToTopLabel||"Return to top"),1)]),v("div",bs,[m(Me,{headers:k.headers},null,8,["headers"])])],512)):f("",!0)]),_:1})],4))}}),gs=b($s,[["__scopeId","data-v-17a5e62e"]]),ys=o=>(B("data-v-a6f0e41e"),o=o(),H(),o),Ps={class:"container"},Ls=["aria-expanded"],Vs=ys(()=>v("span",{class:"vpi-align-left menu-icon"},null,-1)),Ss={class:"menu-text"},Ts=_({__name:"VPLocalNav",props:{open:{type:Boolean}},emits:["open-menu"],setup(o){const{theme:e,frontmatter:t}=P(),{hasSidebar:n}=O(),{headers:s}=hs(),{y:i}=Se(),u=w(0);R(()=>{u.value=parseInt(getComputedStyle(document.documentElement).getPropertyValue("--vp-nav-height"))}),x(()=>{s.value=_e(t.value.outline??e.value.outline)});const h=y(()=>s.value.length===0),p=y(()=>h.value&&!n.value),g=y(()=>({VPLocalNav:!0,"has-sidebar":n.value,empty:h.value,fixed:p.value}));return(L,k)=>r(t).layout!=="home"&&(!p.value||r(i)>=u.value)?(a(),c("div",{key:0,class:N(g.value)},[v("div",Ps,[r(n)?(a(),c("button",{key:0,class:"menu","aria-expanded":L.open,"aria-controls":"VPSidebarNav",onClick:k[0]||(k[0]=V=>L.$emit("open-menu"))},[Vs,v("span",Ss,I(r(e).sidebarMenuLabel||"Menu"),1)],8,Ls)):f("",!0),m(gs,{headers:r(s),navHeight:u.value},null,8,["headers","navHeight"])])],2)):f("",!0)}}),Is=b(Ts,[["__scopeId","data-v-a6f0e41e"]]);function ws(){const o=w(!1);function e(){o.value=!0,window.addEventListener("resize",s)}function t(){o.value=!1,window.removeEventListener("resize",s)}function n(){o.value?t():e()}function s(){window.outerWidth>=768&&t()}const i=ee();return j(()=>i.path,t),{isScreenOpen:o,openScreen:e,closeScreen:t,toggleScreen:n}}const Ns={},Ms={class:"VPSwitch",type:"button",role:"switch"},As={class:"check"},Cs={key:0,class:"icon"};function Bs(o,e){return a(),c("button",Ms,[v("span",As,[o.$slots.default?(a(),c("span",Cs,[l(o.$slots,"default",{},void 0,!0)])):f("",!0)])])}const Hs=b(Ns,[["render",Bs],["__scopeId","data-v-1d5665e3"]]),Ce=o=>(B("data-v-d1f28634"),o=o(),H(),o),Es=Ce(()=>v("span",{class:"vpi-sun sun"},null,-1)),Fs=Ce(()=>v("span",{class:"vpi-moon moon"},null,-1)),Ds=_({__name:"VPSwitchAppearance",setup(o){const{isDark:e,theme:t}=P(),n=te("toggle-appearance",()=>{e.value=!e.value}),s=y(()=>e.value?t.value.lightModeSwitchTitle||"Switch to light theme":t.value.darkModeSwitchTitle||"Switch to dark theme");return(i,u)=>(a(),$(Hs,{title:s.value,class:"VPSwitchAppearance","aria-checked":r(e),onClick:r(n)},{default:d(()=>[Es,Fs]),_:1},8,["title","aria-checked","onClick"]))}}),me=b(Ds,[["__scopeId","data-v-d1f28634"]]),Os={key:0,class:"VPNavBarAppearance"},Us=_({__name:"VPNavBarAppearance",setup(o){const{site:e}=P();return(t,n)=>r(e).appearance&&r(e).appearance!=="force-dark"?(a(),c("div",Os,[m(me)])):f("",!0)}}),Gs=b(Us,[["__scopeId","data-v-e6aabb21"]]),ke=w();let Be=!1,re=0;function js(o){const e=w(!1);if(oe){!Be&&zs(),re++;const t=j(ke,n=>{var s,i,u;n===o.el.value||(s=o.el.value)!=null&&s.contains(n)?(e.value=!0,(i=o.onFocus)==null||i.call(o)):(e.value=!1,(u=o.onBlur)==null||u.call(o))});he(()=>{t(),re--,re||qs()})}return Re(e)}function zs(){document.addEventListener("focusin",He),Be=!0,ke.value=document.activeElement}function qs(){document.removeEventListener("focusin",He)}function He(){ke.value=document.activeElement}const Ks={class:"VPMenuLink"},Ws=_({__name:"VPMenuLink",props:{item:{}},setup(o){const{page:e}=P();return(t,n)=>(a(),c("div",Ks,[m(F,{class:N({active:r(z)(r(e).relativePath,t.item.activeMatch||t.item.link,!!t.item.activeMatch)}),href:t.item.link,target:t.item.target,rel:t.item.rel},{default:d(()=>[D(I(t.item.text),1)]),_:1},8,["class","href","target","rel"])]))}}),se=b(Ws,[["__scopeId","data-v-43f1e123"]]),Rs={class:"VPMenuGroup"},Js={key:0,class:"title"},Ys=_({__name:"VPMenuGroup",props:{text:{},items:{}},setup(o){return(e,t)=>(a(),c("div",Rs,[e.text?(a(),c("p",Js,I(e.text),1)):f("",!0),(a(!0),c(M,null,E(e.items,n=>(a(),c(M,null,["link"in n?(a(),$(se,{key:0,item:n},null,8,["item"])):f("",!0)],64))),256))]))}}),Qs=b(Ys,[["__scopeId","data-v-69e747b5"]]),Xs={class:"VPMenu"},Zs={key:0,class:"items"},xs=_({__name:"VPMenu",props:{items:{}},setup(o){return(e,t)=>(a(),c("div",Xs,[e.items?(a(),c("div",Zs,[(a(!0),c(M,null,E(e.items,n=>(a(),c(M,{key:n.text},["link"in n?(a(),$(se,{key:0,item:n},null,8,["item"])):(a(),$(Qs,{key:1,text:n.text,items:n.items},null,8,["text","items"]))],64))),128))])):f("",!0),l(e.$slots,"default",{},void 0,!0)]))}}),en=b(xs,[["__scopeId","data-v-e7ea1737"]]),tn=o=>(B("data-v-b6c34ac9"),o=o(),H(),o),on=["aria-expanded","aria-label"],sn={key:0,class:"text"},nn=["innerHTML"],an=tn(()=>v("span",{class:"vpi-chevron-down text-icon"},null,-1)),rn={key:1,class:"vpi-more-horizontal icon"},ln={class:"menu"},cn=_({__name:"VPFlyout",props:{icon:{},button:{},label:{},items:{}},setup(o){const e=w(!1),t=w();js({el:t,onBlur:n});function n(){e.value=!1}return(s,i)=>(a(),c("div",{class:"VPFlyout",ref_key:"el",ref:t,onMouseenter:i[1]||(i[1]=u=>e.value=!0),onMouseleave:i[2]||(i[2]=u=>e.value=!1)},[v("button",{type:"button",class:"button","aria-haspopup":"true","aria-expanded":e.value,"aria-label":s.label,onClick:i[0]||(i[0]=u=>e.value=!e.value)},[s.button||s.icon?(a(),c("span",sn,[s.icon?(a(),c("span",{key:0,class:N([s.icon,"option-icon"])},null,2)):f("",!0),s.button?(a(),c("span",{key:1,innerHTML:s.button},null,8,nn)):f("",!0),an])):(a(),c("span",rn))],8,on),v("div",ln,[m(en,{items:s.items},{default:d(()=>[l(s.$slots,"default",{},void 0,!0)]),_:3},8,["items"])])],544))}}),be=b(cn,[["__scopeId","data-v-b6c34ac9"]]),un=["href","aria-label","innerHTML"],dn=_({__name:"VPSocialLink",props:{icon:{},link:{},ariaLabel:{}},setup(o){const e=o,t=y(()=>typeof e.icon=="object"?e.icon.svg:``);return(n,s)=>(a(),c("a",{class:"VPSocialLink no-icon",href:n.link,"aria-label":n.ariaLabel??(typeof n.icon=="string"?n.icon:""),target:"_blank",rel:"noopener",innerHTML:t.value},null,8,un))}}),vn=b(dn,[["__scopeId","data-v-eee4e7cb"]]),pn={class:"VPSocialLinks"},hn=_({__name:"VPSocialLinks",props:{links:{}},setup(o){return(e,t)=>(a(),c("div",pn,[(a(!0),c(M,null,E(e.links,({link:n,icon:s,ariaLabel:i})=>(a(),$(vn,{key:n,icon:s,link:n,ariaLabel:i},null,8,["icon","link","ariaLabel"]))),128))]))}}),$e=b(hn,[["__scopeId","data-v-7bc22406"]]),fn={key:0,class:"group translations"},_n={class:"trans-title"},mn={key:1,class:"group"},kn={class:"item appearance"},bn={class:"label"},$n={class:"appearance-action"},gn={key:2,class:"group"},yn={class:"item social-links"},Pn=_({__name:"VPNavBarExtra",setup(o){const{site:e,theme:t}=P(),{localeLinks:n,currentLang:s}=J({correspondingLink:!0}),i=y(()=>n.value.length&&s.value.label||e.value.appearance||t.value.socialLinks);return(u,h)=>i.value?(a(),$(be,{key:0,class:"VPNavBarExtra",label:"extra navigation"},{default:d(()=>[r(n).length&&r(s).label?(a(),c("div",fn,[v("p",_n,I(r(s).label),1),(a(!0),c(M,null,E(r(n),p=>(a(),$(se,{key:p.link,item:p},null,8,["item"]))),128))])):f("",!0),r(e).appearance&&r(e).appearance!=="force-dark"?(a(),c("div",mn,[v("div",kn,[v("p",bn,I(r(t).darkModeSwitchLabel||"Appearance"),1),v("div",$n,[m(me)])])])):f("",!0),r(t).socialLinks?(a(),c("div",gn,[v("div",yn,[m($e,{class:"social-links-list",links:r(t).socialLinks},null,8,["links"])])])):f("",!0)]),_:1})):f("",!0)}}),Ln=b(Pn,[["__scopeId","data-v-d0bd9dde"]]),Vn=o=>(B("data-v-e5dd9c1c"),o=o(),H(),o),Sn=["aria-expanded"],Tn=Vn(()=>v("span",{class:"container"},[v("span",{class:"top"}),v("span",{class:"middle"}),v("span",{class:"bottom"})],-1)),In=[Tn],wn=_({__name:"VPNavBarHamburger",props:{active:{type:Boolean}},emits:["click"],setup(o){return(e,t)=>(a(),c("button",{type:"button",class:N(["VPNavBarHamburger",{active:e.active}]),"aria-label":"mobile navigation","aria-expanded":e.active,"aria-controls":"VPNavScreen",onClick:t[0]||(t[0]=n=>e.$emit("click"))},In,10,Sn))}}),Nn=b(wn,[["__scopeId","data-v-e5dd9c1c"]]),Mn=["innerHTML"],An=_({__name:"VPNavBarMenuLink",props:{item:{}},setup(o){const{page:e}=P();return(t,n)=>(a(),$(F,{class:N({VPNavBarMenuLink:!0,active:r(z)(r(e).relativePath,t.item.activeMatch||t.item.link,!!t.item.activeMatch)}),href:t.item.link,noIcon:t.item.noIcon,target:t.item.target,rel:t.item.rel,tabindex:"0"},{default:d(()=>[v("span",{innerHTML:t.item.text},null,8,Mn)]),_:1},8,["class","href","noIcon","target","rel"]))}}),Cn=b(An,[["__scopeId","data-v-9c663999"]]),Bn=_({__name:"VPNavBarMenuGroup",props:{item:{}},setup(o){const e=o,{page:t}=P(),n=i=>"link"in i?z(t.value.relativePath,i.link,!!e.item.activeMatch):i.items.some(n),s=y(()=>n(e.item));return(i,u)=>(a(),$(be,{class:N({VPNavBarMenuGroup:!0,active:r(z)(r(t).relativePath,i.item.activeMatch,!!i.item.activeMatch)||s.value}),button:i.item.text,items:i.item.items},null,8,["class","button","items"]))}}),Hn=o=>(B("data-v-7f418b0f"),o=o(),H(),o),En={key:0,"aria-labelledby":"main-nav-aria-label",class:"VPNavBarMenu"},Fn=Hn(()=>v("span",{id:"main-nav-aria-label",class:"visually-hidden"},"Main Navigation",-1)),Dn=_({__name:"VPNavBarMenu",setup(o){const{theme:e}=P();return(t,n)=>r(e).nav?(a(),c("nav",En,[Fn,(a(!0),c(M,null,E(r(e).nav,s=>(a(),c(M,{key:s.text},["link"in s?(a(),$(Cn,{key:0,item:s},null,8,["item"])):(a(),$(Bn,{key:1,item:s},null,8,["item"]))],64))),128))])):f("",!0)}}),On=b(Dn,[["__scopeId","data-v-7f418b0f"]]);function Un(o){const{localeIndex:e,theme:t}=P();function n(s){var A,C,S;const i=s.split("."),u=(A=t.value.search)==null?void 0:A.options,h=u&&typeof u=="object",p=h&&((S=(C=u.locales)==null?void 0:C[e.value])==null?void 0:S.translations)||null,g=h&&u.translations||null;let L=p,k=g,V=o;const T=i.pop();for(const U of i){let G=null;const K=V==null?void 0:V[U];K&&(G=V=K);const ne=k==null?void 0:k[U];ne&&(G=k=ne);const ae=L==null?void 0:L[U];ae&&(G=L=ae),K||(V=G),ne||(k=G),ae||(L=G)}return(L==null?void 0:L[T])??(k==null?void 0:k[T])??(V==null?void 0:V[T])??""}return n}const Gn=["aria-label"],jn={class:"DocSearch-Button-Container"},zn=v("span",{class:"vp-icon DocSearch-Search-Icon"},null,-1),qn={class:"DocSearch-Button-Placeholder"},Kn=v("span",{class:"DocSearch-Button-Keys"},[v("kbd",{class:"DocSearch-Button-Key"}),v("kbd",{class:"DocSearch-Button-Key"},"K")],-1),ge=_({__name:"VPNavBarSearchButton",setup(o){const t=Un({button:{buttonText:"Search",buttonAriaLabel:"Search"}});return(n,s)=>(a(),c("button",{type:"button",class:"DocSearch DocSearch-Button","aria-label":r(t)("button.buttonAriaLabel")},[v("span",jn,[zn,v("span",qn,I(r(t)("button.buttonText")),1)]),Kn],8,Gn))}}),Wn={class:"VPNavBarSearch"},Rn={id:"local-search"},Jn={key:1,id:"docsearch"},Yn=_({__name:"VPNavBarSearch",setup(o){const e=Je(()=>Ye(()=>import("./VPLocalSearchBox.I8Z1Bueb.js"),__vite__mapDeps([0,1]))),t=()=>null,{theme:n}=P(),s=w(!1),i=w(!1);R(()=>{});function u(){s.value||(s.value=!0,setTimeout(h,16))}function h(){const k=new Event("keydown");k.key="k",k.metaKey=!0,window.dispatchEvent(k),setTimeout(()=>{document.querySelector(".DocSearch-Modal")||h()},16)}function p(k){const V=k.target,T=V.tagName;return V.isContentEditable||T==="INPUT"||T==="SELECT"||T==="TEXTAREA"}const g=w(!1);le("k",k=>{(k.ctrlKey||k.metaKey)&&(k.preventDefault(),g.value=!0)}),le("/",k=>{p(k)||(k.preventDefault(),g.value=!0)});const L="local";return(k,V)=>{var T;return a(),c("div",Wn,[r(L)==="local"?(a(),c(M,{key:0},[g.value?(a(),$(r(e),{key:0,onClose:V[0]||(V[0]=A=>g.value=!1)})):f("",!0),v("div",Rn,[m(ge,{onClick:V[1]||(V[1]=A=>g.value=!0)})])],64)):r(L)==="algolia"?(a(),c(M,{key:1},[s.value?(a(),$(r(t),{key:0,algolia:((T=r(n).search)==null?void 0:T.options)??r(n).algolia,onVnodeBeforeMount:V[2]||(V[2]=A=>i.value=!0)},null,8,["algolia"])):f("",!0),i.value?f("",!0):(a(),c("div",Jn,[m(ge,{onClick:u})]))],64)):f("",!0)])}}}),Qn=_({__name:"VPNavBarSocialLinks",setup(o){const{theme:e}=P();return(t,n)=>r(e).socialLinks?(a(),$($e,{key:0,class:"VPNavBarSocialLinks",links:r(e).socialLinks},null,8,["links"])):f("",!0)}}),Xn=b(Qn,[["__scopeId","data-v-0394ad82"]]),Zn=["href","rel","target"],xn={key:1},ea={key:2},ta=_({__name:"VPNavBarTitle",setup(o){const{site:e,theme:t}=P(),{hasSidebar:n}=O(),{currentLang:s}=J(),i=y(()=>{var p;return typeof t.value.logoLink=="string"?t.value.logoLink:(p=t.value.logoLink)==null?void 0:p.link}),u=y(()=>{var p;return typeof t.value.logoLink=="string"||(p=t.value.logoLink)==null?void 0:p.rel}),h=y(()=>{var p;return typeof t.value.logoLink=="string"||(p=t.value.logoLink)==null?void 0:p.target});return(p,g)=>(a(),c("div",{class:N(["VPNavBarTitle",{"has-sidebar":r(n)}])},[v("a",{class:"title",href:i.value??r(fe)(r(s).link),rel:u.value,target:h.value},[l(p.$slots,"nav-bar-title-before",{},void 0,!0),r(t).logo?(a(),$(X,{key:0,class:"logo",image:r(t).logo},null,8,["image"])):f("",!0),r(t).siteTitle?(a(),c("span",xn,I(r(t).siteTitle),1)):r(t).siteTitle===void 0?(a(),c("span",ea,I(r(e).title),1)):f("",!0),l(p.$slots,"nav-bar-title-after",{},void 0,!0)],8,Zn)],2))}}),oa=b(ta,[["__scopeId","data-v-ab179fa1"]]),sa={class:"items"},na={class:"title"},aa=_({__name:"VPNavBarTranslations",setup(o){const{theme:e}=P(),{localeLinks:t,currentLang:n}=J({correspondingLink:!0});return(s,i)=>r(t).length&&r(n).label?(a(),$(be,{key:0,class:"VPNavBarTranslations",icon:"vpi-languages",label:r(e).langMenuLabel||"Change language"},{default:d(()=>[v("div",sa,[v("p",na,I(r(n).label),1),(a(!0),c(M,null,E(r(t),u=>(a(),$(se,{key:u.link,item:u},null,8,["item"]))),128))])]),_:1},8,["label"])):f("",!0)}}),ra=b(aa,[["__scopeId","data-v-88af2de4"]]),ia=o=>(B("data-v-ccf7ddec"),o=o(),H(),o),la={class:"wrapper"},ca={class:"container"},ua={class:"title"},da={class:"content"},va={class:"content-body"},pa=ia(()=>v("div",{class:"divider"},[v("div",{class:"divider-line"})],-1)),ha=_({__name:"VPNavBar",props:{isScreenOpen:{type:Boolean}},emits:["toggle-screen"],setup(o){const{y:e}=Se(),{hasSidebar:t}=O(),{frontmatter:n}=P(),s=w({});return ye(()=>{s.value={"has-sidebar":t.value,home:n.value.layout==="home",top:e.value===0}}),(i,u)=>(a(),c("div",{class:N(["VPNavBar",s.value])},[v("div",la,[v("div",ca,[v("div",ua,[m(oa,null,{"nav-bar-title-before":d(()=>[l(i.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":d(()=>[l(i.$slots,"nav-bar-title-after",{},void 0,!0)]),_:3})]),v("div",da,[v("div",va,[l(i.$slots,"nav-bar-content-before",{},void 0,!0),m(Yn,{class:"search"}),m(On,{class:"menu"}),m(ra,{class:"translations"}),m(Gs,{class:"appearance"}),m(Xn,{class:"social-links"}),m(Ln,{class:"extra"}),l(i.$slots,"nav-bar-content-after",{},void 0,!0),m(Nn,{class:"hamburger",active:i.isScreenOpen,onClick:u[0]||(u[0]=h=>i.$emit("toggle-screen"))},null,8,["active"])])])])]),pa],2))}}),fa=b(ha,[["__scopeId","data-v-ccf7ddec"]]),_a={key:0,class:"VPNavScreenAppearance"},ma={class:"text"},ka=_({__name:"VPNavScreenAppearance",setup(o){const{site:e,theme:t}=P();return(n,s)=>r(e).appearance&&r(e).appearance!=="force-dark"?(a(),c("div",_a,[v("p",ma,I(r(t).darkModeSwitchLabel||"Appearance"),1),m(me)])):f("",!0)}}),ba=b(ka,[["__scopeId","data-v-2d7af913"]]),$a=_({__name:"VPNavScreenMenuLink",props:{item:{}},setup(o){const e=te("close-screen");return(t,n)=>(a(),$(F,{class:"VPNavScreenMenuLink",href:t.item.link,target:t.item.target,rel:t.item.rel,onClick:r(e),innerHTML:t.item.text},null,8,["href","target","rel","onClick","innerHTML"]))}}),ga=b($a,[["__scopeId","data-v-7f31e1f6"]]),ya=_({__name:"VPNavScreenMenuGroupLink",props:{item:{}},setup(o){const e=te("close-screen");return(t,n)=>(a(),$(F,{class:"VPNavScreenMenuGroupLink",href:t.item.link,target:t.item.target,rel:t.item.rel,onClick:r(e)},{default:d(()=>[D(I(t.item.text),1)]),_:1},8,["href","target","rel","onClick"]))}}),Ee=b(ya,[["__scopeId","data-v-19976ae1"]]),Pa={class:"VPNavScreenMenuGroupSection"},La={key:0,class:"title"},Va=_({__name:"VPNavScreenMenuGroupSection",props:{text:{},items:{}},setup(o){return(e,t)=>(a(),c("div",Pa,[e.text?(a(),c("p",La,I(e.text),1)):f("",!0),(a(!0),c(M,null,E(e.items,n=>(a(),$(Ee,{key:n.text,item:n},null,8,["item"]))),128))]))}}),Sa=b(Va,[["__scopeId","data-v-8133b170"]]),Ta=o=>(B("data-v-ff6087d4"),o=o(),H(),o),Ia=["aria-controls","aria-expanded"],wa=["innerHTML"],Na=Ta(()=>v("span",{class:"vpi-plus button-icon"},null,-1)),Ma=["id"],Aa={key:1,class:"group"},Ca=_({__name:"VPNavScreenMenuGroup",props:{text:{},items:{}},setup(o){const e=o,t=w(!1),n=y(()=>`NavScreenGroup-${e.text.replace(" ","-").toLowerCase()}`);function s(){t.value=!t.value}return(i,u)=>(a(),c("div",{class:N(["VPNavScreenMenuGroup",{open:t.value}])},[v("button",{class:"button","aria-controls":n.value,"aria-expanded":t.value,onClick:s},[v("span",{class:"button-text",innerHTML:i.text},null,8,wa),Na],8,Ia),v("div",{id:n.value,class:"items"},[(a(!0),c(M,null,E(i.items,h=>(a(),c(M,{key:h.text},["link"in h?(a(),c("div",{key:h.text,class:"item"},[m(Ee,{item:h},null,8,["item"])])):(a(),c("div",Aa,[m(Sa,{text:h.text,items:h.items},null,8,["text","items"])]))],64))),128))],8,Ma)],2))}}),Ba=b(Ca,[["__scopeId","data-v-ff6087d4"]]),Ha={key:0,class:"VPNavScreenMenu"},Ea=_({__name:"VPNavScreenMenu",setup(o){const{theme:e}=P();return(t,n)=>r(e).nav?(a(),c("nav",Ha,[(a(!0),c(M,null,E(r(e).nav,s=>(a(),c(M,{key:s.text},["link"in s?(a(),$(ga,{key:0,item:s},null,8,["item"])):(a(),$(Ba,{key:1,text:s.text||"",items:s.items},null,8,["text","items"]))],64))),128))])):f("",!0)}}),Fa=_({__name:"VPNavScreenSocialLinks",setup(o){const{theme:e}=P();return(t,n)=>r(e).socialLinks?(a(),$($e,{key:0,class:"VPNavScreenSocialLinks",links:r(e).socialLinks},null,8,["links"])):f("",!0)}}),Fe=o=>(B("data-v-858fe1a4"),o=o(),H(),o),Da=Fe(()=>v("span",{class:"vpi-languages icon lang"},null,-1)),Oa=Fe(()=>v("span",{class:"vpi-chevron-down icon chevron"},null,-1)),Ua={class:"list"},Ga=_({__name:"VPNavScreenTranslations",setup(o){const{localeLinks:e,currentLang:t}=J({correspondingLink:!0}),n=w(!1);function s(){n.value=!n.value}return(i,u)=>r(e).length&&r(t).label?(a(),c("div",{key:0,class:N(["VPNavScreenTranslations",{open:n.value}])},[v("button",{class:"title",onClick:s},[Da,D(" "+I(r(t).label)+" ",1),Oa]),v("ul",Ua,[(a(!0),c(M,null,E(r(e),h=>(a(),c("li",{key:h.link,class:"item"},[m(F,{class:"link",href:h.link},{default:d(()=>[D(I(h.text),1)]),_:2},1032,["href"])]))),128))])],2)):f("",!0)}}),ja=b(Ga,[["__scopeId","data-v-858fe1a4"]]),za={class:"container"},qa=_({__name:"VPNavScreen",props:{open:{type:Boolean}},setup(o){const e=w(null),t=Te(oe?document.body:null);return(n,s)=>(a(),$(ve,{name:"fade",onEnter:s[0]||(s[0]=i=>t.value=!0),onAfterLeave:s[1]||(s[1]=i=>t.value=!1)},{default:d(()=>[n.open?(a(),c("div",{key:0,class:"VPNavScreen",ref_key:"screen",ref:e,id:"VPNavScreen"},[v("div",za,[l(n.$slots,"nav-screen-content-before",{},void 0,!0),m(Ea,{class:"menu"}),m(ja,{class:"translations"}),m(ba,{class:"appearance"}),m(Fa,{class:"social-links"}),l(n.$slots,"nav-screen-content-after",{},void 0,!0)])],512)):f("",!0)]),_:3}))}}),Ka=b(qa,[["__scopeId","data-v-cc5739dd"]]),Wa={key:0,class:"VPNav"},Ra=_({__name:"VPNav",setup(o){const{isScreenOpen:e,closeScreen:t,toggleScreen:n}=ws(),{frontmatter:s}=P(),i=y(()=>s.value.navbar!==!1);return Ie("close-screen",t),Z(()=>{oe&&document.documentElement.classList.toggle("hide-nav",!i.value)}),(u,h)=>i.value?(a(),c("header",Wa,[m(fa,{"is-screen-open":r(e),onToggleScreen:r(n)},{"nav-bar-title-before":d(()=>[l(u.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":d(()=>[l(u.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":d(()=>[l(u.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":d(()=>[l(u.$slots,"nav-bar-content-after",{},void 0,!0)]),_:3},8,["is-screen-open","onToggleScreen"]),m(Ka,{open:r(e)},{"nav-screen-content-before":d(()=>[l(u.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":d(()=>[l(u.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3},8,["open"])])):f("",!0)}}),Ja=b(Ra,[["__scopeId","data-v-ae24b3ad"]]),De=o=>(B("data-v-b8d55f3b"),o=o(),H(),o),Ya=["role","tabindex"],Qa=De(()=>v("div",{class:"indicator"},null,-1)),Xa=De(()=>v("span",{class:"vpi-chevron-right caret-icon"},null,-1)),Za=[Xa],xa={key:1,class:"items"},er=_({__name:"VPSidebarItem",props:{item:{},depth:{}},setup(o){const e=o,{collapsed:t,collapsible:n,isLink:s,isActiveLink:i,hasActiveLink:u,hasChildren:h,toggle:p}=bt(y(()=>e.item)),g=y(()=>h.value?"section":"div"),L=y(()=>s.value?"a":"div"),k=y(()=>h.value?e.depth+2===7?"p":`h${e.depth+2}`:"p"),V=y(()=>s.value?void 0:"button"),T=y(()=>[[`level-${e.depth}`],{collapsible:n.value},{collapsed:t.value},{"is-link":s.value},{"is-active":i.value},{"has-active":u.value}]);function A(S){"key"in S&&S.key!=="Enter"||!e.item.link&&p()}function C(){e.item.link&&p()}return(S,U)=>{const G=q("VPSidebarItem",!0);return a(),$(W(g.value),{class:N(["VPSidebarItem",T.value])},{default:d(()=>[S.item.text?(a(),c("div",Y({key:0,class:"item",role:V.value},Xe(S.item.items?{click:A,keydown:A}:{},!0),{tabindex:S.item.items&&0}),[Qa,S.item.link?(a(),$(F,{key:0,tag:L.value,class:"link",href:S.item.link,rel:S.item.rel,target:S.item.target},{default:d(()=>[(a(),$(W(k.value),{class:"text",innerHTML:S.item.text},null,8,["innerHTML"]))]),_:1},8,["tag","href","rel","target"])):(a(),$(W(k.value),{key:1,class:"text",innerHTML:S.item.text},null,8,["innerHTML"])),S.item.collapsed!=null&&S.item.items&&S.item.items.length?(a(),c("div",{key:2,class:"caret",role:"button","aria-label":"toggle section",onClick:C,onKeydown:Qe(C,["enter"]),tabindex:"0"},Za,32)):f("",!0)],16,Ya)):f("",!0),S.item.items&&S.item.items.length?(a(),c("div",xa,[S.depth<5?(a(!0),c(M,{key:0},E(S.item.items,K=>(a(),$(G,{key:K.text,item:K,depth:S.depth+1},null,8,["item","depth"]))),128)):f("",!0)])):f("",!0)]),_:1},8,["class"])}}}),tr=b(er,[["__scopeId","data-v-b8d55f3b"]]),Oe=o=>(B("data-v-575e6a36"),o=o(),H(),o),or=Oe(()=>v("div",{class:"curtain"},null,-1)),sr={class:"nav",id:"VPSidebarNav","aria-labelledby":"sidebar-aria-label",tabindex:"-1"},nr=Oe(()=>v("span",{class:"visually-hidden",id:"sidebar-aria-label"}," Sidebar Navigation ",-1)),ar=_({__name:"VPSidebar",props:{open:{type:Boolean}},setup(o){const{sidebarGroups:e,hasSidebar:t}=O(),n=o,s=w(null),i=Te(oe?document.body:null);return j([n,s],()=>{var u;n.open?(i.value=!0,(u=s.value)==null||u.focus()):i.value=!1},{immediate:!0,flush:"post"}),(u,h)=>r(t)?(a(),c("aside",{key:0,class:N(["VPSidebar",{open:u.open}]),ref_key:"navEl",ref:s,onClick:h[0]||(h[0]=Ze(()=>{},["stop"]))},[or,v("nav",sr,[nr,l(u.$slots,"sidebar-nav-before",{},void 0,!0),(a(!0),c(M,null,E(r(e),p=>(a(),c("div",{key:p.text,class:"group"},[m(tr,{item:p,depth:0},null,8,["item"])]))),128)),l(u.$slots,"sidebar-nav-after",{},void 0,!0)])],2)):f("",!0)}}),rr=b(ar,[["__scopeId","data-v-575e6a36"]]),ir=_({__name:"VPSkipLink",setup(o){const e=ee(),t=w();j(()=>e.path,()=>t.value.focus());function n({target:s}){const i=document.getElementById(decodeURIComponent(s.hash).slice(1));if(i){const u=()=>{i.removeAttribute("tabindex"),i.removeEventListener("blur",u)};i.setAttribute("tabindex","-1"),i.addEventListener("blur",u),i.focus(),window.scrollTo(0,0)}}return(s,i)=>(a(),c(M,null,[v("span",{ref_key:"backToTop",ref:t,tabindex:"-1"},null,512),v("a",{href:"#VPContent",class:"VPSkipLink visually-hidden",onClick:n}," Skip to content ")],64))}}),lr=b(ir,[["__scopeId","data-v-0f60ec36"]]),cr=_({__name:"Layout",setup(o){const{isOpen:e,open:t,close:n}=O(),s=ee();j(()=>s.path,n),kt(e,n);const{frontmatter:i}=P(),u=xe(),h=y(()=>!!u["home-hero-image"]);return Ie("hero-image-slot-exists",h),(p,g)=>{const L=q("Content");return r(i).layout!==!1?(a(),c("div",{key:0,class:N(["Layout",r(i).pageClass])},[l(p.$slots,"layout-top",{},void 0,!0),m(lr),m(st,{class:"backdrop",show:r(e),onClick:r(n)},null,8,["show","onClick"]),m(Ja,null,{"nav-bar-title-before":d(()=>[l(p.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":d(()=>[l(p.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":d(()=>[l(p.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":d(()=>[l(p.$slots,"nav-bar-content-after",{},void 0,!0)]),"nav-screen-content-before":d(()=>[l(p.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":d(()=>[l(p.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3}),m(Is,{open:r(e),onOpenMenu:r(t)},null,8,["open","onOpenMenu"]),m(rr,{open:r(e)},{"sidebar-nav-before":d(()=>[l(p.$slots,"sidebar-nav-before",{},void 0,!0)]),"sidebar-nav-after":d(()=>[l(p.$slots,"sidebar-nav-after",{},void 0,!0)]),_:3},8,["open"]),m(ls,null,{"page-top":d(()=>[l(p.$slots,"page-top",{},void 0,!0)]),"page-bottom":d(()=>[l(p.$slots,"page-bottom",{},void 0,!0)]),"not-found":d(()=>[l(p.$slots,"not-found",{},void 0,!0)]),"home-hero-before":d(()=>[l(p.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":d(()=>[l(p.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":d(()=>[l(p.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":d(()=>[l(p.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":d(()=>[l(p.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":d(()=>[l(p.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":d(()=>[l(p.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":d(()=>[l(p.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":d(()=>[l(p.$slots,"home-features-after",{},void 0,!0)]),"doc-footer-before":d(()=>[l(p.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":d(()=>[l(p.$slots,"doc-before",{},void 0,!0)]),"doc-after":d(()=>[l(p.$slots,"doc-after",{},void 0,!0)]),"doc-top":d(()=>[l(p.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":d(()=>[l(p.$slots,"doc-bottom",{},void 0,!0)]),"aside-top":d(()=>[l(p.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":d(()=>[l(p.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":d(()=>[l(p.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":d(()=>[l(p.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":d(()=>[l(p.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":d(()=>[l(p.$slots,"aside-ads-after",{},void 0,!0)]),_:3}),m(ps),l(p.$slots,"layout-bottom",{},void 0,!0)],2)):(a(),$(L,{key:1}))}}}),ur=b(cr,[["__scopeId","data-v-5d98c3a5"]]),vr={Layout:ur,enhanceApp:({app:o})=>{o.component("Badge",et)}};export{Un as c,vr as t,P as u}; diff --git a/assets/guide_getting-started.md.uGm_l1Pi.js b/assets/guide_getting-started.md.BNqf6LR1.js similarity index 99% rename from assets/guide_getting-started.md.uGm_l1Pi.js rename to assets/guide_getting-started.md.BNqf6LR1.js index 432effc..daf9dda 100644 --- a/assets/guide_getting-started.md.uGm_l1Pi.js +++ b/assets/guide_getting-started.md.BNqf6LR1.js @@ -1,4 +1,4 @@ -import{B as a}from"./chunks/attributes.BUGtF-W3.js";import{c as e,j as s,t as n,a as i,a3 as t,o as h}from"./chunks/framework.Bsyxd66g.js";const l=s("h1",{id:"getting-started",tabindex:"-1"},[i("Getting Started "),s("a",{class:"header-anchor",href:"#getting-started","aria-label":'Permalink to "Getting Started"'},"​")],-1),p=s("h2",{id:"system-requirements",tabindex:"-1"},[i("System Requirements "),s("a",{class:"header-anchor",href:"#system-requirements","aria-label":'Permalink to "System Requirements"'},"​")],-1),k=s("strong",null,"Spring Boot 2.x",-1),r=s("strong",null,"Java 11",-1),o=s("strong",null,"Java 11",-1),d=s("strong",null,"Spring Boot 3.0.3",-1),E=t('

Installation & Configuration

It is distributed as a Maven dependency, and is known to work well with Maven 3.3+. Using the dependency with Gradle should work too. Please see the Quickstart information, available on the project Github page, for information on how to get the Maven dependency.

',2),g=s("code",null,"QueryResponseConfiguration",-1),c=s("code",null,"@EnableQueryResponse",-1),y=t(`
java
@SpringBootApplication
+import{B as a}from"./chunks/attributes.BUGtF-W3.js";import{c as e,j as s,t as n,a as i,a3 as t,o as h}from"./chunks/framework.BLMDJhiA.js";const l=s("h1",{id:"getting-started",tabindex:"-1"},[i("Getting Started "),s("a",{class:"header-anchor",href:"#getting-started","aria-label":'Permalink to "Getting Started"'},"​")],-1),p=s("h2",{id:"system-requirements",tabindex:"-1"},[i("System Requirements "),s("a",{class:"header-anchor",href:"#system-requirements","aria-label":'Permalink to "System Requirements"'},"​")],-1),k=s("strong",null,"Spring Boot 2.x",-1),r=s("strong",null,"Java 11",-1),o=s("strong",null,"Java 11",-1),d=s("strong",null,"Spring Boot 3.0.3",-1),E=t('

Installation & Configuration

It is distributed as a Maven dependency, and is known to work well with Maven 3.3+. Using the dependency with Gradle should work too. Please see the Quickstart information, available on the project Github page, for information on how to get the Maven dependency.

',2),g=s("code",null,"QueryResponseConfiguration",-1),c=s("code",null,"@EnableQueryResponse",-1),y=t(`
java
@SpringBootApplication
 @EnableQueryResponse
 public class MyApp {
 
diff --git a/assets/guide_getting-started.md.uGm_l1Pi.lean.js b/assets/guide_getting-started.md.BNqf6LR1.lean.js
similarity index 96%
rename from assets/guide_getting-started.md.uGm_l1Pi.lean.js
rename to assets/guide_getting-started.md.BNqf6LR1.lean.js
index 7b40000..7a26078 100644
--- a/assets/guide_getting-started.md.uGm_l1Pi.lean.js
+++ b/assets/guide_getting-started.md.BNqf6LR1.lean.js
@@ -1 +1 @@
-import{B as a}from"./chunks/attributes.BUGtF-W3.js";import{c as e,j as s,t as n,a as i,a3 as t,o as h}from"./chunks/framework.Bsyxd66g.js";const l=s("h1",{id:"getting-started",tabindex:"-1"},[i("Getting Started "),s("a",{class:"header-anchor",href:"#getting-started","aria-label":'Permalink to "Getting Started"'},"​")],-1),p=s("h2",{id:"system-requirements",tabindex:"-1"},[i("System Requirements "),s("a",{class:"header-anchor",href:"#system-requirements","aria-label":'Permalink to "System Requirements"'},"​")],-1),k=s("strong",null,"Spring Boot 2.x",-1),r=s("strong",null,"Java 11",-1),o=s("strong",null,"Java 11",-1),d=s("strong",null,"Spring Boot 3.0.3",-1),E=t("",2),g=s("code",null,"QueryResponseConfiguration",-1),c=s("code",null,"@EnableQueryResponse",-1),y=t("",4),F=s("a",{href:"https://www.rabbitmq.com",target:"_blank",rel:"noreferrer"},"https://www.rabbitmq.com",-1),u=s("code",null,"5672",-1),b=t("",3),m=t("",1),C=s("a",{href:"http://localhost:15672",target:"_blank",rel:"noreferrer"},"http://localhost:15672",-1),_=s("h2",{id:"queries",tabindex:"-1"},[i("Queries "),s("a",{class:"header-anchor",href:"#queries","aria-label":'Permalink to "Queries"'},"​")],-1),B=s("p",null,[i("Publishing "),s("strong",null,"queries"),i(" is a way for your application to ask for information that it may need in order to accomplish tasks. Queries express a "),s("em",null,"need"),i(", and are not addressed to any specific service or component.")],-1),A=s("code",null,"QueryBuilder",-1),v=t("",10),D=s("em",null,"micro",-1),f=s("strong",null,"responses",-1),q=s("code",null,"ResponseBuilder",-1),T=t("",8),I=JSON.parse('{"title":"Getting Started","description":"","frontmatter":{},"headers":[],"relativePath":"guide/getting-started.md","filePath":"guide/getting-started.md","lastUpdated":1720587441000}'),w={name:"guide/getting-started.md"},Q=Object.assign(w,{setup(S){return(P,R)=>(h(),e("div",null,[l,s("p",null,n(a)+" makes it really easy to extend Spring Boot stand-alone, production-grade applications, that are using Spring AMQP. We have taken a working pattern for building highly decoupled evolving service architectures, and wrapped it in a developer friendly library.",1),p,s("p",null,[i(n(a)+" requires at least ",1),k,i(" and "),r,i(", and should work for later releases too. We are building and running it successfully with "),o,i(" and the "),d,i(" version.")]),E,s("p",null,[i("Enabling "+n(a)+" is done by loading the ",1),g,i(" class. The most simple way to do this, is by annotating your Spring Boot application with the "),c,i(" annotation.")]),y,s("p",null,[i("Before you can run your application you need to make sure there is an AMQP broker available. By default "+n(a)+" tries to connect to a ",1),F,i("[RabbitMQ], running locally on port "),u,i(".")]),b,s("p",null,"Now running your application, will enable "+n(a)+", connect to the broker and create all the resources necessary on the broker.",1),m,s("p",null,[i("Now is a good time to use the RabbitMQ Management UI, available at "),C,i(", to inspect the exchange, queues and bindings created by "+n(a)+" by default.",1)]),_,B,s("p",null,[i(n(a)+" makes it really really easy, to create and publish a query using the ",1),A,i(".")]),v,s("p",null,[i("Building services, medium, large or "),D,i(" (who cares), that publish "),f,i(" to queries is also really easy with "+n(a)+", using the ",1),q,i(".")]),T]))}});export{I as __pageData,Q as default};
+import{B as a}from"./chunks/attributes.BUGtF-W3.js";import{c as e,j as s,t as n,a as i,a3 as t,o as h}from"./chunks/framework.BLMDJhiA.js";const l=s("h1",{id:"getting-started",tabindex:"-1"},[i("Getting Started "),s("a",{class:"header-anchor",href:"#getting-started","aria-label":'Permalink to "Getting Started"'},"​")],-1),p=s("h2",{id:"system-requirements",tabindex:"-1"},[i("System Requirements "),s("a",{class:"header-anchor",href:"#system-requirements","aria-label":'Permalink to "System Requirements"'},"​")],-1),k=s("strong",null,"Spring Boot 2.x",-1),r=s("strong",null,"Java 11",-1),o=s("strong",null,"Java 11",-1),d=s("strong",null,"Spring Boot 3.0.3",-1),E=t("",2),g=s("code",null,"QueryResponseConfiguration",-1),c=s("code",null,"@EnableQueryResponse",-1),y=t("",4),F=s("a",{href:"https://www.rabbitmq.com",target:"_blank",rel:"noreferrer"},"https://www.rabbitmq.com",-1),u=s("code",null,"5672",-1),b=t("",3),m=t("",1),C=s("a",{href:"http://localhost:15672",target:"_blank",rel:"noreferrer"},"http://localhost:15672",-1),_=s("h2",{id:"queries",tabindex:"-1"},[i("Queries "),s("a",{class:"header-anchor",href:"#queries","aria-label":'Permalink to "Queries"'},"​")],-1),B=s("p",null,[i("Publishing "),s("strong",null,"queries"),i(" is a way for your application to ask for information that it may need in order to accomplish tasks. Queries express a "),s("em",null,"need"),i(", and are not addressed to any specific service or component.")],-1),A=s("code",null,"QueryBuilder",-1),v=t("",10),D=s("em",null,"micro",-1),f=s("strong",null,"responses",-1),q=s("code",null,"ResponseBuilder",-1),T=t("",8),I=JSON.parse('{"title":"Getting Started","description":"","frontmatter":{},"headers":[],"relativePath":"guide/getting-started.md","filePath":"guide/getting-started.md","lastUpdated":1720587441000}'),w={name:"guide/getting-started.md"},Q=Object.assign(w,{setup(S){return(P,R)=>(h(),e("div",null,[l,s("p",null,n(a)+" makes it really easy to extend Spring Boot stand-alone, production-grade applications, that are using Spring AMQP. We have taken a working pattern for building highly decoupled evolving service architectures, and wrapped it in a developer friendly library.",1),p,s("p",null,[i(n(a)+" requires at least ",1),k,i(" and "),r,i(", and should work for later releases too. We are building and running it successfully with "),o,i(" and the "),d,i(" version.")]),E,s("p",null,[i("Enabling "+n(a)+" is done by loading the ",1),g,i(" class. The most simple way to do this, is by annotating your Spring Boot application with the "),c,i(" annotation.")]),y,s("p",null,[i("Before you can run your application you need to make sure there is an AMQP broker available. By default "+n(a)+" tries to connect to a ",1),F,i("[RabbitMQ], running locally on port "),u,i(".")]),b,s("p",null,"Now running your application, will enable "+n(a)+", connect to the broker and create all the resources necessary on the broker.",1),m,s("p",null,[i("Now is a good time to use the RabbitMQ Management UI, available at "),C,i(", to inspect the exchange, queues and bindings created by "+n(a)+" by default.",1)]),_,B,s("p",null,[i(n(a)+" makes it really really easy, to create and publish a query using the ",1),A,i(".")]),v,s("p",null,[i("Building services, medium, large or "),D,i(" (who cares), that publish "),f,i(" to queries is also really easy with "+n(a)+", using the ",1),q,i(".")]),T]))}});export{I as __pageData,Q as default};
diff --git a/assets/guide_the-example-revisited.md.C9Mmb3Cs.js b/assets/guide_the-example-revisited.md.CPfN9cTx.js
similarity index 98%
rename from assets/guide_the-example-revisited.md.C9Mmb3Cs.js
rename to assets/guide_the-example-revisited.md.CPfN9cTx.js
index 7c64e23..c4a5c7f 100644
--- a/assets/guide_the-example-revisited.md.C9Mmb3Cs.js
+++ b/assets/guide_the-example-revisited.md.CPfN9cTx.js
@@ -1,4 +1,4 @@
-import{_ as e,c as s,o as a,a3 as t}from"./chunks/framework.Bsyxd66g.js";const m=JSON.parse('{"title":"The example revisited","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"guide/the-example-revisited.md","filePath":"guide/the-example-revisited.md","lastUpdated":1720465254000}'),o={name:"guide/the-example-revisited.md"},n=t(`

The example revisited

Let's examine one of the most powerful aspects of using the Query/Response pattern. If we think back to our initial example we published a query for books in the sci-fi genre.

query: books.sci-fi
+import{_ as e,c as s,o as a,a3 as t}from"./chunks/framework.BLMDJhiA.js";const m=JSON.parse('{"title":"The example revisited","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"guide/the-example-revisited.md","filePath":"guide/the-example-revisited.md","lastUpdated":1720465254000}'),o={name:"guide/the-example-revisited.md"},n=t(`

The example revisited

Let's examine one of the most powerful aspects of using the Query/Response pattern. If we think back to our initial example we published a query for books in the sci-fi genre.

query: books.sci-fi
 reply-to: library/books.sci-fi#42

We also learned that responses may come from different sources, with different payloads and we are responsible for dealing with validation and duplicates etc.

The query in this example uses only some minimal semantics to express the genre of books requested, the term sci-fi. This is part of a contract from our domain, together with rules on how any result payload should be presented. The list of strings within quotes are not by accident, it is also by design.

The Query/Response pattern does not enforce any structural rules for query, address or response syntax. This must come from designers and developers. I would suggest, using Domain Driven Design to leverage the power of a ubiquitous language in the queries.

All this together puts us in a position to allow change and evolution in our system.

A better library protocol

We have agreed on supporting stars for book ratings, and different teams scramble to their stations to extend for the new feature.

We saw earlier that data returned was formed as a list of quoted strings, and the contract for parsing was: "first quoted string per line is book title".

body:
     "Neuromancer"

That rule and the capability to extend it, made it possible to agree on a new optional format: "trailing key-values are properties". For example:

body:
     "Neuromancer" isbn:9780307969958 stars:4

This is great. Let's get to work.

Top-3 books have stars

query: books.sci-fi
diff --git a/assets/guide_the-example-revisited.md.C9Mmb3Cs.lean.js b/assets/guide_the-example-revisited.md.CPfN9cTx.lean.js
similarity index 73%
rename from assets/guide_the-example-revisited.md.C9Mmb3Cs.lean.js
rename to assets/guide_the-example-revisited.md.CPfN9cTx.lean.js
index c19616f..b535ecf 100644
--- a/assets/guide_the-example-revisited.md.C9Mmb3Cs.lean.js
+++ b/assets/guide_the-example-revisited.md.CPfN9cTx.lean.js
@@ -1 +1 @@
-import{_ as e,c as s,o as a,a3 as t}from"./chunks/framework.Bsyxd66g.js";const m=JSON.parse('{"title":"The example revisited","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"guide/the-example-revisited.md","filePath":"guide/the-example-revisited.md","lastUpdated":1720465254000}'),o={name:"guide/the-example-revisited.md"},n=t("",36),i=[n];function p(r,l,h,d,c,u){return a(),s("div",null,i)}const g=e(o,[["render",p]]);export{m as __pageData,g as default};
+import{_ as e,c as s,o as a,a3 as t}from"./chunks/framework.BLMDJhiA.js";const m=JSON.parse('{"title":"The example revisited","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"guide/the-example-revisited.md","filePath":"guide/the-example-revisited.md","lastUpdated":1720465254000}'),o={name:"guide/the-example-revisited.md"},n=t("",36),i=[n];function p(r,l,h,d,c,u){return a(),s("div",null,i)}const g=e(o,[["render",p]]);export{m as __pageData,g as default};
diff --git a/assets/guide_what-is-query-response.md.BDbJBI_F.js b/assets/guide_what-is-query-response.md.BgwoPFLM.js
similarity index 99%
rename from assets/guide_what-is-query-response.md.BDbJBI_F.js
rename to assets/guide_what-is-query-response.md.BgwoPFLM.js
index c5cce4e..95ca111 100644
--- a/assets/guide_what-is-query-response.md.BDbJBI_F.js
+++ b/assets/guide_what-is-query-response.md.BgwoPFLM.js
@@ -1,4 +1,4 @@
-import{_ as e,c as s,o as a,a3 as t}from"./chunks/framework.Bsyxd66g.js";const m=JSON.parse('{"title":"What is Query/Response?","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"guide/what-is-query-response.md","filePath":"guide/what-is-query-response.md","lastUpdated":1720465254000}'),o={name:"guide/what-is-query-response.md"},n=t(`

What is Query/Response?

Query/Response is an asynchronous non-blocking messaging pattern for building highly decoupled evolving service architectures.

A simple example

Let's learn about the Query/Response pattern by walking through a small fictional example (no pun intended). The technical context is messaging and hints at some type of broker-based setup - in theory though, any asynchronous communication could be used. The examples are only pseudo-code and plain-text data, to keep things simple.

Any good sci-fi books out there?

Let's publish a query.

query: books.sci-fi
+import{_ as e,c as s,o as a,a3 as t}from"./chunks/framework.BLMDJhiA.js";const m=JSON.parse('{"title":"What is Query/Response?","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"guide/what-is-query-response.md","filePath":"guide/what-is-query-response.md","lastUpdated":1720465254000}'),o={name:"guide/what-is-query-response.md"},n=t(`

What is Query/Response?

Query/Response is an asynchronous non-blocking messaging pattern for building highly decoupled evolving service architectures.

A simple example

Let's learn about the Query/Response pattern by walking through a small fictional example (no pun intended). The technical context is messaging and hints at some type of broker-based setup - in theory though, any asynchronous communication could be used. The examples are only pseudo-code and plain-text data, to keep things simple.

Any good sci-fi books out there?

Let's publish a query.

query: books.sci-fi
 reply-to: library/books.sci-fi#42

The structure above captures all the basic components that a query should communicate. The term books.sci-fi expresses the published need, and we can easily understand that it's a request for science fiction books.

The dot-notation is not at all required, the query can use any syntax that fits the platform or programming language.

The query has an address where responses should be sent back to: library/books.sci-fi#42. This is really important, not only in order to receive responses, but also to avoid coupling the sender to the query. We don't need to state who's publishing the query. The reply-to is just an address, a location or mailbox that can be used for replies.

The address is only for this particular query, and it is made to be unique. In this example library/books.sci-fi#42 describes a topic library, and then the unique mailbox or queue for the query with a hash-code books.sci-fi#42.

The current top-3 books

response: library/books.sci-fi#42
 body:
     "Neuromancer"
diff --git a/assets/guide_what-is-query-response.md.BDbJBI_F.lean.js b/assets/guide_what-is-query-response.md.BgwoPFLM.lean.js
similarity index 74%
rename from assets/guide_what-is-query-response.md.BDbJBI_F.lean.js
rename to assets/guide_what-is-query-response.md.BgwoPFLM.lean.js
index af8e7e6..02660d1 100644
--- a/assets/guide_what-is-query-response.md.BDbJBI_F.lean.js
+++ b/assets/guide_what-is-query-response.md.BgwoPFLM.lean.js
@@ -1 +1 @@
-import{_ as e,c as s,o as a,a3 as t}from"./chunks/framework.Bsyxd66g.js";const m=JSON.parse('{"title":"What is Query/Response?","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"guide/what-is-query-response.md","filePath":"guide/what-is-query-response.md","lastUpdated":1720465254000}'),o={name:"guide/what-is-query-response.md"},n=t("",46),i=[n];function r(l,h,p,c,d,u){return a(),s("div",null,i)}const y=e(o,[["render",r]]);export{m as __pageData,y as default};
+import{_ as e,c as s,o as a,a3 as t}from"./chunks/framework.BLMDJhiA.js";const m=JSON.parse('{"title":"What is Query/Response?","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"guide/what-is-query-response.md","filePath":"guide/what-is-query-response.md","lastUpdated":1720465254000}'),o={name:"guide/what-is-query-response.md"},n=t("",46),i=[n];function r(l,h,p,c,d,u){return a(),s("div",null,i)}const y=e(o,[["render",r]]);export{m as __pageData,y as default};
diff --git a/assets/index.md.CyLvXN9L.js b/assets/index.md.B8Ay4yEG.js
similarity index 98%
rename from assets/index.md.CyLvXN9L.js
rename to assets/index.md.B8Ay4yEG.js
index 16a4494..4805d07 100644
--- a/assets/index.md.CyLvXN9L.js
+++ b/assets/index.md.B8Ay4yEG.js
@@ -1 +1 @@
-import{c as e,o as t,a3 as n}from"./chunks/framework.Bsyxd66g.js";const a=n('

Change the way you think and design, by using Query/Response for Spring AMQP.

Sometime around 2015 I came across a presentation with Fred George, about the Challenges in Implementing Microservices. It's a great talk, with lots of good and relevant information. Experience comes from learning through failures, and at this point in time I had just learned a hard lesson about the problems with distributed services and blocking API calls. I had seen how latencies would go up and availability go down the drain, as calls from service A to B were actually depending on service B calling service C, calling service D. It was a mess.

In his talk George lands at the question "Synchronous or Asynchronous?" and proceeds to describe, what he calls, the "Needs Pattern". Service A would, instead of calling service B, publish a query, and service B would listen for it and send back a response. After hearing this I began to think a lot about the effects of moving to asynchronous communication between services. There was clearly a lot more there than just decoupling. Something more fundamental.

The Query/Response pattern, that I arrived at, challenges developers to really think hard about the responsibilities and autonomy of services. It provides very few guarantees, which will force decisions around resilience and availability at a much earlier stage in the design and development process. It literally turns things around - an inversion of responsibility - which I truly believe we can benefit from.

Olle Törnström, 2019

',5),o=[a],d=JSON.parse('{"title":"","description":"","frontmatter":{"layout":"home","hero":{"name":"Query/Response","text":"For Spring® AMQP","tagline":"A messaging pattern for building highly decoupled evolving service architectures.","actions":[{"theme":"brand","text":"What is Query/Response?","link":"/guide/what-is-query-response"},{"theme":"alt","text":"Getting started","link":"/guide/getting-started"},{"theme":"alt","text":"GitHub","link":"https://github.com/olle/query-response-spring-amqp"}]},"features":[{"icon":"","title":"Resilient","details":"Build safer and more resilient distributed services."},{"icon":"","title":"Asynchronous","details":"Get the benefits of an always async approach to data exchange."},{"icon":"","title":"Decoupled","details":"Ensure decoupling of components. Create scalable solutions."},{"icon":"","title":"Evolving","details":"Be better prepared for system evolution."}]},"headers":[],"relativePath":"index.md","filePath":"index.md","lastUpdated":1720560186000}'),s={name:"index.md"},c=Object.assign(s,{setup(i){return(r,l)=>(t(),e("div",null,o))}});export{d as __pageData,c as default}; +import{c as e,o as t,a3 as n}from"./chunks/framework.BLMDJhiA.js";const a=n('

Change the way you think and design, by using Query/Response for Spring AMQP.

Sometime around 2015 I came across a presentation with Fred George, about the Challenges in Implementing Microservices. It's a great talk, with lots of good and relevant information. Experience comes from learning through failures, and at this point in time I had just learned a hard lesson about the problems with distributed services and blocking API calls. I had seen how latencies would go up and availability go down the drain, as calls from service A to B were actually depending on service B calling service C, calling service D. It was a mess.

In his talk George lands at the question "Synchronous or Asynchronous?" and proceeds to describe, what he calls, the "Needs Pattern". Service A would, instead of calling service B, publish a query, and service B would listen for it and send back a response. After hearing this I began to think a lot about the effects of moving to asynchronous communication between services. There was clearly a lot more there than just decoupling. Something more fundamental.

The Query/Response pattern, that I arrived at, challenges developers to really think hard about the responsibilities and autonomy of services. It provides very few guarantees, which will force decisions around resilience and availability at a much earlier stage in the design and development process. It literally turns things around - an inversion of responsibility - which I truly believe we can benefit from.

Olle Törnström, 2019

',5),o=[a],d=JSON.parse('{"title":"","description":"","frontmatter":{"layout":"home","hero":{"name":"Query/Response","text":"For Spring® AMQP","tagline":"A messaging pattern for building highly decoupled evolving service architectures.","actions":[{"theme":"brand","text":"What is Query/Response?","link":"/guide/what-is-query-response"},{"theme":"alt","text":"Getting started","link":"/guide/getting-started"},{"theme":"alt","text":"GitHub","link":"https://github.com/olle/query-response-spring-amqp"}]},"features":[{"icon":"","title":"Resilient","details":"Build safer and more resilient distributed services."},{"icon":"","title":"Asynchronous","details":"Get the benefits of an always async approach to data exchange."},{"icon":"","title":"Decoupled","details":"Ensure decoupling of components. Create scalable solutions."},{"icon":"","title":"Evolving","details":"Be better prepared for system evolution."}]},"headers":[],"relativePath":"index.md","filePath":"index.md","lastUpdated":1720560186000}'),s={name:"index.md"},c=Object.assign(s,{setup(i){return(r,l)=>(t(),e("div",null,o))}});export{d as __pageData,c as default}; diff --git a/assets/index.md.CyLvXN9L.lean.js b/assets/index.md.B8Ay4yEG.lean.js similarity index 98% rename from assets/index.md.CyLvXN9L.lean.js rename to assets/index.md.B8Ay4yEG.lean.js index b6debdd..45bb0b2 100644 --- a/assets/index.md.CyLvXN9L.lean.js +++ b/assets/index.md.B8Ay4yEG.lean.js @@ -1 +1 @@ -import{c as e,o as t,a3 as n}from"./chunks/framework.Bsyxd66g.js";const a=n("",5),o=[a],d=JSON.parse('{"title":"","description":"","frontmatter":{"layout":"home","hero":{"name":"Query/Response","text":"For Spring® AMQP","tagline":"A messaging pattern for building highly decoupled evolving service architectures.","actions":[{"theme":"brand","text":"What is Query/Response?","link":"/guide/what-is-query-response"},{"theme":"alt","text":"Getting started","link":"/guide/getting-started"},{"theme":"alt","text":"GitHub","link":"https://github.com/olle/query-response-spring-amqp"}]},"features":[{"icon":"","title":"Resilient","details":"Build safer and more resilient distributed services."},{"icon":"","title":"Asynchronous","details":"Get the benefits of an always async approach to data exchange."},{"icon":"","title":"Decoupled","details":"Ensure decoupling of components. Create scalable solutions."},{"icon":"","title":"Evolving","details":"Be better prepared for system evolution."}]},"headers":[],"relativePath":"index.md","filePath":"index.md","lastUpdated":1720560186000}'),s={name:"index.md"},c=Object.assign(s,{setup(i){return(r,l)=>(t(),e("div",null,o))}});export{d as __pageData,c as default}; +import{c as e,o as t,a3 as n}from"./chunks/framework.BLMDJhiA.js";const a=n("",5),o=[a],d=JSON.parse('{"title":"","description":"","frontmatter":{"layout":"home","hero":{"name":"Query/Response","text":"For Spring® AMQP","tagline":"A messaging pattern for building highly decoupled evolving service architectures.","actions":[{"theme":"brand","text":"What is Query/Response?","link":"/guide/what-is-query-response"},{"theme":"alt","text":"Getting started","link":"/guide/getting-started"},{"theme":"alt","text":"GitHub","link":"https://github.com/olle/query-response-spring-amqp"}]},"features":[{"icon":"","title":"Resilient","details":"Build safer and more resilient distributed services."},{"icon":"","title":"Asynchronous","details":"Get the benefits of an always async approach to data exchange."},{"icon":"","title":"Decoupled","details":"Ensure decoupling of components. Create scalable solutions."},{"icon":"","title":"Evolving","details":"Be better prepared for system evolution."}]},"headers":[],"relativePath":"index.md","filePath":"index.md","lastUpdated":1720560186000}'),s={name:"index.md"},c=Object.assign(s,{setup(i){return(r,l)=>(t(),e("div",null,o))}});export{d as __pageData,c as default}; diff --git a/assets/reference_developers-reference.md.DgStbDgc.js b/assets/reference_developers-reference.md.APR1fw3k.js similarity index 99% rename from assets/reference_developers-reference.md.DgStbDgc.js rename to assets/reference_developers-reference.md.APR1fw3k.js index 9786659..0c872b9 100644 --- a/assets/reference_developers-reference.md.DgStbDgc.js +++ b/assets/reference_developers-reference.md.APR1fw3k.js @@ -1,4 +1,4 @@ -import{B as i}from"./chunks/attributes.BUGtF-W3.js";import{c as n,j as e,a as s,t,a3 as a,o as l}from"./chunks/framework.Bsyxd66g.js";const h=e("h1",{id:"developers-reference",tabindex:"-1"},[s("Developers Reference "),e("a",{class:"header-anchor",href:"#developers-reference","aria-label":'Permalink to "Developers Reference"'},"​")],-1),o=e("h2",{id:"overview",tabindex:"-1"},[s("Overview "),e("a",{class:"header-anchor",href:"#overview","aria-label":'Permalink to "Overview"'},"​")],-1),r=e("em",null,"streams",-1),d=e("em",null,"futures",-1),p=e("em",null,"promises",-1),k=e("em",null,"normal",-1),c=e("a",{href:"https://en.wikipedia.org/wiki/Distributed_computing",target:"_blank",rel:"noreferrer"},"distributed systems",-1),u=e("p",null,[s("In the next couple of sections we'll look closer at the "),e("code",null,"QueryBuilder"),s(" and the "),e("code",null,"ResponseBuilder"),s(" types. We'll discuss how to use them in detail, and try to explain the concepts behind them, and the intention of their implementation.")],-1),E=e("h2",{id:"querybuilder",tabindex:"-1"},[e("code",null,"QueryBuilder"),s(),e("a",{class:"header-anchor",href:"#querybuilder","aria-label":'Permalink to "`QueryBuilder`"'},"​")],-1),m=e("code",null,"QueryBuilder",-1),g=e("code",null,"@EnableQueryResponse",-1),y=a(`

We recommend injecting it via the component constructor, and keeping it as a private field. The findAuthors() method below, shows how to access the queryBuilder field in order to publish a query.

java
@Component
+import{B as i}from"./chunks/attributes.BUGtF-W3.js";import{c as n,j as e,a as s,t,a3 as a,o as l}from"./chunks/framework.BLMDJhiA.js";const h=e("h1",{id:"developers-reference",tabindex:"-1"},[s("Developers Reference "),e("a",{class:"header-anchor",href:"#developers-reference","aria-label":'Permalink to "Developers Reference"'},"​")],-1),o=e("h2",{id:"overview",tabindex:"-1"},[s("Overview "),e("a",{class:"header-anchor",href:"#overview","aria-label":'Permalink to "Overview"'},"​")],-1),r=e("em",null,"streams",-1),d=e("em",null,"futures",-1),p=e("em",null,"promises",-1),k=e("em",null,"normal",-1),c=e("a",{href:"https://en.wikipedia.org/wiki/Distributed_computing",target:"_blank",rel:"noreferrer"},"distributed systems",-1),u=e("p",null,[s("In the next couple of sections we'll look closer at the "),e("code",null,"QueryBuilder"),s(" and the "),e("code",null,"ResponseBuilder"),s(" types. We'll discuss how to use them in detail, and try to explain the concepts behind them, and the intention of their implementation.")],-1),E=e("h2",{id:"querybuilder",tabindex:"-1"},[e("code",null,"QueryBuilder"),s(),e("a",{class:"header-anchor",href:"#querybuilder","aria-label":'Permalink to "`QueryBuilder`"'},"​")],-1),m=e("code",null,"QueryBuilder",-1),g=e("code",null,"@EnableQueryResponse",-1),y=a(`

We recommend injecting it via the component constructor, and keeping it as a private field. The findAuthors() method below, shows how to access the queryBuilder field in order to publish a query.

java
@Component
 public class Authors {
 
     private final QueryBuilder queryBuilder;
diff --git a/assets/reference_developers-reference.md.DgStbDgc.lean.js b/assets/reference_developers-reference.md.APR1fw3k.lean.js
similarity index 96%
rename from assets/reference_developers-reference.md.DgStbDgc.lean.js
rename to assets/reference_developers-reference.md.APR1fw3k.lean.js
index 5af9223..18b0b40 100644
--- a/assets/reference_developers-reference.md.DgStbDgc.lean.js
+++ b/assets/reference_developers-reference.md.APR1fw3k.lean.js
@@ -1 +1 @@
-import{B as i}from"./chunks/attributes.BUGtF-W3.js";import{c as n,j as e,a as s,t,a3 as a,o as l}from"./chunks/framework.Bsyxd66g.js";const h=e("h1",{id:"developers-reference",tabindex:"-1"},[s("Developers Reference "),e("a",{class:"header-anchor",href:"#developers-reference","aria-label":'Permalink to "Developers Reference"'},"​")],-1),o=e("h2",{id:"overview",tabindex:"-1"},[s("Overview "),e("a",{class:"header-anchor",href:"#overview","aria-label":'Permalink to "Overview"'},"​")],-1),r=e("em",null,"streams",-1),d=e("em",null,"futures",-1),p=e("em",null,"promises",-1),k=e("em",null,"normal",-1),c=e("a",{href:"https://en.wikipedia.org/wiki/Distributed_computing",target:"_blank",rel:"noreferrer"},"distributed systems",-1),u=e("p",null,[s("In the next couple of sections we'll look closer at the "),e("code",null,"QueryBuilder"),s(" and the "),e("code",null,"ResponseBuilder"),s(" types. We'll discuss how to use them in detail, and try to explain the concepts behind them, and the intention of their implementation.")],-1),E=e("h2",{id:"querybuilder",tabindex:"-1"},[e("code",null,"QueryBuilder"),s(),e("a",{class:"header-anchor",href:"#querybuilder","aria-label":'Permalink to "`QueryBuilder`"'},"​")],-1),m=e("code",null,"QueryBuilder",-1),g=e("code",null,"@EnableQueryResponse",-1),y=a("",3),b=e("code",null,"String.class",-1),f=a("",25),F=a("",4),v=e("code",null,"ResponseBuilder",-1),C=a("",7),_={class:"info custom-block"},w=e("p",{class:"custom-block-title"},"Note",-1),B=e("code",null,"com.fasterxml.jackson.databind.ObjectMapper",-1),A=a("",21),P=JSON.parse('{"title":"Developers Reference","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"reference/developers-reference.md","filePath":"reference/developers-reference.md","lastUpdated":1720631212000}'),T={name:"reference/developers-reference.md"},R=Object.assign(T,{setup(q){return(D,x)=>(l(),n("div",null,[h,o,e("p",null,[s("The goal of "+t(i)+" is to provide developers with tools that are easy to use and understand. We believe that a procedural and imperative style of writing programs, or thinking about tasks in programs, is broadly understood and a very valuable model. With "+t(i)+" we try to support this, rather than introducing any new concepts for ",1),r,s(", "),d,s(" or "),p,s(".")]),e("p",null,[s("With "+t(i)+" developers should feel enabled to write code in a ",1),k,s(" way. However, it is our mission to raise awareness of things that are hard to consider, when building "),c,s(". The tools try to convey these considerations, by making them transparent and part of the API.")]),u,E,e("p",null,[s("The "),m,s(" class is a central point of entry, and provides a fluent builder-API, for publishing queries. It's provided as a bean, by enabling "+t(i)+", using the ",1),g,s(" annotation. It may be injected as a dependency to provide access from methods in any Spring component.")]),y,e("p",null,[s("The second argument is the expected type of any received response elements. It is not published with the query, but rather used to coerce or interpret any received responses. This means that regardless of the payload of any response, in this case "+t(i)+" will attempt to read the response elements as the declared type ",1),b,s(".")]),f,e("p",null,"It is possible to express constraints at the integration point, also when using "+t(i)+", throwing on an unfulfilled query, as an option to more lenient handling with defaults.",1),F,e("p",null,[s("Another entry-point into "+t(i)+" is the ",1),v,s(". It provides a fluid builder-API that allows users to create responding services or components.")]),C,e("div",_,[w,e("p",null,[s("The data mapper mentioned above, is in fact the "),B,s(" and "+t(i)+" currently uses JSON as the transport format. This means that type hints, JSON mapping configuration annotations or custom mappings will apply. However as data mapping on the consumer side is done by coercion, the published format must conform to some agreed upon standard, shape or protocol.",1)])]),A]))}});export{P as __pageData,R as default};
+import{B as i}from"./chunks/attributes.BUGtF-W3.js";import{c as n,j as e,a as s,t,a3 as a,o as l}from"./chunks/framework.BLMDJhiA.js";const h=e("h1",{id:"developers-reference",tabindex:"-1"},[s("Developers Reference "),e("a",{class:"header-anchor",href:"#developers-reference","aria-label":'Permalink to "Developers Reference"'},"​")],-1),o=e("h2",{id:"overview",tabindex:"-1"},[s("Overview "),e("a",{class:"header-anchor",href:"#overview","aria-label":'Permalink to "Overview"'},"​")],-1),r=e("em",null,"streams",-1),d=e("em",null,"futures",-1),p=e("em",null,"promises",-1),k=e("em",null,"normal",-1),c=e("a",{href:"https://en.wikipedia.org/wiki/Distributed_computing",target:"_blank",rel:"noreferrer"},"distributed systems",-1),u=e("p",null,[s("In the next couple of sections we'll look closer at the "),e("code",null,"QueryBuilder"),s(" and the "),e("code",null,"ResponseBuilder"),s(" types. We'll discuss how to use them in detail, and try to explain the concepts behind them, and the intention of their implementation.")],-1),E=e("h2",{id:"querybuilder",tabindex:"-1"},[e("code",null,"QueryBuilder"),s(),e("a",{class:"header-anchor",href:"#querybuilder","aria-label":'Permalink to "`QueryBuilder`"'},"​")],-1),m=e("code",null,"QueryBuilder",-1),g=e("code",null,"@EnableQueryResponse",-1),y=a("",3),b=e("code",null,"String.class",-1),f=a("",25),F=a("",4),v=e("code",null,"ResponseBuilder",-1),C=a("",7),_={class:"info custom-block"},w=e("p",{class:"custom-block-title"},"Note",-1),B=e("code",null,"com.fasterxml.jackson.databind.ObjectMapper",-1),A=a("",21),P=JSON.parse('{"title":"Developers Reference","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"reference/developers-reference.md","filePath":"reference/developers-reference.md","lastUpdated":1720631212000}'),T={name:"reference/developers-reference.md"},R=Object.assign(T,{setup(q){return(D,x)=>(l(),n("div",null,[h,o,e("p",null,[s("The goal of "+t(i)+" is to provide developers with tools that are easy to use and understand. We believe that a procedural and imperative style of writing programs, or thinking about tasks in programs, is broadly understood and a very valuable model. With "+t(i)+" we try to support this, rather than introducing any new concepts for ",1),r,s(", "),d,s(" or "),p,s(".")]),e("p",null,[s("With "+t(i)+" developers should feel enabled to write code in a ",1),k,s(" way. However, it is our mission to raise awareness of things that are hard to consider, when building "),c,s(". The tools try to convey these considerations, by making them transparent and part of the API.")]),u,E,e("p",null,[s("The "),m,s(" class is a central point of entry, and provides a fluent builder-API, for publishing queries. It's provided as a bean, by enabling "+t(i)+", using the ",1),g,s(" annotation. It may be injected as a dependency to provide access from methods in any Spring component.")]),y,e("p",null,[s("The second argument is the expected type of any received response elements. It is not published with the query, but rather used to coerce or interpret any received responses. This means that regardless of the payload of any response, in this case "+t(i)+" will attempt to read the response elements as the declared type ",1),b,s(".")]),f,e("p",null,"It is possible to express constraints at the integration point, also when using "+t(i)+", throwing on an unfulfilled query, as an option to more lenient handling with defaults.",1),F,e("p",null,[s("Another entry-point into "+t(i)+" is the ",1),v,s(". It provides a fluid builder-API that allows users to create responding services or components.")]),C,e("div",_,[w,e("p",null,[s("The data mapper mentioned above, is in fact the "),B,s(" and "+t(i)+" currently uses JSON as the transport format. This means that type hints, JSON mapping configuration annotations or custom mappings will apply. However as data mapping on the consumer side is done by coercion, the published format must conform to some agreed upon standard, shape or protocol.",1)])]),A]))}});export{P as __pageData,R as default};
diff --git a/assets/reference_query-response-maturity-model.md.CYdPkauy.js b/assets/reference_query-response-maturity-model.md.B_1-RK-U.js
similarity index 97%
rename from assets/reference_query-response-maturity-model.md.CYdPkauy.js
rename to assets/reference_query-response-maturity-model.md.B_1-RK-U.js
index 281fd57..9c547ce 100644
--- a/assets/reference_query-response-maturity-model.md.CYdPkauy.js
+++ b/assets/reference_query-response-maturity-model.md.B_1-RK-U.js
@@ -1 +1 @@
-import{_ as e,c as t,o as a,a3 as o}from"./chunks/framework.Bsyxd66g.js";const y=JSON.parse('{"title":"Query/Response Maturity Model","description":"","frontmatter":{},"headers":[],"relativePath":"reference/query-response-maturity-model.md","filePath":"reference/query-response-maturity-model.md","lastUpdated":1720465254000}'),r={name:"reference/query-response-maturity-model.md"},n=o('

Query/Response Maturity Model

Just like with the Richardson Maturity Model, I've identified an evolution of maturity around the acceptance, use and implementation of Query/Response. It describes the benefits, opportunities and also complexities, pretty well.

Level 0 - Purgatory

All communication and exchange is bound to fixed, configured, service end- points. Synchronous blocking calls exchange information based on formats declared in project Wiki-pages or Word-documents. Most solutions are stateless, with I/O bound performance. Changes typically require system wide, synchronized, upgrades. This lead to development dropping in velocity, as each module or team will find it hard or impossible to act independently of each other.

Level 1

Using the Query/Response pattern for the first time often leads to healthy temporal decoupling pretty quick. But with a lot of code still written with a synchronous model in mind, the data exchange tend to look a bit like sync. Solutions move towards being stateful, but loosen their I/O-bound performance characteristics. It's hard for developer to think about queries and responses not coming from known components. Already at this level teams and modules gain a lot in the capability to move independently. Releases and deployment is practically not a tangle any more, although the view on evolutionary data-structures or protocols for data, may lag behind and still be Wiki/Document-based.

Level 2

At this level a deeper insight into the value of a proper data-structure or protocol for payload, which can evolve as required, is often gained. With this comes the extended benefit of seamless upgrades and service evolution. Developers get to experience how responsibilities can move without breaking or changing any integration code - response publishers can change owners and location.

Level 3

More and more ideas around reactivity and flexibility begin to take form. Events can immediately trigger queries which may enrich a local context based on current needs. This moves the design and use beyond a system using sync, and durable persistent state, to a more ephemeral and living model. The data structure of payloads tend to be less bound to strict types and more malleable data shapes.

Level 4 and beyond...

Information exchange using the Query/Response pattern allows for almost limitless evolution of services, or components, no longer bound to versions or availability. The structure of any data is also very dynamic, information can be partial, enriched, or come in different sets, from different publishers. No schema is required at this level, but data shapes are used, which can be embraced by all collaborators in the architecture. Queries are sent and responses consumed, sometimes within deliberate timeouts; take-until semantics. This way modules can provide, and fulfill, explicit SLAs if required.

INFO

This is of course not supposed to be taken too seriously, but the maturity levels describes a journey, from a strict and stale model, into one where evolution and change is quite normal.

',13),i=[n];function s(l,d,c,u,h,m){return a(),t("div",null,i)}const f=e(r,[["render",s]]);export{y as __pageData,f as default}; +import{_ as e,c as t,o as a,a3 as o}from"./chunks/framework.BLMDJhiA.js";const y=JSON.parse('{"title":"Query/Response Maturity Model","description":"","frontmatter":{},"headers":[],"relativePath":"reference/query-response-maturity-model.md","filePath":"reference/query-response-maturity-model.md","lastUpdated":1720465254000}'),r={name:"reference/query-response-maturity-model.md"},n=o('

Query/Response Maturity Model

Just like with the Richardson Maturity Model, I've identified an evolution of maturity around the acceptance, use and implementation of Query/Response. It describes the benefits, opportunities and also complexities, pretty well.

Level 0 - Purgatory

All communication and exchange is bound to fixed, configured, service end- points. Synchronous blocking calls exchange information based on formats declared in project Wiki-pages or Word-documents. Most solutions are stateless, with I/O bound performance. Changes typically require system wide, synchronized, upgrades. This lead to development dropping in velocity, as each module or team will find it hard or impossible to act independently of each other.

Level 1

Using the Query/Response pattern for the first time often leads to healthy temporal decoupling pretty quick. But with a lot of code still written with a synchronous model in mind, the data exchange tend to look a bit like sync. Solutions move towards being stateful, but loosen their I/O-bound performance characteristics. It's hard for developer to think about queries and responses not coming from known components. Already at this level teams and modules gain a lot in the capability to move independently. Releases and deployment is practically not a tangle any more, although the view on evolutionary data-structures or protocols for data, may lag behind and still be Wiki/Document-based.

Level 2

At this level a deeper insight into the value of a proper data-structure or protocol for payload, which can evolve as required, is often gained. With this comes the extended benefit of seamless upgrades and service evolution. Developers get to experience how responsibilities can move without breaking or changing any integration code - response publishers can change owners and location.

Level 3

More and more ideas around reactivity and flexibility begin to take form. Events can immediately trigger queries which may enrich a local context based on current needs. This moves the design and use beyond a system using sync, and durable persistent state, to a more ephemeral and living model. The data structure of payloads tend to be less bound to strict types and more malleable data shapes.

Level 4 and beyond...

Information exchange using the Query/Response pattern allows for almost limitless evolution of services, or components, no longer bound to versions or availability. The structure of any data is also very dynamic, information can be partial, enriched, or come in different sets, from different publishers. No schema is required at this level, but data shapes are used, which can be embraced by all collaborators in the architecture. Queries are sent and responses consumed, sometimes within deliberate timeouts; take-until semantics. This way modules can provide, and fulfill, explicit SLAs if required.

INFO

This is of course not supposed to be taken too seriously, but the maturity levels describes a journey, from a strict and stale model, into one where evolution and change is quite normal.

',13),i=[n];function s(l,d,c,u,h,m){return a(),t("div",null,i)}const f=e(r,[["render",s]]);export{y as __pageData,f as default}; diff --git a/assets/reference_query-response-maturity-model.md.CYdPkauy.lean.js b/assets/reference_query-response-maturity-model.md.B_1-RK-U.lean.js similarity index 75% rename from assets/reference_query-response-maturity-model.md.CYdPkauy.lean.js rename to assets/reference_query-response-maturity-model.md.B_1-RK-U.lean.js index 665276f..e89fe2c 100644 --- a/assets/reference_query-response-maturity-model.md.CYdPkauy.lean.js +++ b/assets/reference_query-response-maturity-model.md.B_1-RK-U.lean.js @@ -1 +1 @@ -import{_ as e,c as t,o as a,a3 as o}from"./chunks/framework.Bsyxd66g.js";const y=JSON.parse('{"title":"Query/Response Maturity Model","description":"","frontmatter":{},"headers":[],"relativePath":"reference/query-response-maturity-model.md","filePath":"reference/query-response-maturity-model.md","lastUpdated":1720465254000}'),r={name:"reference/query-response-maturity-model.md"},n=o("",13),i=[n];function s(l,d,c,u,h,m){return a(),t("div",null,i)}const f=e(r,[["render",s]]);export{y as __pageData,f as default}; +import{_ as e,c as t,o as a,a3 as o}from"./chunks/framework.BLMDJhiA.js";const y=JSON.parse('{"title":"Query/Response Maturity Model","description":"","frontmatter":{},"headers":[],"relativePath":"reference/query-response-maturity-model.md","filePath":"reference/query-response-maturity-model.md","lastUpdated":1720465254000}'),r={name:"reference/query-response-maturity-model.md"},n=o("",13),i=[n];function s(l,d,c,u,h,m){return a(),t("div",null,i)}const f=e(r,[["render",s]]);export{y as __pageData,f as default}; diff --git a/assets/reference_the-query-response-protocol.md.5jCLnaSz.js b/assets/reference_the-query-response-protocol.md.B-gp6A0B.js similarity index 98% rename from assets/reference_the-query-response-protocol.md.5jCLnaSz.js rename to assets/reference_the-query-response-protocol.md.B-gp6A0B.js index 18f0826..2b74bed 100644 --- a/assets/reference_the-query-response-protocol.md.5jCLnaSz.js +++ b/assets/reference_the-query-response-protocol.md.B-gp6A0B.js @@ -1 +1 @@ -import{_ as e,c as o,o as t,a3 as s}from"./chunks/framework.Bsyxd66g.js";const b=JSON.parse('{"title":"Query/Response Protocol","description":"","frontmatter":{},"headers":[],"relativePath":"reference/the-query-response-protocol.md","filePath":"reference/the-query-response-protocol.md","lastUpdated":1720550803000}'),a={name:"reference/the-query-response-protocol.md"},r=s('

Query/Response Protocol

I'd like to describe the Query/Response pattern in a more formal but not too strict way, since it's not in any way some type of standard or protocol. This is a pattern derived from the general idea of expressing a need or demand, as previously told. It is shaped here, into a specific version, or flavour, in the Query/Response pattern. It simply contains my recommendations and suggestions on rules or principles to follow.

Please, take what you like, leave the rest, and extend as you seem fit.

Use of the keywords: "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" are intended to follow the definitions of RFC 2119.

Intent

The Query/Response pattern aims to describe a model for information sharing in a distributed system. It does so by using strong decoupling of system actors and establishing asynchronous message-based high-level data exchange, as the only means of communication.

The following specifications tries to provide a set of rules and guides, which can be used as an authoritative source for developer, implementing the pattern.

Components and Collaborators

NameTypeDescription
QuerymessageVery small, published notification.
ResponsemessageCarries information as payload.
AddresslocationReference to "a mailbox"
PublisheractorInitiates publish method calls.
ConsumeractorAccepts consume method calls.

Query

A notification that expresses a specific need or whish, which can be fulfilled by a response, published to a specified return address. The query MUST state its need or whish in an interpretable way. It may use any suitable syntax, semantics or language. Most commonly a simple string or term is used, similar to a message subject, -name or an event routing-key. A query MUST specify an address for responses, which SHOULD be appropriate for the stated query and, technically available, as the query is created.

Recommendation

I very much recommend creating queries with expressions or terms from a domain specific, or ubiquitous language. This allows for broader understanding and involvement of stakeholders. Keeping queries human readable makes sense. It's often desirable to use structured terms, with semantics, such as filters or parameters. This is quite common and not at all bad.

Response

A notification, published, as a response to a query, optionally carrying an information- or data-payload. A response MUST NOT be sent without an intent to answer a specific query (use event notifications for that). The response MUST be sent to the address of the query it responds to, without manipulating it. A response SHOULD carry an appropriate information- or data-payload, with the intent to answer the query it responds to. Note that this is not a strict requirement. Responses SHOULD be sent within an appropriate time frame of seeing a query.

TIP

In most cases it's desirable to publish a response as quick as possible, after consuming a query.

Address

Describes and designates an addressable location with the capability to receive and handle responses. Typically a messaging mailbox or a queue. The address MUST NOT describe a system actor or collaborator, but instead ensure decoupling between a publisher and a consumer.

TIP

In messaging or broker based systems, the address is typically a routing key, topic or a queue-name.

Publisher

An actor that initiates the publishing of a notification, either a query or a response depending on its current role. The publisher MUST NOT be responsible for the arrival of any published information. Publishers MUST NOT know any consumers.

Note

The concrete interpolated roles Query-Publisher and Response-Publisher, does not have to be bound to a single or unique actor.

It is open for the implementation of the Query/Response pattern to solve or choose how it ensures delivery of messages, e.g. using a broker- or queue- based messaging system or some other solution for asynchronous communication.

Consumer

An actor that willingly yields to the consumption of notifications, from some external source, either a response or a query depending on its current role. Consumers MUST NOT know any publishers.

Note

The concrete interpolated roles Query-Consumer and Response-Consumer, does not have to be bound to a single or unique actor.

Methods and Actions

Nothing in the Query/Response pattern is synchronous, or based on the notion of guaranteed delivery (or only-once semantics). The following structured step-by-step description is only for documentation purposes, and does not, in any way, define a sequence which can be relied upon.

Prepare Address

Before publishing a query, the query publisher SHOULD ensure that an appropriate address, specified for the query, can be handled.

Note

Implementations are free to use a best-effort approach. It may be that the only option is to use short-lived or temporary resources, which may or may not fail to be allocated. Therefore there's no strict requirement to ensure that the address can be handled.

Publish Query

The query publisher can, at any time, choose to publish a query. No ACK or NACK will be provided and the query publisher MUST NOT assume that the query has been consumed, or that a response will be returned at this time. The publisher SHOULD consider the case where the query is lost, examine options to detect and repair this, if possible; timeouts, retries or fallbacks are perhaps options to investigate.

Consume Query

A query consumer, that is willingly listening for queries, may at any time receive, and choose to handle a query. Consuming queries is an unbound operation. The consumer SHOULD handle queries with an intent to provide a response, or ignore the query. A consumer MAY decide to publish none, one or any number of responses to the query - it is optional. A consumer MAY at any time choose to stop listening for queries.

TIP

Please note that the Query/Response pattern does not protect against query consumers with harmful intent. Implementations should consider issues like security, encryption and trust as extensions to it.

Publish Response

A response publisher MUST use the provided address of the query it responds to, when publishing responses. No ACK or NACK will be provided and the publisher MUST NOT assume that the response has been delivered, arrived properly or consumed.

Consume Response

A response consumer, listening for responses at a previously created address, MAY at any time receive one or several responses - or not at all. Consuming responses is an unbounded operation. Any received response MAY have a payload or body of information. The consumer SHOULD assert and validate any transferred information with great care. A consumer MAY at any time choose to stop listening for responses.

',39),n=[r];function i(d,l,c,u,p,h){return t(),o("div",null,n)}const y=e(a,[["render",i]]);export{b as __pageData,y as default}; +import{_ as e,c as o,o as t,a3 as s}from"./chunks/framework.BLMDJhiA.js";const b=JSON.parse('{"title":"Query/Response Protocol","description":"","frontmatter":{},"headers":[],"relativePath":"reference/the-query-response-protocol.md","filePath":"reference/the-query-response-protocol.md","lastUpdated":1720550803000}'),a={name:"reference/the-query-response-protocol.md"},r=s('

Query/Response Protocol

I'd like to describe the Query/Response pattern in a more formal but not too strict way, since it's not in any way some type of standard or protocol. This is a pattern derived from the general idea of expressing a need or demand, as previously told. It is shaped here, into a specific version, or flavour, in the Query/Response pattern. It simply contains my recommendations and suggestions on rules or principles to follow.

Please, take what you like, leave the rest, and extend as you seem fit.

Use of the keywords: "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" are intended to follow the definitions of RFC 2119.

Intent

The Query/Response pattern aims to describe a model for information sharing in a distributed system. It does so by using strong decoupling of system actors and establishing asynchronous message-based high-level data exchange, as the only means of communication.

The following specifications tries to provide a set of rules and guides, which can be used as an authoritative source for developer, implementing the pattern.

Components and Collaborators

NameTypeDescription
QuerymessageVery small, published notification.
ResponsemessageCarries information as payload.
AddresslocationReference to "a mailbox"
PublisheractorInitiates publish method calls.
ConsumeractorAccepts consume method calls.

Query

A notification that expresses a specific need or whish, which can be fulfilled by a response, published to a specified return address. The query MUST state its need or whish in an interpretable way. It may use any suitable syntax, semantics or language. Most commonly a simple string or term is used, similar to a message subject, -name or an event routing-key. A query MUST specify an address for responses, which SHOULD be appropriate for the stated query and, technically available, as the query is created.

Recommendation

I very much recommend creating queries with expressions or terms from a domain specific, or ubiquitous language. This allows for broader understanding and involvement of stakeholders. Keeping queries human readable makes sense. It's often desirable to use structured terms, with semantics, such as filters or parameters. This is quite common and not at all bad.

Response

A notification, published, as a response to a query, optionally carrying an information- or data-payload. A response MUST NOT be sent without an intent to answer a specific query (use event notifications for that). The response MUST be sent to the address of the query it responds to, without manipulating it. A response SHOULD carry an appropriate information- or data-payload, with the intent to answer the query it responds to. Note that this is not a strict requirement. Responses SHOULD be sent within an appropriate time frame of seeing a query.

TIP

In most cases it's desirable to publish a response as quick as possible, after consuming a query.

Address

Describes and designates an addressable location with the capability to receive and handle responses. Typically a messaging mailbox or a queue. The address MUST NOT describe a system actor or collaborator, but instead ensure decoupling between a publisher and a consumer.

TIP

In messaging or broker based systems, the address is typically a routing key, topic or a queue-name.

Publisher

An actor that initiates the publishing of a notification, either a query or a response depending on its current role. The publisher MUST NOT be responsible for the arrival of any published information. Publishers MUST NOT know any consumers.

Note

The concrete interpolated roles Query-Publisher and Response-Publisher, does not have to be bound to a single or unique actor.

It is open for the implementation of the Query/Response pattern to solve or choose how it ensures delivery of messages, e.g. using a broker- or queue- based messaging system or some other solution for asynchronous communication.

Consumer

An actor that willingly yields to the consumption of notifications, from some external source, either a response or a query depending on its current role. Consumers MUST NOT know any publishers.

Note

The concrete interpolated roles Query-Consumer and Response-Consumer, does not have to be bound to a single or unique actor.

Methods and Actions

Nothing in the Query/Response pattern is synchronous, or based on the notion of guaranteed delivery (or only-once semantics). The following structured step-by-step description is only for documentation purposes, and does not, in any way, define a sequence which can be relied upon.

Prepare Address

Before publishing a query, the query publisher SHOULD ensure that an appropriate address, specified for the query, can be handled.

Note

Implementations are free to use a best-effort approach. It may be that the only option is to use short-lived or temporary resources, which may or may not fail to be allocated. Therefore there's no strict requirement to ensure that the address can be handled.

Publish Query

The query publisher can, at any time, choose to publish a query. No ACK or NACK will be provided and the query publisher MUST NOT assume that the query has been consumed, or that a response will be returned at this time. The publisher SHOULD consider the case where the query is lost, examine options to detect and repair this, if possible; timeouts, retries or fallbacks are perhaps options to investigate.

Consume Query

A query consumer, that is willingly listening for queries, may at any time receive, and choose to handle a query. Consuming queries is an unbound operation. The consumer SHOULD handle queries with an intent to provide a response, or ignore the query. A consumer MAY decide to publish none, one or any number of responses to the query - it is optional. A consumer MAY at any time choose to stop listening for queries.

TIP

Please note that the Query/Response pattern does not protect against query consumers with harmful intent. Implementations should consider issues like security, encryption and trust as extensions to it.

Publish Response

A response publisher MUST use the provided address of the query it responds to, when publishing responses. No ACK or NACK will be provided and the publisher MUST NOT assume that the response has been delivered, arrived properly or consumed.

Consume Response

A response consumer, listening for responses at a previously created address, MAY at any time receive one or several responses - or not at all. Consuming responses is an unbounded operation. Any received response MAY have a payload or body of information. The consumer SHOULD assert and validate any transferred information with great care. A consumer MAY at any time choose to stop listening for responses.

',39),n=[r];function i(d,l,c,u,p,h){return t(),o("div",null,n)}const y=e(a,[["render",i]]);export{b as __pageData,y as default}; diff --git a/assets/reference_the-query-response-protocol.md.5jCLnaSz.lean.js b/assets/reference_the-query-response-protocol.md.B-gp6A0B.lean.js similarity index 74% rename from assets/reference_the-query-response-protocol.md.5jCLnaSz.lean.js rename to assets/reference_the-query-response-protocol.md.B-gp6A0B.lean.js index f3bfc19..7927441 100644 --- a/assets/reference_the-query-response-protocol.md.5jCLnaSz.lean.js +++ b/assets/reference_the-query-response-protocol.md.B-gp6A0B.lean.js @@ -1 +1 @@ -import{_ as e,c as o,o as t,a3 as s}from"./chunks/framework.Bsyxd66g.js";const b=JSON.parse('{"title":"Query/Response Protocol","description":"","frontmatter":{},"headers":[],"relativePath":"reference/the-query-response-protocol.md","filePath":"reference/the-query-response-protocol.md","lastUpdated":1720550803000}'),a={name:"reference/the-query-response-protocol.md"},r=s("",39),n=[r];function i(d,l,c,u,p,h){return t(),o("div",null,n)}const y=e(a,[["render",i]]);export{b as __pageData,y as default}; +import{_ as e,c as o,o as t,a3 as s}from"./chunks/framework.BLMDJhiA.js";const b=JSON.parse('{"title":"Query/Response Protocol","description":"","frontmatter":{},"headers":[],"relativePath":"reference/the-query-response-protocol.md","filePath":"reference/the-query-response-protocol.md","lastUpdated":1720550803000}'),a={name:"reference/the-query-response-protocol.md"},r=s("",39),n=[r];function i(d,l,c,u,p,h){return t(),o("div",null,n)}const y=e(a,[["render",i]]);export{b as __pageData,y as default}; diff --git a/assets/style.CF5YbA3u.css b/assets/style.CF5YbA3u.css new file mode 100644 index 0000000..3bc6993 --- /dev/null +++ b/assets/style.CF5YbA3u.css @@ -0,0 +1 @@ +@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/query-response-spring-amqp/assets/inter-roman-cyrillic-ext.BBPuwvHQ.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/query-response-spring-amqp/assets/inter-roman-cyrillic.C5lxZ8CY.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/query-response-spring-amqp/assets/inter-roman-greek-ext.CqjqNYQ-.woff2) format("woff2");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/query-response-spring-amqp/assets/inter-roman-greek.BBVDIX6e.woff2) format("woff2");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/query-response-spring-amqp/assets/inter-roman-vietnamese.BjW4sHH5.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/query-response-spring-amqp/assets/inter-roman-latin-ext.4ZJIpNVo.woff2) format("woff2");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/query-response-spring-amqp/assets/inter-roman-latin.Di8DUHzh.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:italic;font-weight:100 900;font-display:swap;src:url(/query-response-spring-amqp/assets/inter-italic-cyrillic-ext.r48I6akx.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:italic;font-weight:100 900;font-display:swap;src:url(/query-response-spring-amqp/assets/inter-italic-cyrillic.By2_1cv3.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:italic;font-weight:100 900;font-display:swap;src:url(/query-response-spring-amqp/assets/inter-italic-greek-ext.1u6EdAuj.woff2) format("woff2");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:italic;font-weight:100 900;font-display:swap;src:url(/query-response-spring-amqp/assets/inter-italic-greek.DJ8dCoTZ.woff2) format("woff2");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:italic;font-weight:100 900;font-display:swap;src:url(/query-response-spring-amqp/assets/inter-italic-vietnamese.BSbpV94h.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:italic;font-weight:100 900;font-display:swap;src:url(/query-response-spring-amqp/assets/inter-italic-latin-ext.CN1xVJS-.woff2) format("woff2");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:italic;font-weight:100 900;font-display:swap;src:url(/query-response-spring-amqp/assets/inter-italic-latin.C2AdPX0b.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Punctuation SC;font-weight:400;src:local("PingFang SC Regular"),local("Noto Sans CJK SC"),local("Microsoft YaHei");unicode-range:U+201C,U+201D,U+2018,U+2019,U+2E3A,U+2014,U+2013,U+2026,U+00B7,U+007E,U+002F}@font-face{font-family:Punctuation SC;font-weight:500;src:local("PingFang SC Medium"),local("Noto Sans CJK SC"),local("Microsoft YaHei");unicode-range:U+201C,U+201D,U+2018,U+2019,U+2E3A,U+2014,U+2013,U+2026,U+00B7,U+007E,U+002F}@font-face{font-family:Punctuation SC;font-weight:600;src:local("PingFang SC Semibold"),local("Noto Sans CJK SC Bold"),local("Microsoft YaHei Bold");unicode-range:U+201C,U+201D,U+2018,U+2019,U+2E3A,U+2014,U+2013,U+2026,U+00B7,U+007E,U+002F}@font-face{font-family:Punctuation SC;font-weight:700;src:local("PingFang SC Semibold"),local("Noto Sans CJK SC Bold"),local("Microsoft YaHei Bold");unicode-range:U+201C,U+201D,U+2018,U+2019,U+2E3A,U+2014,U+2013,U+2026,U+00B7,U+007E,U+002F}:root{--vp-c-white: #ffffff;--vp-c-black: #000000;--vp-c-neutral: var(--vp-c-black);--vp-c-neutral-inverse: var(--vp-c-white)}.dark{--vp-c-neutral: var(--vp-c-white);--vp-c-neutral-inverse: var(--vp-c-black)}:root{--vp-c-gray-1: #dddde3;--vp-c-gray-2: #e4e4e9;--vp-c-gray-3: #ebebef;--vp-c-gray-soft: rgba(142, 150, 170, .14);--vp-c-indigo-1: #3451b2;--vp-c-indigo-2: #3a5ccc;--vp-c-indigo-3: #5672cd;--vp-c-indigo-soft: rgba(100, 108, 255, .14);--vp-c-purple-1: #6f42c1;--vp-c-purple-2: #7e4cc9;--vp-c-purple-3: #8e5cd9;--vp-c-purple-soft: rgba(159, 122, 234, .14);--vp-c-green-1: #18794e;--vp-c-green-2: #299764;--vp-c-green-3: #30a46c;--vp-c-green-soft: rgba(16, 185, 129, .14);--vp-c-yellow-1: #915930;--vp-c-yellow-2: #946300;--vp-c-yellow-3: #9f6a00;--vp-c-yellow-soft: rgba(234, 179, 8, .14);--vp-c-red-1: #b8272c;--vp-c-red-2: #d5393e;--vp-c-red-3: #e0575b;--vp-c-red-soft: rgba(244, 63, 94, .14);--vp-c-sponsor: #db2777}.dark{--vp-c-gray-1: #515c67;--vp-c-gray-2: #414853;--vp-c-gray-3: #32363f;--vp-c-gray-soft: rgba(101, 117, 133, .16);--vp-c-indigo-1: #a8b1ff;--vp-c-indigo-2: #5c73e7;--vp-c-indigo-3: #3e63dd;--vp-c-indigo-soft: rgba(100, 108, 255, .16);--vp-c-purple-1: #c8abfa;--vp-c-purple-2: #a879e6;--vp-c-purple-3: #8e5cd9;--vp-c-purple-soft: rgba(159, 122, 234, .16);--vp-c-green-1: #3dd68c;--vp-c-green-2: #30a46c;--vp-c-green-3: #298459;--vp-c-green-soft: rgba(16, 185, 129, .16);--vp-c-yellow-1: #f9b44e;--vp-c-yellow-2: #da8b17;--vp-c-yellow-3: #a46a0a;--vp-c-yellow-soft: rgba(234, 179, 8, .16);--vp-c-red-1: #f66f81;--vp-c-red-2: #f14158;--vp-c-red-3: #b62a3c;--vp-c-red-soft: rgba(244, 63, 94, .16)}:root{--vp-c-bg: #ffffff;--vp-c-bg-alt: #f6f6f7;--vp-c-bg-elv: #ffffff;--vp-c-bg-soft: #f6f6f7}.dark{--vp-c-bg: #1b1b1f;--vp-c-bg-alt: #161618;--vp-c-bg-elv: #202127;--vp-c-bg-soft: #202127}:root{--vp-c-border: #c2c2c4;--vp-c-divider: #e2e2e3;--vp-c-gutter: #e2e2e3}.dark{--vp-c-border: #3c3f44;--vp-c-divider: #2e2e32;--vp-c-gutter: #000000}:root{--vp-c-text-1: rgba(60, 60, 67);--vp-c-text-2: rgba(60, 60, 67, .78);--vp-c-text-3: rgba(60, 60, 67, .56)}.dark{--vp-c-text-1: rgba(255, 255, 245, .86);--vp-c-text-2: rgba(235, 235, 245, .6);--vp-c-text-3: rgba(235, 235, 245, .38)}:root{--vp-c-default-1: var(--vp-c-gray-1);--vp-c-default-2: var(--vp-c-gray-2);--vp-c-default-3: var(--vp-c-gray-3);--vp-c-default-soft: var(--vp-c-gray-soft);--vp-c-brand-1: var(--vp-c-indigo-1);--vp-c-brand-2: var(--vp-c-indigo-2);--vp-c-brand-3: var(--vp-c-indigo-3);--vp-c-brand-soft: var(--vp-c-indigo-soft);--vp-c-brand: var(--vp-c-brand-1);--vp-c-tip-1: var(--vp-c-brand-1);--vp-c-tip-2: var(--vp-c-brand-2);--vp-c-tip-3: var(--vp-c-brand-3);--vp-c-tip-soft: var(--vp-c-brand-soft);--vp-c-note-1: var(--vp-c-brand-1);--vp-c-note-2: var(--vp-c-brand-2);--vp-c-note-3: var(--vp-c-brand-3);--vp-c-note-soft: var(--vp-c-brand-soft);--vp-c-success-1: var(--vp-c-green-1);--vp-c-success-2: var(--vp-c-green-2);--vp-c-success-3: var(--vp-c-green-3);--vp-c-success-soft: var(--vp-c-green-soft);--vp-c-important-1: var(--vp-c-purple-1);--vp-c-important-2: var(--vp-c-purple-2);--vp-c-important-3: var(--vp-c-purple-3);--vp-c-important-soft: var(--vp-c-purple-soft);--vp-c-warning-1: var(--vp-c-yellow-1);--vp-c-warning-2: var(--vp-c-yellow-2);--vp-c-warning-3: var(--vp-c-yellow-3);--vp-c-warning-soft: var(--vp-c-yellow-soft);--vp-c-danger-1: var(--vp-c-red-1);--vp-c-danger-2: var(--vp-c-red-2);--vp-c-danger-3: var(--vp-c-red-3);--vp-c-danger-soft: var(--vp-c-red-soft);--vp-c-caution-1: var(--vp-c-red-1);--vp-c-caution-2: var(--vp-c-red-2);--vp-c-caution-3: var(--vp-c-red-3);--vp-c-caution-soft: var(--vp-c-red-soft)}:root{--vp-font-family-base: "Inter", ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--vp-font-family-mono: ui-monospace, "Menlo", "Monaco", "Consolas", "Liberation Mono", "Courier New", monospace;font-optical-sizing:auto}:root:where(:lang(zh)){--vp-font-family-base: "Punctuation SC", "Inter", ui-sans-serif, system-ui, "PingFang SC", "Noto Sans CJK SC", "Noto Sans SC", "Heiti SC", "Microsoft YaHei", "DengXian", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"}:root{--vp-shadow-1: 0 1px 2px rgba(0, 0, 0, .04), 0 1px 2px rgba(0, 0, 0, .06);--vp-shadow-2: 0 3px 12px rgba(0, 0, 0, .07), 0 1px 4px rgba(0, 0, 0, .07);--vp-shadow-3: 0 12px 32px rgba(0, 0, 0, .1), 0 2px 6px rgba(0, 0, 0, .08);--vp-shadow-4: 0 14px 44px rgba(0, 0, 0, .12), 0 3px 9px rgba(0, 0, 0, .12);--vp-shadow-5: 0 18px 56px rgba(0, 0, 0, .16), 0 4px 12px rgba(0, 0, 0, .16)}:root{--vp-z-index-footer: 10;--vp-z-index-local-nav: 20;--vp-z-index-nav: 30;--vp-z-index-layout-top: 40;--vp-z-index-backdrop: 50;--vp-z-index-sidebar: 60}@media (min-width: 960px){:root{--vp-z-index-sidebar: 25}}:root{--vp-layout-max-width: 1440px}:root{--vp-header-anchor-symbol: "#"}:root{--vp-code-line-height: 1.7;--vp-code-font-size: .875em;--vp-code-color: var(--vp-c-brand-1);--vp-code-link-color: var(--vp-c-brand-1);--vp-code-link-hover-color: var(--vp-c-brand-2);--vp-code-bg: var(--vp-c-default-soft);--vp-code-block-color: var(--vp-c-text-2);--vp-code-block-bg: var(--vp-c-bg-alt);--vp-code-block-divider-color: var(--vp-c-gutter);--vp-code-lang-color: var(--vp-c-text-3);--vp-code-line-highlight-color: var(--vp-c-default-soft);--vp-code-line-number-color: var(--vp-c-text-3);--vp-code-line-diff-add-color: var(--vp-c-success-soft);--vp-code-line-diff-add-symbol-color: var(--vp-c-success-1);--vp-code-line-diff-remove-color: var(--vp-c-danger-soft);--vp-code-line-diff-remove-symbol-color: var(--vp-c-danger-1);--vp-code-line-warning-color: var(--vp-c-warning-soft);--vp-code-line-error-color: var(--vp-c-danger-soft);--vp-code-copy-code-border-color: var(--vp-c-divider);--vp-code-copy-code-bg: var(--vp-c-bg-soft);--vp-code-copy-code-hover-border-color: var(--vp-c-divider);--vp-code-copy-code-hover-bg: var(--vp-c-bg);--vp-code-copy-code-active-text: var(--vp-c-text-2);--vp-code-copy-copied-text-content: "Copied";--vp-code-tab-divider: var(--vp-code-block-divider-color);--vp-code-tab-text-color: var(--vp-c-text-2);--vp-code-tab-bg: var(--vp-code-block-bg);--vp-code-tab-hover-text-color: var(--vp-c-text-1);--vp-code-tab-active-text-color: var(--vp-c-text-1);--vp-code-tab-active-bar-color: var(--vp-c-brand-1)}:root{--vp-button-brand-border: transparent;--vp-button-brand-text: var(--vp-c-white);--vp-button-brand-bg: var(--vp-c-brand-3);--vp-button-brand-hover-border: transparent;--vp-button-brand-hover-text: var(--vp-c-white);--vp-button-brand-hover-bg: var(--vp-c-brand-2);--vp-button-brand-active-border: transparent;--vp-button-brand-active-text: var(--vp-c-white);--vp-button-brand-active-bg: var(--vp-c-brand-1);--vp-button-alt-border: transparent;--vp-button-alt-text: var(--vp-c-text-1);--vp-button-alt-bg: var(--vp-c-default-3);--vp-button-alt-hover-border: transparent;--vp-button-alt-hover-text: var(--vp-c-text-1);--vp-button-alt-hover-bg: var(--vp-c-default-2);--vp-button-alt-active-border: transparent;--vp-button-alt-active-text: var(--vp-c-text-1);--vp-button-alt-active-bg: var(--vp-c-default-1);--vp-button-sponsor-border: var(--vp-c-text-2);--vp-button-sponsor-text: var(--vp-c-text-2);--vp-button-sponsor-bg: transparent;--vp-button-sponsor-hover-border: var(--vp-c-sponsor);--vp-button-sponsor-hover-text: var(--vp-c-sponsor);--vp-button-sponsor-hover-bg: transparent;--vp-button-sponsor-active-border: var(--vp-c-sponsor);--vp-button-sponsor-active-text: var(--vp-c-sponsor);--vp-button-sponsor-active-bg: transparent}:root{--vp-custom-block-font-size: 14px;--vp-custom-block-code-font-size: 13px;--vp-custom-block-info-border: transparent;--vp-custom-block-info-text: var(--vp-c-text-1);--vp-custom-block-info-bg: var(--vp-c-default-soft);--vp-custom-block-info-code-bg: var(--vp-c-default-soft);--vp-custom-block-note-border: transparent;--vp-custom-block-note-text: var(--vp-c-text-1);--vp-custom-block-note-bg: var(--vp-c-default-soft);--vp-custom-block-note-code-bg: var(--vp-c-default-soft);--vp-custom-block-tip-border: transparent;--vp-custom-block-tip-text: var(--vp-c-text-1);--vp-custom-block-tip-bg: var(--vp-c-tip-soft);--vp-custom-block-tip-code-bg: var(--vp-c-tip-soft);--vp-custom-block-important-border: transparent;--vp-custom-block-important-text: var(--vp-c-text-1);--vp-custom-block-important-bg: var(--vp-c-important-soft);--vp-custom-block-important-code-bg: var(--vp-c-important-soft);--vp-custom-block-warning-border: transparent;--vp-custom-block-warning-text: var(--vp-c-text-1);--vp-custom-block-warning-bg: var(--vp-c-warning-soft);--vp-custom-block-warning-code-bg: var(--vp-c-warning-soft);--vp-custom-block-danger-border: transparent;--vp-custom-block-danger-text: var(--vp-c-text-1);--vp-custom-block-danger-bg: var(--vp-c-danger-soft);--vp-custom-block-danger-code-bg: var(--vp-c-danger-soft);--vp-custom-block-caution-border: transparent;--vp-custom-block-caution-text: var(--vp-c-text-1);--vp-custom-block-caution-bg: var(--vp-c-caution-soft);--vp-custom-block-caution-code-bg: var(--vp-c-caution-soft);--vp-custom-block-details-border: var(--vp-custom-block-info-border);--vp-custom-block-details-text: var(--vp-custom-block-info-text);--vp-custom-block-details-bg: var(--vp-custom-block-info-bg);--vp-custom-block-details-code-bg: var(--vp-custom-block-info-code-bg)}:root{--vp-input-border-color: var(--vp-c-border);--vp-input-bg-color: var(--vp-c-bg-alt);--vp-input-switch-bg-color: var(--vp-c-default-soft)}:root{--vp-nav-height: 64px;--vp-nav-bg-color: var(--vp-c-bg);--vp-nav-screen-bg-color: var(--vp-c-bg);--vp-nav-logo-height: 24px}.hide-nav{--vp-nav-height: 0px}.hide-nav .VPSidebar{--vp-nav-height: 22px}:root{--vp-local-nav-bg-color: var(--vp-c-bg)}:root{--vp-sidebar-width: 272px;--vp-sidebar-bg-color: var(--vp-c-bg-alt)}:root{--vp-backdrop-bg-color: rgba(0, 0, 0, .6)}:root{--vp-home-hero-name-color: var(--vp-c-brand-1);--vp-home-hero-name-background: transparent;--vp-home-hero-image-background-image: none;--vp-home-hero-image-filter: none}:root{--vp-badge-info-border: transparent;--vp-badge-info-text: var(--vp-c-text-2);--vp-badge-info-bg: var(--vp-c-default-soft);--vp-badge-tip-border: transparent;--vp-badge-tip-text: var(--vp-c-tip-1);--vp-badge-tip-bg: var(--vp-c-tip-soft);--vp-badge-warning-border: transparent;--vp-badge-warning-text: var(--vp-c-warning-1);--vp-badge-warning-bg: var(--vp-c-warning-soft);--vp-badge-danger-border: transparent;--vp-badge-danger-text: var(--vp-c-danger-1);--vp-badge-danger-bg: var(--vp-c-danger-soft)}:root{--vp-carbon-ads-text-color: var(--vp-c-text-1);--vp-carbon-ads-poweredby-color: var(--vp-c-text-2);--vp-carbon-ads-bg-color: var(--vp-c-bg-soft);--vp-carbon-ads-hover-text-color: var(--vp-c-brand-1);--vp-carbon-ads-hover-poweredby-color: var(--vp-c-text-1)}:root{--vp-local-search-bg: var(--vp-c-bg);--vp-local-search-result-bg: var(--vp-c-bg);--vp-local-search-result-border: var(--vp-c-divider);--vp-local-search-result-selected-bg: var(--vp-c-bg);--vp-local-search-result-selected-border: var(--vp-c-brand-1);--vp-local-search-highlight-bg: var(--vp-c-brand-1);--vp-local-search-highlight-text: var(--vp-c-neutral-inverse)}@media (prefers-reduced-motion: reduce){*,:before,:after{animation-delay:-1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important;background-attachment:initial!important;scroll-behavior:auto!important;transition-duration:0s!important;transition-delay:0s!important}}*,:before,:after{box-sizing:border-box}html{line-height:1.4;font-size:16px;-webkit-text-size-adjust:100%}html.dark{color-scheme:dark}body{margin:0;width:100%;min-width:320px;min-height:100vh;line-height:24px;font-family:var(--vp-font-family-base);font-size:16px;font-weight:400;color:var(--vp-c-text-1);background-color:var(--vp-c-bg);font-synthesis:style;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}main{display:block}h1,h2,h3,h4,h5,h6{margin:0;line-height:24px;font-size:16px;font-weight:400}p{margin:0}strong,b{font-weight:600}a,area,button,[role=button],input,label,select,summary,textarea{touch-action:manipulation}a{color:inherit;text-decoration:inherit}ol,ul{list-style:none;margin:0;padding:0}blockquote{margin:0}pre,code,kbd,samp{font-family:var(--vp-font-family-mono)}img,svg,video,canvas,audio,iframe,embed,object{display:block}figure{margin:0}img,video{max-width:100%;height:auto}button,input,optgroup,select,textarea{border:0;padding:0;line-height:inherit;color:inherit}button{padding:0;font-family:inherit;background-color:transparent;background-image:none}button:enabled,[role=button]:enabled{cursor:pointer}button:focus,button:focus-visible{outline:1px dotted;outline:4px auto -webkit-focus-ring-color}button:focus:not(:focus-visible){outline:none!important}input:focus,textarea:focus,select:focus{outline:none}table{border-collapse:collapse}input{background-color:transparent}input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:var(--vp-c-text-3)}input::-ms-input-placeholder,textarea::-ms-input-placeholder{color:var(--vp-c-text-3)}input::placeholder,textarea::placeholder{color:var(--vp-c-text-3)}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}textarea{resize:vertical}select{-webkit-appearance:none}fieldset{margin:0;padding:0}h1,h2,h3,h4,h5,h6,li,p{overflow-wrap:break-word}vite-error-overlay{z-index:9999}mjx-container{overflow-x:auto}mjx-container>svg{display:inline-block;margin:auto}[class^=vpi-],[class*=" vpi-"],.vp-icon{width:1em;height:1em}[class^=vpi-].bg,[class*=" vpi-"].bg,.vp-icon.bg{background-size:100% 100%;background-color:transparent}[class^=vpi-]:not(.bg),[class*=" vpi-"]:not(.bg),.vp-icon:not(.bg){-webkit-mask:var(--icon) no-repeat;mask:var(--icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit}.vpi-align-left{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M21 6H3M15 12H3M17 18H3'/%3E%3C/svg%3E")}.vpi-arrow-right,.vpi-arrow-down,.vpi-arrow-left,.vpi-arrow-up{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M5 12h14M12 5l7 7-7 7'/%3E%3C/svg%3E")}.vpi-chevron-right,.vpi-chevron-down,.vpi-chevron-left,.vpi-chevron-up{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='m9 18 6-6-6-6'/%3E%3C/svg%3E")}.vpi-chevron-down,.vpi-arrow-down{transform:rotate(90deg)}.vpi-chevron-left,.vpi-arrow-left{transform:rotate(180deg)}.vpi-chevron-up,.vpi-arrow-up{transform:rotate(-90deg)}.vpi-square-pen{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7'/%3E%3Cpath d='M18.375 2.625a2.121 2.121 0 1 1 3 3L12 15l-4 1 1-4Z'/%3E%3C/svg%3E")}.vpi-plus{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M5 12h14M12 5v14'/%3E%3C/svg%3E")}.vpi-sun{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='4'/%3E%3Cpath d='M12 2v2M12 20v2M4.93 4.93l1.41 1.41M17.66 17.66l1.41 1.41M2 12h2M20 12h2M6.34 17.66l-1.41 1.41M19.07 4.93l-1.41 1.41'/%3E%3C/svg%3E")}.vpi-moon{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z'/%3E%3C/svg%3E")}.vpi-more-horizontal{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='1'/%3E%3Ccircle cx='19' cy='12' r='1'/%3E%3Ccircle cx='5' cy='12' r='1'/%3E%3C/svg%3E")}.vpi-languages{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='m5 8 6 6M4 14l6-6 2-3M2 5h12M7 2h1M22 22l-5-10-5 10M14 18h6'/%3E%3C/svg%3E")}.vpi-heart{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M19 14c1.49-1.46 3-3.21 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.76 0-3 .5-4.5 2-1.5-1.5-2.74-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4.05 3 5.5l7 7Z'/%3E%3C/svg%3E")}.vpi-search{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cpath d='m21 21-4.3-4.3'/%3E%3C/svg%3E")}.vpi-layout-list{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Crect width='7' height='7' x='3' y='3' rx='1'/%3E%3Crect width='7' height='7' x='3' y='14' rx='1'/%3E%3Cpath d='M14 4h7M14 9h7M14 15h7M14 20h7'/%3E%3C/svg%3E")}.vpi-delete{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M20 5H9l-7 7 7 7h11a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2ZM18 9l-6 6M12 9l6 6'/%3E%3C/svg%3E")}.vpi-corner-down-left{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='m9 10-5 5 5 5'/%3E%3Cpath d='M20 4v7a4 4 0 0 1-4 4H4'/%3E%3C/svg%3E")}:root{--vp-icon-copy: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='rgba(128,128,128,1)' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Crect width='8' height='4' x='8' y='2' rx='1' ry='1'/%3E%3Cpath d='M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2'/%3E%3C/svg%3E");--vp-icon-copied: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='rgba(128,128,128,1)' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Crect width='8' height='4' x='8' y='2' rx='1' ry='1'/%3E%3Cpath d='M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2'/%3E%3Cpath d='m9 14 2 2 4-4'/%3E%3C/svg%3E")}.vpi-social-discord{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20.317 4.37a19.791 19.791 0 0 0-4.885-1.515.074.074 0 0 0-.079.037c-.21.375-.444.864-.608 1.25a18.27 18.27 0 0 0-5.487 0 12.64 12.64 0 0 0-.617-1.25.077.077 0 0 0-.079-.037A19.736 19.736 0 0 0 3.677 4.37a.07.07 0 0 0-.032.027C.533 9.046-.32 13.58.099 18.057a.082.082 0 0 0 .031.057 19.9 19.9 0 0 0 5.993 3.03.078.078 0 0 0 .084-.028c.462-.63.874-1.295 1.226-1.994a.076.076 0 0 0-.041-.106 13.107 13.107 0 0 1-1.872-.892.077.077 0 0 1-.008-.128 10.2 10.2 0 0 0 .372-.292.074.074 0 0 1 .077-.01c3.928 1.793 8.18 1.793 12.062 0a.074.074 0 0 1 .078.01c.12.098.246.198.373.292a.077.077 0 0 1-.006.127 12.299 12.299 0 0 1-1.873.892.077.077 0 0 0-.041.107c.36.698.772 1.362 1.225 1.993a.076.076 0 0 0 .084.028 19.839 19.839 0 0 0 6.002-3.03.077.077 0 0 0 .032-.054c.5-5.177-.838-9.674-3.549-13.66a.061.061 0 0 0-.031-.03zM8.02 15.33c-1.183 0-2.157-1.085-2.157-2.419 0-1.333.956-2.419 2.157-2.419 1.21 0 2.176 1.096 2.157 2.42 0 1.333-.956 2.418-2.157 2.418zm7.975 0c-1.183 0-2.157-1.085-2.157-2.419 0-1.333.955-2.419 2.157-2.419 1.21 0 2.176 1.096 2.157 2.42 0 1.333-.946 2.418-2.157 2.418Z'/%3E%3C/svg%3E")}.vpi-social-facebook{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9.101 23.691v-7.98H6.627v-3.667h2.474v-1.58c0-4.085 1.848-5.978 5.858-5.978.401 0 .955.042 1.468.103a8.68 8.68 0 0 1 1.141.195v3.325a8.623 8.623 0 0 0-.653-.036 26.805 26.805 0 0 0-.733-.009c-.707 0-1.259.096-1.675.309a1.686 1.686 0 0 0-.679.622c-.258.42-.374.995-.374 1.752v1.297h3.919l-.386 2.103-.287 1.564h-3.246v8.245C19.396 23.238 24 18.179 24 12.044c0-6.627-5.373-12-12-12s-12 5.373-12 12c0 5.628 3.874 10.35 9.101 11.647Z'/%3E%3C/svg%3E")}.vpi-social-github{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12'/%3E%3C/svg%3E")}.vpi-social-instagram{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7.03.084c-1.277.06-2.149.264-2.91.563a5.874 5.874 0 0 0-2.124 1.388 5.878 5.878 0 0 0-1.38 2.127C.321 4.926.12 5.8.064 7.076.008 8.354-.005 8.764.001 12.023c.007 3.259.021 3.667.083 4.947.061 1.277.264 2.149.563 2.911.308.789.72 1.457 1.388 2.123a5.872 5.872 0 0 0 2.129 1.38c.763.295 1.636.496 2.913.552 1.278.056 1.689.069 4.947.063 3.257-.007 3.668-.021 4.947-.082 1.28-.06 2.147-.265 2.91-.563a5.881 5.881 0 0 0 2.123-1.388 5.881 5.881 0 0 0 1.38-2.129c.295-.763.496-1.636.551-2.912.056-1.28.07-1.69.063-4.948-.006-3.258-.02-3.667-.081-4.947-.06-1.28-.264-2.148-.564-2.911a5.892 5.892 0 0 0-1.387-2.123 5.857 5.857 0 0 0-2.128-1.38C19.074.322 18.202.12 16.924.066 15.647.009 15.236-.006 11.977 0 8.718.008 8.31.021 7.03.084m.14 21.693c-1.17-.05-1.805-.245-2.228-.408a3.736 3.736 0 0 1-1.382-.895 3.695 3.695 0 0 1-.9-1.378c-.165-.423-.363-1.058-.417-2.228-.06-1.264-.072-1.644-.08-4.848-.006-3.204.006-3.583.061-4.848.05-1.169.246-1.805.408-2.228.216-.561.477-.96.895-1.382a3.705 3.705 0 0 1 1.379-.9c.423-.165 1.057-.361 2.227-.417 1.265-.06 1.644-.072 4.848-.08 3.203-.006 3.583.006 4.85.062 1.168.05 1.804.244 2.227.408.56.216.96.475 1.382.895.421.42.681.817.9 1.378.165.422.362 1.056.417 2.227.06 1.265.074 1.645.08 4.848.005 3.203-.006 3.583-.061 4.848-.051 1.17-.245 1.805-.408 2.23-.216.56-.477.96-.896 1.38a3.705 3.705 0 0 1-1.378.9c-.422.165-1.058.362-2.226.418-1.266.06-1.645.072-4.85.079-3.204.007-3.582-.006-4.848-.06m9.783-16.192a1.44 1.44 0 1 0 1.437-1.442 1.44 1.44 0 0 0-1.437 1.442M5.839 12.012a6.161 6.161 0 1 0 12.323-.024 6.162 6.162 0 0 0-12.323.024M8 12.008A4 4 0 1 1 12.008 16 4 4 0 0 1 8 12.008'/%3E%3C/svg%3E")}.vpi-social-linkedin{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433a2.062 2.062 0 0 1-2.063-2.065 2.064 2.064 0 1 1 2.063 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z'/%3E%3C/svg%3E")}.vpi-social-mastodon{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M23.268 5.313c-.35-2.578-2.617-4.61-5.304-5.004C17.51.242 15.792 0 11.813 0h-.03c-3.98 0-4.835.242-5.288.309C3.882.692 1.496 2.518.917 5.127.64 6.412.61 7.837.661 9.143c.074 1.874.088 3.745.26 5.611.118 1.24.325 2.47.62 3.68.55 2.237 2.777 4.098 4.96 4.857 2.336.792 4.849.923 7.256.38.265-.061.527-.132.786-.213.585-.184 1.27-.39 1.774-.753a.057.057 0 0 0 .023-.043v-1.809a.052.052 0 0 0-.02-.041.053.053 0 0 0-.046-.01 20.282 20.282 0 0 1-4.709.545c-2.73 0-3.463-1.284-3.674-1.818a5.593 5.593 0 0 1-.319-1.433.053.053 0 0 1 .066-.054c1.517.363 3.072.546 4.632.546.376 0 .75 0 1.125-.01 1.57-.044 3.224-.124 4.768-.422.038-.008.077-.015.11-.024 2.435-.464 4.753-1.92 4.989-5.604.008-.145.03-1.52.03-1.67.002-.512.167-3.63-.024-5.545zm-3.748 9.195h-2.561V8.29c0-1.309-.55-1.976-1.67-1.976-1.23 0-1.846.79-1.846 2.35v3.403h-2.546V8.663c0-1.56-.617-2.35-1.848-2.35-1.112 0-1.668.668-1.67 1.977v6.218H4.822V8.102c0-1.31.337-2.35 1.011-3.12.696-.77 1.608-1.164 2.74-1.164 1.311 0 2.302.5 2.962 1.498l.638 1.06.638-1.06c.66-.999 1.65-1.498 2.96-1.498 1.13 0 2.043.395 2.74 1.164.675.77 1.012 1.81 1.012 3.12z'/%3E%3C/svg%3E")}.vpi-social-npm{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M1.763 0C.786 0 0 .786 0 1.763v20.474C0 23.214.786 24 1.763 24h20.474c.977 0 1.763-.786 1.763-1.763V1.763C24 .786 23.214 0 22.237 0zM5.13 5.323l13.837.019-.009 13.836h-3.464l.01-10.382h-3.456L12.04 19.17H5.113z'/%3E%3C/svg%3E")}.vpi-social-slack{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5.042 15.165a2.528 2.528 0 0 1-2.52 2.523A2.528 2.528 0 0 1 0 15.165a2.527 2.527 0 0 1 2.522-2.52h2.52v2.52zm1.271 0a2.527 2.527 0 0 1 2.521-2.52 2.527 2.527 0 0 1 2.521 2.52v6.313A2.528 2.528 0 0 1 8.834 24a2.528 2.528 0 0 1-2.521-2.522v-6.313zM8.834 5.042a2.528 2.528 0 0 1-2.521-2.52A2.528 2.528 0 0 1 8.834 0a2.528 2.528 0 0 1 2.521 2.522v2.52H8.834zm0 1.271a2.528 2.528 0 0 1 2.521 2.521 2.528 2.528 0 0 1-2.521 2.521H2.522A2.528 2.528 0 0 1 0 8.834a2.528 2.528 0 0 1 2.522-2.521h6.312zm10.122 2.521a2.528 2.528 0 0 1 2.522-2.521A2.528 2.528 0 0 1 24 8.834a2.528 2.528 0 0 1-2.522 2.521h-2.522V8.834zm-1.268 0a2.528 2.528 0 0 1-2.523 2.521 2.527 2.527 0 0 1-2.52-2.521V2.522A2.527 2.527 0 0 1 15.165 0a2.528 2.528 0 0 1 2.523 2.522v6.312zm-2.523 10.122a2.528 2.528 0 0 1 2.523 2.522A2.528 2.528 0 0 1 15.165 24a2.527 2.527 0 0 1-2.52-2.522v-2.522h2.52zm0-1.268a2.527 2.527 0 0 1-2.52-2.523 2.526 2.526 0 0 1 2.52-2.52h6.313A2.527 2.527 0 0 1 24 15.165a2.528 2.528 0 0 1-2.522 2.523h-6.313z'/%3E%3C/svg%3E")}.vpi-social-twitter,.vpi-social-x{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M18.901 1.153h3.68l-8.04 9.19L24 22.846h-7.406l-5.8-7.584-6.638 7.584H.474l8.6-9.83L0 1.154h7.594l5.243 6.932ZM17.61 20.644h2.039L6.486 3.24H4.298Z'/%3E%3C/svg%3E")}.vpi-social-youtube{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M23.498 6.186a3.016 3.016 0 0 0-2.122-2.136C19.505 3.545 12 3.545 12 3.545s-7.505 0-9.377.505A3.017 3.017 0 0 0 .502 6.186C0 8.07 0 12 0 12s0 3.93.502 5.814a3.016 3.016 0 0 0 2.122 2.136c1.871.505 9.376.505 9.376.505s7.505 0 9.377-.505a3.015 3.015 0 0 0 2.122-2.136C24 15.93 24 12 24 12s0-3.93-.502-5.814zM9.545 15.568V8.432L15.818 12l-6.273 3.568z'/%3E%3C/svg%3E")}.visually-hidden{position:absolute;width:1px;height:1px;white-space:nowrap;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden}.custom-block{border:1px solid transparent;border-radius:8px;padding:16px 16px 8px;line-height:24px;font-size:var(--vp-custom-block-font-size);color:var(--vp-c-text-2)}.custom-block.info{border-color:var(--vp-custom-block-info-border);color:var(--vp-custom-block-info-text);background-color:var(--vp-custom-block-info-bg)}.custom-block.info a,.custom-block.info code{color:var(--vp-c-brand-1)}.custom-block.info a:hover,.custom-block.info a:hover>code{color:var(--vp-c-brand-2)}.custom-block.info code{background-color:var(--vp-custom-block-info-code-bg)}.custom-block.note{border-color:var(--vp-custom-block-note-border);color:var(--vp-custom-block-note-text);background-color:var(--vp-custom-block-note-bg)}.custom-block.note a,.custom-block.note code{color:var(--vp-c-brand-1)}.custom-block.note a:hover,.custom-block.note a:hover>code{color:var(--vp-c-brand-2)}.custom-block.note code{background-color:var(--vp-custom-block-note-code-bg)}.custom-block.tip{border-color:var(--vp-custom-block-tip-border);color:var(--vp-custom-block-tip-text);background-color:var(--vp-custom-block-tip-bg)}.custom-block.tip a,.custom-block.tip code{color:var(--vp-c-tip-1)}.custom-block.tip a:hover,.custom-block.tip a:hover>code{color:var(--vp-c-tip-2)}.custom-block.tip code{background-color:var(--vp-custom-block-tip-code-bg)}.custom-block.important{border-color:var(--vp-custom-block-important-border);color:var(--vp-custom-block-important-text);background-color:var(--vp-custom-block-important-bg)}.custom-block.important a,.custom-block.important code{color:var(--vp-c-important-1)}.custom-block.important a:hover,.custom-block.important a:hover>code{color:var(--vp-c-important-2)}.custom-block.important code{background-color:var(--vp-custom-block-important-code-bg)}.custom-block.warning{border-color:var(--vp-custom-block-warning-border);color:var(--vp-custom-block-warning-text);background-color:var(--vp-custom-block-warning-bg)}.custom-block.warning a,.custom-block.warning code{color:var(--vp-c-warning-1)}.custom-block.warning a:hover,.custom-block.warning a:hover>code{color:var(--vp-c-warning-2)}.custom-block.warning code{background-color:var(--vp-custom-block-warning-code-bg)}.custom-block.danger{border-color:var(--vp-custom-block-danger-border);color:var(--vp-custom-block-danger-text);background-color:var(--vp-custom-block-danger-bg)}.custom-block.danger a,.custom-block.danger code{color:var(--vp-c-danger-1)}.custom-block.danger a:hover,.custom-block.danger a:hover>code{color:var(--vp-c-danger-2)}.custom-block.danger code{background-color:var(--vp-custom-block-danger-code-bg)}.custom-block.caution{border-color:var(--vp-custom-block-caution-border);color:var(--vp-custom-block-caution-text);background-color:var(--vp-custom-block-caution-bg)}.custom-block.caution a,.custom-block.caution code{color:var(--vp-c-caution-1)}.custom-block.caution a:hover,.custom-block.caution a:hover>code{color:var(--vp-c-caution-2)}.custom-block.caution code{background-color:var(--vp-custom-block-caution-code-bg)}.custom-block.details{border-color:var(--vp-custom-block-details-border);color:var(--vp-custom-block-details-text);background-color:var(--vp-custom-block-details-bg)}.custom-block.details a{color:var(--vp-c-brand-1)}.custom-block.details a:hover,.custom-block.details a:hover>code{color:var(--vp-c-brand-2)}.custom-block.details code{background-color:var(--vp-custom-block-details-code-bg)}.custom-block-title{font-weight:600}.custom-block p+p{margin:8px 0}.custom-block.details summary{margin:0 0 8px;font-weight:700;cursor:pointer;-webkit-user-select:none;user-select:none}.custom-block.details summary+p{margin:8px 0}.custom-block a{color:inherit;font-weight:600;text-decoration:underline;text-underline-offset:2px;transition:opacity .25s}.custom-block a:hover{opacity:.75}.custom-block code{font-size:var(--vp-custom-block-code-font-size)}.custom-block.custom-block th,.custom-block.custom-block blockquote>p{font-size:var(--vp-custom-block-font-size);color:inherit}.dark .vp-code span{color:var(--shiki-dark, inherit)}html:not(.dark) .vp-code span{color:var(--shiki-light, inherit)}.vp-code-group{margin-top:16px}.vp-code-group .tabs{position:relative;display:flex;margin-right:-24px;margin-left:-24px;padding:0 12px;background-color:var(--vp-code-tab-bg);overflow-x:auto;overflow-y:hidden;box-shadow:inset 0 -1px var(--vp-code-tab-divider)}@media (min-width: 640px){.vp-code-group .tabs{margin-right:0;margin-left:0;border-radius:8px 8px 0 0}}.vp-code-group .tabs input{position:fixed;opacity:0;pointer-events:none}.vp-code-group .tabs label{position:relative;display:inline-block;border-bottom:1px solid transparent;padding:0 12px;line-height:48px;font-size:14px;font-weight:500;color:var(--vp-code-tab-text-color);white-space:nowrap;cursor:pointer;transition:color .25s}.vp-code-group .tabs label:after{position:absolute;right:8px;bottom:-1px;left:8px;z-index:1;height:2px;border-radius:2px;content:"";background-color:transparent;transition:background-color .25s}.vp-code-group label:hover{color:var(--vp-code-tab-hover-text-color)}.vp-code-group input:checked+label{color:var(--vp-code-tab-active-text-color)}.vp-code-group input:checked+label:after{background-color:var(--vp-code-tab-active-bar-color)}.vp-code-group div[class*=language-],.vp-block{display:none;margin-top:0!important;border-top-left-radius:0!important;border-top-right-radius:0!important}.vp-code-group div[class*=language-].active,.vp-block.active{display:block}.vp-block{padding:20px 24px}.vp-doc h1,.vp-doc h2,.vp-doc h3,.vp-doc h4,.vp-doc h5,.vp-doc h6{position:relative;font-weight:600;outline:none}.vp-doc h1{letter-spacing:-.02em;line-height:40px;font-size:28px}.vp-doc h2{margin:48px 0 16px;border-top:1px solid var(--vp-c-divider);padding-top:24px;letter-spacing:-.02em;line-height:32px;font-size:24px}.vp-doc h3{margin:32px 0 0;letter-spacing:-.01em;line-height:28px;font-size:20px}.vp-doc .header-anchor{position:absolute;top:0;left:0;margin-left:-.87em;font-weight:500;-webkit-user-select:none;user-select:none;opacity:0;text-decoration:none;transition:color .25s,opacity .25s}.vp-doc .header-anchor:before{content:var(--vp-header-anchor-symbol)}.vp-doc h1:hover .header-anchor,.vp-doc h1 .header-anchor:focus,.vp-doc h2:hover .header-anchor,.vp-doc h2 .header-anchor:focus,.vp-doc h3:hover .header-anchor,.vp-doc h3 .header-anchor:focus,.vp-doc h4:hover .header-anchor,.vp-doc h4 .header-anchor:focus,.vp-doc h5:hover .header-anchor,.vp-doc h5 .header-anchor:focus,.vp-doc h6:hover .header-anchor,.vp-doc h6 .header-anchor:focus{opacity:1}@media (min-width: 768px){.vp-doc h1{letter-spacing:-.02em;line-height:40px;font-size:32px}}.vp-doc h2 .header-anchor{top:24px}.vp-doc p,.vp-doc summary{margin:16px 0}.vp-doc p{line-height:28px}.vp-doc blockquote{margin:16px 0;border-left:2px solid var(--vp-c-divider);padding-left:16px;transition:border-color .5s}.vp-doc blockquote>p{margin:0;font-size:16px;color:var(--vp-c-text-2);transition:color .5s}.vp-doc a{font-weight:500;color:var(--vp-c-brand-1);text-decoration:underline;text-underline-offset:2px;transition:color .25s,opacity .25s}.vp-doc a:hover{color:var(--vp-c-brand-2)}.vp-doc strong{font-weight:600}.vp-doc ul,.vp-doc ol{padding-left:1.25rem;margin:16px 0}.vp-doc ul{list-style:disc}.vp-doc ol{list-style:decimal}.vp-doc li+li{margin-top:8px}.vp-doc li>ol,.vp-doc li>ul{margin:8px 0 0}.vp-doc table{display:block;border-collapse:collapse;margin:20px 0;overflow-x:auto}.vp-doc tr{background-color:var(--vp-c-bg);border-top:1px solid var(--vp-c-divider);transition:background-color .5s}.vp-doc tr:nth-child(2n){background-color:var(--vp-c-bg-soft)}.vp-doc th,.vp-doc td{border:1px solid var(--vp-c-divider);padding:8px 16px}.vp-doc th{text-align:left;font-size:14px;font-weight:600;color:var(--vp-c-text-2);background-color:var(--vp-c-bg-soft)}.vp-doc td{font-size:14px}.vp-doc hr{margin:16px 0;border:none;border-top:1px solid var(--vp-c-divider)}.vp-doc .custom-block{margin:16px 0}.vp-doc .custom-block p{margin:8px 0;line-height:24px}.vp-doc .custom-block p:first-child{margin:0}.vp-doc .custom-block div[class*=language-]{margin:8px 0;border-radius:8px}.vp-doc .custom-block div[class*=language-] code{font-weight:400;background-color:transparent}.vp-doc .custom-block .vp-code-group .tabs{margin:0;border-radius:8px 8px 0 0}.vp-doc :not(pre,h1,h2,h3,h4,h5,h6)>code{font-size:var(--vp-code-font-size);color:var(--vp-code-color)}.vp-doc :not(pre)>code{border-radius:4px;padding:3px 6px;background-color:var(--vp-code-bg);transition:color .25s,background-color .5s}.vp-doc a>code{color:var(--vp-code-link-color)}.vp-doc a:hover>code{color:var(--vp-code-link-hover-color)}.vp-doc h1>code,.vp-doc h2>code,.vp-doc h3>code{font-size:.9em}.vp-doc div[class*=language-],.vp-block{position:relative;margin:16px -24px;background-color:var(--vp-code-block-bg);overflow-x:auto;transition:background-color .5s}@media (min-width: 640px){.vp-doc div[class*=language-],.vp-block{border-radius:8px;margin:16px 0}}@media (max-width: 639px){.vp-doc li div[class*=language-]{border-radius:8px 0 0 8px}}.vp-doc div[class*=language-]+div[class*=language-],.vp-doc div[class$=-api]+div[class*=language-],.vp-doc div[class*=language-]+div[class$=-api]>div[class*=language-]{margin-top:-8px}.vp-doc [class*=language-] pre,.vp-doc [class*=language-] code{direction:ltr;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none}.vp-doc [class*=language-] pre{position:relative;z-index:1;margin:0;padding:20px 0;background:transparent;overflow-x:auto}.vp-doc [class*=language-] code{display:block;padding:0 24px;width:fit-content;min-width:100%;line-height:var(--vp-code-line-height);font-size:var(--vp-code-font-size);color:var(--vp-code-block-color);transition:color .5s}.vp-doc [class*=language-] code .highlighted{background-color:var(--vp-code-line-highlight-color);transition:background-color .5s;margin:0 -24px;padding:0 24px;width:calc(100% + 48px);display:inline-block}.vp-doc [class*=language-] code .highlighted.error{background-color:var(--vp-code-line-error-color)}.vp-doc [class*=language-] code .highlighted.warning{background-color:var(--vp-code-line-warning-color)}.vp-doc [class*=language-] code .diff{transition:background-color .5s;margin:0 -24px;padding:0 24px;width:calc(100% + 48px);display:inline-block}.vp-doc [class*=language-] code .diff:before{position:absolute;left:10px}.vp-doc [class*=language-] .has-focused-lines .line:not(.has-focus){filter:blur(.095rem);opacity:.4;transition:filter .35s,opacity .35s}.vp-doc [class*=language-] .has-focused-lines .line:not(.has-focus){opacity:.7;transition:filter .35s,opacity .35s}.vp-doc [class*=language-]:hover .has-focused-lines .line:not(.has-focus){filter:blur(0);opacity:1}.vp-doc [class*=language-] code .diff.remove{background-color:var(--vp-code-line-diff-remove-color);opacity:.7}.vp-doc [class*=language-] code .diff.remove:before{content:"-";color:var(--vp-code-line-diff-remove-symbol-color)}.vp-doc [class*=language-] code .diff.add{background-color:var(--vp-code-line-diff-add-color)}.vp-doc [class*=language-] code .diff.add:before{content:"+";color:var(--vp-code-line-diff-add-symbol-color)}.vp-doc div[class*=language-].line-numbers-mode{padding-left:32px}.vp-doc .line-numbers-wrapper{position:absolute;top:0;bottom:0;left:0;z-index:3;border-right:1px solid var(--vp-code-block-divider-color);padding-top:20px;width:32px;text-align:center;font-family:var(--vp-font-family-mono);line-height:var(--vp-code-line-height);font-size:var(--vp-code-font-size);color:var(--vp-code-line-number-color);transition:border-color .5s,color .5s}.vp-doc [class*=language-]>button.copy{direction:ltr;position:absolute;top:12px;right:12px;z-index:3;border:1px solid var(--vp-code-copy-code-border-color);border-radius:4px;width:40px;height:40px;background-color:var(--vp-code-copy-code-bg);opacity:0;cursor:pointer;background-image:var(--vp-icon-copy);background-position:50%;background-size:20px;background-repeat:no-repeat;transition:border-color .25s,background-color .25s,opacity .25s}.vp-doc [class*=language-]:hover>button.copy,.vp-doc [class*=language-]>button.copy:focus{opacity:1}.vp-doc [class*=language-]>button.copy:hover,.vp-doc [class*=language-]>button.copy.copied{border-color:var(--vp-code-copy-code-hover-border-color);background-color:var(--vp-code-copy-code-hover-bg)}.vp-doc [class*=language-]>button.copy.copied,.vp-doc [class*=language-]>button.copy:hover.copied{border-radius:0 4px 4px 0;background-color:var(--vp-code-copy-code-hover-bg);background-image:var(--vp-icon-copied)}.vp-doc [class*=language-]>button.copy.copied:before,.vp-doc [class*=language-]>button.copy:hover.copied:before{position:relative;top:-1px;transform:translate(calc(-100% - 1px));display:flex;justify-content:center;align-items:center;border:1px solid var(--vp-code-copy-code-hover-border-color);border-right:0;border-radius:4px 0 0 4px;padding:0 10px;width:fit-content;height:40px;text-align:center;font-size:12px;font-weight:500;color:var(--vp-code-copy-code-active-text);background-color:var(--vp-code-copy-code-hover-bg);white-space:nowrap;content:var(--vp-code-copy-copied-text-content)}.vp-doc [class*=language-]>span.lang{position:absolute;top:2px;right:8px;z-index:2;font-size:12px;font-weight:500;color:var(--vp-code-lang-color);transition:color .4s,opacity .4s}.vp-doc [class*=language-]:hover>button.copy+span.lang,.vp-doc [class*=language-]>button.copy:focus+span.lang{opacity:0}.vp-doc .VPTeamMembers{margin-top:24px}.vp-doc .VPTeamMembers.small.count-1 .container{margin:0!important;max-width:calc((100% - 24px)/2)!important}.vp-doc .VPTeamMembers.small.count-2 .container,.vp-doc .VPTeamMembers.small.count-3 .container{max-width:100%!important}.vp-doc .VPTeamMembers.medium.count-1 .container{margin:0!important;max-width:calc((100% - 24px)/2)!important}:is(.vp-external-link-icon,.vp-doc a[href*="://"],.vp-doc a[target=_blank]):not(.no-icon):after{display:inline-block;margin-top:-1px;margin-left:4px;width:11px;height:11px;background:currentColor;color:var(--vp-c-text-3);flex-shrink:0;--icon: url("data:image/svg+xml, %3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' %3E%3Cpath d='M0 0h24v24H0V0z' fill='none' /%3E%3Cpath d='M9 5v2h6.59L4 18.59 5.41 20 17 8.41V15h2V5H9z' /%3E%3C/svg%3E");-webkit-mask-image:var(--icon);mask-image:var(--icon)}.vp-external-link-icon:after{content:""}.external-link-icon-enabled :is(.vp-doc a[href*="://"],.vp-doc a[target=_blank]):after{content:"";color:currentColor}.vp-sponsor{border-radius:16px;overflow:hidden}.vp-sponsor.aside{border-radius:12px}.vp-sponsor-section+.vp-sponsor-section{margin-top:4px}.vp-sponsor-tier{margin:0 0 4px!important;text-align:center;letter-spacing:1px!important;line-height:24px;width:100%;font-weight:600;color:var(--vp-c-text-2);background-color:var(--vp-c-bg-soft)}.vp-sponsor.normal .vp-sponsor-tier{padding:13px 0 11px;font-size:14px}.vp-sponsor.aside .vp-sponsor-tier{padding:9px 0 7px;font-size:12px}.vp-sponsor-grid+.vp-sponsor-tier{margin-top:4px}.vp-sponsor-grid{display:flex;flex-wrap:wrap;gap:4px}.vp-sponsor-grid.xmini .vp-sponsor-grid-link{height:64px}.vp-sponsor-grid.xmini .vp-sponsor-grid-image{max-width:64px;max-height:22px}.vp-sponsor-grid.mini .vp-sponsor-grid-link{height:72px}.vp-sponsor-grid.mini .vp-sponsor-grid-image{max-width:96px;max-height:24px}.vp-sponsor-grid.small .vp-sponsor-grid-link{height:96px}.vp-sponsor-grid.small .vp-sponsor-grid-image{max-width:96px;max-height:24px}.vp-sponsor-grid.medium .vp-sponsor-grid-link{height:112px}.vp-sponsor-grid.medium .vp-sponsor-grid-image{max-width:120px;max-height:36px}.vp-sponsor-grid.big .vp-sponsor-grid-link{height:184px}.vp-sponsor-grid.big .vp-sponsor-grid-image{max-width:192px;max-height:56px}.vp-sponsor-grid[data-vp-grid="2"] .vp-sponsor-grid-item{width:calc((100% - 4px)/2)}.vp-sponsor-grid[data-vp-grid="3"] .vp-sponsor-grid-item{width:calc((100% - 4px * 2) / 3)}.vp-sponsor-grid[data-vp-grid="4"] .vp-sponsor-grid-item{width:calc((100% - 12px)/4)}.vp-sponsor-grid[data-vp-grid="5"] .vp-sponsor-grid-item{width:calc((100% - 16px)/5)}.vp-sponsor-grid[data-vp-grid="6"] .vp-sponsor-grid-item{width:calc((100% - 4px * 5) / 6)}.vp-sponsor-grid-item{flex-shrink:0;width:100%;background-color:var(--vp-c-bg-soft);transition:background-color .25s}.vp-sponsor-grid-item:hover{background-color:var(--vp-c-default-soft)}.vp-sponsor-grid-item:hover .vp-sponsor-grid-image{filter:grayscale(0) invert(0)}.vp-sponsor-grid-item.empty:hover{background-color:var(--vp-c-bg-soft)}.dark .vp-sponsor-grid-item:hover{background-color:var(--vp-c-white)}.dark .vp-sponsor-grid-item.empty:hover{background-color:var(--vp-c-bg-soft)}.vp-sponsor-grid-link{display:flex}.vp-sponsor-grid-box{display:flex;justify-content:center;align-items:center;width:100%}.vp-sponsor-grid-image{max-width:100%;filter:grayscale(1);transition:filter .25s}.dark .vp-sponsor-grid-image{filter:grayscale(1) invert(1)}.VPBadge{display:inline-block;margin-left:2px;border:1px solid transparent;border-radius:12px;padding:0 10px;line-height:22px;font-size:12px;font-weight:500;transform:translateY(-2px)}.VPBadge.small{padding:0 6px;line-height:18px;font-size:10px;transform:translateY(-8px)}.VPDocFooter .VPBadge{display:none}.vp-doc h1>.VPBadge{margin-top:4px;vertical-align:top}.vp-doc h2>.VPBadge{margin-top:3px;padding:0 8px;vertical-align:top}.vp-doc h3>.VPBadge{vertical-align:middle}.vp-doc h4>.VPBadge,.vp-doc h5>.VPBadge,.vp-doc h6>.VPBadge{vertical-align:middle;line-height:18px}.VPBadge.info{border-color:var(--vp-badge-info-border);color:var(--vp-badge-info-text);background-color:var(--vp-badge-info-bg)}.VPBadge.tip{border-color:var(--vp-badge-tip-border);color:var(--vp-badge-tip-text);background-color:var(--vp-badge-tip-bg)}.VPBadge.warning{border-color:var(--vp-badge-warning-border);color:var(--vp-badge-warning-text);background-color:var(--vp-badge-warning-bg)}.VPBadge.danger{border-color:var(--vp-badge-danger-border);color:var(--vp-badge-danger-text);background-color:var(--vp-badge-danger-bg)}.VPBackdrop[data-v-c79a1216]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--vp-z-index-backdrop);background:var(--vp-backdrop-bg-color);transition:opacity .5s}.VPBackdrop.fade-enter-from[data-v-c79a1216],.VPBackdrop.fade-leave-to[data-v-c79a1216]{opacity:0}.VPBackdrop.fade-leave-active[data-v-c79a1216]{transition-duration:.25s}@media (min-width: 1280px){.VPBackdrop[data-v-c79a1216]{display:none}}.NotFound[data-v-d6be1790]{padding:64px 24px 96px;text-align:center}@media (min-width: 768px){.NotFound[data-v-d6be1790]{padding:96px 32px 168px}}.code[data-v-d6be1790]{line-height:64px;font-size:64px;font-weight:600}.title[data-v-d6be1790]{padding-top:12px;letter-spacing:2px;line-height:20px;font-size:20px;font-weight:700}.divider[data-v-d6be1790]{margin:24px auto 18px;width:64px;height:1px;background-color:var(--vp-c-divider)}.quote[data-v-d6be1790]{margin:0 auto;max-width:256px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}.action[data-v-d6be1790]{padding-top:20px}.link[data-v-d6be1790]{display:inline-block;border:1px solid var(--vp-c-brand-1);border-radius:16px;padding:3px 16px;font-size:14px;font-weight:500;color:var(--vp-c-brand-1);transition:border-color .25s,color .25s}.link[data-v-d6be1790]:hover{border-color:var(--vp-c-brand-2);color:var(--vp-c-brand-2)}.root[data-v-b933a997]{position:relative;z-index:1}.nested[data-v-b933a997]{padding-right:16px;padding-left:16px}.outline-link[data-v-b933a997]{display:block;line-height:32px;font-size:14px;font-weight:400;color:var(--vp-c-text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .5s}.outline-link[data-v-b933a997]:hover,.outline-link.active[data-v-b933a997]{color:var(--vp-c-text-1);transition:color .25s}.outline-link.nested[data-v-b933a997]{padding-left:13px}.VPDocAsideOutline[data-v-a5bbad30]{display:none}.VPDocAsideOutline.has-outline[data-v-a5bbad30]{display:block}.content[data-v-a5bbad30]{position:relative;border-left:1px solid var(--vp-c-divider);padding-left:16px;font-size:13px;font-weight:500}.outline-marker[data-v-a5bbad30]{position:absolute;top:32px;left:-1px;z-index:0;opacity:0;width:2px;border-radius:2px;height:18px;background-color:var(--vp-c-brand-1);transition:top .25s cubic-bezier(0,1,.5,1),background-color .5s,opacity .25s}.outline-title[data-v-a5bbad30]{line-height:32px;font-size:14px;font-weight:600}.VPDocAside[data-v-3f215769]{display:flex;flex-direction:column;flex-grow:1}.spacer[data-v-3f215769]{flex-grow:1}.VPDocAside[data-v-3f215769] .spacer+.VPDocAsideSponsors,.VPDocAside[data-v-3f215769] .spacer+.VPDocAsideCarbonAds{margin-top:24px}.VPDocAside[data-v-3f215769] .VPDocAsideSponsors+.VPDocAsideCarbonAds{margin-top:16px}.VPLastUpdated[data-v-7e05ebdb]{line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}@media (min-width: 640px){.VPLastUpdated[data-v-7e05ebdb]{line-height:32px;font-size:14px;font-weight:500}}.VPDocFooter[data-v-d4a0bba5]{margin-top:64px}.edit-info[data-v-d4a0bba5]{padding-bottom:18px}@media (min-width: 640px){.edit-info[data-v-d4a0bba5]{display:flex;justify-content:space-between;align-items:center;padding-bottom:14px}}.edit-link-button[data-v-d4a0bba5]{display:flex;align-items:center;border:0;line-height:32px;font-size:14px;font-weight:500;color:var(--vp-c-brand-1);transition:color .25s}.edit-link-button[data-v-d4a0bba5]:hover{color:var(--vp-c-brand-2)}.edit-link-icon[data-v-d4a0bba5]{margin-right:8px}.prev-next[data-v-d4a0bba5]{border-top:1px solid var(--vp-c-divider);padding-top:24px;display:grid;grid-row-gap:8px}@media (min-width: 640px){.prev-next[data-v-d4a0bba5]{grid-template-columns:repeat(2,1fr);grid-column-gap:16px}}.pager-link[data-v-d4a0bba5]{display:block;border:1px solid var(--vp-c-divider);border-radius:8px;padding:11px 16px 13px;width:100%;height:100%;transition:border-color .25s}.pager-link[data-v-d4a0bba5]:hover{border-color:var(--vp-c-brand-1)}.pager-link.next[data-v-d4a0bba5]{margin-left:auto;text-align:right}.desc[data-v-d4a0bba5]{display:block;line-height:20px;font-size:12px;font-weight:500;color:var(--vp-c-text-2)}.title[data-v-d4a0bba5]{display:block;line-height:20px;font-size:14px;font-weight:500;color:var(--vp-c-brand-1);transition:color .25s}.VPDoc[data-v-39a288b8]{padding:32px 24px 96px;width:100%}@media (min-width: 768px){.VPDoc[data-v-39a288b8]{padding:48px 32px 128px}}@media (min-width: 960px){.VPDoc[data-v-39a288b8]{padding:48px 32px 0}.VPDoc:not(.has-sidebar) .container[data-v-39a288b8]{display:flex;justify-content:center;max-width:992px}.VPDoc:not(.has-sidebar) .content[data-v-39a288b8]{max-width:752px}}@media (min-width: 1280px){.VPDoc .container[data-v-39a288b8]{display:flex;justify-content:center}.VPDoc .aside[data-v-39a288b8]{display:block}}@media (min-width: 1440px){.VPDoc:not(.has-sidebar) .content[data-v-39a288b8]{max-width:784px}.VPDoc:not(.has-sidebar) .container[data-v-39a288b8]{max-width:1104px}}.container[data-v-39a288b8]{margin:0 auto;width:100%}.aside[data-v-39a288b8]{position:relative;display:none;order:2;flex-grow:1;padding-left:32px;width:100%;max-width:256px}.left-aside[data-v-39a288b8]{order:1;padding-left:unset;padding-right:32px}.aside-container[data-v-39a288b8]{position:fixed;top:0;padding-top:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + var(--vp-doc-top-height, 0px) + 48px);width:224px;height:100vh;overflow-x:hidden;overflow-y:auto;scrollbar-width:none}.aside-container[data-v-39a288b8]::-webkit-scrollbar{display:none}.aside-curtain[data-v-39a288b8]{position:fixed;bottom:0;z-index:10;width:224px;height:32px;background:linear-gradient(transparent,var(--vp-c-bg) 70%)}.aside-content[data-v-39a288b8]{display:flex;flex-direction:column;min-height:calc(100vh - (var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 48px));padding-bottom:32px}.content[data-v-39a288b8]{position:relative;margin:0 auto;width:100%}@media (min-width: 960px){.content[data-v-39a288b8]{padding:0 32px 128px}}@media (min-width: 1280px){.content[data-v-39a288b8]{order:1;margin:0;min-width:640px}}.content-container[data-v-39a288b8]{margin:0 auto}.VPDoc.has-aside .content-container[data-v-39a288b8]{max-width:688px}.VPButton[data-v-cad61b99]{display:inline-block;border:1px solid transparent;text-align:center;font-weight:600;white-space:nowrap;transition:color .25s,border-color .25s,background-color .25s}.VPButton[data-v-cad61b99]:active{transition:color .1s,border-color .1s,background-color .1s}.VPButton.medium[data-v-cad61b99]{border-radius:20px;padding:0 20px;line-height:38px;font-size:14px}.VPButton.big[data-v-cad61b99]{border-radius:24px;padding:0 24px;line-height:46px;font-size:16px}.VPButton.brand[data-v-cad61b99]{border-color:var(--vp-button-brand-border);color:var(--vp-button-brand-text);background-color:var(--vp-button-brand-bg)}.VPButton.brand[data-v-cad61b99]:hover{border-color:var(--vp-button-brand-hover-border);color:var(--vp-button-brand-hover-text);background-color:var(--vp-button-brand-hover-bg)}.VPButton.brand[data-v-cad61b99]:active{border-color:var(--vp-button-brand-active-border);color:var(--vp-button-brand-active-text);background-color:var(--vp-button-brand-active-bg)}.VPButton.alt[data-v-cad61b99]{border-color:var(--vp-button-alt-border);color:var(--vp-button-alt-text);background-color:var(--vp-button-alt-bg)}.VPButton.alt[data-v-cad61b99]:hover{border-color:var(--vp-button-alt-hover-border);color:var(--vp-button-alt-hover-text);background-color:var(--vp-button-alt-hover-bg)}.VPButton.alt[data-v-cad61b99]:active{border-color:var(--vp-button-alt-active-border);color:var(--vp-button-alt-active-text);background-color:var(--vp-button-alt-active-bg)}.VPButton.sponsor[data-v-cad61b99]{border-color:var(--vp-button-sponsor-border);color:var(--vp-button-sponsor-text);background-color:var(--vp-button-sponsor-bg)}.VPButton.sponsor[data-v-cad61b99]:hover{border-color:var(--vp-button-sponsor-hover-border);color:var(--vp-button-sponsor-hover-text);background-color:var(--vp-button-sponsor-hover-bg)}.VPButton.sponsor[data-v-cad61b99]:active{border-color:var(--vp-button-sponsor-active-border);color:var(--vp-button-sponsor-active-text);background-color:var(--vp-button-sponsor-active-bg)}html:not(.dark) .VPImage.dark[data-v-8426fc1a]{display:none}.dark .VPImage.light[data-v-8426fc1a]{display:none}.VPHero[data-v-303bb580]{margin-top:calc((var(--vp-nav-height) + var(--vp-layout-top-height, 0px)) * -1);padding:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 48px) 24px 48px}@media (min-width: 640px){.VPHero[data-v-303bb580]{padding:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 80px) 48px 64px}}@media (min-width: 960px){.VPHero[data-v-303bb580]{padding:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 80px) 64px 64px}}.container[data-v-303bb580]{display:flex;flex-direction:column;margin:0 auto;max-width:1152px}@media (min-width: 960px){.container[data-v-303bb580]{flex-direction:row}}.main[data-v-303bb580]{position:relative;z-index:10;order:2;flex-grow:1;flex-shrink:0}.VPHero.has-image .container[data-v-303bb580]{text-align:center}@media (min-width: 960px){.VPHero.has-image .container[data-v-303bb580]{text-align:left}}@media (min-width: 960px){.main[data-v-303bb580]{order:1;width:calc((100% / 3) * 2)}.VPHero.has-image .main[data-v-303bb580]{max-width:592px}}.name[data-v-303bb580],.text[data-v-303bb580]{max-width:392px;letter-spacing:-.4px;line-height:40px;font-size:32px;font-weight:700;white-space:pre-wrap}.VPHero.has-image .name[data-v-303bb580],.VPHero.has-image .text[data-v-303bb580]{margin:0 auto}.name[data-v-303bb580]{color:var(--vp-home-hero-name-color)}.clip[data-v-303bb580]{background:var(--vp-home-hero-name-background);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:var(--vp-home-hero-name-color)}@media (min-width: 640px){.name[data-v-303bb580],.text[data-v-303bb580]{max-width:576px;line-height:56px;font-size:48px}}@media (min-width: 960px){.name[data-v-303bb580],.text[data-v-303bb580]{line-height:64px;font-size:56px}.VPHero.has-image .name[data-v-303bb580],.VPHero.has-image .text[data-v-303bb580]{margin:0}}.tagline[data-v-303bb580]{padding-top:8px;max-width:392px;line-height:28px;font-size:18px;font-weight:500;white-space:pre-wrap;color:var(--vp-c-text-2)}.VPHero.has-image .tagline[data-v-303bb580]{margin:0 auto}@media (min-width: 640px){.tagline[data-v-303bb580]{padding-top:12px;max-width:576px;line-height:32px;font-size:20px}}@media (min-width: 960px){.tagline[data-v-303bb580]{line-height:36px;font-size:24px}.VPHero.has-image .tagline[data-v-303bb580]{margin:0}}.actions[data-v-303bb580]{display:flex;flex-wrap:wrap;margin:-6px;padding-top:24px}.VPHero.has-image .actions[data-v-303bb580]{justify-content:center}@media (min-width: 640px){.actions[data-v-303bb580]{padding-top:32px}}@media (min-width: 960px){.VPHero.has-image .actions[data-v-303bb580]{justify-content:flex-start}}.action[data-v-303bb580]{flex-shrink:0;padding:6px}.image[data-v-303bb580]{order:1;margin:-76px -24px -48px}@media (min-width: 640px){.image[data-v-303bb580]{margin:-108px -24px -48px}}@media (min-width: 960px){.image[data-v-303bb580]{flex-grow:1;order:2;margin:0;min-height:100%}}.image-container[data-v-303bb580]{position:relative;margin:0 auto;width:320px;height:320px}@media (min-width: 640px){.image-container[data-v-303bb580]{width:392px;height:392px}}@media (min-width: 960px){.image-container[data-v-303bb580]{display:flex;justify-content:center;align-items:center;width:100%;height:100%;transform:translate(-32px,-32px)}}.image-bg[data-v-303bb580]{position:absolute;top:50%;left:50%;border-radius:50%;width:192px;height:192px;background-image:var(--vp-home-hero-image-background-image);filter:var(--vp-home-hero-image-filter);transform:translate(-50%,-50%)}@media (min-width: 640px){.image-bg[data-v-303bb580]{width:256px;height:256px}}@media (min-width: 960px){.image-bg[data-v-303bb580]{width:320px;height:320px}}[data-v-303bb580] .image-src{position:absolute;top:50%;left:50%;max-width:192px;max-height:192px;transform:translate(-50%,-50%)}@media (min-width: 640px){[data-v-303bb580] .image-src{max-width:256px;max-height:256px}}@media (min-width: 960px){[data-v-303bb580] .image-src{max-width:320px;max-height:320px}}.VPFeature[data-v-a3976bdc]{display:block;border:1px solid var(--vp-c-bg-soft);border-radius:12px;height:100%;background-color:var(--vp-c-bg-soft);transition:border-color .25s,background-color .25s}.VPFeature.link[data-v-a3976bdc]:hover{border-color:var(--vp-c-brand-1)}.box[data-v-a3976bdc]{display:flex;flex-direction:column;padding:24px;height:100%}.box[data-v-a3976bdc]>.VPImage{margin-bottom:20px}.icon[data-v-a3976bdc]{display:flex;justify-content:center;align-items:center;margin-bottom:20px;border-radius:6px;background-color:var(--vp-c-default-soft);width:48px;height:48px;font-size:24px;transition:background-color .25s}.title[data-v-a3976bdc]{line-height:24px;font-size:16px;font-weight:600}.details[data-v-a3976bdc]{flex-grow:1;padding-top:8px;line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}.link-text[data-v-a3976bdc]{padding-top:8px}.link-text-value[data-v-a3976bdc]{display:flex;align-items:center;font-size:14px;font-weight:500;color:var(--vp-c-brand-1)}.link-text-icon[data-v-a3976bdc]{margin-left:6px}.VPFeatures[data-v-a6181336]{position:relative;padding:0 24px}@media (min-width: 640px){.VPFeatures[data-v-a6181336]{padding:0 48px}}@media (min-width: 960px){.VPFeatures[data-v-a6181336]{padding:0 64px}}.container[data-v-a6181336]{margin:0 auto;max-width:1152px}.items[data-v-a6181336]{display:flex;flex-wrap:wrap;margin:-8px}.item[data-v-a6181336]{padding:8px;width:100%}@media (min-width: 640px){.item.grid-2[data-v-a6181336],.item.grid-4[data-v-a6181336],.item.grid-6[data-v-a6181336]{width:50%}}@media (min-width: 768px){.item.grid-2[data-v-a6181336],.item.grid-4[data-v-a6181336]{width:50%}.item.grid-3[data-v-a6181336],.item.grid-6[data-v-a6181336]{width:calc(100% / 3)}}@media (min-width: 960px){.item.grid-4[data-v-a6181336]{width:25%}}.container[data-v-8e2d4988]{margin:auto;width:100%;max-width:1280px;padding:0 24px}@media (min-width: 640px){.container[data-v-8e2d4988]{padding:0 48px}}@media (min-width: 960px){.container[data-v-8e2d4988]{width:100%;padding:0 64px}}.vp-doc[data-v-8e2d4988] .VPHomeSponsors,.vp-doc[data-v-8e2d4988] .VPTeamPage{margin-left:var(--vp-offset, calc(50% - 50vw) );margin-right:var(--vp-offset, calc(50% - 50vw) )}.vp-doc[data-v-8e2d4988] .VPHomeSponsors h2{border-top:none;letter-spacing:normal}.vp-doc[data-v-8e2d4988] .VPHomeSponsors a,.vp-doc[data-v-8e2d4988] .VPTeamPage a{text-decoration:none}.VPHome[data-v-686f80a6]{margin-bottom:96px}@media (min-width: 768px){.VPHome[data-v-686f80a6]{margin-bottom:128px}}.VPContent[data-v-1428d186]{flex-grow:1;flex-shrink:0;margin:var(--vp-layout-top-height, 0px) auto 0;width:100%}.VPContent.is-home[data-v-1428d186]{width:100%;max-width:100%}.VPContent.has-sidebar[data-v-1428d186]{margin:0}@media (min-width: 960px){.VPContent[data-v-1428d186]{padding-top:var(--vp-nav-height)}.VPContent.has-sidebar[data-v-1428d186]{margin:var(--vp-layout-top-height, 0px) 0 0;padding-left:var(--vp-sidebar-width)}}@media (min-width: 1440px){.VPContent.has-sidebar[data-v-1428d186]{padding-right:calc((100vw - var(--vp-layout-max-width)) / 2);padding-left:calc((100vw - var(--vp-layout-max-width)) / 2 + var(--vp-sidebar-width))}}.VPFooter[data-v-e315a0ad]{position:relative;z-index:var(--vp-z-index-footer);border-top:1px solid var(--vp-c-gutter);padding:32px 24px;background-color:var(--vp-c-bg)}.VPFooter.has-sidebar[data-v-e315a0ad]{display:none}.VPFooter[data-v-e315a0ad] a{text-decoration-line:underline;text-underline-offset:2px;transition:color .25s}.VPFooter[data-v-e315a0ad] a:hover{color:var(--vp-c-text-1)}@media (min-width: 768px){.VPFooter[data-v-e315a0ad]{padding:32px}}.container[data-v-e315a0ad]{margin:0 auto;max-width:var(--vp-layout-max-width);text-align:center}.message[data-v-e315a0ad],.copyright[data-v-e315a0ad]{line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}.VPLocalNavOutlineDropdown[data-v-17a5e62e]{padding:12px 20px 11px}@media (min-width: 960px){.VPLocalNavOutlineDropdown[data-v-17a5e62e]{padding:12px 36px 11px}}.VPLocalNavOutlineDropdown button[data-v-17a5e62e]{display:block;font-size:12px;font-weight:500;line-height:24px;color:var(--vp-c-text-2);transition:color .5s;position:relative}.VPLocalNavOutlineDropdown button[data-v-17a5e62e]:hover{color:var(--vp-c-text-1);transition:color .25s}.VPLocalNavOutlineDropdown button.open[data-v-17a5e62e]{color:var(--vp-c-text-1)}.icon[data-v-17a5e62e]{display:inline-block;vertical-align:middle;margin-left:2px;font-size:14px;transform:rotate(0);transition:transform .25s}@media (min-width: 960px){.VPLocalNavOutlineDropdown button[data-v-17a5e62e]{font-size:14px}.icon[data-v-17a5e62e]{font-size:16px}}.open>.icon[data-v-17a5e62e]{transform:rotate(90deg)}.items[data-v-17a5e62e]{position:absolute;top:40px;right:16px;left:16px;display:grid;gap:1px;border:1px solid var(--vp-c-border);border-radius:8px;background-color:var(--vp-c-gutter);max-height:calc(var(--vp-vh, 100vh) - 86px);overflow:hidden auto;box-shadow:var(--vp-shadow-3)}@media (min-width: 960px){.items[data-v-17a5e62e]{right:auto;left:calc(var(--vp-sidebar-width) + 32px);width:320px}}.header[data-v-17a5e62e]{background-color:var(--vp-c-bg-soft)}.top-link[data-v-17a5e62e]{display:block;padding:0 16px;line-height:48px;font-size:14px;font-weight:500;color:var(--vp-c-brand-1)}.outline[data-v-17a5e62e]{padding:8px 0;background-color:var(--vp-c-bg-soft)}.flyout-enter-active[data-v-17a5e62e]{transition:all .2s ease-out}.flyout-leave-active[data-v-17a5e62e]{transition:all .15s ease-in}.flyout-enter-from[data-v-17a5e62e],.flyout-leave-to[data-v-17a5e62e]{opacity:0;transform:translateY(-16px)}.VPLocalNav[data-v-a6f0e41e]{position:sticky;top:0;left:0;z-index:var(--vp-z-index-local-nav);border-bottom:1px solid var(--vp-c-gutter);padding-top:var(--vp-layout-top-height, 0px);width:100%;background-color:var(--vp-local-nav-bg-color)}.VPLocalNav.fixed[data-v-a6f0e41e]{position:fixed}@media (min-width: 960px){.VPLocalNav[data-v-a6f0e41e]{top:var(--vp-nav-height)}.VPLocalNav.has-sidebar[data-v-a6f0e41e]{padding-left:var(--vp-sidebar-width)}.VPLocalNav.empty[data-v-a6f0e41e]{display:none}}@media (min-width: 1280px){.VPLocalNav[data-v-a6f0e41e]{display:none}}@media (min-width: 1440px){.VPLocalNav.has-sidebar[data-v-a6f0e41e]{padding-left:calc((100vw - var(--vp-layout-max-width)) / 2 + var(--vp-sidebar-width))}}.container[data-v-a6f0e41e]{display:flex;justify-content:space-between;align-items:center}.menu[data-v-a6f0e41e]{display:flex;align-items:center;padding:12px 24px 11px;line-height:24px;font-size:12px;font-weight:500;color:var(--vp-c-text-2);transition:color .5s}.menu[data-v-a6f0e41e]:hover{color:var(--vp-c-text-1);transition:color .25s}@media (min-width: 768px){.menu[data-v-a6f0e41e]{padding:0 32px}}@media (min-width: 960px){.menu[data-v-a6f0e41e]{display:none}}.menu-icon[data-v-a6f0e41e]{margin-right:8px;font-size:14px}.VPOutlineDropdown[data-v-a6f0e41e]{padding:12px 24px 11px}@media (min-width: 768px){.VPOutlineDropdown[data-v-a6f0e41e]{padding:12px 32px 11px}}.VPSwitch[data-v-1d5665e3]{position:relative;border-radius:11px;display:block;width:40px;height:22px;flex-shrink:0;border:1px solid var(--vp-input-border-color);background-color:var(--vp-input-switch-bg-color);transition:border-color .25s!important}.VPSwitch[data-v-1d5665e3]:hover{border-color:var(--vp-c-brand-1)}.check[data-v-1d5665e3]{position:absolute;top:1px;left:1px;width:18px;height:18px;border-radius:50%;background-color:var(--vp-c-neutral-inverse);box-shadow:var(--vp-shadow-1);transition:transform .25s!important}.icon[data-v-1d5665e3]{position:relative;display:block;width:18px;height:18px;border-radius:50%;overflow:hidden}.icon[data-v-1d5665e3] [class^=vpi-]{position:absolute;top:3px;left:3px;width:12px;height:12px;color:var(--vp-c-text-2)}.dark .icon[data-v-1d5665e3] [class^=vpi-]{color:var(--vp-c-text-1);transition:opacity .25s!important}.sun[data-v-d1f28634]{opacity:1}.moon[data-v-d1f28634],.dark .sun[data-v-d1f28634]{opacity:0}.dark .moon[data-v-d1f28634]{opacity:1}.dark .VPSwitchAppearance[data-v-d1f28634] .check{transform:translate(18px)}.VPNavBarAppearance[data-v-e6aabb21]{display:none}@media (min-width: 1280px){.VPNavBarAppearance[data-v-e6aabb21]{display:flex;align-items:center}}.VPMenuGroup+.VPMenuLink[data-v-43f1e123]{margin:12px -12px 0;border-top:1px solid var(--vp-c-divider);padding:12px 12px 0}.link[data-v-43f1e123]{display:block;border-radius:6px;padding:0 12px;line-height:32px;font-size:14px;font-weight:500;color:var(--vp-c-text-1);white-space:nowrap;transition:background-color .25s,color .25s}.link[data-v-43f1e123]:hover{color:var(--vp-c-brand-1);background-color:var(--vp-c-default-soft)}.link.active[data-v-43f1e123]{color:var(--vp-c-brand-1)}.VPMenuGroup[data-v-69e747b5]{margin:12px -12px 0;border-top:1px solid var(--vp-c-divider);padding:12px 12px 0}.VPMenuGroup[data-v-69e747b5]:first-child{margin-top:0;border-top:0;padding-top:0}.VPMenuGroup+.VPMenuGroup[data-v-69e747b5]{margin-top:12px;border-top:1px solid var(--vp-c-divider)}.title[data-v-69e747b5]{padding:0 12px;line-height:32px;font-size:14px;font-weight:600;color:var(--vp-c-text-2);white-space:nowrap;transition:color .25s}.VPMenu[data-v-e7ea1737]{border-radius:12px;padding:12px;min-width:128px;border:1px solid var(--vp-c-divider);background-color:var(--vp-c-bg-elv);box-shadow:var(--vp-shadow-3);transition:background-color .5s;max-height:calc(100vh - var(--vp-nav-height));overflow-y:auto}.VPMenu[data-v-e7ea1737] .group{margin:0 -12px;padding:0 12px 12px}.VPMenu[data-v-e7ea1737] .group+.group{border-top:1px solid var(--vp-c-divider);padding:11px 12px 12px}.VPMenu[data-v-e7ea1737] .group:last-child{padding-bottom:0}.VPMenu[data-v-e7ea1737] .group+.item{border-top:1px solid var(--vp-c-divider);padding:11px 16px 0}.VPMenu[data-v-e7ea1737] .item{padding:0 16px;white-space:nowrap}.VPMenu[data-v-e7ea1737] .label{flex-grow:1;line-height:28px;font-size:12px;font-weight:500;color:var(--vp-c-text-2);transition:color .5s}.VPMenu[data-v-e7ea1737] .action{padding-left:24px}.VPFlyout[data-v-b6c34ac9]{position:relative}.VPFlyout[data-v-b6c34ac9]:hover{color:var(--vp-c-brand-1);transition:color .25s}.VPFlyout:hover .text[data-v-b6c34ac9]{color:var(--vp-c-text-2)}.VPFlyout:hover .icon[data-v-b6c34ac9]{fill:var(--vp-c-text-2)}.VPFlyout.active .text[data-v-b6c34ac9]{color:var(--vp-c-brand-1)}.VPFlyout.active:hover .text[data-v-b6c34ac9]{color:var(--vp-c-brand-2)}.VPFlyout:hover .menu[data-v-b6c34ac9],.button[aria-expanded=true]+.menu[data-v-b6c34ac9]{opacity:1;visibility:visible;transform:translateY(0)}.button[aria-expanded=false]+.menu[data-v-b6c34ac9]{opacity:0;visibility:hidden;transform:translateY(0)}.button[data-v-b6c34ac9]{display:flex;align-items:center;padding:0 12px;height:var(--vp-nav-height);color:var(--vp-c-text-1);transition:color .5s}.text[data-v-b6c34ac9]{display:flex;align-items:center;line-height:var(--vp-nav-height);font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:color .25s}.option-icon[data-v-b6c34ac9]{margin-right:0;font-size:16px}.text-icon[data-v-b6c34ac9]{margin-left:4px;font-size:14px}.icon[data-v-b6c34ac9]{font-size:20px;transition:fill .25s}.menu[data-v-b6c34ac9]{position:absolute;top:calc(var(--vp-nav-height) / 2 + 20px);right:0;opacity:0;visibility:hidden;transition:opacity .25s,visibility .25s,transform .25s}.VPSocialLink[data-v-eee4e7cb]{display:flex;justify-content:center;align-items:center;width:36px;height:36px;color:var(--vp-c-text-2);transition:color .5s}.VPSocialLink[data-v-eee4e7cb]:hover{color:var(--vp-c-text-1);transition:color .25s}.VPSocialLink[data-v-eee4e7cb]>svg,.VPSocialLink[data-v-eee4e7cb]>[class^=vpi-social-]{width:20px;height:20px;fill:currentColor}.VPSocialLinks[data-v-7bc22406]{display:flex;justify-content:center}.VPNavBarExtra[data-v-d0bd9dde]{display:none;margin-right:-12px}@media (min-width: 768px){.VPNavBarExtra[data-v-d0bd9dde]{display:block}}@media (min-width: 1280px){.VPNavBarExtra[data-v-d0bd9dde]{display:none}}.trans-title[data-v-d0bd9dde]{padding:0 24px 0 12px;line-height:32px;font-size:14px;font-weight:700;color:var(--vp-c-text-1)}.item.appearance[data-v-d0bd9dde],.item.social-links[data-v-d0bd9dde]{display:flex;align-items:center;padding:0 12px}.item.appearance[data-v-d0bd9dde]{min-width:176px}.appearance-action[data-v-d0bd9dde]{margin-right:-2px}.social-links-list[data-v-d0bd9dde]{margin:-4px -8px}.VPNavBarHamburger[data-v-e5dd9c1c]{display:flex;justify-content:center;align-items:center;width:48px;height:var(--vp-nav-height)}@media (min-width: 768px){.VPNavBarHamburger[data-v-e5dd9c1c]{display:none}}.container[data-v-e5dd9c1c]{position:relative;width:16px;height:14px;overflow:hidden}.VPNavBarHamburger:hover .top[data-v-e5dd9c1c]{top:0;left:0;transform:translate(4px)}.VPNavBarHamburger:hover .middle[data-v-e5dd9c1c]{top:6px;left:0;transform:translate(0)}.VPNavBarHamburger:hover .bottom[data-v-e5dd9c1c]{top:12px;left:0;transform:translate(8px)}.VPNavBarHamburger.active .top[data-v-e5dd9c1c]{top:6px;transform:translate(0) rotate(225deg)}.VPNavBarHamburger.active .middle[data-v-e5dd9c1c]{top:6px;transform:translate(16px)}.VPNavBarHamburger.active .bottom[data-v-e5dd9c1c]{top:6px;transform:translate(0) rotate(135deg)}.VPNavBarHamburger.active:hover .top[data-v-e5dd9c1c],.VPNavBarHamburger.active:hover .middle[data-v-e5dd9c1c],.VPNavBarHamburger.active:hover .bottom[data-v-e5dd9c1c]{background-color:var(--vp-c-text-2);transition:top .25s,background-color .25s,transform .25s}.top[data-v-e5dd9c1c],.middle[data-v-e5dd9c1c],.bottom[data-v-e5dd9c1c]{position:absolute;width:16px;height:2px;background-color:var(--vp-c-text-1);transition:top .25s,background-color .5s,transform .25s}.top[data-v-e5dd9c1c]{top:0;left:0;transform:translate(0)}.middle[data-v-e5dd9c1c]{top:6px;left:0;transform:translate(8px)}.bottom[data-v-e5dd9c1c]{top:12px;left:0;transform:translate(4px)}.VPNavBarMenuLink[data-v-9c663999]{display:flex;align-items:center;padding:0 12px;line-height:var(--vp-nav-height);font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:color .25s}.VPNavBarMenuLink.active[data-v-9c663999],.VPNavBarMenuLink[data-v-9c663999]:hover{color:var(--vp-c-brand-1)}.VPNavBarMenu[data-v-7f418b0f]{display:none}@media (min-width: 768px){.VPNavBarMenu[data-v-7f418b0f]{display:flex}}/*! @docsearch/css 3.6.0 | MIT License | © Algolia, Inc. and contributors | https://docsearch.algolia.com */:root{--docsearch-primary-color:#5468ff;--docsearch-text-color:#1c1e21;--docsearch-spacing:12px;--docsearch-icon-stroke-width:1.4;--docsearch-highlight-color:var(--docsearch-primary-color);--docsearch-muted-color:#969faf;--docsearch-container-background:rgba(101,108,133,.8);--docsearch-logo-color:#5468ff;--docsearch-modal-width:560px;--docsearch-modal-height:600px;--docsearch-modal-background:#f5f6f7;--docsearch-modal-shadow:inset 1px 1px 0 0 hsla(0,0%,100%,.5),0 3px 8px 0 #555a64;--docsearch-searchbox-height:56px;--docsearch-searchbox-background:#ebedf0;--docsearch-searchbox-focus-background:#fff;--docsearch-searchbox-shadow:inset 0 0 0 2px var(--docsearch-primary-color);--docsearch-hit-height:56px;--docsearch-hit-color:#444950;--docsearch-hit-active-color:#fff;--docsearch-hit-background:#fff;--docsearch-hit-shadow:0 1px 3px 0 #d4d9e1;--docsearch-key-gradient:linear-gradient(-225deg,#d5dbe4,#f8f8f8);--docsearch-key-shadow:inset 0 -2px 0 0 #cdcde6,inset 0 0 1px 1px #fff,0 1px 2px 1px rgba(30,35,90,.4);--docsearch-key-pressed-shadow:inset 0 -2px 0 0 #cdcde6,inset 0 0 1px 1px #fff,0 1px 1px 0 rgba(30,35,90,.4);--docsearch-footer-height:44px;--docsearch-footer-background:#fff;--docsearch-footer-shadow:0 -1px 0 0 #e0e3e8,0 -3px 6px 0 rgba(69,98,155,.12)}html[data-theme=dark]{--docsearch-text-color:#f5f6f7;--docsearch-container-background:rgba(9,10,17,.8);--docsearch-modal-background:#15172a;--docsearch-modal-shadow:inset 1px 1px 0 0 #2c2e40,0 3px 8px 0 #000309;--docsearch-searchbox-background:#090a11;--docsearch-searchbox-focus-background:#000;--docsearch-hit-color:#bec3c9;--docsearch-hit-shadow:none;--docsearch-hit-background:#090a11;--docsearch-key-gradient:linear-gradient(-26.5deg,#565872,#31355b);--docsearch-key-shadow:inset 0 -2px 0 0 #282d55,inset 0 0 1px 1px #51577d,0 2px 2px 0 rgba(3,4,9,.3);--docsearch-key-pressed-shadow:inset 0 -2px 0 0 #282d55,inset 0 0 1px 1px #51577d,0 1px 1px 0 rgba(3,4,9,.30196078431372547);--docsearch-footer-background:#1e2136;--docsearch-footer-shadow:inset 0 1px 0 0 rgba(73,76,106,.5),0 -4px 8px 0 rgba(0,0,0,.2);--docsearch-logo-color:#fff;--docsearch-muted-color:#7f8497}.DocSearch-Button{align-items:center;background:var(--docsearch-searchbox-background);border:0;border-radius:40px;color:var(--docsearch-muted-color);cursor:pointer;display:flex;font-weight:500;height:36px;justify-content:space-between;margin:0 0 0 16px;padding:0 8px;-webkit-user-select:none;user-select:none}.DocSearch-Button:active,.DocSearch-Button:focus,.DocSearch-Button:hover{background:var(--docsearch-searchbox-focus-background);box-shadow:var(--docsearch-searchbox-shadow);color:var(--docsearch-text-color);outline:none}.DocSearch-Button-Container{align-items:center;display:flex}.DocSearch-Search-Icon{stroke-width:1.6}.DocSearch-Button .DocSearch-Search-Icon{color:var(--docsearch-text-color)}.DocSearch-Button-Placeholder{font-size:1rem;padding:0 12px 0 6px}.DocSearch-Button-Keys{display:flex;min-width:calc(40px + .8em)}.DocSearch-Button-Key{align-items:center;background:var(--docsearch-key-gradient);border-radius:3px;box-shadow:var(--docsearch-key-shadow);color:var(--docsearch-muted-color);display:flex;height:18px;justify-content:center;margin-right:.4em;position:relative;padding:0 0 2px;border:0;top:-1px;width:20px}.DocSearch-Button-Key--pressed{transform:translate3d(0,1px,0);box-shadow:var(--docsearch-key-pressed-shadow)}@media (max-width:768px){.DocSearch-Button-Keys,.DocSearch-Button-Placeholder{display:none}}.DocSearch--active{overflow:hidden!important}.DocSearch-Container,.DocSearch-Container *{box-sizing:border-box}.DocSearch-Container{background-color:var(--docsearch-container-background);height:100vh;left:0;position:fixed;top:0;width:100vw;z-index:200}.DocSearch-Container a{text-decoration:none}.DocSearch-Link{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;color:var(--docsearch-highlight-color);cursor:pointer;font:inherit;margin:0;padding:0}.DocSearch-Modal{background:var(--docsearch-modal-background);border-radius:6px;box-shadow:var(--docsearch-modal-shadow);flex-direction:column;margin:60px auto auto;max-width:var(--docsearch-modal-width);position:relative}.DocSearch-SearchBar{display:flex;padding:var(--docsearch-spacing) var(--docsearch-spacing) 0}.DocSearch-Form{align-items:center;background:var(--docsearch-searchbox-focus-background);border-radius:4px;box-shadow:var(--docsearch-searchbox-shadow);display:flex;height:var(--docsearch-searchbox-height);margin:0;padding:0 var(--docsearch-spacing);position:relative;width:100%}.DocSearch-Input{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:0;color:var(--docsearch-text-color);flex:1;font:inherit;font-size:1.2em;height:100%;outline:none;padding:0 0 0 8px;width:80%}.DocSearch-Input::placeholder{color:var(--docsearch-muted-color);opacity:1}.DocSearch-Input::-webkit-search-cancel-button,.DocSearch-Input::-webkit-search-decoration,.DocSearch-Input::-webkit-search-results-button,.DocSearch-Input::-webkit-search-results-decoration{display:none}.DocSearch-LoadingIndicator,.DocSearch-MagnifierLabel,.DocSearch-Reset{margin:0;padding:0}.DocSearch-MagnifierLabel,.DocSearch-Reset{align-items:center;color:var(--docsearch-highlight-color);display:flex;justify-content:center}.DocSearch-Container--Stalled .DocSearch-MagnifierLabel,.DocSearch-LoadingIndicator{display:none}.DocSearch-Container--Stalled .DocSearch-LoadingIndicator{align-items:center;color:var(--docsearch-highlight-color);display:flex;justify-content:center}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Reset{animation:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;border-radius:50%;color:var(--docsearch-icon-color);cursor:pointer;right:0;stroke-width:var(--docsearch-icon-stroke-width)}}.DocSearch-Reset{animation:fade-in .1s ease-in forwards;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;border-radius:50%;color:var(--docsearch-icon-color);cursor:pointer;padding:2px;right:0;stroke-width:var(--docsearch-icon-stroke-width)}.DocSearch-Reset[hidden]{display:none}.DocSearch-Reset:hover{color:var(--docsearch-highlight-color)}.DocSearch-LoadingIndicator svg,.DocSearch-MagnifierLabel svg{height:24px;width:24px}.DocSearch-Cancel{display:none}.DocSearch-Dropdown{max-height:calc(var(--docsearch-modal-height) - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height));min-height:var(--docsearch-spacing);overflow-y:auto;overflow-y:overlay;padding:0 var(--docsearch-spacing);scrollbar-color:var(--docsearch-muted-color) var(--docsearch-modal-background);scrollbar-width:thin}.DocSearch-Dropdown::-webkit-scrollbar{width:12px}.DocSearch-Dropdown::-webkit-scrollbar-track{background:transparent}.DocSearch-Dropdown::-webkit-scrollbar-thumb{background-color:var(--docsearch-muted-color);border:3px solid var(--docsearch-modal-background);border-radius:20px}.DocSearch-Dropdown ul{list-style:none;margin:0;padding:0}.DocSearch-Label{font-size:.75em;line-height:1.6em}.DocSearch-Help,.DocSearch-Label{color:var(--docsearch-muted-color)}.DocSearch-Help{font-size:.9em;margin:0;-webkit-user-select:none;user-select:none}.DocSearch-Title{font-size:1.2em}.DocSearch-Logo a{display:flex}.DocSearch-Logo svg{color:var(--docsearch-logo-color);margin-left:8px}.DocSearch-Hits:last-of-type{margin-bottom:24px}.DocSearch-Hits mark{background:none;color:var(--docsearch-highlight-color)}.DocSearch-HitsFooter{color:var(--docsearch-muted-color);display:flex;font-size:.85em;justify-content:center;margin-bottom:var(--docsearch-spacing);padding:var(--docsearch-spacing)}.DocSearch-HitsFooter a{border-bottom:1px solid;color:inherit}.DocSearch-Hit{border-radius:4px;display:flex;padding-bottom:4px;position:relative}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit--deleting{transition:none}}.DocSearch-Hit--deleting{opacity:0;transition:all .25s linear}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit--favoriting{transition:none}}.DocSearch-Hit--favoriting{transform:scale(0);transform-origin:top center;transition:all .25s linear;transition-delay:.25s}.DocSearch-Hit a{background:var(--docsearch-hit-background);border-radius:4px;box-shadow:var(--docsearch-hit-shadow);display:block;padding-left:var(--docsearch-spacing);width:100%}.DocSearch-Hit-source{background:var(--docsearch-modal-background);color:var(--docsearch-highlight-color);font-size:.85em;font-weight:600;line-height:32px;margin:0 -4px;padding:8px 4px 0;position:sticky;top:0;z-index:10}.DocSearch-Hit-Tree{color:var(--docsearch-muted-color);height:var(--docsearch-hit-height);opacity:.5;stroke-width:var(--docsearch-icon-stroke-width);width:24px}.DocSearch-Hit[aria-selected=true] a{background-color:var(--docsearch-highlight-color)}.DocSearch-Hit[aria-selected=true] mark{text-decoration:underline}.DocSearch-Hit-Container{align-items:center;color:var(--docsearch-hit-color);display:flex;flex-direction:row;height:var(--docsearch-hit-height);padding:0 var(--docsearch-spacing) 0 0}.DocSearch-Hit-icon{height:20px;width:20px}.DocSearch-Hit-action,.DocSearch-Hit-icon{color:var(--docsearch-muted-color);stroke-width:var(--docsearch-icon-stroke-width)}.DocSearch-Hit-action{align-items:center;display:flex;height:22px;width:22px}.DocSearch-Hit-action svg{display:block;height:18px;width:18px}.DocSearch-Hit-action+.DocSearch-Hit-action{margin-left:6px}.DocSearch-Hit-action-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;border-radius:50%;color:inherit;cursor:pointer;padding:2px}svg.DocSearch-Hit-Select-Icon{display:none}.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Select-Icon{display:block}.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{background:#0003;transition:background-color .1s ease-in}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{transition:none}}.DocSearch-Hit-action-button:focus path,.DocSearch-Hit-action-button:hover path{fill:#fff}.DocSearch-Hit-content-wrapper{display:flex;flex:1 1 auto;flex-direction:column;font-weight:500;justify-content:center;line-height:1.2em;margin:0 8px;overflow-x:hidden;position:relative;text-overflow:ellipsis;white-space:nowrap;width:80%}.DocSearch-Hit-title{font-size:.9em}.DocSearch-Hit-path{color:var(--docsearch-muted-color);font-size:.75em}.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-action,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-icon,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-path,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-text,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-title,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Tree,.DocSearch-Hit[aria-selected=true] mark{color:var(--docsearch-hit-active-color)!important}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{background:#0003;transition:none}}.DocSearch-ErrorScreen,.DocSearch-NoResults,.DocSearch-StartScreen{font-size:.9em;margin:0 auto;padding:36px 0;text-align:center;width:80%}.DocSearch-Screen-Icon{color:var(--docsearch-muted-color);padding-bottom:12px}.DocSearch-NoResults-Prefill-List{display:inline-block;padding-bottom:24px;text-align:left}.DocSearch-NoResults-Prefill-List ul{display:inline-block;padding:8px 0 0}.DocSearch-NoResults-Prefill-List li{list-style-position:inside;list-style-type:"» "}.DocSearch-Prefill{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;border-radius:1em;color:var(--docsearch-highlight-color);cursor:pointer;display:inline-block;font-size:1em;font-weight:700;padding:0}.DocSearch-Prefill:focus,.DocSearch-Prefill:hover{outline:none;text-decoration:underline}.DocSearch-Footer{align-items:center;background:var(--docsearch-footer-background);border-radius:0 0 8px 8px;box-shadow:var(--docsearch-footer-shadow);display:flex;flex-direction:row-reverse;flex-shrink:0;height:var(--docsearch-footer-height);justify-content:space-between;padding:0 var(--docsearch-spacing);position:relative;-webkit-user-select:none;user-select:none;width:100%;z-index:300}.DocSearch-Commands{color:var(--docsearch-muted-color);display:flex;list-style:none;margin:0;padding:0}.DocSearch-Commands li{align-items:center;display:flex}.DocSearch-Commands li:not(:last-of-type){margin-right:.8em}.DocSearch-Commands-Key{align-items:center;background:var(--docsearch-key-gradient);border-radius:2px;box-shadow:var(--docsearch-key-shadow);display:flex;height:18px;justify-content:center;margin-right:.4em;padding:0 0 1px;color:var(--docsearch-muted-color);border:0;width:20px}.DocSearch-VisuallyHiddenForAccessibility{clip:rect(0 0 0 0);clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}@media (max-width:768px){:root{--docsearch-spacing:10px;--docsearch-footer-height:40px}.DocSearch-Dropdown{height:100%}.DocSearch-Container{height:100vh;height:-webkit-fill-available;height:calc(var(--docsearch-vh, 1vh)*100);position:absolute}.DocSearch-Footer{border-radius:0;bottom:0;position:absolute}.DocSearch-Hit-content-wrapper{display:flex;position:relative;width:80%}.DocSearch-Modal{border-radius:0;box-shadow:none;height:100vh;height:-webkit-fill-available;height:calc(var(--docsearch-vh, 1vh)*100);margin:0;max-width:100%;width:100%}.DocSearch-Dropdown{max-height:calc(var(--docsearch-vh, 1vh)*100 - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height))}.DocSearch-Cancel{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;color:var(--docsearch-highlight-color);cursor:pointer;display:inline-block;flex:none;font:inherit;font-size:1em;font-weight:500;margin-left:var(--docsearch-spacing);outline:none;overflow:hidden;padding:0;-webkit-user-select:none;user-select:none;white-space:nowrap}.DocSearch-Commands,.DocSearch-Hit-Tree{display:none}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}[class*=DocSearch]{--docsearch-primary-color: var(--vp-c-brand-1);--docsearch-highlight-color: var(--docsearch-primary-color);--docsearch-text-color: var(--vp-c-text-1);--docsearch-muted-color: var(--vp-c-text-2);--docsearch-searchbox-shadow: none;--docsearch-searchbox-background: transparent;--docsearch-searchbox-focus-background: transparent;--docsearch-key-gradient: transparent;--docsearch-key-shadow: none;--docsearch-modal-background: var(--vp-c-bg-soft);--docsearch-footer-background: var(--vp-c-bg)}.dark [class*=DocSearch]{--docsearch-modal-shadow: none;--docsearch-footer-shadow: none;--docsearch-logo-color: var(--vp-c-text-2);--docsearch-hit-background: var(--vp-c-default-soft);--docsearch-hit-color: var(--vp-c-text-2);--docsearch-hit-shadow: none}.DocSearch-Button{display:flex;justify-content:center;align-items:center;margin:0;padding:0;width:48px;height:55px;background:transparent;transition:border-color .25s}.DocSearch-Button:hover{background:transparent}.DocSearch-Button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}.DocSearch-Button-Key--pressed{transform:none;box-shadow:none}.DocSearch-Button:focus:not(:focus-visible){outline:none!important}@media (min-width: 768px){.DocSearch-Button{justify-content:flex-start;border:1px solid transparent;border-radius:8px;padding:0 10px 0 12px;width:100%;height:40px;background-color:var(--vp-c-bg-alt)}.DocSearch-Button:hover{border-color:var(--vp-c-brand-1);background:var(--vp-c-bg-alt)}}.DocSearch-Button .DocSearch-Button-Container{display:flex;align-items:center}.DocSearch-Button .DocSearch-Search-Icon{position:relative;width:16px;height:16px;color:var(--vp-c-text-1);fill:currentColor;transition:color .5s}.DocSearch-Button:hover .DocSearch-Search-Icon{color:var(--vp-c-text-1)}@media (min-width: 768px){.DocSearch-Button .DocSearch-Search-Icon{top:1px;margin-right:8px;width:14px;height:14px;color:var(--vp-c-text-2)}}.DocSearch-Button .DocSearch-Button-Placeholder{display:none;margin-top:2px;padding:0 16px 0 0;font-size:13px;font-weight:500;color:var(--vp-c-text-2);transition:color .5s}.DocSearch-Button:hover .DocSearch-Button-Placeholder{color:var(--vp-c-text-1)}@media (min-width: 768px){.DocSearch-Button .DocSearch-Button-Placeholder{display:inline-block}}.DocSearch-Button .DocSearch-Button-Keys{direction:ltr;display:none;min-width:auto}@media (min-width: 768px){.DocSearch-Button .DocSearch-Button-Keys{display:flex;align-items:center}}.DocSearch-Button .DocSearch-Button-Key{display:block;margin:2px 0 0;border:1px solid var(--vp-c-divider);border-right:none;border-radius:4px 0 0 4px;padding-left:6px;min-width:0;width:auto;height:22px;line-height:22px;font-family:var(--vp-font-family-base);font-size:12px;font-weight:500;transition:color .5s,border-color .5s}.DocSearch-Button .DocSearch-Button-Key+.DocSearch-Button-Key{border-right:1px solid var(--vp-c-divider);border-left:none;border-radius:0 4px 4px 0;padding-left:2px;padding-right:6px}.DocSearch-Button .DocSearch-Button-Key:first-child{font-size:0!important}.DocSearch-Button .DocSearch-Button-Key:first-child:after{content:"Ctrl";font-size:12px;letter-spacing:normal;color:var(--docsearch-muted-color)}.mac .DocSearch-Button .DocSearch-Button-Key:first-child:after{content:"⌘"}.DocSearch-Button .DocSearch-Button-Key:first-child>*{display:none}.DocSearch-Search-Icon{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' stroke-width='1.6' viewBox='0 0 20 20'%3E%3Cpath fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' d='m14.386 14.386 4.088 4.088-4.088-4.088A7.533 7.533 0 1 1 3.733 3.733a7.533 7.533 0 0 1 10.653 10.653z'/%3E%3C/svg%3E")}.VPNavBarSearch{display:flex;align-items:center}@media (min-width: 768px){.VPNavBarSearch{flex-grow:1;padding-left:24px}}@media (min-width: 960px){.VPNavBarSearch{padding-left:32px}}.dark .DocSearch-Footer{border-top:1px solid var(--vp-c-divider)}.DocSearch-Form{border:1px solid var(--vp-c-brand-1);background-color:var(--vp-c-white)}.dark .DocSearch-Form{background-color:var(--vp-c-default-soft)}.DocSearch-Screen-Icon>svg{margin:auto}.VPNavBarSocialLinks[data-v-0394ad82]{display:none}@media (min-width: 1280px){.VPNavBarSocialLinks[data-v-0394ad82]{display:flex;align-items:center}}.title[data-v-ab179fa1]{display:flex;align-items:center;border-bottom:1px solid transparent;width:100%;height:var(--vp-nav-height);font-size:16px;font-weight:600;color:var(--vp-c-text-1);transition:opacity .25s}@media (min-width: 960px){.title[data-v-ab179fa1]{flex-shrink:0}.VPNavBarTitle.has-sidebar .title[data-v-ab179fa1]{border-bottom-color:var(--vp-c-divider)}}[data-v-ab179fa1] .logo{margin-right:8px;height:var(--vp-nav-logo-height)}.VPNavBarTranslations[data-v-88af2de4]{display:none}@media (min-width: 1280px){.VPNavBarTranslations[data-v-88af2de4]{display:flex;align-items:center}}.title[data-v-88af2de4]{padding:0 24px 0 12px;line-height:32px;font-size:14px;font-weight:700;color:var(--vp-c-text-1)}.VPNavBar[data-v-ccf7ddec]{position:relative;height:var(--vp-nav-height);pointer-events:none;white-space:nowrap;transition:background-color .5s}.VPNavBar[data-v-ccf7ddec]:not(.home){background-color:var(--vp-nav-bg-color)}@media (min-width: 960px){.VPNavBar[data-v-ccf7ddec]:not(.home){background-color:transparent}.VPNavBar[data-v-ccf7ddec]:not(.has-sidebar):not(.home.top){background-color:var(--vp-nav-bg-color)}}.wrapper[data-v-ccf7ddec]{padding:0 8px 0 24px}@media (min-width: 768px){.wrapper[data-v-ccf7ddec]{padding:0 32px}}@media (min-width: 960px){.VPNavBar.has-sidebar .wrapper[data-v-ccf7ddec]{padding:0}}.container[data-v-ccf7ddec]{display:flex;justify-content:space-between;margin:0 auto;max-width:calc(var(--vp-layout-max-width) - 64px);height:var(--vp-nav-height);pointer-events:none}.container>.title[data-v-ccf7ddec],.container>.content[data-v-ccf7ddec]{pointer-events:none}.container[data-v-ccf7ddec] *{pointer-events:auto}@media (min-width: 960px){.VPNavBar.has-sidebar .container[data-v-ccf7ddec]{max-width:100%}}.title[data-v-ccf7ddec]{flex-shrink:0;height:calc(var(--vp-nav-height) - 1px);transition:background-color .5s}@media (min-width: 960px){.VPNavBar.has-sidebar .title[data-v-ccf7ddec]{position:absolute;top:0;left:0;z-index:2;padding:0 32px;width:var(--vp-sidebar-width);height:var(--vp-nav-height);background-color:transparent}}@media (min-width: 1440px){.VPNavBar.has-sidebar .title[data-v-ccf7ddec]{padding-left:max(32px,calc((100% - (var(--vp-layout-max-width) - 64px)) / 2));width:calc((100% - (var(--vp-layout-max-width) - 64px)) / 2 + var(--vp-sidebar-width) - 32px)}}.content[data-v-ccf7ddec]{flex-grow:1}@media (min-width: 960px){.VPNavBar.has-sidebar .content[data-v-ccf7ddec]{position:relative;z-index:1;padding-right:32px;padding-left:var(--vp-sidebar-width)}}@media (min-width: 1440px){.VPNavBar.has-sidebar .content[data-v-ccf7ddec]{padding-right:calc((100vw - var(--vp-layout-max-width)) / 2 + 32px);padding-left:calc((100vw - var(--vp-layout-max-width)) / 2 + var(--vp-sidebar-width))}}.content-body[data-v-ccf7ddec]{display:flex;justify-content:flex-end;align-items:center;height:var(--vp-nav-height);transition:background-color .5s}@media (min-width: 960px){.VPNavBar:not(.home.top) .content-body[data-v-ccf7ddec]{position:relative;background-color:var(--vp-nav-bg-color)}.VPNavBar:not(.has-sidebar):not(.home.top) .content-body[data-v-ccf7ddec]{background-color:transparent}}@media (max-width: 767px){.content-body[data-v-ccf7ddec]{column-gap:.5rem}}.menu+.translations[data-v-ccf7ddec]:before,.menu+.appearance[data-v-ccf7ddec]:before,.menu+.social-links[data-v-ccf7ddec]:before,.translations+.appearance[data-v-ccf7ddec]:before,.appearance+.social-links[data-v-ccf7ddec]:before{margin-right:8px;margin-left:8px;width:1px;height:24px;background-color:var(--vp-c-divider);content:""}.menu+.appearance[data-v-ccf7ddec]:before,.translations+.appearance[data-v-ccf7ddec]:before{margin-right:16px}.appearance+.social-links[data-v-ccf7ddec]:before{margin-left:16px}.social-links[data-v-ccf7ddec]{margin-right:-8px}.divider[data-v-ccf7ddec]{width:100%;height:1px}@media (min-width: 960px){.VPNavBar.has-sidebar .divider[data-v-ccf7ddec]{padding-left:var(--vp-sidebar-width)}}@media (min-width: 1440px){.VPNavBar.has-sidebar .divider[data-v-ccf7ddec]{padding-left:calc((100vw - var(--vp-layout-max-width)) / 2 + var(--vp-sidebar-width))}}.divider-line[data-v-ccf7ddec]{width:100%;height:1px;transition:background-color .5s}.VPNavBar:not(.home) .divider-line[data-v-ccf7ddec]{background-color:var(--vp-c-gutter)}@media (min-width: 960px){.VPNavBar:not(.home.top) .divider-line[data-v-ccf7ddec]{background-color:var(--vp-c-gutter)}.VPNavBar:not(.has-sidebar):not(.home.top) .divider[data-v-ccf7ddec]{background-color:var(--vp-c-gutter)}}.VPNavScreenAppearance[data-v-2d7af913]{display:flex;justify-content:space-between;align-items:center;border-radius:8px;padding:12px 14px 12px 16px;background-color:var(--vp-c-bg-soft)}.text[data-v-2d7af913]{line-height:24px;font-size:12px;font-weight:500;color:var(--vp-c-text-2)}.VPNavScreenMenuLink[data-v-7f31e1f6]{display:block;border-bottom:1px solid var(--vp-c-divider);padding:12px 0 11px;line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:border-color .25s,color .25s}.VPNavScreenMenuLink[data-v-7f31e1f6]:hover{color:var(--vp-c-brand-1)}.VPNavScreenMenuGroupLink[data-v-19976ae1]{display:block;margin-left:12px;line-height:32px;font-size:14px;font-weight:400;color:var(--vp-c-text-1);transition:color .25s}.VPNavScreenMenuGroupLink[data-v-19976ae1]:hover{color:var(--vp-c-brand-1)}.VPNavScreenMenuGroupSection[data-v-8133b170]{display:block}.title[data-v-8133b170]{line-height:32px;font-size:13px;font-weight:700;color:var(--vp-c-text-2);transition:color .25s}.VPNavScreenMenuGroup[data-v-ff6087d4]{border-bottom:1px solid var(--vp-c-divider);height:48px;overflow:hidden;transition:border-color .5s}.VPNavScreenMenuGroup .items[data-v-ff6087d4]{visibility:hidden}.VPNavScreenMenuGroup.open .items[data-v-ff6087d4]{visibility:visible}.VPNavScreenMenuGroup.open[data-v-ff6087d4]{padding-bottom:10px;height:auto}.VPNavScreenMenuGroup.open .button[data-v-ff6087d4]{padding-bottom:6px;color:var(--vp-c-brand-1)}.VPNavScreenMenuGroup.open .button-icon[data-v-ff6087d4]{transform:rotate(45deg)}.button[data-v-ff6087d4]{display:flex;justify-content:space-between;align-items:center;padding:12px 4px 11px 0;width:100%;line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:color .25s}.button[data-v-ff6087d4]:hover{color:var(--vp-c-brand-1)}.button-icon[data-v-ff6087d4]{transition:transform .25s}.group[data-v-ff6087d4]:first-child{padding-top:0}.group+.group[data-v-ff6087d4],.group+.item[data-v-ff6087d4]{padding-top:4px}.VPNavScreenTranslations[data-v-858fe1a4]{height:24px;overflow:hidden}.VPNavScreenTranslations.open[data-v-858fe1a4]{height:auto}.title[data-v-858fe1a4]{display:flex;align-items:center;font-size:14px;font-weight:500;color:var(--vp-c-text-1)}.icon[data-v-858fe1a4]{font-size:16px}.icon.lang[data-v-858fe1a4]{margin-right:8px}.icon.chevron[data-v-858fe1a4]{margin-left:4px}.list[data-v-858fe1a4]{padding:4px 0 0 24px}.link[data-v-858fe1a4]{line-height:32px;font-size:13px;color:var(--vp-c-text-1)}.VPNavScreen[data-v-cc5739dd]{position:fixed;top:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 1px);right:0;bottom:0;left:0;padding:0 32px;width:100%;background-color:var(--vp-nav-screen-bg-color);overflow-y:auto;transition:background-color .5s;pointer-events:auto}.VPNavScreen.fade-enter-active[data-v-cc5739dd],.VPNavScreen.fade-leave-active[data-v-cc5739dd]{transition:opacity .25s}.VPNavScreen.fade-enter-active .container[data-v-cc5739dd],.VPNavScreen.fade-leave-active .container[data-v-cc5739dd]{transition:transform .25s ease}.VPNavScreen.fade-enter-from[data-v-cc5739dd],.VPNavScreen.fade-leave-to[data-v-cc5739dd]{opacity:0}.VPNavScreen.fade-enter-from .container[data-v-cc5739dd],.VPNavScreen.fade-leave-to .container[data-v-cc5739dd]{transform:translateY(-8px)}@media (min-width: 768px){.VPNavScreen[data-v-cc5739dd]{display:none}}.container[data-v-cc5739dd]{margin:0 auto;padding:24px 0 96px;max-width:288px}.menu+.translations[data-v-cc5739dd],.menu+.appearance[data-v-cc5739dd],.translations+.appearance[data-v-cc5739dd]{margin-top:24px}.menu+.social-links[data-v-cc5739dd]{margin-top:16px}.appearance+.social-links[data-v-cc5739dd]{margin-top:16px}.VPNav[data-v-ae24b3ad]{position:relative;top:var(--vp-layout-top-height, 0px);left:0;z-index:var(--vp-z-index-nav);width:100%;pointer-events:none;transition:background-color .5s}@media (min-width: 960px){.VPNav[data-v-ae24b3ad]{position:fixed}}.VPSidebarItem.level-0[data-v-b8d55f3b]{padding-bottom:24px}.VPSidebarItem.collapsed.level-0[data-v-b8d55f3b]{padding-bottom:10px}.item[data-v-b8d55f3b]{position:relative;display:flex;width:100%}.VPSidebarItem.collapsible>.item[data-v-b8d55f3b]{cursor:pointer}.indicator[data-v-b8d55f3b]{position:absolute;top:6px;bottom:6px;left:-17px;width:2px;border-radius:2px;transition:background-color .25s}.VPSidebarItem.level-2.is-active>.item>.indicator[data-v-b8d55f3b],.VPSidebarItem.level-3.is-active>.item>.indicator[data-v-b8d55f3b],.VPSidebarItem.level-4.is-active>.item>.indicator[data-v-b8d55f3b],.VPSidebarItem.level-5.is-active>.item>.indicator[data-v-b8d55f3b]{background-color:var(--vp-c-brand-1)}.link[data-v-b8d55f3b]{display:flex;align-items:center;flex-grow:1}.text[data-v-b8d55f3b]{flex-grow:1;padding:4px 0;line-height:24px;font-size:14px;transition:color .25s}.VPSidebarItem.level-0 .text[data-v-b8d55f3b]{font-weight:700;color:var(--vp-c-text-1)}.VPSidebarItem.level-1 .text[data-v-b8d55f3b],.VPSidebarItem.level-2 .text[data-v-b8d55f3b],.VPSidebarItem.level-3 .text[data-v-b8d55f3b],.VPSidebarItem.level-4 .text[data-v-b8d55f3b],.VPSidebarItem.level-5 .text[data-v-b8d55f3b]{font-weight:500;color:var(--vp-c-text-2)}.VPSidebarItem.level-0.is-link>.item>.link:hover .text[data-v-b8d55f3b],.VPSidebarItem.level-1.is-link>.item>.link:hover .text[data-v-b8d55f3b],.VPSidebarItem.level-2.is-link>.item>.link:hover .text[data-v-b8d55f3b],.VPSidebarItem.level-3.is-link>.item>.link:hover .text[data-v-b8d55f3b],.VPSidebarItem.level-4.is-link>.item>.link:hover .text[data-v-b8d55f3b],.VPSidebarItem.level-5.is-link>.item>.link:hover .text[data-v-b8d55f3b]{color:var(--vp-c-brand-1)}.VPSidebarItem.level-0.has-active>.item>.text[data-v-b8d55f3b],.VPSidebarItem.level-1.has-active>.item>.text[data-v-b8d55f3b],.VPSidebarItem.level-2.has-active>.item>.text[data-v-b8d55f3b],.VPSidebarItem.level-3.has-active>.item>.text[data-v-b8d55f3b],.VPSidebarItem.level-4.has-active>.item>.text[data-v-b8d55f3b],.VPSidebarItem.level-5.has-active>.item>.text[data-v-b8d55f3b],.VPSidebarItem.level-0.has-active>.item>.link>.text[data-v-b8d55f3b],.VPSidebarItem.level-1.has-active>.item>.link>.text[data-v-b8d55f3b],.VPSidebarItem.level-2.has-active>.item>.link>.text[data-v-b8d55f3b],.VPSidebarItem.level-3.has-active>.item>.link>.text[data-v-b8d55f3b],.VPSidebarItem.level-4.has-active>.item>.link>.text[data-v-b8d55f3b],.VPSidebarItem.level-5.has-active>.item>.link>.text[data-v-b8d55f3b]{color:var(--vp-c-text-1)}.VPSidebarItem.level-0.is-active>.item .link>.text[data-v-b8d55f3b],.VPSidebarItem.level-1.is-active>.item .link>.text[data-v-b8d55f3b],.VPSidebarItem.level-2.is-active>.item .link>.text[data-v-b8d55f3b],.VPSidebarItem.level-3.is-active>.item .link>.text[data-v-b8d55f3b],.VPSidebarItem.level-4.is-active>.item .link>.text[data-v-b8d55f3b],.VPSidebarItem.level-5.is-active>.item .link>.text[data-v-b8d55f3b]{color:var(--vp-c-brand-1)}.caret[data-v-b8d55f3b]{display:flex;justify-content:center;align-items:center;margin-right:-7px;width:32px;height:32px;color:var(--vp-c-text-3);cursor:pointer;transition:color .25s;flex-shrink:0}.item:hover .caret[data-v-b8d55f3b]{color:var(--vp-c-text-2)}.item:hover .caret[data-v-b8d55f3b]:hover{color:var(--vp-c-text-1)}.caret-icon[data-v-b8d55f3b]{font-size:18px;transform:rotate(90deg);transition:transform .25s}.VPSidebarItem.collapsed .caret-icon[data-v-b8d55f3b]{transform:rotate(0)}.VPSidebarItem.level-1 .items[data-v-b8d55f3b],.VPSidebarItem.level-2 .items[data-v-b8d55f3b],.VPSidebarItem.level-3 .items[data-v-b8d55f3b],.VPSidebarItem.level-4 .items[data-v-b8d55f3b],.VPSidebarItem.level-5 .items[data-v-b8d55f3b]{border-left:1px solid var(--vp-c-divider);padding-left:16px}.VPSidebarItem.collapsed .items[data-v-b8d55f3b]{display:none}.VPSidebar[data-v-575e6a36]{position:fixed;top:var(--vp-layout-top-height, 0px);bottom:0;left:0;z-index:var(--vp-z-index-sidebar);padding:32px 32px 96px;width:calc(100vw - 64px);max-width:320px;background-color:var(--vp-sidebar-bg-color);opacity:0;box-shadow:var(--vp-c-shadow-3);overflow-x:hidden;overflow-y:auto;transform:translate(-100%);transition:opacity .5s,transform .25s ease;overscroll-behavior:contain}.VPSidebar.open[data-v-575e6a36]{opacity:1;visibility:visible;transform:translate(0);transition:opacity .25s,transform .5s cubic-bezier(.19,1,.22,1)}.dark .VPSidebar[data-v-575e6a36]{box-shadow:var(--vp-shadow-1)}@media (min-width: 960px){.VPSidebar[data-v-575e6a36]{padding-top:var(--vp-nav-height);width:var(--vp-sidebar-width);max-width:100%;background-color:var(--vp-sidebar-bg-color);opacity:1;visibility:visible;box-shadow:none;transform:translate(0)}}@media (min-width: 1440px){.VPSidebar[data-v-575e6a36]{padding-left:max(32px,calc((100% - (var(--vp-layout-max-width) - 64px)) / 2));width:calc((100% - (var(--vp-layout-max-width) - 64px)) / 2 + var(--vp-sidebar-width) - 32px)}}@media (min-width: 960px){.curtain[data-v-575e6a36]{position:sticky;top:-64px;left:0;z-index:1;margin-top:calc(var(--vp-nav-height) * -1);margin-right:-32px;margin-left:-32px;height:var(--vp-nav-height);background-color:var(--vp-sidebar-bg-color)}}.nav[data-v-575e6a36]{outline:0}.group+.group[data-v-575e6a36]{border-top:1px solid var(--vp-c-divider);padding-top:10px}@media (min-width: 960px){.group[data-v-575e6a36]{padding-top:10px;width:calc(var(--vp-sidebar-width) - 64px)}}.VPSkipLink[data-v-0f60ec36]{top:8px;left:8px;padding:8px 16px;z-index:999;border-radius:8px;font-size:12px;font-weight:700;text-decoration:none;color:var(--vp-c-brand-1);box-shadow:var(--vp-shadow-3);background-color:var(--vp-c-bg)}.VPSkipLink[data-v-0f60ec36]:focus{height:auto;width:auto;clip:auto;clip-path:none}@media (min-width: 1280px){.VPSkipLink[data-v-0f60ec36]{top:14px;left:16px}}.Layout[data-v-5d98c3a5]{display:flex;flex-direction:column;min-height:100vh}.VPHomeSponsors[data-v-3d121b4a]{border-top:1px solid var(--vp-c-gutter);padding-top:88px!important}.VPHomeSponsors[data-v-3d121b4a]{margin:96px 0}@media (min-width: 768px){.VPHomeSponsors[data-v-3d121b4a]{margin:128px 0}}.VPHomeSponsors[data-v-3d121b4a]{padding:0 24px}@media (min-width: 768px){.VPHomeSponsors[data-v-3d121b4a]{padding:0 48px}}@media (min-width: 960px){.VPHomeSponsors[data-v-3d121b4a]{padding:0 64px}}.container[data-v-3d121b4a]{margin:0 auto;max-width:1152px}.love[data-v-3d121b4a]{margin:0 auto;width:fit-content;font-size:28px;color:var(--vp-c-text-3)}.icon[data-v-3d121b4a]{display:inline-block}.message[data-v-3d121b4a]{margin:0 auto;padding-top:10px;max-width:320px;text-align:center;line-height:24px;font-size:16px;font-weight:500;color:var(--vp-c-text-2)}.sponsors[data-v-3d121b4a]{padding-top:32px}.action[data-v-3d121b4a]{padding-top:40px;text-align:center}.VPTeamPage[data-v-7c57f839]{margin:96px 0}@media (min-width: 768px){.VPTeamPage[data-v-7c57f839]{margin:128px 0}}.VPHome .VPTeamPageTitle[data-v-7c57f839-s]{border-top:1px solid var(--vp-c-gutter);padding-top:88px!important}.VPTeamPageSection+.VPTeamPageSection[data-v-7c57f839-s],.VPTeamMembers+.VPTeamPageSection[data-v-7c57f839-s]{margin-top:64px}.VPTeamMembers+.VPTeamMembers[data-v-7c57f839-s]{margin-top:24px}@media (min-width: 768px){.VPTeamPageTitle+.VPTeamPageSection[data-v-7c57f839-s]{margin-top:16px}.VPTeamPageSection+.VPTeamPageSection[data-v-7c57f839-s],.VPTeamMembers+.VPTeamPageSection[data-v-7c57f839-s]{margin-top:96px}}.VPTeamMembers[data-v-7c57f839-s]{padding:0 24px}@media (min-width: 768px){.VPTeamMembers[data-v-7c57f839-s]{padding:0 48px}}@media (min-width: 960px){.VPTeamMembers[data-v-7c57f839-s]{padding:0 64px}}.VPTeamPageTitle[data-v-bf2cbdac]{padding:48px 32px;text-align:center}@media (min-width: 768px){.VPTeamPageTitle[data-v-bf2cbdac]{padding:64px 48px 48px}}@media (min-width: 960px){.VPTeamPageTitle[data-v-bf2cbdac]{padding:80px 64px 48px}}.title[data-v-bf2cbdac]{letter-spacing:0;line-height:44px;font-size:36px;font-weight:500}@media (min-width: 768px){.title[data-v-bf2cbdac]{letter-spacing:-.5px;line-height:56px;font-size:48px}}.lead[data-v-bf2cbdac]{margin:0 auto;max-width:512px;padding-top:12px;line-height:24px;font-size:16px;font-weight:500;color:var(--vp-c-text-2)}@media (min-width: 768px){.lead[data-v-bf2cbdac]{max-width:592px;letter-spacing:.15px;line-height:28px;font-size:20px}}.VPTeamPageSection[data-v-b1a88750]{padding:0 32px}@media (min-width: 768px){.VPTeamPageSection[data-v-b1a88750]{padding:0 48px}}@media (min-width: 960px){.VPTeamPageSection[data-v-b1a88750]{padding:0 64px}}.title[data-v-b1a88750]{position:relative;margin:0 auto;max-width:1152px;text-align:center;color:var(--vp-c-text-2)}.title-line[data-v-b1a88750]{position:absolute;top:16px;left:0;width:100%;height:1px;background-color:var(--vp-c-divider)}.title-text[data-v-b1a88750]{position:relative;display:inline-block;padding:0 24px;letter-spacing:0;line-height:32px;font-size:20px;font-weight:500;background-color:var(--vp-c-bg)}.lead[data-v-b1a88750]{margin:0 auto;max-width:480px;padding-top:12px;text-align:center;line-height:24px;font-size:16px;font-weight:500;color:var(--vp-c-text-2)}.members[data-v-b1a88750]{padding-top:40px}.VPTeamMembersItem[data-v-f3fa364a]{display:flex;flex-direction:column;gap:2px;border-radius:12px;width:100%;height:100%;overflow:hidden}.VPTeamMembersItem.small .profile[data-v-f3fa364a]{padding:32px}.VPTeamMembersItem.small .data[data-v-f3fa364a]{padding-top:20px}.VPTeamMembersItem.small .avatar[data-v-f3fa364a]{width:64px;height:64px}.VPTeamMembersItem.small .name[data-v-f3fa364a]{line-height:24px;font-size:16px}.VPTeamMembersItem.small .affiliation[data-v-f3fa364a]{padding-top:4px;line-height:20px;font-size:14px}.VPTeamMembersItem.small .desc[data-v-f3fa364a]{padding-top:12px;line-height:20px;font-size:14px}.VPTeamMembersItem.small .links[data-v-f3fa364a]{margin:0 -16px -20px;padding:10px 0 0}.VPTeamMembersItem.medium .profile[data-v-f3fa364a]{padding:48px 32px}.VPTeamMembersItem.medium .data[data-v-f3fa364a]{padding-top:24px;text-align:center}.VPTeamMembersItem.medium .avatar[data-v-f3fa364a]{width:96px;height:96px}.VPTeamMembersItem.medium .name[data-v-f3fa364a]{letter-spacing:.15px;line-height:28px;font-size:20px}.VPTeamMembersItem.medium .affiliation[data-v-f3fa364a]{padding-top:4px;font-size:16px}.VPTeamMembersItem.medium .desc[data-v-f3fa364a]{padding-top:16px;max-width:288px;font-size:16px}.VPTeamMembersItem.medium .links[data-v-f3fa364a]{margin:0 -16px -12px;padding:16px 12px 0}.profile[data-v-f3fa364a]{flex-grow:1;background-color:var(--vp-c-bg-soft)}.data[data-v-f3fa364a]{text-align:center}.avatar[data-v-f3fa364a]{position:relative;flex-shrink:0;margin:0 auto;border-radius:50%;box-shadow:var(--vp-shadow-3)}.avatar-img[data-v-f3fa364a]{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;object-fit:cover}.name[data-v-f3fa364a]{margin:0;font-weight:600}.affiliation[data-v-f3fa364a]{margin:0;font-weight:500;color:var(--vp-c-text-2)}.org.link[data-v-f3fa364a]{color:var(--vp-c-text-2);transition:color .25s}.org.link[data-v-f3fa364a]:hover{color:var(--vp-c-brand-1)}.desc[data-v-f3fa364a]{margin:0 auto}.desc[data-v-f3fa364a] a{font-weight:500;color:var(--vp-c-brand-1);text-decoration-style:dotted;transition:color .25s}.links[data-v-f3fa364a]{display:flex;justify-content:center;height:56px}.sp-link[data-v-f3fa364a]{display:flex;justify-content:center;align-items:center;text-align:center;padding:16px;font-size:14px;font-weight:500;color:var(--vp-c-sponsor);background-color:var(--vp-c-bg-soft);transition:color .25s,background-color .25s}.sp .sp-link.link[data-v-f3fa364a]:hover,.sp .sp-link.link[data-v-f3fa364a]:focus{outline:none;color:var(--vp-c-white);background-color:var(--vp-c-sponsor)}.sp-icon[data-v-f3fa364a]{margin-right:8px;font-size:16px}.VPTeamMembers.small .container[data-v-6cb0dbc4]{grid-template-columns:repeat(auto-fit,minmax(224px,1fr))}.VPTeamMembers.small.count-1 .container[data-v-6cb0dbc4]{max-width:276px}.VPTeamMembers.small.count-2 .container[data-v-6cb0dbc4]{max-width:576px}.VPTeamMembers.small.count-3 .container[data-v-6cb0dbc4]{max-width:876px}.VPTeamMembers.medium .container[data-v-6cb0dbc4]{grid-template-columns:repeat(auto-fit,minmax(256px,1fr))}@media (min-width: 375px){.VPTeamMembers.medium .container[data-v-6cb0dbc4]{grid-template-columns:repeat(auto-fit,minmax(288px,1fr))}}.VPTeamMembers.medium.count-1 .container[data-v-6cb0dbc4]{max-width:368px}.VPTeamMembers.medium.count-2 .container[data-v-6cb0dbc4]{max-width:760px}.container[data-v-6cb0dbc4]{display:grid;gap:24px;margin:0 auto;max-width:1152px}:root{--color-black: rgba(44, 62, 80, .9);--color-fuchsia-100: hsl(344, 97%, 95%);--color-fuchsia-200: hsl(344, 97%, 90%);--color-fuchsia-300: hsl(344, 97%, 85%);--color-fuchsia-400: hsl(344, 97%, 75%);--color-fuchsia-500: hsl(344, 97%, 64%);--color-fuchsia-600: hsl(344, 97%, 54%);--color-fuchsia-700: hsl(344, 97%, 44%);--color-fuchsia-800: hsl(344, 97%, 34%);--color-fuchsia-900: hsl(344, 97%, 20%);--color-petrol-100: hsl(157, 30%, 95%);--color-petrol-200: hsl(157, 30%, 90%);--color-petrol-300: hsl(157, 30%, 80%);--color-petrol-400: hsl(157, 30%, 70%);--color-petrol-500: hsl(157, 30%, 63%);--color-petrol-600: hsl(157, 30%, 53%);--color-petrol-700: hsl(157, 30%, 40%);--color-petrol-800: hsl(157, 30%, 30%);--color-petrol-900: hsl(157, 30%, 20%);--color-blue-100: hsla(209, 58%, 95%);--color-blue-200: hsla(209, 58%, 80%);--color-blue-300: hsla(209, 58%, 70%);--color-blue-400: hsla(209, 58%, 60%);--color-blue-500: hsla(209, 58%, 50%);--color-blue-600: hsla(209, 58%, 46%);--color-blue-700: hsla(209, 58%, 36%);--color-blue-800: hsla(209, 58%, 30%);--color-blue-900: hsl(209, 59%, 20%);--color-amber: hsl(37, 100%, 55%);--bg: #f3f2eb;--bg-hover: rgba(123, 154, 255, .07);--bg-even: hsla(226, 10%, 50%, .07);--fg: #111;--fg-light: rgba(0, 0, 0, .4);--link: rgba(50, 121, 187, .925);--link-high-contrast: rgba(50, 121, 187, 1);--panel: #fff;--border: 1px solid rgba(182, 182, 182, .424);--border-radius: 5px;--action: var(--link-high-contrast);--success: var(--color-petrol-600);--warning: hsl(37, 100%, 55%);--error: var(--color-fuchsia-500);--bold: 600;--thin: 400;--bold-letter-spacing: .1rem}[data-theme=dark]{--bg: hsl(330, 10%, 23%);--bg-hover: rgba(212, 222, 255, .07);--bg-even: hsla(225, 10%, 62%, .164);--fg: #fff;--fg-light: rgba(255, 255, 250, .5);--link: rgba(50, 121, 187, .925);--link-high-contrast: rgb(104, 176, 243);--panel: hsl(30, 1%, 38%);--border: 1px solid rgba(0, 0, 0, .3);--success: var(--color-petrol-400);--warning: #ffba4c;--error: var(--color-fuchsia-400);--bold: 500;--thin: 300;--bold-letter-spacing: .127rem}[data-theme=dark] .icon-tabler{stroke-width:1.6}:root{--vp-home-hero-name-color: transparent;--vp-home-hero-name-background: -webkit-linear-gradient(120deg, var(--color-blue-400) 30%, var(--color-fuchsia-500))}.VPLocalSearchBox[data-v-639d7ab9]{position:fixed;z-index:100;top:0;right:0;bottom:0;left:0;display:flex}.backdrop[data-v-639d7ab9]{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--vp-backdrop-bg-color);transition:opacity .5s}.shell[data-v-639d7ab9]{position:relative;padding:12px;margin:64px auto;display:flex;flex-direction:column;gap:16px;background:var(--vp-local-search-bg);width:min(100vw - 60px,900px);height:min-content;max-height:min(100vh - 128px,900px);border-radius:6px}@media (max-width: 767px){.shell[data-v-639d7ab9]{margin:0;width:100vw;height:100vh;max-height:none;border-radius:0}}.search-bar[data-v-639d7ab9]{border:1px solid var(--vp-c-divider);border-radius:4px;display:flex;align-items:center;padding:0 12px;cursor:text}@media (max-width: 767px){.search-bar[data-v-639d7ab9]{padding:0 8px}}.search-bar[data-v-639d7ab9]:focus-within{border-color:var(--vp-c-brand-1)}.local-search-icon[data-v-639d7ab9]{display:block;font-size:18px}.navigate-icon[data-v-639d7ab9]{display:block;font-size:14px}.search-icon[data-v-639d7ab9]{margin:8px}@media (max-width: 767px){.search-icon[data-v-639d7ab9]{display:none}}.search-input[data-v-639d7ab9]{padding:6px 12px;font-size:inherit;width:100%}@media (max-width: 767px){.search-input[data-v-639d7ab9]{padding:6px 4px}}.search-actions[data-v-639d7ab9]{display:flex;gap:4px}@media (any-pointer: coarse){.search-actions[data-v-639d7ab9]{gap:8px}}@media (min-width: 769px){.search-actions.before[data-v-639d7ab9]{display:none}}.search-actions button[data-v-639d7ab9]{padding:8px}.search-actions button[data-v-639d7ab9]:not([disabled]):hover,.toggle-layout-button.detailed-list[data-v-639d7ab9]{color:var(--vp-c-brand-1)}.search-actions button.clear-button[data-v-639d7ab9]:disabled{opacity:.37}.search-keyboard-shortcuts[data-v-639d7ab9]{font-size:.8rem;opacity:75%;display:flex;flex-wrap:wrap;gap:16px;line-height:14px}.search-keyboard-shortcuts span[data-v-639d7ab9]{display:flex;align-items:center;gap:4px}@media (max-width: 767px){.search-keyboard-shortcuts[data-v-639d7ab9]{display:none}}.search-keyboard-shortcuts kbd[data-v-639d7ab9]{background:#8080801a;border-radius:4px;padding:3px 6px;min-width:24px;display:inline-block;text-align:center;vertical-align:middle;border:1px solid rgba(128,128,128,.15);box-shadow:0 2px 2px #0000001a}.results[data-v-639d7ab9]{display:flex;flex-direction:column;gap:6px;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain}.result[data-v-639d7ab9]{display:flex;align-items:center;gap:8px;border-radius:4px;transition:none;line-height:1rem;border:solid 2px var(--vp-local-search-result-border);outline:none}.result>div[data-v-639d7ab9]{margin:12px;width:100%;overflow:hidden}@media (max-width: 767px){.result>div[data-v-639d7ab9]{margin:8px}}.titles[data-v-639d7ab9]{display:flex;flex-wrap:wrap;gap:4px;position:relative;z-index:1001;padding:2px 0}.title[data-v-639d7ab9]{display:flex;align-items:center;gap:4px}.title.main[data-v-639d7ab9]{font-weight:500}.title-icon[data-v-639d7ab9]{opacity:.5;font-weight:500;color:var(--vp-c-brand-1)}.title svg[data-v-639d7ab9]{opacity:.5}.result.selected[data-v-639d7ab9]{--vp-local-search-result-bg: var(--vp-local-search-result-selected-bg);border-color:var(--vp-local-search-result-selected-border)}.excerpt-wrapper[data-v-639d7ab9]{position:relative}.excerpt[data-v-639d7ab9]{opacity:75%;pointer-events:none;max-height:140px;overflow:hidden;position:relative;opacity:.5;margin-top:4px}.result.selected .excerpt[data-v-639d7ab9]{opacity:1}.excerpt[data-v-639d7ab9] *{font-size:.8rem!important;line-height:130%!important}.titles[data-v-639d7ab9] mark,.excerpt[data-v-639d7ab9] mark{background-color:var(--vp-local-search-highlight-bg);color:var(--vp-local-search-highlight-text);border-radius:2px;padding:0 2px}.excerpt[data-v-639d7ab9] .vp-code-group .tabs{display:none}.excerpt[data-v-639d7ab9] .vp-code-group div[class*=language-]{border-radius:8px!important}.excerpt-gradient-bottom[data-v-639d7ab9]{position:absolute;bottom:-1px;left:0;width:100%;height:8px;background:linear-gradient(transparent,var(--vp-local-search-result-bg));z-index:1000}.excerpt-gradient-top[data-v-639d7ab9]{position:absolute;top:-1px;left:0;width:100%;height:8px;background:linear-gradient(var(--vp-local-search-result-bg),transparent);z-index:1000}.result.selected .titles[data-v-639d7ab9],.result.selected .title-icon[data-v-639d7ab9]{color:var(--vp-c-brand-1)!important}.no-results[data-v-639d7ab9]{font-size:.9rem;text-align:center;padding:12px}svg[data-v-639d7ab9]{flex:none} diff --git a/assets/style.oEQWuhUi.css b/assets/style.oEQWuhUi.css deleted file mode 100644 index 8db19a0..0000000 --- a/assets/style.oEQWuhUi.css +++ /dev/null @@ -1 +0,0 @@ -@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/assets/inter-roman-cyrillic-ext.BBPuwvHQ.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/assets/inter-roman-cyrillic.C5lxZ8CY.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/assets/inter-roman-greek-ext.CqjqNYQ-.woff2) format("woff2");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/assets/inter-roman-greek.BBVDIX6e.woff2) format("woff2");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/assets/inter-roman-vietnamese.BjW4sHH5.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/assets/inter-roman-latin-ext.4ZJIpNVo.woff2) format("woff2");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/assets/inter-roman-latin.Di8DUHzh.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:italic;font-weight:100 900;font-display:swap;src:url(/assets/inter-italic-cyrillic-ext.r48I6akx.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:italic;font-weight:100 900;font-display:swap;src:url(/assets/inter-italic-cyrillic.By2_1cv3.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:italic;font-weight:100 900;font-display:swap;src:url(/assets/inter-italic-greek-ext.1u6EdAuj.woff2) format("woff2");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:italic;font-weight:100 900;font-display:swap;src:url(/assets/inter-italic-greek.DJ8dCoTZ.woff2) format("woff2");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:italic;font-weight:100 900;font-display:swap;src:url(/assets/inter-italic-vietnamese.BSbpV94h.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:italic;font-weight:100 900;font-display:swap;src:url(/assets/inter-italic-latin-ext.CN1xVJS-.woff2) format("woff2");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:italic;font-weight:100 900;font-display:swap;src:url(/assets/inter-italic-latin.C2AdPX0b.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Punctuation SC;font-weight:400;src:local("PingFang SC Regular"),local("Noto Sans CJK SC"),local("Microsoft YaHei");unicode-range:U+201C,U+201D,U+2018,U+2019,U+2E3A,U+2014,U+2013,U+2026,U+00B7,U+007E,U+002F}@font-face{font-family:Punctuation SC;font-weight:500;src:local("PingFang SC Medium"),local("Noto Sans CJK SC"),local("Microsoft YaHei");unicode-range:U+201C,U+201D,U+2018,U+2019,U+2E3A,U+2014,U+2013,U+2026,U+00B7,U+007E,U+002F}@font-face{font-family:Punctuation SC;font-weight:600;src:local("PingFang SC Semibold"),local("Noto Sans CJK SC Bold"),local("Microsoft YaHei Bold");unicode-range:U+201C,U+201D,U+2018,U+2019,U+2E3A,U+2014,U+2013,U+2026,U+00B7,U+007E,U+002F}@font-face{font-family:Punctuation SC;font-weight:700;src:local("PingFang SC Semibold"),local("Noto Sans CJK SC Bold"),local("Microsoft YaHei Bold");unicode-range:U+201C,U+201D,U+2018,U+2019,U+2E3A,U+2014,U+2013,U+2026,U+00B7,U+007E,U+002F}:root{--vp-c-white: #ffffff;--vp-c-black: #000000;--vp-c-neutral: var(--vp-c-black);--vp-c-neutral-inverse: var(--vp-c-white)}.dark{--vp-c-neutral: var(--vp-c-white);--vp-c-neutral-inverse: var(--vp-c-black)}:root{--vp-c-gray-1: #dddde3;--vp-c-gray-2: #e4e4e9;--vp-c-gray-3: #ebebef;--vp-c-gray-soft: rgba(142, 150, 170, .14);--vp-c-indigo-1: #3451b2;--vp-c-indigo-2: #3a5ccc;--vp-c-indigo-3: #5672cd;--vp-c-indigo-soft: rgba(100, 108, 255, .14);--vp-c-purple-1: #6f42c1;--vp-c-purple-2: #7e4cc9;--vp-c-purple-3: #8e5cd9;--vp-c-purple-soft: rgba(159, 122, 234, .14);--vp-c-green-1: #18794e;--vp-c-green-2: #299764;--vp-c-green-3: #30a46c;--vp-c-green-soft: rgba(16, 185, 129, .14);--vp-c-yellow-1: #915930;--vp-c-yellow-2: #946300;--vp-c-yellow-3: #9f6a00;--vp-c-yellow-soft: rgba(234, 179, 8, .14);--vp-c-red-1: #b8272c;--vp-c-red-2: #d5393e;--vp-c-red-3: #e0575b;--vp-c-red-soft: rgba(244, 63, 94, .14);--vp-c-sponsor: #db2777}.dark{--vp-c-gray-1: #515c67;--vp-c-gray-2: #414853;--vp-c-gray-3: #32363f;--vp-c-gray-soft: rgba(101, 117, 133, .16);--vp-c-indigo-1: #a8b1ff;--vp-c-indigo-2: #5c73e7;--vp-c-indigo-3: #3e63dd;--vp-c-indigo-soft: rgba(100, 108, 255, .16);--vp-c-purple-1: #c8abfa;--vp-c-purple-2: #a879e6;--vp-c-purple-3: #8e5cd9;--vp-c-purple-soft: rgba(159, 122, 234, .16);--vp-c-green-1: #3dd68c;--vp-c-green-2: #30a46c;--vp-c-green-3: #298459;--vp-c-green-soft: rgba(16, 185, 129, .16);--vp-c-yellow-1: #f9b44e;--vp-c-yellow-2: #da8b17;--vp-c-yellow-3: #a46a0a;--vp-c-yellow-soft: rgba(234, 179, 8, .16);--vp-c-red-1: #f66f81;--vp-c-red-2: #f14158;--vp-c-red-3: #b62a3c;--vp-c-red-soft: rgba(244, 63, 94, .16)}:root{--vp-c-bg: #ffffff;--vp-c-bg-alt: #f6f6f7;--vp-c-bg-elv: #ffffff;--vp-c-bg-soft: #f6f6f7}.dark{--vp-c-bg: #1b1b1f;--vp-c-bg-alt: #161618;--vp-c-bg-elv: #202127;--vp-c-bg-soft: #202127}:root{--vp-c-border: #c2c2c4;--vp-c-divider: #e2e2e3;--vp-c-gutter: #e2e2e3}.dark{--vp-c-border: #3c3f44;--vp-c-divider: #2e2e32;--vp-c-gutter: #000000}:root{--vp-c-text-1: rgba(60, 60, 67);--vp-c-text-2: rgba(60, 60, 67, .78);--vp-c-text-3: rgba(60, 60, 67, .56)}.dark{--vp-c-text-1: rgba(255, 255, 245, .86);--vp-c-text-2: rgba(235, 235, 245, .6);--vp-c-text-3: rgba(235, 235, 245, .38)}:root{--vp-c-default-1: var(--vp-c-gray-1);--vp-c-default-2: var(--vp-c-gray-2);--vp-c-default-3: var(--vp-c-gray-3);--vp-c-default-soft: var(--vp-c-gray-soft);--vp-c-brand-1: var(--vp-c-indigo-1);--vp-c-brand-2: var(--vp-c-indigo-2);--vp-c-brand-3: var(--vp-c-indigo-3);--vp-c-brand-soft: var(--vp-c-indigo-soft);--vp-c-brand: var(--vp-c-brand-1);--vp-c-tip-1: var(--vp-c-brand-1);--vp-c-tip-2: var(--vp-c-brand-2);--vp-c-tip-3: var(--vp-c-brand-3);--vp-c-tip-soft: var(--vp-c-brand-soft);--vp-c-note-1: var(--vp-c-brand-1);--vp-c-note-2: var(--vp-c-brand-2);--vp-c-note-3: var(--vp-c-brand-3);--vp-c-note-soft: var(--vp-c-brand-soft);--vp-c-success-1: var(--vp-c-green-1);--vp-c-success-2: var(--vp-c-green-2);--vp-c-success-3: var(--vp-c-green-3);--vp-c-success-soft: var(--vp-c-green-soft);--vp-c-important-1: var(--vp-c-purple-1);--vp-c-important-2: var(--vp-c-purple-2);--vp-c-important-3: var(--vp-c-purple-3);--vp-c-important-soft: var(--vp-c-purple-soft);--vp-c-warning-1: var(--vp-c-yellow-1);--vp-c-warning-2: var(--vp-c-yellow-2);--vp-c-warning-3: var(--vp-c-yellow-3);--vp-c-warning-soft: var(--vp-c-yellow-soft);--vp-c-danger-1: var(--vp-c-red-1);--vp-c-danger-2: var(--vp-c-red-2);--vp-c-danger-3: var(--vp-c-red-3);--vp-c-danger-soft: var(--vp-c-red-soft);--vp-c-caution-1: var(--vp-c-red-1);--vp-c-caution-2: var(--vp-c-red-2);--vp-c-caution-3: var(--vp-c-red-3);--vp-c-caution-soft: var(--vp-c-red-soft)}:root{--vp-font-family-base: "Inter", ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--vp-font-family-mono: ui-monospace, "Menlo", "Monaco", "Consolas", "Liberation Mono", "Courier New", monospace;font-optical-sizing:auto}:root:where(:lang(zh)){--vp-font-family-base: "Punctuation SC", "Inter", ui-sans-serif, system-ui, "PingFang SC", "Noto Sans CJK SC", "Noto Sans SC", "Heiti SC", "Microsoft YaHei", "DengXian", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"}:root{--vp-shadow-1: 0 1px 2px rgba(0, 0, 0, .04), 0 1px 2px rgba(0, 0, 0, .06);--vp-shadow-2: 0 3px 12px rgba(0, 0, 0, .07), 0 1px 4px rgba(0, 0, 0, .07);--vp-shadow-3: 0 12px 32px rgba(0, 0, 0, .1), 0 2px 6px rgba(0, 0, 0, .08);--vp-shadow-4: 0 14px 44px rgba(0, 0, 0, .12), 0 3px 9px rgba(0, 0, 0, .12);--vp-shadow-5: 0 18px 56px rgba(0, 0, 0, .16), 0 4px 12px rgba(0, 0, 0, .16)}:root{--vp-z-index-footer: 10;--vp-z-index-local-nav: 20;--vp-z-index-nav: 30;--vp-z-index-layout-top: 40;--vp-z-index-backdrop: 50;--vp-z-index-sidebar: 60}@media (min-width: 960px){:root{--vp-z-index-sidebar: 25}}:root{--vp-layout-max-width: 1440px}:root{--vp-header-anchor-symbol: "#"}:root{--vp-code-line-height: 1.7;--vp-code-font-size: .875em;--vp-code-color: var(--vp-c-brand-1);--vp-code-link-color: var(--vp-c-brand-1);--vp-code-link-hover-color: var(--vp-c-brand-2);--vp-code-bg: var(--vp-c-default-soft);--vp-code-block-color: var(--vp-c-text-2);--vp-code-block-bg: var(--vp-c-bg-alt);--vp-code-block-divider-color: var(--vp-c-gutter);--vp-code-lang-color: var(--vp-c-text-3);--vp-code-line-highlight-color: var(--vp-c-default-soft);--vp-code-line-number-color: var(--vp-c-text-3);--vp-code-line-diff-add-color: var(--vp-c-success-soft);--vp-code-line-diff-add-symbol-color: var(--vp-c-success-1);--vp-code-line-diff-remove-color: var(--vp-c-danger-soft);--vp-code-line-diff-remove-symbol-color: var(--vp-c-danger-1);--vp-code-line-warning-color: var(--vp-c-warning-soft);--vp-code-line-error-color: var(--vp-c-danger-soft);--vp-code-copy-code-border-color: var(--vp-c-divider);--vp-code-copy-code-bg: var(--vp-c-bg-soft);--vp-code-copy-code-hover-border-color: var(--vp-c-divider);--vp-code-copy-code-hover-bg: var(--vp-c-bg);--vp-code-copy-code-active-text: var(--vp-c-text-2);--vp-code-copy-copied-text-content: "Copied";--vp-code-tab-divider: var(--vp-code-block-divider-color);--vp-code-tab-text-color: var(--vp-c-text-2);--vp-code-tab-bg: var(--vp-code-block-bg);--vp-code-tab-hover-text-color: var(--vp-c-text-1);--vp-code-tab-active-text-color: var(--vp-c-text-1);--vp-code-tab-active-bar-color: var(--vp-c-brand-1)}:root{--vp-button-brand-border: transparent;--vp-button-brand-text: var(--vp-c-white);--vp-button-brand-bg: var(--vp-c-brand-3);--vp-button-brand-hover-border: transparent;--vp-button-brand-hover-text: var(--vp-c-white);--vp-button-brand-hover-bg: var(--vp-c-brand-2);--vp-button-brand-active-border: transparent;--vp-button-brand-active-text: var(--vp-c-white);--vp-button-brand-active-bg: var(--vp-c-brand-1);--vp-button-alt-border: transparent;--vp-button-alt-text: var(--vp-c-text-1);--vp-button-alt-bg: var(--vp-c-default-3);--vp-button-alt-hover-border: transparent;--vp-button-alt-hover-text: var(--vp-c-text-1);--vp-button-alt-hover-bg: var(--vp-c-default-2);--vp-button-alt-active-border: transparent;--vp-button-alt-active-text: var(--vp-c-text-1);--vp-button-alt-active-bg: var(--vp-c-default-1);--vp-button-sponsor-border: var(--vp-c-text-2);--vp-button-sponsor-text: var(--vp-c-text-2);--vp-button-sponsor-bg: transparent;--vp-button-sponsor-hover-border: var(--vp-c-sponsor);--vp-button-sponsor-hover-text: var(--vp-c-sponsor);--vp-button-sponsor-hover-bg: transparent;--vp-button-sponsor-active-border: var(--vp-c-sponsor);--vp-button-sponsor-active-text: var(--vp-c-sponsor);--vp-button-sponsor-active-bg: transparent}:root{--vp-custom-block-font-size: 14px;--vp-custom-block-code-font-size: 13px;--vp-custom-block-info-border: transparent;--vp-custom-block-info-text: var(--vp-c-text-1);--vp-custom-block-info-bg: var(--vp-c-default-soft);--vp-custom-block-info-code-bg: var(--vp-c-default-soft);--vp-custom-block-note-border: transparent;--vp-custom-block-note-text: var(--vp-c-text-1);--vp-custom-block-note-bg: var(--vp-c-default-soft);--vp-custom-block-note-code-bg: var(--vp-c-default-soft);--vp-custom-block-tip-border: transparent;--vp-custom-block-tip-text: var(--vp-c-text-1);--vp-custom-block-tip-bg: var(--vp-c-tip-soft);--vp-custom-block-tip-code-bg: var(--vp-c-tip-soft);--vp-custom-block-important-border: transparent;--vp-custom-block-important-text: var(--vp-c-text-1);--vp-custom-block-important-bg: var(--vp-c-important-soft);--vp-custom-block-important-code-bg: var(--vp-c-important-soft);--vp-custom-block-warning-border: transparent;--vp-custom-block-warning-text: var(--vp-c-text-1);--vp-custom-block-warning-bg: var(--vp-c-warning-soft);--vp-custom-block-warning-code-bg: var(--vp-c-warning-soft);--vp-custom-block-danger-border: transparent;--vp-custom-block-danger-text: var(--vp-c-text-1);--vp-custom-block-danger-bg: var(--vp-c-danger-soft);--vp-custom-block-danger-code-bg: var(--vp-c-danger-soft);--vp-custom-block-caution-border: transparent;--vp-custom-block-caution-text: var(--vp-c-text-1);--vp-custom-block-caution-bg: var(--vp-c-caution-soft);--vp-custom-block-caution-code-bg: var(--vp-c-caution-soft);--vp-custom-block-details-border: var(--vp-custom-block-info-border);--vp-custom-block-details-text: var(--vp-custom-block-info-text);--vp-custom-block-details-bg: var(--vp-custom-block-info-bg);--vp-custom-block-details-code-bg: var(--vp-custom-block-info-code-bg)}:root{--vp-input-border-color: var(--vp-c-border);--vp-input-bg-color: var(--vp-c-bg-alt);--vp-input-switch-bg-color: var(--vp-c-default-soft)}:root{--vp-nav-height: 64px;--vp-nav-bg-color: var(--vp-c-bg);--vp-nav-screen-bg-color: var(--vp-c-bg);--vp-nav-logo-height: 24px}.hide-nav{--vp-nav-height: 0px}.hide-nav .VPSidebar{--vp-nav-height: 22px}:root{--vp-local-nav-bg-color: var(--vp-c-bg)}:root{--vp-sidebar-width: 272px;--vp-sidebar-bg-color: var(--vp-c-bg-alt)}:root{--vp-backdrop-bg-color: rgba(0, 0, 0, .6)}:root{--vp-home-hero-name-color: var(--vp-c-brand-1);--vp-home-hero-name-background: transparent;--vp-home-hero-image-background-image: none;--vp-home-hero-image-filter: none}:root{--vp-badge-info-border: transparent;--vp-badge-info-text: var(--vp-c-text-2);--vp-badge-info-bg: var(--vp-c-default-soft);--vp-badge-tip-border: transparent;--vp-badge-tip-text: var(--vp-c-tip-1);--vp-badge-tip-bg: var(--vp-c-tip-soft);--vp-badge-warning-border: transparent;--vp-badge-warning-text: var(--vp-c-warning-1);--vp-badge-warning-bg: var(--vp-c-warning-soft);--vp-badge-danger-border: transparent;--vp-badge-danger-text: var(--vp-c-danger-1);--vp-badge-danger-bg: var(--vp-c-danger-soft)}:root{--vp-carbon-ads-text-color: var(--vp-c-text-1);--vp-carbon-ads-poweredby-color: var(--vp-c-text-2);--vp-carbon-ads-bg-color: var(--vp-c-bg-soft);--vp-carbon-ads-hover-text-color: var(--vp-c-brand-1);--vp-carbon-ads-hover-poweredby-color: var(--vp-c-text-1)}:root{--vp-local-search-bg: var(--vp-c-bg);--vp-local-search-result-bg: var(--vp-c-bg);--vp-local-search-result-border: var(--vp-c-divider);--vp-local-search-result-selected-bg: var(--vp-c-bg);--vp-local-search-result-selected-border: var(--vp-c-brand-1);--vp-local-search-highlight-bg: var(--vp-c-brand-1);--vp-local-search-highlight-text: var(--vp-c-neutral-inverse)}@media (prefers-reduced-motion: reduce){*,:before,:after{animation-delay:-1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important;background-attachment:initial!important;scroll-behavior:auto!important;transition-duration:0s!important;transition-delay:0s!important}}*,:before,:after{box-sizing:border-box}html{line-height:1.4;font-size:16px;-webkit-text-size-adjust:100%}html.dark{color-scheme:dark}body{margin:0;width:100%;min-width:320px;min-height:100vh;line-height:24px;font-family:var(--vp-font-family-base);font-size:16px;font-weight:400;color:var(--vp-c-text-1);background-color:var(--vp-c-bg);font-synthesis:style;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}main{display:block}h1,h2,h3,h4,h5,h6{margin:0;line-height:24px;font-size:16px;font-weight:400}p{margin:0}strong,b{font-weight:600}a,area,button,[role=button],input,label,select,summary,textarea{touch-action:manipulation}a{color:inherit;text-decoration:inherit}ol,ul{list-style:none;margin:0;padding:0}blockquote{margin:0}pre,code,kbd,samp{font-family:var(--vp-font-family-mono)}img,svg,video,canvas,audio,iframe,embed,object{display:block}figure{margin:0}img,video{max-width:100%;height:auto}button,input,optgroup,select,textarea{border:0;padding:0;line-height:inherit;color:inherit}button{padding:0;font-family:inherit;background-color:transparent;background-image:none}button:enabled,[role=button]:enabled{cursor:pointer}button:focus,button:focus-visible{outline:1px dotted;outline:4px auto -webkit-focus-ring-color}button:focus:not(:focus-visible){outline:none!important}input:focus,textarea:focus,select:focus{outline:none}table{border-collapse:collapse}input{background-color:transparent}input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:var(--vp-c-text-3)}input::-ms-input-placeholder,textarea::-ms-input-placeholder{color:var(--vp-c-text-3)}input::placeholder,textarea::placeholder{color:var(--vp-c-text-3)}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}textarea{resize:vertical}select{-webkit-appearance:none}fieldset{margin:0;padding:0}h1,h2,h3,h4,h5,h6,li,p{overflow-wrap:break-word}vite-error-overlay{z-index:9999}mjx-container{overflow-x:auto}mjx-container>svg{display:inline-block;margin:auto}[class^=vpi-],[class*=" vpi-"],.vp-icon{width:1em;height:1em}[class^=vpi-].bg,[class*=" vpi-"].bg,.vp-icon.bg{background-size:100% 100%;background-color:transparent}[class^=vpi-]:not(.bg),[class*=" vpi-"]:not(.bg),.vp-icon:not(.bg){-webkit-mask:var(--icon) no-repeat;mask:var(--icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit}.vpi-align-left{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M21 6H3M15 12H3M17 18H3'/%3E%3C/svg%3E")}.vpi-arrow-right,.vpi-arrow-down,.vpi-arrow-left,.vpi-arrow-up{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M5 12h14M12 5l7 7-7 7'/%3E%3C/svg%3E")}.vpi-chevron-right,.vpi-chevron-down,.vpi-chevron-left,.vpi-chevron-up{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='m9 18 6-6-6-6'/%3E%3C/svg%3E")}.vpi-chevron-down,.vpi-arrow-down{transform:rotate(90deg)}.vpi-chevron-left,.vpi-arrow-left{transform:rotate(180deg)}.vpi-chevron-up,.vpi-arrow-up{transform:rotate(-90deg)}.vpi-square-pen{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7'/%3E%3Cpath d='M18.375 2.625a2.121 2.121 0 1 1 3 3L12 15l-4 1 1-4Z'/%3E%3C/svg%3E")}.vpi-plus{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M5 12h14M12 5v14'/%3E%3C/svg%3E")}.vpi-sun{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='4'/%3E%3Cpath d='M12 2v2M12 20v2M4.93 4.93l1.41 1.41M17.66 17.66l1.41 1.41M2 12h2M20 12h2M6.34 17.66l-1.41 1.41M19.07 4.93l-1.41 1.41'/%3E%3C/svg%3E")}.vpi-moon{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z'/%3E%3C/svg%3E")}.vpi-more-horizontal{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='1'/%3E%3Ccircle cx='19' cy='12' r='1'/%3E%3Ccircle cx='5' cy='12' r='1'/%3E%3C/svg%3E")}.vpi-languages{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='m5 8 6 6M4 14l6-6 2-3M2 5h12M7 2h1M22 22l-5-10-5 10M14 18h6'/%3E%3C/svg%3E")}.vpi-heart{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M19 14c1.49-1.46 3-3.21 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.76 0-3 .5-4.5 2-1.5-1.5-2.74-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4.05 3 5.5l7 7Z'/%3E%3C/svg%3E")}.vpi-search{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cpath d='m21 21-4.3-4.3'/%3E%3C/svg%3E")}.vpi-layout-list{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Crect width='7' height='7' x='3' y='3' rx='1'/%3E%3Crect width='7' height='7' x='3' y='14' rx='1'/%3E%3Cpath d='M14 4h7M14 9h7M14 15h7M14 20h7'/%3E%3C/svg%3E")}.vpi-delete{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M20 5H9l-7 7 7 7h11a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2ZM18 9l-6 6M12 9l6 6'/%3E%3C/svg%3E")}.vpi-corner-down-left{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='m9 10-5 5 5 5'/%3E%3Cpath d='M20 4v7a4 4 0 0 1-4 4H4'/%3E%3C/svg%3E")}:root{--vp-icon-copy: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='rgba(128,128,128,1)' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Crect width='8' height='4' x='8' y='2' rx='1' ry='1'/%3E%3Cpath d='M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2'/%3E%3C/svg%3E");--vp-icon-copied: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='rgba(128,128,128,1)' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Crect width='8' height='4' x='8' y='2' rx='1' ry='1'/%3E%3Cpath d='M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2'/%3E%3Cpath d='m9 14 2 2 4-4'/%3E%3C/svg%3E")}.vpi-social-discord{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20.317 4.37a19.791 19.791 0 0 0-4.885-1.515.074.074 0 0 0-.079.037c-.21.375-.444.864-.608 1.25a18.27 18.27 0 0 0-5.487 0 12.64 12.64 0 0 0-.617-1.25.077.077 0 0 0-.079-.037A19.736 19.736 0 0 0 3.677 4.37a.07.07 0 0 0-.032.027C.533 9.046-.32 13.58.099 18.057a.082.082 0 0 0 .031.057 19.9 19.9 0 0 0 5.993 3.03.078.078 0 0 0 .084-.028c.462-.63.874-1.295 1.226-1.994a.076.076 0 0 0-.041-.106 13.107 13.107 0 0 1-1.872-.892.077.077 0 0 1-.008-.128 10.2 10.2 0 0 0 .372-.292.074.074 0 0 1 .077-.01c3.928 1.793 8.18 1.793 12.062 0a.074.074 0 0 1 .078.01c.12.098.246.198.373.292a.077.077 0 0 1-.006.127 12.299 12.299 0 0 1-1.873.892.077.077 0 0 0-.041.107c.36.698.772 1.362 1.225 1.993a.076.076 0 0 0 .084.028 19.839 19.839 0 0 0 6.002-3.03.077.077 0 0 0 .032-.054c.5-5.177-.838-9.674-3.549-13.66a.061.061 0 0 0-.031-.03zM8.02 15.33c-1.183 0-2.157-1.085-2.157-2.419 0-1.333.956-2.419 2.157-2.419 1.21 0 2.176 1.096 2.157 2.42 0 1.333-.956 2.418-2.157 2.418zm7.975 0c-1.183 0-2.157-1.085-2.157-2.419 0-1.333.955-2.419 2.157-2.419 1.21 0 2.176 1.096 2.157 2.42 0 1.333-.946 2.418-2.157 2.418Z'/%3E%3C/svg%3E")}.vpi-social-facebook{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9.101 23.691v-7.98H6.627v-3.667h2.474v-1.58c0-4.085 1.848-5.978 5.858-5.978.401 0 .955.042 1.468.103a8.68 8.68 0 0 1 1.141.195v3.325a8.623 8.623 0 0 0-.653-.036 26.805 26.805 0 0 0-.733-.009c-.707 0-1.259.096-1.675.309a1.686 1.686 0 0 0-.679.622c-.258.42-.374.995-.374 1.752v1.297h3.919l-.386 2.103-.287 1.564h-3.246v8.245C19.396 23.238 24 18.179 24 12.044c0-6.627-5.373-12-12-12s-12 5.373-12 12c0 5.628 3.874 10.35 9.101 11.647Z'/%3E%3C/svg%3E")}.vpi-social-github{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12'/%3E%3C/svg%3E")}.vpi-social-instagram{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7.03.084c-1.277.06-2.149.264-2.91.563a5.874 5.874 0 0 0-2.124 1.388 5.878 5.878 0 0 0-1.38 2.127C.321 4.926.12 5.8.064 7.076.008 8.354-.005 8.764.001 12.023c.007 3.259.021 3.667.083 4.947.061 1.277.264 2.149.563 2.911.308.789.72 1.457 1.388 2.123a5.872 5.872 0 0 0 2.129 1.38c.763.295 1.636.496 2.913.552 1.278.056 1.689.069 4.947.063 3.257-.007 3.668-.021 4.947-.082 1.28-.06 2.147-.265 2.91-.563a5.881 5.881 0 0 0 2.123-1.388 5.881 5.881 0 0 0 1.38-2.129c.295-.763.496-1.636.551-2.912.056-1.28.07-1.69.063-4.948-.006-3.258-.02-3.667-.081-4.947-.06-1.28-.264-2.148-.564-2.911a5.892 5.892 0 0 0-1.387-2.123 5.857 5.857 0 0 0-2.128-1.38C19.074.322 18.202.12 16.924.066 15.647.009 15.236-.006 11.977 0 8.718.008 8.31.021 7.03.084m.14 21.693c-1.17-.05-1.805-.245-2.228-.408a3.736 3.736 0 0 1-1.382-.895 3.695 3.695 0 0 1-.9-1.378c-.165-.423-.363-1.058-.417-2.228-.06-1.264-.072-1.644-.08-4.848-.006-3.204.006-3.583.061-4.848.05-1.169.246-1.805.408-2.228.216-.561.477-.96.895-1.382a3.705 3.705 0 0 1 1.379-.9c.423-.165 1.057-.361 2.227-.417 1.265-.06 1.644-.072 4.848-.08 3.203-.006 3.583.006 4.85.062 1.168.05 1.804.244 2.227.408.56.216.96.475 1.382.895.421.42.681.817.9 1.378.165.422.362 1.056.417 2.227.06 1.265.074 1.645.08 4.848.005 3.203-.006 3.583-.061 4.848-.051 1.17-.245 1.805-.408 2.23-.216.56-.477.96-.896 1.38a3.705 3.705 0 0 1-1.378.9c-.422.165-1.058.362-2.226.418-1.266.06-1.645.072-4.85.079-3.204.007-3.582-.006-4.848-.06m9.783-16.192a1.44 1.44 0 1 0 1.437-1.442 1.44 1.44 0 0 0-1.437 1.442M5.839 12.012a6.161 6.161 0 1 0 12.323-.024 6.162 6.162 0 0 0-12.323.024M8 12.008A4 4 0 1 1 12.008 16 4 4 0 0 1 8 12.008'/%3E%3C/svg%3E")}.vpi-social-linkedin{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433a2.062 2.062 0 0 1-2.063-2.065 2.064 2.064 0 1 1 2.063 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z'/%3E%3C/svg%3E")}.vpi-social-mastodon{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M23.268 5.313c-.35-2.578-2.617-4.61-5.304-5.004C17.51.242 15.792 0 11.813 0h-.03c-3.98 0-4.835.242-5.288.309C3.882.692 1.496 2.518.917 5.127.64 6.412.61 7.837.661 9.143c.074 1.874.088 3.745.26 5.611.118 1.24.325 2.47.62 3.68.55 2.237 2.777 4.098 4.96 4.857 2.336.792 4.849.923 7.256.38.265-.061.527-.132.786-.213.585-.184 1.27-.39 1.774-.753a.057.057 0 0 0 .023-.043v-1.809a.052.052 0 0 0-.02-.041.053.053 0 0 0-.046-.01 20.282 20.282 0 0 1-4.709.545c-2.73 0-3.463-1.284-3.674-1.818a5.593 5.593 0 0 1-.319-1.433.053.053 0 0 1 .066-.054c1.517.363 3.072.546 4.632.546.376 0 .75 0 1.125-.01 1.57-.044 3.224-.124 4.768-.422.038-.008.077-.015.11-.024 2.435-.464 4.753-1.92 4.989-5.604.008-.145.03-1.52.03-1.67.002-.512.167-3.63-.024-5.545zm-3.748 9.195h-2.561V8.29c0-1.309-.55-1.976-1.67-1.976-1.23 0-1.846.79-1.846 2.35v3.403h-2.546V8.663c0-1.56-.617-2.35-1.848-2.35-1.112 0-1.668.668-1.67 1.977v6.218H4.822V8.102c0-1.31.337-2.35 1.011-3.12.696-.77 1.608-1.164 2.74-1.164 1.311 0 2.302.5 2.962 1.498l.638 1.06.638-1.06c.66-.999 1.65-1.498 2.96-1.498 1.13 0 2.043.395 2.74 1.164.675.77 1.012 1.81 1.012 3.12z'/%3E%3C/svg%3E")}.vpi-social-npm{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M1.763 0C.786 0 0 .786 0 1.763v20.474C0 23.214.786 24 1.763 24h20.474c.977 0 1.763-.786 1.763-1.763V1.763C24 .786 23.214 0 22.237 0zM5.13 5.323l13.837.019-.009 13.836h-3.464l.01-10.382h-3.456L12.04 19.17H5.113z'/%3E%3C/svg%3E")}.vpi-social-slack{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5.042 15.165a2.528 2.528 0 0 1-2.52 2.523A2.528 2.528 0 0 1 0 15.165a2.527 2.527 0 0 1 2.522-2.52h2.52v2.52zm1.271 0a2.527 2.527 0 0 1 2.521-2.52 2.527 2.527 0 0 1 2.521 2.52v6.313A2.528 2.528 0 0 1 8.834 24a2.528 2.528 0 0 1-2.521-2.522v-6.313zM8.834 5.042a2.528 2.528 0 0 1-2.521-2.52A2.528 2.528 0 0 1 8.834 0a2.528 2.528 0 0 1 2.521 2.522v2.52H8.834zm0 1.271a2.528 2.528 0 0 1 2.521 2.521 2.528 2.528 0 0 1-2.521 2.521H2.522A2.528 2.528 0 0 1 0 8.834a2.528 2.528 0 0 1 2.522-2.521h6.312zm10.122 2.521a2.528 2.528 0 0 1 2.522-2.521A2.528 2.528 0 0 1 24 8.834a2.528 2.528 0 0 1-2.522 2.521h-2.522V8.834zm-1.268 0a2.528 2.528 0 0 1-2.523 2.521 2.527 2.527 0 0 1-2.52-2.521V2.522A2.527 2.527 0 0 1 15.165 0a2.528 2.528 0 0 1 2.523 2.522v6.312zm-2.523 10.122a2.528 2.528 0 0 1 2.523 2.522A2.528 2.528 0 0 1 15.165 24a2.527 2.527 0 0 1-2.52-2.522v-2.522h2.52zm0-1.268a2.527 2.527 0 0 1-2.52-2.523 2.526 2.526 0 0 1 2.52-2.52h6.313A2.527 2.527 0 0 1 24 15.165a2.528 2.528 0 0 1-2.522 2.523h-6.313z'/%3E%3C/svg%3E")}.vpi-social-twitter,.vpi-social-x{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M18.901 1.153h3.68l-8.04 9.19L24 22.846h-7.406l-5.8-7.584-6.638 7.584H.474l8.6-9.83L0 1.154h7.594l5.243 6.932ZM17.61 20.644h2.039L6.486 3.24H4.298Z'/%3E%3C/svg%3E")}.vpi-social-youtube{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M23.498 6.186a3.016 3.016 0 0 0-2.122-2.136C19.505 3.545 12 3.545 12 3.545s-7.505 0-9.377.505A3.017 3.017 0 0 0 .502 6.186C0 8.07 0 12 0 12s0 3.93.502 5.814a3.016 3.016 0 0 0 2.122 2.136c1.871.505 9.376.505 9.376.505s7.505 0 9.377-.505a3.015 3.015 0 0 0 2.122-2.136C24 15.93 24 12 24 12s0-3.93-.502-5.814zM9.545 15.568V8.432L15.818 12l-6.273 3.568z'/%3E%3C/svg%3E")}.visually-hidden{position:absolute;width:1px;height:1px;white-space:nowrap;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden}.custom-block{border:1px solid transparent;border-radius:8px;padding:16px 16px 8px;line-height:24px;font-size:var(--vp-custom-block-font-size);color:var(--vp-c-text-2)}.custom-block.info{border-color:var(--vp-custom-block-info-border);color:var(--vp-custom-block-info-text);background-color:var(--vp-custom-block-info-bg)}.custom-block.info a,.custom-block.info code{color:var(--vp-c-brand-1)}.custom-block.info a:hover,.custom-block.info a:hover>code{color:var(--vp-c-brand-2)}.custom-block.info code{background-color:var(--vp-custom-block-info-code-bg)}.custom-block.note{border-color:var(--vp-custom-block-note-border);color:var(--vp-custom-block-note-text);background-color:var(--vp-custom-block-note-bg)}.custom-block.note a,.custom-block.note code{color:var(--vp-c-brand-1)}.custom-block.note a:hover,.custom-block.note a:hover>code{color:var(--vp-c-brand-2)}.custom-block.note code{background-color:var(--vp-custom-block-note-code-bg)}.custom-block.tip{border-color:var(--vp-custom-block-tip-border);color:var(--vp-custom-block-tip-text);background-color:var(--vp-custom-block-tip-bg)}.custom-block.tip a,.custom-block.tip code{color:var(--vp-c-tip-1)}.custom-block.tip a:hover,.custom-block.tip a:hover>code{color:var(--vp-c-tip-2)}.custom-block.tip code{background-color:var(--vp-custom-block-tip-code-bg)}.custom-block.important{border-color:var(--vp-custom-block-important-border);color:var(--vp-custom-block-important-text);background-color:var(--vp-custom-block-important-bg)}.custom-block.important a,.custom-block.important code{color:var(--vp-c-important-1)}.custom-block.important a:hover,.custom-block.important a:hover>code{color:var(--vp-c-important-2)}.custom-block.important code{background-color:var(--vp-custom-block-important-code-bg)}.custom-block.warning{border-color:var(--vp-custom-block-warning-border);color:var(--vp-custom-block-warning-text);background-color:var(--vp-custom-block-warning-bg)}.custom-block.warning a,.custom-block.warning code{color:var(--vp-c-warning-1)}.custom-block.warning a:hover,.custom-block.warning a:hover>code{color:var(--vp-c-warning-2)}.custom-block.warning code{background-color:var(--vp-custom-block-warning-code-bg)}.custom-block.danger{border-color:var(--vp-custom-block-danger-border);color:var(--vp-custom-block-danger-text);background-color:var(--vp-custom-block-danger-bg)}.custom-block.danger a,.custom-block.danger code{color:var(--vp-c-danger-1)}.custom-block.danger a:hover,.custom-block.danger a:hover>code{color:var(--vp-c-danger-2)}.custom-block.danger code{background-color:var(--vp-custom-block-danger-code-bg)}.custom-block.caution{border-color:var(--vp-custom-block-caution-border);color:var(--vp-custom-block-caution-text);background-color:var(--vp-custom-block-caution-bg)}.custom-block.caution a,.custom-block.caution code{color:var(--vp-c-caution-1)}.custom-block.caution a:hover,.custom-block.caution a:hover>code{color:var(--vp-c-caution-2)}.custom-block.caution code{background-color:var(--vp-custom-block-caution-code-bg)}.custom-block.details{border-color:var(--vp-custom-block-details-border);color:var(--vp-custom-block-details-text);background-color:var(--vp-custom-block-details-bg)}.custom-block.details a{color:var(--vp-c-brand-1)}.custom-block.details a:hover,.custom-block.details a:hover>code{color:var(--vp-c-brand-2)}.custom-block.details code{background-color:var(--vp-custom-block-details-code-bg)}.custom-block-title{font-weight:600}.custom-block p+p{margin:8px 0}.custom-block.details summary{margin:0 0 8px;font-weight:700;cursor:pointer;-webkit-user-select:none;user-select:none}.custom-block.details summary+p{margin:8px 0}.custom-block a{color:inherit;font-weight:600;text-decoration:underline;text-underline-offset:2px;transition:opacity .25s}.custom-block a:hover{opacity:.75}.custom-block code{font-size:var(--vp-custom-block-code-font-size)}.custom-block.custom-block th,.custom-block.custom-block blockquote>p{font-size:var(--vp-custom-block-font-size);color:inherit}.dark .vp-code span{color:var(--shiki-dark, inherit)}html:not(.dark) .vp-code span{color:var(--shiki-light, inherit)}.vp-code-group{margin-top:16px}.vp-code-group .tabs{position:relative;display:flex;margin-right:-24px;margin-left:-24px;padding:0 12px;background-color:var(--vp-code-tab-bg);overflow-x:auto;overflow-y:hidden;box-shadow:inset 0 -1px var(--vp-code-tab-divider)}@media (min-width: 640px){.vp-code-group .tabs{margin-right:0;margin-left:0;border-radius:8px 8px 0 0}}.vp-code-group .tabs input{position:fixed;opacity:0;pointer-events:none}.vp-code-group .tabs label{position:relative;display:inline-block;border-bottom:1px solid transparent;padding:0 12px;line-height:48px;font-size:14px;font-weight:500;color:var(--vp-code-tab-text-color);white-space:nowrap;cursor:pointer;transition:color .25s}.vp-code-group .tabs label:after{position:absolute;right:8px;bottom:-1px;left:8px;z-index:1;height:2px;border-radius:2px;content:"";background-color:transparent;transition:background-color .25s}.vp-code-group label:hover{color:var(--vp-code-tab-hover-text-color)}.vp-code-group input:checked+label{color:var(--vp-code-tab-active-text-color)}.vp-code-group input:checked+label:after{background-color:var(--vp-code-tab-active-bar-color)}.vp-code-group div[class*=language-],.vp-block{display:none;margin-top:0!important;border-top-left-radius:0!important;border-top-right-radius:0!important}.vp-code-group div[class*=language-].active,.vp-block.active{display:block}.vp-block{padding:20px 24px}.vp-doc h1,.vp-doc h2,.vp-doc h3,.vp-doc h4,.vp-doc h5,.vp-doc h6{position:relative;font-weight:600;outline:none}.vp-doc h1{letter-spacing:-.02em;line-height:40px;font-size:28px}.vp-doc h2{margin:48px 0 16px;border-top:1px solid var(--vp-c-divider);padding-top:24px;letter-spacing:-.02em;line-height:32px;font-size:24px}.vp-doc h3{margin:32px 0 0;letter-spacing:-.01em;line-height:28px;font-size:20px}.vp-doc .header-anchor{position:absolute;top:0;left:0;margin-left:-.87em;font-weight:500;-webkit-user-select:none;user-select:none;opacity:0;text-decoration:none;transition:color .25s,opacity .25s}.vp-doc .header-anchor:before{content:var(--vp-header-anchor-symbol)}.vp-doc h1:hover .header-anchor,.vp-doc h1 .header-anchor:focus,.vp-doc h2:hover .header-anchor,.vp-doc h2 .header-anchor:focus,.vp-doc h3:hover .header-anchor,.vp-doc h3 .header-anchor:focus,.vp-doc h4:hover .header-anchor,.vp-doc h4 .header-anchor:focus,.vp-doc h5:hover .header-anchor,.vp-doc h5 .header-anchor:focus,.vp-doc h6:hover .header-anchor,.vp-doc h6 .header-anchor:focus{opacity:1}@media (min-width: 768px){.vp-doc h1{letter-spacing:-.02em;line-height:40px;font-size:32px}}.vp-doc h2 .header-anchor{top:24px}.vp-doc p,.vp-doc summary{margin:16px 0}.vp-doc p{line-height:28px}.vp-doc blockquote{margin:16px 0;border-left:2px solid var(--vp-c-divider);padding-left:16px;transition:border-color .5s}.vp-doc blockquote>p{margin:0;font-size:16px;color:var(--vp-c-text-2);transition:color .5s}.vp-doc a{font-weight:500;color:var(--vp-c-brand-1);text-decoration:underline;text-underline-offset:2px;transition:color .25s,opacity .25s}.vp-doc a:hover{color:var(--vp-c-brand-2)}.vp-doc strong{font-weight:600}.vp-doc ul,.vp-doc ol{padding-left:1.25rem;margin:16px 0}.vp-doc ul{list-style:disc}.vp-doc ol{list-style:decimal}.vp-doc li+li{margin-top:8px}.vp-doc li>ol,.vp-doc li>ul{margin:8px 0 0}.vp-doc table{display:block;border-collapse:collapse;margin:20px 0;overflow-x:auto}.vp-doc tr{background-color:var(--vp-c-bg);border-top:1px solid var(--vp-c-divider);transition:background-color .5s}.vp-doc tr:nth-child(2n){background-color:var(--vp-c-bg-soft)}.vp-doc th,.vp-doc td{border:1px solid var(--vp-c-divider);padding:8px 16px}.vp-doc th{text-align:left;font-size:14px;font-weight:600;color:var(--vp-c-text-2);background-color:var(--vp-c-bg-soft)}.vp-doc td{font-size:14px}.vp-doc hr{margin:16px 0;border:none;border-top:1px solid var(--vp-c-divider)}.vp-doc .custom-block{margin:16px 0}.vp-doc .custom-block p{margin:8px 0;line-height:24px}.vp-doc .custom-block p:first-child{margin:0}.vp-doc .custom-block div[class*=language-]{margin:8px 0;border-radius:8px}.vp-doc .custom-block div[class*=language-] code{font-weight:400;background-color:transparent}.vp-doc .custom-block .vp-code-group .tabs{margin:0;border-radius:8px 8px 0 0}.vp-doc :not(pre,h1,h2,h3,h4,h5,h6)>code{font-size:var(--vp-code-font-size);color:var(--vp-code-color)}.vp-doc :not(pre)>code{border-radius:4px;padding:3px 6px;background-color:var(--vp-code-bg);transition:color .25s,background-color .5s}.vp-doc a>code{color:var(--vp-code-link-color)}.vp-doc a:hover>code{color:var(--vp-code-link-hover-color)}.vp-doc h1>code,.vp-doc h2>code,.vp-doc h3>code{font-size:.9em}.vp-doc div[class*=language-],.vp-block{position:relative;margin:16px -24px;background-color:var(--vp-code-block-bg);overflow-x:auto;transition:background-color .5s}@media (min-width: 640px){.vp-doc div[class*=language-],.vp-block{border-radius:8px;margin:16px 0}}@media (max-width: 639px){.vp-doc li div[class*=language-]{border-radius:8px 0 0 8px}}.vp-doc div[class*=language-]+div[class*=language-],.vp-doc div[class$=-api]+div[class*=language-],.vp-doc div[class*=language-]+div[class$=-api]>div[class*=language-]{margin-top:-8px}.vp-doc [class*=language-] pre,.vp-doc [class*=language-] code{direction:ltr;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none}.vp-doc [class*=language-] pre{position:relative;z-index:1;margin:0;padding:20px 0;background:transparent;overflow-x:auto}.vp-doc [class*=language-] code{display:block;padding:0 24px;width:fit-content;min-width:100%;line-height:var(--vp-code-line-height);font-size:var(--vp-code-font-size);color:var(--vp-code-block-color);transition:color .5s}.vp-doc [class*=language-] code .highlighted{background-color:var(--vp-code-line-highlight-color);transition:background-color .5s;margin:0 -24px;padding:0 24px;width:calc(100% + 48px);display:inline-block}.vp-doc [class*=language-] code .highlighted.error{background-color:var(--vp-code-line-error-color)}.vp-doc [class*=language-] code .highlighted.warning{background-color:var(--vp-code-line-warning-color)}.vp-doc [class*=language-] code .diff{transition:background-color .5s;margin:0 -24px;padding:0 24px;width:calc(100% + 48px);display:inline-block}.vp-doc [class*=language-] code .diff:before{position:absolute;left:10px}.vp-doc [class*=language-] .has-focused-lines .line:not(.has-focus){filter:blur(.095rem);opacity:.4;transition:filter .35s,opacity .35s}.vp-doc [class*=language-] .has-focused-lines .line:not(.has-focus){opacity:.7;transition:filter .35s,opacity .35s}.vp-doc [class*=language-]:hover .has-focused-lines .line:not(.has-focus){filter:blur(0);opacity:1}.vp-doc [class*=language-] code .diff.remove{background-color:var(--vp-code-line-diff-remove-color);opacity:.7}.vp-doc [class*=language-] code .diff.remove:before{content:"-";color:var(--vp-code-line-diff-remove-symbol-color)}.vp-doc [class*=language-] code .diff.add{background-color:var(--vp-code-line-diff-add-color)}.vp-doc [class*=language-] code .diff.add:before{content:"+";color:var(--vp-code-line-diff-add-symbol-color)}.vp-doc div[class*=language-].line-numbers-mode{padding-left:32px}.vp-doc .line-numbers-wrapper{position:absolute;top:0;bottom:0;left:0;z-index:3;border-right:1px solid var(--vp-code-block-divider-color);padding-top:20px;width:32px;text-align:center;font-family:var(--vp-font-family-mono);line-height:var(--vp-code-line-height);font-size:var(--vp-code-font-size);color:var(--vp-code-line-number-color);transition:border-color .5s,color .5s}.vp-doc [class*=language-]>button.copy{direction:ltr;position:absolute;top:12px;right:12px;z-index:3;border:1px solid var(--vp-code-copy-code-border-color);border-radius:4px;width:40px;height:40px;background-color:var(--vp-code-copy-code-bg);opacity:0;cursor:pointer;background-image:var(--vp-icon-copy);background-position:50%;background-size:20px;background-repeat:no-repeat;transition:border-color .25s,background-color .25s,opacity .25s}.vp-doc [class*=language-]:hover>button.copy,.vp-doc [class*=language-]>button.copy:focus{opacity:1}.vp-doc [class*=language-]>button.copy:hover,.vp-doc [class*=language-]>button.copy.copied{border-color:var(--vp-code-copy-code-hover-border-color);background-color:var(--vp-code-copy-code-hover-bg)}.vp-doc [class*=language-]>button.copy.copied,.vp-doc [class*=language-]>button.copy:hover.copied{border-radius:0 4px 4px 0;background-color:var(--vp-code-copy-code-hover-bg);background-image:var(--vp-icon-copied)}.vp-doc [class*=language-]>button.copy.copied:before,.vp-doc [class*=language-]>button.copy:hover.copied:before{position:relative;top:-1px;transform:translate(calc(-100% - 1px));display:flex;justify-content:center;align-items:center;border:1px solid var(--vp-code-copy-code-hover-border-color);border-right:0;border-radius:4px 0 0 4px;padding:0 10px;width:fit-content;height:40px;text-align:center;font-size:12px;font-weight:500;color:var(--vp-code-copy-code-active-text);background-color:var(--vp-code-copy-code-hover-bg);white-space:nowrap;content:var(--vp-code-copy-copied-text-content)}.vp-doc [class*=language-]>span.lang{position:absolute;top:2px;right:8px;z-index:2;font-size:12px;font-weight:500;color:var(--vp-code-lang-color);transition:color .4s,opacity .4s}.vp-doc [class*=language-]:hover>button.copy+span.lang,.vp-doc [class*=language-]>button.copy:focus+span.lang{opacity:0}.vp-doc .VPTeamMembers{margin-top:24px}.vp-doc .VPTeamMembers.small.count-1 .container{margin:0!important;max-width:calc((100% - 24px)/2)!important}.vp-doc .VPTeamMembers.small.count-2 .container,.vp-doc .VPTeamMembers.small.count-3 .container{max-width:100%!important}.vp-doc .VPTeamMembers.medium.count-1 .container{margin:0!important;max-width:calc((100% - 24px)/2)!important}:is(.vp-external-link-icon,.vp-doc a[href*="://"],.vp-doc a[target=_blank]):not(.no-icon):after{display:inline-block;margin-top:-1px;margin-left:4px;width:11px;height:11px;background:currentColor;color:var(--vp-c-text-3);flex-shrink:0;--icon: url("data:image/svg+xml, %3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' %3E%3Cpath d='M0 0h24v24H0V0z' fill='none' /%3E%3Cpath d='M9 5v2h6.59L4 18.59 5.41 20 17 8.41V15h2V5H9z' /%3E%3C/svg%3E");-webkit-mask-image:var(--icon);mask-image:var(--icon)}.vp-external-link-icon:after{content:""}.external-link-icon-enabled :is(.vp-doc a[href*="://"],.vp-doc a[target=_blank]):after{content:"";color:currentColor}.vp-sponsor{border-radius:16px;overflow:hidden}.vp-sponsor.aside{border-radius:12px}.vp-sponsor-section+.vp-sponsor-section{margin-top:4px}.vp-sponsor-tier{margin:0 0 4px!important;text-align:center;letter-spacing:1px!important;line-height:24px;width:100%;font-weight:600;color:var(--vp-c-text-2);background-color:var(--vp-c-bg-soft)}.vp-sponsor.normal .vp-sponsor-tier{padding:13px 0 11px;font-size:14px}.vp-sponsor.aside .vp-sponsor-tier{padding:9px 0 7px;font-size:12px}.vp-sponsor-grid+.vp-sponsor-tier{margin-top:4px}.vp-sponsor-grid{display:flex;flex-wrap:wrap;gap:4px}.vp-sponsor-grid.xmini .vp-sponsor-grid-link{height:64px}.vp-sponsor-grid.xmini .vp-sponsor-grid-image{max-width:64px;max-height:22px}.vp-sponsor-grid.mini .vp-sponsor-grid-link{height:72px}.vp-sponsor-grid.mini .vp-sponsor-grid-image{max-width:96px;max-height:24px}.vp-sponsor-grid.small .vp-sponsor-grid-link{height:96px}.vp-sponsor-grid.small .vp-sponsor-grid-image{max-width:96px;max-height:24px}.vp-sponsor-grid.medium .vp-sponsor-grid-link{height:112px}.vp-sponsor-grid.medium .vp-sponsor-grid-image{max-width:120px;max-height:36px}.vp-sponsor-grid.big .vp-sponsor-grid-link{height:184px}.vp-sponsor-grid.big .vp-sponsor-grid-image{max-width:192px;max-height:56px}.vp-sponsor-grid[data-vp-grid="2"] .vp-sponsor-grid-item{width:calc((100% - 4px)/2)}.vp-sponsor-grid[data-vp-grid="3"] .vp-sponsor-grid-item{width:calc((100% - 4px * 2) / 3)}.vp-sponsor-grid[data-vp-grid="4"] .vp-sponsor-grid-item{width:calc((100% - 12px)/4)}.vp-sponsor-grid[data-vp-grid="5"] .vp-sponsor-grid-item{width:calc((100% - 16px)/5)}.vp-sponsor-grid[data-vp-grid="6"] .vp-sponsor-grid-item{width:calc((100% - 4px * 5) / 6)}.vp-sponsor-grid-item{flex-shrink:0;width:100%;background-color:var(--vp-c-bg-soft);transition:background-color .25s}.vp-sponsor-grid-item:hover{background-color:var(--vp-c-default-soft)}.vp-sponsor-grid-item:hover .vp-sponsor-grid-image{filter:grayscale(0) invert(0)}.vp-sponsor-grid-item.empty:hover{background-color:var(--vp-c-bg-soft)}.dark .vp-sponsor-grid-item:hover{background-color:var(--vp-c-white)}.dark .vp-sponsor-grid-item.empty:hover{background-color:var(--vp-c-bg-soft)}.vp-sponsor-grid-link{display:flex}.vp-sponsor-grid-box{display:flex;justify-content:center;align-items:center;width:100%}.vp-sponsor-grid-image{max-width:100%;filter:grayscale(1);transition:filter .25s}.dark .vp-sponsor-grid-image{filter:grayscale(1) invert(1)}.VPBadge{display:inline-block;margin-left:2px;border:1px solid transparent;border-radius:12px;padding:0 10px;line-height:22px;font-size:12px;font-weight:500;transform:translateY(-2px)}.VPBadge.small{padding:0 6px;line-height:18px;font-size:10px;transform:translateY(-8px)}.VPDocFooter .VPBadge{display:none}.vp-doc h1>.VPBadge{margin-top:4px;vertical-align:top}.vp-doc h2>.VPBadge{margin-top:3px;padding:0 8px;vertical-align:top}.vp-doc h3>.VPBadge{vertical-align:middle}.vp-doc h4>.VPBadge,.vp-doc h5>.VPBadge,.vp-doc h6>.VPBadge{vertical-align:middle;line-height:18px}.VPBadge.info{border-color:var(--vp-badge-info-border);color:var(--vp-badge-info-text);background-color:var(--vp-badge-info-bg)}.VPBadge.tip{border-color:var(--vp-badge-tip-border);color:var(--vp-badge-tip-text);background-color:var(--vp-badge-tip-bg)}.VPBadge.warning{border-color:var(--vp-badge-warning-border);color:var(--vp-badge-warning-text);background-color:var(--vp-badge-warning-bg)}.VPBadge.danger{border-color:var(--vp-badge-danger-border);color:var(--vp-badge-danger-text);background-color:var(--vp-badge-danger-bg)}.VPBackdrop[data-v-c79a1216]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--vp-z-index-backdrop);background:var(--vp-backdrop-bg-color);transition:opacity .5s}.VPBackdrop.fade-enter-from[data-v-c79a1216],.VPBackdrop.fade-leave-to[data-v-c79a1216]{opacity:0}.VPBackdrop.fade-leave-active[data-v-c79a1216]{transition-duration:.25s}@media (min-width: 1280px){.VPBackdrop[data-v-c79a1216]{display:none}}.NotFound[data-v-d6be1790]{padding:64px 24px 96px;text-align:center}@media (min-width: 768px){.NotFound[data-v-d6be1790]{padding:96px 32px 168px}}.code[data-v-d6be1790]{line-height:64px;font-size:64px;font-weight:600}.title[data-v-d6be1790]{padding-top:12px;letter-spacing:2px;line-height:20px;font-size:20px;font-weight:700}.divider[data-v-d6be1790]{margin:24px auto 18px;width:64px;height:1px;background-color:var(--vp-c-divider)}.quote[data-v-d6be1790]{margin:0 auto;max-width:256px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}.action[data-v-d6be1790]{padding-top:20px}.link[data-v-d6be1790]{display:inline-block;border:1px solid var(--vp-c-brand-1);border-radius:16px;padding:3px 16px;font-size:14px;font-weight:500;color:var(--vp-c-brand-1);transition:border-color .25s,color .25s}.link[data-v-d6be1790]:hover{border-color:var(--vp-c-brand-2);color:var(--vp-c-brand-2)}.root[data-v-b933a997]{position:relative;z-index:1}.nested[data-v-b933a997]{padding-right:16px;padding-left:16px}.outline-link[data-v-b933a997]{display:block;line-height:32px;font-size:14px;font-weight:400;color:var(--vp-c-text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .5s}.outline-link[data-v-b933a997]:hover,.outline-link.active[data-v-b933a997]{color:var(--vp-c-text-1);transition:color .25s}.outline-link.nested[data-v-b933a997]{padding-left:13px}.VPDocAsideOutline[data-v-a5bbad30]{display:none}.VPDocAsideOutline.has-outline[data-v-a5bbad30]{display:block}.content[data-v-a5bbad30]{position:relative;border-left:1px solid var(--vp-c-divider);padding-left:16px;font-size:13px;font-weight:500}.outline-marker[data-v-a5bbad30]{position:absolute;top:32px;left:-1px;z-index:0;opacity:0;width:2px;border-radius:2px;height:18px;background-color:var(--vp-c-brand-1);transition:top .25s cubic-bezier(0,1,.5,1),background-color .5s,opacity .25s}.outline-title[data-v-a5bbad30]{line-height:32px;font-size:14px;font-weight:600}.VPDocAside[data-v-3f215769]{display:flex;flex-direction:column;flex-grow:1}.spacer[data-v-3f215769]{flex-grow:1}.VPDocAside[data-v-3f215769] .spacer+.VPDocAsideSponsors,.VPDocAside[data-v-3f215769] .spacer+.VPDocAsideCarbonAds{margin-top:24px}.VPDocAside[data-v-3f215769] .VPDocAsideSponsors+.VPDocAsideCarbonAds{margin-top:16px}.VPLastUpdated[data-v-7e05ebdb]{line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}@media (min-width: 640px){.VPLastUpdated[data-v-7e05ebdb]{line-height:32px;font-size:14px;font-weight:500}}.VPDocFooter[data-v-d4a0bba5]{margin-top:64px}.edit-info[data-v-d4a0bba5]{padding-bottom:18px}@media (min-width: 640px){.edit-info[data-v-d4a0bba5]{display:flex;justify-content:space-between;align-items:center;padding-bottom:14px}}.edit-link-button[data-v-d4a0bba5]{display:flex;align-items:center;border:0;line-height:32px;font-size:14px;font-weight:500;color:var(--vp-c-brand-1);transition:color .25s}.edit-link-button[data-v-d4a0bba5]:hover{color:var(--vp-c-brand-2)}.edit-link-icon[data-v-d4a0bba5]{margin-right:8px}.prev-next[data-v-d4a0bba5]{border-top:1px solid var(--vp-c-divider);padding-top:24px;display:grid;grid-row-gap:8px}@media (min-width: 640px){.prev-next[data-v-d4a0bba5]{grid-template-columns:repeat(2,1fr);grid-column-gap:16px}}.pager-link[data-v-d4a0bba5]{display:block;border:1px solid var(--vp-c-divider);border-radius:8px;padding:11px 16px 13px;width:100%;height:100%;transition:border-color .25s}.pager-link[data-v-d4a0bba5]:hover{border-color:var(--vp-c-brand-1)}.pager-link.next[data-v-d4a0bba5]{margin-left:auto;text-align:right}.desc[data-v-d4a0bba5]{display:block;line-height:20px;font-size:12px;font-weight:500;color:var(--vp-c-text-2)}.title[data-v-d4a0bba5]{display:block;line-height:20px;font-size:14px;font-weight:500;color:var(--vp-c-brand-1);transition:color .25s}.VPDoc[data-v-39a288b8]{padding:32px 24px 96px;width:100%}@media (min-width: 768px){.VPDoc[data-v-39a288b8]{padding:48px 32px 128px}}@media (min-width: 960px){.VPDoc[data-v-39a288b8]{padding:48px 32px 0}.VPDoc:not(.has-sidebar) .container[data-v-39a288b8]{display:flex;justify-content:center;max-width:992px}.VPDoc:not(.has-sidebar) .content[data-v-39a288b8]{max-width:752px}}@media (min-width: 1280px){.VPDoc .container[data-v-39a288b8]{display:flex;justify-content:center}.VPDoc .aside[data-v-39a288b8]{display:block}}@media (min-width: 1440px){.VPDoc:not(.has-sidebar) .content[data-v-39a288b8]{max-width:784px}.VPDoc:not(.has-sidebar) .container[data-v-39a288b8]{max-width:1104px}}.container[data-v-39a288b8]{margin:0 auto;width:100%}.aside[data-v-39a288b8]{position:relative;display:none;order:2;flex-grow:1;padding-left:32px;width:100%;max-width:256px}.left-aside[data-v-39a288b8]{order:1;padding-left:unset;padding-right:32px}.aside-container[data-v-39a288b8]{position:fixed;top:0;padding-top:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + var(--vp-doc-top-height, 0px) + 48px);width:224px;height:100vh;overflow-x:hidden;overflow-y:auto;scrollbar-width:none}.aside-container[data-v-39a288b8]::-webkit-scrollbar{display:none}.aside-curtain[data-v-39a288b8]{position:fixed;bottom:0;z-index:10;width:224px;height:32px;background:linear-gradient(transparent,var(--vp-c-bg) 70%)}.aside-content[data-v-39a288b8]{display:flex;flex-direction:column;min-height:calc(100vh - (var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 48px));padding-bottom:32px}.content[data-v-39a288b8]{position:relative;margin:0 auto;width:100%}@media (min-width: 960px){.content[data-v-39a288b8]{padding:0 32px 128px}}@media (min-width: 1280px){.content[data-v-39a288b8]{order:1;margin:0;min-width:640px}}.content-container[data-v-39a288b8]{margin:0 auto}.VPDoc.has-aside .content-container[data-v-39a288b8]{max-width:688px}.VPButton[data-v-cad61b99]{display:inline-block;border:1px solid transparent;text-align:center;font-weight:600;white-space:nowrap;transition:color .25s,border-color .25s,background-color .25s}.VPButton[data-v-cad61b99]:active{transition:color .1s,border-color .1s,background-color .1s}.VPButton.medium[data-v-cad61b99]{border-radius:20px;padding:0 20px;line-height:38px;font-size:14px}.VPButton.big[data-v-cad61b99]{border-radius:24px;padding:0 24px;line-height:46px;font-size:16px}.VPButton.brand[data-v-cad61b99]{border-color:var(--vp-button-brand-border);color:var(--vp-button-brand-text);background-color:var(--vp-button-brand-bg)}.VPButton.brand[data-v-cad61b99]:hover{border-color:var(--vp-button-brand-hover-border);color:var(--vp-button-brand-hover-text);background-color:var(--vp-button-brand-hover-bg)}.VPButton.brand[data-v-cad61b99]:active{border-color:var(--vp-button-brand-active-border);color:var(--vp-button-brand-active-text);background-color:var(--vp-button-brand-active-bg)}.VPButton.alt[data-v-cad61b99]{border-color:var(--vp-button-alt-border);color:var(--vp-button-alt-text);background-color:var(--vp-button-alt-bg)}.VPButton.alt[data-v-cad61b99]:hover{border-color:var(--vp-button-alt-hover-border);color:var(--vp-button-alt-hover-text);background-color:var(--vp-button-alt-hover-bg)}.VPButton.alt[data-v-cad61b99]:active{border-color:var(--vp-button-alt-active-border);color:var(--vp-button-alt-active-text);background-color:var(--vp-button-alt-active-bg)}.VPButton.sponsor[data-v-cad61b99]{border-color:var(--vp-button-sponsor-border);color:var(--vp-button-sponsor-text);background-color:var(--vp-button-sponsor-bg)}.VPButton.sponsor[data-v-cad61b99]:hover{border-color:var(--vp-button-sponsor-hover-border);color:var(--vp-button-sponsor-hover-text);background-color:var(--vp-button-sponsor-hover-bg)}.VPButton.sponsor[data-v-cad61b99]:active{border-color:var(--vp-button-sponsor-active-border);color:var(--vp-button-sponsor-active-text);background-color:var(--vp-button-sponsor-active-bg)}html:not(.dark) .VPImage.dark[data-v-8426fc1a]{display:none}.dark .VPImage.light[data-v-8426fc1a]{display:none}.VPHero[data-v-303bb580]{margin-top:calc((var(--vp-nav-height) + var(--vp-layout-top-height, 0px)) * -1);padding:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 48px) 24px 48px}@media (min-width: 640px){.VPHero[data-v-303bb580]{padding:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 80px) 48px 64px}}@media (min-width: 960px){.VPHero[data-v-303bb580]{padding:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 80px) 64px 64px}}.container[data-v-303bb580]{display:flex;flex-direction:column;margin:0 auto;max-width:1152px}@media (min-width: 960px){.container[data-v-303bb580]{flex-direction:row}}.main[data-v-303bb580]{position:relative;z-index:10;order:2;flex-grow:1;flex-shrink:0}.VPHero.has-image .container[data-v-303bb580]{text-align:center}@media (min-width: 960px){.VPHero.has-image .container[data-v-303bb580]{text-align:left}}@media (min-width: 960px){.main[data-v-303bb580]{order:1;width:calc((100% / 3) * 2)}.VPHero.has-image .main[data-v-303bb580]{max-width:592px}}.name[data-v-303bb580],.text[data-v-303bb580]{max-width:392px;letter-spacing:-.4px;line-height:40px;font-size:32px;font-weight:700;white-space:pre-wrap}.VPHero.has-image .name[data-v-303bb580],.VPHero.has-image .text[data-v-303bb580]{margin:0 auto}.name[data-v-303bb580]{color:var(--vp-home-hero-name-color)}.clip[data-v-303bb580]{background:var(--vp-home-hero-name-background);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:var(--vp-home-hero-name-color)}@media (min-width: 640px){.name[data-v-303bb580],.text[data-v-303bb580]{max-width:576px;line-height:56px;font-size:48px}}@media (min-width: 960px){.name[data-v-303bb580],.text[data-v-303bb580]{line-height:64px;font-size:56px}.VPHero.has-image .name[data-v-303bb580],.VPHero.has-image .text[data-v-303bb580]{margin:0}}.tagline[data-v-303bb580]{padding-top:8px;max-width:392px;line-height:28px;font-size:18px;font-weight:500;white-space:pre-wrap;color:var(--vp-c-text-2)}.VPHero.has-image .tagline[data-v-303bb580]{margin:0 auto}@media (min-width: 640px){.tagline[data-v-303bb580]{padding-top:12px;max-width:576px;line-height:32px;font-size:20px}}@media (min-width: 960px){.tagline[data-v-303bb580]{line-height:36px;font-size:24px}.VPHero.has-image .tagline[data-v-303bb580]{margin:0}}.actions[data-v-303bb580]{display:flex;flex-wrap:wrap;margin:-6px;padding-top:24px}.VPHero.has-image .actions[data-v-303bb580]{justify-content:center}@media (min-width: 640px){.actions[data-v-303bb580]{padding-top:32px}}@media (min-width: 960px){.VPHero.has-image .actions[data-v-303bb580]{justify-content:flex-start}}.action[data-v-303bb580]{flex-shrink:0;padding:6px}.image[data-v-303bb580]{order:1;margin:-76px -24px -48px}@media (min-width: 640px){.image[data-v-303bb580]{margin:-108px -24px -48px}}@media (min-width: 960px){.image[data-v-303bb580]{flex-grow:1;order:2;margin:0;min-height:100%}}.image-container[data-v-303bb580]{position:relative;margin:0 auto;width:320px;height:320px}@media (min-width: 640px){.image-container[data-v-303bb580]{width:392px;height:392px}}@media (min-width: 960px){.image-container[data-v-303bb580]{display:flex;justify-content:center;align-items:center;width:100%;height:100%;transform:translate(-32px,-32px)}}.image-bg[data-v-303bb580]{position:absolute;top:50%;left:50%;border-radius:50%;width:192px;height:192px;background-image:var(--vp-home-hero-image-background-image);filter:var(--vp-home-hero-image-filter);transform:translate(-50%,-50%)}@media (min-width: 640px){.image-bg[data-v-303bb580]{width:256px;height:256px}}@media (min-width: 960px){.image-bg[data-v-303bb580]{width:320px;height:320px}}[data-v-303bb580] .image-src{position:absolute;top:50%;left:50%;max-width:192px;max-height:192px;transform:translate(-50%,-50%)}@media (min-width: 640px){[data-v-303bb580] .image-src{max-width:256px;max-height:256px}}@media (min-width: 960px){[data-v-303bb580] .image-src{max-width:320px;max-height:320px}}.VPFeature[data-v-a3976bdc]{display:block;border:1px solid var(--vp-c-bg-soft);border-radius:12px;height:100%;background-color:var(--vp-c-bg-soft);transition:border-color .25s,background-color .25s}.VPFeature.link[data-v-a3976bdc]:hover{border-color:var(--vp-c-brand-1)}.box[data-v-a3976bdc]{display:flex;flex-direction:column;padding:24px;height:100%}.box[data-v-a3976bdc]>.VPImage{margin-bottom:20px}.icon[data-v-a3976bdc]{display:flex;justify-content:center;align-items:center;margin-bottom:20px;border-radius:6px;background-color:var(--vp-c-default-soft);width:48px;height:48px;font-size:24px;transition:background-color .25s}.title[data-v-a3976bdc]{line-height:24px;font-size:16px;font-weight:600}.details[data-v-a3976bdc]{flex-grow:1;padding-top:8px;line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}.link-text[data-v-a3976bdc]{padding-top:8px}.link-text-value[data-v-a3976bdc]{display:flex;align-items:center;font-size:14px;font-weight:500;color:var(--vp-c-brand-1)}.link-text-icon[data-v-a3976bdc]{margin-left:6px}.VPFeatures[data-v-a6181336]{position:relative;padding:0 24px}@media (min-width: 640px){.VPFeatures[data-v-a6181336]{padding:0 48px}}@media (min-width: 960px){.VPFeatures[data-v-a6181336]{padding:0 64px}}.container[data-v-a6181336]{margin:0 auto;max-width:1152px}.items[data-v-a6181336]{display:flex;flex-wrap:wrap;margin:-8px}.item[data-v-a6181336]{padding:8px;width:100%}@media (min-width: 640px){.item.grid-2[data-v-a6181336],.item.grid-4[data-v-a6181336],.item.grid-6[data-v-a6181336]{width:50%}}@media (min-width: 768px){.item.grid-2[data-v-a6181336],.item.grid-4[data-v-a6181336]{width:50%}.item.grid-3[data-v-a6181336],.item.grid-6[data-v-a6181336]{width:calc(100% / 3)}}@media (min-width: 960px){.item.grid-4[data-v-a6181336]{width:25%}}.container[data-v-8e2d4988]{margin:auto;width:100%;max-width:1280px;padding:0 24px}@media (min-width: 640px){.container[data-v-8e2d4988]{padding:0 48px}}@media (min-width: 960px){.container[data-v-8e2d4988]{width:100%;padding:0 64px}}.vp-doc[data-v-8e2d4988] .VPHomeSponsors,.vp-doc[data-v-8e2d4988] .VPTeamPage{margin-left:var(--vp-offset, calc(50% - 50vw) );margin-right:var(--vp-offset, calc(50% - 50vw) )}.vp-doc[data-v-8e2d4988] .VPHomeSponsors h2{border-top:none;letter-spacing:normal}.vp-doc[data-v-8e2d4988] .VPHomeSponsors a,.vp-doc[data-v-8e2d4988] .VPTeamPage a{text-decoration:none}.VPHome[data-v-686f80a6]{margin-bottom:96px}@media (min-width: 768px){.VPHome[data-v-686f80a6]{margin-bottom:128px}}.VPContent[data-v-1428d186]{flex-grow:1;flex-shrink:0;margin:var(--vp-layout-top-height, 0px) auto 0;width:100%}.VPContent.is-home[data-v-1428d186]{width:100%;max-width:100%}.VPContent.has-sidebar[data-v-1428d186]{margin:0}@media (min-width: 960px){.VPContent[data-v-1428d186]{padding-top:var(--vp-nav-height)}.VPContent.has-sidebar[data-v-1428d186]{margin:var(--vp-layout-top-height, 0px) 0 0;padding-left:var(--vp-sidebar-width)}}@media (min-width: 1440px){.VPContent.has-sidebar[data-v-1428d186]{padding-right:calc((100vw - var(--vp-layout-max-width)) / 2);padding-left:calc((100vw - var(--vp-layout-max-width)) / 2 + var(--vp-sidebar-width))}}.VPFooter[data-v-e315a0ad]{position:relative;z-index:var(--vp-z-index-footer);border-top:1px solid var(--vp-c-gutter);padding:32px 24px;background-color:var(--vp-c-bg)}.VPFooter.has-sidebar[data-v-e315a0ad]{display:none}.VPFooter[data-v-e315a0ad] a{text-decoration-line:underline;text-underline-offset:2px;transition:color .25s}.VPFooter[data-v-e315a0ad] a:hover{color:var(--vp-c-text-1)}@media (min-width: 768px){.VPFooter[data-v-e315a0ad]{padding:32px}}.container[data-v-e315a0ad]{margin:0 auto;max-width:var(--vp-layout-max-width);text-align:center}.message[data-v-e315a0ad],.copyright[data-v-e315a0ad]{line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}.VPLocalNavOutlineDropdown[data-v-17a5e62e]{padding:12px 20px 11px}@media (min-width: 960px){.VPLocalNavOutlineDropdown[data-v-17a5e62e]{padding:12px 36px 11px}}.VPLocalNavOutlineDropdown button[data-v-17a5e62e]{display:block;font-size:12px;font-weight:500;line-height:24px;color:var(--vp-c-text-2);transition:color .5s;position:relative}.VPLocalNavOutlineDropdown button[data-v-17a5e62e]:hover{color:var(--vp-c-text-1);transition:color .25s}.VPLocalNavOutlineDropdown button.open[data-v-17a5e62e]{color:var(--vp-c-text-1)}.icon[data-v-17a5e62e]{display:inline-block;vertical-align:middle;margin-left:2px;font-size:14px;transform:rotate(0);transition:transform .25s}@media (min-width: 960px){.VPLocalNavOutlineDropdown button[data-v-17a5e62e]{font-size:14px}.icon[data-v-17a5e62e]{font-size:16px}}.open>.icon[data-v-17a5e62e]{transform:rotate(90deg)}.items[data-v-17a5e62e]{position:absolute;top:40px;right:16px;left:16px;display:grid;gap:1px;border:1px solid var(--vp-c-border);border-radius:8px;background-color:var(--vp-c-gutter);max-height:calc(var(--vp-vh, 100vh) - 86px);overflow:hidden auto;box-shadow:var(--vp-shadow-3)}@media (min-width: 960px){.items[data-v-17a5e62e]{right:auto;left:calc(var(--vp-sidebar-width) + 32px);width:320px}}.header[data-v-17a5e62e]{background-color:var(--vp-c-bg-soft)}.top-link[data-v-17a5e62e]{display:block;padding:0 16px;line-height:48px;font-size:14px;font-weight:500;color:var(--vp-c-brand-1)}.outline[data-v-17a5e62e]{padding:8px 0;background-color:var(--vp-c-bg-soft)}.flyout-enter-active[data-v-17a5e62e]{transition:all .2s ease-out}.flyout-leave-active[data-v-17a5e62e]{transition:all .15s ease-in}.flyout-enter-from[data-v-17a5e62e],.flyout-leave-to[data-v-17a5e62e]{opacity:0;transform:translateY(-16px)}.VPLocalNav[data-v-a6f0e41e]{position:sticky;top:0;left:0;z-index:var(--vp-z-index-local-nav);border-bottom:1px solid var(--vp-c-gutter);padding-top:var(--vp-layout-top-height, 0px);width:100%;background-color:var(--vp-local-nav-bg-color)}.VPLocalNav.fixed[data-v-a6f0e41e]{position:fixed}@media (min-width: 960px){.VPLocalNav[data-v-a6f0e41e]{top:var(--vp-nav-height)}.VPLocalNav.has-sidebar[data-v-a6f0e41e]{padding-left:var(--vp-sidebar-width)}.VPLocalNav.empty[data-v-a6f0e41e]{display:none}}@media (min-width: 1280px){.VPLocalNav[data-v-a6f0e41e]{display:none}}@media (min-width: 1440px){.VPLocalNav.has-sidebar[data-v-a6f0e41e]{padding-left:calc((100vw - var(--vp-layout-max-width)) / 2 + var(--vp-sidebar-width))}}.container[data-v-a6f0e41e]{display:flex;justify-content:space-between;align-items:center}.menu[data-v-a6f0e41e]{display:flex;align-items:center;padding:12px 24px 11px;line-height:24px;font-size:12px;font-weight:500;color:var(--vp-c-text-2);transition:color .5s}.menu[data-v-a6f0e41e]:hover{color:var(--vp-c-text-1);transition:color .25s}@media (min-width: 768px){.menu[data-v-a6f0e41e]{padding:0 32px}}@media (min-width: 960px){.menu[data-v-a6f0e41e]{display:none}}.menu-icon[data-v-a6f0e41e]{margin-right:8px;font-size:14px}.VPOutlineDropdown[data-v-a6f0e41e]{padding:12px 24px 11px}@media (min-width: 768px){.VPOutlineDropdown[data-v-a6f0e41e]{padding:12px 32px 11px}}.VPSwitch[data-v-1d5665e3]{position:relative;border-radius:11px;display:block;width:40px;height:22px;flex-shrink:0;border:1px solid var(--vp-input-border-color);background-color:var(--vp-input-switch-bg-color);transition:border-color .25s!important}.VPSwitch[data-v-1d5665e3]:hover{border-color:var(--vp-c-brand-1)}.check[data-v-1d5665e3]{position:absolute;top:1px;left:1px;width:18px;height:18px;border-radius:50%;background-color:var(--vp-c-neutral-inverse);box-shadow:var(--vp-shadow-1);transition:transform .25s!important}.icon[data-v-1d5665e3]{position:relative;display:block;width:18px;height:18px;border-radius:50%;overflow:hidden}.icon[data-v-1d5665e3] [class^=vpi-]{position:absolute;top:3px;left:3px;width:12px;height:12px;color:var(--vp-c-text-2)}.dark .icon[data-v-1d5665e3] [class^=vpi-]{color:var(--vp-c-text-1);transition:opacity .25s!important}.sun[data-v-d1f28634]{opacity:1}.moon[data-v-d1f28634],.dark .sun[data-v-d1f28634]{opacity:0}.dark .moon[data-v-d1f28634]{opacity:1}.dark .VPSwitchAppearance[data-v-d1f28634] .check{transform:translate(18px)}.VPNavBarAppearance[data-v-e6aabb21]{display:none}@media (min-width: 1280px){.VPNavBarAppearance[data-v-e6aabb21]{display:flex;align-items:center}}.VPMenuGroup+.VPMenuLink[data-v-43f1e123]{margin:12px -12px 0;border-top:1px solid var(--vp-c-divider);padding:12px 12px 0}.link[data-v-43f1e123]{display:block;border-radius:6px;padding:0 12px;line-height:32px;font-size:14px;font-weight:500;color:var(--vp-c-text-1);white-space:nowrap;transition:background-color .25s,color .25s}.link[data-v-43f1e123]:hover{color:var(--vp-c-brand-1);background-color:var(--vp-c-default-soft)}.link.active[data-v-43f1e123]{color:var(--vp-c-brand-1)}.VPMenuGroup[data-v-69e747b5]{margin:12px -12px 0;border-top:1px solid var(--vp-c-divider);padding:12px 12px 0}.VPMenuGroup[data-v-69e747b5]:first-child{margin-top:0;border-top:0;padding-top:0}.VPMenuGroup+.VPMenuGroup[data-v-69e747b5]{margin-top:12px;border-top:1px solid var(--vp-c-divider)}.title[data-v-69e747b5]{padding:0 12px;line-height:32px;font-size:14px;font-weight:600;color:var(--vp-c-text-2);white-space:nowrap;transition:color .25s}.VPMenu[data-v-e7ea1737]{border-radius:12px;padding:12px;min-width:128px;border:1px solid var(--vp-c-divider);background-color:var(--vp-c-bg-elv);box-shadow:var(--vp-shadow-3);transition:background-color .5s;max-height:calc(100vh - var(--vp-nav-height));overflow-y:auto}.VPMenu[data-v-e7ea1737] .group{margin:0 -12px;padding:0 12px 12px}.VPMenu[data-v-e7ea1737] .group+.group{border-top:1px solid var(--vp-c-divider);padding:11px 12px 12px}.VPMenu[data-v-e7ea1737] .group:last-child{padding-bottom:0}.VPMenu[data-v-e7ea1737] .group+.item{border-top:1px solid var(--vp-c-divider);padding:11px 16px 0}.VPMenu[data-v-e7ea1737] .item{padding:0 16px;white-space:nowrap}.VPMenu[data-v-e7ea1737] .label{flex-grow:1;line-height:28px;font-size:12px;font-weight:500;color:var(--vp-c-text-2);transition:color .5s}.VPMenu[data-v-e7ea1737] .action{padding-left:24px}.VPFlyout[data-v-b6c34ac9]{position:relative}.VPFlyout[data-v-b6c34ac9]:hover{color:var(--vp-c-brand-1);transition:color .25s}.VPFlyout:hover .text[data-v-b6c34ac9]{color:var(--vp-c-text-2)}.VPFlyout:hover .icon[data-v-b6c34ac9]{fill:var(--vp-c-text-2)}.VPFlyout.active .text[data-v-b6c34ac9]{color:var(--vp-c-brand-1)}.VPFlyout.active:hover .text[data-v-b6c34ac9]{color:var(--vp-c-brand-2)}.VPFlyout:hover .menu[data-v-b6c34ac9],.button[aria-expanded=true]+.menu[data-v-b6c34ac9]{opacity:1;visibility:visible;transform:translateY(0)}.button[aria-expanded=false]+.menu[data-v-b6c34ac9]{opacity:0;visibility:hidden;transform:translateY(0)}.button[data-v-b6c34ac9]{display:flex;align-items:center;padding:0 12px;height:var(--vp-nav-height);color:var(--vp-c-text-1);transition:color .5s}.text[data-v-b6c34ac9]{display:flex;align-items:center;line-height:var(--vp-nav-height);font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:color .25s}.option-icon[data-v-b6c34ac9]{margin-right:0;font-size:16px}.text-icon[data-v-b6c34ac9]{margin-left:4px;font-size:14px}.icon[data-v-b6c34ac9]{font-size:20px;transition:fill .25s}.menu[data-v-b6c34ac9]{position:absolute;top:calc(var(--vp-nav-height) / 2 + 20px);right:0;opacity:0;visibility:hidden;transition:opacity .25s,visibility .25s,transform .25s}.VPSocialLink[data-v-eee4e7cb]{display:flex;justify-content:center;align-items:center;width:36px;height:36px;color:var(--vp-c-text-2);transition:color .5s}.VPSocialLink[data-v-eee4e7cb]:hover{color:var(--vp-c-text-1);transition:color .25s}.VPSocialLink[data-v-eee4e7cb]>svg,.VPSocialLink[data-v-eee4e7cb]>[class^=vpi-social-]{width:20px;height:20px;fill:currentColor}.VPSocialLinks[data-v-7bc22406]{display:flex;justify-content:center}.VPNavBarExtra[data-v-d0bd9dde]{display:none;margin-right:-12px}@media (min-width: 768px){.VPNavBarExtra[data-v-d0bd9dde]{display:block}}@media (min-width: 1280px){.VPNavBarExtra[data-v-d0bd9dde]{display:none}}.trans-title[data-v-d0bd9dde]{padding:0 24px 0 12px;line-height:32px;font-size:14px;font-weight:700;color:var(--vp-c-text-1)}.item.appearance[data-v-d0bd9dde],.item.social-links[data-v-d0bd9dde]{display:flex;align-items:center;padding:0 12px}.item.appearance[data-v-d0bd9dde]{min-width:176px}.appearance-action[data-v-d0bd9dde]{margin-right:-2px}.social-links-list[data-v-d0bd9dde]{margin:-4px -8px}.VPNavBarHamburger[data-v-e5dd9c1c]{display:flex;justify-content:center;align-items:center;width:48px;height:var(--vp-nav-height)}@media (min-width: 768px){.VPNavBarHamburger[data-v-e5dd9c1c]{display:none}}.container[data-v-e5dd9c1c]{position:relative;width:16px;height:14px;overflow:hidden}.VPNavBarHamburger:hover .top[data-v-e5dd9c1c]{top:0;left:0;transform:translate(4px)}.VPNavBarHamburger:hover .middle[data-v-e5dd9c1c]{top:6px;left:0;transform:translate(0)}.VPNavBarHamburger:hover .bottom[data-v-e5dd9c1c]{top:12px;left:0;transform:translate(8px)}.VPNavBarHamburger.active .top[data-v-e5dd9c1c]{top:6px;transform:translate(0) rotate(225deg)}.VPNavBarHamburger.active .middle[data-v-e5dd9c1c]{top:6px;transform:translate(16px)}.VPNavBarHamburger.active .bottom[data-v-e5dd9c1c]{top:6px;transform:translate(0) rotate(135deg)}.VPNavBarHamburger.active:hover .top[data-v-e5dd9c1c],.VPNavBarHamburger.active:hover .middle[data-v-e5dd9c1c],.VPNavBarHamburger.active:hover .bottom[data-v-e5dd9c1c]{background-color:var(--vp-c-text-2);transition:top .25s,background-color .25s,transform .25s}.top[data-v-e5dd9c1c],.middle[data-v-e5dd9c1c],.bottom[data-v-e5dd9c1c]{position:absolute;width:16px;height:2px;background-color:var(--vp-c-text-1);transition:top .25s,background-color .5s,transform .25s}.top[data-v-e5dd9c1c]{top:0;left:0;transform:translate(0)}.middle[data-v-e5dd9c1c]{top:6px;left:0;transform:translate(8px)}.bottom[data-v-e5dd9c1c]{top:12px;left:0;transform:translate(4px)}.VPNavBarMenuLink[data-v-9c663999]{display:flex;align-items:center;padding:0 12px;line-height:var(--vp-nav-height);font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:color .25s}.VPNavBarMenuLink.active[data-v-9c663999],.VPNavBarMenuLink[data-v-9c663999]:hover{color:var(--vp-c-brand-1)}.VPNavBarMenu[data-v-7f418b0f]{display:none}@media (min-width: 768px){.VPNavBarMenu[data-v-7f418b0f]{display:flex}}/*! @docsearch/css 3.6.0 | MIT License | © Algolia, Inc. and contributors | https://docsearch.algolia.com */:root{--docsearch-primary-color:#5468ff;--docsearch-text-color:#1c1e21;--docsearch-spacing:12px;--docsearch-icon-stroke-width:1.4;--docsearch-highlight-color:var(--docsearch-primary-color);--docsearch-muted-color:#969faf;--docsearch-container-background:rgba(101,108,133,.8);--docsearch-logo-color:#5468ff;--docsearch-modal-width:560px;--docsearch-modal-height:600px;--docsearch-modal-background:#f5f6f7;--docsearch-modal-shadow:inset 1px 1px 0 0 hsla(0,0%,100%,.5),0 3px 8px 0 #555a64;--docsearch-searchbox-height:56px;--docsearch-searchbox-background:#ebedf0;--docsearch-searchbox-focus-background:#fff;--docsearch-searchbox-shadow:inset 0 0 0 2px var(--docsearch-primary-color);--docsearch-hit-height:56px;--docsearch-hit-color:#444950;--docsearch-hit-active-color:#fff;--docsearch-hit-background:#fff;--docsearch-hit-shadow:0 1px 3px 0 #d4d9e1;--docsearch-key-gradient:linear-gradient(-225deg,#d5dbe4,#f8f8f8);--docsearch-key-shadow:inset 0 -2px 0 0 #cdcde6,inset 0 0 1px 1px #fff,0 1px 2px 1px rgba(30,35,90,.4);--docsearch-key-pressed-shadow:inset 0 -2px 0 0 #cdcde6,inset 0 0 1px 1px #fff,0 1px 1px 0 rgba(30,35,90,.4);--docsearch-footer-height:44px;--docsearch-footer-background:#fff;--docsearch-footer-shadow:0 -1px 0 0 #e0e3e8,0 -3px 6px 0 rgba(69,98,155,.12)}html[data-theme=dark]{--docsearch-text-color:#f5f6f7;--docsearch-container-background:rgba(9,10,17,.8);--docsearch-modal-background:#15172a;--docsearch-modal-shadow:inset 1px 1px 0 0 #2c2e40,0 3px 8px 0 #000309;--docsearch-searchbox-background:#090a11;--docsearch-searchbox-focus-background:#000;--docsearch-hit-color:#bec3c9;--docsearch-hit-shadow:none;--docsearch-hit-background:#090a11;--docsearch-key-gradient:linear-gradient(-26.5deg,#565872,#31355b);--docsearch-key-shadow:inset 0 -2px 0 0 #282d55,inset 0 0 1px 1px #51577d,0 2px 2px 0 rgba(3,4,9,.3);--docsearch-key-pressed-shadow:inset 0 -2px 0 0 #282d55,inset 0 0 1px 1px #51577d,0 1px 1px 0 rgba(3,4,9,.30196078431372547);--docsearch-footer-background:#1e2136;--docsearch-footer-shadow:inset 0 1px 0 0 rgba(73,76,106,.5),0 -4px 8px 0 rgba(0,0,0,.2);--docsearch-logo-color:#fff;--docsearch-muted-color:#7f8497}.DocSearch-Button{align-items:center;background:var(--docsearch-searchbox-background);border:0;border-radius:40px;color:var(--docsearch-muted-color);cursor:pointer;display:flex;font-weight:500;height:36px;justify-content:space-between;margin:0 0 0 16px;padding:0 8px;-webkit-user-select:none;user-select:none}.DocSearch-Button:active,.DocSearch-Button:focus,.DocSearch-Button:hover{background:var(--docsearch-searchbox-focus-background);box-shadow:var(--docsearch-searchbox-shadow);color:var(--docsearch-text-color);outline:none}.DocSearch-Button-Container{align-items:center;display:flex}.DocSearch-Search-Icon{stroke-width:1.6}.DocSearch-Button .DocSearch-Search-Icon{color:var(--docsearch-text-color)}.DocSearch-Button-Placeholder{font-size:1rem;padding:0 12px 0 6px}.DocSearch-Button-Keys{display:flex;min-width:calc(40px + .8em)}.DocSearch-Button-Key{align-items:center;background:var(--docsearch-key-gradient);border-radius:3px;box-shadow:var(--docsearch-key-shadow);color:var(--docsearch-muted-color);display:flex;height:18px;justify-content:center;margin-right:.4em;position:relative;padding:0 0 2px;border:0;top:-1px;width:20px}.DocSearch-Button-Key--pressed{transform:translate3d(0,1px,0);box-shadow:var(--docsearch-key-pressed-shadow)}@media (max-width:768px){.DocSearch-Button-Keys,.DocSearch-Button-Placeholder{display:none}}.DocSearch--active{overflow:hidden!important}.DocSearch-Container,.DocSearch-Container *{box-sizing:border-box}.DocSearch-Container{background-color:var(--docsearch-container-background);height:100vh;left:0;position:fixed;top:0;width:100vw;z-index:200}.DocSearch-Container a{text-decoration:none}.DocSearch-Link{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;color:var(--docsearch-highlight-color);cursor:pointer;font:inherit;margin:0;padding:0}.DocSearch-Modal{background:var(--docsearch-modal-background);border-radius:6px;box-shadow:var(--docsearch-modal-shadow);flex-direction:column;margin:60px auto auto;max-width:var(--docsearch-modal-width);position:relative}.DocSearch-SearchBar{display:flex;padding:var(--docsearch-spacing) var(--docsearch-spacing) 0}.DocSearch-Form{align-items:center;background:var(--docsearch-searchbox-focus-background);border-radius:4px;box-shadow:var(--docsearch-searchbox-shadow);display:flex;height:var(--docsearch-searchbox-height);margin:0;padding:0 var(--docsearch-spacing);position:relative;width:100%}.DocSearch-Input{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:0;color:var(--docsearch-text-color);flex:1;font:inherit;font-size:1.2em;height:100%;outline:none;padding:0 0 0 8px;width:80%}.DocSearch-Input::placeholder{color:var(--docsearch-muted-color);opacity:1}.DocSearch-Input::-webkit-search-cancel-button,.DocSearch-Input::-webkit-search-decoration,.DocSearch-Input::-webkit-search-results-button,.DocSearch-Input::-webkit-search-results-decoration{display:none}.DocSearch-LoadingIndicator,.DocSearch-MagnifierLabel,.DocSearch-Reset{margin:0;padding:0}.DocSearch-MagnifierLabel,.DocSearch-Reset{align-items:center;color:var(--docsearch-highlight-color);display:flex;justify-content:center}.DocSearch-Container--Stalled .DocSearch-MagnifierLabel,.DocSearch-LoadingIndicator{display:none}.DocSearch-Container--Stalled .DocSearch-LoadingIndicator{align-items:center;color:var(--docsearch-highlight-color);display:flex;justify-content:center}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Reset{animation:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;border-radius:50%;color:var(--docsearch-icon-color);cursor:pointer;right:0;stroke-width:var(--docsearch-icon-stroke-width)}}.DocSearch-Reset{animation:fade-in .1s ease-in forwards;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;border-radius:50%;color:var(--docsearch-icon-color);cursor:pointer;padding:2px;right:0;stroke-width:var(--docsearch-icon-stroke-width)}.DocSearch-Reset[hidden]{display:none}.DocSearch-Reset:hover{color:var(--docsearch-highlight-color)}.DocSearch-LoadingIndicator svg,.DocSearch-MagnifierLabel svg{height:24px;width:24px}.DocSearch-Cancel{display:none}.DocSearch-Dropdown{max-height:calc(var(--docsearch-modal-height) - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height));min-height:var(--docsearch-spacing);overflow-y:auto;overflow-y:overlay;padding:0 var(--docsearch-spacing);scrollbar-color:var(--docsearch-muted-color) var(--docsearch-modal-background);scrollbar-width:thin}.DocSearch-Dropdown::-webkit-scrollbar{width:12px}.DocSearch-Dropdown::-webkit-scrollbar-track{background:transparent}.DocSearch-Dropdown::-webkit-scrollbar-thumb{background-color:var(--docsearch-muted-color);border:3px solid var(--docsearch-modal-background);border-radius:20px}.DocSearch-Dropdown ul{list-style:none;margin:0;padding:0}.DocSearch-Label{font-size:.75em;line-height:1.6em}.DocSearch-Help,.DocSearch-Label{color:var(--docsearch-muted-color)}.DocSearch-Help{font-size:.9em;margin:0;-webkit-user-select:none;user-select:none}.DocSearch-Title{font-size:1.2em}.DocSearch-Logo a{display:flex}.DocSearch-Logo svg{color:var(--docsearch-logo-color);margin-left:8px}.DocSearch-Hits:last-of-type{margin-bottom:24px}.DocSearch-Hits mark{background:none;color:var(--docsearch-highlight-color)}.DocSearch-HitsFooter{color:var(--docsearch-muted-color);display:flex;font-size:.85em;justify-content:center;margin-bottom:var(--docsearch-spacing);padding:var(--docsearch-spacing)}.DocSearch-HitsFooter a{border-bottom:1px solid;color:inherit}.DocSearch-Hit{border-radius:4px;display:flex;padding-bottom:4px;position:relative}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit--deleting{transition:none}}.DocSearch-Hit--deleting{opacity:0;transition:all .25s linear}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit--favoriting{transition:none}}.DocSearch-Hit--favoriting{transform:scale(0);transform-origin:top center;transition:all .25s linear;transition-delay:.25s}.DocSearch-Hit a{background:var(--docsearch-hit-background);border-radius:4px;box-shadow:var(--docsearch-hit-shadow);display:block;padding-left:var(--docsearch-spacing);width:100%}.DocSearch-Hit-source{background:var(--docsearch-modal-background);color:var(--docsearch-highlight-color);font-size:.85em;font-weight:600;line-height:32px;margin:0 -4px;padding:8px 4px 0;position:sticky;top:0;z-index:10}.DocSearch-Hit-Tree{color:var(--docsearch-muted-color);height:var(--docsearch-hit-height);opacity:.5;stroke-width:var(--docsearch-icon-stroke-width);width:24px}.DocSearch-Hit[aria-selected=true] a{background-color:var(--docsearch-highlight-color)}.DocSearch-Hit[aria-selected=true] mark{text-decoration:underline}.DocSearch-Hit-Container{align-items:center;color:var(--docsearch-hit-color);display:flex;flex-direction:row;height:var(--docsearch-hit-height);padding:0 var(--docsearch-spacing) 0 0}.DocSearch-Hit-icon{height:20px;width:20px}.DocSearch-Hit-action,.DocSearch-Hit-icon{color:var(--docsearch-muted-color);stroke-width:var(--docsearch-icon-stroke-width)}.DocSearch-Hit-action{align-items:center;display:flex;height:22px;width:22px}.DocSearch-Hit-action svg{display:block;height:18px;width:18px}.DocSearch-Hit-action+.DocSearch-Hit-action{margin-left:6px}.DocSearch-Hit-action-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;border-radius:50%;color:inherit;cursor:pointer;padding:2px}svg.DocSearch-Hit-Select-Icon{display:none}.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Select-Icon{display:block}.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{background:#0003;transition:background-color .1s ease-in}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{transition:none}}.DocSearch-Hit-action-button:focus path,.DocSearch-Hit-action-button:hover path{fill:#fff}.DocSearch-Hit-content-wrapper{display:flex;flex:1 1 auto;flex-direction:column;font-weight:500;justify-content:center;line-height:1.2em;margin:0 8px;overflow-x:hidden;position:relative;text-overflow:ellipsis;white-space:nowrap;width:80%}.DocSearch-Hit-title{font-size:.9em}.DocSearch-Hit-path{color:var(--docsearch-muted-color);font-size:.75em}.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-action,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-icon,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-path,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-text,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-title,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Tree,.DocSearch-Hit[aria-selected=true] mark{color:var(--docsearch-hit-active-color)!important}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{background:#0003;transition:none}}.DocSearch-ErrorScreen,.DocSearch-NoResults,.DocSearch-StartScreen{font-size:.9em;margin:0 auto;padding:36px 0;text-align:center;width:80%}.DocSearch-Screen-Icon{color:var(--docsearch-muted-color);padding-bottom:12px}.DocSearch-NoResults-Prefill-List{display:inline-block;padding-bottom:24px;text-align:left}.DocSearch-NoResults-Prefill-List ul{display:inline-block;padding:8px 0 0}.DocSearch-NoResults-Prefill-List li{list-style-position:inside;list-style-type:"» "}.DocSearch-Prefill{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;border-radius:1em;color:var(--docsearch-highlight-color);cursor:pointer;display:inline-block;font-size:1em;font-weight:700;padding:0}.DocSearch-Prefill:focus,.DocSearch-Prefill:hover{outline:none;text-decoration:underline}.DocSearch-Footer{align-items:center;background:var(--docsearch-footer-background);border-radius:0 0 8px 8px;box-shadow:var(--docsearch-footer-shadow);display:flex;flex-direction:row-reverse;flex-shrink:0;height:var(--docsearch-footer-height);justify-content:space-between;padding:0 var(--docsearch-spacing);position:relative;-webkit-user-select:none;user-select:none;width:100%;z-index:300}.DocSearch-Commands{color:var(--docsearch-muted-color);display:flex;list-style:none;margin:0;padding:0}.DocSearch-Commands li{align-items:center;display:flex}.DocSearch-Commands li:not(:last-of-type){margin-right:.8em}.DocSearch-Commands-Key{align-items:center;background:var(--docsearch-key-gradient);border-radius:2px;box-shadow:var(--docsearch-key-shadow);display:flex;height:18px;justify-content:center;margin-right:.4em;padding:0 0 1px;color:var(--docsearch-muted-color);border:0;width:20px}.DocSearch-VisuallyHiddenForAccessibility{clip:rect(0 0 0 0);clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}@media (max-width:768px){:root{--docsearch-spacing:10px;--docsearch-footer-height:40px}.DocSearch-Dropdown{height:100%}.DocSearch-Container{height:100vh;height:-webkit-fill-available;height:calc(var(--docsearch-vh, 1vh)*100);position:absolute}.DocSearch-Footer{border-radius:0;bottom:0;position:absolute}.DocSearch-Hit-content-wrapper{display:flex;position:relative;width:80%}.DocSearch-Modal{border-radius:0;box-shadow:none;height:100vh;height:-webkit-fill-available;height:calc(var(--docsearch-vh, 1vh)*100);margin:0;max-width:100%;width:100%}.DocSearch-Dropdown{max-height:calc(var(--docsearch-vh, 1vh)*100 - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height))}.DocSearch-Cancel{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;color:var(--docsearch-highlight-color);cursor:pointer;display:inline-block;flex:none;font:inherit;font-size:1em;font-weight:500;margin-left:var(--docsearch-spacing);outline:none;overflow:hidden;padding:0;-webkit-user-select:none;user-select:none;white-space:nowrap}.DocSearch-Commands,.DocSearch-Hit-Tree{display:none}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}[class*=DocSearch]{--docsearch-primary-color: var(--vp-c-brand-1);--docsearch-highlight-color: var(--docsearch-primary-color);--docsearch-text-color: var(--vp-c-text-1);--docsearch-muted-color: var(--vp-c-text-2);--docsearch-searchbox-shadow: none;--docsearch-searchbox-background: transparent;--docsearch-searchbox-focus-background: transparent;--docsearch-key-gradient: transparent;--docsearch-key-shadow: none;--docsearch-modal-background: var(--vp-c-bg-soft);--docsearch-footer-background: var(--vp-c-bg)}.dark [class*=DocSearch]{--docsearch-modal-shadow: none;--docsearch-footer-shadow: none;--docsearch-logo-color: var(--vp-c-text-2);--docsearch-hit-background: var(--vp-c-default-soft);--docsearch-hit-color: var(--vp-c-text-2);--docsearch-hit-shadow: none}.DocSearch-Button{display:flex;justify-content:center;align-items:center;margin:0;padding:0;width:48px;height:55px;background:transparent;transition:border-color .25s}.DocSearch-Button:hover{background:transparent}.DocSearch-Button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}.DocSearch-Button-Key--pressed{transform:none;box-shadow:none}.DocSearch-Button:focus:not(:focus-visible){outline:none!important}@media (min-width: 768px){.DocSearch-Button{justify-content:flex-start;border:1px solid transparent;border-radius:8px;padding:0 10px 0 12px;width:100%;height:40px;background-color:var(--vp-c-bg-alt)}.DocSearch-Button:hover{border-color:var(--vp-c-brand-1);background:var(--vp-c-bg-alt)}}.DocSearch-Button .DocSearch-Button-Container{display:flex;align-items:center}.DocSearch-Button .DocSearch-Search-Icon{position:relative;width:16px;height:16px;color:var(--vp-c-text-1);fill:currentColor;transition:color .5s}.DocSearch-Button:hover .DocSearch-Search-Icon{color:var(--vp-c-text-1)}@media (min-width: 768px){.DocSearch-Button .DocSearch-Search-Icon{top:1px;margin-right:8px;width:14px;height:14px;color:var(--vp-c-text-2)}}.DocSearch-Button .DocSearch-Button-Placeholder{display:none;margin-top:2px;padding:0 16px 0 0;font-size:13px;font-weight:500;color:var(--vp-c-text-2);transition:color .5s}.DocSearch-Button:hover .DocSearch-Button-Placeholder{color:var(--vp-c-text-1)}@media (min-width: 768px){.DocSearch-Button .DocSearch-Button-Placeholder{display:inline-block}}.DocSearch-Button .DocSearch-Button-Keys{direction:ltr;display:none;min-width:auto}@media (min-width: 768px){.DocSearch-Button .DocSearch-Button-Keys{display:flex;align-items:center}}.DocSearch-Button .DocSearch-Button-Key{display:block;margin:2px 0 0;border:1px solid var(--vp-c-divider);border-right:none;border-radius:4px 0 0 4px;padding-left:6px;min-width:0;width:auto;height:22px;line-height:22px;font-family:var(--vp-font-family-base);font-size:12px;font-weight:500;transition:color .5s,border-color .5s}.DocSearch-Button .DocSearch-Button-Key+.DocSearch-Button-Key{border-right:1px solid var(--vp-c-divider);border-left:none;border-radius:0 4px 4px 0;padding-left:2px;padding-right:6px}.DocSearch-Button .DocSearch-Button-Key:first-child{font-size:0!important}.DocSearch-Button .DocSearch-Button-Key:first-child:after{content:"Ctrl";font-size:12px;letter-spacing:normal;color:var(--docsearch-muted-color)}.mac .DocSearch-Button .DocSearch-Button-Key:first-child:after{content:"⌘"}.DocSearch-Button .DocSearch-Button-Key:first-child>*{display:none}.DocSearch-Search-Icon{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' stroke-width='1.6' viewBox='0 0 20 20'%3E%3Cpath fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' d='m14.386 14.386 4.088 4.088-4.088-4.088A7.533 7.533 0 1 1 3.733 3.733a7.533 7.533 0 0 1 10.653 10.653z'/%3E%3C/svg%3E")}.VPNavBarSearch{display:flex;align-items:center}@media (min-width: 768px){.VPNavBarSearch{flex-grow:1;padding-left:24px}}@media (min-width: 960px){.VPNavBarSearch{padding-left:32px}}.dark .DocSearch-Footer{border-top:1px solid var(--vp-c-divider)}.DocSearch-Form{border:1px solid var(--vp-c-brand-1);background-color:var(--vp-c-white)}.dark .DocSearch-Form{background-color:var(--vp-c-default-soft)}.DocSearch-Screen-Icon>svg{margin:auto}.VPNavBarSocialLinks[data-v-0394ad82]{display:none}@media (min-width: 1280px){.VPNavBarSocialLinks[data-v-0394ad82]{display:flex;align-items:center}}.title[data-v-ab179fa1]{display:flex;align-items:center;border-bottom:1px solid transparent;width:100%;height:var(--vp-nav-height);font-size:16px;font-weight:600;color:var(--vp-c-text-1);transition:opacity .25s}@media (min-width: 960px){.title[data-v-ab179fa1]{flex-shrink:0}.VPNavBarTitle.has-sidebar .title[data-v-ab179fa1]{border-bottom-color:var(--vp-c-divider)}}[data-v-ab179fa1] .logo{margin-right:8px;height:var(--vp-nav-logo-height)}.VPNavBarTranslations[data-v-88af2de4]{display:none}@media (min-width: 1280px){.VPNavBarTranslations[data-v-88af2de4]{display:flex;align-items:center}}.title[data-v-88af2de4]{padding:0 24px 0 12px;line-height:32px;font-size:14px;font-weight:700;color:var(--vp-c-text-1)}.VPNavBar[data-v-ccf7ddec]{position:relative;height:var(--vp-nav-height);pointer-events:none;white-space:nowrap;transition:background-color .5s}.VPNavBar[data-v-ccf7ddec]:not(.home){background-color:var(--vp-nav-bg-color)}@media (min-width: 960px){.VPNavBar[data-v-ccf7ddec]:not(.home){background-color:transparent}.VPNavBar[data-v-ccf7ddec]:not(.has-sidebar):not(.home.top){background-color:var(--vp-nav-bg-color)}}.wrapper[data-v-ccf7ddec]{padding:0 8px 0 24px}@media (min-width: 768px){.wrapper[data-v-ccf7ddec]{padding:0 32px}}@media (min-width: 960px){.VPNavBar.has-sidebar .wrapper[data-v-ccf7ddec]{padding:0}}.container[data-v-ccf7ddec]{display:flex;justify-content:space-between;margin:0 auto;max-width:calc(var(--vp-layout-max-width) - 64px);height:var(--vp-nav-height);pointer-events:none}.container>.title[data-v-ccf7ddec],.container>.content[data-v-ccf7ddec]{pointer-events:none}.container[data-v-ccf7ddec] *{pointer-events:auto}@media (min-width: 960px){.VPNavBar.has-sidebar .container[data-v-ccf7ddec]{max-width:100%}}.title[data-v-ccf7ddec]{flex-shrink:0;height:calc(var(--vp-nav-height) - 1px);transition:background-color .5s}@media (min-width: 960px){.VPNavBar.has-sidebar .title[data-v-ccf7ddec]{position:absolute;top:0;left:0;z-index:2;padding:0 32px;width:var(--vp-sidebar-width);height:var(--vp-nav-height);background-color:transparent}}@media (min-width: 1440px){.VPNavBar.has-sidebar .title[data-v-ccf7ddec]{padding-left:max(32px,calc((100% - (var(--vp-layout-max-width) - 64px)) / 2));width:calc((100% - (var(--vp-layout-max-width) - 64px)) / 2 + var(--vp-sidebar-width) - 32px)}}.content[data-v-ccf7ddec]{flex-grow:1}@media (min-width: 960px){.VPNavBar.has-sidebar .content[data-v-ccf7ddec]{position:relative;z-index:1;padding-right:32px;padding-left:var(--vp-sidebar-width)}}@media (min-width: 1440px){.VPNavBar.has-sidebar .content[data-v-ccf7ddec]{padding-right:calc((100vw - var(--vp-layout-max-width)) / 2 + 32px);padding-left:calc((100vw - var(--vp-layout-max-width)) / 2 + var(--vp-sidebar-width))}}.content-body[data-v-ccf7ddec]{display:flex;justify-content:flex-end;align-items:center;height:var(--vp-nav-height);transition:background-color .5s}@media (min-width: 960px){.VPNavBar:not(.home.top) .content-body[data-v-ccf7ddec]{position:relative;background-color:var(--vp-nav-bg-color)}.VPNavBar:not(.has-sidebar):not(.home.top) .content-body[data-v-ccf7ddec]{background-color:transparent}}@media (max-width: 767px){.content-body[data-v-ccf7ddec]{column-gap:.5rem}}.menu+.translations[data-v-ccf7ddec]:before,.menu+.appearance[data-v-ccf7ddec]:before,.menu+.social-links[data-v-ccf7ddec]:before,.translations+.appearance[data-v-ccf7ddec]:before,.appearance+.social-links[data-v-ccf7ddec]:before{margin-right:8px;margin-left:8px;width:1px;height:24px;background-color:var(--vp-c-divider);content:""}.menu+.appearance[data-v-ccf7ddec]:before,.translations+.appearance[data-v-ccf7ddec]:before{margin-right:16px}.appearance+.social-links[data-v-ccf7ddec]:before{margin-left:16px}.social-links[data-v-ccf7ddec]{margin-right:-8px}.divider[data-v-ccf7ddec]{width:100%;height:1px}@media (min-width: 960px){.VPNavBar.has-sidebar .divider[data-v-ccf7ddec]{padding-left:var(--vp-sidebar-width)}}@media (min-width: 1440px){.VPNavBar.has-sidebar .divider[data-v-ccf7ddec]{padding-left:calc((100vw - var(--vp-layout-max-width)) / 2 + var(--vp-sidebar-width))}}.divider-line[data-v-ccf7ddec]{width:100%;height:1px;transition:background-color .5s}.VPNavBar:not(.home) .divider-line[data-v-ccf7ddec]{background-color:var(--vp-c-gutter)}@media (min-width: 960px){.VPNavBar:not(.home.top) .divider-line[data-v-ccf7ddec]{background-color:var(--vp-c-gutter)}.VPNavBar:not(.has-sidebar):not(.home.top) .divider[data-v-ccf7ddec]{background-color:var(--vp-c-gutter)}}.VPNavScreenAppearance[data-v-2d7af913]{display:flex;justify-content:space-between;align-items:center;border-radius:8px;padding:12px 14px 12px 16px;background-color:var(--vp-c-bg-soft)}.text[data-v-2d7af913]{line-height:24px;font-size:12px;font-weight:500;color:var(--vp-c-text-2)}.VPNavScreenMenuLink[data-v-7f31e1f6]{display:block;border-bottom:1px solid var(--vp-c-divider);padding:12px 0 11px;line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:border-color .25s,color .25s}.VPNavScreenMenuLink[data-v-7f31e1f6]:hover{color:var(--vp-c-brand-1)}.VPNavScreenMenuGroupLink[data-v-19976ae1]{display:block;margin-left:12px;line-height:32px;font-size:14px;font-weight:400;color:var(--vp-c-text-1);transition:color .25s}.VPNavScreenMenuGroupLink[data-v-19976ae1]:hover{color:var(--vp-c-brand-1)}.VPNavScreenMenuGroupSection[data-v-8133b170]{display:block}.title[data-v-8133b170]{line-height:32px;font-size:13px;font-weight:700;color:var(--vp-c-text-2);transition:color .25s}.VPNavScreenMenuGroup[data-v-ff6087d4]{border-bottom:1px solid var(--vp-c-divider);height:48px;overflow:hidden;transition:border-color .5s}.VPNavScreenMenuGroup .items[data-v-ff6087d4]{visibility:hidden}.VPNavScreenMenuGroup.open .items[data-v-ff6087d4]{visibility:visible}.VPNavScreenMenuGroup.open[data-v-ff6087d4]{padding-bottom:10px;height:auto}.VPNavScreenMenuGroup.open .button[data-v-ff6087d4]{padding-bottom:6px;color:var(--vp-c-brand-1)}.VPNavScreenMenuGroup.open .button-icon[data-v-ff6087d4]{transform:rotate(45deg)}.button[data-v-ff6087d4]{display:flex;justify-content:space-between;align-items:center;padding:12px 4px 11px 0;width:100%;line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:color .25s}.button[data-v-ff6087d4]:hover{color:var(--vp-c-brand-1)}.button-icon[data-v-ff6087d4]{transition:transform .25s}.group[data-v-ff6087d4]:first-child{padding-top:0}.group+.group[data-v-ff6087d4],.group+.item[data-v-ff6087d4]{padding-top:4px}.VPNavScreenTranslations[data-v-858fe1a4]{height:24px;overflow:hidden}.VPNavScreenTranslations.open[data-v-858fe1a4]{height:auto}.title[data-v-858fe1a4]{display:flex;align-items:center;font-size:14px;font-weight:500;color:var(--vp-c-text-1)}.icon[data-v-858fe1a4]{font-size:16px}.icon.lang[data-v-858fe1a4]{margin-right:8px}.icon.chevron[data-v-858fe1a4]{margin-left:4px}.list[data-v-858fe1a4]{padding:4px 0 0 24px}.link[data-v-858fe1a4]{line-height:32px;font-size:13px;color:var(--vp-c-text-1)}.VPNavScreen[data-v-cc5739dd]{position:fixed;top:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 1px);right:0;bottom:0;left:0;padding:0 32px;width:100%;background-color:var(--vp-nav-screen-bg-color);overflow-y:auto;transition:background-color .5s;pointer-events:auto}.VPNavScreen.fade-enter-active[data-v-cc5739dd],.VPNavScreen.fade-leave-active[data-v-cc5739dd]{transition:opacity .25s}.VPNavScreen.fade-enter-active .container[data-v-cc5739dd],.VPNavScreen.fade-leave-active .container[data-v-cc5739dd]{transition:transform .25s ease}.VPNavScreen.fade-enter-from[data-v-cc5739dd],.VPNavScreen.fade-leave-to[data-v-cc5739dd]{opacity:0}.VPNavScreen.fade-enter-from .container[data-v-cc5739dd],.VPNavScreen.fade-leave-to .container[data-v-cc5739dd]{transform:translateY(-8px)}@media (min-width: 768px){.VPNavScreen[data-v-cc5739dd]{display:none}}.container[data-v-cc5739dd]{margin:0 auto;padding:24px 0 96px;max-width:288px}.menu+.translations[data-v-cc5739dd],.menu+.appearance[data-v-cc5739dd],.translations+.appearance[data-v-cc5739dd]{margin-top:24px}.menu+.social-links[data-v-cc5739dd]{margin-top:16px}.appearance+.social-links[data-v-cc5739dd]{margin-top:16px}.VPNav[data-v-ae24b3ad]{position:relative;top:var(--vp-layout-top-height, 0px);left:0;z-index:var(--vp-z-index-nav);width:100%;pointer-events:none;transition:background-color .5s}@media (min-width: 960px){.VPNav[data-v-ae24b3ad]{position:fixed}}.VPSidebarItem.level-0[data-v-b8d55f3b]{padding-bottom:24px}.VPSidebarItem.collapsed.level-0[data-v-b8d55f3b]{padding-bottom:10px}.item[data-v-b8d55f3b]{position:relative;display:flex;width:100%}.VPSidebarItem.collapsible>.item[data-v-b8d55f3b]{cursor:pointer}.indicator[data-v-b8d55f3b]{position:absolute;top:6px;bottom:6px;left:-17px;width:2px;border-radius:2px;transition:background-color .25s}.VPSidebarItem.level-2.is-active>.item>.indicator[data-v-b8d55f3b],.VPSidebarItem.level-3.is-active>.item>.indicator[data-v-b8d55f3b],.VPSidebarItem.level-4.is-active>.item>.indicator[data-v-b8d55f3b],.VPSidebarItem.level-5.is-active>.item>.indicator[data-v-b8d55f3b]{background-color:var(--vp-c-brand-1)}.link[data-v-b8d55f3b]{display:flex;align-items:center;flex-grow:1}.text[data-v-b8d55f3b]{flex-grow:1;padding:4px 0;line-height:24px;font-size:14px;transition:color .25s}.VPSidebarItem.level-0 .text[data-v-b8d55f3b]{font-weight:700;color:var(--vp-c-text-1)}.VPSidebarItem.level-1 .text[data-v-b8d55f3b],.VPSidebarItem.level-2 .text[data-v-b8d55f3b],.VPSidebarItem.level-3 .text[data-v-b8d55f3b],.VPSidebarItem.level-4 .text[data-v-b8d55f3b],.VPSidebarItem.level-5 .text[data-v-b8d55f3b]{font-weight:500;color:var(--vp-c-text-2)}.VPSidebarItem.level-0.is-link>.item>.link:hover .text[data-v-b8d55f3b],.VPSidebarItem.level-1.is-link>.item>.link:hover .text[data-v-b8d55f3b],.VPSidebarItem.level-2.is-link>.item>.link:hover .text[data-v-b8d55f3b],.VPSidebarItem.level-3.is-link>.item>.link:hover .text[data-v-b8d55f3b],.VPSidebarItem.level-4.is-link>.item>.link:hover .text[data-v-b8d55f3b],.VPSidebarItem.level-5.is-link>.item>.link:hover .text[data-v-b8d55f3b]{color:var(--vp-c-brand-1)}.VPSidebarItem.level-0.has-active>.item>.text[data-v-b8d55f3b],.VPSidebarItem.level-1.has-active>.item>.text[data-v-b8d55f3b],.VPSidebarItem.level-2.has-active>.item>.text[data-v-b8d55f3b],.VPSidebarItem.level-3.has-active>.item>.text[data-v-b8d55f3b],.VPSidebarItem.level-4.has-active>.item>.text[data-v-b8d55f3b],.VPSidebarItem.level-5.has-active>.item>.text[data-v-b8d55f3b],.VPSidebarItem.level-0.has-active>.item>.link>.text[data-v-b8d55f3b],.VPSidebarItem.level-1.has-active>.item>.link>.text[data-v-b8d55f3b],.VPSidebarItem.level-2.has-active>.item>.link>.text[data-v-b8d55f3b],.VPSidebarItem.level-3.has-active>.item>.link>.text[data-v-b8d55f3b],.VPSidebarItem.level-4.has-active>.item>.link>.text[data-v-b8d55f3b],.VPSidebarItem.level-5.has-active>.item>.link>.text[data-v-b8d55f3b]{color:var(--vp-c-text-1)}.VPSidebarItem.level-0.is-active>.item .link>.text[data-v-b8d55f3b],.VPSidebarItem.level-1.is-active>.item .link>.text[data-v-b8d55f3b],.VPSidebarItem.level-2.is-active>.item .link>.text[data-v-b8d55f3b],.VPSidebarItem.level-3.is-active>.item .link>.text[data-v-b8d55f3b],.VPSidebarItem.level-4.is-active>.item .link>.text[data-v-b8d55f3b],.VPSidebarItem.level-5.is-active>.item .link>.text[data-v-b8d55f3b]{color:var(--vp-c-brand-1)}.caret[data-v-b8d55f3b]{display:flex;justify-content:center;align-items:center;margin-right:-7px;width:32px;height:32px;color:var(--vp-c-text-3);cursor:pointer;transition:color .25s;flex-shrink:0}.item:hover .caret[data-v-b8d55f3b]{color:var(--vp-c-text-2)}.item:hover .caret[data-v-b8d55f3b]:hover{color:var(--vp-c-text-1)}.caret-icon[data-v-b8d55f3b]{font-size:18px;transform:rotate(90deg);transition:transform .25s}.VPSidebarItem.collapsed .caret-icon[data-v-b8d55f3b]{transform:rotate(0)}.VPSidebarItem.level-1 .items[data-v-b8d55f3b],.VPSidebarItem.level-2 .items[data-v-b8d55f3b],.VPSidebarItem.level-3 .items[data-v-b8d55f3b],.VPSidebarItem.level-4 .items[data-v-b8d55f3b],.VPSidebarItem.level-5 .items[data-v-b8d55f3b]{border-left:1px solid var(--vp-c-divider);padding-left:16px}.VPSidebarItem.collapsed .items[data-v-b8d55f3b]{display:none}.VPSidebar[data-v-575e6a36]{position:fixed;top:var(--vp-layout-top-height, 0px);bottom:0;left:0;z-index:var(--vp-z-index-sidebar);padding:32px 32px 96px;width:calc(100vw - 64px);max-width:320px;background-color:var(--vp-sidebar-bg-color);opacity:0;box-shadow:var(--vp-c-shadow-3);overflow-x:hidden;overflow-y:auto;transform:translate(-100%);transition:opacity .5s,transform .25s ease;overscroll-behavior:contain}.VPSidebar.open[data-v-575e6a36]{opacity:1;visibility:visible;transform:translate(0);transition:opacity .25s,transform .5s cubic-bezier(.19,1,.22,1)}.dark .VPSidebar[data-v-575e6a36]{box-shadow:var(--vp-shadow-1)}@media (min-width: 960px){.VPSidebar[data-v-575e6a36]{padding-top:var(--vp-nav-height);width:var(--vp-sidebar-width);max-width:100%;background-color:var(--vp-sidebar-bg-color);opacity:1;visibility:visible;box-shadow:none;transform:translate(0)}}@media (min-width: 1440px){.VPSidebar[data-v-575e6a36]{padding-left:max(32px,calc((100% - (var(--vp-layout-max-width) - 64px)) / 2));width:calc((100% - (var(--vp-layout-max-width) - 64px)) / 2 + var(--vp-sidebar-width) - 32px)}}@media (min-width: 960px){.curtain[data-v-575e6a36]{position:sticky;top:-64px;left:0;z-index:1;margin-top:calc(var(--vp-nav-height) * -1);margin-right:-32px;margin-left:-32px;height:var(--vp-nav-height);background-color:var(--vp-sidebar-bg-color)}}.nav[data-v-575e6a36]{outline:0}.group+.group[data-v-575e6a36]{border-top:1px solid var(--vp-c-divider);padding-top:10px}@media (min-width: 960px){.group[data-v-575e6a36]{padding-top:10px;width:calc(var(--vp-sidebar-width) - 64px)}}.VPSkipLink[data-v-0f60ec36]{top:8px;left:8px;padding:8px 16px;z-index:999;border-radius:8px;font-size:12px;font-weight:700;text-decoration:none;color:var(--vp-c-brand-1);box-shadow:var(--vp-shadow-3);background-color:var(--vp-c-bg)}.VPSkipLink[data-v-0f60ec36]:focus{height:auto;width:auto;clip:auto;clip-path:none}@media (min-width: 1280px){.VPSkipLink[data-v-0f60ec36]{top:14px;left:16px}}.Layout[data-v-5d98c3a5]{display:flex;flex-direction:column;min-height:100vh}.VPHomeSponsors[data-v-3d121b4a]{border-top:1px solid var(--vp-c-gutter);padding-top:88px!important}.VPHomeSponsors[data-v-3d121b4a]{margin:96px 0}@media (min-width: 768px){.VPHomeSponsors[data-v-3d121b4a]{margin:128px 0}}.VPHomeSponsors[data-v-3d121b4a]{padding:0 24px}@media (min-width: 768px){.VPHomeSponsors[data-v-3d121b4a]{padding:0 48px}}@media (min-width: 960px){.VPHomeSponsors[data-v-3d121b4a]{padding:0 64px}}.container[data-v-3d121b4a]{margin:0 auto;max-width:1152px}.love[data-v-3d121b4a]{margin:0 auto;width:fit-content;font-size:28px;color:var(--vp-c-text-3)}.icon[data-v-3d121b4a]{display:inline-block}.message[data-v-3d121b4a]{margin:0 auto;padding-top:10px;max-width:320px;text-align:center;line-height:24px;font-size:16px;font-weight:500;color:var(--vp-c-text-2)}.sponsors[data-v-3d121b4a]{padding-top:32px}.action[data-v-3d121b4a]{padding-top:40px;text-align:center}.VPTeamPage[data-v-7c57f839]{margin:96px 0}@media (min-width: 768px){.VPTeamPage[data-v-7c57f839]{margin:128px 0}}.VPHome .VPTeamPageTitle[data-v-7c57f839-s]{border-top:1px solid var(--vp-c-gutter);padding-top:88px!important}.VPTeamPageSection+.VPTeamPageSection[data-v-7c57f839-s],.VPTeamMembers+.VPTeamPageSection[data-v-7c57f839-s]{margin-top:64px}.VPTeamMembers+.VPTeamMembers[data-v-7c57f839-s]{margin-top:24px}@media (min-width: 768px){.VPTeamPageTitle+.VPTeamPageSection[data-v-7c57f839-s]{margin-top:16px}.VPTeamPageSection+.VPTeamPageSection[data-v-7c57f839-s],.VPTeamMembers+.VPTeamPageSection[data-v-7c57f839-s]{margin-top:96px}}.VPTeamMembers[data-v-7c57f839-s]{padding:0 24px}@media (min-width: 768px){.VPTeamMembers[data-v-7c57f839-s]{padding:0 48px}}@media (min-width: 960px){.VPTeamMembers[data-v-7c57f839-s]{padding:0 64px}}.VPTeamPageTitle[data-v-bf2cbdac]{padding:48px 32px;text-align:center}@media (min-width: 768px){.VPTeamPageTitle[data-v-bf2cbdac]{padding:64px 48px 48px}}@media (min-width: 960px){.VPTeamPageTitle[data-v-bf2cbdac]{padding:80px 64px 48px}}.title[data-v-bf2cbdac]{letter-spacing:0;line-height:44px;font-size:36px;font-weight:500}@media (min-width: 768px){.title[data-v-bf2cbdac]{letter-spacing:-.5px;line-height:56px;font-size:48px}}.lead[data-v-bf2cbdac]{margin:0 auto;max-width:512px;padding-top:12px;line-height:24px;font-size:16px;font-weight:500;color:var(--vp-c-text-2)}@media (min-width: 768px){.lead[data-v-bf2cbdac]{max-width:592px;letter-spacing:.15px;line-height:28px;font-size:20px}}.VPTeamPageSection[data-v-b1a88750]{padding:0 32px}@media (min-width: 768px){.VPTeamPageSection[data-v-b1a88750]{padding:0 48px}}@media (min-width: 960px){.VPTeamPageSection[data-v-b1a88750]{padding:0 64px}}.title[data-v-b1a88750]{position:relative;margin:0 auto;max-width:1152px;text-align:center;color:var(--vp-c-text-2)}.title-line[data-v-b1a88750]{position:absolute;top:16px;left:0;width:100%;height:1px;background-color:var(--vp-c-divider)}.title-text[data-v-b1a88750]{position:relative;display:inline-block;padding:0 24px;letter-spacing:0;line-height:32px;font-size:20px;font-weight:500;background-color:var(--vp-c-bg)}.lead[data-v-b1a88750]{margin:0 auto;max-width:480px;padding-top:12px;text-align:center;line-height:24px;font-size:16px;font-weight:500;color:var(--vp-c-text-2)}.members[data-v-b1a88750]{padding-top:40px}.VPTeamMembersItem[data-v-f3fa364a]{display:flex;flex-direction:column;gap:2px;border-radius:12px;width:100%;height:100%;overflow:hidden}.VPTeamMembersItem.small .profile[data-v-f3fa364a]{padding:32px}.VPTeamMembersItem.small .data[data-v-f3fa364a]{padding-top:20px}.VPTeamMembersItem.small .avatar[data-v-f3fa364a]{width:64px;height:64px}.VPTeamMembersItem.small .name[data-v-f3fa364a]{line-height:24px;font-size:16px}.VPTeamMembersItem.small .affiliation[data-v-f3fa364a]{padding-top:4px;line-height:20px;font-size:14px}.VPTeamMembersItem.small .desc[data-v-f3fa364a]{padding-top:12px;line-height:20px;font-size:14px}.VPTeamMembersItem.small .links[data-v-f3fa364a]{margin:0 -16px -20px;padding:10px 0 0}.VPTeamMembersItem.medium .profile[data-v-f3fa364a]{padding:48px 32px}.VPTeamMembersItem.medium .data[data-v-f3fa364a]{padding-top:24px;text-align:center}.VPTeamMembersItem.medium .avatar[data-v-f3fa364a]{width:96px;height:96px}.VPTeamMembersItem.medium .name[data-v-f3fa364a]{letter-spacing:.15px;line-height:28px;font-size:20px}.VPTeamMembersItem.medium .affiliation[data-v-f3fa364a]{padding-top:4px;font-size:16px}.VPTeamMembersItem.medium .desc[data-v-f3fa364a]{padding-top:16px;max-width:288px;font-size:16px}.VPTeamMembersItem.medium .links[data-v-f3fa364a]{margin:0 -16px -12px;padding:16px 12px 0}.profile[data-v-f3fa364a]{flex-grow:1;background-color:var(--vp-c-bg-soft)}.data[data-v-f3fa364a]{text-align:center}.avatar[data-v-f3fa364a]{position:relative;flex-shrink:0;margin:0 auto;border-radius:50%;box-shadow:var(--vp-shadow-3)}.avatar-img[data-v-f3fa364a]{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;object-fit:cover}.name[data-v-f3fa364a]{margin:0;font-weight:600}.affiliation[data-v-f3fa364a]{margin:0;font-weight:500;color:var(--vp-c-text-2)}.org.link[data-v-f3fa364a]{color:var(--vp-c-text-2);transition:color .25s}.org.link[data-v-f3fa364a]:hover{color:var(--vp-c-brand-1)}.desc[data-v-f3fa364a]{margin:0 auto}.desc[data-v-f3fa364a] a{font-weight:500;color:var(--vp-c-brand-1);text-decoration-style:dotted;transition:color .25s}.links[data-v-f3fa364a]{display:flex;justify-content:center;height:56px}.sp-link[data-v-f3fa364a]{display:flex;justify-content:center;align-items:center;text-align:center;padding:16px;font-size:14px;font-weight:500;color:var(--vp-c-sponsor);background-color:var(--vp-c-bg-soft);transition:color .25s,background-color .25s}.sp .sp-link.link[data-v-f3fa364a]:hover,.sp .sp-link.link[data-v-f3fa364a]:focus{outline:none;color:var(--vp-c-white);background-color:var(--vp-c-sponsor)}.sp-icon[data-v-f3fa364a]{margin-right:8px;font-size:16px}.VPTeamMembers.small .container[data-v-6cb0dbc4]{grid-template-columns:repeat(auto-fit,minmax(224px,1fr))}.VPTeamMembers.small.count-1 .container[data-v-6cb0dbc4]{max-width:276px}.VPTeamMembers.small.count-2 .container[data-v-6cb0dbc4]{max-width:576px}.VPTeamMembers.small.count-3 .container[data-v-6cb0dbc4]{max-width:876px}.VPTeamMembers.medium .container[data-v-6cb0dbc4]{grid-template-columns:repeat(auto-fit,minmax(256px,1fr))}@media (min-width: 375px){.VPTeamMembers.medium .container[data-v-6cb0dbc4]{grid-template-columns:repeat(auto-fit,minmax(288px,1fr))}}.VPTeamMembers.medium.count-1 .container[data-v-6cb0dbc4]{max-width:368px}.VPTeamMembers.medium.count-2 .container[data-v-6cb0dbc4]{max-width:760px}.container[data-v-6cb0dbc4]{display:grid;gap:24px;margin:0 auto;max-width:1152px}:root{--color-black: rgba(44, 62, 80, .9);--color-fuchsia-100: hsl(344, 97%, 95%);--color-fuchsia-200: hsl(344, 97%, 90%);--color-fuchsia-300: hsl(344, 97%, 85%);--color-fuchsia-400: hsl(344, 97%, 75%);--color-fuchsia-500: hsl(344, 97%, 64%);--color-fuchsia-600: hsl(344, 97%, 54%);--color-fuchsia-700: hsl(344, 97%, 44%);--color-fuchsia-800: hsl(344, 97%, 34%);--color-fuchsia-900: hsl(344, 97%, 20%);--color-petrol-100: hsl(157, 30%, 95%);--color-petrol-200: hsl(157, 30%, 90%);--color-petrol-300: hsl(157, 30%, 80%);--color-petrol-400: hsl(157, 30%, 70%);--color-petrol-500: hsl(157, 30%, 63%);--color-petrol-600: hsl(157, 30%, 53%);--color-petrol-700: hsl(157, 30%, 40%);--color-petrol-800: hsl(157, 30%, 30%);--color-petrol-900: hsl(157, 30%, 20%);--color-blue-100: hsla(209, 58%, 95%);--color-blue-200: hsla(209, 58%, 80%);--color-blue-300: hsla(209, 58%, 70%);--color-blue-400: hsla(209, 58%, 60%);--color-blue-500: hsla(209, 58%, 50%);--color-blue-600: hsla(209, 58%, 46%);--color-blue-700: hsla(209, 58%, 36%);--color-blue-800: hsla(209, 58%, 30%);--color-blue-900: hsl(209, 59%, 20%);--color-amber: hsl(37, 100%, 55%);--bg: #f3f2eb;--bg-hover: rgba(123, 154, 255, .07);--bg-even: hsla(226, 10%, 50%, .07);--fg: #111;--fg-light: rgba(0, 0, 0, .4);--link: rgba(50, 121, 187, .925);--link-high-contrast: rgba(50, 121, 187, 1);--panel: #fff;--border: 1px solid rgba(182, 182, 182, .424);--border-radius: 5px;--action: var(--link-high-contrast);--success: var(--color-petrol-600);--warning: hsl(37, 100%, 55%);--error: var(--color-fuchsia-500);--bold: 600;--thin: 400;--bold-letter-spacing: .1rem}[data-theme=dark]{--bg: hsl(330, 10%, 23%);--bg-hover: rgba(212, 222, 255, .07);--bg-even: hsla(225, 10%, 62%, .164);--fg: #fff;--fg-light: rgba(255, 255, 250, .5);--link: rgba(50, 121, 187, .925);--link-high-contrast: rgb(104, 176, 243);--panel: hsl(30, 1%, 38%);--border: 1px solid rgba(0, 0, 0, .3);--success: var(--color-petrol-400);--warning: #ffba4c;--error: var(--color-fuchsia-400);--bold: 500;--thin: 300;--bold-letter-spacing: .127rem}[data-theme=dark] .icon-tabler{stroke-width:1.6}:root{--vp-home-hero-name-color: transparent;--vp-home-hero-name-background: -webkit-linear-gradient(120deg, var(--color-blue-400) 30%, var(--color-fuchsia-500))}.VPLocalSearchBox[data-v-639d7ab9]{position:fixed;z-index:100;top:0;right:0;bottom:0;left:0;display:flex}.backdrop[data-v-639d7ab9]{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--vp-backdrop-bg-color);transition:opacity .5s}.shell[data-v-639d7ab9]{position:relative;padding:12px;margin:64px auto;display:flex;flex-direction:column;gap:16px;background:var(--vp-local-search-bg);width:min(100vw - 60px,900px);height:min-content;max-height:min(100vh - 128px,900px);border-radius:6px}@media (max-width: 767px){.shell[data-v-639d7ab9]{margin:0;width:100vw;height:100vh;max-height:none;border-radius:0}}.search-bar[data-v-639d7ab9]{border:1px solid var(--vp-c-divider);border-radius:4px;display:flex;align-items:center;padding:0 12px;cursor:text}@media (max-width: 767px){.search-bar[data-v-639d7ab9]{padding:0 8px}}.search-bar[data-v-639d7ab9]:focus-within{border-color:var(--vp-c-brand-1)}.local-search-icon[data-v-639d7ab9]{display:block;font-size:18px}.navigate-icon[data-v-639d7ab9]{display:block;font-size:14px}.search-icon[data-v-639d7ab9]{margin:8px}@media (max-width: 767px){.search-icon[data-v-639d7ab9]{display:none}}.search-input[data-v-639d7ab9]{padding:6px 12px;font-size:inherit;width:100%}@media (max-width: 767px){.search-input[data-v-639d7ab9]{padding:6px 4px}}.search-actions[data-v-639d7ab9]{display:flex;gap:4px}@media (any-pointer: coarse){.search-actions[data-v-639d7ab9]{gap:8px}}@media (min-width: 769px){.search-actions.before[data-v-639d7ab9]{display:none}}.search-actions button[data-v-639d7ab9]{padding:8px}.search-actions button[data-v-639d7ab9]:not([disabled]):hover,.toggle-layout-button.detailed-list[data-v-639d7ab9]{color:var(--vp-c-brand-1)}.search-actions button.clear-button[data-v-639d7ab9]:disabled{opacity:.37}.search-keyboard-shortcuts[data-v-639d7ab9]{font-size:.8rem;opacity:75%;display:flex;flex-wrap:wrap;gap:16px;line-height:14px}.search-keyboard-shortcuts span[data-v-639d7ab9]{display:flex;align-items:center;gap:4px}@media (max-width: 767px){.search-keyboard-shortcuts[data-v-639d7ab9]{display:none}}.search-keyboard-shortcuts kbd[data-v-639d7ab9]{background:#8080801a;border-radius:4px;padding:3px 6px;min-width:24px;display:inline-block;text-align:center;vertical-align:middle;border:1px solid rgba(128,128,128,.15);box-shadow:0 2px 2px #0000001a}.results[data-v-639d7ab9]{display:flex;flex-direction:column;gap:6px;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain}.result[data-v-639d7ab9]{display:flex;align-items:center;gap:8px;border-radius:4px;transition:none;line-height:1rem;border:solid 2px var(--vp-local-search-result-border);outline:none}.result>div[data-v-639d7ab9]{margin:12px;width:100%;overflow:hidden}@media (max-width: 767px){.result>div[data-v-639d7ab9]{margin:8px}}.titles[data-v-639d7ab9]{display:flex;flex-wrap:wrap;gap:4px;position:relative;z-index:1001;padding:2px 0}.title[data-v-639d7ab9]{display:flex;align-items:center;gap:4px}.title.main[data-v-639d7ab9]{font-weight:500}.title-icon[data-v-639d7ab9]{opacity:.5;font-weight:500;color:var(--vp-c-brand-1)}.title svg[data-v-639d7ab9]{opacity:.5}.result.selected[data-v-639d7ab9]{--vp-local-search-result-bg: var(--vp-local-search-result-selected-bg);border-color:var(--vp-local-search-result-selected-border)}.excerpt-wrapper[data-v-639d7ab9]{position:relative}.excerpt[data-v-639d7ab9]{opacity:75%;pointer-events:none;max-height:140px;overflow:hidden;position:relative;opacity:.5;margin-top:4px}.result.selected .excerpt[data-v-639d7ab9]{opacity:1}.excerpt[data-v-639d7ab9] *{font-size:.8rem!important;line-height:130%!important}.titles[data-v-639d7ab9] mark,.excerpt[data-v-639d7ab9] mark{background-color:var(--vp-local-search-highlight-bg);color:var(--vp-local-search-highlight-text);border-radius:2px;padding:0 2px}.excerpt[data-v-639d7ab9] .vp-code-group .tabs{display:none}.excerpt[data-v-639d7ab9] .vp-code-group div[class*=language-]{border-radius:8px!important}.excerpt-gradient-bottom[data-v-639d7ab9]{position:absolute;bottom:-1px;left:0;width:100%;height:8px;background:linear-gradient(transparent,var(--vp-local-search-result-bg));z-index:1000}.excerpt-gradient-top[data-v-639d7ab9]{position:absolute;top:-1px;left:0;width:100%;height:8px;background:linear-gradient(var(--vp-local-search-result-bg),transparent);z-index:1000}.result.selected .titles[data-v-639d7ab9],.result.selected .title-icon[data-v-639d7ab9]{color:var(--vp-c-brand-1)!important}.no-results[data-v-639d7ab9]{font-size:.9rem;text-align:center;padding:12px}svg[data-v-639d7ab9]{flex:none} diff --git a/guide/getting-started.html b/guide/getting-started.html index bf57cf4..521ea94 100644 --- a/guide/getting-started.html +++ b/guide/getting-started.html @@ -6,19 +6,19 @@ Getting Started | Query/Response - + - - - - - - + + + + + + -
Skip to content

Getting Started

Query/Response for Spring® AMQP makes it really easy to extend Spring Boot stand-alone, production-grade applications, that are using Spring AMQP. We have taken a working pattern for building highly decoupled evolving service architectures, and wrapped it in a developer friendly library.

System Requirements

Query/Response for Spring® AMQP requires at least Spring Boot 2.x and Java 11, and should work for later releases too. We are building and running it successfully with Java 11 and the Spring Boot 3.0.3 version.

Installation & Configuration

It is distributed as a Maven dependency, and is known to work well with Maven 3.3+. Using the dependency with Gradle should work too. Please see the Quickstart information, available on the project Github page, for information on how to get the Maven dependency.

Enabling Query/Response for Spring® AMQP is done by loading the QueryResponseConfiguration class. The most simple way to do this, is by annotating your Spring Boot application with the @EnableQueryResponse annotation.

java
@SpringBootApplication
+    
Skip to content

Getting Started

Query/Response for Spring® AMQP makes it really easy to extend Spring Boot stand-alone, production-grade applications, that are using Spring AMQP. We have taken a working pattern for building highly decoupled evolving service architectures, and wrapped it in a developer friendly library.

System Requirements

Query/Response for Spring® AMQP requires at least Spring Boot 2.x and Java 11, and should work for later releases too. We are building and running it successfully with Java 11 and the Spring Boot 3.0.3 version.

Installation & Configuration

It is distributed as a Maven dependency, and is known to work well with Maven 3.3+. Using the dependency with Gradle should work too. Please see the Quickstart information, available on the project Github page, for information on how to get the Maven dependency.

Enabling Query/Response for Spring® AMQP is done by loading the QueryResponseConfiguration class. The most simple way to do this, is by annotating your Spring Boot application with the @EnableQueryResponse annotation.

java
@SpringBootApplication
 @EnableQueryResponse
 public class MyApp {
 
@@ -66,8 +66,8 @@
 c.s.queryresponse.RabbitFacade : |<-- Published response: c77a8a1d-c959-4f2a-bd51-85b7e6b5b69b - (Body:'{"elements":["polo","yolo"]}' MessageProperties [headers={x-qr-published=1589642489941}, contentType=application/json, contentEncoding=UTF-8, contentLength=28, deliveryMode=NON_PERSISTENT, priority=0, deliveryTag=0])
 c.s.queryresponse.Query : |--> Received response message: MessageProperties [headers={x-qr-published=1589642489941}, contentType=application/json, contentEncoding=UTF-8, contentLength=0, receivedDeliveryMode=NON_PERSISTENT, priority=0, redelivered=false, receivedExchange=, receivedRoutingKey=c77a8a1d-c959-4f2a-bd51-85b7e6b5b69b, deliveryTag=1, consumerTag=amq.ctag-Q_ghWp4TWU9EYhi_rqErcg, consumerQueue=c77a8a1d-c959-4f2a-bd51-85b7e6b5b69b]
 marco? polo
-marco? yolo

Now you can see a full roundtrip of the query being published and consumed, and the response being published and also consumed. And the finished output is "polo" and "yolo" printed on STDOUT.

Published under the Apache-2.0 license

- +marco? yolo

Now you can see a full roundtrip of the query being published and consumed, and the response being published and also consumed. And the finished output is "polo" and "yolo" printed on STDOUT.

Published under the Apache-2.0 license

+ \ No newline at end of file diff --git a/guide/the-example-revisited.html b/guide/the-example-revisited.html index c60d695..08a54c3 100644 --- a/guide/the-example-revisited.html +++ b/guide/the-example-revisited.html @@ -6,18 +6,18 @@ The example revisited | Query/Response - + - - - - - + + + + + -
Skip to content

The example revisited

Let's examine one of the most powerful aspects of using the Query/Response pattern. If we think back to our initial example we published a query for books in the sci-fi genre.

query: books.sci-fi
+    
Skip to content

The example revisited

Let's examine one of the most powerful aspects of using the Query/Response pattern. If we think back to our initial example we published a query for books in the sci-fi genre.

query: books.sci-fi
 reply-to: library/books.sci-fi#42

We also learned that responses may come from different sources, with different payloads and we are responsible for dealing with validation and duplicates etc.

The query in this example uses only some minimal semantics to express the genre of books requested, the term sci-fi. This is part of a contract from our domain, together with rules on how any result payload should be presented. The list of strings within quotes are not by accident, it is also by design.

The Query/Response pattern does not enforce any structural rules for query, address or response syntax. This must come from designers and developers. I would suggest, using Domain Driven Design to leverage the power of a ubiquitous language in the queries.

All this together puts us in a position to allow change and evolution in our system.

A better library protocol

We have agreed on supporting stars for book ratings, and different teams scramble to their stations to extend for the new feature.

We saw earlier that data returned was formed as a list of quoted strings, and the contract for parsing was: "first quoted string per line is book title".

body:
     "Neuromancer"

That rule and the capability to extend it, made it possible to agree on a new optional format: "trailing key-values are properties". For example:

body:
     "Neuromancer" isbn:9780307969958 stars:4

This is great. Let's get to work.

Top-3 books have stars

query: books.sci-fi
@@ -38,8 +38,8 @@
 body:
     "I, Robot" stars:3
     "The Gods Themselves" stars:3
-    "Pebble in the Sky" stars:5

We can almost certainly conclude that the original version of the Asimov book service has been shut down.

Again we can see how the Query/Response pattern helps in coping with a natural evolution of the system. Services can be added, removed or upgraded at any time.

Published under the Apache-2.0 license

- + "Pebble in the Sky" stars:5

We can almost certainly conclude that the original version of the Asimov book service has been shut down.

Again we can see how the Query/Response pattern helps in coping with a natural evolution of the system. Services can be added, removed or upgraded at any time.

Published under the Apache-2.0 license

+ \ No newline at end of file diff --git a/guide/what-is-query-response.html b/guide/what-is-query-response.html index a31013a..cc1e11e 100644 --- a/guide/what-is-query-response.html +++ b/guide/what-is-query-response.html @@ -6,18 +6,18 @@ What is Query/Response? | Query/Response - + - - - - - + + + + + -
Skip to content

What is Query/Response?

Query/Response is an asynchronous non-blocking messaging pattern for building highly decoupled evolving service architectures.

A simple example

Let's learn about the Query/Response pattern by walking through a small fictional example (no pun intended). The technical context is messaging and hints at some type of broker-based setup - in theory though, any asynchronous communication could be used. The examples are only pseudo-code and plain-text data, to keep things simple.

Any good sci-fi books out there?

Let's publish a query.

query: books.sci-fi
+    
Skip to content

What is Query/Response?

Query/Response is an asynchronous non-blocking messaging pattern for building highly decoupled evolving service architectures.

A simple example

Let's learn about the Query/Response pattern by walking through a small fictional example (no pun intended). The technical context is messaging and hints at some type of broker-based setup - in theory though, any asynchronous communication could be used. The examples are only pseudo-code and plain-text data, to keep things simple.

Any good sci-fi books out there?

Let's publish a query.

query: books.sci-fi
 reply-to: library/books.sci-fi#42

The structure above captures all the basic components that a query should communicate. The term books.sci-fi expresses the published need, and we can easily understand that it's a request for science fiction books.

The dot-notation is not at all required, the query can use any syntax that fits the platform or programming language.

The query has an address where responses should be sent back to: library/books.sci-fi#42. This is really important, not only in order to receive responses, but also to avoid coupling the sender to the query. We don't need to state who's publishing the query. The reply-to is just an address, a location or mailbox that can be used for replies.

The address is only for this particular query, and it is made to be unique. In this example library/books.sci-fi#42 describes a topic library, and then the unique mailbox or queue for the query with a hash-code books.sci-fi#42.

The current top-3 books

response: library/books.sci-fi#42
 body:
     "Neuromancer"
@@ -37,8 +37,8 @@
     "Snow Crash"
     "I, Robot"
     "The Gods Themselves"
-    "Pebble in the Sky"

Just as expected.

Inversion of flow

What we've seen in this example scenario is actually an inversion of what could have been implemented as a tightly coupled, chained set of synchronous service calls:

A user whishes to view a list of science fiction books through the Bookshelf service, which needs to call the Library for the list. The Library service aggregates all sci-fi books by calls to 2 configured services: Top-3 and Authors. Only after both service calls return, can the Library respond to the Bookshelf and the user is presented with a list of sci-fi books.

In this type of system, not only are the calls aggregated in the total time, effectively forcing the user to wait until all calls return, but also to the availability of each service. This accumulates at the point of the user, making it highly probable that viewing the list of books will fail.

There are many ways to work towards better and more resilient solutions, also in the synchronous solution. I'm not trying to say that it is the wrong model. The point I'm trying to make, is the very different way of thinking that the Query/Response pattern forces us into from the start. Availability, fallbacks, resilience and strict timeouts are called out as key-concepts.

I hope this illustrates what's possible using this approach and that I've sparked at least som interest in the Query/Response pattern. Later I will extend on some of the features and caveats.

Published under the Apache-2.0 license

- + "Pebble in the Sky"

Just as expected.

Inversion of flow

What we've seen in this example scenario is actually an inversion of what could have been implemented as a tightly coupled, chained set of synchronous service calls:

A user whishes to view a list of science fiction books through the Bookshelf service, which needs to call the Library for the list. The Library service aggregates all sci-fi books by calls to 2 configured services: Top-3 and Authors. Only after both service calls return, can the Library respond to the Bookshelf and the user is presented with a list of sci-fi books.

In this type of system, not only are the calls aggregated in the total time, effectively forcing the user to wait until all calls return, but also to the availability of each service. This accumulates at the point of the user, making it highly probable that viewing the list of books will fail.

There are many ways to work towards better and more resilient solutions, also in the synchronous solution. I'm not trying to say that it is the wrong model. The point I'm trying to make, is the very different way of thinking that the Query/Response pattern forces us into from the start. Availability, fallbacks, resilience and strict timeouts are called out as key-concepts.

I hope this illustrates what's possible using this approach and that I've sparked at least som interest in the Query/Response pattern. Later I will extend on some of the features and caveats.

Published under the Apache-2.0 license

+ \ No newline at end of file diff --git a/hashmap.json b/hashmap.json index 4fd542a..5145aba 100644 --- a/hashmap.json +++ b/hashmap.json @@ -1 +1 @@ -{"index.md":"CyLvXN9L","guide_the-example-revisited.md":"C9Mmb3Cs","guide_getting-started.md":"uGm_l1Pi","guide_what-is-query-response.md":"BDbJBI_F","reference_the-query-response-protocol.md":"5jCLnaSz","reference_developers-reference.md":"DgStbDgc","reference_query-response-maturity-model.md":"CYdPkauy"} +{"reference_the-query-response-protocol.md":"B-gp6A0B","reference_query-response-maturity-model.md":"B_1-RK-U","guide_the-example-revisited.md":"CPfN9cTx","guide_getting-started.md":"BNqf6LR1","index.md":"B8Ay4yEG","guide_what-is-query-response.md":"BgwoPFLM","reference_developers-reference.md":"APR1fw3k"} diff --git a/index.html b/index.html index 810a8cc..a80f50c 100644 --- a/index.html +++ b/index.html @@ -6,19 +6,19 @@ Query/Response - + - - - - - + + + + + -
Skip to content

Query/Response

For Spring® AMQP

A messaging pattern for building highly decoupled evolving service architectures.

Change the way you think and design, by using Query/Response for Spring AMQP.

Sometime around 2015 I came across a presentation with Fred George, about the Challenges in Implementing Microservices. It's a great talk, with lots of good and relevant information. Experience comes from learning through failures, and at this point in time I had just learned a hard lesson about the problems with distributed services and blocking API calls. I had seen how latencies would go up and availability go down the drain, as calls from service A to B were actually depending on service B calling service C, calling service D. It was a mess.

In his talk George lands at the question "Synchronous or Asynchronous?" and proceeds to describe, what he calls, the "Needs Pattern". Service A would, instead of calling service B, publish a query, and service B would listen for it and send back a response. After hearing this I began to think a lot about the effects of moving to asynchronous communication between services. There was clearly a lot more there than just decoupling. Something more fundamental.

The Query/Response pattern, that I arrived at, challenges developers to really think hard about the responsibilities and autonomy of services. It provides very few guarantees, which will force decisions around resilience and availability at a much earlier stage in the design and development process. It literally turns things around - an inversion of responsibility - which I truly believe we can benefit from.

Olle Törnström, 2019

Published under the Apache-2.0 license

- +
Skip to content

Query/Response

For Spring® AMQP

A messaging pattern for building highly decoupled evolving service architectures.

Change the way you think and design, by using Query/Response for Spring AMQP.

Sometime around 2015 I came across a presentation with Fred George, about the Challenges in Implementing Microservices. It's a great talk, with lots of good and relevant information. Experience comes from learning through failures, and at this point in time I had just learned a hard lesson about the problems with distributed services and blocking API calls. I had seen how latencies would go up and availability go down the drain, as calls from service A to B were actually depending on service B calling service C, calling service D. It was a mess.

In his talk George lands at the question "Synchronous or Asynchronous?" and proceeds to describe, what he calls, the "Needs Pattern". Service A would, instead of calling service B, publish a query, and service B would listen for it and send back a response. After hearing this I began to think a lot about the effects of moving to asynchronous communication between services. There was clearly a lot more there than just decoupling. Something more fundamental.

The Query/Response pattern, that I arrived at, challenges developers to really think hard about the responsibilities and autonomy of services. It provides very few guarantees, which will force decisions around resilience and availability at a much earlier stage in the design and development process. It literally turns things around - an inversion of responsibility - which I truly believe we can benefit from.

Olle Törnström, 2019

Published under the Apache-2.0 license

+ \ No newline at end of file diff --git a/reference/developers-reference.html b/reference/developers-reference.html index 6a915a4..74494a5 100644 --- a/reference/developers-reference.html +++ b/reference/developers-reference.html @@ -6,19 +6,19 @@ Developers Reference | Query/Response - + - - - - - - + + + + + + -
Skip to content

Developers Reference

Overview

The goal of Query/Response for Spring® AMQP is to provide developers with tools that are easy to use and understand. We believe that a procedural and imperative style of writing programs, or thinking about tasks in programs, is broadly understood and a very valuable model. With Query/Response for Spring® AMQP we try to support this, rather than introducing any new concepts for streams, futures or promises.

With Query/Response for Spring® AMQP developers should feel enabled to write code in a normal way. However, it is our mission to raise awareness of things that are hard to consider, when building distributed systems. The tools try to convey these considerations, by making them transparent and part of the API.

In the next couple of sections we'll look closer at the QueryBuilder and the ResponseBuilder types. We'll discuss how to use them in detail, and try to explain the concepts behind them, and the intention of their implementation.

QueryBuilder

The QueryBuilder class is a central point of entry, and provides a fluent builder-API, for publishing queries. It's provided as a bean, by enabling Query/Response for Spring® AMQP, using the @EnableQueryResponse annotation. It may be injected as a dependency to provide access from methods in any Spring component.

We recommend injecting it via the component constructor, and keeping it as a private field. The findAuthors() method below, shows how to access the queryBuilder field in order to publish a query.

java
@Component
+    
Skip to content

Developers Reference

Overview

The goal of Query/Response for Spring® AMQP is to provide developers with tools that are easy to use and understand. We believe that a procedural and imperative style of writing programs, or thinking about tasks in programs, is broadly understood and a very valuable model. With Query/Response for Spring® AMQP we try to support this, rather than introducing any new concepts for streams, futures or promises.

With Query/Response for Spring® AMQP developers should feel enabled to write code in a normal way. However, it is our mission to raise awareness of things that are hard to consider, when building distributed systems. The tools try to convey these considerations, by making them transparent and part of the API.

In the next couple of sections we'll look closer at the QueryBuilder and the ResponseBuilder types. We'll discuss how to use them in detail, and try to explain the concepts behind them, and the intention of their implementation.

QueryBuilder

The QueryBuilder class is a central point of entry, and provides a fluent builder-API, for publishing queries. It's provided as a bean, by enabling Query/Response for Spring® AMQP, using the @EnableQueryResponse annotation. It may be injected as a dependency to provide access from methods in any Spring component.

We recommend injecting it via the component constructor, and keeping it as a private field. The findAuthors() method below, shows how to access the queryBuilder field in order to publish a query.

java
@Component
 public class Authors {
 
     private final QueryBuilder queryBuilder;
@@ -62,8 +62,8 @@
     .withBatchesOf(20)
     .from(offers.findAllOffersByDayOfWeek(Calendar.MONDAY));

Dynamic responses are easy to build, with an API that suits modern Java, using lazy calls to suppliers of data.

java
responseBuilder.respondTo("users/current", Token.class)
     .withBatchesOf(128)
-    .suppliedBy(userTokenService::findAllCurrentUserTokens);

Published under the Apache-2.0 license

- + .suppliedBy(userTokenService::findAllCurrentUserTokens);

Published under the Apache-2.0 license

+ \ No newline at end of file diff --git a/reference/query-response-maturity-model.html b/reference/query-response-maturity-model.html index b6edf37..066d711 100644 --- a/reference/query-response-maturity-model.html +++ b/reference/query-response-maturity-model.html @@ -6,19 +6,19 @@ Query/Response Maturity Model | Query/Response - + - - - - - + + + + + -
Skip to content

Query/Response Maturity Model

Just like with the Richardson Maturity Model, I've identified an evolution of maturity around the acceptance, use and implementation of Query/Response. It describes the benefits, opportunities and also complexities, pretty well.

Level 0 - Purgatory

All communication and exchange is bound to fixed, configured, service end- points. Synchronous blocking calls exchange information based on formats declared in project Wiki-pages or Word-documents. Most solutions are stateless, with I/O bound performance. Changes typically require system wide, synchronized, upgrades. This lead to development dropping in velocity, as each module or team will find it hard or impossible to act independently of each other.

Level 1

Using the Query/Response pattern for the first time often leads to healthy temporal decoupling pretty quick. But with a lot of code still written with a synchronous model in mind, the data exchange tend to look a bit like sync. Solutions move towards being stateful, but loosen their I/O-bound performance characteristics. It's hard for developer to think about queries and responses not coming from known components. Already at this level teams and modules gain a lot in the capability to move independently. Releases and deployment is practically not a tangle any more, although the view on evolutionary data-structures or protocols for data, may lag behind and still be Wiki/Document-based.

Level 2

At this level a deeper insight into the value of a proper data-structure or protocol for payload, which can evolve as required, is often gained. With this comes the extended benefit of seamless upgrades and service evolution. Developers get to experience how responsibilities can move without breaking or changing any integration code - response publishers can change owners and location.

Level 3

More and more ideas around reactivity and flexibility begin to take form. Events can immediately trigger queries which may enrich a local context based on current needs. This moves the design and use beyond a system using sync, and durable persistent state, to a more ephemeral and living model. The data structure of payloads tend to be less bound to strict types and more malleable data shapes.

Level 4 and beyond...

Information exchange using the Query/Response pattern allows for almost limitless evolution of services, or components, no longer bound to versions or availability. The structure of any data is also very dynamic, information can be partial, enriched, or come in different sets, from different publishers. No schema is required at this level, but data shapes are used, which can be embraced by all collaborators in the architecture. Queries are sent and responses consumed, sometimes within deliberate timeouts; take-until semantics. This way modules can provide, and fulfill, explicit SLAs if required.

INFO

This is of course not supposed to be taken too seriously, but the maturity levels describes a journey, from a strict and stale model, into one where evolution and change is quite normal.

Published under the Apache-2.0 license

- +
Skip to content

Query/Response Maturity Model

Just like with the Richardson Maturity Model, I've identified an evolution of maturity around the acceptance, use and implementation of Query/Response. It describes the benefits, opportunities and also complexities, pretty well.

Level 0 - Purgatory

All communication and exchange is bound to fixed, configured, service end- points. Synchronous blocking calls exchange information based on formats declared in project Wiki-pages or Word-documents. Most solutions are stateless, with I/O bound performance. Changes typically require system wide, synchronized, upgrades. This lead to development dropping in velocity, as each module or team will find it hard or impossible to act independently of each other.

Level 1

Using the Query/Response pattern for the first time often leads to healthy temporal decoupling pretty quick. But with a lot of code still written with a synchronous model in mind, the data exchange tend to look a bit like sync. Solutions move towards being stateful, but loosen their I/O-bound performance characteristics. It's hard for developer to think about queries and responses not coming from known components. Already at this level teams and modules gain a lot in the capability to move independently. Releases and deployment is practically not a tangle any more, although the view on evolutionary data-structures or protocols for data, may lag behind and still be Wiki/Document-based.

Level 2

At this level a deeper insight into the value of a proper data-structure or protocol for payload, which can evolve as required, is often gained. With this comes the extended benefit of seamless upgrades and service evolution. Developers get to experience how responsibilities can move without breaking or changing any integration code - response publishers can change owners and location.

Level 3

More and more ideas around reactivity and flexibility begin to take form. Events can immediately trigger queries which may enrich a local context based on current needs. This moves the design and use beyond a system using sync, and durable persistent state, to a more ephemeral and living model. The data structure of payloads tend to be less bound to strict types and more malleable data shapes.

Level 4 and beyond...

Information exchange using the Query/Response pattern allows for almost limitless evolution of services, or components, no longer bound to versions or availability. The structure of any data is also very dynamic, information can be partial, enriched, or come in different sets, from different publishers. No schema is required at this level, but data shapes are used, which can be embraced by all collaborators in the architecture. Queries are sent and responses consumed, sometimes within deliberate timeouts; take-until semantics. This way modules can provide, and fulfill, explicit SLAs if required.

INFO

This is of course not supposed to be taken too seriously, but the maturity levels describes a journey, from a strict and stale model, into one where evolution and change is quite normal.

Published under the Apache-2.0 license

+ \ No newline at end of file diff --git a/reference/the-query-response-protocol.html b/reference/the-query-response-protocol.html index 8cd61c5..f6c6bf8 100644 --- a/reference/the-query-response-protocol.html +++ b/reference/the-query-response-protocol.html @@ -6,19 +6,19 @@ Query/Response Protocol | Query/Response - + - - - - - + + + + + -
Skip to content

Query/Response Protocol

I'd like to describe the Query/Response pattern in a more formal but not too strict way, since it's not in any way some type of standard or protocol. This is a pattern derived from the general idea of expressing a need or demand, as previously told. It is shaped here, into a specific version, or flavour, in the Query/Response pattern. It simply contains my recommendations and suggestions on rules or principles to follow.

Please, take what you like, leave the rest, and extend as you seem fit.

Use of the keywords: "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" are intended to follow the definitions of RFC 2119.

Intent

The Query/Response pattern aims to describe a model for information sharing in a distributed system. It does so by using strong decoupling of system actors and establishing asynchronous message-based high-level data exchange, as the only means of communication.

The following specifications tries to provide a set of rules and guides, which can be used as an authoritative source for developer, implementing the pattern.

Components and Collaborators

NameTypeDescription
QuerymessageVery small, published notification.
ResponsemessageCarries information as payload.
AddresslocationReference to "a mailbox"
PublisheractorInitiates publish method calls.
ConsumeractorAccepts consume method calls.

Query

A notification that expresses a specific need or whish, which can be fulfilled by a response, published to a specified return address. The query MUST state its need or whish in an interpretable way. It may use any suitable syntax, semantics or language. Most commonly a simple string or term is used, similar to a message subject, -name or an event routing-key. A query MUST specify an address for responses, which SHOULD be appropriate for the stated query and, technically available, as the query is created.

Recommendation

I very much recommend creating queries with expressions or terms from a domain specific, or ubiquitous language. This allows for broader understanding and involvement of stakeholders. Keeping queries human readable makes sense. It's often desirable to use structured terms, with semantics, such as filters or parameters. This is quite common and not at all bad.

Response

A notification, published, as a response to a query, optionally carrying an information- or data-payload. A response MUST NOT be sent without an intent to answer a specific query (use event notifications for that). The response MUST be sent to the address of the query it responds to, without manipulating it. A response SHOULD carry an appropriate information- or data-payload, with the intent to answer the query it responds to. Note that this is not a strict requirement. Responses SHOULD be sent within an appropriate time frame of seeing a query.

TIP

In most cases it's desirable to publish a response as quick as possible, after consuming a query.

Address

Describes and designates an addressable location with the capability to receive and handle responses. Typically a messaging mailbox or a queue. The address MUST NOT describe a system actor or collaborator, but instead ensure decoupling between a publisher and a consumer.

TIP

In messaging or broker based systems, the address is typically a routing key, topic or a queue-name.

Publisher

An actor that initiates the publishing of a notification, either a query or a response depending on its current role. The publisher MUST NOT be responsible for the arrival of any published information. Publishers MUST NOT know any consumers.

Note

The concrete interpolated roles Query-Publisher and Response-Publisher, does not have to be bound to a single or unique actor.

It is open for the implementation of the Query/Response pattern to solve or choose how it ensures delivery of messages, e.g. using a broker- or queue- based messaging system or some other solution for asynchronous communication.

Consumer

An actor that willingly yields to the consumption of notifications, from some external source, either a response or a query depending on its current role. Consumers MUST NOT know any publishers.

Note

The concrete interpolated roles Query-Consumer and Response-Consumer, does not have to be bound to a single or unique actor.

Methods and Actions

Nothing in the Query/Response pattern is synchronous, or based on the notion of guaranteed delivery (or only-once semantics). The following structured step-by-step description is only for documentation purposes, and does not, in any way, define a sequence which can be relied upon.

Prepare Address

Before publishing a query, the query publisher SHOULD ensure that an appropriate address, specified for the query, can be handled.

Note

Implementations are free to use a best-effort approach. It may be that the only option is to use short-lived or temporary resources, which may or may not fail to be allocated. Therefore there's no strict requirement to ensure that the address can be handled.

Publish Query

The query publisher can, at any time, choose to publish a query. No ACK or NACK will be provided and the query publisher MUST NOT assume that the query has been consumed, or that a response will be returned at this time. The publisher SHOULD consider the case where the query is lost, examine options to detect and repair this, if possible; timeouts, retries or fallbacks are perhaps options to investigate.

Consume Query

A query consumer, that is willingly listening for queries, may at any time receive, and choose to handle a query. Consuming queries is an unbound operation. The consumer SHOULD handle queries with an intent to provide a response, or ignore the query. A consumer MAY decide to publish none, one or any number of responses to the query - it is optional. A consumer MAY at any time choose to stop listening for queries.

TIP

Please note that the Query/Response pattern does not protect against query consumers with harmful intent. Implementations should consider issues like security, encryption and trust as extensions to it.

Publish Response

A response publisher MUST use the provided address of the query it responds to, when publishing responses. No ACK or NACK will be provided and the publisher MUST NOT assume that the response has been delivered, arrived properly or consumed.

Consume Response

A response consumer, listening for responses at a previously created address, MAY at any time receive one or several responses - or not at all. Consuming responses is an unbounded operation. Any received response MAY have a payload or body of information. The consumer SHOULD assert and validate any transferred information with great care. A consumer MAY at any time choose to stop listening for responses.

Published under the Apache-2.0 license

- +
Skip to content

Query/Response Protocol

I'd like to describe the Query/Response pattern in a more formal but not too strict way, since it's not in any way some type of standard or protocol. This is a pattern derived from the general idea of expressing a need or demand, as previously told. It is shaped here, into a specific version, or flavour, in the Query/Response pattern. It simply contains my recommendations and suggestions on rules or principles to follow.

Please, take what you like, leave the rest, and extend as you seem fit.

Use of the keywords: "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" are intended to follow the definitions of RFC 2119.

Intent

The Query/Response pattern aims to describe a model for information sharing in a distributed system. It does so by using strong decoupling of system actors and establishing asynchronous message-based high-level data exchange, as the only means of communication.

The following specifications tries to provide a set of rules and guides, which can be used as an authoritative source for developer, implementing the pattern.

Components and Collaborators

NameTypeDescription
QuerymessageVery small, published notification.
ResponsemessageCarries information as payload.
AddresslocationReference to "a mailbox"
PublisheractorInitiates publish method calls.
ConsumeractorAccepts consume method calls.

Query

A notification that expresses a specific need or whish, which can be fulfilled by a response, published to a specified return address. The query MUST state its need or whish in an interpretable way. It may use any suitable syntax, semantics or language. Most commonly a simple string or term is used, similar to a message subject, -name or an event routing-key. A query MUST specify an address for responses, which SHOULD be appropriate for the stated query and, technically available, as the query is created.

Recommendation

I very much recommend creating queries with expressions or terms from a domain specific, or ubiquitous language. This allows for broader understanding and involvement of stakeholders. Keeping queries human readable makes sense. It's often desirable to use structured terms, with semantics, such as filters or parameters. This is quite common and not at all bad.

Response

A notification, published, as a response to a query, optionally carrying an information- or data-payload. A response MUST NOT be sent without an intent to answer a specific query (use event notifications for that). The response MUST be sent to the address of the query it responds to, without manipulating it. A response SHOULD carry an appropriate information- or data-payload, with the intent to answer the query it responds to. Note that this is not a strict requirement. Responses SHOULD be sent within an appropriate time frame of seeing a query.

TIP

In most cases it's desirable to publish a response as quick as possible, after consuming a query.

Address

Describes and designates an addressable location with the capability to receive and handle responses. Typically a messaging mailbox or a queue. The address MUST NOT describe a system actor or collaborator, but instead ensure decoupling between a publisher and a consumer.

TIP

In messaging or broker based systems, the address is typically a routing key, topic or a queue-name.

Publisher

An actor that initiates the publishing of a notification, either a query or a response depending on its current role. The publisher MUST NOT be responsible for the arrival of any published information. Publishers MUST NOT know any consumers.

Note

The concrete interpolated roles Query-Publisher and Response-Publisher, does not have to be bound to a single or unique actor.

It is open for the implementation of the Query/Response pattern to solve or choose how it ensures delivery of messages, e.g. using a broker- or queue- based messaging system or some other solution for asynchronous communication.

Consumer

An actor that willingly yields to the consumption of notifications, from some external source, either a response or a query depending on its current role. Consumers MUST NOT know any publishers.

Note

The concrete interpolated roles Query-Consumer and Response-Consumer, does not have to be bound to a single or unique actor.

Methods and Actions

Nothing in the Query/Response pattern is synchronous, or based on the notion of guaranteed delivery (or only-once semantics). The following structured step-by-step description is only for documentation purposes, and does not, in any way, define a sequence which can be relied upon.

Prepare Address

Before publishing a query, the query publisher SHOULD ensure that an appropriate address, specified for the query, can be handled.

Note

Implementations are free to use a best-effort approach. It may be that the only option is to use short-lived or temporary resources, which may or may not fail to be allocated. Therefore there's no strict requirement to ensure that the address can be handled.

Publish Query

The query publisher can, at any time, choose to publish a query. No ACK or NACK will be provided and the query publisher MUST NOT assume that the query has been consumed, or that a response will be returned at this time. The publisher SHOULD consider the case where the query is lost, examine options to detect and repair this, if possible; timeouts, retries or fallbacks are perhaps options to investigate.

Consume Query

A query consumer, that is willingly listening for queries, may at any time receive, and choose to handle a query. Consuming queries is an unbound operation. The consumer SHOULD handle queries with an intent to provide a response, or ignore the query. A consumer MAY decide to publish none, one or any number of responses to the query - it is optional. A consumer MAY at any time choose to stop listening for queries.

TIP

Please note that the Query/Response pattern does not protect against query consumers with harmful intent. Implementations should consider issues like security, encryption and trust as extensions to it.

Publish Response

A response publisher MUST use the provided address of the query it responds to, when publishing responses. No ACK or NACK will be provided and the publisher MUST NOT assume that the response has been delivered, arrived properly or consumed.

Consume Response

A response consumer, listening for responses at a previously created address, MAY at any time receive one or several responses - or not at all. Consuming responses is an unbounded operation. Any received response MAY have a payload or body of information. The consumer SHOULD assert and validate any transferred information with great care. A consumer MAY at any time choose to stop listening for responses.

Published under the Apache-2.0 license

+ \ No newline at end of file